From 507d13ede7410d33f1a63d00f690304acfb880a8 Mon Sep 17 00:00:00 2001 From: Thomas Kopp Date: Mon, 25 Apr 2022 13:48:33 +0200 Subject: [PATCH 001/395] CppParser: Support for return values in global ns If a return value of a member function is specified to be in the global namespace using leading double colons (e.g. ::MyClass) the parser is now recognizing it as valid c++ code instead of aborting with an exception. --- CppParser/src/Parser.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CppParser/src/Parser.cpp b/CppParser/src/Parser.cpp index db4cc80df..3ce1aed13 100644 --- a/CppParser/src/Parser.cpp +++ b/CppParser/src/Parser.cpp @@ -379,7 +379,7 @@ const Token* Parser::parseClassMembers(const Token* pNext, Struct* /*pClass*/) poco_assert (isOperator(pNext, OperatorToken::OP_OPENBRACE)); pNext = next(); - while (pNext->is(Token::IDENTIFIER_TOKEN) || pNext->is(Token::KEYWORD_TOKEN) || isOperator(pNext, OperatorToken::OP_COMPL)) + while (pNext->is(Token::IDENTIFIER_TOKEN) || pNext->is(Token::KEYWORD_TOKEN) || isOperator(pNext, OperatorToken::OP_COMPL) || isOperator(pNext, OperatorToken::OP_DBL_COLON)) { switch (pNext->asInteger()) { From 20b201dd7df2bad64a28917dd9bc3b80b0e2aa8a Mon Sep 17 00:00:00 2001 From: Thomas Kopp Date: Mon, 25 Apr 2022 13:49:03 +0200 Subject: [PATCH 002/395] CppParser: Support for return values in global ns If a return value of a virtual member function is specified to be in the global namespace using leading double colons (e.g. virtual ::MyClass*) the parser is now handling the virtual keyword correctly. Prior the function was not declared as virtual and the return value was named as virtual::MyClass* which led to completely missleading results. --- CppParser/src/Parser.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/CppParser/src/Parser.cpp b/CppParser/src/Parser.cpp index 3ce1aed13..1da09fabd 100644 --- a/CppParser/src/Parser.cpp +++ b/CppParser/src/Parser.cpp @@ -133,6 +133,7 @@ inline void Parser::append(std::string& decl, const std::string& token) || token == "static" || token == "mutable" || token == "inline" + || token == "virtual" || token == "volatile" || token == "register" || token == "thread_local") From 4e8837db9e641075687e8bec718f481cf263b719 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Thu, 17 Nov 2022 11:41:41 +0100 Subject: [PATCH 003/395] GH #3876: Replace sprintf with snprintf in Environment and NumberFormatter to avoid deprecation warnings --- Data/MySQL/src/MySQLException.cpp | 12 ++++-------- Foundation/src/Environment.cpp | 4 ++-- Foundation/src/NumberFormatter.cpp | 4 ++-- Foundation/testsuite/src/StringTest.cpp | 2 +- 4 files changed, 9 insertions(+), 13 deletions(-) diff --git a/Data/MySQL/src/MySQLException.cpp b/Data/MySQL/src/MySQLException.cpp index d8fe13770..57f6cc9e1 100644 --- a/Data/MySQL/src/MySQLException.cpp +++ b/Data/MySQL/src/MySQLException.cpp @@ -18,8 +18,8 @@ #include "Poco/Data/MySQL/MySQLException.h" -#include -#include +#include "Poco/NumberFormatter.h" +#include namespace Poco { @@ -71,9 +71,7 @@ std::string ConnectionException::compose(const std::string& text, MYSQL* h) str += mysql_error(h); str += "\t[mysql_errno]: "; - char buff[30]; - sprintf(buff, "%d", mysql_errno(h)); - str += buff; + Poco::NumberFormatter::append(str, mysql_errno(h)); str += "\t[mysql_sqlstate]: "; str += mysql_sqlstate(h); @@ -125,9 +123,7 @@ std::string StatementException::compose(const std::string& text, MYSQL_STMT* h, str += mysql_stmt_error(h); str += "\t[mysql_stmt_errno]: "; - char buff[30]; - sprintf(buff, "%d", mysql_stmt_errno(h)); - str += buff; + Poco::NumberFormatter::append(str, mysql_stmt_errno(h)); str += "\t[mysql_stmt_sqlstate]: "; str += mysql_stmt_sqlstate(h); diff --git a/Foundation/src/Environment.cpp b/Foundation/src/Environment.cpp index 58a8ef3d5..5a1e3ec53 100644 --- a/Foundation/src/Environment.cpp +++ b/Foundation/src/Environment.cpp @@ -20,7 +20,7 @@ #include "Poco/Environment.h" #include "Poco/Version.h" #include -#include // sprintf() +#include // snprintf() #if defined(POCO_VXWORKS) @@ -101,7 +101,7 @@ std::string Environment::nodeId() NodeId id; nodeId(id); char result[18]; - std::sprintf(result, "%02x:%02x:%02x:%02x:%02x:%02x", + std::snprintf(result, sizeof(result), "%02x:%02x:%02x:%02x:%02x:%02x", id[0], id[1], id[2], diff --git a/Foundation/src/NumberFormatter.cpp b/Foundation/src/NumberFormatter.cpp index 663864215..2c32129df 100644 --- a/Foundation/src/NumberFormatter.cpp +++ b/Foundation/src/NumberFormatter.cpp @@ -477,9 +477,9 @@ void NumberFormatter::append(std::string& str, const void* ptr) { char buffer[24]; #if defined(POCO_PTR_IS_64_BIT) - std::sprintf(buffer, "%016" PRIXPTR, (UIntPtr) ptr); + std::snprintf(buffer, sizeof(buffer), "%016" PRIXPTR, (UIntPtr) ptr); #else - std::sprintf(buffer, "%08" PRIXPTR, (UIntPtr) ptr); + std::snprintf(buffer, sizeof(buffer), "%08" PRIXPTR, (UIntPtr) ptr); #endif str.append(buffer); } diff --git a/Foundation/testsuite/src/StringTest.cpp b/Foundation/testsuite/src/StringTest.cpp index 6e5e003a5..0f1021ba1 100644 --- a/Foundation/testsuite/src/StringTest.cpp +++ b/Foundation/testsuite/src/StringTest.cpp @@ -1238,7 +1238,7 @@ void formatStream(double value, std::string& str) void formatSprintf(double value, std::string& str) { char buffer[128]; - std::sprintf(buffer, "%.*g", 16, value); + std::snprintf(buffer, sizeof(buffer), "%.*g", 16, value); str = buffer; } From 69d15c5dddedf5d9adb86ade0dcee8254bb3ede5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Thu, 17 Nov 2022 11:42:13 +0100 Subject: [PATCH 004/395] fix include/lib paths for Apple Silicon --- Data/MySQL/MySQL.make | 35 ++++++++++++++++++++++++-------- Data/PostgreSQL/PostgreSQL.make | 6 ++++++ build/config/Darwin-clang-libc++ | 6 +++++- 3 files changed, 37 insertions(+), 10 deletions(-) diff --git a/Data/MySQL/MySQL.make b/Data/MySQL/MySQL.make index 7017290f0..acf97243f 100644 --- a/Data/MySQL/MySQL.make +++ b/Data/MySQL/MySQL.make @@ -4,20 +4,37 @@ # Makefile fragment for finding MySQL library # +ifndef POCO_MYSQL_INCLUDE +ifeq (0, $(shell test -d /usr/local/include/mysql; echo $$?)) +POCO_MYSQL_INCLUDE = /usr/local/include +else +ifeq (0, $(shell test -d /usr/local/opt/mysql-client/include; echo $$?)) +POCO_MYSQL_INCLUDE = /usr/local/opt/mysql-client/include +else +ifeq (0, $(shell test -d /opt/homebrew/opt/mysql-client/include; echo $$?)) +POCO_MYSQL_INCLUDE = /opt/homebrew/opt/mysql-client/include +endif +endif +endif +endif -# Note: linking order is important, do not change it. +ifndef POCO_MYSQL_LIB +ifeq (0, $(shell test -d /usr/local/include/mysql; echo $$?)) +POCO_MYSQL_LIB = /usr/local/lib +else +ifeq (0, $(shell test -d /usr/local/opt/mysql-client/lib; echo $$?)) +POCO_MYSQL_LIB = /usr/local/opt/mysql-client/lib +else +ifeq (0, $(shell test -d /opt/homebrew/opt/mysql-client/lib; echo $$?)) +POCO_MYSQL_LIB = /opt/homebrew/opt/mysql-client/lib +endif +endif +endif +endif ifdef POCO_MYSQL_INCLUDE INCLUDE += -I$(POCO_MYSQL_INCLUDE) -else -INCLUDE += -I./../include -I/usr/local/include/mysql -I/usr/include/mysql/ -I/usr/mysql/include/mysql -I/usr/local/mysql/include -I/usr/local/opt/mysql-client/include -I/usr/local/opt/mysql-client/include/mysql endif - ifdef POCO_MYSQL_LIB SYSLIBS += -L$(POCO_MYSQL_LIB) -else -SYSLIBS += -L/usr/local/lib -L/usr/local/lib$(LIB64SUFFIX)/mysql -L/usr/lib$(LIB64SUFFIX)/mysql -L/usr/mysql/lib$(LIB64SUFFIX) -L/usr/mysql/lib$(LIB64SUFFIX)/mysql -L/usr/local/mysql/lib$(LIB64SUFFIX) -L/usr/local/opt/mysql-client/lib endif - -# Note: linking order is important, do not change it. -SYSLIBS += -lmysqlclient -lz -lpthread -ldl diff --git a/Data/PostgreSQL/PostgreSQL.make b/Data/PostgreSQL/PostgreSQL.make index 7b9248b24..b3582c672 100644 --- a/Data/PostgreSQL/PostgreSQL.make +++ b/Data/PostgreSQL/PostgreSQL.make @@ -20,6 +20,9 @@ endif ifeq (0, $(shell test -e /usr/local/opt/libpq/include; echo $$?)) INCLUDE += -I/usr/local/opt/libpq/include endif +ifeq (0, $(shell test -e /opt/homebrew/opt/libpq/include; echo $$?)) +INCLUDE += -I/opt/homebrew/opt/libpq/include +endif endif ifndef POCO_PGSQL_LIB @@ -41,6 +44,9 @@ endif ifeq (0, $(shell test -e /usr/local/opt/libpq/lib; echo $$?)) SYSLIBS += -L/usr/local/opt/libpq/lib$(LIB64SUFFIX) endif +ifeq (0, $(shell test -e /opt/homebrew/opt/libpq/lib; echo $$?)) +SYSLIBS += -L/opt/homebrew/opt/libpq/lib$(LIB64SUFFIX) +endif endif SYSLIBS += -lpq diff --git a/build/config/Darwin-clang-libc++ b/build/config/Darwin-clang-libc++ index 94b316ba4..fc32971ac 100644 --- a/build/config/Darwin-clang-libc++ +++ b/build/config/Darwin-clang-libc++ @@ -11,11 +11,15 @@ # LINKMODE ?= SHARED -ARCHFLAGS ?= -arch $(OSARCH) +ARCHFLAGS ?= -arch $(POCO_HOST_OSARCH) SANITIZEFLAGS ?= OSFLAGS ?= -mmacosx-version-min=10.11 -isysroot $(shell xcrun --show-sdk-path) +ifeq ($(POCO_HOST_OSARCH),arm64) +OPENSSL_DIR ?= /opt/homebrew/opt/openssl +else OPENSSL_DIR ?= /usr/local/opt/openssl +endif # # Tools From 46a55303aeb43f4a184319e1a825d5cb449f595f Mon Sep 17 00:00:00 2001 From: Vojin Ilic Date: Mon, 16 Jan 2023 11:49:27 +0100 Subject: [PATCH 005/395] Fix deadlock in Timer when one sync and one async cancel requests are issued Timer is implemented with internal queue. If a user wants to cancel all pending tasks it can call .cancel to schedule CancelNotification. As a part of processing of CancelNotification it will just flush the whole queue. It does have special processing for StopNotification so that Timer destruction doesn't get blocked. Now if we first schedule async cancel and before this first cancel is processed we schedule another cancel but this time a sync second one will block because it is never notified that all tasks are canceled, _finished event is never set on that flushed CancelNotification. Fix: add diffrent processing in case of CancelNotification to set all of it's _finished events. Also add a test for this situation. --- Util/src/Timer.cpp | 5 +++++ Util/testsuite/src/TimerTest.cpp | 30 ++++++++++++++++++++++++++++++ Util/testsuite/src/TimerTest.h | 1 + 3 files changed, 36 insertions(+) diff --git a/Util/src/Timer.cpp b/Util/src/Timer.cpp index bab2c8e4e..c3d0e283a 100644 --- a/Util/src/Timer.cpp +++ b/Util/src/Timer.cpp @@ -93,6 +93,11 @@ public: _finished.set(); return false; } + Poco::AutoPtr pCnf = pNf.cast(); + if (pCnf) + { + pCnf->_finished.set(); + } pNf = static_cast(queue().dequeueNotification()); } diff --git a/Util/testsuite/src/TimerTest.cpp b/Util/testsuite/src/TimerTest.cpp index 5d4638f30..33b3562ed 100644 --- a/Util/testsuite/src/TimerTest.cpp +++ b/Util/testsuite/src/TimerTest.cpp @@ -260,6 +260,35 @@ void TimerTest::testCancelAllWaitStop() } +void TimerTest::testMultiCancelAllWaitStop() +{ + Timer timer; + + // We will schedule a task and wait for it to start. + // After that we will schedule 2 cancel Notifications, one async and the other sync. + // But we want to make sure that both are scheduled and present in internal queue, thus we need to wait for this + // first task to start. + Poco::Event startEvent; + Poco::Event canceledScheduledEvent; + timer.schedule(Timer::func([&startEvent, &canceledScheduledEvent]() + { + startEvent.set(); + canceledScheduledEvent.wait(); + Poco::Thread::sleep(100); + }), Poco::Clock()); + // We wait for simple task to start. + startEvent.wait(); + // Schedule async cancel notification. + timer.cancel(); + // Now allow simple task to proceed to sleep, in other words give time for next cancel to block. + canceledScheduledEvent.set(); + // Schedule sync cancel, now we should have 2 cancel notifications in internal queue. + timer.cancel(true); + + assertTrue (true); // don't hang +} + + void TimerTest::testFunc() { Timer timer; @@ -305,6 +334,7 @@ CppUnit::Test* TimerTest::suite() CppUnit_addTest(pSuite, TimerTest, testCancel); CppUnit_addTest(pSuite, TimerTest, testCancelAllStop); CppUnit_addTest(pSuite, TimerTest, testCancelAllWaitStop); + CppUnit_addTest(pSuite, TimerTest, testMultiCancelAllWaitStop); CppUnit_addTest(pSuite, TimerTest, testFunc); return pSuite; diff --git a/Util/testsuite/src/TimerTest.h b/Util/testsuite/src/TimerTest.h index 51e51b8df..b88366fd7 100644 --- a/Util/testsuite/src/TimerTest.h +++ b/Util/testsuite/src/TimerTest.h @@ -35,6 +35,7 @@ public: void testCancel(); void testCancelAllStop(); void testCancelAllWaitStop(); + void testMultiCancelAllWaitStop(); void testFunc(); void setUp(); From 8ebbac8a41180ec039523b399c94f43a21b6f8b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 16 Jan 2023 13:51:14 +0100 Subject: [PATCH 006/395] updated style guide --- doc/CppCodingStyleGuide.doc | Bin 324608 -> 264704 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/CppCodingStyleGuide.doc b/doc/CppCodingStyleGuide.doc index 0a0e3e5dfac6566ac7703e7f89c9f61d6455e04c..3c23a9c426ddbda66fb036b4168bffb2513d8cf9 100644 GIT binary patch delta 58500 zcmc%S2YeLO7x4YrO@IVQ2nnH=rH7V~O7A7~UZti1fizNpD6pX^Md}I*hyqHN9uY;Q z7nKfT0U`mV_aZgG`#ZBU$&$qOf1l6utbTWA?#}McJ@?F=JF}A|<(fyz2X1p}*H(;* z?dGN^My3tSy?XunwG_T!CIc_=3a_!f@IA+6hIvNEu9J+;j*9ZseV6)r1Fz@iq$sJ) z42r7~Iy`jvDd$tpYUvwy&Q3*@na>T%=CGJS;#8198OA4%vCMTWW{EQTnQMF6ULcQq zD=11)W`E(a2#>dTl$-ryfUQWqXVukpH&wJ1+CL7XXe#9&P><4;6{QD{`t!5bD9S+x zMTx7Tn3aN5W^9n6c=3W2Jjx2};8AY+qp_Z%e3w^IerTd7k9eb<%?K9HzgVp(vi@$o zq1^t>Vzh2iJ&6zD~-dk7Rm(cLol*b*-WiIPc zUTA;QU#>suHPDxlc_%)(Ew7WBUg>3fCi|m&&W(JEe`f6UH_HCT5(4|%m0p&Ud4jz4 z_00Kn*5?hO31UB1loO7Y5T|x#3-46W?ydCJt$lWv_nKN|R3& zrKSEPk5_pg$(}(}u{Mv=+H#x3a&BbtqD{8>FS;tqL{>rOrz(nrvUD};(W$xqyltth z>|4tFwxLk3n*OMVPM=p>u1bZhS=$@w^LmQ~tf7Ic(kunH&#mOR z$}lf~XG36Wm;9jy2S5LsmK0Y{%lHl@Q~xM1)zQf>piWTTAYWfgqFWUYZN|^kf0)To zB*@dn-`R4{ub5@Oo16ZezwNnto-P5-mcw-_ST+=PbJJcIV0+HDw#BQkw_X^SSr}2c zf?gPuS-7BZRlTrIX5o>-CcUt(R_JTVC|p)Atfv+FS*pA1@99@tEA+SYcP~-Twn~1! zS|N1_a_*j(92Md0Vd~N>xK+1Stxbb^#D@853u<-tt!LTjUPk*IKdrJ9o^vm!7izWi zt8K~eky)tK($CjY&!d{Yq*hA`<2`EWg<35s+>}+Q)zZ)3a?7KlzNA)53d95t2!f{2aG_uvmU#pQ{fTv3xZ-3|3@sSZR;R(4{-(Rb#U!WzuNKO5- z^qK})N_+b0g?decECW6Dn)>TCt!J@%R@ax*YU*Fxax&}XT1_eRC|bUxwyIi9{e3-M z>N>ZG3Q0&XS=>BIXgL?4)!Ei|b7ksE44Qlw{$I0t(>i5fm#RxNF3if&OMUjA`(m?G2tf5 z>=JtD1GR_*1X;c+p{HS>7LkCumRngLq18N~o~3ljI-c4`XcY{s?djs@>ugOo8H!oV zCH0OZNULg~pJi!Dy$yr3s#5rC$sny(L0VNQELTboN|097Kz~cWQa<{UT2%uBEQ?F& z$r7YhmBLe{GT&3H8->M7XTGOax4^*E9;F=%x|(9+O%X9k(WWrTR!bkRPEM30B}B#y zO9Tj0IRHLlLTD^SUQ6W)D5w%jcSMO!a>tkEUrPljSmL-9;7cq`0`) z_(W6Uun1GdxcHEv(IKYTm@rF|Qza~=`cxP$k46rXjq{+tem@bi}BL z_?o;dGQq_EF|moJxDehac8K~`@*$F-;UV$iYSSkSi%p6Om*?UmhQ!84m_j4e7bPV` zgnPSm;u9=}=4Dcy`&M;MjSO|nmp49gRAfk$W$q4-!ZEfOnGz$SuB9XZO@!$2M?w@CvAw>hbP(d56SDQ1fVdv50UJ zYhg;XeTpeOBr&8`Y)n)#D;=K{mY5Vz#wHF6Ni>DWs;fCHWK@Lqagi~jLgFK3+cSAZ zcn|fiDHUh^6Nye-NZ5#kYV%GNv9yf$PTf57nQKvL=kSOqo(?y8HPR-lS$3}RY1K@x zfcilZLn32jJE3vnlDT68msR2ATI@oi5@LD1EXGoj940*%{MMs23G8L6<37O?*roZYP9}=g&AS^bV z1!C;ppG1%00~6zuO;dR1#IRu|uPN0`p;576BTSLDyjNcp9YT0nx0qx$4>iIhQka(i zYUQbWY`knvtd7JafvqYg(Jc8lIwUG8b~M43n$mn)9?E;tf@D;2T-sbW)BtUFf?4YC=S~4Pxg!HP$%fsShYuet+-7ZyR zyQIFBaeBV)KhvTaLFJs`euBkupJ9XnaJ-h`3m);_cFEOo$}1$#SE22{XgRj>+nd zy?*`i+LX&XE+%d?i27)olajEgh>)11IIn6A)F;NN_gag2dwW;Qws?-H=r0@R(oO3y zEYp|Pv=mtyJ}T`~vZO9eFx0VBU6x>|oBH9h_w!gbZOW5cW7R{0p`NAOnx%i;skAc& z*0vm3Tf$Ot?HZOnvUal3zjkW3bp!Jld@Wlx{mlKe%`pZ)%hS!%Eq`wDu*}~w*btEV zc*{fwgKui`wlYRTpvAh~YzRs%_T@}RR$}Ehmko6-Grk>Hvbn9}W}{`K>_rtMLnY55 zEzUcarmo$2*jR{W>MY%;*0Ea3SMjvW-cz`^)`gM5whl~kD}k=a@@hn}fgRO;+cYF8 zCd`)cqazbZY}rew9gklve^Zp&IkI zEbULEa0GPZM3})4WT|~>x}i?$*QXv3t<;TY_8SRT!Y}I_Xsxp6n;8xDQV0L$?O+V5 zZJBeiHzB`vaR49I`qBtKZ0jYjyu9DJYb}FglA@yG5+#=s64|?Yo0>@vA7@K2{Yf&2 zXxp~+(R709h8ddK6u!RI=(>E30d*|>u1B!~-(COEkv0s!^D8Ub`0g%N^wr(|2HLRS z{q3ZL#{;XePVLn74_c5+srMd+8lzm&z5#d>OS!Z7wZ;kM!~^pExHcUMcgB*s_Mn?~voA2K@g9j$d84Z+rz4hFNKj&+=) zp^u@i^(RL|ilN^2-gyjO`SWLud9CI`hN^}j>*_*=FcvQ0X4pVtY~SH#C~TlUM+zIR zIX=W9E#qmnB5xOU_etxpzo2`MmDEu4 z-?r?Ch~&}iWaJ6kHfKuYg)AN!k`O^3uJ1lZs6!nYOR)Jwgd{}L!n}r#*ck3@P4Y0* zq;j8l7~%}|tR6)S%ZznvTelT4BohAWo`zV$zu42T$q;C5SJV(sMZYa-cxbHayM1dh zgOib_`nrT+i@|?;bV);b0}IbCMVJDuZlw)xI|L*Sv(7DTsBiT3w;nBR80OlMb%JTy_*6Lc;P~PlY&&8#AL`YI%VhBI9V*)uo*`uSqtw3}IZA5X&;{Wn2*)AHf!r?9wG7 zB%V@JtMDZDKI{)_n*3@T{d}$FvWBtN=Vc9@%^s#UeY>>k)}d{u_NEHM5)=G8euZD zb9rMWteZ@R+K%$x>Xg~jMG`H0d|a9j4~b_W+C4EomXTe2Qd~__n~3;OQ}?7q83}u} z3Xf#$no!L})-ZuuMJB|C#l?9Kr6WlS^^T17X%QDELC=bL&JveqaoaDM48uy~HN`N* zPO!GCZ}>I8gNuu!i;LV_%QrBTw2bRe(%PVbp}c!QJx?DGQ>UIC<@`){Q;~pr*60R? zUS=mnsexALj4tSk5%>xUr?=y=6r1rmoYCP zjnM=hVXf(@oeYH>hV%JK=6p@hVH^83(dJvUE3R~I z=csf=2-DGR6i0ImcL{Bjf{AUMos_(`7b=B|4)Yr0zyi*WF-US!O6qSc<$RFcQ}QY) zRZO;JJcoVVj#*Iyfp2vA`Ia$59jX5!zXDE z(;hx~$nBK<%)>+WbKls{Y*A+xKa_mv zKTzK26mqtd?TzzhdyD@i<)+zEE;HjK2W0!t(K#sfWfPJ1mG+YGOE{Zg47T9`DzoqI zf=T!aS5SdYDjXl-XOy5TYlm@Ihf63;+IGWi9B|<-1J%gz-bJkjA7eFZ`b1+VYkH7z zm^FPkd%yHh?l$)}Hq&NMZw7a)NeT*G^r#<$I0WA$?9}zOkR#Vn4G=osq9|y=?h3 zk{!8yO4>>vv1`{$t;;G{Z01n#`ezRvc0oXUus&_or@oQ zn5Ye3)I(deLwj^UCv=8nVt4dFD8dkqD2&B8jE5N$FcFfu@8Ufy#3C%lC)kQqcWGlL zwqZNIgrxd6_!b9n5QlIa7m$vNxP(7&8CP%}H(+41Fv0=(Q2?b-8rLtUUFLQw?Q+`n z%il0#W^M~}->7rUtg@f^(0=B!tuL|#G@?vaL&_l5R(h>;Zlxo#mD)F}`QP`~gI1NvhC24V?&Btil?s#kwNYe*+U6u?Ksx4~KCM=aGirkdBLxUEF0{!3$*ICGxPB z^F&b;gB(7TL@C&s_iI~IZKkjO`kHOVd~KyVr?ui@`#ya(GkU8AS9r5YY~lQYi(qm# zU&mZaPnh0Z*0!md|K`y9jpK{|b2-r6enrgmT}oXEk&GJ3!31CU!5A`W9P71J;sGcXggAfu9buwaEJ?Z1+VRoIA~*oEELgMHYK1NaW#;~dT- z4VUpJ9^(m~;yGSGMm?_~7rAi_qT-DFkg2UUbuewja`H`b4cA^Xfxl~ z&&a+b^EI;X$m|Ec0i@YRtf} ztWtxCng~D;>Yy%~qKoyY$ylswZzlWVErcTiLlA@UkVvLr0w!THrrCa z)>@T}#msw{+=u-*gP-s-F5oWi;XWSV5&pzuJjFBQWz3xqPH@BZ%f~KXJ}5i+uMb{6 zc#Ju9X0!dw%B&go|BJKcXgsYKUtcA+R`AKSbSu}E=4|P}Y^B*->_2Y*|5F1ultzc`_|W1#?DlBEX>9nEW{eD z#X5Wj^9JrVLbilde2(w%J$}F`T*B}81DA0X*C1QYZQOw?TTLOjp}1^8sD|puYTg{@ zMa>x*|LVl(tQv1NiY=^#vz7jrU4iW#27gdJw>K`9t@MA-0qe4=nTNbutJjs7)IcqG zLwX;71fU(-qXT*%91$3Tp@_tANN*L3I84KI%zy=-Vg*)W71o%!TZ?trh)vjoz1WAt zIEV8{!*58(MM!se1y_-eZqNzND2(!`fQqPuDyRzSKC7b!TEN_rJ5F@ven#}4Pl!H| zj`P2@fvtHb)>2zH`x((Zw&KjQRC^Ja|DUZU)ao~3?zS)9TC^+5w`6(wUN0}{O8d(f zN}LsCG4-n@zFxC^-8lP(~A|NiyY$2 zU4HWTcug6qRFk1fRrwllqSdX2afvm(hS6k}W*ClT!Z8HHFdnP$88#pl+pq)Q)S!uWF|iv5a0I6yQ7ee@IG{$5 zavsmZgI>fFrNLL!8P~7>asBM|41GeKlQQ}Ldd7*23~gFwWy!Pp1CwXX*UuibEh#UM zLpC*^-^gQkPqobU49VQzX@V>#iTuWL&NE$t)jEY}KYCK}}!6hNF0m=KdV$Vi#%$(!RI^C5V$ISd3JhM2R|#TVclgScjJ^ z%FTMVrSTm}OczN^va`Jmq%-f9`WTzp4XKybW4Ux6(pG{mtJ@pHA*;Os2Oz8e91c|B z08Zcxq)M-lpK8s)d`J}+V*?IAsyhvHaR5^FJ9r2Qfj1ialC~0y1CV%}M;cxr126Fk z5~o-{wkI5b#B2cGhs16PKEl`d2H#>QB&G*2Fo2yq7UDSW;~{DXlD16nKJm(?P3#?P6v85yV5 z|FviB$}{*Ry@S@0GstNIS5(L)8gj{nocG~kh|K;|QkvfPpOf3ng54#(zQk8JieosA z6VTJHEU8uw{s=%If?%JHbD5uqRalKRSPMzh^>~a$b(zNadgM+$+J8P13$PBKVLdir zBl6eh4X_>;kdBLRYCtm~66>)U+i@Dd;8)zn9o)q|+(+?-R00z)73&+){>2*61)&Ul z;Rk;NAP}RFj47Co8CZ&CSdLHdDb}NOWBOoZJj!@<^AS5`{V{7ocGa1s8Rj%*ZOyI~ zo|ajC2_`d_B?oeAPp+aF%eI*7wK4ykA!cod-d);AZy&8~-e>{|zaDxCvxHM3ClQj! zNCc$zosfoW$lHYN9?nh432eeKL^os8#Y?)4pIRC#*}ARtUeaTQ7z3=wQ=}K0VmlL{ zo(|CN)b7o;oILx+Ed5!C(an0#pOa(K1U1nP?a=`pAuG2Yzu+A76}`>$9T-_z2RI@R zqyk;g2ZIrT^^i*4#XUGup*+Y3Cs0|lTHE!^NR2A1dN1VaW_yxb>6&#wgA}Ed$&CQ&_W}-C8AQ~ePk7T@!6s*TPEttjx%*O&O z#3C%l$5@8-*o1{GnMOb>^?>Atd{v(g4o+k`U7g_ze046XTz@`uLA^j;@W$(T%|nG- zZmFI#owe-EI%}YId}dBi_mS{P==2atB&4=dE4?OCi}hF-%y)oo*_3e*<=Syv20sL% zGa@k&Q}6@s;}Pn&=QsepFdUN9t40`ot((J0<@A>9cQ=o)r7}s~&$!llyR$K$nZ1&s z5bdL{!ur;>)mX=>tj8TZ#KJc0+OQtC@e=x~u47d{!+Pw+KJ3Q<{6jU&YCV=`t4luC z-x=BK6iwONFe3#YU_Pu^h(%bAhj@x-aOuEd3fxc_?pTi1IM#s_ea6IF9Vx_NoWMz3 z#uZ${b=<)6PHZzch10l-Yq)`%xP>a68C9SGnxYwcLOR?B>VMp2WZdBYi#IrLVtGN5dhxBN*KCv78KFlY2F@mi#-+VC%uiOY*#X>gG5fW(#O{0 zj-g@JNHJ@c5oHaYP48+fXuVaBQ!*0TUg(3qkQG@D`;{5a%8Y;+DVT^!kd<7H!mOM- zWQ8lD66&HJ8lWMhBApQqsn86(-<3Xg857I#DONygx*bO#HO`BCD237}i*k@iv`05A z$3;AcL}xiRV;64V9wcJRZBbK}_vE;#7u{tq5_l35Gw?o^<5R4_O02?a+=fSQYJ~b| zfIjGpw=fWcFc?!Y4YM#CPwqUqq2B0B)yXS2ZfKL|Z4?M))7QTShL+M^FqKr&9@K34Um14I6|I01?!_!^!2ai$jZ zuX3}l8(}orzA2znooG9@88MWB!}?_IZZ|g0HY)}LyG0)^hgG*yW)y=v{85OckRZ>) z3arK&e2#6{i^DLoN=48PozM;4p|AQNrUxSmiAcg|jOjy)>h=1Wf?se8w{aKuAoY!+ zu2SdEupYay2m7!edMpYN12n_!PQtqx?`Hlb2aA#&posc5ig#M@( z9M1XF;VW!0_Ggo7w+oPCnSV-1Cxf246+G2mxu{uv;6Ta#fPH||1pSy@lA?=VW2u?c z<}|7g;F<>9huc7Ei<9sgM7kmkg$5Hne2AJMY{)o+e4*@_P%2C*rOXWDJPw|qayV@U zA2biQE+1hG+MeFnSlFN?aS0CE-xwLl+I)o_IELdmiBr(m(uXyyjh1MIV6=g(eH519 zBOJqV{DI53f}6OFJCK?_#*+bLZ2_uU5UwZ$2|*Mj4BPP~j^HSc;{^2Z)FCu=(F?uN z2Yn%7i-Lsi7H*>ep(_X%xWX1vGYc{^2Fb8uAr@gV^msQQ)(!C%`k_AtK-wV+3n1+Xo#lh zf*xVgYccT-Bzxy$0XASGHeoYz%W8i$vpG}4V=9irD}oO}HzZ*cKEeUqLXjank0yx3 zydkvzw@mEBA^eOqyh8b*ER3cIMh8UT9gK$=Q!o?rV8Lpv!8)k>LiULlo}6QUdNOlw z%B1{f+mD*{9pyhh%D!0PmfNAqn_1yR`0cYo@2PU@)6B!=J#A+o$pocabHbQCq<y6c`Lr-@=S;WBpdG+yrxn?+h8Xi%?{zgg$~Bv1^kA$G0KSE;J zVT3K79f)ZMVkdE(iCI{QRalKR(QHY77w`@Q`QHY;DuJ(#4hTUQCW1r$>zV&CA&2$p z6rPtuf3rT#oK~(bD~I@5CAPV2_kVL_^%q;4^tZX32Iws*qp!XFnop*D3f{%H*oEJa zj*Ga2E65+msQ~!G9}N(ScVWdoTtcCd?D$X*%|V*VxvkxHC#g6WFxz^&y|IA0?MV3k z?MmEX*}KTg2jznkoRQngb)ftoR?w`jVF%W-8@gjSCSnR^<6|tvx7dl@*n_?35RU}L ziWr5_n1$JxgSnW8jo6LjxPaSG5=q`f60rvxqx6EG2zF$MBgvoRO)mK}IYd0W>p><>^D4bccq&=k$kK_qhof&mza zu^0z4QZNA@VQDgb=W-@iVl~!dBeviRe2G$T^M>LbhC^c+5TG3@j-$UtO|(Euv_fkH zBLbVT6({f$UchBM#~r8wukoa4Z6AY-t0z!xXGd*kNYx%P>%^+oVba&COJ?goA1d5(>nU?4 zr#=>W^SdMU6sq2?(tgrz(moP)J7Y3W?&USb=p|KbaJluwKJ;c44}H<@KXo#*|F-YR zSyJ!&Z6|{DIeEGKudwSaI_&F4L;r50GXLE-vD#MFyFDv829q!gOVFMq)03?|$tDTc zemZ7w?EOAH5`xee-I0iyn1!X-h)wU){zsWOh7&l6Qz$!=GdF06M(BtB7>Gd_j0u>7 zx!8ow*ostqj;km;i{1+lQFb=t9Q=&3b4X$wo+`0 z^-$ZwY>TEINr|FFkI0qF44s5c!Xsh%6+Nu9{UZ58&LFFsoFdh~TkZGe=(LmFEQ@eH zYMdPH1#`4lh`qZ6_eY$;&-exM_GNkdhG+))sF4_jLpTD%LN*_Gpg78kMY2jLyn=ne4Mu9jv~2g}{iOMi^5QS*`o0dAsa%Yi_ zOSq2*aQlRg6J`(Yiog?-umG!Z2$%3X{=h>#g8QeW7amDp7Q0b#%9@Wjq&3+@3AH0zbN}lQ5 zE+5yt=2L$Jhrc7V+Z45D%(kbB=DvNlmSndNpF~NbQH%)m!3-S1Ym8mN;mj(^P-P8+ z!nF(tuoowB8s|`Y9o-OWp`|x>{V@oG5rXH$B=h#>jJ0sGv4r*f81@!rpBwlA`?|VrdQmrSa8V|@<%gwY)Y2_eP zym$5y+aAV$I4U7_yeZ ztfj1J@Md*w%}TJg%E9c|Wwi^z4OQWV>Zk#!PB40700v~S_T@OegR`b^|C;8)Jlx0lZ{HXc1#4#_jz#NyZ|07sGzsMh0G@ z)NXczD2sA1AsDA|3BT_)bAYmk6o(`7ATNS30W+}>AEN$VRt~?(<38-C-S7u4!{Gq$ zfxO5ECsam#v_J<8g`SRT=5jJRGfkx+b0%{_OYqEjed6lXt8YAYHG}^Y^;E?Vt?3c| z{%}?Qnpv{ApM+6DsE1F&Bq5SWNED>TQd6nX_c#sHK@L074Rf&{rb7%M(eyj|0aW~+ zb8a|@PY=`K9HF;6#?T%wSygV<{65B7nTMrxuj-Y(>J^jzq$sJ(o&7;839JqL>6K*> z{``jPe*1Bh>Q7r5z@WOc1UeEQVimqa_EoRTD%V3tbV3(&g;dE5sn#+q$1d!~UhIQj zT_37j8=Vf3%AJ|$if)iNm?5#~j4p^lEJh+85+gGtPJZx5S9C)U^n}DO7NcN>#M1l& zh^NHVOiU%N=A)$Y2S=$f%mi2u^f9K7<2LT#9`54-`X6Umae{`%P8`RNID_lBfm^tZ zJ20PQS!6tYYWs=Fdl~nx-Xj&w8Typ|m|37t=oeaYXe+s!xt#qBN%8MaU1uLQ$Wf}A z`P#Umx1^a~OZ(bMEu;p$PLmf%$7_WA$c`MR@c9|8QotYR@)J#fPoVrl&Z5k(T+4${ zoW-qkN#lw)8fO0!DVE{ z%%^NC7sE=$A_e-2US|3Vp5p~x;uZ7?3}NMm;vI~|c$lGAEQJc`mHUC|!?=KSTslJz z{mz8cIzP27jK*jQi9%2G!f=d0G-4ppNr6Nth{>2RJt6%|ksl~Dy%(H2oi5ozowkn$Tzj1d=@##*G}OMHc+AlcN!)w553 zl!PRQC707AKkdrx^HZj?Kc|-b&xvc7w`TbwySIJqq*i*3^xB-F7VhbsKD)?x_7bOF zQ2q~gcbAC}T4EfQ;2fSK_zGiStU&xVP6k}3Ic{J4*qVp zWE3&5C*xiYMgI<@y4DLzxR2okPC{1v4j$qOUci}( zxIrqEf}fBk(^O6>_#7`#h)TM_9Ujmtp2TztCYoj9cUvS_n zc1M2t)xw0HMzLLi#7UCe`eLnv%{Ig^=k_;fN-s$+S?iLw+0)`Z>_DD79Dv{DaOpmq z^aBo4(F=tivPVTP?8iymL);?{Y5(Lsa0PiD6LNfvjo9S!gdPmRPf3vH>Lr%)n}zhf z_8l-+vd2nUkaW*-r(e@V-z!1gj2+mCllTP}aR-0m8J?p!RVV?eRy9;d8?;4xbbwyn z1x#D94PW3(d<6-^PVB~^+h$u#suGtPXoj|!hXqK*m)Hr3+fH$hj-L2Ugv4^Zs>uYkXVmEGTy;dGk4Rm1RrA^c0wAYD2ky5YQh^nkiV_?J>$X&{=1No z@m z@J0ZlkpS6lCSwW~VKJ6S;YW}SY7N#yHmt4KiCS!1zSxAF*o8FwhICwnY<~*dp9AtB zKU`51vRx)%6n4Uv44Hp*^T4bn3t6K5A^hU9lnUYbLUs} ze|g9_nQ=1hq?!t5ZBl0R|D@Z2(UPc0G_prx9%Y;G3@_mDiY)`x5sZEqfT6D(*s=We zd3SX)zO>9;Z2%-wX%$Hz#;HtfL(oWxz+!vj3T zBeZ%=>Iuc5oWUQs3w>f5adWDR>vtQ7o@PDSOC1MgCJrW^AU;(zlHGe*yK<|78>)e*c$jnok`mb1Io^@BRwbD;%>L)VW zb1=e*%;Fq<*simZ@b}J{yif~uoTz_2CfcAKLXm`IOvV&^iWOLe)v#S@ko~NQY;gqmRB-Y>wsyiE$E|`RqaLiA0p=1GrvJXF_NI{wpX6(fy7lU%Z z)xeMIQ&yPgJ$RoYbPX5?`bF!3>c(QWj+ehaOp+5mRZB4(&$_)iW4#z;9LmKBh5h-W zHNBs)koxzE`T=we#&B}AfVwTq2~D|Tpp-P4UX8r0dOlP}6?mZ<^y&>_dN7hP9%f9y zMCesdXZj*uLopKrBOIW|Bw33~Ibu>3)!>IZXoO^Zf|Xc@&Cp}`8`FP4A%0G9hC3v- zrBD%-Pz!3Tdoj@;$#@&%APw*d)?q!iVFz|Y8s;}#fD;YmirT1$WK6|0EWjs_Mogv= zr6H3GfyR^uO{PIlYSkmlSGWC8^tydL55iu1;xX zSzk$A{OgOxZ237 zU=RjlJj|GYiI{{h@GH#j#SBVobV6qg!B9kEI7VO+KEQk|z%s1CXIPI7*n^*N6;JRK z&)`tpz;9=gCny9r)IfdE%w|psYN!0@*zC{$>7{a3F#DOoY$pkMpUfKv5!r9K9Cc*w zjm>}kLq7V@RvVl4kT#X}vu`G84hgk=NcD*RtH_llM1K=H>)artm(|TjcDIcgXYwr! z-^@&~okd|v{kEnC|3ZZA=UcQ{F4~S|-%RJFek=1=O)!uqNXB{GME(*aFy6r{lqpFL zVIGddSc-hXRy;uE(gtNCzQHkEz+KQU%gy?|x3RwMtY*$%lf7#VnWX_pwpVkTx`4(7tvUey0LW-j0*UO}PJ43LHlKrF^V8g&-I zzk)dT@Z7nF5BdM$k0(xicjCJn-^t}(+QiPxsS_v6`jh%&)|1(f0o8%VUv#}nLHl!0 zGO&?W{EIVD_JbAKvKfKsTXE*w%ggE6mG+Xt2GZ3C6Uw6^DnU{^0J)|23(A!;ycV7) zisC4Nk_bRp8QOn76RFsX12~N1IEmkJ71!|;ub`CW#psU-_yT{xu^f4X{3wfZD31!L zhyaYoVl2gStSV=wk7i;MzQEV`1}AV5r|~1sAi%^}8T~K-p$JDLMj#IFV>Uj(LY%@+ z_yuYB4G-`Tf8w#3yC(=JFJoS9XMT}e=HOQPY`guptqa$e)OY9lylsE4-|KIfYbM#U z;NSddKws&uq&=nGXtT^FlO~d;ktWHlIV9{7a*3=&P@*7}?Mr3HU{iVi4Y*TMbGTMu zhy-7>u3)h4i8lt?emjF>EA@Dbp1cGdyZZCnlx1B)qCKJip{@2OxB6G}>a%qA@*7<;@ix|C9kP<|%0>P*fdPm7g~AzaQl_=?w2K#y9XlqMf=gir z3m=pVzthsbKDhNDC!;)vEv@xF{ZPLuu}bZBL0l@yNu3D}!zYDu1&91gj&bF$OFxs@ z@5qA8)1Aqb?S*o2Y}TCZr(R`Vz6p{?O0s?z)4p@d{ig@@E5=)sWpA{b-e!7RWp5_E zdGuzHCXuGd-UPXYe?3vv_xSHj=JznwpWjliMpe(A>ECE_aK`bLWtpRgS=}wG^_1~R zDQTC_An&vRSK&~Feh+z22yXB}Q#36n3KNX6&42lIXIoU5{L zL`5$StdNRrxPS`P*aM&%E?{7F4p4Cc(KUF)6Evzxe~AyV3>R<%4^g3(LFt8o_ynKh z0v^|5GpX*)umiF99OrQXf1sKVqkhcAB3wW^ylOLg09SxKe0r1XkmPp$=IPTnpI#+X znK^Woi$k71{Z{>7oz!MCr)?8veO?AsxeboVQORCg4ofb|9J!d8^fIp}Jvkp0_GZqr z&y^*zP8Q1?xv%B2*_P;XU?peHBoW$WZ+pERrTwJc^d{4rOPWS+7HJau=J>lNApD90 z;kWMT!EbTBd1g1aKV+~*&!l6PgVVF@fU2X zpm+zc&7(e|FbBtQ9A^XAj4m*dKad?O8X*PW;Q}7u6@r5}6^A+a6&Fyx4%;UBV=AWM z08Zj(T);h4uWL}eu?yef3@#vVJ`kS2k`@BH}&6d^7XLYE!(W!Ga1=? z3j3ea8%)alQ+wswRDab>|I|b@kE67Ubx(B;kol((t4gwRlpHF5vfR?hPm;)?G6N?r zr_rwSa_q;UUm5$xv^C_L?P%YI+1pOqOxi1#wzAIcW$dh;f0Qd9I8W{)Lp%9eh_zwX zpS!^`jc>C9ENpe1&GkNaW*Q3@@_e(Ix4X{bsMy#$+*)n6@n_dJ+g*F|hW2D;BB*(w zJvlDI_DcK2IMG;p(rt+Pq*=1%1Ww`#+f(FiCxzyUQ78FK3**oMC4EXhz2Od%n;5KUK~2O&J+0m#+K(a?f{- zp0@9%YqzUtf0i(RR%!O1O{*yTId*F5@A~sI!CQv%HGH;zLR@|2VeoMKUFO zME&aj9W376t2u95-@g5&y`?SncGKHT zYp=|v(wnJGGi&_?{6YS>1+tg>r@NAtj~w$`U985E#!uA*{Hc1O?2RmqD~+`oTd)}ID%%H4sO}K|#wWg_;Egx;Q)=gYbHAKx?`M^@e`6K=thFmT#ASQ8T-M)D z$z}chtU1=-&noMm?IV^~&R(>jMz#<2&#emnIji8GvkLw>tKgqo6Zq#=1^=8?@XuKV ze`}5^_~)oXKyFnC$XSJeoK*76@qeBAt<*h1m#wRAhil_ zY)C;$9cyw;hswt5_T5f?YtL84iq=Op9n@~8QZ0u;{)X#TLotUI4F9`&IuwyVnO4%j zzmfcG$FaiiPgK?^?bj92{mBlWi^yWPmx^$>yweirG`5j@-nxoA`?fKLLP|b)R=qhY@~VHthgG$PS8{A< zaI%Cr#d1H_(Z}Fq-BQINz){|SotB3|eX_T6=DShYz)&J{*6xGkvt8v)&2Hq53AND_ z=^P>6gTnOxh3Cxww?8o3=W!|F|HIlVK{fJn5o|U^i2k5921kY{1!LMcJ0HODG>)I#gfYK|SX$*-z8w$&!{Ri{)P_iXQ5-Eo$| z;IjQ%4aW?F_Vo2yjtSaih__=sZE~r%<9pg<4IjrA+GK){W0-An`#B%SdJcK=voiUu zCHx&f)F!|3cf4u)Fzea?#}$Uo+dBn1wl);Bt#wnSO4A3gt;>QO6U{+NPo_g0f|P<} zuzKc1aaP(W$@DJLH%TuQql_RH1(n9t4b7|b^OAYO_9)$yQHBSvM>=#<3cA={S39q} z(vxLv9Y-v$9K}0?D<-8Qk1_OGk@RFSyi-x7dG$hZ!v+uRuaqD8Lw-tLU%ZgULzngr zj6d_L8)A9o`fr7Hy;iJVbsSCRPWx)RwR+MfW76eX?Urn9>Qwpq#6zaP zZs;{_LdoI{Lsk}A_-Mz@Z@lWfm(q6H;%+P7xe_;C?Ii=Qt$e6hJqpGJ2sKU-Mo(wxtCGzsdozFiBaNvXT%{djB5 zv)11iZSMWUS5^P?UQuJ(@}qtC_IOre^RTh{cgM<B~BrTfWyn()z)g zrxS`e)$`cl#MBaORe z7N0$La{ICy^OXK*;%^H#Zm_o7wypTw{ZHJBOgg*oBZBvj~Y#%Jh@!S@oir}8*y&*PbYrr zF!cw|t?%~l{rc!1LyUXI47mIKzGgckS9aU*MYm3i zM{Y^_>F0j)OZ=on3@WqZ+@FtI|GKx-^EwOa-tBSb(B2VUR_)q4`R*ulzrn2vY-(0w z=Z?vng6e!2-EUXkh^J@WcMd!o+55(V@h;Q7+8%6wt=qOQPA*;=^xpf$(~|bq`D}j7 zxN)n#Y1%B{kCQ9ED88lT#_8LNm+}8CPl~ZyrM8#8kDMMn%&F`7<{uQSd;f8p;?2@m zdW9Glw76XPsM_PnT`guXu@5(~H$EY;NCv`s}LjE?Kel;)Q%0b{guLA6~ij z>&?`myOuUGkAHmY=U;z&YkuYJGv=N6;GHL@>%9IZ z=i4t1Exp^lP*v{^BVVO`wtdr}kIb+C9Moi2+^`E5hYjBQqSC>=4R){otwqs&hB6uV zQwDYXq+I#XcDE`mZ|dC5{B_+&qr=0O7g{y7LcWdDq8l{6GG}=I-S1e!X2khi@@QMS zWVx1G@|+*~eo%?gZ(W>l_HgY4^SsG-jy~JJzfsF;`?rlQP)PTK)1# za?7q2x=!_|+33$wrNVC2P4j48^Xog7@+Qt1P${cMwY|7)Z2aA04i4u1AS&%Zv5}7Ecci1`|^7DkbUzD zo&LVa(E^VGho{eVdHc~XRR`Alvqa%`@5Hye|M7`Q-mjk)*Zd49XY?#}F-GiTE}_GM&+INZhFw%S|^freN-aU zWrp`7t68n81h_Yy@Izwj0+Z)oYZ>M4T-E33{^n=%wy1Eso}CuoBV^?A<1LPn`h|H%_Yl1x(>PdU;vjejSmp1^Oi1sa-B+ zM(i0k?W?&nrj@99HnLjDY3VH&gw<#_XUT^5_N8}RGw|uky=xuX&F*i!d9&fp6*U$) zKXvq<7?jq#cT%)%)UcL^;#?e~Tw*K4mw8$^?=g=X3&OvQ$k#h<;!>vtK?S|%hYbAe zhat5eS4`Bc&@u|4X;$64ZA{CjP$x3c4)}ifQ2*L=cyVMR=?4Y+Z*^-U0&#u zjwuCyzU&h>_T;9 zCN1I0l_>+N*BqaEWW49FfF;RmV!rpZZ*QK_@W>(TIrEcj8Y2cuN>kKLcZKj3g`TJkR6B6I4++o!+;2BHOt_yjNz3{T!J%fDO5^qa|qMYe3ny zcp=6;P>66WLR)Q7#y+_4dNFRR4RPZ`l?f3&^Ofo`4yz$!yIL?NvOVK+I}f?}S`P^Jcx$&dOFO^r4ZGkYx~*JWI-3|5rEYBE?!25iWE?{b5% z+#o79mB~#-+<{Tse6xXcj7eL&v_DE~=3)ZGc9pNN1k11-E3gt&c9l4NeJWk#8(8G4 zl}*@;t=NV{Bw;7^;9Km&ejLCdFwkB(iWK~W6F7x4I0u5ET)-uy;tH;UL9t327#FE2 zw^+CX23#pLgqx2g?D9}& zN69=K>e?*4gZ3DLNX)@HY`_uRKswaCRB}-kRq!5~BN(GG2J`SW60jE+kqUzy-EVM3 zAi5#gjTtfrVtpLYAn1xdIt2cBZHCy5h>QL+kyYvGGo zSc>JC>&1>E4kx@xN4SL&z8n^K`*Qpzv#=10QK>p1K~vm-u?C3_x8%7dA;8!89tSYE z7K7U{89R`I<1p1`v^a_*x(+*nd05HyY8UoE3nZb-gN}!=Z$MUp)}QB76z!ChP!8VoGyf!xD6BNwpWlpdIJoI&NWAD^etO z!=W{a5EZZ(o3I6K+i;B09|hZTX21hma0o|GC5U_wjc^E;aRc{Z*N$|91RQ9`@juK$ zjrI(>hWt+2b=Y+vHo#A6DLUq(PDiG5MQ5bK^ge?sQ3}=32oF%W6NB_I7pt)rv%8Vq zVI{)5GXN12;M9ZT@79A*U_Fv?4AXiORal0bAw*?gPD^|qN}@y(B0u2Fz)XboXC2JM zoB`yih(mA~7bV2tt$|Dpi~8s?i0ckCjfYA@IUUdtRU^5`pb5T;;!xmQ+!;yY8^z#i z^hOLO;1}3@$m?()&CD(E$C?<<4kV-QN3<@XD`sLX;vrL=Yma#N1J$QJKOKL>` z#zMyeT);g%MALJWsL%^TQ@Iji8r(0FkntX3u@Re5_Zk61TNF;?_*Y7!Ac3EdhMVxd z!ODd0ax}-`GL4fYUv83LY4WX_zS!FxcNG zyTsc_#x2}I>O;Qt5yua%PlyS~Xm1(WETfvc;S;Qb3}AN7U>m3e8KgW25%?CTaSkyG zqj<0sGFX|LhPk&A-7p$sZ~+-G8o56uANNy32FWeQcE~`uX7=2bhH!Mt&$<|c<__E- zgHY6VWLn*Rc9odk5@Q>(p`Bp+HyMatjaP- zK1$xqW%=JvDS6vb(M=uHx9JY_=%5z+c#i6*-|oPOs(u|*dtQv{p!!sk_2_ssrc*Oh z92Hx0XQga74_kInOzA4GJ1A=U+wwsrPr4($gU)S?iltjqzTb*>2N*1`+sb~i zKRp$@^l~gV;0`}7k8FzyACFGTenSc&%wT9mQDp~T*jKODQ7zku_g>kU>`L@s-&hfS zOGh=Ihiq{OA|P=sTl>?3HdxTY8FmDqhNq z?^Vm?J?~uJ^U38s3eh=#Vf9?ztC7olHFJ5d)=TeIdUoRy_XEB3=JW4)(W`xxNOU!t4=UUF|y&5xGjm(?fxO*wb z6@55^a@wd*E-~YiOU!V8lWbFa?J3HAPPu$x&M_mAoAZvoE@tSrmRtRNa!EAY6qVyf zeRGK!-&|tGH!Ehe*Ib~uZz`8B%sFO!b4fG4ImC=6q4&)t(fH;PGu&&HB}+pqNZC;eI%Cm_<>Br*@iuGzEQ3 zkD)d@ktVU}yg!>tfK=kPt)f;y-Rf98Uy?w(%63I@O{CUHRVR@u&c6M$w;ZJIOqJ#O zF)DV{P>P?WwwX%3of^a*DhnGat5<%?4pA&VLoxRjB~uy5e4D~#Sy%4=W+<5h19pxx zjOmsa4dxUf$}<^wkM{GNDf*^!|jt9-+TR z=w%9rBZS_zltHOZ=sOeoa)kaCp;rj`x2Q|#zowWie|3x+6?h6@b|yMaFpbhtEP_i? zt3*G9A-puD4s0vSmtr`vGYaRcQ3peJZyJUW>C1Zs+yV#y0?-Vd5rRlWBUR(! zDmwm)(ie7OKhl~|@53!T!oB81T?>vsYN83+p&uq-)BCi|;0!L~Nhb=Mohj|X5iTeP zZ`8xPXa#Ku52LXf>yU)~IDv~O)P>4D>LL&gAwRd>8}gIeVHk}4U1^O(Br0P#*#i9|6~?YkO32|O{L(5Aaq0|MnG=o--x6532A*v7jO$Dim~Pc zVgaE;SqCu~5BZ7AZP<(N@BojnHj>vPIsS<(9E8m<&QExv7W~l)eGq|>7z-Us5Qp_R zh!m6})mM>}k6v&e!D)&5@Iw^eH4f7uzpylFmi*7db=*NIoyHnWok!goVe?6Jh=PXi z@Do1zjMEcK7FvGm<|fZ~@#zX??Zb>!H2UESEWwCmE=YKAoJM9G;S4%~o6zp@@WC~% zdKiiEn2ZJZ9LwRKMoeJ&O+t+|h)3mHv?Sxbd$cs5HQJynx?u+n;uy~2DsJHmPTRF; z`-J1)=?MjXL?9Yt5RgG4!y}legV;fCx~z;EsE@{QH!-{$d8qa{q8utA4jZtB>%kUm z!+spX8Jx#;{8)%O&Uq^EGUtOmx*!za)0cP%%cy6?qZIY@w=tW`>Zf>Aj>(AV73;$I z$H7>M1SI1u&fzj1A_E5MHMS^%GKj`REY^5fi=UB>%APcPU?En*iYr$E^uhpyV>q&g zs4ignD{RDeRIJKiFzmwt4C0Cxg&MvL`+#_@CIe_DU4}iIrYh=dHgL zgW9Xd=&$a;-}?NUKK?euhVccGP~B22jkx=kRLAWehi)b8$vNGU;M?O!>(sh|&QW^w3UR z|0GAQ56O{RLo#Fyk`W((WW<-?)rGDibV7Gbz*MZk2Kc-O6&2xwVD!N3V+4l+8fE;Nk6Y|MjX)+bS) z%(^l9Kz?R^3g&1$Bw-g0;wU6%zY7;~^^$lOEzlmF5r!ey`~g`EI`=2bK@Ezab&woE z(FIZxh=Sz!kC8W$LLSPZJfsAmN$!6V=Wr9h;pGxQ$6e2)Jj77pMz&M&4@3tnFkooI|^=!XbgL>hd* zM@ZF@>5L zqzBy9c#vGaE=~T;QHtDLCMuO2-3gMTd!QXU;R~!lll;t?21iF4%&~|j{iO(}l|BL+ z$lbSM9}eIo&LR~z@Q_UZ3A6_^&C6_2r>HVqz@5?z!bK}4sOW%J__3wYW1LS}I(;blf@4vkRmT$D=lME5a$}qDsNh24oXEkDJ z8IksZN(HI=VK`>PsVLbMelA0cNLfqENrtOG{M}3G{Y3wU}=hR-E3)&Ikue(Ya$_q zG|Sw9G|k+EG|yx}nrKoX%{0M~rkV;VRAA5_(rj}S(sa`R(tI-m(uC7aex_C0anf=5 zH|pwl>Fnpic^A^I(*wJ?9v+9Z@pQ!|u6rk8!*#C`q}?Yk*FLH36yut91WI8`JJ3-s zZPFGblbAh04OdH>P?vJFmN4IrCX?+Ps+4=sQS5(L0bz!x8+Iy25*0 zu7*SE46k0gtVnfclK!**d1+Y^WKQqBsn@kPwW0rHI}}#6*OXReQxf(UPsFSfNP5~m zAieBEAwBHpA-(I%AU*5ukWTfnkPdZIW@maAQjc_`?}T)s50t4Ir3Za1r1!iZr02W~ zq}MzT$x3?6M?gBuOF%lxXF)p24P>>_LB1Z+IbIIZG42BC6fXnm5KqbM48Nb*5iavD zN+a!2+n3?^d0Ta}JCCnJDHvE4ZrE#jiRela}e!ay^W1>dCRHwVwD< zc34h-lpP^G#%D(pue#}-_3UWiEjPX8gzUA5fyB&|@#S7sC3r4W=e&UvG;6bO;$&xAMfI60R6D)aLbaNHkfnrP%Nd>X z1`c>mN6D+?i9FU_V+PuGkD2$BvB)i&m@f=U_}h$b)-+AOI9DzEcMjjpHEOE)9vnsg zX`NcPpk!Nl5L)@thq5exy4!lSu4-QDvtIR}EdJ_eWSv<(qV#j|s*Ua*udY}3jAl*# zZK+DxRF+EU%{QnXs+2GjMsHA;t6DzRk`0qZnul2ML=!yiTg+Z0v-HR${olM3Vjk@+ zvn|QIzA|x={4l)yAf?RFW1d-$b)?Lg0{N5248F$l*Um(#MHy~Vn6Mz)Qsj_ghoY31 zPg-7(Pg-82QOi;O<4o!!K5GlMlBS~KorYvt5zl}leN)kvg~%&R$jl?@-;H;2yIgA{d&b{$C^gf zXflP^D$&o@rRT|@yYf9+#aH6SH8VEMpMDlK!!u*Fm-6gO>SP8rYr_&$4)x1HrE^GT zJCXSVWY&P5L>QGrPY=GRyV1e)m*Uq|Y04%-%#*NC3w_7D`!=RLMx&KceNA%ElfO|* zS(Db9DOS4wdey~X&>gm^C5o}@Op0Zod~W{B41y#-z2P>slF`4U-g&F))6Hd*nGK16<~~oV%Z!App?uDN6oVao zNCq#yDzC`jMOzB?%qUXJ5Sysl6|QP|HS5ubGZlL2MActXhqc}}QFUYDJZnQe$v1NiI}w9uPJdT|4Zze5_axZ>*pstwh|s=K5O0jsCuZl#H@Tq z;$EI54&|90)^8nEI~t=5dXr;nfL4`#moUnk?{cEb^NP%sSv3DI6_iq-#l)QAUY+*m zKb}`dd(Ff;mM>$!%zv^&uF7chjx5b#$0Wi0XY&zN`tuVKmC_f@G8IWk-mUuBZ@Q%3 zGnp6>oAB^5)19cJ*<1bLRkf-5R9pn>zZvxVH`TF*!PFk#OW1Qu_2Z(KSJ7?msGeTlt_{L_4js@t iEW&)7Z?iU%7J12>hGp3^>wV9f%H3M=gE%7>82%43CQKLr delta 41990 zcmeF)1z1#B1_uK#TfBw(&;`5m~bNl2y=iWPG+)SIe`*zdZTw_#{ z;m<~rh7y+f^zqZDPhw&Op9donQHWM4rG8Zp-yBg&%0cTmu&CV4U_b*UdH*kz4v2@1v%e(k9y<2)q($PGUbgq^py<$U$>qt@t^FPj%BnRH@ z*r53Pci$uCNYYZ0p-@78N&4Biq62ASm(LXE{onD?QG3iwzhOzd*Cn|BJ4qrZq{GH{ z(;j2}4a=EUH@%x;V3=!&ksEui$PtT}n%2wyevIuOktNT}JTPr2`-VjlWc`cv*9BR4 z*AT}k{&LPXOc(p>Ll&e>l%%sn$h29x6sy-UcV??rB0aQ=J4GlR@|+;i4S%LQoLWzk z9y0aFR7q-Jn#p^8*4)i|9U|z)yU1(tmv5RR*|4L<35L(62#e1@F{!*U9;WGrr6gUL zMN@0j!HH#xaeTW9nWFdkUBp^fId5HEh{cs+qA*Xeq5zhZq#7J#Udc)>C|MJ-G)pdZ zNxf8_k*}5Pnbp+{0!6lbd_vfjnjPGOw;<>mNrduH%*&sTfsEV!!+%zt;WW% z4*`SHR9R z(bpJr4>w(HyGq6-eT`9P;t;#4j)nv9HOAe;O&ox?rEb*d!n(6|Hl}rq$>8CxduCUr zrg0r(I(T?ESo?hYkbRA*fZklL}u}5{?9eWqk zL}QFSymT4|4`V$1Ofe?KeMCIkthdvRa4^Ng&lGnbU4lbpf;Af1RCrRgLsjFMGh-qnK{5;)ts~jtuCK}_%#8k)3BQVC# z(?jQ6*pw1}#`rO@b>XUp)qUNJ@nhl?(~`b!##niJ>JApJU|P}`D<-}xY)nXBH)E`r zSiz};zdi!KZpK)7l4kDimK}p4LxXw^{7UKbbu&fRo25On6%=1LQ=ENtd!5Re4#gB_ zU)?JwV_N#Und0oHD_6u=-F)4Qajx#J>rkYUgW>qxjd89{Idk{1)Ga9DY}~NBG2+#$ z>wYa_ELOhm#)wz<(!I;vu)8th)oGlZeN3wxBVOG{H`v)&tbE;#@vH8qTkmYlAYXT5 zw3v9$+1s?bFF(I0M;RAbzhV|71X(B`V zghYmf1&8Q{2RqA=iL-+9=k*C06frO;IwVRnv>!7y!7-6660Hdi9~2QfFeFkF9TMCx zEPP;i-&iqiP*7O!C{1Xzi!NY*qwaS9uDTCXtaV`nJap#|xFwz&(5jHxpzz3$#F9VM zvP|qT{?|NBg9b*0YkG%91&7B(2K5c;t%(Zd2sF|CLZU)6;b8;CX2YU`Lc=r>F}((c z25Wi;MF+WRnucjY!=ghX`ve7xV+)P$ryKU7SXCGHtr-*)>q4}Kh71XbbkXz*(S(Jt zP*hN4tR^~K6T^0+q9bF1qjj4vJ0vdtxk5qRjRn_^Iq-D`S>7#0g> zBSGwrga{c#+=HS+!^1R#VxpooK?8>d#YTx;L_~%U(ZxUYQqiv2EsxNhSm7>v=^R!> z$=>OFXf$ySeP9tGx9xuc~cfvb%2Zwu!QbE@NAy?)^5q#Q5Y0waU#w*J@YmME_kU zWx2Y}CPgcIB~DA3V#XnqIB-|?(U~0_B{$V299$&3B-S`|LX}7CXW&3xwek+SO267_ zgUI0CA$>x_$cE6cfxMHRVNs#I_4%O*7H2XR;5|~G2(FrX(Ii!9lqNcKkXVM0_(0<6 zb1s51Dw-b+sU(u#ux;aZqD>{s)w)qkSTKpIJNv7an6*9{q4M<89XR^4?3UQ(SV>vL z_V^#NM`HUE3FdS$o}GO!t2`WZaTiJ^T3zU+(uH4~B75pST#S>eC;o6LSSIEFxI9tz zP8@XQg^FoCuN_j67UgcPQIip8Z`V`FzKMnIxTgvn1^jodD6hrO{7J1NKkKGsS_TgY4fK8+1mD}31*~r`&U=ltLy8% z?Dfg(t}?0JJUy9=R=-hH-hPSm-}sa5iK%aUsZ=yFe`E|Ka;-jG7m;)M6s)WA$yzu6 z(-k?7sDdY^RbvlJltLnr5=6Qa`VJ-6A49Dk`+sz*wcYgbqidvZXF$2NeRj) zH;}!QmHFg&*;}cYUk;Rgl=%E|oa~#dvXU$2vlJ~wR0P#aG#4tL>PlBfIha-UIm+v2 zTghh0gA2AriA=b<>Qy^R8qE3v9VI6e^e=AS5cZZ&;M3 zqGx1pO~c-yqSjVYdX$r0iG*c2dA5zFU3j19p`y?mmQ@axlPj6I`}uh*;pOF#%A@jf zfVN+BbVQA6)rJlo>KfcHGBm2{!0_m3*YL=`)gnWpXtQWpss%@h?qIcs18E?lLk3oj zjNz19bma}djI!I$& zMH^}T9~=RPrr%H1F#U$~`?vNt?0{2;zSpX097BbUvi29T(X?QdZ|%V*dnA>$734t0 zrlRbY{H&rppokJwU%qNCTl1%jFJPw(^OsB6`Z-jy(*$&ADZ0n)H1=K|%36Q9W3t;N z^;!A9um4Sf{~uF8v2jvWCRO#jEt8iJ2j7W=KD3cTicxtNSlu44%hA zcI+2ea+=h^LN-h-o9onH3Vpe3L3Mwv*i`1qj)stbGbgE4Gc&0Tf(T2thUtTvSek_) z#zJyd_y1zeEVHCMhNUG3!!i#2c73<|^FHjeer{E#nVQ{jg`|L^ez8`j&zXyfl{2TZ zY4KU?qGUcF$$fSsxxHg$lCUr4;50tM#YS0@A{SF^Cdkgp^kf{1oixS}zdC`+2icG^A!MQZfN01QJcbeM@*m<cO{6MfJZ@feLU z7>jWjkDo9BQ!x!|uommE0UNOiiAb`c^6w^)g3GvqtGI^ixPesM#@~2^Jhoisg9Y*- zKdev?HgHB!c)=S!@IwvML>+vGc4)8VB@80hZ{(WmHz)}r*KgbxA(88bkjQmI$dKzI z(??O2a%P~E>(nt+usjyp?9FB#{p9RZCr}f!Zuo1t?T~BP_(mDfa@1DYHZIi?bwlL2 z$WM`1A{#^!i{y*OW;{VDTJsjrVk`bY3EKUhn2QT=poBF-ELP$sL_rV0BnQq)`w6_k zTV?NWauMakZ?d(L5<@3^Q;b~U%a8R8AHP_{SxFrr=hbFy(Tq)>79X5#al_PC&R=fCFm-75ssCyvtVKq*@|HHeoXokpxj*w_^wP;{dMX25ur1w;{^(UHpX)_y{M;brCqD7>e7G z|DxcRLTP-5y7(Sl&=uX$1EO*Sqc?^j7COwtEGU=*QGw=T0k$9!r*Il)a1Q4oD%mA1 zFPHHOuThX%W`lpH9Eeh~IkRl6%nT)PE)%WVrINX2Rp&3JYE9j~>m_nqxJRy2|0tf@ zvLV^0{ySwrYgj1r#CAVh$>kJJYS_XK_7Lro6N;c5%A+pop*|X*Aw=8N7)=m}&WJ)Z zVlWiL?8$%8zzxR;jKw%C#u6;Wa;$)81Xp7XQm_YCa23DfI&MHTl(+E*((wj`XeaGp z4@VS+XiST0c`1gfa77a|Mf%J1`!DamOn-SpA38_q2%&Q?MQE2kB<60)Ty8~XXx``Z z+M&|9WmMxVQx&&P**Y^VOXarCSKONf(B z8?;4#48T~7!+1=L~Wy#_#+Hzm!jG^v(Wt;l#{MydIA!|3qu#K9zPTf=H%Vo8Oh3jRT{4cUR zM~;hxE=Q_}6pKd+UZ4z}oOYOuU3h{L^tD2;1lOwbQi?N2H_XRxaOQN>5rOE8J~+nd ztT?SpIb`j!=sP9<(TmkZdOBZy(Qm5dpDdEVOT~MlHk$tKngZheiw}QtE8jtRdQG-e z9(9xRw>5QzE@T<>6%=8^Xi(opau%g%6tswgNVhTg5%aMC$=Hq^%9QWr!nWrKp2s6R z#uH^flY>;Gsv5;b>Y^k{p)^DeltX!Vz!NPIfL3UOwh+100Ua>_12GQc@sl#BJ5^;K z!31o@HY8&Qc0y!s3Ml0FUf!dSU(XDk%M6J&&@flDfrgN10}UZjLGHaYp8XbcaV1-s z7MLQWpe@czNoXMIY&n$2t7rG0-MIhk{;OvqbUrim zYi4M-KD3#+D+z6WCPE2@kTJi1u991}*k+xo72S+ndnJZ8Y-Z)$Hc>d&sq-r3wrufi zQ@ZP6YbAe!Ay5KV7m4f9ci zE=37wqv&~Lyvlg+D&y77jGKfmWQLArhEnvQ&CFd%X!E=o8B_R2X|l}BI1 zeiu5MSzDwp3rA+z@DXPyABa)hk64bQ_!|y%vae$Wy?9@ewgC#0v@Jn_XtHS3cFLU z;0+)6;$2$Se~nOf{g8p`7|R zbEFdGp%UdG84T01R5Ph#Ym(>}G$dK_5&Hm4!(Z?q1$>C*dF&^a<%n5dJc9)>s)11+ z6kWW-kJafWxWMp9Y~1&#JO^X8Dm%^``KL$a}r_qK@t+}fK8 z=9ldyCsV1-B$D?6Qt=VZeCQ_OJjr|qDw4T7J{XhRi)8MK3M64e3?MZo;40D)L24|8 zJC85d!uP229j9HqgSsx;B69pGYf@x8Wzz!DT1NAtFR`YN6_iC6D6A<9D6F3rGxzh0 zX*sTwQpR-)%nB+`2g|lvkr9ir1TO5h8tS1wI-(N-(HYCJ4oTPne-5ny0?`>=&=nSS zIcuUgNPz5gNgg^|$AcP|V`*9dYa0;jKn^2!( ziU)XzM|g}Ec!iIRB-&ddhsJo+SWBOlK)ohZLVUz0I5wrZgcFM3W;2R3Ug8zfkd98x zIY11=AcP|V)mn0=2o2B>X-^)eK78`Rb5}&oa=qG1=O=V%zLWc0?&smovOnh=J z^0^n@oJC(0=Rh@CP#XJ@iUK5MRkX!moFVC+KGTx`Zx9K%Um#T&FG=?5cE3nG9(>_BC*pebAexL%HV*a5i}bqt5_Cq}iV3yZrj zYm-^$h^=xXT5e;wH_Ms9c!Ty+BSM@R0>u5=F5>iHr98VPTWM8nx)2@LhU~L3n!ug? zd7u#*qbZtUET&))79$B;k&Nv)#&I3TP29q5{DILN;}|HIgLz26hSpT7g9IMpZ+wD8 zWK>YY5mgX^J{XP>7=<6O2Afg0Ewvg2+fj?r6s>Tr1EmBH@i$Z**)Ggrj+Y&&RIdnF zbfOtRepq1u1|kme7=s`2T_8I{dvri21Y#MMV>@gRDN@pxYN}!}HO_7T#bgK=Gy|O9ZP?hQ_Hls`(n#XZ+7tR9t zwX#fMrG$tAD|@0K1(%ITZX|6h{0Y_fWCsqQNf$a?*n=Aw+m&oWqi&Qb?8Xxe?#?>+ zfNDLs0E!n_+LMMFTZ4#9kQHaUUKBhW>SY`c#K|`d=QY}e80E|w?qJL z;}6`&1AM?oNF1e%RalJ_?7=?lMjd10raO8e z7{d^Y;m{%;qcIVaun3E>6wA<@WNCq(2tqJ=;{;CPA^yfAJVqQz7mr0+UKV2smcoj3 zv_=)UpekH(250dEPw@=Tv6=MVg0nb>^SFRVcntk{DYsfm`&Bu1e}AF`{DmK!((VlWiLFbZQZ7C&Pq5^xrmkcLkv*Ox3p zE!0LEv_*S#z(f3vPmuZ%F{lxOKKK!1wY-eSPv{ZK(PAuqLcM`>XwVtoqYJuXX&8kL zJFyG9k%G1noJcVkk%&eNGM+!kNPUoTDdR!L1O5A@%W+p&`nr70qOE59T#NbF@HPe2-Z8 zkdGa47iMHvM@+zUvg%lWMqy-4Hw?#2%*H~j#6_45Vu*%bn2vooiVq?wCB<^JT+=Wl z9o2|ll74WSTPUSfmX@Be!Z>-fXh~`BMH{bz4BC2qM@8)51Ww`<&f*$w!hteV7~b%O zA8KGQqA&w9F$=RX4|{M4cX1C-;TX<(;Z~#?fuWckE(YCivkqa#(T#dMoud?~Jey?> z;t?Jr4S6W2c~Ju1@Pj{wpmZeF8NCpVG06Ztlx8PoP!ILd01eTE zoi#-_bVpAFp%22~7(=SV3*PXBANPfe-kIPk1nrwhHnn+9;@DhHhFK$L<)3Q4pWwkbwEvh27A^ z(c+>aD&aQ%#6vvB8@z=S&xYX*AG}5y){f?&xHS7Wvb^5T=wbMHJKN;j8HRsZ7d9l-bk`w~bR`gq0hoZPNWu}E#4X&0 zImsG~pRf$Op}IXP^Z8H)M|Vv_fBjhL%uie`r91{GsS_xVw^{yAq@lnMbg&VIc{q*d z$VZM;hc^Nc4;xZH4=KHpls*i34DBrHV+IbR?2lARoWNDQf#=xFibF&t<>ol~$IQy3 zzlt_rNsVP(B(u$e@PufB3enXR*}4w-De zaR@g#uv>VES4jJjijqzsFGp()TR5W*8ldVpY8m{|2Gb_d0AnLIVG9ybVloGY+NguN zsE0^IVLE1DCT3yxRL;A&HkBm4PT(eP!D$v}8B~QU+~AH`n1>};ifu^74(vpU*)%C= zhd`{x2K|y%LRQ~BF7+=L_!@sOkbB0Z8nU)ssBExgL z=9cpsTOLQP{`QIVc#8~tz(?d=!Px;lFc?vY!4Uj_LvTF8%N0Dr6R1ei zQY*8bt&ErQ^w;w~zi^>X^rIdJh?;jw=7RKQ*(O+CZ z(O)~^Bx@}$S9ZyE#Nv!rkRm3seKWS;Chnjwd+LXA7>@~TLiqZH5-;;7vV6mG^RVj2* zNU@=CB4tV=9HaM1YH7(nMPAJpR#WG5(lXuX(U)Im!wn&ZFAQ1+8%}A)yF&UqMbtg+ zwTsK`se@%3egDjplB_b8<|XVQ6?UX~IF@4S0Xn*fJV?I7;Sde!VM_B6O7Btf>=^Y8 zYjO5CU9A)JSWp{hvEmd>#%X#yXo-zD4b2%TucSK5&dz3@(7Gs_9*Bx~pCi`~yy)n1 zsM$Wo8RBJaScEfOer-X~(sQs2un>!}M1(o;MM%LO?8AP<6Oqwaj3rox<=BJ6`14oB zDJV{)N}v{M<2%$v86s8|zVJIim8?mi7Cebrbu>X!G)D_0VJnW|I8NdeoJfEos0vrO z!5x9p=HBhT-&@+gX8D1nlw zg?ea+rs#z3D0_{D2~Dmu9o>*+G-eoJ1&eW2&T&`PDc@ScG%9Z^B-O4Pi`ra4y&)ECoV`ga7A5=50$T%y-4^x1tb@V3VL@zCKTIyjrkCJ*y&Zn*X zxdMuTQZbRj-O&?4IEb?t#{Oe51wUgNrsFKm;V%BdeLR3`DknquqX8PBG3Frw8?h;s zvb%*qA`bq=2_9E)71wYbZ}9;Z_ed=Gp#}oc8C}p7EAa~s;|Px87|!A{eD3oU1lpi8 zmSW|7EjuP~6qEj@u%qfDDiT_tC4$fky%B;Dn1D%`gLzno4cLkDkLeJiCTgJ$zC#9gUJ#9wYFlFttsm`*9#2TICLEe)9Q zAuy?96gf8oC-4xJ$e1RWg(SSdzCWmge^L_el7M8)9^61>61f``9ESsGTJ!>;-aZ|>-$4oVdU8@Ek##0oI6C(EiMu`7=Pg& z-XjAa@d*x3XzkDl&CwY>5RPd0Kc%Q55S`HlUC{#}7>6m?j=j*{;pHLTBLgmn3_EPNYg1V$c!Oa1bvs z`Za|S>NHvkjDX`}UXpMD7jXl((nM+X7Y%B4@%#WU`jB{*kmm=S6+@>%G`Ge3in$kL zC(%LBH?AV>^0AlvD2ei@0uT738CszO#;~&=k%0MFh(%a~^|*)o_yj4PlLOQ!3}NbXV?fI*1CP>8J9 zfm1kxtGJCvNJ9qlk|j1MhYIjSA0)%EG5InaTT$RWJq_|D>4Tv?H9glt+qsp}X!>Xz z5t|0XpSuPX#A8~98}x-fx2naGK2R3P#%;*JDsm?U*CBoY)D07`3g_`0wP=^aaU37e zLM2ODtiTnNSIbgoEJnDQEIFBz!w5C!Wx2VmOpoUG9~coEd)cNsbwf<6V7O*hSA6>< zb%ku9HC-61Vmu#s8jhX|FtYRu60r*@ID+Fii_5rzM|g~k)uBbU=YGE z2Gg(-TV+`*T_x~4-rz0XBLiKCYF7-$2#mrHNWxZJz;C#O%kUyOywM&V&-M}wkNqrH4VTi?Oti@)W!Fi*eIouj%(H;}er#Jg%F)yJ8{dtZG_@ z6~?D}vk#c1b`&P*Hx%aRo92}zXD$HWwq#m9N}Cm>l3(MTh}C!k>jJbdn1J0#C@Aym z4y25YER{t!Ovg5y#w{CeE2I**jlb~{@05DC__8>cd!4hq{CtQ4%QatXrKPwId`5iK zhxC_)KY#ojqWfM!p*L?_Zije2m=`)e;$DVa4x+3Z`aoG~K{1h6WAQU?;3ob?I*R0% zrDB*$Y^Py4R^S(`!ZsYn9X!HIyn+R(VTt?&DDhSV=3p+8u^l_H3%}wLnv!e*7=SR0 z#ayhxS{%c1oWv>2CFSN}GqxZJTQSjAmL_2l7GtR`C4L!!_sD=vAz8A89qds9O|bwA zu?30Pifyp4BPOVTil~e#7=~CVn1gvpfTca<2Nh8XjR)}31kI4;G-Eisn9d`g&mZD^ zV)&HvHMcp2Y5(bYMijg>q~i^&NSRXbKz;b50Rqqwo$)=oU}(C`|F$MPN6oJJDdGChDR- znxX?bqCW;;5W?^ruaS-ne1y6PjW6<{JSxEz9vFxS48<@^#uP0tQ!x#1@D|q2{DL-Y zV2gp6hcmc?Dn)7ju>tC0w9IIScx=LZR4Pu5M+)+lAotN3G|J+BT;^>!t?7=MX|nj7 zHT>m#!<=g`v;U*v&hj;iob58*14FZ%<#MIIq1I00I&0RavUnm(>PT^t_8RlLBYD~n zu@Lz_3rYBZYUF2248R!7LmG;bovrZ$79s^sWKU~^Ba&2}j+aGf{tJ<$O`T;W=&sx< z^S;36M}aFCd-0i_dU{a$j#9wqK9XpCP5pW{m6>Df2%m;2=lESesWMDCIEnCjm~zsF zob!MwN4pb_gDGbZ5`G6$4mT~%@lP>iwGy2V#YE8+2ey<0Sq@tc#vT*d z=~NVPlcnPD_K>C8*zYY%2XGaC;x7Jzw~s9OpaohY0PWBL9We-DDC5V8t*js2FLXc` zbVWCGM-TKwe+Oc7J5GFhsXWcOQl0|av^)upWjKKgaH>FtAPzs_3<_7IdLs}^@c@70CEnvB>?_ggqGe@Sx(2r@ zwDuT?aY%%*s2VatSu{>g&wQRl|IGkK@#0P~1h9N}v+DK#LUY z!7;prrYhA2;Yh}9JchR`gIH*B6gJhUN@$Lu7=|S5!x7x7#u@jh7#WEhDbyb>Ii!e& zX`K8p^LB*(#=BV$af~c4ZJ>rE;}BjW9hKZE#8`}LxQS(1td*#XBvTZ>}*5&(ToTxCz zJGsCkxrnS9(@UxJSiW3f4io2M0alo1mJc?}T*1VZSc@dn%wxuxNle^|9oTD}DGyXC zK9;Z4*vqti5DkQA6hwtDO+BT;OXW}=6;KhiAnLQI%Tazxoiw?%JWe^A#!<%W--QwzJZ6nCf)79FuER8xRs(C!ZyMwfKc*e(g<7ON_# z+#0Dmsu0?qW1(brGD-gS4(2DH9jQ`s-@*9gk3Xn%av@I-Zx2^5x6glGN}Hcl_BI}# z9)7Ow-kE<&-ASq~IgUc9J3%#72^glzuRIy8a{fg#S|zJ|44Y6_H3kZKR`>LD^~~~T z+DCP_>i^z8<|@m_stPHuC#cRP6RN3JK225?Rc?+^)leeFskSO_MyqTT_RiUHvMOG= zJV8}LX%VL?tdtz1TJ`0^zbJ82R8C@BXOan3P%G{kvg?1#jG<8ex6J&v%w%oM{@c#{ zW9>|0ki|fG_D5M`c3*v8&9C`rlzlEL8(CJ)xv0u0!#>KcDy~eg`Y87=WbG;WNM8JN zA=@_(*?zKX4#D)Ng7KQkdq#S=Traq#Xr58geugZD5V{1-d;d)N{5ef8ReCWO5fy^t*YwbDKAlMd#eiDcwOT5p}Iu@-er|qT~G<{ zr5f@7Vy5C9LihM84P`0OP?{-kLsV9>TFKK#HQiz`LvQhyyr_@r?w-P<&Ag>T5`!(S zD$$4<|IGLg#ab%8%d2Z;{rz`cghfRsdlu=@L^d=1w0IQ1JRS|j#zj3Xp9Pl*ETqyw97Q)kG=*|F~G zC}Z%syV}nftmdH}Zw&78Q2QH$YEN~rA(%YCQ|+fVx8z_fmDS$r1Y@wNkNR)J&J;gi z^>Vpj@=afLBiYJu)ODrub(cztTMcz|(bmn?45adi|7B1rB{g4==0qAv#YiDLrEVj& zqjuf&6a5dm*)&Wa`*FaEQozL51c()!s zW+nLVTi$zK+Z7}Jde*bWmfAm0i!3>9`T2LgsuNyA%Ex^eT|j$kP@C&T{+=-1_s^#O zm+#tb+f+QT_S3s>o0R_Z``RVmmtWh=-(pPSK2`sfYgV5aDo@=|@3lPrR?nHP2S>+! zcc#M+od+~NRW0>o^7_Op!*&%n_gqvi-0_U(I@|Hla@yqmTc&g^f3NQ9p`{iS`#AHV zLz7EIK2^9@dWg#H<*iG%NRdyU6tg;No8+)s>XmZ71zjiYvEho*_~J^5I_eVIR^de( z+V3s%ym+G#;dT`Q<~4{}b7iw-Qs}ZPRUZ!CT{A7fb64WLA{CxnZ*5$*Y=e5mRvnt6 zR#o0wNO=*eYS?=D59T*dKH4z!kHLS=lpLy$zf|-6i13^5Q@(rIcVqXO0Zui_)^EGe zd-U&j4@=Xl-?42ueoE?)jZvXh>$bgJ{lMg3mfLD4Pq5lBXwUo89d(( zrf51=z7`lbt&~-8?A*R(#|~Ay7Fw6u#;S1X_^EZn4>-nB?JM~+fnzsIE%*h_EO8y3UoA(KDf28Ox)p-57%C!|gsC)Kzz8sd^ zncSSJhfw-FHsxSY^s{iQYf4+{+4uIJ+imznxz)vWU7J6v?OH=RTX&p8%jwR2d&l`7{ll?O zQnghJrEr_BvBBf(`*|(DSKq_Fdb=s9W32oews@5?GVR8RzOBw4`|wMJbZxEJXQ_8S z7VJ2^%+@g%f;v1r?6c_O^ZR99z1MB*QA?X~eX7zSquMQP#>-ZV-p04CV;8kh`~1!2 zU#2e7zC9LxtIn%^$!1SF-L5^)We%%{ zso~}BUtSXP=HQ+aM+)pX@P*0e0)|&f>XwqSIiXi#!+<_drsbWvd4scOr2o8@TYiiw{czvn*`B}n zw_P}Ai_;H(jk>Yl+T7ctNyO_?9R~XxDKc==fcTCcGj}{((x8YEvB~pb_Z!Xy6QV<= zj;-=;U(fgPhx#jxwL^w=E?D^9=(bZj4;uH^v(7D&);XN4dG*Dtu9dcbsG+-<)F$do zN6(dWJKj6lai^90{2|tPntKPSNB6v@a@ly`ZP!-TdF@U%Sst4_Al%l`ZtUI)4R&0< zG~KE3p>aoxY}nM*VO)1c1LTsQk@m;jn(~o zg>KyzIPqua{qK&SZx&a7zSn5ESkv2mXVg2p{N|P*?;l4jXlQ&NT`zF5K<5msIU3Zx?`clCN>y=l% zH(tLvZ|J;-cXj)(4nDcX>E4aDJ(k%!^u4|EX0xIv+a0d;?9_l=gP&wSIzM+e7u+Q5VLjfR}QVaZC{7VyYsxb?Rq7n z+R-H+Z(W*yG3dDS=>h#0X$wqWylMWbK$|Uj2OaButH|;GZ_fvJ*wS_Su~idycqH~o zKUONJ_6>EXn1TgbTdfY;+4N=}t0&PPcbthee?5Nq)VAw=ei=Wr`7i6^wZs4HHL1w_ z8e5gKZ@WC}G4Foo59@Z@R=ad`O__Ixdn@g$tvS#+9UYhx9 zb8VHegKZ9nP7T_0{Y>wOZew13x9MXWTaWia^{TC^y{BM`!~UVF6D3El+p~O^bMI+k z)6zPXOshTQY)Mb?yQ8;7R0`@dZg#hP2}L~?soqSRP^Kw_tHc{Kx45GWz+t{gd$-~p7T%C{Mf;;Ex zIVxV=^{+R#i?G!W@w(%xc)fR3Mc=WimJ7i=5%+DanV%hp!GqI0JI0O5KpVql8Nu^|;%l?wn|$I6N80^{ z=kUejw&Hv!u@wI?g#H(ni;)sM z*DiiHOuB*fySAKMo7w&;c-1CySmnCr@ zOX9wg#62X5{Yl)@k+@$Yalb}lUy?7_msAtA@g3@-o?`w%T|tRxp{}m2Na1UYV1!^8 zW@0ur;5bg=2HqkA`AOvpsEpd^jIQW|(HM)VSc?tVjVri@zmeCHA^~Sh%9J+&KeR(Q zA~6l?uo0*50FNN$qkNzws-Q8Np*x0S6lP)*60sjQkctl|LNzUh@6ZL^^HZjV5ts=D zTW}iZ@Cr6o z2D1W`ew2X+0?-CMF%nwL$9C+(IXuQQsHoy4PzoLhKpTkv;%Gc3Vji|(2ejh>penkz9D% zs2=|+^o-jwY;RElRqmU9Mu|<{AdjKMw~{_6pN6AWE^YE25=jr zn~>a?hldcqC8%mjb;fXv!o!wK3!rS_B`jJ|jiDXDOB}}FyVgAWk4{*I?brpcHdHgT z#C?2#)Rt#}k%E0_$w{UcLU0gQa1FiM^Vm4zF%gTf6wNzOzB-Wq!30h~{Ic64#C2pL zEP?m|w<@TLGkAh$*c`|g7jPbrpzcg7ibD{;9QGG_eNXH$5H?11FU}+ypJ$9pQKfcI@XjJacIR_0;dI0O70h$ct#E71797O8D z7w5t_c)Wyd1g$kZwY=PkqO{^89z=7qH-;FY+fa@kTC5#TGUFghjG);?T`a*q9K_9$ zY#eErHip&{TTtRhmPcJgVmfAG_jtB_jhCBnnnE(e4NI^MJMeBgr|TJhwD^1X(&T8@T5%zBap z;*0dJVZVU}31ha9|5$<0M7}qSNobc$QX&T9x6?Xe5uT#J4q}fVumFp(a3?hd`w+j2 zX;=pR_eE>%r|O~1K?(|L!t)3P3C)p&V>k(?qhu4@ungO=3zJV!Mz8^GPSe663VF`c zpFjyT`HeD#o)~tSFEK$ojhC~yi~DfBLTiUcn1_wnf`d27UtELVEm}i#!Acy)QM9;2 zvZ6Q2-z6fbgTL?|AK`zGbs@g5_x>LFZ*!lf6Em?I>u~x3XEZ#6$0K5d_E>~H*pD$! zC_q?E$#@?3N-_B8Eivd_~? zAC@mW(sT1C=~hkV@b`&7zUkRj?e4|81tqokL3G~Do>kl_J|X``5`L1MBqznayShw0 zm1Hq3`*y@J#pSx4uWY8U*c*Sg&%_SJCR^~{5+Wbf7RuS~YA2P-LV4I--AnuV-kXo) z%|C0YhtysQmxAfaemT$Q8}od>G0*R-^SH0B{l-l9Z_M-f#yrn&%&VSlUX{nX#1`me4hZoYnPo7@5Yda8-LmtSA;>nY?IB_e1EcYbT_-a%V3_zsyMX@vN(M8GsJ>?u)q4vA zmhD{Bz}tOX{$*g}$RI{_lnYV}RBD{&O4&I^R+s5z-(&}O7@{#os6cmpRXS&7ddNfQ z=uV(-D!$2=%2m=rTqSkk8u3RB55sdI^kyXZAUs4I$=z;7{!H zR$?qc%<~ZQTlkaM*Ch5TUyhpCKMr6#LF}&+`{%^I4KeSG`oz9IG0!uI`C*)?iG2ZL zf1H?KK^(DPN9+qt;Zh;7mlx8-C-Pm^GN=h5_EE&X6fuv7^?t^B#J(!AFGTD|68n0m zIq#om97*g`h{32u^LTZ6W${mHC-eM#&ab#HMq9lgLkXze4Z8mc`eh_O{-X;<($kF z{)r7bB`+MK&Z|leo2)LT{=Cco^?^DmY`1_iaeC&_#x2hpJtxIx5%bS1$ed4Xj1$9G zWKARE#A3P}OO`jJR`On*`e)TYcl^e@4Q-(-4RjMtZbY+&Ne=toI%9=*$vPfOZc zy8OqbFL~H{wc9_{T!{KxM3tP7q+a|_)#87)N#OXLl;eBU`I8r?sN?>rV^qGKKeo!w z18N&%?K^XTXJifK_}^+BlKUP~-;vGwZK&j;v^t`$Wq)*QB^OIhf}vIa;7J8~$WuJZ zD2te57MPD^ZXHp(*avnh_r)@SeznUam;6;-T~^-zN^1~xR9)Q=`t_*V#Y|kjOHMzk zUL}4##&G%1f_FNhnSbIp;l!T{T`BP;)nOQqpYSv0U@jJ51y*7$lCTv!uowFvx?`pe zLdDNrFR^)k%S4K6Aa*WJ_kwu(;XetBCn&_9@lF3O!k_r%9K&Bn^(O+c^x5jFY>d;y zCF}^UHYyEItDD(dGqrJ^X{?}9Vb>*mj6rs7X2bzbdUpq>;dg-SvC`CcmJ!5MW4(POa}Yqw<1 z|7q;(V&bTx06cTgWp?>#U0bk4P`5}CL80gt!B!=dD*aikwz#dOLS2?pg|4B1N(^mG zADU>Qv9;G2ANpV)OnkF(pG&bOEPE!j1g_!-NtE8mhmz)JWSu6j)a3g}I_hQk;*}=O7j;vTT1~Qzye9G` zX4o_MP|yf{ER*2F+MN7e%2%0C*CG)sp{`X)Y7=TZ=*5{vG)8W`E!Dj1C*7|zQl*;I zYcbtuG2%_KA4jJ&)#I(Ng=C(INUW* zx7`=B@(x|1TuM+4$)oA9?D6c-cszMH%{t-i@!@zXJEj%!I&`P=cCNkJYT9kvRyrT(hofzIoBYt-_zZ5>8|>8fs(f`h2UDhzGV{m$rM*O1v*rU!bGK9By~ zh9Bjp|Ep!M|M`Oa$&dpxF%}kC8ex~Yjk<*;*=^q=$6WWa4EXjJg6`AnQf>dx(6@w6 zEE4(~mS7pK12>fXw~vk178u9iil9OefhZJ136w$^tb)~W8^k~rP;0G)a;ShiU>&T7 zO1RTt$SMN5XyPuo8}5NPY=9cL7iwW6)WLmF5BEa@G{OV$An1adX4nKR@DMx<3D^v+ z@CdX)J3MM=$Snl6!ej6_JOLfR7>m~l+n@`!!;|n7bi)qV3AY}AsCCzjoeFN}H}xO6DY4UX_L^~vVqZ4{ z#!Xr~ZHA5e%i1^n0q!xoa$gnM4ui}1E)um(b%}UaHa#(#;g5W@u%6D=l->{Y0&gnB LG_|R#U-16{A~}&B From feee86495003fcb29ca72a460c36db7b1fd8e6ae Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Mon, 23 Jan 2023 08:06:55 +0100 Subject: [PATCH 007/395] fix(TZInfo): Static FastMutex fails to lock when issued from another thread on linux #3918 --- Foundation/src/Timezone_UNIX.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Foundation/src/Timezone_UNIX.cpp b/Foundation/src/Timezone_UNIX.cpp index 83623c3e6..bf3c47483 100644 --- a/Foundation/src/Timezone_UNIX.cpp +++ b/Foundation/src/Timezone_UNIX.cpp @@ -14,7 +14,7 @@ #include "Poco/Timezone.h" #include "Poco/Exception.h" -#include "Poco/Mutex.h" +#include #include @@ -31,7 +31,7 @@ public: int timeZone() { - Poco::FastMutex::ScopedLock lock(_mutex); + std::lock_guard lock(_mutex); #if defined(__APPLE__) || defined(__FreeBSD__) || defined (__OpenBSD__) || POCO_OS == POCO_OS_ANDROID // no timezone global var std::time_t now = std::time(NULL); @@ -50,14 +50,14 @@ public: const char* name(bool dst) { - Poco::FastMutex::ScopedLock lock(_mutex); + std::lock_guard lock(_mutex); tzset(); return tzname[dst ? 1 : 0]; } private: - Poco::FastMutex _mutex; + std::mutex _mutex; }; From 4ceb731bba17a3110e44bdf6c1b2820db9a487db Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Mon, 23 Jan 2023 12:23:03 +0100 Subject: [PATCH 008/395] feat(Process): Add options to disable STDIO in child process #3867 --- Foundation/include/Poco/Process.h | 17 +++++---- Foundation/include/Poco/ProcessOptions.h | 44 ++++++++++++++++++++++++ Foundation/include/Poco/Process_UNIX.h | 6 ++-- Foundation/include/Poco/Process_WIN32U.h | 3 +- Foundation/include/Poco/Process_WINCE.h | 3 +- Foundation/src/Process.cpp | 24 ++++++------- Foundation/src/Process_UNIX.cpp | 16 ++++++--- Foundation/src/Process_WIN32U.cpp | 7 +++- Foundation/src/Process_WINCE.cpp | 2 +- 9 files changed, 94 insertions(+), 28 deletions(-) create mode 100644 Foundation/include/Poco/ProcessOptions.h diff --git a/Foundation/include/Poco/Process.h b/Foundation/include/Poco/Process.h index f84b68ef4..e1aa2afd9 100644 --- a/Foundation/include/Poco/Process.h +++ b/Foundation/include/Poco/Process.h @@ -98,7 +98,7 @@ public: /// Returns the number of seconds spent by the /// current process in user and kernel mode. - static ProcessHandle launch(const std::string& command, const Args& args); + static ProcessHandle launch(const std::string& command, const Args& args, int options = 0); /// Creates a new process for the given command and returns /// a ProcessHandle of the new process. The given arguments are /// passed to the command on the command line. @@ -106,7 +106,8 @@ public: static ProcessHandle launch( const std::string& command, const Args& args, - const std::string& initialDirectory); + const std::string& initialDirectory, + int options = 0); /// Creates a new process for the given command and returns /// a ProcessHandle of the new process. The given arguments are /// passed to the command on the command line. @@ -117,7 +118,8 @@ public: const Args& args, Pipe* inPipe, Pipe* outPipe, - Pipe* errPipe); + Pipe* errPipe, + int options = 0); /// Creates a new process for the given command and returns /// a ProcessHandle of the new process. The given arguments are /// passed to the command on the command line. @@ -150,7 +152,8 @@ public: const std::string& initialDirectory, Pipe* inPipe, Pipe* outPipe, - Pipe* errPipe); + Pipe* errPipe, + int options = 0); /// Creates a new process for the given command and returns /// a ProcessHandle of the new process. The given arguments are /// passed to the command on the command line. @@ -184,7 +187,8 @@ public: Pipe* inPipe, Pipe* outPipe, Pipe* errPipe, - const Env& env); + const Env& env, + int options = 0); /// Creates a new process for the given command and returns /// a ProcessHandle of the new process. The given arguments are /// passed to the command on the command line. @@ -202,7 +206,8 @@ public: Pipe* inPipe, Pipe* outPipe, Pipe* errPipe, - const Env& env); + const Env& env, + int options = 0); /// Creates a new process for the given command and returns /// a ProcessHandle of the new process. The given arguments are /// passed to the command on the command line. diff --git a/Foundation/include/Poco/ProcessOptions.h b/Foundation/include/Poco/ProcessOptions.h new file mode 100644 index 000000000..02b169d04 --- /dev/null +++ b/Foundation/include/Poco/ProcessOptions.h @@ -0,0 +1,44 @@ +// +// ProcessOptions.h +// +// Library: Foundation +// Package: Processes +// Module: ProcessOptions +// +// Definition of the ProcessOptions class. +// +// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef Foundation_ProcessOptions_INCLUDED +#define Foundation_ProcessOptions_INCLUDED + + +#include "Poco/Foundation.h" + + +namespace Poco { + + +enum ProcessOptions + /// Options to configure child process behavior. +{ + PROCESS_CLOSE_STDIN = 1, + /// Causes the child process STDIN to be closed. + + PROCESS_CLOSE_STDOUT = 2, + /// Causes the child process STDOUT to be closed. + + PROCESS_CLOSE_STDERR = 4, + /// Causes the child process STDERR to be closed. +}; + + +} // namespace Poco + + +#endif // Foundation_ProcessOptions_INCLUDED diff --git a/Foundation/include/Poco/Process_UNIX.h b/Foundation/include/Poco/Process_UNIX.h index 85926f32f..749ddde1a 100644 --- a/Foundation/include/Poco/Process_UNIX.h +++ b/Foundation/include/Poco/Process_UNIX.h @@ -62,7 +62,8 @@ public: Pipe* inPipe, Pipe* outPipe, Pipe* errPipe, - const EnvImpl& env); + const EnvImpl& env, + int options = 0); static void killImpl(ProcessHandleImpl& handle); static void killImpl(PIDImpl pid); static bool isRunningImpl(const ProcessHandleImpl& handle); @@ -77,7 +78,8 @@ private: Pipe* inPipe, Pipe* outPipe, Pipe* errPipe, - const EnvImpl& env); + const EnvImpl& env, + int options = 0); }; diff --git a/Foundation/include/Poco/Process_WIN32U.h b/Foundation/include/Poco/Process_WIN32U.h index ffe920af3..6e789e984 100644 --- a/Foundation/include/Poco/Process_WIN32U.h +++ b/Foundation/include/Poco/Process_WIN32U.h @@ -68,7 +68,8 @@ public: Pipe* inPipe, Pipe* outPipe, Pipe* errPipe, - const EnvImpl& env); + const EnvImpl& env, + int options = 0); static void killImpl(ProcessHandleImpl& handle); static void killImpl(PIDImpl pid); static bool isRunningImpl(const ProcessHandleImpl& handle); diff --git a/Foundation/include/Poco/Process_WINCE.h b/Foundation/include/Poco/Process_WINCE.h index 5f93077d4..045329e63 100644 --- a/Foundation/include/Poco/Process_WINCE.h +++ b/Foundation/include/Poco/Process_WINCE.h @@ -68,7 +68,8 @@ public: Pipe* inPipe, Pipe* outPipe, Pipe* errPipe, - const EnvImpl& env); + const EnvImpl& env, + int options = 0); static void killImpl(ProcessHandleImpl& handle); static void killImpl(PIDImpl pid); static bool isRunningImpl(const ProcessHandleImpl& handle); diff --git a/Foundation/src/Process.cpp b/Foundation/src/Process.cpp index 984fe50d8..f31a0ecbb 100644 --- a/Foundation/src/Process.cpp +++ b/Foundation/src/Process.cpp @@ -119,50 +119,50 @@ int ProcessHandle::tryWait() const // // Process // -ProcessHandle Process::launch(const std::string& command, const Args& args) +ProcessHandle Process::launch(const std::string& command, const Args& args, int options) { std::string initialDirectory; Env env; - return ProcessHandle(launchImpl(command, args, initialDirectory, 0, 0, 0, env)); + return ProcessHandle(launchImpl(command, args, initialDirectory, 0, 0, 0, env, options)); } -ProcessHandle Process::launch(const std::string& command, const Args& args, const std::string& initialDirectory) +ProcessHandle Process::launch(const std::string& command, const Args& args, const std::string& initialDirectory, int options) { Env env; - return ProcessHandle(launchImpl(command, args, initialDirectory, 0, 0, 0, env)); + return ProcessHandle(launchImpl(command, args, initialDirectory, 0, 0, 0, env, options)); } -ProcessHandle Process::launch(const std::string& command, const Args& args, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe) +ProcessHandle Process::launch(const std::string& command, const Args& args, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe, int options) { poco_assert (inPipe == 0 || (inPipe != outPipe && inPipe != errPipe)); std::string initialDirectory; Env env; - return ProcessHandle(launchImpl(command, args, initialDirectory, inPipe, outPipe, errPipe, env)); + return ProcessHandle(launchImpl(command, args, initialDirectory, inPipe, outPipe, errPipe, env, options)); } -ProcessHandle Process::launch(const std::string& command, const Args& args, const std::string& initialDirectory, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe) +ProcessHandle Process::launch(const std::string& command, const Args& args, const std::string& initialDirectory, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe, int options) { poco_assert (inPipe == 0 || (inPipe != outPipe && inPipe != errPipe)); Env env; - return ProcessHandle(launchImpl(command, args, initialDirectory, inPipe, outPipe, errPipe, env)); + return ProcessHandle(launchImpl(command, args, initialDirectory, inPipe, outPipe, errPipe, env, options)); } -ProcessHandle Process::launch(const std::string& command, const Args& args, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe, const Env& env) +ProcessHandle Process::launch(const std::string& command, const Args& args, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe, const Env& env, int options) { poco_assert (inPipe == 0 || (inPipe != outPipe && inPipe != errPipe)); std::string initialDirectory; - return ProcessHandle(launchImpl(command, args, initialDirectory, inPipe, outPipe, errPipe, env)); + return ProcessHandle(launchImpl(command, args, initialDirectory, inPipe, outPipe, errPipe, env, options)); } -ProcessHandle Process::launch(const std::string& command, const Args& args, const std::string& initialDirectory, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe, const Env& env) +ProcessHandle Process::launch(const std::string& command, const Args& args, const std::string& initialDirectory, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe, const Env& env, int options) { poco_assert (inPipe == 0 || (inPipe != outPipe && inPipe != errPipe)); - return ProcessHandle(launchImpl(command, args, initialDirectory, inPipe, outPipe, errPipe, env)); + return ProcessHandle(launchImpl(command, args, initialDirectory, inPipe, outPipe, errPipe, env, options)); } diff --git a/Foundation/src/Process_UNIX.cpp b/Foundation/src/Process_UNIX.cpp index a89251ca5..e2a0c6f5d 100644 --- a/Foundation/src/Process_UNIX.cpp +++ b/Foundation/src/Process_UNIX.cpp @@ -12,6 +12,7 @@ // +#include "Poco/ProcessOptions.h" #include "Poco/Process_UNIX.h" #include "Poco/Exception.h" #include "Poco/NumberFormatter.h" @@ -112,7 +113,7 @@ void ProcessImpl::timesImpl(long& userTime, long& kernelTime) } -ProcessHandleImpl* ProcessImpl::launchImpl(const std::string& command, const ArgsImpl& args, const std::string& initialDirectory, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe, const EnvImpl& env) +ProcessHandleImpl* ProcessImpl::launchImpl(const std::string& command, const ArgsImpl& args, const std::string& initialDirectory, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe, const EnvImpl& env, int options) { #if defined(__QNX__) if (initialDirectory.empty()) @@ -156,21 +157,24 @@ ProcessHandleImpl* ProcessImpl::launchImpl(const std::string& command, const Arg throw SystemException("cannot spawn", command); if (inPipe) inPipe->close(Pipe::CLOSE_READ); + if (options & PROCESS_CLOSE_STDIN) close(STDIN_FILENO); if (outPipe) outPipe->close(Pipe::CLOSE_WRITE); + if (options & PROCESS_CLOSE_STDOUT) close(STDOUT_FILENO); if (errPipe) errPipe->close(Pipe::CLOSE_WRITE); + if (options & PROCESS_CLOSE_STDERR) close(STDERR_FILENO); return new ProcessHandleImpl(pid); } else { - return launchByForkExecImpl(command, args, initialDirectory, inPipe, outPipe, errPipe, env); + return launchByForkExecImpl(command, args, initialDirectory, inPipe, outPipe, errPipe, env, options); } #else - return launchByForkExecImpl(command, args, initialDirectory, inPipe, outPipe, errPipe, env); + return launchByForkExecImpl(command, args, initialDirectory, inPipe, outPipe, errPipe, env, options); #endif } -ProcessHandleImpl* ProcessImpl::launchByForkExecImpl(const std::string& command, const ArgsImpl& args, const std::string& initialDirectory, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe, const EnvImpl& env) +ProcessHandleImpl* ProcessImpl::launchByForkExecImpl(const std::string& command, const ArgsImpl& args, const std::string& initialDirectory, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe, const EnvImpl& env, int options) { #if !defined(POCO_NO_FORK_EXEC) // On some systems, sysconf(_SC_OPEN_MAX) returns a ridiculously high number, @@ -222,11 +226,15 @@ ProcessHandleImpl* ProcessImpl::launchByForkExecImpl(const std::string& command, dup2(inPipe->readHandle(), STDIN_FILENO); inPipe->close(Pipe::CLOSE_BOTH); } + if (options & PROCESS_CLOSE_STDIN) close(STDIN_FILENO); + // outPipe and errPipe may be the same, so we dup first and close later if (outPipe) dup2(outPipe->writeHandle(), STDOUT_FILENO); if (errPipe) dup2(errPipe->writeHandle(), STDERR_FILENO); if (outPipe) outPipe->close(Pipe::CLOSE_BOTH); + if (options & PROCESS_CLOSE_STDOUT) close(STDOUT_FILENO); if (errPipe) errPipe->close(Pipe::CLOSE_BOTH); + if (options & PROCESS_CLOSE_STDERR) close(STDERR_FILENO); // close all open file descriptors other than stdin, stdout, stderr long fdMax = sysconf(_SC_OPEN_MAX); // on some systems, sysconf(_SC_OPEN_MAX) returns a ridiculously high number diff --git a/Foundation/src/Process_WIN32U.cpp b/Foundation/src/Process_WIN32U.cpp index 0cba5c581..ffbf6cdc2 100644 --- a/Foundation/src/Process_WIN32U.cpp +++ b/Foundation/src/Process_WIN32U.cpp @@ -12,6 +12,7 @@ // +#include "Poco/ProcessOptions.h" #include "Poco/Process_WIN32U.h" #include "Poco/Exception.h" #include "Poco/NumberFormatter.h" @@ -227,7 +228,7 @@ std::string ProcessImpl::escapeArg(const std::string& arg) } -ProcessHandleImpl* ProcessImpl::launchImpl(const std::string& command, const ArgsImpl& args, const std::string& initialDirectory, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe, const EnvImpl& env) +ProcessHandleImpl* ProcessImpl::launchImpl(const std::string& command, const ArgsImpl& args, const std::string& initialDirectory, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe, const EnvImpl& env, int options) { std::string commandLine = escapeArg(command); for (const auto& a: args) @@ -279,6 +280,8 @@ ProcessHandleImpl* ProcessImpl::launchImpl(const std::string& command, const Arg { startupInfo.hStdInput = 0; } + if (options & PROCESS_CLOSE_STDIN) CloseHandle(GetStdHandle(STD_INPUT_HANDLE)); + // outPipe may be the same as errPipe, so we duplicate first and close later. if (outPipe) { @@ -309,7 +312,9 @@ ProcessHandleImpl* ProcessImpl::launchImpl(const std::string& command, const Arg startupInfo.hStdError = 0; } if (outPipe) outPipe->close(Pipe::CLOSE_WRITE); + if (options & PROCESS_CLOSE_STDOUT) CloseHandle(GetStdHandle(STD_OUTPUT_HANDLE)); if (errPipe) errPipe->close(Pipe::CLOSE_WRITE); + if (options & PROCESS_CLOSE_STDERR) CloseHandle(GetStdHandle(STD_ERROR_HANDLE)); if (mustInheritHandles) { diff --git a/Foundation/src/Process_WINCE.cpp b/Foundation/src/Process_WINCE.cpp index 4b365773c..96b26c946 100644 --- a/Foundation/src/Process_WINCE.cpp +++ b/Foundation/src/Process_WINCE.cpp @@ -118,7 +118,7 @@ void ProcessImpl::timesImpl(long& userTime, long& kernelTime) } -ProcessHandleImpl* ProcessImpl::launchImpl(const std::string& command, const ArgsImpl& args, const std::string& initialDirectory, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe, const EnvImpl& env) +ProcessHandleImpl* ProcessImpl::launchImpl(const std::string& command, const ArgsImpl& args, const std::string& initialDirectory, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe, const EnvImpl& env, int options) { std::wstring ucommand; UnicodeConverter::toUTF16(command, ucommand); From b941a20b8c8bc9097063cf962c42723cb3ee58a2 Mon Sep 17 00:00:00 2001 From: Niketin Date: Tue, 24 Jan 2023 08:41:40 +0200 Subject: [PATCH 009/395] Fix typo in example (#3894) using a dereference operator does not work here --- JSON/include/Poco/JSON/Array.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/JSON/include/Poco/JSON/Array.h b/JSON/include/Poco/JSON/Array.h index 8fa45786c..73c9d2e6e 100644 --- a/JSON/include/Poco/JSON/Array.h +++ b/JSON/include/Poco/JSON/Array.h @@ -46,7 +46,7 @@ class JSON_API Array /// Array::Ptr arr = result.extract(); /// Object::Ptr object = arr->getObject(0); // object == {\"test\" : 0} /// int i = object->getElement("test"); // i == 0; - /// Object::Ptr subObject = *arr->getObject(1); // subObject == {\"test\" : 0} + /// Object::Ptr subObject = arr->getObject(1); // subObject == {\"test\" : 0} /// Array subArr::Ptr = subObject->getArray("test1"); // subArr == [1, 2, 3] /// i = result = subArr->get(0); // i == 1; /// From 079b50e0c19250e9d5911e8fc906d4e2d3bf84e3 Mon Sep 17 00:00:00 2001 From: "R. Savchenko" Date: Tue, 24 Jan 2023 07:42:43 +0100 Subject: [PATCH 010/395] Guard NOMINMAX ifdef (#3906) --- Foundation/include/Poco/UnWindows.h | 16 +++++++++------- Net/src/WebSocketImpl.cpp | 1 - 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Foundation/include/Poco/UnWindows.h b/Foundation/include/Poco/UnWindows.h index e9a7eeba2..32257e21f 100644 --- a/Foundation/include/Poco/UnWindows.h +++ b/Foundation/include/Poco/UnWindows.h @@ -26,15 +26,17 @@ #endif // disable min/max macros -#define NOMINMAX +#if !defined(NOMINMAX) + #define NOMINMAX +#endif #if !defined(POCO_NO_WINDOWS_H) - #include - #ifdef __MINGW32__ - #include - #include - #include - #endif // __MINGW32__ + #include + #ifdef __MINGW32__ + #include + #include + #include + #endif // __MINGW32__ #endif diff --git a/Net/src/WebSocketImpl.cpp b/Net/src/WebSocketImpl.cpp index 4db324d82..b9d3f08c7 100644 --- a/Net/src/WebSocketImpl.cpp +++ b/Net/src/WebSocketImpl.cpp @@ -12,7 +12,6 @@ // -#define NOMINMAX #include "Poco/Net/WebSocketImpl.h" #include "Poco/Net/NetException.h" #include "Poco/Net/WebSocket.h" From 0fd1749b8160825e679469b1ef8e91d17f3de26d Mon Sep 17 00:00:00 2001 From: Alexander Gololobov <440544+davenger@users.noreply.github.com> Date: Tue, 24 Jan 2023 07:52:23 +0100 Subject: [PATCH 011/395] Use map from key to count instead of multiset (#3885) * Test that enumerates lots of elements with the same name * Use map from key to count instead of multiset Co-authored-by: Alexander Gololobov <{ID}+{username}@users.noreply.github.com> --- Util/src/XMLConfiguration.cpp | 10 +++++----- Util/testsuite/src/XMLConfigurationTest.cpp | 22 +++++++++++++++++++++ Util/testsuite/src/XMLConfigurationTest.h | 1 + 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/Util/src/XMLConfiguration.cpp b/Util/src/XMLConfiguration.cpp index 2e2766bbd..055a9f5a6 100644 --- a/Util/src/XMLConfiguration.cpp +++ b/Util/src/XMLConfiguration.cpp @@ -266,7 +266,7 @@ void XMLConfiguration::enumerate(const std::string& key, Keys& range) const { using Poco::NumberFormatter; - std::multiset keys; + std::map keys; const Poco::XML::Node* pNode = findNode(key); if (pNode) { @@ -276,12 +276,12 @@ void XMLConfiguration::enumerate(const std::string& key, Keys& range) const if (pChild->nodeType() == Poco::XML::Node::ELEMENT_NODE) { const std::string& nodeName = pChild->nodeName(); - int n = (int) keys.count(nodeName); - if (n) - range.push_back(nodeName + "[" + NumberFormatter::format(n) + "]"); + size_t& count = keys[nodeName]; + if (count) + range.push_back(nodeName + "[" + NumberFormatter::format(count) + "]"); else range.push_back(nodeName); - keys.insert(nodeName); + ++count; } pChild = pChild->nextSibling(); } diff --git a/Util/testsuite/src/XMLConfigurationTest.cpp b/Util/testsuite/src/XMLConfigurationTest.cpp index 499b5d079..90c014472 100644 --- a/Util/testsuite/src/XMLConfigurationTest.cpp +++ b/Util/testsuite/src/XMLConfigurationTest.cpp @@ -300,6 +300,27 @@ void XMLConfigurationTest::testLoadEmpty() } +void XMLConfigurationTest::testManyKeys() +{ + std::ostringstream ostr; + ostr << "\n"; + const size_t count = 200000; + for (size_t i = 0; i < count; ++i) + { + ostr << "" << i << "\n"; + } + ostr << "\n"; + + std::istringstream istr(ostr.str()); + AutoPtr pConf = new XMLConfiguration(istr); + + AbstractConfiguration::Keys all_elements; + pConf->keys("", all_elements); + + assertTrue(all_elements.size() == count); +} + + void XMLConfigurationTest::setUp() { } @@ -322,6 +343,7 @@ CppUnit::Test* XMLConfigurationTest::suite() CppUnit_addTest(pSuite, XMLConfigurationTest, testSaveEmpty); CppUnit_addTest(pSuite, XMLConfigurationTest, testFromScratch); CppUnit_addTest(pSuite, XMLConfigurationTest, testLoadEmpty); + CppUnit_addTest(pSuite, XMLConfigurationTest, testManyKeys); return pSuite; } diff --git a/Util/testsuite/src/XMLConfigurationTest.h b/Util/testsuite/src/XMLConfigurationTest.h index ca2a034a1..a9e64735d 100644 --- a/Util/testsuite/src/XMLConfigurationTest.h +++ b/Util/testsuite/src/XMLConfigurationTest.h @@ -31,6 +31,7 @@ public: void testSaveEmpty(); void testFromScratch(); void testLoadEmpty(); + void testManyKeys(); void setUp(); void tearDown(); From 5430b4c5b6d5c4f0bac8008ed6a961fa2781e4b3 Mon Sep 17 00:00:00 2001 From: Byungjun Lee <40881444+OneTop4458@users.noreply.github.com> Date: Tue, 24 Jan 2023 15:55:17 +0900 Subject: [PATCH 012/395] Fix Aix Build (#3860) * Fix : Aix System NumberFormatter Build Error * Fix : Aix System OpenSSL 3.0 Build Support - https://github.com/openssl/openssl/blob/openssl-3.0.0/NOTES-UNIX.md?plain=1#L110 * Add : Aix System Gcc Build Support * Revert "Add : Aix System Gcc Build Support" This reverts commit b9a4b90e39ed0a6514a1fe24ae5564560553876b. * Add : Aix System Gcc Build Support --- Crypto/Makefile | 4 + Crypto/samples/genrsakey/Makefile | 4 + Crypto/testsuite/Makefile | 4 + Foundation/include/Poco/Types.h | 2 +- NetSSL_OpenSSL/Makefile | 5 +- .../samples/HTTPSTimeServer/Makefile | 4 + NetSSL_OpenSSL/samples/Mail/Makefile | 4 + NetSSL_OpenSSL/samples/SetSourceIP/Makefile | 4 + NetSSL_OpenSSL/samples/TwitterClient/Makefile | 4 + NetSSL_OpenSSL/samples/download/Makefile | 4 + NetSSL_OpenSSL/testsuite/Makefile | 4 + build/config/AIX-GCC | 82 +++++++++++++++++++ 12 files changed, 123 insertions(+), 2 deletions(-) create mode 100644 build/config/AIX-GCC diff --git a/Crypto/Makefile b/Crypto/Makefile index 732eb031c..6542b5b7b 100644 --- a/Crypto/Makefile +++ b/Crypto/Makefile @@ -8,7 +8,11 @@ include $(POCO_BASE)/build/rules/global # see https://github.com/pocoproject/poco/issues/3073 GLOBAL_SYSLIBS := $(SYSLIBS) +ifeq ($(findstring AIX, $(POCO_CONFIG)), AIX) +SYSLIBS = -lssl_a -lcrypto_a +else SYSLIBS = -lssl -lcrypto +endif SYSLIBS += $(GLOBAL_SYSLIBS) objects = Cipher CipherFactory CipherImpl CipherKey CipherKeyImpl \ diff --git a/Crypto/samples/genrsakey/Makefile b/Crypto/samples/genrsakey/Makefile index b891a960f..0f8be4c6b 100644 --- a/Crypto/samples/genrsakey/Makefile +++ b/Crypto/samples/genrsakey/Makefile @@ -13,9 +13,13 @@ else ifeq ($(POCO_CONFIG),QNX) SYSLIBS += -lssl -lcrypto -lz else +ifeq ($(findstring AIX, $(POCO_CONFIG)), AIX) +SYSLIBS += -lssl_a -lcrypto_a -lz -ldl +else SYSLIBS += -lssl -lcrypto -lz -ldl endif endif +endif objects = genrsakey target = genrsakey diff --git a/Crypto/testsuite/Makefile b/Crypto/testsuite/Makefile index 034d999e5..8ec1c2707 100644 --- a/Crypto/testsuite/Makefile +++ b/Crypto/testsuite/Makefile @@ -13,9 +13,13 @@ else ifeq ($(POCO_CONFIG),QNX) SYSLIBS += -lssl -lcrypto -lz else +ifeq ($(findstring AIX, $(POCO_CONFIG)), AIX) +SYSLIBS += -lssl_a -lcrypto_a -lz -ldl +else SYSLIBS += -lssl -lcrypto -lz -ldl endif endif +endif objects = CryptoTestSuite Driver \ CryptoTest DigestEngineTest ECTest \ diff --git a/Foundation/include/Poco/Types.h b/Foundation/include/Poco/Types.h index 6489a6f9c..1b39fb699 100644 --- a/Foundation/include/Poco/Types.h +++ b/Foundation/include/Poco/Types.h @@ -49,7 +49,7 @@ using UIntPtr = std::uintptr_t; #if defined(__LP64__) #define POCO_PTR_IS_64_BIT 1 #define POCO_LONG_IS_64_BIT 1 - #if POCO_OS == POCO_OS_LINUX || POCO_OS == POCO_OS_FREE_BSD || POCO_OS == POCO_OS_ANDROID + #if POCO_OS == POCO_OS_LINUX || POCO_OS == POCO_OS_FREE_BSD || POCO_OS == POCO_OS_ANDROID || POCO_OS == POCO_OS_AIX #define POCO_INT64_IS_LONG 1 #endif #endif diff --git a/NetSSL_OpenSSL/Makefile b/NetSSL_OpenSSL/Makefile index 8fd4537ba..af173f613 100644 --- a/NetSSL_OpenSSL/Makefile +++ b/NetSSL_OpenSSL/Makefile @@ -5,8 +5,11 @@ # include $(POCO_BASE)/build/rules/global - +ifeq ($(findstring AIX, $(POCO_CONFIG)), AIX) +SYSLIBS += -lssl_a -lcrypto_a +else SYSLIBS += -lssl -lcrypto +endif objects = AcceptCertificateHandler RejectCertificateHandler ConsoleCertificateHandler \ CertificateHandlerFactory CertificateHandlerFactoryMgr \ diff --git a/NetSSL_OpenSSL/samples/HTTPSTimeServer/Makefile b/NetSSL_OpenSSL/samples/HTTPSTimeServer/Makefile index 41db06f54..b2b413fa7 100644 --- a/NetSSL_OpenSSL/samples/HTTPSTimeServer/Makefile +++ b/NetSSL_OpenSSL/samples/HTTPSTimeServer/Makefile @@ -13,9 +13,13 @@ else ifeq ($(POCO_CONFIG),QNX) SYSLIBS += -lssl -lcrypto -lz else +ifeq ($(findstring AIX, $(POCO_CONFIG)), AIX) +SYSLIBS += -lssl_a -lcrypto_a -lz -ldl +else SYSLIBS += -lssl -lcrypto -lz -ldl endif endif +endif objects = HTTPSTimeServer diff --git a/NetSSL_OpenSSL/samples/Mail/Makefile b/NetSSL_OpenSSL/samples/Mail/Makefile index d1201f434..a001a0660 100644 --- a/NetSSL_OpenSSL/samples/Mail/Makefile +++ b/NetSSL_OpenSSL/samples/Mail/Makefile @@ -13,9 +13,13 @@ else ifeq ($(POCO_CONFIG),QNX) SYSLIBS += -lssl -lcrypto -lz else +ifeq ($(findstring AIX, $(POCO_CONFIG)), AIX) +SYSLIBS += -lssl_a -lcrypto_a -lz -ldl +else SYSLIBS += -lssl -lcrypto -lz -ldl endif endif +endif objects = Mail diff --git a/NetSSL_OpenSSL/samples/SetSourceIP/Makefile b/NetSSL_OpenSSL/samples/SetSourceIP/Makefile index e37076444..540713f70 100644 --- a/NetSSL_OpenSSL/samples/SetSourceIP/Makefile +++ b/NetSSL_OpenSSL/samples/SetSourceIP/Makefile @@ -10,8 +10,12 @@ include $(POCO_BASE)/build/rules/global ifeq ($(POCO_CONFIG),FreeBSD) SYSLIBS += -lssl -lcrypto -lz else +ifeq ($(findstring AIX, $(POCO_CONFIG)), AIX) +SYSLIBS += -lssl_a -lcrypto_a -lz -ldl +else SYSLIBS += -lssl -lcrypto -lz -ldl endif +endif objects = SetSourceIP diff --git a/NetSSL_OpenSSL/samples/TwitterClient/Makefile b/NetSSL_OpenSSL/samples/TwitterClient/Makefile index 86523cfd2..c1a0e5599 100644 --- a/NetSSL_OpenSSL/samples/TwitterClient/Makefile +++ b/NetSSL_OpenSSL/samples/TwitterClient/Makefile @@ -13,9 +13,13 @@ else ifeq ($(POCO_CONFIG),QNX) SYSLIBS += -lssl -lcrypto -lz else +ifeq ($(findstring AIX, $(POCO_CONFIG)), AIX) +SYSLIBS += -lssl_a -lcrypto_a -lz -ldl +else SYSLIBS += -lssl -lcrypto -lz -ldl endif endif +endif objects = Twitter TweetApp diff --git a/NetSSL_OpenSSL/samples/download/Makefile b/NetSSL_OpenSSL/samples/download/Makefile index c4631aad0..1fd0a4400 100644 --- a/NetSSL_OpenSSL/samples/download/Makefile +++ b/NetSSL_OpenSSL/samples/download/Makefile @@ -13,9 +13,13 @@ else ifeq ($(POCO_CONFIG),QNX) SYSLIBS += -lssl -lcrypto -lz else +ifeq ($(findstring AIX, $(POCO_CONFIG)), AIX) +SYSLIBS += -lssl_a -lcrypto_a -lz -ldl +else SYSLIBS += -lssl -lcrypto -lz -ldl endif endif +endif objects = download diff --git a/NetSSL_OpenSSL/testsuite/Makefile b/NetSSL_OpenSSL/testsuite/Makefile index a109b3c7f..6987638d7 100644 --- a/NetSSL_OpenSSL/testsuite/Makefile +++ b/NetSSL_OpenSSL/testsuite/Makefile @@ -13,9 +13,13 @@ else ifeq ($(POCO_CONFIG),QNX) SYSLIBS += -lssl -lcrypto -lz else +ifeq ($(findstring AIX, $(POCO_CONFIG)), AIX) +SYSLIBS += -lssl_a -lcrypto_a -lz -ldl +else SYSLIBS += -lssl -lcrypto -lz -ldl endif endif +endif objects = NetSSLTestSuite Driver \ HTTPSClientSessionTest HTTPSClientTestSuite HTTPSServerTest HTTPSServerTestSuite \ diff --git a/build/config/AIX-GCC b/build/config/AIX-GCC new file mode 100644 index 000000000..d039e8ac8 --- /dev/null +++ b/build/config/AIX-GCC @@ -0,0 +1,82 @@ +# +# AIX-GCC +# +# Make settings for AIX6.x/gcc 5.5 +# +# + +# +# General Settings +# +LINKMODE ?= SHARED + +SANITIZEFLAGS ?= + +# +# Define Tools +# +CC = ${CROSS_COMPILE}gcc +CXX = ${CROSS_COMPILE}g++ +LINK = $(CXX) +LIB = $(CROSS_COMPILE)ar -cr -X32_64 +RANLIB = $(CROSS_COMPILE)ranlib +## Please note: AIX does NOT have library versioning per se (there is no 'SONAME' capability). +SHLIB = $(CXX) $(LDFLAGS) -shared -Wl,-bexpfull -o $@ +SHLIBLN = $(POCO_BASE)/build/script/shlibln +STRIP = $(CROSS_COMPILE)strip -X32_64 +DEP = $(POCO_BASE)/build/script/makedepend.gcc +SHELL = sh +RM = rm -rf +CP = cp +MKDIR = mkdir -p +LDFLAGS += -Wl,-bbigtoc + +## http://www.ibm.com/developerworks/aix/library/au-gnu.html: +## > "/Using -brtl, the AIX linker will look for libraries with both the .a and +## > .so extensions, such as libfoo.a and libfoo.so. +## > Without -brtl, the AIX linker looks only for libfoo.a +# +# Extension for Shared Libraries +# +SHAREDLIBEXT = .so.$(target_version) +SHAREDLIBLINKEXT = .a + +# +# Compiler and Linker Flags +# +CFLAGS = $(SANITIZEFLAGS) -std=c11 +CFLAGS32 = -maix32 +CFLAGS64 = -maix64 +CXXFLAGS = $(SANITIZEFLAGS) -std=c++14 -Wno-sign-compare +CXXFLAGS32 = -maix32 +CXXFLAGS64 = -maix64 +SHLIBFLAGS = -Wl,-bh:5 -Wl,-bnoipath -Wl,-blibpath:/usr/lib:/lib -Wl,-blibsuff:so -Wl,-bautoexp -Wl,-bnoentry -Wl,-bM:SRE +SHLIBFLAGS32 = -maix32 +SHLIBFLAGS64 = -maix64 +LINKFLAGS = $(SANITIZEFLAGS) -Wl,-bh:5 -Wl,-bnoipath -Wl,-blibpath:/usr/lib:/lib -Wl,-blibsuff:so -Wl,-brtl +LINKFLAGS32 = -maix32 +LINKFLAGS64 = -maix64 +STATICOPT_CC = +STATICOPT_CXX = +STATICOPT_LINK = +SHAREDOPT_CC = -fPIC +SHAREDOPT_CXX = -fPIC +SHAREDOPT_LINK = +DEBUGOPT_CC = -g -D_DEBUG +DEBUGOPT_CXX = -g -D_DEBUG +DEBUGOPT_LINK = -g +RELEASEOPT_CC = -O2 -DNDEBUG +RELEASEOPT_CXX = -O2 -DNDEBUG +RELEASEOPT_LINK = -O2 + +# +# System Specific Flags +# +# Please note: add -v flag : print out how gcc performs compilation on the screen. +# see https://github.com/pocoproject/poco/issues/3795 +SYSFLAGS = -D_REENTRANT -D_THREAD_SAFE -D__STDC_FORMAT_MACROS +# +# System Specific Libraries +# +# -pthread is just that it should always be passed for a program using threads on AIX. -lpthread is not enough most of the time +SYSLIBS = -pthread -latomic -ldl From c693b0b1b267be91d53fa4bcea6a6e80127736bb Mon Sep 17 00:00:00 2001 From: "Fabio R. Sluzala" Date: Tue, 24 Jan 2023 04:00:15 -0300 Subject: [PATCH 013/395] Remove unnecessary duplication of std::string in NumberParser::tryParseFloat (#3864) --- Foundation/src/NumberParser.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Foundation/src/NumberParser.cpp b/Foundation/src/NumberParser.cpp index ab3ec14f8..bb73ce4c3 100644 --- a/Foundation/src/NumberParser.cpp +++ b/Foundation/src/NumberParser.cpp @@ -188,7 +188,7 @@ double NumberParser::parseFloat(const std::string& s, char decSep, char thSep) bool NumberParser::tryParseFloat(const std::string& s, double& value, char decSep, char thSep) { - return strToDouble(s.c_str(), value, decSep, thSep); + return strToDouble(s, value, decSep, thSep); } From 85c68e7a81e7b443ad3e712bea0b3c8d692e64b3 Mon Sep 17 00:00:00 2001 From: Yevgen Pogribnyi Date: Tue, 24 Jan 2023 09:02:47 +0200 Subject: [PATCH 014/395] Fix epollfd validity checks when compiling with wepoll (#3855) --- Net/src/PollSet.cpp | 7 ++++++- Net/src/SocketImpl.cpp | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Net/src/PollSet.cpp b/Net/src/PollSet.cpp index 925d19e13..dfd59b62d 100644 --- a/Net/src/PollSet.cpp +++ b/Net/src/PollSet.cpp @@ -88,10 +88,11 @@ public: { #ifdef WEPOLL_H_ if (_eventfd >= 0) eventfd(_port, _eventfd); + if (_epollfd) close(_epollfd); #else if (_eventfd > 0) close(_eventfd.exchange(0)); -#endif if (_epollfd >= 0) close(_epollfd); +#endif } void add(const Socket& socket, int mode) @@ -146,7 +147,11 @@ public: close(_epollfd); _socketMap.clear(); _epollfd = epoll_create(1); +#ifdef WEPOLL_H_ + if (!_epollfd) SocketImpl::error(); +#else if (_epollfd < 0) SocketImpl::error(); +#endif } #ifdef WEPOLL_H_ eventfd(_port, _eventfd); diff --git a/Net/src/SocketImpl.cpp b/Net/src/SocketImpl.cpp index 1e9404b3e..6f1ce8552 100644 --- a/Net/src/SocketImpl.cpp +++ b/Net/src/SocketImpl.cpp @@ -646,7 +646,12 @@ bool SocketImpl::poll(const Poco::Timespan& timeout, int mode) #else int epollfd = epoll_create(1); #endif + +#ifdef WEPOLL_H_ + if (!epollfd) +#else if (epollfd < 0) +#endif { error("Can't create epoll queue"); } From ac0c62ebf4fe133236ed9424ea4f197f9597650e Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Tue, 24 Jan 2023 02:35:10 -0600 Subject: [PATCH 015/395] 3925 c mysql compile fail (#3928) * fix(CI): CI MySQL compile fail #3925 (Linux) * fix(CI): CI MySQL compile fail #3925 (Linux, 2nd attempt) * fix(CI): CI MySQL compile fail #3925 (OSX) --- Data/MySQL/MySQL.make | 71 ++++++++++++++++++++----------- Data/MySQL/src/MySQLException.cpp | 1 - 2 files changed, 46 insertions(+), 26 deletions(-) diff --git a/Data/MySQL/MySQL.make b/Data/MySQL/MySQL.make index acf97243f..878c1fbd7 100644 --- a/Data/MySQL/MySQL.make +++ b/Data/MySQL/MySQL.make @@ -1,40 +1,61 @@ # # MySQL.make # -# Makefile fragment for finding MySQL library +# Makefile fragment for finding MySQL headers and library # -ifndef POCO_MYSQL_INCLUDE -ifeq (0, $(shell test -d /usr/local/include/mysql; echo $$?)) -POCO_MYSQL_INCLUDE = /usr/local/include +ifeq ($(OSNAME),Darwin) + POCO_MYSQL_CONFIG = $(shell whereis -bq mysql_config) else -ifeq (0, $(shell test -d /usr/local/opt/mysql-client/include; echo $$?)) -POCO_MYSQL_INCLUDE = /usr/local/opt/mysql-client/include -else -ifeq (0, $(shell test -d /opt/homebrew/opt/mysql-client/include; echo $$?)) -POCO_MYSQL_INCLUDE = /opt/homebrew/opt/mysql-client/include -endif -endif -endif + ifeq ($(OSNAME),Linux) + POCO_MYSQL_CONFIG = $(shell which mysql_config) + endif endif -ifndef POCO_MYSQL_LIB -ifeq (0, $(shell test -d /usr/local/include/mysql; echo $$?)) -POCO_MYSQL_LIB = /usr/local/lib +ifneq (, $(POCO_MYSQL_CONFIG)) + ifndef POCO_MYSQL_INCLUDE + POCO_MYSQL_INCLUDE = $(shell mysql_config --include) + endif + ifndef POCO_MYSQL_LIB + POCO_MYSQL_LIB = $(shell mysql_config --libs) + endif else -ifeq (0, $(shell test -d /usr/local/opt/mysql-client/lib; echo $$?)) -POCO_MYSQL_LIB = /usr/local/opt/mysql-client/lib -else -ifeq (0, $(shell test -d /opt/homebrew/opt/mysql-client/lib; echo $$?)) -POCO_MYSQL_LIB = /opt/homebrew/opt/mysql-client/lib -endif -endif -endif + ifndef POCO_MYSQL_INCLUDE + ifeq (0, $(shell test -d /usr/local/include/mysql; echo $$?)) + POCO_MYSQL_INCLUDE = -I/usr/local/include + else + ifeq (0, $(shell test -d /usr/local/opt/mysql-client/include/mysql; echo $$?)) + POCO_MYSQL_INCLUDE = -I/usr/local/opt/mysql-client/include/mysql + else + ifeq (0, $(shell test -d /usr/local/opt/mysql-client/include; echo $$?)) + POCO_MYSQL_INCLUDE = -I/usr/local/opt/mysql-client/include + else + ifeq (0, $(shell test -d /opt/homebrew/opt/mysql-client/include; echo $$?)) + POCO_MYSQL_INCLUDE = -I/opt/homebrew/opt/mysql-client/include + endif + endif + endif + endif + endif + + ifndef POCO_MYSQL_LIB + ifeq (0, $(shell test -d /usr/local/include/mysql; echo $$?)) + POCO_MYSQL_LIB = -L/usr/local/lib + else + ifeq (0, $(shell test -d /usr/local/opt/mysql-client/lib; echo $$?)) + POCO_MYSQL_LIB = -L/usr/local/opt/mysql-client/lib + else + ifeq (0, $(shell test -d /opt/homebrew/opt/mysql-client/lib; echo $$?)) + POCO_MYSQL_LIB = -L/opt/homebrew/opt/mysql-client/lib + endif + endif + endif + endif endif ifdef POCO_MYSQL_INCLUDE -INCLUDE += -I$(POCO_MYSQL_INCLUDE) + INCLUDE += $(POCO_MYSQL_INCLUDE) endif ifdef POCO_MYSQL_LIB -SYSLIBS += -L$(POCO_MYSQL_LIB) + SYSLIBS += $(POCO_MYSQL_LIB) endif diff --git a/Data/MySQL/src/MySQLException.cpp b/Data/MySQL/src/MySQLException.cpp index 57f6cc9e1..a66b83577 100644 --- a/Data/MySQL/src/MySQLException.cpp +++ b/Data/MySQL/src/MySQLException.cpp @@ -19,7 +19,6 @@ #include "Poco/Data/MySQL/MySQLException.h" #include "Poco/NumberFormatter.h" -#include namespace Poco { From d4e2e0048263d65c5096fca16b130bd04c7dcc1c Mon Sep 17 00:00:00 2001 From: Denis CLAVIER <30313991+Crivaledaz@users.noreply.github.com> Date: Tue, 24 Jan 2023 12:46:10 +0100 Subject: [PATCH 016/395] Fix multicast leave group (#3929) * Fix multicast leave group * Add test to join and leave a multicast group Co-authored-by: Denis CLAVIER --- Net/src/MulticastSocket.cpp | 3 +-- Net/testsuite/src/MulticastSocketTest.cpp | 3 +++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Net/src/MulticastSocket.cpp b/Net/src/MulticastSocket.cpp index f624026f4..e48f3ed35 100644 --- a/Net/src/MulticastSocket.cpp +++ b/Net/src/MulticastSocket.cpp @@ -257,8 +257,7 @@ NetworkInterface MulticastSocket::findFirstInterface(const IPAddress& groupAddre void MulticastSocket::leaveGroup(const IPAddress& groupAddress) { - NetworkInterface intf; - leaveGroup(groupAddress, intf); + leaveGroup(groupAddress, findFirstInterface(groupAddress)); } diff --git a/Net/testsuite/src/MulticastSocketTest.cpp b/Net/testsuite/src/MulticastSocketTest.cpp index 56559f44c..942cc49f0 100644 --- a/Net/testsuite/src/MulticastSocketTest.cpp +++ b/Net/testsuite/src/MulticastSocketTest.cpp @@ -51,6 +51,8 @@ void MulticastSocketTest::testMulticast() { MulticastEchoServer echoServer; MulticastSocket ms(SocketAddress::IPv4); + SocketAddress multicastAddress("234.2.2.2", 4040); + ms.joinGroup(multicastAddress.host()); ms.setReceiveTimeout(Poco::Timespan(5, 0)); int n = ms.sendTo("hello", 5, echoServer.group()); assertTrue (n == 5); @@ -58,6 +60,7 @@ void MulticastSocketTest::testMulticast() n = ms.receiveBytes(buffer, sizeof(buffer)); assertTrue (n == 5); assertTrue (std::string(buffer, n) == "hello"); + ms.leaveGroup(multicastAddress.host()); ms.close(); } catch (Poco::NotImplementedException&) From 6c9078d67322a0c6a040b66b4444cdf8853c54b2 Mon Sep 17 00:00:00 2001 From: Alexander B Date: Fri, 27 Jan 2023 14:25:31 +0300 Subject: [PATCH 017/395] fix issue #3815 (#3932) Poco can be built with ENABLE_UTIL=ON and ENABLE_XML=OFF, but use of Poco::Util requires Poco::XML --- CMakeLists.txt | 4 ++-- Util/cmake/PocoUtilConfig.cmake | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1952602a8..976ff1344 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -406,12 +406,12 @@ if(EXISTS ${PROJECT_SOURCE_DIR}/ActiveRecord/Compiler AND ENABLE_ACTIVERECORD_CO list(APPEND Poco_COMPONENTS "ActiveRecordCompiler") endif() -if(EXISTS ${PROJECT_SOURCE_DIR}/SevenZip AND ENABLE_SEVENZIP) +if(EXISTS ${PROJECT_SOURCE_DIR}/SevenZip AND ENABLE_SEVENZIP AND ENABLE_XML) add_subdirectory(SevenZip) list(APPEND Poco_COMPONENTS "SevenZip") endif() -if(EXISTS ${PROJECT_SOURCE_DIR}/Zip AND ENABLE_ZIP) +if(EXISTS ${PROJECT_SOURCE_DIR}/Zip AND ENABLE_ZIP AND ENABLE_XML) add_subdirectory(Zip) list(APPEND Poco_COMPONENTS "Zip") endif() diff --git a/Util/cmake/PocoUtilConfig.cmake b/Util/cmake/PocoUtilConfig.cmake index ca62b41ec..90c1eab1c 100644 --- a/Util/cmake/PocoUtilConfig.cmake +++ b/Util/cmake/PocoUtilConfig.cmake @@ -1,5 +1,9 @@ include(CMakeFindDependencyMacro) find_dependency(PocoFoundation) -find_dependency(PocoXML) -find_dependency(PocoJSON) +if(ENABLE_XML) + find_dependency(PocoXML) +endif() +if(ENABLE_JSON) + find_dependency(PocoJSON) +endif() include("${CMAKE_CURRENT_LIST_DIR}/PocoUtilTargets.cmake") From b66874244711d3ef485be93a55fc269a0b5c096c Mon Sep 17 00:00:00 2001 From: Gleb Popov <6yearold@gmail.com> Date: Fri, 27 Jan 2023 14:26:33 +0300 Subject: [PATCH 018/395] Fix typo in the exception message (#3858) --- Foundation/src/Thread_POSIX.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Foundation/src/Thread_POSIX.cpp b/Foundation/src/Thread_POSIX.cpp index 4235ab2f4..613677c1d 100644 --- a/Foundation/src/Thread_POSIX.cpp +++ b/Foundation/src/Thread_POSIX.cpp @@ -75,7 +75,7 @@ namespace #else if (pthread_setname_np(pthread_self(), threadName.c_str())) #endif - throw Poco::SystemException("cannot get thread name"); + throw Poco::SystemException("cannot set thread name"); } std::string getThreadName() From c79ae36c2a0c263306033356e86c51ebe1fad752 Mon Sep 17 00:00:00 2001 From: Jay Date: Tue, 14 Feb 2023 14:27:31 +0900 Subject: [PATCH 019/395] Fix build for QNX --- Foundation/CMakeLists.txt | 4 ++-- Foundation/include/Poco/Types.h | 4 ++-- cmake/CXX1x.cmake | 2 ++ 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Foundation/CMakeLists.txt b/Foundation/CMakeLists.txt index f504bc1a3..617ff5947 100644 --- a/Foundation/CMakeLists.txt +++ b/Foundation/CMakeLists.txt @@ -159,8 +159,8 @@ else() target_link_libraries(Foundation PUBLIC ${CMAKE_DL_LIBS}) else() target_compile_definitions(Foundation PUBLIC _REENTRANT _THREAD_SAFE _LARGEFILE64_SOURCE _FILE_OFFSET_BITS=64) - if(QNX) - target_compile_definitions(Foundation PUBLIC POCO_HAVE_FD_POLL) + if("${CMAKE_SYSTEM_NAME}" STREQUAL "QNX") + target_compile_definitions(Foundation PUBLIC _QNX_SOURCE=1 POCO_HAVE_FD_POLL) target_link_libraries(Foundation PUBLIC m socket) elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD") target_compile_definitions(Foundation PUBLIC POCO_HAVE_FD_POLL) diff --git a/Foundation/include/Poco/Types.h b/Foundation/include/Poco/Types.h index 1b39fb699..55e21b765 100644 --- a/Foundation/include/Poco/Types.h +++ b/Foundation/include/Poco/Types.h @@ -42,14 +42,14 @@ using UIntPtr = std::uintptr_t; #define POCO_PTR_IS_64_BIT 1 #endif #define POCO_HAVE_INT64 1 -#elif defined(__GNUC__) || defined(__clang__) +#elif defined(__GNUC__) || defined(__clang__) || defined(__QNX__) #if defined(_WIN64) #define POCO_PTR_IS_64_BIT 1 #else #if defined(__LP64__) #define POCO_PTR_IS_64_BIT 1 #define POCO_LONG_IS_64_BIT 1 - #if POCO_OS == POCO_OS_LINUX || POCO_OS == POCO_OS_FREE_BSD || POCO_OS == POCO_OS_ANDROID || POCO_OS == POCO_OS_AIX + #if POCO_OS == POCO_OS_LINUX || POCO_OS == POCO_OS_FREE_BSD || POCO_OS == POCO_OS_ANDROID || POCO_OS == POCO_OS_AIX || POCO_OS == POCO_OS_QNX #define POCO_INT64_IS_LONG 1 #endif #endif diff --git a/cmake/CXX1x.cmake b/cmake/CXX1x.cmake index c65ba34c4..2120cede7 100644 --- a/cmake/CXX1x.cmake +++ b/cmake/CXX1x.cmake @@ -33,6 +33,7 @@ macro(check_for_cxx11_compiler _VAR) endif() if(_COMPILER_TEST_RESULT AND ((MSVC AND (MSVC10 OR MSVC11 OR MSVC12 OR MSVC14)) OR (CMAKE_COMPILER_IS_GNUCXX AND NOT ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 4.8.1) OR + (CMAKE_CXX_COMPILER_ID STREQUAL "QCC" AND NOT ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 4.8.1) OR (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND NOT ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 3.3) OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang"))) set(${_VAR} 1) @@ -57,6 +58,7 @@ macro(check_for_cxx14_compiler _VAR) endif() if(_COMPILER_TEST_RESULT AND ((MSVC AND (MSVC14)) OR (CMAKE_COMPILER_IS_GNUCXX AND NOT ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 4.9.2) OR + (CMAKE_CXX_COMPILER_ID STREQUAL "QCC" AND NOT ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 4.9.2) OR (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND NOT ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 3.4) OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang"))) set(${_VAR} 1) From 9a374ca2dee445536ab30eb7d45e196e3b220f0f Mon Sep 17 00:00:00 2001 From: Conor Burgess Date: Fri, 17 Mar 2023 15:07:37 +0000 Subject: [PATCH 020/395] Fix error handling with OpenSSL 3.0 in SecureSocketImpl.cpp (#3971) --- NetSSL_OpenSSL/src/SecureSocketImpl.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/NetSSL_OpenSSL/src/SecureSocketImpl.cpp b/NetSSL_OpenSSL/src/SecureSocketImpl.cpp index edbd61d77..e9ecdd385 100644 --- a/NetSSL_OpenSSL/src/SecureSocketImpl.cpp +++ b/NetSSL_OpenSSL/src/SecureSocketImpl.cpp @@ -537,11 +537,13 @@ int SecureSocketImpl::handleError(int rc) // SSL_ERROR_SYSCALL, nothing was added to the error stack, and // errno was 0. Since OpenSSL 3.0 the returned error is // SSL_ERROR_SSL with a meaningful error on the error stack. + // However, we still need to check for socket errors in both + // cases with OpenSSL 3.0 or later. #if OPENSSL_VERSION_NUMBER >= 0x30000000L case SSL_ERROR_SSL: -#else - case SSL_ERROR_SYSCALL: + // fallthrough to handle socket errors first #endif + case SSL_ERROR_SYSCALL: if (socketError) { SocketImpl::error(socketError); @@ -557,6 +559,11 @@ int SecureSocketImpl::handleError(int rc) ERR_error_string_n(lastError, buffer, sizeof(buffer)); msg = buffer; } + // SSL_GET_ERROR(3ossl): + // On an unexpected EOF, versions before OpenSSL 3.0 returned + // SSL_ERROR_SYSCALL, nothing was added to the error stack, and + // errno was 0. Since OpenSSL 3.0 the returned error is + // SSL_ERROR_SSL with a meaningful error on the error stack. #if OPENSSL_VERSION_NUMBER >= 0x30000000L if (sslError == SSL_ERROR_SSL) #else From d05d689622ff4e96be89400bbb3e08b065488c3a Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Fri, 17 Mar 2023 21:24:57 +0100 Subject: [PATCH 021/395] Add GNU Hurd support (#3946) Co-authored-by: Jochen Sprickerhof --- Foundation/CMakeLists.txt | 2 +- Foundation/include/Poco/NamedEvent_UNIX.h | 4 +- Foundation/include/Poco/NamedMutex_UNIX.h | 4 +- Foundation/src/Environment_UNIX.cpp | 48 +++++++++++++++++++++++ Foundation/src/NamedEvent_UNIX.cpp | 12 +++--- Foundation/src/NamedMutex_UNIX.cpp | 14 +++---- 6 files changed, 66 insertions(+), 18 deletions(-) diff --git a/Foundation/CMakeLists.txt b/Foundation/CMakeLists.txt index 617ff5947..c3e28fde8 100644 --- a/Foundation/CMakeLists.txt +++ b/Foundation/CMakeLists.txt @@ -165,7 +165,7 @@ else() elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD") target_compile_definitions(Foundation PUBLIC POCO_HAVE_FD_POLL) target_link_libraries(Foundation PUBLIC pthread ${CMAKE_DL_LIBS} rt) - elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "AIX") + elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "AIX" OR "${CMAKE_SYSTEM_NAME}" STREQUAL "GNU") target_compile_definitions(Foundation PUBLIC _XOPEN_SOURCE=500 POCO_HAVE_FD_POLL) target_link_libraries(Foundation PUBLIC pthread ${CMAKE_DL_LIBS} rt) else() diff --git a/Foundation/include/Poco/NamedEvent_UNIX.h b/Foundation/include/Poco/NamedEvent_UNIX.h index 22cb31dc9..f4b5255f7 100644 --- a/Foundation/include/Poco/NamedEvent_UNIX.h +++ b/Foundation/include/Poco/NamedEvent_UNIX.h @@ -19,7 +19,7 @@ #include "Poco/Foundation.h" -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__GNU__) #include #endif @@ -39,7 +39,7 @@ private: std::string getFileName(); std::string _name; -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__GNU__) sem_t* _sem; #else int _semid; // semaphore id diff --git a/Foundation/include/Poco/NamedMutex_UNIX.h b/Foundation/include/Poco/NamedMutex_UNIX.h index 151aa1ead..b60d6bc2a 100644 --- a/Foundation/include/Poco/NamedMutex_UNIX.h +++ b/Foundation/include/Poco/NamedMutex_UNIX.h @@ -21,7 +21,7 @@ #include "Poco/Foundation.h" #include #include -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__GNU__) #include #endif @@ -42,7 +42,7 @@ private: std::string getFileName(); std::string _name; -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__GNU__) sem_t* _sem; #else int _semid; // semaphore id diff --git a/Foundation/src/Environment_UNIX.cpp b/Foundation/src/Environment_UNIX.cpp index b7e57e431..eb9042b9c 100644 --- a/Foundation/src/Environment_UNIX.cpp +++ b/Foundation/src/Environment_UNIX.cpp @@ -279,6 +279,54 @@ void EnvironmentImpl::nodeIdImpl(NodeId& id) } // namespace Poco +#elif defined(__GNU__) +// +// GNU Hurd +// +#include +#include +#include +#include + + +namespace Poco { + + +void EnvironmentImpl::nodeIdImpl(NodeId& id) +{ + std::memset(&id, 0, sizeof(id)); + struct ifreq ifr; + struct ifconf ifc; + char buf[1024]; + + int sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP); + if (sock == -1) return; + + ifc.ifc_len = sizeof(buf); + ifc.ifc_buf = buf; + if (ioctl(sock, SIOCGIFCONF, &ifc) == -1) return; + + struct ifreq* it = ifc.ifc_req; + const struct ifreq* const end = it + (ifc.ifc_len / sizeof(struct ifreq)); + + for (; it != end; ++it) { + std::strcpy(ifr.ifr_name, it->ifr_name); + if (ioctl(sock, SIOCGIFFLAGS, &ifr) == 0) { + if (! (ifr.ifr_flags & IFF_LOOPBACK)) { // don't count loopback + if (ioctl(sock, SIOCGIFHWADDR, &ifr) == 0) { + std::memcpy(&id, ifr.ifr_hwaddr.sa_data, sizeof(id)); + break; + } + } + } + else return; + } +} + + +} // namespace Poco + + #elif defined(POCO_OS_FAMILY_UNIX) // // General Unix diff --git a/Foundation/src/NamedEvent_UNIX.cpp b/Foundation/src/NamedEvent_UNIX.cpp index b0cc100cd..686d770c8 100644 --- a/Foundation/src/NamedEvent_UNIX.cpp +++ b/Foundation/src/NamedEvent_UNIX.cpp @@ -18,7 +18,7 @@ #include #include #include -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__GNU__) #include #else #include @@ -53,7 +53,7 @@ NamedEventImpl::NamedEventImpl(const std::string& name): _name(name) { std::string fileName = getFileName(); -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__GNU__) _sem = sem_open(fileName.c_str(), O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO, 0); if ((long) _sem == (long) SEM_FAILED) throw SystemException(Poco::format("cannot create named mutex %s (sem_open() failed, errno=%d)", fileName, errno), _name); @@ -80,13 +80,13 @@ NamedEventImpl::NamedEventImpl(const std::string& name): _semid = semget(key, 1, 0); } else throw SystemException(Poco::format("cannot create named mutex %s (semget() failed, errno=%d)", fileName, errno), _name); -#endif // defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#endif // defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__GNU__) } NamedEventImpl::~NamedEventImpl() { -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__GNU__) sem_close(_sem); #endif } @@ -94,7 +94,7 @@ NamedEventImpl::~NamedEventImpl() void NamedEventImpl::setImpl() { -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__GNU__) if (sem_post(_sem) != 0) throw SystemException("cannot set named event", _name); #else @@ -110,7 +110,7 @@ void NamedEventImpl::setImpl() void NamedEventImpl::waitImpl() { -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__GNU__) int err; do { diff --git a/Foundation/src/NamedMutex_UNIX.cpp b/Foundation/src/NamedMutex_UNIX.cpp index 6466b2ba2..1f52c9798 100644 --- a/Foundation/src/NamedMutex_UNIX.cpp +++ b/Foundation/src/NamedMutex_UNIX.cpp @@ -18,7 +18,7 @@ #include #include #include -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(_AIX) || defined(__GNU__) #include #else #include @@ -53,7 +53,7 @@ NamedMutexImpl::NamedMutexImpl(const std::string& name): _name(name) { std::string fileName = getFileName(); -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__GNU__) _sem = sem_open(fileName.c_str(), O_CREAT, S_IRWXU | S_IRWXG | S_IRWXO, 1); if ((long) _sem == (long) SEM_FAILED) throw SystemException(Poco::format("cannot create named mutex %s (sem_open() failed, errno=%d)", fileName, errno), _name); @@ -85,13 +85,13 @@ NamedMutexImpl::NamedMutexImpl(const std::string& name): } throw SystemException(Poco::format("cannot create named mutex %s (semget() failed, errno=%d)", fileName, errno), _name); -#endif // defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#endif // defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__GNU__) } NamedMutexImpl::~NamedMutexImpl() { -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__GNU__) sem_close(_sem); #else if (_owned) semctl(_semid, 0, IPC_RMID, 0); @@ -101,7 +101,7 @@ NamedMutexImpl::~NamedMutexImpl() void NamedMutexImpl::lockImpl() { -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__GNU__) int err; do { @@ -127,7 +127,7 @@ void NamedMutexImpl::lockImpl() bool NamedMutexImpl::tryLockImpl() { -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__GNU__) return sem_trywait(_sem) == 0; #else struct sembuf op; @@ -141,7 +141,7 @@ bool NamedMutexImpl::tryLockImpl() void NamedMutexImpl::unlockImpl() { -#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) +#if defined(sun) || defined(__APPLE__) || defined(__osf__) || defined(__QNX__) || defined(_AIX) || defined(__GNU__) if (sem_post(_sem) != 0) throw SystemException("cannot unlock named mutex", _name); #else From 60faa4fb586c1b6b30acec452c401a6edc52054f Mon Sep 17 00:00:00 2001 From: micheleselea Date: Fri, 17 Mar 2023 21:42:41 +0100 Subject: [PATCH 022/395] hasMicrosecond is undefined (#3842) --- Data/MySQL/include/Poco/Data/MySQL/Utility.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/Data/MySQL/include/Poco/Data/MySQL/Utility.h b/Data/MySQL/include/Poco/Data/MySQL/Utility.h index 4fba2c91c..1e46074f9 100644 --- a/Data/MySQL/include/Poco/Data/MySQL/Utility.h +++ b/Data/MySQL/include/Poco/Data/MySQL/Utility.h @@ -50,9 +50,6 @@ public: static std::string hostInfo(Poco::Data::Session& session); /// Returns host info. - static bool hasMicrosecond(); - /// Rturns true if microseconds are suported. - static MYSQL* handle(Poco::Data::Session& session); /// Returns native MySQL handle for the session. }; From 85f74867efa13c30436a4363b7c2efc77d40b71c Mon Sep 17 00:00:00 2001 From: gyee-penguin Date: Fri, 17 Mar 2023 13:45:30 -0700 Subject: [PATCH 023/395] Fixed compile error with OpenSSL 1.0 systems (#3739) (#3912) --- Crypto/src/Envelope.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Crypto/src/Envelope.cpp b/Crypto/src/Envelope.cpp index bfce72685..c74fc25da 100644 --- a/Crypto/src/Envelope.cpp +++ b/Crypto/src/Envelope.cpp @@ -29,8 +29,12 @@ Envelope::Envelope(int cipherNID): _pCipher(EVP_get_cipherbynid(cipherNID)), { poco_check_ptr(_pCipher); poco_check_ptr(_pCtx); +#if OPENSSL_VERSION_NUMBER >= 0x10100000L if (1 != EVP_CIPHER_CTX_init(_pCtx)) handleErrors(std::string("Envelope():EVP_CIPHER_CTX_init()")); +#else + EVP_CIPHER_CTX_init(_pCtx); +#endif _iv.resize(ivSize(), 0); } From abd06ab4d959d0ca9b6fafaaaf0542120fa084a9 Mon Sep 17 00:00:00 2001 From: MailShop Date: Fri, 17 Mar 2023 20:51:57 +0000 Subject: [PATCH 024/395] ODBC: Fix DataFormatException getting Time value from SQL Server (#3802) --- Data/ODBC/src/ODBCMetaColumn.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Data/ODBC/src/ODBCMetaColumn.cpp b/Data/ODBC/src/ODBCMetaColumn.cpp index f2603c0f7..debf3a1a3 100644 --- a/Data/ODBC/src/ODBCMetaColumn.cpp +++ b/Data/ODBC/src/ODBCMetaColumn.cpp @@ -160,6 +160,7 @@ void ODBCMetaColumn::init() setType(MetaColumn::FDT_DATE); break; case SQL_TYPE_TIME: + case -154: //MS SQL Server custom type SQL_SS_TIME2 setType(MetaColumn::FDT_TIME); break; case SQL_TYPE_TIMESTAMP: From f6c3017b3ed9d1547ac1adcf4a3ed86e143f598d Mon Sep 17 00:00:00 2001 From: Gleb Popov <6yearold@gmail.com> Date: Sat, 18 Mar 2023 00:09:38 +0300 Subject: [PATCH 025/395] Do not incur insane stack limit in Foundation-ThreadPool test. (#3861) This fixes the test on FreeBSD. --- Foundation/testsuite/src/ThreadPoolTest.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Foundation/testsuite/src/ThreadPoolTest.cpp b/Foundation/testsuite/src/ThreadPoolTest.cpp index f33219f2f..aebb4d763 100644 --- a/Foundation/testsuite/src/ThreadPoolTest.cpp +++ b/Foundation/testsuite/src/ThreadPoolTest.cpp @@ -35,7 +35,6 @@ ThreadPoolTest::~ThreadPoolTest() void ThreadPoolTest::testThreadPool() { ThreadPool pool(2, 3, 3); - pool.setStackSize(1); assertTrue (pool.allocated() == 2); assertTrue (pool.used() == 0); From e0e628ac7e24f9b5bc1ef9afb5cd6e7a313c2d91 Mon Sep 17 00:00:00 2001 From: chrisbednarski Date: Sat, 18 Mar 2023 09:45:56 +1100 Subject: [PATCH 026/395] fix(build): fix build with openssl 3.1.0 on vs2022 (#3969) * fix log verbosity in windows powershell build script * stop paths being added multiple times to environment variables * pass useenv property to msbuild * linking issue: include crypto.h prior to config.h so POCO_EXTERNAL_OPENSSL is initialised * resolve poco_base path in powershell script * build against any available windows sdk --- NetSSL_OpenSSL/include/Poco/Net/NetSSL.h | 2 +- buildwin.cmd | 4 ++-- buildwin.ps1 | 19 ++++++++++--------- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h b/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h index 444ab4b8c..2352f07e6 100644 --- a/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h +++ b/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h @@ -20,8 +20,8 @@ #define NetSSL_NetSSL_INCLUDED -#include "Poco/Net/Net.h" #include "Poco/Crypto/Crypto.h" +#include "Poco/Net/Net.h" // diff --git a/buildwin.cmd b/buildwin.cmd index c8cbcbb86..6964275fc 100644 --- a/buildwin.cmd +++ b/buildwin.cmd @@ -135,12 +135,12 @@ if not defined VCINSTALLDIR ( ) else ( if %VS_VERSION%==vs170 ( if %PLATFORM%==x64 ( - call "%VS170COMNTOOLS%%VS_VARSALL%" x86_amd64 8.1 + call "%VS170COMNTOOLS%%VS_VARSALL%" x86_amd64 ) else ( if %PLATFORM%==arm64 ( call "%VS170COMNTOOLS%%VS_VARSALL%" x86_arm64 ) else ( - call "%VS170COMNTOOLS%%VS_VARSALL%" x86 8.1 + call "%VS170COMNTOOLS%%VS_VARSALL%" x86 ) ) ) diff --git a/buildwin.ps1 b/buildwin.ps1 index 2942daf15..93fac1f08 100644 --- a/buildwin.ps1 +++ b/buildwin.ps1 @@ -14,7 +14,7 @@ # [-omit "Lib1X,LibY,LibZ,..."] # [-tool msbuild | devenv] # [-useenv env | noenv] -# [-verbosity m[inimal] | q[uiet] | n[ormal] | d[etailed] | diag[nostic]] +# [-verbosity minimal | quiet | normal | detailed | diagnostic] # [-openssl_base dir] # [-mysql_base dir] @@ -57,7 +57,7 @@ Param [string] $useenv = 'env', [Parameter()] - [ValidateSet('quiet', 'm[inimal]', 'n[ormal]', 'd[etailed]', 'diag[nostic]')] + [ValidateSet('quiet', 'minimal', 'normal', 'detailed', 'diagnostic')] [string] $verbosity = 'minimal', [Parameter()] @@ -116,12 +116,13 @@ function Add-VSCOMNTOOLS([int] $vsver) function Add-Env-Var([string] $lib, [string] $var) { - if ((${Env:$var} -eq $null) -or (-not ${Env:$var}.Contains(${Env:$lib_$var"}))) + $envvar = if (Test-Path "Env:$var") { Get-Content "Env:$var" } Else { "" } + + $libvar = Get-Content "Env:${lib}_$var" + if (-not $envvar.Contains($libvar)) { - $libvar = "$lib" + "_" + "$var" - $envvar = [Environment]::GetEnvironmentVariable($var, "Process") - $envvar = $envvar + ';' + [Environment]::GetEnvironmentVariable($libvar, "Process") - [Environment]::SetEnvironmentVariable($var, $envvar, "Process") + $envvar = $envvar + ";$libvar" + Set-Content "Env:${var}" $envvar } } @@ -141,7 +142,7 @@ function Set-Environment if ($openssl_base -eq '') { - $script:openssl_base = '$poco_base\openssl' + $script:openssl_base = "$poco_base\openssl" } $Env:OPENSSL_DIR = "$openssl_base" @@ -270,7 +271,7 @@ function Exec-MSBuild([string] $vsProject, [string] $projectConfig) return } - $cmd = "&`"$script:msbuild_exe`" $vsProject /nologo /m /t:$action /p:Configuration=$projectConfig /p:BuildProjectReferences=false /p:Platform=$platform /p:useenv=$useenv /v:$verbosity" + $cmd = "&`"$script:msbuild_exe`" $vsProject /nologo /m /t:$action /p:Configuration=$projectConfig /p:BuildProjectReferences=false /p:Platform=$platform /p:useenv=$($useenv -eq 'env') /v:$verbosity" Write-Host $cmd Invoke-Expression $cmd if ($LastExitCode -ne 0) { Exit $LastExitCode } From 66e93f98cc3530c9ea5a748cf2248d2592b61853 Mon Sep 17 00:00:00 2001 From: Andrew Auclair Date: Sat, 18 Mar 2023 02:28:25 -0400 Subject: [PATCH 027/395] Custom rotate, archive and purge strategies for FileChannel (#3810) * Adding the ability to set custom rotate, archive and purge strategies. * Force CI --- Foundation/include/Poco/ArchiveStrategy.h | 10 ++ Foundation/include/Poco/FileChannel.h | 17 +- Foundation/include/Poco/PurgeStrategy.h | 10 ++ Foundation/include/Poco/RotateStrategy.h | 7 + Foundation/src/ArchiveStrategy.cpp | 6 + Foundation/src/FileChannel.cpp | 87 +++++++--- Foundation/src/PurgeStrategy.cpp | 20 +++ Foundation/src/RotateStrategy.cpp | 11 ++ Foundation/testsuite/src/FileChannelTest.cpp | 173 +++++++++++++++++++ Foundation/testsuite/src/FileChannelTest.h | 3 + 10 files changed, 322 insertions(+), 22 deletions(-) diff --git a/Foundation/include/Poco/ArchiveStrategy.h b/Foundation/include/Poco/ArchiveStrategy.h index f3344573f..db69354c6 100644 --- a/Foundation/include/Poco/ArchiveStrategy.h +++ b/Foundation/include/Poco/ArchiveStrategy.h @@ -42,6 +42,9 @@ public: ArchiveStrategy(); virtual ~ArchiveStrategy(); + virtual LogFile* open(LogFile* pFile) = 0; + /// Open a new log file and return it. + virtual LogFile* archive(LogFile* pFile) = 0; /// Renames the given log file for archiving /// and creates and returns a new log file. @@ -71,6 +74,8 @@ class Foundation_API ArchiveByNumberStrategy: public ArchiveStrategy public: ArchiveByNumberStrategy(); ~ArchiveByNumberStrategy(); + + LogFile* open(LogFile* pFile); LogFile* archive(LogFile* pFile); }; @@ -89,6 +94,11 @@ public: { } + LogFile* open(LogFile* pFile) + { + return pFile; + } + LogFile* archive(LogFile* pFile) /// Archives the file by appending the current timestamp to the /// file name. If the new file name exists, additionally a monotonic diff --git a/Foundation/include/Poco/FileChannel.h b/Foundation/include/Poco/FileChannel.h index f3c8e1955..10aea1066 100644 --- a/Foundation/include/Poco/FileChannel.h +++ b/Foundation/include/Poco/FileChannel.h @@ -211,6 +211,18 @@ public: /// See setProperty() for a description of the supported /// properties. + void setRotationStrategy(RotateStrategy* strategy); + /// Set a rotation strategy. + /// FileChannel will take ownership of the pointer + + void setArchiveStrategy(ArchiveStrategy* strategy); + /// Set an archive strategy. + /// FileChannel will take ownership of the pointer + + void setPurgeStrategy(PurgeStrategy* strategy); + /// Set a purge strategy. + /// FileChannel will take ownership of the pointer + Timestamp creationDate() const; /// Returns the log file's creation date. @@ -232,6 +244,7 @@ public: protected: ~FileChannel(); + void setRotation(const std::string& rotation); void setArchive(const std::string& archive); void setCompress(const std::string& compress); @@ -244,9 +257,11 @@ protected: private: bool setNoPurge(const std::string& value); int extractDigit(const std::string& value, std::string::const_iterator* nextToDigit = NULL) const; - void setPurgeStrategy(PurgeStrategy* strategy); Timespan::TimeDiff extractFactor(const std::string& value, std::string::const_iterator start) const; + RotateStrategy* createRotationStrategy(const std::string& rotation, const std::string& times) const; + ArchiveStrategy* createArchiveStrategy(const std::string& archive, const std::string& times) const; + std::string _path; std::string _times; std::string _rotation; diff --git a/Foundation/include/Poco/PurgeStrategy.h b/Foundation/include/Poco/PurgeStrategy.h index 216f47b0b..bfe34e17a 100644 --- a/Foundation/include/Poco/PurgeStrategy.h +++ b/Foundation/include/Poco/PurgeStrategy.h @@ -60,6 +60,16 @@ private: }; +class Foundation_API NullPurgeStrategy : public PurgeStrategy +{ +public: + NullPurgeStrategy(); + ~NullPurgeStrategy(); + + void purge(const std::string& path); +}; + + class Foundation_API PurgeByAgeStrategy: public PurgeStrategy /// This purge strategy purges all files that have /// exceeded a given age (given in seconds). diff --git a/Foundation/include/Poco/RotateStrategy.h b/Foundation/include/Poco/RotateStrategy.h index 1776fd0ee..ce04031cf 100644 --- a/Foundation/include/Poco/RotateStrategy.h +++ b/Foundation/include/Poco/RotateStrategy.h @@ -49,6 +49,13 @@ private: }; +class Foundation_API NullRotateStrategy : public RotateStrategy +{ +public: + bool mustRotate(LogFile* pFile); +}; + + template class RotateAtTimeStrategy: public RotateStrategy /// The file is rotated at specified [day,][hour]:minute diff --git a/Foundation/src/ArchiveStrategy.cpp b/Foundation/src/ArchiveStrategy.cpp index e45cddea8..c8dff0000 100644 --- a/Foundation/src/ArchiveStrategy.cpp +++ b/Foundation/src/ArchiveStrategy.cpp @@ -161,6 +161,12 @@ ArchiveByNumberStrategy::~ArchiveByNumberStrategy() } +LogFile* ArchiveByNumberStrategy::open(LogFile* pFile) +{ + return pFile; +} + + LogFile* ArchiveByNumberStrategy::archive(LogFile* pFile) { std::string basePath = pFile->path(); diff --git a/Foundation/src/FileChannel.cpp b/Foundation/src/FileChannel.cpp index ceb53a38b..94c8f7991 100644 --- a/Foundation/src/FileChannel.cpp +++ b/Foundation/src/FileChannel.cpp @@ -45,9 +45,9 @@ FileChannel::FileChannel(): _flush(true), _rotateOnOpen(false), _pFile(0), - _pRotateStrategy(0), + _pRotateStrategy(new NullRotateStrategy()), _pArchiveStrategy(new ArchiveByNumberStrategy), - _pPurgeStrategy(0) + _pPurgeStrategy(new NullPurgeStrategy()) { } @@ -59,9 +59,9 @@ FileChannel::FileChannel(const std::string& path): _flush(true), _rotateOnOpen(false), _pFile(0), - _pRotateStrategy(0), + _pRotateStrategy(new NullRotateStrategy()), _pArchiveStrategy(new ArchiveByNumberStrategy), - _pPurgeStrategy(0) + _pPurgeStrategy(new NullPurgeStrategy()) { } @@ -101,6 +101,8 @@ void FileChannel::open() _pFile = new LogFile(_path); } } + + _pFile = _pArchiveStrategy->open(_pFile); } } @@ -120,7 +122,7 @@ void FileChannel::log(const Message& msg) FastMutex::ScopedLock lock(_mutex); - if (_pRotateStrategy && _pArchiveStrategy && _pRotateStrategy->mustRotate(_pFile)) + if (_pRotateStrategy->mustRotate(_pFile)) { try { @@ -224,7 +226,7 @@ const std::string& FileChannel::path() const } -void FileChannel::setRotation(const std::string& rotation) +RotateStrategy* FileChannel::createRotationStrategy(const std::string& rotation, const std::string& times) const { std::string::const_iterator it = rotation.begin(); std::string::const_iterator end = rotation.end(); @@ -238,12 +240,12 @@ void FileChannel::setRotation(const std::string& rotation) RotateStrategy* pStrategy = 0; if ((rotation.find(',') != std::string::npos) || (rotation.find(':') != std::string::npos)) { - if (_times == "utc") + if (times == "utc") pStrategy = new RotateAtTimeStrategy(rotation); - else if (_times == "local") + else if (times == "local") pStrategy = new RotateAtTimeStrategy(rotation); else - throw PropertyNotSupportedException("times", _times); + throw PropertyNotSupportedException("times", times); } else if (unit == "daily") pStrategy = new RotateByIntervalStrategy(Timespan(1*Timespan::DAYS)); @@ -271,12 +273,57 @@ void FileChannel::setRotation(const std::string& rotation) pStrategy = new RotateBySizeStrategy(n); else if (unit != "never") throw InvalidArgumentException("rotation", rotation); + + return pStrategy; +} + + +void FileChannel::setRotationStrategy(RotateStrategy* strategy) +{ + poco_check_ptr(strategy); + delete _pRotateStrategy; - _pRotateStrategy = pStrategy; + _pRotateStrategy = strategy; +} + + +void FileChannel::setRotation(const std::string& rotation) +{ + setRotationStrategy(createRotationStrategy(rotation, _times)); _rotation = rotation; } +ArchiveStrategy* FileChannel::createArchiveStrategy(const std::string& archive, const std::string& times) const +{ + ArchiveStrategy* pStrategy = 0; + if (archive == "number") + { + pStrategy = new ArchiveByNumberStrategy; + } + else if (archive == "timestamp") + { + if (times == "utc") + pStrategy = new ArchiveByTimestampStrategy; + else if (times == "local") + pStrategy = new ArchiveByTimestampStrategy; + else + throw PropertyNotSupportedException("times", times); + } + else throw InvalidArgumentException("archive", archive); + return pStrategy; +} + + +void FileChannel::setArchiveStrategy(ArchiveStrategy* strategy) +{ + poco_check_ptr(strategy); + + delete _pArchiveStrategy; + _pArchiveStrategy = strategy; +} + + void FileChannel::setArchive(const std::string& archive) { ArchiveStrategy* pStrategy = 0; @@ -304,8 +351,7 @@ void FileChannel::setArchive(const std::string& archive) void FileChannel::setCompress(const std::string& compress) { _compress = icompare(compress, "true") == 0; - if (_pArchiveStrategy) - _pArchiveStrategy->compress(_compress); + _pArchiveStrategy->compress(_compress); } @@ -345,15 +391,12 @@ void FileChannel::setRotateOnOpen(const std::string& rotateOnOpen) void FileChannel::purge() { - if (_pPurgeStrategy) + try + { + _pPurgeStrategy->purge(_path); + } + catch (...) { - try - { - _pPurgeStrategy->purge(_path); - } - catch (...) - { - } } } @@ -363,7 +406,7 @@ bool FileChannel::setNoPurge(const std::string& value) if (value.empty() || 0 == icompare(value, "none")) { delete _pPurgeStrategy; - _pPurgeStrategy = 0; + _pPurgeStrategy = new NullPurgeStrategy(); _purgeAge = "none"; return true; } @@ -394,6 +437,8 @@ int FileChannel::extractDigit(const std::string& value, std::string::const_itera void FileChannel::setPurgeStrategy(PurgeStrategy* strategy) { + poco_check_ptr(strategy); + delete _pPurgeStrategy; _pPurgeStrategy = strategy; } diff --git a/Foundation/src/PurgeStrategy.cpp b/Foundation/src/PurgeStrategy.cpp index 8a3a25866..ad9e87f3d 100644 --- a/Foundation/src/PurgeStrategy.cpp +++ b/Foundation/src/PurgeStrategy.cpp @@ -57,6 +57,26 @@ void PurgeStrategy::list(const std::string& path, std::vector& files) } +// +// NullPurgeStrategy +// + + +NullPurgeStrategy::NullPurgeStrategy() +{ +} + + +NullPurgeStrategy::~NullPurgeStrategy() +{ +} + + +void NullPurgeStrategy::purge(const std::string& path) +{ +} + + // // PurgeByAgeStrategy // diff --git a/Foundation/src/RotateStrategy.cpp b/Foundation/src/RotateStrategy.cpp index f27eb9781..3bd3c7a85 100644 --- a/Foundation/src/RotateStrategy.cpp +++ b/Foundation/src/RotateStrategy.cpp @@ -38,6 +38,17 @@ RotateStrategy::~RotateStrategy() } +// +// NullRotateStrategy +// + + +bool NullRotateStrategy::mustRotate(LogFile* pFile) +{ + return false; +} + + // // RotateByIntervalStrategy // diff --git a/Foundation/testsuite/src/FileChannelTest.cpp b/Foundation/testsuite/src/FileChannelTest.cpp index 28c22b9f6..979663a2b 100644 --- a/Foundation/testsuite/src/FileChannelTest.cpp +++ b/Foundation/testsuite/src/FileChannelTest.cpp @@ -26,6 +26,9 @@ #include "Poco/NumberFormatter.h" #include "Poco/DirectoryIterator.h" #include "Poco/Exception.h" +#include "Poco/RotateStrategy.h" +#include "Poco/ArchiveStrategy.h" +#include "Poco/PurgeStrategy.h" #include @@ -287,6 +290,57 @@ void FileChannelTest::testRotateAtTimeMinLocal() } +class RotateByCustomStrategy : public Poco::RotateStrategy + /// The file is rotated when the log file + /// exceeds a given age. + /// + /// For this to work reliably across all platforms and file systems + /// (there are severe issues on most platforms finding out the real + /// creation date of a file), the creation date of the file is + /// written into the log file as the first entry. +{ +public: + bool mustRotate(Poco::LogFile* pFile) + { + return pFile->size() > 2000; + } + +private: +}; + + +void FileChannelTest::testRotateByStrategy() +{ + std::string name = filename(); + try + { + AutoPtr pChannel = new FileChannel(name); + + // this test rotates at 2k just like testRotateBySize. Set the prop rotation to 50k to verify that the rotation strategy takes over + pChannel->setProperty(FileChannel::PROP_ROTATION, "50 K"); + pChannel->setRotationStrategy(new RotateByCustomStrategy()); + pChannel->open(); + Message msg("source", "This is a log file entry", Message::PRIO_INFORMATION); + for (int i = 0; i < 200; ++i) + { + pChannel->log(msg); + } + File f(name + ".0"); + assertTrue(f.exists()); + f = name + ".1"; + assertTrue(f.exists()); + f = name + ".2"; + assertTrue(!f.exists()); + } + catch (...) + { + remove(name); + throw; + } + remove(name); +} + + void FileChannelTest::testArchive() { std::string name = filename(); @@ -313,6 +367,88 @@ void FileChannelTest::testArchive() } +class ArchiveByCustomNumberStrategy : public Poco::ArchiveStrategy + /// A monotonic increasing number is appended to the + /// log file name. The most recent archived file + /// always has the number zero. +{ +public: + Poco::LogFile* open(Poco::LogFile* pFile) + { + return pFile; + } + + + Poco::LogFile* archive(Poco::LogFile* pFile) + { + std::string basePath = pFile->path(); + delete pFile; + int n = -1; + std::string path; + do + { + path = basePath; + path = path.substr(0, path.length() - 4); + path.append("_"); + NumberFormatter::append(path, ++n); + path.append(".log"); + } while (exists(path)); + + while (n >= 0) + { + std::string oldPath = basePath; + if (n > 0) + { + oldPath = oldPath.substr(0, oldPath.length() - 4); + oldPath.append("_"); + NumberFormatter::append(oldPath, n - 1); + oldPath.append(".log"); + } + std::string newPath = basePath; + newPath = newPath.substr(0, newPath.length() - 4); + newPath.append("_"); + NumberFormatter::append(newPath, n); + newPath.append(".log"); + moveFile(oldPath, newPath); + --n; + } + return new Poco::LogFile(basePath); + } +}; + + +void FileChannelTest::testArchiveByStrategy() +{ + std::string name = filename(); + try + { + AutoPtr pChannel = new FileChannel(name); + pChannel->setProperty(FileChannel::PROP_ROTATION, "2 K"); + pChannel->setProperty(FileChannel::PROP_ARCHIVE, "number"); + + pChannel->setArchiveStrategy(new ArchiveByCustomNumberStrategy()); + + pChannel->open(); + Message msg("source", "This is a log file entry", Message::PRIO_INFORMATION); + for (int i = 0; i < 200; ++i) + { + pChannel->log(msg); + } + name = name.substr(0, name.length() - 4); + name.append("_0.log"); + + File f(name); + assertTrue(f.exists()); + } + catch (...) + { + remove(name); + throw; + } + remove(name); +} + + void FileChannelTest::testCompress() { std::string name = filename(); @@ -544,6 +680,40 @@ void FileChannelTest::testWrongPurgeOption() } +void FileChannelTest::testPurgeByStrategy() +{ + std::string name = filename(); + try + { + AutoPtr pChannel = new FileChannel(name); + pChannel->setProperty(FileChannel::PROP_ROTATION, "1 K"); + pChannel->setProperty(FileChannel::PROP_ARCHIVE, "number"); + pChannel->setProperty(FileChannel::PROP_PURGECOUNT, ""); + // simpler to test the type that already exists. A true "custom" purge strategy might be time based or total size based + pChannel->setPurgeStrategy(new Poco::PurgeByCountStrategy(2)); + pChannel->open(); + Message msg("source", "This is a log file entry", Message::PRIO_INFORMATION); + for (int i = 0; i < 200; ++i) + { + pChannel->log(msg); + Thread::sleep(50); + } + File f0(name + ".0"); + assertTrue(f0.exists()); + File f1(name + ".1"); + assertTrue(f1.exists()); + File f2(name + ".2"); + assertTrue(!f2.exists()); + } + catch (...) + { + remove(name); + throw; + } + remove(name); +} + + void FileChannelTest::setUp() { } @@ -642,11 +812,14 @@ CppUnit::Test* FileChannelTest::suite() CppUnit_addLongTest(pSuite, FileChannelTest, testRotateAtTimeHourLocal); CppUnit_addLongTest(pSuite, FileChannelTest, testRotateAtTimeMinUTC); CppUnit_addLongTest(pSuite, FileChannelTest, testRotateAtTimeMinLocal); + CppUnit_addTest(pSuite, FileChannelTest, testRotateByStrategy); CppUnit_addTest(pSuite, FileChannelTest, testArchive); + CppUnit_addTest(pSuite, FileChannelTest, testArchiveByStrategy); CppUnit_addTest(pSuite, FileChannelTest, testCompress); CppUnit_addLongTest(pSuite, FileChannelTest, testPurgeAge); CppUnit_addTest(pSuite, FileChannelTest, testPurgeCount); CppUnit_addTest(pSuite, FileChannelTest, testWrongPurgeOption); + CppUnit_addTest(pSuite, FileChannelTest, testPurgeByStrategy); return pSuite; } diff --git a/Foundation/testsuite/src/FileChannelTest.h b/Foundation/testsuite/src/FileChannelTest.h index d1e00b5db..9d7f0c9b4 100644 --- a/Foundation/testsuite/src/FileChannelTest.h +++ b/Foundation/testsuite/src/FileChannelTest.h @@ -39,11 +39,14 @@ public: void testRotateAtTimeHourLocal(); void testRotateAtTimeMinUTC(); void testRotateAtTimeMinLocal(); + void testRotateByStrategy(); void testArchive(); + void testArchiveByStrategy(); void testCompress(); void testPurgeAge(); void testPurgeCount(); void testWrongPurgeOption(); + void testPurgeByStrategy(); void setUp(); void tearDown(); From 3852a6b6c2791731ad0690db499001cd2d20b835 Mon Sep 17 00:00:00 2001 From: Alexander B Date: Sat, 18 Mar 2023 09:28:47 +0300 Subject: [PATCH 028/395] Solaris.build fix #3843 and #3643 (#3939) * try fix compilation for solaris * this commit for issue #3843 and #3643 changes in Types.h allow ignore problem with declaration of std::int8_t. int8_t can be defined as char or signed char. IMHO we need strong types for Poco::Int's Envelop.cpp contains initializer for EVP_CIPHER_CTX_init, because this function prototype depends on openssl version. Application.cpp contains includes especial for SOLARIS, for ioctl support ClassLoaderTest.cpp and SharedLibraryTest.cpp contains changes because loadlibrary(dlopen) doesn't load library from current directory by default LocalDateTimeTest.cpp contains changes because SOLARIS use std::tm without tm_gmtoff * fix : define of SOLARIOS OS in LocalDateTimeTest * remove unnecessary wrapper * fix output dir for windows build with multi-config build * try to fix bug with unixodbc version in linux-builds [read here](https://github.com/microsoft/linux-package-repositories/issues/36) * try to fix bug with unixodbc version in linux-builds [read here](https://github.com/microsoft/linux-package-repositories/issues/36) * fix : warning in main cmake for if-condition for multi-config build fix : error for linux-gcc-make-cxx20, use --allow-downgrades for unixodbc * fix : warning for cmake windows builds revert changes for linux-gcc-make-cxx20 * revert ci.yml, remove unixodbc version * try re-run build --------- Co-authored-by: Aleksandar Fabijanic --- .github/workflows/ci.yml | 4 +- CMakeLists.txt | 8 ++++ Foundation/include/Poco/Types.h | 5 ++- Foundation/testsuite/src/ClassLoaderTest.cpp | 42 ++++++++++--------- .../testsuite/src/LocalDateTimeTest.cpp | 4 ++ .../testsuite/src/SharedLibraryTest.cpp | 19 ++++++--- Util/src/Application.cpp | 4 ++ 7 files changed, 57 insertions(+), 29 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ae691ab35..96570fa53 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -153,7 +153,7 @@ jobs: CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy steps: - uses: actions/checkout@v2 - - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON + - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON -DCMAKE_CXX_FLAGS="/MP /EHsc" -DCMAKE_C_FLAGS=/MP - run: cmake --build cmake-build --config Release - run: >- cd cmake-build; @@ -197,7 +197,7 @@ jobs: CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy steps: - uses: actions/checkout@v2 - - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON + - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON -DCMAKE_CXX_FLAGS="/MP /EHsc" -DCMAKE_C_FLAGS=/MP - run: cmake --build cmake-build --config Release - run: >- cd cmake-build; diff --git a/CMakeLists.txt b/CMakeLists.txt index 976ff1344..3b2658273 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,6 +21,14 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) # Windows DLLs are "runtime" for CMake. Output them to "bin" like the Visual Studio projects do. set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) +# Reset output dirs for multi-config builds +foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES}) + string(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/bin) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/lib) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/lib) +endforeach(OUTPUTCONFIG) + # Append our module directory to CMake list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) diff --git a/Foundation/include/Poco/Types.h b/Foundation/include/Poco/Types.h index 55e21b765..8aa919e3d 100644 --- a/Foundation/include/Poco/Types.h +++ b/Foundation/include/Poco/Types.h @@ -20,12 +20,13 @@ #include "Poco/Foundation.h" #include +#include namespace Poco { -using Int8 = std::int8_t; +using Int8 = std::conditional::value, std::int8_t, signed char>::type; using UInt8 = std::uint8_t; using Int16 = std::int16_t; using UInt16 = std::uint16_t; @@ -49,7 +50,7 @@ using UIntPtr = std::uintptr_t; #if defined(__LP64__) #define POCO_PTR_IS_64_BIT 1 #define POCO_LONG_IS_64_BIT 1 - #if POCO_OS == POCO_OS_LINUX || POCO_OS == POCO_OS_FREE_BSD || POCO_OS == POCO_OS_ANDROID || POCO_OS == POCO_OS_AIX || POCO_OS == POCO_OS_QNX + #if POCO_OS == POCO_OS_LINUX || POCO_OS == POCO_OS_FREE_BSD || POCO_OS == POCO_OS_ANDROID || POCO_OS == POCO_OS_AIX || POCO_OS == POCO_OS_QNX || POCO_OS == POCO_OS_SOLARIS #define POCO_INT64_IS_LONG 1 #endif #endif diff --git a/Foundation/testsuite/src/ClassLoaderTest.cpp b/Foundation/testsuite/src/ClassLoaderTest.cpp index a9250dfd8..93c149a05 100644 --- a/Foundation/testsuite/src/ClassLoaderTest.cpp +++ b/Foundation/testsuite/src/ClassLoaderTest.cpp @@ -14,6 +14,7 @@ #include "Poco/ClassLoader.h" #include "Poco/Manifest.h" #include "Poco/Exception.h" +#include "Poco/Path.h" #include "TestPlugin.h" @@ -39,14 +40,15 @@ void ClassLoaderTest::testClassLoader1() { std::string path = "TestLibrary"; path.append(SharedLibrary::suffix()); - + Poco::Path libraryPath = Poco::Path::current(); + libraryPath.append(path); ClassLoader cl; assertTrue (cl.begin() == cl.end()); assertNullPtr (cl.findClass("PluginA")); - assertNullPtr (cl.findManifest(path)); + assertNullPtr (cl.findManifest(libraryPath.toString())); - assertTrue (!cl.isLibraryLoaded(path)); + assertTrue (!cl.isLibraryLoaded(libraryPath.toString())); try { @@ -63,7 +65,7 @@ void ClassLoaderTest::testClassLoader1() try { - const ClassLoader::Manif& POCO_UNUSED manif = cl.manifestFor(path); + const ClassLoader::Manif& POCO_UNUSED manif = cl.manifestFor(libraryPath.toString()); fail("not found - must throw exception"); } catch (NotFoundException&) @@ -80,22 +82,23 @@ void ClassLoaderTest::testClassLoader2() { std::string path = "TestLibrary"; path.append(SharedLibrary::suffix()); - + Poco::Path libraryPath = Poco::Path::current(); + libraryPath.append(path); ClassLoader cl; - cl.loadLibrary(path); + cl.loadLibrary(libraryPath.toString()); assertTrue (cl.begin() != cl.end()); assertNotNullPtr (cl.findClass("PluginA")); assertNotNullPtr (cl.findClass("PluginB")); assertNotNullPtr (cl.findClass("PluginC")); - assertNotNullPtr (cl.findManifest(path)); + assertNotNullPtr (cl.findManifest(libraryPath.toString())); - assertTrue (cl.isLibraryLoaded(path)); - assertTrue (cl.manifestFor(path).size() == 3); + assertTrue (cl.isLibraryLoaded(libraryPath.toString())); + assertTrue (cl.manifestFor(libraryPath.toString()).size() == 3); ClassLoader::Iterator it = cl.begin(); assertTrue (it != cl.end()); - assertTrue (it->first == path); + assertTrue (it->first == libraryPath.toString()); assertTrue (it->second->size() == 3); ++it; assertTrue (it == cl.end()); @@ -162,7 +165,7 @@ void ClassLoaderTest::testClassLoader2() meta2.destroy(pPlugin); assertTrue (!meta2.isAutoDelete(pPlugin)); - cl.unloadLibrary(path); + cl.unloadLibrary(libraryPath.toString()); } @@ -170,23 +173,24 @@ void ClassLoaderTest::testClassLoader3() { std::string path = "TestLibrary"; path.append(SharedLibrary::suffix()); - + Poco::Path libraryPath = Poco::Path::current(); + libraryPath.append(path); ClassLoader cl; - cl.loadLibrary(path); - cl.loadLibrary(path); - cl.unloadLibrary(path); + cl.loadLibrary(libraryPath.toString()); + cl.loadLibrary(libraryPath.toString()); + cl.unloadLibrary(libraryPath.toString()); - assertTrue (cl.manifestFor(path).size() == 3); + assertTrue (cl.manifestFor(libraryPath.toString()).size() == 3); ClassLoader::Iterator it = cl.begin(); assertTrue (it != cl.end()); - assertTrue (it->first == path); + assertTrue (it->first == libraryPath.toString()); assertTrue (it->second->size() == 3); ++it; assertTrue (it == cl.end()); - cl.unloadLibrary(path); - assertNullPtr (cl.findManifest(path)); + cl.unloadLibrary(libraryPath.toString()); + assertNullPtr (cl.findManifest(libraryPath.toString())); } diff --git a/Foundation/testsuite/src/LocalDateTimeTest.cpp b/Foundation/testsuite/src/LocalDateTimeTest.cpp index f8d86c1b4..3e12c3940 100644 --- a/Foundation/testsuite/src/LocalDateTimeTest.cpp +++ b/Foundation/testsuite/src/LocalDateTimeTest.cpp @@ -477,7 +477,11 @@ void LocalDateTimeTest::testTimezone2() std::time_t t = ldt.timestamp().epochTime(); std::tm then; then = *std::localtime(&t); +#if POCO_OS == POCO_OS_SOLARIS + assertTrue((mktime(&then)-t) * 1000 == ldt.tzd()); +#else assertTrue (then.tm_gmtoff == ldt.tzd()); +#endif } unsetenv("TZ"); } diff --git a/Foundation/testsuite/src/SharedLibraryTest.cpp b/Foundation/testsuite/src/SharedLibraryTest.cpp index 4f6c70f63..27ee375b9 100644 --- a/Foundation/testsuite/src/SharedLibraryTest.cpp +++ b/Foundation/testsuite/src/SharedLibraryTest.cpp @@ -13,6 +13,7 @@ #include "CppUnit/TestSuite.h" #include "Poco/SharedLibrary.h" #include "Poco/Exception.h" +#include "Poco/Path.h" using Poco::SharedLibrary; @@ -38,10 +39,12 @@ void SharedLibraryTest::testSharedLibrary1() { std::string path = "TestLibrary"; path.append(SharedLibrary::suffix()); + Poco::Path libraryPath = Poco::Path::current(); + libraryPath.append(path); SharedLibrary sl; assertTrue (!sl.isLoaded()); - sl.load(path); - assertTrue (sl.getPath() == path); + sl.load(libraryPath.toString()); + assertTrue (sl.getPath() == libraryPath.toString()); assertTrue (sl.isLoaded()); assertTrue (sl.hasSymbol("pocoBuildManifest")); assertTrue (sl.hasSymbol("pocoInitializeLibrary")); @@ -72,8 +75,10 @@ void SharedLibraryTest::testSharedLibrary2() { std::string path = "TestLibrary"; path.append(SharedLibrary::suffix()); - SharedLibrary sl(path); - assertTrue (sl.getPath() == path); + Poco::Path libraryPath = Poco::Path::current(); + libraryPath.append(path); + SharedLibrary sl(libraryPath.toString()); + assertTrue (sl.getPath() == libraryPath.toString()); assertTrue (sl.isLoaded()); GimmeFiveFunc gimmeFive = (GimmeFiveFunc) sl.getSymbol("gimmeFive"); @@ -105,12 +110,14 @@ void SharedLibraryTest::testSharedLibrary3() path = "TestLibrary"; path.append(SharedLibrary::suffix()); - sl.load(path); + Poco::Path libraryPath = Poco::Path::current(); + libraryPath.append(path); + sl.load(libraryPath.toString()); assertTrue (sl.isLoaded()); try { - sl.load(path); + sl.load(libraryPath.toString()); failmsg("library already loaded - must throw exception"); } catch (LibraryAlreadyLoadedException&) diff --git a/Util/src/Application.cpp b/Util/src/Application.cpp index fe61dddab..605b2cf7c 100644 --- a/Util/src/Application.cpp +++ b/Util/src/Application.cpp @@ -42,6 +42,10 @@ #include "Poco/SignalHandler.h" #include #include +#if POCO_OS == POCO_OS_SOLARIS +#include +#include +#endif #endif #include "Poco/UnicodeConverter.h" From 6207b8fb56cb56dda7dca1d6252775a9a4d5f6b7 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Sat, 18 Mar 2023 01:29:14 -0500 Subject: [PATCH 029/395] fix(devel): add missing 1.11 releases commits (#3976) --- CHANGELOG | 24 +++++++++++++++++++ CppParser/include/Poco/CppParser/Function.h | 9 +++++++ CppParser/include/Poco/CppParser/Variable.h | 17 ++++++++++++++ doc/99100-ReleaseNotes.page | 26 +++++++++++++++++++++ 4 files changed, 76 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index e39e7ee5b..66afe2de4 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -180,6 +180,30 @@ Release 1.12.0 (2022-07-08) - GH #3665 MSVC does not properly recognize std version +Release 1.11.6 (2022-12-08) +=========================== + +- GH #3147: Reading from request stream hangs when "Transfer-Encoding: chunked" is used +- GH #3859: zlib headers not updated +- GH #3876: Replace sprintf with snprintf in Environment and NumberFormatter to avoid deprecation warnings +- Build system improvements for Xcode on Apple Silicon. +- Upgrade bundled SQLite to 3.40.0 + + +Release 1.11.5 (2022-10-31) +=========================== + +- GH #3849: Upgrade bundled libexpat to 2.5.0 [fixes CVE] + + +Release 1.11.4 (2022-10-24) +=========================== + +- GH #3805: Upgrade expat to 2.4.9 +- GH #3846: Upgrade bundled zlib to 1.2.13 [fixes CVE] +- GH #3847: Upgrade bundled SQLite to 3.39.4 + + Release 1.11.3 (2022-06-12) =========================== diff --git a/CppParser/include/Poco/CppParser/Function.h b/CppParser/include/Poco/CppParser/Function.h index 4f4853201..8e367171e 100644 --- a/CppParser/include/Poco/CppParser/Function.h +++ b/CppParser/include/Poco/CppParser/Function.h @@ -119,6 +119,9 @@ public: bool isDeleted() const; /// Returns true iff the method has been deleted. + bool isStatic() const; + /// Returns true iff the method is static. + int countParameters() const; /// Returns the number of parameters. @@ -178,6 +181,12 @@ inline bool Function::isDeleted() const } +inline bool Function::isStatic() const +{ + return (flags() & FN_STATIC) != 0; +} + + } } // namespace Poco::CppParser diff --git a/CppParser/include/Poco/CppParser/Variable.h b/CppParser/include/Poco/CppParser/Variable.h index 92f67752d..a33607fcb 100644 --- a/CppParser/include/Poco/CppParser/Variable.h +++ b/CppParser/include/Poco/CppParser/Variable.h @@ -57,6 +57,11 @@ public: /// /// Example: a type const std::string& -> std::string, a type const std::string* returns std::string + bool isConst() const; + /// Returns true iff the variable is const. + + bool isStatic() const; + /// Returns true iff the variable is static. private: int _flags; @@ -80,6 +85,18 @@ inline bool Variable::isPointer() const } +inline bool Variable::isConst() const +{ + return (flags() & VAR_CONST) != 0; +} + + +inline bool Variable::isStatic() const +{ + return (flags() & VAR_STATIC) != 0; +} + + inline const std::string& Variable::declType() const { return _type; diff --git a/doc/99100-ReleaseNotes.page b/doc/99100-ReleaseNotes.page index 3f88b4214..817ef2ed2 100644 --- a/doc/99100-ReleaseNotes.page +++ b/doc/99100-ReleaseNotes.page @@ -190,6 +190,32 @@ AAAIntroduction - Move semantics for sockets and SocketAddress (compile-time option, disabled by default) +!!!Release 1.11.6 + +!!Summary of Changes + + - GH #3147: Reading from request stream hangs when "Transfer-Encoding: chunked" is used + - GH #3859: zlib headers not updated + - Build system fixes for Xcode on Apple Silicon. + - Upgrade bundled SQLite to 3.40.0 + + +!!!Release 1.11.5 + +!!Summary of Changes + + - GH #3849: Upgrade bundled libexpat to 2.5.0 [fixes CVE] + + +!!!Release 1.11.4 + +!!Summary of Changes + + - GH #3805: Upgrade expat to 2.4.9 + - GH #3846: Upgrade bundled zlib to 1.2.13 [fixes CVE] + - GH #3847: Upgrade bundled SQLite to 3.39.4 + + !!!Release 1.11.3 !!Summary of Changes From 7ab7a5291d1296d3d467043f35492bb8c82e8e91 Mon Sep 17 00:00:00 2001 From: Alexander B Date: Sat, 18 Mar 2023 13:21:32 +0300 Subject: [PATCH 030/395] Improve implementation of logging macros. #2331 (#3862) * Improve implementation of logging macros. #2331 The GNU compiler emits a warning if nested "if" statements are followed by an "else" statement and braces are not used to explicitly disambiguate the "else" binding. This leads to problems with code like: if (gate) ASSERT_*(condition) << "Some message"; The "switch (0) case 0:" idiom is used to suppress this. * I was wrong. do-while better then switch-case approach for "ambiguous else blocker" https://godbolt.org/z/W5nnYrzx6 * try to fix tabs * again fix tabs * again fix tabs * again fix tabs --- Foundation/include/Poco/Logger.h | 234 +++++++++++++++++++++++-------- 1 file changed, 174 insertions(+), 60 deletions(-) diff --git a/Foundation/include/Poco/Logger.h b/Foundation/include/Poco/Logger.h index f0c79e543..bfa2fec14 100644 --- a/Foundation/include/Poco/Logger.h +++ b/Foundation/include/Poco/Logger.h @@ -491,150 +491,264 @@ private: // // convenience macros // + +// The GNU compiler emits a warning if nested "if" statements are followed by +// an "else" statement and braces are not used to explicitly disambiguate the +// "else" binding. This leads to problems with code like: +// +// if (gate) +// poco_log(loglevel, msg); +// +#ifdef __INTEL_COMPILER +#define POCO_AMBIGUOUS_ELSE_BLOCKER_BEG +#define POCO_AMBIGUOUS_ELSE_BLOCKER_END +#else +#define POCO_AMBIGUOUS_ELSE_BLOCKER_BEG do { + +#define POCO_AMBIGUOUS_ELSE_BLOCKER_END \ + } while(0) +#endif + #define poco_fatal(logger, msg) \ - if ((logger).fatal()) (logger).fatal(msg, __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).fatal()) (logger).fatal(msg, __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_fatal_f1(logger, fmt, arg1) \ - if ((logger).fatal()) (logger).fatal(Poco::format((fmt), arg1), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).fatal()) (logger).fatal(Poco::format((fmt), arg1), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_fatal_f2(logger, fmt, arg1, arg2) \ - if ((logger).fatal()) (logger).fatal(Poco::format((fmt), (arg1), (arg2)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).fatal()) (logger).fatal(Poco::format((fmt), (arg1), (arg2)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_fatal_f3(logger, fmt, arg1, arg2, arg3) \ - if ((logger).fatal()) (logger).fatal(Poco::format((fmt), (arg1), (arg2), (arg3)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).fatal()) (logger).fatal(Poco::format((fmt), (arg1), (arg2), (arg3)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_fatal_f4(logger, fmt, arg1, arg2, arg3, arg4) \ - if ((logger).fatal()) (logger).fatal(Poco::format((fmt), (arg1), (arg2), (arg3), (arg4)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).fatal()) (logger).fatal(Poco::format((fmt), (arg1), (arg2), (arg3), (arg4)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_fatal_f(logger, fmt, ...) \ - if ((logger).fatal()) (logger).fatal(Poco::format((fmt), __VA_ARGS__), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).fatal()) (logger).fatal(Poco::format((fmt), __VA_ARGS__), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_critical(logger, msg) \ - if ((logger).critical()) (logger).critical(msg, __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).critical()) (logger).critical(msg, __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_critical_f1(logger, fmt, arg1) \ - if ((logger).critical()) (logger).critical(Poco::format((fmt), (arg1)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).critical()) (logger).critical(Poco::format((fmt), (arg1)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_critical_f2(logger, fmt, arg1, arg2) \ - if ((logger).critical()) (logger).critical(Poco::format((fmt), (arg1), (arg2)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).critical()) (logger).critical(Poco::format((fmt), (arg1), (arg2)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_critical_f3(logger, fmt, arg1, arg2, arg3) \ - if ((logger).critical()) (logger).critical(Poco::format((fmt), (arg1), (arg2), (arg3)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).critical()) (logger).critical(Poco::format((fmt), (arg1), (arg2), (arg3)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_critical_f4(logger, fmt, arg1, arg2, arg3, arg4) \ - if ((logger).critical()) (logger).critical(Poco::format((fmt), (arg1), (arg2), (arg3), (arg4)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).critical()) (logger).critical(Poco::format((fmt), (arg1), (arg2), (arg3), (arg4)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_critical_f(logger, fmt, ...) \ - if ((logger).critical()) (logger).critical(Poco::format((fmt), __VA_ARGS__), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).critical()) (logger).critical(Poco::format((fmt), __VA_ARGS__), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_error(logger, msg) \ - if ((logger).error()) (logger).error(msg, __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).error()) (logger).error(msg, __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_error_f1(logger, fmt, arg1) \ - if ((logger).error()) (logger).error(Poco::format((fmt), (arg1)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).error()) (logger).error(Poco::format((fmt), (arg1)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_error_f2(logger, fmt, arg1, arg2) \ - if ((logger).error()) (logger).error(Poco::format((fmt), (arg1), (arg2)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).error()) (logger).error(Poco::format((fmt), (arg1), (arg2)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_error_f3(logger, fmt, arg1, arg2, arg3) \ - if ((logger).error()) (logger).error(Poco::format((fmt), (arg1), (arg2), (arg3)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).error()) (logger).error(Poco::format((fmt), (arg1), (arg2), (arg3)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_error_f4(logger, fmt, arg1, arg2, arg3, arg4) \ - if ((logger).error()) (logger).error(Poco::format((fmt), (arg1), (arg2), (arg3), (arg4)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).error()) (logger).error(Poco::format((fmt), (arg1), (arg2), (arg3), (arg4)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_error_f(logger, fmt, ...) \ - if ((logger).error()) (logger).error(Poco::format((fmt), __VA_ARGS__), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).error()) (logger).error(Poco::format((fmt), __VA_ARGS__), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_warning(logger, msg) \ - if ((logger).warning()) (logger).warning(msg, __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).warning()) (logger).warning(msg, __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_warning_f1(logger, fmt, arg1) \ - if ((logger).warning()) (logger).warning(Poco::format((fmt), (arg1)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).warning()) (logger).warning(Poco::format((fmt), (arg1)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_warning_f2(logger, fmt, arg1, arg2) \ - if ((logger).warning()) (logger).warning(Poco::format((fmt), (arg1), (arg2)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).warning()) (logger).warning(Poco::format((fmt), (arg1), (arg2)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_warning_f3(logger, fmt, arg1, arg2, arg3) \ - if ((logger).warning()) (logger).warning(Poco::format((fmt), (arg1), (arg2), (arg3)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).warning()) (logger).warning(Poco::format((fmt), (arg1), (arg2), (arg3)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_warning_f4(logger, fmt, arg1, arg2, arg3, arg4) \ - if ((logger).warning()) (logger).warning(Poco::format((fmt), (arg1), (arg2), (arg3), (arg4)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).warning()) (logger).warning(Poco::format((fmt), (arg1), (arg2), (arg3), (arg4)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_warning_f(logger, fmt, ...) \ - if ((logger).warning()) (logger).warning(Poco::format((fmt), __VA_ARGS__), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).warning()) (logger).warning(Poco::format((fmt), __VA_ARGS__), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_notice(logger, msg) \ - if ((logger).notice()) (logger).notice(msg, __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).notice()) (logger).notice(msg, __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_notice_f1(logger, fmt, arg1) \ - if ((logger).notice()) (logger).notice(Poco::format((fmt), (arg1)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).notice()) (logger).notice(Poco::format((fmt), (arg1)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_notice_f2(logger, fmt, arg1, arg2) \ - if ((logger).notice()) (logger).notice(Poco::format((fmt), (arg1), (arg2)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).notice()) (logger).notice(Poco::format((fmt), (arg1), (arg2)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_notice_f3(logger, fmt, arg1, arg2, arg3) \ - if ((logger).notice()) (logger).notice(Poco::format((fmt), (arg1), (arg2), (arg3)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).notice()) (logger).notice(Poco::format((fmt), (arg1), (arg2), (arg3)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_notice_f4(logger, fmt, arg1, arg2, arg3, arg4) \ - if ((logger).notice()) (logger).notice(Poco::format((fmt), (arg1), (arg2), (arg3), (arg4)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).notice()) (logger).notice(Poco::format((fmt), (arg1), (arg2), (arg3), (arg4)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_notice_f(logger, fmt, ...) \ - if ((logger).notice()) (logger).notice(Poco::format((fmt), __VA_ARGS__), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).notice()) (logger).notice(Poco::format((fmt), __VA_ARGS__), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_information(logger, msg) \ - if ((logger).information()) (logger).information(msg, __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).information()) (logger).information(msg, __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_information_f1(logger, fmt, arg1) \ - if ((logger).information()) (logger).information(Poco::format((fmt), (arg1)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).information()) (logger).information(Poco::format((fmt), (arg1)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_information_f2(logger, fmt, arg1, arg2) \ - if ((logger).information()) (logger).information(Poco::format((fmt), (arg1), (arg2)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).information()) (logger).information(Poco::format((fmt), (arg1), (arg2)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_information_f3(logger, fmt, arg1, arg2, arg3) \ - if ((logger).information()) (logger).information(Poco::format((fmt), (arg1), (arg2), (arg3)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).information()) (logger).information(Poco::format((fmt), (arg1), (arg2), (arg3)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_information_f4(logger, fmt, arg1, arg2, arg3, arg4) \ - if ((logger).information()) (logger).information(Poco::format((fmt), (arg1), (arg2), (arg3), (arg4)), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).information()) (logger).information(Poco::format((fmt), (arg1), (arg2), (arg3), (arg4)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #define poco_information_f(logger, fmt, ...) \ - if ((logger).information()) (logger).information(Poco::format((fmt), __VA_ARGS__), __FILE__, __LINE__); else (void) 0 + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).information()) (logger).information(Poco::format((fmt), __VA_ARGS__), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #if defined(_DEBUG) || defined(POCO_LOG_DEBUG) - #define poco_debug(logger, msg) \ - if ((logger).debug()) (logger).debug(msg, __FILE__, __LINE__); else (void) 0 +#define poco_debug(logger, msg) \ + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).debug()) (logger).debug(msg, __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END - #define poco_debug_f1(logger, fmt, arg1) \ - if ((logger).debug()) (logger).debug(Poco::format((fmt), (arg1)), __FILE__, __LINE__); else (void) 0 +#define poco_debug_f1(logger, fmt, arg1) \ + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).debug()) (logger).debug(Poco::format((fmt), (arg1)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END - #define poco_debug_f2(logger, fmt, arg1, arg2) \ - if ((logger).debug()) (logger).debug(Poco::format((fmt), (arg1), (arg2)), __FILE__, __LINE__); else (void) 0 +#define poco_debug_f2(logger, fmt, arg1, arg2) \ + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).debug()) (logger).debug(Poco::format((fmt), (arg1), (arg2)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END - #define poco_debug_f3(logger, fmt, arg1, arg2, arg3) \ - if ((logger).debug()) (logger).debug(Poco::format((fmt), (arg1), (arg2), (arg3)), __FILE__, __LINE__); else (void) 0 +#define poco_debug_f3(logger, fmt, arg1, arg2, arg3) \ + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).debug()) (logger).debug(Poco::format((fmt), (arg1), (arg2), (arg3)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END - #define poco_debug_f4(logger, fmt, arg1, arg2, arg3, arg4) \ - if ((logger).debug()) (logger).debug(Poco::format((fmt), (arg1), (arg2), (arg3), (arg4)), __FILE__, __LINE__); else (void) 0 +#define poco_debug_f4(logger, fmt, arg1, arg2, arg3, arg4) \ + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).debug()) (logger).debug(Poco::format((fmt), (arg1), (arg2), (arg3), (arg4)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END - #define poco_debug_f(logger, fmt, ...) \ - if ((logger).debug()) (logger).debug(Poco::format((fmt), __VA_ARGS__), __FILE__, __LINE__); else (void) 0 +#define poco_debug_f(logger, fmt, ...) \ + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).debug()) (logger).debug(Poco::format((fmt), __VA_ARGS__), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END - #define poco_trace(logger, msg) \ - if ((logger).trace()) (logger).trace(msg, __FILE__, __LINE__); else (void) 0 +#define poco_trace(logger, msg) \ + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).trace()) (logger).trace(msg, __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END - #define poco_trace_f1(logger, fmt, arg1) \ - if ((logger).trace()) (logger).trace(Poco::format((fmt), (arg1)), __FILE__, __LINE__); else (void) 0 +#define poco_trace_f1(logger, fmt, arg1) \ + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).trace()) (logger).trace(Poco::format((fmt), (arg1)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END - #define poco_trace_f2(logger, fmt, arg1, arg2) \ - if ((logger).trace()) (logger).trace(Poco::format((fmt), (arg1), (arg2)), __FILE__, __LINE__); else (void) 0 +#define poco_trace_f2(logger, fmt, arg1, arg2) \ + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).trace()) (logger).trace(Poco::format((fmt), (arg1), (arg2)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END - #define poco_trace_f3(logger, fmt, arg1, arg2, arg3) \ - if ((logger).trace()) (logger).trace(Poco::format((fmt), (arg1), (arg2), (arg3)), __FILE__, __LINE__); else (void) 0 +#define poco_trace_f3(logger, fmt, arg1, arg2, arg3) \ + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).trace()) (logger).trace(Poco::format((fmt), (arg1), (arg2), (arg3)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END - #define poco_trace_f4(logger, fmt, arg1, arg2, arg3, arg4) \ - if ((logger).trace()) (logger).trace(Poco::format((fmt), (arg1), (arg2), (arg3), (arg4)), __FILE__, __LINE__); else (void) 0 +#define poco_trace_f4(logger, fmt, arg1, arg2, arg3, arg4) \ + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).trace()) (logger).trace(Poco::format((fmt), (arg1), (arg2), (arg3), (arg4)), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END - #define poco_trace_f(logger, fmt, ...) \ - if ((logger).trace()) (logger).trace(Poco::format((fmt), __VA_ARGS__), __FILE__, __LINE__); else (void) 0 +#define poco_trace_f(logger, fmt, ...) \ + POCO_AMBIGUOUS_ELSE_BLOCKER_BEG \ + if ((logger).trace()) (logger).trace(Poco::format((fmt), __VA_ARGS__), __FILE__, __LINE__); \ + POCO_AMBIGUOUS_ELSE_BLOCKER_END #else #define poco_debug(logger, msg) #define poco_debug_f1(logger, fmt, arg1) From cee8c9614613a155c900704dd1be5d479dcc9cc5 Mon Sep 17 00:00:00 2001 From: cesar Date: Sat, 18 Mar 2023 06:22:51 -0400 Subject: [PATCH 031/395] Added system_error header to SockerProactor for std::error_code references (#3883) --- Net/include/Poco/Net/SocketProactor.h | 1 + 1 file changed, 1 insertion(+) diff --git a/Net/include/Poco/Net/SocketProactor.h b/Net/include/Poco/Net/SocketProactor.h index 403010b90..161ff2b76 100644 --- a/Net/include/Poco/Net/SocketProactor.h +++ b/Net/include/Poco/Net/SocketProactor.h @@ -36,6 +36,7 @@ #include #include #include +#include namespace Poco { From 38380701469d28c4275b5ac192c8f2afc5c9b65d Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Mon, 20 Mar 2023 07:50:15 +0100 Subject: [PATCH 032/395] Resolves #3484: support for OP_MSG in Poco::MongoDB (#3902) * Binary writer/reader: add writeCString and readCString. * MongoDB::Database: add queryBuildInfo and queryServerHello; add WireVersion enum. * MongoDB: Introduce OpMsgMessage (request and reply) and related changes in Connection, Database, MessageHeader. * MongoDB: First unit test changes for OpMsgMessage. * MongoDB::Document: new functions addNewArray and remove. * MongoDB: OP_MSG unacknowledged write and many improvements * MongoDB: new cursor using OP_MSG * MongoDB: bunch of new tests for OP_MSG wire protocol. * BinaryWriter::WriteCString: use write instead of operator <<. * MongoDB::OpMsgCursor: Slightly modified prototype code for using moreToCome flag. * MongoDB: Add OpMsg* files to Makefiles. * MongoDB: Add OpMsg* files to VS project files. * Compile fixes. * MongoDB::Database: Add factory function for database commands createOpMsgMessage() and cursors createOpMsgCursor() --- Foundation/include/Poco/BinaryReader.h | 3 + Foundation/include/Poco/BinaryWriter.h | 5 + Foundation/src/BinaryReader.cpp | 25 ++ Foundation/src/BinaryWriter.cpp | 9 + MongoDB/Makefile | 2 +- MongoDB/MongoDB_vs140.vcxproj | 8 + MongoDB/MongoDB_vs150.vcxproj | 8 + MongoDB/MongoDB_vs160.vcxproj | 8 + MongoDB/MongoDB_vs170.vcxproj | 8 + MongoDB/include/Poco/MongoDB/Connection.h | 16 + MongoDB/include/Poco/MongoDB/Database.h | 77 +++- MongoDB/include/Poco/MongoDB/Document.h | 23 +- MongoDB/include/Poco/MongoDB/MessageHeader.h | 8 +- MongoDB/include/Poco/MongoDB/OpMsgCursor.h | 87 ++++ MongoDB/include/Poco/MongoDB/OpMsgMessage.h | 161 +++++++ MongoDB/src/Connection.cpp | 26 ++ MongoDB/src/Database.cpp | 48 +- MongoDB/src/Document.cpp | 8 + MongoDB/src/MessageHeader.cpp | 4 +- MongoDB/src/OpMsgCursor.cpp | 173 ++++++++ MongoDB/src/OpMsgMessage.cpp | 401 +++++++++++++++++ MongoDB/testsuite/Makefile | 2 +- MongoDB/testsuite/TestSuite_vs140.vcxproj | 3 + MongoDB/testsuite/TestSuite_vs150.vcxproj | 3 + MongoDB/testsuite/TestSuite_vs160.vcxproj | 3 + MongoDB/testsuite/TestSuite_vs170.vcxproj | 3 + MongoDB/testsuite/src/MongoDBTest.cpp | 96 ++-- MongoDB/testsuite/src/MongoDBTest.h | 34 +- MongoDB/testsuite/src/MongoDBTestOpMsg.cpp | 444 +++++++++++++++++++ 29 files changed, 1642 insertions(+), 54 deletions(-) create mode 100644 MongoDB/include/Poco/MongoDB/OpMsgCursor.h create mode 100644 MongoDB/include/Poco/MongoDB/OpMsgMessage.h create mode 100644 MongoDB/src/OpMsgCursor.cpp create mode 100644 MongoDB/src/OpMsgMessage.cpp create mode 100644 MongoDB/testsuite/src/MongoDBTestOpMsg.cpp diff --git a/Foundation/include/Poco/BinaryReader.h b/Foundation/include/Poco/BinaryReader.h index 5b5e7bee4..de5ab8054 100644 --- a/Foundation/include/Poco/BinaryReader.h +++ b/Foundation/include/Poco/BinaryReader.h @@ -117,6 +117,9 @@ public: void readRaw(char* buffer, std::streamsize length); /// Reads length bytes of raw data into buffer. + void readCString(std::string& value); + /// Reads zero-terminated C-string into value. + void readBOM(); /// Reads a byte-order mark from the stream and configures /// the reader for the encountered byte order. diff --git a/Foundation/include/Poco/BinaryWriter.h b/Foundation/include/Poco/BinaryWriter.h index 985384295..730a61dbb 100644 --- a/Foundation/include/Poco/BinaryWriter.h +++ b/Foundation/include/Poco/BinaryWriter.h @@ -55,6 +55,8 @@ public: LITTLE_ENDIAN_BYTE_ORDER = 3 /// little-endian byte-order }; + static const std::streamsize DEFAULT_MAX_CSTR_LENGTH { 1024 }; + BinaryWriter(std::ostream& ostr, StreamByteOrder byteOrder = NATIVE_BYTE_ORDER); /// Creates the BinaryWriter. @@ -132,6 +134,9 @@ public: void writeRaw(const char* buffer, std::streamsize length); /// Writes length raw bytes from the given buffer to the stream. + void writeCString(const char* cString, std::streamsize maxLength = DEFAULT_MAX_CSTR_LENGTH); + /// Writes zero-terminated C-string. + void writeBOM(); /// Writes a byte-order mark to the stream. A byte order mark is /// a 16-bit integer with a value of 0xFEFF, written in host byte-order. diff --git a/Foundation/src/BinaryReader.cpp b/Foundation/src/BinaryReader.cpp index 61fd8620e..aff078c1c 100644 --- a/Foundation/src/BinaryReader.cpp +++ b/Foundation/src/BinaryReader.cpp @@ -276,6 +276,31 @@ void BinaryReader::readRaw(char* buffer, std::streamsize length) } +void BinaryReader::readCString(std::string& value) +{ + value.clear(); + if (!_istr.good()) + { + return; + } + value.reserve(256); + while (true) + { + char c; + _istr.get(c); + if (!_istr.good()) + { + break; + } + if (c == '\0') + { + break; + } + value += c; + } +} + + void BinaryReader::readBOM() { UInt16 bom; diff --git a/Foundation/src/BinaryWriter.cpp b/Foundation/src/BinaryWriter.cpp index 7e5b0a567..4362edf30 100644 --- a/Foundation/src/BinaryWriter.cpp +++ b/Foundation/src/BinaryWriter.cpp @@ -334,6 +334,15 @@ void BinaryWriter::writeRaw(const char* buffer, std::streamsize length) } +void BinaryWriter::writeCString(const char* cString, std::streamsize maxLength) +{ + const std::size_t len = ::strnlen(cString, maxLength); + writeRaw(cString, len); + static const char zero = '\0'; + _ostr.write(&zero, sizeof(zero)); +} + + void BinaryWriter::writeBOM() { UInt16 value = 0xFEFF; diff --git a/MongoDB/Makefile b/MongoDB/Makefile index 2137b19f8..9a044a2d8 100644 --- a/MongoDB/Makefile +++ b/MongoDB/Makefile @@ -12,7 +12,7 @@ objects = Array Binary Connection Cursor DeleteRequest Database \ Document Element GetMoreRequest InsertRequest JavaScriptCode \ KillCursorsRequest Message MessageHeader ObjectId QueryRequest \ RegularExpression ReplicaSet RequestMessage ResponseMessage \ - UpdateRequest + UpdateRequest OpMsgMessage OpMsgCursor target = PocoMongoDB target_version = $(LIBVERSION) diff --git a/MongoDB/MongoDB_vs140.vcxproj b/MongoDB/MongoDB_vs140.vcxproj index 2709f533e..2452b8efa 100644 --- a/MongoDB/MongoDB_vs140.vcxproj +++ b/MongoDB/MongoDB_vs140.vcxproj @@ -604,6 +604,12 @@ true + + true + + + true + @@ -631,6 +637,8 @@ + + diff --git a/MongoDB/MongoDB_vs150.vcxproj b/MongoDB/MongoDB_vs150.vcxproj index fcef28f5c..d5bbfb46f 100644 --- a/MongoDB/MongoDB_vs150.vcxproj +++ b/MongoDB/MongoDB_vs150.vcxproj @@ -604,6 +604,12 @@ true + + true + + + true + @@ -631,6 +637,8 @@ + + diff --git a/MongoDB/MongoDB_vs160.vcxproj b/MongoDB/MongoDB_vs160.vcxproj index 30300351b..8a6dfb77c 100644 --- a/MongoDB/MongoDB_vs160.vcxproj +++ b/MongoDB/MongoDB_vs160.vcxproj @@ -604,6 +604,12 @@ true + + true + + + true + @@ -631,6 +637,8 @@ + + diff --git a/MongoDB/MongoDB_vs170.vcxproj b/MongoDB/MongoDB_vs170.vcxproj index 14bc440ab..95412050a 100644 --- a/MongoDB/MongoDB_vs170.vcxproj +++ b/MongoDB/MongoDB_vs170.vcxproj @@ -867,6 +867,12 @@ true + + true + + + true + @@ -894,6 +900,8 @@ + + diff --git a/MongoDB/include/Poco/MongoDB/Connection.h b/MongoDB/include/Poco/MongoDB/Connection.h index 870be2a7c..5b718fa5a 100644 --- a/MongoDB/include/Poco/MongoDB/Connection.h +++ b/MongoDB/include/Poco/MongoDB/Connection.h @@ -23,6 +23,7 @@ #include "Poco/Mutex.h" #include "Poco/MongoDB/RequestMessage.h" #include "Poco/MongoDB/ResponseMessage.h" +#include "Poco/MongoDB/OpMsgMessage.h" namespace Poco { @@ -140,6 +141,21 @@ public: /// Use this when a response is expected: only a "query" or "getmore" /// request will return a response. + void sendRequest(OpMsgMessage& request, OpMsgMessage& response); + /// Sends a request to the MongoDB server and receives the response + /// using newer wire protocol with OP_MSG. + + void sendRequest(OpMsgMessage& request); + /// Sends an unacknowledged request to the MongoDB server using newer + /// wire protocol with OP_MSG. + /// No response is sent by the server. + + void readResponse(OpMsgMessage& response); + /// Reads additional response data when previous message's flag moreToCome + /// indicates that server will send more data. + /// NOTE: See comments in OpMsgCursor code. + + protected: void connect(); diff --git a/MongoDB/include/Poco/MongoDB/Database.h b/MongoDB/include/Poco/MongoDB/Database.h index 39dbecdbe..ebcf47da9 100644 --- a/MongoDB/include/Poco/MongoDB/Database.h +++ b/MongoDB/include/Poco/MongoDB/Database.h @@ -26,6 +26,8 @@ #include "Poco/MongoDB/UpdateRequest.h" #include "Poco/MongoDB/DeleteRequest.h" +#include "Poco/MongoDB/OpMsgMessage.h" +#include "Poco/MongoDB/OpMsgCursor.h" namespace Poco { namespace MongoDB { @@ -56,34 +58,49 @@ public: /// May throw a Poco::ProtocolException if authentication fails for a reason other than /// invalid credentials. + Document::Ptr queryBuildInfo(Connection& connection) const; + /// Queries server build info (all wire protocols) + + Document::Ptr queryServerHello(Connection& connection) const; + /// Queries hello response from server (all wire protocols) + Int64 count(Connection& connection, const std::string& collectionName) const; - /// Sends a count request for the given collection to MongoDB. + /// Sends a count request for the given collection to MongoDB. (old wire protocol) /// /// If the command fails, -1 is returned. Poco::SharedPtr createCommand() const; - /// Creates a QueryRequest for a command. + /// Creates a QueryRequest for a command. (old wire protocol) Poco::SharedPtr createCountRequest(const std::string& collectionName) const; /// Creates a QueryRequest to count the given collection. - /// The collectionname must not contain the database name. + /// The collectionname must not contain the database name. (old wire protocol) Poco::SharedPtr createDeleteRequest(const std::string& collectionName) const; /// Creates a DeleteRequest to delete documents in the given collection. - /// The collectionname must not contain the database name. + /// The collectionname must not contain the database name. (old wire protocol) Poco::SharedPtr createInsertRequest(const std::string& collectionName) const; /// Creates an InsertRequest to insert new documents in the given collection. - /// The collectionname must not contain the database name. + /// The collectionname must not contain the database name. (old wire protocol) Poco::SharedPtr createQueryRequest(const std::string& collectionName) const; - /// Creates a QueryRequest. + /// Creates a QueryRequest. (old wire protocol) /// The collectionname must not contain the database name. Poco::SharedPtr createUpdateRequest(const std::string& collectionName) const; - /// Creates an UpdateRequest. + /// Creates an UpdateRequest. (old wire protocol) /// The collectionname must not contain the database name. + Poco::SharedPtr createOpMsgMessage(const std::string& collectionName) const; + /// Creates OpMsgMessage. (new wire protocol) + + Poco::SharedPtr createOpMsgMessage() const; + /// Creates OpMsgMessage for database commands. (new wire protocol) + + Poco::SharedPtr createOpMsgCursor(const std::string& collectionName) const; + /// Creates OpMsgCursor. (new wire protocol) + Poco::MongoDB::Document::Ptr ensureIndex(Connection& connection, const std::string& collection, const std::string& indexName, @@ -93,20 +110,43 @@ public: int version = 0, int ttl = 0); /// Creates an index. The document returned is the result of a getLastError call. - /// For more info look at the ensureIndex information on the MongoDB website. + /// For more info look at the ensureIndex information on the MongoDB website. (old wire protocol) Document::Ptr getLastErrorDoc(Connection& connection) const; /// Sends the getLastError command to the database and returns the error document. + /// (old wire protocol) std::string getLastError(Connection& connection) const; /// Sends the getLastError command to the database and returns the err element /// from the error document. When err is null, an empty string is returned. + /// (old wire protocol) static const std::string AUTH_MONGODB_CR; /// Default authentication mechanism prior to MongoDB 3.0. static const std::string AUTH_SCRAM_SHA1; /// Default authentication mechanism for MongoDB 3.0. + + enum WireVersion + /// Wire version as reported by the command hello. + /// See details in MongoDB github, repository specifications. + /// @see queryServerHello + { + VER_26 = 1, + VER_26_2 = 2, + VER_30 = 3, + VER_32 = 4, + VER_34 = 5, + VER_36 = 6, ///< First wire version that supports OP_MSG + VER_40 = 7, + VER_42 = 8, + VER_44 = 9, + VER_50 = 13, + VER_51 = 14, ///< First wire version that supports only OP_MSG + VER_52 = 15, + VER_53 = 16, + VER_60 = 17 + }; protected: bool authCR(Connection& connection, const std::string& username, const std::string& password); @@ -155,6 +195,27 @@ Database::createUpdateRequest(const std::string& collectionName) const return new Poco::MongoDB::UpdateRequest(_dbname + '.' + collectionName); } +// -- New wire protocol commands + +inline Poco::SharedPtr +Database::createOpMsgMessage(const std::string& collectionName) const +{ + return new Poco::MongoDB::OpMsgMessage(_dbname, collectionName); +} + +inline Poco::SharedPtr +Database::createOpMsgMessage() const +{ + // Collection name for database commands is ignored and any value will do. + return createOpMsgMessage("1"); +} + +inline Poco::SharedPtr +Database::createOpMsgCursor(const std::string& collectionName) const +{ + return new Poco::MongoDB::OpMsgCursor(_dbname, collectionName); +} + } } // namespace Poco::MongoDB diff --git a/MongoDB/include/Poco/MongoDB/Document.h b/MongoDB/include/Poco/MongoDB/Document.h index 5be1a33c8..a51768a33 100644 --- a/MongoDB/include/Poco/MongoDB/Document.h +++ b/MongoDB/include/Poco/MongoDB/Document.h @@ -29,6 +29,7 @@ namespace Poco { namespace MongoDB { +class Array; class ElementFindByName { @@ -90,6 +91,10 @@ public: /// Unlike the other add methods, this method returns /// a reference to the new document. + Array& addNewArray(const std::string& name); + /// Create a new array and add it to this document. + /// Method returns a reference to the new array. + void clear(); /// Removes all elements from the document. @@ -99,7 +104,7 @@ public: bool empty() const; /// Returns true if the document doesn't contain any documents. - bool exists(const std::string& name); + bool exists(const std::string& name) const; /// Returns true if the document has an element with the given name. template @@ -162,6 +167,9 @@ public: /// return an Int64. When the element is not found, a /// Poco::NotFoundException will be thrown. + bool remove(const std::string& name); + /// Removes an element from the document. + template bool isType(const std::string& name) const /// Returns true when the type of the element equals the TypeId of ElementTrait. @@ -231,12 +239,23 @@ inline void Document::elementNames(std::vector& keys) const } -inline bool Document::exists(const std::string& name) +inline bool Document::exists(const std::string& name) const { return std::find_if(_elements.begin(), _elements.end(), ElementFindByName(name)) != _elements.end(); } +inline bool Document::remove(const std::string& name) +{ + auto it = std::find_if(_elements.begin(), _elements.end(), ElementFindByName(name)); + if (it == _elements.end()) + return false; + + _elements.erase(it); + return true; +} + + inline std::size_t Document::size() const { return _elements.size(); diff --git a/MongoDB/include/Poco/MongoDB/MessageHeader.h b/MongoDB/include/Poco/MongoDB/MessageHeader.h index 0f56d9e83..a8ef0b654 100644 --- a/MongoDB/include/Poco/MongoDB/MessageHeader.h +++ b/MongoDB/include/Poco/MongoDB/MessageHeader.h @@ -38,14 +38,18 @@ public: enum OpCode { + // Opcodes deprecated in MongoDB 5.0 OP_REPLY = 1, - OP_MSG = 1000, OP_UPDATE = 2001, OP_INSERT = 2002, OP_QUERY = 2004, OP_GET_MORE = 2005, OP_DELETE = 2006, - OP_KILL_CURSORS = 2007 + OP_KILL_CURSORS = 2007, + + /// Opcodes supported in MongoDB 5.1 and later + OP_COMPRESSED = 2012, + OP_MSG = 2013 }; explicit MessageHeader(OpCode); diff --git a/MongoDB/include/Poco/MongoDB/OpMsgCursor.h b/MongoDB/include/Poco/MongoDB/OpMsgCursor.h new file mode 100644 index 000000000..ef7811dac --- /dev/null +++ b/MongoDB/include/Poco/MongoDB/OpMsgCursor.h @@ -0,0 +1,87 @@ +// +// OpMsgCursor.h +// +// Library: MongoDB +// Package: MongoDB +// Module: OpMsgCursor +// +// Definition of the OpMsgCursor class. +// +// Copyright (c) 2012, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef MongoDB_OpMsgCursor_INCLUDED +#define MongoDB_OpMsgCursor_INCLUDED + + +#include "Poco/MongoDB/MongoDB.h" +#include "Poco/MongoDB/Connection.h" +#include "Poco/MongoDB/OpMsgMessage.h" + +namespace Poco { +namespace MongoDB { + + +class MongoDB_API OpMsgCursor: public Document + /// OpMsgCursor is an helper class for querying multiple documents using OpMsgMessage. +{ +public: + OpMsgCursor(const std::string& dbname, const std::string& collectionName); + /// Creates a OpMsgCursor for the given database and collection. + + virtual ~OpMsgCursor(); + /// Destroys the OpMsgCursor. + + void setBatchSize(Int32 batchSize); + /// Set non-default batch size + + Int32 batchSize() const; + /// Current batch size (negative number indicates default batch size) + + Int64 cursorID() const; + + OpMsgMessage& next(Connection& connection); + /// Tries to get the next documents. As long as response message has a + /// cursor ID next can be called to retrieve the next bunch of documents. + /// + /// The cursor must be killed (see kill()) when not all documents are needed. + + OpMsgMessage& query(); + /// Returns the associated query. + + void kill(Connection& connection); + /// Kills the cursor and reset it so that it can be reused. + +private: + OpMsgMessage _query; + OpMsgMessage _response; + + Int32 _batchSize { -1 }; + /// Batch size used in the cursor. Negative value means that default shall be used. + + Int64 _cursorID { 0 }; +}; + + +// +// inlines +// +inline OpMsgMessage& OpMsgCursor::query() +{ + return _query; +} + +inline Int64 OpMsgCursor::cursorID() const +{ + return _cursorID; +} + + +} } // namespace Poco::MongoDB + + +#endif // MongoDB_OpMsgCursor_INCLUDED diff --git a/MongoDB/include/Poco/MongoDB/OpMsgMessage.h b/MongoDB/include/Poco/MongoDB/OpMsgMessage.h new file mode 100644 index 000000000..aa0bbdafe --- /dev/null +++ b/MongoDB/include/Poco/MongoDB/OpMsgMessage.h @@ -0,0 +1,161 @@ +// +// OpMsgMessage.h +// +// Library: MongoDB +// Package: MongoDB +// Module: OpMsgMessage +// +// Definition of the OpMsgMessage class. +// +// Copyright (c) 2022, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef MongoDB_OpMsgMessage_INCLUDED +#define MongoDB_OpMsgMessage_INCLUDED + + +#include "Poco/MongoDB/MongoDB.h" +#include "Poco/MongoDB/Message.h" +#include "Poco/MongoDB/Document.h" + +#include + +namespace Poco { +namespace MongoDB { + + +class MongoDB_API OpMsgMessage: public Message + /// This class represents a request/response (OP_MSG) to send requests and receive responses to/from MongoDB. +{ +public: + + // Constants for most often used MongoDB commands that can be sent using OP_MSG + // For complete list see: https://www.mongodb.com/docs/manual/reference/command/ + + // Query and write + static const std::string CMD_INSERT; + static const std::string CMD_DELETE; + static const std::string CMD_UPDATE; + static const std::string CMD_FIND; + static const std::string CMD_FIND_AND_MODIFY; + static const std::string CMD_GET_MORE; + + // Aggregation + static const std::string CMD_AGGREGATE; + static const std::string CMD_COUNT; + static const std::string CMD_DISTINCT; + static const std::string CMD_MAP_REDUCE; + + // Replication and administration + static const std::string CMD_HELLO; + + static const std::string CMD_CREATE; + static const std::string CMD_CREATE_INDEXES; + static const std::string CMD_DROP; + static const std::string CMD_DROP_DATABASE; + static const std::string CMD_KILL_CURSORS; + static const std::string CMD_LIST_DATABASES; + static const std::string CMD_LIST_INDEXES; + + // Diagnostic + static const std::string CMD_BUILD_INFO; + static const std::string CMD_COLL_STATS; + static const std::string CMD_DB_STATS; + static const std::string CMD_HOST_INFO; + + + enum Flags : UInt32 + { + MSG_FLAGS_DEFAULT = 0, + + MSG_CHECKSUM_PRESENT = (1 << 0), + + MSG_MORE_TO_COME = (1 << 1), + /// Sender will send another message and is not prepared for overlapping messages + + MSG_EXHAUST_ALLOWED = (1 << 16) + /// Client is prepared for multiple replies (using the moreToCome bit) to this request + }; + + OpMsgMessage(); + /// Creates an OpMsgMessage for response. + + OpMsgMessage(const std::string& databaseName, const std::string& collectionName, UInt32 flags = MSG_FLAGS_DEFAULT); + /// Creates an OpMsgMessage for requests. + + virtual ~OpMsgMessage(); + + const std::string& databaseName() const; + + const std::string& collectionName() const; + + void setCommandName(const std::string& command); + /// Sets the command name and clears the command document + + void setCursor(Poco::Int64 cursorID, Poco::Int32 batchSize = -1); + /// Sets the command "getMore" for the cursor id with batch size (if it is not negative). + + const std::string& commandName() const; + /// Current command name. + + void setAcknowledgedRequest(bool ack); + /// Set false to create request that does not return response. + /// It has effect only for commands that write or delete documents. + /// Default is true (request returns acknowledge response). + + bool acknowledgedRequest() const; + + UInt32 flags() const; + + Document& body(); + /// Access to body document. + /// Additional query arguments shall be added after setting the command name. + + const Document& body() const; + + Document::Vector& documents(); + /// Documents prepared for request or retrieved in response. + + const Document::Vector& documents() const; + /// Documents prepared for request or retrieved in response. + + bool responseOk() const; + /// Reads "ok" status from the response message. + + void clear(); + /// Clears the message. + + void send(std::ostream& ostr); + /// Writes the request to stream. + + void read(std::istream& istr); + /// Reads the response from the stream. + +private: + + enum PayloadType : UInt8 + { + PAYLOAD_TYPE_0 = 0, + PAYLOAD_TYPE_1 = 1 + }; + + std::string _databaseName; + std::string _collectionName; + UInt32 _flags { MSG_FLAGS_DEFAULT }; + std::string _commandName; + bool _acknowledged {true}; + + Document _body; + Document::Vector _documents; + +}; + + +} } // namespace Poco::MongoDB + + +#endif // MongoDB_OpMsgMessage_INCLUDED diff --git a/MongoDB/src/Connection.cpp b/MongoDB/src/Connection.cpp index 56bb192ce..b525a597a 100644 --- a/MongoDB/src/Connection.cpp +++ b/MongoDB/src/Connection.cpp @@ -232,4 +232,30 @@ void Connection::sendRequest(RequestMessage& request, ResponseMessage& response) } +void Connection::sendRequest(OpMsgMessage& request, OpMsgMessage& response) +{ + Poco::Net::SocketOutputStream sos(_socket); + request.send(sos); + + response.clear(); + readResponse(response); +} + + +void Connection::sendRequest(OpMsgMessage& request) +{ + request.setAcknowledgedRequest(false); + Poco::Net::SocketOutputStream sos(_socket); + request.send(sos); +} + + +void Connection::readResponse(OpMsgMessage& response) +{ + Poco::Net::SocketInputStream sis(_socket); + response.read(sis); +} + + + } } // Poco::MongoDB diff --git a/MongoDB/src/Database.cpp b/MongoDB/src/Database.cpp index 80a7816da..f00fc9681 100644 --- a/MongoDB/src/Database.cpp +++ b/MongoDB/src/Database.cpp @@ -301,6 +301,50 @@ bool Database::authSCRAM(Connection& connection, const std::string& username, co } +Document::Ptr Database::queryBuildInfo(Connection& connection) const +{ + // build info can be issued on "config" system database + Poco::SharedPtr request = createCommand(); + request->selector().add("buildInfo", 1); + + Poco::MongoDB::ResponseMessage response; + connection.sendRequest(*request, response); + + Document::Ptr buildInfo; + if ( response.documents().size() > 0 ) + { + buildInfo = response.documents()[0]; + } + else + { + throw Poco::ProtocolException("Didn't get a response from the buildinfo command"); + } + return buildInfo; +} + + +Document::Ptr Database::queryServerHello(Connection& connection) const +{ + // hello can be issued on "config" system database + Poco::SharedPtr request = createCommand(); + request->selector().add("hello", 1); + + Poco::MongoDB::ResponseMessage response; + connection.sendRequest(*request, response); + + Document::Ptr hello; + if ( response.documents().size() > 0 ) + { + hello = response.documents()[0]; + } + else + { + throw Poco::ProtocolException("Didn't get a response from the hello command"); + } + return hello; +} + + Int64 Database::count(Connection& connection, const std::string& collectionName) const { Poco::SharedPtr countRequest = createCountRequest(collectionName); @@ -357,7 +401,7 @@ Document::Ptr Database::getLastErrorDoc(Connection& connection) const { Document::Ptr errorDoc; - Poco::SharedPtr request = createQueryRequest("$cmd"); + Poco::SharedPtr request = createCommand(); request->setNumberToReturn(1); request->selector().add("getLastError", 1); @@ -387,7 +431,7 @@ std::string Database::getLastError(Connection& connection) const Poco::SharedPtr Database::createCountRequest(const std::string& collectionName) const { - Poco::SharedPtr request = createQueryRequest("$cmd"); + Poco::SharedPtr request = createCommand(); request->setNumberToReturn(1); request->selector().add("count", collectionName); return request; diff --git a/MongoDB/src/Document.cpp b/MongoDB/src/Document.cpp index 682d5f8a7..f7c5c9c5d 100644 --- a/MongoDB/src/Document.cpp +++ b/MongoDB/src/Document.cpp @@ -35,6 +35,14 @@ Document::~Document() } +Array& Document::addNewArray(const std::string& name) +{ + Array::Ptr newArray = new Array(); + add(name, newArray); + return *newArray; +} + + Element::Ptr Document::get(const std::string& name) const { Element::Ptr element; diff --git a/MongoDB/src/MessageHeader.cpp b/MongoDB/src/MessageHeader.cpp index 56221cc10..b472bcec4 100644 --- a/MongoDB/src/MessageHeader.cpp +++ b/MongoDB/src/MessageHeader.cpp @@ -42,7 +42,7 @@ void MessageHeader::read(BinaryReader& reader) Int32 opCode; reader >> opCode; - _opCode = (OpCode) opCode; + _opCode = static_cast(opCode); if (!reader.good()) { @@ -56,7 +56,7 @@ void MessageHeader::write(BinaryWriter& writer) writer << _messageLength; writer << _requestID; writer << _responseTo; - writer << (Int32) _opCode; + writer << static_cast(_opCode); } diff --git a/MongoDB/src/OpMsgCursor.cpp b/MongoDB/src/OpMsgCursor.cpp new file mode 100644 index 000000000..991604bb3 --- /dev/null +++ b/MongoDB/src/OpMsgCursor.cpp @@ -0,0 +1,173 @@ +// +// OpMsgCursor.cpp +// +// Library: MongoDB +// Package: MongoDB +// Module: OpMsgCursor +// +// Copyright (c) 2022, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/MongoDB/OpMsgCursor.h" +#include "Poco/MongoDB/Array.h" + +// +// NOTE: +// +// MongoDB specification indicates that the flag MSG_EXHAUST_ALLOWED shall be +// used in the request when the receiver is ready to receive multiple messages +// without sending additional requests in between. Sender (MongoDB) indicates +// that more messages follow with flag MSG_MORE_TO_COME. +// +// It seems that this does not work properly. MSG_MORE_TO_COME is set and reading +// next messages sometimes works, however often the data is missing in response +// or the message header contains wrong message length and reading blocks. +// Opcode in the header is correct. +// +// Using MSG_EXHAUST_ALLOWED is therefore currently disabled. +// +// It seems that related JIRA ticket is: +// +// https://jira.mongodb.org/browse/SERVER-57297 +// +// https://github.com/mongodb/specifications/blob/master/source/message/OP_MSG.rst +// + +#define _MONGODB_EXHAUST_ALLOWED_WORKS false + +namespace Poco { +namespace MongoDB { + + +static const std::string keyCursor {"cursor"}; +static const std::string keyFirstBatch {"firstBatch"}; +static const std::string keyNextBatch {"nextBatch"}; + +static Poco::Int64 cursorIdFromResponse(const MongoDB::Document& doc); + + +OpMsgCursor::OpMsgCursor(const std::string& db, const std::string& collection): +#if _MONGODB_EXHAUST_ALLOWED_WORKS + _query(db, collection, OpMsgMessage::MSG_EXHAUST_ALLOWED) +#else + _query(db, collection) +#endif +{ +} + +OpMsgCursor::~OpMsgCursor() +{ + try + { + poco_assert_dbg(_cursorID == 0); + } + catch (...) + { + } +} + + +void OpMsgCursor::setBatchSize(Int32 batchSize) +{ + _batchSize = batchSize; +} + + +Int32 OpMsgCursor::batchSize() const +{ + return _batchSize; +} + + +OpMsgMessage& OpMsgCursor::next(Connection& connection) +{ + if (_cursorID == 0) + { + _response.clear(); + + if (_query.commandName() == OpMsgMessage::CMD_FIND) + { + if (_batchSize >= 0) + _query.body().add("batchSize", _batchSize); + } + else if (_query.commandName() == OpMsgMessage::CMD_AGGREGATE) + { + auto cursorDoc = _query.body().addNewDocument("cursor"); + if (_batchSize >= 0) + cursorDoc.add("batchSize", _batchSize); + } + + connection.sendRequest(_query, _response); + + const auto& rdoc = _response.body(); + _cursorID = cursorIdFromResponse(rdoc); + } + else + { +#if _MONGODB_EXHAUST_ALLOWED_WORKS + std::cout << "Response flags: " << _response.flags() << std::endl; + if (_response.flags() & OpMsgMessage::MSG_MORE_TO_COME) + { + std::cout << "More to come. Reading more response: " << std::endl; + _response.clear(); + connection.readResponse(_response); + } + else +#endif + { + _response.clear(); + _query.setCursor(_cursorID, _batchSize); + connection.sendRequest(_query, _response); + } + } + + const auto& rdoc = _response.body(); + _cursorID = cursorIdFromResponse(rdoc); + + return _response; +} + + +void OpMsgCursor::kill(Connection& connection) +{ + _response.clear(); + if (_cursorID != 0) + { + _query.setCommandName(OpMsgMessage::CMD_KILL_CURSORS); + + MongoDB::Array::Ptr cursors = new MongoDB::Array(); + cursors->add(_cursorID); + _query.body().add("cursors", cursors); + + connection.sendRequest(_query, _response); + + const auto killed = _response.body().get("cursorsKilled", nullptr); + if (!killed || killed->size() != 1 || killed->get(0, -1) != _cursorID) + { + throw Poco::ProtocolException("Cursor not killed as expected: " + std::to_string(_cursorID)); + } + + _cursorID = 0; + _query.clear(); + _response.clear(); + } +} + + +Poco::Int64 cursorIdFromResponse(const MongoDB::Document& doc) +{ + Poco::Int64 id {0}; + auto cursorDoc = doc.get(keyCursor, nullptr); + if(cursorDoc) + { + id = cursorDoc->get("id", 0); + } + return id; +} + + +} } // Namespace Poco::MongoDB diff --git a/MongoDB/src/OpMsgMessage.cpp b/MongoDB/src/OpMsgMessage.cpp new file mode 100644 index 000000000..ce01ad087 --- /dev/null +++ b/MongoDB/src/OpMsgMessage.cpp @@ -0,0 +1,401 @@ +// +// OpMsgMessage.cpp +// +// Library: MongoDB +// Package: MongoDB +// Module: OpMsgMessage +// +// Copyright (c) 2022, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + +#include "Poco/MongoDB/OpMsgMessage.h" +#include "Poco/MongoDB/MessageHeader.h" +#include "Poco/MongoDB/Array.h" +#include "Poco/StreamCopier.h" +#include "Poco/Logger.h" + +#define POCO_MONGODB_DUMP false + +namespace Poco { +namespace MongoDB { + +// Query and write +const std::string OpMsgMessage::CMD_INSERT { "insert" }; +const std::string OpMsgMessage::CMD_DELETE { "delete" }; +const std::string OpMsgMessage::CMD_UPDATE { "update" }; +const std::string OpMsgMessage::CMD_FIND { "find" }; +const std::string OpMsgMessage::CMD_FIND_AND_MODIFY { "findAndModify" }; +const std::string OpMsgMessage::CMD_GET_MORE { "getMore" }; + +// Aggregation +const std::string OpMsgMessage::CMD_AGGREGATE { "aggregate" }; +const std::string OpMsgMessage::CMD_COUNT { "count" }; +const std::string OpMsgMessage::CMD_DISTINCT { "distinct" }; +const std::string OpMsgMessage::CMD_MAP_REDUCE { "mapReduce" }; + +// Replication and administration +const std::string OpMsgMessage::CMD_HELLO { "hello" }; + +const std::string OpMsgMessage::CMD_CREATE { "create" }; +const std::string OpMsgMessage::CMD_CREATE_INDEXES { "createIndexes" }; +const std::string OpMsgMessage::CMD_DROP { "drop" }; +const std::string OpMsgMessage::CMD_DROP_DATABASE { "dropDatabase" }; +const std::string OpMsgMessage::CMD_KILL_CURSORS { "killCursors" }; +const std::string OpMsgMessage::CMD_LIST_DATABASES { "listDatabases" }; +const std::string OpMsgMessage::CMD_LIST_INDEXES { "listIndexes" }; + +// Diagnostic +const std::string OpMsgMessage::CMD_BUILD_INFO { "buildInfo" }; +const std::string OpMsgMessage::CMD_COLL_STATS { "collStats" }; +const std::string OpMsgMessage::CMD_DB_STATS { "dbStats" }; +const std::string OpMsgMessage::CMD_HOST_INFO { "hostInfo" }; + + +static const std::string& commandIdentifier(const std::string& command); + /// Commands have different names for the payload that is sent in a separate section + + +static const std::string keyCursor {"cursor"}; +static const std::string keyFirstBatch {"firstBatch"}; +static const std::string keyNextBatch {"nextBatch"}; + + +OpMsgMessage::OpMsgMessage() : + Message(MessageHeader::OP_MSG) +{ +} + + +OpMsgMessage::OpMsgMessage(const std::string& databaseName, const std::string& collectionName, UInt32 flags) : + Message(MessageHeader::OP_MSG), + _databaseName(databaseName), + _collectionName(collectionName), + _flags(flags) +{ +} + + +OpMsgMessage::~OpMsgMessage() +{ +} + +const std::string& OpMsgMessage::databaseName() const +{ + return _databaseName; +} + + +const std::string& OpMsgMessage::collectionName() const +{ + return _collectionName; +} + + +void OpMsgMessage::setCommandName(const std::string& command) +{ + _commandName = command; + _body.clear(); + + // IMPORTANT: Command name must be first + _body.add(_commandName, _collectionName); + _body.add("$db", _databaseName); +} + + +void OpMsgMessage::setCursor(Poco::Int64 cursorID, Poco::Int32 batchSize) +{ + _commandName = OpMsgMessage::CMD_GET_MORE; + _body.clear(); + + // IMPORTANT: Command name must be first + _body.add(_commandName, cursorID); + _body.add("$db", _databaseName); + _body.add("collection", _collectionName); + if (batchSize >= 0) + { + _body.add("batchSize", batchSize); + } +} + + +const std::string& OpMsgMessage::commandName() const +{ + return _commandName; +} + + +void OpMsgMessage::setAcknowledgedRequest(bool ack) +{ + const auto& id = commandIdentifier(_commandName); + if (id.empty()) + return; + + _acknowledged = ack; + + auto writeConcern = _body.get("writeConcern", nullptr); + if (writeConcern) + writeConcern->remove("w"); + + if (ack) + { + _flags = _flags & (~MSG_MORE_TO_COME); + } + else + { + _flags = _flags | MSG_MORE_TO_COME; + if (!writeConcern) + _body.addNewDocument("writeConcern").add("w", 0); + else + writeConcern->add("w", 0); + } + +} + + +bool OpMsgMessage::acknowledgedRequest() const +{ + return _acknowledged; +} + + +UInt32 OpMsgMessage::flags() const +{ + return _flags; +} + + +Document& OpMsgMessage::body() +{ + return _body; +} + + +const Document& OpMsgMessage::body() const +{ + return _body; +} + + +Document::Vector& OpMsgMessage::documents() +{ + return _documents; +} + + +const Document::Vector& OpMsgMessage::documents() const +{ + return _documents; +} + + +bool OpMsgMessage::responseOk() const +{ + Poco::Int64 ok {false}; + if (_body.exists("ok")) + { + ok = _body.getInteger("ok"); + } + return (ok != 0); +} + + +void OpMsgMessage::clear() +{ + _flags = MSG_FLAGS_DEFAULT; + _commandName.clear(); + _body.clear(); + _documents.clear(); +} + + +void OpMsgMessage::send(std::ostream& ostr) +{ + BinaryWriter socketWriter(ostr, BinaryWriter::LITTLE_ENDIAN_BYTE_ORDER); + + // Serialise the body + std::stringstream ss; + BinaryWriter writer(ss, BinaryWriter::LITTLE_ENDIAN_BYTE_ORDER); + writer << _flags; + + writer << PAYLOAD_TYPE_0; + _body.write(writer); + + if (!_documents.empty()) + { + // Serialise attached documents + + std::stringstream ssdoc; + BinaryWriter wdoc(ssdoc, BinaryWriter::LITTLE_ENDIAN_BYTE_ORDER); + for (auto& doc: _documents) + { + doc->write(wdoc); + } + wdoc.flush(); + + const std::string& identifier = commandIdentifier(_commandName); + const Poco::Int32 size = sizeof(size) + identifier.size() + 1 + ssdoc.tellp(); + writer << PAYLOAD_TYPE_1; + writer << size; + writer.writeCString(identifier.c_str()); + StreamCopier::copyStream(ssdoc, ss); + } + writer.flush(); + +#if POCO_MONGODB_DUMP + const std::string section = ss.str(); + std::string dump; + Logger::formatDump(dump, section.data(), section.length()); + std::cout << dump << std::endl; +#endif + + messageLength(static_cast(ss.tellp())); + + _header.write(socketWriter); + StreamCopier::copyStream(ss, ostr); + + ostr.flush(); +} + + +void OpMsgMessage::read(std::istream& istr) +{ + std::string message; + { + BinaryReader reader(istr, BinaryReader::LITTLE_ENDIAN_BYTE_ORDER); + _header.read(reader); + + poco_assert_dbg(_header.opCode() == _header.OP_MSG); + + const std::streamsize remainingSize {_header.getMessageLength() - _header.MSG_HEADER_SIZE }; + message.reserve(remainingSize); + +#if POCO_MONGODB_DUMP + std::cout + << "Message hdr: " << _header.getMessageLength() << " " << remainingSize << " " + << _header.opCode() << " " << _header.getRequestID() << " " << _header.responseTo() + << std::endl; +#endif + + reader.readRaw(remainingSize, message); + +#if POCO_MONGODB_DUMP + std::string dump; + Logger::formatDump(dump, message.data(), message.length()); + std::cout << dump << std::endl; +#endif + } + // Read complete message and then interpret it. + + std::istringstream msgss(message); + BinaryReader reader(msgss, BinaryReader::LITTLE_ENDIAN_BYTE_ORDER); + + Poco::UInt8 payloadType {0xFF}; + + reader >> _flags; + reader >> payloadType; + poco_assert_dbg(payloadType == PAYLOAD_TYPE_0); + + _body.read(reader); + + // Read next sections from the buffer + while (msgss.good()) + { + // NOTE: Not tested yet with database, because it returns everything in the body. + // Does MongoDB ever return documents as Payload type 1? + reader >> payloadType; + if (!msgss.good()) + { + break; + } + poco_assert_dbg(payloadType == PAYLOAD_TYPE_1); +#if POCO_MONGODB_DUMP + std::cout << "section payload: " << payloadType << std::endl; +#endif + + Poco::Int32 sectionSize {0}; + reader >> sectionSize; + poco_assert_dbg(sectionSize > 0); + +#if POCO_MONGODB_DUMP + std::cout << "section size: " << sectionSize << std::endl; +#endif + std::streamoff offset = sectionSize - sizeof(sectionSize); + std::streampos endOfSection = msgss.tellg() + offset; + + std::string identifier; + reader.readCString(identifier); +#if POCO_MONGODB_DUMP + std::cout << "section identifier: " << identifier << std::endl; +#endif + + // Loop to read documents from this section. + while (msgss.tellg() < endOfSection) + { +#if POCO_MONGODB_DUMP + std::cout << "section doc: " << msgss.tellg() << " " << endOfSection << std::endl; +#endif + Document::Ptr doc = new Document(); + doc->read(reader); + _documents.push_back(doc); + if (msgss.tellg() < 0) + { + break; + } + } + } + + // Extract documents from the cursor batch if they are there. + MongoDB::Array::Ptr batch; + auto curDoc = _body.get(keyCursor, nullptr); + if (curDoc) + { + batch = curDoc->get(keyFirstBatch, nullptr); + if (!batch) + { + batch = curDoc->get(keyNextBatch, nullptr); + } + } + if (batch) + { + for(std::size_t i = 0; i < batch->size(); i++) + { + const auto& d = batch->get(i, nullptr); + if (d) + { + _documents.push_back(d); + } + } + } + +} + +const std::string& commandIdentifier(const std::string& command) +{ + // Names of identifiers for commands that send bulk documents in the request + // The identifier is set in the section type 1. + static std::map identifiers { + { OpMsgMessage::CMD_INSERT, "documents" }, + { OpMsgMessage::CMD_DELETE, "deletes" }, + { OpMsgMessage::CMD_UPDATE, "updates" }, + + // Not sure if create index can send document section + { OpMsgMessage::CMD_CREATE_INDEXES, "indexes" } + }; + + const auto i = identifiers.find(command); + if (i != identifiers.end()) + { + return i->second; + } + + // This likely means that documents are incorrectly set for a command + // that does not send list of documents in section type 1. + static const std::string emptyIdentifier; + return emptyIdentifier; +} + + +} } // namespace Poco::MongoDB diff --git a/MongoDB/testsuite/Makefile b/MongoDB/testsuite/Makefile index 5b56e1351..1ffa1d8df 100644 --- a/MongoDB/testsuite/Makefile +++ b/MongoDB/testsuite/Makefile @@ -6,7 +6,7 @@ include $(POCO_BASE)/build/rules/global -objects = Driver MongoDBTest MongoDBTestSuite +objects = Driver MongoDBTest MongoDBTestOpMsg MongoDBTestSuite target = testrunner target_version = 1 diff --git a/MongoDB/testsuite/TestSuite_vs140.vcxproj b/MongoDB/testsuite/TestSuite_vs140.vcxproj index a66f72e89..7be728c6d 100644 --- a/MongoDB/testsuite/TestSuite_vs140.vcxproj +++ b/MongoDB/testsuite/TestSuite_vs140.vcxproj @@ -604,6 +604,9 @@ true + + true + true diff --git a/MongoDB/testsuite/TestSuite_vs150.vcxproj b/MongoDB/testsuite/TestSuite_vs150.vcxproj index 3f6b54c80..976f23cac 100644 --- a/MongoDB/testsuite/TestSuite_vs150.vcxproj +++ b/MongoDB/testsuite/TestSuite_vs150.vcxproj @@ -604,6 +604,9 @@ true + + true + true diff --git a/MongoDB/testsuite/TestSuite_vs160.vcxproj b/MongoDB/testsuite/TestSuite_vs160.vcxproj index a5547eceb..4ffc58d61 100644 --- a/MongoDB/testsuite/TestSuite_vs160.vcxproj +++ b/MongoDB/testsuite/TestSuite_vs160.vcxproj @@ -604,6 +604,9 @@ true + + true + true diff --git a/MongoDB/testsuite/TestSuite_vs170.vcxproj b/MongoDB/testsuite/TestSuite_vs170.vcxproj index c2147b25c..a8beb6798 100644 --- a/MongoDB/testsuite/TestSuite_vs170.vcxproj +++ b/MongoDB/testsuite/TestSuite_vs170.vcxproj @@ -896,6 +896,9 @@ true + + true + true diff --git a/MongoDB/testsuite/src/MongoDBTest.cpp b/MongoDB/testsuite/src/MongoDBTest.cpp index 949f8e302..1be1109e2 100644 --- a/MongoDB/testsuite/src/MongoDBTest.cpp +++ b/MongoDB/testsuite/src/MongoDBTest.cpp @@ -17,6 +17,7 @@ #include "Poco/MongoDB/GetMoreRequest.h" #include "Poco/MongoDB/PoolableConnectionFactory.h" #include "Poco/MongoDB/Database.h" +#include "Poco/MongoDB/Connection.h" #include "Poco/MongoDB/Cursor.h" #include "Poco/MongoDB/ObjectId.h" #include "Poco/MongoDB/Binary.h" @@ -32,6 +33,7 @@ using namespace Poco::MongoDB; Poco::MongoDB::Connection::Ptr MongoDBTest::_mongo; +Poco::Int64 MongoDBTest::_wireVersion {0}; MongoDBTest::MongoDBTest(const std::string& name): @@ -92,24 +94,25 @@ void MongoDBTest::testArray() arr->add(false); // Document-style interface - arr->add("4", "12.4"); + arr->add("4", "12.4E"); assertEqual(arr->size(), 5); assertTrue(arr->exists("0")); assertTrue(arr->exists("1")); assertTrue(arr->exists("2")); assertTrue(arr->exists("3")); - assertFalse(arr->exists("4")); + assertTrue(arr->exists("4")); + assertFalse(arr->exists("5")); assertEqual(arr->get(0), "First"); assertEqual(arr->get(1).raw(), birthdate.timestamp().raw()); assertEqual(arr->get(2), 1993); assertEqual(arr->get(3), false); - assertEqual(arr->get(4), "12.4"); + assertEqual(arr->get(4), "12.4E"); // Document-style interface assertEqual(arr->get("2"), 1993); - assertEqual(arr->get("4"), "12.4"); + assertEqual(arr->get("4"), "12.4E"); } @@ -294,33 +297,33 @@ void MongoDBTest::testCursorRequest() _mongo->sendRequest(drop, responseDrop); } - void MongoDBTest::testBuildInfo() { - Poco::MongoDB::QueryRequest request("team.$cmd"); - request.setNumberToReturn(1); - request.selector().add("buildInfo", 1); - - Poco::MongoDB::ResponseMessage response; + // build info can be issued on "config" system database + Poco::MongoDB::Database db("config"); try { - _mongo->sendRequest(request, response); + Poco::MongoDB::Document::Ptr doc = db.queryBuildInfo(*_mongo); + std::cout << doc->toString(2); } catch(Poco::NotImplementedException& nie) { std::cout << nie.message() << std::endl; - return; } +} - if ( response.documents().size() > 0 ) +void MongoDBTest::testHello() +{ + Poco::MongoDB::Database db("config"); + try { - Poco::MongoDB::Document::Ptr doc = response.documents()[0]; + Poco::MongoDB::Document::Ptr doc = db.queryServerHello(*_mongo); std::cout << doc->toString(2); } - else + catch(Poco::NotImplementedException& nie) { - fail("Didn't get a response from the buildinfo command"); + std::cout << nie.message() << std::endl; } } @@ -497,8 +500,14 @@ CppUnit::Test* MongoDBTest::suite() #endif try { + _wireVersion = 0; _mongo = new Poco::MongoDB::Connection(host, 27017); std::cout << "Connected to [" << host << ":27017]" << std::endl; + + Poco::MongoDB::Database db("config"); + Poco::MongoDB::Document::Ptr doc = db.queryServerHello(*_mongo); + _wireVersion = doc->getInteger("maxWireVersion"); + std::cout << "MongoDB wire version: " << _wireVersion << std::endl; } catch (Poco::Net::ConnectionRefusedException& e) { @@ -506,20 +515,49 @@ CppUnit::Test* MongoDBTest::suite() return 0; } CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("MongoDBTest"); - CppUnit_addTest(pSuite, MongoDBTest, testBuildInfo); - CppUnit_addTest(pSuite, MongoDBTest, testInsertRequest); - CppUnit_addTest(pSuite, MongoDBTest, testArray); - CppUnit_addTest(pSuite, MongoDBTest, testQueryRequest); - CppUnit_addTest(pSuite, MongoDBTest, testDBQueryRequest); - CppUnit_addTest(pSuite, MongoDBTest, testCountCommand); - CppUnit_addTest(pSuite, MongoDBTest, testDBCountCommand); - CppUnit_addTest(pSuite, MongoDBTest, testDBCount2Command); - CppUnit_addTest(pSuite, MongoDBTest, testConnectionPool); - CppUnit_addTest(pSuite, MongoDBTest, testDeleteRequest); - CppUnit_addTest(pSuite, MongoDBTest, testCursorRequest); + CppUnit_addTest(pSuite, MongoDBTest, testObjectID); - CppUnit_addTest(pSuite, MongoDBTest, testCommand); - CppUnit_addTest(pSuite, MongoDBTest, testUUID); + CppUnit_addTest(pSuite, MongoDBTest, testArray); CppUnit_addTest(pSuite, MongoDBTest, testConnectURI); + CppUnit_addTest(pSuite, MongoDBTest, testHello); + CppUnit_addTest(pSuite, MongoDBTest, testBuildInfo); + + if (_wireVersion < Poco::MongoDB::Database::VER_51) + { + // Database supports old wire protocol + CppUnit_addTest(pSuite, MongoDBTest, testInsertRequest); + CppUnit_addTest(pSuite, MongoDBTest, testQueryRequest); + CppUnit_addTest(pSuite, MongoDBTest, testDBQueryRequest); + CppUnit_addTest(pSuite, MongoDBTest, testCountCommand); + CppUnit_addTest(pSuite, MongoDBTest, testDBCountCommand); + CppUnit_addTest(pSuite, MongoDBTest, testDBCount2Command); + CppUnit_addTest(pSuite, MongoDBTest, testConnectionPool); + CppUnit_addTest(pSuite, MongoDBTest, testDeleteRequest); + + CppUnit_addTest(pSuite, MongoDBTest, testCursorRequest); + CppUnit_addTest(pSuite, MongoDBTest, testCommand); + CppUnit_addTest(pSuite, MongoDBTest, testUUID); + } + + if (_wireVersion >= Poco::MongoDB::Database::VER_36) + { + // Database supports OP_MSG wire protocol + CppUnit_addTest(pSuite, MongoDBTest, testOpCmdWriteRead); + CppUnit_addTest(pSuite, MongoDBTest, testOpCmdHello); + + CppUnit_addTest(pSuite, MongoDBTest, testOpCmdInsert); + CppUnit_addTest(pSuite, MongoDBTest, testOpCmdFind); + CppUnit_addTest(pSuite, MongoDBTest, testOpCmdCount); + CppUnit_addTest(pSuite, MongoDBTest, testOpCmdConnectionPool); + + CppUnit_addTest(pSuite, MongoDBTest, testOpCmdDelete); + CppUnit_addTest(pSuite, MongoDBTest, testOpCmdUnaknowledgedInsert); + + CppUnit_addTest(pSuite, MongoDBTest, testOpCmdCursor); + CppUnit_addTest(pSuite, MongoDBTest, testOpCmdCursorAggregate); + CppUnit_addTest(pSuite, MongoDBTest, testOpCmdKillCursor); + CppUnit_addTest(pSuite, MongoDBTest, testOpCmdUUID); + } + return pSuite; } diff --git a/MongoDB/testsuite/src/MongoDBTest.h b/MongoDB/testsuite/src/MongoDBTest.h index 6ec23d728..20f1922e3 100644 --- a/MongoDB/testsuite/src/MongoDBTest.h +++ b/MongoDB/testsuite/src/MongoDBTest.h @@ -25,29 +25,49 @@ public: MongoDBTest(const std::string& name); virtual ~MongoDBTest(); + + void setUp(); + void tearDown(); - void testInsertRequest(); + void testObjectID(); void testArray(); + void testBuildInfo(); + void testHello(); + void testConnectURI(); + + // Old wire protocol + void testInsertRequest(); void testQueryRequest(); void testDBQueryRequest(); void testCountCommand(); void testDBCountCommand(); void testDBCount2Command(); void testDeleteRequest(); - void testBuildInfo(); + void testConnectionPool(); void testCursorRequest(); - void testObjectID(); void testCommand(); void testUUID(); - void testConnectURI(); - void setUp(); - void tearDown(); + + // New wire protocol using OP_CMD + void testOpCmdUUID(); + void testOpCmdHello(); + void testOpCmdWriteRead(); + void testOpCmdInsert(); + void testOpCmdFind(); + void testOpCmdCursor(); + void testOpCmdCursorAggregate(); + void testOpCmdKillCursor(); + void testOpCmdCount(); + void testOpCmdDelete(); + void testOpCmdUnaknowledgedInsert(); + void testOpCmdConnectionPool(); static CppUnit::Test* suite(); private: - static Poco::MongoDB::Connection::Ptr _mongo; + static Poco::MongoDB::Connection::Ptr _mongo; + static Poco::Int64 _wireVersion; }; diff --git a/MongoDB/testsuite/src/MongoDBTestOpMsg.cpp b/MongoDB/testsuite/src/MongoDBTestOpMsg.cpp new file mode 100644 index 000000000..8e1b037d0 --- /dev/null +++ b/MongoDB/testsuite/src/MongoDBTestOpMsg.cpp @@ -0,0 +1,444 @@ +// +// MongoDBTest.cpp +// +// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/DateTime.h" +#include "Poco/MongoDB/Array.h" +#include "Poco/MongoDB/OpMsgMessage.h" +#include "Poco/MongoDB/OpMsgCursor.h" +#include "Poco/MongoDB/Database.h" +#include "Poco/MongoDB/Connection.h" +#include "Poco/MongoDB/PoolableConnectionFactory.h" +#include "Poco/MongoDB/Binary.h" +#include "Poco/Net/NetException.h" +#include "Poco/UUIDGenerator.h" +#include "MongoDBTest.h" +#include + + +using namespace Poco::MongoDB; + + +void MongoDBTest::testOpCmdUUID() +{ + Database db("team"); + Poco::SharedPtr request = db.createOpMsgMessage("club"); + OpMsgMessage response; + + request->setCommandName(OpMsgMessage::CMD_DROP); + _mongo->sendRequest(*request, response); + + Document::Ptr club = new Document(); + club->add("name", std::string("Barcelona")); + + Poco::UUIDGenerator generator; + Poco::UUID uuid = generator.create(); + Binary::Ptr uuidBinary = new Binary(uuid); + club->add("uuid", uuidBinary); + + request->setCommandName(OpMsgMessage::CMD_INSERT); + request->documents().push_back(club); + + _mongo->sendRequest(*request, response); + + assertTrue(response.responseOk()); + + request->setCommandName(OpMsgMessage::CMD_FIND); + request->body().addNewDocument("filter").add("name", std::string("Barcelona")); + + _mongo->sendRequest(*request, response); + assertTrue(response.responseOk()); + + if ( response.documents().size() > 0 ) + { + Document::Ptr doc = response.documents()[0]; + try + { + std::string name = doc->get("name"); + assertEquals ("Barcelona", name ); + + Binary::Ptr uuidBinary = doc->get("uuid"); + assertTrue (uuid == uuidBinary->uuid()); + } + catch(Poco::NotFoundException& nfe) + { + fail(nfe.message() + " not found."); + } + } + else + { + fail("No document returned"); + } + +} + + +void MongoDBTest::testOpCmdHello() +{ + Database db("config"); + Poco::SharedPtr helloRequest = db.createOpMsgMessage(); + helloRequest->setCommandName(OpMsgMessage::CMD_HELLO); + + try + { + OpMsgMessage response; + _mongo->sendRequest(*helloRequest, response); + assertTrue(response.responseOk()); + } + catch(Poco::NotImplementedException& nie) + { + std::cout << nie.message() << std::endl; + } +} + + +void MongoDBTest::testOpCmdWriteRead() +{ + // Writes request to a stream and then reads it back + // Tests send and read of a message with multiple sections without + // the server. + // NOTE: MongoDB 6.0 does not send responses with segments of type 1. + + Database db("abc"); + Poco::SharedPtr request = db.createOpMsgMessage("col"); + request->setCommandName(OpMsgMessage::CMD_INSERT); + + Document::Ptr doc = new Document(); + doc->add("name", "John").add("number", -2); + request->documents().push_back(doc); + + doc = new Document(); + doc->add("name", "Franz").add("number", -2.8); + request->documents().push_back(doc); + + try + { + OpMsgMessage response; + + std::stringstream ss; + request->send(ss); + + ss.seekg(0, std::ios_base::beg); + response.read(ss); + + for (const auto& doc: response.documents()) + { + std::cout << doc->toString(2); + } + } + catch(Poco::NotImplementedException& nie) + { + std::cout << nie.message() << std::endl; + } +} + + +void MongoDBTest::testOpCmdInsert() +{ + Document::Ptr player = new Document(); + player->add("lastname", std::string("Braem")); + player->add("firstname", std::string("Franky")); + + Poco::DateTime birthdate; + birthdate.assign(1969, 3, 9); + player->add("birthdate", birthdate.timestamp()); + + player->add("start", 1993); + player->add("active", false); + + Poco::DateTime now; + player->add("lastupdated", now.timestamp()); + + player->add("unknown", NullValue()); + + Database db("team"); + Poco::SharedPtr request = db.createOpMsgMessage("players"); + request->setCommandName(OpMsgMessage::CMD_INSERT); + request->documents().push_back(player); + + try + { + OpMsgMessage response; + _mongo->sendRequest(*request, response); + + assertTrue(response.responseOk()); + } + catch(Poco::NotImplementedException& nie) + { + std::cout << nie.message() << std::endl; + } +} + +void MongoDBTest::testOpCmdFind() +{ + Database db("team"); + Poco::SharedPtr request = db.createOpMsgMessage("players"); + request->setCommandName(OpMsgMessage::CMD_FIND); + + request->body().add("limit", 1).addNewDocument("filter").add("lastname" , std::string("Braem")); + + OpMsgMessage response; + _mongo->sendRequest(*request, response); + + assertTrue(response.responseOk()); + + if ( response.documents().size() > 0 ) + { + Document::Ptr doc = response.documents()[0]; + + try + { + std::string lastname = doc->get("lastname"); + assertEquals ("Braem", lastname); + std::string firstname = doc->get("firstname"); + assertEquals ("Franky", firstname); + Poco::Timestamp birthDateTimestamp = doc->get("birthdate"); + Poco::DateTime birthDate(birthDateTimestamp); + assertTrue (birthDate.year() == 1969 && birthDate.month() == 3 && birthDate.day() == 9); + Poco::Timestamp lastupdatedTimestamp = doc->get("lastupdated"); + assertTrue (doc->isType("unknown")); + bool active = doc->get("active"); + assertEquals (false, active); + + std::string id = doc->get("_id")->toString(); + } + catch(Poco::NotFoundException& nfe) + { + fail(nfe.message() + " not found."); + } + } + else + { + fail("No document returned"); + } +} + + +void MongoDBTest::testOpCmdUnaknowledgedInsert() +{ + Document::Ptr player = new Document(); + player->add("lastname", std::string("Braem")); + player->add("firstname", std::string("Franky")); + + Poco::DateTime birthdate; + birthdate.assign(1969, 3, 9); + player->add("birthdate", birthdate.timestamp()); + + player->add("start", 1993); + player->add("active", false); + + Poco::DateTime now; + player->add("lastupdated", now.timestamp()); + + player->add("unknown", NullValue()); + + Database db("team"); + Poco::SharedPtr request = db.createOpMsgMessage("players"); + request->setCommandName(OpMsgMessage::CMD_INSERT); + request->setAcknowledgedRequest(false); + request->documents().push_back(player); + + try + { + _mongo->sendRequest(*request); + } + catch(Poco::NotImplementedException& nie) + { + std::cout << nie.message() << std::endl; + } +} + + +void MongoDBTest::testOpCmdCursor() +{ + Database db("team"); + + Poco::SharedPtr request = db.createOpMsgMessage("numbers"); + OpMsgMessage response; + + request->setCommandName(OpMsgMessage::CMD_DROP); + _mongo->sendRequest(*request, response); + + request->setCommandName(OpMsgMessage::CMD_INSERT); + for(int i = 0; i < 10000; ++i) + { + Document::Ptr doc = new Document(); + doc->add("number", i); + request->documents().push_back(doc); + } + _mongo->sendRequest(*request, response); + assertTrue(response.responseOk()); + + OpMsgCursor cursor("team", "numbers"); + cursor.query().setCommandName(OpMsgMessage::CMD_FIND); + cursor.setBatchSize(1000); + + int n = 0; + auto cresponse = cursor.next(*_mongo); + while(true) + { + n += static_cast(cresponse.documents().size()); + if ( cursor.cursorID() == 0 ) + break; + cresponse = cursor.next(*_mongo); + } + assertEquals (10000, n); + + request->setCommandName(OpMsgMessage::CMD_DROP); + _mongo->sendRequest(*request, response); + assertTrue(response.responseOk()); +} + + +void MongoDBTest::testOpCmdCursorAggregate() +{ + Database db("team"); + + Poco::SharedPtr request = db.createOpMsgMessage("numbers"); + OpMsgMessage response; + + request->setCommandName(OpMsgMessage::CMD_DROP); + _mongo->sendRequest(*request, response); + + request->setCommandName(OpMsgMessage::CMD_INSERT); + for(int i = 0; i < 10000; ++i) + { + Document::Ptr doc = new Document(); + doc->add("number", i); + request->documents().push_back(doc); + } + _mongo->sendRequest(*request, response); + assertTrue(response.responseOk()); + + Poco::SharedPtr cursor = db.createOpMsgCursor("numbers"); + cursor->query().setCommandName(OpMsgMessage::CMD_AGGREGATE); + cursor->setBatchSize(1000); + + // Empty pipeline: get all documents + cursor->query().body().addNewArray("pipeline"); + + int n = 0; + auto cresponse = cursor->next(*_mongo); + while(true) + { + n += static_cast(cresponse.documents().size()); + if ( cursor->cursorID() == 0 ) + break; + cresponse = cursor->next(*_mongo); + } + assertEquals (10000, n); + + request->setCommandName(OpMsgMessage::CMD_DROP); + _mongo->sendRequest(*request, response); + assertTrue(response.responseOk()); +} + + + +void MongoDBTest::testOpCmdKillCursor() +{ + Database db("team"); + + Poco::SharedPtr request = db.createOpMsgMessage("numbers"); + OpMsgMessage response; + + request->setCommandName(OpMsgMessage::CMD_DROP); + _mongo->sendRequest(*request, response); + + request->setCommandName(OpMsgMessage::CMD_INSERT); + for(int i = 0; i < 10000; ++i) + { + Document::Ptr doc = new Document(); + doc->add("number", i); + request->documents().push_back(doc); + } + _mongo->sendRequest(*request, response); + assertTrue(response.responseOk()); + + OpMsgCursor cursor("team", "numbers"); + cursor.query().setCommandName(OpMsgMessage::CMD_FIND); + cursor.setBatchSize(1000); + + int n = 0; + auto cresponse = cursor.next(*_mongo); + while(true) + { + n += static_cast(cresponse.documents().size()); + if ( cursor.cursorID() == 0 ) + break; + + cursor.kill(*_mongo); + cresponse = cursor.next(*_mongo); + } + assertEquals (1000, n); + + request->setCommandName(OpMsgMessage::CMD_DROP); + + _mongo->sendRequest(*request, response); + assertTrue(response.responseOk()); + +} + +void MongoDBTest::testOpCmdCount() +{ + Database db("team"); + Poco::SharedPtr request = db.createOpMsgMessage("players"); + request->setCommandName(OpMsgMessage::CMD_COUNT); + + OpMsgMessage response; + _mongo->sendRequest(*request, response); + + assertTrue(response.responseOk()); + const auto& doc = response.body(); + assertEquals (1, doc.getInteger("n")); +} + + +void MongoDBTest::testOpCmdDelete() +{ + Database db("team"); + Poco::SharedPtr request = db.createOpMsgMessage("players"); + request->setCommandName(OpMsgMessage::CMD_DELETE); + + Document::Ptr del = new Document(); + del->add("limit", 0).addNewDocument("q").add("lastname" , std::string("Braem")); + request->documents().push_back(del); + + OpMsgMessage response; + _mongo->sendRequest(*request, response); + assertTrue(response.responseOk()); +} + +void MongoDBTest::testOpCmdConnectionPool() +{ +#if POCO_OS == POCO_OS_ANDROID + std::string host = "10.0.2.2"; +#else + std::string host = "127.0.0.1"; +#endif + + Poco::Net::SocketAddress sa(host, 27017); + Poco::PoolableObjectFactory factory(sa); + Poco::ObjectPool pool(factory, 10, 15); + + PooledConnection pooledConnection(pool); + + Database db("team"); + Poco::SharedPtr request = db.createOpMsgMessage("players"); + request->setCommandName(OpMsgMessage::CMD_COUNT); + + OpMsgMessage response; + + ((Connection::Ptr) pooledConnection)->sendRequest(*request, response); + assertTrue(response.responseOk()); + + const auto& doc = response.body(); + assertEquals (1, doc.getInteger("n")); +} + From 93d18162f34a0a1fc32114d52b1df50c246ad9cb Mon Sep 17 00:00:00 2001 From: Anton Date: Wed, 22 Mar 2023 08:51:57 +0300 Subject: [PATCH 033/395] Add ODBC DirectExec public API (#3502) * ODBC sqlDirectExec * doc * Small fix * Fix tabs, add missing const, fix style * Add test case * Small fixes * suggested fix for async * test for returned values --- .../Poco/Data/ODBC/ODBCStatementImpl.h | 3 +++ Data/ODBC/src/ODBCStatementImpl.cpp | 9 +++++++++ Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp | 19 +++++++++++++++++++ Data/ODBC/testsuite/src/ODBCSQLServerTest.h | 2 ++ Data/ODBC/testsuite/src/ODBCTest.h | 8 +++++++- Data/include/Poco/Data/Statement.h | 4 ++++ Data/include/Poco/Data/StatementImpl.h | 6 ++++++ Data/src/Statement.cpp | 17 +++++++++++++++++ Data/src/StatementImpl.cpp | 17 +++++++++++++++++ 9 files changed, 84 insertions(+), 1 deletion(-) diff --git a/Data/ODBC/include/Poco/Data/ODBC/ODBCStatementImpl.h b/Data/ODBC/include/Poco/Data/ODBC/ODBCStatementImpl.h index db83e6d2d..0b7824c80 100644 --- a/Data/ODBC/include/Poco/Data/ODBC/ODBCStatementImpl.h +++ b/Data/ODBC/include/Poco/Data/ODBC/ODBCStatementImpl.h @@ -88,6 +88,9 @@ protected: AbstractBinding::BinderPtr binder(); /// Returns the concrete binder used by the statement. + void execDirectImpl(const std::string& query); + /// Execute query directly impl + std::string nativeSQL(); /// Returns the SQL string as modified by the driver. diff --git a/Data/ODBC/src/ODBCStatementImpl.cpp b/Data/ODBC/src/ODBCStatementImpl.cpp index ca22afedc..e534308f9 100644 --- a/Data/ODBC/src/ODBCStatementImpl.cpp +++ b/Data/ODBC/src/ODBCStatementImpl.cpp @@ -228,6 +228,15 @@ void ODBCStatementImpl::bindImpl() _pBinder->synchronize(); } +void ODBCStatementImpl::execDirectImpl(const std::string& query) +{ + SQLCHAR * statementText = (SQLCHAR*) query.c_str(); + SQLINTEGER textLength = query.size(); + SQLRETURN rc = SQLExecDirect(_stmt,statementText,textLength); + + checkError(rc, "SQLExecute()"); +} + void ODBCStatementImpl::putData() { diff --git a/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp b/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp index 97a6c919f..7dfe338f0 100644 --- a/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp +++ b/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp @@ -148,6 +148,25 @@ void ODBCSQLServerTest::testBareboneODBC() executor().bareboneODBCMultiResultTest(dbConnString(), tableCreateString, SQLExecutor::PB_AT_EXEC, SQLExecutor::DE_BOUND); } +void ODBCSQLServerTest::testTempTable() +{ + session() << "IF(OBJECT_ID('tempdb..#test') is not null) drop table #test;", now; + + std::string query("create table #test (s1 int,s2 int ,s3 int);"); + Statement stmt(session()); + stmt.executeDirect(query); + session() << "insert into #test select 1,2,3;", now; + + typedef Poco::Tuple testParam; + std::vector testParams; + session() << ("select * from #test;"), into(testParams), now; + + assertEquals(1, testParams.size()); + + assertEquals(1, testParams.front().get<0>()); + assertEquals(2, testParams.front().get<1>()); + assertEquals(3, testParams.front().get<2>()); +} void ODBCSQLServerTest::testBLOB() { diff --git a/Data/ODBC/testsuite/src/ODBCSQLServerTest.h b/Data/ODBC/testsuite/src/ODBCSQLServerTest.h index 40de51413..c58b56c46 100644 --- a/Data/ODBC/testsuite/src/ODBCSQLServerTest.h +++ b/Data/ODBC/testsuite/src/ODBCSQLServerTest.h @@ -40,6 +40,8 @@ public: void testBareboneODBC(); + void testTempTable(); + void testBLOB(); void testNull(); void testBulk(); diff --git a/Data/ODBC/testsuite/src/ODBCTest.h b/Data/ODBC/testsuite/src/ODBCTest.h index 1971e6db9..4fe16f68c 100644 --- a/Data/ODBC/testsuite/src/ODBCTest.h +++ b/Data/ODBC/testsuite/src/ODBCTest.h @@ -101,6 +101,7 @@ public: virtual void testIllegalRange(); virtual void testSingleSelect(); virtual void testEmptyDB(); + virtual void testTempTable(); virtual void testBLOB(); virtual void testBLOBContainer(); @@ -221,8 +222,13 @@ private: // inlines // -inline void ODBCTest::testStoredProcedure() +inline void ODBCTest::testTempTable() { + throw Poco::NotImplementedException("ODBCTest::testTempTable()"); +} + +inline void ODBCTest::testStoredProcedure() +{ throw Poco::NotImplementedException("ODBCTest::testStoredProcedure()"); } diff --git a/Data/include/Poco/Data/Statement.h b/Data/include/Poco/Data/Statement.h index c3f30cce3..6644db31f 100644 --- a/Data/include/Poco/Data/Statement.h +++ b/Data/include/Poco/Data/Statement.h @@ -304,6 +304,10 @@ public: /// The result of execution (i.e. number of returned or affected rows) can be /// obtained by calling wait() on the statement at a later point in time. + void executeDirect(const std::string& query); + /// Executes the query synchronously and directly. + /// If isAsync() returns true, the statement is also executed synchronously. + const Result& executeAsync(bool reset = true); /// Executes the statement asynchronously. /// Stops when either a limit is hit or the whole statement was executed. diff --git a/Data/include/Poco/Data/StatementImpl.h b/Data/include/Poco/Data/StatementImpl.h index fc2c9ffb9..871d5ead6 100644 --- a/Data/include/Poco/Data/StatementImpl.h +++ b/Data/include/Poco/Data/StatementImpl.h @@ -133,6 +133,9 @@ public: /// this execution step. When reset is false, data is appended to the /// bound containers during multiple execute calls. + void executeDirect(const std::string& query); + /// Execute query directly. + void reset(); /// Resets the statement, so that we can reuse all bindings and re-execute again. @@ -199,6 +202,9 @@ protected: virtual void bindImpl() = 0; /// Binds parameters. + virtual void execDirectImpl(const std::string& query); + /// Execute query directly. + virtual AbstractExtraction::ExtractorPtr extractor() = 0; /// Returns the concrete extractor used by the statement. diff --git a/Data/src/Statement.cpp b/Data/src/Statement.cpp index 089377aa1..2ff855d3f 100644 --- a/Data/src/Statement.cpp +++ b/Data/src/Statement.cpp @@ -136,6 +136,23 @@ std::size_t Statement::execute(bool reset) else throw InvalidAccessException("Statement still executing."); } +void Statement::executeDirect(const std::string& query) +{ + Mutex::ScopedLock lock(_mutex); + bool isDone = done(); + if (initialized() || paused() || isDone) + { + + if (!isAsync()) + { + if (isDone) _pImpl->reset(); + return _pImpl->executeDirect(query); + } + else throw InvalidAccessException("Cannot be executed async."); + } + else throw InvalidAccessException("Statement still executing."); +} + const Statement::Result& Statement::executeAsync(bool reset) { diff --git a/Data/src/StatementImpl.cpp b/Data/src/StatementImpl.cpp index 51f94eb5e..86fdb28c9 100644 --- a/Data/src/StatementImpl.cpp +++ b/Data/src/StatementImpl.cpp @@ -107,6 +107,18 @@ std::size_t StatementImpl::execute(const bool& reset) return lim; } +void StatementImpl::executeDirect(const std::string &query) +{ + if (!_rSession.isConnected()) + { + _state = ST_DONE; + throw NotConnectedException(_rSession.connectionString()); + } + _ostr.str(""); + _ostr << query; + execDirectImpl(_ostr.str()); +} + void StatementImpl::assignSubTotal(bool reset) { @@ -380,6 +392,11 @@ const MetaColumn& StatementImpl::metaColumn(const std::string& name) const throw NotFoundException(format("Invalid column name: %s", name)); } +void StatementImpl::execDirectImpl(const std::string& query) +{ + poco_assert("Not implemented"); +} + std::size_t StatementImpl::activateNextDataSet() { From bcae06f42330fbe5ba04e3ca3af97d9995e9fa3c Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Wed, 22 Mar 2023 15:11:13 +0100 Subject: [PATCH 034/395] 3808 icmp statistics (#3982) * fix(ICMPClinet): ICMPEventArgs Statistics bugs #3808 * fix(SpinlockMutex): 100 % CPU usage on single-core system #3852 --- .vscode/settings.json | 3 +- Foundation/include/Poco/Mutex.h | 5 +-- Net/include/Poco/Net/ICMPEventArgs.h | 12 ------- Net/include/Poco/Net/UDPHandler.h | 4 --- Net/src/ICMPEventArgs.cpp | 49 +++++++++++++++++++++++----- 5 files changed, 46 insertions(+), 27 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index f9d6c408b..e420cd4f7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -94,7 +94,8 @@ "valarray": "cpp", "strstream": "cpp", "future": "cpp", - "shared_mutex": "cpp" + "shared_mutex": "cpp", + "stop_token": "cpp" }, "files.exclude": { "**/.dep": true, diff --git a/Foundation/include/Poco/Mutex.h b/Foundation/include/Poco/Mutex.h index b6f84aa56..1aab86b62 100644 --- a/Foundation/include/Poco/Mutex.h +++ b/Foundation/include/Poco/Mutex.h @@ -158,8 +158,9 @@ class Foundation_API SpinlockMutex /// /// While in some cases (eg. locking small blocks of code) /// busy-waiting may be an optimal solution, in many scenarios - /// spinlock may not be the right choice - it is up to the user to - /// choose the proper mutex type for their particular case. + /// spinlock may not be the right choice (especially on single-core + /// systems) - it is up to the user to choose the proper mutex type + /// for their particular case. /// /// Works with the ScopedLock class. { diff --git a/Net/include/Poco/Net/ICMPEventArgs.h b/Net/include/Poco/Net/ICMPEventArgs.h index b846b3020..481e6e798 100644 --- a/Net/include/Poco/Net/ICMPEventArgs.h +++ b/Net/include/Poco/Net/ICMPEventArgs.h @@ -145,18 +145,6 @@ inline int ICMPEventArgs::sent() const } -inline int ICMPEventArgs::minRTT() const -{ - return *std::min_element(_rtt.begin(), _rtt.end()); -} - - -inline int ICMPEventArgs::maxRTT() const -{ - return *std::max_element(_rtt.begin(), _rtt.end()); -} - - } } // namespace Poco::Net diff --git a/Net/include/Poco/Net/UDPHandler.h b/Net/include/Poco/Net/UDPHandler.h index 09730f521..3843bedf8 100644 --- a/Net/include/Poco/Net/UDPHandler.h +++ b/Net/include/Poco/Net/UDPHandler.h @@ -57,11 +57,7 @@ public: typedef AutoPtr Ptr; typedef std::vector List; typedef typename List::iterator Iterator; -#ifdef POCO_HAVE_STD_ATOMICS - typedef Poco::SpinlockMutex DFMutex; -#else typedef Poco::FastMutex DFMutex; -#endif static const MsgSizeT BUF_STATUS_IDLE = 0; static const MsgSizeT BUF_STATUS_BUSY = -1; diff --git a/Net/src/ICMPEventArgs.cpp b/Net/src/ICMPEventArgs.cpp index 2fc15bbee..9eb0c2837 100644 --- a/Net/src/ICMPEventArgs.cpp +++ b/Net/src/ICMPEventArgs.cpp @@ -35,7 +35,7 @@ ICMPEventArgs::ICMPEventArgs(const SocketAddress& address, int repetitions, int _sent(0), _dataSize(dataSize), _ttl(ttl), - _rtt(repetitions, 0), + _rtt(repetitions, -1), _errors(repetitions) { } @@ -77,7 +77,7 @@ std::string ICMPEventArgs::hostAddress() const void ICMPEventArgs::setRepetitions(int repetitions) { _rtt.clear(); - _rtt.resize(repetitions, 0); + _rtt.resize(repetitions, -1); _errors.assign(repetitions, ""); } @@ -101,9 +101,9 @@ int ICMPEventArgs::received() const { int received = 0; - for (int i = 0; i < _rtt.size(); ++i) + for (const auto& r : _rtt) { - if (_rtt[i]) ++received; + if (r != -1) ++received; } return received; } @@ -133,7 +133,6 @@ void ICMPEventArgs::setReplyTime(int index, int time) { if (index >= _rtt.size()) throw InvalidArgumentException("Supplied index exceeds array capacity."); - if (0 == time) time = 1; _rtt[index] = time; } @@ -144,8 +143,9 @@ int ICMPEventArgs::replyTime(int index) const throw InvalidArgumentException("Supplied index exceeds array capacity."); if (-1 == index) index = _sent - 1; - - return _rtt[index]; + poco_assert (index < _rtt.size()); + int ret = _rtt[index]; + return (ret < 0) ? 0 : ret; } @@ -153,7 +153,16 @@ int ICMPEventArgs::avgRTT() const { if (0 == _rtt.size()) return 0; - return (int) (std::accumulate(_rtt.begin(), _rtt.end(), 0) / _rtt.size()); + int avg = 0, cnt = 0; + for (const auto& r : _rtt) + { + if (r != -1) + { + avg += r; + ++cnt; + } + } + return cnt ? static_cast(avg/cnt) : 0; } @@ -165,4 +174,28 @@ float ICMPEventArgs::percent() const } +int ICMPEventArgs::minRTT() const +{ + int min = 0; + for (const auto& r : _rtt) + { + if (r != -1 && (r < min || min == 0)) + min = r; + } + return min; +} + + +int ICMPEventArgs::maxRTT() const +{ + int max = 0; + for (const auto& r : _rtt) + { + if (r != -1 && r > max) + max = r; + } + return max; +} + + } } // namespace Poco::Net From 39a207ce62f7b5a4e72af0ff57488bfdbf6800bf Mon Sep 17 00:00:00 2001 From: xiao <821008736@qq.com> Date: Tue, 28 Mar 2023 04:48:54 +0800 Subject: [PATCH 035/395] Avoid epoll_wait causing the lock to not be released (#3983) * Avoid epoll_wait causing the lock to not be released. * code style --- Net/src/PollSet.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Net/src/PollSet.cpp b/Net/src/PollSet.cpp index dfd59b62d..a1b819201 100644 --- a/Net/src/PollSet.cpp +++ b/Net/src/PollSet.cpp @@ -169,7 +169,6 @@ public: Poco::Timespan remainingTime(timeout); int rc; - ScopedLock lock(_mutex); do { Poco::Timestamp start; @@ -199,6 +198,8 @@ public: } while (false); + ScopedLock lock(_mutex); + for (int i = 0; i < rc; i++) { if (_events[i].data.ptr) // skip eventfd From 4cc956483d19efe65f883371fe275fdd563783e0 Mon Sep 17 00:00:00 2001 From: David Hedbor Date: Thu, 30 Mar 2023 11:49:04 +0200 Subject: [PATCH 036/395] Fix thread compilation issues on FreeBSD (#3989) - Use pthread_set_name_np on FreeBSD 12. - Implement currentOsTidImpl() using thr_self() on FreeBSD. --- Foundation/src/Thread_POSIX.cpp | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/Foundation/src/Thread_POSIX.cpp b/Foundation/src/Thread_POSIX.cpp index 613677c1d..33813921d 100644 --- a/Foundation/src/Thread_POSIX.cpp +++ b/Foundation/src/Thread_POSIX.cpp @@ -21,6 +21,13 @@ #include "Poco/Timestamp.h" #include "Poco/Format.h" #include + +#if POCO_OS == POCO_OS_FREE_BSD +# include +# include +# include +#endif + #if defined(__sun) && defined(__SVR4) # if !defined(__EXTENSIONS__) # define __EXTENSIONS__ @@ -70,7 +77,10 @@ namespace { void setThreadName(const std::string& threadName) { -#if (POCO_OS == POCO_OS_MAC_OS_X) +#if POCO_OS == POCO_OS_FREE_BSD && __FreeBSD_version < 1300000 + pthread_set_name_np(pthread_self(), threadName.c_str()); + return; +#elif (POCO_OS == POCO_OS_MAC_OS_X) if (pthread_setname_np(threadName.c_str())) #else if (pthread_setname_np(pthread_self(), threadName.c_str())) @@ -319,11 +329,17 @@ ThreadImpl::TIDImpl ThreadImpl::currentTidImpl() long ThreadImpl::currentOsTidImpl() { #if POCO_OS == POCO_OS_LINUX - return ::syscall(SYS_gettid); + return ::syscall(SYS_gettid); #elif POCO_OS == POCO_OS_MAC_OS_X - return ::pthread_mach_thread_np(::pthread_self()); + return ::pthread_mach_thread_np(::pthread_self()); +#elif POCO_OS == POCO_OS_FREE_BSD + long id; + if(thr_self(&id) < 0) { + return 0; + } + return id; #else - return ::pthread_self(); + return ::pthread_self(); #endif } From 39a8b9a7c7a03e7a8c46d4f6531d216ec3ed95da Mon Sep 17 00:00:00 2001 From: vojinilic <46137805+vojinilic@users.noreply.github.com> Date: Thu, 30 Mar 2023 12:46:03 +0200 Subject: [PATCH 037/395] Fix dead lock on Timer destructor (#3987) Consider following situation. A class owns a timer. In destructor of that class we call .cancel() asynchronous on timer before it's destruction. Now timer is executing cancel in it's own internal thread, while it's doing that destructor of timer is called from owning class. Timer destructor enqueues stop notification. If that enqueue is happening just after while loop from cancel notification, stop notification is gonna be dropped and timer will never stop. fixes #3986 Co-authored-by: Vojin Ilic --- Util/src/Timer.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/Util/src/Timer.cpp b/Util/src/Timer.cpp index c3d0e283a..0180d62ae 100644 --- a/Util/src/Timer.cpp +++ b/Util/src/Timer.cpp @@ -101,7 +101,6 @@ public: pNf = static_cast(queue().dequeueNotification()); } - queue().clear(); _finished.set(); return true; } From 687f9fb2f5ea7a1232e37613b15366b83a544a96 Mon Sep 17 00:00:00 2001 From: vojinilic <46137805+vojinilic@users.noreply.github.com> Date: Tue, 4 Apr 2023 07:34:08 +0200 Subject: [PATCH 038/395] Revert "Fix dead lock on Timer destructor (#3987)" (#3994) This reverts commit 39a8b9a7c7a03e7a8c46d4f6531d216ec3ed95da. Co-authored-by: Vojin Ilic --- Util/src/Timer.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/Util/src/Timer.cpp b/Util/src/Timer.cpp index 0180d62ae..c3d0e283a 100644 --- a/Util/src/Timer.cpp +++ b/Util/src/Timer.cpp @@ -101,6 +101,7 @@ public: pNf = static_cast(queue().dequeueNotification()); } + queue().clear(); _finished.set(); return true; } From b8d1792fa0924348eb898e1256d300b656a89fe1 Mon Sep 17 00:00:00 2001 From: Vojin Ilic Date: Tue, 4 Apr 2023 10:54:30 +0200 Subject: [PATCH 039/395] Fix hang in destructor Consider following situation. A class owns a timer. In destructor of that class we call .cancel() asynchronous on timer before it's destruction. Now timer is executing cancel in it's own internal thread, while it's doing that destructor of timer is called from owner's destructor. Timer destructor enqueues stop notification. If that enqueue is happening just after while loop from cancel notification, stop notification is gonna be dropped and timer will never stop. Fix: Add new method in TimedNotificationQueue which will return a notification regardless of the time it needs to be executed. Get number of pending tasks in the queue. Flush out that many notifications from queue while taking special consideration of pending Stop and Cancel notifications. Add test for new method in TimedNotificationQueue and fix cancel all tests to actually check if notification got executed. fixes #3986 --- .../include/Poco/TimedNotificationQueue.h | 10 +++++++++ Foundation/src/TimedNotificationQueue.cpp | 14 ++++++++++++ .../src/TimedNotificationQueueTest.cpp | 20 +++++++++++++++++ .../src/TimedNotificationQueueTest.h | 1 + Util/src/Timer.cpp | 12 ++++++---- Util/testsuite/src/TimerTest.cpp | 22 ++++++++++++++----- 6 files changed, 69 insertions(+), 10 deletions(-) diff --git a/Foundation/include/Poco/TimedNotificationQueue.h b/Foundation/include/Poco/TimedNotificationQueue.h index d08e54bcf..8a48b8561 100644 --- a/Foundation/include/Poco/TimedNotificationQueue.h +++ b/Foundation/include/Poco/TimedNotificationQueue.h @@ -89,6 +89,16 @@ public: /// assigned to a Notification::Ptr, to avoid potential /// memory management issues. + Notification* dequeueNextNotification(); + /// Dequeues the next notification regardless of timestamp. + /// Returns 0 (null) if no notification is available. + /// The caller gains ownership of the notification and + /// is expected to release it when done with it. + /// + /// It is highly recommended that the result is immediately + /// assigned to a Notification::Ptr, to avoid potential + /// memory management issues. + Notification* waitDequeueNotification(); /// Dequeues the next pending notification. /// If no notification is available, waits for a notification diff --git a/Foundation/src/TimedNotificationQueue.cpp b/Foundation/src/TimedNotificationQueue.cpp index 59f92c7da..8e2fbc09e 100644 --- a/Foundation/src/TimedNotificationQueue.cpp +++ b/Foundation/src/TimedNotificationQueue.cpp @@ -82,6 +82,20 @@ Notification* TimedNotificationQueue::dequeueNotification() } +Notification* TimedNotificationQueue::dequeueNextNotification() +{ + FastMutex::ScopedLock lock(_mutex); + + NfQueue::iterator it = _nfQueue.begin(); + if (it != _nfQueue.end()) + { + Notification::Ptr pNf = it->second; + _nfQueue.erase(it); + return pNf.duplicate(); + } + return 0; +} + Notification* TimedNotificationQueue::waitDequeueNotification() { for (;;) diff --git a/Foundation/testsuite/src/TimedNotificationQueueTest.cpp b/Foundation/testsuite/src/TimedNotificationQueueTest.cpp index e9b8423fc..cf68d51fa 100644 --- a/Foundation/testsuite/src/TimedNotificationQueueTest.cpp +++ b/Foundation/testsuite/src/TimedNotificationQueueTest.cpp @@ -139,6 +139,25 @@ void TimedNotificationQueueTest::testDequeue() } +void TimedNotificationQueueTest::testDequeueNext() +{ + TimedNotificationQueue queue; + assertTrue (queue.empty()); + assertTrue (queue.size() == 0); + Notification* pNf = queue.dequeueNextNotification(); + assertNullPtr(pNf); + Timestamp time; + time += 100000; + queue.enqueueNotification(new Notification, time); + assertTrue (!queue.empty()); + assertTrue (queue.size() == 1); + pNf = queue.dequeueNextNotification(); + assertNotNullPtr(pNf); + assertTrue (queue.empty()); + assertTrue (queue.size() == 0); + pNf->release(); +} + void TimedNotificationQueueTest::testWaitDequeue() { TimedNotificationQueue queue; @@ -264,6 +283,7 @@ CppUnit::Test* TimedNotificationQueueTest::suite() CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("TimedNotificationQueueTest"); CppUnit_addTest(pSuite, TimedNotificationQueueTest, testDequeue); + CppUnit_addTest(pSuite, TimedNotificationQueueTest, testDequeueNext); CppUnit_addTest(pSuite, TimedNotificationQueueTest, testWaitDequeue); CppUnit_addTest(pSuite, TimedNotificationQueueTest, testWaitDequeueTimeout); diff --git a/Foundation/testsuite/src/TimedNotificationQueueTest.h b/Foundation/testsuite/src/TimedNotificationQueueTest.h index 6f6ffe759..921b4d098 100644 --- a/Foundation/testsuite/src/TimedNotificationQueueTest.h +++ b/Foundation/testsuite/src/TimedNotificationQueueTest.h @@ -28,6 +28,7 @@ public: ~TimedNotificationQueueTest(); void testDequeue(); + void testDequeueNext(); void testWaitDequeue(); void testWaitDequeueTimeout(); diff --git a/Util/src/Timer.cpp b/Util/src/Timer.cpp index c3d0e283a..6fcd36b9e 100644 --- a/Util/src/Timer.cpp +++ b/Util/src/Timer.cpp @@ -84,9 +84,15 @@ public: bool execute() { // Check if there's a StopNotification pending. - Poco::AutoPtr pNf = static_cast(queue().dequeueNotification()); - while (pNf) + int numberOfPendingTasks = queue().size(); + while (numberOfPendingTasks > 0) { + Poco::AutoPtr pNf = static_cast(queue().dequeueNextNotification()); + numberOfPendingTasks--; + if (!pNf) + { + continue; + } if (pNf.cast()) { queue().clear(); @@ -98,10 +104,8 @@ public: { pCnf->_finished.set(); } - pNf = static_cast(queue().dequeueNotification()); } - queue().clear(); _finished.set(); return true; } diff --git a/Util/testsuite/src/TimerTest.cpp b/Util/testsuite/src/TimerTest.cpp index 33b3562ed..b5551bdb3 100644 --- a/Util/testsuite/src/TimerTest.cpp +++ b/Util/testsuite/src/TimerTest.cpp @@ -231,11 +231,16 @@ void TimerTest::testCancelAllStop() TimerTask::Ptr pTask = new TimerTaskAdapter(*this, &TimerTest::onTimer); - timer.scheduleAtFixedRate(pTask, 5000, 5000); - - Poco::Thread::sleep(100); + // We are scheduling a timer event in 100ms + Timestamp time; + time += 100000; + timer.schedule(pTask, time); timer.cancel(false); + // Timer should fire in 100ms and onTimer has 100ms sleep in it. + // So we are waiting 2 times that plus a small buffer that to make sure that event was never executed. + bool timerExecuted = _event.tryWait(200 + 50); + assertFalse (timerExecuted); } assertTrue (true); // don't hang @@ -249,11 +254,16 @@ void TimerTest::testCancelAllWaitStop() TimerTask::Ptr pTask = new TimerTaskAdapter(*this, &TimerTest::onTimer); - timer.scheduleAtFixedRate(pTask, 5000, 5000); - - Poco::Thread::sleep(100); + // We are scheduling a timer event in 100ms + Timestamp time; + time += 100000; + timer.schedule(pTask, time); timer.cancel(true); + // Timer should fire in 100ms and onTimer has 100ms sleep in it. + // So we are waiting 2 times that plus a small buffer that to make sure that event was never executed. + bool timerExecuted = _event.tryWait(200 + 50); + assertFalse (timerExecuted); } assertTrue (true); // don't hang From 9a2c16f55a7543bf6307cddf9a6638456b56c891 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Fri, 5 May 2023 15:33:21 +0200 Subject: [PATCH 040/395] MongoDB: add missing name accessor to get database name. (#4020) --- MongoDB/include/Poco/MongoDB/Database.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/MongoDB/include/Poco/MongoDB/Database.h b/MongoDB/include/Poco/MongoDB/Database.h index ebcf47da9..309687d68 100644 --- a/MongoDB/include/Poco/MongoDB/Database.h +++ b/MongoDB/include/Poco/MongoDB/Database.h @@ -45,6 +45,9 @@ public: virtual ~Database(); /// Destroys the Database. + const std::string& name() const; + /// Database name + bool authenticate(Connection& connection, const std::string& username, const std::string& password, const std::string& method = AUTH_SCRAM_SHA1); /// Authenticates against the database using the given connection, /// username and password, as well as authentication method. @@ -160,6 +163,12 @@ private: // // inlines // +inline const std::string& Database::name() const +{ + return _dbname; +} + + inline Poco::SharedPtr Database::createCommand() const { Poco::SharedPtr cmd = createQueryRequest("$cmd"); From 971a7cc670c881964423e85ea9b9a91088c14142 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Fri, 5 May 2023 16:27:42 +0200 Subject: [PATCH 041/395] Mongodb op msg database commands fix (#4004) * * Fix: MongoDB::OpMsgCursor did not handle zero batch size properly: cursor requests failed. * Improvement: Add emptyFirstBatch to indicate that the size of the first batch shall be zero for performance to get potential error ASAP from the server. * Poco::MongoDB: Some database commands do not need collection as an argument. An integer "1" is passed instead. --- MongoDB/include/Poco/MongoDB/Database.h | 6 +- MongoDB/include/Poco/MongoDB/OpMsgCursor.h | 10 ++- MongoDB/include/Poco/MongoDB/OpMsgMessage.h | 2 + MongoDB/src/OpMsgCursor.cpp | 32 +++++++--- MongoDB/src/OpMsgMessage.cpp | 15 ++++- MongoDB/testsuite/src/MongoDBTest.cpp | 4 ++ MongoDB/testsuite/src/MongoDBTest.h | 2 + MongoDB/testsuite/src/MongoDBTestOpMsg.cpp | 71 ++++++++++++++++++++- 8 files changed, 125 insertions(+), 17 deletions(-) diff --git a/MongoDB/include/Poco/MongoDB/Database.h b/MongoDB/include/Poco/MongoDB/Database.h index 309687d68..4cd1c57ac 100644 --- a/MongoDB/include/Poco/MongoDB/Database.h +++ b/MongoDB/include/Poco/MongoDB/Database.h @@ -99,7 +99,7 @@ public: /// Creates OpMsgMessage. (new wire protocol) Poco::SharedPtr createOpMsgMessage() const; - /// Creates OpMsgMessage for database commands. (new wire protocol) + /// Creates OpMsgMessage for database commands that do not require collection as an argument. (new wire protocol) Poco::SharedPtr createOpMsgCursor(const std::string& collectionName) const; /// Creates OpMsgCursor. (new wire protocol) @@ -215,8 +215,8 @@ Database::createOpMsgMessage(const std::string& collectionName) const inline Poco::SharedPtr Database::createOpMsgMessage() const { - // Collection name for database commands is ignored and any value will do. - return createOpMsgMessage("1"); + // Collection name for database commands is not needed. + return createOpMsgMessage(""); } inline Poco::SharedPtr diff --git a/MongoDB/include/Poco/MongoDB/OpMsgCursor.h b/MongoDB/include/Poco/MongoDB/OpMsgCursor.h index ef7811dac..28da3ad22 100644 --- a/MongoDB/include/Poco/MongoDB/OpMsgCursor.h +++ b/MongoDB/include/Poco/MongoDB/OpMsgCursor.h @@ -36,11 +36,16 @@ public: virtual ~OpMsgCursor(); /// Destroys the OpMsgCursor. + void setEmptyFirstBatch(bool empty); + /// Empty first batch is used to get error response faster with little server processing + + bool emptyFirstBatch() const; + void setBatchSize(Int32 batchSize); /// Set non-default batch size Int32 batchSize() const; - /// Current batch size (negative number indicates default batch size) + /// Current batch size (zero or negative number indicates default batch size) Int64 cursorID() const; @@ -60,8 +65,9 @@ private: OpMsgMessage _query; OpMsgMessage _response; + bool _emptyFirstBatch { false }; Int32 _batchSize { -1 }; - /// Batch size used in the cursor. Negative value means that default shall be used. + /// Batch size used in the cursor. Zero or negative value means that default shall be used. Int64 _cursorID { 0 }; }; diff --git a/MongoDB/include/Poco/MongoDB/OpMsgMessage.h b/MongoDB/include/Poco/MongoDB/OpMsgMessage.h index aa0bbdafe..4094663d1 100644 --- a/MongoDB/include/Poco/MongoDB/OpMsgMessage.h +++ b/MongoDB/include/Poco/MongoDB/OpMsgMessage.h @@ -52,6 +52,8 @@ public: // Replication and administration static const std::string CMD_HELLO; + static const std::string CMD_REPL_SET_GET_STATUS; + static const std::string CMD_REPL_SET_GET_CONFIG; static const std::string CMD_CREATE; static const std::string CMD_CREATE_INDEXES; diff --git a/MongoDB/src/OpMsgCursor.cpp b/MongoDB/src/OpMsgCursor.cpp index 991604bb3..7f6bf9b81 100644 --- a/MongoDB/src/OpMsgCursor.cpp +++ b/MongoDB/src/OpMsgCursor.cpp @@ -71,6 +71,18 @@ OpMsgCursor::~OpMsgCursor() } +void OpMsgCursor::setEmptyFirstBatch(bool empty) +{ + _emptyFirstBatch = empty; +} + + +bool OpMsgCursor::emptyFirstBatch() const +{ + return _emptyFirstBatch; +} + + void OpMsgCursor::setBatchSize(Int32 batchSize) { _batchSize = batchSize; @@ -89,16 +101,18 @@ OpMsgMessage& OpMsgCursor::next(Connection& connection) { _response.clear(); - if (_query.commandName() == OpMsgMessage::CMD_FIND) + if (_emptyFirstBatch || _batchSize > 0) { - if (_batchSize >= 0) - _query.body().add("batchSize", _batchSize); - } - else if (_query.commandName() == OpMsgMessage::CMD_AGGREGATE) - { - auto cursorDoc = _query.body().addNewDocument("cursor"); - if (_batchSize >= 0) - cursorDoc.add("batchSize", _batchSize); + Int32 bsize = _emptyFirstBatch ? 0 : _batchSize; + if (_query.commandName() == OpMsgMessage::CMD_FIND) + { + _query.body().add("batchSize", bsize); + } + else if (_query.commandName() == OpMsgMessage::CMD_AGGREGATE) + { + auto& cursorDoc = _query.body().addNewDocument("cursor"); + cursorDoc.add("batchSize", bsize); + } } connection.sendRequest(_query, _response); diff --git a/MongoDB/src/OpMsgMessage.cpp b/MongoDB/src/OpMsgMessage.cpp index ce01ad087..2c4d16f36 100644 --- a/MongoDB/src/OpMsgMessage.cpp +++ b/MongoDB/src/OpMsgMessage.cpp @@ -38,6 +38,8 @@ const std::string OpMsgMessage::CMD_MAP_REDUCE { "mapReduce" }; // Replication and administration const std::string OpMsgMessage::CMD_HELLO { "hello" }; +const std::string OpMsgMessage::CMD_REPL_SET_GET_STATUS { "replSetGetStatus" }; +const std::string OpMsgMessage::CMD_REPL_SET_GET_CONFIG { "replSetGetConfig" }; const std::string OpMsgMessage::CMD_CREATE { "create" }; const std::string OpMsgMessage::CMD_CREATE_INDEXES { "createIndexes" }; @@ -100,7 +102,16 @@ void OpMsgMessage::setCommandName(const std::string& command) _body.clear(); // IMPORTANT: Command name must be first - _body.add(_commandName, _collectionName); + if (_collectionName.empty()) + { + // Collection is not specified. It is assumed that this particular command does + // not need it. + _body.add(_commandName, Int32(1)); + } + else + { + _body.add(_commandName, _collectionName); + } _body.add("$db", _databaseName); } @@ -114,7 +125,7 @@ void OpMsgMessage::setCursor(Poco::Int64 cursorID, Poco::Int32 batchSize) _body.add(_commandName, cursorID); _body.add("$db", _databaseName); _body.add("collection", _collectionName); - if (batchSize >= 0) + if (batchSize > 0) { _body.add("batchSize", batchSize); } diff --git a/MongoDB/testsuite/src/MongoDBTest.cpp b/MongoDB/testsuite/src/MongoDBTest.cpp index 1be1109e2..ccec83004 100644 --- a/MongoDB/testsuite/src/MongoDBTest.cpp +++ b/MongoDB/testsuite/src/MongoDBTest.cpp @@ -556,7 +556,11 @@ CppUnit::Test* MongoDBTest::suite() CppUnit_addTest(pSuite, MongoDBTest, testOpCmdCursor); CppUnit_addTest(pSuite, MongoDBTest, testOpCmdCursorAggregate); CppUnit_addTest(pSuite, MongoDBTest, testOpCmdKillCursor); + CppUnit_addTest(pSuite, MongoDBTest, testOpCmdCursorEmptyFirstBatch); + CppUnit_addTest(pSuite, MongoDBTest, testOpCmdUUID); + + CppUnit_addTest(pSuite, MongoDBTest, testOpCmdDropDatabase); } return pSuite; diff --git a/MongoDB/testsuite/src/MongoDBTest.h b/MongoDB/testsuite/src/MongoDBTest.h index 20f1922e3..f7db9b66c 100644 --- a/MongoDB/testsuite/src/MongoDBTest.h +++ b/MongoDB/testsuite/src/MongoDBTest.h @@ -57,11 +57,13 @@ public: void testOpCmdFind(); void testOpCmdCursor(); void testOpCmdCursorAggregate(); + void testOpCmdCursorEmptyFirstBatch(); void testOpCmdKillCursor(); void testOpCmdCount(); void testOpCmdDelete(); void testOpCmdUnaknowledgedInsert(); void testOpCmdConnectionPool(); + void testOpCmdDropDatabase(); static CppUnit::Test* suite(); diff --git a/MongoDB/testsuite/src/MongoDBTestOpMsg.cpp b/MongoDB/testsuite/src/MongoDBTestOpMsg.cpp index 8e1b037d0..7d843e121 100644 --- a/MongoDB/testsuite/src/MongoDBTestOpMsg.cpp +++ b/MongoDB/testsuite/src/MongoDBTestOpMsg.cpp @@ -327,7 +327,11 @@ void MongoDBTest::testOpCmdCursorAggregate() auto cresponse = cursor->next(*_mongo); while(true) { - n += static_cast(cresponse.documents().size()); + int batchDocSize = cresponse.documents().size(); + if (cursor->cursorID() != 0) + assertEquals (1000, batchDocSize); + + n += batchDocSize; if ( cursor->cursorID() == 0 ) break; cresponse = cursor->next(*_mongo); @@ -400,6 +404,53 @@ void MongoDBTest::testOpCmdCount() } +void MongoDBTest::testOpCmdCursorEmptyFirstBatch() +{ + Database db("team"); + + Poco::SharedPtr request = db.createOpMsgMessage("numbers"); + OpMsgMessage response; + + request->setCommandName(OpMsgMessage::CMD_DROP); + _mongo->sendRequest(*request, response); + + request->setCommandName(OpMsgMessage::CMD_INSERT); + for(int i = 0; i < 10000; ++i) + { + Document::Ptr doc = new Document(); + doc->add("number", i); + request->documents().push_back(doc); + } + _mongo->sendRequest(*request, response); + assertTrue(response.responseOk()); + + Poco::SharedPtr cursor = db.createOpMsgCursor("numbers"); + cursor->query().setCommandName(OpMsgMessage::CMD_AGGREGATE); + cursor->setEmptyFirstBatch(true); + cursor->setBatchSize(0); // Will be ignored, default is used + + // Empty pipeline: get all documents + cursor->query().body().addNewArray("pipeline"); + + auto cresponse = cursor->next(*_mongo); + assertEquals (0, cresponse.documents().size()); // First batch is empty + + int n = 0; + while(true) + { + n += static_cast(cresponse.documents().size()); + if ( cursor->cursorID() == 0 ) + break; + cresponse = cursor->next(*_mongo); + } + assertEquals (10000, n); + + request->setCommandName(OpMsgMessage::CMD_DROP); + _mongo->sendRequest(*request, response); + assertTrue(response.responseOk()); +} + + void MongoDBTest::testOpCmdDelete() { Database db("team"); @@ -442,3 +493,21 @@ void MongoDBTest::testOpCmdConnectionPool() assertEquals (1, doc.getInteger("n")); } + +void MongoDBTest::testOpCmdDropDatabase() +{ + Database db("team"); + Poco::SharedPtr request = db.createOpMsgMessage(); + request->setCommandName(OpMsgMessage::CMD_DROP_DATABASE); + + OpMsgMessage response; + _mongo->sendRequest(*request, response); + + std::cout << request->body().toString(2) << std::endl; + std::cout << response.body().toString(2) << std::endl; + + assertTrue(response.responseOk()); +} + + + From c7ac8574f88d7b84068851b30346ce1b2b9e5753 Mon Sep 17 00:00:00 2001 From: Alexander B Date: Fri, 5 May 2023 17:49:06 +0300 Subject: [PATCH 042/395] Complimentary to #3918 (std::*mutex wrapper) (#3954) * Complimentary to #3918 I think that we can use Poco::Mutex and Poco::FastMutex as wrappers for std::recursive_mutex and std::mutex instead of replacing For using std::*mutexes switch on cmake-option POCO_ENABLE_STD_MUTEX * add define POCO_ENABLE_STD_MUTEX to the Config.h remove empty if-else from CMakeLists.txt --- CMakeLists.txt | 5 ++ Foundation/include/Poco/Config.h | 6 +- Foundation/include/Poco/Mutex.h | 5 +- Foundation/include/Poco/Mutex_STD.h | 135 ++++++++++++++++++++++++++++ Foundation/src/Mutex.cpp | 5 +- Foundation/src/Mutex_STD.cpp | 120 +++++++++++++++++++++++++ 6 files changed, 272 insertions(+), 4 deletions(-) create mode 100644 Foundation/include/Poco/Mutex_STD.h create mode 100644 Foundation/src/Mutex_STD.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 3b2658273..cb50a9048 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -226,6 +226,11 @@ if(POCO_NO_FORK_EXEC) add_definitions(-DPOCO_NO_FORK_EXEC=1) endif() +option(POCO_ENABLE_STD_MUTEX "Set to OFF|NO using mutex from standard library (default OFF)" OFF) + +if (POCO_ENABLE_STD_MUTEX) + add_definitions(-DPOCO_ENABLE_STD_MUTEX) +endif () include(DefinePlatformSpecifc) # Collect the built libraries and include dirs, the will be used to create the PocoConfig.cmake file diff --git a/Foundation/include/Poco/Config.h b/Foundation/include/Poco/Config.h index 571e2f504..461c55289 100644 --- a/Foundation/include/Poco/Config.h +++ b/Foundation/include/Poco/Config.h @@ -208,5 +208,9 @@ // Disarm POCO_DEPRECATED macro. // #define POCO_NO_DEPRECATED - +// Enable usage of Poco::Mutex and Poco::FastMutex +// as wrappers for std::recursive_mutex and std::mutex +#ifndef POCO_ENABLE_STD_MUTEX +// #define POCO_ENABLE_STD_MUTEX +#endif #endif // Foundation_Config_INCLUDED diff --git a/Foundation/include/Poco/Mutex.h b/Foundation/include/Poco/Mutex.h index 1aab86b62..5b926ceea 100644 --- a/Foundation/include/Poco/Mutex.h +++ b/Foundation/include/Poco/Mutex.h @@ -24,7 +24,9 @@ #include "Poco/Timestamp.h" #include - +#ifdef POCO_ENABLE_STD_MUTEX +#include "Poco/Mutex_STD.h" +#else #if defined(POCO_OS_FAMILY_WINDOWS) #if defined(_WIN32_WCE) #include "Poco/Mutex_WINCE.h" @@ -36,6 +38,7 @@ #else #include "Poco/Mutex_POSIX.h" #endif +#endif namespace Poco { diff --git a/Foundation/include/Poco/Mutex_STD.h b/Foundation/include/Poco/Mutex_STD.h new file mode 100644 index 000000000..26ce25acb --- /dev/null +++ b/Foundation/include/Poco/Mutex_STD.h @@ -0,0 +1,135 @@ +// +// Mutex_STD.h +// +// Library: Foundation +// Package: Threading +// Module: Mutex +// +// Definition of the MutexImpl and FastMutexImpl classes based on Standard library mutex and recursive mutes. +// +// Copyright (c) 2004-2023, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef Foundation_Mutex_STD_INCLUDED +#define Foundation_Mutex_STD_INCLUDED + + +#include "Poco/Foundation.h" +#include "Poco/Exception.h" +#include + + +namespace Poco { + + + class Foundation_API MutexImpl + { + protected: + MutexImpl(); + ~MutexImpl(); + void lockImpl(); + bool tryLockImpl(); + bool tryLockImpl(long milliseconds); + void unlockImpl(); + + private: + std::recursive_mutex _mutex; + }; + + + class Foundation_API FastMutexImpl + { + protected: + FastMutexImpl(); + ~FastMutexImpl(); + void lockImpl(); + bool tryLockImpl(); + bool tryLockImpl(long milliseconds); + void unlockImpl(); + private: + std::mutex _mutex; + }; + + +// +// inlines +// + inline void MutexImpl::lockImpl() + { + try + { + _mutex.lock(); + } + catch (std::exception &ex) { + throw SystemException("cannot lock mutex", ex.what()); + } + } + + + inline bool MutexImpl::tryLockImpl() + { + try + { + return _mutex.try_lock(); + } + catch (std::exception &ex) + { + throw SystemException("cannot lock mutex", ex.what()); + } + } + + + inline void MutexImpl::unlockImpl() + { + try + { + _mutex.unlock(); + } + catch (std::exception &ex) { + throw SystemException("cannot unlock mutex"); + } + } + + inline void FastMutexImpl::lockImpl() + { + try + { + _mutex.lock(); + } + catch (std::exception &ex) { + throw SystemException("cannot lock mutex", ex.what()); + } + } + + + inline bool FastMutexImpl::tryLockImpl() + { + try + { + return _mutex.try_lock(); + } + catch (std::exception &ex) + { + throw SystemException("cannot lock mutex", ex.what()); + } + } + + + inline void FastMutexImpl::unlockImpl() + { + try + { + _mutex.unlock(); + } + catch (std::exception &ex) { + throw SystemException("cannot unlock mutex"); + } + } + +} // namespace Poco + +#endif //Foundation_Mutex_STD_INCLUDED diff --git a/Foundation/src/Mutex.cpp b/Foundation/src/Mutex.cpp index 843562aff..939e7afb4 100644 --- a/Foundation/src/Mutex.cpp +++ b/Foundation/src/Mutex.cpp @@ -14,8 +14,9 @@ #include "Poco/Mutex.h" - -#if defined(POCO_OS_FAMILY_WINDOWS) +#if defined(POCO_ENABLE_STD_MUTEX) +#include "Mutex_STD.cpp" +#elif defined(POCO_OS_FAMILY_WINDOWS) #if defined(_WIN32_WCE) #include "Mutex_WINCE.cpp" #else diff --git a/Foundation/src/Mutex_STD.cpp b/Foundation/src/Mutex_STD.cpp new file mode 100644 index 000000000..867ef0b9a --- /dev/null +++ b/Foundation/src/Mutex_STD.cpp @@ -0,0 +1,120 @@ +// +// Mutex_STD.cpp +// +// Library: Foundation +// Package: Threading +// Module: Mutex +// +// Copyright (c) 2004-2023, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Mutex_STD.h" +#include "Poco/Timestamp.h" +#if !defined(POCO_NO_SYS_SELECT_H) +#include +#endif +#include +#if defined(POCO_VXWORKS) +#include +#include +#else +#include +#endif + + +namespace Poco { + + + MutexImpl::MutexImpl() : _mutex() + { + } + + MutexImpl::~MutexImpl() + { + } + + + bool MutexImpl::tryLockImpl(long milliseconds) + { + const int sleepMillis = 5; + Timestamp now; + Timestamp::TimeDiff diff(Timestamp::TimeDiff(milliseconds)*1000); + do + { + bool rc = false; + try + { + rc = _mutex.try_lock(); + if (rc) + return true; + } + catch (std::exception &ex) + { + throw SystemException("cannot lock mutex", ex.what()); + } +#if defined(POCO_VXWORKS) + struct timespec ts; + ts.tv_sec = 0; + ts.tv_nsec = sleepMillis*1000000; + nanosleep(&ts, NULL); +#else + struct timeval tv; + tv.tv_sec = 0; + tv.tv_usec = sleepMillis * 1000; + select(0, nullptr, nullptr, nullptr, &tv); +#endif + } + while (!now.isElapsed(diff)); + return false; + + } + + + FastMutexImpl::FastMutexImpl(): _mutex() + { + } + + + FastMutexImpl::~FastMutexImpl() + { + } + + bool FastMutexImpl::tryLockImpl(long milliseconds) + { + const int sleepMillis = 5; + Timestamp now; + Timestamp::TimeDiff diff(Timestamp::TimeDiff(milliseconds)*1000); + do + { + bool rc = false; + try + { + rc = _mutex.try_lock(); + if (rc) + return true; + } + catch (std::exception &ex) + { + throw SystemException("cannot lock mutex", ex.what()); + } +#if defined(POCO_VXWORKS) + struct timespec ts; + ts.tv_sec = 0; + ts.tv_nsec = sleepMillis*1000000; + nanosleep(&ts, NULL); +#else + struct timeval tv; + tv.tv_sec = 0; + tv.tv_usec = sleepMillis * 1000; + select(0, NULL, NULL, NULL, &tv); +#endif + } + while (!now.isElapsed(diff)); + return false; + + } +} // namespace Poco From 75b378e540f5f1a80e55afeeb37a38ff5a0bc1c3 Mon Sep 17 00:00:00 2001 From: Alexander B Date: Fri, 5 May 2023 19:49:56 +0300 Subject: [PATCH 043/395] fix #4005 Poco::Path::getExtension() returns name of the hidden file if no extension is present (#4011) --- Foundation/src/Path.cpp | 4 ++-- Foundation/testsuite/src/FileTest.cpp | 15 +++++++++++++++ Foundation/testsuite/src/FileTest.h | 1 + 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Foundation/src/Path.cpp b/Foundation/src/Path.cpp index 7b85a65c6..38d354eb4 100644 --- a/Foundation/src/Path.cpp +++ b/Foundation/src/Path.cpp @@ -537,7 +537,7 @@ Path& Path::setBaseName(const std::string& name) std::string Path::getBaseName() const { std::string::size_type pos = _name.rfind('.'); - if (pos != std::string::npos) + if (pos != std::string::npos && pos != 0) return _name.substr(0, pos); else return _name; @@ -559,7 +559,7 @@ Path& Path::setExtension(const std::string& extension) std::string Path::getExtension() const { std::string::size_type pos = _name.rfind('.'); - if (pos != std::string::npos) + if (pos != std::string::npos && pos != 0) return _name.substr(pos + 1); else return std::string(); diff --git a/Foundation/testsuite/src/FileTest.cpp b/Foundation/testsuite/src/FileTest.cpp index df7d6f7c2..2663953fc 100644 --- a/Foundation/testsuite/src/FileTest.cpp +++ b/Foundation/testsuite/src/FileTest.cpp @@ -605,6 +605,20 @@ void FileTest::testLongPath() #endif } +void FileTest::testUnixFileExtension() +{ + std::string filePath1 = "/a/b/c/.notextension"; + Poco::Path path1(filePath1, Poco::Path::Style::PATH_UNIX); + + assertEqual(".notextension", path1.getBaseName()); + assertEqual("", path1.getExtension()); + + std::string filePath2 = "/a/b/c/emptyextension."; + Poco::Path path2(filePath2, Poco::Path::Style::PATH_UNIX); + + assertEqual("emptyextension", path2.getBaseName()); + assertEqual("", path2.getExtension()); +} void FileTest::setUp() { @@ -654,6 +668,7 @@ CppUnit::Test* FileTest::suite() CppUnit_addTest(pSuite, FileTest, testRenameFailIfExists); CppUnit_addTest(pSuite, FileTest, testRootDir); CppUnit_addTest(pSuite, FileTest, testLongPath); + CppUnit_addTest(pSuite, FileTest, testUnixFileExtension); return pSuite; } diff --git a/Foundation/testsuite/src/FileTest.h b/Foundation/testsuite/src/FileTest.h index b311165e2..c5448b457 100644 --- a/Foundation/testsuite/src/FileTest.h +++ b/Foundation/testsuite/src/FileTest.h @@ -42,6 +42,7 @@ public: void testRenameFailIfExists(); void testRootDir(); void testLongPath(); + void testUnixFileExtension(); void setUp(); void tearDown(); From 69a6ddbd90e4b215d203d438803716202d672638 Mon Sep 17 00:00:00 2001 From: Alexander B Date: Thu, 11 May 2023 14:39:32 +0300 Subject: [PATCH 044/395] fix #3968 Poco::Net::SocketConnector constructor should take SocketAddress by const reference --- Net/include/Poco/Net/SocketConnector.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Net/include/Poco/Net/SocketConnector.h b/Net/include/Poco/Net/SocketConnector.h index 15d01e908..5da007664 100644 --- a/Net/include/Poco/Net/SocketConnector.h +++ b/Net/include/Poco/Net/SocketConnector.h @@ -73,14 +73,14 @@ class SocketConnector /// if special steps are necessary to create a ServiceHandler object. { public: - explicit SocketConnector(SocketAddress& address): + explicit SocketConnector(const SocketAddress& address): _pReactor(0) /// Creates a SocketConnector, using the given Socket. { _socket.connectNB(address); } - SocketConnector(SocketAddress& address, SocketReactor& reactor, bool doRegister = true) : + SocketConnector(const SocketAddress& address, SocketReactor& reactor, bool doRegister = true) : _pReactor(0) /// Creates an connector, using the given ServerSocket. /// The SocketConnector registers itself with the given SocketReactor. From ed2613dfc59ea4dc782f8c7db63433c5faa2403b Mon Sep 17 00:00:00 2001 From: Sergey Detsina Date: Sun, 21 May 2023 10:40:20 +0300 Subject: [PATCH 045/395] Fixed Poco::format specifier for error code --- Foundation/src/SharedLibrary_WIN32U.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Foundation/src/SharedLibrary_WIN32U.cpp b/Foundation/src/SharedLibrary_WIN32U.cpp index ff56a8844..6ecd4e953 100644 --- a/Foundation/src/SharedLibrary_WIN32U.cpp +++ b/Foundation/src/SharedLibrary_WIN32U.cpp @@ -55,7 +55,7 @@ void SharedLibraryImpl::loadImpl(const std::string& path, int /*flags*/) { DWORD errn = Error::last(); std::string err; - Poco::format(err, "Error %ul while loading [%s]: [%s]", errn, path, Poco::trim(Error::getMessage(errn))); + Poco::format(err, "Error %lu while loading [%s]: [%s]", errn, path, Poco::trim(Error::getMessage(errn))); throw LibraryLoadException(err); } _path = path; From 8f764e3505c03051596f35fd58bc4f627301f0b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Tue, 6 Jun 2023 13:06:02 +0200 Subject: [PATCH 046/395] #3880: NetSSL_OpenSSL: Support session resumption with TLSv1.3 --- NetSSL_OpenSSL/include/Poco/Net/SSLManager.h | 12 +++++++ .../include/Poco/Net/SecureSocketImpl.h | 4 +++ NetSSL_OpenSSL/include/Poco/Net/Session.h | 3 ++ NetSSL_OpenSSL/src/Context.cpp | 6 ++++ NetSSL_OpenSSL/src/SecureSocketImpl.cpp | 34 +++++++++++-------- NetSSL_OpenSSL/src/Session.cpp | 17 ++++++---- .../testsuite/src/TCPServerTest.cpp | 7 ++-- 7 files changed, 58 insertions(+), 25 deletions(-) diff --git a/NetSSL_OpenSSL/include/Poco/Net/SSLManager.h b/NetSSL_OpenSSL/include/Poco/Net/SSLManager.h index e834a5820..9274d8b95 100644 --- a/NetSSL_OpenSSL/include/Poco/Net/SSLManager.h +++ b/NetSSL_OpenSSL/include/Poco/Net/SSLManager.h @@ -287,6 +287,10 @@ protected: /// Returns the index for SSL_CTX_set_ex_data() and SSL_CTX_get_ex_data() to /// store the Context* in the underlying SSL_CTX. + int socketIndex() const; + /// Returns the index for SSL_set_ex_data() and SSL_get_ex_data() to + /// store the SecureSocketImpl* in the underlying SSL. + private: SSLManager(); /// Creates the SSLManager. @@ -320,6 +324,7 @@ private: PrivateKeyPassphraseHandlerPtr _ptrClientPassphraseHandler; InvalidCertificateHandlerPtr _ptrClientCertificateHandler; int _contextIndex; + int _socketIndex; Poco::FastMutex _mutex; static const std::string CFG_PRIV_KEY_FILE; @@ -359,6 +364,7 @@ private: friend class Poco::SingletonHolder; friend class Context; + friend class SecureSocketImpl; }; @@ -405,6 +411,12 @@ inline int SSLManager::contextIndex() const } +inline int SSLManager::socketIndex() const +{ + return _socketIndex; +} + + } } // namespace Poco::Net diff --git a/NetSSL_OpenSSL/include/Poco/Net/SecureSocketImpl.h b/NetSSL_OpenSSL/include/Poco/Net/SecureSocketImpl.h index a12447fbe..c8eedb638 100644 --- a/NetSSL_OpenSSL/include/Poco/Net/SecureSocketImpl.h +++ b/NetSSL_OpenSSL/include/Poco/Net/SecureSocketImpl.h @@ -280,6 +280,9 @@ protected: /// Note that simply closing a socket is not sufficient /// to be able to re-use it again. + static int onSessionCreated(SSL* pSSL, SSL_SESSION* pSession); + /// Callback to handle new session data sent by server. + private: SecureSocketImpl(const SecureSocketImpl&); SecureSocketImpl& operator = (const SecureSocketImpl&); @@ -293,6 +296,7 @@ private: bool _bidirectShutdown = true; friend class SecureStreamSocketImpl; + friend class Context; }; diff --git a/NetSSL_OpenSSL/include/Poco/Net/Session.h b/NetSSL_OpenSSL/include/Poco/Net/Session.h index 465e12fdd..3ed5a4ec9 100644 --- a/NetSSL_OpenSSL/include/Poco/Net/Session.h +++ b/NetSSL_OpenSSL/include/Poco/Net/Session.h @@ -42,6 +42,9 @@ public: SSL_SESSION* sslSession() const; /// Returns the stored OpenSSL SSL_SESSION object. + bool isResumable() const; + /// Returns true if the session is resumable. + protected: Session(SSL_SESSION* pSession); /// Creates a new Session object, using the given diff --git a/NetSSL_OpenSSL/src/Context.cpp b/NetSSL_OpenSSL/src/Context.cpp index 088ba1132..5a004d8c4 100644 --- a/NetSSL_OpenSSL/src/Context.cpp +++ b/NetSSL_OpenSSL/src/Context.cpp @@ -15,6 +15,7 @@ #include "Poco/Net/Context.h" #include "Poco/Net/SSLManager.h" #include "Poco/Net/SSLException.h" +#include "Poco/Net/SecureSocketImpl.h" #include "Poco/Net/Utility.h" #include "Poco/Crypto/OpenSSLInitializer.h" #include "Poco/File.h" @@ -195,6 +196,11 @@ void Context::init(const Params& params) SSL_CTX_set_session_cache_mode(_pSSLContext, SSL_SESS_CACHE_OFF); SSL_CTX_set_ex_data(_pSSLContext, SSLManager::instance().contextIndex(), this); + if (!isForServerUse()) + { + SSL_CTX_sess_set_new_cb(_pSSLContext, &SecureSocketImpl::onSessionCreated); + } + if (!isForServerUse() && params.ocspStaplingVerification) { #if OPENSSL_VERSION_NUMBER >= 0x10001000L diff --git a/NetSSL_OpenSSL/src/SecureSocketImpl.cpp b/NetSSL_OpenSSL/src/SecureSocketImpl.cpp index e9ecdd385..14ade466c 100644 --- a/NetSSL_OpenSSL/src/SecureSocketImpl.cpp +++ b/NetSSL_OpenSSL/src/SecureSocketImpl.cpp @@ -14,6 +14,7 @@ #include "Poco/Net/SecureSocketImpl.h" #include "Poco/Net/SSLException.h" +#include "Poco/Net/SSLManager.h" #include "Poco/Net/Context.h" #include "Poco/Net/X509Certificate.h" #include "Poco/Net/Utility.h" @@ -97,6 +98,7 @@ void SecureSocketImpl::acceptSSL() } SSL_set_bio(_pSSL, pBIO, pBIO); SSL_set_accept_state(_pSSL); + SSL_set_ex_data(_pSSL, SSLManager::instance().socketIndex(), this); _needHandshake = true; } @@ -156,6 +158,7 @@ void SecureSocketImpl::connectSSL(bool performHandshake) throw SSLException("Cannot create SSL object"); } SSL_set_bio(_pSSL, pBIO, pBIO); + SSL_set_ex_data(_pSSL, SSLManager::instance().socketIndex(), this); if (!_peerHostName.empty()) { @@ -169,7 +172,7 @@ void SecureSocketImpl::connectSSL(bool performHandshake) } #endif - if (_pSession) + if (_pSession && _pSession->isResumable()) { SSL_set_session(_pSSL, _pSession->sslSession()); } @@ -609,6 +612,7 @@ void SecureSocketImpl::reset() close(); if (_pSSL) { + SSL_set_ex_data(_pSSL, SSLManager::instance().socketIndex(), nullptr); SSL_free(_pSSL); _pSSL = 0; } @@ -623,20 +627,7 @@ void SecureSocketImpl::abort() Session::Ptr SecureSocketImpl::currentSession() { - if (_pSSL) - { - SSL_SESSION* pSession = SSL_get1_session(_pSSL); - if (pSession) - { - if (_pSession && pSession == _pSession->sslSession()) - { - SSL_SESSION_free(pSession); - return _pSession; - } - else return new Session(pSession); - } - } - return 0; + return _pSession; } @@ -655,4 +646,17 @@ bool SecureSocketImpl::sessionWasReused() } +int SecureSocketImpl::onSessionCreated(SSL* pSSL, SSL_SESSION* pSession) +{ + void* pEx = SSL_get_ex_data(pSSL, SSLManager::instance().socketIndex()); + if (pEx) + { + SecureSocketImpl* pThis = reinterpret_cast(pEx); + pThis->_pSession = new Session(pSession); + return 1; + } + else return 0; +} + + } } // namespace Poco::Net diff --git a/NetSSL_OpenSSL/src/Session.cpp b/NetSSL_OpenSSL/src/Session.cpp index e16fc23df..c84ee9d26 100644 --- a/NetSSL_OpenSSL/src/Session.cpp +++ b/NetSSL_OpenSSL/src/Session.cpp @@ -12,13 +12,8 @@ // -#if defined(__APPLE__) -// Some OpenSSL functions are deprecated in OS X 10.7 -#pragma GCC diagnostic ignored "-Wdeprecated-declarations" -#endif - - #include "Poco/Net/Session.h" +#include namespace Poco { @@ -37,4 +32,14 @@ Session::~Session() } +bool Session::isResumable() const +{ +#if OPENSSL_VERSION_NUMBER >= 0x10101000L + return SSL_SESSION_is_resumable(_pSession) == 1; +#else + return false; +#endif +} + + } } // namespace Poco::Net diff --git a/NetSSL_OpenSSL/testsuite/src/TCPServerTest.cpp b/NetSSL_OpenSSL/testsuite/src/TCPServerTest.cpp index 9a2071bf9..1f235405d 100644 --- a/NetSSL_OpenSSL/testsuite/src/TCPServerTest.cpp +++ b/NetSSL_OpenSSL/testsuite/src/TCPServerTest.cpp @@ -370,15 +370,15 @@ void TCPServerTest::testReuseSession() ss1.useSession(pSession); ss1.connect(sa); - assertTrue (ss1.sessionWasReused()); - assertTrue (ss1.currentSession() == pSession); ss1.sendBytes(data.data(), (int) data.size()); n = ss1.receiveBytes(buffer, sizeof(buffer)); + assertTrue (ss1.sessionWasReused()); assertTrue (n > 0); assertTrue (std::string(buffer, n) == data); assertTrue (srv.currentConnections() == 1); assertTrue (srv.queuedConnections() == 0); assertTrue (srv.totalConnections() == 2); + pSession = ss1.currentSession(); ss1.close(); Thread::sleep(300); assertTrue (srv.currentConnections() == 0); @@ -388,10 +388,9 @@ void TCPServerTest::testReuseSession() ss1.useSession(pSession); ss1.connect(sa); - assertTrue (!ss1.sessionWasReused()); - assertTrue (ss1.currentSession() != pSession); ss1.sendBytes(data.data(), (int) data.size()); n = ss1.receiveBytes(buffer, sizeof(buffer)); + assertTrue (!ss1.sessionWasReused()); assertTrue (n > 0); assertTrue (std::string(buffer, n) == data); assertTrue (srv.currentConnections() == 1); From 0a4f64c8d2609c2a350f95508bd27080a35c2772 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Tue, 6 Jun 2023 13:12:35 +0200 Subject: [PATCH 047/395] #3876, also for SystemConfiguration --- Util/src/SystemConfiguration.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Util/src/SystemConfiguration.cpp b/Util/src/SystemConfiguration.cpp index 352eb5437..8d10b4600 100644 --- a/Util/src/SystemConfiguration.cpp +++ b/Util/src/SystemConfiguration.cpp @@ -94,7 +94,7 @@ bool SystemConfiguration::getRaw(const std::string& key, std::string& value) con Poco::Environment::NodeId id; Poco::Environment::nodeId(id); char result[13]; - std::sprintf(result, "%02x%02x%02x%02x%02x%02x", + std::snprintf(result, sizeof(result), "%02x%02x%02x%02x%02x%02x", id[0], id[1], id[2], From c6fd0db4b69e945dc77f60e8540b1f9534d97501 Mon Sep 17 00:00:00 2001 From: Alexander Kernozhitsky Date: Sat, 10 Jun 2023 06:05:19 +0300 Subject: [PATCH 048/395] Fix thread counter leak (#3992) Cherry-picked from https://github.com/ClickHouse/poco/pull/28, see the mentioned PR for more details. Co-authored-by: alexey-milovidov --- Net/include/Poco/Net/TCPServerDispatcher.h | 24 --------------- Net/src/TCPServerDispatcher.cpp | 36 ++++++++++++---------- 2 files changed, 19 insertions(+), 41 deletions(-) diff --git a/Net/include/Poco/Net/TCPServerDispatcher.h b/Net/include/Poco/Net/TCPServerDispatcher.h index 8070b2973..9965e1ace 100644 --- a/Net/include/Poco/Net/TCPServerDispatcher.h +++ b/Net/include/Poco/Net/TCPServerDispatcher.h @@ -101,30 +101,6 @@ private: TCPServerDispatcher(const TCPServerDispatcher&); TCPServerDispatcher& operator = (const TCPServerDispatcher&); - class ThreadCountWatcher - { - public: - ThreadCountWatcher(TCPServerDispatcher* pDisp) : _pDisp(pDisp) - { - } - - ~ThreadCountWatcher() - { - FastMutex::ScopedLock lock(_pDisp->_mutex); - if (_pDisp->_currentThreads > 1 && _pDisp->_queue.empty()) - { - --_pDisp->_currentThreads; - } - } - - private: - ThreadCountWatcher(); - ThreadCountWatcher(const ThreadCountWatcher&); - ThreadCountWatcher& operator=(const ThreadCountWatcher&); - - TCPServerDispatcher* _pDisp; - }; - std::atomic _rc; TCPServerParams::Ptr _pParams; std::atomic _currentThreads; diff --git a/Net/src/TCPServerDispatcher.cpp b/Net/src/TCPServerDispatcher.cpp index efb8b2a31..2d974ae93 100644 --- a/Net/src/TCPServerDispatcher.cpp +++ b/Net/src/TCPServerDispatcher.cpp @@ -103,29 +103,31 @@ void TCPServerDispatcher::run() for (;;) { + try { - ThreadCountWatcher tcw(this); - try + AutoPtr pNf = _queue.waitDequeueNotification(idleTime); + if (pNf) { - AutoPtr pNf = _queue.waitDequeueNotification(idleTime); - if (pNf) + TCPConnectionNotification* pCNf = dynamic_cast(pNf.get()); + if (pCNf) { - TCPConnectionNotification* pCNf = dynamic_cast(pNf.get()); - if (pCNf) - { - std::unique_ptr pConnection(_pConnectionFactory->createConnection(pCNf->socket())); - poco_check_ptr(pConnection.get()); - beginConnection(); - pConnection->start(); - endConnection(); - } + std::unique_ptr pConnection(_pConnectionFactory->createConnection(pCNf->socket())); + poco_check_ptr(pConnection.get()); + beginConnection(); + pConnection->start(); + endConnection(); } } - catch (Poco::Exception &exc) { ErrorHandler::handle(exc); } - catch (std::exception &exc) { ErrorHandler::handle(exc); } - catch (...) { ErrorHandler::handle(); } } - if (_stopped || (_currentThreads > 1 && _queue.empty())) break; + catch (Poco::Exception &exc) { ErrorHandler::handle(exc); } + catch (std::exception &exc) { ErrorHandler::handle(exc); } + catch (...) { ErrorHandler::handle(); } + FastMutex::ScopedLock lock(_mutex); + if (_stopped || (_currentThreads > 1 && _queue.empty())) + { + --_currentThreads; + break; + } } } From b391d8650268a3a1510cb9c693f6dc0a2b3739ba Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Sun, 11 Jun 2023 01:13:01 +0200 Subject: [PATCH 049/395] switching to 64 bit arch for simulator as well (#3009) --- build/config/iPhoneSimulator | 2 +- build/config/iPhoneSimulator-clang | 2 +- build/config/iPhoneSimulator-clang-libc++ | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build/config/iPhoneSimulator b/build/config/iPhoneSimulator index 6b6ea491c..d03e78f24 100644 --- a/build/config/iPhoneSimulator +++ b/build/config/iPhoneSimulator @@ -5,7 +5,7 @@ # IPHONE_SDK = iPhoneSimulator -POCO_TARGET_OSARCH = i686 +POCO_TARGET_OSARCH = x86_64 OSFLAGS = -arch $(POCO_TARGET_OSARCH) -isysroot $(IPHONE_SDK_BASE) -miphoneos-version-min=$(IPHONE_SDK_VERSION_MIN) include $(POCO_BASE)/build/config/iPhone diff --git a/build/config/iPhoneSimulator-clang b/build/config/iPhoneSimulator-clang index 26cc36906..758768e3a 100644 --- a/build/config/iPhoneSimulator-clang +++ b/build/config/iPhoneSimulator-clang @@ -5,7 +5,7 @@ # IPHONE_SDK = iPhoneSimulator -POCO_TARGET_OSARCH = i686 +POCO_TARGET_OSARCH = x86_64 OSFLAGS = -arch $(POCO_TARGET_OSARCH) -isysroot $(IPHONE_SDK_BASE) -miphoneos-version-min=$(IPHONE_SDK_VERSION_MIN) include $(POCO_BASE)/build/config/iPhone-clang diff --git a/build/config/iPhoneSimulator-clang-libc++ b/build/config/iPhoneSimulator-clang-libc++ index 82e8db8cd..8d1d99970 100644 --- a/build/config/iPhoneSimulator-clang-libc++ +++ b/build/config/iPhoneSimulator-clang-libc++ @@ -5,7 +5,7 @@ # IPHONE_SDK = iPhoneSimulator -POCO_TARGET_OSARCH = i686 +POCO_TARGET_OSARCH = x86_64 OSFLAGS = -arch $(POCO_TARGET_OSARCH) -isysroot $(IPHONE_SDK_BASE) -miphoneos-version-min=$(IPHONE_SDK_VERSION_MIN) include $(POCO_BASE)/build/config/iPhone-clang-libc++ From a00bfbe89fccabbe3606b31c0a1c7edd3da14e2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sun, 11 Jun 2023 09:59:49 +0200 Subject: [PATCH 050/395] #4057: ODBC: SQL Anywhere Support (fix) --- Data/ODBC/src/Binder.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Data/ODBC/src/Binder.cpp b/Data/ODBC/src/Binder.cpp index 9908d3c30..9ac70c081 100644 --- a/Data/ODBC/src/Binder.cpp +++ b/Data/ODBC/src/Binder.cpp @@ -518,7 +518,7 @@ void Binder::getColSizeAndPrecision(std::size_t pos, { found = _pTypeInfo->tryGetInfo(cDataType, "COLUMN_SIZE", tmp); if (found) colSize = tmp; - if (actualSize > colSize) + if (found && actualSize > colSize) { throw LengthExceededException(Poco::format("Error binding column %z size=%z, max size=%ld)", pos, actualSize, static_cast(colSize))); From 922fb3978777ad10bdccdb1796de8aff7a5d6dca Mon Sep 17 00:00:00 2001 From: David Roman Date: Thu, 8 Jun 2023 15:56:18 +0200 Subject: [PATCH 051/395] rename arc -> poco_arc Fix #3349 --- ActiveRecord/Compiler/CMakeLists.txt | 2 +- ActiveRecord/Compiler/Compiler.progen | 2 +- ActiveRecord/Compiler/Makefile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ActiveRecord/Compiler/CMakeLists.txt b/ActiveRecord/Compiler/CMakeLists.txt index 40a8b23a6..db14efd63 100644 --- a/ActiveRecord/Compiler/CMakeLists.txt +++ b/ActiveRecord/Compiler/CMakeLists.txt @@ -11,7 +11,7 @@ endif() add_executable(ActiveRecordCompiler ${SRCS}) set_target_properties(ActiveRecordCompiler PROPERTIES - OUTPUT_NAME arc + OUTPUT_NAME poco-arc ) target_link_libraries(ActiveRecordCompiler PUBLIC Poco::Foundation Poco::Util) diff --git a/ActiveRecord/Compiler/Compiler.progen b/ActiveRecord/Compiler/Compiler.progen index 624f293a6..112585e00 100644 --- a/ActiveRecord/Compiler/Compiler.progen +++ b/ActiveRecord/Compiler/Compiler.progen @@ -1,6 +1,6 @@ vc.project.guid = 84DD1CB5-4735-478A-B48E-5E4858F0E831 vc.project.name = Compiler -vc.project.target = arc +vc.project.target = poco-arc vc.project.type = executable vc.project.pocobase = ..\\.. vc.project.outdir = ${vc.project.pocobase} diff --git a/ActiveRecord/Compiler/Makefile b/ActiveRecord/Compiler/Makefile index 1c083ea11..714bb9f31 100644 --- a/ActiveRecord/Compiler/Makefile +++ b/ActiveRecord/Compiler/Makefile @@ -8,7 +8,7 @@ include $(POCO_BASE)/build/rules/global objects = Parser CodeGenerator HeaderGenerator ImplGenerator Compiler -target = arc +target = poco-arc target_libs = PocoUtil PocoJSON PocoXML PocoFoundation include $(POCO_BASE)/build/rules/exec From ade5f8397386175039e150a1ab868c2945e840a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 12 Jun 2023 17:42:57 +0200 Subject: [PATCH 052/395] recreated project files --- ActiveRecord/Compiler/Compiler_vs140.vcxproj | 64 ++++++------- .../Compiler/Compiler_vs140.vcxproj.filters | 4 +- ActiveRecord/Compiler/Compiler_vs150.vcxproj | 64 ++++++------- .../Compiler/Compiler_vs150.vcxproj.filters | 4 +- ActiveRecord/Compiler/Compiler_vs160.vcxproj | 64 ++++++------- .../Compiler/Compiler_vs160.vcxproj.filters | 4 +- ActiveRecord/Compiler/Compiler_vs170.vcxproj | 95 +++++++++---------- .../Compiler/Compiler_vs170.vcxproj.filters | 4 +- 8 files changed, 151 insertions(+), 152 deletions(-) diff --git a/ActiveRecord/Compiler/Compiler_vs140.vcxproj b/ActiveRecord/Compiler/Compiler_vs140.vcxproj index cf1182914..d136092fb 100644 --- a/ActiveRecord/Compiler/Compiler_vs140.vcxproj +++ b/ActiveRecord/Compiler/Compiler_vs140.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -157,19 +157,19 @@ - <_ProjectFileVersion>14.0.25420.1 - arcd - arcd - arcd - arc - arc - arc - arcd - arcd - arcd - arc - arc - arc + <_ProjectFileVersion>16.0.33423.256 + poco-arcd + poco-arcd + poco-arcd + poco-arc + poco-arc + poco-arc + poco-arcd + poco-arcd + poco-arcd + poco-arc + poco-arc + poco-arc bin\ @@ -250,11 +250,11 @@ true - bin\arcd.exe + bin\poco-arcd.exe ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\arcd.pdb + bin\poco-arcd.pdb Console MachineX86 @@ -281,7 +281,7 @@ true - bin\arc.exe + bin\poco-arc.exe ..\..\lib;%(AdditionalLibraryDirectories) false Console @@ -310,11 +310,11 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\arcd.exe + bin\static_mt\poco-arcd.exe ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\arcd.pdb + bin\static_mt\poco-arcd.pdb Console MachineX86 @@ -342,7 +342,7 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\arc.exe + bin\static_mt\poco-arc.exe ..\..\lib;%(AdditionalLibraryDirectories) false Console @@ -371,11 +371,11 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\arcd.exe + bin\static_md\poco-arcd.exe ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\arcd.pdb + bin\static_md\poco-arcd.pdb Console MachineX86 @@ -403,7 +403,7 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\arc.exe + bin\static_md\poco-arc.exe ..\..\lib;%(AdditionalLibraryDirectories) false Console @@ -431,11 +431,11 @@ true - bin64\arcd.exe + bin64\poco-arcd.exe ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\arcd.pdb + bin64\poco-arcd.pdb Console MachineX64 @@ -462,7 +462,7 @@ true - bin64\arc.exe + bin64\poco-arc.exe ..\..\lib64;%(AdditionalLibraryDirectories) false Console @@ -491,11 +491,11 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\arcd.exe + bin64\static_mt\poco-arcd.exe ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\arcd.pdb + bin64\static_mt\poco-arcd.pdb Console MachineX64 @@ -523,7 +523,7 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\arc.exe + bin64\static_mt\poco-arc.exe ..\..\lib64;%(AdditionalLibraryDirectories) false Console @@ -552,11 +552,11 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\arcd.exe + bin64\static_md\poco-arcd.exe ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\arcd.pdb + bin64\static_md\poco-arcd.pdb Console MachineX64 @@ -584,7 +584,7 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\arc.exe + bin64\static_md\poco-arc.exe ..\..\lib64;%(AdditionalLibraryDirectories) false Console diff --git a/ActiveRecord/Compiler/Compiler_vs140.vcxproj.filters b/ActiveRecord/Compiler/Compiler_vs140.vcxproj.filters index bbae1563b..63101001d 100644 --- a/ActiveRecord/Compiler/Compiler_vs140.vcxproj.filters +++ b/ActiveRecord/Compiler/Compiler_vs140.vcxproj.filters @@ -2,10 +2,10 @@ - {7c28ab07-1eed-44dd-94e3-280a7c8c0ff1} + {85e35b21-0c66-4cff-acd5-ff2022495503} - {cda11fd7-ac58-4553-b1d7-8b46eb398bc9} + {7873f73f-ccd9-4e23-b14b-89fb407d3116} diff --git a/ActiveRecord/Compiler/Compiler_vs150.vcxproj b/ActiveRecord/Compiler/Compiler_vs150.vcxproj index f751e50d7..260c2630d 100644 --- a/ActiveRecord/Compiler/Compiler_vs150.vcxproj +++ b/ActiveRecord/Compiler/Compiler_vs150.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -157,19 +157,19 @@ - <_ProjectFileVersion>14.0.25420.1 - arcd - arcd - arcd - arc - arc - arc - arcd - arcd - arcd - arc - arc - arc + <_ProjectFileVersion>16.0.33423.256 + poco-arcd + poco-arcd + poco-arcd + poco-arc + poco-arc + poco-arc + poco-arcd + poco-arcd + poco-arcd + poco-arc + poco-arc + poco-arc bin\ @@ -250,11 +250,11 @@ true - bin\arcd.exe + bin\poco-arcd.exe ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\arcd.pdb + bin\poco-arcd.pdb Console MachineX86 @@ -281,7 +281,7 @@ true - bin\arc.exe + bin\poco-arc.exe ..\..\lib;%(AdditionalLibraryDirectories) false Console @@ -310,11 +310,11 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\arcd.exe + bin\static_mt\poco-arcd.exe ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\arcd.pdb + bin\static_mt\poco-arcd.pdb Console MachineX86 @@ -342,7 +342,7 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\arc.exe + bin\static_mt\poco-arc.exe ..\..\lib;%(AdditionalLibraryDirectories) false Console @@ -371,11 +371,11 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\arcd.exe + bin\static_md\poco-arcd.exe ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\arcd.pdb + bin\static_md\poco-arcd.pdb Console MachineX86 @@ -403,7 +403,7 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\arc.exe + bin\static_md\poco-arc.exe ..\..\lib;%(AdditionalLibraryDirectories) false Console @@ -431,11 +431,11 @@ true - bin64\arcd.exe + bin64\poco-arcd.exe ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\arcd.pdb + bin64\poco-arcd.pdb Console MachineX64 @@ -462,7 +462,7 @@ true - bin64\arc.exe + bin64\poco-arc.exe ..\..\lib64;%(AdditionalLibraryDirectories) false Console @@ -491,11 +491,11 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\arcd.exe + bin64\static_mt\poco-arcd.exe ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\arcd.pdb + bin64\static_mt\poco-arcd.pdb Console MachineX64 @@ -523,7 +523,7 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\arc.exe + bin64\static_mt\poco-arc.exe ..\..\lib64;%(AdditionalLibraryDirectories) false Console @@ -552,11 +552,11 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\arcd.exe + bin64\static_md\poco-arcd.exe ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\arcd.pdb + bin64\static_md\poco-arcd.pdb Console MachineX64 @@ -584,7 +584,7 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\arc.exe + bin64\static_md\poco-arc.exe ..\..\lib64;%(AdditionalLibraryDirectories) false Console diff --git a/ActiveRecord/Compiler/Compiler_vs150.vcxproj.filters b/ActiveRecord/Compiler/Compiler_vs150.vcxproj.filters index a0c13e868..c912eefe5 100644 --- a/ActiveRecord/Compiler/Compiler_vs150.vcxproj.filters +++ b/ActiveRecord/Compiler/Compiler_vs150.vcxproj.filters @@ -2,10 +2,10 @@ - {fb34d3ce-6dad-44cb-a80c-80a89f4447b6} + {987b75b8-6246-42f9-b155-cc32a6201bb4} - {57a4cc5c-f4ed-40e2-863f-07a942b5deca} + {09eeb624-d912-42fb-ba95-65592c67594f} diff --git a/ActiveRecord/Compiler/Compiler_vs160.vcxproj b/ActiveRecord/Compiler/Compiler_vs160.vcxproj index ba2895cdd..ed4c5cad5 100644 --- a/ActiveRecord/Compiler/Compiler_vs160.vcxproj +++ b/ActiveRecord/Compiler/Compiler_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -157,19 +157,19 @@ - <_ProjectFileVersion>14.0.25420.1 - arcd - arcd - arcd - arc - arc - arc - arcd - arcd - arcd - arc - arc - arc + <_ProjectFileVersion>16.0.33423.256 + poco-arcd + poco-arcd + poco-arcd + poco-arc + poco-arc + poco-arc + poco-arcd + poco-arcd + poco-arcd + poco-arc + poco-arc + poco-arc bin\ @@ -250,11 +250,11 @@ true - bin\arcd.exe + bin\poco-arcd.exe ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\arcd.pdb + bin\poco-arcd.pdb Console MachineX86 @@ -281,7 +281,7 @@ true - bin\arc.exe + bin\poco-arc.exe ..\..\lib;%(AdditionalLibraryDirectories) false Console @@ -310,11 +310,11 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\arcd.exe + bin\static_mt\poco-arcd.exe ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\arcd.pdb + bin\static_mt\poco-arcd.pdb Console MachineX86 @@ -342,7 +342,7 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\arc.exe + bin\static_mt\poco-arc.exe ..\..\lib;%(AdditionalLibraryDirectories) false Console @@ -371,11 +371,11 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\arcd.exe + bin\static_md\poco-arcd.exe ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\arcd.pdb + bin\static_md\poco-arcd.pdb Console MachineX86 @@ -403,7 +403,7 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\arc.exe + bin\static_md\poco-arc.exe ..\..\lib;%(AdditionalLibraryDirectories) false Console @@ -431,11 +431,11 @@ true - bin64\arcd.exe + bin64\poco-arcd.exe ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\arcd.pdb + bin64\poco-arcd.pdb Console MachineX64 @@ -462,7 +462,7 @@ true - bin64\arc.exe + bin64\poco-arc.exe ..\..\lib64;%(AdditionalLibraryDirectories) false Console @@ -491,11 +491,11 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\arcd.exe + bin64\static_mt\poco-arcd.exe ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\arcd.pdb + bin64\static_mt\poco-arcd.pdb Console MachineX64 @@ -523,7 +523,7 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\arc.exe + bin64\static_mt\poco-arc.exe ..\..\lib64;%(AdditionalLibraryDirectories) false Console @@ -552,11 +552,11 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\arcd.exe + bin64\static_md\poco-arcd.exe ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\arcd.pdb + bin64\static_md\poco-arcd.pdb Console MachineX64 @@ -584,7 +584,7 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\arc.exe + bin64\static_md\poco-arc.exe ..\..\lib64;%(AdditionalLibraryDirectories) false Console diff --git a/ActiveRecord/Compiler/Compiler_vs160.vcxproj.filters b/ActiveRecord/Compiler/Compiler_vs160.vcxproj.filters index 9e3336cdb..efd400830 100644 --- a/ActiveRecord/Compiler/Compiler_vs160.vcxproj.filters +++ b/ActiveRecord/Compiler/Compiler_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {cd9adea7-e228-4461-b943-a2df8ee6ccbe} + {7d3940f9-2bc3-4ee8-9b7f-9be99cfc6fe0} - {b7bff09e-f386-4d17-a458-b22fd54aa6d5} + {132066fc-e0fc-494b-9d73-30f03c1b4912} diff --git a/ActiveRecord/Compiler/Compiler_vs170.vcxproj b/ActiveRecord/Compiler/Compiler_vs170.vcxproj index 02a5053ac..eee21df90 100644 --- a/ActiveRecord/Compiler/Compiler_vs170.vcxproj +++ b/ActiveRecord/Compiler/Compiler_vs170.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -75,7 +75,6 @@ - 17.0 Compiler {84DD1CB5-4735-478A-B48E-5E4858F0E831} Compiler @@ -230,25 +229,25 @@ - <_ProjectFileVersion>17.0.32505.173 - arcd - arcd - arcd - arc - arc - arc - arcd - arcd - arcd - arc - arc - arc - arcd - arcd - arcd - arc - arc - arc + <_ProjectFileVersion>16.0.33423.256 + poco-arcd + poco-arcd + poco-arcd + poco-arc + poco-arc + poco-arc + poco-arcd + poco-arcd + poco-arcd + poco-arc + poco-arc + poco-arc + poco-arcd + poco-arcd + poco-arcd + poco-arc + poco-arc + poco-arc binA64\ @@ -359,11 +358,11 @@ true - binA64\arcd.exe + binA64\poco-arcd.exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\arcd.pdb + binA64\poco-arcd.pdb Console MachineARM64 @@ -390,7 +389,7 @@ true - binA64\arc.exe + binA64\poco-arc.exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -419,11 +418,11 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - binA64\static_mt\arcd.exe + binA64\static_mt\poco-arcd.exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\arcd.pdb + binA64\static_mt\poco-arcd.pdb Console MachineARM64 @@ -451,7 +450,7 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - binA64\static_mt\arc.exe + binA64\static_mt\poco-arc.exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -480,11 +479,11 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - binA64\static_md\arcd.exe + binA64\static_md\poco-arcd.exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\arcd.pdb + binA64\static_md\poco-arcd.pdb Console MachineARM64 @@ -512,7 +511,7 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - binA64\static_md\arc.exe + binA64\static_md\poco-arc.exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -540,11 +539,11 @@ true - bin\arcd.exe + bin\poco-arcd.exe ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\arcd.pdb + bin\poco-arcd.pdb Console MachineX86 @@ -571,7 +570,7 @@ true - bin\arc.exe + bin\poco-arc.exe ..\..\lib;%(AdditionalLibraryDirectories) false Console @@ -600,11 +599,11 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\arcd.exe + bin\static_mt\poco-arcd.exe ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\arcd.pdb + bin\static_mt\poco-arcd.pdb Console MachineX86 @@ -632,7 +631,7 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\arc.exe + bin\static_mt\poco-arc.exe ..\..\lib;%(AdditionalLibraryDirectories) false Console @@ -661,11 +660,11 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\arcd.exe + bin\static_md\poco-arcd.exe ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\arcd.pdb + bin\static_md\poco-arcd.pdb Console MachineX86 @@ -693,7 +692,7 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\arc.exe + bin\static_md\poco-arc.exe ..\..\lib;%(AdditionalLibraryDirectories) false Console @@ -721,11 +720,11 @@ true - bin64\arcd.exe + bin64\poco-arcd.exe ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\arcd.pdb + bin64\poco-arcd.pdb Console MachineX64 @@ -752,7 +751,7 @@ true - bin64\arc.exe + bin64\poco-arc.exe ..\..\lib64;%(AdditionalLibraryDirectories) false Console @@ -781,11 +780,11 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\arcd.exe + bin64\static_mt\poco-arcd.exe ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\arcd.pdb + bin64\static_mt\poco-arcd.pdb Console MachineX64 @@ -813,7 +812,7 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\arc.exe + bin64\static_mt\poco-arc.exe ..\..\lib64;%(AdditionalLibraryDirectories) false Console @@ -842,11 +841,11 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\arcd.exe + bin64\static_md\poco-arcd.exe ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\arcd.pdb + bin64\static_md\poco-arcd.pdb Console MachineX64 @@ -874,7 +873,7 @@ iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\arc.exe + bin64\static_md\poco-arc.exe ..\..\lib64;%(AdditionalLibraryDirectories) false Console diff --git a/ActiveRecord/Compiler/Compiler_vs170.vcxproj.filters b/ActiveRecord/Compiler/Compiler_vs170.vcxproj.filters index 859cec6e5..26f02379a 100644 --- a/ActiveRecord/Compiler/Compiler_vs170.vcxproj.filters +++ b/ActiveRecord/Compiler/Compiler_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {c74cd999-577b-420f-80c1-07d02f70b342} + {8696c7e6-f237-4b80-85b6-deff68bb7313} - {158349db-4632-4610-8c5d-dc54c381eaac} + {809f78f0-73d1-44df-992c-7aa5a1b3392b} From ead93baadf0b632d0563d66cc5e0c926b151816f Mon Sep 17 00:00:00 2001 From: micheleselea Date: Wed, 21 Jun 2023 05:46:43 +0200 Subject: [PATCH 053/395] EVPPKey constructor for modulus/exponent (#4025) * Create EVPPkey from modulus and exponent Add constructor for creating EVPPkey (RSA) using modulus and exponent * Add EVPPKey constructor for modulus/exponent * Add testEVPKeyByModulus * fix test for mudulus * Update EVPTest.cpp --- Crypto/include/Poco/Crypto/EVPPKey.h | 8 ++++- Crypto/src/EVPPKey.cpp | 53 ++++++++++++++++++++++++++++ Crypto/testsuite/src/EVPTest.cpp | 37 +++++++++++++++++++ Crypto/testsuite/src/EVPTest.h | 3 +- 4 files changed, 99 insertions(+), 2 deletions(-) diff --git a/Crypto/include/Poco/Crypto/EVPPKey.h b/Crypto/include/Poco/Crypto/EVPPKey.h index 1bc0356f9..a3291d1bd 100644 --- a/Crypto/include/Poco/Crypto/EVPPKey.h +++ b/Crypto/include/Poco/Crypto/EVPPKey.h @@ -85,6 +85,10 @@ public: #endif // OPENSSL_VERSION_NUMBER >= 0x10000000L +#if OPENSSL_VERSION_NUMBER >= 0x30000000L + explicit EVPPKey(const std::vector* public_key, const std::vector* private_key, unsigned long exponent, int type); +#endif + explicit EVPPKey(EVP_PKEY* pEVPPKey); /// Constructs EVPPKey from EVP_PKEY pointer. /// The content behind the supplied pointer is internally duplicated. @@ -173,7 +177,9 @@ public: private: EVPPKey(); - +#if OPENSSL_VERSION_NUMBER >= 0x30000000L + void SetKeyFromParameters(OSSL_PARAM* parameters); +#endif static int type(const EVP_PKEY* pEVPPKey); void checkType(); void newECKey(const char* group); diff --git a/Crypto/src/EVPPKey.cpp b/Crypto/src/EVPPKey.cpp index 2964bf0d2..a906ab1e5 100644 --- a/Crypto/src/EVPPKey.cpp +++ b/Crypto/src/EVPPKey.cpp @@ -21,6 +21,9 @@ #include "Poco/NumberFormatter.h" #include +#if OPENSSL_VERSION_NUMBER >= 0x30000000L +#include +#endif namespace Poco { namespace Crypto { @@ -66,7 +69,57 @@ EVPPKey::EVPPKey(const PKCS12Container& cont): EVPPKey(cont.getKey()) checkType(); } +#if OPENSSL_VERSION_NUMBER >= 0x30000000L +void PushBuildParamBignum(OSSL_PARAM_BLD* param_bld, const char* key, const std::vector& bytes) { + BIGNUM* bignum = BN_bin2bn(bytes.data(), (int)bytes.size(), nullptr); + OSSL_PARAM_BLD_push_BN(param_bld, key, bignum); +} +OSSL_PARAM* GetKeyParameters(const std::vector* public_key, const std::vector* private_key) { + auto param_bld = OSSL_PARAM_BLD_new(); + if (public_key != nullptr) { + PushBuildParamBignum(param_bld, "n", *public_key); + } + + if (private_key != nullptr) { + PushBuildParamBignum(param_bld, "d", *private_key); + } + + // default rsa exponent + OSSL_PARAM_BLD_push_ulong(param_bld, "e", RSA_F4); + + auto parameters = OSSL_PARAM_BLD_to_param(param_bld); + OSSL_PARAM_BLD_free(param_bld); + + return parameters; +} +void EVPPKey::SetKeyFromParameters(OSSL_PARAM* parameters) { + auto ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_RSA, nullptr); + if (EVP_PKEY_fromdata_init(ctx) <= 0) { + OSSL_PARAM_free(parameters); + throw OpenSSLException("EVPPKey cannot init create key"); + } + + if (_pEVPPKey != 0) EVP_PKEY_free(_pEVPPKey); + if (EVP_PKEY_fromdata(ctx, &_pEVPPKey, EVP_PKEY_KEYPAIR, parameters) <= 0) { + OSSL_PARAM_free(parameters); + throw OpenSSLException("EVPPKey cannot create key"); + } +} + +EVPPKey::EVPPKey(const std::vector* public_key, const std::vector* private_key, unsigned long exponent, int type) : _pEVPPKey(0) +{ + if ((EVP_PKEY_RSA != type) || (RSA_F4 != exponent)) { + std::string msg = Poco::format("EVPPKey(%d):Invalid format\n", type); + throw OpenSSLException(getError(msg)); + } + + OSSL_PARAM* parameters = GetKeyParameters(public_key, private_key); + SetKeyFromParameters(parameters); + OSSL_PARAM_free(parameters); +} +#endif + #if OPENSSL_VERSION_NUMBER >= 0x10000000L EVPPKey::EVPPKey(int type, int param): _pEVPPKey(0) diff --git a/Crypto/testsuite/src/EVPTest.cpp b/Crypto/testsuite/src/EVPTest.cpp index bebf963da..7f8b9a960 100644 --- a/Crypto/testsuite/src/EVPTest.cpp +++ b/Crypto/testsuite/src/EVPTest.cpp @@ -17,6 +17,9 @@ #include "Poco/Crypto/Cipher.h" #include "Poco/Crypto/X509Certificate.h" #include "Poco/TemporaryFile.h" +#include "Poco/Base64Decoder.h" +#include "Poco/Base64Encoder.h" +#include "Poco/MemoryStream.h" #include "Poco/StreamCopier.h" #include "CppUnit/TestCaller.h" #include "CppUnit/TestSuite.h" @@ -682,6 +685,39 @@ void EVPTest::testECEVPKeyByLength() } } +void EVPTest::testEVPKeyByModulus() +{ + std::string e = "AQAB"; + std::string n = "ylJgMkU_bDwCLzMlo47igdZ-AC8oUbtGJUOUHnuJdjflpim7FOxw0zXYf9m0tzND0Bt1y7MPyVtf-3rwInvdgi65CZEJ3kt5PE0g6trPbvyW6hJcVeOsQvSErj33mY6RsjndLhNE-RY36G8o603au64lTOYSb9HjzzRFo4F_faEgQ02jpEYkLIWwf7PboExDbd6NGMV0uume8YA6eB3z5BwfMMHyRZA0FcIzj6F0V-hDqBaJkWegpJsukgpfO7JDKaU5rlor7j6CdbfLaWorYTCUH3F-bXZ1ojBe0wHRGEgEZBNa46A3clgNohQuuNzf4K12NFGnEl_TIFRcLm6M0Q"; + try + { + unsigned long exponent = 0; + if ((e == "AQAB") || (e == "AAEAAQ")) + { + exponent = RSA_F4; //Poco::Crypto::RSAKey::Exponent::EXP_LARGE + } + else + { + std::cerr << "invalid exponent" << std::endl; + throw; + } + std::string nBinary; + std::ostringstream ofs; + Poco::MemoryInputStream cIn(n.data(), n.length()); + Poco::Base64Decoder decoder(cIn, Poco::Base64EncodingOptions::BASE64_URL_ENCODING | Poco::Base64EncodingOptions::BASE64_NO_PADDING); + Poco::StreamCopier::copyStream(decoder, ofs); + nBinary=ofs.str(); + std::vector public_key(nBinary.begin(), nBinary.end()); + Poco::Crypto::EVPPKey cKey(&public_key, nullptr, exponent, EVP_PKEY_RSA); + Poco::SharedPtr pKey = new Poco::Crypto::RSAKey(cKey); + } + catch(Poco::Exception& ex) + { + std::cerr << ex.displayText() << std::endl; + throw; + } +} + #endif // OPENSSL_VERSION_NUMBER >= 0x30000000 #endif // OPENSSL_VERSION_NUMBER >= 0x10000000L @@ -714,6 +750,7 @@ CppUnit::Test* EVPTest::suite() CppUnit_addTest(pSuite, EVPTest, testRSAEVPKeyByLength); #if OPENSSL_VERSION_NUMBER >= 0x30000000L CppUnit_addTest(pSuite, EVPTest, testECEVPKeyByLength); + CppUnit_addTest(pSuite, EVPTest, testEVPKeyByModulus); #endif // OPENSSL_VERSION_NUMBER >= 0x30000000 #endif // OPENSSL_VERSION_NUMBER >= 0x10000000L diff --git a/Crypto/testsuite/src/EVPTest.h b/Crypto/testsuite/src/EVPTest.h index 3cd086dd3..0a7966cb7 100644 --- a/Crypto/testsuite/src/EVPTest.h +++ b/Crypto/testsuite/src/EVPTest.h @@ -41,6 +41,7 @@ public: void testRSAEVPKeyByLength(); #if OPENSSL_VERSION_NUMBER >= 0x30000000L void testECEVPKeyByLength(); + void testEVPKeyByModulus(); #endif // OPENSSL_VERSION_NUMBER >= 0x30000000L #endif // OPENSSL_VERSION_NUMBER >= 0x10000000L @@ -53,4 +54,4 @@ private: }; -#endif // EVPTest_INCLUDED \ No newline at end of file +#endif // EVPTest_INCLUDED From f6e2524db62292c7c4b53c4559f81612e15c9a42 Mon Sep 17 00:00:00 2001 From: Fabio Oberhofer Date: Mon, 8 May 2023 15:20:19 +0200 Subject: [PATCH 054/395] CppParser: fix for std::function parameter The parameter was previously seen as a function because of it's brackets. --- CppParser/src/Symbol.cpp | 23 +++++++++++++++++++++++ CppParser/testsuite/src/CppParserTest.cpp | 16 ++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/CppParser/src/Symbol.cpp b/CppParser/src/Symbol.cpp index ad2f94f3b..b55433521 100644 --- a/CppParser/src/Symbol.cpp +++ b/CppParser/src/Symbol.cpp @@ -121,6 +121,29 @@ std::string Symbol::extractName(const std::string& decl) return "operator []"; std::string::size_type pos = decl.find('('); + if (pos != std::string::npos) { + // special case std::function a + // ^ ^^ + // In case the marked patterns are found, + // reset pos to npos to make sure "(" is not seen as the beginning of a function + int bracket = 1; + std::string::size_type i = pos + 1; + while (i < decl.size() && bracket != 0){ + if (decl[i] == '('){ + bracket++; + } else if (decl[i] == ')'){ + bracket--; + } + + i++; + } + + while (i < decl.size() && std::isspace(decl[i])) i++; + if (i < decl.size() && decl[i] == '>') { + pos = std::string::npos; + } + } + // another special case: function pointer if (pos != std::string::npos && pos < decl.size() - 1) { diff --git a/CppParser/testsuite/src/CppParserTest.cpp b/CppParser/testsuite/src/CppParserTest.cpp index 7a38b7166..35ce2d5ec 100644 --- a/CppParser/testsuite/src/CppParserTest.cpp +++ b/CppParser/testsuite/src/CppParserTest.cpp @@ -77,6 +77,22 @@ void CppParserTest::testExtractName() decl = "void func(int arg1, int arg2)"; name = Symbol::extractName(decl); assertTrue (name == "func"); + + decl = "std::function func"; + name = Symbol::extractName(decl); + assertTrue (name == "func"); + + decl = "std::function func"; + name = Symbol::extractName(decl); + assertTrue (name == "func"); + + decl = "std::function(std::vector)> func"; + name = Symbol::extractName(decl); + assertTrue (name == "func"); + + decl = "std::function)> func"; + name = Symbol::extractName(decl); + assertTrue (name == "func"); decl = "const std::vector* var"; name = Symbol::extractName(decl); From 4c1e83b8e88cc00c6ef3e5bec150e5e958e7e82b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 10 Jul 2023 17:02:49 +0200 Subject: [PATCH 055/395] Don't throw if OpenSSL legacy provider is not available. Add OpenSSLInitializer::haveLegacyProvider() to check for legacy provider. --- Crypto/include/Poco/Crypto/OpenSSLInitializer.h | 10 ++++++++++ Crypto/src/OpenSSLInitializer.cpp | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Crypto/include/Poco/Crypto/OpenSSLInitializer.h b/Crypto/include/Poco/Crypto/OpenSSLInitializer.h index c46fd741c..dd716a2f4 100644 --- a/Crypto/include/Poco/Crypto/OpenSSLInitializer.h +++ b/Crypto/include/Poco/Crypto/OpenSSLInitializer.h @@ -69,6 +69,9 @@ public: static void enableFIPSMode(bool enabled); /// Enable or disable FIPS mode. If FIPS is not available, this method doesn't do anything. + static bool haveLegacyProvider(); + /// Returns true if the OpenSSL legacy provider is available, otherwise false. + protected: enum { @@ -110,6 +113,7 @@ inline bool OpenSSLInitializer::isFIPSEnabled() #endif } + #ifdef OPENSSL_FIPS inline void OpenSSLInitializer::enableFIPSMode(bool enabled) { @@ -122,6 +126,12 @@ inline void OpenSSLInitializer::enableFIPSMode(bool /*enabled*/) #endif +inline bool OpenSSLInitializer::haveLegacyProvider() +{ + return _legacyProvider != nullptr; +} + + } } // namespace Poco::Crypto diff --git a/Crypto/src/OpenSSLInitializer.cpp b/Crypto/src/OpenSSLInitializer.cpp index 1d2c92551..0c52a0a3d 100644 --- a/Crypto/src/OpenSSLInitializer.cpp +++ b/Crypto/src/OpenSSLInitializer.cpp @@ -137,7 +137,7 @@ void OpenSSLInitializer::initialize() if (!_legacyProvider) { _legacyProvider = OSSL_PROVIDER_load(NULL, "legacy"); - if (!_legacyProvider) throw CryptoException("Failed to load OpenSSL legacy provider"); + // Note: use haveLegacyProvider() to check if legacy provider has been loaded } #endif } From 64b5a91ca1fa96281dda2a96d5dd1ae0f656a8a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 10 Jul 2023 21:27:24 +0200 Subject: [PATCH 056/395] #4071: PageCompiler: add referrerPolicy to page directive --- PageCompiler/doc/PageCompilerUserGuide.page | 4 ++++ PageCompiler/src/CodeWriter.cpp | 5 +++++ PageCompiler/src/PageCompiler.cpp | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/PageCompiler/doc/PageCompilerUserGuide.page b/PageCompiler/doc/PageCompilerUserGuide.page index bd802e06d..d7b8a0db2 100644 --- a/PageCompiler/doc/PageCompilerUserGuide.page +++ b/PageCompiler/doc/PageCompilerUserGuide.page @@ -273,6 +273,10 @@ header in the request. Allows to specify the value of the HTTP Content-Security-Policy header. +!referrerPolicy + +Allows to specify the value of the HTTP Referrer-Policy header. + !chunked Allows you to specify whether the response is sent using chunked transfer encoding. diff --git a/PageCompiler/src/CodeWriter.cpp b/PageCompiler/src/CodeWriter.cpp index 94c416fdf..330ca1d4d 100644 --- a/PageCompiler/src/CodeWriter.cpp +++ b/PageCompiler/src/CodeWriter.cpp @@ -317,6 +317,7 @@ void CodeWriter::writeResponse(std::ostream& ostr) std::string contentType(_page.get("page.contentType", "text/html")); std::string contentLang(_page.get("page.contentLanguage", "")); std::string contentSecurityPolicy(_page.get("page.contentSecurityPolicy", "")); + std::string referrerPolicy(_page.get("page.referrerPolicy", "")); std::string cacheControl(_page.get("page.cacheControl", "")); bool buffered(_page.getBool("page.buffered", false)); bool chunked(_page.getBool("page.chunked", !buffered)); @@ -339,6 +340,10 @@ void CodeWriter::writeResponse(std::ostream& ostr) { ostr << "\tresponse.set(\"Content-Security-Policy\"s, \"" << contentSecurityPolicy << "\"s);\n"; } + if (!referrerPolicy.empty()) + { + ostr << "\tresponse.set(\"Referrer-Policy\"s, \"" << referrerPolicy << "\"s);\n"; + } if (compressed) { ostr << "\tbool _compressResponse(request.hasToken(\"Accept-Encoding\"s, \"gzip\"s));\n" diff --git a/PageCompiler/src/PageCompiler.cpp b/PageCompiler/src/PageCompiler.cpp index ccb35283b..67d7b57ff 100644 --- a/PageCompiler/src/PageCompiler.cpp +++ b/PageCompiler/src/PageCompiler.cpp @@ -216,7 +216,7 @@ protected: helpFormatter.setHeader( "\n" "The POCO C++ Server Page Compiler.\n" - "Copyright (c) 2008-2022 by Applied Informatics Software Engineering GmbH.\n" + "Copyright (c) 2008-2023 by Applied Informatics Software Engineering GmbH.\n" "All rights reserved.\n\n" "This program compiles web pages containing embedded C++ code " "into a C++ class that can be used with the HTTP server " From 15c66313521306c86841fcaa8d13a68f34f5c6cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 10 Jul 2023 21:28:24 +0200 Subject: [PATCH 057/395] #4078: Upgrade bundled SQLite to 3.42 --- Data/SQLite/src/sqlite3.c | 15563 +++++++++++++++++++++++++----------- Data/SQLite/src/sqlite3.h | 524 +- 2 files changed, 11116 insertions(+), 4971 deletions(-) diff --git a/Data/SQLite/src/sqlite3.c b/Data/SQLite/src/sqlite3.c index 51d5dbd0e..dd3b5c575 100644 --- a/Data/SQLite/src/sqlite3.c +++ b/Data/SQLite/src/sqlite3.c @@ -1,6 +1,6 @@ /****************************************************************************** ** This file is an amalgamation of many separate C source files from SQLite -** version 3.39.4. By combining all the individual C code files into this +** version 3.42.0. By combining all the individual C code files into this ** single large file, the entire code can be compiled as a single translation ** unit. This allows many compilers to do optimizations that would not be ** possible if the files were compiled separately. Performance improvements @@ -123,6 +123,10 @@ #define SQLITE_4_BYTE_ALIGNED_MALLOC #endif /* defined(_MSC_VER) && !defined(_WIN64) */ +#if !defined(HAVE_LOG2) && defined(_MSC_VER) && _MSC_VER<1800 +#define HAVE_LOG2 0 +#endif /* !defined(HAVE_LOG2) && defined(_MSC_VER) && _MSC_VER<1800 */ + #endif /* SQLITE_MSVC_H */ /************** End of msvc.h ************************************************/ @@ -452,9 +456,9 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.39.4" -#define SQLITE_VERSION_NUMBER 3039004 -#define SQLITE_SOURCE_ID "2022-09-29 15:55:41 a29f9949895322123f7c38fbe94c649a9d6e6c9cd0c3b41c96d694552f26b309" +#define SQLITE_VERSION "3.42.0" +#define SQLITE_VERSION_NUMBER 3042000 +#define SQLITE_SOURCE_ID "2023-05-16 12:36:15 831d0fb2836b71c9bc51067c49fee4b8f18047814f2ff22d817d25195cf350b0" /* ** CAPI3REF: Run-Time Library Version Numbers @@ -869,6 +873,7 @@ SQLITE_API int sqlite3_exec( #define SQLITE_CONSTRAINT_DATATYPE (SQLITE_CONSTRAINT |(12<<8)) #define SQLITE_NOTICE_RECOVER_WAL (SQLITE_NOTICE | (1<<8)) #define SQLITE_NOTICE_RECOVER_ROLLBACK (SQLITE_NOTICE | (2<<8)) +#define SQLITE_NOTICE_RBU (SQLITE_NOTICE | (3<<8)) #define SQLITE_WARNING_AUTOINDEX (SQLITE_WARNING | (1<<8)) #define SQLITE_AUTH_USER (SQLITE_AUTH | (1<<8)) #define SQLITE_OK_LOAD_PERMANENTLY (SQLITE_OK | (1<<8)) @@ -976,13 +981,17 @@ SQLITE_API int sqlite3_exec( ** ** SQLite uses one of these integer values as the second ** argument to calls it makes to the xLock() and xUnlock() methods -** of an [sqlite3_io_methods] object. +** of an [sqlite3_io_methods] object. These values are ordered from +** lest restrictive to most restrictive. +** +** The argument to xLock() is always SHARED or higher. The argument to +** xUnlock is either SHARED or NONE. */ -#define SQLITE_LOCK_NONE 0 -#define SQLITE_LOCK_SHARED 1 -#define SQLITE_LOCK_RESERVED 2 -#define SQLITE_LOCK_PENDING 3 -#define SQLITE_LOCK_EXCLUSIVE 4 +#define SQLITE_LOCK_NONE 0 /* xUnlock() only */ +#define SQLITE_LOCK_SHARED 1 /* xLock() or xUnlock() */ +#define SQLITE_LOCK_RESERVED 2 /* xLock() only */ +#define SQLITE_LOCK_PENDING 3 /* xLock() only */ +#define SQLITE_LOCK_EXCLUSIVE 4 /* xLock() only */ /* ** CAPI3REF: Synchronization Type Flags @@ -1060,7 +1069,14 @@ struct sqlite3_file { **
  • [SQLITE_LOCK_PENDING], or **
  • [SQLITE_LOCK_EXCLUSIVE]. ** -** xLock() increases the lock. xUnlock() decreases the lock. +** xLock() upgrades the database file lock. In other words, xLock() moves the +** database file lock in the direction NONE toward EXCLUSIVE. The argument to +** xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never +** SQLITE_LOCK_NONE. If the database file lock is already at or above the +** requested lock, then the call to xLock() is a no-op. +** xUnlock() downgrades the database file lock to either SHARED or NONE. +* If the lock is already at or below the requested lock state, then the call +** to xUnlock() is a no-op. ** The xCheckReservedLock() method checks whether any database connection, ** either in this process or in some other process, is holding a RESERVED, ** PENDING, or EXCLUSIVE lock on the file. It returns true @@ -1165,9 +1181,8 @@ struct sqlite3_io_methods { ** opcode causes the xFileControl method to write the current state of ** the lock (one of [SQLITE_LOCK_NONE], [SQLITE_LOCK_SHARED], ** [SQLITE_LOCK_RESERVED], [SQLITE_LOCK_PENDING], or [SQLITE_LOCK_EXCLUSIVE]) -** into an integer that the pArg argument points to. This capability -** is used during testing and is only available when the SQLITE_TEST -** compile-time option is used. +** into an integer that the pArg argument points to. +** This capability is only available if SQLite is compiled with [SQLITE_DEBUG]. ** **
  • [[SQLITE_FCNTL_SIZE_HINT]] ** The [SQLITE_FCNTL_SIZE_HINT] opcode is used by SQLite to give the VFS @@ -1471,7 +1486,6 @@ struct sqlite3_io_methods { ** in wal mode after the client has finished copying pages from the wal ** file to the database file, but before the *-shm file is updated to ** record the fact that the pages have been checkpointed. -** ** **
  • [[SQLITE_FCNTL_EXTERNAL_READER]] ** The EXPERIMENTAL [SQLITE_FCNTL_EXTERNAL_READER] opcode is used to detect @@ -1484,10 +1498,16 @@ struct sqlite3_io_methods { ** the database is not a wal-mode db, or if there is no such connection in any ** other process. This opcode cannot be used to detect transactions opened ** by clients within the current process, only within other processes. -** ** **
  • [[SQLITE_FCNTL_CKSM_FILE]] -** Used by the cksmvfs VFS module only. +** The [SQLITE_FCNTL_CKSM_FILE] opcode is for use interally by the +** [checksum VFS shim] only. +** +**
  • sqlite3_db_config(db, SQLITE_DBCONFIG_RESET_DATABASE, 0, 0); ** ** Because resetting a database is destructive and irreversible, the -** process requires the use of this obscure API and multiple steps to help -** ensure that it does not happen by accident. +** process requires the use of this obscure API and multiple steps to +** help ensure that it does not happen by accident. Because this +** feature must be capable of resetting corrupt databases, and +** shutting down virtual tables may require access to that corrupt +** storage, the library must abandon any installed virtual tables +** without calling their xDestroy() methods. ** ** [[SQLITE_DBCONFIG_DEFENSIVE]]
    SQLITE_DBCONFIG_DEFENSIVE
    **
    The SQLITE_DBCONFIG_DEFENSIVE option activates or deactivates the @@ -2615,6 +2680,7 @@ struct sqlite3_mem_methods { **
      **
    • The [PRAGMA writable_schema=ON] statement. **
    • The [PRAGMA journal_mode=OFF] statement. +**
    • The [PRAGMA schema_version=N] statement. **
    • Writes to the [sqlite_dbpage] virtual table. **
    • Direct writes to [shadow tables]. **
    @@ -2642,7 +2708,7 @@ struct sqlite3_mem_methods { **
    ** ** [[SQLITE_DBCONFIG_DQS_DML]] -**
    SQLITE_DBCONFIG_DQS_DML +**
    SQLITE_DBCONFIG_DQS_DML
    **
    The SQLITE_DBCONFIG_DQS_DML option activates or deactivates ** the legacy [double-quoted string literal] misfeature for DML statements ** only, that is DELETE, INSERT, SELECT, and UPDATE statements. The @@ -2651,7 +2717,7 @@ struct sqlite3_mem_methods { **
    ** ** [[SQLITE_DBCONFIG_DQS_DDL]] -**
    SQLITE_DBCONFIG_DQS_DDL +**
    SQLITE_DBCONFIG_DQS_DDL
    **
    The SQLITE_DBCONFIG_DQS option activates or deactivates ** the legacy [double-quoted string literal] misfeature for DDL statements, ** such as CREATE TABLE and CREATE INDEX. The @@ -2660,7 +2726,7 @@ struct sqlite3_mem_methods { **
    ** ** [[SQLITE_DBCONFIG_TRUSTED_SCHEMA]] -**
    SQLITE_DBCONFIG_TRUSTED_SCHEMA +**
    SQLITE_DBCONFIG_TRUSTED_SCHEMA
    **
    The SQLITE_DBCONFIG_TRUSTED_SCHEMA option tells SQLite to ** assume that database schemas are untainted by malicious content. ** When the SQLITE_DBCONFIG_TRUSTED_SCHEMA option is disabled, SQLite @@ -2680,7 +2746,7 @@ struct sqlite3_mem_methods { **
    ** ** [[SQLITE_DBCONFIG_LEGACY_FILE_FORMAT]] -**
    SQLITE_DBCONFIG_LEGACY_FILE_FORMAT +**
    SQLITE_DBCONFIG_LEGACY_FILE_FORMAT
    **
    The SQLITE_DBCONFIG_LEGACY_FILE_FORMAT option activates or deactivates ** the legacy file format flag. When activated, this flag causes all newly ** created database file to have a schema format version number (the 4-byte @@ -2689,7 +2755,7 @@ struct sqlite3_mem_methods { ** any SQLite version back to 3.0.0 ([dateof:3.0.0]). Without this setting, ** newly created databases are generally not understandable by SQLite versions ** prior to 3.3.0 ([dateof:3.3.0]). As these words are written, there -** is now scarcely any need to generated database files that are compatible +** is now scarcely any need to generate database files that are compatible ** all the way back to version 3.0.0, and so this setting is of little ** practical use, but is provided so that SQLite can continue to claim the ** ability to generate new database files that are compatible with version @@ -2700,6 +2766,38 @@ struct sqlite3_mem_methods { ** not considered a bug since SQLite versions 3.3.0 and earlier do not support ** either generated columns or decending indexes. **
    +** +** [[SQLITE_DBCONFIG_STMT_SCANSTATUS]] +**
    SQLITE_DBCONFIG_STMT_SCANSTATUS
    +**
    The SQLITE_DBCONFIG_STMT_SCANSTATUS option is only useful in +** SQLITE_ENABLE_STMT_SCANSTATUS builds. In this case, it sets or clears +** a flag that enables collection of the sqlite3_stmt_scanstatus_v2() +** statistics. For statistics to be collected, the flag must be set on +** the database handle both when the SQL statement is prepared and when it +** is stepped. The flag is set (collection of statistics is enabled) +** by default. This option takes two arguments: an integer and a pointer to +** an integer.. The first argument is 1, 0, or -1 to enable, disable, or +** leave unchanged the statement scanstatus option. If the second argument +** is not NULL, then the value of the statement scanstatus setting after +** processing the first argument is written into the integer that the second +** argument points to. +**
    +** +** [[SQLITE_DBCONFIG_REVERSE_SCANORDER]] +**
    SQLITE_DBCONFIG_REVERSE_SCANORDER
    +**
    The SQLITE_DBCONFIG_REVERSE_SCANORDER option changes the default order +** in which tables and indexes are scanned so that the scans start at the end +** and work toward the beginning rather than starting at the beginning and +** working toward the end. Setting SQLITE_DBCONFIG_REVERSE_SCANORDER is the +** same as setting [PRAGMA reverse_unordered_selects]. This option takes +** two arguments which are an integer and a pointer to an integer. The first +** argument is 1, 0, or -1 to enable, disable, or leave unchanged the +** reverse scan order flag, respectively. If the second argument is not NULL, +** then 0 or 1 is written into the integer that the second argument points to +** depending on if the reverse scan order flag is set after processing the +** first argument. +**
    +** ** */ #define SQLITE_DBCONFIG_MAINDBNAME 1000 /* const char* */ @@ -2720,7 +2818,9 @@ struct sqlite3_mem_methods { #define SQLITE_DBCONFIG_ENABLE_VIEW 1015 /* int int* */ #define SQLITE_DBCONFIG_LEGACY_FILE_FORMAT 1016 /* int int* */ #define SQLITE_DBCONFIG_TRUSTED_SCHEMA 1017 /* int int* */ -#define SQLITE_DBCONFIG_MAX 1017 /* Largest DBCONFIG */ +#define SQLITE_DBCONFIG_STMT_SCANSTATUS 1018 /* int int* */ +#define SQLITE_DBCONFIG_REVERSE_SCANORDER 1019 /* int int* */ +#define SQLITE_DBCONFIG_MAX 1019 /* Largest DBCONFIG */ /* ** CAPI3REF: Enable Or Disable Extended Result Codes @@ -2942,8 +3042,12 @@ SQLITE_API sqlite3_int64 sqlite3_total_changes64(sqlite3*); ** ^A call to sqlite3_interrupt(D) that occurs when there are no running ** SQL statements is a no-op and has no effect on SQL statements ** that are started after the sqlite3_interrupt() call returns. +** +** ^The [sqlite3_is_interrupted(D)] interface can be used to determine whether +** or not an interrupt is currently in effect for [database connection] D. */ SQLITE_API void sqlite3_interrupt(sqlite3*); +SQLITE_API int sqlite3_is_interrupted(sqlite3*); /* ** CAPI3REF: Determine If An SQL Statement Is Complete @@ -3561,8 +3665,8 @@ SQLITE_API SQLITE_DEPRECATED void *sqlite3_profile(sqlite3*, **
    ^An SQLITE_TRACE_PROFILE callback provides approximately the same ** information as is provided by the [sqlite3_profile()] callback. ** ^The P argument is a pointer to the [prepared statement] and the -** X argument points to a 64-bit integer which is the estimated of -** the number of nanosecond that the prepared statement took to run. +** X argument points to a 64-bit integer which is approximately +** the number of nanoseconds that the prepared statement took to run. ** ^The SQLITE_TRACE_PROFILE callback is invoked when the statement finishes. ** ** [[SQLITE_TRACE_ROW]]
    SQLITE_TRACE_ROW
    @@ -3625,7 +3729,7 @@ SQLITE_API int sqlite3_trace_v2( ** ** ^The sqlite3_progress_handler(D,N,X,P) interface causes the callback ** function X to be invoked periodically during long running calls to -** [sqlite3_exec()], [sqlite3_step()] and [sqlite3_get_table()] for +** [sqlite3_step()] and [sqlite3_prepare()] and similar for ** database connection D. An example use for this ** interface is to keep a GUI updated during a large query. ** @@ -3650,6 +3754,13 @@ SQLITE_API int sqlite3_trace_v2( ** Note that [sqlite3_prepare_v2()] and [sqlite3_step()] both modify their ** database connections for the meaning of "modify" in this paragraph. ** +** The progress handler callback would originally only be invoked from the +** bytecode engine. It still might be invoked during [sqlite3_prepare()] +** and similar because those routines might force a reparse of the schema +** which involves running the bytecode engine. However, beginning with +** SQLite version 3.41.0, the progress handler callback might also be +** invoked directly from [sqlite3_prepare()] while analyzing and generating +** code for complex queries. */ SQLITE_API void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*); @@ -3686,13 +3797,18 @@ SQLITE_API void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*); ** **
    ** ^(
    [SQLITE_OPEN_READONLY]
    -**
    The database is opened in read-only mode. If the database does not -** already exist, an error is returned.
    )^ +**
    The database is opened in read-only mode. If the database does +** not already exist, an error is returned.
    )^ ** ** ^(
    [SQLITE_OPEN_READWRITE]
    -**
    The database is opened for reading and writing if possible, or reading -** only if the file is write protected by the operating system. In either -** case the database must already exist, otherwise an error is returned.
    )^ +**
    The database is opened for reading and writing if possible, or +** reading only if the file is write protected by the operating +** system. In either case the database must already exist, otherwise +** an error is returned. For historical reasons, if opening in +** read-write mode fails due to OS-level permissions, an attempt is +** made to open it in read-only mode. [sqlite3_db_readonly()] can be +** used to determine whether the database is actually +** read-write.
    )^ ** ** ^(
    [SQLITE_OPEN_READWRITE] | [SQLITE_OPEN_CREATE]
    **
    The database is opened for reading and writing, and is created if @@ -3730,6 +3846,9 @@ SQLITE_API void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*); **
    The database is opened [shared cache] enabled, overriding ** the default shared cache setting provided by ** [sqlite3_enable_shared_cache()].)^ +** The [use of shared cache mode is discouraged] and hence shared cache +** capabilities may be omitted from many builds of SQLite. In such cases, +** this option is a no-op. ** ** ^(
    [SQLITE_OPEN_PRIVATECACHE]
    **
    The database is opened [shared cache] disabled, overriding @@ -3745,7 +3864,7 @@ SQLITE_API void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*); ** to return an extended result code.
    ** ** [[OPEN_NOFOLLOW]] ^(
    [SQLITE_OPEN_NOFOLLOW]
    -**
    The database filename is not allowed to be a symbolic link
    +**
    The database filename is not allowed to contain a symbolic link
    **
    )^ ** ** If the 3rd parameter to sqlite3_open_v2() is not one of the @@ -4004,10 +4123,10 @@ SQLITE_API int sqlite3_open_v2( ** ** See the [URI filename] documentation for additional information. */ -SQLITE_API const char *sqlite3_uri_parameter(const char *zFilename, const char *zParam); -SQLITE_API int sqlite3_uri_boolean(const char *zFile, const char *zParam, int bDefault); -SQLITE_API sqlite3_int64 sqlite3_uri_int64(const char*, const char*, sqlite3_int64); -SQLITE_API const char *sqlite3_uri_key(const char *zFilename, int N); +SQLITE_API const char *sqlite3_uri_parameter(sqlite3_filename z, const char *zParam); +SQLITE_API int sqlite3_uri_boolean(sqlite3_filename z, const char *zParam, int bDefault); +SQLITE_API sqlite3_int64 sqlite3_uri_int64(sqlite3_filename, const char*, sqlite3_int64); +SQLITE_API const char *sqlite3_uri_key(sqlite3_filename z, int N); /* ** CAPI3REF: Translate filenames @@ -4036,9 +4155,9 @@ SQLITE_API const char *sqlite3_uri_key(const char *zFilename, int N); ** return value from [sqlite3_db_filename()], then the result is ** undefined and is likely a memory access violation. */ -SQLITE_API const char *sqlite3_filename_database(const char*); -SQLITE_API const char *sqlite3_filename_journal(const char*); -SQLITE_API const char *sqlite3_filename_wal(const char*); +SQLITE_API const char *sqlite3_filename_database(sqlite3_filename); +SQLITE_API const char *sqlite3_filename_journal(sqlite3_filename); +SQLITE_API const char *sqlite3_filename_wal(sqlite3_filename); /* ** CAPI3REF: Database File Corresponding To A Journal @@ -4104,14 +4223,14 @@ SQLITE_API sqlite3_file *sqlite3_database_file_object(const char*); ** then the corresponding [sqlite3_module.xClose() method should also be ** invoked prior to calling sqlite3_free_filename(Y). */ -SQLITE_API char *sqlite3_create_filename( +SQLITE_API sqlite3_filename sqlite3_create_filename( const char *zDatabase, const char *zJournal, const char *zWal, int nParam, const char **azParam ); -SQLITE_API void sqlite3_free_filename(char*); +SQLITE_API void sqlite3_free_filename(sqlite3_filename); /* ** CAPI3REF: Error Codes And Messages @@ -5670,10 +5789,21 @@ SQLITE_API int sqlite3_create_window_function( ** from top-level SQL, and cannot be used in VIEWs or TRIGGERs nor in ** schema structures such as [CHECK constraints], [DEFAULT clauses], ** [expression indexes], [partial indexes], or [generated columns]. -** The SQLITE_DIRECTONLY flags is a security feature which is recommended -** for all [application-defined SQL functions], and especially for functions -** that have side-effects or that could potentially leak sensitive -** information. +**

    +** The SQLITE_DIRECTONLY flag is recommended for any +** [application-defined SQL function] +** that has side-effects or that could potentially leak sensitive information. +** This will prevent attacks in which an application is tricked +** into using a database file that has had its schema surreptiously +** modified to invoke the application-defined function in ways that are +** harmful. +**

    +** Some people say it is good practice to set SQLITE_DIRECTONLY on all +** [application-defined SQL functions], regardless of whether or not they +** are security sensitive, as doing so prevents those functions from being used +** inside of the database schema, and thus ensures that the database +** can be inspected and modified using generic tools (such as the [CLI]) +** that do not have access to the application-defined functions. ** ** ** [[SQLITE_INNOCUOUS]]

    SQLITE_INNOCUOUS
    @@ -5879,6 +6009,28 @@ SQLITE_API int sqlite3_value_numeric_type(sqlite3_value*); SQLITE_API int sqlite3_value_nochange(sqlite3_value*); SQLITE_API int sqlite3_value_frombind(sqlite3_value*); +/* +** CAPI3REF: Report the internal text encoding state of an sqlite3_value object +** METHOD: sqlite3_value +** +** ^(The sqlite3_value_encoding(X) interface returns one of [SQLITE_UTF8], +** [SQLITE_UTF16BE], or [SQLITE_UTF16LE] according to the current text encoding +** of the value X, assuming that X has type TEXT.)^ If sqlite3_value_type(X) +** returns something other than SQLITE_TEXT, then the return value from +** sqlite3_value_encoding(X) is meaningless. ^Calls to +** [sqlite3_value_text(X)], [sqlite3_value_text16(X)], [sqlite3_value_text16be(X)], +** [sqlite3_value_text16le(X)], [sqlite3_value_bytes(X)], or +** [sqlite3_value_bytes16(X)] might change the encoding of the value X and +** thus change the return from subsequent calls to sqlite3_value_encoding(X). +** +** This routine is intended for used by applications that test and validate +** the SQLite implementation. This routine is inquiring about the opaque +** internal state of an [sqlite3_value] object. Ordinary applications should +** not need to know what the internal state of an sqlite3_value object is and +** hence should not need to use this interface. +*/ +SQLITE_API int sqlite3_value_encoding(sqlite3_value*); + /* ** CAPI3REF: Finding The Subtype Of SQL Values ** METHOD: sqlite3_value @@ -5931,7 +6083,7 @@ SQLITE_API void sqlite3_value_free(sqlite3_value*); ** ** ^The sqlite3_aggregate_context(C,N) routine returns a NULL pointer ** when first called if N is less than or equal to zero or if a memory -** allocate error occurs. +** allocation error occurs. ** ** ^(The amount of space allocated by sqlite3_aggregate_context(C,N) is ** determined by the N parameter on first successful call. Changing the @@ -6136,9 +6288,10 @@ typedef void (*sqlite3_destructor_type)(void*); ** of [SQLITE_UTF8], [SQLITE_UTF16], [SQLITE_UTF16BE], or [SQLITE_UTF16LE]. ** ^SQLite takes the text result from the application from ** the 2nd parameter of the sqlite3_result_text* interfaces. -** ^If the 3rd parameter to the sqlite3_result_text* interfaces -** is negative, then SQLite takes result text from the 2nd parameter -** through the first zero character. +** ^If the 3rd parameter to any of the sqlite3_result_text* interfaces +** other than sqlite3_result_text64() is negative, then SQLite computes +** the string length itself by searching the 2nd parameter for the first +** zero character. ** ^If the 3rd parameter to the sqlite3_result_text* interfaces ** is non-negative, then as many bytes (not characters) of the text ** pointed to by the 2nd parameter are taken as the application-defined @@ -6412,6 +6565,13 @@ SQLITE_API void sqlite3_activate_cerod( ** of the default VFS is not implemented correctly, or not implemented at ** all, then the behavior of sqlite3_sleep() may deviate from the description ** in the previous paragraphs. +** +** If a negative argument is passed to sqlite3_sleep() the results vary by +** VFS and operating system. Some system treat a negative argument as an +** instruction to sleep forever. Others understand it to mean do not sleep +** at all. ^In SQLite version 3.42.0 and later, a negative +** argument passed into sqlite3_sleep() is changed to zero before it is relayed +** down into the xSleep method of the VFS. */ SQLITE_API int sqlite3_sleep(int); @@ -6634,7 +6794,7 @@ SQLITE_API const char *sqlite3_db_name(sqlite3 *db, int N); **
  • [sqlite3_filename_wal()] ** */ -SQLITE_API const char *sqlite3_db_filename(sqlite3 *db, const char *zDbName); +SQLITE_API sqlite3_filename sqlite3_db_filename(sqlite3 *db, const char *zDbName); /* ** CAPI3REF: Determine if a database is read-only @@ -6771,7 +6931,7 @@ SQLITE_API void *sqlite3_rollback_hook(sqlite3*, void(*)(void *), void*); ** function C that is invoked prior to each autovacuum of the database ** file. ^The callback is passed a copy of the generic data pointer (P), ** the schema-name of the attached database that is being autovacuumed, -** the the size of the database file in pages, the number of free pages, +** the size of the database file in pages, the number of free pages, ** and the number of bytes per page, respectively. The callback should ** return the number of free pages that should be removed by the ** autovacuum. ^If the callback returns zero, then no autovacuum happens. @@ -6892,6 +7052,11 @@ SQLITE_API void *sqlite3_update_hook( ** to the same database. Sharing is enabled if the argument is true ** and disabled if the argument is false.)^ ** +** This interface is omitted if SQLite is compiled with +** [-DSQLITE_OMIT_SHARED_CACHE]. The [-DSQLITE_OMIT_SHARED_CACHE] +** compile-time option is recommended because the +** [use of shared cache mode is discouraged]. +** ** ^Cache sharing is enabled and disabled for an entire process. ** This is a change as of SQLite [version 3.5.0] ([dateof:3.5.0]). ** In prior versions of SQLite, @@ -6990,7 +7155,7 @@ SQLITE_API int sqlite3_db_release_memory(sqlite3*); ** ^The soft heap limit may not be greater than the hard heap limit. ** ^If the hard heap limit is enabled and if sqlite3_soft_heap_limit(N) ** is invoked with a value of N that is greater than the hard heap limit, -** the the soft heap limit is set to the value of the hard heap limit. +** the soft heap limit is set to the value of the hard heap limit. ** ^The soft heap limit is automatically enabled whenever the hard heap ** limit is enabled. ^When sqlite3_hard_heap_limit64(N) is invoked and ** the soft heap limit is outside the range of 1..N, then the soft heap @@ -7251,15 +7416,6 @@ SQLITE_API int sqlite3_cancel_auto_extension(void(*xEntryPoint)(void)); */ SQLITE_API void sqlite3_reset_auto_extension(void); -/* -** The interface to the virtual-table mechanism is currently considered -** to be experimental. The interface might change in incompatible ways. -** If this is a problem for you, do not use the interface at this time. -** -** When the virtual-table mechanism stabilizes, we will declare the -** interface fixed, support it indefinitely, and remove this comment. -*/ - /* ** Structures used by the virtual table interface */ @@ -7378,10 +7534,10 @@ struct sqlite3_module { ** when the omit flag is true there is no guarantee that the constraint will ** not be checked again using byte code.)^ ** -** ^The idxNum and idxPtr values are recorded and passed into the +** ^The idxNum and idxStr values are recorded and passed into the ** [xFilter] method. -** ^[sqlite3_free()] is used to free idxPtr if and only if -** needToFreeIdxPtr is true. +** ^[sqlite3_free()] is used to free idxStr if and only if +** needToFreeIdxStr is true. ** ** ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in ** the correct order to satisfy the ORDER BY clause so that no separate @@ -7501,7 +7657,7 @@ struct sqlite3_index_info { ** the [sqlite3_vtab_collation()] interface. For most real-world virtual ** tables, the collating sequence of constraints does not matter (for example ** because the constraints are numeric) and so the sqlite3_vtab_collation() -** interface is no commonly needed. +** interface is not commonly needed. */ #define SQLITE_INDEX_CONSTRAINT_EQ 2 #define SQLITE_INDEX_CONSTRAINT_GT 4 @@ -7660,16 +7816,6 @@ SQLITE_API int sqlite3_declare_vtab(sqlite3*, const char *zSQL); */ SQLITE_API int sqlite3_overload_function(sqlite3*, const char *zFuncName, int nArg); -/* -** The interface to the virtual-table mechanism defined above (back up -** to a comment remarkably similar to this one) is currently considered -** to be experimental. The interface might change in incompatible ways. -** If this is a problem for you, do not use the interface at this time. -** -** When the virtual-table mechanism stabilizes, we will declare the -** interface fixed, support it indefinitely, and remove this comment. -*/ - /* ** CAPI3REF: A Handle To An Open BLOB ** KEYWORDS: {BLOB handle} {BLOB handles} @@ -8053,9 +8199,9 @@ SQLITE_API int sqlite3_vfs_unregister(sqlite3_vfs*); ** is undefined if the mutex is not currently entered by the ** calling thread or is not currently allocated. ** -** ^If the argument to sqlite3_mutex_enter(), sqlite3_mutex_try(), or -** sqlite3_mutex_leave() is a NULL pointer, then all three routines -** behave as no-ops. +** ^If the argument to sqlite3_mutex_enter(), sqlite3_mutex_try(), +** sqlite3_mutex_leave(), or sqlite3_mutex_free() is a NULL pointer, +** then any of the four routines behaves as a no-op. ** ** See also: [sqlite3_mutex_held()] and [sqlite3_mutex_notheld()]. */ @@ -9285,7 +9431,7 @@ typedef struct sqlite3_backup sqlite3_backup; ** if the application incorrectly accesses the destination [database connection] ** and so no error code is reported, but the operations may malfunction ** nevertheless. Use of the destination database connection while a -** backup is in progress might also also cause a mutex deadlock. +** backup is in progress might also cause a mutex deadlock. ** ** If running in [shared cache mode], the application must ** guarantee that the shared cache used by the destination database @@ -9713,7 +9859,7 @@ SQLITE_API int sqlite3_wal_checkpoint_v2( */ #define SQLITE_CHECKPOINT_PASSIVE 0 /* Do as much as possible w/o blocking */ #define SQLITE_CHECKPOINT_FULL 1 /* Wait for writers, then checkpoint */ -#define SQLITE_CHECKPOINT_RESTART 2 /* Like FULL but wait for for readers */ +#define SQLITE_CHECKPOINT_RESTART 2 /* Like FULL but wait for readers */ #define SQLITE_CHECKPOINT_TRUNCATE 3 /* Like RESTART but also truncate WAL */ /* @@ -9789,18 +9935,28 @@ SQLITE_API int sqlite3_vtab_config(sqlite3*, int op, ...); ** [[SQLITE_VTAB_INNOCUOUS]]
    SQLITE_VTAB_INNOCUOUS
    **
    Calls of the form ** [sqlite3_vtab_config](db,SQLITE_VTAB_INNOCUOUS) from within the -** the [xConnect] or [xCreate] methods of a [virtual table] implmentation +** the [xConnect] or [xCreate] methods of a [virtual table] implementation ** identify that virtual table as being safe to use from within triggers ** and views. Conceptually, the SQLITE_VTAB_INNOCUOUS tag means that the ** virtual table can do no serious harm even if it is controlled by a ** malicious hacker. Developers should avoid setting the SQLITE_VTAB_INNOCUOUS ** flag unless absolutely necessary. **
    +** +** [[SQLITE_VTAB_USES_ALL_SCHEMAS]]
    SQLITE_VTAB_USES_ALL_SCHEMAS
    +**
    Calls of the form +** [sqlite3_vtab_config](db,SQLITE_VTAB_USES_ALL_SCHEMA) from within the +** the [xConnect] or [xCreate] methods of a [virtual table] implementation +** instruct the query planner to begin at least a read transaction on +** all schemas ("main", "temp", and any ATTACH-ed databases) whenever the +** virtual table is used. +**
    ** */ #define SQLITE_VTAB_CONSTRAINT_SUPPORT 1 #define SQLITE_VTAB_INNOCUOUS 2 #define SQLITE_VTAB_DIRECTONLY 3 +#define SQLITE_VTAB_USES_ALL_SCHEMAS 4 /* ** CAPI3REF: Determine The Virtual Table Conflict Policy @@ -9873,7 +10029,7 @@ SQLITE_API int sqlite3_vtab_nochange(sqlite3_context*); **
  • Otherwise, "BINARY" is returned. ** */ -SQLITE_API SQLITE_EXPERIMENTAL const char *sqlite3_vtab_collation(sqlite3_index_info*,int); +SQLITE_API const char *sqlite3_vtab_collation(sqlite3_index_info*,int); /* ** CAPI3REF: Determine if a virtual table query is DISTINCT @@ -10030,21 +10186,20 @@ SQLITE_API int sqlite3_vtab_in(sqlite3_index_info*, int iCons, int bHandle); ** is undefined and probably harmful. ** ** The X parameter in a call to sqlite3_vtab_in_first(X,P) or -** sqlite3_vtab_in_next(X,P) must be one of the parameters to the +** sqlite3_vtab_in_next(X,P) should be one of the parameters to the ** xFilter method which invokes these routines, and specifically ** a parameter that was previously selected for all-at-once IN constraint ** processing use the [sqlite3_vtab_in()] interface in the ** [xBestIndex|xBestIndex method]. ^(If the X parameter is not ** an xFilter argument that was selected for all-at-once IN constraint -** processing, then these routines return [SQLITE_MISUSE])^ or perhaps -** exhibit some other undefined or harmful behavior. +** processing, then these routines return [SQLITE_ERROR].)^ ** ** ^(Use these routines to access all values on the right-hand side ** of the IN constraint using code like the following: ** **

     **    for(rc=sqlite3_vtab_in_first(pList, &pVal);
    -**        rc==SQLITE_OK && pVal
    +**        rc==SQLITE_OK && pVal;
     **        rc=sqlite3_vtab_in_next(pList, &pVal)
     **    ){
     **      // do something with pVal
    @@ -10142,6 +10297,10 @@ SQLITE_API int sqlite3_vtab_rhs_value(sqlite3_index_info*, int, sqlite3_value **
     ** managed by the prepared statement S and will be automatically freed when
     ** S is finalized.
     **
    +** Not all values are available for all query elements. When a value is
    +** not available, the output variable is set to -1 if the value is numeric,
    +** or to NULL if it is a string (SQLITE_SCANSTAT_NAME).
    +**
     ** 
    ** [[SQLITE_SCANSTAT_NLOOP]]
    SQLITE_SCANSTAT_NLOOP
    **
    ^The [sqlite3_int64] variable pointed to by the V parameter will be @@ -10169,12 +10328,24 @@ SQLITE_API int sqlite3_vtab_rhs_value(sqlite3_index_info*, int, sqlite3_value ** ** to a zero-terminated UTF-8 string containing the [EXPLAIN QUERY PLAN] ** description for the X-th loop. ** -** [[SQLITE_SCANSTAT_SELECTID]]
    SQLITE_SCANSTAT_SELECT
    +** [[SQLITE_SCANSTAT_SELECTID]]
    SQLITE_SCANSTAT_SELECTID
    **
    ^The "int" variable pointed to by the V parameter will be set to the -** "select-id" for the X-th loop. The select-id identifies which query or -** subquery the loop is part of. The main query has a select-id of zero. -** The select-id is the same value as is output in the first column -** of an [EXPLAIN QUERY PLAN] query. +** id for the X-th query plan element. The id value is unique within the +** statement. The select-id is the same value as is output in the first +** column of an [EXPLAIN QUERY PLAN] query. +** +** [[SQLITE_SCANSTAT_PARENTID]]
    SQLITE_SCANSTAT_PARENTID
    +**
    The "int" variable pointed to by the V parameter will be set to the +** the id of the parent of the current query element, if applicable, or +** to zero if the query element has no parent. This is the same value as +** returned in the second column of an [EXPLAIN QUERY PLAN] query. +** +** [[SQLITE_SCANSTAT_NCYCLE]]
    SQLITE_SCANSTAT_NCYCLE
    +**
    The sqlite3_int64 output value is set to the number of cycles, +** according to the processor time-stamp counter, that elapsed while the +** query element was being processed. This value is not available for +** all query elements - if it is unavailable the output variable is +** set to -1. **
    */ #define SQLITE_SCANSTAT_NLOOP 0 @@ -10183,12 +10354,14 @@ SQLITE_API int sqlite3_vtab_rhs_value(sqlite3_index_info*, int, sqlite3_value ** #define SQLITE_SCANSTAT_NAME 3 #define SQLITE_SCANSTAT_EXPLAIN 4 #define SQLITE_SCANSTAT_SELECTID 5 +#define SQLITE_SCANSTAT_PARENTID 6 +#define SQLITE_SCANSTAT_NCYCLE 7 /* ** CAPI3REF: Prepared Statement Scan Status ** METHOD: sqlite3_stmt ** -** This interface returns information about the predicted and measured +** These interfaces return information about the predicted and measured ** performance for pStmt. Advanced applications can use this ** interface to compare the predicted and the measured performance and ** issue warnings and/or rerun [ANALYZE] if discrepancies are found. @@ -10199,19 +10372,25 @@ SQLITE_API int sqlite3_vtab_rhs_value(sqlite3_index_info*, int, sqlite3_value ** ** ** The "iScanStatusOp" parameter determines which status information to return. ** The "iScanStatusOp" must be one of the [scanstatus options] or the behavior -** of this interface is undefined. -** ^The requested measurement is written into a variable pointed to by -** the "pOut" parameter. -** Parameter "idx" identifies the specific loop to retrieve statistics for. -** Loops are numbered starting from zero. ^If idx is out of range - less than -** zero or greater than or equal to the total number of loops used to implement -** the statement - a non-zero value is returned and the variable that pOut -** points to is unchanged. +** of this interface is undefined. ^The requested measurement is written into +** a variable pointed to by the "pOut" parameter. ** -** ^Statistics might not be available for all loops in all statements. ^In cases -** where there exist loops with no available statistics, this function behaves -** as if the loop did not exist - it returns non-zero and leave the variable -** that pOut points to unchanged. +** The "flags" parameter must be passed a mask of flags. At present only +** one flag is defined - SQLITE_SCANSTAT_COMPLEX. If SQLITE_SCANSTAT_COMPLEX +** is specified, then status information is available for all elements +** of a query plan that are reported by "EXPLAIN QUERY PLAN" output. If +** SQLITE_SCANSTAT_COMPLEX is not specified, then only query plan elements +** that correspond to query loops (the "SCAN..." and "SEARCH..." elements of +** the EXPLAIN QUERY PLAN output) are available. Invoking API +** sqlite3_stmt_scanstatus() is equivalent to calling +** sqlite3_stmt_scanstatus_v2() with a zeroed flags parameter. +** +** Parameter "idx" identifies the specific query element to retrieve statistics +** for. Query elements are numbered starting from zero. A value of -1 may be +** to query for statistics regarding the entire query. ^If idx is out of range +** - less than -1 or greater than or equal to the total number of query +** elements used to implement the statement - a non-zero value is returned and +** the variable that pOut points to is unchanged. ** ** See also: [sqlite3_stmt_scanstatus_reset()] */ @@ -10221,6 +10400,19 @@ SQLITE_API int sqlite3_stmt_scanstatus( int iScanStatusOp, /* Information desired. SQLITE_SCANSTAT_* */ void *pOut /* Result written here */ ); +SQLITE_API int sqlite3_stmt_scanstatus_v2( + sqlite3_stmt *pStmt, /* Prepared statement for which info desired */ + int idx, /* Index of loop to report on */ + int iScanStatusOp, /* Information desired. SQLITE_SCANSTAT_* */ + int flags, /* Mask of flags defined below */ + void *pOut /* Result written here */ +); + +/* +** CAPI3REF: Prepared Statement Scan Status +** KEYWORDS: {scan status flags} +*/ +#define SQLITE_SCANSTAT_COMPLEX 0x0001 /* ** CAPI3REF: Zero Scan-Status Counters @@ -10311,6 +10503,10 @@ SQLITE_API int sqlite3_db_cacheflush(sqlite3*); ** function is not defined for operations on WITHOUT ROWID tables, or for ** DELETE operations on rowid tables. ** +** ^The sqlite3_preupdate_hook(D,C,P) function returns the P argument from +** the previous call on the same [database connection] D, or NULL for +** the first call on D. +** ** The [sqlite3_preupdate_old()], [sqlite3_preupdate_new()], ** [sqlite3_preupdate_count()], and [sqlite3_preupdate_depth()] interfaces ** provide additional information about a preupdate event. These routines @@ -10716,6 +10912,19 @@ SQLITE_API int sqlite3_deserialize( # undef double #endif +#if defined(__wasi__) +# undef SQLITE_WASI +# define SQLITE_WASI 1 +# undef SQLITE_OMIT_WAL +# define SQLITE_OMIT_WAL 1/* because it requires shared memory APIs */ +# ifndef SQLITE_OMIT_LOAD_EXTENSION +# define SQLITE_OMIT_LOAD_EXTENSION +# endif +# ifndef SQLITE_THREADSAFE +# define SQLITE_THREADSAFE 0 +# endif +#endif + #if 0 } /* End of the 'extern "C"' block */ #endif @@ -10922,16 +11131,20 @@ SQLITE_API int sqlite3session_create( SQLITE_API void sqlite3session_delete(sqlite3_session *pSession); /* -** CAPIREF: Conigure a Session Object +** CAPI3REF: Configure a Session Object ** METHOD: sqlite3_session ** ** This method is used to configure a session object after it has been -** created. At present the only valid value for the second parameter is -** [SQLITE_SESSION_OBJCONFIG_SIZE]. +** created. At present the only valid values for the second parameter are +** [SQLITE_SESSION_OBJCONFIG_SIZE] and [SQLITE_SESSION_OBJCONFIG_ROWID]. ** -** Arguments for sqlite3session_object_config() +*/ +SQLITE_API int sqlite3session_object_config(sqlite3_session*, int op, void *pArg); + +/* +** CAPI3REF: Options for sqlite3session_object_config ** -** The following values may passed as the the 4th parameter to +** The following values may passed as the the 2nd parameter to ** sqlite3session_object_config(). ** **
    SQLITE_SESSION_OBJCONFIG_SIZE
    @@ -10947,12 +11160,21 @@ SQLITE_API void sqlite3session_delete(sqlite3_session *pSession); ** ** It is an error (SQLITE_MISUSE) to attempt to modify this setting after ** the first table has been attached to the session object. +** +**
    SQLITE_SESSION_OBJCONFIG_ROWID
    +** This option is used to set, clear or query the flag that enables +** collection of data for tables with no explicit PRIMARY KEY. +** +** Normally, tables with no explicit PRIMARY KEY are simply ignored +** by the sessions module. However, if this flag is set, it behaves +** as if such tables have a column "_rowid_ INTEGER PRIMARY KEY" inserted +** as their leftmost columns. +** +** It is an error (SQLITE_MISUSE) to attempt to modify this setting after +** the first table has been attached to the session object. */ -SQLITE_API int sqlite3session_object_config(sqlite3_session*, int op, void *pArg); - -/* -*/ -#define SQLITE_SESSION_OBJCONFIG_SIZE 1 +#define SQLITE_SESSION_OBJCONFIG_SIZE 1 +#define SQLITE_SESSION_OBJCONFIG_ROWID 2 /* ** CAPI3REF: Enable Or Disable A Session Object @@ -12085,9 +12307,23 @@ SQLITE_API int sqlite3changeset_apply_v2( ** Invert the changeset before applying it. This is equivalent to inverting ** a changeset using sqlite3changeset_invert() before applying it. It is ** an error to specify this flag with a patchset. +** +**
    SQLITE_CHANGESETAPPLY_IGNORENOOP
    +** Do not invoke the conflict handler callback for any changes that +** would not actually modify the database even if they were applied. +** Specifically, this means that the conflict handler is not invoked +** for: +**
      +**
    • a delete change if the row being deleted cannot be found, +**
    • an update change if the modified fields are already set to +** their new values in the conflicting row, or +**
    • an insert change if all fields of the conflicting row match +** the row being inserted. +**
    */ #define SQLITE_CHANGESETAPPLY_NOSAVEPOINT 0x0001 #define SQLITE_CHANGESETAPPLY_INVERT 0x0002 +#define SQLITE_CHANGESETAPPLY_IGNORENOOP 0x0004 /* ** CAPI3REF: Constants Passed To The Conflict Handler @@ -13154,7 +13390,7 @@ struct fts5_api { ** autoconf-based build */ #if defined(_HAVE_SQLITE_CONFIG_H) && !defined(SQLITECONFIG_H) -#include "config.h" +#include "sqlite_cfg.h" #define SQLITECONFIG_H 1 #endif @@ -13384,8 +13620,8 @@ struct fts5_api { #endif /* -** WAL mode depends on atomic aligned 32-bit loads and stores in a few -** places. The following macros try to make this explicit. +** A few places in the code require atomic load/store of aligned +** integer values. */ #ifndef __has_extension # define __has_extension(x) 0 /* compatibility with non-clang compilers */ @@ -13441,15 +13677,22 @@ struct fts5_api { #endif /* -** A macro to hint to the compiler that a function should not be +** Macros to hint to the compiler that a function should or should not be ** inlined. */ #if defined(__GNUC__) # define SQLITE_NOINLINE __attribute__((noinline)) +# define SQLITE_INLINE __attribute__((always_inline)) inline #elif defined(_MSC_VER) && _MSC_VER>=1310 # define SQLITE_NOINLINE __declspec(noinline) +# define SQLITE_INLINE __forceinline #else # define SQLITE_NOINLINE +# define SQLITE_INLINE +#endif +#if defined(SQLITE_COVERAGE_TEST) || defined(__STRICT_ANSI__) +# undef SQLITE_INLINE +# define SQLITE_INLINE #endif /* @@ -14267,15 +14510,9 @@ typedef INT8_TYPE i8; /* 1-byte signed integer */ /* ** The datatype used to store estimates of the number of rows in a -** table or index. This is an unsigned integer type. For 99.9% of -** the world, a 32-bit integer is sufficient. But a 64-bit integer -** can be used at compile-time if desired. +** table or index. */ -#ifdef SQLITE_64BIT_STATS - typedef u64 tRowcnt; /* 64-bit only if requested at compile-time */ -#else - typedef u32 tRowcnt; /* 32-bit is the default */ -#endif +typedef u64 tRowcnt; /* ** Estimated quantities used for query planning are stored as 16-bit @@ -14421,9 +14658,9 @@ typedef INT16_TYPE LogEst; ** pointers. In that case, only verify 4-byte alignment. */ #ifdef SQLITE_4_BYTE_ALIGNED_MALLOC -# define EIGHT_BYTE_ALIGNMENT(X) ((((char*)(X) - (char*)0)&3)==0) +# define EIGHT_BYTE_ALIGNMENT(X) ((((uptr)(X) - (uptr)0)&3)==0) #else -# define EIGHT_BYTE_ALIGNMENT(X) ((((char*)(X) - (char*)0)&7)==0) +# define EIGHT_BYTE_ALIGNMENT(X) ((((uptr)(X) - (uptr)0)&7)==0) #endif /* @@ -14477,15 +14714,38 @@ SQLITE_PRIVATE u32 sqlite3TreeTrace; && (defined(SQLITE_TEST) || defined(SQLITE_ENABLE_SELECTTRACE) \ || defined(SQLITE_ENABLE_TREETRACE)) # define TREETRACE_ENABLED 1 -# define SELECTTRACE(K,P,S,X) \ +# define TREETRACE(K,P,S,X) \ if(sqlite3TreeTrace&(K)) \ sqlite3DebugPrintf("%u/%d/%p: ",(S)->selId,(P)->addrExplain,(S)),\ sqlite3DebugPrintf X #else -# define SELECTTRACE(K,P,S,X) +# define TREETRACE(K,P,S,X) # define TREETRACE_ENABLED 0 #endif +/* TREETRACE flag meanings: +** +** 0x00000001 Beginning and end of SELECT processing +** 0x00000002 WHERE clause processing +** 0x00000004 Query flattener +** 0x00000008 Result-set wildcard expansion +** 0x00000010 Query name resolution +** 0x00000020 Aggregate analysis +** 0x00000040 Window functions +** 0x00000080 Generated column names +** 0x00000100 Move HAVING terms into WHERE +** 0x00000200 Count-of-view optimization +** 0x00000400 Compound SELECT processing +** 0x00000800 Drop superfluous ORDER BY +** 0x00001000 LEFT JOIN simplifies to JOIN +** 0x00002000 Constant propagation +** 0x00004000 Push-down optimization +** 0x00008000 After all FROM-clause analysis +** 0x00010000 Beginning of DELETE/INSERT/UPDATE processing +** 0x00020000 Transform DISTINCT into GROUP BY +** 0x00040000 SELECT tree dump after all code has been generated +*/ + /* ** Macros for "wheretrace" */ @@ -14498,6 +14758,36 @@ SQLITE_PRIVATE u32 sqlite3WhereTrace; # define WHERETRACE(K,X) #endif +/* +** Bits for the sqlite3WhereTrace mask: +** +** (---any--) Top-level block structure +** 0x-------F High-level debug messages +** 0x----FFF- More detail +** 0xFFFF---- Low-level debug messages +** +** 0x00000001 Code generation +** 0x00000002 Solver +** 0x00000004 Solver costs +** 0x00000008 WhereLoop inserts +** +** 0x00000010 Display sqlite3_index_info xBestIndex calls +** 0x00000020 Range an equality scan metrics +** 0x00000040 IN operator decisions +** 0x00000080 WhereLoop cost adjustements +** 0x00000100 +** 0x00000200 Covering index decisions +** 0x00000400 OR optimization +** 0x00000800 Index scanner +** 0x00001000 More details associated with code generation +** 0x00002000 +** 0x00004000 Show all WHERE terms at key points +** 0x00008000 Show the full SELECT statement at key places +** +** 0x00010000 Show more detail when printing WHERE terms +** 0x00020000 Show WHERE terms returned from whereScanNext() +*/ + /* ** An instance of the following structure is used to store the busy-handler @@ -14637,6 +14927,7 @@ typedef struct FuncDef FuncDef; typedef struct FuncDefHash FuncDefHash; typedef struct IdList IdList; typedef struct Index Index; +typedef struct IndexedExpr IndexedExpr; typedef struct IndexSample IndexSample; typedef struct KeyClass KeyClass; typedef struct KeyInfo KeyInfo; @@ -14702,6 +14993,7 @@ typedef struct With With; #define MASKBIT32(n) (((unsigned int)1)<<(n)) #define SMASKBIT32(n) ((n)<=31?((unsigned int)1)<<(n):0) #define ALLBITS ((Bitmask)-1) +#define TOPBIT (((Bitmask)1)<<(BMS-1)) /* A VList object records a mapping between parameters/variables/wildcards ** in the SQL statement (such as $abc, @pqr, or :xyz) and the integer @@ -14716,6 +15008,331 @@ typedef int VList; ** "BusyHandler" typedefs. vdbe.h also requires a few of the opaque ** pointer types (i.e. FuncDef) defined above. */ +/************** Include os.h in the middle of sqliteInt.h ********************/ +/************** Begin file os.h **********************************************/ +/* +** 2001 September 16 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +** This header file (together with is companion C source-code file +** "os.c") attempt to abstract the underlying operating system so that +** the SQLite library will work on both POSIX and windows systems. +** +** This header file is #include-ed by sqliteInt.h and thus ends up +** being included by every source file. +*/ +#ifndef _SQLITE_OS_H_ +#define _SQLITE_OS_H_ + +/* +** Attempt to automatically detect the operating system and setup the +** necessary pre-processor macros for it. +*/ +/************** Include os_setup.h in the middle of os.h *********************/ +/************** Begin file os_setup.h ****************************************/ +/* +** 2013 November 25 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +** This file contains pre-processor directives related to operating system +** detection and/or setup. +*/ +#ifndef SQLITE_OS_SETUP_H +#define SQLITE_OS_SETUP_H + +/* +** Figure out if we are dealing with Unix, Windows, or some other operating +** system. +** +** After the following block of preprocess macros, all of +** +** SQLITE_OS_KV +** SQLITE_OS_OTHER +** SQLITE_OS_UNIX +** SQLITE_OS_WIN +** +** will defined to either 1 or 0. One of them will be 1. The others will be 0. +** If none of the macros are initially defined, then select either +** SQLITE_OS_UNIX or SQLITE_OS_WIN depending on the target platform. +** +** If SQLITE_OS_OTHER=1 is specified at compile-time, then the application +** must provide its own VFS implementation together with sqlite3_os_init() +** and sqlite3_os_end() routines. +*/ +#if !defined(SQLITE_OS_KV) && !defined(SQLITE_OS_OTHER) && \ + !defined(SQLITE_OS_UNIX) && !defined(SQLITE_OS_WIN) +# if defined(_WIN32) || defined(WIN32) || defined(__CYGWIN__) || \ + defined(__MINGW32__) || defined(__BORLANDC__) +# define SQLITE_OS_WIN 1 +# define SQLITE_OS_UNIX 0 +# else +# define SQLITE_OS_WIN 0 +# define SQLITE_OS_UNIX 1 +# endif +#endif +#if SQLITE_OS_OTHER+1>1 +# undef SQLITE_OS_KV +# define SQLITE_OS_KV 0 +# undef SQLITE_OS_UNIX +# define SQLITE_OS_UNIX 0 +# undef SQLITE_OS_WIN +# define SQLITE_OS_WIN 0 +#endif +#if SQLITE_OS_KV+1>1 +# undef SQLITE_OS_OTHER +# define SQLITE_OS_OTHER 0 +# undef SQLITE_OS_UNIX +# define SQLITE_OS_UNIX 0 +# undef SQLITE_OS_WIN +# define SQLITE_OS_WIN 0 +# define SQLITE_OMIT_LOAD_EXTENSION 1 +# define SQLITE_OMIT_WAL 1 +# define SQLITE_OMIT_DEPRECATED 1 +# undef SQLITE_TEMP_STORE +# define SQLITE_TEMP_STORE 3 /* Always use memory for temporary storage */ +# define SQLITE_DQS 0 +# define SQLITE_OMIT_SHARED_CACHE 1 +# define SQLITE_OMIT_AUTOINIT 1 +#endif +#if SQLITE_OS_UNIX+1>1 +# undef SQLITE_OS_KV +# define SQLITE_OS_KV 0 +# undef SQLITE_OS_OTHER +# define SQLITE_OS_OTHER 0 +# undef SQLITE_OS_WIN +# define SQLITE_OS_WIN 0 +#endif +#if SQLITE_OS_WIN+1>1 +# undef SQLITE_OS_KV +# define SQLITE_OS_KV 0 +# undef SQLITE_OS_OTHER +# define SQLITE_OS_OTHER 0 +# undef SQLITE_OS_UNIX +# define SQLITE_OS_UNIX 0 +#endif + + +#endif /* SQLITE_OS_SETUP_H */ + +/************** End of os_setup.h ********************************************/ +/************** Continuing where we left off in os.h *************************/ + +/* If the SET_FULLSYNC macro is not defined above, then make it +** a no-op +*/ +#ifndef SET_FULLSYNC +# define SET_FULLSYNC(x,y) +#endif + +/* Maximum pathname length. Note: FILENAME_MAX defined by stdio.h +*/ +#ifndef SQLITE_MAX_PATHLEN +# define SQLITE_MAX_PATHLEN FILENAME_MAX +#endif + +/* Maximum number of symlinks that will be resolved while trying to +** expand a filename in xFullPathname() in the VFS. +*/ +#ifndef SQLITE_MAX_SYMLINK +# define SQLITE_MAX_SYMLINK 200 +#endif + +/* +** The default size of a disk sector +*/ +#ifndef SQLITE_DEFAULT_SECTOR_SIZE +# define SQLITE_DEFAULT_SECTOR_SIZE 4096 +#endif + +/* +** Temporary files are named starting with this prefix followed by 16 random +** alphanumeric characters, and no file extension. They are stored in the +** OS's standard temporary file directory, and are deleted prior to exit. +** If sqlite is being embedded in another program, you may wish to change the +** prefix to reflect your program's name, so that if your program exits +** prematurely, old temporary files can be easily identified. This can be done +** using -DSQLITE_TEMP_FILE_PREFIX=myprefix_ on the compiler command line. +** +** 2006-10-31: The default prefix used to be "sqlite_". But then +** Mcafee started using SQLite in their anti-virus product and it +** started putting files with the "sqlite" name in the c:/temp folder. +** This annoyed many windows users. Those users would then do a +** Google search for "sqlite", find the telephone numbers of the +** developers and call to wake them up at night and complain. +** For this reason, the default name prefix is changed to be "sqlite" +** spelled backwards. So the temp files are still identified, but +** anybody smart enough to figure out the code is also likely smart +** enough to know that calling the developer will not help get rid +** of the file. +*/ +#ifndef SQLITE_TEMP_FILE_PREFIX +# define SQLITE_TEMP_FILE_PREFIX "etilqs_" +#endif + +/* +** The following values may be passed as the second argument to +** sqlite3OsLock(). The various locks exhibit the following semantics: +** +** SHARED: Any number of processes may hold a SHARED lock simultaneously. +** RESERVED: A single process may hold a RESERVED lock on a file at +** any time. Other processes may hold and obtain new SHARED locks. +** PENDING: A single process may hold a PENDING lock on a file at +** any one time. Existing SHARED locks may persist, but no new +** SHARED locks may be obtained by other processes. +** EXCLUSIVE: An EXCLUSIVE lock precludes all other locks. +** +** PENDING_LOCK may not be passed directly to sqlite3OsLock(). Instead, a +** process that requests an EXCLUSIVE lock may actually obtain a PENDING +** lock. This can be upgraded to an EXCLUSIVE lock by a subsequent call to +** sqlite3OsLock(). +*/ +#define NO_LOCK 0 +#define SHARED_LOCK 1 +#define RESERVED_LOCK 2 +#define PENDING_LOCK 3 +#define EXCLUSIVE_LOCK 4 + +/* +** File Locking Notes: (Mostly about windows but also some info for Unix) +** +** We cannot use LockFileEx() or UnlockFileEx() on Win95/98/ME because +** those functions are not available. So we use only LockFile() and +** UnlockFile(). +** +** LockFile() prevents not just writing but also reading by other processes. +** A SHARED_LOCK is obtained by locking a single randomly-chosen +** byte out of a specific range of bytes. The lock byte is obtained at +** random so two separate readers can probably access the file at the +** same time, unless they are unlucky and choose the same lock byte. +** An EXCLUSIVE_LOCK is obtained by locking all bytes in the range. +** There can only be one writer. A RESERVED_LOCK is obtained by locking +** a single byte of the file that is designated as the reserved lock byte. +** A PENDING_LOCK is obtained by locking a designated byte different from +** the RESERVED_LOCK byte. +** +** On WinNT/2K/XP systems, LockFileEx() and UnlockFileEx() are available, +** which means we can use reader/writer locks. When reader/writer locks +** are used, the lock is placed on the same range of bytes that is used +** for probabilistic locking in Win95/98/ME. Hence, the locking scheme +** will support two or more Win95 readers or two or more WinNT readers. +** But a single Win95 reader will lock out all WinNT readers and a single +** WinNT reader will lock out all other Win95 readers. +** +** The following #defines specify the range of bytes used for locking. +** SHARED_SIZE is the number of bytes available in the pool from which +** a random byte is selected for a shared lock. The pool of bytes for +** shared locks begins at SHARED_FIRST. +** +** The same locking strategy and +** byte ranges are used for Unix. This leaves open the possibility of having +** clients on win95, winNT, and unix all talking to the same shared file +** and all locking correctly. To do so would require that samba (or whatever +** tool is being used for file sharing) implements locks correctly between +** windows and unix. I'm guessing that isn't likely to happen, but by +** using the same locking range we are at least open to the possibility. +** +** Locking in windows is manditory. For this reason, we cannot store +** actual data in the bytes used for locking. The pager never allocates +** the pages involved in locking therefore. SHARED_SIZE is selected so +** that all locks will fit on a single page even at the minimum page size. +** PENDING_BYTE defines the beginning of the locks. By default PENDING_BYTE +** is set high so that we don't have to allocate an unused page except +** for very large databases. But one should test the page skipping logic +** by setting PENDING_BYTE low and running the entire regression suite. +** +** Changing the value of PENDING_BYTE results in a subtly incompatible +** file format. Depending on how it is changed, you might not notice +** the incompatibility right away, even running a full regression test. +** The default location of PENDING_BYTE is the first byte past the +** 1GB boundary. +** +*/ +#ifdef SQLITE_OMIT_WSD +# define PENDING_BYTE (0x40000000) +#else +# define PENDING_BYTE sqlite3PendingByte +#endif +#define RESERVED_BYTE (PENDING_BYTE+1) +#define SHARED_FIRST (PENDING_BYTE+2) +#define SHARED_SIZE 510 + +/* +** Wrapper around OS specific sqlite3_os_init() function. +*/ +SQLITE_PRIVATE int sqlite3OsInit(void); + +/* +** Functions for accessing sqlite3_file methods +*/ +SQLITE_PRIVATE void sqlite3OsClose(sqlite3_file*); +SQLITE_PRIVATE int sqlite3OsRead(sqlite3_file*, void*, int amt, i64 offset); +SQLITE_PRIVATE int sqlite3OsWrite(sqlite3_file*, const void*, int amt, i64 offset); +SQLITE_PRIVATE int sqlite3OsTruncate(sqlite3_file*, i64 size); +SQLITE_PRIVATE int sqlite3OsSync(sqlite3_file*, int); +SQLITE_PRIVATE int sqlite3OsFileSize(sqlite3_file*, i64 *pSize); +SQLITE_PRIVATE int sqlite3OsLock(sqlite3_file*, int); +SQLITE_PRIVATE int sqlite3OsUnlock(sqlite3_file*, int); +SQLITE_PRIVATE int sqlite3OsCheckReservedLock(sqlite3_file *id, int *pResOut); +SQLITE_PRIVATE int sqlite3OsFileControl(sqlite3_file*,int,void*); +SQLITE_PRIVATE void sqlite3OsFileControlHint(sqlite3_file*,int,void*); +#define SQLITE_FCNTL_DB_UNCHANGED 0xca093fa0 +SQLITE_PRIVATE int sqlite3OsSectorSize(sqlite3_file *id); +SQLITE_PRIVATE int sqlite3OsDeviceCharacteristics(sqlite3_file *id); +#ifndef SQLITE_OMIT_WAL +SQLITE_PRIVATE int sqlite3OsShmMap(sqlite3_file *,int,int,int,void volatile **); +SQLITE_PRIVATE int sqlite3OsShmLock(sqlite3_file *id, int, int, int); +SQLITE_PRIVATE void sqlite3OsShmBarrier(sqlite3_file *id); +SQLITE_PRIVATE int sqlite3OsShmUnmap(sqlite3_file *id, int); +#endif /* SQLITE_OMIT_WAL */ +SQLITE_PRIVATE int sqlite3OsFetch(sqlite3_file *id, i64, int, void **); +SQLITE_PRIVATE int sqlite3OsUnfetch(sqlite3_file *, i64, void *); + + +/* +** Functions for accessing sqlite3_vfs methods +*/ +SQLITE_PRIVATE int sqlite3OsOpen(sqlite3_vfs *, const char *, sqlite3_file*, int, int *); +SQLITE_PRIVATE int sqlite3OsDelete(sqlite3_vfs *, const char *, int); +SQLITE_PRIVATE int sqlite3OsAccess(sqlite3_vfs *, const char *, int, int *pResOut); +SQLITE_PRIVATE int sqlite3OsFullPathname(sqlite3_vfs *, const char *, int, char *); +#ifndef SQLITE_OMIT_LOAD_EXTENSION +SQLITE_PRIVATE void *sqlite3OsDlOpen(sqlite3_vfs *, const char *); +SQLITE_PRIVATE void sqlite3OsDlError(sqlite3_vfs *, int, char *); +SQLITE_PRIVATE void (*sqlite3OsDlSym(sqlite3_vfs *, void *, const char *))(void); +SQLITE_PRIVATE void sqlite3OsDlClose(sqlite3_vfs *, void *); +#endif /* SQLITE_OMIT_LOAD_EXTENSION */ +SQLITE_PRIVATE int sqlite3OsRandomness(sqlite3_vfs *, int, char *); +SQLITE_PRIVATE int sqlite3OsSleep(sqlite3_vfs *, int); +SQLITE_PRIVATE int sqlite3OsGetLastError(sqlite3_vfs*); +SQLITE_PRIVATE int sqlite3OsCurrentTimeInt64(sqlite3_vfs *, sqlite3_int64*); + +/* +** Convenience functions for opening and closing files using +** sqlite3_malloc() to obtain space for the file-handle structure. +*/ +SQLITE_PRIVATE int sqlite3OsOpenMalloc(sqlite3_vfs *, const char *, sqlite3_file **, int,int*); +SQLITE_PRIVATE void sqlite3OsCloseFree(sqlite3_file *); + +#endif /* _SQLITE_OS_H_ */ + +/************** End of os.h **************************************************/ +/************** Continuing where we left off in sqliteInt.h ******************/ /************** Include pager.h in the middle of sqliteInt.h *****************/ /************** Begin file pager.h *******************************************/ /* @@ -15151,7 +15768,7 @@ SQLITE_PRIVATE int sqlite3BtreeNewDb(Btree *p); ** reduce network bandwidth. ** ** Note that BTREE_HINT_FLAGS with BTREE_BULKLOAD is the only hint used by -** standard SQLite. The other hints are provided for extentions that use +** standard SQLite. The other hints are provided for extensions that use ** the SQLite parser and code generator but substitute their own storage ** engine. */ @@ -15297,7 +15914,15 @@ SQLITE_PRIVATE const void *sqlite3BtreePayloadFetch(BtCursor*, u32 *pAmt); SQLITE_PRIVATE u32 sqlite3BtreePayloadSize(BtCursor*); SQLITE_PRIVATE sqlite3_int64 sqlite3BtreeMaxRecordSize(BtCursor*); -SQLITE_PRIVATE char *sqlite3BtreeIntegrityCheck(sqlite3*,Btree*,Pgno*aRoot,int nRoot,int,int*); +SQLITE_PRIVATE int sqlite3BtreeIntegrityCheck( + sqlite3 *db, /* Database connection that is running the check */ + Btree *p, /* The btree to be checked */ + Pgno *aRoot, /* An array of root pages numbers for individual trees */ + int nRoot, /* Number of entries in aRoot[] */ + int mxErr, /* Stop reporting errors after this many */ + int *pnErr, /* OUT: Write number of errors seen to this variable */ + char **pzOut /* OUT: Write the error message string here */ +); SQLITE_PRIVATE struct Pager *sqlite3BtreePager(Btree*); SQLITE_PRIVATE i64 sqlite3BtreeRowCountEst(BtCursor*); @@ -15336,6 +15961,8 @@ SQLITE_PRIVATE int sqlite3BtreeCheckpoint(Btree*, int, int *, int *); SQLITE_PRIVATE int sqlite3BtreeTransferRow(BtCursor*, BtCursor*, i64); +SQLITE_PRIVATE void sqlite3BtreeClearCache(Btree*); + /* ** If we are not using shared cache, then there is no need to ** use mutexes to access the BtShared structures. So make the @@ -15452,14 +16079,14 @@ struct VdbeOp { #ifdef SQLITE_ENABLE_EXPLAIN_COMMENTS char *zComment; /* Comment to improve readability */ #endif -#ifdef VDBE_PROFILE - u32 cnt; /* Number of times this instruction was executed */ - u64 cycles; /* Total time spent executing this instruction */ -#endif #ifdef SQLITE_VDBE_COVERAGE u32 iSrcLine; /* Source-code line that generated this opcode ** with flags in the upper 8 bits */ #endif +#if defined(SQLITE_ENABLE_STMT_SCANSTATUS) || defined(VDBE_PROFILE) + u64 nExec; + u64 nCycle; +#endif }; typedef struct VdbeOp VdbeOp; @@ -15560,48 +16187,48 @@ typedef struct VdbeOpList VdbeOpList; #define OP_Vacuum 5 #define OP_VFilter 6 /* jump, synopsis: iplan=r[P3] zplan='P4' */ #define OP_VUpdate 7 /* synopsis: data=r[P3@P2] */ -#define OP_Goto 8 /* jump */ -#define OP_Gosub 9 /* jump */ -#define OP_InitCoroutine 10 /* jump */ -#define OP_Yield 11 /* jump */ -#define OP_MustBeInt 12 /* jump */ -#define OP_Jump 13 /* jump */ -#define OP_Once 14 /* jump */ -#define OP_If 15 /* jump */ -#define OP_IfNot 16 /* jump */ -#define OP_IsNullOrType 17 /* jump, synopsis: if typeof(r[P1]) IN (P3,5) goto P2 */ -#define OP_IfNullRow 18 /* jump, synopsis: if P1.nullRow then r[P3]=NULL, goto P2 */ +#define OP_Init 8 /* jump, synopsis: Start at P2 */ +#define OP_Goto 9 /* jump */ +#define OP_Gosub 10 /* jump */ +#define OP_InitCoroutine 11 /* jump */ +#define OP_Yield 12 /* jump */ +#define OP_MustBeInt 13 /* jump */ +#define OP_Jump 14 /* jump */ +#define OP_Once 15 /* jump */ +#define OP_If 16 /* jump */ +#define OP_IfNot 17 /* jump */ +#define OP_IsType 18 /* jump, synopsis: if typeof(P1.P3) in P5 goto P2 */ #define OP_Not 19 /* same as TK_NOT, synopsis: r[P2]= !r[P1] */ -#define OP_SeekLT 20 /* jump, synopsis: key=r[P3@P4] */ -#define OP_SeekLE 21 /* jump, synopsis: key=r[P3@P4] */ -#define OP_SeekGE 22 /* jump, synopsis: key=r[P3@P4] */ -#define OP_SeekGT 23 /* jump, synopsis: key=r[P3@P4] */ -#define OP_IfNotOpen 24 /* jump, synopsis: if( !csr[P1] ) goto P2 */ -#define OP_IfNoHope 25 /* jump, synopsis: key=r[P3@P4] */ -#define OP_NoConflict 26 /* jump, synopsis: key=r[P3@P4] */ -#define OP_NotFound 27 /* jump, synopsis: key=r[P3@P4] */ -#define OP_Found 28 /* jump, synopsis: key=r[P3@P4] */ -#define OP_SeekRowid 29 /* jump, synopsis: intkey=r[P3] */ -#define OP_NotExists 30 /* jump, synopsis: intkey=r[P3] */ -#define OP_Last 31 /* jump */ -#define OP_IfSmaller 32 /* jump */ -#define OP_SorterSort 33 /* jump */ -#define OP_Sort 34 /* jump */ -#define OP_Rewind 35 /* jump */ -#define OP_SorterNext 36 /* jump */ -#define OP_Prev 37 /* jump */ -#define OP_Next 38 /* jump */ -#define OP_IdxLE 39 /* jump, synopsis: key=r[P3@P4] */ -#define OP_IdxGT 40 /* jump, synopsis: key=r[P3@P4] */ -#define OP_IdxLT 41 /* jump, synopsis: key=r[P3@P4] */ -#define OP_IdxGE 42 /* jump, synopsis: key=r[P3@P4] */ +#define OP_IfNullRow 20 /* jump, synopsis: if P1.nullRow then r[P3]=NULL, goto P2 */ +#define OP_SeekLT 21 /* jump, synopsis: key=r[P3@P4] */ +#define OP_SeekLE 22 /* jump, synopsis: key=r[P3@P4] */ +#define OP_SeekGE 23 /* jump, synopsis: key=r[P3@P4] */ +#define OP_SeekGT 24 /* jump, synopsis: key=r[P3@P4] */ +#define OP_IfNotOpen 25 /* jump, synopsis: if( !csr[P1] ) goto P2 */ +#define OP_IfNoHope 26 /* jump, synopsis: key=r[P3@P4] */ +#define OP_NoConflict 27 /* jump, synopsis: key=r[P3@P4] */ +#define OP_NotFound 28 /* jump, synopsis: key=r[P3@P4] */ +#define OP_Found 29 /* jump, synopsis: key=r[P3@P4] */ +#define OP_SeekRowid 30 /* jump, synopsis: intkey=r[P3] */ +#define OP_NotExists 31 /* jump, synopsis: intkey=r[P3] */ +#define OP_Last 32 /* jump */ +#define OP_IfSmaller 33 /* jump */ +#define OP_SorterSort 34 /* jump */ +#define OP_Sort 35 /* jump */ +#define OP_Rewind 36 /* jump */ +#define OP_SorterNext 37 /* jump */ +#define OP_Prev 38 /* jump */ +#define OP_Next 39 /* jump */ +#define OP_IdxLE 40 /* jump, synopsis: key=r[P3@P4] */ +#define OP_IdxGT 41 /* jump, synopsis: key=r[P3@P4] */ +#define OP_IdxLT 42 /* jump, synopsis: key=r[P3@P4] */ #define OP_Or 43 /* same as TK_OR, synopsis: r[P3]=(r[P1] || r[P2]) */ #define OP_And 44 /* same as TK_AND, synopsis: r[P3]=(r[P1] && r[P2]) */ -#define OP_RowSetRead 45 /* jump, synopsis: r[P3]=rowset(P1) */ -#define OP_RowSetTest 46 /* jump, synopsis: if r[P3] in rowset(P1) goto P2 */ -#define OP_Program 47 /* jump */ -#define OP_FkIfZero 48 /* jump, synopsis: if fkctr[P1]==0 goto P2 */ -#define OP_IfPos 49 /* jump, synopsis: if r[P1]>0 then r[P1]-=P3, goto P2 */ +#define OP_IdxGE 45 /* jump, synopsis: key=r[P3@P4] */ +#define OP_RowSetRead 46 /* jump, synopsis: r[P3]=rowset(P1) */ +#define OP_RowSetTest 47 /* jump, synopsis: if r[P3] in rowset(P1) goto P2 */ +#define OP_Program 48 /* jump */ +#define OP_FkIfZero 49 /* jump, synopsis: if fkctr[P1]==0 goto P2 */ #define OP_IsNull 50 /* jump, same as TK_ISNULL, synopsis: if r[P1]==NULL goto P2 */ #define OP_NotNull 51 /* jump, same as TK_NOTNULL, synopsis: if r[P1]!=NULL goto P2 */ #define OP_Ne 52 /* jump, same as TK_NE, synopsis: IF r[P3]!=r[P1] */ @@ -15611,12 +16238,12 @@ typedef struct VdbeOpList VdbeOpList; #define OP_Lt 56 /* jump, same as TK_LT, synopsis: IF r[P3]=r[P1] */ #define OP_ElseEq 58 /* jump, same as TK_ESCAPE */ -#define OP_IfNotZero 59 /* jump, synopsis: if r[P1]!=0 then r[P1]--, goto P2 */ -#define OP_DecrJumpZero 60 /* jump, synopsis: if (--r[P1])==0 goto P2 */ -#define OP_IncrVacuum 61 /* jump */ -#define OP_VNext 62 /* jump */ -#define OP_Filter 63 /* jump, synopsis: if key(P3@P4) not in filter(P1) goto P2 */ -#define OP_Init 64 /* jump, synopsis: Start at P2 */ +#define OP_IfPos 59 /* jump, synopsis: if r[P1]>0 then r[P1]-=P3, goto P2 */ +#define OP_IfNotZero 60 /* jump, synopsis: if r[P1]!=0 then r[P1]--, goto P2 */ +#define OP_DecrJumpZero 61 /* jump, synopsis: if (--r[P1])==0 goto P2 */ +#define OP_IncrVacuum 62 /* jump */ +#define OP_VNext 63 /* jump */ +#define OP_Filter 64 /* jump, synopsis: if key(P3@P4) not in filter(P1) goto P2 */ #define OP_PureFunc 65 /* synopsis: r[P3]=func(r[P2@NP]) */ #define OP_Function 66 /* synopsis: r[P3]=func(r[P2@NP]) */ #define OP_Return 67 @@ -15750,29 +16377,30 @@ typedef struct VdbeOpList VdbeOpList; #define OPFLG_IN3 0x08 /* in3: P3 is an input */ #define OPFLG_OUT2 0x10 /* out2: P2 is an output */ #define OPFLG_OUT3 0x20 /* out3: P3 is an output */ +#define OPFLG_NCYCLE 0x40 /* ncycle:Cycles count against P1 */ #define OPFLG_INITIALIZER {\ -/* 0 */ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00,\ -/* 8 */ 0x01, 0x01, 0x01, 0x03, 0x03, 0x01, 0x01, 0x03,\ -/* 16 */ 0x03, 0x03, 0x01, 0x12, 0x09, 0x09, 0x09, 0x09,\ -/* 24 */ 0x01, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x01,\ -/* 32 */ 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\ -/* 40 */ 0x01, 0x01, 0x01, 0x26, 0x26, 0x23, 0x0b, 0x01,\ -/* 48 */ 0x01, 0x03, 0x03, 0x03, 0x0b, 0x0b, 0x0b, 0x0b,\ -/* 56 */ 0x0b, 0x0b, 0x01, 0x03, 0x03, 0x01, 0x01, 0x01,\ +/* 0 */ 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x41, 0x00,\ +/* 8 */ 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x01, 0x01,\ +/* 16 */ 0x03, 0x03, 0x01, 0x12, 0x01, 0x49, 0x49, 0x49,\ +/* 24 */ 0x49, 0x01, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,\ +/* 32 */ 0x41, 0x01, 0x01, 0x01, 0x41, 0x01, 0x41, 0x41,\ +/* 40 */ 0x41, 0x41, 0x41, 0x26, 0x26, 0x41, 0x23, 0x0b,\ +/* 48 */ 0x01, 0x01, 0x03, 0x03, 0x0b, 0x0b, 0x0b, 0x0b,\ +/* 56 */ 0x0b, 0x0b, 0x01, 0x03, 0x03, 0x03, 0x01, 0x41,\ /* 64 */ 0x01, 0x00, 0x00, 0x02, 0x02, 0x08, 0x00, 0x10,\ /* 72 */ 0x10, 0x10, 0x00, 0x10, 0x00, 0x10, 0x10, 0x00,\ /* 80 */ 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x02, 0x02,\ -/* 88 */ 0x02, 0x00, 0x00, 0x12, 0x1e, 0x20, 0x00, 0x00,\ -/* 96 */ 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x26, 0x26,\ +/* 88 */ 0x02, 0x00, 0x00, 0x12, 0x1e, 0x20, 0x40, 0x00,\ +/* 96 */ 0x00, 0x00, 0x10, 0x10, 0x00, 0x40, 0x26, 0x26,\ /* 104 */ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,\ -/* 112 */ 0x00, 0x00, 0x12, 0x00, 0x00, 0x10, 0x00, 0x00,\ -/* 120 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10,\ -/* 128 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,\ -/* 136 */ 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x10, 0x00,\ +/* 112 */ 0x40, 0x00, 0x12, 0x40, 0x40, 0x10, 0x40, 0x00,\ +/* 120 */ 0x00, 0x00, 0x40, 0x00, 0x40, 0x40, 0x10, 0x10,\ +/* 128 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50,\ +/* 136 */ 0x00, 0x40, 0x04, 0x04, 0x00, 0x40, 0x50, 0x40,\ /* 144 */ 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,\ /* 152 */ 0x00, 0x10, 0x00, 0x00, 0x06, 0x10, 0x00, 0x04,\ /* 160 */ 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ -/* 168 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,\ +/* 168 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x50, 0x40,\ /* 176 */ 0x00, 0x10, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00,\ /* 184 */ 0x00, 0x00, 0x00,} @@ -15827,14 +16455,20 @@ SQLITE_PRIVATE void sqlite3VdbeNoJumpsOutsideSubrtn(Vdbe*,int,int,int); #endif SQLITE_PRIVATE VdbeOp *sqlite3VdbeAddOpList(Vdbe*, int nOp, VdbeOpList const *aOp,int iLineno); #ifndef SQLITE_OMIT_EXPLAIN -SQLITE_PRIVATE void sqlite3VdbeExplain(Parse*,u8,const char*,...); +SQLITE_PRIVATE int sqlite3VdbeExplain(Parse*,u8,const char*,...); SQLITE_PRIVATE void sqlite3VdbeExplainPop(Parse*); SQLITE_PRIVATE int sqlite3VdbeExplainParent(Parse*); # define ExplainQueryPlan(P) sqlite3VdbeExplain P +# ifdef SQLITE_ENABLE_STMT_SCANSTATUS +# define ExplainQueryPlan2(V,P) (V = sqlite3VdbeExplain P) +# else +# define ExplainQueryPlan2(V,P) ExplainQueryPlan(P) +# endif # define ExplainQueryPlanPop(P) sqlite3VdbeExplainPop(P) # define ExplainQueryPlanParent(P) sqlite3VdbeExplainParent(P) #else # define ExplainQueryPlan(P) +# define ExplainQueryPlan2(V,P) # define ExplainQueryPlanPop(P) # define ExplainQueryPlanParent(P) 0 # define sqlite3ExplainBreakpoint(A,B) /*no-op*/ @@ -15850,6 +16484,7 @@ SQLITE_PRIVATE void sqlite3VdbeChangeP1(Vdbe*, int addr, int P1); SQLITE_PRIVATE void sqlite3VdbeChangeP2(Vdbe*, int addr, int P2); SQLITE_PRIVATE void sqlite3VdbeChangeP3(Vdbe*, int addr, int P3); SQLITE_PRIVATE void sqlite3VdbeChangeP5(Vdbe*, u16 P5); +SQLITE_PRIVATE void sqlite3VdbeTypeofColumn(Vdbe*, int); SQLITE_PRIVATE void sqlite3VdbeJumpHere(Vdbe*, int addr); SQLITE_PRIVATE void sqlite3VdbeJumpHereOrPopInst(Vdbe*, int addr); SQLITE_PRIVATE int sqlite3VdbeChangeToNoop(Vdbe*, int addr); @@ -15864,6 +16499,7 @@ SQLITE_PRIVATE void sqlite3VdbeAppendP4(Vdbe*, void *pP4, int p4type); SQLITE_PRIVATE void sqlite3VdbeSetP4KeyInfo(Parse*, Index*); SQLITE_PRIVATE void sqlite3VdbeUsesBtree(Vdbe*, int); SQLITE_PRIVATE VdbeOp *sqlite3VdbeGetOp(Vdbe*, int); +SQLITE_PRIVATE VdbeOp *sqlite3VdbeGetLastOp(Vdbe*); SQLITE_PRIVATE int sqlite3VdbeMakeLabel(Parse*); SQLITE_PRIVATE void sqlite3VdbeRunOnlyOnce(Vdbe*); SQLITE_PRIVATE void sqlite3VdbeReusable(Vdbe*); @@ -16005,14 +16641,22 @@ SQLITE_PRIVATE void sqlite3VdbeSetLineNumber(Vdbe*,int); #ifdef SQLITE_ENABLE_STMT_SCANSTATUS SQLITE_PRIVATE void sqlite3VdbeScanStatus(Vdbe*, int, int, int, LogEst, const char*); +SQLITE_PRIVATE void sqlite3VdbeScanStatusRange(Vdbe*, int, int, int); +SQLITE_PRIVATE void sqlite3VdbeScanStatusCounters(Vdbe*, int, int, int); #else -# define sqlite3VdbeScanStatus(a,b,c,d,e) +# define sqlite3VdbeScanStatus(a,b,c,d,e,f) +# define sqlite3VdbeScanStatusRange(a,b,c,d) +# define sqlite3VdbeScanStatusCounters(a,b,c,d) #endif #if defined(SQLITE_DEBUG) || defined(VDBE_PROFILE) SQLITE_PRIVATE void sqlite3VdbePrintOp(FILE*, int, VdbeOp*); #endif +#if defined(SQLITE_ENABLE_CURSOR_HINTS) && defined(SQLITE_DEBUG) +SQLITE_PRIVATE int sqlite3CursorRangeHintExprCheck(Walker *pWalker, Expr *pExpr); +#endif + #endif /* SQLITE_VDBE_H */ /************** End of vdbe.h ************************************************/ @@ -16061,7 +16705,7 @@ struct PgHdr { ** private to pcache.c and should not be accessed by other modules. ** pCache is grouped with the public elements for efficiency. */ - i16 nRef; /* Number of users of this page */ + i64 nRef; /* Number of users of this page */ PgHdr *pDirtyNext; /* Next element in list of dirty pages */ PgHdr *pDirtyPrev; /* Previous element in list of dirty pages */ /* NB: pDirtyNext and pDirtyPrev are undefined if the @@ -16142,12 +16786,12 @@ SQLITE_PRIVATE void sqlite3PcacheClearSyncFlags(PCache *); SQLITE_PRIVATE void sqlite3PcacheClear(PCache*); /* Return the total number of outstanding page references */ -SQLITE_PRIVATE int sqlite3PcacheRefCount(PCache*); +SQLITE_PRIVATE i64 sqlite3PcacheRefCount(PCache*); /* Increment the reference count of an existing page */ SQLITE_PRIVATE void sqlite3PcacheRef(PgHdr*); -SQLITE_PRIVATE int sqlite3PcachePageRefcount(PgHdr*); +SQLITE_PRIVATE i64 sqlite3PcachePageRefcount(PgHdr*); /* Return the total number of pages stored in the cache */ SQLITE_PRIVATE int sqlite3PcachePagecount(PCache*); @@ -16212,297 +16856,6 @@ SQLITE_PRIVATE int sqlite3PCacheIsDirty(PCache *pCache); /************** End of pcache.h **********************************************/ /************** Continuing where we left off in sqliteInt.h ******************/ -/************** Include os.h in the middle of sqliteInt.h ********************/ -/************** Begin file os.h **********************************************/ -/* -** 2001 September 16 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** -** This header file (together with is companion C source-code file -** "os.c") attempt to abstract the underlying operating system so that -** the SQLite library will work on both POSIX and windows systems. -** -** This header file is #include-ed by sqliteInt.h and thus ends up -** being included by every source file. -*/ -#ifndef _SQLITE_OS_H_ -#define _SQLITE_OS_H_ - -/* -** Attempt to automatically detect the operating system and setup the -** necessary pre-processor macros for it. -*/ -/************** Include os_setup.h in the middle of os.h *********************/ -/************** Begin file os_setup.h ****************************************/ -/* -** 2013 November 25 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** -** This file contains pre-processor directives related to operating system -** detection and/or setup. -*/ -#ifndef SQLITE_OS_SETUP_H -#define SQLITE_OS_SETUP_H - -/* -** Figure out if we are dealing with Unix, Windows, or some other operating -** system. -** -** After the following block of preprocess macros, all of SQLITE_OS_UNIX, -** SQLITE_OS_WIN, and SQLITE_OS_OTHER will defined to either 1 or 0. One of -** the three will be 1. The other two will be 0. -*/ -#if defined(SQLITE_OS_OTHER) -# if SQLITE_OS_OTHER==1 -# undef SQLITE_OS_UNIX -# define SQLITE_OS_UNIX 0 -# undef SQLITE_OS_WIN -# define SQLITE_OS_WIN 0 -# else -# undef SQLITE_OS_OTHER -# endif -#endif -#if !defined(SQLITE_OS_UNIX) && !defined(SQLITE_OS_OTHER) -# define SQLITE_OS_OTHER 0 -# ifndef SQLITE_OS_WIN -# if defined(_WIN32) || defined(WIN32) || defined(__CYGWIN__) || \ - defined(__MINGW32__) || defined(__BORLANDC__) -# define SQLITE_OS_WIN 1 -# define SQLITE_OS_UNIX 0 -# else -# define SQLITE_OS_WIN 0 -# define SQLITE_OS_UNIX 1 -# endif -# else -# define SQLITE_OS_UNIX 0 -# endif -#else -# ifndef SQLITE_OS_WIN -# define SQLITE_OS_WIN 0 -# endif -#endif - -#endif /* SQLITE_OS_SETUP_H */ - -/************** End of os_setup.h ********************************************/ -/************** Continuing where we left off in os.h *************************/ - -/* If the SET_FULLSYNC macro is not defined above, then make it -** a no-op -*/ -#ifndef SET_FULLSYNC -# define SET_FULLSYNC(x,y) -#endif - -/* Maximum pathname length. Note: FILENAME_MAX defined by stdio.h -*/ -#ifndef SQLITE_MAX_PATHLEN -# define SQLITE_MAX_PATHLEN FILENAME_MAX -#endif - -/* Maximum number of symlinks that will be resolved while trying to -** expand a filename in xFullPathname() in the VFS. -*/ -#ifndef SQLITE_MAX_SYMLINK -# define SQLITE_MAX_SYMLINK 200 -#endif - -/* -** The default size of a disk sector -*/ -#ifndef SQLITE_DEFAULT_SECTOR_SIZE -# define SQLITE_DEFAULT_SECTOR_SIZE 4096 -#endif - -/* -** Temporary files are named starting with this prefix followed by 16 random -** alphanumeric characters, and no file extension. They are stored in the -** OS's standard temporary file directory, and are deleted prior to exit. -** If sqlite is being embedded in another program, you may wish to change the -** prefix to reflect your program's name, so that if your program exits -** prematurely, old temporary files can be easily identified. This can be done -** using -DSQLITE_TEMP_FILE_PREFIX=myprefix_ on the compiler command line. -** -** 2006-10-31: The default prefix used to be "sqlite_". But then -** Mcafee started using SQLite in their anti-virus product and it -** started putting files with the "sqlite" name in the c:/temp folder. -** This annoyed many windows users. Those users would then do a -** Google search for "sqlite", find the telephone numbers of the -** developers and call to wake them up at night and complain. -** For this reason, the default name prefix is changed to be "sqlite" -** spelled backwards. So the temp files are still identified, but -** anybody smart enough to figure out the code is also likely smart -** enough to know that calling the developer will not help get rid -** of the file. -*/ -#ifndef SQLITE_TEMP_FILE_PREFIX -# define SQLITE_TEMP_FILE_PREFIX "etilqs_" -#endif - -/* -** The following values may be passed as the second argument to -** sqlite3OsLock(). The various locks exhibit the following semantics: -** -** SHARED: Any number of processes may hold a SHARED lock simultaneously. -** RESERVED: A single process may hold a RESERVED lock on a file at -** any time. Other processes may hold and obtain new SHARED locks. -** PENDING: A single process may hold a PENDING lock on a file at -** any one time. Existing SHARED locks may persist, but no new -** SHARED locks may be obtained by other processes. -** EXCLUSIVE: An EXCLUSIVE lock precludes all other locks. -** -** PENDING_LOCK may not be passed directly to sqlite3OsLock(). Instead, a -** process that requests an EXCLUSIVE lock may actually obtain a PENDING -** lock. This can be upgraded to an EXCLUSIVE lock by a subsequent call to -** sqlite3OsLock(). -*/ -#define NO_LOCK 0 -#define SHARED_LOCK 1 -#define RESERVED_LOCK 2 -#define PENDING_LOCK 3 -#define EXCLUSIVE_LOCK 4 - -/* -** File Locking Notes: (Mostly about windows but also some info for Unix) -** -** We cannot use LockFileEx() or UnlockFileEx() on Win95/98/ME because -** those functions are not available. So we use only LockFile() and -** UnlockFile(). -** -** LockFile() prevents not just writing but also reading by other processes. -** A SHARED_LOCK is obtained by locking a single randomly-chosen -** byte out of a specific range of bytes. The lock byte is obtained at -** random so two separate readers can probably access the file at the -** same time, unless they are unlucky and choose the same lock byte. -** An EXCLUSIVE_LOCK is obtained by locking all bytes in the range. -** There can only be one writer. A RESERVED_LOCK is obtained by locking -** a single byte of the file that is designated as the reserved lock byte. -** A PENDING_LOCK is obtained by locking a designated byte different from -** the RESERVED_LOCK byte. -** -** On WinNT/2K/XP systems, LockFileEx() and UnlockFileEx() are available, -** which means we can use reader/writer locks. When reader/writer locks -** are used, the lock is placed on the same range of bytes that is used -** for probabilistic locking in Win95/98/ME. Hence, the locking scheme -** will support two or more Win95 readers or two or more WinNT readers. -** But a single Win95 reader will lock out all WinNT readers and a single -** WinNT reader will lock out all other Win95 readers. -** -** The following #defines specify the range of bytes used for locking. -** SHARED_SIZE is the number of bytes available in the pool from which -** a random byte is selected for a shared lock. The pool of bytes for -** shared locks begins at SHARED_FIRST. -** -** The same locking strategy and -** byte ranges are used for Unix. This leaves open the possibility of having -** clients on win95, winNT, and unix all talking to the same shared file -** and all locking correctly. To do so would require that samba (or whatever -** tool is being used for file sharing) implements locks correctly between -** windows and unix. I'm guessing that isn't likely to happen, but by -** using the same locking range we are at least open to the possibility. -** -** Locking in windows is manditory. For this reason, we cannot store -** actual data in the bytes used for locking. The pager never allocates -** the pages involved in locking therefore. SHARED_SIZE is selected so -** that all locks will fit on a single page even at the minimum page size. -** PENDING_BYTE defines the beginning of the locks. By default PENDING_BYTE -** is set high so that we don't have to allocate an unused page except -** for very large databases. But one should test the page skipping logic -** by setting PENDING_BYTE low and running the entire regression suite. -** -** Changing the value of PENDING_BYTE results in a subtly incompatible -** file format. Depending on how it is changed, you might not notice -** the incompatibility right away, even running a full regression test. -** The default location of PENDING_BYTE is the first byte past the -** 1GB boundary. -** -*/ -#ifdef SQLITE_OMIT_WSD -# define PENDING_BYTE (0x40000000) -#else -# define PENDING_BYTE sqlite3PendingByte -#endif -#define RESERVED_BYTE (PENDING_BYTE+1) -#define SHARED_FIRST (PENDING_BYTE+2) -#define SHARED_SIZE 510 - -/* -** Wrapper around OS specific sqlite3_os_init() function. -*/ -SQLITE_PRIVATE int sqlite3OsInit(void); - -/* -** Functions for accessing sqlite3_file methods -*/ -SQLITE_PRIVATE void sqlite3OsClose(sqlite3_file*); -SQLITE_PRIVATE int sqlite3OsRead(sqlite3_file*, void*, int amt, i64 offset); -SQLITE_PRIVATE int sqlite3OsWrite(sqlite3_file*, const void*, int amt, i64 offset); -SQLITE_PRIVATE int sqlite3OsTruncate(sqlite3_file*, i64 size); -SQLITE_PRIVATE int sqlite3OsSync(sqlite3_file*, int); -SQLITE_PRIVATE int sqlite3OsFileSize(sqlite3_file*, i64 *pSize); -SQLITE_PRIVATE int sqlite3OsLock(sqlite3_file*, int); -SQLITE_PRIVATE int sqlite3OsUnlock(sqlite3_file*, int); -SQLITE_PRIVATE int sqlite3OsCheckReservedLock(sqlite3_file *id, int *pResOut); -SQLITE_PRIVATE int sqlite3OsFileControl(sqlite3_file*,int,void*); -SQLITE_PRIVATE void sqlite3OsFileControlHint(sqlite3_file*,int,void*); -#define SQLITE_FCNTL_DB_UNCHANGED 0xca093fa0 -SQLITE_PRIVATE int sqlite3OsSectorSize(sqlite3_file *id); -SQLITE_PRIVATE int sqlite3OsDeviceCharacteristics(sqlite3_file *id); -#ifndef SQLITE_OMIT_WAL -SQLITE_PRIVATE int sqlite3OsShmMap(sqlite3_file *,int,int,int,void volatile **); -SQLITE_PRIVATE int sqlite3OsShmLock(sqlite3_file *id, int, int, int); -SQLITE_PRIVATE void sqlite3OsShmBarrier(sqlite3_file *id); -SQLITE_PRIVATE int sqlite3OsShmUnmap(sqlite3_file *id, int); -#endif /* SQLITE_OMIT_WAL */ -SQLITE_PRIVATE int sqlite3OsFetch(sqlite3_file *id, i64, int, void **); -SQLITE_PRIVATE int sqlite3OsUnfetch(sqlite3_file *, i64, void *); - - -/* -** Functions for accessing sqlite3_vfs methods -*/ -SQLITE_PRIVATE int sqlite3OsOpen(sqlite3_vfs *, const char *, sqlite3_file*, int, int *); -SQLITE_PRIVATE int sqlite3OsDelete(sqlite3_vfs *, const char *, int); -SQLITE_PRIVATE int sqlite3OsAccess(sqlite3_vfs *, const char *, int, int *pResOut); -SQLITE_PRIVATE int sqlite3OsFullPathname(sqlite3_vfs *, const char *, int, char *); -#ifndef SQLITE_OMIT_LOAD_EXTENSION -SQLITE_PRIVATE void *sqlite3OsDlOpen(sqlite3_vfs *, const char *); -SQLITE_PRIVATE void sqlite3OsDlError(sqlite3_vfs *, int, char *); -SQLITE_PRIVATE void (*sqlite3OsDlSym(sqlite3_vfs *, void *, const char *))(void); -SQLITE_PRIVATE void sqlite3OsDlClose(sqlite3_vfs *, void *); -#endif /* SQLITE_OMIT_LOAD_EXTENSION */ -SQLITE_PRIVATE int sqlite3OsRandomness(sqlite3_vfs *, int, char *); -SQLITE_PRIVATE int sqlite3OsSleep(sqlite3_vfs *, int); -SQLITE_PRIVATE int sqlite3OsGetLastError(sqlite3_vfs*); -SQLITE_PRIVATE int sqlite3OsCurrentTimeInt64(sqlite3_vfs *, sqlite3_int64*); - -/* -** Convenience functions for opening and closing files using -** sqlite3_malloc() to obtain space for the file-handle structure. -*/ -SQLITE_PRIVATE int sqlite3OsOpenMalloc(sqlite3_vfs *, const char *, sqlite3_file **, int,int*); -SQLITE_PRIVATE void sqlite3OsCloseFree(sqlite3_file *); - -#endif /* _SQLITE_OS_H_ */ - -/************** End of os.h **************************************************/ -/************** Continuing where we left off in sqliteInt.h ******************/ /************** Include mutex.h in the middle of sqliteInt.h *****************/ /************** Begin file mutex.h *******************************************/ /* @@ -16748,6 +17101,7 @@ struct Lookaside { #endif /* SQLITE_OMIT_TWOSIZE_LOOKASIDE */ void *pStart; /* First byte of available memory space */ void *pEnd; /* First byte past end of available space */ + void *pTrueEnd; /* True value of pEnd, when db->pnBytesFreed!=0 */ }; struct LookasideSlot { LookasideSlot *pNext; /* Next buffer in the list of free buffers */ @@ -17012,7 +17366,7 @@ struct sqlite3 { #define SQLITE_NullCallback 0x00000100 /* Invoke the callback once if the */ /* result set is empty */ #define SQLITE_IgnoreChecks 0x00000200 /* Do not enforce check constraints */ -#define SQLITE_ReadUncommit 0x00000400 /* READ UNCOMMITTED in shared-cache */ +#define SQLITE_StmtScanStatus 0x00000400 /* Enable stmt_scanstats() counters */ #define SQLITE_NoCkptOnClose 0x00000800 /* No checkpoint on close()/DETACH */ #define SQLITE_ReverseOrder 0x00001000 /* Reverse unordered SELECTs */ #define SQLITE_RecTriggers 0x00002000 /* Enable recursive triggers */ @@ -17038,6 +17392,7 @@ struct sqlite3 { /* DELETE, or UPDATE and return */ /* the count using a callback. */ #define SQLITE_CorruptRdOnly HI(0x00002) /* Prohibit writes due to error */ +#define SQLITE_ReadUncommit HI(0x00004) /* READ UNCOMMITTED in shared-cache */ /* Flags used only if debugging */ #ifdef SQLITE_DEBUG @@ -17092,6 +17447,9 @@ struct sqlite3 { #define SQLITE_ReleaseReg 0x00400000 /* Use OP_ReleaseReg for testing */ #define SQLITE_FlttnUnionAll 0x00800000 /* Disable the UNION ALL flattener */ /* TH3 expects this value ^^^^^^^^^^ See flatten04.test */ +#define SQLITE_IndexedExpr 0x01000000 /* Pull exprs from index when able */ +#define SQLITE_Coroutines 0x02000000 /* Co-routines for subqueries */ +#define SQLITE_NullUnusedCols 0x04000000 /* NULL unused columns in subqueries */ #define SQLITE_AllOpts 0xffffffff /* All optimizations */ /* @@ -17176,8 +17534,14 @@ struct FuncDestructor { ** SQLITE_FUNC_TYPEOF == OPFLAG_TYPEOFARG ** SQLITE_FUNC_CONSTANT == SQLITE_DETERMINISTIC from the API ** SQLITE_FUNC_DIRECT == SQLITE_DIRECTONLY from the API -** SQLITE_FUNC_UNSAFE == SQLITE_INNOCUOUS +** SQLITE_FUNC_UNSAFE == SQLITE_INNOCUOUS -- opposite meanings!!! ** SQLITE_FUNC_ENCMASK depends on SQLITE_UTF* macros in the API +** +** Note that even though SQLITE_FUNC_UNSAFE and SQLITE_INNOCUOUS have the +** same bit value, their meanings are inverted. SQLITE_FUNC_UNSAFE is +** used internally and if set means tha the function has side effects. +** SQLITE_INNOCUOUS is used by application code and means "not unsafe". +** See multiple instances of tag-20230109-1. */ #define SQLITE_FUNC_ENCMASK 0x0003 /* SQLITE_UTF8, SQLITE_UTF16BE or UTF16LE */ #define SQLITE_FUNC_LIKE 0x0004 /* Candidate for the LIKE optimization */ @@ -17294,7 +17658,7 @@ struct FuncDestructor { {nArg, SQLITE_FUNC_BUILTIN|SQLITE_FUNC_CONSTANT|SQLITE_UTF8, \ xPtr, 0, xFunc, 0, 0, 0, #zName, {0} } #define JFUNCTION(zName, nArg, iArg, xFunc) \ - {nArg, SQLITE_FUNC_BUILTIN|SQLITE_DETERMINISTIC|SQLITE_INNOCUOUS|\ + {nArg, SQLITE_FUNC_BUILTIN|SQLITE_DETERMINISTIC|\ SQLITE_FUNC_CONSTANT|SQLITE_UTF8, \ SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, 0, #zName, {0} } #define INLINE_FUNC(zName, nArg, iArg, mFlags) \ @@ -17486,6 +17850,7 @@ struct CollSeq { #define SQLITE_AFF_NUMERIC 0x43 /* 'C' */ #define SQLITE_AFF_INTEGER 0x44 /* 'D' */ #define SQLITE_AFF_REAL 0x45 /* 'E' */ +#define SQLITE_AFF_FLEXNUM 0x46 /* 'F' */ #define sqlite3IsNumericAffinity(X) ((X)>=SQLITE_AFF_NUMERIC) @@ -17556,6 +17921,7 @@ struct VTable { sqlite3_vtab *pVtab; /* Pointer to vtab instance */ int nRef; /* Number of pointers to this structure */ u8 bConstraint; /* True if constraints are supported */ + u8 bAllSchemas; /* True if might use any attached schema */ u8 eVtabRisk; /* Riskiness of allowing hacker access */ int iSavepoint; /* Depth of the SAVEPOINT stack */ VTable *pNext; /* Next in linked list (see above) */ @@ -17664,7 +18030,7 @@ struct Table { #ifndef SQLITE_OMIT_VIRTUALTABLE # define IsVirtual(X) ((X)->eTabType==TABTYP_VTAB) # define ExprIsVtab(X) \ - ((X)->op==TK_COLUMN && (X)->y.pTab!=0 && (X)->y.pTab->eTabType==TABTYP_VTAB) + ((X)->op==TK_COLUMN && (X)->y.pTab->eTabType==TABTYP_VTAB) #else # define IsVirtual(X) 0 # define ExprIsVtab(X) 0 @@ -17881,10 +18247,22 @@ struct UnpackedRecord { ** The Index.onError field determines whether or not the indexed columns ** must be unique and what to do if they are not. When Index.onError=OE_None, ** it means this is not a unique index. Otherwise it is a unique index -** and the value of Index.onError indicate the which conflict resolution -** algorithm to employ whenever an attempt is made to insert a non-unique +** and the value of Index.onError indicates which conflict resolution +** algorithm to employ when an attempt is made to insert a non-unique ** element. ** +** The colNotIdxed bitmask is used in combination with SrcItem.colUsed +** for a fast test to see if an index can serve as a covering index. +** colNotIdxed has a 1 bit for every column of the original table that +** is *not* available in the index. Thus the expression +** "colUsed & colNotIdxed" will be non-zero if the index is not a +** covering index. The most significant bit of of colNotIdxed will always +** be true (note-20221022-a). If a column beyond the 63rd column of the +** table is used, the "colUsed & colNotIdxed" test will always be non-zero +** and we have to assume either that the index is not covering, or use +** an alternative (slower) algorithm to determine whether or not +** the index is covering. +** ** While parsing a CREATE TABLE or CREATE INDEX statement in order to ** generate VDBE code (as opposed to parsing one read from an sqlite_schema ** table as part of parsing an existing database schema), transient instances @@ -17920,15 +18298,18 @@ struct Index { unsigned bNoQuery:1; /* Do not use this index to optimize queries */ unsigned bAscKeyBug:1; /* True if the bba7b69f9849b5bf bug applies */ unsigned bHasVCol:1; /* Index references one or more VIRTUAL columns */ + unsigned bHasExpr:1; /* Index contains an expression, either a literal + ** expression, or a reference to a VIRTUAL column */ #ifdef SQLITE_ENABLE_STAT4 int nSample; /* Number of elements in aSample[] */ + int mxSample; /* Number of slots allocated to aSample[] */ int nSampleCol; /* Size of IndexSample.anEq[] and so on */ tRowcnt *aAvgEq; /* Average nEq values for keys not in aSample */ IndexSample *aSample; /* Samples of the left-most key */ tRowcnt *aiRowEst; /* Non-logarithmic stat1 data for this index */ tRowcnt nRowEst0; /* Non-logarithmic number of rows in the index */ #endif - Bitmask colNotIdxed; /* 0 for unindexed columns in pTab */ + Bitmask colNotIdxed; /* Unindexed columns in pTab */ }; /* @@ -18003,16 +18384,15 @@ struct AggInfo { ** from source tables rather than from accumulators */ u8 useSortingIdx; /* In direct mode, reference the sorting index rather ** than the source table */ + u16 nSortingColumn; /* Number of columns in the sorting index */ int sortingIdx; /* Cursor number of the sorting index */ int sortingIdxPTab; /* Cursor number of pseudo-table */ - int nSortingColumn; /* Number of columns in the sorting index */ - int mnReg, mxReg; /* Range of registers allocated for aCol and aFunc */ + int iFirstReg; /* First register in range for aCol[] and aFunc[] */ ExprList *pGroupBy; /* The group by clause */ struct AggInfo_col { /* For each column used in source tables */ Table *pTab; /* Source table */ Expr *pCExpr; /* The original expression */ int iTable; /* Cursor number of the source table */ - int iMem; /* Memory location that acts as accumulator */ i16 iColumn; /* Column number within the source table */ i16 iSorterColumn; /* Column number in the sorting index */ } *aCol; @@ -18023,14 +18403,27 @@ struct AggInfo { struct AggInfo_func { /* For each aggregate function */ Expr *pFExpr; /* Expression encoding the function */ FuncDef *pFunc; /* The aggregate function implementation */ - int iMem; /* Memory location that acts as accumulator */ int iDistinct; /* Ephemeral table used to enforce DISTINCT */ int iDistAddr; /* Address of OP_OpenEphemeral */ } *aFunc; int nFunc; /* Number of entries in aFunc[] */ u32 selId; /* Select to which this AggInfo belongs */ +#ifdef SQLITE_DEBUG + Select *pSelect; /* SELECT statement that this AggInfo supports */ +#endif }; +/* +** Macros to compute aCol[] and aFunc[] register numbers. +** +** These macros should not be used prior to the call to +** assignAggregateRegisters() that computes the value of pAggInfo->iFirstReg. +** The assert()s that are part of this macro verify that constraint. +*/ +#define AggInfoColumnReg(A,I) (assert((A)->iFirstReg),(A)->iFirstReg+(I)) +#define AggInfoFuncReg(A,I) \ + (assert((A)->iFirstReg),(A)->iFirstReg+(A)->nColumn+(I)) + /* ** The datatype ynVar is a signed integer, either 16-bit or 32-bit. ** Usually it is 16-bits. But if SQLITE_MAX_VARIABLE_NUMBER is greater @@ -18196,7 +18589,7 @@ struct Expr { #define EP_Reduced 0x004000 /* Expr struct EXPR_REDUCEDSIZE bytes only */ #define EP_Win 0x008000 /* Contains window functions */ #define EP_TokenOnly 0x010000 /* Expr struct EXPR_TOKENONLYSIZE bytes only */ -#define EP_MemToken 0x020000 /* Need to sqlite3DbFree() Expr.zToken */ + /* 0x020000 // Available for reuse */ #define EP_IfNullRow 0x040000 /* The TK_IF_NULL_ROW opcode */ #define EP_Unlikely 0x080000 /* unlikely() or likelihood() function */ #define EP_ConstFunc 0x100000 /* A SQLITE_FUNC_CONSTANT or _SLOCHNG function */ @@ -18381,6 +18774,14 @@ struct IdList { ** The SrcItem object represents a single term in the FROM clause of a query. ** The SrcList object is mostly an array of SrcItems. ** +** The jointype starts out showing the join type between the current table +** and the next table on the list. The parser builds the list this way. +** But sqlite3SrcListShiftJoinType() later shifts the jointypes so that each +** jointype expresses the join between the table and the previous table. +** +** In the colUsed field, the high-order bit (bit 63) is set if the table +** contains more than 63 columns and the 64-th or later column is used. +** ** Union member validity: ** ** u1.zIndexedBy fg.isIndexedBy && !fg.isTabFunc @@ -18420,14 +18821,14 @@ struct SrcItem { Expr *pOn; /* fg.isUsing==0 => The ON clause of a join */ IdList *pUsing; /* fg.isUsing==1 => The USING clause of a join */ } u3; - Bitmask colUsed; /* Bit N (1<62 */ union { char *zIndexedBy; /* Identifier from "INDEXED BY " clause */ ExprList *pFuncArg; /* Arguments to table-valued-function */ } u1; union { Index *pIBIndex; /* Index structure corresponding to u1.zIndexedBy */ - CteUse *pCteUse; /* CTE Usage info info fg.isCte is true */ + CteUse *pCteUse; /* CTE Usage info when fg.isCte is true */ } u2; }; @@ -18441,23 +18842,11 @@ struct OnOrUsing { }; /* -** The following structure describes the FROM clause of a SELECT statement. -** Each table or subquery in the FROM clause is a separate element of -** the SrcList.a[] array. +** This object represents one or more tables that are the source of +** content for an SQL statement. For example, a single SrcList object +** is used to hold the FROM clause of a SELECT statement. SrcList also +** represents the target tables for DELETE, INSERT, and UPDATE statements. ** -** With the addition of multiple database support, the following structure -** can also be used to describe a particular table such as the table that -** is modified by an INSERT, DELETE, or UPDATE statement. In standard SQL, -** such a table must be a simple name: ID. But in SQLite, the table can -** now be identified by a database name, a dot, then the table name: ID.ID. -** -** The jointype starts out showing the join type between the current table -** and the next table on the list. The parser builds the list this way. -** But sqlite3SrcListShiftJoinType() later shifts the jointypes so that each -** jointype expresses the join between the table and the previous table. -** -** In the colUsed field, the high-order bit (bit 63) is set if the table -** contains more than 63 columns and the 64-th or later column is used. */ struct SrcList { int nSrc; /* Number of tables or subqueries in the FROM clause */ @@ -18565,7 +18954,7 @@ struct NameContext { #define NC_HasAgg 0x000010 /* One or more aggregate functions seen */ #define NC_IdxExpr 0x000020 /* True if resolving columns of CREATE INDEX */ #define NC_SelfRef 0x00002e /* Combo: PartIdx, isCheck, GenCol, and IdxExpr */ -#define NC_VarSelect 0x000040 /* A correlated subquery has been seen */ +#define NC_Subquery 0x000040 /* A subquery has been seen */ #define NC_UEList 0x000080 /* True if uNC.pEList is used */ #define NC_UAggInfo 0x000100 /* True if uNC.pAggInfo is used */ #define NC_UUpsert 0x000200 /* True if uNC.pUpsert is used */ @@ -18694,6 +19083,7 @@ struct Select { #define SF_MultiPart 0x2000000 /* Has multiple incompatible PARTITIONs */ #define SF_CopyCte 0x4000000 /* SELECT statement is a copy of a CTE */ #define SF_OrderByReqd 0x8000000 /* The ORDER BY clause may not be omitted */ +#define SF_UpdateFrom 0x10000000 /* Query originates with UPDATE FROM */ /* True if S exists and has SF_NestedFrom */ #define IsNestedFrom(S) ((S)!=0 && ((S)->selFlags&SF_NestedFrom)!=0) @@ -18802,7 +19192,7 @@ struct SelectDest { int iSDParm2; /* A second parameter for the eDest disposal method */ int iSdst; /* Base register where results are written */ int nSdst; /* Number of registers allocated */ - char *zAffSdst; /* Affinity used when eDest==SRT_Set */ + char *zAffSdst; /* Affinity used for SRT_Set */ ExprList *pOrderBy; /* Key columns for SRT_Queue and SRT_DistQueue */ }; @@ -18861,12 +19251,35 @@ struct TriggerPrg { #else typedef unsigned int yDbMask; # define DbMaskTest(M,I) (((M)&(((yDbMask)1)<<(I)))!=0) -# define DbMaskZero(M) (M)=0 -# define DbMaskSet(M,I) (M)|=(((yDbMask)1)<<(I)) -# define DbMaskAllZero(M) (M)==0 -# define DbMaskNonZero(M) (M)!=0 +# define DbMaskZero(M) ((M)=0) +# define DbMaskSet(M,I) ((M)|=(((yDbMask)1)<<(I))) +# define DbMaskAllZero(M) ((M)==0) +# define DbMaskNonZero(M) ((M)!=0) #endif +/* +** For each index X that has as one of its arguments either an expression +** or the name of a virtual generated column, and if X is in scope such that +** the value of the expression can simply be read from the index, then +** there is an instance of this object on the Parse.pIdxExpr list. +** +** During code generation, while generating code to evaluate expressions, +** this list is consulted and if a matching expression is found, the value +** is read from the index rather than being recomputed. +*/ +struct IndexedExpr { + Expr *pExpr; /* The expression contained in the index */ + int iDataCur; /* The data cursor associated with the index */ + int iIdxCur; /* The index cursor */ + int iIdxCol; /* The index column that contains value of pExpr */ + u8 bMaybeNullRow; /* True if we need an OP_IfNullRow check */ + u8 aff; /* Affinity of the pExpr expression */ + IndexedExpr *pIENext; /* Next in a list of all indexed expressions */ +#ifdef SQLITE_ENABLE_EXPLAIN_COMMENTS + const char *zIdxName; /* Name of index, used only for bytecode comments */ +#endif +}; + /* ** An instance of the ParseCleanup object specifies an operation that ** should be performed after parsing to deallocation resources obtained @@ -18908,10 +19321,13 @@ struct Parse { u8 hasCompound; /* Need to invoke convertCompoundSelectToSubquery() */ u8 okConstFactor; /* OK to factor out constants */ u8 disableLookaside; /* Number of times lookaside has been disabled */ - u8 disableVtab; /* Disable all virtual tables for this parse */ + u8 prepFlags; /* SQLITE_PREPARE_* flags */ u8 withinRJSubrtn; /* Nesting level for RIGHT JOIN body subroutines */ #if defined(SQLITE_DEBUG) || defined(SQLITE_COVERAGE_TEST) u8 earlyCleanup; /* OOM inside sqlite3ParserAddCleanup() */ +#endif +#ifdef SQLITE_DEBUG + u8 ifNotExists; /* Might be true if IF NOT EXISTS. Assert()s only */ #endif int nRangeReg; /* Size of the temporary register block */ int iRangeReg; /* First register in temporary register block */ @@ -18925,6 +19341,7 @@ struct Parse { int nLabelAlloc; /* Number of slots in aLabel */ int *aLabel; /* Space to hold the labels */ ExprList *pConstExpr;/* Constant expressions */ + IndexedExpr *pIdxEpr;/* List of expressions used by active indexes */ Token constraintName;/* Name of the constraint currently being parsed */ yDbMask writeMask; /* Start a write transaction on these databases */ yDbMask cookieMask; /* Bitmask of schema verified databases */ @@ -18948,6 +19365,9 @@ struct Parse { u32 nQueryLoop; /* Est number of iterations of a query (10*log2(N)) */ u32 oldmask; /* Mask of old.* columns referenced */ u32 newmask; /* Mask of new.* columns referenced */ +#ifndef SQLITE_OMIT_PROGRESS_CALLBACK + u32 nProgressSteps; /* xProgress steps taken during sqlite3_prepare() */ +#endif u8 eTriggerOp; /* TK_UPDATE, TK_INSERT or TK_DELETE */ u8 bReturning; /* Coding a RETURNING trigger */ u8 eOrconf; /* Default ON CONFLICT policy for trigger steps */ @@ -19360,15 +19780,16 @@ struct Walker { struct RefSrcList *pRefSrcList; /* sqlite3ReferencesSrcList() */ int *aiCol; /* array of column indexes */ struct IdxCover *pIdxCover; /* Check for index coverage */ - struct IdxExprTrans *pIdxTrans; /* Convert idxed expr to column */ ExprList *pGroupBy; /* GROUP BY clause */ Select *pSelect; /* HAVING to WHERE clause ctx */ struct WindowRewrite *pRewrite; /* Window rewrite context */ struct WhereConst *pConst; /* WHERE clause constants */ struct RenameCtx *pRename; /* RENAME COLUMN context */ struct Table *pTab; /* Table of generated column */ + struct CoveringIndexCheck *pCovIdxCk; /* Check for covering index */ SrcItem *pSrcItem; /* A single FROM clause item */ - DbFixer *pFix; + DbFixer *pFix; /* See sqlite3FixSelect() */ + Mem *aMem; /* See sqlite3BtreeCursorHint() */ } u; }; @@ -19638,6 +20059,8 @@ SQLITE_PRIVATE int sqlite3CorruptPgnoError(int,Pgno); # define sqlite3Isxdigit(x) (sqlite3CtypeMap[(unsigned char)(x)]&0x08) # define sqlite3Tolower(x) (sqlite3UpperToLower[(unsigned char)(x)]) # define sqlite3Isquote(x) (sqlite3CtypeMap[(unsigned char)(x)]&0x80) +# define sqlite3JsonId1(x) (sqlite3CtypeMap[(unsigned char)(x)]&0x42) +# define sqlite3JsonId2(x) (sqlite3CtypeMap[(unsigned char)(x)]&0x46) #else # define sqlite3Toupper(x) toupper((unsigned char)(x)) # define sqlite3Isspace(x) isspace((unsigned char)(x)) @@ -19647,6 +20070,8 @@ SQLITE_PRIVATE int sqlite3CorruptPgnoError(int,Pgno); # define sqlite3Isxdigit(x) isxdigit((unsigned char)(x)) # define sqlite3Tolower(x) tolower((unsigned char)(x)) # define sqlite3Isquote(x) ((x)=='"'||(x)=='\''||(x)=='['||(x)=='`') +# define sqlite3JsonId1(x) (sqlite3IsIdChar(x)&&(x)<'0') +# define sqlite3JsonId2(x) sqlite3IsIdChar(x) #endif SQLITE_PRIVATE int sqlite3IsIdChar(u8); @@ -19674,6 +20099,7 @@ SQLITE_PRIVATE void *sqlite3DbReallocOrFree(sqlite3 *, void *, u64); SQLITE_PRIVATE void *sqlite3DbRealloc(sqlite3 *, void *, u64); SQLITE_PRIVATE void sqlite3DbFree(sqlite3*, void*); SQLITE_PRIVATE void sqlite3DbFreeNN(sqlite3*, void*); +SQLITE_PRIVATE void sqlite3DbNNFreeNN(sqlite3*, void*); SQLITE_PRIVATE int sqlite3MallocSize(const void*); SQLITE_PRIVATE int sqlite3DbMallocSize(sqlite3*, const void*); SQLITE_PRIVATE void *sqlite3PageMalloc(int); @@ -19694,12 +20120,14 @@ SQLITE_PRIVATE int sqlite3HeapNearlyFull(void); */ #ifdef SQLITE_USE_ALLOCA # define sqlite3StackAllocRaw(D,N) alloca(N) -# define sqlite3StackAllocZero(D,N) memset(alloca(N), 0, N) +# define sqlite3StackAllocRawNN(D,N) alloca(N) # define sqlite3StackFree(D,P) +# define sqlite3StackFreeNN(D,P) #else # define sqlite3StackAllocRaw(D,N) sqlite3DbMallocRaw(D,N) -# define sqlite3StackAllocZero(D,N) sqlite3DbMallocZero(D,N) +# define sqlite3StackAllocRawNN(D,N) sqlite3DbMallocRawNN(D,N) # define sqlite3StackFree(D,P) sqlite3DbFree(D,P) +# define sqlite3StackFreeNN(D,P) sqlite3DbFreeNN(D,P) #endif /* Do not allow both MEMSYS5 and MEMSYS3 to be defined together. If they @@ -19822,6 +20250,7 @@ SQLITE_PRIVATE void sqlite3ShowWinFunc(const Window*); #endif SQLITE_PRIVATE void sqlite3SetString(char **, sqlite3*, const char*); +SQLITE_PRIVATE void sqlite3ProgressCheck(Parse*); SQLITE_PRIVATE void sqlite3ErrorMsg(Parse*, const char*, ...); SQLITE_PRIVATE int sqlite3ErrorToParser(sqlite3*,int); SQLITE_PRIVATE void sqlite3Dequote(char*); @@ -19836,6 +20265,10 @@ SQLITE_PRIVATE void sqlite3ReleaseTempReg(Parse*,int); SQLITE_PRIVATE int sqlite3GetTempRange(Parse*,int); SQLITE_PRIVATE void sqlite3ReleaseTempRange(Parse*,int,int); SQLITE_PRIVATE void sqlite3ClearTempRegCache(Parse*); +SQLITE_PRIVATE void sqlite3TouchRegister(Parse*,int); +#if defined(SQLITE_ENABLE_STAT4) || defined(SQLITE_DEBUG) +SQLITE_PRIVATE int sqlite3FirstAvailableRegister(Parse*,int); +#endif #ifdef SQLITE_DEBUG SQLITE_PRIVATE int sqlite3NoTempsInRange(Parse*,int,int); #endif @@ -19879,7 +20312,7 @@ SQLITE_PRIVATE const char *sqlite3ColumnColl(Column*); SQLITE_PRIVATE void sqlite3DeleteColumnNames(sqlite3*,Table*); SQLITE_PRIVATE void sqlite3GenerateColumnNames(Parse *pParse, Select *pSelect); SQLITE_PRIVATE int sqlite3ColumnsFromExprList(Parse*,ExprList*,i16*,Column**); -SQLITE_PRIVATE void sqlite3SelectAddColumnTypeAndCollation(Parse*,Table*,Select*,char); +SQLITE_PRIVATE void sqlite3SubqueryColumnTypes(Parse*,Table*,Select*,char); SQLITE_PRIVATE Table *sqlite3ResultSetOfSelect(Parse*,Select*,char); SQLITE_PRIVATE void sqlite3OpenSchemaTable(Parse *, int); SQLITE_PRIVATE Index *sqlite3PrimaryKeyIndex(Table*); @@ -19986,7 +20419,7 @@ SQLITE_PRIVATE Select *sqlite3SelectNew(Parse*,ExprList*,SrcList*,Expr*,ExprList Expr*,ExprList*,u32,Expr*); SQLITE_PRIVATE void sqlite3SelectDelete(sqlite3*, Select*); SQLITE_PRIVATE Table *sqlite3SrcListLookup(Parse*, SrcList*); -SQLITE_PRIVATE int sqlite3IsReadOnly(Parse*, Table*, int); +SQLITE_PRIVATE int sqlite3IsReadOnly(Parse*, Table*, Trigger*); SQLITE_PRIVATE void sqlite3OpenTable(Parse*, int iCur, int iDb, Table*, int); #if defined(SQLITE_ENABLE_UPDATE_DELETE_LIMIT) && !defined(SQLITE_OMIT_SUBQUERY) SQLITE_PRIVATE Expr *sqlite3LimitWhere(Parse*,SrcList*,Expr*,ExprList*,Expr*,char*); @@ -20075,7 +20508,7 @@ SQLITE_PRIVATE int sqlite3ExprIsConstantNotJoin(Expr*); SQLITE_PRIVATE int sqlite3ExprIsConstantOrFunction(Expr*, u8); SQLITE_PRIVATE int sqlite3ExprIsConstantOrGroupBy(Parse*, Expr*, ExprList*); SQLITE_PRIVATE int sqlite3ExprIsTableConstant(Expr*,int); -SQLITE_PRIVATE int sqlite3ExprIsTableConstraint(Expr*,const SrcItem*); +SQLITE_PRIVATE int sqlite3ExprIsSingleTableConstraint(Expr*,const SrcList*,int); #ifdef SQLITE_ENABLE_CURSOR_HINTS SQLITE_PRIVATE int sqlite3ExprContainsSubquery(Expr*); #endif @@ -20198,7 +20631,8 @@ SQLITE_PRIVATE int sqlite3FixSelect(DbFixer*, Select*); SQLITE_PRIVATE int sqlite3FixExpr(DbFixer*, Expr*); SQLITE_PRIVATE int sqlite3FixTriggerStep(DbFixer*, TriggerStep*); SQLITE_PRIVATE int sqlite3RealSameAsInt(double,sqlite3_int64); -SQLITE_PRIVATE void sqlite3Int64ToText(i64,char*); +SQLITE_PRIVATE i64 sqlite3RealToI64(double); +SQLITE_PRIVATE int sqlite3Int64ToText(i64,char*); SQLITE_PRIVATE int sqlite3AtoF(const char *z, double*, int, u8); SQLITE_PRIVATE int sqlite3GetInt32(const char *, int*); SQLITE_PRIVATE int sqlite3GetUInt32(const char*, u32*); @@ -20243,11 +20677,13 @@ SQLITE_PRIVATE int sqlite3VarintLen(u64 v); SQLITE_PRIVATE const char *sqlite3IndexAffinityStr(sqlite3*, Index*); +SQLITE_PRIVATE char *sqlite3TableAffinityStr(sqlite3*,const Table*); SQLITE_PRIVATE void sqlite3TableAffinity(Vdbe*, Table*, int); SQLITE_PRIVATE char sqlite3CompareAffinity(const Expr *pExpr, char aff2); SQLITE_PRIVATE int sqlite3IndexAffinityOk(const Expr *pExpr, char idx_affinity); SQLITE_PRIVATE char sqlite3TableColumnAffinity(const Table*,int); SQLITE_PRIVATE char sqlite3ExprAffinity(const Expr *pExpr); +SQLITE_PRIVATE int sqlite3ExprDataType(const Expr *pExpr); SQLITE_PRIVATE int sqlite3Atoi64(const char*, i64*, int, u8); SQLITE_PRIVATE int sqlite3DecOrHexToI64(const char*, i64*); SQLITE_PRIVATE void sqlite3ErrorWithMsg(sqlite3*, int, const char*,...); @@ -20264,6 +20700,9 @@ SQLITE_PRIVATE const char *sqlite3ErrName(int); #ifndef SQLITE_OMIT_DESERIALIZE SQLITE_PRIVATE int sqlite3MemdbInit(void); +SQLITE_PRIVATE int sqlite3IsMemdb(const sqlite3_vfs*); +#else +# define sqlite3IsMemdb(X) 0 #endif SQLITE_PRIVATE const char *sqlite3ErrStr(int); @@ -20314,7 +20753,6 @@ SQLITE_PRIVATE const unsigned char sqlite3OpcodeProperty[]; SQLITE_PRIVATE const char sqlite3StrBINARY[]; SQLITE_PRIVATE const unsigned char sqlite3StdTypeLen[]; SQLITE_PRIVATE const char sqlite3StdTypeAffinity[]; -SQLITE_PRIVATE const char sqlite3StdTypeMap[]; SQLITE_PRIVATE const char *sqlite3StdType[]; SQLITE_PRIVATE const unsigned char sqlite3UpperToLower[]; SQLITE_PRIVATE const unsigned char *sqlite3aLTb; @@ -20404,7 +20842,7 @@ SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int); SQLITE_PRIVATE int sqlite3OpenTempDatabase(Parse *); SQLITE_PRIVATE void sqlite3StrAccumInit(StrAccum*, sqlite3*, char*, int, int); -SQLITE_PRIVATE int sqlite3StrAccumEnlarge(StrAccum*, int); +SQLITE_PRIVATE int sqlite3StrAccumEnlarge(StrAccum*, i64); SQLITE_PRIVATE char *sqlite3StrAccumFinish(StrAccum*); SQLITE_PRIVATE void sqlite3StrAccumSetError(StrAccum*, u8); SQLITE_PRIVATE void sqlite3ResultStrAccum(sqlite3_context*,StrAccum*); @@ -20518,10 +20956,7 @@ SQLITE_PRIVATE int sqlite3VtabCallDestroy(sqlite3*, int, const char *); SQLITE_PRIVATE int sqlite3VtabBegin(sqlite3 *, VTable *); SQLITE_PRIVATE FuncDef *sqlite3VtabOverloadFunction(sqlite3 *,FuncDef*, int nArg, Expr*); -#if (defined(SQLITE_ENABLE_DBPAGE_VTAB) || defined(SQLITE_TEST)) \ - && !defined(SQLITE_OMIT_VIRTUALTABLE) -SQLITE_PRIVATE void sqlite3VtabUsesAllSchemas(sqlite3_index_info*); -#endif +SQLITE_PRIVATE void sqlite3VtabUsesAllSchemas(Parse*); SQLITE_PRIVATE sqlite3_int64 sqlite3StmtCurrentTime(sqlite3_context*); SQLITE_PRIVATE int sqlite3VdbeParameterIndex(Vdbe*, const char*, int); SQLITE_PRIVATE int sqlite3TransferBindings(sqlite3_stmt *, sqlite3_stmt *); @@ -20758,6 +21193,22 @@ SQLITE_PRIVATE void sqlite3VectorErrorMsg(Parse*, Expr*); SQLITE_PRIVATE const char **sqlite3CompileOptions(int *pnOpt); #endif +#if SQLITE_OS_UNIX && defined(SQLITE_OS_KV_OPTIONAL) +SQLITE_PRIVATE int sqlite3KvvfsInit(void); +#endif + +#if defined(VDBE_PROFILE) \ + || defined(SQLITE_PERFORMANCE_TRACE) \ + || defined(SQLITE_ENABLE_STMT_SCANSTATUS) +SQLITE_PRIVATE sqlite3_uint64 sqlite3Hwtime(void); +#endif + +#ifdef SQLITE_ENABLE_STMT_SCANSTATUS +# define IS_STMT_SCANSTATUS(db) (db->flags & SQLITE_StmtScanStatus) +#else +# define IS_STMT_SCANSTATUS(db) 0 +#endif + #endif /* SQLITEINT_H */ /************** End of sqliteInt.h *******************************************/ @@ -20799,101 +21250,6 @@ SQLITE_PRIVATE const char **sqlite3CompileOptions(int *pnOpt); */ #ifdef SQLITE_PERFORMANCE_TRACE -/* -** hwtime.h contains inline assembler code for implementing -** high-performance timing routines. -*/ -/************** Include hwtime.h in the middle of os_common.h ****************/ -/************** Begin file hwtime.h ******************************************/ -/* -** 2008 May 27 -** -** The author disclaims copyright to this source code. In place of -** a legal notice, here is a blessing: -** -** May you do good and not evil. -** May you find forgiveness for yourself and forgive others. -** May you share freely, never taking more than you give. -** -****************************************************************************** -** -** This file contains inline asm code for retrieving "high-performance" -** counters for x86 and x86_64 class CPUs. -*/ -#ifndef SQLITE_HWTIME_H -#define SQLITE_HWTIME_H - -/* -** The following routine only works on pentium-class (or newer) processors. -** It uses the RDTSC opcode to read the cycle count value out of the -** processor and returns that value. This can be used for high-res -** profiling. -*/ -#if !defined(__STRICT_ANSI__) && \ - (defined(__GNUC__) || defined(_MSC_VER)) && \ - (defined(i386) || defined(__i386__) || defined(_M_IX86)) - - #if defined(__GNUC__) - - __inline__ sqlite_uint64 sqlite3Hwtime(void){ - unsigned int lo, hi; - __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi)); - return (sqlite_uint64)hi << 32 | lo; - } - - #elif defined(_MSC_VER) - - __declspec(naked) __inline sqlite_uint64 __cdecl sqlite3Hwtime(void){ - __asm { - rdtsc - ret ; return value at EDX:EAX - } - } - - #endif - -#elif !defined(__STRICT_ANSI__) && (defined(__GNUC__) && defined(__x86_64__)) - - __inline__ sqlite_uint64 sqlite3Hwtime(void){ - unsigned long val; - __asm__ __volatile__ ("rdtsc" : "=A" (val)); - return val; - } - -#elif !defined(__STRICT_ANSI__) && (defined(__GNUC__) && defined(__ppc__)) - - __inline__ sqlite_uint64 sqlite3Hwtime(void){ - unsigned long long retval; - unsigned long junk; - __asm__ __volatile__ ("\n\ - 1: mftbu %1\n\ - mftb %L0\n\ - mftbu %0\n\ - cmpw %0,%1\n\ - bne 1b" - : "=r" (retval), "=r" (junk)); - return retval; - } - -#else - - /* - ** asm() is needed for hardware timing support. Without asm(), - ** disable the sqlite3Hwtime() routine. - ** - ** sqlite3Hwtime() is only used for some obscure debugging - ** and analysis configurations, not in any deliverable, so this - ** should not be a great loss. - */ -SQLITE_PRIVATE sqlite_uint64 sqlite3Hwtime(void){ return ((sqlite_uint64)0); } - -#endif - -#endif /* !defined(SQLITE_HWTIME_H) */ - -/************** End of hwtime.h **********************************************/ -/************** Continuing where we left off in os_common.h ******************/ - static sqlite_uint64 g_start; static sqlite_uint64 g_elapsed; #define TIMER_START g_start=sqlite3Hwtime() @@ -20989,7 +21345,7 @@ SQLITE_API extern int sqlite3_open_file_count; ** autoconf-based build */ #if defined(_HAVE_SQLITE_CONFIG_H) && !defined(SQLITECONFIG_H) -/* #include "config.h" */ +/* #include "sqlite_cfg.h" */ #define SQLITECONFIG_H 1 #endif @@ -21154,6 +21510,9 @@ static const char * const sqlite3azCompileOpt[] = { #ifdef SQLITE_DISABLE_SKIPAHEAD_DISTINCT "DISABLE_SKIPAHEAD_DISTINCT", #endif +#ifdef SQLITE_DQS + "DQS=" CTIMEOPT_VAL(SQLITE_DQS), +#endif #ifdef SQLITE_ENABLE_8_3_NAMES "ENABLE_8_3_NAMES=" CTIMEOPT_VAL(SQLITE_ENABLE_8_3_NAMES), #endif @@ -21644,9 +22003,6 @@ static const char * const sqlite3azCompileOpt[] = { #ifdef SQLITE_OMIT_XFER_OPT "OMIT_XFER_OPT", #endif -#ifdef SQLITE_PCACHE_SEPARATE_HEADER - "PCACHE_SEPARATE_HEADER", -#endif #ifdef SQLITE_PERFORMANCE_TRACE "PERFORMANCE_TRACE", #endif @@ -21848,7 +22204,7 @@ SQLITE_PRIVATE const unsigned char *sqlite3aGTb = &sqlite3UpperToLower[256+12-OP ** isalnum() 0x06 ** isxdigit() 0x08 ** toupper() 0x20 -** SQLite identifier character 0x40 +** SQLite identifier character 0x40 $, _, or non-ascii ** Quote character 0x80 ** ** Bit 0x20 is set if the mapped character requires translation to upper @@ -22042,7 +22398,7 @@ SQLITE_PRIVATE SQLITE_WSD struct Sqlite3Config sqlite3Config = { SQLITE_DEFAULT_SORTERREF_SIZE, /* szSorterRef */ 0, /* iPrngSeed */ #ifdef SQLITE_DEBUG - {0,0,0,0,0,0} /* aTune */ + {0,0,0,0,0,0}, /* aTune */ #endif }; @@ -22126,10 +22482,6 @@ SQLITE_PRIVATE const char sqlite3StrBINARY[] = "BINARY"; ** ** sqlite3StdTypeAffinity[] The affinity associated with each entry ** in sqlite3StdType[]. -** -** sqlite3StdTypeMap[] The type value (as returned from -** sqlite3_column_type() or sqlite3_value_type()) -** for each entry in sqlite3StdType[]. */ SQLITE_PRIVATE const unsigned char sqlite3StdTypeLen[] = { 3, 4, 3, 7, 4, 4 }; SQLITE_PRIVATE const char sqlite3StdTypeAffinity[] = { @@ -22140,14 +22492,6 @@ SQLITE_PRIVATE const char sqlite3StdTypeAffinity[] = { SQLITE_AFF_REAL, SQLITE_AFF_TEXT }; -SQLITE_PRIVATE const char sqlite3StdTypeMap[] = { - 0, - SQLITE_BLOB, - SQLITE_INTEGER, - SQLITE_INTEGER, - SQLITE_FLOAT, - SQLITE_TEXT -}; SQLITE_PRIVATE const char *sqlite3StdType[] = { "ANY", "BLOB", @@ -22350,7 +22694,6 @@ struct VdbeFrame { Vdbe *v; /* VM this frame belongs to */ VdbeFrame *pParent; /* Parent of this frame, or NULL if parent is main */ Op *aOp; /* Program instructions for parent frame */ - i64 *anExec; /* Event counters from parent frame */ Mem *aMem; /* Array of memory cells for parent frame */ VdbeCursor **apCsr; /* Array of Vdbe cursors for parent frame */ u8 *aOnce; /* Bitmask used by OP_Once */ @@ -22566,10 +22909,19 @@ typedef unsigned bft; /* Bit Field Type */ /* The ScanStatus object holds a single value for the ** sqlite3_stmt_scanstatus() interface. +** +** aAddrRange[]: +** This array is used by ScanStatus elements associated with EQP +** notes that make an SQLITE_SCANSTAT_NCYCLE value available. It is +** an array of up to 3 ranges of VM addresses for which the Vdbe.anCycle[] +** values should be summed to calculate the NCYCLE value. Each pair of +** integer addresses is a start and end address (both inclusive) for a range +** instructions. A start value of 0 indicates an empty range. */ typedef struct ScanStatus ScanStatus; struct ScanStatus { int addrExplain; /* OP_Explain for loop */ + int aAddrRange[6]; int addrLoop; /* Address of "loops" counter */ int addrVisit; /* Address of "rows visited" counter */ int iSelectID; /* The "Select-ID" for this loop */ @@ -22599,7 +22951,7 @@ struct DblquoteStr { */ struct Vdbe { sqlite3 *db; /* The database connection that owns this statement */ - Vdbe *pPrev,*pNext; /* Linked list of VDBEs with the same Vdbe.db */ + Vdbe **ppVPrev,*pVNext; /* Linked list of VDBEs with the same Vdbe.db */ Parse *pParse; /* Parsing context used to create this Vdbe */ ynVar nVar; /* Number of entries in aVar[] */ int nMem; /* Number of memory locations currently allocated */ @@ -22625,7 +22977,7 @@ struct Vdbe { int nOp; /* Number of instructions in the program */ int nOpAlloc; /* Slots allocated for aOp[] */ Mem *aColName; /* Column names to return */ - Mem *pResultSet; /* Pointer to an array of results */ + Mem *pResultRow; /* Current output row */ char *zErrMsg; /* Error message written here */ VList *pVList; /* Name of variables */ #ifndef SQLITE_OMIT_TRACE @@ -22662,7 +23014,6 @@ struct Vdbe { SubProgram *pProgram; /* Linked list of all sub-programs used by VM */ AuxData *pAuxData; /* Linked list of auxdata allocations */ #ifdef SQLITE_ENABLE_STMT_SCANSTATUS - i64 *anExec; /* Number of times each op has been executed */ int nScan; /* Entries in aScan[] */ ScanStatus *aScan; /* Scan definitions for sqlite3_stmt_scanstatus() */ #endif @@ -22829,6 +23180,8 @@ SQLITE_PRIVATE int sqlite3VdbeSorterRewind(const VdbeCursor *, int *); SQLITE_PRIVATE int sqlite3VdbeSorterWrite(const VdbeCursor *, Mem *); SQLITE_PRIVATE int sqlite3VdbeSorterCompare(const VdbeCursor *, Mem *, int, int *); +SQLITE_PRIVATE void sqlite3VdbeValueListFree(void*); + #ifdef SQLITE_DEBUG SQLITE_PRIVATE void sqlite3VdbeIncrWriteCounter(Vdbe*, VdbeCursor*); SQLITE_PRIVATE void sqlite3VdbeAssertAbortable(Vdbe*); @@ -23157,6 +23510,8 @@ SQLITE_API int sqlite3_db_status( sqlite3BtreeEnterAll(db); db->pnBytesFreed = &nByte; + assert( db->lookaside.pEnd==db->lookaside.pTrueEnd ); + db->lookaside.pEnd = db->lookaside.pStart; for(i=0; inDb; i++){ Schema *pSchema = db->aDb[i].pSchema; if( ALWAYS(pSchema!=0) ){ @@ -23182,6 +23537,7 @@ SQLITE_API int sqlite3_db_status( } } db->pnBytesFreed = 0; + db->lookaside.pEnd = db->lookaside.pTrueEnd; sqlite3BtreeLeaveAll(db); *pHighwater = 0; @@ -23199,9 +23555,12 @@ SQLITE_API int sqlite3_db_status( int nByte = 0; /* Used to accumulate return value */ db->pnBytesFreed = &nByte; - for(pVdbe=db->pVdbe; pVdbe; pVdbe=pVdbe->pNext){ + assert( db->lookaside.pEnd==db->lookaside.pTrueEnd ); + db->lookaside.pEnd = db->lookaside.pStart; + for(pVdbe=db->pVdbe; pVdbe; pVdbe=pVdbe->pVNext){ sqlite3VdbeDelete(pVdbe); } + db->lookaside.pEnd = db->lookaside.pTrueEnd; db->pnBytesFreed = 0; *pHighwater = 0; /* IMP: R-64479-57858 */ @@ -23338,6 +23697,7 @@ struct DateTime { char validTZ; /* True (1) if tz is valid */ char tzSet; /* Timezone was set explicitly */ char isError; /* An overflow has occurred */ + char useSubsec; /* Display subsecond precision */ }; @@ -23537,7 +23897,7 @@ static void computeJD(DateTime *p){ p->iJD = (sqlite3_int64)((X1 + X2 + D + B - 1524.5 ) * 86400000); p->validJD = 1; if( p->validHMS ){ - p->iJD += p->h*3600000 + p->m*60000 + (sqlite3_int64)(p->s*1000); + p->iJD += p->h*3600000 + p->m*60000 + (sqlite3_int64)(p->s*1000 + 0.5); if( p->validTZ ){ p->iJD -= p->tz*60000; p->validYMD = 0; @@ -23652,6 +24012,11 @@ static int parseDateOrTime( }else if( sqlite3AtoF(zDate, &r, sqlite3Strlen30(zDate), SQLITE_UTF8)>0 ){ setRawDateNumber(p, r); return 0; + }else if( (sqlite3StrICmp(zDate,"subsec")==0 + || sqlite3StrICmp(zDate,"subsecond")==0) + && sqlite3NotPureFunc(context) ){ + p->useSubsec = 1; + return setDateTimeToCurrent(context, p); } return 1; } @@ -24010,7 +24375,7 @@ static int parseModifier( i64 iOrigJD; /* Original localtime */ i64 iGuess; /* Guess at the corresponding utc time */ int cnt = 0; /* Safety to prevent infinite loop */ - int iErr; /* Guess is off by this much */ + i64 iErr; /* Guess is off by this much */ computeJD(p); iGuess = iOrigJD = p->iJD; @@ -24046,7 +24411,7 @@ static int parseModifier( */ if( sqlite3_strnicmp(z, "weekday ", 8)==0 && sqlite3AtoF(&z[8], &r, sqlite3Strlen30(&z[8]), SQLITE_UTF8)>0 - && (n=(int)r)==r && n>=0 && r<7 ){ + && r>=0.0 && r<7.0 && (n=(int)r)==r ){ sqlite3_int64 Z; computeYMD_HMS(p); p->validTZ = 0; @@ -24066,8 +24431,22 @@ static int parseModifier( ** ** Move the date backwards to the beginning of the current day, ** or month or year. + ** + ** subsecond + ** subsec + ** + ** Show subsecond precision in the output of datetime() and + ** unixepoch() and strftime('%s'). */ - if( sqlite3_strnicmp(z, "start of ", 9)!=0 ) break; + if( sqlite3_strnicmp(z, "start of ", 9)!=0 ){ + if( sqlite3_stricmp(z, "subsec")==0 + || sqlite3_stricmp(z, "subsecond")==0 + ){ + p->useSubsec = 1; + rc = 0; + } + break; + } if( !p->validJD && !p->validYMD && !p->validHMS ) break; z += 9; computeYMD(p); @@ -24265,7 +24644,11 @@ static void unixepochFunc( DateTime x; if( isDate(context, argc, argv, &x)==0 ){ computeJD(&x); - sqlite3_result_int64(context, x.iJD/1000 - 21086676*(i64)10000); + if( x.useSubsec ){ + sqlite3_result_double(context, (x.iJD - 21086676*(i64)10000000)/1000.0); + }else{ + sqlite3_result_int64(context, x.iJD/1000 - 21086676*(i64)10000); + } } } @@ -24281,8 +24664,8 @@ static void datetimeFunc( ){ DateTime x; if( isDate(context, argc, argv, &x)==0 ){ - int Y, s; - char zBuf[24]; + int Y, s, n; + char zBuf[32]; computeYMD_HMS(&x); Y = x.Y; if( Y<0 ) Y = -Y; @@ -24303,15 +24686,28 @@ static void datetimeFunc( zBuf[15] = '0' + (x.m/10)%10; zBuf[16] = '0' + (x.m)%10; zBuf[17] = ':'; - s = (int)x.s; - zBuf[18] = '0' + (s/10)%10; - zBuf[19] = '0' + (s)%10; - zBuf[20] = 0; + if( x.useSubsec ){ + s = (int)1000.0*x.s; + zBuf[18] = '0' + (s/10000)%10; + zBuf[19] = '0' + (s/1000)%10; + zBuf[20] = '.'; + zBuf[21] = '0' + (s/100)%10; + zBuf[22] = '0' + (s/10)%10; + zBuf[23] = '0' + (s)%10; + zBuf[24] = 0; + n = 24; + }else{ + s = (int)x.s; + zBuf[18] = '0' + (s/10)%10; + zBuf[19] = '0' + (s)%10; + zBuf[20] = 0; + n = 20; + } if( x.Y<0 ){ zBuf[0] = '-'; - sqlite3_result_text(context, zBuf, 20, SQLITE_TRANSIENT); + sqlite3_result_text(context, zBuf, n, SQLITE_TRANSIENT); }else{ - sqlite3_result_text(context, &zBuf[1], 19, SQLITE_TRANSIENT); + sqlite3_result_text(context, &zBuf[1], n-1, SQLITE_TRANSIENT); } } } @@ -24328,7 +24724,7 @@ static void timeFunc( ){ DateTime x; if( isDate(context, argc, argv, &x)==0 ){ - int s; + int s, n; char zBuf[16]; computeHMS(&x); zBuf[0] = '0' + (x.h/10)%10; @@ -24337,11 +24733,24 @@ static void timeFunc( zBuf[3] = '0' + (x.m/10)%10; zBuf[4] = '0' + (x.m)%10; zBuf[5] = ':'; - s = (int)x.s; - zBuf[6] = '0' + (s/10)%10; - zBuf[7] = '0' + (s)%10; - zBuf[8] = 0; - sqlite3_result_text(context, zBuf, 8, SQLITE_TRANSIENT); + if( x.useSubsec ){ + s = (int)1000.0*x.s; + zBuf[6] = '0' + (s/10000)%10; + zBuf[7] = '0' + (s/1000)%10; + zBuf[8] = '.'; + zBuf[9] = '0' + (s/100)%10; + zBuf[10] = '0' + (s/10)%10; + zBuf[11] = '0' + (s)%10; + zBuf[12] = 0; + n = 12; + }else{ + s = (int)x.s; + zBuf[6] = '0' + (s/10)%10; + zBuf[7] = '0' + (s)%10; + zBuf[8] = 0; + n = 8; + } + sqlite3_result_text(context, zBuf, n, SQLITE_TRANSIENT); } } @@ -24472,8 +24881,13 @@ static void strftimeFunc( break; } case 's': { - i64 iS = (i64)(x.iJD/1000 - 21086676*(i64)10000); - sqlite3_str_appendf(&sRes,"%lld",iS); + if( x.useSubsec ){ + sqlite3_str_appendf(&sRes,"%.3f", + (x.iJD - 21086676*(i64)10000000)/1000.0); + }else{ + i64 iS = (i64)(x.iJD/1000 - 21086676*(i64)10000); + sqlite3_str_appendf(&sRes,"%lld",iS); + } break; } case 'S': { @@ -24727,9 +25141,11 @@ SQLITE_PRIVATE int sqlite3OsFileSize(sqlite3_file *id, i64 *pSize){ } SQLITE_PRIVATE int sqlite3OsLock(sqlite3_file *id, int lockType){ DO_OS_MALLOC_TEST(id); + assert( lockType>=SQLITE_LOCK_SHARED && lockType<=SQLITE_LOCK_EXCLUSIVE ); return id->pMethods->xLock(id, lockType); } SQLITE_PRIVATE int sqlite3OsUnlock(sqlite3_file *id, int lockType){ + assert( lockType==SQLITE_LOCK_NONE || lockType==SQLITE_LOCK_SHARED ); return id->pMethods->xUnlock(id, lockType); } SQLITE_PRIVATE int sqlite3OsCheckReservedLock(sqlite3_file *id, int *pResOut){ @@ -24844,6 +25260,7 @@ SQLITE_PRIVATE int sqlite3OsOpen( ** down into the VFS layer. Some SQLITE_OPEN_ flags (for example, ** SQLITE_OPEN_FULLMUTEX or SQLITE_OPEN_SHAREDCACHE) are blocked before ** reaching the VFS. */ + assert( zPath || (flags & SQLITE_OPEN_EXCLUSIVE) ); rc = pVfs->xOpen(pVfs, zPath, pFile, flags & 0x1087f7f, pFlagsOut); assert( rc==SQLITE_OK || pFile->pMethods==0 ); return rc; @@ -27159,9 +27576,13 @@ static int memsys5Roundup(int n){ if( n<=mem5.szAtom ) return mem5.szAtom; return mem5.szAtom*2; } - if( n>0x40000000 ) return 0; + if( n>0x10000000 ){ + if( n>0x40000000 ) return 0; + if( n>0x20000000 ) return 0x40000000; + return 0x20000000; + } for(iFullSz=mem5.szAtom*8; iFullSz=n ) return iFullSz/2; + if( (iFullSz/2)>=(i64)n ) return iFullSz/2; return iFullSz; } @@ -29062,18 +29483,34 @@ static void mallocWithAlarm(int n, void **pp){ *pp = p; } +/* +** Maximum size of any single memory allocation. +** +** This is not a limit on the total amount of memory used. This is +** a limit on the size parameter to sqlite3_malloc() and sqlite3_realloc(). +** +** The upper bound is slightly less than 2GiB: 0x7ffffeff == 2,147,483,391 +** This provides a 256-byte safety margin for defense against 32-bit +** signed integer overflow bugs when computing memory allocation sizes. +** Paranoid applications might want to reduce the maximum allocation size +** further for an even larger safety margin. 0x3fffffff or 0x0fffffff +** or even smaller would be reasonable upper bounds on the size of a memory +** allocations for most applications. +*/ +#ifndef SQLITE_MAX_ALLOCATION_SIZE +# define SQLITE_MAX_ALLOCATION_SIZE 2147483391 +#endif +#if SQLITE_MAX_ALLOCATION_SIZE>2147483391 +# error Maximum size for SQLITE_MAX_ALLOCATION_SIZE is 2147483391 +#endif + /* ** Allocate memory. This routine is like sqlite3_malloc() except that it ** assumes the memory subsystem has already been initialized. */ SQLITE_PRIVATE void *sqlite3Malloc(u64 n){ void *p; - if( n==0 || n>=0x7fffff00 ){ - /* A memory allocation of a number of bytes which is near the maximum - ** signed integer value might cause an integer overflow inside of the - ** xMalloc(). Hence we limit the maximum size to 0x7fffff00, giving - ** 255 bytes of overhead. SQLite itself will never use anything near - ** this amount. The only way to reach the limit is with sqlite3_malloc() */ + if( n==0 || n>SQLITE_MAX_ALLOCATION_SIZE ){ p = 0; }else if( sqlite3GlobalConfig.bMemstat ){ sqlite3_mutex_enter(mem0.mutex); @@ -29109,7 +29546,7 @@ SQLITE_API void *sqlite3_malloc64(sqlite3_uint64 n){ */ #ifndef SQLITE_OMIT_LOOKASIDE static int isLookaside(sqlite3 *db, const void *p){ - return SQLITE_WITHIN(p, db->lookaside.pStart, db->lookaside.pEnd); + return SQLITE_WITHIN(p, db->lookaside.pStart, db->lookaside.pTrueEnd); } #else #define isLookaside(A,B) 0 @@ -29133,18 +29570,16 @@ static int lookasideMallocSize(sqlite3 *db, const void *p){ SQLITE_PRIVATE int sqlite3DbMallocSize(sqlite3 *db, const void *p){ assert( p!=0 ); #ifdef SQLITE_DEBUG - if( db==0 || !isLookaside(db,p) ){ - if( db==0 ){ - assert( sqlite3MemdebugNoType(p, (u8)~MEMTYPE_HEAP) ); - assert( sqlite3MemdebugHasType(p, MEMTYPE_HEAP) ); - }else{ - assert( sqlite3MemdebugHasType(p, (MEMTYPE_LOOKASIDE|MEMTYPE_HEAP)) ); - assert( sqlite3MemdebugNoType(p, (u8)~(MEMTYPE_LOOKASIDE|MEMTYPE_HEAP)) ); - } + if( db==0 ){ + assert( sqlite3MemdebugNoType(p, (u8)~MEMTYPE_HEAP) ); + assert( sqlite3MemdebugHasType(p, MEMTYPE_HEAP) ); + }else if( !isLookaside(db,p) ){ + assert( sqlite3MemdebugHasType(p, (MEMTYPE_LOOKASIDE|MEMTYPE_HEAP)) ); + assert( sqlite3MemdebugNoType(p, (u8)~(MEMTYPE_LOOKASIDE|MEMTYPE_HEAP)) ); } #endif if( db ){ - if( ((uptr)p)<(uptr)(db->lookaside.pEnd) ){ + if( ((uptr)p)<(uptr)(db->lookaside.pTrueEnd) ){ #ifndef SQLITE_OMIT_TWOSIZE_LOOKASIDE if( ((uptr)p)>=(uptr)(db->lookaside.pMiddle) ){ assert( sqlite3_mutex_held(db->mutex) ); @@ -29200,14 +29635,11 @@ SQLITE_PRIVATE void sqlite3DbFreeNN(sqlite3 *db, void *p){ assert( db==0 || sqlite3_mutex_held(db->mutex) ); assert( p!=0 ); if( db ){ - if( db->pnBytesFreed ){ - measureAllocationSize(db, p); - return; - } if( ((uptr)p)<(uptr)(db->lookaside.pEnd) ){ #ifndef SQLITE_OMIT_TWOSIZE_LOOKASIDE if( ((uptr)p)>=(uptr)(db->lookaside.pMiddle) ){ LookasideSlot *pBuf = (LookasideSlot*)p; + assert( db->pnBytesFreed==0 ); #ifdef SQLITE_DEBUG memset(p, 0xaa, LOOKASIDE_SMALL); /* Trash freed content */ #endif @@ -29218,6 +29650,7 @@ SQLITE_PRIVATE void sqlite3DbFreeNN(sqlite3 *db, void *p){ #endif /* SQLITE_OMIT_TWOSIZE_LOOKASIDE */ if( ((uptr)p)>=(uptr)(db->lookaside.pStart) ){ LookasideSlot *pBuf = (LookasideSlot*)p; + assert( db->pnBytesFreed==0 ); #ifdef SQLITE_DEBUG memset(p, 0xaa, db->lookaside.szTrue); /* Trash freed content */ #endif @@ -29226,6 +29659,10 @@ SQLITE_PRIVATE void sqlite3DbFreeNN(sqlite3 *db, void *p){ return; } } + if( db->pnBytesFreed ){ + measureAllocationSize(db, p); + return; + } } assert( sqlite3MemdebugHasType(p, (MEMTYPE_LOOKASIDE|MEMTYPE_HEAP)) ); assert( sqlite3MemdebugNoType(p, (u8)~(MEMTYPE_LOOKASIDE|MEMTYPE_HEAP)) ); @@ -29233,6 +29670,43 @@ SQLITE_PRIVATE void sqlite3DbFreeNN(sqlite3 *db, void *p){ sqlite3MemdebugSetType(p, MEMTYPE_HEAP); sqlite3_free(p); } +SQLITE_PRIVATE void sqlite3DbNNFreeNN(sqlite3 *db, void *p){ + assert( db!=0 ); + assert( sqlite3_mutex_held(db->mutex) ); + assert( p!=0 ); + if( ((uptr)p)<(uptr)(db->lookaside.pEnd) ){ +#ifndef SQLITE_OMIT_TWOSIZE_LOOKASIDE + if( ((uptr)p)>=(uptr)(db->lookaside.pMiddle) ){ + LookasideSlot *pBuf = (LookasideSlot*)p; + assert( db->pnBytesFreed==0 ); +#ifdef SQLITE_DEBUG + memset(p, 0xaa, LOOKASIDE_SMALL); /* Trash freed content */ +#endif + pBuf->pNext = db->lookaside.pSmallFree; + db->lookaside.pSmallFree = pBuf; + return; + } +#endif /* SQLITE_OMIT_TWOSIZE_LOOKASIDE */ + if( ((uptr)p)>=(uptr)(db->lookaside.pStart) ){ + LookasideSlot *pBuf = (LookasideSlot*)p; + assert( db->pnBytesFreed==0 ); +#ifdef SQLITE_DEBUG + memset(p, 0xaa, db->lookaside.szTrue); /* Trash freed content */ +#endif + pBuf->pNext = db->lookaside.pFree; + db->lookaside.pFree = pBuf; + return; + } + } + if( db->pnBytesFreed ){ + measureAllocationSize(db, p); + return; + } + assert( sqlite3MemdebugHasType(p, (MEMTYPE_LOOKASIDE|MEMTYPE_HEAP)) ); + assert( sqlite3MemdebugNoType(p, (u8)~(MEMTYPE_LOOKASIDE|MEMTYPE_HEAP)) ); + sqlite3MemdebugSetType(p, MEMTYPE_HEAP); + sqlite3_free(p); +} SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *db, void *p){ assert( db==0 || sqlite3_mutex_held(db->mutex) ); if( p ) sqlite3DbFreeNN(db, p); @@ -29532,9 +30006,14 @@ SQLITE_PRIVATE char *sqlite3DbStrNDup(sqlite3 *db, const char *z, u64 n){ */ SQLITE_PRIVATE char *sqlite3DbSpanDup(sqlite3 *db, const char *zStart, const char *zEnd){ int n; +#ifdef SQLITE_DEBUG + /* Because of the way the parser works, the span is guaranteed to contain + ** at least one non-space character */ + for(n=0; sqlite3Isspace(zStart[n]); n++){ assert( &zStart[n]0) && sqlite3Isspace(zStart[n-1]) ) n--; + while( sqlite3Isspace(zStart[n-1]) ) n--; return sqlite3DbStrNDup(db, zStart, n); } @@ -29779,6 +30258,20 @@ static char et_getdigit(LONGDOUBLE_TYPE *val, int *cnt){ } #endif /* SQLITE_OMIT_FLOATING_POINT */ +#ifndef SQLITE_OMIT_FLOATING_POINT +/* +** "*val" is a u64. *msd is a divisor used to extract the +** most significant digit of *val. Extract that most significant +** digit and return it. +*/ +static char et_getdigit_int(u64 *val, u64 *msd){ + u64 x = (*val)/(*msd); + *val -= x*(*msd); + if( *msd>=10 ) *msd /= 10; + return '0' + (char)(x & 15); +} +#endif /* SQLITE_OMIT_FLOATING_POINT */ + /* ** Set the StrAccum object to an error mode. */ @@ -29871,6 +30364,8 @@ SQLITE_API void sqlite3_str_vappendf( char prefix; /* Prefix character. "+" or "-" or " " or '\0'. */ sqlite_uint64 longvalue; /* Value for integer types */ LONGDOUBLE_TYPE realvalue; /* Value for real types */ + sqlite_uint64 msd; /* Divisor to get most-significant-digit + ** of longvalue */ const et_info *infop; /* Pointer to the appropriate info structure */ char *zOut; /* Rendering buffer */ int nOut; /* Size of the rendering buffer */ @@ -30177,52 +30672,78 @@ SQLITE_API void sqlite3_str_vappendf( }else{ prefix = flag_prefix; } + exp = 0; if( xtype==etGENERIC && precision>0 ) precision--; testcase( precision>0xfff ); - idx = precision & 0xfff; - rounder = arRound[idx%10]; - while( idx>=10 ){ rounder *= 1.0e-10; idx -= 10; } - if( xtype==etFLOAT ){ - double rx = (double)realvalue; - sqlite3_uint64 u; - int ex; - memcpy(&u, &rx, sizeof(u)); - ex = -1023 + (int)((u>>52)&0x7ff); - if( precision+(ex/3) < 15 ) rounder += realvalue*3e-16; - realvalue += rounder; - } - /* Normalize realvalue to within 10.0 > realvalue >= 1.0 */ - exp = 0; - if( sqlite3IsNaN((double)realvalue) ){ - bufpt = "NaN"; - length = 3; - break; - } - if( realvalue>0.0 ){ - LONGDOUBLE_TYPE scale = 1.0; - while( realvalue>=1e100*scale && exp<=350 ){ scale *= 1e100;exp+=100;} - while( realvalue>=1e10*scale && exp<=350 ){ scale *= 1e10; exp+=10; } - while( realvalue>=10.0*scale && exp<=350 ){ scale *= 10.0; exp++; } - realvalue /= scale; - while( realvalue<1e-8 ){ realvalue *= 1e8; exp-=8; } - while( realvalue<1.0 ){ realvalue *= 10.0; exp--; } - if( exp>350 ){ - bufpt = buf; - buf[0] = prefix; - memcpy(buf+(prefix!=0),"Inf",4); - length = 3+(prefix!=0); + if( realvalue<1.0e+16 + && realvalue==(LONGDOUBLE_TYPE)(longvalue = (u64)realvalue) + ){ + /* Number is a pure integer that can be represented as u64 */ + for(msd=1; msd*10<=longvalue; msd *= 10, exp++){} + if( exp>precision && xtype!=etFLOAT ){ + u64 rnd = msd/2; + int kk = precision; + while( kk-- > 0 ){ rnd /= 10; } + longvalue += rnd; + } + }else{ + msd = 0; + longvalue = 0; /* To prevent a compiler warning */ + idx = precision & 0xfff; + rounder = arRound[idx%10]; + while( idx>=10 ){ rounder *= 1.0e-10; idx -= 10; } + if( xtype==etFLOAT ){ + double rx = (double)realvalue; + sqlite3_uint64 u; + int ex; + memcpy(&u, &rx, sizeof(u)); + ex = -1023 + (int)((u>>52)&0x7ff); + if( precision+(ex/3) < 15 ) rounder += realvalue*3e-16; + realvalue += rounder; + } + if( sqlite3IsNaN((double)realvalue) ){ + if( flag_zeropad ){ + bufpt = "null"; + length = 4; + }else{ + bufpt = "NaN"; + length = 3; + } break; } + + /* Normalize realvalue to within 10.0 > realvalue >= 1.0 */ + if( ALWAYS(realvalue>0.0) ){ + LONGDOUBLE_TYPE scale = 1.0; + while( realvalue>=1e100*scale && exp<=350){ scale*=1e100;exp+=100;} + while( realvalue>=1e10*scale && exp<=350 ){ scale*=1e10; exp+=10; } + while( realvalue>=10.0*scale && exp<=350 ){ scale *= 10.0; exp++; } + realvalue /= scale; + while( realvalue<1e-8 ){ realvalue *= 1e8; exp-=8; } + while( realvalue<1.0 ){ realvalue *= 10.0; exp--; } + if( exp>350 ){ + if( flag_zeropad ){ + realvalue = 9.0; + exp = 999; + }else{ + bufpt = buf; + buf[0] = prefix; + memcpy(buf+(prefix!=0),"Inf",4); + length = 3+(prefix!=0); + break; + } + } + if( xtype!=etFLOAT ){ + realvalue += rounder; + if( realvalue>=10.0 ){ realvalue *= 0.1; exp++; } + } + } } - bufpt = buf; + /* ** If the field type is etGENERIC, then convert to either etEXP ** or etFLOAT, as appropriate. */ - if( xtype!=etFLOAT ){ - realvalue += rounder; - if( realvalue>=10.0 ){ realvalue *= 0.1; exp++; } - } if( xtype==etGENERIC ){ flag_rtz = !flag_alternateform; if( exp<-4 || exp>precision ){ @@ -30239,16 +30760,18 @@ SQLITE_API void sqlite3_str_vappendf( }else{ e2 = exp; } + nsd = 16 + flag_altform2*10; + bufpt = buf; { i64 szBufNeeded; /* Size of a temporary buffer needed */ szBufNeeded = MAX(e2,0)+(i64)precision+(i64)width+15; + if( cThousand && e2>0 ) szBufNeeded += (e2+2)/3; if( szBufNeeded > etBUFSIZE ){ bufpt = zExtra = printfTempBuf(pAccum, szBufNeeded); if( bufpt==0 ) return; } } zOut = bufpt; - nsd = 16 + flag_altform2*10; flag_dp = (precision>0 ?1:0) | flag_alternateform | flag_altform2; /* The sign in front of the number */ if( prefix ){ @@ -30257,9 +30780,15 @@ SQLITE_API void sqlite3_str_vappendf( /* Digits prior to the decimal point */ if( e2<0 ){ *(bufpt++) = '0'; + }else if( msd>0 ){ + for(; e2>=0; e2--){ + *(bufpt++) = et_getdigit_int(&longvalue,&msd); + if( cThousand && (e2%3)==0 && e2>1 ) *(bufpt++) = ','; + } }else{ for(; e2>=0; e2--){ *(bufpt++) = et_getdigit(&realvalue,&nsd); + if( cThousand && (e2%3)==0 && e2>1 ) *(bufpt++) = ','; } } /* The decimal point */ @@ -30273,8 +30802,14 @@ SQLITE_API void sqlite3_str_vappendf( *(bufpt++) = '0'; } /* Significant digits after the decimal point */ - while( (precision--)>0 ){ - *(bufpt++) = et_getdigit(&realvalue,&nsd); + if( msd>0 ){ + while( (precision--)>0 ){ + *(bufpt++) = et_getdigit_int(&longvalue,&msd); + } + }else{ + while( (precision--)>0 ){ + *(bufpt++) = et_getdigit(&realvalue,&nsd); + } } /* Remove trailing zeros and the "." if no digits follow the "." */ if( flag_rtz && flag_dp ){ @@ -30373,13 +30908,26 @@ SQLITE_API void sqlite3_str_vappendf( } } if( precision>1 ){ + i64 nPrior = 1; width -= precision-1; if( width>1 && !flag_leftjustify ){ sqlite3_str_appendchar(pAccum, width-1, ' '); width = 0; } - while( precision-- > 1 ){ - sqlite3_str_append(pAccum, buf, length); + sqlite3_str_append(pAccum, buf, length); + precision--; + while( precision > 1 ){ + i64 nCopyBytes; + if( nPrior > precision-1 ) nPrior = precision - 1; + nCopyBytes = length*nPrior; + if( nCopyBytes + pAccum->nChar >= pAccum->nAlloc ){ + sqlite3StrAccumEnlarge(pAccum, nCopyBytes); + } + if( pAccum->accError ) break; + sqlite3_str_append(pAccum, + &pAccum->zText[pAccum->nChar-nCopyBytes], nCopyBytes); + precision -= nPrior; + nPrior *= 2; } } bufpt = buf; @@ -30607,9 +31155,9 @@ SQLITE_PRIVATE void sqlite3RecordErrorOffsetOfExpr(sqlite3 *db, const Expr *pExp ** Return the number of bytes of text that StrAccum is able to accept ** after the attempted enlargement. The value returned might be zero. */ -SQLITE_PRIVATE int sqlite3StrAccumEnlarge(StrAccum *p, int N){ +SQLITE_PRIVATE int sqlite3StrAccumEnlarge(StrAccum *p, i64 N){ char *zNew; - assert( p->nChar+(i64)N >= p->nAlloc ); /* Only called if really needed */ + assert( p->nChar+N >= p->nAlloc ); /* Only called if really needed */ if( p->accError ){ testcase(p->accError==SQLITE_TOOBIG); testcase(p->accError==SQLITE_NOMEM); @@ -30620,8 +31168,7 @@ SQLITE_PRIVATE int sqlite3StrAccumEnlarge(StrAccum *p, int N){ return p->nAlloc - p->nChar - 1; }else{ char *zOld = isMalloced(p) ? p->zText : 0; - i64 szNew = p->nChar; - szNew += (sqlite3_int64)N + 1; + i64 szNew = p->nChar + N + 1; if( szNew+p->nChar<=p->mxAlloc ){ /* Force exponential buffer size growth as long as it does not overflow, ** to avoid having to call this routine too often */ @@ -30651,7 +31198,8 @@ SQLITE_PRIVATE int sqlite3StrAccumEnlarge(StrAccum *p, int N){ return 0; } } - return N; + assert( N>=0 && N<=0x7fffffff ); + return (int)N; } /* @@ -30942,12 +31490,22 @@ SQLITE_API char *sqlite3_vsnprintf(int n, char *zBuf, const char *zFormat, va_li return zBuf; } SQLITE_API char *sqlite3_snprintf(int n, char *zBuf, const char *zFormat, ...){ - char *z; + StrAccum acc; va_list ap; + if( n<=0 ) return zBuf; +#ifdef SQLITE_ENABLE_API_ARMOR + if( zBuf==0 || zFormat==0 ) { + (void)SQLITE_MISUSE_BKPT; + if( zBuf ) zBuf[0] = 0; + return zBuf; + } +#endif + sqlite3StrAccumInit(&acc, 0, zBuf, n, 0); va_start(ap,zFormat); - z = sqlite3_vsnprintf(n, zBuf, zFormat, ap); + sqlite3_str_vappendf(&acc, zFormat, ap); va_end(ap); - return z; + zBuf[acc.nChar] = 0; + return zBuf; } /* @@ -31247,6 +31805,13 @@ SQLITE_PRIVATE void sqlite3TreeViewSrcList(TreeView *pView, const SrcList *pSrc) if( pItem->fg.isOn || (pItem->fg.isUsing==0 && pItem->u3.pOn!=0) ){ sqlite3_str_appendf(&x, " ON"); } + if( pItem->fg.isTabFunc ) sqlite3_str_appendf(&x, " isTabFunc"); + if( pItem->fg.isCorrelated ) sqlite3_str_appendf(&x, " isCorrelated"); + if( pItem->fg.isMaterialized ) sqlite3_str_appendf(&x, " isMaterialized"); + if( pItem->fg.viaCoroutine ) sqlite3_str_appendf(&x, " viaCoroutine"); + if( pItem->fg.notCte ) sqlite3_str_appendf(&x, " notCte"); + if( pItem->fg.isNestedFrom ) sqlite3_str_appendf(&x, " isNestedFrom"); + sqlite3StrAccumFinish(&x); sqlite3TreeViewItem(pView, zLine, inSrc-1); n = 0; @@ -31516,7 +32081,7 @@ SQLITE_PRIVATE void sqlite3TreeViewExpr(TreeView *pView, const Expr *pExpr, u8 m sqlite3TreeViewPop(&pView); return; } - if( pExpr->flags || pExpr->affExpr || pExpr->vvaFlags ){ + if( pExpr->flags || pExpr->affExpr || pExpr->vvaFlags || pExpr->pAggInfo ){ StrAccum x; sqlite3StrAccumInit(&x, 0, zFlgs, sizeof(zFlgs), 0); sqlite3_str_appendf(&x, " fg.af=%x.%c", @@ -31533,6 +32098,9 @@ SQLITE_PRIVATE void sqlite3TreeViewExpr(TreeView *pView, const Expr *pExpr, u8 m if( ExprHasVVAProperty(pExpr, EP_Immutable) ){ sqlite3_str_appendf(&x, " IMMUTABLE"); } + if( pExpr->pAggInfo!=0 ){ + sqlite3_str_appendf(&x, " agg-column[%d]", pExpr->iAgg); + } sqlite3StrAccumFinish(&x); }else{ zFlgs[0] = 0; @@ -32344,16 +32912,41 @@ SQLITE_PRIVATE void sqlite3ShowWinFunc(const Window *p){ sqlite3TreeViewWinFunc( ** This structure is the current state of the generator. */ static SQLITE_WSD struct sqlite3PrngType { - unsigned char isInit; /* True if initialized */ - unsigned char i, j; /* State variables */ - unsigned char s[256]; /* State variables */ + u32 s[16]; /* 64 bytes of chacha20 state */ + u8 out[64]; /* Output bytes */ + u8 n; /* Output bytes remaining */ } sqlite3Prng; + +/* The RFC-7539 ChaCha20 block function +*/ +#define ROTL(a,b) (((a) << (b)) | ((a) >> (32 - (b)))) +#define QR(a, b, c, d) ( \ + a += b, d ^= a, d = ROTL(d,16), \ + c += d, b ^= c, b = ROTL(b,12), \ + a += b, d ^= a, d = ROTL(d, 8), \ + c += d, b ^= c, b = ROTL(b, 7)) +static void chacha_block(u32 *out, const u32 *in){ + int i; + u32 x[16]; + memcpy(x, in, 64); + for(i=0; i<10; i++){ + QR(x[0], x[4], x[ 8], x[12]); + QR(x[1], x[5], x[ 9], x[13]); + QR(x[2], x[6], x[10], x[14]); + QR(x[3], x[7], x[11], x[15]); + QR(x[0], x[5], x[10], x[15]); + QR(x[1], x[6], x[11], x[12]); + QR(x[2], x[7], x[ 8], x[13]); + QR(x[3], x[4], x[ 9], x[14]); + } + for(i=0; i<16; i++) out[i] = x[i]+in[i]; +} + /* ** Return N random bytes. */ SQLITE_API void sqlite3_randomness(int N, void *pBuf){ - unsigned char t; unsigned char *zBuf = pBuf; /* The "wsdPrng" macro will resolve to the pseudo-random number generator @@ -32383,53 +32976,46 @@ SQLITE_API void sqlite3_randomness(int N, void *pBuf){ sqlite3_mutex_enter(mutex); if( N<=0 || pBuf==0 ){ - wsdPrng.isInit = 0; + wsdPrng.s[0] = 0; sqlite3_mutex_leave(mutex); return; } /* Initialize the state of the random number generator once, - ** the first time this routine is called. The seed value does - ** not need to contain a lot of randomness since we are not - ** trying to do secure encryption or anything like that... - ** - ** Nothing in this file or anywhere else in SQLite does any kind of - ** encryption. The RC4 algorithm is being used as a PRNG (pseudo-random - ** number generator) not as an encryption device. + ** the first time this routine is called. */ - if( !wsdPrng.isInit ){ + if( wsdPrng.s[0]==0 ){ sqlite3_vfs *pVfs = sqlite3_vfs_find(0); - int i; - char k[256]; - wsdPrng.j = 0; - wsdPrng.i = 0; + static const u32 chacha20_init[] = { + 0x61707865, 0x3320646e, 0x79622d32, 0x6b206574 + }; + memcpy(&wsdPrng.s[0], chacha20_init, 16); if( NEVER(pVfs==0) ){ - memset(k, 0, sizeof(k)); + memset(&wsdPrng.s[4], 0, 44); }else{ - sqlite3OsRandomness(pVfs, 256, k); + sqlite3OsRandomness(pVfs, 44, (char*)&wsdPrng.s[4]); } - for(i=0; i<256; i++){ - wsdPrng.s[i] = (u8)i; - } - for(i=0; i<256; i++){ - wsdPrng.j += wsdPrng.s[i] + k[i]; - t = wsdPrng.s[wsdPrng.j]; - wsdPrng.s[wsdPrng.j] = wsdPrng.s[i]; - wsdPrng.s[i] = t; - } - wsdPrng.isInit = 1; + wsdPrng.s[15] = wsdPrng.s[12]; + wsdPrng.s[12] = 0; + wsdPrng.n = 0; } assert( N>0 ); - do{ - wsdPrng.i++; - t = wsdPrng.s[wsdPrng.i]; - wsdPrng.j += t; - wsdPrng.s[wsdPrng.i] = wsdPrng.s[wsdPrng.j]; - wsdPrng.s[wsdPrng.j] = t; - t += wsdPrng.s[wsdPrng.i]; - *(zBuf++) = wsdPrng.s[t]; - }while( --N ); + while( 1 /* exit by break */ ){ + if( N<=wsdPrng.n ){ + memcpy(zBuf, &wsdPrng.out[wsdPrng.n-N], N); + wsdPrng.n -= N; + break; + } + if( wsdPrng.n>0 ){ + memcpy(zBuf, wsdPrng.out, wsdPrng.n); + N -= wsdPrng.n; + zBuf += wsdPrng.n; + } + wsdPrng.s[12]++; + chacha_block((u32*)wsdPrng.out, wsdPrng.s); + wsdPrng.n = 64; + } sqlite3_mutex_leave(mutex); } @@ -33454,6 +34040,26 @@ SQLITE_PRIVATE void sqlite3ErrorWithMsg(sqlite3 *db, int err_code, const char *z } } +/* +** Check for interrupts and invoke progress callback. +*/ +SQLITE_PRIVATE void sqlite3ProgressCheck(Parse *p){ + sqlite3 *db = p->db; + if( AtomicLoad(&db->u1.isInterrupted) ){ + p->nErr++; + p->rc = SQLITE_INTERRUPT; + } +#ifndef SQLITE_OMIT_PROGRESS_CALLBACK + if( db->xProgress && (++p->nProgressSteps)>=db->nProgressOps ){ + if( db->xProgress(db->pProgressArg) ){ + p->nErr++; + p->rc = SQLITE_INTERRUPT; + } + p->nProgressSteps = 0; + } +#endif +} + /* ** Add an error message to pParse->zErrMsg and increment pParse->nErr. ** @@ -33911,11 +34517,14 @@ do_atof_calc: #endif /* -** Render an signed 64-bit integer as text. Store the result in zOut[]. +** Render an signed 64-bit integer as text. Store the result in zOut[] and +** return the length of the string that was stored, in bytes. The value +** returned does not include the zero terminator at the end of the output +** string. ** ** The caller must ensure that zOut[] is at least 21 bytes in size. */ -SQLITE_PRIVATE void sqlite3Int64ToText(i64 v, char *zOut){ +SQLITE_PRIVATE int sqlite3Int64ToText(i64 v, char *zOut){ int i; u64 x; char zTemp[22]; @@ -33926,12 +34535,15 @@ SQLITE_PRIVATE void sqlite3Int64ToText(i64 v, char *zOut){ } i = sizeof(zTemp)-2; zTemp[sizeof(zTemp)-1] = 0; - do{ - zTemp[i--] = (x%10) + '0'; + while( 1 /*exit-by-break*/ ){ + zTemp[i] = (x%10) + '0'; x = x/10; - }while( x ); - if( v<0 ) zTemp[i--] = '-'; - memcpy(zOut, &zTemp[i+1], sizeof(zTemp)-1-i); + if( x==0 ) break; + i--; + }; + if( v<0 ) zTemp[--i] = '-'; + memcpy(zOut, &zTemp[i], sizeof(zTemp)-i); + return sizeof(zTemp)-1-i; } /* @@ -34096,7 +34708,9 @@ SQLITE_PRIVATE int sqlite3DecOrHexToI64(const char *z, i64 *pOut){ u = u*16 + sqlite3HexToInt(z[k]); } memcpy(pOut, &u, 8); - return (z[k]==0 && k-i<=16) ? 0 : 2; + if( k-i>16 ) return 2; + if( z[k]!=0 ) return 1; + return 0; }else #endif /* SQLITE_OMIT_HEX_INTEGER */ { @@ -34132,7 +34746,7 @@ SQLITE_PRIVATE int sqlite3GetInt32(const char *zNum, int *pValue){ u32 u = 0; zNum += 2; while( zNum[0]=='0' ) zNum++; - for(i=0; sqlite3Isxdigit(zNum[i]) && i<8; i++){ + for(i=0; i<8 && sqlite3Isxdigit(zNum[i]); i++){ u = u*16 + sqlite3HexToInt(zNum[i]); } if( (u&0x80000000)==0 && sqlite3Isxdigit(zNum[i])==0 ){ @@ -34993,6 +35607,104 @@ SQLITE_PRIVATE int sqlite3VListNameToNum(VList *pIn, const char *zName, int nNam return 0; } +/* +** High-resolution hardware timer used for debugging and testing only. +*/ +#if defined(VDBE_PROFILE) \ + || defined(SQLITE_PERFORMANCE_TRACE) \ + || defined(SQLITE_ENABLE_STMT_SCANSTATUS) +/************** Include hwtime.h in the middle of util.c *********************/ +/************** Begin file hwtime.h ******************************************/ +/* +** 2008 May 27 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +** This file contains inline asm code for retrieving "high-performance" +** counters for x86 and x86_64 class CPUs. +*/ +#ifndef SQLITE_HWTIME_H +#define SQLITE_HWTIME_H + +/* +** The following routine only works on pentium-class (or newer) processors. +** It uses the RDTSC opcode to read the cycle count value out of the +** processor and returns that value. This can be used for high-res +** profiling. +*/ +#if !defined(__STRICT_ANSI__) && \ + (defined(__GNUC__) || defined(_MSC_VER)) && \ + (defined(i386) || defined(__i386__) || defined(_M_IX86)) + + #if defined(__GNUC__) + + __inline__ sqlite_uint64 sqlite3Hwtime(void){ + unsigned int lo, hi; + __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi)); + return (sqlite_uint64)hi << 32 | lo; + } + + #elif defined(_MSC_VER) + + __declspec(naked) __inline sqlite_uint64 __cdecl sqlite3Hwtime(void){ + __asm { + rdtsc + ret ; return value at EDX:EAX + } + } + + #endif + +#elif !defined(__STRICT_ANSI__) && (defined(__GNUC__) && defined(__x86_64__)) + + __inline__ sqlite_uint64 sqlite3Hwtime(void){ + unsigned int lo, hi; + __asm__ __volatile__ ("rdtsc" : "=a" (lo), "=d" (hi)); + return (sqlite_uint64)hi << 32 | lo; + } + +#elif !defined(__STRICT_ANSI__) && (defined(__GNUC__) && defined(__ppc__)) + + __inline__ sqlite_uint64 sqlite3Hwtime(void){ + unsigned long long retval; + unsigned long junk; + __asm__ __volatile__ ("\n\ + 1: mftbu %1\n\ + mftb %L0\n\ + mftbu %0\n\ + cmpw %0,%1\n\ + bne 1b" + : "=r" (retval), "=r" (junk)); + return retval; + } + +#else + + /* + ** asm() is needed for hardware timing support. Without asm(), + ** disable the sqlite3Hwtime() routine. + ** + ** sqlite3Hwtime() is only used for some obscure debugging + ** and analysis configurations, not in any deliverable, so this + ** should not be a great loss. + */ +SQLITE_PRIVATE sqlite_uint64 sqlite3Hwtime(void){ return ((sqlite_uint64)0); } + +#endif + +#endif /* !defined(SQLITE_HWTIME_H) */ + +/************** End of hwtime.h **********************************************/ +/************** Continuing where we left off in util.c ***********************/ +#endif + /************** End of util.c ************************************************/ /************** Begin file hash.c ********************************************/ /* @@ -35163,12 +35875,13 @@ static HashElem *findElementWithHash( count = pH->count; } if( pHash ) *pHash = h; - while( count-- ){ + while( count ){ assert( elem!=0 ); if( sqlite3StrICmp(elem->pKey,pKey)==0 ){ return elem; } elem = elem->next; + count--; } return &nullElement; } @@ -35287,48 +36000,48 @@ SQLITE_PRIVATE const char *sqlite3OpcodeName(int i){ /* 5 */ "Vacuum" OpHelp(""), /* 6 */ "VFilter" OpHelp("iplan=r[P3] zplan='P4'"), /* 7 */ "VUpdate" OpHelp("data=r[P3@P2]"), - /* 8 */ "Goto" OpHelp(""), - /* 9 */ "Gosub" OpHelp(""), - /* 10 */ "InitCoroutine" OpHelp(""), - /* 11 */ "Yield" OpHelp(""), - /* 12 */ "MustBeInt" OpHelp(""), - /* 13 */ "Jump" OpHelp(""), - /* 14 */ "Once" OpHelp(""), - /* 15 */ "If" OpHelp(""), - /* 16 */ "IfNot" OpHelp(""), - /* 17 */ "IsNullOrType" OpHelp("if typeof(r[P1]) IN (P3,5) goto P2"), - /* 18 */ "IfNullRow" OpHelp("if P1.nullRow then r[P3]=NULL, goto P2"), + /* 8 */ "Init" OpHelp("Start at P2"), + /* 9 */ "Goto" OpHelp(""), + /* 10 */ "Gosub" OpHelp(""), + /* 11 */ "InitCoroutine" OpHelp(""), + /* 12 */ "Yield" OpHelp(""), + /* 13 */ "MustBeInt" OpHelp(""), + /* 14 */ "Jump" OpHelp(""), + /* 15 */ "Once" OpHelp(""), + /* 16 */ "If" OpHelp(""), + /* 17 */ "IfNot" OpHelp(""), + /* 18 */ "IsType" OpHelp("if typeof(P1.P3) in P5 goto P2"), /* 19 */ "Not" OpHelp("r[P2]= !r[P1]"), - /* 20 */ "SeekLT" OpHelp("key=r[P3@P4]"), - /* 21 */ "SeekLE" OpHelp("key=r[P3@P4]"), - /* 22 */ "SeekGE" OpHelp("key=r[P3@P4]"), - /* 23 */ "SeekGT" OpHelp("key=r[P3@P4]"), - /* 24 */ "IfNotOpen" OpHelp("if( !csr[P1] ) goto P2"), - /* 25 */ "IfNoHope" OpHelp("key=r[P3@P4]"), - /* 26 */ "NoConflict" OpHelp("key=r[P3@P4]"), - /* 27 */ "NotFound" OpHelp("key=r[P3@P4]"), - /* 28 */ "Found" OpHelp("key=r[P3@P4]"), - /* 29 */ "SeekRowid" OpHelp("intkey=r[P3]"), - /* 30 */ "NotExists" OpHelp("intkey=r[P3]"), - /* 31 */ "Last" OpHelp(""), - /* 32 */ "IfSmaller" OpHelp(""), - /* 33 */ "SorterSort" OpHelp(""), - /* 34 */ "Sort" OpHelp(""), - /* 35 */ "Rewind" OpHelp(""), - /* 36 */ "SorterNext" OpHelp(""), - /* 37 */ "Prev" OpHelp(""), - /* 38 */ "Next" OpHelp(""), - /* 39 */ "IdxLE" OpHelp("key=r[P3@P4]"), - /* 40 */ "IdxGT" OpHelp("key=r[P3@P4]"), - /* 41 */ "IdxLT" OpHelp("key=r[P3@P4]"), - /* 42 */ "IdxGE" OpHelp("key=r[P3@P4]"), + /* 20 */ "IfNullRow" OpHelp("if P1.nullRow then r[P3]=NULL, goto P2"), + /* 21 */ "SeekLT" OpHelp("key=r[P3@P4]"), + /* 22 */ "SeekLE" OpHelp("key=r[P3@P4]"), + /* 23 */ "SeekGE" OpHelp("key=r[P3@P4]"), + /* 24 */ "SeekGT" OpHelp("key=r[P3@P4]"), + /* 25 */ "IfNotOpen" OpHelp("if( !csr[P1] ) goto P2"), + /* 26 */ "IfNoHope" OpHelp("key=r[P3@P4]"), + /* 27 */ "NoConflict" OpHelp("key=r[P3@P4]"), + /* 28 */ "NotFound" OpHelp("key=r[P3@P4]"), + /* 29 */ "Found" OpHelp("key=r[P3@P4]"), + /* 30 */ "SeekRowid" OpHelp("intkey=r[P3]"), + /* 31 */ "NotExists" OpHelp("intkey=r[P3]"), + /* 32 */ "Last" OpHelp(""), + /* 33 */ "IfSmaller" OpHelp(""), + /* 34 */ "SorterSort" OpHelp(""), + /* 35 */ "Sort" OpHelp(""), + /* 36 */ "Rewind" OpHelp(""), + /* 37 */ "SorterNext" OpHelp(""), + /* 38 */ "Prev" OpHelp(""), + /* 39 */ "Next" OpHelp(""), + /* 40 */ "IdxLE" OpHelp("key=r[P3@P4]"), + /* 41 */ "IdxGT" OpHelp("key=r[P3@P4]"), + /* 42 */ "IdxLT" OpHelp("key=r[P3@P4]"), /* 43 */ "Or" OpHelp("r[P3]=(r[P1] || r[P2])"), /* 44 */ "And" OpHelp("r[P3]=(r[P1] && r[P2])"), - /* 45 */ "RowSetRead" OpHelp("r[P3]=rowset(P1)"), - /* 46 */ "RowSetTest" OpHelp("if r[P3] in rowset(P1) goto P2"), - /* 47 */ "Program" OpHelp(""), - /* 48 */ "FkIfZero" OpHelp("if fkctr[P1]==0 goto P2"), - /* 49 */ "IfPos" OpHelp("if r[P1]>0 then r[P1]-=P3, goto P2"), + /* 45 */ "IdxGE" OpHelp("key=r[P3@P4]"), + /* 46 */ "RowSetRead" OpHelp("r[P3]=rowset(P1)"), + /* 47 */ "RowSetTest" OpHelp("if r[P3] in rowset(P1) goto P2"), + /* 48 */ "Program" OpHelp(""), + /* 49 */ "FkIfZero" OpHelp("if fkctr[P1]==0 goto P2"), /* 50 */ "IsNull" OpHelp("if r[P1]==NULL goto P2"), /* 51 */ "NotNull" OpHelp("if r[P1]!=NULL goto P2"), /* 52 */ "Ne" OpHelp("IF r[P3]!=r[P1]"), @@ -35338,12 +36051,12 @@ SQLITE_PRIVATE const char *sqlite3OpcodeName(int i){ /* 56 */ "Lt" OpHelp("IF r[P3]=r[P1]"), /* 58 */ "ElseEq" OpHelp(""), - /* 59 */ "IfNotZero" OpHelp("if r[P1]!=0 then r[P1]--, goto P2"), - /* 60 */ "DecrJumpZero" OpHelp("if (--r[P1])==0 goto P2"), - /* 61 */ "IncrVacuum" OpHelp(""), - /* 62 */ "VNext" OpHelp(""), - /* 63 */ "Filter" OpHelp("if key(P3@P4) not in filter(P1) goto P2"), - /* 64 */ "Init" OpHelp("Start at P2"), + /* 59 */ "IfPos" OpHelp("if r[P1]>0 then r[P1]-=P3, goto P2"), + /* 60 */ "IfNotZero" OpHelp("if r[P1]!=0 then r[P1]--, goto P2"), + /* 61 */ "DecrJumpZero" OpHelp("if (--r[P1])==0 goto P2"), + /* 62 */ "IncrVacuum" OpHelp(""), + /* 63 */ "VNext" OpHelp(""), + /* 64 */ "Filter" OpHelp("if key(P3@P4) not in filter(P1) goto P2"), /* 65 */ "PureFunc" OpHelp("r[P3]=func(r[P2@NP])"), /* 66 */ "Function" OpHelp("r[P3]=func(r[P2@NP])"), /* 67 */ "Return" OpHelp(""), @@ -35472,6 +36185,988 @@ SQLITE_PRIVATE const char *sqlite3OpcodeName(int i){ #endif /************** End of opcodes.c *********************************************/ +/************** Begin file os_kv.c *******************************************/ +/* +** 2022-09-06 +** +** The author disclaims copyright to this source code. In place of +** a legal notice, here is a blessing: +** +** May you do good and not evil. +** May you find forgiveness for yourself and forgive others. +** May you share freely, never taking more than you give. +** +****************************************************************************** +** +** This file contains an experimental VFS layer that operates on a +** Key/Value storage engine where both keys and values must be pure +** text. +*/ +/* #include */ +#if SQLITE_OS_KV || (SQLITE_OS_UNIX && defined(SQLITE_OS_KV_OPTIONAL)) + +/***************************************************************************** +** Debugging logic +*/ + +/* SQLITE_KV_TRACE() is used for tracing calls to kvstorage routines. */ +#if 0 +#define SQLITE_KV_TRACE(X) printf X +#else +#define SQLITE_KV_TRACE(X) +#endif + +/* SQLITE_KV_LOG() is used for tracing calls to the VFS interface */ +#if 0 +#define SQLITE_KV_LOG(X) printf X +#else +#define SQLITE_KV_LOG(X) +#endif + + +/* +** Forward declaration of objects used by this VFS implementation +*/ +typedef struct KVVfsFile KVVfsFile; + +/* A single open file. There are only two files represented by this +** VFS - the database and the rollback journal. +*/ +struct KVVfsFile { + sqlite3_file base; /* IO methods */ + const char *zClass; /* Storage class */ + int isJournal; /* True if this is a journal file */ + unsigned int nJrnl; /* Space allocated for aJrnl[] */ + char *aJrnl; /* Journal content */ + int szPage; /* Last known page size */ + sqlite3_int64 szDb; /* Database file size. -1 means unknown */ + char *aData; /* Buffer to hold page data */ +}; +#define SQLITE_KVOS_SZ 133073 + +/* +** Methods for KVVfsFile +*/ +static int kvvfsClose(sqlite3_file*); +static int kvvfsReadDb(sqlite3_file*, void*, int iAmt, sqlite3_int64 iOfst); +static int kvvfsReadJrnl(sqlite3_file*, void*, int iAmt, sqlite3_int64 iOfst); +static int kvvfsWriteDb(sqlite3_file*,const void*,int iAmt, sqlite3_int64); +static int kvvfsWriteJrnl(sqlite3_file*,const void*,int iAmt, sqlite3_int64); +static int kvvfsTruncateDb(sqlite3_file*, sqlite3_int64 size); +static int kvvfsTruncateJrnl(sqlite3_file*, sqlite3_int64 size); +static int kvvfsSyncDb(sqlite3_file*, int flags); +static int kvvfsSyncJrnl(sqlite3_file*, int flags); +static int kvvfsFileSizeDb(sqlite3_file*, sqlite3_int64 *pSize); +static int kvvfsFileSizeJrnl(sqlite3_file*, sqlite3_int64 *pSize); +static int kvvfsLock(sqlite3_file*, int); +static int kvvfsUnlock(sqlite3_file*, int); +static int kvvfsCheckReservedLock(sqlite3_file*, int *pResOut); +static int kvvfsFileControlDb(sqlite3_file*, int op, void *pArg); +static int kvvfsFileControlJrnl(sqlite3_file*, int op, void *pArg); +static int kvvfsSectorSize(sqlite3_file*); +static int kvvfsDeviceCharacteristics(sqlite3_file*); + +/* +** Methods for sqlite3_vfs +*/ +static int kvvfsOpen(sqlite3_vfs*, const char *, sqlite3_file*, int , int *); +static int kvvfsDelete(sqlite3_vfs*, const char *zName, int syncDir); +static int kvvfsAccess(sqlite3_vfs*, const char *zName, int flags, int *); +static int kvvfsFullPathname(sqlite3_vfs*, const char *zName, int, char *zOut); +static void *kvvfsDlOpen(sqlite3_vfs*, const char *zFilename); +static int kvvfsRandomness(sqlite3_vfs*, int nByte, char *zOut); +static int kvvfsSleep(sqlite3_vfs*, int microseconds); +static int kvvfsCurrentTime(sqlite3_vfs*, double*); +static int kvvfsCurrentTimeInt64(sqlite3_vfs*, sqlite3_int64*); + +static sqlite3_vfs sqlite3OsKvvfsObject = { + 1, /* iVersion */ + sizeof(KVVfsFile), /* szOsFile */ + 1024, /* mxPathname */ + 0, /* pNext */ + "kvvfs", /* zName */ + 0, /* pAppData */ + kvvfsOpen, /* xOpen */ + kvvfsDelete, /* xDelete */ + kvvfsAccess, /* xAccess */ + kvvfsFullPathname, /* xFullPathname */ + kvvfsDlOpen, /* xDlOpen */ + 0, /* xDlError */ + 0, /* xDlSym */ + 0, /* xDlClose */ + kvvfsRandomness, /* xRandomness */ + kvvfsSleep, /* xSleep */ + kvvfsCurrentTime, /* xCurrentTime */ + 0, /* xGetLastError */ + kvvfsCurrentTimeInt64 /* xCurrentTimeInt64 */ +}; + +/* Methods for sqlite3_file objects referencing a database file +*/ +static sqlite3_io_methods kvvfs_db_io_methods = { + 1, /* iVersion */ + kvvfsClose, /* xClose */ + kvvfsReadDb, /* xRead */ + kvvfsWriteDb, /* xWrite */ + kvvfsTruncateDb, /* xTruncate */ + kvvfsSyncDb, /* xSync */ + kvvfsFileSizeDb, /* xFileSize */ + kvvfsLock, /* xLock */ + kvvfsUnlock, /* xUnlock */ + kvvfsCheckReservedLock, /* xCheckReservedLock */ + kvvfsFileControlDb, /* xFileControl */ + kvvfsSectorSize, /* xSectorSize */ + kvvfsDeviceCharacteristics, /* xDeviceCharacteristics */ + 0, /* xShmMap */ + 0, /* xShmLock */ + 0, /* xShmBarrier */ + 0, /* xShmUnmap */ + 0, /* xFetch */ + 0 /* xUnfetch */ +}; + +/* Methods for sqlite3_file objects referencing a rollback journal +*/ +static sqlite3_io_methods kvvfs_jrnl_io_methods = { + 1, /* iVersion */ + kvvfsClose, /* xClose */ + kvvfsReadJrnl, /* xRead */ + kvvfsWriteJrnl, /* xWrite */ + kvvfsTruncateJrnl, /* xTruncate */ + kvvfsSyncJrnl, /* xSync */ + kvvfsFileSizeJrnl, /* xFileSize */ + kvvfsLock, /* xLock */ + kvvfsUnlock, /* xUnlock */ + kvvfsCheckReservedLock, /* xCheckReservedLock */ + kvvfsFileControlJrnl, /* xFileControl */ + kvvfsSectorSize, /* xSectorSize */ + kvvfsDeviceCharacteristics, /* xDeviceCharacteristics */ + 0, /* xShmMap */ + 0, /* xShmLock */ + 0, /* xShmBarrier */ + 0, /* xShmUnmap */ + 0, /* xFetch */ + 0 /* xUnfetch */ +}; + +/****** Storage subsystem **************************************************/ +#include +#include +#include + +/* Forward declarations for the low-level storage engine +*/ +static int kvstorageWrite(const char*, const char *zKey, const char *zData); +static int kvstorageDelete(const char*, const char *zKey); +static int kvstorageRead(const char*, const char *zKey, char *zBuf, int nBuf); +#define KVSTORAGE_KEY_SZ 32 + +/* Expand the key name with an appropriate prefix and put the result +** zKeyOut[]. The zKeyOut[] buffer is assumed to hold at least +** KVSTORAGE_KEY_SZ bytes. +*/ +static void kvstorageMakeKey( + const char *zClass, + const char *zKeyIn, + char *zKeyOut +){ + sqlite3_snprintf(KVSTORAGE_KEY_SZ, zKeyOut, "kvvfs-%s-%s", zClass, zKeyIn); +} + +/* Write content into a key. zClass is the particular namespace of the +** underlying key/value store to use - either "local" or "session". +** +** Both zKey and zData are zero-terminated pure text strings. +** +** Return the number of errors. +*/ +static int kvstorageWrite( + const char *zClass, + const char *zKey, + const char *zData +){ + FILE *fd; + char zXKey[KVSTORAGE_KEY_SZ]; + kvstorageMakeKey(zClass, zKey, zXKey); + fd = fopen(zXKey, "wb"); + if( fd ){ + SQLITE_KV_TRACE(("KVVFS-WRITE %-15s (%d) %.50s%s\n", zXKey, + (int)strlen(zData), zData, + strlen(zData)>50 ? "..." : "")); + fputs(zData, fd); + fclose(fd); + return 0; + }else{ + return 1; + } +} + +/* Delete a key (with its corresponding data) from the key/value +** namespace given by zClass. If the key does not previously exist, +** this routine is a no-op. +*/ +static int kvstorageDelete(const char *zClass, const char *zKey){ + char zXKey[KVSTORAGE_KEY_SZ]; + kvstorageMakeKey(zClass, zKey, zXKey); + unlink(zXKey); + SQLITE_KV_TRACE(("KVVFS-DELETE %-15s\n", zXKey)); + return 0; +} + +/* Read the value associated with a zKey from the key/value namespace given +** by zClass and put the text data associated with that key in the first +** nBuf bytes of zBuf[]. The value might be truncated if zBuf is not large +** enough to hold it all. The value put into zBuf must always be zero +** terminated, even if it gets truncated because nBuf is not large enough. +** +** Return the total number of bytes in the data, without truncation, and +** not counting the final zero terminator. Return -1 if the key does +** not exist. +** +** If nBuf<=0 then this routine simply returns the size of the data without +** actually reading it. +*/ +static int kvstorageRead( + const char *zClass, + const char *zKey, + char *zBuf, + int nBuf +){ + FILE *fd; + struct stat buf; + char zXKey[KVSTORAGE_KEY_SZ]; + kvstorageMakeKey(zClass, zKey, zXKey); + if( access(zXKey, R_OK)!=0 + || stat(zXKey, &buf)!=0 + || !S_ISREG(buf.st_mode) + ){ + SQLITE_KV_TRACE(("KVVFS-READ %-15s (-1)\n", zXKey)); + return -1; + } + if( nBuf<=0 ){ + return (int)buf.st_size; + }else if( nBuf==1 ){ + zBuf[0] = 0; + SQLITE_KV_TRACE(("KVVFS-READ %-15s (%d)\n", zXKey, + (int)buf.st_size)); + return (int)buf.st_size; + } + if( nBuf > buf.st_size + 1 ){ + nBuf = buf.st_size + 1; + } + fd = fopen(zXKey, "rb"); + if( fd==0 ){ + SQLITE_KV_TRACE(("KVVFS-READ %-15s (-1)\n", zXKey)); + return -1; + }else{ + sqlite3_int64 n = fread(zBuf, 1, nBuf-1, fd); + fclose(fd); + zBuf[n] = 0; + SQLITE_KV_TRACE(("KVVFS-READ %-15s (%lld) %.50s%s\n", zXKey, + n, zBuf, n>50 ? "..." : "")); + return (int)n; + } +} + +/* +** An internal level of indirection which enables us to replace the +** kvvfs i/o methods with JavaScript implementations in WASM builds. +** Maintenance reminder: if this struct changes in any way, the JSON +** rendering of its structure must be updated in +** sqlite3_wasm_enum_json(). There are no binary compatibility +** concerns, so it does not need an iVersion member. This file is +** necessarily always compiled together with sqlite3_wasm_enum_json(), +** and JS code dynamically creates the mapping of members based on +** that JSON description. +*/ +typedef struct sqlite3_kvvfs_methods sqlite3_kvvfs_methods; +struct sqlite3_kvvfs_methods { + int (*xRead)(const char *zClass, const char *zKey, char *zBuf, int nBuf); + int (*xWrite)(const char *zClass, const char *zKey, const char *zData); + int (*xDelete)(const char *zClass, const char *zKey); + const int nKeySize; +}; + +/* +** This object holds the kvvfs I/O methods which may be swapped out +** for JavaScript-side implementations in WASM builds. In such builds +** it cannot be const, but in native builds it should be so that +** the compiler can hopefully optimize this level of indirection out. +** That said, kvvfs is intended primarily for use in WASM builds. +** +** Note that this is not explicitly flagged as static because the +** amalgamation build will tag it with SQLITE_PRIVATE. +*/ +#ifndef SQLITE_WASM +const +#endif +SQLITE_PRIVATE sqlite3_kvvfs_methods sqlite3KvvfsMethods = { +kvstorageRead, +kvstorageWrite, +kvstorageDelete, +KVSTORAGE_KEY_SZ +}; + +/****** Utility subroutines ************************************************/ + +/* +** Encode binary into the text encoded used to persist on disk. +** The output text is stored in aOut[], which must be at least +** nData+1 bytes in length. +** +** Return the actual length of the encoded text, not counting the +** zero terminator at the end. +** +** Encoding format +** --------------- +** +** * Non-zero bytes are encoded as upper-case hexadecimal +** +** * A sequence of one or more zero-bytes that are not at the +** beginning of the buffer are encoded as a little-endian +** base-26 number using a..z. "a" means 0. "b" means 1, +** "z" means 25. "ab" means 26. "ac" means 52. And so forth. +** +** * Because there is no overlap between the encoding characters +** of hexadecimal and base-26 numbers, it is always clear where +** one stops and the next begins. +*/ +static int kvvfsEncode(const char *aData, int nData, char *aOut){ + int i, j; + const unsigned char *a = (const unsigned char*)aData; + for(i=j=0; i>4]; + aOut[j++] = "0123456789ABCDEF"[c&0xf]; + }else{ + /* A sequence of 1 or more zeros is stored as a little-endian + ** base-26 number using a..z as the digits. So one zero is "b". + ** Two zeros is "c". 25 zeros is "z", 26 zeros is "ab", 27 is "bb", + ** and so forth. + */ + int k; + for(k=1; i+k0 ){ + aOut[j++] = 'a'+(k%26); + k /= 26; + } + } + } + aOut[j] = 0; + return j; +} + +static const signed char kvvfsHexValue[256] = { + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, + -1, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 +}; + +/* +** Decode the text encoding back to binary. The binary content is +** written into pOut, which must be at least nOut bytes in length. +** +** The return value is the number of bytes actually written into aOut[]. +*/ +static int kvvfsDecode(const char *a, char *aOut, int nOut){ + int i, j; + int c; + const unsigned char *aIn = (const unsigned char*)a; + i = 0; + j = 0; + while( 1 ){ + c = kvvfsHexValue[aIn[i]]; + if( c<0 ){ + int n = 0; + int mult = 1; + c = aIn[i]; + if( c==0 ) break; + while( c>='a' && c<='z' ){ + n += (c - 'a')*mult; + mult *= 26; + c = aIn[++i]; + } + if( j+n>nOut ) return -1; + memset(&aOut[j], 0, n); + j += n; + if( c==0 || mult==1 ) break; /* progress stalled if mult==1 */ + }else{ + aOut[j] = c<<4; + c = kvvfsHexValue[aIn[++i]]; + if( c<0 ) break; + aOut[j++] += c; + i++; + } + } + return j; +} + +/* +** Decode a complete journal file. Allocate space in pFile->aJrnl +** and store the decoding there. Or leave pFile->aJrnl set to NULL +** if an error is encountered. +** +** The first few characters of the text encoding will be a little-endian +** base-26 number (digits a..z) that is the total number of bytes +** in the decoded journal file image. This base-26 number is followed +** by a single space, then the encoding of the journal. The space +** separator is required to act as a terminator for the base-26 number. +*/ +static void kvvfsDecodeJournal( + KVVfsFile *pFile, /* Store decoding in pFile->aJrnl */ + const char *zTxt, /* Text encoding. Zero-terminated */ + int nTxt /* Bytes in zTxt, excluding zero terminator */ +){ + unsigned int n = 0; + int c, i, mult; + i = 0; + mult = 1; + while( (c = zTxt[i++])>='a' && c<='z' ){ + n += (zTxt[i] - 'a')*mult; + mult *= 26; + } + sqlite3_free(pFile->aJrnl); + pFile->aJrnl = sqlite3_malloc64( n ); + if( pFile->aJrnl==0 ){ + pFile->nJrnl = 0; + return; + } + pFile->nJrnl = n; + n = kvvfsDecode(zTxt+i, pFile->aJrnl, pFile->nJrnl); + if( nnJrnl ){ + sqlite3_free(pFile->aJrnl); + pFile->aJrnl = 0; + pFile->nJrnl = 0; + } +} + +/* +** Read or write the "sz" element, containing the database file size. +*/ +static sqlite3_int64 kvvfsReadFileSize(KVVfsFile *pFile){ + char zData[50]; + zData[0] = 0; + sqlite3KvvfsMethods.xRead(pFile->zClass, "sz", zData, sizeof(zData)-1); + return strtoll(zData, 0, 0); +} +static int kvvfsWriteFileSize(KVVfsFile *pFile, sqlite3_int64 sz){ + char zData[50]; + sqlite3_snprintf(sizeof(zData), zData, "%lld", sz); + return sqlite3KvvfsMethods.xWrite(pFile->zClass, "sz", zData); +} + +/****** sqlite3_io_methods methods ******************************************/ + +/* +** Close an kvvfs-file. +*/ +static int kvvfsClose(sqlite3_file *pProtoFile){ + KVVfsFile *pFile = (KVVfsFile *)pProtoFile; + + SQLITE_KV_LOG(("xClose %s %s\n", pFile->zClass, + pFile->isJournal ? "journal" : "db")); + sqlite3_free(pFile->aJrnl); + sqlite3_free(pFile->aData); + return SQLITE_OK; +} + +/* +** Read from the -journal file. +*/ +static int kvvfsReadJrnl( + sqlite3_file *pProtoFile, + void *zBuf, + int iAmt, + sqlite_int64 iOfst +){ + KVVfsFile *pFile = (KVVfsFile*)pProtoFile; + assert( pFile->isJournal ); + SQLITE_KV_LOG(("xRead('%s-journal',%d,%lld)\n", pFile->zClass, iAmt, iOfst)); + if( pFile->aJrnl==0 ){ + int szTxt = kvstorageRead(pFile->zClass, "jrnl", 0, 0); + char *aTxt; + if( szTxt<=4 ){ + return SQLITE_IOERR; + } + aTxt = sqlite3_malloc64( szTxt+1 ); + if( aTxt==0 ) return SQLITE_NOMEM; + kvstorageRead(pFile->zClass, "jrnl", aTxt, szTxt+1); + kvvfsDecodeJournal(pFile, aTxt, szTxt); + sqlite3_free(aTxt); + if( pFile->aJrnl==0 ) return SQLITE_IOERR; + } + if( iOfst+iAmt>pFile->nJrnl ){ + return SQLITE_IOERR_SHORT_READ; + } + memcpy(zBuf, pFile->aJrnl+iOfst, iAmt); + return SQLITE_OK; +} + +/* +** Read from the database file. +*/ +static int kvvfsReadDb( + sqlite3_file *pProtoFile, + void *zBuf, + int iAmt, + sqlite_int64 iOfst +){ + KVVfsFile *pFile = (KVVfsFile*)pProtoFile; + unsigned int pgno; + int got, n; + char zKey[30]; + char *aData = pFile->aData; + assert( iOfst>=0 ); + assert( iAmt>=0 ); + SQLITE_KV_LOG(("xRead('%s-db',%d,%lld)\n", pFile->zClass, iAmt, iOfst)); + if( iOfst+iAmt>=512 ){ + if( (iOfst % iAmt)!=0 ){ + return SQLITE_IOERR_READ; + } + if( (iAmt & (iAmt-1))!=0 || iAmt<512 || iAmt>65536 ){ + return SQLITE_IOERR_READ; + } + pFile->szPage = iAmt; + pgno = 1 + iOfst/iAmt; + }else{ + pgno = 1; + } + sqlite3_snprintf(sizeof(zKey), zKey, "%u", pgno); + got = sqlite3KvvfsMethods.xRead(pFile->zClass, zKey, + aData, SQLITE_KVOS_SZ-1); + if( got<0 ){ + n = 0; + }else{ + aData[got] = 0; + if( iOfst+iAmt<512 ){ + int k = iOfst+iAmt; + aData[k*2] = 0; + n = kvvfsDecode(aData, &aData[2000], SQLITE_KVOS_SZ-2000); + if( n>=iOfst+iAmt ){ + memcpy(zBuf, &aData[2000+iOfst], iAmt); + n = iAmt; + }else{ + n = 0; + } + }else{ + n = kvvfsDecode(aData, zBuf, iAmt); + } + } + if( nzClass, iAmt, iOfst)); + if( iEnd>=0x10000000 ) return SQLITE_FULL; + if( pFile->aJrnl==0 || pFile->nJrnlaJrnl, iEnd); + if( aNew==0 ){ + return SQLITE_IOERR_NOMEM; + } + pFile->aJrnl = aNew; + if( pFile->nJrnlaJrnl+pFile->nJrnl, 0, iOfst-pFile->nJrnl); + } + pFile->nJrnl = iEnd; + } + memcpy(pFile->aJrnl+iOfst, zBuf, iAmt); + return SQLITE_OK; +} + +/* +** Write into the database file. +*/ +static int kvvfsWriteDb( + sqlite3_file *pProtoFile, + const void *zBuf, + int iAmt, + sqlite_int64 iOfst +){ + KVVfsFile *pFile = (KVVfsFile*)pProtoFile; + unsigned int pgno; + char zKey[30]; + char *aData = pFile->aData; + SQLITE_KV_LOG(("xWrite('%s-db',%d,%lld)\n", pFile->zClass, iAmt, iOfst)); + assert( iAmt>=512 && iAmt<=65536 ); + assert( (iAmt & (iAmt-1))==0 ); + assert( pFile->szPage<0 || pFile->szPage==iAmt ); + pFile->szPage = iAmt; + pgno = 1 + iOfst/iAmt; + sqlite3_snprintf(sizeof(zKey), zKey, "%u", pgno); + kvvfsEncode(zBuf, iAmt, aData); + if( sqlite3KvvfsMethods.xWrite(pFile->zClass, zKey, aData) ){ + return SQLITE_IOERR; + } + if( iOfst+iAmt > pFile->szDb ){ + pFile->szDb = iOfst + iAmt; + } + return SQLITE_OK; +} + +/* +** Truncate an kvvfs-file. +*/ +static int kvvfsTruncateJrnl(sqlite3_file *pProtoFile, sqlite_int64 size){ + KVVfsFile *pFile = (KVVfsFile *)pProtoFile; + SQLITE_KV_LOG(("xTruncate('%s-journal',%lld)\n", pFile->zClass, size)); + assert( size==0 ); + sqlite3KvvfsMethods.xDelete(pFile->zClass, "jrnl"); + sqlite3_free(pFile->aJrnl); + pFile->aJrnl = 0; + pFile->nJrnl = 0; + return SQLITE_OK; +} +static int kvvfsTruncateDb(sqlite3_file *pProtoFile, sqlite_int64 size){ + KVVfsFile *pFile = (KVVfsFile *)pProtoFile; + if( pFile->szDb>size + && pFile->szPage>0 + && (size % pFile->szPage)==0 + ){ + char zKey[50]; + unsigned int pgno, pgnoMax; + SQLITE_KV_LOG(("xTruncate('%s-db',%lld)\n", pFile->zClass, size)); + pgno = 1 + size/pFile->szPage; + pgnoMax = 2 + pFile->szDb/pFile->szPage; + while( pgno<=pgnoMax ){ + sqlite3_snprintf(sizeof(zKey), zKey, "%u", pgno); + sqlite3KvvfsMethods.xDelete(pFile->zClass, zKey); + pgno++; + } + pFile->szDb = size; + return kvvfsWriteFileSize(pFile, size) ? SQLITE_IOERR : SQLITE_OK; + } + return SQLITE_IOERR; +} + +/* +** Sync an kvvfs-file. +*/ +static int kvvfsSyncJrnl(sqlite3_file *pProtoFile, int flags){ + int i, n; + KVVfsFile *pFile = (KVVfsFile *)pProtoFile; + char *zOut; + SQLITE_KV_LOG(("xSync('%s-journal')\n", pFile->zClass)); + if( pFile->nJrnl<=0 ){ + return kvvfsTruncateJrnl(pProtoFile, 0); + } + zOut = sqlite3_malloc64( pFile->nJrnl*2 + 50 ); + if( zOut==0 ){ + return SQLITE_IOERR_NOMEM; + } + n = pFile->nJrnl; + i = 0; + do{ + zOut[i++] = 'a' + (n%26); + n /= 26; + }while( n>0 ); + zOut[i++] = ' '; + kvvfsEncode(pFile->aJrnl, pFile->nJrnl, &zOut[i]); + i = sqlite3KvvfsMethods.xWrite(pFile->zClass, "jrnl", zOut); + sqlite3_free(zOut); + return i ? SQLITE_IOERR : SQLITE_OK; +} +static int kvvfsSyncDb(sqlite3_file *pProtoFile, int flags){ + return SQLITE_OK; +} + +/* +** Return the current file-size of an kvvfs-file. +*/ +static int kvvfsFileSizeJrnl(sqlite3_file *pProtoFile, sqlite_int64 *pSize){ + KVVfsFile *pFile = (KVVfsFile *)pProtoFile; + SQLITE_KV_LOG(("xFileSize('%s-journal')\n", pFile->zClass)); + *pSize = pFile->nJrnl; + return SQLITE_OK; +} +static int kvvfsFileSizeDb(sqlite3_file *pProtoFile, sqlite_int64 *pSize){ + KVVfsFile *pFile = (KVVfsFile *)pProtoFile; + SQLITE_KV_LOG(("xFileSize('%s-db')\n", pFile->zClass)); + if( pFile->szDb>=0 ){ + *pSize = pFile->szDb; + }else{ + *pSize = kvvfsReadFileSize(pFile); + } + return SQLITE_OK; +} + +/* +** Lock an kvvfs-file. +*/ +static int kvvfsLock(sqlite3_file *pProtoFile, int eLock){ + KVVfsFile *pFile = (KVVfsFile *)pProtoFile; + assert( !pFile->isJournal ); + SQLITE_KV_LOG(("xLock(%s,%d)\n", pFile->zClass, eLock)); + + if( eLock!=SQLITE_LOCK_NONE ){ + pFile->szDb = kvvfsReadFileSize(pFile); + } + return SQLITE_OK; +} + +/* +** Unlock an kvvfs-file. +*/ +static int kvvfsUnlock(sqlite3_file *pProtoFile, int eLock){ + KVVfsFile *pFile = (KVVfsFile *)pProtoFile; + assert( !pFile->isJournal ); + SQLITE_KV_LOG(("xUnlock(%s,%d)\n", pFile->zClass, eLock)); + if( eLock==SQLITE_LOCK_NONE ){ + pFile->szDb = -1; + } + return SQLITE_OK; +} + +/* +** Check if another file-handle holds a RESERVED lock on an kvvfs-file. +*/ +static int kvvfsCheckReservedLock(sqlite3_file *pProtoFile, int *pResOut){ + SQLITE_KV_LOG(("xCheckReservedLock\n")); + *pResOut = 0; + return SQLITE_OK; +} + +/* +** File control method. For custom operations on an kvvfs-file. +*/ +static int kvvfsFileControlJrnl(sqlite3_file *pProtoFile, int op, void *pArg){ + SQLITE_KV_LOG(("xFileControl(%d) on journal\n", op)); + return SQLITE_NOTFOUND; +} +static int kvvfsFileControlDb(sqlite3_file *pProtoFile, int op, void *pArg){ + SQLITE_KV_LOG(("xFileControl(%d) on database\n", op)); + if( op==SQLITE_FCNTL_SYNC ){ + KVVfsFile *pFile = (KVVfsFile *)pProtoFile; + int rc = SQLITE_OK; + SQLITE_KV_LOG(("xSync('%s-db')\n", pFile->zClass)); + if( pFile->szDb>0 && 0!=kvvfsWriteFileSize(pFile, pFile->szDb) ){ + rc = SQLITE_IOERR; + } + return rc; + } + return SQLITE_NOTFOUND; +} + +/* +** Return the sector-size in bytes for an kvvfs-file. +*/ +static int kvvfsSectorSize(sqlite3_file *pFile){ + return 512; +} + +/* +** Return the device characteristic flags supported by an kvvfs-file. +*/ +static int kvvfsDeviceCharacteristics(sqlite3_file *pProtoFile){ + return 0; +} + +/****** sqlite3_vfs methods *************************************************/ + +/* +** Open an kvvfs file handle. +*/ +static int kvvfsOpen( + sqlite3_vfs *pProtoVfs, + const char *zName, + sqlite3_file *pProtoFile, + int flags, + int *pOutFlags +){ + KVVfsFile *pFile = (KVVfsFile*)pProtoFile; + if( zName==0 ) zName = ""; + SQLITE_KV_LOG(("xOpen(\"%s\")\n", zName)); + if( strcmp(zName, "local")==0 + || strcmp(zName, "session")==0 + ){ + pFile->isJournal = 0; + pFile->base.pMethods = &kvvfs_db_io_methods; + }else + if( strcmp(zName, "local-journal")==0 + || strcmp(zName, "session-journal")==0 + ){ + pFile->isJournal = 1; + pFile->base.pMethods = &kvvfs_jrnl_io_methods; + }else{ + return SQLITE_CANTOPEN; + } + if( zName[0]=='s' ){ + pFile->zClass = "session"; + }else{ + pFile->zClass = "local"; + } + pFile->aData = sqlite3_malloc64(SQLITE_KVOS_SZ); + if( pFile->aData==0 ){ + return SQLITE_NOMEM; + } + pFile->aJrnl = 0; + pFile->nJrnl = 0; + pFile->szPage = -1; + pFile->szDb = -1; + return SQLITE_OK; +} + +/* +** Delete the file located at zPath. If the dirSync argument is true, +** ensure the file-system modifications are synced to disk before +** returning. +*/ +static int kvvfsDelete(sqlite3_vfs *pVfs, const char *zPath, int dirSync){ + if( strcmp(zPath, "local-journal")==0 ){ + sqlite3KvvfsMethods.xDelete("local", "jrnl"); + }else + if( strcmp(zPath, "session-journal")==0 ){ + sqlite3KvvfsMethods.xDelete("session", "jrnl"); + } + return SQLITE_OK; +} + +/* +** Test for access permissions. Return true if the requested permission +** is available, or false otherwise. +*/ +static int kvvfsAccess( + sqlite3_vfs *pProtoVfs, + const char *zPath, + int flags, + int *pResOut +){ + SQLITE_KV_LOG(("xAccess(\"%s\")\n", zPath)); + if( strcmp(zPath, "local-journal")==0 ){ + *pResOut = sqlite3KvvfsMethods.xRead("local", "jrnl", 0, 0)>0; + }else + if( strcmp(zPath, "session-journal")==0 ){ + *pResOut = sqlite3KvvfsMethods.xRead("session", "jrnl", 0, 0)>0; + }else + if( strcmp(zPath, "local")==0 ){ + *pResOut = sqlite3KvvfsMethods.xRead("local", "sz", 0, 0)>0; + }else + if( strcmp(zPath, "session")==0 ){ + *pResOut = sqlite3KvvfsMethods.xRead("session", "sz", 0, 0)>0; + }else + { + *pResOut = 0; + } + SQLITE_KV_LOG(("xAccess returns %d\n",*pResOut)); + return SQLITE_OK; +} + +/* +** Populate buffer zOut with the full canonical pathname corresponding +** to the pathname in zPath. zOut is guaranteed to point to a buffer +** of at least (INST_MAX_PATHNAME+1) bytes. +*/ +static int kvvfsFullPathname( + sqlite3_vfs *pVfs, + const char *zPath, + int nOut, + char *zOut +){ + size_t nPath; +#ifdef SQLITE_OS_KV_ALWAYS_LOCAL + zPath = "local"; +#endif + nPath = strlen(zPath); + SQLITE_KV_LOG(("xFullPathname(\"%s\")\n", zPath)); + if( nOut +static int kvvfsCurrentTimeInt64(sqlite3_vfs *pVfs, sqlite3_int64 *pTimeOut){ + static const sqlite3_int64 unixEpoch = 24405875*(sqlite3_int64)8640000; + struct timeval sNow; + (void)gettimeofday(&sNow, 0); /* Cannot fail given valid arguments */ + *pTimeOut = unixEpoch + 1000*(sqlite3_int64)sNow.tv_sec + sNow.tv_usec/1000; + return SQLITE_OK; +} +#endif /* SQLITE_OS_KV || SQLITE_OS_UNIX */ + +#if SQLITE_OS_KV +/* +** This routine is called initialize the KV-vfs as the default VFS. +*/ +SQLITE_API int sqlite3_os_init(void){ + return sqlite3_vfs_register(&sqlite3OsKvvfsObject, 1); +} +SQLITE_API int sqlite3_os_end(void){ + return SQLITE_OK; +} +#endif /* SQLITE_OS_KV */ + +#if SQLITE_OS_UNIX && defined(SQLITE_OS_KV_OPTIONAL) +SQLITE_PRIVATE int sqlite3KvvfsInit(void){ + return sqlite3_vfs_register(&sqlite3OsKvvfsObject, 0); +} +#endif + +/************** End of os_kv.c ***********************************************/ /************** Begin file os_unix.c *****************************************/ /* ** 2004 May 22 @@ -35547,7 +37242,7 @@ SQLITE_PRIVATE const char *sqlite3OpcodeName(int i){ #endif /* Use pread() and pwrite() if they are available */ -#if defined(__APPLE__) +#if defined(__APPLE__) || defined(__linux__) # define HAVE_PREAD 1 # define HAVE_PWRITE 1 #endif @@ -35562,15 +37257,16 @@ SQLITE_PRIVATE const char *sqlite3OpcodeName(int i){ /* ** standard include files. */ -#include -#include +#include /* amalgamator: keep */ +#include /* amalgamator: keep */ #include #include -#include +#include /* amalgamator: keep */ /* #include */ -#include +#include /* amalgamator: keep */ #include -#if !defined(SQLITE_OMIT_WAL) || SQLITE_MAX_MMAP_SIZE>0 +#if (!defined(SQLITE_OMIT_WAL) || SQLITE_MAX_MMAP_SIZE>0) \ + && !defined(SQLITE_WASI) # include #endif @@ -35658,9 +37354,46 @@ SQLITE_PRIVATE const char *sqlite3OpcodeName(int i){ */ #define SQLITE_MAX_SYMLINKS 100 +/* +** Remove and stub certain info for WASI (WebAssembly System +** Interface) builds. +*/ +#ifdef SQLITE_WASI +# undef HAVE_FCHMOD +# undef HAVE_FCHOWN +# undef HAVE_MREMAP +# define HAVE_MREMAP 0 +# ifndef SQLITE_DEFAULT_UNIX_VFS +# define SQLITE_DEFAULT_UNIX_VFS "unix-dotfile" + /* ^^^ should SQLITE_DEFAULT_UNIX_VFS be "unix-none"? */ +# endif +# ifndef F_RDLCK +# define F_RDLCK 0 +# define F_WRLCK 1 +# define F_UNLCK 2 +# if __LONG_MAX == 0x7fffffffL +# define F_GETLK 12 +# define F_SETLK 13 +# define F_SETLKW 14 +# else +# define F_GETLK 5 +# define F_SETLK 6 +# define F_SETLKW 7 +# endif +# endif +#else /* !SQLITE_WASI */ +# ifndef HAVE_FCHMOD +# define HAVE_FCHMOD +# endif +#endif /* SQLITE_WASI */ + +#ifdef SQLITE_WASI +# define osGetpid(X) (pid_t)1 +#else /* Always cast the getpid() return type for compatibility with ** kernel modules in VxWorks. */ -#define osGetpid(X) (pid_t)getpid() +# define osGetpid(X) (pid_t)getpid() +#endif /* ** Only set the lastErrno if the error code is a real error and not @@ -35932,7 +37665,11 @@ static struct unix_syscall { #define osPwrite64 ((ssize_t(*)(int,const void*,size_t,off64_t))\ aSyscall[13].pCurrent) +#if defined(HAVE_FCHMOD) { "fchmod", (sqlite3_syscall_ptr)fchmod, 0 }, +#else + { "fchmod", (sqlite3_syscall_ptr)0, 0 }, +#endif #define osFchmod ((int(*)(int,mode_t))aSyscall[14].pCurrent) #if defined(HAVE_POSIX_FALLOCATE) && HAVE_POSIX_FALLOCATE @@ -35968,14 +37705,16 @@ static struct unix_syscall { #endif #define osGeteuid ((uid_t(*)(void))aSyscall[21].pCurrent) -#if !defined(SQLITE_OMIT_WAL) || SQLITE_MAX_MMAP_SIZE>0 +#if (!defined(SQLITE_OMIT_WAL) || SQLITE_MAX_MMAP_SIZE>0) \ + && !defined(SQLITE_WASI) { "mmap", (sqlite3_syscall_ptr)mmap, 0 }, #else { "mmap", (sqlite3_syscall_ptr)0, 0 }, #endif #define osMmap ((void*(*)(void*,size_t,int,int,int,off_t))aSyscall[22].pCurrent) -#if !defined(SQLITE_OMIT_WAL) || SQLITE_MAX_MMAP_SIZE>0 +#if (!defined(SQLITE_OMIT_WAL) || SQLITE_MAX_MMAP_SIZE>0) \ + && !defined(SQLITE_WASI) { "munmap", (sqlite3_syscall_ptr)munmap, 0 }, #else { "munmap", (sqlite3_syscall_ptr)0, 0 }, @@ -36161,6 +37900,9 @@ static int robust_open(const char *z, int f, mode_t m){ break; } if( fd>=SQLITE_MINIMUM_FILE_DESCRIPTOR ) break; + if( (f & (O_EXCL|O_CREAT))==(O_EXCL|O_CREAT) ){ + (void)osUnlink(z); + } osClose(fd); sqlite3_log(SQLITE_WARNING, "attempt to open \"%s\" as file descriptor %d", z, fd); @@ -37123,7 +38865,7 @@ static int unixFileLock(unixFile *pFile, struct flock *pLock){ ** ** UNLOCKED -> SHARED ** SHARED -> RESERVED -** SHARED -> (PENDING) -> EXCLUSIVE +** SHARED -> EXCLUSIVE ** RESERVED -> (PENDING) -> EXCLUSIVE ** PENDING -> EXCLUSIVE ** @@ -37156,19 +38898,20 @@ static int unixLock(sqlite3_file *id, int eFileLock){ ** A RESERVED lock is implemented by grabbing a write-lock on the ** 'reserved byte'. ** - ** A process may only obtain a PENDING lock after it has obtained a - ** SHARED lock. A PENDING lock is implemented by obtaining a write-lock - ** on the 'pending byte'. This ensures that no new SHARED locks can be - ** obtained, but existing SHARED locks are allowed to persist. A process - ** does not have to obtain a RESERVED lock on the way to a PENDING lock. - ** This property is used by the algorithm for rolling back a journal file - ** after a crash. + ** An EXCLUSIVE lock may only be requested after either a SHARED or + ** RESERVED lock is held. An EXCLUSIVE lock is implemented by obtaining + ** a write-lock on the entire 'shared byte range'. Since all other locks + ** require a read-lock on one of the bytes within this range, this ensures + ** that no other locks are held on the database. ** - ** An EXCLUSIVE lock, obtained after a PENDING lock is held, is - ** implemented by obtaining a write-lock on the entire 'shared byte - ** range'. Since all other locks require a read-lock on one of the bytes - ** within this range, this ensures that no other locks are held on the - ** database. + ** If a process that holds a RESERVED lock requests an EXCLUSIVE, then + ** a PENDING lock is obtained first. A PENDING lock is implemented by + ** obtaining a write-lock on the 'pending byte'. This ensures that no new + ** SHARED locks can be obtained, but existing SHARED locks are allowed to + ** persist. If the call to this function fails to obtain the EXCLUSIVE + ** lock in this case, it holds the PENDING lock intead. The client may + ** then re-attempt the EXCLUSIVE lock later on, after existing SHARED + ** locks have cleared. */ int rc = SQLITE_OK; unixFile *pFile = (unixFile*)id; @@ -37239,7 +38982,7 @@ static int unixLock(sqlite3_file *id, int eFileLock){ lock.l_len = 1L; lock.l_whence = SEEK_SET; if( eFileLock==SHARED_LOCK - || (eFileLock==EXCLUSIVE_LOCK && pFile->eFileLockeFileLock==RESERVED_LOCK) ){ lock.l_type = (eFileLock==SHARED_LOCK?F_RDLCK:F_WRLCK); lock.l_start = PENDING_BYTE; @@ -37250,6 +38993,9 @@ static int unixLock(sqlite3_file *id, int eFileLock){ storeLastErrno(pFile, tErrno); } goto end_lock; + }else if( eFileLock==EXCLUSIVE_LOCK ){ + pFile->eFileLock = PENDING_LOCK; + pInode->eFileLock = PENDING_LOCK; } } @@ -37337,13 +39083,9 @@ static int unixLock(sqlite3_file *id, int eFileLock){ } #endif - if( rc==SQLITE_OK ){ pFile->eFileLock = eFileLock; pInode->eFileLock = eFileLock; - }else if( eFileLock==EXCLUSIVE_LOCK ){ - pFile->eFileLock = PENDING_LOCK; - pInode->eFileLock = PENDING_LOCK; } end_lock: @@ -38750,12 +40492,6 @@ static int nfsUnlock(sqlite3_file *id, int eFileLock){ ** Seek to the offset passed as the second argument, then read cnt ** bytes into pBuf. Return the number of bytes actually read. ** -** NB: If you define USE_PREAD or USE_PREAD64, then it might also -** be necessary to define _XOPEN_SOURCE to be 500. This varies from -** one system to another. Since SQLite does not define USE_PREAD -** in any form by default, we will not attempt to define _XOPEN_SOURCE. -** See tickets #2741 and #2681. -** ** To avoid stomping the errno value on a failed read the lastErrno value ** is set before returning. */ @@ -41934,12 +43670,10 @@ static void appendOnePathElement( if( zName[0]=='.' ){ if( nName==1 ) return; if( zName[1]=='.' && nName==2 ){ - if( pPath->nUsed<=1 ){ - pPath->rc = SQLITE_ERROR; - return; + if( pPath->nUsed>1 ){ + assert( pPath->zOut[0]=='/' ); + while( pPath->zOut[--pPath->nUsed]!='/' ){} } - assert( pPath->zOut[0]=='/' ); - while( pPath->zOut[--pPath->nUsed]!='/' ){} return; } } @@ -42151,7 +43885,7 @@ static int unixRandomness(sqlite3_vfs *NotUsed, int nBuf, char *zBuf){ ** than the argument. */ static int unixSleep(sqlite3_vfs *NotUsed, int microseconds){ -#if OS_VXWORKS +#if OS_VXWORKS || _POSIX_C_SOURCE >= 199309L struct timespec sp; sp.tv_sec = microseconds / 1000000; @@ -43533,8 +45267,16 @@ SQLITE_API int sqlite3_os_init(void){ /* Register all VFSes defined in the aVfs[] array */ for(i=0; i<(sizeof(aVfs)/sizeof(sqlite3_vfs)); i++){ +#ifdef SQLITE_DEFAULT_UNIX_VFS + sqlite3_vfs_register(&aVfs[i], + 0==strcmp(aVfs[i].zName,SQLITE_DEFAULT_UNIX_VFS)); +#else sqlite3_vfs_register(&aVfs[i], i==0); +#endif } +#ifdef SQLITE_OS_KV_OPTIONAL + sqlite3KvvfsInit(); +#endif unixBigLock = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_VFS1); #ifndef SQLITE_OMIT_WAL @@ -48304,9 +50046,10 @@ static int winMakeEndInDirSep(int nBuf, char *zBuf){ } /* -** If sqlite3_temp_directory is not, take the mutex and return true. +** If sqlite3_temp_directory is defined, take the mutex and return true. ** -** If sqlite3_temp_directory is NULL, omit the mutex and return false. +** If sqlite3_temp_directory is NULL (undefined), omit the mutex and +** return false. */ static int winTempDirDefined(void){ sqlite3_mutex_enter(sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_TEMPDIR)); @@ -48775,7 +50518,7 @@ static int winOpen( if( isReadWrite ){ int rc2, isRO = 0; sqlite3BeginBenignMalloc(); - rc2 = winAccess(pVfs, zName, SQLITE_ACCESS_READ, &isRO); + rc2 = winAccess(pVfs, zUtf8Name, SQLITE_ACCESS_READ, &isRO); sqlite3EndBenignMalloc(); if( rc2==SQLITE_OK && isRO ) break; } @@ -48792,7 +50535,7 @@ static int winOpen( if( isReadWrite ){ int rc2, isRO = 0; sqlite3BeginBenignMalloc(); - rc2 = winAccess(pVfs, zName, SQLITE_ACCESS_READ, &isRO); + rc2 = winAccess(pVfs, zUtf8Name, SQLITE_ACCESS_READ, &isRO); sqlite3EndBenignMalloc(); if( rc2==SQLITE_OK && isRO ) break; } @@ -48812,7 +50555,7 @@ static int winOpen( if( isReadWrite ){ int rc2, isRO = 0; sqlite3BeginBenignMalloc(); - rc2 = winAccess(pVfs, zName, SQLITE_ACCESS_READ, &isRO); + rc2 = winAccess(pVfs, zUtf8Name, SQLITE_ACCESS_READ, &isRO); sqlite3EndBenignMalloc(); if( rc2==SQLITE_OK && isRO ) break; } @@ -49035,6 +50778,13 @@ static int winAccess( OSTRACE(("ACCESS name=%s, flags=%x, pResOut=%p\n", zFilename, flags, pResOut)); + if( zFilename==0 ){ + *pResOut = 0; + OSTRACE(("ACCESS name=%s, pResOut=%p, *pResOut=%d, rc=SQLITE_OK\n", + zFilename, pResOut, *pResOut)); + return SQLITE_OK; + } + zConverted = winConvertFromUtf8Filename(zFilename); if( zConverted==0 ){ OSTRACE(("ACCESS name=%s, rc=SQLITE_IOERR_NOMEM\n", zFilename)); @@ -49342,7 +51092,8 @@ static int winFullPathname( char *zFull /* Output buffer */ ){ int rc; - sqlite3_mutex *pMutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_TEMPDIR); + MUTEX_LOGIC( sqlite3_mutex *pMutex; ) + MUTEX_LOGIC( pMutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_TEMPDIR); ) sqlite3_mutex_enter(pMutex); rc = winFullPathnameNoMutex(pVfs, zRelative, nFull, zFull); sqlite3_mutex_leave(pMutex); @@ -49884,6 +51635,7 @@ static int memdbTruncate(sqlite3_file*, sqlite3_int64 size); static int memdbSync(sqlite3_file*, int flags); static int memdbFileSize(sqlite3_file*, sqlite3_int64 *pSize); static int memdbLock(sqlite3_file*, int); +static int memdbUnlock(sqlite3_file*, int); /* static int memdbCheckReservedLock(sqlite3_file*, int *pResOut);// not used */ static int memdbFileControl(sqlite3_file*, int op, void *pArg); /* static int memdbSectorSize(sqlite3_file*); // not used */ @@ -49942,7 +51694,7 @@ static const sqlite3_io_methods memdb_io_methods = { memdbSync, /* xSync */ memdbFileSize, /* xFileSize */ memdbLock, /* xLock */ - memdbLock, /* xUnlock - same as xLock in this case */ + memdbUnlock, /* xUnlock */ 0, /* memdbCheckReservedLock, */ /* xCheckReservedLock */ memdbFileControl, /* xFileControl */ 0, /* memdbSectorSize,*/ /* xSectorSize */ @@ -50143,41 +51895,83 @@ static int memdbLock(sqlite3_file *pFile, int eLock){ MemFile *pThis = (MemFile*)pFile; MemStore *p = pThis->pStore; int rc = SQLITE_OK; - if( eLock==pThis->eLock ) return SQLITE_OK; + if( eLock<=pThis->eLock ) return SQLITE_OK; memdbEnter(p); - if( eLock>SQLITE_LOCK_SHARED ){ - if( p->mFlags & SQLITE_DESERIALIZE_READONLY ){ - rc = SQLITE_READONLY; - }else if( pThis->eLock<=SQLITE_LOCK_SHARED ){ - if( p->nWrLock ){ - rc = SQLITE_BUSY; - }else{ - p->nWrLock = 1; + + assert( p->nWrLock==0 || p->nWrLock==1 ); + assert( pThis->eLock<=SQLITE_LOCK_SHARED || p->nWrLock==1 ); + assert( pThis->eLock==SQLITE_LOCK_NONE || p->nRdLock>=1 ); + + if( eLock>SQLITE_LOCK_SHARED && (p->mFlags & SQLITE_DESERIALIZE_READONLY) ){ + rc = SQLITE_READONLY; + }else{ + switch( eLock ){ + case SQLITE_LOCK_SHARED: { + assert( pThis->eLock==SQLITE_LOCK_NONE ); + if( p->nWrLock>0 ){ + rc = SQLITE_BUSY; + }else{ + p->nRdLock++; + } + break; + }; + + case SQLITE_LOCK_RESERVED: + case SQLITE_LOCK_PENDING: { + assert( pThis->eLock>=SQLITE_LOCK_SHARED ); + if( ALWAYS(pThis->eLock==SQLITE_LOCK_SHARED) ){ + if( p->nWrLock>0 ){ + rc = SQLITE_BUSY; + }else{ + p->nWrLock = 1; + } + } + break; + } + + default: { + assert( eLock==SQLITE_LOCK_EXCLUSIVE ); + assert( pThis->eLock>=SQLITE_LOCK_SHARED ); + if( p->nRdLock>1 ){ + rc = SQLITE_BUSY; + }else if( pThis->eLock==SQLITE_LOCK_SHARED ){ + p->nWrLock = 1; + } + break; } } - }else if( eLock==SQLITE_LOCK_SHARED ){ - if( pThis->eLock > SQLITE_LOCK_SHARED ){ - assert( p->nWrLock==1 ); - p->nWrLock = 0; - }else if( p->nWrLock ){ - rc = SQLITE_BUSY; - }else{ - p->nRdLock++; - } - }else{ - assert( eLock==SQLITE_LOCK_NONE ); - if( pThis->eLock>SQLITE_LOCK_SHARED ){ - assert( p->nWrLock==1 ); - p->nWrLock = 0; - } - assert( p->nRdLock>0 ); - p->nRdLock--; } if( rc==SQLITE_OK ) pThis->eLock = eLock; memdbLeave(p); return rc; } +/* +** Unlock an memdb-file. +*/ +static int memdbUnlock(sqlite3_file *pFile, int eLock){ + MemFile *pThis = (MemFile*)pFile; + MemStore *p = pThis->pStore; + if( eLock>=pThis->eLock ) return SQLITE_OK; + memdbEnter(p); + + assert( eLock==SQLITE_LOCK_SHARED || eLock==SQLITE_LOCK_NONE ); + if( eLock==SQLITE_LOCK_SHARED ){ + if( ALWAYS(pThis->eLock>SQLITE_LOCK_SHARED) ){ + p->nWrLock--; + } + }else{ + if( pThis->eLock>SQLITE_LOCK_SHARED ){ + p->nWrLock--; + } + p->nRdLock--; + } + + pThis->eLock = eLock; + memdbLeave(p); + return SQLITE_OK; +} + #if 0 /* ** This interface is only used for crash recovery, which does not @@ -50285,7 +52079,7 @@ static int memdbOpen( memset(pFile, 0, sizeof(*pFile)); szName = sqlite3Strlen30(zName); - if( szName>1 && zName[0]=='/' ){ + if( szName>1 && (zName[0]=='/' || zName[0]=='\\') ){ int i; #ifndef SQLITE_MUTEX_OMIT sqlite3_mutex *pVfsMutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_VFS1); @@ -50632,6 +52426,13 @@ end_deserialize: return rc; } +/* +** Return true if the VFS is the memvfs. +*/ +SQLITE_PRIVATE int sqlite3IsMemdb(const sqlite3_vfs *pVfs){ + return pVfs==&memdb_vfs; +} + /* ** This routine is called when the extension is loaded. ** Register the new VFS. @@ -51111,7 +52912,7 @@ bitvec_end: struct PCache { PgHdr *pDirty, *pDirtyTail; /* List of dirty pages in LRU order */ PgHdr *pSynced; /* Last synced page in dirty page list */ - int nRefSum; /* Sum of ref counts over all pages */ + i64 nRefSum; /* Sum of ref counts over all pages */ int szCache; /* Configured cache size */ int szSpill; /* Size before spilling occurs */ int szPage; /* Size of every page in this cache */ @@ -51136,12 +52937,24 @@ struct PCache { int sqlite3PcacheTrace = 2; /* 0: off 1: simple 2: cache dumps */ int sqlite3PcacheMxDump = 9999; /* Max cache entries for pcacheDump() */ # define pcacheTrace(X) if(sqlite3PcacheTrace){sqlite3DebugPrintf X;} - void pcacheDump(PCache *pCache){ - int N; - int i, j; - sqlite3_pcache_page *pLower; + static void pcachePageTrace(int i, sqlite3_pcache_page *pLower){ PgHdr *pPg; unsigned char *a; + int j; + if( pLower==0 ){ + printf("%3d: NULL\n", i); + }else{ + pPg = (PgHdr*)pLower->pExtra; + printf("%3d: nRef %2lld flgs %02x data ", i, pPg->nRef, pPg->flags); + a = (unsigned char *)pLower->pBuf; + for(j=0; j<12; j++) printf("%02x", a[j]); + printf(" ptr %p\n", pPg); + } + } + static void pcacheDump(PCache *pCache){ + int N; + int i; + sqlite3_pcache_page *pLower; if( sqlite3PcacheTrace<2 ) return; if( pCache->pCache==0 ) return; @@ -51149,22 +52962,32 @@ struct PCache { if( N>sqlite3PcacheMxDump ) N = sqlite3PcacheMxDump; for(i=1; i<=N; i++){ pLower = sqlite3GlobalConfig.pcache2.xFetch(pCache->pCache, i, 0); - if( pLower==0 ) continue; - pPg = (PgHdr*)pLower->pExtra; - printf("%3d: nRef %2d flgs %02x data ", i, pPg->nRef, pPg->flags); - a = (unsigned char *)pLower->pBuf; - for(j=0; j<12; j++) printf("%02x", a[j]); - printf("\n"); - if( pPg->pPage==0 ){ + pcachePageTrace(i, pLower); + if( pLower && ((PgHdr*)pLower)->pPage==0 ){ sqlite3GlobalConfig.pcache2.xUnpin(pCache->pCache, pLower, 0); } } } - #else +#else # define pcacheTrace(X) +# define pcachePageTrace(PGNO, X) # define pcacheDump(X) #endif +/* +** Return 1 if pPg is on the dirty list for pCache. Return 0 if not. +** This routine runs inside of assert() statements only. +*/ +#ifdef SQLITE_DEBUG +static int pageOnDirtyList(PCache *pCache, PgHdr *pPg){ + PgHdr *p; + for(p=pCache->pDirty; p; p=p->pDirtyNext){ + if( p==pPg ) return 1; + } + return 0; +} +#endif + /* ** Check invariants on a PgHdr entry. Return true if everything is OK. ** Return false if any invariant is violated. @@ -51183,8 +53006,13 @@ SQLITE_PRIVATE int sqlite3PcachePageSanity(PgHdr *pPg){ assert( pCache!=0 ); /* Every page has an associated PCache */ if( pPg->flags & PGHDR_CLEAN ){ assert( (pPg->flags & PGHDR_DIRTY)==0 );/* Cannot be both CLEAN and DIRTY */ - assert( pCache->pDirty!=pPg ); /* CLEAN pages not on dirty list */ - assert( pCache->pDirtyTail!=pPg ); + assert( !pageOnDirtyList(pCache, pPg) );/* CLEAN pages not on dirty list */ + }else{ + assert( (pPg->flags & PGHDR_DIRTY)!=0 );/* If not CLEAN must be DIRTY */ + assert( pPg->pDirtyNext==0 || pPg->pDirtyNext->pDirtyPrev==pPg ); + assert( pPg->pDirtyPrev==0 || pPg->pDirtyPrev->pDirtyNext==pPg ); + assert( pPg->pDirtyPrev!=0 || pCache->pDirty==pPg ); + assert( pageOnDirtyList(pCache, pPg) ); } /* WRITEABLE pages must also be DIRTY */ if( pPg->flags & PGHDR_WRITEABLE ){ @@ -51458,8 +53286,9 @@ SQLITE_PRIVATE sqlite3_pcache_page *sqlite3PcacheFetch( assert( createFlag==0 || pCache->eCreate==eCreate ); assert( createFlag==0 || eCreate==1+(!pCache->bPurgeable||!pCache->pDirty) ); pRes = sqlite3GlobalConfig.pcache2.xFetch(pCache->pCache, pgno, eCreate); - pcacheTrace(("%p.FETCH %d%s (result: %p)\n",pCache,pgno, + pcacheTrace(("%p.FETCH %d%s (result: %p) ",pCache,pgno, createFlag?" create":"",pRes)); + pcachePageTrace(pgno, pRes); return pRes; } @@ -51587,6 +53416,7 @@ SQLITE_PRIVATE void SQLITE_NOINLINE sqlite3PcacheRelease(PgHdr *p){ pcacheUnpin(p); }else{ pcacheManageDirtyList(p, PCACHE_DIRTYLIST_FRONT); + assert( sqlite3PcachePageSanity(p) ); } } } @@ -51630,6 +53460,7 @@ SQLITE_PRIVATE void sqlite3PcacheMakeDirty(PgHdr *p){ pcacheTrace(("%p.DIRTY %d\n",p->pCache,p->pgno)); assert( (p->flags & (PGHDR_DIRTY|PGHDR_CLEAN))==PGHDR_DIRTY ); pcacheManageDirtyList(p, PCACHE_DIRTYLIST_ADD); + assert( sqlite3PcachePageSanity(p) ); } assert( sqlite3PcachePageSanity(p) ); } @@ -51858,14 +53689,14 @@ SQLITE_PRIVATE PgHdr *sqlite3PcacheDirtyList(PCache *pCache){ ** This is not the total number of pages referenced, but the sum of the ** reference count for all pages. */ -SQLITE_PRIVATE int sqlite3PcacheRefCount(PCache *pCache){ +SQLITE_PRIVATE i64 sqlite3PcacheRefCount(PCache *pCache){ return pCache->nRefSum; } /* ** Return the number of references to the page supplied as an argument. */ -SQLITE_PRIVATE int sqlite3PcachePageRefcount(PgHdr *p){ +SQLITE_PRIVATE i64 sqlite3PcachePageRefcount(PgHdr *p){ return p->nRef; } @@ -52007,12 +53838,13 @@ SQLITE_PRIVATE void sqlite3PcacheIterateDirty(PCache *pCache, void (*xIter)(PgHd ** size can vary according to architecture, compile-time options, and ** SQLite library version number. ** -** If SQLITE_PCACHE_SEPARATE_HEADER is defined, then the extension is obtained -** using a separate memory allocation from the database page content. This -** seeks to overcome the "clownshoe" problem (also called "internal -** fragmentation" in academic literature) of allocating a few bytes more -** than a power of two with the memory allocator rounding up to the next -** power of two, and leaving the rounded-up space unused. +** Historical note: It used to be that if the SQLITE_PCACHE_SEPARATE_HEADER +** was defined, then the page content would be held in a separate memory +** allocation from the PgHdr1. This was intended to avoid clownshoe memory +** allocations. However, the btree layer needs a small (16-byte) overrun +** area after the page content buffer. The header serves as that overrun +** area. Therefore SQLITE_PCACHE_SEPARATE_HEADER was discontinued to avoid +** any possibility of a memory error. ** ** This module tracks pointers to PgHdr1 objects. Only pcache.c communicates ** with this module. Information is passed back and forth as PgHdr1 pointers. @@ -52057,30 +53889,40 @@ typedef struct PGroup PGroup; /* ** Each cache entry is represented by an instance of the following -** structure. Unless SQLITE_PCACHE_SEPARATE_HEADER is defined, a buffer of -** PgHdr1.pCache->szPage bytes is allocated directly before this structure -** in memory. +** structure. A buffer of PgHdr1.pCache->szPage bytes is allocated +** directly before this structure and is used to cache the page content. ** -** Note: Variables isBulkLocal and isAnchor were once type "u8". That works, +** When reading a corrupt database file, it is possible that SQLite might +** read a few bytes (no more than 16 bytes) past the end of the page buffer. +** It will only read past the end of the page buffer, never write. This +** object is positioned immediately after the page buffer to serve as an +** overrun area, so that overreads are harmless. +** +** Variables isBulkLocal and isAnchor were once type "u8". That works, ** but causes a 2-byte gap in the structure for most architectures (since ** pointers must be either 4 or 8-byte aligned). As this structure is located ** in memory directly after the associated page data, if the database is ** corrupt, code at the b-tree layer may overread the page buffer and ** read part of this structure before the corruption is detected. This ** can cause a valgrind error if the unitialized gap is accessed. Using u16 -** ensures there is no such gap, and therefore no bytes of unitialized memory -** in the structure. +** ensures there is no such gap, and therefore no bytes of uninitialized +** memory in the structure. +** +** The pLruNext and pLruPrev pointers form a double-linked circular list +** of all pages that are unpinned. The PGroup.lru element (which should be +** the only element on the list with PgHdr1.isAnchor set to 1) forms the +** beginning and the end of the list. */ struct PgHdr1 { - sqlite3_pcache_page page; /* Base class. Must be first. pBuf & pExtra */ - unsigned int iKey; /* Key value (page number) */ - u16 isBulkLocal; /* This page from bulk local storage */ - u16 isAnchor; /* This is the PGroup.lru element */ - PgHdr1 *pNext; /* Next in hash table chain */ - PCache1 *pCache; /* Cache that currently owns this page */ - PgHdr1 *pLruNext; /* Next in LRU list of unpinned pages */ - PgHdr1 *pLruPrev; /* Previous in LRU list of unpinned pages */ - /* NB: pLruPrev is only valid if pLruNext!=0 */ + sqlite3_pcache_page page; /* Base class. Must be first. pBuf & pExtra */ + unsigned int iKey; /* Key value (page number) */ + u16 isBulkLocal; /* This page from bulk local storage */ + u16 isAnchor; /* This is the PGroup.lru element */ + PgHdr1 *pNext; /* Next in hash table chain */ + PCache1 *pCache; /* Cache that currently owns this page */ + PgHdr1 *pLruNext; /* Next in circular LRU list of unpinned pages */ + PgHdr1 *pLruPrev; /* Previous in LRU list of unpinned pages */ + /* NB: pLruPrev is only valid if pLruNext!=0 */ }; /* @@ -52406,25 +54248,13 @@ static PgHdr1 *pcache1AllocPage(PCache1 *pCache, int benignMalloc){ pcache1LeaveMutex(pCache->pGroup); #endif if( benignMalloc ){ sqlite3BeginBenignMalloc(); } -#ifdef SQLITE_PCACHE_SEPARATE_HEADER - pPg = pcache1Alloc(pCache->szPage); - p = sqlite3Malloc(sizeof(PgHdr1) + pCache->szExtra); - if( !pPg || !p ){ - pcache1Free(pPg); - sqlite3_free(p); - pPg = 0; - } -#else pPg = pcache1Alloc(pCache->szAlloc); -#endif if( benignMalloc ){ sqlite3EndBenignMalloc(); } #ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT pcache1EnterMutex(pCache->pGroup); #endif if( pPg==0 ) return 0; -#ifndef SQLITE_PCACHE_SEPARATE_HEADER p = (PgHdr1 *)&((u8 *)pPg)[pCache->szPage]; -#endif p->page.pBuf = pPg; p->page.pExtra = &p[1]; p->isBulkLocal = 0; @@ -52448,9 +54278,6 @@ static void pcache1FreePage(PgHdr1 *p){ pCache->pFree = p; }else{ pcache1Free(p->page.pBuf); -#ifdef SQLITE_PCACHE_SEPARATE_HEADER - sqlite3_free(p); -#endif } (*pCache->pnPurgeable)--; } @@ -53217,9 +55044,6 @@ SQLITE_PRIVATE int sqlite3PcacheReleaseMemory(int nReq){ && p->isAnchor==0 ){ nFree += pcache1MemSize(p->page.pBuf); -#ifdef SQLITE_PCACHE_SEPARATE_HEADER - nFree += sqlite3MemSize(p); -#endif assert( PAGE_IS_UNPINNED(p) ); pcache1PinPage(p); pcache1RemoveFromHash(p, 1); @@ -56527,6 +58351,8 @@ static int pager_truncate(Pager *pPager, Pgno nPage){ int rc = SQLITE_OK; assert( pPager->eState!=PAGER_ERROR ); assert( pPager->eState!=PAGER_READER ); + PAGERTRACE(("Truncate %d npage %u\n", PAGERID(pPager), nPage)); + if( isOpen(pPager->fd) && (pPager->eState>=PAGER_WRITER_DBMOD || pPager->eState==PAGER_OPEN) @@ -56857,7 +58683,7 @@ end_playback: ** see if it is possible to delete the super-journal. */ assert( zSuper==&pPager->pTmpSpace[4] ); - memset(&zSuper[-4], 0, 4); + memset(pPager->pTmpSpace, 0, 4); rc = pager_delsuper(pPager, zSuper); testcase( rc!=SQLITE_OK ); } @@ -57478,7 +59304,6 @@ SQLITE_PRIVATE void sqlite3PagerShrink(Pager *pPager){ ** Numeric values associated with these states are OFF==1, NORMAL=2, ** and FULL=3. */ -#ifndef SQLITE_OMIT_PAGER_PRAGMAS SQLITE_PRIVATE void sqlite3PagerSetFlags( Pager *pPager, /* The pager to set safety level for */ unsigned pgFlags /* Various flags */ @@ -57513,7 +59338,6 @@ SQLITE_PRIVATE void sqlite3PagerSetFlags( pPager->doNotSpill |= SPILLFLAG_OFF; } } -#endif /* ** The following global variable is incremented whenever the library @@ -58615,7 +60439,6 @@ SQLITE_PRIVATE int sqlite3PagerOpen( u32 szPageDflt = SQLITE_DEFAULT_PAGE_SIZE; /* Default page size */ const char *zUri = 0; /* URI args to copy */ int nUriByte = 1; /* Number of bytes of URI args at *zUri */ - int nUri = 0; /* Number of URI parameters */ /* Figure out how much space is required for each journal file-handle ** (there are two of them, the main journal and the sub-journal). */ @@ -58663,7 +60486,6 @@ SQLITE_PRIVATE int sqlite3PagerOpen( while( *z ){ z += strlen(z)+1; z += strlen(z)+1; - nUri++; } nUriByte = (int)(&z[1] - zUri); assert( nUriByte>=1 ); @@ -58919,18 +60741,7 @@ act_like_temp_file: pPager->memDb = (u8)memDb; pPager->readOnly = (u8)readOnly; assert( useJournal || pPager->tempFile ); - pPager->noSync = pPager->tempFile; - if( pPager->noSync ){ - assert( pPager->fullSync==0 ); - assert( pPager->extraSync==0 ); - assert( pPager->syncFlags==0 ); - assert( pPager->walSyncFlags==0 ); - }else{ - pPager->fullSync = 1; - pPager->extraSync = 0; - pPager->syncFlags = SQLITE_SYNC_NORMAL; - pPager->walSyncFlags = SQLITE_SYNC_NORMAL | (SQLITE_SYNC_NORMAL<<2); - } + sqlite3PagerSetFlags(pPager, (SQLITE_DEFAULT_SYNCHRONOUS+1)|PAGER_CACHESPILL); /* pPager->pFirst = 0; */ /* pPager->pFirstSynced = 0; */ /* pPager->pLast = 0; */ @@ -59459,6 +61270,10 @@ static int getPageNormal( if( !isOpen(pPager->fd) || pPager->dbSizepPager->mxPgno ){ rc = SQLITE_FULL; + if( pgno<=pPager->dbSize ){ + sqlite3PcacheRelease(pPg); + pPg = 0; + } goto pager_acquire_err; } if( noContent ){ @@ -59623,10 +61438,12 @@ SQLITE_PRIVATE DbPage *sqlite3PagerLookup(Pager *pPager, Pgno pgno){ /* ** Release a page reference. ** -** The sqlite3PagerUnref() and sqlite3PagerUnrefNotNull() may only be -** used if we know that the page being released is not the last page. +** The sqlite3PagerUnref() and sqlite3PagerUnrefNotNull() may only be used +** if we know that the page being released is not the last reference to page1. ** The btree layer always holds page1 open until the end, so these first -** to routines can be used to release any page other than BtShared.pPage1. +** two routines can be used to release any page other than BtShared.pPage1. +** The assert() at tag-20230419-2 proves that this constraint is always +** honored. ** ** Use sqlite3PagerUnrefPageOne() to release page1. This latter routine ** checks the total number of outstanding pages and if the number of @@ -59642,7 +61459,7 @@ SQLITE_PRIVATE void sqlite3PagerUnrefNotNull(DbPage *pPg){ sqlite3PcacheRelease(pPg); } /* Do not use this routine to release the last reference to page1 */ - assert( sqlite3PcacheRefCount(pPager->pPCache)>0 ); + assert( sqlite3PcacheRefCount(pPager->pPCache)>0 ); /* tag-20230419-2 */ } SQLITE_PRIVATE void sqlite3PagerUnref(DbPage *pPg){ if( pPg ) sqlite3PagerUnrefNotNull(pPg); @@ -59708,6 +61525,7 @@ static int pager_open_journal(Pager *pPager){ if( pPager->tempFile ){ flags |= (SQLITE_OPEN_DELETEONCLOSE|SQLITE_OPEN_TEMP_JOURNAL); + flags |= SQLITE_OPEN_EXCLUSIVE; nSpill = sqlite3Config.nStmtSpill; }else{ flags |= SQLITE_OPEN_MAIN_JOURNAL; @@ -60190,7 +62008,7 @@ static int pager_incr_changecounter(Pager *pPager, int isDirectMode){ # define DIRECT_MODE isDirectMode #endif - if( !pPager->changeCountDone && ALWAYS(pPager->dbSize>0) ){ + if( !pPager->changeCountDone && pPager->dbSize>0 ){ PgHdr *pPgHdr; /* Reference to page 1 */ assert( !pPager->tempFile && isOpen(pPager->fd) ); @@ -60930,7 +62748,11 @@ SQLITE_PRIVATE int sqlite3PagerSavepoint(Pager *pPager, int op, int iSavepoint){ */ SQLITE_PRIVATE const char *sqlite3PagerFilename(const Pager *pPager, int nullIfMemDb){ static const char zFake[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; - return (nullIfMemDb && pPager->memDb) ? &zFake[4] : pPager->zFilename; + if( nullIfMemDb && (pPager->memDb || sqlite3IsMemdb(pPager->pVfs)) ){ + return &zFake[4]; + }else{ + return pPager->zFilename; + } } /* @@ -61299,7 +63121,7 @@ SQLITE_PRIVATE int sqlite3PagerGetJournalMode(Pager *pPager){ SQLITE_PRIVATE int sqlite3PagerOkToChangeJournalMode(Pager *pPager){ assert( assert_pager_state(pPager) ); if( pPager->eState>=PAGER_WRITER_CACHEMOD ) return 0; - if( isOpen(pPager->jfd) && pPager->journalOff>0 ) return 0; + if( NEVER(isOpen(pPager->jfd) && pPager->journalOff>0) ) return 0; return 1; } @@ -61397,13 +63219,15 @@ SQLITE_PRIVATE int sqlite3PagerWalSupported(Pager *pPager){ */ static int pagerExclusiveLock(Pager *pPager){ int rc; /* Return code */ + u8 eOrigLock; /* Original lock */ - assert( pPager->eLock==SHARED_LOCK || pPager->eLock==EXCLUSIVE_LOCK ); + assert( pPager->eLock>=SHARED_LOCK ); + eOrigLock = pPager->eLock; rc = pagerLockDb(pPager, EXCLUSIVE_LOCK); if( rc!=SQLITE_OK ){ /* If the attempt to grab the exclusive lock failed, release the ** pending lock that may have been obtained instead. */ - pagerUnlockDb(pPager, SHARED_LOCK); + pagerUnlockDb(pPager, eOrigLock); } return rc; @@ -62408,19 +64232,40 @@ static void walChecksumBytes( assert( nByte>=8 ); assert( (nByte&0x00000007)==0 ); assert( nByte<=65536 ); + assert( nByte%4==0 ); - if( nativeCksum ){ - do { - s1 += *aData++ + s2; - s2 += *aData++ + s1; - }while( aDataszPage==szPage ); + if( (int)pWal->szPage!=szPage ){ + return SQLITE_CORRUPT_BKPT; /* TH3 test case: cov1/corrupt155.test */ + } /* Setup information needed to write frames into the WAL */ w.pWal = pWal; @@ -66011,7 +67858,7 @@ SQLITE_PRIVATE sqlite3_file *sqlite3WalFile(Wal *pWal){ ** byte are used. The integer consists of all bytes that have bit 8 set and ** the first byte with bit 8 clear. The most significant byte of the integer ** appears first. A variable-length integer may not be more than 9 bytes long. -** As a special case, all 8 bytes of the 9th byte are used as data. This +** As a special case, all 8 bits of the 9th byte are used as data. This ** allows a 64-bit integer to be encoded in 9 bytes. ** ** 0x00 becomes 0x00000000 @@ -66395,7 +68242,7 @@ struct BtCursor { #define BTCF_WriteFlag 0x01 /* True if a write cursor */ #define BTCF_ValidNKey 0x02 /* True if info.nKey is valid */ #define BTCF_ValidOvfl 0x04 /* True if aOverflow is valid */ -#define BTCF_AtLast 0x08 /* Cursor is pointing ot the last entry */ +#define BTCF_AtLast 0x08 /* Cursor is pointing to the last entry */ #define BTCF_Incrblob 0x10 /* True if an incremental I/O handle */ #define BTCF_Multiple 0x20 /* Maybe another cursor on the same btree */ #define BTCF_Pinned 0x40 /* Cursor is busy and cannot be moved */ @@ -66513,15 +68360,15 @@ struct BtCursor { ** So, this macro is defined instead. */ #ifndef SQLITE_OMIT_AUTOVACUUM -#define ISAUTOVACUUM (pBt->autoVacuum) +#define ISAUTOVACUUM(pBt) (pBt->autoVacuum) #else -#define ISAUTOVACUUM 0 +#define ISAUTOVACUUM(pBt) 0 #endif /* -** This structure is passed around through all the sanity checking routines -** in order to keep track of some global state information. +** This structure is passed around through all the PRAGMA integrity_check +** checking routines in order to keep track of some global state information. ** ** The aRef[] array is allocated so that there is 1 bit for each page in ** the database. As the integrity-check proceeds, for each page used in @@ -66537,10 +68384,12 @@ struct IntegrityCk { Pgno nPage; /* Number of pages in the database */ int mxErr; /* Stop accumulating errors when this reaches zero */ int nErr; /* Number of messages written to zErrMsg so far */ - int bOomFault; /* A memory allocation error has occurred */ + int rc; /* SQLITE_OK, SQLITE_NOMEM, or SQLITE_INTERRUPT */ + u32 nStep; /* Number of steps into the integrity_check process */ const char *zPfx; /* Error message prefix */ - Pgno v1; /* Value for first %u substitution in zPfx */ - int v2; /* Value for second %d substitution in zPfx */ + Pgno v0; /* Value for first %u substitution in zPfx (root page) */ + Pgno v1; /* Value for second %u substitution in zPfx (current pg) */ + int v2; /* Value for third %d substitution in zPfx */ StrAccum errMsg; /* Accumulate the error message text here */ u32 *heap; /* Min-heap used for analyzing cell coverage */ sqlite3 *db; /* Database connection running the check */ @@ -66807,6 +68656,7 @@ SQLITE_PRIVATE int sqlite3BtreeHoldsAllMutexes(sqlite3 *db){ SQLITE_PRIVATE int sqlite3SchemaMutexHeld(sqlite3 *db, int iDb, Schema *pSchema){ Btree *p; assert( db!=0 ); + if( db->pVfs==0 && db->nDb==0 ) return 1; if( pSchema ) iDb = sqlite3SchemaToIndex(db, pSchema); assert( iDb>=0 && iDbnDb ); if( !sqlite3_mutex_held(db->mutex) ) return 0; @@ -67002,8 +68852,8 @@ SQLITE_PRIVATE sqlite3_uint64 sqlite3BtreeSeekCount(Btree *pBt){ int corruptPageError(int lineno, MemPage *p){ char *zMsg; sqlite3BeginBenignMalloc(); - zMsg = sqlite3_mprintf("database corruption page %d of %s", - (int)p->pgno, sqlite3PagerFilename(p->pBt->pPager, 0) + zMsg = sqlite3_mprintf("database corruption page %u of %s", + p->pgno, sqlite3PagerFilename(p->pBt->pPager, 0) ); sqlite3EndBenignMalloc(); if( zMsg ){ @@ -67812,8 +69662,25 @@ SQLITE_PRIVATE int sqlite3BtreeCursorRestore(BtCursor *pCur, int *pDifferentRow) */ SQLITE_PRIVATE void sqlite3BtreeCursorHint(BtCursor *pCur, int eHintType, ...){ /* Used only by system that substitute their own storage engine */ +#ifdef SQLITE_DEBUG + if( ALWAYS(eHintType==BTREE_HINT_RANGE) ){ + va_list ap; + Expr *pExpr; + Walker w; + memset(&w, 0, sizeof(w)); + w.xExprCallback = sqlite3CursorRangeHintExprCheck; + va_start(ap, eHintType); + pExpr = va_arg(ap, Expr*); + w.u.aMem = va_arg(ap, Mem*); + va_end(ap); + assert( pExpr!=0 ); + assert( w.u.aMem!=0 ); + sqlite3WalkExpr(&w, pExpr); + } +#endif /* SQLITE_DEBUG */ } -#endif +#endif /* SQLITE_ENABLE_CURSOR_HINTS */ + /* ** Provide flag hints to the cursor. @@ -67898,7 +69765,7 @@ static void ptrmapPut(BtShared *pBt, Pgno key, u8 eType, Pgno parent, int *pRC){ pPtrmap = (u8 *)sqlite3PagerGetData(pDbPage); if( eType!=pPtrmap[offset] || get4byte(&pPtrmap[offset+1])!=parent ){ - TRACE(("PTRMAP_UPDATE: %d->(%d,%d)\n", key, eType, parent)); + TRACE(("PTRMAP_UPDATE: %u->(%u,%u)\n", key, eType, parent)); *pRC= rc = sqlite3PagerWrite(pDbPage); if( rc==SQLITE_OK ){ pPtrmap[offset] = eType; @@ -68097,27 +69964,31 @@ static void btreeParseCellPtr( iKey = *pIter; if( iKey>=0x80 ){ u8 x; - iKey = ((iKey&0x7f)<<7) | ((x = *++pIter) & 0x7f); + iKey = (iKey<<7) ^ (x = *++pIter); if( x>=0x80 ){ - iKey = (iKey<<7) | ((x =*++pIter) & 0x7f); + iKey = (iKey<<7) ^ (x = *++pIter); if( x>=0x80 ){ - iKey = (iKey<<7) | ((x = *++pIter) & 0x7f); + iKey = (iKey<<7) ^ 0x10204000 ^ (x = *++pIter); if( x>=0x80 ){ - iKey = (iKey<<7) | ((x = *++pIter) & 0x7f); + iKey = (iKey<<7) ^ 0x4000 ^ (x = *++pIter); if( x>=0x80 ){ - iKey = (iKey<<7) | ((x = *++pIter) & 0x7f); + iKey = (iKey<<7) ^ 0x4000 ^ (x = *++pIter); if( x>=0x80 ){ - iKey = (iKey<<7) | ((x = *++pIter) & 0x7f); + iKey = (iKey<<7) ^ 0x4000 ^ (x = *++pIter); if( x>=0x80 ){ - iKey = (iKey<<7) | ((x = *++pIter) & 0x7f); + iKey = (iKey<<7) ^ 0x4000 ^ (x = *++pIter); if( x>=0x80 ){ - iKey = (iKey<<8) | (*++pIter); + iKey = (iKey<<8) ^ 0x8000 ^ (*++pIter); } } } } } + }else{ + iKey ^= 0x204000; } + }else{ + iKey ^= 0x4000; } } pIter++; @@ -68194,10 +70065,11 @@ static void btreeParseCell( ** ** cellSizePtrNoPayload() => table internal nodes ** cellSizePtrTableLeaf() => table leaf nodes -** cellSizePtr() => all index nodes & table leaf nodes +** cellSizePtr() => index internal nodes +** cellSizeIdxLeaf() => index leaf nodes */ static u16 cellSizePtr(MemPage *pPage, u8 *pCell){ - u8 *pIter = pCell + pPage->childPtrSize; /* For looping over bytes of pCell */ + u8 *pIter = pCell + 4; /* For looping over bytes of pCell */ u8 *pEnd; /* End mark for a varint */ u32 nSize; /* Size value to return */ @@ -68210,6 +70082,49 @@ static u16 cellSizePtr(MemPage *pPage, u8 *pCell){ pPage->xParseCell(pPage, pCell, &debuginfo); #endif + assert( pPage->childPtrSize==4 ); + nSize = *pIter; + if( nSize>=0x80 ){ + pEnd = &pIter[8]; + nSize &= 0x7f; + do{ + nSize = (nSize<<7) | (*++pIter & 0x7f); + }while( *(pIter)>=0x80 && pItermaxLocal ); + testcase( nSize==(u32)pPage->maxLocal+1 ); + if( nSize<=pPage->maxLocal ){ + nSize += (u32)(pIter - pCell); + assert( nSize>4 ); + }else{ + int minLocal = pPage->minLocal; + nSize = minLocal + (nSize - minLocal) % (pPage->pBt->usableSize - 4); + testcase( nSize==pPage->maxLocal ); + testcase( nSize==(u32)pPage->maxLocal+1 ); + if( nSize>pPage->maxLocal ){ + nSize = minLocal; + } + nSize += 4 + (u16)(pIter - pCell); + } + assert( nSize==debuginfo.nSize || CORRUPT_DB ); + return (u16)nSize; +} +static u16 cellSizePtrIdxLeaf(MemPage *pPage, u8 *pCell){ + u8 *pIter = pCell; /* For looping over bytes of pCell */ + u8 *pEnd; /* End mark for a varint */ + u32 nSize; /* Size value to return */ + +#ifdef SQLITE_DEBUG + /* The value returned by this function should always be the same as + ** the (CellInfo.nSize) value found by doing a full parse of the + ** cell. If SQLITE_DEBUG is defined, an assert() at the bottom of + ** this function verifies that this invariant is not violated. */ + CellInfo debuginfo; + pPage->xParseCell(pPage, pCell, &debuginfo); +#endif + + assert( pPage->childPtrSize==0 ); nSize = *pIter; if( nSize>=0x80 ){ pEnd = &pIter[8]; @@ -68379,8 +70294,7 @@ static int defragmentPage(MemPage *pPage, int nMaxFrag){ assert( pPage->pBt->usableSize <= SQLITE_MAX_PAGE_SIZE ); assert( pPage->nOverflow==0 ); assert( sqlite3_mutex_held(pPage->pBt->mutex) ); - temp = 0; - src = data = pPage->aData; + data = pPage->aData; hdr = pPage->hdrOffset; cellOffset = pPage->cellOffset; nCell = pPage->nCell; @@ -68434,39 +70348,38 @@ static int defragmentPage(MemPage *pPage, int nMaxFrag){ cbrk = usableSize; iCellLast = usableSize - 4; iCellStart = get2byte(&data[hdr+5]); - for(i=0; iiCellLast ){ - return SQLITE_CORRUPT_PAGE(pPage); + if( nCell>0 ){ + temp = sqlite3PagerTempSpace(pPage->pBt->pPager); + memcpy(&temp[iCellStart], &data[iCellStart], usableSize - iCellStart); + src = temp; + for(i=0; iiCellLast ){ + return SQLITE_CORRUPT_PAGE(pPage); + } + assert( pc>=0 && pc<=iCellLast ); + size = pPage->xCellSize(pPage, &src[pc]); + cbrk -= size; + if( cbrkusableSize ){ + return SQLITE_CORRUPT_PAGE(pPage); + } + assert( cbrk+size<=usableSize && cbrk>=iCellStart ); + testcase( cbrk+size==usableSize ); + testcase( pc+size==usableSize ); + put2byte(pAddr, cbrk); + memcpy(&data[cbrk], &src[pc], size); } - assert( pc>=iCellStart && pc<=iCellLast ); - size = pPage->xCellSize(pPage, &src[pc]); - cbrk -= size; - if( cbrkusableSize ){ - return SQLITE_CORRUPT_PAGE(pPage); - } - assert( cbrk+size<=usableSize && cbrk>=iCellStart ); - testcase( cbrk+size==usableSize ); - testcase( pc+size==usableSize ); - put2byte(pAddr, cbrk); - if( temp==0 ){ - if( cbrk==pc ) continue; - temp = sqlite3PagerTempSpace(pPage->pBt->pPager); - memcpy(&temp[iCellStart], &data[iCellStart], usableSize - iCellStart); - src = temp; - } - memcpy(&data[cbrk], &src[pc], size); } data[hdr+7] = 0; - defragment_out: +defragment_out: assert( pPage->nFree>=0 ); if( data[hdr+7]+cbrk-iCellFirst!=pPage->nFree ){ return SQLITE_CORRUPT_PAGE(pPage); @@ -68523,7 +70436,6 @@ static u8 *pageFindSlot(MemPage *pPg, int nByte, int *pRc){ ** fragmented bytes within the page. */ memcpy(&aData[iAddr], &aData[pc], 2); aData[hdr+7] += (u8)x; - testcase( pc+x>maxPC ); return &aData[pc]; }else if( x+pc > maxPC ){ /* This slot extends off the end of the usable part of the page */ @@ -68539,9 +70451,9 @@ static u8 *pageFindSlot(MemPage *pPg, int nByte, int *pRc){ iAddr = pc; pTmp = &aData[pc]; pc = get2byte(pTmp); - if( pc<=iAddr+size ){ + if( pc<=iAddr ){ if( pc ){ - /* The next slot in the chain is not past the end of the current slot */ + /* The next slot in the chain comes before the current slot */ *pRc = SQLITE_CORRUPT_PAGE(pPg); } return 0; @@ -68567,7 +70479,7 @@ static u8 *pageFindSlot(MemPage *pPg, int nByte, int *pRc){ ** allocation is being made in order to insert a new cell, so we will ** also end up needing a new cell pointer. */ -static int allocateSpace(MemPage *pPage, int nByte, int *pIdx){ +static SQLITE_INLINE int allocateSpace(MemPage *pPage, int nByte, int *pIdx){ const int hdr = pPage->hdrOffset; /* Local cache of pPage->hdrOffset */ u8 * const data = pPage->aData; /* Local cache of pPage->aData */ int top; /* First byte of cell content area */ @@ -68593,13 +70505,14 @@ static int allocateSpace(MemPage *pPage, int nByte, int *pIdx){ ** integer, so a value of 0 is used in its place. */ pTmp = &data[hdr+5]; top = get2byte(pTmp); - assert( top<=(int)pPage->pBt->usableSize ); /* by btreeComputeFreeSpace() */ if( gap>top ){ if( top==0 && pPage->pBt->usableSize==65536 ){ top = 65536; }else{ return SQLITE_CORRUPT_PAGE(pPage); } + }else if( top>(int)pPage->pBt->usableSize ){ + return SQLITE_CORRUPT_PAGE(pPage); } /* If there is enough space between gap and top for one more cell pointer, @@ -68682,7 +70595,7 @@ static int freeSpace(MemPage *pPage, u16 iStart, u16 iSize){ assert( CORRUPT_DB || iEnd <= pPage->pBt->usableSize ); assert( sqlite3_mutex_held(pPage->pBt->mutex) ); assert( iSize>=4 ); /* Minimum cell size is 4 */ - assert( iStart<=pPage->pBt->usableSize-4 ); + assert( CORRUPT_DB || iStart<=pPage->pBt->usableSize-4 ); /* The list of freeblocks must be in ascending order. Find the ** spot on the list where iStart should be inserted. @@ -68693,7 +70606,7 @@ static int freeSpace(MemPage *pPage, u16 iStart, u16 iSize){ iFreeBlk = 0; /* Shortcut for the case when the freelist is empty */ }else{ while( (iFreeBlk = get2byte(&data[iPtr]))pBt->btsFlags & BTS_FAST_SECURE ){ + /* Overwrite deleted information with zeros when the secure_delete + ** option is enabled */ + memset(&data[iStart], 0, iSize); + } if( iStart<=x ){ /* The new freeblock is at the beginning of the cell content area, ** so just extend the cell content area rather than create another @@ -68750,14 +70668,9 @@ static int freeSpace(MemPage *pPage, u16 iStart, u16 iSize){ }else{ /* Insert the new freeblock into the freelist */ put2byte(&data[iPtr], iStart); + put2byte(&data[iStart], iFreeBlk); + put2byte(&data[iStart+2], iSize); } - if( pPage->pBt->btsFlags & BTS_FAST_SECURE ){ - /* Overwrite deleted information with zeros when the secure_delete - ** option is enabled */ - memset(&data[iStart], 0, iSize); - } - put2byte(&data[iStart], iFreeBlk); - put2byte(&data[iStart+2], iSize); pPage->nFree += iOrigSize; return SQLITE_OK; } @@ -68769,62 +70682,67 @@ static int freeSpace(MemPage *pPage, u16 iStart, u16 iSize){ ** Only the following combinations are supported. Anything different ** indicates a corrupt database files: ** -** PTF_ZERODATA -** PTF_ZERODATA | PTF_LEAF -** PTF_LEAFDATA | PTF_INTKEY -** PTF_LEAFDATA | PTF_INTKEY | PTF_LEAF +** PTF_ZERODATA (0x02, 2) +** PTF_LEAFDATA | PTF_INTKEY (0x05, 5) +** PTF_ZERODATA | PTF_LEAF (0x0a, 10) +** PTF_LEAFDATA | PTF_INTKEY | PTF_LEAF (0x0d, 13) */ static int decodeFlags(MemPage *pPage, int flagByte){ BtShared *pBt; /* A copy of pPage->pBt */ assert( pPage->hdrOffset==(pPage->pgno==1 ? 100 : 0) ); assert( sqlite3_mutex_held(pPage->pBt->mutex) ); - pPage->leaf = (u8)(flagByte>>3); assert( PTF_LEAF == 1<<3 ); - flagByte &= ~PTF_LEAF; - pPage->childPtrSize = 4-4*pPage->leaf; pBt = pPage->pBt; - if( flagByte==(PTF_LEAFDATA | PTF_INTKEY) ){ - /* EVIDENCE-OF: R-07291-35328 A value of 5 (0x05) means the page is an - ** interior table b-tree page. */ - assert( (PTF_LEAFDATA|PTF_INTKEY)==5 ); - /* EVIDENCE-OF: R-26900-09176 A value of 13 (0x0d) means the page is a - ** leaf table b-tree page. */ - assert( (PTF_LEAFDATA|PTF_INTKEY|PTF_LEAF)==13 ); - pPage->intKey = 1; - if( pPage->leaf ){ + pPage->max1bytePayload = pBt->max1bytePayload; + if( flagByte>=(PTF_ZERODATA | PTF_LEAF) ){ + pPage->childPtrSize = 0; + pPage->leaf = 1; + if( flagByte==(PTF_LEAFDATA | PTF_INTKEY | PTF_LEAF) ){ pPage->intKeyLeaf = 1; pPage->xCellSize = cellSizePtrTableLeaf; pPage->xParseCell = btreeParseCellPtr; + pPage->intKey = 1; + pPage->maxLocal = pBt->maxLeaf; + pPage->minLocal = pBt->minLeaf; + }else if( flagByte==(PTF_ZERODATA | PTF_LEAF) ){ + pPage->intKey = 0; + pPage->intKeyLeaf = 0; + pPage->xCellSize = cellSizePtrIdxLeaf; + pPage->xParseCell = btreeParseCellPtrIndex; + pPage->maxLocal = pBt->maxLocal; + pPage->minLocal = pBt->minLocal; }else{ + pPage->intKey = 0; + pPage->intKeyLeaf = 0; + pPage->xCellSize = cellSizePtrIdxLeaf; + pPage->xParseCell = btreeParseCellPtrIndex; + return SQLITE_CORRUPT_PAGE(pPage); + } + }else{ + pPage->childPtrSize = 4; + pPage->leaf = 0; + if( flagByte==(PTF_ZERODATA) ){ + pPage->intKey = 0; + pPage->intKeyLeaf = 0; + pPage->xCellSize = cellSizePtr; + pPage->xParseCell = btreeParseCellPtrIndex; + pPage->maxLocal = pBt->maxLocal; + pPage->minLocal = pBt->minLocal; + }else if( flagByte==(PTF_LEAFDATA | PTF_INTKEY) ){ pPage->intKeyLeaf = 0; pPage->xCellSize = cellSizePtrNoPayload; pPage->xParseCell = btreeParseCellPtrNoPayload; + pPage->intKey = 1; + pPage->maxLocal = pBt->maxLeaf; + pPage->minLocal = pBt->minLeaf; + }else{ + pPage->intKey = 0; + pPage->intKeyLeaf = 0; + pPage->xCellSize = cellSizePtr; + pPage->xParseCell = btreeParseCellPtrIndex; + return SQLITE_CORRUPT_PAGE(pPage); } - pPage->maxLocal = pBt->maxLeaf; - pPage->minLocal = pBt->minLeaf; - }else if( flagByte==PTF_ZERODATA ){ - /* EVIDENCE-OF: R-43316-37308 A value of 2 (0x02) means the page is an - ** interior index b-tree page. */ - assert( (PTF_ZERODATA)==2 ); - /* EVIDENCE-OF: R-59615-42828 A value of 10 (0x0a) means the page is a - ** leaf index b-tree page. */ - assert( (PTF_ZERODATA|PTF_LEAF)==10 ); - pPage->intKey = 0; - pPage->intKeyLeaf = 0; - pPage->xCellSize = cellSizePtr; - pPage->xParseCell = btreeParseCellPtrIndex; - pPage->maxLocal = pBt->maxLocal; - pPage->minLocal = pBt->minLocal; - }else{ - /* EVIDENCE-OF: R-47608-56469 Any other value for the b-tree page type is - ** an error. */ - pPage->intKey = 0; - pPage->intKeyLeaf = 0; - pPage->xCellSize = cellSizePtr; - pPage->xParseCell = btreeParseCellPtrIndex; - return SQLITE_CORRUPT_PAGE(pPage); } - pPage->max1bytePayload = pBt->max1bytePayload; return SQLITE_OK; } @@ -69175,9 +71093,7 @@ getAndInitPage_error1: pCur->pPage = pCur->apPage[pCur->iPage]; } testcase( pgno==0 ); - assert( pgno!=0 || rc==SQLITE_CORRUPT - || rc==SQLITE_IOERR_NOMEM - || rc==SQLITE_NOMEM ); + assert( pgno!=0 || rc!=SQLITE_OK ); return rc; } @@ -70613,6 +72529,9 @@ static int modifyPagePointer(MemPage *pPage, Pgno iFrom, Pgno iTo, u8 eType){ } } }else{ + if( pCell+4 > pPage->aData+pPage->pBt->usableSize ){ + return SQLITE_CORRUPT_PAGE(pPage); + } if( get4byte(pCell)==iFrom ){ put4byte(pCell, iTo); break; @@ -70661,7 +72580,7 @@ static int relocatePage( if( iDbPage<3 ) return SQLITE_CORRUPT_BKPT; /* Move page iDbPage from its current location to page number iFreePage */ - TRACE(("AUTOVACUUM: Moving %d to free page %d (ptr page %d type %d)\n", + TRACE(("AUTOVACUUM: Moving %u to free page %u (ptr page %u type %u)\n", iDbPage, iFreePage, iPtrPage, eType)); rc = sqlite3PagerMovepage(pPager, pDbPage->pDbPage, iFreePage, isCommit); if( rc!=SQLITE_OK ){ @@ -72119,8 +74038,6 @@ SQLITE_PRIVATE const void *sqlite3BtreePayloadFetch(BtCursor *pCur, u32 *pAmt){ ** vice-versa). */ static int moveToChild(BtCursor *pCur, u32 newPgno){ - BtShared *pBt = pCur->pBt; - assert( cursorOwnsBtShared(pCur) ); assert( pCur->eState==CURSOR_VALID ); assert( pCur->iPageapPage[pCur->iPage] = pCur->pPage; pCur->ix = 0; pCur->iPage++; - return getAndInitPage(pBt, newPgno, &pCur->pPage, pCur, pCur->curPagerFlags); + return getAndInitPage(pCur->pBt, newPgno, &pCur->pPage, pCur, + pCur->curPagerFlags); } #ifdef SQLITE_DEBUG @@ -72240,7 +74158,7 @@ static int moveToRoot(BtCursor *pCur){ } sqlite3BtreeClearCursor(pCur); } - rc = getAndInitPage(pCur->pBtree->pBt, pCur->pgnoRoot, &pCur->pPage, + rc = getAndInitPage(pCur->pBt, pCur->pgnoRoot, &pCur->pPage, 0, pCur->curPagerFlags); if( rc!=SQLITE_OK ){ pCur->eState = CURSOR_INVALID; @@ -72364,9 +74282,25 @@ SQLITE_PRIVATE int sqlite3BtreeFirst(BtCursor *pCur, int *pRes){ ** on success. Set *pRes to 0 if the cursor actually points to something ** or set *pRes to 1 if the table is empty. */ +static SQLITE_NOINLINE int btreeLast(BtCursor *pCur, int *pRes){ + int rc = moveToRoot(pCur); + if( rc==SQLITE_OK ){ + assert( pCur->eState==CURSOR_VALID ); + *pRes = 0; + rc = moveToRightmost(pCur); + if( rc==SQLITE_OK ){ + pCur->curFlags |= BTCF_AtLast; + }else{ + pCur->curFlags &= ~BTCF_AtLast; + } + }else if( rc==SQLITE_EMPTY ){ + assert( pCur->pgnoRoot==0 || pCur->pPage->nCell==0 ); + *pRes = 1; + rc = SQLITE_OK; + } + return rc; +} SQLITE_PRIVATE int sqlite3BtreeLast(BtCursor *pCur, int *pRes){ - int rc; - assert( cursorOwnsBtShared(pCur) ); assert( sqlite3_mutex_held(pCur->pBtree->db->mutex) ); @@ -72387,23 +74321,7 @@ SQLITE_PRIVATE int sqlite3BtreeLast(BtCursor *pCur, int *pRes){ *pRes = 0; return SQLITE_OK; } - - rc = moveToRoot(pCur); - if( rc==SQLITE_OK ){ - assert( pCur->eState==CURSOR_VALID ); - *pRes = 0; - rc = moveToRightmost(pCur); - if( rc==SQLITE_OK ){ - pCur->curFlags |= BTCF_AtLast; - }else{ - pCur->curFlags &= ~BTCF_AtLast; - } - }else if( rc==SQLITE_EMPTY ){ - assert( pCur->pgnoRoot==0 || pCur->pPage->nCell==0 ); - *pRes = 1; - rc = SQLITE_OK; - } - return rc; + return btreeLast(pCur, pRes); } /* Move the cursor so that it points to an entry in a table (a.k.a INTKEY) @@ -72948,14 +74866,8 @@ static SQLITE_NOINLINE int btreeNext(BtCursor *pCur){ pPage = pCur->pPage; idx = ++pCur->ix; - if( !pPage->isInit || sqlite3FaultSim(412) ){ - /* The only known way for this to happen is for there to be a - ** recursive SQL function that does a DELETE operation as part of a - ** SELECT which deletes content out from under an active cursor - ** in a corrupt database file where the table being DELETE-ed from - ** has pages in common with the table being queried. See TH3 - ** module cov1/btree78.test testcase 220 (2018-06-08) for an - ** example. */ + if( sqlite3FaultSim(412) ) pPage->isInit = 0; + if( !pPage->isInit ){ return SQLITE_CORRUPT_BKPT; } @@ -73131,8 +75043,8 @@ static int allocateBtreePage( assert( eMode==BTALLOC_ANY || (nearby>0 && IfNotOmitAV(pBt->autoVacuum)) ); pPage1 = pBt->pPage1; mxPage = btreePagecount(pBt); - /* EVIDENCE-OF: R-05119-02637 The 4-byte big-endian integer at offset 36 - ** stores stores the total number of pages on the freelist. */ + /* EVIDENCE-OF: R-21003-45125 The 4-byte big-endian integer at offset 36 + ** stores the total number of pages on the freelist. */ n = get4byte(&pPage1->aData[36]); testcase( n==mxPage-1 ); if( n>=mxPage ){ @@ -73218,7 +75130,7 @@ static int allocateBtreePage( memcpy(&pPage1->aData[32], &pTrunk->aData[0], 4); *ppPage = pTrunk; pTrunk = 0; - TRACE(("ALLOCATE: %d trunk - %d free pages left\n", *pPgno, n-1)); + TRACE(("ALLOCATE: %u trunk - %u free pages left\n", *pPgno, n-1)); }else if( k>(u32)(pBt->usableSize/4 - 2) ){ /* Value of k is out of range. Database corruption */ rc = SQLITE_CORRUPT_PGNO(iTrunk); @@ -73284,7 +75196,7 @@ static int allocateBtreePage( } } pTrunk = 0; - TRACE(("ALLOCATE: %d trunk - %d free pages left\n", *pPgno, n-1)); + TRACE(("ALLOCATE: %u trunk - %u free pages left\n", *pPgno, n-1)); #endif }else if( k>0 ){ /* Extract a leaf from the trunk */ @@ -73329,8 +75241,8 @@ static int allocateBtreePage( ){ int noContent; *pPgno = iPage; - TRACE(("ALLOCATE: %d was leaf %d of %d on trunk %d" - ": %d more free pages\n", + TRACE(("ALLOCATE: %u was leaf %u of %u on trunk %u" + ": %u more free pages\n", *pPgno, closest+1, k, pTrunk->pgno, n-1)); rc = sqlite3PagerWrite(pTrunk->pDbPage); if( rc ) goto end_allocate_page; @@ -73386,7 +75298,7 @@ static int allocateBtreePage( ** becomes a new pointer-map page, the second is used by the caller. */ MemPage *pPg = 0; - TRACE(("ALLOCATE: %d from end of file (pointer-map page)\n", pBt->nPage)); + TRACE(("ALLOCATE: %u from end of file (pointer-map page)\n", pBt->nPage)); assert( pBt->nPage!=PENDING_BYTE_PAGE(pBt) ); rc = btreeGetUnusedPage(pBt, pBt->nPage, &pPg, bNoContent); if( rc==SQLITE_OK ){ @@ -73409,7 +75321,7 @@ static int allocateBtreePage( releasePage(*ppPage); *ppPage = 0; } - TRACE(("ALLOCATE: %d from end of file\n", *pPgno)); + TRACE(("ALLOCATE: %u from end of file\n", *pPgno)); } assert( CORRUPT_DB || *pPgno!=PENDING_BYTE_PAGE(pBt) ); @@ -73477,7 +75389,7 @@ static int freePage2(BtShared *pBt, MemPage *pMemPage, Pgno iPage){ /* If the database supports auto-vacuum, write an entry in the pointer-map ** to indicate that the page is free. */ - if( ISAUTOVACUUM ){ + if( ISAUTOVACUUM(pBt) ){ ptrmapPut(pBt, iPage, PTRMAP_FREEPAGE, 0, &rc); if( rc ) goto freepage_out; } @@ -73537,7 +75449,7 @@ static int freePage2(BtShared *pBt, MemPage *pMemPage, Pgno iPage){ } rc = btreeSetHasContent(pBt, iPage); } - TRACE(("FREE-PAGE: %d leaf on trunk page %d\n",pPage->pgno,pTrunk->pgno)); + TRACE(("FREE-PAGE: %u leaf on trunk page %u\n",pPage->pgno,pTrunk->pgno)); goto freepage_out; } } @@ -73558,7 +75470,7 @@ static int freePage2(BtShared *pBt, MemPage *pMemPage, Pgno iPage){ put4byte(pPage->aData, iTrunk); put4byte(&pPage->aData[4], 0); put4byte(&pPage1->aData[32], iPage); - TRACE(("FREE-PAGE: %d new trunk page replacing %d\n", pPage->pgno, iTrunk)); + TRACE(("FREE-PAGE: %u new trunk page replacing %u\n", pPage->pgno, iTrunk)); freepage_out: if( pPage ){ @@ -73881,12 +75793,6 @@ static void dropCell(MemPage *pPage, int idx, int sz, int *pRC){ assert( pPage->pBt->usableSize > (u32)(ptr-data) ); pc = get2byte(ptr); hdr = pPage->hdrOffset; -#if 0 /* Not required. Omit for efficiency */ - if( pcnCell*2 ){ - *pRC = SQLITE_CORRUPT_BKPT; - return; - } -#endif testcase( pc==(u32)get2byte(&data[hdr+5]) ); testcase( pc+sz==pPage->pBt->usableSize ); if( pc+sz > pPage->pBt->usableSize ){ @@ -73924,23 +75830,27 @@ static void dropCell(MemPage *pPage, int idx, int sz, int *pRC){ ** Allocating a new entry in pPage->aCell[] implies that ** pPage->nOverflow is incremented. ** -** *pRC must be SQLITE_OK when this routine is called. +** The insertCellFast() routine below works exactly the same as +** insertCell() except that it lacks the pTemp and iChild parameters +** which are assumed zero. Other than that, the two routines are the +** same. +** +** Fixes or enhancements to this routine should be reflected in +** insertCellFast()! */ -static void insertCell( +static int insertCell( MemPage *pPage, /* Page into which we are copying */ int i, /* New cell becomes the i-th cell of the page */ u8 *pCell, /* Content of the new cell */ int sz, /* Bytes of content in pCell */ u8 *pTemp, /* Temp storage space for pCell, if needed */ - Pgno iChild, /* If non-zero, replace first 4 bytes with this value */ - int *pRC /* Read and write return code from here */ + Pgno iChild /* If non-zero, replace first 4 bytes with this value */ ){ int idx = 0; /* Where to write new cell content in data[] */ int j; /* Loop counter */ u8 *data; /* The content of the whole page */ u8 *pIns; /* The point in pPage->aCellIdx[] where no cell inserted */ - assert( *pRC==SQLITE_OK ); assert( i>=0 && i<=pPage->nCell+pPage->nOverflow ); assert( MX_CELL(pPage->pBt)<=10921 ); assert( pPage->nCell<=MX_CELL(pPage->pBt) || CORRUPT_DB ); @@ -73949,14 +75859,103 @@ static void insertCell( assert( sqlite3_mutex_held(pPage->pBt->mutex) ); assert( sz==pPage->xCellSize(pPage, pCell) || CORRUPT_DB ); assert( pPage->nFree>=0 ); + assert( iChild>0 ); if( pPage->nOverflow || sz+2>pPage->nFree ){ if( pTemp ){ memcpy(pTemp, pCell, sz); pCell = pTemp; } - if( iChild ){ - put4byte(pCell, iChild); + put4byte(pCell, iChild); + j = pPage->nOverflow++; + /* Comparison against ArraySize-1 since we hold back one extra slot + ** as a contingency. In other words, never need more than 3 overflow + ** slots but 4 are allocated, just to be safe. */ + assert( j < ArraySize(pPage->apOvfl)-1 ); + pPage->apOvfl[j] = pCell; + pPage->aiOvfl[j] = (u16)i; + + /* When multiple overflows occur, they are always sequential and in + ** sorted order. This invariants arise because multiple overflows can + ** only occur when inserting divider cells into the parent page during + ** balancing, and the dividers are adjacent and sorted. + */ + assert( j==0 || pPage->aiOvfl[j-1]<(u16)i ); /* Overflows in sorted order */ + assert( j==0 || i==pPage->aiOvfl[j-1]+1 ); /* Overflows are sequential */ + }else{ + int rc = sqlite3PagerWrite(pPage->pDbPage); + if( NEVER(rc!=SQLITE_OK) ){ + return rc; } + assert( sqlite3PagerIswriteable(pPage->pDbPage) ); + data = pPage->aData; + assert( &data[pPage->cellOffset]==pPage->aCellIdx ); + rc = allocateSpace(pPage, sz, &idx); + if( rc ){ return rc; } + /* The allocateSpace() routine guarantees the following properties + ** if it returns successfully */ + assert( idx >= 0 ); + assert( idx >= pPage->cellOffset+2*pPage->nCell+2 || CORRUPT_DB ); + assert( idx+sz <= (int)pPage->pBt->usableSize ); + pPage->nFree -= (u16)(2 + sz); + /* In a corrupt database where an entry in the cell index section of + ** a btree page has a value of 3 or less, the pCell value might point + ** as many as 4 bytes in front of the start of the aData buffer for + ** the source page. Make sure this does not cause problems by not + ** reading the first 4 bytes */ + memcpy(&data[idx+4], pCell+4, sz-4); + put4byte(&data[idx], iChild); + pIns = pPage->aCellIdx + i*2; + memmove(pIns+2, pIns, 2*(pPage->nCell - i)); + put2byte(pIns, idx); + pPage->nCell++; + /* increment the cell count */ + if( (++data[pPage->hdrOffset+4])==0 ) data[pPage->hdrOffset+3]++; + assert( get2byte(&data[pPage->hdrOffset+3])==pPage->nCell || CORRUPT_DB ); +#ifndef SQLITE_OMIT_AUTOVACUUM + if( pPage->pBt->autoVacuum ){ + int rc2 = SQLITE_OK; + /* The cell may contain a pointer to an overflow page. If so, write + ** the entry for the overflow page into the pointer map. + */ + ptrmapPutOvflPtr(pPage, pPage, pCell, &rc2); + if( rc2 ) return rc2; + } +#endif + } + return SQLITE_OK; +} + +/* +** This variant of insertCell() assumes that the pTemp and iChild +** parameters are both zero. Use this variant in sqlite3BtreeInsert() +** for performance improvement, and also so that this variant is only +** called from that one place, and is thus inlined, and thus runs must +** faster. +** +** Fixes or enhancements to this routine should be reflected into +** the insertCell() routine. +*/ +static int insertCellFast( + MemPage *pPage, /* Page into which we are copying */ + int i, /* New cell becomes the i-th cell of the page */ + u8 *pCell, /* Content of the new cell */ + int sz /* Bytes of content in pCell */ +){ + int idx = 0; /* Where to write new cell content in data[] */ + int j; /* Loop counter */ + u8 *data; /* The content of the whole page */ + u8 *pIns; /* The point in pPage->aCellIdx[] where no cell inserted */ + + assert( i>=0 && i<=pPage->nCell+pPage->nOverflow ); + assert( MX_CELL(pPage->pBt)<=10921 ); + assert( pPage->nCell<=MX_CELL(pPage->pBt) || CORRUPT_DB ); + assert( pPage->nOverflow<=ArraySize(pPage->apOvfl) ); + assert( ArraySize(pPage->apOvfl)==ArraySize(pPage->aiOvfl) ); + assert( sqlite3_mutex_held(pPage->pBt->mutex) ); + assert( sz==pPage->xCellSize(pPage, pCell) || CORRUPT_DB ); + assert( pPage->nFree>=0 ); + assert( pPage->nOverflow==0 ); + if( sz+2>pPage->nFree ){ j = pPage->nOverflow++; /* Comparison against ArraySize-1 since we hold back one extra slot ** as a contingency. In other words, never need more than 3 overflow @@ -73975,31 +75974,20 @@ static void insertCell( }else{ int rc = sqlite3PagerWrite(pPage->pDbPage); if( rc!=SQLITE_OK ){ - *pRC = rc; - return; + return rc; } assert( sqlite3PagerIswriteable(pPage->pDbPage) ); data = pPage->aData; assert( &data[pPage->cellOffset]==pPage->aCellIdx ); rc = allocateSpace(pPage, sz, &idx); - if( rc ){ *pRC = rc; return; } + if( rc ){ return rc; } /* The allocateSpace() routine guarantees the following properties ** if it returns successfully */ assert( idx >= 0 ); assert( idx >= pPage->cellOffset+2*pPage->nCell+2 || CORRUPT_DB ); assert( idx+sz <= (int)pPage->pBt->usableSize ); pPage->nFree -= (u16)(2 + sz); - if( iChild ){ - /* In a corrupt database where an entry in the cell index section of - ** a btree page has a value of 3 or less, the pCell value might point - ** as many as 4 bytes in front of the start of the aData buffer for - ** the source page. Make sure this does not cause problems by not - ** reading the first 4 bytes */ - memcpy(&data[idx+4], pCell+4, sz-4); - put4byte(&data[idx], iChild); - }else{ - memcpy(&data[idx], pCell, sz); - } + memcpy(&data[idx], pCell, sz); pIns = pPage->aCellIdx + i*2; memmove(pIns+2, pIns, 2*(pPage->nCell - i)); put2byte(pIns, idx); @@ -74009,13 +75997,16 @@ static void insertCell( assert( get2byte(&data[pPage->hdrOffset+3])==pPage->nCell || CORRUPT_DB ); #ifndef SQLITE_OMIT_AUTOVACUUM if( pPage->pBt->autoVacuum ){ + int rc2 = SQLITE_OK; /* The cell may contain a pointer to an overflow page. If so, write ** the entry for the overflow page into the pointer map. */ - ptrmapPutOvflPtr(pPage, pPage, pCell, pRC); + ptrmapPutOvflPtr(pPage, pPage, pCell, &rc2); + if( rc2 ) return rc2; } #endif } + return SQLITE_OK; } /* @@ -74116,14 +76107,16 @@ struct CellArray { ** computed. */ static void populateCellCache(CellArray *p, int idx, int N){ + MemPage *pRef = p->pRef; + u16 *szCell = p->szCell; assert( idx>=0 && idx+N<=p->nCell ); while( N>0 ){ assert( p->apCell[idx]!=0 ); - if( p->szCell[idx]==0 ){ - p->szCell[idx] = p->pRef->xCellSize(p->pRef, p->apCell[idx]); + if( szCell[idx]==0 ){ + szCell[idx] = pRef->xCellSize(pRef, p->apCell[idx]); }else{ assert( CORRUPT_DB || - p->szCell[idx]==p->pRef->xCellSize(p->pRef, p->apCell[idx]) ); + szCell[idx]==pRef->xCellSize(pRef, p->apCell[idx]) ); } idx++; N--; @@ -74179,7 +76172,7 @@ static int rebuildPage( assert( i(u32)usableSize ){ j = 0; } + if( NEVER(j>(u32)usableSize) ){ j = 0; } memcpy(&pTmp[j], &aData[j], usableSize - j); for(k=0; pCArray->ixNx[k]<=i && ALWAYS(kpBt->usableSize]; u8 * const pStart = &aData[pPg->hdrOffset + 8 + pPg->childPtrSize]; int nRet = 0; - int i; + int i, j; int iEnd = iFirst + nCell; - u8 *pFree = 0; - int szFree = 0; + int nFree = 0; + int aOfst[10]; + int aAfter[10]; for(i=iFirst; iapCell[i]; if( SQLITE_WITHIN(pCell, pStart, pEnd) ){ int sz; + int iAfter; + int iOfst; /* No need to use cachedCellSize() here. The sizes of all cells that ** are to be freed have already been computing while deciding which ** cells need freeing */ sz = pCArray->szCell[i]; assert( sz>0 ); - if( pFree!=(pCell + sz) ){ - if( pFree ){ - assert( pFree>aData && (pFree - aData)<65536 ); - freeSpace(pPg, (u16)(pFree - aData), szFree); + iOfst = (u16)(pCell - aData); + iAfter = iOfst+sz; + for(j=0; jpEnd ){ - return 0; + } + if( j>=nFree ){ + if( nFree>=(int)(sizeof(aOfst)/sizeof(aOfst[0])) ){ + for(j=0; jpEnd ) return 0; + nFree++; } nRet++; } } - if( pFree ){ - assert( pFree>aData && (pFree - aData)<65536 ); - freeSpace(pPg, (u16)(pFree - aData), szFree); + for(j=0; jpPg->aDataEnd ) goto editpage_fail; + if( NEVER(pData>pPg->aDataEnd) ) goto editpage_fail; /* Add cells to the start of the page */ if( iNewpgno, &rc); if( szCell>pNew->minLocal ){ ptrmapPutOvflPtr(pNew, pNew, pCell, &rc); @@ -74582,8 +76586,8 @@ static int balance_quick(MemPage *pParent, MemPage *pPage, u8 *pSpace){ /* Insert the new divider cell into pParent. */ if( rc==SQLITE_OK ){ - insertCell(pParent, pParent->nCell, pSpace, (int)(pOut-pSpace), - 0, pPage->pgno, &rc); + rc = insertCell(pParent, pParent->nCell, pSpace, (int)(pOut-pSpace), + 0, pPage->pgno); } /* Set the right-child pointer of pParent to point to the new page. */ @@ -74692,7 +76696,7 @@ static void copyNodeContent(MemPage *pFrom, MemPage *pTo, int *pRC){ /* If this is an auto-vacuum database, update the pointer-map entries ** for any b-tree or overflow pages that pTo now contains the pointers to. */ - if( ISAUTOVACUUM ){ + if( ISAUTOVACUUM(pBt) ){ *pRC = setChildPtrmaps(pTo); } } @@ -75116,15 +77120,17 @@ static int balance_nonroot( d = r + 1 - leafData; (void)cachedCellSize(&b, d); do{ + int szR, szD; assert( d szLeft-(b.szCell[r]+(i==k-1?0:2)))){ + && (bBulk || szRight+szD+2 > szLeft-(szR+(i==k-1?0:2)))){ break; } - szRight += b.szCell[d] + 2; - szLeft -= b.szCell[r] + 2; + szRight += szD + 2; + szLeft -= szR + 2; cntNew[i-1] = r; r--; d--; @@ -75145,7 +77151,7 @@ static int balance_nonroot( ** that page. */ assert( cntNew[0]>0 || (pParent->pgno==1 && pParent->nCell==0) || CORRUPT_DB); - TRACE(("BALANCE: old: %d(nc=%d) %d(nc=%d) %d(nc=%d)\n", + TRACE(("BALANCE: old: %u(nc=%u) %u(nc=%u) %u(nc=%u)\n", apOld[0]->pgno, apOld[0]->nCell, nOld>=2 ? apOld[1]->pgno : 0, nOld>=2 ? apOld[1]->nCell : 0, nOld>=3 ? apOld[2]->pgno : 0, nOld>=3 ? apOld[2]->nCell : 0 @@ -75178,7 +77184,7 @@ static int balance_nonroot( cntOld[i] = b.nCell; /* Set the pointer-map entry for the new sibling page. */ - if( ISAUTOVACUUM ){ + if( ISAUTOVACUUM(pBt) ){ ptrmapPut(pBt, pNew->pgno, PTRMAP_BTREE, pParent->pgno, &rc); if( rc!=SQLITE_OK ){ goto balance_cleanup; @@ -75229,8 +77235,8 @@ static int balance_nonroot( } } - TRACE(("BALANCE: new: %d(%d nc=%d) %d(%d nc=%d) %d(%d nc=%d) " - "%d(%d nc=%d) %d(%d nc=%d)\n", + TRACE(("BALANCE: new: %u(%u nc=%u) %u(%u nc=%u) %u(%u nc=%u) " + "%u(%u nc=%u) %u(%u nc=%u)\n", apNew[0]->pgno, szNew[0], cntNew[0], nNew>=2 ? apNew[1]->pgno : 0, nNew>=2 ? szNew[1] : 0, nNew>=2 ? cntNew[1] - cntNew[0] - !leafData : 0, @@ -75271,7 +77277,7 @@ static int balance_nonroot( ** updated. This happens below, after the sibling pages have been ** populated, not here. */ - if( ISAUTOVACUUM ){ + if( ISAUTOVACUUM(pBt) ){ MemPage *pOld; MemPage *pNew = pOld = apNew[0]; int cntOldNext = pNew->nCell + pNew->nOverflow; @@ -75368,7 +77374,7 @@ static int balance_nonroot( rc = SQLITE_CORRUPT_BKPT; goto balance_cleanup; } - insertCell(pParent, nxDiv+i, pCell, sz, pTemp, pNew->pgno, &rc); + rc = insertCell(pParent, nxDiv+i, pCell, sz, pTemp, pNew->pgno); if( rc!=SQLITE_OK ) goto balance_cleanup; assert( sqlite3PagerIswriteable(pParent->pDbPage) ); } @@ -75464,7 +77470,7 @@ static int balance_nonroot( ); copyNodeContent(apNew[0], pParent, &rc); freePage(apNew[0], &rc); - }else if( ISAUTOVACUUM && !leafCorrection ){ + }else if( ISAUTOVACUUM(pBt) && !leafCorrection ){ /* Fix the pointer map entries associated with the right-child of each ** sibling page. All other pointer map entries have already been taken ** care of. */ @@ -75475,7 +77481,7 @@ static int balance_nonroot( } assert( pParent->isInit ); - TRACE(("BALANCE: finished: old=%d new=%d cells=%d\n", + TRACE(("BALANCE: finished: old=%u new=%u cells=%u\n", nOld, nNew, b.nCell)); /* Free any old pages that were not reused as new pages. @@ -75485,7 +77491,7 @@ static int balance_nonroot( } #if 0 - if( ISAUTOVACUUM && rc==SQLITE_OK && apNew[0]->isInit ){ + if( ISAUTOVACUUM(pBt) && rc==SQLITE_OK && apNew[0]->isInit ){ /* The ptrmapCheckPages() contains assert() statements that verify that ** all pointer map pages are set correctly. This is helpful while ** debugging. This is usually disabled because a corrupt database may @@ -75547,7 +77553,7 @@ static int balance_deeper(MemPage *pRoot, MemPage **ppChild){ if( rc==SQLITE_OK ){ rc = allocateBtreePage(pBt,&pChild,&pgnoChild,pRoot->pgno,0); copyNodeContent(pRoot, pChild, &rc); - if( ISAUTOVACUUM ){ + if( ISAUTOVACUUM(pBt) ){ ptrmapPut(pBt, pgnoChild, PTRMAP_BTREE, pRoot->pgno, &rc); } } @@ -75560,7 +77566,7 @@ static int balance_deeper(MemPage *pRoot, MemPage **ppChild){ assert( sqlite3PagerIswriteable(pRoot->pDbPage) ); assert( pChild->nCell==pRoot->nCell || CORRUPT_DB ); - TRACE(("BALANCE: copy root %d into %d\n", pRoot->pgno, pChild->pgno)); + TRACE(("BALANCE: copy root %u into %u\n", pRoot->pgno, pChild->pgno)); /* Copy the overflow cells from pRoot to pChild */ memcpy(pChild->aiOvfl, pRoot->aiOvfl, @@ -75651,6 +77657,11 @@ static int balance(BtCursor *pCur){ }else{ break; } + }else if( sqlite3PagerPageRefcount(pPage->pDbPage)>1 ){ + /* The page being written is not a root page, and there is currently + ** more than one reference to it. This only happens if the page is one + ** of its own ancestor pages. Corruption. */ + rc = SQLITE_CORRUPT_BKPT; }else{ MemPage * const pParent = pCur->apPage[iPage-1]; int const iIdx = pCur->aiIdx[iPage-1]; @@ -75781,9 +77792,13 @@ static int btreeOverwriteContent( /* ** Overwrite the cell that cursor pCur is pointing to with fresh content -** contained in pX. +** contained in pX. In this variant, pCur is pointing to an overflow +** cell. */ -static int btreeOverwriteCell(BtCursor *pCur, const BtreePayload *pX){ +static SQLITE_NOINLINE int btreeOverwriteOverflowCell( + BtCursor *pCur, /* Cursor pointing to cell to ovewrite */ + const BtreePayload *pX /* Content to write into the cell */ +){ int iOffset; /* Next byte of pX->pData to write */ int nTotal = pX->nData + pX->nZero; /* Total bytes of to write */ int rc; /* Return code */ @@ -75792,16 +77807,12 @@ static int btreeOverwriteCell(BtCursor *pCur, const BtreePayload *pX){ Pgno ovflPgno; /* Next overflow page to write */ u32 ovflPageSize; /* Size to write on overflow page */ - if( pCur->info.pPayload + pCur->info.nLocal > pPage->aDataEnd - || pCur->info.pPayload < pPage->aData + pPage->cellOffset - ){ - return SQLITE_CORRUPT_BKPT; - } + assert( pCur->info.nLocalinfo.pPayload, pX, 0, pCur->info.nLocal); if( rc ) return rc; - if( pCur->info.nLocal==nTotal ) return SQLITE_OK; /* Now overwrite the overflow pages */ iOffset = pCur->info.nLocal; @@ -75831,6 +77842,29 @@ static int btreeOverwriteCell(BtCursor *pCur, const BtreePayload *pX){ return SQLITE_OK; } +/* +** Overwrite the cell that cursor pCur is pointing to with fresh content +** contained in pX. +*/ +static int btreeOverwriteCell(BtCursor *pCur, const BtreePayload *pX){ + int nTotal = pX->nData + pX->nZero; /* Total bytes of to write */ + MemPage *pPage = pCur->pPage; /* Page being written */ + + if( pCur->info.pPayload + pCur->info.nLocal > pPage->aDataEnd + || pCur->info.pPayload < pPage->aData + pPage->cellOffset + ){ + return SQLITE_CORRUPT_BKPT; + } + if( pCur->info.nLocal==nTotal ){ + /* The entire cell is local */ + return btreeOverwriteContent(pPage, pCur->info.pPayload, pX, + 0, pCur->info.nLocal); + }else{ + /* The cell contains overflow content */ + return btreeOverwriteOverflowCell(pCur, pX); + } +} + /* ** Insert a new record into the BTree. The content of the new record @@ -75874,7 +77908,6 @@ SQLITE_PRIVATE int sqlite3BtreeInsert( int idx; MemPage *pPage; Btree *p = pCur->pBtree; - BtShared *pBt = p->pBt; unsigned char *oldCell; unsigned char *newCell = 0; @@ -75893,7 +77926,7 @@ SQLITE_PRIVATE int sqlite3BtreeInsert( ** not to clear the cursor here. */ if( pCur->curFlags & BTCF_Multiple ){ - rc = saveAllCursors(pBt, pCur->pgnoRoot, pCur); + rc = saveAllCursors(p->pBt, pCur->pgnoRoot, pCur); if( rc ) return rc; if( loc && pCur->iPage<0 ){ /* This can only happen if the schema is corrupt such that there is more @@ -75917,8 +77950,8 @@ SQLITE_PRIVATE int sqlite3BtreeInsert( assert( cursorOwnsBtShared(pCur) ); assert( (pCur->curFlags & BTCF_WriteFlag)!=0 - && pBt->inTransaction==TRANS_WRITE - && (pBt->btsFlags & BTS_READ_ONLY)==0 ); + && p->pBt->inTransaction==TRANS_WRITE + && (p->pBt->btsFlags & BTS_READ_ONLY)==0 ); assert( hasSharedCacheTableLock(p, pCur->pgnoRoot, pCur->pKeyInfo!=0, 2) ); /* Assert that the caller has been consistent. If this cursor was opened @@ -76016,7 +78049,7 @@ SQLITE_PRIVATE int sqlite3BtreeInsert( } } assert( pCur->eState==CURSOR_VALID - || (pCur->eState==CURSOR_INVALID && loc) ); + || (pCur->eState==CURSOR_INVALID && loc) || CORRUPT_DB ); pPage = pCur->pPage; assert( pPage->intKey || pX->nKey>=0 || (flags & BTREE_PREFORMAT) ); @@ -76031,31 +78064,34 @@ SQLITE_PRIVATE int sqlite3BtreeInsert( if( rc ) return rc; } - TRACE(("INSERT: table=%d nkey=%lld ndata=%d page=%d %s\n", + TRACE(("INSERT: table=%u nkey=%lld ndata=%u page=%u %s\n", pCur->pgnoRoot, pX->nKey, pX->nData, pPage->pgno, loc==0 ? "overwrite" : "new entry")); assert( pPage->isInit || CORRUPT_DB ); - newCell = pBt->pTmpSpace; + newCell = p->pBt->pTmpSpace; assert( newCell!=0 ); + assert( BTREE_PREFORMAT==OPFLAG_PREFORMAT ); if( flags & BTREE_PREFORMAT ){ rc = SQLITE_OK; - szNew = pBt->nPreformatSize; + szNew = p->pBt->nPreformatSize; if( szNew<4 ) szNew = 4; - if( ISAUTOVACUUM && szNew>pPage->maxLocal ){ + if( ISAUTOVACUUM(p->pBt) && szNew>pPage->maxLocal ){ CellInfo info; pPage->xParseCell(pPage, newCell, &info); if( info.nPayload!=info.nLocal ){ Pgno ovfl = get4byte(&newCell[szNew-4]); - ptrmapPut(pBt, ovfl, PTRMAP_OVERFLOW1, pPage->pgno, &rc); + ptrmapPut(p->pBt, ovfl, PTRMAP_OVERFLOW1, pPage->pgno, &rc); + if( NEVER(rc) ) goto end_insert; } } }else{ rc = fillInCell(pPage, newCell, pX, &szNew); + if( rc ) goto end_insert; } - if( rc ) goto end_insert; assert( szNew==pPage->xCellSize(pPage, newCell) ); - assert( szNew <= MX_CELL_SIZE(pBt) ); + assert( szNew <= MX_CELL_SIZE(p->pBt) ); idx = pCur->ix; + pCur->info.nSize = 0; if( loc==0 ){ CellInfo info; assert( idx>=0 ); @@ -76074,7 +78110,7 @@ SQLITE_PRIVATE int sqlite3BtreeInsert( testcase( pCur->curFlags & BTCF_ValidOvfl ); invalidateOverflowCache(pCur); if( info.nSize==szNew && info.nLocal==info.nPayload - && (!ISAUTOVACUUM || szNewminLocal) + && (!ISAUTOVACUUM(p->pBt) || szNewminLocal) ){ /* Overwrite the old cell with the new if they are the same size. ** We could also try to do this if the old cell is smaller, then add @@ -76104,7 +78140,7 @@ SQLITE_PRIVATE int sqlite3BtreeInsert( }else{ assert( pPage->leaf ); } - insertCell(pPage, idx, newCell, szNew, 0, 0, &rc); + rc = insertCellFast(pPage, idx, newCell, szNew); assert( pPage->nOverflow==0 || rc==SQLITE_OK ); assert( rc!=SQLITE_OK || pPage->nCell>0 || pPage->nOverflow>0 ); @@ -76128,7 +78164,6 @@ SQLITE_PRIVATE int sqlite3BtreeInsert( ** larger than the largest existing key, it is possible to insert the ** row without seeking the cursor. This can be a big performance boost. */ - pCur->info.nSize = 0; if( pPage->nOverflow ){ assert( rc==SQLITE_OK ); pCur->curFlags &= ~(BTCF_ValidNKey); @@ -76177,7 +78212,6 @@ end_insert: ** SQLITE_OK is returned if successful, or an SQLite error code otherwise. */ SQLITE_PRIVATE int sqlite3BtreeTransferRow(BtCursor *pDest, BtCursor *pSrc, i64 iKey){ - int rc = SQLITE_OK; BtShared *pBt = pDest->pBt; u8 *aOut = pBt->pTmpSpace; /* Pointer to next output buffer */ const u8 *aIn; /* Pointer to next input buffer */ @@ -76200,7 +78234,9 @@ SQLITE_PRIVATE int sqlite3BtreeTransferRow(BtCursor *pDest, BtCursor *pSrc, i64 if( nIn==nRem && nInpPage->maxLocal ){ memcpy(aOut, aIn, nIn); pBt->nPreformatSize = nIn + (aOut - pBt->pTmpSpace); + return SQLITE_OK; }else{ + int rc = SQLITE_OK; Pager *pSrcPager = pSrc->pBt->pPager; u8 *pPgnoOut = 0; Pgno ovflIn = 0; @@ -76252,7 +78288,7 @@ SQLITE_PRIVATE int sqlite3BtreeTransferRow(BtCursor *pDest, BtCursor *pSrc, i64 MemPage *pNew = 0; rc = allocateBtreePage(pBt, &pNew, &pgnoNew, 0, 0); put4byte(pPgnoOut, pgnoNew); - if( ISAUTOVACUUM && pPageOut ){ + if( ISAUTOVACUUM(pBt) && pPageOut ){ ptrmapPut(pBt, pgnoNew, PTRMAP_OVERFLOW2, pPageOut->pgno, &rc); } releasePage(pPageOut); @@ -76268,9 +78304,8 @@ SQLITE_PRIVATE int sqlite3BtreeTransferRow(BtCursor *pDest, BtCursor *pSrc, i64 releasePage(pPageOut); sqlite3PagerUnref(pPageIn); + return rc; } - - return rc; } /* @@ -76329,6 +78364,9 @@ SQLITE_PRIVATE int sqlite3BtreeDelete(BtCursor *pCur, u8 flags){ if( pPage->nFree<0 && btreeComputeFreeSpace(pPage) ){ return SQLITE_CORRUPT_BKPT; } + if( pCell<&pPage->aCellIdx[pPage->nCell] ){ + return SQLITE_CORRUPT_BKPT; + } /* If the BTREE_SAVEPOSITION bit is on, then the cursor position must ** be preserved following this delete operation. If the current delete @@ -76425,7 +78463,7 @@ SQLITE_PRIVATE int sqlite3BtreeDelete(BtCursor *pCur, u8 flags){ assert( pTmp!=0 ); rc = sqlite3PagerWrite(pLeaf->pDbPage); if( rc==SQLITE_OK ){ - insertCell(pPage, iCellIdx, pCell-4, nCell+4, pTmp, n, &rc); + rc = insertCell(pPage, iCellIdx, pCell-4, nCell+4, pTmp, n); } dropCell(pLeaf, pLeaf->nCell-1, nCell, &rc); if( rc ) return rc; @@ -77024,6 +79062,41 @@ SQLITE_PRIVATE Pager *sqlite3BtreePager(Btree *p){ } #ifndef SQLITE_OMIT_INTEGRITY_CHECK +/* +** Record an OOM error during integrity_check +*/ +static void checkOom(IntegrityCk *pCheck){ + pCheck->rc = SQLITE_NOMEM; + pCheck->mxErr = 0; /* Causes integrity_check processing to stop */ + if( pCheck->nErr==0 ) pCheck->nErr++; +} + +/* +** Invoke the progress handler, if appropriate. Also check for an +** interrupt. +*/ +static void checkProgress(IntegrityCk *pCheck){ + sqlite3 *db = pCheck->db; + if( AtomicLoad(&db->u1.isInterrupted) ){ + pCheck->rc = SQLITE_INTERRUPT; + pCheck->nErr++; + pCheck->mxErr = 0; + } +#ifndef SQLITE_OMIT_PROGRESS_CALLBACK + if( db->xProgress ){ + assert( db->nProgressOps>0 ); + pCheck->nStep++; + if( (pCheck->nStep % db->nProgressOps)==0 + && db->xProgress(db->pProgressArg) + ){ + pCheck->rc = SQLITE_INTERRUPT; + pCheck->nErr++; + pCheck->mxErr = 0; + } + } +#endif +} + /* ** Append a message to the error message string. */ @@ -77033,6 +79106,7 @@ static void checkAppendMsg( ... ){ va_list ap; + checkProgress(pCheck); if( !pCheck->mxErr ) return; pCheck->mxErr--; pCheck->nErr++; @@ -77041,12 +79115,13 @@ static void checkAppendMsg( sqlite3_str_append(&pCheck->errMsg, "\n", 1); } if( pCheck->zPfx ){ - sqlite3_str_appendf(&pCheck->errMsg, pCheck->zPfx, pCheck->v1, pCheck->v2); + sqlite3_str_appendf(&pCheck->errMsg, pCheck->zPfx, + pCheck->v0, pCheck->v1, pCheck->v2); } sqlite3_str_vappendf(&pCheck->errMsg, zFormat, ap); va_end(ap); if( pCheck->errMsg.accError==SQLITE_NOMEM ){ - pCheck->bOomFault = 1; + checkOom(pCheck); } } #endif /* SQLITE_OMIT_INTEGRITY_CHECK */ @@ -77081,14 +79156,13 @@ static void setPageReferenced(IntegrityCk *pCheck, Pgno iPg){ */ static int checkRef(IntegrityCk *pCheck, Pgno iPage){ if( iPage>pCheck->nPage || iPage==0 ){ - checkAppendMsg(pCheck, "invalid page number %d", iPage); + checkAppendMsg(pCheck, "invalid page number %u", iPage); return 1; } if( getPageReferenced(pCheck, iPage) ){ - checkAppendMsg(pCheck, "2nd reference to page %d", iPage); + checkAppendMsg(pCheck, "2nd reference to page %u", iPage); return 1; } - if( AtomicLoad(&pCheck->db->u1.isInterrupted) ) return 1; setPageReferenced(pCheck, iPage); return 0; } @@ -77111,14 +79185,14 @@ static void checkPtrmap( rc = ptrmapGet(pCheck->pBt, iChild, &ePtrmapType, &iPtrmapParent); if( rc!=SQLITE_OK ){ - if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ) pCheck->bOomFault = 1; - checkAppendMsg(pCheck, "Failed to read ptrmap key=%d", iChild); + if( rc==SQLITE_NOMEM || rc==SQLITE_IOERR_NOMEM ) checkOom(pCheck); + checkAppendMsg(pCheck, "Failed to read ptrmap key=%u", iChild); return; } if( ePtrmapType!=eType || iPtrmapParent!=iParent ){ checkAppendMsg(pCheck, - "Bad ptr map entry key=%d expected=(%d,%d) got=(%d,%d)", + "Bad ptr map entry key=%u expected=(%u,%u) got=(%u,%u)", iChild, eType, iParent, ePtrmapType, iPtrmapParent); } } @@ -77143,7 +79217,7 @@ static void checkList( if( checkRef(pCheck, iPage) ) break; N--; if( sqlite3PagerGet(pCheck->pPager, (Pgno)iPage, &pOvflPage, 0) ){ - checkAppendMsg(pCheck, "failed to get page %d", iPage); + checkAppendMsg(pCheck, "failed to get page %u", iPage); break; } pOvflData = (unsigned char *)sqlite3PagerGetData(pOvflPage); @@ -77156,7 +79230,7 @@ static void checkList( #endif if( n>pCheck->pBt->usableSize/4-2 ){ checkAppendMsg(pCheck, - "freelist leaf count too big on page %d", iPage); + "freelist leaf count too big on page %u", iPage); N--; }else{ for(i=0; i<(int)n; i++){ @@ -77188,7 +79262,7 @@ static void checkList( } if( N && nErrAtStart==pCheck->nErr ){ checkAppendMsg(pCheck, - "%s is %d but should be %d", + "%s is %u but should be %u", isFreeList ? "size" : "overflow list length", expected-N, expected); } @@ -77218,7 +79292,9 @@ static void checkList( ** lower 16 bits are the index of the last byte of that range. */ static void btreeHeapInsert(u32 *aHeap, u32 x){ - u32 j, i = ++aHeap[0]; + u32 j, i; + assert( aHeap!=0 ); + i = ++aHeap[0]; aHeap[i] = x; while( (j = i/2)>0 && aHeap[j]>aHeap[i] ){ x = aHeap[j]; @@ -77295,12 +79371,14 @@ static int checkTreePage( /* Check that the page exists */ + checkProgress(pCheck); + if( pCheck->mxErr==0 ) goto end_of_check; pBt = pCheck->pBt; usableSize = pBt->usableSize; if( iPage==0 ) return 0; if( checkRef(pCheck, iPage) ) return 0; - pCheck->zPfx = "Page %u: "; - pCheck->v1 = iPage; + pCheck->zPfx = "Tree %u page %u: "; + pCheck->v0 = pCheck->v1 = iPage; if( (rc = btreeGetPage(pBt, iPage, &pPage, 0))!=0 ){ checkAppendMsg(pCheck, "unable to get the page. error code=%d", rc); @@ -77326,7 +79404,7 @@ static int checkTreePage( hdr = pPage->hdrOffset; /* Set up for cell analysis */ - pCheck->zPfx = "On tree page %u cell %d: "; + pCheck->zPfx = "Tree %u page %u cell %u: "; contentOffset = get2byteNotZero(&data[hdr+5]); assert( contentOffset<=usableSize ); /* Enforced by btreeInitPage() */ @@ -77346,7 +79424,7 @@ static int checkTreePage( pgno = get4byte(&data[hdr+8]); #ifndef SQLITE_OMIT_AUTOVACUUM if( pBt->autoVacuum ){ - pCheck->zPfx = "On page %u at right child: "; + pCheck->zPfx = "Tree %u page %u right child: "; checkPtrmap(pCheck, pgno, PTRMAP_BTREE, iPage); } #endif @@ -77370,7 +79448,7 @@ static int checkTreePage( pc = get2byteAligned(pCellIdx); pCellIdx -= 2; if( pcusableSize-4 ){ - checkAppendMsg(pCheck, "Offset %d out of range %d..%d", + checkAppendMsg(pCheck, "Offset %u out of range %u..%u", pc, contentOffset, usableSize-4); doCoverageCheck = 0; continue; @@ -77502,7 +79580,7 @@ static int checkTreePage( */ if( heap[0]==0 && nFrag!=data[hdr+7] ){ checkAppendMsg(pCheck, - "Fragmentation of %d bytes reported as %d on page %u", + "Fragmentation of %u bytes reported as %u on page %u", nFrag, data[hdr+7], iPage); } } @@ -77540,13 +79618,14 @@ end_of_check: ** the unverified btrees. Except, if aRoot[1] is 1, then the freelist ** checks are still performed. */ -SQLITE_PRIVATE char *sqlite3BtreeIntegrityCheck( +SQLITE_PRIVATE int sqlite3BtreeIntegrityCheck( sqlite3 *db, /* Database connection that is running the check */ Btree *p, /* The btree to be checked */ Pgno *aRoot, /* An array of root pages numbers for individual trees */ int nRoot, /* Number of entries in aRoot[] */ int mxErr, /* Stop reporting errors after this many */ - int *pnErr /* Write number of errors seen to this variable */ + int *pnErr, /* OUT: Write number of errors seen to this variable */ + char **pzOut /* OUT: Write the error message string here */ ){ Pgno i; IntegrityCk sCheck; @@ -77569,18 +79648,12 @@ SQLITE_PRIVATE char *sqlite3BtreeIntegrityCheck( assert( p->inTrans>TRANS_NONE && pBt->inTransaction>TRANS_NONE ); VVA_ONLY( nRef = sqlite3PagerRefcount(pBt->pPager) ); assert( nRef>=0 ); + memset(&sCheck, 0, sizeof(sCheck)); sCheck.db = db; sCheck.pBt = pBt; sCheck.pPager = pBt->pPager; sCheck.nPage = btreePagecount(sCheck.pBt); sCheck.mxErr = mxErr; - sCheck.nErr = 0; - sCheck.bOomFault = 0; - sCheck.zPfx = 0; - sCheck.v1 = 0; - sCheck.v2 = 0; - sCheck.aPgRef = 0; - sCheck.heap = 0; sqlite3StrAccumInit(&sCheck.errMsg, 0, zErr, sizeof(zErr), SQLITE_MAX_LENGTH); sCheck.errMsg.printfFlags = SQLITE_PRINTF_INTERNAL; if( sCheck.nPage==0 ){ @@ -77589,12 +79662,12 @@ SQLITE_PRIVATE char *sqlite3BtreeIntegrityCheck( sCheck.aPgRef = sqlite3MallocZero((sCheck.nPage / 8)+ 1); if( !sCheck.aPgRef ){ - sCheck.bOomFault = 1; + checkOom(&sCheck); goto integrity_ck_cleanup; } sCheck.heap = (u32*)sqlite3PageMalloc( pBt->pageSize ); if( sCheck.heap==0 ){ - sCheck.bOomFault = 1; + checkOom(&sCheck); goto integrity_ck_cleanup; } @@ -77604,7 +79677,7 @@ SQLITE_PRIVATE char *sqlite3BtreeIntegrityCheck( /* Check the integrity of the freelist */ if( bCkFreelist ){ - sCheck.zPfx = "Main freelist: "; + sCheck.zPfx = "Freelist: "; checkList(&sCheck, 1, get4byte(&pBt->pPage1->aData[32]), get4byte(&pBt->pPage1->aData[36])); sCheck.zPfx = 0; @@ -77621,7 +79694,7 @@ SQLITE_PRIVATE char *sqlite3BtreeIntegrityCheck( mxInHdr = get4byte(&pBt->pPage1->aData[52]); if( mx!=mxInHdr ){ checkAppendMsg(&sCheck, - "max rootpage (%d) disagrees with header (%d)", + "max rootpage (%u) disagrees with header (%u)", mx, mxInHdr ); } @@ -77652,7 +79725,7 @@ SQLITE_PRIVATE char *sqlite3BtreeIntegrityCheck( for(i=1; i<=sCheck.nPage && sCheck.mxErr; i++){ #ifdef SQLITE_OMIT_AUTOVACUUM if( getPageReferenced(&sCheck, i)==0 ){ - checkAppendMsg(&sCheck, "Page %d is never used", i); + checkAppendMsg(&sCheck, "Page %u: never used", i); } #else /* If the database supports auto-vacuum, make sure no tables contain @@ -77660,11 +79733,11 @@ SQLITE_PRIVATE char *sqlite3BtreeIntegrityCheck( */ if( getPageReferenced(&sCheck, i)==0 && (PTRMAP_PAGENO(pBt, i)!=i || !pBt->autoVacuum) ){ - checkAppendMsg(&sCheck, "Page %d is never used", i); + checkAppendMsg(&sCheck, "Page %u: never used", i); } if( getPageReferenced(&sCheck, i)!=0 && (PTRMAP_PAGENO(pBt, i)==i && pBt->autoVacuum) ){ - checkAppendMsg(&sCheck, "Pointer map page %d is referenced", i); + checkAppendMsg(&sCheck, "Page %u: pointer map referenced", i); } #endif } @@ -77675,16 +79748,17 @@ SQLITE_PRIVATE char *sqlite3BtreeIntegrityCheck( integrity_ck_cleanup: sqlite3PageFree(sCheck.heap); sqlite3_free(sCheck.aPgRef); - if( sCheck.bOomFault ){ - sqlite3_str_reset(&sCheck.errMsg); - sCheck.nErr++; - } *pnErr = sCheck.nErr; - if( sCheck.nErr==0 ) sqlite3_str_reset(&sCheck.errMsg); + if( sCheck.nErr==0 ){ + sqlite3_str_reset(&sCheck.errMsg); + *pzOut = 0; + }else{ + *pzOut = sqlite3StrAccumFinish(&sCheck.errMsg); + } /* Make sure this analysis did not leave any unref() pages. */ assert( nRef==sqlite3PagerRefcount(pBt->pPager) ); sqlite3BtreeLeave(p); - return sqlite3StrAccumFinish(&sCheck.errMsg); + return sCheck.rc; } #endif /* SQLITE_OMIT_INTEGRITY_CHECK */ @@ -77949,6 +80023,17 @@ SQLITE_PRIVATE int sqlite3BtreeIsReadonly(Btree *p){ */ SQLITE_PRIVATE int sqlite3HeaderSizeBtree(void){ return ROUND8(sizeof(MemPage)); } +/* +** If no transaction is active and the database is not a temp-db, clear +** the in-memory pager cache. +*/ +SQLITE_PRIVATE void sqlite3BtreeClearCache(Btree *p){ + BtShared *pBt = p->pBt; + if( pBt->inTransaction==TRANS_NONE ){ + sqlite3PagerClearCache(pBt->pPager); + } +} + #if !defined(SQLITE_OMIT_SHARED_CACHE) /* ** Return true if the Btree passed as the only argument is sharable. @@ -78214,13 +80299,7 @@ static int backupOnePage( assert( !isFatalError(p->rc) ); assert( iSrcPg!=PENDING_BYTE_PAGE(p->pSrc->pBt) ); assert( zSrcData ); - - /* Catch the case where the destination is an in-memory database and the - ** page sizes of the source and destination differ. - */ - if( nSrcPgsz!=nDestPgsz && sqlite3PagerIsMemdb(pDestPager) ){ - rc = SQLITE_READONLY; - } + assert( nSrcPgsz==nDestPgsz || sqlite3PagerIsMemdb(pDestPager)==0 ); /* This loop runs once for each destination page spanned by the source ** page. For each iteration, variable iOff is set to the byte offset @@ -78353,7 +80432,10 @@ SQLITE_API int sqlite3_backup_step(sqlite3_backup *p, int nPage){ pgszSrc = sqlite3BtreeGetPageSize(p->pSrc); pgszDest = sqlite3BtreeGetPageSize(p->pDest); destMode = sqlite3PagerGetJournalMode(sqlite3BtreePager(p->pDest)); - if( SQLITE_OK==rc && destMode==PAGER_JOURNALMODE_WAL && pgszSrc!=pgszDest ){ + if( SQLITE_OK==rc + && (destMode==PAGER_JOURNALMODE_WAL || sqlite3PagerIsMemdb(pDestPager)) + && pgszSrc!=pgszDest + ){ rc = SQLITE_READONLY; } @@ -78859,9 +80941,9 @@ static void vdbeMemRenderNum(int sz, char *zBuf, Mem *p){ i64 x; assert( (p->flags&MEM_Int)*2==sizeof(x) ); memcpy(&x, (char*)&p->u, (p->flags&MEM_Int)*2); - sqlite3Int64ToText(x, zBuf); + p->n = sqlite3Int64ToText(x, zBuf); #else - sqlite3Int64ToText(p->u.i, zBuf); + p->n = sqlite3Int64ToText(p->u.i, zBuf); #endif }else{ sqlite3StrAccumInit(&acc, 0, zBuf, sz, 0); @@ -78869,6 +80951,7 @@ static void vdbeMemRenderNum(int sz, char *zBuf, Mem *p){ (p->flags & MEM_IntReal)!=0 ? (double)p->u.i : p->u.r); assert( acc.zText==zBuf && acc.mxAlloc<=0 ); zBuf[acc.nChar] = 0; /* Fast version of sqlite3StrAccumFinish(&acc) */ + p->n = acc.nChar; } } @@ -78896,10 +80979,12 @@ static void vdbeMemRenderNum(int sz, char *zBuf, Mem *p){ ** This routine is for use inside of assert() statements only. */ SQLITE_PRIVATE int sqlite3VdbeMemValidStrRep(Mem *p){ + Mem tmp; char zBuf[100]; char *z; int i, j, incr; if( (p->flags & MEM_Str)==0 ) return 1; + if( p->db && p->db->mallocFailed ) return 1; if( p->flags & MEM_Term ){ /* Insure that the string is properly zero-terminated. Pay particular ** attention to the case where p->n is odd */ @@ -78912,7 +80997,8 @@ SQLITE_PRIVATE int sqlite3VdbeMemValidStrRep(Mem *p){ assert( p->enc==SQLITE_UTF8 || p->z[((p->n+1)&~1)+1]==0 ); } if( (p->flags & (MEM_Int|MEM_Real|MEM_IntReal))==0 ) return 1; - vdbeMemRenderNum(sizeof(zBuf), zBuf, p); + memcpy(&tmp, p, sizeof(tmp)); + vdbeMemRenderNum(sizeof(zBuf), zBuf, &tmp); z = p->z; i = j = 0; incr = 1; @@ -79181,7 +81267,7 @@ SQLITE_PRIVATE int sqlite3VdbeMemStringify(Mem *pMem, u8 enc, u8 bForce){ vdbeMemRenderNum(nByte, pMem->z, pMem); assert( pMem->z!=0 ); - pMem->n = sqlite3Strlen30NN(pMem->z); + assert( pMem->n==(int)sqlite3Strlen30NN(pMem->z) ); pMem->enc = SQLITE_UTF8; pMem->flags |= MEM_Str|MEM_Term; if( bForce ) pMem->flags &= ~(MEM_Int|MEM_Real|MEM_IntReal); @@ -79421,32 +81507,35 @@ SQLITE_PRIVATE int sqlite3VdbeBooleanValue(Mem *pMem, int ifNull){ } /* -** The MEM structure is already a MEM_Real. Try to also make it a -** MEM_Int if we can. +** The MEM structure is already a MEM_Real or MEM_IntReal. Try to +** make it a MEM_Int if we can. */ SQLITE_PRIVATE void sqlite3VdbeIntegerAffinity(Mem *pMem){ - i64 ix; assert( pMem!=0 ); - assert( pMem->flags & MEM_Real ); + assert( pMem->flags & (MEM_Real|MEM_IntReal) ); assert( !sqlite3VdbeMemIsRowSet(pMem) ); assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) ); assert( EIGHT_BYTE_ALIGNMENT(pMem) ); - ix = doubleToInt64(pMem->u.r); - - /* Only mark the value as an integer if - ** - ** (1) the round-trip conversion real->int->real is a no-op, and - ** (2) The integer is neither the largest nor the smallest - ** possible integer (ticket #3922) - ** - ** The second and third terms in the following conditional enforces - ** the second condition under the assumption that addition overflow causes - ** values to wrap around. - */ - if( pMem->u.r==ix && ix>SMALLEST_INT64 && ixu.i = ix; + if( pMem->flags & MEM_IntReal ){ MemSetTypeFlag(pMem, MEM_Int); + }else{ + i64 ix = doubleToInt64(pMem->u.r); + + /* Only mark the value as an integer if + ** + ** (1) the round-trip conversion real->int->real is a no-op, and + ** (2) The integer is neither the largest nor the smallest + ** possible integer (ticket #3922) + ** + ** The second and third terms in the following conditional enforces + ** the second condition under the assumption that addition overflow causes + ** values to wrap around. + */ + if( pMem->u.r==ix && ix>SMALLEST_INT64 && ixu.i = ix; + MemSetTypeFlag(pMem, MEM_Int); + } } } @@ -79494,6 +81583,16 @@ SQLITE_PRIVATE int sqlite3RealSameAsInt(double r1, sqlite3_int64 i){ && i >= -2251799813685248LL && i < 2251799813685248LL); } +/* Convert a floating point value to its closest integer. Do so in +** a way that avoids 'outside the range of representable values' warnings +** from UBSAN. +*/ +SQLITE_PRIVATE i64 sqlite3RealToI64(double r){ + if( r<=(double)SMALLEST_INT64 ) return SMALLEST_INT64; + if( r>=(double)LARGEST_INT64) return LARGEST_INT64; + return (i64)r; +} + /* ** Convert pMem so that it has type MEM_Real or MEM_Int. ** Invalidate any prior representations. @@ -79515,7 +81614,7 @@ SQLITE_PRIVATE int sqlite3VdbeMemNumerify(Mem *pMem){ assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) ); rc = sqlite3AtoF(pMem->z, &pMem->u.r, pMem->n, pMem->enc); if( ((rc==0 || rc==1) && sqlite3Atoi64(pMem->z, &ix, pMem->n, pMem->enc)<=1) - || sqlite3RealSameAsInt(pMem->u.r, (ix = (i64)pMem->u.r)) + || sqlite3RealSameAsInt(pMem->u.r, (ix = sqlite3RealToI64(pMem->u.r))) ){ pMem->u.i = ix; MemSetTypeFlag(pMem, MEM_Int); @@ -79567,6 +81666,7 @@ SQLITE_PRIVATE int sqlite3VdbeMemCast(Mem *pMem, u8 aff, u8 encoding){ sqlite3ValueApplyAffinity(pMem, SQLITE_AFF_TEXT, encoding); assert( pMem->flags & MEM_Str || pMem->db->mallocFailed ); pMem->flags &= ~(MEM_Int|MEM_Real|MEM_IntReal|MEM_Blob|MEM_Zero); + if( encoding!=SQLITE_UTF8 ) pMem->n &= ~1; return sqlite3VdbeChangeEncoding(pMem, encoding); } } @@ -80211,6 +82311,9 @@ static int valueFromFunction( if( pList ) nVal = pList->nExpr; assert( !ExprHasProperty(p, EP_IntValue) ); pFunc = sqlite3FindFunction(db, p->u.zToken, nVal, enc, 0); +#ifdef SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION + if( pFunc==0 ) return SQLITE_OK; +#endif assert( pFunc ); if( (pFunc->funcFlags & (SQLITE_FUNC_CONSTANT|SQLITE_FUNC_SLOCHNG))==0 || (pFunc->funcFlags & SQLITE_FUNC_NEEDCOLL) @@ -80236,8 +82339,6 @@ static int valueFromFunction( goto value_from_function_out; } - testcase( pCtx->pParse->rc==SQLITE_ERROR ); - testcase( pCtx->pParse->rc==SQLITE_OK ); memset(&ctx, 0, sizeof(ctx)); ctx.pOut = pVal; ctx.pFunc = pFunc; @@ -80250,16 +82351,16 @@ static int valueFromFunction( sqlite3ValueApplyAffinity(pVal, aff, SQLITE_UTF8); assert( rc==SQLITE_OK ); rc = sqlite3VdbeChangeEncoding(pVal, enc); - if( rc==SQLITE_OK && sqlite3VdbeMemTooBig(pVal) ){ + if( NEVER(rc==SQLITE_OK && sqlite3VdbeMemTooBig(pVal)) ){ rc = SQLITE_TOOBIG; pCtx->pParse->nErr++; } } - pCtx->pParse->rc = rc; value_from_function_out: if( rc!=SQLITE_OK ){ pVal = 0; + pCtx->pParse->rc = rc; } if( apVal ){ for(i=0; ipLeft, enc, aff, ppVal, pCtx); testcase( rc!=SQLITE_OK ); if( *ppVal ){ +#ifdef SQLITE_ENABLE_STAT4 + rc = ExpandBlob(*ppVal); +#else + /* zero-blobs only come from functions, not literal values. And + ** functions are only processed under STAT4 */ + assert( (ppVal[0][0].flags & MEM_Zero)==0 ); +#endif sqlite3VdbeMemCast(*ppVal, aff, enc); sqlite3ValueApplyAffinity(*ppVal, affinity, enc); } @@ -80702,6 +82810,9 @@ SQLITE_PRIVATE int sqlite3ValueBytes(sqlite3_value *pVal, u8 enc){ if( (p->flags & MEM_Str)!=0 && pVal->enc==enc ){ return p->n; } + if( (p->flags & MEM_Str)!=0 && enc!=SQLITE_UTF8 && pVal->enc!=SQLITE_UTF8 ){ + return p->n; + } if( (p->flags & MEM_Blob)!=0 ){ if( p->flags & MEM_Zero ){ return p->n + p->u.nZero; @@ -80747,10 +82858,10 @@ SQLITE_PRIVATE Vdbe *sqlite3VdbeCreate(Parse *pParse){ memset(&p->aOp, 0, sizeof(Vdbe)-offsetof(Vdbe,aOp)); p->db = db; if( db->pVdbe ){ - db->pVdbe->pPrev = p; + db->pVdbe->ppVPrev = &p->pVNext; } - p->pNext = db->pVdbe; - p->pPrev = 0; + p->pVNext = db->pVdbe; + p->ppVPrev = &db->pVdbe; db->pVdbe = p; assert( p->eVdbeState==VDBE_INIT_STATE ); p->pParse = pParse; @@ -80832,21 +82943,28 @@ SQLITE_PRIVATE int sqlite3VdbeUsesDoubleQuotedString( #endif /* -** Swap all content between two VDBE structures. +** Swap byte-code between two VDBE structures. +** +** This happens after pB was previously run and returned +** SQLITE_SCHEMA. The statement was then reprepared in pA. +** This routine transfers the new bytecode in pA over to pB +** so that pB can be run again. The old pB byte code is +** moved back to pA so that it will be cleaned up when pA is +** finalized. */ SQLITE_PRIVATE void sqlite3VdbeSwap(Vdbe *pA, Vdbe *pB){ - Vdbe tmp, *pTmp; + Vdbe tmp, *pTmp, **ppTmp; char *zTmp; assert( pA->db==pB->db ); tmp = *pA; *pA = *pB; *pB = tmp; - pTmp = pA->pNext; - pA->pNext = pB->pNext; - pB->pNext = pTmp; - pTmp = pA->pPrev; - pA->pPrev = pB->pPrev; - pB->pPrev = pTmp; + pTmp = pA->pVNext; + pA->pVNext = pB->pVNext; + pB->pVNext = pTmp; + ppTmp = pA->ppVPrev; + pA->ppVPrev = pB->ppVPrev; + pB->ppVPrev = ppTmp; zTmp = pA->zSql; pA->zSql = pB->zSql; pB->zSql = zTmp; @@ -80922,6 +83040,8 @@ static int growOpArray(Vdbe *v, int nOp){ */ static void test_addop_breakpoint(int pc, Op *pOp){ static int n = 0; + (void)pc; + (void)pOp; n++; } #endif @@ -80972,16 +83092,16 @@ SQLITE_PRIVATE int sqlite3VdbeAddOp3(Vdbe *p, int op, int p1, int p2, int p3){ #ifdef SQLITE_ENABLE_EXPLAIN_COMMENTS pOp->zComment = 0; #endif +#if defined(SQLITE_ENABLE_STMT_SCANSTATUS) || defined(VDBE_PROFILE) + pOp->nExec = 0; + pOp->nCycle = 0; +#endif #ifdef SQLITE_DEBUG if( p->db->flags & SQLITE_VdbeAddopTrace ){ sqlite3VdbePrintOp(0, i, &p->aOp[i]); test_addop_breakpoint(i, &p->aOp[i]); } #endif -#ifdef VDBE_PROFILE - pOp->cycles = 0; - pOp->cnt = 0; -#endif #ifdef SQLITE_VDBE_COVERAGE pOp->iSrcLine = 0; #endif @@ -81149,11 +83269,12 @@ SQLITE_PRIVATE void sqlite3ExplainBreakpoint(const char *z1, const char *z2){ ** If the bPush flag is true, then make this opcode the parent for ** subsequent Explains until sqlite3VdbeExplainPop() is called. */ -SQLITE_PRIVATE void sqlite3VdbeExplain(Parse *pParse, u8 bPush, const char *zFmt, ...){ -#ifndef SQLITE_DEBUG +SQLITE_PRIVATE int sqlite3VdbeExplain(Parse *pParse, u8 bPush, const char *zFmt, ...){ + int addr = 0; +#if !defined(SQLITE_DEBUG) /* Always include the OP_Explain opcodes if SQLITE_DEBUG is defined. ** But omit them (for performance) during production builds */ - if( pParse->explain==2 ) + if( pParse->explain==2 || IS_STMT_SCANSTATUS(pParse->db) ) #endif { char *zMsg; @@ -81165,13 +83286,15 @@ SQLITE_PRIVATE void sqlite3VdbeExplain(Parse *pParse, u8 bPush, const char *zFmt va_end(ap); v = pParse->pVdbe; iThis = v->nOp; - sqlite3VdbeAddOp4(v, OP_Explain, iThis, pParse->addrExplain, 0, + addr = sqlite3VdbeAddOp4(v, OP_Explain, iThis, pParse->addrExplain, 0, zMsg, P4_DYNAMIC); - sqlite3ExplainBreakpoint(bPush?"PUSH":"", sqlite3VdbeGetOp(v,-1)->p4.z); + sqlite3ExplainBreakpoint(bPush?"PUSH":"", sqlite3VdbeGetLastOp(v)->p4.z); if( bPush){ pParse->addrExplain = iThis; } + sqlite3VdbeScanStatus(v, iThis, 0, 0, 0, 0); } + return addr; } /* @@ -81279,6 +83402,9 @@ static SQLITE_NOINLINE void resizeResolveLabel(Parse *p, Vdbe *v, int j){ int i; for(i=p->nLabelAlloc; iaLabel[i] = -1; #endif + if( nNewSize>=100 && (nNewSize/100)>(p->nLabelAlloc/100) ){ + sqlite3ProgressCheck(p); + } p->nLabelAlloc = nNewSize; p->aLabel[j] = v->nOp; } @@ -81522,11 +83648,13 @@ static void resolveP2Values(Vdbe *p, int *pMaxFuncArgs){ Op *pOp; Parse *pParse = p->pParse; int *aLabel = pParse->aLabel; + + assert( pParse->db->mallocFailed==0 ); /* tag-20230419-1 */ p->readOnly = 1; p->bIsReader = 0; pOp = &p->aOp[p->nOp-1]; - while(1){ - + assert( p->aOp[0].opcode==OP_Init ); + while( 1 /* Loop termates when it reaches the OP_Init opcode */ ){ /* Only JUMP opcodes and the short list of special opcodes in the switch ** below need to be considered. The mkopcodeh.tcl generator script groups ** all these opcodes together near the front of the opcode list. Skip @@ -81555,6 +83683,10 @@ static void resolveP2Values(Vdbe *p, int *pMaxFuncArgs){ p->bIsReader = 1; break; } + case OP_Init: { + assert( pOp->p2>=0 ); + goto resolve_p2_values_loop_exit; + } #ifndef SQLITE_OMIT_VIRTUALTABLE case OP_VUpdate: { if( pOp->p2>nMaxArgs ) nMaxArgs = pOp->p2; @@ -81577,6 +83709,7 @@ static void resolveP2Values(Vdbe *p, int *pMaxFuncArgs){ ** have non-negative values for P2. */ assert( (sqlite3OpcodeProperty[pOp->opcode] & OPFLG_JUMP)!=0 ); assert( ADDR(pOp->p2)<-pParse->nLabel ); + assert( aLabel!=0 ); /* True because of tag-20230419-1 */ pOp->p2 = aLabel[ADDR(pOp->p2)]; } break; @@ -81587,11 +83720,12 @@ static void resolveP2Values(Vdbe *p, int *pMaxFuncArgs){ ** have non-negative values for P2. */ assert( (sqlite3OpcodeProperty[pOp->opcode]&OPFLG_JUMP)==0 || pOp->p2>=0); } - if( pOp==p->aOp ) break; + assert( pOp>p->aOp ); pOp--; } +resolve_p2_values_loop_exit: if( aLabel ){ - sqlite3DbFreeNN(p->db, pParse->aLabel); + sqlite3DbNNFreeNN(p->db, pParse->aLabel); pParse->aLabel = 0; } pParse->nLabel = 0; @@ -81819,20 +83953,83 @@ SQLITE_PRIVATE void sqlite3VdbeScanStatus( LogEst nEst, /* Estimated number of output rows */ const char *zName /* Name of table or index being scanned */ ){ - sqlite3_int64 nByte = (p->nScan+1) * sizeof(ScanStatus); - ScanStatus *aNew; - aNew = (ScanStatus*)sqlite3DbRealloc(p->db, p->aScan, nByte); - if( aNew ){ - ScanStatus *pNew = &aNew[p->nScan++]; - pNew->addrExplain = addrExplain; - pNew->addrLoop = addrLoop; - pNew->addrVisit = addrVisit; - pNew->nEst = nEst; - pNew->zName = sqlite3DbStrDup(p->db, zName); - p->aScan = aNew; + if( IS_STMT_SCANSTATUS(p->db) ){ + sqlite3_int64 nByte = (p->nScan+1) * sizeof(ScanStatus); + ScanStatus *aNew; + aNew = (ScanStatus*)sqlite3DbRealloc(p->db, p->aScan, nByte); + if( aNew ){ + ScanStatus *pNew = &aNew[p->nScan++]; + memset(pNew, 0, sizeof(ScanStatus)); + pNew->addrExplain = addrExplain; + pNew->addrLoop = addrLoop; + pNew->addrVisit = addrVisit; + pNew->nEst = nEst; + pNew->zName = sqlite3DbStrDup(p->db, zName); + p->aScan = aNew; + } } } -#endif + +/* +** Add the range of instructions from addrStart to addrEnd (inclusive) to +** the set of those corresponding to the sqlite3_stmt_scanstatus() counters +** associated with the OP_Explain instruction at addrExplain. The +** sum of the sqlite3Hwtime() values for each of these instructions +** will be returned for SQLITE_SCANSTAT_NCYCLE requests. +*/ +SQLITE_PRIVATE void sqlite3VdbeScanStatusRange( + Vdbe *p, + int addrExplain, + int addrStart, + int addrEnd +){ + if( IS_STMT_SCANSTATUS(p->db) ){ + ScanStatus *pScan = 0; + int ii; + for(ii=p->nScan-1; ii>=0; ii--){ + pScan = &p->aScan[ii]; + if( pScan->addrExplain==addrExplain ) break; + pScan = 0; + } + if( pScan ){ + if( addrEnd<0 ) addrEnd = sqlite3VdbeCurrentAddr(p)-1; + for(ii=0; iiaAddrRange); ii+=2){ + if( pScan->aAddrRange[ii]==0 ){ + pScan->aAddrRange[ii] = addrStart; + pScan->aAddrRange[ii+1] = addrEnd; + break; + } + } + } + } +} + +/* +** Set the addresses for the SQLITE_SCANSTAT_NLOOP and SQLITE_SCANSTAT_NROW +** counters for the query element associated with the OP_Explain at +** addrExplain. +*/ +SQLITE_PRIVATE void sqlite3VdbeScanStatusCounters( + Vdbe *p, + int addrExplain, + int addrLoop, + int addrVisit +){ + if( IS_STMT_SCANSTATUS(p->db) ){ + ScanStatus *pScan = 0; + int ii; + for(ii=p->nScan-1; ii>=0; ii--){ + pScan = &p->aScan[ii]; + if( pScan->addrExplain==addrExplain ) break; + pScan = 0; + } + if( pScan ){ + pScan->addrLoop = addrLoop; + pScan->addrVisit = addrVisit; + } + } +} +#endif /* defined(SQLITE_ENABLE_STMT_SCANSTATUS) */ /* @@ -81840,15 +84037,19 @@ SQLITE_PRIVATE void sqlite3VdbeScanStatus( ** for a specific instruction. */ SQLITE_PRIVATE void sqlite3VdbeChangeOpcode(Vdbe *p, int addr, u8 iNewOpcode){ + assert( addr>=0 ); sqlite3VdbeGetOp(p,addr)->opcode = iNewOpcode; } SQLITE_PRIVATE void sqlite3VdbeChangeP1(Vdbe *p, int addr, int val){ + assert( addr>=0 ); sqlite3VdbeGetOp(p,addr)->p1 = val; } SQLITE_PRIVATE void sqlite3VdbeChangeP2(Vdbe *p, int addr, int val){ + assert( addr>=0 || p->db->mallocFailed ); sqlite3VdbeGetOp(p,addr)->p2 = val; } SQLITE_PRIVATE void sqlite3VdbeChangeP3(Vdbe *p, int addr, int val){ + assert( addr>=0 ); sqlite3VdbeGetOp(p,addr)->p3 = val; } SQLITE_PRIVATE void sqlite3VdbeChangeP5(Vdbe *p, u16 p5){ @@ -81856,6 +84057,18 @@ SQLITE_PRIVATE void sqlite3VdbeChangeP5(Vdbe *p, u16 p5){ if( p->nOp>0 ) p->aOp[p->nOp-1].p5 = p5; } +/* +** If the previous opcode is an OP_Column that delivers results +** into register iDest, then add the OPFLAG_TYPEOFARG flag to that +** opcode. +*/ +SQLITE_PRIVATE void sqlite3VdbeTypeofColumn(Vdbe *p, int iDest){ + VdbeOp *pOp = sqlite3VdbeGetLastOp(p); + if( pOp->p3==iDest && pOp->opcode==OP_Column ){ + pOp->p5 |= OPFLAG_TYPEOFARG; + } +} + /* ** Change the P2 operand of instruction addr so that it points to ** the address of the next instruction to be coded. @@ -81884,7 +84097,7 @@ SQLITE_PRIVATE void sqlite3VdbeJumpHereOrPopInst(Vdbe *p, int addr){ || p->aOp[addr].opcode==OP_FkIfZero ); assert( p->aOp[addr].p4type==0 ); #ifdef SQLITE_VDBE_COVERAGE - sqlite3VdbeGetOp(p,-1)->iSrcLine = 0; /* Erase VdbeCoverage() macros */ + sqlite3VdbeGetLastOp(p)->iSrcLine = 0; /* Erase VdbeCoverage() macros */ #endif p->nOp--; }else{ @@ -81898,8 +84111,9 @@ SQLITE_PRIVATE void sqlite3VdbeJumpHereOrPopInst(Vdbe *p, int addr){ ** the FuncDef is not ephermal, then do nothing. */ static void freeEphemeralFunction(sqlite3 *db, FuncDef *pDef){ + assert( db!=0 ); if( (pDef->funcFlags & SQLITE_FUNC_EPHEM)!=0 ){ - sqlite3DbFreeNN(db, pDef); + sqlite3DbNNFreeNN(db, pDef); } } @@ -81908,11 +84122,12 @@ static void freeEphemeralFunction(sqlite3 *db, FuncDef *pDef){ */ static SQLITE_NOINLINE void freeP4Mem(sqlite3 *db, Mem *p){ if( p->szMalloc ) sqlite3DbFree(db, p->zMalloc); - sqlite3DbFreeNN(db, p); + sqlite3DbNNFreeNN(db, p); } static SQLITE_NOINLINE void freeP4FuncCtx(sqlite3 *db, sqlite3_context *p){ + assert( db!=0 ); freeEphemeralFunction(db, p->pFunc); - sqlite3DbFreeNN(db, p); + sqlite3DbNNFreeNN(db, p); } static void freeP4(sqlite3 *db, int p4type, void *p4){ assert( db ); @@ -81925,7 +84140,7 @@ static void freeP4(sqlite3 *db, int p4type, void *p4){ case P4_INT64: case P4_DYNAMIC: case P4_INTARRAY: { - sqlite3DbFree(db, p4); + if( p4 ) sqlite3DbNNFreeNN(db, p4); break; } case P4_KEYINFO: { @@ -81964,6 +84179,7 @@ static void freeP4(sqlite3 *db, int p4type, void *p4){ */ static void vdbeFreeOpArray(sqlite3 *db, Op *aOp, int nOp){ assert( nOp>=0 ); + assert( db!=0 ); if( aOp ){ Op *pOp = &aOp[nOp-1]; while(1){ /* Exit via break */ @@ -81974,7 +84190,7 @@ static void vdbeFreeOpArray(sqlite3 *db, Op *aOp, int nOp){ if( pOp==aOp ) break; pOp--; } - sqlite3DbFreeNN(db, aOp); + sqlite3DbNNFreeNN(db, aOp); } } @@ -82143,7 +84359,7 @@ SQLITE_PRIVATE void sqlite3VdbeAppendP4(Vdbe *p, void *pP4, int n){ if( p->db->mallocFailed ){ freeP4(p->db, n, pP4); }else{ - assert( pP4!=0 ); + assert( pP4!=0 || n==P4_DYNAMIC ); assert( p->nOp>0 ); pOp = &p->aOp[p->nOp-1]; assert( pOp->p4type==P4_NOTUSED ); @@ -82205,13 +84421,13 @@ SQLITE_PRIVATE void sqlite3VdbeNoopComment(Vdbe *p, const char *zFormat, ...){ ** Set the value if the iSrcLine field for the previously coded instruction. */ SQLITE_PRIVATE void sqlite3VdbeSetLineNumber(Vdbe *v, int iLine){ - sqlite3VdbeGetOp(v,-1)->iSrcLine = iLine; + sqlite3VdbeGetLastOp(v)->iSrcLine = iLine; } #endif /* SQLITE_VDBE_COVERAGE */ /* -** Return the opcode for a given address. If the address is -1, then -** return the most recently inserted opcode. +** Return the opcode for a given address. The address must be non-negative. +** See sqlite3VdbeGetLastOp() to get the most recently added opcode. ** ** If a memory allocation error has occurred prior to the calling of this ** routine, then a pointer to a dummy VdbeOp will be returned. That opcode @@ -82227,9 +84443,6 @@ SQLITE_PRIVATE VdbeOp *sqlite3VdbeGetOp(Vdbe *p, int addr){ ** zeros, which is correct. MSVC generates a warning, nevertheless. */ static VdbeOp dummy; /* Ignore the MSVC warning about no initializer */ assert( p->eVdbeState==VDBE_INIT_STATE ); - if( addr<0 ){ - addr = p->nOp - 1; - } assert( (addr>=0 && addrnOp) || p->db->mallocFailed ); if( p->db->mallocFailed ){ return (VdbeOp*)&dummy; @@ -82238,6 +84451,12 @@ SQLITE_PRIVATE VdbeOp *sqlite3VdbeGetOp(Vdbe *p, int addr){ } } +/* Return the most recently added opcode +*/ +SQLITE_PRIVATE VdbeOp *sqlite3VdbeGetLastOp(Vdbe *p){ + return sqlite3VdbeGetOp(p, p->nOp - 1); +} + #if defined(SQLITE_ENABLE_EXPLAIN_COMMENTS) /* ** Return an integer value for one of the parameters to the opcode pOp @@ -82725,7 +84944,7 @@ static void releaseMemArray(Mem *p, int N){ sqlite3VdbeMemRelease(p); p->flags = MEM_Undefined; }else if( p->szMalloc ){ - sqlite3DbFreeNN(db, p->zMalloc); + sqlite3DbNNFreeNN(db, p->zMalloc); p->szMalloc = 0; p->flags = MEM_Undefined; } @@ -82939,7 +85158,6 @@ SQLITE_PRIVATE int sqlite3VdbeList( ** sqlite3_column_text16(), causing a translation to UTF-16 encoding. */ releaseMemArray(pMem, 8); - p->pResultSet = 0; if( p->rc==SQLITE_NOMEM ){ /* This happens if a malloc() inside a call to sqlite3_column_text() or @@ -82996,7 +85214,7 @@ SQLITE_PRIVATE int sqlite3VdbeList( sqlite3VdbeMemSetStr(pMem+5, zP4, -1, SQLITE_UTF8, sqlite3_free); p->nResColumn = 8; } - p->pResultSet = pMem; + p->pResultRow = pMem; if( db->mallocFailed ){ p->rc = SQLITE_NOMEM; rc = SQLITE_ERROR; @@ -83107,7 +85325,7 @@ static void *allocSpace( ** running it. */ SQLITE_PRIVATE void sqlite3VdbeRewind(Vdbe *p){ -#if defined(SQLITE_DEBUG) || defined(VDBE_PROFILE) +#if defined(SQLITE_DEBUG) int i; #endif assert( p!=0 ); @@ -83136,8 +85354,8 @@ SQLITE_PRIVATE void sqlite3VdbeRewind(Vdbe *p){ p->nFkConstraint = 0; #ifdef VDBE_PROFILE for(i=0; inOp; i++){ - p->aOp[i].cnt = 0; - p->aOp[i].cycles = 0; + p->aOp[i].nExec = 0; + p->aOp[i].nCycle = 0; } #endif } @@ -83246,9 +85464,6 @@ SQLITE_PRIVATE void sqlite3VdbeMakeReady( p->aVar = allocSpace(&x, 0, nVar*sizeof(Mem)); p->apArg = allocSpace(&x, 0, nArg*sizeof(Mem*)); p->apCsr = allocSpace(&x, 0, nCursor*sizeof(VdbeCursor*)); -#ifdef SQLITE_ENABLE_STMT_SCANSTATUS - p->anExec = allocSpace(&x, 0, p->nOp*sizeof(i64)); -#endif if( x.nNeeded ){ x.pSpace = p->pFree = sqlite3DbMallocRawNN(db, x.nNeeded); x.nFree = x.nNeeded; @@ -83257,9 +85472,6 @@ SQLITE_PRIVATE void sqlite3VdbeMakeReady( p->aVar = allocSpace(&x, p->aVar, nVar*sizeof(Mem)); p->apArg = allocSpace(&x, p->apArg, nArg*sizeof(Mem*)); p->apCsr = allocSpace(&x, p->apCsr, nCursor*sizeof(VdbeCursor*)); -#ifdef SQLITE_ENABLE_STMT_SCANSTATUS - p->anExec = allocSpace(&x, p->anExec, p->nOp*sizeof(i64)); -#endif } } @@ -83274,9 +85486,6 @@ SQLITE_PRIVATE void sqlite3VdbeMakeReady( p->nMem = nMem; initMemArray(p->aMem, nMem, db, MEM_Undefined); memset(p->apCsr, 0, nCursor*sizeof(VdbeCursor*)); -#ifdef SQLITE_ENABLE_STMT_SCANSTATUS - memset(p->anExec, 0, p->nOp*sizeof(i64)); -#endif } sqlite3VdbeRewind(p); } @@ -83334,9 +85543,6 @@ static void closeCursorsInFrame(Vdbe *p){ SQLITE_PRIVATE int sqlite3VdbeFrameRestore(VdbeFrame *pFrame){ Vdbe *v = pFrame->v; closeCursorsInFrame(v); -#ifdef SQLITE_ENABLE_STMT_SCANSTATUS - v->anExec = pFrame->anExec; -#endif v->aOp = pFrame->aOp; v->nOp = pFrame->nOp; v->aMem = pFrame->aMem; @@ -83717,7 +85923,7 @@ static void checkActiveVdbeCnt(sqlite3 *db){ if( p->readOnly==0 ) nWrite++; if( p->bIsReader ) nRead++; } - p = p->pNext; + p = p->pVNext; } assert( cnt==db->nVdbeActive ); assert( nWrite==db->nVdbeWrite ); @@ -83951,6 +86157,8 @@ SQLITE_PRIVATE int sqlite3VdbeHalt(Vdbe *p){ db->flags &= ~(u64)SQLITE_DeferFKs; sqlite3CommitInternalChanges(db); } + }else if( p->rc==SQLITE_SCHEMA && db->nVdbeActive>1 ){ + p->nChange = 0; }else{ sqlite3RollbackAll(db, SQLITE_OK); p->nChange = 0; @@ -84140,7 +86348,7 @@ SQLITE_PRIVATE int sqlite3VdbeReset(Vdbe *p){ sqlite3DbFree(db, p->zErrMsg); p->zErrMsg = 0; } - p->pResultSet = 0; + p->pResultRow = 0; #ifdef SQLITE_DEBUG p->nWrite = 0; #endif @@ -84168,10 +86376,12 @@ SQLITE_PRIVATE int sqlite3VdbeReset(Vdbe *p){ } for(i=0; inOp; i++){ char zHdr[100]; + i64 cnt = p->aOp[i].nExec; + i64 cycles = p->aOp[i].nCycle; sqlite3_snprintf(sizeof(zHdr), zHdr, "%6u %12llu %8llu ", - p->aOp[i].cnt, - p->aOp[i].cycles, - p->aOp[i].cnt>0 ? p->aOp[i].cycles/p->aOp[i].cnt : 0 + cnt, + cycles, + cnt>0 ? cycles/cnt : 0 ); fprintf(out, "%s", zHdr); sqlite3VdbePrintOp(out, i, &p->aOp[i]); @@ -84246,10 +86456,11 @@ SQLITE_PRIVATE void sqlite3VdbeDeleteAuxData(sqlite3 *db, AuxData **pp, int iOp, */ static void sqlite3VdbeClearObject(sqlite3 *db, Vdbe *p){ SubProgram *pSub, *pNext; + assert( db!=0 ); assert( p->db==0 || p->db==db ); if( p->aColName ){ releaseMemArray(p->aColName, p->nResColumn*COLNAME_N); - sqlite3DbFreeNN(db, p->aColName); + sqlite3DbNNFreeNN(db, p->aColName); } for(pSub=p->pProgram; pSub; pSub=pNext){ pNext = pSub->pNext; @@ -84258,17 +86469,17 @@ static void sqlite3VdbeClearObject(sqlite3 *db, Vdbe *p){ } if( p->eVdbeState!=VDBE_INIT_STATE ){ releaseMemArray(p->aVar, p->nVar); - if( p->pVList ) sqlite3DbFreeNN(db, p->pVList); - if( p->pFree ) sqlite3DbFreeNN(db, p->pFree); + if( p->pVList ) sqlite3DbNNFreeNN(db, p->pVList); + if( p->pFree ) sqlite3DbNNFreeNN(db, p->pFree); } vdbeFreeOpArray(db, p->aOp, p->nOp); - sqlite3DbFree(db, p->zSql); + if( p->zSql ) sqlite3DbNNFreeNN(db, p->zSql); #ifdef SQLITE_ENABLE_NORMALIZE sqlite3DbFree(db, p->zNormSql); { - DblquoteStr *pThis, *pNext; - for(pThis=p->pDblStr; pThis; pThis=pNext){ - pNext = pThis->pNextStr; + DblquoteStr *pThis, *pNxt; + for(pThis=p->pDblStr; pThis; pThis=pNxt){ + pNxt = pThis->pNextStr; sqlite3DbFree(db, pThis); } } @@ -84292,20 +86503,17 @@ SQLITE_PRIVATE void sqlite3VdbeDelete(Vdbe *p){ assert( p!=0 ); db = p->db; + assert( db!=0 ); assert( sqlite3_mutex_held(db->mutex) ); sqlite3VdbeClearObject(db, p); if( db->pnBytesFreed==0 ){ - if( p->pPrev ){ - p->pPrev->pNext = p->pNext; - }else{ - assert( db->pVdbe==p ); - db->pVdbe = p->pNext; - } - if( p->pNext ){ - p->pNext->pPrev = p->pPrev; + assert( p->ppVPrev!=0 ); + *p->ppVPrev = p->pVNext; + if( p->pVNext ){ + p->pVNext->ppVPrev = p->ppVPrev; } } - sqlite3DbFreeNN(db, p); + sqlite3DbNNFreeNN(db, p); } /* @@ -85260,7 +87468,7 @@ SQLITE_PRIVATE int sqlite3VdbeRecordCompareWithSkip( assert( pPKey2->pKeyInfo->aSortFlags!=0 ); assert( pPKey2->pKeyInfo->nKeyField>0 ); assert( idx1<=szHdr1 || CORRUPT_DB ); - do{ + while( 1 /*exit-by-break*/ ){ u32 serial_type; /* RHS is an integer */ @@ -85270,7 +87478,7 @@ SQLITE_PRIVATE int sqlite3VdbeRecordCompareWithSkip( serial_type = aKey1[idx1]; testcase( serial_type==12 ); if( serial_type>=10 ){ - rc = +1; + rc = serial_type==10 ? -1 : +1; }else if( serial_type==0 ){ rc = -1; }else if( serial_type==7 ){ @@ -85295,7 +87503,7 @@ SQLITE_PRIVATE int sqlite3VdbeRecordCompareWithSkip( ** numbers). Types 10 and 11 are currently "reserved for future ** use", so it doesn't really matter what the results of comparing ** them to numberic values are. */ - rc = +1; + rc = serial_type==10 ? -1 : +1; }else if( serial_type==0 ){ rc = -1; }else{ @@ -85376,7 +87584,7 @@ SQLITE_PRIVATE int sqlite3VdbeRecordCompareWithSkip( /* RHS is null */ else{ serial_type = aKey1[idx1]; - rc = (serial_type!=0); + rc = (serial_type!=0 && serial_type!=10); } if( rc!=0 ){ @@ -85398,8 +87606,13 @@ SQLITE_PRIVATE int sqlite3VdbeRecordCompareWithSkip( if( i==pPKey2->nField ) break; pRhs++; d1 += sqlite3VdbeSerialTypeLen(serial_type); + if( d1>(unsigned)nKey1 ) break; idx1 += sqlite3VarintLen(serial_type); - }while( idx1<(unsigned)szHdr1 && d1<=(unsigned)nKey1 ); + if( idx1>=(unsigned)szHdr1 ){ + pPKey2->errCode = (u8)SQLITE_CORRUPT_BKPT; + return 0; /* Corrupt index */ + } + } /* No memory allocation is ever used on mem1. Prove this using ** the following assert(). If the assert() fails, it indicates a @@ -85800,7 +88013,7 @@ SQLITE_PRIVATE void sqlite3VdbeCountChanges(Vdbe *v){ */ SQLITE_PRIVATE void sqlite3ExpirePreparedStatements(sqlite3 *db, int iCode){ Vdbe *p; - for(p = db->pVdbe; p; p=p->pNext){ + for(p = db->pVdbe; p; p=p->pVNext){ p->expired = iCode+1; } } @@ -85893,6 +88106,20 @@ SQLITE_PRIVATE int sqlite3NotPureFunc(sqlite3_context *pCtx){ return 1; } +#if defined(SQLITE_ENABLE_CURSOR_HINTS) && defined(SQLITE_DEBUG) +/* +** This Walker callback is used to help verify that calls to +** sqlite3BtreeCursorHint() with opcode BTREE_HINT_RANGE have +** byte-code register values correctly initialized. +*/ +SQLITE_PRIVATE int sqlite3CursorRangeHintExprCheck(Walker *pWalker, Expr *pExpr){ + if( pExpr->op==TK_REGISTER ){ + assert( (pWalker->u.aMem[pExpr->iTable].flags & MEM_Undefined)==0 ); + } + return WRC_Continue; +} +#endif /* SQLITE_ENABLE_CURSOR_HINTS && SQLITE_DEBUG */ + #ifndef SQLITE_OMIT_VIRTUALTABLE /* ** Transfer error message text from an sqlite3_vtab.zErrMsg (text stored @@ -85921,13 +88148,14 @@ SQLITE_PRIVATE void sqlite3VtabImportErrmsg(Vdbe *p, sqlite3_vtab *pVtab){ ** the vdbeUnpackRecord() function found in vdbeapi.c. */ static void vdbeFreeUnpacked(sqlite3 *db, int nField, UnpackedRecord *p){ + assert( db!=0 ); if( p ){ int i; for(i=0; iaMem[i]; if( pMem->zMalloc ) sqlite3VdbeMemReleaseMalloc(pMem); } - sqlite3DbFreeNN(db, p); + sqlite3DbNNFreeNN(db, p); } } #endif /* SQLITE_ENABLE_PREUPDATE_HOOK */ @@ -85954,6 +88182,16 @@ SQLITE_PRIVATE void sqlite3VdbePreUpdateHook( PreUpdate preupdate; const char *zTbl = pTab->zName; static const u8 fakeSortOrder = 0; +#ifdef SQLITE_DEBUG + int nRealCol; + if( pTab->tabFlags & TF_WithoutRowid ){ + nRealCol = sqlite3PrimaryKeyIndex(pTab)->nColumn; + }else if( pTab->tabFlags & TF_HasVirtual ){ + nRealCol = pTab->nNVCol; + }else{ + nRealCol = pTab->nCol; + } +#endif assert( db->pPreUpdate==0 ); memset(&preupdate, 0, sizeof(PreUpdate)); @@ -85970,8 +88208,8 @@ SQLITE_PRIVATE void sqlite3VdbePreUpdateHook( assert( pCsr!=0 ); assert( pCsr->eCurType==CURTYPE_BTREE ); - assert( pCsr->nField==pTab->nCol - || (pCsr->nField==pTab->nCol+1 && op==SQLITE_DELETE && iReg==-1) + assert( pCsr->nField==nRealCol + || (pCsr->nField==nRealCol+1 && op==SQLITE_DELETE && iReg==-1) ); preupdate.v = v; @@ -85998,7 +88236,7 @@ SQLITE_PRIVATE void sqlite3VdbePreUpdateHook( for(i=0; inField; i++){ sqlite3VdbeMemRelease(&preupdate.aNew[i]); } - sqlite3DbFreeNN(db, preupdate.aNew); + sqlite3DbNNFreeNN(db, preupdate.aNew); } } #endif /* SQLITE_ENABLE_PREUPDATE_HOOK */ @@ -86022,6 +88260,7 @@ SQLITE_PRIVATE void sqlite3VdbePreUpdateHook( */ /* #include "sqliteInt.h" */ /* #include "vdbeInt.h" */ +/* #include "opcodes.h" */ #ifndef SQLITE_OMIT_DEPRECATED /* @@ -86115,7 +88354,9 @@ SQLITE_API int sqlite3_finalize(sqlite3_stmt *pStmt){ if( vdbeSafety(v) ) return SQLITE_MISUSE_BKPT; sqlite3_mutex_enter(db->mutex); checkProfileCallback(db, v); - rc = sqlite3VdbeFinalize(v); + assert( v->eVdbeState>=VDBE_READY_STATE ); + rc = sqlite3VdbeReset(v); + sqlite3VdbeDelete(v); rc = sqlite3ApiExit(db, rc); sqlite3LeaveMutexAndCloseZombie(db); } @@ -86275,7 +88516,7 @@ SQLITE_API int sqlite3_value_type(sqlite3_value* pVal){ SQLITE_NULL, /* 0x1f (not possible) */ SQLITE_FLOAT, /* 0x20 INTREAL */ SQLITE_NULL, /* 0x21 (not possible) */ - SQLITE_TEXT, /* 0x22 INTREAL + TEXT */ + SQLITE_FLOAT, /* 0x22 INTREAL + TEXT */ SQLITE_NULL, /* 0x23 (not possible) */ SQLITE_FLOAT, /* 0x24 (not possible) */ SQLITE_NULL, /* 0x25 (not possible) */ @@ -86323,6 +88564,9 @@ SQLITE_API int sqlite3_value_type(sqlite3_value* pVal){ #endif return aType[pVal->flags&MEM_AffMask]; } +SQLITE_API int sqlite3_value_encoding(sqlite3_value *pVal){ + return pVal->enc; +} /* Return true if a parameter to xUpdate represents an unchanged column */ SQLITE_API int sqlite3_value_nochange(sqlite3_value *pVal){ @@ -86507,7 +88751,10 @@ SQLITE_API void sqlite3_result_text64( ){ assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); assert( xDel!=SQLITE_DYNAMIC ); - if( enc==SQLITE_UTF16 ) enc = SQLITE_UTF16NATIVE; + if( enc!=SQLITE_UTF8 ){ + if( enc==SQLITE_UTF16 ) enc = SQLITE_UTF16NATIVE; + n &= ~(u64)1; + } if( n>0x7fffffff ){ (void)invokeValueDestructor(z, xDel, pCtx); }else{ @@ -86522,7 +88769,7 @@ SQLITE_API void sqlite3_result_text16( void (*xDel)(void *) ){ assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); - setResultStrOrError(pCtx, z, n, SQLITE_UTF16NATIVE, xDel); + setResultStrOrError(pCtx, z, n & ~(u64)1, SQLITE_UTF16NATIVE, xDel); } SQLITE_API void sqlite3_result_text16be( sqlite3_context *pCtx, @@ -86531,7 +88778,7 @@ SQLITE_API void sqlite3_result_text16be( void (*xDel)(void *) ){ assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); - setResultStrOrError(pCtx, z, n, SQLITE_UTF16BE, xDel); + setResultStrOrError(pCtx, z, n & ~(u64)1, SQLITE_UTF16BE, xDel); } SQLITE_API void sqlite3_result_text16le( sqlite3_context *pCtx, @@ -86540,7 +88787,7 @@ SQLITE_API void sqlite3_result_text16le( void (*xDel)(void *) ){ assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); - setResultStrOrError(pCtx, z, n, SQLITE_UTF16LE, xDel); + setResultStrOrError(pCtx, z, n & ~(u64)1, SQLITE_UTF16LE, xDel); } #endif /* SQLITE_OMIT_UTF16 */ SQLITE_API void sqlite3_result_value(sqlite3_context *pCtx, sqlite3_value *pValue){ @@ -86751,7 +88998,7 @@ static int sqlite3Step(Vdbe *p){ /* If the statement completed successfully, invoke the profile callback */ checkProfileCallback(db, p); #endif - + p->pResultRow = 0; if( rc==SQLITE_DONE && db->autoCommit ){ assert( p->rc==SQLITE_OK ); p->rc = doWalCallbacks(db); @@ -86880,6 +89127,17 @@ SQLITE_API int sqlite3_vtab_nochange(sqlite3_context *p){ return sqlite3_value_nochange(p->pOut); } +/* +** The destructor function for a ValueList object. This needs to be +** a separate function, unknowable to the application, to ensure that +** calls to sqlite3_vtab_in_first()/sqlite3_vtab_in_next() that are not +** preceeded by activation of IN processing via sqlite3_vtab_int() do not +** try to access a fake ValueList object inserted by a hostile extension. +*/ +SQLITE_PRIVATE void sqlite3VdbeValueListFree(void *pToDelete){ + sqlite3_free(pToDelete); +} + /* ** Implementation of sqlite3_vtab_in_first() (if bNext==0) and ** sqlite3_vtab_in_next() (if bNext!=0). @@ -86894,8 +89152,15 @@ static int valueFromValueList( *ppOut = 0; if( pVal==0 ) return SQLITE_MISUSE; - pRhs = (ValueList*)sqlite3_value_pointer(pVal, "ValueList"); - if( pRhs==0 ) return SQLITE_MISUSE; + if( (pVal->flags & MEM_Dyn)==0 || pVal->xDel!=sqlite3VdbeValueListFree ){ + return SQLITE_ERROR; + }else{ + assert( (pVal->flags&(MEM_TypeMask|MEM_Term|MEM_Subtype)) == + (MEM_Null|MEM_Term|MEM_Subtype) ); + assert( pVal->eSubtype=='p' ); + assert( pVal->u.zPType!=0 && strcmp(pVal->u.zPType,"ValueList")==0 ); + pRhs = (ValueList*)pVal->z; + } if( bNext ){ rc = sqlite3BtreeNext(pRhs->pCsr, 0); }else{ @@ -87115,7 +89380,7 @@ SQLITE_API int sqlite3_column_count(sqlite3_stmt *pStmt){ */ SQLITE_API int sqlite3_data_count(sqlite3_stmt *pStmt){ Vdbe *pVm = (Vdbe *)pStmt; - if( pVm==0 || pVm->pResultSet==0 ) return 0; + if( pVm==0 || pVm->pResultRow==0 ) return 0; return pVm->nResColumn; } @@ -87170,8 +89435,8 @@ static Mem *columnMem(sqlite3_stmt *pStmt, int i){ if( pVm==0 ) return (Mem*)columnNullValue(); assert( pVm->db ); sqlite3_mutex_enter(pVm->db->mutex); - if( pVm->pResultSet!=0 && inResColumn && i>=0 ){ - pOut = &pVm->pResultSet[i]; + if( pVm->pResultRow!=0 && inResColumn && i>=0 ){ + pOut = &pVm->pResultRow[i]; }else{ sqlite3Error(pVm->db, SQLITE_RANGE); pOut = (Mem*)columnNullValue(); @@ -87317,9 +89582,9 @@ static const void *columnName( assert( db!=0 ); n = sqlite3_column_count(pStmt); if( N=0 ){ + u8 prior_mallocFailed = db->mallocFailed; N += useType*n; sqlite3_mutex_enter(db->mutex); - assert( db->mallocFailed==0 ); #ifndef SQLITE_OMIT_UTF16 if( useUtf16 ){ ret = sqlite3_value_text16((sqlite3_value*)&p->aColName[N]); @@ -87331,7 +89596,8 @@ static const void *columnName( /* A malloc may have failed inside of the _text() call. If this ** is the case, clear the mallocFailed flag and return NULL. */ - if( db->mallocFailed ){ + assert( db->mallocFailed==0 || db->mallocFailed==1 ); + if( db->mallocFailed > prior_mallocFailed ){ sqlite3OomClear(db); ret = 0; } @@ -87437,7 +89703,7 @@ SQLITE_API const void *sqlite3_column_origin_name16(sqlite3_stmt *pStmt, int N){ ** The error code stored in database p->db is overwritten with the return ** value in any case. */ -static int vdbeUnbind(Vdbe *p, int i){ +static int vdbeUnbind(Vdbe *p, unsigned int i){ Mem *pVar; if( vdbeSafetyNotNull(p) ){ return SQLITE_MISUSE_BKPT; @@ -87450,12 +89716,11 @@ static int vdbeUnbind(Vdbe *p, int i){ "bind on a busy prepared statement: [%s]", p->zSql); return SQLITE_MISUSE_BKPT; } - if( i<1 || i>p->nVar ){ + if( i>=(unsigned int)p->nVar ){ sqlite3Error(p->db, SQLITE_RANGE); sqlite3_mutex_leave(p->db->mutex); return SQLITE_RANGE; } - i--; pVar = &p->aVar[i]; sqlite3VdbeMemRelease(pVar); pVar->flags = MEM_Null; @@ -87492,7 +89757,7 @@ static int bindText( Mem *pVar; int rc; - rc = vdbeUnbind(p, i); + rc = vdbeUnbind(p, (u32)(i-1)); if( rc==SQLITE_OK ){ if( zData!=0 ){ pVar = &p->aVar[i-1]; @@ -87541,7 +89806,7 @@ SQLITE_API int sqlite3_bind_blob64( SQLITE_API int sqlite3_bind_double(sqlite3_stmt *pStmt, int i, double rValue){ int rc; Vdbe *p = (Vdbe *)pStmt; - rc = vdbeUnbind(p, i); + rc = vdbeUnbind(p, (u32)(i-1)); if( rc==SQLITE_OK ){ sqlite3VdbeMemSetDouble(&p->aVar[i-1], rValue); sqlite3_mutex_leave(p->db->mutex); @@ -87554,7 +89819,7 @@ SQLITE_API int sqlite3_bind_int(sqlite3_stmt *p, int i, int iValue){ SQLITE_API int sqlite3_bind_int64(sqlite3_stmt *pStmt, int i, sqlite_int64 iValue){ int rc; Vdbe *p = (Vdbe *)pStmt; - rc = vdbeUnbind(p, i); + rc = vdbeUnbind(p, (u32)(i-1)); if( rc==SQLITE_OK ){ sqlite3VdbeMemSetInt64(&p->aVar[i-1], iValue); sqlite3_mutex_leave(p->db->mutex); @@ -87564,7 +89829,7 @@ SQLITE_API int sqlite3_bind_int64(sqlite3_stmt *pStmt, int i, sqlite_int64 iValu SQLITE_API int sqlite3_bind_null(sqlite3_stmt *pStmt, int i){ int rc; Vdbe *p = (Vdbe*)pStmt; - rc = vdbeUnbind(p, i); + rc = vdbeUnbind(p, (u32)(i-1)); if( rc==SQLITE_OK ){ sqlite3_mutex_leave(p->db->mutex); } @@ -87579,7 +89844,7 @@ SQLITE_API int sqlite3_bind_pointer( ){ int rc; Vdbe *p = (Vdbe*)pStmt; - rc = vdbeUnbind(p, i); + rc = vdbeUnbind(p, (u32)(i-1)); if( rc==SQLITE_OK ){ sqlite3VdbeMemSetPointer(&p->aVar[i-1], pPtr, zPTtype, xDestructor); sqlite3_mutex_leave(p->db->mutex); @@ -87606,7 +89871,10 @@ SQLITE_API int sqlite3_bind_text64( unsigned char enc ){ assert( xDel!=SQLITE_DYNAMIC ); - if( enc==SQLITE_UTF16 ) enc = SQLITE_UTF16NATIVE; + if( enc!=SQLITE_UTF8 ){ + if( enc==SQLITE_UTF16 ) enc = SQLITE_UTF16NATIVE; + nData &= ~(u16)1; + } return bindText(pStmt, i, zData, nData, xDel, enc); } #ifndef SQLITE_OMIT_UTF16 @@ -87614,10 +89882,10 @@ SQLITE_API int sqlite3_bind_text16( sqlite3_stmt *pStmt, int i, const void *zData, - int nData, + int n, void (*xDel)(void*) ){ - return bindText(pStmt, i, zData, nData, xDel, SQLITE_UTF16NATIVE); + return bindText(pStmt, i, zData, n & ~(u64)1, xDel, SQLITE_UTF16NATIVE); } #endif /* SQLITE_OMIT_UTF16 */ SQLITE_API int sqlite3_bind_value(sqlite3_stmt *pStmt, int i, const sqlite3_value *pValue){ @@ -87657,7 +89925,7 @@ SQLITE_API int sqlite3_bind_value(sqlite3_stmt *pStmt, int i, const sqlite3_valu SQLITE_API int sqlite3_bind_zeroblob(sqlite3_stmt *pStmt, int i, int n){ int rc; Vdbe *p = (Vdbe *)pStmt; - rc = vdbeUnbind(p, i); + rc = vdbeUnbind(p, (u32)(i-1)); if( rc==SQLITE_OK ){ #ifndef SQLITE_OMIT_INCRBLOB sqlite3VdbeMemSetZeroBlob(&p->aVar[i-1], n); @@ -87817,7 +90085,7 @@ SQLITE_API sqlite3_stmt *sqlite3_next_stmt(sqlite3 *pDb, sqlite3_stmt *pStmt){ if( pStmt==0 ){ pNext = (sqlite3_stmt*)pDb->pVdbe; }else{ - pNext = (sqlite3_stmt*)((Vdbe*)pStmt)->pNext; + pNext = (sqlite3_stmt*)((Vdbe*)pStmt)->pVNext; } sqlite3_mutex_leave(pDb->mutex); return pNext; @@ -87842,8 +90110,11 @@ SQLITE_API int sqlite3_stmt_status(sqlite3_stmt *pStmt, int op, int resetFlag){ sqlite3_mutex_enter(db->mutex); v = 0; db->pnBytesFreed = (int*)&v; + assert( db->lookaside.pEnd==db->lookaside.pTrueEnd ); + db->lookaside.pEnd = db->lookaside.pStart; sqlite3VdbeDelete(pVdbe); db->pnBytesFreed = 0; + db->lookaside.pEnd = db->lookaside.pTrueEnd; sqlite3_mutex_leave(db->mutex); }else{ v = pVdbe->aCounter[op]; @@ -88105,23 +90376,69 @@ SQLITE_API int sqlite3_preupdate_new(sqlite3 *db, int iIdx, sqlite3_value **ppVa /* ** Return status data for a single loop within query pStmt. */ -SQLITE_API int sqlite3_stmt_scanstatus( +SQLITE_API int sqlite3_stmt_scanstatus_v2( sqlite3_stmt *pStmt, /* Prepared statement being queried */ - int idx, /* Index of loop to report on */ + int iScan, /* Index of loop to report on */ int iScanStatusOp, /* Which metric to return */ + int flags, void *pOut /* OUT: Write the answer here */ ){ Vdbe *p = (Vdbe*)pStmt; - ScanStatus *pScan; - if( idx<0 || idx>=p->nScan ) return 1; - pScan = &p->aScan[idx]; + VdbeOp *aOp = p->aOp; + int nOp = p->nOp; + ScanStatus *pScan = 0; + int idx; + + if( p->pFrame ){ + VdbeFrame *pFrame; + for(pFrame=p->pFrame; pFrame->pParent; pFrame=pFrame->pParent); + aOp = pFrame->aOp; + nOp = pFrame->nOp; + } + + if( iScan<0 ){ + int ii; + if( iScanStatusOp==SQLITE_SCANSTAT_NCYCLE ){ + i64 res = 0; + for(ii=0; iiaScan[idx]; + }else{ + /* If the COMPLEX flag is clear, then this function must ignore any + ** ScanStatus structures with ScanStatus.addrLoop set to 0. */ + for(idx=0; idxnScan; idx++){ + pScan = &p->aScan[idx]; + if( pScan->zName ){ + iScan--; + if( iScan<0 ) break; + } + } + } + if( idx>=p->nScan ) return 1; + switch( iScanStatusOp ){ case SQLITE_SCANSTAT_NLOOP: { - *(sqlite3_int64*)pOut = p->anExec[pScan->addrLoop]; + if( pScan->addrLoop>0 ){ + *(sqlite3_int64*)pOut = aOp[pScan->addrLoop].nExec; + }else{ + *(sqlite3_int64*)pOut = -1; + } break; } case SQLITE_SCANSTAT_NVISIT: { - *(sqlite3_int64*)pOut = p->anExec[pScan->addrVisit]; + if( pScan->addrVisit>0 ){ + *(sqlite3_int64*)pOut = aOp[pScan->addrVisit].nExec; + }else{ + *(sqlite3_int64*)pOut = -1; + } break; } case SQLITE_SCANSTAT_EST: { @@ -88140,7 +90457,7 @@ SQLITE_API int sqlite3_stmt_scanstatus( } case SQLITE_SCANSTAT_EXPLAIN: { if( pScan->addrExplain ){ - *(const char**)pOut = p->aOp[ pScan->addrExplain ].p4.z; + *(const char**)pOut = aOp[ pScan->addrExplain ].p4.z; }else{ *(const char**)pOut = 0; } @@ -88148,12 +90465,51 @@ SQLITE_API int sqlite3_stmt_scanstatus( } case SQLITE_SCANSTAT_SELECTID: { if( pScan->addrExplain ){ - *(int*)pOut = p->aOp[ pScan->addrExplain ].p1; + *(int*)pOut = aOp[ pScan->addrExplain ].p1; }else{ *(int*)pOut = -1; } break; } + case SQLITE_SCANSTAT_PARENTID: { + if( pScan->addrExplain ){ + *(int*)pOut = aOp[ pScan->addrExplain ].p2; + }else{ + *(int*)pOut = -1; + } + break; + } + case SQLITE_SCANSTAT_NCYCLE: { + i64 res = 0; + if( pScan->aAddrRange[0]==0 ){ + res = -1; + }else{ + int ii; + for(ii=0; iiaAddrRange); ii+=2){ + int iIns = pScan->aAddrRange[ii]; + int iEnd = pScan->aAddrRange[ii+1]; + if( iIns==0 ) break; + if( iIns>0 ){ + while( iIns<=iEnd ){ + res += aOp[iIns].nCycle; + iIns++; + } + }else{ + int iOp; + for(iOp=0; iOpp1!=iEnd ) continue; + if( (sqlite3OpcodeProperty[pOp->opcode] & OPFLG_NCYCLE)==0 ){ + continue; + } + res += aOp[iOp].nCycle; + } + } + } + } + *(i64*)pOut = res; + break; + } default: { return 1; } @@ -88161,12 +90517,29 @@ SQLITE_API int sqlite3_stmt_scanstatus( return 0; } +/* +** Return status data for a single loop within query pStmt. +*/ +SQLITE_API int sqlite3_stmt_scanstatus( + sqlite3_stmt *pStmt, /* Prepared statement being queried */ + int iScan, /* Index of loop to report on */ + int iScanStatusOp, /* Which metric to return */ + void *pOut /* OUT: Write the answer here */ +){ + return sqlite3_stmt_scanstatus_v2(pStmt, iScan, iScanStatusOp, 0, pOut); +} + /* ** Zero all counters associated with the sqlite3_stmt_scanstatus() data. */ SQLITE_API void sqlite3_stmt_scanstatus_reset(sqlite3_stmt *pStmt){ Vdbe *p = (Vdbe*)pStmt; - memset(p->anExec, 0, p->nOp * sizeof(i64)); + int ii; + for(ii=0; iinOp; ii++){ + Op *pOp = &p->aOp[ii]; + pOp->nExec = 0; + pOp->nCycle = 0; + } } #endif /* SQLITE_ENABLE_STMT_SCANSTATUS */ @@ -88502,6 +90875,9 @@ SQLITE_API int sqlite3_found_count = 0; */ static void test_trace_breakpoint(int pc, Op *pOp, Vdbe *v){ static int n = 0; + (void)pc; + (void)pOp; + (void)v; n++; } #endif @@ -88683,7 +91059,8 @@ static VdbeCursor *allocateCursor( ** return false. */ static int alsoAnInt(Mem *pRec, double rValue, i64 *piValue){ - i64 iValue = (double)rValue; + i64 iValue; + iValue = sqlite3RealToI64(rValue); if( sqlite3RealSameAsInt(rValue,iValue) ){ *piValue = iValue; return 1; @@ -88739,6 +91116,10 @@ static void applyNumericAffinity(Mem *pRec, int bTryForInt){ ** always preferred, even if the affinity is REAL, because ** an integer representation is more space efficient on disk. ** +** SQLITE_AFF_FLEXNUM: +** If the value is text, then try to convert it into a number of +** some kind (integer or real) but do not make any other changes. +** ** SQLITE_AFF_TEXT: ** Convert pRec to a text representation. ** @@ -88753,11 +91134,11 @@ static void applyAffinity( ){ if( affinity>=SQLITE_AFF_NUMERIC ){ assert( affinity==SQLITE_AFF_INTEGER || affinity==SQLITE_AFF_REAL - || affinity==SQLITE_AFF_NUMERIC ); + || affinity==SQLITE_AFF_NUMERIC || affinity==SQLITE_AFF_FLEXNUM ); if( (pRec->flags & MEM_Int)==0 ){ /*OPTIMIZATION-IF-FALSE*/ - if( (pRec->flags & MEM_Real)==0 ){ + if( (pRec->flags & (MEM_Real|MEM_IntReal))==0 ){ if( pRec->flags & MEM_Str ) applyNumericAffinity(pRec,1); - }else{ + }else if( affinity<=SQLITE_AFF_REAL ){ sqlite3VdbeIntegerAffinity(pRec); } } @@ -88845,17 +91226,18 @@ static u16 SQLITE_NOINLINE computeNumericType(Mem *pMem){ ** But it does set pMem->u.r and pMem->u.i appropriately. */ static u16 numericType(Mem *pMem){ - if( pMem->flags & (MEM_Int|MEM_Real|MEM_IntReal) ){ + assert( (pMem->flags & MEM_Null)==0 + || pMem->db==0 || pMem->db->mallocFailed ); + if( pMem->flags & (MEM_Int|MEM_Real|MEM_IntReal|MEM_Null) ){ testcase( pMem->flags & MEM_Int ); testcase( pMem->flags & MEM_Real ); testcase( pMem->flags & MEM_IntReal ); - return pMem->flags & (MEM_Int|MEM_Real|MEM_IntReal); - } - if( pMem->flags & (MEM_Str|MEM_Blob) ){ - testcase( pMem->flags & MEM_Str ); - testcase( pMem->flags & MEM_Blob ); - return computeNumericType(pMem); + return pMem->flags & (MEM_Int|MEM_Real|MEM_IntReal|MEM_Null); } + assert( pMem->flags & (MEM_Str|MEM_Blob) ); + testcase( pMem->flags & MEM_Str ); + testcase( pMem->flags & MEM_Blob ); + return computeNumericType(pMem); return 0; } @@ -88984,17 +91366,6 @@ SQLITE_PRIVATE void sqlite3VdbeRegisterDump(Vdbe *v){ # define REGISTER_TRACE(R,M) #endif - -#ifdef VDBE_PROFILE - -/* -** hwtime.h contains inline assembler code for implementing -** high-performance timing routines. -*/ -/* #include "hwtime.h" */ - -#endif - #ifndef NDEBUG /* ** This function is only called from within an assert() expression. It @@ -89054,8 +91425,10 @@ static u64 filterHash(const Mem *aMem, const Op *pOp){ }else if( p->flags & MEM_Real ){ h += sqlite3VdbeIntValue(p); }else if( p->flags & (MEM_Str|MEM_Blob) ){ - h += p->n; - if( p->flags & MEM_Zero ) h += p->u.nZero; + /* All strings have the same hash and all blobs have the same hash, + ** though, at least, those hashes are different from each other and + ** from NULL. */ + h += 4093 + (p->flags & (MEM_Str|MEM_Blob)); } } return h; @@ -89084,11 +91457,10 @@ SQLITE_PRIVATE int sqlite3VdbeExec( ){ Op *aOp = p->aOp; /* Copy of p->aOp */ Op *pOp = aOp; /* Current operation */ -#if defined(SQLITE_DEBUG) || defined(VDBE_PROFILE) - Op *pOrigOp; /* Value of pOp at the top of the loop */ -#endif #ifdef SQLITE_DEBUG + Op *pOrigOp; /* Value of pOp at the top of the loop */ int nExtraDelete = 0; /* Verifies FORDELETE and AUXDELETE flags */ + u8 iCompareIsInit = 0; /* iCompare is initialized */ #endif int rc = SQLITE_OK; /* Value to return */ sqlite3 *db = p->db; /* The database */ @@ -89104,13 +91476,16 @@ SQLITE_PRIVATE int sqlite3VdbeExec( Mem *pIn2 = 0; /* 2nd input operand */ Mem *pIn3 = 0; /* 3rd input operand */ Mem *pOut = 0; /* Output operand */ -#ifdef VDBE_PROFILE - u64 start; /* CPU clock count at start of opcode */ +#if defined(SQLITE_ENABLE_STMT_SCANSTATUS) || defined(VDBE_PROFILE) + u64 *pnCycle = 0; + int bStmtScanStatus = IS_STMT_SCANSTATUS(db)!=0; #endif /*** INSERT STACK UNION HERE ***/ assert( p->eVdbeState==VDBE_RUN_STATE ); /* sqlite3_step() verifies this */ - sqlite3VdbeEnter(p); + if( DbMaskNonZero(p->lockMask) ){ + sqlite3VdbeEnter(p); + } #ifndef SQLITE_OMIT_PROGRESS_CALLBACK if( db->xProgress ){ u32 iPrior = p->aCounter[SQLITE_STMTSTATUS_VM_STEP]; @@ -89131,7 +91506,6 @@ SQLITE_PRIVATE int sqlite3VdbeExec( assert( p->bIsReader || p->readOnly!=0 ); p->iCurrentTime = 0; assert( p->explain==0 ); - p->pResultSet = 0; db->busyHandler.nBusy = 0; if( AtomicLoad(&db->u1.isInterrupted) ) goto abort_due_to_interrupt; sqlite3VdbeIOTraceSql(p); @@ -89168,12 +91542,18 @@ SQLITE_PRIVATE int sqlite3VdbeExec( assert( rc==SQLITE_OK ); assert( pOp>=aOp && pOp<&aOp[p->nOp]); -#ifdef VDBE_PROFILE - start = sqlite3NProfileCnt ? sqlite3NProfileCnt : sqlite3Hwtime(); -#endif nVmStep++; -#ifdef SQLITE_ENABLE_STMT_SCANSTATUS - if( p->anExec ) p->anExec[(int)(pOp-aOp)]++; + +#if defined(VDBE_PROFILE) + pOp->nExec++; + pnCycle = &pOp->nCycle; + if( sqlite3NProfileCnt==0 ) *pnCycle -= sqlite3Hwtime(); +#elif defined(SQLITE_ENABLE_STMT_SCANSTATUS) + if( bStmtScanStatus ){ + pOp->nExec++; + pnCycle = &pOp->nCycle; + *pnCycle -= sqlite3Hwtime(); + } #endif /* Only allow tracing if SQLITE_DEBUG is defined. @@ -89235,7 +91615,7 @@ SQLITE_PRIVATE int sqlite3VdbeExec( } } #endif -#if defined(SQLITE_DEBUG) || defined(VDBE_PROFILE) +#ifdef SQLITE_DEBUG pOrigOp = pOp; #endif @@ -89519,6 +91899,12 @@ case OP_Halt: { #ifdef SQLITE_DEBUG if( pOp->p2==OE_Abort ){ sqlite3VdbeAssertAbortable(p); } #endif + + /* A deliberately coded "OP_Halt SQLITE_INTERNAL * * * *" opcode indicates + ** something is wrong with the code generator. Raise an assertion in order + ** to bring this to the attention of fuzzers and other testing tools. */ + assert( pOp->p1!=SQLITE_INTERNAL ); + if( p->pFrame && pOp->p1==SQLITE_OK ){ /* Halt the sub-program. Return control to the parent frame. */ pFrame = p->pFrame; @@ -89960,10 +92346,10 @@ case OP_ResultRow: { assert( pOp->p1+pOp->p2<=(p->nMem+1 - p->nCursor)+1 ); p->cacheCtr = (p->cacheCtr + 2)|1; - p->pResultSet = &aMem[pOp->p1]; + p->pResultRow = &aMem[pOp->p1]; #ifdef SQLITE_DEBUG { - Mem *pMem = p->pResultSet; + Mem *pMem = p->pResultRow; int i; for(i=0; ip2; i++){ assert( memIsValid(&pMem[i]) ); @@ -90100,7 +92486,6 @@ case OP_Subtract: /* same as TK_MINUS, in1, in2, out3 */ case OP_Multiply: /* same as TK_STAR, in1, in2, out3 */ case OP_Divide: /* same as TK_SLASH, in1, in2, out3 */ case OP_Remainder: { /* same as TK_REM, in1, in2, out3 */ - u16 flags; /* Combined MEM_* flags from both inputs */ u16 type1; /* Numeric type of left operand */ u16 type2; /* Numeric type of right operand */ i64 iA; /* Integer value of left operand */ @@ -90109,12 +92494,12 @@ case OP_Remainder: { /* same as TK_REM, in1, in2, out3 */ double rB; /* Real value of right operand */ pIn1 = &aMem[pOp->p1]; - type1 = numericType(pIn1); + type1 = pIn1->flags; pIn2 = &aMem[pOp->p2]; - type2 = numericType(pIn2); + type2 = pIn2->flags; pOut = &aMem[pOp->p3]; - flags = pIn1->flags | pIn2->flags; if( (type1 & type2 & MEM_Int)!=0 ){ +int_math: iA = pIn1->u.i; iB = pIn2->u.i; switch( pOp->opcode ){ @@ -90136,9 +92521,12 @@ case OP_Remainder: { /* same as TK_REM, in1, in2, out3 */ } pOut->u.i = iB; MemSetTypeFlag(pOut, MEM_Int); - }else if( (flags & MEM_Null)!=0 ){ + }else if( ((type1 | type2) & MEM_Null)!=0 ){ goto arithmetic_result_is_null; }else{ + type1 = numericType(pIn1); + type2 = numericType(pIn2); + if( (type1 & type2 & MEM_Int)!=0 ) goto int_math; fp_math: rA = sqlite3VdbeRealValue(pIn1); rB = sqlite3VdbeRealValue(pIn2); @@ -90491,7 +92879,6 @@ case OP_Ge: { /* same as TK_GE, jump, in1, in3 */ flags1 = pIn1->flags; flags3 = pIn3->flags; if( (flags1 & flags3 & MEM_Int)!=0 ){ - assert( (pOp->p5 & SQLITE_AFF_MASK)!=SQLITE_AFF_TEXT || CORRUPT_DB ); /* Common case of comparison of two integers */ if( pIn3->u.i > pIn1->u.i ){ if( sqlite3aGTb[pOp->opcode] ){ @@ -90499,18 +92886,21 @@ case OP_Ge: { /* same as TK_GE, jump, in1, in3 */ goto jump_to_p2; } iCompare = +1; + VVA_ONLY( iCompareIsInit = 1; ) }else if( pIn3->u.i < pIn1->u.i ){ if( sqlite3aLTb[pOp->opcode] ){ VdbeBranchTaken(1, (pOp->p5 & SQLITE_NULLEQ)?2:3); goto jump_to_p2; } iCompare = -1; + VVA_ONLY( iCompareIsInit = 1; ) }else{ if( sqlite3aEQb[pOp->opcode] ){ VdbeBranchTaken(1, (pOp->p5 & SQLITE_NULLEQ)?2:3); goto jump_to_p2; } iCompare = 0; + VVA_ONLY( iCompareIsInit = 1; ) } VdbeBranchTaken(0, (pOp->p5 & SQLITE_NULLEQ)?2:3); break; @@ -90542,6 +92932,7 @@ case OP_Ge: { /* same as TK_GE, jump, in1, in3 */ goto jump_to_p2; } iCompare = 1; /* Operands are not equal */ + VVA_ONLY( iCompareIsInit = 1; ) break; } }else{ @@ -90552,14 +92943,14 @@ case OP_Ge: { /* same as TK_GE, jump, in1, in3 */ if( (flags1 | flags3)&MEM_Str ){ if( (flags1 & (MEM_Int|MEM_IntReal|MEM_Real|MEM_Str))==MEM_Str ){ applyNumericAffinity(pIn1,0); - testcase( flags3==pIn3->flags ); + assert( flags3==pIn3->flags || CORRUPT_DB ); flags3 = pIn3->flags; } if( (flags3 & (MEM_Int|MEM_IntReal|MEM_Real|MEM_Str))==MEM_Str ){ applyNumericAffinity(pIn3,0); } } - }else if( affinity==SQLITE_AFF_TEXT ){ + }else if( affinity==SQLITE_AFF_TEXT && ((flags1 | flags3) & MEM_Str)!=0 ){ if( (flags1 & MEM_Str)==0 && (flags1&(MEM_Int|MEM_Real|MEM_IntReal))!=0 ){ testcase( pIn1->flags & MEM_Int ); testcase( pIn1->flags & MEM_Real ); @@ -90567,7 +92958,7 @@ case OP_Ge: { /* same as TK_GE, jump, in1, in3 */ sqlite3VdbeMemStringify(pIn1, encoding, 1); testcase( (flags1&MEM_Dyn) != (pIn1->flags&MEM_Dyn) ); flags1 = (pIn1->flags & ~MEM_TypeMask) | (flags1 & MEM_TypeMask); - if( pIn1==pIn3 ) flags3 = flags1 | MEM_Str; + if( NEVER(pIn1==pIn3) ) flags3 = flags1 | MEM_Str; } if( (flags3 & MEM_Str)==0 && (flags3&(MEM_Int|MEM_Real|MEM_IntReal))!=0 ){ testcase( pIn3->flags & MEM_Int ); @@ -90598,6 +92989,7 @@ case OP_Ge: { /* same as TK_GE, jump, in1, in3 */ res2 = sqlite3aGTb[pOp->opcode]; } iCompare = res; + VVA_ONLY( iCompareIsInit = 1; ) /* Undo any changes made by applyAffinity() to the input registers. */ assert( (pIn3->flags & MEM_Dyn) == (flags3 & MEM_Dyn) ); @@ -90636,6 +93028,7 @@ case OP_ElseEq: { /* same as TK_ESCAPE, jump */ break; } #endif /* SQLITE_DEBUG */ + assert( iCompareIsInit ); VdbeBranchTaken(iCompare==0, 2); if( iCompare==0 ) goto jump_to_p2; break; @@ -90730,6 +93123,7 @@ case OP_Compare: { pColl = pKeyInfo->aColl[i]; bRev = (pKeyInfo->aSortFlags[i] & KEYINFO_ORDER_DESC); iCompare = sqlite3MemCompare(&aMem[p1+idx], &aMem[p2+idx], pColl); + VVA_ONLY( iCompareIsInit = 1; ) if( iCompare ){ if( (pKeyInfo->aSortFlags[i] & KEYINFO_ORDER_BIGNULL) && ((aMem[p1+idx].flags & MEM_Null) || (aMem[p2+idx].flags & MEM_Null)) @@ -90747,13 +93141,14 @@ case OP_Compare: { /* Opcode: Jump P1 P2 P3 * * ** ** Jump to the instruction at address P1, P2, or P3 depending on whether -** in the most recent OP_Compare instruction the P1 vector was less than +** in the most recent OP_Compare instruction the P1 vector was less than, ** equal to, or greater than the P2 vector, respectively. ** ** This opcode must immediately follow an OP_Compare opcode. */ case OP_Jump: { /* jump */ assert( pOp>aOp && pOp[-1].opcode==OP_Compare ); + assert( iCompareIsInit ); if( iCompare<0 ){ VdbeBranchTaken(0,4); pOp = &aOp[pOp->p1 - 1]; }else if( iCompare==0 ){ @@ -90953,19 +93348,96 @@ case OP_IsNull: { /* same as TK_ISNULL, jump, in1 */ break; } -/* Opcode: IsNullOrType P1 P2 P3 * * -** Synopsis: if typeof(r[P1]) IN (P3,5) goto P2 +/* Opcode: IsType P1 P2 P3 P4 P5 +** Synopsis: if typeof(P1.P3) in P5 goto P2 +** +** Jump to P2 if the type of a column in a btree is one of the types specified +** by the P5 bitmask. +** +** P1 is normally a cursor on a btree for which the row decode cache is +** valid through at least column P3. In other words, there should have been +** a prior OP_Column for column P3 or greater. If the cursor is not valid, +** then this opcode might give spurious results. +** The the btree row has fewer than P3 columns, then use P4 as the +** datatype. +** +** If P1 is -1, then P3 is a register number and the datatype is taken +** from the value in that register. +** +** P5 is a bitmask of data types. SQLITE_INTEGER is the least significant +** (0x01) bit. SQLITE_FLOAT is the 0x02 bit. SQLITE_TEXT is 0x04. +** SQLITE_BLOB is 0x08. SQLITE_NULL is 0x10. +** +** WARNING: This opcode does not reliably distinguish between NULL and REAL +** when P1>=0. If the database contains a NaN value, this opcode will think +** that the datatype is REAL when it should be NULL. When P1<0 and the value +** is already stored in register P3, then this opcode does reliably +** distinguish between NULL and REAL. The problem only arises then P1>=0. +** +** Take the jump to address P2 if and only if the datatype of the +** value determined by P1 and P3 corresponds to one of the bits in the +** P5 bitmask. ** -** Jump to P2 if the value in register P1 is NULL or has a datatype P3. -** P3 is an integer which should be one of SQLITE_INTEGER, SQLITE_FLOAT, -** SQLITE_BLOB, SQLITE_NULL, or SQLITE_TEXT. */ -case OP_IsNullOrType: { /* jump, in1 */ - int doTheJump; - pIn1 = &aMem[pOp->p1]; - doTheJump = (pIn1->flags & MEM_Null)!=0 || sqlite3_value_type(pIn1)==pOp->p3; - VdbeBranchTaken( doTheJump, 2); - if( doTheJump ) goto jump_to_p2; +case OP_IsType: { /* jump */ + VdbeCursor *pC; + u16 typeMask; + u32 serialType; + + assert( pOp->p1>=(-1) && pOp->p1nCursor ); + assert( pOp->p1>=0 || (pOp->p3>=0 && pOp->p3<=(p->nMem+1 - p->nCursor)) ); + if( pOp->p1>=0 ){ + pC = p->apCsr[pOp->p1]; + assert( pC!=0 ); + assert( pOp->p3>=0 ); + if( pOp->p3nHdrParsed ){ + serialType = pC->aType[pOp->p3]; + if( serialType>=12 ){ + if( serialType&1 ){ + typeMask = 0x04; /* SQLITE_TEXT */ + }else{ + typeMask = 0x08; /* SQLITE_BLOB */ + } + }else{ + static const unsigned char aMask[] = { + 0x10, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x2, + 0x01, 0x01, 0x10, 0x10 + }; + testcase( serialType==0 ); + testcase( serialType==1 ); + testcase( serialType==2 ); + testcase( serialType==3 ); + testcase( serialType==4 ); + testcase( serialType==5 ); + testcase( serialType==6 ); + testcase( serialType==7 ); + testcase( serialType==8 ); + testcase( serialType==9 ); + testcase( serialType==10 ); + testcase( serialType==11 ); + typeMask = aMask[serialType]; + } + }else{ + typeMask = 1 << (pOp->p4.i - 1); + testcase( typeMask==0x01 ); + testcase( typeMask==0x02 ); + testcase( typeMask==0x04 ); + testcase( typeMask==0x08 ); + testcase( typeMask==0x10 ); + } + }else{ + assert( memIsValid(&aMem[pOp->p3]) ); + typeMask = 1 << (sqlite3_value_type((sqlite3_value*)&aMem[pOp->p3])-1); + testcase( typeMask==0x01 ); + testcase( typeMask==0x02 ); + testcase( typeMask==0x04 ); + testcase( typeMask==0x08 ); + testcase( typeMask==0x10 ); + } + VdbeBranchTaken( (typeMask & pOp->p5)!=0, 2); + if( typeMask & pOp->p5 ){ + goto jump_to_p2; + } break; } @@ -91008,11 +93480,14 @@ case OP_NotNull: { /* same as TK_NOTNULL, jump, in1 */ ** If it is, then set register P3 to NULL and jump immediately to P2. ** If P1 is not on a NULL row, then fall through without making any ** changes. +** +** If P1 is not an open cursor, then this opcode is a no-op. */ case OP_IfNullRow: { /* jump */ + VdbeCursor *pC; assert( pOp->p1>=0 && pOp->p1nCursor ); - assert( p->apCsr[pOp->p1]!=0 ); - if( p->apCsr[pOp->p1]->nullRow ){ + pC = p->apCsr[pOp->p1]; + if( pC && pC->nullRow ){ sqlite3VdbeMemSetNull(aMem + pOp->p3); goto jump_to_p2; } @@ -91063,7 +93538,7 @@ case OP_Offset: { /* out3 */ ** Interpret the data that cursor P1 points to as a structure built using ** the MakeRecord instruction. (See the MakeRecord opcode for additional ** information about the format of the data.) Extract the P2-th column -** from this record. If there are less that (P2+1) +** from this record. If there are less than (P2+1) ** values in the record, extract a NULL. ** ** The value extracted is stored in register P3. @@ -91072,12 +93547,14 @@ case OP_Offset: { /* out3 */ ** if the P4 argument is a P4_MEM use the value of the P4 argument as ** the result. ** -** If the OPFLAG_LENGTHARG and OPFLAG_TYPEOFARG bits are set on P5 then -** the result is guaranteed to only be used as the argument of a length() -** or typeof() function, respectively. The loading of large blobs can be -** skipped for length() and all content loading can be skipped for typeof(). +** If the OPFLAG_LENGTHARG bit is set in P5 then the result is guaranteed +** to only be used by the length() function or the equivalent. The content +** of large blobs is not loaded, thus saving CPU cycles. If the +** OPFLAG_TYPEOFARG bit is set then the result will only be used by the +** typeof() function or the IS NULL or IS NOT NULL operators or the +** equivalent. In this case, all content loading can be omitted. */ -case OP_Column: { +case OP_Column: { /* ncycle */ u32 p2; /* column number to retrieve */ VdbeCursor *pC; /* The VDBE cursor */ BtCursor *pCrsr; /* The B-Tree cursor corresponding to pC */ @@ -91426,7 +93903,7 @@ case OP_TypeCheck: { } case COLTYPE_REAL: { testcase( (pIn1->flags & (MEM_Real|MEM_IntReal))==MEM_Real ); - testcase( (pIn1->flags & (MEM_Real|MEM_IntReal))==MEM_IntReal ); + assert( (pIn1->flags & MEM_IntReal)==0 ); if( pIn1->flags & MEM_Int ){ /* When applying REAL affinity, if the result is still an MEM_Int ** that will fit in 6 bytes, then change the type to MEM_IntReal @@ -91505,7 +93982,7 @@ case OP_Affinity: { }else{ pIn1->u.r = (double)pIn1->u.i; pIn1->flags |= MEM_Real; - pIn1->flags &= ~MEM_Int; + pIn1->flags &= ~(MEM_Int|MEM_Str); } } REGISTER_TRACE((int)(pIn1-aMem), pIn1); @@ -92429,7 +94906,7 @@ case OP_SetCookie: { ** ** See also: OP_OpenRead, OP_ReopenIdx */ -case OP_ReopenIdx: { +case OP_ReopenIdx: { /* ncycle */ int nField; KeyInfo *pKeyInfo; u32 p2; @@ -92450,7 +94927,7 @@ case OP_ReopenIdx: { } /* If the cursor is not currently open or is open on a different ** index, then fall through into OP_OpenRead to force a reopen */ -case OP_OpenRead: +case OP_OpenRead: /* ncycle */ case OP_OpenWrite: assert( pOp->opcode==OP_OpenWrite || pOp->p5==0 || pOp->p5==OPFLAG_SEEKEQ ); @@ -92544,7 +95021,7 @@ open_cursor_set_hints: ** ** Duplicate ephemeral cursors are used for self-joins of materialized views. */ -case OP_OpenDup: { +case OP_OpenDup: { /* ncycle */ VdbeCursor *pOrig; /* The original cursor to be duplicated */ VdbeCursor *pCx; /* The new cursor */ @@ -92606,8 +95083,8 @@ case OP_OpenDup: { ** by this opcode will be used for automatically created transient ** indices in joins. */ -case OP_OpenAutoindex: -case OP_OpenEphemeral: { +case OP_OpenAutoindex: /* ncycle */ +case OP_OpenEphemeral: { /* ncycle */ VdbeCursor *pCx; KeyInfo *pKeyInfo; @@ -92765,7 +95242,7 @@ case OP_OpenPseudo: { ** Close a cursor previously opened as P1. If P1 is not ** currently open, this instruction is a no-op. */ -case OP_Close: { +case OP_Close: { /* ncycle */ assert( pOp->p1>=0 && pOp->p1nCursor ); sqlite3VdbeFreeCursor(p, p->apCsr[pOp->p1]); p->apCsr[pOp->p1] = 0; @@ -92882,10 +95359,10 @@ case OP_ColumnsUsed: { ** ** See also: Found, NotFound, SeekGt, SeekGe, SeekLt */ -case OP_SeekLT: /* jump, in3, group */ -case OP_SeekLE: /* jump, in3, group */ -case OP_SeekGE: /* jump, in3, group */ -case OP_SeekGT: { /* jump, in3, group */ +case OP_SeekLT: /* jump, in3, group, ncycle */ +case OP_SeekLE: /* jump, in3, group, ncycle */ +case OP_SeekGE: /* jump, in3, group, ncycle */ +case OP_SeekGT: { /* jump, in3, group, ncycle */ int res; /* Comparison result */ int oc; /* Opcode */ VdbeCursor *pC; /* The cursor to seek */ @@ -93014,7 +95491,13 @@ case OP_SeekGT: { /* jump, in3, group */ r.aMem = &aMem[pOp->p3]; #ifdef SQLITE_DEBUG - { int i; for(i=0; i0 ) REGISTER_TRACE(pOp->p3+i, &r.aMem[i]); + } + } #endif r.eqSeen = 0; rc = sqlite3BtreeIndexMoveto(pC->uc.pCursor, &r, &res); @@ -93077,7 +95560,7 @@ seek_not_found: } -/* Opcode: SeekScan P1 P2 * * * +/* Opcode: SeekScan P1 P2 * * P5 ** Synopsis: Scan-ahead up to P1 rows ** ** This opcode is a prefix opcode to OP_SeekGE. In other words, this @@ -93087,8 +95570,8 @@ seek_not_found: ** This opcode uses the P1 through P4 operands of the subsequent ** OP_SeekGE. In the text that follows, the operands of the subsequent ** OP_SeekGE opcode are denoted as SeekOP.P1 through SeekOP.P4. Only -** the P1 and P2 operands of this opcode are also used, and are called -** This.P1 and This.P2. +** the P1, P2 and P5 operands of this opcode are also used, and are called +** This.P1, This.P2 and This.P5. ** ** This opcode helps to optimize IN operators on a multi-column index ** where the IN operator is on the later terms of the index by avoiding @@ -93098,32 +95581,54 @@ seek_not_found: ** ** The SeekGE.P3 and SeekGE.P4 operands identify an unpacked key which ** is the desired entry that we want the cursor SeekGE.P1 to be pointing -** to. Call this SeekGE.P4/P5 row the "target". +** to. Call this SeekGE.P3/P4 row the "target". ** ** If the SeekGE.P1 cursor is not currently pointing to a valid row, ** then this opcode is a no-op and control passes through into the OP_SeekGE. ** ** If the SeekGE.P1 cursor is pointing to a valid row, then that row ** might be the target row, or it might be near and slightly before the -** target row. This opcode attempts to position the cursor on the target -** row by, perhaps by invoking sqlite3BtreeStep() on the cursor -** between 0 and This.P1 times. +** target row, or it might be after the target row. If the cursor is +** currently before the target row, then this opcode attempts to position +** the cursor on or after the target row by invoking sqlite3BtreeStep() +** on the cursor between 1 and This.P1 times. ** -** There are three possible outcomes from this opcode:
      +** The This.P5 parameter is a flag that indicates what to do if the +** cursor ends up pointing at a valid row that is past the target +** row. If This.P5 is false (0) then a jump is made to SeekGE.P2. If +** This.P5 is true (non-zero) then a jump is made to This.P2. The P5==0 +** case occurs when there are no inequality constraints to the right of +** the IN constraing. The jump to SeekGE.P2 ends the loop. The P5!=0 case +** occurs when there are inequality constraints to the right of the IN +** operator. In that case, the This.P2 will point either directly to or +** to setup code prior to the OP_IdxGT or OP_IdxGE opcode that checks for +** loop terminate. ** -**
    1. If after This.P1 steps, the cursor is still pointing to a place that -** is earlier in the btree than the target row, then fall through -** into the subsquence OP_SeekGE opcode. +** Possible outcomes from this opcode:
        ** -**
      1. If the cursor is successfully moved to the target row by 0 or more -** sqlite3BtreeNext() calls, then jump to This.P2, which will land just -** past the OP_IdxGT or OP_IdxGE opcode that follows the OP_SeekGE. +**
      2. If the cursor is initally not pointed to any valid row, then +** fall through into the subsequent OP_SeekGE opcode. ** -**
      3. If the cursor ends up past the target row (indicating the the target -** row does not exist in the btree) then jump to SeekOP.P2. +**
      4. If the cursor is left pointing to a row that is before the target +** row, even after making as many as This.P1 calls to +** sqlite3BtreeNext(), then also fall through into OP_SeekGE. +** +**
      5. If the cursor is left pointing at the target row, either because it +** was at the target row to begin with or because one or more +** sqlite3BtreeNext() calls moved the cursor to the target row, +** then jump to This.P2.., +** +**
      6. If the cursor started out before the target row and a call to +** to sqlite3BtreeNext() moved the cursor off the end of the index +** (indicating that the target row definitely does not exist in the +** btree) then jump to SeekGE.P2, ending the loop. +** +**
      7. If the cursor ends up on a valid row that is past the target row +** (indicating that the target row does not exist in the btree) then +** jump to SeekOP.P2 if This.P5==0 or to This.P2 if This.P5>0. **
      */ -case OP_SeekScan: { +case OP_SeekScan: { /* ncycle */ VdbeCursor *pC; int res; int nStep; @@ -93131,14 +95636,25 @@ case OP_SeekScan: { assert( pOp[1].opcode==OP_SeekGE ); - /* pOp->p2 points to the first instruction past the OP_IdxGT that - ** follows the OP_SeekGE. */ + /* If pOp->p5 is clear, then pOp->p2 points to the first instruction past the + ** OP_IdxGT that follows the OP_SeekGE. Otherwise, it points to the first + ** opcode past the OP_SeekGE itself. */ assert( pOp->p2>=(int)(pOp-aOp)+2 ); - assert( aOp[pOp->p2-1].opcode==OP_IdxGT || aOp[pOp->p2-1].opcode==OP_IdxGE ); - testcase( aOp[pOp->p2-1].opcode==OP_IdxGE ); - assert( pOp[1].p1==aOp[pOp->p2-1].p1 ); - assert( pOp[1].p2==aOp[pOp->p2-1].p2 ); - assert( pOp[1].p3==aOp[pOp->p2-1].p3 ); +#ifdef SQLITE_DEBUG + if( pOp->p5==0 ){ + /* There are no inequality constraints following the IN constraint. */ + assert( pOp[1].p1==aOp[pOp->p2-1].p1 ); + assert( pOp[1].p2==aOp[pOp->p2-1].p2 ); + assert( pOp[1].p3==aOp[pOp->p2-1].p3 ); + assert( aOp[pOp->p2-1].opcode==OP_IdxGT + || aOp[pOp->p2-1].opcode==OP_IdxGE ); + testcase( aOp[pOp->p2-1].opcode==OP_IdxGE ); + }else{ + /* There are inequality constraints. */ + assert( pOp->p2==(int)(pOp-aOp)+2 ); + assert( aOp[pOp->p2-1].opcode==OP_SeekGE ); + } +#endif assert( pOp->p1>0 ); pC = p->apCsr[pOp[1].p1]; @@ -93172,8 +95688,9 @@ case OP_SeekScan: { while(1){ rc = sqlite3VdbeIdxKeyCompare(db, pC, &r, &res); if( rc ) goto abort_due_to_error; - if( res>0 ){ + if( res>0 && pOp->p5==0 ){ seekscan_search_fail: + /* Jump to SeekGE.P2, ending the loop */ #ifdef SQLITE_DEBUG if( db->flags&SQLITE_VdbeTrace ){ printf("... %d steps and then skip\n", pOp->p1 - nStep); @@ -93183,7 +95700,8 @@ case OP_SeekScan: { pOp++; goto jump_to_p2; } - if( res==0 ){ + if( res>=0 ){ + /* Jump to This.P2, bypassing the OP_SeekGE opcode */ #ifdef SQLITE_DEBUG if( db->flags&SQLITE_VdbeTrace ){ printf("... %d steps and then success\n", pOp->p1 - nStep); @@ -93203,6 +95721,7 @@ case OP_SeekScan: { break; } nStep--; + pC->cacheStatus = CACHE_STALE; rc = sqlite3BtreeNext(pC->uc.pCursor, 0); if( rc ){ if( rc==SQLITE_DONE ){ @@ -93232,7 +95751,7 @@ case OP_SeekScan: { ** ** P1 must be a valid b-tree cursor. */ -case OP_SeekHit: { +case OP_SeekHit: { /* ncycle */ VdbeCursor *pC; assert( pOp->p1>=0 && pOp->p1nCursor ); pC = p->apCsr[pOp->p1]; @@ -93259,12 +95778,16 @@ case OP_SeekHit: { /* Opcode: IfNotOpen P1 P2 * * * ** Synopsis: if( !csr[P1] ) goto P2 ** -** If cursor P1 is not open, jump to instruction P2. Otherwise, fall through. +** If cursor P1 is not open or if P1 is set to a NULL row using the +** OP_NullRow opcode, then jump to instruction P2. Otherwise, fall through. */ case OP_IfNotOpen: { /* jump */ + VdbeCursor *pCur; + assert( pOp->p1>=0 && pOp->p1nCursor ); - VdbeBranchTaken(p->apCsr[pOp->p1]==0, 2); - if( !p->apCsr[pOp->p1] ){ + pCur = p->apCsr[pOp->p1]; + VdbeBranchTaken(pCur==0 || pCur->nullRow, 2); + if( pCur==0 || pCur->nullRow ){ goto jump_to_p2_and_check_for_interrupt; } break; @@ -93360,7 +95883,7 @@ case OP_IfNotOpen: { /* jump */ ** ** See also: NotFound, Found, NotExists */ -case OP_IfNoHope: { /* jump, in3 */ +case OP_IfNoHope: { /* jump, in3, ncycle */ VdbeCursor *pC; assert( pOp->p1>=0 && pOp->p1nCursor ); pC = p->apCsr[pOp->p1]; @@ -93374,9 +95897,9 @@ case OP_IfNoHope: { /* jump, in3 */ /* Fall through into OP_NotFound */ /* no break */ deliberate_fall_through } -case OP_NoConflict: /* jump, in3 */ -case OP_NotFound: /* jump, in3 */ -case OP_Found: { /* jump, in3 */ +case OP_NoConflict: /* jump, in3, ncycle */ +case OP_NotFound: /* jump, in3, ncycle */ +case OP_Found: { /* jump, in3, ncycle */ int alreadyExists; int ii; VdbeCursor *pC; @@ -93506,7 +96029,7 @@ case OP_Found: { /* jump, in3 */ ** ** See also: Found, NotFound, NoConflict, SeekRowid */ -case OP_SeekRowid: { /* jump, in3 */ +case OP_SeekRowid: { /* jump, in3, ncycle */ VdbeCursor *pC; BtCursor *pCrsr; int res; @@ -93531,7 +96054,7 @@ case OP_SeekRowid: { /* jump, in3 */ } /* Fall through into OP_NotExists */ /* no break */ deliberate_fall_through -case OP_NotExists: /* jump, in3 */ +case OP_NotExists: /* jump, in3, ncycle */ pIn3 = &aMem[pOp->p3]; assert( (pIn3->flags & MEM_Int)!=0 || pOp->opcode==OP_SeekRowid ); assert( pOp->p1>=0 && pOp->p1nCursor ); @@ -93811,8 +96334,11 @@ case OP_Insert: { if( pOp->p5 & OPFLAG_ISNOOP ) break; #endif - if( pOp->p5 & OPFLAG_NCHANGE ) p->nChange++; - if( pOp->p5 & OPFLAG_LASTROWID ) db->lastRowid = x.nKey; + assert( (pOp->p5 & OPFLAG_LASTROWID)==0 || (pOp->p5 & OPFLAG_NCHANGE)!=0 ); + if( pOp->p5 & OPFLAG_NCHANGE ){ + p->nChange++; + if( pOp->p5 & OPFLAG_LASTROWID ) db->lastRowid = x.nKey; + } assert( (pData->flags & (MEM_Blob|MEM_Str))!=0 || pData->n==0 ); x.pData = pData->z; x.nData = pData->n; @@ -93823,6 +96349,7 @@ case OP_Insert: { x.nZero = 0; } x.pKey = 0; + assert( BTREE_PREFORMAT==OPFLAG_PREFORMAT ); rc = sqlite3BtreeInsert(pC->uc.pCursor, &x, (pOp->p5 & (OPFLAG_APPEND|OPFLAG_SAVEPOSITION|OPFLAG_PREFORMAT)), seekResult @@ -94154,7 +96681,7 @@ case OP_RowData: { ** be a separate OP_VRowid opcode for use with virtual tables, but this ** one opcode now works for both table types. */ -case OP_Rowid: { /* out2 */ +case OP_Rowid: { /* out2, ncycle */ VdbeCursor *pC; i64 v; sqlite3_vtab *pVtab; @@ -94253,8 +96780,8 @@ case OP_NullRow: { ** from the end toward the beginning. In other words, the cursor is ** configured to use Prev, not Next. */ -case OP_SeekEnd: -case OP_Last: { /* jump */ +case OP_SeekEnd: /* ncycle */ +case OP_Last: { /* jump, ncycle */ VdbeCursor *pC; BtCursor *pCrsr; int res; @@ -94355,17 +96882,22 @@ case OP_Sort: { /* jump */ ** If the table or index is not empty, fall through to the following ** instruction. ** +** If P2 is zero, that is an assertion that the P1 table is never +** empty and hence the jump will never be taken. +** ** This opcode leaves the cursor configured to move in forward order, ** from the beginning toward the end. In other words, the cursor is ** configured to use Next, not Prev. */ -case OP_Rewind: { /* jump */ +case OP_Rewind: { /* jump, ncycle */ VdbeCursor *pC; BtCursor *pCrsr; int res; assert( pOp->p1>=0 && pOp->p1nCursor ); assert( pOp->p5==0 ); + assert( pOp->p2>=0 && pOp->p2nOp ); + pC = p->apCsr[pOp->p1]; assert( pC!=0 ); assert( isSorter(pC)==(pOp->opcode==OP_SorterSort) ); @@ -94385,9 +96917,10 @@ case OP_Rewind: { /* jump */ } if( rc ) goto abort_due_to_error; pC->nullRow = (u8)res; - assert( pOp->p2>0 && pOp->p2nOp ); - VdbeBranchTaken(res!=0,2); - if( res ) goto jump_to_p2; + if( pOp->p2>0 ){ + VdbeBranchTaken(res!=0,2); + if( res ) goto jump_to_p2; + } break; } @@ -94453,9 +96986,11 @@ case OP_SorterNext: { /* jump */ rc = sqlite3VdbeSorterNext(db, pC); goto next_tail; -case OP_Prev: /* jump */ +case OP_Prev: /* jump, ncycle */ assert( pOp->p1>=0 && pOp->p1nCursor ); - assert( pOp->p5aCounter) ); + assert( pOp->p5==0 + || pOp->p5==SQLITE_STMTSTATUS_FULLSCAN_STEP + || pOp->p5==SQLITE_STMTSTATUS_AUTOINDEX); pC = p->apCsr[pOp->p1]; assert( pC!=0 ); assert( pC->deferredMoveto==0 ); @@ -94466,9 +97001,11 @@ case OP_Prev: /* jump */ rc = sqlite3BtreePrevious(pC->uc.pCursor, pOp->p3); goto next_tail; -case OP_Next: /* jump */ +case OP_Next: /* jump, ncycle */ assert( pOp->p1>=0 && pOp->p1nCursor ); - assert( pOp->p5aCounter) ); + assert( pOp->p5==0 + || pOp->p5==SQLITE_STMTSTATUS_FULLSCAN_STEP + || pOp->p5==SQLITE_STMTSTATUS_AUTOINDEX); pC = p->apCsr[pOp->p1]; assert( pC!=0 ); assert( pC->deferredMoveto==0 ); @@ -94656,8 +97193,8 @@ case OP_IdxDelete: { ** ** See also: Rowid, MakeRecord. */ -case OP_DeferredSeek: -case OP_IdxRowid: { /* out2 */ +case OP_DeferredSeek: /* ncycle */ +case OP_IdxRowid: { /* out2, ncycle */ VdbeCursor *pC; /* The P1 index cursor */ VdbeCursor *pTabCur; /* The P2 table cursor (OP_DeferredSeek only) */ i64 rowid; /* Rowid that P1 current points to */ @@ -94675,10 +97212,10 @@ case OP_IdxRowid: { /* out2 */ ** of sqlite3VdbeCursorRestore() and sqlite3VdbeIdxRowid(). */ rc = sqlite3VdbeCursorRestore(pC); - /* sqlite3VbeCursorRestore() can only fail if the record has been deleted - ** out from under the cursor. That will never happens for an IdxRowid - ** or Seek opcode */ - if( NEVER(rc!=SQLITE_OK) ) goto abort_due_to_error; + /* sqlite3VdbeCursorRestore() may fail if the cursor has been disturbed + ** since it was last positioned and an error (e.g. OOM or an IO error) + ** occurs while trying to reposition it. */ + if( rc!=SQLITE_OK ) goto abort_due_to_error; if( !pC->nullRow ){ rowid = 0; /* Not needed. Only used to silence a warning. */ @@ -94719,8 +97256,8 @@ case OP_IdxRowid: { /* out2 */ ** seek operation now, without further delay. If the cursor seek has ** already occurred, this instruction is a no-op. */ -case OP_FinishSeek: { - VdbeCursor *pC; /* The P1 index cursor */ +case OP_FinishSeek: { /* ncycle */ + VdbeCursor *pC; /* The P1 index cursor */ assert( pOp->p1>=0 && pOp->p1nCursor ); pC = p->apCsr[pOp->p1]; @@ -94775,10 +97312,10 @@ case OP_FinishSeek: { ** If the P1 index entry is less than or equal to the key value then jump ** to P2. Otherwise fall through to the next instruction. */ -case OP_IdxLE: /* jump */ -case OP_IdxGT: /* jump */ -case OP_IdxLT: /* jump */ -case OP_IdxGE: { /* jump */ +case OP_IdxLE: /* jump, ncycle */ +case OP_IdxGT: /* jump, ncycle */ +case OP_IdxLT: /* jump, ncycle */ +case OP_IdxGE: { /* jump, ncycle */ VdbeCursor *pC; int res; UnpackedRecord r; @@ -95189,13 +97726,14 @@ case OP_IntegrityCk: { pIn1 = &aMem[pOp->p1]; assert( pOp->p5nDb ); assert( DbMaskTest(p->btreeMask, pOp->p5) ); - z = sqlite3BtreeIntegrityCheck(db, db->aDb[pOp->p5].pBt, &aRoot[1], nRoot, - (int)pnErr->u.i+1, &nErr); + rc = sqlite3BtreeIntegrityCheck(db, db->aDb[pOp->p5].pBt, &aRoot[1], nRoot, + (int)pnErr->u.i+1, &nErr, &z); sqlite3VdbeMemSetNull(pIn1); if( nErr==0 ){ assert( z==0 ); - }else if( z==0 ){ - goto no_mem; + }else if( rc ){ + sqlite3_free(z); + goto abort_due_to_error; }else{ pnErr->u.i -= nErr-1; sqlite3VdbeMemSetStr(pIn1, z, -1, SQLITE_UTF8, sqlite3_free); @@ -95399,9 +97937,6 @@ case OP_Program: { /* jump */ pFrame->aOp = p->aOp; pFrame->nOp = p->nOp; pFrame->token = pProgram->token; -#ifdef SQLITE_ENABLE_STMT_SCANSTATUS - pFrame->anExec = p->anExec; -#endif #ifdef SQLITE_DEBUG pFrame->iFrameMagic = SQLITE_FRAME_MAGIC; #endif @@ -95438,9 +97973,6 @@ case OP_Program: { /* jump */ memset(pFrame->aOnce, 0, (pProgram->nOp + 7)/8); p->aOp = aOp = pProgram->aOp; p->nOp = pProgram->nOp; -#ifdef SQLITE_ENABLE_STMT_SCANSTATUS - p->anExec = 0; -#endif #ifdef SQLITE_DEBUG /* Verify that second and subsequent executions of the same trigger do not ** try to reuse register values from the first use. */ @@ -95580,7 +98112,7 @@ case OP_IfPos: { /* jump, in1 */ ** Synopsis: if r[P1]>0 then r[P2]=r[P1]+max(0,r[P3]) else r[P2]=(-1) ** ** This opcode performs a commonly used computation associated with -** LIMIT and OFFSET process. r[P1] holds the limit counter. r[P3] +** LIMIT and OFFSET processing. r[P1] holds the limit counter. r[P3] ** holds the offset counter. The opcode computes the combined value ** of the LIMIT and OFFSET and stores that value in r[P2]. The r[P2] ** value computed is the total number of rows that will need to be @@ -95842,6 +98374,7 @@ case OP_AggFinal: { } sqlite3VdbeChangeEncoding(pMem, encoding); UPDATE_MAX_BLOBSIZE(pMem); + REGISTER_TRACE((int)(pMem-aMem), pMem); break; } @@ -96197,7 +98730,7 @@ case OP_VDestroy: { ** P1 is a cursor number. This opcode opens a cursor to the virtual ** table and stores that cursor in P1. */ -case OP_VOpen: { +case OP_VOpen: { /* ncycle */ VdbeCursor *pCur; sqlite3_vtab_cursor *pVCur; sqlite3_vtab *pVtab; @@ -96244,7 +98777,7 @@ case OP_VOpen: { ** cursor. Register P3 is used to hold the values returned by ** sqlite3_vtab_in_first() and sqlite3_vtab_in_next(). */ -case OP_VInitIn: { /* out2 */ +case OP_VInitIn: { /* out2, ncycle */ VdbeCursor *pC; /* The cursor containing the RHS values */ ValueList *pRhs; /* New ValueList object to put in reg[P2] */ @@ -96255,7 +98788,7 @@ case OP_VInitIn: { /* out2 */ pRhs->pOut = &aMem[pOp->p3]; pOut = out2Prerelease(p, pOp); pOut->flags = MEM_Null; - sqlite3VdbeMemSetPointer(pOut, pRhs, "ValueList", sqlite3_free); + sqlite3VdbeMemSetPointer(pOut, pRhs, "ValueList", sqlite3VdbeValueListFree); break; } #endif /* SQLITE_OMIT_VIRTUALTABLE */ @@ -96281,7 +98814,7 @@ case OP_VInitIn: { /* out2 */ ** ** A jump is made to P2 if the result set after filtering would be empty. */ -case OP_VFilter: { /* jump */ +case OP_VFilter: { /* jump, ncycle */ int nArg; int iQuery; const sqlite3_module *pModule; @@ -96341,7 +98874,7 @@ case OP_VFilter: { /* jump */ ** bits (OPFLAG_LENGTHARG or OPFLAG_TYPEOFARG) but those bits are ** unused by OP_VColumn. */ -case OP_VColumn: { +case OP_VColumn: { /* ncycle */ sqlite3_vtab *pVtab; const sqlite3_module *pModule; Mem *pDest; @@ -96393,7 +98926,7 @@ case OP_VColumn: { ** jump to instruction P2. Or, if the virtual table has reached ** the end of its result set, then fall through to the next instruction. */ -case OP_VNext: { /* jump */ +case OP_VNext: { /* jump, ncycle */ sqlite3_vtab *pVtab; const sqlite3_module *pModule; int res; @@ -96976,11 +99509,13 @@ default: { /* This is really OP_Noop, OP_Explain */ *****************************************************************************/ } -#ifdef VDBE_PROFILE - { - u64 endTime = sqlite3NProfileCnt ? sqlite3NProfileCnt : sqlite3Hwtime(); - if( endTime>start ) pOrigOp->cycles += endTime - start; - pOrigOp->cnt++; +#if defined(VDBE_PROFILE) + *pnCycle += sqlite3NProfileCnt ? sqlite3NProfileCnt : sqlite3Hwtime(); + pnCycle = 0; +#elif defined(SQLITE_ENABLE_STMT_SCANSTATUS) + if( pnCycle ){ + *pnCycle += sqlite3Hwtime(); + pnCycle = 0; } #endif @@ -97057,6 +99592,18 @@ abort_due_to_error: ** release the mutexes on btrees that were acquired at the ** top. */ vdbe_return: +#if defined(VDBE_PROFILE) + if( pnCycle ){ + *pnCycle += sqlite3NProfileCnt ? sqlite3NProfileCnt : sqlite3Hwtime(); + pnCycle = 0; + } +#elif defined(SQLITE_ENABLE_STMT_SCANSTATUS) + if( pnCycle ){ + *pnCycle += sqlite3Hwtime(); + pnCycle = 0; + } +#endif + #ifndef SQLITE_OMIT_PROGRESS_CALLBACK while( nVmStep>=nProgressLimit && db->xProgress!=0 ){ nProgressLimit += db->nProgressOps; @@ -97068,7 +99615,9 @@ vdbe_return: } #endif p->aCounter[SQLITE_STMTSTATUS_VM_STEP] += (int)nVmStep; - sqlite3VdbeLeave(p); + if( DbMaskNonZero(p->lockMask) ){ + sqlite3VdbeLeave(p); + } assert( rc!=SQLITE_OK || nExtraDelete==0 || sqlite3_strlike("DELETE%",p->zSql,0)!=0 ); @@ -97446,7 +99995,7 @@ blob_open_out: if( pBlob && pBlob->pStmt ) sqlite3VdbeFinalize((Vdbe *)pBlob->pStmt); sqlite3DbFree(db, pBlob); } - sqlite3ErrorWithMsg(db, rc, (zErr ? "%s" : 0), zErr); + sqlite3ErrorWithMsg(db, rc, (zErr ? "%s" : (char*)0), zErr); sqlite3DbFree(db, zErr); sqlite3ParseObjectReset(&sParse); rc = sqlite3ApiExit(db, rc); @@ -97605,7 +100154,7 @@ SQLITE_API int sqlite3_blob_reopen(sqlite3_blob *pBlob, sqlite3_int64 iRow){ ((Vdbe*)p->pStmt)->rc = SQLITE_OK; rc = blobSeekToRow(p, iRow, &zErr); if( rc!=SQLITE_OK ){ - sqlite3ErrorWithMsg(db, rc, (zErr ? "%s" : 0), zErr); + sqlite3ErrorWithMsg(db, rc, (zErr ? "%s" : (char*)0), zErr); sqlite3DbFree(db, zErr); } assert( rc!=SQLITE_SCHEMA ); @@ -100475,6 +103024,9 @@ static int bytecodevtabConnect( ");" }; + (void)argc; + (void)argv; + (void)pzErr; rc = sqlite3_declare_vtab(db, azSchema[isTabUsed]); if( rc==SQLITE_OK ){ pNew = sqlite3_malloc( sizeof(*pNew) ); @@ -100710,6 +103262,7 @@ static int bytecodevtabFilter( bytecodevtab_cursor *pCur = (bytecodevtab_cursor *)pVtabCursor; bytecodevtab *pVTab = (bytecodevtab *)pVtabCursor->pVtab; int rc = SQLITE_OK; + (void)idxStr; bytecodevtabCursorClear(pCur); pCur->iRowid = 0; @@ -101178,6 +103731,8 @@ SQLITE_PRIVATE int sqlite3JournalOpen( ){ MemJournal *p = (MemJournal*)pJfd; + assert( zName || nSpill<0 || (flags & SQLITE_OPEN_EXCLUSIVE) ); + /* Zero the file-handle object. If nSpill was passed zero, initialize ** it using the sqlite3OsOpen() function of the underlying VFS. In this ** case none of the code in this module is executed as a result of calls @@ -101619,9 +104174,7 @@ static void resolveAlias( pExpr->y.pWin->pOwner = pExpr; } } - sqlite3ParserAddCleanup(pParse, - (void(*)(sqlite3*,void*))sqlite3ExprDelete, - pDup); + sqlite3ExprDeferredDelete(pParse, pDup); } } @@ -101724,6 +104277,32 @@ static void extendFJMatch( } } +/* +** Return TRUE (non-zero) if zTab is a valid name for the schema table pTab. +*/ +static SQLITE_NOINLINE int isValidSchemaTableName( + const char *zTab, /* Name as it appears in the SQL */ + Table *pTab, /* The schema table we are trying to match */ + Schema *pSchema /* non-NULL if a database qualifier is present */ +){ + const char *zLegacy; + assert( pTab!=0 ); + assert( pTab->tnum==1 ); + if( sqlite3StrNICmp(zTab, "sqlite_", 7)!=0 ) return 0; + zLegacy = pTab->zName; + if( strcmp(zLegacy+7, &LEGACY_TEMP_SCHEMA_TABLE[7])==0 ){ + if( sqlite3StrICmp(zTab+7, &PREFERRED_TEMP_SCHEMA_TABLE[7])==0 ){ + return 1; + } + if( pSchema==0 ) return 0; + if( sqlite3StrICmp(zTab+7, &LEGACY_SCHEMA_TABLE[7])==0 ) return 1; + if( sqlite3StrICmp(zTab+7, &PREFERRED_SCHEMA_TABLE[7])==0 ) return 1; + }else{ + if( sqlite3StrICmp(zTab+7, &PREFERRED_SCHEMA_TABLE[7])==0 ) return 1; + } + return 0; +} + /* ** Given the name of a column of the form X.Y.Z or Y.Z or just Z, look up ** that name in the set of source tables in pSrcList and make the pExpr @@ -101877,15 +104456,17 @@ static int lookupName( } assert( zDb==0 || zTab!=0 ); if( zTab ){ - const char *zTabName; if( zDb ){ if( pTab->pSchema!=pSchema ) continue; if( pSchema==0 && strcmp(zDb,"*")!=0 ) continue; } - zTabName = pItem->zAlias ? pItem->zAlias : pTab->zName; - assert( zTabName!=0 ); - if( sqlite3StrICmp(zTabName, zTab)!=0 ){ - continue; + if( pItem->zAlias!=0 ){ + if( sqlite3StrICmp(zTab, pItem->zAlias)!=0 ){ + continue; + } + }else if( sqlite3StrICmp(zTab, pTab->zName)!=0 ){ + if( pTab->tnum!=1 ) continue; + if( !isValidSchemaTableName(zTab, pTab, pSchema) ) continue; } assert( ExprUseYTab(pExpr) ); if( IN_RENAME_OBJECT && pItem->zAlias ){ @@ -101961,7 +104542,8 @@ static int lookupName( assert( op==TK_DELETE || op==TK_UPDATE || op==TK_INSERT ); if( pParse->bReturning ){ if( (pNC->ncFlags & NC_UBaseReg)!=0 - && (zTab==0 || sqlite3StrICmp(zTab,pParse->pTriggerTab->zName)==0) + && ALWAYS(zTab==0 + || sqlite3StrICmp(zTab,pParse->pTriggerTab->zName)==0) ){ pExpr->iTable = op!=TK_DELETE; pTab = pParse->pTriggerTab; @@ -102028,6 +104610,7 @@ static int lookupName( if( pParse->bReturning ){ eNewExprOp = TK_REGISTER; pExpr->op2 = TK_COLUMN; + pExpr->iColumn = iCol; pExpr->iTable = pNC->uNC.iBaseReg + (pTab->nCol+1)*pExpr->iTable + sqlite3TableColumnToStorage(pTab, iCol) + 1; }else{ @@ -102440,14 +105023,10 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ if( 0==sqlite3ExprCanBeNull(pExpr->pLeft) && !IN_RENAME_OBJECT ){ testcase( ExprHasProperty(pExpr, EP_OuterON) ); assert( !ExprHasProperty(pExpr, EP_IntValue) ); - if( pExpr->op==TK_NOTNULL ){ - pExpr->u.zToken = "true"; - ExprSetProperty(pExpr, EP_IsTrue); - }else{ - pExpr->u.zToken = "false"; - ExprSetProperty(pExpr, EP_IsFalse); - } - pExpr->op = TK_TRUEFALSE; + pExpr->u.iValue = (pExpr->op==TK_NOTNULL); + pExpr->flags |= EP_IntValue; + pExpr->op = TK_INTEGER; + for(i=0, p=pNC; p && ipNext, i++){ p->nRef = anRef[i]; } @@ -102749,8 +105328,8 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ assert( pNC->nRef>=nRef ); if( nRef!=pNC->nRef ){ ExprSetProperty(pExpr, EP_VarSelect); - pNC->ncFlags |= NC_VarSelect; } + pNC->ncFlags |= NC_Subquery; } break; } @@ -103704,49 +106283,121 @@ SQLITE_PRIVATE char sqlite3TableColumnAffinity(const Table *pTab, int iCol){ */ SQLITE_PRIVATE char sqlite3ExprAffinity(const Expr *pExpr){ int op; - while( ExprHasProperty(pExpr, EP_Skip|EP_IfNullRow) ){ - assert( pExpr->op==TK_COLLATE - || pExpr->op==TK_IF_NULL_ROW - || (pExpr->op==TK_REGISTER && pExpr->op2==TK_IF_NULL_ROW) ); - pExpr = pExpr->pLeft; - assert( pExpr!=0 ); - } op = pExpr->op; - if( op==TK_REGISTER ) op = pExpr->op2; - if( op==TK_COLUMN || op==TK_AGG_COLUMN ){ - assert( ExprUseYTab(pExpr) ); - if( pExpr->y.pTab ){ + while( 1 /* exit-by-break */ ){ + if( op==TK_COLUMN || (op==TK_AGG_COLUMN && pExpr->y.pTab!=0) ){ + assert( ExprUseYTab(pExpr) ); + assert( pExpr->y.pTab!=0 ); return sqlite3TableColumnAffinity(pExpr->y.pTab, pExpr->iColumn); } - } - if( op==TK_SELECT ){ - assert( ExprUseXSelect(pExpr) ); - assert( pExpr->x.pSelect!=0 ); - assert( pExpr->x.pSelect->pEList!=0 ); - assert( pExpr->x.pSelect->pEList->a[0].pExpr!=0 ); - return sqlite3ExprAffinity(pExpr->x.pSelect->pEList->a[0].pExpr); - } + if( op==TK_SELECT ){ + assert( ExprUseXSelect(pExpr) ); + assert( pExpr->x.pSelect!=0 ); + assert( pExpr->x.pSelect->pEList!=0 ); + assert( pExpr->x.pSelect->pEList->a[0].pExpr!=0 ); + return sqlite3ExprAffinity(pExpr->x.pSelect->pEList->a[0].pExpr); + } #ifndef SQLITE_OMIT_CAST - if( op==TK_CAST ){ - assert( !ExprHasProperty(pExpr, EP_IntValue) ); - return sqlite3AffinityType(pExpr->u.zToken, 0); - } + if( op==TK_CAST ){ + assert( !ExprHasProperty(pExpr, EP_IntValue) ); + return sqlite3AffinityType(pExpr->u.zToken, 0); + } #endif - if( op==TK_SELECT_COLUMN ){ - assert( pExpr->pLeft!=0 && ExprUseXSelect(pExpr->pLeft) ); - assert( pExpr->iColumn < pExpr->iTable ); - assert( pExpr->iTable==pExpr->pLeft->x.pSelect->pEList->nExpr ); - return sqlite3ExprAffinity( - pExpr->pLeft->x.pSelect->pEList->a[pExpr->iColumn].pExpr - ); - } - if( op==TK_VECTOR ){ - assert( ExprUseXList(pExpr) ); - return sqlite3ExprAffinity(pExpr->x.pList->a[0].pExpr); + if( op==TK_SELECT_COLUMN ){ + assert( pExpr->pLeft!=0 && ExprUseXSelect(pExpr->pLeft) ); + assert( pExpr->iColumn < pExpr->iTable ); + assert( pExpr->iTable==pExpr->pLeft->x.pSelect->pEList->nExpr ); + return sqlite3ExprAffinity( + pExpr->pLeft->x.pSelect->pEList->a[pExpr->iColumn].pExpr + ); + } + if( op==TK_VECTOR ){ + assert( ExprUseXList(pExpr) ); + return sqlite3ExprAffinity(pExpr->x.pList->a[0].pExpr); + } + if( ExprHasProperty(pExpr, EP_Skip|EP_IfNullRow) ){ + assert( pExpr->op==TK_COLLATE + || pExpr->op==TK_IF_NULL_ROW + || (pExpr->op==TK_REGISTER && pExpr->op2==TK_IF_NULL_ROW) ); + pExpr = pExpr->pLeft; + op = pExpr->op; + continue; + } + if( op!=TK_REGISTER || (op = pExpr->op2)==TK_REGISTER ) break; } return pExpr->affExpr; } +/* +** Make a guess at all the possible datatypes of the result that could +** be returned by an expression. Return a bitmask indicating the answer: +** +** 0x01 Numeric +** 0x02 Text +** 0x04 Blob +** +** If the expression must return NULL, then 0x00 is returned. +*/ +SQLITE_PRIVATE int sqlite3ExprDataType(const Expr *pExpr){ + while( pExpr ){ + switch( pExpr->op ){ + case TK_COLLATE: + case TK_IF_NULL_ROW: + case TK_UPLUS: { + pExpr = pExpr->pLeft; + break; + } + case TK_NULL: { + pExpr = 0; + break; + } + case TK_STRING: { + return 0x02; + } + case TK_BLOB: { + return 0x04; + } + case TK_CONCAT: { + return 0x06; + } + case TK_VARIABLE: + case TK_AGG_FUNCTION: + case TK_FUNCTION: { + return 0x07; + } + case TK_COLUMN: + case TK_AGG_COLUMN: + case TK_SELECT: + case TK_CAST: + case TK_SELECT_COLUMN: + case TK_VECTOR: { + int aff = sqlite3ExprAffinity(pExpr); + if( aff>=SQLITE_AFF_NUMERIC ) return 0x05; + if( aff==SQLITE_AFF_TEXT ) return 0x06; + return 0x07; + } + case TK_CASE: { + int res = 0; + int ii; + ExprList *pList = pExpr->x.pList; + assert( ExprUseXList(pExpr) && pList!=0 ); + assert( pList->nExpr > 0); + for(ii=1; iinExpr; ii+=2){ + res |= sqlite3ExprDataType(pList->a[ii].pExpr); + } + if( pList->nExpr % 2 ){ + res |= sqlite3ExprDataType(pList->a[pList->nExpr-1].pExpr); + } + return res; + } + default: { + return 0x01; + } + } /* End of switch(op) */ + } /* End of while(pExpr) */ + return 0x00; +} + /* ** Set the collating sequence for expression pExpr to be the collating ** sequence named by pToken. Return a pointer to a new Expr node that @@ -103834,18 +106485,17 @@ SQLITE_PRIVATE CollSeq *sqlite3ExprCollSeq(Parse *pParse, const Expr *pExpr){ while( p ){ int op = p->op; if( op==TK_REGISTER ) op = p->op2; - if( op==TK_AGG_COLUMN || op==TK_COLUMN || op==TK_TRIGGER ){ + if( (op==TK_AGG_COLUMN && p->y.pTab!=0) + || op==TK_COLUMN || op==TK_TRIGGER + ){ + int j; assert( ExprUseYTab(p) ); - if( p->y.pTab!=0 ){ - /* op==TK_REGISTER && p->y.pTab!=0 happens when pExpr was originally - ** a TK_COLUMN but was previously evaluated and cached in a register */ - int j = p->iColumn; - if( j>=0 ){ - const char *zColl = sqlite3ColumnColl(&p->y.pTab->aCol[j]); - pColl = sqlite3FindCollSeq(db, ENC(db), zColl, 0); - } - break; + assert( p->y.pTab!=0 ); + if( (j = p->iColumn)>=0 ){ + const char *zColl = sqlite3ColumnColl(&p->y.pTab->aCol[j]); + pColl = sqlite3FindCollSeq(db, ENC(db), zColl, 0); } + break; } if( op==TK_CAST || op==TK_UPLUS ){ p = p->pLeft; @@ -103867,11 +106517,10 @@ SQLITE_PRIVATE CollSeq *sqlite3ExprCollSeq(Parse *pParse, const Expr *pExpr){ }else{ Expr *pNext = p->pRight; /* The Expr.x union is never used at the same time as Expr.pRight */ - assert( ExprUseXList(p) ); - assert( p->x.pList==0 || p->pRight==0 ); - if( p->x.pList!=0 && !db->mallocFailed ){ + assert( !ExprUseXList(p) || p->x.pList==0 || p->pRight==0 ); + if( ExprUseXList(p) && p->x.pList!=0 && !db->mallocFailed ){ int i; - for(i=0; ALWAYS(ix.pList->nExpr); i++){ + for(i=0; ix.pList->nExpr; i++){ if( ExprHasProperty(p->x.pList->a[i].pExpr, EP_Collate) ){ pNext = p->x.pList->a[i].pExpr; break; @@ -104430,7 +107079,9 @@ static void heightOfSelect(const Select *pSelect, int *pnHeight){ */ static void exprSetHeight(Expr *p){ int nHeight = p->pLeft ? p->pLeft->nHeight : 0; - if( p->pRight && p->pRight->nHeight>nHeight ) nHeight = p->pRight->nHeight; + if( NEVER(p->pRight) && p->pRight->nHeight>nHeight ){ + nHeight = p->pRight->nHeight; + } if( ExprUseXSelect(p) ){ heightOfSelect(p->x.pSelect, &nHeight); }else if( p->x.pList ){ @@ -104573,15 +107224,26 @@ SQLITE_PRIVATE void sqlite3ExprAttachSubtrees( sqlite3ExprDelete(db, pLeft); sqlite3ExprDelete(db, pRight); }else{ + assert( ExprUseXList(pRoot) ); + assert( pRoot->x.pSelect==0 ); if( pRight ){ pRoot->pRight = pRight; pRoot->flags |= EP_Propagate & pRight->flags; +#if SQLITE_MAX_EXPR_DEPTH>0 + pRoot->nHeight = pRight->nHeight+1; + }else{ + pRoot->nHeight = 1; +#endif } if( pLeft ){ pRoot->pLeft = pLeft; pRoot->flags |= EP_Propagate & pLeft->flags; +#if SQLITE_MAX_EXPR_DEPTH>0 + if( pLeft->nHeight>=pRoot->nHeight ){ + pRoot->nHeight = pLeft->nHeight+1; + } +#endif } - exprSetHeight(pRoot); } } @@ -104690,9 +107352,9 @@ SQLITE_PRIVATE Select *sqlite3ExprListToValues(Parse *pParse, int nElem, ExprLis ** Join two expressions using an AND operator. If either expression is ** NULL, then just return the other expression. ** -** If one side or the other of the AND is known to be false, then instead -** of returning an AND expression, just return a constant expression with -** a value of false. +** If one side or the other of the AND is known to be false, and neither side +** is part of an ON clause, then instead of returning an AND expression, +** just return a constant expression with a value of false. */ SQLITE_PRIVATE Expr *sqlite3ExprAnd(Parse *pParse, Expr *pLeft, Expr *pRight){ sqlite3 *db = pParse->db; @@ -104700,14 +107362,17 @@ SQLITE_PRIVATE Expr *sqlite3ExprAnd(Parse *pParse, Expr *pLeft, Expr *pRight){ return pRight; }else if( pRight==0 ){ return pLeft; - }else if( (ExprAlwaysFalse(pLeft) || ExprAlwaysFalse(pRight)) - && !IN_RENAME_OBJECT - ){ - sqlite3ExprDeferredDelete(pParse, pLeft); - sqlite3ExprDeferredDelete(pParse, pRight); - return sqlite3Expr(db, TK_INTEGER, "0"); }else{ - return sqlite3PExpr(pParse, TK_AND, pLeft, pRight); + u32 f = pLeft->flags | pRight->flags; + if( (f&(EP_OuterON|EP_InnerON|EP_IsFalse))==EP_IsFalse + && !IN_RENAME_OBJECT + ){ + sqlite3ExprDeferredDelete(pParse, pLeft); + sqlite3ExprDeferredDelete(pParse, pRight); + return sqlite3Expr(db, TK_INTEGER, "0"); + }else{ + return sqlite3PExpr(pParse, TK_AND, pLeft, pRight); + } } } @@ -104867,6 +107532,7 @@ SQLITE_PRIVATE void sqlite3ExprAssignVarNumber(Parse *pParse, Expr *pExpr, u32 n */ static SQLITE_NOINLINE void sqlite3ExprDeleteNN(sqlite3 *db, Expr *p){ assert( p!=0 ); + assert( db!=0 ); assert( !ExprUseUValue(p) || p->u.iValue>=0 ); assert( !ExprUseYWin(p) || !ExprUseYSub(p) ); assert( !ExprUseYWin(p) || p->y.pWin!=0 || db->mallocFailed ); @@ -104898,12 +107564,8 @@ static SQLITE_NOINLINE void sqlite3ExprDeleteNN(sqlite3 *db, Expr *p){ #endif } } - if( ExprHasProperty(p, EP_MemToken) ){ - assert( !ExprHasProperty(p, EP_IntValue) ); - sqlite3DbFree(db, p->u.zToken); - } if( !ExprHasProperty(p, EP_Static) ){ - sqlite3DbFreeNN(db, p); + sqlite3DbNNFreeNN(db, p); } } SQLITE_PRIVATE void sqlite3ExprDelete(sqlite3 *db, Expr *p){ @@ -104934,8 +107596,9 @@ SQLITE_PRIVATE void sqlite3ClearOnOrUsing(sqlite3 *db, OnOrUsing *p){ ** pExpr to the pParse->pConstExpr list with a register number of 0. */ SQLITE_PRIVATE void sqlite3ExprDeferredDelete(Parse *pParse, Expr *pExpr){ - pParse->pConstExpr = - sqlite3ExprListAppend(pParse, pParse->pConstExpr, pExpr); + sqlite3ParserAddCleanup(pParse, + (void(*)(sqlite3*,void*))sqlite3ExprDelete, + pExpr); } /* Invoke sqlite3RenameExprUnmap() and sqlite3ExprDelete() on the @@ -105009,7 +107672,6 @@ static int dupedExprStructSize(const Expr *p, int flags){ }else{ assert( !ExprHasProperty(p, EP_TokenOnly|EP_Reduced) ); assert( !ExprHasProperty(p, EP_OuterON) ); - assert( !ExprHasProperty(p, EP_MemToken) ); assert( !ExprHasVVAProperty(p, EP_NoReduce) ); if( p->pLeft || p->x.pList ){ nSize = EXPR_REDUCEDSIZE | EP_Reduced; @@ -105113,7 +107775,7 @@ static Expr *exprDup(sqlite3 *db, const Expr *p, int dupFlags, u8 **pzBuffer){ } /* Set the EP_Reduced, EP_TokenOnly, and EP_Static flags appropriately. */ - pNew->flags &= ~(EP_Reduced|EP_TokenOnly|EP_Static|EP_MemToken); + pNew->flags &= ~(EP_Reduced|EP_TokenOnly|EP_Static); pNew->flags |= nStructSize & (EP_Reduced|EP_TokenOnly); pNew->flags |= staticFlag; ExprClearVVAProperties(pNew); @@ -105689,12 +108351,13 @@ static SQLITE_NOINLINE void exprListDeleteNN(sqlite3 *db, ExprList *pList){ int i = pList->nExpr; struct ExprList_item *pItem = pList->a; assert( pList->nExpr>0 ); + assert( db!=0 ); do{ sqlite3ExprDelete(db, pItem->pExpr); - sqlite3DbFree(db, pItem->zEName); + if( pItem->zEName ) sqlite3DbNNFreeNN(db, pItem->zEName); pItem++; }while( --i>0 ); - sqlite3DbFreeNN(db, pList); + sqlite3DbNNFreeNN(db, pList); } SQLITE_PRIVATE void sqlite3ExprListDelete(sqlite3 *db, ExprList *pList){ if( pList ) exprListDeleteNN(db, pList); @@ -105954,12 +108617,17 @@ SQLITE_PRIVATE int sqlite3ExprIsTableConstant(Expr *p, int iCur){ } /* -** Check pExpr to see if it is an invariant constraint on data source pSrc. +** Check pExpr to see if it is an constraint on the single data source +** pSrc = &pSrcList->a[iSrc]. In other words, check to see if pExpr +** constrains pSrc but does not depend on any other tables or data +** sources anywhere else in the query. Return true (non-zero) if pExpr +** is a constraint on pSrc only. +** ** This is an optimization. False negatives will perhaps cause slower ** queries, but false positives will yield incorrect answers. So when in ** doubt, return 0. ** -** To be an invariant constraint, the following must be true: +** To be an single-source constraint, the following must be true: ** ** (1) pExpr cannot refer to any table other than pSrc->iCursor. ** @@ -105970,13 +108638,31 @@ SQLITE_PRIVATE int sqlite3ExprIsTableConstant(Expr *p, int iCur){ ** ** (4) If pSrc is the right operand of a LEFT JOIN, then... ** (4a) pExpr must come from an ON clause.. - (4b) and specifically the ON clause associated with the LEFT JOIN. +** (4b) and specifically the ON clause associated with the LEFT JOIN. ** ** (5) If pSrc is not the right operand of a LEFT JOIN or the left ** operand of a RIGHT JOIN, then pExpr must be from the WHERE ** clause, not an ON clause. +** +** (6) Either: +** +** (6a) pExpr does not originate in an ON or USING clause, or +** +** (6b) The ON or USING clause from which pExpr is derived is +** not to the left of a RIGHT JOIN (or FULL JOIN). +** +** Without this restriction, accepting pExpr as a single-table +** constraint might move the the ON/USING filter expression +** from the left side of a RIGHT JOIN over to the right side, +** which leads to incorrect answers. See also restriction (9) +** on push-down. */ -SQLITE_PRIVATE int sqlite3ExprIsTableConstraint(Expr *pExpr, const SrcItem *pSrc){ +SQLITE_PRIVATE int sqlite3ExprIsSingleTableConstraint( + Expr *pExpr, /* The constraint */ + const SrcList *pSrcList, /* Complete FROM clause */ + int iSrc /* Which element of pSrcList to use */ +){ + const SrcItem *pSrc = &pSrcList->a[iSrc]; if( pSrc->fg.jointype & JT_LTORJ ){ return 0; /* rule (3) */ } @@ -105986,6 +108672,19 @@ SQLITE_PRIVATE int sqlite3ExprIsTableConstraint(Expr *pExpr, const SrcItem *pSrc }else{ if( ExprHasProperty(pExpr, EP_OuterON) ) return 0; /* rule (5) */ } + if( ExprHasProperty(pExpr, EP_OuterON|EP_InnerON) /* (6a) */ + && (pSrcList->a[0].fg.jointype & JT_LTORJ)!=0 /* Fast pre-test of (6b) */ + ){ + int jj; + for(jj=0; jjw.iJoin==pSrcList->a[jj].iCursor ){ + if( (pSrcList->a[jj].fg.jointype & JT_LTORJ)!=0 ){ + return 0; /* restriction (6) */ + } + break; + } + } + } return sqlite3ExprIsTableConstant(pExpr, pSrc->iCursor); /* rules (1), (2) */ } @@ -106228,7 +108927,7 @@ SQLITE_PRIVATE int sqlite3IsRowid(const char *z){ ** pX is the RHS of an IN operator. If pX is a SELECT statement ** that can be simplified to a direct table access, then return ** a pointer to the SELECT statement. If pX is not a SELECT statement, -** or if the SELECT statement needs to be manifested into a transient +** or if the SELECT statement needs to be materialized into a transient ** table, then return NULL. */ #ifndef SQLITE_OMIT_SUBQUERY @@ -106514,7 +109213,6 @@ SQLITE_PRIVATE int sqlite3FindInIndex( CollSeq *pReq = sqlite3BinaryCompareCollSeq(pParse, pLhs, pRhs); int j; - assert( pReq!=0 || pRhs->iColumn==XN_ROWID || pParse->nErr ); for(j=0; jaiColumn[j]!=pRhs->iColumn ) continue; assert( pIdx->azColl[j] ); @@ -106872,6 +109570,7 @@ SQLITE_PRIVATE void sqlite3CodeRhsOfIN( sqlite3VdbeChangeP4(v, addr, (void *)pKeyInfo, P4_KEYINFO); } if( addrOnce ){ + sqlite3VdbeAddOp1(v, OP_NullRow, iTab); sqlite3VdbeJumpHere(v, addrOnce); /* Subroutine return */ assert( ExprUseYSub(pExpr) ); @@ -106907,6 +109606,9 @@ SQLITE_PRIVATE int sqlite3CodeSubselect(Parse *pParse, Expr *pExpr){ SelectDest dest; /* How to deal with SELECT result */ int nReg; /* Registers to allocate */ Expr *pLimit; /* New limit expression */ +#ifdef SQLITE_ENABLE_STMT_SCANSTATUS + int addrExplain; /* Address of OP_Explain instruction */ +#endif Vdbe *v = pParse->pVdbe; assert( v!=0 ); @@ -106959,8 +109661,9 @@ SQLITE_PRIVATE int sqlite3CodeSubselect(Parse *pParse, Expr *pExpr){ ** In both cases, the query is augmented with "LIMIT 1". Any ** preexisting limit is discarded in place of the new LIMIT 1. */ - ExplainQueryPlan((pParse, 1, "%sSCALAR SUBQUERY %d", + ExplainQueryPlan2(addrExplain, (pParse, 1, "%sSCALAR SUBQUERY %d", addrOnce?"":"CORRELATED ", pSel->selId)); + sqlite3VdbeScanStatusCounters(v, addrExplain, addrExplain, -1); nReg = pExpr->op==TK_SELECT ? pSel->pEList->nExpr : 1; sqlite3SelectDestInit(&dest, 0, pParse->nMem+1); pParse->nMem += nReg; @@ -106985,7 +109688,7 @@ SQLITE_PRIVATE int sqlite3CodeSubselect(Parse *pParse, Expr *pExpr){ pLimit = sqlite3PExpr(pParse, TK_NE, sqlite3ExprDup(db, pSel->pLimit->pLeft, 0), pLimit); } - sqlite3ExprDelete(db, pSel->pLimit->pLeft); + sqlite3ExprDeferredDelete(pParse, pSel->pLimit->pLeft); pSel->pLimit->pLeft = pLimit; }else{ /* If there is no pre-existing limit add a limit of 1 */ @@ -107003,6 +109706,7 @@ SQLITE_PRIVATE int sqlite3CodeSubselect(Parse *pParse, Expr *pExpr){ if( addrOnce ){ sqlite3VdbeJumpHere(v, addrOnce); } + sqlite3VdbeScanStatusRange(v, addrExplain, addrExplain, -1); /* Subroutine return */ assert( ExprUseYSub(pExpr) ); @@ -107411,6 +110115,7 @@ SQLITE_PRIVATE void sqlite3ExprCodeGeneratedColumn( ){ int iAddr; Vdbe *v = pParse->pVdbe; + int nErr = pParse->nErr; assert( v!=0 ); assert( pParse->iSelfTab!=0 ); if( pParse->iSelfTab>0 ){ @@ -107423,6 +110128,7 @@ SQLITE_PRIVATE void sqlite3ExprCodeGeneratedColumn( sqlite3VdbeAddOp4(v, OP_Affinity, regOut, 1, 0, &pCol->affinity, 1); } if( iAddr ) sqlite3VdbeJumpHere(v, iAddr); + if( pParse->nErr>nErr ) pParse->db->errByteOffset = -1; } #endif /* SQLITE_OMIT_GENERATED_COLUMNS */ @@ -107438,10 +110144,8 @@ SQLITE_PRIVATE void sqlite3ExprCodeGetColumnOfTable( ){ Column *pCol; assert( v!=0 ); - if( pTab==0 ){ - sqlite3VdbeAddOp3(v, OP_Column, iTabCur, iCol, regOut); - return; - } + assert( pTab!=0 ); + assert( iCol!=XN_EXPR ); if( iCol<0 || iCol==pTab->iPKey ){ sqlite3VdbeAddOp2(v, OP_Rowid, iTabCur, regOut); VdbeComment((v, "%s.rowid", pTab->zName)); @@ -107499,7 +110203,7 @@ SQLITE_PRIVATE int sqlite3ExprCodeGetColumn( assert( pParse->pVdbe!=0 ); sqlite3ExprCodeGetColumnOfTable(pParse->pVdbe, pTab, iTable, iColumn, iReg); if( p5 ){ - VdbeOp *pOp = sqlite3VdbeGetOp(pParse->pVdbe,-1); + VdbeOp *pOp = sqlite3VdbeGetLastOp(pParse->pVdbe); if( pOp->opcode==OP_Column ) pOp->p5 = p5; } return iReg; @@ -107568,7 +110272,7 @@ static int exprCodeVector(Parse *pParse, Expr *p, int *piFreeable){ ** so that a subsequent copy will not be merged into this one. */ static void setDoNotMergeFlagOnCopy(Vdbe *v){ - if( sqlite3VdbeGetOp(v, -1)->opcode==OP_Copy ){ + if( sqlite3VdbeGetLastOp(v)->opcode==OP_Copy ){ sqlite3VdbeChangeP5(v, 1); /* Tag trailing OP_Copy as not mergable */ } } @@ -107678,10 +110382,13 @@ static int exprCodeInlineFunction( ** the type affinity of the argument. This is used for testing of ** the SQLite type logic. */ - const char *azAff[] = { "blob", "text", "numeric", "integer", "real" }; + const char *azAff[] = { "blob", "text", "numeric", "integer", + "real", "flexnum" }; char aff; assert( nFarg==1 ); aff = sqlite3ExprAffinity(pFarg->a[0].pExpr); + assert( aff<=SQLITE_AFF_NONE + || (aff>=SQLITE_AFF_BLOB && aff<=SQLITE_AFF_FLEXNUM) ); sqlite3VdbeLoadString(v, target, (aff<=SQLITE_AFF_NONE) ? "none" : azAff[aff-SQLITE_AFF_BLOB]); break; @@ -107691,6 +110398,64 @@ static int exprCodeInlineFunction( return target; } +/* +** Check to see if pExpr is one of the indexed expressions on pParse->pIdxEpr. +** If it is, then resolve the expression by reading from the index and +** return the register into which the value has been read. If pExpr is +** not an indexed expression, then return negative. +*/ +static SQLITE_NOINLINE int sqlite3IndexedExprLookup( + Parse *pParse, /* The parsing context */ + Expr *pExpr, /* The expression to potentially bypass */ + int target /* Where to store the result of the expression */ +){ + IndexedExpr *p; + Vdbe *v; + for(p=pParse->pIdxEpr; p; p=p->pIENext){ + u8 exprAff; + int iDataCur = p->iDataCur; + if( iDataCur<0 ) continue; + if( pParse->iSelfTab ){ + if( p->iDataCur!=pParse->iSelfTab-1 ) continue; + iDataCur = -1; + } + if( sqlite3ExprCompare(0, pExpr, p->pExpr, iDataCur)!=0 ) continue; + assert( p->aff>=SQLITE_AFF_BLOB && p->aff<=SQLITE_AFF_NUMERIC ); + exprAff = sqlite3ExprAffinity(pExpr); + if( (exprAff<=SQLITE_AFF_BLOB && p->aff!=SQLITE_AFF_BLOB) + || (exprAff==SQLITE_AFF_TEXT && p->aff!=SQLITE_AFF_TEXT) + || (exprAff>=SQLITE_AFF_NUMERIC && p->aff!=SQLITE_AFF_NUMERIC) + ){ + /* Affinity mismatch on a generated column */ + continue; + } + + v = pParse->pVdbe; + assert( v!=0 ); + if( p->bMaybeNullRow ){ + /* If the index is on a NULL row due to an outer join, then we + ** cannot extract the value from the index. The value must be + ** computed using the original expression. */ + int addr = sqlite3VdbeCurrentAddr(v); + sqlite3VdbeAddOp3(v, OP_IfNullRow, p->iIdxCur, addr+3, target); + VdbeCoverage(v); + sqlite3VdbeAddOp3(v, OP_Column, p->iIdxCur, p->iIdxCol, target); + VdbeComment((v, "%s expr-column %d", p->zIdxName, p->iIdxCol)); + sqlite3VdbeGoto(v, 0); + p = pParse->pIdxEpr; + pParse->pIdxEpr = 0; + sqlite3ExprCode(pParse, pExpr, target); + pParse->pIdxEpr = p; + sqlite3VdbeJumpHere(v, addr+2); + }else{ + sqlite3VdbeAddOp3(v, OP_Column, p->iIdxCur, p->iIdxCol, target); + VdbeComment((v, "%s expr-column %d", p->zIdxName, p->iIdxCol)); + } + return target; + } + return -1; /* Not found */ +} + /* ** Generate code into the current Vdbe to evaluate the given @@ -107719,6 +110484,11 @@ SQLITE_PRIVATE int sqlite3ExprCodeTarget(Parse *pParse, Expr *pExpr, int target) expr_code_doover: if( pExpr==0 ){ op = TK_NULL; + }else if( pParse->pIdxEpr!=0 + && !ExprHasProperty(pExpr, EP_Leaf) + && (r1 = sqlite3IndexedExprLookup(pParse, pExpr, target))>=0 + ){ + return r1; }else{ assert( !ExprHasVVAProperty(pExpr,EP_Immutable) ); op = pExpr->op; @@ -107728,16 +110498,29 @@ expr_code_doover: AggInfo *pAggInfo = pExpr->pAggInfo; struct AggInfo_col *pCol; assert( pAggInfo!=0 ); - assert( pExpr->iAgg>=0 && pExpr->iAggnColumn ); + assert( pExpr->iAgg>=0 ); + if( pExpr->iAgg>=pAggInfo->nColumn ){ + /* Happens when the left table of a RIGHT JOIN is null and + ** is using an expression index */ + sqlite3VdbeAddOp2(v, OP_Null, 0, target); +#ifdef SQLITE_VDBE_COVERAGE + /* Verify that the OP_Null above is exercised by tests + ** tag-20230325-2 */ + sqlite3VdbeAddOp2(v, OP_NotNull, target, 1); + VdbeCoverageNeverTaken(v); +#endif + break; + } pCol = &pAggInfo->aCol[pExpr->iAgg]; if( !pAggInfo->directMode ){ - assert( pCol->iMem>0 ); - return pCol->iMem; + return AggInfoColumnReg(pAggInfo, pExpr->iAgg); }else if( pAggInfo->useSortingIdx ){ Table *pTab = pCol->pTab; sqlite3VdbeAddOp3(v, OP_Column, pAggInfo->sortingIdxPTab, pCol->iSorterColumn, target); - if( pCol->iColumn<0 ){ + if( pTab==0 ){ + /* No comment added */ + }else if( pCol->iColumn<0 ){ VdbeComment((v,"%s.rowid",pTab->zName)); }else{ VdbeComment((v,"%s.%s", @@ -107747,6 +110530,11 @@ expr_code_doover: } } return target; + }else if( pExpr->y.pTab==0 ){ + /* This case happens when the argument to an aggregate function + ** is rewritten by aggregateConvertIndexedExprRefToColumn() */ + sqlite3VdbeAddOp3(v, OP_Column, pExpr->iTable, pExpr->iColumn, target); + return target; } /* Otherwise, fall thru into the TK_COLUMN case */ /* no break */ deliberate_fall_through @@ -107764,13 +110552,10 @@ expr_code_doover: int aff; iReg = sqlite3ExprCodeTarget(pParse, pExpr->pLeft,target); assert( ExprUseYTab(pExpr) ); - if( pExpr->y.pTab ){ - aff = sqlite3TableColumnAffinity(pExpr->y.pTab, pExpr->iColumn); - }else{ - aff = pExpr->affExpr; - } + assert( pExpr->y.pTab!=0 ); + aff = sqlite3TableColumnAffinity(pExpr->y.pTab, pExpr->iColumn); if( aff>SQLITE_AFF_BLOB ){ - static const char zAff[] = "B\000C\000D\000E"; + static const char zAff[] = "B\000C\000D\000E\000F"; assert( SQLITE_AFF_BLOB=='A' ); assert( SQLITE_AFF_TEXT=='B' ); sqlite3VdbeAddOp4(v, OP_Affinity, iReg, 1, 0, @@ -107830,12 +110615,10 @@ expr_code_doover: } } assert( ExprUseYTab(pExpr) ); + assert( pExpr->y.pTab!=0 ); iReg = sqlite3ExprCodeGetColumn(pParse, pExpr->y.pTab, pExpr->iColumn, iTab, target, pExpr->op2); - if( pExpr->y.pTab==0 && pExpr->affExpr==SQLITE_AFF_REAL ){ - sqlite3VdbeAddOp1(v, OP_RealAffinity, iReg); - } return iReg; } case TK_INTEGER: { @@ -107902,11 +110685,8 @@ expr_code_doover: #ifndef SQLITE_OMIT_CAST case TK_CAST: { /* Expressions of the form: CAST(pLeft AS token) */ - inReg = sqlite3ExprCodeTarget(pParse, pExpr->pLeft, target); - if( inReg!=target ){ - sqlite3VdbeAddOp2(v, OP_SCopy, inReg, target); - inReg = target; - } + sqlite3ExprCode(pParse, pExpr->pLeft, target); + assert( inReg==target ); assert( !ExprHasProperty(pExpr, EP_IntValue) ); sqlite3VdbeAddOp2(v, OP_Cast, target, sqlite3AffinityType(pExpr->u.zToken, 0)); @@ -108049,7 +110829,7 @@ expr_code_doover: assert( !ExprHasProperty(pExpr, EP_IntValue) ); sqlite3ErrorMsg(pParse, "misuse of aggregate: %#T()", pExpr); }else{ - return pInfo->aFunc[pExpr->iAgg].iMem; + return AggInfoFuncReg(pInfo, pExpr->iAgg); } break; } @@ -108238,17 +111018,16 @@ expr_code_doover: return target; } case TK_COLLATE: { - if( !ExprHasProperty(pExpr, EP_Collate) - && ALWAYS(pExpr->pLeft) - && pExpr->pLeft->op==TK_FUNCTION - ){ - inReg = sqlite3ExprCodeTarget(pParse, pExpr->pLeft, target); - if( inReg!=target ){ - sqlite3VdbeAddOp2(v, OP_SCopy, inReg, target); - inReg = target; - } - sqlite3VdbeAddOp1(v, OP_ClrSubtype, inReg); - return inReg; + if( !ExprHasProperty(pExpr, EP_Collate) ){ + /* A TK_COLLATE Expr node without the EP_Collate tag is a so-called + ** "SOFT-COLLATE" that is added to constraints that are pushed down + ** from outer queries into sub-queries by the push-down optimization. + ** Clear subtypes as subtypes may not cross a subquery boundary. + */ + assert( pExpr->pLeft ); + sqlite3ExprCode(pParse, pExpr->pLeft, target); + sqlite3VdbeAddOp1(v, OP_ClrSubtype, target); + return target; }else{ pExpr = pExpr->pLeft; goto expr_code_doover; /* 2018-04-28: Prevent deep recursion. */ @@ -108334,16 +111113,34 @@ expr_code_doover: case TK_IF_NULL_ROW: { int addrINR; u8 okConstFactor = pParse->okConstFactor; - addrINR = sqlite3VdbeAddOp1(v, OP_IfNullRow, pExpr->iTable); - /* Temporarily disable factoring of constant expressions, since - ** even though expressions may appear to be constant, they are not - ** really constant because they originate from the right-hand side - ** of a LEFT JOIN. */ - pParse->okConstFactor = 0; - inReg = sqlite3ExprCodeTarget(pParse, pExpr->pLeft, target); + AggInfo *pAggInfo = pExpr->pAggInfo; + if( pAggInfo ){ + assert( pExpr->iAgg>=0 && pExpr->iAggnColumn ); + if( !pAggInfo->directMode ){ + inReg = AggInfoColumnReg(pAggInfo, pExpr->iAgg); + break; + } + if( pExpr->pAggInfo->useSortingIdx ){ + sqlite3VdbeAddOp3(v, OP_Column, pAggInfo->sortingIdxPTab, + pAggInfo->aCol[pExpr->iAgg].iSorterColumn, + target); + inReg = target; + break; + } + } + addrINR = sqlite3VdbeAddOp3(v, OP_IfNullRow, pExpr->iTable, 0, target); + /* The OP_IfNullRow opcode above can overwrite the result register with + ** NULL. So we have to ensure that the result register is not a value + ** that is suppose to be a constant. Two defenses are needed: + ** (1) Temporarily disable factoring of constant expressions + ** (2) Make sure the computed value really is stored in register + ** "target" and not someplace else. + */ + pParse->okConstFactor = 0; /* note (1) above */ + sqlite3ExprCode(pParse, pExpr->pLeft, target); + assert( target==inReg ); pParse->okConstFactor = okConstFactor; sqlite3VdbeJumpHere(v, addrINR); - sqlite3VdbeChangeP3(v, addrINR, inReg); break; } @@ -108580,7 +111377,9 @@ SQLITE_PRIVATE void sqlite3ExprCode(Parse *pParse, Expr *pExpr, int target){ inReg = sqlite3ExprCodeTarget(pParse, pExpr, target); if( inReg!=target ){ u8 op; - if( ALWAYS(pExpr) && ExprHasProperty(pExpr,EP_Subquery) ){ + if( ALWAYS(pExpr) + && (ExprHasProperty(pExpr,EP_Subquery) || pExpr->op==TK_REGISTER) + ){ op = OP_Copy; }else{ op = OP_SCopy; @@ -108675,7 +111474,7 @@ SQLITE_PRIVATE int sqlite3ExprCodeExprList( if( inReg!=target+i ){ VdbeOp *pOp; if( copyOp==OP_Copy - && (pOp=sqlite3VdbeGetOp(v, -1))->opcode==OP_Copy + && (pOp=sqlite3VdbeGetLastOp(v))->opcode==OP_Copy && pOp->p1+pOp->p3+1==inReg && pOp->p2+pOp->p3+1==target+i && pOp->p5==0 /* The do-not-merge flag must be clear */ @@ -108874,6 +111673,7 @@ SQLITE_PRIVATE void sqlite3ExprIfTrue(Parse *pParse, Expr *pExpr, int dest, int assert( TK_ISNULL==OP_IsNull ); testcase( op==TK_ISNULL ); assert( TK_NOTNULL==OP_NotNull ); testcase( op==TK_NOTNULL ); r1 = sqlite3ExprCodeTemp(pParse, pExpr->pLeft, ®Free1); + sqlite3VdbeTypeofColumn(v, r1); sqlite3VdbeAddOp2(v, op, r1, dest); VdbeCoverageIf(v, op==TK_ISNULL); VdbeCoverageIf(v, op==TK_NOTNULL); @@ -109048,6 +111848,7 @@ SQLITE_PRIVATE void sqlite3ExprIfFalse(Parse *pParse, Expr *pExpr, int dest, int case TK_ISNULL: case TK_NOTNULL: { r1 = sqlite3ExprCodeTemp(pParse, pExpr->pLeft, ®Free1); + sqlite3VdbeTypeofColumn(v, r1); sqlite3VdbeAddOp2(v, op, r1, dest); testcase( op==TK_ISNULL ); VdbeCoverageIf(v, op==TK_ISNULL); testcase( op==TK_NOTNULL ); VdbeCoverageIf(v, op==TK_NOTNULL); @@ -109201,7 +112002,13 @@ SQLITE_PRIVATE int sqlite3ExprCompare( if( pB->op==TK_COLLATE && sqlite3ExprCompare(pParse, pA,pB->pLeft,iTab)<2 ){ return 1; } - return 2; + if( pA->op==TK_AGG_COLUMN && pB->op==TK_COLUMN + && pB->iTable<0 && pA->iTable==iTab + ){ + /* fall through */ + }else{ + return 2; + } } assert( !ExprHasProperty(pA, EP_IntValue) ); assert( !ExprHasProperty(pB, EP_IntValue) ); @@ -109503,10 +112310,10 @@ static int impliesNotNullRow(Walker *pWalker, Expr *pExpr){ assert( pLeft->op!=TK_COLUMN || ExprUseYTab(pLeft) ); assert( pRight->op!=TK_COLUMN || ExprUseYTab(pRight) ); if( (pLeft->op==TK_COLUMN - && pLeft->y.pTab!=0 + && ALWAYS(pLeft->y.pTab!=0) && IsVirtual(pLeft->y.pTab)) || (pRight->op==TK_COLUMN - && pRight->y.pTab!=0 + && ALWAYS(pRight->y.pTab!=0) && IsVirtual(pRight->y.pTab)) ){ return WRC_Prune; @@ -109711,6 +112518,7 @@ static int exprRefToSrcList(Walker *pWalker, Expr *pExpr){ SQLITE_PRIVATE int sqlite3ReferencesSrcList(Parse *pParse, Expr *pExpr, SrcList *pSrcList){ Walker w; struct RefSrcList x; + assert( pParse->db!=0 ); memset(&w, 0, sizeof(w)); memset(&x, 0, sizeof(x)); w.xExprCallback = exprRefToSrcList; @@ -109727,7 +112535,7 @@ SQLITE_PRIVATE int sqlite3ReferencesSrcList(Parse *pParse, Expr *pExpr, SrcList sqlite3WalkExpr(&w, pExpr->y.pWin->pFilter); } #endif - sqlite3DbFree(pParse->db, x.aiExclude); + if( x.aiExclude ) sqlite3DbNNFreeNN(pParse->db, x.aiExclude); if( w.eCode & 0x01 ){ return 1; }else if( w.eCode ){ @@ -109745,10 +112553,8 @@ SQLITE_PRIVATE int sqlite3ReferencesSrcList(Parse *pParse, Expr *pExpr, SrcList ** it does, make a copy. This is done because the pExpr argument is ** subject to change. ** -** The copy is stored on pParse->pConstExpr with a register number of 0. -** This will cause the expression to be deleted automatically when the -** Parse object is destroyed, but the zero register number means that it -** will not generate any code in the preamble. +** The copy is scheduled for deletion using the sqlite3ExprDeferredDelete() +** which builds on the sqlite3ParserAddCleanup() mechanism. */ static int agginfoPersistExprCb(Walker *pWalker, Expr *pExpr){ if( ALWAYS(!ExprHasProperty(pExpr, EP_TokenOnly|EP_Reduced)) @@ -109758,10 +112564,11 @@ static int agginfoPersistExprCb(Walker *pWalker, Expr *pExpr){ int iAgg = pExpr->iAgg; Parse *pParse = pWalker->pParse; sqlite3 *db = pParse->db; - assert( pExpr->op==TK_AGG_COLUMN || pExpr->op==TK_AGG_FUNCTION ); - if( pExpr->op==TK_AGG_COLUMN ){ - assert( iAgg>=0 && iAggnColumn ); - if( pAggInfo->aCol[iAgg].pCExpr==pExpr ){ + assert( iAgg>=0 ); + if( pExpr->op!=TK_AGG_FUNCTION ){ + if( iAggnColumn + && pAggInfo->aCol[iAgg].pCExpr==pExpr + ){ pExpr = sqlite3ExprDup(db, pExpr, 0); if( pExpr ){ pAggInfo->aCol[iAgg].pCExpr = pExpr; @@ -109769,8 +112576,10 @@ static int agginfoPersistExprCb(Walker *pWalker, Expr *pExpr){ } } }else{ - assert( iAgg>=0 && iAggnFunc ); - if( pAggInfo->aFunc[iAgg].pFExpr==pExpr ){ + assert( pExpr->op==TK_AGG_FUNCTION ); + if( ALWAYS(iAggnFunc) + && pAggInfo->aFunc[iAgg].pFExpr==pExpr + ){ pExpr = sqlite3ExprDup(db, pExpr, 0); if( pExpr ){ pAggInfo->aFunc[iAgg].pFExpr = pExpr; @@ -109825,6 +112634,73 @@ static int addAggInfoFunc(sqlite3 *db, AggInfo *pInfo){ return i; } +/* +** Search the AggInfo object for an aCol[] entry that has iTable and iColumn. +** Return the index in aCol[] of the entry that describes that column. +** +** If no prior entry is found, create a new one and return -1. The +** new column will have an idex of pAggInfo->nColumn-1. +*/ +static void findOrCreateAggInfoColumn( + Parse *pParse, /* Parsing context */ + AggInfo *pAggInfo, /* The AggInfo object to search and/or modify */ + Expr *pExpr /* Expr describing the column to find or insert */ +){ + struct AggInfo_col *pCol; + int k; + + assert( pAggInfo->iFirstReg==0 ); + pCol = pAggInfo->aCol; + for(k=0; knColumn; k++, pCol++){ + if( pCol->iTable==pExpr->iTable + && pCol->iColumn==pExpr->iColumn + && pExpr->op!=TK_IF_NULL_ROW + ){ + goto fix_up_expr; + } + } + k = addAggInfoColumn(pParse->db, pAggInfo); + if( k<0 ){ + /* OOM on resize */ + assert( pParse->db->mallocFailed ); + return; + } + pCol = &pAggInfo->aCol[k]; + assert( ExprUseYTab(pExpr) ); + pCol->pTab = pExpr->y.pTab; + pCol->iTable = pExpr->iTable; + pCol->iColumn = pExpr->iColumn; + pCol->iSorterColumn = -1; + pCol->pCExpr = pExpr; + if( pAggInfo->pGroupBy && pExpr->op!=TK_IF_NULL_ROW ){ + int j, n; + ExprList *pGB = pAggInfo->pGroupBy; + struct ExprList_item *pTerm = pGB->a; + n = pGB->nExpr; + for(j=0; jpExpr; + if( pE->op==TK_COLUMN + && pE->iTable==pExpr->iTable + && pE->iColumn==pExpr->iColumn + ){ + pCol->iSorterColumn = j; + break; + } + } + } + if( pCol->iSorterColumn<0 ){ + pCol->iSorterColumn = pAggInfo->nSortingColumn++; + } +fix_up_expr: + ExprSetVVAProperty(pExpr, EP_NoReduce); + assert( pExpr->pAggInfo==0 || pExpr->pAggInfo==pAggInfo ); + pExpr->pAggInfo = pAggInfo; + if( pExpr->op==TK_COLUMN ){ + pExpr->op = TK_AGG_COLUMN; + } + pExpr->iAgg = (i16)k; +} + /* ** This is the xExprCallback for a tree walker. It is used to ** implement sqlite3ExprAnalyzeAggregates(). See sqlite3ExprAnalyzeAggregates @@ -109838,76 +112714,64 @@ static int analyzeAggregate(Walker *pWalker, Expr *pExpr){ AggInfo *pAggInfo = pNC->uNC.pAggInfo; assert( pNC->ncFlags & NC_UAggInfo ); + assert( pAggInfo->iFirstReg==0 ); switch( pExpr->op ){ + default: { + IndexedExpr *pIEpr; + Expr tmp; + assert( pParse->iSelfTab==0 ); + if( (pNC->ncFlags & NC_InAggFunc)==0 ) break; + if( pParse->pIdxEpr==0 ) break; + for(pIEpr=pParse->pIdxEpr; pIEpr; pIEpr=pIEpr->pIENext){ + int iDataCur = pIEpr->iDataCur; + if( iDataCur<0 ) continue; + if( sqlite3ExprCompare(0, pExpr, pIEpr->pExpr, iDataCur)==0 ) break; + } + if( pIEpr==0 ) break; + if( NEVER(!ExprUseYTab(pExpr)) ) break; + for(i=0; inSrc; i++){ + if( pSrcList->a[0].iCursor==pIEpr->iDataCur ) break; + } + if( i>=pSrcList->nSrc ) break; + if( NEVER(pExpr->pAggInfo!=0) ) break; /* Resolved by outer context */ + if( pParse->nErr ){ return WRC_Abort; } + + /* If we reach this point, it means that expression pExpr can be + ** translated into a reference to an index column as described by + ** pIEpr. + */ + memset(&tmp, 0, sizeof(tmp)); + tmp.op = TK_AGG_COLUMN; + tmp.iTable = pIEpr->iIdxCur; + tmp.iColumn = pIEpr->iIdxCol; + findOrCreateAggInfoColumn(pParse, pAggInfo, &tmp); + if( pParse->nErr ){ return WRC_Abort; } + assert( pAggInfo->aCol!=0 ); + assert( tmp.iAggnColumn ); + pAggInfo->aCol[tmp.iAgg].pCExpr = pExpr; + pExpr->pAggInfo = pAggInfo; + pExpr->iAgg = tmp.iAgg; + return WRC_Prune; + } + case TK_IF_NULL_ROW: case TK_AGG_COLUMN: case TK_COLUMN: { testcase( pExpr->op==TK_AGG_COLUMN ); testcase( pExpr->op==TK_COLUMN ); + testcase( pExpr->op==TK_IF_NULL_ROW ); /* Check to see if the column is in one of the tables in the FROM ** clause of the aggregate query */ if( ALWAYS(pSrcList!=0) ){ SrcItem *pItem = pSrcList->a; for(i=0; inSrc; i++, pItem++){ - struct AggInfo_col *pCol; assert( !ExprHasProperty(pExpr, EP_TokenOnly|EP_Reduced) ); if( pExpr->iTable==pItem->iCursor ){ - /* If we reach this point, it means that pExpr refers to a table - ** that is in the FROM clause of the aggregate query. - ** - ** Make an entry for the column in pAggInfo->aCol[] if there - ** is not an entry there already. - */ - int k; - pCol = pAggInfo->aCol; - for(k=0; knColumn; k++, pCol++){ - if( pCol->iTable==pExpr->iTable && - pCol->iColumn==pExpr->iColumn ){ - break; - } - } - if( (k>=pAggInfo->nColumn) - && (k = addAggInfoColumn(pParse->db, pAggInfo))>=0 - ){ - pCol = &pAggInfo->aCol[k]; - assert( ExprUseYTab(pExpr) ); - pCol->pTab = pExpr->y.pTab; - pCol->iTable = pExpr->iTable; - pCol->iColumn = pExpr->iColumn; - pCol->iMem = ++pParse->nMem; - pCol->iSorterColumn = -1; - pCol->pCExpr = pExpr; - if( pAggInfo->pGroupBy ){ - int j, n; - ExprList *pGB = pAggInfo->pGroupBy; - struct ExprList_item *pTerm = pGB->a; - n = pGB->nExpr; - for(j=0; jpExpr; - if( pE->op==TK_COLUMN && pE->iTable==pExpr->iTable && - pE->iColumn==pExpr->iColumn ){ - pCol->iSorterColumn = j; - break; - } - } - } - if( pCol->iSorterColumn<0 ){ - pCol->iSorterColumn = pAggInfo->nSortingColumn++; - } - } - /* There is now an entry for pExpr in pAggInfo->aCol[] (either - ** because it was there before or because we just created it). - ** Convert the pExpr to be a TK_AGG_COLUMN referring to that - ** pAggInfo->aCol[] entry. - */ - ExprSetVVAProperty(pExpr, EP_NoReduce); - pExpr->pAggInfo = pAggInfo; - pExpr->op = TK_AGG_COLUMN; - pExpr->iAgg = (i16)k; + findOrCreateAggInfoColumn(pParse, pAggInfo, pExpr); break; } /* endif pExpr->iTable==pItem->iCursor */ } /* end loop over pSrcList */ } - return WRC_Prune; + return WRC_Continue; } case TK_AGG_FUNCTION: { if( (pNC->ncFlags & NC_InAggFunc)==0 @@ -109932,7 +112796,6 @@ static int analyzeAggregate(Walker *pWalker, Expr *pExpr){ assert( !ExprHasProperty(pExpr, EP_xIsSelect) ); pItem = &pAggInfo->aFunc[i]; pItem->pFExpr = pExpr; - pItem->iMem = ++pParse->nMem; assert( ExprUseUToken(pExpr) ); pItem->pFunc = sqlite3FindFunction(pParse->db, pExpr->u.zToken, @@ -110061,6 +112924,37 @@ SQLITE_PRIVATE void sqlite3ClearTempRegCache(Parse *pParse){ pParse->nRangeReg = 0; } +/* +** Make sure sufficient registers have been allocated so that +** iReg is a valid register number. +*/ +SQLITE_PRIVATE void sqlite3TouchRegister(Parse *pParse, int iReg){ + if( pParse->nMemnMem = iReg; +} + +#if defined(SQLITE_ENABLE_STAT4) || defined(SQLITE_DEBUG) +/* +** Return the latest reusable register in the set of all registers. +** The value returned is no less than iMin. If any register iMin or +** greater is in permanent use, then return one more than that last +** permanent register. +*/ +SQLITE_PRIVATE int sqlite3FirstAvailableRegister(Parse *pParse, int iMin){ + const ExprList *pList = pParse->pConstExpr; + if( pList ){ + int i; + for(i=0; inExpr; i++){ + if( pList->a[i].u.iConstExprReg>=iMin ){ + iMin = pList->a[i].u.iConstExprReg + 1; + } + } + } + pParse->nTempReg = 0; + pParse->nRangeReg = 0; + return iMin; +} +#endif /* SQLITE_ENABLE_STAT4 || SQLITE_DEBUG */ + /* ** Validate that no temporary register falls within the range of ** iFirst..iLast, inclusive. This routine is only call from within assert() @@ -110080,6 +112974,14 @@ SQLITE_PRIVATE int sqlite3NoTempsInRange(Parse *pParse, int iFirst, int iLast){ return 0; } } + if( pParse->pConstExpr ){ + ExprList *pList = pParse->pConstExpr; + for(i=0; inExpr; i++){ + int iReg = pList->a[i].u.iConstExprReg; + if( iReg==0 ) continue; + if( iReg>=iFirst && iReg<=iLast ) return 0; + } + } return 1; } #endif /* SQLITE_DEBUG */ @@ -110829,13 +113731,14 @@ static void renameTokenCheckAll(Parse *pParse, const void *pPtr){ assert( pParse->db->mallocFailed==0 || pParse->nErr!=0 ); if( pParse->nErr==0 ){ const RenameToken *p; - u8 i = 0; + u32 i = 1; for(p=pParse->pRename; p; p=p->pNext){ if( p->p ){ assert( p->p!=pPtr ); - i += *(u8*)(p->p); + i += *(u8*)(p->p) | 1; } } + assert( i>0 ); } } #else @@ -111366,6 +114269,19 @@ static int renameEditSql( return rc; } +/* +** Set all pEList->a[].fg.eEName fields in the expression-list to val. +*/ +static void renameSetENames(ExprList *pEList, int val){ + if( pEList ){ + int i; + for(i=0; inExpr; i++){ + assert( val==ENAME_NAME || pEList->a[i].fg.eEName==ENAME_NAME ); + pEList->a[i].fg.eEName = val; + } + } +} + /* ** Resolve all symbols in the trigger at pParse->pNewTrigger, assuming ** it was read from the schema of database zDb. Return SQLITE_OK if @@ -111413,7 +114329,17 @@ static int renameResolveTrigger(Parse *pParse){ pSrc = 0; rc = SQLITE_NOMEM; }else{ + /* pStep->pExprList contains an expression-list used for an UPDATE + ** statement. So the a[].zEName values are the RHS of the + ** " = " clauses of the UPDATE statement. So, before + ** running SelectPrep(), change all the eEName values in + ** pStep->pExprList to ENAME_SPAN (from their current value of + ** ENAME_NAME). This is to prevent any ids in ON() clauses that are + ** part of pSrc from being incorrectly resolved against the + ** a[].zEName values as if they were column aliases. */ + renameSetENames(pStep->pExprList, ENAME_SPAN); sqlite3SelectPrep(pParse, pSel, 0); + renameSetENames(pStep->pExprList, ENAME_NAME); rc = pParse->nErr ? SQLITE_ERROR : SQLITE_OK; assert( pStep->pExprList==0 || pStep->pExprList==pSel->pEList ); assert( pSrc==pSel->pSrc ); @@ -113321,6 +116247,7 @@ static void analyzeVdbeCommentIndexWithColumnName( if( NEVER(i==XN_ROWID) ){ VdbeComment((v,"%s.rowid",pIdx->zName)); }else if( i==XN_EXPR ){ + assert( pIdx->bHasExpr ); VdbeComment((v,"%s.expr(%d)",pIdx->zName, k)); }else{ VdbeComment((v,"%s.%s", pIdx->zName, pIdx->pTable->aCol[i].zCnName)); @@ -113361,11 +116288,15 @@ static void analyzeOneTable( int regIdxname = iMem++; /* Register containing index name */ int regStat1 = iMem++; /* Value for the stat column of sqlite_stat1 */ int regPrev = iMem; /* MUST BE LAST (see below) */ +#ifdef SQLITE_ENABLE_STAT4 + int doOnce = 1; /* Flag for a one-time computation */ +#endif #ifdef SQLITE_ENABLE_PREUPDATE_HOOK Table *pStat1 = 0; #endif - pParse->nMem = MAX(pParse->nMem, iMem); + sqlite3TouchRegister(pParse, iMem); + assert( sqlite3NoTempsInRange(pParse, regNewRowid, iMem) ); v = sqlite3GetVdbe(pParse); if( v==0 || NEVER(pTab==0) ){ return; @@ -113471,7 +116402,7 @@ static void analyzeOneTable( ** the regPrev array and a trailing rowid (the rowid slot is required ** when building a record to insert into the sample column of ** the sqlite_stat4 table. */ - pParse->nMem = MAX(pParse->nMem, regPrev+nColTest); + sqlite3TouchRegister(pParse, regPrev+nColTest); /* Open a read-only cursor on the index being analyzed. */ assert( iDb==sqlite3SchemaToIndex(db, pIdx->pSchema) ); @@ -113643,7 +116574,35 @@ static void analyzeOneTable( int addrIsNull; u8 seekOp = HasRowid(pTab) ? OP_NotExists : OP_NotFound; - pParse->nMem = MAX(pParse->nMem, regCol+nCol); + if( doOnce ){ + int mxCol = nCol; + Index *pX; + + /* Compute the maximum number of columns in any index */ + for(pX=pTab->pIndex; pX; pX=pX->pNext){ + int nColX; /* Number of columns in pX */ + if( !HasRowid(pTab) && IsPrimaryKeyIndex(pX) ){ + nColX = pX->nKeyCol; + }else{ + nColX = pX->nColumn; + } + if( nColX>mxCol ) mxCol = nColX; + } + + /* Allocate space to compute results for the largest index */ + sqlite3TouchRegister(pParse, regCol+mxCol); + doOnce = 0; +#ifdef SQLITE_DEBUG + /* Verify that the call to sqlite3ClearTempRegCache() below + ** really is needed. + ** https://sqlite.org/forum/forumpost/83cb4a95a0 (2023-03-25) + */ + testcase( !sqlite3NoTempsInRange(pParse, regEq, regCol+mxCol) ); +#endif + sqlite3ClearTempRegCache(pParse); /* tag-20230325-1 */ + assert( sqlite3NoTempsInRange(pParse, regEq, regCol+mxCol) ); + } + assert( sqlite3NoTempsInRange(pParse, regEq, regCol+nCol) ); addrNext = sqlite3VdbeCurrentAddr(v); callStatGet(pParse, regStat, STAT_GET_ROWID, regSampleRowid); @@ -113724,6 +116683,11 @@ static void analyzeDatabase(Parse *pParse, int iDb){ for(k=sqliteHashFirst(&pSchema->tblHash); k; k=sqliteHashNext(k)){ Table *pTab = (Table*)sqliteHashData(k); analyzeOneTable(pParse, pTab, 0, iStatCur, iMem, iTab); +#ifdef SQLITE_ENABLE_STAT4 + iMem = sqlite3FirstAvailableRegister(pParse, iMem); +#else + assert( iMem==sqlite3FirstAvailableRegister(pParse,iMem) ); +#endif } loadAnalysis(pParse, iDb); } @@ -113964,6 +116928,8 @@ static int analysisLoader(void *pData, int argc, char **argv, char **NotUsed){ ** and its contents. */ SQLITE_PRIVATE void sqlite3DeleteIndexSamples(sqlite3 *db, Index *pIdx){ + assert( db!=0 ); + assert( pIdx!=0 ); #ifdef SQLITE_ENABLE_STAT4 if( pIdx->aSample ){ int j; @@ -113973,7 +116939,7 @@ SQLITE_PRIVATE void sqlite3DeleteIndexSamples(sqlite3 *db, Index *pIdx){ } sqlite3DbFree(db, pIdx->aSample); } - if( db && db->pnBytesFreed==0 ){ + if( db->pnBytesFreed==0 ){ pIdx->nSample = 0; pIdx->aSample = 0; } @@ -114109,6 +117075,10 @@ static int loadStatTbl( pIdx = findIndexOrPrimaryKey(db, zIndex, zDb); assert( pIdx==0 || pIdx->nSample==0 ); if( pIdx==0 ) continue; + if( pIdx->aSample!=0 ){ + /* The same index appears in sqlite_stat4 under multiple names */ + continue; + } assert( !HasRowid(pIdx->pTable) || pIdx->nColumn==pIdx->nKeyCol+1 ); if( !HasRowid(pIdx->pTable) && IsPrimaryKeyIndex(pIdx) ){ nIdxCol = pIdx->nKeyCol; @@ -114116,6 +117086,7 @@ static int loadStatTbl( nIdxCol = pIdx->nColumn; } pIdx->nSampleCol = nIdxCol; + pIdx->mxSample = nSample; nByte = sizeof(IndexSample) * nSample; nByte += sizeof(tRowcnt) * nIdxCol * 3 * nSample; nByte += nIdxCol * sizeof(tRowcnt); /* Space for Index.aAvgEq[] */ @@ -114155,6 +117126,11 @@ static int loadStatTbl( if( zIndex==0 ) continue; pIdx = findIndexOrPrimaryKey(db, zIndex, zDb); if( pIdx==0 ) continue; + if( pIdx->nSample>=pIdx->mxSample ){ + /* Too many slots used because the same index appears in + ** sqlite_stat4 using multiple names */ + continue; + } /* This next condition is true if data has already been loaded from ** the sqlite_stat4 table. */ nCol = pIdx->nSampleCol; @@ -114198,11 +117174,12 @@ static int loadStat4(sqlite3 *db, const char *zDb){ const Table *pStat4; assert( db->lookaside.bDisable ); - if( (pStat4 = sqlite3FindTable(db, "sqlite_stat4", zDb))!=0 + if( OptimizationEnabled(db, SQLITE_Stat4) + && (pStat4 = sqlite3FindTable(db, "sqlite_stat4", zDb))!=0 && IsOrdinaryTable(pStat4) ){ rc = loadStatTbl(db, - "SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx", + "SELECT idx,count(*) FROM %Q.sqlite_stat4 GROUP BY idx COLLATE nocase", "SELECT idx,neq,nlt,ndlt,sample FROM %Q.sqlite_stat4", zDb ); @@ -114392,7 +117369,7 @@ static void attachFunc( char *zErr = 0; unsigned int flags; Db *aNew; /* New array of Db pointers */ - Db *pNew; /* Db object for the newly attached database */ + Db *pNew = 0; /* Db object for the newly attached database */ char *zErrDyn = 0; sqlite3_vfs *pVfs; @@ -114412,13 +117389,26 @@ static void attachFunc( /* This is not a real ATTACH. Instead, this routine is being called ** from sqlite3_deserialize() to close database db->init.iDb and ** reopen it as a MemDB */ + Btree *pNewBt = 0; pVfs = sqlite3_vfs_find("memdb"); if( pVfs==0 ) return; - pNew = &db->aDb[db->init.iDb]; - if( pNew->pBt ) sqlite3BtreeClose(pNew->pBt); - pNew->pBt = 0; - pNew->pSchema = 0; - rc = sqlite3BtreeOpen(pVfs, "x\0", db, &pNew->pBt, 0, SQLITE_OPEN_MAIN_DB); + rc = sqlite3BtreeOpen(pVfs, "x\0", db, &pNewBt, 0, SQLITE_OPEN_MAIN_DB); + if( rc==SQLITE_OK ){ + Schema *pNewSchema = sqlite3SchemaGet(db, pNewBt); + if( pNewSchema ){ + /* Both the Btree and the new Schema were allocated successfully. + ** Close the old db and update the aDb[] slot with the new memdb + ** values. */ + pNew = &db->aDb[db->init.iDb]; + if( ALWAYS(pNew->pBt) ) sqlite3BtreeClose(pNew->pBt); + pNew->pBt = pNewBt; + pNew->pSchema = pNewSchema; + }else{ + sqlite3BtreeClose(pNewBt); + rc = SQLITE_NOMEM; + } + } + if( rc ) goto attach_error; }else{ /* This is a real ATTACH ** @@ -114531,7 +117521,7 @@ static void attachFunc( } #endif if( rc ){ - if( !REOPEN_AS_MEMDB(db) ){ + if( ALWAYS(!REOPEN_AS_MEMDB(db)) ){ int iDb = db->nDb - 1; assert( iDb>=2 ); if( db->aDb[iDb].pBt ){ @@ -114648,6 +117638,8 @@ static void codeAttach( sqlite3* db = pParse->db; int regArgs; + if( SQLITE_OK!=sqlite3ReadSchema(pParse) ) goto attach_end; + if( pParse->nErr ) goto attach_end; memset(&sName, 0, sizeof(NameContext)); sName.pParse = pParse; @@ -115323,6 +118315,7 @@ SQLITE_PRIVATE int sqlite3DbMaskAllZero(yDbMask m){ SQLITE_PRIVATE void sqlite3FinishCoding(Parse *pParse){ sqlite3 *db; Vdbe *v; + int iDb, i; assert( pParse->pToplevel==0 ); db = pParse->db; @@ -115352,7 +118345,6 @@ SQLITE_PRIVATE void sqlite3FinishCoding(Parse *pParse){ if( pParse->bReturning ){ Returning *pReturning = pParse->u1.pReturning; int addrRewind; - int i; int reg; if( pReturning->nRetCol ){ @@ -115389,76 +118381,69 @@ SQLITE_PRIVATE void sqlite3FinishCoding(Parse *pParse){ ** transaction on each used database and to verify the schema cookie ** on each used database. */ - if( db->mallocFailed==0 - && (DbMaskNonZero(pParse->cookieMask) || pParse->pConstExpr) - ){ - int iDb, i; - assert( sqlite3VdbeGetOp(v, 0)->opcode==OP_Init ); - sqlite3VdbeJumpHere(v, 0); - assert( db->nDb>0 ); - iDb = 0; - do{ - Schema *pSchema; - if( DbMaskTest(pParse->cookieMask, iDb)==0 ) continue; - sqlite3VdbeUsesBtree(v, iDb); - pSchema = db->aDb[iDb].pSchema; - sqlite3VdbeAddOp4Int(v, - OP_Transaction, /* Opcode */ - iDb, /* P1 */ - DbMaskTest(pParse->writeMask,iDb), /* P2 */ - pSchema->schema_cookie, /* P3 */ - pSchema->iGeneration /* P4 */ - ); - if( db->init.busy==0 ) sqlite3VdbeChangeP5(v, 1); - VdbeComment((v, - "usesStmtJournal=%d", pParse->mayAbort && pParse->isMultiWrite)); - }while( ++iDbnDb ); + assert( pParse->nErr>0 || sqlite3VdbeGetOp(v, 0)->opcode==OP_Init ); + sqlite3VdbeJumpHere(v, 0); + assert( db->nDb>0 ); + iDb = 0; + do{ + Schema *pSchema; + if( DbMaskTest(pParse->cookieMask, iDb)==0 ) continue; + sqlite3VdbeUsesBtree(v, iDb); + pSchema = db->aDb[iDb].pSchema; + sqlite3VdbeAddOp4Int(v, + OP_Transaction, /* Opcode */ + iDb, /* P1 */ + DbMaskTest(pParse->writeMask,iDb), /* P2 */ + pSchema->schema_cookie, /* P3 */ + pSchema->iGeneration /* P4 */ + ); + if( db->init.busy==0 ) sqlite3VdbeChangeP5(v, 1); + VdbeComment((v, + "usesStmtJournal=%d", pParse->mayAbort && pParse->isMultiWrite)); + }while( ++iDbnDb ); #ifndef SQLITE_OMIT_VIRTUALTABLE - for(i=0; inVtabLock; i++){ - char *vtab = (char *)sqlite3GetVTable(db, pParse->apVtabLock[i]); - sqlite3VdbeAddOp4(v, OP_VBegin, 0, 0, 0, vtab, P4_VTAB); - } - pParse->nVtabLock = 0; + for(i=0; inVtabLock; i++){ + char *vtab = (char *)sqlite3GetVTable(db, pParse->apVtabLock[i]); + sqlite3VdbeAddOp4(v, OP_VBegin, 0, 0, 0, vtab, P4_VTAB); + } + pParse->nVtabLock = 0; #endif - /* Once all the cookies have been verified and transactions opened, - ** obtain the required table-locks. This is a no-op unless the - ** shared-cache feature is enabled. - */ - codeTableLocks(pParse); + /* Once all the cookies have been verified and transactions opened, + ** obtain the required table-locks. This is a no-op unless the + ** shared-cache feature is enabled. + */ + codeTableLocks(pParse); - /* Initialize any AUTOINCREMENT data structures required. - */ - sqlite3AutoincrementBegin(pParse); + /* Initialize any AUTOINCREMENT data structures required. + */ + sqlite3AutoincrementBegin(pParse); - /* Code constant expressions that where factored out of inner loops. - ** - ** The pConstExpr list might also contain expressions that we simply - ** want to keep around until the Parse object is deleted. Such - ** expressions have iConstExprReg==0. Do not generate code for - ** those expressions, of course. - */ - if( pParse->pConstExpr ){ - ExprList *pEL = pParse->pConstExpr; - pParse->okConstFactor = 0; - for(i=0; inExpr; i++){ - int iReg = pEL->a[i].u.iConstExprReg; - if( iReg>0 ){ - sqlite3ExprCode(pParse, pEL->a[i].pExpr, iReg); - } - } + /* Code constant expressions that where factored out of inner loops. + ** + ** The pConstExpr list might also contain expressions that we simply + ** want to keep around until the Parse object is deleted. Such + ** expressions have iConstExprReg==0. Do not generate code for + ** those expressions, of course. + */ + if( pParse->pConstExpr ){ + ExprList *pEL = pParse->pConstExpr; + pParse->okConstFactor = 0; + for(i=0; inExpr; i++){ + int iReg = pEL->a[i].u.iConstExprReg; + sqlite3ExprCode(pParse, pEL->a[i].pExpr, iReg); } - - if( pParse->bReturning ){ - Returning *pRet = pParse->u1.pReturning; - if( pRet->nRetCol ){ - sqlite3VdbeAddOp2(v, OP_OpenEphemeral, pRet->iRetCur, pRet->nRetCol); - } - } - - /* Finally, jump back to the beginning of the executable code. */ - sqlite3VdbeGoto(v, 1); } + + if( pParse->bReturning ){ + Returning *pRet = pParse->u1.pReturning; + if( pRet->nRetCol ){ + sqlite3VdbeAddOp2(v, OP_OpenEphemeral, pRet->iRetCur, pRet->nRetCol); + } + } + + /* Finally, jump back to the beginning of the executable code. */ + sqlite3VdbeGoto(v, 1); } /* Get the VDBE program ready for execution @@ -115497,6 +118482,7 @@ SQLITE_PRIVATE void sqlite3NestedParse(Parse *pParse, const char *zFormat, ...){ char saveBuf[PARSE_TAIL_SZ]; if( pParse->nErr ) return; + if( pParse->eParseMode ) return; assert( pParse->nested<10 ); /* Nesting should only be of limited depth */ va_start(ap, zFormat); zSql = sqlite3VMPrintf(db, zFormat, ap); @@ -115643,7 +118629,7 @@ SQLITE_PRIVATE Table *sqlite3LocateTable( /* If zName is the not the name of a table in the schema created using ** CREATE, then check to see if it is the name of an virtual table that ** can be an eponymous virtual table. */ - if( pParse->disableVtab==0 && db->init.busy==0 ){ + if( (pParse->prepFlags & SQLITE_PREPARE_NO_VTAB)==0 && db->init.busy==0 ){ Module *pMod = (Module*)sqlite3HashFind(&db->aModule, zName); if( pMod==0 && sqlite3_strnicmp(zName, "pragma_", 7)==0 ){ pMod = sqlite3PragmaVtabRegister(db, zName); @@ -115656,7 +118642,7 @@ SQLITE_PRIVATE Table *sqlite3LocateTable( #endif if( flags & LOCATE_NOERR ) return 0; pParse->checkSchema = 1; - }else if( IsVirtual(p) && pParse->disableVtab ){ + }else if( IsVirtual(p) && (pParse->prepFlags & SQLITE_PREPARE_NO_VTAB)!=0 ){ p = 0; } @@ -115965,16 +118951,17 @@ SQLITE_PRIVATE void sqlite3DeleteColumnNames(sqlite3 *db, Table *pTable){ int i; Column *pCol; assert( pTable!=0 ); + assert( db!=0 ); if( (pCol = pTable->aCol)!=0 ){ for(i=0; inCol; i++, pCol++){ assert( pCol->zCnName==0 || pCol->hName==sqlite3StrIHash(pCol->zCnName) ); sqlite3DbFree(db, pCol->zCnName); } - sqlite3DbFree(db, pTable->aCol); + sqlite3DbNNFreeNN(db, pTable->aCol); if( IsOrdinaryTable(pTable) ){ sqlite3ExprListDelete(db, pTable->u.tab.pDfltList); } - if( db==0 || db->pnBytesFreed==0 ){ + if( db->pnBytesFreed==0 ){ pTable->aCol = 0; pTable->nCol = 0; if( IsOrdinaryTable(pTable) ){ @@ -116011,7 +118998,8 @@ static void SQLITE_NOINLINE deleteTable(sqlite3 *db, Table *pTable){ ** a Table object that was going to be marked ephemeral. So do not check ** that no lookaside memory is used in this case either. */ int nLookaside = 0; - if( db && !db->mallocFailed && (pTable->tabFlags & TF_Ephemeral)==0 ){ + assert( db!=0 ); + if( !db->mallocFailed && (pTable->tabFlags & TF_Ephemeral)==0 ){ nLookaside = sqlite3LookasideUsed(db, 0); } #endif @@ -116021,7 +119009,7 @@ static void SQLITE_NOINLINE deleteTable(sqlite3 *db, Table *pTable){ pNext = pIndex->pNext; assert( pIndex->pSchema==pTable->pSchema || (IsVirtual(pTable) && pIndex->idxType!=SQLITE_IDXTYPE_APPDEF) ); - if( (db==0 || db->pnBytesFreed==0) && !IsVirtual(pTable) ){ + if( db->pnBytesFreed==0 && !IsVirtual(pTable) ){ char *zName = pIndex->zName; TESTONLY ( Index *pOld = ) sqlite3HashInsert( &pIndex->pSchema->idxHash, zName, 0 @@ -116035,7 +119023,7 @@ static void SQLITE_NOINLINE deleteTable(sqlite3 *db, Table *pTable){ if( IsOrdinaryTable(pTable) ){ sqlite3FkDelete(db, pTable); } -#ifndef SQLITE_OMIT_VIRTUAL_TABLE +#ifndef SQLITE_OMIT_VIRTUALTABLE else if( IsVirtual(pTable) ){ sqlite3VtabClear(db, pTable); } @@ -116058,8 +119046,9 @@ static void SQLITE_NOINLINE deleteTable(sqlite3 *db, Table *pTable){ } SQLITE_PRIVATE void sqlite3DeleteTable(sqlite3 *db, Table *pTable){ /* Do not delete the table until the reference count reaches zero. */ + assert( db!=0 ); if( !pTable ) return; - if( ((!db || db->pnBytesFreed==0) && (--pTable->nTabRef)>0) ) return; + if( db->pnBytesFreed==0 && (--pTable->nTabRef)>0 ) return; deleteTable(db, pTable); } @@ -116637,7 +119626,7 @@ SQLITE_PRIVATE void sqlite3AddReturning(Parse *pParse, ExprList *pList){ if( pParse->pNewTrigger ){ sqlite3ErrorMsg(pParse, "cannot use RETURNING in a trigger"); }else{ - assert( pParse->bReturning==0 ); + assert( pParse->bReturning==0 || pParse->ifNotExists ); } pParse->bReturning = 1; pRet = sqlite3DbMallocZero(db, sizeof(*pRet)); @@ -116663,7 +119652,8 @@ SQLITE_PRIVATE void sqlite3AddReturning(Parse *pParse, ExprList *pList){ pRet->retTStep.pTrig = &pRet->retTrig; pRet->retTStep.pExprList = pList; pHash = &(db->aDb[1].pSchema->trigHash); - assert( sqlite3HashFind(pHash, RETURNING_TRIGGER_NAME)==0 || pParse->nErr ); + assert( sqlite3HashFind(pHash, RETURNING_TRIGGER_NAME)==0 + || pParse->nErr || pParse->ifNotExists ); if( sqlite3HashInsert(pHash, RETURNING_TRIGGER_NAME, &pRet->retTrig) ==&pRet->retTrig ){ sqlite3OomFault(db); @@ -117191,6 +120181,14 @@ SQLITE_PRIVATE void sqlite3AddGenerated(Parse *pParse, Expr *pExpr, Token *pType if( pCol->colFlags & COLFLAG_PRIMKEY ){ makeColumnPartOfPrimaryKey(pParse, pCol); /* For the error message */ } + if( ALWAYS(pExpr) && pExpr->op==TK_ID ){ + /* The value of a generated column needs to be a real expression, not + ** just a reference to another column, in order for covering index + ** optimizations to work correctly. So if the value is not an expression, + ** turn it into one by adding a unary "+" operator. */ + pExpr = sqlite3PExpr(pParse, TK_UPLUS, pExpr, 0); + } + if( pExpr && pExpr->op!=TK_RAISE ) pExpr->affExpr = pCol->affinity; sqlite3ColumnSetExpr(pParse, pTab, pCol, pExpr); pExpr = 0; goto generated_done; @@ -117327,7 +120325,8 @@ static char *createTableStmt(sqlite3 *db, Table *p){ /* SQLITE_AFF_TEXT */ " TEXT", /* SQLITE_AFF_NUMERIC */ " NUM", /* SQLITE_AFF_INTEGER */ " INT", - /* SQLITE_AFF_REAL */ " REAL" + /* SQLITE_AFF_REAL */ " REAL", + /* SQLITE_AFF_FLEXNUM */ " NUM", }; int len; const char *zType; @@ -117343,10 +120342,12 @@ static char *createTableStmt(sqlite3 *db, Table *p){ testcase( pCol->affinity==SQLITE_AFF_NUMERIC ); testcase( pCol->affinity==SQLITE_AFF_INTEGER ); testcase( pCol->affinity==SQLITE_AFF_REAL ); + testcase( pCol->affinity==SQLITE_AFF_FLEXNUM ); zType = azType[pCol->affinity - SQLITE_AFF_BLOB]; len = sqlite3Strlen30(zType); assert( pCol->affinity==SQLITE_AFF_BLOB + || pCol->affinity==SQLITE_AFF_FLEXNUM || pCol->affinity==sqlite3AffinityType(zType, 0) ); memcpy(&zStmt[k], zType, len); k += len; @@ -117463,7 +120464,8 @@ static int isDupColumn(Index *pIdx, int nKey, Index *pPk, int iCol){ /* Recompute the colNotIdxed field of the Index. ** ** colNotIdxed is a bitmask that has a 0 bit representing each indexed -** columns that are within the first 63 columns of the table. The +** columns that are within the first 63 columns of the table and a 1 for +** all other bits (all columns that are not in the index). The ** high-order bit of colNotIdxed is always 1. All unindexed columns ** of the table have a 1. ** @@ -117491,7 +120493,7 @@ static void recomputeColumnsNotIndexed(Index *pIdx){ } } pIdx->colNotIdxed = ~m; - assert( (pIdx->colNotIdxed>>63)==1 ); + assert( (pIdx->colNotIdxed>>63)==1 ); /* See note-20221022-a */ } /* @@ -117760,6 +120762,7 @@ SQLITE_PRIVATE int sqlite3ShadowTableName(sqlite3 *db, const char *zName){ ** not pass them into code generator routines by mistake. */ static int markImmutableExprStep(Walker *pWalker, Expr *pExpr){ + (void)pWalker; ExprSetVVAProperty(pExpr, EP_Immutable); return WRC_Continue; } @@ -118232,7 +121235,7 @@ create_view_fail: ** the columns of the view in the pTable structure. Return the number ** of errors. If an error is seen leave an error message in pParse->zErrMsg. */ -SQLITE_PRIVATE int sqlite3ViewGetColumnNames(Parse *pParse, Table *pTable){ +static SQLITE_NOINLINE int viewGetColumnNames(Parse *pParse, Table *pTable){ Table *pSelTab; /* A fake table from which we get the result set */ Select *pSel; /* Copy of the SELECT that implements the view */ int nErr = 0; /* Number of errors encountered */ @@ -118257,9 +121260,10 @@ SQLITE_PRIVATE int sqlite3ViewGetColumnNames(Parse *pParse, Table *pTable){ #ifndef SQLITE_OMIT_VIEW /* A positive nCol means the columns names for this view are - ** already known. + ** already known. This routine is not called unless either the + ** table is virtual or nCol is zero. */ - if( pTable->nCol>0 ) return 0; + assert( pTable->nCol<=0 ); /* A negative nCol is a special marker meaning that we are currently ** trying to compute the column names. If we enter this routine with @@ -118325,8 +121329,7 @@ SQLITE_PRIVATE int sqlite3ViewGetColumnNames(Parse *pParse, Table *pTable){ && pTable->nCol==pSel->pEList->nExpr ){ assert( db->mallocFailed==0 ); - sqlite3SelectAddColumnTypeAndCollation(pParse, pTable, pSel, - SQLITE_AFF_NONE); + sqlite3SubqueryColumnTypes(pParse, pTable, pSel, SQLITE_AFF_NONE); } }else{ /* CREATE VIEW name AS... without an argument list. Construct @@ -118355,6 +121358,11 @@ SQLITE_PRIVATE int sqlite3ViewGetColumnNames(Parse *pParse, Table *pTable){ #endif /* SQLITE_OMIT_VIEW */ return nErr; } +SQLITE_PRIVATE int sqlite3ViewGetColumnNames(Parse *pParse, Table *pTable){ + assert( pTable!=0 ); + if( !IsVirtual(pTable) && pTable->nCol>0 ) return 0; + return viewGetColumnNames(pParse, pTable); +} #endif /* !defined(SQLITE_OMIT_VIEW) || !defined(SQLITE_OMIT_VIRTUALTABLE) */ #ifndef SQLITE_OMIT_VIEW @@ -119220,7 +122228,7 @@ SQLITE_PRIVATE void sqlite3CreateIndex( } if( !IN_RENAME_OBJECT ){ if( !db->init.busy ){ - if( sqlite3FindTable(db, zName, 0)!=0 ){ + if( sqlite3FindTable(db, zName, pDb->zDbSName)!=0 ){ sqlite3ErrorMsg(pParse, "there is already a table named %s", zName); goto exit_create_index; } @@ -119373,6 +122381,7 @@ SQLITE_PRIVATE void sqlite3CreateIndex( j = XN_EXPR; pIndex->aiColumn[i] = XN_EXPR; pIndex->uniqNotNull = 0; + pIndex->bHasExpr = 1; }else{ j = pCExpr->iColumn; assert( j<=0x7fff ); @@ -119384,6 +122393,7 @@ SQLITE_PRIVATE void sqlite3CreateIndex( } if( pTab->aCol[j].colFlags & COLFLAG_VIRTUAL ){ pIndex->bHasVCol = 1; + pIndex->bHasExpr = 1; } } pIndex->aiColumn[i] = (i16)j; @@ -119873,12 +122883,13 @@ SQLITE_PRIVATE IdList *sqlite3IdListAppend(Parse *pParse, IdList *pList, Token * */ SQLITE_PRIVATE void sqlite3IdListDelete(sqlite3 *db, IdList *pList){ int i; + assert( db!=0 ); if( pList==0 ) return; assert( pList->eU4!=EU4_EXPR ); /* EU4_EXPR mode is not currently used */ for(i=0; inId; i++){ sqlite3DbFree(db, pList->a[i].zName); } - sqlite3DbFreeNN(db, pList); + sqlite3DbNNFreeNN(db, pList); } /* @@ -120081,11 +123092,12 @@ SQLITE_PRIVATE void sqlite3SrcListAssignCursors(Parse *pParse, SrcList *pList){ SQLITE_PRIVATE void sqlite3SrcListDelete(sqlite3 *db, SrcList *pList){ int i; SrcItem *pItem; + assert( db!=0 ); if( pList==0 ) return; for(pItem=pList->a, i=0; inSrc; i++, pItem++){ - if( pItem->zDatabase ) sqlite3DbFreeNN(db, pItem->zDatabase); - sqlite3DbFree(db, pItem->zName); - if( pItem->zAlias ) sqlite3DbFreeNN(db, pItem->zAlias); + if( pItem->zDatabase ) sqlite3DbNNFreeNN(db, pItem->zDatabase); + if( pItem->zName ) sqlite3DbNNFreeNN(db, pItem->zName); + if( pItem->zAlias ) sqlite3DbNNFreeNN(db, pItem->zAlias); if( pItem->fg.isIndexedBy ) sqlite3DbFree(db, pItem->u1.zIndexedBy); if( pItem->fg.isTabFunc ) sqlite3ExprListDelete(db, pItem->u1.pFuncArg); sqlite3DeleteTable(db, pItem->pTab); @@ -120096,7 +123108,7 @@ SQLITE_PRIVATE void sqlite3SrcListDelete(sqlite3 *db, SrcList *pList){ sqlite3ExprDelete(db, pItem->u3.pOn); } } - sqlite3DbFreeNN(db, pList); + sqlite3DbNNFreeNN(db, pList); } /* @@ -121043,6 +124055,7 @@ SQLITE_PRIVATE void sqlite3SetTextEncoding(sqlite3 *db, u8 enc){ ** strings is BINARY. */ db->pDfltColl = sqlite3FindCollSeq(db, enc, sqlite3StrBINARY, 0); + sqlite3ExpirePreparedStatements(db, 1); } /* @@ -121348,19 +124361,21 @@ SQLITE_PRIVATE void sqlite3SchemaClear(void *p){ Hash temp2; HashElem *pElem; Schema *pSchema = (Schema *)p; + sqlite3 xdb; + memset(&xdb, 0, sizeof(xdb)); temp1 = pSchema->tblHash; temp2 = pSchema->trigHash; sqlite3HashInit(&pSchema->trigHash); sqlite3HashClear(&pSchema->idxHash); for(pElem=sqliteHashFirst(&temp2); pElem; pElem=sqliteHashNext(pElem)){ - sqlite3DeleteTrigger(0, (Trigger*)sqliteHashData(pElem)); + sqlite3DeleteTrigger(&xdb, (Trigger*)sqliteHashData(pElem)); } sqlite3HashClear(&temp2); sqlite3HashInit(&pSchema->tblHash); for(pElem=sqliteHashFirst(&temp1); pElem; pElem=sqliteHashNext(pElem)){ Table *pTab = sqliteHashData(pElem); - sqlite3DeleteTable(0, pTab); + sqlite3DeleteTable(&xdb, pTab); } sqlite3HashClear(&temp1); sqlite3HashClear(&pSchema->fkeyHash); @@ -121459,18 +124474,42 @@ SQLITE_PRIVATE void sqlite3CodeChangeCount(Vdbe *v, int regCounter, const char * ** 1) It is a virtual table and no implementation of the xUpdate method ** has been provided ** -** 2) It is a system table (i.e. sqlite_schema), this call is not +** 2) A trigger is currently being coded and the table is a virtual table +** that is SQLITE_VTAB_DIRECTONLY or if PRAGMA trusted_schema=OFF and +** the table is not SQLITE_VTAB_INNOCUOUS. +** +** 3) It is a system table (i.e. sqlite_schema), this call is not ** part of a nested parse and writable_schema pragma has not ** been specified ** -** 3) The table is a shadow table, the database connection is in +** 4) The table is a shadow table, the database connection is in ** defensive mode, and the current sqlite3_prepare() ** is for a top-level SQL statement. */ +static int vtabIsReadOnly(Parse *pParse, Table *pTab){ + if( sqlite3GetVTable(pParse->db, pTab)->pMod->pModule->xUpdate==0 ){ + return 1; + } + + /* Within triggers: + ** * Do not allow DELETE, INSERT, or UPDATE of SQLITE_VTAB_DIRECTONLY + ** virtual tables + ** * Only allow DELETE, INSERT, or UPDATE of non-SQLITE_VTAB_INNOCUOUS + ** virtual tables if PRAGMA trusted_schema=ON. + */ + if( pParse->pToplevel!=0 + && pTab->u.vtab.p->eVtabRisk > + ((pParse->db->flags & SQLITE_TrustedSchema)!=0) + ){ + sqlite3ErrorMsg(pParse, "unsafe use of virtual table \"%s\"", + pTab->zName); + } + return 0; +} static int tabIsReadOnly(Parse *pParse, Table *pTab){ sqlite3 *db; if( IsVirtual(pTab) ){ - return sqlite3GetVTable(pParse->db, pTab)->pMod->pModule->xUpdate==0; + return vtabIsReadOnly(pParse, pTab); } if( (pTab->tabFlags & (TF_Readonly|TF_Shadow))==0 ) return 0; db = pParse->db; @@ -121482,17 +124521,21 @@ static int tabIsReadOnly(Parse *pParse, Table *pTab){ } /* -** Check to make sure the given table is writable. If it is not -** writable, generate an error message and return 1. If it is -** writable return 0; +** Check to make sure the given table is writable. +** +** If pTab is not writable -> generate an error message and return 1. +** If pTab is writable but other errors have occurred -> return 1. +** If pTab is writable and no prior errors -> return 0; */ -SQLITE_PRIVATE int sqlite3IsReadOnly(Parse *pParse, Table *pTab, int viewOk){ +SQLITE_PRIVATE int sqlite3IsReadOnly(Parse *pParse, Table *pTab, Trigger *pTrigger){ if( tabIsReadOnly(pParse, pTab) ){ sqlite3ErrorMsg(pParse, "table %s may not be modified", pTab->zName); return 1; } #ifndef SQLITE_OMIT_VIEW - if( !viewOk && IsView(pTab) ){ + if( IsView(pTab) + && (pTrigger==0 || (pTrigger->bReturning && pTrigger->pNext==0)) + ){ sqlite3ErrorMsg(pParse,"cannot modify %s because it is a view",pTab->zName); return 1; } @@ -121746,7 +124789,7 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( goto delete_from_cleanup; } - if( sqlite3IsReadOnly(pParse, pTab, (pTrigger?1:0)) ){ + if( sqlite3IsReadOnly(pParse, pTab, pTrigger) ){ goto delete_from_cleanup; } iDb = sqlite3SchemaToIndex(db, pTab->pSchema); @@ -121845,16 +124888,17 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( } for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){ assert( pIdx->pSchema==pTab->pSchema ); - sqlite3VdbeAddOp2(v, OP_Clear, pIdx->tnum, iDb); if( IsPrimaryKeyIndex(pIdx) && !HasRowid(pTab) ){ - sqlite3VdbeChangeP3(v, -1, memCnt ? memCnt : -1); + sqlite3VdbeAddOp3(v, OP_Clear, pIdx->tnum, iDb, memCnt ? memCnt : -1); + }else{ + sqlite3VdbeAddOp2(v, OP_Clear, pIdx->tnum, iDb); } } }else #endif /* SQLITE_OMIT_TRUNCATE_OPTIMIZATION */ { u16 wcf = WHERE_ONEPASS_DESIRED|WHERE_DUPLICATES_OK; - if( sNC.ncFlags & NC_VarSelect ) bComplex = 1; + if( sNC.ncFlags & NC_Subquery ) bComplex = 1; wcf |= (bComplex ? 0 : WHERE_ONEPASS_MULTIROW); if( HasRowid(pTab) ){ /* For a rowid table, initialize the RowSet to an empty set */ @@ -122047,7 +125091,7 @@ delete_from_cleanup: sqlite3ExprListDelete(db, pOrderBy); sqlite3ExprDelete(db, pLimit); #endif - sqlite3DbFree(db, aToOpen); + if( aToOpen ) sqlite3DbNNFreeNN(db, aToOpen); return; } /* Make sure "isView" and other macros defined above are undefined. Otherwise @@ -123130,7 +126174,7 @@ static int patternCompare( ** c but in the other case and search the input string for either ** c or cx. */ - if( c<=0x80 ){ + if( c<0x80 ){ char zStop[3]; int bMatch; if( noCase ){ @@ -123213,7 +126257,13 @@ static int patternCompare( ** non-zero if there is no match. */ SQLITE_API int sqlite3_strglob(const char *zGlobPattern, const char *zString){ - return patternCompare((u8*)zGlobPattern, (u8*)zString, &globInfo, '['); + if( zString==0 ){ + return zGlobPattern!=0; + }else if( zGlobPattern==0 ){ + return 1; + }else { + return patternCompare((u8*)zGlobPattern, (u8*)zString, &globInfo, '['); + } } /* @@ -123221,7 +126271,13 @@ SQLITE_API int sqlite3_strglob(const char *zGlobPattern, const char *zString){ ** a miss - like strcmp(). */ SQLITE_API int sqlite3_strlike(const char *zPattern, const char *zStr, unsigned int esc){ - return patternCompare((u8*)zPattern, (u8*)zStr, &likeInfoNorm, esc); + if( zStr==0 ){ + return zPattern!=0; + }else if( zPattern==0 ){ + return 1; + }else{ + return patternCompare((u8*)zPattern, (u8*)zStr, &likeInfoNorm, esc); + } } /* @@ -123460,7 +126516,7 @@ SQLITE_PRIVATE void sqlite3QuoteValue(StrAccum *pStr, sqlite3_value *pValue){ } case SQLITE_BLOB: { char const *zBlob = sqlite3_value_blob(pValue); - int nBlob = sqlite3_value_bytes(pValue); + i64 nBlob = sqlite3_value_bytes(pValue); assert( zBlob==sqlite3_value_blob(pValue) ); /* No encoding change */ sqlite3StrAccumEnlarge(pStr, nBlob*2 + 4); if( pStr->accError==0 ){ @@ -123601,6 +126657,96 @@ static void hexFunc( } } +/* +** Buffer zStr contains nStr bytes of utf-8 encoded text. Return 1 if zStr +** contains character ch, or 0 if it does not. +*/ +static int strContainsChar(const u8 *zStr, int nStr, u32 ch){ + const u8 *zEnd = &zStr[nStr]; + const u8 *z = zStr; + while( zpSchema); - Token tFrom; - Token tDb; + SrcList *pSrc; Expr *pRaise; - tFrom.z = zFrom; - tFrom.n = nFrom; - tDb.z = db->aDb[iDb].zDbSName; - tDb.n = sqlite3Strlen30(tDb.z); - pRaise = sqlite3Expr(db, TK_RAISE, "FOREIGN KEY constraint failed"); if( pRaise ){ pRaise->affExpr = OE_Abort; } + pSrc = sqlite3SrcListAppend(pParse, 0, 0, 0); + if( pSrc ){ + assert( pSrc->nSrc==1 ); + pSrc->a[0].zName = sqlite3DbStrDup(db, zFrom); + pSrc->a[0].zDatabase = sqlite3DbStrDup(db, db->aDb[iDb].zDbSName); + } pSelect = sqlite3SelectNew(pParse, sqlite3ExprListAppend(pParse, 0, pRaise), - sqlite3SrcListAppend(pParse, 0, &tDb, &tFrom), + pSrc, pWhere, 0, 0, 0, 0, 0 ); @@ -126215,11 +129377,12 @@ SQLITE_PRIVATE void sqlite3FkDelete(sqlite3 *db, Table *pTab){ FKey *pNext; /* Copy of pFKey->pNextFrom */ assert( IsOrdinaryTable(pTab) ); + assert( db!=0 ); for(pFKey=pTab->u.tab.pFKey; pFKey; pFKey=pNext){ assert( db==0 || sqlite3SchemaMutexHeld(db, 0, pTab->pSchema) ); /* Remove the FK from the fkeyHash hash table. */ - if( !db || db->pnBytesFreed==0 ){ + if( db->pnBytesFreed==0 ){ if( pFKey->pPrevTo ){ pFKey->pPrevTo->pNextTo = pFKey->pNextTo; }else{ @@ -126323,44 +129486,69 @@ SQLITE_PRIVATE void sqlite3OpenTable( ** is managed along with the rest of the Index structure. It will be ** released when sqlite3DeleteIndex() is called. */ -SQLITE_PRIVATE const char *sqlite3IndexAffinityStr(sqlite3 *db, Index *pIdx){ +static SQLITE_NOINLINE const char *computeIndexAffStr(sqlite3 *db, Index *pIdx){ + /* The first time a column affinity string for a particular index is + ** required, it is allocated and populated here. It is then stored as + ** a member of the Index structure for subsequent use. + ** + ** The column affinity string will eventually be deleted by + ** sqliteDeleteIndex() when the Index structure itself is cleaned + ** up. + */ + int n; + Table *pTab = pIdx->pTable; + pIdx->zColAff = (char *)sqlite3DbMallocRaw(0, pIdx->nColumn+1); if( !pIdx->zColAff ){ - /* The first time a column affinity string for a particular index is - ** required, it is allocated and populated here. It is then stored as - ** a member of the Index structure for subsequent use. - ** - ** The column affinity string will eventually be deleted by - ** sqliteDeleteIndex() when the Index structure itself is cleaned - ** up. - */ - int n; - Table *pTab = pIdx->pTable; - pIdx->zColAff = (char *)sqlite3DbMallocRaw(0, pIdx->nColumn+1); - if( !pIdx->zColAff ){ - sqlite3OomFault(db); - return 0; - } - for(n=0; nnColumn; n++){ - i16 x = pIdx->aiColumn[n]; - char aff; - if( x>=0 ){ - aff = pTab->aCol[x].affinity; - }else if( x==XN_ROWID ){ - aff = SQLITE_AFF_INTEGER; - }else{ - assert( x==XN_EXPR ); - assert( pIdx->aColExpr!=0 ); - aff = sqlite3ExprAffinity(pIdx->aColExpr->a[n].pExpr); - } - if( affSQLITE_AFF_NUMERIC) aff = SQLITE_AFF_NUMERIC; - pIdx->zColAff[n] = aff; - } - pIdx->zColAff[n] = 0; + sqlite3OomFault(db); + return 0; } - + for(n=0; nnColumn; n++){ + i16 x = pIdx->aiColumn[n]; + char aff; + if( x>=0 ){ + aff = pTab->aCol[x].affinity; + }else if( x==XN_ROWID ){ + aff = SQLITE_AFF_INTEGER; + }else{ + assert( x==XN_EXPR ); + assert( pIdx->bHasExpr ); + assert( pIdx->aColExpr!=0 ); + aff = sqlite3ExprAffinity(pIdx->aColExpr->a[n].pExpr); + } + if( affSQLITE_AFF_NUMERIC) aff = SQLITE_AFF_NUMERIC; + pIdx->zColAff[n] = aff; + } + pIdx->zColAff[n] = 0; return pIdx->zColAff; } +SQLITE_PRIVATE const char *sqlite3IndexAffinityStr(sqlite3 *db, Index *pIdx){ + if( !pIdx->zColAff ) return computeIndexAffStr(db, pIdx); + return pIdx->zColAff; +} + + +/* +** Compute an affinity string for a table. Space is obtained +** from sqlite3DbMalloc(). The caller is responsible for freeing +** the space when done. +*/ +SQLITE_PRIVATE char *sqlite3TableAffinityStr(sqlite3 *db, const Table *pTab){ + char *zColAff; + zColAff = (char *)sqlite3DbMallocRaw(db, pTab->nCol+1); + if( zColAff ){ + int i, j; + for(i=j=0; inCol; i++){ + if( (pTab->aCol[i].colFlags & COLFLAG_VIRTUAL)==0 ){ + zColAff[j++] = pTab->aCol[i].affinity; + } + } + do{ + zColAff[j--] = 0; + }while( j>=0 && zColAff[j]<=SQLITE_AFF_BLOB ); + } + return zColAff; +} /* ** Make changes to the evolving bytecode to do affinity transformations @@ -126403,7 +129591,7 @@ SQLITE_PRIVATE const char *sqlite3IndexAffinityStr(sqlite3 *db, Index *pIdx){ ** Apply the type checking to that array of registers. */ SQLITE_PRIVATE void sqlite3TableAffinity(Vdbe *v, Table *pTab, int iReg){ - int i, j; + int i; char *zColAff; if( pTab->tabFlags & TF_Strict ){ if( iReg==0 ){ @@ -126412,7 +129600,7 @@ SQLITE_PRIVATE void sqlite3TableAffinity(Vdbe *v, Table *pTab, int iReg){ ** OP_MakeRecord is found */ VdbeOp *pPrev; sqlite3VdbeAppendP4(v, pTab, P4_TABLE); - pPrev = sqlite3VdbeGetOp(v, -1); + pPrev = sqlite3VdbeGetLastOp(v); assert( pPrev!=0 ); assert( pPrev->opcode==OP_MakeRecord || sqlite3VdbeDb(v)->mallocFailed ); pPrev->opcode = OP_TypeCheck; @@ -126426,22 +129614,11 @@ SQLITE_PRIVATE void sqlite3TableAffinity(Vdbe *v, Table *pTab, int iReg){ } zColAff = pTab->zColAff; if( zColAff==0 ){ - sqlite3 *db = sqlite3VdbeDb(v); - zColAff = (char *)sqlite3DbMallocRaw(0, pTab->nCol+1); + zColAff = sqlite3TableAffinityStr(0, pTab); if( !zColAff ){ - sqlite3OomFault(db); + sqlite3OomFault(sqlite3VdbeDb(v)); return; } - - for(i=j=0; inCol; i++){ - assert( pTab->aCol[i].affinity!=0 || sqlite3VdbeParser(v)->nErr>0 ); - if( (pTab->aCol[i].colFlags & COLFLAG_VIRTUAL)==0 ){ - zColAff[j++] = pTab->aCol[i].affinity; - } - } - do{ - zColAff[j--] = 0; - }while( j>=0 && zColAff[j]<=SQLITE_AFF_BLOB ); pTab->zColAff = zColAff; } assert( zColAff!=0 ); @@ -126450,7 +129627,7 @@ SQLITE_PRIVATE void sqlite3TableAffinity(Vdbe *v, Table *pTab, int iReg){ if( iReg ){ sqlite3VdbeAddOp4(v, OP_Affinity, iReg, i, 0, zColAff, i); }else{ - assert( sqlite3VdbeGetOp(v, -1)->opcode==OP_MakeRecord + assert( sqlite3VdbeGetLastOp(v)->opcode==OP_MakeRecord || sqlite3VdbeDb(v)->mallocFailed ); sqlite3VdbeChangeP4(v, -1, zColAff, i); } @@ -126536,7 +129713,7 @@ SQLITE_PRIVATE void sqlite3ComputeGeneratedColumns( */ sqlite3TableAffinity(pParse->pVdbe, pTab, iRegStore); if( (pTab->tabFlags & TF_HasStored)!=0 ){ - pOp = sqlite3VdbeGetOp(pParse->pVdbe,-1); + pOp = sqlite3VdbeGetLastOp(pParse->pVdbe); if( pOp->opcode==OP_Affinity ){ /* Change the OP_Affinity argument to '@' (NONE) for all stored ** columns. '@' is the no-op affinity and those columns have not @@ -127035,7 +130212,7 @@ SQLITE_PRIVATE void sqlite3Insert( /* Cannot insert into a read-only table. */ - if( sqlite3IsReadOnly(pParse, pTab, tmask) ){ + if( sqlite3IsReadOnly(pParse, pTab, pTrigger) ){ goto insert_cleanup; } @@ -127442,7 +130619,12 @@ SQLITE_PRIVATE void sqlite3Insert( sqlite3VdbeAddOp2(v, OP_SCopy, regFromSelect+k, iRegStore); } }else{ - sqlite3ExprCode(pParse, pList->a[k].pExpr, iRegStore); + Expr *pX = pList->a[k].pExpr; + int y = sqlite3ExprCodeTarget(pParse, pX, iRegStore); + if( y!=iRegStore ){ + sqlite3VdbeAddOp2(v, + ExprHasProperty(pX, EP_Subquery) ? OP_Copy : OP_SCopy, y, iRegStore); + } } } @@ -127477,7 +130659,7 @@ SQLITE_PRIVATE void sqlite3Insert( } /* Copy the new data already generated. */ - assert( pTab->nNVCol>0 ); + assert( pTab->nNVCol>0 || pParse->nErr>0 ); sqlite3VdbeAddOp3(v, OP_Copy, regRowid+1, regCols+1, pTab->nNVCol-1); #ifndef SQLITE_OMIT_GENERATED_COLUMNS @@ -127579,7 +130761,9 @@ SQLITE_PRIVATE void sqlite3Insert( sqlite3GenerateConstraintChecks(pParse, pTab, aRegIdx, iDataCur, iIdxCur, regIns, 0, ipkColumn>=0, onError, endOfLoop, &isReplace, 0, pUpsert ); - sqlite3FkCheck(pParse, pTab, 0, regIns, 0, 0); + if( db->flags & SQLITE_ForeignKeys ){ + sqlite3FkCheck(pParse, pTab, 0, regIns, 0, 0); + } /* Set the OPFLAG_USESEEKRESULT flag if either (a) there are no REPLACE ** constraints or (b) there are no triggers and this table is not a @@ -127663,7 +130847,7 @@ insert_cleanup: sqlite3UpsertDelete(db, pUpsert); sqlite3SelectDelete(db, pSelect); sqlite3IdListDelete(db, pColumn); - sqlite3DbFree(db, aRegIdx); + if( aRegIdx ) sqlite3DbNNFreeNN(db, aRegIdx); } /* Make sure "isView" and other macros defined above are undefined. Otherwise @@ -128027,6 +131211,7 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( case OE_Fail: { char *zMsg = sqlite3MPrintf(db, "%s.%s", pTab->zName, pCol->zCnName); + testcase( zMsg==0 && db->mallocFailed==0 ); sqlite3VdbeAddOp3(v, OP_HaltIfNull, SQLITE_CONSTRAINT_NOTNULL, onError, iReg); sqlite3VdbeAppendP4(v, zMsg, P4_DYNAMIC); @@ -129890,9 +133075,9 @@ struct sqlite3_api_routines { const char *(*filename_journal)(const char*); const char *(*filename_wal)(const char*); /* Version 3.32.0 and later */ - char *(*create_filename)(const char*,const char*,const char*, + const char *(*create_filename)(const char*,const char*,const char*, int,const char**); - void (*free_filename)(char*); + void (*free_filename)(const char*); sqlite3_file *(*database_file_object)(const char*); /* Version 3.34.0 and later */ int (*txn_state)(sqlite3*,const char*); @@ -129916,6 +133101,10 @@ struct sqlite3_api_routines { unsigned char *(*serialize)(sqlite3*,const char *,sqlite3_int64*, unsigned int); const char *(*db_name)(sqlite3*,int); + /* Version 3.40.0 and later */ + int (*value_encoding)(sqlite3_value*); + /* Version 3.41.0 and later */ + int (*is_interrupted)(sqlite3*); }; /* @@ -130240,6 +133429,10 @@ typedef int (*sqlite3_loadext_entry)( #define sqlite3_serialize sqlite3_api->serialize #endif #define sqlite3_db_name sqlite3_api->db_name +/* Version 3.40.0 and later */ +#define sqlite3_value_encoding sqlite3_api->value_encoding +/* Version 3.41.0 and later */ +#define sqlite3_is_interrupted sqlite3_api->is_interrupted #endif /* !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) */ #if !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) @@ -130752,7 +133945,11 @@ static const sqlite3_api_routines sqlite3Apis = { 0, 0, #endif - sqlite3_db_name + sqlite3_db_name, + /* Version 3.40.0 and later */ + sqlite3_value_encoding, + /* Version 3.41.0 and later */ + sqlite3_is_interrupted }; /* True if x is the directory separator character @@ -130825,7 +134022,11 @@ static int sqlite3LoadExtension( /* tag-20210611-1. Some dlopen() implementations will segfault if given ** an oversize filename. Most filesystems have a pathname limit of 4K, ** so limit the extension filename length to about twice that. - ** https://sqlite.org/forum/forumpost/08a0d6d9bf */ + ** https://sqlite.org/forum/forumpost/08a0d6d9bf + ** + ** Later (2023-03-25): Save an extra 6 bytes for the filename suffix. + ** See https://sqlite.org/forum/forumpost/24083b579d. + */ if( nMsg>SQLITE_MAX_PATHLEN ) goto extension_not_found; handle = sqlite3OsDlOpen(pVfs, zFile); @@ -130833,7 +134034,9 @@ static int sqlite3LoadExtension( for(ii=0; iiaDb[iDb].zDbSName; sqlite3CodeVerifySchema(pParse, iDb); sqlite3TableLock(pParse, iDb, pTab->tnum, 0, pTab->zName); - if( pTab->nCol+regRow>pParse->nMem ) pParse->nMem = pTab->nCol + regRow; + sqlite3TouchRegister(pParse, pTab->nCol+regRow); sqlite3OpenTable(pParse, 0, iDb, pTab, OP_OpenRead); sqlite3VdbeLoadString(v, regResult, pTab->zName); assert( IsOrdinaryTable(pTab) ); @@ -133369,7 +136572,7 @@ SQLITE_PRIVATE void sqlite3Pragma( ** regRow..regRow+n. If any of the child key values are NULL, this ** row cannot cause an FK violation. Jump directly to addrOk in ** this case. */ - if( regRow+pFK->nCol>pParse->nMem ) pParse->nMem = regRow+pFK->nCol; + sqlite3TouchRegister(pParse, regRow + pFK->nCol); for(j=0; jnCol; j++){ int iCol = aiCols ? aiCols[j] : pFK->aCol[j].iFrom; sqlite3ExprCodeGetColumnOfTable(v, pTab, 0, iCol, regRow+j); @@ -133498,6 +136701,7 @@ SQLITE_PRIVATE void sqlite3Pragma( if( iDb>=0 && i!=iDb ) continue; sqlite3CodeVerifySchema(pParse, i); + pParse->okConstFactor = 0; /* tag-20230327-1 */ /* Do an integrity check of the B-Tree ** @@ -133533,7 +136737,7 @@ SQLITE_PRIVATE void sqlite3Pragma( aRoot[0] = cnt; /* Make sure sufficient number of registers have been allocated */ - pParse->nMem = MAX( pParse->nMem, 8+mxIdx ); + sqlite3TouchRegister(pParse, 8+mxIdx); sqlite3ClearTempRegCache(pParse); /* Do the b-tree integrity checks */ @@ -133552,15 +136756,24 @@ SQLITE_PRIVATE void sqlite3Pragma( for(x=sqliteHashFirst(pTbls); x; x=sqliteHashNext(x)){ Table *pTab = sqliteHashData(x); Index *pIdx, *pPk; - Index *pPrior = 0; + Index *pPrior = 0; /* Previous index */ int loopTop; int iDataCur, iIdxCur; int r1 = -1; - int bStrict; + int bStrict; /* True for a STRICT table */ + int r2; /* Previous key for WITHOUT ROWID tables */ + int mxCol; /* Maximum non-virtual column number */ if( !IsOrdinaryTable(pTab) ) continue; if( pObjTab && pObjTab!=pTab ) continue; - pPk = HasRowid(pTab) ? 0 : sqlite3PrimaryKeyIndex(pTab); + if( isQuick || HasRowid(pTab) ){ + pPk = 0; + r2 = 0; + }else{ + pPk = sqlite3PrimaryKeyIndex(pTab); + r2 = sqlite3GetTempRange(pParse, pPk->nKeyCol); + sqlite3VdbeAddOp3(v, OP_Null, 1, r2, r2+pPk->nKeyCol-1); + } sqlite3OpenTableAndIndices(pParse, pTab, OP_OpenRead, 0, 1, 0, &iDataCur, &iIdxCur); /* reg[7] counts the number of entries in the table. @@ -133574,52 +136787,180 @@ SQLITE_PRIVATE void sqlite3Pragma( assert( sqlite3NoTempsInRange(pParse,1,7+j) ); sqlite3VdbeAddOp2(v, OP_Rewind, iDataCur, 0); VdbeCoverage(v); loopTop = sqlite3VdbeAddOp2(v, OP_AddImm, 7, 1); - if( !isQuick ){ - /* Sanity check on record header decoding */ - sqlite3VdbeAddOp3(v, OP_Column, iDataCur, pTab->nNVCol-1,3); - sqlite3VdbeChangeP5(v, OPFLAG_TYPEOFARG); - VdbeComment((v, "(right-most column)")); + + /* Fetch the right-most column from the table. This will cause + ** the entire record header to be parsed and sanity checked. It + ** will also prepopulate the cursor column cache that is used + ** by the OP_IsType code, so it is a required step. + */ + assert( !IsVirtual(pTab) ); + if( HasRowid(pTab) ){ + mxCol = -1; + for(j=0; jnCol; j++){ + if( (pTab->aCol[j].colFlags & COLFLAG_VIRTUAL)==0 ) mxCol++; + } + if( mxCol==pTab->iPKey ) mxCol--; + }else{ + /* COLFLAG_VIRTUAL columns are not included in the WITHOUT ROWID + ** PK index column-count, so there is no need to account for them + ** in this case. */ + mxCol = sqlite3PrimaryKeyIndex(pTab)->nColumn-1; } - /* Verify that all NOT NULL columns really are NOT NULL. At the - ** same time verify the type of the content of STRICT tables */ + if( mxCol>=0 ){ + sqlite3VdbeAddOp3(v, OP_Column, iDataCur, mxCol, 3); + sqlite3VdbeTypeofColumn(v, 3); + } + + if( !isQuick ){ + if( pPk ){ + /* Verify WITHOUT ROWID keys are in ascending order */ + int a1; + char *zErr; + a1 = sqlite3VdbeAddOp4Int(v, OP_IdxGT, iDataCur, 0,r2,pPk->nKeyCol); + VdbeCoverage(v); + sqlite3VdbeAddOp1(v, OP_IsNull, r2); VdbeCoverage(v); + zErr = sqlite3MPrintf(db, + "row not in PRIMARY KEY order for %s", + pTab->zName); + sqlite3VdbeAddOp4(v, OP_String8, 0, 3, 0, zErr, P4_DYNAMIC); + integrityCheckResultRow(v); + sqlite3VdbeJumpHere(v, a1); + sqlite3VdbeJumpHere(v, a1+1); + for(j=0; jnKeyCol; j++){ + sqlite3ExprCodeLoadIndexColumn(pParse, pPk, iDataCur, j, r2+j); + } + } + } + /* Verify datatypes for all columns: + ** + ** (1) NOT NULL columns may not contain a NULL + ** (2) Datatype must be exact for non-ANY columns in STRICT tables + ** (3) Datatype for TEXT columns in non-STRICT tables must be + ** NULL, TEXT, or BLOB. + ** (4) Datatype for numeric columns in non-STRICT tables must not + ** be a TEXT value that can be losslessly converted to numeric. + */ bStrict = (pTab->tabFlags & TF_Strict)!=0; for(j=0; jnCol; j++){ char *zErr; - Column *pCol = pTab->aCol + j; - int doError, jmp2; + Column *pCol = pTab->aCol + j; /* The column to be checked */ + int labelError; /* Jump here to report an error */ + int labelOk; /* Jump here if all looks ok */ + int p1, p3, p4; /* Operands to the OP_IsType opcode */ + int doTypeCheck; /* Check datatypes (besides NOT NULL) */ + if( j==pTab->iPKey ) continue; - if( pCol->notNull==0 && !bStrict ) continue; - doError = bStrict ? sqlite3VdbeMakeLabel(pParse) : 0; - sqlite3ExprCodeGetColumnOfTable(v, pTab, iDataCur, j, 3); - if( sqlite3VdbeGetOp(v,-1)->opcode==OP_Column ){ - sqlite3VdbeChangeP5(v, OPFLAG_TYPEOFARG); + if( bStrict ){ + doTypeCheck = pCol->eCType>COLTYPE_ANY; + }else{ + doTypeCheck = pCol->affinity>SQLITE_AFF_BLOB; } + if( pCol->notNull==0 && !doTypeCheck ) continue; + + /* Compute the operands that will be needed for OP_IsType */ + p4 = SQLITE_NULL; + if( pCol->colFlags & COLFLAG_VIRTUAL ){ + sqlite3ExprCodeGetColumnOfTable(v, pTab, iDataCur, j, 3); + p1 = -1; + p3 = 3; + }else{ + if( pCol->iDflt ){ + sqlite3_value *pDfltValue = 0; + sqlite3ValueFromExpr(db, sqlite3ColumnExpr(pTab,pCol), ENC(db), + pCol->affinity, &pDfltValue); + if( pDfltValue ){ + p4 = sqlite3_value_type(pDfltValue); + sqlite3ValueFree(pDfltValue); + } + } + p1 = iDataCur; + if( !HasRowid(pTab) ){ + testcase( j!=sqlite3TableColumnToStorage(pTab, j) ); + p3 = sqlite3TableColumnToIndex(sqlite3PrimaryKeyIndex(pTab), j); + }else{ + p3 = sqlite3TableColumnToStorage(pTab,j); + testcase( p3!=j); + } + } + + labelError = sqlite3VdbeMakeLabel(pParse); + labelOk = sqlite3VdbeMakeLabel(pParse); if( pCol->notNull ){ - jmp2 = sqlite3VdbeAddOp1(v, OP_NotNull, 3); VdbeCoverage(v); + /* (1) NOT NULL columns may not contain a NULL */ + int jmp3; + int jmp2 = sqlite3VdbeAddOp4Int(v, OP_IsType, p1, labelOk, p3, p4); + VdbeCoverage(v); + if( p1<0 ){ + sqlite3VdbeChangeP5(v, 0x0f); /* INT, REAL, TEXT, or BLOB */ + jmp3 = jmp2; + }else{ + sqlite3VdbeChangeP5(v, 0x0d); /* INT, TEXT, or BLOB */ + /* OP_IsType does not detect NaN values in the database file + ** which should be treated as a NULL. So if the header type + ** is REAL, we have to load the actual data using OP_Column + ** to reliably determine if the value is a NULL. */ + sqlite3VdbeAddOp3(v, OP_Column, p1, p3, 3); + jmp3 = sqlite3VdbeAddOp2(v, OP_NotNull, 3, labelOk); + VdbeCoverage(v); + } zErr = sqlite3MPrintf(db, "NULL value in %s.%s", pTab->zName, pCol->zCnName); sqlite3VdbeAddOp4(v, OP_String8, 0, 3, 0, zErr, P4_DYNAMIC); - if( bStrict && pCol->eCType!=COLTYPE_ANY ){ - sqlite3VdbeGoto(v, doError); + if( doTypeCheck ){ + sqlite3VdbeGoto(v, labelError); + sqlite3VdbeJumpHere(v, jmp2); + sqlite3VdbeJumpHere(v, jmp3); }else{ - integrityCheckResultRow(v); + /* VDBE byte code will fall thru */ } - sqlite3VdbeJumpHere(v, jmp2); } - if( (pTab->tabFlags & TF_Strict)!=0 - && pCol->eCType!=COLTYPE_ANY - ){ - jmp2 = sqlite3VdbeAddOp3(v, OP_IsNullOrType, 3, 0, - sqlite3StdTypeMap[pCol->eCType-1]); + if( bStrict && doTypeCheck ){ + /* (2) Datatype must be exact for non-ANY columns in STRICT tables*/ + static unsigned char aStdTypeMask[] = { + 0x1f, /* ANY */ + 0x18, /* BLOB */ + 0x11, /* INT */ + 0x11, /* INTEGER */ + 0x13, /* REAL */ + 0x14 /* TEXT */ + }; + sqlite3VdbeAddOp4Int(v, OP_IsType, p1, labelOk, p3, p4); + assert( pCol->eCType>=1 && pCol->eCType<=sizeof(aStdTypeMask) ); + sqlite3VdbeChangeP5(v, aStdTypeMask[pCol->eCType-1]); VdbeCoverage(v); zErr = sqlite3MPrintf(db, "non-%s value in %s.%s", sqlite3StdType[pCol->eCType-1], pTab->zName, pTab->aCol[j].zCnName); sqlite3VdbeAddOp4(v, OP_String8, 0, 3, 0, zErr, P4_DYNAMIC); - sqlite3VdbeResolveLabel(v, doError); - integrityCheckResultRow(v); - sqlite3VdbeJumpHere(v, jmp2); + }else if( !bStrict && pCol->affinity==SQLITE_AFF_TEXT ){ + /* (3) Datatype for TEXT columns in non-STRICT tables must be + ** NULL, TEXT, or BLOB. */ + sqlite3VdbeAddOp4Int(v, OP_IsType, p1, labelOk, p3, p4); + sqlite3VdbeChangeP5(v, 0x1c); /* NULL, TEXT, or BLOB */ + VdbeCoverage(v); + zErr = sqlite3MPrintf(db, "NUMERIC value in %s.%s", + pTab->zName, pTab->aCol[j].zCnName); + sqlite3VdbeAddOp4(v, OP_String8, 0, 3, 0, zErr, P4_DYNAMIC); + }else if( !bStrict && pCol->affinity>=SQLITE_AFF_NUMERIC ){ + /* (4) Datatype for numeric columns in non-STRICT tables must not + ** be a TEXT value that can be converted to numeric. */ + sqlite3VdbeAddOp4Int(v, OP_IsType, p1, labelOk, p3, p4); + sqlite3VdbeChangeP5(v, 0x1b); /* NULL, INT, FLOAT, or BLOB */ + VdbeCoverage(v); + if( p1>=0 ){ + sqlite3ExprCodeGetColumnOfTable(v, pTab, iDataCur, j, 3); + } + sqlite3VdbeAddOp4(v, OP_Affinity, 3, 1, 0, "C", P4_STATIC); + sqlite3VdbeAddOp4Int(v, OP_IsType, -1, labelOk, 3, p4); + sqlite3VdbeChangeP5(v, 0x1c); /* NULL, TEXT, or BLOB */ + VdbeCoverage(v); + zErr = sqlite3MPrintf(db, "TEXT value in %s.%s", + pTab->zName, pTab->aCol[j].zCnName); + sqlite3VdbeAddOp4(v, OP_String8, 0, 3, 0, zErr, P4_DYNAMIC); } + sqlite3VdbeResolveLabel(v, labelError); + integrityCheckResultRow(v); + sqlite3VdbeResolveLabel(v, labelOk); } /* Verify CHECK constraints */ if( pTab->pCheck && (db->flags & SQLITE_IgnoreChecks)==0 ){ @@ -133648,7 +136989,8 @@ SQLITE_PRIVATE void sqlite3Pragma( if( !isQuick ){ /* Omit the remaining tests for quick_check */ /* Validate index entries for the current row */ for(j=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, j++){ - int jmp2, jmp3, jmp4, jmp5; + int jmp2, jmp3, jmp4, jmp5, label6; + int kk; int ckUniq = sqlite3VdbeMakeLabel(pParse); if( pPk==pIdx ) continue; r1 = sqlite3GenerateIndexKey(pParse, pIdx, iDataCur, 0, 0, &jmp3, @@ -133666,13 +137008,49 @@ SQLITE_PRIVATE void sqlite3Pragma( sqlite3VdbeAddOp3(v, OP_Concat, 4, 3, 3); jmp4 = integrityCheckResultRow(v); sqlite3VdbeJumpHere(v, jmp2); + + /* The OP_IdxRowid opcode is an optimized version of OP_Column + ** that extracts the rowid off the end of the index record. + ** But it only works correctly if index record does not have + ** any extra bytes at the end. Verify that this is the case. */ + if( HasRowid(pTab) ){ + int jmp7; + sqlite3VdbeAddOp2(v, OP_IdxRowid, iIdxCur+j, 3); + jmp7 = sqlite3VdbeAddOp3(v, OP_Eq, 3, 0, r1+pIdx->nColumn-1); + VdbeCoverageNeverNull(v); + sqlite3VdbeLoadString(v, 3, + "rowid not at end-of-record for row "); + sqlite3VdbeAddOp3(v, OP_Concat, 7, 3, 3); + sqlite3VdbeLoadString(v, 4, " of index "); + sqlite3VdbeGoto(v, jmp5-1); + sqlite3VdbeJumpHere(v, jmp7); + } + + /* Any indexed columns with non-BINARY collations must still hold + ** the exact same text value as the table. */ + label6 = 0; + for(kk=0; kknKeyCol; kk++){ + if( pIdx->azColl[kk]==sqlite3StrBINARY ) continue; + if( label6==0 ) label6 = sqlite3VdbeMakeLabel(pParse); + sqlite3VdbeAddOp3(v, OP_Column, iIdxCur+j, kk, 3); + sqlite3VdbeAddOp3(v, OP_Ne, 3, label6, r1+kk); VdbeCoverage(v); + } + if( label6 ){ + int jmp6 = sqlite3VdbeAddOp0(v, OP_Goto); + sqlite3VdbeResolveLabel(v, label6); + sqlite3VdbeLoadString(v, 3, "row "); + sqlite3VdbeAddOp3(v, OP_Concat, 7, 3, 3); + sqlite3VdbeLoadString(v, 4, " values differ from index "); + sqlite3VdbeGoto(v, jmp5-1); + sqlite3VdbeJumpHere(v, jmp6); + } + /* For UNIQUE indexes, verify that only one entry exists with the ** current key. The entry is unique if (1) any column is NULL ** or (2) the next entry has a different key */ if( IsUniqueIndex(pIdx) ){ int uniqOk = sqlite3VdbeMakeLabel(pParse); int jmp6; - int kk; for(kk=0; kknKeyCol; kk++){ int iCol = pIdx->aiColumn[kk]; assert( iCol!=XN_ROWID && iColnCol ); @@ -133707,6 +137085,9 @@ SQLITE_PRIVATE void sqlite3Pragma( integrityCheckResultRow(v); sqlite3VdbeJumpHere(v, addr); } + if( pPk ){ + sqlite3ReleaseTempRange(pParse, r2, pPk->nKeyCol); + } } } } @@ -133857,6 +137238,11 @@ SQLITE_PRIVATE void sqlite3Pragma( aOp[1].p2 = iCookie; aOp[1].p3 = sqlite3Atoi(zRight); aOp[1].p5 = 1; + if( iCookie==BTREE_SCHEMA_VERSION && (db->flags & SQLITE_Defensive)!=0 ){ + /* Do not allow the use of PRAGMA schema_version=VALUE in defensive + ** mode. Change the OP_SetCookie opcode into a no-op. */ + aOp[1].opcode = OP_Noop; + } }else{ /* Read the specified cookie value */ static const VdbeOpList readCookie[] = { @@ -134837,7 +138223,14 @@ SQLITE_PRIVATE int sqlite3InitOne(sqlite3 *db, int iDb, char **pzErrMsg, u32 mFl #else encoding = SQLITE_UTF8; #endif - sqlite3SetTextEncoding(db, encoding); + if( db->nVdbeActive>0 && encoding!=ENC(db) + && (db->mDbFlags & DBFLAG_Vacuum)==0 + ){ + rc = SQLITE_LOCKED; + goto initone_error_out; + }else{ + sqlite3SetTextEncoding(db, encoding); + } }else{ /* If opening an attached database, the encoding much match ENC(db) */ if( (meta[BTREE_TEXT_ENCODING-1] & 3)!=ENC(db) ){ @@ -135051,8 +138444,8 @@ static void schemaIsValid(Parse *pParse){ sqlite3BtreeGetMeta(pBt, BTREE_SCHEMA_VERSION, (u32 *)&cookie); assert( sqlite3SchemaMutexHeld(db, iDb, 0) ); if( cookie!=db->aDb[iDb].pSchema->schema_cookie ){ + if( DbHasProperty(db, iDb, DB_SchemaLoaded) ) pParse->rc = SQLITE_SCHEMA; sqlite3ResetOneSchema(db, iDb); - pParse->rc = SQLITE_SCHEMA; } /* Close the transaction, if one was opened. */ @@ -135105,15 +138498,15 @@ SQLITE_PRIVATE void sqlite3ParseObjectReset(Parse *pParse){ assert( db->pParse==pParse ); assert( pParse->nested==0 ); #ifndef SQLITE_OMIT_SHARED_CACHE - sqlite3DbFree(db, pParse->aTableLock); + if( pParse->aTableLock ) sqlite3DbNNFreeNN(db, pParse->aTableLock); #endif while( pParse->pCleanup ){ ParseCleanup *pCleanup = pParse->pCleanup; pParse->pCleanup = pCleanup->pNext; pCleanup->xCleanup(db, pCleanup->pPtr); - sqlite3DbFreeNN(db, pCleanup); + sqlite3DbNNFreeNN(db, pCleanup); } - sqlite3DbFree(db, pParse->aLabel); + if( pParse->aLabel ) sqlite3DbNNFreeNN(db, pParse->aLabel); if( pParse->pConstExpr ){ sqlite3ExprListDelete(db, pParse->pConstExpr); } @@ -135226,7 +138619,11 @@ static int sqlite3Prepare( sParse.db = db; sParse.pReprepare = pReprepare; assert( ppStmt && *ppStmt==0 ); - if( db->mallocFailed ) sqlite3ErrorMsg(&sParse, "out of memory"); + if( db->mallocFailed ){ + sqlite3ErrorMsg(&sParse, "out of memory"); + db->errCode = rc = SQLITE_NOMEM; + goto end_prepare; + } assert( sqlite3_mutex_held(db->mutex) ); /* For a long-term use prepared statement avoid the use of @@ -135236,7 +138633,7 @@ static int sqlite3Prepare( sParse.disableLookaside++; DisableLookaside; } - sParse.disableVtab = (prepFlags & SQLITE_PREPARE_NO_VTAB)!=0; + sParse.prepFlags = prepFlags & 0xff; /* Check to verify that it is possible to get a read lock on all ** database schemas. The inability to get a read lock indicates that @@ -135277,7 +138674,9 @@ static int sqlite3Prepare( } } - sqlite3VtabUnlockList(db); +#ifndef SQLITE_OMIT_VIRTUALTABLE + if( db->pDisconnect ) sqlite3VtabUnlockList(db); +#endif if( nBytes>=0 && (nBytes==0 || zSql[nBytes-1]!=0) ){ char *zSqlCopy; @@ -135661,6 +139060,10 @@ struct SortCtx { } aDefer[4]; #endif struct RowLoadInfo *pDeferredRowLoad; /* Deferred row loading info or NULL */ +#ifdef SQLITE_ENABLE_STMT_SCANSTATUS + int addrPush; /* First instruction to push data into sorter */ + int addrPushEnd; /* Last instruction that pushes data into sorter */ +#endif }; #define SORTFLAG_UseSorter 0x01 /* Use SorterOpen instead of OpenEphemeral */ @@ -135672,6 +139075,7 @@ struct SortCtx { ** If bFree==0, Leave the first Select object unfreed */ static void clearSelect(sqlite3 *db, Select *p, int bFree){ + assert( db!=0 ); while( p ){ Select *pPrior = p->pPrior; sqlite3ExprListDelete(db, p->pEList); @@ -135691,7 +139095,7 @@ static void clearSelect(sqlite3 *db, Select *p, int bFree){ sqlite3WindowUnlinkFromSelect(p->pWin); } #endif - if( bFree ) sqlite3DbFreeNN(db, p); + if( bFree ) sqlite3DbNNFreeNN(db, p); p = pPrior; bFree = 1; } @@ -136308,7 +139712,7 @@ static void pushOntoSorter( ** (2) All output columns are included in the sort record. In that ** case regData==regOrigData. ** (3) Some output columns are omitted from the sort record due to - ** the SQLITE_ENABLE_SORTER_REFERENCE optimization, or due to the + ** the SQLITE_ENABLE_SORTER_REFERENCES optimization, or due to the ** SQLITE_ECEL_OMITREF optimization, or due to the ** SortCtx.pDeferredRowLoad optimiation. In any of these cases ** regOrigData is 0 to prevent this routine from trying to copy @@ -136316,6 +139720,10 @@ static void pushOntoSorter( */ assert( nData==1 || regData==regOrigData || regOrigData==0 ); +#ifdef SQLITE_ENABLE_STMT_SCANSTATUS + pSort->addrPush = sqlite3VdbeCurrentAddr(v); +#endif + if( nPrefixReg ){ assert( nPrefixReg==nExpr+bSeq ); regBase = regData - nPrefixReg; @@ -136416,6 +139824,9 @@ static void pushOntoSorter( sqlite3VdbeChangeP2(v, iSkip, pSort->labelOBLopt ? pSort->labelOBLopt : sqlite3VdbeCurrentAddr(v)); } +#ifdef SQLITE_ENABLE_STMT_SCANSTATUS + pSort->addrPushEnd = sqlite3VdbeCurrentAddr(v)-1; +#endif } /* @@ -137097,9 +140508,10 @@ SQLITE_PRIVATE KeyInfo *sqlite3KeyInfoAlloc(sqlite3 *db, int N, int X){ */ SQLITE_PRIVATE void sqlite3KeyInfoUnref(KeyInfo *p){ if( p ){ + assert( p->db!=0 ); assert( p->nRef>0 ); p->nRef--; - if( p->nRef==0 ) sqlite3DbFreeNN(p->db, p); + if( p->nRef==0 ) sqlite3DbNNFreeNN(p->db, p); } } @@ -137238,6 +140650,16 @@ static void generateSortTail( int bSeq; /* True if sorter record includes seq. no. */ int nRefKey = 0; struct ExprList_item *aOutEx = p->pEList->a; +#ifdef SQLITE_ENABLE_STMT_SCANSTATUS + int addrExplain; /* Address of OP_Explain instruction */ +#endif + + ExplainQueryPlan2(addrExplain, (pParse, 0, + "USE TEMP B-TREE FOR %sORDER BY", pSort->nOBSat>0?"RIGHT PART OF ":"") + ); + sqlite3VdbeScanStatusRange(v, addrExplain,pSort->addrPush,pSort->addrPushEnd); + sqlite3VdbeScanStatusCounters(v, addrExplain, addrExplain, pSort->addrPush); + assert( addrBreak<0 ); if( pSort->labelBkOut ){ @@ -137350,6 +140772,7 @@ static void generateSortTail( VdbeComment((v, "%s", aOutEx[i].zEName)); } } + sqlite3VdbeScanStatusRange(v, addrExplain, addrExplain, -1); switch( eDest ){ case SRT_Table: case SRT_EphemTab: { @@ -137411,6 +140834,7 @@ static void generateSortTail( }else{ sqlite3VdbeAddOp2(v, OP_Next, iTab, addr); VdbeCoverage(v); } + sqlite3VdbeScanStatusRange(v, addrExplain, sqlite3VdbeCurrentAddr(v)-1, -1); if( pSort->regReturn ) sqlite3VdbeAddOp1(v, OP_Return, pSort->regReturn); sqlite3VdbeResolveLabel(v, addrBreak); } @@ -137419,9 +140843,6 @@ static void generateSortTail( ** Return a pointer to a string containing the 'declaration type' of the ** expression pExpr. The string may be treated as static by the caller. ** -** Also try to estimate the size of the returned value and return that -** result in *pEstWidth. -** ** The declaration type is the exact datatype definition extracted from the ** original CREATE TABLE statement if the expression is a column. The ** declaration type for a ROWID field is INTEGER. Exactly when an expression @@ -137685,7 +141106,7 @@ SQLITE_PRIVATE void sqlite3GenerateColumnNames( if( pParse->colNamesSet ) return; /* Column names are determined by the left-most term of a compound select */ while( pSelect->pPrior ) pSelect = pSelect->pPrior; - SELECTTRACE(1,pParse,pSelect,("generating column names\n")); + TREETRACE(0x80,pParse,pSelect,("generating column names\n")); pTabList = pSelect->pSrc; pEList = pSelect->pEList; assert( v!=0 ); @@ -137785,7 +141206,7 @@ SQLITE_PRIVATE int sqlite3ColumnsFromExprList( *pnCol = nCol; *paCol = aCol; - for(i=0, pCol=aCol; imallocFailed; i++, pCol++){ + for(i=0, pCol=aCol; inErr; i++, pCol++){ struct ExprList_item *pX = &pEList->a[i]; struct ExprList_item *pCollide; /* Get an appropriate name for the column @@ -137835,7 +141256,10 @@ SQLITE_PRIVATE int sqlite3ColumnsFromExprList( if( zName[j]==':' ) nName = j; } zName = sqlite3MPrintf(db, "%.*z:%u", nName, zName, ++cnt); - if( cnt>3 ) sqlite3_randomness(sizeof(cnt), &cnt); + sqlite3ProgressCheck(pParse); + if( cnt>3 ){ + sqlite3_randomness(sizeof(cnt), &cnt); + } } pCol->zCnName = zName; pCol->hName = sqlite3StrIHash(zName); @@ -137848,71 +141272,104 @@ SQLITE_PRIVATE int sqlite3ColumnsFromExprList( } } sqlite3HashClear(&ht); - if( db->mallocFailed ){ + if( pParse->nErr ){ for(j=0; jrc; } return SQLITE_OK; } /* -** Add type and collation information to a column list based on -** a SELECT statement. +** pTab is a transient Table object that represents a subquery of some +** kind (maybe a parenthesized subquery in the FROM clause of a larger +** query, or a VIEW, or a CTE). This routine computes type information +** for that Table object based on the Select object that implements the +** subquery. For the purposes of this routine, "type infomation" means: ** -** The column list presumably came from selectColumnNamesFromExprList(). -** The column list has only names, not types or collations. This -** routine goes through and adds the types and collations. -** -** This routine requires that all identifiers in the SELECT -** statement be resolved. +** * The datatype name, as it might appear in a CREATE TABLE statement +** * Which collating sequence to use for the column +** * The affinity of the column */ -SQLITE_PRIVATE void sqlite3SelectAddColumnTypeAndCollation( - Parse *pParse, /* Parsing contexts */ - Table *pTab, /* Add column type information to this table */ - Select *pSelect, /* SELECT used to determine types and collations */ - char aff /* Default affinity for columns */ +SQLITE_PRIVATE void sqlite3SubqueryColumnTypes( + Parse *pParse, /* Parsing contexts */ + Table *pTab, /* Add column type information to this table */ + Select *pSelect, /* SELECT used to determine types and collations */ + char aff /* Default affinity. */ ){ sqlite3 *db = pParse->db; - NameContext sNC; Column *pCol; CollSeq *pColl; - int i; + int i,j; Expr *p; struct ExprList_item *a; + NameContext sNC; assert( pSelect!=0 ); assert( (pSelect->selFlags & SF_Resolved)!=0 ); - assert( pTab->nCol==pSelect->pEList->nExpr || db->mallocFailed ); - if( db->mallocFailed ) return; + assert( pTab->nCol==pSelect->pEList->nExpr || pParse->nErr>0 ); + assert( aff==SQLITE_AFF_NONE || aff==SQLITE_AFF_BLOB ); + if( db->mallocFailed || IN_RENAME_OBJECT ) return; + while( pSelect->pPrior ) pSelect = pSelect->pPrior; + a = pSelect->pEList->a; memset(&sNC, 0, sizeof(sNC)); sNC.pSrcList = pSelect->pSrc; - a = pSelect->pEList->a; for(i=0, pCol=pTab->aCol; inCol; i++, pCol++){ const char *zType; - i64 n, m; + i64 n; pTab->tabFlags |= (pCol->colFlags & COLFLAG_NOINSERT); p = a[i].pExpr; - zType = columnType(&sNC, p, 0, 0, 0); /* pCol->szEst = ... // Column size est for SELECT tables never used */ pCol->affinity = sqlite3ExprAffinity(p); + if( pCol->affinity<=SQLITE_AFF_NONE ){ + pCol->affinity = aff; + } + if( pCol->affinity>=SQLITE_AFF_TEXT && pSelect->pNext ){ + int m = 0; + Select *pS2; + for(m=0, pS2=pSelect->pNext; pS2; pS2=pS2->pNext){ + m |= sqlite3ExprDataType(pS2->pEList->a[i].pExpr); + } + if( pCol->affinity==SQLITE_AFF_TEXT && (m&0x01)!=0 ){ + pCol->affinity = SQLITE_AFF_BLOB; + }else + if( pCol->affinity>=SQLITE_AFF_NUMERIC && (m&0x02)!=0 ){ + pCol->affinity = SQLITE_AFF_BLOB; + } + if( pCol->affinity>=SQLITE_AFF_NUMERIC && p->op==TK_CAST ){ + pCol->affinity = SQLITE_AFF_FLEXNUM; + } + } + zType = columnType(&sNC, p, 0, 0, 0); + if( zType==0 || pCol->affinity!=sqlite3AffinityType(zType, 0) ){ + if( pCol->affinity==SQLITE_AFF_NUMERIC + || pCol->affinity==SQLITE_AFF_FLEXNUM + ){ + zType = "NUM"; + }else{ + zType = 0; + for(j=1; jaffinity ){ + zType = sqlite3StdType[j]; + break; + } + } + } + } if( zType ){ - m = sqlite3Strlen30(zType); + i64 m = sqlite3Strlen30(zType); n = sqlite3Strlen30(pCol->zCnName); pCol->zCnName = sqlite3DbReallocOrFree(db, pCol->zCnName, n+m+2); + pCol->colFlags &= ~(COLFLAG_HASTYPE|COLFLAG_HASCOLL); if( pCol->zCnName ){ memcpy(&pCol->zCnName[n+1], zType, m+1); pCol->colFlags |= COLFLAG_HASTYPE; - }else{ - testcase( pCol->colFlags & COLFLAG_HASTYPE ); - pCol->colFlags &= ~(COLFLAG_HASTYPE|COLFLAG_HASCOLL); } } - if( pCol->affinity<=SQLITE_AFF_NONE ) pCol->affinity = aff; pColl = sqlite3ExprCollSeq(pParse, p); if( pColl ){ assert( pTab->pIndex==0 ); @@ -137946,7 +141403,7 @@ SQLITE_PRIVATE Table *sqlite3ResultSetOfSelect(Parse *pParse, Select *pSelect, c pTab->zName = 0; pTab->nRowLogEst = 200; assert( 200==sqlite3LogEst(1048576) ); sqlite3ColumnsFromExprList(pParse, pSelect->pEList, &pTab->nCol, &pTab->aCol); - sqlite3SelectAddColumnTypeAndCollation(pParse, pTab, pSelect, aff); + sqlite3SubqueryColumnTypes(pParse, pTab, pSelect, aff); pTab->iPKey = -1; if( db->mallocFailed ){ sqlite3DeleteTable(db, pTab); @@ -138471,7 +141928,7 @@ static int multiSelect( pPrior->iLimit = p->iLimit; pPrior->iOffset = p->iOffset; pPrior->pLimit = p->pLimit; - SELECTTRACE(1, pParse, p, ("multiSelect UNION ALL left...\n")); + TREETRACE(0x200, pParse, p, ("multiSelect UNION ALL left...\n")); rc = sqlite3Select(pParse, pPrior, &dest); pPrior->pLimit = 0; if( rc ){ @@ -138489,7 +141946,7 @@ static int multiSelect( } } ExplainQueryPlan((pParse, 1, "UNION ALL")); - SELECTTRACE(1, pParse, p, ("multiSelect UNION ALL right...\n")); + TREETRACE(0x200, pParse, p, ("multiSelect UNION ALL right...\n")); rc = sqlite3Select(pParse, p, &dest); testcase( rc!=SQLITE_OK ); pDelete = p->pPrior; @@ -138542,7 +141999,7 @@ static int multiSelect( */ assert( !pPrior->pOrderBy ); sqlite3SelectDestInit(&uniondest, priorOp, unionTab); - SELECTTRACE(1, pParse, p, ("multiSelect EXCEPT/UNION left...\n")); + TREETRACE(0x200, pParse, p, ("multiSelect EXCEPT/UNION left...\n")); rc = sqlite3Select(pParse, pPrior, &uniondest); if( rc ){ goto multi_select_end; @@ -138562,7 +142019,7 @@ static int multiSelect( uniondest.eDest = op; ExplainQueryPlan((pParse, 1, "%s USING TEMP B-TREE", sqlite3SelectOpName(p->op))); - SELECTTRACE(1, pParse, p, ("multiSelect EXCEPT/UNION right...\n")); + TREETRACE(0x200, pParse, p, ("multiSelect EXCEPT/UNION right...\n")); rc = sqlite3Select(pParse, p, &uniondest); testcase( rc!=SQLITE_OK ); assert( p->pOrderBy==0 ); @@ -138623,7 +142080,7 @@ static int multiSelect( /* Code the SELECTs to our left into temporary table "tab1". */ sqlite3SelectDestInit(&intersectdest, SRT_Union, tab1); - SELECTTRACE(1, pParse, p, ("multiSelect INTERSECT left...\n")); + TREETRACE(0x400, pParse, p, ("multiSelect INTERSECT left...\n")); rc = sqlite3Select(pParse, pPrior, &intersectdest); if( rc ){ goto multi_select_end; @@ -138640,7 +142097,7 @@ static int multiSelect( intersectdest.iSDParm = tab2; ExplainQueryPlan((pParse, 1, "%s USING TEMP B-TREE", sqlite3SelectOpName(p->op))); - SELECTTRACE(1, pParse, p, ("multiSelect INTERSECT right...\n")); + TREETRACE(0x400, pParse, p, ("multiSelect INTERSECT right...\n")); rc = sqlite3Select(pParse, p, &intersectdest); testcase( rc!=SQLITE_OK ); pDelete = p->pPrior; @@ -139287,8 +142744,8 @@ static int multiSelectOrderBy( */ sqlite3VdbeResolveLabel(v, labelEnd); - /* Reassemble the compound query so that it will be freed correctly - ** by the calling function */ + /* Make arrangements to free the 2nd and subsequent arms of the compound + ** after the parse has finished */ if( pSplit->pPrior ){ sqlite3ParserAddCleanup(pParse, (void(*)(sqlite3*,void*))sqlite3SelectDelete, pSplit->pPrior); @@ -139321,7 +142778,7 @@ static int multiSelectOrderBy( ** the left operands of a RIGHT JOIN. In either case, we need to potentially ** bypass the substituted expression with OP_IfNullRow. ** -** Suppose the original expression integer constant. Even though the table +** Suppose the original expression is an integer constant. Even though the table ** has the nullRow flag set, because the expression is an integer constant, ** it will not be NULLed out. So instead, we insert an OP_IfNullRow opcode ** that checks to see if the nullRow flag is set on the table. If the nullRow @@ -139347,6 +142804,7 @@ typedef struct SubstContext { int iNewTable; /* New table number */ int isOuterJoin; /* Add TK_IF_NULL_ROW opcodes on each replacement */ ExprList *pEList; /* Replacement expressions */ + ExprList *pCList; /* Collation sequences for replacement expr */ } SubstContext; /* Forward Declarations */ @@ -139388,19 +142846,23 @@ static Expr *substExpr( #endif { Expr *pNew; - Expr *pCopy = pSubst->pEList->a[pExpr->iColumn].pExpr; + int iColumn = pExpr->iColumn; + Expr *pCopy = pSubst->pEList->a[iColumn].pExpr; Expr ifNullRow; - assert( pSubst->pEList!=0 && pExpr->iColumnpEList->nExpr ); + assert( pSubst->pEList!=0 && iColumnpEList->nExpr ); assert( pExpr->pRight==0 ); if( sqlite3ExprIsVector(pCopy) ){ sqlite3VectorErrorMsg(pSubst->pParse, pCopy); }else{ sqlite3 *db = pSubst->pParse->db; - if( pSubst->isOuterJoin && pCopy->op!=TK_COLUMN ){ + if( pSubst->isOuterJoin + && (pCopy->op!=TK_COLUMN || pCopy->iTable!=pSubst->iNewTable) + ){ memset(&ifNullRow, 0, sizeof(ifNullRow)); ifNullRow.op = TK_IF_NULL_ROW; ifNullRow.pLeft = pCopy; ifNullRow.iTable = pSubst->iNewTable; + ifNullRow.iColumn = -99; ifNullRow.flags = EP_IfNullRow; pCopy = &ifNullRow; } @@ -139427,11 +142889,16 @@ static Expr *substExpr( /* Ensure that the expression now has an implicit collation sequence, ** just as it did when it was a column of a view or sub-query. */ - if( pExpr->op!=TK_COLUMN && pExpr->op!=TK_COLLATE ){ - CollSeq *pColl = sqlite3ExprCollSeq(pSubst->pParse, pExpr); - pExpr = sqlite3ExprAddCollateString(pSubst->pParse, pExpr, - (pColl ? pColl->zName : "BINARY") + { + CollSeq *pNat = sqlite3ExprCollSeq(pSubst->pParse, pExpr); + CollSeq *pColl = sqlite3ExprCollSeq(pSubst->pParse, + pSubst->pCList->a[iColumn].pExpr ); + if( pNat!=pColl || (pExpr->op!=TK_COLUMN && pExpr->op!=TK_COLLATE) ){ + pExpr = sqlite3ExprAddCollateString(pSubst->pParse, pExpr, + (pColl ? pColl->zName : "BINARY") + ); + } } ExprClearProperty(pExpr, EP_Collate); } @@ -139624,6 +143091,46 @@ static void renumberCursors( } #endif /* !defined(SQLITE_OMIT_SUBQUERY) || !defined(SQLITE_OMIT_VIEW) */ +/* +** If pSel is not part of a compound SELECT, return a pointer to its +** expression list. Otherwise, return a pointer to the expression list +** of the leftmost SELECT in the compound. +*/ +static ExprList *findLeftmostExprlist(Select *pSel){ + while( pSel->pPrior ){ + pSel = pSel->pPrior; + } + return pSel->pEList; +} + +/* +** Return true if any of the result-set columns in the compound query +** have incompatible affinities on one or more arms of the compound. +*/ +static int compoundHasDifferentAffinities(Select *p){ + int ii; + ExprList *pList; + assert( p!=0 ); + assert( p->pEList!=0 ); + assert( p->pPrior!=0 ); + pList = p->pEList; + for(ii=0; iinExpr; ii++){ + char aff; + Select *pSub1; + assert( pList->a[ii].pExpr!=0 ); + aff = sqlite3ExprAffinity(pList->a[ii].pExpr); + for(pSub1=p->pPrior; pSub1; pSub1=pSub1->pPrior){ + assert( pSub1->pEList!=0 ); + assert( pSub1->pEList->nExpr>ii ); + assert( pSub1->pEList->a[ii].pExpr!=0 ); + if( sqlite3ExprAffinity(pSub1->pEList->a[ii].pExpr)!=aff ){ + return 1; + } + } + } + return 0; +} + #if !defined(SQLITE_OMIT_SUBQUERY) || !defined(SQLITE_OMIT_VIEW) /* ** This routine attempts to flatten subqueries as a performance optimization. @@ -139668,7 +143175,8 @@ static void renumberCursors( ** (3a) the subquery may not be a join and ** (3b) the FROM clause of the subquery may not contain a virtual ** table and -** (3c) the outer query may not be an aggregate. +** (**) Was: "The outer query may not have a GROUP BY." This case +** is now managed correctly ** (3d) the outer query may not be DISTINCT. ** See also (26) for restrictions on RIGHT JOIN. ** @@ -139725,6 +143233,8 @@ static void renumberCursors( ** (17g) either the subquery is the first element of the outer ** query or there are no RIGHT or FULL JOINs in any arm ** of the subquery. (This is a duplicate of condition (27b).) +** (17h) The corresponding result set expressions in all arms of the +** compound must have the same affinity. ** ** The parent and sub-query may contain WHERE clauses. Subject to ** rules (11), (13) and (14), they may also contain ORDER BY, @@ -139776,19 +143286,13 @@ static void renumberCursors( ** See also (3) for restrictions on LEFT JOIN. ** ** (27) The subquery may not contain a FULL or RIGHT JOIN unless it -** is the first element of the parent query. This must be the -** the case if: -** (27a) the subquery is not compound query, and +** is the first element of the parent query. Two subcases: +** (27a) the subquery is not a compound query. ** (27b) the subquery is a compound query and the RIGHT JOIN occurs ** in any arm of the compound query. (See also (17g).) ** ** (28) The subquery is not a MATERIALIZED CTE. ** -** (29) Either the subquery is not the right-hand operand of a join with an -** ON or USING clause nor the right-hand operand of a NATURAL JOIN, or -** the right-most table within the FROM clause of the subquery -** is not part of an outer join. -** ** ** In this routine, the "p" parameter is a pointer to the outer query. ** The subquery is p->pSrc->a[iFrom]. isAgg is true if the outer query @@ -139880,16 +143384,10 @@ static int flattenSubquery( ** ** which is not at all the same thing. ** - ** If the subquery is the right operand of a LEFT JOIN, then the outer - ** query cannot be an aggregate. (3c) This is an artifact of the way - ** aggregates are processed - there is no mechanism to determine if - ** the LEFT JOIN table should be all-NULL. - ** ** See also tickets #306, #350, and #3300. */ if( (pSubitem->fg.jointype & (JT_OUTER|JT_LTORJ))!=0 ){ if( pSubSrc->nSrc>1 /* (3a) */ - || isAgg /* (3c) */ || IsVirtual(pSubSrc->a[0].pTab) /* (3b) */ || (p->selFlags & SF_Distinct)!=0 /* (3d) */ || (pSubitem->fg.jointype & JT_RIGHT)!=0 /* (26) */ @@ -139898,15 +143396,6 @@ static int flattenSubquery( } isOuterJoin = 1; } -#ifdef SQLITE_EXTRA_IFNULLROW - else if( iFrom>0 && !isAgg ){ - /* Setting isOuterJoin to -1 causes OP_IfNullRow opcodes to be generated for - ** every reference to any result column from subquery in a join, even - ** though they are not necessary. This will stress-test the OP_IfNullRow - ** opcode. */ - isOuterJoin = -1; - } -#endif assert( pSubSrc->nSrc>0 ); /* True by restriction (7) */ if( iFrom>0 && (pSubSrc->a[0].fg.jointype & JT_LTORJ)!=0 ){ @@ -139916,41 +143405,13 @@ static int flattenSubquery( return 0; /* (28) */ } - /* Restriction (29): - ** - ** We do not want two constraints on the same term of the flattened - ** query where one constraint has EP_InnerON and the other is EP_OuterON. - ** To prevent this, one or the other of the following conditions must be - ** false: - ** - ** (29a) The right-most entry in the FROM clause of the subquery - ** must not be part of an outer join. - ** - ** (29b) The subquery itself must not be the right operand of a - ** NATURAL join or a join that as an ON or USING clause. - ** - ** These conditions are sufficient to keep an EP_OuterON from being - ** flattened into an EP_InnerON. Restrictions (3a) and (27a) prevent - ** an EP_InnerON from being flattened into an EP_OuterON. - */ - if( pSubSrc->nSrc>=2 - && (pSubSrc->a[pSubSrc->nSrc-1].fg.jointype & JT_OUTER)!=0 - ){ - if( (pSubitem->fg.jointype & JT_NATURAL)!=0 - || pSubitem->fg.isUsing - || NEVER(pSubitem->u3.pOn!=0) /* ON clause already shifted into WHERE */ - || pSubitem->fg.isOn - ){ - return 0; - } - } - /* Restriction (17): If the sub-query is a compound SELECT, then it must ** use only the UNION ALL operator. And none of the simple select queries ** that make up the compound SELECT are allowed to be aggregate or distinct ** queries. */ if( pSub->pPrior ){ + int ii; if( pSub->pOrderBy ){ return 0; /* Restriction (20) */ } @@ -139983,7 +143444,6 @@ static int flattenSubquery( /* Restriction (18). */ if( p->pOrderBy ){ - int ii; for(ii=0; iipOrderBy->nExpr; ii++){ if( p->pOrderBy->a[ii].u.x.iOrderByCol==0 ) return 0; } @@ -139992,6 +143452,9 @@ static int flattenSubquery( /* Restriction (23) */ if( (p->selFlags & SF_Recursive) ) return 0; + /* Restriction (17h) */ + if( compoundHasDifferentAffinities(pSub) ) return 0; + if( pSrc->nSrc>1 ){ if( pParse->nSelect>500 ) return 0; if( OptimizationDisabled(db, SQLITE_FlttnUnionAll) ) return 0; @@ -140001,7 +143464,7 @@ static int flattenSubquery( } /***** If we reach this point, flattening is permitted. *****/ - SELECTTRACE(1,pParse,p,("flatten %u.%p from term %d\n", + TREETRACE(0x4,pParse,p,("flatten %u.%p from term %d\n", pSub->selId, pSub, iFrom)); /* Authorize the subquery */ @@ -140080,7 +143543,7 @@ static int flattenSubquery( if( pPrior ) pPrior->pNext = pNew; pNew->pNext = p; p->pPrior = pNew; - SELECTTRACE(2,pParse,p,("compound-subquery flattener" + TREETRACE(0x4,pParse,p,("compound-subquery flattener" " creates %u as peer\n",pNew->selId)); } assert( pSubitem->pSelect==0 ); @@ -140225,6 +143688,7 @@ static int flattenSubquery( x.iNewTable = iNewParent; x.isOuterJoin = isOuterJoin; x.pEList = pSub->pEList; + x.pCList = findLeftmostExprlist(pSub); substSelect(&x, pParent, 0); } @@ -140244,7 +143708,7 @@ static int flattenSubquery( pSub->pLimit = 0; } - /* Recompute the SrcList_item.colUsed masks for the flattened + /* Recompute the SrcItem.colUsed masks for the flattened ** tables. */ for(i=0; ia[i+iFrom]); @@ -140259,8 +143723,8 @@ static int flattenSubquery( sqlite3SelectDelete(db, pSub1); #if TREETRACE_ENABLED - if( sqlite3TreeTrace & 0x100 ){ - SELECTTRACE(0x100,pParse,p,("After flattening:\n")); + if( sqlite3TreeTrace & 0x4 ){ + TREETRACE(0x4,pParse,p,("After flattening:\n")); sqlite3TreeViewSelect(0, p, 0); } #endif @@ -140634,6 +144098,29 @@ static int pushDownWindowCheck(Parse *pParse, Select *pSubq, Expr *pExpr){ ** be materialized. (This restriction is implemented in the calling ** routine.) ** +** (8) If the subquery is a compound that uses UNION, INTERSECT, +** or EXCEPT, then all of the result set columns for all arms of +** the compound must use the BINARY collating sequence. +** +** (9) All three of the following are true: +** +** (9a) The WHERE clause expression originates in the ON or USING clause +** of a join (either an INNER or an OUTER join), and +** +** (9b) The subquery is to the right of the ON/USING clause +** +** (9c) There is a RIGHT JOIN (or FULL JOIN) in between the ON/USING +** clause and the subquery. +** +** Without this restriction, the push-down optimization might move +** the ON/USING filter expression from the left side of a RIGHT JOIN +** over to the right side, which leads to incorrect answers. See +** also restriction (6) in sqlite3ExprIsSingleTableConstraint(). +** +** (10) The inner query is not the right-hand table of a RIGHT JOIN. +** +** (11) The subquery is not a VALUES clause +** ** Return 0 if no changes are made and non-zero if one or more WHERE clause ** terms are duplicated into the subquery. */ @@ -140641,24 +144128,56 @@ static int pushDownWhereTerms( Parse *pParse, /* Parse context (for malloc() and error reporting) */ Select *pSubq, /* The subquery whose WHERE clause is to be augmented */ Expr *pWhere, /* The WHERE clause of the outer query */ - SrcItem *pSrc /* The subquery term of the outer FROM clause */ + SrcList *pSrcList, /* The complete from clause of the outer query */ + int iSrc /* Which FROM clause term to try to push into */ ){ Expr *pNew; + SrcItem *pSrc; /* The subquery FROM term into which WHERE is pushed */ int nChng = 0; + pSrc = &pSrcList->a[iSrc]; if( pWhere==0 ) return 0; - if( pSubq->selFlags & (SF_Recursive|SF_MultiPart) ) return 0; - if( pSrc->fg.jointype & (JT_LTORJ|JT_RIGHT) ) return 0; + if( pSubq->selFlags & (SF_Recursive|SF_MultiPart) ){ + return 0; /* restrictions (2) and (11) */ + } + if( pSrc->fg.jointype & (JT_LTORJ|JT_RIGHT) ){ + return 0; /* restrictions (10) */ + } -#ifndef SQLITE_OMIT_WINDOWFUNC if( pSubq->pPrior ){ Select *pSel; + int notUnionAll = 0; for(pSel=pSubq; pSel; pSel=pSel->pPrior){ + u8 op = pSel->op; + assert( op==TK_ALL || op==TK_SELECT + || op==TK_UNION || op==TK_INTERSECT || op==TK_EXCEPT ); + if( op!=TK_ALL && op!=TK_SELECT ){ + notUnionAll = 1; + } +#ifndef SQLITE_OMIT_WINDOWFUNC if( pSel->pWin ) return 0; /* restriction (6b) */ +#endif + } + if( notUnionAll ){ + /* If any of the compound arms are connected using UNION, INTERSECT, + ** or EXCEPT, then we must ensure that none of the columns use a + ** non-BINARY collating sequence. */ + for(pSel=pSubq; pSel; pSel=pSel->pPrior){ + int ii; + const ExprList *pList = pSel->pEList; + assert( pList!=0 ); + for(ii=0; iinExpr; ii++){ + CollSeq *pColl = sqlite3ExprCollSeq(pParse, pList->a[ii].pExpr); + if( !sqlite3IsBinary(pColl) ){ + return 0; /* Restriction (8) */ + } + } + } } }else{ +#ifndef SQLITE_OMIT_WINDOWFUNC if( pSubq->pWin && pSubq->pWin->pPartition==0 ) return 0; - } #endif + } #ifdef SQLITE_DEBUG /* Only the first term of a compound can have a WITH clause. But make @@ -140677,11 +144196,28 @@ static int pushDownWhereTerms( return 0; /* restriction (3) */ } while( pWhere->op==TK_AND ){ - nChng += pushDownWhereTerms(pParse, pSubq, pWhere->pRight, pSrc); + nChng += pushDownWhereTerms(pParse, pSubq, pWhere->pRight, pSrcList, iSrc); pWhere = pWhere->pLeft; } -#if 0 /* Legacy code. Checks now done by sqlite3ExprIsTableConstraint() */ +#if 0 /* These checks now done by sqlite3ExprIsSingleTableConstraint() */ + if( ExprHasProperty(pWhere, EP_OuterON|EP_InnerON) /* (9a) */ + && (pSrcList->a[0].fg.jointype & JT_LTORJ)!=0 /* Fast pre-test of (9c) */ + ){ + int jj; + for(jj=0; jjw.iJoin==pSrcList->a[jj].iCursor ){ + /* If we reach this point, both (9a) and (9b) are satisfied. + ** The following loop checks (9c): + */ + for(jj++; jja[jj].fg.jointype & JT_RIGHT)!=0 ){ + return 0; /* restriction (9) */ + } + } + } + } + } if( isLeftJoin && (ExprHasProperty(pWhere,EP_OuterON)==0 || pWhere->w.iJoin!=iCursor) @@ -140695,7 +144231,7 @@ static int pushDownWhereTerms( } #endif - if( sqlite3ExprIsTableConstraint(pWhere, pSrc) ){ + if( sqlite3ExprIsSingleTableConstraint(pWhere, pSrcList, iSrc) ){ nChng++; pSubq->selFlags |= SF_PushDown; while( pSubq ){ @@ -140707,6 +144243,7 @@ static int pushDownWhereTerms( x.iNewTable = pSrc->iCursor; x.isOuterJoin = 0; x.pEList = pSubq->pEList; + x.pCList = findLeftmostExprlist(pSubq); pNew = substExpr(&x, pNew); #ifndef SQLITE_OMIT_WINDOWFUNC if( pSubq->pWin && 0==pushDownWindowCheck(pParse, pSubq, pNew) ){ @@ -140728,6 +144265,78 @@ static int pushDownWhereTerms( } #endif /* !defined(SQLITE_OMIT_SUBQUERY) || !defined(SQLITE_OMIT_VIEW) */ +/* +** Check to see if a subquery contains result-set columns that are +** never used. If it does, change the value of those result-set columns +** to NULL so that they do not cause unnecessary work to compute. +** +** Return the number of column that were changed to NULL. +*/ +static int disableUnusedSubqueryResultColumns(SrcItem *pItem){ + int nCol; + Select *pSub; /* The subquery to be simplified */ + Select *pX; /* For looping over compound elements of pSub */ + Table *pTab; /* The table that describes the subquery */ + int j; /* Column number */ + int nChng = 0; /* Number of columns converted to NULL */ + Bitmask colUsed; /* Columns that may not be NULLed out */ + + assert( pItem!=0 ); + if( pItem->fg.isCorrelated || pItem->fg.isCte ){ + return 0; + } + assert( pItem->pTab!=0 ); + pTab = pItem->pTab; + assert( pItem->pSelect!=0 ); + pSub = pItem->pSelect; + assert( pSub->pEList->nExpr==pTab->nCol ); + if( (pSub->selFlags & (SF_Distinct|SF_Aggregate))!=0 ){ + testcase( pSub->selFlags & SF_Distinct ); + testcase( pSub->selFlags & SF_Aggregate ); + return 0; + } + for(pX=pSub; pX; pX=pX->pPrior){ + if( pX->pPrior && pX->op!=TK_ALL ){ + /* This optimization does not work for compound subqueries that + ** use UNION, INTERSECT, or EXCEPT. Only UNION ALL is allowed. */ + return 0; + } +#ifndef SQLITE_OMIT_WINDOWFUNC + if( pX->pWin ){ + /* This optimization does not work for subqueries that use window + ** functions. */ + return 0; + } +#endif + } + colUsed = pItem->colUsed; + if( pSub->pOrderBy ){ + ExprList *pList = pSub->pOrderBy; + for(j=0; jnExpr; j++){ + u16 iCol = pList->a[j].u.x.iOrderByCol; + if( iCol>0 ){ + iCol--; + colUsed |= ((Bitmask)1)<<(iCol>=BMS ? BMS-1 : iCol); + } + } + } + nCol = pTab->nCol; + for(j=0; jpPrior) { + Expr *pY = pX->pEList->a[j].pExpr; + if( pY->op==TK_NULL ) continue; + pY->op = TK_NULL; + ExprClearProperty(pY, EP_Skip|EP_Unlikely); + pX->selFlags |= SF_PushDown; + nChng++; + } + } + return nChng; +} + + /* ** The pFunc is the only aggregate function in the query. Check to see ** if the query is a candidate for the min/max optimization. @@ -141119,9 +144728,6 @@ static int resolveFromTermToCte( pFrom->fg.isCte = 1; pFrom->u2.pCteUse = pCteUse; pCteUse->nUse++; - if( pCteUse->nUse>=2 && pCteUse->eM10d==M10d_Any ){ - pCteUse->eM10d = M10d_Yes; - } /* Check if this is a recursive CTE. */ pRecTerm = pSel = pFrom->pSelect; @@ -141231,9 +144837,9 @@ SQLITE_PRIVATE void sqlite3SelectPopWith(Walker *pWalker, Select *p){ #endif /* -** The SrcList_item structure passed as the second argument represents a +** The SrcItem structure passed as the second argument represents a ** sub-query in the FROM clause of a SELECT statement. This function -** allocates and populates the SrcList_item.pTab object. If successful, +** allocates and populates the SrcItem.pTab object. If successful, ** SQLITE_OK is returned. Otherwise, if an OOM error is encountered, ** SQLITE_NOMEM. */ @@ -141661,8 +145267,8 @@ static int selectExpander(Walker *pWalker, Select *p){ } } #if TREETRACE_ENABLED - if( sqlite3TreeTrace & 0x100 ){ - SELECTTRACE(0x100,pParse,p,("After result-set wildcard expansion:\n")); + if( sqlite3TreeTrace & 0x8 ){ + TREETRACE(0x8,pParse,p,("After result-set wildcard expansion:\n")); sqlite3TreeViewSelect(0, p, 0); } #endif @@ -141713,14 +145319,14 @@ static void sqlite3SelectExpand(Parse *pParse, Select *pSelect){ ** This is a Walker.xSelectCallback callback for the sqlite3SelectTypeInfo() ** interface. ** -** For each FROM-clause subquery, add Column.zType and Column.zColl -** information to the Table structure that represents the result set -** of that subquery. +** For each FROM-clause subquery, add Column.zType, Column.zColl, and +** Column.affinity information to the Table structure that represents +** the result set of that subquery. ** ** The Table structure that represents the result set was constructed -** by selectExpander() but the type and collation information was omitted -** at that point because identifiers had not yet been resolved. This -** routine is called after identifier resolution. +** by selectExpander() but the type and collation and affinity information +** was omitted at that point because identifiers had not yet been resolved. +** This routine is called after identifier resolution. */ static void selectAddSubqueryTypeInfo(Walker *pWalker, Select *p){ Parse *pParse; @@ -141740,9 +145346,7 @@ static void selectAddSubqueryTypeInfo(Walker *pWalker, Select *p){ /* A sub-query in the FROM clause of a SELECT */ Select *pSel = pFrom->pSelect; if( pSel ){ - while( pSel->pPrior ) pSel = pSel->pPrior; - sqlite3SelectAddColumnTypeAndCollation(pParse, pTab, pSel, - SQLITE_AFF_NONE); + sqlite3SubqueryColumnTypes(pParse, pTab, pSel, SQLITE_AFF_NONE); } } } @@ -141797,6 +145401,178 @@ SQLITE_PRIVATE void sqlite3SelectPrep( sqlite3SelectAddTypeInfo(pParse, p); } +#if TREETRACE_ENABLED +/* +** Display all information about an AggInfo object +*/ +static void printAggInfo(AggInfo *pAggInfo){ + int ii; + for(ii=0; iinColumn; ii++){ + struct AggInfo_col *pCol = &pAggInfo->aCol[ii]; + sqlite3DebugPrintf( + "agg-column[%d] pTab=%s iTable=%d iColumn=%d iMem=%d" + " iSorterColumn=%d %s\n", + ii, pCol->pTab ? pCol->pTab->zName : "NULL", + pCol->iTable, pCol->iColumn, pAggInfo->iFirstReg+ii, + pCol->iSorterColumn, + ii>=pAggInfo->nAccumulator ? "" : " Accumulator"); + sqlite3TreeViewExpr(0, pAggInfo->aCol[ii].pCExpr, 0); + } + for(ii=0; iinFunc; ii++){ + sqlite3DebugPrintf("agg-func[%d]: iMem=%d\n", + ii, pAggInfo->iFirstReg+pAggInfo->nColumn+ii); + sqlite3TreeViewExpr(0, pAggInfo->aFunc[ii].pFExpr, 0); + } +} +#endif /* TREETRACE_ENABLED */ + +/* +** Analyze the arguments to aggregate functions. Create new pAggInfo->aCol[] +** entries for columns that are arguments to aggregate functions but which +** are not otherwise used. +** +** The aCol[] entries in AggInfo prior to nAccumulator are columns that +** are referenced outside of aggregate functions. These might be columns +** that are part of the GROUP by clause, for example. Other database engines +** would throw an error if there is a column reference that is not in the +** GROUP BY clause and that is not part of an aggregate function argument. +** But SQLite allows this. +** +** The aCol[] entries beginning with the aCol[nAccumulator] and following +** are column references that are used exclusively as arguments to +** aggregate functions. This routine is responsible for computing +** (or recomputing) those aCol[] entries. +*/ +static void analyzeAggFuncArgs( + AggInfo *pAggInfo, + NameContext *pNC +){ + int i; + assert( pAggInfo!=0 ); + assert( pAggInfo->iFirstReg==0 ); + pNC->ncFlags |= NC_InAggFunc; + for(i=0; inFunc; i++){ + Expr *pExpr = pAggInfo->aFunc[i].pFExpr; + assert( ExprUseXList(pExpr) ); + sqlite3ExprAnalyzeAggList(pNC, pExpr->x.pList); +#ifndef SQLITE_OMIT_WINDOWFUNC + assert( !IsWindowFunc(pExpr) ); + if( ExprHasProperty(pExpr, EP_WinFunc) ){ + sqlite3ExprAnalyzeAggregates(pNC, pExpr->y.pWin->pFilter); + } +#endif + } + pNC->ncFlags &= ~NC_InAggFunc; +} + +/* +** An index on expressions is being used in the inner loop of an +** aggregate query with a GROUP BY clause. This routine attempts +** to adjust the AggInfo object to take advantage of index and to +** perhaps use the index as a covering index. +** +*/ +static void optimizeAggregateUseOfIndexedExpr( + Parse *pParse, /* Parsing context */ + Select *pSelect, /* The SELECT statement being processed */ + AggInfo *pAggInfo, /* The aggregate info */ + NameContext *pNC /* Name context used to resolve agg-func args */ +){ + assert( pAggInfo->iFirstReg==0 ); + assert( pSelect!=0 ); + assert( pSelect->pGroupBy!=0 ); + pAggInfo->nColumn = pAggInfo->nAccumulator; + if( ALWAYS(pAggInfo->nSortingColumn>0) ){ + int mx = pSelect->pGroupBy->nExpr - 1; + int j, k; + for(j=0; jnColumn; j++){ + k = pAggInfo->aCol[j].iSorterColumn; + if( k>mx ) mx = k; + } + pAggInfo->nSortingColumn = mx+1; + } + analyzeAggFuncArgs(pAggInfo, pNC); +#if TREETRACE_ENABLED + if( sqlite3TreeTrace & 0x20 ){ + IndexedExpr *pIEpr; + TREETRACE(0x20, pParse, pSelect, + ("AggInfo (possibly) adjusted for Indexed Exprs\n")); + sqlite3TreeViewSelect(0, pSelect, 0); + for(pIEpr=pParse->pIdxEpr; pIEpr; pIEpr=pIEpr->pIENext){ + printf("data-cursor=%d index={%d,%d}\n", + pIEpr->iDataCur, pIEpr->iIdxCur, pIEpr->iIdxCol); + sqlite3TreeViewExpr(0, pIEpr->pExpr, 0); + } + printAggInfo(pAggInfo); + } +#else + UNUSED_PARAMETER(pSelect); + UNUSED_PARAMETER(pParse); +#endif +} + +/* +** Walker callback for aggregateConvertIndexedExprRefToColumn(). +*/ +static int aggregateIdxEprRefToColCallback(Walker *pWalker, Expr *pExpr){ + AggInfo *pAggInfo; + struct AggInfo_col *pCol; + UNUSED_PARAMETER(pWalker); + if( pExpr->pAggInfo==0 ) return WRC_Continue; + if( pExpr->op==TK_AGG_COLUMN ) return WRC_Continue; + if( pExpr->op==TK_AGG_FUNCTION ) return WRC_Continue; + if( pExpr->op==TK_IF_NULL_ROW ) return WRC_Continue; + pAggInfo = pExpr->pAggInfo; + if( NEVER(pExpr->iAgg>=pAggInfo->nColumn) ) return WRC_Continue; + assert( pExpr->iAgg>=0 ); + pCol = &pAggInfo->aCol[pExpr->iAgg]; + pExpr->op = TK_AGG_COLUMN; + pExpr->iTable = pCol->iTable; + pExpr->iColumn = pCol->iColumn; + ExprClearProperty(pExpr, EP_Skip|EP_Collate); + return WRC_Prune; +} + +/* +** Convert every pAggInfo->aFunc[].pExpr such that any node within +** those expressions that has pAppInfo set is changed into a TK_AGG_COLUMN +** opcode. +*/ +static void aggregateConvertIndexedExprRefToColumn(AggInfo *pAggInfo){ + int i; + Walker w; + memset(&w, 0, sizeof(w)); + w.xExprCallback = aggregateIdxEprRefToColCallback; + for(i=0; inFunc; i++){ + sqlite3WalkExpr(&w, pAggInfo->aFunc[i].pFExpr); + } +} + + +/* +** Allocate a block of registers so that there is one register for each +** pAggInfo->aCol[] and pAggInfo->aFunc[] entry in pAggInfo. The first +** register in this block is stored in pAggInfo->iFirstReg. +** +** This routine may only be called once for each AggInfo object. Prior +** to calling this routine: +** +** * The aCol[] and aFunc[] arrays may be modified +** * The AggInfoColumnReg() and AggInfoFuncReg() macros may not be used +** +** After clling this routine: +** +** * The aCol[] and aFunc[] arrays are fixed +** * The AggInfoColumnReg() and AggInfoFuncReg() macros may be used +** +*/ +static void assignAggregateRegisters(Parse *pParse, AggInfo *pAggInfo){ + assert( pAggInfo!=0 ); + assert( pAggInfo->iFirstReg==0 ); + pAggInfo->iFirstReg = pParse->nMem + 1; + pParse->nMem += pAggInfo->nColumn + pAggInfo->nFunc; +} + /* ** Reset the aggregate accumulator. ** @@ -141810,24 +145586,13 @@ static void resetAccumulator(Parse *pParse, AggInfo *pAggInfo){ int i; struct AggInfo_func *pFunc; int nReg = pAggInfo->nFunc + pAggInfo->nColumn; + assert( pAggInfo->iFirstReg>0 ); assert( pParse->db->pParse==pParse ); assert( pParse->db->mallocFailed==0 || pParse->nErr!=0 ); if( nReg==0 ) return; if( pParse->nErr ) return; -#ifdef SQLITE_DEBUG - /* Verify that all AggInfo registers are within the range specified by - ** AggInfo.mnReg..AggInfo.mxReg */ - assert( nReg==pAggInfo->mxReg-pAggInfo->mnReg+1 ); - for(i=0; inColumn; i++){ - assert( pAggInfo->aCol[i].iMem>=pAggInfo->mnReg - && pAggInfo->aCol[i].iMem<=pAggInfo->mxReg ); - } - for(i=0; inFunc; i++){ - assert( pAggInfo->aFunc[i].iMem>=pAggInfo->mnReg - && pAggInfo->aFunc[i].iMem<=pAggInfo->mxReg ); - } -#endif - sqlite3VdbeAddOp3(v, OP_Null, 0, pAggInfo->mnReg, pAggInfo->mxReg); + sqlite3VdbeAddOp3(v, OP_Null, 0, pAggInfo->iFirstReg, + pAggInfo->iFirstReg+nReg-1); for(pFunc=pAggInfo->aFunc, i=0; inFunc; i++, pFunc++){ if( pFunc->iDistinct>=0 ){ Expr *pE = pFunc->pFExpr; @@ -141859,15 +145624,16 @@ static void finalizeAggFunctions(Parse *pParse, AggInfo *pAggInfo){ ExprList *pList; assert( ExprUseXList(pF->pFExpr) ); pList = pF->pFExpr->x.pList; - sqlite3VdbeAddOp2(v, OP_AggFinal, pF->iMem, pList ? pList->nExpr : 0); + sqlite3VdbeAddOp2(v, OP_AggFinal, AggInfoFuncReg(pAggInfo,i), + pList ? pList->nExpr : 0); sqlite3VdbeAppendP4(v, pF->pFunc, P4_FUNCDEF); } } /* -** Update the accumulator memory cells for an aggregate based on -** the current cursor position. +** Generate code that will update the accumulator memory cells for an +** aggregate based on the current cursor position. ** ** If regAcc is non-zero and there are no min() or max() aggregates ** in pAggInfo, then only populate the pAggInfo->nAccumulator accumulator @@ -141887,6 +145653,8 @@ static void updateAccumulator( struct AggInfo_func *pF; struct AggInfo_col *pC; + assert( pAggInfo->iFirstReg>0 ); + if( pParse->nErr ) return; pAggInfo->directMode = 1; for(i=0, pF=pAggInfo->aFunc; inFunc; i++, pF++){ int nArg; @@ -141947,7 +145715,7 @@ static void updateAccumulator( if( regHit==0 && pAggInfo->nAccumulator ) regHit = ++pParse->nMem; sqlite3VdbeAddOp4(v, OP_CollSeq, regHit, 0, 0, (char *)pColl, P4_COLLSEQ); } - sqlite3VdbeAddOp3(v, OP_AggStep, 0, regAgg, pF->iMem); + sqlite3VdbeAddOp3(v, OP_AggStep, 0, regAgg, AggInfoFuncReg(pAggInfo,i)); sqlite3VdbeAppendP4(v, pF->pFunc, P4_FUNCDEF); sqlite3VdbeChangeP5(v, (u8)nArg); sqlite3ReleaseTempRange(pParse, regAgg, nArg); @@ -141962,7 +145730,7 @@ static void updateAccumulator( addrHitTest = sqlite3VdbeAddOp1(v, OP_If, regHit); VdbeCoverage(v); } for(i=0, pC=pAggInfo->aCol; inAccumulator; i++, pC++){ - sqlite3ExprCode(pParse, pC->pCExpr, pC->iMem); + sqlite3ExprCode(pParse, pC->pCExpr, AggInfoColumnReg(pAggInfo,i)); } pAggInfo->directMode = 0; @@ -142058,26 +145826,31 @@ static void havingToWhere(Parse *pParse, Select *p){ sqlite3WalkExpr(&sWalker, p->pHaving); #if TREETRACE_ENABLED if( sWalker.eCode && (sqlite3TreeTrace & 0x100)!=0 ){ - SELECTTRACE(0x100,pParse,p,("Move HAVING terms into WHERE:\n")); + TREETRACE(0x100,pParse,p,("Move HAVING terms into WHERE:\n")); sqlite3TreeViewSelect(0, p, 0); } #endif } /* -** Check to see if the pThis entry of pTabList is a self-join of a prior view. -** If it is, then return the SrcList_item for the prior view. If it is not, -** then return 0. +** Check to see if the pThis entry of pTabList is a self-join of another view. +** Search FROM-clause entries in the range of iFirst..iEnd, including iFirst +** but stopping before iEnd. +** +** If pThis is a self-join, then return the SrcItem for the first other +** instance of that view found. If pThis is not a self-join then return 0. */ static SrcItem *isSelfJoinView( SrcList *pTabList, /* Search for self-joins in this FROM clause */ - SrcItem *pThis /* Search for prior reference to this subquery */ + SrcItem *pThis, /* Search for prior reference to this subquery */ + int iFirst, int iEnd /* Range of FROM-clause entries to search. */ ){ SrcItem *pItem; assert( pThis->pSelect!=0 ); if( pThis->pSelect->selFlags & SF_PushDown ) return 0; - for(pItem = pTabList->a; pItema[iFirst++]; if( pItem->pSelect==0 ) continue; if( pItem->fg.viaCoroutine ) continue; if( pItem->zName==0 ) continue; @@ -142110,7 +145883,6 @@ static void agginfoFree(sqlite3 *db, AggInfo *p){ sqlite3DbFreeNN(db, p); } -#ifdef SQLITE_COUNTOFVIEW_OPTIMIZATION /* ** Attempt to transform a query of the form ** @@ -142138,7 +145910,9 @@ static int countOfViewOptimization(Parse *pParse, Select *p){ if( (p->selFlags & SF_Aggregate)==0 ) return 0; /* This is an aggregate */ if( p->pEList->nExpr!=1 ) return 0; /* Single result column */ if( p->pWhere ) return 0; + if( p->pHaving ) return 0; if( p->pGroupBy ) return 0; + if( p->pOrderBy ) return 0; pExpr = p->pEList->a[0].pExpr; if( pExpr->op!=TK_AGG_FUNCTION ) return 0; /* Result is an aggregate */ assert( ExprUseUToken(pExpr) ); @@ -142146,15 +145920,18 @@ static int countOfViewOptimization(Parse *pParse, Select *p){ assert( ExprUseXList(pExpr) ); if( pExpr->x.pList!=0 ) return 0; /* Must be count(*) */ if( p->pSrc->nSrc!=1 ) return 0; /* One table in FROM */ + if( ExprHasProperty(pExpr, EP_WinFunc) ) return 0;/* Not a window function */ pSub = p->pSrc->a[0].pSelect; if( pSub==0 ) return 0; /* The FROM is a subquery */ - if( pSub->pPrior==0 ) return 0; /* Must be a compound ry */ + if( pSub->pPrior==0 ) return 0; /* Must be a compound */ + if( pSub->selFlags & SF_CopyCte ) return 0; /* Not a CTE */ do{ if( pSub->op!=TK_ALL && pSub->pPrior ) return 0; /* Must be UNION ALL */ if( pSub->pWhere ) return 0; /* No WHERE clause */ if( pSub->pLimit ) return 0; /* No LIMIT clause */ if( pSub->selFlags & SF_Aggregate ) return 0; /* Not an aggregate */ - pSub = pSub->pPrior; /* Repeat over compound */ + assert( pSub->pHaving==0 ); /* Due to the previous */ + pSub = pSub->pPrior; /* Repeat over compound */ }while( pSub ); /* If we reach this point then it is OK to perform the transformation */ @@ -142190,14 +145967,13 @@ static int countOfViewOptimization(Parse *pParse, Select *p){ p->selFlags &= ~SF_Aggregate; #if TREETRACE_ENABLED - if( sqlite3TreeTrace & 0x400 ){ - SELECTTRACE(0x400,pParse,p,("After count-of-view optimization:\n")); + if( sqlite3TreeTrace & 0x200 ){ + TREETRACE(0x200,pParse,p,("After count-of-view optimization:\n")); sqlite3TreeViewSelect(0, p, 0); } #endif return 1; } -#endif /* SQLITE_COUNTOFVIEW_OPTIMIZATION */ /* ** If any term of pSrc, or any SF_NestedFrom sub-query, is not the same @@ -142222,6 +145998,68 @@ static int sameSrcAlias(SrcItem *p0, SrcList *pSrc){ return 0; } +/* +** Return TRUE (non-zero) if the i-th entry in the pTabList SrcList can +** be implemented as a co-routine. The i-th entry is guaranteed to be +** a subquery. +** +** The subquery is implemented as a co-routine if all of the following are +** true: +** +** (1) The subquery will likely be implemented in the outer loop of +** the query. This will be the case if any one of the following +** conditions hold: +** (a) The subquery is the only term in the FROM clause +** (b) The subquery is the left-most term and a CROSS JOIN or similar +** requires it to be the outer loop +** (c) All of the following are true: +** (i) The subquery is the left-most subquery in the FROM clause +** (ii) There is nothing that would prevent the subquery from +** being used as the outer loop if the sqlite3WhereBegin() +** routine nominates it to that position. +** (iii) The query is not a UPDATE ... FROM +** (2) The subquery is not a CTE that should be materialized because +** (a) the AS MATERIALIZED keyword is used, or +** (b) the CTE is used multiple times and does not have the +** NOT MATERIALIZED keyword +** (3) The subquery is not part of a left operand for a RIGHT JOIN +** (4) The SQLITE_Coroutine optimization disable flag is not set +** (5) The subquery is not self-joined +*/ +static int fromClauseTermCanBeCoroutine( + Parse *pParse, /* Parsing context */ + SrcList *pTabList, /* FROM clause */ + int i, /* Which term of the FROM clause holds the subquery */ + int selFlags /* Flags on the SELECT statement */ +){ + SrcItem *pItem = &pTabList->a[i]; + if( pItem->fg.isCte ){ + const CteUse *pCteUse = pItem->u2.pCteUse; + if( pCteUse->eM10d==M10d_Yes ) return 0; /* (2a) */ + if( pCteUse->nUse>=2 && pCteUse->eM10d!=M10d_No ) return 0; /* (2b) */ + } + if( pTabList->a[0].fg.jointype & JT_LTORJ ) return 0; /* (3) */ + if( OptimizationDisabled(pParse->db, SQLITE_Coroutines) ) return 0; /* (4) */ + if( isSelfJoinView(pTabList, pItem, i+1, pTabList->nSrc)!=0 ){ + return 0; /* (5) */ + } + if( i==0 ){ + if( pTabList->nSrc==1 ) return 1; /* (1a) */ + if( pTabList->a[1].fg.jointype & JT_CROSS ) return 1; /* (1b) */ + if( selFlags & SF_UpdateFrom ) return 0; /* (1c-iii) */ + return 1; + } + if( selFlags & SF_UpdateFrom ) return 0; /* (1c-iii) */ + while( 1 /*exit-by-break*/ ){ + if( pItem->fg.jointype & (JT_OUTER|JT_CROSS) ) return 0; /* (1c-ii) */ + if( i==0 ) break; + i--; + pItem--; + if( pItem->pSelect!=0 ) return 0; /* (1c-i) */ + } + return 1; +} + /* ** Generate code for the SELECT statement given in the p argument. ** @@ -142267,8 +146105,8 @@ SQLITE_PRIVATE int sqlite3Select( assert( db->mallocFailed==0 ); if( sqlite3AuthCheck(pParse, SQLITE_SELECT, 0, 0, 0) ) return 1; #if TREETRACE_ENABLED - SELECTTRACE(1,pParse,p, ("begin processing:\n", pParse->addrExplain)); - if( sqlite3TreeTrace & 0x10100 ){ + TREETRACE(0x1,pParse,p, ("begin processing:\n", pParse->addrExplain)); + if( sqlite3TreeTrace & 0x10000 ){ if( (sqlite3TreeTrace & 0x10001)==0x10000 ){ sqlite3TreeViewLine(0, "In sqlite3Select() at %s:%d", __FILE__, __LINE__); @@ -142288,8 +146126,8 @@ SQLITE_PRIVATE int sqlite3Select( /* All of these destinations are also able to ignore the ORDER BY clause */ if( p->pOrderBy ){ #if TREETRACE_ENABLED - SELECTTRACE(1,pParse,p, ("dropping superfluous ORDER BY:\n")); - if( sqlite3TreeTrace & 0x100 ){ + TREETRACE(0x800,pParse,p, ("dropping superfluous ORDER BY:\n")); + if( sqlite3TreeTrace & 0x800 ){ sqlite3TreeViewExprList(0, p->pOrderBy, 0, "ORDERBY"); } #endif @@ -142309,8 +146147,8 @@ SQLITE_PRIVATE int sqlite3Select( assert( db->mallocFailed==0 ); assert( p->pEList!=0 ); #if TREETRACE_ENABLED - if( sqlite3TreeTrace & 0x104 ){ - SELECTTRACE(0x104,pParse,p, ("after name resolution:\n")); + if( sqlite3TreeTrace & 0x10 ){ + TREETRACE(0x10,pParse,p, ("after name resolution:\n")); sqlite3TreeViewSelect(0, p, 0); } #endif @@ -142351,8 +146189,8 @@ SQLITE_PRIVATE int sqlite3Select( goto select_end; } #if TREETRACE_ENABLED - if( p->pWin && (sqlite3TreeTrace & 0x108)!=0 ){ - SELECTTRACE(0x104,pParse,p, ("after window rewrite:\n")); + if( p->pWin && (sqlite3TreeTrace & 0x40)!=0 ){ + TREETRACE(0x40,pParse,p, ("after window rewrite:\n")); sqlite3TreeViewSelect(0, p, 0); } #endif @@ -142383,7 +146221,7 @@ SQLITE_PRIVATE int sqlite3Select( && sqlite3ExprImpliesNonNullRow(p->pWhere, pItem->iCursor) && OptimizationEnabled(db, SQLITE_SimplifyJoin) ){ - SELECTTRACE(0x100,pParse,p, + TREETRACE(0x1000,pParse,p, ("LEFT-JOIN simplifies to JOIN on term %d\n",i)); pItem->fg.jointype &= ~(JT_LEFT|JT_OUTER); assert( pItem->iCursor>=0 ); @@ -142391,7 +146229,7 @@ SQLITE_PRIVATE int sqlite3Select( pTabList->a[0].fg.jointype & JT_LTORJ); } - /* No futher action if this term of the FROM clause is no a subquery */ + /* No futher action if this term of the FROM clause is not a subquery */ if( pSub==0 ) continue; /* Catch mismatch in the declared columns of a view and the number of @@ -142439,7 +146277,7 @@ SQLITE_PRIVATE int sqlite3Select( && (p->selFlags & SF_OrderByReqd)==0 /* Condition (3) and (4) */ && OptimizationEnabled(db, SQLITE_OmitOrderBy) ){ - SELECTTRACE(0x100,pParse,p, + TREETRACE(0x800,pParse,p, ("omit superfluous ORDER BY on %r FROM-clause subquery\n",i+1)); sqlite3ParserAddCleanup(pParse, (void(*)(sqlite3*,void*))sqlite3ExprListDelete, @@ -142494,8 +146332,8 @@ SQLITE_PRIVATE int sqlite3Select( if( p->pPrior ){ rc = multiSelect(pParse, p, pDest); #if TREETRACE_ENABLED - SELECTTRACE(0x1,pParse,p,("end compound-select processing\n")); - if( (sqlite3TreeTrace & 0x2000)!=0 && ExplainQueryPlanParent(pParse)==0 ){ + TREETRACE(0x400,pParse,p,("end compound-select processing\n")); + if( (sqlite3TreeTrace & 0x400)!=0 && ExplainQueryPlanParent(pParse)==0 ){ sqlite3TreeViewSelect(0, p, 0); } #endif @@ -142515,24 +146353,21 @@ SQLITE_PRIVATE int sqlite3Select( && propagateConstants(pParse, p) ){ #if TREETRACE_ENABLED - if( sqlite3TreeTrace & 0x100 ){ - SELECTTRACE(0x100,pParse,p,("After constant propagation:\n")); + if( sqlite3TreeTrace & 0x2000 ){ + TREETRACE(0x2000,pParse,p,("After constant propagation:\n")); sqlite3TreeViewSelect(0, p, 0); } #endif }else{ - SELECTTRACE(0x100,pParse,p,("Constant propagation not helpful\n")); + TREETRACE(0x2000,pParse,p,("Constant propagation not helpful\n")); } -#ifdef SQLITE_COUNTOFVIEW_OPTIMIZATION if( OptimizationEnabled(db, SQLITE_QueryFlattener|SQLITE_CountOfView) && countOfViewOptimization(pParse, p) ){ if( db->mallocFailed ) goto select_end; - pEList = p->pEList; pTabList = p->pSrc; } -#endif /* For each term in the FROM clause, do two things: ** (1) Authorized unreferenced tables @@ -142591,39 +146426,42 @@ SQLITE_PRIVATE int sqlite3Select( if( OptimizationEnabled(db, SQLITE_PushDown) && (pItem->fg.isCte==0 || (pItem->u2.pCteUse->eM10d!=M10d_Yes && pItem->u2.pCteUse->nUse<2)) - && pushDownWhereTerms(pParse, pSub, p->pWhere, pItem) + && pushDownWhereTerms(pParse, pSub, p->pWhere, pTabList, i) ){ #if TREETRACE_ENABLED - if( sqlite3TreeTrace & 0x100 ){ - SELECTTRACE(0x100,pParse,p, + if( sqlite3TreeTrace & 0x4000 ){ + TREETRACE(0x4000,pParse,p, ("After WHERE-clause push-down into subquery %d:\n", pSub->selId)); sqlite3TreeViewSelect(0, p, 0); } #endif assert( pItem->pSelect && (pItem->pSelect->selFlags & SF_PushDown)!=0 ); }else{ - SELECTTRACE(0x100,pParse,p,("Push-down not possible\n")); + TREETRACE(0x4000,pParse,p,("Push-down not possible\n")); + } + + /* Convert unused result columns of the subquery into simple NULL + ** expressions, to avoid unneeded searching and computation. + */ + if( OptimizationEnabled(db, SQLITE_NullUnusedCols) + && disableUnusedSubqueryResultColumns(pItem) + ){ +#if TREETRACE_ENABLED + if( sqlite3TreeTrace & 0x4000 ){ + TREETRACE(0x4000,pParse,p, + ("Change unused result columns to NULL for subquery %d:\n", + pSub->selId)); + sqlite3TreeViewSelect(0, p, 0); + } +#endif } zSavedAuthContext = pParse->zAuthContext; pParse->zAuthContext = pItem->zName; /* Generate code to implement the subquery - ** - ** The subquery is implemented as a co-routine if all of the following are - ** true: - ** - ** (1) the subquery is guaranteed to be the outer loop (so that - ** it does not need to be computed more than once), and - ** (2) the subquery is not a CTE that should be materialized - ** (3) the subquery is not part of a left operand for a RIGHT JOIN */ - if( i==0 - && (pTabList->nSrc==1 - || (pTabList->a[1].fg.jointype&(JT_OUTER|JT_CROSS))!=0) /* (1) */ - && (pItem->fg.isCte==0 || pItem->u2.pCteUse->eM10d!=M10d_Yes) /* (2) */ - && (pTabList->a[0].fg.jointype & JT_LTORJ)==0 /* (3) */ - ){ + if( fromClauseTermCanBeCoroutine(pParse, pTabList, i, p->selFlags) ){ /* Implement a co-routine that will return a single row of the result ** set on each invocation. */ @@ -142654,7 +146492,7 @@ SQLITE_PRIVATE int sqlite3Select( VdbeComment((v, "%!S", pItem)); } pSub->nSelectRow = pCteUse->nRowEst; - }else if( (pPrior = isSelfJoinView(pTabList, pItem))!=0 ){ + }else if( (pPrior = isSelfJoinView(pTabList, pItem, 0, i))!=0 ){ /* This view has already been materialized by a prior entry in ** this same FROM clause. Reuse it. */ if( pPrior->addrFillSub ){ @@ -142668,6 +146506,9 @@ SQLITE_PRIVATE int sqlite3Select( ** the same view can reuse the materialization. */ int topAddr; int onceAddr = 0; +#ifdef SQLITE_ENABLE_STMT_SCANSTATUS + int addrExplain; +#endif pItem->regReturn = ++pParse->nMem; topAddr = sqlite3VdbeAddOp0(v, OP_Goto); @@ -142683,12 +146524,14 @@ SQLITE_PRIVATE int sqlite3Select( VdbeNoopComment((v, "materialize %!S", pItem)); } sqlite3SelectDestInit(&dest, SRT_EphemTab, pItem->iCursor); - ExplainQueryPlan((pParse, 1, "MATERIALIZE %!S", pItem)); + + ExplainQueryPlan2(addrExplain, (pParse, 1, "MATERIALIZE %!S", pItem)); sqlite3Select(pParse, pSub, &dest); pItem->pTab->nRowLogEst = pSub->nSelectRow; if( onceAddr ) sqlite3VdbeJumpHere(v, onceAddr); sqlite3VdbeAddOp2(v, OP_Return, pItem->regReturn, topAddr+1); VdbeComment((v, "end %!S", pItem)); + sqlite3VdbeScanStatusRange(v, addrExplain, addrExplain, -1); sqlite3VdbeJumpHere(v, topAddr); sqlite3ClearTempRegCache(pParse); if( pItem->fg.isCte && pItem->fg.isCorrelated==0 ){ @@ -142714,8 +146557,8 @@ SQLITE_PRIVATE int sqlite3Select( sDistinct.isTnct = (p->selFlags & SF_Distinct)!=0; #if TREETRACE_ENABLED - if( sqlite3TreeTrace & 0x400 ){ - SELECTTRACE(0x400,pParse,p,("After all FROM-clause analysis:\n")); + if( sqlite3TreeTrace & 0x8000 ){ + TREETRACE(0x8000,pParse,p,("After all FROM-clause analysis:\n")); sqlite3TreeViewSelect(0, p, 0); } #endif @@ -142751,8 +146594,8 @@ SQLITE_PRIVATE int sqlite3Select( sDistinct.isTnct = 2; #if TREETRACE_ENABLED - if( sqlite3TreeTrace & 0x400 ){ - SELECTTRACE(0x400,pParse,p,("Transform DISTINCT into GROUP BY:\n")); + if( sqlite3TreeTrace & 0x20000 ){ + TREETRACE(0x20000,pParse,p,("Transform DISTINCT into GROUP BY:\n")); sqlite3TreeViewSelect(0, p, 0); } #endif @@ -142804,7 +146647,7 @@ SQLITE_PRIVATE int sqlite3Select( if( (p->selFlags & SF_FixedLimit)==0 ){ p->nSelectRow = 320; /* 4 billion rows */ } - computeLimitRegisters(pParse, p, iEnd); + if( p->pLimit ) computeLimitRegisters(pParse, p, iEnd); if( p->iLimit==0 && sSort.addrSortIndex>=0 ){ sqlite3VdbeChangeOpcode(v, sSort.addrSortIndex, OP_SorterOpen); sSort.sortFlags |= SORTFLAG_UseSorter; @@ -142838,7 +146681,7 @@ SQLITE_PRIVATE int sqlite3Select( /* Begin the database scan. */ - SELECTTRACE(1,pParse,p,("WhereBegin\n")); + TREETRACE(0x2,pParse,p,("WhereBegin\n")); pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, sSort.pOrderBy, p->pEList, p, wctrlFlags, p->nSelectRow); if( pWInfo==0 ) goto select_end; @@ -142855,7 +146698,7 @@ SQLITE_PRIVATE int sqlite3Select( sSort.pOrderBy = 0; } } - SELECTTRACE(1,pParse,p,("WhereBegin returns\n")); + TREETRACE(0x2,pParse,p,("WhereBegin returns\n")); /* If sorting index that was created by a prior OP_OpenEphemeral ** instruction ended up not being needed, then change the OP_OpenEphemeral @@ -142894,7 +146737,7 @@ SQLITE_PRIVATE int sqlite3Select( /* End the database scan loop. */ - SELECTTRACE(1,pParse,p,("WhereEnd\n")); + TREETRACE(0x2,pParse,p,("WhereEnd\n")); sqlite3WhereEnd(pWInfo); } }else{ @@ -142975,12 +146818,14 @@ SQLITE_PRIVATE int sqlite3Select( goto select_end; } pAggInfo->selId = p->selId; +#ifdef SQLITE_DEBUG + pAggInfo->pSelect = p; +#endif memset(&sNC, 0, sizeof(sNC)); sNC.pParse = pParse; sNC.pSrcList = pTabList; sNC.uNC.pAggInfo = pAggInfo; VVA_ONLY( sNC.ncFlags = NC_UAggInfo; ) - pAggInfo->mnReg = pParse->nMem+1; pAggInfo->nSortingColumn = pGroupBy ? pGroupBy->nExpr : 0; pAggInfo->pGroupBy = pGroupBy; sqlite3ExprAnalyzeAggList(&sNC, pEList); @@ -143001,40 +146846,17 @@ SQLITE_PRIVATE int sqlite3Select( }else{ minMaxFlag = WHERE_ORDERBY_NORMAL; } - for(i=0; inFunc; i++){ - Expr *pExpr = pAggInfo->aFunc[i].pFExpr; - assert( ExprUseXList(pExpr) ); - sNC.ncFlags |= NC_InAggFunc; - sqlite3ExprAnalyzeAggList(&sNC, pExpr->x.pList); -#ifndef SQLITE_OMIT_WINDOWFUNC - assert( !IsWindowFunc(pExpr) ); - if( ExprHasProperty(pExpr, EP_WinFunc) ){ - sqlite3ExprAnalyzeAggregates(&sNC, pExpr->y.pWin->pFilter); - } -#endif - sNC.ncFlags &= ~NC_InAggFunc; - } - pAggInfo->mxReg = pParse->nMem; + analyzeAggFuncArgs(pAggInfo, &sNC); if( db->mallocFailed ) goto select_end; #if TREETRACE_ENABLED - if( sqlite3TreeTrace & 0x400 ){ - int ii; - SELECTTRACE(0x400,pParse,p,("After aggregate analysis %p:\n", pAggInfo)); + if( sqlite3TreeTrace & 0x20 ){ + TREETRACE(0x20,pParse,p,("After aggregate analysis %p:\n", pAggInfo)); sqlite3TreeViewSelect(0, p, 0); if( minMaxFlag ){ sqlite3DebugPrintf("MIN/MAX Optimization (0x%02x) adds:\n", minMaxFlag); sqlite3TreeViewExprList(0, pMinMaxOrderBy, 0, "ORDERBY"); } - for(ii=0; iinColumn; ii++){ - sqlite3DebugPrintf("agg-column[%d] iMem=%d\n", - ii, pAggInfo->aCol[ii].iMem); - sqlite3TreeViewExpr(0, pAggInfo->aCol[ii].pCExpr, 0); - } - for(ii=0; iinFunc; ii++){ - sqlite3DebugPrintf("agg-func[%d]: iMem=%d\n", - ii, pAggInfo->aFunc[ii].iMem); - sqlite3TreeViewExpr(0, pAggInfo->aFunc[ii].pFExpr, 0); - } + printAggInfo(pAggInfo); } #endif @@ -143103,17 +146925,21 @@ SQLITE_PRIVATE int sqlite3Select( ** in the right order to begin with. */ sqlite3VdbeAddOp2(v, OP_Gosub, regReset, addrReset); - SELECTTRACE(1,pParse,p,("WhereBegin\n")); + TREETRACE(0x2,pParse,p,("WhereBegin\n")); pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, pGroupBy, pDistinct, - 0, (sDistinct.isTnct==2 ? WHERE_DISTINCTBY : WHERE_GROUPBY) + p, (sDistinct.isTnct==2 ? WHERE_DISTINCTBY : WHERE_GROUPBY) | (orderByGrp ? WHERE_SORTBYGROUP : 0) | distFlag, 0 ); if( pWInfo==0 ){ sqlite3ExprListDelete(db, pDistinct); goto select_end; } + if( pParse->pIdxEpr ){ + optimizeAggregateUseOfIndexedExpr(pParse, p, pAggInfo, &sNC); + } + assignAggregateRegisters(pParse, pAggInfo); eDist = sqlite3WhereIsDistinct(pWInfo); - SELECTTRACE(1,pParse,p,("WhereBegin returns\n")); + TREETRACE(0x2,pParse,p,("WhereBegin returns\n")); if( sqlite3WhereIsOrdered(pWInfo)==pGroupBy->nExpr ){ /* The optimizer is able to deliver rows in group by order so ** we do not have to sort. The OP_OpenEphemeral table will be @@ -143148,21 +146974,21 @@ SQLITE_PRIVATE int sqlite3Select( regBase = sqlite3GetTempRange(pParse, nCol); sqlite3ExprCodeExprList(pParse, pGroupBy, regBase, 0, 0); j = nGroupBy; + pAggInfo->directMode = 1; for(i=0; inColumn; i++){ struct AggInfo_col *pCol = &pAggInfo->aCol[i]; if( pCol->iSorterColumn>=j ){ - int r1 = j + regBase; - sqlite3ExprCodeGetColumnOfTable(v, - pCol->pTab, pCol->iTable, pCol->iColumn, r1); + sqlite3ExprCode(pParse, pCol->pCExpr, j + regBase); j++; } } + pAggInfo->directMode = 0; regRecord = sqlite3GetTempReg(pParse); sqlite3VdbeAddOp3(v, OP_MakeRecord, regBase, nCol, regRecord); sqlite3VdbeAddOp2(v, OP_SorterInsert, pAggInfo->sortingIdx, regRecord); sqlite3ReleaseTempReg(pParse, regRecord); sqlite3ReleaseTempRange(pParse, regBase, nCol); - SELECTTRACE(1,pParse,p,("WhereEnd\n")); + TREETRACE(0x2,pParse,p,("WhereEnd\n")); sqlite3WhereEnd(pWInfo); pAggInfo->sortingIdxPTab = sortPTab = pParse->nTab++; sortOut = sqlite3GetTempReg(pParse); @@ -143172,6 +146998,23 @@ SQLITE_PRIVATE int sqlite3Select( pAggInfo->useSortingIdx = 1; } + /* If there are entries in pAgggInfo->aFunc[] that contain subexpressions + ** that are indexed (and that were previously identified and tagged + ** in optimizeAggregateUseOfIndexedExpr()) then those subexpressions + ** must now be converted into a TK_AGG_COLUMN node so that the value + ** is correctly pulled from the index rather than being recomputed. */ + if( pParse->pIdxEpr ){ + aggregateConvertIndexedExprRefToColumn(pAggInfo); +#if TREETRACE_ENABLED + if( sqlite3TreeTrace & 0x20 ){ + TREETRACE(0x20, pParse, p, + ("AggInfo function expressions converted to reference index\n")); + sqlite3TreeViewSelect(0, p, 0); + printAggInfo(pAggInfo); + } +#endif + } + /* If the index or temporary table used by the GROUP BY sort ** will naturally deliver rows in the order required by the ORDER BY ** clause, cancel the ephemeral table open coded earlier. @@ -143240,7 +147083,7 @@ SQLITE_PRIVATE int sqlite3Select( sqlite3VdbeAddOp2(v, OP_SorterNext, pAggInfo->sortingIdx,addrTopOfLoop); VdbeCoverage(v); }else{ - SELECTTRACE(1,pParse,p,("WhereEnd\n")); + TREETRACE(0x2,pParse,p,("WhereEnd\n")); sqlite3WhereEnd(pWInfo); sqlite3VdbeChangeToNoop(v, addrSortingIdx); } @@ -143350,7 +147193,8 @@ SQLITE_PRIVATE int sqlite3Select( if( pKeyInfo ){ sqlite3VdbeChangeP4(v, -1, (char *)pKeyInfo, P4_KEYINFO); } - sqlite3VdbeAddOp2(v, OP_Count, iCsr, pAggInfo->aFunc[0].iMem); + assignAggregateRegisters(pParse, pAggInfo); + sqlite3VdbeAddOp2(v, OP_Count, iCsr, AggInfoFuncReg(pAggInfo,0)); sqlite3VdbeAddOp1(v, OP_Close, iCsr); explainSimpleCount(pParse, pTab, pBest); }else{ @@ -143386,6 +147230,7 @@ SQLITE_PRIVATE int sqlite3Select( pDistinct = pAggInfo->aFunc[0].pFExpr->x.pList; distFlag = pDistinct ? (WHERE_WANT_DISTINCT|WHERE_AGG_DISTINCT) : 0; } + assignAggregateRegisters(pParse, pAggInfo); /* This case runs if the aggregate has no GROUP BY clause. The ** processing is much simpler since there is only a single row @@ -143402,13 +147247,13 @@ SQLITE_PRIVATE int sqlite3Select( assert( minMaxFlag==WHERE_ORDERBY_NORMAL || pMinMaxOrderBy!=0 ); assert( pMinMaxOrderBy==0 || pMinMaxOrderBy->nExpr==1 ); - SELECTTRACE(1,pParse,p,("WhereBegin\n")); + TREETRACE(0x2,pParse,p,("WhereBegin\n")); pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, pMinMaxOrderBy, - pDistinct, 0, minMaxFlag|distFlag, 0); + pDistinct, p, minMaxFlag|distFlag, 0); if( pWInfo==0 ){ goto select_end; } - SELECTTRACE(1,pParse,p,("WhereBegin returns\n")); + TREETRACE(0x2,pParse,p,("WhereBegin returns\n")); eDist = sqlite3WhereIsDistinct(pWInfo); updateAccumulator(pParse, regAcc, pAggInfo, eDist); if( eDist!=WHERE_DISTINCT_NOOP ){ @@ -143422,7 +147267,7 @@ SQLITE_PRIVATE int sqlite3Select( if( minMaxFlag ){ sqlite3WhereMinMaxOptEarlyOut(v, pWInfo); } - SELECTTRACE(1,pParse,p,("WhereEnd\n")); + TREETRACE(0x2,pParse,p,("WhereEnd\n")); sqlite3WhereEnd(pWInfo); finalizeAggFunctions(pParse, pAggInfo); } @@ -143444,8 +147289,6 @@ SQLITE_PRIVATE int sqlite3Select( ** and send them to the callback one by one. */ if( sSort.pOrderBy ){ - explainTempTable(pParse, - sSort.nOBSat>0 ? "RIGHT PART OF ORDER BY":"ORDER BY"); assert( p->pEList==pEList ); generateSortTail(pParse, p, &sSort, pEList->nExpr, pDest); } @@ -143469,7 +147312,7 @@ select_end: if( pAggInfo && !db->mallocFailed ){ for(i=0; inColumn; i++){ Expr *pExpr = pAggInfo->aCol[i].pCExpr; - assert( pExpr!=0 ); + if( pExpr==0 ) continue; assert( pExpr->pAggInfo==pAggInfo ); assert( pExpr->iAgg==i ); } @@ -143483,8 +147326,8 @@ select_end: #endif #if TREETRACE_ENABLED - SELECTTRACE(0x1,pParse,p,("end processing\n")); - if( (sqlite3TreeTrace & 0x2000)!=0 && ExplainQueryPlanParent(pParse)==0 ){ + TREETRACE(0x1,pParse,p,("end processing\n")); + if( (sqlite3TreeTrace & 0x40000)!=0 && ExplainQueryPlanParent(pParse)==0 ){ sqlite3TreeViewSelect(0, p, 0); } #endif @@ -143758,7 +147601,7 @@ SQLITE_PRIVATE Trigger *sqlite3TriggerList(Parse *pParse, Table *pTab){ if( pTrig->pTabSchema==pTab->pSchema && pTrig->table && 0==sqlite3StrICmp(pTrig->table, pTab->zName) - && pTrig->pTabSchema!=pTmpSchema + && (pTrig->pTabSchema!=pTmpSchema || pTrig->bReturning) ){ pTrig->pNext = pList; pList = pTrig; @@ -143899,6 +147742,7 @@ SQLITE_PRIVATE void sqlite3BeginTrigger( }else{ assert( !db->init.busy ); sqlite3CodeVerifySchema(pParse, iDb); + VVA_ONLY( pParse->ifNotExists = 1; ) } goto trigger_cleanup; } @@ -144680,7 +148524,7 @@ static void codeReturningTrigger( } sqlite3ExprListDelete(db, sSelect.pEList); pNew = sqlite3ExpandReturning(pParse, pReturning->pReturnEL, pTab); - if( !db->mallocFailed ){ + if( pParse->nErr==0 ){ NameContext sNC; memset(&sNC, 0, sizeof(sNC)); if( pReturning->nRetCol==0 ){ @@ -144888,7 +148732,7 @@ static TriggerPrg *codeRowTrigger( sSubParse.zAuthContext = pTrigger->zName; sSubParse.eTriggerOp = pTrigger->op; sSubParse.nQueryLoop = pParse->nQueryLoop; - sSubParse.disableVtab = pParse->disableVtab; + sSubParse.prepFlags = pParse->prepFlags; v = sqlite3GetVdbe(&sSubParse); if( v ){ @@ -145149,6 +148993,9 @@ SQLITE_PRIVATE u32 sqlite3TriggerColmask( Trigger *p; assert( isNew==1 || isNew==0 ); + if( IsView(pTab) ){ + return 0xffffffff; + } for(p=pTrigger; p; p=p->pNext){ if( p->op==op && (tr_tm&p->tr_tm) @@ -145234,11 +149081,14 @@ static void updateVirtualTable( ** it has been converted into REAL. */ SQLITE_PRIVATE void sqlite3ColumnDefault(Vdbe *v, Table *pTab, int i, int iReg){ + Column *pCol; assert( pTab!=0 ); - if( !IsView(pTab) ){ + assert( pTab->nCol>i ); + pCol = &pTab->aCol[i]; + if( pCol->iDflt ){ sqlite3_value *pValue = 0; u8 enc = ENC(sqlite3VdbeDb(v)); - Column *pCol = &pTab->aCol[i]; + assert( !IsView(pTab) ); VdbeComment((v, "%s.%s", pTab->zName, pCol->zCnName)); assert( inCol ); sqlite3ValueFromExpr(sqlite3VdbeDb(v), @@ -145249,7 +149099,7 @@ SQLITE_PRIVATE void sqlite3ColumnDefault(Vdbe *v, Table *pTab, int i, int iReg){ } } #ifndef SQLITE_OMIT_FLOATING_POINT - if( pTab->aCol[i].affinity==SQLITE_AFF_REAL && !IsVirtual(pTab) ){ + if( pCol->affinity==SQLITE_AFF_REAL && !IsVirtual(pTab) ){ sqlite3VdbeAddOp1(v, OP_RealAffinity, iReg); } #endif @@ -145435,7 +149285,8 @@ static void updateFromSelect( } } pSelect = sqlite3SelectNew(pParse, pList, - pSrc, pWhere2, pGrp, 0, pOrderBy2, SF_UFSrcCheck|SF_IncludeHidden, pLimit2 + pSrc, pWhere2, pGrp, 0, pOrderBy2, + SF_UFSrcCheck|SF_IncludeHidden|SF_UpdateFrom, pLimit2 ); if( pSelect ) pSelect->selFlags |= SF_OrderByReqd; sqlite3SelectDestInit(&dest, eDest, iEph); @@ -145579,7 +149430,7 @@ SQLITE_PRIVATE void sqlite3Update( if( sqlite3ViewGetColumnNames(pParse, pTab) ){ goto update_cleanup; } - if( sqlite3IsReadOnly(pParse, pTab, tmask) ){ + if( sqlite3IsReadOnly(pParse, pTab, pTrigger) ){ goto update_cleanup; } @@ -145898,12 +149749,22 @@ SQLITE_PRIVATE void sqlite3Update( /* Begin the database scan. ** ** Do not consider a single-pass strategy for a multi-row update if - ** there are any triggers or foreign keys to process, or rows may - ** be deleted as a result of REPLACE conflict handling. Any of these - ** things might disturb a cursor being used to scan through the table - ** or index, causing a single-pass approach to malfunction. */ + ** there is anything that might disrupt the cursor being used to do + ** the UPDATE: + ** (1) This is a nested UPDATE + ** (2) There are triggers + ** (3) There are FOREIGN KEY constraints + ** (4) There are REPLACE conflict handlers + ** (5) There are subqueries in the WHERE clause + */ flags = WHERE_ONEPASS_DESIRED; - if( !pParse->nested && !pTrigger && !hasFK && !chngKey && !bReplace ){ + if( !pParse->nested + && !pTrigger + && !hasFK + && !chngKey + && !bReplace + && (sNC.ncFlags & NC_Subquery)==0 + ){ flags |= WHERE_ONEPASS_MULTIROW; } pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere,0,0,0,flags,iIdxCur); @@ -146689,6 +150550,7 @@ SQLITE_PRIVATE int sqlite3UpsertAnalyzeTarget( if( pIdx->aiColumn[ii]==XN_EXPR ){ assert( pIdx->aColExpr!=0 ); assert( pIdx->aColExpr->nExpr>ii ); + assert( pIdx->bHasExpr ); pExpr = pIdx->aColExpr->a[ii].pExpr; if( pExpr->op!=TK_COLLATE ){ sCol[0].pLeft = pExpr; @@ -147002,6 +150864,7 @@ SQLITE_PRIVATE SQLITE_NOINLINE int sqlite3RunVacuum( int nDb; /* Number of attached databases */ const char *zDbMain; /* Schema name of database to vacuum */ const char *zOut; /* Name of output file */ + u32 pgflags = PAGER_SYNCHRONOUS_OFF; /* sync flags for output db */ if( !db->autoCommit ){ sqlite3SetString(pzErrMsg, db, "cannot VACUUM from within a transaction"); @@ -147073,12 +150936,17 @@ SQLITE_PRIVATE SQLITE_NOINLINE int sqlite3RunVacuum( goto end_of_vacuum; } db->mDbFlags |= DBFLAG_VacuumInto; + + /* For a VACUUM INTO, the pager-flags are set to the same values as + ** they are for the database being vacuumed, except that PAGER_CACHESPILL + ** is always set. */ + pgflags = db->aDb[iDb].safety_level | (db->flags & PAGER_FLAGS_MASK); } nRes = sqlite3BtreeGetRequestedReserve(pMain); sqlite3BtreeSetCacheSize(pTemp, db->aDb[iDb].pSchema->cache_size); sqlite3BtreeSetSpillSize(pTemp, sqlite3BtreeSetSpillSize(pMain,0)); - sqlite3BtreeSetPagerFlags(pTemp, PAGER_SYNCHRONOUS_OFF|PAGER_CACHESPILL); + sqlite3BtreeSetPagerFlags(pTemp, pgflags|PAGER_CACHESPILL); /* Begin a transaction and take an exclusive lock on the main database ** file. This is done before the sqlite3BtreeGetPageSize(pMain) call below, @@ -147462,10 +151330,10 @@ SQLITE_PRIVATE void sqlite3VtabUnlock(VTable *pVTab){ pVTab->nRef--; if( pVTab->nRef==0 ){ sqlite3_vtab *p = pVTab->pVtab; - sqlite3VtabModuleUnref(pVTab->db, pVTab->pMod); if( p ){ p->pModule->xDisconnect(p); } + sqlite3VtabModuleUnref(pVTab->db, pVTab->pMod); sqlite3DbFree(db, pVTab); } } @@ -147591,7 +151459,8 @@ SQLITE_PRIVATE void sqlite3VtabUnlockList(sqlite3 *db){ */ SQLITE_PRIVATE void sqlite3VtabClear(sqlite3 *db, Table *p){ assert( IsVirtual(p) ); - if( !db || db->pnBytesFreed==0 ) vtabDisconnectAll(0, p); + assert( db!=0 ); + if( db->pnBytesFreed==0 ) vtabDisconnectAll(0, p); if( p->u.vtab.azArg ){ int i; for(i=0; iu.vtab.nArg; i++){ @@ -147860,7 +151729,9 @@ static int vtabCallConstructor( sCtx.pPrior = db->pVtabCtx; sCtx.bDeclared = 0; db->pVtabCtx = &sCtx; + pTab->nTabRef++; rc = xConstruct(db, pMod->pAux, nArg, azArg, &pVTable->pVtab, &zErr); + sqlite3DeleteTable(db, pTab); db->pVtabCtx = sCtx.pPrior; if( rc==SQLITE_NOMEM ) sqlite3OomFault(db); assert( sCtx.pTab==pTab ); @@ -148350,7 +152221,10 @@ SQLITE_PRIVATE int sqlite3VtabSavepoint(sqlite3 *db, int op, int iSavepoint){ break; } if( xMethod && pVTab->iSavepoint>iSavepoint ){ + u64 savedFlags = (db->flags & SQLITE_Defensive); + db->flags &= ~(u64)SQLITE_Defensive; rc = xMethod(pVTab->pVtab, iSavepoint); + db->flags |= savedFlags; } sqlite3VtabUnlock(pVTab); } @@ -148391,7 +152265,7 @@ SQLITE_PRIVATE FuncDef *sqlite3VtabOverloadFunction( if( pExpr->op!=TK_COLUMN ) return pDef; assert( ExprUseYTab(pExpr) ); pTab = pExpr->y.pTab; - if( pTab==0 ) return pDef; + if( NEVER(pTab==0) ) return pDef; if( !IsVirtual(pTab) ) return pDef; pVtab = sqlite3GetVTable(db, pTab)->pVtab; assert( pVtab!=0 ); @@ -148579,6 +152453,10 @@ SQLITE_API int sqlite3_vtab_config(sqlite3 *db, int op, ...){ p->pVTable->eVtabRisk = SQLITE_VTABRISK_High; break; } + case SQLITE_VTAB_USES_ALL_SCHEMAS: { + p->pVTable->bAllSchemas = 1; + break; + } default: { rc = SQLITE_MISUSE_BKPT; break; @@ -148998,7 +152876,7 @@ struct WhereAndInfo { ** between VDBE cursor numbers and bits of the bitmasks in WhereTerm. ** ** The VDBE cursor numbers are small integers contained in -** SrcList_item.iCursor and Expr.iTable fields. For any given WHERE +** SrcItem.iCursor and Expr.iTable fields. For any given WHERE ** clause, the cursor numbers might not begin with 0 and they might ** contain gaps in the numbering sequence. But we want to make maximum ** use of the bits in our bitmasks. This structure provides a mapping @@ -149069,20 +152947,6 @@ struct WhereLoopBuilder { # define SQLITE_QUERY_PLANNER_LIMIT_INCR 1000 #endif -/* -** Each instance of this object records a change to a single node -** in an expression tree to cause that node to point to a column -** of an index rather than an expression or a virtual column. All -** such transformations need to be undone at the end of WHERE clause -** processing. -*/ -typedef struct WhereExprMod WhereExprMod; -struct WhereExprMod { - WhereExprMod *pNext; /* Next translation on a list of them all */ - Expr *pExpr; /* The Expr node that was transformed */ - Expr orig; /* Original value of the Expr node */ -}; - /* ** The WHERE clause processing routine has two halves. The ** first part does the start of the WHERE loop and the second @@ -149098,10 +152962,10 @@ struct WhereInfo { SrcList *pTabList; /* List of tables in the join */ ExprList *pOrderBy; /* The ORDER BY clause or NULL */ ExprList *pResultSet; /* Result set of the query */ +#if WHERETRACE_ENABLED Expr *pWhere; /* The complete WHERE clause */ -#ifndef SQLITE_OMIT_VIRTUALTABLE - Select *pLimit; /* Used to access LIMIT expr/registers for vtabs */ #endif + Select *pSelect; /* The entire SELECT statement containing WHERE */ int aiCurOnePass[2]; /* OP_OpenWrite cursors for the ONEPASS opt */ int iContinue; /* Jump here to continue with next record */ int iBreak; /* Jump here to break out of the loop */ @@ -149120,7 +152984,6 @@ struct WhereInfo { int iTop; /* The very beginning of the WHERE loop */ int iEndWhere; /* End of the WHERE clause itself */ WhereLoop *pLoops; /* List of all WhereLoop objects */ - WhereExprMod *pExprMods; /* Expression modifications */ WhereMemBlock *pMemToFree;/* Memory to free when this object destroyed */ Bitmask revMask; /* Mask of ORDER BY terms that need reversing */ WhereClause sWC; /* Decomposition of the WHERE clause */ @@ -149268,6 +153131,8 @@ SQLITE_PRIVATE void sqlite3WhereTabFuncArgs(Parse*, SrcItem*, WhereClause*); #define WHERE_BLOOMFILTER 0x00400000 /* Consider using a Bloom-filter */ #define WHERE_SELFCULL 0x00800000 /* nOut reduced by extra WHERE terms */ #define WHERE_OMIT_OFFSET 0x01000000 /* Set offset counter to zero */ +#define WHERE_VIEWSCAN 0x02000000 /* A full-scan of a VIEW or subquery */ +#define WHERE_EXPRIDX 0x04000000 /* Uses an index-on-expressions */ #endif /* !defined(SQLITE_WHEREINT_H) */ @@ -149365,9 +153230,9 @@ static void explainIndexRange(StrAccum *pStr, WhereLoop *pLoop){ /* ** This function is a no-op unless currently processing an EXPLAIN QUERY PLAN -** command, or if either SQLITE_DEBUG or SQLITE_ENABLE_STMT_SCANSTATUS was -** defined at compile-time. If it is not a no-op, a single OP_Explain opcode -** is added to the output to describe the table scan strategy in pLevel. +** command, or if stmt_scanstatus_v2() stats are enabled, or if SQLITE_DEBUG +** was defined at compile-time. If it is not a no-op, a single OP_Explain +** opcode is added to the output to describe the table scan strategy in pLevel. ** ** If an OP_Explain opcode is added to the VM, its address is returned. ** Otherwise, if no OP_Explain is coded, zero is returned. @@ -149379,8 +153244,8 @@ SQLITE_PRIVATE int sqlite3WhereExplainOneScan( u16 wctrlFlags /* Flags passed to sqlite3WhereBegin() */ ){ int ret = 0; -#if !defined(SQLITE_DEBUG) && !defined(SQLITE_ENABLE_STMT_SCANSTATUS) - if( sqlite3ParseToplevel(pParse)->explain==2 ) +#if !defined(SQLITE_DEBUG) + if( sqlite3ParseToplevel(pParse)->explain==2 || IS_STMT_SCANSTATUS(pParse->db) ) #endif { SrcItem *pItem = &pTabList->a[pLevel->iFrom]; @@ -149524,6 +153389,8 @@ SQLITE_PRIVATE int sqlite3WhereExplainBloomFilter( zMsg = sqlite3StrAccumFinish(&str); ret = sqlite3VdbeAddOp4(v, OP_Explain, sqlite3VdbeCurrentAddr(v), pParse->addrExplain, 0, zMsg,P4_DYNAMIC); + + sqlite3VdbeScanStatus(v, sqlite3VdbeCurrentAddr(v)-1, 0, 0, 0, 0); return ret; } #endif /* SQLITE_OMIT_EXPLAIN */ @@ -149544,16 +153411,31 @@ SQLITE_PRIVATE void sqlite3WhereAddScanStatus( WhereLevel *pLvl, /* Level to add scanstatus() entry for */ int addrExplain /* Address of OP_Explain (or 0) */ ){ - const char *zObj = 0; - WhereLoop *pLoop = pLvl->pWLoop; - if( (pLoop->wsFlags & WHERE_VIRTUALTABLE)==0 && pLoop->u.btree.pIndex!=0 ){ - zObj = pLoop->u.btree.pIndex->zName; - }else{ - zObj = pSrclist->a[pLvl->iFrom].zName; + if( IS_STMT_SCANSTATUS( sqlite3VdbeDb(v) ) ){ + const char *zObj = 0; + WhereLoop *pLoop = pLvl->pWLoop; + int wsFlags = pLoop->wsFlags; + int viaCoroutine = 0; + + if( (wsFlags & WHERE_VIRTUALTABLE)==0 && pLoop->u.btree.pIndex!=0 ){ + zObj = pLoop->u.btree.pIndex->zName; + }else{ + zObj = pSrclist->a[pLvl->iFrom].zName; + viaCoroutine = pSrclist->a[pLvl->iFrom].fg.viaCoroutine; + } + sqlite3VdbeScanStatus( + v, addrExplain, pLvl->addrBody, pLvl->addrVisit, pLoop->nOut, zObj + ); + + if( viaCoroutine==0 ){ + if( (wsFlags & (WHERE_MULTI_OR|WHERE_AUTO_INDEX))==0 ){ + sqlite3VdbeScanStatusRange(v, addrExplain, -1, pLvl->iTabCur); + } + if( wsFlags & WHERE_INDEXED ){ + sqlite3VdbeScanStatusRange(v, addrExplain, -1, pLvl->iIdxCur); + } + } } - sqlite3VdbeScanStatus( - v, addrExplain, pLvl->addrBody, pLvl->addrVisit, pLoop->nOut, zObj - ); } #endif @@ -149613,7 +153495,7 @@ static void disableTerm(WhereLevel *pLevel, WhereTerm *pTerm){ pTerm->wtFlags |= TERM_CODED; } #ifdef WHERETRACE_ENABLED - if( sqlite3WhereTrace & 0x20000 ){ + if( (sqlite3WhereTrace & 0x4001)==0x4001 ){ sqlite3DebugPrintf("DISABLE-"); sqlite3WhereTermPrint(pTerm, (int)(pTerm - (pTerm->pWC->a))); } @@ -149728,68 +153610,75 @@ static Expr *removeUnindexableInClauseTerms( Expr *pX /* The IN expression to be reduced */ ){ sqlite3 *db = pParse->db; + Select *pSelect; /* Pointer to the SELECT on the RHS */ Expr *pNew; pNew = sqlite3ExprDup(db, pX, 0); if( db->mallocFailed==0 ){ - ExprList *pOrigRhs; /* Original unmodified RHS */ - ExprList *pOrigLhs; /* Original unmodified LHS */ - ExprList *pRhs = 0; /* New RHS after modifications */ - ExprList *pLhs = 0; /* New LHS after mods */ - int i; /* Loop counter */ - Select *pSelect; /* Pointer to the SELECT on the RHS */ + for(pSelect=pNew->x.pSelect; pSelect; pSelect=pSelect->pPrior){ + ExprList *pOrigRhs; /* Original unmodified RHS */ + ExprList *pOrigLhs = 0; /* Original unmodified LHS */ + ExprList *pRhs = 0; /* New RHS after modifications */ + ExprList *pLhs = 0; /* New LHS after mods */ + int i; /* Loop counter */ - assert( ExprUseXSelect(pNew) ); - pOrigRhs = pNew->x.pSelect->pEList; - assert( pNew->pLeft!=0 ); - assert( ExprUseXList(pNew->pLeft) ); - pOrigLhs = pNew->pLeft->x.pList; - for(i=iEq; inLTerm; i++){ - if( pLoop->aLTerm[i]->pExpr==pX ){ - int iField; - assert( (pLoop->aLTerm[i]->eOperator & (WO_OR|WO_AND))==0 ); - iField = pLoop->aLTerm[i]->u.x.iField - 1; - if( pOrigRhs->a[iField].pExpr==0 ) continue; /* Duplicate PK column */ - pRhs = sqlite3ExprListAppend(pParse, pRhs, pOrigRhs->a[iField].pExpr); - pOrigRhs->a[iField].pExpr = 0; - assert( pOrigLhs->a[iField].pExpr!=0 ); - pLhs = sqlite3ExprListAppend(pParse, pLhs, pOrigLhs->a[iField].pExpr); - pOrigLhs->a[iField].pExpr = 0; + assert( ExprUseXSelect(pNew) ); + pOrigRhs = pSelect->pEList; + assert( pNew->pLeft!=0 ); + assert( ExprUseXList(pNew->pLeft) ); + if( pSelect==pNew->x.pSelect ){ + pOrigLhs = pNew->pLeft->x.pList; } - } - sqlite3ExprListDelete(db, pOrigRhs); - sqlite3ExprListDelete(db, pOrigLhs); - pNew->pLeft->x.pList = pLhs; - pNew->x.pSelect->pEList = pRhs; - if( pLhs && pLhs->nExpr==1 ){ - /* Take care here not to generate a TK_VECTOR containing only a - ** single value. Since the parser never creates such a vector, some - ** of the subroutines do not handle this case. */ - Expr *p = pLhs->a[0].pExpr; - pLhs->a[0].pExpr = 0; - sqlite3ExprDelete(db, pNew->pLeft); - pNew->pLeft = p; - } - pSelect = pNew->x.pSelect; - if( pSelect->pOrderBy ){ - /* If the SELECT statement has an ORDER BY clause, zero the - ** iOrderByCol variables. These are set to non-zero when an - ** ORDER BY term exactly matches one of the terms of the - ** result-set. Since the result-set of the SELECT statement may - ** have been modified or reordered, these variables are no longer - ** set correctly. Since setting them is just an optimization, - ** it's easiest just to zero them here. */ - ExprList *pOrderBy = pSelect->pOrderBy; - for(i=0; inExpr; i++){ - pOrderBy->a[i].u.x.iOrderByCol = 0; + for(i=iEq; inLTerm; i++){ + if( pLoop->aLTerm[i]->pExpr==pX ){ + int iField; + assert( (pLoop->aLTerm[i]->eOperator & (WO_OR|WO_AND))==0 ); + iField = pLoop->aLTerm[i]->u.x.iField - 1; + if( pOrigRhs->a[iField].pExpr==0 ) continue; /* Duplicate PK column */ + pRhs = sqlite3ExprListAppend(pParse, pRhs, pOrigRhs->a[iField].pExpr); + pOrigRhs->a[iField].pExpr = 0; + if( pOrigLhs ){ + assert( pOrigLhs->a[iField].pExpr!=0 ); + pLhs = sqlite3ExprListAppend(pParse,pLhs,pOrigLhs->a[iField].pExpr); + pOrigLhs->a[iField].pExpr = 0; + } + } + } + sqlite3ExprListDelete(db, pOrigRhs); + if( pOrigLhs ){ + sqlite3ExprListDelete(db, pOrigLhs); + pNew->pLeft->x.pList = pLhs; + } + pSelect->pEList = pRhs; + if( pLhs && pLhs->nExpr==1 ){ + /* Take care here not to generate a TK_VECTOR containing only a + ** single value. Since the parser never creates such a vector, some + ** of the subroutines do not handle this case. */ + Expr *p = pLhs->a[0].pExpr; + pLhs->a[0].pExpr = 0; + sqlite3ExprDelete(db, pNew->pLeft); + pNew->pLeft = p; + } + if( pSelect->pOrderBy ){ + /* If the SELECT statement has an ORDER BY clause, zero the + ** iOrderByCol variables. These are set to non-zero when an + ** ORDER BY term exactly matches one of the terms of the + ** result-set. Since the result-set of the SELECT statement may + ** have been modified or reordered, these variables are no longer + ** set correctly. Since setting them is just an optimization, + ** it's easiest just to zero them here. */ + ExprList *pOrderBy = pSelect->pOrderBy; + for(i=0; inExpr; i++){ + pOrderBy->a[i].u.x.iOrderByCol = 0; + } } - } #if 0 - printf("For indexing, change the IN expr:\n"); - sqlite3TreeViewExpr(0, pX, 0); - printf("Into:\n"); - sqlite3TreeViewExpr(0, pNew, 0); + printf("For indexing, change the IN expr:\n"); + sqlite3TreeViewExpr(0, pX, 0); + printf("Into:\n"); + sqlite3TreeViewExpr(0, pNew, 0); #endif + } } return pNew; } @@ -150147,7 +154036,7 @@ static void whereLikeOptimizationStringFixup( if( pTerm->wtFlags & TERM_LIKEOPT ){ VdbeOp *pOp; assert( pLevel->iLikeRepCntr>0 ); - pOp = sqlite3VdbeGetOp(v, -1); + pOp = sqlite3VdbeGetLastOp(v); assert( pOp!=0 ); assert( pOp->opcode==OP_String8 || pTerm->pWC->pWInfo->pParse->db->mallocFailed ); @@ -150241,11 +154130,12 @@ static int codeCursorHintIsOrFunction(Walker *pWalker, Expr *pExpr){ */ static int codeCursorHintFixExpr(Walker *pWalker, Expr *pExpr){ int rc = WRC_Continue; + int reg; struct CCurHint *pHint = pWalker->u.pCCurHint; if( pExpr->op==TK_COLUMN ){ if( pExpr->iTable!=pHint->iTabCur ){ - int reg = ++pWalker->pParse->nMem; /* Register for column value */ - sqlite3ExprCode(pWalker->pParse, pExpr, reg); + reg = ++pWalker->pParse->nMem; /* Register for column value */ + reg = sqlite3ExprCodeTarget(pWalker->pParse, pExpr, reg); pExpr->op = TK_REGISTER; pExpr->iTable = reg; }else if( pHint->pIdx!=0 ){ @@ -150253,15 +154143,15 @@ static int codeCursorHintFixExpr(Walker *pWalker, Expr *pExpr){ pExpr->iColumn = sqlite3TableColumnToIndex(pHint->pIdx, pExpr->iColumn); assert( pExpr->iColumn>=0 ); } - }else if( pExpr->op==TK_AGG_FUNCTION ){ - /* An aggregate function in the WHERE clause of a query means this must - ** be a correlated sub-query, and expression pExpr is an aggregate from - ** the parent context. Do not walk the function arguments in this case. - ** - ** todo: It should be possible to replace this node with a TK_REGISTER - ** expression, as the result of the expression must be stored in a - ** register at this point. The same holds for TK_AGG_COLUMN nodes. */ + }else if( pExpr->pAggInfo ){ rc = WRC_Prune; + reg = ++pWalker->pParse->nMem; /* Register for column value */ + reg = sqlite3ExprCodeTarget(pWalker->pParse, pExpr, reg); + pExpr->op = TK_REGISTER; + pExpr->iTable = reg; + }else if( pExpr->op==TK_TRUEFALSE ){ + /* Do not walk disabled expressions. tag-20230504-1 */ + return WRC_Prune; } return rc; } @@ -150363,7 +154253,7 @@ static void codeCursorHint( } if( pExpr!=0 ){ sWalker.xExprCallback = codeCursorHintFixExpr; - sqlite3WalkExpr(&sWalker, pExpr); + if( pParse->nErr==0 ) sqlite3WalkExpr(&sWalker, pExpr); sqlite3VdbeAddOp4(v, OP_CursorHint, (sHint.pIdx ? sHint.iIdxCur : sHint.iTabCur), 0, 0, (const char*)pExpr, P4_EXPR); @@ -150471,143 +154361,6 @@ static void codeExprOrVector(Parse *pParse, Expr *p, int iReg, int nReg){ } } -/* An instance of the IdxExprTrans object carries information about a -** mapping from an expression on table columns into a column in an index -** down through the Walker. -*/ -typedef struct IdxExprTrans { - Expr *pIdxExpr; /* The index expression */ - int iTabCur; /* The cursor of the corresponding table */ - int iIdxCur; /* The cursor for the index */ - int iIdxCol; /* The column for the index */ - int iTabCol; /* The column for the table */ - WhereInfo *pWInfo; /* Complete WHERE clause information */ - sqlite3 *db; /* Database connection (for malloc()) */ -} IdxExprTrans; - -/* -** Preserve pExpr on the WhereETrans list of the WhereInfo. -*/ -static void preserveExpr(IdxExprTrans *pTrans, Expr *pExpr){ - WhereExprMod *pNew; - pNew = sqlite3DbMallocRaw(pTrans->db, sizeof(*pNew)); - if( pNew==0 ) return; - pNew->pNext = pTrans->pWInfo->pExprMods; - pTrans->pWInfo->pExprMods = pNew; - pNew->pExpr = pExpr; - memcpy(&pNew->orig, pExpr, sizeof(*pExpr)); -} - -/* The walker node callback used to transform matching expressions into -** a reference to an index column for an index on an expression. -** -** If pExpr matches, then transform it into a reference to the index column -** that contains the value of pExpr. -*/ -static int whereIndexExprTransNode(Walker *p, Expr *pExpr){ - IdxExprTrans *pX = p->u.pIdxTrans; - if( sqlite3ExprCompare(0, pExpr, pX->pIdxExpr, pX->iTabCur)==0 ){ - pExpr = sqlite3ExprSkipCollate(pExpr); - preserveExpr(pX, pExpr); - pExpr->affExpr = sqlite3ExprAffinity(pExpr); - pExpr->op = TK_COLUMN; - pExpr->iTable = pX->iIdxCur; - pExpr->iColumn = pX->iIdxCol; - testcase( ExprHasProperty(pExpr, EP_Unlikely) ); - ExprClearProperty(pExpr, EP_Skip|EP_Unlikely|EP_WinFunc|EP_Subrtn); - pExpr->y.pTab = 0; - return WRC_Prune; - }else{ - return WRC_Continue; - } -} - -#ifndef SQLITE_OMIT_GENERATED_COLUMNS -/* A walker node callback that translates a column reference to a table -** into a corresponding column reference of an index. -*/ -static int whereIndexExprTransColumn(Walker *p, Expr *pExpr){ - if( pExpr->op==TK_COLUMN ){ - IdxExprTrans *pX = p->u.pIdxTrans; - if( pExpr->iTable==pX->iTabCur && pExpr->iColumn==pX->iTabCol ){ - assert( ExprUseYTab(pExpr) && pExpr->y.pTab!=0 ); - preserveExpr(pX, pExpr); - pExpr->affExpr = sqlite3TableColumnAffinity(pExpr->y.pTab,pExpr->iColumn); - pExpr->iTable = pX->iIdxCur; - pExpr->iColumn = pX->iIdxCol; - pExpr->y.pTab = 0; - } - } - return WRC_Continue; -} -#endif /* SQLITE_OMIT_GENERATED_COLUMNS */ - -/* -** For an indexes on expression X, locate every instance of expression X -** in pExpr and change that subexpression into a reference to the appropriate -** column of the index. -** -** 2019-10-24: Updated to also translate references to a VIRTUAL column in -** the table into references to the corresponding (stored) column of the -** index. -*/ -static void whereIndexExprTrans( - Index *pIdx, /* The Index */ - int iTabCur, /* Cursor of the table that is being indexed */ - int iIdxCur, /* Cursor of the index itself */ - WhereInfo *pWInfo /* Transform expressions in this WHERE clause */ -){ - int iIdxCol; /* Column number of the index */ - ExprList *aColExpr; /* Expressions that are indexed */ - Table *pTab; - Walker w; - IdxExprTrans x; - aColExpr = pIdx->aColExpr; - if( aColExpr==0 && !pIdx->bHasVCol ){ - /* The index does not reference any expressions or virtual columns - ** so no translations are needed. */ - return; - } - pTab = pIdx->pTable; - memset(&w, 0, sizeof(w)); - w.u.pIdxTrans = &x; - x.iTabCur = iTabCur; - x.iIdxCur = iIdxCur; - x.pWInfo = pWInfo; - x.db = pWInfo->pParse->db; - for(iIdxCol=0; iIdxColnColumn; iIdxCol++){ - i16 iRef = pIdx->aiColumn[iIdxCol]; - if( iRef==XN_EXPR ){ - assert( aColExpr!=0 && aColExpr->a[iIdxCol].pExpr!=0 ); - x.pIdxExpr = aColExpr->a[iIdxCol].pExpr; - if( sqlite3ExprIsConstant(x.pIdxExpr) ) continue; - w.xExprCallback = whereIndexExprTransNode; -#ifndef SQLITE_OMIT_GENERATED_COLUMNS - }else if( iRef>=0 - && (pTab->aCol[iRef].colFlags & COLFLAG_VIRTUAL)!=0 - && ((pTab->aCol[iRef].colFlags & COLFLAG_HASCOLL)==0 - || sqlite3StrICmp(sqlite3ColumnColl(&pTab->aCol[iRef]), - sqlite3StrBINARY)==0) - ){ - /* Check to see if there are direct references to generated columns - ** that are contained in the index. Pulling the generated column - ** out of the index is an optimization only - the main table is always - ** available if the index cannot be used. To avoid unnecessary - ** complication, omit this optimization if the collating sequence for - ** the column is non-standard */ - x.iTabCol = iRef; - w.xExprCallback = whereIndexExprTransColumn; -#endif /* SQLITE_OMIT_GENERATED_COLUMNS */ - }else{ - continue; - } - x.iIdxCol = iIdxCol; - sqlite3WalkExpr(&w, pWInfo->pWhere); - sqlite3WalkExprList(&w, pWInfo->pOrderBy); - sqlite3WalkExprList(&w, pWInfo->pResultSet); - } -} - /* ** The pTruth expression is always true because it is the WHERE clause ** a partial index that is driving a query loop. Look through all of the @@ -150676,6 +154429,8 @@ static SQLITE_NOINLINE void filterPullDown( testcase( pTerm->wtFlags & TERM_VIRTUAL ); regRowid = sqlite3GetTempReg(pParse); regRowid = codeEqualityTerm(pParse, pTerm, pLevel, 0, 0, regRowid); + sqlite3VdbeAddOp2(pParse->pVdbe, OP_MustBeInt, regRowid, addrNxt); + VdbeCoverage(pParse->pVdbe); sqlite3VdbeAddOp4Int(pParse->pVdbe, OP_Filter, pLevel->regFilter, addrNxt, regRowid, 1); VdbeCoverage(pParse->pVdbe); @@ -150735,13 +154490,15 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( pLevel->notReady = notReady & ~sqlite3WhereGetMask(&pWInfo->sMaskSet, iCur); bRev = (pWInfo->revMask>>iLevel)&1; VdbeModuleComment((v, "Begin WHERE-loop%d: %s",iLevel,pTabItem->pTab->zName)); -#if WHERETRACE_ENABLED /* 0x20800 */ - if( sqlite3WhereTrace & 0x800 ){ +#if WHERETRACE_ENABLED /* 0x4001 */ + if( sqlite3WhereTrace & 0x1 ){ sqlite3DebugPrintf("Coding level %d of %d: notReady=%llx iFrom=%d\n", iLevel, pWInfo->nLevel, (u64)notReady, pLevel->iFrom); - sqlite3WhereLoopPrint(pLoop, pWC); + if( sqlite3WhereTrace & 0x1000 ){ + sqlite3WhereLoopPrint(pLoop, pWC); + } } - if( sqlite3WhereTrace & 0x20000 ){ + if( (sqlite3WhereTrace & 0x4001)==0x4001 ){ if( iLevel==0 ){ sqlite3DebugPrintf("WHERE clause being coded:\n"); sqlite3TreeViewExpr(0, pWInfo->pWhere, 0); @@ -150827,9 +154584,9 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( && pLoop->u.vtab.bOmitOffset ){ assert( pTerm->eOperator==WO_AUX ); - assert( pWInfo->pLimit!=0 ); - assert( pWInfo->pLimit->iOffset>0 ); - sqlite3VdbeAddOp2(v, OP_Integer, 0, pWInfo->pLimit->iOffset); + assert( pWInfo->pSelect!=0 ); + assert( pWInfo->pSelect->iOffset>0 ); + sqlite3VdbeAddOp2(v, OP_Integer, 0, pWInfo->pSelect->iOffset); VdbeComment((v,"Zero OFFSET counter")); } } @@ -150937,6 +154694,8 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( if( iRowidReg!=iReleaseReg ) sqlite3ReleaseTempReg(pParse, iReleaseReg); addrNxt = pLevel->addrNxt; if( pLevel->regFilter ){ + sqlite3VdbeAddOp2(v, OP_MustBeInt, iRowidReg, addrNxt); + VdbeCoverage(v); sqlite3VdbeAddOp4Int(v, OP_Filter, pLevel->regFilter, addrNxt, iRowidReg, 1); VdbeCoverage(v); @@ -151288,6 +155047,11 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( ** guess. */ addrSeekScan = sqlite3VdbeAddOp1(v, OP_SeekScan, (pIdx->aiRowLogEst[0]+9)/10); + if( pRangeStart || pRangeEnd ){ + sqlite3VdbeChangeP5(v, 1); + sqlite3VdbeChangeP2(v, addrSeekScan, sqlite3VdbeCurrentAddr(v)+1); + addrSeekScan = 0; + } VdbeCoverage(v); } sqlite3VdbeAddOp4Int(v, op, iIdxCur, addrNxt, regBase, nConstraint); @@ -151324,16 +155088,7 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( assert( pLevel->p2==0 ); if( pRangeEnd ){ Expr *pRight = pRangeEnd->pExpr->pRight; - if( addrSeekScan ){ - /* For a seek-scan that has a range on the lowest term of the index, - ** we have to make the top of the loop be code that sets the end - ** condition of the range. Otherwise, the OP_SeekScan might jump - ** over that initialization, leaving the range-end value set to the - ** range-start value, resulting in a wrong answer. - ** See ticket 5981a8c041a3c2f3 (2021-11-02). - */ - pLevel->p2 = sqlite3VdbeCurrentAddr(v); - } + assert( addrSeekScan==0 ); codeExprOrVector(pParse, pRight, regBase+nEq, nTop); whereLikeOptimizationStringFixup(v, pLevel, pRangeEnd); if( (pRangeEnd->wtFlags & TERM_VNULL)==0 @@ -151363,11 +155118,11 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( } nConstraint++; } - sqlite3DbFree(db, zStartAff); - sqlite3DbFree(db, zEndAff); + if( zStartAff ) sqlite3DbNNFreeNN(db, zStartAff); + if( zEndAff ) sqlite3DbNNFreeNN(db, zEndAff); /* Top of the loop body */ - if( pLevel->p2==0 ) pLevel->p2 = sqlite3VdbeCurrentAddr(v); + pLevel->p2 = sqlite3VdbeCurrentAddr(v); /* Check if the index cursor is past the end of the range. */ if( nConstraint ){ @@ -151426,27 +155181,6 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( } if( pLevel->iLeftJoin==0 ){ - /* If pIdx is an index on one or more expressions, then look through - ** all the expressions in pWInfo and try to transform matching expressions - ** into reference to index columns. Also attempt to translate references - ** to virtual columns in the table into references to (stored) columns - ** of the index. - ** - ** Do not do this for the RHS of a LEFT JOIN. This is because the - ** expression may be evaluated after OP_NullRow has been executed on - ** the cursor. In this case it is important to do the full evaluation, - ** as the result of the expression may not be NULL, even if all table - ** column values are. https://www.sqlite.org/src/info/7fa8049685b50b5a - ** - ** Also, do not do this when processing one index an a multi-index - ** OR clause, since the transformation will become invalid once we - ** move forward to the next index. - ** https://sqlite.org/src/info/4e8e4857d32d401f - */ - if( (pWInfo->wctrlFlags & (WHERE_OR_SUBCLAUSE|WHERE_RIGHT_JOIN))==0 ){ - whereIndexExprTrans(pIdx, iCur, iIdxCur, pWInfo); - } - /* If a partial index is driving the loop, try to eliminate WHERE clause ** terms from the query that must be true due to the WHERE clause of ** the partial index. @@ -151559,7 +155293,7 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( int nNotReady; /* The number of notReady tables */ SrcItem *origSrc; /* Original list of tables */ nNotReady = pWInfo->nLevel - iLevel - 1; - pOrTab = sqlite3StackAllocRaw(db, + pOrTab = sqlite3DbMallocRawNN(db, sizeof(*pOrTab)+ nNotReady*sizeof(pOrTab->a[0])); if( pOrTab==0 ) return notReady; pOrTab->nAlloc = (u8)(nNotReady + 1); @@ -151679,7 +155413,7 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( } /* Loop through table entries that match term pOrTerm. */ ExplainQueryPlan((pParse, 1, "INDEX %d", ii+1)); - WHERETRACE(0xffff, ("Subplan for OR-clause:\n")); + WHERETRACE(0xffffffff, ("Subplan for OR-clause:\n")); pSubWInfo = sqlite3WhereBegin(pParse, pOrTab, pOrExpr, 0, 0, 0, WHERE_OR_SUBCLAUSE, iCovCur); assert( pSubWInfo || pParse->nErr ); @@ -151812,7 +155546,7 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( assert( pLevel->op==OP_Return ); pLevel->p2 = sqlite3VdbeCurrentAddr(v); - if( pWInfo->nLevel>1 ){ sqlite3StackFree(db, pOrTab); } + if( pWInfo->nLevel>1 ){ sqlite3DbFreeNN(db, pOrTab); } if( !untestedTerms ) disableTerm(pLevel, pTerm); }else #endif /* SQLITE_OMIT_OR_OPTIMIZATION */ @@ -151916,12 +155650,12 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( } #endif } -#ifdef WHERETRACE_ENABLED /* 0xffff */ +#ifdef WHERETRACE_ENABLED /* 0xffffffff */ if( sqlite3WhereTrace ){ VdbeNoopComment((v, "WhereTerm[%d] (%p) priority=%d", pWC->nTerm-j, pTerm, iLoop)); } - if( sqlite3WhereTrace & 0x800 ){ + if( sqlite3WhereTrace & 0x4000 ){ sqlite3DebugPrintf("Coding auxiliary constraint:\n"); sqlite3WhereTermPrint(pTerm, pWC->nTerm-j); } @@ -151950,8 +155684,8 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( if( pTerm->leftCursor!=iCur ) continue; if( pTabItem->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT) ) continue; pE = pTerm->pExpr; -#ifdef WHERETRACE_ENABLED /* 0x800 */ - if( sqlite3WhereTrace & 0x800 ){ +#ifdef WHERETRACE_ENABLED /* 0x4001 */ + if( (sqlite3WhereTrace & 0x4001)==0x4001 ){ sqlite3DebugPrintf("Coding transitive constraint:\n"); sqlite3WhereTermPrint(pTerm, pWC->nTerm-j); } @@ -152066,13 +155800,13 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( } } -#if WHERETRACE_ENABLED /* 0x20800 */ - if( sqlite3WhereTrace & 0x20000 ){ +#if WHERETRACE_ENABLED /* 0x4001 */ + if( sqlite3WhereTrace & 0x4000 ){ sqlite3DebugPrintf("All WHERE-clause terms after coding level %d:\n", iLevel); sqlite3WhereClausePrint(pWC); } - if( sqlite3WhereTrace & 0x800 ){ + if( sqlite3WhereTrace & 0x1 ){ sqlite3DebugPrintf("End Coding level %d: notReady=%llx\n", iLevel, (u64)pLevel->notReady); } @@ -152440,7 +156174,7 @@ static int isLikeOrGlob( if( pLeft->op!=TK_COLUMN || sqlite3ExprAffinity(pLeft)!=SQLITE_AFF_TEXT || (ALWAYS( ExprUseYTab(pLeft) ) - && pLeft->y.pTab + && ALWAYS(pLeft->y.pTab) && IsVirtual(pLeft->y.pTab)) /* Might be numeric */ ){ int isNum; @@ -152557,8 +156291,7 @@ static int isAuxiliaryVtabOperator( ** MATCH(expression,vtab_column) */ pCol = pList->a[1].pExpr; - assert( pCol->op!=TK_COLUMN || ExprUseYTab(pCol) ); - testcase( pCol->op==TK_COLUMN && pCol->y.pTab==0 ); + assert( pCol->op!=TK_COLUMN || (ExprUseYTab(pCol) && pCol->y.pTab!=0) ); if( ExprIsVtab(pCol) ){ for(i=0; ia[0].pExpr; assert( pCol->op!=TK_COLUMN || ExprUseYTab(pCol) ); - testcase( pCol->op==TK_COLUMN && pCol->y.pTab==0 ); + assert( pCol->op!=TK_COLUMN || (ExprUseYTab(pCol) && pCol->y.pTab!=0) ); if( ExprIsVtab(pCol) ){ sqlite3_vtab *pVtab; sqlite3_module *pMod; @@ -152608,13 +156341,12 @@ static int isAuxiliaryVtabOperator( int res = 0; Expr *pLeft = pExpr->pLeft; Expr *pRight = pExpr->pRight; - assert( pLeft->op!=TK_COLUMN || ExprUseYTab(pLeft) ); - testcase( pLeft->op==TK_COLUMN && pLeft->y.pTab==0 ); + assert( pLeft->op!=TK_COLUMN || (ExprUseYTab(pLeft) && pLeft->y.pTab!=0) ); if( ExprIsVtab(pLeft) ){ res++; } - assert( pRight==0 || pRight->op!=TK_COLUMN || ExprUseYTab(pRight) ); - testcase( pRight && pRight->op==TK_COLUMN && pRight->y.pTab==0 ); + assert( pRight==0 || pRight->op!=TK_COLUMN + || (ExprUseYTab(pRight) && pRight->y.pTab!=0) ); if( pRight && ExprIsVtab(pRight) ){ res++; SWAP(Expr*, pLeft, pRight); @@ -153150,35 +156882,40 @@ static Bitmask exprSelectUsage(WhereMaskSet *pMaskSet, Select *pS){ */ static SQLITE_NOINLINE int exprMightBeIndexed2( SrcList *pFrom, /* The FROM clause */ - Bitmask mPrereq, /* Bitmask of FROM clause terms referenced by pExpr */ int *aiCurCol, /* Write the referenced table cursor and column here */ - Expr *pExpr /* An operand of a comparison operator */ + Expr *pExpr, /* An operand of a comparison operator */ + int j /* Start looking with the j-th pFrom entry */ ){ Index *pIdx; int i; int iCur; - for(i=0; mPrereq>1; i++, mPrereq>>=1){} - iCur = pFrom->a[i].iCursor; - for(pIdx=pFrom->a[i].pTab->pIndex; pIdx; pIdx=pIdx->pNext){ - if( pIdx->aColExpr==0 ) continue; - for(i=0; inKeyCol; i++){ - if( pIdx->aiColumn[i]!=XN_EXPR ) continue; - if( sqlite3ExprCompareSkip(pExpr, pIdx->aColExpr->a[i].pExpr, iCur)==0 ){ - aiCurCol[0] = iCur; - aiCurCol[1] = XN_EXPR; - return 1; + do{ + iCur = pFrom->a[j].iCursor; + for(pIdx=pFrom->a[j].pTab->pIndex; pIdx; pIdx=pIdx->pNext){ + if( pIdx->aColExpr==0 ) continue; + for(i=0; inKeyCol; i++){ + if( pIdx->aiColumn[i]!=XN_EXPR ) continue; + assert( pIdx->bHasExpr ); + if( sqlite3ExprCompareSkip(pExpr,pIdx->aColExpr->a[i].pExpr,iCur)==0 + && pExpr->op!=TK_STRING + ){ + aiCurCol[0] = iCur; + aiCurCol[1] = XN_EXPR; + return 1; + } } } - } + }while( ++j < pFrom->nSrc ); return 0; } static int exprMightBeIndexed( SrcList *pFrom, /* The FROM clause */ - Bitmask mPrereq, /* Bitmask of FROM clause terms referenced by pExpr */ int *aiCurCol, /* Write the referenced table cursor & column here */ Expr *pExpr, /* An operand of a comparison operator */ int op /* The specific comparison operator */ ){ + int i; + /* If this expression is a vector to the left or right of a ** inequality constraint (>, <, >= or <=), perform the processing ** on the first element of the vector. */ @@ -153188,7 +156925,6 @@ static int exprMightBeIndexed( if( pExpr->op==TK_VECTOR && (op>=TK_GT && ALWAYS(op<=TK_GE)) ){ assert( ExprUseXList(pExpr) ); pExpr = pExpr->x.pList->a[0].pExpr; - } if( pExpr->op==TK_COLUMN ){ @@ -153196,9 +156932,16 @@ static int exprMightBeIndexed( aiCurCol[1] = pExpr->iColumn; return 1; } - if( mPrereq==0 ) return 0; /* No table references */ - if( (mPrereq&(mPrereq-1))!=0 ) return 0; /* Refs more than one table */ - return exprMightBeIndexed2(pFrom,mPrereq,aiCurCol,pExpr); + + for(i=0; inSrc; i++){ + Index *pIdx; + for(pIdx=pFrom->a[i].pTab->pIndex; pIdx; pIdx=pIdx->pNext){ + if( pIdx->aColExpr ){ + return exprMightBeIndexed2(pFrom,aiCurCol,pExpr,i); + } + } + } + return 0; } @@ -153324,7 +157067,7 @@ static void exprAnalyze( pLeft = pLeft->x.pList->a[pTerm->u.x.iField-1].pExpr; } - if( exprMightBeIndexed(pSrc, prereqLeft, aiCurCol, pLeft, op) ){ + if( exprMightBeIndexed(pSrc, aiCurCol, pLeft, op) ){ pTerm->leftCursor = aiCurCol[0]; assert( (pTerm->eOperator & (WO_OR|WO_AND))==0 ); pTerm->u.x.leftColumn = aiCurCol[1]; @@ -153332,7 +157075,7 @@ static void exprAnalyze( } if( op==TK_IS ) pTerm->wtFlags |= TERM_IS; if( pRight - && exprMightBeIndexed(pSrc, pTerm->prereqRight, aiCurCol, pRight, op) + && exprMightBeIndexed(pSrc, aiCurCol, pRight, op) && !ExprHasProperty(pRight, EP_FixedCol) ){ WhereTerm *pNew; @@ -153376,7 +157119,7 @@ static void exprAnalyze( && 0==sqlite3ExprCanBeNull(pLeft) ){ assert( !ExprHasProperty(pExpr, EP_IntValue) ); - pExpr->op = TK_TRUEFALSE; + pExpr->op = TK_TRUEFALSE; /* See tag-20230504-1 */ pExpr->u.zToken = "false"; ExprSetProperty(pExpr, EP_IsFalse); pTerm->prereqAll = 0; @@ -153543,7 +157286,6 @@ static void exprAnalyze( transferJoinMarkings(pNewExpr1, pExpr); idxNew1 = whereClauseInsert(pWC, pNewExpr1, wtFlags); testcase( idxNew1==0 ); - exprAnalyze(pSrc, pWC, idxNew1); pNewExpr2 = sqlite3ExprDup(db, pLeft, 0); pNewExpr2 = sqlite3PExpr(pParse, TK_LT, sqlite3ExprAddCollateString(pParse,pNewExpr2,zCollSeqName), @@ -153551,6 +157293,7 @@ static void exprAnalyze( transferJoinMarkings(pNewExpr2, pExpr); idxNew2 = whereClauseInsert(pWC, pNewExpr2, wtFlags); testcase( idxNew2==0 ); + exprAnalyze(pSrc, pWC, idxNew1); exprAnalyze(pSrc, pWC, idxNew2); pTerm = &pWC->a[idxTerm]; if( isComplete ){ @@ -153607,7 +157350,7 @@ static void exprAnalyze( && pTerm->u.x.iField==0 && pExpr->pLeft->op==TK_VECTOR && ALWAYS( ExprUseXSelect(pExpr) ) - && pExpr->x.pSelect->pPrior==0 + && (pExpr->x.pSelect->pPrior==0 || (pExpr->x.pSelect->selFlags & SF_Values)) #ifndef SQLITE_OMIT_WINDOWFUNC && pExpr->x.pSelect->pWin==0 #endif @@ -153776,9 +157519,9 @@ static void whereAddLimitExpr( ** exist only so that they may be passed to the xBestIndex method of the ** single virtual table in the FROM clause of the SELECT. */ -SQLITE_PRIVATE void sqlite3WhereAddLimit(WhereClause *pWC, Select *p){ - assert( p==0 || (p->pGroupBy==0 && (p->selFlags & SF_Aggregate)==0) ); - if( (p && p->pLimit) /* 1 */ +SQLITE_PRIVATE void SQLITE_NOINLINE sqlite3WhereAddLimit(WhereClause *pWC, Select *p){ + assert( p!=0 && p->pLimit!=0 ); /* 1 -- checked by caller */ + if( p->pGroupBy==0 && (p->selFlags & (SF_Distinct|SF_Aggregate))==0 /* 2 */ && (p->pSrc->nSrc==1 && IsVirtual(p->pSrc->a[0].pTab)) /* 3 */ ){ @@ -153795,6 +157538,13 @@ SQLITE_PRIVATE void sqlite3WhereAddLimit(WhereClause *pWC, Select *p){ assert( pWC->a[ii].eOperator==WO_ROWVAL ); continue; } + if( pWC->a[ii].nChild ){ + /* If this term has child terms, then they are also part of the + ** pWC->a[] array. So this term can be ignored, as a LIMIT clause + ** will only be added if each of the child terms passes the + ** (leftCursor==iCsr) test below. */ + continue; + } if( pWC->a[ii].leftCursor!=iCsr ) return; } @@ -154014,9 +157764,12 @@ SQLITE_PRIVATE void sqlite3WhereTabFuncArgs( pRhs = sqlite3PExpr(pParse, TK_UPLUS, sqlite3ExprDup(pParse->db, pArgs->a[j].pExpr, 0), 0); pTerm = sqlite3PExpr(pParse, TK_EQ, pColRef, pRhs); - if( pItem->fg.jointype & (JT_LEFT|JT_LTORJ) ){ + if( pItem->fg.jointype & (JT_LEFT|JT_RIGHT) ){ + testcase( pItem->fg.jointype & JT_LEFT ); /* testtag-20230227a */ + testcase( pItem->fg.jointype & JT_RIGHT ); /* testtag-20230227b */ joinType = EP_OuterON; }else{ + testcase( pItem->fg.jointype & JT_LTORJ ); /* testtag-20230227c */ joinType = EP_InnerON; } sqlite3SetJoinExpr(pTerm, pItem->iCursor, joinType); @@ -154095,7 +157848,7 @@ SQLITE_PRIVATE int sqlite3WhereIsDistinct(WhereInfo *pWInfo){ ** block sorting is required. */ SQLITE_PRIVATE int sqlite3WhereIsOrdered(WhereInfo *pWInfo){ - return pWInfo->nOBSat; + return pWInfo->nOBSat<0 ? 0 : pWInfo->nOBSat; } /* @@ -154733,7 +158486,7 @@ static void translateColumnToCopy( #if !defined(SQLITE_OMIT_VIRTUALTABLE) && defined(WHERETRACE_ENABLED) static void whereTraceIndexInfoInputs(sqlite3_index_info *p){ int i; - if( !sqlite3WhereTrace ) return; + if( (sqlite3WhereTrace & 0x10)==0 ) return; for(i=0; inConstraint; i++){ sqlite3DebugPrintf( " constraint[%d]: col=%d termid=%d op=%d usabled=%d collseq=%s\n", @@ -154753,7 +158506,7 @@ static void whereTraceIndexInfoInputs(sqlite3_index_info *p){ } static void whereTraceIndexInfoOutputs(sqlite3_index_info *p){ int i; - if( !sqlite3WhereTrace ) return; + if( (sqlite3WhereTrace & 0x10)==0 ) return; for(i=0; inConstraint; i++){ sqlite3DebugPrintf(" usage[%d]: argvIdx=%d omit=%d\n", i, @@ -154771,6 +158524,43 @@ static void whereTraceIndexInfoOutputs(sqlite3_index_info *p){ #define whereTraceIndexInfoOutputs(A) #endif +/* +** We know that pSrc is an operand of an outer join. Return true if +** pTerm is a constraint that is compatible with that join. +** +** pTerm must be EP_OuterON if pSrc is the right operand of an +** outer join. pTerm can be either EP_OuterON or EP_InnerON if pSrc +** is the left operand of a RIGHT join. +** +** See https://sqlite.org/forum/forumpost/206d99a16dd9212f +** for an example of a WHERE clause constraints that may not be used on +** the right table of a RIGHT JOIN because the constraint implies a +** not-NULL condition on the left table of the RIGHT JOIN. +*/ +static int constraintCompatibleWithOuterJoin( + const WhereTerm *pTerm, /* WHERE clause term to check */ + const SrcItem *pSrc /* Table we are trying to access */ +){ + assert( (pSrc->fg.jointype&(JT_LEFT|JT_LTORJ|JT_RIGHT))!=0 ); /* By caller */ + testcase( (pSrc->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))==JT_LEFT ); + testcase( (pSrc->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))==JT_LTORJ ); + testcase( ExprHasProperty(pTerm->pExpr, EP_OuterON) ) + testcase( ExprHasProperty(pTerm->pExpr, EP_InnerON) ); + if( !ExprHasProperty(pTerm->pExpr, EP_OuterON|EP_InnerON) + || pTerm->pExpr->w.iJoin != pSrc->iCursor + ){ + return 0; + } + if( (pSrc->fg.jointype & (JT_LEFT|JT_RIGHT))!=0 + && ExprHasProperty(pTerm->pExpr, EP_InnerON) + ){ + return 0; + } + return 1; +} + + + #ifndef SQLITE_OMIT_AUTOMATIC_INDEX /* ** Return TRUE if the WHERE clause term pTerm is of a form where it @@ -154786,16 +158576,10 @@ static int termCanDriveIndex( if( pTerm->leftCursor!=pSrc->iCursor ) return 0; if( (pTerm->eOperator & (WO_EQ|WO_IS))==0 ) return 0; assert( (pSrc->fg.jointype & JT_RIGHT)==0 ); - if( (pSrc->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))!=0 ){ - testcase( (pSrc->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))==JT_LEFT ); - testcase( (pSrc->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))==JT_LTORJ ); - testcase( ExprHasProperty(pTerm->pExpr, EP_OuterON) ) - testcase( ExprHasProperty(pTerm->pExpr, EP_InnerON) ); - if( !ExprHasProperty(pTerm->pExpr, EP_OuterON|EP_InnerON) - || pTerm->pExpr->w.iJoin != pSrc->iCursor - ){ - return 0; /* See tag-20191211-001 */ - } + if( (pSrc->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))!=0 + && !constraintCompatibleWithOuterJoin(pTerm,pSrc) + ){ + return 0; /* See https://sqlite.org/forum/forumpost/51e6959f61 */ } if( (pTerm->prereqRight & notReady)!=0 ) return 0; assert( (pTerm->eOperator & (WO_OR|WO_AND))==0 ); @@ -154809,6 +158593,57 @@ static int termCanDriveIndex( #ifndef SQLITE_OMIT_AUTOMATIC_INDEX + +#ifdef SQLITE_ENABLE_STMT_SCANSTATUS +/* +** Argument pIdx represents an automatic index that the current statement +** will create and populate. Add an OP_Explain with text of the form: +** +** CREATE AUTOMATIC INDEX ON () [WHERE ] +** +** This is only required if sqlite3_stmt_scanstatus() is enabled, to +** associate an SQLITE_SCANSTAT_NCYCLE and SQLITE_SCANSTAT_NLOOP +** values with. In order to avoid breaking legacy code and test cases, +** the OP_Explain is not added if this is an EXPLAIN QUERY PLAN command. +*/ +static void explainAutomaticIndex( + Parse *pParse, + Index *pIdx, /* Automatic index to explain */ + int bPartial, /* True if pIdx is a partial index */ + int *pAddrExplain /* OUT: Address of OP_Explain */ +){ + if( IS_STMT_SCANSTATUS(pParse->db) && pParse->explain!=2 ){ + Table *pTab = pIdx->pTable; + const char *zSep = ""; + char *zText = 0; + int ii = 0; + sqlite3_str *pStr = sqlite3_str_new(pParse->db); + sqlite3_str_appendf(pStr,"CREATE AUTOMATIC INDEX ON %s(", pTab->zName); + assert( pIdx->nColumn>1 ); + assert( pIdx->aiColumn[pIdx->nColumn-1]==XN_ROWID ); + for(ii=0; ii<(pIdx->nColumn-1); ii++){ + const char *zName = 0; + int iCol = pIdx->aiColumn[ii]; + + zName = pTab->aCol[iCol].zCnName; + sqlite3_str_appendf(pStr, "%s%s", zSep, zName); + zSep = ", "; + } + zText = sqlite3_str_finish(pStr); + if( zText==0 ){ + sqlite3OomFault(pParse->db); + }else{ + *pAddrExplain = sqlite3VdbeExplain( + pParse, 0, "%s)%s", zText, (bPartial ? " WHERE " : "") + ); + sqlite3_free(zText); + } + } +} +#else +# define explainAutomaticIndex(a,b,c,d) +#endif + /* ** Generate code to construct the Index object for an automatic index ** and to set up the WhereLevel object pLevel so that the code generator @@ -154816,8 +158651,7 @@ static int termCanDriveIndex( */ static SQLITE_NOINLINE void constructAutomaticIndex( Parse *pParse, /* The parsing context */ - const WhereClause *pWC, /* The WHERE clause */ - const SrcItem *pSrc, /* The FROM clause term to get the next index */ + WhereClause *pWC, /* The WHERE clause */ const Bitmask notReady, /* Mask of cursors that are not available */ WhereLevel *pLevel /* Write new index here */ ){ @@ -154838,12 +158672,17 @@ static SQLITE_NOINLINE void constructAutomaticIndex( char *zNotUsed; /* Extra space on the end of pIdx */ Bitmask idxCols; /* Bitmap of columns used for indexing */ Bitmask extraCols; /* Bitmap of additional columns */ - u8 sentWarning = 0; /* True if a warnning has been issued */ + u8 sentWarning = 0; /* True if a warning has been issued */ + u8 useBloomFilter = 0; /* True to also add a Bloom filter */ Expr *pPartial = 0; /* Partial Index Expression */ int iContinue = 0; /* Jump here to skip excluded rows */ - SrcItem *pTabItem; /* FROM clause term being indexed */ + SrcList *pTabList; /* The complete FROM clause */ + SrcItem *pSrc; /* The FROM clause term to get the next index */ int addrCounter = 0; /* Address where integer counter is initialized */ int regBase; /* Array of registers where record is assembled */ +#ifdef SQLITE_ENABLE_STMT_SCANSTATUS + int addrExp = 0; /* Address of OP_Explain */ +#endif /* Generate code to skip over the creation and initialization of the ** transient index on 2nd and subsequent iterations of the loop. */ @@ -154854,6 +158693,8 @@ static SQLITE_NOINLINE void constructAutomaticIndex( /* Count the number of columns that will be added to the index ** and used to match WHERE clause constraints */ nKeyCol = 0; + pTabList = pWC->pWInfo->pTabList; + pSrc = &pTabList->a[pLevel->iFrom]; pTable = pSrc->pTab; pWCEnd = &pWC->a[pWC->nTerm]; pLoop = pLevel->pWLoop; @@ -154864,7 +158705,7 @@ static SQLITE_NOINLINE void constructAutomaticIndex( ** WHERE clause (or the ON clause of a LEFT join) that constrain which ** rows of the target table (pSrc) that can be used. */ if( (pTerm->wtFlags & TERM_VIRTUAL)==0 - && sqlite3ExprIsTableConstraint(pExpr, pSrc) + && sqlite3ExprIsSingleTableConstraint(pExpr, pTabList, pLevel->iFrom) ){ pPartial = sqlite3ExprAnd(pParse, pPartial, sqlite3ExprDup(pParse->db, pExpr, 0)); @@ -154905,7 +158746,11 @@ static SQLITE_NOINLINE void constructAutomaticIndex( ** original table changes and the index and table cannot both be used ** if they go out of sync. */ - extraCols = pSrc->colUsed & (~idxCols | MASKBIT(BMS-1)); + if( IsView(pTable) ){ + extraCols = ALLBITS; + }else{ + extraCols = pSrc->colUsed & (~idxCols | MASKBIT(BMS-1)); + } mxBitCol = MIN(BMS-1,pTable->nCol); testcase( pTable->nCol==BMS-1 ); testcase( pTable->nCol==BMS-2 ); @@ -154941,6 +158786,16 @@ static SQLITE_NOINLINE void constructAutomaticIndex( assert( pColl!=0 || pParse->nErr>0 ); /* TH3 collate01.800 */ pIdx->azColl[n] = pColl ? pColl->zName : sqlite3StrBINARY; n++; + if( ALWAYS(pX->pLeft!=0) + && sqlite3ExprAffinity(pX->pLeft)!=SQLITE_AFF_TEXT + ){ + /* TUNING: only use a Bloom filter on an automatic index + ** if one or more key columns has the ability to hold numeric + ** values, since strings all have the same hash in the Bloom + ** filter implementation and hence a Bloom filter on a text column + ** is not usually helpful. */ + useBloomFilter = 1; + } } } } @@ -154967,25 +158822,27 @@ static SQLITE_NOINLINE void constructAutomaticIndex( pIdx->azColl[n] = sqlite3StrBINARY; /* Create the automatic index */ + explainAutomaticIndex(pParse, pIdx, pPartial!=0, &addrExp); assert( pLevel->iIdxCur>=0 ); pLevel->iIdxCur = pParse->nTab++; sqlite3VdbeAddOp2(v, OP_OpenAutoindex, pLevel->iIdxCur, nKeyCol+1); sqlite3VdbeSetP4KeyInfo(pParse, pIdx); VdbeComment((v, "for %s", pTable->zName)); - if( OptimizationEnabled(pParse->db, SQLITE_BloomFilter) ){ + if( OptimizationEnabled(pParse->db, SQLITE_BloomFilter) && useBloomFilter ){ + sqlite3WhereExplainBloomFilter(pParse, pWC->pWInfo, pLevel); pLevel->regFilter = ++pParse->nMem; sqlite3VdbeAddOp2(v, OP_Blob, 10000, pLevel->regFilter); } /* Fill the automatic index with content */ - pTabItem = &pWC->pWInfo->pTabList->a[pLevel->iFrom]; - if( pTabItem->fg.viaCoroutine ){ - int regYield = pTabItem->regReturn; + assert( pSrc == &pWC->pWInfo->pTabList->a[pLevel->iFrom] ); + if( pSrc->fg.viaCoroutine ){ + int regYield = pSrc->regReturn; addrCounter = sqlite3VdbeAddOp2(v, OP_Integer, 0, 0); - sqlite3VdbeAddOp3(v, OP_InitCoroutine, regYield, 0, pTabItem->addrFillSub); + sqlite3VdbeAddOp3(v, OP_InitCoroutine, regYield, 0, pSrc->addrFillSub); addrTop = sqlite3VdbeAddOp1(v, OP_Yield, regYield); VdbeCoverage(v); - VdbeComment((v, "next row of %s", pTabItem->pTab->zName)); + VdbeComment((v, "next row of %s", pSrc->pTab->zName)); }else{ addrTop = sqlite3VdbeAddOp1(v, OP_Rewind, pLevel->iTabCur); VdbeCoverage(v); } @@ -155002,17 +158859,18 @@ static SQLITE_NOINLINE void constructAutomaticIndex( sqlite3VdbeAddOp4Int(v, OP_FilterAdd, pLevel->regFilter, 0, regBase, pLoop->u.btree.nEq); } + sqlite3VdbeScanStatusCounters(v, addrExp, addrExp, sqlite3VdbeCurrentAddr(v)); sqlite3VdbeAddOp2(v, OP_IdxInsert, pLevel->iIdxCur, regRecord); sqlite3VdbeChangeP5(v, OPFLAG_USESEEKRESULT); if( pPartial ) sqlite3VdbeResolveLabel(v, iContinue); - if( pTabItem->fg.viaCoroutine ){ + if( pSrc->fg.viaCoroutine ){ sqlite3VdbeChangeP2(v, addrCounter, regBase+n); testcase( pParse->db->mallocFailed ); assert( pLevel->iIdxCur>0 ); translateColumnToCopy(pParse, addrTop, pLevel->iTabCur, - pTabItem->regResult, pLevel->iIdxCur); + pSrc->regResult, pLevel->iIdxCur); sqlite3VdbeGoto(v, addrTop); - pTabItem->fg.viaCoroutine = 0; + pSrc->fg.viaCoroutine = 0; }else{ sqlite3VdbeAddOp2(v, OP_Next, pLevel->iTabCur, addrTop+1); VdbeCoverage(v); sqlite3VdbeChangeP5(v, SQLITE_STMTSTATUS_AUTOINDEX); @@ -155022,6 +158880,7 @@ static SQLITE_NOINLINE void constructAutomaticIndex( /* Jump here when skipping the initialization */ sqlite3VdbeJumpHere(v, addrInit); + sqlite3VdbeScanStatusRange(v, addrExp, addrExp, -1); end_auto_index_create: sqlite3ExprDelete(pParse->db, pPartial); @@ -155063,6 +158922,10 @@ static SQLITE_NOINLINE void sqlite3ConstructBloomFilter( Vdbe *v = pParse->pVdbe; /* VDBE under construction */ WhereLoop *pLoop = pLevel->pWLoop; /* The loop being coded */ int iCur; /* Cursor for table getting the filter */ + IndexedExpr *saved_pIdxEpr; /* saved copy of Parse.pIdxEpr */ + + saved_pIdxEpr = pParse->pIdxEpr; + pParse->pIdxEpr = 0; assert( pLoop!=0 ); assert( v!=0 ); @@ -155070,9 +158933,11 @@ static SQLITE_NOINLINE void sqlite3ConstructBloomFilter( addrOnce = sqlite3VdbeAddOp0(v, OP_Once); VdbeCoverage(v); do{ + const SrcList *pTabList; const SrcItem *pItem; const Table *pTab; u64 sz; + int iSrc; sqlite3WhereExplainBloomFilter(pParse, pWInfo, pLevel); addrCont = sqlite3VdbeMakeLabel(pParse); iCur = pLevel->iTabCur; @@ -155086,7 +158951,9 @@ static SQLITE_NOINLINE void sqlite3ConstructBloomFilter( ** testing complicated. By basing the blob size on the value in the ** sqlite_stat1 table, testing is much easier. */ - pItem = &pWInfo->pTabList->a[pLevel->iFrom]; + pTabList = pWInfo->pTabList; + iSrc = pLevel->iFrom; + pItem = &pTabList->a[iSrc]; assert( pItem!=0 ); pTab = pItem->pTab; assert( pTab!=0 ); @@ -155103,7 +158970,7 @@ static SQLITE_NOINLINE void sqlite3ConstructBloomFilter( for(pTerm=pWInfo->sWC.a; pTermpExpr; if( (pTerm->wtFlags & TERM_VIRTUAL)==0 - && sqlite3ExprIsTableConstraint(pExpr, pItem) + && sqlite3ExprIsSingleTableConstraint(pExpr, pTabList, iSrc) ){ sqlite3ExprIfFalse(pParse, pTerm->pExpr, addrCont, SQLITE_JUMPIFNULL); } @@ -155119,9 +158986,8 @@ static SQLITE_NOINLINE void sqlite3ConstructBloomFilter( int r1 = sqlite3GetTempRange(pParse, n); int jj; for(jj=0; jjaiColumn[jj]; assert( pIdx->pTable==pItem->pTab ); - sqlite3ExprCodeGetColumnOfTable(v, pIdx->pTable, iCur, iCol,r1+jj); + sqlite3ExprCodeLoadIndexColumn(pParse, pIdx, iCur, jj, r1+jj); } sqlite3VdbeAddOp4Int(v, OP_FilterAdd, pLevel->regFilter, 0, r1, n); sqlite3ReleaseTempRange(pParse, r1, n); @@ -155152,6 +159018,7 @@ static SQLITE_NOINLINE void sqlite3ConstructBloomFilter( } }while( iLevel < pWInfo->nLevel ); sqlite3VdbeJumpHere(v, addrOnce); + pParse->pIdxEpr = saved_pIdxEpr; } @@ -155207,22 +159074,10 @@ static sqlite3_index_info *allocateIndexInfo( assert( (pTerm->eOperator & (WO_OR|WO_AND))==0 ); assert( pTerm->u.x.leftColumn>=XN_ROWID ); assert( pTerm->u.x.leftColumnnCol ); - - /* tag-20191211-002: WHERE-clause constraints are not useful to the - ** right-hand table of a LEFT JOIN nor to the either table of a - ** RIGHT JOIN. See tag-20191211-001 for the - ** equivalent restriction for ordinary tables. */ - if( (pSrc->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))!=0 ){ - testcase( (pSrc->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))==JT_LEFT ); - testcase( (pSrc->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))==JT_RIGHT ); - testcase( (pSrc->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))==JT_LTORJ ); - testcase( ExprHasProperty(pTerm->pExpr, EP_OuterON) ); - testcase( ExprHasProperty(pTerm->pExpr, EP_InnerON) ); - if( !ExprHasProperty(pTerm->pExpr, EP_OuterON|EP_InnerON) - || pTerm->pExpr->w.iJoin != pSrc->iCursor - ){ - continue; - } + if( (pSrc->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))!=0 + && !constraintCompatibleWithOuterJoin(pTerm,pSrc) + ){ + continue; } nTerm++; pTerm->wtFlags |= TERM_OK; @@ -155419,6 +159274,9 @@ static int vtabBestIndex(Parse *pParse, Table *pTab, sqlite3_index_info *p){ sqlite3ErrorMsg(pParse, "%s", pVtab->zErrMsg); } } + if( pTab->u.vtab.p->bAllSchemas ){ + sqlite3VtabUsesAllSchemas(pParse); + } sqlite3_free(pVtab->zErrMsg); pVtab->zErrMsg = 0; return rc; @@ -155463,6 +159321,7 @@ static int whereKeyStats( assert( pIdx->nSample>0 ); assert( pRec->nField>0 ); + /* Do a binary search to find the first sample greater than or equal ** to pRec. If pRec contains a single field, the set of samples to search ** is simply the aSample[] array. If the samples in aSample[] contain more @@ -155507,7 +159366,12 @@ static int whereKeyStats( ** it is extended to two fields. The duplicates that this creates do not ** cause any problems. */ - nField = MIN(pRec->nField, pIdx->nSample); + if( !HasRowid(pIdx->pTable) && IsPrimaryKeyIndex(pIdx) ){ + nField = pIdx->nKeyCol; + }else{ + nField = pIdx->nColumn; + } + nField = MIN(pRec->nField, nField); iCol = 0; iSample = pIdx->nSample * nField; do{ @@ -155573,12 +159437,12 @@ static int whereKeyStats( if( iCol>0 ){ pRec->nField = iCol; assert( sqlite3VdbeRecordCompare(aSample[i].n, aSample[i].p, pRec)<=0 - || pParse->db->mallocFailed ); + || pParse->db->mallocFailed || CORRUPT_DB ); } if( i>0 ){ pRec->nField = nField; assert( sqlite3VdbeRecordCompare(aSample[i-1].n, aSample[i-1].p, pRec)<0 - || pParse->db->mallocFailed ); + || pParse->db->mallocFailed || CORRUPT_DB ); } } } @@ -155595,7 +159459,7 @@ static int whereKeyStats( ** is larger than all samples in the array. */ tRowcnt iUpper, iGap; if( i>=pIdx->nSample ){ - iUpper = sqlite3LogEstToInt(pIdx->aiRowLogEst[0]); + iUpper = pIdx->nRowEst0; }else{ iUpper = aSample[i].anLt[iCol]; } @@ -155751,7 +159615,7 @@ static int whereRangeSkipScanEst( int nAdjust = (sqlite3LogEst(p->nSample) - sqlite3LogEst(nDiff)); pLoop->nOut -= nAdjust; *pbDone = 1; - WHERETRACE(0x10, ("range skip-scan regions: %u..%u adjust=%d est=%d\n", + WHERETRACE(0x20, ("range skip-scan regions: %u..%u adjust=%d est=%d\n", nLower, nUpper, nAdjust*-1, pLoop->nOut)); } @@ -155929,7 +159793,7 @@ static int whereRangeScanEst( if( nNewwtFlags & TERM_VNULL)==0 ); + assert( pUpper==0 || (pUpper->wtFlags & TERM_VNULL)==0 || pParse->nErr>0 ); nNew = whereRangeAdjust(pLower, nOut); nNew = whereRangeAdjust(pUpper, nNew); @@ -155962,7 +159826,7 @@ static int whereRangeScanEst( if( nNewnOut>nOut ){ - WHERETRACE(0x10,("Range scan lowers nOut from %d to %d\n", + WHERETRACE(0x20,("Range scan lowers nOut from %d to %d\n", pLoop->nOut, nOut)); } #endif @@ -156027,7 +159891,7 @@ static int whereEqualScanEst( pBuilder->nRecValid = nEq; whereKeyStats(pParse, p, pRec, 0, a); - WHERETRACE(0x10,("equality scan regions %s(%d): %d\n", + WHERETRACE(0x20,("equality scan regions %s(%d): %d\n", p->zName, nEq-1, (int)a[1])); *pnRow = a[1]; @@ -156075,9 +159939,9 @@ static int whereInScanEst( } if( rc==SQLITE_OK ){ - if( nRowEst > nRow0 ) nRowEst = nRow0; + if( nRowEst > (tRowcnt)nRow0 ) nRowEst = nRow0; *pnRow = nRowEst; - WHERETRACE(0x10,("IN row estimate: est=%d\n", nRowEst)); + WHERETRACE(0x20,("IN row estimate: est=%d\n", nRowEst)); } assert( pBuilder->nRecValid==nRecValid ); return rc; @@ -156186,7 +160050,7 @@ SQLITE_PRIVATE void sqlite3WhereLoopPrint(WhereLoop *p, WhereClause *pWC){ sqlite3DebugPrintf(" f %06x N %d", p->wsFlags, p->nLTerm); } sqlite3DebugPrintf(" cost %d,%d,%d\n", p->rSetup, p->rRun, p->nOut); - if( p->nLTerm && (sqlite3WhereTrace & 0x100)!=0 ){ + if( p->nLTerm && (sqlite3WhereTrace & 0x4000)!=0 ){ int i; for(i=0; inLTerm; i++){ sqlite3WhereTermPrint(p->aLTerm[i], i); @@ -156224,12 +160088,18 @@ static void whereLoopClearUnion(sqlite3 *db, WhereLoop *p){ } /* -** Deallocate internal memory used by a WhereLoop object +** Deallocate internal memory used by a WhereLoop object. Leave the +** object in an initialized state, as if it had been newly allocated. */ static void whereLoopClear(sqlite3 *db, WhereLoop *p){ - if( p->aLTerm!=p->aLTermSpace ) sqlite3DbFreeNN(db, p->aLTerm); + if( p->aLTerm!=p->aLTermSpace ){ + sqlite3DbFreeNN(db, p->aLTerm); + p->aLTerm = p->aLTermSpace; + p->nLSlot = ArraySize(p->aLTermSpace); + } whereLoopClearUnion(db, p); - whereLoopInit(p); + p->nLTerm = 0; + p->wsFlags = 0; } /* @@ -156253,7 +160123,9 @@ static int whereLoopResize(sqlite3 *db, WhereLoop *p, int n){ */ static int whereLoopXfer(sqlite3 *db, WhereLoop *pTo, WhereLoop *pFrom){ whereLoopClearUnion(db, pTo); - if( whereLoopResize(db, pTo, pFrom->nLTerm) ){ + if( pFrom->nLTerm > pTo->nLSlot + && whereLoopResize(db, pTo, pFrom->nLTerm) + ){ memset(pTo, 0, WHERE_LOOP_XFER_SZ); return SQLITE_NOMEM_BKPT; } @@ -156271,8 +160143,9 @@ static int whereLoopXfer(sqlite3 *db, WhereLoop *pTo, WhereLoop *pFrom){ ** Delete a WhereLoop object */ static void whereLoopDelete(sqlite3 *db, WhereLoop *p){ + assert( db!=0 ); whereLoopClear(db, p); - sqlite3DbFreeNN(db, p); + sqlite3DbNNFreeNN(db, p); } /* @@ -156280,30 +160153,19 @@ static void whereLoopDelete(sqlite3 *db, WhereLoop *p){ */ static void whereInfoFree(sqlite3 *db, WhereInfo *pWInfo){ assert( pWInfo!=0 ); + assert( db!=0 ); sqlite3WhereClauseClear(&pWInfo->sWC); while( pWInfo->pLoops ){ WhereLoop *p = pWInfo->pLoops; pWInfo->pLoops = p->pNextLoop; whereLoopDelete(db, p); } - assert( pWInfo->pExprMods==0 ); while( pWInfo->pMemToFree ){ WhereMemBlock *pNext = pWInfo->pMemToFree->pNext; - sqlite3DbFreeNN(db, pWInfo->pMemToFree); + sqlite3DbNNFreeNN(db, pWInfo->pMemToFree); pWInfo->pMemToFree = pNext; } - sqlite3DbFreeNN(db, pWInfo); -} - -/* Undo all Expr node modifications -*/ -static void whereUndoExprMods(WhereInfo *pWInfo){ - while( pWInfo->pExprMods ){ - WhereExprMod *p = pWInfo->pExprMods; - pWInfo->pExprMods = p->pNext; - memcpy(p->pExpr, &p->orig, sizeof(p->orig)); - sqlite3DbFree(pWInfo->pParse->db, p); - } + sqlite3DbNNFreeNN(db, pWInfo); } /* @@ -156652,6 +160514,7 @@ static void whereLoopOutputAdjust( if( pX->iParent>=0 && (&pWC->a[pX->iParent])==pTerm ) break; } if( j<0 ){ + sqlite3ProgressCheck(pWC->pWInfo->pParse); if( pLoop->maskSelf==pTerm->prereqAll ){ /* If there are extra terms in the WHERE clause not used by an index ** that depend only on the table being scanned, and that will tend to @@ -156819,7 +160682,10 @@ static int whereLoopAddBtreeIndex( WhereTerm *pTop = 0, *pBtm = 0; /* Top and bottom range constraints */ pNew = pBuilder->pNew; - if( db->mallocFailed ) return SQLITE_NOMEM_BKPT; + assert( db->mallocFailed==0 || pParse->nErr>0 ); + if( pParse->nErr ){ + return pParse->rc; + } WHERETRACE(0x800, ("BEGIN %s.addBtreeIdx(%s), nEq=%d, nSkip=%d, rRun=%d\n", pProbe->pTable->zName,pProbe->zName, pNew->u.btree.nEq, pNew->nSkip, pNew->rRun)); @@ -156870,32 +160736,11 @@ static int whereLoopAddBtreeIndex( ** to mix with a lower range bound from some other source */ if( pTerm->wtFlags & TERM_LIKEOPT && pTerm->eOperator==WO_LT ) continue; - /* tag-20191211-001: Do not allow constraints from the WHERE clause to - ** be used by the right table of a LEFT JOIN nor by the left table of a - ** RIGHT JOIN. Only constraints in the ON clause are allowed. - ** See tag-20191211-002 for the vtab equivalent. - ** - ** 2022-06-06: See https://sqlite.org/forum/forumpost/206d99a16dd9212f - ** for an example of a WHERE clause constraints that may not be used on - ** the right table of a RIGHT JOIN because the constraint implies a - ** not-NULL condition on the left table of the RIGHT JOIN. - ** - ** 2022-06-10: The same condition applies to termCanDriveIndex() above. - ** https://sqlite.org/forum/forumpost/51e6959f61 - */ - if( (pSrc->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))!=0 ){ - testcase( (pSrc->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))==JT_LEFT ); - testcase( (pSrc->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))==JT_RIGHT ); - testcase( (pSrc->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))==JT_LTORJ ); - testcase( ExprHasProperty(pTerm->pExpr, EP_OuterON) ) - testcase( ExprHasProperty(pTerm->pExpr, EP_InnerON) ); - if( !ExprHasProperty(pTerm->pExpr, EP_OuterON|EP_InnerON) - || pTerm->pExpr->w.iJoin != pSrc->iCursor - ){ - continue; - } + if( (pSrc->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))!=0 + && !constraintCompatibleWithOuterJoin(pTerm,pSrc) + ){ + continue; } - if( IsUniqueIndex(pProbe) && saved_nEq==pProbe->nKeyCol-1 ){ pBuilder->bldFlags1 |= SQLITE_BLDF1_UNIQUE; }else{ @@ -156906,7 +160751,11 @@ static int whereLoopAddBtreeIndex( pNew->u.btree.nBtm = saved_nBtm; pNew->u.btree.nTop = saved_nTop; pNew->nLTerm = saved_nLTerm; - if( whereLoopResize(db, pNew, pNew->nLTerm+1) ) break; /* OOM */ + if( pNew->nLTerm>=pNew->nLSlot + && whereLoopResize(db, pNew, pNew->nLTerm+1) + ){ + break; /* OOM while trying to enlarge the pNew->aLTerm array */ + } pNew->aLTerm[pNew->nLTerm++] = pTerm; pNew->prereq = (saved_prereq | pTerm->prereqRight) & ~pNew->maskSelf; @@ -156999,38 +160848,39 @@ static int whereLoopAddBtreeIndex( if( scan.iEquiv>1 ) pNew->wsFlags |= WHERE_TRANSCONS; }else if( eOp & WO_ISNULL ){ pNew->wsFlags |= WHERE_COLUMN_NULL; - }else if( eOp & (WO_GT|WO_GE) ){ - testcase( eOp & WO_GT ); - testcase( eOp & WO_GE ); - pNew->wsFlags |= WHERE_COLUMN_RANGE|WHERE_BTM_LIMIT; - pNew->u.btree.nBtm = whereRangeVectorLen( - pParse, pSrc->iCursor, pProbe, saved_nEq, pTerm - ); - pBtm = pTerm; - pTop = 0; - if( pTerm->wtFlags & TERM_LIKEOPT ){ - /* Range constraints that come from the LIKE optimization are - ** always used in pairs. */ - pTop = &pTerm[1]; - assert( (pTop-(pTerm->pWC->a))pWC->nTerm ); - assert( pTop->wtFlags & TERM_LIKEOPT ); - assert( pTop->eOperator==WO_LT ); - if( whereLoopResize(db, pNew, pNew->nLTerm+1) ) break; /* OOM */ - pNew->aLTerm[pNew->nLTerm++] = pTop; - pNew->wsFlags |= WHERE_TOP_LIMIT; - pNew->u.btree.nTop = 1; - } }else{ - assert( eOp & (WO_LT|WO_LE) ); - testcase( eOp & WO_LT ); - testcase( eOp & WO_LE ); - pNew->wsFlags |= WHERE_COLUMN_RANGE|WHERE_TOP_LIMIT; - pNew->u.btree.nTop = whereRangeVectorLen( + int nVecLen = whereRangeVectorLen( pParse, pSrc->iCursor, pProbe, saved_nEq, pTerm ); - pTop = pTerm; - pBtm = (pNew->wsFlags & WHERE_BTM_LIMIT)!=0 ? - pNew->aLTerm[pNew->nLTerm-2] : 0; + if( eOp & (WO_GT|WO_GE) ){ + testcase( eOp & WO_GT ); + testcase( eOp & WO_GE ); + pNew->wsFlags |= WHERE_COLUMN_RANGE|WHERE_BTM_LIMIT; + pNew->u.btree.nBtm = nVecLen; + pBtm = pTerm; + pTop = 0; + if( pTerm->wtFlags & TERM_LIKEOPT ){ + /* Range constraints that come from the LIKE optimization are + ** always used in pairs. */ + pTop = &pTerm[1]; + assert( (pTop-(pTerm->pWC->a))pWC->nTerm ); + assert( pTop->wtFlags & TERM_LIKEOPT ); + assert( pTop->eOperator==WO_LT ); + if( whereLoopResize(db, pNew, pNew->nLTerm+1) ) break; /* OOM */ + pNew->aLTerm[pNew->nLTerm++] = pTop; + pNew->wsFlags |= WHERE_TOP_LIMIT; + pNew->u.btree.nTop = 1; + } + }else{ + assert( eOp & (WO_LT|WO_LE) ); + testcase( eOp & WO_LT ); + testcase( eOp & WO_LE ); + pNew->wsFlags |= WHERE_COLUMN_RANGE|WHERE_TOP_LIMIT; + pNew->u.btree.nTop = nVecLen; + pTop = pTerm; + pBtm = (pNew->wsFlags & WHERE_BTM_LIMIT)!=0 ? + pNew->aLTerm[pNew->nLTerm-2] : 0; + } } /* At this point pNew->nOut is set to the number of rows expected to @@ -157082,7 +160932,7 @@ static int whereLoopAddBtreeIndex( && pNew->nOut+10 > pProbe->aiRowLogEst[0] ){ #if WHERETRACE_ENABLED /* 0x01 */ - if( sqlite3WhereTrace & 0x01 ){ + if( sqlite3WhereTrace & 0x20 ){ sqlite3DebugPrintf( "STAT4 determines term has low selectivity:\n"); sqlite3WhereTermPrint(pTerm, 999); @@ -157119,9 +160969,17 @@ static int whereLoopAddBtreeIndex( ** seek only. Then, if this is a non-covering index, add the cost of ** visiting the rows in the main table. */ assert( pSrc->pTab->szTabRow>0 ); - rCostIdx = pNew->nOut + 1 + (15*pProbe->szIdxRow)/pSrc->pTab->szTabRow; + if( pProbe->idxType==SQLITE_IDXTYPE_IPK ){ + /* The pProbe->szIdxRow is low for an IPK table since the interior + ** pages are small. Thuse szIdxRow gives a good estimate of seek cost. + ** But the leaf pages are full-size, so pProbe->szIdxRow would badly + ** under-estimate the scanning cost. */ + rCostIdx = pNew->nOut + 16; + }else{ + rCostIdx = pNew->nOut + 1 + (15*pProbe->szIdxRow)/pSrc->pTab->szTabRow; + } pNew->rRun = sqlite3LogEstAdd(rLogSize, rCostIdx); - if( (pNew->wsFlags & (WHERE_IDX_ONLY|WHERE_IPK))==0 ){ + if( (pNew->wsFlags & (WHERE_IDX_ONLY|WHERE_IPK|WHERE_EXPRIDX))==0 ){ pNew->rRun = sqlite3LogEstAdd(pNew->rRun, pNew->nOut + 16); } ApplyCostMultiplier(pNew->rRun, pProbe->pTable->costMult); @@ -157143,6 +161001,9 @@ static int whereLoopAddBtreeIndex( && (pNew->u.btree.nEqnKeyCol || pProbe->idxType!=SQLITE_IDXTYPE_PRIMARYKEY) ){ + if( pNew->u.btree.nEq>3 ){ + sqlite3ProgressCheck(pParse); + } whereLoopAddBtreeIndex(pBuilder, pSrc, pProbe, nInMul+nIn); } pNew->nOut = saved_nOut; @@ -157274,6 +161135,149 @@ static int whereUsablePartialIndex( return 0; } +/* +** pIdx is an index containing expressions. Check it see if any of the +** expressions in the index match the pExpr expression. +*/ +static int exprIsCoveredByIndex( + const Expr *pExpr, + const Index *pIdx, + int iTabCur +){ + int i; + for(i=0; inColumn; i++){ + if( pIdx->aiColumn[i]==XN_EXPR + && sqlite3ExprCompare(0, pExpr, pIdx->aColExpr->a[i].pExpr, iTabCur)==0 + ){ + return 1; + } + } + return 0; +} + +/* +** Structure passed to the whereIsCoveringIndex Walker callback. +*/ +typedef struct CoveringIndexCheck CoveringIndexCheck; +struct CoveringIndexCheck { + Index *pIdx; /* The index */ + int iTabCur; /* Cursor number for the corresponding table */ + u8 bExpr; /* Uses an indexed expression */ + u8 bUnidx; /* Uses an unindexed column not within an indexed expr */ +}; + +/* +** Information passed in is pWalk->u.pCovIdxCk. Call it pCk. +** +** If the Expr node references the table with cursor pCk->iTabCur, then +** make sure that column is covered by the index pCk->pIdx. We know that +** all columns less than 63 (really BMS-1) are covered, so we don't need +** to check them. But we do need to check any column at 63 or greater. +** +** If the index does not cover the column, then set pWalk->eCode to +** non-zero and return WRC_Abort to stop the search. +** +** If this node does not disprove that the index can be a covering index, +** then just return WRC_Continue, to continue the search. +** +** If pCk->pIdx contains indexed expressions and one of those expressions +** matches pExpr, then prune the search. +*/ +static int whereIsCoveringIndexWalkCallback(Walker *pWalk, Expr *pExpr){ + int i; /* Loop counter */ + const Index *pIdx; /* The index of interest */ + const i16 *aiColumn; /* Columns contained in the index */ + u16 nColumn; /* Number of columns in the index */ + CoveringIndexCheck *pCk; /* Info about this search */ + + pCk = pWalk->u.pCovIdxCk; + pIdx = pCk->pIdx; + if( (pExpr->op==TK_COLUMN || pExpr->op==TK_AGG_COLUMN) ){ + /* if( pExpr->iColumn<(BMS-1) && pIdx->bHasExpr==0 ) return WRC_Continue;*/ + if( pExpr->iTable!=pCk->iTabCur ) return WRC_Continue; + pIdx = pWalk->u.pCovIdxCk->pIdx; + aiColumn = pIdx->aiColumn; + nColumn = pIdx->nColumn; + for(i=0; iiColumn ) return WRC_Continue; + } + pCk->bUnidx = 1; + return WRC_Abort; + }else if( pIdx->bHasExpr + && exprIsCoveredByIndex(pExpr, pIdx, pWalk->u.pCovIdxCk->iTabCur) ){ + pCk->bExpr = 1; + return WRC_Prune; + } + return WRC_Continue; +} + + +/* +** pIdx is an index that covers all of the low-number columns used by +** pWInfo->pSelect (columns from 0 through 62) or an index that has +** expressions terms. Hence, we cannot determine whether or not it is +** a covering index by using the colUsed bitmasks. We have to do a search +** to see if the index is covering. This routine does that search. +** +** The return value is one of these: +** +** 0 The index is definitely not a covering index +** +** WHERE_IDX_ONLY The index is definitely a covering index +** +** WHERE_EXPRIDX The index is likely a covering index, but it is +** difficult to determine precisely because of the +** expressions that are indexed. Score it as a +** covering index, but still keep the main table open +** just in case we need it. +** +** This routine is an optimization. It is always safe to return zero. +** But returning one of the other two values when zero should have been +** returned can lead to incorrect bytecode and assertion faults. +*/ +static SQLITE_NOINLINE u32 whereIsCoveringIndex( + WhereInfo *pWInfo, /* The WHERE clause context */ + Index *pIdx, /* Index that is being tested */ + int iTabCur /* Cursor for the table being indexed */ +){ + int i, rc; + struct CoveringIndexCheck ck; + Walker w; + if( pWInfo->pSelect==0 ){ + /* We don't have access to the full query, so we cannot check to see + ** if pIdx is covering. Assume it is not. */ + return 0; + } + if( pIdx->bHasExpr==0 ){ + for(i=0; inColumn; i++){ + if( pIdx->aiColumn[i]>=BMS-1 ) break; + } + if( i>=pIdx->nColumn ){ + /* pIdx does not index any columns greater than 62, but we know from + ** colMask that columns greater than 62 are used, so this is not a + ** covering index */ + return 0; + } + } + ck.pIdx = pIdx; + ck.iTabCur = iTabCur; + ck.bExpr = 0; + ck.bUnidx = 0; + memset(&w, 0, sizeof(w)); + w.xExprCallback = whereIsCoveringIndexWalkCallback; + w.xSelectCallback = sqlite3SelectWalkNoop; + w.u.pCovIdxCk = &ck; + sqlite3WalkSelect(&w, pWInfo->pSelect); + if( ck.bUnidx ){ + rc = 0; + }else if( ck.bExpr ){ + rc = WHERE_EXPRIDX; + }else{ + rc = WHERE_IDX_ONLY; + } + return rc; +} + /* ** Add all WhereLoop objects for a single table of the join where the table ** is identified by pBuilder->pNew->iTab. That table is guaranteed to be @@ -157356,7 +161360,7 @@ static int whereLoopAddBtree( sPk.aiRowLogEst = aiRowEstPk; sPk.onError = OE_Replace; sPk.pTable = pTab; - sPk.szIdxRow = pTab->szTabRow; + sPk.szIdxRow = 3; /* TUNING: Interior rows of IPK table are very small */ sPk.idxType = SQLITE_IDXTYPE_IPK; aiRowEstPk[0] = pTab->nRowLogEst; aiRowEstPk[1] = 0; @@ -157407,7 +161411,8 @@ static int whereLoopAddBtree( if( !IsView(pTab) && (pTab->tabFlags & TF_Ephemeral)==0 ){ pNew->rSetup += 28; }else{ - pNew->rSetup -= 10; + pNew->rSetup -= 25; /* Greatly reduced setup cost for auto indexes + ** on ephemeral materializations of views */ } ApplyCostMultiplier(pNew->rSetup, pTab->costMult); if( pNew->rSetup<0 ) pNew->rSetup = 0; @@ -157476,6 +161481,9 @@ static int whereLoopAddBtree( #else pNew->rRun = rSize + 16; #endif + if( IsView(pTab) || (pTab->tabFlags & TF_Ephemeral)!=0 ){ + pNew->wsFlags |= WHERE_VIEWSCAN; + } ApplyCostMultiplier(pNew->rRun, pTab->costMult); whereLoopOutputAdjust(pWC, pNew, rSize); rc = whereLoopInsert(pBuilder, pNew); @@ -157484,11 +161492,38 @@ static int whereLoopAddBtree( }else{ Bitmask m; if( pProbe->isCovering ){ - pNew->wsFlags = WHERE_IDX_ONLY | WHERE_INDEXED; m = 0; + pNew->wsFlags = WHERE_IDX_ONLY | WHERE_INDEXED; }else{ m = pSrc->colUsed & pProbe->colNotIdxed; - pNew->wsFlags = (m==0) ? (WHERE_IDX_ONLY|WHERE_INDEXED) : WHERE_INDEXED; + pNew->wsFlags = WHERE_INDEXED; + if( m==TOPBIT || (pProbe->bHasExpr && !pProbe->bHasVCol && m!=0) ){ + u32 isCov = whereIsCoveringIndex(pWInfo, pProbe, pSrc->iCursor); + if( isCov==0 ){ + WHERETRACE(0x200, + ("-> %s is not a covering index" + " according to whereIsCoveringIndex()\n", pProbe->zName)); + assert( m!=0 ); + }else{ + m = 0; + pNew->wsFlags |= isCov; + if( isCov & WHERE_IDX_ONLY ){ + WHERETRACE(0x200, + ("-> %s is a covering expression index" + " according to whereIsCoveringIndex()\n", pProbe->zName)); + }else{ + assert( isCov==WHERE_EXPRIDX ); + WHERETRACE(0x200, + ("-> %s might be a covering expression index" + " according to whereIsCoveringIndex()\n", pProbe->zName)); + } + } + }else if( m==0 ){ + WHERETRACE(0x200, + ("-> %s a covering index according to bitmasks\n", + pProbe->zName, m==0 ? "is" : "is not")); + pNew->wsFlags = WHERE_IDX_ONLY | WHERE_INDEXED; + } } /* Full scan via index */ @@ -157661,7 +161696,7 @@ static int whereLoopAddVirtualOne( ** that the particular combination of parameters provided is unusable. ** Make no entries in the loop table. */ - WHERETRACE(0xffff, (" ^^^^--- non-viable plan rejected!\n")); + WHERETRACE(0xffffffff, (" ^^^^--- non-viable plan rejected!\n")); return SQLITE_OK; } return rc; @@ -157772,7 +161807,7 @@ static int whereLoopAddVirtualOne( sqlite3_free(pNew->u.vtab.idxStr); pNew->u.vtab.needFree = 0; } - WHERETRACE(0xffff, (" bIn=%d prereqIn=%04llx prereqOut=%04llx\n", + WHERETRACE(0xffffffff, (" bIn=%d prereqIn=%04llx prereqOut=%04llx\n", *pbIn, (sqlite3_uint64)mPrereq, (sqlite3_uint64)(pNew->prereq & ~mPrereq))); @@ -157873,32 +161908,27 @@ SQLITE_API int sqlite3_vtab_distinct(sqlite3_index_info *pIdxInfo){ return pHidden->eDistinct; } -#if (defined(SQLITE_ENABLE_DBPAGE_VTAB) || defined(SQLITE_TEST)) \ - && !defined(SQLITE_OMIT_VIRTUALTABLE) /* ** Cause the prepared statement that is associated with a call to -** xBestIndex to potentiall use all schemas. If the statement being +** xBestIndex to potentially use all schemas. If the statement being ** prepared is read-only, then just start read transactions on all ** schemas. But if this is a write operation, start writes on all ** schemas. ** ** This is used by the (built-in) sqlite_dbpage virtual table. */ -SQLITE_PRIVATE void sqlite3VtabUsesAllSchemas(sqlite3_index_info *pIdxInfo){ - HiddenIndexInfo *pHidden = (HiddenIndexInfo*)&pIdxInfo[1]; - Parse *pParse = pHidden->pParse; +SQLITE_PRIVATE void sqlite3VtabUsesAllSchemas(Parse *pParse){ int nDb = pParse->db->nDb; int i; for(i=0; iwriteMask ){ + if( DbMaskNonZero(pParse->writeMask) ){ for(i=0; ipTab->zName)); - WHERETRACE(0x40, (" VirtualOne: all usable\n")); + WHERETRACE(0x800, (" VirtualOne: all usable\n")); rc = whereLoopAddVirtualOne( pBuilder, mPrereq, ALLBITS, 0, p, mNoOmit, &bIn, &bRetry ); @@ -157989,7 +162019,7 @@ static int whereLoopAddVirtual( /* If the plan produced by the earlier call uses an IN(...) term, call ** xBestIndex again, this time with IN(...) terms disabled. */ if( bIn ){ - WHERETRACE(0x40, (" VirtualOne: all usable w/o IN\n")); + WHERETRACE(0x800, (" VirtualOne: all usable w/o IN\n")); rc = whereLoopAddVirtualOne( pBuilder, mPrereq, ALLBITS, WO_IN, p, mNoOmit, &bIn, 0); assert( bIn==0 ); @@ -158015,7 +162045,7 @@ static int whereLoopAddVirtual( mPrev = mNext; if( mNext==ALLBITS ) break; if( mNext==mBest || mNext==mBestNoIn ) continue; - WHERETRACE(0x40, (" VirtualOne: mPrev=%04llx mNext=%04llx\n", + WHERETRACE(0x800, (" VirtualOne: mPrev=%04llx mNext=%04llx\n", (sqlite3_uint64)mPrev, (sqlite3_uint64)mNext)); rc = whereLoopAddVirtualOne( pBuilder, mPrereq, mNext|mPrereq, 0, p, mNoOmit, &bIn, 0); @@ -158029,7 +162059,7 @@ static int whereLoopAddVirtual( ** that requires no source tables at all (i.e. one guaranteed to be ** usable), make a call here with all source tables disabled */ if( rc==SQLITE_OK && seenZero==0 ){ - WHERETRACE(0x40, (" VirtualOne: all disabled\n")); + WHERETRACE(0x800, (" VirtualOne: all disabled\n")); rc = whereLoopAddVirtualOne( pBuilder, mPrereq, mPrereq, 0, p, mNoOmit, &bIn, 0); if( bIn==0 ) seenZeroNoIN = 1; @@ -158039,7 +162069,7 @@ static int whereLoopAddVirtual( ** that requires no source tables at all and does not use an IN(...) ** operator, make a final call to obtain one here. */ if( rc==SQLITE_OK && seenZeroNoIN==0 ){ - WHERETRACE(0x40, (" VirtualOne: all disabled and w/o IN\n")); + WHERETRACE(0x800, (" VirtualOne: all disabled and w/o IN\n")); rc = whereLoopAddVirtualOne( pBuilder, mPrereq, mPrereq, WO_IN, p, mNoOmit, &bIn, 0); } @@ -158095,7 +162125,7 @@ static int whereLoopAddOr( sSubBuild = *pBuilder; sSubBuild.pOrSet = &sCur; - WHERETRACE(0x200, ("Begin processing OR-clause %p\n", pTerm)); + WHERETRACE(0x400, ("Begin processing OR-clause %p\n", pTerm)); for(pOrTerm=pOrWC->a; pOrTermeOperator & WO_AND)!=0 ){ sSubBuild.pWC = &pOrTerm->u.pAndInfo->wc; @@ -158112,9 +162142,9 @@ static int whereLoopAddOr( } sCur.n = 0; #ifdef WHERETRACE_ENABLED - WHERETRACE(0x200, ("OR-term %d of %p has %d subterms:\n", + WHERETRACE(0x400, ("OR-term %d of %p has %d subterms:\n", (int)(pOrTerm-pOrWC->a), pTerm, sSubBuild.pWC->nTerm)); - if( sqlite3WhereTrace & 0x400 ){ + if( sqlite3WhereTrace & 0x20000 ){ sqlite3WhereClausePrint(sSubBuild.pWC); } #endif @@ -158129,8 +162159,6 @@ static int whereLoopAddOr( if( rc==SQLITE_OK ){ rc = whereLoopAddOr(&sSubBuild, mPrereq, mUnusable); } - assert( rc==SQLITE_OK || rc==SQLITE_DONE || sCur.n==0 - || rc==SQLITE_NOMEM ); testcase( rc==SQLITE_NOMEM && sCur.n>0 ); testcase( rc==SQLITE_DONE ); if( sCur.n==0 ){ @@ -158176,7 +162204,7 @@ static int whereLoopAddOr( pNew->prereq = sSum.a[i].prereq; rc = whereLoopInsert(pBuilder, pNew); } - WHERETRACE(0x200, ("End processing OR-clause %p\n", pTerm)); + WHERETRACE(0x400, ("End processing OR-clause %p\n", pTerm)); } } return rc; @@ -158202,7 +162230,13 @@ static int whereLoopAddAll(WhereLoopBuilder *pBuilder){ /* Loop over the tables in the join, from left to right */ pNew = pBuilder->pNew; - whereLoopInit(pNew); + + /* Verify that pNew has already been initialized */ + assert( pNew->nLTerm==0 ); + assert( pNew->wsFlags==0 ); + assert( pNew->nLSlot>=ArraySize(pNew->aLTermSpace) ); + assert( pNew->aLTerm!=0 ); + pBuilder->iPlanLimit = SQLITE_QUERY_PLANNER_LIMIT; for(iTab=0, pItem=pTabList->a; pItemiTable!=iCur ) continue; if( pOBExpr->iColumn!=iColumn ) continue; }else{ - Expr *pIdxExpr = pIndex->aColExpr->a[j].pExpr; - if( sqlite3ExprCompareSkip(pOBExpr, pIdxExpr, iCur) ){ + Expr *pIxExpr = pIndex->aColExpr->a[j].pExpr; + if( sqlite3ExprCompareSkip(pOBExpr, pIxExpr, iCur) ){ continue; } } @@ -158651,37 +162685,56 @@ static const char *wherePathName(WherePath *pPath, int nLoop, WhereLoop *pLast){ ** order. */ static LogEst whereSortingCost( - WhereInfo *pWInfo, - LogEst nRow, - int nOrderBy, - int nSorted + WhereInfo *pWInfo, /* Query planning context */ + LogEst nRow, /* Estimated number of rows to sort */ + int nOrderBy, /* Number of ORDER BY clause terms */ + int nSorted /* Number of initial ORDER BY terms naturally in order */ ){ - /* TUNING: Estimated cost of a full external sort, where N is + /* Estimated cost of a full external sort, where N is ** the number of rows to sort is: ** - ** cost = (3.0 * N * log(N)). + ** cost = (K * N * log(N)). ** ** Or, if the order-by clause has X terms but only the last Y ** terms are out of order, then block-sorting will reduce the ** sorting cost to: ** - ** cost = (3.0 * N * log(N)) * (Y/X) + ** cost = (K * N * log(N)) * (Y/X) ** - ** The (Y/X) term is implemented using stack variable rScale - ** below. + ** The constant K is at least 2.0 but will be larger if there are a + ** large number of columns to be sorted, as the sorting time is + ** proportional to the amount of content to be sorted. The algorithm + ** does not currently distinguish between fat columns (BLOBs and TEXTs) + ** and skinny columns (INTs). It just uses the number of columns as + ** an approximation for the row width. + ** + ** And extra factor of 2.0 or 3.0 is added to the sorting cost if the sort + ** is built using OP_IdxInsert and OP_Sort rather than with OP_SorterInsert. */ - LogEst rScale, rSortCost; - assert( nOrderBy>0 && 66==sqlite3LogEst(100) ); - rScale = sqlite3LogEst((nOrderBy-nSorted)*100/nOrderBy) - 66; - rSortCost = nRow + rScale + 16; + LogEst rSortCost, nCol; + assert( pWInfo->pSelect!=0 ); + assert( pWInfo->pSelect->pEList!=0 ); + /* TUNING: sorting cost proportional to the number of output columns: */ + nCol = sqlite3LogEst((pWInfo->pSelect->pEList->nExpr+59)/30); + rSortCost = nRow + nCol; + if( nSorted>0 ){ + /* Scale the result by (Y/X) */ + rSortCost += sqlite3LogEst((nOrderBy-nSorted)*100/nOrderBy) - 66; + } /* Multiple by log(M) where M is the number of output rows. ** Use the LIMIT for M if it is smaller. Or if this sort is for ** a DISTINCT operator, M will be the number of distinct output ** rows, so fudge it downwards a bit. */ - if( (pWInfo->wctrlFlags & WHERE_USE_LIMIT)!=0 && pWInfo->iLimitiLimit; + if( (pWInfo->wctrlFlags & WHERE_USE_LIMIT)!=0 ){ + rSortCost += 10; /* TUNING: Extra 2.0x if using LIMIT */ + if( nSorted!=0 ){ + rSortCost += 6; /* TUNING: Extra 1.5x if also using partial sort */ + } + if( pWInfo->iLimitiLimit; + } }else if( (pWInfo->wctrlFlags & WHERE_WANT_DISTINCT) ){ /* TUNING: In the sort for a DISTINCT operator, assume that the DISTINCT ** reduces the number of output rows by a factor of 2 */ @@ -158707,7 +162760,6 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ int mxChoice; /* Maximum number of simultaneous paths tracked */ int nLoop; /* Number of terms in the join */ Parse *pParse; /* Parsing context */ - sqlite3 *db; /* The database connection */ int iLoop; /* Loop counter over the terms of the join */ int ii, jj; /* Loop counters */ int mxI = 0; /* Index of next entry to replace */ @@ -158726,7 +162778,6 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ int nSpace; /* Bytes of space allocated at pSpace */ pParse = pWInfo->pParse; - db = pParse->db; nLoop = pWInfo->nLevel; /* TUNING: For simple queries, only the best path is tracked. ** For 2-way joins, the 5 best paths are followed. @@ -158749,7 +162800,7 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ /* Allocate and initialize space for aTo, aFrom and aSortCost[] */ nSpace = (sizeof(WherePath)+sizeof(WhereLoop*)*nLoop)*mxChoice*2; nSpace += sizeof(LogEst) * nOrderBy; - pSpace = sqlite3DbMallocRawNN(db, nSpace); + pSpace = sqlite3StackAllocRawNN(pParse->db, nSpace); if( pSpace==0 ) return SQLITE_NOMEM_BKPT; aTo = (WherePath*)pSpace; aFrom = aTo+mxChoice; @@ -158799,9 +162850,9 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ LogEst nOut; /* Rows visited by (pFrom+pWLoop) */ LogEst rCost; /* Cost of path (pFrom+pWLoop) */ LogEst rUnsorted; /* Unsorted cost of (pFrom+pWLoop) */ - i8 isOrdered = pFrom->isOrdered; /* isOrdered for (pFrom+pWLoop) */ + i8 isOrdered; /* isOrdered for (pFrom+pWLoop) */ Bitmask maskNew; /* Mask of src visited by (..) */ - Bitmask revMask = 0; /* Mask of rev-order loops for (..) */ + Bitmask revMask; /* Mask of rev-order loops for (..) */ if( (pWLoop->prereq & ~pFrom->maskLoop)!=0 ) continue; if( (pWLoop->maskSelf & pFrom->maskLoop)!=0 ) continue; @@ -158820,7 +162871,9 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ rUnsorted = sqlite3LogEstAdd(rUnsorted, pFrom->rUnsorted); nOut = pFrom->nRow + pWLoop->nOut; maskNew = pFrom->maskLoop | pWLoop->maskSelf; + isOrdered = pFrom->isOrdered; if( isOrdered<0 ){ + revMask = 0; isOrdered = wherePathSatisfiesOrderBy(pWInfo, pWInfo->pOrderBy, pFrom, pWInfo->wctrlFlags, iLoop, pWLoop, &revMask); @@ -158833,11 +162886,11 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ pWInfo, nRowEst, nOrderBy, isOrdered ); } - /* TUNING: Add a small extra penalty (5) to sorting as an + /* TUNING: Add a small extra penalty (3) to sorting as an ** extra encouragment to the query planner to select a plan ** where the rows emerge in the correct order without any sorting ** required. */ - rCost = sqlite3LogEstAdd(rUnsorted, aSortCost[isOrdered]) + 5; + rCost = sqlite3LogEstAdd(rUnsorted, aSortCost[isOrdered]) + 3; WHERETRACE(0x002, ("---- sort cost=%-3d (%d/%d) increases cost %3d to %-3d\n", @@ -158848,6 +162901,13 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ rUnsorted -= 2; /* TUNING: Slight bias in favor of no-sort plans */ } + /* TUNING: A full-scan of a VIEW or subquery in the outer loop + ** is not so bad. */ + if( iLoop==0 && (pWLoop->wsFlags & WHERE_VIEWSCAN)!=0 ){ + rCost += -10; + nOut += -30; + } + /* Check to see if pWLoop should be added to the set of ** mxChoice best-so-far paths. ** @@ -158998,7 +163058,7 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ if( nFrom==0 ){ sqlite3ErrorMsg(pParse, "no query solution"); - sqlite3DbFreeNN(db, pSpace); + sqlite3StackFreeNN(pParse->db, pSpace); return SQLITE_ERROR; } @@ -159034,6 +163094,10 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ if( pFrom->isOrdered==pWInfo->pOrderBy->nExpr ){ pWInfo->eDistinct = WHERE_DISTINCT_ORDERED; } + if( pWInfo->pSelect->pOrderBy + && pWInfo->nOBSat > pWInfo->pSelect->pOrderBy->nExpr ){ + pWInfo->nOBSat = pWInfo->pSelect->pOrderBy->nExpr; + } }else{ pWInfo->revMask = pFrom->revLoop; if( pWInfo->nOBSat<=0 ){ @@ -159080,7 +163144,7 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ pWInfo->nRowOut = pFrom->nRow; /* Free temporary memory and return success */ - sqlite3DbFreeNN(db, pSpace); + sqlite3StackFreeNN(pParse->db, pSpace); return SQLITE_OK; } @@ -159178,7 +163242,7 @@ static int whereShortCut(WhereLoopBuilder *pBuilder){ pLoop->cId = '0'; #endif #ifdef WHERETRACE_ENABLED - if( sqlite3WhereTrace ){ + if( sqlite3WhereTrace & 0x02 ){ sqlite3DebugPrintf("whereShortCut() used to compute solution\n"); } #endif @@ -159245,6 +163309,13 @@ static void showAllWhereLoops(WhereInfo *pWInfo, WhereClause *pWC){ ** at most a single row. ** 4) The table must not be referenced by any part of the query apart ** from its own USING or ON clause. +** 5) The table must not have an inner-join ON or USING clause if there is +** a RIGHT JOIN anywhere in the query. Otherwise the ON/USING clause +** might move from the right side to the left side of the RIGHT JOIN. +** Note: Due to (2), this condition can only arise if the table is +** the right-most table of a subquery that was flattened into the +** main query and that subquery was the right-hand operand of an +** inner join that held an ON or USING clause. ** ** For example, given: ** @@ -159270,6 +163341,7 @@ static SQLITE_NOINLINE Bitmask whereOmitNoopJoin( ){ int i; Bitmask tabUsed; + int hasRightJoin; /* Preconditions checked by the caller */ assert( pWInfo->nLevel>=2 ); @@ -159284,6 +163356,7 @@ static SQLITE_NOINLINE Bitmask whereOmitNoopJoin( if( pWInfo->pOrderBy ){ tabUsed |= sqlite3WhereExprListUsage(&pWInfo->sMaskSet, pWInfo->pOrderBy); } + hasRightJoin = (pWInfo->pTabList->a[0].fg.jointype & JT_LTORJ)!=0; for(i=pWInfo->nLevel-1; i>=1; i--){ WhereTerm *pTerm, *pEnd; SrcItem *pItem; @@ -159306,9 +163379,15 @@ static SQLITE_NOINLINE Bitmask whereOmitNoopJoin( break; } } + if( hasRightJoin + && ExprHasProperty(pTerm->pExpr, EP_InnerON) + && pTerm->pExpr->w.iJoin==pItem->iCursor + ){ + break; /* restriction (5) */ + } } if( pTerm drop loop %c not used\n", pLoop->cId)); + WHERETRACE(0xffffffff, ("-> drop loop %c not used\n", pLoop->cId)); notReady &= ~pLoop->maskSelf; for(pTerm=pWInfo->sWC.a; pTermprereqAll & pLoop->maskSelf)!=0 ){ @@ -159347,28 +163426,27 @@ static SQLITE_NOINLINE void whereCheckIfBloomFilterIsUseful( const WhereInfo *pWInfo ){ int i; - LogEst nSearch; + LogEst nSearch = 0; assert( pWInfo->nLevel>=2 ); assert( OptimizationEnabled(pWInfo->pParse->db, SQLITE_BloomFilter) ); - nSearch = pWInfo->a[0].pWLoop->nOut; - for(i=1; inLevel; i++){ + for(i=0; inLevel; i++){ WhereLoop *pLoop = pWInfo->a[i].pWLoop; const unsigned int reqFlags = (WHERE_SELFCULL|WHERE_COLUMN_EQ); - if( (pLoop->wsFlags & reqFlags)==reqFlags + SrcItem *pItem = &pWInfo->pTabList->a[pLoop->iTab]; + Table *pTab = pItem->pTab; + if( (pTab->tabFlags & TF_HasStat1)==0 ) break; + pTab->tabFlags |= TF_StatsUsed; + if( i>=1 + && (pLoop->wsFlags & reqFlags)==reqFlags /* vvvvvv--- Always the case if WHERE_COLUMN_EQ is defined */ && ALWAYS((pLoop->wsFlags & (WHERE_IPK|WHERE_INDEXED))!=0) ){ - SrcItem *pItem = &pWInfo->pTabList->a[pLoop->iTab]; - Table *pTab = pItem->pTab; - pTab->tabFlags |= TF_StatsUsed; - if( nSearch > pTab->nRowLogEst - && (pTab->tabFlags & TF_HasStat1)!=0 - ){ + if( nSearch > pTab->nRowLogEst ){ testcase( pItem->fg.jointype & JT_LEFT ); pLoop->wsFlags |= WHERE_BLOOMFILTER; pLoop->wsFlags &= ~WHERE_IDX_ONLY; - WHERETRACE(0xffff, ( + WHERETRACE(0xffffffff, ( "-> use Bloom-filter on loop %c because there are ~%.1e " "lookups into %s which has only ~%.1e rows\n", pLoop->cId, (double)sqlite3LogEstToInt(nSearch), pTab->zName, @@ -159379,6 +163457,86 @@ static SQLITE_NOINLINE void whereCheckIfBloomFilterIsUseful( } } +/* +** This is an sqlite3ParserAddCleanup() callback that is invoked to +** free the Parse->pIdxEpr list when the Parse object is destroyed. +*/ +static void whereIndexedExprCleanup(sqlite3 *db, void *pObject){ + Parse *pParse = (Parse*)pObject; + while( pParse->pIdxEpr!=0 ){ + IndexedExpr *p = pParse->pIdxEpr; + pParse->pIdxEpr = p->pIENext; + sqlite3ExprDelete(db, p->pExpr); + sqlite3DbFreeNN(db, p); + } +} + +/* +** The index pIdx is used by a query and contains one or more expressions. +** In other words pIdx is an index on an expression. iIdxCur is the cursor +** number for the index and iDataCur is the cursor number for the corresponding +** table. +** +** This routine adds IndexedExpr entries to the Parse->pIdxEpr field for +** each of the expressions in the index so that the expression code generator +** will know to replace occurrences of the indexed expression with +** references to the corresponding column of the index. +*/ +static SQLITE_NOINLINE void whereAddIndexedExpr( + Parse *pParse, /* Add IndexedExpr entries to pParse->pIdxEpr */ + Index *pIdx, /* The index-on-expression that contains the expressions */ + int iIdxCur, /* Cursor number for pIdx */ + SrcItem *pTabItem /* The FROM clause entry for the table */ +){ + int i; + IndexedExpr *p; + Table *pTab; + assert( pIdx->bHasExpr ); + pTab = pIdx->pTable; + for(i=0; inColumn; i++){ + Expr *pExpr; + int j = pIdx->aiColumn[i]; + int bMaybeNullRow; + if( j==XN_EXPR ){ + pExpr = pIdx->aColExpr->a[i].pExpr; + testcase( pTabItem->fg.jointype & JT_LEFT ); + testcase( pTabItem->fg.jointype & JT_RIGHT ); + testcase( pTabItem->fg.jointype & JT_LTORJ ); + bMaybeNullRow = (pTabItem->fg.jointype & (JT_LEFT|JT_LTORJ|JT_RIGHT))!=0; + }else if( j>=0 && (pTab->aCol[j].colFlags & COLFLAG_VIRTUAL)!=0 ){ + pExpr = sqlite3ColumnExpr(pTab, &pTab->aCol[j]); + bMaybeNullRow = 0; + }else{ + continue; + } + if( sqlite3ExprIsConstant(pExpr) ) continue; + p = sqlite3DbMallocRaw(pParse->db, sizeof(IndexedExpr)); + if( p==0 ) break; + p->pIENext = pParse->pIdxEpr; +#ifdef WHERETRACE_ENABLED + if( sqlite3WhereTrace & 0x200 ){ + sqlite3DebugPrintf("New pParse->pIdxEpr term {%d,%d}\n", iIdxCur, i); + if( sqlite3WhereTrace & 0x5000 ) sqlite3ShowExpr(pExpr); + } +#endif + p->pExpr = sqlite3ExprDup(pParse->db, pExpr, 0); + p->iDataCur = pTabItem->iCursor; + p->iIdxCur = iIdxCur; + p->iIdxCol = i; + p->bMaybeNullRow = bMaybeNullRow; + if( sqlite3IndexAffinityStr(pParse->db, pIdx) ){ + p->aff = pIdx->zColAff[i]; + } +#ifdef SQLITE_ENABLE_EXPLAIN_COMMENTS + p->zIdxName = pIdx->zName; +#endif + pParse->pIdxEpr = p; + if( p->pIENext==0 ){ + sqlite3ParserAddCleanup(pParse, whereIndexedExprCleanup, pParse); + } + } +} + /* ** Generate the beginning of the loop used for WHERE clause processing. ** The return value is a pointer to an opaque structure that contains @@ -159473,7 +163631,7 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( Expr *pWhere, /* The WHERE clause */ ExprList *pOrderBy, /* An ORDER BY (or GROUP BY) clause, or NULL */ ExprList *pResultSet, /* Query result set. Req'd for DISTINCT */ - Select *pLimit, /* Use this LIMIT/OFFSET clause, if any */ + Select *pSelect, /* The entire SELECT statement */ u16 wctrlFlags, /* The WHERE_* flags defined in sqliteInt.h */ int iAuxArg /* If WHERE_OR_SUBCLAUSE is set, index cursor number ** If WHERE_USE_LIMIT, then the limit amount */ @@ -159542,7 +163700,9 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( pWInfo->pParse = pParse; pWInfo->pTabList = pTabList; pWInfo->pOrderBy = pOrderBy; +#if WHERETRACE_ENABLED pWInfo->pWhere = pWhere; +#endif pWInfo->pResultSet = pResultSet; pWInfo->aiCurOnePass[0] = pWInfo->aiCurOnePass[1] = -1; pWInfo->nLevel = nTabList; @@ -159550,9 +163710,7 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( pWInfo->wctrlFlags = wctrlFlags; pWInfo->iLimit = iAuxArg; pWInfo->savedNQueryLoop = pParse->nQueryLoop; -#ifndef SQLITE_OMIT_VIRTUALTABLE - pWInfo->pLimit = pLimit; -#endif + pWInfo->pSelect = pSelect; memset(&pWInfo->nOBSat, 0, offsetof(WhereInfo,sWC) - offsetof(WhereInfo,nOBSat)); memset(&pWInfo->a[0], 0, sizeof(WhereLoop)+nTabList*sizeof(WhereLevel)); @@ -159621,25 +163779,50 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( /* Analyze all of the subexpressions. */ sqlite3WhereExprAnalyze(pTabList, &pWInfo->sWC); - sqlite3WhereAddLimit(&pWInfo->sWC, pLimit); + if( pSelect && pSelect->pLimit ){ + sqlite3WhereAddLimit(&pWInfo->sWC, pSelect); + } if( pParse->nErr ) goto whereBeginError; - /* Special case: WHERE terms that do not refer to any tables in the join - ** (constant expressions). Evaluate each such term, and jump over all the - ** generated code if the result is not true. + /* The False-WHERE-Term-Bypass optimization: ** - ** Do not do this if the expression contains non-deterministic functions - ** that are not within a sub-select. This is not strictly required, but - ** preserves SQLite's legacy behaviour in the following two cases: + ** If there are WHERE terms that are false, then no rows will be output, + ** so skip over all of the code generated here. ** - ** FROM ... WHERE random()>0; -- eval random() once per row - ** FROM ... WHERE (SELECT random())>0; -- eval random() once overall + ** Conditions: + ** + ** (1) The WHERE term must not refer to any tables in the join. + ** (2) The term must not come from an ON clause on the + ** right-hand side of a LEFT or FULL JOIN. + ** (3) The term must not come from an ON clause, or there must be + ** no RIGHT or FULL OUTER joins in pTabList. + ** (4) If the expression contains non-deterministic functions + ** that are not within a sub-select. This is not required + ** for correctness but rather to preserves SQLite's legacy + ** behaviour in the following two cases: + ** + ** WHERE random()>0; -- eval random() once per row + ** WHERE (SELECT random())>0; -- eval random() just once overall + ** + ** Note that the Where term need not be a constant in order for this + ** optimization to apply, though it does need to be constant relative to + ** the current subquery (condition 1). The term might include variables + ** from outer queries so that the value of the term changes from one + ** invocation of the current subquery to the next. */ for(ii=0; iinBase; ii++){ - WhereTerm *pT = &sWLB.pWC->a[ii]; + WhereTerm *pT = &sWLB.pWC->a[ii]; /* A term of the WHERE clause */ + Expr *pX; /* The expression of pT */ if( pT->wtFlags & TERM_VIRTUAL ) continue; - if( pT->prereqAll==0 && (nTabList==0 || exprIsDeterministic(pT->pExpr)) ){ - sqlite3ExprIfFalse(pParse, pT->pExpr, pWInfo->iBreak, SQLITE_JUMPIFNULL); + pX = pT->pExpr; + assert( pX!=0 ); + assert( pT->prereqAll!=0 || !ExprHasProperty(pX, EP_OuterON) ); + if( pT->prereqAll==0 /* Conditions (1) and (2) */ + && (nTabList==0 || exprIsDeterministic(pX)) /* Condition (4) */ + && !(ExprHasProperty(pX, EP_InnerON) /* Condition (3) */ + && (pTabList->a[0].fg.jointype & JT_LTORJ)!=0 ) + ){ + sqlite3ExprIfFalse(pParse, pX, pWInfo->iBreak, SQLITE_JUMPIFNULL); pT->wtFlags |= TERM_CODED; } } @@ -159662,13 +163845,13 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( /* Construct the WhereLoop objects */ #if defined(WHERETRACE_ENABLED) - if( sqlite3WhereTrace & 0xffff ){ + if( sqlite3WhereTrace & 0xffffffff ){ sqlite3DebugPrintf("*** Optimizer Start *** (wctrlFlags: 0x%x",wctrlFlags); if( wctrlFlags & WHERE_USE_LIMIT ){ sqlite3DebugPrintf(", limit: %d", iAuxArg); } sqlite3DebugPrintf(")\n"); - if( sqlite3WhereTrace & 0x100 ){ + if( sqlite3WhereTrace & 0x8000 ){ Select sSelect; memset(&sSelect, 0, sizeof(sSelect)); sSelect.selFlags = SF_WhereBegin; @@ -159678,10 +163861,10 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( sSelect.pEList = pResultSet; sqlite3TreeViewSelect(0, &sSelect, 0); } - } - if( sqlite3WhereTrace & 0x100 ){ /* Display all terms of the WHERE clause */ - sqlite3DebugPrintf("---- WHERE clause at start of analysis:\n"); - sqlite3WhereClausePrint(sWLB.pWC); + if( sqlite3WhereTrace & 0x4000 ){ /* Display all WHERE clause terms */ + sqlite3DebugPrintf("---- WHERE clause at start of analysis:\n"); + sqlite3WhereClausePrint(sWLB.pWC); + } } #endif @@ -159697,7 +163880,7 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( ** loops will be built using the revised truthProb values. */ if( sWLB.bldFlags2 & SQLITE_BLDF2_2NDPASS ){ WHERETRACE_ALL_LOOPS(pWInfo, sWLB.pWC); - WHERETRACE(0xffff, + WHERETRACE(0xffffffff, ("**** Redo all loop computations due to" " TERM_HIGHTRUTH changes ****\n")); while( pWInfo->pLoops ){ @@ -159783,11 +163966,11 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( } #if defined(WHERETRACE_ENABLED) - if( sqlite3WhereTrace & 0x100 ){ /* Display all terms of the WHERE clause */ + if( sqlite3WhereTrace & 0x4000 ){ /* Display all terms of the WHERE clause */ sqlite3DebugPrintf("---- WHERE clause at end of analysis:\n"); sqlite3WhereClausePrint(sWLB.pWC); } - WHERETRACE(0xffff,("*** Optimizer Finished ***\n")); + WHERETRACE(0xffffffff,("*** Optimizer Finished ***\n")); #endif pWInfo->pParse->nQueryLoop += pWInfo->nRowOut; @@ -159882,7 +164065,7 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( assert( n<=pTab->nCol ); } #ifdef SQLITE_ENABLE_CURSOR_HINTS - if( pLoop->u.btree.pIndex!=0 ){ + if( pLoop->u.btree.pIndex!=0 && (pTab->tabFlags & TF_WithoutRowid)==0 ){ sqlite3VdbeChangeP5(v, OPFLAG_SEEKEQ|bFordelete); }else #endif @@ -159924,6 +164107,9 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( op = OP_ReopenIdx; }else{ iIndexCur = pParse->nTab++; + if( pIx->bHasExpr && OptimizationEnabled(db, SQLITE_IndexedExpr) ){ + whereAddIndexedExpr(pParse, pIx, iIndexCur, pTabItem); + } } pLevel->iIdxCur = iIndexCur; assert( pIx!=0 ); @@ -160016,11 +164202,11 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( sqlite3VdbeJumpHere(v, iOnce); } } + assert( pTabList == pWInfo->pTabList ); if( (wsFlags & (WHERE_AUTO_INDEX|WHERE_BLOOMFILTER))!=0 ){ if( (wsFlags & WHERE_AUTO_INDEX)!=0 ){ #ifndef SQLITE_OMIT_AUTOMATIC_INDEX - constructAutomaticIndex(pParse, &pWInfo->sWC, - &pTabList->a[pLevel->iFrom], notReady, pLevel); + constructAutomaticIndex(pParse, &pWInfo->sWC, notReady, pLevel); #endif }else{ sqlite3ConstructBloomFilter(pWInfo, ii, pLevel, notReady); @@ -160046,8 +164232,6 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( /* Jump here if malloc fails */ whereBeginError: if( pWInfo ){ - testcase( pWInfo->pExprMods!=0 ); - whereUndoExprMods(pWInfo); pParse->nQueryLoop = pWInfo->savedNQueryLoop; whereInfoFree(db, pWInfo); } @@ -160266,7 +164450,6 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ } assert( pWInfo->nLevel<=pTabList->nSrc ); - if( pWInfo->pExprMods ) whereUndoExprMods(pWInfo); for(i=0, pLevel=pWInfo->a; inLevel; i++, pLevel++){ int k, last; VdbeOp *pOp, *pLastOp; @@ -160320,10 +164503,28 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ }else{ last = pWInfo->iEndWhere; } + if( pIdx->bHasExpr ){ + IndexedExpr *p = pParse->pIdxEpr; + while( p ){ + if( p->iIdxCur==pLevel->iIdxCur ){ +#ifdef WHERETRACE_ENABLED + if( sqlite3WhereTrace & 0x200 ){ + sqlite3DebugPrintf("Disable pParse->pIdxEpr term {%d,%d}\n", + p->iIdxCur, p->iIdxCol); + if( sqlite3WhereTrace & 0x5000 ) sqlite3ShowExpr(p->pExpr); + } +#endif + p->iDataCur = -1; + p->iIdxCur = -1; + } + p = p->pIENext; + } + } k = pLevel->addrBody + 1; #ifdef SQLITE_DEBUG if( db->flags & SQLITE_VdbeAddopTrace ){ - printf("TRANSLATE opcodes in range %d..%d\n", k, last-1); + printf("TRANSLATE cursor %d->%d in opcode range %d..%d\n", + pLevel->iTabCur, pLevel->iIdxCur, k, last-1); } /* Proof that the "+1" on the k value above is safe */ pOp = sqlite3VdbeGetOp(v, k - 1); @@ -161198,6 +165399,7 @@ static int selectWindowRewriteExprCb(Walker *pWalker, Expr *pExpr){ } /* no break */ deliberate_fall_through + case TK_IF_NULL_ROW: case TK_AGG_FUNCTION: case TK_COLUMN: { int iCol = -1; @@ -161313,7 +165515,6 @@ static ExprList *exprListAppendList( for(i=0; inExpr; i++){ sqlite3 *db = pParse->db; Expr *pDup = sqlite3ExprDup(db, pAppend->a[i].pExpr, 0); - assert( pDup==0 || !ExprHasProperty(pDup, EP_MemToken) ); if( db->mallocFailed ){ sqlite3ExprDelete(db, pDup); break; @@ -161483,7 +165684,7 @@ SQLITE_PRIVATE int sqlite3WindowRewrite(Parse *pParse, Select *p){ pSub = sqlite3SelectNew( pParse, pSublist, pSrc, pWhere, pGroupBy, pHaving, pSort, 0, 0 ); - SELECTTRACE(1,pParse,pSub, + TREETRACE(0x40,pParse,pSub, ("New window-function subquery in FROM clause of (%u/%p)\n", p->selId, p)); p->pSrc = sqlite3SrcListAppend(pParse, 0, 0, 0); @@ -161493,6 +165694,7 @@ SQLITE_PRIVATE int sqlite3WindowRewrite(Parse *pParse, Select *p){ if( p->pSrc ){ Table *pTab2; p->pSrc->a[0].pSelect = pSub; + p->pSrc->a[0].fg.isCorrelated = 1; sqlite3SrcListAssignCursors(pParse, p->pSrc); pSub->selFlags |= SF_Expanded|SF_OrderByReqd; pTab2 = sqlite3ResultSetOfSelect(pParse, pSub, SQLITE_AFF_NONE); @@ -162584,10 +166786,9 @@ static void windowCodeRangeTest( /* This block runs if reg1 is not NULL, but reg2 is. */ sqlite3VdbeJumpHere(v, addr); - sqlite3VdbeAddOp2(v, OP_IsNull, reg2, lbl); VdbeCoverage(v); - if( op==OP_Gt || op==OP_Ge ){ - sqlite3VdbeChangeP2(v, -1, addrDone); - } + sqlite3VdbeAddOp2(v, OP_IsNull, reg2, + (op==OP_Gt || op==OP_Ge) ? addrDone : lbl); + VdbeCoverage(v); } /* Register reg1 currently contains csr1.peerVal (the peer-value from csr1). @@ -163359,8 +167560,7 @@ SQLITE_PRIVATE void sqlite3WindowCodeStep( VdbeCoverageNeverNullIf(v, op==OP_Ge); /* NeverNull because bound */ VdbeCoverageNeverNullIf(v, op==OP_Le); /* values previously checked */ windowAggFinal(&s, 0); - sqlite3VdbeAddOp2(v, OP_Rewind, s.current.csr, 1); - VdbeCoverageNeverTaken(v); + sqlite3VdbeAddOp1(v, OP_Rewind, s.current.csr); windowReturnOneRow(&s); sqlite3VdbeAddOp1(v, OP_ResetSorter, s.current.csr); sqlite3VdbeAddOp2(v, OP_Goto, 0, lblWhereEnd); @@ -163372,13 +167572,10 @@ SQLITE_PRIVATE void sqlite3WindowCodeStep( } if( pMWin->eStart!=TK_UNBOUNDED ){ - sqlite3VdbeAddOp2(v, OP_Rewind, s.start.csr, 1); - VdbeCoverageNeverTaken(v); + sqlite3VdbeAddOp1(v, OP_Rewind, s.start.csr); } - sqlite3VdbeAddOp2(v, OP_Rewind, s.current.csr, 1); - VdbeCoverageNeverTaken(v); - sqlite3VdbeAddOp2(v, OP_Rewind, s.end.csr, 1); - VdbeCoverageNeverTaken(v); + sqlite3VdbeAddOp1(v, OP_Rewind, s.current.csr); + sqlite3VdbeAddOp1(v, OP_Rewind, s.end.csr); if( regPeer && pOrderBy ){ sqlite3VdbeAddOp3(v, OP_Copy, regNewPeer, regPeer, pOrderBy->nExpr-1); sqlite3VdbeAddOp3(v, OP_Copy, regPeer, s.start.reg, pOrderBy->nExpr-1); @@ -164031,18 +168228,18 @@ typedef union { #define sqlite3ParserCTX_FETCH Parse *pParse=yypParser->pParse; #define sqlite3ParserCTX_STORE yypParser->pParse=pParse; #define YYFALLBACK 1 -#define YYNSTATE 576 -#define YYNRULE 405 -#define YYNRULE_WITH_ACTION 342 +#define YYNSTATE 575 +#define YYNRULE 403 +#define YYNRULE_WITH_ACTION 340 #define YYNTOKEN 185 -#define YY_MAX_SHIFT 575 -#define YY_MIN_SHIFTREDUCE 835 -#define YY_MAX_SHIFTREDUCE 1239 -#define YY_ERROR_ACTION 1240 -#define YY_ACCEPT_ACTION 1241 -#define YY_NO_ACTION 1242 -#define YY_MIN_REDUCE 1243 -#define YY_MAX_REDUCE 1647 +#define YY_MAX_SHIFT 574 +#define YY_MIN_SHIFTREDUCE 833 +#define YY_MAX_SHIFTREDUCE 1235 +#define YY_ERROR_ACTION 1236 +#define YY_ACCEPT_ACTION 1237 +#define YY_NO_ACTION 1238 +#define YY_MIN_REDUCE 1239 +#define YY_MAX_REDUCE 1641 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) @@ -164109,218 +168306,218 @@ typedef union { ** yy_default[] Default action for each state. ** *********** Begin parsing tables **********************************************/ -#define YY_ACTTAB_COUNT (2098) +#define YY_ACTTAB_COUNT (2096) static const YYACTIONTYPE yy_action[] = { /* 0 */ 568, 208, 568, 118, 115, 229, 568, 118, 115, 229, - /* 10 */ 568, 1314, 377, 1293, 408, 562, 562, 562, 568, 409, - /* 20 */ 378, 1314, 1276, 41, 41, 41, 41, 208, 1526, 71, - /* 30 */ 71, 971, 419, 41, 41, 491, 303, 279, 303, 972, - /* 40 */ 397, 71, 71, 125, 126, 80, 1217, 1217, 1050, 1053, - /* 50 */ 1040, 1040, 123, 123, 124, 124, 124, 124, 476, 409, - /* 60 */ 1241, 1, 1, 575, 2, 1245, 550, 118, 115, 229, - /* 70 */ 317, 480, 146, 480, 524, 118, 115, 229, 529, 1327, - /* 80 */ 417, 523, 142, 125, 126, 80, 1217, 1217, 1050, 1053, - /* 90 */ 1040, 1040, 123, 123, 124, 124, 124, 124, 118, 115, + /* 10 */ 568, 1310, 377, 1289, 408, 562, 562, 562, 568, 409, + /* 20 */ 378, 1310, 1272, 41, 41, 41, 41, 208, 1520, 71, + /* 30 */ 71, 969, 419, 41, 41, 491, 303, 279, 303, 970, + /* 40 */ 397, 71, 71, 125, 126, 80, 1212, 1212, 1047, 1050, + /* 50 */ 1037, 1037, 123, 123, 124, 124, 124, 124, 476, 409, + /* 60 */ 1237, 1, 1, 574, 2, 1241, 550, 118, 115, 229, + /* 70 */ 317, 480, 146, 480, 524, 118, 115, 229, 529, 1323, + /* 80 */ 417, 523, 142, 125, 126, 80, 1212, 1212, 1047, 1050, + /* 90 */ 1037, 1037, 123, 123, 124, 124, 124, 124, 118, 115, /* 100 */ 229, 327, 122, 122, 122, 122, 121, 121, 120, 120, /* 110 */ 120, 119, 116, 444, 284, 284, 284, 284, 442, 442, - /* 120 */ 442, 1567, 376, 1569, 1192, 375, 1163, 565, 1163, 565, - /* 130 */ 409, 1567, 537, 259, 226, 444, 101, 145, 449, 316, + /* 120 */ 442, 1561, 376, 1563, 1188, 375, 1159, 565, 1159, 565, + /* 130 */ 409, 1561, 537, 259, 226, 444, 101, 145, 449, 316, /* 140 */ 559, 240, 122, 122, 122, 122, 121, 121, 120, 120, - /* 150 */ 120, 119, 116, 444, 125, 126, 80, 1217, 1217, 1050, - /* 160 */ 1053, 1040, 1040, 123, 123, 124, 124, 124, 124, 142, - /* 170 */ 294, 1192, 339, 448, 120, 120, 120, 119, 116, 444, - /* 180 */ 127, 1192, 1193, 1194, 148, 441, 440, 568, 119, 116, + /* 150 */ 120, 119, 116, 444, 125, 126, 80, 1212, 1212, 1047, + /* 160 */ 1050, 1037, 1037, 123, 123, 124, 124, 124, 124, 142, + /* 170 */ 294, 1188, 339, 448, 120, 120, 120, 119, 116, 444, + /* 180 */ 127, 1188, 1189, 1188, 148, 441, 440, 568, 119, 116, /* 190 */ 444, 124, 124, 124, 124, 117, 122, 122, 122, 122, /* 200 */ 121, 121, 120, 120, 120, 119, 116, 444, 454, 113, /* 210 */ 13, 13, 546, 122, 122, 122, 122, 121, 121, 120, - /* 220 */ 120, 120, 119, 116, 444, 422, 316, 559, 1192, 1193, - /* 230 */ 1194, 149, 1224, 409, 1224, 124, 124, 124, 124, 122, + /* 220 */ 120, 120, 119, 116, 444, 422, 316, 559, 1188, 1189, + /* 230 */ 1188, 149, 1220, 409, 1220, 124, 124, 124, 124, 122, /* 240 */ 122, 122, 122, 121, 121, 120, 120, 120, 119, 116, - /* 250 */ 444, 465, 342, 1037, 1037, 1051, 1054, 125, 126, 80, - /* 260 */ 1217, 1217, 1050, 1053, 1040, 1040, 123, 123, 124, 124, - /* 270 */ 124, 124, 1279, 522, 222, 1192, 568, 409, 224, 514, + /* 250 */ 444, 465, 342, 1034, 1034, 1048, 1051, 125, 126, 80, + /* 260 */ 1212, 1212, 1047, 1050, 1037, 1037, 123, 123, 124, 124, + /* 270 */ 124, 124, 1275, 522, 222, 1188, 568, 409, 224, 514, /* 280 */ 175, 82, 83, 122, 122, 122, 122, 121, 121, 120, - /* 290 */ 120, 120, 119, 116, 444, 1007, 16, 16, 1192, 133, - /* 300 */ 133, 125, 126, 80, 1217, 1217, 1050, 1053, 1040, 1040, + /* 290 */ 120, 120, 119, 116, 444, 1005, 16, 16, 1188, 133, + /* 300 */ 133, 125, 126, 80, 1212, 1212, 1047, 1050, 1037, 1037, /* 310 */ 123, 123, 124, 124, 124, 124, 122, 122, 122, 122, - /* 320 */ 121, 121, 120, 120, 120, 119, 116, 444, 1041, 546, - /* 330 */ 1192, 373, 1192, 1193, 1194, 252, 1434, 399, 504, 501, - /* 340 */ 500, 111, 560, 566, 4, 926, 926, 433, 499, 340, - /* 350 */ 460, 328, 360, 394, 1237, 1192, 1193, 1194, 563, 568, + /* 320 */ 121, 121, 120, 120, 120, 119, 116, 444, 1038, 546, + /* 330 */ 1188, 373, 1188, 1189, 1188, 252, 1429, 399, 504, 501, + /* 340 */ 500, 111, 560, 566, 4, 924, 924, 433, 499, 340, + /* 350 */ 460, 328, 360, 394, 1233, 1188, 1189, 1188, 563, 568, /* 360 */ 122, 122, 122, 122, 121, 121, 120, 120, 120, 119, - /* 370 */ 116, 444, 284, 284, 369, 1580, 1607, 441, 440, 154, - /* 380 */ 409, 445, 71, 71, 1286, 565, 1221, 1192, 1193, 1194, - /* 390 */ 85, 1223, 271, 557, 543, 515, 1561, 568, 98, 1222, - /* 400 */ 6, 1278, 472, 142, 125, 126, 80, 1217, 1217, 1050, - /* 410 */ 1053, 1040, 1040, 123, 123, 124, 124, 124, 124, 550, - /* 420 */ 13, 13, 1027, 507, 1224, 1192, 1224, 549, 109, 109, - /* 430 */ 222, 568, 1238, 175, 568, 427, 110, 197, 445, 570, - /* 440 */ 569, 430, 1552, 1017, 325, 551, 1192, 270, 287, 368, + /* 370 */ 116, 444, 284, 284, 369, 1574, 1600, 441, 440, 154, + /* 380 */ 409, 445, 71, 71, 1282, 565, 1217, 1188, 1189, 1188, + /* 390 */ 85, 1219, 271, 557, 543, 515, 1555, 568, 98, 1218, + /* 400 */ 6, 1274, 472, 142, 125, 126, 80, 1212, 1212, 1047, + /* 410 */ 1050, 1037, 1037, 123, 123, 124, 124, 124, 124, 550, + /* 420 */ 13, 13, 1024, 507, 1220, 1188, 1220, 549, 109, 109, + /* 430 */ 222, 568, 1234, 175, 568, 427, 110, 197, 445, 569, + /* 440 */ 445, 430, 1546, 1014, 325, 551, 1188, 270, 287, 368, /* 450 */ 510, 363, 509, 257, 71, 71, 543, 71, 71, 359, - /* 460 */ 316, 559, 1613, 122, 122, 122, 122, 121, 121, 120, - /* 470 */ 120, 120, 119, 116, 444, 1017, 1017, 1019, 1020, 27, - /* 480 */ 284, 284, 1192, 1193, 1194, 1158, 568, 1612, 409, 901, - /* 490 */ 190, 550, 356, 565, 550, 937, 533, 517, 1158, 516, - /* 500 */ 413, 1158, 552, 1192, 1193, 1194, 568, 544, 1554, 51, - /* 510 */ 51, 214, 125, 126, 80, 1217, 1217, 1050, 1053, 1040, - /* 520 */ 1040, 123, 123, 124, 124, 124, 124, 1192, 474, 135, - /* 530 */ 135, 409, 284, 284, 1490, 505, 121, 121, 120, 120, - /* 540 */ 120, 119, 116, 444, 1007, 565, 518, 217, 541, 1561, - /* 550 */ 316, 559, 142, 6, 532, 125, 126, 80, 1217, 1217, - /* 560 */ 1050, 1053, 1040, 1040, 123, 123, 124, 124, 124, 124, - /* 570 */ 1555, 122, 122, 122, 122, 121, 121, 120, 120, 120, - /* 580 */ 119, 116, 444, 485, 1192, 1193, 1194, 482, 281, 1267, - /* 590 */ 957, 252, 1192, 373, 504, 501, 500, 1192, 340, 571, - /* 600 */ 1192, 571, 409, 292, 499, 957, 876, 191, 480, 316, + /* 460 */ 316, 559, 1606, 122, 122, 122, 122, 121, 121, 120, + /* 470 */ 120, 120, 119, 116, 444, 1014, 1014, 1016, 1017, 27, + /* 480 */ 284, 284, 1188, 1189, 1188, 1154, 568, 1605, 409, 899, + /* 490 */ 190, 550, 356, 565, 550, 935, 533, 517, 1154, 516, + /* 500 */ 413, 1154, 552, 1188, 1189, 1188, 568, 544, 1548, 51, + /* 510 */ 51, 214, 125, 126, 80, 1212, 1212, 1047, 1050, 1037, + /* 520 */ 1037, 123, 123, 124, 124, 124, 124, 1188, 474, 135, + /* 530 */ 135, 409, 284, 284, 1484, 505, 121, 121, 120, 120, + /* 540 */ 120, 119, 116, 444, 1005, 565, 518, 217, 541, 1555, + /* 550 */ 316, 559, 142, 6, 532, 125, 126, 80, 1212, 1212, + /* 560 */ 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, 124, + /* 570 */ 1549, 122, 122, 122, 122, 121, 121, 120, 120, 120, + /* 580 */ 119, 116, 444, 485, 1188, 1189, 1188, 482, 281, 1263, + /* 590 */ 955, 252, 1188, 373, 504, 501, 500, 1188, 340, 570, + /* 600 */ 1188, 570, 409, 292, 499, 955, 874, 191, 480, 316, /* 610 */ 559, 384, 290, 380, 122, 122, 122, 122, 121, 121, - /* 620 */ 120, 120, 120, 119, 116, 444, 125, 126, 80, 1217, - /* 630 */ 1217, 1050, 1053, 1040, 1040, 123, 123, 124, 124, 124, - /* 640 */ 124, 409, 394, 1136, 1192, 869, 100, 284, 284, 1192, - /* 650 */ 1193, 1194, 373, 1093, 1192, 1193, 1194, 1192, 1193, 1194, - /* 660 */ 565, 455, 32, 373, 233, 125, 126, 80, 1217, 1217, - /* 670 */ 1050, 1053, 1040, 1040, 123, 123, 124, 124, 124, 124, - /* 680 */ 1433, 959, 568, 228, 958, 122, 122, 122, 122, 121, - /* 690 */ 121, 120, 120, 120, 119, 116, 444, 1158, 228, 1192, - /* 700 */ 157, 1192, 1193, 1194, 1553, 13, 13, 301, 957, 1232, - /* 710 */ 1158, 153, 409, 1158, 373, 1583, 1176, 5, 369, 1580, - /* 720 */ 429, 1238, 3, 957, 122, 122, 122, 122, 121, 121, - /* 730 */ 120, 120, 120, 119, 116, 444, 125, 126, 80, 1217, - /* 740 */ 1217, 1050, 1053, 1040, 1040, 123, 123, 124, 124, 124, - /* 750 */ 124, 409, 208, 567, 1192, 1028, 1192, 1193, 1194, 1192, - /* 760 */ 388, 852, 155, 1552, 286, 402, 1098, 1098, 488, 568, - /* 770 */ 465, 342, 1319, 1319, 1552, 125, 126, 80, 1217, 1217, - /* 780 */ 1050, 1053, 1040, 1040, 123, 123, 124, 124, 124, 124, + /* 620 */ 120, 120, 120, 119, 116, 444, 125, 126, 80, 1212, + /* 630 */ 1212, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, + /* 640 */ 124, 409, 394, 1132, 1188, 867, 100, 284, 284, 1188, + /* 650 */ 1189, 1188, 373, 1089, 1188, 1189, 1188, 1188, 1189, 1188, + /* 660 */ 565, 455, 32, 373, 233, 125, 126, 80, 1212, 1212, + /* 670 */ 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, 124, + /* 680 */ 1428, 957, 568, 228, 956, 122, 122, 122, 122, 121, + /* 690 */ 121, 120, 120, 120, 119, 116, 444, 1154, 228, 1188, + /* 700 */ 157, 1188, 1189, 1188, 1547, 13, 13, 301, 955, 1228, + /* 710 */ 1154, 153, 409, 1154, 373, 1577, 1172, 5, 369, 1574, + /* 720 */ 429, 1234, 3, 955, 122, 122, 122, 122, 121, 121, + /* 730 */ 120, 120, 120, 119, 116, 444, 125, 126, 80, 1212, + /* 740 */ 1212, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, + /* 750 */ 124, 409, 208, 567, 1188, 1025, 1188, 1189, 1188, 1188, + /* 760 */ 388, 850, 155, 1546, 286, 402, 1094, 1094, 488, 568, + /* 770 */ 465, 342, 1315, 1315, 1546, 125, 126, 80, 1212, 1212, + /* 780 */ 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, 124, /* 790 */ 129, 568, 13, 13, 374, 122, 122, 122, 122, 121, /* 800 */ 121, 120, 120, 120, 119, 116, 444, 302, 568, 453, - /* 810 */ 528, 1192, 1193, 1194, 13, 13, 1192, 1193, 1194, 1297, - /* 820 */ 463, 1267, 409, 1317, 1317, 1552, 1012, 453, 452, 200, - /* 830 */ 299, 71, 71, 1265, 122, 122, 122, 122, 121, 121, - /* 840 */ 120, 120, 120, 119, 116, 444, 125, 126, 80, 1217, - /* 850 */ 1217, 1050, 1053, 1040, 1040, 123, 123, 124, 124, 124, - /* 860 */ 124, 409, 227, 1073, 1158, 284, 284, 419, 312, 278, - /* 870 */ 278, 285, 285, 1419, 406, 405, 382, 1158, 565, 568, - /* 880 */ 1158, 1196, 565, 1600, 565, 125, 126, 80, 1217, 1217, - /* 890 */ 1050, 1053, 1040, 1040, 123, 123, 124, 124, 124, 124, - /* 900 */ 453, 1482, 13, 13, 1536, 122, 122, 122, 122, 121, + /* 810 */ 528, 1188, 1189, 1188, 13, 13, 1188, 1189, 1188, 1293, + /* 820 */ 463, 1263, 409, 1313, 1313, 1546, 1010, 453, 452, 200, + /* 830 */ 299, 71, 71, 1261, 122, 122, 122, 122, 121, 121, + /* 840 */ 120, 120, 120, 119, 116, 444, 125, 126, 80, 1212, + /* 850 */ 1212, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, + /* 860 */ 124, 409, 227, 1069, 1154, 284, 284, 419, 312, 278, + /* 870 */ 278, 285, 285, 1415, 406, 405, 382, 1154, 565, 568, + /* 880 */ 1154, 1191, 565, 1594, 565, 125, 126, 80, 1212, 1212, + /* 890 */ 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, 124, + /* 900 */ 453, 1476, 13, 13, 1530, 122, 122, 122, 122, 121, /* 910 */ 121, 120, 120, 120, 119, 116, 444, 201, 568, 354, - /* 920 */ 1586, 575, 2, 1245, 840, 841, 842, 1562, 317, 1212, - /* 930 */ 146, 6, 409, 255, 254, 253, 206, 1327, 9, 1196, + /* 920 */ 1580, 574, 2, 1241, 838, 839, 840, 1556, 317, 1207, + /* 930 */ 146, 6, 409, 255, 254, 253, 206, 1323, 9, 1191, /* 940 */ 262, 71, 71, 424, 122, 122, 122, 122, 121, 121, - /* 950 */ 120, 120, 120, 119, 116, 444, 125, 126, 80, 1217, - /* 960 */ 1217, 1050, 1053, 1040, 1040, 123, 123, 124, 124, 124, - /* 970 */ 124, 568, 284, 284, 568, 1213, 409, 574, 313, 1245, - /* 980 */ 349, 1296, 352, 419, 317, 565, 146, 491, 525, 1643, - /* 990 */ 395, 371, 491, 1327, 70, 70, 1295, 71, 71, 240, - /* 1000 */ 1325, 104, 80, 1217, 1217, 1050, 1053, 1040, 1040, 123, + /* 950 */ 120, 120, 120, 119, 116, 444, 125, 126, 80, 1212, + /* 960 */ 1212, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, + /* 970 */ 124, 568, 284, 284, 568, 1208, 409, 573, 313, 1241, + /* 980 */ 349, 1292, 352, 419, 317, 565, 146, 491, 525, 1637, + /* 990 */ 395, 371, 491, 1323, 70, 70, 1291, 71, 71, 240, + /* 1000 */ 1321, 104, 80, 1212, 1212, 1047, 1050, 1037, 1037, 123, /* 1010 */ 123, 124, 124, 124, 124, 122, 122, 122, 122, 121, - /* 1020 */ 121, 120, 120, 120, 119, 116, 444, 1114, 284, 284, - /* 1030 */ 428, 448, 1525, 1213, 439, 284, 284, 1489, 1352, 311, - /* 1040 */ 474, 565, 1115, 971, 491, 491, 217, 1263, 565, 1538, - /* 1050 */ 568, 972, 207, 568, 1027, 240, 383, 1116, 519, 122, + /* 1020 */ 121, 120, 120, 120, 119, 116, 444, 1110, 284, 284, + /* 1030 */ 428, 448, 1519, 1208, 439, 284, 284, 1483, 1348, 311, + /* 1040 */ 474, 565, 1111, 969, 491, 491, 217, 1259, 565, 1532, + /* 1050 */ 568, 970, 207, 568, 1024, 240, 383, 1112, 519, 122, /* 1060 */ 122, 122, 122, 121, 121, 120, 120, 120, 119, 116, - /* 1070 */ 444, 1018, 107, 71, 71, 1017, 13, 13, 912, 568, - /* 1080 */ 1495, 568, 284, 284, 97, 526, 491, 448, 913, 1326, - /* 1090 */ 1322, 545, 409, 284, 284, 565, 151, 209, 1495, 1497, - /* 1100 */ 262, 450, 55, 55, 56, 56, 565, 1017, 1017, 1019, - /* 1110 */ 443, 332, 409, 527, 12, 295, 125, 126, 80, 1217, - /* 1120 */ 1217, 1050, 1053, 1040, 1040, 123, 123, 124, 124, 124, - /* 1130 */ 124, 347, 409, 864, 1534, 1213, 125, 126, 80, 1217, - /* 1140 */ 1217, 1050, 1053, 1040, 1040, 123, 123, 124, 124, 124, - /* 1150 */ 124, 1137, 1641, 474, 1641, 371, 125, 114, 80, 1217, - /* 1160 */ 1217, 1050, 1053, 1040, 1040, 123, 123, 124, 124, 124, - /* 1170 */ 124, 1495, 329, 474, 331, 122, 122, 122, 122, 121, - /* 1180 */ 121, 120, 120, 120, 119, 116, 444, 203, 1419, 568, - /* 1190 */ 1294, 864, 464, 1213, 436, 122, 122, 122, 122, 121, - /* 1200 */ 121, 120, 120, 120, 119, 116, 444, 553, 1137, 1642, - /* 1210 */ 539, 1642, 15, 15, 892, 122, 122, 122, 122, 121, + /* 1070 */ 444, 1015, 107, 71, 71, 1014, 13, 13, 910, 568, + /* 1080 */ 1489, 568, 284, 284, 97, 526, 491, 448, 911, 1322, + /* 1090 */ 1318, 545, 409, 284, 284, 565, 151, 209, 1489, 1491, + /* 1100 */ 262, 450, 55, 55, 56, 56, 565, 1014, 1014, 1016, + /* 1110 */ 443, 332, 409, 527, 12, 295, 125, 126, 80, 1212, + /* 1120 */ 1212, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, + /* 1130 */ 124, 347, 409, 862, 1528, 1208, 125, 126, 80, 1212, + /* 1140 */ 1212, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, + /* 1150 */ 124, 1133, 1635, 474, 1635, 371, 125, 114, 80, 1212, + /* 1160 */ 1212, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, + /* 1170 */ 124, 1489, 329, 474, 331, 122, 122, 122, 122, 121, + /* 1180 */ 121, 120, 120, 120, 119, 116, 444, 203, 1415, 568, + /* 1190 */ 1290, 862, 464, 1208, 436, 122, 122, 122, 122, 121, + /* 1200 */ 121, 120, 120, 120, 119, 116, 444, 553, 1133, 1636, + /* 1210 */ 539, 1636, 15, 15, 890, 122, 122, 122, 122, 121, /* 1220 */ 121, 120, 120, 120, 119, 116, 444, 568, 298, 538, - /* 1230 */ 1135, 1419, 1559, 1560, 1331, 409, 6, 6, 1169, 1268, - /* 1240 */ 415, 320, 284, 284, 1419, 508, 565, 525, 300, 457, - /* 1250 */ 43, 43, 568, 893, 12, 565, 330, 478, 425, 407, - /* 1260 */ 126, 80, 1217, 1217, 1050, 1053, 1040, 1040, 123, 123, - /* 1270 */ 124, 124, 124, 124, 568, 57, 57, 288, 1192, 1419, - /* 1280 */ 496, 458, 392, 392, 391, 273, 389, 1135, 1558, 849, - /* 1290 */ 1169, 407, 6, 568, 321, 1158, 470, 44, 44, 1557, - /* 1300 */ 1114, 426, 234, 6, 323, 256, 540, 256, 1158, 431, - /* 1310 */ 568, 1158, 322, 17, 487, 1115, 58, 58, 122, 122, + /* 1230 */ 1131, 1415, 1553, 1554, 1327, 409, 6, 6, 1165, 1264, + /* 1240 */ 415, 320, 284, 284, 1415, 508, 565, 525, 300, 457, + /* 1250 */ 43, 43, 568, 891, 12, 565, 330, 478, 425, 407, + /* 1260 */ 126, 80, 1212, 1212, 1047, 1050, 1037, 1037, 123, 123, + /* 1270 */ 124, 124, 124, 124, 568, 57, 57, 288, 1188, 1415, + /* 1280 */ 496, 458, 392, 392, 391, 273, 389, 1131, 1552, 847, + /* 1290 */ 1165, 407, 6, 568, 321, 1154, 470, 44, 44, 1551, + /* 1300 */ 1110, 426, 234, 6, 323, 256, 540, 256, 1154, 431, + /* 1310 */ 568, 1154, 322, 17, 487, 1111, 58, 58, 122, 122, /* 1320 */ 122, 122, 121, 121, 120, 120, 120, 119, 116, 444, - /* 1330 */ 1116, 216, 481, 59, 59, 1192, 1193, 1194, 111, 560, + /* 1330 */ 1112, 216, 481, 59, 59, 1188, 1189, 1188, 111, 560, /* 1340 */ 324, 4, 236, 456, 526, 568, 237, 456, 568, 437, - /* 1350 */ 168, 556, 420, 141, 479, 563, 568, 293, 568, 1095, - /* 1360 */ 568, 293, 568, 1095, 531, 568, 872, 8, 60, 60, + /* 1350 */ 168, 556, 420, 141, 479, 563, 568, 293, 568, 1091, + /* 1360 */ 568, 293, 568, 1091, 531, 568, 870, 8, 60, 60, /* 1370 */ 235, 61, 61, 568, 414, 568, 414, 568, 445, 62, /* 1380 */ 62, 45, 45, 46, 46, 47, 47, 199, 49, 49, /* 1390 */ 557, 568, 359, 568, 100, 486, 50, 50, 63, 63, - /* 1400 */ 64, 64, 561, 415, 535, 410, 568, 1027, 568, 534, - /* 1410 */ 316, 559, 316, 559, 65, 65, 14, 14, 568, 1027, - /* 1420 */ 568, 512, 932, 872, 1018, 109, 109, 931, 1017, 66, - /* 1430 */ 66, 131, 131, 110, 451, 445, 570, 569, 416, 177, - /* 1440 */ 1017, 132, 132, 67, 67, 568, 467, 568, 932, 471, - /* 1450 */ 1364, 283, 226, 931, 315, 1363, 407, 568, 459, 407, - /* 1460 */ 1017, 1017, 1019, 239, 407, 86, 213, 1350, 52, 52, - /* 1470 */ 68, 68, 1017, 1017, 1019, 1020, 27, 1585, 1180, 447, - /* 1480 */ 69, 69, 288, 97, 108, 1541, 106, 392, 392, 391, - /* 1490 */ 273, 389, 568, 879, 849, 883, 568, 111, 560, 466, - /* 1500 */ 4, 568, 152, 30, 38, 568, 1132, 234, 396, 323, + /* 1400 */ 64, 64, 561, 415, 535, 410, 568, 1024, 568, 534, + /* 1410 */ 316, 559, 316, 559, 65, 65, 14, 14, 568, 1024, + /* 1420 */ 568, 512, 930, 870, 1015, 109, 109, 929, 1014, 66, + /* 1430 */ 66, 131, 131, 110, 451, 445, 569, 445, 416, 177, + /* 1440 */ 1014, 132, 132, 67, 67, 568, 467, 568, 930, 471, + /* 1450 */ 1360, 283, 226, 929, 315, 1359, 407, 568, 459, 407, + /* 1460 */ 1014, 1014, 1016, 239, 407, 86, 213, 1346, 52, 52, + /* 1470 */ 68, 68, 1014, 1014, 1016, 1017, 27, 1579, 1176, 447, + /* 1480 */ 69, 69, 288, 97, 108, 1535, 106, 392, 392, 391, + /* 1490 */ 273, 389, 568, 877, 847, 881, 568, 111, 560, 466, + /* 1500 */ 4, 568, 152, 30, 38, 568, 1128, 234, 396, 323, /* 1510 */ 111, 560, 527, 4, 563, 53, 53, 322, 568, 163, /* 1520 */ 163, 568, 337, 468, 164, 164, 333, 563, 76, 76, - /* 1530 */ 568, 289, 1514, 568, 31, 1513, 568, 445, 338, 483, - /* 1540 */ 100, 54, 54, 344, 72, 72, 296, 236, 1080, 557, - /* 1550 */ 445, 879, 1360, 134, 134, 168, 73, 73, 141, 161, - /* 1560 */ 161, 1574, 557, 535, 568, 319, 568, 348, 536, 1009, - /* 1570 */ 473, 261, 261, 891, 890, 235, 535, 568, 1027, 568, + /* 1530 */ 568, 289, 1508, 568, 31, 1507, 568, 445, 338, 483, + /* 1540 */ 100, 54, 54, 344, 72, 72, 296, 236, 1076, 557, + /* 1550 */ 445, 877, 1356, 134, 134, 168, 73, 73, 141, 161, + /* 1560 */ 161, 1568, 557, 535, 568, 319, 568, 348, 536, 1007, + /* 1570 */ 473, 261, 261, 889, 888, 235, 535, 568, 1024, 568, /* 1580 */ 475, 534, 261, 367, 109, 109, 521, 136, 136, 130, - /* 1590 */ 130, 1027, 110, 366, 445, 570, 569, 109, 109, 1017, - /* 1600 */ 162, 162, 156, 156, 568, 110, 1080, 445, 570, 569, - /* 1610 */ 410, 351, 1017, 568, 353, 316, 559, 568, 343, 568, - /* 1620 */ 100, 497, 357, 258, 100, 898, 899, 140, 140, 355, - /* 1630 */ 1310, 1017, 1017, 1019, 1020, 27, 139, 139, 362, 451, - /* 1640 */ 137, 137, 138, 138, 1017, 1017, 1019, 1020, 27, 1180, - /* 1650 */ 447, 568, 372, 288, 111, 560, 1021, 4, 392, 392, - /* 1660 */ 391, 273, 389, 568, 1141, 849, 568, 1076, 568, 258, - /* 1670 */ 492, 563, 568, 211, 75, 75, 555, 962, 234, 261, - /* 1680 */ 323, 111, 560, 929, 4, 113, 77, 77, 322, 74, - /* 1690 */ 74, 42, 42, 1373, 445, 48, 48, 1418, 563, 974, - /* 1700 */ 975, 1092, 1091, 1092, 1091, 862, 557, 150, 930, 1346, - /* 1710 */ 113, 1358, 554, 1424, 1021, 1275, 1266, 1254, 236, 1253, - /* 1720 */ 1255, 445, 1593, 1343, 308, 276, 168, 309, 11, 141, - /* 1730 */ 393, 310, 232, 557, 1405, 1027, 335, 291, 1400, 219, - /* 1740 */ 336, 109, 109, 936, 297, 1410, 235, 341, 477, 110, - /* 1750 */ 502, 445, 570, 569, 1393, 1409, 1017, 400, 1293, 365, - /* 1760 */ 223, 1486, 1027, 1485, 1355, 1356, 1354, 1353, 109, 109, - /* 1770 */ 204, 1596, 1232, 558, 265, 218, 110, 205, 445, 570, - /* 1780 */ 569, 410, 387, 1017, 1533, 179, 316, 559, 1017, 1017, - /* 1790 */ 1019, 1020, 27, 230, 1531, 1229, 79, 560, 85, 4, - /* 1800 */ 418, 215, 548, 81, 84, 188, 1406, 173, 181, 461, - /* 1810 */ 451, 35, 462, 563, 183, 1017, 1017, 1019, 1020, 27, - /* 1820 */ 184, 1491, 185, 186, 495, 242, 98, 398, 1412, 36, - /* 1830 */ 1411, 484, 91, 469, 401, 1414, 445, 192, 1480, 246, - /* 1840 */ 1502, 490, 346, 277, 248, 196, 493, 511, 557, 350, - /* 1850 */ 1256, 249, 250, 403, 1313, 1312, 111, 560, 432, 4, - /* 1860 */ 1311, 1304, 93, 1611, 883, 1610, 224, 404, 434, 520, - /* 1870 */ 263, 435, 1579, 563, 1283, 1282, 364, 1027, 306, 1281, - /* 1880 */ 264, 1609, 1565, 109, 109, 370, 1303, 307, 1564, 438, - /* 1890 */ 128, 110, 1378, 445, 570, 569, 445, 546, 1017, 10, - /* 1900 */ 1466, 105, 381, 1377, 34, 572, 99, 1336, 557, 314, - /* 1910 */ 1186, 530, 272, 274, 379, 210, 1335, 547, 385, 386, - /* 1920 */ 275, 573, 1251, 1246, 411, 412, 1518, 165, 178, 1519, - /* 1930 */ 1017, 1017, 1019, 1020, 27, 1517, 1516, 1027, 78, 147, - /* 1940 */ 166, 220, 221, 109, 109, 836, 304, 167, 446, 212, - /* 1950 */ 318, 110, 231, 445, 570, 569, 144, 1090, 1017, 1088, - /* 1960 */ 326, 180, 169, 1212, 182, 334, 238, 915, 241, 1104, + /* 1590 */ 130, 1024, 110, 366, 445, 569, 445, 109, 109, 1014, + /* 1600 */ 162, 162, 156, 156, 568, 110, 1076, 445, 569, 445, + /* 1610 */ 410, 351, 1014, 568, 353, 316, 559, 568, 343, 568, + /* 1620 */ 100, 497, 357, 258, 100, 896, 897, 140, 140, 355, + /* 1630 */ 1306, 1014, 1014, 1016, 1017, 27, 139, 139, 362, 451, + /* 1640 */ 137, 137, 138, 138, 1014, 1014, 1016, 1017, 27, 1176, + /* 1650 */ 447, 568, 372, 288, 111, 560, 1018, 4, 392, 392, + /* 1660 */ 391, 273, 389, 568, 1137, 847, 568, 1072, 568, 258, + /* 1670 */ 492, 563, 568, 211, 75, 75, 555, 960, 234, 261, + /* 1680 */ 323, 111, 560, 927, 4, 113, 77, 77, 322, 74, + /* 1690 */ 74, 42, 42, 1369, 445, 48, 48, 1414, 563, 972, + /* 1700 */ 973, 1088, 1087, 1088, 1087, 860, 557, 150, 928, 1342, + /* 1710 */ 113, 1354, 554, 1419, 1018, 1271, 1262, 1250, 236, 1249, + /* 1720 */ 1251, 445, 1587, 1339, 308, 276, 168, 309, 11, 141, + /* 1730 */ 393, 310, 232, 557, 1401, 1024, 335, 291, 1396, 219, + /* 1740 */ 336, 109, 109, 934, 297, 1406, 235, 341, 477, 110, + /* 1750 */ 502, 445, 569, 445, 1389, 1405, 1014, 400, 1289, 365, + /* 1760 */ 223, 1480, 1024, 1479, 1351, 1352, 1350, 1349, 109, 109, + /* 1770 */ 204, 1590, 1228, 558, 265, 218, 110, 205, 445, 569, + /* 1780 */ 445, 410, 387, 1014, 1527, 179, 316, 559, 1014, 1014, + /* 1790 */ 1016, 1017, 27, 230, 1525, 1225, 79, 560, 85, 4, + /* 1800 */ 418, 215, 548, 81, 84, 188, 1402, 173, 181, 461, + /* 1810 */ 451, 35, 462, 563, 183, 1014, 1014, 1016, 1017, 27, + /* 1820 */ 184, 1485, 185, 186, 495, 242, 98, 398, 1408, 36, + /* 1830 */ 1407, 484, 91, 469, 401, 1410, 445, 192, 1474, 246, + /* 1840 */ 1496, 490, 346, 277, 248, 196, 493, 511, 557, 350, + /* 1850 */ 1252, 249, 250, 403, 1309, 1308, 111, 560, 432, 4, + /* 1860 */ 1307, 1300, 93, 1604, 881, 1603, 224, 404, 434, 520, + /* 1870 */ 263, 435, 1573, 563, 1279, 1278, 364, 1024, 306, 1277, + /* 1880 */ 264, 1602, 1559, 109, 109, 370, 1299, 307, 1558, 438, + /* 1890 */ 128, 110, 1374, 445, 569, 445, 445, 546, 1014, 10, + /* 1900 */ 1461, 105, 381, 1373, 34, 571, 99, 1332, 557, 314, + /* 1910 */ 1182, 530, 272, 274, 379, 210, 1331, 547, 385, 386, + /* 1920 */ 275, 572, 1247, 1242, 411, 412, 1512, 165, 178, 1513, + /* 1930 */ 1014, 1014, 1016, 1017, 27, 1511, 1510, 1024, 78, 147, + /* 1940 */ 166, 220, 221, 109, 109, 834, 304, 167, 446, 212, + /* 1950 */ 318, 110, 231, 445, 569, 445, 144, 1086, 1014, 1084, + /* 1960 */ 326, 180, 169, 1207, 182, 334, 238, 913, 241, 1100, /* 1970 */ 187, 170, 171, 421, 87, 88, 423, 189, 89, 90, - /* 1980 */ 172, 1107, 243, 1103, 244, 158, 18, 245, 345, 247, - /* 1990 */ 1017, 1017, 1019, 1020, 27, 261, 1096, 193, 1226, 489, - /* 2000 */ 194, 37, 366, 851, 494, 251, 195, 506, 92, 19, - /* 2010 */ 498, 358, 20, 503, 881, 361, 94, 894, 305, 159, - /* 2020 */ 513, 39, 95, 1174, 160, 1056, 966, 1143, 96, 174, - /* 2030 */ 1142, 225, 280, 282, 198, 960, 113, 1164, 1160, 260, - /* 2040 */ 21, 22, 23, 1162, 1168, 1167, 1148, 24, 33, 25, - /* 2050 */ 202, 542, 26, 100, 1071, 102, 1057, 103, 7, 1055, - /* 2060 */ 1059, 1113, 1060, 1112, 266, 267, 28, 40, 390, 1022, - /* 2070 */ 863, 112, 29, 564, 1182, 1181, 268, 176, 143, 925, - /* 2080 */ 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, - /* 2090 */ 1242, 1242, 1242, 1242, 269, 1602, 1242, 1601, + /* 1980 */ 172, 1103, 243, 1099, 244, 158, 18, 245, 345, 247, + /* 1990 */ 1014, 1014, 1016, 1017, 27, 261, 1092, 193, 1222, 489, + /* 2000 */ 194, 37, 366, 849, 494, 251, 195, 506, 92, 19, + /* 2010 */ 498, 358, 20, 503, 879, 361, 94, 892, 305, 159, + /* 2020 */ 513, 39, 95, 1170, 160, 1053, 964, 1139, 96, 174, + /* 2030 */ 1138, 225, 280, 282, 198, 958, 113, 1160, 1156, 260, + /* 2040 */ 21, 22, 23, 1158, 1164, 1163, 1144, 24, 33, 25, + /* 2050 */ 202, 542, 26, 100, 1067, 102, 1054, 103, 7, 1052, + /* 2060 */ 1056, 1109, 1057, 1108, 266, 267, 28, 40, 390, 1019, + /* 2070 */ 861, 112, 29, 564, 1178, 1177, 268, 176, 143, 923, + /* 2080 */ 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, + /* 2090 */ 1238, 1238, 1238, 1238, 269, 1595, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 193, 193, 193, 274, 275, 276, 193, 274, 275, 276, @@ -164532,7 +168729,7 @@ static const YYCODETYPE yy_lookahead[] = { /* 2060 */ 23, 23, 11, 23, 25, 22, 22, 22, 15, 23, /* 2070 */ 23, 22, 22, 25, 1, 1, 141, 25, 23, 135, /* 2080 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2090 */ 319, 319, 319, 319, 141, 141, 319, 141, 319, 319, + /* 2090 */ 319, 319, 319, 319, 141, 141, 319, 319, 319, 319, /* 2100 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, /* 2110 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, /* 2120 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, @@ -164551,9 +168748,9 @@ static const YYCODETYPE yy_lookahead[] = { /* 2250 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, /* 2260 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, /* 2270 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2280 */ 319, 319, 319, + /* 2280 */ 319, }; -#define YY_SHIFT_COUNT (575) +#define YY_SHIFT_COUNT (574) #define YY_SHIFT_MIN (0) #define YY_SHIFT_MAX (2074) static const unsigned short int yy_shift_ofst[] = { @@ -164573,12 +168770,12 @@ static const unsigned short int yy_shift_ofst[] = { /* 130 */ 137, 181, 181, 181, 181, 181, 181, 181, 94, 430, /* 140 */ 66, 65, 112, 366, 533, 533, 740, 1261, 533, 533, /* 150 */ 79, 79, 533, 412, 412, 412, 77, 412, 123, 113, - /* 160 */ 113, 22, 22, 2098, 2098, 328, 328, 328, 239, 468, + /* 160 */ 113, 22, 22, 2096, 2096, 328, 328, 328, 239, 468, /* 170 */ 468, 468, 468, 1015, 1015, 409, 366, 1129, 1186, 533, /* 180 */ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, /* 190 */ 533, 533, 533, 533, 533, 533, 533, 533, 533, 969, /* 200 */ 621, 621, 533, 642, 788, 788, 1228, 1228, 822, 822, - /* 210 */ 67, 1274, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 1307, + /* 210 */ 67, 1274, 2096, 2096, 2096, 2096, 2096, 2096, 2096, 1307, /* 220 */ 954, 954, 585, 472, 640, 387, 695, 538, 541, 700, /* 230 */ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, /* 240 */ 222, 533, 533, 533, 533, 533, 533, 533, 533, 533, @@ -164596,8 +168793,8 @@ static const unsigned short int yy_shift_ofst[] = { /* 360 */ 1840, 1840, 1823, 1732, 1738, 1732, 1794, 1732, 1732, 1701, /* 370 */ 1844, 1758, 1758, 1823, 1633, 1789, 1789, 1807, 1807, 1742, /* 380 */ 1752, 1877, 1633, 1743, 1742, 1759, 1765, 1677, 1879, 1897, - /* 390 */ 1897, 1914, 1914, 1914, 2098, 2098, 2098, 2098, 2098, 2098, - /* 400 */ 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 2098, 207, + /* 390 */ 1897, 1914, 1914, 1914, 2096, 2096, 2096, 2096, 2096, 2096, + /* 400 */ 2096, 2096, 2096, 2096, 2096, 2096, 2096, 2096, 2096, 207, /* 410 */ 1095, 331, 620, 903, 806, 1074, 1483, 1432, 1481, 1322, /* 420 */ 1370, 1394, 1515, 1291, 1546, 1547, 1557, 1595, 1598, 1599, /* 430 */ 1434, 1453, 1618, 1462, 1567, 1489, 1644, 1654, 1616, 1660, @@ -164614,7 +168811,7 @@ static const unsigned short int yy_shift_ofst[] = { /* 540 */ 2015, 2023, 2026, 2027, 2025, 2028, 2018, 1913, 1915, 2031, /* 550 */ 2011, 2033, 2036, 2037, 2038, 2039, 2040, 2043, 2051, 2044, /* 560 */ 2045, 2046, 2047, 2049, 2050, 2048, 1944, 1935, 1953, 1954, - /* 570 */ 1956, 2052, 2055, 2053, 2073, 2074, + /* 570 */ 2052, 2055, 2053, 2073, 2074, }; #define YY_REDUCE_COUNT (408) #define YY_REDUCE_MIN (-271) @@ -164663,64 +168860,64 @@ static const short yy_reduce_ofst[] = { /* 400 */ 1722, 1723, 1733, 1717, 1724, 1727, 1728, 1725, 1740, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 1647, 1647, 1647, 1475, 1240, 1351, 1240, 1240, 1240, 1475, - /* 10 */ 1475, 1475, 1240, 1381, 1381, 1528, 1273, 1240, 1240, 1240, - /* 20 */ 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1474, 1240, 1240, - /* 30 */ 1240, 1240, 1563, 1563, 1240, 1240, 1240, 1240, 1240, 1240, - /* 40 */ 1240, 1240, 1390, 1240, 1397, 1240, 1240, 1240, 1240, 1240, - /* 50 */ 1476, 1477, 1240, 1240, 1240, 1527, 1529, 1492, 1404, 1403, - /* 60 */ 1402, 1401, 1510, 1369, 1395, 1388, 1392, 1470, 1471, 1469, - /* 70 */ 1473, 1477, 1476, 1240, 1391, 1438, 1454, 1437, 1240, 1240, - /* 80 */ 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, - /* 90 */ 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, - /* 100 */ 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, - /* 110 */ 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, - /* 120 */ 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, - /* 130 */ 1446, 1453, 1452, 1451, 1460, 1450, 1447, 1440, 1439, 1441, - /* 140 */ 1442, 1240, 1240, 1264, 1240, 1240, 1261, 1315, 1240, 1240, - /* 150 */ 1240, 1240, 1240, 1547, 1546, 1240, 1443, 1240, 1273, 1432, - /* 160 */ 1431, 1457, 1444, 1456, 1455, 1535, 1599, 1598, 1493, 1240, - /* 170 */ 1240, 1240, 1240, 1240, 1240, 1563, 1240, 1240, 1240, 1240, - /* 180 */ 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, - /* 190 */ 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1371, - /* 200 */ 1563, 1563, 1240, 1273, 1563, 1563, 1372, 1372, 1269, 1269, - /* 210 */ 1375, 1240, 1542, 1342, 1342, 1342, 1342, 1351, 1342, 1240, - /* 220 */ 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, - /* 230 */ 1240, 1240, 1240, 1240, 1532, 1530, 1240, 1240, 1240, 1240, - /* 240 */ 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, - /* 250 */ 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, - /* 260 */ 1240, 1240, 1240, 1347, 1240, 1240, 1240, 1240, 1240, 1240, - /* 270 */ 1240, 1240, 1240, 1240, 1240, 1592, 1240, 1505, 1329, 1347, - /* 280 */ 1347, 1347, 1347, 1349, 1330, 1328, 1341, 1274, 1247, 1639, - /* 290 */ 1407, 1396, 1348, 1396, 1636, 1394, 1407, 1407, 1394, 1407, - /* 300 */ 1348, 1636, 1290, 1615, 1285, 1381, 1381, 1381, 1371, 1371, - /* 310 */ 1371, 1371, 1375, 1375, 1472, 1348, 1341, 1240, 1639, 1639, - /* 320 */ 1357, 1357, 1638, 1638, 1357, 1493, 1623, 1416, 1318, 1324, - /* 330 */ 1324, 1324, 1324, 1357, 1258, 1394, 1623, 1623, 1394, 1416, - /* 340 */ 1318, 1394, 1318, 1394, 1357, 1258, 1509, 1633, 1357, 1258, - /* 350 */ 1483, 1357, 1258, 1357, 1258, 1483, 1316, 1316, 1316, 1305, - /* 360 */ 1240, 1240, 1483, 1316, 1290, 1316, 1305, 1316, 1316, 1581, - /* 370 */ 1240, 1487, 1487, 1483, 1357, 1573, 1573, 1384, 1384, 1389, - /* 380 */ 1375, 1478, 1357, 1240, 1389, 1387, 1385, 1394, 1308, 1595, - /* 390 */ 1595, 1591, 1591, 1591, 1644, 1644, 1542, 1608, 1273, 1273, - /* 400 */ 1273, 1273, 1608, 1292, 1292, 1274, 1274, 1273, 1608, 1240, - /* 410 */ 1240, 1240, 1240, 1240, 1240, 1603, 1240, 1537, 1494, 1361, - /* 420 */ 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, - /* 430 */ 1240, 1240, 1240, 1240, 1548, 1240, 1240, 1240, 1240, 1240, - /* 440 */ 1240, 1240, 1240, 1240, 1240, 1421, 1240, 1243, 1539, 1240, - /* 450 */ 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1398, 1399, 1362, - /* 460 */ 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1413, 1240, 1240, - /* 470 */ 1240, 1408, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, - /* 480 */ 1635, 1240, 1240, 1240, 1240, 1240, 1240, 1508, 1507, 1240, - /* 490 */ 1240, 1359, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, - /* 500 */ 1240, 1240, 1240, 1240, 1240, 1288, 1240, 1240, 1240, 1240, - /* 510 */ 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, - /* 520 */ 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1386, - /* 530 */ 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, - /* 540 */ 1240, 1240, 1240, 1240, 1578, 1376, 1240, 1240, 1240, 1240, - /* 550 */ 1626, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, 1240, - /* 560 */ 1240, 1240, 1240, 1240, 1240, 1619, 1332, 1423, 1240, 1422, - /* 570 */ 1426, 1262, 1240, 1252, 1240, 1240, + /* 0 */ 1641, 1641, 1641, 1469, 1236, 1347, 1236, 1236, 1236, 1469, + /* 10 */ 1469, 1469, 1236, 1377, 1377, 1522, 1269, 1236, 1236, 1236, + /* 20 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1468, 1236, 1236, + /* 30 */ 1236, 1236, 1557, 1557, 1236, 1236, 1236, 1236, 1236, 1236, + /* 40 */ 1236, 1236, 1386, 1236, 1393, 1236, 1236, 1236, 1236, 1236, + /* 50 */ 1470, 1471, 1236, 1236, 1236, 1521, 1523, 1486, 1400, 1399, + /* 60 */ 1398, 1397, 1504, 1365, 1391, 1384, 1388, 1465, 1466, 1464, + /* 70 */ 1619, 1471, 1470, 1236, 1387, 1433, 1449, 1432, 1236, 1236, + /* 80 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, + /* 90 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, + /* 100 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, + /* 110 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, + /* 120 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, + /* 130 */ 1441, 1448, 1447, 1446, 1455, 1445, 1442, 1435, 1434, 1436, + /* 140 */ 1437, 1236, 1236, 1260, 1236, 1236, 1257, 1311, 1236, 1236, + /* 150 */ 1236, 1236, 1236, 1541, 1540, 1236, 1438, 1236, 1269, 1427, + /* 160 */ 1426, 1452, 1439, 1451, 1450, 1529, 1593, 1592, 1487, 1236, + /* 170 */ 1236, 1236, 1236, 1236, 1236, 1557, 1236, 1236, 1236, 1236, + /* 180 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, + /* 190 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1367, + /* 200 */ 1557, 1557, 1236, 1269, 1557, 1557, 1368, 1368, 1265, 1265, + /* 210 */ 1371, 1236, 1536, 1338, 1338, 1338, 1338, 1347, 1338, 1236, + /* 220 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, + /* 230 */ 1236, 1236, 1236, 1236, 1526, 1524, 1236, 1236, 1236, 1236, + /* 240 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, + /* 250 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, + /* 260 */ 1236, 1236, 1236, 1343, 1236, 1236, 1236, 1236, 1236, 1236, + /* 270 */ 1236, 1236, 1236, 1236, 1236, 1586, 1236, 1499, 1325, 1343, + /* 280 */ 1343, 1343, 1343, 1345, 1326, 1324, 1337, 1270, 1243, 1633, + /* 290 */ 1403, 1392, 1344, 1392, 1630, 1390, 1403, 1403, 1390, 1403, + /* 300 */ 1344, 1630, 1286, 1608, 1281, 1377, 1377, 1377, 1367, 1367, + /* 310 */ 1367, 1367, 1371, 1371, 1467, 1344, 1337, 1236, 1633, 1633, + /* 320 */ 1353, 1353, 1632, 1632, 1353, 1487, 1616, 1412, 1314, 1320, + /* 330 */ 1320, 1320, 1320, 1353, 1254, 1390, 1616, 1616, 1390, 1412, + /* 340 */ 1314, 1390, 1314, 1390, 1353, 1254, 1503, 1627, 1353, 1254, + /* 350 */ 1477, 1353, 1254, 1353, 1254, 1477, 1312, 1312, 1312, 1301, + /* 360 */ 1236, 1236, 1477, 1312, 1286, 1312, 1301, 1312, 1312, 1575, + /* 370 */ 1236, 1481, 1481, 1477, 1353, 1567, 1567, 1380, 1380, 1385, + /* 380 */ 1371, 1472, 1353, 1236, 1385, 1383, 1381, 1390, 1304, 1589, + /* 390 */ 1589, 1585, 1585, 1585, 1638, 1638, 1536, 1601, 1269, 1269, + /* 400 */ 1269, 1269, 1601, 1288, 1288, 1270, 1270, 1269, 1601, 1236, + /* 410 */ 1236, 1236, 1236, 1236, 1236, 1596, 1236, 1531, 1488, 1357, + /* 420 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, + /* 430 */ 1236, 1236, 1236, 1236, 1542, 1236, 1236, 1236, 1236, 1236, + /* 440 */ 1236, 1236, 1236, 1236, 1236, 1417, 1236, 1239, 1533, 1236, + /* 450 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1394, 1395, 1358, + /* 460 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1409, 1236, 1236, + /* 470 */ 1236, 1404, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, + /* 480 */ 1629, 1236, 1236, 1236, 1236, 1236, 1236, 1502, 1501, 1236, + /* 490 */ 1236, 1355, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, + /* 500 */ 1236, 1236, 1236, 1236, 1236, 1284, 1236, 1236, 1236, 1236, + /* 510 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, + /* 520 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1382, + /* 530 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, + /* 540 */ 1236, 1236, 1236, 1236, 1572, 1372, 1236, 1236, 1236, 1236, + /* 550 */ 1620, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, + /* 560 */ 1236, 1236, 1236, 1236, 1236, 1612, 1328, 1418, 1236, 1421, + /* 570 */ 1258, 1236, 1248, 1236, 1236, }; /********** End of lemon-generated parsing tables *****************************/ @@ -165517,233 +169714,231 @@ static const char *const yyRuleName[] = { /* 175 */ "idlist ::= idlist COMMA nm", /* 176 */ "idlist ::= nm", /* 177 */ "expr ::= LP expr RP", - /* 178 */ "expr ::= ID|INDEXED", - /* 179 */ "expr ::= JOIN_KW", - /* 180 */ "expr ::= nm DOT nm", - /* 181 */ "expr ::= nm DOT nm DOT nm", - /* 182 */ "term ::= NULL|FLOAT|BLOB", - /* 183 */ "term ::= STRING", - /* 184 */ "term ::= INTEGER", - /* 185 */ "expr ::= VARIABLE", - /* 186 */ "expr ::= expr COLLATE ID|STRING", - /* 187 */ "expr ::= CAST LP expr AS typetoken RP", - /* 188 */ "expr ::= ID|INDEXED LP distinct exprlist RP", - /* 189 */ "expr ::= ID|INDEXED LP STAR RP", - /* 190 */ "expr ::= ID|INDEXED LP distinct exprlist RP filter_over", - /* 191 */ "expr ::= ID|INDEXED LP STAR RP filter_over", - /* 192 */ "term ::= CTIME_KW", - /* 193 */ "expr ::= LP nexprlist COMMA expr RP", - /* 194 */ "expr ::= expr AND expr", - /* 195 */ "expr ::= expr OR expr", - /* 196 */ "expr ::= expr LT|GT|GE|LE expr", - /* 197 */ "expr ::= expr EQ|NE expr", - /* 198 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr", - /* 199 */ "expr ::= expr PLUS|MINUS expr", - /* 200 */ "expr ::= expr STAR|SLASH|REM expr", - /* 201 */ "expr ::= expr CONCAT expr", - /* 202 */ "likeop ::= NOT LIKE_KW|MATCH", - /* 203 */ "expr ::= expr likeop expr", - /* 204 */ "expr ::= expr likeop expr ESCAPE expr", - /* 205 */ "expr ::= expr ISNULL|NOTNULL", - /* 206 */ "expr ::= expr NOT NULL", - /* 207 */ "expr ::= expr IS expr", - /* 208 */ "expr ::= expr IS NOT expr", - /* 209 */ "expr ::= expr IS NOT DISTINCT FROM expr", - /* 210 */ "expr ::= expr IS DISTINCT FROM expr", - /* 211 */ "expr ::= NOT expr", - /* 212 */ "expr ::= BITNOT expr", - /* 213 */ "expr ::= PLUS|MINUS expr", - /* 214 */ "expr ::= expr PTR expr", - /* 215 */ "between_op ::= BETWEEN", - /* 216 */ "between_op ::= NOT BETWEEN", - /* 217 */ "expr ::= expr between_op expr AND expr", - /* 218 */ "in_op ::= IN", - /* 219 */ "in_op ::= NOT IN", - /* 220 */ "expr ::= expr in_op LP exprlist RP", - /* 221 */ "expr ::= LP select RP", - /* 222 */ "expr ::= expr in_op LP select RP", - /* 223 */ "expr ::= expr in_op nm dbnm paren_exprlist", - /* 224 */ "expr ::= EXISTS LP select RP", - /* 225 */ "expr ::= CASE case_operand case_exprlist case_else END", - /* 226 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", - /* 227 */ "case_exprlist ::= WHEN expr THEN expr", - /* 228 */ "case_else ::= ELSE expr", - /* 229 */ "case_else ::=", - /* 230 */ "case_operand ::= expr", - /* 231 */ "case_operand ::=", - /* 232 */ "exprlist ::=", - /* 233 */ "nexprlist ::= nexprlist COMMA expr", - /* 234 */ "nexprlist ::= expr", - /* 235 */ "paren_exprlist ::=", - /* 236 */ "paren_exprlist ::= LP exprlist RP", - /* 237 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt", - /* 238 */ "uniqueflag ::= UNIQUE", - /* 239 */ "uniqueflag ::=", - /* 240 */ "eidlist_opt ::=", - /* 241 */ "eidlist_opt ::= LP eidlist RP", - /* 242 */ "eidlist ::= eidlist COMMA nm collate sortorder", - /* 243 */ "eidlist ::= nm collate sortorder", - /* 244 */ "collate ::=", - /* 245 */ "collate ::= COLLATE ID|STRING", - /* 246 */ "cmd ::= DROP INDEX ifexists fullname", - /* 247 */ "cmd ::= VACUUM vinto", - /* 248 */ "cmd ::= VACUUM nm vinto", - /* 249 */ "vinto ::= INTO expr", - /* 250 */ "vinto ::=", - /* 251 */ "cmd ::= PRAGMA nm dbnm", - /* 252 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", - /* 253 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", - /* 254 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", - /* 255 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP", - /* 256 */ "plus_num ::= PLUS INTEGER|FLOAT", - /* 257 */ "minus_num ::= MINUS INTEGER|FLOAT", - /* 258 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END", - /* 259 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", - /* 260 */ "trigger_time ::= BEFORE|AFTER", - /* 261 */ "trigger_time ::= INSTEAD OF", - /* 262 */ "trigger_time ::=", - /* 263 */ "trigger_event ::= DELETE|INSERT", - /* 264 */ "trigger_event ::= UPDATE", - /* 265 */ "trigger_event ::= UPDATE OF idlist", - /* 266 */ "when_clause ::=", - /* 267 */ "when_clause ::= WHEN expr", - /* 268 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", - /* 269 */ "trigger_cmd_list ::= trigger_cmd SEMI", - /* 270 */ "trnm ::= nm DOT nm", - /* 271 */ "tridxby ::= INDEXED BY nm", - /* 272 */ "tridxby ::= NOT INDEXED", - /* 273 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt", - /* 274 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt", - /* 275 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt", - /* 276 */ "trigger_cmd ::= scanpt select scanpt", - /* 277 */ "expr ::= RAISE LP IGNORE RP", - /* 278 */ "expr ::= RAISE LP raisetype COMMA nm RP", - /* 279 */ "raisetype ::= ROLLBACK", - /* 280 */ "raisetype ::= ABORT", - /* 281 */ "raisetype ::= FAIL", - /* 282 */ "cmd ::= DROP TRIGGER ifexists fullname", - /* 283 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", - /* 284 */ "cmd ::= DETACH database_kw_opt expr", - /* 285 */ "key_opt ::=", - /* 286 */ "key_opt ::= KEY expr", - /* 287 */ "cmd ::= REINDEX", - /* 288 */ "cmd ::= REINDEX nm dbnm", - /* 289 */ "cmd ::= ANALYZE", - /* 290 */ "cmd ::= ANALYZE nm dbnm", - /* 291 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", - /* 292 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist", - /* 293 */ "cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm", - /* 294 */ "add_column_fullname ::= fullname", - /* 295 */ "cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm", - /* 296 */ "cmd ::= create_vtab", - /* 297 */ "cmd ::= create_vtab LP vtabarglist RP", - /* 298 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm", - /* 299 */ "vtabarg ::=", - /* 300 */ "vtabargtoken ::= ANY", - /* 301 */ "vtabargtoken ::= lp anylist RP", - /* 302 */ "lp ::= LP", - /* 303 */ "with ::= WITH wqlist", - /* 304 */ "with ::= WITH RECURSIVE wqlist", - /* 305 */ "wqas ::= AS", - /* 306 */ "wqas ::= AS MATERIALIZED", - /* 307 */ "wqas ::= AS NOT MATERIALIZED", - /* 308 */ "wqitem ::= nm eidlist_opt wqas LP select RP", - /* 309 */ "wqlist ::= wqitem", - /* 310 */ "wqlist ::= wqlist COMMA wqitem", - /* 311 */ "windowdefn_list ::= windowdefn", - /* 312 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn", - /* 313 */ "windowdefn ::= nm AS LP window RP", - /* 314 */ "window ::= PARTITION BY nexprlist orderby_opt frame_opt", - /* 315 */ "window ::= nm PARTITION BY nexprlist orderby_opt frame_opt", - /* 316 */ "window ::= ORDER BY sortlist frame_opt", - /* 317 */ "window ::= nm ORDER BY sortlist frame_opt", - /* 318 */ "window ::= frame_opt", - /* 319 */ "window ::= nm frame_opt", - /* 320 */ "frame_opt ::=", - /* 321 */ "frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt", - /* 322 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt", - /* 323 */ "range_or_rows ::= RANGE|ROWS|GROUPS", - /* 324 */ "frame_bound_s ::= frame_bound", - /* 325 */ "frame_bound_s ::= UNBOUNDED PRECEDING", - /* 326 */ "frame_bound_e ::= frame_bound", - /* 327 */ "frame_bound_e ::= UNBOUNDED FOLLOWING", - /* 328 */ "frame_bound ::= expr PRECEDING|FOLLOWING", - /* 329 */ "frame_bound ::= CURRENT ROW", - /* 330 */ "frame_exclude_opt ::=", - /* 331 */ "frame_exclude_opt ::= EXCLUDE frame_exclude", - /* 332 */ "frame_exclude ::= NO OTHERS", - /* 333 */ "frame_exclude ::= CURRENT ROW", - /* 334 */ "frame_exclude ::= GROUP|TIES", - /* 335 */ "window_clause ::= WINDOW windowdefn_list", - /* 336 */ "filter_over ::= filter_clause over_clause", - /* 337 */ "filter_over ::= over_clause", - /* 338 */ "filter_over ::= filter_clause", - /* 339 */ "over_clause ::= OVER LP window RP", - /* 340 */ "over_clause ::= OVER nm", - /* 341 */ "filter_clause ::= FILTER LP WHERE expr RP", - /* 342 */ "input ::= cmdlist", - /* 343 */ "cmdlist ::= cmdlist ecmd", - /* 344 */ "cmdlist ::= ecmd", - /* 345 */ "ecmd ::= SEMI", - /* 346 */ "ecmd ::= cmdx SEMI", - /* 347 */ "ecmd ::= explain cmdx SEMI", - /* 348 */ "trans_opt ::=", - /* 349 */ "trans_opt ::= TRANSACTION", - /* 350 */ "trans_opt ::= TRANSACTION nm", - /* 351 */ "savepoint_opt ::= SAVEPOINT", - /* 352 */ "savepoint_opt ::=", - /* 353 */ "cmd ::= create_table create_table_args", - /* 354 */ "table_option_set ::= table_option", - /* 355 */ "columnlist ::= columnlist COMMA columnname carglist", - /* 356 */ "columnlist ::= columnname carglist", - /* 357 */ "nm ::= ID|INDEXED", - /* 358 */ "nm ::= STRING", - /* 359 */ "nm ::= JOIN_KW", - /* 360 */ "typetoken ::= typename", - /* 361 */ "typename ::= ID|STRING", - /* 362 */ "signed ::= plus_num", - /* 363 */ "signed ::= minus_num", - /* 364 */ "carglist ::= carglist ccons", - /* 365 */ "carglist ::=", - /* 366 */ "ccons ::= NULL onconf", - /* 367 */ "ccons ::= GENERATED ALWAYS AS generated", - /* 368 */ "ccons ::= AS generated", - /* 369 */ "conslist_opt ::= COMMA conslist", - /* 370 */ "conslist ::= conslist tconscomma tcons", - /* 371 */ "conslist ::= tcons", - /* 372 */ "tconscomma ::=", - /* 373 */ "defer_subclause_opt ::= defer_subclause", - /* 374 */ "resolvetype ::= raisetype", - /* 375 */ "selectnowith ::= oneselect", - /* 376 */ "oneselect ::= values", - /* 377 */ "sclp ::= selcollist COMMA", - /* 378 */ "as ::= ID|STRING", - /* 379 */ "indexed_opt ::= indexed_by", - /* 380 */ "returning ::=", - /* 381 */ "expr ::= term", - /* 382 */ "likeop ::= LIKE_KW|MATCH", - /* 383 */ "exprlist ::= nexprlist", - /* 384 */ "nmnum ::= plus_num", - /* 385 */ "nmnum ::= nm", - /* 386 */ "nmnum ::= ON", - /* 387 */ "nmnum ::= DELETE", - /* 388 */ "nmnum ::= DEFAULT", - /* 389 */ "plus_num ::= INTEGER|FLOAT", - /* 390 */ "foreach_clause ::=", - /* 391 */ "foreach_clause ::= FOR EACH ROW", - /* 392 */ "trnm ::= nm", - /* 393 */ "tridxby ::=", - /* 394 */ "database_kw_opt ::= DATABASE", - /* 395 */ "database_kw_opt ::=", - /* 396 */ "kwcolumn_opt ::=", - /* 397 */ "kwcolumn_opt ::= COLUMNKW", - /* 398 */ "vtabarglist ::= vtabarg", - /* 399 */ "vtabarglist ::= vtabarglist COMMA vtabarg", - /* 400 */ "vtabarg ::= vtabarg vtabargtoken", - /* 401 */ "anylist ::=", - /* 402 */ "anylist ::= anylist LP anylist RP", - /* 403 */ "anylist ::= anylist ANY", - /* 404 */ "with ::=", + /* 178 */ "expr ::= ID|INDEXED|JOIN_KW", + /* 179 */ "expr ::= nm DOT nm", + /* 180 */ "expr ::= nm DOT nm DOT nm", + /* 181 */ "term ::= NULL|FLOAT|BLOB", + /* 182 */ "term ::= STRING", + /* 183 */ "term ::= INTEGER", + /* 184 */ "expr ::= VARIABLE", + /* 185 */ "expr ::= expr COLLATE ID|STRING", + /* 186 */ "expr ::= CAST LP expr AS typetoken RP", + /* 187 */ "expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP", + /* 188 */ "expr ::= ID|INDEXED|JOIN_KW LP STAR RP", + /* 189 */ "expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over", + /* 190 */ "expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over", + /* 191 */ "term ::= CTIME_KW", + /* 192 */ "expr ::= LP nexprlist COMMA expr RP", + /* 193 */ "expr ::= expr AND expr", + /* 194 */ "expr ::= expr OR expr", + /* 195 */ "expr ::= expr LT|GT|GE|LE expr", + /* 196 */ "expr ::= expr EQ|NE expr", + /* 197 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr", + /* 198 */ "expr ::= expr PLUS|MINUS expr", + /* 199 */ "expr ::= expr STAR|SLASH|REM expr", + /* 200 */ "expr ::= expr CONCAT expr", + /* 201 */ "likeop ::= NOT LIKE_KW|MATCH", + /* 202 */ "expr ::= expr likeop expr", + /* 203 */ "expr ::= expr likeop expr ESCAPE expr", + /* 204 */ "expr ::= expr ISNULL|NOTNULL", + /* 205 */ "expr ::= expr NOT NULL", + /* 206 */ "expr ::= expr IS expr", + /* 207 */ "expr ::= expr IS NOT expr", + /* 208 */ "expr ::= expr IS NOT DISTINCT FROM expr", + /* 209 */ "expr ::= expr IS DISTINCT FROM expr", + /* 210 */ "expr ::= NOT expr", + /* 211 */ "expr ::= BITNOT expr", + /* 212 */ "expr ::= PLUS|MINUS expr", + /* 213 */ "expr ::= expr PTR expr", + /* 214 */ "between_op ::= BETWEEN", + /* 215 */ "between_op ::= NOT BETWEEN", + /* 216 */ "expr ::= expr between_op expr AND expr", + /* 217 */ "in_op ::= IN", + /* 218 */ "in_op ::= NOT IN", + /* 219 */ "expr ::= expr in_op LP exprlist RP", + /* 220 */ "expr ::= LP select RP", + /* 221 */ "expr ::= expr in_op LP select RP", + /* 222 */ "expr ::= expr in_op nm dbnm paren_exprlist", + /* 223 */ "expr ::= EXISTS LP select RP", + /* 224 */ "expr ::= CASE case_operand case_exprlist case_else END", + /* 225 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", + /* 226 */ "case_exprlist ::= WHEN expr THEN expr", + /* 227 */ "case_else ::= ELSE expr", + /* 228 */ "case_else ::=", + /* 229 */ "case_operand ::=", + /* 230 */ "exprlist ::=", + /* 231 */ "nexprlist ::= nexprlist COMMA expr", + /* 232 */ "nexprlist ::= expr", + /* 233 */ "paren_exprlist ::=", + /* 234 */ "paren_exprlist ::= LP exprlist RP", + /* 235 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt", + /* 236 */ "uniqueflag ::= UNIQUE", + /* 237 */ "uniqueflag ::=", + /* 238 */ "eidlist_opt ::=", + /* 239 */ "eidlist_opt ::= LP eidlist RP", + /* 240 */ "eidlist ::= eidlist COMMA nm collate sortorder", + /* 241 */ "eidlist ::= nm collate sortorder", + /* 242 */ "collate ::=", + /* 243 */ "collate ::= COLLATE ID|STRING", + /* 244 */ "cmd ::= DROP INDEX ifexists fullname", + /* 245 */ "cmd ::= VACUUM vinto", + /* 246 */ "cmd ::= VACUUM nm vinto", + /* 247 */ "vinto ::= INTO expr", + /* 248 */ "vinto ::=", + /* 249 */ "cmd ::= PRAGMA nm dbnm", + /* 250 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", + /* 251 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", + /* 252 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", + /* 253 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP", + /* 254 */ "plus_num ::= PLUS INTEGER|FLOAT", + /* 255 */ "minus_num ::= MINUS INTEGER|FLOAT", + /* 256 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END", + /* 257 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", + /* 258 */ "trigger_time ::= BEFORE|AFTER", + /* 259 */ "trigger_time ::= INSTEAD OF", + /* 260 */ "trigger_time ::=", + /* 261 */ "trigger_event ::= DELETE|INSERT", + /* 262 */ "trigger_event ::= UPDATE", + /* 263 */ "trigger_event ::= UPDATE OF idlist", + /* 264 */ "when_clause ::=", + /* 265 */ "when_clause ::= WHEN expr", + /* 266 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", + /* 267 */ "trigger_cmd_list ::= trigger_cmd SEMI", + /* 268 */ "trnm ::= nm DOT nm", + /* 269 */ "tridxby ::= INDEXED BY nm", + /* 270 */ "tridxby ::= NOT INDEXED", + /* 271 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt", + /* 272 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt", + /* 273 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt", + /* 274 */ "trigger_cmd ::= scanpt select scanpt", + /* 275 */ "expr ::= RAISE LP IGNORE RP", + /* 276 */ "expr ::= RAISE LP raisetype COMMA nm RP", + /* 277 */ "raisetype ::= ROLLBACK", + /* 278 */ "raisetype ::= ABORT", + /* 279 */ "raisetype ::= FAIL", + /* 280 */ "cmd ::= DROP TRIGGER ifexists fullname", + /* 281 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", + /* 282 */ "cmd ::= DETACH database_kw_opt expr", + /* 283 */ "key_opt ::=", + /* 284 */ "key_opt ::= KEY expr", + /* 285 */ "cmd ::= REINDEX", + /* 286 */ "cmd ::= REINDEX nm dbnm", + /* 287 */ "cmd ::= ANALYZE", + /* 288 */ "cmd ::= ANALYZE nm dbnm", + /* 289 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", + /* 290 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist", + /* 291 */ "cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm", + /* 292 */ "add_column_fullname ::= fullname", + /* 293 */ "cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm", + /* 294 */ "cmd ::= create_vtab", + /* 295 */ "cmd ::= create_vtab LP vtabarglist RP", + /* 296 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm", + /* 297 */ "vtabarg ::=", + /* 298 */ "vtabargtoken ::= ANY", + /* 299 */ "vtabargtoken ::= lp anylist RP", + /* 300 */ "lp ::= LP", + /* 301 */ "with ::= WITH wqlist", + /* 302 */ "with ::= WITH RECURSIVE wqlist", + /* 303 */ "wqas ::= AS", + /* 304 */ "wqas ::= AS MATERIALIZED", + /* 305 */ "wqas ::= AS NOT MATERIALIZED", + /* 306 */ "wqitem ::= nm eidlist_opt wqas LP select RP", + /* 307 */ "wqlist ::= wqitem", + /* 308 */ "wqlist ::= wqlist COMMA wqitem", + /* 309 */ "windowdefn_list ::= windowdefn", + /* 310 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn", + /* 311 */ "windowdefn ::= nm AS LP window RP", + /* 312 */ "window ::= PARTITION BY nexprlist orderby_opt frame_opt", + /* 313 */ "window ::= nm PARTITION BY nexprlist orderby_opt frame_opt", + /* 314 */ "window ::= ORDER BY sortlist frame_opt", + /* 315 */ "window ::= nm ORDER BY sortlist frame_opt", + /* 316 */ "window ::= frame_opt", + /* 317 */ "window ::= nm frame_opt", + /* 318 */ "frame_opt ::=", + /* 319 */ "frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt", + /* 320 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt", + /* 321 */ "range_or_rows ::= RANGE|ROWS|GROUPS", + /* 322 */ "frame_bound_s ::= frame_bound", + /* 323 */ "frame_bound_s ::= UNBOUNDED PRECEDING", + /* 324 */ "frame_bound_e ::= frame_bound", + /* 325 */ "frame_bound_e ::= UNBOUNDED FOLLOWING", + /* 326 */ "frame_bound ::= expr PRECEDING|FOLLOWING", + /* 327 */ "frame_bound ::= CURRENT ROW", + /* 328 */ "frame_exclude_opt ::=", + /* 329 */ "frame_exclude_opt ::= EXCLUDE frame_exclude", + /* 330 */ "frame_exclude ::= NO OTHERS", + /* 331 */ "frame_exclude ::= CURRENT ROW", + /* 332 */ "frame_exclude ::= GROUP|TIES", + /* 333 */ "window_clause ::= WINDOW windowdefn_list", + /* 334 */ "filter_over ::= filter_clause over_clause", + /* 335 */ "filter_over ::= over_clause", + /* 336 */ "filter_over ::= filter_clause", + /* 337 */ "over_clause ::= OVER LP window RP", + /* 338 */ "over_clause ::= OVER nm", + /* 339 */ "filter_clause ::= FILTER LP WHERE expr RP", + /* 340 */ "input ::= cmdlist", + /* 341 */ "cmdlist ::= cmdlist ecmd", + /* 342 */ "cmdlist ::= ecmd", + /* 343 */ "ecmd ::= SEMI", + /* 344 */ "ecmd ::= cmdx SEMI", + /* 345 */ "ecmd ::= explain cmdx SEMI", + /* 346 */ "trans_opt ::=", + /* 347 */ "trans_opt ::= TRANSACTION", + /* 348 */ "trans_opt ::= TRANSACTION nm", + /* 349 */ "savepoint_opt ::= SAVEPOINT", + /* 350 */ "savepoint_opt ::=", + /* 351 */ "cmd ::= create_table create_table_args", + /* 352 */ "table_option_set ::= table_option", + /* 353 */ "columnlist ::= columnlist COMMA columnname carglist", + /* 354 */ "columnlist ::= columnname carglist", + /* 355 */ "nm ::= ID|INDEXED|JOIN_KW", + /* 356 */ "nm ::= STRING", + /* 357 */ "typetoken ::= typename", + /* 358 */ "typename ::= ID|STRING", + /* 359 */ "signed ::= plus_num", + /* 360 */ "signed ::= minus_num", + /* 361 */ "carglist ::= carglist ccons", + /* 362 */ "carglist ::=", + /* 363 */ "ccons ::= NULL onconf", + /* 364 */ "ccons ::= GENERATED ALWAYS AS generated", + /* 365 */ "ccons ::= AS generated", + /* 366 */ "conslist_opt ::= COMMA conslist", + /* 367 */ "conslist ::= conslist tconscomma tcons", + /* 368 */ "conslist ::= tcons", + /* 369 */ "tconscomma ::=", + /* 370 */ "defer_subclause_opt ::= defer_subclause", + /* 371 */ "resolvetype ::= raisetype", + /* 372 */ "selectnowith ::= oneselect", + /* 373 */ "oneselect ::= values", + /* 374 */ "sclp ::= selcollist COMMA", + /* 375 */ "as ::= ID|STRING", + /* 376 */ "indexed_opt ::= indexed_by", + /* 377 */ "returning ::=", + /* 378 */ "expr ::= term", + /* 379 */ "likeop ::= LIKE_KW|MATCH", + /* 380 */ "case_operand ::= expr", + /* 381 */ "exprlist ::= nexprlist", + /* 382 */ "nmnum ::= plus_num", + /* 383 */ "nmnum ::= nm", + /* 384 */ "nmnum ::= ON", + /* 385 */ "nmnum ::= DELETE", + /* 386 */ "nmnum ::= DEFAULT", + /* 387 */ "plus_num ::= INTEGER|FLOAT", + /* 388 */ "foreach_clause ::=", + /* 389 */ "foreach_clause ::= FOR EACH ROW", + /* 390 */ "trnm ::= nm", + /* 391 */ "tridxby ::=", + /* 392 */ "database_kw_opt ::= DATABASE", + /* 393 */ "database_kw_opt ::=", + /* 394 */ "kwcolumn_opt ::=", + /* 395 */ "kwcolumn_opt ::= COLUMNKW", + /* 396 */ "vtabarglist ::= vtabarg", + /* 397 */ "vtabarglist ::= vtabarglist COMMA vtabarg", + /* 398 */ "vtabarg ::= vtabarg vtabargtoken", + /* 399 */ "anylist ::=", + /* 400 */ "anylist ::= anylist LP anylist RP", + /* 401 */ "anylist ::= anylist ANY", + /* 402 */ "with ::=", }; #endif /* NDEBUG */ @@ -166428,233 +170623,231 @@ static const YYCODETYPE yyRuleInfoLhs[] = { 263, /* (175) idlist ::= idlist COMMA nm */ 263, /* (176) idlist ::= nm */ 217, /* (177) expr ::= LP expr RP */ - 217, /* (178) expr ::= ID|INDEXED */ - 217, /* (179) expr ::= JOIN_KW */ - 217, /* (180) expr ::= nm DOT nm */ - 217, /* (181) expr ::= nm DOT nm DOT nm */ - 216, /* (182) term ::= NULL|FLOAT|BLOB */ - 216, /* (183) term ::= STRING */ - 216, /* (184) term ::= INTEGER */ - 217, /* (185) expr ::= VARIABLE */ - 217, /* (186) expr ::= expr COLLATE ID|STRING */ - 217, /* (187) expr ::= CAST LP expr AS typetoken RP */ - 217, /* (188) expr ::= ID|INDEXED LP distinct exprlist RP */ - 217, /* (189) expr ::= ID|INDEXED LP STAR RP */ - 217, /* (190) expr ::= ID|INDEXED LP distinct exprlist RP filter_over */ - 217, /* (191) expr ::= ID|INDEXED LP STAR RP filter_over */ - 216, /* (192) term ::= CTIME_KW */ - 217, /* (193) expr ::= LP nexprlist COMMA expr RP */ - 217, /* (194) expr ::= expr AND expr */ - 217, /* (195) expr ::= expr OR expr */ - 217, /* (196) expr ::= expr LT|GT|GE|LE expr */ - 217, /* (197) expr ::= expr EQ|NE expr */ - 217, /* (198) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ - 217, /* (199) expr ::= expr PLUS|MINUS expr */ - 217, /* (200) expr ::= expr STAR|SLASH|REM expr */ - 217, /* (201) expr ::= expr CONCAT expr */ - 274, /* (202) likeop ::= NOT LIKE_KW|MATCH */ - 217, /* (203) expr ::= expr likeop expr */ - 217, /* (204) expr ::= expr likeop expr ESCAPE expr */ - 217, /* (205) expr ::= expr ISNULL|NOTNULL */ - 217, /* (206) expr ::= expr NOT NULL */ - 217, /* (207) expr ::= expr IS expr */ - 217, /* (208) expr ::= expr IS NOT expr */ - 217, /* (209) expr ::= expr IS NOT DISTINCT FROM expr */ - 217, /* (210) expr ::= expr IS DISTINCT FROM expr */ - 217, /* (211) expr ::= NOT expr */ - 217, /* (212) expr ::= BITNOT expr */ - 217, /* (213) expr ::= PLUS|MINUS expr */ - 217, /* (214) expr ::= expr PTR expr */ - 275, /* (215) between_op ::= BETWEEN */ - 275, /* (216) between_op ::= NOT BETWEEN */ - 217, /* (217) expr ::= expr between_op expr AND expr */ - 276, /* (218) in_op ::= IN */ - 276, /* (219) in_op ::= NOT IN */ - 217, /* (220) expr ::= expr in_op LP exprlist RP */ - 217, /* (221) expr ::= LP select RP */ - 217, /* (222) expr ::= expr in_op LP select RP */ - 217, /* (223) expr ::= expr in_op nm dbnm paren_exprlist */ - 217, /* (224) expr ::= EXISTS LP select RP */ - 217, /* (225) expr ::= CASE case_operand case_exprlist case_else END */ - 279, /* (226) case_exprlist ::= case_exprlist WHEN expr THEN expr */ - 279, /* (227) case_exprlist ::= WHEN expr THEN expr */ - 280, /* (228) case_else ::= ELSE expr */ - 280, /* (229) case_else ::= */ - 278, /* (230) case_operand ::= expr */ - 278, /* (231) case_operand ::= */ - 261, /* (232) exprlist ::= */ - 253, /* (233) nexprlist ::= nexprlist COMMA expr */ - 253, /* (234) nexprlist ::= expr */ - 277, /* (235) paren_exprlist ::= */ - 277, /* (236) paren_exprlist ::= LP exprlist RP */ - 190, /* (237) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ - 281, /* (238) uniqueflag ::= UNIQUE */ - 281, /* (239) uniqueflag ::= */ - 221, /* (240) eidlist_opt ::= */ - 221, /* (241) eidlist_opt ::= LP eidlist RP */ - 232, /* (242) eidlist ::= eidlist COMMA nm collate sortorder */ - 232, /* (243) eidlist ::= nm collate sortorder */ - 282, /* (244) collate ::= */ - 282, /* (245) collate ::= COLLATE ID|STRING */ - 190, /* (246) cmd ::= DROP INDEX ifexists fullname */ - 190, /* (247) cmd ::= VACUUM vinto */ - 190, /* (248) cmd ::= VACUUM nm vinto */ - 283, /* (249) vinto ::= INTO expr */ - 283, /* (250) vinto ::= */ - 190, /* (251) cmd ::= PRAGMA nm dbnm */ - 190, /* (252) cmd ::= PRAGMA nm dbnm EQ nmnum */ - 190, /* (253) cmd ::= PRAGMA nm dbnm LP nmnum RP */ - 190, /* (254) cmd ::= PRAGMA nm dbnm EQ minus_num */ - 190, /* (255) cmd ::= PRAGMA nm dbnm LP minus_num RP */ - 211, /* (256) plus_num ::= PLUS INTEGER|FLOAT */ - 212, /* (257) minus_num ::= MINUS INTEGER|FLOAT */ - 190, /* (258) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ - 285, /* (259) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ - 287, /* (260) trigger_time ::= BEFORE|AFTER */ - 287, /* (261) trigger_time ::= INSTEAD OF */ - 287, /* (262) trigger_time ::= */ - 288, /* (263) trigger_event ::= DELETE|INSERT */ - 288, /* (264) trigger_event ::= UPDATE */ - 288, /* (265) trigger_event ::= UPDATE OF idlist */ - 290, /* (266) when_clause ::= */ - 290, /* (267) when_clause ::= WHEN expr */ - 286, /* (268) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ - 286, /* (269) trigger_cmd_list ::= trigger_cmd SEMI */ - 292, /* (270) trnm ::= nm DOT nm */ - 293, /* (271) tridxby ::= INDEXED BY nm */ - 293, /* (272) tridxby ::= NOT INDEXED */ - 291, /* (273) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ - 291, /* (274) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ - 291, /* (275) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ - 291, /* (276) trigger_cmd ::= scanpt select scanpt */ - 217, /* (277) expr ::= RAISE LP IGNORE RP */ - 217, /* (278) expr ::= RAISE LP raisetype COMMA nm RP */ - 236, /* (279) raisetype ::= ROLLBACK */ - 236, /* (280) raisetype ::= ABORT */ - 236, /* (281) raisetype ::= FAIL */ - 190, /* (282) cmd ::= DROP TRIGGER ifexists fullname */ - 190, /* (283) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ - 190, /* (284) cmd ::= DETACH database_kw_opt expr */ - 295, /* (285) key_opt ::= */ - 295, /* (286) key_opt ::= KEY expr */ - 190, /* (287) cmd ::= REINDEX */ - 190, /* (288) cmd ::= REINDEX nm dbnm */ - 190, /* (289) cmd ::= ANALYZE */ - 190, /* (290) cmd ::= ANALYZE nm dbnm */ - 190, /* (291) cmd ::= ALTER TABLE fullname RENAME TO nm */ - 190, /* (292) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ - 190, /* (293) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ - 296, /* (294) add_column_fullname ::= fullname */ - 190, /* (295) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ - 190, /* (296) cmd ::= create_vtab */ - 190, /* (297) cmd ::= create_vtab LP vtabarglist RP */ - 298, /* (298) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ - 300, /* (299) vtabarg ::= */ - 301, /* (300) vtabargtoken ::= ANY */ - 301, /* (301) vtabargtoken ::= lp anylist RP */ - 302, /* (302) lp ::= LP */ - 266, /* (303) with ::= WITH wqlist */ - 266, /* (304) with ::= WITH RECURSIVE wqlist */ - 305, /* (305) wqas ::= AS */ - 305, /* (306) wqas ::= AS MATERIALIZED */ - 305, /* (307) wqas ::= AS NOT MATERIALIZED */ - 304, /* (308) wqitem ::= nm eidlist_opt wqas LP select RP */ - 241, /* (309) wqlist ::= wqitem */ - 241, /* (310) wqlist ::= wqlist COMMA wqitem */ - 306, /* (311) windowdefn_list ::= windowdefn */ - 306, /* (312) windowdefn_list ::= windowdefn_list COMMA windowdefn */ - 307, /* (313) windowdefn ::= nm AS LP window RP */ - 308, /* (314) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ - 308, /* (315) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ - 308, /* (316) window ::= ORDER BY sortlist frame_opt */ - 308, /* (317) window ::= nm ORDER BY sortlist frame_opt */ - 308, /* (318) window ::= frame_opt */ - 308, /* (319) window ::= nm frame_opt */ - 309, /* (320) frame_opt ::= */ - 309, /* (321) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ - 309, /* (322) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ - 313, /* (323) range_or_rows ::= RANGE|ROWS|GROUPS */ - 315, /* (324) frame_bound_s ::= frame_bound */ - 315, /* (325) frame_bound_s ::= UNBOUNDED PRECEDING */ - 316, /* (326) frame_bound_e ::= frame_bound */ - 316, /* (327) frame_bound_e ::= UNBOUNDED FOLLOWING */ - 314, /* (328) frame_bound ::= expr PRECEDING|FOLLOWING */ - 314, /* (329) frame_bound ::= CURRENT ROW */ - 317, /* (330) frame_exclude_opt ::= */ - 317, /* (331) frame_exclude_opt ::= EXCLUDE frame_exclude */ - 318, /* (332) frame_exclude ::= NO OTHERS */ - 318, /* (333) frame_exclude ::= CURRENT ROW */ - 318, /* (334) frame_exclude ::= GROUP|TIES */ - 251, /* (335) window_clause ::= WINDOW windowdefn_list */ - 273, /* (336) filter_over ::= filter_clause over_clause */ - 273, /* (337) filter_over ::= over_clause */ - 273, /* (338) filter_over ::= filter_clause */ - 312, /* (339) over_clause ::= OVER LP window RP */ - 312, /* (340) over_clause ::= OVER nm */ - 311, /* (341) filter_clause ::= FILTER LP WHERE expr RP */ - 185, /* (342) input ::= cmdlist */ - 186, /* (343) cmdlist ::= cmdlist ecmd */ - 186, /* (344) cmdlist ::= ecmd */ - 187, /* (345) ecmd ::= SEMI */ - 187, /* (346) ecmd ::= cmdx SEMI */ - 187, /* (347) ecmd ::= explain cmdx SEMI */ - 192, /* (348) trans_opt ::= */ - 192, /* (349) trans_opt ::= TRANSACTION */ - 192, /* (350) trans_opt ::= TRANSACTION nm */ - 194, /* (351) savepoint_opt ::= SAVEPOINT */ - 194, /* (352) savepoint_opt ::= */ - 190, /* (353) cmd ::= create_table create_table_args */ - 203, /* (354) table_option_set ::= table_option */ - 201, /* (355) columnlist ::= columnlist COMMA columnname carglist */ - 201, /* (356) columnlist ::= columnname carglist */ - 193, /* (357) nm ::= ID|INDEXED */ - 193, /* (358) nm ::= STRING */ - 193, /* (359) nm ::= JOIN_KW */ - 208, /* (360) typetoken ::= typename */ - 209, /* (361) typename ::= ID|STRING */ - 210, /* (362) signed ::= plus_num */ - 210, /* (363) signed ::= minus_num */ - 207, /* (364) carglist ::= carglist ccons */ - 207, /* (365) carglist ::= */ - 215, /* (366) ccons ::= NULL onconf */ - 215, /* (367) ccons ::= GENERATED ALWAYS AS generated */ - 215, /* (368) ccons ::= AS generated */ - 202, /* (369) conslist_opt ::= COMMA conslist */ - 228, /* (370) conslist ::= conslist tconscomma tcons */ - 228, /* (371) conslist ::= tcons */ - 229, /* (372) tconscomma ::= */ - 233, /* (373) defer_subclause_opt ::= defer_subclause */ - 235, /* (374) resolvetype ::= raisetype */ - 239, /* (375) selectnowith ::= oneselect */ - 240, /* (376) oneselect ::= values */ - 254, /* (377) sclp ::= selcollist COMMA */ - 255, /* (378) as ::= ID|STRING */ - 264, /* (379) indexed_opt ::= indexed_by */ - 272, /* (380) returning ::= */ - 217, /* (381) expr ::= term */ - 274, /* (382) likeop ::= LIKE_KW|MATCH */ - 261, /* (383) exprlist ::= nexprlist */ - 284, /* (384) nmnum ::= plus_num */ - 284, /* (385) nmnum ::= nm */ - 284, /* (386) nmnum ::= ON */ - 284, /* (387) nmnum ::= DELETE */ - 284, /* (388) nmnum ::= DEFAULT */ - 211, /* (389) plus_num ::= INTEGER|FLOAT */ - 289, /* (390) foreach_clause ::= */ - 289, /* (391) foreach_clause ::= FOR EACH ROW */ - 292, /* (392) trnm ::= nm */ - 293, /* (393) tridxby ::= */ - 294, /* (394) database_kw_opt ::= DATABASE */ - 294, /* (395) database_kw_opt ::= */ - 297, /* (396) kwcolumn_opt ::= */ - 297, /* (397) kwcolumn_opt ::= COLUMNKW */ - 299, /* (398) vtabarglist ::= vtabarg */ - 299, /* (399) vtabarglist ::= vtabarglist COMMA vtabarg */ - 300, /* (400) vtabarg ::= vtabarg vtabargtoken */ - 303, /* (401) anylist ::= */ - 303, /* (402) anylist ::= anylist LP anylist RP */ - 303, /* (403) anylist ::= anylist ANY */ - 266, /* (404) with ::= */ + 217, /* (178) expr ::= ID|INDEXED|JOIN_KW */ + 217, /* (179) expr ::= nm DOT nm */ + 217, /* (180) expr ::= nm DOT nm DOT nm */ + 216, /* (181) term ::= NULL|FLOAT|BLOB */ + 216, /* (182) term ::= STRING */ + 216, /* (183) term ::= INTEGER */ + 217, /* (184) expr ::= VARIABLE */ + 217, /* (185) expr ::= expr COLLATE ID|STRING */ + 217, /* (186) expr ::= CAST LP expr AS typetoken RP */ + 217, /* (187) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ + 217, /* (188) expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ + 217, /* (189) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ + 217, /* (190) expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ + 216, /* (191) term ::= CTIME_KW */ + 217, /* (192) expr ::= LP nexprlist COMMA expr RP */ + 217, /* (193) expr ::= expr AND expr */ + 217, /* (194) expr ::= expr OR expr */ + 217, /* (195) expr ::= expr LT|GT|GE|LE expr */ + 217, /* (196) expr ::= expr EQ|NE expr */ + 217, /* (197) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ + 217, /* (198) expr ::= expr PLUS|MINUS expr */ + 217, /* (199) expr ::= expr STAR|SLASH|REM expr */ + 217, /* (200) expr ::= expr CONCAT expr */ + 274, /* (201) likeop ::= NOT LIKE_KW|MATCH */ + 217, /* (202) expr ::= expr likeop expr */ + 217, /* (203) expr ::= expr likeop expr ESCAPE expr */ + 217, /* (204) expr ::= expr ISNULL|NOTNULL */ + 217, /* (205) expr ::= expr NOT NULL */ + 217, /* (206) expr ::= expr IS expr */ + 217, /* (207) expr ::= expr IS NOT expr */ + 217, /* (208) expr ::= expr IS NOT DISTINCT FROM expr */ + 217, /* (209) expr ::= expr IS DISTINCT FROM expr */ + 217, /* (210) expr ::= NOT expr */ + 217, /* (211) expr ::= BITNOT expr */ + 217, /* (212) expr ::= PLUS|MINUS expr */ + 217, /* (213) expr ::= expr PTR expr */ + 275, /* (214) between_op ::= BETWEEN */ + 275, /* (215) between_op ::= NOT BETWEEN */ + 217, /* (216) expr ::= expr between_op expr AND expr */ + 276, /* (217) in_op ::= IN */ + 276, /* (218) in_op ::= NOT IN */ + 217, /* (219) expr ::= expr in_op LP exprlist RP */ + 217, /* (220) expr ::= LP select RP */ + 217, /* (221) expr ::= expr in_op LP select RP */ + 217, /* (222) expr ::= expr in_op nm dbnm paren_exprlist */ + 217, /* (223) expr ::= EXISTS LP select RP */ + 217, /* (224) expr ::= CASE case_operand case_exprlist case_else END */ + 279, /* (225) case_exprlist ::= case_exprlist WHEN expr THEN expr */ + 279, /* (226) case_exprlist ::= WHEN expr THEN expr */ + 280, /* (227) case_else ::= ELSE expr */ + 280, /* (228) case_else ::= */ + 278, /* (229) case_operand ::= */ + 261, /* (230) exprlist ::= */ + 253, /* (231) nexprlist ::= nexprlist COMMA expr */ + 253, /* (232) nexprlist ::= expr */ + 277, /* (233) paren_exprlist ::= */ + 277, /* (234) paren_exprlist ::= LP exprlist RP */ + 190, /* (235) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ + 281, /* (236) uniqueflag ::= UNIQUE */ + 281, /* (237) uniqueflag ::= */ + 221, /* (238) eidlist_opt ::= */ + 221, /* (239) eidlist_opt ::= LP eidlist RP */ + 232, /* (240) eidlist ::= eidlist COMMA nm collate sortorder */ + 232, /* (241) eidlist ::= nm collate sortorder */ + 282, /* (242) collate ::= */ + 282, /* (243) collate ::= COLLATE ID|STRING */ + 190, /* (244) cmd ::= DROP INDEX ifexists fullname */ + 190, /* (245) cmd ::= VACUUM vinto */ + 190, /* (246) cmd ::= VACUUM nm vinto */ + 283, /* (247) vinto ::= INTO expr */ + 283, /* (248) vinto ::= */ + 190, /* (249) cmd ::= PRAGMA nm dbnm */ + 190, /* (250) cmd ::= PRAGMA nm dbnm EQ nmnum */ + 190, /* (251) cmd ::= PRAGMA nm dbnm LP nmnum RP */ + 190, /* (252) cmd ::= PRAGMA nm dbnm EQ minus_num */ + 190, /* (253) cmd ::= PRAGMA nm dbnm LP minus_num RP */ + 211, /* (254) plus_num ::= PLUS INTEGER|FLOAT */ + 212, /* (255) minus_num ::= MINUS INTEGER|FLOAT */ + 190, /* (256) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ + 285, /* (257) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ + 287, /* (258) trigger_time ::= BEFORE|AFTER */ + 287, /* (259) trigger_time ::= INSTEAD OF */ + 287, /* (260) trigger_time ::= */ + 288, /* (261) trigger_event ::= DELETE|INSERT */ + 288, /* (262) trigger_event ::= UPDATE */ + 288, /* (263) trigger_event ::= UPDATE OF idlist */ + 290, /* (264) when_clause ::= */ + 290, /* (265) when_clause ::= WHEN expr */ + 286, /* (266) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ + 286, /* (267) trigger_cmd_list ::= trigger_cmd SEMI */ + 292, /* (268) trnm ::= nm DOT nm */ + 293, /* (269) tridxby ::= INDEXED BY nm */ + 293, /* (270) tridxby ::= NOT INDEXED */ + 291, /* (271) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ + 291, /* (272) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ + 291, /* (273) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ + 291, /* (274) trigger_cmd ::= scanpt select scanpt */ + 217, /* (275) expr ::= RAISE LP IGNORE RP */ + 217, /* (276) expr ::= RAISE LP raisetype COMMA nm RP */ + 236, /* (277) raisetype ::= ROLLBACK */ + 236, /* (278) raisetype ::= ABORT */ + 236, /* (279) raisetype ::= FAIL */ + 190, /* (280) cmd ::= DROP TRIGGER ifexists fullname */ + 190, /* (281) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ + 190, /* (282) cmd ::= DETACH database_kw_opt expr */ + 295, /* (283) key_opt ::= */ + 295, /* (284) key_opt ::= KEY expr */ + 190, /* (285) cmd ::= REINDEX */ + 190, /* (286) cmd ::= REINDEX nm dbnm */ + 190, /* (287) cmd ::= ANALYZE */ + 190, /* (288) cmd ::= ANALYZE nm dbnm */ + 190, /* (289) cmd ::= ALTER TABLE fullname RENAME TO nm */ + 190, /* (290) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ + 190, /* (291) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ + 296, /* (292) add_column_fullname ::= fullname */ + 190, /* (293) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ + 190, /* (294) cmd ::= create_vtab */ + 190, /* (295) cmd ::= create_vtab LP vtabarglist RP */ + 298, /* (296) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ + 300, /* (297) vtabarg ::= */ + 301, /* (298) vtabargtoken ::= ANY */ + 301, /* (299) vtabargtoken ::= lp anylist RP */ + 302, /* (300) lp ::= LP */ + 266, /* (301) with ::= WITH wqlist */ + 266, /* (302) with ::= WITH RECURSIVE wqlist */ + 305, /* (303) wqas ::= AS */ + 305, /* (304) wqas ::= AS MATERIALIZED */ + 305, /* (305) wqas ::= AS NOT MATERIALIZED */ + 304, /* (306) wqitem ::= nm eidlist_opt wqas LP select RP */ + 241, /* (307) wqlist ::= wqitem */ + 241, /* (308) wqlist ::= wqlist COMMA wqitem */ + 306, /* (309) windowdefn_list ::= windowdefn */ + 306, /* (310) windowdefn_list ::= windowdefn_list COMMA windowdefn */ + 307, /* (311) windowdefn ::= nm AS LP window RP */ + 308, /* (312) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ + 308, /* (313) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ + 308, /* (314) window ::= ORDER BY sortlist frame_opt */ + 308, /* (315) window ::= nm ORDER BY sortlist frame_opt */ + 308, /* (316) window ::= frame_opt */ + 308, /* (317) window ::= nm frame_opt */ + 309, /* (318) frame_opt ::= */ + 309, /* (319) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ + 309, /* (320) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ + 313, /* (321) range_or_rows ::= RANGE|ROWS|GROUPS */ + 315, /* (322) frame_bound_s ::= frame_bound */ + 315, /* (323) frame_bound_s ::= UNBOUNDED PRECEDING */ + 316, /* (324) frame_bound_e ::= frame_bound */ + 316, /* (325) frame_bound_e ::= UNBOUNDED FOLLOWING */ + 314, /* (326) frame_bound ::= expr PRECEDING|FOLLOWING */ + 314, /* (327) frame_bound ::= CURRENT ROW */ + 317, /* (328) frame_exclude_opt ::= */ + 317, /* (329) frame_exclude_opt ::= EXCLUDE frame_exclude */ + 318, /* (330) frame_exclude ::= NO OTHERS */ + 318, /* (331) frame_exclude ::= CURRENT ROW */ + 318, /* (332) frame_exclude ::= GROUP|TIES */ + 251, /* (333) window_clause ::= WINDOW windowdefn_list */ + 273, /* (334) filter_over ::= filter_clause over_clause */ + 273, /* (335) filter_over ::= over_clause */ + 273, /* (336) filter_over ::= filter_clause */ + 312, /* (337) over_clause ::= OVER LP window RP */ + 312, /* (338) over_clause ::= OVER nm */ + 311, /* (339) filter_clause ::= FILTER LP WHERE expr RP */ + 185, /* (340) input ::= cmdlist */ + 186, /* (341) cmdlist ::= cmdlist ecmd */ + 186, /* (342) cmdlist ::= ecmd */ + 187, /* (343) ecmd ::= SEMI */ + 187, /* (344) ecmd ::= cmdx SEMI */ + 187, /* (345) ecmd ::= explain cmdx SEMI */ + 192, /* (346) trans_opt ::= */ + 192, /* (347) trans_opt ::= TRANSACTION */ + 192, /* (348) trans_opt ::= TRANSACTION nm */ + 194, /* (349) savepoint_opt ::= SAVEPOINT */ + 194, /* (350) savepoint_opt ::= */ + 190, /* (351) cmd ::= create_table create_table_args */ + 203, /* (352) table_option_set ::= table_option */ + 201, /* (353) columnlist ::= columnlist COMMA columnname carglist */ + 201, /* (354) columnlist ::= columnname carglist */ + 193, /* (355) nm ::= ID|INDEXED|JOIN_KW */ + 193, /* (356) nm ::= STRING */ + 208, /* (357) typetoken ::= typename */ + 209, /* (358) typename ::= ID|STRING */ + 210, /* (359) signed ::= plus_num */ + 210, /* (360) signed ::= minus_num */ + 207, /* (361) carglist ::= carglist ccons */ + 207, /* (362) carglist ::= */ + 215, /* (363) ccons ::= NULL onconf */ + 215, /* (364) ccons ::= GENERATED ALWAYS AS generated */ + 215, /* (365) ccons ::= AS generated */ + 202, /* (366) conslist_opt ::= COMMA conslist */ + 228, /* (367) conslist ::= conslist tconscomma tcons */ + 228, /* (368) conslist ::= tcons */ + 229, /* (369) tconscomma ::= */ + 233, /* (370) defer_subclause_opt ::= defer_subclause */ + 235, /* (371) resolvetype ::= raisetype */ + 239, /* (372) selectnowith ::= oneselect */ + 240, /* (373) oneselect ::= values */ + 254, /* (374) sclp ::= selcollist COMMA */ + 255, /* (375) as ::= ID|STRING */ + 264, /* (376) indexed_opt ::= indexed_by */ + 272, /* (377) returning ::= */ + 217, /* (378) expr ::= term */ + 274, /* (379) likeop ::= LIKE_KW|MATCH */ + 278, /* (380) case_operand ::= expr */ + 261, /* (381) exprlist ::= nexprlist */ + 284, /* (382) nmnum ::= plus_num */ + 284, /* (383) nmnum ::= nm */ + 284, /* (384) nmnum ::= ON */ + 284, /* (385) nmnum ::= DELETE */ + 284, /* (386) nmnum ::= DEFAULT */ + 211, /* (387) plus_num ::= INTEGER|FLOAT */ + 289, /* (388) foreach_clause ::= */ + 289, /* (389) foreach_clause ::= FOR EACH ROW */ + 292, /* (390) trnm ::= nm */ + 293, /* (391) tridxby ::= */ + 294, /* (392) database_kw_opt ::= DATABASE */ + 294, /* (393) database_kw_opt ::= */ + 297, /* (394) kwcolumn_opt ::= */ + 297, /* (395) kwcolumn_opt ::= COLUMNKW */ + 299, /* (396) vtabarglist ::= vtabarg */ + 299, /* (397) vtabarglist ::= vtabarglist COMMA vtabarg */ + 300, /* (398) vtabarg ::= vtabarg vtabargtoken */ + 303, /* (399) anylist ::= */ + 303, /* (400) anylist ::= anylist LP anylist RP */ + 303, /* (401) anylist ::= anylist ANY */ + 266, /* (402) with ::= */ }; /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number @@ -166838,233 +171031,231 @@ static const signed char yyRuleInfoNRhs[] = { -3, /* (175) idlist ::= idlist COMMA nm */ -1, /* (176) idlist ::= nm */ -3, /* (177) expr ::= LP expr RP */ - -1, /* (178) expr ::= ID|INDEXED */ - -1, /* (179) expr ::= JOIN_KW */ - -3, /* (180) expr ::= nm DOT nm */ - -5, /* (181) expr ::= nm DOT nm DOT nm */ - -1, /* (182) term ::= NULL|FLOAT|BLOB */ - -1, /* (183) term ::= STRING */ - -1, /* (184) term ::= INTEGER */ - -1, /* (185) expr ::= VARIABLE */ - -3, /* (186) expr ::= expr COLLATE ID|STRING */ - -6, /* (187) expr ::= CAST LP expr AS typetoken RP */ - -5, /* (188) expr ::= ID|INDEXED LP distinct exprlist RP */ - -4, /* (189) expr ::= ID|INDEXED LP STAR RP */ - -6, /* (190) expr ::= ID|INDEXED LP distinct exprlist RP filter_over */ - -5, /* (191) expr ::= ID|INDEXED LP STAR RP filter_over */ - -1, /* (192) term ::= CTIME_KW */ - -5, /* (193) expr ::= LP nexprlist COMMA expr RP */ - -3, /* (194) expr ::= expr AND expr */ - -3, /* (195) expr ::= expr OR expr */ - -3, /* (196) expr ::= expr LT|GT|GE|LE expr */ - -3, /* (197) expr ::= expr EQ|NE expr */ - -3, /* (198) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ - -3, /* (199) expr ::= expr PLUS|MINUS expr */ - -3, /* (200) expr ::= expr STAR|SLASH|REM expr */ - -3, /* (201) expr ::= expr CONCAT expr */ - -2, /* (202) likeop ::= NOT LIKE_KW|MATCH */ - -3, /* (203) expr ::= expr likeop expr */ - -5, /* (204) expr ::= expr likeop expr ESCAPE expr */ - -2, /* (205) expr ::= expr ISNULL|NOTNULL */ - -3, /* (206) expr ::= expr NOT NULL */ - -3, /* (207) expr ::= expr IS expr */ - -4, /* (208) expr ::= expr IS NOT expr */ - -6, /* (209) expr ::= expr IS NOT DISTINCT FROM expr */ - -5, /* (210) expr ::= expr IS DISTINCT FROM expr */ - -2, /* (211) expr ::= NOT expr */ - -2, /* (212) expr ::= BITNOT expr */ - -2, /* (213) expr ::= PLUS|MINUS expr */ - -3, /* (214) expr ::= expr PTR expr */ - -1, /* (215) between_op ::= BETWEEN */ - -2, /* (216) between_op ::= NOT BETWEEN */ - -5, /* (217) expr ::= expr between_op expr AND expr */ - -1, /* (218) in_op ::= IN */ - -2, /* (219) in_op ::= NOT IN */ - -5, /* (220) expr ::= expr in_op LP exprlist RP */ - -3, /* (221) expr ::= LP select RP */ - -5, /* (222) expr ::= expr in_op LP select RP */ - -5, /* (223) expr ::= expr in_op nm dbnm paren_exprlist */ - -4, /* (224) expr ::= EXISTS LP select RP */ - -5, /* (225) expr ::= CASE case_operand case_exprlist case_else END */ - -5, /* (226) case_exprlist ::= case_exprlist WHEN expr THEN expr */ - -4, /* (227) case_exprlist ::= WHEN expr THEN expr */ - -2, /* (228) case_else ::= ELSE expr */ - 0, /* (229) case_else ::= */ - -1, /* (230) case_operand ::= expr */ - 0, /* (231) case_operand ::= */ - 0, /* (232) exprlist ::= */ - -3, /* (233) nexprlist ::= nexprlist COMMA expr */ - -1, /* (234) nexprlist ::= expr */ - 0, /* (235) paren_exprlist ::= */ - -3, /* (236) paren_exprlist ::= LP exprlist RP */ - -12, /* (237) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ - -1, /* (238) uniqueflag ::= UNIQUE */ - 0, /* (239) uniqueflag ::= */ - 0, /* (240) eidlist_opt ::= */ - -3, /* (241) eidlist_opt ::= LP eidlist RP */ - -5, /* (242) eidlist ::= eidlist COMMA nm collate sortorder */ - -3, /* (243) eidlist ::= nm collate sortorder */ - 0, /* (244) collate ::= */ - -2, /* (245) collate ::= COLLATE ID|STRING */ - -4, /* (246) cmd ::= DROP INDEX ifexists fullname */ - -2, /* (247) cmd ::= VACUUM vinto */ - -3, /* (248) cmd ::= VACUUM nm vinto */ - -2, /* (249) vinto ::= INTO expr */ - 0, /* (250) vinto ::= */ - -3, /* (251) cmd ::= PRAGMA nm dbnm */ - -5, /* (252) cmd ::= PRAGMA nm dbnm EQ nmnum */ - -6, /* (253) cmd ::= PRAGMA nm dbnm LP nmnum RP */ - -5, /* (254) cmd ::= PRAGMA nm dbnm EQ minus_num */ - -6, /* (255) cmd ::= PRAGMA nm dbnm LP minus_num RP */ - -2, /* (256) plus_num ::= PLUS INTEGER|FLOAT */ - -2, /* (257) minus_num ::= MINUS INTEGER|FLOAT */ - -5, /* (258) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ - -11, /* (259) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ - -1, /* (260) trigger_time ::= BEFORE|AFTER */ - -2, /* (261) trigger_time ::= INSTEAD OF */ - 0, /* (262) trigger_time ::= */ - -1, /* (263) trigger_event ::= DELETE|INSERT */ - -1, /* (264) trigger_event ::= UPDATE */ - -3, /* (265) trigger_event ::= UPDATE OF idlist */ - 0, /* (266) when_clause ::= */ - -2, /* (267) when_clause ::= WHEN expr */ - -3, /* (268) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ - -2, /* (269) trigger_cmd_list ::= trigger_cmd SEMI */ - -3, /* (270) trnm ::= nm DOT nm */ - -3, /* (271) tridxby ::= INDEXED BY nm */ - -2, /* (272) tridxby ::= NOT INDEXED */ - -9, /* (273) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ - -8, /* (274) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ - -6, /* (275) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ - -3, /* (276) trigger_cmd ::= scanpt select scanpt */ - -4, /* (277) expr ::= RAISE LP IGNORE RP */ - -6, /* (278) expr ::= RAISE LP raisetype COMMA nm RP */ - -1, /* (279) raisetype ::= ROLLBACK */ - -1, /* (280) raisetype ::= ABORT */ - -1, /* (281) raisetype ::= FAIL */ - -4, /* (282) cmd ::= DROP TRIGGER ifexists fullname */ - -6, /* (283) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ - -3, /* (284) cmd ::= DETACH database_kw_opt expr */ - 0, /* (285) key_opt ::= */ - -2, /* (286) key_opt ::= KEY expr */ - -1, /* (287) cmd ::= REINDEX */ - -3, /* (288) cmd ::= REINDEX nm dbnm */ - -1, /* (289) cmd ::= ANALYZE */ - -3, /* (290) cmd ::= ANALYZE nm dbnm */ - -6, /* (291) cmd ::= ALTER TABLE fullname RENAME TO nm */ - -7, /* (292) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ - -6, /* (293) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ - -1, /* (294) add_column_fullname ::= fullname */ - -8, /* (295) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ - -1, /* (296) cmd ::= create_vtab */ - -4, /* (297) cmd ::= create_vtab LP vtabarglist RP */ - -8, /* (298) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ - 0, /* (299) vtabarg ::= */ - -1, /* (300) vtabargtoken ::= ANY */ - -3, /* (301) vtabargtoken ::= lp anylist RP */ - -1, /* (302) lp ::= LP */ - -2, /* (303) with ::= WITH wqlist */ - -3, /* (304) with ::= WITH RECURSIVE wqlist */ - -1, /* (305) wqas ::= AS */ - -2, /* (306) wqas ::= AS MATERIALIZED */ - -3, /* (307) wqas ::= AS NOT MATERIALIZED */ - -6, /* (308) wqitem ::= nm eidlist_opt wqas LP select RP */ - -1, /* (309) wqlist ::= wqitem */ - -3, /* (310) wqlist ::= wqlist COMMA wqitem */ - -1, /* (311) windowdefn_list ::= windowdefn */ - -3, /* (312) windowdefn_list ::= windowdefn_list COMMA windowdefn */ - -5, /* (313) windowdefn ::= nm AS LP window RP */ - -5, /* (314) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ - -6, /* (315) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ - -4, /* (316) window ::= ORDER BY sortlist frame_opt */ - -5, /* (317) window ::= nm ORDER BY sortlist frame_opt */ - -1, /* (318) window ::= frame_opt */ - -2, /* (319) window ::= nm frame_opt */ - 0, /* (320) frame_opt ::= */ - -3, /* (321) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ - -6, /* (322) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ - -1, /* (323) range_or_rows ::= RANGE|ROWS|GROUPS */ - -1, /* (324) frame_bound_s ::= frame_bound */ - -2, /* (325) frame_bound_s ::= UNBOUNDED PRECEDING */ - -1, /* (326) frame_bound_e ::= frame_bound */ - -2, /* (327) frame_bound_e ::= UNBOUNDED FOLLOWING */ - -2, /* (328) frame_bound ::= expr PRECEDING|FOLLOWING */ - -2, /* (329) frame_bound ::= CURRENT ROW */ - 0, /* (330) frame_exclude_opt ::= */ - -2, /* (331) frame_exclude_opt ::= EXCLUDE frame_exclude */ - -2, /* (332) frame_exclude ::= NO OTHERS */ - -2, /* (333) frame_exclude ::= CURRENT ROW */ - -1, /* (334) frame_exclude ::= GROUP|TIES */ - -2, /* (335) window_clause ::= WINDOW windowdefn_list */ - -2, /* (336) filter_over ::= filter_clause over_clause */ - -1, /* (337) filter_over ::= over_clause */ - -1, /* (338) filter_over ::= filter_clause */ - -4, /* (339) over_clause ::= OVER LP window RP */ - -2, /* (340) over_clause ::= OVER nm */ - -5, /* (341) filter_clause ::= FILTER LP WHERE expr RP */ - -1, /* (342) input ::= cmdlist */ - -2, /* (343) cmdlist ::= cmdlist ecmd */ - -1, /* (344) cmdlist ::= ecmd */ - -1, /* (345) ecmd ::= SEMI */ - -2, /* (346) ecmd ::= cmdx SEMI */ - -3, /* (347) ecmd ::= explain cmdx SEMI */ - 0, /* (348) trans_opt ::= */ - -1, /* (349) trans_opt ::= TRANSACTION */ - -2, /* (350) trans_opt ::= TRANSACTION nm */ - -1, /* (351) savepoint_opt ::= SAVEPOINT */ - 0, /* (352) savepoint_opt ::= */ - -2, /* (353) cmd ::= create_table create_table_args */ - -1, /* (354) table_option_set ::= table_option */ - -4, /* (355) columnlist ::= columnlist COMMA columnname carglist */ - -2, /* (356) columnlist ::= columnname carglist */ - -1, /* (357) nm ::= ID|INDEXED */ - -1, /* (358) nm ::= STRING */ - -1, /* (359) nm ::= JOIN_KW */ - -1, /* (360) typetoken ::= typename */ - -1, /* (361) typename ::= ID|STRING */ - -1, /* (362) signed ::= plus_num */ - -1, /* (363) signed ::= minus_num */ - -2, /* (364) carglist ::= carglist ccons */ - 0, /* (365) carglist ::= */ - -2, /* (366) ccons ::= NULL onconf */ - -4, /* (367) ccons ::= GENERATED ALWAYS AS generated */ - -2, /* (368) ccons ::= AS generated */ - -2, /* (369) conslist_opt ::= COMMA conslist */ - -3, /* (370) conslist ::= conslist tconscomma tcons */ - -1, /* (371) conslist ::= tcons */ - 0, /* (372) tconscomma ::= */ - -1, /* (373) defer_subclause_opt ::= defer_subclause */ - -1, /* (374) resolvetype ::= raisetype */ - -1, /* (375) selectnowith ::= oneselect */ - -1, /* (376) oneselect ::= values */ - -2, /* (377) sclp ::= selcollist COMMA */ - -1, /* (378) as ::= ID|STRING */ - -1, /* (379) indexed_opt ::= indexed_by */ - 0, /* (380) returning ::= */ - -1, /* (381) expr ::= term */ - -1, /* (382) likeop ::= LIKE_KW|MATCH */ - -1, /* (383) exprlist ::= nexprlist */ - -1, /* (384) nmnum ::= plus_num */ - -1, /* (385) nmnum ::= nm */ - -1, /* (386) nmnum ::= ON */ - -1, /* (387) nmnum ::= DELETE */ - -1, /* (388) nmnum ::= DEFAULT */ - -1, /* (389) plus_num ::= INTEGER|FLOAT */ - 0, /* (390) foreach_clause ::= */ - -3, /* (391) foreach_clause ::= FOR EACH ROW */ - -1, /* (392) trnm ::= nm */ - 0, /* (393) tridxby ::= */ - -1, /* (394) database_kw_opt ::= DATABASE */ - 0, /* (395) database_kw_opt ::= */ - 0, /* (396) kwcolumn_opt ::= */ - -1, /* (397) kwcolumn_opt ::= COLUMNKW */ - -1, /* (398) vtabarglist ::= vtabarg */ - -3, /* (399) vtabarglist ::= vtabarglist COMMA vtabarg */ - -2, /* (400) vtabarg ::= vtabarg vtabargtoken */ - 0, /* (401) anylist ::= */ - -4, /* (402) anylist ::= anylist LP anylist RP */ - -2, /* (403) anylist ::= anylist ANY */ - 0, /* (404) with ::= */ + -1, /* (178) expr ::= ID|INDEXED|JOIN_KW */ + -3, /* (179) expr ::= nm DOT nm */ + -5, /* (180) expr ::= nm DOT nm DOT nm */ + -1, /* (181) term ::= NULL|FLOAT|BLOB */ + -1, /* (182) term ::= STRING */ + -1, /* (183) term ::= INTEGER */ + -1, /* (184) expr ::= VARIABLE */ + -3, /* (185) expr ::= expr COLLATE ID|STRING */ + -6, /* (186) expr ::= CAST LP expr AS typetoken RP */ + -5, /* (187) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ + -4, /* (188) expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ + -6, /* (189) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ + -5, /* (190) expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ + -1, /* (191) term ::= CTIME_KW */ + -5, /* (192) expr ::= LP nexprlist COMMA expr RP */ + -3, /* (193) expr ::= expr AND expr */ + -3, /* (194) expr ::= expr OR expr */ + -3, /* (195) expr ::= expr LT|GT|GE|LE expr */ + -3, /* (196) expr ::= expr EQ|NE expr */ + -3, /* (197) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ + -3, /* (198) expr ::= expr PLUS|MINUS expr */ + -3, /* (199) expr ::= expr STAR|SLASH|REM expr */ + -3, /* (200) expr ::= expr CONCAT expr */ + -2, /* (201) likeop ::= NOT LIKE_KW|MATCH */ + -3, /* (202) expr ::= expr likeop expr */ + -5, /* (203) expr ::= expr likeop expr ESCAPE expr */ + -2, /* (204) expr ::= expr ISNULL|NOTNULL */ + -3, /* (205) expr ::= expr NOT NULL */ + -3, /* (206) expr ::= expr IS expr */ + -4, /* (207) expr ::= expr IS NOT expr */ + -6, /* (208) expr ::= expr IS NOT DISTINCT FROM expr */ + -5, /* (209) expr ::= expr IS DISTINCT FROM expr */ + -2, /* (210) expr ::= NOT expr */ + -2, /* (211) expr ::= BITNOT expr */ + -2, /* (212) expr ::= PLUS|MINUS expr */ + -3, /* (213) expr ::= expr PTR expr */ + -1, /* (214) between_op ::= BETWEEN */ + -2, /* (215) between_op ::= NOT BETWEEN */ + -5, /* (216) expr ::= expr between_op expr AND expr */ + -1, /* (217) in_op ::= IN */ + -2, /* (218) in_op ::= NOT IN */ + -5, /* (219) expr ::= expr in_op LP exprlist RP */ + -3, /* (220) expr ::= LP select RP */ + -5, /* (221) expr ::= expr in_op LP select RP */ + -5, /* (222) expr ::= expr in_op nm dbnm paren_exprlist */ + -4, /* (223) expr ::= EXISTS LP select RP */ + -5, /* (224) expr ::= CASE case_operand case_exprlist case_else END */ + -5, /* (225) case_exprlist ::= case_exprlist WHEN expr THEN expr */ + -4, /* (226) case_exprlist ::= WHEN expr THEN expr */ + -2, /* (227) case_else ::= ELSE expr */ + 0, /* (228) case_else ::= */ + 0, /* (229) case_operand ::= */ + 0, /* (230) exprlist ::= */ + -3, /* (231) nexprlist ::= nexprlist COMMA expr */ + -1, /* (232) nexprlist ::= expr */ + 0, /* (233) paren_exprlist ::= */ + -3, /* (234) paren_exprlist ::= LP exprlist RP */ + -12, /* (235) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ + -1, /* (236) uniqueflag ::= UNIQUE */ + 0, /* (237) uniqueflag ::= */ + 0, /* (238) eidlist_opt ::= */ + -3, /* (239) eidlist_opt ::= LP eidlist RP */ + -5, /* (240) eidlist ::= eidlist COMMA nm collate sortorder */ + -3, /* (241) eidlist ::= nm collate sortorder */ + 0, /* (242) collate ::= */ + -2, /* (243) collate ::= COLLATE ID|STRING */ + -4, /* (244) cmd ::= DROP INDEX ifexists fullname */ + -2, /* (245) cmd ::= VACUUM vinto */ + -3, /* (246) cmd ::= VACUUM nm vinto */ + -2, /* (247) vinto ::= INTO expr */ + 0, /* (248) vinto ::= */ + -3, /* (249) cmd ::= PRAGMA nm dbnm */ + -5, /* (250) cmd ::= PRAGMA nm dbnm EQ nmnum */ + -6, /* (251) cmd ::= PRAGMA nm dbnm LP nmnum RP */ + -5, /* (252) cmd ::= PRAGMA nm dbnm EQ minus_num */ + -6, /* (253) cmd ::= PRAGMA nm dbnm LP minus_num RP */ + -2, /* (254) plus_num ::= PLUS INTEGER|FLOAT */ + -2, /* (255) minus_num ::= MINUS INTEGER|FLOAT */ + -5, /* (256) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ + -11, /* (257) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ + -1, /* (258) trigger_time ::= BEFORE|AFTER */ + -2, /* (259) trigger_time ::= INSTEAD OF */ + 0, /* (260) trigger_time ::= */ + -1, /* (261) trigger_event ::= DELETE|INSERT */ + -1, /* (262) trigger_event ::= UPDATE */ + -3, /* (263) trigger_event ::= UPDATE OF idlist */ + 0, /* (264) when_clause ::= */ + -2, /* (265) when_clause ::= WHEN expr */ + -3, /* (266) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ + -2, /* (267) trigger_cmd_list ::= trigger_cmd SEMI */ + -3, /* (268) trnm ::= nm DOT nm */ + -3, /* (269) tridxby ::= INDEXED BY nm */ + -2, /* (270) tridxby ::= NOT INDEXED */ + -9, /* (271) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ + -8, /* (272) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ + -6, /* (273) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ + -3, /* (274) trigger_cmd ::= scanpt select scanpt */ + -4, /* (275) expr ::= RAISE LP IGNORE RP */ + -6, /* (276) expr ::= RAISE LP raisetype COMMA nm RP */ + -1, /* (277) raisetype ::= ROLLBACK */ + -1, /* (278) raisetype ::= ABORT */ + -1, /* (279) raisetype ::= FAIL */ + -4, /* (280) cmd ::= DROP TRIGGER ifexists fullname */ + -6, /* (281) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ + -3, /* (282) cmd ::= DETACH database_kw_opt expr */ + 0, /* (283) key_opt ::= */ + -2, /* (284) key_opt ::= KEY expr */ + -1, /* (285) cmd ::= REINDEX */ + -3, /* (286) cmd ::= REINDEX nm dbnm */ + -1, /* (287) cmd ::= ANALYZE */ + -3, /* (288) cmd ::= ANALYZE nm dbnm */ + -6, /* (289) cmd ::= ALTER TABLE fullname RENAME TO nm */ + -7, /* (290) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ + -6, /* (291) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ + -1, /* (292) add_column_fullname ::= fullname */ + -8, /* (293) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ + -1, /* (294) cmd ::= create_vtab */ + -4, /* (295) cmd ::= create_vtab LP vtabarglist RP */ + -8, /* (296) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ + 0, /* (297) vtabarg ::= */ + -1, /* (298) vtabargtoken ::= ANY */ + -3, /* (299) vtabargtoken ::= lp anylist RP */ + -1, /* (300) lp ::= LP */ + -2, /* (301) with ::= WITH wqlist */ + -3, /* (302) with ::= WITH RECURSIVE wqlist */ + -1, /* (303) wqas ::= AS */ + -2, /* (304) wqas ::= AS MATERIALIZED */ + -3, /* (305) wqas ::= AS NOT MATERIALIZED */ + -6, /* (306) wqitem ::= nm eidlist_opt wqas LP select RP */ + -1, /* (307) wqlist ::= wqitem */ + -3, /* (308) wqlist ::= wqlist COMMA wqitem */ + -1, /* (309) windowdefn_list ::= windowdefn */ + -3, /* (310) windowdefn_list ::= windowdefn_list COMMA windowdefn */ + -5, /* (311) windowdefn ::= nm AS LP window RP */ + -5, /* (312) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ + -6, /* (313) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ + -4, /* (314) window ::= ORDER BY sortlist frame_opt */ + -5, /* (315) window ::= nm ORDER BY sortlist frame_opt */ + -1, /* (316) window ::= frame_opt */ + -2, /* (317) window ::= nm frame_opt */ + 0, /* (318) frame_opt ::= */ + -3, /* (319) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ + -6, /* (320) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ + -1, /* (321) range_or_rows ::= RANGE|ROWS|GROUPS */ + -1, /* (322) frame_bound_s ::= frame_bound */ + -2, /* (323) frame_bound_s ::= UNBOUNDED PRECEDING */ + -1, /* (324) frame_bound_e ::= frame_bound */ + -2, /* (325) frame_bound_e ::= UNBOUNDED FOLLOWING */ + -2, /* (326) frame_bound ::= expr PRECEDING|FOLLOWING */ + -2, /* (327) frame_bound ::= CURRENT ROW */ + 0, /* (328) frame_exclude_opt ::= */ + -2, /* (329) frame_exclude_opt ::= EXCLUDE frame_exclude */ + -2, /* (330) frame_exclude ::= NO OTHERS */ + -2, /* (331) frame_exclude ::= CURRENT ROW */ + -1, /* (332) frame_exclude ::= GROUP|TIES */ + -2, /* (333) window_clause ::= WINDOW windowdefn_list */ + -2, /* (334) filter_over ::= filter_clause over_clause */ + -1, /* (335) filter_over ::= over_clause */ + -1, /* (336) filter_over ::= filter_clause */ + -4, /* (337) over_clause ::= OVER LP window RP */ + -2, /* (338) over_clause ::= OVER nm */ + -5, /* (339) filter_clause ::= FILTER LP WHERE expr RP */ + -1, /* (340) input ::= cmdlist */ + -2, /* (341) cmdlist ::= cmdlist ecmd */ + -1, /* (342) cmdlist ::= ecmd */ + -1, /* (343) ecmd ::= SEMI */ + -2, /* (344) ecmd ::= cmdx SEMI */ + -3, /* (345) ecmd ::= explain cmdx SEMI */ + 0, /* (346) trans_opt ::= */ + -1, /* (347) trans_opt ::= TRANSACTION */ + -2, /* (348) trans_opt ::= TRANSACTION nm */ + -1, /* (349) savepoint_opt ::= SAVEPOINT */ + 0, /* (350) savepoint_opt ::= */ + -2, /* (351) cmd ::= create_table create_table_args */ + -1, /* (352) table_option_set ::= table_option */ + -4, /* (353) columnlist ::= columnlist COMMA columnname carglist */ + -2, /* (354) columnlist ::= columnname carglist */ + -1, /* (355) nm ::= ID|INDEXED|JOIN_KW */ + -1, /* (356) nm ::= STRING */ + -1, /* (357) typetoken ::= typename */ + -1, /* (358) typename ::= ID|STRING */ + -1, /* (359) signed ::= plus_num */ + -1, /* (360) signed ::= minus_num */ + -2, /* (361) carglist ::= carglist ccons */ + 0, /* (362) carglist ::= */ + -2, /* (363) ccons ::= NULL onconf */ + -4, /* (364) ccons ::= GENERATED ALWAYS AS generated */ + -2, /* (365) ccons ::= AS generated */ + -2, /* (366) conslist_opt ::= COMMA conslist */ + -3, /* (367) conslist ::= conslist tconscomma tcons */ + -1, /* (368) conslist ::= tcons */ + 0, /* (369) tconscomma ::= */ + -1, /* (370) defer_subclause_opt ::= defer_subclause */ + -1, /* (371) resolvetype ::= raisetype */ + -1, /* (372) selectnowith ::= oneselect */ + -1, /* (373) oneselect ::= values */ + -2, /* (374) sclp ::= selcollist COMMA */ + -1, /* (375) as ::= ID|STRING */ + -1, /* (376) indexed_opt ::= indexed_by */ + 0, /* (377) returning ::= */ + -1, /* (378) expr ::= term */ + -1, /* (379) likeop ::= LIKE_KW|MATCH */ + -1, /* (380) case_operand ::= expr */ + -1, /* (381) exprlist ::= nexprlist */ + -1, /* (382) nmnum ::= plus_num */ + -1, /* (383) nmnum ::= nm */ + -1, /* (384) nmnum ::= ON */ + -1, /* (385) nmnum ::= DELETE */ + -1, /* (386) nmnum ::= DEFAULT */ + -1, /* (387) plus_num ::= INTEGER|FLOAT */ + 0, /* (388) foreach_clause ::= */ + -3, /* (389) foreach_clause ::= FOR EACH ROW */ + -1, /* (390) trnm ::= nm */ + 0, /* (391) tridxby ::= */ + -1, /* (392) database_kw_opt ::= DATABASE */ + 0, /* (393) database_kw_opt ::= */ + 0, /* (394) kwcolumn_opt ::= */ + -1, /* (395) kwcolumn_opt ::= COLUMNKW */ + -1, /* (396) vtabarglist ::= vtabarg */ + -3, /* (397) vtabarglist ::= vtabarglist COMMA vtabarg */ + -2, /* (398) vtabarg ::= vtabarg vtabargtoken */ + 0, /* (399) anylist ::= */ + -4, /* (400) anylist ::= anylist LP anylist RP */ + -2, /* (401) anylist ::= anylist ANY */ + 0, /* (402) with ::= */ }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -167124,7 +171315,7 @@ static YYACTIONTYPE yy_reduce( case 5: /* transtype ::= DEFERRED */ case 6: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==6); case 7: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==7); - case 323: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==323); + case 321: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==321); {yymsp[0].minor.yy394 = yymsp[0].major; /*A-overwrites-X*/} break; case 8: /* cmd ::= COMMIT|END trans_opt */ @@ -167161,7 +171352,7 @@ static YYACTIONTYPE yy_reduce( case 72: /* defer_subclause_opt ::= */ yytestcase(yyruleno==72); case 81: /* ifexists ::= */ yytestcase(yyruleno==81); case 98: /* distinct ::= */ yytestcase(yyruleno==98); - case 244: /* collate ::= */ yytestcase(yyruleno==244); + case 242: /* collate ::= */ yytestcase(yyruleno==242); {yymsp[1].minor.yy394 = 0;} break; case 16: /* ifnotexists ::= IF NOT EXISTS */ @@ -167345,9 +171536,9 @@ static YYACTIONTYPE yy_reduce( break; case 63: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ case 80: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==80); - case 216: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==216); - case 219: /* in_op ::= NOT IN */ yytestcase(yyruleno==219); - case 245: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==245); + case 215: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==215); + case 218: /* in_op ::= NOT IN */ yytestcase(yyruleno==218); + case 243: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==243); {yymsp[-1].minor.yy394 = 1;} break; case 64: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ @@ -167497,9 +171688,9 @@ static YYACTIONTYPE yy_reduce( case 99: /* sclp ::= */ case 132: /* orderby_opt ::= */ yytestcase(yyruleno==132); case 142: /* groupby_opt ::= */ yytestcase(yyruleno==142); - case 232: /* exprlist ::= */ yytestcase(yyruleno==232); - case 235: /* paren_exprlist ::= */ yytestcase(yyruleno==235); - case 240: /* eidlist_opt ::= */ yytestcase(yyruleno==240); + case 230: /* exprlist ::= */ yytestcase(yyruleno==230); + case 233: /* paren_exprlist ::= */ yytestcase(yyruleno==233); + case 238: /* eidlist_opt ::= */ yytestcase(yyruleno==238); {yymsp[1].minor.yy322 = 0;} break; case 100: /* selcollist ::= sclp scanpt expr scanpt as */ @@ -167525,8 +171716,8 @@ static YYACTIONTYPE yy_reduce( break; case 103: /* as ::= AS nm */ case 115: /* dbnm ::= DOT nm */ yytestcase(yyruleno==115); - case 256: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==256); - case 257: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==257); + case 254: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==254); + case 255: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==255); {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;} break; case 105: /* from ::= */ @@ -167570,7 +171761,7 @@ static YYACTIONTYPE yy_reduce( { if( yymsp[-5].minor.yy131==0 && yymsp[-1].minor.yy0.n==0 && yymsp[0].minor.yy561.pOn==0 && yymsp[0].minor.yy561.pUsing==0 ){ yymsp[-5].minor.yy131 = yymsp[-3].minor.yy131; - }else if( yymsp[-3].minor.yy131->nSrc==1 ){ + }else if( ALWAYS(yymsp[-3].minor.yy131!=0) && yymsp[-3].minor.yy131->nSrc==1 ){ yymsp[-5].minor.yy131 = sqlite3SrcListAppendFromTerm(pParse,yymsp[-5].minor.yy131,0,0,&yymsp[-1].minor.yy0,0,&yymsp[0].minor.yy561); if( yymsp[-5].minor.yy131 ){ SrcItem *pNew = &yymsp[-5].minor.yy131->a[yymsp[-5].minor.yy131->nSrc-1]; @@ -167698,16 +171889,16 @@ static YYACTIONTYPE yy_reduce( case 146: /* limit_opt ::= */ yytestcase(yyruleno==146); case 151: /* where_opt ::= */ yytestcase(yyruleno==151); case 153: /* where_opt_ret ::= */ yytestcase(yyruleno==153); - case 229: /* case_else ::= */ yytestcase(yyruleno==229); - case 231: /* case_operand ::= */ yytestcase(yyruleno==231); - case 250: /* vinto ::= */ yytestcase(yyruleno==250); + case 228: /* case_else ::= */ yytestcase(yyruleno==228); + case 229: /* case_operand ::= */ yytestcase(yyruleno==229); + case 248: /* vinto ::= */ yytestcase(yyruleno==248); {yymsp[1].minor.yy528 = 0;} break; case 145: /* having_opt ::= HAVING expr */ case 152: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==152); case 154: /* where_opt_ret ::= WHERE expr */ yytestcase(yyruleno==154); - case 228: /* case_else ::= ELSE expr */ yytestcase(yyruleno==228); - case 249: /* vinto ::= INTO expr */ yytestcase(yyruleno==249); + case 227: /* case_else ::= ELSE expr */ yytestcase(yyruleno==227); + case 247: /* vinto ::= INTO expr */ yytestcase(yyruleno==247); {yymsp[-1].minor.yy528 = yymsp[0].minor.yy528;} break; case 147: /* limit_opt ::= LIMIT expr */ @@ -167819,11 +172010,10 @@ static YYACTIONTYPE yy_reduce( case 177: /* expr ::= LP expr RP */ {yymsp[-2].minor.yy528 = yymsp[-1].minor.yy528;} break; - case 178: /* expr ::= ID|INDEXED */ - case 179: /* expr ::= JOIN_KW */ yytestcase(yyruleno==179); + case 178: /* expr ::= ID|INDEXED|JOIN_KW */ {yymsp[0].minor.yy528=tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); /*A-overwrites-X*/} break; - case 180: /* expr ::= nm DOT nm */ + case 179: /* expr ::= nm DOT nm */ { Expr *temp1 = tokenExpr(pParse,TK_ID,yymsp[-2].minor.yy0); Expr *temp2 = tokenExpr(pParse,TK_ID,yymsp[0].minor.yy0); @@ -167831,7 +172021,7 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy528 = yylhsminor.yy528; break; - case 181: /* expr ::= nm DOT nm DOT nm */ + case 180: /* expr ::= nm DOT nm DOT nm */ { Expr *temp1 = tokenExpr(pParse,TK_ID,yymsp[-4].minor.yy0); Expr *temp2 = tokenExpr(pParse,TK_ID,yymsp[-2].minor.yy0); @@ -167844,18 +172034,18 @@ static YYACTIONTYPE yy_reduce( } yymsp[-4].minor.yy528 = yylhsminor.yy528; break; - case 182: /* term ::= NULL|FLOAT|BLOB */ - case 183: /* term ::= STRING */ yytestcase(yyruleno==183); + case 181: /* term ::= NULL|FLOAT|BLOB */ + case 182: /* term ::= STRING */ yytestcase(yyruleno==182); {yymsp[0].minor.yy528=tokenExpr(pParse,yymsp[0].major,yymsp[0].minor.yy0); /*A-overwrites-X*/} break; - case 184: /* term ::= INTEGER */ + case 183: /* term ::= INTEGER */ { yylhsminor.yy528 = sqlite3ExprAlloc(pParse->db, TK_INTEGER, &yymsp[0].minor.yy0, 1); if( yylhsminor.yy528 ) yylhsminor.yy528->w.iOfst = (int)(yymsp[0].minor.yy0.z - pParse->zTail); } yymsp[0].minor.yy528 = yylhsminor.yy528; break; - case 185: /* expr ::= VARIABLE */ + case 184: /* expr ::= VARIABLE */ { if( !(yymsp[0].minor.yy0.z[0]=='#' && sqlite3Isdigit(yymsp[0].minor.yy0.z[1])) ){ u32 n = yymsp[0].minor.yy0.n; @@ -167877,50 +172067,50 @@ static YYACTIONTYPE yy_reduce( } } break; - case 186: /* expr ::= expr COLLATE ID|STRING */ + case 185: /* expr ::= expr COLLATE ID|STRING */ { yymsp[-2].minor.yy528 = sqlite3ExprAddCollateToken(pParse, yymsp[-2].minor.yy528, &yymsp[0].minor.yy0, 1); } break; - case 187: /* expr ::= CAST LP expr AS typetoken RP */ + case 186: /* expr ::= CAST LP expr AS typetoken RP */ { yymsp[-5].minor.yy528 = sqlite3ExprAlloc(pParse->db, TK_CAST, &yymsp[-1].minor.yy0, 1); sqlite3ExprAttachSubtrees(pParse->db, yymsp[-5].minor.yy528, yymsp[-3].minor.yy528, 0); } break; - case 188: /* expr ::= ID|INDEXED LP distinct exprlist RP */ + case 187: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ { yylhsminor.yy528 = sqlite3ExprFunction(pParse, yymsp[-1].minor.yy322, &yymsp[-4].minor.yy0, yymsp[-2].minor.yy394); } yymsp[-4].minor.yy528 = yylhsminor.yy528; break; - case 189: /* expr ::= ID|INDEXED LP STAR RP */ + case 188: /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ { yylhsminor.yy528 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0); } yymsp[-3].minor.yy528 = yylhsminor.yy528; break; - case 190: /* expr ::= ID|INDEXED LP distinct exprlist RP filter_over */ + case 189: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ { yylhsminor.yy528 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy322, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy394); sqlite3WindowAttach(pParse, yylhsminor.yy528, yymsp[0].minor.yy41); } yymsp[-5].minor.yy528 = yylhsminor.yy528; break; - case 191: /* expr ::= ID|INDEXED LP STAR RP filter_over */ + case 190: /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ { yylhsminor.yy528 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0); sqlite3WindowAttach(pParse, yylhsminor.yy528, yymsp[0].minor.yy41); } yymsp[-4].minor.yy528 = yylhsminor.yy528; break; - case 192: /* term ::= CTIME_KW */ + case 191: /* term ::= CTIME_KW */ { yylhsminor.yy528 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0); } yymsp[0].minor.yy528 = yylhsminor.yy528; break; - case 193: /* expr ::= LP nexprlist COMMA expr RP */ + case 192: /* expr ::= LP nexprlist COMMA expr RP */ { ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy322, yymsp[-1].minor.yy528); yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0); @@ -167934,22 +172124,22 @@ static YYACTIONTYPE yy_reduce( } } break; - case 194: /* expr ::= expr AND expr */ + case 193: /* expr ::= expr AND expr */ {yymsp[-2].minor.yy528=sqlite3ExprAnd(pParse,yymsp[-2].minor.yy528,yymsp[0].minor.yy528);} break; - case 195: /* expr ::= expr OR expr */ - case 196: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==196); - case 197: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==197); - case 198: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==198); - case 199: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==199); - case 200: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==200); - case 201: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==201); + case 194: /* expr ::= expr OR expr */ + case 195: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==195); + case 196: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==196); + case 197: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==197); + case 198: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==198); + case 199: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==199); + case 200: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==200); {yymsp[-2].minor.yy528=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy528,yymsp[0].minor.yy528);} break; - case 202: /* likeop ::= NOT LIKE_KW|MATCH */ + case 201: /* likeop ::= NOT LIKE_KW|MATCH */ {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/} break; - case 203: /* expr ::= expr likeop expr */ + case 202: /* expr ::= expr likeop expr */ { ExprList *pList; int bNot = yymsp[-1].minor.yy0.n & 0x80000000; @@ -167961,7 +172151,7 @@ static YYACTIONTYPE yy_reduce( if( yymsp[-2].minor.yy528 ) yymsp[-2].minor.yy528->flags |= EP_InfixFunc; } break; - case 204: /* expr ::= expr likeop expr ESCAPE expr */ + case 203: /* expr ::= expr likeop expr ESCAPE expr */ { ExprList *pList; int bNot = yymsp[-3].minor.yy0.n & 0x80000000; @@ -167974,47 +172164,47 @@ static YYACTIONTYPE yy_reduce( if( yymsp[-4].minor.yy528 ) yymsp[-4].minor.yy528->flags |= EP_InfixFunc; } break; - case 205: /* expr ::= expr ISNULL|NOTNULL */ + case 204: /* expr ::= expr ISNULL|NOTNULL */ {yymsp[-1].minor.yy528 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy528,0);} break; - case 206: /* expr ::= expr NOT NULL */ + case 205: /* expr ::= expr NOT NULL */ {yymsp[-2].minor.yy528 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy528,0);} break; - case 207: /* expr ::= expr IS expr */ + case 206: /* expr ::= expr IS expr */ { yymsp[-2].minor.yy528 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy528,yymsp[0].minor.yy528); binaryToUnaryIfNull(pParse, yymsp[0].minor.yy528, yymsp[-2].minor.yy528, TK_ISNULL); } break; - case 208: /* expr ::= expr IS NOT expr */ + case 207: /* expr ::= expr IS NOT expr */ { yymsp[-3].minor.yy528 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy528,yymsp[0].minor.yy528); binaryToUnaryIfNull(pParse, yymsp[0].minor.yy528, yymsp[-3].minor.yy528, TK_NOTNULL); } break; - case 209: /* expr ::= expr IS NOT DISTINCT FROM expr */ + case 208: /* expr ::= expr IS NOT DISTINCT FROM expr */ { yymsp[-5].minor.yy528 = sqlite3PExpr(pParse,TK_IS,yymsp[-5].minor.yy528,yymsp[0].minor.yy528); binaryToUnaryIfNull(pParse, yymsp[0].minor.yy528, yymsp[-5].minor.yy528, TK_ISNULL); } break; - case 210: /* expr ::= expr IS DISTINCT FROM expr */ + case 209: /* expr ::= expr IS DISTINCT FROM expr */ { yymsp[-4].minor.yy528 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-4].minor.yy528,yymsp[0].minor.yy528); binaryToUnaryIfNull(pParse, yymsp[0].minor.yy528, yymsp[-4].minor.yy528, TK_NOTNULL); } break; - case 211: /* expr ::= NOT expr */ - case 212: /* expr ::= BITNOT expr */ yytestcase(yyruleno==212); + case 210: /* expr ::= NOT expr */ + case 211: /* expr ::= BITNOT expr */ yytestcase(yyruleno==211); {yymsp[-1].minor.yy528 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy528, 0);/*A-overwrites-B*/} break; - case 213: /* expr ::= PLUS|MINUS expr */ + case 212: /* expr ::= PLUS|MINUS expr */ { yymsp[-1].minor.yy528 = sqlite3PExpr(pParse, yymsp[-1].major==TK_PLUS ? TK_UPLUS : TK_UMINUS, yymsp[0].minor.yy528, 0); /*A-overwrites-B*/ } break; - case 214: /* expr ::= expr PTR expr */ + case 213: /* expr ::= expr PTR expr */ { ExprList *pList = sqlite3ExprListAppend(pParse, 0, yymsp[-2].minor.yy528); pList = sqlite3ExprListAppend(pParse, pList, yymsp[0].minor.yy528); @@ -168022,11 +172212,11 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy528 = yylhsminor.yy528; break; - case 215: /* between_op ::= BETWEEN */ - case 218: /* in_op ::= IN */ yytestcase(yyruleno==218); + case 214: /* between_op ::= BETWEEN */ + case 217: /* in_op ::= IN */ yytestcase(yyruleno==217); {yymsp[0].minor.yy394 = 0;} break; - case 217: /* expr ::= expr between_op expr AND expr */ + case 216: /* expr ::= expr between_op expr AND expr */ { ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy528); pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy528); @@ -168039,7 +172229,7 @@ static YYACTIONTYPE yy_reduce( if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0); } break; - case 220: /* expr ::= expr in_op LP exprlist RP */ + case 219: /* expr ::= expr in_op LP exprlist RP */ { if( yymsp[-1].minor.yy322==0 ){ /* Expressions of the form @@ -168060,6 +172250,11 @@ static YYACTIONTYPE yy_reduce( sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy322); pRHS = sqlite3PExpr(pParse, TK_UPLUS, pRHS, 0); yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_EQ, yymsp[-4].minor.yy528, pRHS); + }else if( yymsp[-1].minor.yy322->nExpr==1 && pRHS->op==TK_SELECT ){ + yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy528, 0); + sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy528, pRHS->x.pSelect); + pRHS->x.pSelect = 0; + sqlite3ExprListDelete(pParse->db, yymsp[-1].minor.yy322); }else{ yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy528, 0); if( yymsp[-4].minor.yy528==0 ){ @@ -168080,20 +172275,20 @@ static YYACTIONTYPE yy_reduce( } } break; - case 221: /* expr ::= LP select RP */ + case 220: /* expr ::= LP select RP */ { yymsp[-2].minor.yy528 = sqlite3PExpr(pParse, TK_SELECT, 0, 0); sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy528, yymsp[-1].minor.yy47); } break; - case 222: /* expr ::= expr in_op LP select RP */ + case 221: /* expr ::= expr in_op LP select RP */ { yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy528, 0); sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy528, yymsp[-1].minor.yy47); if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0); } break; - case 223: /* expr ::= expr in_op nm dbnm paren_exprlist */ + case 222: /* expr ::= expr in_op nm dbnm paren_exprlist */ { SrcList *pSrc = sqlite3SrcListAppend(pParse, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0); @@ -168103,14 +172298,14 @@ static YYACTIONTYPE yy_reduce( if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0); } break; - case 224: /* expr ::= EXISTS LP select RP */ + case 223: /* expr ::= EXISTS LP select RP */ { Expr *p; p = yymsp[-3].minor.yy528 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0); sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy47); } break; - case 225: /* expr ::= CASE case_operand case_exprlist case_else END */ + case 224: /* expr ::= CASE case_operand case_exprlist case_else END */ { yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy528, 0); if( yymsp[-4].minor.yy528 ){ @@ -168122,32 +172317,29 @@ static YYACTIONTYPE yy_reduce( } } break; - case 226: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ + case 225: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ { yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[-2].minor.yy528); yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[0].minor.yy528); } break; - case 227: /* case_exprlist ::= WHEN expr THEN expr */ + case 226: /* case_exprlist ::= WHEN expr THEN expr */ { yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy528); yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy322, yymsp[0].minor.yy528); } break; - case 230: /* case_operand ::= expr */ -{yymsp[0].minor.yy528 = yymsp[0].minor.yy528; /*A-overwrites-X*/} - break; - case 233: /* nexprlist ::= nexprlist COMMA expr */ + case 231: /* nexprlist ::= nexprlist COMMA expr */ {yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[0].minor.yy528);} break; - case 234: /* nexprlist ::= expr */ + case 232: /* nexprlist ::= expr */ {yymsp[0].minor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy528); /*A-overwrites-Y*/} break; - case 236: /* paren_exprlist ::= LP exprlist RP */ - case 241: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==241); + case 234: /* paren_exprlist ::= LP exprlist RP */ + case 239: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==239); {yymsp[-2].minor.yy322 = yymsp[-1].minor.yy322;} break; - case 237: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ + case 235: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ { sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy322, yymsp[-10].minor.yy394, @@ -168157,48 +172349,48 @@ static YYACTIONTYPE yy_reduce( } } break; - case 238: /* uniqueflag ::= UNIQUE */ - case 280: /* raisetype ::= ABORT */ yytestcase(yyruleno==280); + case 236: /* uniqueflag ::= UNIQUE */ + case 278: /* raisetype ::= ABORT */ yytestcase(yyruleno==278); {yymsp[0].minor.yy394 = OE_Abort;} break; - case 239: /* uniqueflag ::= */ + case 237: /* uniqueflag ::= */ {yymsp[1].minor.yy394 = OE_None;} break; - case 242: /* eidlist ::= eidlist COMMA nm collate sortorder */ + case 240: /* eidlist ::= eidlist COMMA nm collate sortorder */ { yymsp[-4].minor.yy322 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy322, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy394, yymsp[0].minor.yy394); } break; - case 243: /* eidlist ::= nm collate sortorder */ + case 241: /* eidlist ::= nm collate sortorder */ { yymsp[-2].minor.yy322 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy394, yymsp[0].minor.yy394); /*A-overwrites-Y*/ } break; - case 246: /* cmd ::= DROP INDEX ifexists fullname */ + case 244: /* cmd ::= DROP INDEX ifexists fullname */ {sqlite3DropIndex(pParse, yymsp[0].minor.yy131, yymsp[-1].minor.yy394);} break; - case 247: /* cmd ::= VACUUM vinto */ + case 245: /* cmd ::= VACUUM vinto */ {sqlite3Vacuum(pParse,0,yymsp[0].minor.yy528);} break; - case 248: /* cmd ::= VACUUM nm vinto */ + case 246: /* cmd ::= VACUUM nm vinto */ {sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy528);} break; - case 251: /* cmd ::= PRAGMA nm dbnm */ + case 249: /* cmd ::= PRAGMA nm dbnm */ {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);} break; - case 252: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ + case 250: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);} break; - case 253: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ + case 251: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);} break; - case 254: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ + case 252: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);} break; - case 255: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ + case 253: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);} break; - case 258: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ + case 256: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ { Token all; all.z = yymsp[-3].minor.yy0.z; @@ -168206,50 +172398,50 @@ static YYACTIONTYPE yy_reduce( sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy33, &all); } break; - case 259: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ + case 257: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ { sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy394, yymsp[-4].minor.yy180.a, yymsp[-4].minor.yy180.b, yymsp[-2].minor.yy131, yymsp[0].minor.yy528, yymsp[-10].minor.yy394, yymsp[-8].minor.yy394); yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/ } break; - case 260: /* trigger_time ::= BEFORE|AFTER */ + case 258: /* trigger_time ::= BEFORE|AFTER */ { yymsp[0].minor.yy394 = yymsp[0].major; /*A-overwrites-X*/ } break; - case 261: /* trigger_time ::= INSTEAD OF */ + case 259: /* trigger_time ::= INSTEAD OF */ { yymsp[-1].minor.yy394 = TK_INSTEAD;} break; - case 262: /* trigger_time ::= */ + case 260: /* trigger_time ::= */ { yymsp[1].minor.yy394 = TK_BEFORE; } break; - case 263: /* trigger_event ::= DELETE|INSERT */ - case 264: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==264); + case 261: /* trigger_event ::= DELETE|INSERT */ + case 262: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==262); {yymsp[0].minor.yy180.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy180.b = 0;} break; - case 265: /* trigger_event ::= UPDATE OF idlist */ + case 263: /* trigger_event ::= UPDATE OF idlist */ {yymsp[-2].minor.yy180.a = TK_UPDATE; yymsp[-2].minor.yy180.b = yymsp[0].minor.yy254;} break; - case 266: /* when_clause ::= */ - case 285: /* key_opt ::= */ yytestcase(yyruleno==285); + case 264: /* when_clause ::= */ + case 283: /* key_opt ::= */ yytestcase(yyruleno==283); { yymsp[1].minor.yy528 = 0; } break; - case 267: /* when_clause ::= WHEN expr */ - case 286: /* key_opt ::= KEY expr */ yytestcase(yyruleno==286); + case 265: /* when_clause ::= WHEN expr */ + case 284: /* key_opt ::= KEY expr */ yytestcase(yyruleno==284); { yymsp[-1].minor.yy528 = yymsp[0].minor.yy528; } break; - case 268: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ + case 266: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ { assert( yymsp[-2].minor.yy33!=0 ); yymsp[-2].minor.yy33->pLast->pNext = yymsp[-1].minor.yy33; yymsp[-2].minor.yy33->pLast = yymsp[-1].minor.yy33; } break; - case 269: /* trigger_cmd_list ::= trigger_cmd SEMI */ + case 267: /* trigger_cmd_list ::= trigger_cmd SEMI */ { assert( yymsp[-1].minor.yy33!=0 ); yymsp[-1].minor.yy33->pLast = yymsp[-1].minor.yy33; } break; - case 270: /* trnm ::= nm DOT nm */ + case 268: /* trnm ::= nm DOT nm */ { yymsp[-2].minor.yy0 = yymsp[0].minor.yy0; sqlite3ErrorMsg(pParse, @@ -168257,39 +172449,39 @@ static YYACTIONTYPE yy_reduce( "statements within triggers"); } break; - case 271: /* tridxby ::= INDEXED BY nm */ + case 269: /* tridxby ::= INDEXED BY nm */ { sqlite3ErrorMsg(pParse, "the INDEXED BY clause is not allowed on UPDATE or DELETE statements " "within triggers"); } break; - case 272: /* tridxby ::= NOT INDEXED */ + case 270: /* tridxby ::= NOT INDEXED */ { sqlite3ErrorMsg(pParse, "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements " "within triggers"); } break; - case 273: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ + case 271: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ {yylhsminor.yy33 = sqlite3TriggerUpdateStep(pParse, &yymsp[-6].minor.yy0, yymsp[-2].minor.yy131, yymsp[-3].minor.yy322, yymsp[-1].minor.yy528, yymsp[-7].minor.yy394, yymsp[-8].minor.yy0.z, yymsp[0].minor.yy522);} yymsp[-8].minor.yy33 = yylhsminor.yy33; break; - case 274: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ + case 272: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ { yylhsminor.yy33 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy254,yymsp[-2].minor.yy47,yymsp[-6].minor.yy394,yymsp[-1].minor.yy444,yymsp[-7].minor.yy522,yymsp[0].minor.yy522);/*yylhsminor.yy33-overwrites-yymsp[-6].minor.yy394*/ } yymsp[-7].minor.yy33 = yylhsminor.yy33; break; - case 275: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ + case 273: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ {yylhsminor.yy33 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy528, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy522);} yymsp[-5].minor.yy33 = yylhsminor.yy33; break; - case 276: /* trigger_cmd ::= scanpt select scanpt */ + case 274: /* trigger_cmd ::= scanpt select scanpt */ {yylhsminor.yy33 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy47, yymsp[-2].minor.yy522, yymsp[0].minor.yy522); /*yylhsminor.yy33-overwrites-yymsp[-1].minor.yy47*/} yymsp[-2].minor.yy33 = yylhsminor.yy33; break; - case 277: /* expr ::= RAISE LP IGNORE RP */ + case 275: /* expr ::= RAISE LP IGNORE RP */ { yymsp[-3].minor.yy528 = sqlite3PExpr(pParse, TK_RAISE, 0, 0); if( yymsp[-3].minor.yy528 ){ @@ -168297,7 +172489,7 @@ static YYACTIONTYPE yy_reduce( } } break; - case 278: /* expr ::= RAISE LP raisetype COMMA nm RP */ + case 276: /* expr ::= RAISE LP raisetype COMMA nm RP */ { yymsp[-5].minor.yy528 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1); if( yymsp[-5].minor.yy528 ) { @@ -168305,118 +172497,118 @@ static YYACTIONTYPE yy_reduce( } } break; - case 279: /* raisetype ::= ROLLBACK */ + case 277: /* raisetype ::= ROLLBACK */ {yymsp[0].minor.yy394 = OE_Rollback;} break; - case 281: /* raisetype ::= FAIL */ + case 279: /* raisetype ::= FAIL */ {yymsp[0].minor.yy394 = OE_Fail;} break; - case 282: /* cmd ::= DROP TRIGGER ifexists fullname */ + case 280: /* cmd ::= DROP TRIGGER ifexists fullname */ { sqlite3DropTrigger(pParse,yymsp[0].minor.yy131,yymsp[-1].minor.yy394); } break; - case 283: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ + case 281: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ { sqlite3Attach(pParse, yymsp[-3].minor.yy528, yymsp[-1].minor.yy528, yymsp[0].minor.yy528); } break; - case 284: /* cmd ::= DETACH database_kw_opt expr */ + case 282: /* cmd ::= DETACH database_kw_opt expr */ { sqlite3Detach(pParse, yymsp[0].minor.yy528); } break; - case 287: /* cmd ::= REINDEX */ + case 285: /* cmd ::= REINDEX */ {sqlite3Reindex(pParse, 0, 0);} break; - case 288: /* cmd ::= REINDEX nm dbnm */ + case 286: /* cmd ::= REINDEX nm dbnm */ {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} break; - case 289: /* cmd ::= ANALYZE */ + case 287: /* cmd ::= ANALYZE */ {sqlite3Analyze(pParse, 0, 0);} break; - case 290: /* cmd ::= ANALYZE nm dbnm */ + case 288: /* cmd ::= ANALYZE nm dbnm */ {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} break; - case 291: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ + case 289: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ { sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy131,&yymsp[0].minor.yy0); } break; - case 292: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ + case 290: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ { yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n; sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0); } break; - case 293: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ + case 291: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ { sqlite3AlterDropColumn(pParse, yymsp[-3].minor.yy131, &yymsp[0].minor.yy0); } break; - case 294: /* add_column_fullname ::= fullname */ + case 292: /* add_column_fullname ::= fullname */ { disableLookaside(pParse); sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy131); } break; - case 295: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ + case 293: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ { sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy131, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } break; - case 296: /* cmd ::= create_vtab */ + case 294: /* cmd ::= create_vtab */ {sqlite3VtabFinishParse(pParse,0);} break; - case 297: /* cmd ::= create_vtab LP vtabarglist RP */ + case 295: /* cmd ::= create_vtab LP vtabarglist RP */ {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);} break; - case 298: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ + case 296: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ { sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy394); } break; - case 299: /* vtabarg ::= */ + case 297: /* vtabarg ::= */ {sqlite3VtabArgInit(pParse);} break; - case 300: /* vtabargtoken ::= ANY */ - case 301: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==301); - case 302: /* lp ::= LP */ yytestcase(yyruleno==302); + case 298: /* vtabargtoken ::= ANY */ + case 299: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==299); + case 300: /* lp ::= LP */ yytestcase(yyruleno==300); {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);} break; - case 303: /* with ::= WITH wqlist */ - case 304: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==304); + case 301: /* with ::= WITH wqlist */ + case 302: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==302); { sqlite3WithPush(pParse, yymsp[0].minor.yy521, 1); } break; - case 305: /* wqas ::= AS */ + case 303: /* wqas ::= AS */ {yymsp[0].minor.yy516 = M10d_Any;} break; - case 306: /* wqas ::= AS MATERIALIZED */ + case 304: /* wqas ::= AS MATERIALIZED */ {yymsp[-1].minor.yy516 = M10d_Yes;} break; - case 307: /* wqas ::= AS NOT MATERIALIZED */ + case 305: /* wqas ::= AS NOT MATERIALIZED */ {yymsp[-2].minor.yy516 = M10d_No;} break; - case 308: /* wqitem ::= nm eidlist_opt wqas LP select RP */ + case 306: /* wqitem ::= nm eidlist_opt wqas LP select RP */ { yymsp[-5].minor.yy385 = sqlite3CteNew(pParse, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy322, yymsp[-1].minor.yy47, yymsp[-3].minor.yy516); /*A-overwrites-X*/ } break; - case 309: /* wqlist ::= wqitem */ + case 307: /* wqlist ::= wqitem */ { yymsp[0].minor.yy521 = sqlite3WithAdd(pParse, 0, yymsp[0].minor.yy385); /*A-overwrites-X*/ } break; - case 310: /* wqlist ::= wqlist COMMA wqitem */ + case 308: /* wqlist ::= wqlist COMMA wqitem */ { yymsp[-2].minor.yy521 = sqlite3WithAdd(pParse, yymsp[-2].minor.yy521, yymsp[0].minor.yy385); } break; - case 311: /* windowdefn_list ::= windowdefn */ + case 309: /* windowdefn_list ::= windowdefn */ { yylhsminor.yy41 = yymsp[0].minor.yy41; } yymsp[0].minor.yy41 = yylhsminor.yy41; break; - case 312: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ + case 310: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ { assert( yymsp[0].minor.yy41!=0 ); sqlite3WindowChain(pParse, yymsp[0].minor.yy41, yymsp[-2].minor.yy41); @@ -168425,7 +172617,7 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy41 = yylhsminor.yy41; break; - case 313: /* windowdefn ::= nm AS LP window RP */ + case 311: /* windowdefn ::= nm AS LP window RP */ { if( ALWAYS(yymsp[-1].minor.yy41) ){ yymsp[-1].minor.yy41->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n); @@ -168434,90 +172626,90 @@ static YYACTIONTYPE yy_reduce( } yymsp[-4].minor.yy41 = yylhsminor.yy41; break; - case 314: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ + case 312: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ { yymsp[-4].minor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, yymsp[-2].minor.yy322, yymsp[-1].minor.yy322, 0); } break; - case 315: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ + case 313: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ { yylhsminor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, yymsp[-2].minor.yy322, yymsp[-1].minor.yy322, &yymsp[-5].minor.yy0); } yymsp[-5].minor.yy41 = yylhsminor.yy41; break; - case 316: /* window ::= ORDER BY sortlist frame_opt */ + case 314: /* window ::= ORDER BY sortlist frame_opt */ { yymsp[-3].minor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, 0, yymsp[-1].minor.yy322, 0); } break; - case 317: /* window ::= nm ORDER BY sortlist frame_opt */ + case 315: /* window ::= nm ORDER BY sortlist frame_opt */ { yylhsminor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, 0, yymsp[-1].minor.yy322, &yymsp[-4].minor.yy0); } yymsp[-4].minor.yy41 = yylhsminor.yy41; break; - case 318: /* window ::= frame_opt */ - case 337: /* filter_over ::= over_clause */ yytestcase(yyruleno==337); + case 316: /* window ::= frame_opt */ + case 335: /* filter_over ::= over_clause */ yytestcase(yyruleno==335); { yylhsminor.yy41 = yymsp[0].minor.yy41; } yymsp[0].minor.yy41 = yylhsminor.yy41; break; - case 319: /* window ::= nm frame_opt */ + case 317: /* window ::= nm frame_opt */ { yylhsminor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, 0, 0, &yymsp[-1].minor.yy0); } yymsp[-1].minor.yy41 = yylhsminor.yy41; break; - case 320: /* frame_opt ::= */ + case 318: /* frame_opt ::= */ { yymsp[1].minor.yy41 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0); } break; - case 321: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ + case 319: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ { yylhsminor.yy41 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy394, yymsp[-1].minor.yy595.eType, yymsp[-1].minor.yy595.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy516); } yymsp[-2].minor.yy41 = yylhsminor.yy41; break; - case 322: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ + case 320: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ { yylhsminor.yy41 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy394, yymsp[-3].minor.yy595.eType, yymsp[-3].minor.yy595.pExpr, yymsp[-1].minor.yy595.eType, yymsp[-1].minor.yy595.pExpr, yymsp[0].minor.yy516); } yymsp[-5].minor.yy41 = yylhsminor.yy41; break; - case 324: /* frame_bound_s ::= frame_bound */ - case 326: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==326); + case 322: /* frame_bound_s ::= frame_bound */ + case 324: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==324); {yylhsminor.yy595 = yymsp[0].minor.yy595;} yymsp[0].minor.yy595 = yylhsminor.yy595; break; - case 325: /* frame_bound_s ::= UNBOUNDED PRECEDING */ - case 327: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==327); - case 329: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==329); + case 323: /* frame_bound_s ::= UNBOUNDED PRECEDING */ + case 325: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==325); + case 327: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==327); {yylhsminor.yy595.eType = yymsp[-1].major; yylhsminor.yy595.pExpr = 0;} yymsp[-1].minor.yy595 = yylhsminor.yy595; break; - case 328: /* frame_bound ::= expr PRECEDING|FOLLOWING */ + case 326: /* frame_bound ::= expr PRECEDING|FOLLOWING */ {yylhsminor.yy595.eType = yymsp[0].major; yylhsminor.yy595.pExpr = yymsp[-1].minor.yy528;} yymsp[-1].minor.yy595 = yylhsminor.yy595; break; - case 330: /* frame_exclude_opt ::= */ + case 328: /* frame_exclude_opt ::= */ {yymsp[1].minor.yy516 = 0;} break; - case 331: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ + case 329: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ {yymsp[-1].minor.yy516 = yymsp[0].minor.yy516;} break; - case 332: /* frame_exclude ::= NO OTHERS */ - case 333: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==333); + case 330: /* frame_exclude ::= NO OTHERS */ + case 331: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==331); {yymsp[-1].minor.yy516 = yymsp[-1].major; /*A-overwrites-X*/} break; - case 334: /* frame_exclude ::= GROUP|TIES */ + case 332: /* frame_exclude ::= GROUP|TIES */ {yymsp[0].minor.yy516 = yymsp[0].major; /*A-overwrites-X*/} break; - case 335: /* window_clause ::= WINDOW windowdefn_list */ + case 333: /* window_clause ::= WINDOW windowdefn_list */ { yymsp[-1].minor.yy41 = yymsp[0].minor.yy41; } break; - case 336: /* filter_over ::= filter_clause over_clause */ + case 334: /* filter_over ::= filter_clause over_clause */ { if( yymsp[0].minor.yy41 ){ yymsp[0].minor.yy41->pFilter = yymsp[-1].minor.yy528; @@ -168528,7 +172720,7 @@ static YYACTIONTYPE yy_reduce( } yymsp[-1].minor.yy41 = yylhsminor.yy41; break; - case 338: /* filter_over ::= filter_clause */ + case 336: /* filter_over ::= filter_clause */ { yylhsminor.yy41 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); if( yylhsminor.yy41 ){ @@ -168540,13 +172732,13 @@ static YYACTIONTYPE yy_reduce( } yymsp[0].minor.yy41 = yylhsminor.yy41; break; - case 339: /* over_clause ::= OVER LP window RP */ + case 337: /* over_clause ::= OVER LP window RP */ { yymsp[-3].minor.yy41 = yymsp[-1].minor.yy41; assert( yymsp[-3].minor.yy41!=0 ); } break; - case 340: /* over_clause ::= OVER nm */ + case 338: /* over_clause ::= OVER nm */ { yymsp[-1].minor.yy41 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); if( yymsp[-1].minor.yy41 ){ @@ -168554,73 +172746,73 @@ static YYACTIONTYPE yy_reduce( } } break; - case 341: /* filter_clause ::= FILTER LP WHERE expr RP */ + case 339: /* filter_clause ::= FILTER LP WHERE expr RP */ { yymsp[-4].minor.yy528 = yymsp[-1].minor.yy528; } break; default: - /* (342) input ::= cmdlist */ yytestcase(yyruleno==342); - /* (343) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==343); - /* (344) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=344); - /* (345) ecmd ::= SEMI */ yytestcase(yyruleno==345); - /* (346) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==346); - /* (347) ecmd ::= explain cmdx SEMI (NEVER REDUCES) */ assert(yyruleno!=347); - /* (348) trans_opt ::= */ yytestcase(yyruleno==348); - /* (349) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==349); - /* (350) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==350); - /* (351) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==351); - /* (352) savepoint_opt ::= */ yytestcase(yyruleno==352); - /* (353) cmd ::= create_table create_table_args */ yytestcase(yyruleno==353); - /* (354) table_option_set ::= table_option (OPTIMIZED OUT) */ assert(yyruleno!=354); - /* (355) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==355); - /* (356) columnlist ::= columnname carglist */ yytestcase(yyruleno==356); - /* (357) nm ::= ID|INDEXED */ yytestcase(yyruleno==357); - /* (358) nm ::= STRING */ yytestcase(yyruleno==358); - /* (359) nm ::= JOIN_KW */ yytestcase(yyruleno==359); - /* (360) typetoken ::= typename */ yytestcase(yyruleno==360); - /* (361) typename ::= ID|STRING */ yytestcase(yyruleno==361); - /* (362) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=362); - /* (363) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=363); - /* (364) carglist ::= carglist ccons */ yytestcase(yyruleno==364); - /* (365) carglist ::= */ yytestcase(yyruleno==365); - /* (366) ccons ::= NULL onconf */ yytestcase(yyruleno==366); - /* (367) ccons ::= GENERATED ALWAYS AS generated */ yytestcase(yyruleno==367); - /* (368) ccons ::= AS generated */ yytestcase(yyruleno==368); - /* (369) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==369); - /* (370) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==370); - /* (371) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=371); - /* (372) tconscomma ::= */ yytestcase(yyruleno==372); - /* (373) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=373); - /* (374) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=374); - /* (375) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=375); - /* (376) oneselect ::= values */ yytestcase(yyruleno==376); - /* (377) sclp ::= selcollist COMMA */ yytestcase(yyruleno==377); - /* (378) as ::= ID|STRING */ yytestcase(yyruleno==378); - /* (379) indexed_opt ::= indexed_by (OPTIMIZED OUT) */ assert(yyruleno!=379); - /* (380) returning ::= */ yytestcase(yyruleno==380); - /* (381) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=381); - /* (382) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==382); - /* (383) exprlist ::= nexprlist */ yytestcase(yyruleno==383); - /* (384) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=384); - /* (385) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=385); - /* (386) nmnum ::= ON */ yytestcase(yyruleno==386); - /* (387) nmnum ::= DELETE */ yytestcase(yyruleno==387); - /* (388) nmnum ::= DEFAULT */ yytestcase(yyruleno==388); - /* (389) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==389); - /* (390) foreach_clause ::= */ yytestcase(yyruleno==390); - /* (391) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==391); - /* (392) trnm ::= nm */ yytestcase(yyruleno==392); - /* (393) tridxby ::= */ yytestcase(yyruleno==393); - /* (394) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==394); - /* (395) database_kw_opt ::= */ yytestcase(yyruleno==395); - /* (396) kwcolumn_opt ::= */ yytestcase(yyruleno==396); - /* (397) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==397); - /* (398) vtabarglist ::= vtabarg */ yytestcase(yyruleno==398); - /* (399) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==399); - /* (400) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==400); - /* (401) anylist ::= */ yytestcase(yyruleno==401); - /* (402) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==402); - /* (403) anylist ::= anylist ANY */ yytestcase(yyruleno==403); - /* (404) with ::= */ yytestcase(yyruleno==404); + /* (340) input ::= cmdlist */ yytestcase(yyruleno==340); + /* (341) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==341); + /* (342) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=342); + /* (343) ecmd ::= SEMI */ yytestcase(yyruleno==343); + /* (344) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==344); + /* (345) ecmd ::= explain cmdx SEMI (NEVER REDUCES) */ assert(yyruleno!=345); + /* (346) trans_opt ::= */ yytestcase(yyruleno==346); + /* (347) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==347); + /* (348) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==348); + /* (349) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==349); + /* (350) savepoint_opt ::= */ yytestcase(yyruleno==350); + /* (351) cmd ::= create_table create_table_args */ yytestcase(yyruleno==351); + /* (352) table_option_set ::= table_option (OPTIMIZED OUT) */ assert(yyruleno!=352); + /* (353) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==353); + /* (354) columnlist ::= columnname carglist */ yytestcase(yyruleno==354); + /* (355) nm ::= ID|INDEXED|JOIN_KW */ yytestcase(yyruleno==355); + /* (356) nm ::= STRING */ yytestcase(yyruleno==356); + /* (357) typetoken ::= typename */ yytestcase(yyruleno==357); + /* (358) typename ::= ID|STRING */ yytestcase(yyruleno==358); + /* (359) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=359); + /* (360) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=360); + /* (361) carglist ::= carglist ccons */ yytestcase(yyruleno==361); + /* (362) carglist ::= */ yytestcase(yyruleno==362); + /* (363) ccons ::= NULL onconf */ yytestcase(yyruleno==363); + /* (364) ccons ::= GENERATED ALWAYS AS generated */ yytestcase(yyruleno==364); + /* (365) ccons ::= AS generated */ yytestcase(yyruleno==365); + /* (366) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==366); + /* (367) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==367); + /* (368) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=368); + /* (369) tconscomma ::= */ yytestcase(yyruleno==369); + /* (370) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=370); + /* (371) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=371); + /* (372) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=372); + /* (373) oneselect ::= values */ yytestcase(yyruleno==373); + /* (374) sclp ::= selcollist COMMA */ yytestcase(yyruleno==374); + /* (375) as ::= ID|STRING */ yytestcase(yyruleno==375); + /* (376) indexed_opt ::= indexed_by (OPTIMIZED OUT) */ assert(yyruleno!=376); + /* (377) returning ::= */ yytestcase(yyruleno==377); + /* (378) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=378); + /* (379) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==379); + /* (380) case_operand ::= expr */ yytestcase(yyruleno==380); + /* (381) exprlist ::= nexprlist */ yytestcase(yyruleno==381); + /* (382) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=382); + /* (383) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=383); + /* (384) nmnum ::= ON */ yytestcase(yyruleno==384); + /* (385) nmnum ::= DELETE */ yytestcase(yyruleno==385); + /* (386) nmnum ::= DEFAULT */ yytestcase(yyruleno==386); + /* (387) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==387); + /* (388) foreach_clause ::= */ yytestcase(yyruleno==388); + /* (389) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==389); + /* (390) trnm ::= nm */ yytestcase(yyruleno==390); + /* (391) tridxby ::= */ yytestcase(yyruleno==391); + /* (392) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==392); + /* (393) database_kw_opt ::= */ yytestcase(yyruleno==393); + /* (394) kwcolumn_opt ::= */ yytestcase(yyruleno==394); + /* (395) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==395); + /* (396) vtabarglist ::= vtabarg */ yytestcase(yyruleno==396); + /* (397) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==397); + /* (398) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==398); + /* (399) anylist ::= */ yytestcase(yyruleno==399); + /* (400) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==400); + /* (401) anylist ::= anylist ANY */ yytestcase(yyruleno==401); + /* (402) with ::= */ yytestcase(yyruleno==402); break; /********** End reduce actions ************************************************/ }; @@ -169196,7 +173388,7 @@ static const unsigned char aKWHash[127] = { /* aKWNext[] forms the hash collision chain. If aKWHash[i]==0 ** then the i-th keyword has no more hash collisions. Otherwise, ** the next keyword with the same hash is aKWHash[i]-1. */ -static const unsigned char aKWNext[147] = { +static const unsigned char aKWNext[148] = {0, 0, 0, 0, 0, 4, 0, 43, 0, 0, 106, 114, 0, 0, 0, 2, 0, 0, 143, 0, 0, 0, 13, 0, 0, 0, 0, 141, 0, 0, 119, 52, 0, 0, 137, 12, 0, 0, 62, 0, @@ -169211,7 +173403,7 @@ static const unsigned char aKWNext[147] = { 102, 0, 0, 87, }; /* aKWLen[i] is the length (in bytes) of the i-th keyword */ -static const unsigned char aKWLen[147] = { +static const unsigned char aKWLen[148] = {0, 7, 7, 5, 4, 6, 4, 5, 3, 6, 7, 3, 6, 6, 7, 7, 3, 8, 2, 6, 5, 4, 4, 3, 10, 4, 7, 6, 9, 4, 2, 6, 5, 9, 9, 4, 7, 3, 2, 4, @@ -169227,7 +173419,7 @@ static const unsigned char aKWLen[147] = { }; /* aKWOffset[i] is the index into zKWText[] of the start of ** the text for the i-th keyword. */ -static const unsigned short int aKWOffset[147] = { +static const unsigned short int aKWOffset[148] = {0, 0, 2, 2, 8, 9, 14, 16, 20, 23, 25, 25, 29, 33, 36, 41, 46, 48, 53, 54, 59, 62, 65, 67, 69, 78, 81, 86, 90, 90, 94, 99, 101, 105, 111, 119, 123, 123, 123, 126, @@ -169242,7 +173434,7 @@ static const unsigned short int aKWOffset[147] = { 648, 650, 655, 659, }; /* aKWCode[i] is the parser symbol code for the i-th keyword */ -static const unsigned char aKWCode[147] = { +static const unsigned char aKWCode[148] = {0, TK_REINDEX, TK_INDEXED, TK_INDEX, TK_DESC, TK_ESCAPE, TK_EACH, TK_CHECK, TK_KEY, TK_BEFORE, TK_FOREIGN, TK_FOR, TK_IGNORE, TK_LIKE_KW, TK_EXPLAIN, TK_INSTEAD, @@ -169411,7 +173603,7 @@ static int keywordCode(const char *z, int n, int *pType){ const char *zKW; if( n>=2 ){ i = ((charMap(z[0])*4) ^ (charMap(z[n-1])*3) ^ n*1) % 127; - for(i=((int)aKWHash[i])-1; i>=0; i=((int)aKWNext[i])-1){ + for(i=(int)aKWHash[i]; i>0; i=aKWNext[i]){ if( aKWLen[i]!=n ) continue; zKW = &zKWText[aKWOffset[i]]; #ifdef SQLITE_ASCII @@ -169427,153 +173619,153 @@ static int keywordCode(const char *z, int n, int *pType){ while( j=SQLITE_N_KEYWORD ) return SQLITE_ERROR; + i++; *pzName = zKWText + aKWOffset[i]; *pnName = aKWLen[i]; return SQLITE_OK; @@ -170164,7 +174357,7 @@ SQLITE_PRIVATE int sqlite3RunParser(Parse *pParse, const char *zSql){ if( pParse->pNewTrigger && !IN_RENAME_OBJECT ){ sqlite3DeleteTrigger(db, pParse->pNewTrigger); } - if( pParse->pVList ) sqlite3DbFreeNN(db, pParse->pVList); + if( pParse->pVList ) sqlite3DbNNFreeNN(db, pParse->pVList); db->pParse = pParentParse; assert( nErr==0 || pParse->rc!=SQLITE_OK ); return nErr; @@ -171126,9 +175319,21 @@ SQLITE_API int sqlite3_config(int op, ...){ va_list ap; int rc = SQLITE_OK; - /* sqlite3_config() shall return SQLITE_MISUSE if it is invoked while - ** the SQLite library is in use. */ - if( sqlite3GlobalConfig.isInit ) return SQLITE_MISUSE_BKPT; + /* sqlite3_config() normally returns SQLITE_MISUSE if it is invoked while + ** the SQLite library is in use. Except, a few selected opcodes + ** are allowed. + */ + if( sqlite3GlobalConfig.isInit ){ + static const u64 mAnytimeConfigOption = 0 + | MASKBIT64( SQLITE_CONFIG_LOG ) + | MASKBIT64( SQLITE_CONFIG_PCACHE_HDRSZ ) + ; + if( op<0 || op>63 || (MASKBIT64(op) & mAnytimeConfigOption)==0 ){ + return SQLITE_MISUSE_BKPT; + } + testcase( op==SQLITE_CONFIG_LOG ); + testcase( op==SQLITE_CONFIG_PCACHE_HDRSZ ); + } va_start(ap, op); switch( op ){ @@ -171197,6 +175402,7 @@ SQLITE_API int sqlite3_config(int op, ...){ break; } case SQLITE_CONFIG_MEMSTATUS: { + assert( !sqlite3GlobalConfig.isInit ); /* Cannot change at runtime */ /* EVIDENCE-OF: R-61275-35157 The SQLITE_CONFIG_MEMSTATUS option takes ** single argument of type int, interpreted as a boolean, which enables ** or disables the collection of memory allocation statistics. */ @@ -171320,8 +175526,10 @@ SQLITE_API int sqlite3_config(int op, ...){ ** sqlite3GlobalConfig.xLog = va_arg(ap, void(*)(void*,int,const char*)); */ typedef void(*LOGFUNC_t)(void*,int,const char*); - sqlite3GlobalConfig.xLog = va_arg(ap, LOGFUNC_t); - sqlite3GlobalConfig.pLogArg = va_arg(ap, void*); + LOGFUNC_t xLog = va_arg(ap, LOGFUNC_t); + void *pLogArg = va_arg(ap, void*); + AtomicStore(&sqlite3GlobalConfig.xLog, xLog); + AtomicStore(&sqlite3GlobalConfig.pLogArg, pLogArg); break; } @@ -171335,7 +175543,8 @@ SQLITE_API int sqlite3_config(int op, ...){ ** argument of type int. If non-zero, then URI handling is globally ** enabled. If the parameter is zero, then URI handling is globally ** disabled. */ - sqlite3GlobalConfig.bOpenUri = va_arg(ap, int); + int bOpenUri = va_arg(ap, int); + AtomicStore(&sqlite3GlobalConfig.bOpenUri, bOpenUri); break; } @@ -171520,18 +175729,19 @@ static int setupLookaside(sqlite3 *db, void *pBuf, int sz, int cnt){ db->lookaside.bMalloced = pBuf==0 ?1:0; db->lookaside.nSlot = nBig+nSm; }else{ - db->lookaside.pStart = db; + db->lookaside.pStart = 0; #ifndef SQLITE_OMIT_TWOSIZE_LOOKASIDE db->lookaside.pSmallInit = 0; db->lookaside.pSmallFree = 0; - db->lookaside.pMiddle = db; + db->lookaside.pMiddle = 0; #endif /* SQLITE_OMIT_TWOSIZE_LOOKASIDE */ - db->lookaside.pEnd = db; + db->lookaside.pEnd = 0; db->lookaside.bDisable = 1; db->lookaside.sz = 0; db->lookaside.bMalloced = 0; db->lookaside.nSlot = 0; } + db->lookaside.pTrueEnd = db->lookaside.pEnd; assert( sqlite3LookasideUsed(db,0)==0 ); #endif /* SQLITE_OMIT_LOOKASIDE */ return SQLITE_OK; @@ -171610,6 +175820,7 @@ SQLITE_API int sqlite3_db_cacheflush(sqlite3 *db){ SQLITE_API int sqlite3_db_config(sqlite3 *db, int op, ...){ va_list ap; int rc; + sqlite3_mutex_enter(db->mutex); va_start(ap, op); switch( op ){ case SQLITE_DBCONFIG_MAINDBNAME: { @@ -171648,6 +175859,8 @@ SQLITE_API int sqlite3_db_config(sqlite3 *db, int op, ...){ { SQLITE_DBCONFIG_DQS_DML, SQLITE_DqsDML }, { SQLITE_DBCONFIG_LEGACY_FILE_FORMAT, SQLITE_LegacyFileFmt }, { SQLITE_DBCONFIG_TRUSTED_SCHEMA, SQLITE_TrustedSchema }, + { SQLITE_DBCONFIG_STMT_SCANSTATUS, SQLITE_StmtScanStatus }, + { SQLITE_DBCONFIG_REVERSE_SCANORDER, SQLITE_ReverseOrder }, }; unsigned int i; rc = SQLITE_ERROR; /* IMP: R-42790-23372 */ @@ -171675,6 +175888,7 @@ SQLITE_API int sqlite3_db_config(sqlite3 *db, int op, ...){ } } va_end(ap); + sqlite3_mutex_leave(db->mutex); return rc; } @@ -172259,6 +176473,7 @@ SQLITE_PRIVATE const char *sqlite3ErrName(int rc){ case SQLITE_NOTICE_RECOVER_WAL: zName = "SQLITE_NOTICE_RECOVER_WAL";break; case SQLITE_NOTICE_RECOVER_ROLLBACK: zName = "SQLITE_NOTICE_RECOVER_ROLLBACK"; break; + case SQLITE_NOTICE_RBU: zName = "SQLITE_NOTICE_RBU"; break; case SQLITE_WARNING: zName = "SQLITE_WARNING"; break; case SQLITE_WARNING_AUTOINDEX: zName = "SQLITE_WARNING_AUTOINDEX"; break; case SQLITE_DONE: zName = "SQLITE_DONE"; break; @@ -172488,7 +176703,9 @@ SQLITE_API int sqlite3_busy_timeout(sqlite3 *db, int ms){ */ SQLITE_API void sqlite3_interrupt(sqlite3 *db){ #ifdef SQLITE_ENABLE_API_ARMOR - if( !sqlite3SafetyCheckOk(db) && (db==0 || db->eOpenState!=SQLITE_STATE_ZOMBIE) ){ + if( !sqlite3SafetyCheckOk(db) + && (db==0 || db->eOpenState!=SQLITE_STATE_ZOMBIE) + ){ (void)SQLITE_MISUSE_BKPT; return; } @@ -172496,6 +176713,21 @@ SQLITE_API void sqlite3_interrupt(sqlite3 *db){ AtomicStore(&db->u1.isInterrupted, 1); } +/* +** Return true or false depending on whether or not an interrupt is +** pending on connection db. +*/ +SQLITE_API int sqlite3_is_interrupted(sqlite3 *db){ +#ifdef SQLITE_ENABLE_API_ARMOR + if( !sqlite3SafetyCheckOk(db) + && (db==0 || db->eOpenState!=SQLITE_STATE_ZOMBIE) + ){ + (void)SQLITE_MISUSE_BKPT; + return 0; + } +#endif + return AtomicLoad(&db->u1.isInterrupted)!=0; +} /* ** This function is exactly the same as sqlite3_create_function(), except @@ -172540,7 +176772,7 @@ SQLITE_PRIVATE int sqlite3CreateFunc( /* The SQLITE_INNOCUOUS flag is the same bit as SQLITE_FUNC_UNSAFE. But ** the meaning is inverted. So flip the bit. */ assert( SQLITE_FUNC_UNSAFE==SQLITE_INNOCUOUS ); - extraFlags ^= SQLITE_FUNC_UNSAFE; + extraFlags ^= SQLITE_FUNC_UNSAFE; /* tag-20230109-1 */ #ifndef SQLITE_OMIT_UTF16 @@ -172558,11 +176790,11 @@ SQLITE_PRIVATE int sqlite3CreateFunc( case SQLITE_ANY: { int rc; rc = sqlite3CreateFunc(db, zFunctionName, nArg, - (SQLITE_UTF8|extraFlags)^SQLITE_FUNC_UNSAFE, + (SQLITE_UTF8|extraFlags)^SQLITE_FUNC_UNSAFE, /* tag-20230109-1 */ pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor); if( rc==SQLITE_OK ){ rc = sqlite3CreateFunc(db, zFunctionName, nArg, - (SQLITE_UTF16LE|extraFlags)^SQLITE_FUNC_UNSAFE, + (SQLITE_UTF16LE|extraFlags)^SQLITE_FUNC_UNSAFE, /* tag-20230109-1*/ pUserData, xSFunc, xStep, xFinal, xValue, xInverse, pDestructor); } if( rc!=SQLITE_OK ){ @@ -172811,7 +177043,7 @@ SQLITE_API int sqlite3_overload_function( rc = sqlite3FindFunction(db, zName, nArg, SQLITE_UTF8, 0)!=0; sqlite3_mutex_leave(db->mutex); if( rc ) return SQLITE_OK; - zCopy = sqlite3_mprintf(zName); + zCopy = sqlite3_mprintf("%s", zName); if( zCopy==0 ) return SQLITE_NOMEM; return sqlite3_create_function_v2(db, zName, nArg, SQLITE_UTF8, zCopy, sqlite3InvalidFunction, 0, 0, sqlite3_free); @@ -173614,9 +177846,9 @@ SQLITE_PRIVATE int sqlite3ParseUri( assert( *pzErrMsg==0 ); - if( ((flags & SQLITE_OPEN_URI) /* IMP: R-48725-32206 */ - || sqlite3GlobalConfig.bOpenUri) /* IMP: R-51689-46548 */ - && nUri>=5 && memcmp(zUri, "file:", 5)==0 /* IMP: R-57884-37496 */ + if( ((flags & SQLITE_OPEN_URI) /* IMP: R-48725-32206 */ + || AtomicLoad(&sqlite3GlobalConfig.bOpenUri)) /* IMP: R-51689-46548 */ + && nUri>=5 && memcmp(zUri, "file:", 5)==0 /* IMP: R-57884-37496 */ ){ char *zOpt; int eState; /* Parser state when parsing URI */ @@ -174022,6 +178254,9 @@ static int openDatabase( #endif #if defined(SQLITE_DEFAULT_LEGACY_ALTER_TABLE) | SQLITE_LegacyAlter +#endif +#if defined(SQLITE_ENABLE_STMT_SCANSTATUS) + | SQLITE_StmtScanStatus #endif ; sqlite3HashInit(&db->aCollSeq); @@ -174045,6 +178280,19 @@ static int openDatabase( goto opendb_out; } +#if SQLITE_OS_UNIX && defined(SQLITE_OS_KV_OPTIONAL) + /* Process magic filenames ":localStorage:" and ":sessionStorage:" */ + if( zFilename && zFilename[0]==':' ){ + if( strcmp(zFilename, ":localStorage:")==0 ){ + zFilename = "file:local?vfs=kvvfs"; + flags |= SQLITE_OPEN_URI; + }else if( strcmp(zFilename, ":sessionStorage:")==0 ){ + zFilename = "file:session?vfs=kvvfs"; + flags |= SQLITE_OPEN_URI; + } + } +#endif /* SQLITE_OS_UNIX && defined(SQLITE_OS_KV_OPTIONAL) */ + /* Parse the filename/URI argument ** ** Only allow sensible combinations of bits in the flags argument. @@ -174075,6 +178323,12 @@ static int openDatabase( sqlite3_free(zErrMsg); goto opendb_out; } + assert( db->pVfs!=0 ); +#if SQLITE_OS_KV || defined(SQLITE_OS_KV_OPTIONAL) + if( sqlite3_stricmp(db->pVfs->zName, "kvvfs")==0 ){ + db->temp_store = 2; + } +#endif /* Open the backend database driver */ rc = sqlite3BtreeOpen(db->pVfs, zOpen, db, &db->aDb[0].pBt, 0, @@ -174568,7 +178822,7 @@ SQLITE_API int sqlite3_sleep(int ms){ /* This function works in milliseconds, but the underlying OsSleep() ** API uses microseconds. Hence the 1000's. */ - rc = (sqlite3OsSleep(pVfs, 1000*ms)/1000); + rc = (sqlite3OsSleep(pVfs, ms<0 ? 0 : 1000*ms)/1000); return rc; } @@ -174624,6 +178878,9 @@ SQLITE_API int sqlite3_file_control(sqlite3 *db, const char *zDbName, int op, vo sqlite3BtreeSetPageSize(pBtree, 0, iNew, 0); } rc = SQLITE_OK; + }else if( op==SQLITE_FCNTL_RESET_CACHE ){ + sqlite3BtreeClearCache(pBtree); + rc = SQLITE_OK; }else{ int nSave = db->busyHandler.nBusy; rc = sqlite3OsFileControl(fd, op, pArg); @@ -175184,7 +179441,7 @@ static char *appendText(char *p, const char *z){ ** Memory layout must be compatible with that generated by the pager ** and expected by sqlite3_uri_parameter() and databaseName(). */ -SQLITE_API char *sqlite3_create_filename( +SQLITE_API const char *sqlite3_create_filename( const char *zDatabase, const char *zJournal, const char *zWal, @@ -175220,10 +179477,10 @@ SQLITE_API char *sqlite3_create_filename( ** error to call this routine with any parameter other than a pointer ** previously obtained from sqlite3_create_filename() or a NULL pointer. */ -SQLITE_API void sqlite3_free_filename(char *p){ +SQLITE_API void sqlite3_free_filename(const char *p){ if( p==0 ) return; - p = (char*)databaseName(p); - sqlite3_free(p - 4); + p = databaseName(p); + sqlite3_free((char*)p - 4); } @@ -175474,8 +179731,8 @@ SQLITE_API int sqlite3_snapshot_open( */ SQLITE_API int sqlite3_snapshot_recover(sqlite3 *db, const char *zDb){ int rc = SQLITE_ERROR; - int iDb; #ifndef SQLITE_OMIT_WAL + int iDb; #ifdef SQLITE_ENABLE_API_ARMOR if( !sqlite3SafetyCheckOk(db) ){ @@ -177122,6 +181379,8 @@ SQLITE_PRIVATE int sqlite3FtsUnicodeIsalnum(int); SQLITE_PRIVATE int sqlite3FtsUnicodeIsdiacritic(int); #endif +SQLITE_PRIVATE int sqlite3Fts3ExprIterate(Fts3Expr*, int (*x)(Fts3Expr*,int,void*), void*); + #endif /* !SQLITE_CORE || SQLITE_ENABLE_FTS3 */ #endif /* _FTSINT_H */ @@ -182125,9 +186384,8 @@ static void fts3EvalNextRow( Fts3Expr *pExpr, /* Expr. to advance to next matching row */ int *pRc /* IN/OUT: Error code */ ){ - if( *pRc==SQLITE_OK ){ + if( *pRc==SQLITE_OK && pExpr->bEof==0 ){ int bDescDoclist = pCsr->bDesc; /* Used by DOCID_CMP() macro */ - assert( pExpr->bEof==0 ); pExpr->bStart = 1; switch( pExpr->eType ){ @@ -182603,6 +186861,22 @@ static void fts3EvalUpdateCounts(Fts3Expr *pExpr, int nCol){ } } +/* +** This is an sqlite3Fts3ExprIterate() callback. If the Fts3Expr.aMI[] array +** has not yet been allocated, allocate and zero it. Otherwise, just zero +** it. +*/ +static int fts3AllocateMSI(Fts3Expr *pExpr, int iPhrase, void *pCtx){ + Fts3Table *pTab = (Fts3Table*)pCtx; + UNUSED_PARAMETER(iPhrase); + if( pExpr->aMI==0 ){ + pExpr->aMI = (u32 *)sqlite3_malloc64(pTab->nColumn * 3 * sizeof(u32)); + if( pExpr->aMI==0 ) return SQLITE_NOMEM; + } + memset(pExpr->aMI, 0, pTab->nColumn * 3 * sizeof(u32)); + return SQLITE_OK; +} + /* ** Expression pExpr must be of type FTSQUERY_PHRASE. ** @@ -182624,7 +186898,6 @@ static int fts3EvalGatherStats( if( pExpr->aMI==0 ){ Fts3Table *pTab = (Fts3Table *)pCsr->base.pVtab; Fts3Expr *pRoot; /* Root of NEAR expression */ - Fts3Expr *p; /* Iterator used for several purposes */ sqlite3_int64 iPrevId = pCsr->iPrevId; sqlite3_int64 iDocid; @@ -182632,7 +186905,9 @@ static int fts3EvalGatherStats( /* Find the root of the NEAR expression */ pRoot = pExpr; - while( pRoot->pParent && pRoot->pParent->eType==FTSQUERY_NEAR ){ + while( pRoot->pParent + && (pRoot->pParent->eType==FTSQUERY_NEAR || pRoot->bDeferred) + ){ pRoot = pRoot->pParent; } iDocid = pRoot->iDocid; @@ -182640,14 +186915,8 @@ static int fts3EvalGatherStats( assert( pRoot->bStart ); /* Allocate space for the aMSI[] array of each FTSQUERY_PHRASE node */ - for(p=pRoot; p; p=p->pLeft){ - Fts3Expr *pE = (p->eType==FTSQUERY_PHRASE?p:p->pRight); - assert( pE->aMI==0 ); - pE->aMI = (u32 *)sqlite3_malloc64(pTab->nColumn * 3 * sizeof(u32)); - if( !pE->aMI ) return SQLITE_NOMEM; - memset(pE->aMI, 0, pTab->nColumn * 3 * sizeof(u32)); - } - + rc = sqlite3Fts3ExprIterate(pRoot, fts3AllocateMSI, (void*)pTab); + if( rc!=SQLITE_OK ) return rc; fts3EvalRestart(pCsr, pRoot, &rc); while( pCsr->isEof==0 && rc==SQLITE_OK ){ @@ -182803,6 +187072,7 @@ SQLITE_PRIVATE int sqlite3Fts3EvalPhrasePoslist( u8 bTreeEof = 0; Fts3Expr *p; /* Used to iterate from pExpr to root */ Fts3Expr *pNear; /* Most senior NEAR ancestor (or pExpr) */ + Fts3Expr *pRun; /* Closest non-deferred ancestor of pNear */ int bMatch; /* Check if this phrase descends from an OR expression node. If not, @@ -182817,25 +187087,30 @@ SQLITE_PRIVATE int sqlite3Fts3EvalPhrasePoslist( if( p->bEof ) bTreeEof = 1; } if( bOr==0 ) return SQLITE_OK; + pRun = pNear; + while( pRun->bDeferred ){ + assert( pRun->pParent ); + pRun = pRun->pParent; + } /* This is the descendent of an OR node. In this case we cannot use ** an incremental phrase. Load the entire doclist for the phrase ** into memory in this case. */ if( pPhrase->bIncr ){ - int bEofSave = pNear->bEof; - fts3EvalRestart(pCsr, pNear, &rc); - while( rc==SQLITE_OK && !pNear->bEof ){ - fts3EvalNextRow(pCsr, pNear, &rc); - if( bEofSave==0 && pNear->iDocid==iDocid ) break; + int bEofSave = pRun->bEof; + fts3EvalRestart(pCsr, pRun, &rc); + while( rc==SQLITE_OK && !pRun->bEof ){ + fts3EvalNextRow(pCsr, pRun, &rc); + if( bEofSave==0 && pRun->iDocid==iDocid ) break; } assert( rc!=SQLITE_OK || pPhrase->bIncr==0 ); - if( rc==SQLITE_OK && pNear->bEof!=bEofSave ){ + if( rc==SQLITE_OK && pRun->bEof!=bEofSave ){ rc = FTS_CORRUPT_VTAB; } } if( bTreeEof ){ - while( rc==SQLITE_OK && !pNear->bEof ){ - fts3EvalNextRow(pCsr, pNear, &rc); + while( rc==SQLITE_OK && !pRun->bEof ){ + fts3EvalNextRow(pCsr, pRun, &rc); } } if( rc!=SQLITE_OK ) return rc; @@ -189751,16 +194026,18 @@ static int fts3MsrBufferData( char *pList, i64 nList ){ - if( nList>pMsr->nBuffer ){ + if( (nList+FTS3_NODE_PADDING)>pMsr->nBuffer ){ char *pNew; - pMsr->nBuffer = nList*2; - pNew = (char *)sqlite3_realloc64(pMsr->aBuffer, pMsr->nBuffer); + int nNew = nList*2 + FTS3_NODE_PADDING; + pNew = (char *)sqlite3_realloc64(pMsr->aBuffer, nNew); if( !pNew ) return SQLITE_NOMEM; pMsr->aBuffer = pNew; + pMsr->nBuffer = nNew; } assert( nList>0 ); memcpy(pMsr->aBuffer, pList, nList); + memset(&pMsr->aBuffer[nList], 0, FTS3_NODE_PADDING); return SQLITE_OK; } @@ -192942,7 +197219,7 @@ typedef sqlite3_int64 i64; /* -** Used as an fts3ExprIterate() context when loading phrase doclists to +** Used as an sqlite3Fts3ExprIterate() context when loading phrase doclists to ** Fts3Expr.aDoclist[]/nDoclist. */ typedef struct LoadDoclistCtx LoadDoclistCtx; @@ -192986,7 +197263,7 @@ struct SnippetFragment { }; /* -** This type is used as an fts3ExprIterate() context object while +** This type is used as an sqlite3Fts3ExprIterate() context object while ** accumulating the data returned by the matchinfo() function. */ typedef struct MatchInfo MatchInfo; @@ -193145,7 +197422,7 @@ static void fts3GetDeltaPosition(char **pp, i64 *piPos){ } /* -** Helper function for fts3ExprIterate() (see below). +** Helper function for sqlite3Fts3ExprIterate() (see below). */ static int fts3ExprIterate2( Fts3Expr *pExpr, /* Expression to iterate phrases of */ @@ -193179,7 +197456,7 @@ static int fts3ExprIterate2( ** Otherwise, SQLITE_OK is returned after a callback has been made for ** all eligible phrase nodes. */ -static int fts3ExprIterate( +SQLITE_PRIVATE int sqlite3Fts3ExprIterate( Fts3Expr *pExpr, /* Expression to iterate phrases of */ int (*x)(Fts3Expr*,int,void*), /* Callback function to invoke for phrases */ void *pCtx /* Second argument to pass to callback */ @@ -193188,10 +197465,9 @@ static int fts3ExprIterate( return fts3ExprIterate2(pExpr, &iPhrase, x, pCtx); } - /* -** This is an fts3ExprIterate() callback used while loading the doclists -** for each phrase into Fts3Expr.aDoclist[]/nDoclist. See also +** This is an sqlite3Fts3ExprIterate() callback used while loading the +** doclists for each phrase into Fts3Expr.aDoclist[]/nDoclist. See also ** fts3ExprLoadDoclists(). */ static int fts3ExprLoadDoclistsCb(Fts3Expr *pExpr, int iPhrase, void *ctx){ @@ -193223,9 +197499,9 @@ static int fts3ExprLoadDoclists( int *pnToken /* OUT: Number of tokens in query */ ){ int rc; /* Return Code */ - LoadDoclistCtx sCtx = {0,0,0}; /* Context for fts3ExprIterate() */ + LoadDoclistCtx sCtx = {0,0,0}; /* Context for sqlite3Fts3ExprIterate() */ sCtx.pCsr = pCsr; - rc = fts3ExprIterate(pCsr->pExpr, fts3ExprLoadDoclistsCb, (void *)&sCtx); + rc = sqlite3Fts3ExprIterate(pCsr->pExpr,fts3ExprLoadDoclistsCb,(void*)&sCtx); if( pnPhrase ) *pnPhrase = sCtx.nPhrase; if( pnToken ) *pnToken = sCtx.nToken; return rc; @@ -193238,7 +197514,7 @@ static int fts3ExprPhraseCountCb(Fts3Expr *pExpr, int iPhrase, void *ctx){ } static int fts3ExprPhraseCount(Fts3Expr *pExpr){ int nPhrase = 0; - (void)fts3ExprIterate(pExpr, fts3ExprPhraseCountCb, (void *)&nPhrase); + (void)sqlite3Fts3ExprIterate(pExpr, fts3ExprPhraseCountCb, (void *)&nPhrase); return nPhrase; } @@ -193366,8 +197642,9 @@ static void fts3SnippetDetails( } /* -** This function is an fts3ExprIterate() callback used by fts3BestSnippet(). -** Each invocation populates an element of the SnippetIter.aPhrase[] array. +** This function is an sqlite3Fts3ExprIterate() callback used by +** fts3BestSnippet(). Each invocation populates an element of the +** SnippetIter.aPhrase[] array. */ static int fts3SnippetFindPositions(Fts3Expr *pExpr, int iPhrase, void *ctx){ SnippetIter *p = (SnippetIter *)ctx; @@ -193457,7 +197734,9 @@ static int fts3BestSnippet( sIter.nSnippet = nSnippet; sIter.nPhrase = nList; sIter.iCurrent = -1; - rc = fts3ExprIterate(pCsr->pExpr, fts3SnippetFindPositions, (void*)&sIter); + rc = sqlite3Fts3ExprIterate( + pCsr->pExpr, fts3SnippetFindPositions, (void*)&sIter + ); if( rc==SQLITE_OK ){ /* Set the *pmSeen output variable. */ @@ -193818,10 +198097,10 @@ static int fts3ExprLHitGather( } /* -** fts3ExprIterate() callback used to collect the "global" matchinfo stats -** for a single query. +** sqlite3Fts3ExprIterate() callback used to collect the "global" matchinfo +** stats for a single query. ** -** fts3ExprIterate() callback to load the 'global' elements of a +** sqlite3Fts3ExprIterate() callback to load the 'global' elements of a ** FTS3_MATCHINFO_HITS matchinfo array. The global stats are those elements ** of the matchinfo array that are constant for all rows returned by the ** current query. @@ -193856,7 +198135,7 @@ static int fts3ExprGlobalHitsCb( } /* -** fts3ExprIterate() callback used to collect the "local" part of the +** sqlite3Fts3ExprIterate() callback used to collect the "local" part of the ** FTS3_MATCHINFO_HITS array. The local stats are those elements of the ** array that are different for each row returned by the query. */ @@ -194052,7 +198331,7 @@ static int fts3MatchinfoLcs(Fts3Cursor *pCsr, MatchInfo *pInfo){ **/ aIter = sqlite3Fts3MallocZero(sizeof(LcsIterator) * pCsr->nPhrase); if( !aIter ) return SQLITE_NOMEM; - (void)fts3ExprIterate(pCsr->pExpr, fts3MatchinfoLcsCb, (void*)aIter); + (void)sqlite3Fts3ExprIterate(pCsr->pExpr, fts3MatchinfoLcsCb, (void*)aIter); for(i=0; inPhrase; i++){ LcsIterator *pIter = &aIter[i]; @@ -194229,11 +198508,11 @@ static int fts3MatchinfoValues( rc = fts3MatchinfoSelectDoctotal(pTab, &pSelect, &pInfo->nDoc,0,0); if( rc!=SQLITE_OK ) break; } - rc = fts3ExprIterate(pExpr, fts3ExprGlobalHitsCb,(void*)pInfo); + rc = sqlite3Fts3ExprIterate(pExpr, fts3ExprGlobalHitsCb,(void*)pInfo); sqlite3Fts3EvalTestDeferred(pCsr, &rc); if( rc!=SQLITE_OK ) break; } - (void)fts3ExprIterate(pExpr, fts3ExprLocalHitsCb,(void*)pInfo); + (void)sqlite3Fts3ExprIterate(pExpr, fts3ExprLocalHitsCb,(void*)pInfo); break; } } @@ -194456,7 +198735,7 @@ struct TermOffsetCtx { }; /* -** This function is an fts3ExprIterate() callback used by sqlite3Fts3Offsets(). +** This function is an sqlite3Fts3ExprIterate() callback used by sqlite3Fts3Offsets(). */ static int fts3ExprTermOffsetInit(Fts3Expr *pExpr, int iPhrase, void *ctx){ TermOffsetCtx *p = (TermOffsetCtx *)ctx; @@ -194538,7 +198817,9 @@ SQLITE_PRIVATE void sqlite3Fts3Offsets( */ sCtx.iCol = iCol; sCtx.iTerm = 0; - rc = fts3ExprIterate(pCsr->pExpr, fts3ExprTermOffsetInit, (void*)&sCtx); + rc = sqlite3Fts3ExprIterate( + pCsr->pExpr, fts3ExprTermOffsetInit, (void*)&sCtx + ); if( rc!=SQLITE_OK ) goto offsets_out; /* Retreive the text stored in column iCol. If an SQL NULL is stored @@ -195545,6 +199826,7 @@ static const char * const jsonType[] = { #define JNODE_PATCH 0x10 /* Patch with JsonNode.u.pPatch */ #define JNODE_APPEND 0x20 /* More ARRAY/OBJECT entries at u.iAppend */ #define JNODE_LABEL 0x40 /* Is a label of an object */ +#define JNODE_JSON5 0x80 /* Node contains JSON5 enhancements */ /* A single node of parsed JSON @@ -195571,10 +199853,12 @@ struct JsonParse { JsonNode *aNode; /* Array of nodes containing the parse */ const char *zJson; /* Original JSON string */ u32 *aUp; /* Index of parent of each node */ - u8 oom; /* Set to true if out of memory */ - u8 nErr; /* Number of errors seen */ u16 iDepth; /* Nesting depth */ + u8 nErr; /* Number of errors seen */ + u8 oom; /* Set to true if out of memory */ + u8 hasNonstd; /* True if input uses non-standard features like JSON5 */ int nJson; /* Length of the zJson string in bytes */ + u32 iErr; /* Error location in zJson[] */ u32 iHold; /* Replace cache line with the lowest iHold value */ }; @@ -195582,10 +199866,10 @@ struct JsonParse { ** Maximum nesting depth of JSON for this implementation. ** ** This limit is needed to avoid a stack overflow in the recursive -** descent parser. A depth of 2000 is far deeper than any sane JSON -** should go. +** descent parser. A depth of 1000 is far deeper than any sane JSON +** should go. Historical note: This limit was 2000 prior to version 3.42.0 */ -#define JSON_MAX_DEPTH 2000 +#define JSON_MAX_DEPTH 1000 /************************************************************************** ** Utility routines for dealing with JsonString objects @@ -195735,6 +200019,129 @@ static void jsonAppendString(JsonString *p, const char *zIn, u32 N){ assert( p->nUsednAlloc ); } +/* +** The zIn[0..N] string is a JSON5 string literal. Append to p a translation +** of the string literal that standard JSON and that omits all JSON5 +** features. +*/ +static void jsonAppendNormalizedString(JsonString *p, const char *zIn, u32 N){ + u32 i; + jsonAppendChar(p, '"'); + zIn++; + N -= 2; + while( N>0 ){ + for(i=0; i0 ){ + jsonAppendRaw(p, zIn, i); + zIn += i; + N -= i; + if( N==0 ) break; + } + assert( zIn[0]=='\\' ); + switch( (u8)zIn[1] ){ + case '\'': + jsonAppendChar(p, '\''); + break; + case 'v': + jsonAppendRaw(p, "\\u0009", 6); + break; + case 'x': + jsonAppendRaw(p, "\\u00", 4); + jsonAppendRaw(p, &zIn[2], 2); + zIn += 2; + N -= 2; + break; + case '0': + jsonAppendRaw(p, "\\u0000", 6); + break; + case '\r': + if( zIn[2]=='\n' ){ + zIn++; + N--; + } + break; + case '\n': + break; + case 0xe2: + assert( N>=4 ); + assert( 0x80==(u8)zIn[2] ); + assert( 0xa8==(u8)zIn[3] || 0xa9==(u8)zIn[3] ); + zIn += 2; + N -= 2; + break; + default: + jsonAppendRaw(p, zIn, 2); + break; + } + zIn += 2; + N -= 2; + } + jsonAppendChar(p, '"'); +} + +/* +** The zIn[0..N] string is a JSON5 integer literal. Append to p a translation +** of the string literal that standard JSON and that omits all JSON5 +** features. +*/ +static void jsonAppendNormalizedInt(JsonString *p, const char *zIn, u32 N){ + if( zIn[0]=='+' ){ + zIn++; + N--; + }else if( zIn[0]=='-' ){ + jsonAppendChar(p, '-'); + zIn++; + N--; + } + if( zIn[0]=='0' && (zIn[1]=='x' || zIn[1]=='X') ){ + sqlite3_int64 i = 0; + int rc = sqlite3DecOrHexToI64(zIn, &i); + if( rc<=1 ){ + jsonPrintf(100,p,"%lld",i); + }else{ + assert( rc==2 ); + jsonAppendRaw(p, "9.0e999", 7); + } + return; + } + jsonAppendRaw(p, zIn, N); +} + +/* +** The zIn[0..N] string is a JSON5 real literal. Append to p a translation +** of the string literal that standard JSON and that omits all JSON5 +** features. +*/ +static void jsonAppendNormalizedReal(JsonString *p, const char *zIn, u32 N){ + u32 i; + if( zIn[0]=='+' ){ + zIn++; + N--; + }else if( zIn[0]=='-' ){ + jsonAppendChar(p, '-'); + zIn++; + N--; + } + if( zIn[0]=='.' ){ + jsonAppendChar(p, '0'); + } + for(i=0; i0 ){ + jsonAppendRaw(p, zIn, N); + } +} + + + /* ** Append a function parameter value to the JSON string under ** construction. @@ -195748,8 +200155,11 @@ static void jsonAppendValue( jsonAppendRaw(p, "null", 4); break; } - case SQLITE_INTEGER: case SQLITE_FLOAT: { + jsonPrintf(100, p, "%!0.15g", sqlite3_value_double(pValue)); + break; + } + case SQLITE_INTEGER: { const char *z = (const char*)sqlite3_value_text(pValue); u32 n = (u32)sqlite3_value_bytes(pValue); jsonAppendRaw(p, z, n); @@ -195862,17 +200272,38 @@ static void jsonRenderNode( break; } case JSON_STRING: { + assert( pNode->eU==1 ); if( pNode->jnFlags & JNODE_RAW ){ - assert( pNode->eU==1 ); - jsonAppendString(pOut, pNode->u.zJContent, pNode->n); - break; + if( pNode->jnFlags & JNODE_LABEL ){ + jsonAppendChar(pOut, '"'); + jsonAppendRaw(pOut, pNode->u.zJContent, pNode->n); + jsonAppendChar(pOut, '"'); + }else{ + jsonAppendString(pOut, pNode->u.zJContent, pNode->n); + } + }else if( pNode->jnFlags & JNODE_JSON5 ){ + jsonAppendNormalizedString(pOut, pNode->u.zJContent, pNode->n); + }else{ + jsonAppendRaw(pOut, pNode->u.zJContent, pNode->n); } - /* no break */ deliberate_fall_through + break; + } + case JSON_REAL: { + assert( pNode->eU==1 ); + if( pNode->jnFlags & JNODE_JSON5 ){ + jsonAppendNormalizedReal(pOut, pNode->u.zJContent, pNode->n); + }else{ + jsonAppendRaw(pOut, pNode->u.zJContent, pNode->n); + } + break; } - case JSON_REAL: case JSON_INT: { assert( pNode->eU==1 ); - jsonAppendRaw(pOut, pNode->u.zJContent, pNode->n); + if( pNode->jnFlags & JNODE_JSON5 ){ + jsonAppendNormalizedInt(pOut, pNode->u.zJContent, pNode->n); + }else{ + jsonAppendRaw(pOut, pNode->u.zJContent, pNode->n); + } break; } case JSON_ARRAY: { @@ -195988,59 +200419,41 @@ static void jsonReturn( } case JSON_INT: { sqlite3_int64 i = 0; + int rc; + int bNeg = 0; const char *z; + + assert( pNode->eU==1 ); z = pNode->u.zJContent; - if( z[0]=='-' ){ z++; } - while( z[0]>='0' && z[0]<='9' ){ - unsigned v = *(z++) - '0'; - if( i>=LARGEST_INT64/10 ){ - if( i>LARGEST_INT64/10 ) goto int_as_real; - if( z[0]>='0' && z[0]<='9' ) goto int_as_real; - if( v==9 ) goto int_as_real; - if( v==8 ){ - if( pNode->u.zJContent[0]=='-' ){ - sqlite3_result_int64(pCtx, SMALLEST_INT64); - goto int_done; - }else{ - goto int_as_real; - } - } - } - i = i*10 + v; + if( z[0]=='-' ){ z++; bNeg = 1; } + else if( z[0]=='+' ){ z++; } + rc = sqlite3DecOrHexToI64(z, &i); + if( rc<=1 ){ + sqlite3_result_int64(pCtx, bNeg ? -i : i); + }else if( rc==3 && bNeg ){ + sqlite3_result_int64(pCtx, SMALLEST_INT64); + }else{ + goto to_double; } - if( pNode->u.zJContent[0]=='-' ){ i = -i; } - sqlite3_result_int64(pCtx, i); - int_done: break; - int_as_real: ; /* no break */ deliberate_fall_through } case JSON_REAL: { double r; -#ifdef SQLITE_AMALGAMATION const char *z; assert( pNode->eU==1 ); + to_double: z = pNode->u.zJContent; sqlite3AtoF(z, &r, sqlite3Strlen30(z), SQLITE_UTF8); -#else - assert( pNode->eU==1 ); - r = strtod(pNode->u.zJContent, 0); -#endif sqlite3_result_double(pCtx, r); break; } case JSON_STRING: { -#if 0 /* Never happens because JNODE_RAW is only set by json_set(), - ** json_insert() and json_replace() and those routines do not - ** call jsonReturn() */ if( pNode->jnFlags & JNODE_RAW ){ assert( pNode->eU==1 ); sqlite3_result_text(pCtx, pNode->u.zJContent, pNode->n, SQLITE_TRANSIENT); - }else -#endif - assert( (pNode->jnFlags & JNODE_RAW)==0 ); - if( (pNode->jnFlags & JNODE_ESCAPE)==0 ){ + }else if( (pNode->jnFlags & JNODE_ESCAPE)==0 ){ /* JSON formatted without any backslash-escapes */ assert( pNode->eU==1 ); sqlite3_result_text(pCtx, pNode->u.zJContent+1, pNode->n-2, @@ -196052,18 +200465,17 @@ static void jsonReturn( const char *z; char *zOut; u32 j; + u32 nOut = n; assert( pNode->eU==1 ); z = pNode->u.zJContent; - zOut = sqlite3_malloc( n+1 ); + zOut = sqlite3_malloc( nOut+1 ); if( zOut==0 ){ sqlite3_result_error_nomem(pCtx); break; } for(i=1, j=0; iaNode[pParse->nNode]; - p->eType = (u8)eType; - p->jnFlags = 0; + p->eType = (u8)(eType & 0xff); + p->jnFlags = (u8)(eType >> 8); VVA( p->eU = zContent ? 1 : 0 ); p->n = n; p->u.zJContent = zContent; return pParse->nNode++; } +/* +** Return true if z[] begins with 2 (or more) hexadecimal digits +*/ +static int jsonIs2Hex(const char *z){ + return sqlite3Isxdigit(z[0]) && sqlite3Isxdigit(z[1]); +} + /* ** Return true if z[] begins with 4 (or more) hexadecimal digits */ static int jsonIs4Hex(const char *z){ - int i; - for(i=0; i<4; i++) if( !sqlite3Isxdigit(z[i]) ) return 0; - return 1; + return jsonIs2Hex(z) && jsonIs2Hex(&z[2]); } +/* +** Return the number of bytes of JSON5 whitespace at the beginning of +** the input string z[]. +** +** JSON5 whitespace consists of any of the following characters: +** +** Unicode UTF-8 Name +** U+0009 09 horizontal tab +** U+000a 0a line feed +** U+000b 0b vertical tab +** U+000c 0c form feed +** U+000d 0d carriage return +** U+0020 20 space +** U+00a0 c2 a0 non-breaking space +** U+1680 e1 9a 80 ogham space mark +** U+2000 e2 80 80 en quad +** U+2001 e2 80 81 em quad +** U+2002 e2 80 82 en space +** U+2003 e2 80 83 em space +** U+2004 e2 80 84 three-per-em space +** U+2005 e2 80 85 four-per-em space +** U+2006 e2 80 86 six-per-em space +** U+2007 e2 80 87 figure space +** U+2008 e2 80 88 punctuation space +** U+2009 e2 80 89 thin space +** U+200a e2 80 8a hair space +** U+2028 e2 80 a8 line separator +** U+2029 e2 80 a9 paragraph separator +** U+202f e2 80 af narrow no-break space (NNBSP) +** U+205f e2 81 9f medium mathematical space (MMSP) +** U+3000 e3 80 80 ideographical space +** U+FEFF ef bb bf byte order mark +** +** In addition, comments between '/', '*' and '*', '/' and +** from '/', '/' to end-of-line are also considered to be whitespace. +*/ +static int json5Whitespace(const char *zIn){ + int n = 0; + const u8 *z = (u8*)zIn; + while( 1 /*exit by "goto whitespace_done"*/ ){ + switch( z[n] ){ + case 0x09: + case 0x0a: + case 0x0b: + case 0x0c: + case 0x0d: + case 0x20: { + n++; + break; + } + case '/': { + if( z[n+1]=='*' && z[n+2]!=0 ){ + int j; + for(j=n+3; z[j]!='/' || z[j-1]!='*'; j++){ + if( z[j]==0 ) goto whitespace_done; + } + n = j+1; + break; + }else if( z[n+1]=='/' ){ + int j; + char c; + for(j=n+2; (c = z[j])!=0; j++){ + if( c=='\n' || c=='\r' ) break; + if( 0xe2==(u8)c && 0x80==(u8)z[j+1] + && (0xa8==(u8)z[j+2] || 0xa9==(u8)z[j+2]) + ){ + j += 2; + break; + } + } + n = j; + if( z[n] ) n++; + break; + } + goto whitespace_done; + } + case 0xc2: { + if( z[n+1]==0xa0 ){ + n += 2; + break; + } + goto whitespace_done; + } + case 0xe1: { + if( z[n+1]==0x9a && z[n+2]==0x80 ){ + n += 3; + break; + } + goto whitespace_done; + } + case 0xe2: { + if( z[n+1]==0x80 ){ + u8 c = z[n+2]; + if( c<0x80 ) goto whitespace_done; + if( c<=0x8a || c==0xa8 || c==0xa9 || c==0xaf ){ + n += 3; + break; + } + }else if( z[n+1]==0x81 && z[n+2]==0x9f ){ + n += 3; + break; + } + goto whitespace_done; + } + case 0xe3: { + if( z[n+1]==0x80 && z[n+2]==0x80 ){ + n += 3; + break; + } + goto whitespace_done; + } + case 0xef: { + if( z[n+1]==0xbb && z[n+2]==0xbf ){ + n += 3; + break; + } + goto whitespace_done; + } + default: { + goto whitespace_done; + } + } + } + whitespace_done: + return n; +} + +/* +** Extra floating-point literals to allow in JSON. +*/ +static const struct NanInfName { + char c1; + char c2; + char n; + char eType; + char nRepl; + char *zMatch; + char *zRepl; +} aNanInfName[] = { + { 'i', 'I', 3, JSON_REAL, 7, "inf", "9.0e999" }, + { 'i', 'I', 8, JSON_REAL, 7, "infinity", "9.0e999" }, + { 'n', 'N', 3, JSON_NULL, 4, "NaN", "null" }, + { 'q', 'Q', 4, JSON_NULL, 4, "QNaN", "null" }, + { 's', 'S', 4, JSON_NULL, 4, "SNaN", "null" }, +}; + /* ** Parse a single JSON value which begins at pParse->zJson[i]. Return the ** index of the first character past the end of the value parsed. ** -** Return negative for a syntax error. Special cases: return -2 if the -** first non-whitespace character is '}' and return -3 if the first -** non-whitespace character is ']'. +** Special return values: +** +** 0 End if input +** -1 Syntax error +** -2 '}' seen +** -3 ']' seen +** -4 ',' seen +** -5 ':' seen */ static int jsonParseValue(JsonParse *pParse, u32 i){ char c; @@ -196210,151 +200796,430 @@ static int jsonParseValue(JsonParse *pParse, u32 i){ int x; JsonNode *pNode; const char *z = pParse->zJson; - while( fast_isspace(z[i]) ){ i++; } - if( (c = z[i])=='{' ){ +json_parse_restart: + switch( (u8)z[i] ){ + case '{': { /* Parse object */ iThis = jsonParseAddNode(pParse, JSON_OBJECT, 0, 0); if( iThis<0 ) return -1; + if( ++pParse->iDepth > JSON_MAX_DEPTH ){ + pParse->iErr = i; + return -1; + } for(j=i+1;;j++){ - while( fast_isspace(z[j]) ){ j++; } - if( ++pParse->iDepth > JSON_MAX_DEPTH ) return -1; + u32 nNode = pParse->nNode; x = jsonParseValue(pParse, j); - if( x<0 ){ - pParse->iDepth--; - if( x==(-2) && pParse->nNode==(u32)iThis+1 ) return j+1; - return -1; + if( x<=0 ){ + if( x==(-2) ){ + j = pParse->iErr; + if( pParse->nNode!=(u32)iThis+1 ) pParse->hasNonstd = 1; + break; + } + j += json5Whitespace(&z[j]); + if( sqlite3JsonId1(z[j]) + || (z[j]=='\\' && z[j+1]=='u' && jsonIs4Hex(&z[j+2])) + ){ + int k = j+1; + while( (sqlite3JsonId2(z[k]) && json5Whitespace(&z[k])==0) + || (z[k]=='\\' && z[k+1]=='u' && jsonIs4Hex(&z[k+2])) + ){ + k++; + } + jsonParseAddNode(pParse, JSON_STRING | (JNODE_RAW<<8), k-j, &z[j]); + pParse->hasNonstd = 1; + x = k; + }else{ + if( x!=-1 ) pParse->iErr = j; + return -1; + } } if( pParse->oom ) return -1; - pNode = &pParse->aNode[pParse->nNode-1]; - if( pNode->eType!=JSON_STRING ) return -1; + pNode = &pParse->aNode[nNode]; + if( pNode->eType!=JSON_STRING ){ + pParse->iErr = j; + return -1; + } pNode->jnFlags |= JNODE_LABEL; j = x; - while( fast_isspace(z[j]) ){ j++; } - if( z[j]!=':' ) return -1; - j++; + if( z[j]==':' ){ + j++; + }else{ + if( fast_isspace(z[j]) ){ + do{ j++; }while( fast_isspace(z[j]) ); + if( z[j]==':' ){ + j++; + goto parse_object_value; + } + } + x = jsonParseValue(pParse, j); + if( x!=(-5) ){ + if( x!=(-1) ) pParse->iErr = j; + return -1; + } + j = pParse->iErr+1; + } + parse_object_value: x = jsonParseValue(pParse, j); - pParse->iDepth--; - if( x<0 ) return -1; + if( x<=0 ){ + if( x!=(-1) ) pParse->iErr = j; + return -1; + } j = x; - while( fast_isspace(z[j]) ){ j++; } - c = z[j]; - if( c==',' ) continue; - if( c!='}' ) return -1; - break; + if( z[j]==',' ){ + continue; + }else if( z[j]=='}' ){ + break; + }else{ + if( fast_isspace(z[j]) ){ + do{ j++; }while( fast_isspace(z[j]) ); + if( z[j]==',' ){ + continue; + }else if( z[j]=='}' ){ + break; + } + } + x = jsonParseValue(pParse, j); + if( x==(-4) ){ + j = pParse->iErr; + continue; + } + if( x==(-2) ){ + j = pParse->iErr; + break; + } + } + pParse->iErr = j; + return -1; } pParse->aNode[iThis].n = pParse->nNode - (u32)iThis - 1; + pParse->iDepth--; return j+1; - }else if( c=='[' ){ + } + case '[': { /* Parse array */ iThis = jsonParseAddNode(pParse, JSON_ARRAY, 0, 0); if( iThis<0 ) return -1; + if( ++pParse->iDepth > JSON_MAX_DEPTH ){ + pParse->iErr = i; + return -1; + } memset(&pParse->aNode[iThis].u, 0, sizeof(pParse->aNode[iThis].u)); for(j=i+1;;j++){ - while( fast_isspace(z[j]) ){ j++; } - if( ++pParse->iDepth > JSON_MAX_DEPTH ) return -1; x = jsonParseValue(pParse, j); - pParse->iDepth--; - if( x<0 ){ - if( x==(-3) && pParse->nNode==(u32)iThis+1 ) return j+1; + if( x<=0 ){ + if( x==(-3) ){ + j = pParse->iErr; + if( pParse->nNode!=(u32)iThis+1 ) pParse->hasNonstd = 1; + break; + } + if( x!=(-1) ) pParse->iErr = j; return -1; } j = x; - while( fast_isspace(z[j]) ){ j++; } - c = z[j]; - if( c==',' ) continue; - if( c!=']' ) return -1; - break; + if( z[j]==',' ){ + continue; + }else if( z[j]==']' ){ + break; + }else{ + if( fast_isspace(z[j]) ){ + do{ j++; }while( fast_isspace(z[j]) ); + if( z[j]==',' ){ + continue; + }else if( z[j]==']' ){ + break; + } + } + x = jsonParseValue(pParse, j); + if( x==(-4) ){ + j = pParse->iErr; + continue; + } + if( x==(-3) ){ + j = pParse->iErr; + break; + } + } + pParse->iErr = j; + return -1; } pParse->aNode[iThis].n = pParse->nNode - (u32)iThis - 1; + pParse->iDepth--; return j+1; - }else if( c=='"' ){ + } + case '\'': { + u8 jnFlags; + char cDelim; + pParse->hasNonstd = 1; + jnFlags = JNODE_JSON5; + goto parse_string; + case '"': /* Parse string */ - u8 jnFlags = 0; + jnFlags = 0; + parse_string: + cDelim = z[i]; j = i+1; for(;;){ c = z[j]; if( (c & ~0x1f)==0 ){ /* Control characters are not allowed in strings */ + pParse->iErr = j; return -1; } if( c=='\\' ){ c = z[++j]; if( c=='"' || c=='\\' || c=='/' || c=='b' || c=='f' || c=='n' || c=='r' || c=='t' - || (c=='u' && jsonIs4Hex(z+j+1)) ){ - jnFlags = JNODE_ESCAPE; + || (c=='u' && jsonIs4Hex(&z[j+1])) ){ + jnFlags |= JNODE_ESCAPE; + }else if( c=='\'' || c=='0' || c=='v' || c=='\n' + || (0xe2==(u8)c && 0x80==(u8)z[j+1] + && (0xa8==(u8)z[j+2] || 0xa9==(u8)z[j+2])) + || (c=='x' && jsonIs2Hex(&z[j+1])) ){ + jnFlags |= (JNODE_ESCAPE|JNODE_JSON5); + pParse->hasNonstd = 1; + }else if( c=='\r' ){ + if( z[j+1]=='\n' ) j++; + jnFlags |= (JNODE_ESCAPE|JNODE_JSON5); + pParse->hasNonstd = 1; }else{ + pParse->iErr = j; return -1; } - }else if( c=='"' ){ + }else if( c==cDelim ){ break; } j++; } - jsonParseAddNode(pParse, JSON_STRING, j+1-i, &z[i]); - if( !pParse->oom ) pParse->aNode[pParse->nNode-1].jnFlags = jnFlags; + jsonParseAddNode(pParse, JSON_STRING | (jnFlags<<8), j+1-i, &z[i]); return j+1; - }else if( c=='n' - && strncmp(z+i,"null",4)==0 - && !sqlite3Isalnum(z[i+4]) ){ - jsonParseAddNode(pParse, JSON_NULL, 0, 0); - return i+4; - }else if( c=='t' - && strncmp(z+i,"true",4)==0 - && !sqlite3Isalnum(z[i+4]) ){ - jsonParseAddNode(pParse, JSON_TRUE, 0, 0); - return i+4; - }else if( c=='f' - && strncmp(z+i,"false",5)==0 - && !sqlite3Isalnum(z[i+5]) ){ - jsonParseAddNode(pParse, JSON_FALSE, 0, 0); - return i+5; - }else if( c=='-' || (c>='0' && c<='9') ){ - /* Parse number */ - u8 seenDP = 0; - u8 seenE = 0; - assert( '-' < '0' ); - if( c<='0' ){ - j = c=='-' ? i+1 : i; - if( z[j]=='0' && z[j+1]>='0' && z[j+1]<='9' ) return -1; + } + case 't': { + if( strncmp(z+i,"true",4)==0 && !sqlite3Isalnum(z[i+4]) ){ + jsonParseAddNode(pParse, JSON_TRUE, 0, 0); + return i+4; } - j = i+1; - for(;; j++){ + pParse->iErr = i; + return -1; + } + case 'f': { + if( strncmp(z+i,"false",5)==0 && !sqlite3Isalnum(z[i+5]) ){ + jsonParseAddNode(pParse, JSON_FALSE, 0, 0); + return i+5; + } + pParse->iErr = i; + return -1; + } + case '+': { + u8 seenDP, seenE, jnFlags; + pParse->hasNonstd = 1; + jnFlags = JNODE_JSON5; + goto parse_number; + case '.': + if( sqlite3Isdigit(z[i+1]) ){ + pParse->hasNonstd = 1; + jnFlags = JNODE_JSON5; + seenE = 0; + seenDP = JSON_REAL; + goto parse_number_2; + } + pParse->iErr = i; + return -1; + case '-': + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + /* Parse number */ + jnFlags = 0; + parse_number: + seenDP = JSON_INT; + seenE = 0; + assert( '-' < '0' ); + assert( '+' < '0' ); + assert( '.' < '0' ); + c = z[i]; + + if( c<='0' ){ + if( c=='0' ){ + if( (z[i+1]=='x' || z[i+1]=='X') && sqlite3Isxdigit(z[i+2]) ){ + assert( seenDP==JSON_INT ); + pParse->hasNonstd = 1; + jnFlags |= JNODE_JSON5; + for(j=i+3; sqlite3Isxdigit(z[j]); j++){} + goto parse_number_finish; + }else if( sqlite3Isdigit(z[i+1]) ){ + pParse->iErr = i+1; + return -1; + } + }else{ + if( !sqlite3Isdigit(z[i+1]) ){ + /* JSON5 allows for "+Infinity" and "-Infinity" using exactly + ** that case. SQLite also allows these in any case and it allows + ** "+inf" and "-inf". */ + if( (z[i+1]=='I' || z[i+1]=='i') + && sqlite3StrNICmp(&z[i+1], "inf",3)==0 + ){ + pParse->hasNonstd = 1; + if( z[i]=='-' ){ + jsonParseAddNode(pParse, JSON_REAL, 8, "-9.0e999"); + }else{ + jsonParseAddNode(pParse, JSON_REAL, 7, "9.0e999"); + } + return i + (sqlite3StrNICmp(&z[i+4],"inity",5)==0 ? 9 : 4); + } + if( z[i+1]=='.' ){ + pParse->hasNonstd = 1; + jnFlags |= JNODE_JSON5; + goto parse_number_2; + } + pParse->iErr = i; + return -1; + } + if( z[i+1]=='0' ){ + if( sqlite3Isdigit(z[i+2]) ){ + pParse->iErr = i+1; + return -1; + }else if( (z[i+2]=='x' || z[i+2]=='X') && sqlite3Isxdigit(z[i+3]) ){ + pParse->hasNonstd = 1; + jnFlags |= JNODE_JSON5; + for(j=i+4; sqlite3Isxdigit(z[j]); j++){} + goto parse_number_finish; + } + } + } + } + parse_number_2: + for(j=i+1;; j++){ c = z[j]; - if( c>='0' && c<='9' ) continue; + if( sqlite3Isdigit(c) ) continue; if( c=='.' ){ - if( z[j-1]=='-' ) return -1; - if( seenDP ) return -1; - seenDP = 1; + if( seenDP==JSON_REAL ){ + pParse->iErr = j; + return -1; + } + seenDP = JSON_REAL; continue; } if( c=='e' || c=='E' ){ - if( z[j-1]<'0' ) return -1; - if( seenE ) return -1; - seenDP = seenE = 1; + if( z[j-1]<'0' ){ + if( ALWAYS(z[j-1]=='.') && ALWAYS(j-2>=i) && sqlite3Isdigit(z[j-2]) ){ + pParse->hasNonstd = 1; + jnFlags |= JNODE_JSON5; + }else{ + pParse->iErr = j; + return -1; + } + } + if( seenE ){ + pParse->iErr = j; + return -1; + } + seenDP = JSON_REAL; + seenE = 1; c = z[j+1]; if( c=='+' || c=='-' ){ j++; c = z[j+1]; } - if( c<'0' || c>'9' ) return -1; + if( c<'0' || c>'9' ){ + pParse->iErr = j; + return -1; + } continue; } break; } - if( z[j-1]<'0' ) return -1; - jsonParseAddNode(pParse, seenDP ? JSON_REAL : JSON_INT, - j - i, &z[i]); + if( z[j-1]<'0' ){ + if( ALWAYS(z[j-1]=='.') && ALWAYS(j-2>=i) && sqlite3Isdigit(z[j-2]) ){ + pParse->hasNonstd = 1; + jnFlags |= JNODE_JSON5; + }else{ + pParse->iErr = j; + return -1; + } + } + parse_number_finish: + jsonParseAddNode(pParse, seenDP | (jnFlags<<8), j - i, &z[i]); return j; - }else if( c=='}' ){ + } + case '}': { + pParse->iErr = i; return -2; /* End of {...} */ - }else if( c==']' ){ + } + case ']': { + pParse->iErr = i; return -3; /* End of [...] */ - }else if( c==0 ){ + } + case ',': { + pParse->iErr = i; + return -4; /* List separator */ + } + case ':': { + pParse->iErr = i; + return -5; /* Object label/value separator */ + } + case 0: { return 0; /* End of file */ - }else{ + } + case 0x09: + case 0x0a: + case 0x0d: + case 0x20: { + do{ + i++; + }while( fast_isspace(z[i]) ); + goto json_parse_restart; + } + case 0x0b: + case 0x0c: + case '/': + case 0xc2: + case 0xe1: + case 0xe2: + case 0xe3: + case 0xef: { + j = json5Whitespace(&z[i]); + if( j>0 ){ + i += j; + pParse->hasNonstd = 1; + goto json_parse_restart; + } + pParse->iErr = i; + return -1; + } + case 'n': { + if( strncmp(z+i,"null",4)==0 && !sqlite3Isalnum(z[i+4]) ){ + jsonParseAddNode(pParse, JSON_NULL, 0, 0); + return i+4; + } + /* fall-through into the default case that checks for NaN */ + } + default: { + u32 k; + int nn; + c = z[i]; + for(k=0; khasNonstd = 1; + return i + nn; + } + pParse->iErr = i; return -1; /* Syntax error */ } + } /* End switch(z[i]) */ } /* @@ -196378,7 +201243,14 @@ static int jsonParse( if( i>0 ){ assert( pParse->iDepth==0 ); while( fast_isspace(zJson[i]) ) i++; - if( zJson[i] ) i = -1; + if( zJson[i] ){ + i += json5Whitespace(&zJson[i]); + if( zJson[i] ){ + jsonParseReset(pParse); + return 1; + } + pParse->hasNonstd = 1; + } } if( i<=0 ){ if( pCtx!=0 ){ @@ -196449,6 +201321,15 @@ static int jsonParseFindParents(JsonParse *pParse){ ** is no longer valid, parse the JSON again and return the new parse, ** and also register the new parse so that it will be available for ** future sqlite3_get_auxdata() calls. +** +** If an error occurs and pErrCtx!=0 then report the error on pErrCtx +** and return NULL. +** +** If an error occurs and pErrCtx==0 then return the Parse object with +** JsonParse.nErr non-zero. If the caller invokes this routine with +** pErrCtx==0 and it gets back a JsonParse with nErr!=0, then the caller +** is responsible for invoking jsonParseFree() on the returned value. +** But the caller may invoke jsonParseFree() *only* if pParse->nErr!=0. */ static JsonParse *jsonParseCached( sqlite3_context *pCtx, @@ -196498,6 +201379,10 @@ static JsonParse *jsonParseCached( p->zJson = (char*)&p[1]; memcpy((char*)p->zJson, zJson, nJson+1); if( jsonParse(p, pErrCtx, p->zJson) ){ + if( pErrCtx==0 ){ + p->nErr = 1; + return p; + } sqlite3_free(p); return 0; } @@ -196512,7 +201397,7 @@ static JsonParse *jsonParseCached( ** Compare the OBJECT label at pNode against zKey,nKey. Return true on ** a match. */ -static int jsonLabelCompare(JsonNode *pNode, const char *zKey, u32 nKey){ +static int jsonLabelCompare(const JsonNode *pNode, const char *zKey, u32 nKey){ assert( pNode->eU==1 ); if( pNode->jnFlags & JNODE_RAW ){ if( pNode->n!=nKey ) return 0; @@ -196522,6 +201407,15 @@ static int jsonLabelCompare(JsonNode *pNode, const char *zKey, u32 nKey){ return strncmp(pNode->u.zJContent+1, zKey, nKey)==0; } } +static int jsonSameLabel(const JsonNode *p1, const JsonNode *p2){ + if( p1->jnFlags & JNODE_RAW ){ + return jsonLabelCompare(p2, p1->u.zJContent, p1->n); + }else if( p2->jnFlags & JNODE_RAW ){ + return jsonLabelCompare(p1, p2->u.zJContent, p2->n); + }else{ + return p1->n==p2->n && strncmp(p1->u.zJContent,p2->u.zJContent,p1->n)==0; + } +} /* forward declaration */ static JsonNode *jsonLookupAppend(JsonParse*,const char*,int*,const char**); @@ -196992,7 +201886,7 @@ static void jsonExtractFunc( zPath = (const char*)sqlite3_value_text(argv[1]); if( zPath==0 ) return; if( flags & JSON_ABPATH ){ - if( zPath[0]!='$' ){ + if( zPath[0]!='$' || (zPath[1]!='.' && zPath[1]!='[' && zPath[1]!=0) ){ /* The -> and ->> operators accept abbreviated PATH arguments. This ** is mostly for compatibility with PostgreSQL, but also for ** convenience. @@ -197083,12 +201977,10 @@ static JsonNode *jsonMergePatch( assert( pPatch[i].eU==1 ); nKey = pPatch[i].n; zKey = pPatch[i].u.zJContent; - assert( (pPatch[i].jnFlags & JNODE_RAW)==0 ); for(j=1; jn; j += jsonNodeSize(&pTarget[j+1])+1 ){ assert( pTarget[j].eType==JSON_STRING ); assert( pTarget[j].jnFlags & JNODE_LABEL ); - assert( (pPatch[i].jnFlags & JNODE_RAW)==0 ); - if( pTarget[j].n==nKey && strncmp(pTarget[j].u.zJContent,zKey,nKey)==0 ){ + if( jsonSameLabel(&pPatch[i], &pTarget[j]) ){ if( pTarget[j+1].jnFlags & (JNODE_REMOVE|JNODE_PATCH) ) break; if( pPatch[i+1].eType==JSON_NULL ){ pTarget[j+1].jnFlags |= JNODE_REMOVE; @@ -197375,8 +202267,8 @@ static void jsonTypeFunc( /* ** json_valid(JSON) ** -** Return 1 if JSON is a well-formed JSON string according to RFC-7159. -** Return 0 otherwise. +** Return 1 if JSON is a well-formed canonical JSON string according +** to RFC-7159. Return 0 otherwise. */ static void jsonValidFunc( sqlite3_context *ctx, @@ -197385,8 +202277,69 @@ static void jsonValidFunc( ){ JsonParse *p; /* The parse */ UNUSED_PARAMETER(argc); + if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; p = jsonParseCached(ctx, argv, 0); - sqlite3_result_int(ctx, p!=0); + if( p==0 || p->oom ){ + sqlite3_result_error_nomem(ctx); + sqlite3_free(p); + }else{ + sqlite3_result_int(ctx, p->nErr==0 && p->hasNonstd==0); + if( p->nErr ) jsonParseFree(p); + } +} + +/* +** json_error_position(JSON) +** +** If the argument is not an interpretable JSON string, then return the 1-based +** character position at which the parser first recognized that the input +** was in error. The left-most character is 1. If the string is valid +** JSON, then return 0. +** +** Note that json_valid() is only true for strictly conforming canonical JSON. +** But this routine returns zero if the input contains extension. Thus: +** +** (1) If the input X is strictly conforming canonical JSON: +** +** json_valid(X) returns true +** json_error_position(X) returns 0 +** +** (2) If the input X is JSON but it includes extension (such as JSON5) that +** are not part of RFC-8259: +** +** json_valid(X) returns false +** json_error_position(X) return 0 +** +** (3) If the input X cannot be interpreted as JSON even taking extensions +** into account: +** +** json_valid(X) return false +** json_error_position(X) returns 1 or more +*/ +static void jsonErrorFunc( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv +){ + JsonParse *p; /* The parse */ + UNUSED_PARAMETER(argc); + if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; + p = jsonParseCached(ctx, argv, 0); + if( p==0 || p->oom ){ + sqlite3_result_error_nomem(ctx); + sqlite3_free(p); + }else if( p->nErr==0 ){ + sqlite3_result_int(ctx, 0); + }else{ + int n = 1; + u32 i; + const char *z = p->zJson; + for(i=0; iiErr && ALWAYS(z[i]); i++){ + if( (z[i]&0xc0)!=0x80 ) n++; + } + sqlite3_result_int(ctx, n); + jsonParseFree(p); + } } @@ -197730,14 +202683,16 @@ static void jsonAppendObjectPathElement( assert( pNode->eU==1 ); z = pNode->u.zJContent; nn = pNode->n; - assert( nn>=2 ); - assert( z[0]=='"' ); - assert( z[nn-1]=='"' ); - if( nn>2 && sqlite3Isalpha(z[1]) ){ - for(jj=2; jjjnFlags & JNODE_RAW)==0 ){ + assert( nn>=2 ); + assert( z[0]=='"' || z[0]=='\'' ); + assert( z[nn-1]=='"' || z[0]=='\'' ); + if( nn>2 && sqlite3Isalpha(z[1]) ){ + for(jj=2; jjnOrderBy>0 + && pIdxInfo->aOrderBy[0].iColumn<0 + && pIdxInfo->aOrderBy[0].desc==0 + ){ + pIdxInfo->orderByConsumed = 1; + } + if( (unusableMask & ~idxMask)!=0 ){ /* If there are any unusable constraints on JSON or ROOT, then reject ** this entire plan */ @@ -198090,6 +203052,7 @@ SQLITE_PRIVATE void sqlite3RegisterJsonFunctions(void){ JFUNCTION(json_array, -1, 0, jsonArrayFunc), JFUNCTION(json_array_length, 1, 0, jsonArrayLengthFunc), JFUNCTION(json_array_length, 2, 0, jsonArrayLengthFunc), + JFUNCTION(json_error_position,1, 0, jsonErrorFunc), JFUNCTION(json_extract, -1, 0, jsonExtractFunc), JFUNCTION(->, 2, JSON_JSON, jsonExtractFunc), JFUNCTION(->>, 2, JSON_SQL, jsonExtractFunc), @@ -198109,10 +203072,10 @@ SQLITE_PRIVATE void sqlite3RegisterJsonFunctions(void){ #endif WAGGREGATE(json_group_array, 1, 0, 0, jsonArrayStep, jsonArrayFinal, jsonArrayValue, jsonGroupInverse, - SQLITE_SUBTYPE|SQLITE_UTF8|SQLITE_DETERMINISTIC|SQLITE_INNOCUOUS), + SQLITE_SUBTYPE|SQLITE_UTF8|SQLITE_DETERMINISTIC), WAGGREGATE(json_group_object, 2, 0, 0, jsonObjectStep, jsonObjectFinal, jsonObjectValue, jsonGroupInverse, - SQLITE_SUBTYPE|SQLITE_UTF8|SQLITE_DETERMINISTIC|SQLITE_INNOCUOUS) + SQLITE_SUBTYPE|SQLITE_UTF8|SQLITE_DETERMINISTIC) }; sqlite3InsertBuiltinFuncs(aJsonFunc, ArraySize(aJsonFunc)); #endif @@ -198614,16 +203577,17 @@ struct RtreeMatchArg { ** at run-time. */ #ifndef SQLITE_BYTEORDER -#if defined(i386) || defined(__i386__) || defined(_M_IX86) || \ - defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || \ - defined(_M_AMD64) || defined(_M_ARM) || defined(__x86) || \ - defined(__arm__) -# define SQLITE_BYTEORDER 1234 -#elif defined(sparc) || defined(__ppc__) -# define SQLITE_BYTEORDER 4321 -#else -# define SQLITE_BYTEORDER 0 /* 0 means "unknown at compile-time" */ -#endif +# if defined(i386) || defined(__i386__) || defined(_M_IX86) || \ + defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || \ + defined(_M_AMD64) || defined(_M_ARM) || defined(__x86) || \ + defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64) +# define SQLITE_BYTEORDER 1234 +# elif defined(sparc) || defined(__ppc__) || \ + defined(__ARMEB__) || defined(__AARCH64EB__) +# define SQLITE_BYTEORDER 4321 +# else +# define SQLITE_BYTEORDER 0 +# endif #endif @@ -198644,7 +203608,7 @@ static int readInt16(u8 *p){ return (p[0]<<8) + p[1]; } static void readCoord(u8 *p, RtreeCoord *pCoord){ - assert( ((((char*)p) - (char*)0)&3)==0 ); /* p is always 4-byte aligned */ + assert( (((sqlite3_uint64)p)&3)==0 ); /* p is always 4-byte aligned */ #if SQLITE_BYTEORDER==1234 && MSVC_VERSION>=1300 pCoord->u = _byteswap_ulong(*(u32*)p); #elif SQLITE_BYTEORDER==1234 && GCC_VERSION>=4003000 @@ -198698,7 +203662,7 @@ static void writeInt16(u8 *p, int i){ } static int writeCoord(u8 *p, RtreeCoord *pCoord){ u32 i; - assert( ((((char*)p) - (char*)0)&3)==0 ); /* p is always 4-byte aligned */ + assert( (((sqlite3_uint64)p)&3)==0 ); /* p is always 4-byte aligned */ assert( sizeof(RtreeCoord)==4 ); assert( sizeof(u32)==4 ); #if SQLITE_BYTEORDER==1234 && GCC_VERSION>=4003000 @@ -199426,7 +204390,7 @@ static void rtreeNonleafConstraint( assert(p->op==RTREE_LE || p->op==RTREE_LT || p->op==RTREE_GE || p->op==RTREE_GT || p->op==RTREE_EQ || p->op==RTREE_TRUE || p->op==RTREE_FALSE ); - assert( ((((char*)pCellData) - (char*)0)&3)==0 ); /* 4-byte aligned */ + assert( (((sqlite3_uint64)pCellData)&3)==0 ); /* 4-byte aligned */ switch( p->op ){ case RTREE_TRUE: return; /* Always satisfied */ case RTREE_FALSE: break; /* Never satisfied */ @@ -199479,7 +204443,7 @@ static void rtreeLeafConstraint( || p->op==RTREE_GT || p->op==RTREE_EQ || p->op==RTREE_TRUE || p->op==RTREE_FALSE ); pCellData += 8 + p->iCoord*4; - assert( ((((char*)pCellData) - (char*)0)&3)==0 ); /* 4-byte aligned */ + assert( (((sqlite3_uint64)pCellData)&3)==0 ); /* 4-byte aligned */ RTREE_DECODE_COORD(eInt, pCellData, xN); switch( p->op ){ case RTREE_TRUE: return; /* Always satisfied */ @@ -201378,7 +206342,7 @@ static int rtreeUpdate( rtreeReference(pRtree); assert(nData>=1); - cell.iRowid = 0; /* Used only to suppress a compiler warning */ + memset(&cell, 0, sizeof(cell)); /* Constraint handling. A write operation on an r-tree table may return ** SQLITE_CONSTRAINT for two reasons: @@ -202851,7 +207815,7 @@ static GeoPoly *geopolyFuncParam( int nByte; testcase( pCtx==0 ); if( sqlite3_value_type(pVal)==SQLITE_BLOB - && (nByte = sqlite3_value_bytes(pVal))>=(4+6*sizeof(GeoCoord)) + && (nByte = sqlite3_value_bytes(pVal))>=(int)(4+6*sizeof(GeoCoord)) ){ const unsigned char *a = sqlite3_value_blob(pVal); int nVertex; @@ -202909,6 +207873,7 @@ static void geopolyBlobFunc( sqlite3_value **argv ){ GeoPoly *p = geopolyFuncParam(context, argv[0], 0); + (void)argc; if( p ){ sqlite3_result_blob(context, p->hdr, 4+8*p->nVertex, SQLITE_TRANSIENT); @@ -202928,6 +207893,7 @@ static void geopolyJsonFunc( sqlite3_value **argv ){ GeoPoly *p = geopolyFuncParam(context, argv[0], 0); + (void)argc; if( p ){ sqlite3 *db = sqlite3_context_db_handle(context); sqlite3_str *x = sqlite3_str_new(db); @@ -203009,6 +207975,7 @@ static void geopolyXformFunc( double F = sqlite3_value_double(argv[6]); GeoCoord x1, y1, x0, y0; int ii; + (void)argc; if( p ){ for(ii=0; iinVertex; ii++){ x0 = GeoX(p,ii); @@ -203059,6 +208026,7 @@ static void geopolyAreaFunc( sqlite3_value **argv ){ GeoPoly *p = geopolyFuncParam(context, argv[0], 0); + (void)argc; if( p ){ sqlite3_result_double(context, geopolyArea(p)); sqlite3_free(p); @@ -203084,6 +208052,7 @@ static void geopolyCcwFunc( sqlite3_value **argv ){ GeoPoly *p = geopolyFuncParam(context, argv[0], 0); + (void)argc; if( p ){ if( geopolyArea(p)<0.0 ){ int ii, jj; @@ -203138,6 +208107,7 @@ static void geopolyRegularFunc( int n = sqlite3_value_int(argv[3]); int i; GeoPoly *p; + (void)argc; if( n<3 || r<=0.0 ) return; if( n>1000 ) n = 1000; @@ -203247,6 +208217,7 @@ static void geopolyBBoxFunc( sqlite3_value **argv ){ GeoPoly *p = geopolyBBox(context, argv[0], 0, 0); + (void)argc; if( p ){ sqlite3_result_blob(context, p->hdr, 4+8*p->nVertex, SQLITE_TRANSIENT); @@ -203274,6 +208245,7 @@ static void geopolyBBoxStep( ){ RtreeCoord a[4]; int rc = SQLITE_OK; + (void)argc; (void)geopolyBBox(context, argv[0], a, &rc); if( rc==SQLITE_OK ){ GeoBBox *pBBox; @@ -203362,6 +208334,8 @@ static void geopolyContainsPointFunc( int v = 0; int cnt = 0; int ii; + (void)argc; + if( p1==0 ) return; for(ii=0; iinVertex-1; ii++){ v = pointBeneathLine(x0,y0,GeoX(p1,ii), GeoY(p1,ii), @@ -203401,6 +208375,7 @@ static void geopolyWithinFunc( ){ GeoPoly *p1 = geopolyFuncParam(context, argv[0], 0); GeoPoly *p2 = geopolyFuncParam(context, argv[1], 0); + (void)argc; if( p1 && p2 ){ int x = geopolyOverlap(p1, p2); if( x<0 ){ @@ -203731,6 +208706,7 @@ static void geopolyOverlapFunc( ){ GeoPoly *p1 = geopolyFuncParam(context, argv[0], 0); GeoPoly *p2 = geopolyFuncParam(context, argv[1], 0); + (void)argc; if( p1 && p2 ){ int x = geopolyOverlap(p1, p2); if( x<0 ){ @@ -203751,8 +208727,12 @@ static void geopolyDebugFunc( int argc, sqlite3_value **argv ){ + (void)context; + (void)argc; #ifdef GEOPOLY_ENABLE_DEBUG geo_debug = sqlite3_value_int(argv[0]); +#else + (void)argv; #endif } @@ -203780,6 +208760,7 @@ static int geopolyInit( sqlite3_str *pSql; char *zSql; int ii; + (void)pAux; sqlite3_vtab_config(db, SQLITE_VTAB_CONSTRAINT_SUPPORT, 1); @@ -203896,6 +208877,7 @@ static int geopolyFilter( RtreeNode *pRoot = 0; int rc = SQLITE_OK; int iCell = 0; + (void)idxStr; rtreeReference(pRtree); @@ -204022,6 +209004,7 @@ static int geopolyBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo){ int iRowidTerm = -1; int iFuncTerm = -1; int idxNum = 0; + (void)tab; for(ii=0; iinConstraint; ii++){ struct sqlite3_index_constraint *p = &pIdxInfo->aConstraint[ii]; @@ -204268,6 +209251,8 @@ static int geopolyFindFunction( void (**pxFunc)(sqlite3_context*,int,sqlite3_value**), void **ppArg ){ + (void)pVtab; + (void)nArg; if( sqlite3_stricmp(zName, "geopoly_overlap")==0 ){ *pxFunc = geopolyOverlapFunc; *ppArg = 0; @@ -204337,7 +209322,7 @@ static int sqlite3_geopoly_init(sqlite3 *db){ } aAgg[] = { { geopolyBBoxStep, geopolyBBoxFinal, "geopoly_group_bbox" }, }; - int i; + unsigned int i; for(i=0; i naming scheme. +** tables or views named using the data_ naming scheme. ** ** Instead of the plain data_ naming scheme, RBU database tables ** may also be named data_, where is any sequence @@ -205571,7 +210556,7 @@ SQLITE_PRIVATE void sqlite3Fts3IcuTokenizerModule( ** ** If the target database table is a virtual table or a table that has no ** PRIMARY KEY declaration, the data_% table must also contain a column -** named "rbu_rowid". This column is mapped to the tables implicit primary +** named "rbu_rowid". This column is mapped to the table's implicit primary ** key column - "rowid". Virtual tables for which the "rowid" column does ** not function like a primary key value cannot be updated using RBU. For ** example, if the target db contains either of the following: @@ -206004,6 +210989,34 @@ SQLITE_API void sqlite3rbu_bp_progress(sqlite3rbu *pRbu, int *pnOne, int*pnTwo); SQLITE_API int sqlite3rbu_state(sqlite3rbu *pRbu); +/* +** As part of applying an RBU update or performing an RBU vacuum operation, +** the system must at one point move the *-oal file to the equivalent *-wal +** path. Normally, it does this by invoking POSIX function rename(2) directly. +** Except on WINCE platforms, where it uses win32 API MoveFileW(). This +** function may be used to register a callback that the RBU module will invoke +** instead of one of these APIs. +** +** If a callback is registered with an RBU handle, it invokes it instead +** of rename(2) when it needs to move a file within the file-system. The +** first argument passed to the xRename() callback is a copy of the second +** argument (pArg) passed to this function. The second is the full path +** to the file to move and the third the full path to which it should be +** moved. The callback function should return SQLITE_OK to indicate +** success. If an error occurs, it should return an SQLite error code. +** In this case the RBU operation will be abandoned and the error returned +** to the RBU user. +** +** Passing a NULL pointer in place of the xRename argument to this function +** restores the default behaviour. +*/ +SQLITE_API void sqlite3rbu_rename_handler( + sqlite3rbu *pRbu, + void *pArg, + int (*xRename)(void *pArg, const char *zOld, const char *zNew) +); + + /* ** Create an RBU VFS named zName that accesses the underlying file-system ** via existing VFS zParent. Or, if the zParent parameter is passed NULL, @@ -206371,6 +211384,8 @@ struct sqlite3rbu { int nPagePerSector; /* Pages per sector for pTargetFd */ i64 iOalSz; i64 nPhaseOneStep; + void *pRenameArg; + int (*xRename)(void*, const char*, const char*); /* The following state variables are used as part of the incremental ** checkpoint stage (eStage==RBU_STAGE_CKPT). See comments surrounding @@ -208759,7 +213774,7 @@ static void rbuOpenDatabase(sqlite3rbu *p, sqlite3 *dbMain, int *pbRetry){ sqlite3_file_control(p->dbRbu, "main", SQLITE_FCNTL_RBUCNT, (void*)p); if( p->zState==0 ){ const char *zFile = sqlite3_db_filename(p->dbRbu, "main"); - p->zState = rbuMPrintf(p, "file://%s-vacuum?modeof=%s", zFile, zFile); + p->zState = rbuMPrintf(p, "file:///%s-vacuum?modeof=%s", zFile, zFile); } } @@ -209007,11 +214022,11 @@ static void rbuSetupCheckpoint(sqlite3rbu *p, RbuState *pState){ ** no-ops. These locks will not be released until the connection ** is closed. ** - ** * Attempting to xSync() the database file causes an SQLITE_INTERNAL + ** * Attempting to xSync() the database file causes an SQLITE_NOTICE ** error. ** ** As a result, unless an error (i.e. OOM or SQLITE_BUSY) occurs, the - ** checkpoint below fails with SQLITE_INTERNAL, and leaves the aFrame[] + ** checkpoint below fails with SQLITE_NOTICE, and leaves the aFrame[] ** array populated with a set of (frame -> page) mappings. Because the ** WRITER, CHECKPOINT and READ0 locks are still held, it is safe to copy ** data from the wal file into the database file according to the @@ -209021,7 +214036,7 @@ static void rbuSetupCheckpoint(sqlite3rbu *p, RbuState *pState){ int rc2; p->eStage = RBU_STAGE_CAPTURE; rc2 = sqlite3_exec(p->dbMain, "PRAGMA main.wal_checkpoint=restart", 0, 0,0); - if( rc2!=SQLITE_INTERNAL ) p->rc = rc2; + if( rc2!=SQLITE_NOTICE ) p->rc = rc2; } if( p->rc==SQLITE_OK && p->nFrame>0 ){ @@ -209067,7 +214082,7 @@ static int rbuCaptureWalRead(sqlite3rbu *pRbu, i64 iOff, int iAmt){ if( pRbu->mLock!=mReq ){ pRbu->rc = SQLITE_BUSY; - return SQLITE_INTERNAL; + return SQLITE_NOTICE_RBU; } pRbu->pgsz = iAmt; @@ -209117,6 +214132,11 @@ static void rbuCheckpointFrame(sqlite3rbu *p, RbuFrame *pFrame){ p->rc = pDb->pMethods->xWrite(pDb, p->aBuf, p->pgsz, iOff); } +/* +** This value is copied from the definition of ZIPVFS_CTRL_FILE_POINTER +** in zipvfs.h. +*/ +#define RBU_ZIPVFS_CTRL_FILE_POINTER 230439 /* ** Take an EXCLUSIVE lock on the database file. Return SQLITE_OK if @@ -209125,9 +214145,20 @@ static void rbuCheckpointFrame(sqlite3rbu *p, RbuFrame *pFrame){ static int rbuLockDatabase(sqlite3 *db){ int rc = SQLITE_OK; sqlite3_file *fd = 0; - sqlite3_file_control(db, "main", SQLITE_FCNTL_FILE_POINTER, &fd); - if( fd->pMethods ){ + sqlite3_file_control(db, "main", RBU_ZIPVFS_CTRL_FILE_POINTER, &fd); + if( fd ){ + sqlite3_file_control(db, "main", SQLITE_FCNTL_FILE_POINTER, &fd); + rc = fd->pMethods->xLock(fd, SQLITE_LOCK_SHARED); + if( rc==SQLITE_OK ){ + rc = fd->pMethods->xUnlock(fd, SQLITE_LOCK_NONE); + } + sqlite3_file_control(db, "main", RBU_ZIPVFS_CTRL_FILE_POINTER, &fd); + }else{ + sqlite3_file_control(db, "main", SQLITE_FCNTL_FILE_POINTER, &fd); + } + + if( rc==SQLITE_OK && fd->pMethods ){ rc = fd->pMethods->xLock(fd, SQLITE_LOCK_SHARED); if( rc==SQLITE_OK ){ rc = fd->pMethods->xLock(fd, SQLITE_LOCK_EXCLUSIVE); @@ -209219,32 +214250,7 @@ static void rbuMoveOalFile(sqlite3rbu *p){ } if( p->rc==SQLITE_OK ){ -#if defined(_WIN32_WCE) - { - LPWSTR zWideOal; - LPWSTR zWideWal; - - zWideOal = rbuWinUtf8ToUnicode(zOal); - if( zWideOal ){ - zWideWal = rbuWinUtf8ToUnicode(zWal); - if( zWideWal ){ - if( MoveFileW(zWideOal, zWideWal) ){ - p->rc = SQLITE_OK; - }else{ - p->rc = SQLITE_IOERR; - } - sqlite3_free(zWideWal); - }else{ - p->rc = SQLITE_IOERR_NOMEM; - } - sqlite3_free(zWideOal); - }else{ - p->rc = SQLITE_IOERR_NOMEM; - } - } -#else - p->rc = rename(zOal, zWal) ? SQLITE_IOERR : SQLITE_OK; -#endif + p->rc = p->xRename(p->pRenameArg, zOal, zWal); } if( p->rc!=SQLITE_OK @@ -209831,7 +214837,8 @@ static void rbuSetupOal(sqlite3rbu *p, RbuState *pState){ static void rbuDeleteOalFile(sqlite3rbu *p){ char *zOal = rbuMPrintf(p, "%s-oal", p->zTarget); if( zOal ){ - sqlite3_vfs *pVfs = sqlite3_vfs_find(0); + sqlite3_vfs *pVfs = 0; + sqlite3_file_control(p->dbMain, "main", SQLITE_FCNTL_VFS_POINTER, &pVfs); assert( pVfs && p->rc==SQLITE_OK && p->zErrmsg==0 ); pVfs->xDelete(pVfs, zOal, 0); sqlite3_free(zOal); @@ -209983,6 +214990,7 @@ static sqlite3rbu *openRbuHandle( /* Create the custom VFS. */ memset(p, 0, sizeof(sqlite3rbu)); + sqlite3rbu_rename_handler(p, 0, 0); rbuCreateVfs(p); /* Open the target, RBU and state databases */ @@ -210374,6 +215382,54 @@ SQLITE_API int sqlite3rbu_savestate(sqlite3rbu *p){ return rc; } +/* +** Default xRename callback for RBU. +*/ +static int xDefaultRename(void *pArg, const char *zOld, const char *zNew){ + int rc = SQLITE_OK; +#if defined(_WIN32_WCE) + { + LPWSTR zWideOld; + LPWSTR zWideNew; + + zWideOld = rbuWinUtf8ToUnicode(zOld); + if( zWideOld ){ + zWideNew = rbuWinUtf8ToUnicode(zNew); + if( zWideNew ){ + if( MoveFileW(zWideOld, zWideNew) ){ + rc = SQLITE_OK; + }else{ + rc = SQLITE_IOERR; + } + sqlite3_free(zWideNew); + }else{ + rc = SQLITE_IOERR_NOMEM; + } + sqlite3_free(zWideOld); + }else{ + rc = SQLITE_IOERR_NOMEM; + } + } +#else + rc = rename(zOld, zNew) ? SQLITE_IOERR : SQLITE_OK; +#endif + return rc; +} + +SQLITE_API void sqlite3rbu_rename_handler( + sqlite3rbu *pRbu, + void *pArg, + int (*xRename)(void *pArg, const char *zOld, const char *zNew) +){ + if( xRename ){ + pRbu->xRename = xRename; + pRbu->pRenameArg = pArg; + }else{ + pRbu->xRename = xDefaultRename; + pRbu->pRenameArg = 0; + } +} + /************************************************************************** ** Beginning of RBU VFS shim methods. The VFS shim modifies the behaviour ** of a standard VFS in the following ways: @@ -210430,7 +215486,7 @@ SQLITE_API int sqlite3rbu_savestate(sqlite3rbu *p){ ** database file are recorded. xShmLock() calls to unlock the same ** locks are no-ops (so that once obtained, these locks are never ** relinquished). Finally, calls to xSync() on the target database -** file fail with SQLITE_INTERNAL errors. +** file fail with SQLITE_NOTICE errors. */ static void rbuUnlockShm(rbu_file *p){ @@ -210539,9 +215595,12 @@ static int rbuVfsClose(sqlite3_file *pFile){ sqlite3_free(p->zDel); if( p->openFlags & SQLITE_OPEN_MAIN_DB ){ + const sqlite3_io_methods *pMeth = p->pReal->pMethods; rbuMainlistRemove(p); rbuUnlockShm(p); - p->pReal->pMethods->xShmUnmap(p->pReal, 0); + if( pMeth->iVersion>1 && pMeth->xShmUnmap ){ + pMeth->xShmUnmap(p->pReal, 0); + } } else if( (p->openFlags & SQLITE_OPEN_DELETEONCLOSE) && p->pRbu ){ rbuUpdateTempSize(p, 0); @@ -210709,7 +215768,7 @@ static int rbuVfsSync(sqlite3_file *pFile, int flags){ rbu_file *p = (rbu_file *)pFile; if( p->pRbu && p->pRbu->eStage==RBU_STAGE_CAPTURE ){ if( p->openFlags & SQLITE_OPEN_MAIN_DB ){ - return SQLITE_INTERNAL; + return SQLITE_NOTICE_RBU; } return SQLITE_OK; } @@ -211000,6 +216059,25 @@ static int rbuVfsOpen( rbuVfsShmUnmap, /* xShmUnmap */ 0, 0 /* xFetch, xUnfetch */ }; + static sqlite3_io_methods rbuvfs_io_methods1 = { + 1, /* iVersion */ + rbuVfsClose, /* xClose */ + rbuVfsRead, /* xRead */ + rbuVfsWrite, /* xWrite */ + rbuVfsTruncate, /* xTruncate */ + rbuVfsSync, /* xSync */ + rbuVfsFileSize, /* xFileSize */ + rbuVfsLock, /* xLock */ + rbuVfsUnlock, /* xUnlock */ + rbuVfsCheckReservedLock, /* xCheckReservedLock */ + rbuVfsFileControl, /* xFileControl */ + rbuVfsSectorSize, /* xSectorSize */ + rbuVfsDeviceCharacteristics, /* xDeviceCharacteristics */ + 0, 0, 0, 0, 0, 0 + }; + + + rbu_vfs *pRbuVfs = (rbu_vfs*)pVfs; sqlite3_vfs *pRealVfs = pRbuVfs->pRealVfs; rbu_file *pFd = (rbu_file *)pFile; @@ -211054,10 +216132,15 @@ static int rbuVfsOpen( rc = pRealVfs->xOpen(pRealVfs, zOpen, pFd->pReal, oflags, pOutFlags); } if( pFd->pReal->pMethods ){ + const sqlite3_io_methods *pMeth = pFd->pReal->pMethods; /* The xOpen() operation has succeeded. Set the sqlite3_file.pMethods ** pointer and, if the file is a main database file, link it into the ** mutex protected linked list of all such files. */ - pFile->pMethods = &rbuvfs_io_methods; + if( pMeth->iVersion<2 || pMeth->xShmLock==0 ){ + pFile->pMethods = &rbuvfs_io_methods1; + }else{ + pFile->pMethods = &rbuvfs_io_methods; + } if( flags & SQLITE_OPEN_MAIN_DB ){ rbuMainlistAdd(pFd); } @@ -211490,6 +216573,7 @@ static int statConnect( StatTable *pTab = 0; int rc = SQLITE_OK; int iDb; + (void)pAux; if( argc>=4 ){ Token nm; @@ -211543,6 +216627,7 @@ static int statBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo){ int iSchema = -1; int iName = -1; int iAgg = -1; + (void)tab; /* Look for a valid schema=? constraint. If found, change the idxNum to ** 1 and request the value of that constraint be sent to xFilter. And @@ -212068,6 +217153,8 @@ static int statFilter( int iArg = 0; /* Count of argv[] parameters used so far */ int rc = SQLITE_OK; /* Result of this operation */ const char *zName = 0; /* Only provide analysis of this table */ + (void)argc; + (void)idxStr; statResetCsr(pCsr); sqlite3_finalize(pCsr->pStmt); @@ -212151,16 +217238,16 @@ static int statColumn( } break; case 4: /* ncell */ - sqlite3_result_int(ctx, pCsr->nCell); + sqlite3_result_int64(ctx, pCsr->nCell); break; case 5: /* payload */ - sqlite3_result_int(ctx, pCsr->nPayload); + sqlite3_result_int64(ctx, pCsr->nPayload); break; case 6: /* unused */ - sqlite3_result_int(ctx, pCsr->nUnused); + sqlite3_result_int64(ctx, pCsr->nUnused); break; case 7: /* mx_payload */ - sqlite3_result_int(ctx, pCsr->nMxPayload); + sqlite3_result_int64(ctx, pCsr->nMxPayload); break; case 8: /* pgoffset */ if( !pCsr->isAgg ){ @@ -212168,7 +217255,7 @@ static int statColumn( } break; case 9: /* pgsize */ - sqlite3_result_int(ctx, pCsr->szPage); + sqlite3_result_int64(ctx, pCsr->szPage); break; case 10: { /* schema */ sqlite3 *db = sqlite3_context_db_handle(ctx); @@ -212302,8 +217389,13 @@ static int dbpageConnect( ){ DbpageTable *pTab = 0; int rc = SQLITE_OK; + (void)pAux; + (void)argc; + (void)argv; + (void)pzErr; sqlite3_vtab_config(db, SQLITE_VTAB_DIRECTONLY); + sqlite3_vtab_config(db, SQLITE_VTAB_USES_ALL_SCHEMAS); rc = sqlite3_declare_vtab(db, "CREATE TABLE x(pgno INTEGER PRIMARY KEY, data BLOB, schema HIDDEN)"); if( rc==SQLITE_OK ){ @@ -212340,6 +217432,7 @@ static int dbpageDisconnect(sqlite3_vtab *pVtab){ static int dbpageBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo){ int i; int iPlan = 0; + (void)tab; /* If there is a schema= constraint, it must be honored. Report a ** ridiculously large estimated cost if the schema= constraint is @@ -212386,7 +217479,6 @@ static int dbpageBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo){ ){ pIdxInfo->orderByConsumed = 1; } - sqlite3VtabUsesAllSchemas(pIdxInfo); return SQLITE_OK; } @@ -212455,6 +217547,8 @@ static int dbpageFilter( sqlite3 *db = pTab->db; Btree *pBt; + (void)idxStr; + /* Default setting is no rows of result */ pCsr->pgno = 1; pCsr->mxPgno = 0; @@ -212469,7 +217563,7 @@ static int dbpageFilter( pCsr->iDb = 0; } pBt = db->aDb[pCsr->iDb].pBt; - if( pBt==0 ) return SQLITE_OK; + if( NEVER(pBt==0) ) return SQLITE_OK; pCsr->pPager = sqlite3BtreePager(pBt); pCsr->szPage = sqlite3BtreeGetPageSize(pBt); pCsr->mxPgno = sqlite3BtreeLastPage(pBt); @@ -212504,12 +217598,18 @@ static int dbpageColumn( } case 1: { /* data */ DbPage *pDbPage = 0; - rc = sqlite3PagerGet(pCsr->pPager, pCsr->pgno, (DbPage**)&pDbPage, 0); - if( rc==SQLITE_OK ){ - sqlite3_result_blob(ctx, sqlite3PagerGetData(pDbPage), pCsr->szPage, - SQLITE_TRANSIENT); + if( pCsr->pgno==((PENDING_BYTE/pCsr->szPage)+1) ){ + /* The pending byte page. Assume it is zeroed out. Attempting to + ** request this page from the page is an SQLITE_CORRUPT error. */ + sqlite3_result_zeroblob(ctx, pCsr->szPage); + }else{ + rc = sqlite3PagerGet(pCsr->pPager, pCsr->pgno, (DbPage**)&pDbPage, 0); + if( rc==SQLITE_OK ){ + sqlite3_result_blob(ctx, sqlite3PagerGetData(pDbPage), pCsr->szPage, + SQLITE_TRANSIENT); + } + sqlite3PagerUnref(pDbPage); } - sqlite3PagerUnref(pDbPage); break; } default: { /* schema */ @@ -212518,7 +217618,7 @@ static int dbpageColumn( break; } } - return SQLITE_OK; + return rc; } static int dbpageRowid(sqlite3_vtab_cursor *pCursor, sqlite_int64 *pRowid){ @@ -212544,6 +217644,7 @@ static int dbpageUpdate( Pager *pPager; int szPage; + (void)pRowid; if( pTab->db->flags & SQLITE_Defensive ){ zErr = "read-only"; goto update_fail; @@ -212553,18 +217654,20 @@ static int dbpageUpdate( goto update_fail; } pgno = sqlite3_value_int(argv[0]); - if( (Pgno)sqlite3_value_int(argv[1])!=pgno ){ + if( sqlite3_value_type(argv[0])==SQLITE_NULL + || (Pgno)sqlite3_value_int(argv[1])!=pgno + ){ zErr = "cannot insert"; goto update_fail; } zSchema = (const char*)sqlite3_value_text(argv[4]); - iDb = zSchema ? sqlite3FindDbName(pTab->db, zSchema) : -1; - if( iDb<0 ){ + iDb = ALWAYS(zSchema) ? sqlite3FindDbName(pTab->db, zSchema) : -1; + if( NEVER(iDb<0) ){ zErr = "no such schema"; goto update_fail; } pBt = pTab->db->aDb[iDb].pBt; - if( pgno<1 || pBt==0 || pgno>sqlite3BtreeLastPage(pBt) ){ + if( NEVER(pgno<1) || NEVER(pBt==0) || NEVER(pgno>sqlite3BtreeLastPage(pBt)) ){ zErr = "bad page number"; goto update_fail; } @@ -212578,11 +217681,12 @@ static int dbpageUpdate( pPager = sqlite3BtreePager(pBt); rc = sqlite3PagerGet(pPager, pgno, (DbPage**)&pDbPage, 0); if( rc==SQLITE_OK ){ - rc = sqlite3PagerWrite(pDbPage); - if( rc==SQLITE_OK ){ - memcpy(sqlite3PagerGetData(pDbPage), - sqlite3_value_blob(argv[3]), - szPage); + const void *pData = sqlite3_value_blob(argv[3]); + assert( pData!=0 || pTab->db->mallocFailed ); + if( pData + && (rc = sqlite3PagerWrite(pDbPage))==SQLITE_OK + ){ + memcpy(sqlite3PagerGetData(pDbPage), pData, szPage); } } sqlite3PagerUnref(pDbPage); @@ -212604,7 +217708,7 @@ static int dbpageBegin(sqlite3_vtab *pVtab){ int i; for(i=0; inDb; i++){ Btree *pBt = db->aDb[i].pBt; - if( pBt ) sqlite3BtreeBeginTrans(pBt, 1, 0); + if( pBt ) (void)sqlite3BtreeBeginTrans(pBt, 1, 0); } return SQLITE_OK; } @@ -212675,6 +217779,8 @@ typedef struct SessionInput SessionInput; # endif #endif +#define SESSIONS_ROWID "_rowid_" + static int sessions_strm_chunk_size = SESSIONS_STRM_CHUNK_SIZE; typedef struct SessionHook SessionHook; @@ -212696,6 +217802,7 @@ struct sqlite3_session { int bEnable; /* True if currently recording */ int bIndirect; /* True if all changes are indirect */ int bAutoAttach; /* True to auto-attach tables */ + int bImplicitPK; /* True to handle tables with implicit PK */ int rc; /* Non-zero if an error has occurred */ void *pFilterCtx; /* First argument to pass to xTableFilter */ int (*xTableFilter)(void *pCtx, const char *zTab); @@ -212772,6 +217879,7 @@ struct SessionTable { char *zName; /* Local name of table */ int nCol; /* Number of columns in table zName */ int bStat1; /* True if this is sqlite_stat1 */ + int bRowid; /* True if this table uses rowid for PK */ const char **azCol; /* Column names */ u8 *abPK; /* Array of primary key flags */ int nEntry; /* Total number of entries in hash table */ @@ -213164,6 +218272,7 @@ static unsigned int sessionHashAppendType(unsigned int h, int eType){ */ static int sessionPreupdateHash( sqlite3_session *pSession, /* Session object that owns pTab */ + i64 iRowid, SessionTable *pTab, /* Session table handle */ int bNew, /* True to hash the new.* PK */ int *piHash, /* OUT: Hash value */ @@ -213172,48 +218281,53 @@ static int sessionPreupdateHash( unsigned int h = 0; /* Hash value to return */ int i; /* Used to iterate through columns */ - assert( *pbNullPK==0 ); - assert( pTab->nCol==pSession->hook.xCount(pSession->hook.pCtx) ); - for(i=0; inCol; i++){ - if( pTab->abPK[i] ){ - int rc; - int eType; - sqlite3_value *pVal; + if( pTab->bRowid ){ + assert( pTab->nCol-1==pSession->hook.xCount(pSession->hook.pCtx) ); + h = sessionHashAppendI64(h, iRowid); + }else{ + assert( *pbNullPK==0 ); + assert( pTab->nCol==pSession->hook.xCount(pSession->hook.pCtx) ); + for(i=0; inCol; i++){ + if( pTab->abPK[i] ){ + int rc; + int eType; + sqlite3_value *pVal; - if( bNew ){ - rc = pSession->hook.xNew(pSession->hook.pCtx, i, &pVal); - }else{ - rc = pSession->hook.xOld(pSession->hook.pCtx, i, &pVal); - } - if( rc!=SQLITE_OK ) return rc; + if( bNew ){ + rc = pSession->hook.xNew(pSession->hook.pCtx, i, &pVal); + }else{ + rc = pSession->hook.xOld(pSession->hook.pCtx, i, &pVal); + } + if( rc!=SQLITE_OK ) return rc; - eType = sqlite3_value_type(pVal); - h = sessionHashAppendType(h, eType); - if( eType==SQLITE_INTEGER || eType==SQLITE_FLOAT ){ - i64 iVal; - if( eType==SQLITE_INTEGER ){ - iVal = sqlite3_value_int64(pVal); + eType = sqlite3_value_type(pVal); + h = sessionHashAppendType(h, eType); + if( eType==SQLITE_INTEGER || eType==SQLITE_FLOAT ){ + i64 iVal; + if( eType==SQLITE_INTEGER ){ + iVal = sqlite3_value_int64(pVal); + }else{ + double rVal = sqlite3_value_double(pVal); + assert( sizeof(iVal)==8 && sizeof(rVal)==8 ); + memcpy(&iVal, &rVal, 8); + } + h = sessionHashAppendI64(h, iVal); + }else if( eType==SQLITE_TEXT || eType==SQLITE_BLOB ){ + const u8 *z; + int n; + if( eType==SQLITE_TEXT ){ + z = (const u8 *)sqlite3_value_text(pVal); + }else{ + z = (const u8 *)sqlite3_value_blob(pVal); + } + n = sqlite3_value_bytes(pVal); + if( !z && (eType!=SQLITE_BLOB || n>0) ) return SQLITE_NOMEM; + h = sessionHashAppendBlob(h, n, z); }else{ - double rVal = sqlite3_value_double(pVal); - assert( sizeof(iVal)==8 && sizeof(rVal)==8 ); - memcpy(&iVal, &rVal, 8); + assert( eType==SQLITE_NULL ); + assert( pTab->bStat1==0 || i!=1 ); + *pbNullPK = 1; } - h = sessionHashAppendI64(h, iVal); - }else if( eType==SQLITE_TEXT || eType==SQLITE_BLOB ){ - const u8 *z; - int n; - if( eType==SQLITE_TEXT ){ - z = (const u8 *)sqlite3_value_text(pVal); - }else{ - z = (const u8 *)sqlite3_value_blob(pVal); - } - n = sqlite3_value_bytes(pVal); - if( !z && (eType!=SQLITE_BLOB || n>0) ) return SQLITE_NOMEM; - h = sessionHashAppendBlob(h, n, z); - }else{ - assert( eType==SQLITE_NULL ); - assert( pTab->bStat1==0 || i!=1 ); - *pbNullPK = 1; } } } @@ -213496,6 +218610,7 @@ static int sessionMergeUpdate( */ static int sessionPreupdateEqual( sqlite3_session *pSession, /* Session object that owns SessionTable */ + i64 iRowid, /* Rowid value if pTab->bRowid */ SessionTable *pTab, /* Table associated with change */ SessionChange *pChange, /* Change to compare to */ int op /* Current pre-update operation */ @@ -213503,6 +218618,11 @@ static int sessionPreupdateEqual( int iCol; /* Used to iterate through columns */ u8 *a = pChange->aRecord; /* Cursor used to scan change record */ + if( pTab->bRowid ){ + if( a[0]!=SQLITE_INTEGER ) return 0; + return sessionGetI64(&a[1])==iRowid; + } + assert( op==SQLITE_INSERT || op==SQLITE_UPDATE || op==SQLITE_DELETE ); for(iCol=0; iColnCol; iCol++){ if( !pTab->abPK[iCol] ){ @@ -213647,7 +218767,8 @@ static int sessionTableInfo( int *pnCol, /* OUT: number of columns */ const char **pzTab, /* OUT: Copy of zThis */ const char ***pazCol, /* OUT: Array of column names for table */ - u8 **pabPK /* OUT: Array of booleans - true for PK col */ + u8 **pabPK, /* OUT: Array of booleans - true for PK col */ + int *pbRowid /* OUT: True if only PK is a rowid */ ){ char *zPragma; sqlite3_stmt *pStmt; @@ -213659,6 +218780,7 @@ static int sessionTableInfo( u8 *pAlloc = 0; char **azCol = 0; u8 *abPK = 0; + int bRowid = 0; /* Set to true to use rowid as PK */ assert( pazCol && pabPK ); @@ -213703,10 +218825,15 @@ static int sessionTableInfo( } nByte = nThis + 1; + bRowid = (pbRowid!=0); while( SQLITE_ROW==sqlite3_step(pStmt) ){ nByte += sqlite3_column_bytes(pStmt, 1); nDbCol++; + if( sqlite3_column_int(pStmt, 5) ) bRowid = 0; } + if( nDbCol==0 ) bRowid = 0; + nDbCol += bRowid; + nByte += strlen(SESSIONS_ROWID); rc = sqlite3_reset(pStmt); if( rc==SQLITE_OK ){ @@ -213728,6 +218855,14 @@ static int sessionTableInfo( } i = 0; + if( bRowid ){ + size_t nName = strlen(SESSIONS_ROWID); + memcpy(pAlloc, SESSIONS_ROWID, nName+1); + azCol[i] = (char*)pAlloc; + pAlloc += nName+1; + abPK[i] = 1; + i++; + } while( SQLITE_ROW==sqlite3_step(pStmt) ){ int nName = sqlite3_column_bytes(pStmt, 1); const unsigned char *zName = sqlite3_column_text(pStmt, 1); @@ -213739,7 +218874,6 @@ static int sessionTableInfo( i++; } rc = sqlite3_reset(pStmt); - } /* If successful, populate the output variables. Otherwise, zero them and @@ -213756,6 +218890,7 @@ static int sessionTableInfo( if( pzTab ) *pzTab = 0; sessionFree(pSession, azCol); } + if( pbRowid ) *pbRowid = bRowid; sqlite3_finalize(pStmt); return rc; } @@ -213777,7 +218912,8 @@ static int sessionInitTable(sqlite3_session *pSession, SessionTable *pTab){ u8 *abPK; assert( pTab->azCol==0 || pTab->abPK==0 ); pSession->rc = sessionTableInfo(pSession, pSession->db, pSession->zDb, - pTab->zName, &pTab->nCol, 0, &pTab->azCol, &abPK + pTab->zName, &pTab->nCol, 0, &pTab->azCol, &abPK, + (pSession->bImplicitPK ? &pTab->bRowid : 0) ); if( pSession->rc==SQLITE_OK ){ int i; @@ -213849,6 +218985,7 @@ static int sessionUpdateMaxSize( ){ i64 nNew = 2; if( pC->op==SQLITE_INSERT ){ + if( pTab->bRowid ) nNew += 9; if( op!=SQLITE_DELETE ){ int ii; for(ii=0; iinCol; ii++){ @@ -213865,12 +219002,16 @@ static int sessionUpdateMaxSize( }else{ int ii; u8 *pCsr = pC->aRecord; - for(ii=0; iinCol; ii++){ + if( pTab->bRowid ){ + nNew += 9 + 1; + pCsr += 9; + } + for(ii=pTab->bRowid; iinCol; ii++){ int bChanged = 1; int nOld = 0; int eType; sqlite3_value *p = 0; - pSession->hook.xNew(pSession->hook.pCtx, ii, &p); + pSession->hook.xNew(pSession->hook.pCtx, ii-pTab->bRowid, &p); if( p==0 ){ return SQLITE_NOMEM; } @@ -213949,6 +219090,7 @@ static int sessionUpdateMaxSize( */ static void sessionPreupdateOneChange( int op, /* One of SQLITE_UPDATE, INSERT, DELETE */ + i64 iRowid, sqlite3_session *pSession, /* Session object pTab is attached to */ SessionTable *pTab /* Table that change applies to */ ){ @@ -213964,7 +219106,7 @@ static void sessionPreupdateOneChange( /* Check the number of columns in this xPreUpdate call matches the ** number of columns in the table. */ - if( pTab->nCol!=pSession->hook.xCount(pSession->hook.pCtx) ){ + if( (pTab->nCol-pTab->bRowid)!=pSession->hook.xCount(pSession->hook.pCtx) ){ pSession->rc = SQLITE_SCHEMA; return; } @@ -213997,14 +219139,16 @@ static void sessionPreupdateOneChange( /* Calculate the hash-key for this change. If the primary key of the row ** includes a NULL value, exit early. Such changes are ignored by the ** session module. */ - rc = sessionPreupdateHash(pSession, pTab, op==SQLITE_INSERT, &iHash, &bNull); + rc = sessionPreupdateHash( + pSession, iRowid, pTab, op==SQLITE_INSERT, &iHash, &bNull + ); if( rc!=SQLITE_OK ) goto error_out; if( bNull==0 ){ /* Search the hash table for an existing record for this row. */ SessionChange *pC; for(pC=pTab->apChange[iHash]; pC; pC=pC->pNext){ - if( sessionPreupdateEqual(pSession, pTab, pC, op) ) break; + if( sessionPreupdateEqual(pSession, iRowid, pTab, pC, op) ) break; } if( pC==0 ){ @@ -214019,7 +219163,7 @@ static void sessionPreupdateOneChange( /* Figure out how large an allocation is required */ nByte = sizeof(SessionChange); - for(i=0; inCol; i++){ + for(i=0; i<(pTab->nCol-pTab->bRowid); i++){ sqlite3_value *p = 0; if( op!=SQLITE_INSERT ){ TESTONLY(int trc = ) pSession->hook.xOld(pSession->hook.pCtx, i, &p); @@ -214034,6 +219178,9 @@ static void sessionPreupdateOneChange( rc = sessionSerializeValue(0, p, &nByte); if( rc!=SQLITE_OK ) goto error_out; } + if( pTab->bRowid ){ + nByte += 9; /* Size of rowid field - an integer */ + } /* Allocate the change object */ pC = (SessionChange *)sessionMalloc64(pSession, nByte); @@ -214050,7 +219197,12 @@ static void sessionPreupdateOneChange( ** required values and encodings have already been cached in memory. ** It is not possible for an OOM to occur in this block. */ nByte = 0; - for(i=0; inCol; i++){ + if( pTab->bRowid ){ + pC->aRecord[0] = SQLITE_INTEGER; + sessionPutI64(&pC->aRecord[1], iRowid); + nByte = 9; + } + for(i=0; i<(pTab->nCol-pTab->bRowid); i++){ sqlite3_value *p = 0; if( op!=SQLITE_INSERT ){ pSession->hook.xOld(pSession->hook.pCtx, i, &p); @@ -214149,6 +219301,8 @@ static void xPreUpdate( int nDb = sqlite3Strlen30(zDb); assert( sqlite3_mutex_held(db->mutex) ); + (void)iKey1; + (void)iKey2; for(pSession=(sqlite3_session *)pCtx; pSession; pSession=pSession->pNext){ SessionTable *pTab; @@ -214163,9 +219317,10 @@ static void xPreUpdate( pSession->rc = sessionFindTable(pSession, zName, &pTab); if( pTab ){ assert( pSession->rc==SQLITE_OK ); - sessionPreupdateOneChange(op, pSession, pTab); + assert( op==SQLITE_UPDATE || iKey1==iKey2 ); + sessionPreupdateOneChange(op, iKey1, pSession, pTab); if( op==SQLITE_UPDATE ){ - sessionPreupdateOneChange(SQLITE_INSERT, pSession, pTab); + sessionPreupdateOneChange(SQLITE_INSERT, iKey2, pSession, pTab); } } } @@ -214204,6 +219359,7 @@ static void sessionPreupdateHooks( typedef struct SessionDiffCtx SessionDiffCtx; struct SessionDiffCtx { sqlite3_stmt *pStmt; + int bRowid; int nOldOff; }; @@ -214212,19 +219368,20 @@ struct SessionDiffCtx { */ static int sessionDiffOld(void *pCtx, int iVal, sqlite3_value **ppVal){ SessionDiffCtx *p = (SessionDiffCtx*)pCtx; - *ppVal = sqlite3_column_value(p->pStmt, iVal+p->nOldOff); + *ppVal = sqlite3_column_value(p->pStmt, iVal+p->nOldOff+p->bRowid); return SQLITE_OK; } static int sessionDiffNew(void *pCtx, int iVal, sqlite3_value **ppVal){ SessionDiffCtx *p = (SessionDiffCtx*)pCtx; - *ppVal = sqlite3_column_value(p->pStmt, iVal); + *ppVal = sqlite3_column_value(p->pStmt, iVal+p->bRowid); return SQLITE_OK; } static int sessionDiffCount(void *pCtx){ SessionDiffCtx *p = (SessionDiffCtx*)pCtx; - return p->nOldOff ? p->nOldOff : sqlite3_column_count(p->pStmt); + return (p->nOldOff ? p->nOldOff : sqlite3_column_count(p->pStmt)) - p->bRowid; } static int sessionDiffDepth(void *pCtx){ + (void)pCtx; return 0; } @@ -214298,17 +219455,18 @@ static char *sessionExprCompareOther( } static char *sessionSelectFindNew( - int nCol, const char *zDb1, /* Pick rows in this db only */ const char *zDb2, /* But not in this one */ + int bRowid, const char *zTbl, /* Table name */ const char *zExpr ){ + const char *zSel = (bRowid ? SESSIONS_ROWID ", *" : "*"); char *zRet = sqlite3_mprintf( - "SELECT * FROM \"%w\".\"%w\" WHERE NOT EXISTS (" + "SELECT %s FROM \"%w\".\"%w\" WHERE NOT EXISTS (" " SELECT 1 FROM \"%w\".\"%w\" WHERE %s" ")", - zDb1, zTbl, zDb2, zTbl, zExpr + zSel, zDb1, zTbl, zDb2, zTbl, zExpr ); return zRet; } @@ -214322,7 +219480,9 @@ static int sessionDiffFindNew( char *zExpr ){ int rc = SQLITE_OK; - char *zStmt = sessionSelectFindNew(pTab->nCol, zDb1, zDb2, pTab->zName,zExpr); + char *zStmt = sessionSelectFindNew( + zDb1, zDb2, pTab->bRowid, pTab->zName, zExpr + ); if( zStmt==0 ){ rc = SQLITE_NOMEM; @@ -214333,8 +219493,10 @@ static int sessionDiffFindNew( SessionDiffCtx *pDiffCtx = (SessionDiffCtx*)pSession->hook.pCtx; pDiffCtx->pStmt = pStmt; pDiffCtx->nOldOff = 0; + pDiffCtx->bRowid = pTab->bRowid; while( SQLITE_ROW==sqlite3_step(pStmt) ){ - sessionPreupdateOneChange(op, pSession, pTab); + i64 iRowid = (pTab->bRowid ? sqlite3_column_int64(pStmt, 0) : 0); + sessionPreupdateOneChange(op, iRowid, pSession, pTab); } rc = sqlite3_finalize(pStmt); } @@ -214344,6 +219506,27 @@ static int sessionDiffFindNew( return rc; } +/* +** Return a comma-separated list of the fully-qualified (with both database +** and table name) column names from table pTab. e.g. +** +** "main"."t1"."a", "main"."t1"."b", "main"."t1"."c" +*/ +static char *sessionAllCols( + const char *zDb, + SessionTable *pTab +){ + int ii; + char *zRet = 0; + for(ii=0; iinCol; ii++){ + zRet = sqlite3_mprintf("%z%s\"%w\".\"%w\".\"%w\"", + zRet, (zRet ? ", " : ""), zDb, pTab->zName, pTab->azCol[ii] + ); + if( !zRet ) break; + } + return zRet; +} + static int sessionDiffFindModified( sqlite3_session *pSession, SessionTable *pTab, @@ -214358,11 +219541,13 @@ static int sessionDiffFindModified( if( zExpr2==0 ){ rc = SQLITE_NOMEM; }else{ + char *z1 = sessionAllCols(pSession->zDb, pTab); + char *z2 = sessionAllCols(zFrom, pTab); char *zStmt = sqlite3_mprintf( - "SELECT * FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)", - pSession->zDb, pTab->zName, zFrom, pTab->zName, zExpr, zExpr2 + "SELECT %s,%s FROM \"%w\".\"%w\", \"%w\".\"%w\" WHERE %s AND (%z)", + z1, z2, pSession->zDb, pTab->zName, zFrom, pTab->zName, zExpr, zExpr2 ); - if( zStmt==0 ){ + if( zStmt==0 || z1==0 || z2==0 ){ rc = SQLITE_NOMEM; }else{ sqlite3_stmt *pStmt; @@ -214373,12 +219558,15 @@ static int sessionDiffFindModified( pDiffCtx->pStmt = pStmt; pDiffCtx->nOldOff = pTab->nCol; while( SQLITE_ROW==sqlite3_step(pStmt) ){ - sessionPreupdateOneChange(SQLITE_UPDATE, pSession, pTab); + i64 iRowid = (pTab->bRowid ? sqlite3_column_int64(pStmt, 0) : 0); + sessionPreupdateOneChange(SQLITE_UPDATE, iRowid, pSession, pTab); } rc = sqlite3_finalize(pStmt); } - sqlite3_free(zStmt); } + sqlite3_free(zStmt); + sqlite3_free(z1); + sqlite3_free(z2); } return rc; @@ -214417,9 +219605,12 @@ SQLITE_API int sqlite3session_diff( int bHasPk = 0; int bMismatch = 0; int nCol; /* Columns in zFrom.zTbl */ + int bRowid = 0; u8 *abPK; const char **azCol = 0; - rc = sessionTableInfo(0, db, zFrom, zTbl, &nCol, 0, &azCol, &abPK); + rc = sessionTableInfo(0, db, zFrom, zTbl, &nCol, 0, &azCol, &abPK, + pSession->bImplicitPK ? &bRowid : 0 + ); if( rc==SQLITE_OK ){ if( pTo->nCol!=nCol ){ bMismatch = 1; @@ -214761,9 +219952,10 @@ static void sessionAppendStr( int *pRc ){ int nStr = sqlite3Strlen30(zStr); - if( 0==sessionBufferGrow(p, nStr, pRc) ){ + if( 0==sessionBufferGrow(p, nStr+1, pRc) ){ memcpy(&p->aBuf[p->nBuf], zStr, nStr); p->nBuf += nStr; + p->aBuf[p->nBuf] = 0x00; } } @@ -214785,6 +219977,27 @@ static void sessionAppendInteger( sessionAppendStr(p, aBuf, pRc); } +static void sessionAppendPrintf( + SessionBuffer *p, /* Buffer to append to */ + int *pRc, + const char *zFmt, + ... +){ + if( *pRc==SQLITE_OK ){ + char *zApp = 0; + va_list ap; + va_start(ap, zFmt); + zApp = sqlite3_vmprintf(zFmt, ap); + if( zApp==0 ){ + *pRc = SQLITE_NOMEM; + }else{ + sessionAppendStr(p, zApp, pRc); + } + va_end(ap); + sqlite3_free(zApp); + } +} + /* ** This function is a no-op if *pRc is other than SQLITE_OK when it is ** called. Otherwise, append the string zStr enclosed in quotes (") and @@ -214799,7 +220012,7 @@ static void sessionAppendIdent( const char *zStr, /* String to quote, escape and append */ int *pRc /* IN/OUT: Error code */ ){ - int nStr = sqlite3Strlen30(zStr)*2 + 2 + 1; + int nStr = sqlite3Strlen30(zStr)*2 + 2 + 2; if( 0==sessionBufferGrow(p, nStr, pRc) ){ char *zOut = (char *)&p->aBuf[p->nBuf]; const char *zIn = zStr; @@ -214810,6 +220023,7 @@ static void sessionAppendIdent( } *zOut++ = '"'; p->nBuf = (int)((u8 *)zOut - p->aBuf); + p->aBuf[p->nBuf] = 0x00; } } @@ -214945,7 +220159,7 @@ static int sessionAppendUpdate( /* If at least one field has been modified, this is not a no-op. */ if( bChanged ) bNoop = 0; - /* Add a field to the old.* record. This is omitted if this modules is + /* Add a field to the old.* record. This is omitted if this module is ** currently generating a patchset. */ if( bPatchset==0 ){ if( bChanged || abPK[i] ){ @@ -215034,12 +220248,20 @@ static int sessionAppendDelete( ** Formulate and prepare a SELECT statement to retrieve a row from table ** zTab in database zDb based on its primary key. i.e. ** -** SELECT * FROM zDb.zTab WHERE pk1 = ? AND pk2 = ? AND ... +** SELECT *, FROM zDb.zTab WHERE (pk1, pk2,...) IS (?1, ?2,...) +** +** where is: +** +** 1 AND (?A OR ?1 IS ) AND ... +** +** for each non-pk . */ static int sessionSelectStmt( sqlite3 *db, /* Database handle */ + int bIgnoreNoop, const char *zDb, /* Database name */ const char *zTab, /* Table name */ + int bRowid, int nCol, /* Number of columns in table */ const char **azCol, /* Names of table columns */ u8 *abPK, /* PRIMARY KEY array */ @@ -215047,8 +220269,50 @@ static int sessionSelectStmt( ){ int rc = SQLITE_OK; char *zSql = 0; + const char *zSep = ""; + const char *zCols = bRowid ? SESSIONS_ROWID ", *" : "*"; int nSql = -1; + int i; + SessionBuffer nooptest = {0, 0, 0}; + SessionBuffer pkfield = {0, 0, 0}; + SessionBuffer pkvar = {0, 0, 0}; + + sessionAppendStr(&nooptest, ", 1", &rc); + + if( 0==sqlite3_stricmp("sqlite_stat1", zTab) ){ + sessionAppendStr(&nooptest, " AND (?6 OR ?3 IS stat)", &rc); + sessionAppendStr(&pkfield, "tbl, idx", &rc); + sessionAppendStr(&pkvar, + "?1, (CASE WHEN ?2=X'' THEN NULL ELSE ?2 END)", &rc + ); + zCols = "tbl, ?2, stat"; + }else{ + for(i=0; izDb, zName, &nCol, 0,&azCol,&abPK); - if( !rc && (pTab->nCol!=nCol || memcmp(abPK, pTab->abPK, nCol)) ){ + rc = sessionTableInfo( + 0, db, pSession->zDb, zName, &nCol, 0, &azCol, &abPK, + (pSession->bImplicitPK ? &bRowid : 0) + ); + if( rc==SQLITE_OK && ( + pTab->nCol!=nCol + || pTab->bRowid!=bRowid + || memcmp(abPK, pTab->abPK, nCol) + )){ rc = SQLITE_SCHEMA; } @@ -215241,7 +220516,8 @@ static int sessionGenerateChangeset( /* Build and compile a statement to execute: */ if( rc==SQLITE_OK ){ rc = sessionSelectStmt( - db, pSession->zDb, zName, nCol, azCol, abPK, &pSel); + db, 0, pSession->zDb, zName, bRowid, nCol, azCol, abPK, &pSel + ); } nNoop = buf.nBuf; @@ -215324,7 +220600,7 @@ SQLITE_API int sqlite3session_changeset( int rc; if( pnChangeset==0 || ppChangeset==0 ) return SQLITE_MISUSE; - rc = sessionGenerateChangeset(pSession, 0, 0, 0, pnChangeset,ppChangeset); + rc = sessionGenerateChangeset(pSession, 0, 0, 0, pnChangeset, ppChangeset); assert( rc || pnChangeset==0 || pSession->bEnableSize==0 || *pnChangeset<=pSession->nMaxChangesetSize ); @@ -215442,6 +220718,19 @@ SQLITE_API int sqlite3session_object_config(sqlite3_session *pSession, int op, v break; } + case SQLITE_SESSION_OBJCONFIG_ROWID: { + int iArg = *(int*)pArg; + if( iArg>=0 ){ + if( pSession->pTable ){ + rc = SQLITE_MISUSE; + }else{ + pSession->bImplicitPK = (iArg!=0); + } + } + *(int*)pArg = pSession->bImplicitPK; + break; + } + default: rc = SQLITE_MISUSE; } @@ -215977,6 +221266,22 @@ static int sessionChangesetNextOne( if( p->op==SQLITE_INSERT ) p->op = SQLITE_DELETE; else if( p->op==SQLITE_DELETE ) p->op = SQLITE_INSERT; } + + /* If this is an UPDATE that is part of a changeset, then check that + ** there are no fields in the old.* record that are not (a) PK fields, + ** or (b) also present in the new.* record. + ** + ** Such records are technically corrupt, but the rebaser was at one + ** point generating them. Under most circumstances this is benign, but + ** can cause spurious SQLITE_RANGE errors when applying the changeset. */ + if( p->bPatchset==0 && p->op==SQLITE_UPDATE){ + for(i=0; inCol; i++){ + if( p->abPK[i]==0 && p->apValue[i+p->nCol]==0 ){ + sqlite3ValueFree(p->apValue[i]); + p->apValue[i] = 0; + } + } + } } return SQLITE_ROW; @@ -216414,6 +221719,8 @@ struct SessionApplyCtx { SessionBuffer rebase; /* Rebase information (if any) here */ u8 bRebaseStarted; /* If table header is already in rebase */ u8 bRebase; /* True to collect rebase information */ + u8 bIgnoreNoop; /* True to ignore no-op conflicts */ + int bRowid; }; /* Number of prepared UPDATE statements to cache. */ @@ -216664,8 +221971,10 @@ static int sessionSelectRow( const char *zTab, /* Table name */ SessionApplyCtx *p /* Session changeset-apply context */ ){ - return sessionSelectStmt( - db, "main", zTab, p->nCol, p->azCol, p->abPK, &p->pSelect); + /* TODO */ + return sessionSelectStmt(db, p->bIgnoreNoop, + "main", zTab, p->bRowid, p->nCol, p->azCol, p->abPK, &p->pSelect + ); } /* @@ -216823,22 +222132,34 @@ static int sessionBindRow( ** UPDATE, bind values from the old.* record. */ static int sessionSeekToRow( - sqlite3 *db, /* Database handle */ sqlite3_changeset_iter *pIter, /* Changeset iterator */ - u8 *abPK, /* Primary key flags array */ - sqlite3_stmt *pSelect /* SELECT statement from sessionSelectRow() */ + SessionApplyCtx *p ){ + sqlite3_stmt *pSelect = p->pSelect; int rc; /* Return code */ int nCol; /* Number of columns in table */ int op; /* Changset operation (SQLITE_UPDATE etc.) */ const char *zDummy; /* Unused */ + sqlite3_clear_bindings(pSelect); sqlite3changeset_op(pIter, &zDummy, &nCol, &op, 0); rc = sessionBindRow(pIter, op==SQLITE_INSERT ? sqlite3changeset_new : sqlite3changeset_old, - nCol, abPK, pSelect + nCol, p->abPK, pSelect ); + if( op!=SQLITE_DELETE && p->bIgnoreNoop ){ + int ii; + for(ii=0; rc==SQLITE_OK && iiabPK[ii]==0 ){ + sqlite3_value *pVal = 0; + sqlite3changeset_new(pIter, ii, &pVal); + sqlite3_bind_int(pSelect, ii+1+nCol, (pVal==0)); + if( pVal ) rc = sessionBindValue(pSelect, ii+1, pVal); + } + } + } + if( rc==SQLITE_OK ){ rc = sqlite3_step(pSelect); if( rc!=SQLITE_ROW ) rc = sqlite3_reset(pSelect); @@ -216953,16 +222274,22 @@ static int sessionConflictHandler( /* Bind the new.* PRIMARY KEY values to the SELECT statement. */ if( pbReplace ){ - rc = sessionSeekToRow(p->db, pIter, p->abPK, p->pSelect); + rc = sessionSeekToRow(pIter, p); }else{ rc = SQLITE_OK; } if( rc==SQLITE_ROW ){ /* There exists another row with the new.* primary key. */ - pIter->pConflict = p->pSelect; - res = xConflict(pCtx, eType, pIter); - pIter->pConflict = 0; + if( p->bIgnoreNoop + && sqlite3_column_int(p->pSelect, sqlite3_column_count(p->pSelect)-1) + ){ + res = SQLITE_CHANGESET_OMIT; + }else{ + pIter->pConflict = p->pSelect; + res = xConflict(pCtx, eType, pIter); + pIter->pConflict = 0; + } rc = sqlite3_reset(p->pSelect); }else if( rc==SQLITE_OK ){ if( p->bDeferConstraints && eType==SQLITE_CHANGESET_CONFLICT ){ @@ -217070,7 +222397,7 @@ static int sessionApplyOneOp( sqlite3_step(p->pDelete); rc = sqlite3_reset(p->pDelete); - if( rc==SQLITE_OK && sqlite3_changes(p->db)==0 ){ + if( rc==SQLITE_OK && sqlite3_changes(p->db)==0 && p->bIgnoreNoop==0 ){ rc = sessionConflictHandler( SQLITE_CHANGESET_DATA, p, pIter, xConflict, pCtx, pbRetry ); @@ -217127,7 +222454,7 @@ static int sessionApplyOneOp( /* Check if there is a conflicting row. For sqlite_stat1, this needs ** to be done using a SELECT, as there is no PRIMARY KEY in the ** database schema to throw an exception if a duplicate is inserted. */ - rc = sessionSeekToRow(p->db, pIter, p->abPK, p->pSelect); + rc = sessionSeekToRow(pIter, p); if( rc==SQLITE_ROW ){ rc = SQLITE_CONSTRAINT; sqlite3_reset(p->pSelect); @@ -217304,6 +222631,7 @@ static int sessionChangesetApply( memset(&sApply, 0, sizeof(sApply)); sApply.bRebase = (ppRebase && pnRebase); sApply.bInvertConstraints = !!(flags & SQLITE_CHANGESETAPPLY_INVERT); + sApply.bIgnoreNoop = !!(flags & SQLITE_CHANGESETAPPLY_IGNORENOOP); sqlite3_mutex_enter(sqlite3_db_mutex(db)); if( (flags & SQLITE_CHANGESETAPPLY_NOSAVEPOINT)==0 ){ rc = sqlite3_exec(db, "SAVEPOINT changeset_apply", 0, 0, 0); @@ -217341,6 +222669,7 @@ static int sessionChangesetApply( sApply.bStat1 = 0; sApply.bDeferConstraints = 1; sApply.bRebaseStarted = 0; + sApply.bRowid = 0; memset(&sApply.constraints, 0, sizeof(SessionBuffer)); /* If an xFilter() callback was specified, invoke it now. If the @@ -217360,8 +222689,8 @@ static int sessionChangesetApply( int i; sqlite3changeset_pk(pIter, &abPK, 0); - rc = sessionTableInfo(0, - db, "main", zNew, &sApply.nCol, &zTab, &sApply.azCol, &sApply.abPK + rc = sessionTableInfo(0, db, "main", zNew, + &sApply.nCol, &zTab, &sApply.azCol, &sApply.abPK, &sApply.bRowid ); if( rc!=SQLITE_OK ) break; for(i=0; iabPK[i] && a1[0] ) bData = 1; memcpy(pOut, a1, n1); pOut += n1; - }else if( a2[0]!=0xFF ){ + }else if( a2[0]!=0xFF && a1[0] ){ bData = 1; memcpy(pOut, a2, n2); pOut += n2; @@ -219243,6 +224572,7 @@ struct Fts5Config { int ePattern; /* FTS_PATTERN_XXX constant */ /* Values loaded from the %_config table */ + int iVersion; /* fts5 file format 'version' */ int iCookie; /* Incremented when %_config is modified */ int pgsz; /* Approximate page size used in %_data */ int nAutomerge; /* 'automerge' setting */ @@ -219251,6 +224581,7 @@ struct Fts5Config { int nHashSize; /* Bytes of memory for in-memory hash */ char *zRank; /* Name of rank function */ char *zRankArgs; /* Arguments to rank function */ + int bSecureDelete; /* 'secure-delete' */ /* If non-NULL, points to sqlite3_vtab.base.zErrmsg. Often NULL. */ char **pzErrmsg; @@ -219260,8 +224591,11 @@ struct Fts5Config { #endif }; -/* Current expected value of %_config table 'version' field */ -#define FTS5_CURRENT_VERSION 4 +/* Current expected value of %_config table 'version' field. And +** the expected version if the 'secure-delete' option has ever been +** set on the table. */ +#define FTS5_CURRENT_VERSION 4 +#define FTS5_CURRENT_VERSION_SECUREDELETE 5 #define FTS5_CONTENT_NORMAL 0 #define FTS5_CONTENT_NONE 1 @@ -219330,7 +224664,7 @@ static void sqlite3Fts5BufferAppendPrintf(int *, Fts5Buffer*, char *zFmt, ...); static char *sqlite3Fts5Mprintf(int *pRc, const char *zFmt, ...); #define fts5BufferZero(x) sqlite3Fts5BufferZero(x) -#define fts5BufferAppendVarint(a,b,c) sqlite3Fts5BufferAppendVarint(a,b,c) +#define fts5BufferAppendVarint(a,b,c) sqlite3Fts5BufferAppendVarint(a,b,(i64)c) #define fts5BufferFree(a) sqlite3Fts5BufferFree(a) #define fts5BufferAppendBlob(a,b,c,d) sqlite3Fts5BufferAppendBlob(a,b,c,d) #define fts5BufferSet(a,b,c,d) sqlite3Fts5BufferSet(a,b,c,d) @@ -219427,6 +224761,7 @@ struct Fts5IndexIter { ** above. */ #define FTS5INDEX_QUERY_SKIPEMPTY 0x0010 #define FTS5INDEX_QUERY_NOOUTPUT 0x0020 +#define FTS5INDEX_QUERY_SKIPHASH 0x0040 /* ** Create/destroy an Fts5Index object. @@ -219581,7 +224916,7 @@ static int sqlite3Fts5GetVarintLen(u32 iVal); static u8 sqlite3Fts5GetVarint(const unsigned char*, u64*); static int sqlite3Fts5PutVarint(unsigned char *p, u64 v); -#define fts5GetVarint32(a,b) sqlite3Fts5GetVarint32(a,(u32*)&b) +#define fts5GetVarint32(a,b) sqlite3Fts5GetVarint32(a,(u32*)&(b)) #define fts5GetVarint sqlite3Fts5GetVarint #define fts5FastGetVarint32(a, iOff, nVal) { \ @@ -221560,7 +226895,7 @@ static int fts5HighlightCb( if( tflags & FTS5_TOKEN_COLOCATED ) return SQLITE_OK; iPos = p->iPos++; - if( p->iRangeEnd>0 ){ + if( p->iRangeEnd>=0 ){ if( iPosiRangeStart || iPos>p->iRangeEnd ) return SQLITE_OK; if( p->iRangeStart && iPos==p->iRangeStart ) p->iOff = iStartOff; } @@ -221572,7 +226907,7 @@ static int fts5HighlightCb( } if( iPos==p->iter.iEnd ){ - if( p->iRangeEnd && p->iter.iStartiRangeStart ){ + if( p->iRangeEnd>=0 && p->iter.iStartiRangeStart ){ fts5HighlightAppend(&rc, p, p->zOpen, -1); } fts5HighlightAppend(&rc, p, &p->zIn[p->iOff], iEndOff - p->iOff); @@ -221583,7 +226918,7 @@ static int fts5HighlightCb( } } - if( p->iRangeEnd>0 && iPos==p->iRangeEnd ){ + if( p->iRangeEnd>=0 && iPos==p->iRangeEnd ){ fts5HighlightAppend(&rc, p, &p->zIn[p->iOff], iEndOff - p->iOff); p->iOff = iEndOff; if( iPos>=p->iter.iStart && iPositer.iEnd ){ @@ -221618,6 +226953,7 @@ static void fts5HighlightFunction( memset(&ctx, 0, sizeof(HighlightContext)); ctx.zOpen = (const char*)sqlite3_value_text(apVal[1]); ctx.zClose = (const char*)sqlite3_value_text(apVal[2]); + ctx.iRangeEnd = -1; rc = pApi->xColumnText(pFts, iCol, &ctx.zIn, &ctx.nIn); if( ctx.zIn ){ @@ -221803,6 +227139,7 @@ static void fts5SnippetFunction( iCol = sqlite3_value_int(apVal[0]); ctx.zOpen = fts5ValueToText(apVal[1]); ctx.zClose = fts5ValueToText(apVal[2]); + ctx.iRangeEnd = -1; zEllips = fts5ValueToText(apVal[3]); nToken = sqlite3_value_int(apVal[4]); @@ -223071,6 +228408,7 @@ static int sqlite3Fts5ConfigParse( rc = SQLITE_ERROR; } + assert( (pRet->abUnindexed && pRet->azCol) || rc!=SQLITE_OK ); for(i=3; rc==SQLITE_OK && ibSecureDelete = (bVal ? 1 : 0); + } }else{ *pbBadkey = 1; } @@ -223468,15 +228818,20 @@ static int sqlite3Fts5ConfigLoad(Fts5Config *pConfig, int iCookie){ rc = sqlite3_finalize(p); } - if( rc==SQLITE_OK && iVersion!=FTS5_CURRENT_VERSION ){ + if( rc==SQLITE_OK + && iVersion!=FTS5_CURRENT_VERSION + && iVersion!=FTS5_CURRENT_VERSION_SECUREDELETE + ){ rc = SQLITE_ERROR; if( pConfig->pzErrmsg ){ assert( 0==*pConfig->pzErrmsg ); - *pConfig->pzErrmsg = sqlite3_mprintf( - "invalid fts5 file format (found %d, expected %d) - run 'rebuild'", - iVersion, FTS5_CURRENT_VERSION + *pConfig->pzErrmsg = sqlite3_mprintf("invalid fts5 file format " + "(found %d, expected %d or %d) - run 'rebuild'", + iVersion, FTS5_CURRENT_VERSION, FTS5_CURRENT_VERSION_SECUREDELETE ); } + }else{ + pConfig->iVersion = iVersion; } if( rc==SQLITE_OK ){ @@ -223504,6 +228859,10 @@ static int sqlite3Fts5ConfigLoad(Fts5Config *pConfig, int iCookie){ /* #include "fts5Int.h" */ /* #include "fts5parse.h" */ +#ifndef SQLITE_FTS5_MAX_EXPR_DEPTH +# define SQLITE_FTS5_MAX_EXPR_DEPTH 256 +#endif + /* ** All token types in the generated fts5parse.h file are greater than 0. */ @@ -223544,11 +228903,17 @@ struct Fts5Expr { ** FTS5_NOT (nChild, apChild valid) ** FTS5_STRING (pNear valid) ** FTS5_TERM (pNear valid) +** +** iHeight: +** Distance from this node to furthest leaf. This is always 0 for nodes +** of type FTS5_STRING and FTS5_TERM. For all other nodes it is one +** greater than the largest child value. */ struct Fts5ExprNode { int eType; /* Node type */ int bEof; /* True at EOF */ int bNomatch; /* True if entry is not a match */ + int iHeight; /* Distance to tree leaf nodes */ /* Next method for this node. */ int (*xNext)(Fts5Expr*, Fts5ExprNode*, int, i64); @@ -223618,6 +228983,31 @@ struct Fts5Parse { int bPhraseToAnd; /* Convert "a+b" to "a AND b" */ }; +/* +** Check that the Fts5ExprNode.iHeight variables are set correctly in +** the expression tree passed as the only argument. +*/ +#ifndef NDEBUG +static void assert_expr_depth_ok(int rc, Fts5ExprNode *p){ + if( rc==SQLITE_OK ){ + if( p->eType==FTS5_TERM || p->eType==FTS5_STRING || p->eType==0 ){ + assert( p->iHeight==0 ); + }else{ + int ii; + int iMaxChild = 0; + for(ii=0; iinChild; ii++){ + Fts5ExprNode *pChild = p->apChild[ii]; + iMaxChild = MAX(iMaxChild, pChild->iHeight); + assert_expr_depth_ok(SQLITE_OK, pChild); + } + assert( p->iHeight==iMaxChild+1 ); + } + } +} +#else +# define assert_expr_depth_ok(rc, p) +#endif + static void sqlite3Fts5ParseError(Fts5Parse *pParse, const char *zFmt, ...){ va_list ap; va_start(ap, zFmt); @@ -223732,6 +229122,8 @@ static int sqlite3Fts5ExprNew( }while( sParse.rc==SQLITE_OK && t!=FTS5_EOF ); sqlite3Fts5ParserFree(pEngine, fts5ParseFree); + assert_expr_depth_ok(sParse.rc, sParse.pExpr); + /* If the LHS of the MATCH expression was a user column, apply the ** implicit column-filter. */ if( iColnCol && sParse.pExpr && sParse.rc==SQLITE_OK ){ @@ -223776,6 +229168,19 @@ static int sqlite3Fts5ExprNew( return sParse.rc; } +/* +** Assuming that buffer z is at least nByte bytes in size and contains a +** valid utf-8 string, return the number of characters in the string. +*/ +static int fts5ExprCountChar(const char *z, int nByte){ + int nRet = 0; + int ii; + for(ii=0; ii=3 ){ + + if( fts5ExprCountChar(&zText[iFirst], i-iFirst)>=3 ){ int jj; zExpr[iOut++] = '"'; for(jj=iFirst; jjnPhrase + p2->nPhrase; @@ -223905,7 +229311,7 @@ static int sqlite3Fts5ExprAnd(Fts5Expr **pp1, Fts5Expr *p2){ } sqlite3_free(p2->apExprPhrase); sqlite3_free(p2); - }else{ + }else if( p2 ){ *pp1 = p2; } @@ -225679,6 +231085,7 @@ static void fts5ExprAssignXNext(Fts5ExprNode *pNode){ } static void fts5ExprAddChildren(Fts5ExprNode *p, Fts5ExprNode *pSub){ + int ii = p->nChild; if( p->eType!=FTS5_NOT && pSub->eType==p->eType ){ int nByte = sizeof(Fts5ExprNode*) * pSub->nChild; memcpy(&p->apChild[p->nChild], pSub->apChild, nByte); @@ -225687,6 +231094,9 @@ static void fts5ExprAddChildren(Fts5ExprNode *p, Fts5ExprNode *pSub){ }else{ p->apChild[p->nChild++] = pSub; } + for( ; iinChild; ii++){ + p->iHeight = MAX(p->iHeight, p->apChild[ii]->iHeight + 1); + } } /* @@ -225717,6 +231127,7 @@ static Fts5ExprNode *fts5ParsePhraseToAnd( if( pRet ){ pRet->eType = FTS5_AND; pRet->nChild = nTerm; + pRet->iHeight = 1; fts5ExprAssignXNext(pRet); pParse->nPhrase--; for(ii=0; iiiHeight>SQLITE_FTS5_MAX_EXPR_DEPTH ){ + sqlite3Fts5ParseError(pParse, + "fts5 expression tree is too large (maximum depth %d)", + SQLITE_FTS5_MAX_EXPR_DEPTH + ); + sqlite3_free(pRet); + pRet = 0; + } } } } @@ -227174,6 +232593,8 @@ static void sqlite3Fts5HashScanEntry( # error "FTS5_MAX_PREFIX_INDEXES is too large" #endif +#define FTS5_MAX_LEVEL 64 + /* ** Details: ** @@ -227420,6 +232841,8 @@ struct Fts5Index { sqlite3_stmt *pIdxSelect; int nRead; /* Total number of blocks read */ + sqlite3_stmt *pDeleteFromIdx; + sqlite3_stmt *pDataVersion; i64 iStructVersion; /* data_version when pStruct read */ Fts5Structure *pStruct; /* Current db structure (or NULL) */ @@ -227512,9 +232935,6 @@ struct Fts5CResult { ** iLeafOffset: ** Byte offset within the current leaf that is the first byte of the ** position list data (one byte passed the position-list size field). -** rowid field of the current entry. Usually this is the size field of the -** position list data. The exception is if the rowid for the current entry -** is the last thing on the leaf page. ** ** pLeaf: ** Buffer containing current leaf page data. Set to NULL at EOF. @@ -228073,6 +233493,7 @@ static int fts5StructureDecode( rc = FTS5_CORRUPT; break; } + assert( pSeg!=0 ); i += fts5GetVarint32(&pData[i], pSeg->iSegid); i += fts5GetVarint32(&pData[i], pSeg->pgnoFirst); i += fts5GetVarint32(&pData[i], pSeg->pgnoLast); @@ -228103,6 +233524,7 @@ static int fts5StructureDecode( */ static void fts5StructureAddLevel(int *pRc, Fts5Structure **ppStruct){ fts5StructureMakeWritable(pRc, ppStruct); + assert( (ppStruct!=0 && (*ppStruct)!=0) || (*pRc)!=SQLITE_OK ); if( *pRc==SQLITE_OK ){ Fts5Structure *pStruct = *ppStruct; int nLevel = pStruct->nLevel; @@ -228561,42 +233983,25 @@ static int fts5DlidxLvlPrev(Fts5DlidxLvl *pLvl){ pLvl->bEof = 1; }else{ u8 *a = pLvl->pData->p; - i64 iVal; - int iLimit; - int ii; - int nZero = 0; - /* Currently iOff points to the first byte of a varint. This block - ** decrements iOff until it points to the first byte of the previous - ** varint. Taking care not to read any memory locations that occur - ** before the buffer in memory. */ - iLimit = (iOff>9 ? iOff-9 : 0); - for(iOff--; iOff>iLimit; iOff--){ - if( (a[iOff-1] & 0x80)==0 ) break; - } + pLvl->iOff = 0; + fts5DlidxLvlNext(pLvl); + while( 1 ){ + int nZero = 0; + int ii = pLvl->iOff; + u64 delta = 0; - fts5GetVarint(&a[iOff], (u64*)&iVal); - pLvl->iRowid -= iVal; - pLvl->iLeafPgno--; - - /* Skip backwards past any 0x00 varints. */ - for(ii=iOff-1; ii>=pLvl->iFirstOff && a[ii]==0x00; ii--){ - nZero++; - } - if( ii>=pLvl->iFirstOff && (a[ii] & 0x80) ){ - /* The byte immediately before the last 0x00 byte has the 0x80 bit - ** set. So the last 0x00 is only a varint 0 if there are 8 more 0x80 - ** bytes before a[ii]. */ - int bZero = 0; /* True if last 0x00 counts */ - if( (ii-8)>=pLvl->iFirstOff ){ - int j; - for(j=1; j<=8 && (a[ii-j] & 0x80); j++); - bZero = (j>8); + while( a[ii]==0 ){ + nZero++; + ii++; } - if( bZero==0 ) nZero--; + ii += sqlite3Fts5GetVarint(&a[ii], &delta); + + if( ii>=iOff ) break; + pLvl->iLeafPgno += nZero+1; + pLvl->iRowid += delta; + pLvl->iOff = ii; } - pLvl->iLeafPgno -= nZero; - pLvl->iOff = iOff - nZero; } return pLvl->bEof; @@ -228792,7 +234197,7 @@ static void fts5SegIterLoadRowid(Fts5Index *p, Fts5SegIter *pIter){ i64 iOff = pIter->iLeafOffset; ASSERT_SZLEAF_OK(pIter->pLeaf); - if( iOff>=pIter->pLeaf->szLeaf ){ + while( iOff>=pIter->pLeaf->szLeaf ){ fts5SegIterNextPage(p, pIter); if( pIter->pLeaf==0 ){ if( p->rc==SQLITE_OK ) p->rc = FTS5_CORRUPT; @@ -228891,10 +234296,12 @@ static void fts5SegIterInit( fts5SegIterSetNext(p, pIter); pIter->pSeg = pSeg; pIter->iLeafPgno = pSeg->pgnoFirst-1; - fts5SegIterNextPage(p, pIter); + do { + fts5SegIterNextPage(p, pIter); + }while( p->rc==SQLITE_OK && pIter->pLeaf && pIter->pLeaf->nn==4 ); } - if( p->rc==SQLITE_OK ){ + if( p->rc==SQLITE_OK && pIter->pLeaf ){ pIter->iLeafOffset = 4; assert( pIter->pLeaf!=0 ); assert_nc( pIter->pLeaf->nn>4 ); @@ -229088,7 +234495,7 @@ static void fts5SegIterNext_None( iOff = pIter->iLeafOffset; /* Next entry is on the next page */ - if( pIter->pSeg && iOff>=pIter->pLeaf->szLeaf ){ + while( pIter->pSeg && iOff>=pIter->pLeaf->szLeaf ){ fts5SegIterNextPage(p, pIter); if( p->rc || pIter->pLeaf==0 ) return; pIter->iRowid = 0; @@ -229281,7 +234688,7 @@ static void fts5SegIterReverse(Fts5Index *p, Fts5SegIter *pIter){ Fts5Data *pLast = 0; int pgnoLast = 0; - if( pDlidx ){ + if( pDlidx && p->pConfig->iVersion==FTS5_CURRENT_VERSION ){ int iSegid = pIter->pSeg->iSegid; pgnoLast = fts5DlidxIterPgno(pDlidx); pLast = fts5LeafRead(p, FTS5_SEGMENT_ROWID(iSegid, pgnoLast)); @@ -229842,7 +235249,8 @@ static int fts5MultiIterDoCompare(Fts5Iter *pIter, int iOut){ /* ** Move the seg-iter so that it points to the first rowid on page iLeafPgno. -** It is an error if leaf iLeafPgno does not exist or contains no rowids. +** It is an error if leaf iLeafPgno does not exist. Unless the db is +** a 'secure-delete' db, if it contains no rowids then this is also an error. */ static void fts5SegIterGotoPage( Fts5Index *p, /* FTS5 backend object */ @@ -229857,21 +235265,23 @@ static void fts5SegIterGotoPage( fts5DataRelease(pIter->pNextLeaf); pIter->pNextLeaf = 0; pIter->iLeafPgno = iLeafPgno-1; - fts5SegIterNextPage(p, pIter); - assert( p->rc!=SQLITE_OK || pIter->iLeafPgno==iLeafPgno ); - if( p->rc==SQLITE_OK && ALWAYS(pIter->pLeaf!=0) ){ + while( p->rc==SQLITE_OK ){ int iOff; - u8 *a = pIter->pLeaf->p; - int n = pIter->pLeaf->szLeaf; - + fts5SegIterNextPage(p, pIter); + if( pIter->pLeaf==0 ) break; iOff = fts5LeafFirstRowidOff(pIter->pLeaf); - if( iOff<4 || iOff>=n ){ - p->rc = FTS5_CORRUPT; - }else{ - iOff += fts5GetVarint(&a[iOff], (u64*)&pIter->iRowid); - pIter->iLeafOffset = iOff; - fts5SegIterLoadNPos(p, pIter); + if( iOff>0 ){ + u8 *a = pIter->pLeaf->p; + int n = pIter->pLeaf->szLeaf; + if( iOff<4 || iOff>=n ){ + p->rc = FTS5_CORRUPT; + }else{ + iOff += fts5GetVarint(&a[iOff], (u64*)&pIter->iRowid); + pIter->iLeafOffset = iOff; + fts5SegIterLoadNPos(p, pIter); + } + break; } } } @@ -230586,7 +235996,7 @@ static void fts5MultiIterNew( if( iLevel<0 ){ assert( pStruct->nSegment==fts5StructureCountSegments(pStruct) ); nSeg = pStruct->nSegment; - nSeg += (p->pHash ? 1 : 0); + nSeg += (p->pHash && 0==(flags & FTS5INDEX_QUERY_SKIPHASH)); }else{ nSeg = MIN(pStruct->aLevel[iLevel].nSeg, nSegment); } @@ -230607,7 +236017,7 @@ static void fts5MultiIterNew( if( p->rc==SQLITE_OK ){ if( iLevel<0 ){ Fts5StructureLevel *pEnd = &pStruct->aLevel[pStruct->nLevel]; - if( p->pHash ){ + if( p->pHash && 0==(flags & FTS5INDEX_QUERY_SKIPHASH) ){ /* Add a segment iterator for the current contents of the hash table. */ Fts5SegIter *pIter = &pNew->aSeg[iIter++]; fts5SegIterHashInit(p, pTerm, nTerm, flags, pIter); @@ -231207,7 +236617,9 @@ static void fts5WriteAppendRowid( fts5BufferAppendVarint(&p->rc, &pPage->buf, iRowid); }else{ assert_nc( p->rc || iRowid>pWriter->iPrevRowid ); - fts5BufferAppendVarint(&p->rc, &pPage->buf, iRowid - pWriter->iPrevRowid); + fts5BufferAppendVarint(&p->rc, &pPage->buf, + (u64)iRowid - (u64)pWriter->iPrevRowid + ); } pWriter->iPrevRowid = iRowid; pWriter->bFirstRowidInDoclist = 0; @@ -231360,7 +236772,7 @@ static void fts5TrimSegments(Fts5Index *p, Fts5Iter *pIter){ fts5BufferAppendBlob(&p->rc, &buf, sizeof(aHdr), aHdr); fts5BufferAppendVarint(&p->rc, &buf, pSeg->term.n); fts5BufferAppendBlob(&p->rc, &buf, pSeg->term.n, pSeg->term.p); - fts5BufferAppendBlob(&p->rc, &buf, pData->szLeaf-iOff,&pData->p[iOff]); + fts5BufferAppendBlob(&p->rc, &buf,pData->szLeaf-iOff,&pData->p[iOff]); if( p->rc==SQLITE_OK ){ /* Set the szLeaf field */ fts5PutU16(&buf.p[2], (u16)buf.n); @@ -231638,16 +237050,16 @@ static void fts5IndexCrisismerge( ){ const int nCrisis = p->pConfig->nCrisisMerge; Fts5Structure *pStruct = *ppStruct; - int iLvl = 0; - - assert( p->rc!=SQLITE_OK || pStruct->nLevel>0 ); - while( p->rc==SQLITE_OK && pStruct->aLevel[iLvl].nSeg>=nCrisis ){ - fts5IndexMergeLevel(p, &pStruct, iLvl, 0); - assert( p->rc!=SQLITE_OK || pStruct->nLevel>(iLvl+1) ); - fts5StructurePromote(p, iLvl+1, pStruct); - iLvl++; + if( pStruct && pStruct->nLevel>0 ){ + int iLvl = 0; + while( p->rc==SQLITE_OK && pStruct->aLevel[iLvl].nSeg>=nCrisis ){ + fts5IndexMergeLevel(p, &pStruct, iLvl, 0); + assert( p->rc!=SQLITE_OK || pStruct->nLevel>(iLvl+1) ); + fts5StructurePromote(p, iLvl+1, pStruct); + iLvl++; + } + *ppStruct = pStruct; } - *ppStruct = pStruct; } static int fts5IndexReturn(Fts5Index *p){ @@ -231681,6 +237093,413 @@ static int fts5PoslistPrefix(const u8 *aBuf, int nMax){ return ret; } +/* +** Execute the SQL statement: +** +** DELETE FROM %_idx WHERE (segid, (pgno/2)) = ($iSegid, $iPgno); +** +** This is used when a secure-delete operation removes the last term +** from a segment leaf page. In that case the %_idx entry is removed +** too. This is done to ensure that if all instances of a token are +** removed from an fts5 database in secure-delete mode, no trace of +** the token itself remains in the database. +*/ +static void fts5SecureDeleteIdxEntry( + Fts5Index *p, /* FTS5 backend object */ + int iSegid, /* Id of segment to delete entry for */ + int iPgno /* Page number within segment */ +){ + if( iPgno!=1 ){ + assert( p->pConfig->iVersion==FTS5_CURRENT_VERSION_SECUREDELETE ); + if( p->pDeleteFromIdx==0 ){ + fts5IndexPrepareStmt(p, &p->pDeleteFromIdx, sqlite3_mprintf( + "DELETE FROM '%q'.'%q_idx' WHERE (segid, (pgno/2)) = (?1, ?2)", + p->pConfig->zDb, p->pConfig->zName + )); + } + if( p->rc==SQLITE_OK ){ + sqlite3_bind_int(p->pDeleteFromIdx, 1, iSegid); + sqlite3_bind_int(p->pDeleteFromIdx, 2, iPgno); + sqlite3_step(p->pDeleteFromIdx); + p->rc = sqlite3_reset(p->pDeleteFromIdx); + } + } +} + +/* +** This is called when a secure-delete operation removes a position-list +** that overflows onto segment page iPgno of segment pSeg. This function +** rewrites node iPgno, and possibly one or more of its right-hand peers, +** to remove this portion of the position list. +** +** Output variable (*pbLastInDoclist) is set to true if the position-list +** removed is followed by a new term or the end-of-segment, or false if +** it is followed by another rowid/position list. +*/ +static void fts5SecureDeleteOverflow( + Fts5Index *p, + Fts5StructureSegment *pSeg, + int iPgno, + int *pbLastInDoclist +){ + const int bDetailNone = (p->pConfig->eDetail==FTS5_DETAIL_NONE); + int pgno; + Fts5Data *pLeaf = 0; + assert( iPgno!=1 ); + + *pbLastInDoclist = 1; + for(pgno=iPgno; p->rc==SQLITE_OK && pgno<=pSeg->pgnoLast; pgno++){ + i64 iRowid = FTS5_SEGMENT_ROWID(pSeg->iSegid, pgno); + int iNext = 0; + u8 *aPg = 0; + + pLeaf = fts5DataRead(p, iRowid); + if( pLeaf==0 ) break; + aPg = pLeaf->p; + + iNext = fts5GetU16(&aPg[0]); + if( iNext!=0 ){ + *pbLastInDoclist = 0; + } + if( iNext==0 && pLeaf->szLeaf!=pLeaf->nn ){ + fts5GetVarint32(&aPg[pLeaf->szLeaf], iNext); + } + + if( iNext==0 ){ + /* The page contains no terms or rowids. Replace it with an empty + ** page and move on to the right-hand peer. */ + const u8 aEmpty[] = {0x00, 0x00, 0x00, 0x04}; + assert_nc( bDetailNone==0 || pLeaf->nn==4 ); + if( bDetailNone==0 ) fts5DataWrite(p, iRowid, aEmpty, sizeof(aEmpty)); + fts5DataRelease(pLeaf); + pLeaf = 0; + }else if( bDetailNone ){ + break; + }else if( iNext>=pLeaf->szLeaf || iNext<4 ){ + p->rc = FTS5_CORRUPT; + break; + }else{ + int nShift = iNext - 4; + int nPg; + + int nIdx = 0; + u8 *aIdx = 0; + + /* Unless the current page footer is 0 bytes in size (in which case + ** the new page footer will be as well), allocate and populate a + ** buffer containing the new page footer. Set stack variables aIdx + ** and nIdx accordingly. */ + if( pLeaf->nn>pLeaf->szLeaf ){ + int iFirst = 0; + int i1 = pLeaf->szLeaf; + int i2 = 0; + + aIdx = sqlite3Fts5MallocZero(&p->rc, (pLeaf->nn-pLeaf->szLeaf)+2); + if( aIdx==0 ) break; + i1 += fts5GetVarint32(&aPg[i1], iFirst); + i2 = sqlite3Fts5PutVarint(aIdx, iFirst-nShift); + if( i1nn ){ + memcpy(&aIdx[i2], &aPg[i1], pLeaf->nn-i1); + i2 += (pLeaf->nn-i1); + } + nIdx = i2; + } + + /* Modify the contents of buffer aPg[]. Set nPg to the new size + ** in bytes. The new page is always smaller than the old. */ + nPg = pLeaf->szLeaf - nShift; + memmove(&aPg[4], &aPg[4+nShift], nPg-4); + fts5PutU16(&aPg[2], nPg); + if( fts5GetU16(&aPg[0]) ) fts5PutU16(&aPg[0], 4); + if( nIdx>0 ){ + memcpy(&aPg[nPg], aIdx, nIdx); + nPg += nIdx; + } + sqlite3_free(aIdx); + + /* Write the new page to disk and exit the loop */ + assert( nPg>4 || fts5GetU16(aPg)==0 ); + fts5DataWrite(p, iRowid, aPg, nPg); + break; + } + } + fts5DataRelease(pLeaf); +} + +/* +** Completely remove the entry that pSeg currently points to from +** the database. +*/ +static void fts5DoSecureDelete( + Fts5Index *p, + Fts5SegIter *pSeg +){ + const int bDetailNone = (p->pConfig->eDetail==FTS5_DETAIL_NONE); + int iSegid = pSeg->pSeg->iSegid; + u8 *aPg = pSeg->pLeaf->p; + int nPg = pSeg->pLeaf->nn; + int iPgIdx = pSeg->pLeaf->szLeaf; + + u64 iDelta = 0; + u64 iNextDelta = 0; + int iNextOff = 0; + int iOff = 0; + int nIdx = 0; + u8 *aIdx = 0; + int bLastInDoclist = 0; + int iIdx = 0; + int iStart = 0; + int iKeyOff = 0; + int iPrevKeyOff = 0; + int iDelKeyOff = 0; /* Offset of deleted key, if any */ + + nIdx = nPg-iPgIdx; + aIdx = sqlite3Fts5MallocZero(&p->rc, nIdx+16); + if( p->rc ) return; + memcpy(aIdx, &aPg[iPgIdx], nIdx); + + /* At this point segment iterator pSeg points to the entry + ** this function should remove from the b-tree segment. + ** + ** In detail=full or detail=column mode, pSeg->iLeafOffset is the + ** offset of the first byte in the position-list for the entry to + ** remove. Immediately before this comes two varints that will also + ** need to be removed: + ** + ** + the rowid or delta rowid value for the entry, and + ** + the size of the position list in bytes. + ** + ** Or, in detail=none mode, there is a single varint prior to + ** pSeg->iLeafOffset - the rowid or delta rowid value. + ** + ** This block sets the following variables: + ** + ** iStart: + ** iDelta: + */ + { + int iSOP; + if( pSeg->iLeafPgno==pSeg->iTermLeafPgno ){ + iStart = pSeg->iTermLeafOffset; + }else{ + iStart = fts5GetU16(&aPg[0]); + } + + iSOP = iStart + fts5GetVarint(&aPg[iStart], &iDelta); + assert_nc( iSOP<=pSeg->iLeafOffset ); + + if( bDetailNone ){ + while( iSOPiLeafOffset ){ + if( aPg[iSOP]==0x00 ) iSOP++; + if( aPg[iSOP]==0x00 ) iSOP++; + iStart = iSOP; + iSOP = iStart + fts5GetVarint(&aPg[iStart], &iDelta); + } + + iNextOff = iSOP; + if( iNextOffiEndofDoclist && aPg[iNextOff]==0x00 ) iNextOff++; + if( iNextOffiEndofDoclist && aPg[iNextOff]==0x00 ) iNextOff++; + + }else{ + int nPos = 0; + iSOP += fts5GetVarint32(&aPg[iSOP], nPos); + while( iSOPiLeafOffset ){ + iStart = iSOP + (nPos/2); + iSOP = iStart + fts5GetVarint(&aPg[iStart], &iDelta); + iSOP += fts5GetVarint32(&aPg[iSOP], nPos); + } + assert_nc( iSOP==pSeg->iLeafOffset ); + iNextOff = pSeg->iLeafOffset + pSeg->nPos; + } + } + + iOff = iStart; + if( iNextOff>=iPgIdx ){ + int pgno = pSeg->iLeafPgno+1; + fts5SecureDeleteOverflow(p, pSeg->pSeg, pgno, &bLastInDoclist); + iNextOff = iPgIdx; + }else{ + /* Set bLastInDoclist to true if the entry being removed is the last + ** in its doclist. */ + for(iIdx=0, iKeyOff=0; iIdxiTermLeafOffset && pSeg->iLeafPgno==pSeg->iTermLeafPgno + ){ + /* The entry being removed was the only position list in its + ** doclist. Therefore the term needs to be removed as well. */ + int iKey = 0; + for(iIdx=0, iKeyOff=0; iIdx(u32)iStart ) break; + iKeyOff += iVal; + } + + iDelKeyOff = iOff = iKeyOff; + if( iNextOff!=iPgIdx ){ + int nPrefix = 0; + int nSuffix = 0; + int nPrefix2 = 0; + int nSuffix2 = 0; + + iDelKeyOff = iNextOff; + iNextOff += fts5GetVarint32(&aPg[iNextOff], nPrefix2); + iNextOff += fts5GetVarint32(&aPg[iNextOff], nSuffix2); + + if( iKey!=1 ){ + iKeyOff += fts5GetVarint32(&aPg[iKeyOff], nPrefix); + } + iKeyOff += fts5GetVarint32(&aPg[iKeyOff], nSuffix); + + nPrefix = MIN(nPrefix, nPrefix2); + nSuffix = (nPrefix2 + nSuffix2) - nPrefix; + + if( (iKeyOff+nSuffix)>iPgIdx || (iNextOff+nSuffix2)>iPgIdx ){ + p->rc = FTS5_CORRUPT; + }else{ + if( iKey!=1 ){ + iOff += sqlite3Fts5PutVarint(&aPg[iOff], nPrefix); + } + iOff += sqlite3Fts5PutVarint(&aPg[iOff], nSuffix); + if( nPrefix2>nPrefix ){ + memcpy(&aPg[iOff], &pSeg->term.p[nPrefix], nPrefix2-nPrefix); + iOff += (nPrefix2-nPrefix); + } + memmove(&aPg[iOff], &aPg[iNextOff], nSuffix2); + iOff += nSuffix2; + iNextOff += nSuffix2; + } + } + }else if( iStart==4 ){ + int iPgno; + + assert_nc( pSeg->iLeafPgno>pSeg->iTermLeafPgno ); + /* The entry being removed may be the only position list in + ** its doclist. */ + for(iPgno=pSeg->iLeafPgno-1; iPgno>pSeg->iTermLeafPgno; iPgno-- ){ + Fts5Data *pPg = fts5DataRead(p, FTS5_SEGMENT_ROWID(iSegid, iPgno)); + int bEmpty = (pPg && pPg->nn==4); + fts5DataRelease(pPg); + if( bEmpty==0 ) break; + } + + if( iPgno==pSeg->iTermLeafPgno ){ + i64 iId = FTS5_SEGMENT_ROWID(iSegid, pSeg->iTermLeafPgno); + Fts5Data *pTerm = fts5DataRead(p, iId); + if( pTerm && pTerm->szLeaf==pSeg->iTermLeafOffset ){ + u8 *aTermIdx = &pTerm->p[pTerm->szLeaf]; + int nTermIdx = pTerm->nn - pTerm->szLeaf; + int iTermIdx = 0; + int iTermOff = 0; + + while( 1 ){ + u32 iVal = 0; + int nByte = fts5GetVarint32(&aTermIdx[iTermIdx], iVal); + iTermOff += iVal; + if( (iTermIdx+nByte)>=nTermIdx ) break; + iTermIdx += nByte; + } + nTermIdx = iTermIdx; + + memmove(&pTerm->p[iTermOff], &pTerm->p[pTerm->szLeaf], nTermIdx); + fts5PutU16(&pTerm->p[2], iTermOff); + + fts5DataWrite(p, iId, pTerm->p, iTermOff+nTermIdx); + if( nTermIdx==0 ){ + fts5SecureDeleteIdxEntry(p, iSegid, pSeg->iTermLeafPgno); + } + } + fts5DataRelease(pTerm); + } + } + + if( p->rc==SQLITE_OK ){ + const int nMove = nPg - iNextOff; + int nShift = 0; + + memmove(&aPg[iOff], &aPg[iNextOff], nMove); + iPgIdx -= (iNextOff - iOff); + nPg = iPgIdx; + fts5PutU16(&aPg[2], iPgIdx); + + nShift = iNextOff - iOff; + for(iIdx=0, iKeyOff=0, iPrevKeyOff=0; iIdxiOff ){ + iKeyOff -= nShift; + nShift = 0; + } + nPg += sqlite3Fts5PutVarint(&aPg[nPg], iKeyOff - iPrevKeyOff); + iPrevKeyOff = iKeyOff; + } + } + + if( iPgIdx==nPg && nIdx>0 && pSeg->iLeafPgno!=1 ){ + fts5SecureDeleteIdxEntry(p, iSegid, pSeg->iLeafPgno); + } + + assert_nc( nPg>4 || fts5GetU16(aPg)==0 ); + fts5DataWrite(p, FTS5_SEGMENT_ROWID(iSegid,pSeg->iLeafPgno), aPg,nPg); + } + sqlite3_free(aIdx); +} + +/* +** This is called as part of flushing a delete to disk in 'secure-delete' +** mode. It edits the segments within the database described by argument +** pStruct to remove the entries for term zTerm, rowid iRowid. +*/ +static void fts5FlushSecureDelete( + Fts5Index *p, + Fts5Structure *pStruct, + const char *zTerm, + i64 iRowid +){ + const int f = FTS5INDEX_QUERY_SKIPHASH; + int nTerm = (int)strlen(zTerm); + Fts5Iter *pIter = 0; /* Used to find term instance */ + + fts5MultiIterNew(p, pStruct, f, 0, (const u8*)zTerm, nTerm, -1, 0, &pIter); + if( fts5MultiIterEof(p, pIter)==0 ){ + i64 iThis = fts5MultiIterRowid(pIter); + if( iThisrc==SQLITE_OK + && fts5MultiIterEof(p, pIter)==0 + && iRowid==fts5MultiIterRowid(pIter) + ){ + Fts5SegIter *pSeg = &pIter->aSeg[pIter->aFirst[1].iFirst]; + fts5DoSecureDelete(p, pSeg); + } + } + + fts5MultiIterFree(pIter); +} + + /* ** Flush the contents of in-memory hash table iHash to a new level-0 ** segment on disk. Also update the corresponding structure record. @@ -231703,6 +237522,7 @@ static void fts5FlushOneHash(Fts5Index *p){ if( iSegid ){ const int pgsz = p->pConfig->pgsz; int eDetail = p->pConfig->eDetail; + int bSecureDelete = p->pConfig->bSecureDelete; Fts5StructureSegment *pSeg; /* New segment within pStruct */ Fts5Buffer *pBuf; /* Buffer in which to assemble leaf page */ Fts5Buffer *pPgidx; /* Buffer in which to assemble pgidx */ @@ -231725,40 +237545,77 @@ static void fts5FlushOneHash(Fts5Index *p){ } while( p->rc==SQLITE_OK && 0==sqlite3Fts5HashScanEof(pHash) ){ const char *zTerm; /* Buffer containing term */ + int nTerm; /* Size of zTerm in bytes */ const u8 *pDoclist; /* Pointer to doclist for this term */ int nDoclist; /* Size of doclist in bytes */ - /* Write the term for this entry to disk. */ + /* Get the term and doclist for this entry. */ sqlite3Fts5HashScanEntry(pHash, &zTerm, &pDoclist, &nDoclist); - fts5WriteAppendTerm(p, &writer, (int)strlen(zTerm), (const u8*)zTerm); - if( p->rc!=SQLITE_OK ) break; + nTerm = (int)strlen(zTerm); + if( bSecureDelete==0 ){ + fts5WriteAppendTerm(p, &writer, nTerm, (const u8*)zTerm); + if( p->rc!=SQLITE_OK ) break; + assert( writer.bFirstRowidInPage==0 ); + } - assert( writer.bFirstRowidInPage==0 ); - if( pgsz>=(pBuf->n + pPgidx->n + nDoclist + 1) ){ + if( !bSecureDelete && pgsz>=(pBuf->n + pPgidx->n + nDoclist + 1) ){ /* The entire doclist will fit on the current leaf. */ fts5BufferSafeAppendBlob(pBuf, pDoclist, nDoclist); }else{ + int bTermWritten = !bSecureDelete; i64 iRowid = 0; - u64 iDelta = 0; + i64 iPrev = 0; int iOff = 0; /* The entire doclist will not fit on this leaf. The following ** loop iterates through the poslists that make up the current ** doclist. */ while( p->rc==SQLITE_OK && iOffrc!=SQLITE_OK || pDoclist[iOff]==0x01 ){ + iOff++; + continue; + } + } + } + + if( p->rc==SQLITE_OK && bTermWritten==0 ){ + fts5WriteAppendTerm(p, &writer, nTerm, (const u8*)zTerm); + bTermWritten = 1; + assert( p->rc!=SQLITE_OK || writer.bFirstRowidInPage==0 ); + } + if( writer.bFirstRowidInPage ){ fts5PutU16(&pBuf->p[0], (u16)pBuf->n); /* first rowid on page */ pBuf->n += sqlite3Fts5PutVarint(&pBuf->p[pBuf->n], iRowid); writer.bFirstRowidInPage = 0; fts5WriteDlidxAppend(p, &writer, iRowid); - if( p->rc!=SQLITE_OK ) break; }else{ - pBuf->n += sqlite3Fts5PutVarint(&pBuf->p[pBuf->n], iDelta); + pBuf->n += sqlite3Fts5PutVarint(&pBuf->p[pBuf->n], iRowid-iPrev); } + if( p->rc!=SQLITE_OK ) break; assert( pBuf->n<=pBuf->nSpace ); + iPrev = iRowid; if( eDetail==FTS5_DETAIL_NONE ){ if( iOffnLevel==0 ){ - fts5StructureAddLevel(&p->rc, &pStruct); + assert( p->rc!=SQLITE_OK || bSecureDelete || pgnoLast>0 ); + if( pgnoLast>0 ){ + /* Update the Fts5Structure. It is written back to the database by the + ** fts5StructureRelease() call below. */ + if( pStruct->nLevel==0 ){ + fts5StructureAddLevel(&p->rc, &pStruct); + } + fts5StructureExtendLevel(&p->rc, pStruct, 0, 1, 0); + if( p->rc==SQLITE_OK ){ + pSeg = &pStruct->aLevel[0].aSeg[ pStruct->aLevel[0].nSeg++ ]; + pSeg->iSegid = iSegid; + pSeg->pgnoFirst = 1; + pSeg->pgnoLast = pgnoLast; + pStruct->nSegment++; + } + fts5StructurePromote(p, 0, pStruct); } - fts5StructureExtendLevel(&p->rc, pStruct, 0, 1, 0); - if( p->rc==SQLITE_OK ){ - pSeg = &pStruct->aLevel[0].aSeg[ pStruct->aLevel[0].nSeg++ ]; - pSeg->iSegid = iSegid; - pSeg->pgnoFirst = 1; - pSeg->pgnoLast = pgnoLast; - pStruct->nSegment++; - } - fts5StructurePromote(p, 0, pStruct); } fts5IndexAutomerge(p, &pStruct, pgnoLast); @@ -231886,10 +237746,10 @@ static Fts5Structure *fts5IndexOptimizeStruct( if( pNew ){ Fts5StructureLevel *pLvl; nByte = nSeg * sizeof(Fts5StructureSegment); - pNew->nLevel = pStruct->nLevel+1; + pNew->nLevel = MIN(pStruct->nLevel+1, FTS5_MAX_LEVEL); pNew->nRef = 1; pNew->nWriteCounter = pStruct->nWriteCounter; - pLvl = &pNew->aLevel[pStruct->nLevel]; + pLvl = &pNew->aLevel[pNew->nLevel-1]; pLvl->aSeg = (Fts5StructureSegment*)sqlite3Fts5MallocZero(&p->rc, nByte); if( pLvl->aSeg ){ int iLvl, iSeg; @@ -231971,7 +237831,7 @@ static int sqlite3Fts5IndexMerge(Fts5Index *p, int nMerge){ static void fts5AppendRowid( Fts5Index *p, - i64 iDelta, + u64 iDelta, Fts5Iter *pUnused, Fts5Buffer *pBuf ){ @@ -231981,7 +237841,7 @@ static void fts5AppendRowid( static void fts5AppendPoslist( Fts5Index *p, - i64 iDelta, + u64 iDelta, Fts5Iter *pMulti, Fts5Buffer *pBuf ){ @@ -232056,10 +237916,10 @@ static void fts5MergeAppendDocid( } #endif -#define fts5MergeAppendDocid(pBuf, iLastRowid, iRowid) { \ - assert( (pBuf)->n!=0 || (iLastRowid)==0 ); \ - fts5BufferSafeAppendVarint((pBuf), (iRowid) - (iLastRowid)); \ - (iLastRowid) = (iRowid); \ +#define fts5MergeAppendDocid(pBuf, iLastRowid, iRowid) { \ + assert( (pBuf)->n!=0 || (iLastRowid)==0 ); \ + fts5BufferSafeAppendVarint((pBuf), (u64)(iRowid) - (u64)(iLastRowid)); \ + (iLastRowid) = (iRowid); \ } /* @@ -232191,7 +238051,7 @@ static void fts5MergePrefixLists( /* Initialize a doclist-iterator for each input buffer. Arrange them in ** a linked-list starting at pHead in ascending order of rowid. Avoid ** linking any iterators already at EOF into the linked list at all. */ - assert( nBuf+1<=sizeof(aMerger)/sizeof(aMerger[0]) ); + assert( nBuf+1<=(int)(sizeof(aMerger)/sizeof(aMerger[0])) ); memset(aMerger, 0, sizeof(PrefixMerger)*(nBuf+1)); pHead = &aMerger[nBuf]; fts5DoclistIterInit(p1, &pHead->iter); @@ -232330,7 +238190,7 @@ static void fts5SetupPrefixIter( int nMerge = 1; void (*xMerge)(Fts5Index*, Fts5Buffer*, int, Fts5Buffer*); - void (*xAppend)(Fts5Index*, i64, Fts5Iter*, Fts5Buffer*); + void (*xAppend)(Fts5Index*, u64, Fts5Iter*, Fts5Buffer*); if( p->pConfig->eDetail==FTS5_DETAIL_NONE ){ xMerge = fts5MergeRowidLists; xAppend = fts5AppendRowid; @@ -232369,7 +238229,7 @@ static void fts5SetupPrefixIter( Fts5SegIter *pSeg = &p1->aSeg[ p1->aFirst[1].iFirst ]; p1->xSetOutputs(p1, pSeg); if( p1->base.nData ){ - xAppend(p, p1->base.iRowid-iLastRowid, p1, &doclist); + xAppend(p, (u64)p1->base.iRowid-(u64)iLastRowid, p1, &doclist); iLastRowid = p1->base.iRowid; } } @@ -232417,7 +238277,7 @@ static void fts5SetupPrefixIter( iLastRowid = 0; } - xAppend(p, p1->base.iRowid-iLastRowid, p1, &doclist); + xAppend(p, (u64)p1->base.iRowid-(u64)iLastRowid, p1, &doclist); iLastRowid = p1->base.iRowid; } @@ -232571,6 +238431,7 @@ static int sqlite3Fts5IndexClose(Fts5Index *p){ sqlite3_finalize(p->pIdxDeleter); sqlite3_finalize(p->pIdxSelect); sqlite3_finalize(p->pDataVersion); + sqlite3_finalize(p->pDeleteFromIdx); sqlite3Fts5HashFree(p->pHash); sqlite3_free(p->zDataTbl); sqlite3_free(p); @@ -233201,6 +239062,7 @@ static void fts5IndexIntegrityCheckSegment( Fts5StructureSegment *pSeg /* Segment to check internal consistency */ ){ Fts5Config *pConfig = p->pConfig; + int bSecureDelete = (pConfig->iVersion==FTS5_CURRENT_VERSION_SECUREDELETE); sqlite3_stmt *pStmt = 0; int rc2; int iIdxPrevLeaf = pSeg->pgnoFirst-1; @@ -233236,7 +239098,19 @@ static void fts5IndexIntegrityCheckSegment( ** is also a rowid pointer within the leaf page header, it points to a ** location before the term. */ if( pLeaf->nn<=pLeaf->szLeaf ){ - p->rc = FTS5_CORRUPT; + + if( nIdxTerm==0 + && pConfig->iVersion==FTS5_CURRENT_VERSION_SECUREDELETE + && pLeaf->nn==pLeaf->szLeaf + && pLeaf->nn==4 + ){ + /* special case - the very first page in a segment keeps its %_idx + ** entry even if all the terms are removed from it by secure-delete + ** operations. */ + }else{ + p->rc = FTS5_CORRUPT; + } + }else{ int iOff; /* Offset of first term on leaf */ int iRowidOff; /* Offset of first rowid on leaf */ @@ -233300,9 +239174,12 @@ static void fts5IndexIntegrityCheckSegment( ASSERT_SZLEAF_OK(pLeaf); if( iRowidOff>=pLeaf->szLeaf ){ p->rc = FTS5_CORRUPT; - }else{ + }else if( bSecureDelete==0 || iRowidOff>0 ){ + i64 iDlRowid = fts5DlidxIterRowid(pDlidx); fts5GetVarint(&pLeaf->p[iRowidOff], (u64*)&iRowid); - if( iRowid!=fts5DlidxIterRowid(pDlidx) ) p->rc = FTS5_CORRUPT; + if( iRowidrc = FTS5_CORRUPT; + } } fts5DataRelease(pLeaf); } @@ -233396,6 +239273,7 @@ static int sqlite3Fts5IndexIntegrityCheck(Fts5Index *p, u64 cksum, int bUseCksum /* If this is a new term, query for it. Update cksum3 with the results. */ fts5TestTerm(p, &term, z, n, cksum2, &cksum3); + if( p->rc ) break; if( eDetail==FTS5_DETAIL_NONE ){ if( 0==fts5MultiIterIsEmpty(p, pIter) ){ @@ -234200,7 +240078,7 @@ static void fts5CheckTransactionState(Fts5FullTable *p, int op, int iSavepoint){ break; case FTS5_SYNC: - assert( p->ts.eState==1 ); + assert( p->ts.eState==1 || p->ts.eState==2 ); p->ts.eState = 2; break; @@ -234215,21 +240093,21 @@ static void fts5CheckTransactionState(Fts5FullTable *p, int op, int iSavepoint){ break; case FTS5_SAVEPOINT: - assert( p->ts.eState==1 ); + assert( p->ts.eState>=1 ); assert( iSavepoint>=0 ); assert( iSavepoint>=p->ts.iSavepoint ); p->ts.iSavepoint = iSavepoint; break; case FTS5_RELEASE: - assert( p->ts.eState==1 ); + assert( p->ts.eState>=1 ); assert( iSavepoint>=0 ); assert( iSavepoint<=p->ts.iSavepoint ); p->ts.iSavepoint = iSavepoint-1; break; case FTS5_ROLLBACKTO: - assert( p->ts.eState==1 ); + assert( p->ts.eState>=1 ); assert( iSavepoint>=-1 ); /* The following assert() can fail if another vtab strikes an error ** within an xSavepoint() call then SQLite calls xRollbackTo() - without @@ -235563,9 +241441,11 @@ static int fts5UpdateMethod( Fts5Config *pConfig = pTab->p.pConfig; int eType0; /* value_type() of apVal[0] */ int rc = SQLITE_OK; /* Return code */ + int bUpdateOrDelete = 0; + /* A transaction must be open when this is called. */ - assert( pTab->ts.eState==1 ); + assert( pTab->ts.eState==1 || pTab->ts.eState==2 ); assert( pVtab->zErrMsg==0 ); assert( nArg==1 || nArg==(2+pConfig->nCol+2) ); @@ -235573,6 +241453,11 @@ static int fts5UpdateMethod( || sqlite3_value_type(apVal[0])==SQLITE_NULL ); assert( pTab->p.pConfig->pzErrmsg==0 ); + if( pConfig->pgsz==0 ){ + rc = sqlite3Fts5IndexLoadConfig(pTab->p.pIndex); + if( rc!=SQLITE_OK ) return rc; + } + pTab->p.pConfig->pzErrmsg = &pTab->p.base.zErrMsg; /* Put any active cursors into REQUIRE_SEEK state. */ @@ -235625,6 +241510,7 @@ static int fts5UpdateMethod( else if( nArg==1 ){ i64 iDel = sqlite3_value_int64(apVal[0]); /* Rowid to delete */ rc = sqlite3Fts5StorageDelete(pTab->pStorage, iDel, 0); + bUpdateOrDelete = 1; } /* INSERT or UPDATE */ @@ -235640,6 +241526,7 @@ static int fts5UpdateMethod( if( eConflict==SQLITE_REPLACE && eType1==SQLITE_INTEGER ){ i64 iNew = sqlite3_value_int64(apVal[1]); /* Rowid to delete */ rc = sqlite3Fts5StorageDelete(pTab->pStorage, iNew, 0); + bUpdateOrDelete = 1; } fts5StorageInsert(&rc, pTab, apVal, pRowid); } @@ -235668,10 +241555,24 @@ static int fts5UpdateMethod( rc = sqlite3Fts5StorageDelete(pTab->pStorage, iOld, 0); fts5StorageInsert(&rc, pTab, apVal, pRowid); } + bUpdateOrDelete = 1; } } } + if( rc==SQLITE_OK + && bUpdateOrDelete + && pConfig->bSecureDelete + && pConfig->iVersion==FTS5_CURRENT_VERSION + ){ + rc = sqlite3Fts5StorageConfigValue( + pTab->pStorage, "version", 0, FTS5_CURRENT_VERSION_SECUREDELETE + ); + if( rc==SQLITE_OK ){ + pConfig->iVersion = FTS5_CURRENT_VERSION_SECUREDELETE; + } + } + pTab->p.pConfig->pzErrmsg = 0; return rc; } @@ -236531,6 +242432,7 @@ static int fts5RollbackToMethod(sqlite3_vtab *pVtab, int iSavepoint){ UNUSED_PARAM(iSavepoint); /* Call below is a no-op for NDEBUG builds */ fts5CheckTransactionState(pTab, FTS5_ROLLBACKTO, iSavepoint); fts5TripCursors(pTab); + pTab->p.pConfig->pgsz = 0; return sqlite3Fts5StorageRollback(pTab->pStorage); } @@ -236733,7 +242635,7 @@ static void fts5SourceIdFunc( ){ assert( nArg==0 ); UNUSED_PARAM2(nArg, apUnused); - sqlite3_result_text(pCtx, "fts5: 2022-09-29 15:55:41 a29f9949895322123f7c38fbe94c649a9d6e6c9cd0c3b41c96d694552f26b309", -1, SQLITE_TRANSIENT); + sqlite3_result_text(pCtx, "fts5: 2023-05-16 12:36:15 831d0fb2836b71c9bc51067c49fee4b8f18047814f2ff22d817d25195cf350b0", -1, SQLITE_TRANSIENT); } /* @@ -236806,7 +242708,9 @@ static int fts5Init(sqlite3 *db){ } if( rc==SQLITE_OK ){ rc = sqlite3_create_function( - db, "fts5_source_id", 0, SQLITE_UTF8, p, fts5SourceIdFunc, 0, 0 + db, "fts5_source_id", 0, + SQLITE_UTF8|SQLITE_DETERMINISTIC|SQLITE_INNOCUOUS, + p, fts5SourceIdFunc, 0, 0 ); } } @@ -241471,6 +247375,10 @@ static int stmtConnect( #define STMT_COLUMN_MEM 10 /* SQLITE_STMTSTATUS_MEMUSED */ + (void)pAux; + (void)argc; + (void)argv; + (void)pzErr; rc = sqlite3_declare_vtab(db, "CREATE TABLE x(sql,ncol,ro,busy,nscan,nsort,naidx,nstep," "reprep,run,mem)"); @@ -241590,6 +247498,10 @@ static int stmtFilter( sqlite3_int64 iRowid = 1; StmtRow **ppRow = 0; + (void)idxNum; + (void)idxStr; + (void)argc; + (void)argv; stmtCsrReset(pCur); ppRow = &pCur->pRow; for(p=sqlite3_next_stmt(pCur->db, 0); p; p=sqlite3_next_stmt(pCur->db, p)){ @@ -241645,6 +247557,7 @@ static int stmtBestIndex( sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo ){ + (void)tab; pIdxInfo->estimatedCost = (double)500; pIdxInfo->estimatedRows = 500; return SQLITE_OK; diff --git a/Data/SQLite/src/sqlite3.h b/Data/SQLite/src/sqlite3.h index 9b284d276..48effe202 100644 --- a/Data/SQLite/src/sqlite3.h +++ b/Data/SQLite/src/sqlite3.h @@ -146,9 +146,9 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.39.4" -#define SQLITE_VERSION_NUMBER 3039004 -#define SQLITE_SOURCE_ID "2022-09-29 15:55:41 a29f9949895322123f7c38fbe94c649a9d6e6c9cd0c3b41c96d694552f26b309" +#define SQLITE_VERSION "3.42.0" +#define SQLITE_VERSION_NUMBER 3042000 +#define SQLITE_SOURCE_ID "2023-05-16 12:36:15 831d0fb2836b71c9bc51067c49fee4b8f18047814f2ff22d817d25195cf350b0" /* ** CAPI3REF: Run-Time Library Version Numbers @@ -563,6 +563,7 @@ SQLITE_API int sqlite3_exec( #define SQLITE_CONSTRAINT_DATATYPE (SQLITE_CONSTRAINT |(12<<8)) #define SQLITE_NOTICE_RECOVER_WAL (SQLITE_NOTICE | (1<<8)) #define SQLITE_NOTICE_RECOVER_ROLLBACK (SQLITE_NOTICE | (2<<8)) +#define SQLITE_NOTICE_RBU (SQLITE_NOTICE | (3<<8)) #define SQLITE_WARNING_AUTOINDEX (SQLITE_WARNING | (1<<8)) #define SQLITE_AUTH_USER (SQLITE_AUTH | (1<<8)) #define SQLITE_OK_LOAD_PERMANENTLY (SQLITE_OK | (1<<8)) @@ -670,13 +671,17 @@ SQLITE_API int sqlite3_exec( ** ** SQLite uses one of these integer values as the second ** argument to calls it makes to the xLock() and xUnlock() methods -** of an [sqlite3_io_methods] object. +** of an [sqlite3_io_methods] object. These values are ordered from +** lest restrictive to most restrictive. +** +** The argument to xLock() is always SHARED or higher. The argument to +** xUnlock is either SHARED or NONE. */ -#define SQLITE_LOCK_NONE 0 -#define SQLITE_LOCK_SHARED 1 -#define SQLITE_LOCK_RESERVED 2 -#define SQLITE_LOCK_PENDING 3 -#define SQLITE_LOCK_EXCLUSIVE 4 +#define SQLITE_LOCK_NONE 0 /* xUnlock() only */ +#define SQLITE_LOCK_SHARED 1 /* xLock() or xUnlock() */ +#define SQLITE_LOCK_RESERVED 2 /* xLock() only */ +#define SQLITE_LOCK_PENDING 3 /* xLock() only */ +#define SQLITE_LOCK_EXCLUSIVE 4 /* xLock() only */ /* ** CAPI3REF: Synchronization Type Flags @@ -754,7 +759,14 @@ struct sqlite3_file { **
    2. [SQLITE_LOCK_PENDING], or **
    3. [SQLITE_LOCK_EXCLUSIVE]. ** -** xLock() increases the lock. xUnlock() decreases the lock. +** xLock() upgrades the database file lock. In other words, xLock() moves the +** database file lock in the direction NONE toward EXCLUSIVE. The argument to +** xLock() is always on of SHARED, RESERVED, PENDING, or EXCLUSIVE, never +** SQLITE_LOCK_NONE. If the database file lock is already at or above the +** requested lock, then the call to xLock() is a no-op. +** xUnlock() downgrades the database file lock to either SHARED or NONE. +* If the lock is already at or below the requested lock state, then the call +** to xUnlock() is a no-op. ** The xCheckReservedLock() method checks whether any database connection, ** either in this process or in some other process, is holding a RESERVED, ** PENDING, or EXCLUSIVE lock on the file. It returns true @@ -859,9 +871,8 @@ struct sqlite3_io_methods { ** opcode causes the xFileControl method to write the current state of ** the lock (one of [SQLITE_LOCK_NONE], [SQLITE_LOCK_SHARED], ** [SQLITE_LOCK_RESERVED], [SQLITE_LOCK_PENDING], or [SQLITE_LOCK_EXCLUSIVE]) -** into an integer that the pArg argument points to. This capability -** is used during testing and is only available when the SQLITE_TEST -** compile-time option is used. +** into an integer that the pArg argument points to. +** This capability is only available if SQLite is compiled with [SQLITE_DEBUG]. ** **
    4. [[SQLITE_FCNTL_SIZE_HINT]] ** The [SQLITE_FCNTL_SIZE_HINT] opcode is used by SQLite to give the VFS @@ -1165,7 +1176,6 @@ struct sqlite3_io_methods { ** in wal mode after the client has finished copying pages from the wal ** file to the database file, but before the *-shm file is updated to ** record the fact that the pages have been checkpointed. -** ** **
    5. [[SQLITE_FCNTL_EXTERNAL_READER]] ** The EXPERIMENTAL [SQLITE_FCNTL_EXTERNAL_READER] opcode is used to detect @@ -1178,10 +1188,16 @@ struct sqlite3_io_methods { ** the database is not a wal-mode db, or if there is no such connection in any ** other process. This opcode cannot be used to detect transactions opened ** by clients within the current process, only within other processes. -** ** **
    6. [[SQLITE_FCNTL_CKSM_FILE]] -** Used by the cksmvfs VFS module only. +** The [SQLITE_FCNTL_CKSM_FILE] opcode is for use interally by the +** [checksum VFS shim] only. +** +**
    7. [[SQLITE_FCNTL_RESET_CACHE]] +** If there is currently no transaction open on the database, and the +** database is not a temp db, then the [SQLITE_FCNTL_RESET_CACHE] file-control +** purges the contents of the in-memory page cache. If there is an open +** transaction, or if the db is a temp-db, this opcode is a no-op, not an error. ** */ #define SQLITE_FCNTL_LOCKSTATE 1 @@ -1224,6 +1240,7 @@ struct sqlite3_io_methods { #define SQLITE_FCNTL_CKPT_START 39 #define SQLITE_FCNTL_EXTERNAL_READER 40 #define SQLITE_FCNTL_CKSM_FILE 41 +#define SQLITE_FCNTL_RESET_CACHE 42 /* deprecated names */ #define SQLITE_GET_LOCKPROXYFILE SQLITE_FCNTL_GET_LOCKPROXYFILE @@ -1253,6 +1270,26 @@ typedef struct sqlite3_mutex sqlite3_mutex; */ typedef struct sqlite3_api_routines sqlite3_api_routines; +/* +** CAPI3REF: File Name +** +** Type [sqlite3_filename] is used by SQLite to pass filenames to the +** xOpen method of a [VFS]. It may be cast to (const char*) and treated +** as a normal, nul-terminated, UTF-8 buffer containing the filename, but +** may also be passed to special APIs such as: +** +**
        +**
      • sqlite3_filename_database() +**
      • sqlite3_filename_journal() +**
      • sqlite3_filename_wal() +**
      • sqlite3_uri_parameter() +**
      • sqlite3_uri_boolean() +**
      • sqlite3_uri_int64() +**
      • sqlite3_uri_key() +**
      +*/ +typedef const char *sqlite3_filename; + /* ** CAPI3REF: OS Interface Object ** @@ -1431,7 +1468,7 @@ struct sqlite3_vfs { sqlite3_vfs *pNext; /* Next registered VFS */ const char *zName; /* Name of this virtual file system */ void *pAppData; /* Pointer to application-specific data */ - int (*xOpen)(sqlite3_vfs*, const char *zName, sqlite3_file*, + int (*xOpen)(sqlite3_vfs*, sqlite3_filename zName, sqlite3_file*, int flags, int *pOutFlags); int (*xDelete)(sqlite3_vfs*, const char *zName, int syncDir); int (*xAccess)(sqlite3_vfs*, const char *zName, int flags, int *pResOut); @@ -1618,20 +1655,23 @@ SQLITE_API int sqlite3_os_end(void); ** must ensure that no other SQLite interfaces are invoked by other ** threads while sqlite3_config() is running. ** -** The sqlite3_config() interface -** may only be invoked prior to library initialization using -** [sqlite3_initialize()] or after shutdown by [sqlite3_shutdown()]. -** ^If sqlite3_config() is called after [sqlite3_initialize()] and before -** [sqlite3_shutdown()] then it will return SQLITE_MISUSE. -** Note, however, that ^sqlite3_config() can be called as part of the -** implementation of an application-defined [sqlite3_os_init()]. -** ** The first argument to sqlite3_config() is an integer ** [configuration option] that determines ** what property of SQLite is to be configured. Subsequent arguments ** vary depending on the [configuration option] ** in the first argument. ** +** For most configuration options, the sqlite3_config() interface +** may only be invoked prior to library initialization using +** [sqlite3_initialize()] or after shutdown by [sqlite3_shutdown()]. +** The exceptional configuration options that may be invoked at any time +** are called "anytime configuration options". +** ^If sqlite3_config() is called after [sqlite3_initialize()] and before +** [sqlite3_shutdown()] with a first argument that is not an anytime +** configuration option, then the sqlite3_config() call will return SQLITE_MISUSE. +** Note, however, that ^sqlite3_config() can be called as part of the +** implementation of an application-defined [sqlite3_os_init()]. +** ** ^When a configuration option is set, sqlite3_config() returns [SQLITE_OK]. ** ^If the option is unknown or SQLite is unable to set the option ** then this routine returns a non-zero [error code]. @@ -1739,6 +1779,23 @@ struct sqlite3_mem_methods { ** These constants are the available integer configuration options that ** can be passed as the first argument to the [sqlite3_config()] interface. ** +** Most of the configuration options for sqlite3_config() +** will only work if invoked prior to [sqlite3_initialize()] or after +** [sqlite3_shutdown()]. The few exceptions to this rule are called +** "anytime configuration options". +** ^Calling [sqlite3_config()] with a first argument that is not an +** anytime configuration option in between calls to [sqlite3_initialize()] and +** [sqlite3_shutdown()] is a no-op that returns SQLITE_MISUSE. +** +** The set of anytime configuration options can change (by insertions +** and/or deletions) from one release of SQLite to the next. +** As of SQLite version 3.42.0, the complete set of anytime configuration +** options is: +**
        +**
      • SQLITE_CONFIG_LOG +**
      • SQLITE_CONFIG_PCACHE_HDRSZ +**
      +** ** New configuration options may be added in future releases of SQLite. ** Existing configuration options might be discontinued. Applications ** should check the return code from [sqlite3_config()] to make sure that @@ -2085,28 +2142,28 @@ struct sqlite3_mem_methods { ** compile-time option is not set, then the default maximum is 1073741824. ** */ -#define SQLITE_CONFIG_SINGLETHREAD 1 /* nil */ -#define SQLITE_CONFIG_MULTITHREAD 2 /* nil */ -#define SQLITE_CONFIG_SERIALIZED 3 /* nil */ -#define SQLITE_CONFIG_MALLOC 4 /* sqlite3_mem_methods* */ -#define SQLITE_CONFIG_GETMALLOC 5 /* sqlite3_mem_methods* */ -#define SQLITE_CONFIG_SCRATCH 6 /* No longer used */ -#define SQLITE_CONFIG_PAGECACHE 7 /* void*, int sz, int N */ -#define SQLITE_CONFIG_HEAP 8 /* void*, int nByte, int min */ -#define SQLITE_CONFIG_MEMSTATUS 9 /* boolean */ -#define SQLITE_CONFIG_MUTEX 10 /* sqlite3_mutex_methods* */ -#define SQLITE_CONFIG_GETMUTEX 11 /* sqlite3_mutex_methods* */ -/* previously SQLITE_CONFIG_CHUNKALLOC 12 which is now unused. */ -#define SQLITE_CONFIG_LOOKASIDE 13 /* int int */ -#define SQLITE_CONFIG_PCACHE 14 /* no-op */ -#define SQLITE_CONFIG_GETPCACHE 15 /* no-op */ -#define SQLITE_CONFIG_LOG 16 /* xFunc, void* */ -#define SQLITE_CONFIG_URI 17 /* int */ -#define SQLITE_CONFIG_PCACHE2 18 /* sqlite3_pcache_methods2* */ -#define SQLITE_CONFIG_GETPCACHE2 19 /* sqlite3_pcache_methods2* */ +#define SQLITE_CONFIG_SINGLETHREAD 1 /* nil */ +#define SQLITE_CONFIG_MULTITHREAD 2 /* nil */ +#define SQLITE_CONFIG_SERIALIZED 3 /* nil */ +#define SQLITE_CONFIG_MALLOC 4 /* sqlite3_mem_methods* */ +#define SQLITE_CONFIG_GETMALLOC 5 /* sqlite3_mem_methods* */ +#define SQLITE_CONFIG_SCRATCH 6 /* No longer used */ +#define SQLITE_CONFIG_PAGECACHE 7 /* void*, int sz, int N */ +#define SQLITE_CONFIG_HEAP 8 /* void*, int nByte, int min */ +#define SQLITE_CONFIG_MEMSTATUS 9 /* boolean */ +#define SQLITE_CONFIG_MUTEX 10 /* sqlite3_mutex_methods* */ +#define SQLITE_CONFIG_GETMUTEX 11 /* sqlite3_mutex_methods* */ +/* previously SQLITE_CONFIG_CHUNKALLOC 12 which is now unused. */ +#define SQLITE_CONFIG_LOOKASIDE 13 /* int int */ +#define SQLITE_CONFIG_PCACHE 14 /* no-op */ +#define SQLITE_CONFIG_GETPCACHE 15 /* no-op */ +#define SQLITE_CONFIG_LOG 16 /* xFunc, void* */ +#define SQLITE_CONFIG_URI 17 /* int */ +#define SQLITE_CONFIG_PCACHE2 18 /* sqlite3_pcache_methods2* */ +#define SQLITE_CONFIG_GETPCACHE2 19 /* sqlite3_pcache_methods2* */ #define SQLITE_CONFIG_COVERING_INDEX_SCAN 20 /* int */ -#define SQLITE_CONFIG_SQLLOG 21 /* xSqllog, void* */ -#define SQLITE_CONFIG_MMAP_SIZE 22 /* sqlite3_int64, sqlite3_int64 */ +#define SQLITE_CONFIG_SQLLOG 21 /* xSqllog, void* */ +#define SQLITE_CONFIG_MMAP_SIZE 22 /* sqlite3_int64, sqlite3_int64 */ #define SQLITE_CONFIG_WIN32_HEAPSIZE 23 /* int nByte */ #define SQLITE_CONFIG_PCACHE_HDRSZ 24 /* int *psz */ #define SQLITE_CONFIG_PMASZ 25 /* unsigned int szPma */ @@ -2147,7 +2204,7 @@ struct sqlite3_mem_methods { ** configuration for a database connection can only be changed when that ** connection is not currently using lookaside memory, or in other words ** when the "current value" returned by -** [sqlite3_db_status](D,[SQLITE_CONFIG_LOOKASIDE],...) is zero. +** [sqlite3_db_status](D,[SQLITE_DBSTATUS_LOOKASIDE_USED],...) is zero. ** Any attempt to change the lookaside memory configuration when lookaside ** memory is in use leaves the configuration unchanged and returns ** [SQLITE_BUSY].)^ @@ -2297,8 +2354,12 @@ struct sqlite3_mem_methods { **
    8. sqlite3_db_config(db, SQLITE_DBCONFIG_RESET_DATABASE, 0, 0); ** ** Because resetting a database is destructive and irreversible, the -** process requires the use of this obscure API and multiple steps to help -** ensure that it does not happen by accident. +** process requires the use of this obscure API and multiple steps to +** help ensure that it does not happen by accident. Because this +** feature must be capable of resetting corrupt databases, and +** shutting down virtual tables may require access to that corrupt +** storage, the library must abandon any installed virtual tables +** without calling their xDestroy() methods. ** ** [[SQLITE_DBCONFIG_DEFENSIVE]]
      SQLITE_DBCONFIG_DEFENSIVE
      **
      The SQLITE_DBCONFIG_DEFENSIVE option activates or deactivates the @@ -2309,6 +2370,7 @@ struct sqlite3_mem_methods { **
        **
      • The [PRAGMA writable_schema=ON] statement. **
      • The [PRAGMA journal_mode=OFF] statement. +**
      • The [PRAGMA schema_version=N] statement. **
      • Writes to the [sqlite_dbpage] virtual table. **
      • Direct writes to [shadow tables]. **
      @@ -2336,7 +2398,7 @@ struct sqlite3_mem_methods { **
      ** ** [[SQLITE_DBCONFIG_DQS_DML]] -**
      SQLITE_DBCONFIG_DQS_DML +**
      SQLITE_DBCONFIG_DQS_DML
      **
      The SQLITE_DBCONFIG_DQS_DML option activates or deactivates ** the legacy [double-quoted string literal] misfeature for DML statements ** only, that is DELETE, INSERT, SELECT, and UPDATE statements. The @@ -2345,7 +2407,7 @@ struct sqlite3_mem_methods { **
      ** ** [[SQLITE_DBCONFIG_DQS_DDL]] -**
      SQLITE_DBCONFIG_DQS_DDL +**
      SQLITE_DBCONFIG_DQS_DDL
      **
      The SQLITE_DBCONFIG_DQS option activates or deactivates ** the legacy [double-quoted string literal] misfeature for DDL statements, ** such as CREATE TABLE and CREATE INDEX. The @@ -2354,7 +2416,7 @@ struct sqlite3_mem_methods { **
      ** ** [[SQLITE_DBCONFIG_TRUSTED_SCHEMA]] -**
      SQLITE_DBCONFIG_TRUSTED_SCHEMA +**
      SQLITE_DBCONFIG_TRUSTED_SCHEMA
      **
      The SQLITE_DBCONFIG_TRUSTED_SCHEMA option tells SQLite to ** assume that database schemas are untainted by malicious content. ** When the SQLITE_DBCONFIG_TRUSTED_SCHEMA option is disabled, SQLite @@ -2374,7 +2436,7 @@ struct sqlite3_mem_methods { **
      ** ** [[SQLITE_DBCONFIG_LEGACY_FILE_FORMAT]] -**
      SQLITE_DBCONFIG_LEGACY_FILE_FORMAT +**
      SQLITE_DBCONFIG_LEGACY_FILE_FORMAT
      **
      The SQLITE_DBCONFIG_LEGACY_FILE_FORMAT option activates or deactivates ** the legacy file format flag. When activated, this flag causes all newly ** created database file to have a schema format version number (the 4-byte @@ -2383,7 +2445,7 @@ struct sqlite3_mem_methods { ** any SQLite version back to 3.0.0 ([dateof:3.0.0]). Without this setting, ** newly created databases are generally not understandable by SQLite versions ** prior to 3.3.0 ([dateof:3.3.0]). As these words are written, there -** is now scarcely any need to generated database files that are compatible +** is now scarcely any need to generate database files that are compatible ** all the way back to version 3.0.0, and so this setting is of little ** practical use, but is provided so that SQLite can continue to claim the ** ability to generate new database files that are compatible with version @@ -2394,6 +2456,38 @@ struct sqlite3_mem_methods { ** not considered a bug since SQLite versions 3.3.0 and earlier do not support ** either generated columns or decending indexes. **
      +** +** [[SQLITE_DBCONFIG_STMT_SCANSTATUS]] +**
      SQLITE_DBCONFIG_STMT_SCANSTATUS
      +**
      The SQLITE_DBCONFIG_STMT_SCANSTATUS option is only useful in +** SQLITE_ENABLE_STMT_SCANSTATUS builds. In this case, it sets or clears +** a flag that enables collection of the sqlite3_stmt_scanstatus_v2() +** statistics. For statistics to be collected, the flag must be set on +** the database handle both when the SQL statement is prepared and when it +** is stepped. The flag is set (collection of statistics is enabled) +** by default. This option takes two arguments: an integer and a pointer to +** an integer.. The first argument is 1, 0, or -1 to enable, disable, or +** leave unchanged the statement scanstatus option. If the second argument +** is not NULL, then the value of the statement scanstatus setting after +** processing the first argument is written into the integer that the second +** argument points to. +**
      +** +** [[SQLITE_DBCONFIG_REVERSE_SCANORDER]] +**
      SQLITE_DBCONFIG_REVERSE_SCANORDER
      +**
      The SQLITE_DBCONFIG_REVERSE_SCANORDER option changes the default order +** in which tables and indexes are scanned so that the scans start at the end +** and work toward the beginning rather than starting at the beginning and +** working toward the end. Setting SQLITE_DBCONFIG_REVERSE_SCANORDER is the +** same as setting [PRAGMA reverse_unordered_selects]. This option takes +** two arguments which are an integer and a pointer to an integer. The first +** argument is 1, 0, or -1 to enable, disable, or leave unchanged the +** reverse scan order flag, respectively. If the second argument is not NULL, +** then 0 or 1 is written into the integer that the second argument points to +** depending on if the reverse scan order flag is set after processing the +** first argument. +**
      +** ** */ #define SQLITE_DBCONFIG_MAINDBNAME 1000 /* const char* */ @@ -2414,7 +2508,9 @@ struct sqlite3_mem_methods { #define SQLITE_DBCONFIG_ENABLE_VIEW 1015 /* int int* */ #define SQLITE_DBCONFIG_LEGACY_FILE_FORMAT 1016 /* int int* */ #define SQLITE_DBCONFIG_TRUSTED_SCHEMA 1017 /* int int* */ -#define SQLITE_DBCONFIG_MAX 1017 /* Largest DBCONFIG */ +#define SQLITE_DBCONFIG_STMT_SCANSTATUS 1018 /* int int* */ +#define SQLITE_DBCONFIG_REVERSE_SCANORDER 1019 /* int int* */ +#define SQLITE_DBCONFIG_MAX 1019 /* Largest DBCONFIG */ /* ** CAPI3REF: Enable Or Disable Extended Result Codes @@ -2636,8 +2732,12 @@ SQLITE_API sqlite3_int64 sqlite3_total_changes64(sqlite3*); ** ^A call to sqlite3_interrupt(D) that occurs when there are no running ** SQL statements is a no-op and has no effect on SQL statements ** that are started after the sqlite3_interrupt() call returns. +** +** ^The [sqlite3_is_interrupted(D)] interface can be used to determine whether +** or not an interrupt is currently in effect for [database connection] D. */ SQLITE_API void sqlite3_interrupt(sqlite3*); +SQLITE_API int sqlite3_is_interrupted(sqlite3*); /* ** CAPI3REF: Determine If An SQL Statement Is Complete @@ -3255,8 +3355,8 @@ SQLITE_API SQLITE_DEPRECATED void *sqlite3_profile(sqlite3*, **
      ^An SQLITE_TRACE_PROFILE callback provides approximately the same ** information as is provided by the [sqlite3_profile()] callback. ** ^The P argument is a pointer to the [prepared statement] and the -** X argument points to a 64-bit integer which is the estimated of -** the number of nanosecond that the prepared statement took to run. +** X argument points to a 64-bit integer which is approximately +** the number of nanoseconds that the prepared statement took to run. ** ^The SQLITE_TRACE_PROFILE callback is invoked when the statement finishes. ** ** [[SQLITE_TRACE_ROW]]
      SQLITE_TRACE_ROW
      @@ -3319,7 +3419,7 @@ SQLITE_API int sqlite3_trace_v2( ** ** ^The sqlite3_progress_handler(D,N,X,P) interface causes the callback ** function X to be invoked periodically during long running calls to -** [sqlite3_exec()], [sqlite3_step()] and [sqlite3_get_table()] for +** [sqlite3_step()] and [sqlite3_prepare()] and similar for ** database connection D. An example use for this ** interface is to keep a GUI updated during a large query. ** @@ -3344,6 +3444,13 @@ SQLITE_API int sqlite3_trace_v2( ** Note that [sqlite3_prepare_v2()] and [sqlite3_step()] both modify their ** database connections for the meaning of "modify" in this paragraph. ** +** The progress handler callback would originally only be invoked from the +** bytecode engine. It still might be invoked during [sqlite3_prepare()] +** and similar because those routines might force a reparse of the schema +** which involves running the bytecode engine. However, beginning with +** SQLite version 3.41.0, the progress handler callback might also be +** invoked directly from [sqlite3_prepare()] while analyzing and generating +** code for complex queries. */ SQLITE_API void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*); @@ -3380,13 +3487,18 @@ SQLITE_API void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*); ** **
      ** ^(
      [SQLITE_OPEN_READONLY]
      -**
      The database is opened in read-only mode. If the database does not -** already exist, an error is returned.
      )^ +**
      The database is opened in read-only mode. If the database does +** not already exist, an error is returned.
      )^ ** ** ^(
      [SQLITE_OPEN_READWRITE]
      -**
      The database is opened for reading and writing if possible, or reading -** only if the file is write protected by the operating system. In either -** case the database must already exist, otherwise an error is returned.
      )^ +**
      The database is opened for reading and writing if possible, or +** reading only if the file is write protected by the operating +** system. In either case the database must already exist, otherwise +** an error is returned. For historical reasons, if opening in +** read-write mode fails due to OS-level permissions, an attempt is +** made to open it in read-only mode. [sqlite3_db_readonly()] can be +** used to determine whether the database is actually +** read-write.
      )^ ** ** ^(
      [SQLITE_OPEN_READWRITE] | [SQLITE_OPEN_CREATE]
      **
      The database is opened for reading and writing, and is created if @@ -3424,6 +3536,9 @@ SQLITE_API void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*); **
      The database is opened [shared cache] enabled, overriding ** the default shared cache setting provided by ** [sqlite3_enable_shared_cache()].)^ +** The [use of shared cache mode is discouraged] and hence shared cache +** capabilities may be omitted from many builds of SQLite. In such cases, +** this option is a no-op. ** ** ^(
      [SQLITE_OPEN_PRIVATECACHE]
      **
      The database is opened [shared cache] disabled, overriding @@ -3439,7 +3554,7 @@ SQLITE_API void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*); ** to return an extended result code.
      ** ** [[OPEN_NOFOLLOW]] ^(
      [SQLITE_OPEN_NOFOLLOW]
      -**
      The database filename is not allowed to be a symbolic link
      +**
      The database filename is not allowed to contain a symbolic link
      **
      )^ ** ** If the 3rd parameter to sqlite3_open_v2() is not one of the @@ -3698,10 +3813,10 @@ SQLITE_API int sqlite3_open_v2( ** ** See the [URI filename] documentation for additional information. */ -SQLITE_API const char *sqlite3_uri_parameter(const char *zFilename, const char *zParam); -SQLITE_API int sqlite3_uri_boolean(const char *zFile, const char *zParam, int bDefault); -SQLITE_API sqlite3_int64 sqlite3_uri_int64(const char*, const char*, sqlite3_int64); -SQLITE_API const char *sqlite3_uri_key(const char *zFilename, int N); +SQLITE_API const char *sqlite3_uri_parameter(sqlite3_filename z, const char *zParam); +SQLITE_API int sqlite3_uri_boolean(sqlite3_filename z, const char *zParam, int bDefault); +SQLITE_API sqlite3_int64 sqlite3_uri_int64(sqlite3_filename, const char*, sqlite3_int64); +SQLITE_API const char *sqlite3_uri_key(sqlite3_filename z, int N); /* ** CAPI3REF: Translate filenames @@ -3730,9 +3845,9 @@ SQLITE_API const char *sqlite3_uri_key(const char *zFilename, int N); ** return value from [sqlite3_db_filename()], then the result is ** undefined and is likely a memory access violation. */ -SQLITE_API const char *sqlite3_filename_database(const char*); -SQLITE_API const char *sqlite3_filename_journal(const char*); -SQLITE_API const char *sqlite3_filename_wal(const char*); +SQLITE_API const char *sqlite3_filename_database(sqlite3_filename); +SQLITE_API const char *sqlite3_filename_journal(sqlite3_filename); +SQLITE_API const char *sqlite3_filename_wal(sqlite3_filename); /* ** CAPI3REF: Database File Corresponding To A Journal @@ -3798,14 +3913,14 @@ SQLITE_API sqlite3_file *sqlite3_database_file_object(const char*); ** then the corresponding [sqlite3_module.xClose() method should also be ** invoked prior to calling sqlite3_free_filename(Y). */ -SQLITE_API char *sqlite3_create_filename( +SQLITE_API sqlite3_filename sqlite3_create_filename( const char *zDatabase, const char *zJournal, const char *zWal, int nParam, const char **azParam ); -SQLITE_API void sqlite3_free_filename(char*); +SQLITE_API void sqlite3_free_filename(sqlite3_filename); /* ** CAPI3REF: Error Codes And Messages @@ -5364,10 +5479,21 @@ SQLITE_API int sqlite3_create_window_function( ** from top-level SQL, and cannot be used in VIEWs or TRIGGERs nor in ** schema structures such as [CHECK constraints], [DEFAULT clauses], ** [expression indexes], [partial indexes], or [generated columns]. -** The SQLITE_DIRECTONLY flags is a security feature which is recommended -** for all [application-defined SQL functions], and especially for functions -** that have side-effects or that could potentially leak sensitive -** information. +**

      +** The SQLITE_DIRECTONLY flag is recommended for any +** [application-defined SQL function] +** that has side-effects or that could potentially leak sensitive information. +** This will prevent attacks in which an application is tricked +** into using a database file that has had its schema surreptiously +** modified to invoke the application-defined function in ways that are +** harmful. +**

      +** Some people say it is good practice to set SQLITE_DIRECTONLY on all +** [application-defined SQL functions], regardless of whether or not they +** are security sensitive, as doing so prevents those functions from being used +** inside of the database schema, and thus ensures that the database +** can be inspected and modified using generic tools (such as the [CLI]) +** that do not have access to the application-defined functions. ** ** ** [[SQLITE_INNOCUOUS]]

      SQLITE_INNOCUOUS
      @@ -5573,6 +5699,28 @@ SQLITE_API int sqlite3_value_numeric_type(sqlite3_value*); SQLITE_API int sqlite3_value_nochange(sqlite3_value*); SQLITE_API int sqlite3_value_frombind(sqlite3_value*); +/* +** CAPI3REF: Report the internal text encoding state of an sqlite3_value object +** METHOD: sqlite3_value +** +** ^(The sqlite3_value_encoding(X) interface returns one of [SQLITE_UTF8], +** [SQLITE_UTF16BE], or [SQLITE_UTF16LE] according to the current text encoding +** of the value X, assuming that X has type TEXT.)^ If sqlite3_value_type(X) +** returns something other than SQLITE_TEXT, then the return value from +** sqlite3_value_encoding(X) is meaningless. ^Calls to +** [sqlite3_value_text(X)], [sqlite3_value_text16(X)], [sqlite3_value_text16be(X)], +** [sqlite3_value_text16le(X)], [sqlite3_value_bytes(X)], or +** [sqlite3_value_bytes16(X)] might change the encoding of the value X and +** thus change the return from subsequent calls to sqlite3_value_encoding(X). +** +** This routine is intended for used by applications that test and validate +** the SQLite implementation. This routine is inquiring about the opaque +** internal state of an [sqlite3_value] object. Ordinary applications should +** not need to know what the internal state of an sqlite3_value object is and +** hence should not need to use this interface. +*/ +SQLITE_API int sqlite3_value_encoding(sqlite3_value*); + /* ** CAPI3REF: Finding The Subtype Of SQL Values ** METHOD: sqlite3_value @@ -5625,7 +5773,7 @@ SQLITE_API void sqlite3_value_free(sqlite3_value*); ** ** ^The sqlite3_aggregate_context(C,N) routine returns a NULL pointer ** when first called if N is less than or equal to zero or if a memory -** allocate error occurs. +** allocation error occurs. ** ** ^(The amount of space allocated by sqlite3_aggregate_context(C,N) is ** determined by the N parameter on first successful call. Changing the @@ -5830,9 +5978,10 @@ typedef void (*sqlite3_destructor_type)(void*); ** of [SQLITE_UTF8], [SQLITE_UTF16], [SQLITE_UTF16BE], or [SQLITE_UTF16LE]. ** ^SQLite takes the text result from the application from ** the 2nd parameter of the sqlite3_result_text* interfaces. -** ^If the 3rd parameter to the sqlite3_result_text* interfaces -** is negative, then SQLite takes result text from the 2nd parameter -** through the first zero character. +** ^If the 3rd parameter to any of the sqlite3_result_text* interfaces +** other than sqlite3_result_text64() is negative, then SQLite computes +** the string length itself by searching the 2nd parameter for the first +** zero character. ** ^If the 3rd parameter to the sqlite3_result_text* interfaces ** is non-negative, then as many bytes (not characters) of the text ** pointed to by the 2nd parameter are taken as the application-defined @@ -6106,6 +6255,13 @@ SQLITE_API void sqlite3_activate_cerod( ** of the default VFS is not implemented correctly, or not implemented at ** all, then the behavior of sqlite3_sleep() may deviate from the description ** in the previous paragraphs. +** +** If a negative argument is passed to sqlite3_sleep() the results vary by +** VFS and operating system. Some system treat a negative argument as an +** instruction to sleep forever. Others understand it to mean do not sleep +** at all. ^In SQLite version 3.42.0 and later, a negative +** argument passed into sqlite3_sleep() is changed to zero before it is relayed +** down into the xSleep method of the VFS. */ SQLITE_API int sqlite3_sleep(int); @@ -6328,7 +6484,7 @@ SQLITE_API const char *sqlite3_db_name(sqlite3 *db, int N); **
    9. [sqlite3_filename_wal()] ** */ -SQLITE_API const char *sqlite3_db_filename(sqlite3 *db, const char *zDbName); +SQLITE_API sqlite3_filename sqlite3_db_filename(sqlite3 *db, const char *zDbName); /* ** CAPI3REF: Determine if a database is read-only @@ -6465,7 +6621,7 @@ SQLITE_API void *sqlite3_rollback_hook(sqlite3*, void(*)(void *), void*); ** function C that is invoked prior to each autovacuum of the database ** file. ^The callback is passed a copy of the generic data pointer (P), ** the schema-name of the attached database that is being autovacuumed, -** the the size of the database file in pages, the number of free pages, +** the size of the database file in pages, the number of free pages, ** and the number of bytes per page, respectively. The callback should ** return the number of free pages that should be removed by the ** autovacuum. ^If the callback returns zero, then no autovacuum happens. @@ -6586,6 +6742,11 @@ SQLITE_API void *sqlite3_update_hook( ** to the same database. Sharing is enabled if the argument is true ** and disabled if the argument is false.)^ ** +** This interface is omitted if SQLite is compiled with +** [-DSQLITE_OMIT_SHARED_CACHE]. The [-DSQLITE_OMIT_SHARED_CACHE] +** compile-time option is recommended because the +** [use of shared cache mode is discouraged]. +** ** ^Cache sharing is enabled and disabled for an entire process. ** This is a change as of SQLite [version 3.5.0] ([dateof:3.5.0]). ** In prior versions of SQLite, @@ -6684,7 +6845,7 @@ SQLITE_API int sqlite3_db_release_memory(sqlite3*); ** ^The soft heap limit may not be greater than the hard heap limit. ** ^If the hard heap limit is enabled and if sqlite3_soft_heap_limit(N) ** is invoked with a value of N that is greater than the hard heap limit, -** the the soft heap limit is set to the value of the hard heap limit. +** the soft heap limit is set to the value of the hard heap limit. ** ^The soft heap limit is automatically enabled whenever the hard heap ** limit is enabled. ^When sqlite3_hard_heap_limit64(N) is invoked and ** the soft heap limit is outside the range of 1..N, then the soft heap @@ -6945,15 +7106,6 @@ SQLITE_API int sqlite3_cancel_auto_extension(void(*xEntryPoint)(void)); */ SQLITE_API void sqlite3_reset_auto_extension(void); -/* -** The interface to the virtual-table mechanism is currently considered -** to be experimental. The interface might change in incompatible ways. -** If this is a problem for you, do not use the interface at this time. -** -** When the virtual-table mechanism stabilizes, we will declare the -** interface fixed, support it indefinitely, and remove this comment. -*/ - /* ** Structures used by the virtual table interface */ @@ -7072,10 +7224,10 @@ struct sqlite3_module { ** when the omit flag is true there is no guarantee that the constraint will ** not be checked again using byte code.)^ ** -** ^The idxNum and idxPtr values are recorded and passed into the +** ^The idxNum and idxStr values are recorded and passed into the ** [xFilter] method. -** ^[sqlite3_free()] is used to free idxPtr if and only if -** needToFreeIdxPtr is true. +** ^[sqlite3_free()] is used to free idxStr if and only if +** needToFreeIdxStr is true. ** ** ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in ** the correct order to satisfy the ORDER BY clause so that no separate @@ -7195,7 +7347,7 @@ struct sqlite3_index_info { ** the [sqlite3_vtab_collation()] interface. For most real-world virtual ** tables, the collating sequence of constraints does not matter (for example ** because the constraints are numeric) and so the sqlite3_vtab_collation() -** interface is no commonly needed. +** interface is not commonly needed. */ #define SQLITE_INDEX_CONSTRAINT_EQ 2 #define SQLITE_INDEX_CONSTRAINT_GT 4 @@ -7354,16 +7506,6 @@ SQLITE_API int sqlite3_declare_vtab(sqlite3*, const char *zSQL); */ SQLITE_API int sqlite3_overload_function(sqlite3*, const char *zFuncName, int nArg); -/* -** The interface to the virtual-table mechanism defined above (back up -** to a comment remarkably similar to this one) is currently considered -** to be experimental. The interface might change in incompatible ways. -** If this is a problem for you, do not use the interface at this time. -** -** When the virtual-table mechanism stabilizes, we will declare the -** interface fixed, support it indefinitely, and remove this comment. -*/ - /* ** CAPI3REF: A Handle To An Open BLOB ** KEYWORDS: {BLOB handle} {BLOB handles} @@ -7747,9 +7889,9 @@ SQLITE_API int sqlite3_vfs_unregister(sqlite3_vfs*); ** is undefined if the mutex is not currently entered by the ** calling thread or is not currently allocated. ** -** ^If the argument to sqlite3_mutex_enter(), sqlite3_mutex_try(), or -** sqlite3_mutex_leave() is a NULL pointer, then all three routines -** behave as no-ops. +** ^If the argument to sqlite3_mutex_enter(), sqlite3_mutex_try(), +** sqlite3_mutex_leave(), or sqlite3_mutex_free() is a NULL pointer, +** then any of the four routines behaves as a no-op. ** ** See also: [sqlite3_mutex_held()] and [sqlite3_mutex_notheld()]. */ @@ -8979,7 +9121,7 @@ typedef struct sqlite3_backup sqlite3_backup; ** if the application incorrectly accesses the destination [database connection] ** and so no error code is reported, but the operations may malfunction ** nevertheless. Use of the destination database connection while a -** backup is in progress might also also cause a mutex deadlock. +** backup is in progress might also cause a mutex deadlock. ** ** If running in [shared cache mode], the application must ** guarantee that the shared cache used by the destination database @@ -9407,7 +9549,7 @@ SQLITE_API int sqlite3_wal_checkpoint_v2( */ #define SQLITE_CHECKPOINT_PASSIVE 0 /* Do as much as possible w/o blocking */ #define SQLITE_CHECKPOINT_FULL 1 /* Wait for writers, then checkpoint */ -#define SQLITE_CHECKPOINT_RESTART 2 /* Like FULL but wait for for readers */ +#define SQLITE_CHECKPOINT_RESTART 2 /* Like FULL but wait for readers */ #define SQLITE_CHECKPOINT_TRUNCATE 3 /* Like RESTART but also truncate WAL */ /* @@ -9483,18 +9625,28 @@ SQLITE_API int sqlite3_vtab_config(sqlite3*, int op, ...); ** [[SQLITE_VTAB_INNOCUOUS]]
      SQLITE_VTAB_INNOCUOUS
      **
      Calls of the form ** [sqlite3_vtab_config](db,SQLITE_VTAB_INNOCUOUS) from within the -** the [xConnect] or [xCreate] methods of a [virtual table] implmentation +** the [xConnect] or [xCreate] methods of a [virtual table] implementation ** identify that virtual table as being safe to use from within triggers ** and views. Conceptually, the SQLITE_VTAB_INNOCUOUS tag means that the ** virtual table can do no serious harm even if it is controlled by a ** malicious hacker. Developers should avoid setting the SQLITE_VTAB_INNOCUOUS ** flag unless absolutely necessary. **
      +** +** [[SQLITE_VTAB_USES_ALL_SCHEMAS]]
      SQLITE_VTAB_USES_ALL_SCHEMAS
      +**
      Calls of the form +** [sqlite3_vtab_config](db,SQLITE_VTAB_USES_ALL_SCHEMA) from within the +** the [xConnect] or [xCreate] methods of a [virtual table] implementation +** instruct the query planner to begin at least a read transaction on +** all schemas ("main", "temp", and any ATTACH-ed databases) whenever the +** virtual table is used. +**
      ** */ #define SQLITE_VTAB_CONSTRAINT_SUPPORT 1 #define SQLITE_VTAB_INNOCUOUS 2 #define SQLITE_VTAB_DIRECTONLY 3 +#define SQLITE_VTAB_USES_ALL_SCHEMAS 4 /* ** CAPI3REF: Determine The Virtual Table Conflict Policy @@ -9567,7 +9719,7 @@ SQLITE_API int sqlite3_vtab_nochange(sqlite3_context*); **
    10. Otherwise, "BINARY" is returned. ** */ -SQLITE_API SQLITE_EXPERIMENTAL const char *sqlite3_vtab_collation(sqlite3_index_info*,int); +SQLITE_API const char *sqlite3_vtab_collation(sqlite3_index_info*,int); /* ** CAPI3REF: Determine if a virtual table query is DISTINCT @@ -9724,21 +9876,20 @@ SQLITE_API int sqlite3_vtab_in(sqlite3_index_info*, int iCons, int bHandle); ** is undefined and probably harmful. ** ** The X parameter in a call to sqlite3_vtab_in_first(X,P) or -** sqlite3_vtab_in_next(X,P) must be one of the parameters to the +** sqlite3_vtab_in_next(X,P) should be one of the parameters to the ** xFilter method which invokes these routines, and specifically ** a parameter that was previously selected for all-at-once IN constraint ** processing use the [sqlite3_vtab_in()] interface in the ** [xBestIndex|xBestIndex method]. ^(If the X parameter is not ** an xFilter argument that was selected for all-at-once IN constraint -** processing, then these routines return [SQLITE_MISUSE])^ or perhaps -** exhibit some other undefined or harmful behavior. +** processing, then these routines return [SQLITE_ERROR].)^ ** ** ^(Use these routines to access all values on the right-hand side ** of the IN constraint using code like the following: ** **

       **    for(rc=sqlite3_vtab_in_first(pList, &pVal);
      -**        rc==SQLITE_OK && pVal
      +**        rc==SQLITE_OK && pVal;
       **        rc=sqlite3_vtab_in_next(pList, &pVal)
       **    ){
       **      // do something with pVal
      @@ -9836,6 +9987,10 @@ SQLITE_API int sqlite3_vtab_rhs_value(sqlite3_index_info*, int, sqlite3_value **
       ** managed by the prepared statement S and will be automatically freed when
       ** S is finalized.
       **
      +** Not all values are available for all query elements. When a value is
      +** not available, the output variable is set to -1 if the value is numeric,
      +** or to NULL if it is a string (SQLITE_SCANSTAT_NAME).
      +**
       ** 
      ** [[SQLITE_SCANSTAT_NLOOP]]
      SQLITE_SCANSTAT_NLOOP
      **
      ^The [sqlite3_int64] variable pointed to by the V parameter will be @@ -9863,12 +10018,24 @@ SQLITE_API int sqlite3_vtab_rhs_value(sqlite3_index_info*, int, sqlite3_value ** ** to a zero-terminated UTF-8 string containing the [EXPLAIN QUERY PLAN] ** description for the X-th loop. ** -** [[SQLITE_SCANSTAT_SELECTID]]
      SQLITE_SCANSTAT_SELECT
      +** [[SQLITE_SCANSTAT_SELECTID]]
      SQLITE_SCANSTAT_SELECTID
      **
      ^The "int" variable pointed to by the V parameter will be set to the -** "select-id" for the X-th loop. The select-id identifies which query or -** subquery the loop is part of. The main query has a select-id of zero. -** The select-id is the same value as is output in the first column -** of an [EXPLAIN QUERY PLAN] query. +** id for the X-th query plan element. The id value is unique within the +** statement. The select-id is the same value as is output in the first +** column of an [EXPLAIN QUERY PLAN] query. +** +** [[SQLITE_SCANSTAT_PARENTID]]
      SQLITE_SCANSTAT_PARENTID
      +**
      The "int" variable pointed to by the V parameter will be set to the +** the id of the parent of the current query element, if applicable, or +** to zero if the query element has no parent. This is the same value as +** returned in the second column of an [EXPLAIN QUERY PLAN] query. +** +** [[SQLITE_SCANSTAT_NCYCLE]]
      SQLITE_SCANSTAT_NCYCLE
      +**
      The sqlite3_int64 output value is set to the number of cycles, +** according to the processor time-stamp counter, that elapsed while the +** query element was being processed. This value is not available for +** all query elements - if it is unavailable the output variable is +** set to -1. **
      */ #define SQLITE_SCANSTAT_NLOOP 0 @@ -9877,12 +10044,14 @@ SQLITE_API int sqlite3_vtab_rhs_value(sqlite3_index_info*, int, sqlite3_value ** #define SQLITE_SCANSTAT_NAME 3 #define SQLITE_SCANSTAT_EXPLAIN 4 #define SQLITE_SCANSTAT_SELECTID 5 +#define SQLITE_SCANSTAT_PARENTID 6 +#define SQLITE_SCANSTAT_NCYCLE 7 /* ** CAPI3REF: Prepared Statement Scan Status ** METHOD: sqlite3_stmt ** -** This interface returns information about the predicted and measured +** These interfaces return information about the predicted and measured ** performance for pStmt. Advanced applications can use this ** interface to compare the predicted and the measured performance and ** issue warnings and/or rerun [ANALYZE] if discrepancies are found. @@ -9893,19 +10062,25 @@ SQLITE_API int sqlite3_vtab_rhs_value(sqlite3_index_info*, int, sqlite3_value ** ** ** The "iScanStatusOp" parameter determines which status information to return. ** The "iScanStatusOp" must be one of the [scanstatus options] or the behavior -** of this interface is undefined. -** ^The requested measurement is written into a variable pointed to by -** the "pOut" parameter. -** Parameter "idx" identifies the specific loop to retrieve statistics for. -** Loops are numbered starting from zero. ^If idx is out of range - less than -** zero or greater than or equal to the total number of loops used to implement -** the statement - a non-zero value is returned and the variable that pOut -** points to is unchanged. +** of this interface is undefined. ^The requested measurement is written into +** a variable pointed to by the "pOut" parameter. ** -** ^Statistics might not be available for all loops in all statements. ^In cases -** where there exist loops with no available statistics, this function behaves -** as if the loop did not exist - it returns non-zero and leave the variable -** that pOut points to unchanged. +** The "flags" parameter must be passed a mask of flags. At present only +** one flag is defined - SQLITE_SCANSTAT_COMPLEX. If SQLITE_SCANSTAT_COMPLEX +** is specified, then status information is available for all elements +** of a query plan that are reported by "EXPLAIN QUERY PLAN" output. If +** SQLITE_SCANSTAT_COMPLEX is not specified, then only query plan elements +** that correspond to query loops (the "SCAN..." and "SEARCH..." elements of +** the EXPLAIN QUERY PLAN output) are available. Invoking API +** sqlite3_stmt_scanstatus() is equivalent to calling +** sqlite3_stmt_scanstatus_v2() with a zeroed flags parameter. +** +** Parameter "idx" identifies the specific query element to retrieve statistics +** for. Query elements are numbered starting from zero. A value of -1 may be +** to query for statistics regarding the entire query. ^If idx is out of range +** - less than -1 or greater than or equal to the total number of query +** elements used to implement the statement - a non-zero value is returned and +** the variable that pOut points to is unchanged. ** ** See also: [sqlite3_stmt_scanstatus_reset()] */ @@ -9915,6 +10090,19 @@ SQLITE_API int sqlite3_stmt_scanstatus( int iScanStatusOp, /* Information desired. SQLITE_SCANSTAT_* */ void *pOut /* Result written here */ ); +SQLITE_API int sqlite3_stmt_scanstatus_v2( + sqlite3_stmt *pStmt, /* Prepared statement for which info desired */ + int idx, /* Index of loop to report on */ + int iScanStatusOp, /* Information desired. SQLITE_SCANSTAT_* */ + int flags, /* Mask of flags defined below */ + void *pOut /* Result written here */ +); + +/* +** CAPI3REF: Prepared Statement Scan Status +** KEYWORDS: {scan status flags} +*/ +#define SQLITE_SCANSTAT_COMPLEX 0x0001 /* ** CAPI3REF: Zero Scan-Status Counters @@ -10005,6 +10193,10 @@ SQLITE_API int sqlite3_db_cacheflush(sqlite3*); ** function is not defined for operations on WITHOUT ROWID tables, or for ** DELETE operations on rowid tables. ** +** ^The sqlite3_preupdate_hook(D,C,P) function returns the P argument from +** the previous call on the same [database connection] D, or NULL for +** the first call on D. +** ** The [sqlite3_preupdate_old()], [sqlite3_preupdate_new()], ** [sqlite3_preupdate_count()], and [sqlite3_preupdate_depth()] interfaces ** provide additional information about a preupdate event. These routines @@ -10410,6 +10602,19 @@ SQLITE_API int sqlite3_deserialize( # undef double #endif +#if defined(__wasi__) +# undef SQLITE_WASI +# define SQLITE_WASI 1 +# undef SQLITE_OMIT_WAL +# define SQLITE_OMIT_WAL 1/* because it requires shared memory APIs */ +# ifndef SQLITE_OMIT_LOAD_EXTENSION +# define SQLITE_OMIT_LOAD_EXTENSION +# endif +# ifndef SQLITE_THREADSAFE +# define SQLITE_THREADSAFE 0 +# endif +#endif + #ifdef __cplusplus } /* End of the 'extern "C"' block */ #endif @@ -10616,16 +10821,20 @@ SQLITE_API int sqlite3session_create( SQLITE_API void sqlite3session_delete(sqlite3_session *pSession); /* -** CAPIREF: Conigure a Session Object +** CAPI3REF: Configure a Session Object ** METHOD: sqlite3_session ** ** This method is used to configure a session object after it has been -** created. At present the only valid value for the second parameter is -** [SQLITE_SESSION_OBJCONFIG_SIZE]. +** created. At present the only valid values for the second parameter are +** [SQLITE_SESSION_OBJCONFIG_SIZE] and [SQLITE_SESSION_OBJCONFIG_ROWID]. ** -** Arguments for sqlite3session_object_config() +*/ +SQLITE_API int sqlite3session_object_config(sqlite3_session*, int op, void *pArg); + +/* +** CAPI3REF: Options for sqlite3session_object_config ** -** The following values may passed as the the 4th parameter to +** The following values may passed as the the 2nd parameter to ** sqlite3session_object_config(). ** **
      SQLITE_SESSION_OBJCONFIG_SIZE
      @@ -10641,12 +10850,21 @@ SQLITE_API void sqlite3session_delete(sqlite3_session *pSession); ** ** It is an error (SQLITE_MISUSE) to attempt to modify this setting after ** the first table has been attached to the session object. +** +**
      SQLITE_SESSION_OBJCONFIG_ROWID
      +** This option is used to set, clear or query the flag that enables +** collection of data for tables with no explicit PRIMARY KEY. +** +** Normally, tables with no explicit PRIMARY KEY are simply ignored +** by the sessions module. However, if this flag is set, it behaves +** as if such tables have a column "_rowid_ INTEGER PRIMARY KEY" inserted +** as their leftmost columns. +** +** It is an error (SQLITE_MISUSE) to attempt to modify this setting after +** the first table has been attached to the session object. */ -SQLITE_API int sqlite3session_object_config(sqlite3_session*, int op, void *pArg); - -/* -*/ -#define SQLITE_SESSION_OBJCONFIG_SIZE 1 +#define SQLITE_SESSION_OBJCONFIG_SIZE 1 +#define SQLITE_SESSION_OBJCONFIG_ROWID 2 /* ** CAPI3REF: Enable Or Disable A Session Object @@ -11779,9 +11997,23 @@ SQLITE_API int sqlite3changeset_apply_v2( ** Invert the changeset before applying it. This is equivalent to inverting ** a changeset using sqlite3changeset_invert() before applying it. It is ** an error to specify this flag with a patchset. +** +**
      SQLITE_CHANGESETAPPLY_IGNORENOOP
      +** Do not invoke the conflict handler callback for any changes that +** would not actually modify the database even if they were applied. +** Specifically, this means that the conflict handler is not invoked +** for: +**
        +**
      • a delete change if the row being deleted cannot be found, +**
      • an update change if the modified fields are already set to +** their new values in the conflicting row, or +**
      • an insert change if all fields of the conflicting row match +** the row being inserted. +**
      */ #define SQLITE_CHANGESETAPPLY_NOSAVEPOINT 0x0001 #define SQLITE_CHANGESETAPPLY_INVERT 0x0002 +#define SQLITE_CHANGESETAPPLY_IGNORENOOP 0x0004 /* ** CAPI3REF: Constants Passed To The Conflict Handler From 00e157da43fc2b3f46d05f24f88c2a3ab4575654 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 10 Jul 2023 21:37:45 +0200 Subject: [PATCH 058/395] #4014: wrong string offset in HTTPCredentials::isNTLMCredentials --- Net/src/HTTPCredentials.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Net/src/HTTPCredentials.cpp b/Net/src/HTTPCredentials.cpp index ba5681a4b..0e8d3ee56 100644 --- a/Net/src/HTTPCredentials.cpp +++ b/Net/src/HTTPCredentials.cpp @@ -191,7 +191,7 @@ bool HTTPCredentials::isDigestCredentials(const std::string& header) bool HTTPCredentials::isNTLMCredentials(const std::string& header) { - return icompare(header, 0, 4, "NTLM") == 0 && (header.size() > 5 ? Poco::Ascii::isSpace(header[5]) : true); + return icompare(header, 0, 4, "NTLM") == 0 && (header.size() > 4 ? Poco::Ascii::isSpace(header[4]) : true); } From 5f17a02548cd0e0068ead30642aa437eac88abab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 10 Jul 2023 21:52:36 +0200 Subject: [PATCH 059/395] #3935: The extractor in postgresql drops milliseconds --- Data/PostgreSQL/src/Extractor.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Data/PostgreSQL/src/Extractor.cpp b/Data/PostgreSQL/src/Extractor.cpp index f11fab7b0..92af18000 100644 --- a/Data/PostgreSQL/src/Extractor.cpp +++ b/Data/PostgreSQL/src/Extractor.cpp @@ -313,7 +313,7 @@ bool Extractor::extract(std::size_t pos, DateTime& val) int tzd = -1; DateTime dateTime; - if (!DateTimeParser::tryParse(outputParameter.pData(), dateTime, tzd)) + if (!DateTimeParser::tryParse("%Y-%m-%d %H:%M:%s", outputParameter.pData(), dateTime, tzd)) { return false; } From a467fb382dcb19d6b8d1cc93cd4e757265f5bdb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 10 Jul 2023 22:08:59 +0200 Subject: [PATCH 060/395] #4031: Classes with virtual functions missing virtual destructors (compilation issues) --- Net/include/Poco/Net/PartStore.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Net/include/Poco/Net/PartStore.h b/Net/include/Poco/Net/PartStore.h index a7be187c8..257b254bc 100644 --- a/Net/include/Poco/Net/PartStore.h +++ b/Net/include/Poco/Net/PartStore.h @@ -87,6 +87,8 @@ class PartStoreFactory { public: virtual PartSource* createPartStore(const std::string& content, const std::string& mediaType, const std::string& filename = "") = 0; + + virtual ~PartStoreFactory() = default; }; From b0d7f9bd79cc0229e458ef610e62b9f521aceb6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Tue, 11 Jul 2023 06:47:40 +0200 Subject: [PATCH 061/395] style --- CppParser/src/Symbol.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/CppParser/src/Symbol.cpp b/CppParser/src/Symbol.cpp index b55433521..3a9ecf326 100644 --- a/CppParser/src/Symbol.cpp +++ b/CppParser/src/Symbol.cpp @@ -121,25 +121,30 @@ std::string Symbol::extractName(const std::string& decl) return "operator []"; std::string::size_type pos = decl.find('('); - if (pos != std::string::npos) { + if (pos != std::string::npos) + { // special case std::function a // ^ ^^ // In case the marked patterns are found, // reset pos to npos to make sure "(" is not seen as the beginning of a function int bracket = 1; std::string::size_type i = pos + 1; - while (i < decl.size() && bracket != 0){ - if (decl[i] == '('){ + while (i < decl.size() && bracket != 0) + { + if (decl[i] == '(') + { bracket++; - } else if (decl[i] == ')'){ + } + else if (decl[i] == ')') + { bracket--; } - i++; } - + while (i < decl.size() && std::isspace(decl[i])) i++; - if (i < decl.size() && decl[i] == '>') { + if (i < decl.size() && decl[i] == '>') + { pos = std::string::npos; } } From 0bf69ab83225e66240d77196400f908793415900 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Tue, 11 Jul 2023 07:00:35 +0200 Subject: [PATCH 062/395] fix haveLegacyProvider for OpenSSL < 3 --- Crypto/include/Poco/Crypto/OpenSSLInitializer.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Crypto/include/Poco/Crypto/OpenSSLInitializer.h b/Crypto/include/Poco/Crypto/OpenSSLInitializer.h index dd716a2f4..1fd82b748 100644 --- a/Crypto/include/Poco/Crypto/OpenSSLInitializer.h +++ b/Crypto/include/Poco/Crypto/OpenSSLInitializer.h @@ -128,7 +128,11 @@ inline void OpenSSLInitializer::enableFIPSMode(bool /*enabled*/) inline bool OpenSSLInitializer::haveLegacyProvider() { +#if OPENSSL_VERSION_NUMBER >= 0x30000000L return _legacyProvider != nullptr; +#else + return false; +#endif } From da39e3ce70edb0d8d48248671bc3df308ca2327e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Tue, 11 Jul 2023 08:54:34 +0200 Subject: [PATCH 063/395] base class lookup --- CppParser/include/Poco/CppParser/Function.h | 10 ++++---- CppParser/include/Poco/CppParser/NameSpace.h | 4 ++-- CppParser/include/Poco/CppParser/Struct.h | 3 +++ CppParser/src/NameSpace.cpp | 4 ++-- CppParser/src/Struct.cpp | 24 ++++++++++++++++++++ 5 files changed, 36 insertions(+), 9 deletions(-) diff --git a/CppParser/include/Poco/CppParser/Function.h b/CppParser/include/Poco/CppParser/Function.h index 8e367171e..e060f61ee 100644 --- a/CppParser/include/Poco/CppParser/Function.h +++ b/CppParser/include/Poco/CppParser/Function.h @@ -119,6 +119,11 @@ public: bool isDeleted() const; /// Returns true iff the method has been deleted. + bool isVirtual() const; + /// Returns true if the method is virtual. Also examines base + /// classes to check for a virtual function with the same + /// signature. + bool isStatic() const; /// Returns true iff the method is static. @@ -128,11 +133,6 @@ public: std::string signature() const; /// Returns the signature of the function. - bool isVirtual() const; - /// Returns true if the method is virtual. Also examines base - /// classes to check for a virtual function with the same - /// signature. - Function* getOverridden() const; /// If the function is virtual and overrides a function in a /// base class, the base class function is returned. diff --git a/CppParser/include/Poco/CppParser/NameSpace.h b/CppParser/include/Poco/CppParser/NameSpace.h index 02d7f5450..9f5b3dab5 100644 --- a/CppParser/include/Poco/CppParser/NameSpace.h +++ b/CppParser/include/Poco/CppParser/NameSpace.h @@ -61,8 +61,8 @@ public: Iterator end() const; /// Returns an iterator for iterating over the NameSpace's Symbol's. - - Symbol* lookup(const std::string& name) const; + + virtual Symbol* lookup(const std::string& name) const; /// Looks up the given name in the symbol table /// and returns the corresponding symbol, or null /// if no symbol can be found. The name can include diff --git a/CppParser/include/Poco/CppParser/Struct.h b/CppParser/include/Poco/CppParser/Struct.h index 2c3a5c7cd..2a5a17019 100644 --- a/CppParser/include/Poco/CppParser/Struct.h +++ b/CppParser/include/Poco/CppParser/Struct.h @@ -139,6 +139,9 @@ public: Symbol::Kind kind() const; std::string toString() const; + // Namespace + Symbol* lookup(const std::string& name) const; + private: std::string _decl; BaseClasses _bases; diff --git a/CppParser/src/NameSpace.cpp b/CppParser/src/NameSpace.cpp index 9bd683030..65f62eb4b 100644 --- a/CppParser/src/NameSpace.cpp +++ b/CppParser/src/NameSpace.cpp @@ -99,7 +99,8 @@ Symbol* NameSpace::lookup(const std::string& name, std::set& a return pSymbol; if (alreadyVisited.find(this) != alreadyVisited.end()) - return pSymbol; + return pSymbol; + std::string head; std::string tail; splitName(name, head, tail); @@ -107,7 +108,6 @@ Symbol* NameSpace::lookup(const std::string& name, std::set& a alreadyVisited.insert(this); bool currentNSInserted = true; - if (head.empty()) { alreadyVisited.insert(this); diff --git a/CppParser/src/Struct.cpp b/CppParser/src/Struct.cpp index fa2ed6db4..b57119799 100644 --- a/CppParser/src/Struct.cpp +++ b/CppParser/src/Struct.cpp @@ -252,4 +252,28 @@ std::string Struct::toString() const } +Symbol* Struct::lookup(const std::string& name) const +{ + Symbol* pSymbol = NameSpace::lookup(name); + if (!pSymbol) + { + for (BaseIterator it = baseBegin(); it != baseEnd(); ++it) + { + if (it->access != Symbol::ACC_PRIVATE) + { + if (it->pClass) + { + pSymbol = it->pClass->lookup(name); + if (pSymbol) + { + return pSymbol; + } + } + } + } + } + return pSymbol; +} + + } } // namespace Poco::CppParser From 180f9eb9a840f0196d1996339f04f33974cbac69 Mon Sep 17 00:00:00 2001 From: Daniel G Date: Tue, 11 Jul 2023 14:24:31 +0200 Subject: [PATCH 064/395] Update ICMPv4PacketImpl.h (#4059) Fix mingw64 build #2967 --- Net/include/Poco/Net/ICMPv4PacketImpl.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Net/include/Poco/Net/ICMPv4PacketImpl.h b/Net/include/Poco/Net/ICMPv4PacketImpl.h index 968083237..287b10041 100644 --- a/Net/include/Poco/Net/ICMPv4PacketImpl.h +++ b/Net/include/Poco/Net/ICMPv4PacketImpl.h @@ -54,6 +54,13 @@ public: poco_static_assert (offsetof(Header, seq) == 0x06); #endif +#if defined(MINGW) || defined(__MINGW32__) || defined(__MINGW64__) +#if defined(TIMESTAMP_REQUEST) && defined(POCO_COMPILER_MINGW) + #pragma push_macro("TIMESTAMP_REQUEST") + #define POCO_RESTORE_TIMESTAMP_REQUEST + #undef TIMESTAMP_REQUEST +#endif +#endif enum MessageType { ECHO_REPLY, @@ -77,6 +84,10 @@ public: MESSAGE_TYPE_LENGTH // length indicator, must remain last }; +#if defined(POCO_RESTORE_TIMESTAMP_REQUEST) + #pragma pop_macro("TIMESTAMP_REQUEST") + #undef POCO_RESTORE_TIMESTAMP_REQUEST +#endif enum DestinationUnreachableCode { NET_UNREACHABLE, From 641d29f4adba03a6ec6a72542279caf0c90b47b3 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Tue, 11 Jul 2023 14:54:44 +0200 Subject: [PATCH 065/395] fix(SecureSocketImpl.cpp): Shutdown TLS1.3 connection #2776 --- NetSSL_OpenSSL/src/SecureSocketImpl.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/NetSSL_OpenSSL/src/SecureSocketImpl.cpp b/NetSSL_OpenSSL/src/SecureSocketImpl.cpp index 14ade466c..911c0dea0 100644 --- a/NetSSL_OpenSSL/src/SecureSocketImpl.cpp +++ b/NetSSL_OpenSSL/src/SecureSocketImpl.cpp @@ -96,6 +96,21 @@ void SecureSocketImpl::acceptSSL() BIO_free(pBIO); throw SSLException("Cannot create SSL object"); } + +#if OPENSSL_VERSION_NUMBER >= 0x1010100fL + /* TLS 1.3 server sends session tickets after a handhake as part of + * the SSL_accept(). If a client finishes all its job before server + * sends the tickets, SSL_accept() fails with EPIPE errno. Since we + * are not interested in a session resumption, we can not to send the + * tickets. */ + if (1 != SSL_set_num_tickets(_pSSL, 0)) + { + BIO_free(pBIO); + throw SSLException("Cannot create SSL object"); + } + //Otherwise we can perform two-way shutdown. Client must call SSL_read() before the final SSL_shutdown(). +#endif + SSL_set_bio(_pSSL, pBIO, pBIO); SSL_set_accept_state(_pSSL); SSL_set_ex_data(_pSSL, SSLManager::instance().socketIndex(), this); From 1065c6f9ca12624f9c4521442e1e10689ab710a8 Mon Sep 17 00:00:00 2001 From: haorui wang <56127613+HR1025@users.noreply.github.com> Date: Tue, 11 Jul 2023 21:00:17 +0800 Subject: [PATCH 066/395] chore(Net) : correct spelling, remove some unused codes fix(SocketProactor) : missing adding sock to read pollset fix(DialogServer) : _lastCommands data race (#3821) * chore(CppUnit) : style format and revise comment fix(CppUint) : RepeatedTest compile error * chore(CppUnit) : remove TestResult forward declare in RepeatedTest.h * chore(Net) : correct spelling, remove some unused codes fix(SocketProactor) : missing adding sock to read pollset fix(DialogServer) : _lastCommands data race --- Net/include/Poco/Net/FTPStreamFactory.h | 2 +- Net/include/Poco/Net/ServerSocket.h | 4 ++-- Net/include/Poco/Net/SocketImpl.h | 3 ++- Net/include/Poco/Net/SocketProactor.h | 2 +- Net/include/Poco/Net/SocketReactor.h | 2 +- Net/src/SocketProactor.cpp | 1 + Net/testsuite/src/DialogServer.cpp | 2 ++ Net/testsuite/src/HTTPTestServer.cpp | 5 +---- 8 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Net/include/Poco/Net/FTPStreamFactory.h b/Net/include/Poco/Net/FTPStreamFactory.h index 992cc4f51..ade042527 100644 --- a/Net/include/Poco/Net/FTPStreamFactory.h +++ b/Net/include/Poco/Net/FTPStreamFactory.h @@ -66,7 +66,7 @@ public: /// Destroys the FTPStreamFactory. std::istream* open(const Poco::URI& uri); - /// Creates and opens a HTTP stream for the given URI. + /// Creates and opens a FTP stream for the given URI. /// The URI must be a ftp://... URI. /// /// Throws a NetException if anything goes wrong. diff --git a/Net/include/Poco/Net/ServerSocket.h b/Net/include/Poco/Net/ServerSocket.h index bd9fb8eee..62dd932e5 100644 --- a/Net/include/Poco/Net/ServerSocket.h +++ b/Net/include/Poco/Net/ServerSocket.h @@ -61,7 +61,7 @@ public: /// is ready to accept connections. virtual ~ServerSocket(); - /// Destroys the StreamSocket. + /// Destroys the ServerSocket. ServerSocket& operator = (const Socket& socket); /// Assignment operator. @@ -110,7 +110,7 @@ public: /// /// If reuseAddress is true, sets the SO_REUSEADDR /// socket option. - /// + /// /// If reusePort is true, sets the SO_REUSEPORT /// socket option. diff --git a/Net/include/Poco/Net/SocketImpl.h b/Net/include/Poco/Net/SocketImpl.h index 5d75e7c6d..84fb51755 100644 --- a/Net/include/Poco/Net/SocketImpl.h +++ b/Net/include/Poco/Net/SocketImpl.h @@ -176,7 +176,8 @@ public: /// value denoting a certain condition. virtual int sendBytes(const SocketBufVec& buffers, int flags = 0); - /// Receives data from the socket and stores it in buffers. + /// Sends the contents of the given buffers through + /// the socket. /// /// Returns the number of bytes received. /// diff --git a/Net/include/Poco/Net/SocketProactor.h b/Net/include/Poco/Net/SocketProactor.h index 161ff2b76..7650ceba7 100644 --- a/Net/include/Poco/Net/SocketProactor.h +++ b/Net/include/Poco/Net/SocketProactor.h @@ -199,7 +199,7 @@ public: /// Returns true if this proactor is running bool ioCompletionInProgress() const; - /// Returns true if there are not executed handlers from last IO.. + /// Returns true if there are not executed handlers from last IO. private: void onShutdown(); diff --git a/Net/include/Poco/Net/SocketReactor.h b/Net/include/Poco/Net/SocketReactor.h index 46e5d3d3c..aefc4dc93 100644 --- a/Net/include/Poco/Net/SocketReactor.h +++ b/Net/include/Poco/Net/SocketReactor.h @@ -108,7 +108,7 @@ class Net_API SocketReactor: public Poco::Runnable /// shutdown processing. /// /// The SocketReactor is implemented so that it can run in its own thread. - /// Moreover, the thread affinity to a CPU core can optionally be set for the + /// Moreover, the thread affinity to a CPU core can optionally be set for the /// thread on platforms where that functionality is supported and implemented. /// It is also possible to run multiple SocketReactors in parallel, as long /// as they work on different sockets. diff --git a/Net/src/SocketProactor.cpp b/Net/src/SocketProactor.cpp index 51e809dbb..a2e92b486 100644 --- a/Net/src/SocketProactor.cpp +++ b/Net/src/SocketProactor.cpp @@ -339,6 +339,7 @@ void SocketProactor::addReceiveFrom(Socket sock, Buffer& buf, Poco::Net::SocketA Poco::Mutex::ScopedLock l(_readMutex); _readHandlers[sock.impl()->sockfd()].push_back(std::move(pHandler)); + if (!has(sock)) addSocket(sock, PollSet::POLL_READ); } diff --git a/Net/testsuite/src/DialogServer.cpp b/Net/testsuite/src/DialogServer.cpp index 36cc1889f..5efce4ca5 100644 --- a/Net/testsuite/src/DialogServer.cpp +++ b/Net/testsuite/src/DialogServer.cpp @@ -108,6 +108,8 @@ const std::string& DialogServer::lastCommand() const const std::vector& DialogServer::lastCommands() const { + FastMutex::ScopedLock lock(_mutex); + return _lastCommands; } diff --git a/Net/testsuite/src/HTTPTestServer.cpp b/Net/testsuite/src/HTTPTestServer.cpp index 7cfd68670..78e3e0a7e 100644 --- a/Net/testsuite/src/HTTPTestServer.cpp +++ b/Net/testsuite/src/HTTPTestServer.cpp @@ -164,9 +164,6 @@ std::string HTTPTestServer::handleRequest() const } else if (_lastRequest.substr(0, 10) == "POST /fail") { - std::string::size_type pos = _lastRequest.find("\r\n\r\n"); - pos += 4; - std::string body = _lastRequest.substr(pos); response.append("HTTP/1.1 400 Bad Request\r\n"); response.append("Connection: Close\r\n"); response.append("\r\n"); @@ -251,7 +248,7 @@ std::string HTTPTestServer::handleRequest() const response.append("\r\n"); } else if (_lastRequest.substr(0, 5) == "GET /" || - _lastRequest.substr(0, 6) == "HEAD /") + _lastRequest.substr(0, 6) == "HEAD /") { std::string body(SMALL_BODY); response.append("HTTP/1.0 200 OK\r\n"); From bce5f961dd5f39a94a1bd091342cc13d51e57567 Mon Sep 17 00:00:00 2001 From: Alexander B Date: Tue, 11 Jul 2023 16:08:35 +0300 Subject: [PATCH 067/395] optimize checkUpperLimit and checkLowerLimit in VarHolder.h avoid (#4072) compile-time warnings when argument type is float and condition always true Co-authored-by: Alexander B --- Foundation/include/Poco/Dynamic/VarHolder.h | 28 ++++++++------------- 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/Foundation/include/Poco/Dynamic/VarHolder.h b/Foundation/include/Poco/Dynamic/VarHolder.h index 88b9c8bd5..0a9c26c6d 100644 --- a/Foundation/include/Poco/Dynamic/VarHolder.h +++ b/Foundation/include/Poco/Dynamic/VarHolder.h @@ -323,16 +323,8 @@ protected: poco_static_assert (std::numeric_limits::is_signed); poco_static_assert (std::numeric_limits::is_signed); - if (std::numeric_limits::is_integer) - { - checkUpperLimit(from); - checkLowerLimit(from); - } - else - { - checkUpperLimitFloat(from); - checkLowerLimitFloat(from); - } + checkUpperLimit(from); + checkLowerLimit(from); to = static_cast(from); } @@ -372,7 +364,7 @@ protected: to = static_cast(from); } - template + template ::value, bool> = true> void convertSignedFloatToUnsigned(const F& from, T& to) const /// This function is meant for converting floating point data types to /// unsigned integral data types. Negative values can not be converted and if one @@ -387,7 +379,7 @@ protected: if (from < 0) throw RangeException("Value too small."); - checkUpperLimitFloat(from); + checkUpperLimit(from); to = static_cast(from); } @@ -409,22 +401,22 @@ protected: private: - template + template ::value, bool> = true> void checkUpperLimit(const F& from) const { if (from > std::numeric_limits::max()) throw RangeException("Value too large."); } - template + template ::value, bool> = true> void checkLowerLimit(const F& from) const { if (from < std::numeric_limits::min()) throw RangeException("Value too small."); } - template - void checkUpperLimitFloat(const F& from) const + template ::value, bool> = true> + void checkUpperLimit(const F& from) const { if (std::is_floating_point::value) { @@ -439,8 +431,8 @@ private: } } - template - void checkLowerLimitFloat(const F& from) const + template ::value, bool> = true> + void checkLowerLimit(const F& from) const { if (std::is_floating_point::value) { From d28129cbc49cd687ac0ca52e8c30eb448e1a83f4 Mon Sep 17 00:00:00 2001 From: Romain Geissler Date: Tue, 18 Jul 2023 07:05:32 +0000 Subject: [PATCH 068/395] Remove std::aligned_storage as it is deprecated in C++23. Instead, replace it with std::max_align_t in the Any implementation, as really we would like to be able to store any object with any alignment in the small object optimization case. Typically the size and alignment of std::max_align_t is 8 or 16 on most platforms. Added a static assert to ensure that this change doesn't result in wasting more unused memory in case the size of the storage buffer is smaller than this maximum alignment (which is right now 64, so shall be ok on all platforms). --- Foundation/include/Poco/Any.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Foundation/include/Poco/Any.h b/Foundation/include/Poco/Any.h index bfe1f6f46..7055f10d1 100644 --- a/Foundation/include/Poco/Any.h +++ b/Foundation/include/Poco/Any.h @@ -21,6 +21,7 @@ #include #include #include +#include #define poco_any_assert(cond) do { if (!(cond)) std::abort(); } while (0) @@ -137,7 +138,8 @@ public: } private: - typedef typename std::aligned_storage::type AlignerType; + typedef std::max_align_t AlignerType; + static_assert(sizeof(AlignerType) >= SizeV + 1, "Aligner type is bigger than the actual storage, so SizeV should be made bigger otherwise you simply waste unused memory."); void setLocal(bool local) const { From 615e7773b816cae2caaea2a98387468a896a8d68 Mon Sep 17 00:00:00 2001 From: Romain Geissler Date: Tue, 18 Jul 2023 07:16:24 +0000 Subject: [PATCH 069/395] Silence gcc -Wsign-compare warning when instantiating Poco::Dynamic::VarHolder::convertSignedToUnsigned. /data/mwrep/res/osp/Poco/Foundation/23-0-0-0/include/Poco/Dynamic/VarHolder.h: In instantiation of 'void Poco::Dynamic::VarHolder::checkUpperLimit(const F&) const [with F = signed char; T = unsigned int; typename std::enable_if::value, bool>::type = true]': /data/mwrep/res/osp/Poco/Foundation/23-0-0-0/include/Poco/Dynamic/VarHolder.h:361:23: required from 'void Poco::Dynamic::VarHolder::convertSignedToUnsigned(const F&, T&) const [with F = signed char; T = unsigned int]' /data/mwrep/res/osp/Poco/Foundation/23-0-0-0/include/Poco/Dynamic/VarHolder.h:799:26: required from here /data/mwrep/res/osp/Poco/Foundation/23-0-0-0/include/Poco/Dynamic/VarHolder.h:405:26: error: comparison of integer expressions of different signedness: 'const signed char' and 'unsigned int' [-Werror=sign-compare] 405 | if (from > std::numeric_limits::max()) | ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --- Foundation/include/Poco/Dynamic/VarHolder.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Foundation/include/Poco/Dynamic/VarHolder.h b/Foundation/include/Poco/Dynamic/VarHolder.h index 0a9c26c6d..9db40a0c5 100644 --- a/Foundation/include/Poco/Dynamic/VarHolder.h +++ b/Foundation/include/Poco/Dynamic/VarHolder.h @@ -38,6 +38,7 @@ #include #include #include +#include #undef min #undef max #include @@ -360,7 +361,7 @@ protected: if (from < 0) throw RangeException("Value too small."); - checkUpperLimit(from); + checkUpperLimit,T>(from); to = static_cast(from); } From 5fb67c452a24f110ce31c35e96ee9dd66fa268c7 Mon Sep 17 00:00:00 2001 From: Romain Geissler Date: Tue, 18 Jul 2023 07:30:29 +0000 Subject: [PATCH 070/395] Fix typos in #4086 and #4087. --- Foundation/include/Poco/Any.h | 2 +- Foundation/include/Poco/Dynamic/VarHolder.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Foundation/include/Poco/Any.h b/Foundation/include/Poco/Any.h index 7055f10d1..9927776a1 100644 --- a/Foundation/include/Poco/Any.h +++ b/Foundation/include/Poco/Any.h @@ -139,7 +139,7 @@ public: private: typedef std::max_align_t AlignerType; - static_assert(sizeof(AlignerType) >= SizeV + 1, "Aligner type is bigger than the actual storage, so SizeV should be made bigger otherwise you simply waste unused memory."); + static_assert(sizeof(AlignerType) <= SizeV + 1, "Aligner type is bigger than the actual storage, so SizeV should be made bigger otherwise you simply waste unused memory."); void setLocal(bool local) const { diff --git a/Foundation/include/Poco/Dynamic/VarHolder.h b/Foundation/include/Poco/Dynamic/VarHolder.h index 9db40a0c5..0ae246ab7 100644 --- a/Foundation/include/Poco/Dynamic/VarHolder.h +++ b/Foundation/include/Poco/Dynamic/VarHolder.h @@ -361,7 +361,7 @@ protected: if (from < 0) throw RangeException("Value too small."); - checkUpperLimit,T>(from); + checkUpperLimit,T>(from); to = static_cast(from); } From b90316f9494e1950bd39e2e1032553afeeb58cd5 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Tue, 15 Aug 2023 18:29:59 +0200 Subject: [PATCH 071/395] add test for #4108 --- Data/SQLite/testsuite/src/SQLiteTest.cpp | 20 ++++++++++++++++++++ Data/SQLite/testsuite/src/SQLiteTest.h | 1 + 2 files changed, 21 insertions(+) diff --git a/Data/SQLite/testsuite/src/SQLiteTest.cpp b/Data/SQLite/testsuite/src/SQLiteTest.cpp index 931e00e4d..43c36d97b 100755 --- a/Data/SQLite/testsuite/src/SQLiteTest.cpp +++ b/Data/SQLite/testsuite/src/SQLiteTest.cpp @@ -254,6 +254,26 @@ SQLiteTest::~SQLiteTest() } +void SQLiteTest::testBind() +{ + int f1 = -1; + Session session(Poco::Data::SQLite::Connector::KEY, "dummy.db"); + session << "DROP TABLE IF EXISTS test", now; + session << "CREATE TABLE test (f1 INTEGER)", now; + + Statement statement(session); + statement << "INSERT INTO test(f1) VALUES(?)"; + statement.addBind(Poco::Data::Keywords::bind(1, "f1")); + statement.execute(); + session << "SELECT f1 FROM test", into(f1), now; + assertTrue (f1 == 1); + statement.removeBind("f1"); + statement.addBind(Poco::Data::Keywords::bind(2, "f1")); + statement.execute(); + assertTrue (f1 == 2); +} + + void SQLiteTest::testBinding() { Session tmp (Poco::Data::SQLite::Connector::KEY, "dummy.db"); diff --git a/Data/SQLite/testsuite/src/SQLiteTest.h b/Data/SQLite/testsuite/src/SQLiteTest.h index 6e4f911ea..6ba4c90dd 100755 --- a/Data/SQLite/testsuite/src/SQLiteTest.h +++ b/Data/SQLite/testsuite/src/SQLiteTest.h @@ -32,6 +32,7 @@ public: SQLiteTest(const std::string& name); ~SQLiteTest(); + void testBind(); void testBinding(); void testZeroRows(); void testSimpleAccess(); From 9a734674ed2cf86f1fedd88b4606aaf73d69eb5d Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Tue, 15 Aug 2023 21:23:54 +0200 Subject: [PATCH 072/395] fix(Data::Binder: Skip reset for null Binder #4109 --- Data/SQLite/testsuite/src/SQLiteTest.cpp | 14 ++++++++++---- Data/include/Poco/Data/Binding.h | 13 ++++--------- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/Data/SQLite/testsuite/src/SQLiteTest.cpp b/Data/SQLite/testsuite/src/SQLiteTest.cpp index 43c36d97b..eb257bf6e 100755 --- a/Data/SQLite/testsuite/src/SQLiteTest.cpp +++ b/Data/SQLite/testsuite/src/SQLiteTest.cpp @@ -256,7 +256,7 @@ SQLiteTest::~SQLiteTest() void SQLiteTest::testBind() { - int f1 = -1; + std::vector vf1; Session session(Poco::Data::SQLite::Connector::KEY, "dummy.db"); session << "DROP TABLE IF EXISTS test", now; session << "CREATE TABLE test (f1 INTEGER)", now; @@ -265,12 +265,17 @@ void SQLiteTest::testBind() statement << "INSERT INTO test(f1) VALUES(?)"; statement.addBind(Poco::Data::Keywords::bind(1, "f1")); statement.execute(); - session << "SELECT f1 FROM test", into(f1), now; - assertTrue (f1 == 1); + session << "SELECT f1 FROM test", into(vf1), now; + assertTrue (vf1.size() == 1); + assertTrue (vf1[0] == 1); statement.removeBind("f1"); statement.addBind(Poco::Data::Keywords::bind(2, "f1")); statement.execute(); - assertTrue (f1 == 2); + vf1.clear(); + session << "SELECT f1 FROM test", into(vf1), now; + assertTrue (vf1.size() == 2); + assertTrue (vf1[0] == 1); + assertTrue (vf1[1] == 2); } @@ -3501,6 +3506,7 @@ CppUnit::Test* SQLiteTest::suite() { CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("SQLiteTest"); + CppUnit_addTest(pSuite, SQLiteTest, testBind); CppUnit_addTest(pSuite, SQLiteTest, testBinding); CppUnit_addTest(pSuite, SQLiteTest, testZeroRows); CppUnit_addTest(pSuite, SQLiteTest, testSimpleAccess); diff --git a/Data/include/Poco/Data/Binding.h b/Data/include/Poco/Data/Binding.h index 9585f85e4..17b38407c 100644 --- a/Data/include/Poco/Data/Binding.h +++ b/Data/include/Poco/Data/Binding.h @@ -98,8 +98,7 @@ public: { _bound = false; AbstractBinder::Ptr pBinder = getBinder(); - poco_assert_dbg (!pBinder.isNull()); - pBinder->reset(); + if (pBinder) pBinder->reset(); } private: @@ -168,12 +167,10 @@ public: { _bound = false; AbstractBinder::Ptr pBinder = getBinder(); - poco_assert_dbg (!pBinder.isNull()); - pBinder->reset(); + if (pBinder) pBinder->reset(); } private: - //typedef typename TypeWrapper::TYPE ValueType; ValPtr _pVal; bool _bound; }; @@ -230,8 +227,7 @@ public: { _bound = false; AbstractBinder::Ptr pBinder = getBinder(); - poco_assert_dbg (!pBinder.isNull()); - pBinder->reset(); + if (pBinder) pBinder->reset(); } private: @@ -292,8 +288,7 @@ public: { _bound = false; AbstractBinder::Ptr pBinder = getBinder(); - poco_assert_dbg (!pBinder.isNull()); - pBinder->reset(); + if (pBinder) pBinder->reset(); } private: From 1c6e5aa614964b70fc5a3072edaff76a445fa2f5 Mon Sep 17 00:00:00 2001 From: Zhu Asan Date: Fri, 18 Aug 2023 02:27:32 +0800 Subject: [PATCH 073/395] Typo fix in UDPHandler.h (#4111) --- Net/include/Poco/Net/UDPHandler.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Net/include/Poco/Net/UDPHandler.h b/Net/include/Poco/Net/UDPHandler.h index 3843bedf8..8bfe20245 100644 --- a/Net/include/Poco/Net/UDPHandler.h +++ b/Net/include/Poco/Net/UDPHandler.h @@ -311,7 +311,7 @@ public: } virtual void processData(char*) - /// Caled when data is received by reader. + /// Called when data is received by reader. /// /// No-op here, must be overridden by inheriting /// class in order to do useful work. @@ -319,7 +319,7 @@ public: }; virtual void processError(char* buf) - /// Caled when error is detected by reader. + /// Called when error is detected by reader. /// /// Only functional if stream pointer is provided /// to the handler, otherwise it must be overridden @@ -330,7 +330,7 @@ public: } void start() - /// Stars the handler run in thread. + /// Starts the handler run in thread. { _thread.start(*this); } From 3eb18502e7b3adf3014eb5d3c5af2376908bc79b Mon Sep 17 00:00:00 2001 From: Alessandro Di Nepi Date: Mon, 11 Sep 2023 13:55:51 +0200 Subject: [PATCH 074/395] Fix platform when building for iPhoneSimulator (#4137) When building for iPhoneSimulator the parameter to specify the minimum OS version should be matched. --- build/config/iPhoneSimulator | 2 +- build/config/iPhoneSimulator-clang | 2 +- build/config/iPhoneSimulator-clang-libc++ | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build/config/iPhoneSimulator b/build/config/iPhoneSimulator index d03e78f24..2df2d50b3 100644 --- a/build/config/iPhoneSimulator +++ b/build/config/iPhoneSimulator @@ -6,6 +6,6 @@ IPHONE_SDK = iPhoneSimulator POCO_TARGET_OSARCH = x86_64 -OSFLAGS = -arch $(POCO_TARGET_OSARCH) -isysroot $(IPHONE_SDK_BASE) -miphoneos-version-min=$(IPHONE_SDK_VERSION_MIN) +OSFLAGS = -arch $(POCO_TARGET_OSARCH) -isysroot $(IPHONE_SDK_BASE) -miphonesimulator-version-min=$(IPHONE_SDK_VERSION_MIN) include $(POCO_BASE)/build/config/iPhone diff --git a/build/config/iPhoneSimulator-clang b/build/config/iPhoneSimulator-clang index 758768e3a..0cf619958 100644 --- a/build/config/iPhoneSimulator-clang +++ b/build/config/iPhoneSimulator-clang @@ -6,6 +6,6 @@ IPHONE_SDK = iPhoneSimulator POCO_TARGET_OSARCH = x86_64 -OSFLAGS = -arch $(POCO_TARGET_OSARCH) -isysroot $(IPHONE_SDK_BASE) -miphoneos-version-min=$(IPHONE_SDK_VERSION_MIN) +OSFLAGS = -arch $(POCO_TARGET_OSARCH) -isysroot $(IPHONE_SDK_BASE) -miphonesimulator-version-min=$(IPHONE_SDK_VERSION_MIN) include $(POCO_BASE)/build/config/iPhone-clang diff --git a/build/config/iPhoneSimulator-clang-libc++ b/build/config/iPhoneSimulator-clang-libc++ index 8d1d99970..127d2706a 100644 --- a/build/config/iPhoneSimulator-clang-libc++ +++ b/build/config/iPhoneSimulator-clang-libc++ @@ -6,6 +6,6 @@ IPHONE_SDK = iPhoneSimulator POCO_TARGET_OSARCH = x86_64 -OSFLAGS = -arch $(POCO_TARGET_OSARCH) -isysroot $(IPHONE_SDK_BASE) -miphoneos-version-min=$(IPHONE_SDK_VERSION_MIN) +OSFLAGS = -arch $(POCO_TARGET_OSARCH) -isysroot $(IPHONE_SDK_BASE) -miphonesimulator-version-min=$(IPHONE_SDK_VERSION_MIN) include $(POCO_BASE)/build/config/iPhone-clang-libc++ From 43bcc553fe952438f18d12abcc496138af827ff5 Mon Sep 17 00:00:00 2001 From: Philip Ye Date: Thu, 21 Sep 2023 23:30:52 +1200 Subject: [PATCH 075/395] Fix typo in document of TaskManager::start() (#4155) --- Foundation/include/Poco/TaskManager.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Foundation/include/Poco/TaskManager.h b/Foundation/include/Poco/TaskManager.h index 4499cecef..de3984ca1 100644 --- a/Foundation/include/Poco/TaskManager.h +++ b/Foundation/include/Poco/TaskManager.h @@ -70,7 +70,7 @@ public: /// from the thread pool. /// /// The TaskManager takes ownership of the Task object - /// and deletes it when it it finished. + /// and deletes it when it is finished. void cancelAll(); /// Requests cancellation of all tasks. From b61d63da94fe0f716ce3fea49113c9001ba3a67a Mon Sep 17 00:00:00 2001 From: David Roman Date: Sun, 24 Sep 2023 02:19:40 +0200 Subject: [PATCH 076/395] add missing check when activerecord is enabled (#4138) --- CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index cb50a9048..5536f1a12 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -199,6 +199,10 @@ if(ENABLE_ACTIVERECORD AND NOT ENABLE_DATA) set(ENABLE_DATA ON CACHE BOOL "Enable Data" FORCE) endif() +if(ENABLE_ACTIVERECORD AND NOT ENABLE_XML) + set(ENABLE_XML ON CACHE BOOL "Enable XML" FORCE) +endif() + option(ENABLE_TESTS "Set to OFF|ON (default is OFF) to control build of POCO tests & samples" OFF) From 2fb5e60e79c389d387b89db177e754cab402197c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sat, 30 Sep 2023 12:20:35 +0200 Subject: [PATCH 077/395] #4169: Upgrade bundled zlib to 1.3 --- Foundation/include/Poco/zconf.h | 8 +- Foundation/include/Poco/zlib.h | 379 ++++++++++----------- Foundation/src/adler32.c | 32 +- Foundation/src/compress.c | 21 +- Foundation/src/crc32.c | 248 +++++--------- Foundation/src/deflate.c | 569 +++++++++++++------------------- Foundation/src/infback.c | 30 +- Foundation/src/inffast.c | 5 +- Foundation/src/inflate.c | 129 ++------ Foundation/src/inftrees.c | 17 +- Foundation/src/trees.c | 526 +++++++++++++---------------- Foundation/src/zconf.h | 8 +- Foundation/src/zlib.h | 379 ++++++++++----------- Foundation/src/zutil.c | 60 +--- 14 files changed, 1007 insertions(+), 1404 deletions(-) diff --git a/Foundation/include/Poco/zconf.h b/Foundation/include/Poco/zconf.h index bf977d3e7..fb76ffe31 100644 --- a/Foundation/include/Poco/zconf.h +++ b/Foundation/include/Poco/zconf.h @@ -241,7 +241,11 @@ #endif #ifdef Z_SOLO - typedef unsigned long z_size_t; +# ifdef _WIN64 + typedef unsigned long long z_size_t; +# else + typedef unsigned long z_size_t; +# endif #else # define z_longlong long long # if defined(NO_SIZE_T) @@ -520,7 +524,7 @@ typedef uLong FAR uLongf; #if !defined(_WIN32) && defined(Z_LARGE64) # define z_off64_t off64_t #else -# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO) +# if defined(_WIN32) && !defined(__GNUC__) # define z_off64_t __int64 # else # define z_off64_t z_off_t diff --git a/Foundation/include/Poco/zlib.h b/Foundation/include/Poco/zlib.h index 953cb5012..6b7244f99 100644 --- a/Foundation/include/Poco/zlib.h +++ b/Foundation/include/Poco/zlib.h @@ -1,7 +1,7 @@ /* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.13, October 13th, 2022 + version 1.3, August 18th, 2023 - Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler + Copyright (C) 1995-2023 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -37,11 +37,11 @@ extern "C" { #endif -#define ZLIB_VERSION "1.2.13" -#define ZLIB_VERNUM 0x12d0 +#define ZLIB_VERSION "1.3" +#define ZLIB_VERNUM 0x1300 #define ZLIB_VER_MAJOR 1 -#define ZLIB_VER_MINOR 2 -#define ZLIB_VER_REVISION 13 +#define ZLIB_VER_MINOR 3 +#define ZLIB_VER_REVISION 0 #define ZLIB_VER_SUBREVISION 0 /* @@ -78,8 +78,8 @@ extern "C" { even in the case of corrupted input. */ -typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); -typedef void (*free_func) OF((voidpf opaque, voidpf address)); +typedef voidpf (*alloc_func)(voidpf opaque, uInt items, uInt size); +typedef void (*free_func)(voidpf opaque, voidpf address); struct internal_state; @@ -217,7 +217,7 @@ typedef gz_header FAR *gz_headerp; /* basic functions */ -ZEXTERN const char * ZEXPORT zlibVersion OF((void)); +ZEXTERN const char * ZEXPORT zlibVersion(void); /* The application can compare zlibVersion and ZLIB_VERSION for consistency. If the first character differs, the library code actually used is not compatible with the zlib.h header file used by the application. This check @@ -225,12 +225,12 @@ ZEXTERN const char * ZEXPORT zlibVersion OF((void)); */ /* -ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); +ZEXTERN int ZEXPORT deflateInit(z_streamp strm, int level); Initializes the internal stream state for compression. The fields zalloc, zfree and opaque must be initialized before by the caller. If zalloc and zfree are set to Z_NULL, deflateInit updates them to use default - allocation functions. + allocation functions. total_in, total_out, adler, and msg are initialized. The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: 1 gives best speed, 9 gives best compression, 0 gives no compression at all @@ -247,7 +247,7 @@ ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); */ -ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); +ZEXTERN int ZEXPORT deflate(z_streamp strm, int flush); /* deflate compresses as much data as possible, and stops when the input buffer becomes empty or the output buffer becomes full. It may introduce @@ -320,8 +320,8 @@ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); with the same value of the flush parameter and more output space (updated avail_out), until the flush is complete (deflate returns with non-zero avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that - avail_out is greater than six to avoid repeated flush markers due to - avail_out == 0 on return. + avail_out is greater than six when the flush marker begins, in order to avoid + repeated flush markers upon calling deflate() again when avail_out == 0. If the parameter flush is set to Z_FINISH, pending input is processed, pending output is flushed and deflate returns with Z_STREAM_END if there was @@ -360,7 +360,7 @@ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); */ -ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); +ZEXTERN int ZEXPORT deflateEnd(z_streamp strm); /* All dynamically allocated data structures for this stream are freed. This function discards any unprocessed input and does not flush any pending @@ -375,7 +375,7 @@ ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); /* -ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); +ZEXTERN int ZEXPORT inflateInit(z_streamp strm); Initializes the internal stream state for decompression. The fields next_in, avail_in, zalloc, zfree and opaque must be initialized before by @@ -383,7 +383,8 @@ ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); read or consumed. The allocation of a sliding window will be deferred to the first call of inflate (if the decompression does not complete on the first call). If zalloc and zfree are set to Z_NULL, inflateInit updates - them to use default allocation functions. + them to use default allocation functions. total_in, total_out, adler, and + msg are initialized. inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_VERSION_ERROR if the zlib library version is incompatible with the @@ -397,7 +398,7 @@ ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); */ -ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); +ZEXTERN int ZEXPORT inflate(z_streamp strm, int flush); /* inflate decompresses as much data as possible, and stops when the input buffer becomes empty or the output buffer becomes full. It may introduce @@ -517,7 +518,7 @@ ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); */ -ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); +ZEXTERN int ZEXPORT inflateEnd(z_streamp strm); /* All dynamically allocated data structures for this stream are freed. This function discards any unprocessed input and does not flush any pending @@ -535,12 +536,12 @@ ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); */ /* -ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, - int level, - int method, - int windowBits, - int memLevel, - int strategy)); +ZEXTERN int ZEXPORT deflateInit2(z_streamp strm, + int level, + int method, + int windowBits, + int memLevel, + int strategy); This is another version of deflateInit with more compression options. The fields zalloc, zfree and opaque must be initialized before by the caller. @@ -607,9 +608,9 @@ ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, compression: this will be done by deflate(). */ -ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); +ZEXTERN int ZEXPORT deflateSetDictionary(z_streamp strm, + const Bytef *dictionary, + uInt dictLength); /* Initializes the compression dictionary from the given byte sequence without producing any compressed output. When using the zlib format, this @@ -651,9 +652,9 @@ ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, not perform any compression: this will be done by deflate(). */ -ZEXTERN int ZEXPORT deflateGetDictionary OF((z_streamp strm, - Bytef *dictionary, - uInt *dictLength)); +ZEXTERN int ZEXPORT deflateGetDictionary(z_streamp strm, + Bytef *dictionary, + uInt *dictLength); /* Returns the sliding dictionary being maintained by deflate. dictLength is set to the number of bytes in the dictionary, and that many bytes are copied @@ -673,8 +674,8 @@ ZEXTERN int ZEXPORT deflateGetDictionary OF((z_streamp strm, stream state is inconsistent. */ -ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, - z_streamp source)); +ZEXTERN int ZEXPORT deflateCopy(z_streamp dest, + z_streamp source); /* Sets the destination stream as a complete copy of the source stream. @@ -691,20 +692,20 @@ ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, destination. */ -ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); +ZEXTERN int ZEXPORT deflateReset(z_streamp strm); /* This function is equivalent to deflateEnd followed by deflateInit, but does not free and reallocate the internal compression state. The stream will leave the compression level and any other attributes that may have been - set unchanged. + set unchanged. total_in, total_out, adler, and msg are initialized. deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent (such as zalloc or state being Z_NULL). */ -ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, - int level, - int strategy)); +ZEXTERN int ZEXPORT deflateParams(z_streamp strm, + int level, + int strategy); /* Dynamically update the compression level and compression strategy. The interpretation of level and strategy is as in deflateInit2(). This can be @@ -729,7 +730,7 @@ ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, Then no more input data should be provided before the deflateParams() call. If this is done, the old level and strategy will be applied to the data compressed before deflateParams(), and the new level and strategy will be - applied to the the data compressed after deflateParams(). + applied to the data compressed after deflateParams(). deflateParams returns Z_OK on success, Z_STREAM_ERROR if the source stream state was inconsistent or if a parameter was invalid, or Z_BUF_ERROR if @@ -740,11 +741,11 @@ ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, retried with more output space. */ -ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, - int good_length, - int max_lazy, - int nice_length, - int max_chain)); +ZEXTERN int ZEXPORT deflateTune(z_streamp strm, + int good_length, + int max_lazy, + int nice_length, + int max_chain); /* Fine tune deflate's internal compression parameters. This should only be used by someone who understands the algorithm used by zlib's deflate for @@ -757,8 +758,8 @@ ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. */ -ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, - uLong sourceLen)); +ZEXTERN uLong ZEXPORT deflateBound(z_streamp strm, + uLong sourceLen); /* deflateBound() returns an upper bound on the compressed size after deflation of sourceLen bytes. It must be called after deflateInit() or @@ -772,9 +773,9 @@ ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, than Z_FINISH or Z_NO_FLUSH are used. */ -ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm, - unsigned *pending, - int *bits)); +ZEXTERN int ZEXPORT deflatePending(z_streamp strm, + unsigned *pending, + int *bits); /* deflatePending() returns the number of bytes and bits of output that have been generated, but not yet provided in the available output. The bytes not @@ -787,9 +788,9 @@ ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm, stream state was inconsistent. */ -ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, - int bits, - int value)); +ZEXTERN int ZEXPORT deflatePrime(z_streamp strm, + int bits, + int value); /* deflatePrime() inserts bits in the deflate output stream. The intent is that this function is used to start off the deflate output with the bits @@ -804,8 +805,8 @@ ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, source stream state was inconsistent. */ -ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, - gz_headerp head)); +ZEXTERN int ZEXPORT deflateSetHeader(z_streamp strm, + gz_headerp head); /* deflateSetHeader() provides gzip header information for when a gzip stream is requested by deflateInit2(). deflateSetHeader() may be called @@ -821,16 +822,17 @@ ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, gzip file" and give up. If deflateSetHeader is not used, the default gzip header has text false, - the time set to zero, and os set to 255, with no extra, name, or comment - fields. The gzip header is returned to the default state by deflateReset(). + the time set to zero, and os set to the current operating system, with no + extra, name, or comment fields. The gzip header is returned to the default + state by deflateReset(). deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent. */ /* -ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, - int windowBits)); +ZEXTERN int ZEXPORT inflateInit2(z_streamp strm, + int windowBits); This is another version of inflateInit with an extra parameter. The fields next_in, avail_in, zalloc, zfree and opaque must be initialized @@ -883,9 +885,9 @@ ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, deferred until inflate() is called. */ -ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); +ZEXTERN int ZEXPORT inflateSetDictionary(z_streamp strm, + const Bytef *dictionary, + uInt dictLength); /* Initializes the decompression dictionary from the given uncompressed byte sequence. This function must be called immediately after a call of inflate, @@ -906,9 +908,9 @@ ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, inflate(). */ -ZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm, - Bytef *dictionary, - uInt *dictLength)); +ZEXTERN int ZEXPORT inflateGetDictionary(z_streamp strm, + Bytef *dictionary, + uInt *dictLength); /* Returns the sliding dictionary being maintained by inflate. dictLength is set to the number of bytes in the dictionary, and that many bytes are copied @@ -921,7 +923,7 @@ ZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm, stream state is inconsistent. */ -ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); +ZEXTERN int ZEXPORT inflateSync(z_streamp strm); /* Skips invalid compressed data until a possible full flush point (see above for the description of deflate with Z_FULL_FLUSH) can be found, or until all @@ -940,8 +942,8 @@ ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); input each time, until success or end of the input data. */ -ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, - z_streamp source)); +ZEXTERN int ZEXPORT inflateCopy(z_streamp dest, + z_streamp source); /* Sets the destination stream as a complete copy of the source stream. @@ -956,18 +958,19 @@ ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, destination. */ -ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); +ZEXTERN int ZEXPORT inflateReset(z_streamp strm); /* This function is equivalent to inflateEnd followed by inflateInit, but does not free and reallocate the internal decompression state. The stream will keep attributes that may have been set by inflateInit2. + total_in, total_out, adler, and msg are initialized. inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent (such as zalloc or state being Z_NULL). */ -ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, - int windowBits)); +ZEXTERN int ZEXPORT inflateReset2(z_streamp strm, + int windowBits); /* This function is the same as inflateReset, but it also permits changing the wrap and window size requests. The windowBits parameter is interpreted @@ -980,9 +983,9 @@ ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, the windowBits parameter is invalid. */ -ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, - int bits, - int value)); +ZEXTERN int ZEXPORT inflatePrime(z_streamp strm, + int bits, + int value); /* This function inserts bits in the inflate input stream. The intent is that this function is used to start inflating at a bit position in the @@ -1001,7 +1004,7 @@ ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, stream state was inconsistent. */ -ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); +ZEXTERN long ZEXPORT inflateMark(z_streamp strm); /* This function returns two values, one in the lower 16 bits of the return value, and the other in the remaining upper bits, obtained by shifting the @@ -1029,8 +1032,8 @@ ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); source stream state was inconsistent. */ -ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, - gz_headerp head)); +ZEXTERN int ZEXPORT inflateGetHeader(z_streamp strm, + gz_headerp head); /* inflateGetHeader() requests that gzip header information be stored in the provided gz_header structure. inflateGetHeader() may be called after @@ -1070,8 +1073,8 @@ ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, */ /* -ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, - unsigned char FAR *window)); +ZEXTERN int ZEXPORT inflateBackInit(z_streamp strm, int windowBits, + unsigned char FAR *window); Initialize the internal stream state for decompression using inflateBack() calls. The fields zalloc, zfree and opaque in strm must be initialized @@ -1091,13 +1094,13 @@ ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, the version of the header file. */ -typedef unsigned (*in_func) OF((void FAR *, - z_const unsigned char FAR * FAR *)); -typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); +typedef unsigned (*in_func)(void FAR *, + z_const unsigned char FAR * FAR *); +typedef int (*out_func)(void FAR *, unsigned char FAR *, unsigned); -ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, - in_func in, void FAR *in_desc, - out_func out, void FAR *out_desc)); +ZEXTERN int ZEXPORT inflateBack(z_streamp strm, + in_func in, void FAR *in_desc, + out_func out, void FAR *out_desc); /* inflateBack() does a raw inflate with a single call using a call-back interface for input and output. This is potentially more efficient than @@ -1165,7 +1168,7 @@ ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, cannot return Z_OK. */ -ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); +ZEXTERN int ZEXPORT inflateBackEnd(z_streamp strm); /* All memory allocated by inflateBackInit() is freed. @@ -1173,7 +1176,7 @@ ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); state was inconsistent. */ -ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); +ZEXTERN uLong ZEXPORT zlibCompileFlags(void); /* Return flags indicating compile-time options. Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: @@ -1226,8 +1229,8 @@ ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); you need special options. */ -ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); +ZEXTERN int ZEXPORT compress(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen); /* Compresses the source buffer into the destination buffer. sourceLen is the byte length of the source buffer. Upon entry, destLen is the total size @@ -1241,9 +1244,9 @@ ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, buffer. */ -ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen, - int level)); +ZEXTERN int ZEXPORT compress2(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen, + int level); /* Compresses the source buffer into the destination buffer. The level parameter has the same meaning as in deflateInit. sourceLen is the byte @@ -1257,15 +1260,15 @@ ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, Z_STREAM_ERROR if the level parameter is invalid. */ -ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); +ZEXTERN uLong ZEXPORT compressBound(uLong sourceLen); /* compressBound() returns an upper bound on the compressed size after compress() or compress2() on sourceLen bytes. It would be used before a compress() or compress2() call to allocate the destination buffer. */ -ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); +ZEXTERN int ZEXPORT uncompress(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen); /* Decompresses the source buffer into the destination buffer. sourceLen is the byte length of the source buffer. Upon entry, destLen is the total size @@ -1282,8 +1285,8 @@ ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, buffer with the uncompressed data up to that point. */ -ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong *sourceLen)); +ZEXTERN int ZEXPORT uncompress2(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong *sourceLen); /* Same as uncompress, except that sourceLen is a pointer, where the length of the source is *sourceLen. On return, *sourceLen is the number of @@ -1302,7 +1305,7 @@ ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen, typedef struct gzFile_s *gzFile; /* semi-opaque gzip file descriptor */ /* -ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); +ZEXTERN gzFile ZEXPORT gzopen(const char *path, const char *mode); Open the gzip (.gz) file at path for reading and decompressing, or compressing and writing. The mode parameter is as in fopen ("rb" or "wb") @@ -1339,7 +1342,7 @@ ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); file could not be opened. */ -ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); +ZEXTERN gzFile ZEXPORT gzdopen(int fd, const char *mode); /* Associate a gzFile with the file descriptor fd. File descriptors are obtained from calls like open, dup, creat, pipe or fileno (if the file has @@ -1362,7 +1365,7 @@ ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); will not detect if fd is invalid (unless fd is -1). */ -ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); +ZEXTERN int ZEXPORT gzbuffer(gzFile file, unsigned size); /* Set the internal buffer size used by this library's functions for file to size. The default buffer size is 8192 bytes. This function must be called @@ -1378,7 +1381,7 @@ ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); too late. */ -ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); +ZEXTERN int ZEXPORT gzsetparams(gzFile file, int level, int strategy); /* Dynamically update the compression level and strategy for file. See the description of deflateInit2 for the meaning of these parameters. Previously @@ -1389,7 +1392,7 @@ ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); or Z_MEM_ERROR if there is a memory allocation error. */ -ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); +ZEXTERN int ZEXPORT gzread(gzFile file, voidp buf, unsigned len); /* Read and decompress up to len uncompressed bytes from file into buf. If the input file is not in gzip format, gzread copies the given number of @@ -1419,8 +1422,8 @@ ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); Z_STREAM_ERROR. */ -ZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems, - gzFile file)); +ZEXTERN z_size_t ZEXPORT gzfread(voidp buf, z_size_t size, z_size_t nitems, + gzFile file); /* Read and decompress up to nitems items of size size from file into buf, otherwise operating as gzread() does. This duplicates the interface of @@ -1445,14 +1448,14 @@ ZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems, file, resetting and retrying on end-of-file, when size is not 1. */ -ZEXTERN int ZEXPORT gzwrite OF((gzFile file, voidpc buf, unsigned len)); +ZEXTERN int ZEXPORT gzwrite(gzFile file, voidpc buf, unsigned len); /* Compress and write the len uncompressed bytes at buf to file. gzwrite returns the number of uncompressed bytes written or 0 in case of error. */ -ZEXTERN z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size, - z_size_t nitems, gzFile file)); +ZEXTERN z_size_t ZEXPORT gzfwrite(voidpc buf, z_size_t size, + z_size_t nitems, gzFile file); /* Compress and write nitems items of size size from buf to file, duplicating the interface of stdio's fwrite(), with size_t request and return types. If @@ -1465,7 +1468,7 @@ ZEXTERN z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size, is returned, and the error state is set to Z_STREAM_ERROR. */ -ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...)); +ZEXTERN int ZEXPORTVA gzprintf(gzFile file, const char *format, ...); /* Convert, format, compress, and write the arguments (...) to file under control of the string format, as in fprintf. gzprintf returns the number of @@ -1480,7 +1483,7 @@ ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...)); This can be determined using zlibCompileFlags(). */ -ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); +ZEXTERN int ZEXPORT gzputs(gzFile file, const char *s); /* Compress and write the given null-terminated string s to file, excluding the terminating null character. @@ -1488,7 +1491,7 @@ ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); gzputs returns the number of characters written, or -1 in case of error. */ -ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); +ZEXTERN char * ZEXPORT gzgets(gzFile file, char *buf, int len); /* Read and decompress bytes from file into buf, until len-1 characters are read, or until a newline character is read and transferred to buf, or an @@ -1502,13 +1505,13 @@ ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); buf are indeterminate. */ -ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); +ZEXTERN int ZEXPORT gzputc(gzFile file, int c); /* Compress and write c, converted to an unsigned char, into file. gzputc returns the value that was written, or -1 in case of error. */ -ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); +ZEXTERN int ZEXPORT gzgetc(gzFile file); /* Read and decompress one byte from file. gzgetc returns this byte or -1 in case of end of file or error. This is implemented as a macro for speed. @@ -1517,7 +1520,7 @@ ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); points to has been clobbered or not. */ -ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); +ZEXTERN int ZEXPORT gzungetc(int c, gzFile file); /* Push c back onto the stream for file to be read as the first character on the next read. At least one character of push-back is always allowed. @@ -1529,7 +1532,7 @@ ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); gzseek() or gzrewind(). */ -ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); +ZEXTERN int ZEXPORT gzflush(gzFile file, int flush); /* Flush all pending output to file. The parameter flush is as in the deflate() function. The return value is the zlib error number (see function @@ -1545,8 +1548,8 @@ ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); */ /* -ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, - z_off_t offset, int whence)); +ZEXTERN z_off_t ZEXPORT gzseek(gzFile file, + z_off_t offset, int whence); Set the starting position to offset relative to whence for the next gzread or gzwrite on file. The offset represents a number of bytes in the @@ -1564,7 +1567,7 @@ ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, would be before the current position. */ -ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); +ZEXTERN int ZEXPORT gzrewind(gzFile file); /* Rewind file. This function is supported only for reading. @@ -1572,7 +1575,7 @@ ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); */ /* -ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); +ZEXTERN z_off_t ZEXPORT gztell(gzFile file); Return the starting position for the next gzread or gzwrite on file. This position represents a number of bytes in the uncompressed data stream, @@ -1583,7 +1586,7 @@ ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); */ /* -ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); +ZEXTERN z_off_t ZEXPORT gzoffset(gzFile file); Return the current compressed (actual) read or write offset of file. This offset includes the count of bytes that precede the gzip stream, for example @@ -1592,7 +1595,7 @@ ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); be used for a progress indicator. On error, gzoffset() returns -1. */ -ZEXTERN int ZEXPORT gzeof OF((gzFile file)); +ZEXTERN int ZEXPORT gzeof(gzFile file); /* Return true (1) if the end-of-file indicator for file has been set while reading, false (0) otherwise. Note that the end-of-file indicator is set @@ -1607,7 +1610,7 @@ ZEXTERN int ZEXPORT gzeof OF((gzFile file)); has grown since the previous end of file was detected. */ -ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); +ZEXTERN int ZEXPORT gzdirect(gzFile file); /* Return true (1) if file is being copied directly while reading, or false (0) if file is a gzip stream being decompressed. @@ -1628,7 +1631,7 @@ ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); gzip file reading and decompression, which may not be desired.) */ -ZEXTERN int ZEXPORT gzclose OF((gzFile file)); +ZEXTERN int ZEXPORT gzclose(gzFile file); /* Flush all pending output for file, if necessary, close file and deallocate the (de)compression state. Note that once file is closed, you @@ -1641,8 +1644,8 @@ ZEXTERN int ZEXPORT gzclose OF((gzFile file)); last read ended in the middle of a gzip stream, or Z_OK on success. */ -ZEXTERN int ZEXPORT gzclose_r OF((gzFile file)); -ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); +ZEXTERN int ZEXPORT gzclose_r(gzFile file); +ZEXTERN int ZEXPORT gzclose_w(gzFile file); /* Same as gzclose(), but gzclose_r() is only for use when reading, and gzclose_w() is only for use when writing or appending. The advantage to @@ -1653,7 +1656,7 @@ ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); zlib library. */ -ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); +ZEXTERN const char * ZEXPORT gzerror(gzFile file, int *errnum); /* Return the error message for the last error which occurred on file. errnum is set to zlib error number. If an error occurred in the file system @@ -1669,7 +1672,7 @@ ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); functions above that do not distinguish those cases in their return values. */ -ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); +ZEXTERN void ZEXPORT gzclearerr(gzFile file); /* Clear the error and end-of-file flags for file. This is analogous to the clearerr() function in stdio. This is useful for continuing to read a gzip @@ -1686,7 +1689,7 @@ ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); library. */ -ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); +ZEXTERN uLong ZEXPORT adler32(uLong adler, const Bytef *buf, uInt len); /* Update a running Adler-32 checksum with the bytes buf[0..len-1] and return the updated checksum. An Adler-32 value is in the range of a 32-bit @@ -1706,15 +1709,15 @@ ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); if (adler != original_adler) error(); */ -ZEXTERN uLong ZEXPORT adler32_z OF((uLong adler, const Bytef *buf, - z_size_t len)); +ZEXTERN uLong ZEXPORT adler32_z(uLong adler, const Bytef *buf, + z_size_t len); /* Same as adler32(), but with a size_t length. */ /* -ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, - z_off_t len2)); +ZEXTERN uLong ZEXPORT adler32_combine(uLong adler1, uLong adler2, + z_off_t len2); Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for @@ -1724,7 +1727,7 @@ ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, negative, the result has no meaning or utility. */ -ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); +ZEXTERN uLong ZEXPORT crc32(uLong crc, const Bytef *buf, uInt len); /* Update a running CRC-32 with the bytes buf[0..len-1] and return the updated CRC-32. A CRC-32 value is in the range of a 32-bit unsigned integer. @@ -1742,14 +1745,14 @@ ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); if (crc != original_crc) error(); */ -ZEXTERN uLong ZEXPORT crc32_z OF((uLong crc, const Bytef *buf, - z_size_t len)); +ZEXTERN uLong ZEXPORT crc32_z(uLong crc, const Bytef *buf, + z_size_t len); /* Same as crc32(), but with a size_t length. */ /* -ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); +ZEXTERN uLong ZEXPORT crc32_combine(uLong crc1, uLong crc2, z_off_t len2); Combine two CRC-32 check values into one. For two sequences of bytes, seq1 and seq2 with lengths len1 and len2, CRC-32 check values were @@ -1759,13 +1762,13 @@ ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); */ /* -ZEXTERN uLong ZEXPORT crc32_combine_gen OF((z_off_t len2)); +ZEXTERN uLong ZEXPORT crc32_combine_gen(z_off_t len2); Return the operator corresponding to length len2, to be used with crc32_combine_op(). */ -ZEXTERN uLong ZEXPORT crc32_combine_op OF((uLong crc1, uLong crc2, uLong op)); +ZEXTERN uLong ZEXPORT crc32_combine_op(uLong crc1, uLong crc2, uLong op); /* Give the same result as crc32_combine(), using op in place of len2. op is is generated from len2 by crc32_combine_gen(). This will be faster than @@ -1778,20 +1781,20 @@ ZEXTERN uLong ZEXPORT crc32_combine_op OF((uLong crc1, uLong crc2, uLong op)); /* deflateInit and inflateInit are macros to allow checking the zlib version * and the compiler's view of z_stream: */ -ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, - int windowBits, int memLevel, - int strategy, const char *version, - int stream_size)); -ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, - unsigned char FAR *window, - const char *version, - int stream_size)); +ZEXTERN int ZEXPORT deflateInit_(z_streamp strm, int level, + const char *version, int stream_size); +ZEXTERN int ZEXPORT inflateInit_(z_streamp strm, + const char *version, int stream_size); +ZEXTERN int ZEXPORT deflateInit2_(z_streamp strm, int level, int method, + int windowBits, int memLevel, + int strategy, const char *version, + int stream_size); +ZEXTERN int ZEXPORT inflateInit2_(z_streamp strm, int windowBits, + const char *version, int stream_size); +ZEXTERN int ZEXPORT inflateBackInit_(z_streamp strm, int windowBits, + unsigned char FAR *window, + const char *version, + int stream_size); #ifdef Z_PREFIX_SET # define z_deflateInit(strm, level) \ deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) @@ -1836,7 +1839,7 @@ struct gzFile_s { unsigned char *next; z_off64_t pos; }; -ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ +ZEXTERN int ZEXPORT gzgetc_(gzFile file); /* backward compatibility */ #ifdef Z_PREFIX_SET # undef z_gzgetc # define z_gzgetc(g) \ @@ -1853,13 +1856,13 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ * without large file support, _LFS64_LARGEFILE must also be true */ #ifdef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); - ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t)); - ZEXTERN uLong ZEXPORT crc32_combine_gen64 OF((z_off64_t)); + ZEXTERN gzFile ZEXPORT gzopen64(const char *, const char *); + ZEXTERN z_off64_t ZEXPORT gzseek64(gzFile, z_off64_t, int); + ZEXTERN z_off64_t ZEXPORT gztell64(gzFile); + ZEXTERN z_off64_t ZEXPORT gzoffset64(gzFile); + ZEXTERN uLong ZEXPORT adler32_combine64(uLong, uLong, z_off64_t); + ZEXTERN uLong ZEXPORT crc32_combine64(uLong, uLong, z_off64_t); + ZEXTERN uLong ZEXPORT crc32_combine_gen64(z_off64_t); #endif #if !defined(ZLIB_INTERNAL) && defined(Z_WANT64) @@ -1881,50 +1884,50 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ # define crc32_combine_gen crc32_combine_gen64 # endif # ifndef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine_gen64 OF((z_off_t)); + ZEXTERN gzFile ZEXPORT gzopen64(const char *, const char *); + ZEXTERN z_off_t ZEXPORT gzseek64(gzFile, z_off_t, int); + ZEXTERN z_off_t ZEXPORT gztell64(gzFile); + ZEXTERN z_off_t ZEXPORT gzoffset64(gzFile); + ZEXTERN uLong ZEXPORT adler32_combine64(uLong, uLong, z_off_t); + ZEXTERN uLong ZEXPORT crc32_combine64(uLong, uLong, z_off_t); + ZEXTERN uLong ZEXPORT crc32_combine_gen64(z_off_t); # endif #else - ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine_gen OF((z_off_t)); + ZEXTERN gzFile ZEXPORT gzopen(const char *, const char *); + ZEXTERN z_off_t ZEXPORT gzseek(gzFile, z_off_t, int); + ZEXTERN z_off_t ZEXPORT gztell(gzFile); + ZEXTERN z_off_t ZEXPORT gzoffset(gzFile); + ZEXTERN uLong ZEXPORT adler32_combine(uLong, uLong, z_off_t); + ZEXTERN uLong ZEXPORT crc32_combine(uLong, uLong, z_off_t); + ZEXTERN uLong ZEXPORT crc32_combine_gen(z_off_t); #endif #else /* Z_SOLO */ - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine_gen OF((z_off_t)); + ZEXTERN uLong ZEXPORT adler32_combine(uLong, uLong, z_off_t); + ZEXTERN uLong ZEXPORT crc32_combine(uLong, uLong, z_off_t); + ZEXTERN uLong ZEXPORT crc32_combine_gen(z_off_t); #endif /* !Z_SOLO */ /* undocumented functions */ -ZEXTERN const char * ZEXPORT zError OF((int)); -ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); -ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table OF((void)); -ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int)); -ZEXTERN int ZEXPORT inflateValidate OF((z_streamp, int)); -ZEXTERN unsigned long ZEXPORT inflateCodesUsed OF((z_streamp)); -ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp)); -ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp)); +ZEXTERN const char * ZEXPORT zError(int); +ZEXTERN int ZEXPORT inflateSyncPoint(z_streamp); +ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table(void); +ZEXTERN int ZEXPORT inflateUndermine(z_streamp, int); +ZEXTERN int ZEXPORT inflateValidate(z_streamp, int); +ZEXTERN unsigned long ZEXPORT inflateCodesUsed(z_streamp); +ZEXTERN int ZEXPORT inflateResetKeep(z_streamp); +ZEXTERN int ZEXPORT deflateResetKeep(z_streamp); #if defined(_WIN32) && !defined(Z_SOLO) -ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path, - const char *mode)); +ZEXTERN gzFile ZEXPORT gzopen_w(const wchar_t *path, + const char *mode); #endif #if defined(STDC) || defined(Z_HAVE_STDARG_H) # ifndef Z_SOLO -ZEXTERN int ZEXPORTVA gzvprintf Z_ARG((gzFile file, - const char *format, - va_list va)); +ZEXTERN int ZEXPORTVA gzvprintf(gzFile file, + const char *format, + va_list va); # endif #endif diff --git a/Foundation/src/adler32.c b/Foundation/src/adler32.c index d0be4380a..04b81d29b 100644 --- a/Foundation/src/adler32.c +++ b/Foundation/src/adler32.c @@ -7,8 +7,6 @@ #include "zutil.h" -local uLong adler32_combine_ OF((uLong adler1, uLong adler2, z_off64_t len2)); - #define BASE 65521U /* largest prime smaller than 65536 */ #define NMAX 5552 /* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */ @@ -60,11 +58,7 @@ local uLong adler32_combine_ OF((uLong adler1, uLong adler2, z_off64_t len2)); #endif /* ========================================================================= */ -uLong ZEXPORT adler32_z(adler, buf, len) - uLong adler; - const Bytef *buf; - z_size_t len; -{ +uLong ZEXPORT adler32_z(uLong adler, const Bytef *buf, z_size_t len) { unsigned long sum2; unsigned n; @@ -131,20 +125,12 @@ uLong ZEXPORT adler32_z(adler, buf, len) } /* ========================================================================= */ -uLong ZEXPORT adler32(adler, buf, len) - uLong adler; - const Bytef *buf; - uInt len; -{ +uLong ZEXPORT adler32(uLong adler, const Bytef *buf, uInt len) { return adler32_z(adler, buf, len); } /* ========================================================================= */ -local uLong adler32_combine_(adler1, adler2, len2) - uLong adler1; - uLong adler2; - z_off64_t len2; -{ +local uLong adler32_combine_(uLong adler1, uLong adler2, z_off64_t len2) { unsigned long sum1; unsigned long sum2; unsigned rem; @@ -169,18 +155,10 @@ local uLong adler32_combine_(adler1, adler2, len2) } /* ========================================================================= */ -uLong ZEXPORT adler32_combine(adler1, adler2, len2) - uLong adler1; - uLong adler2; - z_off_t len2; -{ +uLong ZEXPORT adler32_combine(uLong adler1, uLong adler2, z_off_t len2) { return adler32_combine_(adler1, adler2, len2); } -uLong ZEXPORT adler32_combine64(adler1, adler2, len2) - uLong adler1; - uLong adler2; - z_off64_t len2; -{ +uLong ZEXPORT adler32_combine64(uLong adler1, uLong adler2, z_off64_t len2) { return adler32_combine_(adler1, adler2, len2); } diff --git a/Foundation/src/compress.c b/Foundation/src/compress.c index 2ad5326c1..f43bacf7a 100644 --- a/Foundation/src/compress.c +++ b/Foundation/src/compress.c @@ -19,13 +19,8 @@ memory, Z_BUF_ERROR if there was not enough room in the output buffer, Z_STREAM_ERROR if the level parameter is invalid. */ -int ZEXPORT compress2(dest, destLen, source, sourceLen, level) - Bytef *dest; - uLongf *destLen; - const Bytef *source; - uLong sourceLen; - int level; -{ +int ZEXPORT compress2(Bytef *dest, uLongf *destLen, const Bytef *source, + uLong sourceLen, int level) { z_stream stream; int err; const uInt max = (uInt)-1; @@ -65,12 +60,8 @@ int ZEXPORT compress2(dest, destLen, source, sourceLen, level) /* =========================================================================== */ -int ZEXPORT compress(dest, destLen, source, sourceLen) - Bytef *dest; - uLongf *destLen; - const Bytef *source; - uLong sourceLen; -{ +int ZEXPORT compress(Bytef *dest, uLongf *destLen, const Bytef *source, + uLong sourceLen) { return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION); } @@ -78,9 +69,7 @@ int ZEXPORT compress(dest, destLen, source, sourceLen) If the default memLevel or windowBits for deflateInit() is changed, then this function needs to be updated. */ -uLong ZEXPORT compressBound(sourceLen) - uLong sourceLen; -{ +uLong ZEXPORT compressBound(uLong sourceLen) { return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) + (sourceLen >> 25) + 13; } diff --git a/Foundation/src/crc32.c b/Foundation/src/crc32.c index f8357b083..6c38f5c04 100644 --- a/Foundation/src/crc32.c +++ b/Foundation/src/crc32.c @@ -103,19 +103,6 @@ # define ARMCRC32 #endif -/* Local functions. */ -local z_crc_t multmodp OF((z_crc_t a, z_crc_t b)); -local z_crc_t x2nmodp OF((z_off64_t n, unsigned k)); - -#if defined(W) && (!defined(ARMCRC32) || defined(DYNAMIC_CRC_TABLE)) - local z_word_t byte_swap OF((z_word_t word)); -#endif - -#if defined(W) && !defined(ARMCRC32) - local z_crc_t crc_word OF((z_word_t data)); - local z_word_t crc_word_big OF((z_word_t data)); -#endif - #if defined(W) && (!defined(ARMCRC32) || defined(DYNAMIC_CRC_TABLE)) /* Swap the bytes in a z_word_t to convert between little and big endian. Any @@ -123,9 +110,7 @@ local z_crc_t x2nmodp OF((z_off64_t n, unsigned k)); instruction, if one is available. This assumes that word_t is either 32 bits or 64 bits. */ -local z_word_t byte_swap(word) - z_word_t word; -{ +local z_word_t byte_swap(z_word_t word) { # if W == 8 return (word & 0xff00000000000000) >> 56 | @@ -146,24 +131,77 @@ local z_word_t byte_swap(word) } #endif +#ifdef DYNAMIC_CRC_TABLE +/* ========================================================================= + * Table of powers of x for combining CRC-32s, filled in by make_crc_table() + * below. + */ + local z_crc_t FAR x2n_table[32]; +#else +/* ========================================================================= + * Tables for byte-wise and braided CRC-32 calculations, and a table of powers + * of x for combining CRC-32s, all made by make_crc_table(). + */ +# include "crc32.h" +#endif + /* CRC polynomial. */ #define POLY 0xedb88320 /* p(x) reflected, with x^32 implied */ -#ifdef DYNAMIC_CRC_TABLE +/* + Return a(x) multiplied by b(x) modulo p(x), where p(x) is the CRC polynomial, + reflected. For speed, this requires that a not be zero. + */ +local z_crc_t multmodp(z_crc_t a, z_crc_t b) { + z_crc_t m, p; + m = (z_crc_t)1 << 31; + p = 0; + for (;;) { + if (a & m) { + p ^= b; + if ((a & (m - 1)) == 0) + break; + } + m >>= 1; + b = b & 1 ? (b >> 1) ^ POLY : b >> 1; + } + return p; +} + +/* + Return x^(n * 2^k) modulo p(x). Requires that x2n_table[] has been + initialized. + */ +local z_crc_t x2nmodp(z_off64_t n, unsigned k) { + z_crc_t p; + + p = (z_crc_t)1 << 31; /* x^0 == 1 */ + while (n) { + if (n & 1) + p = multmodp(x2n_table[k & 31], p); + n >>= 1; + k++; + } + return p; +} + +#ifdef DYNAMIC_CRC_TABLE +/* ========================================================================= + * Build the tables for byte-wise and braided CRC-32 calculations, and a table + * of powers of x for combining CRC-32s. + */ local z_crc_t FAR crc_table[256]; -local z_crc_t FAR x2n_table[32]; -local void make_crc_table OF((void)); #ifdef W local z_word_t FAR crc_big_table[256]; local z_crc_t FAR crc_braid_table[W][256]; local z_word_t FAR crc_braid_big_table[W][256]; - local void braid OF((z_crc_t [][256], z_word_t [][256], int, int)); + local void braid(z_crc_t [][256], z_word_t [][256], int, int); #endif #ifdef MAKECRCH - local void write_table OF((FILE *, const z_crc_t FAR *, int)); - local void write_table32hi OF((FILE *, const z_word_t FAR *, int)); - local void write_table64 OF((FILE *, const z_word_t FAR *, int)); + local void write_table(FILE *, const z_crc_t FAR *, int); + local void write_table32hi(FILE *, const z_word_t FAR *, int); + local void write_table64(FILE *, const z_word_t FAR *, int); #endif /* MAKECRCH */ /* @@ -176,7 +214,6 @@ local void make_crc_table OF((void)); /* Definition of once functionality. */ typedef struct once_s once_t; -local void once OF((once_t *, void (*)(void))); /* Check for the availability of atomics. */ #if defined(__STDC__) && __STDC_VERSION__ >= 201112L && \ @@ -196,10 +233,7 @@ struct once_s { invoke once() at the same time. The state must be a once_t initialized with ONCE_INIT. */ -local void once(state, init) - once_t *state; - void (*init)(void); -{ +local void once(once_t *state, void (*init)(void)) { if (!atomic_load(&state->done)) { if (atomic_flag_test_and_set(&state->begun)) while (!atomic_load(&state->done)) @@ -222,10 +256,7 @@ struct once_s { /* Test and set. Alas, not atomic, but tries to minimize the period of vulnerability. */ -local int test_and_set OF((int volatile *)); -local int test_and_set(flag) - int volatile *flag; -{ +local int test_and_set(int volatile *flag) { int was; was = *flag; @@ -234,10 +265,7 @@ local int test_and_set(flag) } /* Run the provided init() function once. This is not thread-safe. */ -local void once(state, init) - once_t *state; - void (*init)(void); -{ +local void once(once_t *state, void (*init)(void)) { if (!state->done) { if (test_and_set(&state->begun)) while (!state->done) @@ -279,8 +307,7 @@ local once_t made = ONCE_INIT; combinations of CRC register values and incoming bytes. */ -local void make_crc_table() -{ +local void make_crc_table(void) { unsigned i, j, n; z_crc_t p; @@ -447,11 +474,7 @@ local void make_crc_table() Write the 32-bit values in table[0..k-1] to out, five per line in hexadecimal separated by commas. */ -local void write_table(out, table, k) - FILE *out; - const z_crc_t FAR *table; - int k; -{ +local void write_table(FILE *out, const z_crc_t FAR *table, int k) { int n; for (n = 0; n < k; n++) @@ -464,11 +487,7 @@ local void write_table(out, table, k) Write the high 32-bits of each value in table[0..k-1] to out, five per line in hexadecimal separated by commas. */ -local void write_table32hi(out, table, k) -FILE *out; -const z_word_t FAR *table; -int k; -{ +local void write_table32hi(FILE *out, const z_word_t FAR *table, int k) { int n; for (n = 0; n < k; n++) @@ -484,11 +503,7 @@ int k; bits. If not, then the type cast and format string can be adjusted accordingly. */ -local void write_table64(out, table, k) - FILE *out; - const z_word_t FAR *table; - int k; -{ +local void write_table64(FILE *out, const z_word_t FAR *table, int k) { int n; for (n = 0; n < k; n++) @@ -498,8 +513,7 @@ local void write_table64(out, table, k) } /* Actually do the deed. */ -int main() -{ +int main(void) { make_crc_table(); return 0; } @@ -511,12 +525,7 @@ int main() Generate the little and big-endian braid tables for the given n and z_word_t size w. Each array must have room for w blocks of 256 elements. */ -local void braid(ltl, big, n, w) - z_crc_t ltl[][256]; - z_word_t big[][256]; - int n; - int w; -{ +local void braid(z_crc_t ltl[][256], z_word_t big[][256], int n, int w) { int k; z_crc_t i, p, q; for (k = 0; k < w; k++) { @@ -531,69 +540,13 @@ local void braid(ltl, big, n, w) } #endif -#else /* !DYNAMIC_CRC_TABLE */ -/* ======================================================================== - * Tables for byte-wise and braided CRC-32 calculations, and a table of powers - * of x for combining CRC-32s, all made by make_crc_table(). - */ -#include "crc32.h" #endif /* DYNAMIC_CRC_TABLE */ -/* ======================================================================== - * Routines used for CRC calculation. Some are also required for the table - * generation above. - */ - -/* - Return a(x) multiplied by b(x) modulo p(x), where p(x) is the CRC polynomial, - reflected. For speed, this requires that a not be zero. - */ -local z_crc_t multmodp(a, b) - z_crc_t a; - z_crc_t b; -{ - z_crc_t m, p; - - m = (z_crc_t)1 << 31; - p = 0; - for (;;) { - if (a & m) { - p ^= b; - if ((a & (m - 1)) == 0) - break; - } - m >>= 1; - b = b & 1 ? (b >> 1) ^ POLY : b >> 1; - } - return p; -} - -/* - Return x^(n * 2^k) modulo p(x). Requires that x2n_table[] has been - initialized. - */ -local z_crc_t x2nmodp(n, k) - z_off64_t n; - unsigned k; -{ - z_crc_t p; - - p = (z_crc_t)1 << 31; /* x^0 == 1 */ - while (n) { - if (n & 1) - p = multmodp(x2n_table[k & 31], p); - n >>= 1; - k++; - } - return p; -} - /* ========================================================================= * This function can be used by asm versions of crc32(), and to force the * generation of the CRC tables in a threaded application. */ -const z_crc_t FAR * ZEXPORT get_crc_table() -{ +const z_crc_t FAR * ZEXPORT get_crc_table(void) { #ifdef DYNAMIC_CRC_TABLE once(&made, make_crc_table); #endif /* DYNAMIC_CRC_TABLE */ @@ -619,11 +572,8 @@ const z_crc_t FAR * ZEXPORT get_crc_table() #define Z_BATCH_ZEROS 0xa10d3d0c /* computed from Z_BATCH = 3990 */ #define Z_BATCH_MIN 800 /* fewest words in a final batch */ -unsigned long ZEXPORT crc32_z(crc, buf, len) - unsigned long crc; - const unsigned char FAR *buf; - z_size_t len; -{ +unsigned long ZEXPORT crc32_z(unsigned long crc, const unsigned char FAR *buf, + z_size_t len) { z_crc_t val; z_word_t crc1, crc2; const z_word_t *word; @@ -723,18 +673,14 @@ unsigned long ZEXPORT crc32_z(crc, buf, len) least-significant byte of the word as the first byte of data, without any pre or post conditioning. This is used to combine the CRCs of each braid. */ -local z_crc_t crc_word(data) - z_word_t data; -{ +local z_crc_t crc_word(z_word_t data) { int k; for (k = 0; k < W; k++) data = (data >> 8) ^ crc_table[data & 0xff]; return (z_crc_t)data; } -local z_word_t crc_word_big(data) - z_word_t data; -{ +local z_word_t crc_word_big(z_word_t data) { int k; for (k = 0; k < W; k++) data = (data << 8) ^ @@ -745,11 +691,8 @@ local z_word_t crc_word_big(data) #endif /* ========================================================================= */ -unsigned long ZEXPORT crc32_z(crc, buf, len) - unsigned long crc; - const unsigned char FAR *buf; - z_size_t len; -{ +unsigned long ZEXPORT crc32_z(unsigned long crc, const unsigned char FAR *buf, + z_size_t len) { /* Return initial CRC, if requested. */ if (buf == Z_NULL) return 0; @@ -781,8 +724,8 @@ unsigned long ZEXPORT crc32_z(crc, buf, len) words = (z_word_t const *)buf; /* Do endian check at execution time instead of compile time, since ARM - processors can change the endianess at execution time. If the - compiler knows what the endianess will be, it can optimize out the + processors can change the endianness at execution time. If the + compiler knows what the endianness will be, it can optimize out the check and the unused branch. */ endian = 1; if (*(unsigned char *)&endian) { @@ -1069,20 +1012,13 @@ unsigned long ZEXPORT crc32_z(crc, buf, len) #endif /* ========================================================================= */ -unsigned long ZEXPORT crc32(crc, buf, len) - unsigned long crc; - const unsigned char FAR *buf; - uInt len; -{ +unsigned long ZEXPORT crc32(unsigned long crc, const unsigned char FAR *buf, + uInt len) { return crc32_z(crc, buf, len); } /* ========================================================================= */ -uLong ZEXPORT crc32_combine64(crc1, crc2, len2) - uLong crc1; - uLong crc2; - z_off64_t len2; -{ +uLong ZEXPORT crc32_combine64(uLong crc1, uLong crc2, z_off64_t len2) { #ifdef DYNAMIC_CRC_TABLE once(&made, make_crc_table); #endif /* DYNAMIC_CRC_TABLE */ @@ -1090,18 +1026,12 @@ uLong ZEXPORT crc32_combine64(crc1, crc2, len2) } /* ========================================================================= */ -uLong ZEXPORT crc32_combine(crc1, crc2, len2) - uLong crc1; - uLong crc2; - z_off_t len2; -{ +uLong ZEXPORT crc32_combine(uLong crc1, uLong crc2, z_off_t len2) { return crc32_combine64(crc1, crc2, (z_off64_t)len2); } /* ========================================================================= */ -uLong ZEXPORT crc32_combine_gen64(len2) - z_off64_t len2; -{ +uLong ZEXPORT crc32_combine_gen64(z_off64_t len2) { #ifdef DYNAMIC_CRC_TABLE once(&made, make_crc_table); #endif /* DYNAMIC_CRC_TABLE */ @@ -1109,17 +1039,11 @@ uLong ZEXPORT crc32_combine_gen64(len2) } /* ========================================================================= */ -uLong ZEXPORT crc32_combine_gen(len2) - z_off_t len2; -{ +uLong ZEXPORT crc32_combine_gen(z_off_t len2) { return crc32_combine_gen64((z_off64_t)len2); } /* ========================================================================= */ -uLong ZEXPORT crc32_combine_op(crc1, crc2, op) - uLong crc1; - uLong crc2; - uLong op; -{ +uLong ZEXPORT crc32_combine_op(uLong crc1, uLong crc2, uLong op) { return multmodp(op, crc1) ^ (crc2 & 0xffffffff); } diff --git a/Foundation/src/deflate.c b/Foundation/src/deflate.c index 4a689db35..bd0117519 100644 --- a/Foundation/src/deflate.c +++ b/Foundation/src/deflate.c @@ -1,5 +1,5 @@ /* deflate.c -- compress data using the deflation algorithm - * Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler + * Copyright (C) 1995-2023 Jean-loup Gailly and Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -52,7 +52,7 @@ #include "deflate.h" const char deflate_copyright[] = - " deflate 1.2.13 Copyright 1995-2022 Jean-loup Gailly and Mark Adler "; + " deflate 1.3 Copyright 1995-2023 Jean-loup Gailly and Mark Adler "; /* If you use the zlib library in a product, an acknowledgment is welcome in the documentation of your product. If for some reason you cannot @@ -60,9 +60,6 @@ const char deflate_copyright[] = copyright string in the executable of your product. */ -/* =========================================================================== - * Function prototypes. - */ typedef enum { need_more, /* block not completed, need more input or more output */ block_done, /* block flush performed */ @@ -70,29 +67,16 @@ typedef enum { finish_done /* finish done, accept no more input or output */ } block_state; -typedef block_state (*compress_func) OF((deflate_state *s, int flush)); +typedef block_state (*compress_func)(deflate_state *s, int flush); /* Compression function. Returns the block state after the call. */ -local int deflateStateCheck OF((z_streamp strm)); -local void slide_hash OF((deflate_state *s)); -local void fill_window OF((deflate_state *s)); -local block_state deflate_stored OF((deflate_state *s, int flush)); -local block_state deflate_fast OF((deflate_state *s, int flush)); +local block_state deflate_stored(deflate_state *s, int flush); +local block_state deflate_fast(deflate_state *s, int flush); #ifndef FASTEST -local block_state deflate_slow OF((deflate_state *s, int flush)); -#endif -local block_state deflate_rle OF((deflate_state *s, int flush)); -local block_state deflate_huff OF((deflate_state *s, int flush)); -local void lm_init OF((deflate_state *s)); -local void putShortMSB OF((deflate_state *s, uInt b)); -local void flush_pending OF((z_streamp strm)); -local unsigned read_buf OF((z_streamp strm, Bytef *buf, unsigned size)); -local uInt longest_match OF((deflate_state *s, IPos cur_match)); - -#ifdef ZLIB_DEBUG -local void check_match OF((deflate_state *s, IPos start, IPos match, - int length)); +local block_state deflate_slow(deflate_state *s, int flush); #endif +local block_state deflate_rle(deflate_state *s, int flush); +local block_state deflate_huff(deflate_state *s, int flush); /* =========================================================================== * Local data @@ -195,9 +179,12 @@ local const config configuration_table[10] = { * bit values at the expense of memory usage). We slide even when level == 0 to * keep the hash table consistent if we switch back to level > 0 later. */ -local void slide_hash(s) - deflate_state *s; -{ +#if defined(__has_feature) +# if __has_feature(memory_sanitizer) + __attribute__((no_sanitize("memory"))) +# endif +#endif +local void slide_hash(deflate_state *s) { unsigned n, m; Posf *p; uInt wsize = s->w_size; @@ -221,30 +208,177 @@ local void slide_hash(s) #endif } +/* =========================================================================== + * Read a new buffer from the current input stream, update the adler32 + * and total number of bytes read. All deflate() input goes through + * this function so some applications may wish to modify it to avoid + * allocating a large strm->next_in buffer and copying from it. + * (See also flush_pending()). + */ +local unsigned read_buf(z_streamp strm, Bytef *buf, unsigned size) { + unsigned len = strm->avail_in; + + if (len > size) len = size; + if (len == 0) return 0; + + strm->avail_in -= len; + + zmemcpy(buf, strm->next_in, len); + if (strm->state->wrap == 1) { + strm->adler = adler32(strm->adler, buf, len); + } +#ifdef GZIP + else if (strm->state->wrap == 2) { + strm->adler = crc32(strm->adler, buf, len); + } +#endif + strm->next_in += len; + strm->total_in += len; + + return len; +} + +/* =========================================================================== + * Fill the window when the lookahead becomes insufficient. + * Updates strstart and lookahead. + * + * IN assertion: lookahead < MIN_LOOKAHEAD + * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD + * At least one byte has been read, or avail_in == 0; reads are + * performed for at least two bytes (required for the zip translate_eol + * option -- not supported here). + */ +local void fill_window(deflate_state *s) { + unsigned n; + unsigned more; /* Amount of free space at the end of the window. */ + uInt wsize = s->w_size; + + Assert(s->lookahead < MIN_LOOKAHEAD, "already enough lookahead"); + + do { + more = (unsigned)(s->window_size -(ulg)s->lookahead -(ulg)s->strstart); + + /* Deal with !@#$% 64K limit: */ + if (sizeof(int) <= 2) { + if (more == 0 && s->strstart == 0 && s->lookahead == 0) { + more = wsize; + + } else if (more == (unsigned)(-1)) { + /* Very unlikely, but possible on 16 bit machine if + * strstart == 0 && lookahead == 1 (input done a byte at time) + */ + more--; + } + } + + /* If the window is almost full and there is insufficient lookahead, + * move the upper half to the lower one to make room in the upper half. + */ + if (s->strstart >= wsize + MAX_DIST(s)) { + + zmemcpy(s->window, s->window + wsize, (unsigned)wsize - more); + s->match_start -= wsize; + s->strstart -= wsize; /* we now have strstart >= MAX_DIST */ + s->block_start -= (long) wsize; + if (s->insert > s->strstart) + s->insert = s->strstart; + slide_hash(s); + more += wsize; + } + if (s->strm->avail_in == 0) break; + + /* If there was no sliding: + * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 && + * more == window_size - lookahead - strstart + * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1) + * => more >= window_size - 2*WSIZE + 2 + * In the BIG_MEM or MMAP case (not yet supported), + * window_size == input_size + MIN_LOOKAHEAD && + * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD. + * Otherwise, window_size == 2*WSIZE so more >= 2. + * If there was sliding, more >= WSIZE. So in all cases, more >= 2. + */ + Assert(more >= 2, "more < 2"); + + n = read_buf(s->strm, s->window + s->strstart + s->lookahead, more); + s->lookahead += n; + + /* Initialize the hash value now that we have some input: */ + if (s->lookahead + s->insert >= MIN_MATCH) { + uInt str = s->strstart - s->insert; + s->ins_h = s->window[str]; + UPDATE_HASH(s, s->ins_h, s->window[str + 1]); +#if MIN_MATCH != 3 + Call UPDATE_HASH() MIN_MATCH-3 more times +#endif + while (s->insert) { + UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); +#ifndef FASTEST + s->prev[str & s->w_mask] = s->head[s->ins_h]; +#endif + s->head[s->ins_h] = (Pos)str; + str++; + s->insert--; + if (s->lookahead + s->insert < MIN_MATCH) + break; + } + } + /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage, + * but this is not important since only literal bytes will be emitted. + */ + + } while (s->lookahead < MIN_LOOKAHEAD && s->strm->avail_in != 0); + + /* If the WIN_INIT bytes after the end of the current data have never been + * written, then zero those bytes in order to avoid memory check reports of + * the use of uninitialized (or uninitialised as Julian writes) bytes by + * the longest match routines. Update the high water mark for the next + * time through here. WIN_INIT is set to MAX_MATCH since the longest match + * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead. + */ + if (s->high_water < s->window_size) { + ulg curr = s->strstart + (ulg)(s->lookahead); + ulg init; + + if (s->high_water < curr) { + /* Previous high water mark below current data -- zero WIN_INIT + * bytes or up to end of window, whichever is less. + */ + init = s->window_size - curr; + if (init > WIN_INIT) + init = WIN_INIT; + zmemzero(s->window + curr, (unsigned)init); + s->high_water = curr + init; + } + else if (s->high_water < (ulg)curr + WIN_INIT) { + /* High water mark at or above current data, but below current data + * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up + * to end of window, whichever is less. + */ + init = (ulg)curr + WIN_INIT - s->high_water; + if (init > s->window_size - s->high_water) + init = s->window_size - s->high_water; + zmemzero(s->window + s->high_water, (unsigned)init); + s->high_water += init; + } + } + + Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD, + "not enough room for search"); +} + /* ========================================================================= */ -int ZEXPORT deflateInit_(strm, level, version, stream_size) - z_streamp strm; - int level; - const char *version; - int stream_size; -{ +int ZEXPORT deflateInit_(z_streamp strm, int level, const char *version, + int stream_size) { return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY, version, stream_size); /* To do: ignore strm->next_in if we use it as window */ } /* ========================================================================= */ -int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy, - version, stream_size) - z_streamp strm; - int level; - int method; - int windowBits; - int memLevel; - int strategy; - const char *version; - int stream_size; -{ +int ZEXPORT deflateInit2_(z_streamp strm, int level, int method, + int windowBits, int memLevel, int strategy, + const char *version, int stream_size) { deflate_state *s; int wrap = 1; static const char my_version[] = ZLIB_VERSION; @@ -386,9 +520,7 @@ int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy, /* ========================================================================= * Check for a valid deflate stream state. Return 0 if ok, 1 if not. */ -local int deflateStateCheck(strm) - z_streamp strm; -{ +local int deflateStateCheck(z_streamp strm) { deflate_state *s; if (strm == Z_NULL || strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0) @@ -409,11 +541,8 @@ local int deflateStateCheck(strm) } /* ========================================================================= */ -int ZEXPORT deflateSetDictionary(strm, dictionary, dictLength) - z_streamp strm; - const Bytef *dictionary; - uInt dictLength; -{ +int ZEXPORT deflateSetDictionary(z_streamp strm, const Bytef *dictionary, + uInt dictLength) { deflate_state *s; uInt str, n; int wrap; @@ -478,11 +607,8 @@ int ZEXPORT deflateSetDictionary(strm, dictionary, dictLength) } /* ========================================================================= */ -int ZEXPORT deflateGetDictionary(strm, dictionary, dictLength) - z_streamp strm; - Bytef *dictionary; - uInt *dictLength; -{ +int ZEXPORT deflateGetDictionary(z_streamp strm, Bytef *dictionary, + uInt *dictLength) { deflate_state *s; uInt len; @@ -500,9 +626,7 @@ int ZEXPORT deflateGetDictionary(strm, dictionary, dictLength) } /* ========================================================================= */ -int ZEXPORT deflateResetKeep(strm) - z_streamp strm; -{ +int ZEXPORT deflateResetKeep(z_streamp strm) { deflate_state *s; if (deflateStateCheck(strm)) { @@ -537,10 +661,32 @@ int ZEXPORT deflateResetKeep(strm) return Z_OK; } +/* =========================================================================== + * Initialize the "longest match" routines for a new zlib stream + */ +local void lm_init(deflate_state *s) { + s->window_size = (ulg)2L*s->w_size; + + CLEAR_HASH(s); + + /* Set the default configuration parameters: + */ + s->max_lazy_match = configuration_table[s->level].max_lazy; + s->good_match = configuration_table[s->level].good_length; + s->nice_match = configuration_table[s->level].nice_length; + s->max_chain_length = configuration_table[s->level].max_chain; + + s->strstart = 0; + s->block_start = 0L; + s->lookahead = 0; + s->insert = 0; + s->match_length = s->prev_length = MIN_MATCH-1; + s->match_available = 0; + s->ins_h = 0; +} + /* ========================================================================= */ -int ZEXPORT deflateReset(strm) - z_streamp strm; -{ +int ZEXPORT deflateReset(z_streamp strm) { int ret; ret = deflateResetKeep(strm); @@ -550,10 +696,7 @@ int ZEXPORT deflateReset(strm) } /* ========================================================================= */ -int ZEXPORT deflateSetHeader(strm, head) - z_streamp strm; - gz_headerp head; -{ +int ZEXPORT deflateSetHeader(z_streamp strm, gz_headerp head) { if (deflateStateCheck(strm) || strm->state->wrap != 2) return Z_STREAM_ERROR; strm->state->gzhead = head; @@ -561,11 +704,7 @@ int ZEXPORT deflateSetHeader(strm, head) } /* ========================================================================= */ -int ZEXPORT deflatePending(strm, pending, bits) - unsigned *pending; - int *bits; - z_streamp strm; -{ +int ZEXPORT deflatePending(z_streamp strm, unsigned *pending, int *bits) { if (deflateStateCheck(strm)) return Z_STREAM_ERROR; if (pending != Z_NULL) *pending = strm->state->pending; @@ -575,11 +714,7 @@ int ZEXPORT deflatePending(strm, pending, bits) } /* ========================================================================= */ -int ZEXPORT deflatePrime(strm, bits, value) - z_streamp strm; - int bits; - int value; -{ +int ZEXPORT deflatePrime(z_streamp strm, int bits, int value) { deflate_state *s; int put; @@ -602,11 +737,7 @@ int ZEXPORT deflatePrime(strm, bits, value) } /* ========================================================================= */ -int ZEXPORT deflateParams(strm, level, strategy) - z_streamp strm; - int level; - int strategy; -{ +int ZEXPORT deflateParams(z_streamp strm, int level, int strategy) { deflate_state *s; compress_func func; @@ -651,13 +782,8 @@ int ZEXPORT deflateParams(strm, level, strategy) } /* ========================================================================= */ -int ZEXPORT deflateTune(strm, good_length, max_lazy, nice_length, max_chain) - z_streamp strm; - int good_length; - int max_lazy; - int nice_length; - int max_chain; -{ +int ZEXPORT deflateTune(z_streamp strm, int good_length, int max_lazy, + int nice_length, int max_chain) { deflate_state *s; if (deflateStateCheck(strm)) return Z_STREAM_ERROR; @@ -693,10 +819,7 @@ int ZEXPORT deflateTune(strm, good_length, max_lazy, nice_length, max_chain) * * Shifts are used to approximate divisions, for speed. */ -uLong ZEXPORT deflateBound(strm, sourceLen) - z_streamp strm; - uLong sourceLen; -{ +uLong ZEXPORT deflateBound(z_streamp strm, uLong sourceLen) { deflate_state *s; uLong fixedlen, storelen, wraplen; @@ -752,7 +875,8 @@ uLong ZEXPORT deflateBound(strm, sourceLen) /* if not default parameters, return one of the conservative bounds */ if (s->w_bits != 15 || s->hash_bits != 8 + 7) - return (s->w_bits <= s->hash_bits ? fixedlen : storelen) + wraplen; + return (s->w_bits <= s->hash_bits && s->level ? fixedlen : storelen) + + wraplen; /* default settings: return tight bound for that case -- ~0.03% overhead plus a small constant */ @@ -765,10 +889,7 @@ uLong ZEXPORT deflateBound(strm, sourceLen) * IN assertion: the stream state is correct and there is enough room in * pending_buf. */ -local void putShortMSB(s, b) - deflate_state *s; - uInt b; -{ +local void putShortMSB(deflate_state *s, uInt b) { put_byte(s, (Byte)(b >> 8)); put_byte(s, (Byte)(b & 0xff)); } @@ -779,9 +900,7 @@ local void putShortMSB(s, b) * applications may wish to modify it to avoid allocating a large * strm->next_out buffer and copying into it. (See also read_buf()). */ -local void flush_pending(strm) - z_streamp strm; -{ +local void flush_pending(z_streamp strm) { unsigned len; deflate_state *s = strm->state; @@ -812,10 +931,7 @@ local void flush_pending(strm) } while (0) /* ========================================================================= */ -int ZEXPORT deflate(strm, flush) - z_streamp strm; - int flush; -{ +int ZEXPORT deflate(z_streamp strm, int flush) { int old_flush; /* value of flush param for previous deflate call */ deflate_state *s; @@ -1127,9 +1243,7 @@ int ZEXPORT deflate(strm, flush) } /* ========================================================================= */ -int ZEXPORT deflateEnd(strm) - z_streamp strm; -{ +int ZEXPORT deflateEnd(z_streamp strm) { int status; if (deflateStateCheck(strm)) return Z_STREAM_ERROR; @@ -1153,11 +1267,10 @@ int ZEXPORT deflateEnd(strm) * To simplify the source, this is not supported for 16-bit MSDOS (which * doesn't have enough memory anyway to duplicate compression states). */ -int ZEXPORT deflateCopy(dest, source) - z_streamp dest; - z_streamp source; -{ +int ZEXPORT deflateCopy(z_streamp dest, z_streamp source) { #ifdef MAXSEG_64K + (void)dest; + (void)source; return Z_STREAM_ERROR; #else deflate_state *ds; @@ -1205,66 +1318,6 @@ int ZEXPORT deflateCopy(dest, source) #endif /* MAXSEG_64K */ } -/* =========================================================================== - * Read a new buffer from the current input stream, update the adler32 - * and total number of bytes read. All deflate() input goes through - * this function so some applications may wish to modify it to avoid - * allocating a large strm->next_in buffer and copying from it. - * (See also flush_pending()). - */ -local unsigned read_buf(strm, buf, size) - z_streamp strm; - Bytef *buf; - unsigned size; -{ - unsigned len = strm->avail_in; - - if (len > size) len = size; - if (len == 0) return 0; - - strm->avail_in -= len; - - zmemcpy(buf, strm->next_in, len); - if (strm->state->wrap == 1) { - strm->adler = adler32(strm->adler, buf, len); - } -#ifdef GZIP - else if (strm->state->wrap == 2) { - strm->adler = crc32(strm->adler, buf, len); - } -#endif - strm->next_in += len; - strm->total_in += len; - - return len; -} - -/* =========================================================================== - * Initialize the "longest match" routines for a new zlib stream - */ -local void lm_init(s) - deflate_state *s; -{ - s->window_size = (ulg)2L*s->w_size; - - CLEAR_HASH(s); - - /* Set the default configuration parameters: - */ - s->max_lazy_match = configuration_table[s->level].max_lazy; - s->good_match = configuration_table[s->level].good_length; - s->nice_match = configuration_table[s->level].nice_length; - s->max_chain_length = configuration_table[s->level].max_chain; - - s->strstart = 0; - s->block_start = 0L; - s->lookahead = 0; - s->insert = 0; - s->match_length = s->prev_length = MIN_MATCH-1; - s->match_available = 0; - s->ins_h = 0; -} - #ifndef FASTEST /* =========================================================================== * Set match_start to the longest match starting at the given string and @@ -1275,10 +1328,7 @@ local void lm_init(s) * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1 * OUT assertion: the match length is not greater than s->lookahead. */ -local uInt longest_match(s, cur_match) - deflate_state *s; - IPos cur_match; /* current match */ -{ +local uInt longest_match(deflate_state *s, IPos cur_match) { unsigned chain_length = s->max_chain_length;/* max hash chain length */ register Bytef *scan = s->window + s->strstart; /* current string */ register Bytef *match; /* matched string */ @@ -1426,10 +1476,7 @@ local uInt longest_match(s, cur_match) /* --------------------------------------------------------------------------- * Optimized version for FASTEST only */ -local uInt longest_match(s, cur_match) - deflate_state *s; - IPos cur_match; /* current match */ -{ +local uInt longest_match(deflate_state *s, IPos cur_match) { register Bytef *scan = s->window + s->strstart; /* current string */ register Bytef *match; /* matched string */ register int len; /* length of current match */ @@ -1490,11 +1537,7 @@ local uInt longest_match(s, cur_match) /* =========================================================================== * Check that the match at match_start is indeed a match. */ -local void check_match(s, start, match, length) - deflate_state *s; - IPos start, match; - int length; -{ +local void check_match(deflate_state *s, IPos start, IPos match, int length) { /* check that the match is indeed a match */ if (zmemcmp(s->window + match, s->window + start, length) != EQUAL) { @@ -1514,137 +1557,6 @@ local void check_match(s, start, match, length) # define check_match(s, start, match, length) #endif /* ZLIB_DEBUG */ -/* =========================================================================== - * Fill the window when the lookahead becomes insufficient. - * Updates strstart and lookahead. - * - * IN assertion: lookahead < MIN_LOOKAHEAD - * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD - * At least one byte has been read, or avail_in == 0; reads are - * performed for at least two bytes (required for the zip translate_eol - * option -- not supported here). - */ -local void fill_window(s) - deflate_state *s; -{ - unsigned n; - unsigned more; /* Amount of free space at the end of the window. */ - uInt wsize = s->w_size; - - Assert(s->lookahead < MIN_LOOKAHEAD, "already enough lookahead"); - - do { - more = (unsigned)(s->window_size -(ulg)s->lookahead -(ulg)s->strstart); - - /* Deal with !@#$% 64K limit: */ - if (sizeof(int) <= 2) { - if (more == 0 && s->strstart == 0 && s->lookahead == 0) { - more = wsize; - - } else if (more == (unsigned)(-1)) { - /* Very unlikely, but possible on 16 bit machine if - * strstart == 0 && lookahead == 1 (input done a byte at time) - */ - more--; - } - } - - /* If the window is almost full and there is insufficient lookahead, - * move the upper half to the lower one to make room in the upper half. - */ - if (s->strstart >= wsize + MAX_DIST(s)) { - - zmemcpy(s->window, s->window + wsize, (unsigned)wsize - more); - s->match_start -= wsize; - s->strstart -= wsize; /* we now have strstart >= MAX_DIST */ - s->block_start -= (long) wsize; - if (s->insert > s->strstart) - s->insert = s->strstart; - slide_hash(s); - more += wsize; - } - if (s->strm->avail_in == 0) break; - - /* If there was no sliding: - * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 && - * more == window_size - lookahead - strstart - * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1) - * => more >= window_size - 2*WSIZE + 2 - * In the BIG_MEM or MMAP case (not yet supported), - * window_size == input_size + MIN_LOOKAHEAD && - * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD. - * Otherwise, window_size == 2*WSIZE so more >= 2. - * If there was sliding, more >= WSIZE. So in all cases, more >= 2. - */ - Assert(more >= 2, "more < 2"); - - n = read_buf(s->strm, s->window + s->strstart + s->lookahead, more); - s->lookahead += n; - - /* Initialize the hash value now that we have some input: */ - if (s->lookahead + s->insert >= MIN_MATCH) { - uInt str = s->strstart - s->insert; - s->ins_h = s->window[str]; - UPDATE_HASH(s, s->ins_h, s->window[str + 1]); -#if MIN_MATCH != 3 - Call UPDATE_HASH() MIN_MATCH-3 more times -#endif - while (s->insert) { - UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); -#ifndef FASTEST - s->prev[str & s->w_mask] = s->head[s->ins_h]; -#endif - s->head[s->ins_h] = (Pos)str; - str++; - s->insert--; - if (s->lookahead + s->insert < MIN_MATCH) - break; - } - } - /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage, - * but this is not important since only literal bytes will be emitted. - */ - - } while (s->lookahead < MIN_LOOKAHEAD && s->strm->avail_in != 0); - - /* If the WIN_INIT bytes after the end of the current data have never been - * written, then zero those bytes in order to avoid memory check reports of - * the use of uninitialized (or uninitialised as Julian writes) bytes by - * the longest match routines. Update the high water mark for the next - * time through here. WIN_INIT is set to MAX_MATCH since the longest match - * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead. - */ - if (s->high_water < s->window_size) { - ulg curr = s->strstart + (ulg)(s->lookahead); - ulg init; - - if (s->high_water < curr) { - /* Previous high water mark below current data -- zero WIN_INIT - * bytes or up to end of window, whichever is less. - */ - init = s->window_size - curr; - if (init > WIN_INIT) - init = WIN_INIT; - zmemzero(s->window + curr, (unsigned)init); - s->high_water = curr + init; - } - else if (s->high_water < (ulg)curr + WIN_INIT) { - /* High water mark at or above current data, but below current data - * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up - * to end of window, whichever is less. - */ - init = (ulg)curr + WIN_INIT - s->high_water; - if (init > s->window_size - s->high_water) - init = s->window_size - s->high_water; - zmemzero(s->window + s->high_water, (unsigned)init); - s->high_water += init; - } - } - - Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD, - "not enough room for search"); -} - /* =========================================================================== * Flush the current block, with given end-of-file flag. * IN assertion: strstart is set to the end of the current match. @@ -1687,10 +1599,7 @@ local void fill_window(s) * copied. It is most efficient with large input and output buffers, which * maximizes the opportunities to have a single copy from next_in to next_out. */ -local block_state deflate_stored(s, flush) - deflate_state *s; - int flush; -{ +local block_state deflate_stored(deflate_state *s, int flush) { /* Smallest worthy block size when not flushing or finishing. By default * this is 32K. This can be as small as 507 bytes for memLevel == 1. For * large input and output buffers, the stored block size will be larger. @@ -1874,10 +1783,7 @@ local block_state deflate_stored(s, flush) * new strings in the dictionary only for unmatched strings or for short * matches. It is used only for the fast compression options. */ -local block_state deflate_fast(s, flush) - deflate_state *s; - int flush; -{ +local block_state deflate_fast(deflate_state *s, int flush) { IPos hash_head; /* head of the hash chain */ int bflush; /* set if current block must be flushed */ @@ -1976,10 +1882,7 @@ local block_state deflate_fast(s, flush) * evaluation for matches: a match is finally adopted only if there is * no better match at the next window position. */ -local block_state deflate_slow(s, flush) - deflate_state *s; - int flush; -{ +local block_state deflate_slow(deflate_state *s, int flush) { IPos hash_head; /* head of hash chain */ int bflush; /* set if current block must be flushed */ @@ -2107,10 +2010,7 @@ local block_state deflate_slow(s, flush) * one. Do not maintain a hash table. (It will be regenerated if this run of * deflate switches away from Z_RLE.) */ -local block_state deflate_rle(s, flush) - deflate_state *s; - int flush; -{ +local block_state deflate_rle(deflate_state *s, int flush) { int bflush; /* set if current block must be flushed */ uInt prev; /* byte at distance one to match */ Bytef *scan, *strend; /* scan goes up to strend for length of run */ @@ -2181,10 +2081,7 @@ local block_state deflate_rle(s, flush) * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table. * (It will be regenerated if this run of deflate switches away from Huffman.) */ -local block_state deflate_huff(s, flush) - deflate_state *s; - int flush; -{ +local block_state deflate_huff(deflate_state *s, int flush) { int bflush; /* set if current block must be flushed */ for (;;) { diff --git a/Foundation/src/infback.c b/Foundation/src/infback.c index babeaf180..e7b25b307 100644 --- a/Foundation/src/infback.c +++ b/Foundation/src/infback.c @@ -15,9 +15,6 @@ #include "inflate.h" #include "inffast.h" -/* function prototypes */ -local void fixedtables OF((struct inflate_state FAR *state)); - /* strm provides memory allocation functions in zalloc and zfree, or Z_NULL to use the library memory allocation functions. @@ -25,13 +22,9 @@ local void fixedtables OF((struct inflate_state FAR *state)); windowBits is in the range 8..15, and window is a user-supplied window and output buffer that is 2**windowBits bytes. */ -int ZEXPORT inflateBackInit_(strm, windowBits, window, version, stream_size) -z_streamp strm; -int windowBits; -unsigned char FAR *window; -const char *version; -int stream_size; -{ +int ZEXPORT inflateBackInit_(z_streamp strm, int windowBits, + unsigned char FAR *window, const char *version, + int stream_size) { struct inflate_state FAR *state; if (version == Z_NULL || version[0] != ZLIB_VERSION[0] || @@ -80,9 +73,7 @@ int stream_size; used for threaded applications, since the rewriting of the tables and virgin may not be thread-safe. */ -local void fixedtables(state) -struct inflate_state FAR *state; -{ +local void fixedtables(struct inflate_state FAR *state) { #ifdef BUILDFIXED static int virgin = 1; static code *lenfix, *distfix; @@ -248,13 +239,8 @@ struct inflate_state FAR *state; inflateBack() can also return Z_STREAM_ERROR if the input parameters are not correct, i.e. strm is Z_NULL or the state was not initialized. */ -int ZEXPORT inflateBack(strm, in, in_desc, out, out_desc) -z_streamp strm; -in_func in; -void FAR *in_desc; -out_func out; -void FAR *out_desc; -{ +int ZEXPORT inflateBack(z_streamp strm, in_func in, void FAR *in_desc, + out_func out, void FAR *out_desc) { struct inflate_state FAR *state; z_const unsigned char FAR *next; /* next input */ unsigned char FAR *put; /* next output */ @@ -632,9 +618,7 @@ void FAR *out_desc; return ret; } -int ZEXPORT inflateBackEnd(strm) -z_streamp strm; -{ +int ZEXPORT inflateBackEnd(z_streamp strm) { if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0) return Z_STREAM_ERROR; ZFREE(strm, strm->state); diff --git a/Foundation/src/inffast.c b/Foundation/src/inffast.c index 1fec7f363..9354676e7 100644 --- a/Foundation/src/inffast.c +++ b/Foundation/src/inffast.c @@ -47,10 +47,7 @@ requires strm->avail_out >= 258 for each loop to avoid checking for output space. */ -void ZLIB_INTERNAL inflate_fast(strm, start) -z_streamp strm; -unsigned start; /* inflate()'s starting value for strm->avail_out */ -{ +void ZLIB_INTERNAL inflate_fast(z_streamp strm, unsigned start) { struct inflate_state FAR *state; z_const unsigned char FAR *in; /* local strm->next_in */ z_const unsigned char FAR *last; /* have enough input while in < last */ diff --git a/Foundation/src/inflate.c b/Foundation/src/inflate.c index 8acbef44e..b0757a9b2 100644 --- a/Foundation/src/inflate.c +++ b/Foundation/src/inflate.c @@ -91,20 +91,7 @@ # endif #endif -/* function prototypes */ -local int inflateStateCheck OF((z_streamp strm)); -local void fixedtables OF((struct inflate_state FAR *state)); -local int updatewindow OF((z_streamp strm, const unsigned char FAR *end, - unsigned copy)); -#ifdef BUILDFIXED - void makefixed OF((void)); -#endif -local unsigned syncsearch OF((unsigned FAR *have, const unsigned char FAR *buf, - unsigned len)); - -local int inflateStateCheck(strm) -z_streamp strm; -{ +local int inflateStateCheck(z_streamp strm) { struct inflate_state FAR *state; if (strm == Z_NULL || strm->zalloc == (alloc_func)0 || strm->zfree == (free_func)0) @@ -116,9 +103,7 @@ z_streamp strm; return 0; } -int ZEXPORT inflateResetKeep(strm) -z_streamp strm; -{ +int ZEXPORT inflateResetKeep(z_streamp strm) { struct inflate_state FAR *state; if (inflateStateCheck(strm)) return Z_STREAM_ERROR; @@ -142,9 +127,7 @@ z_streamp strm; return Z_OK; } -int ZEXPORT inflateReset(strm) -z_streamp strm; -{ +int ZEXPORT inflateReset(z_streamp strm) { struct inflate_state FAR *state; if (inflateStateCheck(strm)) return Z_STREAM_ERROR; @@ -155,10 +138,7 @@ z_streamp strm; return inflateResetKeep(strm); } -int ZEXPORT inflateReset2(strm, windowBits) -z_streamp strm; -int windowBits; -{ +int ZEXPORT inflateReset2(z_streamp strm, int windowBits) { int wrap; struct inflate_state FAR *state; @@ -195,12 +175,8 @@ int windowBits; return inflateReset(strm); } -int ZEXPORT inflateInit2_(strm, windowBits, version, stream_size) -z_streamp strm; -int windowBits; -const char *version; -int stream_size; -{ +int ZEXPORT inflateInit2_(z_streamp strm, int windowBits, + const char *version, int stream_size) { int ret; struct inflate_state FAR *state; @@ -239,22 +215,17 @@ int stream_size; return ret; } -int ZEXPORT inflateInit_(strm, version, stream_size) -z_streamp strm; -const char *version; -int stream_size; -{ +int ZEXPORT inflateInit_(z_streamp strm, const char *version, + int stream_size) { return inflateInit2_(strm, DEF_WBITS, version, stream_size); } -int ZEXPORT inflatePrime(strm, bits, value) -z_streamp strm; -int bits; -int value; -{ +int ZEXPORT inflatePrime(z_streamp strm, int bits, int value) { struct inflate_state FAR *state; if (inflateStateCheck(strm)) return Z_STREAM_ERROR; + if (bits == 0) + return Z_OK; state = (struct inflate_state FAR *)strm->state; if (bits < 0) { state->hold = 0; @@ -278,9 +249,7 @@ int value; used for threaded applications, since the rewriting of the tables and virgin may not be thread-safe. */ -local void fixedtables(state) -struct inflate_state FAR *state; -{ +local void fixedtables(struct inflate_state FAR *state) { #ifdef BUILDFIXED static int virgin = 1; static code *lenfix, *distfix; @@ -342,7 +311,7 @@ struct inflate_state FAR *state; a.out > inffixed.h */ -void makefixed() +void makefixed(void) { unsigned low, size; struct inflate_state state; @@ -396,11 +365,7 @@ void makefixed() output will fall in the output data, making match copies simpler and faster. The advantage may be dependent on the size of the processor's data caches. */ -local int updatewindow(strm, end, copy) -z_streamp strm; -const Bytef *end; -unsigned copy; -{ +local int updatewindow(z_streamp strm, const Bytef *end, unsigned copy) { struct inflate_state FAR *state; unsigned dist; @@ -622,10 +587,7 @@ unsigned copy; will return Z_BUF_ERROR if it has not reached the end of the stream. */ -int ZEXPORT inflate(strm, flush) -z_streamp strm; -int flush; -{ +int ZEXPORT inflate(z_streamp strm, int flush) { struct inflate_state FAR *state; z_const unsigned char FAR *next; /* next input */ unsigned char FAR *put; /* next output */ @@ -1301,9 +1263,7 @@ int flush; return ret; } -int ZEXPORT inflateEnd(strm) -z_streamp strm; -{ +int ZEXPORT inflateEnd(z_streamp strm) { struct inflate_state FAR *state; if (inflateStateCheck(strm)) return Z_STREAM_ERROR; @@ -1315,11 +1275,8 @@ z_streamp strm; return Z_OK; } -int ZEXPORT inflateGetDictionary(strm, dictionary, dictLength) -z_streamp strm; -Bytef *dictionary; -uInt *dictLength; -{ +int ZEXPORT inflateGetDictionary(z_streamp strm, Bytef *dictionary, + uInt *dictLength) { struct inflate_state FAR *state; /* check state */ @@ -1338,11 +1295,8 @@ uInt *dictLength; return Z_OK; } -int ZEXPORT inflateSetDictionary(strm, dictionary, dictLength) -z_streamp strm; -const Bytef *dictionary; -uInt dictLength; -{ +int ZEXPORT inflateSetDictionary(z_streamp strm, const Bytef *dictionary, + uInt dictLength) { struct inflate_state FAR *state; unsigned long dictid; int ret; @@ -1373,10 +1327,7 @@ uInt dictLength; return Z_OK; } -int ZEXPORT inflateGetHeader(strm, head) -z_streamp strm; -gz_headerp head; -{ +int ZEXPORT inflateGetHeader(z_streamp strm, gz_headerp head) { struct inflate_state FAR *state; /* check state */ @@ -1401,11 +1352,8 @@ gz_headerp head; called again with more data and the *have state. *have is initialized to zero for the first call. */ -local unsigned syncsearch(have, buf, len) -unsigned FAR *have; -const unsigned char FAR *buf; -unsigned len; -{ +local unsigned syncsearch(unsigned FAR *have, const unsigned char FAR *buf, + unsigned len) { unsigned got; unsigned next; @@ -1424,9 +1372,7 @@ unsigned len; return next; } -int ZEXPORT inflateSync(strm) -z_streamp strm; -{ +int ZEXPORT inflateSync(z_streamp strm) { unsigned len; /* number of bytes to look at or looked at */ int flags; /* temporary to save header status */ unsigned long in, out; /* temporary to save total_in and total_out */ @@ -1482,9 +1428,7 @@ z_streamp strm; block. When decompressing, PPP checks that at the end of input packet, inflate is waiting for these length bytes. */ -int ZEXPORT inflateSyncPoint(strm) -z_streamp strm; -{ +int ZEXPORT inflateSyncPoint(z_streamp strm) { struct inflate_state FAR *state; if (inflateStateCheck(strm)) return Z_STREAM_ERROR; @@ -1492,10 +1436,7 @@ z_streamp strm; return state->mode == STORED && state->bits == 0; } -int ZEXPORT inflateCopy(dest, source) -z_streamp dest; -z_streamp source; -{ +int ZEXPORT inflateCopy(z_streamp dest, z_streamp source) { struct inflate_state FAR *state; struct inflate_state FAR *copy; unsigned char FAR *window; @@ -1539,10 +1480,7 @@ z_streamp source; return Z_OK; } -int ZEXPORT inflateUndermine(strm, subvert) -z_streamp strm; -int subvert; -{ +int ZEXPORT inflateUndermine(z_streamp strm, int subvert) { struct inflate_state FAR *state; if (inflateStateCheck(strm)) return Z_STREAM_ERROR; @@ -1557,10 +1495,7 @@ int subvert; #endif } -int ZEXPORT inflateValidate(strm, check) -z_streamp strm; -int check; -{ +int ZEXPORT inflateValidate(z_streamp strm, int check) { struct inflate_state FAR *state; if (inflateStateCheck(strm)) return Z_STREAM_ERROR; @@ -1572,9 +1507,7 @@ int check; return Z_OK; } -long ZEXPORT inflateMark(strm) -z_streamp strm; -{ +long ZEXPORT inflateMark(z_streamp strm) { struct inflate_state FAR *state; if (inflateStateCheck(strm)) @@ -1585,9 +1518,7 @@ z_streamp strm; (state->mode == MATCH ? state->was - state->length : 0)); } -unsigned long ZEXPORT inflateCodesUsed(strm) -z_streamp strm; -{ +unsigned long ZEXPORT inflateCodesUsed(z_streamp strm) { struct inflate_state FAR *state; if (inflateStateCheck(strm)) return (unsigned long)-1; state = (struct inflate_state FAR *)strm->state; diff --git a/Foundation/src/inftrees.c b/Foundation/src/inftrees.c index 57d2793be..8a208c2da 100644 --- a/Foundation/src/inftrees.c +++ b/Foundation/src/inftrees.c @@ -1,5 +1,5 @@ /* inftrees.c -- generate Huffman trees for efficient decoding - * Copyright (C) 1995-2022 Mark Adler + * Copyright (C) 1995-2023 Mark Adler * For conditions of distribution and use, see copyright notice in zlib.h */ @@ -9,7 +9,7 @@ #define MAXBITS 15 const char inflate_copyright[] = - " inflate 1.2.13 Copyright 1995-2022 Mark Adler "; + " inflate 1.3 Copyright 1995-2023 Mark Adler "; /* If you use the zlib library in a product, an acknowledgment is welcome in the documentation of your product. If for some reason you cannot @@ -29,14 +29,9 @@ const char inflate_copyright[] = table index bits. It will differ if the request is greater than the longest code or if it is less than the shortest code. */ -int ZLIB_INTERNAL inflate_table(type, lens, codes, table, bits, work) -codetype type; -unsigned short FAR *lens; -unsigned codes; -code FAR * FAR *table; -unsigned FAR *bits; -unsigned short FAR *work; -{ +int ZLIB_INTERNAL inflate_table(codetype type, unsigned short FAR *lens, + unsigned codes, code FAR * FAR *table, + unsigned FAR *bits, unsigned short FAR *work) { unsigned len; /* a code's length in bits */ unsigned sym; /* index of code symbols */ unsigned min, max; /* minimum and maximum code lengths */ @@ -62,7 +57,7 @@ unsigned short FAR *work; 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; static const unsigned short lext[31] = { /* Length codes 257..285 extra */ 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, - 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 194, 65}; + 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 198, 203}; static const unsigned short dbase[32] = { /* Distance codes 0..29 base */ 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, diff --git a/Foundation/src/trees.c b/Foundation/src/trees.c index 5f305c472..8dbdc40ba 100644 --- a/Foundation/src/trees.c +++ b/Foundation/src/trees.c @@ -122,39 +122,116 @@ struct static_tree_desc_s { int max_length; /* max bit length for the codes */ }; -local const static_tree_desc static_l_desc = +#ifdef NO_INIT_GLOBAL_POINTERS +# define TCONST +#else +# define TCONST const +#endif + +local TCONST static_tree_desc static_l_desc = {static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS}; -local const static_tree_desc static_d_desc = +local TCONST static_tree_desc static_d_desc = {static_dtree, extra_dbits, 0, D_CODES, MAX_BITS}; -local const static_tree_desc static_bl_desc = +local TCONST static_tree_desc static_bl_desc = {(const ct_data *)0, extra_blbits, 0, BL_CODES, MAX_BL_BITS}; /* =========================================================================== - * Local (static) routines in this file. + * Output a short LSB first on the stream. + * IN assertion: there is enough room in pendingBuf. */ +#define put_short(s, w) { \ + put_byte(s, (uch)((w) & 0xff)); \ + put_byte(s, (uch)((ush)(w) >> 8)); \ +} -local void tr_static_init OF((void)); -local void init_block OF((deflate_state *s)); -local void pqdownheap OF((deflate_state *s, ct_data *tree, int k)); -local void gen_bitlen OF((deflate_state *s, tree_desc *desc)); -local void gen_codes OF((ct_data *tree, int max_code, ushf *bl_count)); -local void build_tree OF((deflate_state *s, tree_desc *desc)); -local void scan_tree OF((deflate_state *s, ct_data *tree, int max_code)); -local void send_tree OF((deflate_state *s, ct_data *tree, int max_code)); -local int build_bl_tree OF((deflate_state *s)); -local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes, - int blcodes)); -local void compress_block OF((deflate_state *s, const ct_data *ltree, - const ct_data *dtree)); -local int detect_data_type OF((deflate_state *s)); -local unsigned bi_reverse OF((unsigned code, int len)); -local void bi_windup OF((deflate_state *s)); -local void bi_flush OF((deflate_state *s)); +/* =========================================================================== + * Reverse the first len bits of a code, using straightforward code (a faster + * method would use a table) + * IN assertion: 1 <= len <= 15 + */ +local unsigned bi_reverse(unsigned code, int len) { + register unsigned res = 0; + do { + res |= code & 1; + code >>= 1, res <<= 1; + } while (--len > 0); + return res >> 1; +} + +/* =========================================================================== + * Flush the bit buffer, keeping at most 7 bits in it. + */ +local void bi_flush(deflate_state *s) { + if (s->bi_valid == 16) { + put_short(s, s->bi_buf); + s->bi_buf = 0; + s->bi_valid = 0; + } else if (s->bi_valid >= 8) { + put_byte(s, (Byte)s->bi_buf); + s->bi_buf >>= 8; + s->bi_valid -= 8; + } +} + +/* =========================================================================== + * Flush the bit buffer and align the output on a byte boundary + */ +local void bi_windup(deflate_state *s) { + if (s->bi_valid > 8) { + put_short(s, s->bi_buf); + } else if (s->bi_valid > 0) { + put_byte(s, (Byte)s->bi_buf); + } + s->bi_buf = 0; + s->bi_valid = 0; +#ifdef ZLIB_DEBUG + s->bits_sent = (s->bits_sent + 7) & ~7; +#endif +} + +/* =========================================================================== + * Generate the codes for a given tree and bit counts (which need not be + * optimal). + * IN assertion: the array bl_count contains the bit length statistics for + * the given tree and the field len is set for all tree elements. + * OUT assertion: the field code is set for all tree elements of non + * zero code length. + */ +local void gen_codes(ct_data *tree, int max_code, ushf *bl_count) { + ush next_code[MAX_BITS+1]; /* next code value for each bit length */ + unsigned code = 0; /* running code value */ + int bits; /* bit index */ + int n; /* code index */ + + /* The distribution counts are first used to generate the code values + * without bit reversal. + */ + for (bits = 1; bits <= MAX_BITS; bits++) { + code = (code + bl_count[bits - 1]) << 1; + next_code[bits] = (ush)code; + } + /* Check that the bit counts in bl_count are consistent. The last code + * must be all ones. + */ + Assert (code + bl_count[MAX_BITS] - 1 == (1 << MAX_BITS) - 1, + "inconsistent bit counts"); + Tracev((stderr,"\ngen_codes: max_code %d ", max_code)); + + for (n = 0; n <= max_code; n++) { + int len = tree[n].Len; + if (len == 0) continue; + /* Now reverse the bits */ + tree[n].Code = (ush)bi_reverse(next_code[len]++, len); + + Tracecv(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ", + n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len] - 1)); + } +} #ifdef GEN_TREES_H -local void gen_trees_header OF((void)); +local void gen_trees_header(void); #endif #ifndef ZLIB_DEBUG @@ -167,27 +244,12 @@ local void gen_trees_header OF((void)); send_bits(s, tree[c].Code, tree[c].Len); } #endif -/* =========================================================================== - * Output a short LSB first on the stream. - * IN assertion: there is enough room in pendingBuf. - */ -#define put_short(s, w) { \ - put_byte(s, (uch)((w) & 0xff)); \ - put_byte(s, (uch)((ush)(w) >> 8)); \ -} - /* =========================================================================== * Send a value on a given number of bits. * IN assertion: length <= 16 and value fits in length bits. */ #ifdef ZLIB_DEBUG -local void send_bits OF((deflate_state *s, int value, int length)); - -local void send_bits(s, value, length) - deflate_state *s; - int value; /* value to send */ - int length; /* number of bits */ -{ +local void send_bits(deflate_state *s, int value, int length) { Tracevv((stderr," l %2d v %4x ", length, value)); Assert(length > 0 && length <= 15, "invalid length"); s->bits_sent += (ulg)length; @@ -229,8 +291,7 @@ local void send_bits(s, value, length) /* =========================================================================== * Initialize the various 'constant' tables. */ -local void tr_static_init() -{ +local void tr_static_init(void) { #if defined(GEN_TREES_H) || !defined(STDC) static int static_init_done = 0; int n; /* iterates over tree elements */ @@ -323,8 +384,7 @@ local void tr_static_init() ((i) == (last)? "\n};\n\n" : \ ((i) % (width) == (width) - 1 ? ",\n" : ", ")) -void gen_trees_header() -{ +void gen_trees_header(void) { FILE *header = fopen("trees.h", "w"); int i; @@ -373,12 +433,26 @@ void gen_trees_header() } #endif /* GEN_TREES_H */ +/* =========================================================================== + * Initialize a new block. + */ +local void init_block(deflate_state *s) { + int n; /* iterates over tree elements */ + + /* Initialize the trees. */ + for (n = 0; n < L_CODES; n++) s->dyn_ltree[n].Freq = 0; + for (n = 0; n < D_CODES; n++) s->dyn_dtree[n].Freq = 0; + for (n = 0; n < BL_CODES; n++) s->bl_tree[n].Freq = 0; + + s->dyn_ltree[END_BLOCK].Freq = 1; + s->opt_len = s->static_len = 0L; + s->sym_next = s->matches = 0; +} + /* =========================================================================== * Initialize the tree data structures for a new zlib stream. */ -void ZLIB_INTERNAL _tr_init(s) - deflate_state *s; -{ +void ZLIB_INTERNAL _tr_init(deflate_state *s) { tr_static_init(); s->l_desc.dyn_tree = s->dyn_ltree; @@ -401,24 +475,6 @@ void ZLIB_INTERNAL _tr_init(s) init_block(s); } -/* =========================================================================== - * Initialize a new block. - */ -local void init_block(s) - deflate_state *s; -{ - int n; /* iterates over tree elements */ - - /* Initialize the trees. */ - for (n = 0; n < L_CODES; n++) s->dyn_ltree[n].Freq = 0; - for (n = 0; n < D_CODES; n++) s->dyn_dtree[n].Freq = 0; - for (n = 0; n < BL_CODES; n++) s->bl_tree[n].Freq = 0; - - s->dyn_ltree[END_BLOCK].Freq = 1; - s->opt_len = s->static_len = 0L; - s->sym_next = s->matches = 0; -} - #define SMALLEST 1 /* Index within the heap array of least frequent node in the Huffman tree */ @@ -448,11 +504,7 @@ local void init_block(s) * when the heap property is re-established (each father smaller than its * two sons). */ -local void pqdownheap(s, tree, k) - deflate_state *s; - ct_data *tree; /* the tree to restore */ - int k; /* node to move down */ -{ +local void pqdownheap(deflate_state *s, ct_data *tree, int k) { int v = s->heap[k]; int j = k << 1; /* left son of k */ while (j <= s->heap_len) { @@ -483,10 +535,7 @@ local void pqdownheap(s, tree, k) * The length opt_len is updated; static_len is also updated if stree is * not null. */ -local void gen_bitlen(s, desc) - deflate_state *s; - tree_desc *desc; /* the tree descriptor */ -{ +local void gen_bitlen(deflate_state *s, tree_desc *desc) { ct_data *tree = desc->dyn_tree; int max_code = desc->max_code; const ct_data *stree = desc->stat_desc->static_tree; @@ -561,48 +610,9 @@ local void gen_bitlen(s, desc) } } -/* =========================================================================== - * Generate the codes for a given tree and bit counts (which need not be - * optimal). - * IN assertion: the array bl_count contains the bit length statistics for - * the given tree and the field len is set for all tree elements. - * OUT assertion: the field code is set for all tree elements of non - * zero code length. - */ -local void gen_codes(tree, max_code, bl_count) - ct_data *tree; /* the tree to decorate */ - int max_code; /* largest code with non zero frequency */ - ushf *bl_count; /* number of codes at each bit length */ -{ - ush next_code[MAX_BITS+1]; /* next code value for each bit length */ - unsigned code = 0; /* running code value */ - int bits; /* bit index */ - int n; /* code index */ - - /* The distribution counts are first used to generate the code values - * without bit reversal. - */ - for (bits = 1; bits <= MAX_BITS; bits++) { - code = (code + bl_count[bits - 1]) << 1; - next_code[bits] = (ush)code; - } - /* Check that the bit counts in bl_count are consistent. The last code - * must be all ones. - */ - Assert (code + bl_count[MAX_BITS] - 1 == (1 << MAX_BITS) - 1, - "inconsistent bit counts"); - Tracev((stderr,"\ngen_codes: max_code %d ", max_code)); - - for (n = 0; n <= max_code; n++) { - int len = tree[n].Len; - if (len == 0) continue; - /* Now reverse the bits */ - tree[n].Code = (ush)bi_reverse(next_code[len]++, len); - - Tracecv(tree != static_ltree, (stderr,"\nn %3d %c l %2d c %4x (%x) ", - n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len] - 1)); - } -} +#ifdef DUMP_BL_TREE +# include +#endif /* =========================================================================== * Construct one Huffman tree and assigns the code bit strings and lengths. @@ -612,10 +622,7 @@ local void gen_codes(tree, max_code, bl_count) * and corresponding code. The length opt_len is updated; static_len is * also updated if stree is not null. The field max_code is set. */ -local void build_tree(s, desc) - deflate_state *s; - tree_desc *desc; /* the tree descriptor */ -{ +local void build_tree(deflate_state *s, tree_desc *desc) { ct_data *tree = desc->dyn_tree; const ct_data *stree = desc->stat_desc->static_tree; int elems = desc->stat_desc->elems; @@ -700,11 +707,7 @@ local void build_tree(s, desc) * Scan a literal or distance tree to determine the frequencies of the codes * in the bit length tree. */ -local void scan_tree(s, tree, max_code) - deflate_state *s; - ct_data *tree; /* the tree to be scanned */ - int max_code; /* and its largest code of non zero frequency */ -{ +local void scan_tree(deflate_state *s, ct_data *tree, int max_code) { int n; /* iterates over all tree elements */ int prevlen = -1; /* last emitted length */ int curlen; /* length of current code */ @@ -745,11 +748,7 @@ local void scan_tree(s, tree, max_code) * Send a literal or distance tree in compressed form, using the codes in * bl_tree. */ -local void send_tree(s, tree, max_code) - deflate_state *s; - ct_data *tree; /* the tree to be scanned */ - int max_code; /* and its largest code of non zero frequency */ -{ +local void send_tree(deflate_state *s, ct_data *tree, int max_code) { int n; /* iterates over all tree elements */ int prevlen = -1; /* last emitted length */ int curlen; /* length of current code */ @@ -796,9 +795,7 @@ local void send_tree(s, tree, max_code) * Construct the Huffman tree for the bit lengths and return the index in * bl_order of the last bit length code to send. */ -local int build_bl_tree(s) - deflate_state *s; -{ +local int build_bl_tree(deflate_state *s) { int max_blindex; /* index of last bit length code of non zero freq */ /* Determine the bit length frequencies for literal and distance trees */ @@ -831,10 +828,8 @@ local int build_bl_tree(s) * lengths of the bit length codes, the literal tree and the distance tree. * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4. */ -local void send_all_trees(s, lcodes, dcodes, blcodes) - deflate_state *s; - int lcodes, dcodes, blcodes; /* number of codes for each tree */ -{ +local void send_all_trees(deflate_state *s, int lcodes, int dcodes, + int blcodes) { int rank; /* index in bl_order */ Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes"); @@ -860,12 +855,8 @@ local void send_all_trees(s, lcodes, dcodes, blcodes) /* =========================================================================== * Send a stored block */ -void ZLIB_INTERNAL _tr_stored_block(s, buf, stored_len, last) - deflate_state *s; - charf *buf; /* input block */ - ulg stored_len; /* length of input block */ - int last; /* one if this is the last block for a file */ -{ +void ZLIB_INTERNAL _tr_stored_block(deflate_state *s, charf *buf, + ulg stored_len, int last) { send_bits(s, (STORED_BLOCK<<1) + last, 3); /* send block type */ bi_windup(s); /* align on byte boundary */ put_short(s, (ush)stored_len); @@ -884,9 +875,7 @@ void ZLIB_INTERNAL _tr_stored_block(s, buf, stored_len, last) /* =========================================================================== * Flush the bits in the bit buffer to pending output (leaves at most 7 bits) */ -void ZLIB_INTERNAL _tr_flush_bits(s) - deflate_state *s; -{ +void ZLIB_INTERNAL _tr_flush_bits(deflate_state *s) { bi_flush(s); } @@ -894,9 +883,7 @@ void ZLIB_INTERNAL _tr_flush_bits(s) * Send one empty static block to give enough lookahead for inflate. * This takes 10 bits, of which 7 may remain in the bit buffer. */ -void ZLIB_INTERNAL _tr_align(s) - deflate_state *s; -{ +void ZLIB_INTERNAL _tr_align(deflate_state *s) { send_bits(s, STATIC_TREES<<1, 3); send_code(s, END_BLOCK, static_ltree); #ifdef ZLIB_DEBUG @@ -905,16 +892,99 @@ void ZLIB_INTERNAL _tr_align(s) bi_flush(s); } +/* =========================================================================== + * Send the block data compressed using the given Huffman trees + */ +local void compress_block(deflate_state *s, const ct_data *ltree, + const ct_data *dtree) { + unsigned dist; /* distance of matched string */ + int lc; /* match length or unmatched char (if dist == 0) */ + unsigned sx = 0; /* running index in sym_buf */ + unsigned code; /* the code to send */ + int extra; /* number of extra bits to send */ + + if (s->sym_next != 0) do { + dist = s->sym_buf[sx++] & 0xff; + dist += (unsigned)(s->sym_buf[sx++] & 0xff) << 8; + lc = s->sym_buf[sx++]; + if (dist == 0) { + send_code(s, lc, ltree); /* send a literal byte */ + Tracecv(isgraph(lc), (stderr," '%c' ", lc)); + } else { + /* Here, lc is the match length - MIN_MATCH */ + code = _length_code[lc]; + send_code(s, code + LITERALS + 1, ltree); /* send length code */ + extra = extra_lbits[code]; + if (extra != 0) { + lc -= base_length[code]; + send_bits(s, lc, extra); /* send the extra length bits */ + } + dist--; /* dist is now the match distance - 1 */ + code = d_code(dist); + Assert (code < D_CODES, "bad d_code"); + + send_code(s, code, dtree); /* send the distance code */ + extra = extra_dbits[code]; + if (extra != 0) { + dist -= (unsigned)base_dist[code]; + send_bits(s, dist, extra); /* send the extra distance bits */ + } + } /* literal or match pair ? */ + + /* Check that the overlay between pending_buf and sym_buf is ok: */ + Assert(s->pending < s->lit_bufsize + sx, "pendingBuf overflow"); + + } while (sx < s->sym_next); + + send_code(s, END_BLOCK, ltree); +} + +/* =========================================================================== + * Check if the data type is TEXT or BINARY, using the following algorithm: + * - TEXT if the two conditions below are satisfied: + * a) There are no non-portable control characters belonging to the + * "block list" (0..6, 14..25, 28..31). + * b) There is at least one printable character belonging to the + * "allow list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255). + * - BINARY otherwise. + * - The following partially-portable control characters form a + * "gray list" that is ignored in this detection algorithm: + * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}). + * IN assertion: the fields Freq of dyn_ltree are set. + */ +local int detect_data_type(deflate_state *s) { + /* block_mask is the bit mask of block-listed bytes + * set bits 0..6, 14..25, and 28..31 + * 0xf3ffc07f = binary 11110011111111111100000001111111 + */ + unsigned long block_mask = 0xf3ffc07fUL; + int n; + + /* Check for non-textual ("block-listed") bytes. */ + for (n = 0; n <= 31; n++, block_mask >>= 1) + if ((block_mask & 1) && (s->dyn_ltree[n].Freq != 0)) + return Z_BINARY; + + /* Check for textual ("allow-listed") bytes. */ + if (s->dyn_ltree[9].Freq != 0 || s->dyn_ltree[10].Freq != 0 + || s->dyn_ltree[13].Freq != 0) + return Z_TEXT; + for (n = 32; n < LITERALS; n++) + if (s->dyn_ltree[n].Freq != 0) + return Z_TEXT; + + /* There are no "block-listed" or "allow-listed" bytes: + * this stream either is empty or has tolerated ("gray-listed") bytes only. + */ + return Z_BINARY; +} + /* =========================================================================== * Determine the best encoding for the current block: dynamic trees, static * trees or store, and write out the encoded block. */ -void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last) - deflate_state *s; - charf *buf; /* input block, or NULL if too old */ - ulg stored_len; /* length of input block */ - int last; /* one if this is the last block for a file */ -{ +void ZLIB_INTERNAL _tr_flush_block(deflate_state *s, charf *buf, + ulg stored_len, int last) { ulg opt_lenb, static_lenb; /* opt_len and static_len in bytes */ int max_blindex = 0; /* index of last bit length code of non zero freq */ @@ -1011,11 +1081,7 @@ void ZLIB_INTERNAL _tr_flush_block(s, buf, stored_len, last) * Save the match info and tally the frequency counts. Return true if * the current block must be flushed. */ -int ZLIB_INTERNAL _tr_tally(s, dist, lc) - deflate_state *s; - unsigned dist; /* distance of matched string */ - unsigned lc; /* match length - MIN_MATCH or unmatched char (dist==0) */ -{ +int ZLIB_INTERNAL _tr_tally(deflate_state *s, unsigned dist, unsigned lc) { s->sym_buf[s->sym_next++] = (uch)dist; s->sym_buf[s->sym_next++] = (uch)(dist >> 8); s->sym_buf[s->sym_next++] = (uch)lc; @@ -1035,147 +1101,3 @@ int ZLIB_INTERNAL _tr_tally(s, dist, lc) } return (s->sym_next == s->sym_end); } - -/* =========================================================================== - * Send the block data compressed using the given Huffman trees - */ -local void compress_block(s, ltree, dtree) - deflate_state *s; - const ct_data *ltree; /* literal tree */ - const ct_data *dtree; /* distance tree */ -{ - unsigned dist; /* distance of matched string */ - int lc; /* match length or unmatched char (if dist == 0) */ - unsigned sx = 0; /* running index in sym_buf */ - unsigned code; /* the code to send */ - int extra; /* number of extra bits to send */ - - if (s->sym_next != 0) do { - dist = s->sym_buf[sx++] & 0xff; - dist += (unsigned)(s->sym_buf[sx++] & 0xff) << 8; - lc = s->sym_buf[sx++]; - if (dist == 0) { - send_code(s, lc, ltree); /* send a literal byte */ - Tracecv(isgraph(lc), (stderr," '%c' ", lc)); - } else { - /* Here, lc is the match length - MIN_MATCH */ - code = _length_code[lc]; - send_code(s, code + LITERALS + 1, ltree); /* send length code */ - extra = extra_lbits[code]; - if (extra != 0) { - lc -= base_length[code]; - send_bits(s, lc, extra); /* send the extra length bits */ - } - dist--; /* dist is now the match distance - 1 */ - code = d_code(dist); - Assert (code < D_CODES, "bad d_code"); - - send_code(s, code, dtree); /* send the distance code */ - extra = extra_dbits[code]; - if (extra != 0) { - dist -= (unsigned)base_dist[code]; - send_bits(s, dist, extra); /* send the extra distance bits */ - } - } /* literal or match pair ? */ - - /* Check that the overlay between pending_buf and sym_buf is ok: */ - Assert(s->pending < s->lit_bufsize + sx, "pendingBuf overflow"); - - } while (sx < s->sym_next); - - send_code(s, END_BLOCK, ltree); -} - -/* =========================================================================== - * Check if the data type is TEXT or BINARY, using the following algorithm: - * - TEXT if the two conditions below are satisfied: - * a) There are no non-portable control characters belonging to the - * "block list" (0..6, 14..25, 28..31). - * b) There is at least one printable character belonging to the - * "allow list" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255). - * - BINARY otherwise. - * - The following partially-portable control characters form a - * "gray list" that is ignored in this detection algorithm: - * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}). - * IN assertion: the fields Freq of dyn_ltree are set. - */ -local int detect_data_type(s) - deflate_state *s; -{ - /* block_mask is the bit mask of block-listed bytes - * set bits 0..6, 14..25, and 28..31 - * 0xf3ffc07f = binary 11110011111111111100000001111111 - */ - unsigned long block_mask = 0xf3ffc07fUL; - int n; - - /* Check for non-textual ("block-listed") bytes. */ - for (n = 0; n <= 31; n++, block_mask >>= 1) - if ((block_mask & 1) && (s->dyn_ltree[n].Freq != 0)) - return Z_BINARY; - - /* Check for textual ("allow-listed") bytes. */ - if (s->dyn_ltree[9].Freq != 0 || s->dyn_ltree[10].Freq != 0 - || s->dyn_ltree[13].Freq != 0) - return Z_TEXT; - for (n = 32; n < LITERALS; n++) - if (s->dyn_ltree[n].Freq != 0) - return Z_TEXT; - - /* There are no "block-listed" or "allow-listed" bytes: - * this stream either is empty or has tolerated ("gray-listed") bytes only. - */ - return Z_BINARY; -} - -/* =========================================================================== - * Reverse the first len bits of a code, using straightforward code (a faster - * method would use a table) - * IN assertion: 1 <= len <= 15 - */ -local unsigned bi_reverse(code, len) - unsigned code; /* the value to invert */ - int len; /* its bit length */ -{ - register unsigned res = 0; - do { - res |= code & 1; - code >>= 1, res <<= 1; - } while (--len > 0); - return res >> 1; -} - -/* =========================================================================== - * Flush the bit buffer, keeping at most 7 bits in it. - */ -local void bi_flush(s) - deflate_state *s; -{ - if (s->bi_valid == 16) { - put_short(s, s->bi_buf); - s->bi_buf = 0; - s->bi_valid = 0; - } else if (s->bi_valid >= 8) { - put_byte(s, (Byte)s->bi_buf); - s->bi_buf >>= 8; - s->bi_valid -= 8; - } -} - -/* =========================================================================== - * Flush the bit buffer and align the output on a byte boundary - */ -local void bi_windup(s) - deflate_state *s; -{ - if (s->bi_valid > 8) { - put_short(s, s->bi_buf); - } else if (s->bi_valid > 0) { - put_byte(s, (Byte)s->bi_buf); - } - s->bi_buf = 0; - s->bi_valid = 0; -#ifdef ZLIB_DEBUG - s->bits_sent = (s->bits_sent + 7) & ~7; -#endif -} diff --git a/Foundation/src/zconf.h b/Foundation/src/zconf.h index bf977d3e7..fb76ffe31 100644 --- a/Foundation/src/zconf.h +++ b/Foundation/src/zconf.h @@ -241,7 +241,11 @@ #endif #ifdef Z_SOLO - typedef unsigned long z_size_t; +# ifdef _WIN64 + typedef unsigned long long z_size_t; +# else + typedef unsigned long z_size_t; +# endif #else # define z_longlong long long # if defined(NO_SIZE_T) @@ -520,7 +524,7 @@ typedef uLong FAR uLongf; #if !defined(_WIN32) && defined(Z_LARGE64) # define z_off64_t off64_t #else -# if defined(_WIN32) && !defined(__GNUC__) && !defined(Z_SOLO) +# if defined(_WIN32) && !defined(__GNUC__) # define z_off64_t __int64 # else # define z_off64_t z_off_t diff --git a/Foundation/src/zlib.h b/Foundation/src/zlib.h index 953cb5012..6b7244f99 100644 --- a/Foundation/src/zlib.h +++ b/Foundation/src/zlib.h @@ -1,7 +1,7 @@ /* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.2.13, October 13th, 2022 + version 1.3, August 18th, 2023 - Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler + Copyright (C) 1995-2023 Jean-loup Gailly and Mark Adler This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -37,11 +37,11 @@ extern "C" { #endif -#define ZLIB_VERSION "1.2.13" -#define ZLIB_VERNUM 0x12d0 +#define ZLIB_VERSION "1.3" +#define ZLIB_VERNUM 0x1300 #define ZLIB_VER_MAJOR 1 -#define ZLIB_VER_MINOR 2 -#define ZLIB_VER_REVISION 13 +#define ZLIB_VER_MINOR 3 +#define ZLIB_VER_REVISION 0 #define ZLIB_VER_SUBREVISION 0 /* @@ -78,8 +78,8 @@ extern "C" { even in the case of corrupted input. */ -typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); -typedef void (*free_func) OF((voidpf opaque, voidpf address)); +typedef voidpf (*alloc_func)(voidpf opaque, uInt items, uInt size); +typedef void (*free_func)(voidpf opaque, voidpf address); struct internal_state; @@ -217,7 +217,7 @@ typedef gz_header FAR *gz_headerp; /* basic functions */ -ZEXTERN const char * ZEXPORT zlibVersion OF((void)); +ZEXTERN const char * ZEXPORT zlibVersion(void); /* The application can compare zlibVersion and ZLIB_VERSION for consistency. If the first character differs, the library code actually used is not compatible with the zlib.h header file used by the application. This check @@ -225,12 +225,12 @@ ZEXTERN const char * ZEXPORT zlibVersion OF((void)); */ /* -ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); +ZEXTERN int ZEXPORT deflateInit(z_streamp strm, int level); Initializes the internal stream state for compression. The fields zalloc, zfree and opaque must be initialized before by the caller. If zalloc and zfree are set to Z_NULL, deflateInit updates them to use default - allocation functions. + allocation functions. total_in, total_out, adler, and msg are initialized. The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: 1 gives best speed, 9 gives best compression, 0 gives no compression at all @@ -247,7 +247,7 @@ ZEXTERN int ZEXPORT deflateInit OF((z_streamp strm, int level)); */ -ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); +ZEXTERN int ZEXPORT deflate(z_streamp strm, int flush); /* deflate compresses as much data as possible, and stops when the input buffer becomes empty or the output buffer becomes full. It may introduce @@ -320,8 +320,8 @@ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); with the same value of the flush parameter and more output space (updated avail_out), until the flush is complete (deflate returns with non-zero avail_out). In the case of a Z_FULL_FLUSH or Z_SYNC_FLUSH, make sure that - avail_out is greater than six to avoid repeated flush markers due to - avail_out == 0 on return. + avail_out is greater than six when the flush marker begins, in order to avoid + repeated flush markers upon calling deflate() again when avail_out == 0. If the parameter flush is set to Z_FINISH, pending input is processed, pending output is flushed and deflate returns with Z_STREAM_END if there was @@ -360,7 +360,7 @@ ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush)); */ -ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); +ZEXTERN int ZEXPORT deflateEnd(z_streamp strm); /* All dynamically allocated data structures for this stream are freed. This function discards any unprocessed input and does not flush any pending @@ -375,7 +375,7 @@ ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm)); /* -ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); +ZEXTERN int ZEXPORT inflateInit(z_streamp strm); Initializes the internal stream state for decompression. The fields next_in, avail_in, zalloc, zfree and opaque must be initialized before by @@ -383,7 +383,8 @@ ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); read or consumed. The allocation of a sliding window will be deferred to the first call of inflate (if the decompression does not complete on the first call). If zalloc and zfree are set to Z_NULL, inflateInit updates - them to use default allocation functions. + them to use default allocation functions. total_in, total_out, adler, and + msg are initialized. inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough memory, Z_VERSION_ERROR if the zlib library version is incompatible with the @@ -397,7 +398,7 @@ ZEXTERN int ZEXPORT inflateInit OF((z_streamp strm)); */ -ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); +ZEXTERN int ZEXPORT inflate(z_streamp strm, int flush); /* inflate decompresses as much data as possible, and stops when the input buffer becomes empty or the output buffer becomes full. It may introduce @@ -517,7 +518,7 @@ ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush)); */ -ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); +ZEXTERN int ZEXPORT inflateEnd(z_streamp strm); /* All dynamically allocated data structures for this stream are freed. This function discards any unprocessed input and does not flush any pending @@ -535,12 +536,12 @@ ZEXTERN int ZEXPORT inflateEnd OF((z_streamp strm)); */ /* -ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, - int level, - int method, - int windowBits, - int memLevel, - int strategy)); +ZEXTERN int ZEXPORT deflateInit2(z_streamp strm, + int level, + int method, + int windowBits, + int memLevel, + int strategy); This is another version of deflateInit with more compression options. The fields zalloc, zfree and opaque must be initialized before by the caller. @@ -607,9 +608,9 @@ ZEXTERN int ZEXPORT deflateInit2 OF((z_streamp strm, compression: this will be done by deflate(). */ -ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); +ZEXTERN int ZEXPORT deflateSetDictionary(z_streamp strm, + const Bytef *dictionary, + uInt dictLength); /* Initializes the compression dictionary from the given byte sequence without producing any compressed output. When using the zlib format, this @@ -651,9 +652,9 @@ ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm, not perform any compression: this will be done by deflate(). */ -ZEXTERN int ZEXPORT deflateGetDictionary OF((z_streamp strm, - Bytef *dictionary, - uInt *dictLength)); +ZEXTERN int ZEXPORT deflateGetDictionary(z_streamp strm, + Bytef *dictionary, + uInt *dictLength); /* Returns the sliding dictionary being maintained by deflate. dictLength is set to the number of bytes in the dictionary, and that many bytes are copied @@ -673,8 +674,8 @@ ZEXTERN int ZEXPORT deflateGetDictionary OF((z_streamp strm, stream state is inconsistent. */ -ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, - z_streamp source)); +ZEXTERN int ZEXPORT deflateCopy(z_streamp dest, + z_streamp source); /* Sets the destination stream as a complete copy of the source stream. @@ -691,20 +692,20 @@ ZEXTERN int ZEXPORT deflateCopy OF((z_streamp dest, destination. */ -ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm)); +ZEXTERN int ZEXPORT deflateReset(z_streamp strm); /* This function is equivalent to deflateEnd followed by deflateInit, but does not free and reallocate the internal compression state. The stream will leave the compression level and any other attributes that may have been - set unchanged. + set unchanged. total_in, total_out, adler, and msg are initialized. deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent (such as zalloc or state being Z_NULL). */ -ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, - int level, - int strategy)); +ZEXTERN int ZEXPORT deflateParams(z_streamp strm, + int level, + int strategy); /* Dynamically update the compression level and compression strategy. The interpretation of level and strategy is as in deflateInit2(). This can be @@ -729,7 +730,7 @@ ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, Then no more input data should be provided before the deflateParams() call. If this is done, the old level and strategy will be applied to the data compressed before deflateParams(), and the new level and strategy will be - applied to the the data compressed after deflateParams(). + applied to the data compressed after deflateParams(). deflateParams returns Z_OK on success, Z_STREAM_ERROR if the source stream state was inconsistent or if a parameter was invalid, or Z_BUF_ERROR if @@ -740,11 +741,11 @@ ZEXTERN int ZEXPORT deflateParams OF((z_streamp strm, retried with more output space. */ -ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, - int good_length, - int max_lazy, - int nice_length, - int max_chain)); +ZEXTERN int ZEXPORT deflateTune(z_streamp strm, + int good_length, + int max_lazy, + int nice_length, + int max_chain); /* Fine tune deflate's internal compression parameters. This should only be used by someone who understands the algorithm used by zlib's deflate for @@ -757,8 +758,8 @@ ZEXTERN int ZEXPORT deflateTune OF((z_streamp strm, returns Z_OK on success, or Z_STREAM_ERROR for an invalid deflate stream. */ -ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, - uLong sourceLen)); +ZEXTERN uLong ZEXPORT deflateBound(z_streamp strm, + uLong sourceLen); /* deflateBound() returns an upper bound on the compressed size after deflation of sourceLen bytes. It must be called after deflateInit() or @@ -772,9 +773,9 @@ ZEXTERN uLong ZEXPORT deflateBound OF((z_streamp strm, than Z_FINISH or Z_NO_FLUSH are used. */ -ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm, - unsigned *pending, - int *bits)); +ZEXTERN int ZEXPORT deflatePending(z_streamp strm, + unsigned *pending, + int *bits); /* deflatePending() returns the number of bytes and bits of output that have been generated, but not yet provided in the available output. The bytes not @@ -787,9 +788,9 @@ ZEXTERN int ZEXPORT deflatePending OF((z_streamp strm, stream state was inconsistent. */ -ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, - int bits, - int value)); +ZEXTERN int ZEXPORT deflatePrime(z_streamp strm, + int bits, + int value); /* deflatePrime() inserts bits in the deflate output stream. The intent is that this function is used to start off the deflate output with the bits @@ -804,8 +805,8 @@ ZEXTERN int ZEXPORT deflatePrime OF((z_streamp strm, source stream state was inconsistent. */ -ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, - gz_headerp head)); +ZEXTERN int ZEXPORT deflateSetHeader(z_streamp strm, + gz_headerp head); /* deflateSetHeader() provides gzip header information for when a gzip stream is requested by deflateInit2(). deflateSetHeader() may be called @@ -821,16 +822,17 @@ ZEXTERN int ZEXPORT deflateSetHeader OF((z_streamp strm, gzip file" and give up. If deflateSetHeader is not used, the default gzip header has text false, - the time set to zero, and os set to 255, with no extra, name, or comment - fields. The gzip header is returned to the default state by deflateReset(). + the time set to zero, and os set to the current operating system, with no + extra, name, or comment fields. The gzip header is returned to the default + state by deflateReset(). deflateSetHeader returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent. */ /* -ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, - int windowBits)); +ZEXTERN int ZEXPORT inflateInit2(z_streamp strm, + int windowBits); This is another version of inflateInit with an extra parameter. The fields next_in, avail_in, zalloc, zfree and opaque must be initialized @@ -883,9 +885,9 @@ ZEXTERN int ZEXPORT inflateInit2 OF((z_streamp strm, deferred until inflate() is called. */ -ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); +ZEXTERN int ZEXPORT inflateSetDictionary(z_streamp strm, + const Bytef *dictionary, + uInt dictLength); /* Initializes the decompression dictionary from the given uncompressed byte sequence. This function must be called immediately after a call of inflate, @@ -906,9 +908,9 @@ ZEXTERN int ZEXPORT inflateSetDictionary OF((z_streamp strm, inflate(). */ -ZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm, - Bytef *dictionary, - uInt *dictLength)); +ZEXTERN int ZEXPORT inflateGetDictionary(z_streamp strm, + Bytef *dictionary, + uInt *dictLength); /* Returns the sliding dictionary being maintained by inflate. dictLength is set to the number of bytes in the dictionary, and that many bytes are copied @@ -921,7 +923,7 @@ ZEXTERN int ZEXPORT inflateGetDictionary OF((z_streamp strm, stream state is inconsistent. */ -ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); +ZEXTERN int ZEXPORT inflateSync(z_streamp strm); /* Skips invalid compressed data until a possible full flush point (see above for the description of deflate with Z_FULL_FLUSH) can be found, or until all @@ -940,8 +942,8 @@ ZEXTERN int ZEXPORT inflateSync OF((z_streamp strm)); input each time, until success or end of the input data. */ -ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, - z_streamp source)); +ZEXTERN int ZEXPORT inflateCopy(z_streamp dest, + z_streamp source); /* Sets the destination stream as a complete copy of the source stream. @@ -956,18 +958,19 @@ ZEXTERN int ZEXPORT inflateCopy OF((z_streamp dest, destination. */ -ZEXTERN int ZEXPORT inflateReset OF((z_streamp strm)); +ZEXTERN int ZEXPORT inflateReset(z_streamp strm); /* This function is equivalent to inflateEnd followed by inflateInit, but does not free and reallocate the internal decompression state. The stream will keep attributes that may have been set by inflateInit2. + total_in, total_out, adler, and msg are initialized. inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source stream state was inconsistent (such as zalloc or state being Z_NULL). */ -ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, - int windowBits)); +ZEXTERN int ZEXPORT inflateReset2(z_streamp strm, + int windowBits); /* This function is the same as inflateReset, but it also permits changing the wrap and window size requests. The windowBits parameter is interpreted @@ -980,9 +983,9 @@ ZEXTERN int ZEXPORT inflateReset2 OF((z_streamp strm, the windowBits parameter is invalid. */ -ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, - int bits, - int value)); +ZEXTERN int ZEXPORT inflatePrime(z_streamp strm, + int bits, + int value); /* This function inserts bits in the inflate input stream. The intent is that this function is used to start inflating at a bit position in the @@ -1001,7 +1004,7 @@ ZEXTERN int ZEXPORT inflatePrime OF((z_streamp strm, stream state was inconsistent. */ -ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); +ZEXTERN long ZEXPORT inflateMark(z_streamp strm); /* This function returns two values, one in the lower 16 bits of the return value, and the other in the remaining upper bits, obtained by shifting the @@ -1029,8 +1032,8 @@ ZEXTERN long ZEXPORT inflateMark OF((z_streamp strm)); source stream state was inconsistent. */ -ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, - gz_headerp head)); +ZEXTERN int ZEXPORT inflateGetHeader(z_streamp strm, + gz_headerp head); /* inflateGetHeader() requests that gzip header information be stored in the provided gz_header structure. inflateGetHeader() may be called after @@ -1070,8 +1073,8 @@ ZEXTERN int ZEXPORT inflateGetHeader OF((z_streamp strm, */ /* -ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, - unsigned char FAR *window)); +ZEXTERN int ZEXPORT inflateBackInit(z_streamp strm, int windowBits, + unsigned char FAR *window); Initialize the internal stream state for decompression using inflateBack() calls. The fields zalloc, zfree and opaque in strm must be initialized @@ -1091,13 +1094,13 @@ ZEXTERN int ZEXPORT inflateBackInit OF((z_streamp strm, int windowBits, the version of the header file. */ -typedef unsigned (*in_func) OF((void FAR *, - z_const unsigned char FAR * FAR *)); -typedef int (*out_func) OF((void FAR *, unsigned char FAR *, unsigned)); +typedef unsigned (*in_func)(void FAR *, + z_const unsigned char FAR * FAR *); +typedef int (*out_func)(void FAR *, unsigned char FAR *, unsigned); -ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, - in_func in, void FAR *in_desc, - out_func out, void FAR *out_desc)); +ZEXTERN int ZEXPORT inflateBack(z_streamp strm, + in_func in, void FAR *in_desc, + out_func out, void FAR *out_desc); /* inflateBack() does a raw inflate with a single call using a call-back interface for input and output. This is potentially more efficient than @@ -1165,7 +1168,7 @@ ZEXTERN int ZEXPORT inflateBack OF((z_streamp strm, cannot return Z_OK. */ -ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); +ZEXTERN int ZEXPORT inflateBackEnd(z_streamp strm); /* All memory allocated by inflateBackInit() is freed. @@ -1173,7 +1176,7 @@ ZEXTERN int ZEXPORT inflateBackEnd OF((z_streamp strm)); state was inconsistent. */ -ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); +ZEXTERN uLong ZEXPORT zlibCompileFlags(void); /* Return flags indicating compile-time options. Type sizes, two bits each, 00 = 16 bits, 01 = 32, 10 = 64, 11 = other: @@ -1226,8 +1229,8 @@ ZEXTERN uLong ZEXPORT zlibCompileFlags OF((void)); you need special options. */ -ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); +ZEXTERN int ZEXPORT compress(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen); /* Compresses the source buffer into the destination buffer. sourceLen is the byte length of the source buffer. Upon entry, destLen is the total size @@ -1241,9 +1244,9 @@ ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, buffer. */ -ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen, - int level)); +ZEXTERN int ZEXPORT compress2(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen, + int level); /* Compresses the source buffer into the destination buffer. The level parameter has the same meaning as in deflateInit. sourceLen is the byte @@ -1257,15 +1260,15 @@ ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, Z_STREAM_ERROR if the level parameter is invalid. */ -ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); +ZEXTERN uLong ZEXPORT compressBound(uLong sourceLen); /* compressBound() returns an upper bound on the compressed size after compress() or compress2() on sourceLen bytes. It would be used before a compress() or compress2() call to allocate the destination buffer. */ -ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); +ZEXTERN int ZEXPORT uncompress(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen); /* Decompresses the source buffer into the destination buffer. sourceLen is the byte length of the source buffer. Upon entry, destLen is the total size @@ -1282,8 +1285,8 @@ ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, buffer with the uncompressed data up to that point. */ -ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong *sourceLen)); +ZEXTERN int ZEXPORT uncompress2(Bytef *dest, uLongf *destLen, + const Bytef *source, uLong *sourceLen); /* Same as uncompress, except that sourceLen is a pointer, where the length of the source is *sourceLen. On return, *sourceLen is the number of @@ -1302,7 +1305,7 @@ ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen, typedef struct gzFile_s *gzFile; /* semi-opaque gzip file descriptor */ /* -ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); +ZEXTERN gzFile ZEXPORT gzopen(const char *path, const char *mode); Open the gzip (.gz) file at path for reading and decompressing, or compressing and writing. The mode parameter is as in fopen ("rb" or "wb") @@ -1339,7 +1342,7 @@ ZEXTERN gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); file could not be opened. */ -ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); +ZEXTERN gzFile ZEXPORT gzdopen(int fd, const char *mode); /* Associate a gzFile with the file descriptor fd. File descriptors are obtained from calls like open, dup, creat, pipe or fileno (if the file has @@ -1362,7 +1365,7 @@ ZEXTERN gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); will not detect if fd is invalid (unless fd is -1). */ -ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); +ZEXTERN int ZEXPORT gzbuffer(gzFile file, unsigned size); /* Set the internal buffer size used by this library's functions for file to size. The default buffer size is 8192 bytes. This function must be called @@ -1378,7 +1381,7 @@ ZEXTERN int ZEXPORT gzbuffer OF((gzFile file, unsigned size)); too late. */ -ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); +ZEXTERN int ZEXPORT gzsetparams(gzFile file, int level, int strategy); /* Dynamically update the compression level and strategy for file. See the description of deflateInit2 for the meaning of these parameters. Previously @@ -1389,7 +1392,7 @@ ZEXTERN int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); or Z_MEM_ERROR if there is a memory allocation error. */ -ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); +ZEXTERN int ZEXPORT gzread(gzFile file, voidp buf, unsigned len); /* Read and decompress up to len uncompressed bytes from file into buf. If the input file is not in gzip format, gzread copies the given number of @@ -1419,8 +1422,8 @@ ZEXTERN int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); Z_STREAM_ERROR. */ -ZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems, - gzFile file)); +ZEXTERN z_size_t ZEXPORT gzfread(voidp buf, z_size_t size, z_size_t nitems, + gzFile file); /* Read and decompress up to nitems items of size size from file into buf, otherwise operating as gzread() does. This duplicates the interface of @@ -1445,14 +1448,14 @@ ZEXTERN z_size_t ZEXPORT gzfread OF((voidp buf, z_size_t size, z_size_t nitems, file, resetting and retrying on end-of-file, when size is not 1. */ -ZEXTERN int ZEXPORT gzwrite OF((gzFile file, voidpc buf, unsigned len)); +ZEXTERN int ZEXPORT gzwrite(gzFile file, voidpc buf, unsigned len); /* Compress and write the len uncompressed bytes at buf to file. gzwrite returns the number of uncompressed bytes written or 0 in case of error. */ -ZEXTERN z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size, - z_size_t nitems, gzFile file)); +ZEXTERN z_size_t ZEXPORT gzfwrite(voidpc buf, z_size_t size, + z_size_t nitems, gzFile file); /* Compress and write nitems items of size size from buf to file, duplicating the interface of stdio's fwrite(), with size_t request and return types. If @@ -1465,7 +1468,7 @@ ZEXTERN z_size_t ZEXPORT gzfwrite OF((voidpc buf, z_size_t size, is returned, and the error state is set to Z_STREAM_ERROR. */ -ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...)); +ZEXTERN int ZEXPORTVA gzprintf(gzFile file, const char *format, ...); /* Convert, format, compress, and write the arguments (...) to file under control of the string format, as in fprintf. gzprintf returns the number of @@ -1480,7 +1483,7 @@ ZEXTERN int ZEXPORTVA gzprintf Z_ARG((gzFile file, const char *format, ...)); This can be determined using zlibCompileFlags(). */ -ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); +ZEXTERN int ZEXPORT gzputs(gzFile file, const char *s); /* Compress and write the given null-terminated string s to file, excluding the terminating null character. @@ -1488,7 +1491,7 @@ ZEXTERN int ZEXPORT gzputs OF((gzFile file, const char *s)); gzputs returns the number of characters written, or -1 in case of error. */ -ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); +ZEXTERN char * ZEXPORT gzgets(gzFile file, char *buf, int len); /* Read and decompress bytes from file into buf, until len-1 characters are read, or until a newline character is read and transferred to buf, or an @@ -1502,13 +1505,13 @@ ZEXTERN char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); buf are indeterminate. */ -ZEXTERN int ZEXPORT gzputc OF((gzFile file, int c)); +ZEXTERN int ZEXPORT gzputc(gzFile file, int c); /* Compress and write c, converted to an unsigned char, into file. gzputc returns the value that was written, or -1 in case of error. */ -ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); +ZEXTERN int ZEXPORT gzgetc(gzFile file); /* Read and decompress one byte from file. gzgetc returns this byte or -1 in case of end of file or error. This is implemented as a macro for speed. @@ -1517,7 +1520,7 @@ ZEXTERN int ZEXPORT gzgetc OF((gzFile file)); points to has been clobbered or not. */ -ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); +ZEXTERN int ZEXPORT gzungetc(int c, gzFile file); /* Push c back onto the stream for file to be read as the first character on the next read. At least one character of push-back is always allowed. @@ -1529,7 +1532,7 @@ ZEXTERN int ZEXPORT gzungetc OF((int c, gzFile file)); gzseek() or gzrewind(). */ -ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); +ZEXTERN int ZEXPORT gzflush(gzFile file, int flush); /* Flush all pending output to file. The parameter flush is as in the deflate() function. The return value is the zlib error number (see function @@ -1545,8 +1548,8 @@ ZEXTERN int ZEXPORT gzflush OF((gzFile file, int flush)); */ /* -ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, - z_off_t offset, int whence)); +ZEXTERN z_off_t ZEXPORT gzseek(gzFile file, + z_off_t offset, int whence); Set the starting position to offset relative to whence for the next gzread or gzwrite on file. The offset represents a number of bytes in the @@ -1564,7 +1567,7 @@ ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile file, would be before the current position. */ -ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); +ZEXTERN int ZEXPORT gzrewind(gzFile file); /* Rewind file. This function is supported only for reading. @@ -1572,7 +1575,7 @@ ZEXTERN int ZEXPORT gzrewind OF((gzFile file)); */ /* -ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); +ZEXTERN z_off_t ZEXPORT gztell(gzFile file); Return the starting position for the next gzread or gzwrite on file. This position represents a number of bytes in the uncompressed data stream, @@ -1583,7 +1586,7 @@ ZEXTERN z_off_t ZEXPORT gztell OF((gzFile file)); */ /* -ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); +ZEXTERN z_off_t ZEXPORT gzoffset(gzFile file); Return the current compressed (actual) read or write offset of file. This offset includes the count of bytes that precede the gzip stream, for example @@ -1592,7 +1595,7 @@ ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile file)); be used for a progress indicator. On error, gzoffset() returns -1. */ -ZEXTERN int ZEXPORT gzeof OF((gzFile file)); +ZEXTERN int ZEXPORT gzeof(gzFile file); /* Return true (1) if the end-of-file indicator for file has been set while reading, false (0) otherwise. Note that the end-of-file indicator is set @@ -1607,7 +1610,7 @@ ZEXTERN int ZEXPORT gzeof OF((gzFile file)); has grown since the previous end of file was detected. */ -ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); +ZEXTERN int ZEXPORT gzdirect(gzFile file); /* Return true (1) if file is being copied directly while reading, or false (0) if file is a gzip stream being decompressed. @@ -1628,7 +1631,7 @@ ZEXTERN int ZEXPORT gzdirect OF((gzFile file)); gzip file reading and decompression, which may not be desired.) */ -ZEXTERN int ZEXPORT gzclose OF((gzFile file)); +ZEXTERN int ZEXPORT gzclose(gzFile file); /* Flush all pending output for file, if necessary, close file and deallocate the (de)compression state. Note that once file is closed, you @@ -1641,8 +1644,8 @@ ZEXTERN int ZEXPORT gzclose OF((gzFile file)); last read ended in the middle of a gzip stream, or Z_OK on success. */ -ZEXTERN int ZEXPORT gzclose_r OF((gzFile file)); -ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); +ZEXTERN int ZEXPORT gzclose_r(gzFile file); +ZEXTERN int ZEXPORT gzclose_w(gzFile file); /* Same as gzclose(), but gzclose_r() is only for use when reading, and gzclose_w() is only for use when writing or appending. The advantage to @@ -1653,7 +1656,7 @@ ZEXTERN int ZEXPORT gzclose_w OF((gzFile file)); zlib library. */ -ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); +ZEXTERN const char * ZEXPORT gzerror(gzFile file, int *errnum); /* Return the error message for the last error which occurred on file. errnum is set to zlib error number. If an error occurred in the file system @@ -1669,7 +1672,7 @@ ZEXTERN const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); functions above that do not distinguish those cases in their return values. */ -ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); +ZEXTERN void ZEXPORT gzclearerr(gzFile file); /* Clear the error and end-of-file flags for file. This is analogous to the clearerr() function in stdio. This is useful for continuing to read a gzip @@ -1686,7 +1689,7 @@ ZEXTERN void ZEXPORT gzclearerr OF((gzFile file)); library. */ -ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); +ZEXTERN uLong ZEXPORT adler32(uLong adler, const Bytef *buf, uInt len); /* Update a running Adler-32 checksum with the bytes buf[0..len-1] and return the updated checksum. An Adler-32 value is in the range of a 32-bit @@ -1706,15 +1709,15 @@ ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); if (adler != original_adler) error(); */ -ZEXTERN uLong ZEXPORT adler32_z OF((uLong adler, const Bytef *buf, - z_size_t len)); +ZEXTERN uLong ZEXPORT adler32_z(uLong adler, const Bytef *buf, + z_size_t len); /* Same as adler32(), but with a size_t length. */ /* -ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, - z_off_t len2)); +ZEXTERN uLong ZEXPORT adler32_combine(uLong adler1, uLong adler2, + z_off_t len2); Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for @@ -1724,7 +1727,7 @@ ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, negative, the result has no meaning or utility. */ -ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); +ZEXTERN uLong ZEXPORT crc32(uLong crc, const Bytef *buf, uInt len); /* Update a running CRC-32 with the bytes buf[0..len-1] and return the updated CRC-32. A CRC-32 value is in the range of a 32-bit unsigned integer. @@ -1742,14 +1745,14 @@ ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); if (crc != original_crc) error(); */ -ZEXTERN uLong ZEXPORT crc32_z OF((uLong crc, const Bytef *buf, - z_size_t len)); +ZEXTERN uLong ZEXPORT crc32_z(uLong crc, const Bytef *buf, + z_size_t len); /* Same as crc32(), but with a size_t length. */ /* -ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); +ZEXTERN uLong ZEXPORT crc32_combine(uLong crc1, uLong crc2, z_off_t len2); Combine two CRC-32 check values into one. For two sequences of bytes, seq1 and seq2 with lengths len1 and len2, CRC-32 check values were @@ -1759,13 +1762,13 @@ ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); */ /* -ZEXTERN uLong ZEXPORT crc32_combine_gen OF((z_off_t len2)); +ZEXTERN uLong ZEXPORT crc32_combine_gen(z_off_t len2); Return the operator corresponding to length len2, to be used with crc32_combine_op(). */ -ZEXTERN uLong ZEXPORT crc32_combine_op OF((uLong crc1, uLong crc2, uLong op)); +ZEXTERN uLong ZEXPORT crc32_combine_op(uLong crc1, uLong crc2, uLong op); /* Give the same result as crc32_combine(), using op in place of len2. op is is generated from len2 by crc32_combine_gen(). This will be faster than @@ -1778,20 +1781,20 @@ ZEXTERN uLong ZEXPORT crc32_combine_op OF((uLong crc1, uLong crc2, uLong op)); /* deflateInit and inflateInit are macros to allow checking the zlib version * and the compiler's view of z_stream: */ -ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, - int windowBits, int memLevel, - int strategy, const char *version, - int stream_size)); -ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, - const char *version, int stream_size)); -ZEXTERN int ZEXPORT inflateBackInit_ OF((z_streamp strm, int windowBits, - unsigned char FAR *window, - const char *version, - int stream_size)); +ZEXTERN int ZEXPORT deflateInit_(z_streamp strm, int level, + const char *version, int stream_size); +ZEXTERN int ZEXPORT inflateInit_(z_streamp strm, + const char *version, int stream_size); +ZEXTERN int ZEXPORT deflateInit2_(z_streamp strm, int level, int method, + int windowBits, int memLevel, + int strategy, const char *version, + int stream_size); +ZEXTERN int ZEXPORT inflateInit2_(z_streamp strm, int windowBits, + const char *version, int stream_size); +ZEXTERN int ZEXPORT inflateBackInit_(z_streamp strm, int windowBits, + unsigned char FAR *window, + const char *version, + int stream_size); #ifdef Z_PREFIX_SET # define z_deflateInit(strm, level) \ deflateInit_((strm), (level), ZLIB_VERSION, (int)sizeof(z_stream)) @@ -1836,7 +1839,7 @@ struct gzFile_s { unsigned char *next; z_off64_t pos; }; -ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ +ZEXTERN int ZEXPORT gzgetc_(gzFile file); /* backward compatibility */ #ifdef Z_PREFIX_SET # undef z_gzgetc # define z_gzgetc(g) \ @@ -1853,13 +1856,13 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ * without large file support, _LFS64_LARGEFILE must also be true */ #ifdef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off64_t ZEXPORT gzseek64 OF((gzFile, z_off64_t, int)); - ZEXTERN z_off64_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off64_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off64_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off64_t)); - ZEXTERN uLong ZEXPORT crc32_combine_gen64 OF((z_off64_t)); + ZEXTERN gzFile ZEXPORT gzopen64(const char *, const char *); + ZEXTERN z_off64_t ZEXPORT gzseek64(gzFile, z_off64_t, int); + ZEXTERN z_off64_t ZEXPORT gztell64(gzFile); + ZEXTERN z_off64_t ZEXPORT gzoffset64(gzFile); + ZEXTERN uLong ZEXPORT adler32_combine64(uLong, uLong, z_off64_t); + ZEXTERN uLong ZEXPORT crc32_combine64(uLong, uLong, z_off64_t); + ZEXTERN uLong ZEXPORT crc32_combine_gen64(z_off64_t); #endif #if !defined(ZLIB_INTERNAL) && defined(Z_WANT64) @@ -1881,50 +1884,50 @@ ZEXTERN int ZEXPORT gzgetc_ OF((gzFile file)); /* backward compatibility */ # define crc32_combine_gen crc32_combine_gen64 # endif # ifndef Z_LARGE64 - ZEXTERN gzFile ZEXPORT gzopen64 OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek64 OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell64 OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset64 OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine64 OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine64 OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine_gen64 OF((z_off_t)); + ZEXTERN gzFile ZEXPORT gzopen64(const char *, const char *); + ZEXTERN z_off_t ZEXPORT gzseek64(gzFile, z_off_t, int); + ZEXTERN z_off_t ZEXPORT gztell64(gzFile); + ZEXTERN z_off_t ZEXPORT gzoffset64(gzFile); + ZEXTERN uLong ZEXPORT adler32_combine64(uLong, uLong, z_off_t); + ZEXTERN uLong ZEXPORT crc32_combine64(uLong, uLong, z_off_t); + ZEXTERN uLong ZEXPORT crc32_combine_gen64(z_off_t); # endif #else - ZEXTERN gzFile ZEXPORT gzopen OF((const char *, const char *)); - ZEXTERN z_off_t ZEXPORT gzseek OF((gzFile, z_off_t, int)); - ZEXTERN z_off_t ZEXPORT gztell OF((gzFile)); - ZEXTERN z_off_t ZEXPORT gzoffset OF((gzFile)); - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine_gen OF((z_off_t)); + ZEXTERN gzFile ZEXPORT gzopen(const char *, const char *); + ZEXTERN z_off_t ZEXPORT gzseek(gzFile, z_off_t, int); + ZEXTERN z_off_t ZEXPORT gztell(gzFile); + ZEXTERN z_off_t ZEXPORT gzoffset(gzFile); + ZEXTERN uLong ZEXPORT adler32_combine(uLong, uLong, z_off_t); + ZEXTERN uLong ZEXPORT crc32_combine(uLong, uLong, z_off_t); + ZEXTERN uLong ZEXPORT crc32_combine_gen(z_off_t); #endif #else /* Z_SOLO */ - ZEXTERN uLong ZEXPORT adler32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine OF((uLong, uLong, z_off_t)); - ZEXTERN uLong ZEXPORT crc32_combine_gen OF((z_off_t)); + ZEXTERN uLong ZEXPORT adler32_combine(uLong, uLong, z_off_t); + ZEXTERN uLong ZEXPORT crc32_combine(uLong, uLong, z_off_t); + ZEXTERN uLong ZEXPORT crc32_combine_gen(z_off_t); #endif /* !Z_SOLO */ /* undocumented functions */ -ZEXTERN const char * ZEXPORT zError OF((int)); -ZEXTERN int ZEXPORT inflateSyncPoint OF((z_streamp)); -ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table OF((void)); -ZEXTERN int ZEXPORT inflateUndermine OF((z_streamp, int)); -ZEXTERN int ZEXPORT inflateValidate OF((z_streamp, int)); -ZEXTERN unsigned long ZEXPORT inflateCodesUsed OF((z_streamp)); -ZEXTERN int ZEXPORT inflateResetKeep OF((z_streamp)); -ZEXTERN int ZEXPORT deflateResetKeep OF((z_streamp)); +ZEXTERN const char * ZEXPORT zError(int); +ZEXTERN int ZEXPORT inflateSyncPoint(z_streamp); +ZEXTERN const z_crc_t FAR * ZEXPORT get_crc_table(void); +ZEXTERN int ZEXPORT inflateUndermine(z_streamp, int); +ZEXTERN int ZEXPORT inflateValidate(z_streamp, int); +ZEXTERN unsigned long ZEXPORT inflateCodesUsed(z_streamp); +ZEXTERN int ZEXPORT inflateResetKeep(z_streamp); +ZEXTERN int ZEXPORT deflateResetKeep(z_streamp); #if defined(_WIN32) && !defined(Z_SOLO) -ZEXTERN gzFile ZEXPORT gzopen_w OF((const wchar_t *path, - const char *mode)); +ZEXTERN gzFile ZEXPORT gzopen_w(const wchar_t *path, + const char *mode); #endif #if defined(STDC) || defined(Z_HAVE_STDARG_H) # ifndef Z_SOLO -ZEXTERN int ZEXPORTVA gzvprintf Z_ARG((gzFile file, - const char *format, - va_list va)); +ZEXTERN int ZEXPORTVA gzvprintf(gzFile file, + const char *format, + va_list va); # endif #endif diff --git a/Foundation/src/zutil.c b/Foundation/src/zutil.c index 9543ae825..b1c5d2d3c 100644 --- a/Foundation/src/zutil.c +++ b/Foundation/src/zutil.c @@ -24,13 +24,11 @@ z_const char * const z_errmsg[10] = { }; -const char * ZEXPORT zlibVersion() -{ +const char * ZEXPORT zlibVersion(void) { return ZLIB_VERSION; } -uLong ZEXPORT zlibCompileFlags() -{ +uLong ZEXPORT zlibCompileFlags(void) { uLong flags; flags = 0; @@ -121,9 +119,7 @@ uLong ZEXPORT zlibCompileFlags() # endif int ZLIB_INTERNAL z_verbose = verbose; -void ZLIB_INTERNAL z_error(m) - char *m; -{ +void ZLIB_INTERNAL z_error(char *m) { fprintf(stderr, "%s\n", m); exit(1); } @@ -132,9 +128,7 @@ void ZLIB_INTERNAL z_error(m) /* exported to allow conversion of error code to string for compress() and * uncompress() */ -const char * ZEXPORT zError(err) - int err; -{ +const char * ZEXPORT zError(int err) { return ERR_MSG(err); } @@ -148,22 +142,14 @@ const char * ZEXPORT zError(err) #ifndef HAVE_MEMCPY -void ZLIB_INTERNAL zmemcpy(dest, source, len) - Bytef* dest; - const Bytef* source; - uInt len; -{ +void ZLIB_INTERNAL zmemcpy(Bytef* dest, const Bytef* source, uInt len) { if (len == 0) return; do { *dest++ = *source++; /* ??? to be unrolled */ } while (--len != 0); } -int ZLIB_INTERNAL zmemcmp(s1, s2, len) - const Bytef* s1; - const Bytef* s2; - uInt len; -{ +int ZLIB_INTERNAL zmemcmp(const Bytef* s1, const Bytef* s2, uInt len) { uInt j; for (j = 0; j < len; j++) { @@ -172,10 +158,7 @@ int ZLIB_INTERNAL zmemcmp(s1, s2, len) return 0; } -void ZLIB_INTERNAL zmemzero(dest, len) - Bytef* dest; - uInt len; -{ +void ZLIB_INTERNAL zmemzero(Bytef* dest, uInt len) { if (len == 0) return; do { *dest++ = 0; /* ??? to be unrolled */ @@ -216,8 +199,7 @@ local ptr_table table[MAX_PTR]; * a protected system like OS/2. Use Microsoft C instead. */ -voidpf ZLIB_INTERNAL zcalloc(voidpf opaque, unsigned items, unsigned size) -{ +voidpf ZLIB_INTERNAL zcalloc(voidpf opaque, unsigned items, unsigned size) { voidpf buf; ulg bsize = (ulg)items*size; @@ -242,8 +224,7 @@ voidpf ZLIB_INTERNAL zcalloc(voidpf opaque, unsigned items, unsigned size) return buf; } -void ZLIB_INTERNAL zcfree(voidpf opaque, voidpf ptr) -{ +void ZLIB_INTERNAL zcfree(voidpf opaque, voidpf ptr) { int n; (void)opaque; @@ -279,14 +260,12 @@ void ZLIB_INTERNAL zcfree(voidpf opaque, voidpf ptr) # define _hfree hfree #endif -voidpf ZLIB_INTERNAL zcalloc(voidpf opaque, uInt items, uInt size) -{ +voidpf ZLIB_INTERNAL zcalloc(voidpf opaque, uInt items, uInt size) { (void)opaque; return _halloc((long)items, size); } -void ZLIB_INTERNAL zcfree(voidpf opaque, voidpf ptr) -{ +void ZLIB_INTERNAL zcfree(voidpf opaque, voidpf ptr) { (void)opaque; _hfree(ptr); } @@ -299,25 +278,18 @@ void ZLIB_INTERNAL zcfree(voidpf opaque, voidpf ptr) #ifndef MY_ZCALLOC /* Any system without a special alloc function */ #ifndef STDC -extern voidp malloc OF((uInt size)); -extern voidp calloc OF((uInt items, uInt size)); -extern void free OF((voidpf ptr)); +extern voidp malloc(uInt size); +extern voidp calloc(uInt items, uInt size); +extern void free(voidpf ptr); #endif -voidpf ZLIB_INTERNAL zcalloc(opaque, items, size) - voidpf opaque; - unsigned items; - unsigned size; -{ +voidpf ZLIB_INTERNAL zcalloc(voidpf opaque, unsigned items, unsigned size) { (void)opaque; return sizeof(uInt) > 2 ? (voidpf)malloc(items * size) : (voidpf)calloc(items, size); } -void ZLIB_INTERNAL zcfree(opaque, ptr) - voidpf opaque; - voidpf ptr; -{ +void ZLIB_INTERNAL zcfree(voidpf opaque, voidpf ptr) { (void)opaque; free(ptr); } From 1db6fb9a2e39f80fd1fb244a0794bb8d0bb6da58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sat, 30 Sep 2023 12:23:31 +0200 Subject: [PATCH 078/395] bump version --- CHANGELOG | 13 +++++++++++++ DLLVersion.rc | 4 ++-- Foundation/include/Poco/Version.h | 4 ++-- VERSION | 2 +- doc/99100-ReleaseNotes.page | 14 ++++++++++++++ libversion | 2 +- 6 files changed, 33 insertions(+), 6 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 66afe2de4..6e301b93d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,18 @@ This is the changelog file for the POCO C++ Libraries. +Release 1.13.0 (2023-10-XX) +=========================== + +- TODO + + +Release 1.12.4 (2022-10-31) +=========================== + +- GH #3849: Upgrade bundled libexpat to 2.5.0 [fixes CVE] +- GH #3852: SocketReactor - 100 % CPU usage on single-core system + + Release 1.12.3 (2022-10-24) =========================== diff --git a/DLLVersion.rc b/DLLVersion.rc index 8abf5cec2..67a982fc3 100644 --- a/DLLVersion.rc +++ b/DLLVersion.rc @@ -4,8 +4,8 @@ #include "winres.h" -#define POCO_VERSION 1,12,3,0 -#define POCO_VERSION_STR "1.12.3" +#define POCO_VERSION 1,13,0,0 +#define POCO_VERSION_STR "1.13.0" VS_VERSION_INFO VERSIONINFO FILEVERSION POCO_VERSION diff --git a/Foundation/include/Poco/Version.h b/Foundation/include/Poco/Version.h index a356b6803..fadbafacf 100644 --- a/Foundation/include/Poco/Version.h +++ b/Foundation/include/Poco/Version.h @@ -7,7 +7,7 @@ // // Version information for the POCO C++ Libraries. // -// Copyright (c) 2004-2016, Applied Informatics Software Engineering GmbH. +// Copyright (c) 2004-2023, Applied Informatics Software Engineering GmbH. // and Contributors. // // SPDX-License-Identifier: BSL-1.0 @@ -36,6 +36,6 @@ // Bx: beta releases // -#define POCO_VERSION 0x010C0300 +#define POCO_VERSION 0x010D0000 #endif // Foundation_Version_INCLUDED diff --git a/VERSION b/VERSION index 81f363239..feaae22ba 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.12.3 +1.13.0 diff --git a/doc/99100-ReleaseNotes.page b/doc/99100-ReleaseNotes.page index 817ef2ed2..3f2cda56c 100644 --- a/doc/99100-ReleaseNotes.page +++ b/doc/99100-ReleaseNotes.page @@ -1,6 +1,20 @@ POCO C++ Libraries Release Notes AAAIntroduction +!!!Release 1.13.0 + +!!Summary of Changes + + - TODO + + +!!!Release 1.12.4 + +!!Summary of Changes + + - GH #3849: Upgrade bundled libexpat to 2.5.0 [fixes CVE] + - GH #3852: SocketReactor - 100 % CPU usage on single-core system + !!!Release 1.12.3 diff --git a/libversion b/libversion index c67f579c9..29d6383b5 100644 --- a/libversion +++ b/libversion @@ -1 +1 @@ -93 +100 From 4244c3251fd679d8d0f3d8a257b0c2886eb774f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sat, 30 Sep 2023 12:26:11 +0200 Subject: [PATCH 079/395] #4170: Poco::FileStream is always opened with std::ios::in | std::ios::out --- Foundation/include/Poco/FileStream.h | 8 ++++++++ Foundation/src/FileStream.cpp | 19 +++++++++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/Foundation/include/Poco/FileStream.h b/Foundation/include/Poco/FileStream.h index 7c76ad018..2a3d3ca7c 100644 --- a/Foundation/include/Poco/FileStream.h +++ b/Foundation/include/Poco/FileStream.h @@ -60,6 +60,14 @@ public: /// does not exist or is not accessible for other reasons and /// a new file cannot be created. + void open(const std::string& path); + /// Opens the file specified by path, using the default mode given + /// in the constructor. + /// + /// Throws a FileException (or a similar exception) if the file + /// does not exist or is not accessible for other reasons and + /// a new file cannot be created. + void close(); /// Closes the file stream. /// diff --git a/Foundation/src/FileStream.cpp b/Foundation/src/FileStream.cpp index 4f94a2490..158cdb5e8 100644 --- a/Foundation/src/FileStream.cpp +++ b/Foundation/src/FileStream.cpp @@ -39,7 +39,14 @@ FileIOS::~FileIOS() void FileIOS::open(const std::string& path, std::ios::openmode mode) { clear(); - _buf.open(path, mode | _defaultMode); + _buf.open(path, mode); +} + + +void FileIOS::open(const std::string& path) +{ + clear(); + _buf.open(path, _defaultMode); } @@ -66,10 +73,10 @@ FileInputStream::FileInputStream(): FileInputStream::FileInputStream(const std::string& path, std::ios::openmode mode): - FileIOS(std::ios::in), + FileIOS(mode | std::ios::in), std::istream(&_buf) { - open(path, mode); + open(path, mode | std::ios::in); } @@ -86,10 +93,10 @@ FileOutputStream::FileOutputStream(): FileOutputStream::FileOutputStream(const std::string& path, std::ios::openmode mode): - FileIOS(std::ios::out), + FileIOS(mode | std::ios::out), std::ostream(&_buf) { - open(path, mode); + open(path, mode | std::ios::out); } @@ -106,7 +113,7 @@ FileStream::FileStream(): FileStream::FileStream(const std::string& path, std::ios::openmode mode): - FileIOS(std::ios::in | std::ios::out), + FileIOS(mode), std::iostream(&_buf) { open(path, mode); From c209148ba7538b506aaf030ccc00c2a46f32ac43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sat, 30 Sep 2023 12:27:20 +0200 Subject: [PATCH 080/395] #4171: Upgrade bundled sqlite to 3.43.1 --- Data/SQLite/src/sqlite3.c | 7881 ++++++++++++++++++++++++++----------- Data/SQLite/src/sqlite3.h | 106 +- 2 files changed, 5609 insertions(+), 2378 deletions(-) diff --git a/Data/SQLite/src/sqlite3.c b/Data/SQLite/src/sqlite3.c index dd3b5c575..1884b0823 100644 --- a/Data/SQLite/src/sqlite3.c +++ b/Data/SQLite/src/sqlite3.c @@ -1,6 +1,6 @@ /****************************************************************************** ** This file is an amalgamation of many separate C source files from SQLite -** version 3.42.0. By combining all the individual C code files into this +** version 3.43.1. By combining all the individual C code files into this ** single large file, the entire code can be compiled as a single translation ** unit. This allows many compilers to do optimizations that would not be ** possible if the files were compiled separately. Performance improvements @@ -16,6 +16,9 @@ ** if you want a wrapper to interface SQLite with your choice of programming ** language. The code for the "sqlite3" command-line shell is also in a ** separate file. This file contains only code for the core SQLite library. +** +** The content in this amalgamation comes from Fossil check-in +** d3a40c05c49e1a49264912b1a05bc2143ac. */ #define SQLITE_CORE 1 #define SQLITE_AMALGAMATION 1 @@ -50,11 +53,11 @@ ** used on lines of code that actually ** implement parts of coverage testing. ** -** OPTIMIZATION-IF-TRUE - This branch is allowed to alway be false +** OPTIMIZATION-IF-TRUE - This branch is allowed to always be false ** and the correct answer is still obtained, ** though perhaps more slowly. ** -** OPTIMIZATION-IF-FALSE - This branch is allowed to alway be true +** OPTIMIZATION-IF-FALSE - This branch is allowed to always be true ** and the correct answer is still obtained, ** though perhaps more slowly. ** @@ -456,9 +459,9 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.42.0" -#define SQLITE_VERSION_NUMBER 3042000 -#define SQLITE_SOURCE_ID "2023-05-16 12:36:15 831d0fb2836b71c9bc51067c49fee4b8f18047814f2ff22d817d25195cf350b0" +#define SQLITE_VERSION "3.43.1" +#define SQLITE_VERSION_NUMBER 3043001 +#define SQLITE_SOURCE_ID "2023-09-11 12:01:27 2d3a40c05c49e1a49264912b1a05bc2143ac0e7c3df588276ce80a4cbc9bd1b0" /* ** CAPI3REF: Run-Time Library Version Numbers @@ -838,6 +841,7 @@ SQLITE_API int sqlite3_exec( #define SQLITE_IOERR_ROLLBACK_ATOMIC (SQLITE_IOERR | (31<<8)) #define SQLITE_IOERR_DATA (SQLITE_IOERR | (32<<8)) #define SQLITE_IOERR_CORRUPTFS (SQLITE_IOERR | (33<<8)) +#define SQLITE_IOERR_IN_PAGE (SQLITE_IOERR | (34<<8)) #define SQLITE_LOCKED_SHAREDCACHE (SQLITE_LOCKED | (1<<8)) #define SQLITE_LOCKED_VTAB (SQLITE_LOCKED | (2<<8)) #define SQLITE_BUSY_RECOVERY (SQLITE_BUSY | (1<<8)) @@ -1500,7 +1504,7 @@ struct sqlite3_io_methods { ** by clients within the current process, only within other processes. ** **
    11. [[SQLITE_FCNTL_CKSM_FILE]] -** The [SQLITE_FCNTL_CKSM_FILE] opcode is for use interally by the +** The [SQLITE_FCNTL_CKSM_FILE] opcode is for use internally by the ** [checksum VFS shim] only. ** **
    12. [[SQLITE_FCNTL_RESET_CACHE]] @@ -2764,7 +2768,7 @@ struct sqlite3_mem_methods { ** the [VACUUM] command will fail with an obscure error when attempting to ** process a table with generated columns and a descending index. This is ** not considered a bug since SQLite versions 3.3.0 and earlier do not support -** either generated columns or decending indexes. +** either generated columns or descending indexes. **
    13. ** ** [[SQLITE_DBCONFIG_STMT_SCANSTATUS]] @@ -3045,6 +3049,7 @@ SQLITE_API sqlite3_int64 sqlite3_total_changes64(sqlite3*); ** ** ^The [sqlite3_is_interrupted(D)] interface can be used to determine whether ** or not an interrupt is currently in effect for [database connection] D. +** It returns 1 if an interrupt is currently in effect, or 0 otherwise. */ SQLITE_API void sqlite3_interrupt(sqlite3*); SQLITE_API int sqlite3_is_interrupted(sqlite3*); @@ -3698,8 +3703,10 @@ SQLITE_API SQLITE_DEPRECATED void *sqlite3_profile(sqlite3*, ** M argument should be the bitwise OR-ed combination of ** zero or more [SQLITE_TRACE] constants. ** -** ^Each call to either sqlite3_trace() or sqlite3_trace_v2() overrides -** (cancels) any prior calls to sqlite3_trace() or sqlite3_trace_v2(). +** ^Each call to either sqlite3_trace(D,X,P) or sqlite3_trace_v2(D,M,X,P) +** overrides (cancels) all prior calls to sqlite3_trace(D,X,P) or +** sqlite3_trace_v2(D,M,X,P) for the [database connection] D. Each +** database connection may have at most one trace callback. ** ** ^The X callback is invoked whenever any of the events identified by ** mask M occur. ^The integer return value from the callback is currently @@ -4068,7 +4075,7 @@ SQLITE_API int sqlite3_open_v2( ** as F) must be one of: **
        **
      • A database filename pointer created by the SQLite core and -** passed into the xOpen() method of a VFS implemention, or +** passed into the xOpen() method of a VFS implementation, or **
      • A filename obtained from [sqlite3_db_filename()], or **
      • A new filename constructed using [sqlite3_create_filename()]. **
      @@ -4181,7 +4188,7 @@ SQLITE_API sqlite3_file *sqlite3_database_file_object(const char*); /* ** CAPI3REF: Create and Destroy VFS Filenames ** -** These interfces are provided for use by [VFS shim] implementations and +** These interfaces are provided for use by [VFS shim] implementations and ** are not useful outside of that context. ** ** The sqlite3_create_filename(D,J,W,N,P) allocates memory to hold a version of @@ -4728,6 +4735,41 @@ SQLITE_API int sqlite3_stmt_readonly(sqlite3_stmt *pStmt); */ SQLITE_API int sqlite3_stmt_isexplain(sqlite3_stmt *pStmt); +/* +** CAPI3REF: Change The EXPLAIN Setting For A Prepared Statement +** METHOD: sqlite3_stmt +** +** The sqlite3_stmt_explain(S,E) interface changes the EXPLAIN +** setting for [prepared statement] S. If E is zero, then S becomes +** a normal prepared statement. If E is 1, then S behaves as if +** its SQL text began with "[EXPLAIN]". If E is 2, then S behaves as if +** its SQL text began with "[EXPLAIN QUERY PLAN]". +** +** Calling sqlite3_stmt_explain(S,E) might cause S to be reprepared. +** SQLite tries to avoid a reprepare, but a reprepare might be necessary +** on the first transition into EXPLAIN or EXPLAIN QUERY PLAN mode. +** +** Because of the potential need to reprepare, a call to +** sqlite3_stmt_explain(S,E) will fail with SQLITE_ERROR if S cannot be +** reprepared because it was created using [sqlite3_prepare()] instead of +** the newer [sqlite3_prepare_v2()] or [sqlite3_prepare_v3()] interfaces and +** hence has no saved SQL text with which to reprepare. +** +** Changing the explain setting for a prepared statement does not change +** the original SQL text for the statement. Hence, if the SQL text originally +** began with EXPLAIN or EXPLAIN QUERY PLAN, but sqlite3_stmt_explain(S,0) +** is called to convert the statement into an ordinary statement, the EXPLAIN +** or EXPLAIN QUERY PLAN keywords will still appear in the sqlite3_sql(S) +** output, even though the statement now acts like a normal SQL statement. +** +** This routine returns SQLITE_OK if the explain mode is successfully +** changed, or an error code if the explain mode could not be changed. +** The explain mode cannot be changed while a statement is active. +** Hence, it is good practice to call [sqlite3_reset(S)] +** immediately prior to calling sqlite3_stmt_explain(S,E). +*/ +SQLITE_API int sqlite3_stmt_explain(sqlite3_stmt *pStmt, int eMode); + /* ** CAPI3REF: Determine If A Prepared Statement Has Been Reset ** METHOD: sqlite3_stmt @@ -4891,7 +4933,7 @@ typedef struct sqlite3_context sqlite3_context; ** with it may be passed. ^It is called to dispose of the BLOB or string even ** if the call to the bind API fails, except the destructor is not called if ** the third parameter is a NULL pointer or the fourth parameter is negative. -** ^ (2) The special constant, [SQLITE_STATIC], may be passsed to indicate that +** ^ (2) The special constant, [SQLITE_STATIC], may be passed to indicate that ** the application remains responsible for disposing of the object. ^In this ** case, the object and the provided pointer to it must remain valid until ** either the prepared statement is finalized or the same SQL parameter is @@ -5570,14 +5612,26 @@ SQLITE_API int sqlite3_finalize(sqlite3_stmt *pStmt); ** ^The [sqlite3_reset(S)] interface resets the [prepared statement] S ** back to the beginning of its program. ** -** ^If the most recent call to [sqlite3_step(S)] for the -** [prepared statement] S returned [SQLITE_ROW] or [SQLITE_DONE], -** or if [sqlite3_step(S)] has never before been called on S, -** then [sqlite3_reset(S)] returns [SQLITE_OK]. +** ^The return code from [sqlite3_reset(S)] indicates whether or not +** the previous evaluation of prepared statement S completed successfully. +** ^If [sqlite3_step(S)] has never before been called on S or if +** [sqlite3_step(S)] has not been called since the previous call +** to [sqlite3_reset(S)], then [sqlite3_reset(S)] will return +** [SQLITE_OK]. ** ** ^If the most recent call to [sqlite3_step(S)] for the ** [prepared statement] S indicated an error, then ** [sqlite3_reset(S)] returns an appropriate [error code]. +** ^The [sqlite3_reset(S)] interface might also return an [error code] +** if there were no prior errors but the process of resetting +** the prepared statement caused a new error. ^For example, if an +** [INSERT] statement with a [RETURNING] clause is only stepped one time, +** that one call to [sqlite3_step(S)] might return SQLITE_ROW but +** the overall statement might still fail and the [sqlite3_reset(S)] call +** might return SQLITE_BUSY if locking constraints prevent the +** database change from committing. Therefore, it is important that +** applications check the return code from [sqlite3_reset(S)] even if +** no prior call to [sqlite3_step(S)] indicated a problem. ** ** ^The [sqlite3_reset(S)] interface does not change the values ** of any [sqlite3_bind_blob|bindings] on the [prepared statement] S. @@ -5794,7 +5848,7 @@ SQLITE_API int sqlite3_create_window_function( ** [application-defined SQL function] ** that has side-effects or that could potentially leak sensitive information. ** This will prevent attacks in which an application is tricked -** into using a database file that has had its schema surreptiously +** into using a database file that has had its schema surreptitiously ** modified to invoke the application-defined function in ways that are ** harmful. **

      @@ -8471,7 +8525,8 @@ SQLITE_API int sqlite3_test_control(int op, ...); #define SQLITE_TESTCTRL_TRACEFLAGS 31 #define SQLITE_TESTCTRL_TUNE 32 #define SQLITE_TESTCTRL_LOGEST 33 -#define SQLITE_TESTCTRL_LAST 33 /* Largest TESTCTRL */ +#define SQLITE_TESTCTRL_USELONGDOUBLE 34 +#define SQLITE_TESTCTRL_LAST 34 /* Largest TESTCTRL */ /* ** CAPI3REF: SQL Keyword Checking @@ -9503,8 +9558,8 @@ SQLITE_API int sqlite3_backup_pagecount(sqlite3_backup *p); ** blocked connection already has a registered unlock-notify callback, ** then the new callback replaces the old.)^ ^If sqlite3_unlock_notify() is ** called with a NULL pointer as its second argument, then any existing -** unlock-notify callback is canceled. ^The blocked connections -** unlock-notify callback may also be canceled by closing the blocked +** unlock-notify callback is cancelled. ^The blocked connections +** unlock-notify callback may also be cancelled by closing the blocked ** connection using [sqlite3_close()]. ** ** The unlock-notify callback is not reentrant. If an application invokes @@ -9927,7 +9982,7 @@ SQLITE_API int sqlite3_vtab_config(sqlite3*, int op, ...); ** [[SQLITE_VTAB_DIRECTONLY]]

      SQLITE_VTAB_DIRECTONLY
      **
      Calls of the form ** [sqlite3_vtab_config](db,SQLITE_VTAB_DIRECTONLY) from within the -** the [xConnect] or [xCreate] methods of a [virtual table] implmentation +** the [xConnect] or [xCreate] methods of a [virtual table] implementation ** prohibits that virtual table from being used from within triggers and ** views. **
      @@ -10117,7 +10172,7 @@ SQLITE_API int sqlite3_vtab_distinct(sqlite3_index_info*); ** communicated to the xBestIndex method as a ** [SQLITE_INDEX_CONSTRAINT_EQ] constraint.)^ If xBestIndex wants to use ** this constraint, it must set the corresponding -** aConstraintUsage[].argvIndex to a postive integer. ^(Then, under +** aConstraintUsage[].argvIndex to a positive integer. ^(Then, under ** the usual mode of handling IN operators, SQLite generates [bytecode] ** that invokes the [xFilter|xFilter() method] once for each value ** on the right-hand side of the IN operator.)^ Thus the virtual table @@ -10546,7 +10601,7 @@ SQLITE_API int sqlite3_db_cacheflush(sqlite3*); ** When the [sqlite3_blob_write()] API is used to update a blob column, ** the pre-update hook is invoked with SQLITE_DELETE. This is because the ** in this case the new values are not available. In this case, when a -** callback made with op==SQLITE_DELETE is actuall a write using the +** callback made with op==SQLITE_DELETE is actually a write using the ** sqlite3_blob_write() API, the [sqlite3_preupdate_blobwrite()] returns ** the index of the column being written. In other cases, where the ** pre-update hook is being invoked for some other reason, including a @@ -13064,7 +13119,7 @@ struct Fts5PhraseIter { ** See xPhraseFirstColumn above. */ struct Fts5ExtensionApi { - int iVersion; /* Currently always set to 3 */ + int iVersion; /* Currently always set to 2 */ void *(*xUserData)(Fts5Context*); @@ -13293,8 +13348,8 @@ struct Fts5ExtensionApi { ** as separate queries of the FTS index are required for each synonym. ** ** When using methods (2) or (3), it is important that the tokenizer only -** provide synonyms when tokenizing document text (method (2)) or query -** text (method (3)), not both. Doing so will not cause any errors, but is +** provide synonyms when tokenizing document text (method (3)) or query +** text (method (2)), not both. Doing so will not cause any errors, but is ** inefficient. */ typedef struct Fts5Tokenizer Fts5Tokenizer; @@ -13342,7 +13397,7 @@ struct fts5_api { int (*xCreateTokenizer)( fts5_api *pApi, const char *zName, - void *pContext, + void *pUserData, fts5_tokenizer *pTokenizer, void (*xDestroy)(void*) ); @@ -13351,7 +13406,7 @@ struct fts5_api { int (*xFindTokenizer)( fts5_api *pApi, const char *zName, - void **ppContext, + void **ppUserData, fts5_tokenizer *pTokenizer ); @@ -13359,7 +13414,7 @@ struct fts5_api { int (*xCreateFunction)( fts5_api *pApi, const char *zName, - void *pContext, + void *pUserData, fts5_extension_function xFunction, void (*xDestroy)(void*) ); @@ -13470,7 +13525,7 @@ struct fts5_api { ** level of recursion for each term. A stack overflow can result ** if the number of terms is too large. In practice, most SQL ** never has more than 3 or 4 terms. Use a value of 0 to disable -** any limit on the number of terms in a compount SELECT. +** any limit on the number of terms in a compound SELECT. */ #ifndef SQLITE_MAX_COMPOUND_SELECT # define SQLITE_MAX_COMPOUND_SELECT 500 @@ -14573,8 +14628,31 @@ typedef INT16_TYPE LogEst; ** the end of buffer S. This macro returns true if P points to something ** contained within the buffer S. */ -#define SQLITE_WITHIN(P,S,E) (((uptr)(P)>=(uptr)(S))&&((uptr)(P)<(uptr)(E))) +#define SQLITE_WITHIN(P,S,E) (((uptr)(P)>=(uptr)(S))&&((uptr)(P)<(uptr)(E))) +/* +** P is one byte past the end of a large buffer. Return true if a span of bytes +** between S..E crosses the end of that buffer. In other words, return true +** if the sub-buffer S..E-1 overflows the buffer whose last byte is P-1. +** +** S is the start of the span. E is one byte past the end of end of span. +** +** P +** |-----------------| FALSE +** |-------| +** S E +** +** P +** |-----------------| +** |-------| TRUE +** S E +** +** P +** |-----------------| +** |-------| FALSE +** S E +*/ +#define SQLITE_OVERFLOW(P,S,E) (((uptr)(S)<(uptr)(P))&&((uptr)(E)>(uptr)(P))) /* ** Macros to determine whether the machine is big or little endian, @@ -14808,7 +14886,7 @@ struct BusyHandler { /* ** Name of table that holds the database schema. ** -** The PREFERRED names are used whereever possible. But LEGACY is also +** The PREFERRED names are used wherever possible. But LEGACY is also ** used for backwards compatibility. ** ** 1. Queries can use either the PREFERRED or the LEGACY names @@ -14922,6 +15000,7 @@ typedef struct Schema Schema; typedef struct Expr Expr; typedef struct ExprList ExprList; typedef struct FKey FKey; +typedef struct FpDecode FpDecode; typedef struct FuncDestructor FuncDestructor; typedef struct FuncDef FuncDef; typedef struct FuncDefHash FuncDefHash; @@ -14940,6 +15019,7 @@ typedef struct Parse Parse; typedef struct ParseCleanup ParseCleanup; typedef struct PreUpdate PreUpdate; typedef struct PrintfArguments PrintfArguments; +typedef struct RCStr RCStr; typedef struct RenameToken RenameToken; typedef struct Returning Returning; typedef struct RowSet RowSet; @@ -15577,6 +15657,10 @@ SQLITE_PRIVATE void sqlite3PagerRefdump(Pager*); # define enable_simulated_io_errors() #endif +#if defined(SQLITE_USE_SEH) && !defined(SQLITE_OMIT_WAL) +SQLITE_PRIVATE int sqlite3PagerWalSystemErrno(Pager*); +#endif + #endif /* SQLITE_PAGER_H */ /************** End of pager.h ***********************************************/ @@ -15906,9 +15990,7 @@ SQLITE_PRIVATE int sqlite3BtreePrevious(BtCursor*, int flags); SQLITE_PRIVATE i64 sqlite3BtreeIntegerKey(BtCursor*); SQLITE_PRIVATE void sqlite3BtreeCursorPin(BtCursor*); SQLITE_PRIVATE void sqlite3BtreeCursorUnpin(BtCursor*); -#ifdef SQLITE_ENABLE_OFFSET_SQL_FUNC SQLITE_PRIVATE i64 sqlite3BtreeOffset(BtCursor*); -#endif SQLITE_PRIVATE int sqlite3BtreePayload(BtCursor*, u32 offset, u32 amt, void*); SQLITE_PRIVATE const void *sqlite3BtreePayloadFetch(BtCursor*, u32 *pAmt); SQLITE_PRIVATE u32 sqlite3BtreePayloadSize(BtCursor*); @@ -16383,7 +16465,7 @@ typedef struct VdbeOpList VdbeOpList; /* 8 */ 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x01, 0x01,\ /* 16 */ 0x03, 0x03, 0x01, 0x12, 0x01, 0x49, 0x49, 0x49,\ /* 24 */ 0x49, 0x01, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49,\ -/* 32 */ 0x41, 0x01, 0x01, 0x01, 0x41, 0x01, 0x41, 0x41,\ +/* 32 */ 0x41, 0x01, 0x41, 0x41, 0x41, 0x01, 0x41, 0x41,\ /* 40 */ 0x41, 0x41, 0x41, 0x26, 0x26, 0x41, 0x23, 0x0b,\ /* 48 */ 0x01, 0x01, 0x03, 0x03, 0x0b, 0x0b, 0x0b, 0x0b,\ /* 56 */ 0x0b, 0x0b, 0x01, 0x03, 0x03, 0x03, 0x01, 0x41,\ @@ -16395,7 +16477,7 @@ typedef struct VdbeOpList VdbeOpList; /* 104 */ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26,\ /* 112 */ 0x40, 0x00, 0x12, 0x40, 0x40, 0x10, 0x40, 0x00,\ /* 120 */ 0x00, 0x00, 0x40, 0x00, 0x40, 0x40, 0x10, 0x10,\ -/* 128 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50,\ +/* 128 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x50,\ /* 136 */ 0x00, 0x40, 0x04, 0x04, 0x00, 0x40, 0x50, 0x40,\ /* 144 */ 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,\ /* 152 */ 0x00, 0x10, 0x00, 0x00, 0x06, 0x10, 0x00, 0x04,\ @@ -16577,7 +16659,7 @@ SQLITE_PRIVATE void sqlite3VdbeNoopComment(Vdbe*, const char*, ...); ** The VdbeCoverage macros are used to set a coverage testing point ** for VDBE branch instructions. The coverage testing points are line ** numbers in the sqlite3.c source file. VDBE branch coverage testing -** only works with an amalagmation build. That's ok since a VDBE branch +** only works with an amalgamation build. That's ok since a VDBE branch ** coverage build designed for testing the test suite only. No application ** should ever ship with VDBE branch coverage measuring turned on. ** @@ -16595,7 +16677,7 @@ SQLITE_PRIVATE void sqlite3VdbeNoopComment(Vdbe*, const char*, ...); ** // NULL option is not possible ** ** VdbeCoverageEqNe(v) // Previous OP_Jump is only interested -** // in distingishing equal and not-equal. +** // in distinguishing equal and not-equal. ** ** Every VDBE branch operation must be tagged with one of the macros above. ** If not, then when "make test" is run with -DSQLITE_VDBE_COVERAGE and @@ -16605,7 +16687,7 @@ SQLITE_PRIVATE void sqlite3VdbeNoopComment(Vdbe*, const char*, ...); ** During testing, the test application will invoke ** sqlite3_test_control(SQLITE_TESTCTRL_VDBE_COVERAGE,...) to set a callback ** routine that is invoked as each bytecode branch is taken. The callback -** contains the sqlite3.c source line number ov the VdbeCoverage macro and +** contains the sqlite3.c source line number of the VdbeCoverage macro and ** flags to indicate whether or not the branch was taken. The test application ** is responsible for keeping track of this and reporting byte-code branches ** that are never taken. @@ -16944,7 +17026,7 @@ SQLITE_API int sqlite3_mutex_held(sqlite3_mutex*); /* ** Default synchronous levels. ** -** Note that (for historcal reasons) the PAGER_SYNCHRONOUS_* macros differ +** Note that (for historical reasons) the PAGER_SYNCHRONOUS_* macros differ ** from the SQLITE_DEFAULT_SYNCHRONOUS value by 1. ** ** PAGER_SYNCHRONOUS DEFAULT_SYNCHRONOUS @@ -16983,7 +17065,7 @@ struct Db { ** An instance of the following structure stores a database schema. ** ** Most Schema objects are associated with a Btree. The exception is -** the Schema for the TEMP databaes (sqlite3.aDb[1]) which is free-standing. +** the Schema for the TEMP database (sqlite3.aDb[1]) which is free-standing. ** In shared cache mode, a single Schema object can be shared by multiple ** Btrees that refer to the same underlying BtShared object. ** @@ -17094,7 +17176,7 @@ struct Lookaside { LookasideSlot *pInit; /* List of buffers not previously used */ LookasideSlot *pFree; /* List of available buffers */ #ifndef SQLITE_OMIT_TWOSIZE_LOOKASIDE - LookasideSlot *pSmallInit; /* List of small buffers not prediously used */ + LookasideSlot *pSmallInit; /* List of small buffers not previously used */ LookasideSlot *pSmallFree; /* List of available small buffers */ void *pMiddle; /* First byte past end of full-size buffers and ** the first byte of LOOKASIDE_SMALL buffers */ @@ -17111,7 +17193,7 @@ struct LookasideSlot { #define EnableLookaside db->lookaside.bDisable--;\ db->lookaside.sz=db->lookaside.bDisable?0:db->lookaside.szTrue -/* Size of the smaller allocations in two-size lookside */ +/* Size of the smaller allocations in two-size lookaside */ #ifdef SQLITE_OMIT_TWOSIZE_LOOKASIDE # define LOOKASIDE_SMALL 0 #else @@ -17450,6 +17532,7 @@ struct sqlite3 { #define SQLITE_IndexedExpr 0x01000000 /* Pull exprs from index when able */ #define SQLITE_Coroutines 0x02000000 /* Co-routines for subqueries */ #define SQLITE_NullUnusedCols 0x04000000 /* NULL unused columns in subqueries */ +#define SQLITE_OnePass 0x08000000 /* Single-pass DELETE and UPDATE */ #define SQLITE_AllOpts 0xffffffff /* All optimizations */ /* @@ -17532,6 +17615,7 @@ struct FuncDestructor { ** SQLITE_FUNC_ANYORDER == NC_OrderAgg == SF_OrderByReqd ** SQLITE_FUNC_LENGTH == OPFLAG_LENGTHARG ** SQLITE_FUNC_TYPEOF == OPFLAG_TYPEOFARG +** SQLITE_FUNC_BYTELEN == OPFLAG_BYTELENARG ** SQLITE_FUNC_CONSTANT == SQLITE_DETERMINISTIC from the API ** SQLITE_FUNC_DIRECT == SQLITE_DIRECTONLY from the API ** SQLITE_FUNC_UNSAFE == SQLITE_INNOCUOUS -- opposite meanings!!! @@ -17539,7 +17623,7 @@ struct FuncDestructor { ** ** Note that even though SQLITE_FUNC_UNSAFE and SQLITE_INNOCUOUS have the ** same bit value, their meanings are inverted. SQLITE_FUNC_UNSAFE is -** used internally and if set means tha the function has side effects. +** used internally and if set means that the function has side effects. ** SQLITE_INNOCUOUS is used by application code and means "not unsafe". ** See multiple instances of tag-20230109-1. */ @@ -17550,6 +17634,7 @@ struct FuncDestructor { #define SQLITE_FUNC_NEEDCOLL 0x0020 /* sqlite3GetFuncCollSeq() might be called*/ #define SQLITE_FUNC_LENGTH 0x0040 /* Built-in length() function */ #define SQLITE_FUNC_TYPEOF 0x0080 /* Built-in typeof() function */ +#define SQLITE_FUNC_BYTELEN 0x00c0 /* Built-in octet_length() function */ #define SQLITE_FUNC_COUNT 0x0100 /* Built-in count(*) aggregate */ /* 0x0200 -- available for reuse */ #define SQLITE_FUNC_UNLIKELY 0x0400 /* Built-in unlikely() function */ @@ -18129,7 +18214,7 @@ struct FKey { ** foreign key. ** ** The OE_Default value is a place holder that means to use whatever -** conflict resolution algorthm is required from context. +** conflict resolution algorithm is required from context. ** ** The following symbolic values are used to record which type ** of conflict resolution action to take. @@ -18543,7 +18628,7 @@ struct Expr { ** TK_REGISTER: register number ** TK_TRIGGER: 1 -> new, 0 -> old ** EP_Unlikely: 134217728 times likelihood - ** TK_IN: ephemerial table holding RHS + ** TK_IN: ephemeral table holding RHS ** TK_SELECT_COLUMN: Number of columns on the LHS ** TK_SELECT: 1st register of result vector */ ynVar iColumn; /* TK_COLUMN: column index. -1 for rowid. @@ -18625,6 +18710,8 @@ struct Expr { */ #define ExprUseUToken(E) (((E)->flags&EP_IntValue)==0) #define ExprUseUValue(E) (((E)->flags&EP_IntValue)!=0) +#define ExprUseWOfst(E) (((E)->flags&(EP_InnerON|EP_OuterON))==0) +#define ExprUseWJoin(E) (((E)->flags&(EP_InnerON|EP_OuterON))!=0) #define ExprUseXList(E) (((E)->flags&EP_xIsSelect)==0) #define ExprUseXSelect(E) (((E)->flags&EP_xIsSelect)!=0) #define ExprUseYTab(E) (((E)->flags&(EP_WinFunc|EP_Subrtn))==0) @@ -18813,7 +18900,7 @@ struct SrcItem { unsigned notCte :1; /* This item may not match a CTE */ unsigned isUsing :1; /* u3.pUsing is valid */ unsigned isOn :1; /* u3.pOn was once valid and non-NULL */ - unsigned isSynthUsing :1; /* u3.pUsing is synthensized from NATURAL */ + unsigned isSynthUsing :1; /* u3.pUsing is synthesized from NATURAL */ unsigned isNestedFrom :1; /* pSelect is a SF_NestedFrom subquery */ } fg; int iCursor; /* The VDBE cursor number used to access this table */ @@ -19349,6 +19436,9 @@ struct Parse { int regRoot; /* Register holding root page number for new objects */ int nMaxArg; /* Max args passed to user function by sub-program */ int nSelect; /* Number of SELECT stmts. Counter for Select.selId */ +#ifndef SQLITE_OMIT_PROGRESS_CALLBACK + u32 nProgressSteps; /* xProgress steps taken during sqlite3_prepare() */ +#endif #ifndef SQLITE_OMIT_SHARED_CACHE int nTableLock; /* Number of locks in aTableLock */ TableLock *aTableLock; /* Required table locks for shared-cache mode */ @@ -19362,12 +19452,9 @@ struct Parse { int addrCrTab; /* Address of OP_CreateBtree on CREATE TABLE */ Returning *pReturning; /* The RETURNING clause */ } u1; - u32 nQueryLoop; /* Est number of iterations of a query (10*log2(N)) */ u32 oldmask; /* Mask of old.* columns referenced */ u32 newmask; /* Mask of new.* columns referenced */ -#ifndef SQLITE_OMIT_PROGRESS_CALLBACK - u32 nProgressSteps; /* xProgress steps taken during sqlite3_prepare() */ -#endif + LogEst nQueryLoop; /* Est number of iterations of a query (10*log2(N)) */ u8 eTriggerOp; /* TK_UPDATE, TK_INSERT or TK_DELETE */ u8 bReturning; /* Coding a RETURNING trigger */ u8 eOrconf; /* Default ON CONFLICT policy for trigger steps */ @@ -19491,6 +19578,7 @@ struct AuthContext { #define OPFLAG_ISNOOP 0x40 /* OP_Delete does pre-update-hook only */ #define OPFLAG_LENGTHARG 0x40 /* OP_Column only used for length() */ #define OPFLAG_TYPEOFARG 0x80 /* OP_Column only used for typeof() */ +#define OPFLAG_BYTELENARG 0xc0 /* OP_Column only for octet_length() */ #define OPFLAG_BULKCSR 0x01 /* OP_Open** used to open bulk cursor */ #define OPFLAG_SEEKEQ 0x02 /* OP_Open** cursor uses EQ seek only */ #define OPFLAG_FORDELETE 0x08 /* OP_Open should use BTREE_FORDELETE */ @@ -19633,6 +19721,25 @@ struct sqlite3_str { #define isMalloced(X) (((X)->printfFlags & SQLITE_PRINTF_MALLOCED)!=0) +/* +** The following object is the header for an "RCStr" or "reference-counted +** string". An RCStr is passed around and used like any other char* +** that has been dynamically allocated. The important interface +** differences: +** +** 1. RCStr strings are reference counted. They are deallocated +** when the reference count reaches zero. +** +** 2. Use sqlite3RCStrUnref() to free an RCStr string rather than +** sqlite3_free() +** +** 3. Make a (read-only) copy of a read-only RCStr string using +** sqlite3RCStrRef(). +*/ +struct RCStr { + u64 nRCRef; /* Number of references */ + /* Total structure size should be a multiple of 8 bytes for alignment */ +}; /* ** A pointer to this structure is used to communicate information @@ -19659,7 +19766,7 @@ typedef struct { /* Tuning parameters are set using SQLITE_TESTCTRL_TUNE and are controlled ** on debug-builds of the CLI using ".testctrl tune ID VALUE". Tuning ** parameters are for temporary use during development, to help find -** optimial values for parameters in the query planner. The should not +** optimal values for parameters in the query planner. The should not ** be used on trunk check-ins. They are a temporary mechanism available ** for transient development builds only. ** @@ -19685,6 +19792,7 @@ struct Sqlite3Config { u8 bUseCis; /* Use covering indices for full-scans */ u8 bSmallMalloc; /* Avoid large memory allocations if true */ u8 bExtraSchemaChecks; /* Verify type,name,tbl_name in schema */ + u8 bUseLongDouble; /* Make use of long double */ int mxStrlen; /* Maximum string length */ int neverCorrupt; /* Database is always well-formed */ int szLookaside; /* Default lookaside buffer size */ @@ -19771,6 +19879,7 @@ struct Walker { void (*xSelectCallback2)(Walker*,Select*);/* Second callback for SELECTs */ int walkerDepth; /* Number of subqueries */ u16 eCode; /* A small processing code */ + u16 mWFlags; /* Use-dependent flags */ union { /* Extra data for callback */ NameContext *pNC; /* Naming context */ int n; /* A counter */ @@ -19810,6 +19919,7 @@ struct DbFixer { /* Forward declarations */ SQLITE_PRIVATE int sqlite3WalkExpr(Walker*, Expr*); +SQLITE_PRIVATE int sqlite3WalkExprNN(Walker*, Expr*); SQLITE_PRIVATE int sqlite3WalkExprList(Walker*, ExprList*); SQLITE_PRIVATE int sqlite3WalkSelect(Walker*, Select*); SQLITE_PRIVATE int sqlite3WalkSelectExpr(Walker*, Select*); @@ -20191,6 +20301,20 @@ struct PrintfArguments { sqlite3_value **apArg; /* The argument values */ }; +/* +** An instance of this object receives the decoding of a floating point +** value into an approximate decimal representation. +*/ +struct FpDecode { + char sign; /* '+' or '-' */ + char isSpecial; /* 1: Infinity 2: NaN */ + int n; /* Significant digits in the decode */ + int iDP; /* Location of the decimal point */ + char *z; /* Start of significant digits */ + char zBuf[24]; /* Storage for significant digits */ +}; + +SQLITE_PRIVATE void sqlite3FpDecode(FpDecode*,double,int,int); SQLITE_PRIVATE char *sqlite3MPrintf(sqlite3*,const char*, ...); SQLITE_PRIVATE char *sqlite3VMPrintf(sqlite3*,const char*, va_list); #if defined(SQLITE_DEBUG) || defined(SQLITE_HAVE_OS_TRACE) @@ -20481,7 +20605,7 @@ SQLITE_PRIVATE int sqlite3ExprCompare(const Parse*,const Expr*,const Expr*, int) SQLITE_PRIVATE int sqlite3ExprCompareSkip(Expr*,Expr*,int); SQLITE_PRIVATE int sqlite3ExprListCompare(const ExprList*,const ExprList*, int); SQLITE_PRIVATE int sqlite3ExprImpliesExpr(const Parse*,const Expr*,const Expr*, int); -SQLITE_PRIVATE int sqlite3ExprImpliesNonNullRow(Expr*,int); +SQLITE_PRIVATE int sqlite3ExprImpliesNonNullRow(Expr*,int,int); SQLITE_PRIVATE void sqlite3AggInfoPersistWalkerInit(Walker*,Parse*); SQLITE_PRIVATE void sqlite3ExprAnalyzeAggregates(NameContext*, Expr*); SQLITE_PRIVATE void sqlite3ExprAnalyzeAggList(NameContext*,ExprList*); @@ -20630,6 +20754,7 @@ SQLITE_PRIVATE int sqlite3FixSrcList(DbFixer*, SrcList*); SQLITE_PRIVATE int sqlite3FixSelect(DbFixer*, Select*); SQLITE_PRIVATE int sqlite3FixExpr(DbFixer*, Expr*); SQLITE_PRIVATE int sqlite3FixTriggerStep(DbFixer*, TriggerStep*); + SQLITE_PRIVATE int sqlite3RealSameAsInt(double,sqlite3_int64); SQLITE_PRIVATE i64 sqlite3RealToI64(double); SQLITE_PRIVATE int sqlite3Int64ToText(i64,char*); @@ -20734,6 +20859,7 @@ SQLITE_PRIVATE void sqlite3FileSuffix3(const char*, char*); SQLITE_PRIVATE u8 sqlite3GetBoolean(const char *z,u8); SQLITE_PRIVATE const void *sqlite3ValueText(sqlite3_value*, u8); +SQLITE_PRIVATE int sqlite3ValueIsOfClass(const sqlite3_value*, void(*)(void*)); SQLITE_PRIVATE int sqlite3ValueBytes(sqlite3_value*, u8); SQLITE_PRIVATE void sqlite3ValueSetStr(sqlite3_value*, int, const void *,u8, void(*)(void*)); @@ -20841,6 +20967,11 @@ SQLITE_PRIVATE void sqlite3OomClear(sqlite3*); SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int); SQLITE_PRIVATE int sqlite3OpenTempDatabase(Parse *); +SQLITE_PRIVATE char *sqlite3RCStrRef(char*); +SQLITE_PRIVATE void sqlite3RCStrUnref(char*); +SQLITE_PRIVATE char *sqlite3RCStrNew(u64); +SQLITE_PRIVATE char *sqlite3RCStrResize(char*,u64); + SQLITE_PRIVATE void sqlite3StrAccumInit(StrAccum*, sqlite3*, char*, int, int); SQLITE_PRIVATE int sqlite3StrAccumEnlarge(StrAccum*, i64); SQLITE_PRIVATE char *sqlite3StrAccumFinish(StrAccum*); @@ -21092,6 +21223,7 @@ SQLITE_PRIVATE int sqlite3ExprCheckHeight(Parse*, int); #define sqlite3SelectExprHeight(x) 0 #define sqlite3ExprCheckHeight(x,y) #endif +SQLITE_PRIVATE void sqlite3ExprSetErrorOffset(Expr*,int); SQLITE_PRIVATE u32 sqlite3Get4byte(const u8*); SQLITE_PRIVATE void sqlite3Put4byte(u8*, u32); @@ -21377,9 +21509,6 @@ static const char * const sqlite3azCompileOpt[] = { #ifdef SQLITE_4_BYTE_ALIGNED_MALLOC "4_BYTE_ALIGNED_MALLOC", #endif -#ifdef SQLITE_64BIT_STATS - "64BIT_STATS", -#endif #ifdef SQLITE_ALLOW_COVERING_INDEX_SCAN # if SQLITE_ALLOW_COVERING_INDEX_SCAN != 1 "ALLOW_COVERING_INDEX_SCAN=" CTIMEOPT_VAL(SQLITE_ALLOW_COVERING_INDEX_SCAN), @@ -21716,6 +21845,9 @@ static const char * const sqlite3azCompileOpt[] = { #ifdef SQLITE_INTEGRITY_CHECK_ERROR_MAX "INTEGRITY_CHECK_ERROR_MAX=" CTIMEOPT_VAL(SQLITE_INTEGRITY_CHECK_ERROR_MAX), #endif +#ifdef SQLITE_LEGACY_JSON_VALID + "LEGACY_JSON_VALID", +#endif #ifdef SQLITE_LIKE_DOESNT_MATCH_BLOBS "LIKE_DOESNT_MATCH_BLOBS", #endif @@ -22350,6 +22482,7 @@ SQLITE_PRIVATE SQLITE_WSD struct Sqlite3Config sqlite3Config = { SQLITE_ALLOW_COVERING_INDEX_SCAN, /* bUseCis */ 0, /* bSmallMalloc */ 1, /* bExtraSchemaChecks */ + sizeof(LONGDOUBLE_TYPE)>8, /* bUseLongDouble */ 0x7ffffffe, /* mxStrlen */ 0, /* neverCorrupt */ SQLITE_DEFAULT_LOOKASIDE, /* szLookaside, nLookaside */ @@ -22579,6 +22712,9 @@ typedef struct VdbeSorter VdbeSorter; /* Elements of the linked list at Vdbe.pAuxData */ typedef struct AuxData AuxData; +/* A cache of large TEXT or BLOB values in a VdbeCursor */ +typedef struct VdbeTxtBlbCache VdbeTxtBlbCache; + /* Types of VDBE cursors */ #define CURTYPE_BTREE 0 #define CURTYPE_SORTER 1 @@ -22610,6 +22746,7 @@ struct VdbeCursor { Bool useRandomRowid:1; /* Generate new record numbers semi-randomly */ Bool isOrdered:1; /* True if the table is not BTREE_UNORDERED */ Bool noReuse:1; /* OpenEphemeral may not reuse this cursor */ + Bool colCache:1; /* pCache pointer is initialized and non-NULL */ u16 seekHit; /* See the OP_SeekHit and OP_IfNoHope opcodes */ union { /* pBtx for isEphermeral. pAltMap otherwise */ Btree *pBtx; /* Separate file holding temporary table */ @@ -22650,6 +22787,7 @@ struct VdbeCursor { #ifdef SQLITE_ENABLE_COLUMN_USED_MASK u64 maskUsed; /* Mask of columns used by this cursor */ #endif + VdbeTxtBlbCache *pCache; /* Cache of large TEXT or BLOB values */ /* 2*nField extra array elements allocated for aType[], beyond the one ** static element declared in the structure. nField total array slots for @@ -22662,12 +22800,25 @@ struct VdbeCursor { #define IsNullCursor(P) \ ((P)->eCurType==CURTYPE_PSEUDO && (P)->nullRow && (P)->seekResult==0) - /* ** A value for VdbeCursor.cacheStatus that means the cache is always invalid. */ #define CACHE_STALE 0 +/* +** Large TEXT or BLOB values can be slow to load, so we want to avoid +** loading them more than once. For that reason, large TEXT and BLOB values +** can be stored in a cache defined by this object, and attached to the +** VdbeCursor using the pCache field. +*/ +struct VdbeTxtBlbCache { + char *pCValue; /* A RCStr buffer to hold the value */ + i64 iOffset; /* File offset of the row being cached */ + int iCol; /* Column for which the cache is valid */ + u32 cacheStatus; /* Vdbe.cacheCtr value */ + u32 colCacheCtr; /* Column cache counter */ +}; + /* ** When a sub-program is executed (OP_Program), a structure of this type ** is allocated to store the current value of the program counter, as @@ -22988,16 +23139,18 @@ struct Vdbe { u32 nWrite; /* Number of write operations that have occurred */ #endif u16 nResColumn; /* Number of columns in one row of the result set */ + u16 nResAlloc; /* Column slots allocated to aColName[] */ u8 errorAction; /* Recovery action to do in case of an error */ u8 minWriteFileFormat; /* Minimum file format for writable database files */ u8 prepFlags; /* SQLITE_PREPARE_* flags */ u8 eVdbeState; /* On of the VDBE_*_STATE values */ bft expired:2; /* 1: recompile VM immediately 2: when convenient */ - bft explain:2; /* True if EXPLAIN present on SQL command */ + bft explain:2; /* 0: normal, 1: EXPLAIN, 2: EXPLAIN QUERY PLAN */ bft changeCntOn:1; /* True to update the change-counter */ bft usesStmtJournal:1; /* True if uses a statement journal */ bft readOnly:1; /* True for statements that do not write */ bft bIsReader:1; /* True for statements that read */ + bft haveEqpOps:1; /* Bytecode supports EXPLAIN QUERY PLAN */ yDbMask btreeMask; /* Bitmask of db->aDb[] entries referenced */ yDbMask lockMask; /* Subset of btreeMask that requires a lock */ u32 aCounter[9]; /* Counters used by sqlite3_stmt_status() */ @@ -23044,7 +23197,7 @@ struct PreUpdate { i64 iKey1; /* First key value passed to hook */ i64 iKey2; /* Second key value passed to hook */ Mem *aNew; /* Array of new.* values */ - Table *pTab; /* Schema object being upated */ + Table *pTab; /* Schema object being updated */ Index *pPk; /* PK index if pTab is WITHOUT ROWID */ }; @@ -23134,6 +23287,7 @@ SQLITE_PRIVATE int sqlite3VdbeMemSetZeroBlob(Mem*,int); SQLITE_PRIVATE int sqlite3VdbeMemIsRowSet(const Mem*); #endif SQLITE_PRIVATE int sqlite3VdbeMemSetRowSet(Mem*); +SQLITE_PRIVATE void sqlite3VdbeMemZeroTerminateIfAble(Mem*); SQLITE_PRIVATE int sqlite3VdbeMemMakeWriteable(Mem*); SQLITE_PRIVATE int sqlite3VdbeMemStringify(Mem*, u8, u8); SQLITE_PRIVATE int sqlite3IntFloatCompare(i64,double); @@ -23730,8 +23884,8 @@ struct DateTime { */ static int getDigits(const char *zDate, const char *zFormat, ...){ /* The aMx[] array translates the 3rd character of each format - ** spec into a max size: a b c d e f */ - static const u16 aMx[] = { 12, 14, 24, 31, 59, 9999 }; + ** spec into a max size: a b c d e f */ + static const u16 aMx[] = { 12, 14, 24, 31, 59, 14712 }; va_list ap; int cnt = 0; char nextC; @@ -24072,17 +24226,14 @@ static void computeYMD(DateTime *p){ ** Compute the Hour, Minute, and Seconds from the julian day number. */ static void computeHMS(DateTime *p){ - int s; + int day_ms, day_min; /* milliseconds, minutes into the day */ if( p->validHMS ) return; computeJD(p); - s = (int)((p->iJD + 43200000) % 86400000); - p->s = s/1000.0; - s = (int)p->s; - p->s -= s; - p->h = s/3600; - s -= p->h*3600; - p->m = s/60; - p->s += s - p->m*60; + day_ms = (int)((p->iJD + 43200000) % 86400000); + p->s = (day_ms % 60000)/1000.0; + day_min = day_ms/60000; + p->m = day_min % 60; + p->h = day_min / 60; p->rawS = 0; p->validHMS = 1; } @@ -24261,6 +24412,25 @@ static const struct { { 4, "year", 14713.0, 31536000.0 }, }; +/* +** If the DateTime p is raw number, try to figure out if it is +** a julian day number of a unix timestamp. Set the p value +** appropriately. +*/ +static void autoAdjustDate(DateTime *p){ + if( !p->rawS || p->validJD ){ + p->rawS = 0; + }else if( p->s>=-21086676*(i64)10000 /* -4713-11-24 12:00:00 */ + && p->s<=(25340230*(i64)10000)+799 /* 9999-12-31 23:59:59 */ + ){ + double r = p->s*1000.0 + 210866760000000.0; + clearYMD_HMS_TZ(p); + p->iJD = (sqlite3_int64)(r + 0.5); + p->validJD = 1; + p->rawS = 0; + } +} + /* ** Process a modifier to a date-time stamp. The modifiers are ** as follows: @@ -24304,19 +24474,8 @@ static int parseModifier( */ if( sqlite3_stricmp(z, "auto")==0 ){ if( idx>1 ) return 1; /* IMP: R-33611-57934 */ - if( !p->rawS || p->validJD ){ - rc = 0; - p->rawS = 0; - }else if( p->s>=-21086676*(i64)10000 /* -4713-11-24 12:00:00 */ - && p->s<=(25340230*(i64)10000)+799 /* 9999-12-31 23:59:59 */ - ){ - r = p->s*1000.0 + 210866760000000.0; - clearYMD_HMS_TZ(p); - p->iJD = (sqlite3_int64)(r + 0.5); - p->validJD = 1; - p->rawS = 0; - rc = 0; - } + autoAdjustDate(p); + rc = 0; } break; } @@ -24482,18 +24641,73 @@ static int parseModifier( case '9': { double rRounder; int i; - for(n=1; z[n] && z[n]!=':' && !sqlite3Isspace(z[n]); n++){} + int Y,M,D,h,m,x; + const char *z2 = z; + char z0 = z[0]; + for(n=1; z[n]; n++){ + if( z[n]==':' ) break; + if( sqlite3Isspace(z[n]) ) break; + if( z[n]=='-' ){ + if( n==5 && getDigits(&z[1], "40f", &Y)==1 ) break; + if( n==6 && getDigits(&z[1], "50f", &Y)==1 ) break; + } + } if( sqlite3AtoF(z, &r, n, SQLITE_UTF8)<=0 ){ - rc = 1; + assert( rc==1 ); break; } - if( z[n]==':' ){ + if( z[n]=='-' ){ + /* A modifier of the form (+|-)YYYY-MM-DD adds or subtracts the + ** specified number of years, months, and days. MM is limited to + ** the range 0-11 and DD is limited to 0-30. + */ + if( z0!='+' && z0!='-' ) break; /* Must start with +/- */ + if( n==5 ){ + if( getDigits(&z[1], "40f-20a-20d", &Y, &M, &D)!=3 ) break; + }else{ + assert( n==6 ); + if( getDigits(&z[1], "50f-20a-20d", &Y, &M, &D)!=3 ) break; + z++; + } + if( M>=12 ) break; /* M range 0..11 */ + if( D>=31 ) break; /* D range 0..30 */ + computeYMD_HMS(p); + p->validJD = 0; + if( z0=='-' ){ + p->Y -= Y; + p->M -= M; + D = -D; + }else{ + p->Y += Y; + p->M += M; + } + x = p->M>0 ? (p->M-1)/12 : (p->M-12)/12; + p->Y += x; + p->M -= x*12; + computeJD(p); + p->validHMS = 0; + p->validYMD = 0; + p->iJD += (i64)D*86400000; + if( z[11]==0 ){ + rc = 0; + break; + } + if( sqlite3Isspace(z[11]) + && getDigits(&z[12], "20c:20e", &h, &m)==2 + ){ + z2 = &z[12]; + n = 2; + }else{ + break; + } + } + if( z2[n]==':' ){ /* A modifier of the form (+|-)HH:MM:SS.FFF adds (or subtracts) the ** specified number of hours, minutes, seconds, and fractional seconds ** to the time. The ".FFF" may be omitted. The ":SS.FFF" may be ** omitted. */ - const char *z2 = z; + DateTime tx; sqlite3_int64 day; if( !sqlite3Isdigit(*z2) ) z2++; @@ -24503,7 +24717,7 @@ static int parseModifier( tx.iJD -= 43200000; day = tx.iJD/86400000; tx.iJD -= day*86400000; - if( z[0]=='-' ) tx.iJD = -tx.iJD; + if( z0=='-' ) tx.iJD = -tx.iJD; computeJD(p); clearYMD_HMS_TZ(p); p->iJD += tx.iJD; @@ -24519,7 +24733,7 @@ static int parseModifier( if( n>10 || n<3 ) break; if( sqlite3UpperToLower[(u8)z[n-1]]=='s' ) n--; computeJD(p); - rc = 1; + assert( rc==1 ); rRounder = r<0 ? -0.5 : +0.5; for(i=0; iM += (int)r; @@ -24687,7 +24900,7 @@ static void datetimeFunc( zBuf[16] = '0' + (x.m)%10; zBuf[17] = ':'; if( x.useSubsec ){ - s = (int)1000.0*x.s; + s = (int)(1000.0*x.s + 0.5); zBuf[18] = '0' + (s/10000)%10; zBuf[19] = '0' + (s/1000)%10; zBuf[20] = '.'; @@ -24734,7 +24947,7 @@ static void timeFunc( zBuf[4] = '0' + (x.m)%10; zBuf[5] = ':'; if( x.useSubsec ){ - s = (int)1000.0*x.s; + s = (int)(1000.0*x.s + 0.5); zBuf[6] = '0' + (s/10000)%10; zBuf[7] = '0' + (s/1000)%10; zBuf[8] = '.'; @@ -24805,7 +25018,7 @@ static void dateFunc( ** %M minute 00-59 ** %s seconds since 1970-01-01 ** %S seconds 00-59 -** %w day of week 0-6 sunday==0 +** %w day of week 0-6 Sunday==0 ** %W week of year 00-53 ** %Y year 0000-9999 ** %% % @@ -24945,6 +25158,117 @@ static void cdateFunc( dateFunc(context, 0, 0); } +/* +** timediff(DATE1, DATE2) +** +** Return the amount of time that must be added to DATE2 in order to +** convert it into DATE2. The time difference format is: +** +** +YYYY-MM-DD HH:MM:SS.SSS +** +** The initial "+" becomes "-" if DATE1 occurs before DATE2. For +** date/time values A and B, the following invariant should hold: +** +** datetime(A) == (datetime(B, timediff(A,B)) +** +** Both DATE arguments must be either a julian day number, or an +** ISO-8601 string. The unix timestamps are not supported by this +** routine. +*/ +static void timediffFunc( + sqlite3_context *context, + int NotUsed1, + sqlite3_value **argv +){ + char sign; + int Y, M; + DateTime d1, d2; + sqlite3_str sRes; + UNUSED_PARAMETER(NotUsed1); + if( isDate(context, 1, &argv[0], &d1) ) return; + if( isDate(context, 1, &argv[1], &d2) ) return; + computeYMD_HMS(&d1); + computeYMD_HMS(&d2); + if( d1.iJD>=d2.iJD ){ + sign = '+'; + Y = d1.Y - d2.Y; + if( Y ){ + d2.Y = d1.Y; + d2.validJD = 0; + computeJD(&d2); + } + M = d1.M - d2.M; + if( M<0 ){ + Y--; + M += 12; + } + if( M!=0 ){ + d2.M = d1.M; + d2.validJD = 0; + computeJD(&d2); + } + while( d1.iJDd2.iJD ){ + M--; + if( M<0 ){ + M = 11; + Y--; + } + d2.M++; + if( d2.M>12 ){ + d2.M = 1; + d2.Y++; + } + d2.validJD = 0; + computeJD(&d2); + } + d1.iJD = d2.iJD - d1.iJD; + d1.iJD += (u64)1486995408 * (u64)100000; + } + d1.validYMD = 0; + d1.validHMS = 0; + d1.validTZ = 0; + computeYMD_HMS(&d1); + sqlite3StrAccumInit(&sRes, 0, 0, 0, 100); + sqlite3_str_appendf(&sRes, "%c%04d-%02d-%02d %02d:%02d:%06.3f", + sign, Y, M, d1.D-1, d1.h, d1.m, d1.s); + sqlite3ResultStrAccum(context, &sRes); +} + + /* ** current_timestamp() ** @@ -25019,6 +25343,7 @@ SQLITE_PRIVATE void sqlite3RegisterDateTimeFunctions(void){ PURE_DATE(time, -1, 0, 0, timeFunc ), PURE_DATE(datetime, -1, 0, 0, datetimeFunc ), PURE_DATE(strftime, -1, 0, 0, strftimeFunc ), + PURE_DATE(timediff, 2, 0, 0, timediffFunc ), DFUNCTION(current_time, 0, 0, 0, ctimeFunc ), DFUNCTION(current_timestamp, 0, 0, 0, ctimestampFunc), DFUNCTION(current_date, 0, 0, 0, cdateFunc ), @@ -25172,7 +25497,7 @@ SQLITE_PRIVATE int sqlite3OsFileControl(sqlite3_file *id, int op, void *pArg){ /* Faults are not injected into COMMIT_PHASETWO because, assuming SQLite ** is using a regular VFS, it is called after the corresponding ** transaction has been committed. Injecting a fault at this point - ** confuses the test scripts - the COMMIT comand returns SQLITE_NOMEM + ** confuses the test scripts - the COMMIT command returns SQLITE_NOMEM ** but the transaction is committed anyway. ** ** The core must call OsFileControl() though, not OsFileControlHint(), @@ -25793,7 +26118,7 @@ static void *sqlite3MemMalloc(int nByte){ ** or sqlite3MemRealloc(). ** ** For this low-level routine, we already know that pPrior!=0 since -** cases where pPrior==0 will have been intecepted and dealt with +** cases where pPrior==0 will have been intercepted and dealt with ** by higher-level routines. */ static void sqlite3MemFree(void *pPrior){ @@ -25881,7 +26206,7 @@ static int sqlite3MemInit(void *NotUsed){ return SQLITE_OK; } len = sizeof(cpuCount); - /* One usually wants to use hw.acctivecpu for MT decisions, but not here */ + /* One usually wants to use hw.activecpu for MT decisions, but not here */ sysctlbyname("hw.ncpu", &cpuCount, &len, NULL, 0); if( cpuCount>1 ){ /* defer MT decisions to system malloc */ @@ -28348,7 +28673,7 @@ SQLITE_PRIVATE sqlite3_mutex_methods const *sqlite3DefaultMutex(void){ /* ** The sqlite3_mutex.id, sqlite3_mutex.nRef, and sqlite3_mutex.owner fields -** are necessary under two condidtions: (1) Debug builds and (2) using +** are necessary under two conditions: (1) Debug builds and (2) using ** home-grown mutexes. Encapsulate these conditions into a single #define. */ #if defined(SQLITE_DEBUG) || defined(SQLITE_HOMEGROWN_RECURSIVE_MUTEX) @@ -28849,7 +29174,7 @@ struct sqlite3_mutex { CRITICAL_SECTION mutex; /* Mutex controlling the lock */ int id; /* Mutex type */ #ifdef SQLITE_DEBUG - volatile int nRef; /* Number of enterances */ + volatile int nRef; /* Number of entrances */ volatile DWORD owner; /* Thread holding this mutex */ volatile LONG trace; /* True to trace changes */ #endif @@ -30221,57 +30546,6 @@ static const et_info fmtinfo[] = { ** %!S Like %S but prefer the zName over the zAlias */ -/* Floating point constants used for rounding */ -static const double arRound[] = { - 5.0e-01, 5.0e-02, 5.0e-03, 5.0e-04, 5.0e-05, - 5.0e-06, 5.0e-07, 5.0e-08, 5.0e-09, 5.0e-10, -}; - -/* -** If SQLITE_OMIT_FLOATING_POINT is defined, then none of the floating point -** conversions will work. -*/ -#ifndef SQLITE_OMIT_FLOATING_POINT -/* -** "*val" is a double such that 0.1 <= *val < 10.0 -** Return the ascii code for the leading digit of *val, then -** multiply "*val" by 10.0 to renormalize. -** -** Example: -** input: *val = 3.14159 -** output: *val = 1.4159 function return = '3' -** -** The counter *cnt is incremented each time. After counter exceeds -** 16 (the number of significant digits in a 64-bit float) '0' is -** always returned. -*/ -static char et_getdigit(LONGDOUBLE_TYPE *val, int *cnt){ - int digit; - LONGDOUBLE_TYPE d; - if( (*cnt)<=0 ) return '0'; - (*cnt)--; - digit = (int)*val; - d = digit; - digit += '0'; - *val = (*val - d)*10.0; - return (char)digit; -} -#endif /* SQLITE_OMIT_FLOATING_POINT */ - -#ifndef SQLITE_OMIT_FLOATING_POINT -/* -** "*val" is a u64. *msd is a divisor used to extract the -** most significant digit of *val. Extract that most significant -** digit and return it. -*/ -static char et_getdigit_int(u64 *val, u64 *msd){ - u64 x = (*val)/(*msd); - *val -= x*(*msd); - if( *msd>=10 ) *msd /= 10; - return '0' + (char)(x & 15); -} -#endif /* SQLITE_OMIT_FLOATING_POINT */ - /* ** Set the StrAccum object to an error mode. */ @@ -30363,20 +30637,15 @@ SQLITE_API void sqlite3_str_vappendf( u8 bArgList; /* True for SQLITE_PRINTF_SQLFUNC */ char prefix; /* Prefix character. "+" or "-" or " " or '\0'. */ sqlite_uint64 longvalue; /* Value for integer types */ - LONGDOUBLE_TYPE realvalue; /* Value for real types */ - sqlite_uint64 msd; /* Divisor to get most-significant-digit - ** of longvalue */ + double realvalue; /* Value for real types */ const et_info *infop; /* Pointer to the appropriate info structure */ char *zOut; /* Rendering buffer */ int nOut; /* Size of the rendering buffer */ char *zExtra = 0; /* Malloced memory used by some conversion */ -#ifndef SQLITE_OMIT_FLOATING_POINT - int exp, e2; /* exponent of real numbers */ - int nsd; /* Number of significant digits returned */ - double rounder; /* Used for rounding floating point values */ + int exp, e2; /* exponent of real numbers */ etByte flag_dp; /* True if decimal point should be shown */ etByte flag_rtz; /* True if trailing zeros should be removed */ -#endif + PrintfArguments *pArgList = 0; /* Arguments for SQLITE_PRINTF_SQLFUNC */ char buf[etBUFSIZE]; /* Conversion buffer */ @@ -30651,94 +30920,61 @@ SQLITE_API void sqlite3_str_vappendf( break; case etFLOAT: case etEXP: - case etGENERIC: + case etGENERIC: { + FpDecode s; + int iRound; + int j; + if( bArgList ){ realvalue = getDoubleArg(pArgList); }else{ realvalue = va_arg(ap,double); } -#ifdef SQLITE_OMIT_FLOATING_POINT - length = 0; -#else if( precision<0 ) precision = 6; /* Set default precision */ #ifdef SQLITE_FP_PRECISION_LIMIT if( precision>SQLITE_FP_PRECISION_LIMIT ){ precision = SQLITE_FP_PRECISION_LIMIT; } #endif - if( realvalue<0.0 ){ - realvalue = -realvalue; + if( xtype==etFLOAT ){ + iRound = -precision; + }else if( xtype==etGENERIC ){ + iRound = precision; + }else{ + iRound = precision+1; + } + sqlite3FpDecode(&s, realvalue, iRound, flag_altform2 ? 26 : 16); + if( s.isSpecial ){ + if( s.isSpecial==2 ){ + bufpt = flag_zeropad ? "null" : "NaN"; + length = sqlite3Strlen30(bufpt); + break; + }else if( flag_zeropad ){ + s.z[0] = '9'; + s.iDP = 1000; + s.n = 1; + }else{ + memcpy(buf, "-Inf", 5); + bufpt = buf; + if( s.sign=='-' ){ + /* no-op */ + }else if( flag_prefix ){ + buf[0] = flag_prefix; + }else{ + bufpt++; + } + length = sqlite3Strlen30(bufpt); + break; + } + } + if( s.sign=='-' ){ prefix = '-'; }else{ prefix = flag_prefix; } - exp = 0; - if( xtype==etGENERIC && precision>0 ) precision--; - testcase( precision>0xfff ); - if( realvalue<1.0e+16 - && realvalue==(LONGDOUBLE_TYPE)(longvalue = (u64)realvalue) - ){ - /* Number is a pure integer that can be represented as u64 */ - for(msd=1; msd*10<=longvalue; msd *= 10, exp++){} - if( exp>precision && xtype!=etFLOAT ){ - u64 rnd = msd/2; - int kk = precision; - while( kk-- > 0 ){ rnd /= 10; } - longvalue += rnd; - } - }else{ - msd = 0; - longvalue = 0; /* To prevent a compiler warning */ - idx = precision & 0xfff; - rounder = arRound[idx%10]; - while( idx>=10 ){ rounder *= 1.0e-10; idx -= 10; } - if( xtype==etFLOAT ){ - double rx = (double)realvalue; - sqlite3_uint64 u; - int ex; - memcpy(&u, &rx, sizeof(u)); - ex = -1023 + (int)((u>>52)&0x7ff); - if( precision+(ex/3) < 15 ) rounder += realvalue*3e-16; - realvalue += rounder; - } - if( sqlite3IsNaN((double)realvalue) ){ - if( flag_zeropad ){ - bufpt = "null"; - length = 4; - }else{ - bufpt = "NaN"; - length = 3; - } - break; - } - /* Normalize realvalue to within 10.0 > realvalue >= 1.0 */ - if( ALWAYS(realvalue>0.0) ){ - LONGDOUBLE_TYPE scale = 1.0; - while( realvalue>=1e100*scale && exp<=350){ scale*=1e100;exp+=100;} - while( realvalue>=1e10*scale && exp<=350 ){ scale*=1e10; exp+=10; } - while( realvalue>=10.0*scale && exp<=350 ){ scale *= 10.0; exp++; } - realvalue /= scale; - while( realvalue<1e-8 ){ realvalue *= 1e8; exp-=8; } - while( realvalue<1.0 ){ realvalue *= 10.0; exp--; } - if( exp>350 ){ - if( flag_zeropad ){ - realvalue = 9.0; - exp = 999; - }else{ - bufpt = buf; - buf[0] = prefix; - memcpy(buf+(prefix!=0),"Inf",4); - length = 3+(prefix!=0); - break; - } - } - if( xtype!=etFLOAT ){ - realvalue += rounder; - if( realvalue>=10.0 ){ realvalue *= 0.1; exp++; } - } - } - } + exp = s.iDP-1; + if( xtype==etGENERIC && precision>0 ) precision--; /* ** If the field type is etGENERIC, then convert to either etEXP @@ -30758,9 +30994,8 @@ SQLITE_API void sqlite3_str_vappendf( if( xtype==etEXP ){ e2 = 0; }else{ - e2 = exp; + e2 = s.iDP - 1; } - nsd = 16 + flag_altform2*10; bufpt = buf; { i64 szBufNeeded; /* Size of a temporary buffer needed */ @@ -30778,16 +31013,12 @@ SQLITE_API void sqlite3_str_vappendf( *(bufpt++) = prefix; } /* Digits prior to the decimal point */ + j = 0; if( e2<0 ){ *(bufpt++) = '0'; - }else if( msd>0 ){ - for(; e2>=0; e2--){ - *(bufpt++) = et_getdigit_int(&longvalue,&msd); - if( cThousand && (e2%3)==0 && e2>1 ) *(bufpt++) = ','; - } }else{ for(; e2>=0; e2--){ - *(bufpt++) = et_getdigit(&realvalue,&nsd); + *(bufpt++) = j1 ) *(bufpt++) = ','; } } @@ -30797,19 +31028,12 @@ SQLITE_API void sqlite3_str_vappendf( } /* "0" digits after the decimal point but before the first ** significant digit of the number */ - for(e2++; e2<0; precision--, e2++){ - assert( precision>0 ); + for(e2++; e2<0 && precision>0; precision--, e2++){ *(bufpt++) = '0'; } /* Significant digits after the decimal point */ - if( msd>0 ){ - while( (precision--)>0 ){ - *(bufpt++) = et_getdigit_int(&longvalue,&msd); - } - }else{ - while( (precision--)>0 ){ - *(bufpt++) = et_getdigit(&realvalue,&nsd); - } + while( (precision--)>0 ){ + *(bufpt++) = jcharset]; if( exp<0 ){ *(bufpt++) = '-'; exp = -exp; @@ -30858,8 +31083,8 @@ SQLITE_API void sqlite3_str_vappendf( while( nPad-- ) bufpt[i++] = '0'; length = width; } -#endif /* !defined(SQLITE_OMIT_FLOATING_POINT) */ break; + } case etSIZE: if( !bArgList ){ *(va_arg(ap,int*)) = pAccum->nChar; @@ -31583,6 +31808,75 @@ SQLITE_API void sqlite3_str_appendf(StrAccum *p, const char *zFormat, ...){ va_end(ap); } + +/***************************************************************************** +** Reference counted string storage +*****************************************************************************/ + +/* +** Increase the reference count of the string by one. +** +** The input parameter is returned. +*/ +SQLITE_PRIVATE char *sqlite3RCStrRef(char *z){ + RCStr *p = (RCStr*)z; + assert( p!=0 ); + p--; + p->nRCRef++; + return z; +} + +/* +** Decrease the reference count by one. Free the string when the +** reference count reaches zero. +*/ +SQLITE_PRIVATE void sqlite3RCStrUnref(char *z){ + RCStr *p = (RCStr*)z; + assert( p!=0 ); + p--; + assert( p->nRCRef>0 ); + if( p->nRCRef>=2 ){ + p->nRCRef--; + }else{ + sqlite3_free(p); + } +} + +/* +** Create a new string that is capable of holding N bytes of text, not counting +** the zero byte at the end. The string is uninitialized. +** +** The reference count is initially 1. Call sqlite3RCStrUnref() to free the +** newly allocated string. +** +** This routine returns 0 on an OOM. +*/ +SQLITE_PRIVATE char *sqlite3RCStrNew(u64 N){ + RCStr *p = sqlite3_malloc64( N + sizeof(*p) + 1 ); + if( p==0 ) return 0; + p->nRCRef = 1; + return (char*)&p[1]; +} + +/* +** Change the size of the string so that it is able to hold N bytes. +** The string might be reallocated, so return the new allocation. +*/ +SQLITE_PRIVATE char *sqlite3RCStrResize(char *z, u64 N){ + RCStr *p = (RCStr*)z; + RCStr *pNew; + assert( p!=0 ); + p--; + assert( p->nRCRef==1 ); + pNew = sqlite3_realloc64(p, N+sizeof(RCStr)+1); + if( pNew==0 ){ + sqlite3_free(p); + return 0; + }else{ + return (char*)&pNew[1]; + } +} + /************** End of printf.c **********************************************/ /************** Begin file treeview.c ****************************************/ /* @@ -32230,7 +32524,8 @@ SQLITE_PRIVATE void sqlite3TreeViewExpr(TreeView *pView, const Expr *pExpr, u8 m }; assert( pExpr->op2==TK_IS || pExpr->op2==TK_ISNOT ); assert( pExpr->pRight ); - assert( sqlite3ExprSkipCollate(pExpr->pRight)->op==TK_TRUEFALSE ); + assert( sqlite3ExprSkipCollateAndLikely(pExpr->pRight)->op + == TK_TRUEFALSE ); x = (pExpr->op2==TK_ISNOT)*2 + sqlite3ExprTruthValue(pExpr->pRight); zUniOp = azOp[x]; break; @@ -33889,7 +34184,7 @@ SQLITE_PRIVATE void sqlite3UtfSelfTest(void){ /* ** Calls to sqlite3FaultSim() are used to simulate a failure during testing, ** or to bypass normal error detection during testing in order to let -** execute proceed futher downstream. +** execute proceed further downstream. ** ** In deployment, sqlite3FaultSim() *always* return SQLITE_OK (0). The ** sqlite3FaultSim() function only returns non-zero during testing. @@ -34006,6 +34301,23 @@ SQLITE_PRIVATE void sqlite3ErrorClear(sqlite3 *db){ */ SQLITE_PRIVATE void sqlite3SystemError(sqlite3 *db, int rc){ if( rc==SQLITE_IOERR_NOMEM ) return; +#ifdef SQLITE_USE_SEH + if( rc==SQLITE_IOERR_IN_PAGE ){ + int ii; + int iErr; + sqlite3BtreeEnterAll(db); + for(ii=0; iinDb; ii++){ + if( db->aDb[ii].pBt ){ + iErr = sqlite3PagerWalSystemErrno(sqlite3BtreePager(db->aDb[ii].pBt)); + if( iErr ){ + db->iSysErrno = iErr; + } + } + } + sqlite3BtreeLeaveAll(db); + return; + } +#endif rc &= 0xff; if( rc==SQLITE_CANTOPEN || rc==SQLITE_IOERR ){ db->iSysErrno = sqlite3OsGetLastError(db->pVfs); @@ -34251,43 +34563,40 @@ SQLITE_PRIVATE u8 sqlite3StrIHash(const char *z){ return h; } -/* -** Compute 10 to the E-th power. Examples: E==1 results in 10. -** E==2 results in 100. E==50 results in 1.0e50. +/* Double-Double multiplication. (x[0],x[1]) *= (y,yy) ** -** This routine only works for values of E between 1 and 341. +** Reference: +** T. J. Dekker, "A Floating-Point Technique for Extending the +** Available Precision". 1971-07-26. */ -static LONGDOUBLE_TYPE sqlite3Pow10(int E){ -#if defined(_MSC_VER) - static const LONGDOUBLE_TYPE x[] = { - 1.0e+001L, - 1.0e+002L, - 1.0e+004L, - 1.0e+008L, - 1.0e+016L, - 1.0e+032L, - 1.0e+064L, - 1.0e+128L, - 1.0e+256L - }; - LONGDOUBLE_TYPE r = 1.0; - int i; - assert( E>=0 && E<=307 ); - for(i=0; E!=0; i++, E >>=1){ - if( E & 1 ) r *= x[i]; - } - return r; -#else - LONGDOUBLE_TYPE x = 10.0; - LONGDOUBLE_TYPE r = 1.0; - while(1){ - if( E & 1 ) r *= x; - E >>= 1; - if( E==0 ) break; - x *= x; - } - return r; -#endif +static void dekkerMul2(volatile double *x, double y, double yy){ + /* + ** The "volatile" keywords on parameter x[] and on local variables + ** below are needed force intermediate results to be truncated to + ** binary64 rather than be carried around in an extended-precision + ** format. The truncation is necessary for the Dekker algorithm to + ** work. Intel x86 floating point might omit the truncation without + ** the use of volatile. + */ + volatile double tx, ty, p, q, c, cc; + double hx, hy; + u64 m; + memcpy(&m, (void*)&x[0], 8); + m &= 0xfffffffffc000000LL; + memcpy(&hx, &m, 8); + tx = x[0] - hx; + memcpy(&m, &y, 8); + m &= 0xfffffffffc000000LL; + memcpy(&hy, &m, 8); + ty = y - hy; + p = hx*hy; + q = hx*ty + tx*hy; + c = p+q; + cc = p - c + q + tx*ty; + cc = x[0]*yy + x[1]*y + cc; + x[0] = c + cc; + x[1] = c - x[0]; + x[1] += cc; } /* @@ -34328,12 +34637,11 @@ SQLITE_PRIVATE int sqlite3AtoF(const char *z, double *pResult, int length, u8 en const char *zEnd; /* sign * significand * (10 ^ (esign * exponent)) */ int sign = 1; /* sign of significand */ - i64 s = 0; /* significand */ + u64 s = 0; /* significand */ int d = 0; /* adjust exponent for shifting decimal point */ int esign = 1; /* sign of exponent */ int e = 0; /* exponent */ int eValid = 1; /* True exponent is either not used or is well-formed */ - double result; int nDigit = 0; /* Number of digits processed */ int eType = 1; /* 1: pure integer, 2+: fractional -1 or less: bad UTF16 */ @@ -34373,7 +34681,7 @@ SQLITE_PRIVATE int sqlite3AtoF(const char *z, double *pResult, int length, u8 en while( z=((LARGEST_INT64-9)/10) ){ + if( s>=((LARGEST_UINT64-9)/10) ){ /* skip non-significant significand digits ** (increase exponent by d to shift decimal left) */ while( z0 && s<(LARGEST_UINT64/10) ){ + s *= 10; + e--; + } + while( e<0 && (s%10)==0 ){ + s /= 10; + e++; } - if( s==0 ) { - /* In the IEEE 754 standard, zero is signed. */ - result = sign<0 ? -(double)0 : (double)0; - } else { - /* Attempt to reduce exponent. - ** - ** Branches that are not required for the correct answer but which only - ** help to obtain the correct answer faster are marked with special - ** comments, as a hint to the mutation tester. - */ - while( e>0 ){ /*OPTIMIZATION-IF-TRUE*/ - if( esign>0 ){ - if( s>=(LARGEST_INT64/10) ) break; /*OPTIMIZATION-IF-FALSE*/ - s *= 10; - }else{ - if( s%10!=0 ) break; /*OPTIMIZATION-IF-FALSE*/ - s /= 10; - } - e--; - } - - /* adjust the sign of significand */ - s = sign<0 ? -s : s; - - if( e==0 ){ /*OPTIMIZATION-IF-TRUE*/ - result = (double)s; + if( e==0 ){ + *pResult = s; + }else if( sqlite3Config.bUseLongDouble ){ + LONGDOUBLE_TYPE r = (LONGDOUBLE_TYPE)s; + if( e>0 ){ + while( e>=100 ){ e-=100; r *= 1.0e+100L; } + while( e>=10 ){ e-=10; r *= 1.0e+10L; } + while( e>=1 ){ e-=1; r *= 1.0e+01L; } }else{ - /* attempt to handle extremely small/large numbers better */ - if( e>307 ){ /*OPTIMIZATION-IF-TRUE*/ - if( e<342 ){ /*OPTIMIZATION-IF-TRUE*/ - LONGDOUBLE_TYPE scale = sqlite3Pow10(e-308); - if( esign<0 ){ - result = s / scale; - result /= 1.0e+308; - }else{ - result = s * scale; - result *= 1.0e+308; - } - }else{ assert( e>=342 ); - if( esign<0 ){ - result = 0.0*s; - }else{ + while( e<=-100 ){ e+=100; r *= 1.0e-100L; } + while( e<=-10 ){ e+=10; r *= 1.0e-10L; } + while( e<=-1 ){ e+=1; r *= 1.0e-01L; } + } + assert( r>=0.0 ); + if( r>+1.7976931348623157081452742373e+308L ){ #ifdef INFINITY - result = INFINITY*s; + *pResult = +INFINITY; #else - result = 1e308*1e308*s; /* Infinity */ + *pResult = 1.0e308*10.0; #endif - } - } - }else{ - LONGDOUBLE_TYPE scale = sqlite3Pow10(e); - if( esign<0 ){ - result = s / scale; - }else{ - result = s * scale; - } + }else{ + *pResult = (double)r; + } + }else{ + double rr[2]; + u64 s2; + rr[0] = (double)s; + s2 = (u64)rr[0]; + rr[1] = s>=s2 ? (double)(s - s2) : -(double)(s2 - s); + if( e>0 ){ + while( e>=100 ){ + e -= 100; + dekkerMul2(rr, 1.0e+100, -1.5902891109759918046e+83); + } + while( e>=10 ){ + e -= 10; + dekkerMul2(rr, 1.0e+10, 0.0); + } + while( e>=1 ){ + e -= 1; + dekkerMul2(rr, 1.0e+01, 0.0); + } + }else{ + while( e<=-100 ){ + e += 100; + dekkerMul2(rr, 1.0e-100, -1.99918998026028836196e-117); + } + while( e<=-10 ){ + e += 10; + dekkerMul2(rr, 1.0e-10, -3.6432197315497741579e-27); + } + while( e<=-1 ){ + e += 1; + dekkerMul2(rr, 1.0e-01, -5.5511151231257827021e-18); } } + *pResult = rr[0]+rr[1]; + if( sqlite3IsNaN(*pResult) ) *pResult = 1e300*1e300; } + if( sign<0 ) *pResult = -*pResult; + assert( !sqlite3IsNaN(*pResult) ); - /* store the result */ - *pResult = result; - - /* return true if number and no extra non-whitespace chracters after */ +atof_return: + /* return true if number and no extra non-whitespace characters after */ if( z==zEnd && nDigit>0 && eValid && eType>0 ){ return eType; }else if( eType>=2 && (eType==3 || eValid) && nDigit>0 ){ @@ -34636,7 +34954,7 @@ SQLITE_PRIVATE int sqlite3Atoi64(const char *zNum, i64 *pNum, int length, u8 enc /* This test and assignment is needed only to suppress UB warnings ** from clang and -fsanitize=undefined. This test and assignment make ** the code a little larger and slower, and no harm comes from omitting - ** them, but we must appaise the undefined-behavior pharisees. */ + ** them, but we must appease the undefined-behavior pharisees. */ *pNum = neg ? SMALLEST_INT64 : LARGEST_INT64; }else if( neg ){ *pNum = -(i64)u; @@ -34714,7 +35032,9 @@ SQLITE_PRIVATE int sqlite3DecOrHexToI64(const char *z, i64 *pOut){ }else #endif /* SQLITE_OMIT_HEX_INTEGER */ { - return sqlite3Atoi64(z, pOut, sqlite3Strlen30(z), SQLITE_UTF8); + int n = (int)(0x3fffffff&strspn(z,"+- \n\t0123456789")); + if( z[n] ) n++; + return sqlite3Atoi64(z, pOut, n, SQLITE_UTF8); } } @@ -34793,6 +35113,153 @@ SQLITE_PRIVATE int sqlite3Atoi(const char *z){ return x; } +/* +** Decode a floating-point value into an approximate decimal +** representation. +** +** Round the decimal representation to n significant digits if +** n is positive. Or round to -n signficant digits after the +** decimal point if n is negative. No rounding is performed if +** n is zero. +** +** The significant digits of the decimal representation are +** stored in p->z[] which is a often (but not always) a pointer +** into the middle of p->zBuf[]. There are p->n significant digits. +** The p->z[] array is *not* zero-terminated. +*/ +SQLITE_PRIVATE void sqlite3FpDecode(FpDecode *p, double r, int iRound, int mxRound){ + int i; + u64 v; + int e, exp = 0; + p->isSpecial = 0; + p->z = p->zBuf; + + /* Convert negative numbers to positive. Deal with Infinity, 0.0, and + ** NaN. */ + if( r<0.0 ){ + p->sign = '-'; + r = -r; + }else if( r==0.0 ){ + p->sign = '+'; + p->n = 1; + p->iDP = 1; + p->z = "0"; + return; + }else{ + p->sign = '+'; + } + memcpy(&v,&r,8); + e = v>>52; + if( (e&0x7ff)==0x7ff ){ + p->isSpecial = 1 + (v!=0x7ff0000000000000LL); + p->n = 0; + p->iDP = 0; + return; + } + + /* Multiply r by powers of ten until it lands somewhere in between + ** 1.0e+19 and 1.0e+17. + */ + if( sqlite3Config.bUseLongDouble ){ + LONGDOUBLE_TYPE rr = r; + if( rr>=1.0e+19 ){ + while( rr>=1.0e+119L ){ exp+=100; rr *= 1.0e-100L; } + while( rr>=1.0e+29L ){ exp+=10; rr *= 1.0e-10L; } + while( rr>=1.0e+19L ){ exp++; rr *= 1.0e-1L; } + }else{ + while( rr<1.0e-97L ){ exp-=100; rr *= 1.0e+100L; } + while( rr<1.0e+07L ){ exp-=10; rr *= 1.0e+10L; } + while( rr<1.0e+17L ){ exp--; rr *= 1.0e+1L; } + } + v = (u64)rr; + }else{ + /* If high-precision floating point is not available using "long double", + ** then use Dekker-style double-double computation to increase the + ** precision. + ** + ** The error terms on constants like 1.0e+100 computed using the + ** decimal extension, for example as follows: + ** + ** SELECT decimal_exp(decimal_sub('1.0e+100',decimal(1.0e+100))); + */ + double rr[2]; + rr[0] = r; + rr[1] = 0.0; + if( rr[0]>1.84e+19 ){ + while( rr[0]>1.84e+119 ){ + exp += 100; + dekkerMul2(rr, 1.0e-100, -1.99918998026028836196e-117); + } + while( rr[0]>1.84e+29 ){ + exp += 10; + dekkerMul2(rr, 1.0e-10, -3.6432197315497741579e-27); + } + while( rr[0]>1.84e+19 ){ + exp += 1; + dekkerMul2(rr, 1.0e-01, -5.5511151231257827021e-18); + } + }else{ + while( rr[0]<1.84e-82 ){ + exp -= 100; + dekkerMul2(rr, 1.0e+100, -1.5902891109759918046e+83); + } + while( rr[0]<1.84e+08 ){ + exp -= 10; + dekkerMul2(rr, 1.0e+10, 0.0); + } + while( rr[0]<1.84e+18 ){ + exp -= 1; + dekkerMul2(rr, 1.0e+01, 0.0); + } + } + v = rr[1]<0.0 ? (u64)rr[0]-(u64)(-rr[1]) : (u64)rr[0]+(u64)rr[1]; + } + + + /* Extract significant digits. */ + i = sizeof(p->zBuf)-1; + assert( v>0 ); + while( v ){ p->zBuf[i--] = (v%10) + '0'; v /= 10; } + assert( i>=0 && izBuf)-1 ); + p->n = sizeof(p->zBuf) - 1 - i; + assert( p->n>0 ); + assert( p->nzBuf) ); + p->iDP = p->n + exp; + if( iRound<0 ){ + iRound = p->iDP - iRound; + if( iRound==0 && p->zBuf[i+1]>='5' ){ + iRound = 1; + p->zBuf[i--] = '0'; + p->n++; + p->iDP++; + } + } + if( iRound>0 && (iRoundn || p->n>mxRound) ){ + char *z = &p->zBuf[i+1]; + if( iRound>mxRound ) iRound = mxRound; + p->n = iRound; + if( z[iRound]>='5' ){ + int j = iRound-1; + while( 1 /*exit-by-break*/ ){ + z[j]++; + if( z[j]<='9' ) break; + z[j] = '0'; + if( j==0 ){ + p->z[i--] = '1'; + p->n++; + p->iDP++; + break; + }else{ + j--; + } + } + } + } + p->z = &p->zBuf[i+1]; + assert( i+p->n < sizeof(p->zBuf) ); + while( ALWAYS(p->n>0) && p->z[p->n-1]=='0' ){ p->n--; } +} + /* ** Try to convert z into an unsigned 32-bit integer. Return true on ** success and false if there is an error. @@ -35321,7 +35788,7 @@ SQLITE_PRIVATE int sqlite3SafetyCheckSickOrOk(sqlite3 *db){ } /* -** Attempt to add, substract, or multiply the 64-bit signed value iB against +** Attempt to add, subtract, or multiply the 64-bit signed value iB against ** the other 64-bit signed integer at *pA and store the result in *pA. ** Return 0 on success. Or if the operation would have resulted in an ** overflow, leave *pA unchanged and return 1. @@ -35634,7 +36101,7 @@ SQLITE_PRIVATE int sqlite3VListNameToNum(VList *pIn, const char *zName, int nNam #define SQLITE_HWTIME_H /* -** The following routine only works on pentium-class (or newer) processors. +** The following routine only works on Pentium-class (or newer) processors. ** It uses the RDTSC opcode to read the cycle count value out of the ** processor and returns that value. This can be used for high-res ** profiling. @@ -35806,7 +36273,7 @@ static void insertElement( } -/* Resize the hash table so that it cantains "new_size" buckets. +/* Resize the hash table so that it contains "new_size" buckets. ** ** The hash table might fail to resize if sqlite3_malloc() fails or ** if the new size is the same as the prior size. @@ -37192,7 +37659,7 @@ SQLITE_PRIVATE int sqlite3KvvfsInit(void){ ** This source file is organized into divisions where the logic for various ** subfunctions is contained within the appropriate division. PLEASE ** KEEP THE STRUCTURE OF THIS FILE INTACT. New code should be placed -** in the correct division and should be clearly labeled. +** in the correct division and should be clearly labelled. ** ** The layout of divisions is as follows: ** @@ -37779,7 +38246,7 @@ static int robustFchown(int fd, uid_t uid, gid_t gid){ /* ** This is the xSetSystemCall() method of sqlite3_vfs for all of the -** "unix" VFSes. Return SQLITE_OK opon successfully updating the +** "unix" VFSes. Return SQLITE_OK upon successfully updating the ** system call pointer, or SQLITE_NOTFOUND if there is no configurable ** system call named zName. */ @@ -38301,7 +38768,7 @@ static void vxworksReleaseFileId(struct vxworksFileId *pId){ ** If you close a file descriptor that points to a file that has locks, ** all locks on that file that are owned by the current process are ** released. To work around this problem, each unixInodeInfo object -** maintains a count of the number of pending locks on tha inode. +** maintains a count of the number of pending locks on the inode. ** When an attempt is made to close an unixFile, if there are ** other unixFile open on the same inode that are holding locks, the call ** to close() the file descriptor is deferred until all of the locks clear. @@ -38315,7 +38782,7 @@ static void vxworksReleaseFileId(struct vxworksFileId *pId){ ** not posix compliant. Under LinuxThreads, a lock created by thread ** A cannot be modified or overridden by a different thread B. ** Only thread A can modify the lock. Locking behavior is correct -** if the appliation uses the newer Native Posix Thread Library (NPTL) +** if the application uses the newer Native Posix Thread Library (NPTL) ** on linux - with NPTL a lock created by thread A can override locks ** in thread B. But there is no way to know at compile-time which ** threading library is being used. So there is no way to know at @@ -38517,7 +38984,7 @@ static void storeLastErrno(unixFile *pFile, int error){ } /* -** Close all file descriptors accumuated in the unixInodeInfo->pUnused list. +** Close all file descriptors accumulated in the unixInodeInfo->pUnused list. */ static void closePendingFds(unixFile *pFile){ unixInodeInfo *pInode = pFile->pInode; @@ -38880,7 +39347,7 @@ static int unixLock(sqlite3_file *id, int eFileLock){ ** slightly in order to be compatible with Windows95 systems simultaneously ** accessing the same database file, in case that is ever required. ** - ** Symbols defined in os.h indentify the 'pending byte' and the 'reserved + ** Symbols defined in os.h identify the 'pending byte' and the 'reserved ** byte', each single bytes at well known offsets, and the 'shared byte ** range', a range of 510 bytes at a well known offset. ** @@ -38888,7 +39355,7 @@ static int unixLock(sqlite3_file *id, int eFileLock){ ** byte'. If this is successful, 'shared byte range' is read-locked ** and the lock on the 'pending byte' released. (Legacy note: When ** SQLite was first developed, Windows95 systems were still very common, - ** and Widnows95 lacks a shared-lock capability. So on Windows95, a + ** and Windows95 lacks a shared-lock capability. So on Windows95, a ** single randomly selected by from the 'shared byte range' is locked. ** Windows95 is now pretty much extinct, but this work-around for the ** lack of shared-locks on Windows95 lives on, for backwards @@ -38909,7 +39376,7 @@ static int unixLock(sqlite3_file *id, int eFileLock){ ** obtaining a write-lock on the 'pending byte'. This ensures that no new ** SHARED locks can be obtained, but existing SHARED locks are allowed to ** persist. If the call to this function fails to obtain the EXCLUSIVE - ** lock in this case, it holds the PENDING lock intead. The client may + ** lock in this case, it holds the PENDING lock instead. The client may ** then re-attempt the EXCLUSIVE lock later on, after existing SHARED ** locks have cleared. */ @@ -38937,7 +39404,7 @@ static int unixLock(sqlite3_file *id, int eFileLock){ /* Make sure the locking sequence is correct. ** (1) We never move from unlocked to anything higher than shared lock. - ** (2) SQLite never explicitly requests a pendig lock. + ** (2) SQLite never explicitly requests a pending lock. ** (3) A shared lock is always held when a reserve lock is requested. */ assert( pFile->eFileLock!=NO_LOCK || eFileLock==SHARED_LOCK ); @@ -40155,7 +40622,7 @@ static int afpLock(sqlite3_file *id, int eFileLock){ /* Make sure the locking sequence is correct ** (1) We never move from unlocked to anything higher than shared lock. - ** (2) SQLite never explicitly requests a pendig lock. + ** (2) SQLite never explicitly requests a pending lock. ** (3) A shared lock is always held when a reserve lock is requested. */ assert( pFile->eFileLock!=NO_LOCK || eFileLock==SHARED_LOCK ); @@ -40271,7 +40738,7 @@ static int afpLock(sqlite3_file *id, int eFileLock){ if( !(failed = afpSetLock(context->dbPath, pFile, SHARED_FIRST + pInode->sharedByte, 1, 0)) ){ int failed2 = SQLITE_OK; - /* now attemmpt to get the exclusive lock range */ + /* now attempt to get the exclusive lock range */ failed = afpSetLock(context->dbPath, pFile, SHARED_FIRST, SHARED_SIZE, 1); if( failed && (failed2 = afpSetLock(context->dbPath, pFile, @@ -40566,7 +41033,7 @@ static int unixRead( #endif #if SQLITE_MAX_MMAP_SIZE>0 - /* Deal with as much of this read request as possible by transfering + /* Deal with as much of this read request as possible by transferring ** data from the memory mapping using memcpy(). */ if( offsetmmapSize ){ if( offset+amt <= pFile->mmapSize ){ @@ -40718,7 +41185,7 @@ static int unixWrite( #endif #if defined(SQLITE_MMAP_READWRITE) && SQLITE_MAX_MMAP_SIZE>0 - /* Deal with as much of this write request as possible by transfering + /* Deal with as much of this write request as possible by transferring ** data from the memory mapping using memcpy(). */ if( offsetmmapSize ){ if( offset+amt <= pFile->mmapSize ){ @@ -40840,7 +41307,7 @@ static int full_fsync(int fd, int fullSync, int dataOnly){ /* If we compiled with the SQLITE_NO_SYNC flag, then syncing is a ** no-op. But go ahead and call fstat() to validate the file ** descriptor as we need a method to provoke a failure during - ** coverate testing. + ** coverage testing. */ #ifdef SQLITE_NO_SYNC { @@ -43885,12 +44352,17 @@ static int unixRandomness(sqlite3_vfs *NotUsed, int nBuf, char *zBuf){ ** than the argument. */ static int unixSleep(sqlite3_vfs *NotUsed, int microseconds){ -#if OS_VXWORKS || _POSIX_C_SOURCE >= 199309L +#if !defined(HAVE_NANOSLEEP) || HAVE_NANOSLEEP+0 struct timespec sp; - sp.tv_sec = microseconds / 1000000; sp.tv_nsec = (microseconds % 1000000) * 1000; + + /* Almost all modern unix systems support nanosleep(). But if you are + ** compiling for one of the rare exceptions, you can use + ** -DHAVE_NANOSLEEP=0 (perhaps in conjuction with -DHAVE_USLEEP if + ** usleep() is available) in order to bypass the use of nanosleep() */ nanosleep(&sp, NULL); + UNUSED_PARAMETER(NotUsed); return microseconds; #elif defined(HAVE_USLEEP) && HAVE_USLEEP @@ -46480,7 +46952,7 @@ static struct win_syscall { /* ** This is the xSetSystemCall() method of sqlite3_vfs for all of the -** "win32" VFSes. Return SQLITE_OK opon successfully updating the +** "win32" VFSes. Return SQLITE_OK upon successfully updating the ** system call pointer, or SQLITE_NOTFOUND if there is no configurable ** system call named zName. */ @@ -48060,7 +48532,7 @@ static int winRead( pFile->h, pBuf, amt, offset, pFile->locktype)); #if SQLITE_MAX_MMAP_SIZE>0 - /* Deal with as much of this read request as possible by transfering + /* Deal with as much of this read request as possible by transferring ** data from the memory mapping using memcpy(). */ if( offsetmmapSize ){ if( offset+amt <= pFile->mmapSize ){ @@ -48138,7 +48610,7 @@ static int winWrite( pFile->h, pBuf, amt, offset, pFile->locktype)); #if defined(SQLITE_MMAP_READWRITE) && SQLITE_MAX_MMAP_SIZE>0 - /* Deal with as much of this write request as possible by transfering + /* Deal with as much of this write request as possible by transferring ** data from the memory mapping using memcpy(). */ if( offsetmmapSize ){ if( offset+amt <= pFile->mmapSize ){ @@ -48248,7 +48720,7 @@ static int winTruncate(sqlite3_file *id, sqlite3_int64 nByte){ ** all references to memory-mapped content are closed. That is doable, ** but involves adding a few branches in the common write code path which ** could slow down normal operations slightly. Hence, we have decided for - ** now to simply make trancations a no-op if there are pending reads. We + ** now to simply make transactions a no-op if there are pending reads. We ** can maybe revisit this decision in the future. */ return SQLITE_OK; @@ -48307,7 +48779,7 @@ static int winTruncate(sqlite3_file *id, sqlite3_int64 nByte){ #ifdef SQLITE_TEST /* ** Count the number of fullsyncs and normal syncs. This is used to test -** that syncs and fullsyncs are occuring at the right times. +** that syncs and fullsyncs are occurring at the right times. */ SQLITE_API int sqlite3_sync_count = 0; SQLITE_API int sqlite3_fullsync_count = 0; @@ -48664,7 +49136,7 @@ static int winLock(sqlite3_file *id, int locktype){ */ if( locktype==EXCLUSIVE_LOCK && res ){ assert( pFile->locktype>=SHARED_LOCK ); - res = winUnlockReadLock(pFile); + (void)winUnlockReadLock(pFile); res = winLockFile(&pFile->h, SQLITE_LOCKFILE_FLAGS, SHARED_FIRST, 0, SHARED_SIZE, 0); if( res ){ @@ -50068,6 +50540,7 @@ static int winGetTempname(sqlite3_vfs *pVfs, char **pzBuf){ "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "0123456789"; size_t i, j; + DWORD pid; int nPre = sqlite3Strlen30(SQLITE_TEMP_FILE_PREFIX); int nMax, nBuf, nDir, nLen; char *zBuf; @@ -50280,7 +50753,10 @@ static int winGetTempname(sqlite3_vfs *pVfs, char **pzBuf){ j = sqlite3Strlen30(zBuf); sqlite3_randomness(15, &zBuf[j]); + pid = osGetCurrentProcessId(); for(i=0; i<15; i++, j++){ + zBuf[j] += pid & 0xff; + pid >>= 8; zBuf[j] = (char)zChars[ ((unsigned char)zBuf[j])%(sizeof(zChars)-1) ]; } zBuf[j] = 0; @@ -52645,7 +53121,7 @@ SQLITE_PRIVATE int sqlite3BitvecSet(Bitvec *p, u32 i){ h = BITVEC_HASH(i++); /* if there wasn't a hash collision, and this doesn't */ /* completely fill the hash, then just add it without */ - /* worring about sub-dividing and re-hashing. */ + /* worrying about sub-dividing and re-hashing. */ if( !p->u.aHash[h] ){ if (p->nSet<(BITVEC_NINT-1)) { goto bitvec_set_end; @@ -52978,7 +53454,7 @@ struct PCache { ** Return 1 if pPg is on the dirty list for pCache. Return 0 if not. ** This routine runs inside of assert() statements only. */ -#ifdef SQLITE_DEBUG +#if defined(SQLITE_ENABLE_EXPENSIVE_ASSERT) static int pageOnDirtyList(PCache *pCache, PgHdr *pPg){ PgHdr *p; for(p=pCache->pDirty; p; p=p->pDirtyNext){ @@ -52986,6 +53462,16 @@ static int pageOnDirtyList(PCache *pCache, PgHdr *pPg){ } return 0; } +static int pageNotOnDirtyList(PCache *pCache, PgHdr *pPg){ + PgHdr *p; + for(p=pCache->pDirty; p; p=p->pDirtyNext){ + if( p==pPg ) return 0; + } + return 1; +} +#else +# define pageOnDirtyList(A,B) 1 +# define pageNotOnDirtyList(A,B) 1 #endif /* @@ -53006,7 +53492,7 @@ SQLITE_PRIVATE int sqlite3PcachePageSanity(PgHdr *pPg){ assert( pCache!=0 ); /* Every page has an associated PCache */ if( pPg->flags & PGHDR_CLEAN ){ assert( (pPg->flags & PGHDR_DIRTY)==0 );/* Cannot be both CLEAN and DIRTY */ - assert( !pageOnDirtyList(pCache, pPg) );/* CLEAN pages not on dirty list */ + assert( pageNotOnDirtyList(pCache, pPg) );/* CLEAN pages not on dirtylist */ }else{ assert( (pPg->flags & PGHDR_DIRTY)!=0 );/* If not CLEAN must be DIRTY */ assert( pPg->pDirtyNext==0 || pPg->pDirtyNext->pDirtyPrev==pPg ); @@ -53142,7 +53628,7 @@ static int numberOfCachePages(PCache *p){ return p->szCache; }else{ i64 n; - /* IMPLEMANTATION-OF: R-59858-46238 If the argument N is negative, then the + /* IMPLEMENTATION-OF: R-59858-46238 If the argument N is negative, then the ** number of cache pages is adjusted to be a number of pages that would ** use approximately abs(N*1024) bytes of memory based on the current ** page size. */ @@ -53630,7 +54116,7 @@ static PgHdr *pcacheMergeDirtyList(PgHdr *pA, PgHdr *pB){ } /* -** Sort the list of pages in accending order by pgno. Pages are +** Sort the list of pages in ascending order by pgno. Pages are ** connected by pDirty pointers. The pDirtyPrev pointers are ** corrupted by this sort. ** @@ -53870,7 +54356,7 @@ SQLITE_PRIVATE void sqlite3PcacheIterateDirty(PCache *pCache, void (*xIter)(PgHd ** If N is positive, then N pages worth of memory are allocated using a single ** sqlite3Malloc() call and that memory is used for the first N pages allocated. ** Or if N is negative, then -1024*N bytes of memory are allocated and used -** for as many pages as can be accomodated. +** for as many pages as can be accommodated. ** ** Only one of (2) or (3) can be used. Once the memory available to (2) or ** (3) is exhausted, subsequent allocations fail over to the general-purpose @@ -53904,7 +54390,7 @@ typedef struct PGroup PGroup; ** in memory directly after the associated page data, if the database is ** corrupt, code at the b-tree layer may overread the page buffer and ** read part of this structure before the corruption is detected. This -** can cause a valgrind error if the unitialized gap is accessed. Using u16 +** can cause a valgrind error if the uninitialized gap is accessed. Using u16 ** ensures there is no such gap, and therefore no bytes of uninitialized ** memory in the structure. ** @@ -55124,7 +55610,7 @@ SQLITE_PRIVATE void sqlite3PcacheStats( ** The TEST primitive includes a "batch" number. The TEST primitive ** will only see elements that were inserted before the last change ** in the batch number. In other words, if an INSERT occurs between -** two TESTs where the TESTs have the same batch nubmer, then the +** two TESTs where the TESTs have the same batch number, then the ** value added by the INSERT will not be visible to the second TEST. ** The initial batch number is zero, so if the very first TEST contains ** a non-zero batch number, it will see all prior INSERTs. @@ -55656,6 +56142,7 @@ SQLITE_PRIVATE int sqlite3RowSetTest(RowSet *pRowSet, int iBatch, sqlite3_int64 # define sqlite3WalFramesize(z) 0 # define sqlite3WalFindFrame(x,y,z) 0 # define sqlite3WalFile(x) 0 +# undef SQLITE_USE_SEH #else #define WAL_SAVEPOINT_NDATA 4 @@ -55762,6 +56249,10 @@ SQLITE_PRIVATE int sqlite3WalWriteLock(Wal *pWal, int bLock); SQLITE_PRIVATE void sqlite3WalDb(Wal *pWal, sqlite3 *db); #endif +#ifdef SQLITE_USE_SEH +SQLITE_PRIVATE int sqlite3WalSystemErrno(Wal*); +#endif + #endif /* ifndef SQLITE_OMIT_WAL */ #endif /* SQLITE_WAL_H */ @@ -56047,7 +56538,7 @@ int sqlite3PagerTrace=1; /* True to enable tracing */ ** outstanding transactions have been abandoned, the pager is able to ** transition back to OPEN state, discarding the contents of the ** page-cache and any other in-memory state at the same time. Everything -** is reloaded from disk (and, if necessary, hot-journal rollback peformed) +** is reloaded from disk (and, if necessary, hot-journal rollback performed) ** when a read-transaction is next opened on the pager (transitioning ** the pager into READER state). At that point the system has recovered ** from the error. @@ -57420,7 +57911,7 @@ static int readJournalHdr( ** + 4 bytes: super-journal name checksum. ** + 8 bytes: aJournalMagic[]. ** -** The super-journal page checksum is the sum of the bytes in thesuper-journal +** The super-journal page checksum is the sum of the bytes in the super-journal ** name, where each byte is interpreted as a signed 8-bit integer. ** ** If zSuper is a NULL pointer (occurs for a single database transaction), @@ -57473,7 +57964,7 @@ static int writeSuperJournal(Pager *pPager, const char *zSuper){ } pPager->journalOff += (nSuper+20); - /* If the pager is in peristent-journal mode, then the physical + /* If the pager is in persistent-journal mode, then the physical ** journal-file may extend past the end of the super-journal name ** and 8 bytes of magic data just written to the file. This is ** dangerous because the code to rollback a hot-journal file @@ -57643,7 +58134,7 @@ static void pager_unlock(Pager *pPager){ /* ** This function is called whenever an IOERR or FULL error that requires -** the pager to transition into the ERROR state may ahve occurred. +** the pager to transition into the ERROR state may have occurred. ** The first argument is a pointer to the pager structure, the second ** the error-code about to be returned by a pager API function. The ** value returned is a copy of the second argument to this function. @@ -57918,7 +58409,7 @@ static void pagerUnlockAndRollback(Pager *pPager){ /* ** Parameter aData must point to a buffer of pPager->pageSize bytes -** of data. Compute and return a checksum based ont the contents of the +** of data. Compute and return a checksum based on the contents of the ** page of data and the current value of pPager->cksumInit. ** ** This is not a real checksum. It is really just the sum of the @@ -58884,7 +59375,7 @@ static int pagerWalFrames( assert( pPager->pWal ); assert( pList ); #ifdef SQLITE_DEBUG - /* Verify that the page list is in accending order */ + /* Verify that the page list is in ascending order */ for(p=pList; p && p->pDirty; p=p->pDirty){ assert( p->pgno < p->pDirty->pgno ); } @@ -59015,7 +59506,7 @@ static int pagerPagecount(Pager *pPager, Pgno *pnPage){ #ifndef SQLITE_OMIT_WAL /* ** Check if the *-wal file that corresponds to the database opened by pPager -** exists if the database is not empy, or verify that the *-wal file does +** exists if the database is not empty, or verify that the *-wal file does ** not exist (by deleting it) if the database file is empty. ** ** If the database is not empty and the *-wal file exists, open the pager @@ -60425,11 +60916,7 @@ SQLITE_PRIVATE int sqlite3PagerOpen( int rc = SQLITE_OK; /* Return code */ int tempFile = 0; /* True for temp files (incl. in-memory files) */ int memDb = 0; /* True if this is an in-memory file */ -#ifndef SQLITE_OMIT_DESERIALIZE int memJM = 0; /* Memory journal mode */ -#else -# define memJM 0 -#endif int readOnly = 0; /* True if this is a read-only file */ int journalFileSize; /* Bytes to allocate for each journal fd */ char *zPathname = 0; /* Full path to database file */ @@ -60548,12 +61035,13 @@ SQLITE_PRIVATE int sqlite3PagerOpen( ** specific formatting and order of the various filenames, so if the format ** changes here, be sure to change it there as well. */ + assert( SQLITE_PTRSIZE==sizeof(Pager*) ); pPtr = (u8 *)sqlite3MallocZero( ROUND8(sizeof(*pPager)) + /* Pager structure */ ROUND8(pcacheSize) + /* PCache object */ ROUND8(pVfs->szOsFile) + /* The main db file */ journalFileSize * 2 + /* The two journal files */ - sizeof(pPager) + /* Space to hold a pointer */ + SQLITE_PTRSIZE + /* Space to hold a pointer */ 4 + /* Database prefix */ nPathname + 1 + /* database filename */ nUriByte + /* query parameters */ @@ -60574,7 +61062,7 @@ SQLITE_PRIVATE int sqlite3PagerOpen( pPager->sjfd = (sqlite3_file*)pPtr; pPtr += journalFileSize; pPager->jfd = (sqlite3_file*)pPtr; pPtr += journalFileSize; assert( EIGHT_BYTE_ALIGNMENT(pPager->jfd) ); - memcpy(pPtr, &pPager, sizeof(pPager)); pPtr += sizeof(pPager); + memcpy(pPtr, &pPager, SQLITE_PTRSIZE); pPtr += SQLITE_PTRSIZE; /* Fill in the Pager.zFilename and pPager.zQueryParam fields */ pPtr += 4; /* Skip zero prefix */ @@ -60628,9 +61116,7 @@ SQLITE_PRIVATE int sqlite3PagerOpen( int fout = 0; /* VFS flags returned by xOpen() */ rc = sqlite3OsOpen(pVfs, pPager->zFilename, pPager->fd, vfsFlags, &fout); assert( !memDb ); -#ifndef SQLITE_OMIT_DESERIALIZE pPager->memVfs = memJM = (fout&SQLITE_OPEN_MEMORY)!=0; -#endif readOnly = (fout&SQLITE_OPEN_READONLY)!=0; /* If the file was successfully opened for read/write access, @@ -60767,7 +61253,7 @@ act_like_temp_file: /* ** Return the sqlite3_file for the main database given the name -** of the corresonding WAL or Journal name as passed into +** of the corresponding WAL or Journal name as passed into ** xOpen. */ SQLITE_API sqlite3_file *sqlite3_database_file_object(const char *zName){ @@ -63052,7 +63538,7 @@ SQLITE_PRIVATE int sqlite3PagerSetJournalMode(Pager *pPager, int eMode){ assert( pPager->eState!=PAGER_ERROR ); pPager->journalMode = (u8)eMode; - /* When transistioning from TRUNCATE or PERSIST to any other journal + /* When transitioning from TRUNCATE or PERSIST to any other journal ** mode except WAL, unless the pager is in locking_mode=exclusive mode, ** delete the journal file. */ @@ -63480,6 +63966,12 @@ SQLITE_PRIVATE int sqlite3PagerWalFramesize(Pager *pPager){ } #endif +#ifdef SQLITE_USE_SEH +SQLITE_PRIVATE int sqlite3PagerWalSystemErrno(Pager *pPager){ + return sqlite3WalSystemErrno(pPager->pWal); +} +#endif + #endif /* SQLITE_OMIT_DISKIO */ /************** End of pager.c ***********************************************/ @@ -63770,7 +64262,7 @@ SQLITE_PRIVATE int sqlite3WalTrace = 0; ** ** Technically, the various VFSes are free to implement these locks however ** they see fit. However, compatibility is encouraged so that VFSes can -** interoperate. The standard implemention used on both unix and windows +** interoperate. The standard implementation used on both unix and windows ** is for the index number to indicate a byte offset into the ** WalCkptInfo.aLock[] array in the wal-index header. In other words, all ** locks are on the shm file. The WALINDEX_LOCK_OFFSET constant (which @@ -63846,7 +64338,7 @@ struct WalIndexHdr { ** the mxFrame for that reader. The value READMARK_NOT_USED (0xffffffff) ** for any aReadMark[] means that entry is unused. aReadMark[0] is ** a special case; its value is never used and it exists as a place-holder -** to avoid having to offset aReadMark[] indexs by one. Readers holding +** to avoid having to offset aReadMark[] indexes by one. Readers holding ** WAL_READ_LOCK(0) always ignore the entire WAL and read all content ** directly from the database. ** @@ -64014,7 +64506,15 @@ struct Wal { u32 iReCksum; /* On commit, recalculate checksums from here */ const char *zWalName; /* Name of WAL file */ u32 nCkpt; /* Checkpoint sequence counter in the wal-header */ +#ifdef SQLITE_USE_SEH + u32 lockMask; /* Mask of locks held */ + void *pFree; /* Pointer to sqlite3_free() if exception thrown */ + u32 *pWiValue; /* Value to write into apWiData[iWiPg] */ + int iWiPg; /* Write pWiValue into apWiData[iWiPg] */ + int iSysErrno; /* System error code following exception */ +#endif #ifdef SQLITE_DEBUG + int nSehTry; /* Number of nested SEH_TRY{} blocks */ u8 lockError; /* True if a locking error has occurred */ #endif #ifdef SQLITE_ENABLE_SNAPSHOT @@ -64096,6 +64596,113 @@ struct WalIterator { sizeof(ht_slot)*HASHTABLE_NSLOT + HASHTABLE_NPAGE*sizeof(u32) \ ) +/* +** Structured Exception Handling (SEH) is a Windows-specific technique +** for catching exceptions raised while accessing memory-mapped files. +** +** The -DSQLITE_USE_SEH compile-time option means to use SEH to catch and +** deal with system-level errors that arise during WAL -shm file processing. +** Without this compile-time option, any system-level faults that appear +** while accessing the memory-mapped -shm file will cause a process-wide +** signal to be deliver, which will more than likely cause the entire +** process to exit. +*/ +#ifdef SQLITE_USE_SEH +#include + +/* Beginning of a block of code in which an exception might occur */ +# define SEH_TRY __try { \ + assert( walAssertLockmask(pWal) && pWal->nSehTry==0 ); \ + VVA_ONLY(pWal->nSehTry++); + +/* The end of a block of code in which an exception might occur */ +# define SEH_EXCEPT(X) \ + VVA_ONLY(pWal->nSehTry--); \ + assert( pWal->nSehTry==0 ); \ + } __except( sehExceptionFilter(pWal, GetExceptionCode(), GetExceptionInformation() ) ){ X } + +/* Simulate a memory-mapping fault in the -shm file for testing purposes */ +# define SEH_INJECT_FAULT sehInjectFault(pWal) + +/* +** The second argument is the return value of GetExceptionCode() for the +** current exception. Return EXCEPTION_EXECUTE_HANDLER if the exception code +** indicates that the exception may have been caused by accessing the *-shm +** file mapping. Or EXCEPTION_CONTINUE_SEARCH otherwise. +*/ +static int sehExceptionFilter(Wal *pWal, int eCode, EXCEPTION_POINTERS *p){ + VVA_ONLY(pWal->nSehTry--); + if( eCode==EXCEPTION_IN_PAGE_ERROR ){ + if( p && p->ExceptionRecord && p->ExceptionRecord->NumberParameters>=3 ){ + /* From MSDN: For this type of exception, the first element of the + ** ExceptionInformation[] array is a read-write flag - 0 if the exception + ** was thrown while reading, 1 if while writing. The second element is + ** the virtual address being accessed. The "third array element specifies + ** the underlying NTSTATUS code that resulted in the exception". */ + pWal->iSysErrno = (int)p->ExceptionRecord->ExceptionInformation[2]; + } + return EXCEPTION_EXECUTE_HANDLER; + } + return EXCEPTION_CONTINUE_SEARCH; +} + +/* +** If one is configured, invoke the xTestCallback callback with 650 as +** the argument. If it returns true, throw the same exception that is +** thrown by the system if the *-shm file mapping is accessed after it +** has been invalidated. +*/ +static void sehInjectFault(Wal *pWal){ + int res; + assert( pWal->nSehTry>0 ); + + res = sqlite3FaultSim(650); + if( res!=0 ){ + ULONG_PTR aArg[3]; + aArg[0] = 0; + aArg[1] = 0; + aArg[2] = (ULONG_PTR)res; + RaiseException(EXCEPTION_IN_PAGE_ERROR, 0, 3, (const ULONG_PTR*)aArg); + } +} + +/* +** There are two ways to use this macro. To set a pointer to be freed +** if an exception is thrown: +** +** SEH_FREE_ON_ERROR(0, pPtr); +** +** and to cancel the same: +** +** SEH_FREE_ON_ERROR(pPtr, 0); +** +** In the first case, there must not already be a pointer registered to +** be freed. In the second case, pPtr must be the registered pointer. +*/ +#define SEH_FREE_ON_ERROR(X,Y) \ + assert( (X==0 || Y==0) && pWal->pFree==X ); pWal->pFree = Y + +/* +** There are two ways to use this macro. To arrange for pWal->apWiData[iPg] +** to be set to pValue if an exception is thrown: +** +** SEH_SET_ON_ERROR(iPg, pValue); +** +** and to cancel the same: +** +** SEH_SET_ON_ERROR(0, 0); +*/ +#define SEH_SET_ON_ERROR(X,Y) pWal->iWiPg = X; pWal->pWiValue = Y + +#else +# define SEH_TRY VVA_ONLY(pWal->nSehTry++); +# define SEH_EXCEPT(X) VVA_ONLY(pWal->nSehTry--); assert( pWal->nSehTry==0 ); +# define SEH_INJECT_FAULT assert( pWal->nSehTry>0 ); +# define SEH_FREE_ON_ERROR(X,Y) +# define SEH_SET_ON_ERROR(X,Y) +#endif /* ifdef SQLITE_USE_SEH */ + + /* ** Obtain a pointer to the iPage'th page of the wal-index. The wal-index ** is broken into pages of WALINDEX_PGSZ bytes. Wal-index pages are @@ -64168,6 +64775,7 @@ static int walIndexPage( int iPage, /* The page we seek */ volatile u32 **ppPage /* Write the page pointer here */ ){ + SEH_INJECT_FAULT; if( pWal->nWiData<=iPage || (*ppPage = pWal->apWiData[iPage])==0 ){ return walIndexPageRealloc(pWal, iPage, ppPage); } @@ -64179,6 +64787,7 @@ static int walIndexPage( */ static volatile WalCkptInfo *walCkptInfo(Wal *pWal){ assert( pWal->nWiData>0 && pWal->apWiData[0] ); + SEH_INJECT_FAULT; return (volatile WalCkptInfo*)&(pWal->apWiData[0][sizeof(WalIndexHdr)/2]); } @@ -64187,6 +64796,7 @@ static volatile WalCkptInfo *walCkptInfo(Wal *pWal){ */ static volatile WalIndexHdr *walIndexHdr(Wal *pWal){ assert( pWal->nWiData>0 && pWal->apWiData[0] ); + SEH_INJECT_FAULT; return (volatile WalIndexHdr*)pWal->apWiData[0]; } @@ -64376,7 +64986,7 @@ static int walDecodeFrame( return 0; } - /* A frame is only valid if the page number is creater than zero. + /* A frame is only valid if the page number is greater than zero. */ pgno = sqlite3Get4byte(&aFrame[0]); if( pgno==0 ){ @@ -64384,7 +64994,7 @@ static int walDecodeFrame( } /* A frame is only valid if a checksum of the WAL header, - ** all prior frams, the first 16 bytes of this frame-header, + ** all prior frames, the first 16 bytes of this frame-header, ** and the frame-data matches the checksum in the last 8 ** bytes of this frame-header. */ @@ -64444,12 +65054,18 @@ static int walLockShared(Wal *pWal, int lockIdx){ WALTRACE(("WAL%p: acquire SHARED-%s %s\n", pWal, walLockName(lockIdx), rc ? "failed" : "ok")); VVA_ONLY( pWal->lockError = (u8)(rc!=SQLITE_OK && (rc&0xFF)!=SQLITE_BUSY); ) +#ifdef SQLITE_USE_SEH + if( rc==SQLITE_OK ) pWal->lockMask |= (1 << lockIdx); +#endif return rc; } static void walUnlockShared(Wal *pWal, int lockIdx){ if( pWal->exclusiveMode ) return; (void)sqlite3OsShmLock(pWal->pDbFd, lockIdx, 1, SQLITE_SHM_UNLOCK | SQLITE_SHM_SHARED); +#ifdef SQLITE_USE_SEH + pWal->lockMask &= ~(1 << lockIdx); +#endif WALTRACE(("WAL%p: release SHARED-%s\n", pWal, walLockName(lockIdx))); } static int walLockExclusive(Wal *pWal, int lockIdx, int n){ @@ -64460,12 +65076,20 @@ static int walLockExclusive(Wal *pWal, int lockIdx, int n){ WALTRACE(("WAL%p: acquire EXCLUSIVE-%s cnt=%d %s\n", pWal, walLockName(lockIdx), n, rc ? "failed" : "ok")); VVA_ONLY( pWal->lockError = (u8)(rc!=SQLITE_OK && (rc&0xFF)!=SQLITE_BUSY); ) +#ifdef SQLITE_USE_SEH + if( rc==SQLITE_OK ){ + pWal->lockMask |= (((1<exclusiveMode ) return; (void)sqlite3OsShmLock(pWal->pDbFd, lockIdx, n, SQLITE_SHM_UNLOCK | SQLITE_SHM_EXCLUSIVE); +#ifdef SQLITE_USE_SEH + pWal->lockMask &= ~(((1<apWiData[0][WALINDEX_HDR_SIZE/sizeof(u32) + iFrame - 1]; } @@ -64816,6 +65441,7 @@ static int walIndexRecover(Wal *pWal){ /* Malloc a buffer to read frames into. */ szFrame = szPage + WAL_FRAME_HDRSIZE; aFrame = (u8 *)sqlite3_malloc64(szFrame + WALINDEX_PGSZ); + SEH_FREE_ON_ERROR(0, aFrame); if( !aFrame ){ rc = SQLITE_NOMEM_BKPT; goto recovery_error; @@ -64834,6 +65460,7 @@ static int walIndexRecover(Wal *pWal){ rc = walIndexPage(pWal, iPg, (volatile u32**)&aShare); assert( aShare!=0 || rc!=SQLITE_OK ); if( aShare==0 ) break; + SEH_SET_ON_ERROR(iPg, aShare); pWal->apWiData[iPg] = aPrivate; for(iFrame=iFirst; iFrame<=iLast; iFrame++){ @@ -64861,6 +65488,7 @@ static int walIndexRecover(Wal *pWal){ } } pWal->apWiData[iPg] = aShare; + SEH_SET_ON_ERROR(0,0); nHdr = (iPg==0 ? WALINDEX_HDR_SIZE : 0); nHdr32 = nHdr / sizeof(u32); #ifndef SQLITE_SAFER_WALINDEX_RECOVERY @@ -64891,9 +65519,11 @@ static int walIndexRecover(Wal *pWal){ } } #endif + SEH_INJECT_FAULT; if( iFrame<=iLast ) break; } + SEH_FREE_ON_ERROR(aFrame, 0); sqlite3_free(aFrame); } @@ -64921,6 +65551,7 @@ finished: }else{ pInfo->aReadMark[i] = READMARK_NOT_USED; } + SEH_INJECT_FAULT; walUnlockExclusive(pWal, WAL_READ_LOCK(i), 1); }else if( rc!=SQLITE_BUSY ){ goto recovery_error; @@ -65078,7 +65709,7 @@ SQLITE_PRIVATE int sqlite3WalOpen( } /* -** Change the size to which the WAL file is trucated on each reset. +** Change the size to which the WAL file is truncated on each reset. */ SQLITE_PRIVATE void sqlite3WalLimit(Wal *pWal, i64 iLimit){ if( pWal ) pWal->mxWalSize = iLimit; @@ -65304,23 +65935,16 @@ static int walIteratorInit(Wal *pWal, u32 nBackfill, WalIterator **pp){ nByte = sizeof(WalIterator) + (nSegment-1)*sizeof(struct WalSegment) + iLast*sizeof(ht_slot); - p = (WalIterator *)sqlite3_malloc64(nByte); + p = (WalIterator *)sqlite3_malloc64(nByte + + sizeof(ht_slot) * (iLast>HASHTABLE_NPAGE?HASHTABLE_NPAGE:iLast) + ); if( !p ){ return SQLITE_NOMEM_BKPT; } memset(p, 0, nByte); p->nSegment = nSegment; - - /* Allocate temporary space used by the merge-sort routine. This block - ** of memory will be freed before this function returns. - */ - aTmp = (ht_slot *)sqlite3_malloc64( - sizeof(ht_slot) * (iLast>HASHTABLE_NPAGE?HASHTABLE_NPAGE:iLast) - ); - if( !aTmp ){ - rc = SQLITE_NOMEM_BKPT; - } - + aTmp = (ht_slot*)&(((u8*)p)[nByte]); + SEH_FREE_ON_ERROR(0, p); for(i=walFramePage(nBackfill+1); rc==SQLITE_OK && iaSegment[i].aPgno = (u32 *)sLoc.aPgno; } } - sqlite3_free(aTmp); - if( rc!=SQLITE_OK ){ + SEH_FREE_ON_ERROR(p, 0); walIteratorFree(p); p = 0; } @@ -65576,13 +66199,13 @@ static int walCheckpoint( mxSafeFrame = pWal->hdr.mxFrame; mxPage = pWal->hdr.nPage; for(i=1; iaReadMark+i); + u32 y = AtomicLoad(pInfo->aReadMark+i); SEH_INJECT_FAULT; if( mxSafeFrame>y ){ assert( y<=pWal->hdr.mxFrame ); rc = walBusyLock(pWal, xBusy, pBusyArg, WAL_READ_LOCK(i), 1); if( rc==SQLITE_OK ){ u32 iMark = (i==1 ? mxSafeFrame : READMARK_NOT_USED); - AtomicStore(pInfo->aReadMark+i, iMark); + AtomicStore(pInfo->aReadMark+i, iMark); SEH_INJECT_FAULT; walUnlockExclusive(pWal, WAL_READ_LOCK(i), 1); }else if( rc==SQLITE_BUSY ){ mxSafeFrame = y; @@ -65603,8 +66226,7 @@ static int walCheckpoint( && (rc = walBusyLock(pWal,xBusy,pBusyArg,WAL_READ_LOCK(0),1))==SQLITE_OK ){ u32 nBackfill = pInfo->nBackfill; - - pInfo->nBackfillAttempted = mxSafeFrame; + pInfo->nBackfillAttempted = mxSafeFrame; SEH_INJECT_FAULT; /* Sync the WAL to disk */ rc = sqlite3OsSync(pWal->pWalFd, CKPT_SYNC_FLAGS(sync_flags)); @@ -65635,6 +66257,7 @@ static int walCheckpoint( while( rc==SQLITE_OK && 0==walIteratorNext(pIter, &iDbpage, &iFrame) ){ i64 iOffset; assert( walFramePgno(pWal, iFrame)==iDbpage ); + SEH_INJECT_FAULT; if( AtomicLoad(&db->u1.isInterrupted) ){ rc = db->mallocFailed ? SQLITE_NOMEM_BKPT : SQLITE_INTERRUPT; break; @@ -65664,7 +66287,7 @@ static int walCheckpoint( } } if( rc==SQLITE_OK ){ - AtomicStore(&pInfo->nBackfill, mxSafeFrame); + AtomicStore(&pInfo->nBackfill, mxSafeFrame); SEH_INJECT_FAULT; } } @@ -65686,6 +66309,7 @@ static int walCheckpoint( */ if( rc==SQLITE_OK && eMode!=SQLITE_CHECKPOINT_PASSIVE ){ assert( pWal->writeLock ); + SEH_INJECT_FAULT; if( pInfo->nBackfillhdr.mxFrame ){ rc = SQLITE_BUSY; }else if( eMode>=SQLITE_CHECKPOINT_RESTART ){ @@ -65717,6 +66341,7 @@ static int walCheckpoint( } walcheckpoint_out: + SEH_FREE_ON_ERROR(pIter, 0); walIteratorFree(pIter); return rc; } @@ -65739,6 +66364,93 @@ static void walLimitSize(Wal *pWal, i64 nMax){ } } +#ifdef SQLITE_USE_SEH +/* +** This is the "standard" exception handler used in a few places to handle +** an exception thrown by reading from the *-shm mapping after it has become +** invalid in SQLITE_USE_SEH builds. It is used as follows: +** +** SEH_TRY { ... } +** SEH_EXCEPT( rc = walHandleException(pWal); ) +** +** This function does three things: +** +** 1) Determines the locks that should be held, based on the contents of +** the Wal.readLock, Wal.writeLock and Wal.ckptLock variables. All other +** held locks are assumed to be transient locks that would have been +** released had the exception not been thrown and are dropped. +** +** 2) Frees the pointer at Wal.pFree, if any, using sqlite3_free(). +** +** 3) Set pWal->apWiData[pWal->iWiPg] to pWal->pWiValue if not NULL +** +** 4) Returns SQLITE_IOERR. +*/ +static int walHandleException(Wal *pWal){ + if( pWal->exclusiveMode==0 ){ + static const int S = 1; + static const int E = (1<lockMask & ~( + (pWal->readLock<0 ? 0 : (S << WAL_READ_LOCK(pWal->readLock))) + | (pWal->writeLock ? (E << WAL_WRITE_LOCK) : 0) + | (pWal->ckptLock ? (E << WAL_CKPT_LOCK) : 0) + ); + for(ii=0; iipFree); + pWal->pFree = 0; + if( pWal->pWiValue ){ + pWal->apWiData[pWal->iWiPg] = pWal->pWiValue; + pWal->pWiValue = 0; + } + return SQLITE_IOERR_IN_PAGE; +} + +/* +** Assert that the Wal.lockMask mask, which indicates the locks held +** by the connenction, is consistent with the Wal.readLock, Wal.writeLock +** and Wal.ckptLock variables. To be used as: +** +** assert( walAssertLockmask(pWal) ); +*/ +static int walAssertLockmask(Wal *pWal){ + if( pWal->exclusiveMode==0 ){ + static const int S = 1; + static const int E = (1<readLock<0 ? 0 : (S << WAL_READ_LOCK(pWal->readLock))) + | (pWal->writeLock ? (E << WAL_WRITE_LOCK) : 0) + | (pWal->ckptLock ? (E << WAL_CKPT_LOCK) : 0) +#ifdef SQLITE_ENABLE_SNAPSHOT + | (pWal->pSnapshot ? (pWal->lockMask & (1 << WAL_CKPT_LOCK)) : 0) +#endif + ); + assert( mExpect==pWal->lockMask ); + } + return 1; +} + +/* +** Return and zero the "system error" field set when an +** EXCEPTION_IN_PAGE_ERROR exception is caught. +*/ +SQLITE_PRIVATE int sqlite3WalSystemErrno(Wal *pWal){ + int iRet = 0; + if( pWal ){ + iRet = pWal->iSysErrno; + pWal->iSysErrno = 0; + } + return iRet; +} + +#else +# define walAssertLockmask(x) 1 +#endif /* ifdef SQLITE_USE_SEH */ + /* ** Close a connection to a log file. */ @@ -65753,6 +66465,8 @@ SQLITE_PRIVATE int sqlite3WalClose( if( pWal ){ int isDelete = 0; /* True to unlink wal and wal-index files */ + assert( walAssertLockmask(pWal) ); + /* If an EXCLUSIVE lock can be obtained on the database file (using the ** ordinary, rollback-mode locking methods, this guarantees that the ** connection associated with this log file is the only connection to @@ -65777,7 +66491,7 @@ SQLITE_PRIVATE int sqlite3WalClose( ); if( bPersist!=1 ){ /* Try to delete the WAL file if the checkpoint completed and - ** fsyned (rc==SQLITE_OK) and if we are not in persistent-wal + ** fsynced (rc==SQLITE_OK) and if we are not in persistent-wal ** mode (!bPersist) */ isDelete = 1; }else if( pWal->mxWalSize>=0 ){ @@ -65844,7 +66558,7 @@ static SQLITE_NO_TSAN int walIndexTryHdr(Wal *pWal, int *pChanged){ ** give false-positive warnings about these accesses because the tools do not ** account for the double-read and the memory barrier. The use of mutexes ** here would be problematic as the memory being accessed is potentially - ** shared among multiple processes and not all mutex implementions work + ** shared among multiple processes and not all mutex implementations work ** reliably in that environment. */ aHdr = walIndexHdr(pWal); @@ -66295,6 +67009,7 @@ static int walTryBeginRead(Wal *pWal, int *pChanged, int useWal, int cnt){ assert( pWal->nWiData>0 ); assert( pWal->apWiData[0]!=0 ); pInfo = walCkptInfo(pWal); + SEH_INJECT_FAULT; if( !useWal && AtomicLoad(&pInfo->nBackfill)==pWal->hdr.mxFrame #ifdef SQLITE_ENABLE_SNAPSHOT && (pWal->pSnapshot==0 || pWal->hdr.mxFrame==0) @@ -66344,7 +67059,7 @@ static int walTryBeginRead(Wal *pWal, int *pChanged, int useWal, int cnt){ } #endif for(i=1; iaReadMark+i); + u32 thisMark = AtomicLoad(pInfo->aReadMark+i); SEH_INJECT_FAULT; if( mxReadMark<=thisMark && thisMark<=mxFrame ){ assert( thisMark!=READMARK_NOT_USED ); mxReadMark = thisMark; @@ -66410,7 +67125,7 @@ static int walTryBeginRead(Wal *pWal, int *pChanged, int useWal, int cnt){ ** we can guarantee that the checkpointer that set nBackfill could not ** see any pages past pWal->hdr.mxFrame, this problem does not come up. */ - pWal->minFrame = AtomicLoad(&pInfo->nBackfill)+1; + pWal->minFrame = AtomicLoad(&pInfo->nBackfill)+1; SEH_INJECT_FAULT; walShmBarrier(pWal); if( AtomicLoad(pInfo->aReadMark+mxI)!=mxReadMark || memcmp((void *)walIndexHdr(pWal), &pWal->hdr, sizeof(WalIndexHdr)) @@ -66425,6 +67140,54 @@ static int walTryBeginRead(Wal *pWal, int *pChanged, int useWal, int cnt){ } #ifdef SQLITE_ENABLE_SNAPSHOT +/* +** This function does the work of sqlite3WalSnapshotRecover(). +*/ +static int walSnapshotRecover( + Wal *pWal, /* WAL handle */ + void *pBuf1, /* Temp buffer pWal->szPage bytes in size */ + void *pBuf2 /* Temp buffer pWal->szPage bytes in size */ +){ + int szPage = (int)pWal->szPage; + int rc; + i64 szDb; /* Size of db file in bytes */ + + rc = sqlite3OsFileSize(pWal->pDbFd, &szDb); + if( rc==SQLITE_OK ){ + volatile WalCkptInfo *pInfo = walCkptInfo(pWal); + u32 i = pInfo->nBackfillAttempted; + for(i=pInfo->nBackfillAttempted; i>AtomicLoad(&pInfo->nBackfill); i--){ + WalHashLoc sLoc; /* Hash table location */ + u32 pgno; /* Page number in db file */ + i64 iDbOff; /* Offset of db file entry */ + i64 iWalOff; /* Offset of wal file entry */ + + rc = walHashGet(pWal, walFramePage(i), &sLoc); + if( rc!=SQLITE_OK ) break; + assert( i - sLoc.iZero - 1 >=0 ); + pgno = sLoc.aPgno[i-sLoc.iZero-1]; + iDbOff = (i64)(pgno-1) * szPage; + + if( iDbOff+szPage<=szDb ){ + iWalOff = walFrameOffset(i, szPage) + WAL_FRAME_HDRSIZE; + rc = sqlite3OsRead(pWal->pWalFd, pBuf1, szPage, iWalOff); + + if( rc==SQLITE_OK ){ + rc = sqlite3OsRead(pWal->pDbFd, pBuf2, szPage, iDbOff); + } + + if( rc!=SQLITE_OK || 0==memcmp(pBuf1, pBuf2, szPage) ){ + break; + } + } + + pInfo->nBackfillAttempted = i-1; + } + } + + return rc; +} + /* ** Attempt to reduce the value of the WalCkptInfo.nBackfillAttempted ** variable so that older snapshots can be accessed. To do this, loop @@ -66450,50 +67213,21 @@ SQLITE_PRIVATE int sqlite3WalSnapshotRecover(Wal *pWal){ assert( pWal->readLock>=0 ); rc = walLockExclusive(pWal, WAL_CKPT_LOCK, 1); if( rc==SQLITE_OK ){ - volatile WalCkptInfo *pInfo = walCkptInfo(pWal); - int szPage = (int)pWal->szPage; - i64 szDb; /* Size of db file in bytes */ - - rc = sqlite3OsFileSize(pWal->pDbFd, &szDb); - if( rc==SQLITE_OK ){ - void *pBuf1 = sqlite3_malloc(szPage); - void *pBuf2 = sqlite3_malloc(szPage); - if( pBuf1==0 || pBuf2==0 ){ - rc = SQLITE_NOMEM; - }else{ - u32 i = pInfo->nBackfillAttempted; - for(i=pInfo->nBackfillAttempted; i>AtomicLoad(&pInfo->nBackfill); i--){ - WalHashLoc sLoc; /* Hash table location */ - u32 pgno; /* Page number in db file */ - i64 iDbOff; /* Offset of db file entry */ - i64 iWalOff; /* Offset of wal file entry */ - - rc = walHashGet(pWal, walFramePage(i), &sLoc); - if( rc!=SQLITE_OK ) break; - assert( i - sLoc.iZero - 1 >=0 ); - pgno = sLoc.aPgno[i-sLoc.iZero-1]; - iDbOff = (i64)(pgno-1) * szPage; - - if( iDbOff+szPage<=szDb ){ - iWalOff = walFrameOffset(i, szPage) + WAL_FRAME_HDRSIZE; - rc = sqlite3OsRead(pWal->pWalFd, pBuf1, szPage, iWalOff); - - if( rc==SQLITE_OK ){ - rc = sqlite3OsRead(pWal->pDbFd, pBuf2, szPage, iDbOff); - } - - if( rc!=SQLITE_OK || 0==memcmp(pBuf1, pBuf2, szPage) ){ - break; - } - } - - pInfo->nBackfillAttempted = i-1; - } + void *pBuf1 = sqlite3_malloc(pWal->szPage); + void *pBuf2 = sqlite3_malloc(pWal->szPage); + if( pBuf1==0 || pBuf2==0 ){ + rc = SQLITE_NOMEM; + }else{ + pWal->ckptLock = 1; + SEH_TRY { + rc = walSnapshotRecover(pWal, pBuf1, pBuf2); } - - sqlite3_free(pBuf1); - sqlite3_free(pBuf2); + SEH_EXCEPT( rc = SQLITE_IOERR_IN_PAGE; ) + pWal->ckptLock = 0; } + + sqlite3_free(pBuf1); + sqlite3_free(pBuf2); walUnlockExclusive(pWal, WAL_CKPT_LOCK, 1); } @@ -66502,28 +67236,20 @@ SQLITE_PRIVATE int sqlite3WalSnapshotRecover(Wal *pWal){ #endif /* SQLITE_ENABLE_SNAPSHOT */ /* -** Begin a read transaction on the database. -** -** This routine used to be called sqlite3OpenSnapshot() and with good reason: -** it takes a snapshot of the state of the WAL and wal-index for the current -** instant in time. The current thread will continue to use this snapshot. -** Other threads might append new content to the WAL and wal-index but -** that extra content is ignored by the current thread. -** -** If the database contents have changes since the previous read -** transaction, then *pChanged is set to 1 before returning. The -** Pager layer will use this to know that its cache is stale and -** needs to be flushed. +** This function does the work of sqlite3WalBeginReadTransaction() (see +** below). That function simply calls this one inside an SEH_TRY{...} block. */ -SQLITE_PRIVATE int sqlite3WalBeginReadTransaction(Wal *pWal, int *pChanged){ +static int walBeginReadTransaction(Wal *pWal, int *pChanged){ int rc; /* Return code */ int cnt = 0; /* Number of TryBeginRead attempts */ #ifdef SQLITE_ENABLE_SNAPSHOT + int ckptLock = 0; int bChanged = 0; WalIndexHdr *pSnapshot = pWal->pSnapshot; #endif assert( pWal->ckptLock==0 ); + assert( pWal->nSehTry>0 ); #ifdef SQLITE_ENABLE_SNAPSHOT if( pSnapshot ){ @@ -66546,7 +67272,7 @@ SQLITE_PRIVATE int sqlite3WalBeginReadTransaction(Wal *pWal, int *pChanged){ if( rc!=SQLITE_OK ){ return rc; } - pWal->ckptLock = 1; + ckptLock = 1; } #endif @@ -66610,15 +67336,37 @@ SQLITE_PRIVATE int sqlite3WalBeginReadTransaction(Wal *pWal, int *pChanged){ } /* Release the shared CKPT lock obtained above. */ - if( pWal->ckptLock ){ + if( ckptLock ){ assert( pSnapshot ); walUnlockShared(pWal, WAL_CKPT_LOCK); - pWal->ckptLock = 0; } #endif return rc; } +/* +** Begin a read transaction on the database. +** +** This routine used to be called sqlite3OpenSnapshot() and with good reason: +** it takes a snapshot of the state of the WAL and wal-index for the current +** instant in time. The current thread will continue to use this snapshot. +** Other threads might append new content to the WAL and wal-index but +** that extra content is ignored by the current thread. +** +** If the database contents have changes since the previous read +** transaction, then *pChanged is set to 1 before returning. The +** Pager layer will use this to know that its cache is stale and +** needs to be flushed. +*/ +SQLITE_PRIVATE int sqlite3WalBeginReadTransaction(Wal *pWal, int *pChanged){ + int rc; + SEH_TRY { + rc = walBeginReadTransaction(pWal, pChanged); + } + SEH_EXCEPT( rc = walHandleException(pWal); ) + return rc; +} + /* ** Finish with a read transaction. All this does is release the ** read-lock. @@ -66639,7 +67387,7 @@ SQLITE_PRIVATE void sqlite3WalEndReadTransaction(Wal *pWal){ ** Return SQLITE_OK if successful, or an error code if an error occurs. If an ** error does occur, the final value of *piRead is undefined. */ -SQLITE_PRIVATE int sqlite3WalFindFrame( +static int walFindFrame( Wal *pWal, /* WAL handle */ Pgno pgno, /* Database page number to read data for */ u32 *piRead /* OUT: Frame number (or zero) */ @@ -66702,6 +67450,7 @@ SQLITE_PRIVATE int sqlite3WalFindFrame( } nCollide = HASHTABLE_NSLOT; iKey = walHash(pgno); + SEH_INJECT_FAULT; while( (iH = AtomicLoad(&sLoc.aHash[iKey]))!=0 ){ u32 iFrame = iH + sLoc.iZero; if( iFrame<=iLast && iFrame>=pWal->minFrame && sLoc.aPgno[iH-1]==pgno ){ @@ -66738,6 +67487,30 @@ SQLITE_PRIVATE int sqlite3WalFindFrame( return SQLITE_OK; } +/* +** Search the wal file for page pgno. If found, set *piRead to the frame that +** contains the page. Otherwise, if pgno is not in the wal file, set *piRead +** to zero. +** +** Return SQLITE_OK if successful, or an error code if an error occurs. If an +** error does occur, the final value of *piRead is undefined. +** +** The difference between this function and walFindFrame() is that this +** function wraps walFindFrame() in an SEH_TRY{...} block. +*/ +SQLITE_PRIVATE int sqlite3WalFindFrame( + Wal *pWal, /* WAL handle */ + Pgno pgno, /* Database page number to read data for */ + u32 *piRead /* OUT: Frame number (or zero) */ +){ + int rc; + SEH_TRY { + rc = walFindFrame(pWal, pgno, piRead); + } + SEH_EXCEPT( rc = SQLITE_IOERR_IN_PAGE; ) + return rc; +} + /* ** Read the contents of frame iRead from the wal file into buffer pOut ** (which is nOut bytes in size). Return SQLITE_OK if successful, or an @@ -66819,12 +67592,17 @@ SQLITE_PRIVATE int sqlite3WalBeginWriteTransaction(Wal *pWal){ ** time the read transaction on this connection was started, then ** the write is disallowed. */ - if( memcmp(&pWal->hdr, (void *)walIndexHdr(pWal), sizeof(WalIndexHdr))!=0 ){ + SEH_TRY { + if( memcmp(&pWal->hdr, (void *)walIndexHdr(pWal), sizeof(WalIndexHdr))!=0 ){ + rc = SQLITE_BUSY_SNAPSHOT; + } + } + SEH_EXCEPT( rc = SQLITE_IOERR_IN_PAGE; ) + + if( rc!=SQLITE_OK ){ walUnlockExclusive(pWal, WAL_WRITE_LOCK, 1); pWal->writeLock = 0; - rc = SQLITE_BUSY_SNAPSHOT; } - return rc; } @@ -66860,30 +67638,33 @@ SQLITE_PRIVATE int sqlite3WalUndo(Wal *pWal, int (*xUndo)(void *, Pgno), void *p Pgno iMax = pWal->hdr.mxFrame; Pgno iFrame; - /* Restore the clients cache of the wal-index header to the state it - ** was in before the client began writing to the database. - */ - memcpy(&pWal->hdr, (void *)walIndexHdr(pWal), sizeof(WalIndexHdr)); - - for(iFrame=pWal->hdr.mxFrame+1; - ALWAYS(rc==SQLITE_OK) && iFrame<=iMax; - iFrame++ - ){ - /* This call cannot fail. Unless the page for which the page number - ** is passed as the second argument is (a) in the cache and - ** (b) has an outstanding reference, then xUndo is either a no-op - ** (if (a) is false) or simply expels the page from the cache (if (b) - ** is false). - ** - ** If the upper layer is doing a rollback, it is guaranteed that there - ** are no outstanding references to any page other than page 1. And - ** page 1 is never written to the log until the transaction is - ** committed. As a result, the call to xUndo may not fail. + SEH_TRY { + /* Restore the clients cache of the wal-index header to the state it + ** was in before the client began writing to the database. */ - assert( walFramePgno(pWal, iFrame)!=1 ); - rc = xUndo(pUndoCtx, walFramePgno(pWal, iFrame)); + memcpy(&pWal->hdr, (void *)walIndexHdr(pWal), sizeof(WalIndexHdr)); + + for(iFrame=pWal->hdr.mxFrame+1; + ALWAYS(rc==SQLITE_OK) && iFrame<=iMax; + iFrame++ + ){ + /* This call cannot fail. Unless the page for which the page number + ** is passed as the second argument is (a) in the cache and + ** (b) has an outstanding reference, then xUndo is either a no-op + ** (if (a) is false) or simply expels the page from the cache (if (b) + ** is false). + ** + ** If the upper layer is doing a rollback, it is guaranteed that there + ** are no outstanding references to any page other than page 1. And + ** page 1 is never written to the log until the transaction is + ** committed. As a result, the call to xUndo may not fail. + */ + assert( walFramePgno(pWal, iFrame)!=1 ); + rc = xUndo(pUndoCtx, walFramePgno(pWal, iFrame)); + } + if( iMax!=pWal->hdr.mxFrame ) walCleanupHash(pWal); } - if( iMax!=pWal->hdr.mxFrame ) walCleanupHash(pWal); + SEH_EXCEPT( rc = SQLITE_IOERR_IN_PAGE; ) } return rc; } @@ -66927,7 +67708,10 @@ SQLITE_PRIVATE int sqlite3WalSavepointUndo(Wal *pWal, u32 *aWalData){ pWal->hdr.mxFrame = aWalData[0]; pWal->hdr.aFrameCksum[0] = aWalData[1]; pWal->hdr.aFrameCksum[1] = aWalData[2]; - walCleanupHash(pWal); + SEH_TRY { + walCleanupHash(pWal); + } + SEH_EXCEPT( rc = SQLITE_IOERR_IN_PAGE; ) } return rc; @@ -67108,7 +67892,7 @@ static int walRewriteChecksums(Wal *pWal, u32 iLast){ ** Write a set of frames to the log. The caller must hold the write-lock ** on the log file (obtained using sqlite3WalBeginWriteTransaction()). */ -SQLITE_PRIVATE int sqlite3WalFrames( +static int walFrames( Wal *pWal, /* Wal handle to write to */ int szPage, /* Database page-size in bytes */ PgHdr *pList, /* List of dirty pages to write */ @@ -67219,7 +68003,7 @@ SQLITE_PRIVATE int sqlite3WalFrames( ** checksums must be recomputed when the transaction is committed. */ if( iFirst && (p->pDirty || isCommit==0) ){ u32 iWrite = 0; - VVA_ONLY(rc =) sqlite3WalFindFrame(pWal, p->pgno, &iWrite); + VVA_ONLY(rc =) walFindFrame(pWal, p->pgno, &iWrite); assert( rc==SQLITE_OK || iWrite==0 ); if( iWrite>=iFirst ){ i64 iOff = walFrameOffset(iWrite, szPage) + WAL_FRAME_HDRSIZE; @@ -67338,6 +68122,29 @@ SQLITE_PRIVATE int sqlite3WalFrames( return rc; } +/* +** Write a set of frames to the log. The caller must hold the write-lock +** on the log file (obtained using sqlite3WalBeginWriteTransaction()). +** +** The difference between this function and walFrames() is that this +** function wraps walFrames() in an SEH_TRY{...} block. +*/ +SQLITE_PRIVATE int sqlite3WalFrames( + Wal *pWal, /* Wal handle to write to */ + int szPage, /* Database page-size in bytes */ + PgHdr *pList, /* List of dirty pages to write */ + Pgno nTruncate, /* Database size after this commit */ + int isCommit, /* True if this is a commit */ + int sync_flags /* Flags to pass to OsSync() (or 0) */ +){ + int rc; + SEH_TRY { + rc = walFrames(pWal, szPage, pList, nTruncate, isCommit, sync_flags); + } + SEH_EXCEPT( rc = walHandleException(pWal); ) + return rc; +} + /* ** This routine is called to implement sqlite3_wal_checkpoint() and ** related interfaces. @@ -67417,30 +68224,33 @@ SQLITE_PRIVATE int sqlite3WalCheckpoint( /* Read the wal-index header. */ - if( rc==SQLITE_OK ){ - walDisableBlocking(pWal); - rc = walIndexReadHdr(pWal, &isChanged); - (void)walEnableBlocking(pWal); - if( isChanged && pWal->pDbFd->pMethods->iVersion>=3 ){ - sqlite3OsUnfetch(pWal->pDbFd, 0, 0); - } - } - - /* Copy data from the log to the database file. */ - if( rc==SQLITE_OK ){ - - if( pWal->hdr.mxFrame && walPagesize(pWal)!=nBuf ){ - rc = SQLITE_CORRUPT_BKPT; - }else{ - rc = walCheckpoint(pWal, db, eMode2, xBusy2, pBusyArg, sync_flags, zBuf); - } - - /* If no error occurred, set the output variables. */ - if( rc==SQLITE_OK || rc==SQLITE_BUSY ){ - if( pnLog ) *pnLog = (int)pWal->hdr.mxFrame; - if( pnCkpt ) *pnCkpt = (int)(walCkptInfo(pWal)->nBackfill); + SEH_TRY { + if( rc==SQLITE_OK ){ + walDisableBlocking(pWal); + rc = walIndexReadHdr(pWal, &isChanged); + (void)walEnableBlocking(pWal); + if( isChanged && pWal->pDbFd->pMethods->iVersion>=3 ){ + sqlite3OsUnfetch(pWal->pDbFd, 0, 0); + } + } + + /* Copy data from the log to the database file. */ + if( rc==SQLITE_OK ){ + if( pWal->hdr.mxFrame && walPagesize(pWal)!=nBuf ){ + rc = SQLITE_CORRUPT_BKPT; + }else{ + rc = walCheckpoint(pWal, db, eMode2, xBusy2, pBusyArg, sync_flags,zBuf); + } + + /* If no error occurred, set the output variables. */ + if( rc==SQLITE_OK || rc==SQLITE_BUSY ){ + if( pnLog ) *pnLog = (int)pWal->hdr.mxFrame; + SEH_INJECT_FAULT; + if( pnCkpt ) *pnCkpt = (int)(walCkptInfo(pWal)->nBackfill); + } } } + SEH_EXCEPT( rc = walHandleException(pWal); ) if( isChanged ){ /* If a new wal-index header was loaded before the checkpoint was @@ -67517,7 +68327,9 @@ SQLITE_PRIVATE int sqlite3WalExclusiveMode(Wal *pWal, int op){ ** locks are taken in this case). Nor should the pager attempt to ** upgrade to exclusive-mode following such an error. */ +#ifndef SQLITE_USE_SEH assert( pWal->readLock>=0 || pWal->lockError ); +#endif assert( pWal->readLock>=0 || (op<=0 && pWal->exclusiveMode==0) ); if( op==0 ){ @@ -67618,16 +68430,19 @@ SQLITE_API int sqlite3_snapshot_cmp(sqlite3_snapshot *p1, sqlite3_snapshot *p2){ */ SQLITE_PRIVATE int sqlite3WalSnapshotCheck(Wal *pWal, sqlite3_snapshot *pSnapshot){ int rc; - rc = walLockShared(pWal, WAL_CKPT_LOCK); - if( rc==SQLITE_OK ){ - WalIndexHdr *pNew = (WalIndexHdr*)pSnapshot; - if( memcmp(pNew->aSalt, pWal->hdr.aSalt, sizeof(pWal->hdr.aSalt)) - || pNew->mxFramenBackfillAttempted - ){ - rc = SQLITE_ERROR_SNAPSHOT; - walUnlockShared(pWal, WAL_CKPT_LOCK); + SEH_TRY { + rc = walLockShared(pWal, WAL_CKPT_LOCK); + if( rc==SQLITE_OK ){ + WalIndexHdr *pNew = (WalIndexHdr*)pSnapshot; + if( memcmp(pNew->aSalt, pWal->hdr.aSalt, sizeof(pWal->hdr.aSalt)) + || pNew->mxFramenBackfillAttempted + ){ + rc = SQLITE_ERROR_SNAPSHOT; + walUnlockShared(pWal, WAL_CKPT_LOCK); + } } } + SEH_EXCEPT( rc = walHandleException(pWal); ) return rc; } @@ -67866,7 +68681,7 @@ SQLITE_PRIVATE sqlite3_file *sqlite3WalFile(Wal *pWal){ ** 0x81 0x00 becomes 0x00000080 ** 0x82 0x00 becomes 0x00000100 ** 0x80 0x7f becomes 0x0000007f -** 0x8a 0x91 0xd1 0xac 0x78 becomes 0x12345678 +** 0x81 0x91 0xd1 0xac 0x78 becomes 0x12345678 ** 0x81 0x81 0x81 0x81 0x01 becomes 0x10204081 ** ** Variable length integers are used for rowids and to hold the number of @@ -67949,7 +68764,7 @@ typedef struct CellInfo CellInfo; ** page that has been loaded into memory. The information in this object ** is derived from the raw on-disk page content. ** -** As each database page is loaded into memory, the pager allocats an +** As each database page is loaded into memory, the pager allocates an ** instance of this object and zeros the first 8 bytes. (This is the ** "extra" information associated with each page of the pager.) ** @@ -68405,7 +69220,7 @@ struct IntegrityCk { /* ** get2byteAligned(), unlike get2byte(), requires that its argument point to a -** two-byte aligned address. get2bytea() is only used for accessing the +** two-byte aligned address. get2byteAligned() is only used for accessing the ** cell addresses in a btree header. */ #if SQLITE_BYTEORDER==4321 @@ -68582,7 +69397,7 @@ SQLITE_PRIVATE int sqlite3BtreeHoldsMutex(Btree *p){ ** ** There is a corresponding leave-all procedures. ** -** Enter the mutexes in accending order by BtShared pointer address +** Enter the mutexes in ascending order by BtShared pointer address ** to avoid the possibility of deadlock when two threads with ** two or more btrees in common both try to lock all their btrees ** at the same instant. @@ -68714,6 +69529,7 @@ SQLITE_PRIVATE void sqlite3BtreeLeaveCursor(BtCursor *pCur){ /************** End of btmutex.c *********************************************/ /************** Begin file btree.c *******************************************/ + /* ** 2004 April 6 ** @@ -70249,7 +71065,7 @@ static void ptrmapPutOvflPtr(MemPage *pPage, MemPage *pSrc, u8 *pCell,int *pRC){ pPage->xParseCell(pPage, pCell, &info); if( info.nLocalaDataEnd, pCell, pCell+info.nLocal) ){ + if( SQLITE_OVERFLOW(pSrc->aDataEnd, pCell, pCell+info.nLocal) ){ testcase( pSrc!=pPage ); *pRC = SQLITE_CORRUPT_BKPT; return; @@ -70350,7 +71166,7 @@ static int defragmentPage(MemPage *pPage, int nMaxFrag){ iCellStart = get2byte(&data[hdr+5]); if( nCell>0 ){ temp = sqlite3PagerTempSpace(pPage->pBt->pPager); - memcpy(&temp[iCellStart], &data[iCellStart], usableSize - iCellStart); + memcpy(temp, data, usableSize); src = temp; for(i=0; iiPage. -** -** The page is fetched as read-write unless pCur is not NULL and is -** a read-only cursor. -** -** If an error occurs, then *ppPage is undefined. It -** may remain unchanged, or it may be set to an invalid value. */ static int getAndInitPage( BtShared *pBt, /* The database file */ Pgno pgno, /* Number of the page to get */ MemPage **ppPage, /* Write the page pointer here */ - BtCursor *pCur, /* Cursor to receive the page, or NULL */ int bReadOnly /* True for a read-only page */ ){ int rc; DbPage *pDbPage; + MemPage *pPage; assert( sqlite3_mutex_held(pBt->mutex) ); - assert( pCur==0 || ppPage==&pCur->pPage ); - assert( pCur==0 || bReadOnly==pCur->curPagerFlags ); - assert( pCur==0 || pCur->iPage>0 ); if( pgno>btreePagecount(pBt) ){ - rc = SQLITE_CORRUPT_BKPT; - goto getAndInitPage_error1; + *ppPage = 0; + return SQLITE_CORRUPT_BKPT; } rc = sqlite3PagerGet(pBt->pPager, pgno, (DbPage**)&pDbPage, bReadOnly); if( rc ){ - goto getAndInitPage_error1; + *ppPage = 0; + return rc; } - *ppPage = (MemPage*)sqlite3PagerGetExtra(pDbPage); - if( (*ppPage)->isInit==0 ){ + pPage = (MemPage*)sqlite3PagerGetExtra(pDbPage); + if( pPage->isInit==0 ){ btreePageFromDbPage(pDbPage, pgno, pBt); - rc = btreeInitPage(*ppPage); + rc = btreeInitPage(pPage); if( rc!=SQLITE_OK ){ - goto getAndInitPage_error2; + releasePage(pPage); + *ppPage = 0; + return rc; } } - assert( (*ppPage)->pgno==pgno || CORRUPT_DB ); - assert( (*ppPage)->aData==sqlite3PagerGetData(pDbPage) ); - - /* If obtaining a child page for a cursor, we must verify that the page is - ** compatible with the root page. */ - if( pCur && ((*ppPage)->nCell<1 || (*ppPage)->intKey!=pCur->curIntKey) ){ - rc = SQLITE_CORRUPT_PGNO(pgno); - goto getAndInitPage_error2; - } + assert( pPage->pgno==pgno || CORRUPT_DB ); + assert( pPage->aData==sqlite3PagerGetData(pDbPage) ); + *ppPage = pPage; return SQLITE_OK; - -getAndInitPage_error2: - releasePage(*ppPage); -getAndInitPage_error1: - if( pCur ){ - pCur->iPage--; - pCur->pPage = pCur->apPage[pCur->iPage]; - } - testcase( pgno==0 ); - assert( pgno!=0 || rc!=SQLITE_OK ); - return rc; } /* @@ -71177,7 +71966,7 @@ static void pageReinit(DbPage *pData){ ** call to btreeInitPage() will likely return SQLITE_CORRUPT. ** But no harm is done by this. And it is very important that ** btreeInitPage() be called on every btree page so we make - ** the call for every page that comes in for re-initing. */ + ** the call for every page that comes in for re-initializing. */ btreeInitPage(pPage); } } @@ -71356,6 +72145,9 @@ SQLITE_PRIVATE int sqlite3BtreeOpen( assert( sizeof(u16)==2 ); assert( sizeof(Pgno)==4 ); + /* Suppress false-positive compiler warning from PVS-Studio */ + memset(&zDbHeader[16], 0, 8); + pBt = sqlite3MallocZero( sizeof(*pBt) ); if( pBt==0 ){ rc = SQLITE_NOMEM_BKPT; @@ -71572,7 +72364,7 @@ static SQLITE_NOINLINE int allocateTempSpace(BtShared *pBt){ ** can mean that fillInCell() only initializes the first 2 or 3 ** bytes of pTmpSpace, but that the first 4 bytes are copied from ** it into a database page. This is not actually a problem, but it - ** does cause a valgrind error when the 1 or 2 bytes of unitialized + ** does cause a valgrind error when the 1 or 2 bytes of uninitialized ** data is passed to system call write(). So to avoid this error, ** zero the first 4 bytes of temp space here. ** @@ -71807,7 +72599,7 @@ SQLITE_PRIVATE int sqlite3BtreeGetReserveNoMutex(Btree *p){ /* ** Return the number of bytes of space at the end of every page that -** are intentually left unused. This is the "reserved" space that is +** are intentionally left unused. This is the "reserved" space that is ** sometimes used by extensions. ** ** The value returned is the larger of the current reserve size and @@ -72054,7 +72846,6 @@ static int lockBtree(BtShared *pBt){ ){ goto page1_init_failed; } - pBt->btsFlags |= BTS_PAGESIZE_FIXED; assert( (pageSize & 7)==0 ); /* EVIDENCE-OF: R-59310-51205 The "reserved space" size in the 1-byte ** integer at offset 20 is the number of bytes of space at the end of @@ -72074,6 +72865,7 @@ static int lockBtree(BtShared *pBt){ releasePageOne(pPage1); pBt->usableSize = usableSize; pBt->pageSize = pageSize; + pBt->btsFlags |= BTS_PAGESIZE_FIXED; freeTempSpace(pBt); rc = sqlite3PagerSetPagesize(pBt->pPager, &pBt->pageSize, pageSize-usableSize); @@ -72093,6 +72885,7 @@ static int lockBtree(BtShared *pBt){ if( usableSize<480 ){ goto page1_init_failed; } + pBt->btsFlags |= BTS_PAGESIZE_FIXED; pBt->pageSize = pageSize; pBt->usableSize = usableSize; #ifndef SQLITE_OMIT_AUTOVACUUM @@ -72271,7 +73064,11 @@ SQLITE_PRIVATE int sqlite3BtreeNewDb(Btree *p){ ** when A already has a read lock, we encourage A to give up and let B ** proceed. */ -SQLITE_PRIVATE int sqlite3BtreeBeginTrans(Btree *p, int wrflag, int *pSchemaVersion){ +static SQLITE_NOINLINE int btreeBeginTrans( + Btree *p, /* The btree in which to start the transaction */ + int wrflag, /* True to start a write transaction */ + int *pSchemaVersion /* Put schema version number here, if not NULL */ +){ BtShared *pBt = p->pBt; Pager *pPager = pBt->pPager; int rc = SQLITE_OK; @@ -72443,6 +73240,28 @@ trans_begun: sqlite3BtreeLeave(p); return rc; } +SQLITE_PRIVATE int sqlite3BtreeBeginTrans(Btree *p, int wrflag, int *pSchemaVersion){ + BtShared *pBt; + if( p->sharable + || p->inTrans==TRANS_NONE + || (p->inTrans==TRANS_READ && wrflag!=0) + ){ + return btreeBeginTrans(p,wrflag,pSchemaVersion); + } + pBt = p->pBt; + if( pSchemaVersion ){ + *pSchemaVersion = get4byte(&pBt->pPage1->aData[40]); + } + if( wrflag ){ + /* This call makes sure that the pager has the correct number of + ** open savepoints. If the second parameter is greater than 0 and + ** the sub-journal is not already open, then it will be opened here. + */ + return sqlite3PagerOpenSavepoint(pBt->pPager, p->db->nSavepoint); + }else{ + return SQLITE_OK; + } +} #ifndef SQLITE_OMIT_AUTOVACUUM @@ -73538,7 +74357,6 @@ SQLITE_PRIVATE void sqlite3BtreeCursorUnpin(BtCursor *pCur){ pCur->curFlags &= ~BTCF_Pinned; } -#ifdef SQLITE_ENABLE_OFFSET_SQL_FUNC /* ** Return the offset into the database file for the start of the ** payload to which the cursor is pointing. @@ -73550,7 +74368,6 @@ SQLITE_PRIVATE i64 sqlite3BtreeOffset(BtCursor *pCur){ return (i64)pCur->pBt->pageSize*((i64)pCur->pPage->pgno - 1) + (i64)(pCur->info.pPayload - pCur->pPage->aData); } -#endif /* SQLITE_ENABLE_OFFSET_SQL_FUNC */ /* ** Return the number of bytes of payload for the entry that pCur is @@ -73576,7 +74393,7 @@ SQLITE_PRIVATE u32 sqlite3BtreePayloadSize(BtCursor *pCur){ ** routine always returns 2147483647 (which is the largest record ** that SQLite can handle) or more. But returning a smaller value might ** prevent large memory allocations when trying to interpret a -** corrupt datrabase. +** corrupt database. ** ** The current implementation merely returns the size of the underlying ** database file. @@ -74038,6 +74855,7 @@ SQLITE_PRIVATE const void *sqlite3BtreePayloadFetch(BtCursor *pCur, u32 *pAmt){ ** vice-versa). */ static int moveToChild(BtCursor *pCur, u32 newPgno){ + int rc; assert( cursorOwnsBtShared(pCur) ); assert( pCur->eState==CURSOR_VALID ); assert( pCur->iPageapPage[pCur->iPage] = pCur->pPage; pCur->ix = 0; pCur->iPage++; - return getAndInitPage(pCur->pBt, newPgno, &pCur->pPage, pCur, - pCur->curPagerFlags); + rc = getAndInitPage(pCur->pBt, newPgno, &pCur->pPage, pCur->curPagerFlags); + assert( pCur->pPage!=0 || rc!=SQLITE_OK ); + if( rc==SQLITE_OK + && (pCur->pPage->nCell<1 || pCur->pPage->intKey!=pCur->curIntKey) + ){ + releasePage(pCur->pPage); + rc = SQLITE_CORRUPT_PGNO(newPgno); + } + if( rc ){ + pCur->pPage = pCur->apPage[--pCur->iPage]; + } + return rc; } #ifdef SQLITE_DEBUG @@ -74159,7 +74987,7 @@ static int moveToRoot(BtCursor *pCur){ sqlite3BtreeClearCursor(pCur); } rc = getAndInitPage(pCur->pBt, pCur->pgnoRoot, &pCur->pPage, - 0, pCur->curPagerFlags); + pCur->curPagerFlags); if( rc!=SQLITE_OK ){ pCur->eState = CURSOR_INVALID; return rc; @@ -74271,7 +75099,7 @@ SQLITE_PRIVATE int sqlite3BtreeFirst(BtCursor *pCur, int *pRes){ *pRes = 0; rc = moveToLeftmost(pCur); }else if( rc==SQLITE_EMPTY ){ - assert( pCur->pgnoRoot==0 || pCur->pPage->nCell==0 ); + assert( pCur->pgnoRoot==0 || (pCur->pPage!=0 && pCur->pPage->nCell==0) ); *pRes = 1; rc = SQLITE_OK; } @@ -74376,7 +75204,7 @@ SQLITE_PRIVATE int sqlite3BtreeTableMoveto( /* If the requested key is one more than the previous key, then ** try to get there using sqlite3BtreeNext() rather than a full ** binary search. This is an optimization only. The correct answer - ** is still obtained without this case, only a little more slowely */ + ** is still obtained without this case, only a little more slowly. */ if( pCur->info.nKey+1==intKey ){ *pRes = 0; rc = sqlite3BtreeNext(pCur, 0); @@ -74772,10 +75600,36 @@ bypass_moveto_root: }else{ chldPg = get4byte(findCell(pPage, lwr)); } - pCur->ix = (u16)lwr; - rc = moveToChild(pCur, chldPg); - if( rc ) break; - } + + /* This block is similar to an in-lined version of: + ** + ** pCur->ix = (u16)lwr; + ** rc = moveToChild(pCur, chldPg); + ** if( rc ) break; + */ + pCur->info.nSize = 0; + pCur->curFlags &= ~(BTCF_ValidNKey|BTCF_ValidOvfl); + if( pCur->iPage>=(BTCURSOR_MAX_DEPTH-1) ){ + return SQLITE_CORRUPT_BKPT; + } + pCur->aiIdx[pCur->iPage] = (u16)lwr; + pCur->apPage[pCur->iPage] = pCur->pPage; + pCur->ix = 0; + pCur->iPage++; + rc = getAndInitPage(pCur->pBt, chldPg, &pCur->pPage, pCur->curPagerFlags); + if( rc==SQLITE_OK + && (pCur->pPage->nCell<1 || pCur->pPage->intKey!=pCur->curIntKey) + ){ + releasePage(pCur->pPage); + rc = SQLITE_CORRUPT_PGNO(chldPg); + } + if( rc ){ + pCur->pPage = pCur->apPage[--pCur->iPage]; + break; + } + /* + ***** End of in-lined moveToChild() call */ + } moveto_index_finish: pCur->info.nSize = 0; assert( (pCur->curFlags & BTCF_ValidOvfl)==0 ); @@ -75559,7 +76413,7 @@ static SQLITE_NOINLINE int clearCellOverflow( /* Call xParseCell to compute the size of a cell. If the cell contains ** overflow, then invoke cellClearOverflow to clear out that overflow. -** STore the result code (SQLITE_OK or some error code) in rc. +** Store the result code (SQLITE_OK or some error code) in rc. ** ** Implemented as macro to force inlining for performance. */ @@ -76175,7 +77029,7 @@ static int rebuildPage( if( NEVER(j>(u32)usableSize) ){ j = 0; } memcpy(&pTmp[j], &aData[j], usableSize - j); - for(k=0; pCArray->ixNx[k]<=i && ALWAYS(kixNx[k]<=i; k++){} pSrcEnd = pCArray->apEnd[k]; pData = pEnd; @@ -76238,7 +77092,7 @@ static int rebuildPage( ** Finally, argument pBegin points to the byte immediately following the ** end of the space required by this page for the cell-pointer area (for ** all cells - not just those inserted by the current call). If the content -** area must be extended to before this point in order to accomodate all +** area must be extended to before this point in order to accommodate all ** cells in apCell[], then the cells do not fit and non-zero is returned. */ static int pageInsertArray( @@ -76258,7 +77112,7 @@ static int pageInsertArray( u8 *pEnd; /* Maximum extent of cell data */ assert( CORRUPT_DB || pPg->hdrOffset==0 ); /* Never called on page 1 */ if( iEnd<=iFirst ) return 0; - for(k=0; pCArray->ixNx[k]<=i && ALWAYS(kixNx[k]<=i ; k++){} pEnd = pCArray->apEnd[k]; while( 1 /*Exit by break*/ ){ int sz, rc; @@ -76553,7 +77407,7 @@ static int balance_quick(MemPage *pParent, MemPage *pPage, u8 *pSpace){ ** with entries for the new page, and any pointer from the ** cell on the page to an overflow page. If either of these ** operations fails, the return code is set, but the contents - ** of the parent page are still manipulated by thh code below. + ** of the parent page are still manipulated by the code below. ** That is Ok, at this point the parent page is guaranteed to ** be marked as dirty. Returning an error code will cause a ** rollback, undoing any changes made to the parent page. @@ -76829,7 +77683,7 @@ static int balance_nonroot( pgno = get4byte(pRight); while( 1 ){ if( rc==SQLITE_OK ){ - rc = getAndInitPage(pBt, pgno, &apOld[i], 0, 0); + rc = getAndInitPage(pBt, pgno, &apOld[i], 0); } if( rc ){ memset(apOld, 0, (i+1)*sizeof(MemPage*)); @@ -77143,7 +77997,7 @@ static int balance_nonroot( } } - /* Sanity check: For a non-corrupt database file one of the follwing + /* Sanity check: For a non-corrupt database file one of the following ** must be true: ** (1) We found one or more cells (cntNew[0])>0), or ** (2) pPage is a virtual root page. A virtual root page is when @@ -77368,9 +78222,9 @@ static int balance_nonroot( iOvflSpace += sz; assert( sz<=pBt->maxLocal+23 ); assert( iOvflSpace <= (int)pBt->pageSize ); - for(k=0; b.ixNx[k]<=j && ALWAYS(k=0 && iPg=1 || i>=0 ); + assert( iPg=0 /* On the upwards pass, or... */ || cntOld[iPg-1]>=cntNew[iPg-1] /* Condition (1) is true */ @@ -77760,7 +78616,7 @@ static int btreeOverwriteContent( ){ int nData = pX->nData - iOffset; if( nData<=0 ){ - /* Overwritting with zeros */ + /* Overwriting with zeros */ int i; for(i=0; ipData to write */ @@ -78543,7 +79399,7 @@ static int btreeCreateTable(Btree *p, Pgno *piTable, int createTabFlags){ MemPage *pRoot; Pgno pgnoRoot; int rc; - int ptfFlags; /* Page-type flage for the root page of new table */ + int ptfFlags; /* Page-type flags for the root page of new table */ assert( sqlite3BtreeHoldsMutex(p) ); assert( pBt->inTransaction==TRANS_WRITE ); @@ -78712,7 +79568,7 @@ static int clearDatabasePage( if( pgno>btreePagecount(pBt) ){ return SQLITE_CORRUPT_BKPT; } - rc = getAndInitPage(pBt, pgno, &pPage, 0, 0); + rc = getAndInitPage(pBt, pgno, &pPage, 0); if( rc ) return rc; if( (pBt->openFlags & BTREE_SINGLE)==0 && sqlite3PagerPageRefcount(pPage->pDbPage) != (1 + (pgno==1)) @@ -79378,7 +80234,7 @@ static int checkTreePage( if( iPage==0 ) return 0; if( checkRef(pCheck, iPage) ) return 0; pCheck->zPfx = "Tree %u page %u: "; - pCheck->v0 = pCheck->v1 = iPage; + pCheck->v1 = iPage; if( (rc = btreeGetPage(pBt, iPage, &pPage, 0))!=0 ){ checkAppendMsg(pCheck, "unable to get the page. error code=%d", rc); @@ -79715,6 +80571,7 @@ SQLITE_PRIVATE int sqlite3BtreeIntegrityCheck( checkPtrmap(&sCheck, aRoot[i], PTRMAP_ROOTPAGE, 0); } #endif + sCheck.v0 = aRoot[i]; checkTreePage(&sCheck, aRoot[i], ¬Used, LARGEST_INT64); } pBt->db->flags = savedDbFlags; @@ -81141,6 +81998,40 @@ SQLITE_PRIVATE int sqlite3VdbeMemClearAndResize(Mem *pMem, int szNew){ return SQLITE_OK; } +/* +** If pMem is already a string, detect if it is a zero-terminated +** string, or make it into one if possible, and mark it as such. +** +** This is an optimization. Correct operation continues even if +** this routine is a no-op. +*/ +SQLITE_PRIVATE void sqlite3VdbeMemZeroTerminateIfAble(Mem *pMem){ + if( (pMem->flags & (MEM_Str|MEM_Term|MEM_Ephem|MEM_Static))!=MEM_Str ){ + /* pMem must be a string, and it cannot be an ephemeral or static string */ + return; + } + if( pMem->enc!=SQLITE_UTF8 ) return; + if( NEVER(pMem->z==0) ) return; + if( pMem->flags & MEM_Dyn ){ + if( pMem->xDel==sqlite3_free + && sqlite3_msize(pMem->z) >= (u64)(pMem->n+1) + ){ + pMem->z[pMem->n] = 0; + pMem->flags |= MEM_Term; + return; + } + if( pMem->xDel==(void(*)(void*))sqlite3RCStrUnref ){ + /* Blindly assume that all RCStr objects are zero-terminated */ + pMem->flags |= MEM_Term; + return; + } + }else if( pMem->szMalloc >= pMem->n+1 ){ + pMem->z[pMem->n] = 0; + pMem->flags |= MEM_Term; + return; + } +} + /* ** It is already known that pMem contains an unterminated string. ** Add the zero terminator. @@ -81402,36 +82293,6 @@ SQLITE_PRIVATE void sqlite3VdbeMemReleaseMalloc(Mem *p){ if( p->szMalloc ) vdbeMemClear(p); } -/* -** Convert a 64-bit IEEE double into a 64-bit signed integer. -** If the double is out of range of a 64-bit signed integer then -** return the closest available 64-bit signed integer. -*/ -static SQLITE_NOINLINE i64 doubleToInt64(double r){ -#ifdef SQLITE_OMIT_FLOATING_POINT - /* When floating-point is omitted, double and int64 are the same thing */ - return r; -#else - /* - ** Many compilers we encounter do not define constants for the - ** minimum and maximum 64-bit integers, or they define them - ** inconsistently. And many do not understand the "LL" notation. - ** So we define our own static constants here using nothing - ** larger than a 32-bit integer constant. - */ - static const i64 maxInt = LARGEST_INT64; - static const i64 minInt = SMALLEST_INT64; - - if( r<=(double)minInt ){ - return minInt; - }else if( r>=(double)maxInt ){ - return maxInt; - }else{ - return (i64)r; - } -#endif -} - /* ** Return some kind of integer value which is the best we can do ** at representing the value that *pMem describes as an integer. @@ -81458,7 +82319,7 @@ SQLITE_PRIVATE i64 sqlite3VdbeIntValue(const Mem *pMem){ testcase( flags & MEM_IntReal ); return pMem->u.i; }else if( flags & MEM_Real ){ - return doubleToInt64(pMem->u.r); + return sqlite3RealToI64(pMem->u.r); }else if( (flags & (MEM_Str|MEM_Blob))!=0 && pMem->z!=0 ){ return memIntValue(pMem); }else{ @@ -81520,7 +82381,7 @@ SQLITE_PRIVATE void sqlite3VdbeIntegerAffinity(Mem *pMem){ if( pMem->flags & MEM_IntReal ){ MemSetTypeFlag(pMem, MEM_Int); }else{ - i64 ix = doubleToInt64(pMem->u.r); + i64 ix = sqlite3RealToI64(pMem->u.r); /* Only mark the value as an integer if ** @@ -81588,8 +82449,8 @@ SQLITE_PRIVATE int sqlite3RealSameAsInt(double r1, sqlite3_int64 i){ ** from UBSAN. */ SQLITE_PRIVATE i64 sqlite3RealToI64(double r){ - if( r<=(double)SMALLEST_INT64 ) return SMALLEST_INT64; - if( r>=(double)LARGEST_INT64) return LARGEST_INT64; + if( r<-9223372036854774784.0 ) return SMALLEST_INT64; + if( r>+9223372036854774784.0 ) return LARGEST_INT64; return (i64)r; } @@ -81660,6 +82521,7 @@ SQLITE_PRIVATE int sqlite3VdbeMemCast(Mem *pMem, u8 aff, u8 encoding){ break; } default: { + int rc; assert( aff==SQLITE_AFF_TEXT ); assert( MEM_Str==(MEM_Blob>>3) ); pMem->flags |= (pMem->flags&MEM_Blob)>>3; @@ -81667,7 +82529,9 @@ SQLITE_PRIVATE int sqlite3VdbeMemCast(Mem *pMem, u8 aff, u8 encoding){ assert( pMem->flags & MEM_Str || pMem->db->mallocFailed ); pMem->flags &= ~(MEM_Int|MEM_Real|MEM_IntReal|MEM_Blob|MEM_Zero); if( encoding!=SQLITE_UTF8 ) pMem->n &= ~1; - return sqlite3VdbeChangeEncoding(pMem, encoding); + rc = sqlite3VdbeChangeEncoding(pMem, encoding); + if( rc ) return rc; + sqlite3VdbeMemZeroTerminateIfAble(pMem); } } return SQLITE_OK; @@ -82191,6 +83055,24 @@ SQLITE_PRIVATE const void *sqlite3ValueText(sqlite3_value* pVal, u8 enc){ return valueToText(pVal, enc); } +/* Return true if sqlit3_value object pVal is a string or blob value +** that uses the destructor specified in the second argument. +** +** TODO: Maybe someday promote this interface into a published API so +** that third-party extensions can get access to it? +*/ +SQLITE_PRIVATE int sqlite3ValueIsOfClass(const sqlite3_value *pVal, void(*xFree)(void*)){ + if( ALWAYS(pVal!=0) + && ALWAYS((pVal->flags & (MEM_Str|MEM_Blob))!=0) + && (pVal->flags & MEM_Dyn)!=0 + && pVal->xDel==xFree + ){ + return 1; + }else{ + return 0; + } +} + /* ** Create a new sqlite3_value object. */ @@ -82258,6 +83140,7 @@ static sqlite3_value *valueNew(sqlite3 *db, struct ValueNewStat4Ctx *p){ } pRec->nField = p->iVal+1; + sqlite3VdbeMemSetNull(&pRec->aMem[p->iVal]); return &pRec->aMem[p->iVal]; } #else @@ -83046,6 +83929,35 @@ static void test_addop_breakpoint(int pc, Op *pOp){ } #endif +/* +** Slow paths for sqlite3VdbeAddOp3() and sqlite3VdbeAddOp4Int() for the +** unusual case when we need to increase the size of the Vdbe.aOp[] array +** before adding the new opcode. +*/ +static SQLITE_NOINLINE int growOp3(Vdbe *p, int op, int p1, int p2, int p3){ + assert( p->nOpAlloc<=p->nOp ); + if( growOpArray(p, 1) ) return 1; + assert( p->nOpAlloc>p->nOp ); + return sqlite3VdbeAddOp3(p, op, p1, p2, p3); +} +static SQLITE_NOINLINE int addOp4IntSlow( + Vdbe *p, /* Add the opcode to this VM */ + int op, /* The new opcode */ + int p1, /* The P1 operand */ + int p2, /* The P2 operand */ + int p3, /* The P3 operand */ + int p4 /* The P4 operand as an integer */ +){ + int addr = sqlite3VdbeAddOp3(p, op, p1, p2, p3); + if( p->db->mallocFailed==0 ){ + VdbeOp *pOp = &p->aOp[addr]; + pOp->p4type = P4_INT32; + pOp->p4.i = p4; + } + return addr; +} + + /* ** Add a new instruction to the list of instructions current in the ** VDBE. Return the address of the new instruction. @@ -83056,17 +83968,16 @@ static void test_addop_breakpoint(int pc, Op *pOp){ ** ** op The opcode for this instruction ** -** p1, p2, p3 Operands -** -** Use the sqlite3VdbeResolveLabel() function to fix an address and -** the sqlite3VdbeChangeP4() function to change the value of the P4 -** operand. +** p1, p2, p3, p4 Operands */ -static SQLITE_NOINLINE int growOp3(Vdbe *p, int op, int p1, int p2, int p3){ - assert( p->nOpAlloc<=p->nOp ); - if( growOpArray(p, 1) ) return 1; - assert( p->nOpAlloc>p->nOp ); - return sqlite3VdbeAddOp3(p, op, p1, p2, p3); +SQLITE_PRIVATE int sqlite3VdbeAddOp0(Vdbe *p, int op){ + return sqlite3VdbeAddOp3(p, op, 0, 0, 0); +} +SQLITE_PRIVATE int sqlite3VdbeAddOp1(Vdbe *p, int op, int p1){ + return sqlite3VdbeAddOp3(p, op, p1, 0, 0); +} +SQLITE_PRIVATE int sqlite3VdbeAddOp2(Vdbe *p, int op, int p1, int p2){ + return sqlite3VdbeAddOp3(p, op, p1, p2, 0); } SQLITE_PRIVATE int sqlite3VdbeAddOp3(Vdbe *p, int op, int p1, int p2, int p3){ int i; @@ -83089,6 +84000,9 @@ SQLITE_PRIVATE int sqlite3VdbeAddOp3(Vdbe *p, int op, int p1, int p2, int p3){ pOp->p3 = p3; pOp->p4.p = 0; pOp->p4type = P4_NOTUSED; + + /* Replicate this logic in sqlite3VdbeAddOp4Int() + ** vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv */ #ifdef SQLITE_ENABLE_EXPLAIN_COMMENTS pOp->zComment = 0; #endif @@ -83105,16 +84019,59 @@ SQLITE_PRIVATE int sqlite3VdbeAddOp3(Vdbe *p, int op, int p1, int p2, int p3){ #ifdef SQLITE_VDBE_COVERAGE pOp->iSrcLine = 0; #endif + /* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ** Replicate in sqlite3VdbeAddOp4Int() */ + return i; } -SQLITE_PRIVATE int sqlite3VdbeAddOp0(Vdbe *p, int op){ - return sqlite3VdbeAddOp3(p, op, 0, 0, 0); -} -SQLITE_PRIVATE int sqlite3VdbeAddOp1(Vdbe *p, int op, int p1){ - return sqlite3VdbeAddOp3(p, op, p1, 0, 0); -} -SQLITE_PRIVATE int sqlite3VdbeAddOp2(Vdbe *p, int op, int p1, int p2){ - return sqlite3VdbeAddOp3(p, op, p1, p2, 0); +SQLITE_PRIVATE int sqlite3VdbeAddOp4Int( + Vdbe *p, /* Add the opcode to this VM */ + int op, /* The new opcode */ + int p1, /* The P1 operand */ + int p2, /* The P2 operand */ + int p3, /* The P3 operand */ + int p4 /* The P4 operand as an integer */ +){ + int i; + VdbeOp *pOp; + + i = p->nOp; + if( p->nOpAlloc<=i ){ + return addOp4IntSlow(p, op, p1, p2, p3, p4); + } + p->nOp++; + pOp = &p->aOp[i]; + assert( pOp!=0 ); + pOp->opcode = (u8)op; + pOp->p5 = 0; + pOp->p1 = p1; + pOp->p2 = p2; + pOp->p3 = p3; + pOp->p4.i = p4; + pOp->p4type = P4_INT32; + + /* Replicate this logic in sqlite3VdbeAddOp3() + ** vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv */ +#ifdef SQLITE_ENABLE_EXPLAIN_COMMENTS + pOp->zComment = 0; +#endif +#if defined(SQLITE_ENABLE_STMT_SCANSTATUS) || defined(VDBE_PROFILE) + pOp->nExec = 0; + pOp->nCycle = 0; +#endif +#ifdef SQLITE_DEBUG + if( p->db->flags & SQLITE_VdbeAddopTrace ){ + sqlite3VdbePrintOp(0, i, &p->aOp[i]); + test_addop_breakpoint(i, &p->aOp[i]); + } +#endif +#ifdef SQLITE_VDBE_COVERAGE + pOp->iSrcLine = 0; +#endif + /* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + ** Replicate in sqlite3VdbeAddOp3() */ + + return i; } /* Generate code for an unconditional jump to instruction iDest @@ -83292,7 +84249,7 @@ SQLITE_PRIVATE int sqlite3VdbeExplain(Parse *pParse, u8 bPush, const char *zFmt, if( bPush){ pParse->addrExplain = iThis; } - sqlite3VdbeScanStatus(v, iThis, 0, 0, 0, 0); + sqlite3VdbeScanStatus(v, iThis, -1, -1, 0, 0); } return addr; } @@ -83322,26 +84279,6 @@ SQLITE_PRIVATE void sqlite3VdbeAddParseSchemaOp(Vdbe *p, int iDb, char *zWhere, sqlite3MayAbort(p->pParse); } -/* -** Add an opcode that includes the p4 value as an integer. -*/ -SQLITE_PRIVATE int sqlite3VdbeAddOp4Int( - Vdbe *p, /* Add the opcode to this VM */ - int op, /* The new opcode */ - int p1, /* The P1 operand */ - int p2, /* The P2 operand */ - int p3, /* The P3 operand */ - int p4 /* The P4 operand as an integer */ -){ - int addr = sqlite3VdbeAddOp3(p, op, p1, p2, p3); - if( p->db->mallocFailed==0 ){ - VdbeOp *pOp = &p->aOp[addr]; - pOp->p4type = P4_INT32; - pOp->p4.i = p4; - } - return addr; -} - /* Insert the end of a co-routine */ SQLITE_PRIVATE void sqlite3VdbeEndCoroutine(Vdbe *v, int regYield){ @@ -83654,7 +84591,7 @@ static void resolveP2Values(Vdbe *p, int *pMaxFuncArgs){ p->bIsReader = 0; pOp = &p->aOp[p->nOp-1]; assert( p->aOp[0].opcode==OP_Init ); - while( 1 /* Loop termates when it reaches the OP_Init opcode */ ){ + while( 1 /* Loop terminates when it reaches the OP_Init opcode */ ){ /* Only JUMP opcodes and the short list of special opcodes in the switch ** below need to be considered. The mkopcodeh.tcl generator script groups ** all these opcodes together near the front of the opcode list. Skip @@ -84024,8 +84961,8 @@ SQLITE_PRIVATE void sqlite3VdbeScanStatusCounters( pScan = 0; } if( pScan ){ - pScan->addrLoop = addrLoop; - pScan->addrVisit = addrVisit; + if( addrLoop>0 ) pScan->addrLoop = addrLoop; + if( addrVisit>0 ) pScan->addrVisit = addrVisit; } } } @@ -84108,7 +85045,7 @@ SQLITE_PRIVATE void sqlite3VdbeJumpHereOrPopInst(Vdbe *p, int addr){ /* ** If the input FuncDef structure is ephemeral, then free it. If -** the FuncDef is not ephermal, then do nothing. +** the FuncDef is not ephemeral, then do nothing. */ static void freeEphemeralFunction(sqlite3 *db, FuncDef *pDef){ assert( db!=0 ); @@ -84272,7 +85209,6 @@ SQLITE_PRIVATE void sqlite3VdbeReleaseRegisters( } #endif /* SQLITE_DEBUG */ - /* ** Change the value of the P4 operand for a specific instruction. ** This routine is useful when a large program is loaded from a @@ -85193,7 +86129,7 @@ SQLITE_PRIVATE int sqlite3VdbeList( sqlite3VdbeMemSetInt64(pMem+1, pOp->p2); sqlite3VdbeMemSetInt64(pMem+2, pOp->p3); sqlite3VdbeMemSetStr(pMem+3, zP4, -1, SQLITE_UTF8, sqlite3_free); - p->nResColumn = 4; + assert( p->nResColumn==4 ); }else{ sqlite3VdbeMemSetInt64(pMem+0, i); sqlite3VdbeMemSetStr(pMem+1, (char*)sqlite3OpcodeName(pOp->opcode), @@ -85212,7 +86148,7 @@ SQLITE_PRIVATE int sqlite3VdbeList( sqlite3VdbeMemSetNull(pMem+7); #endif sqlite3VdbeMemSetStr(pMem+5, zP4, -1, SQLITE_UTF8, sqlite3_free); - p->nResColumn = 8; + assert( p->nResColumn==8 ); } p->pResultRow = pMem; if( db->mallocFailed ){ @@ -85426,26 +86362,9 @@ SQLITE_PRIVATE void sqlite3VdbeMakeReady( resolveP2Values(p, &nArg); p->usesStmtJournal = (u8)(pParse->isMultiWrite && pParse->mayAbort); if( pParse->explain ){ - static const char * const azColName[] = { - "addr", "opcode", "p1", "p2", "p3", "p4", "p5", "comment", - "id", "parent", "notused", "detail" - }; - int iFirst, mx, i; if( nMem<10 ) nMem = 10; p->explain = pParse->explain; - if( pParse->explain==2 ){ - sqlite3VdbeSetNumCols(p, 4); - iFirst = 8; - mx = 12; - }else{ - sqlite3VdbeSetNumCols(p, 8); - iFirst = 0; - mx = 8; - } - for(i=iFirst; inResColumn = 12 - 4*p->explain; } p->expired = 0; @@ -85497,7 +86416,23 @@ SQLITE_PRIVATE void sqlite3VdbeMakeReady( SQLITE_PRIVATE void sqlite3VdbeFreeCursor(Vdbe *p, VdbeCursor *pCx){ if( pCx ) sqlite3VdbeFreeCursorNN(p,pCx); } +static SQLITE_NOINLINE void freeCursorWithCache(Vdbe *p, VdbeCursor *pCx){ + VdbeTxtBlbCache *pCache = pCx->pCache; + assert( pCx->colCache ); + pCx->colCache = 0; + pCx->pCache = 0; + if( pCache->pCValue ){ + sqlite3RCStrUnref(pCache->pCValue); + pCache->pCValue = 0; + } + sqlite3DbFree(p->db, pCache); + sqlite3VdbeFreeCursorNN(p, pCx); +} SQLITE_PRIVATE void sqlite3VdbeFreeCursorNN(Vdbe *p, VdbeCursor *pCx){ + if( pCx->colCache ){ + freeCursorWithCache(p, pCx); + return; + } switch( pCx->eCurType ){ case CURTYPE_SORTER: { sqlite3VdbeSorterClose(p->db, pCx); @@ -85598,12 +86533,12 @@ SQLITE_PRIVATE void sqlite3VdbeSetNumCols(Vdbe *p, int nResColumn){ int n; sqlite3 *db = p->db; - if( p->nResColumn ){ - releaseMemArray(p->aColName, p->nResColumn*COLNAME_N); + if( p->nResAlloc ){ + releaseMemArray(p->aColName, p->nResAlloc*COLNAME_N); sqlite3DbFree(db, p->aColName); } n = nResColumn*COLNAME_N; - p->nResColumn = (u16)nResColumn; + p->nResColumn = p->nResAlloc = (u16)nResColumn; p->aColName = (Mem*)sqlite3DbMallocRawNN(db, sizeof(Mem)*n ); if( p->aColName==0 ) return; initMemArray(p->aColName, n, db, MEM_Null); @@ -85628,14 +86563,14 @@ SQLITE_PRIVATE int sqlite3VdbeSetColName( ){ int rc; Mem *pColName; - assert( idxnResColumn ); + assert( idxnResAlloc ); assert( vardb->mallocFailed ){ assert( !zName || xDel!=SQLITE_DYNAMIC ); return SQLITE_NOMEM_BKPT; } assert( p->aColName!=0 ); - pColName = &(p->aColName[idx+var*p->nResColumn]); + pColName = &(p->aColName[idx+var*p->nResAlloc]); rc = sqlite3VdbeMemSetStr(pColName, zName, -1, SQLITE_UTF8, xDel); assert( rc!=0 || !zName || (pColName->flags&MEM_Term)!=0 ); return rc; @@ -86148,6 +87083,7 @@ SQLITE_PRIVATE int sqlite3VdbeHalt(Vdbe *p){ sqlite3VdbeLeave(p); return SQLITE_BUSY; }else if( rc!=SQLITE_OK ){ + sqlite3SystemError(db, rc); p->rc = rc; sqlite3RollbackAll(db, SQLITE_OK); p->nChange = 0; @@ -86459,7 +87395,7 @@ static void sqlite3VdbeClearObject(sqlite3 *db, Vdbe *p){ assert( db!=0 ); assert( p->db==0 || p->db==db ); if( p->aColName ){ - releaseMemArray(p->aColName, p->nResColumn*COLNAME_N); + releaseMemArray(p->aColName, p->nResAlloc*COLNAME_N); sqlite3DbNNFreeNN(db, p->aColName); } for(pSub=p->pProgram; pSub; pSub=pNext){ @@ -87059,6 +87995,15 @@ static int vdbeRecordCompareDebug( if( d1+(u64)serial_type1+2>(u64)nKey1 && d1+(u64)sqlite3VdbeSerialTypeLen(serial_type1)>(u64)nKey1 ){ + if( serial_type1>=1 + && serial_type1<=7 + && d1+(u64)sqlite3VdbeSerialTypeLen(serial_type1)<=(u64)nKey1+8 + && CORRUPT_DB + ){ + return 1; /* corrupt record not detected by + ** sqlite3VdbeRecordCompareWithSkip(). Return true + ** to avoid firing the assert() */ + } break; } @@ -87502,7 +88447,7 @@ SQLITE_PRIVATE int sqlite3VdbeRecordCompareWithSkip( /* Serial types 12 or greater are strings and blobs (greater than ** numbers). Types 10 and 11 are currently "reserved for future ** use", so it doesn't really matter what the results of comparing - ** them to numberic values are. */ + ** them to numeric values are. */ rc = serial_type==10 ? -1 : +1; }else if( serial_type==0 ){ rc = -1; @@ -88759,6 +89704,7 @@ SQLITE_API void sqlite3_result_text64( (void)invokeValueDestructor(z, xDel, pCtx); }else{ setResultStrOrError(pCtx, z, (int)n, enc, xDel); + sqlite3VdbeMemZeroTerminateIfAble(pCtx->pOut); } } #ifndef SQLITE_OMIT_UTF16 @@ -89131,7 +90077,7 @@ SQLITE_API int sqlite3_vtab_nochange(sqlite3_context *p){ ** The destructor function for a ValueList object. This needs to be ** a separate function, unknowable to the application, to ensure that ** calls to sqlite3_vtab_in_first()/sqlite3_vtab_in_next() that are not -** preceeded by activation of IN processing via sqlite3_vtab_int() do not +** preceded by activation of IN processing via sqlite3_vtab_int() do not ** try to access a fake ValueList object inserted by a hostile extension. */ SQLITE_PRIVATE void sqlite3VdbeValueListFree(void *pToDelete){ @@ -89371,7 +90317,8 @@ SQLITE_API int sqlite3_aggregate_count(sqlite3_context *p){ */ SQLITE_API int sqlite3_column_count(sqlite3_stmt *pStmt){ Vdbe *pVm = (Vdbe *)pStmt; - return pVm ? pVm->nResColumn : 0; + if( pVm==0 ) return 0; + return pVm->nResColumn; } /* @@ -89460,7 +90407,7 @@ static Mem *columnMem(sqlite3_stmt *pStmt, int i){ ** sqlite3_column_real() ** sqlite3_column_bytes() ** sqlite3_column_bytes16() -** sqiite3_column_blob() +** sqlite3_column_blob() */ static void columnMallocFailure(sqlite3_stmt *pStmt) { @@ -89544,6 +90491,32 @@ SQLITE_API int sqlite3_column_type(sqlite3_stmt *pStmt, int i){ return iType; } +/* +** Column names appropriate for EXPLAIN or EXPLAIN QUERY PLAN. +*/ +static const char * const azExplainColNames8[] = { + "addr", "opcode", "p1", "p2", "p3", "p4", "p5", "comment", /* EXPLAIN */ + "id", "parent", "notused", "detail" /* EQP */ +}; +static const u16 azExplainColNames16data[] = { + /* 0 */ 'a', 'd', 'd', 'r', 0, + /* 5 */ 'o', 'p', 'c', 'o', 'd', 'e', 0, + /* 12 */ 'p', '1', 0, + /* 15 */ 'p', '2', 0, + /* 18 */ 'p', '3', 0, + /* 21 */ 'p', '4', 0, + /* 24 */ 'p', '5', 0, + /* 27 */ 'c', 'o', 'm', 'm', 'e', 'n', 't', 0, + /* 35 */ 'i', 'd', 0, + /* 38 */ 'p', 'a', 'r', 'e', 'n', 't', 0, + /* 45 */ 'n', 'o', 't', 'u', 's', 'e', 'd', 0, + /* 53 */ 'd', 'e', 't', 'a', 'i', 'l', 0 +}; +static const u8 iExplainColNames16[] = { + 0, 5, 12, 15, 18, 21, 24, 27, + 35, 38, 45, 53 +}; + /* ** Convert the N-th element of pStmt->pColName[] into a string using ** xFunc() then return that string. If N is out of range, return 0. @@ -89576,15 +90549,29 @@ static const void *columnName( return 0; } #endif + if( N<0 ) return 0; ret = 0; p = (Vdbe *)pStmt; db = p->db; assert( db!=0 ); - n = sqlite3_column_count(pStmt); - if( N=0 ){ + sqlite3_mutex_enter(db->mutex); + + if( p->explain ){ + if( useType>0 ) goto columnName_end; + n = p->explain==1 ? 8 : 4; + if( N>=n ) goto columnName_end; + if( useUtf16 ){ + int i = iExplainColNames16[N + 8*p->explain - 8]; + ret = (void*)&azExplainColNames16data[i]; + }else{ + ret = (void*)azExplainColNames8[N + 8*p->explain - 8]; + } + goto columnName_end; + } + n = p->nResColumn; + if( NmallocFailed; N += useType*n; - sqlite3_mutex_enter(db->mutex); #ifndef SQLITE_OMIT_UTF16 if( useUtf16 ){ ret = sqlite3_value_text16((sqlite3_value*)&p->aColName[N]); @@ -89601,8 +90588,9 @@ static const void *columnName( sqlite3OomClear(db); ret = 0; } - sqlite3_mutex_leave(db->mutex); } +columnName_end: + sqlite3_mutex_leave(db->mutex); return ret; } @@ -89695,7 +90683,7 @@ SQLITE_API const void *sqlite3_column_origin_name16(sqlite3_stmt *pStmt, int N){ /* ** Unbind the value bound to variable i in virtual machine p. This is the ** the same as binding a NULL value to the column. If the "i" parameter is -** out of range, then SQLITE_RANGE is returned. Othewise SQLITE_OK. +** out of range, then SQLITE_RANGE is returned. Otherwise SQLITE_OK. ** ** A successful evaluation of this routine acquires the mutex on p. ** the mutex is released if any kind of error occurs. @@ -90059,6 +91047,39 @@ SQLITE_API int sqlite3_stmt_isexplain(sqlite3_stmt *pStmt){ return pStmt ? ((Vdbe*)pStmt)->explain : 0; } +/* +** Set the explain mode for a statement. +*/ +SQLITE_API int sqlite3_stmt_explain(sqlite3_stmt *pStmt, int eMode){ + Vdbe *v = (Vdbe*)pStmt; + int rc; + sqlite3_mutex_enter(v->db->mutex); + if( ((int)v->explain)==eMode ){ + rc = SQLITE_OK; + }else if( eMode<0 || eMode>2 ){ + rc = SQLITE_ERROR; + }else if( (v->prepFlags & SQLITE_PREPARE_SAVESQL)==0 ){ + rc = SQLITE_ERROR; + }else if( v->eVdbeState!=VDBE_READY_STATE ){ + rc = SQLITE_BUSY; + }else if( v->nMem>=10 && (eMode!=2 || v->haveEqpOps) ){ + /* No reprepare necessary */ + v->explain = eMode; + rc = SQLITE_OK; + }else{ + v->explain = eMode; + rc = sqlite3Reprepare(v); + v->haveEqpOps = eMode==2; + } + if( v->explain ){ + v->nResColumn = 12 - 4*v->explain; + }else{ + v->nResColumn = v->nResAlloc; + } + sqlite3_mutex_leave(v->db->mutex); + return rc; +} + /* ** Return true if the prepared statement is in need of being reset. */ @@ -91298,6 +92319,9 @@ SQLITE_PRIVATE void sqlite3VdbeMemPrettyPrint(Mem *pMem, StrAccum *pStr){ sqlite3_str_appendchar(pStr, 1, (c>=0x20&&c<=0x7f) ? c : '.'); } sqlite3_str_appendf(pStr, "]%s", encnames[pMem->enc]); + if( f & MEM_Term ){ + sqlite3_str_appendf(pStr, "(0-term)"); + } } } #endif @@ -91434,6 +92458,93 @@ static u64 filterHash(const Mem *aMem, const Op *pOp){ return h; } + +/* +** For OP_Column, factor out the case where content is loaded from +** overflow pages, so that the code to implement this case is separate +** the common case where all content fits on the page. Factoring out +** the code reduces register pressure and helps the common case +** to run faster. +*/ +static SQLITE_NOINLINE int vdbeColumnFromOverflow( + VdbeCursor *pC, /* The BTree cursor from which we are reading */ + int iCol, /* The column to read */ + int t, /* The serial-type code for the column value */ + i64 iOffset, /* Offset to the start of the content value */ + u32 cacheStatus, /* Current Vdbe.cacheCtr value */ + u32 colCacheCtr, /* Current value of the column cache counter */ + Mem *pDest /* Store the value into this register. */ +){ + int rc; + sqlite3 *db = pDest->db; + int encoding = pDest->enc; + int len = sqlite3VdbeSerialTypeLen(t); + assert( pC->eCurType==CURTYPE_BTREE ); + if( len>db->aLimit[SQLITE_LIMIT_LENGTH] ) return SQLITE_TOOBIG; + if( len > 4000 && pC->pKeyInfo==0 ){ + /* Cache large column values that are on overflow pages using + ** an RCStr (reference counted string) so that if they are reloaded, + ** that do not have to be copied a second time. The overhead of + ** creating and managing the cache is such that this is only + ** profitable for larger TEXT and BLOB values. + ** + ** Only do this on table-btrees so that writes to index-btrees do not + ** need to clear the cache. This buys performance in the common case + ** in exchange for generality. + */ + VdbeTxtBlbCache *pCache; + char *pBuf; + if( pC->colCache==0 ){ + pC->pCache = sqlite3DbMallocZero(db, sizeof(VdbeTxtBlbCache) ); + if( pC->pCache==0 ) return SQLITE_NOMEM; + pC->colCache = 1; + } + pCache = pC->pCache; + if( pCache->pCValue==0 + || pCache->iCol!=iCol + || pCache->cacheStatus!=cacheStatus + || pCache->colCacheCtr!=colCacheCtr + || pCache->iOffset!=sqlite3BtreeOffset(pC->uc.pCursor) + ){ + if( pCache->pCValue ) sqlite3RCStrUnref(pCache->pCValue); + pBuf = pCache->pCValue = sqlite3RCStrNew( len+3 ); + if( pBuf==0 ) return SQLITE_NOMEM; + rc = sqlite3BtreePayload(pC->uc.pCursor, iOffset, len, pBuf); + if( rc ) return rc; + pBuf[len] = 0; + pBuf[len+1] = 0; + pBuf[len+2] = 0; + pCache->iCol = iCol; + pCache->cacheStatus = cacheStatus; + pCache->colCacheCtr = colCacheCtr; + pCache->iOffset = sqlite3BtreeOffset(pC->uc.pCursor); + }else{ + pBuf = pCache->pCValue; + } + assert( t>=12 ); + sqlite3RCStrRef(pBuf); + if( t&1 ){ + rc = sqlite3VdbeMemSetStr(pDest, pBuf, len, encoding, + (void(*)(void*))sqlite3RCStrUnref); + pDest->flags |= MEM_Term; + }else{ + rc = sqlite3VdbeMemSetStr(pDest, pBuf, len, 0, + (void(*)(void*))sqlite3RCStrUnref); + } + }else{ + rc = sqlite3VdbeMemFromBtree(pC->uc.pCursor, iOffset, len, pDest); + if( rc ) return rc; + sqlite3VdbeSerialGet((const u8*)pDest->z, t, pDest); + if( (t&1)!=0 && encoding==SQLITE_UTF8 ){ + pDest->z[len] = 0; + pDest->flags |= MEM_Term; + } + } + pDest->flags &= ~MEM_Ephem; + return rc; +} + + /* ** Return the symbolic name for the data type of a pMem */ @@ -91476,6 +92587,7 @@ SQLITE_PRIVATE int sqlite3VdbeExec( Mem *pIn2 = 0; /* 2nd input operand */ Mem *pIn3 = 0; /* 3rd input operand */ Mem *pOut = 0; /* Output operand */ + u32 colCacheCtr = 0; /* Column cache counter */ #if defined(SQLITE_ENABLE_STMT_SCANSTATUS) || defined(VDBE_PROFILE) u64 *pnCycle = 0; int bStmtScanStatus = IS_STMT_SCANSTATUS(db)!=0; @@ -91671,8 +92783,8 @@ SQLITE_PRIVATE int sqlite3VdbeExec( case OP_Goto: { /* jump */ #ifdef SQLITE_DEBUG - /* In debuggging mode, when the p5 flags is set on an OP_Goto, that - ** means we should really jump back to the preceeding OP_ReleaseReg + /* In debugging mode, when the p5 flags is set on an OP_Goto, that + ** means we should really jump back to the preceding OP_ReleaseReg ** instruction. */ if( pOp->p5 ){ assert( pOp->p2 < (int)(pOp - aOp) ); @@ -91880,7 +92992,7 @@ case OP_HaltIfNull: { /* in3 */ ** P5 is a value between 0 and 4, inclusive, that modifies the P4 string. ** ** 0: (no change) -** 1: NOT NULL contraint failed: P4 +** 1: NOT NULL constraint failed: P4 ** 2: UNIQUE constraint failed: P4 ** 3: CHECK constraint failed: P4 ** 4: FOREIGN KEY constraint failed: P4 @@ -93011,10 +94123,10 @@ case OP_Ge: { /* same as TK_GE, jump, in1, in3 */ ** opcodes are allowed to occur between this instruction and the previous ** OP_Lt or OP_Gt. ** -** If result of an OP_Eq comparison on the same two operands as the -** prior OP_Lt or OP_Gt would have been true, then jump to P2. -** If the result of an OP_Eq comparison on the two previous -** operands would have been false or NULL, then fall through. +** If the result of an OP_Eq comparison on the same two operands as +** the prior OP_Lt or OP_Gt would have been true, then jump to P2. If +** the result of an OP_Eq comparison on the two previous operands +** would have been false or NULL, then fall through. */ case OP_ElseEq: { /* same as TK_ESCAPE, jump */ @@ -93444,7 +94556,7 @@ case OP_IsType: { /* jump */ /* Opcode: ZeroOrNull P1 P2 P3 * * ** Synopsis: r[P2] = 0 OR NULL ** -** If all both registers P1 and P3 are NOT NULL, then store a zero in +** If both registers P1 and P3 are NOT NULL, then store a zero in ** register P2. If either registers P1 or P3 are NULL then put ** a NULL in register P2. */ @@ -93798,11 +94910,16 @@ op_column_restart: pDest->flags = aFlag[t&1]; } }else{ + u8 p5; pDest->enc = encoding; + assert( pDest->db==db ); /* This branch happens only when content is on overflow pages */ - if( ((pOp->p5 & (OPFLAG_LENGTHARG|OPFLAG_TYPEOFARG))!=0 - && ((t>=12 && (t&1)==0) || (pOp->p5 & OPFLAG_TYPEOFARG)!=0)) - || (len = sqlite3VdbeSerialTypeLen(t))==0 + if( ((p5 = (pOp->p5 & OPFLAG_BYTELENARG))!=0 + && (p5==OPFLAG_TYPEOFARG + || (t>=12 && ((t&1)==0 || p5==OPFLAG_BYTELENARG)) + ) + ) + || sqlite3VdbeSerialTypeLen(t)==0 ){ /* Content is irrelevant for ** 1. the typeof() function, @@ -93819,11 +94936,13 @@ op_column_restart: */ sqlite3VdbeSerialGet((u8*)sqlite3CtypeMap, t, pDest); }else{ - if( len>db->aLimit[SQLITE_LIMIT_LENGTH] ) goto too_big; - rc = sqlite3VdbeMemFromBtree(pC->uc.pCursor, aOffset[p2], len, pDest); - if( rc!=SQLITE_OK ) goto abort_due_to_error; - sqlite3VdbeSerialGet((const u8*)pDest->z, t, pDest); - pDest->flags &= ~MEM_Ephem; + rc = vdbeColumnFromOverflow(pC, p2, t, aOffset[p2], + p->cacheCtr, colCacheCtr, pDest); + if( rc ){ + if( rc==SQLITE_NOMEM ) goto no_mem; + if( rc==SQLITE_TOOBIG ) goto too_big; + goto abort_due_to_error; + } } } @@ -95107,7 +96226,7 @@ case OP_OpenEphemeral: { /* ncycle */ } pCx = p->apCsr[pOp->p1]; if( pCx && !pCx->noReuse && ALWAYS(pOp->p2<=pCx->nField) ){ - /* If the ephermeral table is already open and has no duplicates from + /* If the ephemeral table is already open and has no duplicates from ** OP_OpenDup, then erase all existing content so that the table is ** empty again, rather than creating a new table. */ assert( pCx->isEphemeral ); @@ -95598,7 +96717,7 @@ seek_not_found: ** row. If This.P5 is false (0) then a jump is made to SeekGE.P2. If ** This.P5 is true (non-zero) then a jump is made to This.P2. The P5==0 ** case occurs when there are no inequality constraints to the right of -** the IN constraing. The jump to SeekGE.P2 ends the loop. The P5!=0 case +** the IN constraint. The jump to SeekGE.P2 ends the loop. The P5!=0 case ** occurs when there are inequality constraints to the right of the IN ** operator. In that case, the This.P2 will point either directly to or ** to setup code prior to the OP_IdxGT or OP_IdxGE opcode that checks for @@ -95606,7 +96725,7 @@ seek_not_found: ** ** Possible outcomes from this opcode:
        ** -**
      1. If the cursor is initally not pointed to any valid row, then +**
      2. If the cursor is initially not pointed to any valid row, then ** fall through into the subsequent OP_SeekGE opcode. ** **
      3. If the cursor is left pointing to a row that is before the target @@ -95838,13 +96957,13 @@ case OP_IfNotOpen: { /* jump */ ** operands to OP_NotFound and OP_IdxGT. ** ** This opcode is an optimization attempt only. If this opcode always -** falls through, the correct answer is still obtained, but extra works +** falls through, the correct answer is still obtained, but extra work ** is performed. ** ** A value of N in the seekHit flag of cursor P1 means that there exists ** a key P3:N that will match some record in the index. We want to know ** if it is possible for a record P3:P4 to match some record in the -** index. If it is not possible, we can skips some work. So if seekHit +** index. If it is not possible, we can skip some work. So if seekHit ** is less than P4, attempt to find out if a match is possible by running ** OP_NotFound. ** @@ -96356,6 +97475,7 @@ case OP_Insert: { ); pC->deferredMoveto = 0; pC->cacheStatus = CACHE_STALE; + colCacheCtr++; /* Invoke the update-hook if required. */ if( rc ) goto abort_due_to_error; @@ -96409,10 +97529,10 @@ case OP_RowCell: { ** left in an undefined state. ** ** If the OPFLAG_AUXDELETE bit is set on P5, that indicates that this -** delete one of several associated with deleting a table row and all its -** associated index entries. Exactly one of those deletes is the "primary" -** delete. The others are all on OPFLAG_FORDELETE cursors or else are -** marked with the AUXDELETE flag. +** delete is one of several associated with deleting a table row and +** all its associated index entries. Exactly one of those deletes is +** the "primary" delete. The others are all on OPFLAG_FORDELETE +** cursors or else are marked with the AUXDELETE flag. ** ** If the OPFLAG_NCHANGE flag of P2 (NB: P2 not P5) is set, then the row ** change count is incremented (otherwise not). @@ -96516,6 +97636,7 @@ case OP_Delete: { rc = sqlite3BtreeDelete(pC->uc.pCursor, pOp->p5); pC->cacheStatus = CACHE_STALE; + colCacheCtr++; pC->seekResult = 0; if( rc ) goto abort_due_to_error; @@ -96583,13 +97704,13 @@ case OP_SorterCompare: { ** Write into register P2 the current sorter data for sorter cursor P1. ** Then clear the column header cache on cursor P3. ** -** This opcode is normally use to move a record out of the sorter and into +** This opcode is normally used to move a record out of the sorter and into ** a register that is the source for a pseudo-table cursor created using ** OpenPseudo. That pseudo-table cursor is the one that is identified by ** parameter P3. Clearing the P3 column cache as part of this opcode saves ** us from having to issue a separate NullRow instruction to clear that cache. */ -case OP_SorterData: { +case OP_SorterData: { /* ncycle */ VdbeCursor *pC; pOut = &aMem[pOp->p2]; @@ -96864,8 +97985,8 @@ case OP_IfSmaller: { /* jump */ ** regression tests can determine whether or not the optimizer is ** correctly optimizing out sorts. */ -case OP_SorterSort: /* jump */ -case OP_Sort: { /* jump */ +case OP_SorterSort: /* jump ncycle */ +case OP_Sort: { /* jump ncycle */ #ifdef SQLITE_TEST sqlite3_sort_count++; sqlite3_search_count--; @@ -97392,7 +98513,7 @@ case OP_IdxGE: { /* jump, ncycle */ ** file is given by P1. ** ** The table being destroyed is in the main database file if P3==0. If -** P3==1 then the table to be clear is in the auxiliary database file +** P3==1 then the table to be destroyed is in the auxiliary database file ** that is used to store tables create using CREATE TEMPORARY TABLE. ** ** If AUTOVACUUM is enabled then it is possible that another root page @@ -97452,8 +98573,8 @@ case OP_Destroy: { /* out2 */ ** in the database file is given by P1. But, unlike Destroy, do not ** remove the table or index from the database file. ** -** The table being clear is in the main database file if P2==0. If -** P2==1 then the table to be clear is in the auxiliary database file +** The table being cleared is in the main database file if P2==0. If +** P2==1 then the table to be cleared is in the auxiliary database file ** that is used to store tables create using CREATE TEMPORARY TABLE. ** ** If the P3 value is non-zero, then the row change count is incremented @@ -98279,7 +99400,7 @@ case OP_AggStep1: { /* If this function is inside of a trigger, the register array in aMem[] ** might change from one evaluation to the next. The next block of code ** checks to see if the register array has changed, and if so it - ** reinitializes the relavant parts of the sqlite3_context object */ + ** reinitializes the relevant parts of the sqlite3_context object */ if( pCtx->pMem != pMem ){ pCtx->pMem = pMem; for(i=pCtx->argc-1; i>=0; i--) pCtx->argv[i] = &aMem[pOp->p2+i]; @@ -99157,7 +100278,7 @@ case OP_MaxPgcnt: { /* out2 */ ** This opcode works exactly like OP_Function. The only difference is in ** its name. This opcode is used in places where the function must be ** purely non-deterministic. Some built-in date/time functions can be -** either determinitic of non-deterministic, depending on their arguments. +** either deterministic of non-deterministic, depending on their arguments. ** When those function are used in a non-deterministic way, they will check ** to see if they were called using OP_PureFunc instead of OP_Function, and ** if they were, they throw an error. @@ -99175,7 +100296,7 @@ case OP_Function: { /* group */ /* If this function is inside of a trigger, the register array in aMem[] ** might change from one evaluation to the next. The next block of code ** checks to see if the register array has changed, and if so it - ** reinitializes the relavant parts of the sqlite3_context object */ + ** reinitializes the relevant parts of the sqlite3_context object */ pOut = &aMem[pOp->p3]; if( pCtx->pOut != pOut ){ pCtx->pVdbe = p; @@ -99251,7 +100372,7 @@ case OP_FilterAdd: { printf("hash: %llu modulo %d -> %u\n", h, pIn1->n, (int)(h%pIn1->n)); } #endif - h %= pIn1->n; + h %= (pIn1->n*8); pIn1->z[h/8] |= 1<<(h&7); break; } @@ -99287,7 +100408,7 @@ case OP_Filter: { /* jump */ printf("hash: %llu modulo %d -> %u\n", h, pIn1->n, (int)(h%pIn1->n)); } #endif - h %= pIn1->n; + h %= (pIn1->n*8); if( (pIn1->z[h/8] & (1<<(h&7)))==0 ){ VdbeBranchTaken(1, 2); p->aCounter[SQLITE_STMTSTATUS_FILTER_HIT]++; @@ -99539,7 +100660,7 @@ default: { /* This is really OP_Noop, OP_Explain */ } if( opProperty==0xff ){ /* Never happens. This code exists to avoid a harmless linkage - ** warning aboud sqlite3VdbeRegisterDump() being defined but not + ** warning about sqlite3VdbeRegisterDump() being defined but not ** used. */ sqlite3VdbeRegisterDump(p); } @@ -100257,7 +101378,7 @@ SQLITE_API int sqlite3_blob_reopen(sqlite3_blob *pBlob, sqlite3_int64 iRow){ ** The threshold for the amount of main memory to use before flushing ** records to a PMA is roughly the same as the limit configured for the ** page-cache of the main database. Specifically, the threshold is set to -** the value returned by "PRAGMA main.page_size" multipled by +** the value returned by "PRAGMA main.page_size" multiplied by ** that returned by "PRAGMA main.cache_size", in bytes. ** ** If the sorter is running in single-threaded mode, then all PMAs generated @@ -100280,7 +101401,7 @@ SQLITE_API int sqlite3_blob_reopen(sqlite3_blob *pBlob, sqlite3_int64 iRow){ ** ** If there are fewer than SORTER_MAX_MERGE_COUNT PMAs in total and the ** sorter is running in single-threaded mode, then these PMAs are merged -** incrementally as keys are retreived from the sorter by the VDBE. The +** incrementally as keys are retrieved from the sorter by the VDBE. The ** MergeEngine object, described in further detail below, performs this ** merge. ** @@ -100443,7 +101564,7 @@ struct MergeEngine { ** ** Essentially, this structure contains all those fields of the VdbeSorter ** structure for which each thread requires a separate instance. For example, -** each thread requries its own UnpackedRecord object to unpack records in +** each thread requeries its own UnpackedRecord object to unpack records in ** as part of comparison operations. ** ** Before a background thread is launched, variable bDone is set to 0. Then, @@ -100515,7 +101636,7 @@ struct VdbeSorter { ** PMA, in sorted order. The next key to be read is cached in nKey/aKey. ** aKey might point into aMap or into aBuffer. If neither of those locations ** contain a contiguous representation of the key, then aAlloc is allocated -** and the key is copied into aAlloc and aKey is made to poitn to aAlloc. +** and the key is copied into aAlloc and aKey is made to point to aAlloc. ** ** pFd==0 at EOF. */ @@ -101886,7 +103007,7 @@ static int vdbeSorterFlushPMA(VdbeSorter *pSorter){ ** the background thread from a sub-tasks previous turn is still running, ** skip it. If the first (pSorter->nTask-1) sub-tasks are all still busy, ** fall back to using the final sub-task. The first (pSorter->nTask-1) - ** sub-tasks are prefered as they use background threads - the final + ** sub-tasks are preferred as they use background threads - the final ** sub-task uses the main thread. */ for(i=0; iiPrev + i + 1) % nWorker; @@ -102370,7 +103491,7 @@ static int vdbePmaReaderIncrMergeInit(PmaReader *pReadr, int eMode){ rc = vdbeMergeEngineInit(pTask, pIncr->pMerger, eMode); - /* Set up the required files for pIncr. A multi-theaded IncrMerge object + /* Set up the required files for pIncr. A multi-threaded IncrMerge object ** requires two temp files to itself, whereas a single-threaded object ** only requires a region of pTask->file2. */ if( rc==SQLITE_OK ){ @@ -103010,6 +104131,8 @@ static int bytecodevtabConnect( "p5 INT," "comment TEXT," "subprog TEXT," + "nexec INT," + "ncycle INT," "stmt HIDDEN" ");", @@ -103172,7 +104295,7 @@ static int bytecodevtabColumn( } } } - i += 10; + i += 20; } } switch( i ){ @@ -103222,16 +104345,31 @@ static int bytecodevtabColumn( } break; } - case 10: /* tables_used.type */ + +#ifdef SQLITE_ENABLE_STMT_SCANSTATUS + case 9: /* nexec */ + sqlite3_result_int(ctx, pOp->nExec); + break; + case 10: /* ncycle */ + sqlite3_result_int(ctx, pOp->nCycle); + break; +#else + case 9: /* nexec */ + case 10: /* ncycle */ + sqlite3_result_int(ctx, 0); + break; +#endif + + case 20: /* tables_used.type */ sqlite3_result_text(ctx, pCur->zType, -1, SQLITE_STATIC); break; - case 11: /* tables_used.schema */ + case 21: /* tables_used.schema */ sqlite3_result_text(ctx, pCur->zSchema, -1, SQLITE_STATIC); break; - case 12: /* tables_used.name */ + case 22: /* tables_used.name */ sqlite3_result_text(ctx, pCur->zName, -1, SQLITE_STATIC); break; - case 13: /* tables_used.wr */ + case 23: /* tables_used.wr */ sqlite3_result_int(ctx, pOp->opcode==OP_OpenWrite); break; } @@ -103305,7 +104443,7 @@ static int bytecodevtabBestIndex( int rc = SQLITE_CONSTRAINT; struct sqlite3_index_constraint *p; bytecodevtab *pVTab = (bytecodevtab*)tab; - int iBaseCol = pVTab->bTablesUsed ? 4 : 8; + int iBaseCol = pVTab->bTablesUsed ? 4 : 10; pIdxInfo->estimatedCost = (double)100; pIdxInfo->estimatedRows = 100; pIdxInfo->idxNum = 0; @@ -103876,7 +105014,7 @@ static int walkWindowList(Walker *pWalker, Window *pList, int bOneOnly){ ** The return value from this routine is WRC_Abort to abandon the tree walk ** and WRC_Continue to continue. */ -static SQLITE_NOINLINE int walkExpr(Walker *pWalker, Expr *pExpr){ +SQLITE_PRIVATE SQLITE_NOINLINE int sqlite3WalkExprNN(Walker *pWalker, Expr *pExpr){ int rc; testcase( ExprHasProperty(pExpr, EP_TokenOnly) ); testcase( ExprHasProperty(pExpr, EP_Reduced) ); @@ -103885,7 +105023,9 @@ static SQLITE_NOINLINE int walkExpr(Walker *pWalker, Expr *pExpr){ if( rc ) return rc & WRC_Abort; if( !ExprHasProperty(pExpr,(EP_TokenOnly|EP_Leaf)) ){ assert( pExpr->x.pList==0 || pExpr->pRight==0 ); - if( pExpr->pLeft && walkExpr(pWalker, pExpr->pLeft) ) return WRC_Abort; + if( pExpr->pLeft && sqlite3WalkExprNN(pWalker, pExpr->pLeft) ){ + return WRC_Abort; + } if( pExpr->pRight ){ assert( !ExprHasProperty(pExpr, EP_WinFunc) ); pExpr = pExpr->pRight; @@ -103909,7 +105049,7 @@ static SQLITE_NOINLINE int walkExpr(Walker *pWalker, Expr *pExpr){ return WRC_Continue; } SQLITE_PRIVATE int sqlite3WalkExpr(Walker *pWalker, Expr *pExpr){ - return pExpr ? walkExpr(pWalker,pExpr) : WRC_Continue; + return pExpr ? sqlite3WalkExprNN(pWalker,pExpr) : WRC_Continue; } /* @@ -104035,7 +105175,7 @@ SQLITE_PRIVATE int sqlite3WalkSelect(Walker *pWalker, Select *p){ } /* Increase the walkerDepth when entering a subquery, and -** descrease when leaving the subquery. +** decrease when leaving the subquery. */ SQLITE_PRIVATE int sqlite3WalkerDepthIncrease(Walker *pWalker, Select *pSelect){ UNUSED_PARAMETER(pSelect); @@ -105769,7 +106909,7 @@ static int resolveOrderGroupBy( } for(j=0; jpEList->nExpr; j++){ if( sqlite3ExprCompare(0, pE, pSelect->pEList->a[j].pExpr, -1)==0 ){ - /* Since this expresion is being changed into a reference + /* Since this expression is being changed into a reference ** to an identical expression in the result set, remove all Window ** objects belonging to the expression from the Select.pWin list. */ windowRemoveExprFromSelect(pSelect, pE); @@ -106092,7 +107232,8 @@ SQLITE_PRIVATE int sqlite3ResolveExprNames( return SQLITE_ERROR; } #endif - sqlite3WalkExpr(&w, pExpr); + assert( pExpr!=0 ); + sqlite3WalkExprNN(&w, pExpr); #if SQLITE_MAX_EXPR_DEPTH>0 w.pParse->nHeight -= pExpr->nHeight; #endif @@ -106134,7 +107275,7 @@ SQLITE_PRIVATE int sqlite3ResolveExprListNames( return WRC_Abort; } #endif - sqlite3WalkExpr(&w, pExpr); + sqlite3WalkExprNN(&w, pExpr); #if SQLITE_MAX_EXPR_DEPTH>0 w.pParse->nHeight -= pExpr->nHeight; #endif @@ -106156,7 +107297,7 @@ SQLITE_PRIVATE int sqlite3ResolveExprListNames( /* ** Resolve all names in all expressions of a SELECT and in all -** decendents of the SELECT, including compounds off of p->pPrior, +** descendants of the SELECT, including compounds off of p->pPrior, ** subqueries in expressions, and subqueries used as FROM clause ** terms. ** @@ -106306,6 +107447,7 @@ SQLITE_PRIVATE char sqlite3ExprAffinity(const Expr *pExpr){ if( op==TK_SELECT_COLUMN ){ assert( pExpr->pLeft!=0 && ExprUseXSelect(pExpr->pLeft) ); assert( pExpr->iColumn < pExpr->iTable ); + assert( pExpr->iColumn >= 0 ); assert( pExpr->iTable==pExpr->pLeft->x.pSelect->pEList->nExpr ); return sqlite3ExprAffinity( pExpr->pLeft->x.pSelect->pEList->a[pExpr->iColumn].pExpr @@ -106542,7 +107684,7 @@ SQLITE_PRIVATE CollSeq *sqlite3ExprCollSeq(Parse *pParse, const Expr *pExpr){ /* ** Return the collation sequence for the expression pExpr. If ** there is no defined collating sequence, return a pointer to the -** defautl collation sequence. +** default collation sequence. ** ** See also: sqlite3ExprCollSeq() ** @@ -106672,7 +107814,7 @@ SQLITE_PRIVATE CollSeq *sqlite3BinaryCompareCollSeq( return pColl; } -/* Expresssion p is a comparison operator. Return a collation sequence +/* Expression p is a comparison operator. Return a collation sequence ** appropriate for the comparison operator. ** ** This is normally just a wrapper around sqlite3BinaryCompareCollSeq(). @@ -107128,6 +108270,15 @@ SQLITE_PRIVATE void sqlite3ExprSetHeightAndFlags(Parse *pParse, Expr *p){ #define exprSetHeight(y) #endif /* SQLITE_MAX_EXPR_DEPTH>0 */ +/* +** Set the error offset for an Expr node, if possible. +*/ +SQLITE_PRIVATE void sqlite3ExprSetErrorOffset(Expr *pExpr, int iOfst){ + if( pExpr==0 ) return; + if( NEVER(ExprUseWJoin(pExpr)) ) return; + pExpr->w.iOfst = iOfst; +} + /* ** This routine is the core allocator for Expr nodes. ** @@ -107588,7 +108739,7 @@ SQLITE_PRIVATE void sqlite3ClearOnOrUsing(sqlite3 *db, OnOrUsing *p){ /* ** Arrange to cause pExpr to be deleted when the pParse is deleted. ** This is similar to sqlite3ExprDelete() except that the delete is -** deferred untilthe pParse is deleted. +** deferred until the pParse is deleted. ** ** The pExpr might be deleted immediately on an OOM error. ** @@ -108430,7 +109581,7 @@ SQLITE_PRIVATE int sqlite3ExprIdToTrueFalse(Expr *pExpr){ ** and 0 if it is FALSE. */ SQLITE_PRIVATE int sqlite3ExprTruthValue(const Expr *pExpr){ - pExpr = sqlite3ExprSkipCollate((Expr*)pExpr); + pExpr = sqlite3ExprSkipCollateAndLikely((Expr*)pExpr); assert( pExpr->op==TK_TRUEFALSE ); assert( !ExprHasProperty(pExpr, EP_IntValue) ); assert( sqlite3StrICmp(pExpr->u.zToken,"true")==0 @@ -109023,7 +110174,7 @@ static int sqlite3InRhsIsConstant(Expr *pIn){ ** IN_INDEX_INDEX_ASC - The cursor was opened on an ascending index. ** IN_INDEX_INDEX_DESC - The cursor was opened on a descending index. ** IN_INDEX_EPH - The cursor was opened on a specially created and -** populated epheremal table. +** populated ephemeral table. ** IN_INDEX_NOOP - No cursor was allocated. The IN operator must be ** implemented as a sequence of comparisons. ** @@ -109036,7 +110187,7 @@ static int sqlite3InRhsIsConstant(Expr *pIn){ ** an ephemeral table might need to be generated from the RHS and then ** pX->iTable made to point to the ephemeral table instead of an ** existing table. In this case, the creation and initialization of the -** ephmeral table might be put inside of a subroutine, the EP_Subrtn flag +** ephemeral table might be put inside of a subroutine, the EP_Subrtn flag ** will be set on pX and the pX->y.sub fields will be set to show where ** the subroutine is coded. ** @@ -109048,12 +110199,12 @@ static int sqlite3InRhsIsConstant(Expr *pIn){ ** ** When IN_INDEX_LOOP is used (and the b-tree will be used to iterate ** through the set members) then the b-tree must not contain duplicates. -** An epheremal table will be created unless the selected columns are guaranteed +** An ephemeral table will be created unless the selected columns are guaranteed ** to be unique - either because it is an INTEGER PRIMARY KEY or due to ** a UNIQUE constraint or index. ** ** When IN_INDEX_MEMBERSHIP is used (and the b-tree will be used -** for fast set membership tests) then an epheremal table must +** for fast set membership tests) then an ephemeral table must ** be used unless is a single INTEGER PRIMARY KEY column or an ** index can be found with the specified as its left-most. ** @@ -109386,7 +110537,7 @@ SQLITE_PRIVATE void sqlite3VectorErrorMsg(Parse *pParse, Expr *pExpr){ ** x IN (SELECT a FROM b) -- IN operator with subquery on the right ** ** The pExpr parameter is the IN operator. The cursor number for the -** constructed ephermeral table is returned. The first time the ephemeral +** constructed ephemeral table is returned. The first time the ephemeral ** table is computed, the cursor number is also stored in pExpr->iTable, ** however the cursor number returned might not be the same, as it might ** have been duplicated using OP_OpenDup. @@ -110201,10 +111352,13 @@ SQLITE_PRIVATE int sqlite3ExprCodeGetColumn( u8 p5 /* P5 value for OP_Column + FLAGS */ ){ assert( pParse->pVdbe!=0 ); + assert( (p5 & (OPFLAG_NOCHNG|OPFLAG_TYPEOFARG|OPFLAG_LENGTHARG))==p5 ); + assert( IsVirtual(pTab) || (p5 & OPFLAG_NOCHNG)==0 ); sqlite3ExprCodeGetColumnOfTable(pParse->pVdbe, pTab, iTable, iColumn, iReg); if( p5 ){ VdbeOp *pOp = sqlite3VdbeGetLastOp(pParse->pVdbe); if( pOp->opcode==OP_Column ) pOp->p5 = p5; + if( pOp->opcode==OP_VColumn ) pOp->p5 = (p5 & OPFLAG_NOCHNG); } return iReg; } @@ -110233,7 +111387,7 @@ static void exprToRegister(Expr *pExpr, int iReg){ /* ** Evaluate an expression (either a vector or a scalar expression) and store -** the result in continguous temporary registers. Return the index of +** the result in contiguous temporary registers. Return the index of ** the first register used to store the result. ** ** If the returned result register is a temporary scalar, then also write @@ -110273,7 +111427,7 @@ static int exprCodeVector(Parse *pParse, Expr *p, int *piFreeable){ */ static void setDoNotMergeFlagOnCopy(Vdbe *v){ if( sqlite3VdbeGetLastOp(v)->opcode==OP_Copy ){ - sqlite3VdbeChangeP5(v, 1); /* Tag trailing OP_Copy as not mergable */ + sqlite3VdbeChangeP5(v, 1); /* Tag trailing OP_Copy as not mergeable */ } } @@ -110363,13 +111517,13 @@ static int exprCodeInlineFunction( } case INLINEFUNC_implies_nonnull_row: { - /* REsult of sqlite3ExprImpliesNonNullRow() */ + /* Result of sqlite3ExprImpliesNonNullRow() */ Expr *pA1; assert( nFarg==2 ); pA1 = pFarg->a[1].pExpr; if( pA1->op==TK_COLUMN ){ sqlite3VdbeAddOp2(v, OP_Integer, - sqlite3ExprImpliesNonNullRow(pFarg->a[0].pExpr,pA1->iTable), + sqlite3ExprImpliesNonNullRow(pFarg->a[0].pExpr,pA1->iTable,1), target); }else{ sqlite3VdbeAddOp2(v, OP_Null, 0, target); @@ -110545,7 +111699,7 @@ expr_code_doover: if( ExprHasProperty(pExpr, EP_FixedCol) ){ /* This COLUMN expression is really a constant due to WHERE clause ** constraints, and that constant is coded by the pExpr->pLeft - ** expresssion. However, make sure the constant has the correct + ** expression. However, make sure the constant has the correct ** datatype by applying the Affinity of the table column to the ** constant. */ @@ -110871,7 +112025,7 @@ expr_code_doover: sqlite3ErrorMsg(pParse, "unknown function: %#T()", pExpr); break; } - if( pDef->funcFlags & SQLITE_FUNC_INLINE ){ + if( (pDef->funcFlags & SQLITE_FUNC_INLINE)!=0 && ALWAYS(pFarg!=0) ){ assert( (pDef->funcFlags & SQLITE_FUNC_UNSAFE)==0 ); assert( (pDef->funcFlags & SQLITE_FUNC_DIRECT)==0 ); return exprCodeInlineFunction(pParse, pFarg, @@ -110897,10 +112051,10 @@ expr_code_doover: r1 = sqlite3GetTempRange(pParse, nFarg); } - /* For length() and typeof() functions with a column argument, + /* For length() and typeof() and octet_length() functions, ** set the P5 parameter to the OP_Column opcode to OPFLAG_LENGTHARG - ** or OPFLAG_TYPEOFARG respectively, to avoid unnecessary data - ** loading. + ** or OPFLAG_TYPEOFARG or OPFLAG_BYTELENARG respectively, to avoid + ** unnecessary data loading. */ if( (pDef->funcFlags & (SQLITE_FUNC_LENGTH|SQLITE_FUNC_TYPEOF))!=0 ){ u8 exprOp; @@ -110910,14 +112064,16 @@ expr_code_doover: if( exprOp==TK_COLUMN || exprOp==TK_AGG_COLUMN ){ assert( SQLITE_FUNC_LENGTH==OPFLAG_LENGTHARG ); assert( SQLITE_FUNC_TYPEOF==OPFLAG_TYPEOFARG ); - testcase( pDef->funcFlags & OPFLAG_LENGTHARG ); - pFarg->a[0].pExpr->op2 = - pDef->funcFlags & (OPFLAG_LENGTHARG|OPFLAG_TYPEOFARG); + assert( SQLITE_FUNC_BYTELEN==OPFLAG_BYTELENARG ); + assert( (OPFLAG_LENGTHARG|OPFLAG_TYPEOFARG)==OPFLAG_BYTELENARG ); + testcase( (pDef->funcFlags & OPFLAG_BYTELENARG)==OPFLAG_LENGTHARG ); + testcase( (pDef->funcFlags & OPFLAG_BYTELENARG)==OPFLAG_TYPEOFARG ); + testcase( (pDef->funcFlags & OPFLAG_BYTELENARG)==OPFLAG_BYTELENARG); + pFarg->a[0].pExpr->op2 = pDef->funcFlags & OPFLAG_BYTELENARG; } } - sqlite3ExprCodeExprList(pParse, pFarg, r1, 0, - SQLITE_ECEL_DUP|SQLITE_ECEL_FACTOR); + sqlite3ExprCodeExprList(pParse, pFarg, r1, 0, SQLITE_ECEL_FACTOR); }else{ r1 = 0; } @@ -111274,7 +112430,7 @@ expr_code_doover: ** ** If regDest>=0 then the result is always stored in that register and the ** result is not reusable. If regDest<0 then this routine is free to -** store the value whereever it wants. The register where the expression +** store the value wherever it wants. The register where the expression ** is stored is returned. When regDest<0, two identical expressions might ** code to the same register, if they do not contain function calls and hence ** are factored out into the initialization section at the end of the @@ -112192,7 +113348,7 @@ static int exprImpliesNotNull( ** pE1: x!=123 pE2: x IS NOT NULL Result: true ** pE1: x!=?1 pE2: x IS NOT NULL Result: true ** pE1: x IS NULL pE2: x IS NOT NULL Result: false -** pE1: x IS ?2 pE2: x IS NOT NULL Reuslt: false +** pE1: x IS ?2 pE2: x IS NOT NULL Result: false ** ** When comparing TK_COLUMN nodes between pE1 and pE2, if pE2 has ** Expr.iTable<0 then assume a table number given by iTab. @@ -112229,11 +113385,29 @@ SQLITE_PRIVATE int sqlite3ExprImpliesExpr( return 0; } +/* This is a helper function to impliesNotNullRow(). In this routine, +** set pWalker->eCode to one only if *both* of the input expressions +** separately have the implies-not-null-row property. +*/ +static void bothImplyNotNullRow(Walker *pWalker, Expr *pE1, Expr *pE2){ + if( pWalker->eCode==0 ){ + sqlite3WalkExpr(pWalker, pE1); + if( pWalker->eCode ){ + pWalker->eCode = 0; + sqlite3WalkExpr(pWalker, pE2); + } + } +} + /* ** This is the Expr node callback for sqlite3ExprImpliesNonNullRow(). ** If the expression node requires that the table at pWalker->iCur ** have one or more non-NULL column, then set pWalker->eCode to 1 and abort. ** +** pWalker->mWFlags is non-zero if this inquiry is being undertaking on +** behalf of a RIGHT JOIN (or FULL JOIN). That makes a difference when +** evaluating terms in the ON clause of an inner join. +** ** This routine controls an optimization. False positives (setting ** pWalker->eCode to 1 when it should not be) are deadly, but false-negatives ** (never setting pWalker->eCode) is a harmless missed optimization. @@ -112242,28 +113416,33 @@ static int impliesNotNullRow(Walker *pWalker, Expr *pExpr){ testcase( pExpr->op==TK_AGG_COLUMN ); testcase( pExpr->op==TK_AGG_FUNCTION ); if( ExprHasProperty(pExpr, EP_OuterON) ) return WRC_Prune; + if( ExprHasProperty(pExpr, EP_InnerON) && pWalker->mWFlags ){ + /* If iCur is used in an inner-join ON clause to the left of a + ** RIGHT JOIN, that does *not* mean that the table must be non-null. + ** But it is difficult to check for that condition precisely. + ** To keep things simple, any use of iCur from any inner-join is + ** ignored while attempting to simplify a RIGHT JOIN. */ + return WRC_Prune; + } switch( pExpr->op ){ case TK_ISNOT: case TK_ISNULL: case TK_NOTNULL: case TK_IS: - case TK_OR: case TK_VECTOR: - case TK_CASE: - case TK_IN: case TK_FUNCTION: case TK_TRUTH: + case TK_CASE: testcase( pExpr->op==TK_ISNOT ); testcase( pExpr->op==TK_ISNULL ); testcase( pExpr->op==TK_NOTNULL ); testcase( pExpr->op==TK_IS ); - testcase( pExpr->op==TK_OR ); testcase( pExpr->op==TK_VECTOR ); - testcase( pExpr->op==TK_CASE ); - testcase( pExpr->op==TK_IN ); testcase( pExpr->op==TK_FUNCTION ); testcase( pExpr->op==TK_TRUTH ); + testcase( pExpr->op==TK_CASE ); return WRC_Prune; + case TK_COLUMN: if( pWalker->u.iCur==pExpr->iTable ){ pWalker->eCode = 1; @@ -112271,21 +113450,38 @@ static int impliesNotNullRow(Walker *pWalker, Expr *pExpr){ } return WRC_Prune; + case TK_OR: case TK_AND: - if( pWalker->eCode==0 ){ + /* Both sides of an AND or OR must separately imply non-null-row. + ** Consider these cases: + ** 1. NOT (x AND y) + ** 2. x OR y + ** If only one of x or y is non-null-row, then the overall expression + ** can be true if the other arm is false (case 1) or true (case 2). + */ + testcase( pExpr->op==TK_OR ); + testcase( pExpr->op==TK_AND ); + bothImplyNotNullRow(pWalker, pExpr->pLeft, pExpr->pRight); + return WRC_Prune; + + case TK_IN: + /* Beware of "x NOT IN ()" and "x NOT IN (SELECT 1 WHERE false)", + ** both of which can be true. But apart from these cases, if + ** the left-hand side of the IN is NULL then the IN itself will be + ** NULL. */ + if( ExprUseXList(pExpr) && ALWAYS(pExpr->x.pList->nExpr>0) ){ sqlite3WalkExpr(pWalker, pExpr->pLeft); - if( pWalker->eCode ){ - pWalker->eCode = 0; - sqlite3WalkExpr(pWalker, pExpr->pRight); - } } return WRC_Prune; case TK_BETWEEN: - if( sqlite3WalkExpr(pWalker, pExpr->pLeft)==WRC_Abort ){ - assert( pWalker->eCode ); - return WRC_Abort; - } + /* In "x NOT BETWEEN y AND z" either x must be non-null-row or else + ** both y and z must be non-null row */ + assert( ExprUseXList(pExpr) ); + assert( pExpr->x.pList->nExpr==2 ); + sqlite3WalkExpr(pWalker, pExpr->pLeft); + bothImplyNotNullRow(pWalker, pExpr->x.pList->a[0].pExpr, + pExpr->x.pList->a[1].pExpr); return WRC_Prune; /* Virtual tables are allowed to use constraints like x=NULL. So @@ -112347,7 +113543,7 @@ static int impliesNotNullRow(Walker *pWalker, Expr *pExpr){ ** be non-NULL, then the LEFT JOIN can be safely converted into an ** ordinary join. */ -SQLITE_PRIVATE int sqlite3ExprImpliesNonNullRow(Expr *p, int iTab){ +SQLITE_PRIVATE int sqlite3ExprImpliesNonNullRow(Expr *p, int iTab, int isRJ){ Walker w; p = sqlite3ExprSkipCollateAndLikely(p); if( p==0 ) return 0; @@ -112355,7 +113551,7 @@ SQLITE_PRIVATE int sqlite3ExprImpliesNonNullRow(Expr *p, int iTab){ p = p->pLeft; }else{ while( p->op==TK_AND ){ - if( sqlite3ExprImpliesNonNullRow(p->pLeft, iTab) ) return 1; + if( sqlite3ExprImpliesNonNullRow(p->pLeft, iTab, isRJ) ) return 1; p = p->pRight; } } @@ -112363,6 +113559,7 @@ SQLITE_PRIVATE int sqlite3ExprImpliesNonNullRow(Expr *p, int iTab){ w.xSelectCallback = 0; w.xSelectCallback2 = 0; w.eCode = 0; + w.mWFlags = isRJ!=0; w.u.iCur = iTab; sqlite3WalkExpr(&w, p); return w.eCode; @@ -112423,7 +113620,7 @@ SQLITE_PRIVATE int sqlite3ExprCoveredByIndex( } -/* Structure used to pass information throught the Walker in order to +/* Structure used to pass information throughout the Walker in order to ** implement sqlite3ReferencesSrcList(). */ struct RefSrcList { @@ -112639,7 +113836,7 @@ static int addAggInfoFunc(sqlite3 *db, AggInfo *pInfo){ ** Return the index in aCol[] of the entry that describes that column. ** ** If no prior entry is found, create a new one and return -1. The -** new column will have an idex of pAggInfo->nColumn-1. +** new column will have an index of pAggInfo->nColumn-1. */ static void findOrCreateAggInfoColumn( Parse *pParse, /* Parsing context */ @@ -112652,6 +113849,7 @@ static void findOrCreateAggInfoColumn( assert( pAggInfo->iFirstReg==0 ); pCol = pAggInfo->aCol; for(k=0; knColumn; k++, pCol++){ + if( pCol->pCExpr==pExpr ) return; if( pCol->iTable==pExpr->iTable && pCol->iColumn==pExpr->iColumn && pExpr->op!=TK_IF_NULL_ROW @@ -113532,7 +114730,7 @@ SQLITE_PRIVATE void sqlite3AlterBeginAddColumn(Parse *pParse, SrcList *pSrc){ pNew->u.tab.pDfltList = sqlite3ExprListDup(db, pTab->u.tab.pDfltList, 0); pNew->pSchema = db->aDb[iDb].pSchema; pNew->u.tab.addColOffset = pTab->u.tab.addColOffset; - pNew->nTabRef = 1; + assert( pNew->nTabRef==1 ); exit_begin_add_column: sqlite3SrcListDelete(db, pSrc); @@ -114037,7 +115235,7 @@ static RenameToken *renameColumnTokenNext(RenameCtx *pCtx){ } /* -** An error occured while parsing or otherwise processing a database +** An error occurred while parsing or otherwise processing a database ** object (either pParse->pNewTable, pNewIndex or pNewTrigger) as part of an ** ALTER TABLE RENAME COLUMN program. The error message emitted by the ** sub-routine is currently stored in pParse->zErrMsg. This function @@ -117143,14 +118341,15 @@ static int loadStatTbl( decodeIntArray((char*)sqlite3_column_text(pStmt,2),nCol,pSample->anLt,0,0); decodeIntArray((char*)sqlite3_column_text(pStmt,3),nCol,pSample->anDLt,0,0); - /* Take a copy of the sample. Add two 0x00 bytes the end of the buffer. + /* Take a copy of the sample. Add 8 extra 0x00 bytes the end of the buffer. ** This is in case the sample record is corrupted. In that case, the ** sqlite3VdbeRecordCompare() may read up to two varints past the ** end of the allocated buffer before it realizes it is dealing with - ** a corrupt record. Adding the two 0x00 bytes prevents this from causing + ** a corrupt record. Or it might try to read a large integer from the + ** buffer. In any case, eight 0x00 bytes prevents this from causing ** a buffer overread. */ pSample->n = sqlite3_column_bytes(pStmt, 4); - pSample->p = sqlite3DbMallocZero(db, pSample->n + 2); + pSample->p = sqlite3DbMallocZero(db, pSample->n + 8); if( pSample->p==0 ){ sqlite3_finalize(pStmt); return SQLITE_NOMEM_BKPT; @@ -118108,7 +119307,7 @@ SQLITE_PRIVATE int sqlite3AuthCheck( sqlite3 *db = pParse->db; int rc; - /* Don't do any authorization checks if the database is initialising + /* Don't do any authorization checks if the database is initializing ** or if the parser is being invoked from within sqlite3_declare_vtab. */ assert( !IN_RENAME_OBJECT || db->xAuth==0 ); @@ -118409,15 +119608,17 @@ SQLITE_PRIVATE void sqlite3FinishCoding(Parse *pParse){ pParse->nVtabLock = 0; #endif +#ifndef SQLITE_OMIT_SHARED_CACHE /* Once all the cookies have been verified and transactions opened, ** obtain the required table-locks. This is a no-op unless the ** shared-cache feature is enabled. */ - codeTableLocks(pParse); + if( pParse->nTableLock ) codeTableLocks(pParse); +#endif /* Initialize any AUTOINCREMENT data structures required. */ - sqlite3AutoincrementBegin(pParse); + if( pParse->pAinc ) sqlite3AutoincrementBegin(pParse); /* Code constant expressions that where factored out of inner loops. ** @@ -118930,7 +120131,7 @@ SQLITE_PRIVATE void sqlite3ColumnSetColl( } /* -** Return the collating squence name for a column +** Return the collating sequence name for a column */ SQLITE_PRIVATE const char *sqlite3ColumnColl(Column *pCol){ const char *z; @@ -119688,7 +120889,7 @@ SQLITE_PRIVATE void sqlite3AddColumn(Parse *pParse, Token sName, Token sType){ } if( !IN_RENAME_OBJECT ) sqlite3DequoteToken(&sName); - /* Because keywords GENERATE ALWAYS can be converted into indentifiers + /* Because keywords GENERATE ALWAYS can be converted into identifiers ** by the parser, we can sometimes end up with a typename that ends ** with "generated always". Check for this case and omit the surplus ** text. */ @@ -119909,7 +121110,7 @@ SQLITE_PRIVATE void sqlite3AddDefaultValue( Parse *pParse, /* Parsing context */ Expr *pExpr, /* The parsed expression of the default value */ const char *zStart, /* Start of the default value text */ - const char *zEnd /* First character past end of defaut value text */ + const char *zEnd /* First character past end of default value text */ ){ Table *p; Column *pCol; @@ -120257,7 +121458,7 @@ static int identLength(const char *z){ ** to the specified offset in the buffer and updates *pIdx to refer ** to the first byte after the last byte written before returning. ** -** If the string zSignedIdent consists entirely of alpha-numeric +** If the string zSignedIdent consists entirely of alphanumeric ** characters, does not begin with a digit and is not an SQL keyword, ** then it is copied to the output buffer exactly as it is. Otherwise, ** it is quoted using double-quotes. @@ -120409,7 +121610,7 @@ static void estimateIndexWidth(Index *pIdx){ for(i=0; inColumn; i++){ i16 x = pIdx->aiColumn[i]; assert( xpTable->nCol ); - wIndex += x<0 ? 1 : aCol[pIdx->aiColumn[i]].szEst; + wIndex += x<0 ? 1 : aCol[x].szEst; } pIdx->szIdxRow = sqlite3LogEst(wIndex*4); } @@ -122147,7 +123348,7 @@ SQLITE_PRIVATE void sqlite3CreateIndex( #ifndef SQLITE_OMIT_TEMPDB /* If the index name was unqualified, check if the table ** is a temp table. If so, set the database to 1. Do not do this - ** if initialising a database schema. + ** if initializing a database schema. */ if( !db->init.busy ){ pTab = sqlite3SrcListLookup(pParse, pTblName); @@ -123804,7 +125005,7 @@ SQLITE_PRIVATE void sqlite3CteDelete(sqlite3 *db, Cte *pCte){ /* ** This routine is invoked once per CTE by the parser while parsing a -** WITH clause. The CTE described by teh third argument is added to +** WITH clause. The CTE described by the third argument is added to ** the WITH clause of the second argument. If the second argument is ** NULL, then a new WITH argument is created. */ @@ -124446,8 +125647,9 @@ SQLITE_PRIVATE Table *sqlite3SrcListLookup(Parse *pParse, SrcList *pSrc){ Table *pTab; assert( pItem && pSrc->nSrc>=1 ); pTab = sqlite3LocateTableItem(pParse, 0, pItem); - sqlite3DeleteTable(pParse->db, pItem->pTab); + if( pItem->pTab ) sqlite3DeleteTable(pParse->db, pItem->pTab); pItem->pTab = pTab; + pItem->fg.notCte = 1; if( pTab ){ pTab->nTabRef++; if( pItem->fg.isIndexedBy && sqlite3IndexedByLookup(pParse, pItem) ){ @@ -124600,7 +125802,7 @@ SQLITE_PRIVATE Expr *sqlite3LimitWhere( sqlite3 *db = pParse->db; Expr *pLhs = NULL; /* LHS of IN(SELECT...) operator */ Expr *pInClause = NULL; /* WHERE rowid IN ( select ) */ - ExprList *pEList = NULL; /* Expression list contaning only pSelectRowid */ + ExprList *pEList = NULL; /* Expression list containing only pSelectRowid*/ SrcList *pSelectSrc = NULL; /* SELECT rowid FROM x ... (dup of pSrc) */ Select *pSelect = NULL; /* Complete SELECT tree */ Table *pTab; @@ -124638,14 +125840,20 @@ SQLITE_PRIVATE Expr *sqlite3LimitWhere( ); }else{ Index *pPk = sqlite3PrimaryKeyIndex(pTab); + assert( pPk!=0 ); + assert( pPk->nKeyCol>=1 ); if( pPk->nKeyCol==1 ){ - const char *zName = pTab->aCol[pPk->aiColumn[0]].zCnName; + const char *zName; + assert( pPk->aiColumn[0]>=0 && pPk->aiColumn[0]nCol ); + zName = pTab->aCol[pPk->aiColumn[0]].zCnName; pLhs = sqlite3Expr(db, TK_ID, zName); pEList = sqlite3ExprListAppend(pParse, 0, sqlite3Expr(db, TK_ID, zName)); }else{ int i; for(i=0; inKeyCol; i++){ - Expr *p = sqlite3Expr(db, TK_ID, pTab->aCol[pPk->aiColumn[i]].zCnName); + Expr *p; + assert( pPk->aiColumn[i]>=0 && pPk->aiColumn[i]nCol ); + p = sqlite3Expr(db, TK_ID, pTab->aCol[pPk->aiColumn[i]].zCnName); pEList = sqlite3ExprListAppend(pParse, pEList, p); } pLhs = sqlite3PExpr(pParse, TK_VECTOR, 0, 0); @@ -124674,7 +125882,7 @@ SQLITE_PRIVATE Expr *sqlite3LimitWhere( pOrderBy,0,pLimit ); - /* now generate the new WHERE rowid IN clause for the DELETE/UDPATE */ + /* now generate the new WHERE rowid IN clause for the DELETE/UPDATE */ pInClause = sqlite3PExpr(pParse, TK_IN, pLhs, 0); sqlite3PExprAddSelect(pParse, pInClause, pSelect); return pInClause; @@ -124903,7 +126111,7 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( if( HasRowid(pTab) ){ /* For a rowid table, initialize the RowSet to an empty set */ pPk = 0; - nPk = 1; + assert( nPk==1 ); iRowSet = ++pParse->nMem; sqlite3VdbeAddOp2(v, OP_Null, 0, iRowSet); }else{ @@ -124931,7 +126139,8 @@ SQLITE_PRIVATE void sqlite3DeleteFrom( if( pWInfo==0 ) goto delete_from_cleanup; eOnePass = sqlite3WhereOkOnePass(pWInfo, aiCurOnePass); assert( IsVirtual(pTab)==0 || eOnePass!=ONEPASS_MULTI ); - assert( IsVirtual(pTab) || bComplex || eOnePass!=ONEPASS_OFF ); + assert( IsVirtual(pTab) || bComplex || eOnePass!=ONEPASS_OFF + || OptimizationDisabled(db, SQLITE_OnePass) ); if( eOnePass!=ONEPASS_SINGLE ) sqlite3MultiWrite(pParse); if( sqlite3WhereUsesDeferredSeek(pWInfo) ){ sqlite3VdbeAddOp1(v, OP_FinishSeek, iTabCur); @@ -125268,9 +126477,11 @@ SQLITE_PRIVATE void sqlite3GenerateRowDelete( sqlite3FkActions(pParse, pTab, 0, iOld, 0, 0); /* Invoke AFTER DELETE trigger programs. */ - sqlite3CodeRowTrigger(pParse, pTrigger, - TK_DELETE, 0, TRIGGER_AFTER, pTab, iOld, onconf, iLabel - ); + if( pTrigger ){ + sqlite3CodeRowTrigger(pParse, pTrigger, + TK_DELETE, 0, TRIGGER_AFTER, pTab, iOld, onconf, iLabel + ); + } /* Jump here if the row had already been deleted before any BEFORE ** trigger programs were invoked. Or if a trigger program throws a @@ -125583,6 +126794,42 @@ static void lengthFunc( } } +/* +** Implementation of the octet_length() function +*/ +static void bytelengthFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + assert( argc==1 ); + UNUSED_PARAMETER(argc); + switch( sqlite3_value_type(argv[0]) ){ + case SQLITE_BLOB: { + sqlite3_result_int(context, sqlite3_value_bytes(argv[0])); + break; + } + case SQLITE_INTEGER: + case SQLITE_FLOAT: { + i64 m = sqlite3_context_db_handle(context)->enc<=SQLITE_UTF8 ? 1 : 2; + sqlite3_result_int64(context, sqlite3_value_bytes(argv[0])*m); + break; + } + case SQLITE_TEXT: { + if( sqlite3_value_encoding(argv[0])<=SQLITE_UTF8 ){ + sqlite3_result_int(context, sqlite3_value_bytes(argv[0])); + }else{ + sqlite3_result_int(context, sqlite3_value_bytes16(argv[0])); + } + break; + } + default: { + sqlite3_result_null(context); + break; + } + } +} + /* ** Implementation of the abs() function. ** @@ -125859,7 +127106,7 @@ static void roundFunc(sqlite3_context *context, int argc, sqlite3_value **argv){ }else if( n==0 ){ r = (double)((sqlite_int64)(r+(r<0?-0.5:+0.5))); }else{ - zBuf = sqlite3_mprintf("%.*f",n,r); + zBuf = sqlite3_mprintf("%!.*f",n,r); if( zBuf==0 ){ sqlite3_result_error_nomem(context); return; @@ -126059,7 +127306,7 @@ struct compareInfo { /* ** For LIKE and GLOB matching on EBCDIC machines, assume that every -** character is exactly one byte in size. Also, provde the Utf8Read() +** character is exactly one byte in size. Also, provide the Utf8Read() ** macro for fast reading of the next character in the common case where ** the next character is ASCII. */ @@ -126292,7 +127539,7 @@ SQLITE_API int sqlite3_like_count = 0; /* ** Implementation of the like() SQL function. This function implements -** the build-in LIKE operator. The first argument to the function is the +** the built-in LIKE operator. The first argument to the function is the ** pattern and the second argument is the string. So, the SQL statements: ** ** A LIKE B @@ -126625,6 +127872,7 @@ static void charFunc( *zOut++ = 0x80 + (u8)(c & 0x3F); } \ } + *zOut = 0; sqlite3_result_text64(context, (char*)z, zOut-z, sqlite3_free, SQLITE_UTF8); } @@ -126678,7 +127926,7 @@ static int strContainsChar(const u8 *zStr, int nStr, u32 ch){ ** decoded and returned as a blob. ** ** If there is only a single argument, then it must consist only of an -** even number of hexadeximal digits. Otherwise, return NULL. +** even number of hexadecimal digits. Otherwise, return NULL. ** ** Or, if there is a second argument, then any character that appears in ** the second argument is also allowed to appear between pairs of hexadecimal @@ -127068,13 +128316,68 @@ static void loadExt(sqlite3_context *context, int argc, sqlite3_value **argv){ */ typedef struct SumCtx SumCtx; struct SumCtx { - double rSum; /* Floating point sum */ - i64 iSum; /* Integer sum */ + double rSum; /* Running sum as as a double */ + double rErr; /* Error term for Kahan-Babushka-Neumaier summation */ + i64 iSum; /* Running sum as a signed integer */ i64 cnt; /* Number of elements summed */ - u8 overflow; /* True if integer overflow seen */ - u8 approx; /* True if non-integer value was input to the sum */ + u8 approx; /* True if any non-integer value was input to the sum */ + u8 ovrfl; /* Integer overflow seen */ }; +/* +** Do one step of the Kahan-Babushka-Neumaier summation. +** +** https://en.wikipedia.org/wiki/Kahan_summation_algorithm +** +** Variables are marked "volatile" to defeat c89 x86 floating point +** optimizations can mess up this algorithm. +*/ +static void kahanBabuskaNeumaierStep( + volatile SumCtx *pSum, + volatile double r +){ + volatile double s = pSum->rSum; + volatile double t = s + r; + if( fabs(s) > fabs(r) ){ + pSum->rErr += (s - t) + r; + }else{ + pSum->rErr += (r - t) + s; + } + pSum->rSum = t; +} + +/* +** Add a (possibly large) integer to the running sum. +*/ +static void kahanBabuskaNeumaierStepInt64(volatile SumCtx *pSum, i64 iVal){ + if( iVal<=-4503599627370496LL || iVal>=+4503599627370496LL ){ + i64 iBig, iSm; + iSm = iVal % 16384; + iBig = iVal - iSm; + kahanBabuskaNeumaierStep(pSum, iBig); + kahanBabuskaNeumaierStep(pSum, iSm); + }else{ + kahanBabuskaNeumaierStep(pSum, (double)iVal); + } +} + +/* +** Initialize the Kahan-Babaska-Neumaier sum from a 64-bit integer +*/ +static void kahanBabuskaNeumaierInit( + volatile SumCtx *p, + i64 iVal +){ + if( iVal<=-4503599627370496LL || iVal>=+4503599627370496LL ){ + i64 iSm = iVal % 16384; + p->rSum = (double)(iVal - iSm); + p->rErr = (double)iSm; + }else{ + p->rSum = (double)iVal; + p->rErr = 0.0; + } +} + /* ** Routines used to compute the sum, average, and total. ** @@ -127094,15 +128397,29 @@ static void sumStep(sqlite3_context *context, int argc, sqlite3_value **argv){ type = sqlite3_value_numeric_type(argv[0]); if( p && type!=SQLITE_NULL ){ p->cnt++; - if( type==SQLITE_INTEGER ){ - i64 v = sqlite3_value_int64(argv[0]); - p->rSum += v; - if( (p->approx|p->overflow)==0 && sqlite3AddInt64(&p->iSum, v) ){ - p->approx = p->overflow = 1; + if( p->approx==0 ){ + if( type!=SQLITE_INTEGER ){ + kahanBabuskaNeumaierInit(p, p->iSum); + p->approx = 1; + kahanBabuskaNeumaierStep(p, sqlite3_value_double(argv[0])); + }else{ + i64 x = p->iSum; + if( sqlite3AddInt64(&x, sqlite3_value_int64(argv[0]))==0 ){ + p->iSum = x; + }else{ + p->ovrfl = 1; + kahanBabuskaNeumaierInit(p, p->iSum); + p->approx = 1; + kahanBabuskaNeumaierStepInt64(p, sqlite3_value_int64(argv[0])); + } } }else{ - p->rSum += sqlite3_value_double(argv[0]); - p->approx = 1; + if( type==SQLITE_INTEGER ){ + kahanBabuskaNeumaierStepInt64(p, sqlite3_value_int64(argv[0])); + }else{ + p->ovrfl = 0; + kahanBabuskaNeumaierStep(p, sqlite3_value_double(argv[0])); + } } } } @@ -127119,13 +128436,18 @@ static void sumInverse(sqlite3_context *context, int argc, sqlite3_value**argv){ if( ALWAYS(p) && type!=SQLITE_NULL ){ assert( p->cnt>0 ); p->cnt--; - assert( type==SQLITE_INTEGER || p->approx ); - if( type==SQLITE_INTEGER && p->approx==0 ){ - i64 v = sqlite3_value_int64(argv[0]); - p->rSum -= v; - p->iSum -= v; + if( !p->approx ){ + p->iSum -= sqlite3_value_int64(argv[0]); + }else if( type==SQLITE_INTEGER ){ + i64 iVal = sqlite3_value_int64(argv[0]); + if( iVal!=SMALLEST_INT64 ){ + kahanBabuskaNeumaierStepInt64(p, -iVal); + }else{ + kahanBabuskaNeumaierStepInt64(p, LARGEST_INT64); + kahanBabuskaNeumaierStepInt64(p, 1); + } }else{ - p->rSum -= sqlite3_value_double(argv[0]); + kahanBabuskaNeumaierStep(p, -sqlite3_value_double(argv[0])); } } } @@ -127136,10 +128458,14 @@ static void sumFinalize(sqlite3_context *context){ SumCtx *p; p = sqlite3_aggregate_context(context, 0); if( p && p->cnt>0 ){ - if( p->overflow ){ - sqlite3_result_error(context,"integer overflow",-1); - }else if( p->approx ){ - sqlite3_result_double(context, p->rSum); + if( p->approx ){ + if( p->ovrfl ){ + sqlite3_result_error(context,"integer overflow",-1); + }else if( !sqlite3IsNaN(p->rErr) ){ + sqlite3_result_double(context, p->rSum+p->rErr); + }else{ + sqlite3_result_double(context, p->rSum); + } }else{ sqlite3_result_int64(context, p->iSum); } @@ -127149,14 +128475,29 @@ static void avgFinalize(sqlite3_context *context){ SumCtx *p; p = sqlite3_aggregate_context(context, 0); if( p && p->cnt>0 ){ - sqlite3_result_double(context, p->rSum/(double)p->cnt); + double r; + if( p->approx ){ + r = p->rSum; + if( !sqlite3IsNaN(p->rErr) ) r += p->rErr; + }else{ + r = (double)(p->iSum); + } + sqlite3_result_double(context, r/(double)p->cnt); } } static void totalFinalize(sqlite3_context *context){ SumCtx *p; + double r = 0.0; p = sqlite3_aggregate_context(context, 0); - /* (double)0 In case of SQLITE_OMIT_FLOATING_POINT... */ - sqlite3_result_double(context, p ? p->rSum : (double)0); + if( p ){ + if( p->approx ){ + r = p->rSum; + if( !sqlite3IsNaN(p->rErr) ) r += p->rErr; + }else{ + r = (double)(p->iSum); + } + } + sqlite3_result_double(context, r); } /* @@ -127378,7 +128719,7 @@ static void groupConcatInverse( if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; pGCC = (GroupConcatCtx*)sqlite3_aggregate_context(context, sizeof(*pGCC)); /* pGCC is always non-NULL since groupConcatStep() will have always - ** run frist to initialize it */ + ** run first to initialize it */ if( ALWAYS(pGCC) ){ int nVS; /* Must call sqlite3_value_text() to convert the argument into text prior @@ -127462,8 +128803,10 @@ SQLITE_PRIVATE void sqlite3RegisterPerConnectionBuiltinFunctions(sqlite3 *db){ ** sensitive. */ SQLITE_PRIVATE void sqlite3RegisterLikeFunctions(sqlite3 *db, int caseSensitive){ + FuncDef *pDef; struct compareInfo *pInfo; int flags; + int nArg; if( caseSensitive ){ pInfo = (struct compareInfo*)&likeInfoAlt; flags = SQLITE_FUNC_LIKE | SQLITE_FUNC_CASE; @@ -127471,10 +128814,13 @@ SQLITE_PRIVATE void sqlite3RegisterLikeFunctions(sqlite3 *db, int caseSensitive) pInfo = (struct compareInfo*)&likeInfoNorm; flags = SQLITE_FUNC_LIKE; } - sqlite3CreateFunc(db, "like", 2, SQLITE_UTF8, pInfo, likeFunc, 0, 0, 0, 0, 0); - sqlite3CreateFunc(db, "like", 3, SQLITE_UTF8, pInfo, likeFunc, 0, 0, 0, 0, 0); - sqlite3FindFunction(db, "like", 2, SQLITE_UTF8, 0)->funcFlags |= flags; - sqlite3FindFunction(db, "like", 3, SQLITE_UTF8, 0)->funcFlags |= flags; + for(nArg=2; nArg<=3; nArg++){ + sqlite3CreateFunc(db, "like", nArg, SQLITE_UTF8, pInfo, likeFunc, + 0, 0, 0, 0, 0); + pDef = sqlite3FindFunction(db, "like", nArg, SQLITE_UTF8, 0); + pDef->funcFlags |= flags; + pDef->funcFlags &= ~SQLITE_FUNC_UNSAFE; + } } /* @@ -127746,6 +129092,37 @@ static void signFunc( sqlite3_result_int(context, x<0.0 ? -1 : x>0.0 ? +1 : 0); } +#ifdef SQLITE_DEBUG +/* +** Implementation of fpdecode(x,y,z) function. +** +** x is a real number that is to be decoded. y is the precision. +** z is the maximum real precision. +*/ +static void fpdecodeFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + FpDecode s; + double x; + int y, z; + char zBuf[100]; + UNUSED_PARAMETER(argc); + assert( argc==3 ); + x = sqlite3_value_double(argv[0]); + y = sqlite3_value_int(argv[1]); + z = sqlite3_value_int(argv[2]); + sqlite3FpDecode(&s, x, y, z); + if( s.isSpecial==2 ){ + sqlite3_snprintf(sizeof(zBuf), zBuf, "NaN"); + }else{ + sqlite3_snprintf(sizeof(zBuf), zBuf, "%c%.*s/%d", s.sign, s.n, s.z, s.iDP); + } + sqlite3_result_text(context, zBuf, -1, SQLITE_TRANSIENT); +} +#endif /* SQLITE_DEBUG */ + /* ** All of the FuncDef structures in the aBuiltinFunc[] array above ** to the global function hash table. This occurs at start-time (as @@ -127810,12 +129187,16 @@ SQLITE_PRIVATE void sqlite3RegisterBuiltinFunctions(void){ FUNCTION2(typeof, 1, 0, 0, typeofFunc, SQLITE_FUNC_TYPEOF), FUNCTION2(subtype, 1, 0, 0, subtypeFunc, SQLITE_FUNC_TYPEOF), FUNCTION2(length, 1, 0, 0, lengthFunc, SQLITE_FUNC_LENGTH), + FUNCTION2(octet_length, 1, 0, 0, bytelengthFunc,SQLITE_FUNC_BYTELEN), FUNCTION(instr, 2, 0, 0, instrFunc ), FUNCTION(printf, -1, 0, 0, printfFunc ), FUNCTION(format, -1, 0, 0, printfFunc ), FUNCTION(unicode, 1, 0, 0, unicodeFunc ), FUNCTION(char, -1, 0, 0, charFunc ), FUNCTION(abs, 1, 0, 0, absFunc ), +#ifdef SQLITE_DEBUG + FUNCTION(fpdecode, 3, 0, 0, fpdecodeFunc ), +#endif #ifndef SQLITE_OMIT_FLOATING_POINT FUNCTION(round, 1, 0, 0, roundFunc ), FUNCTION(round, 2, 0, 0, roundFunc ), @@ -129386,9 +130767,8 @@ SQLITE_PRIVATE void sqlite3FkDelete(sqlite3 *db, Table *pTab){ if( pFKey->pPrevTo ){ pFKey->pPrevTo->pNextTo = pFKey->pNextTo; }else{ - void *p = (void *)pFKey->pNextTo; - const char *z = (p ? pFKey->pNextTo->zTo : pFKey->zTo); - sqlite3HashInsert(&pTab->pSchema->fkeyHash, z, p); + const char *z = (pFKey->pNextTo ? pFKey->pNextTo->zTo : pFKey->zTo); + sqlite3HashInsert(&pTab->pSchema->fkeyHash, z, pFKey->pNextTo); } if( pFKey->pNextTo ){ pFKey->pNextTo->pPrevTo = pFKey->pPrevTo; @@ -129451,8 +130831,10 @@ SQLITE_PRIVATE void sqlite3OpenTable( assert( pParse->pVdbe!=0 ); v = pParse->pVdbe; assert( opcode==OP_OpenWrite || opcode==OP_OpenRead ); - sqlite3TableLock(pParse, iDb, pTab->tnum, - (opcode==OP_OpenWrite)?1:0, pTab->zName); + if( !pParse->db->noSharedCache ){ + sqlite3TableLock(pParse, iDb, pTab->tnum, + (opcode==OP_OpenWrite)?1:0, pTab->zName); + } if( HasRowid(pTab) ){ sqlite3VdbeAddOp4Int(v, opcode, iCur, pTab->tnum, iDb, pTab->nNVCol); VdbeComment((v, "%s", pTab->zName)); @@ -129581,7 +130963,7 @@ SQLITE_PRIVATE char *sqlite3TableAffinityStr(sqlite3 *db, const Table *pTab){ ** For STRICT tables: ** ------------------ ** -** Generate an appropropriate OP_TypeCheck opcode that will verify the +** Generate an appropriate OP_TypeCheck opcode that will verify the ** datatypes against the column definitions in pTab. If iReg==0, that ** means an OP_MakeRecord opcode has already been generated and should be ** the last opcode generated. The new OP_TypeCheck needs to be inserted @@ -130873,7 +132255,7 @@ insert_cleanup: /* This is the Walker callback from sqlite3ExprReferencesUpdatedColumn(). * Set bit 0x01 of pWalker->eCode if pWalker->eCode to 0 and if this ** expression node references any of the -** columns that are being modifed by an UPDATE statement. +** columns that are being modified by an UPDATE statement. */ static int checkConstraintExprNode(Walker *pWalker, Expr *pExpr){ if( pExpr->op==TK_COLUMN ){ @@ -131096,7 +132478,7 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( int *aiChng, /* column i is unchanged if aiChng[i]<0 */ Upsert *pUpsert /* ON CONFLICT clauses, if any. NULL otherwise */ ){ - Vdbe *v; /* VDBE under constrution */ + Vdbe *v; /* VDBE under construction */ Index *pIdx; /* Pointer to one of the indices */ Index *pPk = 0; /* The PRIMARY KEY index for WITHOUT ROWID tables */ sqlite3 *db; /* Database connection */ @@ -131579,7 +132961,7 @@ SQLITE_PRIVATE void sqlite3GenerateConstraintChecks( pIdx; pIdx = indexIteratorNext(&sIdxIter, &ix) ){ - int regIdx; /* Range of registers hold conent for pIdx */ + int regIdx; /* Range of registers holding content for pIdx */ int regR; /* Range of registers holding conflicting PK */ int iThisCur; /* Cursor for this UNIQUE index */ int addrUniqueOk; /* Jump here if the UNIQUE constraint is satisfied */ @@ -132074,6 +133456,8 @@ SQLITE_PRIVATE int sqlite3OpenTableAndIndices( assert( op==OP_OpenRead || op==OP_OpenWrite ); assert( op==OP_OpenWrite || p5==0 ); + assert( piDataCur!=0 ); + assert( piIdxCur!=0 ); if( IsVirtual(pTab) ){ /* This routine is a no-op for virtual tables. Leave the output ** variables *piDataCur and *piIdxCur set to illegal cursor numbers @@ -132086,18 +133470,18 @@ SQLITE_PRIVATE int sqlite3OpenTableAndIndices( assert( v!=0 ); if( iBase<0 ) iBase = pParse->nTab; iDataCur = iBase++; - if( piDataCur ) *piDataCur = iDataCur; + *piDataCur = iDataCur; if( HasRowid(pTab) && (aToOpen==0 || aToOpen[0]) ){ sqlite3OpenTable(pParse, iDataCur, iDb, pTab, op); - }else{ + }else if( pParse->db->noSharedCache==0 ){ sqlite3TableLock(pParse, iDb, pTab->tnum, op==OP_OpenWrite, pTab->zName); } - if( piIdxCur ) *piIdxCur = iBase; + *piIdxCur = iBase; for(i=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, i++){ int iIdxCur = iBase++; assert( pIdx->pSchema==pTab->pSchema ); if( IsPrimaryKeyIndex(pIdx) && !HasRowid(pTab) ){ - if( piDataCur ) *piDataCur = iIdxCur; + *piDataCur = iIdxCur; p5 = 0; } if( aToOpen==0 || aToOpen[i+1] ){ @@ -132395,7 +133779,7 @@ static int xferOptimization( } #endif #ifndef SQLITE_OMIT_FOREIGN_KEY - /* Disallow the transfer optimization if the destination table constains + /* Disallow the transfer optimization if the destination table contains ** any foreign key constraints. This is more restrictive than necessary. ** But the main beneficiary of the transfer optimization is the VACUUM ** command, and the VACUUM command disables foreign key constraints. So @@ -133105,6 +134489,8 @@ struct sqlite3_api_routines { int (*value_encoding)(sqlite3_value*); /* Version 3.41.0 and later */ int (*is_interrupted)(sqlite3*); + /* Version 3.43.0 and later */ + int (*stmt_explain)(sqlite3_stmt*,int); }; /* @@ -133433,6 +134819,8 @@ typedef int (*sqlite3_loadext_entry)( #define sqlite3_value_encoding sqlite3_api->value_encoding /* Version 3.41.0 and later */ #define sqlite3_is_interrupted sqlite3_api->is_interrupted +/* Version 3.43.0 and later */ +#define sqlite3_stmt_explain sqlite3_api->stmt_explain #endif /* !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) */ #if !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) @@ -133949,7 +135337,9 @@ static const sqlite3_api_routines sqlite3Apis = { /* Version 3.40.0 and later */ sqlite3_value_encoding, /* Version 3.41.0 and later */ - sqlite3_is_interrupted + sqlite3_is_interrupted, + /* Version 3.43.0 and later */ + sqlite3_stmt_explain }; /* True if x is the directory separator character @@ -134029,6 +135419,10 @@ static int sqlite3LoadExtension( */ if( nMsg>SQLITE_MAX_PATHLEN ) goto extension_not_found; + /* Do not allow sqlite3_load_extension() to link to a copy of the + ** running application, by passing in an empty filename. */ + if( nMsg==0 ) goto extension_not_found; + handle = sqlite3OsDlOpen(pVfs, zFile); #if SQLITE_OS_UNIX || SQLITE_OS_WIN for(ii=0; iipParse; db->pParse = &sParse; sParse.db = db; - sParse.pReprepare = pReprepare; + if( pReprepare ){ + sParse.pReprepare = pReprepare; + sParse.explain = sqlite3_stmt_isexplain((sqlite3_stmt*)pReprepare); + }else{ + assert( sParse.pReprepare==0 ); + } assert( ppStmt && *ppStmt==0 ); if( db->mallocFailed ){ sqlite3ErrorMsg(&sParse, "out of memory"); @@ -139227,7 +140626,7 @@ static Select *findRightmost(Select *p){ ** NATURAL FULL OUTER JT_NATRUAL|JT_LEFT|JT_RIGHT ** ** To preserve historical compatibly, SQLite also accepts a variety -** of other non-standard and in many cases non-sensical join types. +** of other non-standard and in many cases nonsensical join types. ** This routine makes as much sense at it can from the nonsense join ** type and returns a result. Examples of accepted nonsense join types ** include but are not limited to: @@ -139498,7 +140897,7 @@ static int sqlite3ProcessJoin(Parse *pParse, Select *p){ if( NEVER(pLeft->pTab==0 || pRightTab==0) ) continue; joinType = (pRight->fg.jointype & JT_OUTER)!=0 ? EP_OuterON : EP_InnerON; - /* If this is a NATURAL join, synthesize an approprate USING clause + /* If this is a NATURAL join, synthesize an appropriate USING clause ** to specify which columns should be joined. */ if( pRight->fg.jointype & JT_NATURAL ){ @@ -139714,7 +141113,7 @@ static void pushOntoSorter( ** (3) Some output columns are omitted from the sort record due to ** the SQLITE_ENABLE_SORTER_REFERENCES optimization, or due to the ** SQLITE_ECEL_OMITREF optimization, or due to the - ** SortCtx.pDeferredRowLoad optimiation. In any of these cases + ** SortCtx.pDeferredRowLoad optimization. In any of these cases ** regOrigData is 0 to prevent this routine from trying to copy ** values that might not yet exist. */ @@ -139770,7 +141169,7 @@ static void pushOntoSorter( testcase( pKI->nAllField > pKI->nKeyField+2 ); pOp->p4.pKeyInfo = sqlite3KeyInfoFromExprList(pParse,pSort->pOrderBy,nOBSat, pKI->nAllField-pKI->nKeyField-1); - pOp = 0; /* Ensure pOp not used after sqltie3VdbeAddOp3() */ + pOp = 0; /* Ensure pOp not used after sqlite3VdbeAddOp3() */ addrJmp = sqlite3VdbeCurrentAddr(v); sqlite3VdbeAddOp3(v, OP_Jump, addrJmp+1, 0, addrJmp+1); VdbeCoverage(v); pSort->labelBkOut = sqlite3VdbeMakeLabel(pParse); @@ -139864,7 +141263,7 @@ static void codeOffset( ** The returned value in this case is a copy of parameter iTab. ** ** WHERE_DISTINCT_ORDERED: -** In this case rows are being delivered sorted order. The ephermal +** In this case rows are being delivered sorted order. The ephemeral ** table is not required. Instead, the current set of values ** is compared against previous row. If they match, the new row ** is not distinct and control jumps to VM address addrRepeat. Otherwise, @@ -140293,6 +141692,16 @@ static void selectInnerLoop( testcase( eDest==SRT_Fifo ); testcase( eDest==SRT_DistFifo ); sqlite3VdbeAddOp3(v, OP_MakeRecord, regResult, nResultCol, r1+nPrefixReg); +#if !defined(SQLITE_ENABLE_NULL_TRIM) && defined(SQLITE_DEBUG) + /* A destination of SRT_Table and a non-zero iSDParm2 parameter means + ** that this is an "UPDATE ... FROM" on a virtual table or view. In this + ** case set the p5 parameter of the OP_MakeRecord to OPFLAG_NOCHNG_MAGIC. + ** This does not affect operation in any way - it just allows MakeRecord + ** to process OPFLAG_NOCHANGE values without an assert() failing. */ + if( eDest==SRT_Table && pDest->iSDParm2 ){ + sqlite3VdbeChangeP5(v, OPFLAG_NOCHNG_MAGIC); + } +#endif #ifndef SQLITE_OMIT_CTE if( eDest==SRT_DistFifo ){ /* If the destination is DistFifo, then cursor (iParm+1) is open @@ -141096,13 +142505,6 @@ SQLITE_PRIVATE void sqlite3GenerateColumnNames( int fullName; /* TABLE.COLUMN if no AS clause and is a direct table ref */ int srcName; /* COLUMN or TABLE.COLUMN if no AS clause and is direct */ -#ifndef SQLITE_OMIT_EXPLAIN - /* If this is an EXPLAIN, skip this step */ - if( pParse->explain ){ - return; - } -#endif - if( pParse->colNamesSet ) return; /* Column names are determined by the left-most term of a compound select */ while( pSelect->pPrior ) pSelect = pSelect->pPrior; @@ -141289,7 +142691,7 @@ SQLITE_PRIVATE int sqlite3ColumnsFromExprList( ** kind (maybe a parenthesized subquery in the FROM clause of a larger ** query, or a VIEW, or a CTE). This routine computes type information ** for that Table object based on the Select object that implements the -** subquery. For the purposes of this routine, "type infomation" means: +** subquery. For the purposes of this routine, "type information" means: ** ** * The datatype name, as it might appear in a CREATE TABLE statement ** * Which collating sequence to use for the column @@ -141618,7 +143020,7 @@ static void generateWithRecursiveQuery( int iQueue; /* The Queue table */ int iDistinct = 0; /* To ensure unique results if UNION */ int eDest = SRT_Fifo; /* How to write to Queue */ - SelectDest destQueue; /* SelectDest targetting the Queue table */ + SelectDest destQueue; /* SelectDest targeting the Queue table */ int i; /* Loop counter */ int rc; /* Result code */ ExprList *pOrderBy; /* The ORDER BY clause */ @@ -142218,7 +143620,7 @@ SQLITE_PRIVATE void sqlite3SelectWrongNumTermsError(Parse *pParse, Select *p){ /* ** Code an output subroutine for a coroutine implementation of a -** SELECT statment. +** SELECT statement. ** ** The data to be output is contained in pIn->iSdst. There are ** pIn->nSdst columns to be output. pDest is where the output should @@ -142440,7 +143842,7 @@ static int generateOutputSubroutine( ** ** We call AltB, AeqB, AgtB, EofA, and EofB "subroutines" but they are not ** actually called using Gosub and they do not Return. EofA and EofB loop -** until all data is exhausted then jump to the "end" labe. AltB, AeqB, +** until all data is exhausted then jump to the "end" label. AltB, AeqB, ** and AgtB jump to either L2 or to one of EofA or EofB. */ #ifndef SQLITE_OMIT_COMPOUND_SELECT @@ -142477,7 +143879,7 @@ static int multiSelectOrderBy( int savedOffset; /* Saved value of p->iOffset */ int labelCmpr; /* Label for the start of the merge algorithm */ int labelEnd; /* Label for the end of the overall SELECT stmt */ - int addr1; /* Jump instructions that get retargetted */ + int addr1; /* Jump instructions that get retargeted */ int op; /* One of TK_ALL, TK_UNION, TK_EXCEPT, TK_INTERSECT */ KeyInfo *pKeyDup = 0; /* Comparison information for duplicate removal */ KeyInfo *pKeyMerge; /* Comparison information for merging rows */ @@ -142846,11 +144248,14 @@ static Expr *substExpr( #endif { Expr *pNew; - int iColumn = pExpr->iColumn; - Expr *pCopy = pSubst->pEList->a[iColumn].pExpr; + int iColumn; + Expr *pCopy; Expr ifNullRow; + iColumn = pExpr->iColumn; + assert( iColumn>=0 ); assert( pSubst->pEList!=0 && iColumnpEList->nExpr ); assert( pExpr->pRight==0 ); + pCopy = pSubst->pEList->a[iColumn].pExpr; if( sqlite3ExprIsVector(pCopy) ){ sqlite3VectorErrorMsg(pSubst->pParse, pCopy); }else{ @@ -143199,7 +144604,7 @@ static int compoundHasDifferentAffinities(Select *p){ ** (9) If the subquery uses LIMIT then the outer query may not be aggregate. ** ** (**) Restriction (10) was removed from the code on 2005-02-05 but we -** accidently carried the comment forward until 2014-09-15. Original +** accidentally carried the comment forward until 2014-09-15. Original ** constraint: "If the subquery is aggregate then the outer query ** may not use LIMIT." ** @@ -143291,7 +144696,8 @@ static int compoundHasDifferentAffinities(Select *p){ ** (27b) the subquery is a compound query and the RIGHT JOIN occurs ** in any arm of the compound query. (See also (17g).) ** -** (28) The subquery is not a MATERIALIZED CTE. +** (28) The subquery is not a MATERIALIZED CTE. (This is handled +** in the caller before ever reaching this routine.) ** ** ** In this routine, the "p" parameter is a pointer to the outer query. @@ -143401,9 +144807,9 @@ static int flattenSubquery( if( iFrom>0 && (pSubSrc->a[0].fg.jointype & JT_LTORJ)!=0 ){ return 0; /* Restriction (27a) */ } - if( pSubitem->fg.isCte && pSubitem->u2.pCteUse->eM10d==M10d_Yes ){ - return 0; /* (28) */ - } + + /* Condition (28) is blocked by the caller */ + assert( !pSubitem->fg.isCte || pSubitem->u2.pCteUse->eM10d!=M10d_Yes ); /* Restriction (17): If the sub-query is a compound SELECT, then it must ** use only the UNION ALL operator. And none of the simple select queries @@ -143473,7 +144879,7 @@ static int flattenSubquery( testcase( i==SQLITE_DENY ); pParse->zAuthContext = zSavedAuthContext; - /* Delete the transient structures associated with thesubquery */ + /* Delete the transient structures associated with the subquery */ pSub1 = pSubitem->pSelect; sqlite3DbFree(db, pSubitem->zDatabase); sqlite3DbFree(db, pSubitem->zName); @@ -143655,7 +145061,7 @@ static int flattenSubquery( ** ORDER BY column expression is identical to the iOrderByCol'th ** expression returned by SELECT statement pSub. Since these values ** do not necessarily correspond to columns in SELECT statement pParent, - ** zero them before transfering the ORDER BY clause. + ** zero them before transferring the ORDER BY clause. ** ** Not doing this may cause an error if a subsequent call to this ** function attempts to flatten a compound sub-query into pParent @@ -143715,8 +145121,7 @@ static int flattenSubquery( } } - /* Finially, delete what is left of the subquery and return - ** success. + /* Finally, delete what is left of the subquery and return success. */ sqlite3AggInfoPersistWalkerInit(&w, pParse); sqlite3WalkSelect(&w,pSub1); @@ -143751,7 +145156,7 @@ struct WhereConst { /* ** Add a new entry to the pConst object. Except, do not add duplicate -** pColumn entires. Also, do not add if doing so would not be appropriate. +** pColumn entries. Also, do not add if doing so would not be appropriate. ** ** The caller guarantees the pColumn is a column and pValue is a constant. ** This routine has to do some additional checks before completing the @@ -143937,7 +145342,7 @@ static int propagateConstantExprRewrite(Walker *pWalker, Expr *pExpr){ ** SELECT * FROM t1 WHERE a=123 AND b=123; ** ** The two SELECT statements above should return different answers. b=a -** is alway true because the comparison uses numeric affinity, but b=123 +** is always true because the comparison uses numeric affinity, but b=123 ** is false because it uses text affinity and '0123' is not the same as '123'. ** To work around this, the expression tree is not actually changed from ** "b=a" to "b=123" but rather the "a" in "b=a" is tagged with EP_FixedCol @@ -144021,7 +145426,7 @@ static int propagateConstants( ** At the time this function is called it is guaranteed that ** ** * the sub-query uses only one distinct window frame, and -** * that the window frame has a PARTITION BY clase. +** * that the window frame has a PARTITION BY clause. */ static int pushDownWindowCheck(Parse *pParse, Select *pSubq, Expr *pExpr){ assert( pSubq->pWin->pPartition ); @@ -144290,12 +145695,12 @@ static int disableUnusedSubqueryResultColumns(SrcItem *pItem){ assert( pItem->pSelect!=0 ); pSub = pItem->pSelect; assert( pSub->pEList->nExpr==pTab->nCol ); - if( (pSub->selFlags & (SF_Distinct|SF_Aggregate))!=0 ){ - testcase( pSub->selFlags & SF_Distinct ); - testcase( pSub->selFlags & SF_Aggregate ); - return 0; - } for(pX=pSub; pX; pX=pX->pPrior){ + if( (pX->selFlags & (SF_Distinct|SF_Aggregate))!=0 ){ + testcase( pX->selFlags & SF_Distinct ); + testcase( pX->selFlags & SF_Aggregate ); + return 0; + } if( pX->pPrior && pX->op!=TK_ALL ){ /* This optimization does not work for compound subqueries that ** use UNION, INTERSECT, or EXCEPT. Only UNION ALL is allowed. */ @@ -145101,10 +146506,16 @@ static int selectExpander(Walker *pWalker, Select *p){ ** expanded. */ int tableSeen = 0; /* Set to 1 when TABLE matches */ char *zTName = 0; /* text of name of TABLE */ + int iErrOfst; if( pE->op==TK_DOT ){ assert( pE->pLeft!=0 ); assert( !ExprHasProperty(pE->pLeft, EP_IntValue) ); zTName = pE->pLeft->u.zToken; + assert( ExprUseWOfst(pE->pLeft) ); + iErrOfst = pE->pRight->w.iOfst; + }else{ + assert( ExprUseWOfst(pE) ); + iErrOfst = pE->w.iOfst; } for(i=0, pFrom=pTabList->a; inSrc; i++, pFrom++){ Table *pTab = pFrom->pTab; /* Table for this data source */ @@ -145141,6 +146552,7 @@ static int selectExpander(Walker *pWalker, Select *p){ for(ii=0; iinId; ii++){ const char *zUName = pUsing->a[ii].zName; pRight = sqlite3Expr(db, TK_ID, zUName); + sqlite3ExprSetErrorOffset(pRight, iErrOfst); pNew = sqlite3ExprListAppend(pParse, pNew, pRight); if( pNew ){ struct ExprList_item *pX = &pNew->a[pNew->nExpr-1]; @@ -145213,6 +146625,7 @@ static int selectExpander(Walker *pWalker, Select *p){ }else{ pExpr = pRight; } + sqlite3ExprSetErrorOffset(pExpr, iErrOfst); pNew = sqlite3ExprListAppend(pParse, pNew, pExpr); if( pNew==0 ){ break; /* OOM */ @@ -145529,7 +146942,7 @@ static int aggregateIdxEprRefToColCallback(Walker *pWalker, Expr *pExpr){ pExpr->op = TK_AGG_COLUMN; pExpr->iTable = pCol->iTable; pExpr->iColumn = pCol->iColumn; - ExprClearProperty(pExpr, EP_Skip|EP_Collate); + ExprClearProperty(pExpr, EP_Skip|EP_Collate|EP_Unlikely); return WRC_Prune; } @@ -145560,7 +146973,7 @@ static void aggregateConvertIndexedExprRefToColumn(AggInfo *pAggInfo){ ** * The aCol[] and aFunc[] arrays may be modified ** * The AggInfoColumnReg() and AggInfoFuncReg() macros may not be used ** -** After clling this routine: +** After calling this routine: ** ** * The aCol[] and aFunc[] arrays are fixed ** * The AggInfoColumnReg() and AggInfoFuncReg() macros may be used @@ -146214,22 +147627,59 @@ SQLITE_PRIVATE int sqlite3Select( ** to a real table */ assert( pTab!=0 ); - /* Convert LEFT JOIN into JOIN if there are terms of the right table - ** of the LEFT JOIN used in the WHERE clause. + /* Try to simplify joins: + ** + ** LEFT JOIN -> JOIN + ** RIGHT JOIN -> JOIN + ** FULL JOIN -> RIGHT JOIN + ** + ** If terms of the i-th table are used in the WHERE clause in such a + ** way that the i-th table cannot be the NULL row of a join, then + ** perform the appropriate simplification. This is called + ** "OUTER JOIN strength reduction" in the SQLite documentation. */ - if( (pItem->fg.jointype & (JT_LEFT|JT_RIGHT))==JT_LEFT - && sqlite3ExprImpliesNonNullRow(p->pWhere, pItem->iCursor) + if( (pItem->fg.jointype & (JT_LEFT|JT_LTORJ))!=0 + && sqlite3ExprImpliesNonNullRow(p->pWhere, pItem->iCursor, + pItem->fg.jointype & JT_LTORJ) && OptimizationEnabled(db, SQLITE_SimplifyJoin) ){ - TREETRACE(0x1000,pParse,p, - ("LEFT-JOIN simplifies to JOIN on term %d\n",i)); - pItem->fg.jointype &= ~(JT_LEFT|JT_OUTER); + if( pItem->fg.jointype & JT_LEFT ){ + if( pItem->fg.jointype & JT_RIGHT ){ + TREETRACE(0x1000,pParse,p, + ("FULL-JOIN simplifies to RIGHT-JOIN on term %d\n",i)); + pItem->fg.jointype &= ~JT_LEFT; + }else{ + TREETRACE(0x1000,pParse,p, + ("LEFT-JOIN simplifies to JOIN on term %d\n",i)); + pItem->fg.jointype &= ~(JT_LEFT|JT_OUTER); + } + } + if( pItem->fg.jointype & JT_LTORJ ){ + for(j=i+1; jnSrc; j++){ + SrcItem *pI2 = &pTabList->a[j]; + if( pI2->fg.jointype & JT_RIGHT ){ + if( pI2->fg.jointype & JT_LEFT ){ + TREETRACE(0x1000,pParse,p, + ("FULL-JOIN simplifies to LEFT-JOIN on term %d\n",j)); + pI2->fg.jointype &= ~JT_RIGHT; + }else{ + TREETRACE(0x1000,pParse,p, + ("RIGHT-JOIN simplifies to JOIN on term %d\n",j)); + pI2->fg.jointype &= ~(JT_RIGHT|JT_OUTER); + } + } + } + for(j=pTabList->nSrc-1; j>=i; j--){ + pTabList->a[j].fg.jointype &= ~JT_LTORJ; + if( pTabList->a[j].fg.jointype & JT_RIGHT ) break; + } + } assert( pItem->iCursor>=0 ); unsetJoinExpr(p->pWhere, pItem->iCursor, pTabList->a[0].fg.jointype & JT_LTORJ); } - /* No futher action if this term of the FROM clause is not a subquery */ + /* No further action if this term of the FROM clause is not a subquery */ if( pSub==0 ) continue; /* Catch mismatch in the declared columns of a view and the number of @@ -146240,6 +147690,14 @@ SQLITE_PRIVATE int sqlite3Select( goto select_end; } + /* Do not attempt the usual optimizations (flattening and ORDER BY + ** elimination) on a MATERIALIZED common table expression because + ** a MATERIALIZED common table expression is an optimization fence. + */ + if( pItem->fg.isCte && pItem->u2.pCteUse->eM10d==M10d_Yes ){ + continue; + } + /* Do not try to flatten an aggregate subquery. ** ** Flattening an aggregate subquery is only possible if the outer query @@ -146269,6 +147727,8 @@ SQLITE_PRIVATE int sqlite3Select( ** (a) The outer query has a different ORDER BY clause ** (b) The subquery is part of a join ** See forum post 062d576715d277c8 + ** + ** Also retain the ORDER BY if the OmitOrderBy optimization is disabled. */ if( pSub->pOrderBy!=0 && (p->pOrderBy!=0 || pTabList->nSrc>1) /* Condition (5) */ @@ -146483,7 +147943,7 @@ SQLITE_PRIVATE int sqlite3Select( }else if( pItem->fg.isCte && pItem->u2.pCteUse->addrM9e>0 ){ /* This is a CTE for which materialization code has already been ** generated. Invoke the subroutine to compute the materialization, - ** the make the pItem->iCursor be a copy of the ephemerial table that + ** the make the pItem->iCursor be a copy of the ephemeral table that ** holds the result of the materialization. */ CteUse *pCteUse = pItem->u2.pCteUse; sqlite3VdbeAddOp2(v, OP_Gosub, pCteUse->regRtn, pCteUse->addrM9e); @@ -146866,7 +148326,7 @@ SQLITE_PRIVATE int sqlite3Select( */ if( pGroupBy ){ KeyInfo *pKeyInfo; /* Keying information for the group by clause */ - int addr1; /* A-vs-B comparision jump */ + int addr1; /* A-vs-B comparison jump */ int addrOutputRow; /* Start of subroutine that outputs a result row */ int regOutputRow; /* Return address register for output subroutine */ int addrSetAbort; /* Set the abort flag and return */ @@ -146957,9 +148417,13 @@ SQLITE_PRIVATE int sqlite3Select( int nCol; int nGroupBy; - explainTempTable(pParse, +#ifdef SQLITE_ENABLE_STMT_SCANSTATUS + int addrExp; /* Address of OP_Explain instruction */ +#endif + ExplainQueryPlan2(addrExp, (pParse, 0, "USE TEMP B-TREE FOR %s", (sDistinct.isTnct && (p->selFlags&SF_Distinct)==0) ? - "DISTINCT" : "GROUP BY"); + "DISTINCT" : "GROUP BY" + )); groupBySort = 1; nGroupBy = pGroupBy->nExpr; @@ -146984,18 +148448,23 @@ SQLITE_PRIVATE int sqlite3Select( } pAggInfo->directMode = 0; regRecord = sqlite3GetTempReg(pParse); + sqlite3VdbeScanStatusCounters(v, addrExp, 0, sqlite3VdbeCurrentAddr(v)); sqlite3VdbeAddOp3(v, OP_MakeRecord, regBase, nCol, regRecord); sqlite3VdbeAddOp2(v, OP_SorterInsert, pAggInfo->sortingIdx, regRecord); + sqlite3VdbeScanStatusRange(v, addrExp, sqlite3VdbeCurrentAddr(v)-2, -1); sqlite3ReleaseTempReg(pParse, regRecord); sqlite3ReleaseTempRange(pParse, regBase, nCol); TREETRACE(0x2,pParse,p,("WhereEnd\n")); sqlite3WhereEnd(pWInfo); pAggInfo->sortingIdxPTab = sortPTab = pParse->nTab++; sortOut = sqlite3GetTempReg(pParse); + sqlite3VdbeScanStatusCounters(v, addrExp, sqlite3VdbeCurrentAddr(v), 0); sqlite3VdbeAddOp3(v, OP_OpenPseudo, sortPTab, sortOut, nCol); sqlite3VdbeAddOp2(v, OP_SorterSort, pAggInfo->sortingIdx, addrEnd); VdbeComment((v, "GROUP BY sort")); VdbeCoverage(v); pAggInfo->useSortingIdx = 1; + sqlite3VdbeScanStatusRange(v, addrExp, -1, sortPTab); + sqlite3VdbeScanStatusRange(v, addrExp, -1, pAggInfo->sortingIdx); } /* If there are entries in pAgggInfo->aFunc[] that contain subexpressions @@ -149246,7 +150715,7 @@ static void updateFromSelect( assert( pTabList->nSrc>1 ); if( pSrc ){ - pSrc->a[0].fg.notCte = 1; + assert( pSrc->a[0].fg.notCte ); pSrc->a[0].iCursor = -1; pSrc->a[0].pTab->nTabRef--; pSrc->a[0].pTab = 0; @@ -149763,7 +151232,7 @@ SQLITE_PRIVATE void sqlite3Update( && !hasFK && !chngKey && !bReplace - && (sNC.ncFlags & NC_Subquery)==0 + && (pWhere==0 || !ExprHasProperty(pWhere, EP_Subquery)) ){ flags |= WHERE_ONEPASS_MULTIROW; } @@ -149835,6 +151304,8 @@ SQLITE_PRIVATE void sqlite3Update( if( !isView ){ int addrOnce = 0; + int iNotUsed1 = 0; + int iNotUsed2 = 0; /* Open every index that needs updating. */ if( eOnePass!=ONEPASS_OFF ){ @@ -149846,7 +151317,7 @@ SQLITE_PRIVATE void sqlite3Update( addrOnce = sqlite3VdbeAddOp0(v, OP_Once); VdbeCoverage(v); } sqlite3OpenTableAndIndices(pParse, pTab, OP_OpenWrite, 0, iBaseCur, - aToOpen, 0, 0); + aToOpen, &iNotUsed1, &iNotUsed2); if( addrOnce ){ sqlite3VdbeJumpHereOrPopInst(v, addrOnce); } @@ -150137,8 +151608,10 @@ SQLITE_PRIVATE void sqlite3Update( sqlite3VdbeAddOp2(v, OP_AddImm, regRowCount, 1); } - sqlite3CodeRowTrigger(pParse, pTrigger, TK_UPDATE, pChanges, - TRIGGER_AFTER, pTab, regOldRowid, onError, labelContinue); + if( pTrigger ){ + sqlite3CodeRowTrigger(pParse, pTrigger, TK_UPDATE, pChanges, + TRIGGER_AFTER, pTab, regOldRowid, onError, labelContinue); + } /* Repeat the above with the next record to be updated, until ** all record selected by the WHERE clause have been updated. @@ -150233,7 +151706,7 @@ static void updateVirtualTable( int nArg = 2 + pTab->nCol; /* Number of arguments to VUpdate */ int regArg; /* First register in VUpdate arg array */ int regRec; /* Register in which to assemble record */ - int regRowid; /* Register for ephem table rowid */ + int regRowid; /* Register for ephemeral table rowid */ int iCsr = pSrc->a[0].iCursor; /* Cursor used for virtual table scan */ int aDummy[2]; /* Unused arg for sqlite3WhereOkOnePass() */ int eOnePass; /* True to use onepass strategy */ @@ -150277,7 +151750,9 @@ static void updateVirtualTable( sqlite3ExprDup(db, pChanges->a[aXRef[i]].pExpr, 0) ); }else{ - pList = sqlite3ExprListAppend(pParse, pList, exprRowColumn(pParse, i)); + Expr *pRowExpr = exprRowColumn(pParse, i); + if( pRowExpr ) pRowExpr->op2 = OPFLAG_NOCHNG; + pList = sqlite3ExprListAppend(pParse, pList, pRowExpr); } } @@ -150354,7 +151829,7 @@ static void updateVirtualTable( sqlite3WhereEnd(pWInfo); } - /* Begin scannning through the ephemeral table. */ + /* Begin scanning through the ephemeral table. */ addr = sqlite3VdbeAddOp1(v, OP_Rewind, ephemTab); VdbeCoverage(v); /* Extract arguments from the current row of the ephemeral table and @@ -150562,7 +152037,7 @@ SQLITE_PRIVATE int sqlite3UpsertAnalyzeTarget( pExpr = &sCol[0]; } for(jj=0; jja[jj].pExpr,pExpr,iCursor)<2 ){ + if( sqlite3ExprCompare(0,pTarget->a[jj].pExpr,pExpr,iCursor)<2 ){ break; /* Column ii of the index matches column jj of target */ } } @@ -150911,7 +152386,7 @@ SQLITE_PRIVATE SQLITE_NOINLINE int sqlite3RunVacuum( ** (possibly synchronous) transaction opened on the main database before ** sqlite3BtreeCopyFile() is called. ** - ** An optimisation would be to use a non-journaled pager. + ** An optimization would be to use a non-journaled pager. ** (Later:) I tried setting "PRAGMA vacuum_db.journal_mode=OFF" but ** that actually made the VACUUM run slower. Very little journalling ** actually occurs when doing a vacuum since the vacuum_db is initially @@ -151600,7 +153075,7 @@ SQLITE_PRIVATE void sqlite3VtabFinishParse(Parse *pParse, Token *pEnd){ ** the information we've collected. ** ** The VM register number pParse->regRowid holds the rowid of an - ** entry in the sqlite_schema table tht was created for this vtab + ** entry in the sqlite_schema table that was created for this vtab ** by sqlite3StartTable(). */ iDb = sqlite3SchemaToIndex(db, pTab->pSchema); @@ -152344,7 +153819,7 @@ SQLITE_PRIVATE void sqlite3VtabMakeWritable(Parse *pParse, Table *pTab){ ** ** An eponymous virtual table instance is one that is named after its ** module, and more importantly, does not require a CREATE VIRTUAL TABLE -** statement in order to come into existance. Eponymous virtual table +** statement in order to come into existence. Eponymous virtual table ** instances always exist. They cannot be DROP-ed. ** ** Any virtual table module for which xConnect and xCreate are the same @@ -152535,7 +154010,7 @@ typedef struct WhereRightJoin WhereRightJoin; /* ** This object is a header on a block of allocated memory that will be -** automatically freed when its WInfo oject is destructed. +** automatically freed when its WInfo object is destructed. */ struct WhereMemBlock { WhereMemBlock *pNext; /* Next block in the chain */ @@ -152596,7 +154071,7 @@ struct WhereLevel { int iCur; /* The VDBE cursor used by this IN operator */ int addrInTop; /* Top of the IN loop */ int iBase; /* Base register of multi-key index record */ - int nPrefix; /* Number of prior entires in the key */ + int nPrefix; /* Number of prior entries in the key */ u8 eEndLoopOp; /* IN Loop terminator. OP_Next or OP_Prev */ } *aInLoop; /* Information about each nested IN operator */ } in; /* Used when pWLoop->wsFlags&WHERE_IN_ABLE */ @@ -152846,7 +154321,7 @@ struct WhereClause { int nTerm; /* Number of terms */ int nSlot; /* Number of entries in a[] */ int nBase; /* Number of terms through the last non-Virtual */ - WhereTerm *a; /* Each a[] describes a term of the WHERE cluase */ + WhereTerm *a; /* Each a[] describes a term of the WHERE clause */ #if defined(SQLITE_SMALL_STACK) WhereTerm aStatic[1]; /* Initial static space for a[] */ #else @@ -153434,6 +154909,12 @@ SQLITE_PRIVATE void sqlite3WhereAddScanStatus( if( wsFlags & WHERE_INDEXED ){ sqlite3VdbeScanStatusRange(v, addrExplain, -1, pLvl->iIdxCur); } + }else{ + int addr = pSrclist->a[pLvl->iFrom].addrFillSub; + VdbeOp *pOp = sqlite3VdbeGetOp(v, addr-1); + assert( sqlite3VdbeDb(v)->mallocFailed || pOp->opcode==OP_InitCoroutine ); + assert( sqlite3VdbeDb(v)->mallocFailed || pOp->p2>addr ); + sqlite3VdbeScanStatusRange(v, addrExplain, addr, pOp->p2-1); } } } @@ -153931,7 +155412,7 @@ static int codeAllEqualityTerms( /* Figure out how many memory cells we will need then allocate them. */ regBase = pParse->nMem + 1; - nReg = pLoop->u.btree.nEq + nExtraReg; + nReg = nEq + nExtraReg; pParse->nMem += nReg; zAff = sqlite3DbStrDup(pParse->db,sqlite3IndexAffinityStr(pParse->db,pIdx)); @@ -153978,9 +155459,6 @@ static int codeAllEqualityTerms( sqlite3VdbeAddOp2(v, OP_Copy, r1, regBase+j); } } - } - for(j=nSkip; jaLTerm[j]; if( pTerm->eOperator & WO_IN ){ if( pTerm->pExpr->flags & EP_xIsSelect ){ /* No affinity ever needs to be (or should be) applied to a value @@ -154123,7 +155601,7 @@ static int codeCursorHintIsOrFunction(Walker *pWalker, Expr *pExpr){ ** 2) transform the expression node to a TK_REGISTER node that reads ** from the newly populated register. ** -** Also, if the node is a TK_COLUMN that does access the table idenified +** Also, if the node is a TK_COLUMN that does access the table identified ** by pCCurHint.iTabCur, and an index is being used (which we will ** know because CCurHint.pIdx!=0) then transform the TK_COLUMN into ** an access of the index rather than the original table. @@ -154741,7 +156219,7 @@ SQLITE_PRIVATE Bitmask sqlite3WhereCodeOneLoopStart( }; assert( TK_LE==TK_GT+1 ); /* Make sure the ordering.. */ assert( TK_LT==TK_GT+2 ); /* ... of the TK_xx values... */ - assert( TK_GE==TK_GT+3 ); /* ... is correcct. */ + assert( TK_GE==TK_GT+3 ); /* ... is correct. */ assert( (pStart->wtFlags & TERM_VNULL)==0 ); testcase( pStart->wtFlags & TERM_VIRTUAL ); @@ -155921,7 +157399,7 @@ SQLITE_PRIVATE SQLITE_NOINLINE void sqlite3WhereRightJoinLoop( ** the WHERE clause of SQL statements. ** ** This file was originally part of where.c but was split out to improve -** readability and editabiliity. This file contains utility routines for +** readability and editability. This file contains utility routines for ** analyzing Expr objects in the WHERE clause. */ /* #include "sqliteInt.h" */ @@ -156137,7 +157615,7 @@ static int isLikeOrGlob( ** range search. The third is because the caller assumes that the pattern ** consists of at least one character after all escapes have been ** removed. */ - if( cnt!=0 && 255!=(u8)z[cnt-1] && (cnt>1 || z[0]!=wc[3]) ){ + if( (cnt>1 || (cnt>0 && z[0]!=wc[3])) && 255!=(u8)z[cnt-1] ){ Expr *pPrefix; /* A "complete" match if the pattern ends with "*" or "%" */ @@ -156710,7 +158188,7 @@ static void exprAnalyzeOrTerm( pOrTerm->leftCursor))==0 ){ /* This term must be of the form t1.a==t2.b where t2 is in the ** chngToIN set but t1 is not. This term will be either preceded - ** or follwed by an inverted copy (t2.b==t1.a). Skip this term + ** or followed by an inverted copy (t2.b==t1.a). Skip this term ** and use its inversion. */ testcase( pOrTerm->wtFlags & TERM_COPIED ); testcase( pOrTerm->wtFlags & TERM_VIRTUAL ); @@ -156972,8 +158450,8 @@ static void exprAnalyze( WhereTerm *pTerm; /* The term to be analyzed */ WhereMaskSet *pMaskSet; /* Set of table index masks */ Expr *pExpr; /* The expression to be analyzed */ - Bitmask prereqLeft; /* Prerequesites of the pExpr->pLeft */ - Bitmask prereqAll; /* Prerequesites of pExpr */ + Bitmask prereqLeft; /* Prerequisites of the pExpr->pLeft */ + Bitmask prereqAll; /* Prerequisites of pExpr */ Bitmask extraRight = 0; /* Extra dependencies on LEFT JOIN */ Expr *pStr1 = 0; /* RHS of LIKE/GLOB operator */ int isComplete = 0; /* RHS of LIKE/GLOB ends with wildcard */ @@ -159534,7 +161012,7 @@ SQLITE_PRIVATE char sqlite3IndexColumnAffinity(sqlite3 *db, Index *pIdx, int iCo ** Value pLoop->nOut is currently set to the estimated number of rows ** visited for scanning (a=? AND b=?). This function reduces that estimate ** by some factor to account for the (c BETWEEN ? AND ?) expression based -** on the stat4 data for the index. this scan will be peformed multiple +** on the stat4 data for the index. this scan will be performed multiple ** times (once for each (a,b) combination that matches a=?) is dealt with ** by the caller. ** @@ -160289,7 +161767,7 @@ static WhereLoop **whereLoopFindLesser( ** rSetup. Call this SETUP-INVARIANT */ assert( p->rSetup>=pTemplate->rSetup ); - /* Any loop using an appliation-defined index (or PRIMARY KEY or + /* Any loop using an application-defined index (or PRIMARY KEY or ** UNIQUE constraint) with one or more == constraints is better ** than an automatic index. Unless it is a skip-scan. */ if( (p->wsFlags & WHERE_AUTO_INDEX)!=0 @@ -160316,7 +161794,7 @@ static WhereLoop **whereLoopFindLesser( /* If pTemplate is always better than p, then cause p to be overwritten ** with pTemplate. pTemplate is better than p if: - ** (1) pTemplate has no more dependences than p, and + ** (1) pTemplate has no more dependencies than p, and ** (2) pTemplate has an equal or lower cost than p. */ if( (p->prereq & pTemplate->prereq)==pTemplate->prereq /* (1) */ @@ -160434,7 +161912,7 @@ static int whereLoopInsert(WhereLoopBuilder *pBuilder, WhereLoop *pTemplate){ }else{ /* We will be overwriting WhereLoop p[]. But before we do, first ** go through the rest of the list and delete any other entries besides - ** p[] that are also supplated by pTemplate */ + ** p[] that are also supplanted by pTemplate */ WhereLoop **ppTail = &p->pNextLoop; WhereLoop *pToDel; while( *ppTail ){ @@ -160634,7 +162112,7 @@ static int whereRangeVectorLen( } /* -** Adjust the cost C by the costMult facter T. This only occurs if +** Adjust the cost C by the costMult factor T. This only occurs if ** compiled with -DSQLITE_ENABLE_COSTMULT */ #ifdef SQLITE_ENABLE_COSTMULT @@ -160661,7 +162139,7 @@ static int whereLoopAddBtreeIndex( Index *pProbe, /* An index on pSrc */ LogEst nInMul /* log(Number of iterations due to IN) */ ){ - WhereInfo *pWInfo = pBuilder->pWInfo; /* WHERE analyse context */ + WhereInfo *pWInfo = pBuilder->pWInfo; /* WHERE analyze context */ Parse *pParse = pWInfo->pParse; /* Parsing context */ sqlite3 *db = pParse->db; /* Database connection malloc context */ WhereLoop *pNew; /* Template WhereLoop under construction */ @@ -160971,7 +162449,7 @@ static int whereLoopAddBtreeIndex( assert( pSrc->pTab->szTabRow>0 ); if( pProbe->idxType==SQLITE_IDXTYPE_IPK ){ /* The pProbe->szIdxRow is low for an IPK table since the interior - ** pages are small. Thuse szIdxRow gives a good estimate of seek cost. + ** pages are small. Thus szIdxRow gives a good estimate of seek cost. ** But the leaf pages are full-size, so pProbe->szIdxRow would badly ** under-estimate the scanning cost. */ rCostIdx = pNew->nOut + 16; @@ -161316,7 +162794,7 @@ static SQLITE_NOINLINE u32 whereIsCoveringIndex( */ static int whereLoopAddBtree( WhereLoopBuilder *pBuilder, /* WHERE clause information */ - Bitmask mPrereq /* Extra prerequesites for using this table */ + Bitmask mPrereq /* Extra prerequisites for using this table */ ){ WhereInfo *pWInfo; /* WHERE analysis context */ Index *pProbe; /* An index we are evaluating */ @@ -161823,7 +163301,7 @@ static int whereLoopAddVirtualOne( ** ** Return a pointer to the collation name: ** -** 1. If there is an explicit COLLATE operator on the constaint, return it. +** 1. If there is an explicit COLLATE operator on the constraint, return it. ** ** 2. Else, if the column has an alternative collation, return that. ** @@ -162784,7 +164262,8 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ ** For joins of 3 or more tables, track the 10 best paths */ mxChoice = (nLoop<=1) ? 1 : (nLoop==2 ? 5 : 10); assert( nLoop<=pWInfo->pTabList->nSrc ); - WHERETRACE(0x002, ("---- begin solver. (nRowEst=%d)\n", nRowEst)); + WHERETRACE(0x002, ("---- begin solver. (nRowEst=%d, nQueryLoop=%d)\n", + nRowEst, pParse->nQueryLoop)); /* If nRowEst is zero and there is an ORDER BY clause, ignore it. In this ** case the purpose of this call is to estimate the number of rows returned @@ -162887,7 +164366,7 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ ); } /* TUNING: Add a small extra penalty (3) to sorting as an - ** extra encouragment to the query planner to select a plan + ** extra encouragement to the query planner to select a plan ** where the rows emerge in the correct order without any sorting ** required. */ rCost = sqlite3LogEstAdd(rUnsorted, aSortCost[isOrdered]) + 3; @@ -162903,9 +164382,10 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ /* TUNING: A full-scan of a VIEW or subquery in the outer loop ** is not so bad. */ - if( iLoop==0 && (pWLoop->wsFlags & WHERE_VIEWSCAN)!=0 ){ + if( iLoop==0 && (pWLoop->wsFlags & WHERE_VIEWSCAN)!=0 && nLoop>1 ){ rCost += -10; nOut += -30; + WHERETRACE(0x80,("VIEWSCAN cost reduction for %c\n",pWLoop->cId)); } /* Check to see if pWLoop should be added to the set of @@ -163537,6 +165017,28 @@ static SQLITE_NOINLINE void whereAddIndexedExpr( } } +/* +** Set the reverse-scan order mask to one for all tables in the query +** with the exception of MATERIALIZED common table expressions that have +** their own internal ORDER BY clauses. +** +** This implements the PRAGMA reverse_unordered_selects=ON setting. +** (Also SQLITE_DBCONFIG_REVERSE_SCANORDER). +*/ +static SQLITE_NOINLINE void whereReverseScanOrder(WhereInfo *pWInfo){ + int ii; + for(ii=0; iipTabList->nSrc; ii++){ + SrcItem *pItem = &pWInfo->pTabList->a[ii]; + if( !pItem->fg.isCte + || pItem->u2.pCteUse->eM10d!=M10d_Yes + || NEVER(pItem->pSelect==0) + || pItem->pSelect->pOrderBy==0 + ){ + pWInfo->revMask |= MASKBIT(ii); + } + } +} + /* ** Generate the beginning of the loop used for WHERE clause processing. ** The return value is a pointer to an opaque structure that contains @@ -163595,7 +165097,7 @@ static SQLITE_NOINLINE void whereAddIndexedExpr( ** ** OUTER JOINS ** -** An outer join of tables t1 and t2 is conceptally coded as follows: +** An outer join of tables t1 and t2 is conceptually coded as follows: ** ** foreach row1 in t1 do ** flag = 0 @@ -163750,7 +165252,7 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( ** ** The N-th term of the FROM clause is assigned a bitmask of 1<mallocFailed ) goto whereBeginError; } } + assert( pWInfo->pTabList!=0 ); if( pWInfo->pOrderBy==0 && (db->flags & SQLITE_ReverseOrder)!=0 ){ - pWInfo->revMask = ALLBITS; + whereReverseScanOrder(pWInfo); } if( pParse->nErr ){ goto whereBeginError; @@ -164002,6 +165505,7 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( 0!=(wctrlFlags & WHERE_ONEPASS_MULTIROW) && !IsVirtual(pTabList->a[0].pTab) && (0==(wsFlags & WHERE_MULTI_OR) || (wctrlFlags & WHERE_DUPLICATES_OK)) + && OptimizationEnabled(db, SQLITE_OnePass) )){ pWInfo->eOnePass = bOnerow ? ONEPASS_SINGLE : ONEPASS_MULTI; if( HasRowid(pTabList->a[0].pTab) && (wsFlags & WHERE_IDX_ONLY) ){ @@ -164731,7 +166235,7 @@ SQLITE_PRIVATE void sqlite3WhereEnd(WhereInfo *pWInfo){ ** ** These are the same built-in window functions supported by Postgres. ** Although the behaviour of aggregate window functions (functions that -** can be used as either aggregates or window funtions) allows them to +** can be used as either aggregates or window functions) allows them to ** be implemented using an API, built-in window functions are much more ** esoteric. Additionally, some window functions (e.g. nth_value()) ** may only be implemented by caching the entire partition in memory. @@ -165261,7 +166765,7 @@ static Window *windowFind(Parse *pParse, Window *pList, const char *zName){ ** is the Window object representing the associated OVER clause. This ** function updates the contents of pWin as follows: ** -** * If the OVER clause refered to a named window (as in "max(x) OVER win"), +** * If the OVER clause referred to a named window (as in "max(x) OVER win"), ** search list pList for a matching WINDOW definition, and update pWin ** accordingly. If no such WINDOW clause can be found, leave an error ** in pParse. @@ -165882,7 +167386,7 @@ SQLITE_PRIVATE Window *sqlite3WindowAssemble( } /* -** Window *pWin has just been created from a WINDOW clause. Tokne pBase +** Window *pWin has just been created from a WINDOW clause. Token pBase ** is the base window. Earlier windows from the same WINDOW clause are ** stored in the linked list starting at pWin->pNextWin. This function ** either updates *pWin according to the base specification, or else @@ -166188,7 +167692,7 @@ struct WindowCsrAndReg { ** ** (ORDER BY a, b GROUPS BETWEEN 2 PRECEDING AND 2 FOLLOWING) ** -** The windows functions implmentation caches the input rows in a temp +** The windows functions implementation caches the input rows in a temp ** table, sorted by "a, b" (it actually populates the cache lazily, and ** aggressively removes rows once they are no longer required, but that's ** a mere detail). It keeps three cursors open on the temp table. One @@ -167197,7 +168701,7 @@ static int windowExprGtZero(Parse *pParse, Expr *pExpr){ ** ** For the most part, the patterns above are adapted to support UNBOUNDED by ** assuming that it is equivalent to "infinity PRECEDING/FOLLOWING" and -** CURRENT ROW by assuming that it is equivilent to "0 PRECEDING/FOLLOWING". +** CURRENT ROW by assuming that it is equivalent to "0 PRECEDING/FOLLOWING". ** This is optimized of course - branches that will never be taken and ** conditions that are always true are omitted from the VM code. The only ** exceptional case is: @@ -167476,7 +168980,7 @@ SQLITE_PRIVATE void sqlite3WindowCodeStep( } /* Allocate registers for the array of values from the sub-query, the - ** samve values in record form, and the rowid used to insert said record + ** same values in record form, and the rowid used to insert said record ** into the ephemeral table. */ regNew = pParse->nMem+1; pParse->nMem += nInput; @@ -167717,7 +169221,8 @@ SQLITE_PRIVATE void sqlite3WindowCodeStep( /************** End of window.c **********************************************/ /************** Begin file parse.c *******************************************/ /* This file is automatically generated by Lemon from input grammar -** source file "parse.y". */ +** source file "parse.y". +*/ /* ** 2001-09-15 ** @@ -167734,7 +169239,7 @@ SQLITE_PRIVATE void sqlite3WindowCodeStep( ** The canonical source code to this file ("parse.y") is a Lemon grammar ** file that specifies the input grammar and actions to take while parsing. ** That input file is processed by Lemon to generate a C-language -** implementation of a parser for the given grammer. You might be reading +** implementation of a parser for the given grammar. You might be reading ** this comment as part of the translated C-code. Edits should be made ** to the original parse.y sources. */ @@ -168230,7 +169735,7 @@ typedef union { #define YYFALLBACK 1 #define YYNSTATE 575 #define YYNRULE 403 -#define YYNRULE_WITH_ACTION 340 +#define YYNRULE_WITH_ACTION 338 #define YYNTOKEN 185 #define YY_MAX_SHIFT 574 #define YY_MIN_SHIFTREDUCE 833 @@ -168312,106 +169817,106 @@ static const YYACTIONTYPE yy_action[] = { /* 10 */ 568, 1310, 377, 1289, 408, 562, 562, 562, 568, 409, /* 20 */ 378, 1310, 1272, 41, 41, 41, 41, 208, 1520, 71, /* 30 */ 71, 969, 419, 41, 41, 491, 303, 279, 303, 970, - /* 40 */ 397, 71, 71, 125, 126, 80, 1212, 1212, 1047, 1050, + /* 40 */ 397, 71, 71, 125, 126, 80, 1210, 1210, 1047, 1050, /* 50 */ 1037, 1037, 123, 123, 124, 124, 124, 124, 476, 409, /* 60 */ 1237, 1, 1, 574, 2, 1241, 550, 118, 115, 229, /* 70 */ 317, 480, 146, 480, 524, 118, 115, 229, 529, 1323, - /* 80 */ 417, 523, 142, 125, 126, 80, 1212, 1212, 1047, 1050, + /* 80 */ 417, 523, 142, 125, 126, 80, 1210, 1210, 1047, 1050, /* 90 */ 1037, 1037, 123, 123, 124, 124, 124, 124, 118, 115, /* 100 */ 229, 327, 122, 122, 122, 122, 121, 121, 120, 120, /* 110 */ 120, 119, 116, 444, 284, 284, 284, 284, 442, 442, - /* 120 */ 442, 1561, 376, 1563, 1188, 375, 1159, 565, 1159, 565, - /* 130 */ 409, 1561, 537, 259, 226, 444, 101, 145, 449, 316, + /* 120 */ 442, 1559, 376, 1561, 1186, 375, 1157, 565, 1157, 565, + /* 130 */ 409, 1559, 537, 259, 226, 444, 101, 145, 449, 316, /* 140 */ 559, 240, 122, 122, 122, 122, 121, 121, 120, 120, - /* 150 */ 120, 119, 116, 444, 125, 126, 80, 1212, 1212, 1047, + /* 150 */ 120, 119, 116, 444, 125, 126, 80, 1210, 1210, 1047, /* 160 */ 1050, 1037, 1037, 123, 123, 124, 124, 124, 124, 142, - /* 170 */ 294, 1188, 339, 448, 120, 120, 120, 119, 116, 444, - /* 180 */ 127, 1188, 1189, 1188, 148, 441, 440, 568, 119, 116, + /* 170 */ 294, 1186, 339, 448, 120, 120, 120, 119, 116, 444, + /* 180 */ 127, 1186, 1187, 1186, 148, 441, 440, 568, 119, 116, /* 190 */ 444, 124, 124, 124, 124, 117, 122, 122, 122, 122, /* 200 */ 121, 121, 120, 120, 120, 119, 116, 444, 454, 113, /* 210 */ 13, 13, 546, 122, 122, 122, 122, 121, 121, 120, - /* 220 */ 120, 120, 119, 116, 444, 422, 316, 559, 1188, 1189, - /* 230 */ 1188, 149, 1220, 409, 1220, 124, 124, 124, 124, 122, + /* 220 */ 120, 120, 119, 116, 444, 422, 316, 559, 1186, 1187, + /* 230 */ 1186, 149, 1218, 409, 1218, 124, 124, 124, 124, 122, /* 240 */ 122, 122, 122, 121, 121, 120, 120, 120, 119, 116, /* 250 */ 444, 465, 342, 1034, 1034, 1048, 1051, 125, 126, 80, - /* 260 */ 1212, 1212, 1047, 1050, 1037, 1037, 123, 123, 124, 124, - /* 270 */ 124, 124, 1275, 522, 222, 1188, 568, 409, 224, 514, + /* 260 */ 1210, 1210, 1047, 1050, 1037, 1037, 123, 123, 124, 124, + /* 270 */ 124, 124, 1275, 522, 222, 1186, 568, 409, 224, 514, /* 280 */ 175, 82, 83, 122, 122, 122, 122, 121, 121, 120, - /* 290 */ 120, 120, 119, 116, 444, 1005, 16, 16, 1188, 133, - /* 300 */ 133, 125, 126, 80, 1212, 1212, 1047, 1050, 1037, 1037, + /* 290 */ 120, 120, 119, 116, 444, 1005, 16, 16, 1186, 133, + /* 300 */ 133, 125, 126, 80, 1210, 1210, 1047, 1050, 1037, 1037, /* 310 */ 123, 123, 124, 124, 124, 124, 122, 122, 122, 122, /* 320 */ 121, 121, 120, 120, 120, 119, 116, 444, 1038, 546, - /* 330 */ 1188, 373, 1188, 1189, 1188, 252, 1429, 399, 504, 501, + /* 330 */ 1186, 373, 1186, 1187, 1186, 252, 1429, 399, 504, 501, /* 340 */ 500, 111, 560, 566, 4, 924, 924, 433, 499, 340, - /* 350 */ 460, 328, 360, 394, 1233, 1188, 1189, 1188, 563, 568, + /* 350 */ 460, 328, 360, 394, 1231, 1186, 1187, 1186, 563, 568, /* 360 */ 122, 122, 122, 122, 121, 121, 120, 120, 120, 119, - /* 370 */ 116, 444, 284, 284, 369, 1574, 1600, 441, 440, 154, - /* 380 */ 409, 445, 71, 71, 1282, 565, 1217, 1188, 1189, 1188, - /* 390 */ 85, 1219, 271, 557, 543, 515, 1555, 568, 98, 1218, - /* 400 */ 6, 1274, 472, 142, 125, 126, 80, 1212, 1212, 1047, + /* 370 */ 116, 444, 284, 284, 369, 1572, 1598, 441, 440, 154, + /* 380 */ 409, 445, 71, 71, 1282, 565, 1215, 1186, 1187, 1186, + /* 390 */ 85, 1217, 271, 557, 543, 515, 515, 568, 98, 1216, + /* 400 */ 6, 1274, 472, 142, 125, 126, 80, 1210, 1210, 1047, /* 410 */ 1050, 1037, 1037, 123, 123, 124, 124, 124, 124, 550, - /* 420 */ 13, 13, 1024, 507, 1220, 1188, 1220, 549, 109, 109, - /* 430 */ 222, 568, 1234, 175, 568, 427, 110, 197, 445, 569, - /* 440 */ 445, 430, 1546, 1014, 325, 551, 1188, 270, 287, 368, + /* 420 */ 13, 13, 1024, 507, 1218, 1186, 1218, 549, 109, 109, + /* 430 */ 222, 568, 1232, 175, 568, 427, 110, 197, 445, 569, + /* 440 */ 445, 430, 1546, 1014, 325, 551, 1186, 270, 287, 368, /* 450 */ 510, 363, 509, 257, 71, 71, 543, 71, 71, 359, - /* 460 */ 316, 559, 1606, 122, 122, 122, 122, 121, 121, 120, + /* 460 */ 316, 559, 1604, 122, 122, 122, 122, 121, 121, 120, /* 470 */ 120, 120, 119, 116, 444, 1014, 1014, 1016, 1017, 27, - /* 480 */ 284, 284, 1188, 1189, 1188, 1154, 568, 1605, 409, 899, - /* 490 */ 190, 550, 356, 565, 550, 935, 533, 517, 1154, 516, - /* 500 */ 413, 1154, 552, 1188, 1189, 1188, 568, 544, 1548, 51, - /* 510 */ 51, 214, 125, 126, 80, 1212, 1212, 1047, 1050, 1037, - /* 520 */ 1037, 123, 123, 124, 124, 124, 124, 1188, 474, 135, + /* 480 */ 284, 284, 1186, 1187, 1186, 1152, 568, 1603, 409, 899, + /* 490 */ 190, 550, 356, 565, 550, 935, 533, 517, 1152, 516, + /* 500 */ 413, 1152, 552, 1186, 1187, 1186, 568, 544, 544, 51, + /* 510 */ 51, 214, 125, 126, 80, 1210, 1210, 1047, 1050, 1037, + /* 520 */ 1037, 123, 123, 124, 124, 124, 124, 1186, 474, 135, /* 530 */ 135, 409, 284, 284, 1484, 505, 121, 121, 120, 120, - /* 540 */ 120, 119, 116, 444, 1005, 565, 518, 217, 541, 1555, - /* 550 */ 316, 559, 142, 6, 532, 125, 126, 80, 1212, 1212, + /* 540 */ 120, 119, 116, 444, 1005, 565, 518, 217, 541, 541, + /* 550 */ 316, 559, 142, 6, 532, 125, 126, 80, 1210, 1210, /* 560 */ 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, 124, - /* 570 */ 1549, 122, 122, 122, 122, 121, 121, 120, 120, 120, - /* 580 */ 119, 116, 444, 485, 1188, 1189, 1188, 482, 281, 1263, - /* 590 */ 955, 252, 1188, 373, 504, 501, 500, 1188, 340, 570, - /* 600 */ 1188, 570, 409, 292, 499, 955, 874, 191, 480, 316, + /* 570 */ 1548, 122, 122, 122, 122, 121, 121, 120, 120, 120, + /* 580 */ 119, 116, 444, 485, 1186, 1187, 1186, 482, 281, 1263, + /* 590 */ 955, 252, 1186, 373, 504, 501, 500, 1186, 340, 570, + /* 600 */ 1186, 570, 409, 292, 499, 955, 874, 191, 480, 316, /* 610 */ 559, 384, 290, 380, 122, 122, 122, 122, 121, 121, - /* 620 */ 120, 120, 120, 119, 116, 444, 125, 126, 80, 1212, - /* 630 */ 1212, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, - /* 640 */ 124, 409, 394, 1132, 1188, 867, 100, 284, 284, 1188, - /* 650 */ 1189, 1188, 373, 1089, 1188, 1189, 1188, 1188, 1189, 1188, - /* 660 */ 565, 455, 32, 373, 233, 125, 126, 80, 1212, 1212, + /* 620 */ 120, 120, 120, 119, 116, 444, 125, 126, 80, 1210, + /* 630 */ 1210, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, + /* 640 */ 124, 409, 394, 1132, 1186, 867, 100, 284, 284, 1186, + /* 650 */ 1187, 1186, 373, 1089, 1186, 1187, 1186, 1186, 1187, 1186, + /* 660 */ 565, 455, 32, 373, 233, 125, 126, 80, 1210, 1210, /* 670 */ 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, 124, /* 680 */ 1428, 957, 568, 228, 956, 122, 122, 122, 122, 121, - /* 690 */ 121, 120, 120, 120, 119, 116, 444, 1154, 228, 1188, - /* 700 */ 157, 1188, 1189, 1188, 1547, 13, 13, 301, 955, 1228, - /* 710 */ 1154, 153, 409, 1154, 373, 1577, 1172, 5, 369, 1574, - /* 720 */ 429, 1234, 3, 955, 122, 122, 122, 122, 121, 121, - /* 730 */ 120, 120, 120, 119, 116, 444, 125, 126, 80, 1212, - /* 740 */ 1212, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, - /* 750 */ 124, 409, 208, 567, 1188, 1025, 1188, 1189, 1188, 1188, + /* 690 */ 121, 120, 120, 120, 119, 116, 444, 1152, 228, 1186, + /* 700 */ 157, 1186, 1187, 1186, 1547, 13, 13, 301, 955, 1226, + /* 710 */ 1152, 153, 409, 1152, 373, 1575, 1170, 5, 369, 1572, + /* 720 */ 429, 1232, 3, 955, 122, 122, 122, 122, 121, 121, + /* 730 */ 120, 120, 120, 119, 116, 444, 125, 126, 80, 1210, + /* 740 */ 1210, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, + /* 750 */ 124, 409, 208, 567, 1186, 1025, 1186, 1187, 1186, 1186, /* 760 */ 388, 850, 155, 1546, 286, 402, 1094, 1094, 488, 568, - /* 770 */ 465, 342, 1315, 1315, 1546, 125, 126, 80, 1212, 1212, + /* 770 */ 465, 342, 1315, 1315, 1546, 125, 126, 80, 1210, 1210, /* 780 */ 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, 124, /* 790 */ 129, 568, 13, 13, 374, 122, 122, 122, 122, 121, /* 800 */ 121, 120, 120, 120, 119, 116, 444, 302, 568, 453, - /* 810 */ 528, 1188, 1189, 1188, 13, 13, 1188, 1189, 1188, 1293, + /* 810 */ 528, 1186, 1187, 1186, 13, 13, 1186, 1187, 1186, 1293, /* 820 */ 463, 1263, 409, 1313, 1313, 1546, 1010, 453, 452, 200, /* 830 */ 299, 71, 71, 1261, 122, 122, 122, 122, 121, 121, - /* 840 */ 120, 120, 120, 119, 116, 444, 125, 126, 80, 1212, - /* 850 */ 1212, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, - /* 860 */ 124, 409, 227, 1069, 1154, 284, 284, 419, 312, 278, - /* 870 */ 278, 285, 285, 1415, 406, 405, 382, 1154, 565, 568, - /* 880 */ 1154, 1191, 565, 1594, 565, 125, 126, 80, 1212, 1212, + /* 840 */ 120, 120, 120, 119, 116, 444, 125, 126, 80, 1210, + /* 850 */ 1210, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, + /* 860 */ 124, 409, 227, 1069, 1152, 284, 284, 419, 312, 278, + /* 870 */ 278, 285, 285, 1415, 406, 405, 382, 1152, 565, 568, + /* 880 */ 1152, 1189, 565, 1592, 565, 125, 126, 80, 1210, 1210, /* 890 */ 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, 124, /* 900 */ 453, 1476, 13, 13, 1530, 122, 122, 122, 122, 121, /* 910 */ 121, 120, 120, 120, 119, 116, 444, 201, 568, 354, - /* 920 */ 1580, 574, 2, 1241, 838, 839, 840, 1556, 317, 1207, - /* 930 */ 146, 6, 409, 255, 254, 253, 206, 1323, 9, 1191, + /* 920 */ 1578, 574, 2, 1241, 838, 839, 840, 1554, 317, 1205, + /* 930 */ 146, 6, 409, 255, 254, 253, 206, 1323, 9, 1189, /* 940 */ 262, 71, 71, 424, 122, 122, 122, 122, 121, 121, - /* 950 */ 120, 120, 120, 119, 116, 444, 125, 126, 80, 1212, - /* 960 */ 1212, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, - /* 970 */ 124, 568, 284, 284, 568, 1208, 409, 573, 313, 1241, - /* 980 */ 349, 1292, 352, 419, 317, 565, 146, 491, 525, 1637, + /* 950 */ 120, 120, 120, 119, 116, 444, 125, 126, 80, 1210, + /* 960 */ 1210, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, + /* 970 */ 124, 568, 284, 284, 568, 1206, 409, 573, 313, 1241, + /* 980 */ 349, 1292, 352, 419, 317, 565, 146, 491, 525, 1635, /* 990 */ 395, 371, 491, 1323, 70, 70, 1291, 71, 71, 240, - /* 1000 */ 1321, 104, 80, 1212, 1212, 1047, 1050, 1037, 1037, 123, + /* 1000 */ 1321, 104, 80, 1210, 1210, 1047, 1050, 1037, 1037, 123, /* 1010 */ 123, 124, 124, 124, 124, 122, 122, 122, 122, 121, /* 1020 */ 121, 120, 120, 120, 119, 116, 444, 1110, 284, 284, - /* 1030 */ 428, 448, 1519, 1208, 439, 284, 284, 1483, 1348, 311, + /* 1030 */ 428, 448, 1519, 1206, 439, 284, 284, 1483, 1348, 311, /* 1040 */ 474, 565, 1111, 969, 491, 491, 217, 1259, 565, 1532, /* 1050 */ 568, 970, 207, 568, 1024, 240, 383, 1112, 519, 122, /* 1060 */ 122, 122, 122, 121, 121, 120, 120, 120, 119, 116, @@ -168419,29 +169924,29 @@ static const YYACTIONTYPE yy_action[] = { /* 1080 */ 1489, 568, 284, 284, 97, 526, 491, 448, 911, 1322, /* 1090 */ 1318, 545, 409, 284, 284, 565, 151, 209, 1489, 1491, /* 1100 */ 262, 450, 55, 55, 56, 56, 565, 1014, 1014, 1016, - /* 1110 */ 443, 332, 409, 527, 12, 295, 125, 126, 80, 1212, - /* 1120 */ 1212, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, - /* 1130 */ 124, 347, 409, 862, 1528, 1208, 125, 126, 80, 1212, - /* 1140 */ 1212, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, - /* 1150 */ 124, 1133, 1635, 474, 1635, 371, 125, 114, 80, 1212, - /* 1160 */ 1212, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, + /* 1110 */ 443, 332, 409, 527, 12, 295, 125, 126, 80, 1210, + /* 1120 */ 1210, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, + /* 1130 */ 124, 347, 409, 862, 1528, 1206, 125, 126, 80, 1210, + /* 1140 */ 1210, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, + /* 1150 */ 124, 1133, 1633, 474, 1633, 371, 125, 114, 80, 1210, + /* 1160 */ 1210, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, /* 1170 */ 124, 1489, 329, 474, 331, 122, 122, 122, 122, 121, /* 1180 */ 121, 120, 120, 120, 119, 116, 444, 203, 1415, 568, - /* 1190 */ 1290, 862, 464, 1208, 436, 122, 122, 122, 122, 121, - /* 1200 */ 121, 120, 120, 120, 119, 116, 444, 553, 1133, 1636, - /* 1210 */ 539, 1636, 15, 15, 890, 122, 122, 122, 122, 121, + /* 1190 */ 1290, 862, 464, 1206, 436, 122, 122, 122, 122, 121, + /* 1200 */ 121, 120, 120, 120, 119, 116, 444, 553, 1133, 1634, + /* 1210 */ 539, 1634, 15, 15, 890, 122, 122, 122, 122, 121, /* 1220 */ 121, 120, 120, 120, 119, 116, 444, 568, 298, 538, - /* 1230 */ 1131, 1415, 1553, 1554, 1327, 409, 6, 6, 1165, 1264, + /* 1230 */ 1131, 1415, 1552, 1553, 1327, 409, 6, 6, 1163, 1264, /* 1240 */ 415, 320, 284, 284, 1415, 508, 565, 525, 300, 457, /* 1250 */ 43, 43, 568, 891, 12, 565, 330, 478, 425, 407, - /* 1260 */ 126, 80, 1212, 1212, 1047, 1050, 1037, 1037, 123, 123, - /* 1270 */ 124, 124, 124, 124, 568, 57, 57, 288, 1188, 1415, - /* 1280 */ 496, 458, 392, 392, 391, 273, 389, 1131, 1552, 847, - /* 1290 */ 1165, 407, 6, 568, 321, 1154, 470, 44, 44, 1551, - /* 1300 */ 1110, 426, 234, 6, 323, 256, 540, 256, 1154, 431, - /* 1310 */ 568, 1154, 322, 17, 487, 1111, 58, 58, 122, 122, + /* 1260 */ 126, 80, 1210, 1210, 1047, 1050, 1037, 1037, 123, 123, + /* 1270 */ 124, 124, 124, 124, 568, 57, 57, 288, 1186, 1415, + /* 1280 */ 496, 458, 392, 392, 391, 273, 389, 1131, 1551, 847, + /* 1290 */ 1163, 407, 6, 568, 321, 1152, 470, 44, 44, 1550, + /* 1300 */ 1110, 426, 234, 6, 323, 256, 540, 256, 1152, 431, + /* 1310 */ 568, 1152, 322, 17, 487, 1111, 58, 58, 122, 122, /* 1320 */ 122, 122, 121, 121, 120, 120, 120, 119, 116, 444, - /* 1330 */ 1112, 216, 481, 59, 59, 1188, 1189, 1188, 111, 560, + /* 1330 */ 1112, 216, 481, 59, 59, 1186, 1187, 1186, 111, 560, /* 1340 */ 324, 4, 236, 456, 526, 568, 237, 456, 568, 437, /* 1350 */ 168, 556, 420, 141, 479, 563, 568, 293, 568, 1091, /* 1360 */ 568, 293, 568, 1091, 531, 568, 870, 8, 60, 60, @@ -168455,7 +169960,7 @@ static const YYACTIONTYPE yy_action[] = { /* 1440 */ 1014, 132, 132, 67, 67, 568, 467, 568, 930, 471, /* 1450 */ 1360, 283, 226, 929, 315, 1359, 407, 568, 459, 407, /* 1460 */ 1014, 1014, 1016, 239, 407, 86, 213, 1346, 52, 52, - /* 1470 */ 68, 68, 1014, 1014, 1016, 1017, 27, 1579, 1176, 447, + /* 1470 */ 68, 68, 1014, 1014, 1016, 1017, 27, 1577, 1174, 447, /* 1480 */ 69, 69, 288, 97, 108, 1535, 106, 392, 392, 391, /* 1490 */ 273, 389, 568, 877, 847, 881, 568, 111, 560, 466, /* 1500 */ 4, 568, 152, 30, 38, 568, 1128, 234, 396, 323, @@ -168464,7 +169969,7 @@ static const YYACTIONTYPE yy_action[] = { /* 1530 */ 568, 289, 1508, 568, 31, 1507, 568, 445, 338, 483, /* 1540 */ 100, 54, 54, 344, 72, 72, 296, 236, 1076, 557, /* 1550 */ 445, 877, 1356, 134, 134, 168, 73, 73, 141, 161, - /* 1560 */ 161, 1568, 557, 535, 568, 319, 568, 348, 536, 1007, + /* 1560 */ 161, 1566, 557, 535, 568, 319, 568, 348, 536, 1007, /* 1570 */ 473, 261, 261, 889, 888, 235, 535, 568, 1024, 568, /* 1580 */ 475, 534, 261, 367, 109, 109, 521, 136, 136, 130, /* 1590 */ 130, 1024, 110, 366, 445, 569, 445, 109, 109, 1014, @@ -168472,7 +169977,7 @@ static const YYACTIONTYPE yy_action[] = { /* 1610 */ 410, 351, 1014, 568, 353, 316, 559, 568, 343, 568, /* 1620 */ 100, 497, 357, 258, 100, 896, 897, 140, 140, 355, /* 1630 */ 1306, 1014, 1014, 1016, 1017, 27, 139, 139, 362, 451, - /* 1640 */ 137, 137, 138, 138, 1014, 1014, 1016, 1017, 27, 1176, + /* 1640 */ 137, 137, 138, 138, 1014, 1014, 1016, 1017, 27, 1174, /* 1650 */ 447, 568, 372, 288, 111, 560, 1018, 4, 392, 392, /* 1660 */ 391, 273, 389, 568, 1137, 847, 568, 1072, 568, 258, /* 1670 */ 492, 563, 568, 211, 75, 75, 555, 960, 234, 261, @@ -168480,44 +169985,44 @@ static const YYACTIONTYPE yy_action[] = { /* 1690 */ 74, 42, 42, 1369, 445, 48, 48, 1414, 563, 972, /* 1700 */ 973, 1088, 1087, 1088, 1087, 860, 557, 150, 928, 1342, /* 1710 */ 113, 1354, 554, 1419, 1018, 1271, 1262, 1250, 236, 1249, - /* 1720 */ 1251, 445, 1587, 1339, 308, 276, 168, 309, 11, 141, + /* 1720 */ 1251, 445, 1585, 1339, 308, 276, 168, 309, 11, 141, /* 1730 */ 393, 310, 232, 557, 1401, 1024, 335, 291, 1396, 219, /* 1740 */ 336, 109, 109, 934, 297, 1406, 235, 341, 477, 110, /* 1750 */ 502, 445, 569, 445, 1389, 1405, 1014, 400, 1289, 365, /* 1760 */ 223, 1480, 1024, 1479, 1351, 1352, 1350, 1349, 109, 109, - /* 1770 */ 204, 1590, 1228, 558, 265, 218, 110, 205, 445, 569, + /* 1770 */ 204, 1588, 1226, 558, 265, 218, 110, 205, 445, 569, /* 1780 */ 445, 410, 387, 1014, 1527, 179, 316, 559, 1014, 1014, - /* 1790 */ 1016, 1017, 27, 230, 1525, 1225, 79, 560, 85, 4, + /* 1790 */ 1016, 1017, 27, 230, 1525, 1223, 79, 560, 85, 4, /* 1800 */ 418, 215, 548, 81, 84, 188, 1402, 173, 181, 461, /* 1810 */ 451, 35, 462, 563, 183, 1014, 1014, 1016, 1017, 27, /* 1820 */ 184, 1485, 185, 186, 495, 242, 98, 398, 1408, 36, /* 1830 */ 1407, 484, 91, 469, 401, 1410, 445, 192, 1474, 246, /* 1840 */ 1496, 490, 346, 277, 248, 196, 493, 511, 557, 350, /* 1850 */ 1252, 249, 250, 403, 1309, 1308, 111, 560, 432, 4, - /* 1860 */ 1307, 1300, 93, 1604, 881, 1603, 224, 404, 434, 520, - /* 1870 */ 263, 435, 1573, 563, 1279, 1278, 364, 1024, 306, 1277, - /* 1880 */ 264, 1602, 1559, 109, 109, 370, 1299, 307, 1558, 438, + /* 1860 */ 1307, 1300, 93, 1602, 881, 1601, 224, 404, 434, 520, + /* 1870 */ 263, 435, 1571, 563, 1279, 1278, 364, 1024, 306, 1277, + /* 1880 */ 264, 1600, 1557, 109, 109, 370, 1299, 307, 1556, 438, /* 1890 */ 128, 110, 1374, 445, 569, 445, 445, 546, 1014, 10, /* 1900 */ 1461, 105, 381, 1373, 34, 571, 99, 1332, 557, 314, - /* 1910 */ 1182, 530, 272, 274, 379, 210, 1331, 547, 385, 386, + /* 1910 */ 1180, 530, 272, 274, 379, 210, 1331, 547, 385, 386, /* 1920 */ 275, 572, 1247, 1242, 411, 412, 1512, 165, 178, 1513, /* 1930 */ 1014, 1014, 1016, 1017, 27, 1511, 1510, 1024, 78, 147, /* 1940 */ 166, 220, 221, 109, 109, 834, 304, 167, 446, 212, /* 1950 */ 318, 110, 231, 445, 569, 445, 144, 1086, 1014, 1084, - /* 1960 */ 326, 180, 169, 1207, 182, 334, 238, 913, 241, 1100, + /* 1960 */ 326, 180, 169, 1205, 182, 334, 238, 913, 241, 1100, /* 1970 */ 187, 170, 171, 421, 87, 88, 423, 189, 89, 90, /* 1980 */ 172, 1103, 243, 1099, 244, 158, 18, 245, 345, 247, - /* 1990 */ 1014, 1014, 1016, 1017, 27, 261, 1092, 193, 1222, 489, + /* 1990 */ 1014, 1014, 1016, 1017, 27, 261, 1092, 193, 1220, 489, /* 2000 */ 194, 37, 366, 849, 494, 251, 195, 506, 92, 19, /* 2010 */ 498, 358, 20, 503, 879, 361, 94, 892, 305, 159, - /* 2020 */ 513, 39, 95, 1170, 160, 1053, 964, 1139, 96, 174, - /* 2030 */ 1138, 225, 280, 282, 198, 958, 113, 1160, 1156, 260, - /* 2040 */ 21, 22, 23, 1158, 1164, 1163, 1144, 24, 33, 25, + /* 2020 */ 513, 39, 95, 1168, 160, 1053, 964, 1139, 96, 174, + /* 2030 */ 1138, 225, 280, 282, 198, 958, 113, 1158, 1154, 260, + /* 2040 */ 21, 22, 23, 1156, 1162, 1161, 1143, 24, 33, 25, /* 2050 */ 202, 542, 26, 100, 1067, 102, 1054, 103, 7, 1052, /* 2060 */ 1056, 1109, 1057, 1108, 266, 267, 28, 40, 390, 1019, - /* 2070 */ 861, 112, 29, 564, 1178, 1177, 268, 176, 143, 923, + /* 2070 */ 861, 112, 29, 564, 1176, 1175, 268, 176, 143, 923, /* 2080 */ 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, - /* 2090 */ 1238, 1238, 1238, 1238, 269, 1595, + /* 2090 */ 1238, 1238, 1238, 1238, 269, 1593, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 193, 193, 193, 274, 275, 276, 193, 274, 275, 276, @@ -168860,14 +170365,14 @@ static const short yy_reduce_ofst[] = { /* 400 */ 1722, 1723, 1733, 1717, 1724, 1727, 1728, 1725, 1740, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 1641, 1641, 1641, 1469, 1236, 1347, 1236, 1236, 1236, 1469, + /* 0 */ 1639, 1639, 1639, 1469, 1236, 1347, 1236, 1236, 1236, 1469, /* 10 */ 1469, 1469, 1236, 1377, 1377, 1522, 1269, 1236, 1236, 1236, /* 20 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1468, 1236, 1236, - /* 30 */ 1236, 1236, 1557, 1557, 1236, 1236, 1236, 1236, 1236, 1236, + /* 30 */ 1236, 1236, 1555, 1555, 1236, 1236, 1236, 1236, 1236, 1236, /* 40 */ 1236, 1236, 1386, 1236, 1393, 1236, 1236, 1236, 1236, 1236, /* 50 */ 1470, 1471, 1236, 1236, 1236, 1521, 1523, 1486, 1400, 1399, /* 60 */ 1398, 1397, 1504, 1365, 1391, 1384, 1388, 1465, 1466, 1464, - /* 70 */ 1619, 1471, 1470, 1236, 1387, 1433, 1449, 1432, 1236, 1236, + /* 70 */ 1617, 1471, 1470, 1236, 1387, 1433, 1449, 1432, 1236, 1236, /* 80 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, /* 90 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, /* 100 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, @@ -168876,47 +170381,47 @@ static const YYACTIONTYPE yy_default[] = { /* 130 */ 1441, 1448, 1447, 1446, 1455, 1445, 1442, 1435, 1434, 1436, /* 140 */ 1437, 1236, 1236, 1260, 1236, 1236, 1257, 1311, 1236, 1236, /* 150 */ 1236, 1236, 1236, 1541, 1540, 1236, 1438, 1236, 1269, 1427, - /* 160 */ 1426, 1452, 1439, 1451, 1450, 1529, 1593, 1592, 1487, 1236, - /* 170 */ 1236, 1236, 1236, 1236, 1236, 1557, 1236, 1236, 1236, 1236, + /* 160 */ 1426, 1452, 1439, 1451, 1450, 1529, 1591, 1590, 1487, 1236, + /* 170 */ 1236, 1236, 1236, 1236, 1236, 1555, 1236, 1236, 1236, 1236, /* 180 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, /* 190 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1367, - /* 200 */ 1557, 1557, 1236, 1269, 1557, 1557, 1368, 1368, 1265, 1265, + /* 200 */ 1555, 1555, 1236, 1269, 1555, 1555, 1368, 1368, 1265, 1265, /* 210 */ 1371, 1236, 1536, 1338, 1338, 1338, 1338, 1347, 1338, 1236, /* 220 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, /* 230 */ 1236, 1236, 1236, 1236, 1526, 1524, 1236, 1236, 1236, 1236, /* 240 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, /* 250 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, /* 260 */ 1236, 1236, 1236, 1343, 1236, 1236, 1236, 1236, 1236, 1236, - /* 270 */ 1236, 1236, 1236, 1236, 1236, 1586, 1236, 1499, 1325, 1343, - /* 280 */ 1343, 1343, 1343, 1345, 1326, 1324, 1337, 1270, 1243, 1633, - /* 290 */ 1403, 1392, 1344, 1392, 1630, 1390, 1403, 1403, 1390, 1403, - /* 300 */ 1344, 1630, 1286, 1608, 1281, 1377, 1377, 1377, 1367, 1367, - /* 310 */ 1367, 1367, 1371, 1371, 1467, 1344, 1337, 1236, 1633, 1633, - /* 320 */ 1353, 1353, 1632, 1632, 1353, 1487, 1616, 1412, 1314, 1320, - /* 330 */ 1320, 1320, 1320, 1353, 1254, 1390, 1616, 1616, 1390, 1412, - /* 340 */ 1314, 1390, 1314, 1390, 1353, 1254, 1503, 1627, 1353, 1254, + /* 270 */ 1236, 1236, 1236, 1236, 1236, 1584, 1236, 1499, 1325, 1343, + /* 280 */ 1343, 1343, 1343, 1345, 1326, 1324, 1337, 1270, 1243, 1631, + /* 290 */ 1403, 1392, 1344, 1392, 1628, 1390, 1403, 1403, 1390, 1403, + /* 300 */ 1344, 1628, 1286, 1606, 1281, 1377, 1377, 1377, 1367, 1367, + /* 310 */ 1367, 1367, 1371, 1371, 1467, 1344, 1337, 1236, 1631, 1631, + /* 320 */ 1353, 1353, 1630, 1630, 1353, 1487, 1614, 1412, 1314, 1320, + /* 330 */ 1320, 1320, 1320, 1353, 1254, 1390, 1614, 1614, 1390, 1412, + /* 340 */ 1314, 1390, 1314, 1390, 1353, 1254, 1503, 1625, 1353, 1254, /* 350 */ 1477, 1353, 1254, 1353, 1254, 1477, 1312, 1312, 1312, 1301, - /* 360 */ 1236, 1236, 1477, 1312, 1286, 1312, 1301, 1312, 1312, 1575, - /* 370 */ 1236, 1481, 1481, 1477, 1353, 1567, 1567, 1380, 1380, 1385, - /* 380 */ 1371, 1472, 1353, 1236, 1385, 1383, 1381, 1390, 1304, 1589, - /* 390 */ 1589, 1585, 1585, 1585, 1638, 1638, 1536, 1601, 1269, 1269, - /* 400 */ 1269, 1269, 1601, 1288, 1288, 1270, 1270, 1269, 1601, 1236, - /* 410 */ 1236, 1236, 1236, 1236, 1236, 1596, 1236, 1531, 1488, 1357, + /* 360 */ 1236, 1236, 1477, 1312, 1286, 1312, 1301, 1312, 1312, 1573, + /* 370 */ 1236, 1481, 1481, 1477, 1353, 1565, 1565, 1380, 1380, 1385, + /* 380 */ 1371, 1472, 1353, 1236, 1385, 1383, 1381, 1390, 1304, 1587, + /* 390 */ 1587, 1583, 1583, 1583, 1636, 1636, 1536, 1599, 1269, 1269, + /* 400 */ 1269, 1269, 1599, 1288, 1288, 1270, 1270, 1269, 1599, 1236, + /* 410 */ 1236, 1236, 1236, 1236, 1236, 1594, 1236, 1531, 1488, 1357, /* 420 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, /* 430 */ 1236, 1236, 1236, 1236, 1542, 1236, 1236, 1236, 1236, 1236, /* 440 */ 1236, 1236, 1236, 1236, 1236, 1417, 1236, 1239, 1533, 1236, /* 450 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1394, 1395, 1358, /* 460 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1409, 1236, 1236, /* 470 */ 1236, 1404, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, - /* 480 */ 1629, 1236, 1236, 1236, 1236, 1236, 1236, 1502, 1501, 1236, + /* 480 */ 1627, 1236, 1236, 1236, 1236, 1236, 1236, 1502, 1501, 1236, /* 490 */ 1236, 1355, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, /* 500 */ 1236, 1236, 1236, 1236, 1236, 1284, 1236, 1236, 1236, 1236, /* 510 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, /* 520 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1382, /* 530 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, - /* 540 */ 1236, 1236, 1236, 1236, 1572, 1372, 1236, 1236, 1236, 1236, - /* 550 */ 1620, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, - /* 560 */ 1236, 1236, 1236, 1236, 1236, 1612, 1328, 1418, 1236, 1421, + /* 540 */ 1236, 1236, 1236, 1236, 1570, 1372, 1236, 1236, 1236, 1236, + /* 550 */ 1618, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, + /* 560 */ 1236, 1236, 1236, 1236, 1236, 1610, 1328, 1418, 1236, 1421, /* 570 */ 1258, 1236, 1248, 1236, 1236, }; /********** End of lemon-generated parsing tables *****************************/ @@ -169845,100 +171350,100 @@ static const char *const yyRuleName[] = { /* 306 */ "wqitem ::= nm eidlist_opt wqas LP select RP", /* 307 */ "wqlist ::= wqitem", /* 308 */ "wqlist ::= wqlist COMMA wqitem", - /* 309 */ "windowdefn_list ::= windowdefn", - /* 310 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn", - /* 311 */ "windowdefn ::= nm AS LP window RP", - /* 312 */ "window ::= PARTITION BY nexprlist orderby_opt frame_opt", - /* 313 */ "window ::= nm PARTITION BY nexprlist orderby_opt frame_opt", - /* 314 */ "window ::= ORDER BY sortlist frame_opt", - /* 315 */ "window ::= nm ORDER BY sortlist frame_opt", - /* 316 */ "window ::= frame_opt", - /* 317 */ "window ::= nm frame_opt", - /* 318 */ "frame_opt ::=", - /* 319 */ "frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt", - /* 320 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt", - /* 321 */ "range_or_rows ::= RANGE|ROWS|GROUPS", - /* 322 */ "frame_bound_s ::= frame_bound", - /* 323 */ "frame_bound_s ::= UNBOUNDED PRECEDING", - /* 324 */ "frame_bound_e ::= frame_bound", - /* 325 */ "frame_bound_e ::= UNBOUNDED FOLLOWING", - /* 326 */ "frame_bound ::= expr PRECEDING|FOLLOWING", - /* 327 */ "frame_bound ::= CURRENT ROW", - /* 328 */ "frame_exclude_opt ::=", - /* 329 */ "frame_exclude_opt ::= EXCLUDE frame_exclude", - /* 330 */ "frame_exclude ::= NO OTHERS", - /* 331 */ "frame_exclude ::= CURRENT ROW", - /* 332 */ "frame_exclude ::= GROUP|TIES", - /* 333 */ "window_clause ::= WINDOW windowdefn_list", - /* 334 */ "filter_over ::= filter_clause over_clause", - /* 335 */ "filter_over ::= over_clause", - /* 336 */ "filter_over ::= filter_clause", - /* 337 */ "over_clause ::= OVER LP window RP", - /* 338 */ "over_clause ::= OVER nm", - /* 339 */ "filter_clause ::= FILTER LP WHERE expr RP", - /* 340 */ "input ::= cmdlist", - /* 341 */ "cmdlist ::= cmdlist ecmd", - /* 342 */ "cmdlist ::= ecmd", - /* 343 */ "ecmd ::= SEMI", - /* 344 */ "ecmd ::= cmdx SEMI", - /* 345 */ "ecmd ::= explain cmdx SEMI", - /* 346 */ "trans_opt ::=", - /* 347 */ "trans_opt ::= TRANSACTION", - /* 348 */ "trans_opt ::= TRANSACTION nm", - /* 349 */ "savepoint_opt ::= SAVEPOINT", - /* 350 */ "savepoint_opt ::=", - /* 351 */ "cmd ::= create_table create_table_args", - /* 352 */ "table_option_set ::= table_option", - /* 353 */ "columnlist ::= columnlist COMMA columnname carglist", - /* 354 */ "columnlist ::= columnname carglist", - /* 355 */ "nm ::= ID|INDEXED|JOIN_KW", - /* 356 */ "nm ::= STRING", - /* 357 */ "typetoken ::= typename", - /* 358 */ "typename ::= ID|STRING", - /* 359 */ "signed ::= plus_num", - /* 360 */ "signed ::= minus_num", - /* 361 */ "carglist ::= carglist ccons", - /* 362 */ "carglist ::=", - /* 363 */ "ccons ::= NULL onconf", - /* 364 */ "ccons ::= GENERATED ALWAYS AS generated", - /* 365 */ "ccons ::= AS generated", - /* 366 */ "conslist_opt ::= COMMA conslist", - /* 367 */ "conslist ::= conslist tconscomma tcons", - /* 368 */ "conslist ::= tcons", - /* 369 */ "tconscomma ::=", - /* 370 */ "defer_subclause_opt ::= defer_subclause", - /* 371 */ "resolvetype ::= raisetype", - /* 372 */ "selectnowith ::= oneselect", - /* 373 */ "oneselect ::= values", - /* 374 */ "sclp ::= selcollist COMMA", - /* 375 */ "as ::= ID|STRING", - /* 376 */ "indexed_opt ::= indexed_by", - /* 377 */ "returning ::=", - /* 378 */ "expr ::= term", - /* 379 */ "likeop ::= LIKE_KW|MATCH", - /* 380 */ "case_operand ::= expr", - /* 381 */ "exprlist ::= nexprlist", - /* 382 */ "nmnum ::= plus_num", - /* 383 */ "nmnum ::= nm", - /* 384 */ "nmnum ::= ON", - /* 385 */ "nmnum ::= DELETE", - /* 386 */ "nmnum ::= DEFAULT", - /* 387 */ "plus_num ::= INTEGER|FLOAT", - /* 388 */ "foreach_clause ::=", - /* 389 */ "foreach_clause ::= FOR EACH ROW", - /* 390 */ "trnm ::= nm", - /* 391 */ "tridxby ::=", - /* 392 */ "database_kw_opt ::= DATABASE", - /* 393 */ "database_kw_opt ::=", - /* 394 */ "kwcolumn_opt ::=", - /* 395 */ "kwcolumn_opt ::= COLUMNKW", - /* 396 */ "vtabarglist ::= vtabarg", - /* 397 */ "vtabarglist ::= vtabarglist COMMA vtabarg", - /* 398 */ "vtabarg ::= vtabarg vtabargtoken", - /* 399 */ "anylist ::=", - /* 400 */ "anylist ::= anylist LP anylist RP", - /* 401 */ "anylist ::= anylist ANY", - /* 402 */ "with ::=", + /* 309 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn", + /* 310 */ "windowdefn ::= nm AS LP window RP", + /* 311 */ "window ::= PARTITION BY nexprlist orderby_opt frame_opt", + /* 312 */ "window ::= nm PARTITION BY nexprlist orderby_opt frame_opt", + /* 313 */ "window ::= ORDER BY sortlist frame_opt", + /* 314 */ "window ::= nm ORDER BY sortlist frame_opt", + /* 315 */ "window ::= nm frame_opt", + /* 316 */ "frame_opt ::=", + /* 317 */ "frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt", + /* 318 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt", + /* 319 */ "range_or_rows ::= RANGE|ROWS|GROUPS", + /* 320 */ "frame_bound_s ::= frame_bound", + /* 321 */ "frame_bound_s ::= UNBOUNDED PRECEDING", + /* 322 */ "frame_bound_e ::= frame_bound", + /* 323 */ "frame_bound_e ::= UNBOUNDED FOLLOWING", + /* 324 */ "frame_bound ::= expr PRECEDING|FOLLOWING", + /* 325 */ "frame_bound ::= CURRENT ROW", + /* 326 */ "frame_exclude_opt ::=", + /* 327 */ "frame_exclude_opt ::= EXCLUDE frame_exclude", + /* 328 */ "frame_exclude ::= NO OTHERS", + /* 329 */ "frame_exclude ::= CURRENT ROW", + /* 330 */ "frame_exclude ::= GROUP|TIES", + /* 331 */ "window_clause ::= WINDOW windowdefn_list", + /* 332 */ "filter_over ::= filter_clause over_clause", + /* 333 */ "filter_over ::= over_clause", + /* 334 */ "filter_over ::= filter_clause", + /* 335 */ "over_clause ::= OVER LP window RP", + /* 336 */ "over_clause ::= OVER nm", + /* 337 */ "filter_clause ::= FILTER LP WHERE expr RP", + /* 338 */ "input ::= cmdlist", + /* 339 */ "cmdlist ::= cmdlist ecmd", + /* 340 */ "cmdlist ::= ecmd", + /* 341 */ "ecmd ::= SEMI", + /* 342 */ "ecmd ::= cmdx SEMI", + /* 343 */ "ecmd ::= explain cmdx SEMI", + /* 344 */ "trans_opt ::=", + /* 345 */ "trans_opt ::= TRANSACTION", + /* 346 */ "trans_opt ::= TRANSACTION nm", + /* 347 */ "savepoint_opt ::= SAVEPOINT", + /* 348 */ "savepoint_opt ::=", + /* 349 */ "cmd ::= create_table create_table_args", + /* 350 */ "table_option_set ::= table_option", + /* 351 */ "columnlist ::= columnlist COMMA columnname carglist", + /* 352 */ "columnlist ::= columnname carglist", + /* 353 */ "nm ::= ID|INDEXED|JOIN_KW", + /* 354 */ "nm ::= STRING", + /* 355 */ "typetoken ::= typename", + /* 356 */ "typename ::= ID|STRING", + /* 357 */ "signed ::= plus_num", + /* 358 */ "signed ::= minus_num", + /* 359 */ "carglist ::= carglist ccons", + /* 360 */ "carglist ::=", + /* 361 */ "ccons ::= NULL onconf", + /* 362 */ "ccons ::= GENERATED ALWAYS AS generated", + /* 363 */ "ccons ::= AS generated", + /* 364 */ "conslist_opt ::= COMMA conslist", + /* 365 */ "conslist ::= conslist tconscomma tcons", + /* 366 */ "conslist ::= tcons", + /* 367 */ "tconscomma ::=", + /* 368 */ "defer_subclause_opt ::= defer_subclause", + /* 369 */ "resolvetype ::= raisetype", + /* 370 */ "selectnowith ::= oneselect", + /* 371 */ "oneselect ::= values", + /* 372 */ "sclp ::= selcollist COMMA", + /* 373 */ "as ::= ID|STRING", + /* 374 */ "indexed_opt ::= indexed_by", + /* 375 */ "returning ::=", + /* 376 */ "expr ::= term", + /* 377 */ "likeop ::= LIKE_KW|MATCH", + /* 378 */ "case_operand ::= expr", + /* 379 */ "exprlist ::= nexprlist", + /* 380 */ "nmnum ::= plus_num", + /* 381 */ "nmnum ::= nm", + /* 382 */ "nmnum ::= ON", + /* 383 */ "nmnum ::= DELETE", + /* 384 */ "nmnum ::= DEFAULT", + /* 385 */ "plus_num ::= INTEGER|FLOAT", + /* 386 */ "foreach_clause ::=", + /* 387 */ "foreach_clause ::= FOR EACH ROW", + /* 388 */ "trnm ::= nm", + /* 389 */ "tridxby ::=", + /* 390 */ "database_kw_opt ::= DATABASE", + /* 391 */ "database_kw_opt ::=", + /* 392 */ "kwcolumn_opt ::=", + /* 393 */ "kwcolumn_opt ::= COLUMNKW", + /* 394 */ "vtabarglist ::= vtabarg", + /* 395 */ "vtabarglist ::= vtabarglist COMMA vtabarg", + /* 396 */ "vtabarg ::= vtabarg vtabargtoken", + /* 397 */ "anylist ::=", + /* 398 */ "anylist ::= anylist LP anylist RP", + /* 399 */ "anylist ::= anylist ANY", + /* 400 */ "with ::=", + /* 401 */ "windowdefn_list ::= windowdefn", + /* 402 */ "window ::= frame_opt", }; #endif /* NDEBUG */ @@ -170754,100 +172259,100 @@ static const YYCODETYPE yyRuleInfoLhs[] = { 304, /* (306) wqitem ::= nm eidlist_opt wqas LP select RP */ 241, /* (307) wqlist ::= wqitem */ 241, /* (308) wqlist ::= wqlist COMMA wqitem */ - 306, /* (309) windowdefn_list ::= windowdefn */ - 306, /* (310) windowdefn_list ::= windowdefn_list COMMA windowdefn */ - 307, /* (311) windowdefn ::= nm AS LP window RP */ - 308, /* (312) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ - 308, /* (313) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ - 308, /* (314) window ::= ORDER BY sortlist frame_opt */ - 308, /* (315) window ::= nm ORDER BY sortlist frame_opt */ - 308, /* (316) window ::= frame_opt */ - 308, /* (317) window ::= nm frame_opt */ - 309, /* (318) frame_opt ::= */ - 309, /* (319) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ - 309, /* (320) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ - 313, /* (321) range_or_rows ::= RANGE|ROWS|GROUPS */ - 315, /* (322) frame_bound_s ::= frame_bound */ - 315, /* (323) frame_bound_s ::= UNBOUNDED PRECEDING */ - 316, /* (324) frame_bound_e ::= frame_bound */ - 316, /* (325) frame_bound_e ::= UNBOUNDED FOLLOWING */ - 314, /* (326) frame_bound ::= expr PRECEDING|FOLLOWING */ - 314, /* (327) frame_bound ::= CURRENT ROW */ - 317, /* (328) frame_exclude_opt ::= */ - 317, /* (329) frame_exclude_opt ::= EXCLUDE frame_exclude */ - 318, /* (330) frame_exclude ::= NO OTHERS */ - 318, /* (331) frame_exclude ::= CURRENT ROW */ - 318, /* (332) frame_exclude ::= GROUP|TIES */ - 251, /* (333) window_clause ::= WINDOW windowdefn_list */ - 273, /* (334) filter_over ::= filter_clause over_clause */ - 273, /* (335) filter_over ::= over_clause */ - 273, /* (336) filter_over ::= filter_clause */ - 312, /* (337) over_clause ::= OVER LP window RP */ - 312, /* (338) over_clause ::= OVER nm */ - 311, /* (339) filter_clause ::= FILTER LP WHERE expr RP */ - 185, /* (340) input ::= cmdlist */ - 186, /* (341) cmdlist ::= cmdlist ecmd */ - 186, /* (342) cmdlist ::= ecmd */ - 187, /* (343) ecmd ::= SEMI */ - 187, /* (344) ecmd ::= cmdx SEMI */ - 187, /* (345) ecmd ::= explain cmdx SEMI */ - 192, /* (346) trans_opt ::= */ - 192, /* (347) trans_opt ::= TRANSACTION */ - 192, /* (348) trans_opt ::= TRANSACTION nm */ - 194, /* (349) savepoint_opt ::= SAVEPOINT */ - 194, /* (350) savepoint_opt ::= */ - 190, /* (351) cmd ::= create_table create_table_args */ - 203, /* (352) table_option_set ::= table_option */ - 201, /* (353) columnlist ::= columnlist COMMA columnname carglist */ - 201, /* (354) columnlist ::= columnname carglist */ - 193, /* (355) nm ::= ID|INDEXED|JOIN_KW */ - 193, /* (356) nm ::= STRING */ - 208, /* (357) typetoken ::= typename */ - 209, /* (358) typename ::= ID|STRING */ - 210, /* (359) signed ::= plus_num */ - 210, /* (360) signed ::= minus_num */ - 207, /* (361) carglist ::= carglist ccons */ - 207, /* (362) carglist ::= */ - 215, /* (363) ccons ::= NULL onconf */ - 215, /* (364) ccons ::= GENERATED ALWAYS AS generated */ - 215, /* (365) ccons ::= AS generated */ - 202, /* (366) conslist_opt ::= COMMA conslist */ - 228, /* (367) conslist ::= conslist tconscomma tcons */ - 228, /* (368) conslist ::= tcons */ - 229, /* (369) tconscomma ::= */ - 233, /* (370) defer_subclause_opt ::= defer_subclause */ - 235, /* (371) resolvetype ::= raisetype */ - 239, /* (372) selectnowith ::= oneselect */ - 240, /* (373) oneselect ::= values */ - 254, /* (374) sclp ::= selcollist COMMA */ - 255, /* (375) as ::= ID|STRING */ - 264, /* (376) indexed_opt ::= indexed_by */ - 272, /* (377) returning ::= */ - 217, /* (378) expr ::= term */ - 274, /* (379) likeop ::= LIKE_KW|MATCH */ - 278, /* (380) case_operand ::= expr */ - 261, /* (381) exprlist ::= nexprlist */ - 284, /* (382) nmnum ::= plus_num */ - 284, /* (383) nmnum ::= nm */ - 284, /* (384) nmnum ::= ON */ - 284, /* (385) nmnum ::= DELETE */ - 284, /* (386) nmnum ::= DEFAULT */ - 211, /* (387) plus_num ::= INTEGER|FLOAT */ - 289, /* (388) foreach_clause ::= */ - 289, /* (389) foreach_clause ::= FOR EACH ROW */ - 292, /* (390) trnm ::= nm */ - 293, /* (391) tridxby ::= */ - 294, /* (392) database_kw_opt ::= DATABASE */ - 294, /* (393) database_kw_opt ::= */ - 297, /* (394) kwcolumn_opt ::= */ - 297, /* (395) kwcolumn_opt ::= COLUMNKW */ - 299, /* (396) vtabarglist ::= vtabarg */ - 299, /* (397) vtabarglist ::= vtabarglist COMMA vtabarg */ - 300, /* (398) vtabarg ::= vtabarg vtabargtoken */ - 303, /* (399) anylist ::= */ - 303, /* (400) anylist ::= anylist LP anylist RP */ - 303, /* (401) anylist ::= anylist ANY */ - 266, /* (402) with ::= */ + 306, /* (309) windowdefn_list ::= windowdefn_list COMMA windowdefn */ + 307, /* (310) windowdefn ::= nm AS LP window RP */ + 308, /* (311) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ + 308, /* (312) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ + 308, /* (313) window ::= ORDER BY sortlist frame_opt */ + 308, /* (314) window ::= nm ORDER BY sortlist frame_opt */ + 308, /* (315) window ::= nm frame_opt */ + 309, /* (316) frame_opt ::= */ + 309, /* (317) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ + 309, /* (318) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ + 313, /* (319) range_or_rows ::= RANGE|ROWS|GROUPS */ + 315, /* (320) frame_bound_s ::= frame_bound */ + 315, /* (321) frame_bound_s ::= UNBOUNDED PRECEDING */ + 316, /* (322) frame_bound_e ::= frame_bound */ + 316, /* (323) frame_bound_e ::= UNBOUNDED FOLLOWING */ + 314, /* (324) frame_bound ::= expr PRECEDING|FOLLOWING */ + 314, /* (325) frame_bound ::= CURRENT ROW */ + 317, /* (326) frame_exclude_opt ::= */ + 317, /* (327) frame_exclude_opt ::= EXCLUDE frame_exclude */ + 318, /* (328) frame_exclude ::= NO OTHERS */ + 318, /* (329) frame_exclude ::= CURRENT ROW */ + 318, /* (330) frame_exclude ::= GROUP|TIES */ + 251, /* (331) window_clause ::= WINDOW windowdefn_list */ + 273, /* (332) filter_over ::= filter_clause over_clause */ + 273, /* (333) filter_over ::= over_clause */ + 273, /* (334) filter_over ::= filter_clause */ + 312, /* (335) over_clause ::= OVER LP window RP */ + 312, /* (336) over_clause ::= OVER nm */ + 311, /* (337) filter_clause ::= FILTER LP WHERE expr RP */ + 185, /* (338) input ::= cmdlist */ + 186, /* (339) cmdlist ::= cmdlist ecmd */ + 186, /* (340) cmdlist ::= ecmd */ + 187, /* (341) ecmd ::= SEMI */ + 187, /* (342) ecmd ::= cmdx SEMI */ + 187, /* (343) ecmd ::= explain cmdx SEMI */ + 192, /* (344) trans_opt ::= */ + 192, /* (345) trans_opt ::= TRANSACTION */ + 192, /* (346) trans_opt ::= TRANSACTION nm */ + 194, /* (347) savepoint_opt ::= SAVEPOINT */ + 194, /* (348) savepoint_opt ::= */ + 190, /* (349) cmd ::= create_table create_table_args */ + 203, /* (350) table_option_set ::= table_option */ + 201, /* (351) columnlist ::= columnlist COMMA columnname carglist */ + 201, /* (352) columnlist ::= columnname carglist */ + 193, /* (353) nm ::= ID|INDEXED|JOIN_KW */ + 193, /* (354) nm ::= STRING */ + 208, /* (355) typetoken ::= typename */ + 209, /* (356) typename ::= ID|STRING */ + 210, /* (357) signed ::= plus_num */ + 210, /* (358) signed ::= minus_num */ + 207, /* (359) carglist ::= carglist ccons */ + 207, /* (360) carglist ::= */ + 215, /* (361) ccons ::= NULL onconf */ + 215, /* (362) ccons ::= GENERATED ALWAYS AS generated */ + 215, /* (363) ccons ::= AS generated */ + 202, /* (364) conslist_opt ::= COMMA conslist */ + 228, /* (365) conslist ::= conslist tconscomma tcons */ + 228, /* (366) conslist ::= tcons */ + 229, /* (367) tconscomma ::= */ + 233, /* (368) defer_subclause_opt ::= defer_subclause */ + 235, /* (369) resolvetype ::= raisetype */ + 239, /* (370) selectnowith ::= oneselect */ + 240, /* (371) oneselect ::= values */ + 254, /* (372) sclp ::= selcollist COMMA */ + 255, /* (373) as ::= ID|STRING */ + 264, /* (374) indexed_opt ::= indexed_by */ + 272, /* (375) returning ::= */ + 217, /* (376) expr ::= term */ + 274, /* (377) likeop ::= LIKE_KW|MATCH */ + 278, /* (378) case_operand ::= expr */ + 261, /* (379) exprlist ::= nexprlist */ + 284, /* (380) nmnum ::= plus_num */ + 284, /* (381) nmnum ::= nm */ + 284, /* (382) nmnum ::= ON */ + 284, /* (383) nmnum ::= DELETE */ + 284, /* (384) nmnum ::= DEFAULT */ + 211, /* (385) plus_num ::= INTEGER|FLOAT */ + 289, /* (386) foreach_clause ::= */ + 289, /* (387) foreach_clause ::= FOR EACH ROW */ + 292, /* (388) trnm ::= nm */ + 293, /* (389) tridxby ::= */ + 294, /* (390) database_kw_opt ::= DATABASE */ + 294, /* (391) database_kw_opt ::= */ + 297, /* (392) kwcolumn_opt ::= */ + 297, /* (393) kwcolumn_opt ::= COLUMNKW */ + 299, /* (394) vtabarglist ::= vtabarg */ + 299, /* (395) vtabarglist ::= vtabarglist COMMA vtabarg */ + 300, /* (396) vtabarg ::= vtabarg vtabargtoken */ + 303, /* (397) anylist ::= */ + 303, /* (398) anylist ::= anylist LP anylist RP */ + 303, /* (399) anylist ::= anylist ANY */ + 266, /* (400) with ::= */ + 306, /* (401) windowdefn_list ::= windowdefn */ + 308, /* (402) window ::= frame_opt */ }; /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number @@ -171162,100 +172667,100 @@ static const signed char yyRuleInfoNRhs[] = { -6, /* (306) wqitem ::= nm eidlist_opt wqas LP select RP */ -1, /* (307) wqlist ::= wqitem */ -3, /* (308) wqlist ::= wqlist COMMA wqitem */ - -1, /* (309) windowdefn_list ::= windowdefn */ - -3, /* (310) windowdefn_list ::= windowdefn_list COMMA windowdefn */ - -5, /* (311) windowdefn ::= nm AS LP window RP */ - -5, /* (312) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ - -6, /* (313) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ - -4, /* (314) window ::= ORDER BY sortlist frame_opt */ - -5, /* (315) window ::= nm ORDER BY sortlist frame_opt */ - -1, /* (316) window ::= frame_opt */ - -2, /* (317) window ::= nm frame_opt */ - 0, /* (318) frame_opt ::= */ - -3, /* (319) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ - -6, /* (320) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ - -1, /* (321) range_or_rows ::= RANGE|ROWS|GROUPS */ - -1, /* (322) frame_bound_s ::= frame_bound */ - -2, /* (323) frame_bound_s ::= UNBOUNDED PRECEDING */ - -1, /* (324) frame_bound_e ::= frame_bound */ - -2, /* (325) frame_bound_e ::= UNBOUNDED FOLLOWING */ - -2, /* (326) frame_bound ::= expr PRECEDING|FOLLOWING */ - -2, /* (327) frame_bound ::= CURRENT ROW */ - 0, /* (328) frame_exclude_opt ::= */ - -2, /* (329) frame_exclude_opt ::= EXCLUDE frame_exclude */ - -2, /* (330) frame_exclude ::= NO OTHERS */ - -2, /* (331) frame_exclude ::= CURRENT ROW */ - -1, /* (332) frame_exclude ::= GROUP|TIES */ - -2, /* (333) window_clause ::= WINDOW windowdefn_list */ - -2, /* (334) filter_over ::= filter_clause over_clause */ - -1, /* (335) filter_over ::= over_clause */ - -1, /* (336) filter_over ::= filter_clause */ - -4, /* (337) over_clause ::= OVER LP window RP */ - -2, /* (338) over_clause ::= OVER nm */ - -5, /* (339) filter_clause ::= FILTER LP WHERE expr RP */ - -1, /* (340) input ::= cmdlist */ - -2, /* (341) cmdlist ::= cmdlist ecmd */ - -1, /* (342) cmdlist ::= ecmd */ - -1, /* (343) ecmd ::= SEMI */ - -2, /* (344) ecmd ::= cmdx SEMI */ - -3, /* (345) ecmd ::= explain cmdx SEMI */ - 0, /* (346) trans_opt ::= */ - -1, /* (347) trans_opt ::= TRANSACTION */ - -2, /* (348) trans_opt ::= TRANSACTION nm */ - -1, /* (349) savepoint_opt ::= SAVEPOINT */ - 0, /* (350) savepoint_opt ::= */ - -2, /* (351) cmd ::= create_table create_table_args */ - -1, /* (352) table_option_set ::= table_option */ - -4, /* (353) columnlist ::= columnlist COMMA columnname carglist */ - -2, /* (354) columnlist ::= columnname carglist */ - -1, /* (355) nm ::= ID|INDEXED|JOIN_KW */ - -1, /* (356) nm ::= STRING */ - -1, /* (357) typetoken ::= typename */ - -1, /* (358) typename ::= ID|STRING */ - -1, /* (359) signed ::= plus_num */ - -1, /* (360) signed ::= minus_num */ - -2, /* (361) carglist ::= carglist ccons */ - 0, /* (362) carglist ::= */ - -2, /* (363) ccons ::= NULL onconf */ - -4, /* (364) ccons ::= GENERATED ALWAYS AS generated */ - -2, /* (365) ccons ::= AS generated */ - -2, /* (366) conslist_opt ::= COMMA conslist */ - -3, /* (367) conslist ::= conslist tconscomma tcons */ - -1, /* (368) conslist ::= tcons */ - 0, /* (369) tconscomma ::= */ - -1, /* (370) defer_subclause_opt ::= defer_subclause */ - -1, /* (371) resolvetype ::= raisetype */ - -1, /* (372) selectnowith ::= oneselect */ - -1, /* (373) oneselect ::= values */ - -2, /* (374) sclp ::= selcollist COMMA */ - -1, /* (375) as ::= ID|STRING */ - -1, /* (376) indexed_opt ::= indexed_by */ - 0, /* (377) returning ::= */ - -1, /* (378) expr ::= term */ - -1, /* (379) likeop ::= LIKE_KW|MATCH */ - -1, /* (380) case_operand ::= expr */ - -1, /* (381) exprlist ::= nexprlist */ - -1, /* (382) nmnum ::= plus_num */ - -1, /* (383) nmnum ::= nm */ - -1, /* (384) nmnum ::= ON */ - -1, /* (385) nmnum ::= DELETE */ - -1, /* (386) nmnum ::= DEFAULT */ - -1, /* (387) plus_num ::= INTEGER|FLOAT */ - 0, /* (388) foreach_clause ::= */ - -3, /* (389) foreach_clause ::= FOR EACH ROW */ - -1, /* (390) trnm ::= nm */ - 0, /* (391) tridxby ::= */ - -1, /* (392) database_kw_opt ::= DATABASE */ - 0, /* (393) database_kw_opt ::= */ - 0, /* (394) kwcolumn_opt ::= */ - -1, /* (395) kwcolumn_opt ::= COLUMNKW */ - -1, /* (396) vtabarglist ::= vtabarg */ - -3, /* (397) vtabarglist ::= vtabarglist COMMA vtabarg */ - -2, /* (398) vtabarg ::= vtabarg vtabargtoken */ - 0, /* (399) anylist ::= */ - -4, /* (400) anylist ::= anylist LP anylist RP */ - -2, /* (401) anylist ::= anylist ANY */ - 0, /* (402) with ::= */ + -3, /* (309) windowdefn_list ::= windowdefn_list COMMA windowdefn */ + -5, /* (310) windowdefn ::= nm AS LP window RP */ + -5, /* (311) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ + -6, /* (312) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ + -4, /* (313) window ::= ORDER BY sortlist frame_opt */ + -5, /* (314) window ::= nm ORDER BY sortlist frame_opt */ + -2, /* (315) window ::= nm frame_opt */ + 0, /* (316) frame_opt ::= */ + -3, /* (317) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ + -6, /* (318) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ + -1, /* (319) range_or_rows ::= RANGE|ROWS|GROUPS */ + -1, /* (320) frame_bound_s ::= frame_bound */ + -2, /* (321) frame_bound_s ::= UNBOUNDED PRECEDING */ + -1, /* (322) frame_bound_e ::= frame_bound */ + -2, /* (323) frame_bound_e ::= UNBOUNDED FOLLOWING */ + -2, /* (324) frame_bound ::= expr PRECEDING|FOLLOWING */ + -2, /* (325) frame_bound ::= CURRENT ROW */ + 0, /* (326) frame_exclude_opt ::= */ + -2, /* (327) frame_exclude_opt ::= EXCLUDE frame_exclude */ + -2, /* (328) frame_exclude ::= NO OTHERS */ + -2, /* (329) frame_exclude ::= CURRENT ROW */ + -1, /* (330) frame_exclude ::= GROUP|TIES */ + -2, /* (331) window_clause ::= WINDOW windowdefn_list */ + -2, /* (332) filter_over ::= filter_clause over_clause */ + -1, /* (333) filter_over ::= over_clause */ + -1, /* (334) filter_over ::= filter_clause */ + -4, /* (335) over_clause ::= OVER LP window RP */ + -2, /* (336) over_clause ::= OVER nm */ + -5, /* (337) filter_clause ::= FILTER LP WHERE expr RP */ + -1, /* (338) input ::= cmdlist */ + -2, /* (339) cmdlist ::= cmdlist ecmd */ + -1, /* (340) cmdlist ::= ecmd */ + -1, /* (341) ecmd ::= SEMI */ + -2, /* (342) ecmd ::= cmdx SEMI */ + -3, /* (343) ecmd ::= explain cmdx SEMI */ + 0, /* (344) trans_opt ::= */ + -1, /* (345) trans_opt ::= TRANSACTION */ + -2, /* (346) trans_opt ::= TRANSACTION nm */ + -1, /* (347) savepoint_opt ::= SAVEPOINT */ + 0, /* (348) savepoint_opt ::= */ + -2, /* (349) cmd ::= create_table create_table_args */ + -1, /* (350) table_option_set ::= table_option */ + -4, /* (351) columnlist ::= columnlist COMMA columnname carglist */ + -2, /* (352) columnlist ::= columnname carglist */ + -1, /* (353) nm ::= ID|INDEXED|JOIN_KW */ + -1, /* (354) nm ::= STRING */ + -1, /* (355) typetoken ::= typename */ + -1, /* (356) typename ::= ID|STRING */ + -1, /* (357) signed ::= plus_num */ + -1, /* (358) signed ::= minus_num */ + -2, /* (359) carglist ::= carglist ccons */ + 0, /* (360) carglist ::= */ + -2, /* (361) ccons ::= NULL onconf */ + -4, /* (362) ccons ::= GENERATED ALWAYS AS generated */ + -2, /* (363) ccons ::= AS generated */ + -2, /* (364) conslist_opt ::= COMMA conslist */ + -3, /* (365) conslist ::= conslist tconscomma tcons */ + -1, /* (366) conslist ::= tcons */ + 0, /* (367) tconscomma ::= */ + -1, /* (368) defer_subclause_opt ::= defer_subclause */ + -1, /* (369) resolvetype ::= raisetype */ + -1, /* (370) selectnowith ::= oneselect */ + -1, /* (371) oneselect ::= values */ + -2, /* (372) sclp ::= selcollist COMMA */ + -1, /* (373) as ::= ID|STRING */ + -1, /* (374) indexed_opt ::= indexed_by */ + 0, /* (375) returning ::= */ + -1, /* (376) expr ::= term */ + -1, /* (377) likeop ::= LIKE_KW|MATCH */ + -1, /* (378) case_operand ::= expr */ + -1, /* (379) exprlist ::= nexprlist */ + -1, /* (380) nmnum ::= plus_num */ + -1, /* (381) nmnum ::= nm */ + -1, /* (382) nmnum ::= ON */ + -1, /* (383) nmnum ::= DELETE */ + -1, /* (384) nmnum ::= DEFAULT */ + -1, /* (385) plus_num ::= INTEGER|FLOAT */ + 0, /* (386) foreach_clause ::= */ + -3, /* (387) foreach_clause ::= FOR EACH ROW */ + -1, /* (388) trnm ::= nm */ + 0, /* (389) tridxby ::= */ + -1, /* (390) database_kw_opt ::= DATABASE */ + 0, /* (391) database_kw_opt ::= */ + 0, /* (392) kwcolumn_opt ::= */ + -1, /* (393) kwcolumn_opt ::= COLUMNKW */ + -1, /* (394) vtabarglist ::= vtabarg */ + -3, /* (395) vtabarglist ::= vtabarglist COMMA vtabarg */ + -2, /* (396) vtabarg ::= vtabarg vtabargtoken */ + 0, /* (397) anylist ::= */ + -4, /* (398) anylist ::= anylist LP anylist RP */ + -2, /* (399) anylist ::= anylist ANY */ + 0, /* (400) with ::= */ + -1, /* (401) windowdefn_list ::= windowdefn */ + -1, /* (402) window ::= frame_opt */ }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -171298,10 +172803,10 @@ static YYACTIONTYPE yy_reduce( /********** Begin reduce actions **********************************************/ YYMINORTYPE yylhsminor; case 0: /* explain ::= EXPLAIN */ -{ pParse->explain = 1; } +{ if( pParse->pReprepare==0 ) pParse->explain = 1; } break; case 1: /* explain ::= EXPLAIN QUERY PLAN */ -{ pParse->explain = 2; } +{ if( pParse->pReprepare==0 ) pParse->explain = 2; } break; case 2: /* cmdx ::= cmd */ { sqlite3FinishCoding(pParse); } @@ -171315,7 +172820,7 @@ static YYACTIONTYPE yy_reduce( case 5: /* transtype ::= DEFERRED */ case 6: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==6); case 7: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==7); - case 321: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==321); + case 319: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==319); {yymsp[0].minor.yy394 = yymsp[0].major; /*A-overwrites-X*/} break; case 8: /* cmd ::= COMMIT|END trans_opt */ @@ -171611,7 +173116,6 @@ static YYACTIONTYPE yy_reduce( if( p ){ parserDoubleLinkSelect(pParse, p); } - yymsp[0].minor.yy47 = p; /*A-overwrites-X*/ } break; case 88: /* selectnowith ::= selectnowith multiselect_op oneselect */ @@ -171703,14 +173207,17 @@ static YYACTIONTYPE yy_reduce( case 101: /* selcollist ::= sclp scanpt STAR */ { Expr *p = sqlite3Expr(pParse->db, TK_ASTERISK, 0); + sqlite3ExprSetErrorOffset(p, (int)(yymsp[0].minor.yy0.z - pParse->zTail)); yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse, yymsp[-2].minor.yy322, p); } break; case 102: /* selcollist ::= sclp scanpt nm DOT STAR */ { - Expr *pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0); - Expr *pLeft = tokenExpr(pParse, TK_ID, yymsp[-2].minor.yy0); - Expr *pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight); + Expr *pRight, *pLeft, *pDot; + pRight = sqlite3PExpr(pParse, TK_ASTERISK, 0, 0); + sqlite3ExprSetErrorOffset(pRight, (int)(yymsp[0].minor.yy0.z - pParse->zTail)); + pLeft = tokenExpr(pParse, TK_ID, yymsp[-2].minor.yy0); + pDot = sqlite3PExpr(pParse, TK_DOT, pLeft, pRight); yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, pDot); } break; @@ -172604,11 +174111,7 @@ static YYACTIONTYPE yy_reduce( yymsp[-2].minor.yy521 = sqlite3WithAdd(pParse, yymsp[-2].minor.yy521, yymsp[0].minor.yy385); } break; - case 309: /* windowdefn_list ::= windowdefn */ -{ yylhsminor.yy41 = yymsp[0].minor.yy41; } - yymsp[0].minor.yy41 = yylhsminor.yy41; - break; - case 310: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ + case 309: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ { assert( yymsp[0].minor.yy41!=0 ); sqlite3WindowChain(pParse, yymsp[0].minor.yy41, yymsp[-2].minor.yy41); @@ -172617,7 +174120,7 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy41 = yylhsminor.yy41; break; - case 311: /* windowdefn ::= nm AS LP window RP */ + case 310: /* windowdefn ::= nm AS LP window RP */ { if( ALWAYS(yymsp[-1].minor.yy41) ){ yymsp[-1].minor.yy41->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n); @@ -172626,90 +174129,83 @@ static YYACTIONTYPE yy_reduce( } yymsp[-4].minor.yy41 = yylhsminor.yy41; break; - case 312: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ + case 311: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ { yymsp[-4].minor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, yymsp[-2].minor.yy322, yymsp[-1].minor.yy322, 0); } break; - case 313: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ + case 312: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ { yylhsminor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, yymsp[-2].minor.yy322, yymsp[-1].minor.yy322, &yymsp[-5].minor.yy0); } yymsp[-5].minor.yy41 = yylhsminor.yy41; break; - case 314: /* window ::= ORDER BY sortlist frame_opt */ + case 313: /* window ::= ORDER BY sortlist frame_opt */ { yymsp[-3].minor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, 0, yymsp[-1].minor.yy322, 0); } break; - case 315: /* window ::= nm ORDER BY sortlist frame_opt */ + case 314: /* window ::= nm ORDER BY sortlist frame_opt */ { yylhsminor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, 0, yymsp[-1].minor.yy322, &yymsp[-4].minor.yy0); } yymsp[-4].minor.yy41 = yylhsminor.yy41; break; - case 316: /* window ::= frame_opt */ - case 335: /* filter_over ::= over_clause */ yytestcase(yyruleno==335); -{ - yylhsminor.yy41 = yymsp[0].minor.yy41; -} - yymsp[0].minor.yy41 = yylhsminor.yy41; - break; - case 317: /* window ::= nm frame_opt */ + case 315: /* window ::= nm frame_opt */ { yylhsminor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, 0, 0, &yymsp[-1].minor.yy0); } yymsp[-1].minor.yy41 = yylhsminor.yy41; break; - case 318: /* frame_opt ::= */ + case 316: /* frame_opt ::= */ { yymsp[1].minor.yy41 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0); } break; - case 319: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ + case 317: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ { yylhsminor.yy41 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy394, yymsp[-1].minor.yy595.eType, yymsp[-1].minor.yy595.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy516); } yymsp[-2].minor.yy41 = yylhsminor.yy41; break; - case 320: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ + case 318: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ { yylhsminor.yy41 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy394, yymsp[-3].minor.yy595.eType, yymsp[-3].minor.yy595.pExpr, yymsp[-1].minor.yy595.eType, yymsp[-1].minor.yy595.pExpr, yymsp[0].minor.yy516); } yymsp[-5].minor.yy41 = yylhsminor.yy41; break; - case 322: /* frame_bound_s ::= frame_bound */ - case 324: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==324); + case 320: /* frame_bound_s ::= frame_bound */ + case 322: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==322); {yylhsminor.yy595 = yymsp[0].minor.yy595;} yymsp[0].minor.yy595 = yylhsminor.yy595; break; - case 323: /* frame_bound_s ::= UNBOUNDED PRECEDING */ - case 325: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==325); - case 327: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==327); + case 321: /* frame_bound_s ::= UNBOUNDED PRECEDING */ + case 323: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==323); + case 325: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==325); {yylhsminor.yy595.eType = yymsp[-1].major; yylhsminor.yy595.pExpr = 0;} yymsp[-1].minor.yy595 = yylhsminor.yy595; break; - case 326: /* frame_bound ::= expr PRECEDING|FOLLOWING */ + case 324: /* frame_bound ::= expr PRECEDING|FOLLOWING */ {yylhsminor.yy595.eType = yymsp[0].major; yylhsminor.yy595.pExpr = yymsp[-1].minor.yy528;} yymsp[-1].minor.yy595 = yylhsminor.yy595; break; - case 328: /* frame_exclude_opt ::= */ + case 326: /* frame_exclude_opt ::= */ {yymsp[1].minor.yy516 = 0;} break; - case 329: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ + case 327: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ {yymsp[-1].minor.yy516 = yymsp[0].minor.yy516;} break; - case 330: /* frame_exclude ::= NO OTHERS */ - case 331: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==331); + case 328: /* frame_exclude ::= NO OTHERS */ + case 329: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==329); {yymsp[-1].minor.yy516 = yymsp[-1].major; /*A-overwrites-X*/} break; - case 332: /* frame_exclude ::= GROUP|TIES */ + case 330: /* frame_exclude ::= GROUP|TIES */ {yymsp[0].minor.yy516 = yymsp[0].major; /*A-overwrites-X*/} break; - case 333: /* window_clause ::= WINDOW windowdefn_list */ + case 331: /* window_clause ::= WINDOW windowdefn_list */ { yymsp[-1].minor.yy41 = yymsp[0].minor.yy41; } break; - case 334: /* filter_over ::= filter_clause over_clause */ + case 332: /* filter_over ::= filter_clause over_clause */ { if( yymsp[0].minor.yy41 ){ yymsp[0].minor.yy41->pFilter = yymsp[-1].minor.yy528; @@ -172720,7 +174216,13 @@ static YYACTIONTYPE yy_reduce( } yymsp[-1].minor.yy41 = yylhsminor.yy41; break; - case 336: /* filter_over ::= filter_clause */ + case 333: /* filter_over ::= over_clause */ +{ + yylhsminor.yy41 = yymsp[0].minor.yy41; +} + yymsp[0].minor.yy41 = yylhsminor.yy41; + break; + case 334: /* filter_over ::= filter_clause */ { yylhsminor.yy41 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); if( yylhsminor.yy41 ){ @@ -172732,13 +174234,13 @@ static YYACTIONTYPE yy_reduce( } yymsp[0].minor.yy41 = yylhsminor.yy41; break; - case 337: /* over_clause ::= OVER LP window RP */ + case 335: /* over_clause ::= OVER LP window RP */ { yymsp[-3].minor.yy41 = yymsp[-1].minor.yy41; assert( yymsp[-3].minor.yy41!=0 ); } break; - case 338: /* over_clause ::= OVER nm */ + case 336: /* over_clause ::= OVER nm */ { yymsp[-1].minor.yy41 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); if( yymsp[-1].minor.yy41 ){ @@ -172746,73 +174248,75 @@ static YYACTIONTYPE yy_reduce( } } break; - case 339: /* filter_clause ::= FILTER LP WHERE expr RP */ + case 337: /* filter_clause ::= FILTER LP WHERE expr RP */ { yymsp[-4].minor.yy528 = yymsp[-1].minor.yy528; } break; default: - /* (340) input ::= cmdlist */ yytestcase(yyruleno==340); - /* (341) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==341); - /* (342) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=342); - /* (343) ecmd ::= SEMI */ yytestcase(yyruleno==343); - /* (344) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==344); - /* (345) ecmd ::= explain cmdx SEMI (NEVER REDUCES) */ assert(yyruleno!=345); - /* (346) trans_opt ::= */ yytestcase(yyruleno==346); - /* (347) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==347); - /* (348) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==348); - /* (349) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==349); - /* (350) savepoint_opt ::= */ yytestcase(yyruleno==350); - /* (351) cmd ::= create_table create_table_args */ yytestcase(yyruleno==351); - /* (352) table_option_set ::= table_option (OPTIMIZED OUT) */ assert(yyruleno!=352); - /* (353) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==353); - /* (354) columnlist ::= columnname carglist */ yytestcase(yyruleno==354); - /* (355) nm ::= ID|INDEXED|JOIN_KW */ yytestcase(yyruleno==355); - /* (356) nm ::= STRING */ yytestcase(yyruleno==356); - /* (357) typetoken ::= typename */ yytestcase(yyruleno==357); - /* (358) typename ::= ID|STRING */ yytestcase(yyruleno==358); - /* (359) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=359); - /* (360) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=360); - /* (361) carglist ::= carglist ccons */ yytestcase(yyruleno==361); - /* (362) carglist ::= */ yytestcase(yyruleno==362); - /* (363) ccons ::= NULL onconf */ yytestcase(yyruleno==363); - /* (364) ccons ::= GENERATED ALWAYS AS generated */ yytestcase(yyruleno==364); - /* (365) ccons ::= AS generated */ yytestcase(yyruleno==365); - /* (366) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==366); - /* (367) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==367); - /* (368) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=368); - /* (369) tconscomma ::= */ yytestcase(yyruleno==369); - /* (370) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=370); - /* (371) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=371); - /* (372) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=372); - /* (373) oneselect ::= values */ yytestcase(yyruleno==373); - /* (374) sclp ::= selcollist COMMA */ yytestcase(yyruleno==374); - /* (375) as ::= ID|STRING */ yytestcase(yyruleno==375); - /* (376) indexed_opt ::= indexed_by (OPTIMIZED OUT) */ assert(yyruleno!=376); - /* (377) returning ::= */ yytestcase(yyruleno==377); - /* (378) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=378); - /* (379) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==379); - /* (380) case_operand ::= expr */ yytestcase(yyruleno==380); - /* (381) exprlist ::= nexprlist */ yytestcase(yyruleno==381); - /* (382) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=382); - /* (383) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=383); - /* (384) nmnum ::= ON */ yytestcase(yyruleno==384); - /* (385) nmnum ::= DELETE */ yytestcase(yyruleno==385); - /* (386) nmnum ::= DEFAULT */ yytestcase(yyruleno==386); - /* (387) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==387); - /* (388) foreach_clause ::= */ yytestcase(yyruleno==388); - /* (389) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==389); - /* (390) trnm ::= nm */ yytestcase(yyruleno==390); - /* (391) tridxby ::= */ yytestcase(yyruleno==391); - /* (392) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==392); - /* (393) database_kw_opt ::= */ yytestcase(yyruleno==393); - /* (394) kwcolumn_opt ::= */ yytestcase(yyruleno==394); - /* (395) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==395); - /* (396) vtabarglist ::= vtabarg */ yytestcase(yyruleno==396); - /* (397) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==397); - /* (398) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==398); - /* (399) anylist ::= */ yytestcase(yyruleno==399); - /* (400) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==400); - /* (401) anylist ::= anylist ANY */ yytestcase(yyruleno==401); - /* (402) with ::= */ yytestcase(yyruleno==402); + /* (338) input ::= cmdlist */ yytestcase(yyruleno==338); + /* (339) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==339); + /* (340) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=340); + /* (341) ecmd ::= SEMI */ yytestcase(yyruleno==341); + /* (342) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==342); + /* (343) ecmd ::= explain cmdx SEMI (NEVER REDUCES) */ assert(yyruleno!=343); + /* (344) trans_opt ::= */ yytestcase(yyruleno==344); + /* (345) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==345); + /* (346) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==346); + /* (347) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==347); + /* (348) savepoint_opt ::= */ yytestcase(yyruleno==348); + /* (349) cmd ::= create_table create_table_args */ yytestcase(yyruleno==349); + /* (350) table_option_set ::= table_option (OPTIMIZED OUT) */ assert(yyruleno!=350); + /* (351) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==351); + /* (352) columnlist ::= columnname carglist */ yytestcase(yyruleno==352); + /* (353) nm ::= ID|INDEXED|JOIN_KW */ yytestcase(yyruleno==353); + /* (354) nm ::= STRING */ yytestcase(yyruleno==354); + /* (355) typetoken ::= typename */ yytestcase(yyruleno==355); + /* (356) typename ::= ID|STRING */ yytestcase(yyruleno==356); + /* (357) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=357); + /* (358) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=358); + /* (359) carglist ::= carglist ccons */ yytestcase(yyruleno==359); + /* (360) carglist ::= */ yytestcase(yyruleno==360); + /* (361) ccons ::= NULL onconf */ yytestcase(yyruleno==361); + /* (362) ccons ::= GENERATED ALWAYS AS generated */ yytestcase(yyruleno==362); + /* (363) ccons ::= AS generated */ yytestcase(yyruleno==363); + /* (364) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==364); + /* (365) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==365); + /* (366) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=366); + /* (367) tconscomma ::= */ yytestcase(yyruleno==367); + /* (368) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=368); + /* (369) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=369); + /* (370) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=370); + /* (371) oneselect ::= values */ yytestcase(yyruleno==371); + /* (372) sclp ::= selcollist COMMA */ yytestcase(yyruleno==372); + /* (373) as ::= ID|STRING */ yytestcase(yyruleno==373); + /* (374) indexed_opt ::= indexed_by (OPTIMIZED OUT) */ assert(yyruleno!=374); + /* (375) returning ::= */ yytestcase(yyruleno==375); + /* (376) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=376); + /* (377) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==377); + /* (378) case_operand ::= expr */ yytestcase(yyruleno==378); + /* (379) exprlist ::= nexprlist */ yytestcase(yyruleno==379); + /* (380) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=380); + /* (381) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=381); + /* (382) nmnum ::= ON */ yytestcase(yyruleno==382); + /* (383) nmnum ::= DELETE */ yytestcase(yyruleno==383); + /* (384) nmnum ::= DEFAULT */ yytestcase(yyruleno==384); + /* (385) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==385); + /* (386) foreach_clause ::= */ yytestcase(yyruleno==386); + /* (387) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==387); + /* (388) trnm ::= nm */ yytestcase(yyruleno==388); + /* (389) tridxby ::= */ yytestcase(yyruleno==389); + /* (390) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==390); + /* (391) database_kw_opt ::= */ yytestcase(yyruleno==391); + /* (392) kwcolumn_opt ::= */ yytestcase(yyruleno==392); + /* (393) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==393); + /* (394) vtabarglist ::= vtabarg */ yytestcase(yyruleno==394); + /* (395) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==395); + /* (396) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==396); + /* (397) anylist ::= */ yytestcase(yyruleno==397); + /* (398) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==398); + /* (399) anylist ::= anylist ANY */ yytestcase(yyruleno==399); + /* (400) with ::= */ yytestcase(yyruleno==400); + /* (401) windowdefn_list ::= windowdefn (OPTIMIZED OUT) */ assert(yyruleno!=401); + /* (402) window ::= frame_opt (OPTIMIZED OUT) */ assert(yyruleno!=402); break; /********** End reduce actions ************************************************/ }; @@ -173601,180 +175105,179 @@ static const unsigned char aKWCode[148] = {0, static int keywordCode(const char *z, int n, int *pType){ int i, j; const char *zKW; - if( n>=2 ){ - i = ((charMap(z[0])*4) ^ (charMap(z[n-1])*3) ^ n*1) % 127; - for(i=(int)aKWHash[i]; i>0; i=aKWNext[i]){ - if( aKWLen[i]!=n ) continue; - zKW = &zKWText[aKWOffset[i]]; + assert( n>=2 ); + i = ((charMap(z[0])*4) ^ (charMap(z[n-1])*3) ^ n*1) % 127; + for(i=(int)aKWHash[i]; i>0; i=aKWNext[i]){ + if( aKWLen[i]!=n ) continue; + zKW = &zKWText[aKWOffset[i]]; #ifdef SQLITE_ASCII - if( (z[0]&~0x20)!=zKW[0] ) continue; - if( (z[1]&~0x20)!=zKW[1] ) continue; - j = 2; - while( j=2 ) keywordCode((char*)z, n, &id); return id; } #define SQLITE_N_KEYWORD 147 @@ -174079,7 +175582,7 @@ SQLITE_PRIVATE int sqlite3GetToken(const unsigned char *z, int *tokenType){ testcase( z[0]=='0' ); testcase( z[0]=='1' ); testcase( z[0]=='2' ); testcase( z[0]=='3' ); testcase( z[0]=='4' ); testcase( z[0]=='5' ); testcase( z[0]=='6' ); testcase( z[0]=='7' ); testcase( z[0]=='8' ); - testcase( z[0]=='9' ); + testcase( z[0]=='9' ); testcase( z[0]=='.' ); *tokenType = TK_INTEGER; #ifndef SQLITE_OMIT_HEX_INTEGER if( z[0]=='0' && (z[1]=='x' || z[1]=='X') && sqlite3Isxdigit(z[2]) ){ @@ -174151,7 +175654,8 @@ SQLITE_PRIVATE int sqlite3GetToken(const unsigned char *z, int *tokenType){ return i; } case CC_KYWD0: { - for(i=1; aiClass[z[i]]<=CC_KYWD; i++){} + if( aiClass[z[1]]>CC_KYWD ){ i = 1; break; } + for(i=2; aiClass[z[i]]<=CC_KYWD; i++){} if( IdChar(z[i]) ){ /* This token started out using characters that can appear in keywords, ** but z[i] is a character not allowed within keywords, so this must @@ -174930,12 +176434,6 @@ static int sqlite3TestExtInit(sqlite3 *db){ ** Forward declarations of external module initializer functions ** for modules that need them. */ -#ifdef SQLITE_ENABLE_FTS1 -SQLITE_PRIVATE int sqlite3Fts1Init(sqlite3*); -#endif -#ifdef SQLITE_ENABLE_FTS2 -SQLITE_PRIVATE int sqlite3Fts2Init(sqlite3*); -#endif #ifdef SQLITE_ENABLE_FTS5 SQLITE_PRIVATE int sqlite3Fts5Init(sqlite3*); #endif @@ -174948,12 +176446,6 @@ SQLITE_PRIVATE int sqlite3StmtVtabInit(sqlite3*); ** built-in extensions. */ static int (*const sqlite3BuiltinExtensions[])(sqlite3*) = { -#ifdef SQLITE_ENABLE_FTS1 - sqlite3Fts1Init, -#endif -#ifdef SQLITE_ENABLE_FTS2 - sqlite3Fts2Init, -#endif #ifdef SQLITE_ENABLE_FTS3 sqlite3Fts3Init, #endif @@ -176566,9 +178058,9 @@ static int sqliteDefaultBusyCallback( void *ptr, /* Database connection */ int count /* Number of times table has been busy */ ){ -#if SQLITE_OS_WIN || HAVE_USLEEP +#if SQLITE_OS_WIN || !defined(HAVE_NANOSLEEP) || HAVE_NANOSLEEP /* This case is for systems that have support for sleeping for fractions of - ** a second. Examples: All windows systems, unix systems with usleep() */ + ** a second. Examples: All windows systems, unix systems with nanosleep() */ static const u8 delays[] = { 1, 2, 5, 10, 15, 20, 25, 25, 25, 50, 50, 100 }; static const u8 totals[] = @@ -178206,7 +179698,7 @@ static int openDatabase( ** 0 off off ** ** Legacy behavior is 3 (double-quoted string literals are allowed anywhere) -** and so that is the default. But developers are encouranged to use +** and so that is the default. But developers are encouraged to use ** -DSQLITE_DQS=0 (best) or -DSQLITE_DQS=1 (second choice) if possible. */ #if !defined(SQLITE_DQS) @@ -178741,7 +180233,7 @@ SQLITE_API int sqlite3_table_column_metadata( /* Find the column for which info is requested */ if( zColumnName==0 ){ - /* Query for existance of table only */ + /* Query for existence of table only */ }else{ for(iCol=0; iColnCol; iCol++){ pCol = &pTab->aCol[iCol]; @@ -179061,10 +180553,12 @@ SQLITE_API int sqlite3_test_control(int op, ...){ sqlite3ShowSrcList(0); sqlite3ShowWith(0); sqlite3ShowUpsert(0); +#ifndef SQLITE_OMIT_TRIGGER sqlite3ShowTriggerStep(0); sqlite3ShowTriggerStepList(0); sqlite3ShowTrigger(0); sqlite3ShowTriggerList(0); +#endif #ifndef SQLITE_OMIT_WINDOWFUNC sqlite3ShowWindow(0); sqlite3ShowWinFunc(0); @@ -179181,7 +180675,7 @@ SQLITE_API int sqlite3_test_control(int op, ...){ ** formed and never corrupt. This flag is clear by default, indicating that ** database files might have arbitrary corruption. Setting the flag during ** testing causes certain assert() statements in the code to be activated - ** that demonstrat invariants on well-formed database files. + ** that demonstrate invariants on well-formed database files. */ case SQLITE_TESTCTRL_NEVER_CORRUPT: { sqlite3GlobalConfig.neverCorrupt = va_arg(ap, int); @@ -179335,7 +180829,7 @@ SQLITE_API int sqlite3_test_control(int op, ...){ ** ** op==0 Store the current sqlite3TreeTrace in *ptr ** op==1 Set sqlite3TreeTrace to the value *ptr - ** op==3 Store the current sqlite3WhereTrace in *ptr + ** op==2 Store the current sqlite3WhereTrace in *ptr ** op==3 Set sqlite3WhereTrace to the value *ptr */ case SQLITE_TESTCTRL_TRACEFLAGS: { @@ -179371,6 +180865,23 @@ SQLITE_API int sqlite3_test_control(int op, ...){ break; } +#if !defined(SQLITE_OMIT_WSD) + /* sqlite3_test_control(SQLITE_TESTCTRL_USELONGDOUBLE, int X); + ** + ** X<0 Make no changes to the bUseLongDouble. Just report value. + ** X==0 Disable bUseLongDouble + ** X==1 Enable bUseLongDouble + ** X==2 Set bUseLongDouble to its default value for this platform + */ + case SQLITE_TESTCTRL_USELONGDOUBLE: { + int b = va_arg(ap, int); + if( b==2 ) b = sizeof(LONGDOUBLE_TYPE)>8; + if( b>=0 ) sqlite3Config.bUseLongDouble = b>0; + rc = sqlite3Config.bUseLongDouble!=0; + break; + } +#endif + #if defined(SQLITE_DEBUG) && !defined(SQLITE_OMIT_WSD) /* sqlite3_test_control(SQLITE_TESTCTRL_TUNE, id, *piValue) @@ -179671,7 +181182,7 @@ SQLITE_API int sqlite3_snapshot_get( } /* -** Open a read-transaction on the snapshot idendified by pSnapshot. +** Open a read-transaction on the snapshot identified by pSnapshot. */ SQLITE_API int sqlite3_snapshot_open( sqlite3 *db, @@ -195706,6 +197217,7 @@ static int fts3IncrmergeLoad( for(i=nHeight; i>=0 && rc==SQLITE_OK; i--){ NodeReader reader; + memset(&reader, 0, sizeof(reader)); pNode = &pWriter->aNodeWriter[i]; if( pNode->block.a){ @@ -196576,7 +198088,7 @@ static u64 fts3ChecksumIndex( int rc; u64 cksum = 0; - assert( *pRc==SQLITE_OK ); + if( *pRc ) return 0; memset(&filter, 0, sizeof(filter)); memset(&csr, 0, sizeof(csr)); @@ -199752,25 +201264,51 @@ SQLITE_PRIVATE int sqlite3FtsUnicodeFold(int c, int eRemoveDiacritic){ ** increase for the parser. (Ubuntu14.10 gcc 4.8.4 x64 with -Os). */ static const char jsonIsSpace[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; #define fast_isspace(x) (jsonIsSpace[(unsigned char)x]) +/* +** Characters that are special to JSON. Control charaters, +** '"' and '\\'. +*/ +static const char jsonIsOk[256] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 +}; + + #if !defined(SQLITE_DEBUG) && !defined(SQLITE_COVERAGE_TEST) # define VVA(X) #else @@ -199781,6 +201319,7 @@ static const char jsonIsSpace[] = { typedef struct JsonString JsonString; typedef struct JsonNode JsonNode; typedef struct JsonParse JsonParse; +typedef struct JsonCleanup JsonCleanup; /* An instance of this object represents a JSON string ** under construction. Really, this is a generic string accumulator @@ -199796,16 +201335,26 @@ struct JsonString { char zSpace[100]; /* Initial static space */ }; +/* A deferred cleanup task. A list of JsonCleanup objects might be +** run when the JsonParse object is destroyed. +*/ +struct JsonCleanup { + JsonCleanup *pJCNext; /* Next in a list */ + void (*xOp)(void*); /* Routine to run */ + void *pArg; /* Argument to xOp() */ +}; + /* JSON type values */ -#define JSON_NULL 0 -#define JSON_TRUE 1 -#define JSON_FALSE 2 -#define JSON_INT 3 -#define JSON_REAL 4 -#define JSON_STRING 5 -#define JSON_ARRAY 6 -#define JSON_OBJECT 7 +#define JSON_SUBST 0 /* Special edit node. Uses u.iPrev */ +#define JSON_NULL 1 +#define JSON_TRUE 2 +#define JSON_FALSE 3 +#define JSON_INT 4 +#define JSON_REAL 5 +#define JSON_STRING 6 +#define JSON_ARRAY 7 +#define JSON_OBJECT 8 /* The "subtype" set for JSON values */ #define JSON_SUBTYPE 74 /* Ascii for "J" */ @@ -199814,52 +201363,87 @@ struct JsonString { ** Names of the various JSON types: */ static const char * const jsonType[] = { + "subst", "null", "true", "false", "integer", "real", "text", "array", "object" }; /* Bit values for the JsonNode.jnFlag field */ -#define JNODE_RAW 0x01 /* Content is raw, not JSON encoded */ -#define JNODE_ESCAPE 0x02 /* Content is text with \ escapes */ -#define JNODE_REMOVE 0x04 /* Do not output */ -#define JNODE_REPLACE 0x08 /* Replace with JsonNode.u.iReplace */ -#define JNODE_PATCH 0x10 /* Patch with JsonNode.u.pPatch */ -#define JNODE_APPEND 0x20 /* More ARRAY/OBJECT entries at u.iAppend */ -#define JNODE_LABEL 0x40 /* Is a label of an object */ -#define JNODE_JSON5 0x80 /* Node contains JSON5 enhancements */ +#define JNODE_RAW 0x01 /* Content is raw, not JSON encoded */ +#define JNODE_ESCAPE 0x02 /* Content is text with \ escapes */ +#define JNODE_REMOVE 0x04 /* Do not output */ +#define JNODE_REPLACE 0x08 /* Target of a JSON_SUBST node */ +#define JNODE_APPEND 0x10 /* More ARRAY/OBJECT entries at u.iAppend */ +#define JNODE_LABEL 0x20 /* Is a label of an object */ +#define JNODE_JSON5 0x40 /* Node contains JSON5 enhancements */ -/* A single node of parsed JSON +/* A single node of parsed JSON. An array of these nodes describes +** a parse of JSON + edits. +** +** Use the json_parse() SQL function (available when compiled with +** -DSQLITE_DEBUG) to see a dump of complete JsonParse objects, including +** a complete listing and decoding of the array of JsonNodes. */ struct JsonNode { u8 eType; /* One of the JSON_ type values */ u8 jnFlags; /* JNODE flags */ u8 eU; /* Which union element to use */ - u32 n; /* Bytes of content, or number of sub-nodes */ + u32 n; /* Bytes of content for INT, REAL or STRING + ** Number of sub-nodes for ARRAY and OBJECT + ** Node that SUBST applies to */ union { const char *zJContent; /* 1: Content for INT, REAL, and STRING */ u32 iAppend; /* 2: More terms for ARRAY and OBJECT */ u32 iKey; /* 3: Key for ARRAY objects in json_tree() */ - u32 iReplace; /* 4: Replacement content for JNODE_REPLACE */ - JsonNode *pPatch; /* 5: Node chain of patch for JNODE_PATCH */ + u32 iPrev; /* 4: Previous SUBST node, or 0 */ } u; }; -/* A completely parsed JSON string + +/* A parsed and possibly edited JSON string. Lifecycle: +** +** 1. JSON comes in and is parsed into an array aNode[]. The original +** JSON text is stored in zJson. +** +** 2. Zero or more changes are made (via json_remove() or json_replace() +** or similar) to the aNode[] array. +** +** 3. A new, edited and mimified JSON string is generated from aNode +** and stored in zAlt. The JsonParse object always owns zAlt. +** +** Step 1 always happens. Step 2 and 3 may or may not happen, depending +** on the operation. +** +** aNode[].u.zJContent entries typically point into zJson. Hence zJson +** must remain valid for the lifespan of the parse. For edits, +** aNode[].u.zJContent might point to malloced space other than zJson. +** Entries in pClup are responsible for freeing that extra malloced space. +** +** When walking the parse tree in aNode[], edits are ignored if useMod is +** false. */ struct JsonParse { u32 nNode; /* Number of slots of aNode[] used */ u32 nAlloc; /* Number of slots of aNode[] allocated */ JsonNode *aNode; /* Array of nodes containing the parse */ - const char *zJson; /* Original JSON string */ + char *zJson; /* Original JSON string (before edits) */ + char *zAlt; /* Revised and/or mimified JSON */ u32 *aUp; /* Index of parent of each node */ + JsonCleanup *pClup;/* Cleanup operations prior to freeing this object */ u16 iDepth; /* Nesting depth */ u8 nErr; /* Number of errors seen */ u8 oom; /* Set to true if out of memory */ + u8 bJsonIsRCStr; /* True if zJson is an RCStr */ u8 hasNonstd; /* True if input uses non-standard features like JSON5 */ + u8 useMod; /* Actually use the edits contain inside aNode */ + u8 hasMod; /* aNode contains edits from the original zJson */ + u32 nJPRef; /* Number of references to this object */ int nJson; /* Length of the zJson string in bytes */ + int nAlt; /* Length of alternative JSON string zAlt, in bytes */ u32 iErr; /* Error location in zJson[] */ - u32 iHold; /* Replace cache line with the lowest iHold value */ + u32 iSubst; /* Last JSON_SUBST entry in aNode[] */ + u32 iHold; /* Age of this entry in the cache for LRU replacement */ }; /* @@ -199892,16 +201476,14 @@ static void jsonInit(JsonString *p, sqlite3_context *pCtx){ jsonZero(p); } - /* Free all allocated memory and reset the JsonString object back to its ** initial state. */ static void jsonReset(JsonString *p){ - if( !p->bStatic ) sqlite3_free(p->zBuf); + if( !p->bStatic ) sqlite3RCStrUnref(p->zBuf); jsonZero(p); } - /* Report an out-of-memory (OOM) condition */ static void jsonOom(JsonString *p){ @@ -199918,7 +201500,7 @@ static int jsonGrow(JsonString *p, u32 N){ char *zNew; if( p->bStatic ){ if( p->bErr ) return 1; - zNew = sqlite3_malloc64(nTotal); + zNew = sqlite3RCStrNew(nTotal); if( zNew==0 ){ jsonOom(p); return SQLITE_NOMEM; @@ -199927,12 +201509,12 @@ static int jsonGrow(JsonString *p, u32 N){ p->zBuf = zNew; p->bStatic = 0; }else{ - zNew = sqlite3_realloc64(p->zBuf, nTotal); - if( zNew==0 ){ - jsonOom(p); + p->zBuf = sqlite3RCStrResize(p->zBuf, nTotal); + if( p->zBuf==0 ){ + p->bErr = 1; + jsonZero(p); return SQLITE_NOMEM; } - p->zBuf = zNew; } p->nAlloc = nTotal; return SQLITE_OK; @@ -199940,12 +201522,35 @@ static int jsonGrow(JsonString *p, u32 N){ /* Append N bytes from zIn onto the end of the JsonString string. */ -static void jsonAppendRaw(JsonString *p, const char *zIn, u32 N){ - if( N==0 ) return; - if( (N+p->nUsed >= p->nAlloc) && jsonGrow(p,N)!=0 ) return; +static SQLITE_NOINLINE void jsonAppendExpand( + JsonString *p, + const char *zIn, + u32 N +){ + assert( N>0 ); + if( jsonGrow(p,N) ) return; memcpy(p->zBuf+p->nUsed, zIn, N); p->nUsed += N; } +static void jsonAppendRaw(JsonString *p, const char *zIn, u32 N){ + if( N==0 ) return; + if( N+p->nUsed >= p->nAlloc ){ + jsonAppendExpand(p,zIn,N); + }else{ + memcpy(p->zBuf+p->nUsed, zIn, N); + p->nUsed += N; + } +} +static void jsonAppendRawNZ(JsonString *p, const char *zIn, u32 N){ + assert( N>0 ); + if( N+p->nUsed >= p->nAlloc ){ + jsonAppendExpand(p,zIn,N); + }else{ + memcpy(p->zBuf+p->nUsed, zIn, N); + p->nUsed += N; + } +} + /* Append formatted text (not to exceed N bytes) to the JsonString. */ @@ -199960,10 +201565,35 @@ static void jsonPrintf(int N, JsonString *p, const char *zFormat, ...){ /* Append a single character */ -static void jsonAppendChar(JsonString *p, char c){ - if( p->nUsed>=p->nAlloc && jsonGrow(p,1)!=0 ) return; +static SQLITE_NOINLINE void jsonAppendCharExpand(JsonString *p, char c){ + if( jsonGrow(p,1) ) return; p->zBuf[p->nUsed++] = c; } +static void jsonAppendChar(JsonString *p, char c){ + if( p->nUsed>=p->nAlloc ){ + jsonAppendCharExpand(p,c); + }else{ + p->zBuf[p->nUsed++] = c; + } +} + +/* Try to force the string to be a zero-terminated RCStr string. +** +** Return true on success. Return false if an OOM prevents this +** from happening. +*/ +static int jsonForceRCStr(JsonString *p){ + jsonAppendChar(p, 0); + if( p->bErr ) return 0; + p->nUsed--; + if( p->bStatic==0 ) return 1; + p->nAlloc = 0; + p->nUsed++; + jsonGrow(p, p->nUsed); + p->nUsed--; + return p->bStatic==0; +} + /* Append a comma separator to the output buffer, if the previous ** character is not '[' or '{'. @@ -199972,7 +201602,8 @@ static void jsonAppendSeparator(JsonString *p){ char c; if( p->nUsed==0 ) return; c = p->zBuf[p->nUsed-1]; - if( c!='[' && c!='{' ) jsonAppendChar(p, ','); + if( c=='[' || c=='{' ) return; + jsonAppendChar(p, ','); } /* Append the N-byte string in zIn to the end of the JsonString string @@ -199986,11 +201617,16 @@ static void jsonAppendString(JsonString *p, const char *zIn, u32 N){ p->zBuf[p->nUsed++] = '"'; for(i=0; izBuf[p->nUsed++] = c; + }else if( c=='"' || c=='\\' ){ json_simple_escape: if( (p->nUsed+N+3-i > p->nAlloc) && jsonGrow(p,N+3-i)!=0 ) return; p->zBuf[p->nUsed++] = '\\'; - }else if( c<=0x1f ){ + p->zBuf[p->nUsed++] = c; + }else if( c=='\'' ){ + p->zBuf[p->nUsed++] = c; + }else{ static const char aSpecial[] = { 0, 0, 0, 0, 0, 0, 0, 0, 'b', 't', 'n', 0, 'f', 'r', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 @@ -200001,6 +201637,7 @@ static void jsonAppendString(JsonString *p, const char *zIn, u32 N){ assert( aSpecial['\n']=='n' ); assert( aSpecial['\r']=='r' ); assert( aSpecial['\t']=='t' ); + assert( c>=0 && czBuf[p->nUsed++] = 'u'; p->zBuf[p->nUsed++] = '0'; p->zBuf[p->nUsed++] = '0'; - p->zBuf[p->nUsed++] = '0' + (c>>4); - c = "0123456789abcdef"[c&0xf]; + p->zBuf[p->nUsed++] = "0123456789abcdef"[c>>4]; + p->zBuf[p->nUsed++] = "0123456789abcdef"[c&0xf]; } - p->zBuf[p->nUsed++] = c; } p->zBuf[p->nUsed++] = '"'; assert( p->nUsednAlloc ); @@ -200032,7 +201668,7 @@ static void jsonAppendNormalizedString(JsonString *p, const char *zIn, u32 N){ while( N>0 ){ for(i=0; i0 ){ - jsonAppendRaw(p, zIn, i); + jsonAppendRawNZ(p, zIn, i); zIn += i; N -= i; if( N==0 ) break; @@ -200043,16 +201679,16 @@ static void jsonAppendNormalizedString(JsonString *p, const char *zIn, u32 N){ jsonAppendChar(p, '\''); break; case 'v': - jsonAppendRaw(p, "\\u0009", 6); + jsonAppendRawNZ(p, "\\u0009", 6); break; case 'x': - jsonAppendRaw(p, "\\u00", 4); - jsonAppendRaw(p, &zIn[2], 2); + jsonAppendRawNZ(p, "\\u00", 4); + jsonAppendRawNZ(p, &zIn[2], 2); zIn += 2; N -= 2; break; case '0': - jsonAppendRaw(p, "\\u0000", 6); + jsonAppendRawNZ(p, "\\u0000", 6); break; case '\r': if( zIn[2]=='\n' ){ @@ -200070,7 +201706,7 @@ static void jsonAppendNormalizedString(JsonString *p, const char *zIn, u32 N){ N -= 2; break; default: - jsonAppendRaw(p, zIn, 2); + jsonAppendRawNZ(p, zIn, 2); break; } zIn += 2; @@ -200100,11 +201736,12 @@ static void jsonAppendNormalizedInt(JsonString *p, const char *zIn, u32 N){ jsonPrintf(100,p,"%lld",i); }else{ assert( rc==2 ); - jsonAppendRaw(p, "9.0e999", 7); + jsonAppendRawNZ(p, "9.0e999", 7); } return; } - jsonAppendRaw(p, zIn, N); + assert( N>0 ); + jsonAppendRawNZ(p, zIn, N); } /* @@ -200136,7 +201773,7 @@ static void jsonAppendNormalizedReal(JsonString *p, const char *zIn, u32 N){ } } if( N>0 ){ - jsonAppendRaw(p, zIn, N); + jsonAppendRawNZ(p, zIn, N); } } @@ -200152,7 +201789,7 @@ static void jsonAppendValue( ){ switch( sqlite3_value_type(pValue) ){ case SQLITE_NULL: { - jsonAppendRaw(p, "null", 4); + jsonAppendRawNZ(p, "null", 4); break; } case SQLITE_FLOAT: { @@ -200188,15 +201825,25 @@ static void jsonAppendValue( /* Make the JSON in p the result of the SQL function. +** +** The JSON string is reset. */ static void jsonResult(JsonString *p){ if( p->bErr==0 ){ - sqlite3_result_text64(p->pCtx, p->zBuf, p->nUsed, - p->bStatic ? SQLITE_TRANSIENT : sqlite3_free, - SQLITE_UTF8); - jsonZero(p); + if( p->bStatic ){ + sqlite3_result_text64(p->pCtx, p->zBuf, p->nUsed, + SQLITE_TRANSIENT, SQLITE_UTF8); + }else if( jsonForceRCStr(p) ){ + sqlite3RCStrRef(p->zBuf); + sqlite3_result_text64(p->pCtx, p->zBuf, p->nUsed, + (void(*)(void*))sqlite3RCStrUnref, + SQLITE_UTF8); + } } - assert( p->bStatic ); + if( p->bErr==1 ){ + sqlite3_result_error_nomem(p->pCtx); + } + jsonReset(p); } /************************************************************************** @@ -200221,20 +201868,73 @@ static u32 jsonNodeSize(JsonNode *pNode){ ** delete the JsonParse object itself. */ static void jsonParseReset(JsonParse *pParse){ - sqlite3_free(pParse->aNode); - pParse->aNode = 0; + while( pParse->pClup ){ + JsonCleanup *pTask = pParse->pClup; + pParse->pClup = pTask->pJCNext; + pTask->xOp(pTask->pArg); + sqlite3_free(pTask); + } + assert( pParse->nJPRef<=1 ); + if( pParse->aNode ){ + sqlite3_free(pParse->aNode); + pParse->aNode = 0; + } pParse->nNode = 0; pParse->nAlloc = 0; - sqlite3_free(pParse->aUp); - pParse->aUp = 0; + if( pParse->aUp ){ + sqlite3_free(pParse->aUp); + pParse->aUp = 0; + } + if( pParse->bJsonIsRCStr ){ + sqlite3RCStrUnref(pParse->zJson); + pParse->zJson = 0; + pParse->bJsonIsRCStr = 0; + } + if( pParse->zAlt ){ + sqlite3RCStrUnref(pParse->zAlt); + pParse->zAlt = 0; + } } /* ** Free a JsonParse object that was obtained from sqlite3_malloc(). +** +** Note that destroying JsonParse might call sqlite3RCStrUnref() to +** destroy the zJson value. The RCStr object might recursively invoke +** JsonParse to destroy this pParse object again. Take care to ensure +** that this recursive destructor sequence terminates harmlessly. */ static void jsonParseFree(JsonParse *pParse){ - jsonParseReset(pParse); - sqlite3_free(pParse); + if( pParse->nJPRef>1 ){ + pParse->nJPRef--; + }else{ + jsonParseReset(pParse); + sqlite3_free(pParse); + } +} + +/* +** Add a cleanup task to the JsonParse object. +** +** If an OOM occurs, the cleanup operation happens immediately +** and this function returns SQLITE_NOMEM. +*/ +static int jsonParseAddCleanup( + JsonParse *pParse, /* Add the cleanup task to this parser */ + void(*xOp)(void*), /* The cleanup task */ + void *pArg /* Argument to the cleanup */ +){ + JsonCleanup *pTask = sqlite3_malloc64( sizeof(*pTask) ); + if( pTask==0 ){ + pParse->oom = 1; + xOp(pArg); + return SQLITE_ERROR; + } + pTask->pJCNext = pParse->pClup; + pParse->pClup = pTask; + pTask->xOp = xOp; + pTask->pArg = pArg; + return SQLITE_OK; } /* @@ -200243,32 +201943,38 @@ static void jsonParseFree(JsonParse *pParse){ ** the number of JsonNode objects that are encoded. */ static void jsonRenderNode( + JsonParse *pParse, /* the complete parse of the JSON */ JsonNode *pNode, /* The node to render */ - JsonString *pOut, /* Write JSON here */ - sqlite3_value **aReplace /* Replacement values */ + JsonString *pOut /* Write JSON here */ ){ assert( pNode!=0 ); - if( pNode->jnFlags & (JNODE_REPLACE|JNODE_PATCH) ){ - if( (pNode->jnFlags & JNODE_REPLACE)!=0 && ALWAYS(aReplace!=0) ){ - assert( pNode->eU==4 ); - jsonAppendValue(pOut, aReplace[pNode->u.iReplace]); - return; + while( (pNode->jnFlags & JNODE_REPLACE)!=0 && pParse->useMod ){ + u32 idx = (u32)(pNode - pParse->aNode); + u32 i = pParse->iSubst; + while( 1 /*exit-by-break*/ ){ + assert( inNode ); + assert( pParse->aNode[i].eType==JSON_SUBST ); + assert( pParse->aNode[i].eU==4 ); + assert( pParse->aNode[i].u.iPrevaNode[i].n==idx ){ + pNode = &pParse->aNode[i+1]; + break; + } + i = pParse->aNode[i].u.iPrev; } - assert( pNode->eU==5 ); - pNode = pNode->u.pPatch; } switch( pNode->eType ){ default: { assert( pNode->eType==JSON_NULL ); - jsonAppendRaw(pOut, "null", 4); + jsonAppendRawNZ(pOut, "null", 4); break; } case JSON_TRUE: { - jsonAppendRaw(pOut, "true", 4); + jsonAppendRawNZ(pOut, "true", 4); break; } case JSON_FALSE: { - jsonAppendRaw(pOut, "false", 5); + jsonAppendRawNZ(pOut, "false", 5); break; } case JSON_STRING: { @@ -200284,7 +201990,8 @@ static void jsonRenderNode( }else if( pNode->jnFlags & JNODE_JSON5 ){ jsonAppendNormalizedString(pOut, pNode->u.zJContent, pNode->n); }else{ - jsonAppendRaw(pOut, pNode->u.zJContent, pNode->n); + assert( pNode->n>0 ); + jsonAppendRawNZ(pOut, pNode->u.zJContent, pNode->n); } break; } @@ -200293,7 +202000,8 @@ static void jsonRenderNode( if( pNode->jnFlags & JNODE_JSON5 ){ jsonAppendNormalizedReal(pOut, pNode->u.zJContent, pNode->n); }else{ - jsonAppendRaw(pOut, pNode->u.zJContent, pNode->n); + assert( pNode->n>0 ); + jsonAppendRawNZ(pOut, pNode->u.zJContent, pNode->n); } break; } @@ -200302,7 +202010,8 @@ static void jsonRenderNode( if( pNode->jnFlags & JNODE_JSON5 ){ jsonAppendNormalizedInt(pOut, pNode->u.zJContent, pNode->n); }else{ - jsonAppendRaw(pOut, pNode->u.zJContent, pNode->n); + assert( pNode->n>0 ); + jsonAppendRawNZ(pOut, pNode->u.zJContent, pNode->n); } break; } @@ -200311,15 +202020,16 @@ static void jsonRenderNode( jsonAppendChar(pOut, '['); for(;;){ while( j<=pNode->n ){ - if( (pNode[j].jnFlags & JNODE_REMOVE)==0 ){ + if( (pNode[j].jnFlags & JNODE_REMOVE)==0 || pParse->useMod==0 ){ jsonAppendSeparator(pOut); - jsonRenderNode(&pNode[j], pOut, aReplace); + jsonRenderNode(pParse, &pNode[j], pOut); } j += jsonNodeSize(&pNode[j]); } if( (pNode->jnFlags & JNODE_APPEND)==0 ) break; + if( pParse->useMod==0 ) break; assert( pNode->eU==2 ); - pNode = &pNode[pNode->u.iAppend]; + pNode = &pParse->aNode[pNode->u.iAppend]; j = 1; } jsonAppendChar(pOut, ']'); @@ -200330,17 +202040,18 @@ static void jsonRenderNode( jsonAppendChar(pOut, '{'); for(;;){ while( j<=pNode->n ){ - if( (pNode[j+1].jnFlags & JNODE_REMOVE)==0 ){ + if( (pNode[j+1].jnFlags & JNODE_REMOVE)==0 || pParse->useMod==0 ){ jsonAppendSeparator(pOut); - jsonRenderNode(&pNode[j], pOut, aReplace); + jsonRenderNode(pParse, &pNode[j], pOut); jsonAppendChar(pOut, ':'); - jsonRenderNode(&pNode[j+1], pOut, aReplace); + jsonRenderNode(pParse, &pNode[j+1], pOut); } j += 1 + jsonNodeSize(&pNode[j+1]); } if( (pNode->jnFlags & JNODE_APPEND)==0 ) break; + if( pParse->useMod==0 ) break; assert( pNode->eU==2 ); - pNode = &pNode[pNode->u.iAppend]; + pNode = &pParse->aNode[pNode->u.iAppend]; j = 1; } jsonAppendChar(pOut, '}'); @@ -200350,18 +202061,29 @@ static void jsonRenderNode( } /* -** Return a JsonNode and all its descendents as a JSON string. +** Return a JsonNode and all its descendants as a JSON string. */ static void jsonReturnJson( + JsonParse *pParse, /* The complete JSON */ JsonNode *pNode, /* Node to return */ sqlite3_context *pCtx, /* Return value for this function */ - sqlite3_value **aReplace /* Array of replacement values */ + int bGenerateAlt /* Also store the rendered text in zAlt */ ){ JsonString s; - jsonInit(&s, pCtx); - jsonRenderNode(pNode, &s, aReplace); - jsonResult(&s); - sqlite3_result_subtype(pCtx, JSON_SUBTYPE); + if( pParse->oom ){ + sqlite3_result_error_nomem(pCtx); + return; + } + if( pParse->nErr==0 ){ + jsonInit(&s, pCtx); + jsonRenderNode(pParse, pNode, &s); + if( bGenerateAlt && pParse->zAlt==0 && jsonForceRCStr(&s) ){ + pParse->zAlt = sqlite3RCStrRef(s.zBuf); + pParse->nAlt = s.nUsed; + } + jsonResult(&s); + sqlite3_result_subtype(pCtx, JSON_SUBTYPE); + } } /* @@ -200399,9 +202121,9 @@ static u32 jsonHexToInt4(const char *z){ ** Make the JsonNode the return value of the function. */ static void jsonReturn( + JsonParse *pParse, /* Complete JSON parse tree */ JsonNode *pNode, /* Node to return */ - sqlite3_context *pCtx, /* Return value for this function */ - sqlite3_value **aReplace /* Array of replacement values */ + sqlite3_context *pCtx /* Return value for this function */ ){ switch( pNode->eType ){ default: { @@ -200423,7 +202145,6 @@ static void jsonReturn( int bNeg = 0; const char *z; - assert( pNode->eU==1 ); z = pNode->u.zJContent; if( z[0]=='-' ){ z++; bNeg = 1; } @@ -200548,7 +202269,7 @@ static void jsonReturn( } case JSON_ARRAY: case JSON_OBJECT: { - jsonReturnJson(pNode, pCtx, aReplace); + jsonReturnJson(pParse, pNode, pCtx, 0); break; } } @@ -200570,6 +202291,12 @@ static int jsonParseAddNode(JsonParse*,u32,u32,const char*); #endif +/* +** Add a single node to pParse->aNode after first expanding the +** size of the aNode array. Return the index of the new node. +** +** If an OOM error occurs, set pParse->oom and return -1. +*/ static JSON_NOINLINE int jsonParseAddNodeExpand( JsonParse *pParse, /* Append the node to this object */ u32 eType, /* Node type */ @@ -200586,7 +202313,7 @@ static JSON_NOINLINE int jsonParseAddNodeExpand( pParse->oom = 1; return -1; } - pParse->nAlloc = nNew; + pParse->nAlloc = sqlite3_msize(pNew)/sizeof(JsonNode); pParse->aNode = pNew; assert( pParse->nNodenAlloc ); return jsonParseAddNode(pParse, eType, n, zContent); @@ -200604,10 +202331,13 @@ static int jsonParseAddNode( const char *zContent /* Content */ ){ JsonNode *p; - if( pParse->aNode==0 || pParse->nNode>=pParse->nAlloc ){ + assert( pParse->aNode!=0 || pParse->nNode>=pParse->nAlloc ); + if( pParse->nNode>=pParse->nAlloc ){ return jsonParseAddNodeExpand(pParse, eType, n, zContent); } + assert( pParse->aNode!=0 ); p = &pParse->aNode[pParse->nNode]; + assert( p!=0 ); p->eType = (u8)(eType & 0xff); p->jnFlags = (u8)(eType >> 8); VVA( p->eU = zContent ? 1 : 0 ); @@ -200616,6 +202346,52 @@ static int jsonParseAddNode( return pParse->nNode++; } +/* +** Add an array of new nodes to the current pParse->aNode array. +** Return the index of the first node added. +** +** If an OOM error occurs, set pParse->oom. +*/ +static void jsonParseAddNodeArray( + JsonParse *pParse, /* Append the node to this object */ + JsonNode *aNode, /* Array of nodes to add */ + u32 nNode /* Number of elements in aNew */ +){ + assert( aNode!=0 ); + assert( nNode>=1 ); + if( pParse->nNode + nNode > pParse->nAlloc ){ + u32 nNew = pParse->nNode + nNode; + JsonNode *aNew = sqlite3_realloc64(pParse->aNode, nNew*sizeof(JsonNode)); + if( aNew==0 ){ + pParse->oom = 1; + return; + } + pParse->nAlloc = sqlite3_msize(aNew)/sizeof(JsonNode); + pParse->aNode = aNew; + } + memcpy(&pParse->aNode[pParse->nNode], aNode, nNode*sizeof(JsonNode)); + pParse->nNode += nNode; +} + +/* +** Add a new JSON_SUBST node. The node immediately following +** this new node will be the substitute content for iNode. +*/ +static int jsonParseAddSubstNode( + JsonParse *pParse, /* Add the JSON_SUBST here */ + u32 iNode /* References this node */ +){ + int idx = jsonParseAddNode(pParse, JSON_SUBST, iNode, 0); + if( pParse->oom ) return -1; + pParse->aNode[iNode].jnFlags |= JNODE_REPLACE; + pParse->aNode[idx].eU = 4; + pParse->aNode[idx].u.iPrev = pParse->iSubst; + pParse->iSubst = idx; + pParse->hasMod = 1; + pParse->useMod = 1; + return idx; +} + /* ** Return true if z[] begins with 2 (or more) hexadecimal digits */ @@ -200782,7 +202558,7 @@ static const struct NanInfName { ** ** Special return values: ** -** 0 End if input +** 0 End of input ** -1 Syntax error ** -2 '}' seen ** -3 ']' seen @@ -200957,15 +202733,12 @@ json_parse_restart: jnFlags = 0; parse_string: cDelim = z[i]; - j = i+1; - for(;;){ + for(j=i+1; 1; j++){ + if( jsonIsOk[(unsigned char)z[j]] ) continue; c = z[j]; - if( (c & ~0x1f)==0 ){ - /* Control characters are not allowed in strings */ - pParse->iErr = j; - return -1; - } - if( c=='\\' ){ + if( c==cDelim ){ + break; + }else if( c=='\\' ){ c = z[++j]; if( c=='"' || c=='\\' || c=='/' || c=='b' || c=='f' || c=='n' || c=='r' || c=='t' @@ -200985,10 +202758,11 @@ json_parse_restart: pParse->iErr = j; return -1; } - }else if( c==cDelim ){ - break; + }else if( c<=0x1f ){ + /* Control characters are not allowed in strings */ + pParse->iErr = j; + return -1; } - j++; } jsonParseAddNode(pParse, JSON_STRING | (jnFlags<<8), j+1-i, &z[i]); return j+1; @@ -201224,20 +202998,18 @@ json_parse_restart: /* ** Parse a complete JSON string. Return 0 on success or non-zero if there -** are any errors. If an error occurs, free all memory associated with -** pParse. +** are any errors. If an error occurs, free all memory held by pParse, +** but not pParse itself. ** -** pParse is uninitialized when this routine is called. +** pParse must be initialized to an empty parse object prior to calling +** this routine. */ static int jsonParse( JsonParse *pParse, /* Initialize and fill this JsonParse object */ - sqlite3_context *pCtx, /* Report errors here */ - const char *zJson /* Input JSON text to be parsed */ + sqlite3_context *pCtx /* Report errors here */ ){ int i; - memset(pParse, 0, sizeof(*pParse)); - if( zJson==0 ) return 1; - pParse->zJson = zJson; + const char *zJson = pParse->zJson; i = jsonParseValue(pParse, 0); if( pParse->oom ) i = -1; if( i>0 ){ @@ -201266,6 +203038,7 @@ static int jsonParse( return 0; } + /* Mark node i of pParse as being a child of iParent. Call recursively ** to fill in all the descendants of node i. */ @@ -201315,35 +203088,49 @@ static int jsonParseFindParents(JsonParse *pParse){ #define JSON_CACHE_SZ 4 /* Max number of cache entries */ /* -** Obtain a complete parse of the JSON found in the first argument -** of the argv array. Use the sqlite3_get_auxdata() cache for this -** parse if it is available. If the cache is not available or if it -** is no longer valid, parse the JSON again and return the new parse, -** and also register the new parse so that it will be available for +** Obtain a complete parse of the JSON found in the pJson argument +** +** Use the sqlite3_get_auxdata() cache to find a preexisting parse +** if it is available. If the cache is not available or if it +** is no longer valid, parse the JSON again and return the new parse. +** Also register the new parse so that it will be available for ** future sqlite3_get_auxdata() calls. ** ** If an error occurs and pErrCtx!=0 then report the error on pErrCtx ** and return NULL. ** -** If an error occurs and pErrCtx==0 then return the Parse object with -** JsonParse.nErr non-zero. If the caller invokes this routine with -** pErrCtx==0 and it gets back a JsonParse with nErr!=0, then the caller -** is responsible for invoking jsonParseFree() on the returned value. -** But the caller may invoke jsonParseFree() *only* if pParse->nErr!=0. +** The returned pointer (if it is not NULL) is owned by the cache in +** most cases, not the caller. The caller does NOT need to invoke +** jsonParseFree(), in most cases. +** +** Except, if an error occurs and pErrCtx==0 then return the JsonParse +** object with JsonParse.nErr non-zero and the caller will own the JsonParse +** object. In that case, it will be the responsibility of the caller to +** invoke jsonParseFree(). To summarize: +** +** pErrCtx!=0 || p->nErr==0 ==> Return value p is owned by the +** cache. Call does not need to +** free it. +** +** pErrCtx==0 && p->nErr!=0 ==> Return value is owned by the caller +** and so the caller must free it. */ static JsonParse *jsonParseCached( - sqlite3_context *pCtx, - sqlite3_value **argv, - sqlite3_context *pErrCtx + sqlite3_context *pCtx, /* Context to use for cache search */ + sqlite3_value *pJson, /* Function param containing JSON text */ + sqlite3_context *pErrCtx, /* Write parse errors here if not NULL */ + int bUnedited /* No prior edits allowed */ ){ - const char *zJson = (const char*)sqlite3_value_text(argv[0]); - int nJson = sqlite3_value_bytes(argv[0]); + char *zJson = (char*)sqlite3_value_text(pJson); + int nJson = sqlite3_value_bytes(pJson); JsonParse *p; JsonParse *pMatch = 0; int iKey; int iMinKey = 0; u32 iMinHold = 0xffffffff; u32 iMaxHold = 0; + int bJsonRCStr; + if( zJson==0 ) return 0; for(iKey=0; iKeynJson==nJson - && memcmp(p->zJson,zJson,nJson)==0 + && (p->hasMod==0 || bUnedited==0) + && (p->zJson==zJson || memcmp(p->zJson,zJson,nJson)==0) ){ p->nErr = 0; + p->useMod = 0; + pMatch = p; + }else + if( pMatch==0 + && p->zAlt!=0 + && bUnedited==0 + && p->nAlt==nJson + && memcmp(p->zAlt, zJson, nJson)==0 + ){ + p->nErr = 0; + p->useMod = 1; pMatch = p; }else if( p->iHoldiHold; @@ -201366,28 +203165,44 @@ static JsonParse *jsonParseCached( } } if( pMatch ){ + /* The input JSON text was found in the cache. Use the preexisting + ** parse of this JSON */ pMatch->nErr = 0; pMatch->iHold = iMaxHold+1; + assert( pMatch->nJPRef>0 ); /* pMatch is owned by the cache */ return pMatch; } - p = sqlite3_malloc64( sizeof(*p) + nJson + 1 ); + + /* The input JSON was not found anywhere in the cache. We will need + ** to parse it ourselves and generate a new JsonParse object. + */ + bJsonRCStr = sqlite3ValueIsOfClass(pJson,(void(*)(void*))sqlite3RCStrUnref); + p = sqlite3_malloc64( sizeof(*p) + (bJsonRCStr ? 0 : nJson+1) ); if( p==0 ){ sqlite3_result_error_nomem(pCtx); return 0; } memset(p, 0, sizeof(*p)); - p->zJson = (char*)&p[1]; - memcpy((char*)p->zJson, zJson, nJson+1); - if( jsonParse(p, pErrCtx, p->zJson) ){ + if( bJsonRCStr ){ + p->zJson = sqlite3RCStrRef(zJson); + p->bJsonIsRCStr = 1; + }else{ + p->zJson = (char*)&p[1]; + memcpy(p->zJson, zJson, nJson+1); + } + p->nJPRef = 1; + if( jsonParse(p, pErrCtx) ){ if( pErrCtx==0 ){ p->nErr = 1; + assert( p->nJPRef==1 ); /* Caller will own the new JsonParse object p */ return p; } - sqlite3_free(p); + jsonParseFree(p); return 0; } p->nJson = nJson; p->iHold = iMaxHold+1; + /* Transfer ownership of the new JsonParse to the cache */ sqlite3_set_auxdata(pCtx, JSON_CACHE_ID+iMinKey, p, (void(*)(void*))jsonParseFree); return (JsonParse*)sqlite3_get_auxdata(pCtx, JSON_CACHE_ID+iMinKey); @@ -201438,9 +203253,31 @@ static JsonNode *jsonLookupStep( ){ u32 i, j, nKey; const char *zKey; - JsonNode *pRoot = &pParse->aNode[iRoot]; + JsonNode *pRoot; + if( pParse->oom ) return 0; + pRoot = &pParse->aNode[iRoot]; + if( pRoot->jnFlags & (JNODE_REPLACE|JNODE_REMOVE) && pParse->useMod ){ + while( (pRoot->jnFlags & JNODE_REPLACE)!=0 ){ + u32 idx = (u32)(pRoot - pParse->aNode); + i = pParse->iSubst; + while( 1 /*exit-by-break*/ ){ + assert( inNode ); + assert( pParse->aNode[i].eType==JSON_SUBST ); + assert( pParse->aNode[i].eU==4 ); + assert( pParse->aNode[i].u.iPrevaNode[i].n==idx ){ + pRoot = &pParse->aNode[i+1]; + iRoot = i+1; + break; + } + i = pParse->aNode[i].u.iPrev; + } + } + if( pRoot->jnFlags & JNODE_REMOVE ){ + return 0; + } + } if( zPath[0]==0 ) return pRoot; - if( pRoot->jnFlags & JNODE_REPLACE ) return 0; if( zPath[0]=='.' ){ if( pRoot->eType!=JSON_OBJECT ) return 0; zPath++; @@ -201474,14 +203311,16 @@ static JsonNode *jsonLookupStep( j += jsonNodeSize(&pRoot[j]); } if( (pRoot->jnFlags & JNODE_APPEND)==0 ) break; + if( pParse->useMod==0 ) break; assert( pRoot->eU==2 ); - iRoot += pRoot->u.iAppend; + iRoot = pRoot->u.iAppend; pRoot = &pParse->aNode[iRoot]; j = 1; } if( pApnd ){ u32 iStart, iLabel; JsonNode *pNode; + assert( pParse->useMod ); iStart = jsonParseAddNode(pParse, JSON_OBJECT, 2, 0); iLabel = jsonParseAddNode(pParse, JSON_STRING, nKey, zKey); zPath += i; @@ -201490,7 +203329,7 @@ static JsonNode *jsonLookupStep( if( pNode ){ pRoot = &pParse->aNode[iRoot]; assert( pRoot->eU==0 ); - pRoot->u.iAppend = iStart - iRoot; + pRoot->u.iAppend = iStart; pRoot->jnFlags |= JNODE_APPEND; VVA( pRoot->eU = 2 ); pParse->aNode[iLabel].jnFlags |= JNODE_RAW; @@ -201511,12 +203350,13 @@ static JsonNode *jsonLookupStep( if( pRoot->eType!=JSON_ARRAY ) return 0; for(;;){ while( j<=pBase->n ){ - if( (pBase[j].jnFlags & JNODE_REMOVE)==0 ) i++; + if( (pBase[j].jnFlags & JNODE_REMOVE)==0 || pParse->useMod==0 ) i++; j += jsonNodeSize(&pBase[j]); } if( (pBase->jnFlags & JNODE_APPEND)==0 ) break; + if( pParse->useMod==0 ) break; assert( pBase->eU==2 ); - iBase += pBase->u.iAppend; + iBase = pBase->u.iAppend; pBase = &pParse->aNode[iBase]; j = 1; } @@ -201544,13 +203384,16 @@ static JsonNode *jsonLookupStep( zPath += j + 1; j = 1; for(;;){ - while( j<=pRoot->n && (i>0 || (pRoot[j].jnFlags & JNODE_REMOVE)!=0) ){ - if( (pRoot[j].jnFlags & JNODE_REMOVE)==0 ) i--; + while( j<=pRoot->n + && (i>0 || ((pRoot[j].jnFlags & JNODE_REMOVE)!=0 && pParse->useMod)) + ){ + if( (pRoot[j].jnFlags & JNODE_REMOVE)==0 || pParse->useMod==0 ) i--; j += jsonNodeSize(&pRoot[j]); } if( (pRoot->jnFlags & JNODE_APPEND)==0 ) break; + if( pParse->useMod==0 ) break; assert( pRoot->eU==2 ); - iRoot += pRoot->u.iAppend; + iRoot = pRoot->u.iAppend; pRoot = &pParse->aNode[iRoot]; j = 1; } @@ -201560,13 +203403,14 @@ static JsonNode *jsonLookupStep( if( i==0 && pApnd ){ u32 iStart; JsonNode *pNode; + assert( pParse->useMod ); iStart = jsonParseAddNode(pParse, JSON_ARRAY, 1, 0); pNode = jsonLookupAppend(pParse, zPath, pApnd, pzErr); if( pParse->oom ) return 0; if( pNode ){ pRoot = &pParse->aNode[iRoot]; assert( pRoot->eU==0 ); - pRoot->u.iAppend = iStart - iRoot; + pRoot->u.iAppend = iStart; pRoot->jnFlags |= JNODE_APPEND; VVA( pRoot->eU = 2 ); } @@ -201693,47 +203537,90 @@ static void jsonRemoveAllNulls(JsonNode *pNode){ ** SQL functions used for testing and debugging ****************************************************************************/ +#if SQLITE_DEBUG +/* +** Print N node entries. +*/ +static void jsonDebugPrintNodeEntries( + JsonNode *aNode, /* First node entry to print */ + int N /* Number of node entries to print */ +){ + int i; + for(i=0; iaNode, p->nNode); +} +static void jsonDebugPrintNode(JsonNode *pNode){ + jsonDebugPrintNodeEntries(pNode, jsonNodeSize(pNode)); +} +#else + /* The usual case */ +# define jsonDebugPrintNode(X) +# define jsonDebugPrintParse(X) +#endif + #ifdef SQLITE_DEBUG /* -** The json_parse(JSON) function returns a string which describes -** a parse of the JSON provided. Or it returns NULL if JSON is not -** well-formed. +** SQL function: json_parse(JSON) +** +** Parse JSON using jsonParseCached(). Then print a dump of that +** parse on standard output. Return the mimified JSON result, just +** like the json() function. */ static void jsonParseFunc( sqlite3_context *ctx, int argc, sqlite3_value **argv ){ - JsonString s; /* Output string - not real JSON */ - JsonParse x; /* The parse */ - u32 i; + JsonParse *p; /* The parse */ assert( argc==1 ); - if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return; - jsonParseFindParents(&x); - jsonInit(&s, ctx); - for(i=0; inNode); + printf("nAlloc = %u\n", p->nAlloc); + printf("nJson = %d\n", p->nJson); + printf("nAlt = %d\n", p->nAlt); + printf("nErr = %u\n", p->nErr); + printf("oom = %u\n", p->oom); + printf("hasNonstd = %u\n", p->hasNonstd); + printf("useMod = %u\n", p->useMod); + printf("hasMod = %u\n", p->hasMod); + printf("nJPRef = %u\n", p->nJPRef); + printf("iSubst = %u\n", p->iSubst); + printf("iHold = %u\n", p->iHold); + jsonDebugPrintNodeEntries(p->aNode, p->nNode); + jsonReturnJson(p, p->aNode, ctx, 1); } /* @@ -201817,7 +203704,7 @@ static void jsonArrayLengthFunc( u32 i; JsonNode *pNode; - p = jsonParseCached(ctx, argv, ctx); + p = jsonParseCached(ctx, argv[0], ctx, 0); if( p==0 ) return; assert( p->nNode ); if( argc==2 ){ @@ -201830,9 +203717,16 @@ static void jsonArrayLengthFunc( return; } if( pNode->eType==JSON_ARRAY ){ - assert( (pNode->jnFlags & JNODE_APPEND)==0 ); - for(i=1; i<=pNode->n; n++){ - i += jsonNodeSize(&pNode[i]); + while( 1 /*exit-by-break*/ ){ + i = 1; + while( i<=pNode->n ){ + if( (pNode[i].jnFlags & JNODE_REMOVE)==0 ) n++; + i += jsonNodeSize(&pNode[i]); + } + if( (pNode->jnFlags & JNODE_APPEND)==0 ) break; + if( p->useMod==0 ) break; + assert( pNode->eU==2 ); + pNode = &p->aNode[pNode->u.iAppend]; } } sqlite3_result_int64(ctx, n); @@ -201879,7 +203773,7 @@ static void jsonExtractFunc( JsonString jx; if( argc<2 ) return; - p = jsonParseCached(ctx, argv, ctx); + p = jsonParseCached(ctx, argv[0], ctx, 0); if( p==0 ) return; if( argc==2 ){ /* With a single PATH argument */ @@ -201897,11 +203791,11 @@ static void jsonExtractFunc( */ jsonInit(&jx, ctx); if( sqlite3Isdigit(zPath[0]) ){ - jsonAppendRaw(&jx, "$[", 2); + jsonAppendRawNZ(&jx, "$[", 2); jsonAppendRaw(&jx, zPath, (int)strlen(zPath)); - jsonAppendRaw(&jx, "]", 2); + jsonAppendRawNZ(&jx, "]", 2); }else{ - jsonAppendRaw(&jx, "$.", 1 + (zPath[0]!='[')); + jsonAppendRawNZ(&jx, "$.", 1 + (zPath[0]!='[')); jsonAppendRaw(&jx, zPath, (int)strlen(zPath)); jsonAppendChar(&jx, 0); } @@ -201912,15 +203806,15 @@ static void jsonExtractFunc( } if( pNode ){ if( flags & JSON_JSON ){ - jsonReturnJson(pNode, ctx, 0); + jsonReturnJson(p, pNode, ctx, 0); }else{ - jsonReturn(pNode, ctx, 0); + jsonReturn(p, pNode, ctx); sqlite3_result_subtype(ctx, 0); } } }else{ pNode = jsonLookup(p, zPath, 0, ctx); - if( p->nErr==0 && pNode ) jsonReturn(pNode, ctx, 0); + if( p->nErr==0 && pNode ) jsonReturn(p, pNode, ctx); } }else{ /* Two or more PATH arguments results in a JSON array with each @@ -201934,9 +203828,9 @@ static void jsonExtractFunc( if( p->nErr ) break; jsonAppendSeparator(&jx); if( pNode ){ - jsonRenderNode(pNode, &jx, 0); + jsonRenderNode(p, pNode, &jx); }else{ - jsonAppendRaw(&jx, "null", 4); + jsonAppendRawNZ(&jx, "null", 4); } } if( i==argc ){ @@ -201981,45 +203875,38 @@ static JsonNode *jsonMergePatch( assert( pTarget[j].eType==JSON_STRING ); assert( pTarget[j].jnFlags & JNODE_LABEL ); if( jsonSameLabel(&pPatch[i], &pTarget[j]) ){ - if( pTarget[j+1].jnFlags & (JNODE_REMOVE|JNODE_PATCH) ) break; + if( pTarget[j+1].jnFlags & (JNODE_REMOVE|JNODE_REPLACE) ) break; if( pPatch[i+1].eType==JSON_NULL ){ pTarget[j+1].jnFlags |= JNODE_REMOVE; }else{ JsonNode *pNew = jsonMergePatch(pParse, iTarget+j+1, &pPatch[i+1]); if( pNew==0 ) return 0; - pTarget = &pParse->aNode[iTarget]; - if( pNew!=&pTarget[j+1] ){ - assert( pTarget[j+1].eU==0 - || pTarget[j+1].eU==1 - || pTarget[j+1].eU==2 ); - testcase( pTarget[j+1].eU==1 ); - testcase( pTarget[j+1].eU==2 ); - VVA( pTarget[j+1].eU = 5 ); - pTarget[j+1].u.pPatch = pNew; - pTarget[j+1].jnFlags |= JNODE_PATCH; + if( pNew!=&pParse->aNode[iTarget+j+1] ){ + jsonParseAddSubstNode(pParse, iTarget+j+1); + jsonParseAddNodeArray(pParse, pNew, jsonNodeSize(pNew)); } + pTarget = &pParse->aNode[iTarget]; } break; } } if( j>=pTarget->n && pPatch[i+1].eType!=JSON_NULL ){ - int iStart, iPatch; - iStart = jsonParseAddNode(pParse, JSON_OBJECT, 2, 0); + int iStart; + JsonNode *pApnd; + u32 nApnd; + iStart = jsonParseAddNode(pParse, JSON_OBJECT, 0, 0); jsonParseAddNode(pParse, JSON_STRING, nKey, zKey); - iPatch = jsonParseAddNode(pParse, JSON_TRUE, 0, 0); + pApnd = &pPatch[i+1]; + if( pApnd->eType==JSON_OBJECT ) jsonRemoveAllNulls(pApnd); + nApnd = jsonNodeSize(pApnd); + jsonParseAddNodeArray(pParse, pApnd, jsonNodeSize(pApnd)); if( pParse->oom ) return 0; - jsonRemoveAllNulls(pPatch); - pTarget = &pParse->aNode[iTarget]; - assert( pParse->aNode[iRoot].eU==0 || pParse->aNode[iRoot].eU==2 ); - testcase( pParse->aNode[iRoot].eU==2 ); + pParse->aNode[iStart].n = 1+nApnd; pParse->aNode[iRoot].jnFlags |= JNODE_APPEND; + pParse->aNode[iRoot].u.iAppend = iStart; VVA( pParse->aNode[iRoot].eU = 2 ); - pParse->aNode[iRoot].u.iAppend = iStart - iRoot; iRoot = iStart; - assert( pParse->aNode[iPatch].eU==0 ); - VVA( pParse->aNode[iPatch].eU = 5 ); - pParse->aNode[iPatch].jnFlags |= JNODE_PATCH; - pParse->aNode[iPatch].u.pPatch = &pPatch[i+1]; + pTarget = &pParse->aNode[iTarget]; } } return pTarget; @@ -202035,25 +203922,28 @@ static void jsonPatchFunc( int argc, sqlite3_value **argv ){ - JsonParse x; /* The JSON that is being patched */ - JsonParse y; /* The patch */ + JsonParse *pX; /* The JSON that is being patched */ + JsonParse *pY; /* The patch */ JsonNode *pResult; /* The result of the merge */ UNUSED_PARAMETER(argc); - if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return; - if( jsonParse(&y, ctx, (const char*)sqlite3_value_text(argv[1])) ){ - jsonParseReset(&x); - return; - } - pResult = jsonMergePatch(&x, 0, y.aNode); - assert( pResult!=0 || x.oom ); - if( pResult ){ - jsonReturnJson(pResult, ctx, 0); + pX = jsonParseCached(ctx, argv[0], ctx, 1); + if( pX==0 ) return; + assert( pX->hasMod==0 ); + pX->hasMod = 1; + pY = jsonParseCached(ctx, argv[1], ctx, 1); + if( pY==0 ) return; + pX->useMod = 1; + pY->useMod = 1; + pResult = jsonMergePatch(pX, 0, pY->aNode); + assert( pResult!=0 || pX->oom ); + if( pResult && pX->oom==0 ){ + jsonDebugPrintParse(pX); + jsonDebugPrintNode(pResult); + jsonReturnJson(pX, pResult, ctx, 0); }else{ sqlite3_result_error_nomem(ctx); } - jsonParseReset(&x); - jsonParseReset(&y); } @@ -202109,26 +203999,118 @@ static void jsonRemoveFunc( int argc, sqlite3_value **argv ){ - JsonParse x; /* The parse */ + JsonParse *pParse; /* The parse */ JsonNode *pNode; const char *zPath; u32 i; if( argc<1 ) return; - if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return; - assert( x.nNode ); + pParse = jsonParseCached(ctx, argv[0], ctx, argc>1); + if( pParse==0 ) return; for(i=1; i<(u32)argc; i++){ zPath = (const char*)sqlite3_value_text(argv[i]); if( zPath==0 ) goto remove_done; - pNode = jsonLookup(&x, zPath, 0, ctx); - if( x.nErr ) goto remove_done; - if( pNode ) pNode->jnFlags |= JNODE_REMOVE; + pNode = jsonLookup(pParse, zPath, 0, ctx); + if( pParse->nErr ) goto remove_done; + if( pNode ){ + pNode->jnFlags |= JNODE_REMOVE; + pParse->hasMod = 1; + pParse->useMod = 1; + } } - if( (x.aNode[0].jnFlags & JNODE_REMOVE)==0 ){ - jsonReturnJson(x.aNode, ctx, 0); + if( (pParse->aNode[0].jnFlags & JNODE_REMOVE)==0 ){ + jsonReturnJson(pParse, pParse->aNode, ctx, 1); } remove_done: - jsonParseReset(&x); + jsonDebugPrintParse(p); +} + +/* +** Substitute the value at iNode with the pValue parameter. +*/ +static void jsonReplaceNode( + sqlite3_context *pCtx, + JsonParse *p, + int iNode, + sqlite3_value *pValue +){ + int idx = jsonParseAddSubstNode(p, iNode); + if( idx<=0 ){ + assert( p->oom ); + return; + } + switch( sqlite3_value_type(pValue) ){ + case SQLITE_NULL: { + jsonParseAddNode(p, JSON_NULL, 0, 0); + break; + } + case SQLITE_FLOAT: { + char *z = sqlite3_mprintf("%!0.15g", sqlite3_value_double(pValue)); + int n; + if( z==0 ){ + p->oom = 1; + break; + } + n = sqlite3Strlen30(z); + jsonParseAddNode(p, JSON_REAL, n, z); + jsonParseAddCleanup(p, sqlite3_free, z); + break; + } + case SQLITE_INTEGER: { + char *z = sqlite3_mprintf("%lld", sqlite3_value_int64(pValue)); + int n; + if( z==0 ){ + p->oom = 1; + break; + } + n = sqlite3Strlen30(z); + jsonParseAddNode(p, JSON_INT, n, z); + jsonParseAddCleanup(p, sqlite3_free, z); + + break; + } + case SQLITE_TEXT: { + const char *z = (const char*)sqlite3_value_text(pValue); + u32 n = (u32)sqlite3_value_bytes(pValue); + if( z==0 ){ + p->oom = 1; + break; + } + if( sqlite3_value_subtype(pValue)!=JSON_SUBTYPE ){ + char *zCopy = sqlite3DbStrDup(0, z); + int k; + if( zCopy ){ + jsonParseAddCleanup(p, sqlite3_free, zCopy); + }else{ + p->oom = 1; + sqlite3_result_error_nomem(pCtx); + } + k = jsonParseAddNode(p, JSON_STRING, n, zCopy); + assert( k>0 || p->oom ); + if( p->oom==0 ) p->aNode[k].jnFlags |= JNODE_RAW; + }else{ + JsonParse *pPatch = jsonParseCached(pCtx, pValue, pCtx, 1); + if( pPatch==0 ){ + p->oom = 1; + break; + } + jsonParseAddNodeArray(p, pPatch->aNode, pPatch->nNode); + /* The nodes copied out of pPatch and into p likely contain + ** u.zJContent pointers into pPatch->zJson. So preserve the + ** content of pPatch until p is destroyed. */ + assert( pPatch->nJPRef>=1 ); + pPatch->nJPRef++; + jsonParseAddCleanup(p, (void(*)(void*))jsonParseFree, pPatch); + } + break; + } + default: { + jsonParseAddNode(p, JSON_NULL, 0, 0); + sqlite3_result_error(pCtx, "JSON cannot hold BLOB values", -1); + p->nErr++; + break; + } + } } /* @@ -202142,7 +204124,7 @@ static void jsonReplaceFunc( int argc, sqlite3_value **argv ){ - JsonParse x; /* The parse */ + JsonParse *pParse; /* The parse */ JsonNode *pNode; const char *zPath; u32 i; @@ -202152,28 +204134,20 @@ static void jsonReplaceFunc( jsonWrongNumArgs(ctx, "replace"); return; } - if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return; - assert( x.nNode ); + pParse = jsonParseCached(ctx, argv[0], ctx, argc>1); + if( pParse==0 ) return; for(i=1; i<(u32)argc; i+=2){ zPath = (const char*)sqlite3_value_text(argv[i]); - pNode = jsonLookup(&x, zPath, 0, ctx); - if( x.nErr ) goto replace_err; + pParse->useMod = 1; + pNode = jsonLookup(pParse, zPath, 0, ctx); + if( pParse->nErr ) goto replace_err; if( pNode ){ - assert( pNode->eU==0 || pNode->eU==1 || pNode->eU==4 ); - testcase( pNode->eU!=0 && pNode->eU!=1 ); - pNode->jnFlags |= (u8)JNODE_REPLACE; - VVA( pNode->eU = 4 ); - pNode->u.iReplace = i + 1; + jsonReplaceNode(ctx, pParse, (u32)(pNode - pParse->aNode), argv[i+1]); } } - if( x.aNode[0].jnFlags & JNODE_REPLACE ){ - assert( x.aNode[0].eU==4 ); - sqlite3_result_value(ctx, argv[x.aNode[0].u.iReplace]); - }else{ - jsonReturnJson(x.aNode, ctx, argv); - } + jsonReturnJson(pParse, pParse->aNode, ctx, 1); replace_err: - jsonParseReset(&x); + jsonDebugPrintParse(pParse); } @@ -202194,7 +204168,7 @@ static void jsonSetFunc( int argc, sqlite3_value **argv ){ - JsonParse x; /* The parse */ + JsonParse *pParse; /* The parse */ JsonNode *pNode; const char *zPath; u32 i; @@ -202206,33 +204180,27 @@ static void jsonSetFunc( jsonWrongNumArgs(ctx, bIsSet ? "set" : "insert"); return; } - if( jsonParse(&x, ctx, (const char*)sqlite3_value_text(argv[0])) ) return; - assert( x.nNode ); + pParse = jsonParseCached(ctx, argv[0], ctx, argc>1); + if( pParse==0 ) return; for(i=1; i<(u32)argc; i+=2){ zPath = (const char*)sqlite3_value_text(argv[i]); bApnd = 0; - pNode = jsonLookup(&x, zPath, &bApnd, ctx); - if( x.oom ){ + pParse->useMod = 1; + pNode = jsonLookup(pParse, zPath, &bApnd, ctx); + if( pParse->oom ){ sqlite3_result_error_nomem(ctx); goto jsonSetDone; - }else if( x.nErr ){ + }else if( pParse->nErr ){ goto jsonSetDone; }else if( pNode && (bApnd || bIsSet) ){ - testcase( pNode->eU!=0 && pNode->eU!=1 ); - assert( pNode->eU!=3 && pNode->eU!=5 ); - VVA( pNode->eU = 4 ); - pNode->jnFlags |= (u8)JNODE_REPLACE; - pNode->u.iReplace = i + 1; + jsonReplaceNode(ctx, pParse, (u32)(pNode - pParse->aNode), argv[i+1]); } } - if( x.aNode[0].jnFlags & JNODE_REPLACE ){ - assert( x.aNode[0].eU==4 ); - sqlite3_result_value(ctx, argv[x.aNode[0].u.iReplace]); - }else{ - jsonReturnJson(x.aNode, ctx, argv); - } + jsonDebugPrintParse(pParse); + jsonReturnJson(pParse, pParse->aNode, ctx, 1); + jsonSetDone: - jsonParseReset(&x); + /* no cleanup required */; } /* @@ -202251,7 +204219,7 @@ static void jsonTypeFunc( const char *zPath; JsonNode *pNode; - p = jsonParseCached(ctx, argv, ctx); + p = jsonParseCached(ctx, argv[0], ctx, 0); if( p==0 ) return; if( argc==2 ){ zPath = (const char*)sqlite3_value_text(argv[1]); @@ -202277,13 +204245,19 @@ static void jsonValidFunc( ){ JsonParse *p; /* The parse */ UNUSED_PARAMETER(argc); - if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; - p = jsonParseCached(ctx, argv, 0); + if( sqlite3_value_type(argv[0])==SQLITE_NULL ){ +#ifdef SQLITE_LEGACY_JSON_VALID + /* Incorrect legacy behavior was to return FALSE for a NULL input */ + sqlite3_result_int(ctx, 0); +#endif + return; + } + p = jsonParseCached(ctx, argv[0], 0, 0); if( p==0 || p->oom ){ sqlite3_result_error_nomem(ctx); sqlite3_free(p); }else{ - sqlite3_result_int(ctx, p->nErr==0 && p->hasNonstd==0); + sqlite3_result_int(ctx, p->nErr==0 && (p->hasNonstd==0 || p->useMod)); if( p->nErr ) jsonParseFree(p); } } @@ -202324,7 +204298,7 @@ static void jsonErrorFunc( JsonParse *p; /* The parse */ UNUSED_PARAMETER(argc); if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; - p = jsonParseCached(ctx, argv, 0); + p = jsonParseCached(ctx, argv[0], 0, 0); if( p==0 || p->oom ){ sqlite3_result_error_nomem(ctx); sqlite3_free(p); @@ -202333,7 +204307,7 @@ static void jsonErrorFunc( }else{ int n = 1; u32 i; - const char *z = p->zJson; + const char *z = (const char*)sqlite3_value_text(argv[0]); for(i=0; iiErr && ALWAYS(z[i]); i++){ if( (z[i]&0xc0)!=0x80 ) n++; } @@ -202381,7 +204355,8 @@ static void jsonArrayCompute(sqlite3_context *ctx, int isFinal){ assert( pStr->bStatic ); }else if( isFinal ){ sqlite3_result_text(ctx, pStr->zBuf, (int)pStr->nUsed, - pStr->bStatic ? SQLITE_TRANSIENT : sqlite3_free); + pStr->bStatic ? SQLITE_TRANSIENT : + (void(*)(void*))sqlite3RCStrUnref); pStr->bStatic = 1; }else{ sqlite3_result_text(ctx, pStr->zBuf, (int)pStr->nUsed, SQLITE_TRANSIENT); @@ -202422,7 +204397,7 @@ static void jsonGroupInverse( pStr = (JsonString*)sqlite3_aggregate_context(ctx, 0); #ifdef NEVER /* pStr is always non-NULL since jsonArrayStep() or jsonObjectStep() will - ** always have been called to initalize it */ + ** always have been called to initialize it */ if( NEVER(!pStr) ) return; #endif z = pStr->zBuf; @@ -202489,7 +204464,8 @@ static void jsonObjectCompute(sqlite3_context *ctx, int isFinal){ assert( pStr->bStatic ); }else if( isFinal ){ sqlite3_result_text(ctx, pStr->zBuf, (int)pStr->nUsed, - pStr->bStatic ? SQLITE_TRANSIENT : sqlite3_free); + pStr->bStatic ? SQLITE_TRANSIENT : + (void(*)(void*))sqlite3RCStrUnref); pStr->bStatic = 1; }else{ sqlite3_result_text(ctx, pStr->zBuf, (int)pStr->nUsed, SQLITE_TRANSIENT); @@ -202600,7 +204576,6 @@ static int jsonEachOpenTree(sqlite3_vtab *p, sqlite3_vtab_cursor **ppCursor){ /* Reset a JsonEachCursor back to its original state. Free any memory ** held. */ static void jsonEachCursorReset(JsonEachCursor *p){ - sqlite3_free(p->zJson); sqlite3_free(p->zRoot); jsonParseReset(&p->sParse); p->iRowid = 0; @@ -202738,7 +204713,7 @@ static int jsonEachColumn( case JEACH_KEY: { if( p->i==0 ) break; if( p->eType==JSON_OBJECT ){ - jsonReturn(pThis, ctx, 0); + jsonReturn(&p->sParse, pThis, ctx); }else if( p->eType==JSON_ARRAY ){ u32 iKey; if( p->bRecursive ){ @@ -202754,7 +204729,7 @@ static int jsonEachColumn( } case JEACH_VALUE: { if( pThis->jnFlags & JNODE_LABEL ) pThis++; - jsonReturn(pThis, ctx, 0); + jsonReturn(&p->sParse, pThis, ctx); break; } case JEACH_TYPE: { @@ -202765,7 +204740,7 @@ static int jsonEachColumn( case JEACH_ATOM: { if( pThis->jnFlags & JNODE_LABEL ) pThis++; if( pThis->eType>=JSON_ARRAY ) break; - jsonReturn(pThis, ctx, 0); + jsonReturn(&p->sParse, pThis, ctx); break; } case JEACH_ID: { @@ -202920,11 +204895,19 @@ static int jsonEachFilter( if( idxNum==0 ) return SQLITE_OK; z = (const char*)sqlite3_value_text(argv[0]); if( z==0 ) return SQLITE_OK; - n = sqlite3_value_bytes(argv[0]); - p->zJson = sqlite3_malloc64( n+1 ); - if( p->zJson==0 ) return SQLITE_NOMEM; - memcpy(p->zJson, z, (size_t)n+1); - if( jsonParse(&p->sParse, 0, p->zJson) ){ + memset(&p->sParse, 0, sizeof(p->sParse)); + p->sParse.nJPRef = 1; + if( sqlite3ValueIsOfClass(argv[0], (void(*)(void*))sqlite3RCStrUnref) ){ + p->sParse.zJson = sqlite3RCStrRef((char*)z); + }else{ + n = sqlite3_value_bytes(argv[0]); + p->sParse.zJson = sqlite3RCStrNew( n+1 ); + if( p->sParse.zJson==0 ) return SQLITE_NOMEM; + memcpy(p->sParse.zJson, z, (size_t)n+1); + } + p->sParse.bJsonIsRCStr = 1; + p->zJson = p->sParse.zJson; + if( jsonParse(&p->sParse, 0) ){ int rc = SQLITE_NOMEM; if( p->sParse.oom==0 ){ sqlite3_free(cur->pVtab->zErrMsg); @@ -203202,6 +205185,11 @@ typedef unsigned int u32; #endif #endif /* !defined(SQLITE_AMALGAMATION) */ +/* Macro to check for 4-byte alignment. Only used inside of assert() */ +#ifdef SQLITE_DEBUG +# define FOUR_BYTE_ALIGNED(X) ((((char*)(X) - (char*)0) & 3)==0) +#endif + /* #include */ /* #include */ /* #include */ @@ -203608,7 +205596,7 @@ static int readInt16(u8 *p){ return (p[0]<<8) + p[1]; } static void readCoord(u8 *p, RtreeCoord *pCoord){ - assert( (((sqlite3_uint64)p)&3)==0 ); /* p is always 4-byte aligned */ + assert( FOUR_BYTE_ALIGNED(p) ); #if SQLITE_BYTEORDER==1234 && MSVC_VERSION>=1300 pCoord->u = _byteswap_ulong(*(u32*)p); #elif SQLITE_BYTEORDER==1234 && GCC_VERSION>=4003000 @@ -203662,7 +205650,7 @@ static void writeInt16(u8 *p, int i){ } static int writeCoord(u8 *p, RtreeCoord *pCoord){ u32 i; - assert( (((sqlite3_uint64)p)&3)==0 ); /* p is always 4-byte aligned */ + assert( FOUR_BYTE_ALIGNED(p) ); assert( sizeof(RtreeCoord)==4 ); assert( sizeof(u32)==4 ); #if SQLITE_BYTEORDER==1234 && GCC_VERSION>=4003000 @@ -204390,7 +206378,7 @@ static void rtreeNonleafConstraint( assert(p->op==RTREE_LE || p->op==RTREE_LT || p->op==RTREE_GE || p->op==RTREE_GT || p->op==RTREE_EQ || p->op==RTREE_TRUE || p->op==RTREE_FALSE ); - assert( (((sqlite3_uint64)pCellData)&3)==0 ); /* 4-byte aligned */ + assert( FOUR_BYTE_ALIGNED(pCellData) ); switch( p->op ){ case RTREE_TRUE: return; /* Always satisfied */ case RTREE_FALSE: break; /* Never satisfied */ @@ -204443,7 +206431,7 @@ static void rtreeLeafConstraint( || p->op==RTREE_GT || p->op==RTREE_EQ || p->op==RTREE_TRUE || p->op==RTREE_FALSE ); pCellData += 8 + p->iCoord*4; - assert( (((sqlite3_uint64)pCellData)&3)==0 ); /* 4-byte aligned */ + assert( FOUR_BYTE_ALIGNED(pCellData) ); RTREE_DECODE_COORD(eInt, pCellData, xN); switch( p->op ){ case RTREE_TRUE: return; /* Always satisfied */ @@ -205013,7 +207001,20 @@ static int rtreeFilter( p->pInfo->nCoord = pRtree->nDim2; p->pInfo->anQueue = pCsr->anQueue; p->pInfo->mxLevel = pRtree->iDepth + 1; - }else if( eType==SQLITE_INTEGER || eType==SQLITE_FLOAT ){ + }else if( eType==SQLITE_INTEGER ){ + sqlite3_int64 iVal = sqlite3_value_int64(argv[ii]); +#ifdef SQLITE_RTREE_INT_ONLY + p->u.rValue = iVal; +#else + p->u.rValue = (double)iVal; + if( iVal>=((sqlite3_int64)1)<<48 + || iVal<=-(((sqlite3_int64)1)<<48) + ){ + if( p->op==RTREE_LT ) p->op = RTREE_LE; + if( p->op==RTREE_GT ) p->op = RTREE_GE; + } +#endif + }else if( eType==SQLITE_FLOAT ){ #ifdef SQLITE_RTREE_INT_ONLY p->u.rValue = sqlite3_value_int64(argv[ii]); #else @@ -205144,11 +207145,12 @@ static int rtreeBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo){ || p->op==SQLITE_INDEX_CONSTRAINT_MATCH) ){ u8 op; + u8 doOmit = 1; switch( p->op ){ - case SQLITE_INDEX_CONSTRAINT_EQ: op = RTREE_EQ; break; - case SQLITE_INDEX_CONSTRAINT_GT: op = RTREE_GT; break; + case SQLITE_INDEX_CONSTRAINT_EQ: op = RTREE_EQ; doOmit = 0; break; + case SQLITE_INDEX_CONSTRAINT_GT: op = RTREE_GT; doOmit = 0; break; case SQLITE_INDEX_CONSTRAINT_LE: op = RTREE_LE; break; - case SQLITE_INDEX_CONSTRAINT_LT: op = RTREE_LT; break; + case SQLITE_INDEX_CONSTRAINT_LT: op = RTREE_LT; doOmit = 0; break; case SQLITE_INDEX_CONSTRAINT_GE: op = RTREE_GE; break; case SQLITE_INDEX_CONSTRAINT_MATCH: op = RTREE_MATCH; break; default: op = 0; break; @@ -205157,7 +207159,7 @@ static int rtreeBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo){ zIdxStr[iIdx++] = op; zIdxStr[iIdx++] = (char)(p->iColumn - 1 + '0'); pIdxInfo->aConstraintUsage[ii].argvIndex = (iIdx/2); - pIdxInfo->aConstraintUsage[ii].omit = 1; + pIdxInfo->aConstraintUsage[ii].omit = doOmit; } } } @@ -218645,6 +220647,7 @@ static int sessionPreupdateEqual( rc = pSession->hook.xOld(pSession->hook.pCtx, iCol, &pVal); } assert( rc==SQLITE_OK ); + (void)rc; /* Suppress warning about unused variable */ if( sqlite3_value_type(pVal)!=eType ) return 0; /* A SessionChange object never has a NULL value in a PK column */ @@ -220989,15 +222992,19 @@ static int sessionReadRecord( } } if( eType==SQLITE_INTEGER || eType==SQLITE_FLOAT ){ - sqlite3_int64 v = sessionGetI64(aVal); - if( eType==SQLITE_INTEGER ){ - sqlite3VdbeMemSetInt64(apOut[i], v); + if( (pIn->nData-pIn->iNext)<8 ){ + rc = SQLITE_CORRUPT_BKPT; }else{ - double d; - memcpy(&d, &v, 8); - sqlite3VdbeMemSetDouble(apOut[i], d); + sqlite3_int64 v = sessionGetI64(aVal); + if( eType==SQLITE_INTEGER ){ + sqlite3VdbeMemSetInt64(apOut[i], v); + }else{ + double d; + memcpy(&d, &v, 8); + sqlite3VdbeMemSetDouble(apOut[i], d); + } + pIn->iNext += 8; } - pIn->iNext += 8; } } } @@ -224060,7 +226067,7 @@ struct Fts5PhraseIter { ** See xPhraseFirstColumn above. */ struct Fts5ExtensionApi { - int iVersion; /* Currently always set to 3 */ + int iVersion; /* Currently always set to 2 */ void *(*xUserData)(Fts5Context*); @@ -224289,8 +226296,8 @@ struct Fts5ExtensionApi { ** as separate queries of the FTS index are required for each synonym. ** ** When using methods (2) or (3), it is important that the tokenizer only -** provide synonyms when tokenizing document text (method (2)) or query -** text (method (3)), not both. Doing so will not cause any errors, but is +** provide synonyms when tokenizing document text (method (3)) or query +** text (method (2)), not both. Doing so will not cause any errors, but is ** inefficient. */ typedef struct Fts5Tokenizer Fts5Tokenizer; @@ -224338,7 +226345,7 @@ struct fts5_api { int (*xCreateTokenizer)( fts5_api *pApi, const char *zName, - void *pContext, + void *pUserData, fts5_tokenizer *pTokenizer, void (*xDestroy)(void*) ); @@ -224347,7 +226354,7 @@ struct fts5_api { int (*xFindTokenizer)( fts5_api *pApi, const char *zName, - void **ppContext, + void **ppUserData, fts5_tokenizer *pTokenizer ); @@ -224355,7 +226362,7 @@ struct fts5_api { int (*xCreateFunction)( fts5_api *pApi, const char *zName, - void *pContext, + void *pUserData, fts5_extension_function xFunction, void (*xDestroy)(void*) ); @@ -224527,6 +226534,10 @@ typedef struct Fts5Config Fts5Config; ** attempt to merge together. A value of 1 sets the object to use the ** compile time default. Zero disables auto-merge altogether. ** +** bContentlessDelete: +** True if the contentless_delete option was present in the CREATE +** VIRTUAL TABLE statement. +** ** zContent: ** ** zContentRowid: @@ -224561,6 +226572,7 @@ struct Fts5Config { int nPrefix; /* Number of prefix indexes */ int *aPrefix; /* Sizes in bytes of nPrefix prefix indexes */ int eContent; /* An FTS5_CONTENT value */ + int bContentlessDelete; /* "contentless_delete=" option (dflt==0) */ char *zContent; /* content table */ char *zContentRowid; /* "content_rowid=" option value */ int bColumnsize; /* "columnsize=" option value (dflt==1) */ @@ -224582,6 +226594,7 @@ struct Fts5Config { char *zRank; /* Name of rank function */ char *zRankArgs; /* Arguments to rank function */ int bSecureDelete; /* 'secure-delete' */ + int nDeleteMerge; /* 'deletemerge' */ /* If non-NULL, points to sqlite3_vtab.base.zErrmsg. Often NULL. */ char **pzErrmsg; @@ -224904,6 +226917,9 @@ static int sqlite3Fts5IndexReset(Fts5Index *p); static int sqlite3Fts5IndexLoadConfig(Fts5Index *p); +static int sqlite3Fts5IndexGetOrigin(Fts5Index *p, i64 *piOrigin); +static int sqlite3Fts5IndexContentlessDelete(Fts5Index *p, i64 iOrigin, i64 iRowid); + /* ** End of interface to code in fts5_index.c. **************************************************************************/ @@ -224988,6 +227004,11 @@ static int sqlite3Fts5HashWrite( */ static void sqlite3Fts5HashClear(Fts5Hash*); +/* +** Return true if the hash is empty, false otherwise. +*/ +static int sqlite3Fts5HashIsEmpty(Fts5Hash*); + static int sqlite3Fts5HashQuery( Fts5Hash*, /* Hash table to query */ int nPre, @@ -225009,6 +227030,7 @@ static void sqlite3Fts5HashScanEntry(Fts5Hash *, ); + /* ** End of interface to code in fts5_hash.c. **************************************************************************/ @@ -225252,7 +227274,8 @@ static void sqlite3Fts5UnicodeAscii(u8*, u8*); #define FTS5_STAR 15 /* This file is automatically generated by Lemon from input grammar -** source file "fts5parse.y". */ +** source file "fts5parse.y". +*/ /* ** 2000-05-29 ** @@ -227880,6 +229903,8 @@ static void sqlite3Fts5TermsetFree(Fts5Termset *p){ #define FTS5_DEFAULT_CRISISMERGE 16 #define FTS5_DEFAULT_HASHSIZE (1024*1024) +#define FTS5_DEFAULT_DELETE_AUTOMERGE 10 /* default 10% */ + /* Maximum allowed page size */ #define FTS5_MAX_PAGE_SIZE (64*1024) @@ -228210,6 +230235,16 @@ static int fts5ConfigParseSpecial( return rc; } + if( sqlite3_strnicmp("contentless_delete", zCmd, nCmd)==0 ){ + if( (zArg[0]!='0' && zArg[0]!='1') || zArg[1]!='\0' ){ + *pzErr = sqlite3_mprintf("malformed contentless_delete=... directive"); + rc = SQLITE_ERROR; + }else{ + pConfig->bContentlessDelete = (zArg[0]=='1'); + } + return rc; + } + if( sqlite3_strnicmp("content_rowid", zCmd, nCmd)==0 ){ if( pConfig->zContentRowid ){ *pzErr = sqlite3_mprintf("multiple content_rowid=... directives"); @@ -228454,6 +230489,28 @@ static int sqlite3Fts5ConfigParse( sqlite3_free(zTwo); } + /* We only allow contentless_delete=1 if the table is indeed contentless. */ + if( rc==SQLITE_OK + && pRet->bContentlessDelete + && pRet->eContent!=FTS5_CONTENT_NONE + ){ + *pzErr = sqlite3_mprintf( + "contentless_delete=1 requires a contentless table" + ); + rc = SQLITE_ERROR; + } + + /* We only allow contentless_delete=1 if columnsize=0 is not present. + ** + ** This restriction may be removed at some point. + */ + if( rc==SQLITE_OK && pRet->bContentlessDelete && pRet->bColumnsize==0 ){ + *pzErr = sqlite3_mprintf( + "contentless_delete=1 is incompatible with columnsize=0" + ); + rc = SQLITE_ERROR; + } + /* If a tokenizer= option was successfully parsed, the tokenizer has ** already been allocated. Otherwise, allocate an instance of the default ** tokenizer (unicode61) now. */ @@ -228748,6 +230805,18 @@ static int sqlite3Fts5ConfigSetValue( } } + else if( 0==sqlite3_stricmp(zKey, "deletemerge") ){ + int nVal = -1; + if( SQLITE_INTEGER==sqlite3_value_numeric_type(pVal) ){ + nVal = sqlite3_value_int(pVal); + }else{ + *pbBadkey = 1; + } + if( nVal<0 ) nVal = FTS5_DEFAULT_DELETE_AUTOMERGE; + if( nVal>100 ) nVal = 0; + pConfig->nDeleteMerge = nVal; + } + else if( 0==sqlite3_stricmp(zKey, "rank") ){ const char *zIn = (const char*)sqlite3_value_text(pVal); char *zRank; @@ -228796,6 +230865,7 @@ static int sqlite3Fts5ConfigLoad(Fts5Config *pConfig, int iCookie){ pConfig->nUsermerge = FTS5_DEFAULT_USERMERGE; pConfig->nCrisisMerge = FTS5_DEFAULT_CRISISMERGE; pConfig->nHashSize = FTS5_DEFAULT_HASHSIZE; + pConfig->nDeleteMerge = FTS5_DEFAULT_DELETE_AUTOMERGE; zSql = sqlite3Fts5Mprintf(&rc, zSelect, pConfig->zDb, pConfig->zName); if( zSql ){ @@ -231319,7 +233389,7 @@ static Fts5ExprNode *sqlite3Fts5ParseImplicitAnd( return pRet; } -#ifdef SQLITE_TEST +#if defined(SQLITE_TEST) || defined(SQLITE_FTS5_DEBUG) static char *fts5ExprTermPrint(Fts5ExprTerm *pTerm){ sqlite3_int64 nByte = 0; Fts5ExprTerm *p; @@ -231425,6 +233495,8 @@ static char *fts5ExprPrintTcl( if( zRet==0 ) return 0; } + }else if( pExpr->eType==0 ){ + zRet = sqlite3_mprintf("{}"); }else{ char const *zOp = 0; int i; @@ -231686,14 +233758,14 @@ static void fts5ExprFold( sqlite3_result_int(pCtx, sqlite3Fts5UnicodeFold(iCode, bRemoveDiacritics)); } } -#endif /* ifdef SQLITE_TEST */ +#endif /* if SQLITE_TEST || SQLITE_FTS5_DEBUG */ /* ** This is called during initialization to register the fts5_expr() scalar ** UDF with the SQLite handle passed as the only argument. */ static int sqlite3Fts5ExprInit(Fts5Global *pGlobal, sqlite3 *db){ -#ifdef SQLITE_TEST +#if defined(SQLITE_TEST) || defined(SQLITE_FTS5_DEBUG) struct Fts5ExprFunc { const char *z; void (*x)(sqlite3_context*,int,sqlite3_value**); @@ -232453,7 +234525,6 @@ static int fts5HashEntrySort( pList = fts5HashEntryMerge(pList, ap[i]); } - pHash->nEntry = 0; sqlite3_free(ap); *ppSorted = pList; return SQLITE_OK; @@ -232507,6 +234578,28 @@ static int sqlite3Fts5HashScanInit( return fts5HashEntrySort(p, pTerm, nTerm, &p->pScan); } +#ifdef SQLITE_DEBUG +static int fts5HashCount(Fts5Hash *pHash){ + int nEntry = 0; + int ii; + for(ii=0; iinSlot; ii++){ + Fts5HashEntry *p = 0; + for(p=pHash->aSlot[ii]; p; p=p->pHashNext){ + nEntry++; + } + } + return nEntry; +} +#endif + +/* +** Return true if the hash table is empty, false otherwise. +*/ +static int sqlite3Fts5HashIsEmpty(Fts5Hash *pHash){ + assert( pHash->nEntry==fts5HashCount(pHash) ); + return pHash->nEntry==0; +} + static void sqlite3Fts5HashScanNext(Fts5Hash *p){ assert( !sqlite3Fts5HashScanEof(p) ); p->pScan = p->pScan->pScanNext; @@ -232595,6 +234688,24 @@ static void sqlite3Fts5HashScanEntry( #define FTS5_MAX_LEVEL 64 +/* +** There are two versions of the format used for the structure record: +** +** 1. the legacy format, that may be read by all fts5 versions, and +** +** 2. the V2 format, which is used by contentless_delete=1 databases. +** +** Both begin with a 4-byte "configuration cookie" value. Then, a legacy +** format structure record contains a varint - the number of levels in +** the structure. Whereas a V2 structure record contains the constant +** 4 bytes [0xff 0x00 0x00 0x01]. This is unambiguous as the value of a +** varint has to be at least 16256 to begin with "0xFF". And the default +** maximum number of levels is 64. +** +** See below for more on structure record formats. +*/ +#define FTS5_STRUCTURE_V2 "\xFF\x00\x00\x01" + /* ** Details: ** @@ -232602,7 +234713,7 @@ static void sqlite3Fts5HashScanEntry( ** ** CREATE TABLE %_data(id INTEGER PRIMARY KEY, block BLOB); ** -** , contains the following 5 types of records. See the comments surrounding +** , contains the following 6 types of records. See the comments surrounding ** the FTS5_*_ROWID macros below for a description of how %_data rowids are ** assigned to each fo them. ** @@ -232611,12 +234722,12 @@ static void sqlite3Fts5HashScanEntry( ** The set of segments that make up an index - the index structure - are ** recorded in a single record within the %_data table. The record consists ** of a single 32-bit configuration cookie value followed by a list of -** SQLite varints. If the FTS table features more than one index (because -** there are one or more prefix indexes), it is guaranteed that all share -** the same cookie value. +** SQLite varints. ** -** Immediately following the configuration cookie, the record begins with -** three varints: +** If the structure record is a V2 record, the configuration cookie is +** followed by the following 4 bytes: [0xFF 0x00 0x00 0x01]. +** +** Next, the record continues with three varints: ** ** + number of levels, ** + total number of segments on all levels, @@ -232631,6 +234742,12 @@ static void sqlite3Fts5HashScanEntry( ** + first leaf page number (often 1, always greater than 0) ** + final leaf page number ** +** Then, for V2 structures only: +** +** + lower origin counter value, +** + upper origin counter value, +** + the number of tombstone hash pages. +** ** 2. The Averages Record: ** ** A single record within the %_data table. The data is a list of varints. @@ -232746,6 +234863,38 @@ static void sqlite3Fts5HashScanEntry( ** * A list of delta-encoded varints - the first rowid on each subsequent ** child page. ** +** 6. Tombstone Hash Page +** +** These records are only ever present in contentless_delete=1 tables. +** There are zero or more of these associated with each segment. They +** are used to store the tombstone rowids for rows contained in the +** associated segments. +** +** The set of nHashPg tombstone hash pages associated with a single +** segment together form a single hash table containing tombstone rowids. +** To find the page of the hash on which a key might be stored: +** +** iPg = (rowid % nHashPg) +** +** Then, within page iPg, which has nSlot slots: +** +** iSlot = (rowid / nHashPg) % nSlot +** +** Each tombstone hash page begins with an 8 byte header: +** +** 1-byte: Key-size (the size in bytes of each slot). Either 4 or 8. +** 1-byte: rowid-0-tombstone flag. This flag is only valid on the +** first tombstone hash page for each segment (iPg=0). If set, +** the hash table contains rowid 0. If clear, it does not. +** Rowid 0 is handled specially. +** 2-bytes: unused. +** 4-bytes: Big-endian integer containing number of entries on page. +** +** Following this are nSlot 4 or 8 byte slots (depending on the key-size +** in the first byte of the page header). The number of slots may be +** determined based on the size of the page record and the key-size: +** +** nSlot = (nByte - 8) / key-size */ /* @@ -232779,6 +234928,7 @@ static void sqlite3Fts5HashScanEntry( #define FTS5_SEGMENT_ROWID(segid, pgno) fts5_dri(segid, 0, 0, pgno) #define FTS5_DLIDX_ROWID(segid, height, pgno) fts5_dri(segid, 1, height, pgno) +#define FTS5_TOMBSTONE_ROWID(segid,ipg) fts5_dri(segid+(1<<16), 0, 0, ipg) #ifdef SQLITE_DEBUG static int sqlite3Fts5Corrupt() { return SQLITE_CORRUPT_VTAB; } @@ -232814,6 +234964,12 @@ struct Fts5Data { /* ** One object per %_data table. +** +** nContentlessDelete: +** The number of contentless delete operations since the most recent +** call to fts5IndexFlush() or fts5IndexDiscardData(). This is tracked +** so that extra auto-merge work can be done by fts5IndexFlush() to +** account for the delete operations. */ struct Fts5Index { Fts5Config *pConfig; /* Virtual table configuration */ @@ -232828,6 +234984,8 @@ struct Fts5Index { int nPendingData; /* Current bytes of pending data */ i64 iWriteRowid; /* Rowid for current doc being written */ int bDelete; /* Current write is a delete */ + int nContentlessDelete; /* Number of contentless delete ops */ + int nPendingRow; /* Number of INSERT in hash table */ /* Error state. */ int rc; /* Current error code */ @@ -232862,11 +235020,23 @@ struct Fts5DoclistIter { ** The contents of the "structure" record for each index are represented ** using an Fts5Structure record in memory. Which uses instances of the ** other Fts5StructureXXX types as components. +** +** nOriginCntr: +** This value is set to non-zero for structure records created for +** contentlessdelete=1 tables only. In that case it represents the +** origin value to apply to the next top-level segment created. */ struct Fts5StructureSegment { int iSegid; /* Segment id */ int pgnoFirst; /* First leaf page number in segment */ int pgnoLast; /* Last leaf page number in segment */ + + /* contentlessdelete=1 tables only: */ + u64 iOrigin1; + u64 iOrigin2; + int nPgTombstone; /* Number of tombstone hash table pages */ + u64 nEntryTombstone; /* Number of tombstone entries that "count" */ + u64 nEntry; /* Number of rows in this segment */ }; struct Fts5StructureLevel { int nMerge; /* Number of segments in incr-merge */ @@ -232876,6 +235046,7 @@ struct Fts5StructureLevel { struct Fts5Structure { int nRef; /* Object reference count */ u64 nWriteCounter; /* Total leaves written to level 0 */ + u64 nOriginCntr; /* Origin value for next top-level segment */ int nSegment; /* Total segments in this structure */ int nLevel; /* Number of levels in this index */ Fts5StructureLevel aLevel[1]; /* Array of nLevel level objects */ @@ -232964,6 +235135,13 @@ struct Fts5CResult { ** ** iTermIdx: ** Index of current term on iTermLeafPgno. +** +** apTombstone/nTombstone: +** These are used for contentless_delete=1 tables only. When the cursor +** is first allocated, the apTombstone[] array is allocated so that it +** is large enough for all tombstones hash pages associated with the +** segment. The pages themselves are loaded lazily from the database as +** they are required. */ struct Fts5SegIter { Fts5StructureSegment *pSeg; /* Segment to iterate through */ @@ -232972,6 +235150,8 @@ struct Fts5SegIter { Fts5Data *pLeaf; /* Current leaf data */ Fts5Data *pNextLeaf; /* Leaf page (iLeafPgno+1) */ i64 iLeafOffset; /* Byte offset within current leaf */ + Fts5Data **apTombstone; /* Array of tombstone pages */ + int nTombstone; /* Next method */ void (*xNext)(Fts5Index*, Fts5SegIter*, int*); @@ -233101,6 +235281,60 @@ static u16 fts5GetU16(const u8 *aIn){ return ((u16)aIn[0] << 8) + aIn[1]; } +/* +** The only argument points to a buffer at least 8 bytes in size. This +** function interprets the first 8 bytes of the buffer as a 64-bit big-endian +** unsigned integer and returns the result. +*/ +static u64 fts5GetU64(u8 *a){ + return ((u64)a[0] << 56) + + ((u64)a[1] << 48) + + ((u64)a[2] << 40) + + ((u64)a[3] << 32) + + ((u64)a[4] << 24) + + ((u64)a[5] << 16) + + ((u64)a[6] << 8) + + ((u64)a[7] << 0); +} + +/* +** The only argument points to a buffer at least 4 bytes in size. This +** function interprets the first 4 bytes of the buffer as a 32-bit big-endian +** unsigned integer and returns the result. +*/ +static u32 fts5GetU32(const u8 *a){ + return ((u32)a[0] << 24) + + ((u32)a[1] << 16) + + ((u32)a[2] << 8) + + ((u32)a[3] << 0); +} + +/* +** Write iVal, formated as a 64-bit big-endian unsigned integer, to the +** buffer indicated by the first argument. +*/ +static void fts5PutU64(u8 *a, u64 iVal){ + a[0] = ((iVal >> 56) & 0xFF); + a[1] = ((iVal >> 48) & 0xFF); + a[2] = ((iVal >> 40) & 0xFF); + a[3] = ((iVal >> 32) & 0xFF); + a[4] = ((iVal >> 24) & 0xFF); + a[5] = ((iVal >> 16) & 0xFF); + a[6] = ((iVal >> 8) & 0xFF); + a[7] = ((iVal >> 0) & 0xFF); +} + +/* +** Write iVal, formated as a 32-bit big-endian unsigned integer, to the +** buffer indicated by the first argument. +*/ +static void fts5PutU32(u8 *a, u32 iVal){ + a[0] = ((iVal >> 24) & 0xFF); + a[1] = ((iVal >> 16) & 0xFF); + a[2] = ((iVal >> 8) & 0xFF); + a[3] = ((iVal >> 0) & 0xFF); +} + /* ** Allocate and return a buffer at least nByte bytes in size. ** @@ -233328,10 +235562,17 @@ static void fts5DataDelete(Fts5Index *p, i64 iFirst, i64 iLast){ /* ** Remove all records associated with segment iSegid. */ -static void fts5DataRemoveSegment(Fts5Index *p, int iSegid){ +static void fts5DataRemoveSegment(Fts5Index *p, Fts5StructureSegment *pSeg){ + int iSegid = pSeg->iSegid; i64 iFirst = FTS5_SEGMENT_ROWID(iSegid, 0); i64 iLast = FTS5_SEGMENT_ROWID(iSegid+1, 0)-1; fts5DataDelete(p, iFirst, iLast); + + if( pSeg->nPgTombstone ){ + i64 iTomb1 = FTS5_TOMBSTONE_ROWID(iSegid, 0); + i64 iTomb2 = FTS5_TOMBSTONE_ROWID(iSegid, pSeg->nPgTombstone-1); + fts5DataDelete(p, iTomb1, iTomb2); + } if( p->pIdxDeleter==0 ){ Fts5Config *pConfig = p->pConfig; fts5IndexPrepareStmt(p, &p->pIdxDeleter, sqlite3_mprintf( @@ -233442,11 +235683,19 @@ static int fts5StructureDecode( int nSegment = 0; sqlite3_int64 nByte; /* Bytes of space to allocate at pRet */ Fts5Structure *pRet = 0; /* Structure object to return */ + int bStructureV2 = 0; /* True for FTS5_STRUCTURE_V2 */ + u64 nOriginCntr = 0; /* Largest origin value seen so far */ /* Grab the cookie value */ if( piCookie ) *piCookie = sqlite3Fts5Get32(pData); i = 4; + /* Check if this is a V2 structure record. Set bStructureV2 if it is. */ + if( 0==memcmp(&pData[i], FTS5_STRUCTURE_V2, 4) ){ + i += 4; + bStructureV2 = 1; + } + /* Read the total number of levels and segments from the start of the ** structure record. */ i += fts5GetVarint32(&pData[i], nLevel); @@ -233497,6 +235746,14 @@ static int fts5StructureDecode( i += fts5GetVarint32(&pData[i], pSeg->iSegid); i += fts5GetVarint32(&pData[i], pSeg->pgnoFirst); i += fts5GetVarint32(&pData[i], pSeg->pgnoLast); + if( bStructureV2 ){ + i += fts5GetVarint(&pData[i], &pSeg->iOrigin1); + i += fts5GetVarint(&pData[i], &pSeg->iOrigin2); + i += fts5GetVarint32(&pData[i], pSeg->nPgTombstone); + i += fts5GetVarint(&pData[i], &pSeg->nEntryTombstone); + i += fts5GetVarint(&pData[i], &pSeg->nEntry); + nOriginCntr = MAX(nOriginCntr, pSeg->iOrigin2); + } if( pSeg->pgnoLastpgnoFirst ){ rc = FTS5_CORRUPT; break; @@ -233507,6 +235764,9 @@ static int fts5StructureDecode( } } if( nSegment!=0 && rc==SQLITE_OK ) rc = FTS5_CORRUPT; + if( bStructureV2 ){ + pRet->nOriginCntr = nOriginCntr+1; + } if( rc!=SQLITE_OK ){ fts5StructureRelease(pRet); @@ -233719,6 +235979,7 @@ static void fts5StructureWrite(Fts5Index *p, Fts5Structure *pStruct){ Fts5Buffer buf; /* Buffer to serialize record into */ int iLvl; /* Used to iterate through levels */ int iCookie; /* Cookie value to store */ + int nHdr = (pStruct->nOriginCntr>0 ? (4+4+9+9+9) : (4+9+9)); assert( pStruct->nSegment==fts5StructureCountSegments(pStruct) ); memset(&buf, 0, sizeof(Fts5Buffer)); @@ -233727,9 +235988,12 @@ static void fts5StructureWrite(Fts5Index *p, Fts5Structure *pStruct){ iCookie = p->pConfig->iCookie; if( iCookie<0 ) iCookie = 0; - if( 0==sqlite3Fts5BufferSize(&p->rc, &buf, 4+9+9+9) ){ + if( 0==sqlite3Fts5BufferSize(&p->rc, &buf, nHdr) ){ sqlite3Fts5Put32(buf.p, iCookie); buf.n = 4; + if( pStruct->nOriginCntr>0 ){ + fts5BufferSafeAppendBlob(&buf, FTS5_STRUCTURE_V2, 4); + } fts5BufferSafeAppendVarint(&buf, pStruct->nLevel); fts5BufferSafeAppendVarint(&buf, pStruct->nSegment); fts5BufferSafeAppendVarint(&buf, (i64)pStruct->nWriteCounter); @@ -233743,9 +236007,17 @@ static void fts5StructureWrite(Fts5Index *p, Fts5Structure *pStruct){ assert( pLvl->nMerge<=pLvl->nSeg ); for(iSeg=0; iSegnSeg; iSeg++){ - fts5BufferAppendVarint(&p->rc, &buf, pLvl->aSeg[iSeg].iSegid); - fts5BufferAppendVarint(&p->rc, &buf, pLvl->aSeg[iSeg].pgnoFirst); - fts5BufferAppendVarint(&p->rc, &buf, pLvl->aSeg[iSeg].pgnoLast); + Fts5StructureSegment *pSeg = &pLvl->aSeg[iSeg]; + fts5BufferAppendVarint(&p->rc, &buf, pSeg->iSegid); + fts5BufferAppendVarint(&p->rc, &buf, pSeg->pgnoFirst); + fts5BufferAppendVarint(&p->rc, &buf, pSeg->pgnoLast); + if( pStruct->nOriginCntr>0 ){ + fts5BufferAppendVarint(&p->rc, &buf, pSeg->iOrigin1); + fts5BufferAppendVarint(&p->rc, &buf, pSeg->iOrigin2); + fts5BufferAppendVarint(&p->rc, &buf, pSeg->nPgTombstone); + fts5BufferAppendVarint(&p->rc, &buf, pSeg->nEntryTombstone); + fts5BufferAppendVarint(&p->rc, &buf, pSeg->nEntry); + } } } @@ -234268,6 +236540,23 @@ static void fts5SegIterSetNext(Fts5Index *p, Fts5SegIter *pIter){ } } +/* +** Allocate a tombstone hash page array (pIter->apTombstone) for the +** iterator passed as the second argument. If an OOM error occurs, leave +** an error in the Fts5Index object. +*/ +static void fts5SegIterAllocTombstone(Fts5Index *p, Fts5SegIter *pIter){ + const int nTomb = pIter->pSeg->nPgTombstone; + if( nTomb>0 ){ + Fts5Data **apTomb = 0; + apTomb = (Fts5Data**)sqlite3Fts5MallocZero(&p->rc, sizeof(Fts5Data)*nTomb); + if( apTomb ){ + pIter->apTombstone = apTomb; + pIter->nTombstone = nTomb; + } + } +} + /* ** Initialize the iterator object pIter to iterate through the entries in ** segment pSeg. The iterator is left pointing to the first entry when @@ -234309,6 +236598,7 @@ static void fts5SegIterInit( pIter->iPgidxOff = pIter->pLeaf->szLeaf+1; fts5SegIterLoadTerm(p, pIter, 0); fts5SegIterLoadNPos(p, pIter); + fts5SegIterAllocTombstone(p, pIter); } } @@ -235010,6 +237300,7 @@ static void fts5SegIterSeekInit( } fts5SegIterSetNext(p, pIter); + fts5SegIterAllocTombstone(p, pIter); /* Either: ** @@ -235090,6 +237381,20 @@ static void fts5SegIterHashInit( fts5SegIterSetNext(p, pIter); } +/* +** Array ap[] contains n elements. Release each of these elements using +** fts5DataRelease(). Then free the array itself using sqlite3_free(). +*/ +static void fts5IndexFreeArray(Fts5Data **ap, int n){ + if( ap ){ + int ii; + for(ii=0; iiterm); fts5DataRelease(pIter->pLeaf); fts5DataRelease(pIter->pNextLeaf); + fts5IndexFreeArray(pIter->apTombstone, pIter->nTombstone); fts5DlidxIterFree(pIter->pDlidx); sqlite3_free(pIter->aRowidOffset); memset(pIter, 0, sizeof(Fts5SegIter)); @@ -235434,6 +237740,84 @@ static void fts5MultiIterSetEof(Fts5Iter *pIter){ pIter->iSwitchRowid = pSeg->iRowid; } +/* +** The argument to this macro must be an Fts5Data structure containing a +** tombstone hash page. This macro returns the key-size of the hash-page. +*/ +#define TOMBSTONE_KEYSIZE(pPg) (pPg->p[0]==4 ? 4 : 8) + +#define TOMBSTONE_NSLOT(pPg) \ + ((pPg->nn > 16) ? ((pPg->nn-8) / TOMBSTONE_KEYSIZE(pPg)) : 1) + +/* +** Query a single tombstone hash table for rowid iRowid. Return true if +** it is found or false otherwise. The tombstone hash table is one of +** nHashTable tables. +*/ +static int fts5IndexTombstoneQuery( + Fts5Data *pHash, /* Hash table page to query */ + int nHashTable, /* Number of pages attached to segment */ + u64 iRowid /* Rowid to query hash for */ +){ + const int szKey = TOMBSTONE_KEYSIZE(pHash); + const int nSlot = TOMBSTONE_NSLOT(pHash); + int iSlot = (iRowid / nHashTable) % nSlot; + int nCollide = nSlot; + + if( iRowid==0 ){ + return pHash->p[1]; + }else if( szKey==4 ){ + u32 *aSlot = (u32*)&pHash->p[8]; + while( aSlot[iSlot] ){ + if( fts5GetU32((u8*)&aSlot[iSlot])==iRowid ) return 1; + if( nCollide--==0 ) break; + iSlot = (iSlot+1)%nSlot; + } + }else{ + u64 *aSlot = (u64*)&pHash->p[8]; + while( aSlot[iSlot] ){ + if( fts5GetU64((u8*)&aSlot[iSlot])==iRowid ) return 1; + if( nCollide--==0 ) break; + iSlot = (iSlot+1)%nSlot; + } + } + + return 0; +} + +/* +** Return true if the iterator passed as the only argument points +** to an segment entry for which there is a tombstone. Return false +** if there is no tombstone or if the iterator is already at EOF. +*/ +static int fts5MultiIterIsDeleted(Fts5Iter *pIter){ + int iFirst = pIter->aFirst[1].iFirst; + Fts5SegIter *pSeg = &pIter->aSeg[iFirst]; + + if( pSeg->pLeaf && pSeg->nTombstone ){ + /* Figure out which page the rowid might be present on. */ + int iPg = ((u64)pSeg->iRowid) % pSeg->nTombstone; + assert( iPg>=0 ); + + /* If tombstone hash page iPg has not yet been loaded from the + ** database, load it now. */ + if( pSeg->apTombstone[iPg]==0 ){ + pSeg->apTombstone[iPg] = fts5DataRead(pIter->pIndex, + FTS5_TOMBSTONE_ROWID(pSeg->pSeg->iSegid, iPg) + ); + if( pSeg->apTombstone[iPg]==0 ) return 0; + } + + return fts5IndexTombstoneQuery( + pSeg->apTombstone[iPg], + pSeg->nTombstone, + pSeg->iRowid + ); + } + + return 0; +} + /* ** Move the iterator to the next entry. ** @@ -235471,7 +237855,9 @@ static void fts5MultiIterNext( fts5AssertMultiIterSetup(p, pIter); assert( pSeg==&pIter->aSeg[pIter->aFirst[1].iFirst] && pSeg->pLeaf ); - if( pIter->bSkipEmpty==0 || pSeg->nPos ){ + if( (pIter->bSkipEmpty==0 || pSeg->nPos) + && 0==fts5MultiIterIsDeleted(pIter) + ){ pIter->xSetOutputs(pIter, pSeg); return; } @@ -235503,7 +237889,9 @@ static void fts5MultiIterNext2( } fts5AssertMultiIterSetup(p, pIter); - }while( fts5MultiIterIsEmpty(p, pIter) ); + }while( (fts5MultiIterIsEmpty(p, pIter) || fts5MultiIterIsDeleted(pIter)) + && (p->rc==SQLITE_OK) + ); } } @@ -236058,7 +238446,9 @@ static void fts5MultiIterNew( fts5MultiIterSetEof(pNew); fts5AssertMultiIterSetup(p, pNew); - if( pNew->bSkipEmpty && fts5MultiIterIsEmpty(p, pNew) ){ + if( (pNew->bSkipEmpty && fts5MultiIterIsEmpty(p, pNew)) + || fts5MultiIterIsDeleted(pNew) + ){ fts5MultiIterNext(p, pNew, 0, 0); }else if( pNew->base.bEof==0 ){ Fts5SegIter *pSeg = &pNew->aSeg[pNew->aFirst[1].iFirst]; @@ -236236,7 +238626,9 @@ static void fts5IndexDiscardData(Fts5Index *p){ if( p->pHash ){ sqlite3Fts5HashClear(p->pHash); p->nPendingData = 0; + p->nPendingRow = 0; } + p->nContentlessDelete = 0; } /* @@ -236873,6 +239265,12 @@ static void fts5IndexMergeLevel( /* Read input from all segments in the input level */ nInput = pLvl->nSeg; + + /* Set the range of origins that will go into the output segment. */ + if( pStruct->nOriginCntr>0 ){ + pSeg->iOrigin1 = pLvl->aSeg[0].iOrigin1; + pSeg->iOrigin2 = pLvl->aSeg[pLvl->nSeg-1].iOrigin2; + } } bOldest = (pLvlOut->nSeg==1 && pStruct->nLevel==iLvl+2); @@ -236932,8 +239330,11 @@ static void fts5IndexMergeLevel( int i; /* Remove the redundant segments from the %_data table */ + assert( pSeg->nEntry==0 ); for(i=0; iaSeg[i].iSegid); + Fts5StructureSegment *pOld = &pLvl->aSeg[i]; + pSeg->nEntry += (pOld->nEntry - pOld->nEntryTombstone); + fts5DataRemoveSegment(p, pOld); } /* Remove the redundant segments from the input level */ @@ -236959,6 +239360,43 @@ static void fts5IndexMergeLevel( if( pnRem ) *pnRem -= writer.nLeafWritten; } +/* +** If this is not a contentless_delete=1 table, or if the 'deletemerge' +** configuration option is set to 0, then this function always returns -1. +** Otherwise, it searches the structure object passed as the second argument +** for a level suitable for merging due to having a large number of +** tombstones in the tombstone hash. If one is found, its index is returned. +** Otherwise, if there is no suitable level, -1. +*/ +static int fts5IndexFindDeleteMerge(Fts5Index *p, Fts5Structure *pStruct){ + Fts5Config *pConfig = p->pConfig; + int iRet = -1; + if( pConfig->bContentlessDelete && pConfig->nDeleteMerge>0 ){ + int ii; + int nBest = 0; + + for(ii=0; iinLevel; ii++){ + Fts5StructureLevel *pLvl = &pStruct->aLevel[ii]; + i64 nEntry = 0; + i64 nTomb = 0; + int iSeg; + for(iSeg=0; iSegnSeg; iSeg++){ + nEntry += pLvl->aSeg[iSeg].nEntry; + nTomb += pLvl->aSeg[iSeg].nEntryTombstone; + } + assert_nc( nEntry>0 || pLvl->nSeg==0 ); + if( nEntry>0 ){ + int nPercent = (nTomb * 100) / nEntry; + if( nPercent>=pConfig->nDeleteMerge && nPercent>nBest ){ + iRet = ii; + nBest = nPercent; + } + } + } + } + return iRet; +} + /* ** Do up to nPg pages of automerge work on the index. ** @@ -236978,14 +239416,15 @@ static int fts5IndexMerge( int iBestLvl = 0; /* Level offering the most input segments */ int nBest = 0; /* Number of input segments on best level */ - /* Set iBestLvl to the level to read input segments from. */ + /* Set iBestLvl to the level to read input segments from. Or to -1 if + ** there is no level suitable to merge segments from. */ assert( pStruct->nLevel>0 ); for(iLvl=0; iLvlnLevel; iLvl++){ Fts5StructureLevel *pLvl = &pStruct->aLevel[iLvl]; if( pLvl->nMerge ){ if( pLvl->nMerge>nBest ){ iBestLvl = iLvl; - nBest = pLvl->nMerge; + nBest = nMin; } break; } @@ -236994,22 +239433,18 @@ static int fts5IndexMerge( iBestLvl = iLvl; } } - - /* If nBest is still 0, then the index must be empty. */ -#ifdef SQLITE_DEBUG - for(iLvl=0; nBest==0 && iLvlnLevel; iLvl++){ - assert( pStruct->aLevel[iLvl].nSeg==0 ); + if( nBestaLevel[iBestLvl].nMerge==0 ){ - break; - } + if( iBestLvl<0 ) break; bRet = 1; fts5IndexMergeLevel(p, &pStruct, iBestLvl, &nRem); if( p->rc==SQLITE_OK && pStruct->aLevel[iBestLvl].nMerge==0 ){ fts5StructurePromote(p, iBestLvl+1, pStruct); } + + if( nMin==1 ) nMin = 2; } *ppStruct = pStruct; return bRet; @@ -237175,7 +239610,7 @@ static void fts5SecureDeleteOverflow( pLeaf = 0; }else if( bDetailNone ){ break; - }else if( iNext>=pLeaf->szLeaf || iNext<4 ){ + }else if( iNext>=pLeaf->szLeaf || pLeaf->nnszLeaf || iNext<4 ){ p->rc = FTS5_CORRUPT; break; }else{ @@ -237194,9 +239629,13 @@ static void fts5SecureDeleteOverflow( int i1 = pLeaf->szLeaf; int i2 = 0; + i1 += fts5GetVarint32(&aPg[i1], iFirst); + if( iFirstrc = FTS5_CORRUPT; + break; + } aIdx = sqlite3Fts5MallocZero(&p->rc, (pLeaf->nn-pLeaf->szLeaf)+2); if( aIdx==0 ) break; - i1 += fts5GetVarint32(&aPg[i1], iFirst); i2 = sqlite3Fts5PutVarint(aIdx, iFirst-nShift); if( i1nn ){ memcpy(&aIdx[i2], &aPg[i1], pLeaf->nn-i1); @@ -237379,7 +239818,9 @@ static void fts5DoSecureDelete( iOff += sqlite3Fts5PutVarint(&aPg[iOff], nPrefix); } iOff += sqlite3Fts5PutVarint(&aPg[iOff], nSuffix); - if( nPrefix2>nPrefix ){ + if( nPrefix2>pSeg->term.n ){ + p->rc = FTS5_CORRUPT; + }else if( nPrefix2>nPrefix ){ memcpy(&aPg[iOff], &pSeg->term.p[nPrefix], nPrefix2-nPrefix); iOff += (nPrefix2-nPrefix); } @@ -237389,80 +239830,79 @@ static void fts5DoSecureDelete( } } }else if( iStart==4 ){ - int iPgno; + int iPgno; - assert_nc( pSeg->iLeafPgno>pSeg->iTermLeafPgno ); - /* The entry being removed may be the only position list in - ** its doclist. */ - for(iPgno=pSeg->iLeafPgno-1; iPgno>pSeg->iTermLeafPgno; iPgno-- ){ - Fts5Data *pPg = fts5DataRead(p, FTS5_SEGMENT_ROWID(iSegid, iPgno)); - int bEmpty = (pPg && pPg->nn==4); - fts5DataRelease(pPg); - if( bEmpty==0 ) break; - } + assert_nc( pSeg->iLeafPgno>pSeg->iTermLeafPgno ); + /* The entry being removed may be the only position list in + ** its doclist. */ + for(iPgno=pSeg->iLeafPgno-1; iPgno>pSeg->iTermLeafPgno; iPgno-- ){ + Fts5Data *pPg = fts5DataRead(p, FTS5_SEGMENT_ROWID(iSegid, iPgno)); + int bEmpty = (pPg && pPg->nn==4); + fts5DataRelease(pPg); + if( bEmpty==0 ) break; + } - if( iPgno==pSeg->iTermLeafPgno ){ - i64 iId = FTS5_SEGMENT_ROWID(iSegid, pSeg->iTermLeafPgno); - Fts5Data *pTerm = fts5DataRead(p, iId); - if( pTerm && pTerm->szLeaf==pSeg->iTermLeafOffset ){ - u8 *aTermIdx = &pTerm->p[pTerm->szLeaf]; - int nTermIdx = pTerm->nn - pTerm->szLeaf; - int iTermIdx = 0; - int iTermOff = 0; + if( iPgno==pSeg->iTermLeafPgno ){ + i64 iId = FTS5_SEGMENT_ROWID(iSegid, pSeg->iTermLeafPgno); + Fts5Data *pTerm = fts5DataRead(p, iId); + if( pTerm && pTerm->szLeaf==pSeg->iTermLeafOffset ){ + u8 *aTermIdx = &pTerm->p[pTerm->szLeaf]; + int nTermIdx = pTerm->nn - pTerm->szLeaf; + int iTermIdx = 0; + int iTermOff = 0; - while( 1 ){ - u32 iVal = 0; - int nByte = fts5GetVarint32(&aTermIdx[iTermIdx], iVal); - iTermOff += iVal; - if( (iTermIdx+nByte)>=nTermIdx ) break; - iTermIdx += nByte; - } - nTermIdx = iTermIdx; - - memmove(&pTerm->p[iTermOff], &pTerm->p[pTerm->szLeaf], nTermIdx); - fts5PutU16(&pTerm->p[2], iTermOff); - - fts5DataWrite(p, iId, pTerm->p, iTermOff+nTermIdx); - if( nTermIdx==0 ){ - fts5SecureDeleteIdxEntry(p, iSegid, pSeg->iTermLeafPgno); - } + while( 1 ){ + u32 iVal = 0; + int nByte = fts5GetVarint32(&aTermIdx[iTermIdx], iVal); + iTermOff += iVal; + if( (iTermIdx+nByte)>=nTermIdx ) break; + iTermIdx += nByte; } - fts5DataRelease(pTerm); + nTermIdx = iTermIdx; + + memmove(&pTerm->p[iTermOff], &pTerm->p[pTerm->szLeaf], nTermIdx); + fts5PutU16(&pTerm->p[2], iTermOff); + + fts5DataWrite(p, iId, pTerm->p, iTermOff+nTermIdx); + if( nTermIdx==0 ){ + fts5SecureDeleteIdxEntry(p, iSegid, pSeg->iTermLeafPgno); + } + } + fts5DataRelease(pTerm); + } + } + + if( p->rc==SQLITE_OK ){ + const int nMove = nPg - iNextOff; /* Number of bytes to move */ + int nShift = iNextOff - iOff; /* Distance to move them */ + + int iPrevKeyOut = 0; + int iKeyIn = 0; + + memmove(&aPg[iOff], &aPg[iNextOff], nMove); + iPgIdx -= nShift; + nPg = iPgIdx; + fts5PutU16(&aPg[2], iPgIdx); + + for(iIdx=0; iIdxiOff ? nShift : 0)); + nPg += sqlite3Fts5PutVarint(&aPg[nPg], iKeyOut - iPrevKeyOut); + iPrevKeyOut = iKeyOut; } } - if( p->rc==SQLITE_OK ){ - const int nMove = nPg - iNextOff; - int nShift = 0; - - memmove(&aPg[iOff], &aPg[iNextOff], nMove); - iPgIdx -= (iNextOff - iOff); - nPg = iPgIdx; - fts5PutU16(&aPg[2], iPgIdx); - - nShift = iNextOff - iOff; - for(iIdx=0, iKeyOff=0, iPrevKeyOff=0; iIdxiOff ){ - iKeyOff -= nShift; - nShift = 0; - } - nPg += sqlite3Fts5PutVarint(&aPg[nPg], iKeyOff - iPrevKeyOff); - iPrevKeyOff = iKeyOff; - } - } - - if( iPgIdx==nPg && nIdx>0 && pSeg->iLeafPgno!=1 ){ - fts5SecureDeleteIdxEntry(p, iSegid, pSeg->iLeafPgno); - } - - assert_nc( nPg>4 || fts5GetU16(aPg)==0 ); - fts5DataWrite(p, FTS5_SEGMENT_ROWID(iSegid,pSeg->iLeafPgno), aPg,nPg); + if( iPgIdx==nPg && nIdx>0 && pSeg->iLeafPgno!=1 ){ + fts5SecureDeleteIdxEntry(p, iSegid, pSeg->iLeafPgno); } - sqlite3_free(aIdx); + + assert_nc( nPg>4 || fts5GetU16(aPg)==0 ); + fts5DataWrite(p, FTS5_SEGMENT_ROWID(iSegid,pSeg->iLeafPgno), aPg, nPg); + } + sqlite3_free(aIdx); } /* @@ -237516,187 +239956,197 @@ static void fts5FlushOneHash(Fts5Index *p){ /* Obtain a reference to the index structure and allocate a new segment-id ** for the new level-0 segment. */ pStruct = fts5StructureRead(p); - iSegid = fts5AllocateSegid(p, pStruct); fts5StructureInvalidate(p); - if( iSegid ){ - const int pgsz = p->pConfig->pgsz; - int eDetail = p->pConfig->eDetail; - int bSecureDelete = p->pConfig->bSecureDelete; - Fts5StructureSegment *pSeg; /* New segment within pStruct */ - Fts5Buffer *pBuf; /* Buffer in which to assemble leaf page */ - Fts5Buffer *pPgidx; /* Buffer in which to assemble pgidx */ + if( sqlite3Fts5HashIsEmpty(pHash)==0 ){ + iSegid = fts5AllocateSegid(p, pStruct); + if( iSegid ){ + const int pgsz = p->pConfig->pgsz; + int eDetail = p->pConfig->eDetail; + int bSecureDelete = p->pConfig->bSecureDelete; + Fts5StructureSegment *pSeg; /* New segment within pStruct */ + Fts5Buffer *pBuf; /* Buffer in which to assemble leaf page */ + Fts5Buffer *pPgidx; /* Buffer in which to assemble pgidx */ - Fts5SegWriter writer; - fts5WriteInit(p, &writer, iSegid); + Fts5SegWriter writer; + fts5WriteInit(p, &writer, iSegid); - pBuf = &writer.writer.buf; - pPgidx = &writer.writer.pgidx; + pBuf = &writer.writer.buf; + pPgidx = &writer.writer.pgidx; - /* fts5WriteInit() should have initialized the buffers to (most likely) - ** the maximum space required. */ - assert( p->rc || pBuf->nSpace>=(pgsz + FTS5_DATA_PADDING) ); - assert( p->rc || pPgidx->nSpace>=(pgsz + FTS5_DATA_PADDING) ); + /* fts5WriteInit() should have initialized the buffers to (most likely) + ** the maximum space required. */ + assert( p->rc || pBuf->nSpace>=(pgsz + FTS5_DATA_PADDING) ); + assert( p->rc || pPgidx->nSpace>=(pgsz + FTS5_DATA_PADDING) ); - /* Begin scanning through hash table entries. This loop runs once for each - ** term/doclist currently stored within the hash table. */ - if( p->rc==SQLITE_OK ){ - p->rc = sqlite3Fts5HashScanInit(pHash, 0, 0); - } - while( p->rc==SQLITE_OK && 0==sqlite3Fts5HashScanEof(pHash) ){ - const char *zTerm; /* Buffer containing term */ - int nTerm; /* Size of zTerm in bytes */ - const u8 *pDoclist; /* Pointer to doclist for this term */ - int nDoclist; /* Size of doclist in bytes */ - - /* Get the term and doclist for this entry. */ - sqlite3Fts5HashScanEntry(pHash, &zTerm, &pDoclist, &nDoclist); - nTerm = (int)strlen(zTerm); - if( bSecureDelete==0 ){ - fts5WriteAppendTerm(p, &writer, nTerm, (const u8*)zTerm); - if( p->rc!=SQLITE_OK ) break; - assert( writer.bFirstRowidInPage==0 ); + /* Begin scanning through hash table entries. This loop runs once for each + ** term/doclist currently stored within the hash table. */ + if( p->rc==SQLITE_OK ){ + p->rc = sqlite3Fts5HashScanInit(pHash, 0, 0); } + while( p->rc==SQLITE_OK && 0==sqlite3Fts5HashScanEof(pHash) ){ + const char *zTerm; /* Buffer containing term */ + int nTerm; /* Size of zTerm in bytes */ + const u8 *pDoclist; /* Pointer to doclist for this term */ + int nDoclist; /* Size of doclist in bytes */ - if( !bSecureDelete && pgsz>=(pBuf->n + pPgidx->n + nDoclist + 1) ){ - /* The entire doclist will fit on the current leaf. */ - fts5BufferSafeAppendBlob(pBuf, pDoclist, nDoclist); - }else{ - int bTermWritten = !bSecureDelete; - i64 iRowid = 0; - i64 iPrev = 0; - int iOff = 0; + /* Get the term and doclist for this entry. */ + sqlite3Fts5HashScanEntry(pHash, &zTerm, &pDoclist, &nDoclist); + nTerm = (int)strlen(zTerm); + if( bSecureDelete==0 ){ + fts5WriteAppendTerm(p, &writer, nTerm, (const u8*)zTerm); + if( p->rc!=SQLITE_OK ) break; + assert( writer.bFirstRowidInPage==0 ); + } - /* The entire doclist will not fit on this leaf. The following - ** loop iterates through the poslists that make up the current - ** doclist. */ - while( p->rc==SQLITE_OK && iOff=(pBuf->n + pPgidx->n + nDoclist + 1) ){ + /* The entire doclist will fit on the current leaf. */ + fts5BufferSafeAppendBlob(pBuf, pDoclist, nDoclist); + }else{ + int bTermWritten = !bSecureDelete; + i64 iRowid = 0; + i64 iPrev = 0; + int iOff = 0; - /* If in secure delete mode, and if this entry in the poslist is - ** in fact a delete, then edit the existing segments directly - ** using fts5FlushSecureDelete(). */ - if( bSecureDelete ){ - if( eDetail==FTS5_DETAIL_NONE ){ - if( iOffrc==SQLITE_OK && iOffrc!=SQLITE_OK || pDoclist[iOff]==0x01 ){ iOff++; - nDoclist = 0; - }else{ continue; } } - }else if( (pDoclist[iOff] & 0x01) ){ - fts5FlushSecureDelete(p, pStruct, zTerm, iRowid); - if( p->rc!=SQLITE_OK || pDoclist[iOff]==0x01 ){ - iOff++; - continue; - } } - } - if( p->rc==SQLITE_OK && bTermWritten==0 ){ - fts5WriteAppendTerm(p, &writer, nTerm, (const u8*)zTerm); - bTermWritten = 1; - assert( p->rc!=SQLITE_OK || writer.bFirstRowidInPage==0 ); - } + if( p->rc==SQLITE_OK && bTermWritten==0 ){ + fts5WriteAppendTerm(p, &writer, nTerm, (const u8*)zTerm); + bTermWritten = 1; + assert( p->rc!=SQLITE_OK || writer.bFirstRowidInPage==0 ); + } - if( writer.bFirstRowidInPage ){ - fts5PutU16(&pBuf->p[0], (u16)pBuf->n); /* first rowid on page */ - pBuf->n += sqlite3Fts5PutVarint(&pBuf->p[pBuf->n], iRowid); - writer.bFirstRowidInPage = 0; - fts5WriteDlidxAppend(p, &writer, iRowid); - }else{ - pBuf->n += sqlite3Fts5PutVarint(&pBuf->p[pBuf->n], iRowid-iPrev); - } - if( p->rc!=SQLITE_OK ) break; - assert( pBuf->n<=pBuf->nSpace ); - iPrev = iRowid; + if( writer.bFirstRowidInPage ){ + fts5PutU16(&pBuf->p[0], (u16)pBuf->n); /* first rowid on page */ + pBuf->n += sqlite3Fts5PutVarint(&pBuf->p[pBuf->n], iRowid); + writer.bFirstRowidInPage = 0; + fts5WriteDlidxAppend(p, &writer, iRowid); + }else{ + u64 iRowidDelta = (u64)iRowid - (u64)iPrev; + pBuf->n += sqlite3Fts5PutVarint(&pBuf->p[pBuf->n], iRowidDelta); + } + if( p->rc!=SQLITE_OK ) break; + assert( pBuf->n<=pBuf->nSpace ); + iPrev = iRowid; - if( eDetail==FTS5_DETAIL_NONE ){ - if( iOffp[pBuf->n++] = 0; - iOff++; + if( eDetail==FTS5_DETAIL_NONE ){ if( iOffp[pBuf->n++] = 0; iOff++; + if( iOffp[pBuf->n++] = 0; + iOff++; + } + } + if( (pBuf->n + pPgidx->n)>=pgsz ){ + fts5WriteFlushLeaf(p, &writer); } - } - if( (pBuf->n + pPgidx->n)>=pgsz ){ - fts5WriteFlushLeaf(p, &writer); - } - }else{ - int bDummy; - int nPos; - int nCopy = fts5GetPoslistSize(&pDoclist[iOff], &nPos, &bDummy); - nCopy += nPos; - if( (pBuf->n + pPgidx->n + nCopy) <= pgsz ){ - /* The entire poslist will fit on the current leaf. So copy - ** it in one go. */ - fts5BufferSafeAppendBlob(pBuf, &pDoclist[iOff], nCopy); }else{ - /* The entire poslist will not fit on this leaf. So it needs - ** to be broken into sections. The only qualification being - ** that each varint must be stored contiguously. */ - const u8 *pPoslist = &pDoclist[iOff]; - int iPos = 0; - while( p->rc==SQLITE_OK ){ - int nSpace = pgsz - pBuf->n - pPgidx->n; - int n = 0; - if( (nCopy - iPos)<=nSpace ){ - n = nCopy - iPos; - }else{ - n = fts5PoslistPrefix(&pPoslist[iPos], nSpace); + int bDummy; + int nPos; + int nCopy = fts5GetPoslistSize(&pDoclist[iOff], &nPos, &bDummy); + nCopy += nPos; + if( (pBuf->n + pPgidx->n + nCopy) <= pgsz ){ + /* The entire poslist will fit on the current leaf. So copy + ** it in one go. */ + fts5BufferSafeAppendBlob(pBuf, &pDoclist[iOff], nCopy); + }else{ + /* The entire poslist will not fit on this leaf. So it needs + ** to be broken into sections. The only qualification being + ** that each varint must be stored contiguously. */ + const u8 *pPoslist = &pDoclist[iOff]; + int iPos = 0; + while( p->rc==SQLITE_OK ){ + int nSpace = pgsz - pBuf->n - pPgidx->n; + int n = 0; + if( (nCopy - iPos)<=nSpace ){ + n = nCopy - iPos; + }else{ + n = fts5PoslistPrefix(&pPoslist[iPos], nSpace); + } + assert( n>0 ); + fts5BufferSafeAppendBlob(pBuf, &pPoslist[iPos], n); + iPos += n; + if( (pBuf->n + pPgidx->n)>=pgsz ){ + fts5WriteFlushLeaf(p, &writer); + } + if( iPos>=nCopy ) break; } - assert( n>0 ); - fts5BufferSafeAppendBlob(pBuf, &pPoslist[iPos], n); - iPos += n; - if( (pBuf->n + pPgidx->n)>=pgsz ){ - fts5WriteFlushLeaf(p, &writer); - } - if( iPos>=nCopy ) break; } + iOff += nCopy; } - iOff += nCopy; } } - } - /* TODO2: Doclist terminator written here. */ - /* pBuf->p[pBuf->n++] = '\0'; */ - assert( pBuf->n<=pBuf->nSpace ); - if( p->rc==SQLITE_OK ) sqlite3Fts5HashScanNext(pHash); - } - sqlite3Fts5HashClear(pHash); - fts5WriteFinish(p, &writer, &pgnoLast); + /* TODO2: Doclist terminator written here. */ + /* pBuf->p[pBuf->n++] = '\0'; */ + assert( pBuf->n<=pBuf->nSpace ); + if( p->rc==SQLITE_OK ) sqlite3Fts5HashScanNext(pHash); + } + sqlite3Fts5HashClear(pHash); + fts5WriteFinish(p, &writer, &pgnoLast); - assert( p->rc!=SQLITE_OK || bSecureDelete || pgnoLast>0 ); - if( pgnoLast>0 ){ - /* Update the Fts5Structure. It is written back to the database by the - ** fts5StructureRelease() call below. */ - if( pStruct->nLevel==0 ){ - fts5StructureAddLevel(&p->rc, &pStruct); + assert( p->rc!=SQLITE_OK || bSecureDelete || pgnoLast>0 ); + if( pgnoLast>0 ){ + /* Update the Fts5Structure. It is written back to the database by the + ** fts5StructureRelease() call below. */ + if( pStruct->nLevel==0 ){ + fts5StructureAddLevel(&p->rc, &pStruct); + } + fts5StructureExtendLevel(&p->rc, pStruct, 0, 1, 0); + if( p->rc==SQLITE_OK ){ + pSeg = &pStruct->aLevel[0].aSeg[ pStruct->aLevel[0].nSeg++ ]; + pSeg->iSegid = iSegid; + pSeg->pgnoFirst = 1; + pSeg->pgnoLast = pgnoLast; + if( pStruct->nOriginCntr>0 ){ + pSeg->iOrigin1 = pStruct->nOriginCntr; + pSeg->iOrigin2 = pStruct->nOriginCntr; + pSeg->nEntry = p->nPendingRow; + pStruct->nOriginCntr++; + } + pStruct->nSegment++; + } + fts5StructurePromote(p, 0, pStruct); } - fts5StructureExtendLevel(&p->rc, pStruct, 0, 1, 0); - if( p->rc==SQLITE_OK ){ - pSeg = &pStruct->aLevel[0].aSeg[ pStruct->aLevel[0].nSeg++ ]; - pSeg->iSegid = iSegid; - pSeg->pgnoFirst = 1; - pSeg->pgnoLast = pgnoLast; - pStruct->nSegment++; - } - fts5StructurePromote(p, 0, pStruct); } } - fts5IndexAutomerge(p, &pStruct, pgnoLast); + fts5IndexAutomerge(p, &pStruct, pgnoLast + p->nContentlessDelete); fts5IndexCrisismerge(p, &pStruct); fts5StructureWrite(p, pStruct); fts5StructureRelease(pStruct); + p->nContentlessDelete = 0; } /* @@ -237704,10 +240154,11 @@ static void fts5FlushOneHash(Fts5Index *p){ */ static void fts5IndexFlush(Fts5Index *p){ /* Unless it is empty, flush the hash table to disk */ - if( p->nPendingData ){ + if( p->nPendingData || p->nContentlessDelete ){ assert( p->pHash ); - p->nPendingData = 0; fts5FlushOneHash(p); + p->nPendingData = 0; + p->nPendingRow = 0; } } @@ -237723,17 +240174,22 @@ static Fts5Structure *fts5IndexOptimizeStruct( /* Figure out if this structure requires optimization. A structure does ** not require optimization if either: ** - ** + it consists of fewer than two segments, or - ** + all segments are on the same level, or - ** + all segments except one are currently inputs to a merge operation. + ** 1. it consists of fewer than two segments, or + ** 2. all segments are on the same level, or + ** 3. all segments except one are currently inputs to a merge operation. ** - ** In the first case, return NULL. In the second, increment the ref-count - ** on *pStruct and return a copy of the pointer to it. + ** In the first case, if there are no tombstone hash pages, return NULL. In + ** the second, increment the ref-count on *pStruct and return a copy of the + ** pointer to it. */ - if( nSeg<2 ) return 0; + if( nSeg==0 ) return 0; for(i=0; inLevel; i++){ int nThis = pStruct->aLevel[i].nSeg; - if( nThis==nSeg || (nThis==nSeg-1 && pStruct->aLevel[i].nMerge==nThis) ){ + int nMerge = pStruct->aLevel[i].nMerge; + if( nThis>0 && (nThis==nSeg || (nThis==nSeg-1 && nMerge==nThis)) ){ + if( nSeg==1 && nThis==1 && pStruct->aLevel[i].aSeg[0].nPgTombstone==0 ){ + return 0; + } fts5StructureRef(pStruct); return pStruct; } @@ -237749,6 +240205,7 @@ static Fts5Structure *fts5IndexOptimizeStruct( pNew->nLevel = MIN(pStruct->nLevel+1, FTS5_MAX_LEVEL); pNew->nRef = 1; pNew->nWriteCounter = pStruct->nWriteCounter; + pNew->nOriginCntr = pStruct->nOriginCntr; pLvl = &pNew->aLevel[pNew->nLevel-1]; pLvl->aSeg = (Fts5StructureSegment*)sqlite3Fts5MallocZero(&p->rc, nByte); if( pLvl->aSeg ){ @@ -237779,6 +240236,7 @@ static int sqlite3Fts5IndexOptimize(Fts5Index *p){ assert( p->rc==SQLITE_OK ); fts5IndexFlush(p); + assert( p->nContentlessDelete==0 ); pStruct = fts5StructureRead(p); fts5StructureInvalidate(p); @@ -237808,7 +240266,10 @@ static int sqlite3Fts5IndexOptimize(Fts5Index *p){ ** INSERT command. */ static int sqlite3Fts5IndexMerge(Fts5Index *p, int nMerge){ - Fts5Structure *pStruct = fts5StructureRead(p); + Fts5Structure *pStruct = 0; + + fts5IndexFlush(p); + pStruct = fts5StructureRead(p); if( pStruct ){ int nMin = p->pConfig->nUsermerge; fts5StructureInvalidate(p); @@ -237816,7 +240277,7 @@ static int sqlite3Fts5IndexMerge(Fts5Index *p, int nMerge){ Fts5Structure *pNew = fts5IndexOptimizeStruct(p, pStruct); fts5StructureRelease(pStruct); pStruct = pNew; - nMin = 2; + nMin = 1; nMerge = nMerge*-1; } if( pStruct && pStruct->nLevel ){ @@ -238330,6 +240791,9 @@ static int sqlite3Fts5IndexBeginWrite(Fts5Index *p, int bDelete, i64 iRowid){ p->iWriteRowid = iRowid; p->bDelete = bDelete; + if( bDelete==0 ){ + p->nPendingRow++; + } return fts5IndexReturn(p); } @@ -238367,6 +240831,9 @@ static int sqlite3Fts5IndexReinit(Fts5Index *p){ fts5StructureInvalidate(p); fts5IndexDiscardData(p); memset(&s, 0, sizeof(Fts5Structure)); + if( p->pConfig->bContentlessDelete ){ + s.nOriginCntr = 1; + } fts5DataWrite(p, FTS5_AVERAGES_ROWID, (const u8*)"", 0); fts5StructureWrite(p, &s); return fts5IndexReturn(p); @@ -238758,6 +241225,347 @@ static int sqlite3Fts5IndexLoadConfig(Fts5Index *p){ return fts5IndexReturn(p); } +/* +** Retrieve the origin value that will be used for the segment currently +** being accumulated in the in-memory hash table when it is flushed to +** disk. If successful, SQLITE_OK is returned and (*piOrigin) set to +** the queried value. Or, if an error occurs, an error code is returned +** and the final value of (*piOrigin) is undefined. +*/ +static int sqlite3Fts5IndexGetOrigin(Fts5Index *p, i64 *piOrigin){ + Fts5Structure *pStruct; + pStruct = fts5StructureRead(p); + if( pStruct ){ + *piOrigin = pStruct->nOriginCntr; + fts5StructureRelease(pStruct); + } + return fts5IndexReturn(p); +} + +/* +** Buffer pPg contains a page of a tombstone hash table - one of nPg pages +** associated with the same segment. This function adds rowid iRowid to +** the hash table. The caller is required to guarantee that there is at +** least one free slot on the page. +** +** If parameter bForce is false and the hash table is deemed to be full +** (more than half of the slots are occupied), then non-zero is returned +** and iRowid not inserted. Or, if bForce is true or if the hash table page +** is not full, iRowid is inserted and zero returned. +*/ +static int fts5IndexTombstoneAddToPage( + Fts5Data *pPg, + int bForce, + int nPg, + u64 iRowid +){ + const int szKey = TOMBSTONE_KEYSIZE(pPg); + const int nSlot = TOMBSTONE_NSLOT(pPg); + const int nElem = fts5GetU32(&pPg->p[4]); + int iSlot = (iRowid / nPg) % nSlot; + int nCollide = nSlot; + + if( szKey==4 && iRowid>0xFFFFFFFF ) return 2; + if( iRowid==0 ){ + pPg->p[1] = 0x01; + return 0; + } + + if( bForce==0 && nElem>=(nSlot/2) ){ + return 1; + } + + fts5PutU32(&pPg->p[4], nElem+1); + if( szKey==4 ){ + u32 *aSlot = (u32*)&pPg->p[8]; + while( aSlot[iSlot] ){ + iSlot = (iSlot + 1) % nSlot; + if( nCollide--==0 ) return 0; + } + fts5PutU32((u8*)&aSlot[iSlot], (u32)iRowid); + }else{ + u64 *aSlot = (u64*)&pPg->p[8]; + while( aSlot[iSlot] ){ + iSlot = (iSlot + 1) % nSlot; + if( nCollide--==0 ) return 0; + } + fts5PutU64((u8*)&aSlot[iSlot], iRowid); + } + + return 0; +} + +/* +** This function attempts to build a new hash containing all the keys +** currently in the tombstone hash table for segment pSeg. The new +** hash will be stored in the nOut buffers passed in array apOut[]. +** All pages of the new hash use key-size szKey (4 or 8). +** +** Return 0 if the hash is successfully rebuilt into the nOut pages. +** Or non-zero if it is not (because one page became overfull). In this +** case the caller should retry with a larger nOut parameter. +** +** Parameter pData1 is page iPg1 of the hash table being rebuilt. +*/ +static int fts5IndexTombstoneRehash( + Fts5Index *p, + Fts5StructureSegment *pSeg, /* Segment to rebuild hash of */ + Fts5Data *pData1, /* One page of current hash - or NULL */ + int iPg1, /* Which page of the current hash is pData1 */ + int szKey, /* 4 or 8, the keysize */ + int nOut, /* Number of output pages */ + Fts5Data **apOut /* Array of output hash pages */ +){ + int ii; + int res = 0; + + /* Initialize the headers of all the output pages */ + for(ii=0; iip[0] = szKey; + fts5PutU32(&apOut[ii]->p[4], 0); + } + + /* Loop through the current pages of the hash table. */ + for(ii=0; res==0 && iinPgTombstone; ii++){ + Fts5Data *pData = 0; /* Page ii of the current hash table */ + Fts5Data *pFree = 0; /* Free this at the end of the loop */ + + if( iPg1==ii ){ + pData = pData1; + }else{ + pFree = pData = fts5DataRead(p, FTS5_TOMBSTONE_ROWID(pSeg->iSegid, ii)); + } + + if( pData ){ + int szKeyIn = TOMBSTONE_KEYSIZE(pData); + int nSlotIn = (pData->nn - 8) / szKeyIn; + int iIn; + for(iIn=0; iInp[8]; + if( aSlot[iIn] ) iVal = fts5GetU32((u8*)&aSlot[iIn]); + }else{ + u64 *aSlot = (u64*)&pData->p[8]; + if( aSlot[iIn] ) iVal = fts5GetU64((u8*)&aSlot[iIn]); + } + + /* If iVal is not 0 at this point, insert it into the new hash table */ + if( iVal ){ + Fts5Data *pPg = apOut[(iVal % nOut)]; + res = fts5IndexTombstoneAddToPage(pPg, 0, nOut, iVal); + if( res ) break; + } + } + + /* If this is page 0 of the old hash, copy the rowid-0-flag from the + ** old hash to the new. */ + if( ii==0 ){ + apOut[0]->p[1] = pData->p[1]; + } + } + fts5DataRelease(pFree); + } + + return res; +} + +/* +** This is called to rebuild the hash table belonging to segment pSeg. +** If parameter pData1 is not NULL, then one page of the existing hash table +** has already been loaded - pData1, which is page iPg1. The key-size for +** the new hash table is szKey (4 or 8). +** +** If successful, the new hash table is not written to disk. Instead, +** output parameter (*pnOut) is set to the number of pages in the new +** hash table, and (*papOut) to point to an array of buffers containing +** the new page data. +** +** If an error occurs, an error code is left in the Fts5Index object and +** both output parameters set to 0 before returning. +*/ +static void fts5IndexTombstoneRebuild( + Fts5Index *p, + Fts5StructureSegment *pSeg, /* Segment to rebuild hash of */ + Fts5Data *pData1, /* One page of current hash - or NULL */ + int iPg1, /* Which page of the current hash is pData1 */ + int szKey, /* 4 or 8, the keysize */ + int *pnOut, /* OUT: Number of output pages */ + Fts5Data ***papOut /* OUT: Output hash pages */ +){ + const int MINSLOT = 32; + int nSlotPerPage = MAX(MINSLOT, (p->pConfig->pgsz - 8) / szKey); + int nSlot = 0; /* Number of slots in each output page */ + int nOut = 0; + + /* Figure out how many output pages (nOut) and how many slots per + ** page (nSlot). There are three possibilities: + ** + ** 1. The hash table does not yet exist. In this case the new hash + ** table will consist of a single page with MINSLOT slots. + ** + ** 2. The hash table exists but is currently a single page. In this + ** case an attempt is made to grow the page to accommodate the new + ** entry. The page is allowed to grow up to nSlotPerPage (see above) + ** slots. + ** + ** 3. The hash table already consists of more than one page, or of + ** a single page already so large that it cannot be grown. In this + ** case the new hash consists of (nPg*2+1) pages of nSlotPerPage + ** slots each, where nPg is the current number of pages in the + ** hash table. + */ + if( pSeg->nPgTombstone==0 ){ + /* Case 1. */ + nOut = 1; + nSlot = MINSLOT; + }else if( pSeg->nPgTombstone==1 ){ + /* Case 2. */ + int nElem = (int)fts5GetU32(&pData1->p[4]); + assert( pData1 && iPg1==0 ); + nOut = 1; + nSlot = MAX(nElem*4, MINSLOT); + if( nSlot>nSlotPerPage ) nOut = 0; + } + if( nOut==0 ){ + /* Case 3. */ + nOut = (pSeg->nPgTombstone * 2 + 1); + nSlot = nSlotPerPage; + } + + /* Allocate the required array and output pages */ + while( 1 ){ + int res = 0; + int ii = 0; + int szPage = 0; + Fts5Data **apOut = 0; + + /* Allocate space for the new hash table */ + assert( nSlot>=MINSLOT ); + apOut = (Fts5Data**)sqlite3Fts5MallocZero(&p->rc, sizeof(Fts5Data*) * nOut); + szPage = 8 + nSlot*szKey; + for(ii=0; iirc, + sizeof(Fts5Data)+szPage + ); + if( pNew ){ + pNew->nn = szPage; + pNew->p = (u8*)&pNew[1]; + apOut[ii] = pNew; + } + } + + /* Rebuild the hash table. */ + if( p->rc==SQLITE_OK ){ + res = fts5IndexTombstoneRehash(p, pSeg, pData1, iPg1, szKey, nOut, apOut); + } + if( res==0 ){ + if( p->rc ){ + fts5IndexFreeArray(apOut, nOut); + apOut = 0; + nOut = 0; + } + *pnOut = nOut; + *papOut = apOut; + break; + } + + /* If control flows to here, it was not possible to rebuild the hash + ** table. Free all buffers and then try again with more pages. */ + assert( p->rc==SQLITE_OK ); + fts5IndexFreeArray(apOut, nOut); + nSlot = nSlotPerPage; + nOut = nOut*2 + 1; + } +} + + +/* +** Add a tombstone for rowid iRowid to segment pSeg. +*/ +static void fts5IndexTombstoneAdd( + Fts5Index *p, + Fts5StructureSegment *pSeg, + u64 iRowid +){ + Fts5Data *pPg = 0; + int iPg = -1; + int szKey = 0; + int nHash = 0; + Fts5Data **apHash = 0; + + p->nContentlessDelete++; + + if( pSeg->nPgTombstone>0 ){ + iPg = iRowid % pSeg->nPgTombstone; + pPg = fts5DataRead(p, FTS5_TOMBSTONE_ROWID(pSeg->iSegid,iPg)); + if( pPg==0 ){ + assert( p->rc!=SQLITE_OK ); + return; + } + + if( 0==fts5IndexTombstoneAddToPage(pPg, 0, pSeg->nPgTombstone, iRowid) ){ + fts5DataWrite(p, FTS5_TOMBSTONE_ROWID(pSeg->iSegid,iPg), pPg->p, pPg->nn); + fts5DataRelease(pPg); + return; + } + } + + /* Have to rebuild the hash table. First figure out the key-size (4 or 8). */ + szKey = pPg ? TOMBSTONE_KEYSIZE(pPg) : 4; + if( iRowid>0xFFFFFFFF ) szKey = 8; + + /* Rebuild the hash table */ + fts5IndexTombstoneRebuild(p, pSeg, pPg, iPg, szKey, &nHash, &apHash); + assert( p->rc==SQLITE_OK || (nHash==0 && apHash==0) ); + + /* If all has succeeded, write the new rowid into one of the new hash + ** table pages, then write them all out to disk. */ + if( nHash ){ + int ii = 0; + fts5IndexTombstoneAddToPage(apHash[iRowid % nHash], 1, nHash, iRowid); + for(ii=0; iiiSegid, ii); + fts5DataWrite(p, iTombstoneRowid, apHash[ii]->p, apHash[ii]->nn); + } + pSeg->nPgTombstone = nHash; + fts5StructureWrite(p, p->pStruct); + } + + fts5DataRelease(pPg); + fts5IndexFreeArray(apHash, nHash); +} + +/* +** Add iRowid to the tombstone list of the segment or segments that contain +** rows from origin iOrigin. Return SQLITE_OK if successful, or an SQLite +** error code otherwise. +*/ +static int sqlite3Fts5IndexContentlessDelete(Fts5Index *p, i64 iOrigin, i64 iRowid){ + Fts5Structure *pStruct; + pStruct = fts5StructureRead(p); + if( pStruct ){ + int bFound = 0; /* True after pSeg->nEntryTombstone incr. */ + int iLvl; + for(iLvl=pStruct->nLevel-1; iLvl>=0; iLvl--){ + int iSeg; + for(iSeg=pStruct->aLevel[iLvl].nSeg-1; iSeg>=0; iSeg--){ + Fts5StructureSegment *pSeg = &pStruct->aLevel[iLvl].aSeg[iSeg]; + if( pSeg->iOrigin1<=(u64)iOrigin && pSeg->iOrigin2>=(u64)iOrigin ){ + if( bFound==0 ){ + pSeg->nEntryTombstone++; + bFound = 1; + } + fts5IndexTombstoneAdd(p, pSeg, iRowid); + } + } + } + fts5StructureRelease(pStruct); + } + return fts5IndexReturn(p); +} /************************************************************************* ************************************************************************** @@ -239309,13 +242117,14 @@ static int sqlite3Fts5IndexIntegrityCheck(Fts5Index *p, u64 cksum, int bUseCksum ** function only. */ -#ifdef SQLITE_TEST +#if defined(SQLITE_TEST) || defined(SQLITE_FTS5_DEBUG) /* ** Decode a segment-data rowid from the %_data table. This function is ** the opposite of macro FTS5_SEGMENT_ROWID(). */ static void fts5DecodeRowid( i64 iRowid, /* Rowid from %_data table */ + int *pbTombstone, /* OUT: Tombstone hash flag */ int *piSegid, /* OUT: Segment id */ int *pbDlidx, /* OUT: Dlidx flag */ int *piHeight, /* OUT: Height */ @@ -239331,13 +242140,16 @@ static void fts5DecodeRowid( iRowid >>= FTS5_DATA_DLI_B; *piSegid = (int)(iRowid & (((i64)1 << FTS5_DATA_ID_B) - 1)); -} -#endif /* SQLITE_TEST */ + iRowid >>= FTS5_DATA_ID_B; -#ifdef SQLITE_TEST + *pbTombstone = (int)(iRowid & 0x0001); +} +#endif /* SQLITE_TEST || SQLITE_FTS5_DEBUG */ + +#if defined(SQLITE_TEST) || defined(SQLITE_FTS5_DEBUG) static void fts5DebugRowid(int *pRc, Fts5Buffer *pBuf, i64 iKey){ - int iSegid, iHeight, iPgno, bDlidx; /* Rowid compenents */ - fts5DecodeRowid(iKey, &iSegid, &bDlidx, &iHeight, &iPgno); + int iSegid, iHeight, iPgno, bDlidx, bTomb; /* Rowid compenents */ + fts5DecodeRowid(iKey, &bTomb, &iSegid, &bDlidx, &iHeight, &iPgno); if( iSegid==0 ){ if( iKey==FTS5_AVERAGES_ROWID ){ @@ -239347,14 +242159,16 @@ static void fts5DebugRowid(int *pRc, Fts5Buffer *pBuf, i64 iKey){ } } else{ - sqlite3Fts5BufferAppendPrintf(pRc, pBuf, "{%ssegid=%d h=%d pgno=%d}", - bDlidx ? "dlidx " : "", iSegid, iHeight, iPgno + sqlite3Fts5BufferAppendPrintf(pRc, pBuf, "{%s%ssegid=%d h=%d pgno=%d}", + bDlidx ? "dlidx " : "", + bTomb ? "tombstone " : "", + iSegid, iHeight, iPgno ); } } -#endif /* SQLITE_TEST */ +#endif /* SQLITE_TEST || SQLITE_FTS5_DEBUG */ -#ifdef SQLITE_TEST +#if defined(SQLITE_TEST) || defined(SQLITE_FTS5_DEBUG) static void fts5DebugStructure( int *pRc, /* IN/OUT: error code */ Fts5Buffer *pBuf, @@ -239369,16 +242183,22 @@ static void fts5DebugStructure( ); for(iSeg=0; iSegnSeg; iSeg++){ Fts5StructureSegment *pSeg = &pLvl->aSeg[iSeg]; - sqlite3Fts5BufferAppendPrintf(pRc, pBuf, " {id=%d leaves=%d..%d}", + sqlite3Fts5BufferAppendPrintf(pRc, pBuf, " {id=%d leaves=%d..%d", pSeg->iSegid, pSeg->pgnoFirst, pSeg->pgnoLast ); + if( pSeg->iOrigin1>0 ){ + sqlite3Fts5BufferAppendPrintf(pRc, pBuf, " origin=%lld..%lld", + pSeg->iOrigin1, pSeg->iOrigin2 + ); + } + sqlite3Fts5BufferAppendPrintf(pRc, pBuf, "}"); } sqlite3Fts5BufferAppendPrintf(pRc, pBuf, "}"); } } -#endif /* SQLITE_TEST */ +#endif /* SQLITE_TEST || SQLITE_FTS5_DEBUG */ -#ifdef SQLITE_TEST +#if defined(SQLITE_TEST) || defined(SQLITE_FTS5_DEBUG) /* ** This is part of the fts5_decode() debugging aid. ** @@ -239403,9 +242223,9 @@ static void fts5DecodeStructure( fts5DebugStructure(pRc, pBuf, p); fts5StructureRelease(p); } -#endif /* SQLITE_TEST */ +#endif /* SQLITE_TEST || SQLITE_FTS5_DEBUG */ -#ifdef SQLITE_TEST +#if defined(SQLITE_TEST) || defined(SQLITE_FTS5_DEBUG) /* ** This is part of the fts5_decode() debugging aid. ** @@ -239428,9 +242248,9 @@ static void fts5DecodeAverages( zSpace = " "; } } -#endif /* SQLITE_TEST */ +#endif /* SQLITE_TEST || SQLITE_FTS5_DEBUG */ -#ifdef SQLITE_TEST +#if defined(SQLITE_TEST) || defined(SQLITE_FTS5_DEBUG) /* ** Buffer (a/n) is assumed to contain a list of serialized varints. Read ** each varint and append its string representation to buffer pBuf. Return @@ -239447,9 +242267,9 @@ static int fts5DecodePoslist(int *pRc, Fts5Buffer *pBuf, const u8 *a, int n){ } return iOff; } -#endif /* SQLITE_TEST */ +#endif /* SQLITE_TEST || SQLITE_FTS5_DEBUG */ -#ifdef SQLITE_TEST +#if defined(SQLITE_TEST) || defined(SQLITE_FTS5_DEBUG) /* ** The start of buffer (a/n) contains the start of a doclist. The doclist ** may or may not finish within the buffer. This function appends a text @@ -239482,9 +242302,9 @@ static int fts5DecodeDoclist(int *pRc, Fts5Buffer *pBuf, const u8 *a, int n){ return iOff; } -#endif /* SQLITE_TEST */ +#endif /* SQLITE_TEST || SQLITE_FTS5_DEBUG */ -#ifdef SQLITE_TEST +#if defined(SQLITE_TEST) || defined(SQLITE_FTS5_DEBUG) /* ** This function is part of the fts5_decode() debugging function. It is ** only ever used with detail=none tables. @@ -239525,9 +242345,9 @@ static void fts5DecodeRowidList( sqlite3Fts5BufferAppendPrintf(pRc, pBuf, " %lld%s", iRowid, zApp); } } -#endif /* SQLITE_TEST */ +#endif /* SQLITE_TEST || SQLITE_FTS5_DEBUG */ -#ifdef SQLITE_TEST +#if defined(SQLITE_TEST) || defined(SQLITE_FTS5_DEBUG) /* ** The implementation of user-defined scalar function fts5_decode(). */ @@ -239538,6 +242358,7 @@ static void fts5DecodeFunction( ){ i64 iRowid; /* Rowid for record being decoded */ int iSegid,iHeight,iPgno,bDlidx;/* Rowid components */ + int bTomb; const u8 *aBlob; int n; /* Record to decode */ u8 *a = 0; Fts5Buffer s; /* Build up text to return here */ @@ -239560,7 +242381,7 @@ static void fts5DecodeFunction( if( a==0 ) goto decode_out; if( n>0 ) memcpy(a, aBlob, n); - fts5DecodeRowid(iRowid, &iSegid, &bDlidx, &iHeight, &iPgno); + fts5DecodeRowid(iRowid, &bTomb, &iSegid, &bDlidx, &iHeight, &iPgno); fts5DebugRowid(&rc, &s, iRowid); if( bDlidx ){ @@ -239579,6 +242400,28 @@ static void fts5DecodeFunction( " %d(%lld)", lvl.iLeafPgno, lvl.iRowid ); } + }else if( bTomb ){ + u32 nElem = fts5GetU32(&a[4]); + int szKey = (aBlob[0]==4 || aBlob[0]==8) ? aBlob[0] : 8; + int nSlot = (n - 8) / szKey; + int ii; + sqlite3Fts5BufferAppendPrintf(&rc, &s, " nElem=%d", (int)nElem); + if( aBlob[1] ){ + sqlite3Fts5BufferAppendPrintf(&rc, &s, " 0"); + } + for(ii=0; iiszLeaf ){ + rc = FTS5_CORRUPT; + }else{ + fts5DecodeRowidList(&rc, &s, &a[iOff], iTermOff-iOff); + } iOff = iTermOff; if( iOffestimatedCost = (double)100; + pIdxInfo->estimatedRows = 100; + pIdxInfo->idxNum = 0; + for(i=0, p=pIdxInfo->aConstraint; inConstraint; i++, p++){ + if( p->usable==0 ) continue; + if( p->op==SQLITE_INDEX_CONSTRAINT_EQ && p->iColumn==11 ){ + rc = SQLITE_OK; + pIdxInfo->aConstraintUsage[i].omit = 1; + pIdxInfo->aConstraintUsage[i].argvIndex = 1; + break; + } + } + return rc; +} + +/* +** This method is the destructor for bytecodevtab objects. +*/ +static int fts5structDisconnectMethod(sqlite3_vtab *pVtab){ + Fts5StructVtab *p = (Fts5StructVtab*)pVtab; + sqlite3_free(p); + return SQLITE_OK; +} + +/* +** Constructor for a new bytecodevtab_cursor object. +*/ +static int fts5structOpenMethod(sqlite3_vtab *p, sqlite3_vtab_cursor **ppCsr){ + int rc = SQLITE_OK; + Fts5StructVcsr *pNew = 0; + + pNew = sqlite3Fts5MallocZero(&rc, sizeof(*pNew)); + *ppCsr = (sqlite3_vtab_cursor*)pNew; + + return SQLITE_OK; +} + +/* +** Destructor for a bytecodevtab_cursor. +*/ +static int fts5structCloseMethod(sqlite3_vtab_cursor *cur){ + Fts5StructVcsr *pCsr = (Fts5StructVcsr*)cur; + fts5StructureRelease(pCsr->pStruct); + sqlite3_free(pCsr); + return SQLITE_OK; +} + + +/* +** Advance a bytecodevtab_cursor to its next row of output. +*/ +static int fts5structNextMethod(sqlite3_vtab_cursor *cur){ + Fts5StructVcsr *pCsr = (Fts5StructVcsr*)cur; + Fts5Structure *p = pCsr->pStruct; + + assert( pCsr->pStruct ); + pCsr->iSeg++; + pCsr->iRowid++; + while( pCsr->iLevelnLevel && pCsr->iSeg>=p->aLevel[pCsr->iLevel].nSeg ){ + pCsr->iLevel++; + pCsr->iSeg = 0; + } + if( pCsr->iLevel>=p->nLevel ){ + fts5StructureRelease(pCsr->pStruct); + pCsr->pStruct = 0; + } + return SQLITE_OK; +} + +/* +** Return TRUE if the cursor has been moved off of the last +** row of output. +*/ +static int fts5structEofMethod(sqlite3_vtab_cursor *cur){ + Fts5StructVcsr *pCsr = (Fts5StructVcsr*)cur; + return pCsr->pStruct==0; +} + +static int fts5structRowidMethod( + sqlite3_vtab_cursor *cur, + sqlite_int64 *piRowid +){ + Fts5StructVcsr *pCsr = (Fts5StructVcsr*)cur; + *piRowid = pCsr->iRowid; + return SQLITE_OK; +} + +/* +** Return values of columns for the row at which the bytecodevtab_cursor +** is currently pointing. +*/ +static int fts5structColumnMethod( + sqlite3_vtab_cursor *cur, /* The cursor */ + sqlite3_context *ctx, /* First argument to sqlite3_result_...() */ + int i /* Which column to return */ +){ + Fts5StructVcsr *pCsr = (Fts5StructVcsr*)cur; + Fts5Structure *p = pCsr->pStruct; + Fts5StructureSegment *pSeg = &p->aLevel[pCsr->iLevel].aSeg[pCsr->iSeg]; + + switch( i ){ + case 0: /* level */ + sqlite3_result_int(ctx, pCsr->iLevel); + break; + case 1: /* segment */ + sqlite3_result_int(ctx, pCsr->iSeg); + break; + case 2: /* merge */ + sqlite3_result_int(ctx, pCsr->iSeg < p->aLevel[pCsr->iLevel].nMerge); + break; + case 3: /* segid */ + sqlite3_result_int(ctx, pSeg->iSegid); + break; + case 4: /* leaf1 */ + sqlite3_result_int(ctx, pSeg->pgnoFirst); + break; + case 5: /* leaf2 */ + sqlite3_result_int(ctx, pSeg->pgnoLast); + break; + case 6: /* origin1 */ + sqlite3_result_int64(ctx, pSeg->iOrigin1); + break; + case 7: /* origin2 */ + sqlite3_result_int64(ctx, pSeg->iOrigin2); + break; + case 8: /* npgtombstone */ + sqlite3_result_int(ctx, pSeg->nPgTombstone); + break; + case 9: /* nentrytombstone */ + sqlite3_result_int64(ctx, pSeg->nEntryTombstone); + break; + case 10: /* nentry */ + sqlite3_result_int64(ctx, pSeg->nEntry); + break; + } + return SQLITE_OK; +} + +/* +** Initialize a cursor. +** +** idxNum==0 means show all subprograms +** idxNum==1 means show only the main bytecode and omit subprograms. +*/ +static int fts5structFilterMethod( + sqlite3_vtab_cursor *pVtabCursor, + int idxNum, const char *idxStr, + int argc, sqlite3_value **argv +){ + Fts5StructVcsr *pCsr = (Fts5StructVcsr *)pVtabCursor; + int rc = SQLITE_OK; + + const u8 *aBlob = 0; + int nBlob = 0; + + assert( argc==1 ); + fts5StructureRelease(pCsr->pStruct); + pCsr->pStruct = 0; + + nBlob = sqlite3_value_bytes(argv[0]); + aBlob = (const u8*)sqlite3_value_blob(argv[0]); + rc = fts5StructureDecode(aBlob, nBlob, 0, &pCsr->pStruct); + if( rc==SQLITE_OK ){ + pCsr->iLevel = 0; + pCsr->iRowid = 0; + pCsr->iSeg = -1; + rc = fts5structNextMethod(pVtabCursor); + } + + return rc; +} + +#endif /* SQLITE_TEST || SQLITE_FTS5_DEBUG */ /* ** This is called as part of registering the FTS5 module with database @@ -239783,7 +242857,7 @@ static void fts5RowidFunction( ** SQLite error code is returned instead. */ static int sqlite3Fts5IndexInit(sqlite3 *db){ -#ifdef SQLITE_TEST +#if defined(SQLITE_TEST) || defined(SQLITE_FTS5_DEBUG) int rc = sqlite3_create_function( db, "fts5_decode", 2, SQLITE_UTF8, 0, fts5DecodeFunction, 0, 0 ); @@ -239800,6 +242874,36 @@ static int sqlite3Fts5IndexInit(sqlite3 *db){ db, "fts5_rowid", -1, SQLITE_UTF8, 0, fts5RowidFunction, 0, 0 ); } + + if( rc==SQLITE_OK ){ + static const sqlite3_module fts5structure_module = { + 0, /* iVersion */ + 0, /* xCreate */ + fts5structConnectMethod, /* xConnect */ + fts5structBestIndexMethod, /* xBestIndex */ + fts5structDisconnectMethod, /* xDisconnect */ + 0, /* xDestroy */ + fts5structOpenMethod, /* xOpen */ + fts5structCloseMethod, /* xClose */ + fts5structFilterMethod, /* xFilter */ + fts5structNextMethod, /* xNext */ + fts5structEofMethod, /* xEof */ + fts5structColumnMethod, /* xColumn */ + fts5structRowidMethod, /* xRowid */ + 0, /* xUpdate */ + 0, /* xBegin */ + 0, /* xSync */ + 0, /* xCommit */ + 0, /* xRollback */ + 0, /* xFindFunction */ + 0, /* xRename */ + 0, /* xSavepoint */ + 0, /* xRelease */ + 0, /* xRollbackTo */ + 0 /* xShadowName */ + }; + rc = sqlite3_create_module(db, "fts5_structure", &fts5structure_module, 0); + } return rc; #else return SQLITE_OK; @@ -241443,7 +244547,6 @@ static int fts5UpdateMethod( int rc = SQLITE_OK; /* Return code */ int bUpdateOrDelete = 0; - /* A transaction must be open when this is called. */ assert( pTab->ts.eState==1 || pTab->ts.eState==2 ); @@ -241472,7 +244575,14 @@ static int fts5UpdateMethod( if( pConfig->eContent!=FTS5_CONTENT_NORMAL && 0==sqlite3_stricmp("delete", z) ){ - rc = fts5SpecialDelete(pTab, apVal); + if( pConfig->bContentlessDelete ){ + fts5SetVtabError(pTab, + "'delete' may not be used with a contentless_delete=1 table" + ); + rc = SQLITE_ERROR; + }else{ + rc = fts5SpecialDelete(pTab, apVal); + } }else{ rc = fts5SpecialInsert(pTab, z, apVal[2 + pConfig->nCol + 1]); } @@ -241489,7 +244599,7 @@ static int fts5UpdateMethod( ** Cases 3 and 4 may violate the rowid constraint. */ int eConflict = SQLITE_ABORT; - if( pConfig->eContent==FTS5_CONTENT_NORMAL ){ + if( pConfig->eContent==FTS5_CONTENT_NORMAL || pConfig->bContentlessDelete ){ eConflict = sqlite3_vtab_on_conflict(pConfig->db); } @@ -241497,8 +244607,12 @@ static int fts5UpdateMethod( assert( nArg!=1 || eType0==SQLITE_INTEGER ); /* Filter out attempts to run UPDATE or DELETE on contentless tables. - ** This is not suported. */ - if( eType0==SQLITE_INTEGER && fts5IsContentless(pTab) ){ + ** This is not suported. Except - DELETE is supported if the CREATE + ** VIRTUAL TABLE statement contained "contentless_delete=1". */ + if( eType0==SQLITE_INTEGER + && pConfig->eContent==FTS5_CONTENT_NONE + && pConfig->bContentlessDelete==0 + ){ pTab->p.base.zErrMsg = sqlite3_mprintf( "cannot %s contentless fts5 table: %s", (nArg>1 ? "UPDATE" : "DELETE from"), pConfig->zName @@ -241585,8 +244699,7 @@ static int fts5SyncMethod(sqlite3_vtab *pVtab){ Fts5FullTable *pTab = (Fts5FullTable*)pVtab; fts5CheckTransactionState(pTab, FTS5_SYNC, 0); pTab->p.pConfig->pzErrmsg = &pTab->p.base.zErrMsg; - fts5TripCursors(pTab); - rc = sqlite3Fts5StorageSync(pTab->pStorage); + rc = sqlite3Fts5FlushToDisk(&pTab->p); pTab->p.pConfig->pzErrmsg = 0; return rc; } @@ -242353,6 +245466,12 @@ static int fts5ColumnMethod( sqlite3_result_value(pCtx, sqlite3_column_value(pCsr->pStmt, iCol+1)); } pConfig->pzErrmsg = 0; + }else if( pConfig->bContentlessDelete && sqlite3_vtab_nochange(pCtx) ){ + char *zErr = sqlite3_mprintf("cannot UPDATE a subset of " + "columns on fts5 contentless-delete table: %s", pConfig->zName + ); + sqlite3_result_error(pCtx, zErr, -1); + sqlite3_free(zErr); } return rc; } @@ -242635,7 +245754,7 @@ static void fts5SourceIdFunc( ){ assert( nArg==0 ); UNUSED_PARAM2(nArg, apUnused); - sqlite3_result_text(pCtx, "fts5: 2023-05-16 12:36:15 831d0fb2836b71c9bc51067c49fee4b8f18047814f2ff22d817d25195cf350b0", -1, SQLITE_TRANSIENT); + sqlite3_result_text(pCtx, "fts5: 2023-09-11 12:01:27 2d3a40c05c49e1a49264912b1a05bc2143ac0e7c3df588276ce80a4cbc9bd1b0", -1, SQLITE_TRANSIENT); } /* @@ -242848,10 +245967,10 @@ static int fts5StorageGetStmt( "INSERT INTO %Q.'%q_content' VALUES(%s)", /* INSERT_CONTENT */ "REPLACE INTO %Q.'%q_content' VALUES(%s)", /* REPLACE_CONTENT */ "DELETE FROM %Q.'%q_content' WHERE id=?", /* DELETE_CONTENT */ - "REPLACE INTO %Q.'%q_docsize' VALUES(?,?)", /* REPLACE_DOCSIZE */ + "REPLACE INTO %Q.'%q_docsize' VALUES(?,?%s)", /* REPLACE_DOCSIZE */ "DELETE FROM %Q.'%q_docsize' WHERE id=?", /* DELETE_DOCSIZE */ - "SELECT sz FROM %Q.'%q_docsize' WHERE id=?", /* LOOKUP_DOCSIZE */ + "SELECT sz%s FROM %Q.'%q_docsize' WHERE id=?", /* LOOKUP_DOCSIZE */ "REPLACE INTO %Q.'%q_config' VALUES(?,?)", /* REPLACE_CONFIG */ "SELECT %s FROM %s AS T", /* SCAN */ @@ -242899,6 +246018,19 @@ static int fts5StorageGetStmt( break; } + case FTS5_STMT_REPLACE_DOCSIZE: + zSql = sqlite3_mprintf(azStmt[eStmt], pC->zDb, pC->zName, + (pC->bContentlessDelete ? ",?" : "") + ); + break; + + case FTS5_STMT_LOOKUP_DOCSIZE: + zSql = sqlite3_mprintf(azStmt[eStmt], + (pC->bContentlessDelete ? ",origin" : ""), + pC->zDb, pC->zName + ); + break; + default: zSql = sqlite3_mprintf(azStmt[eStmt], pC->zDb, pC->zName); break; @@ -243088,9 +246220,11 @@ static int sqlite3Fts5StorageOpen( } if( rc==SQLITE_OK && pConfig->bColumnsize ){ - rc = sqlite3Fts5CreateTable( - pConfig, "docsize", "id INTEGER PRIMARY KEY, sz BLOB", 0, pzErr - ); + const char *zCols = "id INTEGER PRIMARY KEY, sz BLOB"; + if( pConfig->bContentlessDelete ){ + zCols = "id INTEGER PRIMARY KEY, sz BLOB, origin INTEGER"; + } + rc = sqlite3Fts5CreateTable(pConfig, "docsize", zCols, 0, pzErr); } if( rc==SQLITE_OK ){ rc = sqlite3Fts5CreateTable( @@ -243167,7 +246301,7 @@ static int fts5StorageDeleteFromIndex( ){ Fts5Config *pConfig = p->pConfig; sqlite3_stmt *pSeek = 0; /* SELECT to read row iDel from %_data */ - int rc; /* Return code */ + int rc = SQLITE_OK; /* Return code */ int rc2; /* sqlite3_reset() return code */ int iCol; Fts5InsertCtx ctx; @@ -243183,7 +246317,6 @@ static int fts5StorageDeleteFromIndex( ctx.pStorage = p; ctx.iCol = -1; - rc = sqlite3Fts5IndexBeginWrite(p->pIndex, 1, iDel); for(iCol=1; rc==SQLITE_OK && iCol<=pConfig->nCol; iCol++){ if( pConfig->abUnindexed[iCol-1]==0 ){ const char *zText; @@ -243220,6 +246353,37 @@ static int fts5StorageDeleteFromIndex( return rc; } +/* +** This function is called to process a DELETE on a contentless_delete=1 +** table. It adds the tombstone required to delete the entry with rowid +** iDel. If successful, SQLITE_OK is returned. Or, if an error occurs, +** an SQLite error code. +*/ +static int fts5StorageContentlessDelete(Fts5Storage *p, i64 iDel){ + i64 iOrigin = 0; + sqlite3_stmt *pLookup = 0; + int rc = SQLITE_OK; + + assert( p->pConfig->bContentlessDelete ); + assert( p->pConfig->eContent==FTS5_CONTENT_NONE ); + + /* Look up the origin of the document in the %_docsize table. Store + ** this in stack variable iOrigin. */ + rc = fts5StorageGetStmt(p, FTS5_STMT_LOOKUP_DOCSIZE, &pLookup, 0); + if( rc==SQLITE_OK ){ + sqlite3_bind_int64(pLookup, 1, iDel); + if( SQLITE_ROW==sqlite3_step(pLookup) ){ + iOrigin = sqlite3_column_int64(pLookup, 1); + } + rc = sqlite3_reset(pLookup); + } + + if( rc==SQLITE_OK && iOrigin!=0 ){ + rc = sqlite3Fts5IndexContentlessDelete(p->pIndex, iOrigin, iDel); + } + + return rc; +} /* ** Insert a record into the %_docsize table. Specifically, do: @@ -243240,10 +246404,17 @@ static int fts5StorageInsertDocsize( rc = fts5StorageGetStmt(p, FTS5_STMT_REPLACE_DOCSIZE, &pReplace, 0); if( rc==SQLITE_OK ){ sqlite3_bind_int64(pReplace, 1, iRowid); - sqlite3_bind_blob(pReplace, 2, pBuf->p, pBuf->n, SQLITE_STATIC); - sqlite3_step(pReplace); - rc = sqlite3_reset(pReplace); - sqlite3_bind_null(pReplace, 2); + if( p->pConfig->bContentlessDelete ){ + i64 iOrigin = 0; + rc = sqlite3Fts5IndexGetOrigin(p->pIndex, &iOrigin); + sqlite3_bind_int64(pReplace, 3, iOrigin); + } + if( rc==SQLITE_OK ){ + sqlite3_bind_blob(pReplace, 2, pBuf->p, pBuf->n, SQLITE_STATIC); + sqlite3_step(pReplace); + rc = sqlite3_reset(pReplace); + sqlite3_bind_null(pReplace, 2); + } } } return rc; @@ -243307,7 +246478,15 @@ static int sqlite3Fts5StorageDelete(Fts5Storage *p, i64 iDel, sqlite3_value **ap /* Delete the index records */ if( rc==SQLITE_OK ){ - rc = fts5StorageDeleteFromIndex(p, iDel, apVal); + rc = sqlite3Fts5IndexBeginWrite(p->pIndex, 1, iDel); + } + + if( rc==SQLITE_OK ){ + if( p->pConfig->bContentlessDelete ){ + rc = fts5StorageContentlessDelete(p, iDel); + }else{ + rc = fts5StorageDeleteFromIndex(p, iDel, apVal); + } } /* Delete the %_docsize record */ diff --git a/Data/SQLite/src/sqlite3.h b/Data/SQLite/src/sqlite3.h index 48effe202..b9d069298 100644 --- a/Data/SQLite/src/sqlite3.h +++ b/Data/SQLite/src/sqlite3.h @@ -146,9 +146,9 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.42.0" -#define SQLITE_VERSION_NUMBER 3042000 -#define SQLITE_SOURCE_ID "2023-05-16 12:36:15 831d0fb2836b71c9bc51067c49fee4b8f18047814f2ff22d817d25195cf350b0" +#define SQLITE_VERSION "3.43.1" +#define SQLITE_VERSION_NUMBER 3043001 +#define SQLITE_SOURCE_ID "2023-09-11 12:01:27 2d3a40c05c49e1a49264912b1a05bc2143ac0e7c3df588276ce80a4cbc9bd1b0" /* ** CAPI3REF: Run-Time Library Version Numbers @@ -528,6 +528,7 @@ SQLITE_API int sqlite3_exec( #define SQLITE_IOERR_ROLLBACK_ATOMIC (SQLITE_IOERR | (31<<8)) #define SQLITE_IOERR_DATA (SQLITE_IOERR | (32<<8)) #define SQLITE_IOERR_CORRUPTFS (SQLITE_IOERR | (33<<8)) +#define SQLITE_IOERR_IN_PAGE (SQLITE_IOERR | (34<<8)) #define SQLITE_LOCKED_SHAREDCACHE (SQLITE_LOCKED | (1<<8)) #define SQLITE_LOCKED_VTAB (SQLITE_LOCKED | (2<<8)) #define SQLITE_BUSY_RECOVERY (SQLITE_BUSY | (1<<8)) @@ -1190,7 +1191,7 @@ struct sqlite3_io_methods { ** by clients within the current process, only within other processes. ** **
      4. [[SQLITE_FCNTL_CKSM_FILE]] -** The [SQLITE_FCNTL_CKSM_FILE] opcode is for use interally by the +** The [SQLITE_FCNTL_CKSM_FILE] opcode is for use internally by the ** [checksum VFS shim] only. ** **
      5. [[SQLITE_FCNTL_RESET_CACHE]] @@ -2454,7 +2455,7 @@ struct sqlite3_mem_methods { ** the [VACUUM] command will fail with an obscure error when attempting to ** process a table with generated columns and a descending index. This is ** not considered a bug since SQLite versions 3.3.0 and earlier do not support -** either generated columns or decending indexes. +** either generated columns or descending indexes. **
    14. ** ** [[SQLITE_DBCONFIG_STMT_SCANSTATUS]] @@ -2735,6 +2736,7 @@ SQLITE_API sqlite3_int64 sqlite3_total_changes64(sqlite3*); ** ** ^The [sqlite3_is_interrupted(D)] interface can be used to determine whether ** or not an interrupt is currently in effect for [database connection] D. +** It returns 1 if an interrupt is currently in effect, or 0 otherwise. */ SQLITE_API void sqlite3_interrupt(sqlite3*); SQLITE_API int sqlite3_is_interrupted(sqlite3*); @@ -3388,8 +3390,10 @@ SQLITE_API SQLITE_DEPRECATED void *sqlite3_profile(sqlite3*, ** M argument should be the bitwise OR-ed combination of ** zero or more [SQLITE_TRACE] constants. ** -** ^Each call to either sqlite3_trace() or sqlite3_trace_v2() overrides -** (cancels) any prior calls to sqlite3_trace() or sqlite3_trace_v2(). +** ^Each call to either sqlite3_trace(D,X,P) or sqlite3_trace_v2(D,M,X,P) +** overrides (cancels) all prior calls to sqlite3_trace(D,X,P) or +** sqlite3_trace_v2(D,M,X,P) for the [database connection] D. Each +** database connection may have at most one trace callback. ** ** ^The X callback is invoked whenever any of the events identified by ** mask M occur. ^The integer return value from the callback is currently @@ -3758,7 +3762,7 @@ SQLITE_API int sqlite3_open_v2( ** as F) must be one of: **
        **
      • A database filename pointer created by the SQLite core and -** passed into the xOpen() method of a VFS implemention, or +** passed into the xOpen() method of a VFS implementation, or **
      • A filename obtained from [sqlite3_db_filename()], or **
      • A new filename constructed using [sqlite3_create_filename()]. **
      @@ -3871,7 +3875,7 @@ SQLITE_API sqlite3_file *sqlite3_database_file_object(const char*); /* ** CAPI3REF: Create and Destroy VFS Filenames ** -** These interfces are provided for use by [VFS shim] implementations and +** These interfaces are provided for use by [VFS shim] implementations and ** are not useful outside of that context. ** ** The sqlite3_create_filename(D,J,W,N,P) allocates memory to hold a version of @@ -4418,6 +4422,41 @@ SQLITE_API int sqlite3_stmt_readonly(sqlite3_stmt *pStmt); */ SQLITE_API int sqlite3_stmt_isexplain(sqlite3_stmt *pStmt); +/* +** CAPI3REF: Change The EXPLAIN Setting For A Prepared Statement +** METHOD: sqlite3_stmt +** +** The sqlite3_stmt_explain(S,E) interface changes the EXPLAIN +** setting for [prepared statement] S. If E is zero, then S becomes +** a normal prepared statement. If E is 1, then S behaves as if +** its SQL text began with "[EXPLAIN]". If E is 2, then S behaves as if +** its SQL text began with "[EXPLAIN QUERY PLAN]". +** +** Calling sqlite3_stmt_explain(S,E) might cause S to be reprepared. +** SQLite tries to avoid a reprepare, but a reprepare might be necessary +** on the first transition into EXPLAIN or EXPLAIN QUERY PLAN mode. +** +** Because of the potential need to reprepare, a call to +** sqlite3_stmt_explain(S,E) will fail with SQLITE_ERROR if S cannot be +** reprepared because it was created using [sqlite3_prepare()] instead of +** the newer [sqlite3_prepare_v2()] or [sqlite3_prepare_v3()] interfaces and +** hence has no saved SQL text with which to reprepare. +** +** Changing the explain setting for a prepared statement does not change +** the original SQL text for the statement. Hence, if the SQL text originally +** began with EXPLAIN or EXPLAIN QUERY PLAN, but sqlite3_stmt_explain(S,0) +** is called to convert the statement into an ordinary statement, the EXPLAIN +** or EXPLAIN QUERY PLAN keywords will still appear in the sqlite3_sql(S) +** output, even though the statement now acts like a normal SQL statement. +** +** This routine returns SQLITE_OK if the explain mode is successfully +** changed, or an error code if the explain mode could not be changed. +** The explain mode cannot be changed while a statement is active. +** Hence, it is good practice to call [sqlite3_reset(S)] +** immediately prior to calling sqlite3_stmt_explain(S,E). +*/ +SQLITE_API int sqlite3_stmt_explain(sqlite3_stmt *pStmt, int eMode); + /* ** CAPI3REF: Determine If A Prepared Statement Has Been Reset ** METHOD: sqlite3_stmt @@ -4581,7 +4620,7 @@ typedef struct sqlite3_context sqlite3_context; ** with it may be passed. ^It is called to dispose of the BLOB or string even ** if the call to the bind API fails, except the destructor is not called if ** the third parameter is a NULL pointer or the fourth parameter is negative. -** ^ (2) The special constant, [SQLITE_STATIC], may be passsed to indicate that +** ^ (2) The special constant, [SQLITE_STATIC], may be passed to indicate that ** the application remains responsible for disposing of the object. ^In this ** case, the object and the provided pointer to it must remain valid until ** either the prepared statement is finalized or the same SQL parameter is @@ -5260,14 +5299,26 @@ SQLITE_API int sqlite3_finalize(sqlite3_stmt *pStmt); ** ^The [sqlite3_reset(S)] interface resets the [prepared statement] S ** back to the beginning of its program. ** -** ^If the most recent call to [sqlite3_step(S)] for the -** [prepared statement] S returned [SQLITE_ROW] or [SQLITE_DONE], -** or if [sqlite3_step(S)] has never before been called on S, -** then [sqlite3_reset(S)] returns [SQLITE_OK]. +** ^The return code from [sqlite3_reset(S)] indicates whether or not +** the previous evaluation of prepared statement S completed successfully. +** ^If [sqlite3_step(S)] has never before been called on S or if +** [sqlite3_step(S)] has not been called since the previous call +** to [sqlite3_reset(S)], then [sqlite3_reset(S)] will return +** [SQLITE_OK]. ** ** ^If the most recent call to [sqlite3_step(S)] for the ** [prepared statement] S indicated an error, then ** [sqlite3_reset(S)] returns an appropriate [error code]. +** ^The [sqlite3_reset(S)] interface might also return an [error code] +** if there were no prior errors but the process of resetting +** the prepared statement caused a new error. ^For example, if an +** [INSERT] statement with a [RETURNING] clause is only stepped one time, +** that one call to [sqlite3_step(S)] might return SQLITE_ROW but +** the overall statement might still fail and the [sqlite3_reset(S)] call +** might return SQLITE_BUSY if locking constraints prevent the +** database change from committing. Therefore, it is important that +** applications check the return code from [sqlite3_reset(S)] even if +** no prior call to [sqlite3_step(S)] indicated a problem. ** ** ^The [sqlite3_reset(S)] interface does not change the values ** of any [sqlite3_bind_blob|bindings] on the [prepared statement] S. @@ -5484,7 +5535,7 @@ SQLITE_API int sqlite3_create_window_function( ** [application-defined SQL function] ** that has side-effects or that could potentially leak sensitive information. ** This will prevent attacks in which an application is tricked -** into using a database file that has had its schema surreptiously +** into using a database file that has had its schema surreptitiously ** modified to invoke the application-defined function in ways that are ** harmful. **

      @@ -8161,7 +8212,8 @@ SQLITE_API int sqlite3_test_control(int op, ...); #define SQLITE_TESTCTRL_TRACEFLAGS 31 #define SQLITE_TESTCTRL_TUNE 32 #define SQLITE_TESTCTRL_LOGEST 33 -#define SQLITE_TESTCTRL_LAST 33 /* Largest TESTCTRL */ +#define SQLITE_TESTCTRL_USELONGDOUBLE 34 +#define SQLITE_TESTCTRL_LAST 34 /* Largest TESTCTRL */ /* ** CAPI3REF: SQL Keyword Checking @@ -9193,8 +9245,8 @@ SQLITE_API int sqlite3_backup_pagecount(sqlite3_backup *p); ** blocked connection already has a registered unlock-notify callback, ** then the new callback replaces the old.)^ ^If sqlite3_unlock_notify() is ** called with a NULL pointer as its second argument, then any existing -** unlock-notify callback is canceled. ^The blocked connections -** unlock-notify callback may also be canceled by closing the blocked +** unlock-notify callback is cancelled. ^The blocked connections +** unlock-notify callback may also be cancelled by closing the blocked ** connection using [sqlite3_close()]. ** ** The unlock-notify callback is not reentrant. If an application invokes @@ -9617,7 +9669,7 @@ SQLITE_API int sqlite3_vtab_config(sqlite3*, int op, ...); ** [[SQLITE_VTAB_DIRECTONLY]]

      SQLITE_VTAB_DIRECTONLY
      **
      Calls of the form ** [sqlite3_vtab_config](db,SQLITE_VTAB_DIRECTONLY) from within the -** the [xConnect] or [xCreate] methods of a [virtual table] implmentation +** the [xConnect] or [xCreate] methods of a [virtual table] implementation ** prohibits that virtual table from being used from within triggers and ** views. **
      @@ -9807,7 +9859,7 @@ SQLITE_API int sqlite3_vtab_distinct(sqlite3_index_info*); ** communicated to the xBestIndex method as a ** [SQLITE_INDEX_CONSTRAINT_EQ] constraint.)^ If xBestIndex wants to use ** this constraint, it must set the corresponding -** aConstraintUsage[].argvIndex to a postive integer. ^(Then, under +** aConstraintUsage[].argvIndex to a positive integer. ^(Then, under ** the usual mode of handling IN operators, SQLite generates [bytecode] ** that invokes the [xFilter|xFilter() method] once for each value ** on the right-hand side of the IN operator.)^ Thus the virtual table @@ -10236,7 +10288,7 @@ SQLITE_API int sqlite3_db_cacheflush(sqlite3*); ** When the [sqlite3_blob_write()] API is used to update a blob column, ** the pre-update hook is invoked with SQLITE_DELETE. This is because the ** in this case the new values are not available. In this case, when a -** callback made with op==SQLITE_DELETE is actuall a write using the +** callback made with op==SQLITE_DELETE is actually a write using the ** sqlite3_blob_write() API, the [sqlite3_preupdate_blobwrite()] returns ** the index of the column being written. In other cases, where the ** pre-update hook is being invoked for some other reason, including a @@ -12754,7 +12806,7 @@ struct Fts5PhraseIter { ** See xPhraseFirstColumn above. */ struct Fts5ExtensionApi { - int iVersion; /* Currently always set to 3 */ + int iVersion; /* Currently always set to 2 */ void *(*xUserData)(Fts5Context*); @@ -12983,8 +13035,8 @@ struct Fts5ExtensionApi { ** as separate queries of the FTS index are required for each synonym. ** ** When using methods (2) or (3), it is important that the tokenizer only -** provide synonyms when tokenizing document text (method (2)) or query -** text (method (3)), not both. Doing so will not cause any errors, but is +** provide synonyms when tokenizing document text (method (3)) or query +** text (method (2)), not both. Doing so will not cause any errors, but is ** inefficient. */ typedef struct Fts5Tokenizer Fts5Tokenizer; @@ -13032,7 +13084,7 @@ struct fts5_api { int (*xCreateTokenizer)( fts5_api *pApi, const char *zName, - void *pContext, + void *pUserData, fts5_tokenizer *pTokenizer, void (*xDestroy)(void*) ); @@ -13041,7 +13093,7 @@ struct fts5_api { int (*xFindTokenizer)( fts5_api *pApi, const char *zName, - void **ppContext, + void **ppUserData, fts5_tokenizer *pTokenizer ); @@ -13049,7 +13101,7 @@ struct fts5_api { int (*xCreateFunction)( fts5_api *pApi, const char *zName, - void *pContext, + void *pUserData, fts5_extension_function xFunction, void (*xDestroy)(void*) ); From 22213f1111d4f00ea46afda106464c1cee2fddac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sat, 30 Sep 2023 14:18:10 +0200 Subject: [PATCH 081/395] #4173: AbstractConfiguration: when expanding property references, allow specifying a default value; #4174: AbstractConfiguration: support Int16/UInt16 and Int32/UInt32 --- .../include/Poco/Util/AbstractConfiguration.h | 187 +++++++++++++++--- Util/src/AbstractConfiguration.cpp | 122 +++++++++++- .../src/AbstractConfigurationTest.cpp | 54 ++++- .../testsuite/src/AbstractConfigurationTest.h | 1 + .../src/IniFileConfigurationTest.cpp | 4 +- 5 files changed, 335 insertions(+), 33 deletions(-) diff --git a/Util/include/Poco/Util/AbstractConfiguration.h b/Util/include/Poco/Util/AbstractConfiguration.h index 42aec09b3..4c10a9c79 100644 --- a/Util/include/Poco/Util/AbstractConfiguration.h +++ b/Util/include/Poco/Util/AbstractConfiguration.h @@ -125,14 +125,14 @@ public: std::string getString(const std::string& key) const; /// Returns the string value of the property with the given name. /// Throws a NotFoundException if the key does not exist. - /// If the value contains references to other properties (${}), these - /// are expanded. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). std::string getString(const std::string& key, const std::string& defaultValue) const; /// If a property with the given key exists, returns the property's string value, /// otherwise returns the given default value. - /// If the value contains references to other properties (${}), these - /// are expanded. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). std::string getRawString(const std::string& key) const; /// Returns the raw string value of the property with the given name. @@ -150,8 +150,8 @@ public: /// Throws a SyntaxException if the property can not be converted /// to an int. /// Numbers starting with 0x are treated as hexadecimal. - /// If the value contains references to other properties (${}), these - /// are expanded. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). unsigned int getUInt(const std::string& key) const; /// Returns the unsigned int value of the property with the given name. @@ -159,8 +159,8 @@ public: /// Throws a SyntaxException if the property can not be converted /// to an unsigned int. /// Numbers starting with 0x are treated as hexadecimal. - /// If the value contains references to other properties (${}), these - /// are expanded. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). int getInt(const std::string& key, int defaultValue) const; /// If a property with the given key exists, returns the property's int value, @@ -168,8 +168,8 @@ public: /// Throws a SyntaxException if the property can not be converted /// to an int. /// Numbers starting with 0x are treated as hexadecimal. - /// If the value contains references to other properties (${}), these - /// are expanded. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). unsigned int getUInt(const std::string& key, unsigned int defaultValue) const; /// If a property with the given key exists, returns the property's unsigned int @@ -177,8 +177,80 @@ public: /// Throws a SyntaxException if the property can not be converted /// to an unsigned int. /// Numbers starting with 0x are treated as hexadecimal. - /// If the value contains references to other properties (${}), these - /// are expanded. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). + + Poco::Int32 getInt32(const std::string& key) const; + /// Returns the 32-bit int value of the property with the given name. + /// Throws a NotFoundException if the key does not exist. + /// Throws a SyntaxException if the property can not be converted + /// to an Int32. + /// Numbers starting with 0x are treated as hexadecimal. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). + + Poco::UInt32 getUInt32(const std::string& key) const; + /// Returns the 32-bit unsigned int value of the property with the given name. + /// Throws a NotFoundException if the key does not exist. + /// Throws a SyntaxException if the property can not be converted + /// to an UInt32. + /// Numbers starting with 0x are treated as hexadecimal. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). + + Poco::Int32 getInt32(const std::string& key, Poco::Int32 defaultValue) const; + /// If a property with the given key exists, returns the property's 32-bit int value, + /// otherwise returns the given default value. + /// Throws a SyntaxException if the property can not be converted + /// to an Int32. + /// Numbers starting with 0x are treated as hexadecimal. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). + + Poco::UInt32 getUInt32(const std::string& key, Poco::UInt32 defaultValue) const; + /// If a property with the given key exists, returns the property's 32-bit unsigned int + /// value, otherwise returns the given default value. + /// Throws a SyntaxException if the property can not be converted + /// to an UInt32. + /// Numbers starting with 0x are treated as hexadecimal. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). + + Poco::Int16 getInt16(const std::string& key) const; + /// Returns the 16-bit int value of the property with the given name. + /// Throws a NotFoundException if the key does not exist. + /// Throws a SyntaxException or a RangeException if the property can not be converted + /// to an Int16. + /// Numbers starting with 0x are treated as hexadecimal. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). + + Poco::UInt16 getUInt16(const std::string& key) const; + /// Returns the unsigned 16-bit int value of the property with the given name. + /// Throws a NotFoundException if the key does not exist. + /// Throws a SyntaxException or a RangeException if the property can not be converted + /// to an UInt16. + /// Numbers starting with 0x are treated as hexadecimal. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). + + Poco::Int16 getInt16(const std::string& key, Poco::Int16 defaultValue) const; + /// If a property with the given key exists, returns the property's 16-bit int value, + /// otherwise returns the given default value. + /// Throws a SyntaxException or a RangeException if the property can not be converted + /// to an Int16. + /// Numbers starting with 0x are treated as hexadecimal. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). + + Poco::UInt16 getUInt16(const std::string& key, Poco::UInt16 defaultValue) const; + /// If a property with the given key exists, returns the property's unsigned 16-bit int + /// value, otherwise returns the given default value. + /// Throws a SyntaxException or a RangeException if the property can not be converted + /// to an UInt16. + /// Numbers starting with 0x are treated as hexadecimal. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). #if defined(POCO_HAVE_INT64) @@ -188,8 +260,8 @@ public: /// Throws a SyntaxException if the property can not be converted /// to an Int64. /// Numbers starting with 0x are treated as hexadecimal. - /// If the value contains references to other properties (${}), these - /// are expanded. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). UInt64 getUInt64(const std::string& key) const; /// Returns the UInt64 value of the property with the given name. @@ -197,8 +269,8 @@ public: /// Throws a SyntaxException if the property can not be converted /// to an UInt64. /// Numbers starting with 0x are treated as hexadecimal. - /// If the value contains references to other properties (${}), these - /// are expanded. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). Int64 getInt64(const std::string& key, Int64 defaultValue) const; /// If a property with the given key exists, returns the property's Int64 value, @@ -206,8 +278,8 @@ public: /// Throws a SyntaxException if the property can not be converted /// to an Int64. /// Numbers starting with 0x are treated as hexadecimal. - /// If the value contains references to other properties (${}), these - /// are expanded. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). UInt64 getUInt64(const std::string& key, UInt64 defaultValue) const; /// If a property with the given key exists, returns the property's UInt64 @@ -215,8 +287,8 @@ public: /// Throws a SyntaxException if the property can not be converted /// to an UInt64. /// Numbers starting with 0x are treated as hexadecimal. - /// If the value contains references to other properties (${}), these - /// are expanded. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). #endif // defined(POCO_HAVE_INT64) @@ -225,24 +297,24 @@ public: /// Throws a NotFoundException if the key does not exist. /// Throws a SyntaxException if the property can not be converted /// to a double. - /// If the value contains references to other properties (${}), these - /// are expanded. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). double getDouble(const std::string& key, double defaultValue) const; /// If a property with the given key exists, returns the property's double value, /// otherwise returns the given default value. /// Throws a SyntaxException if the property can not be converted /// to an double. - /// If the value contains references to other properties (${}), these - /// are expanded. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). bool getBool(const std::string& key) const; /// Returns the boolean value of the property with the given name. /// Throws a NotFoundException if the key does not exist. /// Throws a SyntaxException if the property can not be converted /// to a boolean. - /// If the value contains references to other properties (${}), these - /// are expanded. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). bool getBool(const std::string& key, bool defaultValue) const; /// If a property with the given key exists, returns the property's boolean value, @@ -253,8 +325,8 @@ public: /// - numerical values: non zero becomes true, zero becomes false /// - strings: true, yes, on become true, false, no, off become false /// Case does not matter. - /// If the value contains references to other properties (${}), these - /// are expanded. + /// If the value contains references to other properties (${}, or + /// ${:-}), these are expanded (see expand()). virtual void setString(const std::string& key, const std::string& value); /// Sets the property with the given key to the given value. @@ -268,6 +340,22 @@ public: /// Sets the property with the given key to the given value. /// An already existing value for the key is overwritten. + virtual void setInt16(const std::string& key, Poco::Int16 value); + /// Sets the property with the given key to the given value. + /// An already existing value for the key is overwritten. + + virtual void setUInt16(const std::string& key, Poco::UInt16 value); + /// Sets the property with the given key to the given value. + /// An already existing value for the key is overwritten. + + virtual void setInt32(const std::string& key, Poco::Int32 value); + /// Sets the property with the given key to the given value. + /// An already existing value for the key is overwritten. + + virtual void setUInt32(const std::string& key, Poco::UInt32 value); + /// Sets the property with the given key to the given value. + /// An already existing value for the key is overwritten. + #if defined(POCO_HAVE_INT64) virtual void setInt64(const std::string& key, Int64 value); @@ -312,6 +400,12 @@ public: /// value of the . If does not exist, /// nothing is changed. /// + /// It is also possible to specify a default value for a referenced + /// property that does not exist, using ${:-}. + /// Note that currently a default value cannot contain a closing + /// curly bracket ("}"). The default value also cannot reference + /// another variable. + /// /// If a circular property reference is detected, a /// CircularReferenceException will be thrown. @@ -359,6 +453,14 @@ protected: /// Returns string as unsigned integer. /// Decimal and hexadecimal notation is supported. + static Poco::Int16 parseInt16(const std::string& value); + /// Returns string as signed 16-bit integer. + /// Decimal and hexadecimal notation is supported. + + static Poco::UInt16 parseUInt16(const std::string& value); + /// Returns string as unsigned 16-bit integer. + /// Decimal and hexadecimal notation is supported. + #if defined(POCO_HAVE_INT64) static Int64 parseInt64(const std::string& value); @@ -394,6 +496,35 @@ private: }; +// +// inlines +// + + +inline Poco::Int32 AbstractConfiguration::getInt32(const std::string& key) const +{ + return getInt(key); +} + + +inline Poco::Int32 AbstractConfiguration::getInt32(const std::string& key, Poco::Int32 defaultValue) const +{ + return getInt(key, defaultValue); +} + + +inline Poco::UInt32 AbstractConfiguration::getUInt32(const std::string& key) const +{ + return getUInt(key); +} + + +inline Poco::UInt32 AbstractConfiguration::getUInt32(const std::string& key, Poco::UInt32 defaultValue) const +{ + return getUInt(key, defaultValue); +} + + } } // namespace Poco::Util diff --git a/Util/src/AbstractConfiguration.cpp b/Util/src/AbstractConfiguration.cpp index bdb854f64..2533c40aa 100644 --- a/Util/src/AbstractConfiguration.cpp +++ b/Util/src/AbstractConfiguration.cpp @@ -164,6 +164,54 @@ unsigned AbstractConfiguration::getUInt(const std::string& key, unsigned default } +Poco::Int16 AbstractConfiguration::getInt16(const std::string& key) const +{ + Mutex::ScopedLock lock(_mutex); + + std::string value; + if (getRaw(key, value)) + return parseInt16(internalExpand(value)); + else + throw NotFoundException(key); +} + + +Poco::Int16 AbstractConfiguration::getInt16(const std::string& key, Poco::Int16 defaultValue) const +{ + Mutex::ScopedLock lock(_mutex); + + std::string value; + if (getRaw(key, value)) + return parseInt16(internalExpand(value)); + else + return defaultValue; +} + + +Poco::UInt16 AbstractConfiguration::getUInt16(const std::string& key) const +{ + Mutex::ScopedLock lock(_mutex); + + std::string value; + if (getRaw(key, value)) + return parseUInt16(internalExpand(value)); + else + throw NotFoundException(key); +} + + +Poco::UInt16 AbstractConfiguration::getUInt16(const std::string& key, Poco::UInt16 defaultValue) const +{ + Mutex::ScopedLock lock(_mutex); + + std::string value; + if (getRaw(key, value)) + return parseUInt16(internalExpand(value)); + else + return defaultValue; +} + + #if defined(POCO_HAVE_INT64) @@ -284,6 +332,30 @@ void AbstractConfiguration::setUInt(const std::string& key, unsigned int value) } +void AbstractConfiguration::setInt16(const std::string& key, Poco::Int16 value) +{ + setRawWithEvent(key, NumberFormatter::format(value)); +} + + +void AbstractConfiguration::setUInt16(const std::string& key, Poco::UInt16 value) +{ + setRawWithEvent(key, NumberFormatter::format(value)); +} + + +void AbstractConfiguration::setInt32(const std::string& key, Poco::Int32 value) +{ + setRawWithEvent(key, NumberFormatter::format(value)); +} + + +void AbstractConfiguration::setUInt32(const std::string& key, Poco::UInt32 value) +{ + setRawWithEvent(key, NumberFormatter::format(value)); +} + + #if defined(POCO_HAVE_INT64) @@ -448,13 +520,33 @@ std::string AbstractConfiguration::uncheckedExpand(const std::string& value) con { ++it; std::string prop; - while (it != end && *it != '}') prop += *it++; + std::string deflt; + bool haveDefault = false; + while (it != end && *it != '}') + { + if (*it == ':') + { + ++it; + if (it != end && *it == '-') + { + haveDefault = true; + ++it; + while (it != end && *it != '}') deflt += *it++; + } + else prop += ':'; + } + else prop += *it++; + } if (it != end) ++it; std::string value; if (getRaw(prop, value)) { result.append(internalExpand(value)); } + else if (haveDefault) + { + result.append(deflt); + } else { result.append("${"); @@ -488,6 +580,34 @@ unsigned AbstractConfiguration::parseUInt(const std::string& value) } +Poco::Int16 AbstractConfiguration::parseInt16(const std::string& value) +{ + int intValue = 0; + if ((value.compare(0, 2, "0x") == 0) || (value.compare(0, 2, "0X") == 0)) + intValue = static_cast(NumberParser::parseHex(value)); + else + intValue = NumberParser::parse(value); + if (intValue >= -32768 && intValue <= 32767) + return static_cast(intValue); + else + throw Poco::RangeException("Not a valid 16-bit integer value", value); +} + + +Poco::UInt16 AbstractConfiguration::parseUInt16(const std::string& value) +{ + unsigned uintValue; + if ((value.compare(0, 2, "0x") == 0) || (value.compare(0, 2, "0X") == 0)) + uintValue = NumberParser::parseHex(value); + else + uintValue = NumberParser::parseUnsigned(value); + if (uintValue <= 65535) + return static_cast(uintValue); + else + throw Poco::RangeException("Not a valid unsigned 16-bit integer value", value); +} + + Int64 AbstractConfiguration::parseInt64(const std::string& value) { if ((value.compare(0, 2, "0x") == 0) || (value.compare(0, 2, "0X") == 0)) diff --git a/Util/testsuite/src/AbstractConfigurationTest.cpp b/Util/testsuite/src/AbstractConfigurationTest.cpp index dfddfeb16..44a78342b 100644 --- a/Util/testsuite/src/AbstractConfigurationTest.cpp +++ b/Util/testsuite/src/AbstractConfigurationTest.cpp @@ -105,6 +105,49 @@ void AbstractConfigurationTest::testGetInt() } +void AbstractConfigurationTest::testGetInt16() +{ + AutoPtr pConf = createConfiguration(); + + assertTrue (pConf->getInt16("prop4.int1") == 42); + assertTrue (pConf->getInt16("prop4.int2") == -42); + assertTrue (pConf->getInt16("prop4.hex") == 0x1f); + assertTrue (pConf->getUInt16("prop4.hex") == 0x1f); + assertTrue (pConf->getInt16("ref2") == 42); + + try + { + pConf->getInt16("prop1"); + fail("not a number - must throw"); + } + catch (Poco::SyntaxException&) + { + } + + try + { + pConf->getInt16("prop4.notint16"); + fail("too big for UInt16 - must throw"); + } + catch (Poco::RangeException&) + { + } + + try + { + pConf->getUInt16("prop4.notuint16"); + fail("too big for UInt16 - must throw"); + } + catch (Poco::RangeException&) + { + } + + assertTrue (pConf->getInt16("prop4.int1", 100) == 42); + assertTrue (pConf->getInt16("prop4.int2", 100) == -42); + assertTrue (pConf->getInt16("prop4.int3", 100) == 100); +} + + void AbstractConfigurationTest::testGetInt64() { #if defined(POCO_HAVE_INT64) @@ -212,6 +255,11 @@ void AbstractConfigurationTest::testExpand() assertTrue (pConf->getString("dollar.atend") == "foo$"); assertTrue (pConf->getString("dollar.middle") == "foo$bar"); + + assertTrue (pConf->expand("default=${undefined:-default value}") == "default=default value"); + assertTrue (pConf->expand("default=${undefined:-}") == "default="); + assertTrue (pConf->expand("default=${undefined:value}") == "default=${undefined:value}"); + assertTrue (pConf->expand("default:${undefined::value}") == "default:${undefined::value}"); } @@ -368,7 +416,7 @@ void AbstractConfigurationTest::testRemove() pConf->keys(keys); assertTrue (keys.size() == 13); pConf->keys("prop4", keys); - assertTrue (keys.size() == 17); + assertTrue (keys.size() == 19); pConf->remove("prop4.bool1"); assertTrue (!pConf->hasProperty("prop4.bool1")); @@ -377,7 +425,7 @@ void AbstractConfigurationTest::testRemove() pConf->keys(keys); assertTrue (keys.size() == 13); pConf->keys("prop4", keys); - assertTrue (keys.size() == 16); + assertTrue (keys.size() == 18); pConf->remove("prop4"); assertTrue (!pConf->hasProperty("prop4.bool1")); @@ -406,6 +454,8 @@ AbstractConfiguration::Ptr AbstractConfigurationTest::createConfiguration() cons pConfig->setString("prop4.int1", "42"); pConfig->setString("prop4.int2", "-42"); pConfig->setString("prop4.uint", NumberFormatter::format(std::numeric_limits::max())); + pConfig->setString("prop4.notint16", "32768"); + pConfig->setString("prop4.notuint16", "65536"); #if defined(POCO_HAVE_INT64) pConfig->setString("prop4.bigint1", NumberFormatter::format(std::numeric_limits::max())); pConfig->setString("prop4.bigint2", NumberFormatter::format(std::numeric_limits::min())); diff --git a/Util/testsuite/src/AbstractConfigurationTest.h b/Util/testsuite/src/AbstractConfigurationTest.h index 5fa9568d0..79fdd4d39 100644 --- a/Util/testsuite/src/AbstractConfigurationTest.h +++ b/Util/testsuite/src/AbstractConfigurationTest.h @@ -29,6 +29,7 @@ public: void testHasProperty(); void testGetString(); void testGetInt(); + void testGetInt16(); void testGetInt64(); void testGetDouble(); void testGetBool(); diff --git a/Util/testsuite/src/IniFileConfigurationTest.cpp b/Util/testsuite/src/IniFileConfigurationTest.cpp index b27e9732b..9d0243579 100644 --- a/Util/testsuite/src/IniFileConfigurationTest.cpp +++ b/Util/testsuite/src/IniFileConfigurationTest.cpp @@ -102,7 +102,7 @@ void IniFileConfigurationTest::testCaseInsensitiveRemove() pConf->keys(keys); assertTrue (keys.size() == 13); pConf->keys("prop4", keys); - assertTrue (keys.size() == 17); + assertTrue (keys.size() == 19); pConf->remove("PROP4.Bool1"); assertTrue (pConf->hasProperty("Prop1")); @@ -112,7 +112,7 @@ void IniFileConfigurationTest::testCaseInsensitiveRemove() pConf->keys(keys); assertTrue (keys.size() == 13); pConf->keys("PROP4", keys); - assertTrue (keys.size() == 16); + assertTrue (keys.size() == 18); pConf->remove("Prop4"); assertTrue (pConf->hasProperty("Prop1")); From d5966acdb54749e41085ccaaaccd8dfc34503ef3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sat, 30 Sep 2023 18:07:54 +0200 Subject: [PATCH 082/395] fix FileStream test --- Foundation/testsuite/src/FileStreamTest.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Foundation/testsuite/src/FileStreamTest.cpp b/Foundation/testsuite/src/FileStreamTest.cpp index a394442aa..46e9ecb48 100644 --- a/Foundation/testsuite/src/FileStreamTest.cpp +++ b/Foundation/testsuite/src/FileStreamTest.cpp @@ -182,7 +182,7 @@ void FileStreamTest::testOpenModeAte() ostr << "0123456789"; ostr.close(); - Poco::FileStream str1("test.txt", std::ios::ate); + Poco::FileStream str1("test.txt", std::ios::in | std::ios::ate); int c = str1.get(); assertTrue (str1.eof()); @@ -193,7 +193,7 @@ void FileStreamTest::testOpenModeAte() str1.close(); - Poco::FileStream str2("test.txt", std::ios::ate); + Poco::FileStream str2("test.txt", std::ios::in | std::ios::out | std::ios::ate); str2 << "abcdef"; str2.seekg(0); std::string s; @@ -209,7 +209,7 @@ void FileStreamTest::testOpenModeApp() ostr << "0123456789"; ostr.close(); - Poco::FileStream str1("test.txt", std::ios::app); + Poco::FileStream str1("test.txt", std::ios::in | std::ios::out | std::ios::app); str1 << "abc"; @@ -229,7 +229,7 @@ void FileStreamTest::testOpenModeApp() void FileStreamTest::testSeek() { - Poco::FileStream str("test.txt", std::ios::trunc); + Poco::FileStream str("test.txt", std::ios::in | std::ios::out | std::ios::trunc); str << "0123456789abcdef"; str.seekg(0); From a66a298bf6d3d1f882178a7318d681bb63da89bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sat, 30 Sep 2023 21:13:26 +0200 Subject: [PATCH 083/395] fix test on Windows --- Foundation/testsuite/src/FileStreamTest.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Foundation/testsuite/src/FileStreamTest.cpp b/Foundation/testsuite/src/FileStreamTest.cpp index 46e9ecb48..4d0fe0836 100644 --- a/Foundation/testsuite/src/FileStreamTest.cpp +++ b/Foundation/testsuite/src/FileStreamTest.cpp @@ -270,7 +270,7 @@ void FileStreamTest::testSeek() void FileStreamTest::testMultiOpen() { - Poco::FileStream str("test.txt", std::ios::trunc); + Poco::FileStream str("test.txt", std::ios::out | std::ios::trunc); str << "0123456789\n"; str << "abcdefghij\n"; str << "klmnopqrst\n"; From 7f5c7d1ab2eb9e37301044f5d78141b89e5de91f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sun, 1 Oct 2023 17:30:27 +0200 Subject: [PATCH 084/395] fix test by ignoring exception due to invalid path name on Windows --- Util/testsuite/src/AbstractConfigurationTest.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Util/testsuite/src/AbstractConfigurationTest.cpp b/Util/testsuite/src/AbstractConfigurationTest.cpp index 44a78342b..f389e2df0 100644 --- a/Util/testsuite/src/AbstractConfigurationTest.cpp +++ b/Util/testsuite/src/AbstractConfigurationTest.cpp @@ -258,8 +258,15 @@ void AbstractConfigurationTest::testExpand() assertTrue (pConf->expand("default=${undefined:-default value}") == "default=default value"); assertTrue (pConf->expand("default=${undefined:-}") == "default="); - assertTrue (pConf->expand("default=${undefined:value}") == "default=${undefined:value}"); - assertTrue (pConf->expand("default:${undefined::value}") == "default:${undefined::value}"); + try + { + assertTrue (pConf->expand("default=${undefined:value}") == "default=${undefined:value}"); + assertTrue (pConf->expand("default:${undefined::value}") == "default:${undefined::value}"); + } + catch (Poco::PathSyntaxException&) + { + // Note: This will result in an invalid path (on Windows), throwing an exception which can be safely ignored. + } } From fd4fcda99e3f809793898cf10edcdff2b10fb8a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sun, 1 Oct 2023 18:08:51 +0200 Subject: [PATCH 085/395] upgrade action runners --- .github/workflows/ci.yml | 56 ++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 96570fa53..c7b9071c6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,7 +2,7 @@ name: poco-ci on: [push, pull_request] jobs: linux-gcc-make: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 services: mysql: image: mysql:latest @@ -14,7 +14,7 @@ jobs: ports: - 3306:3306 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev redis-server libmysqlclient-dev - run: ./configure --everything --omit=PDF && make all -s -j4 && sudo make install - run: >- @@ -25,7 +25,7 @@ jobs: linux-gcc-make-cxx20: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev redis-server libmysqlclient-dev - run: ./configure --config=Linux-c++20 --everything --omit=PDF && make all -s -j4 && sudo make install - run: >- @@ -34,7 +34,7 @@ jobs: ./ci/runtests.sh linux-gcc-make-asan: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 services: mysql: image: mysql:latest @@ -46,7 +46,7 @@ jobs: ports: - 3306:3306 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server - run: ./configure --everything --no-samples --omit=PDF && make all -s -j4 SANITIZEFLAGS=-fsanitize=address && sudo make install - run: >- @@ -55,9 +55,9 @@ jobs: ./ci/runtests.sh linux-gcc-make-asan-no-soo: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server - run: ./configure --everything --no-samples --omit=PDF --no-soo && make all -s -j4 SANITIZEFLAGS=-fsanitize=address && sudo make install - run: >- @@ -66,9 +66,9 @@ jobs: ./ci/runtests.sh linux-gcc-make-ubsan: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server - run: ./configure --everything --no-samples --omit=PDF && make all -s -j4 SANITIZEFLAGS=-fsanitize=undefined && sudo make install - run: >- @@ -77,9 +77,9 @@ jobs: ./ci/runtests.sh linux-gcc-make-tsan: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server - run: ./configure --everything --no-samples --omit=CppParser,Encodings,Data/MySQL,Data/ODBC,Data/PostgreSQL,MongoDB,PageCompiler,PDF,PocoDoc,ProGen,Redis,SevenZip && make all -s -j4 SANITIZEFLAGS=-fsanitize=thread && sudo make install - run: >- @@ -87,9 +87,9 @@ jobs: ./ci/runtests.sh TSAN linux-gcc-cmake: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: sudo apt -y update && sudo apt -y install cmake ninja-build libssl-dev unixodbc-dev libmysqlclient-dev redis-server - run: cmake -H. -Bcmake-build -GNinja -DENABLE_PDF=OFF -DENABLE_TESTS=ON && cmake --build cmake-build --target all - run: >- @@ -99,9 +99,9 @@ jobs: ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)" linux-gcc-make-cross-armhf: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: >- sudo apt-get -y update && sudo apt-get -y install crossbuild-essential-armhf @@ -110,9 +110,9 @@ jobs: make all -s -j4 ARCHFLAGS="-mcpu=cortex-a8 -mfloat-abi=hard -mfpu=neon" TOOL=arm-linux-gnueabihf macos-clang-make: - runs-on: macos-11 + runs-on: macos-12 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: brew install openssl@1.1 mysql-client unixodbc libpq - run: ./configure --everything --no-prefix --omit=PDF --odbc-include=/usr/local/opt/unixodbc/include --odbc-lib=/usr/local/opt/unixodbc/lib && make all -s -j4 - run: >- @@ -122,9 +122,9 @@ jobs: ./ci/runtests.sh macos-clang-cmake: - runs-on: macos-11 + runs-on: macos-12 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: brew install openssl@1.1 mysql-client unixodbc libpq - run: cmake -H. -Bcmake-build -DENABLE_PDF=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@1.1 -DMYSQL_ROOT_DIR=/usr/local/opt/mysql-client && cmake --build cmake-build --target all - run: >- @@ -135,9 +135,9 @@ jobs: ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" macos-clang-cmake-openssl3: - runs-on: macos-11 + runs-on: macos-12 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: brew install openssl@3 mysql-client unixodbc libpq - run: cmake -H. -Bcmake-build -DENABLE_PDF=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@3 -DMYSQL_ROOT_DIR=/usr/local/opt/mysql-client && cmake --build cmake-build --target all - run: >- @@ -152,7 +152,7 @@ jobs: env: CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON -DCMAKE_CXX_FLAGS="/MP /EHsc" -DCMAKE_C_FLAGS=/MP - run: cmake --build cmake-build --config Release - run: >- @@ -164,7 +164,7 @@ jobs: env: CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: .\buildwin.ps1 -poco_base . -vs 160 -action build -linkmode all -config release -platform x64 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" # windows-2019-msvc-buildwin-win32: @@ -172,7 +172,7 @@ jobs: # env: # CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy # steps: -# - uses: actions/checkout@v2 +# - uses: actions/checkout@v3 # - run: .\buildwin.ps1 -poco_base . -vs 160 -action build -linkmode all -config release -platform Win32 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" windows-2022-msvc-buildwin-x64: @@ -180,7 +180,7 @@ jobs: env: CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: .\buildwin.ps1 -poco_base . -vs 170 -action build -linkmode all -config release -platform x64 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" # windows-2022-msvc-buildwin-win32: @@ -188,7 +188,7 @@ jobs: # env: # CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy # steps: -# - uses: actions/checkout@v2 +# - uses: actions/checkout@v3 # - run: .\buildwin.ps1 -poco_base . -vs 170 -action build -linkmode all -config release -platform Win32 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" windows-2022-msvc-cmake-2022: @@ -196,7 +196,7 @@ jobs: env: CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON -DCMAKE_CXX_FLAGS="/MP /EHsc" -DCMAKE_C_FLAGS=/MP - run: cmake --build cmake-build --config Release - run: >- @@ -209,7 +209,7 @@ jobs: # env: # CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy # steps: -# - uses: actions/checkout@v2 +# - uses: actions/checkout@v3 # - run: cmake -S. -Bcmake-build -DPOCO_SANITIZE_ASAN=ON -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON # - run: cmake --build cmake-build --config Debug # - run: >- From 3a93e32defbbea58a5c054d7e35fa6d92a47be61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sun, 1 Oct 2023 19:18:29 +0200 Subject: [PATCH 086/395] #1372: Possible deadlock in SessionPool --- Data/src/SessionPool.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Data/src/SessionPool.cpp b/Data/src/SessionPool.cpp index c1640094b..2c7e2bdd7 100644 --- a/Data/src/SessionPool.cpp +++ b/Data/src/SessionPool.cpp @@ -312,10 +312,15 @@ void SessionPool::onJanitorTimer(Poco::Timer&) void SessionPool::shutdown() { - Poco::Mutex::ScopedLock lock(_mutex); - if (_shutdown) return; - _shutdown = true; + { + Poco::Mutex::ScopedLock lock(_mutex); + if (_shutdown) return; + _shutdown = true; + } + _janitorTimer.stop(); + + Poco::Mutex::ScopedLock lock(_mutex); closeAll(_idleSessions); closeAll(_activeSessions); } From 70bb8f13f9f2a86f99d75354da98b61029e12b71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 2 Oct 2023 07:16:48 +0200 Subject: [PATCH 087/395] CppUnit: demangle class names --- CppUnit/include/CppUnit/TestCase.h | 3 ++- CppUnit/include/CppUnit/TestResult.h | 2 ++ CppUnit/src/TestCase.cpp | 2 +- CppUnit/src/TestResult.cpp | 26 ++++++++++++++++++++++++++ Foundation/include/Poco/Platform.h | 2 ++ 5 files changed, 33 insertions(+), 2 deletions(-) diff --git a/CppUnit/include/CppUnit/TestCase.h b/CppUnit/include/CppUnit/TestCase.h index bd18de301..5c3c7e394 100644 --- a/CppUnit/include/CppUnit/TestCase.h +++ b/CppUnit/include/CppUnit/TestCase.h @@ -10,6 +10,7 @@ #include "CppUnit/CppUnit.h" #include "CppUnit/Guards.h" #include "CppUnit/Test.h" +#include "CppUnit/TestResult.h" #include "CppUnit/CppUnitException.h" #include #include @@ -243,7 +244,7 @@ inline void TestCase::tearDown() inline std::string TestCase::toString() const { const std::type_info& thisClass = typeid(*this); - return std::string(thisClass.name()) + "." + name(); + return TestResult::demangle(thisClass.name()) + "." + name(); } diff --git a/CppUnit/include/CppUnit/TestResult.h b/CppUnit/include/CppUnit/TestResult.h index 6539e0bae..b888ea224 100644 --- a/CppUnit/include/CppUnit/TestResult.h +++ b/CppUnit/include/CppUnit/TestResult.h @@ -97,6 +97,8 @@ public: } }; + static std::string demangle(const char* name); + protected: virtual void setSynchronizationObject(SynchronizationObject* syncObject); diff --git a/CppUnit/src/TestCase.cpp b/CppUnit/src/TestCase.cpp index 7aa9136d1..c1e044b78 100644 --- a/CppUnit/src/TestCase.cpp +++ b/CppUnit/src/TestCase.cpp @@ -122,7 +122,7 @@ void TestCase::run(TestResult *result, const Test::Callback& callback) } catch (std::exception& e) { - std::string msg(typeid(e).name()); + std::string msg(TestResult::demangle(typeid(e).name())); msg.append(":\n").append(callback(e)); result->addError(this, new CppUnitException(msg)); } diff --git a/CppUnit/src/TestResult.cpp b/CppUnit/src/TestResult.cpp index 6474cd5af..d91320851 100644 --- a/CppUnit/src/TestResult.cpp +++ b/CppUnit/src/TestResult.cpp @@ -4,6 +4,10 @@ #include "CppUnit/TestResult.h" +#ifdef POCO_HAVE_CXXABI_H +#include +#include +#endif namespace CppUnit { @@ -24,4 +28,26 @@ TestResult::~TestResult() } +std::string TestResult::demangle(const char* typeName) +{ + std::string result; +#ifdef POCO_HAVE_CXXABI_H + int status; + char* demangled = abi::__cxa_demangle(typeName, nullptr, nullptr, &status); + if (demangled) + { + result = demangled; + std::free(demangled); + } + else + { + result = typeName; + } +#else + result = typeName; +#endif + return result; +} + + } // namespace CppUnit diff --git a/Foundation/include/Poco/Platform.h b/Foundation/include/Poco/Platform.h index 192d6c75f..71177472a 100644 --- a/Foundation/include/Poco/Platform.h +++ b/Foundation/include/Poco/Platform.h @@ -243,10 +243,12 @@ #if defined(__clang__) #define POCO_COMPILER_CLANG + #define POCO_HAVE_CXXABI_H #elif defined(_MSC_VER) #define POCO_COMPILER_MSVC #elif defined (__GNUC__) #define POCO_COMPILER_GCC + #define POCO_HAVE_CXXABI_H #if defined (__MINGW32__) || defined (__MINGW64__) #define POCO_COMPILER_MINGW #endif From 573e01806bc9ea4bfc14b0f689b00db9258c1d17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 2 Oct 2023 07:41:18 +0200 Subject: [PATCH 088/395] don't depend on POCO_HAVE_CXXABI_H --- CppUnit/src/TestResult.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/CppUnit/src/TestResult.cpp b/CppUnit/src/TestResult.cpp index d91320851..e79b8e116 100644 --- a/CppUnit/src/TestResult.cpp +++ b/CppUnit/src/TestResult.cpp @@ -3,8 +3,13 @@ // +#if defined(__clang__) || defined (__GNUC__) + #define HAVE_CXXABI_H +#endif + + #include "CppUnit/TestResult.h" -#ifdef POCO_HAVE_CXXABI_H +#ifdef HAVE_CXXABI_H #include #include #endif @@ -31,7 +36,7 @@ TestResult::~TestResult() std::string TestResult::demangle(const char* typeName) { std::string result; -#ifdef POCO_HAVE_CXXABI_H +#ifdef HAVE_CXXABI_H int status; char* demangled = abi::__cxa_demangle(typeName, nullptr, nullptr, &status); if (demangled) From ca3029a20c132310cc4c7b10f2ddf9dce13e36bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 2 Oct 2023 07:49:47 +0200 Subject: [PATCH 089/395] #4162: [Bug] class KeylessActiveRecord is missing export macro --- ActiveRecord/include/Poco/ActiveRecord/ActiveRecord.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ActiveRecord/include/Poco/ActiveRecord/ActiveRecord.h b/ActiveRecord/include/Poco/ActiveRecord/ActiveRecord.h index 2415d86fa..c8d2860f7 100644 --- a/ActiveRecord/include/Poco/ActiveRecord/ActiveRecord.h +++ b/ActiveRecord/include/Poco/ActiveRecord/ActiveRecord.h @@ -162,7 +162,7 @@ template const IDType ActiveRecord::INVALID_ID = IDTraits::INVALID_ID; -class KeylessActiveRecord: public ActiveRecordBase +class ActiveRecordLib_API KeylessActiveRecord: public ActiveRecordBase /// The base class for all database objects that /// implement the ActiveRecord pattern, without /// a key column. From ee7e8dc29fb85f35dd42c17be71fe17d3228b9bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 2 Oct 2023 07:50:29 +0200 Subject: [PATCH 090/395] fix include order --- NetSSL_OpenSSL/include/Poco/Net/NetSSL.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h b/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h index 2352f07e6..444ab4b8c 100644 --- a/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h +++ b/NetSSL_OpenSSL/include/Poco/Net/NetSSL.h @@ -20,8 +20,8 @@ #define NetSSL_NetSSL_INCLUDED -#include "Poco/Crypto/Crypto.h" #include "Poco/Net/Net.h" +#include "Poco/Crypto/Crypto.h" // From 58af2ebc4636fbdd833ea4b7bedef3ab46a24228 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 2 Oct 2023 08:20:04 +0200 Subject: [PATCH 091/395] merge changes from 1.11.8 --- ActiveRecord/Compiler/src/CodeGenerator.cpp | 1 + ActiveRecord/Compiler/src/Compiler.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ActiveRecord/Compiler/src/CodeGenerator.cpp b/ActiveRecord/Compiler/src/CodeGenerator.cpp index 79f0145d9..c318e626d 100644 --- a/ActiveRecord/Compiler/src/CodeGenerator.cpp +++ b/ActiveRecord/Compiler/src/CodeGenerator.cpp @@ -48,6 +48,7 @@ void CodeGenerator::writeEndNameSpace(const std::string& nameSpace) const auto ns = splitNameSpace(nameSpace); for (const auto& s: ns) { + (void) s; // avoid unused variable warning _stream << "} "; } _stream << "// namespace " << nameSpace << "\n"; diff --git a/ActiveRecord/Compiler/src/Compiler.cpp b/ActiveRecord/Compiler/src/Compiler.cpp index f5bd06faa..6fca2d9bc 100644 --- a/ActiveRecord/Compiler/src/Compiler.cpp +++ b/ActiveRecord/Compiler/src/Compiler.cpp @@ -78,7 +78,7 @@ protected: helpFormatter.setHeader( "\n" "The POCO C++ Libraries ActiveRecord ORM Compiler.\n" - "Copyright (c) 2020-2022 by Applied Informatics Software Engineering GmbH.\n" + "Copyright (c) 2020-2023 by Applied Informatics Software Engineering GmbH.\n" "All rights reserved.\n\n" "This program generates C++ source code from an ActiveRecord " "XML definition. " From 1b95d53804557f0f637e1ee09a3bfb16a47385ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 2 Oct 2023 09:54:52 +0200 Subject: [PATCH 092/395] #4147: missing \r\n when setting trailer header in chunked response --- Net/src/HTTPChunkedStream.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Net/src/HTTPChunkedStream.cpp b/Net/src/HTTPChunkedStream.cpp index 9b5916309..49ca241fb 100644 --- a/Net/src/HTTPChunkedStream.cpp +++ b/Net/src/HTTPChunkedStream.cpp @@ -59,10 +59,7 @@ void HTTPChunkedStreamBuf::close() HTTPOutputStream hos(_session); _pTrailer->write(hos); } - else - { - _session.write("\r\n", 2); - } + _session.write("\r\n", 2); } } From 444b66ea95e7d1ad00c4f2b42ccbb45b61dc7a41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 2 Oct 2023 12:15:06 +0200 Subject: [PATCH 093/395] updated cppignore.lnx --- cppignore.lnx | 57 ++++++++++++++++++++++++++------------------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/cppignore.lnx b/cppignore.lnx index 885cfd3c3..cf9847b85 100644 --- a/cppignore.lnx +++ b/cppignore.lnx @@ -1,28 +1,29 @@ -N7CppUnit10TestCallerI10ThreadTestEE.testSleep -N7CppUnit10TestCallerI13NTPClientTestEE.testTimeSync -N7CppUnit10TestCallerI13RawSocketTestEE.testEchoIPv4 -N7CppUnit10TestCallerI13RawSocketTestEE.testSendToReceiveFromIPv4 -N7CppUnit10TestCallerI14ICMPClientTestEE.testBigPing -N7CppUnit10TestCallerI14ICMPClientTestEE.testPing -N7CppUnit10TestCallerI14ICMPSocketTestEE.testMTU -N7CppUnit10TestCallerI14ICMPSocketTestEE.testSendToReceiveFrom -N7CppUnit10TestCallerI15ExpireCacheTestEE.testAccessExpireN -N7CppUnit10TestCallerI15ExpireCacheTestEE.testExpireN -N7CppUnit10TestCallerI15FileChannelTestEE.testPurgeAge -N7CppUnit10TestCallerI17SocketAddressTestEE.testSocketAddress -N7CppUnit10TestCallerI19MulticastSocketTestEE.testMulticast -N7CppUnit10TestCallerI21UniqueExpireCacheTestEE.testExpireN -N7CppUnit10TestCallerI22HTTPSClientSessionTestEE.testCachedSession -N7CppUnit10TestCallerI22HTTPSClientSessionTestEE.testProxy -N7CppUnit10TestCallerI22HTTPSStreamFactoryTestEE.testProxy -N7CppUnit10TestCallerI7DNSTestEE.testHostByAddress -N7CppUnit10TestCallerI7DNSTestEE.testHostByName -N7CppUnit10TestCallerI8FileTestEE.testFileAttributes2 -N7CppUnit10TestCallerI8PathTestEE.testExpand -N7CppUnit10TestCallerI8PathTestEE.testExpandVariableFromPath -N7CppUnit10TestCallerI9ClockTestEE.testClock -N7CppUnit10TestCallerI9TimerTestEE.testScheduleAtFixedRate -N7CppUnit10TestCallerI9TimerTestEE.testScheduleInterval -N7CppUnit10TestCallerI9TimerTestEE.testScheduleIntervalClock -N7CppUnit10TestCallerI9TimerTestEE.testScheduleIntervalTimestamp -N7CppUnit10TestCallerI9TimerTestEE.testTimer +CppUnit::TestCaller.testSleep +CppUnit::TestCaller.testAccessExpireN +CppUnit::TestCaller.testExpireN +CppUnit::TestCaller.testExpireN +CppUnit::TestCaller.testPurgeAge +CppUnit::TestCaller.testFileAttributes2 +CppUnit::TestCaller.testExpand +CppUnit::TestCaller.testExpandVariableFromPath +CppUnit::TestCaller.testClock +CppUnit::TestCaller.testScheduleAtFixedRate +CppUnit::TestCaller.testScheduleInterval +CppUnit::TestCaller.testScheduleIntervalClock +CppUnit::TestCaller.testScheduleIntervalTimestamp +CppUnit::TestCaller.testTimer +CppUnit::TestCaller.testSocketAddress +CppUnit::TestCaller.testEchoIPv4 +CppUnit::TestCaller.testSendToReceiveFromIPv4 +CppUnit::TestCaller.testPing +CppUnit::TestCaller.testBigPing +CppUnit::TestCaller.testSendToReceiveFrom +CppUnit::TestCaller.testAssign +CppUnit::TestCaller.testMTU +CppUnit::TestCaller.testTimeSync +CppUnit::TestCaller.testMulticast +CppUnit::TestCaller.testCachedSession +CppUnit::TestCaller.testProxy +CppUnit::TestCaller.testProxy +CppUnit::TestCaller.testHostByAddress +CppUnit::TestCaller.testHostByName From f7d28bec77865a4cbba11079b52518f6c058c5f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 2 Oct 2023 14:27:42 +0200 Subject: [PATCH 094/395] ignore one more time-based test result --- cppignore.lnx | 1 + 1 file changed, 1 insertion(+) diff --git a/cppignore.lnx b/cppignore.lnx index cf9847b85..2c2376526 100644 --- a/cppignore.lnx +++ b/cppignore.lnx @@ -1,5 +1,6 @@ CppUnit::TestCaller.testSleep CppUnit::TestCaller.testAccessExpireN +CppUnit::TestCaller.testAccessExpireN CppUnit::TestCaller.testExpireN CppUnit::TestCaller.testExpireN CppUnit::TestCaller.testPurgeAge From 419433cf39dce3655540333902ab6dcab4821347 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 2 Oct 2023 23:11:54 +0200 Subject: [PATCH 095/395] fix ignored test names --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c7b9071c6..5b4566f4f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -117,7 +117,7 @@ jobs: - run: ./configure --everything --no-prefix --omit=PDF --odbc-include=/usr/local/opt/unixodbc/include --odbc-lib=/usr/local/opt/unixodbc/lib && make all -s -j4 - run: >- sudo -s - CPPUNIT_IGNORE="N7CppUnit10TestCallerI10ThreadTestEE.testTrySleep,N7CppUnit10TestCallerI13TimestampTestEE.testTimestamp,N7CppUnit10TestCallerI18ExpireLRUCacheTestEE.testExpireN,N7CppUnit10TestCallerI18ExpireLRUCacheTestEE.testAccessExpireN,N7CppUnit10TestCallerI24UniqueExpireLRUCacheTestEE.testExpireN,N7CppUnit10TestCallerI18ExpireLRUCacheTestEE.testAccessExpireN,N7CppUnit10TestCallerI11PollSetTestEE.testPollClosedServer" + CPPUNIT_IGNORE="CppUnit::TestCaller.testTrySleep,CppUnit::TestCaller.testTimestamp,CppUnit::TestCaller.testExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.pireLRUCacheTestEE.testExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.testPollClosedServer" EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" ./ci/runtests.sh @@ -130,7 +130,7 @@ jobs: - run: >- cd cmake-build && sudo -s - CPPUNIT_IGNORE="N7CppUnit10TestCallerI10ThreadTestEE.testTrySleep,N7CppUnit10TestCallerI13TimestampTestEE.testTimestamp,N7CppUnit10TestCallerI18ExpireLRUCacheTestEE.testExpireN,N7CppUnit10TestCallerI18ExpireLRUCacheTestEE.testAccessExpireN,N7CppUnit10TestCallerI24UniqueExpireLRUCacheTestEE.testExpireN,N7CppUnit10TestCallerI18ExpireLRUCacheTestEE.testAccessExpireN,N7CppUnit10TestCallerI11PollSetTestEE.testPollClosedServer" + CPPUNIT_IGNORE="CppUnit::TestCaller.testTrySleep,CppUnit::TestCaller.testTimestamp,CppUnit::TestCaller.testExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.pireLRUCacheTestEE.testExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.testPollClosedServer" PWD=`pwd` ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" @@ -143,7 +143,7 @@ jobs: - run: >- cd cmake-build && sudo -s - CPPUNIT_IGNORE="N7CppUnit10TestCallerI10ThreadTestEE.testTrySleep,N7CppUnit10TestCallerI13TimestampTestEE.testTimestamp,N7CppUnit10TestCallerI18ExpireLRUCacheTestEE.testExpireN,N7CppUnit10TestCallerI18ExpireLRUCacheTestEE.testAccessExpireN,N7CppUnit10TestCallerI24UniqueExpireLRUCacheTestEE.testExpireN,N7CppUnit10TestCallerI18ExpireLRUCacheTestEE.testAccessExpireN,N7CppUnit10TestCallerI11PollSetTestEE.testPollClosedServer" + CPPUNIT_IGNORE="CppUnit::TestCaller.testTrySleep,CppUnit::TestCaller.testTimestamp,CppUnit::TestCaller.testExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.pireLRUCacheTestEE.testExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.testPollClosedServer" PWD=`pwd` ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" From fdb7ffc1a7227c0d77483e45eb1c886713045ee6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Tue, 3 Oct 2023 21:31:27 +0200 Subject: [PATCH 096/395] merge fixes from 1.12.5 --- .github/workflows/ci.yml | 20 +++++++++++++------ CMakeLists.txt | 3 --- .../testsuite/src/TCPServerTest.cpp | 5 +++++ 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5b4566f4f..a995d00eb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,5 +1,9 @@ name: poco-ci on: [push, pull_request] +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + jobs: linux-gcc-make: runs-on: ubuntu-22.04 @@ -114,7 +118,11 @@ jobs: steps: - uses: actions/checkout@v3 - run: brew install openssl@1.1 mysql-client unixodbc libpq - - run: ./configure --everything --no-prefix --omit=PDF --odbc-include=/usr/local/opt/unixodbc/include --odbc-lib=/usr/local/opt/unixodbc/lib && make all -s -j4 + - run: >- + ./configure --everything --no-prefix --omit=PDF + --odbc-include=/usr/local/opt/unixodbc/include --odbc-lib=/usr/local/opt/unixodbc/lib + --mysql-include=/usr/local/opt/mysql-client/include --mysql-lib=/usr/local/opt/mysql-client/lib && + make all -s -j4 - run: >- sudo -s CPPUNIT_IGNORE="CppUnit::TestCaller.testTrySleep,CppUnit::TestCaller.testTimestamp,CppUnit::TestCaller.testExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.pireLRUCacheTestEE.testExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.testPollClosedServer" @@ -150,10 +158,10 @@ jobs: windows-2019-msvc-cmake: runs-on: windows-2019 env: - CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy + CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy,CppUnit::TestCaller.testPollClosedServer steps: - uses: actions/checkout@v3 - - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON -DCMAKE_CXX_FLAGS="/MP /EHsc" -DCMAKE_C_FLAGS=/MP + - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON - run: cmake --build cmake-build --config Release - run: >- cd cmake-build; @@ -191,20 +199,20 @@ jobs: # - uses: actions/checkout@v3 # - run: .\buildwin.ps1 -poco_base . -vs 170 -action build -linkmode all -config release -platform Win32 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" - windows-2022-msvc-cmake-2022: + windows-2022-msvc-cmake: runs-on: windows-2022 env: CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy steps: - uses: actions/checkout@v3 - - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON -DCMAKE_CXX_FLAGS="/MP /EHsc" -DCMAKE_C_FLAGS=/MP + - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON - run: cmake --build cmake-build --config Release - run: >- cd cmake-build; ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Release # missing asan dll path -# windows-2022-msvc-cmake-2022-asan: +# windows-2022-msvc-cmake-asan: # runs-on: windows-2022 # env: # CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy diff --git a/CMakeLists.txt b/CMakeLists.txt index 5536f1a12..3ed1c19e5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -282,9 +282,6 @@ endif() if(ENABLE_NETSSL_WIN) set(ENABLE_UTIL ON CACHE BOOL "Enable Util" FORCE) - if(ENABLE_TESTS) - set(ENABLE_CRYPTO ON CACHE BOOL "Enable Crypto" FORCE) - endif() endif() if(ENABLE_NETSSL) diff --git a/NetSSL_OpenSSL/testsuite/src/TCPServerTest.cpp b/NetSSL_OpenSSL/testsuite/src/TCPServerTest.cpp index 1f235405d..0d4059981 100644 --- a/NetSSL_OpenSSL/testsuite/src/TCPServerTest.cpp +++ b/NetSSL_OpenSSL/testsuite/src/TCPServerTest.cpp @@ -363,6 +363,11 @@ void TCPServerTest::testReuseSession() assertTrue (srv.totalConnections() == 1); Session::Ptr pSession = ss1.currentSession(); + if (!pSession || !pSession->isResumable()) + { + std::cerr << "WARNING: Server did not return a session or session is not resumable. Aborting test." << std::endl; + return; + } ss1.close(); Thread::sleep(300); From 4999c2258b436a1e8f8de6dbe456ca93a2d230f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Tue, 3 Oct 2023 21:33:21 +0200 Subject: [PATCH 097/395] merge more changes from 1.12.5 --- NetSSL_OpenSSL/src/Context.cpp | 1 - NetSSL_OpenSSL/src/SSLManager.cpp | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/NetSSL_OpenSSL/src/Context.cpp b/NetSSL_OpenSSL/src/Context.cpp index 5a004d8c4..0f692b259 100644 --- a/NetSSL_OpenSSL/src/Context.cpp +++ b/NetSSL_OpenSSL/src/Context.cpp @@ -33,7 +33,6 @@ #include #include #endif // OPENSSL_VERSION_NUMBER >= 0x30000000L -#include namespace Poco { diff --git a/NetSSL_OpenSSL/src/SSLManager.cpp b/NetSSL_OpenSSL/src/SSLManager.cpp index bdc42dc5a..14048fa59 100644 --- a/NetSSL_OpenSSL/src/SSLManager.cpp +++ b/NetSSL_OpenSSL/src/SSLManager.cpp @@ -77,7 +77,8 @@ const bool SSLManager::VAL_FIPS_MODE(false); SSLManager::SSLManager(): - _contextIndex(SSL_CTX_get_ex_new_index(0, NULL, NULL, NULL, NULL)) + _contextIndex(SSL_CTX_get_ex_new_index(0, NULL, NULL, NULL, NULL)), + _socketIndex(SSL_get_ex_new_index(0, NULL, NULL, NULL, NULL)) { } From 27da6a0a99442e74ccdb5beb0ba86fa51f8a3e53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Tue, 3 Oct 2023 22:33:41 +0200 Subject: [PATCH 098/395] fix test name --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a995d00eb..207e5a63d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -125,7 +125,7 @@ jobs: make all -s -j4 - run: >- sudo -s - CPPUNIT_IGNORE="CppUnit::TestCaller.testTrySleep,CppUnit::TestCaller.testTimestamp,CppUnit::TestCaller.testExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.pireLRUCacheTestEE.testExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.testPollClosedServer" + CPPUNIT_IGNORE="CppUnit::TestCaller.testTrySleep,CppUnit::TestCaller.testTimestamp,CppUnit::TestCaller.testExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.testPollClosedServer" EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" ./ci/runtests.sh @@ -138,7 +138,7 @@ jobs: - run: >- cd cmake-build && sudo -s - CPPUNIT_IGNORE="CppUnit::TestCaller.testTrySleep,CppUnit::TestCaller.testTimestamp,CppUnit::TestCaller.testExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.pireLRUCacheTestEE.testExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.testPollClosedServer" + CPPUNIT_IGNORE="CppUnit::TestCaller.testTrySleep,CppUnit::TestCaller.testTimestamp,CppUnit::TestCaller.testExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.testPollClosedServer" PWD=`pwd` ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" @@ -151,7 +151,7 @@ jobs: - run: >- cd cmake-build && sudo -s - CPPUNIT_IGNORE="CppUnit::TestCaller.testTrySleep,CppUnit::TestCaller.testTimestamp,CppUnit::TestCaller.testExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.pireLRUCacheTestEE.testExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.testPollClosedServer" + CPPUNIT_IGNORE="CppUnit::TestCaller.testTrySleep,CppUnit::TestCaller.testTimestamp,CppUnit::TestCaller.testExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.testPollClosedServer" PWD=`pwd` ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" From 64ccf120f821188980b62f6645c023c309be3e56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Wed, 4 Oct 2023 06:30:41 +0200 Subject: [PATCH 099/395] clean-up ci.yml --- .github/workflows/ci.yml | 82 +++++++++++++++++++++++++++++++++++----- 1 file changed, 73 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 207e5a63d..e635cdf0f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -125,7 +125,14 @@ jobs: make all -s -j4 - run: >- sudo -s - CPPUNIT_IGNORE="CppUnit::TestCaller.testTrySleep,CppUnit::TestCaller.testTimestamp,CppUnit::TestCaller.testExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.testPollClosedServer" + CPPUNIT_IGNORE=" + CppUnit::TestCaller.testTrySleep, + CppUnit::TestCaller.testTimestamp, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testPollClosedServer" EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" ./ci/runtests.sh @@ -138,7 +145,14 @@ jobs: - run: >- cd cmake-build && sudo -s - CPPUNIT_IGNORE="CppUnit::TestCaller.testTrySleep,CppUnit::TestCaller.testTimestamp,CppUnit::TestCaller.testExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.testPollClosedServer" + CPPUNIT_IGNORE=" + CppUnit::TestCaller.testTrySleep, + CppUnit::TestCaller.testTimestamp, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testPollClosedServer" PWD=`pwd` ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" @@ -151,14 +165,29 @@ jobs: - run: >- cd cmake-build && sudo -s - CPPUNIT_IGNORE="CppUnit::TestCaller.testTrySleep,CppUnit::TestCaller.testTimestamp,CppUnit::TestCaller.testExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.testAccessExpireN,CppUnit::TestCaller.testPollClosedServer" + CPPUNIT_IGNORE=" + CppUnit::TestCaller.testTrySleep, + CppUnit::TestCaller.testTimestamp, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testPollClosedServer" PWD=`pwd` ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" windows-2019-msvc-cmake: runs-on: windows-2019 env: - CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy,CppUnit::TestCaller.testPollClosedServer + CPPUNIT_IGNORE: >- + class CppUnit::TestCaller.testFind, + class CppUnit::TestCaller.testSendToReceiveFrom, + class CppUnit::TestCaller.testPing, + class CppUnit::TestCaller.testBigPing, + class CppUnit::TestCaller.testMTU, + class CppUnit::TestCaller.testProxy, + class CppUnit::TestCaller.testProxy, + class CppUnit::TestCaller.testPollClosedServer steps: - uses: actions/checkout@v3 - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON @@ -170,7 +199,14 @@ jobs: windows-2019-msvc-buildwin-x64: runs-on: windows-2019 env: - CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy + CPPUNIT_IGNORE: >- + class CppUnit::TestCaller.testFind, + class CppUnit::TestCaller.testSendToReceiveFrom, + class CppUnit::TestCaller.testPing, + class CppUnit::TestCaller.testBigPing, + class CppUnit::TestCaller.testMTU, + class CppUnit::TestCaller.testProxy, + class CppUnit::TestCaller.testProxy steps: - uses: actions/checkout@v3 - run: .\buildwin.ps1 -poco_base . -vs 160 -action build -linkmode all -config release -platform x64 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" @@ -186,7 +222,14 @@ jobs: windows-2022-msvc-buildwin-x64: runs-on: windows-2022 env: - CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy + CPPUNIT_IGNORE: >- + class CppUnit::TestCaller.testFind, + class CppUnit::TestCaller.testSendToReceiveFrom, + class CppUnit::TestCaller.testPing, + class CppUnit::TestCaller.testBigPing, + class CppUnit::TestCaller.testMTU, + class CppUnit::TestCaller.testProxy, + class CppUnit::TestCaller.testProxy steps: - uses: actions/checkout@v3 - run: .\buildwin.ps1 -poco_base . -vs 170 -action build -linkmode all -config release -platform x64 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" @@ -194,7 +237,14 @@ jobs: # windows-2022-msvc-buildwin-win32: # runs-on: windows-2022 # env: -# CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy +# CPPUNIT_IGNORE: >- +# class CppUnit::TestCaller.testFind, +# class CppUnit::TestCaller.testSendToReceiveFrom, +# class CppUnit::TestCaller.testPing, +# class CppUnit::TestCaller.testBigPing, +# class CppUnit::TestCaller.testMTU, +# class CppUnit::TestCaller.testProxy, +# class CppUnit::TestCaller.testProxy # steps: # - uses: actions/checkout@v3 # - run: .\buildwin.ps1 -poco_base . -vs 170 -action build -linkmode all -config release -platform Win32 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" @@ -202,7 +252,14 @@ jobs: windows-2022-msvc-cmake: runs-on: windows-2022 env: - CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy + CPPUNIT_IGNORE: >- + class CppUnit::TestCaller.testFind, + class CppUnit::TestCaller.testSendToReceiveFrom, + class CppUnit::TestCaller.testPing, + class CppUnit::TestCaller.testBigPing, + class CppUnit::TestCaller.testMTU, + class CppUnit::TestCaller.testProxy, + class CppUnit::TestCaller.testProxy steps: - uses: actions/checkout@v3 - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON @@ -215,7 +272,14 @@ jobs: # windows-2022-msvc-cmake-asan: # runs-on: windows-2022 # env: -# CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy +# CPPUNIT_IGNORE: >- +# class CppUnit::TestCaller.testFind, +# class CppUnit::TestCaller.testSendToReceiveFrom, +# class CppUnit::TestCaller.testPing, +# class CppUnit::TestCaller.testBigPing, +# class CppUnit::TestCaller.testMTU, +# class CppUnit::TestCaller.testProxy, +# class CppUnit::TestCaller.testProxy # steps: # - uses: actions/checkout@v3 # - run: cmake -S. -Bcmake-build -DPOCO_SANITIZE_ASAN=ON -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON From 1a4c6e10a6d378a2590a5d4349241d471ea62522 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Wed, 4 Oct 2023 06:30:58 +0200 Subject: [PATCH 100/395] fix MySQL.make --- Data/MySQL/MySQL.make | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Data/MySQL/MySQL.make b/Data/MySQL/MySQL.make index 878c1fbd7..232f15184 100644 --- a/Data/MySQL/MySQL.make +++ b/Data/MySQL/MySQL.make @@ -22,16 +22,16 @@ ifneq (, $(POCO_MYSQL_CONFIG)) else ifndef POCO_MYSQL_INCLUDE ifeq (0, $(shell test -d /usr/local/include/mysql; echo $$?)) - POCO_MYSQL_INCLUDE = -I/usr/local/include + POCO_MYSQL_INCLUDE = /usr/local/include else ifeq (0, $(shell test -d /usr/local/opt/mysql-client/include/mysql; echo $$?)) - POCO_MYSQL_INCLUDE = -I/usr/local/opt/mysql-client/include/mysql + POCO_MYSQL_INCLUDE = /usr/local/opt/mysql-client/include/mysql else ifeq (0, $(shell test -d /usr/local/opt/mysql-client/include; echo $$?)) - POCO_MYSQL_INCLUDE = -I/usr/local/opt/mysql-client/include + POCO_MYSQL_INCLUDE = /usr/local/opt/mysql-client/include else ifeq (0, $(shell test -d /opt/homebrew/opt/mysql-client/include; echo $$?)) - POCO_MYSQL_INCLUDE = -I/opt/homebrew/opt/mysql-client/include + POCO_MYSQL_INCLUDE = /opt/homebrew/opt/mysql-client/include endif endif endif @@ -40,13 +40,13 @@ else ifndef POCO_MYSQL_LIB ifeq (0, $(shell test -d /usr/local/include/mysql; echo $$?)) - POCO_MYSQL_LIB = -L/usr/local/lib + POCO_MYSQL_LIB = /usr/local/lib else ifeq (0, $(shell test -d /usr/local/opt/mysql-client/lib; echo $$?)) - POCO_MYSQL_LIB = -L/usr/local/opt/mysql-client/lib + POCO_MYSQL_LIB = /usr/local/opt/mysql-client/lib else ifeq (0, $(shell test -d /opt/homebrew/opt/mysql-client/lib; echo $$?)) - POCO_MYSQL_LIB = -L/opt/homebrew/opt/mysql-client/lib + POCO_MYSQL_LIB = /opt/homebrew/opt/mysql-client/lib endif endif endif @@ -54,8 +54,8 @@ else endif ifdef POCO_MYSQL_INCLUDE - INCLUDE += $(POCO_MYSQL_INCLUDE) + INCLUDE += -I$(POCO_MYSQL_INCLUDE) endif ifdef POCO_MYSQL_LIB - SYSLIBS += $(POCO_MYSQL_LIB) + SYSLIBS += -L$(POCO_MYSQL_LIB) endif From 24e48e001ef9d21f92ad0630d71536ae652ec05b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Wed, 4 Oct 2023 08:42:11 +0200 Subject: [PATCH 101/395] merge Data/MySQL changes from 1.12.5 --- Data/MySQL/include/Poco/Data/MySQL/Binder.h | 2 +- Data/MySQL/include/Poco/Data/MySQL/MySQL.h | 2 +- Data/MySQL/include/Poco/Data/MySQL/MySQLException.h | 2 +- Data/MySQL/include/Poco/Data/MySQL/ResultMetadata.h | 2 +- Data/MySQL/include/Poco/Data/MySQL/SessionHandle.h | 2 +- Data/MySQL/include/Poco/Data/MySQL/StatementExecutor.h | 2 +- Data/MySQL/include/Poco/Data/MySQL/Utility.h | 2 +- Data/MySQL/src/Connector.cpp | 2 +- Data/MySQL/src/StatementExecutor.cpp | 2 +- Data/MySQL/src/Utility.cpp | 2 +- Data/MySQL/testsuite/src/SQLExecutor.cpp | 1 + 11 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Data/MySQL/include/Poco/Data/MySQL/Binder.h b/Data/MySQL/include/Poco/Data/MySQL/Binder.h index dd7bf60a0..82fa617ab 100644 --- a/Data/MySQL/include/Poco/Data/MySQL/Binder.h +++ b/Data/MySQL/include/Poco/Data/MySQL/Binder.h @@ -22,7 +22,7 @@ #include "Poco/Data/AbstractBinder.h" #include "Poco/Data/LOB.h" #include "Poco/Data/MySQL/MySQLException.h" -#include +#include namespace Poco { diff --git a/Data/MySQL/include/Poco/Data/MySQL/MySQL.h b/Data/MySQL/include/Poco/Data/MySQL/MySQL.h index ba0fa3f76..238659094 100644 --- a/Data/MySQL/include/Poco/Data/MySQL/MySQL.h +++ b/Data/MySQL/include/Poco/Data/MySQL/MySQL.h @@ -19,7 +19,7 @@ #include "Poco/Foundation.h" -#include +#include // diff --git a/Data/MySQL/include/Poco/Data/MySQL/MySQLException.h b/Data/MySQL/include/Poco/Data/MySQL/MySQLException.h index 2d28da383..67692df3a 100644 --- a/Data/MySQL/include/Poco/Data/MySQL/MySQLException.h +++ b/Data/MySQL/include/Poco/Data/MySQL/MySQLException.h @@ -20,7 +20,7 @@ #include "Poco/Data/MySQL/MySQL.h" #include "Poco/Data/DataException.h" -#include +#include #include #include diff --git a/Data/MySQL/include/Poco/Data/MySQL/ResultMetadata.h b/Data/MySQL/include/Poco/Data/MySQL/ResultMetadata.h index caee85426..8b45e2a3b 100644 --- a/Data/MySQL/include/Poco/Data/MySQL/ResultMetadata.h +++ b/Data/MySQL/include/Poco/Data/MySQL/ResultMetadata.h @@ -19,7 +19,7 @@ #include "Poco/Data/MetaColumn.h" -#include +#include #include diff --git a/Data/MySQL/include/Poco/Data/MySQL/SessionHandle.h b/Data/MySQL/include/Poco/Data/MySQL/SessionHandle.h index f9df7ad36..4f65ae5c0 100644 --- a/Data/MySQL/include/Poco/Data/MySQL/SessionHandle.h +++ b/Data/MySQL/include/Poco/Data/MySQL/SessionHandle.h @@ -19,7 +19,7 @@ #include "Poco/Data/MySQL/MySQLException.h" -#include +#include namespace Poco { diff --git a/Data/MySQL/include/Poco/Data/MySQL/StatementExecutor.h b/Data/MySQL/include/Poco/Data/MySQL/StatementExecutor.h index 55f0991a1..6767b68bd 100644 --- a/Data/MySQL/include/Poco/Data/MySQL/StatementExecutor.h +++ b/Data/MySQL/include/Poco/Data/MySQL/StatementExecutor.h @@ -19,7 +19,7 @@ #include "Poco/Data/MySQL/MySQLException.h" -#include +#include namespace Poco { diff --git a/Data/MySQL/include/Poco/Data/MySQL/Utility.h b/Data/MySQL/include/Poco/Data/MySQL/Utility.h index 1e46074f9..d6d9b4075 100644 --- a/Data/MySQL/include/Poco/Data/MySQL/Utility.h +++ b/Data/MySQL/include/Poco/Data/MySQL/Utility.h @@ -20,7 +20,7 @@ #include "Poco/Data/MySQL/MySQL.h" #include "Poco/Data/Session.h" -#include +#include namespace Poco { diff --git a/Data/MySQL/src/Connector.cpp b/Data/MySQL/src/Connector.cpp index 43e2432ff..b90abab09 100644 --- a/Data/MySQL/src/Connector.cpp +++ b/Data/MySQL/src/Connector.cpp @@ -16,7 +16,7 @@ #include "Poco/Data/MySQL/SessionImpl.h" #include "Poco/Data/SessionFactory.h" #include "Poco/Exception.h" -#include +#include namespace Poco { diff --git a/Data/MySQL/src/StatementExecutor.cpp b/Data/MySQL/src/StatementExecutor.cpp index d1b512d9a..b7e8dbcd8 100644 --- a/Data/MySQL/src/StatementExecutor.cpp +++ b/Data/MySQL/src/StatementExecutor.cpp @@ -14,7 +14,7 @@ #include "Poco/Data/MySQL/StatementExecutor.h" #include "Poco/Format.h" -#include +#include namespace Poco { diff --git a/Data/MySQL/src/Utility.cpp b/Data/MySQL/src/Utility.cpp index b711901ce..84e5cfca7 100644 --- a/Data/MySQL/src/Utility.cpp +++ b/Data/MySQL/src/Utility.cpp @@ -15,7 +15,7 @@ #include "Poco/Data/MySQL/Utility.h" -#include +#include namespace Poco { diff --git a/Data/MySQL/testsuite/src/SQLExecutor.cpp b/Data/MySQL/testsuite/src/SQLExecutor.cpp index 7939564bb..10594be45 100644 --- a/Data/MySQL/testsuite/src/SQLExecutor.cpp +++ b/Data/MySQL/testsuite/src/SQLExecutor.cpp @@ -30,6 +30,7 @@ #endif +#include #include #include From d79c8e4a2fa4143530910dcafdd08d011a7e0b90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Wed, 4 Oct 2023 10:09:55 +0200 Subject: [PATCH 102/395] fix FindMySQL.cmake --- cmake/FindMySQL.cmake | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake index 860dca90b..614c66778 100644 --- a/cmake/FindMySQL.cmake +++ b/cmake/FindMySQL.cmake @@ -26,7 +26,7 @@ pkg_check_modules(PC_MARIADB QUIET mariadb) SET(BINDIR32_ENV_NAME "ProgramFiles(x86)") SET(BINDIR32 $ENV{${BINDIR32_ENV_NAME}}) -find_path(MYSQL_INCLUDE_DIR mysql.h +find_path(MYSQL_INCLUDE_DIR mysql/mysql.h HINTS ${MYSQL_ROOT_DIR}/include ${MYSQL_ROOT_INCLUDE_DIRS} @@ -35,11 +35,8 @@ find_path(MYSQL_INCLUDE_DIR mysql.h ${PC_MARIADB_INCLUDE_DIRS} /usr/include /usr/local/include - /usr/mysql/include - /usr/local/mysql/include - /usr/local/opt/mysql-client/include - /opt/local/include - /opt/mysql/include + /opt/mysql/mysql/include + /usr/local/mysql/include $ENV{MYSQL_INCLUDE_DIR} $ENV{MYSQL_DIR}/include $ENV{ProgramFiles}/MySQL/*/include @@ -71,13 +68,6 @@ if (MSVC) PATHS ${PC_MYSQL_LIBRARY_DIRS} ${PC_MARIADB_LIBRARY_DIRS} - /usr/local/lib - /usr/local/lib$(LIB64SUFFIX)/mysql - /usr/lib$(LIB64SUFFIX)/mysql - /usr/mysql/lib$(LIB64SUFFIX) - /usr/mysql/lib$(LIB64SUFFIX)/mysql - /usr/local/mysql/lib$(LIB64SUFFIX) - /usr/local/opt/mysql-client/lib $ENV{MYSQL_DIR}/lib $ENV{MYSQL_DIR}/libmysql $ENV{MYSQL_DIR}/client From cb58e09304b233c185632278868b6b921618ed9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sat, 7 Oct 2023 09:21:58 +0200 Subject: [PATCH 103/395] #4177: Upgrade bundled pcre2 to 10.42 --- Foundation/src/pcre2.h | 68 +++++------ Foundation/src/pcre2_compile.c | 12 +- Foundation/src/pcre2_config.h | 12 +- Foundation/src/pcre2_context.c | 12 +- Foundation/src/pcre2_convert.c | 5 +- Foundation/src/pcre2_dfa_match.c | 12 +- Foundation/src/pcre2_internal.h | 17 ++- Foundation/src/pcre2_intmodedep.h | 34 +++--- Foundation/src/pcre2_jit_compile.c | 156 +++++++++++++------------ Foundation/src/pcre2_jit_misc.c | 4 +- Foundation/src/pcre2_match.c | 176 +++++++++++++++-------------- Foundation/src/pcre2_match_data.c | 11 +- Foundation/src/pcre2_substitute.c | 9 +- 13 files changed, 285 insertions(+), 243 deletions(-) diff --git a/Foundation/src/pcre2.h b/Foundation/src/pcre2.h index 1cb463378..7e43d43fb 100644 --- a/Foundation/src/pcre2.h +++ b/Foundation/src/pcre2.h @@ -42,9 +42,9 @@ POSSIBILITY OF SUCH DAMAGE. /* The current PCRE version information. */ #define PCRE2_MAJOR 10 -#define PCRE2_MINOR 40 +#define PCRE2_MINOR 42 #define PCRE2_PRERELEASE -#define PCRE2_DATE 2022-04-14 +#define PCRE2_DATE 2022-12-11 /* When an application links to a PCRE DLL in Windows, the symbols that are imported have to be identified as such. When building PCRE2, the appropriate @@ -572,19 +572,19 @@ PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION pcre2_config(uint32_t, void *); /* Functions for manipulating contexts. */ #define PCRE2_GENERAL_CONTEXT_FUNCTIONS \ -PCRE2_EXP_DECL pcre2_general_context PCRE2_CALL_CONVENTION \ - *pcre2_general_context_copy(pcre2_general_context *); \ -PCRE2_EXP_DECL pcre2_general_context PCRE2_CALL_CONVENTION \ - *pcre2_general_context_create(void *(*)(PCRE2_SIZE, void *), \ +PCRE2_EXP_DECL pcre2_general_context *PCRE2_CALL_CONVENTION \ + pcre2_general_context_copy(pcre2_general_context *); \ +PCRE2_EXP_DECL pcre2_general_context *PCRE2_CALL_CONVENTION \ + pcre2_general_context_create(void *(*)(PCRE2_SIZE, void *), \ void (*)(void *, void *), void *); \ PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ pcre2_general_context_free(pcre2_general_context *); #define PCRE2_COMPILE_CONTEXT_FUNCTIONS \ -PCRE2_EXP_DECL pcre2_compile_context PCRE2_CALL_CONVENTION \ - *pcre2_compile_context_copy(pcre2_compile_context *); \ -PCRE2_EXP_DECL pcre2_compile_context PCRE2_CALL_CONVENTION \ - *pcre2_compile_context_create(pcre2_general_context *);\ +PCRE2_EXP_DECL pcre2_compile_context *PCRE2_CALL_CONVENTION \ + pcre2_compile_context_copy(pcre2_compile_context *); \ +PCRE2_EXP_DECL pcre2_compile_context *PCRE2_CALL_CONVENTION \ + pcre2_compile_context_create(pcre2_general_context *);\ PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ pcre2_compile_context_free(pcre2_compile_context *); \ PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ @@ -604,10 +604,10 @@ PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ int (*)(uint32_t, void *), void *); #define PCRE2_MATCH_CONTEXT_FUNCTIONS \ -PCRE2_EXP_DECL pcre2_match_context PCRE2_CALL_CONVENTION \ - *pcre2_match_context_copy(pcre2_match_context *); \ -PCRE2_EXP_DECL pcre2_match_context PCRE2_CALL_CONVENTION \ - *pcre2_match_context_create(pcre2_general_context *); \ +PCRE2_EXP_DECL pcre2_match_context *PCRE2_CALL_CONVENTION \ + pcre2_match_context_copy(pcre2_match_context *); \ +PCRE2_EXP_DECL pcre2_match_context *PCRE2_CALL_CONVENTION \ + pcre2_match_context_create(pcre2_general_context *); \ PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ pcre2_match_context_free(pcre2_match_context *); \ PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ @@ -631,10 +631,10 @@ PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ void *(*)(PCRE2_SIZE, void *), void (*)(void *, void *), void *); #define PCRE2_CONVERT_CONTEXT_FUNCTIONS \ -PCRE2_EXP_DECL pcre2_convert_context PCRE2_CALL_CONVENTION \ - *pcre2_convert_context_copy(pcre2_convert_context *); \ -PCRE2_EXP_DECL pcre2_convert_context PCRE2_CALL_CONVENTION \ - *pcre2_convert_context_create(pcre2_general_context *); \ +PCRE2_EXP_DECL pcre2_convert_context *PCRE2_CALL_CONVENTION \ + pcre2_convert_context_copy(pcre2_convert_context *); \ +PCRE2_EXP_DECL pcre2_convert_context *PCRE2_CALL_CONVENTION \ + pcre2_convert_context_create(pcre2_general_context *); \ PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ pcre2_convert_context_free(pcre2_convert_context *); \ PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ @@ -646,15 +646,15 @@ PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ /* Functions concerned with compiling a pattern to PCRE internal code. */ #define PCRE2_COMPILE_FUNCTIONS \ -PCRE2_EXP_DECL pcre2_code PCRE2_CALL_CONVENTION \ - *pcre2_compile(PCRE2_SPTR, PCRE2_SIZE, uint32_t, int *, PCRE2_SIZE *, \ +PCRE2_EXP_DECL pcre2_code *PCRE2_CALL_CONVENTION \ + pcre2_compile(PCRE2_SPTR, PCRE2_SIZE, uint32_t, int *, PCRE2_SIZE *, \ pcre2_compile_context *); \ PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ pcre2_code_free(pcre2_code *); \ -PCRE2_EXP_DECL pcre2_code PCRE2_CALL_CONVENTION \ - *pcre2_code_copy(const pcre2_code *); \ -PCRE2_EXP_DECL pcre2_code PCRE2_CALL_CONVENTION \ - *pcre2_code_copy_with_tables(const pcre2_code *); +PCRE2_EXP_DECL pcre2_code *PCRE2_CALL_CONVENTION \ + pcre2_code_copy(const pcre2_code *); \ +PCRE2_EXP_DECL pcre2_code *PCRE2_CALL_CONVENTION \ + pcre2_code_copy_with_tables(const pcre2_code *); /* Functions that give information about a compiled pattern. */ @@ -670,10 +670,10 @@ PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ /* Functions for running a match and inspecting the result. */ #define PCRE2_MATCH_FUNCTIONS \ -PCRE2_EXP_DECL pcre2_match_data PCRE2_CALL_CONVENTION \ - *pcre2_match_data_create(uint32_t, pcre2_general_context *); \ -PCRE2_EXP_DECL pcre2_match_data PCRE2_CALL_CONVENTION \ - *pcre2_match_data_create_from_pattern(const pcre2_code *, \ +PCRE2_EXP_DECL pcre2_match_data *PCRE2_CALL_CONVENTION \ + pcre2_match_data_create(uint32_t, pcre2_general_context *); \ +PCRE2_EXP_DECL pcre2_match_data *PCRE2_CALL_CONVENTION \ + pcre2_match_data_create_from_pattern(const pcre2_code *, \ pcre2_general_context *); \ PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ pcre2_dfa_match(const pcre2_code *, PCRE2_SPTR, PCRE2_SIZE, PCRE2_SIZE, \ @@ -689,8 +689,8 @@ PCRE2_EXP_DECL PCRE2_SIZE PCRE2_CALL_CONVENTION \ pcre2_get_match_data_size(pcre2_match_data *); \ PCRE2_EXP_DECL uint32_t PCRE2_CALL_CONVENTION \ pcre2_get_ovector_count(pcre2_match_data *); \ -PCRE2_EXP_DECL PCRE2_SIZE PCRE2_CALL_CONVENTION \ - *pcre2_get_ovector_pointer(pcre2_match_data *); \ +PCRE2_EXP_DECL PCRE2_SIZE *PCRE2_CALL_CONVENTION \ + pcre2_get_ovector_pointer(pcre2_match_data *); \ PCRE2_EXP_DECL PCRE2_SIZE PCRE2_CALL_CONVENTION \ pcre2_get_startchar(pcre2_match_data *); @@ -770,8 +770,8 @@ PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ uint32_t, pcre2_match_data *, pcre2_match_context *); \ PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ pcre2_jit_free_unused_memory(pcre2_general_context *); \ -PCRE2_EXP_DECL pcre2_jit_stack PCRE2_CALL_CONVENTION \ - *pcre2_jit_stack_create(PCRE2_SIZE, PCRE2_SIZE, pcre2_general_context *); \ +PCRE2_EXP_DECL pcre2_jit_stack *PCRE2_CALL_CONVENTION \ + pcre2_jit_stack_create(PCRE2_SIZE, PCRE2_SIZE, pcre2_general_context *); \ PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ pcre2_jit_stack_assign(pcre2_match_context *, pcre2_jit_callback, void *); \ PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ @@ -783,8 +783,8 @@ PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ #define PCRE2_OTHER_FUNCTIONS \ PCRE2_EXP_DECL int PCRE2_CALL_CONVENTION \ pcre2_get_error_message(int, PCRE2_UCHAR *, PCRE2_SIZE); \ -PCRE2_EXP_DECL const uint8_t PCRE2_CALL_CONVENTION \ - *pcre2_maketables(pcre2_general_context *); \ +PCRE2_EXP_DECL const uint8_t *PCRE2_CALL_CONVENTION \ + pcre2_maketables(pcre2_general_context *); \ PCRE2_EXP_DECL void PCRE2_CALL_CONVENTION \ pcre2_maketables_free(pcre2_general_context *, const uint8_t *); diff --git a/Foundation/src/pcre2_compile.c b/Foundation/src/pcre2_compile.c index 9a65b2f6e..f31144bd6 100644 --- a/Foundation/src/pcre2_compile.c +++ b/Foundation/src/pcre2_compile.c @@ -1264,8 +1264,10 @@ PCRE2_SIZE* ref_count; if (code != NULL) { +#ifdef SUPPORT_JIT if (code->executable_jit != NULL) PRIV(jit_free)(code->executable_jit, &code->memctl); +#endif if ((code->flags & PCRE2_DEREF_TABLES) != 0) { @@ -2685,7 +2687,7 @@ if ((options & PCRE2_EXTENDED_MORE) != 0) options |= PCRE2_EXTENDED; while (ptr < ptrend) { int prev_expect_cond_assert; - uint32_t min_repeat, max_repeat; + uint32_t min_repeat = 0, max_repeat = 0; uint32_t set, unset, *optset; uint32_t terminator; uint32_t prev_meta_quantifier; @@ -8550,7 +8552,7 @@ do { op == OP_SCBRA || op == OP_SCBRAPOS) { int n = GET2(scode, 1+LINK_SIZE); - int new_map = bracket_map | ((n < 32)? (1u << n) : 1); + unsigned int new_map = bracket_map | ((n < 32)? (1u << n) : 1); if (!is_startline(scode, new_map, cb, atomcount, inassert)) return FALSE; } @@ -10618,4 +10620,10 @@ re = NULL; goto EXIT; } +/* These #undefs are here to enable unity builds with CMake. */ + +#undef NLBLOCK /* Block containing newline information */ +#undef PSSTART /* Field containing processed string start */ +#undef PSEND /* Field containing processed string end */ + /* End of pcre2_compile.c */ diff --git a/Foundation/src/pcre2_config.h b/Foundation/src/pcre2_config.h index 3087804b3..70a1c4e6e 100644 --- a/Foundation/src/pcre2_config.h +++ b/Foundation/src/pcre2_config.h @@ -239,7 +239,7 @@ sure both macros are undefined; an emulation function will then be used. */ #define PACKAGE_NAME "PCRE2" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "PCRE2 10.40" +#define PACKAGE_STRING "PCRE2 10.42" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "pcre2" @@ -248,7 +248,7 @@ sure both macros are undefined; an emulation function will then be used. */ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "10.40" +#define PACKAGE_VERSION "10.42" /* The value of PARENS_NEST_LIMIT specifies the maximum depth of nested parentheses (of any kind) in a pattern. This limits the amount of system @@ -445,7 +445,13 @@ sure both macros are undefined; an emulation function will then be used. */ #endif /* Version number of package */ -#define VERSION "10.40" +#define VERSION "10.42" + +/* Number of bits in a file offset, on hosts where this is settable. */ +/* #undef _FILE_OFFSET_BITS */ + +/* Define for large files, on AIX-style hosts. */ +/* #undef _LARGE_FILES */ /* Define to empty if `const' does not conform to ANSI C. */ /* #undef const */ diff --git a/Foundation/src/pcre2_context.c b/Foundation/src/pcre2_context.c index 9a83ec31c..415c4f4ab 100644 --- a/Foundation/src/pcre2_context.c +++ b/Foundation/src/pcre2_context.c @@ -7,7 +7,7 @@ and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Original API code Copyright (c) 1997-2012 University of Cambridge - New API code Copyright (c) 2016-2018 University of Cambridge + New API code Copyright (c) 2016-2022 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without @@ -440,8 +440,11 @@ mcontext->offset_limit = limit; return 0; } -/* This function became obsolete at release 10.30. It is kept as a synonym for -backwards compatibility. */ +/* These functions became obsolete at release 10.30. The first is kept as a +synonym for backwards compatibility. The second now does nothing. Exclude both +from coverage reports. */ + +/* LCOV_EXCL_START */ PCRE2_EXP_DEFN int PCRE2_CALL_CONVENTION pcre2_set_recursion_limit(pcre2_match_context *mcontext, uint32_t limit) @@ -461,6 +464,9 @@ pcre2_set_recursion_memory_management(pcre2_match_context *mcontext, return 0; } +/* LCOV_EXCL_STOP */ + + /* ------------ Convert context ------------ */ PCRE2_EXP_DEFN int PCRE2_CALL_CONVENTION diff --git a/Foundation/src/pcre2_convert.c b/Foundation/src/pcre2_convert.c index 81d6968d7..98421f3a4 100644 --- a/Foundation/src/pcre2_convert.c +++ b/Foundation/src/pcre2_convert.c @@ -7,7 +7,7 @@ and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Original API code Copyright (c) 1997-2012 University of Cambridge - New API code Copyright (c) 2016-2018 University of Cambridge + New API code Copyright (c) 2016-2022 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without @@ -62,9 +62,8 @@ POSSIBILITY OF SUCH DAMAGE. #define STR_QUERY_s STR_LEFT_PARENTHESIS STR_QUESTION_MARK STR_s STR_RIGHT_PARENTHESIS #define STR_STAR_NUL STR_LEFT_PARENTHESIS STR_ASTERISK STR_N STR_U STR_L STR_RIGHT_PARENTHESIS -/* States for range and POSIX processing */ +/* States for POSIX processing */ -enum { RANGE_NOT_STARTED, RANGE_STARTING, RANGE_STARTED }; enum { POSIX_START_REGEX, POSIX_ANCHORED, POSIX_NOT_BRACKET, POSIX_CLASS_NOT_STARTED, POSIX_CLASS_STARTING, POSIX_CLASS_STARTED }; diff --git a/Foundation/src/pcre2_dfa_match.c b/Foundation/src/pcre2_dfa_match.c index 3f5946552..b564d4e90 100644 --- a/Foundation/src/pcre2_dfa_match.c +++ b/Foundation/src/pcre2_dfa_match.c @@ -348,7 +348,7 @@ Returns: the return from the callout */ static int -do_callout(PCRE2_SPTR code, PCRE2_SIZE *offsets, PCRE2_SPTR current_subject, +do_callout_dfa(PCRE2_SPTR code, PCRE2_SIZE *offsets, PCRE2_SPTR current_subject, PCRE2_SPTR ptr, dfa_match_block *mb, PCRE2_SIZE extracode, PCRE2_SIZE *lengthptr) { @@ -2797,7 +2797,7 @@ for (;;) || code[LINK_SIZE + 1] == OP_CALLOUT_STR) { PCRE2_SIZE callout_length; - rrc = do_callout(code, offsets, current_subject, ptr, mb, + rrc = do_callout_dfa(code, offsets, current_subject, ptr, mb, 1 + LINK_SIZE, &callout_length); if (rrc < 0) return rrc; /* Abandon */ if (rrc > 0) break; /* Fail this thread */ @@ -3194,7 +3194,7 @@ for (;;) case OP_CALLOUT_STR: { PCRE2_SIZE callout_length; - rrc = do_callout(code, offsets, current_subject, ptr, mb, 0, + rrc = do_callout_dfa(code, offsets, current_subject, ptr, mb, 0, &callout_length); if (rrc < 0) return rrc; /* Abandon */ if (rrc == 0) @@ -4055,4 +4055,10 @@ while (rws->next != NULL) return rc; } +/* These #undefs are here to enable unity builds with CMake. */ + +#undef NLBLOCK /* Block containing newline information */ +#undef PSSTART /* Field containing processed string start */ +#undef PSEND /* Field containing processed string end */ + /* End of pcre2_dfa_match.c */ diff --git a/Foundation/src/pcre2_internal.h b/Foundation/src/pcre2_internal.h index fe7a0e005..92dd3138d 100644 --- a/Foundation/src/pcre2_internal.h +++ b/Foundation/src/pcre2_internal.h @@ -220,18 +220,17 @@ not rely on this. */ #define COMPILE_ERROR_BASE 100 -/* The initial frames vector for remembering backtracking points in -pcre2_match() is allocated on the system stack, of this size (bytes). The size -must be a multiple of sizeof(PCRE2_SPTR) in all environments, so making it a -multiple of 8 is best. Typical frame sizes are a few hundred bytes (it depends -on the number of capturing parentheses) so 20KiB handles quite a few frames. A -larger vector on the heap is obtained for patterns that need more frames. The -maximum size of this can be limited. */ +/* The initial frames vector for remembering pcre2_match() backtracking points +is allocated on the heap, of this size (bytes) or ten times the frame size if +larger, unless the heap limit is smaller. Typical frame sizes are a few hundred +bytes (it depends on the number of capturing parentheses) so 20KiB handles +quite a few frames. A larger vector on the heap is obtained for matches that +need more frames, subject to the heap limit. */ #define START_FRAMES_SIZE 20480 -/* Similarly, for DFA matching, an initial internal workspace vector is -allocated on the stack. */ +/* For DFA matching, an initial internal workspace vector is allocated on the +stack. The heap is used only if this turns out to be too small. */ #define DFA_START_RWS_SIZE 30720 diff --git a/Foundation/src/pcre2_intmodedep.h b/Foundation/src/pcre2_intmodedep.h index f8a3d25de..390e737a6 100644 --- a/Foundation/src/pcre2_intmodedep.h +++ b/Foundation/src/pcre2_intmodedep.h @@ -7,7 +7,7 @@ and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Original API code Copyright (c) 1997-2012 University of Cambridge - New API code Copyright (c) 2016-2018 University of Cambridge + New API code Copyright (c) 2016-2022 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without @@ -649,19 +649,23 @@ the size varies from call to call. As the maximum number of capturing subpatterns is 65535 we must allow for 65536 strings to include the overall match. (See also the heapframe structure below.) */ +struct heapframe; /* Forward reference */ + typedef struct pcre2_real_match_data { - pcre2_memctl memctl; - const pcre2_real_code *code; /* The pattern used for the match */ - PCRE2_SPTR subject; /* The subject that was matched */ - PCRE2_SPTR mark; /* Pointer to last mark */ - PCRE2_SIZE leftchar; /* Offset to leftmost code unit */ - PCRE2_SIZE rightchar; /* Offset to rightmost code unit */ - PCRE2_SIZE startchar; /* Offset to starting code unit */ - uint8_t matchedby; /* Type of match (normal, JIT, DFA) */ - uint8_t flags; /* Various flags */ - uint16_t oveccount; /* Number of pairs */ - int rc; /* The return code from the match */ - PCRE2_SIZE ovector[131072]; /* Must be last in the structure */ + pcre2_memctl memctl; /* Memory control fields */ + const pcre2_real_code *code; /* The pattern used for the match */ + PCRE2_SPTR subject; /* The subject that was matched */ + PCRE2_SPTR mark; /* Pointer to last mark */ + struct heapframe *heapframes; /* Backtracking frames heap memory */ + PCRE2_SIZE heapframes_size; /* Malloc-ed size */ + PCRE2_SIZE leftchar; /* Offset to leftmost code unit */ + PCRE2_SIZE rightchar; /* Offset to rightmost code unit */ + PCRE2_SIZE startchar; /* Offset to starting code unit */ + uint8_t matchedby; /* Type of match (normal, JIT, DFA) */ + uint8_t flags; /* Various flags */ + uint16_t oveccount; /* Number of pairs */ + int rc; /* The return code from the match */ + PCRE2_SIZE ovector[131072]; /* Must be last in the structure */ } pcre2_real_match_data; @@ -854,10 +858,6 @@ doing traditional NFA matching (pcre2_match() and friends). */ typedef struct match_block { pcre2_memctl memctl; /* For general use */ - PCRE2_SIZE frame_vector_size; /* Size of a backtracking frame */ - heapframe *match_frames; /* Points to vector of frames */ - heapframe *match_frames_top; /* Points after the end of the vector */ - heapframe *stack_frames; /* The original vector on the stack */ PCRE2_SIZE heap_limit; /* As it says */ uint32_t match_limit; /* As it says */ uint32_t match_limit_depth; /* As it says */ diff --git a/Foundation/src/pcre2_jit_compile.c b/Foundation/src/pcre2_jit_compile.c index 1b7c04dc0..2095ed10f 100644 --- a/Foundation/src/pcre2_jit_compile.c +++ b/Foundation/src/pcre2_jit_compile.c @@ -539,7 +539,7 @@ typedef struct compare_context { #undef CMP /* Used for accessing the elements of the stack. */ -#define STACK(i) ((i) * (int)sizeof(sljit_sw)) +#define STACK(i) ((i) * SSIZE_OF(sw)) #ifdef SLJIT_PREF_SHIFT_REG #if SLJIT_PREF_SHIFT_REG == SLJIT_R2 @@ -587,8 +587,8 @@ to characters. The vector data is divided into two groups: the first group contains the start / end character pointers, and the second is the start pointers when the end of the capturing group has not yet reached. */ #define OVECTOR_START (common->ovector_start) -#define OVECTOR(i) (OVECTOR_START + (i) * (sljit_sw)sizeof(sljit_sw)) -#define OVECTOR_PRIV(i) (common->cbra_ptr + (i) * (sljit_sw)sizeof(sljit_sw)) +#define OVECTOR(i) (OVECTOR_START + (i) * SSIZE_OF(sw)) +#define OVECTOR_PRIV(i) (common->cbra_ptr + (i) * SSIZE_OF(sw)) #define PRIVATE_DATA(cc) (common->private_data_ptrs[(cc) - common->start]) #if PCRE2_CODE_UNIT_WIDTH == 8 @@ -2148,9 +2148,9 @@ while (cc < ccend) { OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(0)); OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, SLJIT_IMM, -OVECTOR(0)); - stackpos -= (int)sizeof(sljit_sw); + stackpos -= SSIZE_OF(sw); OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, TMP1, 0); - stackpos -= (int)sizeof(sljit_sw); + stackpos -= SSIZE_OF(sw); setsom_found = TRUE; } cc += 1; @@ -2165,9 +2165,9 @@ while (cc < ccend) { OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->mark_ptr); OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, SLJIT_IMM, -common->mark_ptr); - stackpos -= (int)sizeof(sljit_sw); + stackpos -= SSIZE_OF(sw); OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, TMP1, 0); - stackpos -= (int)sizeof(sljit_sw); + stackpos -= SSIZE_OF(sw); setmark_found = TRUE; } cc += 1 + 2 + cc[1]; @@ -2178,27 +2178,27 @@ while (cc < ccend) { OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(0)); OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, SLJIT_IMM, -OVECTOR(0)); - stackpos -= (int)sizeof(sljit_sw); + stackpos -= SSIZE_OF(sw); OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, TMP1, 0); - stackpos -= (int)sizeof(sljit_sw); + stackpos -= SSIZE_OF(sw); setsom_found = TRUE; } if (common->mark_ptr != 0 && !setmark_found) { OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->mark_ptr); OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, SLJIT_IMM, -common->mark_ptr); - stackpos -= (int)sizeof(sljit_sw); + stackpos -= SSIZE_OF(sw); OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, TMP1, 0); - stackpos -= (int)sizeof(sljit_sw); + stackpos -= SSIZE_OF(sw); setmark_found = TRUE; } if (common->capture_last_ptr != 0 && !capture_last_found) { OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->capture_last_ptr); OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, SLJIT_IMM, -common->capture_last_ptr); - stackpos -= (int)sizeof(sljit_sw); + stackpos -= SSIZE_OF(sw); OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, TMP1, 0); - stackpos -= (int)sizeof(sljit_sw); + stackpos -= SSIZE_OF(sw); capture_last_found = TRUE; } cc += 1 + LINK_SIZE; @@ -2212,20 +2212,20 @@ while (cc < ccend) { OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), common->capture_last_ptr); OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, SLJIT_IMM, -common->capture_last_ptr); - stackpos -= (int)sizeof(sljit_sw); + stackpos -= SSIZE_OF(sw); OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, TMP1, 0); - stackpos -= (int)sizeof(sljit_sw); + stackpos -= SSIZE_OF(sw); capture_last_found = TRUE; } offset = (GET2(cc, 1 + LINK_SIZE)) << 1; OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, SLJIT_IMM, OVECTOR(offset)); - stackpos -= (int)sizeof(sljit_sw); + stackpos -= SSIZE_OF(sw); OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset)); OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1)); OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, TMP1, 0); - stackpos -= (int)sizeof(sljit_sw); + stackpos -= SSIZE_OF(sw); OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), stackpos, TMP2, 0); - stackpos -= (int)sizeof(sljit_sw); + stackpos -= SSIZE_OF(sw); cc += 1 + LINK_SIZE + IMM2_SIZE; break; @@ -3141,7 +3141,7 @@ static SLJIT_INLINE void allocate_stack(compiler_common *common, int size) DEFINE_COMPILER; SLJIT_ASSERT(size > 0); -OP2(SLJIT_SUB, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, size * sizeof(sljit_sw)); +OP2(SLJIT_SUB, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, size * SSIZE_OF(sw)); #ifdef DESTROY_REGISTERS OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, 12345); OP1(SLJIT_MOV, TMP3, 0, TMP1, 0); @@ -3157,7 +3157,7 @@ static SLJIT_INLINE void free_stack(compiler_common *common, int size) DEFINE_COMPILER; SLJIT_ASSERT(size > 0); -OP2(SLJIT_ADD, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, size * sizeof(sljit_sw)); +OP2(SLJIT_ADD, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, size * SSIZE_OF(sw)); } static sljit_uw * allocate_read_only_data(compiler_common *common, sljit_uw size) @@ -3197,12 +3197,12 @@ if (length < 8) } else { - if (sljit_emit_mem(compiler, SLJIT_MOV | SLJIT_MEM_SUPP | SLJIT_MEM_STORE | SLJIT_MEM_PRE, SLJIT_R0, SLJIT_MEM1(SLJIT_R1), sizeof(sljit_sw)) == SLJIT_SUCCESS) + if (sljit_emit_mem_update(compiler, SLJIT_MOV | SLJIT_MEM_SUPP | SLJIT_MEM_STORE | SLJIT_MEM_PRE, SLJIT_R0, SLJIT_MEM1(SLJIT_R1), sizeof(sljit_sw)) == SLJIT_SUCCESS) { GET_LOCAL_BASE(SLJIT_R1, 0, OVECTOR_START); OP1(SLJIT_MOV, SLJIT_R2, 0, SLJIT_IMM, length - 1); loop = LABEL(); - sljit_emit_mem(compiler, SLJIT_MOV | SLJIT_MEM_STORE | SLJIT_MEM_PRE, SLJIT_R0, SLJIT_MEM1(SLJIT_R1), sizeof(sljit_sw)); + sljit_emit_mem_update(compiler, SLJIT_MOV | SLJIT_MEM_STORE | SLJIT_MEM_PRE, SLJIT_R0, SLJIT_MEM1(SLJIT_R1), sizeof(sljit_sw)); OP2(SLJIT_SUB | SLJIT_SET_Z, SLJIT_R2, 0, SLJIT_R2, 0, SLJIT_IMM, 1); JUMPTO(SLJIT_NOT_ZERO, loop); } @@ -3258,8 +3258,8 @@ OP2(SLJIT_ADD, TMP2, 0, TMP1, 0, SLJIT_IMM, size - uncleared_size); loop = LABEL(); OP1(SLJIT_MOV, SLJIT_MEM1(TMP1), 0, src, 0); OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, 3 * sizeof(sljit_sw)); -OP1(SLJIT_MOV, SLJIT_MEM1(TMP1), -2 * (sljit_sw)sizeof(sljit_sw), src, 0); -OP1(SLJIT_MOV, SLJIT_MEM1(TMP1), -1 * (sljit_sw)sizeof(sljit_sw), src, 0); +OP1(SLJIT_MOV, SLJIT_MEM1(TMP1), -2 * SSIZE_OF(sw), src, 0); +OP1(SLJIT_MOV, SLJIT_MEM1(TMP1), -1 * SSIZE_OF(sw), src, 0); CMPTO(SLJIT_LESS, TMP1, 0, TMP2, 0, loop); if (uncleared_size >= sizeof(sljit_sw)) @@ -3286,12 +3286,12 @@ if (length < 8) } else { - if (sljit_emit_mem(compiler, SLJIT_MOV | SLJIT_MEM_SUPP | SLJIT_MEM_STORE | SLJIT_MEM_PRE, TMP1, SLJIT_MEM1(TMP2), sizeof(sljit_sw)) == SLJIT_SUCCESS) + if (sljit_emit_mem_update(compiler, SLJIT_MOV | SLJIT_MEM_SUPP | SLJIT_MEM_STORE | SLJIT_MEM_PRE, TMP1, SLJIT_MEM1(TMP2), sizeof(sljit_sw)) == SLJIT_SUCCESS) { GET_LOCAL_BASE(TMP2, 0, OVECTOR_START + sizeof(sljit_sw)); OP1(SLJIT_MOV, STACK_TOP, 0, SLJIT_IMM, length - 2); loop = LABEL(); - sljit_emit_mem(compiler, SLJIT_MOV | SLJIT_MEM_STORE | SLJIT_MEM_PRE, TMP1, SLJIT_MEM1(TMP2), sizeof(sljit_sw)); + sljit_emit_mem_update(compiler, SLJIT_MOV | SLJIT_MEM_STORE | SLJIT_MEM_PRE, TMP1, SLJIT_MEM1(TMP2), sizeof(sljit_sw)); OP2(SLJIT_SUB | SLJIT_SET_Z, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, 1); JUMPTO(SLJIT_NOT_ZERO, loop); } @@ -3383,7 +3383,7 @@ else OP2(SLJIT_ADD, SLJIT_R2, 0, SLJIT_R2, 0, SLJIT_IMM, SLJIT_OFFSETOF(pcre2_match_data, ovector) - sizeof(PCRE2_SIZE)); } -has_pre = sljit_emit_mem(compiler, SLJIT_MOV | SLJIT_MEM_SUPP | SLJIT_MEM_PRE, SLJIT_S1, SLJIT_MEM1(SLJIT_S0), sizeof(sljit_sw)) == SLJIT_SUCCESS; +has_pre = sljit_emit_mem_update(compiler, SLJIT_MOV | SLJIT_MEM_SUPP | SLJIT_MEM_PRE, SLJIT_S1, SLJIT_MEM1(SLJIT_S0), sizeof(sljit_sw)) == SLJIT_SUCCESS; GET_LOCAL_BASE(SLJIT_S0, 0, OVECTOR_START - (has_pre ? sizeof(sljit_sw) : 0)); OP1(SLJIT_MOV, SLJIT_R0, 0, SLJIT_MEM1(HAS_VIRTUAL_REGISTERS ? SLJIT_R0 : ARGUMENTS), SLJIT_OFFSETOF(jit_arguments, begin)); @@ -3391,7 +3391,7 @@ OP1(SLJIT_MOV, SLJIT_R0, 0, SLJIT_MEM1(HAS_VIRTUAL_REGISTERS ? SLJIT_R0 : ARGUME loop = LABEL(); if (has_pre) - sljit_emit_mem(compiler, SLJIT_MOV | SLJIT_MEM_PRE, SLJIT_S1, SLJIT_MEM1(SLJIT_S0), sizeof(sljit_sw)); + sljit_emit_mem_update(compiler, SLJIT_MOV | SLJIT_MEM_PRE, SLJIT_S1, SLJIT_MEM1(SLJIT_S0), sizeof(sljit_sw)); else { OP1(SLJIT_MOV, SLJIT_S1, 0, SLJIT_MEM1(SLJIT_S0), 0); @@ -3414,14 +3414,14 @@ JUMPTO(SLJIT_NOT_ZERO, loop); /* Calculate the return value, which is the maximum ovector value. */ if (topbracket > 1) { - if (sljit_emit_mem(compiler, SLJIT_MOV | SLJIT_MEM_SUPP | SLJIT_MEM_PRE, SLJIT_R2, SLJIT_MEM1(SLJIT_R0), -(2 * (sljit_sw)sizeof(sljit_sw))) == SLJIT_SUCCESS) + if (sljit_emit_mem_update(compiler, SLJIT_MOV | SLJIT_MEM_SUPP | SLJIT_MEM_PRE, SLJIT_R2, SLJIT_MEM1(SLJIT_R0), -(2 * SSIZE_OF(sw))) == SLJIT_SUCCESS) { GET_LOCAL_BASE(SLJIT_R0, 0, OVECTOR_START + topbracket * 2 * sizeof(sljit_sw)); OP1(SLJIT_MOV, SLJIT_R1, 0, SLJIT_IMM, topbracket + 1); /* OVECTOR(0) is never equal to SLJIT_S2. */ loop = LABEL(); - sljit_emit_mem(compiler, SLJIT_MOV | SLJIT_MEM_PRE, SLJIT_R2, SLJIT_MEM1(SLJIT_R0), -(2 * (sljit_sw)sizeof(sljit_sw))); + sljit_emit_mem_update(compiler, SLJIT_MOV | SLJIT_MEM_PRE, SLJIT_R2, SLJIT_MEM1(SLJIT_R0), -(2 * SSIZE_OF(sw))); OP2(SLJIT_SUB, SLJIT_R1, 0, SLJIT_R1, 0, SLJIT_IMM, 1); CMPTO(SLJIT_EQUAL, SLJIT_R2, 0, SLJIT_S2, 0, loop); OP1(SLJIT_MOV, SLJIT_RETURN_REG, 0, SLJIT_R1, 0); @@ -3434,7 +3434,7 @@ if (topbracket > 1) /* OVECTOR(0) is never equal to SLJIT_S2. */ loop = LABEL(); OP1(SLJIT_MOV, SLJIT_R2, 0, SLJIT_MEM1(SLJIT_R0), 0); - OP2(SLJIT_SUB, SLJIT_R0, 0, SLJIT_R0, 0, SLJIT_IMM, 2 * (sljit_sw)sizeof(sljit_sw)); + OP2(SLJIT_SUB, SLJIT_R0, 0, SLJIT_R0, 0, SLJIT_IMM, 2 * SSIZE_OF(sw)); OP2(SLJIT_SUB, SLJIT_R1, 0, SLJIT_R1, 0, SLJIT_IMM, 1); CMPTO(SLJIT_EQUAL, SLJIT_R2, 0, SLJIT_S2, 0, loop); OP1(SLJIT_MOV, SLJIT_RETURN_REG, 0, SLJIT_R1, 0); @@ -4649,8 +4649,8 @@ if (common->nltype != NLTYPE_ANY) /* All newlines are ascii, just skip intermediate octets. */ jump[0] = CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0); loop = LABEL(); - if (sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_SUPP | SLJIT_MEM_POST, TMP2, SLJIT_MEM1(STR_PTR), IN_UCHARS(1)) == SLJIT_SUCCESS) - sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_POST, TMP2, SLJIT_MEM1(STR_PTR), IN_UCHARS(1)); + if (sljit_emit_mem_update(compiler, MOV_UCHAR | SLJIT_MEM_SUPP | SLJIT_MEM_POST, TMP2, SLJIT_MEM1(STR_PTR), IN_UCHARS(1)) == SLJIT_SUCCESS) + sljit_emit_mem_update(compiler, MOV_UCHAR | SLJIT_MEM_POST, TMP2, SLJIT_MEM1(STR_PTR), IN_UCHARS(1)); else { OP1(MOV_UCHAR, TMP2, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(0)); @@ -5883,7 +5883,7 @@ static BOOL check_fast_forward_char_pair_simd(compiler_common *common, fast_forw while (j < i) { b_pri = chars[j].last_count; - if (b_pri > 2 && a_pri + b_pri >= max_pri) + if (b_pri > 2 && (sljit_u32)a_pri + (sljit_u32)b_pri >= max_pri) { b1 = chars[j].chars[0]; b2 = chars[j].chars[1]; @@ -6569,21 +6569,21 @@ GET_LOCAL_BASE(TMP1, 0, 0); /* Drop frames until we reach STACK_TOP. */ mainloop = LABEL(); -OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), -sizeof(sljit_sw)); +OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(STACK_TOP), -SSIZE_OF(sw)); jump = CMP(SLJIT_SIG_LESS_EQUAL, TMP2, 0, SLJIT_IMM, 0); OP2(SLJIT_ADD, TMP2, 0, TMP2, 0, TMP1, 0); if (HAS_VIRTUAL_REGISTERS) { - OP1(SLJIT_MOV, SLJIT_MEM1(TMP2), 0, SLJIT_MEM1(STACK_TOP), -(2 * sizeof(sljit_sw))); - OP1(SLJIT_MOV, SLJIT_MEM1(TMP2), sizeof(sljit_sw), SLJIT_MEM1(STACK_TOP), -(3 * sizeof(sljit_sw))); - OP2(SLJIT_SUB, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, 3 * sizeof(sljit_sw)); + OP1(SLJIT_MOV, SLJIT_MEM1(TMP2), 0, SLJIT_MEM1(STACK_TOP), -(2 * SSIZE_OF(sw))); + OP1(SLJIT_MOV, SLJIT_MEM1(TMP2), sizeof(sljit_sw), SLJIT_MEM1(STACK_TOP), -(3 * SSIZE_OF(sw))); + OP2(SLJIT_SUB, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, 3 * SSIZE_OF(sw)); } else { - OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), -(2 * sizeof(sljit_sw))); - OP1(SLJIT_MOV, TMP3, 0, SLJIT_MEM1(STACK_TOP), -(3 * sizeof(sljit_sw))); - OP2(SLJIT_SUB, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, 3 * sizeof(sljit_sw)); + OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(STACK_TOP), -(2 * SSIZE_OF(sw))); + OP1(SLJIT_MOV, TMP3, 0, SLJIT_MEM1(STACK_TOP), -(3 * SSIZE_OF(sw))); + OP2(SLJIT_SUB, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, 3 * SSIZE_OF(sw)); OP1(SLJIT_MOV, SLJIT_MEM1(TMP2), 0, TMP1, 0); GET_LOCAL_BASE(TMP1, 0, 0); OP1(SLJIT_MOV, SLJIT_MEM1(TMP2), sizeof(sljit_sw), TMP3, 0); @@ -6600,13 +6600,13 @@ OP2(SLJIT_SUB, TMP2, 0, SLJIT_IMM, 0, TMP2, 0); OP2(SLJIT_ADD, TMP2, 0, TMP2, 0, TMP1, 0); if (HAS_VIRTUAL_REGISTERS) { - OP1(SLJIT_MOV, SLJIT_MEM1(TMP2), 0, SLJIT_MEM1(STACK_TOP), -(2 * sizeof(sljit_sw))); - OP2(SLJIT_SUB, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, 2 * sizeof(sljit_sw)); + OP1(SLJIT_MOV, SLJIT_MEM1(TMP2), 0, SLJIT_MEM1(STACK_TOP), -(2 * SSIZE_OF(sw))); + OP2(SLJIT_SUB, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, 2 * SSIZE_OF(sw)); } else { - OP1(SLJIT_MOV, TMP3, 0, SLJIT_MEM1(STACK_TOP), -(2 * sizeof(sljit_sw))); - OP2(SLJIT_SUB, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, 2 * sizeof(sljit_sw)); + OP1(SLJIT_MOV, TMP3, 0, SLJIT_MEM1(STACK_TOP), -(2 * SSIZE_OF(sw))); + OP2(SLJIT_SUB, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, 2 * SSIZE_OF(sw)); OP1(SLJIT_MOV, SLJIT_MEM1(TMP2), 0, TMP3, 0); } JUMPTO(SLJIT_JUMP, mainloop); @@ -7156,11 +7156,11 @@ if (char1_reg == STR_END) OP1(SLJIT_MOV, RETURN_ADDR, 0, char2_reg, 0); } -if (sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_SUPP | SLJIT_MEM_POST, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)) == SLJIT_SUCCESS) +if (sljit_emit_mem_update(compiler, MOV_UCHAR | SLJIT_MEM_SUPP | SLJIT_MEM_POST, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)) == SLJIT_SUCCESS) { label = LABEL(); - sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_POST, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)); - sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_POST, char2_reg, SLJIT_MEM1(STR_PTR), IN_UCHARS(1)); + sljit_emit_mem_update(compiler, MOV_UCHAR | SLJIT_MEM_POST, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)); + sljit_emit_mem_update(compiler, MOV_UCHAR | SLJIT_MEM_POST, char2_reg, SLJIT_MEM1(STR_PTR), IN_UCHARS(1)); jump = CMP(SLJIT_NOT_EQUAL, char1_reg, 0, char2_reg, 0); OP2(SLJIT_SUB | SLJIT_SET_Z, TMP2, 0, TMP2, 0, SLJIT_IMM, IN_UCHARS(1)); JUMPTO(SLJIT_NOT_ZERO, label); @@ -7168,14 +7168,14 @@ if (sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_SUPP | SLJIT_MEM_POST, char1_ JUMPHERE(jump); OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), LOCALS0); } -else if (sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_SUPP | SLJIT_MEM_PRE, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)) == SLJIT_SUCCESS) +else if (sljit_emit_mem_update(compiler, MOV_UCHAR | SLJIT_MEM_SUPP | SLJIT_MEM_PRE, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)) == SLJIT_SUCCESS) { OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, IN_UCHARS(1)); OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); label = LABEL(); - sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_PRE, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)); - sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_PRE, char2_reg, SLJIT_MEM1(STR_PTR), IN_UCHARS(1)); + sljit_emit_mem_update(compiler, MOV_UCHAR | SLJIT_MEM_PRE, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)); + sljit_emit_mem_update(compiler, MOV_UCHAR | SLJIT_MEM_PRE, char2_reg, SLJIT_MEM1(STR_PTR), IN_UCHARS(1)); jump = CMP(SLJIT_NOT_EQUAL, char1_reg, 0, char2_reg, 0); OP2(SLJIT_SUB | SLJIT_SET_Z, TMP2, 0, TMP2, 0, SLJIT_IMM, IN_UCHARS(1)); JUMPTO(SLJIT_NOT_ZERO, label); @@ -7229,9 +7229,9 @@ else lcc_table = TMP3; } -if (sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_SUPP | SLJIT_MEM_POST, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)) == SLJIT_SUCCESS) +if (sljit_emit_mem_update(compiler, MOV_UCHAR | SLJIT_MEM_SUPP | SLJIT_MEM_POST, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)) == SLJIT_SUCCESS) opt_type = 1; -else if (sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_SUPP | SLJIT_MEM_PRE, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)) == SLJIT_SUCCESS) +else if (sljit_emit_mem_update(compiler, MOV_UCHAR | SLJIT_MEM_SUPP | SLJIT_MEM_PRE, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)) == SLJIT_SUCCESS) opt_type = 2; sljit_emit_fast_enter(compiler, SLJIT_MEM1(SLJIT_SP), LOCALS0); @@ -7250,8 +7250,8 @@ OP1(SLJIT_MOV, lcc_table, 0, SLJIT_IMM, common->lcc); if (opt_type == 1) { label = LABEL(); - sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_POST, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)); - sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_POST, char2_reg, SLJIT_MEM1(STR_PTR), IN_UCHARS(1)); + sljit_emit_mem_update(compiler, MOV_UCHAR | SLJIT_MEM_POST, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)); + sljit_emit_mem_update(compiler, MOV_UCHAR | SLJIT_MEM_POST, char2_reg, SLJIT_MEM1(STR_PTR), IN_UCHARS(1)); } else if (opt_type == 2) { @@ -7259,8 +7259,8 @@ else if (opt_type == 2) OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); label = LABEL(); - sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_PRE, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)); - sljit_emit_mem(compiler, MOV_UCHAR | SLJIT_MEM_PRE, char2_reg, SLJIT_MEM1(STR_PTR), IN_UCHARS(1)); + sljit_emit_mem_update(compiler, MOV_UCHAR | SLJIT_MEM_PRE, char1_reg, SLJIT_MEM1(TMP1), IN_UCHARS(1)); + sljit_emit_mem_update(compiler, MOV_UCHAR | SLJIT_MEM_PRE, char2_reg, SLJIT_MEM1(STR_PTR), IN_UCHARS(1)); } else { @@ -9686,7 +9686,7 @@ BACKTRACK_AS(recurse_backtrack)->matchingpath = LABEL(); return cc + 1 + LINK_SIZE; } -static sljit_s32 SLJIT_FUNC do_callout(struct jit_arguments *arguments, pcre2_callout_block *callout_block, PCRE2_SPTR *jit_ovector) +static sljit_s32 SLJIT_FUNC do_callout_jit(struct jit_arguments *arguments, pcre2_callout_block *callout_block, PCRE2_SPTR *jit_ovector) { PCRE2_SPTR begin; PCRE2_SIZE *ovector; @@ -9753,7 +9753,7 @@ unsigned int callout_length = (*cc == OP_CALLOUT) sljit_sw value1; sljit_sw value2; sljit_sw value3; -sljit_uw callout_arg_size = (common->re->top_bracket + 1) * 2 * sizeof(sljit_sw); +sljit_uw callout_arg_size = (common->re->top_bracket + 1) * 2 * SSIZE_OF(sw); PUSH_BACKTRACK(sizeof(backtrack_common), cc, NULL); @@ -9803,7 +9803,7 @@ OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCALS0, STR_PTR, 0); /* SLJIT_R0 = arguments */ OP1(SLJIT_MOV, SLJIT_R1, 0, STACK_TOP, 0); GET_LOCAL_BASE(SLJIT_R2, 0, OVECTOR_START); -sljit_emit_icall(compiler, SLJIT_CALL, SLJIT_ARGS3(32, W, W, W), SLJIT_IMM, SLJIT_FUNC_ADDR(do_callout)); +sljit_emit_icall(compiler, SLJIT_CALL, SLJIT_ARGS3(32, W, W, W), SLJIT_IMM, SLJIT_FUNC_ADDR(do_callout_jit)); OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_SP), LOCALS0); free_stack(common, callout_arg_size); @@ -11448,7 +11448,7 @@ struct sljit_label *label; int private_data_ptr = PRIVATE_DATA(cc); int base = (private_data_ptr == 0) ? SLJIT_MEM1(STACK_TOP) : SLJIT_MEM1(SLJIT_SP); int offset0 = (private_data_ptr == 0) ? STACK(0) : private_data_ptr; -int offset1 = (private_data_ptr == 0) ? STACK(1) : private_data_ptr + (int)sizeof(sljit_sw); +int offset1 = (private_data_ptr == 0) ? STACK(1) : private_data_ptr + SSIZE_OF(sw); int tmp_base, tmp_offset; #if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 BOOL use_tmp; @@ -11514,19 +11514,19 @@ if (exact > 1) } } else if (exact == 1) - { compile_char1_matchingpath(common, type, cc, &backtrack->topbacktracks, TRUE); - if (early_fail_type == type_fail_range) - { - OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), early_fail_ptr); - OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), early_fail_ptr + (int)sizeof(sljit_sw)); - OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, TMP2, 0); - OP2(SLJIT_SUB, TMP2, 0, STR_PTR, 0, TMP2, 0); - add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_LESS_EQUAL, TMP2, 0, TMP1, 0)); +if (early_fail_type == type_fail_range) + { + /* Range end first, followed by range start. */ + OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), early_fail_ptr); + OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), early_fail_ptr + SSIZE_OF(sw)); + OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, TMP2, 0); + OP2(SLJIT_SUB, TMP2, 0, STR_PTR, 0, TMP2, 0); + add_jump(compiler, &backtrack->topbacktracks, CMP(SLJIT_LESS_EQUAL, TMP2, 0, TMP1, 0)); - OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), early_fail_ptr + (int)sizeof(sljit_sw), STR_PTR, 0); - } + OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), early_fail_ptr, STR_PTR, 0); + OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), early_fail_ptr + SSIZE_OF(sw), STR_PTR, 0); } switch(opcode) @@ -12425,7 +12425,7 @@ PCRE2_SPTR end; int private_data_ptr = PRIVATE_DATA(cc); int base = (private_data_ptr == 0) ? SLJIT_MEM1(STACK_TOP) : SLJIT_MEM1(SLJIT_SP); int offset0 = (private_data_ptr == 0) ? STACK(0) : private_data_ptr; -int offset1 = (private_data_ptr == 0) ? STACK(1) : private_data_ptr + (int)sizeof(sljit_sw); +int offset1 = (private_data_ptr == 0) ? STACK(1) : private_data_ptr + SSIZE_OF(sw); cc = get_iterator_parameters(common, cc, &opcode, &type, &max, &exact, &end); @@ -14145,7 +14145,7 @@ quit_label = common->quit_label; if (common->currententry != NULL) { /* A free bit for each private data. */ - common->recurse_bitset_size = ((private_data_size / (int)sizeof(sljit_sw)) + 7) >> 3; + common->recurse_bitset_size = ((private_data_size / SSIZE_OF(sw)) + 7) >> 3; SLJIT_ASSERT(common->recurse_bitset_size > 0); common->recurse_bitset = (sljit_u8*)SLJIT_MALLOC(common->recurse_bitset_size, allocator_data);; @@ -14381,7 +14381,7 @@ pcre2_jit_compile(pcre2_code *code, uint32_t options) pcre2_real_code *re = (pcre2_real_code *)code; #ifdef SUPPORT_JIT executable_functions *functions; -static int executable_allocator_is_working = 0; +static int executable_allocator_is_working = -1; #endif if (code == NULL) @@ -14444,23 +14444,21 @@ return PCRE2_ERROR_JIT_BADOPTION; if ((re->flags & PCRE2_NOJIT) != 0) return 0; -if (executable_allocator_is_working == 0) +if (executable_allocator_is_working == -1) { /* Checks whether the executable allocator is working. This check might run multiple times in multi-threaded environments, but the result should not be affected by it. */ void *ptr = SLJIT_MALLOC_EXEC(32, NULL); - - executable_allocator_is_working = -1; - if (ptr != NULL) { SLJIT_FREE_EXEC(((sljit_u8*)(ptr)) + SLJIT_EXEC_OFFSET(ptr), NULL); executable_allocator_is_working = 1; } + else executable_allocator_is_working = 0; } -if (executable_allocator_is_working < 0) +if (!executable_allocator_is_working) return PCRE2_ERROR_NOMEMORY; if ((re->overall_options & PCRE2_MATCH_INVALID_UTF) != 0) diff --git a/Foundation/src/pcre2_jit_misc.c b/Foundation/src/pcre2_jit_misc.c index e57afad06..bb6a5589c 100644 --- a/Foundation/src/pcre2_jit_misc.c +++ b/Foundation/src/pcre2_jit_misc.c @@ -110,8 +110,10 @@ pcre2_jit_free_unused_memory(pcre2_general_context *gcontext) (void)gcontext; /* Suppress warning */ #else /* SUPPORT_JIT */ SLJIT_UNUSED_ARG(gcontext); +#if (defined SLJIT_EXECUTABLE_ALLOCATOR && SLJIT_EXECUTABLE_ALLOCATOR) sljit_free_unused_memory_exec(); -#endif /* SUPPORT_JIT */ +#endif /* SLJIT_EXECUTABLE_ALLOCATOR */ +#endif /* SUPPORT_JIT */ } diff --git a/Foundation/src/pcre2_match.c b/Foundation/src/pcre2_match.c index 3c316c0b4..c9020542b 100644 --- a/Foundation/src/pcre2_match.c +++ b/Foundation/src/pcre2_match.c @@ -202,6 +202,7 @@ Arguments: P a previous frame of interest frame_size the frame size mb points to the match block + match_data points to the match data block s identification text Returns: nothing @@ -209,7 +210,7 @@ Returns: nothing static void display_frames(FILE *f, heapframe *F, heapframe *P, PCRE2_SIZE frame_size, - match_block *mb, const char *s, ...) + match_block *mb, pcre2_match_data *match_data, const char *s, ...) { uint32_t i; heapframe *Q; @@ -221,10 +222,10 @@ vfprintf(f, s, ap); va_end(ap); if (P != NULL) fprintf(f, " P=%lu", - ((char *)P - (char *)(mb->match_frames))/frame_size); + ((char *)P - (char *)(match_data->heapframes))/frame_size); fprintf(f, "\n"); -for (i = 0, Q = mb->match_frames; +for (i = 0, Q = match_data->heapframes; Q <= F; i++, Q = (heapframe *)((char *)Q + frame_size)) { @@ -488,10 +489,16 @@ A version did exist that used individual frames on the heap instead of calling match() recursively, but this ran substantially slower. The current version is a refactoring that uses a vector of frames to remember backtracking points. This runs no slower, and possibly even a bit faster than the original recursive -implementation. An initial vector of size START_FRAMES_SIZE (enough for maybe -50 frames) is allocated on the system stack. If this is not big enough, the -heap is used for a larger vector. +implementation. +At first, an initial vector of size START_FRAMES_SIZE (enough for maybe 50 +frames) was allocated on the system stack. If this was not big enough, the heap +was used for a larger vector. However, it turns out that there are environments +where taking as little as 20KiB from the system stack is an embarrassment. +After another refactoring, the heap is used exclusively, but a pointer the +frames vector and its size are cached in the match_data block, so that there is +no new memory allocation if the same match_data block is used for multiple +matches (unless the frames vector has to be extended). ******************************************************************************* ******************************************************************************/ @@ -564,10 +571,9 @@ made performance worse. Arguments: start_eptr starting character in subject start_ecode starting position in compiled code - ovector pointer to the final output vector - oveccount number of pairs in ovector top_bracket number of capturing parentheses in the pattern frame_size size of each backtracking frame + match_data pointer to the match_data block mb pointer to "static" variables block Returns: MATCH_MATCH if matched ) these values are >= 0 @@ -578,17 +584,19 @@ Returns: MATCH_MATCH if matched ) these values are >= 0 */ static int -match(PCRE2_SPTR start_eptr, PCRE2_SPTR start_ecode, PCRE2_SIZE *ovector, - uint16_t oveccount, uint16_t top_bracket, PCRE2_SIZE frame_size, - match_block *mb) +match(PCRE2_SPTR start_eptr, PCRE2_SPTR start_ecode, uint16_t top_bracket, + PCRE2_SIZE frame_size, pcre2_match_data *match_data, match_block *mb) { /* Frame-handling variables */ heapframe *F; /* Current frame pointer */ heapframe *N = NULL; /* Temporary frame pointers */ heapframe *P = NULL; + +heapframe *frames_top; /* End of frames vector */ heapframe *assert_accept_frame = NULL; /* For passing back a frame with captures */ -PCRE2_SIZE frame_copy_size; /* Amount to copy when creating a new frame */ +PCRE2_SIZE heapframes_size; /* Usable size of frames vector */ +PCRE2_SIZE frame_copy_size; /* Amount to copy when creating a new frame */ /* Local variables that do not need to be preserved over calls to RRMATCH(). */ @@ -625,10 +633,14 @@ copied when a new frame is created. */ frame_copy_size = frame_size - offsetof(heapframe, eptr); -/* Set up the first current frame at the start of the vector, and initialize -fields that are not reset for new frames. */ +/* Set up the first frame and the end of the frames vector. We set the local +heapframes_size to the usuable amount of the vector, that is, a whole number of +frames. */ + +F = match_data->heapframes; +heapframes_size = (match_data->heapframes_size / frame_size) * frame_size; +frames_top = (heapframe *)((char *)F + heapframes_size); -F = mb->match_frames; Frdepth = 0; /* "Recursion" depth */ Fcapture_last = 0; /* Number of most recent capture */ Fcurrent_recurse = RECURSE_UNSET; /* Not pattern recursing. */ @@ -644,34 +656,35 @@ backtracking point. */ MATCH_RECURSE: -/* Set up a new backtracking frame. If the vector is full, get a new one -on the heap, doubling the size, but constrained by the heap limit. */ +/* Set up a new backtracking frame. If the vector is full, get a new one, +doubling the size, but constrained by the heap limit (which is in KiB). */ N = (heapframe *)((char *)F + frame_size); -if (N >= mb->match_frames_top) +if (N >= frames_top) { - PCRE2_SIZE newsize = mb->frame_vector_size * 2; heapframe *new; + PCRE2_SIZE newsize = match_data->heapframes_size * 2; - if ((newsize / 1024) > mb->heap_limit) + if (newsize > mb->heap_limit) { - PCRE2_SIZE maxsize = ((mb->heap_limit * 1024)/frame_size) * frame_size; - if (mb->frame_vector_size >= maxsize) return PCRE2_ERROR_HEAPLIMIT; + PCRE2_SIZE maxsize = (mb->heap_limit/frame_size) * frame_size; + if (match_data->heapframes_size >= maxsize) return PCRE2_ERROR_HEAPLIMIT; newsize = maxsize; } - new = mb->memctl.malloc(newsize, mb->memctl.memory_data); + new = match_data->memctl.malloc(newsize, match_data->memctl.memory_data); if (new == NULL) return PCRE2_ERROR_NOMEMORY; - memcpy(new, mb->match_frames, mb->frame_vector_size); + memcpy(new, match_data->heapframes, heapframes_size); - F = (heapframe *)((char *)new + ((char *)F - (char *)mb->match_frames)); + F = (heapframe *)((char *)new + ((char *)F - (char *)match_data->heapframes)); N = (heapframe *)((char *)F + frame_size); - if (mb->match_frames != mb->stack_frames) - mb->memctl.free(mb->match_frames, mb->memctl.memory_data); - mb->match_frames = new; - mb->match_frames_top = (heapframe *)((char *)mb->match_frames + newsize); - mb->frame_vector_size = newsize; + match_data->memctl.free(match_data->heapframes, match_data->memctl.memory_data); + match_data->heapframes = new; + match_data->heapframes_size = newsize; + + heapframes_size = (newsize / frame_size) * frame_size; + frames_top = (heapframe *)((char *)new + heapframes_size); } #ifdef DEBUG_SHOW_RMATCH @@ -729,7 +742,7 @@ recursion value. */ if (group_frame_type != 0) { - Flast_group_offset = (char *)F - (char *)mb->match_frames; + Flast_group_offset = (char *)F - (char *)match_data->heapframes; if (GF_IDMASK(group_frame_type) == GF_RECURSE) Fcurrent_recurse = GF_DATAMASK(group_frame_type); group_frame_type = 0; @@ -771,7 +784,7 @@ fprintf(stderr, "++ op=%d\n", *Fecode); for(;;) { if (offset == PCRE2_UNSET) return PCRE2_ERROR_INTERNAL; - N = (heapframe *)((char *)mb->match_frames + offset); + N = (heapframe *)((char *)match_data->heapframes + offset); P = (heapframe *)((char *)N - frame_size); if (N->group_frame_type == (GF_CAPTURE | number)) break; offset = P->last_group_offset; @@ -809,7 +822,7 @@ fprintf(stderr, "++ op=%d\n", *Fecode); for(;;) { if (offset == PCRE2_UNSET) return PCRE2_ERROR_INTERNAL; - N = (heapframe *)((char *)mb->match_frames + offset); + N = (heapframe *)((char *)match_data->heapframes + offset); P = (heapframe *)((char *)N - frame_size); if (GF_IDMASK(N->group_frame_type) == GF_RECURSE) break; offset = P->last_group_offset; @@ -862,14 +875,15 @@ fprintf(stderr, "++ op=%d\n", *Fecode); mb->mark = Fmark; /* and the last success mark */ if (Feptr > mb->last_used_ptr) mb->last_used_ptr = Feptr; - ovector[0] = Fstart_match - mb->start_subject; - ovector[1] = Feptr - mb->start_subject; + match_data->ovector[0] = Fstart_match - mb->start_subject; + match_data->ovector[1] = Feptr - mb->start_subject; /* Set i to the smaller of the sizes of the external and frame ovectors. */ - i = 2 * ((top_bracket + 1 > oveccount)? oveccount : top_bracket + 1); - memcpy(ovector + 2, Fovector, (i - 2) * sizeof(PCRE2_SIZE)); - while (--i >= Foffset_top + 2) ovector[i] = PCRE2_UNSET; + i = 2 * ((top_bracket + 1 > match_data->oveccount)? + match_data->oveccount : top_bracket + 1); + memcpy(match_data->ovector + 2, Fovector, (i - 2) * sizeof(PCRE2_SIZE)); + while (--i >= Foffset_top + 2) match_data->ovector[i] = PCRE2_UNSET; return MATCH_MATCH; /* Note: NOT RRETURN */ @@ -5326,7 +5340,7 @@ fprintf(stderr, "++ op=%d\n", *Fecode); offset = Flast_group_offset; while (offset != PCRE2_UNSET) { - N = (heapframe *)((char *)mb->match_frames + offset); + N = (heapframe *)((char *)match_data->heapframes + offset); P = (heapframe *)((char *)N - frame_size); if (N->group_frame_type == (GF_RECURSE | number)) { @@ -5727,7 +5741,7 @@ fprintf(stderr, "++ op=%d\n", *Fecode); if (*bracode != OP_BRA && *bracode != OP_COND) { - N = (heapframe *)((char *)mb->match_frames + Flast_group_offset); + N = (heapframe *)((char *)match_data->heapframes + Flast_group_offset); P = (heapframe *)((char *)N - frame_size); Flast_group_offset = P->last_group_offset; @@ -6344,6 +6358,7 @@ BOOL jit_checked_utf = FALSE; #endif /* SUPPORT_UNICODE */ PCRE2_SIZE frame_size; +PCRE2_SIZE heapframes_size; /* We need to have mb as a pointer to a match block, because the IS_NEWLINE macro is used below, and it expects NLBLOCK to be defined as a pointer. */ @@ -6352,15 +6367,6 @@ pcre2_callout_block cb; match_block actual_match_block; match_block *mb = &actual_match_block; -/* Allocate an initial vector of backtracking frames on the stack. If this -proves to be too small, it is replaced by a larger one on the heap. To get a -vector of the size required that is aligned for pointers, allocate it as a -vector of pointers. */ - -PCRE2_SPTR stack_frames_vector[START_FRAMES_SIZE/sizeof(PCRE2_SPTR)] - PCRE2_KEEP_UNINITIALIZED; -mb->stack_frames = (heapframe *)stack_frames_vector; - /* Recognize NULL, length 0 as an empty string. */ if (subject == NULL && length == 0) subject = (PCRE2_SPTR)""; @@ -6791,15 +6797,11 @@ switch(re->newline_convention) vector at the end, whose size depends on the number of capturing parentheses in the pattern. It is not used at all if there are no capturing parentheses. - frame_size is the total size of each frame - mb->frame_vector_size is the total usable size of the vector (rounded down - to a whole number of frames) + frame_size is the total size of each frame + match_data->heapframes is the pointer to the frames vector + match_data->heapframes_size is the total size of the vector -The last of these is changed within the match() function if the frame vector -has to be expanded. We therefore put it into the match block so that it is -correct when calling match() more than once for non-anchored patterns. - -We must also pad frame_size for alignment to ensure subsequent frames are as +We must pad the frame_size for alignment to ensure subsequent frames are as aligned as heapframe. Whilst ovector is word-aligned due to being a PCRE2_SIZE array, that does not guarantee it is suitably aligned for pointers, as some architectures have pointers that are larger than a size_t. */ @@ -6811,8 +6813,8 @@ frame_size = (offsetof(heapframe, ovector) + /* Limits set in the pattern override the match context only if they are smaller. */ -mb->heap_limit = (mcontext->heap_limit < re->limit_heap)? - mcontext->heap_limit : re->limit_heap; +mb->heap_limit = ((mcontext->heap_limit < re->limit_heap)? + mcontext->heap_limit : re->limit_heap) * 1024; mb->match_limit = (mcontext->match_limit < re->limit_match)? mcontext->match_limit : re->limit_match; @@ -6821,35 +6823,40 @@ mb->match_limit_depth = (mcontext->depth_limit < re->limit_depth)? mcontext->depth_limit : re->limit_depth; /* If a pattern has very many capturing parentheses, the frame size may be very -large. Ensure that there are at least 10 available frames by getting an initial -vector on the heap if necessary, except when the heap limit prevents this. Get -fewer if possible. (The heap limit is in kibibytes.) */ +large. Set the initial frame vector size to ensure that there are at least 10 +available frames, but enforce a minimum of START_FRAMES_SIZE. If this is +greater than the heap limit, get as large a vector as possible. Always round +the size to a multiple of the frame size. */ -if (frame_size <= START_FRAMES_SIZE/10) +heapframes_size = frame_size * 10; +if (heapframes_size < START_FRAMES_SIZE) heapframes_size = START_FRAMES_SIZE; +if (heapframes_size > mb->heap_limit) { - mb->match_frames = mb->stack_frames; /* Initial frame vector on the stack */ - mb->frame_vector_size = ((START_FRAMES_SIZE/frame_size) * frame_size); + if (frame_size > mb->heap_limit ) return PCRE2_ERROR_HEAPLIMIT; + heapframes_size = mb->heap_limit; } -else + +/* If an existing frame vector in the match_data block is large enough, we can +use it.Otherwise, free any pre-existing vector and get a new one. */ + +if (match_data->heapframes_size < heapframes_size) { - mb->frame_vector_size = frame_size * 10; - if ((mb->frame_vector_size / 1024) > mb->heap_limit) + match_data->memctl.free(match_data->heapframes, + match_data->memctl.memory_data); + match_data->heapframes = match_data->memctl.malloc(heapframes_size, + match_data->memctl.memory_data); + if (match_data->heapframes == NULL) { - if (frame_size > mb->heap_limit * 1024) return PCRE2_ERROR_HEAPLIMIT; - mb->frame_vector_size = ((mb->heap_limit * 1024)/frame_size) * frame_size; + match_data->heapframes_size = 0; + return PCRE2_ERROR_NOMEMORY; } - mb->match_frames = mb->memctl.malloc(mb->frame_vector_size, - mb->memctl.memory_data); - if (mb->match_frames == NULL) return PCRE2_ERROR_NOMEMORY; + match_data->heapframes_size = heapframes_size; } -mb->match_frames_top = - (heapframe *)((char *)mb->match_frames + mb->frame_vector_size); - /* Write to the ovector within the first frame to mark every capture unset and to avoid uninitialized memory read errors when it is copied to a new frame. */ -memset((char *)(mb->match_frames) + offsetof(heapframe, ovector), 0xff, +memset((char *)(match_data->heapframes) + offsetof(heapframe, ovector), 0xff, frame_size - offsetof(heapframe, ovector)); /* Pointers to the individual character tables */ @@ -7277,8 +7284,8 @@ for(;;) mb->end_offset_top = 0; mb->skip_arg_count = 0; - rc = match(start_match, mb->start_code, match_data->ovector, - match_data->oveccount, re->top_bracket, frame_size, mb); + rc = match(start_match, mb->start_code, re->top_bracket, frame_size, + match_data, mb); if (mb->hitend && start_partial == NULL) { @@ -7461,11 +7468,6 @@ if (utf && end_subject != true_end_subject && } #endif /* SUPPORT_UNICODE */ -/* Release an enlarged frame vector that is on the heap. */ - -if (mb->match_frames != mb->stack_frames) - mb->memctl.free(mb->match_frames, mb->memctl.memory_data); - /* Fill in fields that are always returned in the match data. */ match_data->code = re; @@ -7531,4 +7533,10 @@ else match_data->rc = PCRE2_ERROR_NOMATCH; return match_data->rc; } +/* These #undefs are here to enable unity builds with CMake. */ + +#undef NLBLOCK /* Block containing newline information */ +#undef PSSTART /* Field containing processed string start */ +#undef PSEND /* Field containing processed string end */ + /* End of pcre2_match.c */ diff --git a/Foundation/src/pcre2_match_data.c b/Foundation/src/pcre2_match_data.c index 2a69a9df1..7b22ca8ff 100644 --- a/Foundation/src/pcre2_match_data.c +++ b/Foundation/src/pcre2_match_data.c @@ -7,7 +7,7 @@ and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Original API code Copyright (c) 1997-2012 University of Cambridge - New API code Copyright (c) 2016-2019 University of Cambridge + New API code Copyright (c) 2016-2022 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without @@ -48,19 +48,23 @@ POSSIBILITY OF SUCH DAMAGE. * Create a match data block given ovector size * *************************************************/ -/* A minimum of 1 is imposed on the number of ovector pairs. */ +/* A minimum of 1 is imposed on the number of ovector pairs. A maximum is also +imposed because the oveccount field in a match data block is uintt6_t. */ PCRE2_EXP_DEFN pcre2_match_data * PCRE2_CALL_CONVENTION pcre2_match_data_create(uint32_t oveccount, pcre2_general_context *gcontext) { pcre2_match_data *yield; if (oveccount < 1) oveccount = 1; +if (oveccount > UINT16_MAX) oveccount = UINT16_MAX; yield = PRIV(memctl_malloc)( offsetof(pcre2_match_data, ovector) + 2*oveccount*sizeof(PCRE2_SIZE), (pcre2_memctl *)gcontext); if (yield == NULL) return NULL; yield->oveccount = oveccount; yield->flags = 0; +yield->heapframes = NULL; +yield->heapframes_size = 0; return yield; } @@ -92,6 +96,9 @@ pcre2_match_data_free(pcre2_match_data *match_data) { if (match_data != NULL) { + if (match_data->heapframes != NULL) + match_data->memctl.free(match_data->heapframes, + match_data->memctl.memory_data); if ((match_data->flags & PCRE2_MD_COPIED_SUBJECT) != 0) match_data->memctl.free((void *)match_data->subject, match_data->memctl.memory_data); diff --git a/Foundation/src/pcre2_substitute.c b/Foundation/src/pcre2_substitute.c index f4124d774..d587d9e6d 100644 --- a/Foundation/src/pcre2_substitute.c +++ b/Foundation/src/pcre2_substitute.c @@ -7,7 +7,7 @@ and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel Original API code Copyright (c) 1997-2012 University of Cambridge - New API code Copyright (c) 2016-2021 University of Cambridge + New API code Copyright (c) 2016-2022 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without @@ -279,8 +279,9 @@ replacement_only = ((options & PCRE2_SUBSTITUTE_REPLACEMENT_ONLY) != 0); match data block. We create an internal match_data block in two cases: (a) an external one is not supplied (and we are not starting from an existing match); (b) an existing match is to be used for the first substitution. In the latter -case, we copy the existing match into the internal block. This ensures that no -changes are made to the existing match data block. */ +case, we copy the existing match into the internal block, except for any cached +heap frame size and pointer. This ensures that no changes are made to the +external match data block. */ if (match_data == NULL) { @@ -306,6 +307,8 @@ else if (use_existing_match) if (internal_match_data == NULL) return PCRE2_ERROR_NOMEMORY; memcpy(internal_match_data, match_data, offsetof(pcre2_match_data, ovector) + 2*pairs*sizeof(PCRE2_SIZE)); + internal_match_data->heapframes = NULL; + internal_match_data->heapframes_size = 0; match_data = internal_match_data; } From a8885296df6f3e9822f7df26113dd7cb8ea3645c Mon Sep 17 00:00:00 2001 From: Brian Date: Wed, 11 Oct 2023 19:52:29 -0400 Subject: [PATCH 104/395] Add CodeQL Workflow for Code Security Analysis Add CodeQL Workflow for Code Security Analysis This pull request introduces a CodeQL workflow to enhance the security analysis of our repository. CodeQL is a powerful static analysis tool that helps identify and mitigate security vulnerabilities in our codebase. By integrating this workflow into our GitHub Actions, we can proactively identify and address potential issues before they become security threats. We added a new CodeQL workflow file (.github/workflows/codeql.yml) that - Runs on every push and pull request to the main branch. - Excludes queries with a high false positive rate or low-severity findings. - Does not display results for third-party code, focusing only on our own codebase. Testing: To validate the functionality of this workflow, we have run several test scans on the codebase and reviewed the results. The workflow successfully compiles the project, identifies issues, and provides actionable insights while reducing noise by excluding certain queries and third-party code. Deployment: Once this pull request is merged, the CodeQL workflow will be active and automatically run on every push and pull request to the main branch. To view the results of these code scans, please follow these steps: 1. Under the repository name, click on the Security tab. 2. In the left sidebar, click Code scanning alerts. Additional Information: - You can further customize the workflow to adapt to your specific needs by modifying the workflow file. - For more information on CodeQL and how to interpret its results, refer to the GitHub documentation and the CodeQL documentation. Signed-off-by: Brian --- .github/workflows/codeql-buildscript.sh | 4 + .github/workflows/codeql.yml | 123 ++++++++++++++++++++++++ 2 files changed, 127 insertions(+) create mode 100644 .github/workflows/codeql-buildscript.sh create mode 100644 .github/workflows/codeql.yml diff --git a/.github/workflows/codeql-buildscript.sh b/.github/workflows/codeql-buildscript.sh new file mode 100644 index 000000000..a8f9a8cb1 --- /dev/null +++ b/.github/workflows/codeql-buildscript.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +sudo apt-get -y update && sudo apt-get -y install cmake ninja-build libssl-dev unixodbc-dev libmysqlclient-dev redis-server +cmake -H. -Bcmake-build -GNinja -DENABLE_PDF=OFF -DENABLE_TESTS=ON && cmake --build cmake-build --target all diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 000000000..eaa9599bd --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,123 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +# +# ******** NOTE ******** +# We have attempted to detect the languages in your repository. Please check +# the `language` matrix defined below to confirm you have the correct set of +# supported CodeQL languages. +# +name: "CodeQL" + +on: + push: + branches: [ "main", "master" ] + pull_request: + # The branches below must be a subset of the branches above + branches: [ "main", "master" ] + schedule: + - cron: '28 21 * * 0' + +jobs: + analyze: + name: Analyze + # Runner size impacts CodeQL analysis time. To learn more, please see: + # - https://gh.io/recommended-hardware-resources-for-running-codeql + # - https://gh.io/supported-runners-and-hardware-resources + # - https://gh.io/using-larger-runners + # Consider using larger runners for possible analysis time improvements. + runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-20.04' }} + timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }} + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ 'cpp' ] + # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby', 'swift' ] + # Use only 'java' to analyze code written in Java, Kotlin or both + # Use only 'javascript' to analyze code written in JavaScript, TypeScript or both + # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + submodules: recursive + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + + # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs + # queries: security-extended,security-and-quality + queries: security-and-quality + + + # Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift). + # If this step fails, then you should remove it and run the build manually (see below) + #- name: Autobuild + # uses: github/codeql-action/autobuild@v2 + + # â„¹ï¸ Command-line programs to run using the OS shell. + # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun + + # If the Autobuild fails above, remove it and uncomment the following three lines. + # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. + + - run: | + ./.github/workflows/codeql-buildscript.sh + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 + with: + category: "/language:${{matrix.language}}" + upload: false + id: step1 + + # Filter out rules with low severity or high false positve rate + # Also filter out warnings in third-party code + - name: Filter out unwanted errors and warnings + uses: advanced-security/filter-sarif@v1 + with: + patterns: | + -**:cpp/path-injection + -**:cpp/world-writable-file-creation + -**:cpp/poorly-documented-function + -**:cpp/potentially-dangerous-function + -**:cpp/use-of-goto + -**:cpp/integer-multiplication-cast-to-long + -**:cpp/comparison-with-wider-type + -**:cpp/leap-year/* + -**:cpp/ambiguously-signed-bit-field + -**:cpp/suspicious-pointer-scaling + -**:cpp/suspicious-pointer-scaling-void + -**:cpp/unsigned-comparison-zero + -**/third*party/** + -**/3rd*party/** + -**/external/** + input: ${{ steps.step1.outputs.sarif-output }}/cpp.sarif + output: ${{ steps.step1.outputs.sarif-output }}/cpp.sarif + + - name: Upload SARIF + uses: github/codeql-action/upload-sarif@v2 + with: + sarif_file: ${{ steps.step1.outputs.sarif-output }} + category: "/language:${{matrix.language}}" + + - name: Archive CodeQL results + uses: actions/upload-artifact@v3 + with: + name: codeql-results + path: ${{ steps.step1.outputs.sarif-output }} + retention-days: 5 \ No newline at end of file From 33d5d9c083105c6c5f8fd2d4d0c19154b83ceb32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Thu, 12 Oct 2023 10:38:04 +0200 Subject: [PATCH 105/395] #4182: Util: Make load()/save()/clear() operations on configurations thread-safe --- .../include/Poco/Util/AbstractConfiguration.h | 32 +++++++++++++++++++ Util/src/AbstractConfiguration.cpp | 1 - Util/src/IniFileConfiguration.cpp | 2 ++ Util/src/JSONConfiguration.cpp | 19 +++++------ Util/src/LayeredConfiguration.cpp | 6 ++++ Util/src/MapConfiguration.cpp | 4 +++ Util/src/PropertyFileConfiguration.cpp | 4 +++ Util/src/XMLConfiguration.cpp | 15 +++++++++ 8 files changed, 73 insertions(+), 10 deletions(-) diff --git a/Util/include/Poco/Util/AbstractConfiguration.h b/Util/include/Poco/Util/AbstractConfiguration.h index 4c10a9c79..7b8cd3a20 100644 --- a/Util/include/Poco/Util/AbstractConfiguration.h +++ b/Util/include/Poco/Util/AbstractConfiguration.h @@ -421,6 +421,37 @@ public: /// Returns true iff events are enabled. protected: + class ScopedLock + /// A helper class allowing to temporarily + /// lock an entire AbstractConfiguration, + /// for use by subclasses. A typical use + /// case is loading or saving an entire + /// configuration in a thread-safe way. + /// + /// Caution: Thoughtless use of this class + /// may easily lead to deadlock situations + /// in connection with events if any of the + /// mutating methods (set...(), remove()) + /// are called with the lock held. Therefore + /// this class is available to subclasses + /// only, not for general use. + { + public: + explicit ScopedLock(const AbstractConfiguration& c): + _c(c) + { + _c._mutex.lock(); + } + + ~ScopedLock() + { + _c._mutex.unlock(); + } + + private: + const AbstractConfiguration& _c; + }; + virtual bool getRaw(const std::string& key, std::string& value) const = 0; /// If the property with the given key exists, stores the property's value /// in value and returns true. Otherwise, returns false. @@ -493,6 +524,7 @@ private: friend class ConfigurationView; friend class LocalConfigurationView; friend class ConfigurationMapper; + friend class ScopedLock; }; diff --git a/Util/src/AbstractConfiguration.cpp b/Util/src/AbstractConfiguration.cpp index 2533c40aa..f7b9a2e08 100644 --- a/Util/src/AbstractConfiguration.cpp +++ b/Util/src/AbstractConfiguration.cpp @@ -105,7 +105,6 @@ std::string AbstractConfiguration::getRawString(const std::string& key) const std::string AbstractConfiguration::getRawString(const std::string& key, const std::string& defaultValue) const { - Mutex::ScopedLock lock(_mutex); std::string value; diff --git a/Util/src/IniFileConfiguration.cpp b/Util/src/IniFileConfiguration.cpp index 67aeb0fbf..6e3f5ee4a 100644 --- a/Util/src/IniFileConfiguration.cpp +++ b/Util/src/IniFileConfiguration.cpp @@ -59,6 +59,8 @@ IniFileConfiguration::~IniFileConfiguration() void IniFileConfiguration::load(std::istream& istr) { + AbstractConfiguration::ScopedLock lock(*this); + _map.clear(); _sectionKey.clear(); while (!istr.eof()) diff --git a/Util/src/JSONConfiguration.cpp b/Util/src/JSONConfiguration.cpp index 78b9dcb61..ac08c9f60 100644 --- a/Util/src/JSONConfiguration.cpp +++ b/Util/src/JSONConfiguration.cpp @@ -67,6 +67,8 @@ void JSONConfiguration::load(const std::string& path) void JSONConfiguration::load(std::istream& istr) { + AbstractConfiguration::ScopedLock lock(*this); + JSON::Parser parser; parser.parse(istr); DynamicAny result = parser.result(); @@ -79,6 +81,8 @@ void JSONConfiguration::load(std::istream& istr) void JSONConfiguration::loadEmpty(const std::string& root) { + AbstractConfiguration::ScopedLock lock(*this); + _object = new JSON::Object(); JSON::Object::Ptr rootObject = new JSON::Object(); _object->set(root, rootObject); @@ -106,7 +110,7 @@ void JSONConfiguration::getIndexes(std::string& name, std::vector& indexes) int firstOffset = -1; int offset = 0; RegularExpression regex("\\[([0-9]+)\\]"); - while(regex.match(name, offset, matches) > 0) + while (regex.match(name, offset, matches) > 0) { if (firstOffset == -1) { @@ -131,7 +135,7 @@ JSON::Object::Ptr JSONConfiguration::findStart(const std::string& key, std::stri StringTokenizer tokenizer(key, "."); lastPart = tokenizer[tokenizer.count() - 1]; - for(int i = 0; i < tokenizer.count() - 1; ++i) + for (int i = 0; i < tokenizer.count() - 1; ++i) { std::vector indexes; std::string name = tokenizer[i]; @@ -241,7 +245,6 @@ JSON::Object::Ptr JSONConfiguration::findStart(const std::string& key, std::stri void JSONConfiguration::setValue(const std::string& key, const Poco::DynamicAny& value) { - std::string sValue; value.convert(sValue); @@ -276,12 +279,12 @@ void JSONConfiguration::setValue(const std::string& key, const Poco::DynamicAny& } JSON::Array::Ptr arr = result.extract(); - for(std::vector::iterator it = indexes.begin(); it != indexes.end() - 1; ++it) + for (std::vector::iterator it = indexes.begin(); it != indexes.end() - 1; ++it) { JSON::Array::Ptr nextArray = arr->getArray(*it); if (nextArray.isNull()) { - for(int i = static_cast(arr->size()); i <= *it; ++i) + for (int i = static_cast(arr->size()); i <= *it; ++i) { Poco::DynamicAny nullValue; arr->add(nullValue); @@ -345,14 +348,14 @@ void JSONConfiguration::enumerate(const std::string& key, Keys& range) const void JSONConfiguration::save(std::ostream& ostr, unsigned int indent) const { + AbstractConfiguration::ScopedLock lock(*this); + _object->stringify(ostr, indent); } void JSONConfiguration::removeRaw(const std::string& key) - { - std::string lastPart; JSON::Object::Ptr parentObject = findStart(key, lastPart); std::vector indexes; @@ -367,7 +370,6 @@ void JSONConfiguration::removeRaw(const std::string& key) DynamicAny result = parentObject->get(lastPart); if (!result.isEmpty() && result.type() == typeid(JSON::Array::Ptr)) { - JSON::Array::Ptr arr = result.extract(); for(std::vector::iterator it = indexes.begin(); it != indexes.end() - 1; ++it) { @@ -376,7 +378,6 @@ void JSONConfiguration::removeRaw(const std::string& key) arr->remove(indexes.back()); } } - } diff --git a/Util/src/LayeredConfiguration.cpp b/Util/src/LayeredConfiguration.cpp index bdbd827a1..c8ed78019 100644 --- a/Util/src/LayeredConfiguration.cpp +++ b/Util/src/LayeredConfiguration.cpp @@ -73,6 +73,8 @@ void LayeredConfiguration::add(AbstractConfiguration::Ptr pConfig, int priority, void LayeredConfiguration::add(AbstractConfiguration::Ptr pConfig, const std::string& label, int priority, bool writeable) { + AbstractConfiguration::ScopedLock lock(*this); + ConfigItem item; item.pConfig = pConfig; item.priority = priority; @@ -87,6 +89,8 @@ void LayeredConfiguration::add(AbstractConfiguration::Ptr pConfig, const std::st void LayeredConfiguration::removeConfiguration(AbstractConfiguration::Ptr pConfig) { + AbstractConfiguration::ScopedLock lock(*this); + for (ConfigList::iterator it = _configs.begin(); it != _configs.end(); ++it) { if (it->pConfig == pConfig) @@ -100,6 +104,8 @@ void LayeredConfiguration::removeConfiguration(AbstractConfiguration::Ptr pConfi AbstractConfiguration::Ptr LayeredConfiguration::find(const std::string& label) const { + AbstractConfiguration::ScopedLock lock(*this); + for (const auto& conf: _configs) { if (conf.label == label) return conf.pConfig; diff --git a/Util/src/MapConfiguration.cpp b/Util/src/MapConfiguration.cpp index 2b0e6aef0..223534953 100644 --- a/Util/src/MapConfiguration.cpp +++ b/Util/src/MapConfiguration.cpp @@ -32,6 +32,8 @@ MapConfiguration::~MapConfiguration() void MapConfiguration::copyTo(AbstractConfiguration& config) { + AbstractConfiguration::ScopedLock lock(*this); + for (const auto& p: _map) { config.setString(p.first, p.second); @@ -41,6 +43,8 @@ void MapConfiguration::copyTo(AbstractConfiguration& config) void MapConfiguration::clear() { + AbstractConfiguration::ScopedLock lock(*this); + _map.clear(); } diff --git a/Util/src/PropertyFileConfiguration.cpp b/Util/src/PropertyFileConfiguration.cpp index 253984935..6e952f570 100644 --- a/Util/src/PropertyFileConfiguration.cpp +++ b/Util/src/PropertyFileConfiguration.cpp @@ -53,6 +53,8 @@ PropertyFileConfiguration::~PropertyFileConfiguration() void PropertyFileConfiguration::load(std::istream& istr) { + AbstractConfiguration::ScopedLock lock(*this); + clear(); while (!istr.eof()) { @@ -73,6 +75,8 @@ void PropertyFileConfiguration::load(const std::string& path) void PropertyFileConfiguration::save(std::ostream& ostr) const { + AbstractConfiguration::ScopedLock lock(*this); + MapConfiguration::iterator it = begin(); MapConfiguration::iterator ed = end(); while (it != ed) diff --git a/Util/src/XMLConfiguration.cpp b/Util/src/XMLConfiguration.cpp index 055a9f5a6..464c8a233 100644 --- a/Util/src/XMLConfiguration.cpp +++ b/Util/src/XMLConfiguration.cpp @@ -159,6 +159,8 @@ void XMLConfiguration::load(const Poco::XML::Document* pDocument) { poco_check_ptr (pDocument); + AbstractConfiguration::ScopedLock lock(*this); + _pDocument = Poco::XML::AutoPtr(const_cast(pDocument), true); _pRoot = Poco::XML::AutoPtr(pDocument->documentElement(), true); } @@ -174,6 +176,8 @@ void XMLConfiguration::load(const Poco::XML::Node* pNode) } else { + AbstractConfiguration::ScopedLock lock(*this); + _pDocument = Poco::XML::AutoPtr(pNode->ownerDocument(), true); _pRoot = Poco::XML::AutoPtr(const_cast(pNode), true); } @@ -182,6 +186,8 @@ void XMLConfiguration::load(const Poco::XML::Node* pNode) void XMLConfiguration::loadEmpty(const std::string& rootElementName) { + AbstractConfiguration::ScopedLock lock(*this); + _pDocument = new Poco::XML::Document; _pRoot = _pDocument->createElement(rootElementName); _pDocument->appendChild(_pRoot); @@ -190,6 +196,8 @@ void XMLConfiguration::loadEmpty(const std::string& rootElementName) void XMLConfiguration::save(const std::string& path) const { + AbstractConfiguration::ScopedLock lock(*this); + Poco::XML::DOMWriter writer; writer.setNewLine("\n"); writer.setOptions(Poco::XML::XMLWriter::PRETTY_PRINT); @@ -199,6 +207,8 @@ void XMLConfiguration::save(const std::string& path) const void XMLConfiguration::save(std::ostream& ostr) const { + AbstractConfiguration::ScopedLock lock(*this); + Poco::XML::DOMWriter writer; writer.setNewLine("\n"); writer.setOptions(Poco::XML::XMLWriter::PRETTY_PRINT); @@ -208,12 +218,16 @@ void XMLConfiguration::save(std::ostream& ostr) const void XMLConfiguration::save(Poco::XML::DOMWriter& writer, const std::string& path) const { + AbstractConfiguration::ScopedLock lock(*this); + writer.writeNode(path, _pDocument); } void XMLConfiguration::save(Poco::XML::DOMWriter& writer, std::ostream& ostr) const { + AbstractConfiguration::ScopedLock lock(*this); + writer.writeNode(ostr, _pDocument); } @@ -476,4 +490,5 @@ Poco::XML::Node* XMLConfiguration::findAttribute(const std::string& name, Poco:: } } // namespace Poco::Util + #endif // POCO_UTIL_NO_XMLCONFIGURATION From 9248d4195f62558c3e086887a9dc3b98df1a22b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Thu, 12 Oct 2023 12:21:33 +0200 Subject: [PATCH 106/395] updated changelog --- CHANGELOG | 34 ++++++++++++++++++++++++++++++++++ doc/99100-ReleaseNotes.page | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 6e301b93d..424393827 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -6,6 +6,13 @@ Release 1.13.0 (2023-10-XX) - TODO +Release 1.12.5 (2023-10-??) +=========================== + +- Merge changes from 1.11.5 to 1.11.8. +- TODO + + Release 1.12.4 (2022-10-31) =========================== @@ -193,6 +200,33 @@ Release 1.12.0 (2022-07-08) - GH #3665 MSVC does not properly recognize std version +Release 1.11.8 (2023-10-16) +=========================== + +- GH #1372: Possible deadlock in SessionPool +- GH #4170: Poco::FileStream is always opened with std::ios::in | std::ios::out bug +- GH #4169: Upgrade bundled zlib to 1.3. +- GH #4171: Upgrade bundled sqlite to 3.43.1 +- GH #4162: [Bug] class KeylessActiveRecord is missing export macro +- GH #4164: [Bug] SharedLibraryImpl::loadImpl uses an incorrect format specifier +- GH #4173: AbstractConfiguration: when expanding property references, allow specifying a default value +- GH #4174: AbstractConfiguration: support Int16/UInt16 and Int32/UInt32 +- GH #4182: Util: Make load()/save()/clear() operations on configurations thread-safe + + +Release 1.11.7 (2023-07-11) +=========================== + +- GH #4023: CPPParser: Losing data if parameter std::function is used +- GH #4031: Classes with virtual functions missing virtual destructors (compilation issues) +- GH #4014: wrong string offset in HTTPCredentials::isNTLMCredentials +- GH #4071: PageCompiler: add referrerPolicy to page directive +- GH #4077: OpenSSL 3: Don't throw if legacy provider is not available +- GH #4078: Upgrade bundled SQLite to 3.42 +- GH #4079: SocketConnector: constructor should take SocketAddress by const reference +- GH #4082: Logger performance improvement with formatting + + Release 1.11.6 (2022-12-08) =========================== diff --git a/doc/99100-ReleaseNotes.page b/doc/99100-ReleaseNotes.page index 3f2cda56c..70d464138 100644 --- a/doc/99100-ReleaseNotes.page +++ b/doc/99100-ReleaseNotes.page @@ -8,6 +8,14 @@ AAAIntroduction - TODO +!!!Release 1.12.5 + +!!Summary of Changes + + - Merge changes from 1.11.5 to 1.11.8. + - TODO + + !!!Release 1.12.4 !!Summary of Changes @@ -204,6 +212,35 @@ AAAIntroduction - Move semantics for sockets and SocketAddress (compile-time option, disabled by default) +!!!Release 1.11.8 + +!!Summary of Changes + + - GH #1372: Possible deadlock in SessionPool + - GH #4170: Poco::FileStream is always opened with std::ios::in | std::ios::out bug + - GH #4169: Upgrade bundled zlib to 1.3. + - GH #4171: Upgrade bundled sqlite to 3.43.1 + - GH #4162: [Bug] class KeylessActiveRecord is missing export macro + - GH #4164: [Bug] SharedLibraryImpl::loadImpl uses an incorrect format specifier + - GH #4173: AbstractConfiguration: when expanding property references, allow specifying a default value + - GH #4174: AbstractConfiguration: support Int16/UInt16 and Int32/UInt32 + - GH #4182: Util: Make load()/save()/clear() operations on configurations thread-safe + + +!!!Release 1.11.7 + +!!Summary of Changes + + - GH #4023: CPPParser: Losing data if parameter std::function is used + - GH #4031: Classes with virtual functions missing virtual destructors (compilation issues) + - GH #4014: wrong string offset in HTTPCredentials::isNTLMCredentials + - GH #4071: PageCompiler: add referrerPolicy to page directive + - GH #4077: OpenSSL 3: Don't throw if legacy provider is not available + - GH #4078: Upgrade bundled SQLite to 3.42 + - GH #4079: SocketConnector: constructor should take SocketAddress by const reference + - GH #4082: Logger performance improvement with formatting + + !!!Release 1.11.6 !!Summary of Changes From ed43543113c5307e216615d8c004f5ffd8a8b37f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Fri, 13 Oct 2023 14:30:22 +0200 Subject: [PATCH 107/395] #4184: Poco::TemporaryFile: make filenames less predictable --- CHANGELOG | 1 + Foundation/src/TemporaryFile.cpp | 44 +++++++++++++++++++++++--------- doc/99100-ReleaseNotes.page | 1 + 3 files changed, 34 insertions(+), 12 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 424393827..a33e4361e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -212,6 +212,7 @@ Release 1.11.8 (2023-10-16) - GH #4173: AbstractConfiguration: when expanding property references, allow specifying a default value - GH #4174: AbstractConfiguration: support Int16/UInt16 and Int32/UInt32 - GH #4182: Util: Make load()/save()/clear() operations on configurations thread-safe +- GH #4184: Poco::TemporaryFile: make filenames less predictable Release 1.11.7 (2023-07-11) diff --git a/Foundation/src/TemporaryFile.cpp b/Foundation/src/TemporaryFile.cpp index 96f4445bb..a3777499b 100644 --- a/Foundation/src/TemporaryFile.cpp +++ b/Foundation/src/TemporaryFile.cpp @@ -19,6 +19,9 @@ #include "Poco/Process.h" #endif #include "Poco/Mutex.h" +#include "Poco/Random.h" +#include +#include #include #include @@ -132,19 +135,36 @@ void TemporaryFile::registerForDeletion(const std::string& path) } -namespace -{ - static FastMutex mutex; -} - - std::string TemporaryFile::tempName(const std::string& tempDir) { - std::ostringstream name; + static constexpr int UNIQUE_LENGTH = 8; + static FastMutex mutex; static unsigned long count = 0; - mutex.lock(); - unsigned long n = count++; - mutex.unlock(); + static Poco::Random random; + static std::string alphabet = "abcdefghijklmnopqrstuvwxyz"; + static std::string randomChars; + + unsigned long n; + { + Poco::FastMutex::ScopedLock lock(mutex); + + if (count == 0) + { + random.seed(); + + std::random_device rd; + std::mt19937 mt(rd()); + randomChars.reserve(alphabet.size() * UNIQUE_LENGTH); + for (int i = 0; i < UNIQUE_LENGTH; i++) + { + std::shuffle(alphabet.begin(), alphabet.end(), mt); + randomChars.append(alphabet); + } + } + n = (count += random.next(1000)); + } + + std::ostringstream name; name << (tempDir.empty() ? Path::temp() : tempDir); if (name.str().at(name.str().size() - 1) != Path::separator()) { @@ -155,9 +175,9 @@ std::string TemporaryFile::tempName(const std::string& tempDir) #else name << "tmp" << Process::id(); #endif - for (int i = 0; i < 6; ++i) + for (int i = 0; i < UNIQUE_LENGTH; i++) { - name << char('a' + (n % 26)); + name << randomChars[alphabet.size()*i + (n % 26)]; n /= 26; } return name.str(); diff --git a/doc/99100-ReleaseNotes.page b/doc/99100-ReleaseNotes.page index 70d464138..c886ba60a 100644 --- a/doc/99100-ReleaseNotes.page +++ b/doc/99100-ReleaseNotes.page @@ -225,6 +225,7 @@ AAAIntroduction - GH #4173: AbstractConfiguration: when expanding property references, allow specifying a default value - GH #4174: AbstractConfiguration: support Int16/UInt16 and Int32/UInt32 - GH #4182: Util: Make load()/save()/clear() operations on configurations thread-safe + - GH #4184: Poco::TemporaryFile: make filenames less predictable !!!Release 1.11.7 From 06a03d1ada3d7b0598aa02ea536d83baf2b46215 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sat, 14 Oct 2023 11:34:59 +0200 Subject: [PATCH 108/395] Poco::TemporaryFile: fix possible naming collisions due to random zero increment --- Foundation/include/Poco/TemporaryFile.h | 4 ++++ Foundation/src/TemporaryFile.cpp | 2 +- Foundation/testsuite/src/FileTest.cpp | 23 +++++++++++++++++++++-- Foundation/testsuite/src/FileTest.h | 1 + 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/Foundation/include/Poco/TemporaryFile.h b/Foundation/include/Poco/TemporaryFile.h index 9246846c2..9314613b3 100644 --- a/Foundation/include/Poco/TemporaryFile.h +++ b/Foundation/include/Poco/TemporaryFile.h @@ -40,6 +40,10 @@ class Foundation_API TemporaryFile: public File /// The class does, however, delete the temporary /// file - either in the destructor, or immediately /// before the application terminates. + /// + /// Note: Due to the way the temporary file names are generated, + /// collisions may be possible after 400-500 Million + /// file names generated by a single process. { public: TemporaryFile(); diff --git a/Foundation/src/TemporaryFile.cpp b/Foundation/src/TemporaryFile.cpp index a3777499b..463ee32d1 100644 --- a/Foundation/src/TemporaryFile.cpp +++ b/Foundation/src/TemporaryFile.cpp @@ -161,7 +161,7 @@ std::string TemporaryFile::tempName(const std::string& tempDir) randomChars.append(alphabet); } } - n = (count += random.next(1000)); + n = (count += random.next(1000) + 1); } std::ostringstream name; diff --git a/Foundation/testsuite/src/FileTest.cpp b/Foundation/testsuite/src/FileTest.cpp index 2663953fc..a42899cc8 100644 --- a/Foundation/testsuite/src/FileTest.cpp +++ b/Foundation/testsuite/src/FileTest.cpp @@ -380,6 +380,7 @@ void FileTest::testCopy() f1.setWriteable().remove(); } + void FileTest::testCopyFailIfDestinationFileExists() { std::ofstream ostr("testfile.dat"); @@ -414,6 +415,7 @@ void FileTest::testMove() assertTrue (f1 == f2); } + void FileTest::testMoveFailIfDestinationFileExists() { std::ofstream ostr("testfile.dat"); ostr << "Hello, world!" << std::endl; @@ -430,6 +432,7 @@ void FileTest::testMoveFailIfDestinationFileExists() { f1.setWriteable().remove(); } + void FileTest::testCopyDirectory() { Path pd1("testdir"); @@ -499,6 +502,7 @@ void FileTest::testCopyDirectory() fd3.remove(true); } + void FileTest::testCopyDirectoryFailIfExists() { Path pd1("testdir"); @@ -538,6 +542,7 @@ void FileTest::testCopyDirectoryFailIfExists() fd2.remove(true); } + void FileTest::testRename() { std::ofstream ostr("testfile.dat"); @@ -555,6 +560,7 @@ void FileTest::testRename() f2.remove(); } + void FileTest::testRenameFailIfExists() { std::ofstream ostr("testfile.dat"); ostr << "Hello, world!" << std::endl; @@ -580,8 +586,6 @@ void FileTest::testRenameFailIfExists() { } - - void FileTest::testLongPath() { #if defined(_WIN32) && !defined(_WIN32_WCE) @@ -620,6 +624,20 @@ void FileTest::testUnixFileExtension() assertEqual("", path2.getExtension()); } + +void FileTest::testTemporaryFile() +{ + const int COUNT = 10000; + std::set paths; + for (int i = 0; i < COUNT; i++) + { + Poco::TemporaryFile f; + paths.insert(f.path()); + } + assertTrue (paths.size() == COUNT); +} + + void FileTest::setUp() { File f("testfile.dat"); @@ -669,6 +687,7 @@ CppUnit::Test* FileTest::suite() CppUnit_addTest(pSuite, FileTest, testRootDir); CppUnit_addTest(pSuite, FileTest, testLongPath); CppUnit_addTest(pSuite, FileTest, testUnixFileExtension); + CppUnit_addTest(pSuite, FileTest, testTemporaryFile); return pSuite; } diff --git a/Foundation/testsuite/src/FileTest.h b/Foundation/testsuite/src/FileTest.h index c5448b457..65acb507c 100644 --- a/Foundation/testsuite/src/FileTest.h +++ b/Foundation/testsuite/src/FileTest.h @@ -43,6 +43,7 @@ public: void testRootDir(); void testLongPath(); void testUnixFileExtension(); + void testTemporaryFile(); void setUp(); void tearDown(); From 6385a3c86ef244c499e6b0e93ad44d15e4f42da5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sun, 15 Oct 2023 10:16:52 +0200 Subject: [PATCH 109/395] UDPHandler: don't use SpinlockMutex, due to poor performance on single-core systems; make Mutex class a template param instead --- Net/include/Poco/Net/UDPHandler.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Net/include/Poco/Net/UDPHandler.h b/Net/include/Poco/Net/UDPHandler.h index 8bfe20245..467cf798d 100644 --- a/Net/include/Poco/Net/UDPHandler.h +++ b/Net/include/Poco/Net/UDPHandler.h @@ -41,7 +41,7 @@ typedef int UDPMsgSizeT; #define POCO_UDP_BUF_SIZE 1472 + sizeof(UDPMsgSizeT) + SocketAddress::MAX_ADDRESS_LENGTH -template +template class UDPHandlerImpl: public Runnable, public RefCountedObject /// UDP handler handles the data that arrives to the UDP server. /// The class is thread-safe and runs in its own thread, so many handlers @@ -57,7 +57,7 @@ public: typedef AutoPtr Ptr; typedef std::vector List; typedef typename List::iterator Iterator; - typedef Poco::FastMutex DFMutex; + typedef TMutex DFMutex; static const MsgSizeT BUF_STATUS_IDLE = 0; static const MsgSizeT BUF_STATUS_BUSY = -1; @@ -244,14 +244,14 @@ public: bool hasData(char*& pBuf) /// Returns true if buffer contains data. { - DFMutex::ScopedLock l(_dfMutex); + typename DFMutex::ScopedLock l(_dfMutex); return *reinterpret_cast(pBuf) > 0; } bool isError(char*& pBuf) /// Returns true if buffer contains error. { - DFMutex::ScopedLock l(_dfMutex); + typename DFMutex::ScopedLock l(_dfMutex); return *reinterpret_cast(pBuf) == BUF_STATUS_ERROR; } @@ -349,7 +349,7 @@ private: void setStatus(char*& pBuf, MsgSizeT status) { - DFMutex::ScopedLock l(_dfMutex); + typename DFMutex::ScopedLock l(_dfMutex); setStatusImpl(pBuf, status); } From 53b57c36eb29184c8f10db73ed831da3bca28436 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sun, 15 Oct 2023 11:20:05 +0200 Subject: [PATCH 110/395] fix sending trailer: HTTPOutputStream actually shuts down socket, so final \r\n would not be sent. May be related to #4180 --- Net/src/HTTPChunkedStream.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Net/src/HTTPChunkedStream.cpp b/Net/src/HTTPChunkedStream.cpp index 49ca241fb..f62bddc71 100644 --- a/Net/src/HTTPChunkedStream.cpp +++ b/Net/src/HTTPChunkedStream.cpp @@ -13,7 +13,7 @@ #include "Poco/Net/HTTPChunkedStream.h" -#include "Poco/Net/HTTPStream.h" +#include "Poco/Net/HTTPHeaderStream.h" #include "Poco/Net/HTTPSession.h" #include "Poco/NumberFormatter.h" #include "Poco/NumberParser.h" @@ -53,13 +53,17 @@ void HTTPChunkedStreamBuf::close() if (_mode & std::ios::out) { sync(); - _session.write("0\r\n", 3); if (_pTrailer && !_pTrailer->empty()) { - HTTPOutputStream hos(_session); + HTTPHeaderOutputStream hos(_session); + hos.write("0\r\n", 3); _pTrailer->write(hos); + hos.write("\r\n", 2); + } + else + { + _session.write("0\r\n\r\n", 5); // If possible, send in one write } - _session.write("\r\n", 2); } } @@ -79,7 +83,7 @@ int HTTPChunkedStreamBuf::readFromDevice(char* buffer, std::streamsize length) unsigned chunk; if (NumberParser::tryParseHex(chunkLen, chunk)) { - _chunk = (std::streamsize) chunk; + _chunk = static_cast(chunk); } else { @@ -99,7 +103,7 @@ int HTTPChunkedStreamBuf::readFromDevice(char* buffer, std::streamsize length) int ch = _session.peek(); if (ch != eof && ch != '\r' && ch != '\n') { - HTTPInputStream his(_session); + HTTPHeaderInputStream his(_session); if (_pTrailer) { _pTrailer->read(his); From 5103d46e9e53848c80823ee1766529daa4c72418 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Sun, 15 Oct 2023 17:56:48 +0200 Subject: [PATCH 111/395] chore(build): add missing distclean --- ApacheConnector/samples/Makefile | 2 +- Crypto/samples/Makefile | 2 +- Data/samples/Makefile | 2 +- Encodings/samples/Makefile | 2 +- Foundation/samples/Makefile | 2 +- Foundation/testsuite/Makefile | 2 +- JSON/samples/Makefile | 2 +- MongoDB/samples/Makefile | 2 +- Net/samples/Makefile | 2 +- PDF/samples/Makefile | 2 +- PageCompiler/samples/Makefile | 2 +- Prometheus/samples/Makefile | 2 +- SevenZip/samples/Makefile | 2 +- Util/samples/Makefile | 2 +- XML/samples/Makefile | 2 +- Zip/samples/Makefile | 2 +- 16 files changed, 16 insertions(+), 16 deletions(-) diff --git a/ApacheConnector/samples/Makefile b/ApacheConnector/samples/Makefile index 24d7ef95c..60ffdfa66 100644 --- a/ApacheConnector/samples/Makefile +++ b/ApacheConnector/samples/Makefile @@ -5,7 +5,7 @@ # .PHONY: projects -clean all: projects +clean distclean all: projects projects: $(MAKE) -C TimeServer $(MAKECMDGOALS) $(MAKE) -C FormServer $(MAKECMDGOALS) diff --git a/Crypto/samples/Makefile b/Crypto/samples/Makefile index 64fd4b6d4..c796e7377 100644 --- a/Crypto/samples/Makefile +++ b/Crypto/samples/Makefile @@ -5,6 +5,6 @@ # .PHONY: projects -clean all: projects +clean distclean all: projects projects: $(MAKE) -C genrsakey $(MAKECMDGOALS) diff --git a/Data/samples/Makefile b/Data/samples/Makefile index 5befacc03..da7624067 100644 --- a/Data/samples/Makefile +++ b/Data/samples/Makefile @@ -5,7 +5,7 @@ # .PHONY: projects -clean all: projects +clean distclean all: projects projects: $(MAKE) -C Binding $(MAKECMDGOALS) $(MAKE) -C TypeHandler $(MAKECMDGOALS) diff --git a/Encodings/samples/Makefile b/Encodings/samples/Makefile index 3cbcaddb2..84e951029 100644 --- a/Encodings/samples/Makefile +++ b/Encodings/samples/Makefile @@ -5,6 +5,6 @@ # .PHONY: projects -clean all: projects +clean distclean all: projects projects: $(MAKE) -C TextConverter $(MAKECMDGOALS) diff --git a/Foundation/samples/Makefile b/Foundation/samples/Makefile index 6307f471b..af41738fb 100644 --- a/Foundation/samples/Makefile +++ b/Foundation/samples/Makefile @@ -5,7 +5,7 @@ # .PHONY: projects -clean all: projects +clean distclean all: projects projects: $(MAKE) -C ActiveMethod $(MAKECMDGOALS) $(MAKE) -C Activity $(MAKECMDGOALS) diff --git a/Foundation/testsuite/Makefile b/Foundation/testsuite/Makefile index 07f928a63..27fbafb80 100644 --- a/Foundation/testsuite/Makefile +++ b/Foundation/testsuite/Makefile @@ -5,7 +5,7 @@ # .PHONY: projects -clean all: projects +clean distclean all: projects projects: $(MAKE) -f Makefile-Driver $(MAKECMDGOALS) ifneq ($(LINKMODE),STATIC) diff --git a/JSON/samples/Makefile b/JSON/samples/Makefile index 068d43430..406e5a9ff 100644 --- a/JSON/samples/Makefile +++ b/JSON/samples/Makefile @@ -5,7 +5,7 @@ # .PHONY: projects -clean all: projects +clean distclean all: projects projects: $(MAKE) -C Benchmark $(MAKECMDGOALS) diff --git a/MongoDB/samples/Makefile b/MongoDB/samples/Makefile index c2cd8ec8e..ae7f51e46 100644 --- a/MongoDB/samples/Makefile +++ b/MongoDB/samples/Makefile @@ -5,7 +5,7 @@ # .PHONY: projects -clean all: projects +clean distclean all: projects projects: $(MAKE) -C SQLToMongo $(MAKECMDGOALS) diff --git a/Net/samples/Makefile b/Net/samples/Makefile index f511f043b..4285e4cb3 100644 --- a/Net/samples/Makefile +++ b/Net/samples/Makefile @@ -5,7 +5,7 @@ # .PHONY: projects -clean all: projects +clean distclean all: projects projects: $(MAKE) -C dict $(MAKECMDGOALS) $(MAKE) -C TimeServer $(MAKECMDGOALS) diff --git a/PDF/samples/Makefile b/PDF/samples/Makefile index 4bbe1b8ec..4fb593939 100644 --- a/PDF/samples/Makefile +++ b/PDF/samples/Makefile @@ -5,7 +5,7 @@ # .PHONY: projects -clean all: projects +clean distclean all: projects projects: $(MAKE) -C Text $(MAKECMDGOALS) $(MAKE) -C Image $(MAKECMDGOALS) diff --git a/PageCompiler/samples/Makefile b/PageCompiler/samples/Makefile index 87f455de9..c1eb28cb2 100644 --- a/PageCompiler/samples/Makefile +++ b/PageCompiler/samples/Makefile @@ -5,6 +5,6 @@ # .PHONY: projects -clean all: projects +clean distclean all: projects projects: $(MAKE) -C HTTPTimeServer $(MAKECMDGOALS) diff --git a/Prometheus/samples/Makefile b/Prometheus/samples/Makefile index 236cef1ae..d53d0bd9b 100644 --- a/Prometheus/samples/Makefile +++ b/Prometheus/samples/Makefile @@ -5,6 +5,6 @@ # .PHONY: projects -clean all: projects +clean distclean all: projects projects: $(MAKE) -C MetricsSample $(MAKECMDGOALS) diff --git a/SevenZip/samples/Makefile b/SevenZip/samples/Makefile index 8531446ff..2ad323960 100644 --- a/SevenZip/samples/Makefile +++ b/SevenZip/samples/Makefile @@ -5,6 +5,6 @@ # .PHONY: projects -clean all: projects +clean distclean all: projects projects: $(MAKE) -C un7zip $(MAKECMDGOALS) diff --git a/Util/samples/Makefile b/Util/samples/Makefile index af5e746df..0a147cb7d 100644 --- a/Util/samples/Makefile +++ b/Util/samples/Makefile @@ -5,7 +5,7 @@ # .PHONY: projects -clean all: projects +clea distclean all: projects projects: $(MAKE) -C SampleApp $(MAKECMDGOALS) $(MAKE) -C SampleServer $(MAKECMDGOALS) diff --git a/XML/samples/Makefile b/XML/samples/Makefile index 182b84080..62f8eedb4 100644 --- a/XML/samples/Makefile +++ b/XML/samples/Makefile @@ -5,7 +5,7 @@ # .PHONY: projects -clean all: projects +clean distclean all: projects projects: $(MAKE) -C DOMParser $(MAKECMDGOALS) $(MAKE) -C DOMWriter $(MAKECMDGOALS) diff --git a/Zip/samples/Makefile b/Zip/samples/Makefile index f5da6111f..282d7f799 100644 --- a/Zip/samples/Makefile +++ b/Zip/samples/Makefile @@ -5,7 +5,7 @@ # .PHONY: projects -clean all: projects +clean distclean all: projects projects: $(MAKE) -C unzip $(MAKECMDGOALS) $(MAKE) -C zip $(MAKECMDGOALS) From 5e1904b5f8fbeee9ad009cd63ed3c968e4c0cd10 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Mon, 16 Oct 2023 00:16:06 +0200 Subject: [PATCH 112/395] fix: Sync 1.11.-1.12-devel(1.13) #4187 --- Crypto/Makefile | 1 - .../include/Poco/Data/PostgreSQL/Extractor.h | 4 +-- .../Compiler/src/TextEncodingCompiler.cpp | 4 +-- Foundation/src/FileChannel.cpp | 4 +++ Foundation/src/NumberParser.cpp | 2 +- .../testsuite/src/LocalDateTimeTest.cpp | 2 +- .../Poco/MongoDB/PoolableConnectionFactory.h | 4 --- Net/include/Poco/Net/SocketDefs.h | 2 ++ Net/src/HTTPDigestCredentials.cpp | 9 +++--- Net/testsuite/src/DialogServer.cpp | 1 - PDF/include/Poco/PDF/Page.h | 28 +++++++++---------- Redis/include/Poco/Redis/Command.h | 3 ++ Redis/src/Command.cpp | 10 +++++++ doc/99150-WindowsPlatformNotes.page | 2 +- 14 files changed, 45 insertions(+), 31 deletions(-) diff --git a/Crypto/Makefile b/Crypto/Makefile index 6542b5b7b..e5dc42588 100644 --- a/Crypto/Makefile +++ b/Crypto/Makefile @@ -6,7 +6,6 @@ include $(POCO_BASE)/build/rules/global -# see https://github.com/pocoproject/poco/issues/3073 GLOBAL_SYSLIBS := $(SYSLIBS) ifeq ($(findstring AIX, $(POCO_CONFIG)), AIX) SYSLIBS = -lssl_a -lcrypto_a diff --git a/Data/PostgreSQL/include/Poco/Data/PostgreSQL/Extractor.h b/Data/PostgreSQL/include/Poco/Data/PostgreSQL/Extractor.h index dc9a57b14..fabe39c29 100644 --- a/Data/PostgreSQL/include/Poco/Data/PostgreSQL/Extractor.h +++ b/Data/PostgreSQL/include/Poco/Data/PostgreSQL/Extractor.h @@ -354,9 +354,9 @@ private: // // inlines // -inline bool Extractor::isColumnNull(const OutputParameter& anOutputParameter) const +inline bool Extractor::isColumnNull(const OutputParameter& outputParameter) const { - return anOutputParameter.isNull() || 0 == anOutputParameter.pData(); + return outputParameter.isNull() || 0 == outputParameter.pData(); } diff --git a/Encodings/Compiler/src/TextEncodingCompiler.cpp b/Encodings/Compiler/src/TextEncodingCompiler.cpp index ff1e410c9..3286324c5 100644 --- a/Encodings/Compiler/src/TextEncodingCompiler.cpp +++ b/Encodings/Compiler/src/TextEncodingCompiler.cpp @@ -117,8 +117,8 @@ protected: helpFormatter.setHeader( "\n" "The POCO C++ Text Encodings Compiler.\n" - "Copyright (c) 2018-2022 by Applied Informatics Software Engineering GmbH.\n" - "All rights reserved.\n\n" + "Copyright (c) 2018-2023 by Applied Informatics Software Engineering GmbH.\n" + "and Contributors.\n\n" "This program compiles Unicode character encoding tables " "from http://www.unicode.org/Public/MAPPINGS/ to TextEncoding " "classes for the Poco Encodings library. \n\n" diff --git a/Foundation/src/FileChannel.cpp b/Foundation/src/FileChannel.cpp index 94c8f7991..c176c64b0 100644 --- a/Foundation/src/FileChannel.cpp +++ b/Foundation/src/FileChannel.cpp @@ -351,6 +351,7 @@ void FileChannel::setArchive(const std::string& archive) void FileChannel::setCompress(const std::string& compress) { _compress = icompare(compress, "true") == 0; + if (_pArchiveStrategy) _pArchiveStrategy->compress(_compress); } @@ -391,6 +392,8 @@ void FileChannel::setRotateOnOpen(const std::string& rotateOnOpen) void FileChannel::purge() { + if (_pPurgeStrategy) + { try { _pPurgeStrategy->purge(_path); @@ -398,6 +401,7 @@ void FileChannel::purge() catch (...) { } + } } diff --git a/Foundation/src/NumberParser.cpp b/Foundation/src/NumberParser.cpp index bb73ce4c3..ab3ec14f8 100644 --- a/Foundation/src/NumberParser.cpp +++ b/Foundation/src/NumberParser.cpp @@ -188,7 +188,7 @@ double NumberParser::parseFloat(const std::string& s, char decSep, char thSep) bool NumberParser::tryParseFloat(const std::string& s, double& value, char decSep, char thSep) { - return strToDouble(s, value, decSep, thSep); + return strToDouble(s.c_str(), value, decSep, thSep); } diff --git a/Foundation/testsuite/src/LocalDateTimeTest.cpp b/Foundation/testsuite/src/LocalDateTimeTest.cpp index 3e12c3940..c1b8d4f08 100644 --- a/Foundation/testsuite/src/LocalDateTimeTest.cpp +++ b/Foundation/testsuite/src/LocalDateTimeTest.cpp @@ -479,7 +479,7 @@ void LocalDateTimeTest::testTimezone2() then = *std::localtime(&t); #if POCO_OS == POCO_OS_SOLARIS assertTrue((mktime(&then)-t) * 1000 == ldt.tzd()); -#else +#else assertTrue (then.tm_gmtoff == ldt.tzd()); #endif } diff --git a/MongoDB/include/Poco/MongoDB/PoolableConnectionFactory.h b/MongoDB/include/Poco/MongoDB/PoolableConnectionFactory.h index f5c52a246..58b81ee94 100644 --- a/MongoDB/include/Poco/MongoDB/PoolableConnectionFactory.h +++ b/MongoDB/include/Poco/MongoDB/PoolableConnectionFactory.h @@ -116,7 +116,6 @@ public: return _connection; } -#if defined(POCO_ENABLE_CPP11) // Disable copy to prevent unwanted release of resources: C++11 way PooledConnection(const PooledConnection&) = delete; PooledConnection& operator=(const PooledConnection&) = delete; @@ -124,15 +123,12 @@ public: // Enable move semantics PooledConnection(PooledConnection&& other) = default; PooledConnection& operator=(PooledConnection&&) = default; -#endif private: -#if ! defined(POCO_ENABLE_CPP11) // Disable copy to prevent unwanted release of resources: pre C++11 way PooledConnection(const PooledConnection&); PooledConnection& operator=(const PooledConnection&); -#endif Poco::ObjectPool& _pool; Connection::Ptr _connection; diff --git a/Net/include/Poco/Net/SocketDefs.h b/Net/include/Poco/Net/SocketDefs.h index bcae65680..46bfe2116 100644 --- a/Net/include/Poco/Net/SocketDefs.h +++ b/Net/include/Poco/Net/SocketDefs.h @@ -370,11 +370,13 @@ inline int SocketBufVecSize(const SocketBufVec& sbv) { std::size_t sz = 0; for (const auto& v : sbv) + { #if defined(POCO_OS_FAMILY_WINDOWS) sz += v.len; #elif defined(POCO_OS_FAMILY_UNIX) sz += v.iov_len; #endif + } return static_cast(sz); } diff --git a/Net/src/HTTPDigestCredentials.cpp b/Net/src/HTTPDigestCredentials.cpp index b8543c56e..068dbb9f5 100644 --- a/Net/src/HTTPDigestCredentials.cpp +++ b/Net/src/HTTPDigestCredentials.cpp @@ -304,8 +304,8 @@ void HTTPDigestCredentials::updateAuthParams(const HTTPRequest& request) if (qop.empty()) { - /// Assume that https://tools.ietf.org/html/rfc7616 does not supported - /// and still using https://tools.ietf.org/html/rfc2069#section-2.4 + /// Assume that https://tools.ietf.org/html/rfc7616 is not supported + /// and still using https://tools.ietf.org/html/rfc2069#section-2.4 MD5Engine engine; @@ -407,8 +407,9 @@ int HTTPDigestCredentials::updateNonceCounter(const std::string& nonce) bool HTTPDigestCredentials::isAlgorithmSupported(const std::string& algorithm) const { bool isAlgorithmSupported = std::find_if(std::begin(SUPPORTED_ALGORITHMS), - std::end(SUPPORTED_ALGORITHMS), - [&algorithm](const std::string& supportedAlgorithm) { + std::end(SUPPORTED_ALGORITHMS), + [&algorithm](const std::string& supportedAlgorithm) + { return icompare(algorithm, supportedAlgorithm) == 0; }) != std::end(SUPPORTED_ALGORITHMS); diff --git a/Net/testsuite/src/DialogServer.cpp b/Net/testsuite/src/DialogServer.cpp index 5efce4ca5..74a36a26b 100644 --- a/Net/testsuite/src/DialogServer.cpp +++ b/Net/testsuite/src/DialogServer.cpp @@ -109,7 +109,6 @@ const std::string& DialogServer::lastCommand() const const std::vector& DialogServer::lastCommands() const { FastMutex::ScopedLock lock(_mutex); - return _lastCommands; } diff --git a/PDF/include/Poco/PDF/Page.h b/PDF/include/Poco/PDF/Page.h index 846a6bb79..80b745522 100644 --- a/PDF/include/Poco/PDF/Page.h +++ b/PDF/include/Poco/PDF/Page.h @@ -49,21 +49,21 @@ public: enum Size { PAGE_SIZE_LETTER = HPDF_PAGE_SIZE_LETTER, - /// 8� x 11 (Inches), 612 x 792 px + /// 8½ x 11 (Inches), 612 x 792 px PAGE_SIZE_LEGAL = HPDF_PAGE_SIZE_LEGAL, - /// 8� x 14 (Inches), 612 x 1008 px + /// 8½ x 14 (Inches), 612 x 1008 px PAGE_SIZE_A3 = HPDF_PAGE_SIZE_A3, - /// 297 � 420 (mm), 841.89 x 1199.551 px + /// 297 × 420 (mm), 841.89 x 1199.551 px PAGE_SIZE_A4 = HPDF_PAGE_SIZE_A4, - /// 210 � 297 (mm), 595.276 x 841.89 px + /// 210 × 297 (mm), 595.276 x 841.89 px PAGE_SIZE_A5 = HPDF_PAGE_SIZE_A5, - /// 148 � 210 (mm), 419.528 x 595.276 px + /// 148 × 210 (mm), 419.528 x 595.276 px PAGE_SIZE_B4 = HPDF_PAGE_SIZE_B4, - /// 250 � 353 (mm), 708.661 x 1000.63 px + /// 250 × 353 (mm), 708.661 x 1000.63 px PAGE_SIZE_B5 = HPDF_PAGE_SIZE_B5, - /// 176 � 250 (mm), 498.898 x 708.661 px + /// 176 × 250 (mm), 498.898 x 708.661 px PAGE_SIZE_EXECUTIVE = HPDF_PAGE_SIZE_EXECUTIVE, - /// 7� x 10� (Inches), 522 x 756 px + /// 7½ x 10½ (Inches), 522 x 756 px PAGE_SIZE_US4x6 = HPDF_PAGE_SIZE_US4x6, /// 4 x 6 (Inches), 288 x 432 px PAGE_SIZE_US4x8 = HPDF_PAGE_SIZE_US4x8, @@ -301,19 +301,19 @@ public: /// Appends a path from the current point to the specified point.. void curveTo(const std::vector& values); - /// Appends a B�zier curve to the current path using two specified points. + /// Appends a Bézier curve to the current path using two specified points. /// The point (x1, y1) and the point (x2, y2) are used as the control points - /// for a B�zier curve and current point is moved to the point (x3, y3) + /// for a Bézier curve and current point is moved to the point (x3, y3) void curveToRight(float x2, float y2, float x3, float y3); - /// Appends a B�zier curve to the right of the current point using two specified points. + /// Appends a Bézier curve to the right of the current point using two specified points. /// The current point and the point (x2, y2) are used as the control points - /// for a B�zier curve and current point is moved to the point (x3, y3) + /// for a Bézier curve and current point is moved to the point (x3, y3) void curveToLeft(float x2, float y2, float x3, float y3); - /// Appends a B�zier curve to the left of the current point using two specified points. + /// Appends a Bézier curve to the left of the current point using two specified points. /// The current point and the point (x2, y2) are used as the control points - /// for a B�zier curve and current point is moved to the point (x3, y3) + /// for a Bézier curve and current point is moved to the point (x3, y3) void closePath(); /// Appends a straight line from the current point to the start point of sub path. diff --git a/Redis/include/Poco/Redis/Command.h b/Redis/include/Poco/Redis/Command.h index 5c0a5d38e..23d4da002 100644 --- a/Redis/include/Poco/Redis/Command.h +++ b/Redis/include/Poco/Redis/Command.h @@ -132,6 +132,9 @@ public: static Command incr(const std::string& key, Int64 by = 0); /// Creates and returns an INCR or INCRBY command. Calls INCR when by is omitted or zero. + static Command keys(const std::string& pattern); + /// Creates and returns a KEYS command. + static Command lindex(const std::string& list, Int64 index = 0); /// Creates and returns a LINDEX command. diff --git a/Redis/src/Command.cpp b/Redis/src/Command.cpp index ac34ac454..de660c81b 100644 --- a/Redis/src/Command.cpp +++ b/Redis/src/Command.cpp @@ -269,6 +269,16 @@ Command Command::hvals(const std::string& hash) } +Command Command::keys(const std::string& pattern) +{ + Command cmd("KEYS"); + + cmd << pattern; + + return cmd; +} + + Command Command::incr(const std::string& key, Int64 by) { Command cmd(by == 0 ? "INCR" : "INCRBY"); diff --git a/doc/99150-WindowsPlatformNotes.page b/doc/99150-WindowsPlatformNotes.page index 96e6ac7d1..78b99cb50 100644 --- a/doc/99150-WindowsPlatformNotes.page +++ b/doc/99150-WindowsPlatformNotes.page @@ -53,7 +53,7 @@ and PocoLIB64d.dll for debug, respectively. In order to work around that, `/Zc:__cplusplus` compiler flag is necesary. -See following issues for details and explanations: +See the following issues for details and explanations: * https://github.com/pocoproject/poco/issues/3665 * https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/ From 22379ff9c142686856c2b54f390d5a537523a028 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Mon, 16 Oct 2023 00:47:42 +0200 Subject: [PATCH 113/395] fix: MongoDB deleted copy constructor #4187 --- .../Poco/MongoDB/PoolableConnectionFactory.h | 15 +++++---------- MongoDB/src/OpMsgMessage.cpp | 2 +- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/MongoDB/include/Poco/MongoDB/PoolableConnectionFactory.h b/MongoDB/include/Poco/MongoDB/PoolableConnectionFactory.h index 58b81ee94..10d089517 100644 --- a/MongoDB/include/Poco/MongoDB/PoolableConnectionFactory.h +++ b/MongoDB/include/Poco/MongoDB/PoolableConnectionFactory.h @@ -117,19 +117,14 @@ public: } // Disable copy to prevent unwanted release of resources: C++11 way - PooledConnection(const PooledConnection&) = delete; - PooledConnection& operator=(const PooledConnection&) = delete; + PooledConnection(const PooledConnection&) = delete; + PooledConnection& operator=(const PooledConnection&) = delete; - // Enable move semantics - PooledConnection(PooledConnection&& other) = default; - PooledConnection& operator=(PooledConnection&&) = default; + // Enable move semantics + PooledConnection(PooledConnection&& other) = default; + PooledConnection& operator=(PooledConnection&&) = default; private: - - // Disable copy to prevent unwanted release of resources: pre C++11 way - PooledConnection(const PooledConnection&); - PooledConnection& operator=(const PooledConnection&); - Poco::ObjectPool& _pool; Connection::Ptr _connection; }; diff --git a/MongoDB/src/OpMsgMessage.cpp b/MongoDB/src/OpMsgMessage.cpp index 2c4d16f36..2b55772ca 100644 --- a/MongoDB/src/OpMsgMessage.cpp +++ b/MongoDB/src/OpMsgMessage.cpp @@ -247,7 +247,7 @@ void OpMsgMessage::send(std::ostream& ostr) wdoc.flush(); const std::string& identifier = commandIdentifier(_commandName); - const Poco::Int32 size = sizeof(size) + identifier.size() + 1 + ssdoc.tellp(); + const Poco::Int32 size = static_cast(sizeof(size) + identifier.size() + 1 + ssdoc.tellp()); writer << PAYLOAD_TYPE_1; writer << size; writer.writeCString(identifier.c_str()); From 5fd6a45ea75f9a0fc44725f66799bd0cb6314011 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Mon, 16 Oct 2023 12:12:10 +0200 Subject: [PATCH 114/395] fix(MD*Engine) g++ array-bounds warning --- Foundation/src/MD4Engine.cpp | 2 ++ Foundation/src/MD5Engine.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/Foundation/src/MD4Engine.cpp b/Foundation/src/MD4Engine.cpp index 434c46a06..918d20724 100644 --- a/Foundation/src/MD4Engine.cpp +++ b/Foundation/src/MD4Engine.cpp @@ -134,8 +134,10 @@ const DigestEngine::Digest& MD4Engine::digest() #if defined(POCO_COMPILER_GCC) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wstringop-overflow" + #pragma GCC diagnostic ignored "-Warray-bounds" #endif _digest.insert(_digest.begin(), digest, digest + sizeof(digest)); + poco_assert_dbg (_digest.size() == sizeof(digest)); #if defined(POCO_COMPILER_GCC) #pragma GCC diagnostic pop #endif diff --git a/Foundation/src/MD5Engine.cpp b/Foundation/src/MD5Engine.cpp index c780a1480..3c817cb88 100644 --- a/Foundation/src/MD5Engine.cpp +++ b/Foundation/src/MD5Engine.cpp @@ -134,8 +134,10 @@ const DigestEngine::Digest& MD5Engine::digest() #if defined(POCO_COMPILER_GCC) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wstringop-overflow" + #pragma GCC diagnostic ignored "-Warray-bounds" #endif _digest.insert(_digest.begin(), digest, digest + sizeof(digest)); + poco_assert_dbg (_digest.size() == sizeof(digest)); #if defined(POCO_COMPILER_GCC) #pragma GCC diagnostic pop #endif From a16950aee3ec5785a734fd56f8b79e62763cceb5 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Mon, 16 Oct 2023 12:27:55 +0200 Subject: [PATCH 115/395] fix(make): make clean and distclean should not trigger dependencies creation #4129 --- build/rules/compile | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/build/rules/compile b/build/rules/compile index afaf1bfb0..06faa2224 100644 --- a/build/rules/compile +++ b/build/rules/compile @@ -113,25 +113,41 @@ $(OBJPATH_RELEASE_SHARED)/%.o: $(GENDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/c # Regular sources rules $(DEPPATH)/%.d: $(SRCDIR)/%.cpp +ifneq ($(MAKECMDGOALS),clean) +ifneq ($(MAKECMDGOALS),distclean) @echo "** Creating dependency info for" $^ $(MKDIR) $(DEPPATH) $(DEP) $(SRCDIR)/$(patsubst %.d,%.cpp,$(notdir $@)) $@ $(OBJPATH_DEBUG_STATIC) $(OBJPATH_RELEASE_STATIC) $(OBJPATH_DEBUG_SHARED) $(OBJPATH_RELEASE_SHARED) $(INCLUDE) $(CXXFLAGS) +endif +endif $(DEPPATH)/%.d: $(SRCDIR)/%.c +ifneq ($(MAKECMDGOALS),clean) +ifneq ($(MAKECMDGOALS),distclean) @echo "** Creating dependency info for" $^ $(MKDIR) $(DEPPATH) $(DEP) $(SRCDIR)/$(patsubst %.d,%.c,$(notdir $@)) $@ $(OBJPATH_DEBUG_STATIC) $(OBJPATH_RELEASE_STATIC) $(OBJPATH_DEBUG_SHARED) $(OBJPATH_RELEASE_SHARED) $(INCLUDE) $(CFLAGS) +endif +endif # Generated sources rules $(DEPPATH)/%.d: $(GENDIR)/%.cpp +ifneq ($(MAKECMDGOALS),clean) +ifneq ($(MAKECMDGOALS),distclean) @echo "** Creating dependency info for" $^ $(MKDIR) $(DEPPATH) $(DEP) $(GENDIR)/$(patsubst %.d,%.cpp,$(notdir $@)) $@ $(OBJPATH_DEBUG_STATIC) $(OBJPATH_RELEASE_STATIC) $(OBJPATH_DEBUG_SHARED) $(OBJPATH_RELEASE_SHARED) $(INCLUDE) $(CXXFLAGS) +endif +endif $(DEPPATH)/%.d: $(GENDIR)/%.c +ifneq ($(MAKECMDGOALS),clean) +ifneq ($(MAKECMDGOALS),distclean) @echo "** Creating dependency info for" $^ $(MKDIR) $(DEPPATH) $(DEP) $(GENDIR)/$(patsubst %.d,%.c,$(notdir $@)) $@ $(OBJPATH_DEBUG_STATIC) $(OBJPATH_RELEASE_STATIC) $(OBJPATH_DEBUG_SHARED) $(OBJPATH_RELEASE_SHARED) $(INCLUDE) $(CFLAGS) +endif +endif depend: $(addprefix $(DEPPATH)/,$(addsuffix .d,$(objects))) From 92b3bb5455543ded74cf1bf4fc2a004d62a65f8e Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Mon, 16 Oct 2023 15:28:56 +0200 Subject: [PATCH 116/395] fix(Crypto): some ASAN errors (still probem with bignum alloc) --- Crypto/include/Poco/Crypto/EVPPKey.h | 4 +- Crypto/src/EVPPKey.cpp | 91 +++++++++++++++++++++------- 2 files changed, 72 insertions(+), 23 deletions(-) diff --git a/Crypto/include/Poco/Crypto/EVPPKey.h b/Crypto/include/Poco/Crypto/EVPPKey.h index a3291d1bd..6f53a96f5 100644 --- a/Crypto/include/Poco/Crypto/EVPPKey.h +++ b/Crypto/include/Poco/Crypto/EVPPKey.h @@ -86,7 +86,7 @@ public: #endif // OPENSSL_VERSION_NUMBER >= 0x10000000L #if OPENSSL_VERSION_NUMBER >= 0x30000000L - explicit EVPPKey(const std::vector* public_key, const std::vector* private_key, unsigned long exponent, int type); + explicit EVPPKey(const std::vector* publicKey, const std::vector* privateKey, unsigned long exponent, int type); #endif explicit EVPPKey(EVP_PKEY* pEVPPKey); @@ -178,7 +178,7 @@ public: private: EVPPKey(); #if OPENSSL_VERSION_NUMBER >= 0x30000000L - void SetKeyFromParameters(OSSL_PARAM* parameters); + void setKeyFromParameters(OSSL_PARAM* parameters); #endif static int type(const EVP_PKEY* pEVPPKey); void checkType(); diff --git a/Crypto/src/EVPPKey.cpp b/Crypto/src/EVPPKey.cpp index a906ab1e5..4f1263af7 100644 --- a/Crypto/src/EVPPKey.cpp +++ b/Crypto/src/EVPPKey.cpp @@ -70,54 +70,103 @@ EVPPKey::EVPPKey(const PKCS12Container& cont): EVPPKey(cont.getKey()) } #if OPENSSL_VERSION_NUMBER >= 0x30000000L -void PushBuildParamBignum(OSSL_PARAM_BLD* param_bld, const char* key, const std::vector& bytes) { - BIGNUM* bignum = BN_bin2bn(bytes.data(), (int)bytes.size(), nullptr); - OSSL_PARAM_BLD_push_BN(param_bld, key, bignum); + +void pushBuildParamBignum(OSSL_PARAM_BLD* paramBld, const char* key, const std::vector& bytes) +{ + BIGNUM* bignum = nullptr; + if (!(bignum = BN_bin2bn(bytes.data(), (int)bytes.size(), nullptr))) + { + std::string msg = "pushBuildParamBignum(): BN_bin2bn()\n"; + throw OpenSSLException(getError(msg)); + } + + OSSL_PARAM_BLD_push_BN(paramBld, key, bignum); } -OSSL_PARAM* GetKeyParameters(const std::vector* public_key, const std::vector* private_key) { - auto param_bld = OSSL_PARAM_BLD_new(); - if (public_key != nullptr) { - PushBuildParamBignum(param_bld, "n", *public_key); + +OSSL_PARAM* getKeyParameters(const std::vector* publicKey, const std::vector* privateKey) +{ + OSSL_PARAM* parameters = nullptr; + auto paramBld = OSSL_PARAM_BLD_new(); + if (!paramBld) + { + std::string msg = "getKeyParameters(): OSSL_PARAM_BLD_new()\n"; + throw OpenSSLException(getError(msg)); } - if (private_key != nullptr) { - PushBuildParamBignum(param_bld, "d", *private_key); + try + { + if (publicKey != nullptr) + pushBuildParamBignum(paramBld, "n", *publicKey); + + if (privateKey != nullptr) + pushBuildParamBignum(paramBld, "d", *privateKey); + + // default rsa exponent + OSSL_PARAM_BLD_push_ulong(paramBld, "e", RSA_F4); + + parameters = OSSL_PARAM_BLD_to_param(paramBld); + if (!parameters) + { + std::string msg = "getKeyParameters(): OSSL_PARAM_BLD_to_param()\n"; + throw OpenSSLException(getError(msg)); + } + } + catch(OpenSSLException&) + { + OSSL_PARAM_BLD_free(paramBld); + throw; } - // default rsa exponent - OSSL_PARAM_BLD_push_ulong(param_bld, "e", RSA_F4); - - auto parameters = OSSL_PARAM_BLD_to_param(param_bld); - OSSL_PARAM_BLD_free(param_bld); + OSSL_PARAM_BLD_free(paramBld); return parameters; } -void EVPPKey::SetKeyFromParameters(OSSL_PARAM* parameters) { + + +void EVPPKey::setKeyFromParameters(OSSL_PARAM* parameters) +{ auto ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_RSA, nullptr); - if (EVP_PKEY_fromdata_init(ctx) <= 0) { + if (EVP_PKEY_fromdata_init(ctx) <= 0) + { OSSL_PARAM_free(parameters); + EVP_PKEY_CTX_free(ctx); throw OpenSSLException("EVPPKey cannot init create key"); } if (_pEVPPKey != 0) EVP_PKEY_free(_pEVPPKey); - if (EVP_PKEY_fromdata(ctx, &_pEVPPKey, EVP_PKEY_KEYPAIR, parameters) <= 0) { + if (EVP_PKEY_fromdata(ctx, &_pEVPPKey, EVP_PKEY_KEYPAIR, parameters) <= 0) + { OSSL_PARAM_free(parameters); + EVP_PKEY_CTX_free(ctx); throw OpenSSLException("EVPPKey cannot create key"); } + + EVP_PKEY_CTX_free(ctx); } + EVPPKey::EVPPKey(const std::vector* public_key, const std::vector* private_key, unsigned long exponent, int type) : _pEVPPKey(0) { - if ((EVP_PKEY_RSA != type) || (RSA_F4 != exponent)) { + if ((EVP_PKEY_RSA != type) || (RSA_F4 != exponent)) + { std::string msg = Poco::format("EVPPKey(%d):Invalid format\n", type); throw OpenSSLException(getError(msg)); } - OSSL_PARAM* parameters = GetKeyParameters(public_key, private_key); - SetKeyFromParameters(parameters); - OSSL_PARAM_free(parameters); + OSSL_PARAM* parameters = getKeyParameters(public_key, private_key); + if (parameters) + { + setKeyFromParameters(parameters); + OSSL_PARAM_free(parameters); + } + else + { + std::string msg = "EVPPKey(): getKeyParameters()\n"; + throw OpenSSLException(getError(msg)); + } } + #endif #if OPENSSL_VERSION_NUMBER >= 0x10000000L From 83a928967d1d084e1ff83d6b182cc1caa66dba15 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Mon, 16 Oct 2023 17:46:02 +0200 Subject: [PATCH 117/395] fix(Crypto::EVPPKey): leak --- Crypto/src/EVPPKey.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Crypto/src/EVPPKey.cpp b/Crypto/src/EVPPKey.cpp index 4f1263af7..5db3033bd 100644 --- a/Crypto/src/EVPPKey.cpp +++ b/Crypto/src/EVPPKey.cpp @@ -73,14 +73,15 @@ EVPPKey::EVPPKey(const PKCS12Container& cont): EVPPKey(cont.getKey()) void pushBuildParamBignum(OSSL_PARAM_BLD* paramBld, const char* key, const std::vector& bytes) { - BIGNUM* bignum = nullptr; - if (!(bignum = BN_bin2bn(bytes.data(), (int)bytes.size(), nullptr))) + BIGNUM* pBigNum = nullptr; + if (!(pBigNum = BN_bin2bn(bytes.data(), (int)bytes.size(), nullptr))) { std::string msg = "pushBuildParamBignum(): BN_bin2bn()\n"; throw OpenSSLException(getError(msg)); } - OSSL_PARAM_BLD_push_BN(paramBld, key, bignum); + OSSL_PARAM_BLD_push_BN(paramBld, key, pBigNum); + BN_clear_free(pBigNum); } From cdd783a9f0c81f037c73495823ec246b59c749cc Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Mon, 16 Oct 2023 17:59:09 +0200 Subject: [PATCH 118/395] fix(FileChannel): setRotation overflow #3786 --- Foundation/src/FileChannel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Foundation/src/FileChannel.cpp b/Foundation/src/FileChannel.cpp index c176c64b0..c5a639028 100644 --- a/Foundation/src/FileChannel.cpp +++ b/Foundation/src/FileChannel.cpp @@ -230,7 +230,7 @@ RotateStrategy* FileChannel::createRotationStrategy(const std::string& rotation, { std::string::const_iterator it = rotation.begin(); std::string::const_iterator end = rotation.end(); - int n = 0; + Poco::Int64 n = 0; while (it != end && Ascii::isSpace(*it)) ++it; while (it != end && Ascii::isDigit(*it)) { n *= 10; n += *it++ - '0'; } while (it != end && Ascii::isSpace(*it)) ++it; From 1e0fbb8657e3b0717a8c07697149799009f56a1a Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Mon, 16 Oct 2023 20:21:25 +0200 Subject: [PATCH 119/395] fix(Crypto::EvpPKey): separate bignums and free them after parameter build --- Crypto/src/EVPPKey.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/Crypto/src/EVPPKey.cpp b/Crypto/src/EVPPKey.cpp index 5db3033bd..f4fb3a2ec 100644 --- a/Crypto/src/EVPPKey.cpp +++ b/Crypto/src/EVPPKey.cpp @@ -71,22 +71,23 @@ EVPPKey::EVPPKey(const PKCS12Container& cont): EVPPKey(cont.getKey()) #if OPENSSL_VERSION_NUMBER >= 0x30000000L -void pushBuildParamBignum(OSSL_PARAM_BLD* paramBld, const char* key, const std::vector& bytes) +void pushBuildParamBignum(OSSL_PARAM_BLD* paramBld, const char* key, const std::vector& bytes, BIGNUM** pBigNum) { - BIGNUM* pBigNum = nullptr; - if (!(pBigNum = BN_bin2bn(bytes.data(), (int)bytes.size(), nullptr))) + poco_check_ptr(pBigNum); + if (!(*pBigNum = BN_bin2bn(bytes.data(), (int)bytes.size(), nullptr))) { std::string msg = "pushBuildParamBignum(): BN_bin2bn()\n"; throw OpenSSLException(getError(msg)); } - OSSL_PARAM_BLD_push_BN(paramBld, key, pBigNum); - BN_clear_free(pBigNum); + OSSL_PARAM_BLD_push_BN(paramBld, key, *pBigNum); } OSSL_PARAM* getKeyParameters(const std::vector* publicKey, const std::vector* privateKey) { + BIGNUM* pBigNum1 = nullptr; + BIGNUM* pBigNum2 = nullptr; OSSL_PARAM* parameters = nullptr; auto paramBld = OSSL_PARAM_BLD_new(); if (!paramBld) @@ -98,10 +99,10 @@ OSSL_PARAM* getKeyParameters(const std::vector* publicKey, const try { if (publicKey != nullptr) - pushBuildParamBignum(paramBld, "n", *publicKey); + pushBuildParamBignum(paramBld, "n", *publicKey, &pBigNum1); if (privateKey != nullptr) - pushBuildParamBignum(paramBld, "d", *privateKey); + pushBuildParamBignum(paramBld, "d", *privateKey, &pBigNum2); // default rsa exponent OSSL_PARAM_BLD_push_ulong(paramBld, "e", RSA_F4); @@ -120,6 +121,8 @@ OSSL_PARAM* getKeyParameters(const std::vector* publicKey, const } OSSL_PARAM_BLD_free(paramBld); + BN_clear_free(pBigNum1); + BN_clear_free(pBigNum2); return parameters; } From 69fd22c4e0bb7416af8f9cb79e4cfd712cb31264 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Mon, 16 Oct 2023 22:05:33 +0200 Subject: [PATCH 120/395] fix a couple of g++ warnings --- Foundation/src/SHA1Engine.cpp | 1 + Foundation/src/SignalHandler.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Foundation/src/SHA1Engine.cpp b/Foundation/src/SHA1Engine.cpp index 2e4d68727..55d10b079 100644 --- a/Foundation/src/SHA1Engine.cpp +++ b/Foundation/src/SHA1Engine.cpp @@ -146,6 +146,7 @@ const DigestEngine::Digest& SHA1Engine::digest() #if defined(POCO_COMPILER_GCC) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wstringop-overflow" + #pragma GCC diagnostic ignored "-Warray-bounds" #endif _digest.insert(_digest.begin(), hash, hash + DIGEST_SIZE); #if defined(POCO_COMPILER_GCC) diff --git a/Foundation/src/SignalHandler.cpp b/Foundation/src/SignalHandler.cpp index d405f73dd..6bbc0fb64 100644 --- a/Foundation/src/SignalHandler.cpp +++ b/Foundation/src/SignalHandler.cpp @@ -34,7 +34,7 @@ SignalHandler::JumpBufferVec SignalHandler::_jumpBufferVec; SignalHandler::SignalHandler() { JumpBufferVec& jbv = jumpBufferVec(); - JumpBuffer buf; + JumpBuffer buf = {}; jbv.push_back(buf); } From 8a268d4413c2b7c5b8a37e0430eb921ee1f722fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Wed, 18 Oct 2023 08:00:40 +0200 Subject: [PATCH 121/395] #4195: Poco::File::created() on macOS should use birthtime --- CHANGELOG | 5 +++-- Foundation/src/File_UNIX.cpp | 6 +----- doc/99100-ReleaseNotes.page | 3 ++- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index a33e4361e..16fff34dc 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -200,10 +200,10 @@ Release 1.12.0 (2022-07-08) - GH #3665 MSVC does not properly recognize std version -Release 1.11.8 (2023-10-16) +Release 1.11.8 (2023-10-18) =========================== -- GH #1372: Possible deadlock in SessionPool +- GH #1372: Possible deadlock in SessionPool - GH #4170: Poco::FileStream is always opened with std::ios::in | std::ios::out bug - GH #4169: Upgrade bundled zlib to 1.3. - GH #4171: Upgrade bundled sqlite to 3.43.1 @@ -213,6 +213,7 @@ Release 1.11.8 (2023-10-16) - GH #4174: AbstractConfiguration: support Int16/UInt16 and Int32/UInt32 - GH #4182: Util: Make load()/save()/clear() operations on configurations thread-safe - GH #4184: Poco::TemporaryFile: make filenames less predictable +- GH #4195: Poco::File::created() on macOS should use birthtime Release 1.11.7 (2023-07-11) diff --git a/Foundation/src/File_UNIX.cpp b/Foundation/src/File_UNIX.cpp index 090567b26..b4fd9b6da 100644 --- a/Foundation/src/File_UNIX.cpp +++ b/Foundation/src/File_UNIX.cpp @@ -212,11 +212,7 @@ Timestamp FileImpl::createdImpl() const { poco_assert (!_path.empty()); -#if defined(__APPLE__) && defined(st_birthtime) && !defined(POCO_NO_STAT64) // st_birthtime is available only on 10.5 - struct stat64 st; - if (stat64(_path.c_str(), &st) == 0) - return Timestamp::fromEpochTime(st.st_birthtime); -#elif defined(__FreeBSD__) +#if defined(__FreeBSD__) || (defined(__APPLE__) && defined(_DARWIN_FEATURE_64_BIT_INODE)) struct stat st; if (stat(_path.c_str(), &st) == 0) return Timestamp::fromEpochTime(st.st_birthtime); diff --git a/doc/99100-ReleaseNotes.page b/doc/99100-ReleaseNotes.page index c886ba60a..940b938ef 100644 --- a/doc/99100-ReleaseNotes.page +++ b/doc/99100-ReleaseNotes.page @@ -216,7 +216,7 @@ AAAIntroduction !!Summary of Changes - - GH #1372: Possible deadlock in SessionPool + - GH #1372: Possible deadlock in SessionPool - GH #4170: Poco::FileStream is always opened with std::ios::in | std::ios::out bug - GH #4169: Upgrade bundled zlib to 1.3. - GH #4171: Upgrade bundled sqlite to 3.43.1 @@ -226,6 +226,7 @@ AAAIntroduction - GH #4174: AbstractConfiguration: support Int16/UInt16 and Int32/UInt32 - GH #4182: Util: Make load()/save()/clear() operations on configurations thread-safe - GH #4184: Poco::TemporaryFile: make filenames less predictable + - GH #4195: Poco::File::created() on macOS should use birthtime !!!Release 1.11.7 From 701c8dae2d853ab04865c11698626d21500e71e8 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Wed, 18 Oct 2023 18:48:20 +0200 Subject: [PATCH 122/395] Build and dev system improvements (#4193) * fix shellcheck warnings; add some ci ignore test entries * fix(make): Redirect build stderr to a file #4112 * enh(dev): add vscode run script and launch items for tests --- .gitignore | 1 + .vscode/launch.json | 261 ++++++++++++++++++++++++++++++++++ build/config/Linux | 3 + build/rules/compile | 32 ++--- build/rules/dylib | 1 + build/rules/exec | 1 + build/rules/global | 10 ++ build/rules/lib | 1 + build/script/makedepend.SunCC | 2 +- build/script/makedepend.aCC | 8 +- build/script/makedepend.clang | 2 +- build/script/makedepend.cxx | 2 +- build/script/makedepend.gcc | 2 +- build/script/makedepend.qcc | 2 +- build/script/makedepend.xlC | 13 +- build/script/makeldpath | 12 +- build/script/projname | 8 +- build/script/runtests.sh | 16 +-- ci/runtests.sh | 15 +- cppignore.lnx | 1 + cppignore.win | 1 + poco_env.bash | 36 +++++ runVSCode.sh | 17 +++ 23 files changed, 391 insertions(+), 56 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 poco_env.bash create mode 100755 runVSCode.sh diff --git a/.gitignore b/.gitignore index b334caf22..500d56ef6 100644 --- a/.gitignore +++ b/.gitignore @@ -144,6 +144,7 @@ cmake-build/ *.bak stage/ releases/ +poco_build_stderr.out # vim # ####### diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 000000000..1dfbd742b --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,261 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Linux GDB Foundation Test", + "variables": { + "libName": "Foundation" + }, + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/${libName}/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"], + "environment": [ { "name": "PATH", "value": "${env:PATH}:${workspaceFolder}/${libName}/testsuite/bin/${env:OSNAME}/${env:OSARCH}" } ], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + }, + { + "name": "Linux GDB XML Test", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/XML/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + }, + { + "name": "Linux GDB JSON Test", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/JSON/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + }, + { + "name": "Linux GDB Util Test", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/Util/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + }, + { + "name": "Linux GDB Net Test", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/Net/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + }, + { + "name": "Linux GDB Crypto Test", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/Crypto/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + }, + { + "name": "Linux GDB Net SSL Test", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/NetSSL_OpenSSL/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + }, + { + "name": "Linux GDB Data Test", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/Data/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + }, + { + "name": "Linux GDB Data/SQLite Test", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/Data/SQLite/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + }, + { + "name": "Linux GDB Data/ODBC Test", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/Data/ODBC/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + }, + { + "name": "Linux GDB Data/MySQL Test", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/Data/MySQL/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + }, + { + "name": "Linux GDB Data/PostgreSQL Test", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/Data/PostgreSQL/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + }, + { + "name": "Linux GDB MongoDB Test", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/MongoDB/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + }, + { + "name": "Linux GDB Redis Test", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/Redis/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ] + } + ] +} diff --git a/build/config/Linux b/build/config/Linux index 959db5e13..84ecf7d47 100644 --- a/build/config/Linux +++ b/build/config/Linux @@ -11,6 +11,9 @@ LINKMODE ?= SHARED SANITIZEFLAGS ?= +#-fsanitize=address +#-fsanitize=undefined +#-fsanitize=thread # # Define Tools diff --git a/build/rules/compile b/build/rules/compile index 06faa2224..d5a5be83b 100644 --- a/build/rules/compile +++ b/build/rules/compile @@ -41,69 +41,69 @@ $(OBJPATH_RELEASE_STATIC) $(OBJPATH_DEBUG_STATIC) $(OBJPATH_RELEASE_SHARED) $(OB $(OBJPATH_DEBUG_STATIC)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) @echo "** Compiling" $< "(debug, static)" - $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(STATICOPT_CXX) -c $< -o $@ + $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(STATICOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) $(OBJPATH_RELEASE_STATIC)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) @echo "** Compiling" $< "(release, static)" - $(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(STATICOPT_CXX) -c $< -o $@ + $(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(STATICOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) $(OBJPATH_DEBUG_STATIC)/%.o: $(SRCDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) @echo "** Compiling" $< "(debug, static)" - $(CC) $(INCLUDE) $(CFLAGS) $(DEBUGOPT_CC) $(STATICOPT_CC) -c $< -o $@ + $(CC) $(INCLUDE) $(CFLAGS) $(DEBUGOPT_CC) $(STATICOPT_CC) -c $< -o $@ $(POCO_BUILD_STDERR) $(OBJPATH_RELEASE_STATIC)/%.o: $(SRCDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) @echo "** Compiling" $< "(release, static)" - $(CC) $(INCLUDE) $(CFLAGS) $(RELEASEOPT_CC) $(STATICOPT_CC) -c $< -o $@ + $(CC) $(INCLUDE) $(CFLAGS) $(RELEASEOPT_CC) $(STATICOPT_CC) -c $< -o $@ $(POCO_BUILD_STDERR) $(OBJPATH_DEBUG_SHARED)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) @echo "** Compiling" $< "(debug, shared)" - $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@ + $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) $(OBJPATH_RELEASE_SHARED)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) @echo "** Compiling" $< "(release, shared)" - $(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@ + $(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) $(OBJPATH_DEBUG_SHARED)/%.o: $(SRCDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) @echo "** Compiling" $< "(debug, shared)" - $(CC) $(INCLUDE) $(CFLAGS) $(DEBUGOPT_CC) $(SHAREDOPT_CC) -c $< -o $@ + $(CC) $(INCLUDE) $(CFLAGS) $(DEBUGOPT_CC) $(SHAREDOPT_CC) -c $< -o $@ $(POCO_BUILD_STDERR) $(OBJPATH_RELEASE_SHARED)/%.o: $(SRCDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) @echo "** Compiling" $< "(release, shared)" - $(CC) $(INCLUDE) $(CFLAGS) $(RELEASEOPT_CC) $(SHAREDOPT_CC) -c $< -o $@ + $(CC) $(INCLUDE) $(CFLAGS) $(RELEASEOPT_CC) $(SHAREDOPT_CC) -c $< -o $@ $(POCO_BUILD_STDERR) # Generated sources $(OBJPATH_DEBUG_STATIC)/%.o: $(GENDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) @echo "** Compiling" $< "(debug, static)" - $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(STATICOPT_CXX) -c $< -o $@ + $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(STATICOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) $(OBJPATH_RELEASE_STATIC)/%.o: $(GENDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) @echo "** Compiling" $< "(release, static)" - $(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(STATICOPT_CXX) -c $< -o $@ + $(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(STATICOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) $(OBJPATH_DEBUG_STATIC)/%.o: $(GENDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) @echo "** Compiling" $< "(debug, static)" - $(CC) $(INCLUDE) $(CFLAGS) $(DEBUGOPT_CC) $(STATICOPT_CC) -c $< -o $@ + $(CC) $(INCLUDE) $(CFLAGS) $(DEBUGOPT_CC) $(STATICOPT_CC) -c $< -o $@ $(POCO_BUILD_STDERR) $(OBJPATH_RELEASE_STATIC)/%.o: $(GENDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) @echo "** Compiling" $< "(release, static)" - $(CC) $(INCLUDE) $(CFLAGS) $(RELEASEOPT_CC) $(STATICOPT_CC) -c $< -o $@ + $(CC) $(INCLUDE) $(CFLAGS) $(RELEASEOPT_CC) $(STATICOPT_CC) -c $< -o $@ $(POCO_BUILD_STDERR) $(OBJPATH_DEBUG_SHARED)/%.o: $(GENDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) @echo "** Compiling" $< "(debug, shared)" - $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@ + $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) $(OBJPATH_RELEASE_SHARED)/%.o: $(GENDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) @echo "** Compiling" $< "(release, shared)" - $(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@ + $(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) $(OBJPATH_DEBUG_SHARED)/%.o: $(GENDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) @echo "** Compiling" $< "(debug, shared)" - $(CC) $(INCLUDE) $(CFLAGS) $(DEBUGOPT_CC) $(SHAREDOPT_CC) -c $< -o $@ + $(CC) $(INCLUDE) $(CFLAGS) $(DEBUGOPT_CC) $(SHAREDOPT_CC) -c $< -o $@ $(POCO_BUILD_STDERR) $(OBJPATH_RELEASE_SHARED)/%.o: $(GENDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) @echo "** Compiling" $< "(release, shared)" - $(CC) $(INCLUDE) $(CFLAGS) $(RELEASEOPT_CC) $(SHAREDOPT_CC) -c $< -o $@ + $(CC) $(INCLUDE) $(CFLAGS) $(RELEASEOPT_CC) $(SHAREDOPT_CC) -c $< -o $@ $(POCO_BUILD_STDERR) # diff --git a/build/rules/dylib b/build/rules/dylib index 4d8aca3bc..6a7f9394e 100644 --- a/build/rules/dylib +++ b/build/rules/dylib @@ -42,6 +42,7 @@ include $(POCO_BASE)/build/rules/compile # Rules for creating a dynamically loadable shared library # clean: + $(RM) $(POCO_BUILD_STDERR_FILE) $(RM) $(OBJPATH) $(RM) $(DYLIB_DEBUG) $(DYLIB_RELEASE) $(DYLIB_S_DEBUG) $(DYLIB_S_RELEASE) diff --git a/build/rules/exec b/build/rules/exec index 32ec7eef4..889e98ab5 100644 --- a/build/rules/exec +++ b/build/rules/exec @@ -29,6 +29,7 @@ include $(POCO_BASE)/build/rules/compile # Rules for creating an executable # clean: + $(RM) $(POCO_BUILD_STDERR_FILE) $(RM) $(OBJPATH) $(RM) $(EXEC_RELEASE_STATIC) $(EXEC_DEBUG_STATIC) $(EXEC_RELEASE_SHARED) $(EXEC_DEBUG_SHARED) diff --git a/build/rules/global b/build/rules/global index 5e48cd988..ed178814d 100644 --- a/build/rules/global +++ b/build/rules/global @@ -7,6 +7,7 @@ # POCO_BASE: Path to POCO source tree. Must be defined. # POCO_BUILD: Path to directory where build files are put. # Defaults to $(POCO_BASE) +# POCO_BUILD_STDERR: Redirect command for build errors log file. # POCO_CONFIG: Build configuration to use. # Defaults to `uname`. # POCO_TARGET_OSNAME: Target system operating system name (for cross builds) @@ -51,6 +52,15 @@ ifdef POCO_VERBOSE $(info POCO_BUILD = $(POCO_BUILD)) endif +# +# Build errors/warnings output +# +ifndef POCO_BUILD_STDERR +POCO_BUILD_STDERR_FILE = "$(POCO_BASE)/build/poco_build_stderr.out" +$(shell rm -f $(POCO_BUILD_STDERR_FILE)) +POCO_BUILD_STDERR = 2>&1|tee -a $(POCO_BUILD_STDERR_FILE) +endif + # # POCO_BASE/POCO_BUILD/cwd sanity checks # diff --git a/build/rules/lib b/build/rules/lib index 9ba932039..214c6cb31 100644 --- a/build/rules/lib +++ b/build/rules/lib @@ -46,6 +46,7 @@ include $(POCO_BASE)/build/rules/compile # Rules for creating a library # clean: + $(RM) $(POCO_BUILD_STDERR_FILE) $(RM) $(OBJPATH) $(RM) $(LIB_RELEASE_STATIC) $(LIB_DEBUG_STATIC) $(LIB_RELEASE_SHARED) $(LIB_DEBUG_SHARED) $(RM) $(LIB_DEBUG_SHARED_LINK) $(LIB_RELEASE_SHARED_LINK) diff --git a/build/script/makedepend.SunCC b/build/script/makedepend.SunCC index febdce06e..411d3f5a8 100755 --- a/build/script/makedepend.SunCC +++ b/build/script/makedepend.SunCC @@ -19,4 +19,4 @@ shift dir4=$1 shift -CC -xM1 $@ $source | sed "s#\(.*\.o$\)#$dir1/\1 $dir2/\1 $dir3/\1 $dir4/\1#" >$target +CC -xM1 "$@" "$source" | sed "s#\(.*\.o$\)#$dir1/\1 $dir2/\1 $dir3/\1 $dir4/\1#" >"$target" diff --git a/build/script/makedepend.aCC b/build/script/makedepend.aCC index b38de6e62..21be30fae 100755 --- a/build/script/makedepend.aCC +++ b/build/script/makedepend.aCC @@ -19,7 +19,7 @@ shift dir4=$1 shift -tmpfile=`basename $target` -aCC -E +maked $@ $source >/dev/null -sed "s#\(.*\.o$\)#$dir1/\1 $dir2/\1 $dir3/\1 $dir4/\1#" <$tmpfile >$target -rm $tmpfile +tmpfile=$(basename $target) +aCC -E +maked "$@" "$source" >/dev/null +sed "s#\(.*\.o$\)#$dir1/\1 $dir2/\1 $dir3/\1 $dir4/\1#" <"$tmpfile" >"$target" +rm "$tmpfile" diff --git a/build/script/makedepend.clang b/build/script/makedepend.clang index fa08cd74b..2a0995790 100755 --- a/build/script/makedepend.clang +++ b/build/script/makedepend.clang @@ -26,4 +26,4 @@ else CLANG=clang++ fi -$CLANG -MM $@ $source | sed "s#\(.*\.o\):#$dir1/\1 $dir2/\1 $dir3/\1 $dir4/\1:#" >$target +$CLANG -MM "$@" "$source" | sed "s#\(.*\.o\):#$dir1/\1 $dir2/\1 $dir3/\1 $dir4/\1:#" >"$target" diff --git a/build/script/makedepend.cxx b/build/script/makedepend.cxx index 700f90c02..25a2c4f79 100755 --- a/build/script/makedepend.cxx +++ b/build/script/makedepend.cxx @@ -19,4 +19,4 @@ shift dir4=$1 shift -cxx -M $@ $source | sed "s#\(.*\.o$\)#$dir1/\1 $dir2/\1 $dir3/\1 $dir4/\1#" >$target +cxx -M "$@" "$source" | sed "s#\(.*\.o$\)#$dir1/\1 $dir2/\1 $dir3/\1 $dir4/\1#" >"$target" diff --git a/build/script/makedepend.gcc b/build/script/makedepend.gcc index 0ebdeae38..41daa24b4 100755 --- a/build/script/makedepend.gcc +++ b/build/script/makedepend.gcc @@ -19,4 +19,4 @@ shift dir4=$1 shift -$CC -MM $@ $source | sed "s#\(.*\.o\):#$dir1/\1 $dir2/\1 $dir3/\1 $dir4/\1:#" >$target +$CC -MM "$@" "$source" | sed "s#\(.*\.o\):#$dir1/\1 $dir2/\1 $dir3/\1 $dir4/\1:#" >"$target" diff --git a/build/script/makedepend.qcc b/build/script/makedepend.qcc index 38c3a5081..b5d50a626 100755 --- a/build/script/makedepend.qcc +++ b/build/script/makedepend.qcc @@ -18,4 +18,4 @@ shift dir4=$1 shift -$CC -E -Wp,-MM $@ $source | sed "s#\(.*\.o$\)#$dir1/\1 $dir2/\1 $dir3/\1 $dir4/\1#" >$target +$CC -E -Wp,-MM "$@" "$source" | sed "s#\(.*\.o$\)#$dir1/\1 $dir2/\1 $dir3/\1 $dir4/\1#" >"$target" diff --git a/build/script/makedepend.xlC b/build/script/makedepend.xlC index c880398af..ead6caaec 100755 --- a/build/script/makedepend.xlC +++ b/build/script/makedepend.xlC @@ -20,12 +20,11 @@ shift dir4=$1 shift -cwd=`pwd` +cwd=$(pwd) -cd `dirname $target` -$CXX -qmakedep -E -w $@ $cwd/$source >/dev/null - -ufile=`basename $source` -ufile=`echo $ufile | sed "s#\.cpp#\.u#"` -cat $ufile | sort | uniq | grep -v '/usr/include' | grep -v '/usr/vacpp' | sed "s#\(.*\.o$\)#$dir1/\1 $dir2/\1 $dir3/\1 $dir4/\1#" >$target +cd "$(dirname "$target")" || exit +$CXX -qmakedep -E -w "$@" "$cwd"/"$source" >/dev/null +ufile=$(basename "$source") +ufile=$(echo "$ufile" | sed "s#\.cpp#\.u#") +sort "$ufile" | uniq | grep -v '/usr/include' | grep -v '/usr/vacpp' | sed "s#\(.*\.o$\)#$dir1/\1 $dir2/\1 $dir3/\1 $dir4/\1#" >"$target" diff --git a/build/script/makeldpath b/build/script/makeldpath index 5e46d2874..6ec224123 100755 --- a/build/script/makeldpath +++ b/build/script/makeldpath @@ -10,16 +10,16 @@ if [ "$POCO_BASE" == "" ] ; then exit 1 fi -projectList=`cat ${POCO_BASE}/components` +projectList=$(cat "${POCO_BASE}"/components) -OSNAME=`uname` -OSARCH=`uname -m | tr " /" "_-"` +OSNAME=$(uname) +OSARCH=$(uname -m | tr " /" "_-") for proj in $projectList ; do path=${POCO_BASE}/${proj}/lib/${OSNAME}/${OSARCH} - echo $path - if [ -d $path ] ; then - echo -n ":"$path + echo "$path" + if [ -d "$path" ] ; then + printf ":%s" "$path" fi done diff --git a/build/script/projname b/build/script/projname index 783253ae7..31e01b657 100755 --- a/build/script/projname +++ b/build/script/projname @@ -10,8 +10,8 @@ # PROJECT_BASE=$1 -cdir=`sh -c pwd` -cd $PROJECT_BASE -projbase=`sh -c pwd` -cd "$cdir" +cdir=$(sh -c pwd) +cd "$PROJECT_BASE" || exit +projbase=$(sh -c pwd) +cd "$cdir" || exit sh -c pwd | sed "s:^$projbase::" | sed "s:^/::" diff --git a/build/script/runtests.sh b/build/script/runtests.sh index 61b67ea76..658d9de1f 100755 --- a/build/script/runtests.sh +++ b/build/script/runtests.sh @@ -21,7 +21,7 @@ # if [ "$POCO_BASE" = "" ] ; then - POCO_BASE=`pwd` + POCO_BASE=$(pwd) fi if [ "$POCO_BUILD" = "" ] ; then @@ -31,7 +31,7 @@ fi TESTRUNNER=./testrunner if [ "$1" = "" ] ; then - components=`cat $POCO_BASE/components` + components=$(cat "$POCO_BASE"/components) else components=$1 fi @@ -43,11 +43,11 @@ else fi if [ "$OSARCH" = "" ] ; then - OSARCH=`uname -m | tr ' /' _-` + OSARCH=$(uname -m | tr ' /' _-) fi if [ "$OSNAME" = "" ] ; then - OSNAME=`uname` + OSNAME=$(uname) case $OSNAME in CYGWIN*) OSNAME=CYGWIN @@ -86,10 +86,10 @@ do echo "****************************************" echo "" - runs=`expr $runs + 1` - sh -c "cd $POCO_BUILD/$comp/testsuite/$BINDIR && PATH=.:$PATH && LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH $TESTRUNNER $IGNORE $TESTRUNNERARGS" - if [ $? -ne 0 ] ; then - failures=`expr $failures + 1` + runs=$((runs + 1)) + if ! sh -c "cd $POCO_BUILD/$comp/testsuite/$BINDIR && PATH=.:$PATH && LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH $TESTRUNNER $IGNORE $TESTRUNNERARGS"; + then + failures=$((failures + 1)) failedTests="$failedTests $comp" status=1 fi diff --git a/ci/runtests.sh b/ci/runtests.sh index e29454fef..f98efec97 100755 --- a/ci/runtests.sh +++ b/ci/runtests.sh @@ -1,10 +1,13 @@ +#!/bin/sh + set -ev -osname=`uname` -osarch=`uname -m` -export POCO_BASE=`pwd` -export PATH=$PATH:. -export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.:$POCO_BASE/lib/$osname/$osarch -export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:.:$POCO_BASE/lib/$osname/$osarch +osname=$(uname) +osarch=$(uname -m) +POCO_BASE=$(pwd) +export POCO_BASE +export PATH="$PATH":. +export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":.:"$POCO_BASE"/lib/"$osname"/"$osarch" +export DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH":.:"$POCO_BASE"/lib/"$osname"/"$osarch" if [ "TSAN" = "$1" ] then export TSAN_OPTIONS="suppressions=$POCO_BASE/tsan.suppress,second_deadlock_stack=1" diff --git a/cppignore.lnx b/cppignore.lnx index 2c2376526..49a0a71f4 100644 --- a/cppignore.lnx +++ b/cppignore.lnx @@ -7,6 +7,7 @@ CppUnit::TestCaller.testPurgeAge CppUnit::TestCaller.testFileAttributes2 CppUnit::TestCaller.testExpand CppUnit::TestCaller.testExpandVariableFromPath +CppUnit::TestCaller.testOldBSD CppUnit::TestCaller.testClock CppUnit::TestCaller.testScheduleAtFixedRate CppUnit::TestCaller.testScheduleInterval diff --git a/cppignore.win b/cppignore.win index ecfca7e59..b038cee01 100644 --- a/cppignore.win +++ b/cppignore.win @@ -20,3 +20,4 @@ class CppUnit::TestCaller.testServiceReturnsTrueIfStopped class CppUnit::TestCaller.testSendToReceiveFrom class CppUnit::TestCaller.testMTU class CppUnit::TestCaller.testCachedSession +class CppUnit::TestCaller.testPollClosedServer diff --git a/poco_env.bash b/poco_env.bash new file mode 100644 index 000000000..756438e6f --- /dev/null +++ b/poco_env.bash @@ -0,0 +1,36 @@ +# usage: +# . env.bash +# or +# source env.bash + +self="${BASH_SOURCE[0]}" + +if [ "$self" == "$0" ] ; then + echo "This file must be sourced from bash, not run." + echo "Usage: . $0" + exit 1 +fi + +if [ -d "$self" ] ; then + basedir="$(cd "$self" || exit; pwd -P)" +else + basedir="$(cd "$(dirname "$self")" || exit; pwd -P)" +fi + +OSNAME="${OSNAME:=$(uname -s)}" +export OSNAME +OSARCH="${OSARCH:=$(uname -m)}" +export OSARCH +POCO_BASE="$basedir" +export POCO_BASE +PATH=$POCO_BASE/lib/$OSNAME/$OSARCH:$POCO_BASE:$PATH +export PATH + +# uncomment for sanitizer builds +#LSAN_OPTIONS=verbosity=1:log_threads=1 +#export LSAN_OPTIONS + +echo "\$OSNAME = $OSNAME" +echo "\$OSARCH = $OSARCH" +echo "\$POCO_BASE = $POCO_BASE" +echo "\$PATH = $PATH" diff --git a/runVSCode.sh b/runVSCode.sh new file mode 100755 index 000000000..b613d8c00 --- /dev/null +++ b/runVSCode.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# +# this script sets the proper build/runtime +# environment before opening poco in vscode + +self="${BASH_SOURCE[0]}" + +if [ -d "$self" ] ; then + basedir="$(cd "$self" || exit; pwd -P)" +else + basedir="$(cd "$(dirname "$self")" || exit; pwd -P)" +fi + +# shellcheck disable=SC1091 +. "$basedir"/poco_env.bash + +code "$basedir" From 0931badc8b57b7b40d7c2219cebbf4dd81c1f686 Mon Sep 17 00:00:00 2001 From: Brian Date: Wed, 18 Oct 2023 16:49:28 -0400 Subject: [PATCH 123/395] Add CodeQL Workflow for Code Security Analysis Add CodeQL Workflow for Code Security Analysis This pull request introduces a CodeQL workflow to enhance the security analysis of our repository. CodeQL is a powerful static analysis tool that helps identify and mitigate security vulnerabilities in our codebase. By integrating this workflow into our GitHub Actions, we can proactively identify and address potential issues before they become security threats. We added a new CodeQL workflow file (.github/workflows/codeql.yml) that - Runs on every pull request (functionality to run on every push to main branches is included as a comment for convenience). - Runs daily. - Excludes queries with a high false positive rate or low-severity findings. - Does not display results for git submodules, focusing only on our own codebase. Testing: To validate the functionality of this workflow, we have run several test scans on the codebase and reviewed the results. The workflow successfully compiles the project, identifies issues, and provides actionable insights while reducing noise by excluding certain queries and third-party code. Deployment: Once this pull request is merged, the CodeQL workflow will be active and automatically run on every push and pull request to the main branch. To view the results of these code scans, please follow these steps: 1. Under the repository name, click on the Security tab. 2. In the left sidebar, click Code scanning alerts. Additional Information: - You can further customize the workflow to adapt to your specific needs by modifying the workflow file. - For more information on CodeQL and how to interpret its results, refer to the GitHub documentation and the CodeQL documentation (https://codeql.github.com/ and https://codeql.github.com/docs/). Signed-off-by: Brian --- .github/workflows/codeql.yml | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index eaa9599bd..3ef873fc8 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -14,11 +14,10 @@ name: "CodeQL" on: push: branches: [ "main", "master" ] - pull_request: - # The branches below must be a subset of the branches above - branches: [ "main", "master" ] schedule: - - cron: '28 21 * * 0' + - cron: '0 0 * * *' + pull_request: + branches: '*' jobs: analyze: @@ -103,21 +102,25 @@ jobs: -**:cpp/suspicious-pointer-scaling -**:cpp/suspicious-pointer-scaling-void -**:cpp/unsigned-comparison-zero - -**/third*party/** - -**/3rd*party/** - -**/external/** + -**/cmake*/Modules/** input: ${{ steps.step1.outputs.sarif-output }}/cpp.sarif output: ${{ steps.step1.outputs.sarif-output }}/cpp.sarif - - name: Upload SARIF + - name: Upload CodeQL results to code scanning uses: github/codeql-action/upload-sarif@v2 with: sarif_file: ${{ steps.step1.outputs.sarif-output }} category: "/language:${{matrix.language}}" - - name: Archive CodeQL results + - name: Upload CodeQL results as an artifact + if: success() || failure() uses: actions/upload-artifact@v3 with: name: codeql-results path: ${{ steps.step1.outputs.sarif-output }} - retention-days: 5 \ No newline at end of file + retention-days: 5 + + - name: Fail if an error is found + run: | + ./.github/workflows/fail_on_error.py \ + ${{ steps.step1.outputs.sarif-output }}/cpp.sarif From feee1650e463611b3e2fae7df16500e3ba7b1e03 Mon Sep 17 00:00:00 2001 From: Andrey Masloboev <48183148+andreymasloboev@users.noreply.github.com> Date: Thu, 19 Oct 2023 14:26:44 +0300 Subject: [PATCH 124/395] fixed infinite loops (#4200) - fixed infinite loops in config utils operation with broken streams - added tests Co-authored-by: Andrey Masloboev --- Util/src/IniFileConfiguration.cpp | 4 ++++ Util/src/PropertyFileConfiguration.cpp | 4 ++++ Util/testsuite/src/IniFileConfigurationTest.cpp | 12 ++++++++++++ Util/testsuite/src/PropertyFileConfigurationTest.cpp | 12 ++++++++++++ 4 files changed, 32 insertions(+) diff --git a/Util/src/IniFileConfiguration.cpp b/Util/src/IniFileConfiguration.cpp index 6e3f5ee4a..1fd31d6ea 100644 --- a/Util/src/IniFileConfiguration.cpp +++ b/Util/src/IniFileConfiguration.cpp @@ -65,6 +65,10 @@ void IniFileConfiguration::load(std::istream& istr) _sectionKey.clear(); while (!istr.eof()) { + if(istr.fail()) + { + throw Poco::IOException("Broken input stream"); + } parseLine(istr); } } diff --git a/Util/src/PropertyFileConfiguration.cpp b/Util/src/PropertyFileConfiguration.cpp index 6e952f570..0e484b9fb 100644 --- a/Util/src/PropertyFileConfiguration.cpp +++ b/Util/src/PropertyFileConfiguration.cpp @@ -58,6 +58,10 @@ void PropertyFileConfiguration::load(std::istream& istr) clear(); while (!istr.eof()) { + if(istr.fail()) + { + throw Poco::IOException("Broken input stream"); + } parseLine(istr); } } diff --git a/Util/testsuite/src/IniFileConfigurationTest.cpp b/Util/testsuite/src/IniFileConfigurationTest.cpp index 9d0243579..c3b456323 100644 --- a/Util/testsuite/src/IniFileConfigurationTest.cpp +++ b/Util/testsuite/src/IniFileConfigurationTest.cpp @@ -87,6 +87,18 @@ void IniFileConfigurationTest::testLoad() assertTrue (std::find(keys.begin(), keys.end(), "section1") != keys.end()); assertTrue (std::find(keys.begin(), keys.end(), "section 2") != keys.end()); assertTrue (std::find(keys.begin(), keys.end(), "Prop1") == keys.end()); + + std::istringstream istr_err(iniFile); + istr_err.putback(std::ios_base::failbit); + try + { + AutoPtr pConf_err = new IniFileConfiguration(istr_err); + } + catch (Poco::IOException& exc) + { + std::string s(exc.message()); + assertTrue (s == "Broken input stream"); + } } diff --git a/Util/testsuite/src/PropertyFileConfigurationTest.cpp b/Util/testsuite/src/PropertyFileConfigurationTest.cpp index d073712ae..e23f155dc 100644 --- a/Util/testsuite/src/PropertyFileConfigurationTest.cpp +++ b/Util/testsuite/src/PropertyFileConfigurationTest.cpp @@ -85,6 +85,18 @@ void PropertyFileConfigurationTest::testLoad() catch (NotFoundException&) { } + + std::istringstream istr_err(propFile); + istr_err.putback(std::ios_base::failbit); + try + { + AutoPtr pConf_err = new PropertyFileConfiguration(istr_err); + } + catch (Poco::IOException& exc) + { + std::string s(exc.message()); + assertTrue (s == "Broken input stream"); + } } From 11e72ca083628e4993b1f48a0d58cfb186d85b8a Mon Sep 17 00:00:00 2001 From: Brian Date: Fri, 20 Oct 2023 01:02:05 -0400 Subject: [PATCH 125/395] Add CodeQL Workflow for Code Security Analysis Add CodeQL Workflow for Code Security Analysis This pull request introduces a CodeQL workflow to enhance the security analysis of our repository. CodeQL is a powerful static analysis tool that helps identify and mitigate security vulnerabilities in our codebase. By integrating this workflow into our GitHub Actions, we can proactively identify and address potential issues before they become security threats. We added a new CodeQL workflow file (.github/workflows/codeql.yml) that - Runs on every pull request (functionality to run on every push to main branches is included as a comment for convenience). - Runs daily. - Excludes queries with a high false positive rate or low-severity findings. - Does not display results for git submodules, focusing only on our own codebase. Testing: To validate the functionality of this workflow, we have run several test scans on the codebase and reviewed the results. The workflow successfully compiles the project, identifies issues, and provides actionable insights while reducing noise by excluding certain queries and third-party code. Deployment: Once this pull request is merged, the CodeQL workflow will be active and automatically run on every push and pull request to the main branch. To view the results of these code scans, please follow these steps: 1. Under the repository name, click on the Security tab. 2. In the left sidebar, click Code scanning alerts. Additional Information: - You can further customize the workflow to adapt to your specific needs by modifying the workflow file. - For more information on CodeQL and how to interpret its results, refer to the GitHub documentation and the CodeQL documentation (https://codeql.github.com/ and https://codeql.github.com/docs/). Signed-off-by: Brian --- .github/workflows/fail_on_error.py | 34 ++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 .github/workflows/fail_on_error.py diff --git a/.github/workflows/fail_on_error.py b/.github/workflows/fail_on_error.py new file mode 100755 index 000000000..29791742b --- /dev/null +++ b/.github/workflows/fail_on_error.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python3 + +import json +import sys + +# Return whether SARIF file contains error-level results +def codeql_sarif_contain_error(filename): + with open(filename, 'r') as f: + s = json.load(f) + + for run in s.get('runs', []): + rules_metadata = run['tool']['driver']['rules'] + if not rules_metadata: + rules_metadata = run['tool']['extensions'][0]['rules'] + + for res in run.get('results', []): + if 'ruleIndex' in res: + rule_index = res['ruleIndex'] + elif 'rule' in res and 'index' in res['rule']: + rule_index = res['rule']['index'] + else: + continue + try: + rule_level = rules_metadata[rule_index]['defaultConfiguration']['level'] + except IndexError as e: + print(e, rule_index, len(rules_metadata)) + else: + if rule_level == 'error': + return True + return False + +if __name__ == "__main__": + if codeql_sarif_contain_error(sys.argv[1]): + sys.exit(1) From 542b814f271ab904c8539b82142f983c72cacadc Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Fri, 20 Oct 2023 17:21:13 +0200 Subject: [PATCH 126/395] CMake: Use CMAKE_INSTALL_* variables from GNUInstallDirs to install libraries, binaries and other files according to GNUInstallDirs rules. (#4190) --- ActiveRecord/Compiler/CMakeLists.txt | 10 +++++----- Encodings/Compiler/CMakeLists.txt | 10 +++++----- PageCompiler/CMakeLists.txt | 10 +++++----- PageCompiler/File2Page/CMakeLists.txt | 10 +++++----- PocoDoc/CMakeLists.txt | 10 +++++----- cmake/PocoMacros.cmake | 12 ++++++------ 6 files changed, 31 insertions(+), 31 deletions(-) diff --git a/ActiveRecord/Compiler/CMakeLists.txt b/ActiveRecord/Compiler/CMakeLists.txt index db14efd63..e78e2fcc4 100644 --- a/ActiveRecord/Compiler/CMakeLists.txt +++ b/ActiveRecord/Compiler/CMakeLists.txt @@ -18,9 +18,9 @@ target_link_libraries(ActiveRecordCompiler PUBLIC Poco::Foundation Poco::Util) install( TARGETS ActiveRecordCompiler EXPORT "ActiveRecordCompiler" - LIBRARY DESTINATION lib${LIB_SUFFIX} - ARCHIVE DESTINATION lib${LIB_SUFFIX} - RUNTIME DESTINATION bin - BUNDLE DESTINATION bin - INCLUDES DESTINATION include + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) diff --git a/Encodings/Compiler/CMakeLists.txt b/Encodings/Compiler/CMakeLists.txt index fa4e85b9a..8c404ed0e 100644 --- a/Encodings/Compiler/CMakeLists.txt +++ b/Encodings/Compiler/CMakeLists.txt @@ -12,9 +12,9 @@ target_link_libraries(EncodingsCompiler PUBLIC Poco::Net Poco::Util) install( TARGETS EncodingsCompiler EXPORT "EncodingsCompilerTargets" - LIBRARY DESTINATION lib${LIB_SUFFIX} - ARCHIVE DESTINATION lib${LIB_SUFFIX} - RUNTIME DESTINATION bin - BUNDLE DESTINATION bin - INCLUDES DESTINATION include + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) diff --git a/PageCompiler/CMakeLists.txt b/PageCompiler/CMakeLists.txt index 48379ebdc..050419f9a 100644 --- a/PageCompiler/CMakeLists.txt +++ b/PageCompiler/CMakeLists.txt @@ -20,9 +20,9 @@ target_link_libraries(PageCompiler PUBLIC Poco::Net Poco::Util) install( TARGETS PageCompiler EXPORT PageCompilerTargets - LIBRARY DESTINATION lib${LIB_SUFFIX} - ARCHIVE DESTINATION lib${LIB_SUFFIX} - RUNTIME DESTINATION bin - BUNDLE DESTINATION bin - INCLUDES DESTINATION include + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) diff --git a/PageCompiler/File2Page/CMakeLists.txt b/PageCompiler/File2Page/CMakeLists.txt index 6b692576b..8590a2ba3 100644 --- a/PageCompiler/File2Page/CMakeLists.txt +++ b/PageCompiler/File2Page/CMakeLists.txt @@ -18,9 +18,9 @@ target_link_libraries(File2Page PUBLIC Poco::Util) install( TARGETS File2Page EXPORT File2PageTargets - LIBRARY DESTINATION lib${LIB_SUFFIX} - ARCHIVE DESTINATION lib${LIB_SUFFIX} - RUNTIME DESTINATION bin - BUNDLE DESTINATION bin - INCLUDES DESTINATION include + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) diff --git a/PocoDoc/CMakeLists.txt b/PocoDoc/CMakeLists.txt index 49ad7b4e5..6aea654d5 100644 --- a/PocoDoc/CMakeLists.txt +++ b/PocoDoc/CMakeLists.txt @@ -8,9 +8,9 @@ target_link_libraries(PocoDoc PUBLIC Poco::Util Poco::XML Poco::CppParser) install( TARGETS PocoDoc EXPORT PocoDocTargets - LIBRARY DESTINATION lib${LIB_SUFFIX} - ARCHIVE DESTINATION lib${LIB_SUFFIX} - RUNTIME DESTINATION bin - BUNDLE DESTINATION bin - INCLUDES DESTINATION include + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) diff --git a/cmake/PocoMacros.cmake b/cmake/PocoMacros.cmake index 0ef354e9e..e37473e2d 100644 --- a/cmake/PocoMacros.cmake +++ b/cmake/PocoMacros.cmake @@ -271,11 +271,11 @@ install( install( TARGETS "${target_name}" EXPORT "${target_name}Targets" - LIBRARY DESTINATION lib${LIB_SUFFIX} - ARCHIVE DESTINATION lib${LIB_SUFFIX} - RUNTIME DESTINATION bin - BUNDLE DESTINATION bin - INCLUDES DESTINATION include + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) if(MSVC) @@ -297,7 +297,7 @@ macro(POCO_INSTALL_PDB target_name) if("${type}" STREQUAL "SHARED_LIBRARY" OR "${type}" STREQUAL "EXECUTABLE") install( FILES $ - DESTINATION bin + DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT Devel OPTIONAL ) From 3793c0a515a0b7e70ee29a2d9c637d5d9e506f5b Mon Sep 17 00:00:00 2001 From: omerbrandis Date: Fri, 20 Oct 2023 18:44:04 +0300 Subject: [PATCH 127/395] added new memeber SqlState to PostgreSQLException and made use of it. (#4099) * added new memeber SqlState to PostgreSQLException and made use of it in StatementExecutor * Added test case testSqlState * fixed nameing convention errors. fixed bug in PostgreSQLException::PostgreSQLException regarding null termination of _sqlState data member --- .../Data/PostgreSQL/PostgreSQLException.h | 23 +++++++++++++++++++ Data/PostgreSQL/src/PostgreSQLException.cpp | 22 +++++++++++++++++- Data/PostgreSQL/src/StatementExecutor.cpp | 18 +++++++++++---- .../testsuite/src/PostgreSQLTest.cpp | 15 ++++++++++++ .../PostgreSQL/testsuite/src/PostgreSQLTest.h | 6 +++-- 5 files changed, 77 insertions(+), 7 deletions(-) diff --git a/Data/PostgreSQL/include/Poco/Data/PostgreSQL/PostgreSQLException.h b/Data/PostgreSQL/include/Poco/Data/PostgreSQL/PostgreSQLException.h index 4a7216ba2..d8194be80 100644 --- a/Data/PostgreSQL/include/Poco/Data/PostgreSQL/PostgreSQLException.h +++ b/Data/PostgreSQL/include/Poco/Data/PostgreSQL/PostgreSQLException.h @@ -36,6 +36,11 @@ public: explicit PostgreSQLException(const std::string& aMessage); /// Creates PostgreSQLException. + + explicit PostgreSQLException(const std::string& aMessage,const char * pAnSqlState); + /// Creates PostgreSQLException. + + PostgreSQLException(const PostgreSQLException& exc); /// Creates PostgreSQLException. @@ -63,6 +68,13 @@ public: /// This is useful for temporarily storing a /// copy of an exception (see clone()), then /// throwing it again. + + const char* sqlState() const noexcept; + /// Returns the SqlState + + +private: + char _sqlState[6]; }; @@ -90,6 +102,10 @@ class StatementException: public PostgreSQLException public: StatementException(const std::string& aMessage); /// Creates StatementException from string. + + StatementException(const std::string& aMessage,const char* pAnSqlState); + /// Creates StatementException from string with support for sqlState. + }; @@ -129,6 +145,13 @@ inline void PostgreSQLException::rethrow() const } +inline const char* PostgreSQLException::sqlState() const noexcept +{ + return _sqlState; +} + + + } } } // namespace Poco::Data::PostgreSQL diff --git a/Data/PostgreSQL/src/PostgreSQLException.cpp b/Data/PostgreSQL/src/PostgreSQLException.cpp index fcef61d5d..e542c9059 100644 --- a/Data/PostgreSQL/src/PostgreSQLException.cpp +++ b/Data/PostgreSQL/src/PostgreSQLException.cpp @@ -13,7 +13,7 @@ #include "Poco/Data/PostgreSQL/PostgreSQLException.h" - +#include namespace Poco { namespace Data { @@ -25,6 +25,19 @@ PostgreSQLException::PostgreSQLException(const std::string& aMessage): { } +PostgreSQLException::PostgreSQLException(const std::string& aMessage,const char* pAnSqlState): + Poco::Data::DataException(std::string("[PostgreSQL]: ") + aMessage) +{ + // handle anSqlState + if (pAnSqlState == nullptr) _sqlState[0] = '\0'; + else + { + strncpy(_sqlState,pAnSqlState,5); + _sqlState[5] = '\0'; + } + +} + PostgreSQLException::PostgreSQLException(const PostgreSQLException& anException): Poco::Data::DataException(anException) @@ -68,5 +81,12 @@ StatementException::StatementException(const std::string& aMessage): { } +StatementException::StatementException(const std::string& aMessage,const char* pAnSqlState): + PostgreSQLException(aMessage,pAnSqlState) +{ +} + + + } } } // namespace Poco::Data::PostgreSQL diff --git a/Data/PostgreSQL/src/StatementExecutor.cpp b/Data/PostgreSQL/src/StatementExecutor.cpp index 7d9d3f7b0..cdf09ef2a 100644 --- a/Data/PostgreSQL/src/StatementExecutor.cpp +++ b/Data/PostgreSQL/src/StatementExecutor.cpp @@ -143,13 +143,18 @@ void StatementExecutor::prepare(const std::string& aSQLStatement) } { + // get the sqlState + const char* pSQLState = PQresultErrorField(ptrPGResult, PG_DIAG_SQLSTATE); + // setup to clear the result from PQprepare PQResultClear resultClearer(ptrPGResult); - if (!ptrPGResult || PQresultStatus(ptrPGResult) != PGRES_COMMAND_OK) + // + if (!ptrPGResult || PQresultStatus(ptrPGResult) != PGRES_COMMAND_OK ) { - throw StatementException(std::string("postgresql_stmt_prepare error: ") + PQresultErrorMessage (ptrPGResult) + " " + aSQLStatement); + throw StatementException(std::string("postgresql_stmt_prepare error: ") + PQresultErrorMessage (ptrPGResult) + " " + aSQLStatement,pSQLState); } + } // Determine what the structure of a statement result will look like @@ -159,11 +164,15 @@ void StatementExecutor::prepare(const std::string& aSQLStatement) } { + // get the sqlState + const char* pSQLState = PQresultErrorField(ptrPGResult, PG_DIAG_SQLSTATE); + PQResultClear resultClearer(ptrPGResult); + if (!ptrPGResult || PQresultStatus(ptrPGResult) != PGRES_COMMAND_OK) { throw StatementException(std::string("postgresql_stmt_describe error: ") + - PQresultErrorMessage (ptrPGResult) + " " + aSQLStatement); + PQresultErrorMessage (ptrPGResult) + " " + aSQLStatement,pSQLState); } // remember the structure of the statement result @@ -270,13 +279,14 @@ void StatementExecutor::execute() const char* pHint = PQresultErrorField(ptrPGResult, PG_DIAG_MESSAGE_HINT); const char* pConstraint = PQresultErrorField(ptrPGResult, PG_DIAG_CONSTRAINT_NAME); + throw StatementException(std::string("postgresql_stmt_execute error: ") + PQresultErrorMessage (ptrPGResult) + " Severity: " + (pSeverity ? pSeverity : "N/A") + " State: " + (pSQLState ? pSQLState : "N/A") + " Detail: " + (pDetail ? pDetail : "N/A") + " Hint: " + (pHint ? pHint : "N/A") - + " Constraint: " + (pConstraint ? pConstraint : "N/A")); + + " Constraint: " + (pConstraint ? pConstraint : "N/A"),pSQLState); } _pResultHandle = ptrPGResult; diff --git a/Data/PostgreSQL/testsuite/src/PostgreSQLTest.cpp b/Data/PostgreSQL/testsuite/src/PostgreSQLTest.cpp index 4e788a018..cb17b8463 100644 --- a/Data/PostgreSQL/testsuite/src/PostgreSQLTest.cpp +++ b/Data/PostgreSQL/testsuite/src/PostgreSQLTest.cpp @@ -765,6 +765,20 @@ void PostgreSQLTest::testReconnect() } +void PostgreSQLTest::testSqlState() +{ + if (!_pSession) fail ("Test not available."); + + try + { + *_pSession << "syntax error", now; + } + catch (const Poco::Data::PostgreSQL::PostgreSQLException & exception) + { + assertTrue(exception.sqlState() == std::string("42601")); + } +} + void PostgreSQLTest::testNullableInt() { if (!_pSession) fail ("Test not available."); @@ -1271,6 +1285,7 @@ CppUnit::Test* PostgreSQLTest::suite() CppUnit_addTest(pSuite, PostgreSQLTest, testNullableInt); CppUnit_addTest(pSuite, PostgreSQLTest, testNullableString); CppUnit_addTest(pSuite, PostgreSQLTest, testTupleWithNullable); + CppUnit_addTest(pSuite, PostgreSQLTest, testSqlState); CppUnit_addTest(pSuite, PostgreSQLTest, testBinarySimpleAccess); CppUnit_addTest(pSuite, PostgreSQLTest, testBinaryComplexType); diff --git a/Data/PostgreSQL/testsuite/src/PostgreSQLTest.h b/Data/PostgreSQL/testsuite/src/PostgreSQLTest.h index a7c3d9d00..9f2158830 100644 --- a/Data/PostgreSQL/testsuite/src/PostgreSQLTest.h +++ b/Data/PostgreSQL/testsuite/src/PostgreSQLTest.h @@ -27,8 +27,8 @@ class PostgreSQLTest: public CppUnit::TestCase /// /// Driver | DB | OS /// ----------------+---------------------------+------------------------------------------ - /// 03.51.12.00 | PostgreSQL 9.3.1.0(18) | Mac OSX 10.9.1 - /// + /// 03.51.12.00 | PostgreSQL 9.3.1.0(18) | Mac OSX 10.9.1 + /// | PostgreSQL 15.3 | Ubuntu 16.04 { public: @@ -113,6 +113,8 @@ public: void testReconnect(); + void testSqlState(); + void setUp(); void tearDown(); From 39e2da88d535b4ece5c1d4ff004c1405fecf41e0 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Sat, 21 Oct 2023 17:39:36 +0200 Subject: [PATCH 128/395] fix(ci): PollSetTest::testPollClosedServer() intermittently fails #4205 --- .github/workflows/ci.yml | 2 +- Net/testsuite/src/PollSetTest.cpp | 42 +++++++++++++++++++++---------- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e635cdf0f..140433953 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -132,7 +132,7 @@ jobs: CppUnit::TestCaller.testAccessExpireN, CppUnit::TestCaller.testExpireN, CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testPollClosedServer" + CppUnit::TestCaller.testOldBSD" EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" ./ci/runtests.sh diff --git a/Net/testsuite/src/PollSetTest.cpp b/Net/testsuite/src/PollSetTest.cpp index 0f125060f..eb4bd9277 100644 --- a/Net/testsuite/src/PollSetTest.cpp +++ b/Net/testsuite/src/PollSetTest.cpp @@ -338,15 +338,19 @@ void PollSetTest::testPollNoServer() assertTrue(ps.has(ss1)); assertTrue(ps.has(ss2)); PollSet::SocketModeMap sm; + int signalled = 0; Stopwatch sw; sw.start(); do { sm = ps.poll(Timespan(1000000)); + for (auto s : sm) + assertTrue(0 != (s.second & PollSet::POLL_ERROR)); + + signalled += static_cast(sm.size()); if (sw.elapsedSeconds() > 10) fail(); - } while (sm.size() < 2); - assertTrue(sm.size() == 2); - for (auto s : sm) - assertTrue(0 != (s.second & PollSet::POLL_ERROR)); + } while (signalled < 2); + assertTrue(signalled == 2); + } @@ -359,6 +363,7 @@ void PollSetTest::testPollClosedServer() ss1.connect(SocketAddress("127.0.0.1", echoServer1.port())); ss2.connect(SocketAddress("127.0.0.1", echoServer2.port())); + PollSet ps; assertTrue(ps.empty()); ps.add(ss1, PollSet::POLL_READ); @@ -367,22 +372,33 @@ void PollSetTest::testPollClosedServer() assertTrue(ps.has(ss1)); assertTrue(ps.has(ss2)); + std::string str = "HELLO"; + int len = static_cast(str.length()); + echoServer1.stop(); - ss1.sendBytes("HELLO", 5); + // echoServer is blocked waiting for data, send some + assertTrue (len == ss1.sendBytes(str.data(), len)); + // the stop flag should kick in, wait for it ... while (!echoServer1.done()) Thread::sleep(10); + echoServer2.stop(); - ss2.sendBytes("HELLO", 5); + assertTrue (len == ss2.sendBytes(str.data(), len)); while (!echoServer2.done()) Thread::sleep(10); - PollSet::SocketModeMap sm; + + int signalled = 0; Stopwatch sw; sw.start(); do { - sm = ps.poll(Timespan(1000000)); - if (sw.elapsedSeconds() > 10) fail(); - } while (sm.size() < 2); - assertTrue(sm.size() == 2); - assertTrue(0 == ss1.receiveBytes(0, 0)); - assertTrue(0 == ss2.receiveBytes(0, 0)); + signalled += static_cast(ps.poll(Timespan(1000000)).size()); + int secs = sw.elapsedSeconds(); + if (secs > 10) + fail(Poco::format("timed out after %ds, sockets signalled=%z (expected 2)", secs, signalled), __LINE__); + } while (signalled < 2); + + assertTrue(signalled == 2); + // socket closed or error + assertTrue(0 >= ss1.receiveBytes(0, 0)); + assertTrue(0 >= ss2.receiveBytes(0, 0)); } From d640c659a250c7157b28efe35ec6808dcf4e0ff3 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Sat, 21 Oct 2023 16:22:44 +0200 Subject: [PATCH 129/395] PollSet filters out some events #4194 --- Net/src/PollSet.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Net/src/PollSet.cpp b/Net/src/PollSet.cpp index a1b819201..80b4a6723 100644 --- a/Net/src/PollSet.cpp +++ b/Net/src/PollSet.cpp @@ -207,9 +207,9 @@ public: SocketMap::iterator it = _socketMap.find(_events[i].data.ptr); if (it != _socketMap.end()) { - if (_events[i].events & EPOLLIN) + if (_events[i].events & (EPOLLIN | EPOLLRDNORM | EPOLLHUP)) result[it->second.first] |= PollSet::POLL_READ; - if (_events[i].events & EPOLLOUT) + if (_events[i].events & (EPOLLOUT | EPOLLWRNORM)) result[it->second.first] |= PollSet::POLL_WRITE; if (_events[i].events & EPOLLERR) result[it->second.first] |= PollSet::POLL_ERROR; From c0f7257ccd74da6667adff4cd2bb7533af7a2309 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Sat, 21 Oct 2023 19:15:57 +0200 Subject: [PATCH 130/395] chore: eliminate some compile warnings --- Foundation/src/RegularExpression.cpp | 4 ++-- Foundation/testsuite/src/HMACEngineTest.cpp | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Foundation/src/RegularExpression.cpp b/Foundation/src/RegularExpression.cpp index 0ab0cefb8..d07628328 100644 --- a/Foundation/src/RegularExpression.cpp +++ b/Foundation/src/RegularExpression.cpp @@ -323,8 +323,8 @@ std::string::size_type RegularExpression::substOne(std::string& subject, std::st int c = d - '0'; if (c < rc) { - int o = ovec[c*2]; - int l = ovec[c*2 + 1] - o; + std::size_t o = ovec[c*2]; + std::size_t l = ovec[c*2 + 1] - o; result.append(subject, o, l); } } diff --git a/Foundation/testsuite/src/HMACEngineTest.cpp b/Foundation/testsuite/src/HMACEngineTest.cpp index be6a34e54..f5a15a1b0 100644 --- a/Foundation/testsuite/src/HMACEngineTest.cpp +++ b/Foundation/testsuite/src/HMACEngineTest.cpp @@ -94,7 +94,7 @@ void HMACEngineTest::testHMAC_SHA2_224() 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19 }; key = std::string(str.begin(), str.end()); // 25 bytes - data = std::string(50, 0xcd); + data = std::string(50, (char)0xcd); HMACEngine hmac4(key); hmac4.update(data); digest = DigestEngine::digestToHex(hmac4.digest()); @@ -131,7 +131,7 @@ void HMACEngineTest::testHMAC_SHA2_224() digest = DigestEngine::digestToHex(d, d.size()+1); fail("Invalid digest length, must throw."); } - catch(const Poco::InvalidArgumentException& e) {} + catch(const Poco::InvalidArgumentException&) {} } @@ -166,7 +166,7 @@ void HMACEngineTest::testHMAC_SHA2_256() 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19 }; key = std::string(str.begin(), str.end()); // 25 bytes - data = std::string(50, 0xcd); + data = std::string(50, (char)0xcd); HMACEngine hmac4(key); hmac4.update(data); digest = DigestEngine::digestToHex(hmac4.digest()); @@ -203,7 +203,7 @@ void HMACEngineTest::testHMAC_SHA2_256() digest = DigestEngine::digestToHex(d, d.size()+1); fail("Invalid digest length, must throw."); } - catch(const Poco::InvalidArgumentException& e) {} + catch(const Poco::InvalidArgumentException&) {} } @@ -244,7 +244,7 @@ void HMACEngineTest::testHMAC_SHA2_384() 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19 }; key = std::string(str.begin(), str.end()); // 25 bytes - data = std::string(50, 0xcd); + data = std::string(50, (char)0xcd); HMACEngine hmac4(key); hmac4.update(data); digest = DigestEngine::digestToHex(hmac4.digest()); @@ -287,7 +287,7 @@ void HMACEngineTest::testHMAC_SHA2_384() digest = DigestEngine::digestToHex(d, d.size()+1); fail("Invalid digest length, must throw."); } - catch(const Poco::InvalidArgumentException& e) {} + catch(const Poco::InvalidArgumentException&) {} } @@ -331,7 +331,7 @@ void HMACEngineTest::testHMAC_SHA2_512() 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19 }; key = std::string(str.begin(), str.end()); // 25 bytes - data = std::string(50, 0xcd); + data = std::string(50, (char)0xcd); HMACEngine hmac4(key); hmac4.update(data); digest = DigestEngine::digestToHex(hmac4.digest()); @@ -377,7 +377,7 @@ void HMACEngineTest::testHMAC_SHA2_512() digest = DigestEngine::digestToHex(d, d.size()+1); fail("Invalid digest length, must throw."); } - catch(const Poco::InvalidArgumentException& e) {} + catch(const Poco::InvalidArgumentException&) {} } From de04b9eac79880021c5bd33c3682fdfb9579f4fd Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Sat, 21 Oct 2023 19:35:47 +0200 Subject: [PATCH 131/395] fix(ci): PollSetTest::testPollNoServer() #4205 --- Net/testsuite/src/PollSetTest.cpp | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/Net/testsuite/src/PollSetTest.cpp b/Net/testsuite/src/PollSetTest.cpp index eb4bd9277..05701af3b 100644 --- a/Net/testsuite/src/PollSetTest.cpp +++ b/Net/testsuite/src/PollSetTest.cpp @@ -347,7 +347,14 @@ void PollSetTest::testPollNoServer() assertTrue(0 != (s.second & PollSet::POLL_ERROR)); signalled += static_cast(sm.size()); - if (sw.elapsedSeconds() > 10) fail(); + sm.clear(); + int secs = sw.elapsedSeconds(); + if (secs > 10) + { + fail(Poco::format("testPollNoServer() timed out after %ds, " + "sockets signalled=%d (expected 2)", + secs, signalled), __LINE__); + } } while (signalled < 2); assertTrue(signalled == 2); @@ -379,20 +386,34 @@ void PollSetTest::testPollClosedServer() // echoServer is blocked waiting for data, send some assertTrue (len == ss1.sendBytes(str.data(), len)); // the stop flag should kick in, wait for it ... - while (!echoServer1.done()) Thread::sleep(10); + Stopwatch sw; sw.start(); + while (!echoServer1.done()) + { + Thread::sleep(10); + int secs = sw.elapsedSeconds(); + if (secs > 10) + { + fail(Poco::format("testPollClosedServer() timed out " + "waiting on server after %ds", secs), __LINE__); + } + } echoServer2.stop(); assertTrue (len == ss2.sendBytes(str.data(), len)); while (!echoServer2.done()) Thread::sleep(10); int signalled = 0; - Stopwatch sw; sw.start(); + sw.restart(); do { signalled += static_cast(ps.poll(Timespan(1000000)).size()); int secs = sw.elapsedSeconds(); if (secs > 10) - fail(Poco::format("timed out after %ds, sockets signalled=%z (expected 2)", secs, signalled), __LINE__); + { + fail(Poco::format("testPollClosedServer() timed out waiting on " + "signalled sockets after %ds, sockets signalled=%d (expected 2)", + secs, signalled), __LINE__); + } } while (signalled < 2); assertTrue(signalled == 2); From 5131fe1c15a10e5eee1558dffaced3adb21d77fa Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Sun, 22 Oct 2023 12:53:54 +0200 Subject: [PATCH 132/395] fix(Poco::Data): fixes and improvements #4198 (#4199) * fix(Poco::Data): fixes and improvements #4198 * chore: remove inadvertently commited garbage file * fix(SQLite): SQLChannel tests #4198 * fix(Data::SessionPool): Improve Data::SessionPool thread safety #4206 --- Data/ODBC/include/Poco/Data/ODBC/Binder.h | 75 +- .../include/Poco/Data/ODBC/ConnectionHandle.h | 55 +- .../ODBC/include/Poco/Data/ODBC/Diagnostics.h | 2 + .../Poco/Data/ODBC/EnvironmentHandle.h | 1 - Data/ODBC/include/Poco/Data/ODBC/Extractor.h | 4 +- .../Poco/Data/ODBC/ODBCStatementImpl.h | 34 +- Data/ODBC/include/Poco/Data/ODBC/Preparator.h | 8 +- .../ODBC/include/Poco/Data/ODBC/SessionImpl.h | 38 +- Data/ODBC/include/Poco/Data/ODBC/TypeInfo.h | 4 +- Data/ODBC/src/Binder.cpp | 98 +-- Data/ODBC/src/ConnectionHandle.cpp | 133 +++- Data/ODBC/src/EnvironmentHandle.cpp | 25 +- Data/ODBC/src/Extractor.cpp | 19 +- Data/ODBC/src/ODBCMetaColumn.cpp | 6 +- Data/ODBC/src/ODBCStatementImpl.cpp | 115 ++- Data/ODBC/src/Parameter.cpp | 2 +- Data/ODBC/src/Preparator.cpp | 7 +- Data/ODBC/src/SessionImpl.cpp | 178 +++-- Data/ODBC/src/TypeInfo.cpp | 11 +- Data/ODBC/testsuite/src/ODBCDB2Test.cpp | 3 + Data/ODBC/testsuite/src/ODBCMySQLTest.cpp | 3 + Data/ODBC/testsuite/src/ODBCOracleTest.cpp | 3 + .../ODBC/testsuite/src/ODBCPostgreSQLTest.cpp | 3 + Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp | 648 ++++++++++------- Data/ODBC/testsuite/src/ODBCSQLServerTest.h | 16 +- Data/ODBC/testsuite/src/ODBCSQLiteTest.cpp | 3 + Data/ODBC/testsuite/src/ODBCTest.cpp | 35 +- Data/ODBC/testsuite/src/ODBCTest.h | 8 +- Data/ODBC/testsuite/src/SQLExecutor.cpp | 669 +++++++++++++++++- Data/ODBC/testsuite/src/SQLExecutor.h | 18 +- Data/SQLite/src/SessionImpl.cpp | 5 - Data/SQLite/src/Utility.cpp | 1 + Data/SQLite/testsuite/src/SQLiteTest.cpp | 125 ++-- Data/include/Poco/Data/AbstractSessionImpl.h | 20 + Data/include/Poco/Data/ArchiveStrategy.h | 3 +- Data/include/Poco/Data/PooledSessionImpl.h | 2 + Data/include/Poco/Data/Preparation.h | 3 +- Data/include/Poco/Data/RecordSet.h | 3 + Data/include/Poco/Data/SQLChannel.h | 186 +++-- Data/include/Poco/Data/Session.h | 17 + Data/include/Poco/Data/SessionImpl.h | 11 + Data/include/Poco/Data/SessionPool.h | 30 +- Data/include/Poco/Data/Statement.h | 10 + Data/include/Poco/Data/Transaction.h | 20 +- Data/src/ArchiveStrategy.cpp | 4 +- Data/src/PooledSessionImpl.cpp | 12 + Data/src/RecordSet.cpp | 9 +- Data/src/SQLChannel.cpp | 496 +++++++++++-- Data/src/SessionPool.cpp | 34 +- Data/src/Transaction.cpp | 21 +- build/config/Linux | 7 +- 51 files changed, 2462 insertions(+), 781 deletions(-) diff --git a/Data/ODBC/include/Poco/Data/ODBC/Binder.h b/Data/ODBC/include/Poco/Data/ODBC/Binder.h index 92fc6f1ed..0b34295fc 100644 --- a/Data/ODBC/include/Poco/Data/ODBC/Binder.h +++ b/Data/ODBC/include/Poco/Data/ODBC/Binder.h @@ -407,7 +407,7 @@ private: decDigits, (SQLPOINTER) &val, 0, 0))) { - throw StatementException(_rStmt, "SQLBindParameter()"); + throw StatementException(_rStmt, "ODBC::Binder::SQLBindParameter()"); } } @@ -436,14 +436,14 @@ private: (SQLUSMALLINT) pos + 1, SQL_PARAM_INPUT, SQL_C_BINARY, - SQL_LONGVARBINARY, + Utility::sqlDataType(SQL_C_BINARY), columnSize, 0, pVal, (SQLINTEGER) size, _lengthIndicator.back()))) { - throw StatementException(_rStmt, "SQLBindParameter(LOB)"); + throw StatementException(_rStmt, "ODBC::Binder::SQLBindParameter(LOB)"); } } @@ -476,7 +476,7 @@ private: 0, &(*_vecLengthIndicator[pos])[0]))) { - throw StatementException(_rStmt, "SQLBindParameter()"); + throw StatementException(_rStmt, "ODBC::Binder::SQLBindParameter()"); } } @@ -537,7 +537,7 @@ private: 0, &(*_vecLengthIndicator[pos])[0]))) { - throw StatementException(_rStmt, "SQLBindParameter()"); + throw StatementException(_rStmt, "ODBC::Binder::SQLBindParameter()"); } } @@ -577,7 +577,7 @@ private: if (size == _maxFieldSize) { getMinValueSize(*pVal, size); - // accomodate for terminating zero + // accommodate for terminating zero if (size != _maxFieldSize) ++size; } @@ -614,14 +614,14 @@ private: (SQLUSMALLINT) pos + 1, toODBCDirection(dir), SQL_C_CHAR, - SQL_LONGVARCHAR, + Utility::sqlDataType(SQL_C_CHAR), (SQLUINTEGER) size - 1, 0, _charPtrs[pos], (SQLINTEGER) size, &(*_vecLengthIndicator[pos])[0]))) { - throw StatementException(_rStmt, Poco::format("SQLBindParameter(%s)", typeID)); + throw StatementException(_rStmt, "SQLBindParameter(std::vector)"); } } @@ -672,7 +672,7 @@ private: { strSize = it->size() * sizeof(UTF16Char); if (strSize > size) - throw LengthExceededException("SQLBindParameter(std::vector)"); + throw LengthExceededException("ODBC::Binder::bindImplContainerUTF16String:SQLBindParameter(std::vector)"); std::memcpy(pBuf + offset, it->data(), strSize); offset += size; } @@ -681,14 +681,14 @@ private: (SQLUSMALLINT)pos + 1, toODBCDirection(dir), SQL_C_WCHAR, - SQL_WLONGVARCHAR, + Utility::sqlDataType(SQL_C_WCHAR), (SQLUINTEGER)size - 1, 0, _utf16CharPtrs[pos], (SQLINTEGER)size, &(*_vecLengthIndicator[pos])[0]))) { - throw StatementException(_rStmt, "SQLBindParameter(std::vector)"); + throw StatementException(_rStmt, "ODBC::Binder::bindImplContainerUTF16String:SQLBindParameter(std::vector)"); } } @@ -699,14 +699,14 @@ private: typedef typename LOBType::ValueType CharType; if (isOutBound(dir) || !isInBound(dir)) - throw NotImplementedException("BLOB container parameter type can only be inbound."); + throw NotImplementedException("ODBC::Binder::bindImplContainerLOB():BLOB container parameter type can only be inbound."); if (PB_IMMEDIATE != _paramBinding) - throw InvalidAccessException("Containers can only be bound immediately."); + throw InvalidAccessException("ODBC::Binder::bindImplContainerLOB():Containers can only be bound immediately."); std::size_t length = val.size(); if (0 == length) - throw InvalidArgumentException("Empty container not allowed."); + throw InvalidArgumentException("ODBC::Binder::bindImplContainerLOB():Empty container not allowed."); setParamSetSize(length); @@ -742,7 +742,7 @@ private: { blobSize = cIt->size(); if (blobSize > size) - throw LengthExceededException("SQLBindParameter(std::vector)"); + throw LengthExceededException("ODBC::Binder::bindImplContainerLOB():SQLBindParameter(std::vector)"); std::memcpy(_charPtrs[pos] + offset, cIt->rawContent(), blobSize * sizeof(CharType)); offset += size; } @@ -751,14 +751,14 @@ private: (SQLUSMALLINT) pos + 1, SQL_PARAM_INPUT, SQL_C_BINARY, - SQL_LONGVARBINARY, + Utility::sqlDataType(SQL_C_BINARY), (SQLUINTEGER) size, 0, _charPtrs[pos], (SQLINTEGER) size, &(*_vecLengthIndicator[pos])[0]))) { - throw StatementException(_rStmt, "SQLBindParameter(std::vector)"); + throw StatementException(_rStmt, "ODBC::Binder::bindImplContainerLOB():SQLBindParameter(std::vector)"); } } @@ -766,15 +766,15 @@ private: void bindImplContainerDate(std::size_t pos, const C& val, Direction dir) { if (isOutBound(dir) || !isInBound(dir)) - throw NotImplementedException("Date vector parameter type can only be inbound."); + throw NotImplementedException("ODBC::Binder::bindImplContainerDate():Date vector parameter type can only be inbound."); if (PB_IMMEDIATE != _paramBinding) - throw InvalidAccessException("std::vector can only be bound immediately."); + throw InvalidAccessException("ODBC::Binder::bindImplContainerDate():std::vector can only be bound immediately."); std::size_t length = val.size(); if (0 == length) - throw InvalidArgumentException("Empty vector not allowed."); + throw InvalidArgumentException("ODBC::Binder::bindImplContainerDate():Empty vector not allowed."); setParamSetSize(length); @@ -800,14 +800,14 @@ private: (SQLUSMALLINT) pos + 1, toODBCDirection(dir), SQL_C_TYPE_DATE, - SQL_TYPE_DATE, + Utility::sqlDataType(SQL_C_TYPE_DATE), colSize, decDigits, (SQLPOINTER) &(*_dateVecVec[pos])[0], 0, &(*_vecLengthIndicator[pos])[0]))) { - throw StatementException(_rStmt, "SQLBindParameter(Date[])"); + throw StatementException(_rStmt, "ODBC::Binder::bindImplContainerDate():SQLBindParameter(Date[])"); } } @@ -815,14 +815,14 @@ private: void bindImplContainerTime(std::size_t pos, const C& val, Direction dir) { if (isOutBound(dir) || !isInBound(dir)) - throw NotImplementedException("Time container parameter type can only be inbound."); + throw NotImplementedException("ODBC::Binder::bindImplContainerTime():Time container parameter type can only be inbound."); if (PB_IMMEDIATE != _paramBinding) - throw InvalidAccessException("Containers can only be bound immediately."); + throw InvalidAccessException("ODBC::Binder::bindImplContainerTime():Containers can only be bound immediately."); std::size_t length = val.size(); if (0 == length) - throw InvalidArgumentException("Empty container not allowed."); + throw InvalidArgumentException("ODBC::Binder::bindImplContainerTime():Empty container not allowed."); setParamSetSize(val.size()); @@ -848,14 +848,14 @@ private: (SQLUSMALLINT) pos + 1, toODBCDirection(dir), SQL_C_TYPE_TIME, - SQL_TYPE_TIME, + Utility::sqlDataType(SQL_C_TYPE_TIME), colSize, decDigits, (SQLPOINTER) &(*_timeVecVec[pos])[0], 0, &(*_vecLengthIndicator[pos])[0]))) { - throw StatementException(_rStmt, "SQLBindParameter(Time[])"); + throw StatementException(_rStmt, "ODBC::Binder::bindImplContainerTime():SQLBindParameter(Time[])"); } } @@ -863,15 +863,15 @@ private: void bindImplContainerDateTime(std::size_t pos, const C& val, Direction dir) { if (isOutBound(dir) || !isInBound(dir)) - throw NotImplementedException("DateTime container parameter type can only be inbound."); + throw NotImplementedException("ODBC::Binder::bindImplContainerDateTime():DateTime container parameter type can only be inbound."); if (PB_IMMEDIATE != _paramBinding) - throw InvalidAccessException("Containers can only be bound immediately."); + throw InvalidAccessException("ODBC::Binder::bindImplContainerDateTime():Containers can only be bound immediately."); std::size_t length = val.size(); if (0 == length) - throw InvalidArgumentException("Empty Containers not allowed."); + throw InvalidArgumentException("ODBC::Binder::bindImplContainerDateTime():Empty Containers not allowed."); setParamSetSize(length); @@ -897,14 +897,14 @@ private: (SQLUSMALLINT) pos + 1, toODBCDirection(dir), SQL_C_TYPE_TIMESTAMP, - SQL_TYPE_TIMESTAMP, + Utility::sqlDataType(SQL_C_TYPE_TIMESTAMP), colSize, decDigits, (SQLPOINTER) &(*_dateTimeVecVec[pos])[0], 0, &(*_vecLengthIndicator[pos])[0]))) { - throw StatementException(_rStmt, "SQLBindParameter(Time[])"); + throw StatementException(_rStmt, "ODBC::Binder::bindImplContainerDateTime():SQLBindParameter(Time[])"); } } @@ -912,15 +912,15 @@ private: void bindImplNullContainer(std::size_t pos, const C& val, Direction dir) { if (isOutBound(dir) || !isInBound(dir)) - throw NotImplementedException("Null container parameter type can only be inbound."); + throw NotImplementedException("ODBC::Binder::bindImplNullContainer():Null container parameter type can only be inbound."); if (PB_IMMEDIATE != _paramBinding) - throw InvalidAccessException("Container can only be bound immediately."); + throw InvalidAccessException("ODBC::Binder::bindImplNullContainer():Container can only be bound immediately."); std::size_t length = val.size(); if (0 == length) - throw InvalidArgumentException("Empty container not allowed."); + throw InvalidArgumentException("ODBC::Binder::bindImplNullContainer():Empty container not allowed."); setParamSetSize(length); @@ -945,7 +945,7 @@ private: 0, &(*_vecLengthIndicator[pos])[0]))) { - throw StatementException(_rStmt, "SQLBindParameter()"); + throw StatementException(_rStmt, "ODBC::Binder::bindImplNullContainer():SQLBindParameter()"); } } @@ -973,6 +973,9 @@ private: /// size should be set to some default value prior to calling this /// function in order to avoid undefined size value. + std::size_t getParamSizeDirect(std::size_t pos, SQLINTEGER& size); + /// A "last ditch" attempt" to obtain parameter size directly from the driver. + void freeMemory(); /// Frees all dynamically allocated memory resources. diff --git a/Data/ODBC/include/Poco/Data/ODBC/ConnectionHandle.h b/Data/ODBC/include/Poco/Data/ODBC/ConnectionHandle.h index a1a2390e3..a753fed8f 100644 --- a/Data/ODBC/include/Poco/Data/ODBC/ConnectionHandle.h +++ b/Data/ODBC/include/Poco/Data/ODBC/ConnectionHandle.h @@ -36,18 +36,40 @@ class ODBC_API ConnectionHandle /// ODBC connection handle class { public: - ConnectionHandle(EnvironmentHandle* pEnvironment = 0); + ConnectionHandle(const std::string& connectString = "", SQLULEN timeout = 5); /// Creates the ConnectionHandle. ~ConnectionHandle(); /// Creates the ConnectionHandle. - operator const SQLHDBC& () const; - /// Const conversion operator into reference to native type. + bool connect(const std::string& connectString = "", SQLULEN timeout = 5); + /// Connects the handle to the database. + + bool disconnect(); + /// Disconnects the handle from database. + + bool isConnected() const; + /// Returns true if connected. + + void setTimeout(SQLULEN timeout); + /// Sets the connection timeout in seconds. + + int getTimeout() const; + /// Returns the connection timeout in seconds. const SQLHDBC& handle() const; /// Returns const reference to handle; + const SQLHDBC* pHandle() const; + /// Returns const pointer to handle; + + operator const SQLHDBC& () const; + /// Const conversion operator into reference to native type. + + operator bool(); + /// Returns true if handles are not null. + /// True value is not a guarantee that the connection is valid. + private: operator SQLHDBC& (); /// Conversion operator into reference to native type. @@ -55,17 +77,26 @@ private: SQLHDBC& handle(); /// Returns reference to handle; + void alloc(); + /// Allocates the connection handle. + + void free(); + /// Frees the connection handle. + ConnectionHandle(const ConnectionHandle&); const ConnectionHandle& operator=(const ConnectionHandle&); - const EnvironmentHandle* _pEnvironment; - SQLHDBC _hdbc; - bool _ownsEnvironment; + const EnvironmentHandle* _pEnvironment = nullptr; + SQLHDBC _hdbc = SQL_NULL_HDBC; + std::string _connectString; friend class Poco::Data::ODBC::SessionImpl; }; +using Connection = ConnectionHandle; + + // // inlines // @@ -75,12 +106,24 @@ inline ConnectionHandle::operator const SQLHDBC& () const } +inline ConnectionHandle::operator bool() +{ + return _pEnvironment != nullptr && _hdbc != SQL_NULL_HDBC; +} + + inline const SQLHDBC& ConnectionHandle::handle() const { return _hdbc; } +inline const SQLHDBC* ConnectionHandle::pHandle() const +{ + return &_hdbc; +} + + inline ConnectionHandle::operator SQLHDBC& () { return handle(); diff --git a/Data/ODBC/include/Poco/Data/ODBC/Diagnostics.h b/Data/ODBC/include/Poco/Data/ODBC/Diagnostics.h index 818be4a1e..aa919c2be 100644 --- a/Data/ODBC/include/Poco/Data/ODBC/Diagnostics.h +++ b/Data/ODBC/include/Poco/Data/ODBC/Diagnostics.h @@ -138,6 +138,8 @@ public: const Diagnostics& diagnostics() { + if (SQL_NULL_HANDLE == _handle) return *this; + DiagnosticFields df; SQLSMALLINT count = 1; SQLSMALLINT messageLength = 0; diff --git a/Data/ODBC/include/Poco/Data/ODBC/EnvironmentHandle.h b/Data/ODBC/include/Poco/Data/ODBC/EnvironmentHandle.h index cec8d729e..292639ede 100644 --- a/Data/ODBC/include/Poco/Data/ODBC/EnvironmentHandle.h +++ b/Data/ODBC/include/Poco/Data/ODBC/EnvironmentHandle.h @@ -57,7 +57,6 @@ private: const EnvironmentHandle& operator=(const EnvironmentHandle&); SQLHENV _henv; - bool _isOwner; }; diff --git a/Data/ODBC/include/Poco/Data/ODBC/Extractor.h b/Data/ODBC/include/Poco/Data/ODBC/Extractor.h index eff01dda5..7488e8ff9 100644 --- a/Data/ODBC/include/Poco/Data/ODBC/Extractor.h +++ b/Data/ODBC/include/Poco/Data/ODBC/Extractor.h @@ -410,6 +410,7 @@ private: CharType** pc = AnyCast(&(_pPreparator->at(pos))); poco_assert_dbg (pc); + poco_assert_dbg(*pc); poco_assert_dbg (_pPreparator->bulkSize() == values.size()); std::size_t colWidth = columnSize(pos); ItType it = values.begin(); @@ -441,6 +442,7 @@ private: CharType** pc = AnyCast(&(_pPreparator->at(pos))); poco_assert_dbg (pc); + poco_assert_dbg(*pc); poco_assert_dbg (_pPreparator->bulkSize() == values.size()); std::size_t colWidth = _pPreparator->maxDataSize(pos); ItType it = values.begin(); @@ -480,7 +482,7 @@ private: &_lengths[pos]); //length indicator if (Utility::isError(rc)) - throw StatementException(_rStmt, "SQLGetData()"); + throw StatementException(_rStmt, "ODBC::Extractor::extractManualImpl():SQLGetData()"); if (isNullLengthIndicator(_lengths[pos])) return false; diff --git a/Data/ODBC/include/Poco/Data/ODBC/ODBCStatementImpl.h b/Data/ODBC/include/Poco/Data/ODBC/ODBCStatementImpl.h index 0b7824c80..5eb4e3b19 100644 --- a/Data/ODBC/include/Poco/Data/ODBC/ODBCStatementImpl.h +++ b/Data/ODBC/include/Poco/Data/ODBC/ODBCStatementImpl.h @@ -94,6 +94,9 @@ protected: std::string nativeSQL(); /// Returns the SQL string as modified by the driver. + void printErrors(std::ostream& os) const; + /// Print errors, if any. + private: typedef Poco::Data::AbstractBindingVec Bindings; typedef Poco::SharedPtr BinderPtr; @@ -143,17 +146,26 @@ private: void fillColumns(); void checkError(SQLRETURN rc, const std::string& msg=""); - const SQLHDBC& _rConnection; - const StatementHandle _stmt; - PreparatorVec _preparations; - BinderPtr _pBinder; - ExtractorVec _extractors; - bool _stepCalled; - int _nextResponse; - ColumnPtrVecVec _columnPtrs; - bool _prepared; - mutable std::size_t _affectedRowCount; - bool _canCompile; + struct ERROR_INFO + { + SQLCHAR state[8]; + SQLINTEGER native; + SQLCHAR text[256]; + }; + void addErrors(); + + const SQLHDBC& _rConnection; + const StatementHandle _stmt; + PreparatorVec _preparations; + BinderPtr _pBinder; + ExtractorVec _extractors; + bool _stepCalled; + int _nextResponse; + ColumnPtrVecVec _columnPtrs; + bool _prepared; + mutable std::size_t _affectedRowCount; + bool _canCompile; + std::vector _errorInfo; }; diff --git a/Data/ODBC/include/Poco/Data/ODBC/Preparator.h b/Data/ODBC/include/Poco/Data/ODBC/Preparator.h index ed1e77a6c..aa6ebc769 100644 --- a/Data/ODBC/include/Poco/Data/ODBC/Preparator.h +++ b/Data/ODBC/include/Poco/Data/ODBC/Preparator.h @@ -583,7 +583,7 @@ private: (SQLINTEGER) dataSize, &_lengths[pos]))) { - throw StatementException(_rStmt, "SQLBindCol()"); + throw StatementException(_rStmt, "ODBC::Preparator::prepareFixedSize():SQLBindCol()"); } } @@ -612,7 +612,7 @@ private: (SQLINTEGER) dataSize, &_lenLengths[pos][0]))) { - throw StatementException(_rStmt, "SQLBindCol()"); + throw StatementException(_rStmt, "ODBC::Preparator::prepareFixedSize():SQLBindCol()"); } } @@ -637,7 +637,7 @@ private: (SQLINTEGER) size*sizeof(T), &_lengths[pos]))) { - throw StatementException(_rStmt, "SQLBindCol()"); + throw StatementException(_rStmt, "ODBC::Preparator::prepareVariableLen():SQLBindCol()"); } } @@ -664,7 +664,7 @@ private: (SQLINTEGER) size, &_lenLengths[pos][0]))) { - throw StatementException(_rStmt, "SQLBindCol()"); + throw StatementException(_rStmt, "ODBC::Preparator::prepareCharArray():SQLBindCol()"); } } diff --git a/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h b/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h index d67269816..2e04a137a 100644 --- a/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h +++ b/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h @@ -52,6 +52,13 @@ public: ODBC_TXN_CAPABILITY_TRUE = 1 }; + enum CursorUse + { + ODBC_CURSOR_USE_ALWAYS = Poco::Data::SessionImpl::CURSOR_USE_ALWAYS, + ODBC_CURSOR_USE_IF_NEEDED = Poco::Data::SessionImpl::CURSOR_USE_IF_NEEDED, + ODBC_CURSOR_USE_NEVER = Poco::Data::SessionImpl::CURSOR_USE_NEVER + }; + SessionImpl(const std::string& connect, std::size_t loginTimeout, std::size_t maxFieldSize = ODBC_MAX_FIELD_SIZE, @@ -159,6 +166,15 @@ public: /// Returns the timeout (in seconds) for queries, /// or -1 if no timeout has been set. + void setCursorUse(const std::string&, const Poco::Any& value); + /// Sets the use of cursors: + /// - SQL_CUR_USE_ODBC - always + /// - SQL_CUR_USE_IF_NEEDED - if needed + /// - SQL_CUR_USE_DRIVER - never + + Poco::Any getCursorUse(const std::string&) const; + /// Returns the use of cursors. + int queryTimeout() const; /// Returns the timeout (in seconds) for queries, /// or -1 if no timeout has been set. @@ -195,17 +211,17 @@ private: /// Sets the transaction isolation level. /// Called internally from getTransactionIsolation() - std::string _connector; - mutable ConnectionHandle _db; - Poco::Any _maxFieldSize; - bool _autoBind; - bool _autoExtract; - TypeInfo _dataTypes; - mutable char _canTransact; - bool _inTransaction; - int _queryTimeout; - std::string _dbEncoding; - Poco::FastMutex _mutex; + std::string _connector; + mutable ConnectionHandle _db; + Poco::Any _maxFieldSize; + bool _autoBind; + bool _autoExtract; + TypeInfo _dataTypes; + mutable TransactionCapability _canTransact; + std::atomic _inTransaction; + int _queryTimeout; + std::string _dbEncoding; + Poco::FastMutex _mutex; }; diff --git a/Data/ODBC/include/Poco/Data/ODBC/TypeInfo.h b/Data/ODBC/include/Poco/Data/ODBC/TypeInfo.h index 043bf7e72..d6e25a6fa 100644 --- a/Data/ODBC/include/Poco/Data/ODBC/TypeInfo.h +++ b/Data/ODBC/include/Poco/Data/ODBC/TypeInfo.h @@ -82,7 +82,7 @@ public: int sqlDataType(int cDataType) const; /// Returns SQL data type corresponding to supplied C data type. - void fillTypeInfo(SQLHDBC pHDBC); + void fillTypeInfo(const SQLHDBC* pHDBC); /// Fills the data type info structure for the database. DynamicAny getInfo(SQLSMALLINT type, const std::string& param) const; @@ -107,7 +107,7 @@ private: DataTypeMap _cDataTypes; DataTypeMap _sqlDataTypes; TypeInfoVec _typeInfo; - SQLHDBC* _pHDBC; + const SQLHDBC* _pHDBC; }; diff --git a/Data/ODBC/src/Binder.cpp b/Data/ODBC/src/Binder.cpp index 9ac70c081..c3729af1c 100644 --- a/Data/ODBC/src/Binder.cpp +++ b/Data/ODBC/src/Binder.cpp @@ -85,7 +85,7 @@ void Binder::freeMemory() UUIDMap::iterator itUUID = _uuids.begin(); UUIDMap::iterator itUUIDEnd = _uuids.end(); - for(; itUUID != itUUIDEnd; ++itUUID) std::free(itUUID->first); + for(; itUUID != itUUIDEnd; ++itUUID) delete [] itUUID->first; BoolPtrVec::iterator itBool = _boolPtrs.begin(); BoolPtrVec::iterator endBool = _boolPtrs.end(); @@ -152,7 +152,7 @@ void Binder::bind(std::size_t pos, const std::string& val, Direction dir) } } else - throw InvalidArgumentException("Parameter must be [in] OR [out] bound."); + throw InvalidArgumentException("ODBC::Binder::bind(string):Parameter must be [in] OR [out] bound."); SQLLEN* pLenIn = new SQLLEN(SQL_NTS); @@ -165,14 +165,14 @@ void Binder::bind(std::size_t pos, const std::string& val, Direction dir) (SQLUSMALLINT) pos + 1, toODBCDirection(dir), SQL_C_CHAR, - Connector::stringBoundToLongVarChar() ? SQL_LONGVARCHAR : SQL_VARCHAR, + Utility::sqlDataType(SQL_C_CHAR), (SQLUINTEGER) colSize, 0, pVal, (SQLINTEGER) size, _lengthIndicator.back()))) { - throw StatementException(_rStmt, "SQLBindParameter(std::string)"); + throw StatementException(_rStmt, "ODBC::Binder::bind(string):SQLBindParameter(std::string)"); } } @@ -201,7 +201,7 @@ void Binder::bind(std::size_t pos, const UTF16String& val, Direction dir) _inParams.insert(ParamMap::value_type(pVal, size)); } else - throw InvalidArgumentException("Parameter must be [in] OR [out] bound."); + throw InvalidArgumentException("ODBC::Binder::bind():Parameter must be [in] OR [out] bound."); SQLLEN* pLenIn = new SQLLEN(SQL_NTS); @@ -216,14 +216,14 @@ void Binder::bind(std::size_t pos, const UTF16String& val, Direction dir) (SQLUSMALLINT)pos + 1, toODBCDirection(dir), SQL_C_WCHAR, - SQL_WLONGVARCHAR, + Utility::sqlDataType(SQL_C_WCHAR), (SQLUINTEGER)colSize, 0, pVal, (SQLINTEGER)size, _lengthIndicator.back()))) { - throw StatementException(_rStmt, "SQLBindParameter(std::string)"); + throw StatementException(_rStmt, "ODBC::Binder::bind(UTF16String):SQLBindParameter(std::string)"); } } @@ -249,14 +249,14 @@ void Binder::bind(std::size_t pos, const Date& val, Direction dir) (SQLUSMALLINT) pos + 1, toODBCDirection(dir), SQL_C_TYPE_DATE, - SQL_TYPE_DATE, + Utility::sqlDataType(SQL_C_TYPE_DATE), colSize, decDigits, (SQLPOINTER) pDS, 0, _lengthIndicator.back()))) { - throw StatementException(_rStmt, "SQLBindParameter(Date)"); + throw StatementException(_rStmt, "ODBC::Binder::bind(Date):SQLBindParameter(Date)"); } } @@ -282,14 +282,14 @@ void Binder::bind(std::size_t pos, const Time& val, Direction dir) (SQLUSMALLINT) pos + 1, toODBCDirection(dir), SQL_C_TYPE_TIME, - SQL_TYPE_TIME, + Utility::sqlDataType(SQL_C_TYPE_TIME), colSize, decDigits, (SQLPOINTER) pTS, 0, _lengthIndicator.back()))) { - throw StatementException(_rStmt, "SQLBindParameter(Time)"); + throw StatementException(_rStmt, "ODBC::Binder::bind(Time):SQLBindParameter(Time)"); } } @@ -315,14 +315,14 @@ void Binder::bind(std::size_t pos, const Poco::DateTime& val, Direction dir) (SQLUSMALLINT) pos + 1, toODBCDirection(dir), SQL_C_TYPE_TIMESTAMP, - SQL_TYPE_TIMESTAMP, + Utility::sqlDataType(SQL_C_TYPE_TIMESTAMP), colSize, decDigits, (SQLPOINTER) pTS, 0, _lengthIndicator.back()))) { - throw StatementException(_rStmt, "SQLBindParameter(DateTime)"); + throw StatementException(_rStmt, "ODBC::Binder::bind(DateTime):SQLBindParameter(DateTime)"); } } @@ -386,7 +386,7 @@ void Binder::bind(std::size_t pos, const NullData& val, Direction dir) 0, _lengthIndicator.back()))) { - throw StatementException(_rStmt, "SQLBindParameter()"); + throw StatementException(_rStmt, "ODBC::Binder::bind(NullData):SQLBindParameter()"); } } @@ -510,25 +510,28 @@ void Binder::getColSizeAndPrecision(std::size_t pos, SQLSMALLINT& decDigits, std::size_t actualSize) { + colSize = 0; + decDigits = 0; + // Not all drivers are equally willing to cooperate in this matter. // Hence the funky flow control. - DynamicAny tmp; - bool found(false); if (_pTypeInfo) { - found = _pTypeInfo->tryGetInfo(cDataType, "COLUMN_SIZE", tmp); - if (found) colSize = tmp; - if (found && actualSize > colSize) + DynamicAny tmp; + bool foundSize(false); + bool foundPrec(false); + foundSize = _pTypeInfo->tryGetInfo(cDataType, "COLUMN_SIZE", tmp); + if (foundSize) colSize = tmp; + if (actualSize > colSize) { throw LengthExceededException(Poco::format("Error binding column %z size=%z, max size=%ld)", pos, actualSize, static_cast(colSize))); } - found = _pTypeInfo->tryGetInfo(cDataType, "MINIMUM_SCALE", tmp); - if (found) - { - decDigits = tmp; + foundPrec = _pTypeInfo->tryGetInfo(cDataType, "MAXIMUM_SCALE", tmp); + if (foundPrec) decDigits = tmp; + + if (foundSize && foundPrec) return; - } } try @@ -560,14 +563,30 @@ void Binder::getColSizeAndPrecision(std::size_t pos, pos, actualSize, static_cast(colSize))); } - // no success, set to zero and hope for the best - // (most drivers do not require these most of the times anyway) - colSize = 0; - decDigits = 0; return; } +std::size_t Binder::getParamSizeDirect(std::size_t pos, SQLINTEGER& size) +{ +//On Linux, PostgreSQL driver segfaults on SQLGetDescField, so this is disabled for now +#ifdef POCO_OS_FAMILY_WINDOWS + size = DEFAULT_PARAM_SIZE; + SQLHDESC hIPD = 0; + if (!Utility::isError(SQLGetStmtAttr(_rStmt, SQL_ATTR_IMP_PARAM_DESC, &hIPD, SQL_IS_POINTER, 0))) + { + SQLULEN sz = 0; + if (!Utility::isError(SQLGetDescField(hIPD, (SQLSMALLINT)pos + 1, SQL_DESC_LENGTH, &sz, SQL_IS_UINTEGER, 0)) && + sz > 0) + { + size = (SQLINTEGER)sz; + } + } +#endif + return static_cast(size); +} + + void Binder::getColumnOrParameterSize(std::size_t pos, SQLINTEGER& size) { std::size_t colSize = 0; @@ -585,23 +604,10 @@ void Binder::getColumnOrParameterSize(std::size_t pos, SQLINTEGER& size) Parameter p(_rStmt, pos); paramSize = p.columnSize(); } - catch (StatementException&) - { - size = DEFAULT_PARAM_SIZE; -//On Linux, PostgreSQL driver segfaults on SQLGetDescField, so this is disabled for now -#ifdef POCO_OS_FAMILY_WINDOWS - SQLHDESC hIPD = 0; - if (!Utility::isError(SQLGetStmtAttr(_rStmt, SQL_ATTR_IMP_PARAM_DESC, &hIPD, SQL_IS_POINTER, 0))) - { - SQLUINTEGER sz = 0; - if (!Utility::isError(SQLGetDescField(hIPD, (SQLSMALLINT) pos + 1, SQL_DESC_LENGTH, &sz, SQL_IS_UINTEGER, 0)) && - sz > 0) - { - size = sz; - } - } -#endif - } + catch (StatementException&) {} + + if (colSize == 0 && paramSize == 0) + paramSize = getParamSizeDirect(pos, size); if (colSize > 0 && paramSize > 0) size = colSize < paramSize ? static_cast(colSize) : static_cast(paramSize); @@ -620,7 +626,7 @@ void Binder::setParamSetSize(std::size_t length) { if (Utility::isError(Poco::Data::ODBC::SQLSetStmtAttr(_rStmt, SQL_ATTR_PARAM_BIND_TYPE, SQL_PARAM_BIND_BY_COLUMN, SQL_IS_UINTEGER)) || Utility::isError(Poco::Data::ODBC::SQLSetStmtAttr(_rStmt, SQL_ATTR_PARAMSET_SIZE, (SQLPOINTER) length, SQL_IS_UINTEGER))) - throw StatementException(_rStmt, "SQLSetStmtAttr()"); + throw StatementException(_rStmt, "ODBC::Binder::setParamSetSize():SQLSetStmtAttr()"); _paramSetSize = static_cast(length); } diff --git a/Data/ODBC/src/ConnectionHandle.cpp b/Data/ODBC/src/ConnectionHandle.cpp index 3efc04824..f66550c72 100644 --- a/Data/ODBC/src/ConnectionHandle.cpp +++ b/Data/ODBC/src/ConnectionHandle.cpp @@ -24,17 +24,12 @@ namespace Data { namespace ODBC { -ConnectionHandle::ConnectionHandle(EnvironmentHandle* pEnvironment): - _pEnvironment(pEnvironment ? pEnvironment : new EnvironmentHandle), +ConnectionHandle::ConnectionHandle(const std::string& connectString, SQLULEN timeout): _pEnvironment(nullptr), _hdbc(SQL_NULL_HDBC), - _ownsEnvironment(pEnvironment ? false : true) + _connectString(connectString) { - if (Utility::isError(SQLAllocHandle(SQL_HANDLE_DBC, - _pEnvironment->handle(), - &_hdbc))) - { - throw ODBCException("Could not allocate connection handle."); - } + alloc(); + setTimeout(timeout); } @@ -42,13 +37,7 @@ ConnectionHandle::~ConnectionHandle() { try { - SQLDisconnect(_hdbc); - SQLRETURN rc = SQLFreeHandle(SQL_HANDLE_DBC, _hdbc); - if (_ownsEnvironment) delete _pEnvironment; -#if defined(_DEBUG) - if (Utility::isError(rc)) - Debugger::enter(Poco::Error::getMessage(Poco::Error::last()), __FILE__, __LINE__); -#endif + disconnect(); } catch (...) { @@ -57,4 +46,116 @@ ConnectionHandle::~ConnectionHandle() } +void ConnectionHandle::alloc() +{ + if (_pEnvironment || _hdbc) free(); + _pEnvironment = new EnvironmentHandle; + if (Utility::isError(SQLAllocHandle(SQL_HANDLE_DBC, _pEnvironment->handle(), &_hdbc))) + { + delete _pEnvironment; + _pEnvironment = nullptr; + _hdbc = SQL_NULL_HDBC; + throw ODBCException("ODBC: Could not allocate connection handle."); + } +} + + +void ConnectionHandle::free() +{ + if (_hdbc != SQL_NULL_HDBC) + { + SQLFreeHandle(SQL_HANDLE_DBC, _hdbc); + _hdbc = SQL_NULL_HDBC; + } + + if (_pEnvironment) + { + delete _pEnvironment; + _pEnvironment = 0; + } +} + + +bool ConnectionHandle::connect(const std::string& connectString, SQLULEN timeout) +{ + if (isConnected()) + throw Poco::InvalidAccessException("ODBC: connection already established."); + + if (connectString.empty()) + throw Poco::InvalidArgumentException("ODBC: connection string is empty."); + + if (connectString != _connectString) + _connectString = connectString; + + SQLCHAR connectOutput[512] = {0}; + SQLSMALLINT result; + + if (!_pEnvironment) alloc(); + if (Utility::isError(Poco::Data::ODBC::SQLDriverConnect(_hdbc + , NULL + ,(SQLCHAR*) _connectString.c_str() + ,(SQLSMALLINT) SQL_NTS + , connectOutput + , sizeof(connectOutput) + , &result + , SQL_DRIVER_NOPROMPT))) + { + disconnect(); + ConnectionError err(_hdbc); + throw ConnectionFailedException(err.toString()); + } + + return _hdbc != SQL_NULL_HDBC;; +} + + +bool ConnectionHandle::disconnect() +{ + SQLRETURN rc = 0; + if (isConnected()) + rc = SQLDisconnect(_hdbc); + + free(); + return !Utility::isError(rc); +} + + +void ConnectionHandle::setTimeout(SQLULEN timeout) +{ + if (Utility::isError(SQLSetConnectAttr(_hdbc, SQL_ATTR_LOGIN_TIMEOUT, (SQLPOINTER) timeout, 0))) + { + ConnectionError e(_hdbc); + throw ConnectionFailedException(e.toString()); + } +} + + +int ConnectionHandle::getTimeout() const +{ + SQLULEN timeout = 0; + if (Utility::isError(SQLGetConnectAttr(_hdbc, SQL_ATTR_LOGIN_TIMEOUT, &timeout, 0, 0))) + { + ConnectionError e(_hdbc); + throw ConnectionFailedException(e.toString()); + } + return static_cast(timeout); +} + + +bool ConnectionHandle::isConnected() const +{ + if (!*this) return false; + + SQLULEN value = 0; + + if (Utility::isError(Poco::Data::ODBC::SQLGetConnectAttr(_hdbc, + SQL_ATTR_CONNECTION_DEAD, + &value, + 0, + 0))) return false; + + return (SQL_CD_FALSE == value); +} + + } } } // namespace Poco::Data::ODBC diff --git a/Data/ODBC/src/EnvironmentHandle.cpp b/Data/ODBC/src/EnvironmentHandle.cpp index b9c19182a..71ebac6f8 100644 --- a/Data/ODBC/src/EnvironmentHandle.cpp +++ b/Data/ODBC/src/EnvironmentHandle.cpp @@ -26,15 +26,15 @@ namespace ODBC { EnvironmentHandle::EnvironmentHandle(): _henv(SQL_NULL_HENV) { - if (Utility::isError(SQLAllocHandle(SQL_HANDLE_ENV, - SQL_NULL_HANDLE, - &_henv)) || - Utility::isError(SQLSetEnvAttr(_henv, - SQL_ATTR_ODBC_VERSION, - (SQLPOINTER) SQL_OV_ODBC3, - 0))) + SQLRETURN rc = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &_henv); + if (Utility::isError(rc)) + throw ODBCException("EnvironmentHandle: Could not initialize ODBC environment."); + + rc = SQLSetEnvAttr(_henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER) SQL_OV_ODBC3, 0); + if (Utility::isError(rc)) { - throw ODBCException("Could not initialize environment."); + EnvironmentError err(_henv); + throw ODBCException(err.toString()); } } @@ -43,10 +43,15 @@ EnvironmentHandle::~EnvironmentHandle() { try { - SQLRETURN rc = SQLFreeHandle(SQL_HANDLE_ENV, _henv); #if defined(_DEBUG) + SQLRETURN rc = SQLFreeHandle(SQL_HANDLE_ENV, _henv); if (Utility::isError(rc)) - Debugger::enter(Poco::Error::getMessage(Poco::Error::last()), __FILE__, __LINE__); + { + EnvironmentError err(_henv); + Debugger::enter(err.toString(), __FILE__, __LINE__); + } +#else + SQLFreeHandle(SQL_HANDLE_ENV, _henv); #endif } catch (...) diff --git a/Data/ODBC/src/Extractor.cpp b/Data/ODBC/src/Extractor.cpp index b5ce0ca4d..ccdac9339 100644 --- a/Data/ODBC/src/Extractor.cpp +++ b/Data/ODBC/src/Extractor.cpp @@ -19,6 +19,7 @@ #include "Poco/Data/ODBC/ODBCException.h" #include "Poco/Data/LOB.h" #include "Poco/Buffer.h" +#include "Poco/Exception.h" #include @@ -300,10 +301,10 @@ bool Extractor::extractManualImpl(std::size_t pos, std::string& val &len); //length indicator if (SQL_NO_DATA != rc && Utility::isError(rc)) - throw StatementException(_rStmt, "SQLGetData()"); + throw StatementException(_rStmt, "ODBC::Extractor::extractManualImpl(string):SQLGetData()"); if (SQL_NO_TOTAL == len)//unknown length, throw - throw UnknownDataLengthException("Could not determine returned data length."); + throw UnknownDataLengthException("ODBC::Extractor::extractManualImpl(string):Could not determine returned data length."); if (isNullLengthIndicator(len)) { @@ -355,10 +356,10 @@ bool Extractor::extractManualImpl(std::size_t pos, UTF16String& val &len); //length indicator if (SQL_NO_DATA != rc && Utility::isError(rc)) - throw StatementException(_rStmt, "SQLGetData()"); + throw StatementException(_rStmt, "ODBC::Extractor::extractManualImpl(UTF16String):SQLGetData()"); if (SQL_NO_TOTAL == len)//unknown length, throw - throw UnknownDataLengthException("Could not determine returned data length."); + throw UnknownDataLengthException("ODBC::Extractor::extractManualImpl(UTF16String):Could not determine returned data length."); if (isNullLengthIndicator(len)) { @@ -414,10 +415,10 @@ bool Extractor::extractManualImpl(std::size_t pos, _lengths[pos] += len; if (SQL_NO_DATA != rc && Utility::isError(rc)) - throw StatementException(_rStmt, "SQLGetData()"); + throw StatementException(_rStmt, "ODBC::Extractor::extractManualImpl(CLOB):SQLGetData()"); if (SQL_NO_TOTAL == len)//unknown length, throw - throw UnknownDataLengthException("Could not determine returned data length."); + throw UnknownDataLengthException("ODBC::Extractor::extractManualImpl(CLOB):Could not determine returned data length."); if (isNullLengthIndicator(len)) return false; @@ -454,7 +455,7 @@ bool Extractor::extractManualImpl(std::size_t pos, &_lengths[pos]); //length indicator if (Utility::isError(rc)) - throw StatementException(_rStmt, "SQLGetData()"); + throw StatementException(_rStmt, "ODBC::Extractor::extractManualImpl(Date):SQLGetData()"); if (isNullLengthIndicator(_lengths[pos])) return false; @@ -481,7 +482,7 @@ bool Extractor::extractManualImpl(std::size_t pos, &_lengths[pos]); //length indicator if (Utility::isError(rc)) - throw StatementException(_rStmt, "SQLGetData()"); + throw StatementException(_rStmt, "ODBC::Extractor::extractManualImpl(Time):SQLGetData()"); if (isNullLengthIndicator(_lengths[pos])) return false; @@ -508,7 +509,7 @@ bool Extractor::extractManualImpl(std::size_t pos, &_lengths[pos]); //length indicator if (Utility::isError(rc)) - throw StatementException(_rStmt, "SQLGetData()"); + throw StatementException(_rStmt, "ODBC::Extractor::extractManualImpl(DateTime):SQLGetData()"); if (isNullLengthIndicator(_lengths[pos])) return false; diff --git a/Data/ODBC/src/ODBCMetaColumn.cpp b/Data/ODBC/src/ODBCMetaColumn.cpp index debf3a1a3..e870762cf 100644 --- a/Data/ODBC/src/ODBCMetaColumn.cpp +++ b/Data/ODBC/src/ODBCMetaColumn.cpp @@ -53,7 +53,7 @@ void ODBCMetaColumn::getDescription() &_columnDesc.decimalDigits, &_columnDesc.isNullable))) { - throw StatementException(_rStmt); + throw StatementException(_rStmt, "ODBCMetaColumn::getDescription()"); } } @@ -69,7 +69,7 @@ bool ODBCMetaColumn::isUnsigned() const 0, &val))) { - throw StatementException(_rStmt); + throw StatementException(_rStmt, "ODBCMetaColumn::isUnsigned()"); } return (val == SQL_TRUE); } @@ -87,7 +87,7 @@ void ODBCMetaColumn::init() 0, &_dataLength))) { - throw StatementException(_rStmt); + throw StatementException(_rStmt, "ODBCMetaColumn::init()"); } setName(std::string((char*) _columnDesc.name)); diff --git a/Data/ODBC/src/ODBCStatementImpl.cpp b/Data/ODBC/src/ODBCStatementImpl.cpp index e534308f9..ee4a0fcef 100644 --- a/Data/ODBC/src/ODBCStatementImpl.cpp +++ b/Data/ODBC/src/ODBCStatementImpl.cpp @@ -47,13 +47,19 @@ ODBCStatementImpl::ODBCStatementImpl(SessionImpl& rSession): _canCompile(true) { int queryTimeout = rSession.queryTimeout(); + int rc = 0; if (queryTimeout >= 0) { SQLULEN uqt = static_cast(queryTimeout); - SQLSetStmtAttr(_stmt, + rc = SQLSetStmtAttr(_stmt, SQL_ATTR_QUERY_TIMEOUT, (SQLPOINTER) uqt, 0); + if (Utility::isError(rc)) + { + throw ODBC::ConnectionException(_stmt, + Poco::format("SQLSetStmtAttr(SQL_ATTR_QUERY_TIMEOUT, %d)", queryTimeout)); + } } } @@ -96,7 +102,15 @@ void ODBCStatementImpl::compileImpl() { } - std::size_t maxFieldSize = AnyCast(session().getProperty("maxFieldSize")); + std::size_t maxFieldSize; + try + { + maxFieldSize = AnyCast(session().getProperty("maxFieldSize")); + } + catch (Poco::BadCastException&) + { + maxFieldSize = AnyCast(session().getProperty("maxFieldSize")); + } _pBinder = new Binder(_stmt, maxFieldSize, bind, pDT, TextEncoding::find("UTF-8"), TextEncoding::find(Poco::RefAnyCast(session().getProperty("dbEncoding")))); @@ -139,7 +153,15 @@ void ODBCStatementImpl::addPreparator() Preparator::DataExtraction ext = session().getFeature("autoExtract") ? Preparator::DE_BOUND : Preparator::DE_MANUAL; - std::size_t maxFieldSize = AnyCast(session().getProperty("maxFieldSize")); + std::size_t maxFieldSize; + try + { + maxFieldSize = AnyCast(session().getProperty("maxFieldSize")); + } + catch (Poco::BadCastException&) + { + maxFieldSize = AnyCast(session().getProperty("maxFieldSize")); + } _preparations.push_back(new Preparator(_stmt, statement, maxFieldSize, ext)); } @@ -216,6 +238,38 @@ void ODBCStatementImpl::doBind() } +void ODBCStatementImpl::addErrors() +{ + SQLSMALLINT i = 0; + SQLSMALLINT len; + SQLRETURN ret; + do + { + _errorInfo.push_back({}); + ret = SQLGetDiagRec(SQL_HANDLE_STMT, _stmt, ++i, + _errorInfo.back().state, &_errorInfo.back().native, _errorInfo.back().text, + sizeof(_errorInfo.back().text), &len); + if (!SQL_SUCCEEDED(ret) && _errorInfo.size()) + _errorInfo.pop_back(); + } while( ret == SQL_SUCCESS ); +} + + +void ODBCStatementImpl::printErrors(std::ostream& os) const +{ + if (_errorInfo.size()) + { + os << "Errors\n=================="; + for (const auto& e : _errorInfo) + { + os << "\nstate: " << e.state << "\nnative: " + << e.native << "\ntext: " << e.text << '\n'; + } + os << "==================\n"; + } +} + + void ODBCStatementImpl::bindImpl() { doBind(); @@ -223,15 +277,16 @@ void ODBCStatementImpl::bindImpl() SQLRETURN rc = SQLExecute(_stmt); if (SQL_NEED_DATA == rc) putData(); - else checkError(rc, "SQLExecute()"); + else checkError(rc, "ODBCStatementImpl::bindImpl():SQLExecute()"); _pBinder->synchronize(); } + void ODBCStatementImpl::execDirectImpl(const std::string& query) { SQLCHAR * statementText = (SQLCHAR*) query.c_str(); - SQLINTEGER textLength = query.size(); + SQLINTEGER textLength = static_cast(query.size()); SQLRETURN rc = SQLExecDirect(_stmt,statementText,textLength); checkError(rc, "SQLExecute()"); @@ -251,13 +306,13 @@ void ODBCStatementImpl::putData() dataSize = (SQLINTEGER) _pBinder->parameterSize(pParam); if (Utility::isError(SQLPutData(_stmt, pParam, dataSize))) - throw StatementException(_stmt, "SQLPutData()"); + throw StatementException(_stmt, "ODBCStatementImpl::putData():SQLPutData()"); } else // if pParam is null pointer, do a dummy call { char dummy = 0; if (Utility::isError(SQLPutData(_stmt, &dummy, 0))) - throw StatementException(_stmt, "SQLPutData()"); + throw StatementException(_stmt, "ODBCStatementImpl::putData():SQLPutData()"); } } @@ -267,30 +322,12 @@ void ODBCStatementImpl::putData() void ODBCStatementImpl::clear() { - SQLRETURN rc = SQLCloseCursor(_stmt); _stepCalled = false; _affectedRowCount = 0; - + _errorInfo.clear(); + SQLRETURN rc = SQLFreeStmt(_stmt, SQL_CLOSE); if (Utility::isError(rc)) - { - StatementError err(_stmt); - bool ignoreError = false; - - const StatementDiagnostics& diagnostics = err.diagnostics(); - //ignore "Invalid cursor state" error - //(returned by 3.x drivers when cursor is not opened) - for (int i = 0; i < diagnostics.count(); ++i) - { - if ((ignoreError = - (INVALID_CURSOR_STATE == std::string(diagnostics.sqlState(i))))) - { - break; - } - } - - if (!ignoreError) - throw StatementException(_stmt, "SQLCloseCursor()"); - } + throw StatementException(_stmt, "ODBCStatementImpl::putData():SQLFreeStmt(SQL_CLOSE)"); } @@ -335,6 +372,25 @@ void ODBCStatementImpl::makeStep() { _extractors[currentDataSet()]->reset(); _nextResponse = SQLFetch(_stmt); + // workaround for SQL Server drivers 17, 18, ... + // stored procedure calls produce additional data, + // causing SQLFetch error 24000 (invalid cursor state); + // when it happens, SQLMoreResults() is called to + // force SQL_NO_DATA response + if (Utility::isError(_nextResponse)) + { + StatementError se(_stmt); + const StatementDiagnostics& sd = se.diagnostics(); + + for (int i = 0; i < sd.count(); ++i) + { + if (sd.sqlState(i) == INVALID_CURSOR_STATE) + { + _nextResponse = SQLMoreResults(_stmt); + break; + } + } + } checkError(_nextResponse); _stepCalled = true; } @@ -363,7 +419,7 @@ std::size_t ODBCStatementImpl::next() else { throw StatementException(_stmt, - std::string("Next row not available.")); + "ODBCStatementImpl::next():Next row not available."); } return count; @@ -416,6 +472,7 @@ void ODBCStatementImpl::checkError(SQLRETURN rc, const std::string& msg) throw StatementException(_stmt, str); } + else if (SQL_SUCCESS_WITH_INFO == rc) addErrors(); } diff --git a/Data/ODBC/src/Parameter.cpp b/Data/ODBC/src/Parameter.cpp index b7dfe2970..00f8a0166 100644 --- a/Data/ODBC/src/Parameter.cpp +++ b/Data/ODBC/src/Parameter.cpp @@ -45,7 +45,7 @@ void Parameter::init() &_decimalDigits, &_isNullable))) { - throw StatementException(_rStmt); + throw StatementException(_rStmt, "ODBC::Parameter::init():SQLDescribeParam()"); } } diff --git a/Data/ODBC/src/Preparator.cpp b/Data/ODBC/src/Preparator.cpp index fa4f91f16..8431e16b6 100644 --- a/Data/ODBC/src/Preparator.cpp +++ b/Data/ODBC/src/Preparator.cpp @@ -35,7 +35,7 @@ Preparator::Preparator(const StatementHandle& rStmt, { SQLCHAR* pStr = (SQLCHAR*) statement.c_str(); if (Utility::isError(Poco::Data::ODBC::SQLPrepare(_rStmt, pStr, (SQLINTEGER) statement.length()))) - throw StatementException(_rStmt); + throw StatementException(_rStmt, "ODBC::Preparator():SQLPrepare()"); } @@ -158,7 +158,8 @@ std::size_t Preparator::maxDataSize(std::size_t pos) const // accomodate for terminating zero (non-bulk only!) MetaColumn::ColumnDataType type = mc.type(); - if (sz && !isBulk() && ((ODBCMetaColumn::FDT_WSTRING == type) || (ODBCMetaColumn::FDT_STRING == type))) ++sz; + if (sz && !isBulk() && ((ODBCMetaColumn::FDT_WSTRING == type) || (ODBCMetaColumn::FDT_STRING == type))) + ++sz; } catch (StatementException&) { } @@ -201,7 +202,7 @@ void Preparator::prepareBoolArray(std::size_t pos, SQLSMALLINT valueType, std::s (SQLINTEGER) sizeof(bool), &_lenLengths[pos][0]))) { - throw StatementException(_rStmt, "SQLBindCol()"); + throw StatementException(_rStmt, "ODBC::Preparator::prepareBoolArray():SQLBindCol()"); } } diff --git a/Data/ODBC/src/SessionImpl.cpp b/Data/ODBC/src/SessionImpl.cpp index dc21541a1..644be1f3e 100644 --- a/Data/ODBC/src/SessionImpl.cpp +++ b/Data/ODBC/src/SessionImpl.cpp @@ -43,8 +43,10 @@ SessionImpl::SessionImpl(const std::string& connect, _dbEncoding("UTF-8") { setFeature("bulk", true); + // this option is obsolete; here only to support older drivers, should be changed to ODBC_CURSOR_USE_NEVER + // https://github.com/MicrosoftDocs/sql-docs/blob/live/docs/odbc/reference/appendixes/using-the-odbc-cursor-library.md + setCursorUse("", ODBC_CURSOR_USE_IF_NEEDED); open(); - setProperty("handle", _db.handle()); } @@ -63,8 +65,10 @@ SessionImpl::SessionImpl(const std::string& connect, _dbEncoding("UTF-8") { setFeature("bulk", true); + // this option is obsolete; here only to support older drivers, should be changed to ODBC_CURSOR_USE_NEVER + // https://github.com/MicrosoftDocs/sql-docs/blob/live/docs/odbc/reference/appendixes/using-the-odbc-cursor-library.md + setCursorUse("", ODBC_CURSOR_USE_IF_NEEDED); open(); - setProperty("handle", _db.handle()); } @@ -104,69 +108,51 @@ void SessionImpl::open(const std::string& connect) setConnectionString(connect); } - poco_assert_dbg (!connectionString().empty()); + if (connectionString().empty()) + throw InvalidArgumentException("SessionImpl::open(): Connection string empty"); SQLULEN tout = static_cast(getLoginTimeout()); - if (Utility::isError(SQLSetConnectAttr(_db, SQL_ATTR_LOGIN_TIMEOUT, (SQLPOINTER) tout, 0))) + + if (_db.connect(connectionString(), tout)) { - if (Utility::isError(SQLGetConnectAttr(_db, SQL_ATTR_LOGIN_TIMEOUT, &tout, 0, 0)) || - getLoginTimeout() != tout) - { - ConnectionError e(_db); - throw ConnectionFailedException(e.toString()); - } + setProperty("handle", _db.handle()); + + _dataTypes.fillTypeInfo(_db.pHandle()); + addProperty("dataTypeInfo", + &SessionImpl::setDataTypeInfo, + &SessionImpl::dataTypeInfo); + + addFeature("autoCommit", + &SessionImpl::autoCommit, + &SessionImpl::isAutoCommit); + + addFeature("autoBind", + &SessionImpl::autoBind, + &SessionImpl::isAutoBind); + + addFeature("autoExtract", + &SessionImpl::autoExtract, + &SessionImpl::isAutoExtract); + + addProperty("maxFieldSize", + &SessionImpl::setMaxFieldSize, + &SessionImpl::getMaxFieldSize); + + addProperty("queryTimeout", + &SessionImpl::setQueryTimeout, + &SessionImpl::getQueryTimeout); + + addProperty("dbEncoding", + &SessionImpl::setDBEncoding, + &SessionImpl::getDBEncoding); + + Poco::Data::ODBC::SQLSetConnectAttr(_db, SQL_ATTR_QUIET_MODE, 0, 0); + + if (!canTransact()) autoCommit("", true); } - - SQLCHAR connectOutput[512] = {0}; - SQLSMALLINT result; - - if (Utility::isError(Poco::Data::ODBC::SQLDriverConnect(_db - , NULL - ,(SQLCHAR*) connectionString().c_str() - ,(SQLSMALLINT) SQL_NTS - , connectOutput - , sizeof(connectOutput) - , &result - , SQL_DRIVER_NOPROMPT))) - { - ConnectionError err(_db); - std::string errStr = err.toString(); - close(); - throw ConnectionFailedException(errStr); - } - - _dataTypes.fillTypeInfo(_db); - addProperty("dataTypeInfo", - &SessionImpl::setDataTypeInfo, - &SessionImpl::dataTypeInfo); - - addFeature("autoCommit", - &SessionImpl::autoCommit, - &SessionImpl::isAutoCommit); - - addFeature("autoBind", - &SessionImpl::autoBind, - &SessionImpl::isAutoBind); - - addFeature("autoExtract", - &SessionImpl::autoExtract, - &SessionImpl::isAutoExtract); - - addProperty("maxFieldSize", - &SessionImpl::setMaxFieldSize, - &SessionImpl::getMaxFieldSize); - - addProperty("queryTimeout", - &SessionImpl::setQueryTimeout, - &SessionImpl::getQueryTimeout); - - addProperty("dbEncoding", - &SessionImpl::setDBEncoding, - &SessionImpl::getDBEncoding); - - Poco::Data::ODBC::SQLSetConnectAttr(_db, SQL_ATTR_QUIET_MODE, 0, 0); - - if (!canTransact()) autoCommit("", true); + else + throw ConnectionException(SQL_NULL_HDBC, + Poco::format("Connection to '%s' failed.", connectionString())); } @@ -180,15 +166,62 @@ void SessionImpl::setDBEncoding(const std::string&, const Poco::Any& value) bool SessionImpl::isConnected() const { - SQLULEN value = 0; + return _db.isConnected(); +} - if (Utility::isError(Poco::Data::ODBC::SQLGetConnectAttr(_db, - SQL_ATTR_CONNECTION_DEAD, - &value, - 0, - 0))) return false; - return (SQL_CD_FALSE == value); +inline void SessionImpl::setCursorUse(const std::string&, const Poco::Any& value) +{ +#if POCO_OS == POCO_OS_WINDOWS_NT +#pragma warning (disable : 4995) // ignore marked as deprecated +#endif + int cursorUse = static_cast(Poco::AnyCast(value)); + int rc = 0; + switch (cursorUse) + { + case ODBC_CURSOR_USE_ALWAYS: + rc = Poco::Data::ODBC::SQLSetConnectAttr(_db, SQL_ATTR_ODBC_CURSORS, (SQLPOINTER)SQL_CUR_USE_ODBC, SQL_IS_INTEGER); + break; + case ODBC_CURSOR_USE_IF_NEEDED: + rc = Poco::Data::ODBC::SQLSetConnectAttr(_db, SQL_ATTR_ODBC_CURSORS, (SQLPOINTER)SQL_CUR_USE_IF_NEEDED, SQL_IS_INTEGER); + break; + case ODBC_CURSOR_USE_NEVER: + rc = Poco::Data::ODBC::SQLSetConnectAttr(_db, SQL_ATTR_ODBC_CURSORS, (SQLPOINTER)SQL_CUR_USE_DRIVER, SQL_IS_INTEGER); + break; + default: + throw Poco::InvalidArgumentException(Poco::format("SessionImpl::setCursorUse(%d)", cursorUse)); + } +#if POCO_OS == POCO_OS_WINDOWS_NT +#pragma warning (default : 4995) +#endif + if (Utility::isError(rc)) + { + throw Poco::Data::ODBC::HandleException(_db, Poco::format("SessionImpl::setCursorUse(%d)", cursorUse)); + } +} + + +inline Poco::Any SessionImpl::getCursorUse(const std::string&) const +{ +#if POCO_OS == POCO_OS_WINDOWS_NT +#pragma warning (disable : 4995) // ignore marked as deprecated +#endif + SQLUINTEGER curUse = 0; + Poco::Data::ODBC::SQLGetConnectAttr(_db, SQL_ATTR_ODBC_CURSORS, &curUse, SQL_IS_UINTEGER, 0); + switch (curUse) + { + case SQL_CUR_USE_ODBC: + return ODBC_CURSOR_USE_ALWAYS; + case SQL_CUR_USE_IF_NEEDED: + return ODBC_CURSOR_USE_IF_NEEDED; + case SQL_CUR_USE_DRIVER: + return ODBC_CURSOR_USE_NEVER; + default: break; + } + throw Poco::InvalidArgumentException(Poco::format("SessionImpl::getCursorUse(%u)", curUse)); +#if POCO_OS == POCO_OS_WINDOWS_NT +#pragma warning (default : 4995) +#endif } @@ -333,12 +366,14 @@ void SessionImpl::autoCommit(const std::string&, bool val) SQL_ATTR_AUTOCOMMIT, val ? (SQLPOINTER) SQL_AUTOCOMMIT_ON : (SQLPOINTER) SQL_AUTOCOMMIT_OFF, - SQL_IS_UINTEGER), "Failed to set automatic commit."); + SQL_IS_UINTEGER), "Failed to set autocommit."); } bool SessionImpl::isAutoCommit(const std::string&) const { + if (!_db) return false; + SQLULEN value = 0; checkError(Poco::Data::ODBC::SQLGetConnectAttr(_db, @@ -353,7 +388,7 @@ bool SessionImpl::isAutoCommit(const std::string&) const bool SessionImpl::isTransaction() const { - if (!canTransact()) return false; + if (!_db || !canTransact()) return false; SQLULEN value = 0; checkError(Poco::Data::ODBC::SQLGetConnectAttr(_db, @@ -419,7 +454,8 @@ void SessionImpl::close() { } - SQLDisconnect(_db); + _db.disconnect(); + setProperty("handle", SQL_NULL_HDBC); } diff --git a/Data/ODBC/src/TypeInfo.cpp b/Data/ODBC/src/TypeInfo.cpp index d667ad00b..8d4097a1d 100644 --- a/Data/ODBC/src/TypeInfo.cpp +++ b/Data/ODBC/src/TypeInfo.cpp @@ -27,7 +27,7 @@ TypeInfo::TypeInfo(SQLHDBC* pHDBC): _pHDBC(pHDBC) { fillCTypes(); fillSQLTypes(); - if (_pHDBC) fillTypeInfo(*_pHDBC); + if (_pHDBC) fillTypeInfo(_pHDBC); } @@ -62,7 +62,8 @@ void TypeInfo::fillCTypes() void TypeInfo::fillSQLTypes() { - _sqlDataTypes.insert(ValueType(SQL_C_CHAR, SQL_LONGVARCHAR)); + _sqlDataTypes.insert(ValueType(SQL_C_CHAR, SQL_VARCHAR)); + _sqlDataTypes.insert(ValueType(SQL_C_WCHAR, SQL_WVARCHAR)); _sqlDataTypes.insert(ValueType(SQL_C_BIT, SQL_BIT)); _sqlDataTypes.insert(ValueType(SQL_C_TINYINT, SQL_TINYINT)); _sqlDataTypes.insert(ValueType(SQL_C_STINYINT, SQL_TINYINT)); @@ -84,9 +85,9 @@ void TypeInfo::fillSQLTypes() } -void TypeInfo::fillTypeInfo(SQLHDBC pHDBC) +void TypeInfo::fillTypeInfo(const SQLHDBC* pHDBC) { - _pHDBC = &pHDBC; + _pHDBC = pHDBC; if (_typeInfo.empty() && _pHDBC) { @@ -98,7 +99,7 @@ void TypeInfo::fillTypeInfo(SQLHDBC pHDBC) rc = SQLAllocHandle(SQL_HANDLE_STMT, *_pHDBC, &hstmt); if (!SQL_SUCCEEDED(rc)) - throw StatementException(hstmt, "SQLGetData()"); + throw StatementException(hstmt, "ODBC::Preparator::fillTypeInfo():SQLGetData()"); rc = SQLGetTypeInfo(hstmt, SQL_ALL_TYPES); if (SQL_SUCCEEDED(rc)) diff --git a/Data/ODBC/testsuite/src/ODBCDB2Test.cpp b/Data/ODBC/testsuite/src/ODBCDB2Test.cpp index c880ad6fb..f79d1ea40 100644 --- a/Data/ODBC/testsuite/src/ODBCDB2Test.cpp +++ b/Data/ODBC/testsuite/src/ODBCDB2Test.cpp @@ -594,6 +594,9 @@ CppUnit::Test* ODBCDB2Test::suite() CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ODBCDB2Test"); CppUnit_addTest(pSuite, ODBCDB2Test, testBareboneODBC); + CppUnit_addTest(pSuite, ODBCDB2Test, testConnection); + CppUnit_addTest(pSuite, ODBCDB2Test, testSession); + CppUnit_addTest(pSuite, ODBCDB2Test, testSessionPool); CppUnit_addTest(pSuite, ODBCDB2Test, testZeroRows); CppUnit_addTest(pSuite, ODBCDB2Test, testSimpleAccess); CppUnit_addTest(pSuite, ODBCDB2Test, testComplexType); diff --git a/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp b/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp index bd90d438a..340c98658 100644 --- a/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp +++ b/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp @@ -421,6 +421,9 @@ CppUnit::Test* ODBCMySQLTest::suite() CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ODBCMySQLTest"); CppUnit_addTest(pSuite, ODBCMySQLTest, testBareboneODBC); + CppUnit_addTest(pSuite, ODBCMySQLTest, testConnection); + CppUnit_addTest(pSuite, ODBCMySQLTest, testSession); + CppUnit_addTest(pSuite, ODBCMySQLTest, testSessionPool); CppUnit_addTest(pSuite, ODBCMySQLTest, testZeroRows); CppUnit_addTest(pSuite, ODBCMySQLTest, testSimpleAccess); CppUnit_addTest(pSuite, ODBCMySQLTest, testComplexType); diff --git a/Data/ODBC/testsuite/src/ODBCOracleTest.cpp b/Data/ODBC/testsuite/src/ODBCOracleTest.cpp index 29091efe3..bee9ea036 100644 --- a/Data/ODBC/testsuite/src/ODBCOracleTest.cpp +++ b/Data/ODBC/testsuite/src/ODBCOracleTest.cpp @@ -854,6 +854,9 @@ CppUnit::Test* ODBCOracleTest::suite() CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ODBCOracleTest"); CppUnit_addTest(pSuite, ODBCOracleTest, testBareboneODBC); + CppUnit_addTest(pSuite, ODBCOracleTest, testConnection); + CppUnit_addTest(pSuite, ODBCOracleTest, testSession); + CppUnit_addTest(pSuite, ODBCOracleTest, testSessionPool); CppUnit_addTest(pSuite, ODBCOracleTest, testZeroRows); CppUnit_addTest(pSuite, ODBCOracleTest, testSimpleAccess); CppUnit_addTest(pSuite, ODBCOracleTest, testComplexType); diff --git a/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.cpp b/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.cpp index 81d467b59..6aafef3d7 100644 --- a/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.cpp +++ b/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.cpp @@ -583,6 +583,9 @@ CppUnit::Test* ODBCPostgreSQLTest::suite() CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ODBCPostgreSQLTest"); CppUnit_addTest(pSuite, ODBCPostgreSQLTest, testBareboneODBC); + CppUnit_addTest(pSuite, ODBCPostgreSQLTest, testConnection); + CppUnit_addTest(pSuite, ODBCPostgreSQLTest, testSession); + CppUnit_addTest(pSuite, ODBCPostgreSQLTest, testSessionPool); CppUnit_addTest(pSuite, ODBCPostgreSQLTest, testZeroRows); CppUnit_addTest(pSuite, ODBCPostgreSQLTest, testSimpleAccess); CppUnit_addTest(pSuite, ODBCPostgreSQLTest, testComplexType); diff --git a/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp b/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp index 7dfe338f0..e87771997 100644 --- a/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp +++ b/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp @@ -47,39 +47,26 @@ using Poco::DateTime; // uncomment to use native SQL driver //#define POCO_ODBC_USE_SQL_NATIVE -// FreeTDS version selection guide (from http://www.freetds.org/userguide/choosingtdsprotocol.htm) +// FreeTDS version selection guide: http://www.freetds.org/userguide/choosingtdsprotocol.htm // (see #define FREE_TDS_VERSION below) -// Product TDS Version Comment -// ---------------------------------------------------+------------+------------------------------------------------------------ -// Sybase before System 10, Microsoft SQL Server 6.x 4.2 Still works with all products, subject to its limitations. -// Sybase System 10 and above 5.0 Still the most current protocol used by Sybase. -// Sybase System SQL Anywhere 5.0 only Originally Watcom SQL Server, a completely separate codebase. -// Our best information is that SQL Anywhere first supported TDS -// in version 5.5.03 using the OpenServer Gateway (OSG), and native -// TDS 5.0 support arrived with version 6.0. -// Microsoft SQL Server 7.0 7.0 Includes support for the extended datatypes in SQL Server 7.0 -// (such as char/varchar fields of more than 255 characters), and -// support for Unicode. -// Microsoft SQL Server 2000 8.0 Include support for bigint (64 bit integers), variant and collation -// on all fields. variant is not supported; collation is not widely used. -#if defined(POCO_OS_FAMILY_WINDOWS) && !defined(FORCE_FREE_TDS) +#if !defined(FORCE_FREE_TDS) #ifdef POCO_ODBC_USE_SQL_NATIVE #define MS_SQL_SERVER_ODBC_DRIVER "SQL Server Native Client 10.0" #else - #define MS_SQL_SERVER_ODBC_DRIVER "SQL Server" + #define MS_SQL_SERVER_ODBC_DRIVER "ODBC Driver 18 for SQL Server" #endif #pragma message ("Using " MS_SQL_SERVER_ODBC_DRIVER " driver") #else #define MS_SQL_SERVER_ODBC_DRIVER "FreeTDS" - #define FREE_TDS_VERSION "8.0" + #define FREE_TDS_VERSION "7.4" #if defined(POCO_OS_FAMILY_WINDOWS) #pragma message ("Using " MS_SQL_SERVER_ODBC_DRIVER " driver, version " FREE_TDS_VERSION) #endif #endif #define MS_SQL_SERVER_DSN "PocoDataSQLServerTest" -#define MS_SQL_SERVER_SERVER POCO_ODBC_TEST_DATABASE_SERVER "\\SQLEXPRESS" +#define MS_SQL_SERVER_SERVER POCO_ODBC_TEST_DATABASE_SERVER #define MS_SQL_SERVER_PORT "1433" #define MS_SQL_SERVER_DB "poco" #define MS_SQL_SERVER_UID "poco" @@ -101,6 +88,7 @@ std::string ODBCSQLServerTest::_connectString = "DRIVER=" MS_SQL_SERVER_ODBC_DRI "DATABASE=" MS_SQL_SERVER_DB ";" "SERVER=" MS_SQL_SERVER_SERVER ";" "PORT=" MS_SQL_SERVER_PORT ";" + "Encrypt=no" #ifdef FREE_TDS_VERSION "TDS_Version=" FREE_TDS_VERSION ";" #endif @@ -120,7 +108,7 @@ ODBCSQLServerTest::~ODBCSQLServerTest() void ODBCSQLServerTest::testBareboneODBC() { - std::string tableCreateString = "CREATE TABLE Test " + std::string createString = "CREATE TABLE Test " "(First VARCHAR(30)," "Second VARCHAR(30)," "Third VARBINARY(30)," @@ -128,24 +116,47 @@ void ODBCSQLServerTest::testBareboneODBC() "Fifth FLOAT," "Sixth DATETIME)"; - executor().bareboneODBCTest(dbConnString(), tableCreateString, + executor().bareboneODBCTest(dbConnString(), createString, SQLExecutor::PB_IMMEDIATE, SQLExecutor::DE_MANUAL, true, "CONVERT(VARBINARY(30),?)"); - executor().bareboneODBCTest(dbConnString(), tableCreateString, + executor().bareboneODBCTest(dbConnString(), createString, SQLExecutor::PB_IMMEDIATE, SQLExecutor::DE_BOUND, true, "CONVERT(VARBINARY(30),?)"); - executor().bareboneODBCTest(dbConnString(), tableCreateString, + executor().bareboneODBCTest(dbConnString(), createString, SQLExecutor::PB_AT_EXEC, SQLExecutor::DE_MANUAL, true, "CONVERT(VARBINARY(30),?)"); - executor().bareboneODBCTest(dbConnString(), tableCreateString, + executor().bareboneODBCTest(dbConnString(), createString, SQLExecutor::PB_AT_EXEC, SQLExecutor::DE_BOUND, true, "CONVERT(VARBINARY(30),?)"); - tableCreateString = "CREATE TABLE Test " + createString = "CREATE TABLE Test " "(First VARCHAR(30)," "Second INTEGER," "Third FLOAT)"; - executor().bareboneODBCMultiResultTest(dbConnString(), tableCreateString, SQLExecutor::PB_IMMEDIATE, SQLExecutor::DE_MANUAL); - executor().bareboneODBCMultiResultTest(dbConnString(), tableCreateString, SQLExecutor::PB_IMMEDIATE, SQLExecutor::DE_BOUND); - executor().bareboneODBCMultiResultTest(dbConnString(), tableCreateString, SQLExecutor::PB_AT_EXEC, SQLExecutor::DE_MANUAL); - executor().bareboneODBCMultiResultTest(dbConnString(), tableCreateString, SQLExecutor::PB_AT_EXEC, SQLExecutor::DE_BOUND); + executor().bareboneODBCMultiResultTest(dbConnString(), createString, SQLExecutor::PB_IMMEDIATE, SQLExecutor::DE_MANUAL); + executor().bareboneODBCMultiResultTest(dbConnString(), createString, SQLExecutor::PB_IMMEDIATE, SQLExecutor::DE_BOUND); + executor().bareboneODBCMultiResultTest(dbConnString(), createString, SQLExecutor::PB_AT_EXEC, SQLExecutor::DE_MANUAL); + executor().bareboneODBCMultiResultTest(dbConnString(), createString, SQLExecutor::PB_AT_EXEC, SQLExecutor::DE_BOUND); + + dropObject("PROCEDURE", "TestStoredProcedure"); + createString = "CREATE PROCEDURE TestStoredProcedure(@inParam VARCHAR(MAX), @outParam VARCHAR(MAX) OUTPUT) AS " + "BEGIN " + " DECLARE @retVal int;" + " SET @outParam = @inParam; " + " SET @retVal = @outParam;" + " RETURN @retVal;" + "END;"; + + std::string execString = "{? = CALL TestStoredProcedure(?, ?)}"; + + executor().bareboneODBCStoredFuncTest(dbConnString(), createString, execString, SQLExecutor::PB_IMMEDIATE, SQLExecutor::DE_MANUAL); + executor().bareboneODBCStoredFuncTest(dbConnString(), createString, execString, SQLExecutor::PB_IMMEDIATE, SQLExecutor::DE_BOUND); + // data at exec fails for the SNAC driver - for some reason, SQLParamData() never reports the return parameter + // newer drivers work fine + if (std::string(MS_SQL_SERVER_ODBC_DRIVER) != "SQL Server") + { + executor().bareboneODBCStoredFuncTest(dbConnString(), createString, execString, SQLExecutor::PB_AT_EXEC, SQLExecutor::DE_MANUAL); + executor().bareboneODBCStoredFuncTest(dbConnString(), createString, execString, SQLExecutor::PB_AT_EXEC, SQLExecutor::DE_BOUND); + } + else + std::cout << "Parameter at exec binding tests disabled for " << MS_SQL_SERVER_ODBC_DRIVER << std::endl; } void ODBCSQLServerTest::testTempTable() @@ -161,13 +172,14 @@ void ODBCSQLServerTest::testTempTable() std::vector testParams; session() << ("select * from #test;"), into(testParams), now; - assertEquals(1, testParams.size()); + assertEquals(1, static_cast(testParams.size())); assertEquals(1, testParams.front().get<0>()); assertEquals(2, testParams.front().get<1>()); assertEquals(3, testParams.front().get<2>()); } + void ODBCSQLServerTest::testBLOB() { const std::size_t maxFldSize = 250000; @@ -262,285 +274,386 @@ void ODBCSQLServerTest::testBulk() void ODBCSQLServerTest::testStoredProcedure() { - for (int k = 0; k < 8;) + try { - session().setFeature("autoBind", bindValue(k)); - session().setFeature("autoExtract", bindValue(k+1)); + for (int k = 0; k < 8;) + { + session().setFeature("autoBind", bindValue(k)); + session().setFeature("autoExtract", bindValue(k + 1)); + dropObject("PROCEDURE", "storedProcedure"); + + session() << "CREATE PROCEDURE storedProcedure(@outParam int OUTPUT) AS " + "BEGIN " + " SET @outParam = -1; " + "END;" + , now; + + int i = 0; + session() << "{call storedProcedure(?)}", out(i), now; + assertTrue (-1 == i); + + dropObject("PROCEDURE", "storedProcedure"); + session() << "CREATE PROCEDURE storedProcedure(@inParam int, @outParam int OUTPUT) AS " + "BEGIN " + " SET @outParam = @inParam*@inParam; " + "END;" + , now; + + i = 2; + int j = 0; + session() << "{call storedProcedure(?, ?)}", in(i), out(j), now; + assertTrue (4 == j); + + dropObject("PROCEDURE", "storedProcedure"); + session() << "CREATE PROCEDURE storedProcedure(@ioParam int OUTPUT) AS " + "BEGIN " + " SET @ioParam = @ioParam*@ioParam; " + "END;" + , now; + + i = 2; + session() << "{call storedProcedure(?)}", io(i), now; + assertTrue (4 == i); + dropObject("PROCEDURE", "storedProcedure"); + + session() << "CREATE PROCEDURE storedProcedure(@ioParam DATETIME OUTPUT) AS " + "BEGIN " + " SET @ioParam = @ioParam + 1; " + "END;" , now; + + DateTime dt(1965, 6, 18, 5, 35, 1); + session() << "{call storedProcedure(?)}", io(dt), now; + assertTrue (19 == dt.day()); + dropObject("PROCEDURE", "storedProcedure"); + + session().setFeature("autoBind", true); + session() << "CREATE PROCEDURE storedProcedure(@inParam VARCHAR(MAX), @outParam VARCHAR(MAX) OUTPUT) AS " + "BEGIN " + " SET @outParam = @inParam; " + "END;" + , now; + + std::string inParam = "123"; + std::string outParam(4, 0); + session() << "{call storedProcedure(?, ?)}", in(inParam), out(outParam), now; + assertTrue(outParam == inParam); + + k += 2; + } dropObject("PROCEDURE", "storedProcedure"); - - session() << "CREATE PROCEDURE storedProcedure(@outParam int OUTPUT) AS " - "BEGIN " - "SET @outParam = -1; " - "END;" - , now; - - int i = 0; - session() << "{call storedProcedure(?)}", out(i), now; - assertTrue (-1 == i); - dropObject("PROCEDURE", "storedProcedure"); - - session() << "CREATE PROCEDURE storedProcedure(@inParam int, @outParam int OUTPUT) AS " - "BEGIN " - "SET @outParam = @inParam*@inParam; " - "END;" - , now; - - i = 2; - int j = 0; - session() << "{call storedProcedure(?, ?)}", in(i), out(j), now; - assertTrue (4 == j); - dropObject("PROCEDURE", "storedProcedure"); - - session() << "CREATE PROCEDURE storedProcedure(@ioParam int OUTPUT) AS " - "BEGIN " - "SET @ioParam = @ioParam*@ioParam; " - "END;" - , now; - - i = 2; - session() << "{call storedProcedure(?)}", io(i), now; - assertTrue (4 == i); - dropObject("PROCEDURE", "storedProcedure"); - - session() << "CREATE PROCEDURE storedProcedure(@ioParam DATETIME OUTPUT) AS " - "BEGIN " - " SET @ioParam = @ioParam + 1; " - "END;" , now; - - DateTime dt(1965, 6, 18, 5, 35, 1); - session() << "{call storedProcedure(?)}", io(dt), now; - assertTrue (19 == dt.day()); - dropObject("PROCEDURE", "storedProcedure"); - - k += 2; } -/*TODO - currently fails with following error: - -[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid parameter -2 (''): Data type 0x23 is a deprecated large object, or LOB, but is marked as output parameter. -Deprecated types are not supported as output parameters. Use current large object types instead. - - session().setFeature("autoBind", true); - session() << "CREATE PROCEDURE storedProcedure(@inParam VARCHAR(MAX), @outParam VARCHAR(MAX) OUTPUT) AS " - "BEGIN " - "SET @outParam = @inParam; " - "END;" - , now; - - std::string inParam = "123"; - std::string outParam; - try{ - session() << "{call storedProcedure(?, ?)}", in(inParam), out(outParam), now; - }catch(StatementException& ex){std::cout << ex.toString();} - assertTrue (outParam == inParam); - dropObject("PROCEDURE", "storedProcedure"); - */ + catch (ConnectionException& ce) { std::cout << ce.toString() << std::endl; fail("testStoredProcedure()"); } + catch (StatementException& se) { std::cout << se.toString() << std::endl; fail("testStoredProcedure()"); } } void ODBCSQLServerTest::testCursorStoredProcedure() { - for (int k = 0; k < 8;) + try { - session().setFeature("autoBind", bindValue(k)); - session().setFeature("autoExtract", bindValue(k+1)); + for (int k = 0; k < 8;) + { + session().setFeature("autoBind", bindValue(k)); + session().setFeature("autoExtract", bindValue(k+1)); - recreatePersonTable(); - typedef Tuple Person; - std::vector people; - people.push_back(Person("Simpson", "Homer", "Springfield", 42)); - people.push_back(Person("Simpson", "Bart", "Springfield", 12)); - people.push_back(Person("Simpson", "Lisa", "Springfield", 10)); - session() << "INSERT INTO Person VALUES (?, ?, ?, ?)", use(people), now; + recreatePersonTable(); + typedef Tuple Person; + std::vector people; + people.push_back(Person("Simpson", "Homer", "Springfield", 42)); + people.push_back(Person("Simpson", "Bart", "Springfield", 12)); + people.push_back(Person("Simpson", "Lisa", "Springfield", 10)); + session() << "INSERT INTO Person VALUES (?, ?, ?, ?)", use(people), now; + dropObject("PROCEDURE", "storedCursorProcedure"); + session() << "CREATE PROCEDURE storedCursorProcedure(@ageLimit int) AS " + "BEGIN " + " SELECT * " + " FROM Person " + " WHERE Age < @ageLimit " + " ORDER BY Age DESC; " + "END;" + , now; + + people.clear(); + int age = 13; + + session() << "{call storedCursorProcedure(?)}", in(age), into(people), now; + + assertTrue (2 == people.size()); + assertTrue (Person("Simpson", "Bart", "Springfield", 12) == people[0]); + assertTrue (Person("Simpson", "Lisa", "Springfield", 10) == people[1]); + + Statement stmt = ((session() << "{call storedCursorProcedure(?)}", in(age), now)); + RecordSet rs(stmt); + assertTrue (rs["LastName"] == "Simpson"); + assertTrue (rs["FirstName"] == "Bart"); + assertTrue (rs["Address"] == "Springfield"); + assertTrue (rs["Age"] == 12); + + dropObject("PROCEDURE", "storedCursorProcedure"); + + // procedure that suppresses row counts and recordsets + session() << "CREATE PROCEDURE storedCursorProcedure(@outStr varchar(64) OUTPUT) AS " + "BEGIN " + " SET NOCOUNT ON;" + " DECLARE @PersonTable TABLE (LastName VARCHAR(30), FirstName VARCHAR(30), Address VARCHAR(30), Age INTEGER); " + " INSERT INTO @PersonTable SELECT * FROM Person; " + " UPDATE Person SET FirstName = 'Dart' WHERE FirstName = 'Bart';" + " SELECT @outStr = FirstName FROM Person WHERE Age = 12;" + " RETURN -1;" + "END;" + , now; + + std::string outStr(64, 0); + int ret = 0; + session() << "{? = call storedCursorProcedure(?)}", out(ret), out(outStr), now; + assertTrue(ret == -1); + assertTrue(outStr == "Dart"); + + dropObject("PROCEDURE", "storedCursorProcedure"); + + // procedure that suppresses row counts and recordsets + session() << "CREATE PROCEDURE storedCursorProcedure(@name varchar(30)) AS " + "BEGIN " + " SET NOCOUNT ON;" + " DECLARE @count int; " + " SELECT @count = count(*) FROM Person WHERE FirstName = @name;" + " RETURN @count;" + "END;" + , now; + + std::string name = "Dart"; + ret = 0; + session() << "{? = call storedCursorProcedure(?)}", out(ret), in(name), now; + assertTrue(ret == 1); + + dropObject("TABLE", "Person"); + + k += 2; + } dropObject("PROCEDURE", "storedCursorProcedure"); - session() << "CREATE PROCEDURE storedCursorProcedure(@ageLimit int) AS " - "BEGIN " - " SELECT * " - " FROM Person " - " WHERE Age < @ageLimit " - " ORDER BY Age DESC; " - "END;" - , now; - - people.clear(); - int age = 13; - - session() << "{call storedCursorProcedure(?)}", in(age), into(people), now; - - assertTrue (2 == people.size()); - assertTrue (Person("Simpson", "Bart", "Springfield", 12) == people[0]); - assertTrue (Person("Simpson", "Lisa", "Springfield", 10) == people[1]); - - Statement stmt = ((session() << "{call storedCursorProcedure(?)}", in(age), now)); - RecordSet rs(stmt); - assertTrue (rs["LastName"] == "Simpson"); - assertTrue (rs["FirstName"] == "Bart"); - assertTrue (rs["Address"] == "Springfield"); - assertTrue (rs["Age"] == 12); - - dropObject("TABLE", "Person"); - dropObject("PROCEDURE", "storedCursorProcedure"); - - k += 2; } + catch (ConnectionException& ce) { std::cout << ce.toString() << std::endl; fail("testCursorStoredProcedure()"); } + catch (StatementException& se) { std::cout << se.toString() << std::endl; fail("testCursorStoredProcedure()"); } } void ODBCSQLServerTest::testStoredProcedureAny() { - for (int k = 0; k < 8;) + try { - session().setFeature("autoBind", bindValue(k)); - session().setFeature("autoExtract", bindValue(k+1)); + for (int k = 0; k < 8;) + { + session().setFeature("autoBind", bindValue(k)); + session().setFeature("autoExtract", bindValue(k+1)); - Any i = 2; - Any j = 0; + Any i = 2; + Any j = 0; - session() << "CREATE PROCEDURE storedProcedure(@inParam int, @outParam int OUTPUT) AS " - "BEGIN " - "SET @outParam = @inParam*@inParam; " - "END;" - , now; + dropObject("PROCEDURE", "storedProcedure"); + session() << "CREATE PROCEDURE storedProcedure(@inParam int, @outParam int OUTPUT) AS " + "BEGIN " + "SET @outParam = @inParam*@inParam; " + "END;" + , now; - session() << "{call storedProcedure(?, ?)}", in(i), out(j), now; - assertTrue (4 == AnyCast(j)); - session() << "DROP PROCEDURE storedProcedure;", now; + session() << "{call storedProcedure(?, ?)}", in(i), out(j), now; + assertTrue (4 == AnyCast(j)); - session() << "CREATE PROCEDURE storedProcedure(@ioParam int OUTPUT) AS " - "BEGIN " - "SET @ioParam = @ioParam*@ioParam; " - "END;" - , now; + dropObject("PROCEDURE", "storedProcedure"); + session() << "CREATE PROCEDURE storedProcedure(@ioParam int OUTPUT) AS " + "BEGIN " + "SET @ioParam = @ioParam*@ioParam; " + "END;" + , now; - i = 2; - session() << "{call storedProcedure(?)}", io(i), now; - assertTrue (4 == AnyCast(i)); + i = 2; + session() << "{call storedProcedure(?)}", io(i), now; + assertTrue (4 == AnyCast(i)); + dropObject("PROCEDURE", "storedProcedure"); + + k += 2; + } dropObject("PROCEDURE", "storedProcedure"); - - k += 2; } + catch (ConnectionException& ce) { std::cout << ce.toString() << std::endl; fail("testStoredProcedureAny()"); } + catch (StatementException& se) { std::cout << se.toString() << std::endl; fail("testStoredProcedureAny()"); } } void ODBCSQLServerTest::testStoredProcedureDynamicAny() { - for (int k = 0; k < 8;) + try { - session().setFeature("autoBind", bindValue(k)); + for (int k = 0; k < 8;) + { + session().setFeature("autoBind", bindValue(k)); - DynamicAny i = 2; - DynamicAny j = 0; + DynamicAny i = 2; + DynamicAny j = 0; - session() << "CREATE PROCEDURE storedProcedure(@inParam int, @outParam int OUTPUT) AS " - "BEGIN " - "SET @outParam = @inParam*@inParam; " - "END;" - , now; + dropObject("PROCEDURE", "storedProcedure"); + session() << "CREATE PROCEDURE storedProcedure(@inParam int, @outParam int OUTPUT) AS " + "BEGIN " + "SET @outParam = @inParam*@inParam; " + "END;" + , now; - session() << "{call storedProcedure(?, ?)}", in(i), out(j), now; - assertTrue (4 == j); - session() << "DROP PROCEDURE storedProcedure;", now; + session() << "{call storedProcedure(?, ?)}", in(i), out(j), now; + assertTrue (4 == j); - session() << "CREATE PROCEDURE storedProcedure(@ioParam int OUTPUT) AS " - "BEGIN " - "SET @ioParam = @ioParam*@ioParam; " - "END;" - , now; + dropObject("PROCEDURE", "storedProcedure"); + session() << "CREATE PROCEDURE storedProcedure(@ioParam int OUTPUT) AS " + "BEGIN " + "SET @ioParam = @ioParam*@ioParam; " + "END;" + , now; - i = 2; - session() << "{call storedProcedure(?)}", io(i), now; - assertTrue (4 == i); + i = 2; + session() << "{call storedProcedure(?)}", io(i), now; + assertTrue (4 == i); + + k += 2; + } dropObject("PROCEDURE", "storedProcedure"); - - k += 2; } + catch (ConnectionException& ce) { std::cout << ce.toString() << std::endl; fail("testStoredProcedureDynamicAny()"); } + catch (StatementException& se) { std::cout << se.toString() << std::endl; fail("testStoredProcedureDynamicAny()"); } +} + + +void ODBCSQLServerTest::testStoredProcedureReturn() +{ + try + { + for (int k = 0; k < 8;) + { + session().setFeature("autoBind", bindValue(k)); + session().setFeature("autoExtract", bindValue(k+1)); + + dropObject("PROCEDURE", "storedProcedureReturn"); + session() << "CREATE PROCEDURE storedProcedureReturn AS " + "BEGIN " + "DECLARE @retVal int;" + "SET @retVal = -1;" + "RETURN @retVal;" + "END;" + , now; + + int i = 0; + session() << "{? = call storedProcedureReturn}", out(i), now; + assertTrue (-1 == i); + + dropObject("PROCEDURE", "storedProcedureReturn"); + session() << "CREATE PROCEDURE storedProcedureReturn(@inParam int) AS " + "BEGIN " + "RETURN @inParam*@inParam;" + "END;" + , now; + + i = 2; + int result = 0; + session() << "{? = call storedProcedureReturn(?)}", out(result), in(i), now; + assertTrue (4 == result); + + dropObject("PROCEDURE", "storedProcedureReturn"); + session() << "CREATE PROCEDURE storedProcedureReturn(@inParam int, @outParam int OUTPUT) AS " + "BEGIN " + "SET @outParam = @inParam*@inParam;" + "RETURN @outParam;" + "END" + , now; + + i = 2; + int j = 0; + result = 0; + session() << "{? = call storedProcedureReturn(?, ?)}", out(result), in(i), out(j), now; + assertTrue (4 == j); + assertTrue (j == result); + + dropObject("PROCEDURE", "storedProcedureReturn"); + session() << "CREATE PROCEDURE storedProcedureReturn(@param1 int OUTPUT,@param2 int OUTPUT) AS " + "BEGIN " + "DECLARE @temp int; " + "SET @temp = @param1;" + "SET @param1 = @param2;" + "SET @param2 = @temp;" + "RETURN @param1 + @param2; " + "END" + , now; + + i = 1; + j = 2; + result = 0; + session() << "{? = call storedProcedureReturn(?, ?)}", out(result), io(i), io(j), now; + assertTrue (1 == j); + assertTrue (2 == i); + assertTrue (3 == result); + + Tuple params(1, 2); + assertTrue (1 == params.get<0>()); + assertTrue (2 == params.get<1>()); + result = 0; + session() << "{? = call storedProcedureReturn(?, ?)}", out(result), io(params), now; + assertTrue (1 == params.get<1>()); + assertTrue (2 == params.get<0>()); + assertTrue (3 == result); + + k += 2; + } + dropObject("PROCEDURE", "storedProcedureReturn"); + } + catch (ConnectionException& ce) { std::cout << ce.toString() << std::endl; fail("testStoredProcedureReturn()"); } + catch (StatementException& se) { std::cout << se.toString() << std::endl; fail("testStoredProcedureReturn()"); } } void ODBCSQLServerTest::testStoredFunction() { - for (int k = 0; k < 8;) + try { - session().setFeature("autoBind", bindValue(k)); - session().setFeature("autoExtract", bindValue(k+1)); + for (int k = 0; k < 8;) + { + session().setFeature("autoBind", bindValue(k)); + session().setFeature("autoExtract", bindValue(k + 1)); - dropObject("PROCEDURE", "storedFunction"); - session() << "CREATE PROCEDURE storedFunction AS " - "BEGIN " - "DECLARE @retVal int;" - "SET @retVal = -1;" - "RETURN @retVal;" - "END;" - , now; + dropObject("FUNCTION", "storedFunction"); + session() << "CREATE FUNCTION storedFunction() " + " RETURNS int AS " + "BEGIN " + " DECLARE @retVal int;" + " SET @retVal = -1;" + " RETURN @retVal;" + "END;" + , now; - int i = 0; - session() << "{? = call storedFunction}", out(i), now; - assertTrue (-1 == i); - dropObject("PROCEDURE", "storedFunction"); + int i = 0; + session() << "{? = call dbo.storedFunction}", out(i), now; + assertTrue(-1 == i); + dropObject("FUNCTION", "storedFunction"); + session() << "CREATE FUNCTION storedFunction(@inParam int) " + "RETURNS int AS " + "BEGIN " + " RETURN @inParam*@inParam;" + "END;" + , now; - session() << "CREATE PROCEDURE storedFunction(@inParam int) AS " - "BEGIN " - "RETURN @inParam*@inParam;" - "END;" - , now; + i = 2; + int result = 0; + session() << "{? = call dbo.storedFunction(?)}", out(result), in(i), now; + assertTrue(4 == result); + result = 0; + session() << "SELECT dbo.storedFunction(?)", into(result), in(i), now; + assertTrue(4 == result); - i = 2; - int result = 0; - session() << "{? = call storedFunction(?)}", out(result), in(i), now; - assertTrue (4 == result); - dropObject("PROCEDURE", "storedFunction"); - - - session() << "CREATE PROCEDURE storedFunction(@inParam int, @outParam int OUTPUT) AS " - "BEGIN " - "SET @outParam = @inParam*@inParam;" - "RETURN @outParam;" - "END" - , now; - - i = 2; - int j = 0; - result = 0; - session() << "{? = call storedFunction(?, ?)}", out(result), in(i), out(j), now; - assertTrue (4 == j); - assertTrue (j == result); - dropObject("PROCEDURE", "storedFunction"); - - - session() << "CREATE PROCEDURE storedFunction(@param1 int OUTPUT,@param2 int OUTPUT) AS " - "BEGIN " - "DECLARE @temp int; " - "SET @temp = @param1;" - "SET @param1 = @param2;" - "SET @param2 = @temp;" - "RETURN @param1 + @param2; " - "END" - , now; - - i = 1; - j = 2; - result = 0; - session() << "{? = call storedFunction(?, ?)}", out(result), io(i), io(j), now; - assertTrue (1 == j); - assertTrue (2 == i); - assertTrue (3 == result); - - Tuple params(1, 2); - assertTrue (1 == params.get<0>()); - assertTrue (2 == params.get<1>()); - result = 0; - session() << "{? = call storedFunction(?, ?)}", out(result), io(params), now; - assertTrue (1 == params.get<1>()); - assertTrue (2 == params.get<0>()); - assertTrue (3 == result); - - dropObject("PROCEDURE", "storedFunction"); - - k += 2; + k += 2; + } + dropObject("FUNCTION", "storedFunction"); } + catch (ConnectionException& ce) { std::cout << ce.toString() << std::endl; fail("testStoredFunction()"); } + catch (StatementException& se) { std::cout << se.toString() << std::endl; fail("testStoredFunction()"); } } @@ -552,19 +665,15 @@ void ODBCSQLServerTest::dropObject(const std::string& type, const std::string& n } catch (StatementException& ex) { - bool ignoreError = false; const StatementDiagnostics::FieldVec& flds = ex.diagnostics().fields(); StatementDiagnostics::Iterator it = flds.begin(); for (; it != flds.end(); ++it) { - if (3701 == it->_nativeError)//(table does not exist) - { - ignoreError = true; - break; - } + if (3701 == it->_nativeError) // (does not exist) + return; } - if (!ignoreError) throw; + throw; } } @@ -725,13 +834,13 @@ void ODBCSQLServerTest::recreateLogTable() try { std::string sql = "CREATE TABLE %s " - "(Source VARCHAR(max)," - "Name VARCHAR(max)," + "(Source VARCHAR(256)," + "Name VARCHAR(256)," "ProcessId INTEGER," - "Thread VARCHAR(max), " + "Thread VARCHAR(256), " "ThreadId INTEGER," "Priority INTEGER," - "Text VARCHAR(max)," + "Text VARCHAR(1024)," "DateTime DATETIME)"; session() << sql, "T_POCO_LOG", now; @@ -779,6 +888,9 @@ CppUnit::Test* ODBCSQLServerTest::suite() CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ODBCSQLServerTest"); CppUnit_addTest(pSuite, ODBCSQLServerTest, testBareboneODBC); + CppUnit_addTest(pSuite, ODBCSQLServerTest, testConnection); + CppUnit_addTest(pSuite, ODBCSQLServerTest, testSession); + CppUnit_addTest(pSuite, ODBCSQLServerTest, testSessionPool); CppUnit_addTest(pSuite, ODBCSQLServerTest, testZeroRows); CppUnit_addTest(pSuite, ODBCSQLServerTest, testSimpleAccess); CppUnit_addTest(pSuite, ODBCSQLServerTest, testComplexType); @@ -828,6 +940,7 @@ CppUnit::Test* ODBCSQLServerTest::suite() CppUnit_addTest(pSuite, ODBCSQLServerTest, testBLOB); CppUnit_addTest(pSuite, ODBCSQLServerTest, testBLOBContainer); CppUnit_addTest(pSuite, ODBCSQLServerTest, testBLOBStmt); + CppUnit_addTest(pSuite, ODBCSQLServerTest, testRecordSet); CppUnit_addTest(pSuite, ODBCSQLServerTest, testDateTime); CppUnit_addTest(pSuite, ODBCSQLServerTest, testFloat); CppUnit_addTest(pSuite, ODBCSQLServerTest, testDouble); @@ -838,6 +951,7 @@ CppUnit::Test* ODBCSQLServerTest::suite() CppUnit_addTest(pSuite, ODBCSQLServerTest, testCursorStoredProcedure); CppUnit_addTest(pSuite, ODBCSQLServerTest, testStoredProcedureAny); CppUnit_addTest(pSuite, ODBCSQLServerTest, testStoredProcedureDynamicAny); + CppUnit_addTest(pSuite, ODBCSQLServerTest, testStoredProcedureReturn); CppUnit_addTest(pSuite, ODBCSQLServerTest, testStoredFunction); CppUnit_addTest(pSuite, ODBCSQLServerTest, testInternalExtraction); CppUnit_addTest(pSuite, ODBCSQLServerTest, testFilter); diff --git a/Data/ODBC/testsuite/src/ODBCSQLServerTest.h b/Data/ODBC/testsuite/src/ODBCSQLServerTest.h index c58b56c46..cb20f8449 100644 --- a/Data/ODBC/testsuite/src/ODBCSQLServerTest.h +++ b/Data/ODBC/testsuite/src/ODBCSQLServerTest.h @@ -26,13 +26,14 @@ class ODBCSQLServerTest: public ODBCTest /// SQLServer ODBC test class /// Tested: /// - /// Driver | DB | OS - /// --------------------+-----------------------------------+------------------------------------------ - /// 2000.86.1830.00 | SQL Server Express 9.0.2047 | MS Windows XP Professional x64 v.2003/SP1 - /// 2005.90.2047.00 | SQL Server Express 9.0.2047 | MS Windows XP Professional x64 v.2003/SP1 - /// 2009.100.1600.01 | SQL Server Express 10.50.1600.1 | MS Windows XP Professional x64 v.2003/SP1 - /// - + /// Driver name | Driver version | DB version | OS + /// ------------------------------------+-------------------+-----------------------+------------------------------------------ + /// SQL Server Express 9.0.2047 | 2000.86.1830.00 | | MS Windows XP Professional x64 v.2003/SP1 + /// SQL Server Express 9.0.2047 | 2005.90.2047.00 | | MS Windows XP Professional x64 v.2003/SP1 + /// SQL Server Express 10.50.1600.1 | 2009.100.1600.01 | | MS Windows XP Professional x64 v.2003/SP1 + /// SQL Server | 10.00.22621.1992 | 16.0.1000.6 (64-bit) | Windows 11 + /// ODBC Driver 17 for SQL Server | 2017.1710.03.01 | 16.0.1000.6 (64-bit) | Windows 11 + /// ODBC Driver 18 for SQL Server | 2018.183.01.01 | 16.0.1000.6 (64-bit) | Windows 11 { public: ODBCSQLServerTest(const std::string& name); @@ -51,6 +52,7 @@ public: void testStoredProcedureAny(); void testStoredProcedureDynamicAny(); + void testStoredProcedureReturn(); void testStoredFunction(); static CppUnit::Test* suite(); diff --git a/Data/ODBC/testsuite/src/ODBCSQLiteTest.cpp b/Data/ODBC/testsuite/src/ODBCSQLiteTest.cpp index 61b4bcf60..cbaf04bc1 100644 --- a/Data/ODBC/testsuite/src/ODBCSQLiteTest.cpp +++ b/Data/ODBC/testsuite/src/ODBCSQLiteTest.cpp @@ -323,6 +323,9 @@ CppUnit::Test* ODBCSQLiteTest::suite() CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ODBCSQLiteTest"); CppUnit_addTest(pSuite, ODBCSQLiteTest, testBareboneODBC); + CppUnit_addTest(pSuite, ODBCSQLiteTest, testConnection); + CppUnit_addTest(pSuite, ODBCSQLiteTest, testSession); + CppUnit_addTest(pSuite, ODBCSQLiteTest, testSessionPool); CppUnit_addTest(pSuite, ODBCSQLiteTest, testZeroRows); CppUnit_addTest(pSuite, ODBCSQLiteTest, testSimpleAccess); CppUnit_addTest(pSuite, ODBCSQLiteTest, testComplexType); diff --git a/Data/ODBC/testsuite/src/ODBCTest.cpp b/Data/ODBC/testsuite/src/ODBCTest.cpp index 6d5e98b7b..e1ce3c8c4 100644 --- a/Data/ODBC/testsuite/src/ODBCTest.cpp +++ b/Data/ODBC/testsuite/src/ODBCTest.cpp @@ -77,6 +77,24 @@ ODBCTest::~ODBCTest() } +void ODBCTest::testConnection() +{ + _pExecutor->connection(_rConnectString); +} + + +void ODBCTest::testSession() +{ + _pExecutor->session(_rConnectString, 5); +} + + +void ODBCTest::testSessionPool() +{ + _pExecutor->sessionPool(_rConnectString, 1, 4, 3, 5); +} + + void ODBCTest::testZeroRows() { if (!_pSession) fail ("Test not available."); @@ -842,6 +860,21 @@ void ODBCTest::testBLOBStmt() } +void ODBCTest::testRecordSet() +{ + if (!_pSession) fail ("Test not available."); + + for (int i = 0; i < 8;) + { + recreatePersonDateTimeTable(); + _pSession->setFeature("autoBind", bindValue(i)); + _pSession->setFeature("autoExtract", bindValue(i+1)); + _pExecutor->recordSet(); + i += 2; + } +} + + void ODBCTest::testDateTime() { if (!_pSession) fail ("Test not available."); @@ -1368,7 +1401,7 @@ ODBCTest::SessionPtr ODBCTest::init(const std::string& driver, try { - std::cout << "Conecting to [" << dbConnString << ']' << std::endl; + std::cout << "Connecting to [" << dbConnString << ']' << std::endl; SessionPtr ptr = new Session(Poco::Data::ODBC::Connector::KEY, dbConnString, 5); if (!dbEncoding.empty()) ptr->setProperty("dbEncoding", dbEncoding); diff --git a/Data/ODBC/testsuite/src/ODBCTest.h b/Data/ODBC/testsuite/src/ODBCTest.h index 4fe16f68c..9605b780b 100644 --- a/Data/ODBC/testsuite/src/ODBCTest.h +++ b/Data/ODBC/testsuite/src/ODBCTest.h @@ -23,7 +23,7 @@ #include "SQLExecutor.h" -#define POCO_ODBC_TEST_DATABASE_SERVER "localhost" +#define POCO_ODBC_TEST_DATABASE_SERVER "10.211.55.5"//"localhost" class ODBCTest: public CppUnit::TestCase @@ -47,6 +47,10 @@ public: virtual void testBareboneODBC() = 0; + virtual void testConnection(); + virtual void testSession(); + virtual void testSessionPool(); + virtual void testZeroRows(); virtual void testSimpleAccess(); virtual void testComplexType(); @@ -107,6 +111,8 @@ public: virtual void testBLOBContainer(); virtual void testBLOBStmt(); + virtual void testRecordSet(); + virtual void testDateTime(); virtual void testDate(); virtual void testTime(); diff --git a/Data/ODBC/testsuite/src/SQLExecutor.cpp b/Data/ODBC/testsuite/src/SQLExecutor.cpp index 84f44c7aa..e8dc060d1 100644 --- a/Data/ODBC/testsuite/src/SQLExecutor.cpp +++ b/Data/ODBC/testsuite/src/SQLExecutor.cpp @@ -29,6 +29,8 @@ #include "Poco/Data/Date.h" #include "Poco/Data/Time.h" #include "Poco/Data/LOB.h" +#include "Poco/Data/Session.h" +#include "Poco/Data/SessionPool.h" #include "Poco/Data/StatementImpl.h" #include "Poco/Data/RecordSet.h" #include "Poco/Data/RowIterator.h" @@ -54,6 +56,7 @@ using namespace Poco::Data::Keywords; using Poco::Data::Session; +using Poco::Data::SessionPool; using Poco::Data::Statement; using Poco::Data::RecordSet; using Poco::Data::Column; @@ -73,6 +76,7 @@ using Poco::Data::ODBC::Preparator; using Poco::Data::ODBC::ConnectionException; using Poco::Data::ODBC::StatementException; using Poco::Data::ODBC::DataTruncatedException; +using Poco::Data::ODBC::ConnectionError; using Poco::Data::ODBC::StatementError; using Poco::format; using Poco::Tuple; @@ -354,13 +358,13 @@ void SQLExecutor::bareboneODBCTest(const std::string& dbConnString, assertTrue (SQL_SUCCEEDED(rc) || SQL_NO_DATA == rc); SQLULEN dateTimeColSize = 0; - SQLSMALLINT dateTimeDecDigits = 0; + SQLSMALLINT dateTimeDecDigits = -1; if (SQL_SUCCEEDED(rc)) { SQLLEN ind = 0; rc = SQLGetData(hstmt, 3, SQL_C_SLONG, &dateTimeColSize, sizeof(SQLINTEGER), &ind); poco_odbc_check_stmt (rc, hstmt); - rc = SQLGetData(hstmt, 14, SQL_C_SSHORT, &dateTimeDecDigits, sizeof(SQLSMALLINT), &ind); + rc = SQLGetData(hstmt, 15, SQL_C_SSHORT, &dateTimeDecDigits, sizeof(SQLSMALLINT), &ind); poco_odbc_check_stmt (rc, hstmt); assertTrue (sizeof(SQL_TIMESTAMP_STRUCT) <= dateTimeColSize); @@ -484,17 +488,25 @@ void SQLExecutor::bareboneODBCTest(const std::string& dbConnString, 0); poco_odbc_check_stmt (rc, hstmt); - SQLSMALLINT dataType = 0; - SQLULEN parameterSize = 0; - SQLSMALLINT decimalDigits = 0; - SQLSMALLINT nullable = 0; - rc = SQLDescribeParam(hstmt, 6, &dataType, ¶meterSize, &decimalDigits, &nullable); - if (SQL_SUCCEEDED(rc)) + if (dateTimeColSize == 0 || dateTimeDecDigits == -1) { - if (parameterSize) - dateTimeColSize = parameterSize; - if (decimalDigits) - dateTimeDecDigits = decimalDigits; + SQLSMALLINT dataType = 0; + SQLULEN parameterSize = 0; + SQLSMALLINT decimalDigits = -1; + SQLSMALLINT nullable = 0; + rc = SQLDescribeParam(hstmt, 6, &dataType, ¶meterSize, &decimalDigits, &nullable); + if (SQL_SUCCEEDED(rc)) + { + if (parameterSize != 0 && dateTimeColSize == 0) + dateTimeColSize = parameterSize; + if (decimalDigits != -1 && dateTimeDecDigits == -1) + dateTimeDecDigits = decimalDigits; + } + else + { + std::cerr << '[' << name() << ']' << " Warning: could not get SQL_TYPE_TIMESTAMP " + "parameter description." << std::endl; + } } else std::cerr << '[' << name() << ']' << " Warning: could not get SQL_TYPE_TIMESTAMP parameter description." << std::endl; @@ -939,6 +951,191 @@ void SQLExecutor::bareboneODBCMultiResultTest(const std::string& dbConnString, } +void SQLExecutor::bareboneODBCStoredFuncTest(const std::string& dbConnString, + const std::string& procCreateString, + const std::string& procExecuteString, + SQLExecutor::DataBinding bindMode, + SQLExecutor::DataExtraction extractMode) +{ + SQLRETURN rc; + SQLHENV henv = SQL_NULL_HENV; + SQLHDBC hdbc = SQL_NULL_HDBC; + SQLHSTMT hstmt = SQL_NULL_HSTMT; + + // Environment begin + rc = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv); + poco_odbc_check_env(rc, henv); + rc = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0); + poco_odbc_check_env(rc, henv); + + // Connection begin + rc = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc); + poco_odbc_check_dbc(rc, hdbc); + + SQLCHAR connectOutput[1024] = { 0 }; + SQLSMALLINT result; + rc = SQLDriverConnect(hdbc + , NULL + , (SQLCHAR*)dbConnString.c_str() + , (SQLSMALLINT)SQL_NTS + , connectOutput + , sizeof(connectOutput) + , &result + , SQL_DRIVER_NOPROMPT); + poco_odbc_check_dbc(rc, hdbc); + + // retrieve datetime type information for this DBMS + rc = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); + poco_odbc_check_stmt(rc, hstmt); + + rc = SQLGetTypeInfo(hstmt, SQL_TYPE_TIMESTAMP); + poco_odbc_check_stmt(rc, hstmt); + + rc = SQLFetch(hstmt); + assertTrue(SQL_SUCCEEDED(rc) || SQL_NO_DATA == rc); + + SQLULEN dateTimeColSize = 0; + SQLSMALLINT dateTimeDecDigits = -1; + if (SQL_SUCCEEDED(rc)) + { + SQLLEN ind = 0; + rc = SQLGetData(hstmt, 3, SQL_C_SLONG, &dateTimeColSize, sizeof(SQLINTEGER), &ind); + poco_odbc_check_stmt(rc, hstmt); + rc = SQLGetData(hstmt, 15, SQL_C_SSHORT, &dateTimeDecDigits, sizeof(SQLSMALLINT), &ind); + poco_odbc_check_stmt(rc, hstmt); + + assertTrue(sizeof(SQL_TIMESTAMP_STRUCT) <= dateTimeColSize); + } + else if (SQL_NO_DATA == rc) + std::cerr << '[' << name() << ']' << " Warning: no SQL_TYPE_TIMESTAMP data type info returned by driver." << std::endl; + + rc = SQLFreeHandle(SQL_HANDLE_STMT, hstmt); + poco_odbc_check_stmt(rc, hstmt); + + // Statement begin + rc = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt); + poco_odbc_check_stmt(rc, hstmt); + + std::string sql = "DROP PROCEDURE TestStoredProcedure"; + SQLCHAR* pStr = (SQLCHAR*)sql.c_str(); + SQLExecDirect(hstmt, pStr, (SQLINTEGER)sql.length()); + //no return code check - ignore drop errors + + // create stored prcedure and go + sql = procCreateString; + pStr = (SQLCHAR*)sql.c_str(); + rc = SQLPrepare(hstmt, pStr, (SQLINTEGER)sql.length()); + poco_odbc_check_stmt(rc, hstmt); + + rc = SQLExecute(hstmt); + poco_odbc_check_stmt(rc, hstmt); + + char inParam[10] = "1234"; + char outParam[10] = ""; + char retVal[10] = ""; + + sql = procExecuteString; + pStr = (SQLCHAR*)sql.c_str(); + rc = SQLPrepare(hstmt, pStr, (SQLINTEGER)sql.length()); + poco_odbc_check_stmt(rc, hstmt); + + SQLLEN li[3] = { SQL_NTS, SQL_NTS, SQL_NTS }; + SQLINTEGER size = (SQLINTEGER)strlen(inParam); + + if (SQLExecutor::PB_AT_EXEC == bindMode) + li[0] = SQL_LEN_DATA_AT_EXEC(size); + + rc = SQLBindParameter(hstmt, + (SQLUSMALLINT)1, + SQL_PARAM_OUTPUT, + SQL_C_CHAR, + SQL_VARCHAR, + (SQLUINTEGER)sizeof(retVal), + 0, + (SQLPOINTER)retVal, + sizeof(retVal), + &li[0]); + poco_odbc_check_stmt(rc, hstmt); + + if (SQLExecutor::PB_AT_EXEC == bindMode) + li[1] = SQL_LEN_DATA_AT_EXEC(size); + + rc = SQLBindParameter(hstmt, + (SQLUSMALLINT)2, + SQL_PARAM_INPUT, + SQL_C_CHAR, + SQL_VARCHAR, + (SQLUINTEGER)sizeof(inParam), + 0, + (SQLPOINTER)inParam, + sizeof(inParam), + &li[1]); + poco_odbc_check_stmt(rc, hstmt); + + if (SQLExecutor::PB_AT_EXEC == bindMode) + li[2] = SQL_LEN_DATA_AT_EXEC(size); + + rc = SQLBindParameter(hstmt, + (SQLUSMALLINT)3, + SQL_PARAM_OUTPUT, + SQL_C_CHAR, + SQL_VARCHAR, + (SQLUINTEGER)sizeof(outParam), + 0, + (SQLPOINTER)outParam, + sizeof(outParam), + &li[2]); + poco_odbc_check_stmt(rc, hstmt); + + rc = SQLExecute(hstmt); + if (rc && SQL_NEED_DATA != rc) + { + std::cout << "rc=" << rc << ", SQL_NEED_DATA=" << SQL_NEED_DATA << '\n'; + poco_odbc_check_stmt(rc, hstmt); + } + assertTrue(SQL_NEED_DATA == rc || SQL_SUCCEEDED(rc)); + + if (SQL_NEED_DATA == rc) + { + SQLPOINTER pParam = 0; + while (SQL_NEED_DATA == (rc = SQLParamData(hstmt, &pParam))) + { + if ((pParam != (SQLPOINTER)retVal) && + (pParam != (SQLPOINTER)inParam) && + (pParam != (SQLPOINTER)outParam)) + { + fail("Parameter mismatch."); + } + + assertTrue(0 != (SQLINTEGER)size); + rc = SQLPutData(hstmt, pParam, (SQLINTEGER)size); + poco_odbc_check_stmt(rc, hstmt); + } + } + poco_odbc_check_stmt(rc, hstmt); + assertTrue(std::string(outParam) == std::string(inParam)); + assertTrue(std::string(retVal) == std::string(inParam)); + + sql = "DROP PROCEDURE TestStoredProcedure"; + pStr = (SQLCHAR*)sql.c_str(); + rc = SQLExecDirect(hstmt, pStr, (SQLINTEGER)sql.length()); + poco_odbc_check_stmt(rc, hstmt); + + rc = SQLFreeHandle(SQL_HANDLE_STMT, hstmt); + poco_odbc_check_stmt(rc, hstmt); + + // Connection end + rc = SQLDisconnect(hdbc); + poco_odbc_check_dbc(rc, hdbc); + rc = SQLFreeHandle(SQL_HANDLE_DBC, hdbc); + poco_odbc_check_dbc(rc, hdbc); + + // Environment end + rc = SQLFreeHandle(SQL_HANDLE_ENV, henv); + poco_odbc_check_env(rc, henv); +} + + void SQLExecutor::execute(const std::string& sql) { try { session() << sql, now; } @@ -947,6 +1144,314 @@ void SQLExecutor::execute(const std::string& sql) } +void SQLExecutor::connection(const std::string& connectString) +{ + Poco::Data::ODBC::Connection c; + assertFalse (c.isConnected()); + assertTrue (c.connect(connectString, 5)); + assertTrue (c.isConnected()); + assertTrue (c.getTimeout() == 5); + c.setTimeout(6); + assertTrue (c.getTimeout() == 6); + assertTrue (c.disconnect()); + assertFalse (c.isConnected()); + assertTrue (c.connect(connectString)); + assertTrue (c.isConnected()); + try + { + c.connect(); + fail ("Connection attempt must fail when already connected"); + } + catch(const Poco::InvalidAccessException&){} + assertTrue (c.disconnect()); + assertFalse (c.isConnected()); + try + { + c.connect(); + fail ("Connection attempt with empty string must fail"); + } + catch(const Poco::InvalidArgumentException&){} +} + + +void SQLExecutor::session(const std::string& connectString, int timeout) +{ + Poco::Data::Session s(Poco::Data::ODBC::Connector::KEY, connectString, timeout); + assertTrue (s.isConnected()); + s.close(); + assertTrue (!s.isConnected()); + s.open(); + assertTrue (s.isConnected()); + s.reconnect(); + assertTrue (s.isConnected()); + s.close(); + assertTrue (!s.isConnected()); + s.reconnect(); + assertTrue (s.isConnected()); + + Poco::Any any = s.getProperty("handle"); + assertTrue (typeid(SQLHDBC) == any.type()); + SQLHDBC hdbc = Poco::AnyCast(any); + assertTrue (SQL_NULL_HDBC != hdbc); + SQLRETURN rc = SQLDisconnect(hdbc); + assertTrue (!Utility::isError(rc)); + assertTrue (!s.isConnected()); + s.open(); + assertTrue (s.isConnected()); + + hdbc = Poco::AnyCast(any); + rc = SQLDisconnect(hdbc); + assertTrue (!Utility::isError(rc)); + assertTrue (!s.isConnected()); + s.reconnect(); + assertTrue (s.isConnected()); + s.close(); + assertTrue (!s.isConnected()); + s.reconnect(); + assertTrue (s.isConnected()); + s.reconnect(); + assertTrue (s.isConnected()); +} + + +void SQLExecutor::sessionPool(const std::string& connectString, int minSessions, int maxSessions, int idleTime, int timeout) +{ + assertTrue (minSessions <= maxSessions); + + SessionPool sp("ODBC", connectString, minSessions, maxSessions, idleTime, timeout); + assertEqual (0, sp.allocated()); + assertEqual (maxSessions, sp.available()); + Session s1 = sp.get(); + assertEqual (minSessions, sp.allocated()); + assertEqual (maxSessions-1, sp.available()); + s1 = sp.get(); + assertEqual (2, sp.allocated()); + assertEqual (maxSessions-1, sp.available()); + { + Session s2 = sp.get(); + assertEqual (2, sp.allocated()); + assertEqual (maxSessions-2, sp.available()); + } + assertEqual (2, sp.allocated()); + assertEqual (maxSessions-1, sp.available()); + + Thread::sleep(idleTime + 500); + assertEqual (maxSessions-minSessions, sp.available()); + + try + { + sp.setFeature("autoBind", true); + fail("SessionPool must throw on setFeature after the first session was created."); + } + catch(const Poco::InvalidAccessException&) {} + try + { + sp.setProperty("handle", SQL_NULL_HDBC); + fail("SessionPool must throw on setProperty after the first session was created."); + } + catch(const Poco::InvalidAccessException&) {} + + std::vector sessions; + for (int i = 0; i < maxSessions-minSessions; ++i) + { + sessions.push_back(sp.get()); + } + + try + { + Session s = sp.get(); + fail("SessionPool must throw when no sesions available."); + } + catch(const Poco::Data::SessionPoolExhaustedException&) {} + + sp.shutdown(); + try + { + Session s = sp.get(); + fail("SessionPool that was shut down must throw on get."); + } + catch(const Poco::InvalidAccessException&) {} + + { + SessionPool pool("ODBC", connectString, 1, 4, 2, 10); + + pool.setFeature("f1", true); + assertTrue (pool.getFeature("f1")); + try { pool.getFeature("g1"); fail ("must fail"); } + catch ( Poco::NotFoundException& ) { } + + pool.setProperty("p1", 1); + assertTrue (1 == Poco::AnyCast(pool.getProperty("p1"))); + try { pool.getProperty("r1"); fail ("must fail"); } + catch ( Poco::NotFoundException& ) { } + + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 0); + assertTrue (pool.idle() == 0); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 4); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + Session s1(pool.get()); + + assertTrue (s1.getFeature("f1")); + assertTrue (1 == Poco::AnyCast(s1.getProperty("p1"))); + + try { pool.setFeature("f1", true); fail ("must fail"); } + catch ( Poco::InvalidAccessException& ) { } + + try { pool.setProperty("p1", 1); fail ("must fail"); } + catch ( Poco::InvalidAccessException& ) { } + + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 1); + assertTrue (pool.idle() == 0); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 3); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + + Session s2(pool.get("f1", false)); + assertTrue (!s2.getFeature("f1")); + assertTrue (1 == Poco::AnyCast(s2.getProperty("p1"))); + + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 2); + assertTrue (pool.idle() == 0); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 2); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + + { + Session s3(pool.get("p1", 2)); + assertTrue (s3.getFeature("f1")); + assertTrue (2 == Poco::AnyCast(s3.getProperty("p1"))); + + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 3); + assertTrue (pool.idle() == 0); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 1); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + } + + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 3); + assertTrue (pool.idle() == 1); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 2); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + + Session s4(pool.get()); + assertTrue (s4.getFeature("f1")); + assertTrue (1 == Poco::AnyCast(s4.getProperty("p1"))); + + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 3); + assertTrue (pool.idle() == 0); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 1); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + + Session s5(pool.get()); + + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 4); + assertTrue (pool.idle() == 0); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 0); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + + try + { + Session s6(pool.get()); + fail("pool exhausted - must throw"); + } + catch (Poco::Data::SessionPoolExhaustedException&) { } + + s5.close(); + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 4); + assertTrue (pool.idle() == 1); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 1); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + + try + { + s5 << "DROP TABLE IF EXISTS Test", now; + fail("session unusable - must throw"); + } + catch (Poco::Data::SessionUnavailableException&) { } + + s4.close(); + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 4); + assertTrue (pool.idle() == 2); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 2); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + + Thread::sleep(5000); // time to clean up idle sessions + + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 2); + assertTrue (pool.idle() == 0); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 2); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + + Session s6(pool.get()); + + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 3); + assertTrue (pool.idle() == 0); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 1); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + + s6.setFeature("connected", false); + assertTrue (pool.dead() == 1); + + s6.close(); + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 2); + assertTrue (pool.idle() == 0); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 2); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + + assertTrue (pool.isActive()); + pool.shutdown(); + assertTrue (!pool.isActive()); + try + { + Session s7(pool.get()); + fail("pool shut down - must throw"); + } + catch (InvalidAccessException&) { } + + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 0); + assertTrue (pool.idle() == 0); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 0); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + } +} + + void SQLExecutor::zeroRows() { Statement stmt = (session() << "SELECT * FROM Person WHERE 0 = 1"); @@ -2470,6 +2975,106 @@ void SQLExecutor::blobStmt() } +void SQLExecutor::recordSet() +{ + std::string funct = "dateTime()"; + + std::string lastName("lastname"); + std::string firstName("firstname"); + std::string address("Address"); + DateTime born(1965, 6, 18, 5, 35, 1); + DateTime born2(1991, 6, 18, 14, 35, 1); + + try + { + { + Statement stmt = (session() << "SELECT COUNT(*) AS row_count FROM Person", now); + RecordSet rset(stmt); + assertTrue (rset.rowCount() == 1); + assertTrue (rset["row_count"].convert() == 0); + } + + { + Statement stmt = (session() << + "INSERT INTO Person VALUES (?,?,?,?)", + use(lastName), use(firstName), use(address), use(born), now); + RecordSet rset(stmt); + assertTrue (rset.rowCount() == 0); + assertTrue (rset.affectedRowCount() == 1); + } + + { + Statement stmt = (session() << "SELECT COUNT(*) AS row_count FROM Person", now); + RecordSet rset(stmt); + assertTrue (rset.rowCount() == 1); + assertTrue (rset["row_count"].convert() == 1); + } + + { + Statement stmt = (session() << "SELECT Born FROM Person", now); + RecordSet rset(stmt); + assertTrue (rset.rowCount() == 1); + assertTrue (rset["Born"].convert() == born); + } + + { + Statement stmt = (session() << + "DELETE FROM Person WHERE born = ?", use(born), now); + RecordSet rset(stmt); + assertTrue (rset.rowCount() == 0); + assertTrue (rset.affectedRowCount() == 1); + } + + { + Statement stmt = (session() << + "INSERT INTO Person VALUES (?,?,?,?)", + use(lastName), use(firstName), use(address), use(born), now); + RecordSet rset(stmt); + assertTrue (rset.rowCount() == 0); + assertTrue (rset.affectedRowCount() == 1); + } + + { + Statement stmt = (session() << + "INSERT INTO Person VALUES (?,?,?,?)", + use(lastName), use(firstName), use(address), use(born2), now); + RecordSet rset(stmt); + assertTrue (rset.rowCount() == 0); + assertTrue (rset.affectedRowCount() == 1); + } + + { + Statement stmt = (session() << "SELECT COUNT(*) AS row_count FROM Person", now); + RecordSet rset(stmt); + assertTrue (rset.rowCount() == 1); + assertTrue (rset["row_count"].convert() == 2); + } + + { + Statement stmt = (session() << "SELECT Born FROM Person ORDER BY Born DESC", now); + RecordSet rset(stmt); + assertTrue (rset.rowCount() == 2); + assertTrue (rset["Born"].convert() == born2); + rset.moveNext(); + assertTrue (rset["Born"].convert() == born); + rset.moveFirst(); + assertTrue (rset["Born"].convert() == born2); + rset.moveLast(); + assertTrue (rset["Born"].convert() == born); + } + + { + Statement stmt = (session() << "DELETE FROM Person", now); + RecordSet rset(stmt); + assertTrue (rset.rowCount() == 0); + assertTrue (rset.affectedRowCount() == 2); + } + } + catch (ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail(funct); } + catch (StatementException& se){ std::cout << se.toString() << std::endl; fail(funct); } +} + + void SQLExecutor::dateTime() { std::string funct = "dateTime()"; @@ -3457,22 +4062,35 @@ void SQLExecutor::sqlChannel(const std::string& connect) try { AutoPtr pChannel = new SQLChannel(Poco::Data::ODBC::Connector::KEY, connect, "TestSQLChannel"); + Stopwatch sw; sw.start(); + while (!pChannel->isRunning()) + { + Thread::sleep(10); + if (sw.elapsedSeconds() > 3) + fail ("SQLExecutor::sqlLogger(): SQLChannel timed out"); + } + + pChannel->setProperty("bulk", "true"); pChannel->setProperty("keep", "2 seconds"); Message msgInf("InformationSource", "a Informational async message", Message::PRIO_INFORMATION); pChannel->log(msgInf); + while (pChannel->logged() != 1) Thread::sleep(10); + Message msgWarn("WarningSource", "b Warning async message", Message::PRIO_WARNING); pChannel->log(msgWarn); - pChannel->wait(); + while (pChannel->logged() != 2) Thread::sleep(10); - pChannel->setProperty("async", "false"); Message msgInfS("InformationSource", "c Informational sync message", Message::PRIO_INFORMATION); pChannel->log(msgInfS); + while (pChannel->logged() != 3) Thread::sleep(10); Message msgWarnS("WarningSource", "d Warning sync message", Message::PRIO_WARNING); pChannel->log(msgWarnS); + while (pChannel->logged() != 4) Thread::sleep(10); RecordSet rs(session(), "SELECT * FROM T_POCO_LOG ORDER by Text"); - assertTrue (4 == rs.rowCount()); + size_t rc = rs.rowCount(); + assertTrue (4 == rc); assertTrue ("InformationSource" == rs["Source"]); assertTrue ("a Informational async message" == rs["Text"]); rs.moveNext(); @@ -3485,12 +4103,14 @@ void SQLExecutor::sqlChannel(const std::string& connect) assertTrue ("WarningSource" == rs["Source"]); assertTrue ("d Warning sync message" == rs["Text"]); - Thread::sleep(3000); + Thread::sleep(3000); // give it time to archive Message msgInfA("InformationSource", "e Informational sync message", Message::PRIO_INFORMATION); pChannel->log(msgInfA); + while (pChannel->logged() != 5) Thread::sleep(10); Message msgWarnA("WarningSource", "f Warning sync message", Message::PRIO_WARNING); pChannel->log(msgWarnA); + while (pChannel->logged() != 6) Thread::sleep(10); RecordSet rs1(session(), "SELECT * FROM T_POCO_LOG_ARCHIVE"); assertTrue (4 == rs1.rowCount()); @@ -3504,7 +4124,6 @@ void SQLExecutor::sqlChannel(const std::string& connect) rs2.moveNext(); assertTrue ("WarningSource" == rs2["Source"]); assertTrue ("f Warning sync message" == rs2["Text"]); - } catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("sqlChannel()"); } catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("sqlChannel()"); } @@ -3516,14 +4135,23 @@ void SQLExecutor::sqlLogger(const std::string& connect) try { Logger& root = Logger::root(); - root.setChannel(new SQLChannel(Poco::Data::ODBC::Connector::KEY, connect, "TestSQLChannel")); + SQLChannel* pSQLChannel = new SQLChannel(Poco::Data::ODBC::Connector::KEY, connect, "TestSQLChannel"); + Stopwatch sw; sw.start(); + while (!pSQLChannel->isRunning()) + { + Thread::sleep(10); + if (sw.elapsedSeconds() > 3) + fail ("SQLExecutor::sqlLogger(): SQLChannel timed out"); + } + + root.setChannel(pSQLChannel); root.setLevel(Message::PRIO_INFORMATION); root.information("a Informational message"); root.warning("b Warning message"); root.debug("Debug message"); - Thread::sleep(100); + while (pSQLChannel->logged() != 2) Thread::sleep(100); RecordSet rs(session(), "SELECT * FROM T_POCO_LOG ORDER by Text"); assertTrue (2 == rs.rowCount()); assertTrue ("TestSQLChannel" == rs["Source"]); @@ -3531,7 +4159,6 @@ void SQLExecutor::sqlLogger(const std::string& connect) rs.moveNext(); assertTrue ("TestSQLChannel" == rs["Source"]); assertTrue ("b Warning message" == rs["Text"]); - root.setChannel(nullptr); } catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("sqlLogger()"); } catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("sqlLogger()"); } @@ -3852,7 +4479,7 @@ struct TestRollbackTransactor void SQLExecutor::transactor() { - std::string funct = "transaction()"; + std::string funct = "transactor()"; int count = 0; bool autoCommit = session().getFeature("autoCommit"); diff --git a/Data/ODBC/testsuite/src/SQLExecutor.h b/Data/ODBC/testsuite/src/SQLExecutor.h index 5f21805d7..1b6c399ec 100644 --- a/Data/ODBC/testsuite/src/SQLExecutor.h +++ b/Data/ODBC/testsuite/src/SQLExecutor.h @@ -48,7 +48,7 @@ if (!SQL_SUCCEEDED(r)) \ { \ Poco::Data::ODBC::StatementException se(h); \ - std::cout << se.toString() << std::endl; \ + std::cout << se.displayText() << std::endl; \ } \ assert (SQL_SUCCEEDED(r)) @@ -57,7 +57,7 @@ if (!SQL_SUCCEEDED(r)) \ { \ Poco::Data::ODBC::DescriptorException de(h); \ - std::cout << de.toString() << std::endl; \ + std::cout << de.displayText() << std::endl; \ } \ assert (SQL_SUCCEEDED(r)) @@ -106,13 +106,24 @@ public: SQLExecutor::DataExtraction extractMode, const std::string& insert = MULTI_INSERT, const std::string& select = MULTI_SELECT); - /// The above two functions use "bare bone" ODBC API calls + + void bareboneODBCStoredFuncTest(const std::string& dbConnString, + const std::string& tableCreateString, + const std::string& procExecuteString, + SQLExecutor::DataBinding bindMode, + SQLExecutor::DataExtraction extractMode); + /// The above three functions use "bare bone" ODBC API calls /// (i.e. calls are not "wrapped" in PocoData framework structures). /// The purpose of the functions is to verify that a driver behaves /// correctly as well as to determine its capabilities /// (e.g. SQLGetData() restrictions relaxation policy, if any). /// If these test pass, subsequent tests failures are likely ours. + void connection(const std::string& connectString); + void session(const std::string& connectString, int timeout); + void sessionPool(const std::string& connectString, + int minSessions, int maxSessions, int idleTime, int timeout); + void zeroRows(); void simpleAccess(); void complexType(); @@ -463,6 +474,7 @@ public: } void blobStmt(); + void recordSet(); void dateTime(); void date(); diff --git a/Data/SQLite/src/SessionImpl.cpp b/Data/SQLite/src/SessionImpl.cpp index da6c7dd89..d24c868cd 100644 --- a/Data/SQLite/src/SessionImpl.cpp +++ b/Data/SQLite/src/SessionImpl.cpp @@ -257,11 +257,6 @@ Poco::Any SessionImpl::getTransactionType(const std::string& prop) const void SessionImpl::autoCommit(const std::string&, bool) { - // The problem here is to decide whether to call commit or rollback - // when autocommit is set to true. Hence, it is best not to implement - // this explicit call and only implicitly support autocommit setting. - throw NotImplementedException( - "SQLite autocommit is implicit with begin/commit/rollback."); } diff --git a/Data/SQLite/src/Utility.cpp b/Data/SQLite/src/Utility.cpp index d07426326..6593e1bf4 100644 --- a/Data/SQLite/src/Utility.cpp +++ b/Data/SQLite/src/Utility.cpp @@ -138,6 +138,7 @@ Utility::Utility() _types.insert(TypeMap::value_type("TIMESTAMP", MetaColumn::FDT_TIMESTAMP)); _types.insert(TypeMap::value_type("UUID", MetaColumn::FDT_UUID)); _types.insert(TypeMap::value_type("GUID", MetaColumn::FDT_UUID)); + _types.insert(TypeMap::value_type("JSON", MetaColumn::FDT_JSON)); } } diff --git a/Data/SQLite/testsuite/src/SQLiteTest.cpp b/Data/SQLite/testsuite/src/SQLiteTest.cpp index eb257bf6e..c197db981 100755 --- a/Data/SQLite/testsuite/src/SQLiteTest.cpp +++ b/Data/SQLite/testsuite/src/SQLiteTest.cpp @@ -89,6 +89,7 @@ using Poco::Int64; using Poco::Dynamic::Var; using Poco::Data::SQLite::Utility; using Poco::delegate; +using Poco::Stopwatch; class Person @@ -1408,7 +1409,7 @@ void SQLiteTest::testNonexistingDB() Session tmp (Poco::Data::SQLite::Connector::KEY, "foo/bar/nonexisting.db", 1); fail("non-existing DB must throw"); } - catch(ConnectionFailedException& ex) + catch(ConnectionFailedException&) { return; } @@ -2474,53 +2475,68 @@ void SQLiteTest::testSQLChannel() "DateTime DATE)", now; AutoPtr pChannel = new SQLChannel(Poco::Data::SQLite::Connector::KEY, "dummy.db", "TestSQLChannel"); + Stopwatch sw; sw.start(); + while (!pChannel->isRunning()) + { + Thread::sleep(10); + if (sw.elapsedSeconds() > 3) + fail ("SQLExecutor::sqlLogger(): SQLChannel timed out"); + } + // bulk binding mode is not suported by SQLite, but SQLChannel should handle it internally + pChannel->setProperty("bulk", "true"); pChannel->setProperty("keep", "2 seconds"); Message msgInf("InformationSource", "a Informational async message", Message::PRIO_INFORMATION); pChannel->log(msgInf); + while (pChannel->logged() != 1) Thread::sleep(100); + Message msgWarn("WarningSource", "b Warning async message", Message::PRIO_WARNING); pChannel->log(msgWarn); - pChannel->wait(); + while (pChannel->logged() != 2) Thread::sleep(10); - pChannel->setProperty("async", "false"); Message msgInfS("InformationSource", "c Informational sync message", Message::PRIO_INFORMATION); pChannel->log(msgInfS); + while (pChannel->logged() != 3) Thread::sleep(10); Message msgWarnS("WarningSource", "d Warning sync message", Message::PRIO_WARNING); pChannel->log(msgWarnS); + while (pChannel->logged() != 4) Thread::sleep(10); RecordSet rs(tmp, "SELECT * FROM T_POCO_LOG ORDER by Text"); - assertTrue (4 == rs.rowCount()); - assertTrue ("InformationSource" == rs["Source"]); - assertTrue ("a Informational async message" == rs["Text"]); + size_t rc = rs.rowCount(); + assertTrue(4 == rc); + assertTrue("InformationSource" == rs["Source"]); + assertTrue("a Informational async message" == rs["Text"]); rs.moveNext(); - assertTrue ("WarningSource" == rs["Source"]); - assertTrue ("b Warning async message" == rs["Text"]); + assertTrue("WarningSource" == rs["Source"]); + assertTrue("b Warning async message" == rs["Text"]); rs.moveNext(); - assertTrue ("InformationSource" == rs["Source"]); - assertTrue ("c Informational sync message" == rs["Text"]); + assertTrue("InformationSource" == rs["Source"]); + assertTrue("c Informational sync message" == rs["Text"]); rs.moveNext(); - assertTrue ("WarningSource" == rs["Source"]); - assertTrue ("d Warning sync message" == rs["Text"]); + assertTrue("WarningSource" == rs["Source"]); + assertTrue("d Warning sync message" == rs["Text"]); - Thread::sleep(3000); + Thread::sleep(3000); // give it time to archive Message msgInfA("InformationSource", "e Informational sync message", Message::PRIO_INFORMATION); pChannel->log(msgInfA); + while (pChannel->logged() != 5) Thread::sleep(10); Message msgWarnA("WarningSource", "f Warning sync message", Message::PRIO_WARNING); pChannel->log(msgWarnA); + while (pChannel->logged() != 6) Thread::sleep(10); RecordSet rs1(tmp, "SELECT * FROM T_POCO_LOG_ARCHIVE"); - assertTrue (4 == rs1.rowCount()); + assertTrue(4 == rs1.rowCount()); pChannel->setProperty("keep", ""); - assertTrue ("forever" == pChannel->getProperty("keep")); + assertTrue("forever" == pChannel->getProperty("keep")); RecordSet rs2(tmp, "SELECT * FROM T_POCO_LOG ORDER by Text"); - assertTrue (2 == rs2.rowCount()); - assertTrue ("InformationSource" == rs2["Source"]); - assertTrue ("e Informational sync message" == rs2["Text"]); + assertTrue(2 == rs2.rowCount()); + assertTrue("InformationSource" == rs2["Source"]); + assertTrue("e Informational sync message" == rs2["Text"]); rs2.moveNext(); - assertTrue ("WarningSource" == rs2["Source"]); - assertTrue ("f Warning sync message" == rs2["Text"]); + assertTrue("WarningSource" == rs2["Source"]); + assertTrue("f Warning sync message" == rs2["Text"]); } @@ -2537,25 +2553,30 @@ void SQLiteTest::testSQLLogger() "Text VARCHAR," "DateTime DATE)", now; + Logger& root = Logger::root(); + AutoPtr pSQLChannel = new SQLChannel(Poco::Data::SQLite::Connector::KEY, "dummy.db", "TestSQLChannel"); + Stopwatch sw; sw.start(); + while (!pSQLChannel->isRunning()) { - AutoPtr pChannel = new SQLChannel(Poco::Data::SQLite::Connector::KEY, "dummy.db", "TestSQLChannel"); - Logger& root = Logger::root(); - root.setChannel(pChannel); - root.setLevel(Message::PRIO_INFORMATION); - - root.information("Informational message"); - root.warning("Warning message"); - root.debug("Debug message"); + Thread::sleep(10); + if (sw.elapsedSeconds() > 3) + fail ("SQLExecutor::sqlLogger(): SQLChannel timed out"); } + root.setChannel(pSQLChannel); + root.setLevel(Message::PRIO_INFORMATION); - Thread::sleep(100); - RecordSet rs(tmp, "SELECT * FROM T_POCO_LOG ORDER by DateTime"); - assertTrue (2 == rs.rowCount()); - assertTrue ("TestSQLChannel" == rs["Source"]); - assertTrue ("Informational message" == rs["Text"]); + root.information("a Informational message"); + root.warning("b Warning message"); + root.debug("Debug message"); + + while (pSQLChannel->logged() != 2) Thread::sleep(100); + RecordSet rs(tmp, "SELECT * FROM T_POCO_LOG ORDER by Text"); + assertTrue(2 == rs.rowCount()); + assertTrue("TestSQLChannel" == rs["Source"]); + assertTrue("a Informational message" == rs["Text"]); rs.moveNext(); - assertTrue ("TestSQLChannel" == rs["Source"]); - assertTrue ("Warning message" == rs["Text"]); + assertTrue("TestSQLChannel" == rs["Source"]); + assertTrue("b Warning message" == rs["Text"]); } @@ -3130,12 +3151,6 @@ void SQLiteTest::testSessionTransaction() Session local (Poco::Data::SQLite::Connector::KEY, "dummy.db"); assertTrue (local.isConnected()); - try - { - local.setFeature("autoCommit", true); - fail ("Setting SQLite auto-commit explicitly must fail!"); - } - catch (NotImplementedException&) { } assertTrue (local.getFeature("autoCommit")); std::string funct = "transaction()"; @@ -3235,12 +3250,16 @@ void SQLiteTest::testTransaction() std::string tableName("Person"); lastNames.push_back("LN1"); lastNames.push_back("LN2"); + lastNames.push_back("LN3"); firstNames.push_back("FN1"); firstNames.push_back("FN2"); + firstNames.push_back("FN3"); addresses.push_back("ADDR1"); addresses.push_back("ADDR2"); + addresses.push_back("ADDR3"); ages.push_back(1); ages.push_back(2); + ages.push_back(3); int count = 0, locCount = 0; std::string result; @@ -3258,7 +3277,7 @@ void SQLiteTest::testTransaction() assertTrue (trans.isActive()); session << "SELECT COUNT(*) FROM Person", into(count), now; - assertTrue (2 == count); + assertTrue (3 == count); assertTrue (session.isTransaction()); assertTrue (trans.isActive()); // no explicit commit, so transaction RAII must roll back here @@ -3285,9 +3304,9 @@ void SQLiteTest::testTransaction() } session << "SELECT count(*) FROM Person", into(count), now; - assertTrue (2 == count); + assertTrue (3 == count); local << "SELECT count(*) FROM Person", into(count), now; - assertTrue (2 == count); + assertTrue (3 == count); session << "DELETE FROM Person", now; @@ -3314,7 +3333,8 @@ void SQLiteTest::testTransaction() session << "SELECT count(*) FROM Person", into(count), now; assertTrue (0 == count); - trans.execute(sql); + bool status = trans.execute(sql); + assertTrue (status); Statement stmt3 = (local << "SELECT COUNT(*) FROM Person", into(locCount), now); assertTrue (2 == locCount); @@ -3322,6 +3342,21 @@ void SQLiteTest::testTransaction() session << "SELECT count(*) FROM Person", into(count), now; assertTrue (2 == count); + session << "DELETE FROM Person", now; + + std::string sql3 = format("INSERT INTO Pers VALUES ('%s','%s','%s',%d)", lastNames[2], firstNames[2], addresses[2], ages[2]); + // Table name is misspelled, should cause transaction rollback + sql.push_back(sql3); + + std::string info; + status = trans.execute(sql, &info); + + assertFalse (status); + assertEqual (info, "Invalid SQL statement: no such table: Pers: no such table: Pers"); + + session << "SELECT count(*) FROM Person", into(count), now; + assertTrue (0 == count); + session.close(); assertTrue (!session.isConnected()); diff --git a/Data/include/Poco/Data/AbstractSessionImpl.h b/Data/include/Poco/Data/AbstractSessionImpl.h index 43a45fe72..78c65e119 100644 --- a/Data/include/Poco/Data/AbstractSessionImpl.h +++ b/Data/include/Poco/Data/AbstractSessionImpl.h @@ -115,6 +115,16 @@ public: { } + bool hasFeature(const std::string& name) + /// Looks a feature up in the features map + /// and returns true if there is one. + { + auto it = _features.find(name); + return it != _features.end() && + it->second.getter && + it->second.setter; + } + void setFeature(const std::string& name, bool state) /// Looks a feature up in the features map /// and calls the feature's setter, if there is one. @@ -145,6 +155,16 @@ public: else throw NotSupportedException(name); } + bool hasProperty(const std::string& name) + /// Looks a property up in the properties map + /// and returns true if there is one. + { + auto it = _properties.find(name); + return it != _properties.end() && + it->second.getter && + it->second.setter; + } + void setProperty(const std::string& name, const Poco::Any& value) /// Looks a property up in the properties map /// and calls the property's setter, if there is one. diff --git a/Data/include/Poco/Data/ArchiveStrategy.h b/Data/include/Poco/Data/ArchiveStrategy.h index 24116efec..b0fe631a7 100644 --- a/Data/include/Poco/Data/ArchiveStrategy.h +++ b/Data/include/Poco/Data/ArchiveStrategy.h @@ -180,7 +180,8 @@ public: ArchiveByAgeStrategy(const std::string& connector, const std::string& connect, const std::string& sourceTable, - const std::string& destinationTable = DEFAULT_ARCHIVE_DESTINATION); + const std::string& destinationTable = DEFAULT_ARCHIVE_DESTINATION, + const std::string& age = ""); ~ArchiveByAgeStrategy(); diff --git a/Data/include/Poco/Data/PooledSessionImpl.h b/Data/include/Poco/Data/PooledSessionImpl.h index 0d5edf578..0152a2df0 100644 --- a/Data/include/Poco/Data/PooledSessionImpl.h +++ b/Data/include/Poco/Data/PooledSessionImpl.h @@ -62,8 +62,10 @@ public: bool hasTransactionIsolation(Poco::UInt32) const; bool isTransactionIsolation(Poco::UInt32) const; const std::string& connectorName() const; + bool hasFeature(const std::string& name); void setFeature(const std::string& name, bool state); bool getFeature(const std::string& name); + bool hasProperty(const std::string& name); void setProperty(const std::string& name, const Poco::Any& value); Poco::Any getProperty(const std::string& name); diff --git a/Data/include/Poco/Data/Preparation.h b/Data/include/Poco/Data/Preparation.h index 870dfdcf2..20fd7c5f7 100644 --- a/Data/include/Poco/Data/Preparation.h +++ b/Data/include/Poco/Data/Preparation.h @@ -50,7 +50,8 @@ public: void prepare() /// Prepares data. { - TypeHandler::prepare(_pos, _val, preparation()); + auto pPrep = preparation(); + TypeHandler::prepare(_pos, _val, pPrep); } private: diff --git a/Data/include/Poco/Data/RecordSet.h b/Data/include/Poco/Data/RecordSet.h index 603ed52da..9d363d42d 100644 --- a/Data/include/Poco/Data/RecordSet.h +++ b/Data/include/Poco/Data/RecordSet.h @@ -133,6 +133,9 @@ public: /// for large recordsets, so it should be used judiciously. /// Use totalRowCount() to obtain the total number of rows. + std::size_t affectedRowCount() const; + /// Returns the number of rows affected by the statement execution. + std::size_t extractedRowCount() const; /// Returns the number of rows extracted during the last statement /// execution. diff --git a/Data/include/Poco/Data/SQLChannel.h b/Data/include/Poco/Data/SQLChannel.h index 2a976871c..4c0f4183a 100644 --- a/Data/include/Poco/Data/SQLChannel.h +++ b/Data/include/Poco/Data/SQLChannel.h @@ -22,18 +22,24 @@ #include "Poco/Data/Connector.h" #include "Poco/Data/Session.h" #include "Poco/Data/Statement.h" +#include "Poco/Logger.h" #include "Poco/Data/ArchiveStrategy.h" #include "Poco/Channel.h" +#include "Poco/FileChannel.h" #include "Poco/Message.h" #include "Poco/AutoPtr.h" #include "Poco/String.h" +#include "Poco/NotificationQueue.h" +#include "Poco/Thread.h" +#include "Poco/Mutex.h" +#include namespace Poco { namespace Data { -class Data_API SQLChannel: public Poco::Channel +class Data_API SQLChannel: public Poco::Channel, Poco::Runnable /// This Channel implements logging to a SQL database. /// The channel is dependent on the schema. The DDL for /// table creation (subject to target DDL dialect dependent @@ -61,23 +67,54 @@ class Data_API SQLChannel: public Poco::Channel /// a risk of long blocking periods in case of remote server communication delays. { public: - using Ptr = Poco::AutoPtr; + class LogNotification : public Poco::Notification + { + public: + using Ptr = Poco::AutoPtr; + + LogNotification(const Poco::Message& message) : + _message(message) + { + } + + const Poco::Message& message() const + { + return _message; + } + + private: + Poco::Message _message; + }; + + static const int DEFAULT_MIN_BATCH_SIZE = 1; + static const int DEFAULT_MAX_BATCH_SIZE = 1000; SQLChannel(); /// Creates SQLChannel. SQLChannel(const std::string& connector, const std::string& connect, - const std::string& name = "-"); - /// Creates a SQLChannel with the given connector, connect string, timeout, table and name. + const std::string& name = "-", + const std::string& table = "T_POCO_LOG", + int timeout = 1000, + int minBatch = DEFAULT_MIN_BATCH_SIZE, + int maxBatch = DEFAULT_MAX_BATCH_SIZE); + /// Creates an SQLChannel with the given connector, connect string, timeout, table and name. /// The connector must be already registered. void open(); /// Opens the SQLChannel. + /// Returns true if succesful. - void close(); + void close(int ms = 0); /// Closes the SQLChannel. + void run(); + /// Dequeues and sends the logs to the DB. + + bool isRunning() const; + /// Returns true if the logging thread is running. + void log(const Message& msg); /// Writes the log message to the database. @@ -108,6 +145,8 @@ public: /// the target, the previous operation must have been either completed /// or timed out (see timeout and throw properties for details on /// how abnormal conditos are handled). + /// This property is deprecated and has no effect - all logging + /// is asynchronous since the 1.13.0. release. /// /// * timeout: Timeout (ms) to wait for previous log operation completion. /// Values "0" and "" mean no timeout. Only valid when logging @@ -117,14 +156,35 @@ public: /// Setting this property to false may result in log entries being lost. /// True values are (case insensitive) "true", "t", "yes", "y". /// Anything else yields false. + /// + /// * minBatch: Minimal number of log entries to accumulate before actually sending + /// logs to the destination. + /// Defaults to 1 entry (for compatibility with older versions); + /// can't be zero or larger than `maxBatch`. + /// + /// * maxBatch: Maximum number of log entries to accumulate. When the log queue + /// reaches this size, log entries are silently discarded. + /// Defaults to 100, can't be zero or larger than 1000. + /// + /// * bulk: Do bulk execute (on most DBMS systems, this can speed up things + /// drastically). + /// + /// * file Destination file name for the backup FileChannel, used when DB + /// connection is not present to log not executed SQL statements. std::string getProperty(const std::string& name) const; /// Returns the value of the property with the given name. - std::size_t wait(); + void stop(); + /// Stops and joins the logging thread.. + + std::size_t wait(int ms = 1000); /// Waits for the completion of the previous operation and returns /// the result. If chanel is in synchronous mode, returns 0 immediately. + size_t logged() const; + /// Returns the number of logged entries. + static void registerChannel(); /// Registers the channel with the global LoggingFactory. @@ -136,56 +196,84 @@ public: static const std::string PROP_MAX_AGE; static const std::string PROP_ASYNC; static const std::string PROP_TIMEOUT; + static const std::string PROP_MIN_BATCH; + static const std::string PROP_MAX_BATCH; + static const std::string PROP_BULK; static const std::string PROP_THROW; + static const std::string PROP_FILE; protected: ~SQLChannel(); private: - using SessionPtr = Poco::SharedPtr; - using StatementPtr = Poco::SharedPtr; - using Priority = Poco::Message::Priority; - using StrategyPtr = Poco::SharedPtr; + static const std::string SQL_INSERT_STMT; - void initLogStatement(); - /// Initiallizes the log statement. + typedef Poco::SharedPtr SessionPtr; + typedef Poco::SharedPtr StatementPtr; + typedef Poco::Message::Priority Priority; + typedef Poco::SharedPtr StrategyPtr; - void initArchiveStatements(); - /// Initiallizes the archive statement. + void reconnect(); + /// Closes and opens the DB connection. - void logAsync(const Message& msg); - /// Waits for previous operation completion and - /// calls logSync(). If the previous operation times out, - /// and _throw is true, TimeoutException is thrown, oterwise - /// the timeout is ignored and log entry is lost. + bool processOne(int minBatch = 0); + /// Processes one message. + /// If the number of acummulated messages is greater + /// than minBatch, sends logs to the destination. + /// Returns true if log entry was processed. - void logSync(const Message& msg); - /// Inserts the message in the target database. + size_t execSQL(); + /// Executes the log statement. + + size_t logSync(); + /// Inserts entries into the target database. bool isTrue(const std::string& value) const; /// Returns true is value is "true", "t", "yes" or "y". /// Case insensitive. - std::string _connector; - std::string _connect; - SessionPtr _pSession; - StatementPtr _pLogStatement; - std::string _name; - std::string _table; - int _timeout; - bool _throw; - bool _async; + size_t logTofile(AutoPtr& pFileChannel, const std::string& fileName, bool clear = false); + /// Logs cached entries to a file. Called in case DB insertions fail. - // members for log entry cache (needed for async mode) - std::string _source; - long _pid; - std::string _thread; - long _tid; - int _priority; - std::string _text; - DateTime _dateTime; + std::string maskPwd(); + /// Masks the password in the connection + /// string, if detected. This is not a + /// bullet-proof method; if not succesful, + /// empty string is returned. - StrategyPtr _pArchiveStrategy; + mutable Poco::FastMutex _mutex; + + std::string _connector; + std::string _connect; + SessionPtr _pSession; + std::string _sql; + std::string _name; + std::string _table; + bool _tableChanged; + int _timeout; + std::atomic _minBatch; + int _maxBatch; + bool _bulk; + std::atomic _throw; + + // members for log entry cache + std::vector _source; + std::vector _pid; + std::vector _thread; + std::vector _tid; + std::vector _priority; + std::vector _text; + std::vector _dateTime; + Poco::NotificationQueue _logQueue; + std::unique_ptr _pDBThread; + std::atomic _reconnect; + std::atomic _running; + std::atomic _stop; + std::atomic _logged; + StrategyPtr _pArchiveStrategy; + std::string _file; + AutoPtr _pFileChannel; + Poco::Logger& _logger = Poco::Logger::get("SQLChannel"); }; @@ -193,14 +281,6 @@ private: // inlines // -inline std::size_t SQLChannel::wait() -{ - if (_async && _pLogStatement) - return _pLogStatement->wait(_timeout); - - return 0; -} - inline bool SQLChannel::isTrue(const std::string& value) const { @@ -211,6 +291,18 @@ inline bool SQLChannel::isTrue(const std::string& value) const } +inline bool SQLChannel::isRunning() const +{ + return _running; +} + + +inline size_t SQLChannel::logged() const +{ + return _logged; +} + + } } // namespace Poco::Data diff --git a/Data/include/Poco/Data/Session.h b/Data/include/Poco/Data/Session.h index 9fe700efa..1547fb53a 100644 --- a/Data/include/Poco/Data/Session.h +++ b/Data/include/Poco/Data/Session.h @@ -273,6 +273,9 @@ public: /// Utility function that teturns the URI formatted from supplied /// arguments as "connector:///connectionString". + bool hasFeature(const std::string& name); + /// Returns true if session has the named feature. + void setFeature(const std::string& name, bool state); /// Set the state of a feature. /// @@ -291,6 +294,9 @@ public: /// Throws a NotSupportedException if the requested feature is /// not supported by the underlying implementation. + bool hasProperty(const std::string& name); + /// Returns true if session has the named property. + void setProperty(const std::string& name, const Poco::Any& value); /// Set the value of a property. /// @@ -456,6 +462,12 @@ inline std::string Session::uri() const } +inline bool Session::hasFeature(const std::string& name) +{ + return _pImpl->hasFeature(name); +} + + inline void Session::setFeature(const std::string& name, bool state) { _pImpl->setFeature(name, state); @@ -468,6 +480,11 @@ inline bool Session::getFeature(const std::string& name) const } +inline bool Session::hasProperty(const std::string& name) +{ + return _pImpl->hasProperty(name); +} + inline void Session::setProperty(const std::string& name, const Poco::Any& value) { _pImpl->setProperty(name, value); diff --git a/Data/include/Poco/Data/SessionImpl.h b/Data/include/Poco/Data/SessionImpl.h index 3b9625e9d..723084dbc 100644 --- a/Data/include/Poco/Data/SessionImpl.h +++ b/Data/include/Poco/Data/SessionImpl.h @@ -53,6 +53,11 @@ public: static const std::size_t CONNECTION_TIMEOUT_DEFAULT = CONNECTION_TIMEOUT_INFINITE; /// Default connection/login timeout in seconds. + // ODBC only, otherwise no-op + static const int CURSOR_USE_ALWAYS = 0; + static const int CURSOR_USE_IF_NEEDED = 1; + static const int CURSOR_USE_NEVER = 2; + SessionImpl(const std::string& connectionString, std::size_t timeout = LOGIN_TIMEOUT_DEFAULT); /// Creates the SessionImpl. @@ -141,6 +146,9 @@ public: std::string uri() const; /// Returns the URI for this session. + virtual bool hasFeature(const std::string& name) = 0; + /// Returns true if session has the named feature. + virtual void setFeature(const std::string& name, bool state) = 0; /// Set the state of a feature. /// @@ -159,6 +167,9 @@ public: /// Throws a NotSupportedException if the requested feature is /// not supported by the underlying implementation. + virtual bool hasProperty(const std::string& name) = 0; + /// Returns true if session has the named feature. + virtual void setProperty(const std::string& name, const Poco::Any& value) = 0; /// Set the value of a property. /// diff --git a/Data/include/Poco/Data/SessionPool.h b/Data/include/Poco/Data/SessionPool.h index 0c801c44b..9d01ba819 100644 --- a/Data/include/Poco/Data/SessionPool.h +++ b/Data/include/Poco/Data/SessionPool.h @@ -191,21 +191,21 @@ private: void closeAll(SessionList& sessionList); - std::string _connector; - std::string _connectionString; - int _minSessions; - int _maxSessions; - int _idleTime; - int _connTimeout; - int _nSessions; - SessionList _idleSessions; - SessionList _activeSessions; - Poco::Timer _janitorTimer; - FeatureMap _featureMap; - PropertyMap _propertyMap; - bool _shutdown; - AddPropertyMap _addPropertyMap; - AddFeatureMap _addFeatureMap; + std::string _connector; + std::string _connectionString; + std::atomic _minSessions; + std::atomic _maxSessions; + std::atomic _idleTime; + std::atomic _connTimeout; + std::atomic _nSessions; + SessionList _idleSessions; + SessionList _activeSessions; + Poco::Timer _janitorTimer; + FeatureMap _featureMap; + PropertyMap _propertyMap; + std::atomic _shutdown; + AddPropertyMap _addPropertyMap; + AddFeatureMap _addFeatureMap; mutable Poco::Mutex _mutex; diff --git a/Data/include/Poco/Data/Statement.h b/Data/include/Poco/Data/Statement.h index 6644db31f..b400470cc 100644 --- a/Data/include/Poco/Data/Statement.h +++ b/Data/include/Poco/Data/Statement.h @@ -369,6 +369,10 @@ public: /// Returns the number of rows extracted so far for the data set. /// Default value indicates current data set (if any). + std::size_t affectedRowCount() const; + /// Returns the number of affected rows. + /// Used to find out the number of rows affected by insert, delete or update. + std::size_t extractionCount() const; /// Returns the number of extraction storage buffers associated /// with the current data set. @@ -709,6 +713,12 @@ inline void Statement::setStorage(const std::string& storage) } +inline std::size_t Statement::affectedRowCount() const +{ + return static_cast(_pImpl->affectedRowCount()); +} + + inline std::size_t Statement::extractionCount() const { return _pImpl->extractionCount(); diff --git a/Data/include/Poco/Data/Transaction.h b/Data/include/Poco/Data/Transaction.h index caf3e7f85..f08927383 100644 --- a/Data/include/Poco/Data/Transaction.h +++ b/Data/include/Poco/Data/Transaction.h @@ -39,6 +39,9 @@ class Data_API Transaction public: Transaction(Poco::Data::Session& session, Poco::Logger* pLogger = 0); /// Creates the Transaction and starts it, using the given database session and logger. + /// If `session` is in autocommit mode, it is switched to manual commit mode + /// for the duration of the transaction and reverted back to the original mode + /// after transaction completes. Transaction(Poco::Data::Session& session, bool start); /// Creates the Transaction, using the given database session. @@ -107,10 +110,18 @@ public: /// Passing true value for commit disables rollback during destruction /// of this Transaction object. - void execute(const std::vector& sql); + bool execute(const std::vector& sql); /// Executes all the SQL statements supplied in the vector and, after the last - /// one is sucesfully executed, commits the transaction. - /// If an error occurs during execution, transaction is rolled back. + /// one is sucesfully executed, commits the transaction and returns true. + /// If an error occurs during execution, transaction is rolled back and false is returned. + /// Passing true value for commit disables rollback during destruction + /// of this Transaction object. + + bool execute(const std::vector& sql, std::string* info); + /// Executes all the SQL statements supplied in the vector and, after the last + /// one is sucesfully executed, commits the transaction and returns true. + /// If an error occurs during execution, transaction is rolled back false is returned + /// and info pointer is assigned to a std::string containing the error message. /// Passing true value for commit disables rollback during destruction /// of this Transaction object. @@ -148,7 +159,8 @@ private: /// Otherwise does nothing. Session _rSession; - Logger* _pLogger; + bool _autoCommit = false; + Logger* _pLogger = nullptr; }; diff --git a/Data/src/ArchiveStrategy.cpp b/Data/src/ArchiveStrategy.cpp index c1cb8d995..e14856b0f 100644 --- a/Data/src/ArchiveStrategy.cpp +++ b/Data/src/ArchiveStrategy.cpp @@ -64,10 +64,12 @@ void ArchiveStrategy::open() ArchiveByAgeStrategy::ArchiveByAgeStrategy(const std::string& connector, const std::string& connect, const std::string& sourceTable, - const std::string& destinationTable): + const std::string& destinationTable, + const std::string& age): ArchiveStrategy(connector, connect, sourceTable, destinationTable) { initStatements(); + if (!age.empty()) setThreshold(age); } diff --git a/Data/src/PooledSessionImpl.cpp b/Data/src/PooledSessionImpl.cpp index d5f5abf68..da41b8edf 100644 --- a/Data/src/PooledSessionImpl.cpp +++ b/Data/src/PooledSessionImpl.cpp @@ -166,6 +166,12 @@ const std::string& PooledSessionImpl::connectorName() const } +bool PooledSessionImpl::hasFeature(const std::string& name) +{ + return access()->hasFeature(name); +} + + void PooledSessionImpl::setFeature(const std::string& name, bool state) { access()->setFeature(name, state); @@ -178,6 +184,12 @@ bool PooledSessionImpl::getFeature(const std::string& name) } +bool PooledSessionImpl::hasProperty(const std::string& name) +{ + return access()->hasProperty(name); +} + + void PooledSessionImpl::setProperty(const std::string& name, const Poco::Any& value) { access()->setProperty(name, value); diff --git a/Data/src/RecordSet.cpp b/Data/src/RecordSet.cpp index 20e978b0a..cb0987837 100644 --- a/Data/src/RecordSet.cpp +++ b/Data/src/RecordSet.cpp @@ -244,7 +244,8 @@ Row& RecordSet::row(std::size_t pos) std::size_t RecordSet::rowCount() const { - poco_assert (extractions().size()); + if (extractions().size() == 0) return 0; + std::size_t rc = subTotalRowCount(); if (!isFiltered()) return rc; @@ -258,6 +259,12 @@ std::size_t RecordSet::rowCount() const } +std::size_t RecordSet::affectedRowCount() const +{ + return Statement::affectedRowCount(); +} + + bool RecordSet::isAllowed(std::size_t row) const { if (!isFiltered()) return true; diff --git a/Data/src/SQLChannel.cpp b/Data/src/SQLChannel.cpp index 886b7c399..0b46562ab 100644 --- a/Data/src/SQLChannel.cpp +++ b/Data/src/SQLChannel.cpp @@ -14,12 +14,18 @@ #include "Poco/Data/SQLChannel.h" #include "Poco/Data/SessionFactory.h" +#include "Poco/Data/BulkBinding.h" #include "Poco/DateTime.h" +#include "Poco/DateTimeFormatter.h" +#include "Poco/DateTimeFormat.h" #include "Poco/LoggingFactory.h" #include "Poco/Instantiator.h" #include "Poco/NumberParser.h" #include "Poco/NumberFormatter.h" +#include "Poco/Stopwatch.h" #include "Poco/Format.h" +#include "Poco/File.h" +#include namespace Poco { @@ -37,37 +43,65 @@ const std::string SQLChannel::PROP_ARCHIVE_TABLE("archive"); const std::string SQLChannel::PROP_MAX_AGE("keep"); const std::string SQLChannel::PROP_ASYNC("async"); const std::string SQLChannel::PROP_TIMEOUT("timeout"); +const std::string SQLChannel::PROP_MIN_BATCH("minBatch"); +const std::string SQLChannel::PROP_MAX_BATCH("maxBatch"); +const std::string SQLChannel::PROP_BULK("bulk"); const std::string SQLChannel::PROP_THROW("throw"); +const std::string SQLChannel::PROP_FILE("file"); + + +const std::string SQLChannel::SQL_INSERT_STMT = "INSERT INTO %s " \ + "(Source, Name, ProcessId, Thread, ThreadId, Priority, Text, DateTime)" \ + " VALUES %s"; SQLChannel::SQLChannel(): _name("-"), _table("T_POCO_LOG"), + _tableChanged(true), _timeout(1000), - _throw(true), - _async(true), + _minBatch(DEFAULT_MIN_BATCH_SIZE), + _maxBatch(DEFAULT_MAX_BATCH_SIZE), + _bulk(true), + _throw(false), _pid(), _tid(), - _priority() + _priority(), + _reconnect(false), + _running(false), + _stop(false), + _logged(0) { } SQLChannel::SQLChannel(const std::string& connector, const std::string& connect, - const std::string& name): + const std::string& name, + const std::string& table, + int timeout, + int minBatch, + int maxBatch) : _connector(connector), _connect(connect), _name(name), - _table("T_POCO_LOG"), - _timeout(1000), - _throw(true), - _async(true), + _table(table), + _tableChanged(true), + _timeout(timeout), + _minBatch(minBatch), + _maxBatch(maxBatch), + _bulk(false), + _throw(false), _pid(), _tid(), - _priority() + _priority(), + _pDBThread(new Thread), + _reconnect(true), + _running(false), + _stop(false), + _logged(0) { - open(); + _pDBThread->start(*this); } @@ -75,7 +109,11 @@ SQLChannel::~SQLChannel() { try { - close(); + stop(); + close(_timeout); + wait(); + if (_pFileChannel) + _pFileChannel->close(); } catch (...) { @@ -84,70 +122,177 @@ SQLChannel::~SQLChannel() } -void SQLChannel::open() +std::string SQLChannel::maskPwd() { - if (_connector.empty() || _connect.empty()) - throw IllegalStateException("Connector and connect string must be non-empty."); - - _pSession = new Session(_connector, _connect); - initLogStatement(); + std::string displayConnect = _connect; + Poco::istring is1(displayConnect.c_str()); + Poco::istring is2("pwd="); + std::size_t pos1 = Poco::isubstr(is1, is2); + if (pos1 == istring::npos) + { + is2 = "password="; + pos1 = Poco::isubstr(is1, is2); + } + if (pos1 != istring::npos) + { + pos1 += is2.length(); + std::size_t pos2 = displayConnect.find(';', pos1); + if (pos2 != std::string::npos) + { + std::string toReplace = displayConnect.substr(pos1, pos2-pos1); + Poco::replaceInPlace(displayConnect, toReplace, std::string("***")); + } + else displayConnect.clear(); + } + return displayConnect; } -void SQLChannel::close() +void SQLChannel::open() { - wait(); + if (!_connector.empty() && !_connect.empty()) + { + try + { + _pSession = new Session(_connector, _connect, _timeout / 1000); + if (_pSession->hasProperty("maxFieldSize")) _pSession->setProperty("maxFieldSize", 8192); + if (_pSession->hasProperty("autoBind")) _pSession->setFeature("autoBind", true); + _logger.information("Connected to %s: %s", _connector, maskPwd()); + return; + } + catch (DataException& ex) + { + _logger.error(ex.displayText()); + } + } + _pSession = nullptr; + return; +} + + +void SQLChannel::close(int ms) +{ + wait(ms); + _pSession = nullptr; } void SQLChannel::log(const Message& msg) { - if (_async) logAsync(msg); - else logSync(msg); + _logQueue.enqueueNotification(new LogNotification(msg)); } -void SQLChannel::logAsync(const Message& msg) +size_t SQLChannel::logSync() { - poco_check_ptr (_pLogStatement); - if (0 == wait() && !_pLogStatement->done() && !_pLogStatement->initialized()) - { - if (_throw) - throw TimeoutException("Timed out waiting for previous statement completion"); - else return; - } - - if (!_pSession || !_pSession->isConnected()) open(); - logSync(msg); -} - - -void SQLChannel::logSync(const Message& msg) -{ - if (_pArchiveStrategy) _pArchiveStrategy->archive(); - - _source = msg.getSource(); - _pid = msg.getPid(); - _thread = msg.getThread(); - _tid = msg.getTid(); - _priority = msg.getPriority(); - _text = msg.getText(); - _dateTime = msg.getTime(); - if (_source.empty()) _source = _name; - try { - _pLogStatement->execute(); + return execSQL(); } catch (Exception&) { if (_throw) throw; } + + return 0; +} + + +bool SQLChannel::processOne(int minBatch) +{ + bool ret = false; + if (_logQueue.size()) + { + Notification::Ptr pN = _logQueue.dequeueNotification(); + LogNotification::Ptr pLN = pN.cast(); + if (pLN) + { + const Message& msg = pLN->message(); + _source.push_back(msg.getSource()); + if (_source.back().empty()) _source.back() = _name; + Poco::replaceInPlace(_source.back(), "'", "''"); + _pid.push_back(msg.getPid()); + _thread.push_back(msg.getThread()); + Poco::replaceInPlace(_thread.back(), "'", "''"); + _tid.push_back(msg.getTid()); + _priority.push_back(msg.getPriority()); + _text.push_back(msg.getText()); + Poco::replaceInPlace(_text.back(), "'", "''"); + _dateTime.push_back(msg.getTime()); + } + ret = true; + } + if (_source.size() >= _minBatch) logSync(); + + return ret; +} + + +void SQLChannel::run() +{ + long sleepTime = 100; // milliseconds + while (!_stop) + { + try + { + if (_reconnect) + { + close(_timeout); + open(); + _reconnect = _pSession.isNull(); + if (_reconnect && sleepTime < 12800) + sleepTime *= 2; + } + processOne(_minBatch); + sleepTime = 100; + } + catch (Poco::Exception& ex) + { + _logger.error(ex.displayText()); + } + catch (std::exception& ex) + { + _logger.error(ex.what()); + } + catch (...) + { + _logger.error("SQLChannel::run(): unknown exception"); + } + _running = true; + Thread::sleep(100); + } + _running = false; +} + + +void SQLChannel::stop() +{ + if (_pDBThread) + { + _reconnect = false; + _stop = true; + _pDBThread->join(); + while (_logQueue.size()) + processOne(); + } +} + + +void SQLChannel::reconnect() +{ + if (!_pDBThread) + { + _pDBThread.reset(new Thread); + _pDBThread->start(*this); + } + _reconnect = true; } void SQLChannel::setProperty(const std::string& name, const std::string& value) { + Poco::FastMutex::ScopedLock l(_mutex); + if (name == PROP_NAME) { _name = value; @@ -156,17 +301,19 @@ void SQLChannel::setProperty(const std::string& name, const std::string& value) else if (name == PROP_CONNECTOR) { _connector = value; - close(); open(); + reconnect(); } else if (name == PROP_CONNECT) { _connect = value; - close(); open(); + reconnect(); } else if (name == PROP_TABLE) { _table = value; - initLogStatement(); + if (_pArchiveStrategy) + _pArchiveStrategy->setSource(value); + _tableChanged = true; } else if (name == PROP_ARCHIVE_TABLE) { @@ -180,7 +327,9 @@ void SQLChannel::setProperty(const std::string& name, const std::string& value) } else { - _pArchiveStrategy = new ArchiveByAgeStrategy(_connector, _connect, _table, value); + std::string threshold; + if (_pArchiveStrategy) threshold = _pArchiveStrategy->getThreshold(); + _pArchiveStrategy = new ArchiveByAgeStrategy(_connector, _connect, _table, value, threshold); } } else if (name == PROP_MAX_AGE) @@ -195,15 +344,14 @@ void SQLChannel::setProperty(const std::string& name, const std::string& value) } else { - ArchiveByAgeStrategy* p = new ArchiveByAgeStrategy(_connector, _connect, _table); - p->setThreshold(value); - _pArchiveStrategy = p; + std::string destination = ArchiveByAgeStrategy::DEFAULT_ARCHIVE_DESTINATION; + if (_pArchiveStrategy) destination = _pArchiveStrategy->getDestination(); + _pArchiveStrategy = new ArchiveByAgeStrategy(_connector, _connect, _table, destination, value); } } else if (name == PROP_ASYNC) { - _async = isTrue(value); - initLogStatement(); + // no-op } else if (name == PROP_TIMEOUT) { @@ -212,10 +360,32 @@ void SQLChannel::setProperty(const std::string& name, const std::string& value) else _timeout = NumberParser::parse(value); } + else if (name == PROP_MIN_BATCH) + { + int minBatch = NumberParser::parse(value); + if (!minBatch) + throw Poco::InvalidArgumentException(Poco::format("SQLChannel::setProperty(%s,%s)", name, value)); + _minBatch = minBatch; + } + else if (name == PROP_MAX_BATCH) + { + int maxBatch = NumberParser::parse(value); + if (!maxBatch) + throw Poco::InvalidArgumentException(Poco::format("SQLChannel::setProperty(%s,%s)", name, value)); + _maxBatch = maxBatch; + } + else if (name == PROP_BULK) + { + _bulk = isTrue(value); + } else if (name == PROP_THROW) { _throw = isTrue(value); } + else if (name == PROP_FILE) + { + _file = value; + } else { Channel::setProperty(name, value); @@ -225,6 +395,8 @@ void SQLChannel::setProperty(const std::string& name, const std::string& value) std::string SQLChannel::getProperty(const std::string& name) const { + Poco::FastMutex::ScopedLock l(_mutex); + if (name == PROP_NAME) { if (_name != "-") return _name; @@ -254,11 +426,28 @@ std::string SQLChannel::getProperty(const std::string& name) const { return NumberFormatter::format(_timeout); } + else if (name == PROP_MIN_BATCH) + { + return std::to_string(_minBatch); + } + else if (name == PROP_MAX_BATCH) + { + return std::to_string(_maxBatch); + } + else if (name == PROP_BULK) + { + if (_bulk) return "true"; + else return "false"; + } else if (name == PROP_THROW) { if (_throw) return "true"; else return "false"; } + else if (name == PROP_FILE) + { + return _file; + } else { return Channel::getProperty(name); @@ -266,23 +455,186 @@ std::string SQLChannel::getProperty(const std::string& name) const } -void SQLChannel::initLogStatement() +size_t SQLChannel::logTofile(AutoPtr& pFileChannel, const std::string& fileName, bool clear) { - _pLogStatement = new Statement(*_pSession); + static std::vector names; + if (names.size() != _source.size()) + names.resize(_source.size(), Poco::replace(_name, "'", "''")); - std::string sql; - Poco::format(sql, "INSERT INTO %s VALUES (?,?,?,?,?,?,?,?)", _table); - *_pLogStatement << sql, - use(_source), - use(_name), - use(_pid), - use(_thread), - use(_tid), - use(_priority), - use(_text), - use(_dateTime); + std::size_t n = 0; - if (_async) _pLogStatement->setAsync(); + if (!pFileChannel) pFileChannel = new FileChannel(fileName); + if (pFileChannel) + { + std::string sql; + Poco::format(sql, SQL_INSERT_STMT, _table, std::string()); + std::stringstream os; + os << sql << '\n'; + auto it = _source.begin(); + auto end = _source.end(); + int idx = 0, batch = 0; + for (; it != end; ++idx) + { + std::string dt = Poco::DateTimeFormatter::format(_dateTime[idx], "%Y-%m-%d %H:%M:%S.%i"); + os << "('" << *it << "','" << + names[idx] << "'," << + _pid[idx] << ",'" << + _thread[idx] << "'," << + _tid[idx] << ',' << + _priority[idx] << ",'" << + _text[idx] << "','" << + dt << "')"; + if (++batch == _maxBatch) + { + os << ";\n"; + Message msg(_source[0], os.str(), Message::PRIO_ERROR); + pFileChannel->log(msg); + os.str(""); sql.clear(); + Poco::format(sql, SQL_INSERT_STMT, _table, std::string()); + batch = 0; + } + if (++it == end) + { + os << ";\n"; + break; + } + os << ",\n"; + } + Message msg(_source[0], os.str(), Message::PRIO_ERROR); + pFileChannel->log(msg); + n = _source.size(); + if (clear && n) + { + _source.clear(); + _pid.clear(); + _thread.clear(); + _tid.clear(); + _priority.clear(); + _text.clear(); + _dateTime.clear(); + } + } + return n; +} + + +size_t SQLChannel::execSQL() +{ + static std::vector names; + if (names.size() != _source.size()) + names.resize(_source.size(), Poco::replace(_name, "'", "''")); + static std::string placeholders = "(?,?,?,?,?,?,?,?)"; + + Poco::FastMutex::ScopedLock l(_mutex); + + if (_tableChanged) + { + Poco::format(_sql, SQL_INSERT_STMT, _table, placeholders); + _tableChanged = false; + } + + if (!_pSession || !_pSession->isConnected()) open(); + if (_pArchiveStrategy) _pArchiveStrategy->archive(); + + size_t n = 0; + if (_pSession) + { + try + { + if (_bulk) + { + try + { + (*_pSession) << _sql, + use(_source, bulk), + use(names, bulk), + use(_pid, bulk), + use(_thread, bulk), + use(_tid, bulk), + use(_priority, bulk), + use(_text, bulk), + use(_dateTime, bulk), now; + } + // most likely bulk mode not supported, + // log and try again + catch (Poco::InvalidAccessException& ex) + { + _logger.log(ex); + (*_pSession) << _sql, + use(_source), + use(names), + use(_pid), + use(_thread), + use(_tid), + use(_priority), + use(_text), + use(_dateTime), now; + _bulk = false; + } + } + else + { + (*_pSession) << _sql, + use(_source), + use(names), + use(_pid), + use(_thread), + use(_tid), + use(_priority), + use(_text), + use(_dateTime), now; + } + n = _source.size(); + } + catch (Poco::Exception& ex) + { + _logger.error(ex.displayText()); + if (!_file.empty()) + n = logTofile(_pFileChannel, _file); + close(_timeout); + _reconnect = true; + } + catch (std::exception& ex) + { + _logger.error(ex.what()); + if (!_file.empty()) + n = logTofile(_pFileChannel, _file); + close(_timeout); + _reconnect = true; + } + } + else + { + if (!_file.empty()) + n = logTofile(_pFileChannel, _file); + } + if (n) + { + _logged += n; + _source.clear(); + _pid.clear(); + _thread.clear(); + _tid.clear(); + _priority.clear(); + _text.clear(); + _dateTime.clear(); + } + return n; +} + + +std::size_t SQLChannel::wait(int ms) +{ + Stopwatch sw; + sw.start(); + int processed = _logQueue.size(); + while (_logQueue.size()) + { + Thread::sleep(10); + if (ms && sw.elapsed() * 1000 > ms) + break; + } + return processed - _logQueue.size(); } diff --git a/Data/src/SessionPool.cpp b/Data/src/SessionPool.cpp index 2c7e2bdd7..32b8312a5 100644 --- a/Data/src/SessionPool.cpp +++ b/Data/src/SessionPool.cpp @@ -64,9 +64,9 @@ Session SessionPool::get(const std::string& name, bool value) Session SessionPool::get() { - Poco::Mutex::ScopedLock lock(_mutex); - if (_shutdown) throw InvalidAccessException("Session pool has been shut down."); + if (_shutdown) throw InvalidAccessException("Session pool has been shut down."); + Poco::Mutex::ScopedLock lock(_mutex); purgeDeadSessions(); if (_idleSessions.empty()) @@ -95,7 +95,6 @@ Session SessionPool::get() void SessionPool::purgeDeadSessions() { - Poco::Mutex::ScopedLock lock(_mutex); if (_shutdown) return; SessionList::iterator it = _idleSessions.begin(); @@ -139,9 +138,9 @@ int SessionPool::connTimeout() const int SessionPool::dead() { - Poco::Mutex::ScopedLock lock(_mutex); int count = 0; + Poco::Mutex::ScopedLock lock(_mutex); SessionList::iterator it = _activeSessions.begin(); SessionList::iterator itEnd = _activeSessions.end(); for (; it != itEnd; ++it) @@ -156,7 +155,6 @@ int SessionPool::dead() int SessionPool::allocated() const { - Poco::Mutex::ScopedLock lock(_mutex); return _nSessions; } @@ -170,21 +168,24 @@ int SessionPool::available() const void SessionPool::setFeature(const std::string& name, bool state) { - Poco::Mutex::ScopedLock lock(_mutex); if (_shutdown) throw InvalidAccessException("Session pool has been shut down."); if (_nSessions > 0) throw InvalidAccessException("Features can not be set after the first session was created."); + Poco::Mutex::ScopedLock lock(_mutex); _featureMap.insert(FeatureMap::ValueType(name, state)); } bool SessionPool::getFeature(const std::string& name) { - FeatureMap::ConstIterator it = _featureMap.find(name); + if (_shutdown) throw InvalidAccessException("Session pool has been shut down."); + Poco::Mutex::ScopedLock lock(_mutex); + FeatureMap::ConstIterator it = _featureMap.find(name); + if (_featureMap.end() == it) throw NotFoundException("Feature not found:" + name); @@ -194,18 +195,19 @@ bool SessionPool::getFeature(const std::string& name) void SessionPool::setProperty(const std::string& name, const Poco::Any& value) { - Poco::Mutex::ScopedLock lock(_mutex); if (_shutdown) throw InvalidAccessException("Session pool has been shut down."); if (_nSessions > 0) throw InvalidAccessException("Properties can not be set after first session was created."); + Poco::Mutex::ScopedLock lock(_mutex); _propertyMap.insert(PropertyMap::ValueType(name, value)); } Poco::Any SessionPool::getProperty(const std::string& name) { + Poco::Mutex::ScopedLock lock(_mutex); PropertyMap::ConstIterator it = _propertyMap.find(name); if (_propertyMap.end() == it) @@ -234,9 +236,9 @@ void SessionPool::customizeSession(Session&) void SessionPool::putBack(PooledSessionHolderPtr pHolder) { - Poco::Mutex::ScopedLock lock(_mutex); if (_shutdown) return; + Poco::Mutex::ScopedLock lock(_mutex); SessionList::iterator it = std::find(_activeSessions.begin(), _activeSessions.end(), pHolder); if (it != _activeSessions.end()) { @@ -287,9 +289,9 @@ void SessionPool::putBack(PooledSessionHolderPtr pHolder) void SessionPool::onJanitorTimer(Poco::Timer&) { - Poco::Mutex::ScopedLock lock(_mutex); if (_shutdown) return; + Poco::Mutex::ScopedLock lock(_mutex); SessionList::iterator it = _idleSessions.begin(); while (_nSessions > _minSessions && it != _idleSessions.end()) { @@ -312,15 +314,9 @@ void SessionPool::onJanitorTimer(Poco::Timer&) void SessionPool::shutdown() { - { - Poco::Mutex::ScopedLock lock(_mutex); - if (_shutdown) return; - _shutdown = true; - } - + if (_shutdown.exchange(true)) return; + _shutdown = true; _janitorTimer.stop(); - - Poco::Mutex::ScopedLock lock(_mutex); closeAll(_idleSessions); closeAll(_activeSessions); } @@ -344,4 +340,4 @@ void SessionPool::closeAll(SessionList& sessionList) } -} } // namespace Poco::Data \ No newline at end of file +} } // namespace Poco::Data diff --git a/Data/src/Transaction.cpp b/Data/src/Transaction.cpp index e66b6b3c8..28c066964 100644 --- a/Data/src/Transaction.cpp +++ b/Data/src/Transaction.cpp @@ -22,6 +22,7 @@ namespace Data { Transaction::Transaction(Poco::Data::Session& rSession, Poco::Logger* pLogger): _rSession(rSession), + _autoCommit(_rSession.hasFeature("autoCommit") ? _rSession.getFeature("autoCommit") : false), _pLogger(pLogger) { begin(); @@ -30,6 +31,7 @@ Transaction::Transaction(Poco::Data::Session& rSession, Poco::Logger* pLogger): Transaction::Transaction(Poco::Data::Session& rSession, bool start): _rSession(rSession), + _autoCommit(_rSession.hasFeature("autoCommit") ? _rSession.getFeature("autoCommit") : false), _pLogger(0) { if (start) begin(); @@ -71,7 +73,11 @@ Transaction::~Transaction() void Transaction::begin() { if (!_rSession.isTransaction()) + { + if (_autoCommit) + _rSession.setFeature("autoCommit", false); _rSession.begin(); + } else throw InvalidAccessException("Transaction in progress."); } @@ -85,21 +91,28 @@ void Transaction::execute(const std::string& sql, bool doCommit) } -void Transaction::execute(const std::vector& sql) +bool Transaction::execute(const std::vector& sql) +{ + return execute(sql, nullptr); +} + +bool Transaction::execute(const std::vector& sql, std::string* info) { try { std::vector::const_iterator it = sql.begin(); std::vector::const_iterator end = sql.end(); for (; it != end; ++it) execute(*it, it + 1 == end ? true : false); - return; + return true; } catch (Exception& ex) { if (_pLogger) _pLogger->log(ex); + if(info) *info = ex.displayText(); } rollback(); + return false; } @@ -109,6 +122,8 @@ void Transaction::commit() _pLogger->debug("Committing transaction."); _rSession.commit(); + if (_autoCommit) + _rSession.setFeature("autoCommit", true); } @@ -118,6 +133,8 @@ void Transaction::rollback() _pLogger->debug("Rolling back transaction."); _rSession.rollback(); + if (_autoCommit) + _rSession.setFeature("autoCommit", true); } diff --git a/build/config/Linux b/build/config/Linux index 84ecf7d47..83535dd42 100644 --- a/build/config/Linux +++ b/build/config/Linux @@ -11,9 +11,10 @@ LINKMODE ?= SHARED SANITIZEFLAGS ?= -#-fsanitize=address -#-fsanitize=undefined -#-fsanitize=thread +# sanitize flags: +# -fsanitize=address +# -fsanitize=undefined +# -fsanitize=thread # # Define Tools From c918c70e68e3d7ddc1236d5c234331ff5e966ea9 Mon Sep 17 00:00:00 2001 From: Pavle Dragisic Date: Mon, 23 Oct 2023 08:17:51 +0200 Subject: [PATCH 133/395] Fix pthread_setname not declared (#4210) * Fix pthread_setname not declared #4063 * Fix include prctl.h for specific OS #4063 * Fix getThreadName for specific OS #4063 --------- Co-authored-by: root Co-authored-by: Pavle --- Foundation/src/Thread_POSIX.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Foundation/src/Thread_POSIX.cpp b/Foundation/src/Thread_POSIX.cpp index 33813921d..919d9964a 100644 --- a/Foundation/src/Thread_POSIX.cpp +++ b/Foundation/src/Thread_POSIX.cpp @@ -37,6 +37,10 @@ # include #endif +#if POCO_OS == POCO_OS_LINUX || POCO_OS == POCO_OS_ANDROID || POCO_OS == POCO_OS_FREE_BSD +# include +#endif + #if POCO_OS == POCO_OS_LINUX #ifndef _GNU_SOURCE #define _GNU_SOURCE /* See feature_test_macros(7) */ @@ -83,7 +87,7 @@ namespace #elif (POCO_OS == POCO_OS_MAC_OS_X) if (pthread_setname_np(threadName.c_str())) #else - if (pthread_setname_np(pthread_self(), threadName.c_str())) + if (prctl(PR_SET_NAME, threadName.c_str())) #endif throw Poco::SystemException("cannot set thread name"); } @@ -91,8 +95,13 @@ namespace std::string getThreadName() { char name[POCO_MAX_THREAD_NAME_LEN + 1]{'\0'}; +#if POCO_OS == POCO_OS_LINUX || POCO_OS == POCO_OS_ANDROID || POCO_OS == POCO_OS_FREE_BSD + if (prctl(PR_GET_NAME, name)) + throw Poco::SystemException("cannot get thread name"); +#else if (pthread_getname_np(pthread_self(), name, POCO_MAX_THREAD_NAME_LEN + 1)) throw Poco::SystemException("cannot get thread name"); +#endif return name; } } From e40f07099d2e4d355d5048e44c039925f56ca694 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Mon, 23 Oct 2023 13:33:46 +0200 Subject: [PATCH 134/395] fix(Net): Add Unix socket support on windows #4208 (#4209) * fix(Net): Add Unix socket support on windows #4208 * feat(Net): add abstract local socket support #4208 * fix(PollSet): use localhost socket in PollSet on windows when available #4208 * fix(PollSetTest): comment checking unconnected sockets status (Linux epoll signals them as readable/writable) --- .vscode/c_cpp_properties.json | 3 +- Foundation/include/Poco/Config.h | 4 ++ Net/include/Poco/Net/SocketAddress.h | 43 ++++++++++---- Net/include/Poco/Net/SocketAddressImpl.h | 2 +- Net/include/Poco/Net/SocketDefs.h | 15 ++++- Net/src/DatagramSocketImpl.cpp | 3 +- Net/src/MulticastSocket.cpp | 2 +- Net/src/PollSet.cpp | 75 ++++++++++++++---------- Net/src/SocketAddress.cpp | 25 +++++--- Net/src/SocketAddressImpl.cpp | 28 ++++++--- Net/src/SocketImpl.cpp | 11 +++- Net/src/StreamSocketImpl.cpp | 2 +- Net/src/TCPServer.cpp | 2 +- Net/src/WebSocketImpl.cpp | 4 +- Net/testsuite/src/EchoServer.cpp | 5 ++ Net/testsuite/src/PollSetTest.cpp | 50 +++++++++++----- Net/testsuite/src/SocketAddressTest.cpp | 20 ++++--- Net/testsuite/src/SocketTest.cpp | 46 +++++++++++++-- Net/testsuite/src/SocketTest.h | 1 + 19 files changed, 243 insertions(+), 98 deletions(-) diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index 9ba835918..a26186809 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -22,7 +22,8 @@ "${POCO_BASE}/JWT/include", "${POCO_BASE}/Redis/include", "${POCO_BASE}/MongoDB/include", - "${POCO_BASE}/ApacheConnector/include" + "${POCO_BASE}/ApacheConnector/include", + "/usr/include" ] }, "configurations": [ diff --git a/Foundation/include/Poco/Config.h b/Foundation/include/Poco/Config.h index 461c55289..dfcbf3b25 100644 --- a/Foundation/include/Poco/Config.h +++ b/Foundation/include/Poco/Config.h @@ -149,6 +149,10 @@ // No UNIX socket support // Define to disable unix sockets +// UNIX local sockets are default-enabled on +// all UNIX systems, on Windows if available +// See Net/SocketDefs.h +// See https://devblogs.microsoft.com/commandline/af_unix-comes-to-windows/ // #define POCO_NET_NO_UNIX_SOCKET diff --git a/Net/include/Poco/Net/SocketAddress.h b/Net/include/Poco/Net/SocketAddress.h index c6d3069ef..d0ed93c13 100644 --- a/Net/include/Poco/Net/SocketAddress.h +++ b/Net/include/Poco/Net/SocketAddress.h @@ -37,8 +37,11 @@ class IPAddress; class Net_API SocketAddress /// This class represents an internet (IP) endpoint/socket /// address. The address can belong either to the - /// IPv4 or the IPv6 address family and consists of a - /// host address and a port number. + /// IPv4, IPv6 or Unix local family. + /// IP addresses consist of a host address and a port number. + /// An Unix local socket address consists of a path to socket file. + /// Abstract local sockets, which operate without the need for + /// interaction with the filesystem, are supported on Linux only. { public: // The following declarations keep the Family type @@ -49,7 +52,7 @@ public: #if defined(POCO_HAVE_IPv6) static const Family IPv6 = AddressFamily::IPv6; #endif -#if defined(POCO_OS_FAMILY_UNIX) +#if defined(POCO_HAS_UNIX_SOCKET) static const Family UNIX_LOCAL = AddressFamily::UNIX_LOCAL; #endif @@ -124,16 +127,30 @@ public: /// [::ffff:192.168.1.120]:2040 /// www.appinf.com:8080 /// - /// On POSIX platforms supporting UNIX_LOCAL sockets, hostAndPort - /// can also be the absolute path of a local socket, starting with a - /// slash, e.g. "/tmp/local.socket". + /// On platforms supporting UNIX_LOCAL sockets, hostAndPort + /// can also be a valid absolute local socket file path. + /// + /// Examples: + /// /tmp/local.sock + /// C:\Temp\local.sock + /// + /// On Linux, abstract local sockets are supported as well. + /// Abstract local sockets operate in a namespace that has + /// no need for a filesystem. They are identified by + /// a null byte at the beginning of the path. + /// + /// Example: + /// \0abstract.sock + /// SocketAddress(Family family, const std::string& addr); /// Creates a SocketAddress of the given family from a /// string representation of the address, which is - /// either an IP address and port number, separated by - /// a colon for IPv4 or IPv6 addresses, or a path for + /// either (1) an IP address and port number, separated by + /// a colon for IPv4 or IPv6 addresses, or (2) path for /// UNIX_LOCAL sockets. + /// See `SocketAddress(const string&)` documentation + /// for more details. SocketAddress(const SocketAddress& addr); /// Creates a SocketAddress by copying another one. @@ -181,7 +198,7 @@ public: enum { MAX_ADDRESS_LENGTH = -#if defined(POCO_OS_FAMILY_UNIX) +#if defined(POCO_HAS_UNIX_SOCKET) sizeof(struct sockaddr_un) #elif defined(POCO_HAVE_IPv6) sizeof(struct sockaddr_in6) @@ -214,7 +231,7 @@ private: void newIPv6(const IPAddress& hostAddress, Poco::UInt16 portNumber); #endif -#if defined(POCO_OS_FAMILY_UNIX) +#if defined(POCO_HAS_UNIX_SOCKET) void newLocal(const sockaddr_un* sockAddr); void newLocal(const std::string& path); #endif @@ -265,7 +282,7 @@ inline void SocketAddress::newIPv6(const IPAddress& hostAddress, Poco::UInt16 po #endif // POCO_HAVE_IPv6 -#if defined(POCO_OS_FAMILY_UNIX) +#if defined(POCO_HAS_UNIX_SOCKET) inline void SocketAddress::newLocal(const sockaddr_un* sockAddr) { _pImpl = new Poco::Net::Impl::LocalSocketAddressImpl(sockAddr); @@ -276,12 +293,12 @@ inline void SocketAddress::newLocal(const std::string& path) { _pImpl = new Poco::Net::Impl::LocalSocketAddressImpl(path.c_str(), path.size()); } -#endif // POCO_OS_FAMILY_UNIX +#endif // POCO_HAS_UNIX_SOCKET inline bool SocketAddress::operator == (const SocketAddress& socketAddress) const { -#if defined(POCO_OS_FAMILY_UNIX) +#if defined(POCO_HAS_UNIX_SOCKET) if (family() == UNIX_LOCAL) return toString() == socketAddress.toString(); else diff --git a/Net/include/Poco/Net/SocketAddressImpl.h b/Net/include/Poco/Net/SocketAddressImpl.h index b065ca2a6..7458a8118 100644 --- a/Net/include/Poco/Net/SocketAddressImpl.h +++ b/Net/include/Poco/Net/SocketAddressImpl.h @@ -177,7 +177,7 @@ inline SocketAddressImpl::Family IPv6SocketAddressImpl::family() const #endif // POCO_HAVE_IPv6 -#if defined(POCO_OS_FAMILY_UNIX) +#if defined(POCO_HAS_UNIX_SOCKET) class Net_API LocalSocketAddressImpl: public SocketAddressImpl diff --git a/Net/include/Poco/Net/SocketDefs.h b/Net/include/Poco/Net/SocketDefs.h index 46bfe2116..cbe80b9fb 100644 --- a/Net/include/Poco/Net/SocketDefs.h +++ b/Net/include/Poco/Net/SocketDefs.h @@ -30,6 +30,14 @@ #include #include #include + #if !defined (POCO_NET_NO_UNIX_SOCKET) + #if (__cplusplus >= 201703L) + #if __has_include() + #include + #define POCO_HAS_UNIX_SOCKET + #endif + #endif + #endif #define POCO_INVALID_SOCKET INVALID_SOCKET #define poco_socket_t SOCKET #define poco_socklen_t int @@ -148,7 +156,6 @@ #include #include #include - #if defined(POCO_OS_FAMILY_UNIX) #if (POCO_OS == POCO_OS_LINUX) || (POCO_OS == POCO_OS_ANDROID) // Net/src/NetworkInterface.cpp changed #include to #include // no more conflict, can use #include here @@ -161,7 +168,6 @@ #else #include #endif - #endif #if (POCO_OS == POCO_OS_SOLARIS) || (POCO_OS == POCO_OS_MAC_OS_X) #include #include @@ -228,6 +234,9 @@ #define POCO_TRY_AGAIN TRY_AGAIN #define POCO_NO_RECOVERY NO_RECOVERY #define POCO_NO_DATA NO_DATA + #if !defined (POCO_NET_NO_UNIX_SOCKET) + #define POCO_HAS_UNIX_SOCKET + #endif #endif @@ -389,7 +398,7 @@ struct AddressFamily { UNKNOWN = AF_UNSPEC, /// Unspecified family - #if defined(POCO_OS_FAMILY_UNIX) + #if defined(POCO_HAS_UNIX_SOCKET) UNIX_LOCAL = AF_UNIX, /// UNIX domain socket address family. Available on UNIX/POSIX platforms only. #endif diff --git a/Net/src/DatagramSocketImpl.cpp b/Net/src/DatagramSocketImpl.cpp index 9a4dfc1d3..33073c745 100644 --- a/Net/src/DatagramSocketImpl.cpp +++ b/Net/src/DatagramSocketImpl.cpp @@ -36,7 +36,8 @@ DatagramSocketImpl::DatagramSocketImpl(SocketAddress::Family family) else if (family == SocketAddress::IPv6) init(AF_INET6); #endif -#if defined(POCO_OS_FAMILY_UNIX) +// on windows, UDP is not supported for local sockets +#if defined(POCO_OS_FAMILY_UNIX) && defined(POCO_HAS_UNIX_SOCKET) else if (family == SocketAddress::UNIX_LOCAL) init(AF_UNIX); #endif diff --git a/Net/src/MulticastSocket.cpp b/Net/src/MulticastSocket.cpp index e48f3ed35..c761b77a6 100644 --- a/Net/src/MulticastSocket.cpp +++ b/Net/src/MulticastSocket.cpp @@ -53,7 +53,7 @@ MulticastSocket::MulticastSocket() MulticastSocket::MulticastSocket(SocketAddress::Family family): DatagramSocket(family) { -#if defined(POCO_OS_FAMILY_UNIX) +#if defined(POCO_HAS_UNIX_SOCKET) if (family == SocketAddress::UNIX_LOCAL) throw Poco::InvalidArgumentException("Cannot create a MulticastSocket with UNIX_LOCAL socket"); #endif diff --git a/Net/src/PollSet.cpp b/Net/src/PollSet.cpp index 80b4a6723..11bfa487e 100644 --- a/Net/src/PollSet.cpp +++ b/Net/src/PollSet.cpp @@ -14,6 +14,7 @@ #include "Poco/Net/PollSet.h" #include "Poco/Net/SocketImpl.h" +#include "Poco/TemporaryFile.h" #include "Poco/Mutex.h" #include @@ -68,9 +69,14 @@ public: using SocketMode = std::pair; using SocketMap = std::map; - PollSetImpl(): _events(1024), - _port(0), - _eventfd(eventfd(_port, 0)), + static const epoll_event EPOLL_NULL_EVENT; + + PollSetImpl(): _events(FD_SETSIZE, EPOLL_NULL_EVENT), +#if defined(WEPOLL_H_) + _eventfd(eventfd()), +#else + _eventfd(eventfd(0, 0)), +#endif // WEPOLL_H_ _epollfd(epoll_create(1)) { int err = addFD(_eventfd, PollSet::POLL_READ, EPOLL_CTL_ADD); @@ -87,7 +93,6 @@ public: ~PollSetImpl() { #ifdef WEPOLL_H_ - if (_eventfd >= 0) eventfd(_port, _eventfd); if (_epollfd) close(_epollfd); #else if (_eventfd > 0) close(_eventfd.exchange(0)); @@ -153,10 +158,7 @@ public: if (_epollfd < 0) SocketImpl::error(); #endif } -#ifdef WEPOLL_H_ - eventfd(_port, _eventfd); - _eventfd = eventfd(_port); -#else +#ifndef WEPOLL_H_ close(_eventfd.exchange(0)); _eventfd = eventfd(0, 0); #endif @@ -231,10 +233,16 @@ public: void wakeUp() { -#ifdef WEPOLL_H_ - StreamSocket ss(SocketAddress("127.0.0.1", _port)); -#else uint64_t val = 1; +#ifdef WEPOLL_H_ + #ifdef POCO_HAS_UNIX_SOCKET + poco_check_ptr (_pSockFile); + StreamSocket ss(SocketAddress(_pSockFile->path())); + #else + StreamSocket ss(SocketAddress("127.0.0.1", _port)); + #endif + ss.sendBytes(&val, sizeof(val)); +#else // This is guaranteed to write into a valid fd, // or 0 (meaning PollSet is being destroyed). // Errors are ignored. @@ -296,41 +304,46 @@ private: return epoll_ctl(_epollfd, op, fd, &ev); } -#ifdef WEPOLL_H_ +#ifndef WEPOLL_H_ + using EPollHandle = std::atomic; +#else // WEPOLL_H_ + using EPollHandle = std::atomic; - int eventfd(int& port, int rmFD = 0) - { - if (rmFD == 0) + #ifdef POCO_HAS_UNIX_SOCKET + int eventfd() { - _pSocket = new ServerSocket(SocketAddress("127.0.0.1", 0)); + if (!_pSockFile) + { + _pSockFile.reset(new TemporaryFile); + _pSocket.reset(new ServerSocket(SocketAddress(_pSockFile->path()))); + } _pSocket->setBlocking(false); - port = _pSocket->address().port(); return static_cast(_pSocket->impl()->sockfd()); } - else + std::unique_ptr _pSockFile; + #else // no unix socket, listen on localhost + int eventfd() { - delete _pSocket; - _pSocket = 0; - port = 0; + if (!_pSocket) + _pSocket.reset(new ServerSocket(SocketAddress("127.0.0.1", 0))); + _port = _pSocket->address().port(); + _pSocket->setBlocking(false); + return static_cast(_pSocket->impl()->sockfd()); } - return 0; - } + int _port = 0; + #endif // POCO_HAS_UNIX_SOCKET + std::unique_ptr _pSocket; #endif // WEPOLL_H_ mutable Mutex _mutex; - SocketMap _socketMap; + SocketMap _socketMap; std::vector _events; - int _port; std::atomic _eventfd; -#ifdef WEPOLL_H_ - std::atomic _epollfd; - ServerSocket* _pSocket; -#else - std::atomic _epollfd; -#endif + EPollHandle _epollfd; }; +const epoll_event PollSetImpl::EPOLL_NULL_EVENT = {0, {0}}; #elif defined(POCO_HAVE_FD_POLL) diff --git a/Net/src/SocketAddress.cpp b/Net/src/SocketAddress.cpp index 487f5ae07..d9a7ce654 100644 --- a/Net/src/SocketAddress.cpp +++ b/Net/src/SocketAddress.cpp @@ -20,12 +20,14 @@ #include "Poco/NumberParser.h" #include "Poco/BinaryReader.h" #include "Poco/BinaryWriter.h" +#include "Poco/RegularExpression.h" #include #include using Poco::RefCountedObject; using Poco::NumberParser; +using Poco::RegularExpression; using Poco::UInt16; using Poco::InvalidArgumentException; using Poco::Net::Impl::SocketAddressImpl; @@ -33,7 +35,7 @@ using Poco::Net::Impl::IPv4SocketAddressImpl; #ifdef POCO_HAVE_IPv6 using Poco::Net::Impl::IPv6SocketAddressImpl; #endif -#ifdef POCO_OS_FAMILY_UNIX +#ifdef POCO_HAS_UNIX_SOCKET using Poco::Net::Impl::LocalSocketAddressImpl; #endif @@ -63,7 +65,7 @@ const SocketAddress::Family SocketAddress::IPv4; #if defined(POCO_HAVE_IPv6) const SocketAddress::Family SocketAddress::IPv6; #endif -#if defined(POCO_OS_FAMILY_UNIX) +#if defined(POCO_HAS_UNIX_SOCKET) const SocketAddress::Family SocketAddress::UNIX_LOCAL; #endif #endif @@ -143,7 +145,7 @@ SocketAddress::SocketAddress(const SocketAddress& socketAddress) else if (socketAddress.family() == IPv6) newIPv6(reinterpret_cast(socketAddress.addr())); #endif -#if defined(POCO_OS_FAMILY_UNIX) +#if defined(POCO_HAS_UNIX_SOCKET) else if (socketAddress.family() == UNIX_LOCAL) newLocal(reinterpret_cast(socketAddress.addr())); #endif @@ -164,7 +166,7 @@ SocketAddress::SocketAddress(const struct sockaddr* sockAddr, poco_socklen_t len else if (length == sizeof(struct sockaddr_in6) && sockAddr->sa_family == AF_INET6) newIPv6(reinterpret_cast(sockAddr)); #endif -#if defined(POCO_OS_FAMILY_UNIX) +#if defined(POCO_HAS_UNIX_SOCKET) else if (length > 0 && length <= sizeof(struct sockaddr_un) && sockAddr->sa_family == AF_UNIX) newLocal(reinterpret_cast(sockAddr)); #endif @@ -181,7 +183,7 @@ bool SocketAddress::operator < (const SocketAddress& socketAddress) const { if (family() < socketAddress.family()) return true; if (family() > socketAddress.family()) return false; -#if defined(POCO_OS_FAMILY_UNIX) +#if defined(POCO_HAS_UNIX_SOCKET) if (family() == UNIX_LOCAL) return toString() < socketAddress.toString(); #endif if (host() < socketAddress.host()) return true; @@ -200,7 +202,7 @@ SocketAddress& SocketAddress::operator = (const SocketAddress& socketAddress) else if (socketAddress.family() == IPv6) newIPv6(reinterpret_cast(socketAddress.addr())); #endif -#if defined(POCO_OS_FAMILY_UNIX) +#if defined(POCO_HAS_UNIX_SOCKET) else if (socketAddress.family() == UNIX_LOCAL) newLocal(reinterpret_cast(socketAddress.addr())); #endif @@ -325,7 +327,7 @@ void SocketAddress::init(Family fam, const std::string& hostAddress, Poco::UInt1 void SocketAddress::init(Family fam, const std::string& address) { -#if defined(POCO_OS_FAMILY_UNIX) +#if defined(POCO_HAS_UNIX_SOCKET) if (fam == UNIX_LOCAL) { newLocal(address); @@ -364,6 +366,15 @@ void SocketAddress::init(const std::string& hostAndPort) { poco_assert (!hostAndPort.empty()); +#if defined(POCO_OS_FAMILY_WINDOWS) && defined(POCO_HAS_UNIX_SOCKET) + RegularExpression re(R"((?:[a-zA-Z]\:|\\\\[\w\s\.]+\\[\w\s\.$]+)\\(?:[\w\s\.]+\\)*[\w\s\.]*?$)"); + if (re.match(hostAndPort)) + { + newLocal(hostAndPort); + return; + } +#endif + std::string host; std::string port; std::string::const_iterator it = hostAndPort.begin(); diff --git a/Net/src/SocketAddressImpl.cpp b/Net/src/SocketAddressImpl.cpp index 57690170f..d153b9041 100644 --- a/Net/src/SocketAddressImpl.cpp +++ b/Net/src/SocketAddressImpl.cpp @@ -127,7 +127,7 @@ std::string IPv6SocketAddressImpl::toString() const #endif // POCO_HAVE_IPv6 -#if defined(POCO_OS_FAMILY_UNIX) +#if defined(POCO_HAS_UNIX_SOCKET) // @@ -146,22 +146,36 @@ LocalSocketAddressImpl::LocalSocketAddressImpl(const char* path) { poco_assert (std::strlen(path) < sizeof(_pAddr->sun_path)); +#if POCO_OS != POCO_OS_LINUX + if (path[0] == 0) + throw Poco::InvalidArgumentException("LocalSocketAddressImpl(): " + "abstract sockets are only supported on Linux"); +#endif + _pAddr = new sockaddr_un; - poco_set_sun_len(_pAddr, std::strlen(path) + sizeof(struct sockaddr_un) - sizeof(_pAddr->sun_path) + 1); + std::memset(_pAddr, 0, sizeof(sockaddr_un)); + std::size_t length = strlen(path); + poco_set_sun_len(_pAddr, length + sizeof(struct sockaddr_un) - sizeof(_pAddr->sun_path) + 1); _pAddr->sun_family = AF_UNIX; - std::strcpy(_pAddr->sun_path, path); + std::memcpy(&_pAddr->sun_path, path, length); } LocalSocketAddressImpl::LocalSocketAddressImpl(const char* path, std::size_t length) { - poco_assert (length < sizeof(_pAddr->sun_path)); + poco_assert (length && length < sizeof(_pAddr->sun_path)); + +#if POCO_OS != POCO_OS_LINUX + if (path[0] == 0) + throw Poco::InvalidArgumentException("LocalSocketAddressImpl(): " + "abstract sockets are only supported on Linux"); +#endif _pAddr = new sockaddr_un; + std::memset(_pAddr, 0, sizeof(sockaddr_un)); poco_set_sun_len(_pAddr, length + sizeof(struct sockaddr_un) - sizeof(_pAddr->sun_path) + 1); _pAddr->sun_family = AF_UNIX; - std::memcpy(_pAddr->sun_path, path, length); - _pAddr->sun_path[length] = 0; + std::memcpy(&_pAddr->sun_path, path, length); } @@ -178,7 +192,7 @@ std::string LocalSocketAddressImpl::toString() const } -#endif // POCO_OS_FAMILY_UNIX +#endif // POCO_HAS_UNIX_SOCKET } } } // namespace Poco::Net::Impl diff --git a/Net/src/SocketImpl.cpp b/Net/src/SocketImpl.cpp index 6f1ce8552..f35a41996 100644 --- a/Net/src/SocketImpl.cpp +++ b/Net/src/SocketImpl.cpp @@ -227,8 +227,15 @@ void SocketImpl::bind(const SocketAddress& address, bool reuseAddress, bool reus { init(address.af()); } - setReuseAddress(reuseAddress); - setReusePort(reusePort); + +#ifdef POCO_HAS_UNIX_SOCKET + if (address.family() != SocketAddress::Family::UNIX_LOCAL) +#endif + { + setReuseAddress(reuseAddress); + setReusePort(reusePort); + } + #if defined(POCO_VXWORKS) int rc = ::bind(_sockfd, (sockaddr*) address.addr(), address.length()); #else diff --git a/Net/src/StreamSocketImpl.cpp b/Net/src/StreamSocketImpl.cpp index 6e86c8fcc..427c440f0 100644 --- a/Net/src/StreamSocketImpl.cpp +++ b/Net/src/StreamSocketImpl.cpp @@ -34,7 +34,7 @@ StreamSocketImpl::StreamSocketImpl(SocketAddress::Family family) else if (family == SocketAddress::IPv6) init(AF_INET6); #endif -#if defined(POCO_OS_FAMILY_UNIX) +#if defined(POCO_HAS_UNIX_SOCKET) else if (family == SocketAddress::UNIX_LOCAL) init(AF_UNIX); #endif diff --git a/Net/src/TCPServer.cpp b/Net/src/TCPServer.cpp index 71c91f756..46951fdb9 100644 --- a/Net/src/TCPServer.cpp +++ b/Net/src/TCPServer.cpp @@ -139,7 +139,7 @@ void TCPServer::run() if (!_pConnectionFilter || _pConnectionFilter->accept(ss)) { // enable nodelay per default: OSX really needs that -#if defined(POCO_OS_FAMILY_UNIX) +#if defined(POCO_HAS_UNIX_SOCKET) if (ss.address().family() != AddressFamily::UNIX_LOCAL) #endif { diff --git a/Net/src/WebSocketImpl.cpp b/Net/src/WebSocketImpl.cpp index b9d3f08c7..f7976cc98 100644 --- a/Net/src/WebSocketImpl.cpp +++ b/Net/src/WebSocketImpl.cpp @@ -11,7 +11,9 @@ // SPDX-License-Identifier: BSL-1.0 // - +#ifndef NOMINMAX + #define NOMINMAX +#endif // NOMINMAX #include "Poco/Net/WebSocketImpl.h" #include "Poco/Net/NetException.h" #include "Poco/Net/WebSocket.h" diff --git a/Net/testsuite/src/EchoServer.cpp b/Net/testsuite/src/EchoServer.cpp index 7db735ef2..67f3529c6 100644 --- a/Net/testsuite/src/EchoServer.cpp +++ b/Net/testsuite/src/EchoServer.cpp @@ -72,6 +72,11 @@ void EchoServer::run() { ss.sendBytes(buffer, n); n = ss.receiveBytes(buffer, sizeof(buffer)); + if (n == 0) + { + _stop = true; + break; + } } } catch (Poco::Exception& exc) diff --git a/Net/testsuite/src/PollSetTest.cpp b/Net/testsuite/src/PollSetTest.cpp index 05701af3b..e3c6b267c 100644 --- a/Net/testsuite/src/PollSetTest.cpp +++ b/Net/testsuite/src/PollSetTest.cpp @@ -326,10 +326,9 @@ void PollSetTest::testPoll() void PollSetTest::testPollNoServer() { - StreamSocket ss1; - StreamSocket ss2; - ss1.connectNB(SocketAddress("127.0.0.1", 0xFEFE)); - ss2.connectNB(SocketAddress("127.0.0.1", 0xFEFF)); + StreamSocket ss1(SocketAddress::IPv4); + StreamSocket ss2(SocketAddress::IPv4); + PollSet ps; assertTrue(ps.empty()); ps.add(ss1, PollSet::POLL_READ | PollSet::POLL_WRITE | PollSet::POLL_ERROR); @@ -337,26 +336,35 @@ void PollSetTest::testPollNoServer() assertTrue(!ps.empty()); assertTrue(ps.has(ss1)); assertTrue(ps.has(ss2)); + + // should be like this, but Linux epoll disagrees ... + //assertEqual(0, static_cast(ps.poll(Timespan(100)).size())); + + ss1.connectNB(SocketAddress("127.0.0.1", 0xFEFE)); + ss2.connectNB(SocketAddress("127.0.0.1", 0xFEFF)); + PollSet::SocketModeMap sm; - int signalled = 0; + int signalledErrors = 0; Stopwatch sw; sw.start(); do { sm = ps.poll(Timespan(1000000)); for (auto s : sm) + { assertTrue(0 != (s.second & PollSet::POLL_ERROR)); + ++signalledErrors; + } - signalled += static_cast(sm.size()); sm.clear(); int secs = sw.elapsedSeconds(); if (secs > 10) { fail(Poco::format("testPollNoServer() timed out after %ds, " "sockets signalled=%d (expected 2)", - secs, signalled), __LINE__); + secs, signalledErrors), __LINE__); } - } while (signalled < 2); - assertTrue(signalled == 2); + } while (signalledErrors < 2); + assertEqual(2, signalledErrors); } @@ -365,11 +373,9 @@ void PollSetTest::testPollClosedServer() { EchoServer echoServer1; EchoServer echoServer2; - StreamSocket ss1; - StreamSocket ss2; - ss1.connect(SocketAddress("127.0.0.1", echoServer1.port())); - ss2.connect(SocketAddress("127.0.0.1", echoServer2.port())); + StreamSocket ss1(SocketAddress::IPv4); + StreamSocket ss2(SocketAddress::IPv4); PollSet ps; assertTrue(ps.empty()); @@ -379,6 +385,11 @@ void PollSetTest::testPollClosedServer() assertTrue(ps.has(ss1)); assertTrue(ps.has(ss2)); + //assertEqual(0, static_cast(ps.poll(Timespan(100)).size())); + + ss1.connect(SocketAddress("127.0.0.1", echoServer1.port())); + ss2.connect(SocketAddress("127.0.0.1", echoServer2.port())); + std::string str = "HELLO"; int len = static_cast(str.length()); @@ -393,14 +404,23 @@ void PollSetTest::testPollClosedServer() int secs = sw.elapsedSeconds(); if (secs > 10) { - fail(Poco::format("testPollClosedServer() timed out " + fail(Poco::format("testPollClosedServer(1) timed out " "waiting on server after %ds", secs), __LINE__); } } echoServer2.stop(); assertTrue (len == ss2.sendBytes(str.data(), len)); - while (!echoServer2.done()) Thread::sleep(10); + while (!echoServer2.done()) + { + Thread::sleep(10); + int secs = sw.elapsedSeconds(); + if (secs > 10) + { + fail(Poco::format("testPollClosedServer(2) timed out " + "waiting on server after %ds", secs), __LINE__); + } + } int signalled = 0; sw.restart(); diff --git a/Net/testsuite/src/SocketAddressTest.cpp b/Net/testsuite/src/SocketAddressTest.cpp index 744e00d2c..2249f9df1 100644 --- a/Net/testsuite/src/SocketAddressTest.cpp +++ b/Net/testsuite/src/SocketAddressTest.cpp @@ -11,6 +11,7 @@ #include "SocketAddressTest.h" #include "CppUnit/TestCaller.h" #include "CppUnit/TestSuite.h" +#include "Poco/Path.h" #include "Poco/Net/SocketAddress.h" #include "Poco/Net/NetException.h" #include @@ -23,6 +24,7 @@ using Poco::Net::HostNotFoundException; using Poco::Net::ServiceNotFoundException; using Poco::Net::NoAddressFoundException; using Poco::Net::AddressFamilyMismatchException; +using Poco::Path; using Poco::InvalidArgumentException; @@ -184,25 +186,27 @@ void SocketAddressTest::testSocketAddress6() void SocketAddressTest::testSocketAddressUnixLocal() { -#ifdef POCO_OS_FAMILY_UNIX - SocketAddress sa1(SocketAddress::UNIX_LOCAL, "/tmp/sock1"); +#ifdef POCO_HAS_UNIX_SOCKET + std::string name1 = Path::tempHome() + "sock1"; + SocketAddress sa1(SocketAddress::UNIX_LOCAL, name1); assertTrue (sa1.af() == AF_UNIX); assertTrue (sa1.family() == SocketAddress::UNIX_LOCAL); - assertTrue (sa1.toString() == "/tmp/sock1"); + assertTrue (sa1.toString() == name1); - SocketAddress sa2(SocketAddress::UNIX_LOCAL, "/tmp/sock2"); + std::string name2 = Path::tempHome() + "sock2"; + SocketAddress sa2(SocketAddress::UNIX_LOCAL, name2); assertTrue (sa1 != sa2); assertTrue (sa1 < sa2); - SocketAddress sa3(SocketAddress::UNIX_LOCAL, "/tmp/sock1"); + SocketAddress sa3(SocketAddress::UNIX_LOCAL, name1); assertTrue (sa1 == sa3); assertTrue (!(sa1 < sa3)); - SocketAddress sa4("/tmp/sock1"); + SocketAddress sa4(name1); assertTrue (sa1 == sa4); - assertTrue (sa4.toString() == "/tmp/sock1"); + assertTrue (sa4.toString() == name1); #else - std::cout << "[UNIX LOCAL DISABLED]" << std::endl; + std::cout << "[UNIX LOCAL SOCKET DISABLED]" << std::endl; #endif } diff --git a/Net/testsuite/src/SocketTest.cpp b/Net/testsuite/src/SocketTest.cpp index a4b8c47de..e4df0208b 100644 --- a/Net/testsuite/src/SocketTest.cpp +++ b/Net/testsuite/src/SocketTest.cpp @@ -22,6 +22,7 @@ #include "Poco/FIFOBuffer.h" #include "Poco/Delegate.h" #include "Poco/File.h" +#include "Poco/Path.h" #include @@ -36,6 +37,8 @@ using Poco::TimeoutException; using Poco::InvalidArgumentException; using Poco::Buffer; using Poco::FIFOBuffer; +using Poco::Path; +using Poco::File; using Poco::delegate; @@ -536,12 +539,14 @@ void SocketTest::testSelect3() void SocketTest::testEchoUnixLocal() { -#if defined(POCO_OS_FAMILY_UNIX) +#if defined(POCO_HAS_UNIX_SOCKET) #if POCO_OS == POCO_OS_ANDROID - Poco::File socketFile("/data/local/tmp/SocketTest.sock"); + File socketFile("/data/local/tmp/SocketTest.sock"); +#elif defined(POCO_OS_FAMILY_WINDOWS) + File socketFile(Path::tempHome() + "SocketTest.sock"); #else - Poco::File socketFile("/tmp/SocketTest.sock"); -#endif + File socketFile("/tmp/SocketTest.sock"); +#endif // POCO_OS == POCO_OS_ANDROID if (socketFile.exists()) socketFile.remove(); SocketAddress localAddr(SocketAddress::UNIX_LOCAL, socketFile.path()); EchoServer echoServer(localAddr); @@ -554,7 +559,37 @@ void SocketTest::testEchoUnixLocal() assertTrue (n == 5); assertTrue (std::string(buffer, n) == "hello"); ss.close(); - socketFile.remove(); + if (socketFile.exists()) socketFile.remove(); + echoServer.stop(); +#else // POCO_HAS_UNIX_SOCKET + #pragma message("[UNIX LOCAL SOCKET DISABLED]") + std::cout << "[UNIX LOCAL SOCKET DISABLED]" << std::endl; +#endif +} + + +void SocketTest::testUnixLocalAbstract() +{ +// abstract local sockets don't work on windows +// see https://github.com/microsoft/WSL/issues/4240 +// they are a nonportable Linux extension +#if (POCO_OS == POCO_OS_LINUX) && defined(POCO_HAS_UNIX_SOCKET) + std::string addr("\0look ma - no file!", 20); + SocketAddress localAddr(SocketAddress::UNIX_LOCAL, addr); + EchoServer echoServer(localAddr); + StreamSocket ss(SocketAddress::UNIX_LOCAL); + ss.connect(localAddr); + int n = ss.sendBytes("hello", 5); + assertTrue(n == 5); + char buffer[256]; + n = ss.receiveBytes(buffer, sizeof(buffer)); + assertTrue(n == 5); + assertTrue(std::string(buffer, n) == "hello"); + ss.close(); + echoServer.stop(); +#else // POCO_HAS_UNIX_SOCKET +#pragma message("[ABSTRACT UNIX LOCAL SOCKET DISABLED]") + std::cout << "[ABSTRACT UNIX LOCAL SOCKET DISABLED]" << std::endl; #endif } @@ -610,6 +645,7 @@ CppUnit::Test* SocketTest::suite() CppUnit_addTest(pSuite, SocketTest, testSelect2); CppUnit_addTest(pSuite, SocketTest, testSelect3); CppUnit_addTest(pSuite, SocketTest, testEchoUnixLocal); + CppUnit_addTest(pSuite, SocketTest, testUnixLocalAbstract); return pSuite; } diff --git a/Net/testsuite/src/SocketTest.h b/Net/testsuite/src/SocketTest.h index 85d5f4950..7575d7f9d 100644 --- a/Net/testsuite/src/SocketTest.h +++ b/Net/testsuite/src/SocketTest.h @@ -42,6 +42,7 @@ public: void testSelect2(); void testSelect3(); void testEchoUnixLocal(); + void testUnixLocalAbstract(); void setUp(); void tearDown(); From c163237221b42bd265c28a82b40398f15e26b386 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Mon, 23 Oct 2023 17:42:16 +0200 Subject: [PATCH 135/395] fix(Thread): Fix pthread_setname not declared #4210 --- Foundation/src/Thread_POSIX.cpp | 39 ++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/Foundation/src/Thread_POSIX.cpp b/Foundation/src/Thread_POSIX.cpp index 919d9964a..7f01d17c7 100644 --- a/Foundation/src/Thread_POSIX.cpp +++ b/Foundation/src/Thread_POSIX.cpp @@ -51,6 +51,10 @@ #include +#if POCO_OS == POCO_OS_LINUX || POCO_OS == POCO_OS_ANDROID || POCO_OS == POCO_OS_FREE_BSD +# include +#endif + // // Block SIGPIPE in main thread. // @@ -76,31 +80,39 @@ namespace } #endif - namespace { - void setThreadName(const std::string& threadName) + std::string truncName(const std::string& name) { -#if POCO_OS == POCO_OS_FREE_BSD && __FreeBSD_version < 1300000 - pthread_set_name_np(pthread_self(), threadName.c_str()); - return; + if (name.size() > POCO_MAX_THREAD_NAME_LEN) + return name.substr(0, POCO_MAX_THREAD_NAME_LEN).append("~"); + return name; + } + + void setThreadName(const std::string& threadName) + /// Sets thread name. Support for this feature varies + /// on platforms. Any errors are ignored. + { +#if POCO_OS == POCO_OS_FREE_BSD && __FreeBSD_version < 1300000 + pthread_setname_np(pthread_self(), truncName(threadName).c_str()); #elif (POCO_OS == POCO_OS_MAC_OS_X) - if (pthread_setname_np(threadName.c_str())) + #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED + #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 + pthread_setname_np(truncName(threadName).c_str()); // __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_2) + #endif + #endif // __MAC_OS_X_VERSION_MIN_REQUIRED #else - if (prctl(PR_SET_NAME, threadName.c_str())) + prctl(PR_SET_NAME, truncName(threadName).c_str()); #endif - throw Poco::SystemException("cannot set thread name"); } std::string getThreadName() { char name[POCO_MAX_THREAD_NAME_LEN + 1]{'\0'}; #if POCO_OS == POCO_OS_LINUX || POCO_OS == POCO_OS_ANDROID || POCO_OS == POCO_OS_FREE_BSD - if (prctl(PR_GET_NAME, name)) - throw Poco::SystemException("cannot get thread name"); + prctl(PR_GET_NAME, name); #else - if (pthread_getname_np(pthread_self(), name, POCO_MAX_THREAD_NAME_LEN + 1)) - throw Poco::SystemException("cannot get thread name"); + pthread_getname_np(pthread_self(), name, POCO_MAX_THREAD_NAME_LEN + 1); #endif return name; } @@ -366,7 +378,8 @@ void* ThreadImpl::runnableEntry(void* pThread) pthread_sigmask(SIG_BLOCK, &sset, 0); #endif - auto* pThreadImpl = reinterpret_cast(pThread); + ThreadImpl* pThreadImpl = reinterpret_cast(pThread); + setThreadName(reinterpret_cast(pThread)->getName()); AutoPtr pData = pThreadImpl->_pData; { From 47ddacd0048ed404494ba6fb1616291aa18f27dc Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Mon, 23 Oct 2023 22:42:28 +0200 Subject: [PATCH 136/395] fix(SocketReactor): Protect stop() and wakeUp() from reentrance #4217 --- Net/src/SocketReactor.cpp | 3 +- Net/testsuite/src/SocketReactorTest.cpp | 76 ++++++++++++++++++++++--- 2 files changed, 70 insertions(+), 9 deletions(-) diff --git a/Net/src/SocketReactor.cpp b/Net/src/SocketReactor.cpp index f68457a08..32700ee37 100644 --- a/Net/src/SocketReactor.cpp +++ b/Net/src/SocketReactor.cpp @@ -160,13 +160,14 @@ void SocketReactor::sleep() void SocketReactor::stop() { - _stop = true; + if (_stop.exchange(true)) return; wakeUp(); } void SocketReactor::wakeUp() { + if (_stop) return; _pollSet.wakeUp(); _event.set(); } diff --git a/Net/testsuite/src/SocketReactorTest.cpp b/Net/testsuite/src/SocketReactorTest.cpp index 06a26e046..2319c2618 100644 --- a/Net/testsuite/src/SocketReactorTest.cpp +++ b/Net/testsuite/src/SocketReactorTest.cpp @@ -395,6 +395,45 @@ namespace Poco::Thread::sleep(500); } }; + + class DummyServiceHandler + { + public: + DummyServiceHandler(StreamSocket& socket, SocketReactor& reactor) : _socket(socket), + _reactor(reactor) + { + _reactor.addEventHandler(_socket, Observer(*this, &DummyServiceHandler::onReadable)); + _reactor.addEventHandler(_socket, Observer(*this, &DummyServiceHandler::onShutdown)); + _socket.setBlocking(false); + } + + ~DummyServiceHandler() + { + _reactor.removeEventHandler(_socket, Observer(*this, &DummyServiceHandler::onReadable)); + _reactor.removeEventHandler(_socket, Observer(*this, &DummyServiceHandler::onShutdown)); + } + + void onReadable(ReadableNotification* pNf) + { + pNf->release(); + char buffer[64]; + do + { + if (0 == _socket.receiveBytes(&buffer[0], sizeof(buffer))) + break; + } while (true); + } + + void onShutdown(ShutdownNotification* pNf) + { + pNf->release(); + delete this; + } + + private: + StreamSocket _socket; + SocketReactor& _reactor; + }; } @@ -589,19 +628,40 @@ void SocketReactorTest::testDataCollection() void SocketReactorTest::testSocketConnectorDeadlock() { - SocketAddress ssa; - ServerSocket ss(ssa); - SocketAddress sa("127.0.0.1", ss.address().port()); - SocketReactor reactor; - Thread thread; + { + SocketAddress ssa; + ServerSocket ss(ssa); + SocketAddress sa("127.0.0.1", ss.address().port()); + SocketReactor reactor; + Thread thread; + int i = 0; + while (++i < 10) + { + auto sc = new SocketConnector(sa, reactor); + thread.startFunc([&reactor]() { reactor.run(); }); + reactor.stop(); + thread.join(); + delete sc; + } + } + int i = 0; while (++i < 10) { - auto sc = new SocketConnector(sa, reactor); - thread.startFunc([&reactor]() { reactor.run(); }); + SocketAddress ssa; + ServerSocket ss(ssa); + SocketReactor reactor; + SocketAcceptor acceptor(ss, reactor); + Thread thread; + thread.start(reactor); + + SocketAddress sa("127.0.0.1", ss.address().port()); + StreamSocket sock(sa); + + std::string data("HELLO"); + sock.sendBytes(data.data(), static_cast(data.size())); reactor.stop(); thread.join(); - delete sc; } } From cd124204951e42b04e24b2910f069b29d8e72a95 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Mon, 23 Oct 2023 23:45:05 +0200 Subject: [PATCH 137/395] fix(Foundation): use after free warnings #4189 --- Foundation/include/Poco/ObjectPool.h | 7 +++++++ Foundation/testsuite/src/AutoPtrTest.cpp | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Foundation/include/Poco/ObjectPool.h b/Foundation/include/Poco/ObjectPool.h index ab86b15e8..5757ea8ba 100644 --- a/Foundation/include/Poco/ObjectPool.h +++ b/Foundation/include/Poco/ObjectPool.h @@ -302,6 +302,10 @@ public: protected: P activateObject(P pObject) { +#if defined(POCO_COMPILER_GCC) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wuse-after-free" +#endif try { _factory.activateObject(pObject); @@ -312,6 +316,9 @@ protected: throw; } return pObject; +#if defined(POCO_COMPILER_GCC) + #pragma GCC diagnostic pop +#endif } private: diff --git a/Foundation/testsuite/src/AutoPtrTest.cpp b/Foundation/testsuite/src/AutoPtrTest.cpp index 6e13086af..e6bbb1f49 100644 --- a/Foundation/testsuite/src/AutoPtrTest.cpp +++ b/Foundation/testsuite/src/AutoPtrTest.cpp @@ -13,6 +13,7 @@ #include "CppUnit/TestSuite.h" #include "Poco/AutoPtr.h" #include "Poco/Exception.h" +#include using Poco::AutoPtr; @@ -66,7 +67,7 @@ namespace } private: - int _rc; + std::atomic _rc; static int _count; }; From d15388cdc407a5caae7026e3bdbbed1a19aa5ea9 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Tue, 24 Oct 2023 00:09:47 +0200 Subject: [PATCH 138/395] update CHANGELOG --- CHANGELOG | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 16fff34dc..278b70c37 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -10,7 +10,39 @@ Release 1.12.5 (2023-10-??) =========================== - Merge changes from 1.11.5 to 1.11.8. -- TODO +- GH #4215 Remove SocketReactor dependency on Poco::Thread for sleeping +- GH #4197 ODBC::Binder UUID new/free mismatch +- GH #4194 PollSet filters out some events +- GH #4189 Use after free warnings +- GH #4180 receiveResponse() may not return response body stream +- GH #4177 Upgrade bundled pcre2 to 10.42 +- GH #4147 missing \r\n when setting trailer header in chunked response +- GH #4134 Initialisation of _socketIndex in SSLManager (OpenSSL) +- GH #3867 Add options to disable STDIO in child process +- GH #3832 pthread_getname_np' was not declared in this scope +- GH #3786 FileChannel::setRotation overflow +- GH #2776 Shutdown TLS1.3 connection +- GH #4176 PCRE2 10.40 version has security vulnerabilities(CVE-2022-41409), when is the plan to fix it third-party +- GH #4150 Use Poco format instead of sprintf in Util +- GH #4116 Logging should evaluate only if the logging level is active +- GH #4071 PageCompiler: add referrerPolicy to page directive feature +- GH #4057 ODBC: SQL Anywhere Support +- GH #4031 Classes with virtual functions missing virtual destructors (compilation issues) +- GH #4023 CPPParser: Losing data if parameter std::function is used +- GH #4014 wrong string offset in HTTPCredentials::isNTLMCredentials +- GH #4005 On UNIX platform, Poco::Path::getExtension() returns name of the hidden file if no extension is present +- GH #3986 Fix dead lock on Timer destructor +- GH #3968 Poco::Net::SocketConnector constructor should take SocketAddress by const reference +- GH #3935 The extractor in postgresql drops milliseconds +- GH #3926 CppParser throws exception when return value is specified to be in global namespace +- GH #3921 Deadlock in Timer when one sync and one async cancel requests are issued +- GH #3918 Static FastMutex fails to lock when issued from another thread on linux +- GH #3880 NetSSL_OpenSSL: Support session resumption with TLSv1.3 +- GH #3876 Replace sprintf with snprintf in Environment and NumberFormatter to avoid deprecation warnings +- GH #3859 zlib headers not updated +- GH #3806 HTTPClientSession::receiveResponse() gives NoMessage instead of Timeout exception for SSL connection on Windows when using OpenSSL 3.0.x +- GH #3723 DateTimeFormatter creates invalid ISO8601 string +- GH #3147 Reading from request stream hangs when "Transfer-Encoding: chunked" is used Release 1.12.4 (2022-10-31) From 68400efe83add45b31b76d26f86be2b6d7c5aad4 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Tue, 24 Oct 2023 00:13:01 +0200 Subject: [PATCH 139/395] update CHANGELOG date --- CHANGELOG | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 278b70c37..8ee166378 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -6,7 +6,7 @@ Release 1.13.0 (2023-10-XX) - TODO -Release 1.12.5 (2023-10-??) +Release 1.12.5 (2023-10-25) =========================== - Merge changes from 1.11.5 to 1.11.8. From 076958eb1a84e940e972a95e9ded92da21521614 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Tue, 24 Oct 2023 20:31:13 +0200 Subject: [PATCH 140/395] 1.12.5 ReleaseNotes --- CHANGELOG | 17 ++++++++++++ doc/99100-ReleaseNotes.page | 55 ++++++++++++++++++++++++++++++++++++- 2 files changed, 71 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 8ee166378..3d7541504 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -43,6 +43,23 @@ Release 1.12.5 (2023-10-25) - GH #3806 HTTPClientSession::receiveResponse() gives NoMessage instead of Timeout exception for SSL connection on Windows when using OpenSSL 3.0.x - GH #3723 DateTimeFormatter creates invalid ISO8601 string - GH #3147 Reading from request stream hangs when "Transfer-Encoding: chunked" is used +- GH #4218 Upgrade double-conversion to 3.3.0 +- PR #4210 Fix pthread_setname not declared +- PR #4072 optimize checkUpperLimit and checkLowerLimit in VarHolder.h enhancement +- PR #4050 rename arc -> poco_arc +- PR #4038 Fixed Poco::format specifier for error code bug platform_specific +- PR #4011 fix #4005 Poco::Path::getExtension() +- PR #3999 Fix hang in destructor +- PR #3992 Fix thread counter leak +- PR #3987 Fix dead lock on Timer destructor +- PR #3971 Fix error handling with OpenSSL 3.0 in SecureSocketImpl.cpp (fixes #3806) +- PR #3943 Fix build for QNX platform_specific +- PR #3942 Fix data race when create POSIX thread +- PR #3912 Fixed compile error for OpenSSL 1.0 systems (#3739) +- PR #3883 Added system_error header to SockerProactor for std::error_code +- PR #3855 Fix epollfd validity checks when compiling with wepoll +- PR #3809 improve Windows OpenSSL 3.0.x error handling #3806 +- PR #3769 Fixed converting/correcting pre-gregorian dates (#3723) Release 1.12.4 (2022-10-31) diff --git a/doc/99100-ReleaseNotes.page b/doc/99100-ReleaseNotes.page index 940b938ef..c1835cad2 100644 --- a/doc/99100-ReleaseNotes.page +++ b/doc/99100-ReleaseNotes.page @@ -13,7 +13,60 @@ AAAIntroduction !!Summary of Changes - Merge changes from 1.11.5 to 1.11.8. - - TODO + - Upgrade double-conversion to 3.3.0 + - Upgrade bundled pcre2 to 10.42 + +- GH #4215 Remove SocketReactor dependency on Poco::Thread for sleeping +- GH #4197 ODBC::Binder UUID new/free mismatch +- GH #4194 PollSet filters out some events +- GH #4189 Use after free warnings +- GH #4180 receiveResponse() may not return response body stream +- GH #4177 Upgrade bundled pcre2 to 10.42 +- GH #4147 missing \r\n when setting trailer header in chunked response +- GH #4134 Initialisation of _socketIndex in SSLManager (OpenSSL) +- GH #3867 Add options to disable STDIO in child process +- GH #3832 pthread_getname_np' was not declared in this scope +- GH #3786 FileChannel::setRotation overflow +- GH #2776 Shutdown TLS1.3 connection +- GH #4176 PCRE2 10.40 version has security vulnerabilities(CVE-2022-41409), when is the plan to fix it third-party +- GH #4150 Use Poco format instead of sprintf in Util +- GH #4116 Logging should evaluate only if the logging level is active +- GH #4071 PageCompiler: add referrerPolicy to page directive feature +- GH #4057 ODBC: SQL Anywhere Support +- GH #4031 Classes with virtual functions missing virtual destructors (compilation issues) +- GH #4023 CPPParser: Losing data if parameter std::function is used +- GH #4014 wrong string offset in HTTPCredentials::isNTLMCredentials +- GH #4005 On UNIX platform, Poco::Path::getExtension() returns name of the hidden file if no extension is present +- GH #3986 Fix dead lock on Timer destructor +- GH #3968 Poco::Net::SocketConnector constructor should take SocketAddress by const reference +- GH #3935 The extractor in postgresql drops milliseconds +- GH #3926 CppParser throws exception when return value is specified to be in global namespace +- GH #3921 Deadlock in Timer when one sync and one async cancel requests are issued +- GH #3918 Static FastMutex fails to lock when issued from another thread on linux +- GH #3880 NetSSL_OpenSSL: Support session resumption with TLSv1.3 +- GH #3876 Replace sprintf with snprintf in Environment and NumberFormatter to avoid deprecation warnings +- GH #3859 zlib headers not updated +- GH #3806 HTTPClientSession::receiveResponse() gives NoMessage instead of Timeout exception for SSL connection on Windows when using OpenSSL 3.0.x +- GH #3723 DateTimeFormatter creates invalid ISO8601 string +- GH #3147 Reading from request stream hangs when "Transfer-Encoding: chunked" is used +- GH #4218 Upgrade double-conversion to 3.3.0 +- PR #4210 Fix pthread_setname not declared +- PR #4072 optimize checkUpperLimit and checkLowerLimit in VarHolder.h enhancement +- PR #4050 rename arc -> poco_arc +- PR #4038 Fixed Poco::format specifier for error code bug platform_specific +- PR #4011 fix #4005 Poco::Path::getExtension() +- PR #3999 Fix hang in destructor +- PR #3992 Fix thread counter leak +- PR #3987 Fix dead lock on Timer destructor +- PR #3971 Fix error handling with OpenSSL 3.0 in SecureSocketImpl.cpp (fixes #3806) +- PR #3943 Fix build for QNX platform_specific +- PR #3942 Fix data race when create POSIX thread +- PR #3912 Fixed compile error for OpenSSL 1.0 systems (#3739) +- PR #3883 Added system_error header to SockerProactor for std::error_code +- PR #3855 Fix epollfd validity checks when compiling with wepoll +- PR #3809 improve Windows OpenSSL 3.0.x error handling #3806 +- PR #3769 Fixed converting/correcting pre-gregorian dates (#3723) + !!!Release 1.12.4 From 5e01472359361a205eb3545c3582dd192b4d0e0e Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Tue, 24 Oct 2023 20:03:52 +0200 Subject: [PATCH 141/395] upgrade: double-conversion to 3.3.0 #4218 --- Foundation/src/bignum.cc | 15 ++++++++------- Foundation/src/double-to-string.cc | 13 ++++++++++--- Foundation/src/double-to-string.h | 27 ++++++++++++++++++++++++++- Foundation/src/string-to-double.cc | 4 ++-- Foundation/src/utils.h | 17 ++++++++++++----- 5 files changed, 58 insertions(+), 18 deletions(-) diff --git a/Foundation/src/bignum.cc b/Foundation/src/bignum.cc index d858c16ca..5c74d70d3 100644 --- a/Foundation/src/bignum.cc +++ b/Foundation/src/bignum.cc @@ -136,7 +136,7 @@ void Bignum::AssignHexString(Vector value) { DOUBLE_CONVERSION_ASSERT(sizeof(uint64_t) * 8 >= kBigitSize + 4); // TODO: static_assert // Accumulates converted hex digits until at least kBigitSize bits. // Works with non-factor-of-four kBigitSizes. - uint64_t tmp = 0; // Accumulates converted hex digits until at least + uint64_t tmp = 0; for (int cnt = 0; !value.is_empty(); value.pop_back()) { tmp |= (HexCharValue(value.last()) << cnt); if ((cnt += 4) >= kBigitSize) { @@ -146,7 +146,8 @@ void Bignum::AssignHexString(Vector value) { } } if (tmp > 0) { - RawBigit(used_bigits_++) = tmp; + DOUBLE_CONVERSION_ASSERT(tmp <= kBigitMask); + RawBigit(used_bigits_++) = static_cast(tmp & kBigitMask); } Clamp(); } @@ -203,7 +204,7 @@ void Bignum::AddBignum(const Bignum& other) { carry = sum >> kBigitSize; ++bigit_pos; } - used_bigits_ = (std::max)(bigit_pos, static_cast(used_bigits_)); + used_bigits_ = static_cast(std::max(bigit_pos, static_cast(used_bigits_))); DOUBLE_CONVERSION_ASSERT(IsClamped()); } @@ -239,7 +240,7 @@ void Bignum::ShiftLeft(const int shift_amount) { if (used_bigits_ == 0) { return; } - exponent_ += (shift_amount / kBigitSize); + exponent_ += static_cast(shift_amount / kBigitSize); const int local_shift = shift_amount % kBigitSize; EnsureCapacity(used_bigits_ + 1); BigitsShiftLeft(local_shift); @@ -417,7 +418,7 @@ void Bignum::Square() { DOUBLE_CONVERSION_ASSERT(accumulator == 0); // Don't forget to update the used_digits and the exponent. - used_bigits_ = product_length; + used_bigits_ = static_cast(product_length); exponent_ *= 2; Clamp(); } @@ -738,8 +739,8 @@ void Bignum::Align(const Bignum& other) { for (int i = 0; i < zero_bigits; ++i) { RawBigit(i) = 0; } - used_bigits_ += zero_bigits; - exponent_ -= zero_bigits; + used_bigits_ += static_cast(zero_bigits); + exponent_ -= static_cast(zero_bigits); DOUBLE_CONVERSION_ASSERT(used_bigits_ >= 0); DOUBLE_CONVERSION_ASSERT(exponent_ >= 0); diff --git a/Foundation/src/double-to-string.cc b/Foundation/src/double-to-string.cc index 9255bce17..215eaa96d 100644 --- a/Foundation/src/double-to-string.cc +++ b/Foundation/src/double-to-string.cc @@ -56,7 +56,7 @@ bool DoubleToStringConverter::HandleSpecialValues( StringBuilder* result_builder) const { Double double_inspect(value); if (double_inspect.IsInfinite()) { - if (infinity_symbol_ == NULL) return false; + if (infinity_symbol_ == DOUBLE_CONVERSION_NULLPTR) return false; if (value < 0) { result_builder->AddCharacter('-'); } @@ -64,7 +64,7 @@ bool DoubleToStringConverter::HandleSpecialValues( return true; } if (double_inspect.IsNan()) { - if (nan_symbol_ == NULL) return false; + if (nan_symbol_ == DOUBLE_CONVERSION_NULLPTR) return false; result_builder->AddString(nan_symbol_); return true; } @@ -79,7 +79,14 @@ void DoubleToStringConverter::CreateExponentialRepresentation( StringBuilder* result_builder) const { DOUBLE_CONVERSION_ASSERT(length != 0); result_builder->AddCharacter(decimal_digits[0]); - if (length != 1) { + if (length == 1) { + if ((flags_ & EMIT_TRAILING_DECIMAL_POINT_IN_EXPONENTIAL) != 0) { + result_builder->AddCharacter('.'); + if ((flags_ & EMIT_TRAILING_ZERO_AFTER_POINT_IN_EXPONENTIAL) != 0) { + result_builder->AddCharacter('0'); + } + } + } else { result_builder->AddCharacter('.'); result_builder->AddSubstring(&decimal_digits[1], length-1); } diff --git a/Foundation/src/double-to-string.h b/Foundation/src/double-to-string.h index 04a4ac384..abe60e881 100644 --- a/Foundation/src/double-to-string.h +++ b/Foundation/src/double-to-string.h @@ -78,7 +78,9 @@ class DoubleToStringConverter { EMIT_TRAILING_DECIMAL_POINT = 2, EMIT_TRAILING_ZERO_AFTER_POINT = 4, UNIQUE_ZERO = 8, - NO_TRAILING_ZERO = 16 + NO_TRAILING_ZERO = 16, + EMIT_TRAILING_DECIMAL_POINT_IN_EXPONENTIAL = 32, + EMIT_TRAILING_ZERO_AFTER_POINT_IN_EXPONENTIAL = 64 }; // Flags should be a bit-or combination of the possible Flags-enum. @@ -97,6 +99,13 @@ class DoubleToStringConverter { // of the result in precision mode. Matches printf's %g. // When EMIT_TRAILING_ZERO_AFTER_POINT is also given, one trailing zero is // preserved. + // - EMIT_TRAILING_DECIMAL_POINT_IN_EXPONENTIAL: when the input number has + // exactly one significant digit and is converted into exponent form then a + // trailing decimal point is appended to the significand in shortest mode + // or in precision mode with one requested digit. + // - EMIT_TRAILING_ZERO_AFTER_POINT_IN_EXPONENTIAL: in addition to a trailing + // decimal point emits a trailing '0'-character. This flag requires the + // EMIT_TRAILING_DECIMAL_POINT_IN_EXPONENTIAL flag. // // Infinity symbol and nan_symbol provide the string representation for these // special values. If the string is NULL and the special value is encountered @@ -132,6 +141,22 @@ class DoubleToStringConverter { // ToPrecision(230.0, 2) -> "230." with EMIT_TRAILING_DECIMAL_POINT. // ToPrecision(230.0, 2) -> "2.3e2" with EMIT_TRAILING_ZERO_AFTER_POINT. // + // When converting numbers with exactly one significant digit to exponent + // form in shortest mode or in precision mode with one requested digit, the + // EMIT_TRAILING_DECIMAL_POINT and EMIT_TRAILING_ZERO_AFTER_POINT flags have + // no effect. Use the EMIT_TRAILING_DECIMAL_POINT_IN_EXPONENTIAL flag to + // append a decimal point in this case and the + // EMIT_TRAILING_ZERO_AFTER_POINT_IN_EXPONENTIAL flag to also append a + // '0'-character in this case. + // Example with decimal_in_shortest_low = 0: + // ToShortest(0.0009) -> "9e-4" + // with EMIT_TRAILING_DECIMAL_POINT_IN_EXPONENTIAL deactivated. + // ToShortest(0.0009) -> "9.e-4" + // with EMIT_TRAILING_DECIMAL_POINT_IN_EXPONENTIAL activated. + // ToShortest(0.0009) -> "9.0e-4" + // with EMIT_TRAILING_DECIMAL_POINT_IN_EXPONENTIAL activated and + // EMIT_TRAILING_ZERO_AFTER_POINT_IN_EXPONENTIAL activated. + // // The min_exponent_width is used for exponential representations. // The converter adds leading '0's to the exponent until the exponent // is at least min_exponent_width digits long. diff --git a/Foundation/src/string-to-double.cc b/Foundation/src/string-to-double.cc index fe633aace..972956ca6 100644 --- a/Foundation/src/string-to-double.cc +++ b/Foundation/src/string-to-double.cc @@ -474,7 +474,7 @@ double StringToDoubleConverter::StringToIeee( current = next_non_space; } - if (infinity_symbol_ != NULL) { + if (infinity_symbol_ != DOUBLE_CONVERSION_NULLPTR) { if (ConsumeFirstCharacter(*current, infinity_symbol_, allow_case_insensitivity)) { if (!ConsumeSubString(¤t, end, infinity_symbol_, allow_case_insensitivity)) { return junk_string_value_; @@ -492,7 +492,7 @@ double StringToDoubleConverter::StringToIeee( } } - if (nan_symbol_ != NULL) { + if (nan_symbol_ != DOUBLE_CONVERSION_NULLPTR) { if (ConsumeFirstCharacter(*current, nan_symbol_, allow_case_insensitivity)) { if (!ConsumeSubString(¤t, end, nan_symbol_, allow_case_insensitivity)) { return junk_string_value_; diff --git a/Foundation/src/utils.h b/Foundation/src/utils.h index c9b6c00ed..4f4dd71bf 100644 --- a/Foundation/src/utils.h +++ b/Foundation/src/utils.h @@ -34,6 +34,13 @@ #include #include +// For pre-C++11 compatibility +#if __cplusplus >= 201103L +#define DOUBLE_CONVERSION_NULLPTR nullptr +#else +#define DOUBLE_CONVERSION_NULLPTR NULL +#endif + #include #ifndef DOUBLE_CONVERSION_ASSERT #define DOUBLE_CONVERSION_ASSERT(condition) \ @@ -133,14 +140,14 @@ int main(int argc, char** argv) { defined(__hppa__) || defined(__ia64__) || \ defined(__mips__) || \ defined(__loongarch__) || \ - defined(nios2) || defined(__nios2) || defined(__nios2__) || defined(__ghs) || \ + defined(__nios2__) || defined(__ghs) || \ defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__) || \ defined(_POWER) || defined(_ARCH_PPC) || defined(_ARCH_PPC64) || \ defined(__sparc__) || defined(__sparc) || defined(__s390__) || \ defined(__SH4__) || defined(__alpha__) || \ defined(_MIPS_ARCH_MIPS32R2) || defined(__ARMEB__) ||\ defined(__AARCH64EL__) || defined(__aarch64__) || defined(__AARCH64EB__) || \ - (defined(__riscv) && defined(__riscv_float_abi_double)) || defined(__e2k__) || \ + defined(__riscv) || defined(__e2k__) || \ defined(__or1k__) || defined(__arc__) || defined(__ARC64__) || \ defined(__microblaze__) || defined(__XTENSA__) || \ defined(__EMSCRIPTEN__) || defined(__wasm32__) @@ -241,9 +248,9 @@ inline int StrLength(const char* string) { template class Vector { public: - Vector() : start_(NULL), length_(0) {} + Vector() : start_(DOUBLE_CONVERSION_NULLPTR), length_(0) {} Vector(T* data, int len) : start_(data), length_(len) { - DOUBLE_CONVERSION_ASSERT(len == 0 || (len > 0 && data != NULL)); + DOUBLE_CONVERSION_ASSERT(len == 0 || (len > 0 && data != DOUBLE_CONVERSION_NULLPTR)); } // Returns a vector using the same backing storage as this one, @@ -326,7 +333,7 @@ class StringBuilder { void AddSubstring(const char* s, int n) { DOUBLE_CONVERSION_ASSERT(!is_finalized() && position_ + n < buffer_.length()); DOUBLE_CONVERSION_ASSERT(static_cast(n) <= strlen(s)); - memmove(&buffer_[position_], s, n); + memmove(&buffer_[position_], s, static_cast(n)); position_ += n; } From efd0878664d9969ff5fe85957a350b0e7e404c96 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Tue, 24 Oct 2023 19:52:35 +0200 Subject: [PATCH 142/395] fix(build): Util samples Makefile --- Makefile | 2 +- Util/samples/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 217637409..c86f3a531 100644 --- a/Makefile +++ b/Makefile @@ -196,7 +196,7 @@ Util-samples: Util-libexec $(MAKE) -C $(POCO_BASE)/Util/samples Util-clean: - $(MAKE) -C $(POCO_BASE)/Util clean + $(MAKE) -C $(POCO_BASE)/Util clean $(MAKE) -C $(POCO_BASE)/Util/testsuite clean $(MAKE) -C $(POCO_BASE)/Util/samples clean diff --git a/Util/samples/Makefile b/Util/samples/Makefile index 0a147cb7d..8deff69ba 100644 --- a/Util/samples/Makefile +++ b/Util/samples/Makefile @@ -5,7 +5,7 @@ # .PHONY: projects -clea distclean all: projects +clean distclean all: projects projects: $(MAKE) -C SampleApp $(MAKECMDGOALS) $(MAKE) -C SampleServer $(MAKECMDGOALS) From 0d696eaf57026e6f70998265e36ad97dfaf216d7 Mon Sep 17 00:00:00 2001 From: cunj123 Date: Tue, 24 Oct 2023 14:27:25 +0200 Subject: [PATCH 143/395] fix: make POSIX event thread safe --- Foundation/include/Poco/Event_POSIX.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Foundation/include/Poco/Event_POSIX.h b/Foundation/include/Poco/Event_POSIX.h index a6368bd25..0852563c7 100644 --- a/Foundation/include/Poco/Event_POSIX.h +++ b/Foundation/include/Poco/Event_POSIX.h @@ -39,8 +39,8 @@ protected: void resetImpl(); private: - bool _auto; - bool _state; + std::atomic _auto; + std::atomic _state; pthread_mutex_t _mutex; pthread_cond_t _cond; }; From b9e5446a6e4c9d674d4347bfb81e09669b289255 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Tue, 24 Oct 2023 21:03:31 +0200 Subject: [PATCH 144/395] add last fix to CHANGLEOG --- CHANGELOG | 2 +- doc/99100-ReleaseNotes.page | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 3d7541504..2ca943c7f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -9,7 +9,7 @@ Release 1.13.0 (2023-10-XX) Release 1.12.5 (2023-10-25) =========================== -- Merge changes from 1.11.5 to 1.11.8. +- GH #4219 Make POSIX event thread safe - GH #4215 Remove SocketReactor dependency on Poco::Thread for sleeping - GH #4197 ODBC::Binder UUID new/free mismatch - GH #4194 PollSet filters out some events diff --git a/doc/99100-ReleaseNotes.page b/doc/99100-ReleaseNotes.page index c1835cad2..b18eedbba 100644 --- a/doc/99100-ReleaseNotes.page +++ b/doc/99100-ReleaseNotes.page @@ -16,6 +16,7 @@ AAAIntroduction - Upgrade double-conversion to 3.3.0 - Upgrade bundled pcre2 to 10.42 +- GH #4219 Make POSIX event thread safe - GH #4215 Remove SocketReactor dependency on Poco::Thread for sleeping - GH #4197 ODBC::Binder UUID new/free mismatch - GH #4194 PollSet filters out some events From e47b92d641d3efffe9a81cf8f4a940f7267a015b Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Wed, 25 Oct 2023 13:19:01 +0200 Subject: [PATCH 145/395] fix(PollSetTest): avoid looping #1320 --- Net/testsuite/src/PollSetTest.cpp | 38 ++----------------------------- 1 file changed, 2 insertions(+), 36 deletions(-) diff --git a/Net/testsuite/src/PollSetTest.cpp b/Net/testsuite/src/PollSetTest.cpp index e3c6b267c..5ac9d070e 100644 --- a/Net/testsuite/src/PollSetTest.cpp +++ b/Net/testsuite/src/PollSetTest.cpp @@ -343,28 +343,7 @@ void PollSetTest::testPollNoServer() ss1.connectNB(SocketAddress("127.0.0.1", 0xFEFE)); ss2.connectNB(SocketAddress("127.0.0.1", 0xFEFF)); - PollSet::SocketModeMap sm; - int signalledErrors = 0; - Stopwatch sw; sw.start(); - do - { - sm = ps.poll(Timespan(1000000)); - for (auto s : sm) - { - assertTrue(0 != (s.second & PollSet::POLL_ERROR)); - ++signalledErrors; - } - - sm.clear(); - int secs = sw.elapsedSeconds(); - if (secs > 10) - { - fail(Poco::format("testPollNoServer() timed out after %ds, " - "sockets signalled=%d (expected 2)", - secs, signalledErrors), __LINE__); - } - } while (signalledErrors < 2); - assertEqual(2, signalledErrors); + assertEqual(2, ps.poll(Timespan(1000000)).size()); } @@ -422,21 +401,8 @@ void PollSetTest::testPollClosedServer() } } - int signalled = 0; - sw.restart(); - do - { - signalled += static_cast(ps.poll(Timespan(1000000)).size()); - int secs = sw.elapsedSeconds(); - if (secs > 10) - { - fail(Poco::format("testPollClosedServer() timed out waiting on " - "signalled sockets after %ds, sockets signalled=%d (expected 2)", - secs, signalled), __LINE__); - } - } while (signalled < 2); + assertEqual(2, ps.poll(Timespan(1000000)).size()); - assertTrue(signalled == 2); // socket closed or error assertTrue(0 >= ss1.receiveBytes(0, 0)); assertTrue(0 >= ss2.receiveBytes(0, 0)); From bd06526ee07e5b09165b141fc7ec0b5b705e7cee Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Wed, 25 Oct 2023 22:40:41 +0200 Subject: [PATCH 146/395] fix(Data::Session): Set autoCommit to false in Session #4167 #4143 --- Data/ODBC/testsuite/src/SQLExecutor.cpp | 82 +++++++------------- Data/include/Poco/Data/AbstractSessionImpl.h | 12 +-- Data/include/Poco/Data/PooledSessionImpl.h | 8 +- Data/include/Poco/Data/Session.h | 58 ++++++++------ Data/include/Poco/Data/SessionImpl.h | 8 +- Data/include/Poco/Data/SessionPool.h | 4 +- Data/include/Poco/Data/Transaction.h | 4 - Data/src/PooledSessionImpl.cpp | 8 +- Data/src/Session.cpp | 48 ++++++++++-- Data/src/SessionPool.cpp | 4 +- Data/src/Transaction.cpp | 10 --- 11 files changed, 126 insertions(+), 120 deletions(-) diff --git a/Data/ODBC/testsuite/src/SQLExecutor.cpp b/Data/ODBC/testsuite/src/SQLExecutor.cpp index e8dc060d1..b68d03f72 100644 --- a/Data/ODBC/testsuite/src/SQLExecutor.cpp +++ b/Data/ODBC/testsuite/src/SQLExecutor.cpp @@ -1275,14 +1275,10 @@ void SQLExecutor::sessionPool(const std::string& connectString, int minSessions, { SessionPool pool("ODBC", connectString, 1, 4, 2, 10); - pool.setFeature("f1", true); - assertTrue (pool.getFeature("f1")); - try { pool.getFeature("g1"); fail ("must fail"); } + try { pool.getFeature("g1"); fail ("getting an unsuported feature must fail"); } catch ( Poco::NotFoundException& ) { } - pool.setProperty("p1", 1); - assertTrue (1 == Poco::AnyCast(pool.getProperty("p1"))); - try { pool.getProperty("r1"); fail ("must fail"); } + try { pool.getProperty("r1"); fail ("getting an unsuported property must fail"); } catch ( Poco::NotFoundException& ) { } assertTrue (pool.capacity() == 4); @@ -1294,14 +1290,15 @@ void SQLExecutor::sessionPool(const std::string& connectString, int minSessions, assertTrue (pool.allocated() == pool.used() + pool.idle()); Session s1(pool.get()); - assertTrue (s1.getFeature("f1")); - assertTrue (1 == Poco::AnyCast(s1.getProperty("p1"))); + try { pool.setFeature("f1", true); fail ("setting an unsuported feature must fail"); } + catch (Poco::InvalidAccessException&) { } + catch (Poco::NotImplementedException&) { } + catch (Poco::Data::NotSupportedException&) { } - try { pool.setFeature("f1", true); fail ("must fail"); } - catch ( Poco::InvalidAccessException& ) { } - - try { pool.setProperty("p1", 1); fail ("must fail"); } - catch ( Poco::InvalidAccessException& ) { } + try { pool.setProperty("p1", 1); fail ("setting an unsuported property must fail"); } + catch (Poco::InvalidAccessException&) { } + catch (Poco::NotImplementedException&) { } + catch (Poco::Data::NotSupportedException&) { } assertTrue (pool.capacity() == 4); assertTrue (pool.allocated() == 1); @@ -1311,10 +1308,7 @@ void SQLExecutor::sessionPool(const std::string& connectString, int minSessions, assertTrue (pool.dead() == 0); assertTrue (pool.allocated() == pool.used() + pool.idle()); - Session s2(pool.get("f1", false)); - assertTrue (!s2.getFeature("f1")); - assertTrue (1 == Poco::AnyCast(s2.getProperty("p1"))); - + Session s2(pool.get()); assertTrue (pool.capacity() == 4); assertTrue (pool.allocated() == 2); assertTrue (pool.idle() == 0); @@ -1323,32 +1317,7 @@ void SQLExecutor::sessionPool(const std::string& connectString, int minSessions, assertTrue (pool.dead() == 0); assertTrue (pool.allocated() == pool.used() + pool.idle()); - { - Session s3(pool.get("p1", 2)); - assertTrue (s3.getFeature("f1")); - assertTrue (2 == Poco::AnyCast(s3.getProperty("p1"))); - - assertTrue (pool.capacity() == 4); - assertTrue (pool.allocated() == 3); - assertTrue (pool.idle() == 0); - assertTrue (pool.connTimeout() == 10); - assertTrue (pool.available() == 1); - assertTrue (pool.dead() == 0); - assertTrue (pool.allocated() == pool.used() + pool.idle()); - } - - assertTrue (pool.capacity() == 4); - assertTrue (pool.allocated() == 3); - assertTrue (pool.idle() == 1); - assertTrue (pool.connTimeout() == 10); - assertTrue (pool.available() == 2); - assertTrue (pool.dead() == 0); - assertTrue (pool.allocated() == pool.used() + pool.idle()); - Session s4(pool.get()); - assertTrue (s4.getFeature("f1")); - assertTrue (1 == Poco::AnyCast(s4.getProperty("p1"))); - assertTrue (pool.capacity() == 4); assertTrue (pool.allocated() == 3); assertTrue (pool.idle() == 0); @@ -1358,7 +1327,6 @@ void SQLExecutor::sessionPool(const std::string& connectString, int minSessions, assertTrue (pool.allocated() == pool.used() + pool.idle()); Session s5(pool.get()); - assertTrue (pool.capacity() == 4); assertTrue (pool.allocated() == 4); assertTrue (pool.idle() == 0); @@ -1419,13 +1387,10 @@ void SQLExecutor::sessionPool(const std::string& connectString, int minSessions, assertTrue (pool.dead() == 0); assertTrue (pool.allocated() == pool.used() + pool.idle()); - s6.setFeature("connected", false); - assertTrue (pool.dead() == 1); - s6.close(); assertTrue (pool.capacity() == 4); - assertTrue (pool.allocated() == 2); - assertTrue (pool.idle() == 0); + assertTrue (pool.allocated() == 3); + assertTrue (pool.idle() == 1); assertTrue (pool.connTimeout() == 10); assertTrue (pool.available() == 2); assertTrue (pool.dead() == 0); @@ -1447,7 +1412,9 @@ void SQLExecutor::sessionPool(const std::string& connectString, int minSessions, assertTrue (pool.connTimeout() == 10); assertTrue (pool.available() == 0); assertTrue (pool.dead() == 0); - assertTrue (pool.allocated() == pool.used() + pool.idle()); + assertTrue (pool.allocated() == 0); + assertTrue (pool.used() == 0); + assertTrue (pool.idle() == 0); } } @@ -4214,9 +4181,8 @@ void SQLExecutor::sessionTransaction(const std::string& connect) } Session local("odbc", connect); - local.setFeature("autoCommit", true); - std::string funct = "transaction()"; + std::string funct = "sessionTransaction()"; std::vector lastNames; std::vector firstNames; std::vector addresses; @@ -4240,10 +4206,13 @@ void SQLExecutor::sessionTransaction(const std::string& connect) session().setFeature("autoCommit", false); assertTrue (!session().isTransaction()); + auto ti = session().getTransactionIsolation(); + + // these are just calls to check the transactional capabilities of the session + // they will print diagnostics to stderr if a transaction isolation level is not supported setTransactionIsolation(session(), Session::TRANSACTION_READ_UNCOMMITTED); setTransactionIsolation(session(), Session::TRANSACTION_REPEATABLE_READ); setTransactionIsolation(session(), Session::TRANSACTION_SERIALIZABLE); - setTransactionIsolation(session(), Session::TRANSACTION_READ_COMMITTED); session().begin(); @@ -4291,7 +4260,9 @@ void SQLExecutor::sessionTransaction(const std::string& connect) catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } assertTrue (2 == count); + // restore the original transaction state session().setFeature("autoCommit", autoCommit); + setTransactionIsolation(session(), ti); } @@ -4306,6 +4277,9 @@ void SQLExecutor::transaction(const std::string& connect) Session local("odbc", connect); local.setFeature("autoCommit", true); + bool autoCommit = session().getFeature("autoCommit"); + auto ti = session().getTransactionIsolation(); + setTransactionIsolation(session(), Session::TRANSACTION_READ_COMMITTED); if (local.hasTransactionIsolation(Session::TRANSACTION_READ_UNCOMMITTED)) setTransactionIsolation(local, Session::TRANSACTION_READ_UNCOMMITTED); @@ -4329,8 +4303,6 @@ void SQLExecutor::transaction(const std::string& connect) int count = 0, locCount = 0; std::string result; - bool autoCommit = session().getFeature("autoCommit"); - session().setFeature("autoCommit", true); assertTrue (!session().isTransaction()); session().setFeature("autoCommit", false); @@ -4454,7 +4426,9 @@ void SQLExecutor::transaction(const std::string& connect) catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } assertTrue (2 == count); + // restore the original transaction state session().setFeature("autoCommit", autoCommit); + setTransactionIsolation(session(), ti); } diff --git a/Data/include/Poco/Data/AbstractSessionImpl.h b/Data/include/Poco/Data/AbstractSessionImpl.h index 78c65e119..8fa05d70a 100644 --- a/Data/include/Poco/Data/AbstractSessionImpl.h +++ b/Data/include/Poco/Data/AbstractSessionImpl.h @@ -115,7 +115,7 @@ public: { } - bool hasFeature(const std::string& name) + bool hasFeature(const std::string& name) const /// Looks a feature up in the features map /// and returns true if there is one. { @@ -140,7 +140,7 @@ public: else throw NotSupportedException(name); } - bool getFeature(const std::string& name) + bool getFeature(const std::string& name) const /// Looks a feature up in the features map /// and calls the feature's getter, if there is one. { @@ -148,14 +148,14 @@ public: if (it != _features.end()) { if (it->second.getter) - return (static_cast(this)->*it->second.getter)(name); + return (static_cast(this)->*it->second.getter)(name); else throw NotImplementedException("get", name); } else throw NotSupportedException(name); } - bool hasProperty(const std::string& name) + bool hasProperty(const std::string& name) const /// Looks a property up in the properties map /// and returns true if there is one. { @@ -180,7 +180,7 @@ public: else throw NotSupportedException(name); } - Poco::Any getProperty(const std::string& name) + Poco::Any getProperty(const std::string& name) const /// Looks a property up in the properties map /// and calls the property's getter, if there is one. { @@ -188,7 +188,7 @@ public: if (it != _properties.end()) { if (it->second.getter) - return (static_cast(this)->*it->second.getter)(name); + return (static_cast(this)->*it->second.getter)(name); else throw NotImplementedException("set", name); } diff --git a/Data/include/Poco/Data/PooledSessionImpl.h b/Data/include/Poco/Data/PooledSessionImpl.h index 0152a2df0..36afae8a2 100644 --- a/Data/include/Poco/Data/PooledSessionImpl.h +++ b/Data/include/Poco/Data/PooledSessionImpl.h @@ -62,12 +62,12 @@ public: bool hasTransactionIsolation(Poco::UInt32) const; bool isTransactionIsolation(Poco::UInt32) const; const std::string& connectorName() const; - bool hasFeature(const std::string& name); + bool hasFeature(const std::string& name) const; void setFeature(const std::string& name, bool state); - bool getFeature(const std::string& name); - bool hasProperty(const std::string& name); + bool getFeature(const std::string& name) const; + bool hasProperty(const std::string& name) const; void setProperty(const std::string& name, const Poco::Any& value); - Poco::Any getProperty(const std::string& name); + Poco::Any getProperty(const std::string& name) const; protected: SessionImpl* access() const; diff --git a/Data/include/Poco/Data/Session.h b/Data/include/Poco/Data/Session.h index 1547fb53a..a5747b884 100644 --- a/Data/include/Poco/Data/Session.h +++ b/Data/include/Poco/Data/Session.h @@ -151,6 +151,12 @@ class Data_API Session /// If the formatting will occur and the percent sign is part of the query itself, it can be passed to the query by entering it twice (%%). /// However, if no formatting is used, one percent sign is sufficient as the string will be passed unaltered. /// For complete list of supported data types with their respective specifications, see the documentation for format in Foundation. + /// + /// Transactions are supported via the begin(), commit() and rollback() methods. + /// If the session is in autocommit mode, begin() will temporarily disable autocommit mode for the duration of the transaction. + /// Calls to either commit() or rollback() will re-enable it. + /// Poco::Data::Transaction, a convenient session wrapper class, automates this process and provides RAII-based transactional behavior. + /// For more information, see Transation class documentation. { public: static const std::size_t LOGIN_TIMEOUT_DEFAULT = SessionImpl::LOGIN_TIMEOUT_DEFAULT; @@ -160,7 +166,7 @@ public: static const Poco::UInt32 TRANSACTION_SERIALIZABLE = 0x00000008L; Session(Poco::AutoPtr ptrImpl); - /// Creates the Session. + /// Creates the Session from SessionImpl. Session(const std::string& connector, const std::string& connectionString, @@ -221,6 +227,13 @@ public: bool isGood(); /// Returns true iff the session is good and can be used, false otherwise. + bool isAutocommit() const; + /// Returns true iff the session is in autocommit mode, false otherwise. + /// If the session does not support autocommit, it is assumed not to + /// be in auto commit mode. + /// This function looks for the "autoCommit" feature and returns its value. + /// It is recommended for all back-end implementations to support this feature. + void setLoginTimeout(std::size_t timeout); /// Sets the session login timeout value. @@ -235,12 +248,19 @@ public: void begin(); /// Starts a transaction. + /// If `session` is in autocommit mode, it is switched to manual commit mode + /// for the duration of the transaction and reverted back to the original mode + /// after transaction completes (on rollback or commit() call). void commit(); /// Commits and ends a transaction. + /// If `session` was in autocommit mode when the transaction started (begin() call), + /// it is switched back to autocommit mode. void rollback(); /// Rolls back and ends a transaction. + /// If `session` was in autocommit mode when the transaction started (begin() call), + /// it is switched back to autocommit mode. bool canTransact(); /// Returns true if session has transaction capabilities. @@ -273,7 +293,7 @@ public: /// Utility function that teturns the URI formatted from supplied /// arguments as "connector:///connectionString". - bool hasFeature(const std::string& name); + bool hasFeature(const std::string& name) const; /// Returns true if session has the named feature. void setFeature(const std::string& name, bool state); @@ -294,7 +314,7 @@ public: /// Throws a NotSupportedException if the requested feature is /// not supported by the underlying implementation. - bool hasProperty(const std::string& name); + bool hasProperty(const std::string& name) const; /// Returns true if session has the named property. void setProperty(const std::string& name, const Poco::Any& value); @@ -322,13 +342,21 @@ private: Session(); Poco::AutoPtr _pImpl; - StatementCreator _statementCreator; + StatementCreator _statementCreator; + bool _wasAutoCommit = false; }; // // inlines // + +inline bool Session::isAutocommit() const +{ + return hasFeature("autoCommit") && getFeature("autoCommit"); +} + + inline SharedPtr Session::createStatementImpl() { return _pImpl->createStatementImpl(); @@ -389,24 +417,6 @@ inline std::size_t Session::getConnectionTimeout() } -inline void Session::begin() -{ - return _pImpl->begin(); -} - - -inline void Session::commit() -{ - return _pImpl->commit(); -} - - -inline void Session::rollback() -{ - return _pImpl->rollback(); -} - - inline bool Session::canTransact() { return _pImpl->canTransact(); @@ -462,7 +472,7 @@ inline std::string Session::uri() const } -inline bool Session::hasFeature(const std::string& name) +inline bool Session::hasFeature(const std::string& name) const { return _pImpl->hasFeature(name); } @@ -480,7 +490,7 @@ inline bool Session::getFeature(const std::string& name) const } -inline bool Session::hasProperty(const std::string& name) +inline bool Session::hasProperty(const std::string& name) const { return _pImpl->hasProperty(name); } diff --git a/Data/include/Poco/Data/SessionImpl.h b/Data/include/Poco/Data/SessionImpl.h index 723084dbc..a956f62dd 100644 --- a/Data/include/Poco/Data/SessionImpl.h +++ b/Data/include/Poco/Data/SessionImpl.h @@ -146,7 +146,7 @@ public: std::string uri() const; /// Returns the URI for this session. - virtual bool hasFeature(const std::string& name) = 0; + virtual bool hasFeature(const std::string& name) const = 0; /// Returns true if session has the named feature. virtual void setFeature(const std::string& name, bool state) = 0; @@ -158,7 +158,7 @@ public: /// Throws a NotSupportedException if the requested feature is /// not supported by the underlying implementation. - virtual bool getFeature(const std::string& name) = 0; + virtual bool getFeature(const std::string& name) const = 0; /// Look up the state of a feature. /// /// Features are a generic extension mechanism for session implementations. @@ -167,7 +167,7 @@ public: /// Throws a NotSupportedException if the requested feature is /// not supported by the underlying implementation. - virtual bool hasProperty(const std::string& name) = 0; + virtual bool hasProperty(const std::string& name) const = 0; /// Returns true if session has the named feature. virtual void setProperty(const std::string& name, const Poco::Any& value) = 0; @@ -179,7 +179,7 @@ public: /// Throws a NotSupportedException if the requested property is /// not supported by the underlying implementation. - virtual Poco::Any getProperty(const std::string& name) = 0; + virtual Poco::Any getProperty(const std::string& name) const = 0; /// Look up the value of a property. /// /// Properties are a generic extension mechanism for session implementations. diff --git a/Data/include/Poco/Data/SessionPool.h b/Data/include/Poco/Data/SessionPool.h index 9d01ba819..e1f9e9be7 100644 --- a/Data/include/Poco/Data/SessionPool.h +++ b/Data/include/Poco/Data/SessionPool.h @@ -146,13 +146,13 @@ public: void setFeature(const std::string& name, bool state); /// Sets feature for all the sessions. - bool getFeature(const std::string& name); + bool getFeature(const std::string& name) const; /// Returns the requested feature. void setProperty(const std::string& name, const Poco::Any& value); /// Sets property for all sessions. - Poco::Any getProperty(const std::string& name); + Poco::Any getProperty(const std::string& name) const; /// Returns the requested property. void shutdown(); diff --git a/Data/include/Poco/Data/Transaction.h b/Data/include/Poco/Data/Transaction.h index f08927383..a00142cbb 100644 --- a/Data/include/Poco/Data/Transaction.h +++ b/Data/include/Poco/Data/Transaction.h @@ -39,9 +39,6 @@ class Data_API Transaction public: Transaction(Poco::Data::Session& session, Poco::Logger* pLogger = 0); /// Creates the Transaction and starts it, using the given database session and logger. - /// If `session` is in autocommit mode, it is switched to manual commit mode - /// for the duration of the transaction and reverted back to the original mode - /// after transaction completes. Transaction(Poco::Data::Session& session, bool start); /// Creates the Transaction, using the given database session. @@ -159,7 +156,6 @@ private: /// Otherwise does nothing. Session _rSession; - bool _autoCommit = false; Logger* _pLogger = nullptr; }; diff --git a/Data/src/PooledSessionImpl.cpp b/Data/src/PooledSessionImpl.cpp index da41b8edf..df0afd90b 100644 --- a/Data/src/PooledSessionImpl.cpp +++ b/Data/src/PooledSessionImpl.cpp @@ -166,7 +166,7 @@ const std::string& PooledSessionImpl::connectorName() const } -bool PooledSessionImpl::hasFeature(const std::string& name) +bool PooledSessionImpl::hasFeature(const std::string& name) const { return access()->hasFeature(name); } @@ -178,13 +178,13 @@ void PooledSessionImpl::setFeature(const std::string& name, bool state) } -bool PooledSessionImpl::getFeature(const std::string& name) +bool PooledSessionImpl::getFeature(const std::string& name) const { return access()->getFeature(name); } -bool PooledSessionImpl::hasProperty(const std::string& name) +bool PooledSessionImpl::hasProperty(const std::string& name) const { return access()->hasProperty(name); } @@ -196,7 +196,7 @@ void PooledSessionImpl::setProperty(const std::string& name, const Poco::Any& va } -Poco::Any PooledSessionImpl::getProperty(const std::string& name) +Poco::Any PooledSessionImpl::getProperty(const std::string& name) const { return access()->getProperty(name); } diff --git a/Data/src/Session.cpp b/Data/src/Session.cpp index 985acb255..c7a611091 100644 --- a/Data/src/Session.cpp +++ b/Data/src/Session.cpp @@ -25,9 +25,9 @@ namespace Data { Session::Session(Poco::AutoPtr pImpl): _pImpl(pImpl), - _statementCreator(pImpl) + _statementCreator(pImpl), + _wasAutoCommit(false) { - poco_check_ptr (pImpl.get()); } @@ -40,8 +40,7 @@ Session::Session(const std::string& connector, } -Session::Session(const std::string& connection, - std::size_t timeout) +Session::Session(const std::string& connection, std::size_t timeout) { Session newSession(SessionFactory::instance().create(connection, timeout)); swap(newSession); @@ -50,14 +49,16 @@ Session::Session(const std::string& connection, Session::Session(const Session& other): _pImpl(other._pImpl), - _statementCreator(other._statementCreator) + _statementCreator(other._statementCreator), + _wasAutoCommit(other._wasAutoCommit) { } Session::Session(Session&& other) noexcept: _pImpl(std::move(other._pImpl)), - _statementCreator(std::move(other._statementCreator)) + _statementCreator(std::move(other._statementCreator)), + _wasAutoCommit(other._wasAutoCommit) { } @@ -78,6 +79,7 @@ Session& Session::operator = (Session&& other) noexcept { _pImpl = std::move(other._pImpl); _statementCreator = std::move(other._statementCreator); + _wasAutoCommit = other._wasAutoCommit; return *this; } @@ -87,6 +89,40 @@ void Session::swap(Session& other) using std::swap; swap(_statementCreator, other._statementCreator); swap(_pImpl, other._pImpl); + swap(_wasAutoCommit, other._wasAutoCommit); +} + + +void Session::begin() +{ + if (isAutocommit()) + { + setFeature("autoCommit", false); + _wasAutoCommit = true; + } + return _pImpl->begin(); +} + + +void Session::commit() +{ + _pImpl->commit(); + if (_wasAutoCommit) + { + setFeature("autoCommit", true); + _wasAutoCommit = false; + } +} + + +void Session::rollback() +{ + _pImpl->rollback(); + if (_wasAutoCommit) + { + setFeature("autoCommit", true); + _wasAutoCommit = false; + } } diff --git a/Data/src/SessionPool.cpp b/Data/src/SessionPool.cpp index 32b8312a5..99ddce63e 100644 --- a/Data/src/SessionPool.cpp +++ b/Data/src/SessionPool.cpp @@ -178,7 +178,7 @@ void SessionPool::setFeature(const std::string& name, bool state) } -bool SessionPool::getFeature(const std::string& name) +bool SessionPool::getFeature(const std::string& name) const { if (_shutdown) throw InvalidAccessException("Session pool has been shut down."); @@ -205,7 +205,7 @@ void SessionPool::setProperty(const std::string& name, const Poco::Any& value) } -Poco::Any SessionPool::getProperty(const std::string& name) +Poco::Any SessionPool::getProperty(const std::string& name) const { Poco::Mutex::ScopedLock lock(_mutex); PropertyMap::ConstIterator it = _propertyMap.find(name); diff --git a/Data/src/Transaction.cpp b/Data/src/Transaction.cpp index 28c066964..6184c8d3e 100644 --- a/Data/src/Transaction.cpp +++ b/Data/src/Transaction.cpp @@ -22,7 +22,6 @@ namespace Data { Transaction::Transaction(Poco::Data::Session& rSession, Poco::Logger* pLogger): _rSession(rSession), - _autoCommit(_rSession.hasFeature("autoCommit") ? _rSession.getFeature("autoCommit") : false), _pLogger(pLogger) { begin(); @@ -31,7 +30,6 @@ Transaction::Transaction(Poco::Data::Session& rSession, Poco::Logger* pLogger): Transaction::Transaction(Poco::Data::Session& rSession, bool start): _rSession(rSession), - _autoCommit(_rSession.hasFeature("autoCommit") ? _rSession.getFeature("autoCommit") : false), _pLogger(0) { if (start) begin(); @@ -73,11 +71,7 @@ Transaction::~Transaction() void Transaction::begin() { if (!_rSession.isTransaction()) - { - if (_autoCommit) - _rSession.setFeature("autoCommit", false); _rSession.begin(); - } else throw InvalidAccessException("Transaction in progress."); } @@ -122,8 +116,6 @@ void Transaction::commit() _pLogger->debug("Committing transaction."); _rSession.commit(); - if (_autoCommit) - _rSession.setFeature("autoCommit", true); } @@ -133,8 +125,6 @@ void Transaction::rollback() _pLogger->debug("Rolling back transaction."); _rSession.rollback(); - if (_autoCommit) - _rSession.setFeature("autoCommit", true); } From efd9b2ca1d9963865fd56e20fff3b081e3ccc6f8 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Fri, 27 Oct 2023 16:01:33 +0200 Subject: [PATCH 147/395] feat(Data::ODBC) add MARS support #4230 --- Data/ODBC/include/Poco/Data/ODBC/ODBC.h | 8 +- .../ODBC/include/Poco/Data/ODBC/SessionImpl.h | 11 +++ Data/ODBC/src/SessionImpl.cpp | 87 ++++++++++++++----- 3 files changed, 81 insertions(+), 25 deletions(-) diff --git a/Data/ODBC/include/Poco/Data/ODBC/ODBC.h b/Data/ODBC/include/Poco/Data/ODBC/ODBC.h index 647e4b8f0..e23f1787b 100644 --- a/Data/ODBC/include/Poco/Data/ODBC/ODBC.h +++ b/Data/ODBC/include/Poco/Data/ODBC/ODBC.h @@ -52,9 +52,15 @@ #endif - #include "Poco/Data/ODBC/Unicode.h" +#if (__cplusplus >= 201703L) + #if __has_include() + #include + #define POCO_DATA_ODBC_HAVE_SQL_SERVER_EXT + #endif +#endif + // // Automatically link Data library. diff --git a/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h b/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h index 2e04a137a..0e3e9479f 100644 --- a/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h +++ b/Data/ODBC/include/Poco/Data/ODBC/SessionImpl.h @@ -81,6 +81,9 @@ public: Poco::SharedPtr createStatementImpl(); /// Returns an ODBC StatementImpl + void addFeatures(); + /// Adds the ODBC session features and properties. + void open(const std::string& connect = ""); /// Opens a connection to the Database @@ -189,6 +192,14 @@ public: const std::string& dbEncoding() const; /// Returns the database encoding. + void setMultiActiveResultset(const std::string&, bool value); + /// Sets the multiple active resultset capability, if available. + /// Does nothing, if feature is not available. + + bool getMultiActiveResultset(const std::string&) const; + /// Returns the multiple active resultset capability, if available. + /// Returns false, if feature is not available. + const ConnectionHandle& dbc() const; /// Returns the connection handle. diff --git a/Data/ODBC/src/SessionImpl.cpp b/Data/ODBC/src/SessionImpl.cpp index 644be1f3e..365f0c419 100644 --- a/Data/ODBC/src/SessionImpl.cpp +++ b/Data/ODBC/src/SessionImpl.cpp @@ -42,10 +42,14 @@ SessionImpl::SessionImpl(const std::string& connect, _queryTimeout(-1), _dbEncoding("UTF-8") { + addFeatures(); setFeature("bulk", true); + setFeature("multiActiveResultset", true); + // this option is obsolete; here only to support older drivers, should be changed to ODBC_CURSOR_USE_NEVER // https://github.com/MicrosoftDocs/sql-docs/blob/live/docs/odbc/reference/appendixes/using-the-odbc-cursor-library.md setCursorUse("", ODBC_CURSOR_USE_IF_NEEDED); + open(); } @@ -64,10 +68,14 @@ SessionImpl::SessionImpl(const std::string& connect, _queryTimeout(-1), _dbEncoding("UTF-8") { + addFeatures(); setFeature("bulk", true); + setFeature("multiActiveResultset", true); + // this option is obsolete; here only to support older drivers, should be changed to ODBC_CURSOR_USE_NEVER // https://github.com/MicrosoftDocs/sql-docs/blob/live/docs/odbc/reference/appendixes/using-the-odbc-cursor-library.md setCursorUse("", ODBC_CURSOR_USE_IF_NEEDED); + open(); } @@ -97,6 +105,40 @@ Poco::Data::StatementImpl::Ptr SessionImpl::createStatementImpl() } +void SessionImpl::addFeatures() +{ + addFeature("autoCommit", + &SessionImpl::autoCommit, + &SessionImpl::isAutoCommit); + + addFeature("autoBind", + &SessionImpl::autoBind, + &SessionImpl::isAutoBind); + + addFeature("autoExtract", + &SessionImpl::autoExtract, + &SessionImpl::isAutoExtract); + + addProperty("maxFieldSize", + &SessionImpl::setMaxFieldSize, + &SessionImpl::getMaxFieldSize); + + addProperty("queryTimeout", + &SessionImpl::setQueryTimeout, + &SessionImpl::getQueryTimeout); + + addProperty("dbEncoding", + &SessionImpl::setDBEncoding, + &SessionImpl::getDBEncoding); + + // SQL Server supports multiple active resultsets + // currently has no effect on other back ends + addFeature("multiActiveResultset", + &SessionImpl::setMultiActiveResultset, + &SessionImpl::getMultiActiveResultset); +} + + void SessionImpl::open(const std::string& connect) { if (connect != connectionString()) @@ -122,30 +164,6 @@ void SessionImpl::open(const std::string& connect) &SessionImpl::setDataTypeInfo, &SessionImpl::dataTypeInfo); - addFeature("autoCommit", - &SessionImpl::autoCommit, - &SessionImpl::isAutoCommit); - - addFeature("autoBind", - &SessionImpl::autoBind, - &SessionImpl::isAutoBind); - - addFeature("autoExtract", - &SessionImpl::autoExtract, - &SessionImpl::isAutoExtract); - - addProperty("maxFieldSize", - &SessionImpl::setMaxFieldSize, - &SessionImpl::getMaxFieldSize); - - addProperty("queryTimeout", - &SessionImpl::setQueryTimeout, - &SessionImpl::getQueryTimeout); - - addProperty("dbEncoding", - &SessionImpl::setDBEncoding, - &SessionImpl::getDBEncoding); - Poco::Data::ODBC::SQLSetConnectAttr(_db, SQL_ATTR_QUIET_MODE, 0, 0); if (!canTransact()) autoCommit("", true); @@ -297,6 +315,27 @@ void SessionImpl::setTransactionIsolationImpl(Poco::UInt32 ti) const } +void SessionImpl::setMultiActiveResultset(const std::string&, bool val) +{ +#ifdef POCO_DATA_ODBC_HAVE_SQL_SERVER_EXT + int enabled = val ? SQL_MARS_ENABLED_YES : SQL_MARS_ENABLED_NO; + checkError(Poco::Data::ODBC::SQLSetConnectAttr(_db, SQL_COPT_SS_MARS_ENABLED, &enabled, SQL_IS_INTEGER)); +#endif +} + + +bool SessionImpl::getMultiActiveResultset(const std::string&) const +{ +#ifdef POCO_DATA_ODBC_HAVE_SQL_SERVER_EXT + SQLINTEGER mars; + Poco::Data::ODBC::SQLGetConnectAttr(_db, SQL_COPT_SS_MARS_ENABLED, &mars, SQL_IS_INTEGER, 0); + return mars == SQL_MARS_ENABLED_YES; +#else + return false; +#endif +} + + Poco::UInt32 SessionImpl::getTransactionIsolation() const { SQLULEN isolation = 0; From 439acf1924e44fd970b0992080b77cc5e336d4db Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Fri, 27 Oct 2023 17:45:39 +0200 Subject: [PATCH 148/395] fix(Data): transactions are not handled properly #4230 --- Data/ODBC/src/SessionImpl.cpp | 11 +- Data/ODBC/testsuite/src/ODBCDB2Test.cpp | 3 + Data/ODBC/testsuite/src/ODBCMySQLTest.cpp | 3 + Data/ODBC/testsuite/src/ODBCOracleTest.cpp | 3 + .../ODBC/testsuite/src/ODBCPostgreSQLTest.cpp | 3 + Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp | 3 + Data/ODBC/testsuite/src/ODBCSQLiteTest.cpp | 2 + Data/ODBC/testsuite/src/ODBCTest.cpp | 45 ++++ Data/ODBC/testsuite/src/ODBCTest.h | 3 + Data/ODBC/testsuite/src/SQLExecutor.cpp | 242 ++++++++++++------ Data/ODBC/testsuite/src/SQLExecutor.h | 4 + Data/include/Poco/Data/Session.h | 5 +- 12 files changed, 240 insertions(+), 87 deletions(-) diff --git a/Data/ODBC/src/SessionImpl.cpp b/Data/ODBC/src/SessionImpl.cpp index 365f0c419..563b9b6f2 100644 --- a/Data/ODBC/src/SessionImpl.cpp +++ b/Data/ODBC/src/SessionImpl.cpp @@ -376,7 +376,7 @@ Poco::UInt32 SessionImpl::getDefaultTransactionIsolation() const Poco::UInt32 SessionImpl::transactionIsolation(SQLULEN isolation) { if (0 == isolation) - throw InvalidArgumentException("transactionIsolation(SQLUINTEGER)"); + throw InvalidArgumentException("transactionIsolation(0): invalid isolation 0"); Poco::UInt32 ret = 0; @@ -393,7 +393,7 @@ Poco::UInt32 SessionImpl::transactionIsolation(SQLULEN isolation) ret |= Session::TRANSACTION_SERIALIZABLE; if (0 == ret) - throw InvalidArgumentException("transactionIsolation(SQLUINTEGER)"); + throw InvalidArgumentException(Poco::format("transactionIsolation(%u)", isolation)); return ret; } @@ -401,6 +401,13 @@ Poco::UInt32 SessionImpl::transactionIsolation(SQLULEN isolation) void SessionImpl::autoCommit(const std::string&, bool val) { + if (val == isAutoCommit()) return; + if (val && isTransaction()) + { + throw InvalidAccessException("autoCommit not " + "allowed for session in transaction"); + } + checkError(Poco::Data::ODBC::SQLSetConnectAttr(_db, SQL_ATTR_AUTOCOMMIT, val ? (SQLPOINTER) SQL_AUTOCOMMIT_ON : diff --git a/Data/ODBC/testsuite/src/ODBCDB2Test.cpp b/Data/ODBC/testsuite/src/ODBCDB2Test.cpp index f79d1ea40..633cdc1a8 100644 --- a/Data/ODBC/testsuite/src/ODBCDB2Test.cpp +++ b/Data/ODBC/testsuite/src/ODBCDB2Test.cpp @@ -669,6 +669,9 @@ CppUnit::Test* ODBCDB2Test::suite() CppUnit_addTest(pSuite, ODBCDB2Test, testMultipleResults); CppUnit_addTest(pSuite, ODBCDB2Test, testSQLChannel); CppUnit_addTest(pSuite, ODBCDB2Test, testSQLLogger); + CppUnit_addTest(pSuite, ODBCDB2Test, testAutoCommit); + CppUnit_addTest(pSuite, ODBCDB2Test, testSessionTransactionNoAutoCommit); + CppUnit_addTest(pSuite, ODBCDB2Test, testTransactionIsolation); CppUnit_addTest(pSuite, ODBCDB2Test, testSessionTransaction); CppUnit_addTest(pSuite, ODBCDB2Test, testTransaction); CppUnit_addTest(pSuite, ODBCDB2Test, testTransactor); diff --git a/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp b/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp index 340c98658..62e3adf27 100644 --- a/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp +++ b/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp @@ -494,6 +494,9 @@ CppUnit::Test* ODBCMySQLTest::suite() //CppUnit_addTest(pSuite, ODBCMySQLTest, testMultipleResults); CppUnit_addTest(pSuite, ODBCMySQLTest, testSQLChannel); CppUnit_addTest(pSuite, ODBCMySQLTest, testSQLLogger); + CppUnit_addTest(pSuite, ODBCMySQLTest, testAutoCommit); + CppUnit_addTest(pSuite, ODBCMySQLTest, testSessionTransactionNoAutoCommit); + CppUnit_addTest(pSuite, ODBCMySQLTest, testTransactionIsolation); CppUnit_addTest(pSuite, ODBCMySQLTest, testSessionTransaction); CppUnit_addTest(pSuite, ODBCMySQLTest, testTransaction); CppUnit_addTest(pSuite, ODBCMySQLTest, testTransactor); diff --git a/Data/ODBC/testsuite/src/ODBCOracleTest.cpp b/Data/ODBC/testsuite/src/ODBCOracleTest.cpp index bee9ea036..0db8f21e4 100644 --- a/Data/ODBC/testsuite/src/ODBCOracleTest.cpp +++ b/Data/ODBC/testsuite/src/ODBCOracleTest.cpp @@ -931,6 +931,9 @@ CppUnit::Test* ODBCOracleTest::suite() CppUnit_addTest(pSuite, ODBCOracleTest, testMultipleResults); CppUnit_addTest(pSuite, ODBCOracleTest, testSQLChannel); CppUnit_addTest(pSuite, ODBCOracleTest, testSQLLogger); + CppUnit_addTest(pSuite, ODBCOracleTest, testAutoCommit); + CppUnit_addTest(pSuite, ODBCOracleTest, testSessionTransactionNoAutoCommit); + CppUnit_addTest(pSuite, ODBCOracleTest, testTransactionIsolation); CppUnit_addTest(pSuite, ODBCOracleTest, testAutoTransaction); CppUnit_addTest(pSuite, ODBCOracleTest, testSessionTransaction); CppUnit_addTest(pSuite, ODBCOracleTest, testTransaction); diff --git a/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.cpp b/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.cpp index 6aafef3d7..ddb6c7a2e 100644 --- a/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.cpp +++ b/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.cpp @@ -671,6 +671,9 @@ CppUnit::Test* ODBCPostgreSQLTest::suite() CppUnit_addTest(pSuite, ODBCPostgreSQLTest, testMultipleResults); CppUnit_addTest(pSuite, ODBCPostgreSQLTest, testSQLChannel); CppUnit_addTest(pSuite, ODBCPostgreSQLTest, testSQLLogger); + CppUnit_addTest(pSuite, ODBCPostgreSQLTest, testAutoCommit); + CppUnit_addTest(pSuite, ODBCPostgreSQLTest, testSessionTransactionNoAutoCommit); + CppUnit_addTest(pSuite, ODBCPostgreSQLTest, testTransactionIsolation); CppUnit_addTest(pSuite, ODBCPostgreSQLTest, testSessionTransaction); // (postgres bug?) // local session claims to be capable of reading uncommitted changes, diff --git a/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp b/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp index e87771997..fea7debbc 100644 --- a/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp +++ b/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp @@ -966,6 +966,9 @@ CppUnit::Test* ODBCSQLServerTest::suite() CppUnit_addTest(pSuite, ODBCSQLServerTest, testMultipleResults); CppUnit_addTest(pSuite, ODBCSQLServerTest, testSQLChannel); CppUnit_addTest(pSuite, ODBCSQLServerTest, testSQLLogger); + CppUnit_addTest(pSuite, ODBCSQLServerTest, testAutoCommit); + CppUnit_addTest(pSuite, ODBCSQLServerTest, testSessionTransactionNoAutoCommit); + CppUnit_addTest(pSuite, ODBCSQLServerTest, testTransactionIsolation); CppUnit_addTest(pSuite, ODBCSQLServerTest, testSessionTransaction); CppUnit_addTest(pSuite, ODBCSQLServerTest, testTransaction); CppUnit_addTest(pSuite, ODBCSQLServerTest, testTransactor); diff --git a/Data/ODBC/testsuite/src/ODBCSQLiteTest.cpp b/Data/ODBC/testsuite/src/ODBCSQLiteTest.cpp index cbaf04bc1..f49d4e037 100644 --- a/Data/ODBC/testsuite/src/ODBCSQLiteTest.cpp +++ b/Data/ODBC/testsuite/src/ODBCSQLiteTest.cpp @@ -388,6 +388,8 @@ CppUnit::Test* ODBCSQLiteTest::suite() CppUnit_addTest(pSuite, ODBCSQLiteTest, testDynamicAny); CppUnit_addTest(pSuite, ODBCSQLiteTest, testSQLChannel); CppUnit_addTest(pSuite, ODBCSQLiteTest, testSQLLogger); + CppUnit_addTest(pSuite, ODBCSQLiteTest, testAutoCommit); + CppUnit_addTest(pSuite, ODBCSQLiteTest, testTransactionIsolation); CppUnit_addTest(pSuite, ODBCSQLiteTest, testSessionTransaction); CppUnit_addTest(pSuite, ODBCSQLiteTest, testTransaction); CppUnit_addTest(pSuite, ODBCSQLiteTest, testTransactor); diff --git a/Data/ODBC/testsuite/src/ODBCTest.cpp b/Data/ODBC/testsuite/src/ODBCTest.cpp index e1ce3c8c4..3acc8e452 100644 --- a/Data/ODBC/testsuite/src/ODBCTest.cpp +++ b/Data/ODBC/testsuite/src/ODBCTest.cpp @@ -1206,6 +1206,36 @@ void ODBCTest::testSQLLogger() } +void ODBCTest::testAutoCommit() +{ + if (!_pSession) fail ("Test not available."); + + for (int i = 0; i < 8;) + { + recreatePersonTable(); + _pSession->setFeature("autoBind", bindValue(i)); + _pSession->setFeature("autoExtract", bindValue(i+1)); + _pExecutor->autoCommit(_rConnectString); + i += 2; + } +} + + +void ODBCTest::testTransactionIsolation() +{ + if (!_pSession) fail ("Test not available."); + + for (int i = 0; i < 8;) + { + recreatePersonTable(); + _pSession->setFeature("autoBind", bindValue(i)); + _pSession->setFeature("autoExtract", bindValue(i+1)); + _pExecutor->transactionIsolation(_rConnectString); + i += 2; + } +} + + void ODBCTest::testSessionTransaction() { if (!_pSession) fail ("Test not available."); @@ -1221,6 +1251,21 @@ void ODBCTest::testSessionTransaction() } +void ODBCTest::testSessionTransactionNoAutoCommit() +{ + if (!_pSession) fail ("Test not available."); + + for (int i = 0; i < 8;) + { + recreatePersonTable(); + _pSession->setFeature("autoBind", bindValue(i)); + _pSession->setFeature("autoExtract", bindValue(i+1)); + _pExecutor->sessionTransactionNoAutoCommit(_rConnectString); + i += 2; + } +} + + void ODBCTest::testTransaction() { if (!_pSession) fail ("Test not available."); diff --git a/Data/ODBC/testsuite/src/ODBCTest.h b/Data/ODBC/testsuite/src/ODBCTest.h index 9605b780b..efa5cc5a2 100644 --- a/Data/ODBC/testsuite/src/ODBCTest.h +++ b/Data/ODBC/testsuite/src/ODBCTest.h @@ -152,7 +152,10 @@ public: virtual void testSQLChannel(); virtual void testSQLLogger(); + virtual void testAutoCommit(); + virtual void testTransactionIsolation(); virtual void testSessionTransaction(); + virtual void testSessionTransactionNoAutoCommit(); virtual void testTransaction(); virtual void testTransactor(); virtual void testNullable(); diff --git a/Data/ODBC/testsuite/src/SQLExecutor.cpp b/Data/ODBC/testsuite/src/SQLExecutor.cpp index b68d03f72..7c30dfda0 100644 --- a/Data/ODBC/testsuite/src/SQLExecutor.cpp +++ b/Data/ODBC/testsuite/src/SQLExecutor.cpp @@ -4172,40 +4172,23 @@ void SQLExecutor::setTransactionIsolation(Session& session, Poco::UInt32 ti) } -void SQLExecutor::sessionTransaction(const std::string& connect) +void SQLExecutor::autoCommit(const std::string& connect) { - if (!session().canTransact()) - { - std::cout << "Session not capable of transactions." << std::endl; - return; - } - - Session local("odbc", connect); - - std::string funct = "sessionTransaction()"; - std::vector lastNames; - std::vector firstNames; - std::vector addresses; - std::vector ages; - std::string tableName("Person"); - lastNames.push_back("LN1"); - lastNames.push_back("LN2"); - firstNames.push_back("FN1"); - firstNames.push_back("FN2"); - addresses.push_back("ADDR1"); - addresses.push_back("ADDR2"); - ages.push_back(1); - ages.push_back(2); - int count = 0, locCount = 0; - std::string result; - bool autoCommit = session().getFeature("autoCommit"); session().setFeature("autoCommit", true); assertTrue (!session().isTransaction()); session().setFeature("autoCommit", false); assertTrue (!session().isTransaction()); + session().setFeature("autoCommit", true); + assertTrue (!session().isTransaction()); + session().setFeature("autoCommit", autoCommit); +} + + +void SQLExecutor::transactionIsolation(const std::string& connect) +{ auto ti = session().getTransactionIsolation(); // these are just calls to check the transactional capabilities of the session @@ -4215,18 +4198,52 @@ void SQLExecutor::sessionTransaction(const std::string& connect) setTransactionIsolation(session(), Session::TRANSACTION_SERIALIZABLE); setTransactionIsolation(session(), Session::TRANSACTION_READ_COMMITTED); + setTransactionIsolation(session(), ti); +} + + +void SQLExecutor::sessionTransaction(const std::string& connect) +{ + if (!session().canTransact()) + { + std::cout << "Session not capable of transactions." << std::endl; + return; + } + + bool autoCommit = session().getFeature("autoCommit"); + + Session local("odbc", connect); + + std::string funct = "sessionTransaction()"; + + std::string tableName("Person"); + std::vector lastNames = {"LN1", "LN2"}; + std::vector firstNames = {"FN1", "FN2"}; + std::vector addresses = {"ADDR1", "ADDR2"}; + std::vector ages = {1, 2}; + int count = 0, locCount = 0; + std::string result; + + session().setFeature("autoCommit", true); session().begin(); assertTrue (session().isTransaction()); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + + // autocommit is invalid for session in transaction ... + try + { + session().setFeature("autoCommit", true); + fail ("must fail on autocommit setting during transaction"); + } + catch(const Poco::InvalidAccessException& e) { } + // but setting it to its current state is allowed (no-op) + session().setFeature("autoCommit", false); + + session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; assertTrue (session().isTransaction()); Statement stmt = (local << "SELECT COUNT(*) FROM Person", into(locCount), async, now); - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "SELECT COUNT(*) FROM Person", into(count), now; assertTrue (2 == count); assertTrue (session().isTransaction()); session().rollback(); @@ -4234,35 +4251,111 @@ void SQLExecutor::sessionTransaction(const std::string& connect) stmt.wait(); assertTrue (0 == locCount); + stmt.reset(session()); - try { session() << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "SELECT count(*) FROM Person", into(count), now; assertTrue (0 == count); assertTrue (!session().isTransaction()); session().begin(); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; assertTrue (session().isTransaction()); - Statement stmt1 = (local << "SELECT COUNT(*) FROM Person", into(locCount), async, now); + stmt = (local << "SELECT COUNT(*) FROM Person", into(locCount), async, now); session().commit(); assertTrue (!session().isTransaction()); - stmt1.wait(); + stmt.wait(); assertTrue (2 == locCount); - try { session() << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "SELECT count(*) FROM Person", into(count), now; assertTrue (2 == count); + // end autoCommit = true // restore the original transaction state session().setFeature("autoCommit", autoCommit); - setTransactionIsolation(session(), ti); +} + + +void SQLExecutor::sessionTransactionNoAutoCommit(const std::string& connect) +{ + bool autoCommit = session().getFeature("autoCommit"); + + Session local("odbc", connect); + local.setFeature("autoCommit", false); + assertTrue (!local.getFeature("autoCommit")); + + if (!local.canTransact()) + { + std::cout << "Session not capable of transactions." << std::endl; + return; + } + + std::string funct = "sessionTransactionNoAutoCommit()"; + std::vector lastNames = {"LN1", "LN2"}; + std::vector firstNames = {"FN1", "FN2"}; + std::vector addresses = {"ADDR1", "ADDR2"}; + std::vector ages = {1, 2}; + std::string tableName("Person"); + int count = 0, locCount = 0; + std::string result; + + // no autoCommit session becomes transaction without explicit begin() + assertTrue (!local.isTransaction()); + assertTrue (!session().isTransaction()); + local << "INSERT INTO Person VALUES (?,?,?,?)", + use(lastNames), use(firstNames), use(addresses), use(ages), now; + Statement stmt = (session() << "SELECT COUNT(*) FROM Person", + into(count), async, now); + local << "SELECT COUNT(*) FROM Person", into(locCount), now; + assertTrue (0 == count); + assertTrue (2 == locCount); + assertTrue (local.isTransaction()); + + // autocommit is invalid for session in transaction ... + try + { + local.setFeature("autoCommit", true); + fail ("must fail on autocommit setting during transaction"); + } + catch(const Poco::InvalidAccessException& e) { } + // but setting it to its current state is allowed (no-op) + local.setFeature("autoCommit", false); + + assertTrue (!session().isTransaction()); + + local.commit(); + assertTrue (!local.isTransaction()); + + stmt.wait(); + assertTrue (2 == count); + count = 0; + stmt.reset(session()); + + assertTrue (!local.isTransaction()); + assertTrue (!session().isTransaction()); + local << "INSERT INTO Person VALUES (?,?,?,?)", + use(lastNames), use(firstNames), use(addresses), use(ages), now; + stmt = (session() << "SELECT COUNT(*) FROM Person", into(count), async, now); + local << "SELECT COUNT(*) FROM Person", into(locCount), now; + assertTrue (0 == count); + assertTrue (4 == locCount); + assertTrue (local.isTransaction()); + assertTrue (!session().isTransaction()); + + local.rollback(); + assertTrue (!local.isTransaction()); + stmt.wait(); + assertTrue (2 == count); + + locCount = 0; + session() << "SELECT COUNT(*) FROM Person", into(count), now; + local << "SELECT COUNT(*) FROM Person", into(locCount), now; + assertTrue (2 == count); + assertTrue (2 == locCount); + + session().setFeature("autoCommit", autoCommit); } @@ -4287,19 +4380,11 @@ void SQLExecutor::transaction(const std::string& connect) setTransactionIsolation(local, Session::TRANSACTION_READ_COMMITTED); std::string funct = "transaction()"; - std::vector lastNames; - std::vector firstNames; - std::vector addresses; - std::vector ages; std::string tableName("Person"); - lastNames.push_back("LN1"); - lastNames.push_back("LN2"); - firstNames.push_back("FN1"); - firstNames.push_back("FN2"); - addresses.push_back("ADDR1"); - addresses.push_back("ADDR2"); - ages.push_back(1); - ages.push_back(2); + std::vector lastNames = {"LN1", "LN2"}; + std::vector firstNames = {"FN1", "FN2"}; + std::vector addresses = {"ADDR1", "ADDR2"}; + std::vector ages = {1, 2}; int count = 0, locCount = 0; std::string result; @@ -4334,7 +4419,8 @@ void SQLExecutor::transaction(const std::string& connect) catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } assertTrue (0 == count); - assertTrue (!session().isTransaction()); + assertTrue (session().isTransaction()); + session().commit(); { Transaction trans(session()); @@ -4394,14 +4480,10 @@ void SQLExecutor::transaction(const std::string& connect) Transaction trans(session()); trans.execute(sql1, false); - try { session() << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "SELECT count(*) FROM Person", into(count), now; assertTrue (1 == count); trans.execute(sql2, false); - try { session() << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "SELECT count(*) FROM Person", into(count), now; assertTrue (2 == count); Statement stmt2 = (local << "SELECT COUNT(*) FROM Person", into(locCount), async, now); @@ -4425,6 +4507,7 @@ void SQLExecutor::transaction(const std::string& connect) catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } assertTrue (2 == count); + session().commit(); // restore the original transaction state session().setFeature("autoCommit", autoCommit); @@ -4457,24 +4540,20 @@ void SQLExecutor::transactor() int count = 0; bool autoCommit = session().getFeature("autoCommit"); + auto ti = session().getTransactionIsolation(); + session().setFeature("autoCommit", false); session().setTransactionIsolation(Session::TRANSACTION_READ_COMMITTED); TestCommitTransactor ct; Transaction t1(session(), ct); - try { session() << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "SELECT count(*) FROM Person", into(count), now; assertTrue (1 == count); - try { session() << "DELETE FROM Person", now; session().commit();} - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "DELETE FROM Person", now; session().commit(); - try { session() << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "SELECT count(*) FROM Person", into(count), now; assertTrue (0 == count); try @@ -4484,9 +4563,7 @@ void SQLExecutor::transactor() fail ("must fail"); } catch (Poco::Exception&) { } - try { session() << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "SELECT count(*) FROM Person", into(count), now; assertTrue (0 == count); try @@ -4497,9 +4574,7 @@ void SQLExecutor::transactor() fail ("must fail"); } catch (Poco::Exception&) { } - try { session() << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "SELECT count(*) FROM Person", into(count), now; assertTrue (0 == count); try @@ -4510,9 +4585,7 @@ void SQLExecutor::transactor() fail ("must fail"); } catch (Poco::Exception&) { } - try { session() << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "SELECT count(*) FROM Person", into(count), now; assertTrue (0 == count); try @@ -4523,12 +4596,13 @@ void SQLExecutor::transactor() fail ("must fail"); } catch (Poco::Exception&) { } - try { session() << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "SELECT count(*) FROM Person", into(count), now; assertTrue (0 == count); + session().commit(); + // restore the original transaction state session().setFeature("autoCommit", autoCommit); + setTransactionIsolation(session(), ti); } diff --git a/Data/ODBC/testsuite/src/SQLExecutor.h b/Data/ODBC/testsuite/src/SQLExecutor.h index 1b6c399ec..18304e816 100644 --- a/Data/ODBC/testsuite/src/SQLExecutor.h +++ b/Data/ODBC/testsuite/src/SQLExecutor.h @@ -511,7 +511,11 @@ public: void sqlChannel(const std::string& connect); void sqlLogger(const std::string& connect); + void autoCommit(const std::string& connect); + void transactionIsolation(const std::string& connect); + void sessionTransaction(const std::string& connect); + void sessionTransactionNoAutoCommit(const std::string& connect); void transaction(const std::string& connect); void transactor(); void nullable(); diff --git a/Data/include/Poco/Data/Session.h b/Data/include/Poco/Data/Session.h index a5747b884..7238c4e9a 100644 --- a/Data/include/Poco/Data/Session.h +++ b/Data/include/Poco/Data/Session.h @@ -201,7 +201,10 @@ public: Statement operator << (const T& t) /// Creates a Statement with the given data as SQLContent { - return _statementCreator << t; + Statement stmt = (_statementCreator << t); + if (!_pImpl->isTransaction() && !isAutocommit()) + _pImpl->begin(); + return stmt; } SharedPtr createStatementImpl(); From 8c4b166737c4b5ada2a67fc550aad74ba1849aa1 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Sun, 29 Oct 2023 14:44:15 +0100 Subject: [PATCH 149/395] fix(LinearHashTable): fix std::iterator deprecated warnings; test warnings #4235 --- Foundation/include/Poco/Config.h | 12 +++++++++++- Foundation/include/Poco/LinearHashTable.h | 9 +++++++-- Foundation/testsuite/src/LinearHashTableTest.cpp | 4 ++-- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/Foundation/include/Poco/Config.h b/Foundation/include/Poco/Config.h index dfcbf3b25..3a033ec0b 100644 --- a/Foundation/include/Poco/Config.h +++ b/Foundation/include/Poco/Config.h @@ -215,6 +215,16 @@ // Enable usage of Poco::Mutex and Poco::FastMutex // as wrappers for std::recursive_mutex and std::mutex #ifndef POCO_ENABLE_STD_MUTEX -// #define POCO_ENABLE_STD_MUTEX +// #define POCO_ENABLE_STD_MUTEX #endif + +#define POCO_HAVE_CPP17_COMPILER (__cplusplus >= 201703L) + +// Enable usage of SQL parser in Poco::Data +#ifndef POCO_DATA_ENABLE_SQL_PARSER + #ifdef POCO_HAVE_CPP17_COMPILER + #define POCO_DATA_ENABLE_SQL_PARSER + #endif +#endif + #endif // Foundation_Config_INCLUDED diff --git a/Foundation/include/Poco/LinearHashTable.h b/Foundation/include/Poco/LinearHashTable.h index 7883387ad..5d7c1f856 100644 --- a/Foundation/include/Poco/LinearHashTable.h +++ b/Foundation/include/Poco/LinearHashTable.h @@ -23,7 +23,6 @@ #include #include #include -#include #include @@ -67,9 +66,15 @@ public: typedef typename Bucket::iterator BucketIterator; typedef typename BucketVec::iterator BucketVecIterator; - class ConstIterator: public std::iterator + class ConstIterator { public: + using iterator_category = std::forward_iterator_tag; + using value_type = Value; + using difference_type = ptrdiff_t; + using pointer = Value*; + using reference = Value&; + ConstIterator(): _initialized(false) { } diff --git a/Foundation/testsuite/src/LinearHashTableTest.cpp b/Foundation/testsuite/src/LinearHashTableTest.cpp index 5ad7a87ff..1ac9af36c 100644 --- a/Foundation/testsuite/src/LinearHashTableTest.cpp +++ b/Foundation/testsuite/src/LinearHashTableTest.cpp @@ -245,7 +245,7 @@ void LinearHashTableTest::testPerformanceInt() sw.start(); for (int i = 0; i < N; ++i) { - s.find(i); + auto it = s.find(i); } sw.stop(); std::cout << "Find set: " << sw.elapsedSeconds() << std::endl; @@ -322,7 +322,7 @@ void LinearHashTableTest::testPerformanceStr() sw.start(); for (int i = 0; i < N; ++i) { - s.find(values[i]); + auto it = s.find(values[i]); } sw.stop(); std::cout << "Find set: " << sw.elapsedSeconds() << std::endl; From e174be8660acd8404fa1040515c5179bf28c20e4 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Sun, 29 Oct 2023 15:03:26 +0100 Subject: [PATCH 150/395] feat(SQLParser): add POCO::Data::SQLParser #4230 --- Data/ODBC/testsuite/src/ODBCSQLServerTest.h | 3 + Data/ODBC/testsuite/src/ODBCTest.h | 2 +- Data/include/Poco/Data/SQLParser.h | 41 + Data/src/sql-parser/LICENSE | 21 + Data/src/sql-parser/Makefile | 164 + Data/src/sql-parser/README.md | 63 + Data/src/sql-parser/benchmark/README.md | 14 + Data/src/sql-parser/benchmark/benchmark.cpp | 28 + .../sql-parser/benchmark/benchmark_utils.cpp | 44 + .../sql-parser/benchmark/benchmark_utils.h | 41 + .../sql-parser/benchmark/parser_benchmark.cpp | 87 + Data/src/sql-parser/benchmark/queries.cpp | 47 + Data/src/sql-parser/benchmark/queries.h | 56 + Data/src/sql-parser/src/SQLParser.cpp | 74 + Data/src/sql-parser/src/SQLParser.h | 35 + Data/src/sql-parser/src/SQLParserResult.cpp | 87 + Data/src/sql-parser/src/SQLParserResult.h | 95 + Data/src/sql-parser/src/parser/.gitignore | 2 + Data/src/sql-parser/src/parser/Makefile | 39 + .../sql-parser/src/parser/bison_parser.cpp | 5725 +++++++++++++++++ Data/src/sql-parser/src/parser/bison_parser.h | 370 ++ Data/src/sql-parser/src/parser/bison_parser.y | 1334 ++++ Data/src/sql-parser/src/parser/flex_lexer.cpp | 5564 ++++++++++++++++ Data/src/sql-parser/src/parser/flex_lexer.h | 742 +++ Data/src/sql-parser/src/parser/flex_lexer.l | 292 + .../src/parser/keywordlist_generator.py | 46 + .../sql-parser/src/parser/parser_typedef.h | 33 + .../sql-parser/src/parser/sql_keywords.txt | 163 + Data/src/sql-parser/src/sql/AlterStatement.h | 40 + Data/src/sql-parser/src/sql/ColumnType.h | 43 + .../sql-parser/src/sql/CreateStatement.cpp | 70 + Data/src/sql-parser/src/sql/CreateStatement.h | 86 + Data/src/sql-parser/src/sql/DeleteStatement.h | 23 + Data/src/sql-parser/src/sql/DropStatement.h | 25 + .../src/sql-parser/src/sql/ExecuteStatement.h | 20 + Data/src/sql-parser/src/sql/ExportStatement.h | 24 + Data/src/sql-parser/src/sql/Expr.cpp | 315 + Data/src/sql-parser/src/sql/Expr.h | 237 + Data/src/sql-parser/src/sql/ImportStatement.h | 28 + Data/src/sql-parser/src/sql/InsertStatement.h | 26 + .../sql-parser/src/sql/PrepareStatement.cpp | 12 + .../src/sql-parser/src/sql/PrepareStatement.h | 22 + Data/src/sql-parser/src/sql/SQLStatement.cpp | 24 + Data/src/sql-parser/src/sql/SQLStatement.h | 51 + Data/src/sql-parser/src/sql/SelectStatement.h | 113 + Data/src/sql-parser/src/sql/ShowStatement.h | 23 + Data/src/sql-parser/src/sql/Table.h | 68 + .../sql-parser/src/sql/TransactionStatement.h | 21 + Data/src/sql-parser/src/sql/UpdateStatement.h | 27 + Data/src/sql-parser/src/sql/statements.cpp | 393 ++ Data/src/sql-parser/src/sql/statements.h | 18 + Data/src/sql-parser/src/sqlparser_win.h | 18 + Data/src/sql-parser/src/util/sqlhelper.cpp | 497 ++ Data/src/sql-parser/src/util/sqlhelper.h | 41 + .../sql-parser/test/auto_query_file_test.cpp | 97 + Data/src/sql-parser/test/prepare_tests.cpp | 84 + .../sql-parser/test/queries/queries-bad.sql | 62 + .../sql-parser/test/queries/queries-good.sql | 110 + Data/src/sql-parser/test/queries/tpc-h-01.sql | 9 + Data/src/sql-parser/test/queries/tpc-h-02.sql | 10 + Data/src/sql-parser/test/queries/tpc-h-03.sql | 7 + Data/src/sql-parser/test/queries/tpc-h-04.sql | 6 + Data/src/sql-parser/test/queries/tpc-h-05.sql | 9 + Data/src/sql-parser/test/queries/tpc-h-06.sql | 5 + Data/src/sql-parser/test/queries/tpc-h-07.sql | 11 + Data/src/sql-parser/test/queries/tpc-h-08.sql | 10 + Data/src/sql-parser/test/queries/tpc-h-09.sql | 10 + Data/src/sql-parser/test/queries/tpc-h-10.sql | 9 + Data/src/sql-parser/test/queries/tpc-h-11.sql | 10 + Data/src/sql-parser/test/queries/tpc-h-12.sql | 10 + Data/src/sql-parser/test/queries/tpc-h-13.sql | 8 + Data/src/sql-parser/test/queries/tpc-h-14.sql | 5 + Data/src/sql-parser/test/queries/tpc-h-15.sql | 15 + Data/src/sql-parser/test/queries/tpc-h-16.sql | 9 + Data/src/sql-parser/test/queries/tpc-h-17.sql | 4 + Data/src/sql-parser/test/queries/tpc-h-18.sql | 7 + Data/src/sql-parser/test/queries/tpc-h-19.sql | 9 + Data/src/sql-parser/test/queries/tpc-h-20.sql | 8 + Data/src/sql-parser/test/queries/tpc-h-21.sql | 11 + Data/src/sql-parser/test/queries/tpc-h-22.sql | 9 + Data/src/sql-parser/test/select_tests.cpp | 1138 ++++ Data/src/sql-parser/test/sql_asserts.h | 19 + Data/src/sql-parser/test/sql_parser.cpp | 44 + Data/src/sql-parser/test/sql_tests.cpp | 679 ++ Data/src/sql-parser/test/test.sh | 95 + .../test/thirdparty/microtest/microtest.h | 199 + Data/src/sql-parser/test/tpc_h_tests.cpp | 111 + Data/testsuite/src/DataTestSuite.cpp | 6 + Data/testsuite/src/SQLParserTest.cpp | 86 + Data/testsuite/src/SQLParserTest.h | 44 + 90 files changed, 20441 insertions(+), 1 deletion(-) create mode 100644 Data/include/Poco/Data/SQLParser.h create mode 100644 Data/src/sql-parser/LICENSE create mode 100644 Data/src/sql-parser/Makefile create mode 100644 Data/src/sql-parser/README.md create mode 100644 Data/src/sql-parser/benchmark/README.md create mode 100644 Data/src/sql-parser/benchmark/benchmark.cpp create mode 100644 Data/src/sql-parser/benchmark/benchmark_utils.cpp create mode 100644 Data/src/sql-parser/benchmark/benchmark_utils.h create mode 100644 Data/src/sql-parser/benchmark/parser_benchmark.cpp create mode 100644 Data/src/sql-parser/benchmark/queries.cpp create mode 100644 Data/src/sql-parser/benchmark/queries.h create mode 100644 Data/src/sql-parser/src/SQLParser.cpp create mode 100644 Data/src/sql-parser/src/SQLParser.h create mode 100644 Data/src/sql-parser/src/SQLParserResult.cpp create mode 100644 Data/src/sql-parser/src/SQLParserResult.h create mode 100644 Data/src/sql-parser/src/parser/.gitignore create mode 100644 Data/src/sql-parser/src/parser/Makefile create mode 100644 Data/src/sql-parser/src/parser/bison_parser.cpp create mode 100644 Data/src/sql-parser/src/parser/bison_parser.h create mode 100644 Data/src/sql-parser/src/parser/bison_parser.y create mode 100644 Data/src/sql-parser/src/parser/flex_lexer.cpp create mode 100644 Data/src/sql-parser/src/parser/flex_lexer.h create mode 100644 Data/src/sql-parser/src/parser/flex_lexer.l create mode 100644 Data/src/sql-parser/src/parser/keywordlist_generator.py create mode 100644 Data/src/sql-parser/src/parser/parser_typedef.h create mode 100644 Data/src/sql-parser/src/parser/sql_keywords.txt create mode 100644 Data/src/sql-parser/src/sql/AlterStatement.h create mode 100644 Data/src/sql-parser/src/sql/ColumnType.h create mode 100644 Data/src/sql-parser/src/sql/CreateStatement.cpp create mode 100644 Data/src/sql-parser/src/sql/CreateStatement.h create mode 100644 Data/src/sql-parser/src/sql/DeleteStatement.h create mode 100644 Data/src/sql-parser/src/sql/DropStatement.h create mode 100644 Data/src/sql-parser/src/sql/ExecuteStatement.h create mode 100644 Data/src/sql-parser/src/sql/ExportStatement.h create mode 100644 Data/src/sql-parser/src/sql/Expr.cpp create mode 100644 Data/src/sql-parser/src/sql/Expr.h create mode 100644 Data/src/sql-parser/src/sql/ImportStatement.h create mode 100644 Data/src/sql-parser/src/sql/InsertStatement.h create mode 100644 Data/src/sql-parser/src/sql/PrepareStatement.cpp create mode 100644 Data/src/sql-parser/src/sql/PrepareStatement.h create mode 100644 Data/src/sql-parser/src/sql/SQLStatement.cpp create mode 100644 Data/src/sql-parser/src/sql/SQLStatement.h create mode 100644 Data/src/sql-parser/src/sql/SelectStatement.h create mode 100644 Data/src/sql-parser/src/sql/ShowStatement.h create mode 100644 Data/src/sql-parser/src/sql/Table.h create mode 100644 Data/src/sql-parser/src/sql/TransactionStatement.h create mode 100644 Data/src/sql-parser/src/sql/UpdateStatement.h create mode 100644 Data/src/sql-parser/src/sql/statements.cpp create mode 100644 Data/src/sql-parser/src/sql/statements.h create mode 100644 Data/src/sql-parser/src/sqlparser_win.h create mode 100644 Data/src/sql-parser/src/util/sqlhelper.cpp create mode 100644 Data/src/sql-parser/src/util/sqlhelper.h create mode 100644 Data/src/sql-parser/test/auto_query_file_test.cpp create mode 100644 Data/src/sql-parser/test/prepare_tests.cpp create mode 100644 Data/src/sql-parser/test/queries/queries-bad.sql create mode 100644 Data/src/sql-parser/test/queries/queries-good.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-01.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-02.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-03.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-04.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-05.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-06.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-07.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-08.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-09.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-10.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-11.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-12.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-13.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-14.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-15.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-16.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-17.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-18.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-19.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-20.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-21.sql create mode 100644 Data/src/sql-parser/test/queries/tpc-h-22.sql create mode 100644 Data/src/sql-parser/test/select_tests.cpp create mode 100644 Data/src/sql-parser/test/sql_asserts.h create mode 100644 Data/src/sql-parser/test/sql_parser.cpp create mode 100644 Data/src/sql-parser/test/sql_tests.cpp create mode 100644 Data/src/sql-parser/test/test.sh create mode 100644 Data/src/sql-parser/test/thirdparty/microtest/microtest.h create mode 100644 Data/src/sql-parser/test/tpc_h_tests.cpp create mode 100644 Data/testsuite/src/SQLParserTest.cpp create mode 100644 Data/testsuite/src/SQLParserTest.h diff --git a/Data/ODBC/testsuite/src/ODBCSQLServerTest.h b/Data/ODBC/testsuite/src/ODBCSQLServerTest.h index cb20f8449..c52319296 100644 --- a/Data/ODBC/testsuite/src/ODBCSQLServerTest.h +++ b/Data/ODBC/testsuite/src/ODBCSQLServerTest.h @@ -34,6 +34,9 @@ class ODBCSQLServerTest: public ODBCTest /// SQL Server | 10.00.22621.1992 | 16.0.1000.6 (64-bit) | Windows 11 /// ODBC Driver 17 for SQL Server | 2017.1710.03.01 | 16.0.1000.6 (64-bit) | Windows 11 /// ODBC Driver 18 for SQL Server | 2018.183.01.01 | 16.0.1000.6 (64-bit) | Windows 11 + /// + /// Drivers download (x86, x64, ARM64): + /// https://learn.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-ver16 { public: ODBCSQLServerTest(const std::string& name); diff --git a/Data/ODBC/testsuite/src/ODBCTest.h b/Data/ODBC/testsuite/src/ODBCTest.h index efa5cc5a2..31a7d1ade 100644 --- a/Data/ODBC/testsuite/src/ODBCTest.h +++ b/Data/ODBC/testsuite/src/ODBCTest.h @@ -23,7 +23,7 @@ #include "SQLExecutor.h" -#define POCO_ODBC_TEST_DATABASE_SERVER "10.211.55.5"//"localhost" +#define POCO_ODBC_TEST_DATABASE_SERVER "localhost" class ODBCTest: public CppUnit::TestCase diff --git a/Data/include/Poco/Data/SQLParser.h b/Data/include/Poco/Data/SQLParser.h new file mode 100644 index 000000000..b2c0287f4 --- /dev/null +++ b/Data/include/Poco/Data/SQLParser.h @@ -0,0 +1,41 @@ +// +// SQLParser.h +// +// Library: Data +// Package: SQLParser +// Module: SQLParser +// +// Forward header for the SQLParser class. +// +// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef Data_SQLParser_INCLUDED +#define Data_SQLParser_INCLUDED + +#include "Poco/Config.h" + + +#ifdef POCO_DATA_ENABLE_SQL_PARSER + + +#include "sql-parser/src/SQLParser.h" +#include "sql-parser/src/SQLParserResult.h" +#include "sql-parser/src/util/sqlhelper.h" + + +namespace Poco { + +namespace Data = hsql; + +} // namespace Poco + + +#endif // POCO_DATA_ENABLE_SQL_PARSER + + +#endif // Data_SQLParser_INCLUDED diff --git a/Data/src/sql-parser/LICENSE b/Data/src/sql-parser/LICENSE new file mode 100644 index 000000000..92b3a4284 --- /dev/null +++ b/Data/src/sql-parser/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2012-2017 Hasso-Plattner-Institut + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Data/src/sql-parser/Makefile b/Data/src/sql-parser/Makefile new file mode 100644 index 000000000..14efbd191 --- /dev/null +++ b/Data/src/sql-parser/Makefile @@ -0,0 +1,164 @@ +all: library + +####################################### +############# Directories ############# +####################################### +BIN = bin +SRC = src +SRCPARSER = src/parser + +INSTALL = /usr/local + +###################################### +############ Compile Mode ############ +###################################### +# Set compile mode to -g or -O3. +# Debug mode: make mode=debug + +mode ?= release +MODE_LOG = "" +OPT_FLAG = +ifeq ($(mode), debug) + OPT_FLAG = -g + MODE_LOG = "Building in \033[1;31mdebug\033[0m mode" +else + OPT_FLAG = -O3 + MODE_LOG = "Building in \033[0;32mrelease\033[0m mode ('make mode=debug' for debug mode)" +endif + +GMAKE = make mode=$(mode) + + + +####################################### +############### Library ############### +####################################### +NAME := sqlparser +PARSER_CPP = $(SRCPARSER)/bison_parser.cpp $(SRCPARSER)/flex_lexer.cpp +PARSER_H = $(SRCPARSER)/bison_parser.h $(SRCPARSER)/flex_lexer.h +LIB_CFLAGS = -std=c++17 $(OPT_FLAG) + +relaxed_build ?= "off" +ifeq ($(relaxed_build), on) + $(warning $(NAME) will be built with most compiler warnings deactivated. This is fine if you want to test $(NAME) but will become an issue when you want to contribute code.) +else + LIB_CLFAGS += -Wall -Werror +endif + +static ?= no +ifeq ($(static), yes) + LIB_BUILD = lib$(NAME).a + LIBLINKER = $(AR) + LIB_LFLAGS = rs +else + LIB_BUILD = lib$(NAME).so + LIBLINKER = $(CXX) + LIB_CFLAGS += -fPIC + LIB_LFLAGS = -shared -o +endif +LIB_CPP = $(sort $(shell find $(SRC) -name '*.cpp' -not -path "$(SRCPARSER)/*") $(PARSER_CPP)) +LIB_H = $(shell find $(SRC) -name '*.h' -not -path "$(SRCPARSER)/*") $(PARSER_H) +LIB_ALL = $(shell find $(SRC) -name '*.cpp' -not -path "$(SRCPARSER)/*") $(shell find $(SRC) -name '*.h' -not -path "$(SRCPARSER)/*") +LIB_OBJ = $(LIB_CPP:%.cpp=%.o) + +library: $(LIB_BUILD) + +$(LIB_BUILD): $(LIB_OBJ) + $(LIBLINKER) $(LIB_LFLAGS) $(LIB_BUILD) $(LIB_OBJ) + +$(SRCPARSER)/flex_lexer.o: $(SRCPARSER)/flex_lexer.cpp $(SRCPARSER)/bison_parser.cpp + $(CXX) $(LIB_CFLAGS) -c -o $@ $< -Wno-sign-compare -Wno-unneeded-internal-declaration -Wno-register + +%.o: %.cpp $(PARSER_CPP) $(LIB_H) + $(CXX) $(LIB_CFLAGS) -c -o $@ $< + +$(SRCPARSER)/bison_parser.cpp: $(SRCPARSER)/bison_parser.y + $(GMAKE) -C $(SRCPARSER)/ bison_parser.cpp + +$(SRCPARSER)/flex_lexer.cpp: $(SRCPARSER)/flex_lexer.l + $(GMAKE) -C $(SRCPARSER)/ flex_lexer.cpp + +$(SRCPARSER)/bison_parser.h: $(SRCPARSER)/bison_parser.cpp +$(SRCPARSER)/flex_lexer.h: $(SRCPARSER)/flex_lexer.cpp + +clean: + rm -f lib$(NAME).a lib$(NAME).so + rm -rf $(BIN) + find $(SRC) -type f -name '*.o' -delete + +cleanparser: + $(GMAKE) -C $(SRCPARSER)/ clean + +cleanall: clean cleanparser + +install: + cp $(LIB_BUILD) $(INSTALL)/lib/$(LIB_BUILD) + rm -rf $(INSTALL)/include/hsql + cp -r src $(INSTALL)/include/hsql + find $(INSTALL)/include/hsql -not -name '*.h' -type f | xargs rm + + + +####################################### +############## Benchmark ############## +####################################### +BM_BUILD = $(BIN)/benchmark +BM_CFLAGS = -std=c++17 -Wall -Isrc/ -L./ $(OPT_FLAG) +BM_PATH = benchmark +BM_CPP = $(shell find $(BM_PATH)/ -name '*.cpp') +BM_ALL = $(shell find $(BM_PATH)/ -name '*.cpp' -or -name '*.h') + +benchmark: $(BM_BUILD) + +run_benchmarks: benchmark + ./$(BM_BUILD) --benchmark_counters_tabular=true + # --benchmark_filter="abc + +save_benchmarks: benchmark + ./$(BM_BUILD) --benchmark_format=csv > benchmarks.csv + +$(BM_BUILD): $(BM_ALL) $(LIB_BUILD) + @mkdir -p $(BIN)/ + $(CXX) $(BM_CFLAGS) $(BM_CPP) -o $(BM_BUILD) -lbenchmark -lpthread -lsqlparser -lstdc++ -lstdc++fs + + + +######################################## +############ Test & Example ############ +######################################## +TEST_BUILD = $(BIN)/tests +TEST_CFLAGS = -std=c++1z -Wall -Werror -Isrc/ -Itest/ -L./ $(OPT_FLAG) +TEST_CPP = $(shell find test/ -name '*.cpp') +TEST_ALL = $(shell find test/ -name '*.cpp') $(shell find test/ -name '*.h') +EXAMPLE_SRC = $(shell find example/ -name '*.cpp') $(shell find example/ -name '*.h') + +test: $(TEST_BUILD) + bash test/test.sh + +$(TEST_BUILD): $(TEST_ALL) $(LIB_BUILD) + @mkdir -p $(BIN)/ + $(CXX) $(TEST_CFLAGS) $(TEST_CPP) -o $(TEST_BUILD) -lsqlparser -lstdc++ + +test_example: + $(GMAKE) -C example/ + LD_LIBRARY_PATH=./ \ + ./example/example "SELECT * FROM students WHERE name = 'Max Mustermann';" + +test_format: + @! astyle --options=astyle.options $(LIB_ALL) | grep -q "Formatted" + @! astyle --options=astyle.options $(TEST_ALL) | grep -q "Formatted" + + + +######################################## +################# Misc ################# +######################################## + +format: + astyle --options=astyle.options $(LIB_ALL) + astyle --options=astyle.options $(TEST_ALL) + astyle --options=astyle.options $(EXAMPLE_SRC) + +log_mode: + @echo $(MODE_LOG) + diff --git a/Data/src/sql-parser/README.md b/Data/src/sql-parser/README.md new file mode 100644 index 000000000..25a55d29d --- /dev/null +++ b/Data/src/sql-parser/README.md @@ -0,0 +1,63 @@ +C++ SQL Parser +========================= +[![Build Status](https://github.com/hyrise/sql-parser/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/hyrise/sql-parser/actions?query=branch%3Amaster) + + +This is a SQL Parser for C++. It parses the given SQL query into C++ objects. +It has been developed for integration in [Hyrise](https://github.com/hyrise/hyrise), but can be used perfectly well in other environments as well. + +In March 2015 we've also written a short paper outlining discussing some development details and the integration into our database Hyrise. You can find the paper [here](docs/technical_documentation.pdf). + + +## Usage + +**Note:** You can also find a detailed usage description [here](docs/basic-usage.md). + +To use the SQL parser in your own projects you simply have to follow these few steps. + + 1. Download the [latest release here](https://github.com/hyrise/sql-parser/releases) + 2. Compile the library `make` to create `libsqlparser.so` + 3. *(Optional, Recommended)* Run `make install` to copy the library to `/usr/local/lib/` + 4. Run the tests `make test` to make sure everything worked + 5. Include the `SQLParser.h` from `src/` (or from `/usr/local/lib/hsql/` if you installed it) and link the library in your project + 6. Take a look at the [example project here](https://github.com/hyrise/sql-parser/tree/master/example) + +```cpp +#include "hsql/SQLParser.h" + +/* ... */ + +{ + // Basic Usage Example + + const std::string query = "..."; + hsql::SQLParserResult result; + hsql::SQLParser::parse(query, &result); + + if (result.isValid() && result.size() > 0) { + const hsql::SQLStatement* statement = result.getStatement(0); + + if (statement->isType(hsql::kStmtSelect)) { + const auto* select = static_cast(statement); + /* ... */ + } + } +} +``` + +Quick Links: + + * [SQLParser.h](src/SQLParser.h) + * [SQLParserResult.h](src/SQLParserResult.h) + * [SelectStatement.h](src/sql/SelectStatement.h) + +## How to Contribute + +**[Developer Documentation](docs/)** + +We strongly encourage you to contribute to this project! If you want to contribute to this project there are several options. If you've noticed a bug or would like an improvement let us know by creating a [new issue](https://github.com/hyrise/sql-parser/issues). If you want to develop a new feature yourself or just improve the quality of the system, feel free to fork the reposistory and implement your changes. Open a pull request as soon as your done and we will look over it. If we think it's good then your pull request will be merged into this repository. + + +## License + +HYRISE sql-parser is licensed as open source after the MIT License which is declared in the LICENSE file of this project. diff --git a/Data/src/sql-parser/benchmark/README.md b/Data/src/sql-parser/benchmark/README.md new file mode 100644 index 000000000..6c038baa0 --- /dev/null +++ b/Data/src/sql-parser/benchmark/README.md @@ -0,0 +1,14 @@ +# Benchmark + +This directory contains the scripts to execute benchmarks of the parser. We use [Google Benchmark](https://github.com/google/benchmark) to define and run benchmarks. + +## Install Google Benchmark + +```bash +cmake -DCMAKE_BUILD_TYPE=Release + +make + +make install +``` + diff --git a/Data/src/sql-parser/benchmark/benchmark.cpp b/Data/src/sql-parser/benchmark/benchmark.cpp new file mode 100644 index 000000000..e1435504b --- /dev/null +++ b/Data/src/sql-parser/benchmark/benchmark.cpp @@ -0,0 +1,28 @@ +#include "benchmark/benchmark.h" + +#include "benchmark_utils.h" +#include "queries.h" + +int main(int argc, char** argv) { + // Create parse and tokenize benchmarks for TPC-H queries. + const auto tpch_queries = getTPCHQueries(); + for (const auto& query : tpch_queries) { + std::string p_name = query.first + "-parse"; + benchmark::RegisterBenchmark(p_name.c_str(), &BM_ParseBenchmark, query.second); + std::string t_name = query.first + "-tokenize"; + benchmark::RegisterBenchmark(t_name.c_str(), &BM_TokenizeBenchmark, query.second); + } + + // Create parse and tokenize benchmarks for all queries in sql_queries array. + for (unsigned i = 0; i < sql_queries.size(); ++i) { + const auto& query = sql_queries[i]; + std::string p_name = getQueryName(i) + "-parse"; + benchmark::RegisterBenchmark(p_name.c_str(), &BM_ParseBenchmark, query.second); + + std::string t_name = getQueryName(i) + "-tokenize"; + benchmark::RegisterBenchmark(t_name.c_str(), &BM_TokenizeBenchmark, query.second); + } + + benchmark::Initialize(&argc, argv); + benchmark::RunSpecifiedBenchmarks(); +} diff --git a/Data/src/sql-parser/benchmark/benchmark_utils.cpp b/Data/src/sql-parser/benchmark/benchmark_utils.cpp new file mode 100644 index 000000000..27fb66c4e --- /dev/null +++ b/Data/src/sql-parser/benchmark/benchmark_utils.cpp @@ -0,0 +1,44 @@ +#include "benchmark_utils.h" + +#include +#include + +#include "SQLParser.h" + +size_t getNumTokens(const std::string& query) { + std::vector tokens; + hsql::SQLParser::tokenize(query, &tokens); + return tokens.size(); +} + +void BM_TokenizeBenchmark(benchmark::State& st, const std::string& query) { + st.counters["num_tokens"] = getNumTokens(query); + st.counters["num_chars"] = query.size(); + + while (st.KeepRunning()) { + std::vector tokens(512); + hsql::SQLParser::tokenize(query, &tokens); + } +} + +void BM_ParseBenchmark(benchmark::State& st, const std::string& query) { + st.counters["num_tokens"] = getNumTokens(query); + st.counters["num_chars"] = query.size(); + + while (st.KeepRunning()) { + hsql::SQLParserResult result; + hsql::SQLParser::parse(query, &result); + if (!result.isValid()) { + std::cout << query << std::endl; + std::cout << result.errorMsg() << std::endl; + st.SkipWithError("Parsing failed!"); + } + } +} + +std::string readFileContents(const std::string& file_path) { + std::ifstream t(file_path.c_str()); + std::string text((std::istreambuf_iterator(t)), + std::istreambuf_iterator()); + return text; +} diff --git a/Data/src/sql-parser/benchmark/benchmark_utils.h b/Data/src/sql-parser/benchmark/benchmark_utils.h new file mode 100644 index 000000000..7eb54d809 --- /dev/null +++ b/Data/src/sql-parser/benchmark/benchmark_utils.h @@ -0,0 +1,41 @@ +#ifndef __BENCHMARK_UTILS_H__ +#define __BENCHMARK_UTILS_H__ + +#include "benchmark/benchmark.h" + +size_t getNumTokens(const std::string& query); + +void BM_TokenizeBenchmark(benchmark::State& st, const std::string& query); + +void BM_ParseBenchmark(benchmark::State& st, const std::string& query); + +std::string readFileContents(const std::string& file_path); + + + + +#define TIME_DIFF(end, start)\ + std::chrono::duration_cast>(end - start); + +#define NOW()\ + std::chrono::high_resolution_clock::now(); + +#define PARSE_QUERY_BENCHMARK(name, query)\ + static void name(benchmark::State& st) {\ + BM_ParseBenchmark(st, query);\ + }\ + BENCHMARK(name); + +#define TOKENIZE_QUERY_BENCHMARK(name, query)\ + static void name(benchmark::State& st) {\ + BM_TokenizeBenchmark(st, query);\ + }\ + BENCHMARK(name); + + +#define BENCHMARK_QUERY(test_name, query)\ + TOKENIZE_QUERY_BENCHMARK(test_name##Tokenize, query)\ + PARSE_QUERY_BENCHMARK(test_name##Parse, query) + + +#endif \ No newline at end of file diff --git a/Data/src/sql-parser/benchmark/parser_benchmark.cpp b/Data/src/sql-parser/benchmark/parser_benchmark.cpp new file mode 100644 index 000000000..47928f0a7 --- /dev/null +++ b/Data/src/sql-parser/benchmark/parser_benchmark.cpp @@ -0,0 +1,87 @@ + +#include +#include +#include "benchmark/benchmark.h" + +#include "SQLParser.h" +#include "parser/bison_parser.h" +#include "parser/flex_lexer.h" + +#include "benchmark_utils.h" + +// Benchmark the influence of increasing size of the query, while +// the number of tokens remains unchanged. +static void BM_CharacterCount(benchmark::State& st) { + const size_t querySize = st.range(0); + + // Base query has size of 18 characters. + std::string query = "SELECT %name% FROM test;"; + + const uint pad = querySize - 18; + const std::string filler = std::string(pad, 'a'); + query.replace(7, 6, filler); + + st.counters["num_tokens"] = getNumTokens(query); + st.counters["num_chars"] = query.size(); + while (st.KeepRunning()) { + hsql::SQLParserResult result; + hsql::SQLParser::parse(query, &result); + } +} +BENCHMARK(BM_CharacterCount) + ->RangeMultiplier(1 << 2) + ->Ranges({{1 << 5, 1 << 15}, + {5, 5}}); + +// Benchmark the influence of increasing number of tokens, while +// the number of characters remains unchanged. +static void BM_ConditionalTokens(benchmark::State& st) { + const size_t targetSize = st.range(0); + const size_t numTokens = st.range(1); + + // Base query contains 6 tokens. + std::string query = "SELECT * FROM test"; + + // Create conditional. + std::stringstream condStream; + size_t missingTokens = numTokens - 4; + if (missingTokens > 0) { + condStream << " WHERE a"; + missingTokens -= 2; + + while (missingTokens > 0) { + condStream << " AND a"; + missingTokens -= 2; + } + } + + query += condStream.str(); + + if (targetSize >= query.size()) { + const size_t pad = targetSize - query.size(); + const std::string filler = std::string(pad, 'a'); + query.replace(7, 1, filler); + + } else { + // Query can't be the same length as in the other benchmarks. + // Running this will result in unusable data. + fprintf(stderr, "Too many tokens. Query too long for benchmark char limit (%lu > %lu).\n", + query.size(), targetSize); + return; + } + + st.counters["num_tokens"] = getNumTokens(query); + st.counters["num_chars"] = query.size(); + while (st.KeepRunning()) { + hsql::SQLParserResult result; + hsql::SQLParser::parse(query, &result); + if (!result.isValid()) st.SkipWithError("Parsing failed!"); + } +} +BENCHMARK(BM_ConditionalTokens) + ->RangeMultiplier(1 << 2) + ->Ranges({{1 << 14, 1 << 14}, + {1 << 2, 1 << 11}}); + + + diff --git a/Data/src/sql-parser/benchmark/queries.cpp b/Data/src/sql-parser/benchmark/queries.cpp new file mode 100644 index 000000000..f26187d4d --- /dev/null +++ b/Data/src/sql-parser/benchmark/queries.cpp @@ -0,0 +1,47 @@ +#include "queries.h" + +#include +#include +#include +#include + +#include "benchmark_utils.h" + +namespace filesystem = std::filesystem; + +std::string getQueryName(unsigned i) { + if (sql_queries[i].first.empty()) { + std::string name = "#" + std::to_string(i + 1); + return name; + } + return std::string("") + sql_queries[i].first; +} + +std::vector getQueriesFromDirectory(const std::string& dir_path) { + std::regex query_file_regex("\\.sql$"); + std::vector files; + + for (auto& entry : filesystem::directory_iterator(dir_path)) { + if (filesystem::is_regular_file(entry)) { + std::string path_str = filesystem::path(entry); + + if (std::regex_search(path_str, query_file_regex)) { + files.push_back(path_str); + } + } + } + + std::sort(files.begin(), files.end()); + + std::vector queries; + for (const std::string& file_path : files) { + const filesystem::path p(file_path); + const std::string query = readFileContents(file_path); + queries.emplace_back(p.filename(), query); + } + return queries; +} + +std::vector getTPCHQueries() { + return getQueriesFromDirectory("test/queries/"); +} diff --git a/Data/src/sql-parser/benchmark/queries.h b/Data/src/sql-parser/benchmark/queries.h new file mode 100644 index 000000000..357bee61f --- /dev/null +++ b/Data/src/sql-parser/benchmark/queries.h @@ -0,0 +1,56 @@ +#ifndef __QUERIES_H__ +#define __QUERIES_H__ + +#include +#include + +typedef std::pair SQLQuery; + +// name, query +static std::vector sql_queries = { + {"Q1", "SELECT * FROM test;"}, + {"Q2", "SELECT a, b AS address FROM (SELECT * FROM test WHERE c < 100 AND b > 3) t1 WHERE a < 10 AND b < 100;"}, + {"Q3", "SELECT \"left\".a, \"left\".b, \"right\".a, \"right\".b FROM table_a AS \"left\" JOIN table_b AS \"right\" ON \"left\".a = \"right\".a;"}, + {"Q4", "" +"SELECT" +" l_orderkey," +" SUM(l_extendedprice * (1 - l_discount)) AS revenue," +" o_orderdate," +" o_shippriority" +" FROM" +" customer," +" orders," +" lineitem" +" WHERE" +" c_mktsegment = '%s'" +" and c_custkey = o_custkey" +" and l_orderkey = o_orderkey" +" and o_orderdate < '%s'" +" and l_shipdate > '%s'" +" GROUP BY" +" l_orderkey," +" o_orderdate," +" o_shippriority" +" ORDER BY" +" revenue DESC," +" o_orderdate;" +}, + + {"LongSelectList26", "SELECT a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z FROM test;"}, + {"LongSelectElement26", "SELECT abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxy FROM test;"}, + {"LongSelectList52", "SELECT a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z FROM test;"}, + {"LongSelectElement52", "SELECT abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxy FROM test;"}, + {"TwoSelects", "SELECT * FROM test; SELECT age, street AS address FROM data;"}, + {"ExecuteNoParams", "EXECUTE procedure;"}, + {"Execute2Params", "EXECUTE procedure(11, 'test');"}, + {"Execute10Params", "EXECUTE procedure(11, 'test', 5.6, 4.2, 'abc', 6, 7, 8, 9, 10000);"}, + // {"name", "query"}, +}; + +std::string getQueryName(unsigned i); + +std::vector getQueriesFromDirectory(const std::string& dir_path); + +std::vector getTPCHQueries(); + +#endif diff --git a/Data/src/sql-parser/src/SQLParser.cpp b/Data/src/sql-parser/src/SQLParser.cpp new file mode 100644 index 000000000..b3bf0dfe1 --- /dev/null +++ b/Data/src/sql-parser/src/SQLParser.cpp @@ -0,0 +1,74 @@ + +#include "SQLParser.h" +#include +#include +#include "parser/bison_parser.h" +#include "parser/flex_lexer.h" + +namespace hsql { + +SQLParser::SQLParser() { fprintf(stderr, "SQLParser only has static methods atm! Do not initialize!\n"); } + +// static +bool SQLParser::parse(const std::string& sql, SQLParserResult* result) { + yyscan_t scanner; + YY_BUFFER_STATE state; + + if (hsql_lex_init(&scanner)) { + // Couldn't initialize the lexer. + fprintf(stderr, "SQLParser: Error when initializing lexer!\n"); + return false; + } + const char* text = sql.c_str(); + state = hsql__scan_string(text, scanner); + + // Parse the tokens. + // If parsing fails, the result will contain an error object. + int ret = hsql_parse(result, scanner); + bool success = (ret == 0); + result->setIsValid(success); + + hsql__delete_buffer(state, scanner); + hsql_lex_destroy(scanner); + + return true; +} + +// static +bool SQLParser::parseSQLString(const char* sql, SQLParserResult* result) { return parse(sql, result); } + +bool SQLParser::parseSQLString(const std::string& sql, SQLParserResult* result) { return parse(sql, result); } + +// static +bool SQLParser::tokenize(const std::string& sql, std::vector* tokens) { + // Initialize the scanner. + yyscan_t scanner; + if (hsql_lex_init(&scanner)) { + fprintf(stderr, "SQLParser: Error when initializing lexer!\n"); + return false; + } + + YY_BUFFER_STATE state; + state = hsql__scan_string(sql.c_str(), scanner); + + YYSTYPE yylval; + YYLTYPE yylloc; + + // Step through the string until EOF is read. + // Note: hsql_lex returns int, but we know that its range is within 16 bit. + int16_t token = hsql_lex(&yylval, &yylloc, scanner); + while (token != 0) { + tokens->push_back(token); + token = hsql_lex(&yylval, &yylloc, scanner); + + if (token == SQL_IDENTIFIER || token == SQL_STRING) { + free(yylval.sval); + } + } + + hsql__delete_buffer(state, scanner); + hsql_lex_destroy(scanner); + return true; +} + +} // namespace hsql diff --git a/Data/src/sql-parser/src/SQLParser.h b/Data/src/sql-parser/src/SQLParser.h new file mode 100644 index 000000000..681136d0a --- /dev/null +++ b/Data/src/sql-parser/src/SQLParser.h @@ -0,0 +1,35 @@ +#ifndef SQLPARSER_SQLPARSER_H +#define SQLPARSER_SQLPARSER_H + +#include "SQLParserResult.h" +#include "sql/statements.h" + +namespace hsql { + +// Static methods used to parse SQL strings. +class SQLParser_API SQLParser { + public: + // Parses a given constant character SQL string into the result object. + // Returns true if the lexer and parser could run without internal errors. + // This does NOT mean that the SQL string was valid SQL. To check that + // you need to check result->isValid(); + static bool parse(const std::string& sql, SQLParserResult* result); + + // Run tokenization on the given string and store the tokens in the output vector. + static bool tokenize(const std::string& sql, std::vector* tokens); + + // Deprecated. + // Old method to parse SQL strings. Replaced by parse(). + static bool parseSQLString(const char* sql, SQLParserResult* result); + + // Deprecated. + // Old method to parse SQL strings. Replaced by parse(). + static bool parseSQLString(const std::string& sql, SQLParserResult* result); + + private: + SQLParser(); +}; + +} // namespace hsql + +#endif \ No newline at end of file diff --git a/Data/src/sql-parser/src/SQLParserResult.cpp b/Data/src/sql-parser/src/SQLParserResult.cpp new file mode 100644 index 000000000..9cb0adc7a --- /dev/null +++ b/Data/src/sql-parser/src/SQLParserResult.cpp @@ -0,0 +1,87 @@ + +#include "SQLParserResult.h" +#include + +namespace hsql { + +SQLParserResult::SQLParserResult() : isValid_(false), errorMsg_(nullptr) +{ + statements_ = new std::vector; + parameters_ = new std::vector; +} + +SQLParserResult::SQLParserResult(SQLStatement* stmt) : isValid_(false), errorMsg_(nullptr) { addStatement(stmt); } + +// Move constructor. +SQLParserResult::SQLParserResult(SQLParserResult&& moved) { *this = std::forward(moved); } + +SQLParserResult& SQLParserResult::operator=(SQLParserResult&& moved) { + isValid_ = moved.isValid_; + errorMsg_ = moved.errorMsg_; + statements_ = std::move(moved.statements_); + + moved.errorMsg_ = nullptr; + moved.reset(); + return *this; +} + +SQLParserResult::~SQLParserResult() { reset(); } + +void SQLParserResult::addStatement(SQLStatement* stmt) { statements_->push_back(stmt); } + +const SQLStatement* SQLParserResult::getStatement(size_t index) const { return (*statements_)[index]; } + +SQLStatement* SQLParserResult::getMutableStatement(size_t index) { return (*statements_)[index]; } + +size_t SQLParserResult::size() const { return statements_->size(); } + +bool SQLParserResult::isValid() const { return isValid_; } + +const char* SQLParserResult::errorMsg() const { return errorMsg_; } + +int SQLParserResult::errorLine() const { return errorLine_; } + +int SQLParserResult::errorColumn() const { return errorColumn_; } + +void SQLParserResult::setIsValid(bool isValid) { isValid_ = isValid; } + +void SQLParserResult::setErrorDetails(char* errorMsg, int errorLine, int errorColumn) { + errorMsg_ = errorMsg; + errorLine_ = errorLine; + errorColumn_ = errorColumn; +} + +const std::vector& SQLParserResult::getStatements() const { return *statements_; } + +std::vector SQLParserResult::releaseStatements() { + std::vector copy = *statements_; + + statements_->clear(); + + return copy; +} + +void SQLParserResult::reset() { + for (SQLStatement* statement : *statements_) { + delete statement; + } + delete statements_; + delete parameters_; + + isValid_ = false; + + free(errorMsg_); + errorMsg_ = nullptr; + errorLine_ = -1; + errorColumn_ = -1; +} + +// Does NOT take ownership. +void SQLParserResult::addParameter(Expr* parameter) { + parameters_->push_back(parameter); + std::sort(parameters_->begin(), parameters_->end(), [](const Expr* a, const Expr* b) { return a->ival < b->ival; }); +} + +const std::vector& SQLParserResult::parameters() { return *parameters_; } + +} // namespace hsql diff --git a/Data/src/sql-parser/src/SQLParserResult.h b/Data/src/sql-parser/src/SQLParserResult.h new file mode 100644 index 000000000..a7cb65b13 --- /dev/null +++ b/Data/src/sql-parser/src/SQLParserResult.h @@ -0,0 +1,95 @@ +#ifndef SQLPARSER_SQLPARSER_RESULT_H +#define SQLPARSER_SQLPARSER_RESULT_H + +#include "sqlparser_win.h" +#include "sql/SQLStatement.h" + +namespace hsql { +// Represents the result of the SQLParser. +// If parsing was successful it contains a list of SQLStatement. +class SQLParser_API SQLParserResult { + public: + // Initialize with empty statement list. + SQLParserResult(); + + // Initialize with a single statement. + // Takes ownership of the statement. + SQLParserResult(SQLStatement* stmt); + + // Move constructor. + SQLParserResult(SQLParserResult&& moved); + SQLParserResult& operator=(SQLParserResult&& moved); + + // Deletes all statements in the result. + virtual ~SQLParserResult(); + + // Set whether parsing was successful. + void setIsValid(bool isValid); + + // Returns true if parsing was successful. + bool isValid() const; + + // Returns the number of statements in the result. + size_t size() const; + + // Set the details of the error, if available. + // Takes ownership of errorMsg. + void setErrorDetails(char* errorMsg, int errorLine, int errorColumn); + + // Returns the error message, if an error occurred. + const char* errorMsg() const; + + // Returns the line number of the occurrance of the error in the query. + int errorLine() const; + + // Returns the column number of the occurrance of the error in the query. + int errorColumn() const; + + // Adds a statement to the result list of statements. + // SQLParserResult takes ownership of the statement. + void addStatement(SQLStatement* stmt); + + // Gets the SQL statement with the given index. + const SQLStatement* getStatement(size_t index) const; + + // Gets the non const SQL statement with the given index. + SQLStatement* getMutableStatement(size_t index); + + // Get the list of all statements. + const std::vector& getStatements() const; + + // Returns a copy of the list of all statements in this result. + // Removes them from this result. + std::vector releaseStatements(); + + // Deletes all statements and other data within the result. + void reset(); + + // Does NOT take ownership. + void addParameter(Expr* parameter); + + const std::vector& parameters(); + + private: + // List of statements within the result. + std::vector* statements_; + + // Flag indicating the parsing was successful. + bool isValid_; + + // Error message, if an error occurred. + char* errorMsg_; + + // Line number of the occurrance of the error in the query. + int errorLine_; + + // Column number of the occurrance of the error in the query. + int errorColumn_; + + // Does NOT have ownership. + std::vector* parameters_; +}; + +} // namespace hsql + +#endif // SQLPARSER_SQLPARSER_RESULT_H \ No newline at end of file diff --git a/Data/src/sql-parser/src/parser/.gitignore b/Data/src/sql-parser/src/parser/.gitignore new file mode 100644 index 000000000..1c0c56138 --- /dev/null +++ b/Data/src/sql-parser/src/parser/.gitignore @@ -0,0 +1,2 @@ +*.output +conflict_test.cpp \ No newline at end of file diff --git a/Data/src/sql-parser/src/parser/Makefile b/Data/src/sql-parser/src/parser/Makefile new file mode 100644 index 000000000..1a9d70d6c --- /dev/null +++ b/Data/src/sql-parser/src/parser/Makefile @@ -0,0 +1,39 @@ +# bison's version is too old on OSX, allow user to pass in custom path +BISON?=bison +FLEX?=flex + +OS_TYPE=$(shell uname) +ifeq ($(OS_TYPE), Darwin) +BREW_PREFIX=$(shell brew --prefix) +BREW_INSTALLED=$(shell echo $(BREW_PREFIX) | wc -w | xargs) +ifeq ($(BREW_INSTALLED), 0) +$(error On macOS, Homebrew (see https://brew.sh) is required to install recent Bison and Flex versions) +endif +endif + +BISON_VERSION=$(shell $(BISON) --version | head -n 1 | grep -o '[0-9]\.[0-9]\+') +BISON_VERSION_SUPPORTED=$(shell awk -v a=$(BISON_VERSION) -v b="3.0" 'BEGIN { print (a >= b) ? 1 : 0 }') +ifneq ($(BISON_VERSION_SUPPORTED), 1) +$(error Bison version $(BISON_VERSION) not supported. If you are using macOS, `bison` uses the system default instead of the brew version. Run BISON=$(BREW_PREFIX)/opt/bison/bin/bison make) +endif + +FLEX_VERSION=$(shell $(FLEX) --version | head -n 1 | grep -o '[0-9]\.[0-9]\+') +FLEX_VERSION_SUPPORTED=$(shell awk -v a=$(FLEX_VERSION) -v b="2.6" 'BEGIN { print (a >= b) ? 1 : 0 }') +ifneq ($(FLEX_VERSION_SUPPORTED), 1) +$(error Flex version $(FLEX_VERSION) not supported. If you are using macOS, `flex` uses the system default instead of the brew version. Run FLEX=$(BREW_PREFIX)/opt/flex/bin/flex make) +endif + +all: bison_parser.cpp flex_lexer.cpp + +bison_parser.cpp: bison_parser.y + $(BISON) bison_parser.y --output=bison_parser.cpp --defines=bison_parser.h --verbose + +flex_lexer.cpp: flex_lexer.l + ! $(FLEX) flex_lexer.l 2>&1 | grep "warning" + +clean: + rm -f bison_parser.cpp flex_lexer.cpp bison_parser.h flex_lexer.h *.output + +# Tests if the parser builds correctly and doesn't contain conflicts. +test: + ! $(BISON) bison_parser.y -v --output=conflict_test.cpp 2>&1 | grep "conflict" >&2 diff --git a/Data/src/sql-parser/src/parser/bison_parser.cpp b/Data/src/sql-parser/src/parser/bison_parser.cpp new file mode 100644 index 000000000..7450cab84 --- /dev/null +++ b/Data/src/sql-parser/src/parser/bison_parser.cpp @@ -0,0 +1,5725 @@ +/* A Bison parser, made by GNU Bison 3.8.2. */ + +/* Bison implementation for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, + Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ + +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +#if defined(_WIN32) || defined(_WIN64) +#pragma warning(disable : 4996) +#pragma warning(disable : 4267) +#endif + +/* Identify Bison output, and Bison version. */ +#define YYBISON 30802 + +/* Bison version string. */ +#define YYBISON_VERSION "3.8.2" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 2 + +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + +/* Substitute the type names. */ +#define YYSTYPE HSQL_STYPE +#define YYLTYPE HSQL_LTYPE +/* Substitute the variable and function names. */ +#define yyparse hsql_parse +#define yylex hsql_lex +#define yyerror hsql_error +#define yydebug hsql_debug +#define yynerrs hsql_nerrs + +/* First part of user prologue. */ +#line 2 "bison_parser.y" + + // clang-format on + /** + * bison_parser.y + * defines bison_parser.h + * outputs bison_parser.c + * + * Grammar File Spec: http://dinosaur.compilertools.net/bison/bison_6.html + * + */ + /********************************* + ** Section 1: C Declarations + *********************************/ + +#include "bison_parser.h" +#include "flex_lexer.h" + +#include +#include + + using namespace hsql; + + int yyerror(YYLTYPE * llocp, SQLParserResult * result, yyscan_t scanner, const char* msg) { + result->setIsValid(false); + result->setErrorDetails(strdup(msg), llocp->first_line, llocp->first_column); + return 0; + } + // clang-format off + +#line 108 "bison_parser.cpp" + +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) +# else +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif +# ifndef YY_NULLPTR +# if defined __cplusplus +# if 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# else +# define YY_NULLPTR ((void*)0) +# endif +# endif + +#include "bison_parser.h" +/* Symbol kind. */ +enum yysymbol_kind_t +{ + YYSYMBOL_YYEMPTY = -2, + YYSYMBOL_YYEOF = 0, /* "end of file" */ + YYSYMBOL_YYerror = 1, /* error */ + YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ + YYSYMBOL_IDENTIFIER = 3, /* IDENTIFIER */ + YYSYMBOL_STRING = 4, /* STRING */ + YYSYMBOL_FLOATVAL = 5, /* FLOATVAL */ + YYSYMBOL_INTVAL = 6, /* INTVAL */ + YYSYMBOL_DEALLOCATE = 7, /* DEALLOCATE */ + YYSYMBOL_PARAMETERS = 8, /* PARAMETERS */ + YYSYMBOL_INTERSECT = 9, /* INTERSECT */ + YYSYMBOL_TEMPORARY = 10, /* TEMPORARY */ + YYSYMBOL_TIMESTAMP = 11, /* TIMESTAMP */ + YYSYMBOL_DISTINCT = 12, /* DISTINCT */ + YYSYMBOL_NVARCHAR = 13, /* NVARCHAR */ + YYSYMBOL_RESTRICT = 14, /* RESTRICT */ + YYSYMBOL_TRUNCATE = 15, /* TRUNCATE */ + YYSYMBOL_ANALYZE = 16, /* ANALYZE */ + YYSYMBOL_BETWEEN = 17, /* BETWEEN */ + YYSYMBOL_CASCADE = 18, /* CASCADE */ + YYSYMBOL_COLUMNS = 19, /* COLUMNS */ + YYSYMBOL_CONTROL = 20, /* CONTROL */ + YYSYMBOL_DEFAULT = 21, /* DEFAULT */ + YYSYMBOL_EXECUTE = 22, /* EXECUTE */ + YYSYMBOL_EXPLAIN = 23, /* EXPLAIN */ + YYSYMBOL_INTEGER = 24, /* INTEGER */ + YYSYMBOL_NATURAL = 25, /* NATURAL */ + YYSYMBOL_PREPARE = 26, /* PREPARE */ + YYSYMBOL_PRIMARY = 27, /* PRIMARY */ + YYSYMBOL_SCHEMAS = 28, /* SCHEMAS */ + YYSYMBOL_CHARACTER_VARYING = 29, /* CHARACTER_VARYING */ + YYSYMBOL_REAL = 30, /* REAL */ + YYSYMBOL_DECIMAL = 31, /* DECIMAL */ + YYSYMBOL_SMALLINT = 32, /* SMALLINT */ + YYSYMBOL_BIGINT = 33, /* BIGINT */ + YYSYMBOL_SPATIAL = 34, /* SPATIAL */ + YYSYMBOL_VARCHAR = 35, /* VARCHAR */ + YYSYMBOL_VIRTUAL = 36, /* VIRTUAL */ + YYSYMBOL_DESCRIBE = 37, /* DESCRIBE */ + YYSYMBOL_BEFORE = 38, /* BEFORE */ + YYSYMBOL_COLUMN = 39, /* COLUMN */ + YYSYMBOL_CREATE = 40, /* CREATE */ + YYSYMBOL_DELETE = 41, /* DELETE */ + YYSYMBOL_DIRECT = 42, /* DIRECT */ + YYSYMBOL_DOUBLE = 43, /* DOUBLE */ + YYSYMBOL_ESCAPE = 44, /* ESCAPE */ + YYSYMBOL_EXCEPT = 45, /* EXCEPT */ + YYSYMBOL_EXISTS = 46, /* EXISTS */ + YYSYMBOL_EXTRACT = 47, /* EXTRACT */ + YYSYMBOL_CAST = 48, /* CAST */ + YYSYMBOL_FORMAT = 49, /* FORMAT */ + YYSYMBOL_GLOBAL = 50, /* GLOBAL */ + YYSYMBOL_HAVING = 51, /* HAVING */ + YYSYMBOL_IMPORT = 52, /* IMPORT */ + YYSYMBOL_INSERT = 53, /* INSERT */ + YYSYMBOL_ISNULL = 54, /* ISNULL */ + YYSYMBOL_OFFSET = 55, /* OFFSET */ + YYSYMBOL_RENAME = 56, /* RENAME */ + YYSYMBOL_SCHEMA = 57, /* SCHEMA */ + YYSYMBOL_SELECT = 58, /* SELECT */ + YYSYMBOL_SORTED = 59, /* SORTED */ + YYSYMBOL_TABLES = 60, /* TABLES */ + YYSYMBOL_UNIQUE = 61, /* UNIQUE */ + YYSYMBOL_UNLOAD = 62, /* UNLOAD */ + YYSYMBOL_UPDATE = 63, /* UPDATE */ + YYSYMBOL_VALUES = 64, /* VALUES */ + YYSYMBOL_AFTER = 65, /* AFTER */ + YYSYMBOL_ALTER = 66, /* ALTER */ + YYSYMBOL_CROSS = 67, /* CROSS */ + YYSYMBOL_DELTA = 68, /* DELTA */ + YYSYMBOL_FLOAT = 69, /* FLOAT */ + YYSYMBOL_GROUP = 70, /* GROUP */ + YYSYMBOL_INDEX = 71, /* INDEX */ + YYSYMBOL_INNER = 72, /* INNER */ + YYSYMBOL_LIMIT = 73, /* LIMIT */ + YYSYMBOL_LOCAL = 74, /* LOCAL */ + YYSYMBOL_MERGE = 75, /* MERGE */ + YYSYMBOL_MINUS = 76, /* MINUS */ + YYSYMBOL_ORDER = 77, /* ORDER */ + YYSYMBOL_OVER = 78, /* OVER */ + YYSYMBOL_OUTER = 79, /* OUTER */ + YYSYMBOL_RIGHT = 80, /* RIGHT */ + YYSYMBOL_TABLE = 81, /* TABLE */ + YYSYMBOL_UNION = 82, /* UNION */ + YYSYMBOL_USING = 83, /* USING */ + YYSYMBOL_WHERE = 84, /* WHERE */ + YYSYMBOL_CALL = 85, /* CALL */ + YYSYMBOL_CASE = 86, /* CASE */ + YYSYMBOL_CHAR = 87, /* CHAR */ + YYSYMBOL_COPY = 88, /* COPY */ + YYSYMBOL_DATE = 89, /* DATE */ + YYSYMBOL_DATETIME = 90, /* DATETIME */ + YYSYMBOL_DESC = 91, /* DESC */ + YYSYMBOL_DROP = 92, /* DROP */ + YYSYMBOL_ELSE = 93, /* ELSE */ + YYSYMBOL_FILE = 94, /* FILE */ + YYSYMBOL_FROM = 95, /* FROM */ + YYSYMBOL_FULL = 96, /* FULL */ + YYSYMBOL_HASH = 97, /* HASH */ + YYSYMBOL_HINT = 98, /* HINT */ + YYSYMBOL_INTO = 99, /* INTO */ + YYSYMBOL_JOIN = 100, /* JOIN */ + YYSYMBOL_LEFT = 101, /* LEFT */ + YYSYMBOL_LIKE = 102, /* LIKE */ + YYSYMBOL_LOAD = 103, /* LOAD */ + YYSYMBOL_LONG = 104, /* LONG */ + YYSYMBOL_NULL = 105, /* NULL */ + YYSYMBOL_PARTITION = 106, /* PARTITION */ + YYSYMBOL_PLAN = 107, /* PLAN */ + YYSYMBOL_SHOW = 108, /* SHOW */ + YYSYMBOL_TEXT = 109, /* TEXT */ + YYSYMBOL_THEN = 110, /* THEN */ + YYSYMBOL_TIME = 111, /* TIME */ + YYSYMBOL_VIEW = 112, /* VIEW */ + YYSYMBOL_WHEN = 113, /* WHEN */ + YYSYMBOL_WITH = 114, /* WITH */ + YYSYMBOL_ADD = 115, /* ADD */ + YYSYMBOL_ALL = 116, /* ALL */ + YYSYMBOL_AND = 117, /* AND */ + YYSYMBOL_ASC = 118, /* ASC */ + YYSYMBOL_END = 119, /* END */ + YYSYMBOL_FOR = 120, /* FOR */ + YYSYMBOL_INT = 121, /* INT */ + YYSYMBOL_KEY = 122, /* KEY */ + YYSYMBOL_NOT = 123, /* NOT */ + YYSYMBOL_OFF = 124, /* OFF */ + YYSYMBOL_SET = 125, /* SET */ + YYSYMBOL_TOP = 126, /* TOP */ + YYSYMBOL_AS = 127, /* AS */ + YYSYMBOL_BY = 128, /* BY */ + YYSYMBOL_IF = 129, /* IF */ + YYSYMBOL_IN = 130, /* IN */ + YYSYMBOL_IS = 131, /* IS */ + YYSYMBOL_OF = 132, /* OF */ + YYSYMBOL_ON = 133, /* ON */ + YYSYMBOL_OR = 134, /* OR */ + YYSYMBOL_TO = 135, /* TO */ + YYSYMBOL_NO = 136, /* NO */ + YYSYMBOL_ARRAY = 137, /* ARRAY */ + YYSYMBOL_CONCAT = 138, /* CONCAT */ + YYSYMBOL_ILIKE = 139, /* ILIKE */ + YYSYMBOL_SECOND = 140, /* SECOND */ + YYSYMBOL_MINUTE = 141, /* MINUTE */ + YYSYMBOL_HOUR = 142, /* HOUR */ + YYSYMBOL_DAY = 143, /* DAY */ + YYSYMBOL_MONTH = 144, /* MONTH */ + YYSYMBOL_YEAR = 145, /* YEAR */ + YYSYMBOL_SECONDS = 146, /* SECONDS */ + YYSYMBOL_MINUTES = 147, /* MINUTES */ + YYSYMBOL_HOURS = 148, /* HOURS */ + YYSYMBOL_DAYS = 149, /* DAYS */ + YYSYMBOL_MONTHS = 150, /* MONTHS */ + YYSYMBOL_YEARS = 151, /* YEARS */ + YYSYMBOL_INTERVAL = 152, /* INTERVAL */ + YYSYMBOL_TRUE = 153, /* TRUE */ + YYSYMBOL_FALSE = 154, /* FALSE */ + YYSYMBOL_BOOLEAN = 155, /* BOOLEAN */ + YYSYMBOL_TRANSACTION = 156, /* TRANSACTION */ + YYSYMBOL_BEGIN = 157, /* BEGIN */ + YYSYMBOL_COMMIT = 158, /* COMMIT */ + YYSYMBOL_ROLLBACK = 159, /* ROLLBACK */ + YYSYMBOL_NOWAIT = 160, /* NOWAIT */ + YYSYMBOL_SKIP = 161, /* SKIP */ + YYSYMBOL_LOCKED = 162, /* LOCKED */ + YYSYMBOL_SHARE = 163, /* SHARE */ + YYSYMBOL_RANGE = 164, /* RANGE */ + YYSYMBOL_ROWS = 165, /* ROWS */ + YYSYMBOL_GROUPS = 166, /* GROUPS */ + YYSYMBOL_UNBOUNDED = 167, /* UNBOUNDED */ + YYSYMBOL_FOLLOWING = 168, /* FOLLOWING */ + YYSYMBOL_PRECEDING = 169, /* PRECEDING */ + YYSYMBOL_CURRENT_ROW = 170, /* CURRENT_ROW */ + YYSYMBOL_171_ = 171, /* '=' */ + YYSYMBOL_EQUALS = 172, /* EQUALS */ + YYSYMBOL_NOTEQUALS = 173, /* NOTEQUALS */ + YYSYMBOL_174_ = 174, /* '<' */ + YYSYMBOL_175_ = 175, /* '>' */ + YYSYMBOL_LESS = 176, /* LESS */ + YYSYMBOL_GREATER = 177, /* GREATER */ + YYSYMBOL_LESSEQ = 178, /* LESSEQ */ + YYSYMBOL_GREATEREQ = 179, /* GREATEREQ */ + YYSYMBOL_NOTNULL = 180, /* NOTNULL */ + YYSYMBOL_181_ = 181, /* '+' */ + YYSYMBOL_182_ = 182, /* '-' */ + YYSYMBOL_183_ = 183, /* '*' */ + YYSYMBOL_184_ = 184, /* '/' */ + YYSYMBOL_185_ = 185, /* '%' */ + YYSYMBOL_186_ = 186, /* '^' */ + YYSYMBOL_UMINUS = 187, /* UMINUS */ + YYSYMBOL_188_ = 188, /* '[' */ + YYSYMBOL_189_ = 189, /* ']' */ + YYSYMBOL_190_ = 190, /* '(' */ + YYSYMBOL_191_ = 191, /* ')' */ + YYSYMBOL_192_ = 192, /* '.' */ + YYSYMBOL_193_ = 193, /* ';' */ + YYSYMBOL_194_ = 194, /* ',' */ + YYSYMBOL_195_ = 195, /* '?' */ + YYSYMBOL_YYACCEPT = 196, /* $accept */ + YYSYMBOL_input = 197, /* input */ + YYSYMBOL_statement_list = 198, /* statement_list */ + YYSYMBOL_statement = 199, /* statement */ + YYSYMBOL_preparable_statement = 200, /* preparable_statement */ + YYSYMBOL_opt_hints = 201, /* opt_hints */ + YYSYMBOL_hint_list = 202, /* hint_list */ + YYSYMBOL_hint = 203, /* hint */ + YYSYMBOL_transaction_statement = 204, /* transaction_statement */ + YYSYMBOL_opt_transaction_keyword = 205, /* opt_transaction_keyword */ + YYSYMBOL_prepare_statement = 206, /* prepare_statement */ + YYSYMBOL_prepare_target_query = 207, /* prepare_target_query */ + YYSYMBOL_execute_statement = 208, /* execute_statement */ + YYSYMBOL_import_statement = 209, /* import_statement */ + YYSYMBOL_file_type = 210, /* file_type */ + YYSYMBOL_file_path = 211, /* file_path */ + YYSYMBOL_opt_file_type = 212, /* opt_file_type */ + YYSYMBOL_export_statement = 213, /* export_statement */ + YYSYMBOL_show_statement = 214, /* show_statement */ + YYSYMBOL_create_statement = 215, /* create_statement */ + YYSYMBOL_opt_not_exists = 216, /* opt_not_exists */ + YYSYMBOL_table_elem_commalist = 217, /* table_elem_commalist */ + YYSYMBOL_table_elem = 218, /* table_elem */ + YYSYMBOL_column_def = 219, /* column_def */ + YYSYMBOL_column_type = 220, /* column_type */ + YYSYMBOL_opt_time_precision = 221, /* opt_time_precision */ + YYSYMBOL_opt_decimal_specification = 222, /* opt_decimal_specification */ + YYSYMBOL_opt_column_constraints = 223, /* opt_column_constraints */ + YYSYMBOL_column_constraint_set = 224, /* column_constraint_set */ + YYSYMBOL_column_constraint = 225, /* column_constraint */ + YYSYMBOL_table_constraint = 226, /* table_constraint */ + YYSYMBOL_drop_statement = 227, /* drop_statement */ + YYSYMBOL_opt_exists = 228, /* opt_exists */ + YYSYMBOL_alter_statement = 229, /* alter_statement */ + YYSYMBOL_alter_action = 230, /* alter_action */ + YYSYMBOL_drop_action = 231, /* drop_action */ + YYSYMBOL_delete_statement = 232, /* delete_statement */ + YYSYMBOL_truncate_statement = 233, /* truncate_statement */ + YYSYMBOL_insert_statement = 234, /* insert_statement */ + YYSYMBOL_opt_column_list = 235, /* opt_column_list */ + YYSYMBOL_update_statement = 236, /* update_statement */ + YYSYMBOL_update_clause_commalist = 237, /* update_clause_commalist */ + YYSYMBOL_update_clause = 238, /* update_clause */ + YYSYMBOL_select_statement = 239, /* select_statement */ + YYSYMBOL_select_within_set_operation = 240, /* select_within_set_operation */ + YYSYMBOL_select_within_set_operation_no_parentheses = 241, /* select_within_set_operation_no_parentheses */ + YYSYMBOL_select_with_paren = 242, /* select_with_paren */ + YYSYMBOL_select_no_paren = 243, /* select_no_paren */ + YYSYMBOL_set_operator = 244, /* set_operator */ + YYSYMBOL_set_type = 245, /* set_type */ + YYSYMBOL_opt_all = 246, /* opt_all */ + YYSYMBOL_select_clause = 247, /* select_clause */ + YYSYMBOL_opt_distinct = 248, /* opt_distinct */ + YYSYMBOL_select_list = 249, /* select_list */ + YYSYMBOL_opt_from_clause = 250, /* opt_from_clause */ + YYSYMBOL_from_clause = 251, /* from_clause */ + YYSYMBOL_opt_where = 252, /* opt_where */ + YYSYMBOL_opt_group = 253, /* opt_group */ + YYSYMBOL_opt_having = 254, /* opt_having */ + YYSYMBOL_opt_order = 255, /* opt_order */ + YYSYMBOL_order_list = 256, /* order_list */ + YYSYMBOL_order_desc = 257, /* order_desc */ + YYSYMBOL_opt_order_type = 258, /* opt_order_type */ + YYSYMBOL_opt_top = 259, /* opt_top */ + YYSYMBOL_opt_limit = 260, /* opt_limit */ + YYSYMBOL_expr_list = 261, /* expr_list */ + YYSYMBOL_opt_literal_list = 262, /* opt_literal_list */ + YYSYMBOL_literal_list = 263, /* literal_list */ + YYSYMBOL_expr_alias = 264, /* expr_alias */ + YYSYMBOL_expr = 265, /* expr */ + YYSYMBOL_operand = 266, /* operand */ + YYSYMBOL_scalar_expr = 267, /* scalar_expr */ + YYSYMBOL_unary_expr = 268, /* unary_expr */ + YYSYMBOL_binary_expr = 269, /* binary_expr */ + YYSYMBOL_logic_expr = 270, /* logic_expr */ + YYSYMBOL_in_expr = 271, /* in_expr */ + YYSYMBOL_case_expr = 272, /* case_expr */ + YYSYMBOL_case_list = 273, /* case_list */ + YYSYMBOL_exists_expr = 274, /* exists_expr */ + YYSYMBOL_comp_expr = 275, /* comp_expr */ + YYSYMBOL_function_expr = 276, /* function_expr */ + YYSYMBOL_opt_window = 277, /* opt_window */ + YYSYMBOL_opt_partition = 278, /* opt_partition */ + YYSYMBOL_opt_frame_clause = 279, /* opt_frame_clause */ + YYSYMBOL_frame_type = 280, /* frame_type */ + YYSYMBOL_frame_bound = 281, /* frame_bound */ + YYSYMBOL_extract_expr = 282, /* extract_expr */ + YYSYMBOL_cast_expr = 283, /* cast_expr */ + YYSYMBOL_datetime_field = 284, /* datetime_field */ + YYSYMBOL_datetime_field_plural = 285, /* datetime_field_plural */ + YYSYMBOL_duration_field = 286, /* duration_field */ + YYSYMBOL_array_expr = 287, /* array_expr */ + YYSYMBOL_array_index = 288, /* array_index */ + YYSYMBOL_between_expr = 289, /* between_expr */ + YYSYMBOL_column_name = 290, /* column_name */ + YYSYMBOL_literal = 291, /* literal */ + YYSYMBOL_string_literal = 292, /* string_literal */ + YYSYMBOL_bool_literal = 293, /* bool_literal */ + YYSYMBOL_num_literal = 294, /* num_literal */ + YYSYMBOL_int_literal = 295, /* int_literal */ + YYSYMBOL_null_literal = 296, /* null_literal */ + YYSYMBOL_date_literal = 297, /* date_literal */ + YYSYMBOL_interval_literal = 298, /* interval_literal */ + YYSYMBOL_param_expr = 299, /* param_expr */ + YYSYMBOL_table_ref = 300, /* table_ref */ + YYSYMBOL_table_ref_atomic = 301, /* table_ref_atomic */ + YYSYMBOL_nonjoin_table_ref_atomic = 302, /* nonjoin_table_ref_atomic */ + YYSYMBOL_table_ref_commalist = 303, /* table_ref_commalist */ + YYSYMBOL_table_ref_name = 304, /* table_ref_name */ + YYSYMBOL_table_ref_name_no_alias = 305, /* table_ref_name_no_alias */ + YYSYMBOL_table_name = 306, /* table_name */ + YYSYMBOL_opt_index_name = 307, /* opt_index_name */ + YYSYMBOL_table_alias = 308, /* table_alias */ + YYSYMBOL_opt_table_alias = 309, /* opt_table_alias */ + YYSYMBOL_alias = 310, /* alias */ + YYSYMBOL_opt_alias = 311, /* opt_alias */ + YYSYMBOL_opt_locking_clause = 312, /* opt_locking_clause */ + YYSYMBOL_opt_locking_clause_list = 313, /* opt_locking_clause_list */ + YYSYMBOL_locking_clause = 314, /* locking_clause */ + YYSYMBOL_row_lock_mode = 315, /* row_lock_mode */ + YYSYMBOL_opt_row_lock_policy = 316, /* opt_row_lock_policy */ + YYSYMBOL_opt_with_clause = 317, /* opt_with_clause */ + YYSYMBOL_with_clause = 318, /* with_clause */ + YYSYMBOL_with_description_list = 319, /* with_description_list */ + YYSYMBOL_with_description = 320, /* with_description */ + YYSYMBOL_join_clause = 321, /* join_clause */ + YYSYMBOL_opt_join_type = 322, /* opt_join_type */ + YYSYMBOL_join_condition = 323, /* join_condition */ + YYSYMBOL_opt_semicolon = 324, /* opt_semicolon */ + YYSYMBOL_ident_commalist = 325 /* ident_commalist */ +}; +typedef enum yysymbol_kind_t yysymbol_kind_t; + + + + +#ifdef short +# undef short +#endif + +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + and (if available) are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif +#endif + +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; +#else +typedef signed char yytype_int8; +#endif + +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; +#else +typedef short yytype_int16; +#endif + +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + . */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 +#endif + +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; +#else +typedef short yytype_uint8; +#endif + +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; +#else +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif +#endif + +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned +# endif +#endif + +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + + +/* Stored state numbers (used for stacks). */ +typedef yytype_int16 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; + +#ifndef YY_ +# if defined YYENABLE_NLS && YYENABLE_NLS +# if ENABLE_NLS +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) +# endif +# endif +# ifndef YY_ +# define YY_(Msgid) Msgid +# endif +#endif + + +#ifndef YY_ATTRIBUTE_PURE +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED +# endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YY_USE(E) ((void) (E)) +#else +# define YY_USE(E) /* empty */ +#endif + +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +#if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__ +# if __GNUC__ * 100 + __GNUC_MINOR__ < 407 +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") +# else +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# endif +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") +#else +# define YY_INITIAL_VALUE(Value) Value +#endif +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + + +#define YY_ASSERT(E) ((void) (0 && (E))) + +#if 1 + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS +# include /* INFRINGES ON USER NAME SPACE */ + /* Use EXIT_SUCCESS as a witness for stdlib.h. */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined EXIT_SUCCESS +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined EXIT_SUCCESS +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* 1 */ + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined HSQL_LTYPE_IS_TRIVIAL && HSQL_LTYPE_IS_TRIVIAL \ + && defined HSQL_STYPE_IS_TRIVIAL && HSQL_STYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yy_state_t yyss_alloc; + YYSTYPE yyvs_alloc; + YYLTYPE yyls_alloc; +}; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \ + + YYSIZEOF (YYLTYPE)) \ + + 2 * YYSTACK_GAP_MAXIMUM) + +# define YYCOPY_NEEDED 1 + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYPTRDIFF_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ + } \ + while (0) + +#endif + +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED +/* Copy COUNT objects from SRC to DST. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(Dst, Src, Count) \ + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) +# else +# define YYCOPY(Dst, Src, Count) \ + do \ + { \ + YYPTRDIFF_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (Dst)[yyi] = (Src)[yyi]; \ + } \ + while (0) +# endif +# endif +#endif /* !YYCOPY_NEEDED */ + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 69 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 872 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 196 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 130 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 335 +/* YYNSTATES -- Number of states. */ +#define YYNSTATES 605 + +/* YYMAXUTOK -- Last valid token kind. */ +#define YYMAXUTOK 433 + + +/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, with out-of-bounds checking. */ +#define YYTRANSLATE(YYX) \ + (0 <= (YYX) && (YYX) <= YYMAXUTOK \ + ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ + : YYSYMBOL_YYUNDEF) + +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex. */ +static const yytype_uint8 yytranslate[] = +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 185, 2, 2, + 190, 191, 183, 181, 194, 182, 192, 184, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 193, + 174, 171, 175, 195, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 188, 2, 189, 186, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 172, 173, 176, 177, + 178, 179, 180, 187 +}; + +#if HSQL_DEBUG +/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ +static const yytype_int16 yyrline[] = +{ + 0, 322, 322, 341, 347, 354, 358, 362, 363, 364, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 381, 382, 384, 388, 393, 397, 407, 408, 409, 411, + 411, 417, 423, 425, 429, 440, 446, 454, 469, 474, + 475, 481, 487, 498, 499, 504, 515, 528, 540, 547, + 554, 563, 564, 566, 570, 575, 576, 578, 585, 586, + 587, 588, 589, 590, 591, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 604, 605, 607, 608, 610, 611, + 612, 614, 615, 617, 621, 626, 627, 628, 629, 631, + 632, 640, 646, 652, 658, 664, 665, 672, 678, 680, + 690, 697, 708, 715, 723, 724, 731, 738, 742, 747, + 757, 761, 765, 777, 777, 779, 780, 789, 790, 792, + 806, 818, 823, 827, 831, 836, 837, 839, 849, 850, + 852, 854, 855, 857, 859, 860, 862, 867, 869, 870, + 872, 873, 875, 879, 884, 886, 887, 888, 892, 893, + 895, 896, 897, 898, 899, 900, 905, 909, 914, 915, + 917, 921, 926, 934, 934, 934, 934, 934, 936, 937, + 937, 937, 937, 937, 937, 937, 937, 938, 938, 942, + 942, 944, 945, 946, 947, 948, 950, 950, 951, 952, + 953, 954, 955, 956, 957, 958, 959, 961, 962, 964, + 965, 966, 967, 971, 972, 973, 974, 976, 977, 979, + 980, 982, 983, 984, 985, 986, 987, 988, 992, 993, + 997, 998, 1000, 1001, 1006, 1007, 1008, 1012, 1013, 1014, + 1016, 1017, 1018, 1019, 1020, 1022, 1024, 1026, 1027, 1028, + 1029, 1030, 1031, 1033, 1034, 1035, 1036, 1037, 1038, 1040, + 1040, 1042, 1044, 1046, 1048, 1049, 1050, 1051, 1053, 1053, + 1053, 1053, 1053, 1053, 1053, 1055, 1057, 1058, 1060, 1061, + 1063, 1065, 1067, 1078, 1082, 1093, 1125, 1134, 1134, 1141, + 1141, 1143, 1143, 1150, 1154, 1159, 1167, 1173, 1177, 1182, + 1183, 1185, 1185, 1187, 1187, 1189, 1190, 1192, 1192, 1198, + 1199, 1201, 1205, 1210, 1216, 1223, 1224, 1225, 1226, 1228, + 1229, 1230, 1236, 1236, 1238, 1240, 1244, 1249, 1259, 1266, + 1274, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, + 1307, 1309, 1315, 1315, 1318, 1322 +}; +#endif + +/** Accessing symbol of state STATE. */ +#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) + +#if 1 +/* The user-facing name of the symbol whose (internal) number is + YYSYMBOL. No bounds checking. */ +static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; + +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "\"end of file\"", "error", "\"invalid token\"", "IDENTIFIER", "STRING", + "FLOATVAL", "INTVAL", "DEALLOCATE", "PARAMETERS", "INTERSECT", + "TEMPORARY", "TIMESTAMP", "DISTINCT", "NVARCHAR", "RESTRICT", "TRUNCATE", + "ANALYZE", "BETWEEN", "CASCADE", "COLUMNS", "CONTROL", "DEFAULT", + "EXECUTE", "EXPLAIN", "INTEGER", "NATURAL", "PREPARE", "PRIMARY", + "SCHEMAS", "CHARACTER_VARYING", "REAL", "DECIMAL", "SMALLINT", "BIGINT", + "SPATIAL", "VARCHAR", "VIRTUAL", "DESCRIBE", "BEFORE", "COLUMN", + "CREATE", "DELETE", "DIRECT", "DOUBLE", "ESCAPE", "EXCEPT", "EXISTS", + "EXTRACT", "CAST", "FORMAT", "GLOBAL", "HAVING", "IMPORT", "INSERT", + "ISNULL", "OFFSET", "RENAME", "SCHEMA", "SELECT", "SORTED", "TABLES", + "UNIQUE", "UNLOAD", "UPDATE", "VALUES", "AFTER", "ALTER", "CROSS", + "DELTA", "FLOAT", "GROUP", "INDEX", "INNER", "LIMIT", "LOCAL", "MERGE", + "MINUS", "ORDER", "OVER", "OUTER", "RIGHT", "TABLE", "UNION", "USING", + "WHERE", "CALL", "CASE", "CHAR", "COPY", "DATE", "DATETIME", "DESC", + "DROP", "ELSE", "FILE", "FROM", "FULL", "HASH", "HINT", "INTO", "JOIN", + "LEFT", "LIKE", "LOAD", "LONG", "NULL", "PARTITION", "PLAN", "SHOW", + "TEXT", "THEN", "TIME", "VIEW", "WHEN", "WITH", "ADD", "ALL", "AND", + "ASC", "END", "FOR", "INT", "KEY", "NOT", "OFF", "SET", "TOP", "AS", + "BY", "IF", "IN", "IS", "OF", "ON", "OR", "TO", "NO", "ARRAY", "CONCAT", + "ILIKE", "SECOND", "MINUTE", "HOUR", "DAY", "MONTH", "YEAR", "SECONDS", + "MINUTES", "HOURS", "DAYS", "MONTHS", "YEARS", "INTERVAL", "TRUE", + "FALSE", "BOOLEAN", "TRANSACTION", "BEGIN", "COMMIT", "ROLLBACK", + "NOWAIT", "SKIP", "LOCKED", "SHARE", "RANGE", "ROWS", "GROUPS", + "UNBOUNDED", "FOLLOWING", "PRECEDING", "CURRENT_ROW", "'='", "EQUALS", + "NOTEQUALS", "'<'", "'>'", "LESS", "GREATER", "LESSEQ", "GREATEREQ", + "NOTNULL", "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "UMINUS", "'['", + "']'", "'('", "')'", "'.'", "';'", "','", "'?'", "$accept", "input", + "statement_list", "statement", "preparable_statement", "opt_hints", + "hint_list", "hint", "transaction_statement", "opt_transaction_keyword", + "prepare_statement", "prepare_target_query", "execute_statement", + "import_statement", "file_type", "file_path", "opt_file_type", + "export_statement", "show_statement", "create_statement", + "opt_not_exists", "table_elem_commalist", "table_elem", "column_def", + "column_type", "opt_time_precision", "opt_decimal_specification", + "opt_column_constraints", "column_constraint_set", "column_constraint", + "table_constraint", "drop_statement", "opt_exists", "alter_statement", + "alter_action", "drop_action", "delete_statement", "truncate_statement", + "insert_statement", "opt_column_list", "update_statement", + "update_clause_commalist", "update_clause", "select_statement", + "select_within_set_operation", + "select_within_set_operation_no_parentheses", "select_with_paren", + "select_no_paren", "set_operator", "set_type", "opt_all", + "select_clause", "opt_distinct", "select_list", "opt_from_clause", + "from_clause", "opt_where", "opt_group", "opt_having", "opt_order", + "order_list", "order_desc", "opt_order_type", "opt_top", "opt_limit", + "expr_list", "opt_literal_list", "literal_list", "expr_alias", "expr", + "operand", "scalar_expr", "unary_expr", "binary_expr", "logic_expr", + "in_expr", "case_expr", "case_list", "exists_expr", "comp_expr", + "function_expr", "opt_window", "opt_partition", "opt_frame_clause", + "frame_type", "frame_bound", "extract_expr", "cast_expr", + "datetime_field", "datetime_field_plural", "duration_field", + "array_expr", "array_index", "between_expr", "column_name", "literal", + "string_literal", "bool_literal", "num_literal", "int_literal", + "null_literal", "date_literal", "interval_literal", "param_expr", + "table_ref", "table_ref_atomic", "nonjoin_table_ref_atomic", + "table_ref_commalist", "table_ref_name", "table_ref_name_no_alias", + "table_name", "opt_index_name", "table_alias", "opt_table_alias", + "alias", "opt_alias", "opt_locking_clause", "opt_locking_clause_list", + "locking_clause", "row_lock_mode", "opt_row_lock_policy", + "opt_with_clause", "with_clause", "with_description_list", + "with_description", "join_clause", "opt_join_type", "join_condition", + "opt_semicolon", "ident_commalist", YY_NULLPTR +}; + +static const char * +yysymbol_name (yysymbol_kind_t yysymbol) +{ + return yytname[yysymbol]; +} +#endif + +#define YYPACT_NINF (-527) + +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) + +#define YYTABLE_NINF (-333) + +#define yytable_value_is_error(Yyn) \ + ((Yyn) == YYTABLE_NINF) + +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +static const yytype_int16 yypact[] = +{ + 577, 63, 101, 112, 195, 101, 188, -39, 108, 67, + 101, 142, 23, 211, 31, 213, 72, 72, 72, 238, + 49, -527, 130, -527, 130, -527, -527, -527, -527, -527, + -527, -527, -527, -527, -527, -527, -527, -23, -527, 252, + 84, -527, 88, 215, -527, 177, 177, 177, 101, 309, + 101, 197, -527, 220, -23, 181, -50, 220, 220, 220, + 101, -527, 193, 143, -527, -527, -527, -527, -527, -527, + 582, -527, 246, -527, -527, 243, 69, -527, 150, -527, + 361, 57, 367, 256, 380, 101, 101, 302, -527, 294, + 203, 402, 374, 101, 232, 236, 424, 424, 424, 426, + 101, 101, -527, 240, 213, -527, 244, 430, 425, -527, + -527, -527, -23, 325, 314, -23, 25, -527, -527, -527, + -527, 441, -527, 442, -527, -527, -527, 266, 265, -527, + -527, -527, -527, 509, -527, -527, -527, -527, -527, -527, + 404, -527, 329, -48, 203, 261, -527, 424, 460, 179, + 293, -46, -527, -527, 373, -527, -527, 353, -527, 353, + 353, -527, -527, -527, -527, -527, 465, -527, -527, 261, + 392, -527, -527, 69, -527, -527, 261, 392, 261, 131, + 350, -527, 259, -527, 57, -527, -527, -527, -527, -527, + -527, -527, -527, -527, -527, -527, -527, -527, -527, -527, + -527, 101, 470, 362, 157, 348, -2, 290, 295, 297, + 135, 349, 296, 369, -527, 257, 40, 395, -527, -527, + -527, -527, -527, -527, -527, -527, -527, -527, -527, -527, + -527, -527, -527, -527, 384, -527, -125, 298, -527, 261, + 402, -527, 450, -527, -527, 444, -527, 302, -527, 300, + 107, -527, 396, 304, -527, 37, 25, -23, 310, -527, + -47, 25, 40, 439, 35, 90, -527, 350, -527, -527, + -527, 306, 411, -527, 668, 385, 318, 133, -527, -527, + -527, 362, 9, 19, 451, 259, 261, 261, -59, 106, + 320, 369, 622, 261, 173, 321, -58, 261, 261, 369, + -527, 369, -28, 323, 71, 369, 369, 369, 369, 369, + 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, + 430, 101, -527, 508, 57, 40, -527, 220, 309, -527, + 57, -527, 465, 24, 302, -527, 261, -527, 511, -527, + -527, -527, -527, 261, -527, -527, -527, 350, 261, 261, + -527, 352, 394, -527, -51, -527, 460, 424, -527, -527, + 327, -527, 330, -527, -527, 334, -527, -527, 337, -527, + -527, -527, -527, 338, -527, -527, 45, 339, 460, -527, + 157, -527, 452, 261, -527, -527, 328, 440, 163, 53, + 180, 261, 261, -527, 451, 434, -3, -527, -527, -527, + 420, 544, 660, 369, 351, 257, -527, 433, 354, 660, + 660, 660, 660, 684, 684, 684, 684, 173, 173, 47, + 47, 47, -89, 356, -527, -527, 138, 537, -527, 140, + -527, 362, -527, 381, -527, 355, -527, 38, -527, 473, + -527, -527, -527, -527, 40, 40, -527, 483, 460, -527, + 386, -527, 147, -527, 541, 547, -527, 548, 549, 550, + -527, 428, -527, -527, 453, -527, 45, -527, 460, 148, + -527, 370, -527, 154, -527, 261, 668, 261, 261, -527, + 122, 185, 366, -527, 369, 660, 257, 371, 169, -527, + -527, -527, -527, -527, 372, 461, -527, -527, -527, 486, + 492, 493, 485, 24, 583, -527, -527, -527, 459, -527, + -527, -108, -527, -527, 397, 174, 400, 403, 405, -527, + -527, -527, 176, -527, 484, 452, -33, 409, 40, 160, + -527, 261, -527, 622, 410, 187, -527, -527, 38, 24, + -527, -527, -527, 24, 399, 412, 261, -527, -527, -527, + 589, -527, -527, -527, -527, 477, 392, -527, -527, -527, + -527, 40, -527, -527, -527, -527, 687, 460, -22, 415, + 261, 226, 417, 261, 191, 261, -527, -527, 304, -527, + -527, -527, 418, 22, 21, 40, -527, -527, 40, -527, + 208, 26, 239, -527, -527, 419, 421, -527, -527, 496, + -527, -527, -527, 26, -527 +}; + +/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ +static const yytype_int16 yydefact[] = +{ + 313, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 30, 30, 30, 0, + 333, 3, 21, 19, 21, 18, 8, 9, 7, 11, + 16, 17, 13, 14, 12, 15, 10, 0, 312, 0, + 287, 101, 33, 0, 45, 52, 52, 52, 0, 0, + 0, 0, 286, 96, 0, 0, 0, 96, 96, 96, + 0, 43, 0, 314, 315, 29, 26, 28, 27, 1, + 313, 2, 0, 6, 5, 149, 110, 111, 141, 93, + 0, 159, 0, 0, 290, 0, 0, 135, 37, 0, + 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 44, 0, 0, 4, 0, 0, 129, 123, + 124, 122, 0, 126, 0, 0, 155, 288, 265, 268, + 270, 0, 271, 0, 266, 267, 276, 0, 158, 160, + 258, 259, 260, 269, 261, 262, 263, 264, 32, 31, + 0, 289, 0, 0, 105, 0, 100, 0, 0, 0, + 0, 135, 107, 95, 0, 118, 117, 40, 38, 40, + 40, 94, 91, 92, 317, 316, 0, 148, 128, 0, + 141, 114, 113, 115, 125, 121, 0, 141, 0, 0, + 300, 272, 275, 34, 0, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 273, + 51, 0, 0, 313, 0, 0, 254, 0, 0, 0, + 0, 0, 0, 0, 256, 0, 134, 163, 170, 171, + 172, 165, 167, 173, 166, 186, 174, 175, 176, 177, + 169, 164, 179, 180, 0, 334, 0, 0, 103, 0, + 0, 106, 0, 97, 98, 0, 42, 135, 41, 24, + 0, 22, 132, 130, 156, 298, 155, 0, 140, 142, + 147, 155, 151, 153, 150, 0, 119, 299, 301, 274, + 161, 0, 0, 48, 0, 0, 0, 0, 53, 55, + 56, 313, 129, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 182, 0, 181, 0, 0, 0, 0, 0, + 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 104, 0, 0, 109, 108, 96, 0, 36, + 0, 20, 0, 0, 135, 131, 0, 296, 0, 297, + 162, 112, 116, 0, 146, 145, 144, 300, 0, 0, + 305, 0, 0, 307, 311, 302, 0, 0, 74, 68, + 0, 70, 80, 71, 58, 0, 65, 66, 0, 62, + 63, 69, 72, 77, 67, 59, 82, 0, 0, 47, + 0, 50, 221, 0, 255, 257, 0, 0, 0, 0, + 0, 0, 0, 205, 0, 0, 0, 178, 168, 197, + 198, 0, 193, 0, 0, 0, 184, 0, 196, 195, + 211, 212, 213, 214, 215, 216, 217, 188, 187, 190, + 189, 191, 192, 0, 35, 335, 0, 0, 39, 0, + 23, 313, 133, 277, 279, 0, 281, 294, 280, 137, + 157, 295, 143, 120, 154, 152, 308, 0, 0, 310, + 0, 303, 0, 46, 0, 0, 64, 0, 0, 0, + 73, 0, 86, 87, 0, 57, 81, 83, 0, 0, + 54, 0, 218, 0, 209, 0, 0, 0, 0, 203, + 0, 0, 0, 251, 0, 194, 0, 0, 0, 185, + 252, 102, 99, 25, 0, 0, 329, 321, 327, 325, + 328, 323, 0, 0, 0, 293, 285, 291, 0, 127, + 306, 311, 309, 49, 0, 0, 0, 0, 0, 85, + 88, 84, 0, 90, 223, 221, 0, 0, 207, 0, + 206, 0, 210, 253, 0, 0, 201, 199, 294, 0, + 324, 326, 322, 0, 278, 295, 0, 304, 61, 79, + 0, 75, 60, 76, 89, 0, 141, 219, 235, 236, + 204, 208, 202, 200, 282, 318, 330, 0, 139, 0, + 0, 226, 0, 0, 0, 0, 136, 78, 222, 227, + 228, 229, 0, 0, 0, 331, 319, 292, 138, 220, + 0, 0, 0, 234, 224, 254, 0, 233, 231, 0, + 232, 230, 320, 0, 225 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -527, -527, -527, 540, -527, 591, -527, 284, -527, 401, + -527, -527, -527, -527, 292, -87, 262, -527, -527, -527, + 379, -527, 241, -527, 149, -527, -527, -527, -527, 158, + -527, -527, -52, -527, -527, -527, -527, -527, -527, 482, + -527, -527, 387, -185, -84, -527, 168, -54, -30, -527, + -527, -82, 346, -527, -527, -527, -100, -527, -527, -169, + -527, 288, -527, -527, 30, -289, -527, -242, 301, -142, + -188, -527, -527, -527, -527, -527, -527, 344, -527, -527, + -527, 111, -527, -527, -527, -526, -527, -527, -136, -527, + -527, -527, -527, -527, 54, -79, -83, -527, -527, -91, + -527, -527, -527, -527, -527, -460, 94, -527, -527, -527, + 7, -527, -527, 103, 389, -527, 315, -527, 375, -527, + 128, -527, -527, -527, 543, -527, -527, -527, -527, -336 +}; + +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + 0, 19, 20, 21, 22, 73, 250, 251, 23, 66, + 24, 139, 25, 26, 89, 157, 246, 27, 28, 29, + 84, 277, 278, 279, 376, 460, 456, 465, 466, 467, + 280, 30, 93, 31, 243, 244, 32, 33, 34, 149, + 35, 151, 152, 36, 170, 171, 172, 77, 112, 113, + 175, 78, 169, 252, 334, 335, 146, 509, 576, 116, + 258, 259, 346, 108, 180, 253, 127, 128, 254, 255, + 217, 218, 219, 220, 221, 222, 223, 289, 224, 225, + 226, 472, 556, 582, 583, 594, 227, 228, 197, 198, + 199, 229, 230, 231, 232, 233, 130, 131, 132, 133, + 134, 135, 136, 137, 432, 433, 434, 435, 436, 51, + 437, 142, 505, 506, 507, 340, 266, 267, 268, 354, + 451, 37, 38, 63, 64, 438, 502, 586, 71, 236 +}; + +/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ +static const yytype_int16 yytable[] = +{ + 95, 256, 129, 216, 396, 99, 100, 101, 261, 41, + 159, 160, 44, 158, 158, 158, 167, 52, 273, 56, + 452, 168, 384, 292, 595, 294, 40, 40, 590, 575, + 173, 177, 590, 173, 260, 75, 262, 264, 145, 591, + 337, 337, 469, 544, 344, 97, 269, 202, 115, 305, + 60, 241, 449, 450, 287, 87, 48, 90, 297, 297, + 234, 118, 119, 120, 158, 599, 322, 102, 288, 323, + 297, 345, 461, 296, 403, 298, 298, 604, 109, 203, + 178, 448, 426, 566, 297, 98, 323, 298, 429, 39, + 349, 61, 143, 144, 473, 238, 381, 325, 179, 320, + 154, 298, 404, 292, 40, 270, 462, 162, 163, 449, + 450, 401, 511, 402, 110, 42, 488, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 522, 398, 206, 118, 119, 120, 206, 118, + 119, 120, 204, 257, 388, 389, 121, 329, 240, 387, + 463, 111, 297, 350, 297, 399, 400, 297, 558, 109, + 274, 295, 122, 477, 338, 504, 50, 54, 464, 298, + 297, 298, 336, 342, 298, 173, 406, 207, 208, 209, + 55, 207, 208, 209, 275, 305, 483, 298, 282, 592, + 283, 336, 593, 592, 407, 110, 593, 535, 43, 391, + 382, 260, 385, 49, 214, 76, 444, 445, 271, 123, + 124, 125, 351, 54, 431, 485, 62, 210, 276, 392, + 121, 210, 94, 53, 121, 393, 352, 114, 65, 423, + 386, 574, 111, 319, 439, 320, 122, 75, 69, 297, + 122, 530, 70, 237, 72, 129, 494, 263, 287, 480, + 481, 129, 126, 353, 211, 79, 298, 568, 211, 45, + 206, 118, 119, 120, 206, 118, 119, 120, 212, 46, + 453, 164, 212, 478, 158, 427, 80, 297, 81, 560, + 297, 578, 57, 123, 124, 125, 341, 123, 124, 125, + 476, 347, 58, 392, 298, 531, 533, 298, 331, 479, + 47, 332, 297, 207, 208, 209, 83, 207, 208, 209, + 82, 305, 88, 213, 214, 75, 96, 213, 214, 298, + 103, 215, 91, 59, 379, 215, 126, 380, 424, 491, + 126, 493, 184, 526, 184, 528, 529, 104, 513, 523, + 482, 323, 323, 210, 106, 525, 121, 210, 336, 92, + 121, 487, 206, 118, 119, 120, 316, 317, 318, 319, + 537, 320, 122, 336, 117, 549, 122, 554, 550, 107, + 323, 138, 206, 118, 119, 120, 597, 598, 563, 140, + 211, 336, 587, 141, 211, 323, 145, 571, 147, 561, + 579, 580, 581, 148, 212, 290, 208, 209, 212, 185, + 186, 187, 188, 189, 190, 150, 495, 600, 601, 123, + 124, 125, 299, 123, 124, 125, 208, 209, 67, 68, + 153, 247, 248, 155, 495, 85, 86, 156, 118, 161, + 54, 585, 534, 588, 166, 210, 120, 168, 121, 213, + 214, 174, 176, 213, 214, 181, 182, 215, 496, 300, + 200, 215, 126, 497, 122, 210, 126, 183, 121, 184, + 498, 499, 201, 235, 239, 242, 496, 245, 249, 114, + 265, 497, 291, 272, 122, 281, 15, 500, 498, 499, + 284, -330, 501, 321, 293, 285, 212, 286, 324, 327, + 330, 333, 291, 328, 348, 500, 356, 301, 336, -330, + 501, 123, 124, 125, 343, 357, 212, 377, 378, 75, + 394, 425, 397, 405, 441, 446, 447, 454, 302, 474, + 455, 123, 124, 125, 457, 303, 304, 458, 459, 468, + 471, 213, 214, 305, 306, 475, 403, 297, 489, 215, + 492, 486, 320, 508, 126, 490, 510, 514, 512, 503, + 519, 213, 214, 515, 516, 517, 518, 532, 520, 215, + 524, 539, 536, 538, 126, 540, 307, 308, 309, 310, + 311, 541, 542, 312, 313, -283, 314, 315, 316, 317, + 318, 319, -332, 320, 1, 543, 545, 546, 548, 1, + 555, 551, 2, -284, 552, 569, 553, 2, 300, 3, + 559, 562, 567, 4, 3, 570, 577, 584, 4, 589, + 105, 283, 602, 603, 5, 74, 430, 6, 7, 5, + 428, 470, 6, 7, 521, 527, 205, 326, 383, 8, + 9, 442, 390, 565, 8, 9, 557, 440, 596, 547, + 10, 564, 355, 11, 339, 10, 301, 165, 11, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 484, 443, 0, 0, 12, 0, 395, 0, 13, + 12, 0, 0, 0, 13, 304, 300, 0, 0, 358, + 0, 0, 305, 306, 0, 14, 0, 0, 0, 0, + 14, 15, 359, 0, 0, 0, 15, 360, 361, 362, + 363, 364, 0, 365, 0, 0, 0, 0, 0, 0, + 0, 366, 495, 0, 300, 307, 308, 309, 310, 311, + 0, 0, 312, 313, 301, 314, 315, 316, 317, 318, + 319, 0, 320, 0, 16, 17, 18, 367, 300, 16, + 17, 18, 0, 0, 0, 395, 0, 0, 0, 0, + 0, 0, 0, 304, 496, 368, 0, 369, 370, 497, + 305, 306, -333, 0, 0, 0, 498, 499, 0, 0, + 572, 0, 371, 0, 0, 0, 0, 372, 0, 373, + 0, 0, 0, 500, 0, 0, 0, 0, 501, 374, + 0, 304, 0, 307, 308, 309, 310, 311, 305, -333, + 312, 313, 0, 314, 315, 316, 317, 318, 319, 0, + 320, 0, 0, 0, 0, 304, 0, 0, 0, 0, + 573, 0, 305, 375, 0, 0, 0, 0, 0, 0, + 0, -333, -333, -333, 310, 311, 0, 0, 312, 313, + 0, 314, 315, 316, 317, 318, 319, 0, 320, 0, + 0, 0, 0, 0, 0, 0, 0, 0, -333, -333, + 0, 0, -333, -333, 0, 314, 315, 316, 317, 318, + 319, 0, 320 +}; + +static const yytype_int16 yycheck[] = +{ + 54, 170, 81, 145, 293, 57, 58, 59, 177, 2, + 97, 98, 5, 96, 97, 98, 107, 10, 203, 12, + 356, 12, 3, 211, 3, 213, 3, 3, 6, 51, + 112, 115, 6, 115, 176, 58, 178, 179, 84, 17, + 3, 3, 378, 503, 91, 95, 182, 95, 78, 138, + 19, 151, 160, 161, 113, 48, 95, 50, 117, 117, + 147, 4, 5, 6, 147, 591, 191, 60, 210, 194, + 117, 118, 27, 215, 102, 134, 134, 603, 9, 127, + 55, 132, 324, 543, 117, 135, 194, 134, 330, 26, + 55, 60, 85, 86, 383, 149, 281, 239, 73, 188, + 93, 134, 130, 291, 3, 184, 61, 100, 101, 160, + 161, 299, 448, 301, 45, 3, 405, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 468, 191, 3, 4, 5, 6, 3, 4, + 5, 6, 190, 173, 286, 287, 89, 247, 194, 285, + 105, 82, 117, 63, 117, 297, 298, 117, 191, 9, + 3, 215, 105, 110, 127, 127, 99, 190, 123, 134, + 117, 134, 194, 257, 134, 257, 105, 46, 47, 48, + 12, 46, 47, 48, 27, 138, 189, 134, 190, 167, + 192, 194, 170, 167, 123, 45, 170, 486, 3, 93, + 191, 343, 183, 95, 183, 37, 348, 349, 201, 152, + 153, 154, 122, 190, 190, 403, 3, 86, 61, 113, + 89, 86, 54, 81, 89, 119, 136, 77, 156, 320, + 284, 567, 82, 186, 334, 188, 105, 58, 0, 117, + 105, 119, 193, 64, 114, 324, 431, 116, 113, 391, + 392, 330, 195, 163, 123, 3, 134, 546, 123, 71, + 3, 4, 5, 6, 3, 4, 5, 6, 137, 81, + 357, 103, 137, 93, 357, 327, 192, 117, 190, 119, + 117, 570, 71, 152, 153, 154, 256, 152, 153, 154, + 127, 261, 81, 113, 134, 110, 484, 134, 191, 119, + 112, 194, 117, 46, 47, 48, 129, 46, 47, 48, + 95, 138, 3, 182, 183, 58, 135, 182, 183, 134, + 127, 190, 125, 112, 191, 190, 195, 194, 321, 191, + 195, 191, 194, 475, 194, 477, 478, 194, 191, 191, + 394, 194, 194, 86, 98, 191, 89, 86, 194, 129, + 89, 405, 3, 4, 5, 6, 183, 184, 185, 186, + 191, 188, 105, 194, 3, 191, 105, 191, 194, 126, + 194, 4, 3, 4, 5, 6, 168, 169, 191, 123, + 123, 194, 191, 3, 123, 194, 84, 556, 94, 531, + 164, 165, 166, 190, 137, 46, 47, 48, 137, 140, + 141, 142, 143, 144, 145, 3, 25, 168, 169, 152, + 153, 154, 17, 152, 153, 154, 47, 48, 17, 18, + 46, 159, 160, 191, 25, 46, 47, 191, 4, 3, + 190, 573, 486, 575, 190, 86, 6, 12, 89, 182, + 183, 116, 128, 182, 183, 4, 4, 190, 67, 54, + 46, 190, 195, 72, 105, 86, 195, 191, 89, 194, + 79, 80, 133, 3, 171, 92, 67, 114, 3, 77, + 120, 72, 123, 3, 105, 127, 114, 96, 79, 80, + 190, 100, 101, 99, 188, 190, 137, 190, 190, 39, + 190, 95, 123, 49, 55, 96, 190, 102, 194, 100, + 101, 152, 153, 154, 194, 94, 137, 122, 190, 58, + 190, 3, 191, 190, 3, 163, 122, 190, 123, 191, + 190, 152, 153, 154, 190, 130, 131, 190, 190, 190, + 78, 182, 183, 138, 139, 95, 102, 117, 105, 190, + 3, 190, 188, 70, 195, 189, 63, 6, 162, 194, + 122, 182, 183, 6, 6, 6, 6, 191, 105, 190, + 190, 100, 191, 191, 195, 79, 171, 172, 173, 174, + 175, 79, 79, 178, 179, 194, 181, 182, 183, 184, + 185, 186, 0, 188, 7, 100, 3, 128, 191, 7, + 106, 191, 15, 194, 191, 6, 191, 15, 54, 22, + 191, 191, 190, 26, 22, 128, 191, 190, 26, 191, + 70, 192, 191, 117, 37, 24, 332, 40, 41, 37, + 328, 380, 40, 41, 466, 476, 144, 240, 282, 52, + 53, 343, 288, 539, 52, 53, 525, 336, 584, 511, + 63, 538, 267, 66, 255, 63, 102, 104, 66, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 117, 347, -1, -1, 88, -1, 123, -1, 92, + 88, -1, -1, -1, 92, 131, 54, -1, -1, 11, + -1, -1, 138, 139, -1, 108, -1, -1, -1, -1, + 108, 114, 24, -1, -1, -1, 114, 29, 30, 31, + 32, 33, -1, 35, -1, -1, -1, -1, -1, -1, + -1, 43, 25, -1, 54, 171, 172, 173, 174, 175, + -1, -1, 178, 179, 102, 181, 182, 183, 184, 185, + 186, -1, 188, -1, 157, 158, 159, 69, 54, 157, + 158, 159, -1, -1, -1, 123, -1, -1, -1, -1, + -1, -1, -1, 131, 67, 87, -1, 89, 90, 72, + 138, 139, 102, -1, -1, -1, 79, 80, -1, -1, + 83, -1, 104, -1, -1, -1, -1, 109, -1, 111, + -1, -1, -1, 96, -1, -1, -1, -1, 101, 121, + -1, 131, -1, 171, 172, 173, 174, 175, 138, 139, + 178, 179, -1, 181, 182, 183, 184, 185, 186, -1, + 188, -1, -1, -1, -1, 131, -1, -1, -1, -1, + 133, -1, 138, 155, -1, -1, -1, -1, -1, -1, + -1, 171, 172, 173, 174, 175, -1, -1, 178, 179, + -1, 181, 182, 183, 184, 185, 186, -1, 188, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 174, 175, + -1, -1, 178, 179, -1, 181, 182, 183, 184, 185, + 186, -1, 188 +}; + +/* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of + state STATE-NUM. */ +static const yytype_int16 yystos[] = +{ + 0, 7, 15, 22, 26, 37, 40, 41, 52, 53, + 63, 66, 88, 92, 108, 114, 157, 158, 159, 197, + 198, 199, 200, 204, 206, 208, 209, 213, 214, 215, + 227, 229, 232, 233, 234, 236, 239, 317, 318, 26, + 3, 306, 3, 3, 306, 71, 81, 112, 95, 95, + 99, 305, 306, 81, 190, 242, 306, 71, 81, 112, + 19, 60, 3, 319, 320, 156, 205, 205, 205, 0, + 193, 324, 114, 201, 201, 58, 242, 243, 247, 3, + 192, 190, 95, 129, 216, 216, 216, 306, 3, 210, + 306, 125, 129, 228, 242, 243, 135, 95, 135, 228, + 228, 228, 306, 127, 194, 199, 98, 126, 259, 9, + 45, 82, 244, 245, 77, 244, 255, 3, 4, 5, + 6, 89, 105, 152, 153, 154, 195, 262, 263, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 4, 207, + 123, 3, 307, 306, 306, 84, 252, 94, 190, 235, + 3, 237, 238, 46, 306, 191, 191, 211, 292, 211, + 211, 3, 306, 306, 242, 320, 190, 295, 12, 248, + 240, 241, 242, 247, 116, 246, 128, 240, 55, 73, + 260, 4, 4, 191, 194, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 284, 285, 286, + 46, 133, 95, 127, 190, 235, 3, 46, 47, 48, + 86, 123, 137, 182, 183, 190, 265, 266, 267, 268, + 269, 270, 271, 272, 274, 275, 276, 282, 283, 287, + 288, 289, 290, 291, 211, 3, 325, 64, 243, 171, + 194, 252, 92, 230, 231, 114, 212, 212, 212, 3, + 202, 203, 249, 261, 264, 265, 255, 244, 256, 257, + 265, 255, 265, 116, 265, 120, 312, 313, 314, 284, + 291, 306, 3, 239, 3, 27, 61, 217, 218, 219, + 226, 127, 190, 192, 190, 190, 190, 113, 265, 273, + 46, 123, 266, 188, 266, 243, 265, 117, 134, 17, + 54, 102, 123, 130, 131, 138, 139, 171, 172, 173, + 174, 175, 178, 179, 181, 182, 183, 184, 185, 186, + 188, 99, 191, 194, 190, 265, 238, 39, 49, 252, + 190, 191, 194, 95, 250, 251, 194, 3, 127, 310, + 311, 260, 240, 194, 91, 118, 258, 260, 55, 55, + 63, 122, 136, 163, 315, 314, 190, 94, 11, 24, + 29, 30, 31, 32, 33, 35, 43, 69, 87, 89, + 90, 104, 109, 111, 121, 155, 220, 122, 190, 191, + 194, 239, 191, 248, 3, 183, 243, 284, 265, 265, + 273, 93, 113, 119, 190, 123, 261, 191, 191, 265, + 265, 266, 266, 102, 130, 190, 105, 123, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 266, 295, 306, 3, 263, 228, 210, 263, + 203, 190, 300, 301, 302, 303, 304, 306, 321, 252, + 264, 3, 257, 312, 265, 265, 163, 122, 132, 160, + 161, 316, 325, 211, 190, 190, 222, 190, 190, 190, + 221, 27, 61, 105, 123, 223, 224, 225, 190, 325, + 218, 78, 277, 261, 191, 95, 127, 110, 93, 119, + 265, 265, 243, 189, 117, 266, 190, 243, 261, 105, + 189, 191, 3, 191, 239, 25, 67, 72, 79, 80, + 96, 101, 322, 194, 127, 308, 309, 310, 70, 253, + 63, 325, 162, 191, 6, 6, 6, 6, 6, 122, + 105, 225, 325, 191, 190, 191, 265, 220, 265, 265, + 119, 110, 191, 266, 243, 261, 191, 191, 191, 100, + 79, 79, 79, 100, 301, 3, 128, 316, 191, 191, + 194, 191, 191, 191, 191, 106, 278, 277, 191, 191, + 119, 265, 191, 191, 309, 302, 301, 190, 261, 6, + 128, 255, 83, 133, 325, 51, 254, 191, 261, 164, + 165, 166, 279, 280, 190, 265, 323, 191, 265, 191, + 6, 17, 167, 170, 281, 3, 290, 168, 169, 281, + 168, 169, 191, 117, 281 +}; + +/* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ +static const yytype_int16 yyr1[] = +{ + 0, 196, 197, 198, 198, 199, 199, 199, 199, 199, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 201, 201, 202, 202, 203, 203, 204, 204, 204, 205, + 205, 206, 207, 208, 208, 209, 209, 210, 211, 212, + 212, 213, 213, 214, 214, 214, 215, 215, 215, 215, + 215, 216, 216, 217, 217, 218, 218, 219, 220, 220, + 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 220, 220, 221, 221, 222, 222, + 222, 223, 223, 224, 224, 225, 225, 225, 225, 226, + 226, 227, 227, 227, 227, 228, 228, 229, 230, 231, + 232, 233, 234, 234, 235, 235, 236, 237, 237, 238, + 239, 239, 239, 240, 240, 241, 241, 242, 242, 243, + 243, 244, 245, 245, 245, 246, 246, 247, 248, 248, + 249, 250, 250, 251, 252, 252, 253, 253, 254, 254, + 255, 255, 256, 256, 257, 258, 258, 258, 259, 259, + 260, 260, 260, 260, 260, 260, 261, 261, 262, 262, + 263, 263, 264, 265, 265, 265, 265, 265, 266, 266, + 266, 266, 266, 266, 266, 266, 266, 266, 266, 267, + 267, 268, 268, 268, 268, 268, 269, 269, 269, 269, + 269, 269, 269, 269, 269, 269, 269, 270, 270, 271, + 271, 271, 271, 272, 272, 272, 272, 273, 273, 274, + 274, 275, 275, 275, 275, 275, 275, 275, 276, 276, + 277, 277, 278, 278, 279, 279, 279, 280, 280, 280, + 281, 281, 281, 281, 281, 282, 283, 284, 284, 284, + 284, 284, 284, 285, 285, 285, 285, 285, 285, 286, + 286, 287, 288, 289, 290, 290, 290, 290, 291, 291, + 291, 291, 291, 291, 291, 292, 293, 293, 294, 294, + 295, 296, 297, 298, 298, 298, 299, 300, 300, 301, + 301, 302, 302, 303, 303, 304, 305, 306, 306, 307, + 307, 308, 308, 309, 309, 310, 310, 311, 311, 312, + 312, 313, 313, 314, 314, 315, 315, 315, 315, 316, + 316, 316, 317, 317, 318, 319, 319, 320, 321, 321, + 321, 322, 322, 322, 322, 322, 322, 322, 322, 322, + 322, 323, 324, 324, 325, 325 +}; + +/* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ +static const yytype_int8 yyr2[] = +{ + 0, 2, 2, 1, 3, 2, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 5, 0, 1, 3, 1, 4, 2, 2, 2, 1, + 0, 4, 1, 2, 5, 7, 6, 1, 1, 3, + 0, 5, 5, 2, 3, 2, 8, 7, 6, 9, + 7, 3, 0, 1, 3, 1, 1, 3, 1, 1, + 4, 4, 1, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 1, 4, 3, 0, 5, 3, + 0, 1, 0, 1, 2, 2, 1, 1, 2, 5, + 4, 4, 4, 3, 4, 2, 0, 5, 1, 4, + 4, 2, 8, 5, 3, 0, 5, 1, 3, 3, + 2, 2, 6, 1, 1, 1, 3, 3, 3, 4, + 6, 2, 1, 1, 1, 1, 0, 7, 1, 0, + 1, 1, 0, 2, 2, 0, 4, 0, 2, 0, + 3, 0, 1, 3, 2, 1, 1, 0, 2, 0, + 2, 2, 4, 2, 4, 0, 1, 3, 1, 0, + 1, 3, 2, 1, 1, 1, 1, 1, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, + 1, 2, 2, 2, 3, 4, 1, 3, 3, 3, + 3, 3, 3, 3, 4, 3, 3, 3, 3, 5, + 6, 5, 6, 4, 6, 3, 5, 4, 5, 4, + 5, 3, 3, 3, 3, 3, 3, 3, 4, 6, + 6, 0, 3, 0, 2, 5, 0, 1, 1, 1, + 2, 2, 2, 2, 1, 6, 6, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 4, 4, 5, 1, 3, 1, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 3, 2, 1, 1, 3, 1, + 1, 1, 4, 1, 3, 2, 1, 1, 3, 1, + 0, 1, 5, 1, 0, 2, 1, 1, 0, 1, + 0, 1, 2, 3, 5, 1, 3, 1, 2, 2, + 1, 0, 1, 0, 2, 1, 3, 3, 4, 6, + 8, 1, 2, 1, 2, 1, 2, 1, 1, 1, + 0, 1, 1, 0, 1, 3 +}; + + +enum { YYENOMEM = -2 }; + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = SQL_HSQL_EMPTY) + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab +#define YYNOMEM goto yyexhaustedlab + + +#define YYRECOVERING() (!!yyerrstatus) + +#define YYBACKUP(Token, Value) \ + do \ + if (yychar == SQL_HSQL_EMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (&yylloc, result, scanner, YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ + while (0) + +/* Backward compatibility with an undocumented macro. + Use SQL_HSQL_error or SQL_HSQL_UNDEF. */ +#define YYERRCODE SQL_HSQL_UNDEF + +/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. + If N is 0, then set CURRENT to the empty location which ends + the previous symbol: RHS[0] (always defined). */ + +#ifndef YYLLOC_DEFAULT +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (N) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ + while (0) +#endif + +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) + + +/* Enable debugging if requested. */ +#if HSQL_DEBUG + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) + + +/* YYLOCATION_PRINT -- Print the location on the stream. + This macro was not mandated originally: define only if we know + we won't break user code: when these are the locations we know. */ + +# ifndef YYLOCATION_PRINT + +# if defined YY_LOCATION_PRINT + + /* Temporary convenience wrapper in case some people defined the + undocumented and private YY_LOCATION_PRINT macros. */ +# define YYLOCATION_PRINT(File, Loc) YY_LOCATION_PRINT(File, *(Loc)) + +# elif defined HSQL_LTYPE_IS_TRIVIAL && HSQL_LTYPE_IS_TRIVIAL + +/* Print *YYLOCP on YYO. Private, do not rely on its existence. */ + +YY_ATTRIBUTE_UNUSED +static int +yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp) +{ + int res = 0; + int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0; + if (0 <= yylocp->first_line) + { + res += YYFPRINTF (yyo, "%d", yylocp->first_line); + if (0 <= yylocp->first_column) + res += YYFPRINTF (yyo, ".%d", yylocp->first_column); + } + if (0 <= yylocp->last_line) + { + if (yylocp->first_line < yylocp->last_line) + { + res += YYFPRINTF (yyo, "-%d", yylocp->last_line); + if (0 <= end_col) + res += YYFPRINTF (yyo, ".%d", end_col); + } + else if (0 <= end_col && yylocp->first_column < end_col) + res += YYFPRINTF (yyo, "-%d", end_col); + } + return res; +} + +# define YYLOCATION_PRINT yy_location_print_ + + /* Temporary convenience wrapper in case some people defined the + undocumented and private YY_LOCATION_PRINT macros. */ +# define YY_LOCATION_PRINT(File, Loc) YYLOCATION_PRINT(File, &(Loc)) + +# else + +# define YYLOCATION_PRINT(File, Loc) ((void) 0) + /* Temporary convenience wrapper in case some people defined the + undocumented and private YY_LOCATION_PRINT macros. */ +# define YY_LOCATION_PRINT YYLOCATION_PRINT + +# endif +# endif /* !defined YYLOCATION_PRINT */ + + +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Kind, Value, Location, result, scanner); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + + +/*-----------------------------------. +| Print this symbol's value on YYO. | +`-----------------------------------*/ + +static void +yy_symbol_value_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, hsql::SQLParserResult* result, yyscan_t scanner) +{ + FILE *yyoutput = yyo; + YY_USE (yyoutput); + YY_USE (yylocationp); + YY_USE (result); + YY_USE (scanner); + if (!yyvaluep) + return; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + YY_USE (yykind); + YY_IGNORE_MAYBE_UNINITIALIZED_END +} + + +/*---------------------------. +| Print this symbol on YYO. | +`---------------------------*/ + +static void +yy_symbol_print (FILE *yyo, + yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, hsql::SQLParserResult* result, yyscan_t scanner) +{ + YYFPRINTF (yyo, "%s %s (", + yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); + + YYLOCATION_PRINT (yyo, yylocationp); + YYFPRINTF (yyo, ": "); + yy_symbol_value_print (yyo, yykind, yyvaluep, yylocationp, result, scanner); + YYFPRINTF (yyo, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +static void +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) +{ + YYFPRINTF (stderr, "Stack now"); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +static void +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, + int yyrule, hsql::SQLParserResult* result, yyscan_t scanner) +{ + int yylno = yyrline[yyrule]; + int yynrhs = yyr2[yyrule]; + int yyi; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, + YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), + &yyvsp[(yyi + 1) - (yynrhs)], + &(yylsp[(yyi + 1) - (yynrhs)]), result, scanner); + YYFPRINTF (stderr, "\n"); + } +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, yylsp, Rule, result, scanner); \ +} while (0) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !HSQL_DEBUG */ +# define YYDPRINTF(Args) ((void) 0) +# define YY_SYMBOL_PRINT(Title, Kind, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !HSQL_DEBUG */ + + +/* YYINITDEPTH -- initial size of the parser's stacks. */ +#ifndef YYINITDEPTH +# define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif + + +/* Context of a parse error. */ +typedef struct +{ + yy_state_t *yyssp; + yysymbol_kind_t yytoken; + YYLTYPE *yylloc; +} yypcontext_t; + +/* Put in YYARG at most YYARGN of the expected tokens given the + current YYCTX, and return the number of tokens stored in YYARG. If + YYARG is null, return the number of expected tokens (guaranteed to + be less than YYNTOKENS). Return YYENOMEM on memory exhaustion. + Return 0 if there are more than YYARGN expected tokens, yet fill + YYARG up to YYARGN. */ +static int +yypcontext_expected_tokens (const yypcontext_t *yyctx, + yysymbol_kind_t yyarg[], int yyargn) +{ + /* Actual size of YYARG. */ + int yycount = 0; + int yyn = yypact[+*yyctx->yyssp]; + if (!yypact_value_is_default (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yyx; + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror + && !yytable_value_is_error (yytable[yyx + yyn])) + { + if (!yyarg) + ++yycount; + else if (yycount == yyargn) + return 0; + else + yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx); + } + } + if (yyarg && yycount == 0 && 0 < yyargn) + yyarg[0] = YYSYMBOL_YYEMPTY; + return yycount; +} + + + + +#ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S))) +# else +/* Return the length of YYSTR. */ +static YYPTRDIFF_T +yystrlen (const char *yystr) +{ + YYPTRDIFF_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) + continue; + return yylen; +} +# endif +#endif + +#ifndef yystpcpy +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +static char * +yystpcpy (char *yydest, const char *yysrc) +{ + char *yyd = yydest; + const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +#endif + +#ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYPTRDIFF_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + YYPTRDIFF_T yyn = 0; + char const *yyp = yystr; + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + else + goto append; + + append: + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (yyres) + return yystpcpy (yyres, yystr) - yyres; + else + return yystrlen (yystr); +} +#endif + + +static int +yy_syntax_error_arguments (const yypcontext_t *yyctx, + yysymbol_kind_t yyarg[], int yyargn) +{ + /* Actual size of YYARG. */ + int yycount = 0; + /* There are many possibilities here to consider: + - If this state is a consistent state with a default action, then + the only way this function was invoked is if the default action + is an error action. In that case, don't check for expected + tokens because there are none. + - The only way there can be no lookahead present (in yychar) is if + this state is a consistent state with a default action. Thus, + detecting the absence of a lookahead is sufficient to determine + that there is no unexpected or expected token to report. In that + case, just report a simple "syntax error". + - Don't assume there isn't a lookahead just because this state is a + consistent state with a default action. There might have been a + previous inconsistent state, consistent state with a non-default + action, or user semantic action that manipulated yychar. + - Of course, the expected token list depends on states to have + correct lookahead information, and it depends on the parser not + to perform extra reductions after fetching a lookahead from the + scanner and before detecting a syntax error. Thus, state merging + (from LALR or IELR) and default reductions corrupt the expected + token list. However, the list is correct for canonical LR with + one exception: it will still contain any token that will not be + accepted due to an error action in a later state. + */ + if (yyctx->yytoken != YYSYMBOL_YYEMPTY) + { + int yyn; + if (yyarg) + yyarg[yycount] = yyctx->yytoken; + ++yycount; + yyn = yypcontext_expected_tokens (yyctx, + yyarg ? yyarg + 1 : yyarg, yyargn - 1); + if (yyn == YYENOMEM) + return YYENOMEM; + else + yycount += yyn; + } + return yycount; +} + +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message + about the unexpected token YYTOKEN for the state stack whose top is + YYSSP. + + Return 0 if *YYMSG was successfully written. Return -1 if *YYMSG is + not large enough to hold the message. In that case, also set + *YYMSG_ALLOC to the required number of bytes. Return YYENOMEM if the + required number of bytes is too large to store. */ +static int +yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, + const yypcontext_t *yyctx) +{ + enum { YYARGS_MAX = 5 }; + /* Internationalized format string. */ + const char *yyformat = YY_NULLPTR; + /* Arguments of yyformat: reported tokens (one for the "unexpected", + one per "expected"). */ + yysymbol_kind_t yyarg[YYARGS_MAX]; + /* Cumulated lengths of YYARG. */ + YYPTRDIFF_T yysize = 0; + + /* Actual size of YYARG. */ + int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX); + if (yycount == YYENOMEM) + return YYENOMEM; + + switch (yycount) + { +#define YYCASE_(N, S) \ + case N: \ + yyformat = S; \ + break + default: /* Avoid compiler warnings. */ + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); +#undef YYCASE_ + } + + /* Compute error message size. Don't count the "%s"s, but reserve + room for the terminator. */ + yysize = yystrlen (yyformat) - 2 * yycount + 1; + { + int yyi; + for (yyi = 0; yyi < yycount; ++yyi) + { + YYPTRDIFF_T yysize1 + = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]); + if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) + yysize = yysize1; + else + return YYENOMEM; + } + } + + if (*yymsg_alloc < yysize) + { + *yymsg_alloc = 2 * yysize; + if (! (yysize <= *yymsg_alloc + && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) + *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; + return -1; + } + + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + { + char *yyp = *yymsg; + int yyi = 0; + while ((*yyp = *yyformat) != '\0') + if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]); + yyformat += 2; + } + else + { + ++yyp; + ++yyformat; + } + } + return 0; +} + + +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +static void +yydestruct (const char *yymsg, + yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, hsql::SQLParserResult* result, yyscan_t scanner) +{ + YY_USE (yyvaluep); + YY_USE (yylocationp); + YY_USE (result); + YY_USE (scanner); + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + switch (yykind) + { + case YYSYMBOL_IDENTIFIER: /* IDENTIFIER */ +#line 181 "bison_parser.y" + { free( (((*yyvaluep).sval)) ); } +#line 2064 "bison_parser.cpp" + break; + + case YYSYMBOL_STRING: /* STRING */ +#line 181 "bison_parser.y" + { free( (((*yyvaluep).sval)) ); } +#line 2070 "bison_parser.cpp" + break; + + case YYSYMBOL_FLOATVAL: /* FLOATVAL */ +#line 168 "bison_parser.y" + { } +#line 2076 "bison_parser.cpp" + break; + + case YYSYMBOL_INTVAL: /* INTVAL */ +#line 168 "bison_parser.y" + { } +#line 2082 "bison_parser.cpp" + break; + + case YYSYMBOL_statement_list: /* statement_list */ +#line 182 "bison_parser.y" + { + if (((*yyvaluep).stmt_vec)) { + for (auto ptr : *(((*yyvaluep).stmt_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).stmt_vec)); + } +#line 2095 "bison_parser.cpp" + break; + + case YYSYMBOL_statement: /* statement */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).statement)); } +#line 2101 "bison_parser.cpp" + break; + + case YYSYMBOL_preparable_statement: /* preparable_statement */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).statement)); } +#line 2107 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_hints: /* opt_hints */ +#line 182 "bison_parser.y" + { + if (((*yyvaluep).expr_vec)) { + for (auto ptr : *(((*yyvaluep).expr_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).expr_vec)); + } +#line 2120 "bison_parser.cpp" + break; + + case YYSYMBOL_hint_list: /* hint_list */ +#line 182 "bison_parser.y" + { + if (((*yyvaluep).expr_vec)) { + for (auto ptr : *(((*yyvaluep).expr_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).expr_vec)); + } +#line 2133 "bison_parser.cpp" + break; + + case YYSYMBOL_hint: /* hint */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2139 "bison_parser.cpp" + break; + + case YYSYMBOL_transaction_statement: /* transaction_statement */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).transaction_stmt)); } +#line 2145 "bison_parser.cpp" + break; + + case YYSYMBOL_prepare_statement: /* prepare_statement */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).prep_stmt)); } +#line 2151 "bison_parser.cpp" + break; + + case YYSYMBOL_prepare_target_query: /* prepare_target_query */ +#line 181 "bison_parser.y" + { free( (((*yyvaluep).sval)) ); } +#line 2157 "bison_parser.cpp" + break; + + case YYSYMBOL_execute_statement: /* execute_statement */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).exec_stmt)); } +#line 2163 "bison_parser.cpp" + break; + + case YYSYMBOL_import_statement: /* import_statement */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).import_stmt)); } +#line 2169 "bison_parser.cpp" + break; + + case YYSYMBOL_file_type: /* file_type */ +#line 168 "bison_parser.y" + { } +#line 2175 "bison_parser.cpp" + break; + + case YYSYMBOL_file_path: /* file_path */ +#line 181 "bison_parser.y" + { free( (((*yyvaluep).sval)) ); } +#line 2181 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_file_type: /* opt_file_type */ +#line 168 "bison_parser.y" + { } +#line 2187 "bison_parser.cpp" + break; + + case YYSYMBOL_export_statement: /* export_statement */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).export_stmt)); } +#line 2193 "bison_parser.cpp" + break; + + case YYSYMBOL_show_statement: /* show_statement */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).show_stmt)); } +#line 2199 "bison_parser.cpp" + break; + + case YYSYMBOL_create_statement: /* create_statement */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).create_stmt)); } +#line 2205 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_not_exists: /* opt_not_exists */ +#line 168 "bison_parser.y" + { } +#line 2211 "bison_parser.cpp" + break; + + case YYSYMBOL_table_elem_commalist: /* table_elem_commalist */ +#line 182 "bison_parser.y" + { + if (((*yyvaluep).table_element_vec)) { + for (auto ptr : *(((*yyvaluep).table_element_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).table_element_vec)); + } +#line 2224 "bison_parser.cpp" + break; + + case YYSYMBOL_table_elem: /* table_elem */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).table_element_t)); } +#line 2230 "bison_parser.cpp" + break; + + case YYSYMBOL_column_def: /* column_def */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).column_t)); } +#line 2236 "bison_parser.cpp" + break; + + case YYSYMBOL_column_type: /* column_type */ +#line 168 "bison_parser.y" + { } +#line 2242 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_time_precision: /* opt_time_precision */ +#line 168 "bison_parser.y" + { } +#line 2248 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_decimal_specification: /* opt_decimal_specification */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).ival_pair)); } +#line 2254 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_column_constraints: /* opt_column_constraints */ +#line 168 "bison_parser.y" + { } +#line 2260 "bison_parser.cpp" + break; + + case YYSYMBOL_column_constraint_set: /* column_constraint_set */ +#line 168 "bison_parser.y" + { } +#line 2266 "bison_parser.cpp" + break; + + case YYSYMBOL_column_constraint: /* column_constraint */ +#line 168 "bison_parser.y" + { } +#line 2272 "bison_parser.cpp" + break; + + case YYSYMBOL_table_constraint: /* table_constraint */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).table_constraint_t)); } +#line 2278 "bison_parser.cpp" + break; + + case YYSYMBOL_drop_statement: /* drop_statement */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).drop_stmt)); } +#line 2284 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_exists: /* opt_exists */ +#line 168 "bison_parser.y" + { } +#line 2290 "bison_parser.cpp" + break; + + case YYSYMBOL_alter_statement: /* alter_statement */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).alter_stmt)); } +#line 2296 "bison_parser.cpp" + break; + + case YYSYMBOL_alter_action: /* alter_action */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).alter_action_t)); } +#line 2302 "bison_parser.cpp" + break; + + case YYSYMBOL_drop_action: /* drop_action */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).drop_action_t)); } +#line 2308 "bison_parser.cpp" + break; + + case YYSYMBOL_delete_statement: /* delete_statement */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).delete_stmt)); } +#line 2314 "bison_parser.cpp" + break; + + case YYSYMBOL_truncate_statement: /* truncate_statement */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).delete_stmt)); } +#line 2320 "bison_parser.cpp" + break; + + case YYSYMBOL_insert_statement: /* insert_statement */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).insert_stmt)); } +#line 2326 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_column_list: /* opt_column_list */ +#line 173 "bison_parser.y" + { + if (((*yyvaluep).str_vec)) { + for (auto ptr : *(((*yyvaluep).str_vec))) { + free(ptr); + } + } + delete (((*yyvaluep).str_vec)); + } +#line 2339 "bison_parser.cpp" + break; + + case YYSYMBOL_update_statement: /* update_statement */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).update_stmt)); } +#line 2345 "bison_parser.cpp" + break; + + case YYSYMBOL_update_clause_commalist: /* update_clause_commalist */ +#line 182 "bison_parser.y" + { + if (((*yyvaluep).update_vec)) { + for (auto ptr : *(((*yyvaluep).update_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).update_vec)); + } +#line 2358 "bison_parser.cpp" + break; + + case YYSYMBOL_update_clause: /* update_clause */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).update_t)); } +#line 2364 "bison_parser.cpp" + break; + + case YYSYMBOL_select_statement: /* select_statement */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).select_stmt)); } +#line 2370 "bison_parser.cpp" + break; + + case YYSYMBOL_select_within_set_operation: /* select_within_set_operation */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).select_stmt)); } +#line 2376 "bison_parser.cpp" + break; + + case YYSYMBOL_select_within_set_operation_no_parentheses: /* select_within_set_operation_no_parentheses */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).select_stmt)); } +#line 2382 "bison_parser.cpp" + break; + + case YYSYMBOL_select_with_paren: /* select_with_paren */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).select_stmt)); } +#line 2388 "bison_parser.cpp" + break; + + case YYSYMBOL_select_no_paren: /* select_no_paren */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).select_stmt)); } +#line 2394 "bison_parser.cpp" + break; + + case YYSYMBOL_set_operator: /* set_operator */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).set_operator_t)); } +#line 2400 "bison_parser.cpp" + break; + + case YYSYMBOL_set_type: /* set_type */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).set_operator_t)); } +#line 2406 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_all: /* opt_all */ +#line 168 "bison_parser.y" + { } +#line 2412 "bison_parser.cpp" + break; + + case YYSYMBOL_select_clause: /* select_clause */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).select_stmt)); } +#line 2418 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_distinct: /* opt_distinct */ +#line 168 "bison_parser.y" + { } +#line 2424 "bison_parser.cpp" + break; + + case YYSYMBOL_select_list: /* select_list */ +#line 182 "bison_parser.y" + { + if (((*yyvaluep).expr_vec)) { + for (auto ptr : *(((*yyvaluep).expr_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).expr_vec)); + } +#line 2437 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_from_clause: /* opt_from_clause */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).table)); } +#line 2443 "bison_parser.cpp" + break; + + case YYSYMBOL_from_clause: /* from_clause */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).table)); } +#line 2449 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_where: /* opt_where */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2455 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_group: /* opt_group */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).group_t)); } +#line 2461 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_having: /* opt_having */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2467 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_order: /* opt_order */ +#line 182 "bison_parser.y" + { + if (((*yyvaluep).order_vec)) { + for (auto ptr : *(((*yyvaluep).order_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).order_vec)); + } +#line 2480 "bison_parser.cpp" + break; + + case YYSYMBOL_order_list: /* order_list */ +#line 182 "bison_parser.y" + { + if (((*yyvaluep).order_vec)) { + for (auto ptr : *(((*yyvaluep).order_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).order_vec)); + } +#line 2493 "bison_parser.cpp" + break; + + case YYSYMBOL_order_desc: /* order_desc */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).order)); } +#line 2499 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_order_type: /* opt_order_type */ +#line 168 "bison_parser.y" + { } +#line 2505 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_top: /* opt_top */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).limit)); } +#line 2511 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_limit: /* opt_limit */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).limit)); } +#line 2517 "bison_parser.cpp" + break; + + case YYSYMBOL_expr_list: /* expr_list */ +#line 182 "bison_parser.y" + { + if (((*yyvaluep).expr_vec)) { + for (auto ptr : *(((*yyvaluep).expr_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).expr_vec)); + } +#line 2530 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_literal_list: /* opt_literal_list */ +#line 182 "bison_parser.y" + { + if (((*yyvaluep).expr_vec)) { + for (auto ptr : *(((*yyvaluep).expr_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).expr_vec)); + } +#line 2543 "bison_parser.cpp" + break; + + case YYSYMBOL_literal_list: /* literal_list */ +#line 182 "bison_parser.y" + { + if (((*yyvaluep).expr_vec)) { + for (auto ptr : *(((*yyvaluep).expr_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).expr_vec)); + } +#line 2556 "bison_parser.cpp" + break; + + case YYSYMBOL_expr_alias: /* expr_alias */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2562 "bison_parser.cpp" + break; + + case YYSYMBOL_expr: /* expr */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2568 "bison_parser.cpp" + break; + + case YYSYMBOL_operand: /* operand */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2574 "bison_parser.cpp" + break; + + case YYSYMBOL_scalar_expr: /* scalar_expr */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2580 "bison_parser.cpp" + break; + + case YYSYMBOL_unary_expr: /* unary_expr */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2586 "bison_parser.cpp" + break; + + case YYSYMBOL_binary_expr: /* binary_expr */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2592 "bison_parser.cpp" + break; + + case YYSYMBOL_logic_expr: /* logic_expr */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2598 "bison_parser.cpp" + break; + + case YYSYMBOL_in_expr: /* in_expr */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2604 "bison_parser.cpp" + break; + + case YYSYMBOL_case_expr: /* case_expr */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2610 "bison_parser.cpp" + break; + + case YYSYMBOL_case_list: /* case_list */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2616 "bison_parser.cpp" + break; + + case YYSYMBOL_exists_expr: /* exists_expr */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2622 "bison_parser.cpp" + break; + + case YYSYMBOL_comp_expr: /* comp_expr */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2628 "bison_parser.cpp" + break; + + case YYSYMBOL_function_expr: /* function_expr */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2634 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_window: /* opt_window */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).window_description)); } +#line 2640 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_partition: /* opt_partition */ +#line 182 "bison_parser.y" + { + if (((*yyvaluep).expr_vec)) { + for (auto ptr : *(((*yyvaluep).expr_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).expr_vec)); + } +#line 2653 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_frame_clause: /* opt_frame_clause */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).frame_description)); } +#line 2659 "bison_parser.cpp" + break; + + case YYSYMBOL_frame_type: /* frame_type */ +#line 168 "bison_parser.y" + { } +#line 2665 "bison_parser.cpp" + break; + + case YYSYMBOL_frame_bound: /* frame_bound */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).frame_bound)); } +#line 2671 "bison_parser.cpp" + break; + + case YYSYMBOL_extract_expr: /* extract_expr */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2677 "bison_parser.cpp" + break; + + case YYSYMBOL_cast_expr: /* cast_expr */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2683 "bison_parser.cpp" + break; + + case YYSYMBOL_datetime_field: /* datetime_field */ +#line 168 "bison_parser.y" + { } +#line 2689 "bison_parser.cpp" + break; + + case YYSYMBOL_datetime_field_plural: /* datetime_field_plural */ +#line 168 "bison_parser.y" + { } +#line 2695 "bison_parser.cpp" + break; + + case YYSYMBOL_duration_field: /* duration_field */ +#line 168 "bison_parser.y" + { } +#line 2701 "bison_parser.cpp" + break; + + case YYSYMBOL_array_expr: /* array_expr */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2707 "bison_parser.cpp" + break; + + case YYSYMBOL_array_index: /* array_index */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2713 "bison_parser.cpp" + break; + + case YYSYMBOL_between_expr: /* between_expr */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2719 "bison_parser.cpp" + break; + + case YYSYMBOL_column_name: /* column_name */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2725 "bison_parser.cpp" + break; + + case YYSYMBOL_literal: /* literal */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2731 "bison_parser.cpp" + break; + + case YYSYMBOL_string_literal: /* string_literal */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2737 "bison_parser.cpp" + break; + + case YYSYMBOL_bool_literal: /* bool_literal */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2743 "bison_parser.cpp" + break; + + case YYSYMBOL_num_literal: /* num_literal */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2749 "bison_parser.cpp" + break; + + case YYSYMBOL_int_literal: /* int_literal */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2755 "bison_parser.cpp" + break; + + case YYSYMBOL_null_literal: /* null_literal */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2761 "bison_parser.cpp" + break; + + case YYSYMBOL_date_literal: /* date_literal */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2767 "bison_parser.cpp" + break; + + case YYSYMBOL_interval_literal: /* interval_literal */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2773 "bison_parser.cpp" + break; + + case YYSYMBOL_param_expr: /* param_expr */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2779 "bison_parser.cpp" + break; + + case YYSYMBOL_table_ref: /* table_ref */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).table)); } +#line 2785 "bison_parser.cpp" + break; + + case YYSYMBOL_table_ref_atomic: /* table_ref_atomic */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).table)); } +#line 2791 "bison_parser.cpp" + break; + + case YYSYMBOL_nonjoin_table_ref_atomic: /* nonjoin_table_ref_atomic */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).table)); } +#line 2797 "bison_parser.cpp" + break; + + case YYSYMBOL_table_ref_commalist: /* table_ref_commalist */ +#line 182 "bison_parser.y" + { + if (((*yyvaluep).table_vec)) { + for (auto ptr : *(((*yyvaluep).table_vec))) { + delete ptr; + } + } + delete (((*yyvaluep).table_vec)); + } +#line 2810 "bison_parser.cpp" + break; + + case YYSYMBOL_table_ref_name: /* table_ref_name */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).table)); } +#line 2816 "bison_parser.cpp" + break; + + case YYSYMBOL_table_ref_name_no_alias: /* table_ref_name_no_alias */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).table)); } +#line 2822 "bison_parser.cpp" + break; + + case YYSYMBOL_table_name: /* table_name */ +#line 169 "bison_parser.y" + { + free( (((*yyvaluep).table_name).name) ); + free( (((*yyvaluep).table_name).schema) ); + } +#line 2831 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_index_name: /* opt_index_name */ +#line 181 "bison_parser.y" + { free( (((*yyvaluep).sval)) ); } +#line 2837 "bison_parser.cpp" + break; + + case YYSYMBOL_table_alias: /* table_alias */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).alias_t)); } +#line 2843 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_table_alias: /* opt_table_alias */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).alias_t)); } +#line 2849 "bison_parser.cpp" + break; + + case YYSYMBOL_alias: /* alias */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).alias_t)); } +#line 2855 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_alias: /* opt_alias */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).alias_t)); } +#line 2861 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_locking_clause: /* opt_locking_clause */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).locking_clause_vec)); } +#line 2867 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_locking_clause_list: /* opt_locking_clause_list */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).locking_clause_vec)); } +#line 2873 "bison_parser.cpp" + break; + + case YYSYMBOL_locking_clause: /* locking_clause */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).locking_t)); } +#line 2879 "bison_parser.cpp" + break; + + case YYSYMBOL_row_lock_mode: /* row_lock_mode */ +#line 168 "bison_parser.y" + { } +#line 2885 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_row_lock_policy: /* opt_row_lock_policy */ +#line 168 "bison_parser.y" + { } +#line 2891 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_with_clause: /* opt_with_clause */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).with_description_vec)); } +#line 2897 "bison_parser.cpp" + break; + + case YYSYMBOL_with_clause: /* with_clause */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).with_description_vec)); } +#line 2903 "bison_parser.cpp" + break; + + case YYSYMBOL_with_description_list: /* with_description_list */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).with_description_vec)); } +#line 2909 "bison_parser.cpp" + break; + + case YYSYMBOL_with_description: /* with_description */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).with_description_t)); } +#line 2915 "bison_parser.cpp" + break; + + case YYSYMBOL_join_clause: /* join_clause */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).table)); } +#line 2921 "bison_parser.cpp" + break; + + case YYSYMBOL_opt_join_type: /* opt_join_type */ +#line 168 "bison_parser.y" + { } +#line 2927 "bison_parser.cpp" + break; + + case YYSYMBOL_join_condition: /* join_condition */ +#line 190 "bison_parser.y" + { delete (((*yyvaluep).expr)); } +#line 2933 "bison_parser.cpp" + break; + + case YYSYMBOL_ident_commalist: /* ident_commalist */ +#line 173 "bison_parser.y" + { + if (((*yyvaluep).str_vec)) { + for (auto ptr : *(((*yyvaluep).str_vec))) { + free(ptr); + } + } + delete (((*yyvaluep).str_vec)); + } +#line 2946 "bison_parser.cpp" + break; + + default: + break; + } + YY_IGNORE_MAYBE_UNINITIALIZED_END +} + + + + + + +/*----------. +| yyparse. | +`----------*/ + +int +yyparse (hsql::SQLParserResult* result, yyscan_t scanner) +{ +/* Lookahead token kind. */ +int yychar; + + +/* The semantic value of the lookahead symbol. */ +/* Default value used for initialization, for pacifying older GCCs + or non-GCC compilers. */ +YY_INITIAL_VALUE (static YYSTYPE yyval_default;) +YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); + +/* Location data for the lookahead symbol. */ +static YYLTYPE yyloc_default +# if defined HSQL_LTYPE_IS_TRIVIAL && HSQL_LTYPE_IS_TRIVIAL + = { 1, 1, 1, 1 } +# endif +; +YYLTYPE yylloc = yyloc_default; + + /* Number of syntax errors so far. */ + int yynerrs = 0; + + yy_state_fast_t yystate = 0; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus = 0; + + /* Refer to the stacks through separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* Their size. */ + YYPTRDIFF_T yystacksize = YYINITDEPTH; + + /* The state stack: array, bottom, top. */ + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; + + /* The semantic value stack: array, bottom, top. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; + + /* The location stack: array, bottom, top. */ + YYLTYPE yylsa[YYINITDEPTH]; + YYLTYPE *yyls = yylsa; + YYLTYPE *yylsp = yyls; + + int yyn; + /* The return value of yyparse. */ + int yyresult; + /* Lookahead symbol kind. */ + yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + YYLTYPE yyloc; + + /* The locations where the error started and ended. */ + YYLTYPE yyerror_range[3]; + + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf; + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) + + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; + + YYDPRINTF ((stderr, "Starting parse\n")); + + yychar = SQL_HSQL_EMPTY; /* Cause a token to be read. */ + + +/* User initialization code. */ +#line 75 "bison_parser.y" +{ + // Initialize + yylloc.first_column = 0; + yylloc.last_column = 0; + yylloc.first_line = 0; + yylloc.last_line = 0; + yylloc.total_column = 0; + yylloc.string_length = 0; +} + +#line 3054 "bison_parser.cpp" + + yylsp[0] = yylloc; + goto yysetstate; + + +/*------------------------------------------------------------. +| yynewstate -- push a new state, which is found in yystate. | +`------------------------------------------------------------*/ +yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. So pushing a state here evens the stacks. */ + yyssp++; + + +/*--------------------------------------------------------------------. +| yysetstate -- set current state (the top of the stack) to yystate. | +`--------------------------------------------------------------------*/ +yysetstate: + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END + YY_STACK_PRINT (yyss, yyssp); + + if (yyss + yystacksize - 1 <= yyssp) +#if !defined yyoverflow && !defined YYSTACK_RELOCATE + YYNOMEM; +#else + { + /* Get the current used size of the three stacks, in elements. */ + YYPTRDIFF_T yysize = yyssp - yyss + 1; + +# if defined yyoverflow + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + yy_state_t *yyss1 = yyss; + YYSTYPE *yyvs1 = yyvs; + YYLTYPE *yyls1 = yyls; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), + &yyls1, yysize * YYSIZEOF (*yylsp), + &yystacksize); + yyss = yyss1; + yyvs = yyvs1; + yyls = yyls1; + } +# else /* defined YYSTACK_RELOCATE */ + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + YYNOMEM; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + yy_state_t *yyss1 = yyss; + union yyalloc *yyptr = + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); + if (! yyptr) + YYNOMEM; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); + YYSTACK_RELOCATE (yyls_alloc, yyls); +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + yylsp = yyls + yysize - 1; + + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } +#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ + + + if (yystate == YYFINAL) + YYACCEPT; + + goto yybackup; + + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + /* Do appropriate processing given the current state. Read a + lookahead token if we need one and don't already have one. */ + + /* First try to decide what to do without reference to lookahead token. */ + yyn = yypact[yystate]; + if (yypact_value_is_default (yyn)) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ + if (yychar == SQL_HSQL_EMPTY) + { + YYDPRINTF ((stderr, "Reading a token\n")); + yychar = yylex (&yylval, &yylloc, scanner); + } + + if (yychar <= SQL_YYEOF) + { + yychar = SQL_YYEOF; + yytoken = YYSYMBOL_YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); + } + else if (yychar == SQL_HSQL_error) + { + /* The scanner already issued an error message, process directly + to error recovery. But do not keep the error token as + lookahead, it is too special and may lead us to an endless + loop in error recovery. */ + yychar = SQL_HSQL_UNDEF; + yytoken = YYSYMBOL_YYerror; + yyerror_range[1] = yylloc; + goto yyerrlab1; + } + else + { + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + } + + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) + { + if (yytable_value_is_error (yyn)) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + + /* Shift the lookahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + yystate = yyn; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + *++yylsp = yylloc; + + /* Discard the shifted token. */ + yychar = SQL_HSQL_EMPTY; + goto yynewstate; + + +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; + + +/*-----------------------------. +| yyreduce -- do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: + '$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + /* Default location. */ + YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); + yyerror_range[1] = yyloc; + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 2: /* input: statement_list opt_semicolon */ +#line 322 "bison_parser.y" + { + for (SQLStatement* stmt : *(yyvsp[-1].stmt_vec)) { + // Transfers ownership of the statement. + result->addStatement(stmt); + } + + unsigned param_id = 0; + for (void* param : yyloc.param_list) { + if (param) { + Expr* expr = (Expr*)param; + expr->ival = param_id; + result->addParameter(expr); + ++param_id; + } + } + delete (yyvsp[-1].stmt_vec); + } +#line 3283 "bison_parser.cpp" + break; + + case 3: /* statement_list: statement */ +#line 341 "bison_parser.y" + { + (yyvsp[0].statement)->stringLength = yylloc.string_length; + yylloc.string_length = 0; + (yyval.stmt_vec) = new std::vector(); + (yyval.stmt_vec)->push_back((yyvsp[0].statement)); +} +#line 3294 "bison_parser.cpp" + break; + + case 4: /* statement_list: statement_list ';' statement */ +#line 347 "bison_parser.y" + { + (yyvsp[0].statement)->stringLength = yylloc.string_length; + yylloc.string_length = 0; + (yyvsp[-2].stmt_vec)->push_back((yyvsp[0].statement)); + (yyval.stmt_vec) = (yyvsp[-2].stmt_vec); +} +#line 3305 "bison_parser.cpp" + break; + + case 5: /* statement: prepare_statement opt_hints */ +#line 354 "bison_parser.y" + { + (yyval.statement) = (yyvsp[-1].prep_stmt); + (yyval.statement)->hints = (yyvsp[0].expr_vec); +} +#line 3314 "bison_parser.cpp" + break; + + case 6: /* statement: preparable_statement opt_hints */ +#line 358 "bison_parser.y" + { + (yyval.statement) = (yyvsp[-1].statement); + (yyval.statement)->hints = (yyvsp[0].expr_vec); +} +#line 3323 "bison_parser.cpp" + break; + + case 7: /* statement: show_statement */ +#line 362 "bison_parser.y" + { (yyval.statement) = (yyvsp[0].show_stmt); } +#line 3329 "bison_parser.cpp" + break; + + case 8: /* statement: import_statement */ +#line 363 "bison_parser.y" + { (yyval.statement) = (yyvsp[0].import_stmt); } +#line 3335 "bison_parser.cpp" + break; + + case 9: /* statement: export_statement */ +#line 364 "bison_parser.y" + { (yyval.statement) = (yyvsp[0].export_stmt); } +#line 3341 "bison_parser.cpp" + break; + + case 10: /* preparable_statement: select_statement */ +#line 366 "bison_parser.y" + { (yyval.statement) = (yyvsp[0].select_stmt); } +#line 3347 "bison_parser.cpp" + break; + + case 11: /* preparable_statement: create_statement */ +#line 367 "bison_parser.y" + { (yyval.statement) = (yyvsp[0].create_stmt); } +#line 3353 "bison_parser.cpp" + break; + + case 12: /* preparable_statement: insert_statement */ +#line 368 "bison_parser.y" + { (yyval.statement) = (yyvsp[0].insert_stmt); } +#line 3359 "bison_parser.cpp" + break; + + case 13: /* preparable_statement: delete_statement */ +#line 369 "bison_parser.y" + { (yyval.statement) = (yyvsp[0].delete_stmt); } +#line 3365 "bison_parser.cpp" + break; + + case 14: /* preparable_statement: truncate_statement */ +#line 370 "bison_parser.y" + { (yyval.statement) = (yyvsp[0].delete_stmt); } +#line 3371 "bison_parser.cpp" + break; + + case 15: /* preparable_statement: update_statement */ +#line 371 "bison_parser.y" + { (yyval.statement) = (yyvsp[0].update_stmt); } +#line 3377 "bison_parser.cpp" + break; + + case 16: /* preparable_statement: drop_statement */ +#line 372 "bison_parser.y" + { (yyval.statement) = (yyvsp[0].drop_stmt); } +#line 3383 "bison_parser.cpp" + break; + + case 17: /* preparable_statement: alter_statement */ +#line 373 "bison_parser.y" + { (yyval.statement) = (yyvsp[0].alter_stmt); } +#line 3389 "bison_parser.cpp" + break; + + case 18: /* preparable_statement: execute_statement */ +#line 374 "bison_parser.y" + { (yyval.statement) = (yyvsp[0].exec_stmt); } +#line 3395 "bison_parser.cpp" + break; + + case 19: /* preparable_statement: transaction_statement */ +#line 375 "bison_parser.y" + { (yyval.statement) = (yyvsp[0].transaction_stmt); } +#line 3401 "bison_parser.cpp" + break; + + case 20: /* opt_hints: WITH HINT '(' hint_list ')' */ +#line 381 "bison_parser.y" + { (yyval.expr_vec) = (yyvsp[-1].expr_vec); } +#line 3407 "bison_parser.cpp" + break; + + case 21: /* opt_hints: %empty */ +#line 382 "bison_parser.y" + { (yyval.expr_vec) = nullptr; } +#line 3413 "bison_parser.cpp" + break; + + case 22: /* hint_list: hint */ +#line 384 "bison_parser.y" + { + (yyval.expr_vec) = new std::vector(); + (yyval.expr_vec)->push_back((yyvsp[0].expr)); +} +#line 3422 "bison_parser.cpp" + break; + + case 23: /* hint_list: hint_list ',' hint */ +#line 388 "bison_parser.y" + { + (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); + (yyval.expr_vec) = (yyvsp[-2].expr_vec); +} +#line 3431 "bison_parser.cpp" + break; + + case 24: /* hint: IDENTIFIER */ +#line 393 "bison_parser.y" + { + (yyval.expr) = Expr::make(kExprHint); + (yyval.expr)->name = (yyvsp[0].sval); +} +#line 3440 "bison_parser.cpp" + break; + + case 25: /* hint: IDENTIFIER '(' literal_list ')' */ +#line 397 "bison_parser.y" + { + (yyval.expr) = Expr::make(kExprHint); + (yyval.expr)->name = (yyvsp[-3].sval); + (yyval.expr)->exprList = (yyvsp[-1].expr_vec); +} +#line 3450 "bison_parser.cpp" + break; + + case 26: /* transaction_statement: BEGIN opt_transaction_keyword */ +#line 407 "bison_parser.y" + { (yyval.transaction_stmt) = new TransactionStatement(kBeginTransaction); } +#line 3456 "bison_parser.cpp" + break; + + case 27: /* transaction_statement: ROLLBACK opt_transaction_keyword */ +#line 408 "bison_parser.y" + { (yyval.transaction_stmt) = new TransactionStatement(kRollbackTransaction); } +#line 3462 "bison_parser.cpp" + break; + + case 28: /* transaction_statement: COMMIT opt_transaction_keyword */ +#line 409 "bison_parser.y" + { (yyval.transaction_stmt) = new TransactionStatement(kCommitTransaction); } +#line 3468 "bison_parser.cpp" + break; + + case 31: /* prepare_statement: PREPARE IDENTIFIER FROM prepare_target_query */ +#line 417 "bison_parser.y" + { + (yyval.prep_stmt) = new PrepareStatement(); + (yyval.prep_stmt)->name = (yyvsp[-2].sval); + (yyval.prep_stmt)->query = (yyvsp[0].sval); +} +#line 3478 "bison_parser.cpp" + break; + + case 33: /* execute_statement: EXECUTE IDENTIFIER */ +#line 425 "bison_parser.y" + { + (yyval.exec_stmt) = new ExecuteStatement(); + (yyval.exec_stmt)->name = (yyvsp[0].sval); +} +#line 3487 "bison_parser.cpp" + break; + + case 34: /* execute_statement: EXECUTE IDENTIFIER '(' opt_literal_list ')' */ +#line 429 "bison_parser.y" + { + (yyval.exec_stmt) = new ExecuteStatement(); + (yyval.exec_stmt)->name = (yyvsp[-3].sval); + (yyval.exec_stmt)->parameters = (yyvsp[-1].expr_vec); +} +#line 3497 "bison_parser.cpp" + break; + + case 35: /* import_statement: IMPORT FROM file_type FILE file_path INTO table_name */ +#line 440 "bison_parser.y" + { + (yyval.import_stmt) = new ImportStatement((yyvsp[-4].import_type_t)); + (yyval.import_stmt)->filePath = (yyvsp[-2].sval); + (yyval.import_stmt)->schema = (yyvsp[0].table_name).schema; + (yyval.import_stmt)->tableName = (yyvsp[0].table_name).name; +} +#line 3508 "bison_parser.cpp" + break; + + case 36: /* import_statement: COPY table_name FROM file_path opt_file_type opt_where */ +#line 446 "bison_parser.y" + { + (yyval.import_stmt) = new ImportStatement((yyvsp[-1].import_type_t)); + (yyval.import_stmt)->filePath = (yyvsp[-2].sval); + (yyval.import_stmt)->schema = (yyvsp[-4].table_name).schema; + (yyval.import_stmt)->tableName = (yyvsp[-4].table_name).name; + (yyval.import_stmt)->whereClause = (yyvsp[0].expr); +} +#line 3520 "bison_parser.cpp" + break; + + case 37: /* file_type: IDENTIFIER */ +#line 454 "bison_parser.y" + { + if (strcasecmp((yyvsp[0].sval), "csv") == 0) { + (yyval.import_type_t) = kImportCSV; + } else if (strcasecmp((yyvsp[0].sval), "tbl") == 0) { + (yyval.import_type_t) = kImportTbl; + } else if (strcasecmp((yyvsp[0].sval), "binary") == 0 || strcasecmp((yyvsp[0].sval), "bin") == 0) { + (yyval.import_type_t) = kImportBinary; + } else { + free((yyvsp[0].sval)); + yyerror(&yyloc, result, scanner, "File type is unknown."); + YYERROR; + } + free((yyvsp[0].sval)); +} +#line 3539 "bison_parser.cpp" + break; + + case 38: /* file_path: string_literal */ +#line 469 "bison_parser.y" + { + (yyval.sval) = strdup((yyvsp[0].expr)->name); + delete (yyvsp[0].expr); +} +#line 3548 "bison_parser.cpp" + break; + + case 39: /* opt_file_type: WITH FORMAT file_type */ +#line 474 "bison_parser.y" + { (yyval.import_type_t) = (yyvsp[0].import_type_t); } +#line 3554 "bison_parser.cpp" + break; + + case 40: /* opt_file_type: %empty */ +#line 475 "bison_parser.y" + { (yyval.import_type_t) = kImportAuto; } +#line 3560 "bison_parser.cpp" + break; + + case 41: /* export_statement: COPY table_name TO file_path opt_file_type */ +#line 481 "bison_parser.y" + { + (yyval.export_stmt) = new ExportStatement((yyvsp[0].import_type_t)); + (yyval.export_stmt)->filePath = (yyvsp[-1].sval); + (yyval.export_stmt)->schema = (yyvsp[-3].table_name).schema; + (yyval.export_stmt)->tableName = (yyvsp[-3].table_name).name; +} +#line 3571 "bison_parser.cpp" + break; + + case 42: /* export_statement: COPY select_with_paren TO file_path opt_file_type */ +#line 487 "bison_parser.y" + { + (yyval.export_stmt) = new ExportStatement((yyvsp[0].import_type_t)); + (yyval.export_stmt)->filePath = (yyvsp[-1].sval); + (yyval.export_stmt)->select = (yyvsp[-3].select_stmt); +} +#line 3581 "bison_parser.cpp" + break; + + case 43: /* show_statement: SHOW TABLES */ +#line 498 "bison_parser.y" + { (yyval.show_stmt) = new ShowStatement(kShowTables); } +#line 3587 "bison_parser.cpp" + break; + + case 44: /* show_statement: SHOW COLUMNS table_name */ +#line 499 "bison_parser.y" + { + (yyval.show_stmt) = new ShowStatement(kShowColumns); + (yyval.show_stmt)->schema = (yyvsp[0].table_name).schema; + (yyval.show_stmt)->name = (yyvsp[0].table_name).name; +} +#line 3597 "bison_parser.cpp" + break; + + case 45: /* show_statement: DESCRIBE table_name */ +#line 504 "bison_parser.y" + { + (yyval.show_stmt) = new ShowStatement(kShowColumns); + (yyval.show_stmt)->schema = (yyvsp[0].table_name).schema; + (yyval.show_stmt)->name = (yyvsp[0].table_name).name; +} +#line 3607 "bison_parser.cpp" + break; + + case 46: /* create_statement: CREATE TABLE opt_not_exists table_name FROM IDENTIFIER FILE file_path */ +#line 515 "bison_parser.y" + { + (yyval.create_stmt) = new CreateStatement(kCreateTableFromTbl); + (yyval.create_stmt)->ifNotExists = (yyvsp[-5].bval); + (yyval.create_stmt)->schema = (yyvsp[-4].table_name).schema; + (yyval.create_stmt)->tableName = (yyvsp[-4].table_name).name; + if (strcasecmp((yyvsp[-2].sval), "tbl") != 0) { + free((yyvsp[-2].sval)); + yyerror(&yyloc, result, scanner, "File type is unknown."); + YYERROR; + } + free((yyvsp[-2].sval)); + (yyval.create_stmt)->filePath = (yyvsp[0].sval); +} +#line 3625 "bison_parser.cpp" + break; + + case 47: /* create_statement: CREATE TABLE opt_not_exists table_name '(' table_elem_commalist ')' */ +#line 528 "bison_parser.y" + { + (yyval.create_stmt) = new CreateStatement(kCreateTable); + (yyval.create_stmt)->ifNotExists = (yyvsp[-4].bval); + (yyval.create_stmt)->schema = (yyvsp[-3].table_name).schema; + (yyval.create_stmt)->tableName = (yyvsp[-3].table_name).name; + (yyval.create_stmt)->setColumnDefsAndConstraints((yyvsp[-1].table_element_vec)); + delete (yyvsp[-1].table_element_vec); + if (result->errorMsg()) { + delete (yyval.create_stmt); + YYERROR; + } +} +#line 3642 "bison_parser.cpp" + break; + + case 48: /* create_statement: CREATE TABLE opt_not_exists table_name AS select_statement */ +#line 540 "bison_parser.y" + { + (yyval.create_stmt) = new CreateStatement(kCreateTable); + (yyval.create_stmt)->ifNotExists = (yyvsp[-3].bval); + (yyval.create_stmt)->schema = (yyvsp[-2].table_name).schema; + (yyval.create_stmt)->tableName = (yyvsp[-2].table_name).name; + (yyval.create_stmt)->select = (yyvsp[0].select_stmt); +} +#line 3654 "bison_parser.cpp" + break; + + case 49: /* create_statement: CREATE INDEX opt_not_exists opt_index_name ON table_name '(' ident_commalist ')' */ +#line 547 "bison_parser.y" + { + (yyval.create_stmt) = new CreateStatement(kCreateIndex); + (yyval.create_stmt)->indexName = (yyvsp[-5].sval); + (yyval.create_stmt)->ifNotExists = (yyvsp[-6].bval); + (yyval.create_stmt)->tableName = (yyvsp[-3].table_name).name; + (yyval.create_stmt)->indexColumns = (yyvsp[-1].str_vec); +} +#line 3666 "bison_parser.cpp" + break; + + case 50: /* create_statement: CREATE VIEW opt_not_exists table_name opt_column_list AS select_statement */ +#line 554 "bison_parser.y" + { + (yyval.create_stmt) = new CreateStatement(kCreateView); + (yyval.create_stmt)->ifNotExists = (yyvsp[-4].bval); + (yyval.create_stmt)->schema = (yyvsp[-3].table_name).schema; + (yyval.create_stmt)->tableName = (yyvsp[-3].table_name).name; + (yyval.create_stmt)->viewColumns = (yyvsp[-2].str_vec); + (yyval.create_stmt)->select = (yyvsp[0].select_stmt); +} +#line 3679 "bison_parser.cpp" + break; + + case 51: /* opt_not_exists: IF NOT EXISTS */ +#line 563 "bison_parser.y" + { (yyval.bval) = true; } +#line 3685 "bison_parser.cpp" + break; + + case 52: /* opt_not_exists: %empty */ +#line 564 "bison_parser.y" + { (yyval.bval) = false; } +#line 3691 "bison_parser.cpp" + break; + + case 53: /* table_elem_commalist: table_elem */ +#line 566 "bison_parser.y" + { + (yyval.table_element_vec) = new std::vector(); + (yyval.table_element_vec)->push_back((yyvsp[0].table_element_t)); +} +#line 3700 "bison_parser.cpp" + break; + + case 54: /* table_elem_commalist: table_elem_commalist ',' table_elem */ +#line 570 "bison_parser.y" + { + (yyvsp[-2].table_element_vec)->push_back((yyvsp[0].table_element_t)); + (yyval.table_element_vec) = (yyvsp[-2].table_element_vec); +} +#line 3709 "bison_parser.cpp" + break; + + case 55: /* table_elem: column_def */ +#line 575 "bison_parser.y" + { (yyval.table_element_t) = (yyvsp[0].column_t); } +#line 3715 "bison_parser.cpp" + break; + + case 56: /* table_elem: table_constraint */ +#line 576 "bison_parser.y" + { (yyval.table_element_t) = (yyvsp[0].table_constraint_t); } +#line 3721 "bison_parser.cpp" + break; + + case 57: /* column_def: IDENTIFIER column_type opt_column_constraints */ +#line 578 "bison_parser.y" + { + (yyval.column_t) = new ColumnDefinition((yyvsp[-2].sval), (yyvsp[-1].column_type_t), (yyvsp[0].column_constraint_set)); + if (!(yyval.column_t)->trySetNullableExplicit()) { + yyerror(&yyloc, result, scanner, ("Conflicting nullability constraints for " + std::string{(yyvsp[-2].sval)}).c_str()); + } +} +#line 3732 "bison_parser.cpp" + break; + + case 58: /* column_type: BIGINT */ +#line 585 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::BIGINT}; } +#line 3738 "bison_parser.cpp" + break; + + case 59: /* column_type: BOOLEAN */ +#line 586 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::BOOLEAN}; } +#line 3744 "bison_parser.cpp" + break; + + case 60: /* column_type: CHAR '(' INTVAL ')' */ +#line 587 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::CHAR, (yyvsp[-1].ival)}; } +#line 3750 "bison_parser.cpp" + break; + + case 61: /* column_type: CHARACTER_VARYING '(' INTVAL ')' */ +#line 588 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::VARCHAR, (yyvsp[-1].ival)}; } +#line 3756 "bison_parser.cpp" + break; + + case 62: /* column_type: DATE */ +#line 589 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::DATE}; } +#line 3762 "bison_parser.cpp" + break; + + case 63: /* column_type: DATETIME */ +#line 590 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::DATETIME}; } +#line 3768 "bison_parser.cpp" + break; + + case 64: /* column_type: DECIMAL opt_decimal_specification */ +#line 591 "bison_parser.y" + { + (yyval.column_type_t) = ColumnType{DataType::DECIMAL, 0, (yyvsp[0].ival_pair)->first, (yyvsp[0].ival_pair)->second}; + delete (yyvsp[0].ival_pair); +} +#line 3777 "bison_parser.cpp" + break; + + case 65: /* column_type: DOUBLE */ +#line 595 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::DOUBLE}; } +#line 3783 "bison_parser.cpp" + break; + + case 66: /* column_type: FLOAT */ +#line 596 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::FLOAT}; } +#line 3789 "bison_parser.cpp" + break; + + case 67: /* column_type: INT */ +#line 597 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::INT}; } +#line 3795 "bison_parser.cpp" + break; + + case 68: /* column_type: INTEGER */ +#line 598 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::INT}; } +#line 3801 "bison_parser.cpp" + break; + + case 69: /* column_type: LONG */ +#line 599 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::LONG}; } +#line 3807 "bison_parser.cpp" + break; + + case 70: /* column_type: REAL */ +#line 600 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::REAL}; } +#line 3813 "bison_parser.cpp" + break; + + case 71: /* column_type: SMALLINT */ +#line 601 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::SMALLINT}; } +#line 3819 "bison_parser.cpp" + break; + + case 72: /* column_type: TEXT */ +#line 602 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::TEXT}; } +#line 3825 "bison_parser.cpp" + break; + + case 73: /* column_type: TIME opt_time_precision */ +#line 603 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::TIME, 0, (yyvsp[0].ival)}; } +#line 3831 "bison_parser.cpp" + break; + + case 74: /* column_type: TIMESTAMP */ +#line 604 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::DATETIME}; } +#line 3837 "bison_parser.cpp" + break; + + case 75: /* column_type: VARCHAR '(' INTVAL ')' */ +#line 605 "bison_parser.y" + { (yyval.column_type_t) = ColumnType{DataType::VARCHAR, (yyvsp[-1].ival)}; } +#line 3843 "bison_parser.cpp" + break; + + case 76: /* opt_time_precision: '(' INTVAL ')' */ +#line 607 "bison_parser.y" + { (yyval.ival) = (yyvsp[-1].ival); } +#line 3849 "bison_parser.cpp" + break; + + case 77: /* opt_time_precision: %empty */ +#line 608 "bison_parser.y" + { (yyval.ival) = 0; } +#line 3855 "bison_parser.cpp" + break; + + case 78: /* opt_decimal_specification: '(' INTVAL ',' INTVAL ')' */ +#line 610 "bison_parser.y" + { (yyval.ival_pair) = new std::pair{(yyvsp[-3].ival), (yyvsp[-1].ival)}; } +#line 3861 "bison_parser.cpp" + break; + + case 79: /* opt_decimal_specification: '(' INTVAL ')' */ +#line 611 "bison_parser.y" + { (yyval.ival_pair) = new std::pair{(yyvsp[-1].ival), 0}; } +#line 3867 "bison_parser.cpp" + break; + + case 80: /* opt_decimal_specification: %empty */ +#line 612 "bison_parser.y" + { (yyval.ival_pair) = new std::pair{0, 0}; } +#line 3873 "bison_parser.cpp" + break; + + case 81: /* opt_column_constraints: column_constraint_set */ +#line 614 "bison_parser.y" + { (yyval.column_constraint_set) = (yyvsp[0].column_constraint_set); } +#line 3879 "bison_parser.cpp" + break; + + case 82: /* opt_column_constraints: %empty */ +#line 615 "bison_parser.y" + { (yyval.column_constraint_set) = new std::unordered_set(); } +#line 3885 "bison_parser.cpp" + break; + + case 83: /* column_constraint_set: column_constraint */ +#line 617 "bison_parser.y" + { + (yyval.column_constraint_set) = new std::unordered_set(); + (yyval.column_constraint_set)->insert((yyvsp[0].column_constraint_t)); +} +#line 3894 "bison_parser.cpp" + break; + + case 84: /* column_constraint_set: column_constraint_set column_constraint */ +#line 621 "bison_parser.y" + { + (yyvsp[-1].column_constraint_set)->insert((yyvsp[0].column_constraint_t)); + (yyval.column_constraint_set) = (yyvsp[-1].column_constraint_set); +} +#line 3903 "bison_parser.cpp" + break; + + case 85: /* column_constraint: PRIMARY KEY */ +#line 626 "bison_parser.y" + { (yyval.column_constraint_t) = ConstraintType::PrimaryKey; } +#line 3909 "bison_parser.cpp" + break; + + case 86: /* column_constraint: UNIQUE */ +#line 627 "bison_parser.y" + { (yyval.column_constraint_t) = ConstraintType::Unique; } +#line 3915 "bison_parser.cpp" + break; + + case 87: /* column_constraint: NULL */ +#line 628 "bison_parser.y" + { (yyval.column_constraint_t) = ConstraintType::Null; } +#line 3921 "bison_parser.cpp" + break; + + case 88: /* column_constraint: NOT NULL */ +#line 629 "bison_parser.y" + { (yyval.column_constraint_t) = ConstraintType::NotNull; } +#line 3927 "bison_parser.cpp" + break; + + case 89: /* table_constraint: PRIMARY KEY '(' ident_commalist ')' */ +#line 631 "bison_parser.y" + { (yyval.table_constraint_t) = new TableConstraint(ConstraintType::PrimaryKey, (yyvsp[-1].str_vec)); } +#line 3933 "bison_parser.cpp" + break; + + case 90: /* table_constraint: UNIQUE '(' ident_commalist ')' */ +#line 632 "bison_parser.y" + { (yyval.table_constraint_t) = new TableConstraint(ConstraintType::Unique, (yyvsp[-1].str_vec)); } +#line 3939 "bison_parser.cpp" + break; + + case 91: /* drop_statement: DROP TABLE opt_exists table_name */ +#line 640 "bison_parser.y" + { + (yyval.drop_stmt) = new DropStatement(kDropTable); + (yyval.drop_stmt)->ifExists = (yyvsp[-1].bval); + (yyval.drop_stmt)->schema = (yyvsp[0].table_name).schema; + (yyval.drop_stmt)->name = (yyvsp[0].table_name).name; +} +#line 3950 "bison_parser.cpp" + break; + + case 92: /* drop_statement: DROP VIEW opt_exists table_name */ +#line 646 "bison_parser.y" + { + (yyval.drop_stmt) = new DropStatement(kDropView); + (yyval.drop_stmt)->ifExists = (yyvsp[-1].bval); + (yyval.drop_stmt)->schema = (yyvsp[0].table_name).schema; + (yyval.drop_stmt)->name = (yyvsp[0].table_name).name; +} +#line 3961 "bison_parser.cpp" + break; + + case 93: /* drop_statement: DEALLOCATE PREPARE IDENTIFIER */ +#line 652 "bison_parser.y" + { + (yyval.drop_stmt) = new DropStatement(kDropPreparedStatement); + (yyval.drop_stmt)->ifExists = false; + (yyval.drop_stmt)->name = (yyvsp[0].sval); +} +#line 3971 "bison_parser.cpp" + break; + + case 94: /* drop_statement: DROP INDEX opt_exists IDENTIFIER */ +#line 658 "bison_parser.y" + { + (yyval.drop_stmt) = new DropStatement(kDropIndex); + (yyval.drop_stmt)->ifExists = (yyvsp[-1].bval); + (yyval.drop_stmt)->indexName = (yyvsp[0].sval); +} +#line 3981 "bison_parser.cpp" + break; + + case 95: /* opt_exists: IF EXISTS */ +#line 664 "bison_parser.y" + { (yyval.bval) = true; } +#line 3987 "bison_parser.cpp" + break; + + case 96: /* opt_exists: %empty */ +#line 665 "bison_parser.y" + { (yyval.bval) = false; } +#line 3993 "bison_parser.cpp" + break; + + case 97: /* alter_statement: ALTER TABLE opt_exists table_name alter_action */ +#line 672 "bison_parser.y" + { + (yyval.alter_stmt) = new AlterStatement((yyvsp[-1].table_name).name, (yyvsp[0].alter_action_t)); + (yyval.alter_stmt)->ifTableExists = (yyvsp[-2].bval); + (yyval.alter_stmt)->schema = (yyvsp[-1].table_name).schema; +} +#line 4003 "bison_parser.cpp" + break; + + case 98: /* alter_action: drop_action */ +#line 678 "bison_parser.y" + { (yyval.alter_action_t) = (yyvsp[0].drop_action_t); } +#line 4009 "bison_parser.cpp" + break; + + case 99: /* drop_action: DROP COLUMN opt_exists IDENTIFIER */ +#line 680 "bison_parser.y" + { + (yyval.drop_action_t) = new DropColumnAction((yyvsp[0].sval)); + (yyval.drop_action_t)->ifExists = (yyvsp[-1].bval); +} +#line 4018 "bison_parser.cpp" + break; + + case 100: /* delete_statement: DELETE FROM table_name opt_where */ +#line 690 "bison_parser.y" + { + (yyval.delete_stmt) = new DeleteStatement(); + (yyval.delete_stmt)->schema = (yyvsp[-1].table_name).schema; + (yyval.delete_stmt)->tableName = (yyvsp[-1].table_name).name; + (yyval.delete_stmt)->expr = (yyvsp[0].expr); +} +#line 4029 "bison_parser.cpp" + break; + + case 101: /* truncate_statement: TRUNCATE table_name */ +#line 697 "bison_parser.y" + { + (yyval.delete_stmt) = new DeleteStatement(); + (yyval.delete_stmt)->schema = (yyvsp[0].table_name).schema; + (yyval.delete_stmt)->tableName = (yyvsp[0].table_name).name; +} +#line 4039 "bison_parser.cpp" + break; + + case 102: /* insert_statement: INSERT INTO table_name opt_column_list VALUES '(' literal_list ')' */ +#line 708 "bison_parser.y" + { + (yyval.insert_stmt) = new InsertStatement(kInsertValues); + (yyval.insert_stmt)->schema = (yyvsp[-5].table_name).schema; + (yyval.insert_stmt)->tableName = (yyvsp[-5].table_name).name; + (yyval.insert_stmt)->columns = (yyvsp[-4].str_vec); + (yyval.insert_stmt)->values = (yyvsp[-1].expr_vec); +} +#line 4051 "bison_parser.cpp" + break; + + case 103: /* insert_statement: INSERT INTO table_name opt_column_list select_no_paren */ +#line 715 "bison_parser.y" + { + (yyval.insert_stmt) = new InsertStatement(kInsertSelect); + (yyval.insert_stmt)->schema = (yyvsp[-2].table_name).schema; + (yyval.insert_stmt)->tableName = (yyvsp[-2].table_name).name; + (yyval.insert_stmt)->columns = (yyvsp[-1].str_vec); + (yyval.insert_stmt)->select = (yyvsp[0].select_stmt); +} +#line 4063 "bison_parser.cpp" + break; + + case 104: /* opt_column_list: '(' ident_commalist ')' */ +#line 723 "bison_parser.y" + { (yyval.str_vec) = (yyvsp[-1].str_vec); } +#line 4069 "bison_parser.cpp" + break; + + case 105: /* opt_column_list: %empty */ +#line 724 "bison_parser.y" + { (yyval.str_vec) = nullptr; } +#line 4075 "bison_parser.cpp" + break; + + case 106: /* update_statement: UPDATE table_ref_name_no_alias SET update_clause_commalist opt_where */ +#line 731 "bison_parser.y" + { + (yyval.update_stmt) = new UpdateStatement(); + (yyval.update_stmt)->table = (yyvsp[-3].table); + (yyval.update_stmt)->updates = (yyvsp[-1].update_vec); + (yyval.update_stmt)->where = (yyvsp[0].expr); +} +#line 4086 "bison_parser.cpp" + break; + + case 107: /* update_clause_commalist: update_clause */ +#line 738 "bison_parser.y" + { + (yyval.update_vec) = new std::vector(); + (yyval.update_vec)->push_back((yyvsp[0].update_t)); +} +#line 4095 "bison_parser.cpp" + break; + + case 108: /* update_clause_commalist: update_clause_commalist ',' update_clause */ +#line 742 "bison_parser.y" + { + (yyvsp[-2].update_vec)->push_back((yyvsp[0].update_t)); + (yyval.update_vec) = (yyvsp[-2].update_vec); +} +#line 4104 "bison_parser.cpp" + break; + + case 109: /* update_clause: IDENTIFIER '=' expr */ +#line 747 "bison_parser.y" + { + (yyval.update_t) = new UpdateClause(); + (yyval.update_t)->column = (yyvsp[-2].sval); + (yyval.update_t)->value = (yyvsp[0].expr); +} +#line 4114 "bison_parser.cpp" + break; + + case 110: /* select_statement: opt_with_clause select_with_paren */ +#line 757 "bison_parser.y" + { + (yyval.select_stmt) = (yyvsp[0].select_stmt); + (yyval.select_stmt)->withDescriptions = (yyvsp[-1].with_description_vec); +} +#line 4123 "bison_parser.cpp" + break; + + case 111: /* select_statement: opt_with_clause select_no_paren */ +#line 761 "bison_parser.y" + { + (yyval.select_stmt) = (yyvsp[0].select_stmt); + (yyval.select_stmt)->withDescriptions = (yyvsp[-1].with_description_vec); +} +#line 4132 "bison_parser.cpp" + break; + + case 112: /* select_statement: opt_with_clause select_with_paren set_operator select_within_set_operation opt_order opt_limit */ +#line 765 "bison_parser.y" + { + (yyval.select_stmt) = (yyvsp[-4].select_stmt); + if ((yyval.select_stmt)->setOperations == nullptr) { + (yyval.select_stmt)->setOperations = new std::vector(); + } + (yyval.select_stmt)->setOperations->push_back((yyvsp[-3].set_operator_t)); + (yyval.select_stmt)->setOperations->back()->nestedSelectStatement = (yyvsp[-2].select_stmt); + (yyval.select_stmt)->setOperations->back()->resultOrder = (yyvsp[-1].order_vec); + (yyval.select_stmt)->setOperations->back()->resultLimit = (yyvsp[0].limit); + (yyval.select_stmt)->withDescriptions = (yyvsp[-5].with_description_vec); +} +#line 4148 "bison_parser.cpp" + break; + + case 115: /* select_within_set_operation_no_parentheses: select_clause */ +#line 779 "bison_parser.y" + { (yyval.select_stmt) = (yyvsp[0].select_stmt); } +#line 4154 "bison_parser.cpp" + break; + + case 116: /* select_within_set_operation_no_parentheses: select_clause set_operator select_within_set_operation */ +#line 780 "bison_parser.y" + { + (yyval.select_stmt) = (yyvsp[-2].select_stmt); + if ((yyval.select_stmt)->setOperations == nullptr) { + (yyval.select_stmt)->setOperations = new std::vector(); + } + (yyval.select_stmt)->setOperations->push_back((yyvsp[-1].set_operator_t)); + (yyval.select_stmt)->setOperations->back()->nestedSelectStatement = (yyvsp[0].select_stmt); +} +#line 4167 "bison_parser.cpp" + break; + + case 117: /* select_with_paren: '(' select_no_paren ')' */ +#line 789 "bison_parser.y" + { (yyval.select_stmt) = (yyvsp[-1].select_stmt); } +#line 4173 "bison_parser.cpp" + break; + + case 118: /* select_with_paren: '(' select_with_paren ')' */ +#line 790 "bison_parser.y" + { (yyval.select_stmt) = (yyvsp[-1].select_stmt); } +#line 4179 "bison_parser.cpp" + break; + + case 119: /* select_no_paren: select_clause opt_order opt_limit opt_locking_clause */ +#line 792 "bison_parser.y" + { + (yyval.select_stmt) = (yyvsp[-3].select_stmt); + (yyval.select_stmt)->order = (yyvsp[-2].order_vec); + + // Limit could have been set by TOP. + if ((yyvsp[-1].limit)) { + delete (yyval.select_stmt)->limit; + (yyval.select_stmt)->limit = (yyvsp[-1].limit); + } + + if ((yyvsp[0].locking_clause_vec)) { + (yyval.select_stmt)->lockings = (yyvsp[0].locking_clause_vec); + } +} +#line 4198 "bison_parser.cpp" + break; + + case 120: /* select_no_paren: select_clause set_operator select_within_set_operation opt_order opt_limit opt_locking_clause */ +#line 806 "bison_parser.y" + { + (yyval.select_stmt) = (yyvsp[-5].select_stmt); + if ((yyval.select_stmt)->setOperations == nullptr) { + (yyval.select_stmt)->setOperations = new std::vector(); + } + (yyval.select_stmt)->setOperations->push_back((yyvsp[-4].set_operator_t)); + (yyval.select_stmt)->setOperations->back()->nestedSelectStatement = (yyvsp[-3].select_stmt); + (yyval.select_stmt)->setOperations->back()->resultOrder = (yyvsp[-2].order_vec); + (yyval.select_stmt)->setOperations->back()->resultLimit = (yyvsp[-1].limit); + (yyval.select_stmt)->lockings = (yyvsp[0].locking_clause_vec); +} +#line 4214 "bison_parser.cpp" + break; + + case 121: /* set_operator: set_type opt_all */ +#line 818 "bison_parser.y" + { + (yyval.set_operator_t) = (yyvsp[-1].set_operator_t); + (yyval.set_operator_t)->isAll = (yyvsp[0].bval); +} +#line 4223 "bison_parser.cpp" + break; + + case 122: /* set_type: UNION */ +#line 823 "bison_parser.y" + { + (yyval.set_operator_t) = new SetOperation(); + (yyval.set_operator_t)->setType = SetType::kSetUnion; +} +#line 4232 "bison_parser.cpp" + break; + + case 123: /* set_type: INTERSECT */ +#line 827 "bison_parser.y" + { + (yyval.set_operator_t) = new SetOperation(); + (yyval.set_operator_t)->setType = SetType::kSetIntersect; +} +#line 4241 "bison_parser.cpp" + break; + + case 124: /* set_type: EXCEPT */ +#line 831 "bison_parser.y" + { + (yyval.set_operator_t) = new SetOperation(); + (yyval.set_operator_t)->setType = SetType::kSetExcept; +} +#line 4250 "bison_parser.cpp" + break; + + case 125: /* opt_all: ALL */ +#line 836 "bison_parser.y" + { (yyval.bval) = true; } +#line 4256 "bison_parser.cpp" + break; + + case 126: /* opt_all: %empty */ +#line 837 "bison_parser.y" + { (yyval.bval) = false; } +#line 4262 "bison_parser.cpp" + break; + + case 127: /* select_clause: SELECT opt_top opt_distinct select_list opt_from_clause opt_where opt_group */ +#line 839 "bison_parser.y" + { + (yyval.select_stmt) = new SelectStatement(); + (yyval.select_stmt)->limit = (yyvsp[-5].limit); + (yyval.select_stmt)->selectDistinct = (yyvsp[-4].bval); + (yyval.select_stmt)->selectList = (yyvsp[-3].expr_vec); + (yyval.select_stmt)->fromTable = (yyvsp[-2].table); + (yyval.select_stmt)->whereClause = (yyvsp[-1].expr); + (yyval.select_stmt)->groupBy = (yyvsp[0].group_t); +} +#line 4276 "bison_parser.cpp" + break; + + case 128: /* opt_distinct: DISTINCT */ +#line 849 "bison_parser.y" + { (yyval.bval) = true; } +#line 4282 "bison_parser.cpp" + break; + + case 129: /* opt_distinct: %empty */ +#line 850 "bison_parser.y" + { (yyval.bval) = false; } +#line 4288 "bison_parser.cpp" + break; + + case 131: /* opt_from_clause: from_clause */ +#line 854 "bison_parser.y" + { (yyval.table) = (yyvsp[0].table); } +#line 4294 "bison_parser.cpp" + break; + + case 132: /* opt_from_clause: %empty */ +#line 855 "bison_parser.y" + { (yyval.table) = nullptr; } +#line 4300 "bison_parser.cpp" + break; + + case 133: /* from_clause: FROM table_ref */ +#line 857 "bison_parser.y" + { (yyval.table) = (yyvsp[0].table); } +#line 4306 "bison_parser.cpp" + break; + + case 134: /* opt_where: WHERE expr */ +#line 859 "bison_parser.y" + { (yyval.expr) = (yyvsp[0].expr); } +#line 4312 "bison_parser.cpp" + break; + + case 135: /* opt_where: %empty */ +#line 860 "bison_parser.y" + { (yyval.expr) = nullptr; } +#line 4318 "bison_parser.cpp" + break; + + case 136: /* opt_group: GROUP BY expr_list opt_having */ +#line 862 "bison_parser.y" + { + (yyval.group_t) = new GroupByDescription(); + (yyval.group_t)->columns = (yyvsp[-1].expr_vec); + (yyval.group_t)->having = (yyvsp[0].expr); +} +#line 4328 "bison_parser.cpp" + break; + + case 137: /* opt_group: %empty */ +#line 867 "bison_parser.y" + { (yyval.group_t) = nullptr; } +#line 4334 "bison_parser.cpp" + break; + + case 138: /* opt_having: HAVING expr */ +#line 869 "bison_parser.y" + { (yyval.expr) = (yyvsp[0].expr); } +#line 4340 "bison_parser.cpp" + break; + + case 139: /* opt_having: %empty */ +#line 870 "bison_parser.y" + { (yyval.expr) = nullptr; } +#line 4346 "bison_parser.cpp" + break; + + case 140: /* opt_order: ORDER BY order_list */ +#line 872 "bison_parser.y" + { (yyval.order_vec) = (yyvsp[0].order_vec); } +#line 4352 "bison_parser.cpp" + break; + + case 141: /* opt_order: %empty */ +#line 873 "bison_parser.y" + { (yyval.order_vec) = nullptr; } +#line 4358 "bison_parser.cpp" + break; + + case 142: /* order_list: order_desc */ +#line 875 "bison_parser.y" + { + (yyval.order_vec) = new std::vector(); + (yyval.order_vec)->push_back((yyvsp[0].order)); +} +#line 4367 "bison_parser.cpp" + break; + + case 143: /* order_list: order_list ',' order_desc */ +#line 879 "bison_parser.y" + { + (yyvsp[-2].order_vec)->push_back((yyvsp[0].order)); + (yyval.order_vec) = (yyvsp[-2].order_vec); +} +#line 4376 "bison_parser.cpp" + break; + + case 144: /* order_desc: expr opt_order_type */ +#line 884 "bison_parser.y" + { (yyval.order) = new OrderDescription((yyvsp[0].order_type), (yyvsp[-1].expr)); } +#line 4382 "bison_parser.cpp" + break; + + case 145: /* opt_order_type: ASC */ +#line 886 "bison_parser.y" + { (yyval.order_type) = kOrderAsc; } +#line 4388 "bison_parser.cpp" + break; + + case 146: /* opt_order_type: DESC */ +#line 887 "bison_parser.y" + { (yyval.order_type) = kOrderDesc; } +#line 4394 "bison_parser.cpp" + break; + + case 147: /* opt_order_type: %empty */ +#line 888 "bison_parser.y" + { (yyval.order_type) = kOrderAsc; } +#line 4400 "bison_parser.cpp" + break; + + case 148: /* opt_top: TOP int_literal */ +#line 892 "bison_parser.y" + { (yyval.limit) = new LimitDescription((yyvsp[0].expr), nullptr); } +#line 4406 "bison_parser.cpp" + break; + + case 149: /* opt_top: %empty */ +#line 893 "bison_parser.y" + { (yyval.limit) = nullptr; } +#line 4412 "bison_parser.cpp" + break; + + case 150: /* opt_limit: LIMIT expr */ +#line 895 "bison_parser.y" + { (yyval.limit) = new LimitDescription((yyvsp[0].expr), nullptr); } +#line 4418 "bison_parser.cpp" + break; + + case 151: /* opt_limit: OFFSET expr */ +#line 896 "bison_parser.y" + { (yyval.limit) = new LimitDescription(nullptr, (yyvsp[0].expr)); } +#line 4424 "bison_parser.cpp" + break; + + case 152: /* opt_limit: LIMIT expr OFFSET expr */ +#line 897 "bison_parser.y" + { (yyval.limit) = new LimitDescription((yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 4430 "bison_parser.cpp" + break; + + case 153: /* opt_limit: LIMIT ALL */ +#line 898 "bison_parser.y" + { (yyval.limit) = new LimitDescription(nullptr, nullptr); } +#line 4436 "bison_parser.cpp" + break; + + case 154: /* opt_limit: LIMIT ALL OFFSET expr */ +#line 899 "bison_parser.y" + { (yyval.limit) = new LimitDescription(nullptr, (yyvsp[0].expr)); } +#line 4442 "bison_parser.cpp" + break; + + case 155: /* opt_limit: %empty */ +#line 900 "bison_parser.y" + { (yyval.limit) = nullptr; } +#line 4448 "bison_parser.cpp" + break; + + case 156: /* expr_list: expr_alias */ +#line 905 "bison_parser.y" + { + (yyval.expr_vec) = new std::vector(); + (yyval.expr_vec)->push_back((yyvsp[0].expr)); +} +#line 4457 "bison_parser.cpp" + break; + + case 157: /* expr_list: expr_list ',' expr_alias */ +#line 909 "bison_parser.y" + { + (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); + (yyval.expr_vec) = (yyvsp[-2].expr_vec); +} +#line 4466 "bison_parser.cpp" + break; + + case 158: /* opt_literal_list: literal_list */ +#line 914 "bison_parser.y" + { (yyval.expr_vec) = (yyvsp[0].expr_vec); } +#line 4472 "bison_parser.cpp" + break; + + case 159: /* opt_literal_list: %empty */ +#line 915 "bison_parser.y" + { (yyval.expr_vec) = nullptr; } +#line 4478 "bison_parser.cpp" + break; + + case 160: /* literal_list: literal */ +#line 917 "bison_parser.y" + { + (yyval.expr_vec) = new std::vector(); + (yyval.expr_vec)->push_back((yyvsp[0].expr)); +} +#line 4487 "bison_parser.cpp" + break; + + case 161: /* literal_list: literal_list ',' literal */ +#line 921 "bison_parser.y" + { + (yyvsp[-2].expr_vec)->push_back((yyvsp[0].expr)); + (yyval.expr_vec) = (yyvsp[-2].expr_vec); +} +#line 4496 "bison_parser.cpp" + break; + + case 162: /* expr_alias: expr opt_alias */ +#line 926 "bison_parser.y" + { + (yyval.expr) = (yyvsp[-1].expr); + if ((yyvsp[0].alias_t)) { + (yyval.expr)->alias = strdup((yyvsp[0].alias_t)->name); + delete (yyvsp[0].alias_t); + } +} +#line 4508 "bison_parser.cpp" + break; + + case 168: /* operand: '(' expr ')' */ +#line 936 "bison_parser.y" + { (yyval.expr) = (yyvsp[-1].expr); } +#line 4514 "bison_parser.cpp" + break; + + case 178: /* operand: '(' select_no_paren ')' */ +#line 938 "bison_parser.y" + { + (yyval.expr) = Expr::makeSelect((yyvsp[-1].select_stmt)); +} +#line 4522 "bison_parser.cpp" + break; + + case 181: /* unary_expr: '-' operand */ +#line 944 "bison_parser.y" + { (yyval.expr) = Expr::makeOpUnary(kOpUnaryMinus, (yyvsp[0].expr)); } +#line 4528 "bison_parser.cpp" + break; + + case 182: /* unary_expr: NOT operand */ +#line 945 "bison_parser.y" + { (yyval.expr) = Expr::makeOpUnary(kOpNot, (yyvsp[0].expr)); } +#line 4534 "bison_parser.cpp" + break; + + case 183: /* unary_expr: operand ISNULL */ +#line 946 "bison_parser.y" + { (yyval.expr) = Expr::makeOpUnary(kOpIsNull, (yyvsp[-1].expr)); } +#line 4540 "bison_parser.cpp" + break; + + case 184: /* unary_expr: operand IS NULL */ +#line 947 "bison_parser.y" + { (yyval.expr) = Expr::makeOpUnary(kOpIsNull, (yyvsp[-2].expr)); } +#line 4546 "bison_parser.cpp" + break; + + case 185: /* unary_expr: operand IS NOT NULL */ +#line 948 "bison_parser.y" + { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeOpUnary(kOpIsNull, (yyvsp[-3].expr))); } +#line 4552 "bison_parser.cpp" + break; + + case 187: /* binary_expr: operand '-' operand */ +#line 950 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpMinus, (yyvsp[0].expr)); } +#line 4558 "bison_parser.cpp" + break; + + case 188: /* binary_expr: operand '+' operand */ +#line 951 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpPlus, (yyvsp[0].expr)); } +#line 4564 "bison_parser.cpp" + break; + + case 189: /* binary_expr: operand '/' operand */ +#line 952 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpSlash, (yyvsp[0].expr)); } +#line 4570 "bison_parser.cpp" + break; + + case 190: /* binary_expr: operand '*' operand */ +#line 953 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpAsterisk, (yyvsp[0].expr)); } +#line 4576 "bison_parser.cpp" + break; + + case 191: /* binary_expr: operand '%' operand */ +#line 954 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpPercentage, (yyvsp[0].expr)); } +#line 4582 "bison_parser.cpp" + break; + + case 192: /* binary_expr: operand '^' operand */ +#line 955 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpCaret, (yyvsp[0].expr)); } +#line 4588 "bison_parser.cpp" + break; + + case 193: /* binary_expr: operand LIKE operand */ +#line 956 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLike, (yyvsp[0].expr)); } +#line 4594 "bison_parser.cpp" + break; + + case 194: /* binary_expr: operand NOT LIKE operand */ +#line 957 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-3].expr), kOpNotLike, (yyvsp[0].expr)); } +#line 4600 "bison_parser.cpp" + break; + + case 195: /* binary_expr: operand ILIKE operand */ +#line 958 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpILike, (yyvsp[0].expr)); } +#line 4606 "bison_parser.cpp" + break; + + case 196: /* binary_expr: operand CONCAT operand */ +#line 959 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpConcat, (yyvsp[0].expr)); } +#line 4612 "bison_parser.cpp" + break; + + case 197: /* logic_expr: expr AND expr */ +#line 961 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpAnd, (yyvsp[0].expr)); } +#line 4618 "bison_parser.cpp" + break; + + case 198: /* logic_expr: expr OR expr */ +#line 962 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpOr, (yyvsp[0].expr)); } +#line 4624 "bison_parser.cpp" + break; + + case 199: /* in_expr: operand IN '(' expr_list ')' */ +#line 964 "bison_parser.y" + { (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].expr_vec)); } +#line 4630 "bison_parser.cpp" + break; + + case 200: /* in_expr: operand NOT IN '(' expr_list ')' */ +#line 965 "bison_parser.y" + { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].expr_vec))); } +#line 4636 "bison_parser.cpp" + break; + + case 201: /* in_expr: operand IN '(' select_no_paren ')' */ +#line 966 "bison_parser.y" + { (yyval.expr) = Expr::makeInOperator((yyvsp[-4].expr), (yyvsp[-1].select_stmt)); } +#line 4642 "bison_parser.cpp" + break; + + case 202: /* in_expr: operand NOT IN '(' select_no_paren ')' */ +#line 967 "bison_parser.y" + { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeInOperator((yyvsp[-5].expr), (yyvsp[-1].select_stmt))); } +#line 4648 "bison_parser.cpp" + break; + + case 203: /* case_expr: CASE expr case_list END */ +#line 971 "bison_parser.y" + { (yyval.expr) = Expr::makeCase((yyvsp[-2].expr), (yyvsp[-1].expr), nullptr); } +#line 4654 "bison_parser.cpp" + break; + + case 204: /* case_expr: CASE expr case_list ELSE expr END */ +#line 972 "bison_parser.y" + { (yyval.expr) = Expr::makeCase((yyvsp[-4].expr), (yyvsp[-3].expr), (yyvsp[-1].expr)); } +#line 4660 "bison_parser.cpp" + break; + + case 205: /* case_expr: CASE case_list END */ +#line 973 "bison_parser.y" + { (yyval.expr) = Expr::makeCase(nullptr, (yyvsp[-1].expr), nullptr); } +#line 4666 "bison_parser.cpp" + break; + + case 206: /* case_expr: CASE case_list ELSE expr END */ +#line 974 "bison_parser.y" + { (yyval.expr) = Expr::makeCase(nullptr, (yyvsp[-3].expr), (yyvsp[-1].expr)); } +#line 4672 "bison_parser.cpp" + break; + + case 207: /* case_list: WHEN expr THEN expr */ +#line 976 "bison_parser.y" + { (yyval.expr) = Expr::makeCaseList(Expr::makeCaseListElement((yyvsp[-2].expr), (yyvsp[0].expr))); } +#line 4678 "bison_parser.cpp" + break; + + case 208: /* case_list: case_list WHEN expr THEN expr */ +#line 977 "bison_parser.y" + { (yyval.expr) = Expr::caseListAppend((yyvsp[-4].expr), Expr::makeCaseListElement((yyvsp[-2].expr), (yyvsp[0].expr))); } +#line 4684 "bison_parser.cpp" + break; + + case 209: /* exists_expr: EXISTS '(' select_no_paren ')' */ +#line 979 "bison_parser.y" + { (yyval.expr) = Expr::makeExists((yyvsp[-1].select_stmt)); } +#line 4690 "bison_parser.cpp" + break; + + case 210: /* exists_expr: NOT EXISTS '(' select_no_paren ')' */ +#line 980 "bison_parser.y" + { (yyval.expr) = Expr::makeOpUnary(kOpNot, Expr::makeExists((yyvsp[-1].select_stmt))); } +#line 4696 "bison_parser.cpp" + break; + + case 211: /* comp_expr: operand '=' operand */ +#line 982 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpEquals, (yyvsp[0].expr)); } +#line 4702 "bison_parser.cpp" + break; + + case 212: /* comp_expr: operand EQUALS operand */ +#line 983 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpEquals, (yyvsp[0].expr)); } +#line 4708 "bison_parser.cpp" + break; + + case 213: /* comp_expr: operand NOTEQUALS operand */ +#line 984 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpNotEquals, (yyvsp[0].expr)); } +#line 4714 "bison_parser.cpp" + break; + + case 214: /* comp_expr: operand '<' operand */ +#line 985 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLess, (yyvsp[0].expr)); } +#line 4720 "bison_parser.cpp" + break; + + case 215: /* comp_expr: operand '>' operand */ +#line 986 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpGreater, (yyvsp[0].expr)); } +#line 4726 "bison_parser.cpp" + break; + + case 216: /* comp_expr: operand LESSEQ operand */ +#line 987 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpLessEq, (yyvsp[0].expr)); } +#line 4732 "bison_parser.cpp" + break; + + case 217: /* comp_expr: operand GREATEREQ operand */ +#line 988 "bison_parser.y" + { (yyval.expr) = Expr::makeOpBinary((yyvsp[-2].expr), kOpGreaterEq, (yyvsp[0].expr)); } +#line 4738 "bison_parser.cpp" + break; + + case 218: /* function_expr: IDENTIFIER '(' ')' opt_window */ +#line 992 "bison_parser.y" + { (yyval.expr) = Expr::makeFunctionRef((yyvsp[-3].sval), new std::vector(), false, (yyvsp[0].window_description)); } +#line 4744 "bison_parser.cpp" + break; + + case 219: /* function_expr: IDENTIFIER '(' opt_distinct expr_list ')' opt_window */ +#line 993 "bison_parser.y" + { (yyval.expr) = Expr::makeFunctionRef((yyvsp[-5].sval), (yyvsp[-2].expr_vec), (yyvsp[-3].bval), (yyvsp[0].window_description)); } +#line 4750 "bison_parser.cpp" + break; + + case 220: /* opt_window: OVER '(' opt_partition opt_order opt_frame_clause ')' */ +#line 997 "bison_parser.y" + { (yyval.window_description) = new WindowDescription((yyvsp[-3].expr_vec), (yyvsp[-2].order_vec), (yyvsp[-1].frame_description)); } +#line 4756 "bison_parser.cpp" + break; + + case 221: /* opt_window: %empty */ +#line 998 "bison_parser.y" + { (yyval.window_description) = nullptr; } +#line 4762 "bison_parser.cpp" + break; + + case 222: /* opt_partition: PARTITION BY expr_list */ +#line 1000 "bison_parser.y" + { (yyval.expr_vec) = (yyvsp[0].expr_vec); } +#line 4768 "bison_parser.cpp" + break; + + case 223: /* opt_partition: %empty */ +#line 1001 "bison_parser.y" + { (yyval.expr_vec) = nullptr; } +#line 4774 "bison_parser.cpp" + break; + + case 224: /* opt_frame_clause: frame_type frame_bound */ +#line 1006 "bison_parser.y" + { (yyval.frame_description) = new FrameDescription{(yyvsp[-1].frame_type), (yyvsp[0].frame_bound), new FrameBound{0, kCurrentRow, false}}; } +#line 4780 "bison_parser.cpp" + break; + + case 225: /* opt_frame_clause: frame_type BETWEEN frame_bound AND frame_bound */ +#line 1007 "bison_parser.y" + { (yyval.frame_description) = new FrameDescription{(yyvsp[-4].frame_type), (yyvsp[-2].frame_bound), (yyvsp[0].frame_bound)}; } +#line 4786 "bison_parser.cpp" + break; + + case 226: /* opt_frame_clause: %empty */ +#line 1008 "bison_parser.y" + { + (yyval.frame_description) = new FrameDescription{kRange, new FrameBound{0, kPreceding, true}, new FrameBound{0, kCurrentRow, false}}; +} +#line 4794 "bison_parser.cpp" + break; + + case 227: /* frame_type: RANGE */ +#line 1012 "bison_parser.y" + { (yyval.frame_type) = kRange; } +#line 4800 "bison_parser.cpp" + break; + + case 228: /* frame_type: ROWS */ +#line 1013 "bison_parser.y" + { (yyval.frame_type) = kRows; } +#line 4806 "bison_parser.cpp" + break; + + case 229: /* frame_type: GROUPS */ +#line 1014 "bison_parser.y" + { (yyval.frame_type) = kGroups; } +#line 4812 "bison_parser.cpp" + break; + + case 230: /* frame_bound: UNBOUNDED PRECEDING */ +#line 1016 "bison_parser.y" + { (yyval.frame_bound) = new FrameBound{0, kPreceding, true}; } +#line 4818 "bison_parser.cpp" + break; + + case 231: /* frame_bound: INTVAL PRECEDING */ +#line 1017 "bison_parser.y" + { (yyval.frame_bound) = new FrameBound{(yyvsp[-1].ival), kPreceding, false}; } +#line 4824 "bison_parser.cpp" + break; + + case 232: /* frame_bound: UNBOUNDED FOLLOWING */ +#line 1018 "bison_parser.y" + { (yyval.frame_bound) = new FrameBound{0, kFollowing, true}; } +#line 4830 "bison_parser.cpp" + break; + + case 233: /* frame_bound: INTVAL FOLLOWING */ +#line 1019 "bison_parser.y" + { (yyval.frame_bound) = new FrameBound{(yyvsp[-1].ival), kFollowing, false}; } +#line 4836 "bison_parser.cpp" + break; + + case 234: /* frame_bound: CURRENT_ROW */ +#line 1020 "bison_parser.y" + { (yyval.frame_bound) = new FrameBound{0, kCurrentRow, false}; } +#line 4842 "bison_parser.cpp" + break; + + case 235: /* extract_expr: EXTRACT '(' datetime_field FROM expr ')' */ +#line 1022 "bison_parser.y" + { (yyval.expr) = Expr::makeExtract((yyvsp[-3].datetime_field), (yyvsp[-1].expr)); } +#line 4848 "bison_parser.cpp" + break; + + case 236: /* cast_expr: CAST '(' expr AS column_type ')' */ +#line 1024 "bison_parser.y" + { (yyval.expr) = Expr::makeCast((yyvsp[-3].expr), (yyvsp[-1].column_type_t)); } +#line 4854 "bison_parser.cpp" + break; + + case 237: /* datetime_field: SECOND */ +#line 1026 "bison_parser.y" + { (yyval.datetime_field) = kDatetimeSecond; } +#line 4860 "bison_parser.cpp" + break; + + case 238: /* datetime_field: MINUTE */ +#line 1027 "bison_parser.y" + { (yyval.datetime_field) = kDatetimeMinute; } +#line 4866 "bison_parser.cpp" + break; + + case 239: /* datetime_field: HOUR */ +#line 1028 "bison_parser.y" + { (yyval.datetime_field) = kDatetimeHour; } +#line 4872 "bison_parser.cpp" + break; + + case 240: /* datetime_field: DAY */ +#line 1029 "bison_parser.y" + { (yyval.datetime_field) = kDatetimeDay; } +#line 4878 "bison_parser.cpp" + break; + + case 241: /* datetime_field: MONTH */ +#line 1030 "bison_parser.y" + { (yyval.datetime_field) = kDatetimeMonth; } +#line 4884 "bison_parser.cpp" + break; + + case 242: /* datetime_field: YEAR */ +#line 1031 "bison_parser.y" + { (yyval.datetime_field) = kDatetimeYear; } +#line 4890 "bison_parser.cpp" + break; + + case 243: /* datetime_field_plural: SECONDS */ +#line 1033 "bison_parser.y" + { (yyval.datetime_field) = kDatetimeSecond; } +#line 4896 "bison_parser.cpp" + break; + + case 244: /* datetime_field_plural: MINUTES */ +#line 1034 "bison_parser.y" + { (yyval.datetime_field) = kDatetimeMinute; } +#line 4902 "bison_parser.cpp" + break; + + case 245: /* datetime_field_plural: HOURS */ +#line 1035 "bison_parser.y" + { (yyval.datetime_field) = kDatetimeHour; } +#line 4908 "bison_parser.cpp" + break; + + case 246: /* datetime_field_plural: DAYS */ +#line 1036 "bison_parser.y" + { (yyval.datetime_field) = kDatetimeDay; } +#line 4914 "bison_parser.cpp" + break; + + case 247: /* datetime_field_plural: MONTHS */ +#line 1037 "bison_parser.y" + { (yyval.datetime_field) = kDatetimeMonth; } +#line 4920 "bison_parser.cpp" + break; + + case 248: /* datetime_field_plural: YEARS */ +#line 1038 "bison_parser.y" + { (yyval.datetime_field) = kDatetimeYear; } +#line 4926 "bison_parser.cpp" + break; + + case 251: /* array_expr: ARRAY '[' expr_list ']' */ +#line 1042 "bison_parser.y" + { (yyval.expr) = Expr::makeArray((yyvsp[-1].expr_vec)); } +#line 4932 "bison_parser.cpp" + break; + + case 252: /* array_index: operand '[' int_literal ']' */ +#line 1044 "bison_parser.y" + { (yyval.expr) = Expr::makeArrayIndex((yyvsp[-3].expr), (yyvsp[-1].expr)->ival); } +#line 4938 "bison_parser.cpp" + break; + + case 253: /* between_expr: operand BETWEEN operand AND operand */ +#line 1046 "bison_parser.y" + { (yyval.expr) = Expr::makeBetween((yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 4944 "bison_parser.cpp" + break; + + case 254: /* column_name: IDENTIFIER */ +#line 1048 "bison_parser.y" + { (yyval.expr) = Expr::makeColumnRef((yyvsp[0].sval)); } +#line 4950 "bison_parser.cpp" + break; + + case 255: /* column_name: IDENTIFIER '.' IDENTIFIER */ +#line 1049 "bison_parser.y" + { (yyval.expr) = Expr::makeColumnRef((yyvsp[-2].sval), (yyvsp[0].sval)); } +#line 4956 "bison_parser.cpp" + break; + + case 256: /* column_name: '*' */ +#line 1050 "bison_parser.y" + { (yyval.expr) = Expr::makeStar(); } +#line 4962 "bison_parser.cpp" + break; + + case 257: /* column_name: IDENTIFIER '.' '*' */ +#line 1051 "bison_parser.y" + { (yyval.expr) = Expr::makeStar((yyvsp[-2].sval)); } +#line 4968 "bison_parser.cpp" + break; + + case 265: /* string_literal: STRING */ +#line 1055 "bison_parser.y" + { (yyval.expr) = Expr::makeLiteral((yyvsp[0].sval)); } +#line 4974 "bison_parser.cpp" + break; + + case 266: /* bool_literal: TRUE */ +#line 1057 "bison_parser.y" + { (yyval.expr) = Expr::makeLiteral(true); } +#line 4980 "bison_parser.cpp" + break; + + case 267: /* bool_literal: FALSE */ +#line 1058 "bison_parser.y" + { (yyval.expr) = Expr::makeLiteral(false); } +#line 4986 "bison_parser.cpp" + break; + + case 268: /* num_literal: FLOATVAL */ +#line 1060 "bison_parser.y" + { (yyval.expr) = Expr::makeLiteral((yyvsp[0].fval)); } +#line 4992 "bison_parser.cpp" + break; + + case 270: /* int_literal: INTVAL */ +#line 1063 "bison_parser.y" + { (yyval.expr) = Expr::makeLiteral((yyvsp[0].ival)); } +#line 4998 "bison_parser.cpp" + break; + + case 271: /* null_literal: NULL */ +#line 1065 "bison_parser.y" + { (yyval.expr) = Expr::makeNullLiteral(); } +#line 5004 "bison_parser.cpp" + break; + + case 272: /* date_literal: DATE STRING */ +#line 1067 "bison_parser.y" + { + int day{0}, month{0}, year{0}, chars_parsed{0}; + // If the whole string is parsed, chars_parsed points to the terminating null byte after the last character + if (sscanf((yyvsp[0].sval), "%4d-%2d-%2d%n", &day, &month, &year, &chars_parsed) != 3 || (yyvsp[0].sval)[chars_parsed] != 0) { + free((yyvsp[0].sval)); + yyerror(&yyloc, result, scanner, "Found incorrect date format. Expected format: YYYY-MM-DD"); + YYERROR; + } + (yyval.expr) = Expr::makeDateLiteral((yyvsp[0].sval)); +} +#line 5019 "bison_parser.cpp" + break; + + case 273: /* interval_literal: int_literal duration_field */ +#line 1078 "bison_parser.y" + { + (yyval.expr) = Expr::makeIntervalLiteral((yyvsp[-1].expr)->ival, (yyvsp[0].datetime_field)); + delete (yyvsp[-1].expr); +} +#line 5028 "bison_parser.cpp" + break; + + case 274: /* interval_literal: INTERVAL STRING datetime_field */ +#line 1082 "bison_parser.y" + { + int duration{0}, chars_parsed{0}; + // If the whole string is parsed, chars_parsed points to the terminating null byte after the last character + if (sscanf((yyvsp[-1].sval), "%d%n", &duration, &chars_parsed) != 1 || (yyvsp[-1].sval)[chars_parsed] != 0) { + free((yyvsp[-1].sval)); + yyerror(&yyloc, result, scanner, "Found incorrect interval format. Expected format: INTEGER"); + YYERROR; + } + free((yyvsp[-1].sval)); + (yyval.expr) = Expr::makeIntervalLiteral(duration, (yyvsp[0].datetime_field)); +} +#line 5044 "bison_parser.cpp" + break; + + case 275: /* interval_literal: INTERVAL STRING */ +#line 1093 "bison_parser.y" + { + int duration{0}, chars_parsed{0}; + // 'seconds' and 'minutes' are the longest accepted interval qualifiers (7 chars) + null byte + char unit_string[8]; + // If the whole string is parsed, chars_parsed points to the terminating null byte after the last character + if (sscanf((yyvsp[0].sval), "%d %7s%n", &duration, unit_string, &chars_parsed) != 2 || (yyvsp[0].sval)[chars_parsed] != 0) { + free((yyvsp[0].sval)); + yyerror(&yyloc, result, scanner, "Found incorrect interval format. Expected format: INTEGER INTERVAL_QUALIIFIER"); + YYERROR; + } + free((yyvsp[0].sval)); + + DatetimeField unit; + if (strcasecmp(unit_string, "second") == 0 || strcasecmp(unit_string, "seconds") == 0) { + unit = kDatetimeSecond; + } else if (strcasecmp(unit_string, "minute") == 0 || strcasecmp(unit_string, "minutes") == 0) { + unit = kDatetimeMinute; + } else if (strcasecmp(unit_string, "hour") == 0 || strcasecmp(unit_string, "hours") == 0) { + unit = kDatetimeHour; + } else if (strcasecmp(unit_string, "day") == 0 || strcasecmp(unit_string, "days") == 0) { + unit = kDatetimeDay; + } else if (strcasecmp(unit_string, "month") == 0 || strcasecmp(unit_string, "months") == 0) { + unit = kDatetimeMonth; + } else if (strcasecmp(unit_string, "year") == 0 || strcasecmp(unit_string, "years") == 0) { + unit = kDatetimeYear; + } else { + yyerror(&yyloc, result, scanner, "Interval qualifier is unknown."); + YYERROR; + } + (yyval.expr) = Expr::makeIntervalLiteral(duration, unit); +} +#line 5080 "bison_parser.cpp" + break; + + case 276: /* param_expr: '?' */ +#line 1125 "bison_parser.y" + { + (yyval.expr) = Expr::makeParameter(yylloc.total_column); + (yyval.expr)->ival2 = yyloc.param_list.size(); + yyloc.param_list.push_back((yyval.expr)); +} +#line 5090 "bison_parser.cpp" + break; + + case 278: /* table_ref: table_ref_commalist ',' table_ref_atomic */ +#line 1134 "bison_parser.y" + { + (yyvsp[-2].table_vec)->push_back((yyvsp[0].table)); + auto tbl = new TableRef(kTableCrossProduct); + tbl->list = (yyvsp[-2].table_vec); + (yyval.table) = tbl; +} +#line 5101 "bison_parser.cpp" + break; + + case 282: /* nonjoin_table_ref_atomic: '(' select_statement ')' opt_table_alias */ +#line 1143 "bison_parser.y" + { + auto tbl = new TableRef(kTableSelect); + tbl->select = (yyvsp[-2].select_stmt); + tbl->alias = (yyvsp[0].alias_t); + (yyval.table) = tbl; +} +#line 5112 "bison_parser.cpp" + break; + + case 283: /* table_ref_commalist: table_ref_atomic */ +#line 1150 "bison_parser.y" + { + (yyval.table_vec) = new std::vector(); + (yyval.table_vec)->push_back((yyvsp[0].table)); +} +#line 5121 "bison_parser.cpp" + break; + + case 284: /* table_ref_commalist: table_ref_commalist ',' table_ref_atomic */ +#line 1154 "bison_parser.y" + { + (yyvsp[-2].table_vec)->push_back((yyvsp[0].table)); + (yyval.table_vec) = (yyvsp[-2].table_vec); +} +#line 5130 "bison_parser.cpp" + break; + + case 285: /* table_ref_name: table_name opt_table_alias */ +#line 1159 "bison_parser.y" + { + auto tbl = new TableRef(kTableName); + tbl->schema = (yyvsp[-1].table_name).schema; + tbl->name = (yyvsp[-1].table_name).name; + tbl->alias = (yyvsp[0].alias_t); + (yyval.table) = tbl; +} +#line 5142 "bison_parser.cpp" + break; + + case 286: /* table_ref_name_no_alias: table_name */ +#line 1167 "bison_parser.y" + { + (yyval.table) = new TableRef(kTableName); + (yyval.table)->schema = (yyvsp[0].table_name).schema; + (yyval.table)->name = (yyvsp[0].table_name).name; +} +#line 5152 "bison_parser.cpp" + break; + + case 287: /* table_name: IDENTIFIER */ +#line 1173 "bison_parser.y" + { + (yyval.table_name).schema = nullptr; + (yyval.table_name).name = (yyvsp[0].sval); +} +#line 5161 "bison_parser.cpp" + break; + + case 288: /* table_name: IDENTIFIER '.' IDENTIFIER */ +#line 1177 "bison_parser.y" + { + (yyval.table_name).schema = (yyvsp[-2].sval); + (yyval.table_name).name = (yyvsp[0].sval); +} +#line 5170 "bison_parser.cpp" + break; + + case 289: /* opt_index_name: IDENTIFIER */ +#line 1182 "bison_parser.y" + { (yyval.sval) = (yyvsp[0].sval); } +#line 5176 "bison_parser.cpp" + break; + + case 290: /* opt_index_name: %empty */ +#line 1183 "bison_parser.y" + { (yyval.sval) = nullptr; } +#line 5182 "bison_parser.cpp" + break; + + case 292: /* table_alias: AS IDENTIFIER '(' ident_commalist ')' */ +#line 1185 "bison_parser.y" + { (yyval.alias_t) = new Alias((yyvsp[-3].sval), (yyvsp[-1].str_vec)); } +#line 5188 "bison_parser.cpp" + break; + + case 294: /* opt_table_alias: %empty */ +#line 1187 "bison_parser.y" + { (yyval.alias_t) = nullptr; } +#line 5194 "bison_parser.cpp" + break; + + case 295: /* alias: AS IDENTIFIER */ +#line 1189 "bison_parser.y" + { (yyval.alias_t) = new Alias((yyvsp[0].sval)); } +#line 5200 "bison_parser.cpp" + break; + + case 296: /* alias: IDENTIFIER */ +#line 1190 "bison_parser.y" + { (yyval.alias_t) = new Alias((yyvsp[0].sval)); } +#line 5206 "bison_parser.cpp" + break; + + case 298: /* opt_alias: %empty */ +#line 1192 "bison_parser.y" + { (yyval.alias_t) = nullptr; } +#line 5212 "bison_parser.cpp" + break; + + case 299: /* opt_locking_clause: opt_locking_clause_list */ +#line 1198 "bison_parser.y" + { (yyval.locking_clause_vec) = (yyvsp[0].locking_clause_vec); } +#line 5218 "bison_parser.cpp" + break; + + case 300: /* opt_locking_clause: %empty */ +#line 1199 "bison_parser.y" + { (yyval.locking_clause_vec) = nullptr; } +#line 5224 "bison_parser.cpp" + break; + + case 301: /* opt_locking_clause_list: locking_clause */ +#line 1201 "bison_parser.y" + { + (yyval.locking_clause_vec) = new std::vector(); + (yyval.locking_clause_vec)->push_back((yyvsp[0].locking_t)); +} +#line 5233 "bison_parser.cpp" + break; + + case 302: /* opt_locking_clause_list: opt_locking_clause_list locking_clause */ +#line 1205 "bison_parser.y" + { + (yyvsp[-1].locking_clause_vec)->push_back((yyvsp[0].locking_t)); + (yyval.locking_clause_vec) = (yyvsp[-1].locking_clause_vec); +} +#line 5242 "bison_parser.cpp" + break; + + case 303: /* locking_clause: FOR row_lock_mode opt_row_lock_policy */ +#line 1210 "bison_parser.y" + { + (yyval.locking_t) = new LockingClause(); + (yyval.locking_t)->rowLockMode = (yyvsp[-1].lock_mode_t); + (yyval.locking_t)->rowLockWaitPolicy = (yyvsp[0].lock_wait_policy_t); + (yyval.locking_t)->tables = nullptr; +} +#line 5253 "bison_parser.cpp" + break; + + case 304: /* locking_clause: FOR row_lock_mode OF ident_commalist opt_row_lock_policy */ +#line 1216 "bison_parser.y" + { + (yyval.locking_t) = new LockingClause(); + (yyval.locking_t)->rowLockMode = (yyvsp[-3].lock_mode_t); + (yyval.locking_t)->tables = (yyvsp[-1].str_vec); + (yyval.locking_t)->rowLockWaitPolicy = (yyvsp[0].lock_wait_policy_t); +} +#line 5264 "bison_parser.cpp" + break; + + case 305: /* row_lock_mode: UPDATE */ +#line 1223 "bison_parser.y" + { (yyval.lock_mode_t) = RowLockMode::ForUpdate; } +#line 5270 "bison_parser.cpp" + break; + + case 306: /* row_lock_mode: NO KEY UPDATE */ +#line 1224 "bison_parser.y" + { (yyval.lock_mode_t) = RowLockMode::ForNoKeyUpdate; } +#line 5276 "bison_parser.cpp" + break; + + case 307: /* row_lock_mode: SHARE */ +#line 1225 "bison_parser.y" + { (yyval.lock_mode_t) = RowLockMode::ForShare; } +#line 5282 "bison_parser.cpp" + break; + + case 308: /* row_lock_mode: KEY SHARE */ +#line 1226 "bison_parser.y" + { (yyval.lock_mode_t) = RowLockMode::ForKeyShare; } +#line 5288 "bison_parser.cpp" + break; + + case 309: /* opt_row_lock_policy: SKIP LOCKED */ +#line 1228 "bison_parser.y" + { (yyval.lock_wait_policy_t) = RowLockWaitPolicy::SkipLocked; } +#line 5294 "bison_parser.cpp" + break; + + case 310: /* opt_row_lock_policy: NOWAIT */ +#line 1229 "bison_parser.y" + { (yyval.lock_wait_policy_t) = RowLockWaitPolicy::NoWait; } +#line 5300 "bison_parser.cpp" + break; + + case 311: /* opt_row_lock_policy: %empty */ +#line 1230 "bison_parser.y" + { (yyval.lock_wait_policy_t) = RowLockWaitPolicy::None; } +#line 5306 "bison_parser.cpp" + break; + + case 313: /* opt_with_clause: %empty */ +#line 1236 "bison_parser.y" + { (yyval.with_description_vec) = nullptr; } +#line 5312 "bison_parser.cpp" + break; + + case 314: /* with_clause: WITH with_description_list */ +#line 1238 "bison_parser.y" + { (yyval.with_description_vec) = (yyvsp[0].with_description_vec); } +#line 5318 "bison_parser.cpp" + break; + + case 315: /* with_description_list: with_description */ +#line 1240 "bison_parser.y" + { + (yyval.with_description_vec) = new std::vector(); + (yyval.with_description_vec)->push_back((yyvsp[0].with_description_t)); +} +#line 5327 "bison_parser.cpp" + break; + + case 316: /* with_description_list: with_description_list ',' with_description */ +#line 1244 "bison_parser.y" + { + (yyvsp[-2].with_description_vec)->push_back((yyvsp[0].with_description_t)); + (yyval.with_description_vec) = (yyvsp[-2].with_description_vec); +} +#line 5336 "bison_parser.cpp" + break; + + case 317: /* with_description: IDENTIFIER AS select_with_paren */ +#line 1249 "bison_parser.y" + { + (yyval.with_description_t) = new WithDescription(); + (yyval.with_description_t)->alias = (yyvsp[-2].sval); + (yyval.with_description_t)->select = (yyvsp[0].select_stmt); +} +#line 5346 "bison_parser.cpp" + break; + + case 318: /* join_clause: table_ref_atomic NATURAL JOIN nonjoin_table_ref_atomic */ +#line 1259 "bison_parser.y" + { + (yyval.table) = new TableRef(kTableJoin); + (yyval.table)->join = new JoinDefinition(); + (yyval.table)->join->type = kJoinNatural; + (yyval.table)->join->left = (yyvsp[-3].table); + (yyval.table)->join->right = (yyvsp[0].table); +} +#line 5358 "bison_parser.cpp" + break; + + case 319: /* join_clause: table_ref_atomic opt_join_type JOIN table_ref_atomic ON join_condition */ +#line 1266 "bison_parser.y" + { + (yyval.table) = new TableRef(kTableJoin); + (yyval.table)->join = new JoinDefinition(); + (yyval.table)->join->type = (JoinType)(yyvsp[-4].join_type); + (yyval.table)->join->left = (yyvsp[-5].table); + (yyval.table)->join->right = (yyvsp[-2].table); + (yyval.table)->join->condition = (yyvsp[0].expr); +} +#line 5371 "bison_parser.cpp" + break; + + case 320: /* join_clause: table_ref_atomic opt_join_type JOIN table_ref_atomic USING '(' column_name ')' */ +#line 1274 "bison_parser.y" + { + (yyval.table) = new TableRef(kTableJoin); + (yyval.table)->join = new JoinDefinition(); + (yyval.table)->join->type = (JoinType)(yyvsp[-6].join_type); + (yyval.table)->join->left = (yyvsp[-7].table); + (yyval.table)->join->right = (yyvsp[-4].table); + auto left_col = Expr::makeColumnRef(strdup((yyvsp[-1].expr)->name)); + if ((yyvsp[-1].expr)->alias) { + left_col->alias = strdup((yyvsp[-1].expr)->alias); + } + if ((yyvsp[-7].table)->getName()) { + left_col->table = strdup((yyvsp[-7].table)->getName()); + } + auto right_col = Expr::makeColumnRef(strdup((yyvsp[-1].expr)->name)); + if ((yyvsp[-1].expr)->alias) { + right_col->alias = strdup((yyvsp[-1].expr)->alias); + } + if ((yyvsp[-4].table)->getName()) { + right_col->table = strdup((yyvsp[-4].table)->getName()); + } + (yyval.table)->join->condition = Expr::makeOpBinary(left_col, kOpEquals, right_col); + delete (yyvsp[-1].expr); +} +#line 5399 "bison_parser.cpp" + break; + + case 321: /* opt_join_type: INNER */ +#line 1298 "bison_parser.y" + { (yyval.join_type) = kJoinInner; } +#line 5405 "bison_parser.cpp" + break; + + case 322: /* opt_join_type: LEFT OUTER */ +#line 1299 "bison_parser.y" + { (yyval.join_type) = kJoinLeft; } +#line 5411 "bison_parser.cpp" + break; + + case 323: /* opt_join_type: LEFT */ +#line 1300 "bison_parser.y" + { (yyval.join_type) = kJoinLeft; } +#line 5417 "bison_parser.cpp" + break; + + case 324: /* opt_join_type: RIGHT OUTER */ +#line 1301 "bison_parser.y" + { (yyval.join_type) = kJoinRight; } +#line 5423 "bison_parser.cpp" + break; + + case 325: /* opt_join_type: RIGHT */ +#line 1302 "bison_parser.y" + { (yyval.join_type) = kJoinRight; } +#line 5429 "bison_parser.cpp" + break; + + case 326: /* opt_join_type: FULL OUTER */ +#line 1303 "bison_parser.y" + { (yyval.join_type) = kJoinFull; } +#line 5435 "bison_parser.cpp" + break; + + case 327: /* opt_join_type: OUTER */ +#line 1304 "bison_parser.y" + { (yyval.join_type) = kJoinFull; } +#line 5441 "bison_parser.cpp" + break; + + case 328: /* opt_join_type: FULL */ +#line 1305 "bison_parser.y" + { (yyval.join_type) = kJoinFull; } +#line 5447 "bison_parser.cpp" + break; + + case 329: /* opt_join_type: CROSS */ +#line 1306 "bison_parser.y" + { (yyval.join_type) = kJoinCross; } +#line 5453 "bison_parser.cpp" + break; + + case 330: /* opt_join_type: %empty */ +#line 1307 "bison_parser.y" + { (yyval.join_type) = kJoinInner; } +#line 5459 "bison_parser.cpp" + break; + + case 334: /* ident_commalist: IDENTIFIER */ +#line 1318 "bison_parser.y" + { + (yyval.str_vec) = new std::vector(); + (yyval.str_vec)->push_back((yyvsp[0].sval)); +} +#line 5468 "bison_parser.cpp" + break; + + case 335: /* ident_commalist: ident_commalist ',' IDENTIFIER */ +#line 1322 "bison_parser.y" + { + (yyvsp[-2].str_vec)->push_back((yyvsp[0].sval)); + (yyval.str_vec) = (yyvsp[-2].str_vec); +} +#line 5477 "bison_parser.cpp" + break; + + +#line 5481 "bison_parser.cpp" + + default: break; + } + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ + YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); + + YYPOPSTACK (yylen); + yylen = 0; + + *++yyvsp = yyval; + *++yylsp = yyloc; + + /* Now 'shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ + { + const int yylhs = yyr1[yyn] - YYNTOKENS; + const int yyi = yypgoto[yylhs] + *yyssp; + yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp + ? yytable[yyi] + : yydefgoto[yylhs]); + } + + goto yynewstate; + + +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ +yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == SQL_HSQL_EMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; + { + yypcontext_t yyctx + = {yyssp, yytoken, &yylloc}; + char const *yymsgp = YY_("syntax error"); + int yysyntax_error_status; + yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx); + if (yysyntax_error_status == 0) + yymsgp = yymsg; + else if (yysyntax_error_status == -1) + { + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = YY_CAST (char *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc))); + if (yymsg) + { + yysyntax_error_status + = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx); + yymsgp = yymsg; + } + else + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + yysyntax_error_status = YYENOMEM; + } + } + yyerror (&yylloc, result, scanner, yymsgp); + if (yysyntax_error_status == YYENOMEM) + YYNOMEM; + } + } + + yyerror_range[1] = yylloc; + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ + + if (yychar <= SQL_YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == SQL_YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval, &yylloc, result, scanner); + yychar = SQL_HSQL_EMPTY; + } + } + + /* Else will try to reuse lookahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + /* Pacify compilers when the user code never invokes YYERROR and the + label yyerrorlab therefore never appears in user code. */ + if (0) + YYERROR; + ++yynerrs; + + /* Do not reclaim the symbols of the rule whose action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + /* Pop stack until we find a state that shifts the error token. */ + for (;;) + { + yyn = yypact[yystate]; + if (!yypact_value_is_default (yyn)) + { + yyn += YYSYMBOL_YYerror; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + yyerror_range[1] = *yylsp; + yydestruct ("Error: popping", + YY_ACCESSING_SYMBOL (yystate), yyvsp, yylsp, result, scanner); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + yyerror_range[2] = yylloc; + ++yylsp; + YYLLOC_DEFAULT (*yylsp, yyerror_range, 2); + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturnlab; + + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturnlab; + + +/*-----------------------------------------------------------. +| yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. | +`-----------------------------------------------------------*/ +yyexhaustedlab: + yyerror (&yylloc, result, scanner, YY_("memory exhausted")); + yyresult = 2; + goto yyreturnlab; + + +/*----------------------------------------------------------. +| yyreturnlab -- parsing is finished, clean up and return. | +`----------------------------------------------------------*/ +yyreturnlab: + if (yychar != SQL_HSQL_EMPTY) + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval, &yylloc, result, scanner); + } + /* Do not reclaim the symbols of the rule whose action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yylsp, result, scanner); + YYPOPSTACK (1); + } +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + return yyresult; +} + +#line 1328 "bison_parser.y" + +#if defined(_WIN32) || defined(_WIN64) +#pragma warning(default : 4996) +#endif + + // clang-format on + /********************************* + ** Section 4: Additional C code + *********************************/ + + /* empty */ diff --git a/Data/src/sql-parser/src/parser/bison_parser.h b/Data/src/sql-parser/src/parser/bison_parser.h new file mode 100644 index 000000000..6005a0815 --- /dev/null +++ b/Data/src/sql-parser/src/parser/bison_parser.h @@ -0,0 +1,370 @@ +/* A Bison parser, made by GNU Bison 3.8.2. */ + +/* Bison interface for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, + Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, + especially those whose name start with YY_ or yy_. They are + private implementation details that can be changed or removed. */ + +#ifndef YY_HSQL_BISON_PARSER_H_INCLUDED +# define YY_HSQL_BISON_PARSER_H_INCLUDED +/* Debug traces. */ +#ifndef HSQL_DEBUG +# if defined YYDEBUG +#if YYDEBUG +# define HSQL_DEBUG 1 +# else +# define HSQL_DEBUG 0 +# endif +# else /* ! defined YYDEBUG */ +# define HSQL_DEBUG 0 +# endif /* ! defined YYDEBUG */ +#endif /* ! defined HSQL_DEBUG */ +#if HSQL_DEBUG +extern int hsql_debug; +#endif +/* "%code requires" blocks. */ +#line 38 "bison_parser.y" + +// %code requires block + +#include "../SQLParserResult.h" +#include "../sql/statements.h" +#include "parser_typedef.h" + +// Auto update column and line number +#define YY_USER_ACTION \ + yylloc->first_line = yylloc->last_line; \ + yylloc->first_column = yylloc->last_column; \ + for (int i = 0; yytext[i] != '\0'; i++) { \ + yylloc->total_column++; \ + yylloc->string_length++; \ + if (yytext[i] == '\n') { \ + yylloc->last_line++; \ + yylloc->last_column = 0; \ + } else { \ + yylloc->last_column++; \ + } \ + } + +#line 80 "bison_parser.h" + +/* Token kinds. */ +#ifndef HSQL_TOKENTYPE +# define HSQL_TOKENTYPE + enum hsql_tokentype + { + SQL_HSQL_EMPTY = -2, + SQL_YYEOF = 0, /* "end of file" */ + SQL_HSQL_error = 256, /* error */ + SQL_HSQL_UNDEF = 257, /* "invalid token" */ + SQL_IDENTIFIER = 258, /* IDENTIFIER */ + SQL_STRING = 259, /* STRING */ + SQL_FLOATVAL = 260, /* FLOATVAL */ + SQL_INTVAL = 261, /* INTVAL */ + SQL_DEALLOCATE = 262, /* DEALLOCATE */ + SQL_PARAMETERS = 263, /* PARAMETERS */ + SQL_INTERSECT = 264, /* INTERSECT */ + SQL_TEMPORARY = 265, /* TEMPORARY */ + SQL_TIMESTAMP = 266, /* TIMESTAMP */ + SQL_DISTINCT = 267, /* DISTINCT */ + SQL_NVARCHAR = 268, /* NVARCHAR */ + SQL_RESTRICT = 269, /* RESTRICT */ + SQL_TRUNCATE = 270, /* TRUNCATE */ + SQL_ANALYZE = 271, /* ANALYZE */ + SQL_BETWEEN = 272, /* BETWEEN */ + SQL_CASCADE = 273, /* CASCADE */ + SQL_COLUMNS = 274, /* COLUMNS */ + SQL_CONTROL = 275, /* CONTROL */ + SQL_DEFAULT = 276, /* DEFAULT */ + SQL_EXECUTE = 277, /* EXECUTE */ + SQL_EXPLAIN = 278, /* EXPLAIN */ + SQL_INTEGER = 279, /* INTEGER */ + SQL_NATURAL = 280, /* NATURAL */ + SQL_PREPARE = 281, /* PREPARE */ + SQL_PRIMARY = 282, /* PRIMARY */ + SQL_SCHEMAS = 283, /* SCHEMAS */ + SQL_CHARACTER_VARYING = 284, /* CHARACTER_VARYING */ + SQL_REAL = 285, /* REAL */ + SQL_DECIMAL = 286, /* DECIMAL */ + SQL_SMALLINT = 287, /* SMALLINT */ + SQL_BIGINT = 288, /* BIGINT */ + SQL_SPATIAL = 289, /* SPATIAL */ + SQL_VARCHAR = 290, /* VARCHAR */ + SQL_VIRTUAL = 291, /* VIRTUAL */ + SQL_DESCRIBE = 292, /* DESCRIBE */ + SQL_BEFORE = 293, /* BEFORE */ + SQL_COLUMN = 294, /* COLUMN */ + SQL_CREATE = 295, /* CREATE */ + SQL_DELETE = 296, /* DELETE */ + SQL_DIRECT = 297, /* DIRECT */ + SQL_DOUBLE = 298, /* DOUBLE */ + SQL_ESCAPE = 299, /* ESCAPE */ + SQL_EXCEPT = 300, /* EXCEPT */ + SQL_EXISTS = 301, /* EXISTS */ + SQL_EXTRACT = 302, /* EXTRACT */ + SQL_CAST = 303, /* CAST */ + SQL_FORMAT = 304, /* FORMAT */ + SQL_GLOBAL = 305, /* GLOBAL */ + SQL_HAVING = 306, /* HAVING */ + SQL_IMPORT = 307, /* IMPORT */ + SQL_INSERT = 308, /* INSERT */ + SQL_ISNULL = 309, /* ISNULL */ + SQL_OFFSET = 310, /* OFFSET */ + SQL_RENAME = 311, /* RENAME */ + SQL_SCHEMA = 312, /* SCHEMA */ + SQL_SELECT = 313, /* SELECT */ + SQL_SORTED = 314, /* SORTED */ + SQL_TABLES = 315, /* TABLES */ + SQL_UNIQUE = 316, /* UNIQUE */ + SQL_UNLOAD = 317, /* UNLOAD */ + SQL_UPDATE = 318, /* UPDATE */ + SQL_VALUES = 319, /* VALUES */ + SQL_AFTER = 320, /* AFTER */ + SQL_ALTER = 321, /* ALTER */ + SQL_CROSS = 322, /* CROSS */ + SQL_DELTA = 323, /* DELTA */ + SQL_FLOAT = 324, /* FLOAT */ + SQL_GROUP = 325, /* GROUP */ + SQL_INDEX = 326, /* INDEX */ + SQL_INNER = 327, /* INNER */ + SQL_LIMIT = 328, /* LIMIT */ + SQL_LOCAL = 329, /* LOCAL */ + SQL_MERGE = 330, /* MERGE */ + SQL_MINUS = 331, /* MINUS */ + SQL_ORDER = 332, /* ORDER */ + SQL_OVER = 333, /* OVER */ + SQL_OUTER = 334, /* OUTER */ + SQL_RIGHT = 335, /* RIGHT */ + SQL_TABLE = 336, /* TABLE */ + SQL_UNION = 337, /* UNION */ + SQL_USING = 338, /* USING */ + SQL_WHERE = 339, /* WHERE */ + SQL_CALL = 340, /* CALL */ + SQL_CASE = 341, /* CASE */ + SQL_CHAR = 342, /* CHAR */ + SQL_COPY = 343, /* COPY */ + SQL_DATE = 344, /* DATE */ + SQL_DATETIME = 345, /* DATETIME */ + SQL_DESC = 346, /* DESC */ + SQL_DROP = 347, /* DROP */ + SQL_ELSE = 348, /* ELSE */ + SQL_FILE = 349, /* FILE */ + SQL_FROM = 350, /* FROM */ + SQL_FULL = 351, /* FULL */ + SQL_HASH = 352, /* HASH */ + SQL_HINT = 353, /* HINT */ + SQL_INTO = 354, /* INTO */ + SQL_JOIN = 355, /* JOIN */ + SQL_LEFT = 356, /* LEFT */ + SQL_LIKE = 357, /* LIKE */ + SQL_LOAD = 358, /* LOAD */ + SQL_LONG = 359, /* LONG */ + SQL_NULL = 360, /* NULL */ + SQL_PARTITION = 361, /* PARTITION */ + SQL_PLAN = 362, /* PLAN */ + SQL_SHOW = 363, /* SHOW */ + SQL_TEXT = 364, /* TEXT */ + SQL_THEN = 365, /* THEN */ + SQL_TIME = 366, /* TIME */ + SQL_VIEW = 367, /* VIEW */ + SQL_WHEN = 368, /* WHEN */ + SQL_WITH = 369, /* WITH */ + SQL_ADD = 370, /* ADD */ + SQL_ALL = 371, /* ALL */ + SQL_AND = 372, /* AND */ + SQL_ASC = 373, /* ASC */ + SQL_END = 374, /* END */ + SQL_FOR = 375, /* FOR */ + SQL_INT = 376, /* INT */ + SQL_KEY = 377, /* KEY */ + SQL_NOT = 378, /* NOT */ + SQL_OFF = 379, /* OFF */ + SQL_SET = 380, /* SET */ + SQL_TOP = 381, /* TOP */ + SQL_AS = 382, /* AS */ + SQL_BY = 383, /* BY */ + SQL_IF = 384, /* IF */ + SQL_IN = 385, /* IN */ + SQL_IS = 386, /* IS */ + SQL_OF = 387, /* OF */ + SQL_ON = 388, /* ON */ + SQL_OR = 389, /* OR */ + SQL_TO = 390, /* TO */ + SQL_NO = 391, /* NO */ + SQL_ARRAY = 392, /* ARRAY */ + SQL_CONCAT = 393, /* CONCAT */ + SQL_ILIKE = 394, /* ILIKE */ + SQL_SECOND = 395, /* SECOND */ + SQL_MINUTE = 396, /* MINUTE */ + SQL_HOUR = 397, /* HOUR */ + SQL_DAY = 398, /* DAY */ + SQL_MONTH = 399, /* MONTH */ + SQL_YEAR = 400, /* YEAR */ + SQL_SECONDS = 401, /* SECONDS */ + SQL_MINUTES = 402, /* MINUTES */ + SQL_HOURS = 403, /* HOURS */ + SQL_DAYS = 404, /* DAYS */ + SQL_MONTHS = 405, /* MONTHS */ + SQL_YEARS = 406, /* YEARS */ + SQL_INTERVAL = 407, /* INTERVAL */ + SQL_TRUE = 408, /* TRUE */ + SQL_FALSE = 409, /* FALSE */ + SQL_BOOLEAN = 410, /* BOOLEAN */ + SQL_TRANSACTION = 411, /* TRANSACTION */ + SQL_BEGIN = 412, /* BEGIN */ + SQL_COMMIT = 413, /* COMMIT */ + SQL_ROLLBACK = 414, /* ROLLBACK */ + SQL_NOWAIT = 415, /* NOWAIT */ + SQL_SKIP = 416, /* SKIP */ + SQL_LOCKED = 417, /* LOCKED */ + SQL_SHARE = 418, /* SHARE */ + SQL_RANGE = 419, /* RANGE */ + SQL_ROWS = 420, /* ROWS */ + SQL_GROUPS = 421, /* GROUPS */ + SQL_UNBOUNDED = 422, /* UNBOUNDED */ + SQL_FOLLOWING = 423, /* FOLLOWING */ + SQL_PRECEDING = 424, /* PRECEDING */ + SQL_CURRENT_ROW = 425, /* CURRENT_ROW */ + SQL_EQUALS = 426, /* EQUALS */ + SQL_NOTEQUALS = 427, /* NOTEQUALS */ + SQL_LESS = 428, /* LESS */ + SQL_GREATER = 429, /* GREATER */ + SQL_LESSEQ = 430, /* LESSEQ */ + SQL_GREATEREQ = 431, /* GREATEREQ */ + SQL_NOTNULL = 432, /* NOTNULL */ + SQL_UMINUS = 433 /* UMINUS */ + }; + typedef enum hsql_tokentype hsql_token_kind_t; +#endif + +/* Value type. */ +#if ! defined HSQL_STYPE && ! defined HSQL_STYPE_IS_DECLARED +union HSQL_STYPE +{ +#line 96 "bison_parser.y" + + // clang-format on + bool bval; + char* sval; + double fval; + int64_t ival; + uintmax_t uval; + + // statements + hsql::AlterStatement* alter_stmt; + hsql::CreateStatement* create_stmt; + hsql::DeleteStatement* delete_stmt; + hsql::DropStatement* drop_stmt; + hsql::ExecuteStatement* exec_stmt; + hsql::ExportStatement* export_stmt; + hsql::ImportStatement* import_stmt; + hsql::InsertStatement* insert_stmt; + hsql::PrepareStatement* prep_stmt; + hsql::SelectStatement* select_stmt; + hsql::ShowStatement* show_stmt; + hsql::SQLStatement* statement; + hsql::TransactionStatement* transaction_stmt; + hsql::UpdateStatement* update_stmt; + + hsql::Alias* alias_t; + hsql::AlterAction* alter_action_t; + hsql::ColumnDefinition* column_t; + hsql::ColumnType column_type_t; + hsql::ConstraintType column_constraint_t; + hsql::DatetimeField datetime_field; + hsql::DropColumnAction* drop_action_t; + hsql::Expr* expr; + hsql::FrameBound* frame_bound; + hsql::FrameDescription* frame_description; + hsql::FrameType frame_type; + hsql::GroupByDescription* group_t; + hsql::ImportType import_type_t; + hsql::JoinType join_type; + hsql::LimitDescription* limit; + hsql::LockingClause* locking_t; + hsql::OrderDescription* order; + hsql::OrderType order_type; + hsql::SetOperation* set_operator_t; + hsql::TableConstraint* table_constraint_t; + hsql::TableElement* table_element_t; + hsql::TableName table_name; + hsql::TableRef* table; + hsql::UpdateClause* update_t; + hsql::WindowDescription* window_description; + hsql::WithDescription* with_description_t; + + std::vector* str_vec; + std::unordered_set* column_constraint_set; + std::vector* expr_vec; + std::vector* order_vec; + std::vector* stmt_vec; + std::vector* table_element_vec; + std::vector* table_vec; + std::vector* update_vec; + std::vector* with_description_vec; + std::vector* locking_clause_vec; + + std::pair* ival_pair; + + hsql::RowLockMode lock_mode_t; + hsql::RowLockWaitPolicy lock_wait_policy_t; + +#line 343 "bison_parser.h" + +}; +typedef union HSQL_STYPE HSQL_STYPE; +# define HSQL_STYPE_IS_TRIVIAL 1 +# define HSQL_STYPE_IS_DECLARED 1 +#endif + +/* Location type. */ +#if ! defined HSQL_LTYPE && ! defined HSQL_LTYPE_IS_DECLARED +typedef struct HSQL_LTYPE HSQL_LTYPE; +struct HSQL_LTYPE +{ + int first_line; + int first_column; + int last_line; + int last_column; +}; +# define HSQL_LTYPE_IS_DECLARED 1 +# define HSQL_LTYPE_IS_TRIVIAL 1 +#endif + + + + +int hsql_parse (hsql::SQLParserResult* result, yyscan_t scanner); + + +#endif /* !YY_HSQL_BISON_PARSER_H_INCLUDED */ diff --git a/Data/src/sql-parser/src/parser/bison_parser.y b/Data/src/sql-parser/src/parser/bison_parser.y new file mode 100644 index 000000000..e579a3552 --- /dev/null +++ b/Data/src/sql-parser/src/parser/bison_parser.y @@ -0,0 +1,1334 @@ +// clang-format off +%{ + // clang-format on + /** + * bison_parser.y + * defines bison_parser.h + * outputs bison_parser.c + * + * Grammar File Spec: http://dinosaur.compilertools.net/bison/bison_6.html + * + */ + /********************************* + ** Section 1: C Declarations + *********************************/ + +#include "bison_parser.h" +#include "flex_lexer.h" + +#include +#include + + using namespace hsql; + + int yyerror(YYLTYPE * llocp, SQLParserResult * result, yyscan_t scanner, const char* msg) { + result->setIsValid(false); + result->setErrorDetails(strdup(msg), llocp->first_line, llocp->first_column); + return 0; + } + // clang-format off +%} +// clang-format on +/********************************* + ** Section 2: Bison Parser Declarations + *********************************/ + +// Specify code that is included in the generated .h and .c files +// clang-format off +%code requires { +// %code requires block + +#include "../SQLParserResult.h" +#include "../sql/statements.h" +#include "parser_typedef.h" + +// Auto update column and line number +#define YY_USER_ACTION \ + yylloc->first_line = yylloc->last_line; \ + yylloc->first_column = yylloc->last_column; \ + for (int i = 0; yytext[i] != '\0'; i++) { \ + yylloc->total_column++; \ + yylloc->string_length++; \ + if (yytext[i] == '\n') { \ + yylloc->last_line++; \ + yylloc->last_column = 0; \ + } else { \ + yylloc->last_column++; \ + } \ + } +} + +// Define the names of the created files (defined in Makefile) +// %output "bison_parser.cpp" +// %defines "bison_parser.h" + +// Tell bison to create a reentrant parser +%define api.pure full + +// Prefix the parser +%define api.prefix {hsql_} +%define api.token.prefix {SQL_} + +%define parse.error verbose +%locations + +%initial-action { + // Initialize + @$.first_column = 0; + @$.last_column = 0; + @$.first_line = 0; + @$.last_line = 0; + @$.total_column = 0; + @$.string_length = 0; +}; + + +// Define additional parameters for yylex (http://www.gnu.org/software/bison/manual/html_node/Pure-Calling.html) +%lex-param { yyscan_t scanner } + +// Define additional parameters for yyparse +%parse-param { hsql::SQLParserResult* result } +%parse-param { yyscan_t scanner } + +/********************************* + ** Define all data-types (http://www.gnu.org/software/bison/manual/html_node/Union-Decl.html) + *********************************/ +%union { + // clang-format on + bool bval; + char* sval; + double fval; + int64_t ival; + uintmax_t uval; + + // statements + hsql::AlterStatement* alter_stmt; + hsql::CreateStatement* create_stmt; + hsql::DeleteStatement* delete_stmt; + hsql::DropStatement* drop_stmt; + hsql::ExecuteStatement* exec_stmt; + hsql::ExportStatement* export_stmt; + hsql::ImportStatement* import_stmt; + hsql::InsertStatement* insert_stmt; + hsql::PrepareStatement* prep_stmt; + hsql::SelectStatement* select_stmt; + hsql::ShowStatement* show_stmt; + hsql::SQLStatement* statement; + hsql::TransactionStatement* transaction_stmt; + hsql::UpdateStatement* update_stmt; + + hsql::Alias* alias_t; + hsql::AlterAction* alter_action_t; + hsql::ColumnDefinition* column_t; + hsql::ColumnType column_type_t; + hsql::ConstraintType column_constraint_t; + hsql::DatetimeField datetime_field; + hsql::DropColumnAction* drop_action_t; + hsql::Expr* expr; + hsql::FrameBound* frame_bound; + hsql::FrameDescription* frame_description; + hsql::FrameType frame_type; + hsql::GroupByDescription* group_t; + hsql::ImportType import_type_t; + hsql::JoinType join_type; + hsql::LimitDescription* limit; + hsql::LockingClause* locking_t; + hsql::OrderDescription* order; + hsql::OrderType order_type; + hsql::SetOperation* set_operator_t; + hsql::TableConstraint* table_constraint_t; + hsql::TableElement* table_element_t; + hsql::TableName table_name; + hsql::TableRef* table; + hsql::UpdateClause* update_t; + hsql::WindowDescription* window_description; + hsql::WithDescription* with_description_t; + + std::vector* str_vec; + std::unordered_set* column_constraint_set; + std::vector* expr_vec; + std::vector* order_vec; + std::vector* stmt_vec; + std::vector* table_element_vec; + std::vector* table_vec; + std::vector* update_vec; + std::vector* with_description_vec; + std::vector* locking_clause_vec; + + std::pair* ival_pair; + + hsql::RowLockMode lock_mode_t; + hsql::RowLockWaitPolicy lock_wait_policy_t; +} + + /********************************* + ** Destructor symbols + *********************************/ + // clang-format off + %destructor { } + %destructor { + free( ($$.name) ); + free( ($$.schema) ); + } + %destructor { + if ($$) { + for (auto ptr : *($$)) { + free(ptr); + } + } + delete ($$); + } + %destructor { free( ($$) ); } + %destructor { + if ($$) { + for (auto ptr : *($$)) { + delete ptr; + } + } + delete ($$); + } + %destructor { delete ($$); } <*> + + + /********************************* + ** Token Definition + *********************************/ + %token IDENTIFIER STRING + %token FLOATVAL + %token INTVAL + + /* SQL Keywords */ + %token DEALLOCATE PARAMETERS INTERSECT TEMPORARY TIMESTAMP + %token DISTINCT NVARCHAR RESTRICT TRUNCATE ANALYZE BETWEEN + %token CASCADE COLUMNS CONTROL DEFAULT EXECUTE EXPLAIN + %token INTEGER NATURAL PREPARE PRIMARY SCHEMAS CHARACTER_VARYING REAL DECIMAL SMALLINT BIGINT + %token SPATIAL VARCHAR VIRTUAL DESCRIBE BEFORE COLUMN CREATE DELETE DIRECT + %token DOUBLE ESCAPE EXCEPT EXISTS EXTRACT CAST FORMAT GLOBAL HAVING IMPORT + %token INSERT ISNULL OFFSET RENAME SCHEMA SELECT SORTED + %token TABLES UNIQUE UNLOAD UPDATE VALUES AFTER ALTER CROSS + %token DELTA FLOAT GROUP INDEX INNER LIMIT LOCAL MERGE MINUS ORDER OVER + %token OUTER RIGHT TABLE UNION USING WHERE CALL CASE CHAR COPY DATE DATETIME + %token DESC DROP ELSE FILE FROM FULL HASH HINT INTO JOIN + %token LEFT LIKE LOAD LONG NULL PARTITION PLAN SHOW TEXT THEN TIME + %token VIEW WHEN WITH ADD ALL AND ASC END FOR INT KEY + %token NOT OFF SET TOP AS BY IF IN IS OF ON OR TO NO + %token ARRAY CONCAT ILIKE SECOND MINUTE HOUR DAY MONTH YEAR + %token SECONDS MINUTES HOURS DAYS MONTHS YEARS INTERVAL + %token TRUE FALSE BOOLEAN + %token TRANSACTION BEGIN COMMIT ROLLBACK + %token NOWAIT SKIP LOCKED SHARE + %token RANGE ROWS GROUPS UNBOUNDED FOLLOWING PRECEDING CURRENT_ROW + + /********************************* + ** Non-Terminal types (http://www.gnu.org/software/bison/manual/html_node/Type-Decl.html) + *********************************/ + %type statement_list + %type statement preparable_statement + %type execute_statement + %type transaction_statement + %type prepare_statement + %type select_statement select_with_paren select_no_paren select_clause select_within_set_operation select_within_set_operation_no_parentheses + %type import_statement + %type export_statement + %type create_statement + %type insert_statement + %type delete_statement truncate_statement + %type update_statement + %type drop_statement + %type alter_statement + %type show_statement + %type table_name + %type opt_index_name + %type file_path prepare_target_query + %type opt_frame_clause + %type frame_bound + %type frame_type + %type opt_window + %type opt_not_exists opt_exists opt_distinct opt_all + %type opt_decimal_specification + %type opt_time_precision + %type opt_join_type + %type
    15. opt_from_clause from_clause table_ref table_ref_atomic table_ref_name nonjoin_table_ref_atomic + %type
      join_clause table_ref_name_no_alias + %type expr operand scalar_expr unary_expr binary_expr logic_expr exists_expr extract_expr cast_expr + %type function_expr between_expr expr_alias param_expr + %type column_name literal int_literal num_literal string_literal bool_literal date_literal interval_literal + %type comp_expr opt_where join_condition opt_having case_expr case_list in_expr hint + %type array_expr array_index null_literal + %type opt_limit opt_top + %type order_desc + %type opt_order_type + %type datetime_field datetime_field_plural duration_field + %type column_def + %type table_elem + %type column_type + %type table_constraint + %type update_clause + %type locking_clause + %type opt_group + %type opt_table_alias table_alias opt_alias alias + %type with_description + %type set_operator set_type + %type column_constraint + %type opt_column_constraints + %type column_constraint_set + %type alter_action + %type drop_action + %type opt_row_lock_policy + %type row_lock_mode + + // ImportType is used for compatibility reasons + %type opt_file_type file_type + + %type ident_commalist opt_column_list + %type expr_list select_list opt_literal_list literal_list hint_list opt_hints opt_partition + %type table_ref_commalist + %type opt_order order_list + %type opt_with_clause with_clause with_description_list + %type update_clause_commalist + %type table_elem_commalist + %type opt_locking_clause_list opt_locking_clause + + /****************************** + ** Token Precedence and Associativity + ** Precedence: lowest to highest + ******************************/ + %left OR + %left AND + %right NOT + %nonassoc '=' EQUALS NOTEQUALS LIKE ILIKE + %nonassoc '<' '>' LESS GREATER LESSEQ GREATEREQ + + %nonassoc NOTNULL + %nonassoc ISNULL + %nonassoc IS /* sets precedence for IS NULL, etc */ + %left '+' '-' + %left '*' '/' '%' + %left '^' + %left CONCAT + + /* Unary Operators */ + %right UMINUS + %left '[' ']' + %left '(' ')' + %left '.' + %left JOIN +%% +/********************************* + ** Section 3: Grammar Definition +*********************************/ + +// Defines our general input. +input : statement_list opt_semicolon { + for (SQLStatement* stmt : *$1) { + // Transfers ownership of the statement. + result->addStatement(stmt); + } + + unsigned param_id = 0; + for (void* param : yyloc.param_list) { + if (param) { + Expr* expr = (Expr*)param; + expr->ival = param_id; + result->addParameter(expr); + ++param_id; + } + } + delete $1; + }; + +// clang-format on +statement_list : statement { + $1->stringLength = yylloc.string_length; + yylloc.string_length = 0; + $$ = new std::vector(); + $$->push_back($1); +} +| statement_list ';' statement { + $3->stringLength = yylloc.string_length; + yylloc.string_length = 0; + $1->push_back($3); + $$ = $1; +}; + +statement : prepare_statement opt_hints { + $$ = $1; + $$->hints = $2; +} +| preparable_statement opt_hints { + $$ = $1; + $$->hints = $2; +} +| show_statement { $$ = $1; } +| import_statement { $$ = $1; } +| export_statement { $$ = $1; }; + +preparable_statement : select_statement { $$ = $1; } +| create_statement { $$ = $1; } +| insert_statement { $$ = $1; } +| delete_statement { $$ = $1; } +| truncate_statement { $$ = $1; } +| update_statement { $$ = $1; } +| drop_statement { $$ = $1; } +| alter_statement { $$ = $1; } +| execute_statement { $$ = $1; } +| transaction_statement { $$ = $1; }; + +/****************************** + * Hints + ******************************/ + +opt_hints : WITH HINT '(' hint_list ')' { $$ = $4; } +| /* empty */ { $$ = nullptr; }; + +hint_list : hint { + $$ = new std::vector(); + $$->push_back($1); +} +| hint_list ',' hint { + $1->push_back($3); + $$ = $1; +}; + +hint : IDENTIFIER { + $$ = Expr::make(kExprHint); + $$->name = $1; +} +| IDENTIFIER '(' literal_list ')' { + $$ = Expr::make(kExprHint); + $$->name = $1; + $$->exprList = $3; +}; + +/****************************** + * Transaction Statement + ******************************/ + +transaction_statement : BEGIN opt_transaction_keyword { $$ = new TransactionStatement(kBeginTransaction); } +| ROLLBACK opt_transaction_keyword { $$ = new TransactionStatement(kRollbackTransaction); } +| COMMIT opt_transaction_keyword { $$ = new TransactionStatement(kCommitTransaction); }; + +opt_transaction_keyword : TRANSACTION | /* empty */ + ; + +/****************************** + * Prepared Statement + ******************************/ +prepare_statement : PREPARE IDENTIFIER FROM prepare_target_query { + $$ = new PrepareStatement(); + $$->name = $2; + $$->query = $4; +}; + +prepare_target_query : STRING + + execute_statement : EXECUTE IDENTIFIER { + $$ = new ExecuteStatement(); + $$->name = $2; +} +| EXECUTE IDENTIFIER '(' opt_literal_list ')' { + $$ = new ExecuteStatement(); + $$->name = $2; + $$->parameters = $4; +}; + +/****************************** + * Import Statement + * IMPORT FROM TBL FILE 'test/students.tbl' INTO students + * COPY students FROM 'test/students.tbl' [WITH FORMAT TBL] + ******************************/ +import_statement : IMPORT FROM file_type FILE file_path INTO table_name { + $$ = new ImportStatement($3); + $$->filePath = $5; + $$->schema = $7.schema; + $$->tableName = $7.name; +} +| COPY table_name FROM file_path opt_file_type opt_where { + $$ = new ImportStatement($5); + $$->filePath = $4; + $$->schema = $2.schema; + $$->tableName = $2.name; + $$->whereClause = $6; +}; + +file_type : IDENTIFIER { + if (strcasecmp($1, "csv") == 0) { + $$ = kImportCSV; + } else if (strcasecmp($1, "tbl") == 0) { + $$ = kImportTbl; + } else if (strcasecmp($1, "binary") == 0 || strcasecmp($1, "bin") == 0) { + $$ = kImportBinary; + } else { + free($1); + yyerror(&yyloc, result, scanner, "File type is unknown."); + YYERROR; + } + free($1); +}; + +file_path : string_literal { + $$ = strdup($1->name); + delete $1; +}; + +opt_file_type : WITH FORMAT file_type { $$ = $3; } +| /* empty */ { $$ = kImportAuto; }; + +/****************************** + * Export Statement + * COPY students TO 'test/students.tbl' (WITH FORMAT TBL) + ******************************/ +export_statement : COPY table_name TO file_path opt_file_type { + $$ = new ExportStatement($5); + $$->filePath = $4; + $$->schema = $2.schema; + $$->tableName = $2.name; +} +| COPY select_with_paren TO file_path opt_file_type { + $$ = new ExportStatement($5); + $$->filePath = $4; + $$->select = $2; +}; + +/****************************** + * Show Statement + * SHOW TABLES; + ******************************/ + +show_statement : SHOW TABLES { $$ = new ShowStatement(kShowTables); } +| SHOW COLUMNS table_name { + $$ = new ShowStatement(kShowColumns); + $$->schema = $3.schema; + $$->name = $3.name; +} +| DESCRIBE table_name { + $$ = new ShowStatement(kShowColumns); + $$->schema = $2.schema; + $$->name = $2.name; +}; + +/****************************** + * Create Statement + * CREATE TABLE students (name TEXT, student_number INTEGER, city TEXT, grade DOUBLE) + * CREATE TABLE students FROM TBL FILE 'test/students.tbl' + ******************************/ +create_statement : CREATE TABLE opt_not_exists table_name FROM IDENTIFIER FILE file_path { + $$ = new CreateStatement(kCreateTableFromTbl); + $$->ifNotExists = $3; + $$->schema = $4.schema; + $$->tableName = $4.name; + if (strcasecmp($6, "tbl") != 0) { + free($6); + yyerror(&yyloc, result, scanner, "File type is unknown."); + YYERROR; + } + free($6); + $$->filePath = $8; +} +| CREATE TABLE opt_not_exists table_name '(' table_elem_commalist ')' { + $$ = new CreateStatement(kCreateTable); + $$->ifNotExists = $3; + $$->schema = $4.schema; + $$->tableName = $4.name; + $$->setColumnDefsAndConstraints($6); + delete $6; + if (result->errorMsg()) { + delete $$; + YYERROR; + } +} +| CREATE TABLE opt_not_exists table_name AS select_statement { + $$ = new CreateStatement(kCreateTable); + $$->ifNotExists = $3; + $$->schema = $4.schema; + $$->tableName = $4.name; + $$->select = $6; +} +| CREATE INDEX opt_not_exists opt_index_name ON table_name '(' ident_commalist ')' { + $$ = new CreateStatement(kCreateIndex); + $$->indexName = $4; + $$->ifNotExists = $3; + $$->tableName = $6.name; + $$->indexColumns = $8; +} +| CREATE VIEW opt_not_exists table_name opt_column_list AS select_statement { + $$ = new CreateStatement(kCreateView); + $$->ifNotExists = $3; + $$->schema = $4.schema; + $$->tableName = $4.name; + $$->viewColumns = $5; + $$->select = $7; +}; + +opt_not_exists : IF NOT EXISTS { $$ = true; } +| /* empty */ { $$ = false; }; + +table_elem_commalist : table_elem { + $$ = new std::vector(); + $$->push_back($1); +} +| table_elem_commalist ',' table_elem { + $1->push_back($3); + $$ = $1; +}; + +table_elem : column_def { $$ = $1; } +| table_constraint { $$ = $1; }; + +column_def : IDENTIFIER column_type opt_column_constraints { + $$ = new ColumnDefinition($1, $2, $3); + if (!$$->trySetNullableExplicit()) { + yyerror(&yyloc, result, scanner, ("Conflicting nullability constraints for " + std::string{$1}).c_str()); + } +}; + +column_type : BIGINT { $$ = ColumnType{DataType::BIGINT}; } +| BOOLEAN { $$ = ColumnType{DataType::BOOLEAN}; } +| CHAR '(' INTVAL ')' { $$ = ColumnType{DataType::CHAR, $3}; } +| CHARACTER_VARYING '(' INTVAL ')' { $$ = ColumnType{DataType::VARCHAR, $3}; } +| DATE { $$ = ColumnType{DataType::DATE}; }; +| DATETIME { $$ = ColumnType{DataType::DATETIME}; } +| DECIMAL opt_decimal_specification { + $$ = ColumnType{DataType::DECIMAL, 0, $2->first, $2->second}; + delete $2; +} +| DOUBLE { $$ = ColumnType{DataType::DOUBLE}; } +| FLOAT { $$ = ColumnType{DataType::FLOAT}; } +| INT { $$ = ColumnType{DataType::INT}; } +| INTEGER { $$ = ColumnType{DataType::INT}; } +| LONG { $$ = ColumnType{DataType::LONG}; } +| REAL { $$ = ColumnType{DataType::REAL}; } +| SMALLINT { $$ = ColumnType{DataType::SMALLINT}; } +| TEXT { $$ = ColumnType{DataType::TEXT}; } +| TIME opt_time_precision { $$ = ColumnType{DataType::TIME, 0, $2}; } +| TIMESTAMP { $$ = ColumnType{DataType::DATETIME}; } +| VARCHAR '(' INTVAL ')' { $$ = ColumnType{DataType::VARCHAR, $3}; } + +opt_time_precision : '(' INTVAL ')' { $$ = $2; } +| /* empty */ { $$ = 0; }; + +opt_decimal_specification : '(' INTVAL ',' INTVAL ')' { $$ = new std::pair{$2, $4}; } +| '(' INTVAL ')' { $$ = new std::pair{$2, 0}; } +| /* empty */ { $$ = new std::pair{0, 0}; }; + +opt_column_constraints : column_constraint_set { $$ = $1; } +| /* empty */ { $$ = new std::unordered_set(); }; + +column_constraint_set : column_constraint { + $$ = new std::unordered_set(); + $$->insert($1); +} +| column_constraint_set column_constraint { + $1->insert($2); + $$ = $1; +} + +column_constraint : PRIMARY KEY { $$ = ConstraintType::PrimaryKey; } +| UNIQUE { $$ = ConstraintType::Unique; } +| NULL { $$ = ConstraintType::Null; } +| NOT NULL { $$ = ConstraintType::NotNull; }; + +table_constraint : PRIMARY KEY '(' ident_commalist ')' { $$ = new TableConstraint(ConstraintType::PrimaryKey, $4); } +| UNIQUE '(' ident_commalist ')' { $$ = new TableConstraint(ConstraintType::Unique, $3); }; + +/****************************** + * Drop Statement + * DROP TABLE students; + * DEALLOCATE PREPARE stmt; + ******************************/ + +drop_statement : DROP TABLE opt_exists table_name { + $$ = new DropStatement(kDropTable); + $$->ifExists = $3; + $$->schema = $4.schema; + $$->name = $4.name; +} +| DROP VIEW opt_exists table_name { + $$ = new DropStatement(kDropView); + $$->ifExists = $3; + $$->schema = $4.schema; + $$->name = $4.name; +} +| DEALLOCATE PREPARE IDENTIFIER { + $$ = new DropStatement(kDropPreparedStatement); + $$->ifExists = false; + $$->name = $3; +} + +| DROP INDEX opt_exists IDENTIFIER { + $$ = new DropStatement(kDropIndex); + $$->ifExists = $3; + $$->indexName = $4; +}; + +opt_exists : IF EXISTS { $$ = true; } +| /* empty */ { $$ = false; }; + +/****************************** + * ALTER Statement + * ALTER TABLE students DROP COLUMN name; + ******************************/ + +alter_statement : ALTER TABLE opt_exists table_name alter_action { + $$ = new AlterStatement($4.name, $5); + $$->ifTableExists = $3; + $$->schema = $4.schema; +}; + +alter_action : drop_action { $$ = $1; } + +drop_action : DROP COLUMN opt_exists IDENTIFIER { + $$ = new DropColumnAction($4); + $$->ifExists = $3; +}; + +/****************************** + * Delete Statement / Truncate statement + * DELETE FROM students WHERE grade > 3.0 + * DELETE FROM students <=> TRUNCATE students + ******************************/ +delete_statement : DELETE FROM table_name opt_where { + $$ = new DeleteStatement(); + $$->schema = $3.schema; + $$->tableName = $3.name; + $$->expr = $4; +}; + +truncate_statement : TRUNCATE table_name { + $$ = new DeleteStatement(); + $$->schema = $2.schema; + $$->tableName = $2.name; +}; + +/****************************** + * Insert Statement + * INSERT INTO students VALUES ('Max', 1112233, 'Musterhausen', 2.3) + * INSERT INTO employees SELECT * FROM stundents + ******************************/ +insert_statement : INSERT INTO table_name opt_column_list VALUES '(' literal_list ')' { + $$ = new InsertStatement(kInsertValues); + $$->schema = $3.schema; + $$->tableName = $3.name; + $$->columns = $4; + $$->values = $7; +} +| INSERT INTO table_name opt_column_list select_no_paren { + $$ = new InsertStatement(kInsertSelect); + $$->schema = $3.schema; + $$->tableName = $3.name; + $$->columns = $4; + $$->select = $5; +}; + +opt_column_list : '(' ident_commalist ')' { $$ = $2; } +| /* empty */ { $$ = nullptr; }; + +/****************************** + * Update Statement + * UPDATE students SET grade = 1.3, name='Felix Fürstenberg' WHERE name = 'Max Mustermann'; + ******************************/ + +update_statement : UPDATE table_ref_name_no_alias SET update_clause_commalist opt_where { + $$ = new UpdateStatement(); + $$->table = $2; + $$->updates = $4; + $$->where = $5; +}; + +update_clause_commalist : update_clause { + $$ = new std::vector(); + $$->push_back($1); +} +| update_clause_commalist ',' update_clause { + $1->push_back($3); + $$ = $1; +}; + +update_clause : IDENTIFIER '=' expr { + $$ = new UpdateClause(); + $$->column = $1; + $$->value = $3; +}; + +/****************************** + * Select Statement + ******************************/ + +select_statement : opt_with_clause select_with_paren { + $$ = $2; + $$->withDescriptions = $1; +} +| opt_with_clause select_no_paren { + $$ = $2; + $$->withDescriptions = $1; +} +| opt_with_clause select_with_paren set_operator select_within_set_operation opt_order opt_limit { + $$ = $2; + if ($$->setOperations == nullptr) { + $$->setOperations = new std::vector(); + } + $$->setOperations->push_back($3); + $$->setOperations->back()->nestedSelectStatement = $4; + $$->setOperations->back()->resultOrder = $5; + $$->setOperations->back()->resultLimit = $6; + $$->withDescriptions = $1; +}; + +select_within_set_operation : select_with_paren | select_within_set_operation_no_parentheses; + +select_within_set_operation_no_parentheses : select_clause { $$ = $1; } +| select_clause set_operator select_within_set_operation { + $$ = $1; + if ($$->setOperations == nullptr) { + $$->setOperations = new std::vector(); + } + $$->setOperations->push_back($2); + $$->setOperations->back()->nestedSelectStatement = $3; +}; + +select_with_paren : '(' select_no_paren ')' { $$ = $2; } +| '(' select_with_paren ')' { $$ = $2; }; + +select_no_paren : select_clause opt_order opt_limit opt_locking_clause { + $$ = $1; + $$->order = $2; + + // Limit could have been set by TOP. + if ($3) { + delete $$->limit; + $$->limit = $3; + } + + if ($4) { + $$->lockings = $4; + } +} +| select_clause set_operator select_within_set_operation opt_order opt_limit opt_locking_clause { + $$ = $1; + if ($$->setOperations == nullptr) { + $$->setOperations = new std::vector(); + } + $$->setOperations->push_back($2); + $$->setOperations->back()->nestedSelectStatement = $3; + $$->setOperations->back()->resultOrder = $4; + $$->setOperations->back()->resultLimit = $5; + $$->lockings = $6; +}; + +set_operator : set_type opt_all { + $$ = $1; + $$->isAll = $2; +}; + +set_type : UNION { + $$ = new SetOperation(); + $$->setType = SetType::kSetUnion; +} +| INTERSECT { + $$ = new SetOperation(); + $$->setType = SetType::kSetIntersect; +} +| EXCEPT { + $$ = new SetOperation(); + $$->setType = SetType::kSetExcept; +}; + +opt_all : ALL { $$ = true; } +| /* empty */ { $$ = false; }; + +select_clause : SELECT opt_top opt_distinct select_list opt_from_clause opt_where opt_group { + $$ = new SelectStatement(); + $$->limit = $2; + $$->selectDistinct = $3; + $$->selectList = $4; + $$->fromTable = $5; + $$->whereClause = $6; + $$->groupBy = $7; +}; + +opt_distinct : DISTINCT { $$ = true; } +| /* empty */ { $$ = false; }; + +select_list : expr_list; + +opt_from_clause : from_clause { $$ = $1; } +| /* empty */ { $$ = nullptr; }; + +from_clause : FROM table_ref { $$ = $2; }; + +opt_where : WHERE expr { $$ = $2; } +| /* empty */ { $$ = nullptr; }; + +opt_group : GROUP BY expr_list opt_having { + $$ = new GroupByDescription(); + $$->columns = $3; + $$->having = $4; +} +| /* empty */ { $$ = nullptr; }; + +opt_having : HAVING expr { $$ = $2; } +| /* empty */ { $$ = nullptr; }; + +opt_order : ORDER BY order_list { $$ = $3; } +| /* empty */ { $$ = nullptr; }; + +order_list : order_desc { + $$ = new std::vector(); + $$->push_back($1); +} +| order_list ',' order_desc { + $1->push_back($3); + $$ = $1; +}; + +order_desc : expr opt_order_type { $$ = new OrderDescription($2, $1); }; + +opt_order_type : ASC { $$ = kOrderAsc; } +| DESC { $$ = kOrderDesc; } +| /* empty */ { $$ = kOrderAsc; }; + +// TODO: TOP and LIMIT can take more than just int literals. + +opt_top : TOP int_literal { $$ = new LimitDescription($2, nullptr); } +| /* empty */ { $$ = nullptr; }; + +opt_limit : LIMIT expr { $$ = new LimitDescription($2, nullptr); } +| OFFSET expr { $$ = new LimitDescription(nullptr, $2); } +| LIMIT expr OFFSET expr { $$ = new LimitDescription($2, $4); } +| LIMIT ALL { $$ = new LimitDescription(nullptr, nullptr); } +| LIMIT ALL OFFSET expr { $$ = new LimitDescription(nullptr, $4); } +| /* empty */ { $$ = nullptr; }; + +/****************************** + * Expressions + ******************************/ +expr_list : expr_alias { + $$ = new std::vector(); + $$->push_back($1); +} +| expr_list ',' expr_alias { + $1->push_back($3); + $$ = $1; +}; + +opt_literal_list : literal_list { $$ = $1; } +| /* empty */ { $$ = nullptr; }; + +literal_list : literal { + $$ = new std::vector(); + $$->push_back($1); +} +| literal_list ',' literal { + $1->push_back($3); + $$ = $1; +}; + +expr_alias : expr opt_alias { + $$ = $1; + if ($2) { + $$->alias = strdup($2->name); + delete $2; + } +}; + +expr : operand | between_expr | logic_expr | exists_expr | in_expr; + +operand : '(' expr ')' { $$ = $2; } +| array_index | scalar_expr | unary_expr | binary_expr | case_expr | function_expr | extract_expr | cast_expr | + array_expr | '(' select_no_paren ')' { + $$ = Expr::makeSelect($2); +}; + +scalar_expr : column_name | literal; + +unary_expr : '-' operand { $$ = Expr::makeOpUnary(kOpUnaryMinus, $2); } +| NOT operand { $$ = Expr::makeOpUnary(kOpNot, $2); } +| operand ISNULL { $$ = Expr::makeOpUnary(kOpIsNull, $1); } +| operand IS NULL { $$ = Expr::makeOpUnary(kOpIsNull, $1); } +| operand IS NOT NULL { $$ = Expr::makeOpUnary(kOpNot, Expr::makeOpUnary(kOpIsNull, $1)); }; + +binary_expr : comp_expr | operand '-' operand { $$ = Expr::makeOpBinary($1, kOpMinus, $3); } +| operand '+' operand { $$ = Expr::makeOpBinary($1, kOpPlus, $3); } +| operand '/' operand { $$ = Expr::makeOpBinary($1, kOpSlash, $3); } +| operand '*' operand { $$ = Expr::makeOpBinary($1, kOpAsterisk, $3); } +| operand '%' operand { $$ = Expr::makeOpBinary($1, kOpPercentage, $3); } +| operand '^' operand { $$ = Expr::makeOpBinary($1, kOpCaret, $3); } +| operand LIKE operand { $$ = Expr::makeOpBinary($1, kOpLike, $3); } +| operand NOT LIKE operand { $$ = Expr::makeOpBinary($1, kOpNotLike, $4); } +| operand ILIKE operand { $$ = Expr::makeOpBinary($1, kOpILike, $3); } +| operand CONCAT operand { $$ = Expr::makeOpBinary($1, kOpConcat, $3); }; + +logic_expr : expr AND expr { $$ = Expr::makeOpBinary($1, kOpAnd, $3); } +| expr OR expr { $$ = Expr::makeOpBinary($1, kOpOr, $3); }; + +in_expr : operand IN '(' expr_list ')' { $$ = Expr::makeInOperator($1, $4); } +| operand NOT IN '(' expr_list ')' { $$ = Expr::makeOpUnary(kOpNot, Expr::makeInOperator($1, $5)); } +| operand IN '(' select_no_paren ')' { $$ = Expr::makeInOperator($1, $4); } +| operand NOT IN '(' select_no_paren ')' { $$ = Expr::makeOpUnary(kOpNot, Expr::makeInOperator($1, $5)); }; + +// CASE grammar based on: flex & bison by John Levine +// https://www.safaribooksonline.com/library/view/flex-bison/9780596805418/ch04.html#id352665 +case_expr : CASE expr case_list END { $$ = Expr::makeCase($2, $3, nullptr); } +| CASE expr case_list ELSE expr END { $$ = Expr::makeCase($2, $3, $5); } +| CASE case_list END { $$ = Expr::makeCase(nullptr, $2, nullptr); } +| CASE case_list ELSE expr END { $$ = Expr::makeCase(nullptr, $2, $4); }; + +case_list : WHEN expr THEN expr { $$ = Expr::makeCaseList(Expr::makeCaseListElement($2, $4)); } +| case_list WHEN expr THEN expr { $$ = Expr::caseListAppend($1, Expr::makeCaseListElement($3, $5)); }; + +exists_expr : EXISTS '(' select_no_paren ')' { $$ = Expr::makeExists($3); } +| NOT EXISTS '(' select_no_paren ')' { $$ = Expr::makeOpUnary(kOpNot, Expr::makeExists($4)); }; + +comp_expr : operand '=' operand { $$ = Expr::makeOpBinary($1, kOpEquals, $3); } +| operand EQUALS operand { $$ = Expr::makeOpBinary($1, kOpEquals, $3); } +| operand NOTEQUALS operand { $$ = Expr::makeOpBinary($1, kOpNotEquals, $3); } +| operand '<' operand { $$ = Expr::makeOpBinary($1, kOpLess, $3); } +| operand '>' operand { $$ = Expr::makeOpBinary($1, kOpGreater, $3); } +| operand LESSEQ operand { $$ = Expr::makeOpBinary($1, kOpLessEq, $3); } +| operand GREATEREQ operand { $$ = Expr::makeOpBinary($1, kOpGreaterEq, $3); }; + +// `function_expr is used for window functions, aggregate expressions, and functions calls because we run into shift/ +// reduce conflicts when splitting them. +function_expr : IDENTIFIER '(' ')' opt_window { $$ = Expr::makeFunctionRef($1, new std::vector(), false, $4); } +| IDENTIFIER '(' opt_distinct expr_list ')' opt_window { $$ = Expr::makeFunctionRef($1, $4, $3, $6); }; + +// Window function expressions, based on https://www.postgresql.org/docs/15/sql-expressions.html#SYNTAX-WINDOW-FUNCTIONS +// We do not support named windows, collations and exclusions (for simplicity) and filters (not part of the SQL standard). +opt_window : OVER '(' opt_partition opt_order opt_frame_clause ')' { $$ = new WindowDescription($3, $4, $5); } +| /* empty */ { $$ = nullptr; }; + +opt_partition : PARTITION BY expr_list { $$ = $3; } +| /* empty */ { $$ = nullptr; }; + +// We use the Postgres default if the frame end or the whole frame clause is omitted. "If `frame_end` is omitted, the +// end defaults to `CURRENT ROW`. [...] The default framing option is `RANGE UNBOUNDED PRECEDING`, which is the same as +// `RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW`." +opt_frame_clause : frame_type frame_bound { $$ = new FrameDescription{$1, $2, new FrameBound{0, kCurrentRow, false}}; } +| frame_type BETWEEN frame_bound AND frame_bound { $$ = new FrameDescription{$1, $3, $5}; } +| /* empty */ { + $$ = new FrameDescription{kRange, new FrameBound{0, kPreceding, true}, new FrameBound{0, kCurrentRow, false}}; +}; + +frame_type : RANGE { $$ = kRange; } +| ROWS { $$ = kRows; } +| GROUPS { $$ = kGroups; }; + +frame_bound : UNBOUNDED PRECEDING { $$ = new FrameBound{0, kPreceding, true}; } +| INTVAL PRECEDING { $$ = new FrameBound{$1, kPreceding, false}; } +| UNBOUNDED FOLLOWING { $$ = new FrameBound{0, kFollowing, true}; } +| INTVAL FOLLOWING { $$ = new FrameBound{$1, kFollowing, false}; } +| CURRENT_ROW { $$ = new FrameBound{0, kCurrentRow, false}; }; + +extract_expr : EXTRACT '(' datetime_field FROM expr ')' { $$ = Expr::makeExtract($3, $5); }; + +cast_expr : CAST '(' expr AS column_type ')' { $$ = Expr::makeCast($3, $5); }; + +datetime_field : SECOND { $$ = kDatetimeSecond; } +| MINUTE { $$ = kDatetimeMinute; } +| HOUR { $$ = kDatetimeHour; } +| DAY { $$ = kDatetimeDay; } +| MONTH { $$ = kDatetimeMonth; } +| YEAR { $$ = kDatetimeYear; }; + +datetime_field_plural : SECONDS { $$ = kDatetimeSecond; } +| MINUTES { $$ = kDatetimeMinute; } +| HOURS { $$ = kDatetimeHour; } +| DAYS { $$ = kDatetimeDay; } +| MONTHS { $$ = kDatetimeMonth; } +| YEARS { $$ = kDatetimeYear; }; + +duration_field : datetime_field | datetime_field_plural; + +array_expr : ARRAY '[' expr_list ']' { $$ = Expr::makeArray($3); }; + +array_index : operand '[' int_literal ']' { $$ = Expr::makeArrayIndex($1, $3->ival); }; + +between_expr : operand BETWEEN operand AND operand { $$ = Expr::makeBetween($1, $3, $5); }; + +column_name : IDENTIFIER { $$ = Expr::makeColumnRef($1); } +| IDENTIFIER '.' IDENTIFIER { $$ = Expr::makeColumnRef($1, $3); } +| '*' { $$ = Expr::makeStar(); } +| IDENTIFIER '.' '*' { $$ = Expr::makeStar($1); }; + +literal : string_literal | bool_literal | num_literal | null_literal | date_literal | interval_literal | param_expr; + +string_literal : STRING { $$ = Expr::makeLiteral($1); }; + +bool_literal : TRUE { $$ = Expr::makeLiteral(true); } +| FALSE { $$ = Expr::makeLiteral(false); }; + +num_literal : FLOATVAL { $$ = Expr::makeLiteral($1); } +| int_literal; + +int_literal : INTVAL { $$ = Expr::makeLiteral($1); }; + +null_literal : NULL { $$ = Expr::makeNullLiteral(); }; + +date_literal : DATE STRING { + int day{0}, month{0}, year{0}, chars_parsed{0}; + // If the whole string is parsed, chars_parsed points to the terminating null byte after the last character + if (sscanf($2, "%4d-%2d-%2d%n", &day, &month, &year, &chars_parsed) != 3 || $2[chars_parsed] != 0) { + free($2); + yyerror(&yyloc, result, scanner, "Found incorrect date format. Expected format: YYYY-MM-DD"); + YYERROR; + } + $$ = Expr::makeDateLiteral($2); +}; + +interval_literal : int_literal duration_field { + $$ = Expr::makeIntervalLiteral($1->ival, $2); + delete $1; +} +| INTERVAL STRING datetime_field { + int duration{0}, chars_parsed{0}; + // If the whole string is parsed, chars_parsed points to the terminating null byte after the last character + if (sscanf($2, "%d%n", &duration, &chars_parsed) != 1 || $2[chars_parsed] != 0) { + free($2); + yyerror(&yyloc, result, scanner, "Found incorrect interval format. Expected format: INTEGER"); + YYERROR; + } + free($2); + $$ = Expr::makeIntervalLiteral(duration, $3); +} +| INTERVAL STRING { + int duration{0}, chars_parsed{0}; + // 'seconds' and 'minutes' are the longest accepted interval qualifiers (7 chars) + null byte + char unit_string[8]; + // If the whole string is parsed, chars_parsed points to the terminating null byte after the last character + if (sscanf($2, "%d %7s%n", &duration, unit_string, &chars_parsed) != 2 || $2[chars_parsed] != 0) { + free($2); + yyerror(&yyloc, result, scanner, "Found incorrect interval format. Expected format: INTEGER INTERVAL_QUALIIFIER"); + YYERROR; + } + free($2); + + DatetimeField unit; + if (strcasecmp(unit_string, "second") == 0 || strcasecmp(unit_string, "seconds") == 0) { + unit = kDatetimeSecond; + } else if (strcasecmp(unit_string, "minute") == 0 || strcasecmp(unit_string, "minutes") == 0) { + unit = kDatetimeMinute; + } else if (strcasecmp(unit_string, "hour") == 0 || strcasecmp(unit_string, "hours") == 0) { + unit = kDatetimeHour; + } else if (strcasecmp(unit_string, "day") == 0 || strcasecmp(unit_string, "days") == 0) { + unit = kDatetimeDay; + } else if (strcasecmp(unit_string, "month") == 0 || strcasecmp(unit_string, "months") == 0) { + unit = kDatetimeMonth; + } else if (strcasecmp(unit_string, "year") == 0 || strcasecmp(unit_string, "years") == 0) { + unit = kDatetimeYear; + } else { + yyerror(&yyloc, result, scanner, "Interval qualifier is unknown."); + YYERROR; + } + $$ = Expr::makeIntervalLiteral(duration, unit); +}; + +param_expr : '?' { + $$ = Expr::makeParameter(yylloc.total_column); + $$->ival2 = yyloc.param_list.size(); + yyloc.param_list.push_back($$); +}; + +/****************************** + * Table + ******************************/ +table_ref : table_ref_atomic | table_ref_commalist ',' table_ref_atomic { + $1->push_back($3); + auto tbl = new TableRef(kTableCrossProduct); + tbl->list = $1; + $$ = tbl; +}; + +table_ref_atomic : nonjoin_table_ref_atomic | join_clause; + +nonjoin_table_ref_atomic : table_ref_name | '(' select_statement ')' opt_table_alias { + auto tbl = new TableRef(kTableSelect); + tbl->select = $2; + tbl->alias = $4; + $$ = tbl; +}; + +table_ref_commalist : table_ref_atomic { + $$ = new std::vector(); + $$->push_back($1); +} +| table_ref_commalist ',' table_ref_atomic { + $1->push_back($3); + $$ = $1; +}; + +table_ref_name : table_name opt_table_alias { + auto tbl = new TableRef(kTableName); + tbl->schema = $1.schema; + tbl->name = $1.name; + tbl->alias = $2; + $$ = tbl; +}; + +table_ref_name_no_alias : table_name { + $$ = new TableRef(kTableName); + $$->schema = $1.schema; + $$->name = $1.name; +}; + +table_name : IDENTIFIER { + $$.schema = nullptr; + $$.name = $1; +} +| IDENTIFIER '.' IDENTIFIER { + $$.schema = $1; + $$.name = $3; +}; + +opt_index_name : IDENTIFIER { $$ = $1; } +| /* empty */ { $$ = nullptr; }; + +table_alias : alias | AS IDENTIFIER '(' ident_commalist ')' { $$ = new Alias($2, $4); }; + +opt_table_alias : table_alias | /* empty */ { $$ = nullptr; }; + +alias : AS IDENTIFIER { $$ = new Alias($2); } +| IDENTIFIER { $$ = new Alias($1); }; + +opt_alias : alias | /* empty */ { $$ = nullptr; }; + +/****************************** + * Row Locking Descriptions + ******************************/ + +opt_locking_clause : opt_locking_clause_list { $$ = $1; } +| /* empty */ { $$ = nullptr; }; + +opt_locking_clause_list : locking_clause { + $$ = new std::vector(); + $$->push_back($1); +} +| opt_locking_clause_list locking_clause { + $1->push_back($2); + $$ = $1; +}; + +locking_clause : FOR row_lock_mode opt_row_lock_policy { + $$ = new LockingClause(); + $$->rowLockMode = $2; + $$->rowLockWaitPolicy = $3; + $$->tables = nullptr; +} +| FOR row_lock_mode OF ident_commalist opt_row_lock_policy { + $$ = new LockingClause(); + $$->rowLockMode = $2; + $$->tables = $4; + $$->rowLockWaitPolicy = $5; +}; + +row_lock_mode : UPDATE { $$ = RowLockMode::ForUpdate; } +| NO KEY UPDATE { $$ = RowLockMode::ForNoKeyUpdate; } +| SHARE { $$ = RowLockMode::ForShare; } +| KEY SHARE { $$ = RowLockMode::ForKeyShare; }; + +opt_row_lock_policy : SKIP LOCKED { $$ = RowLockWaitPolicy::SkipLocked; } +| NOWAIT { $$ = RowLockWaitPolicy::NoWait; } +| /* empty */ { $$ = RowLockWaitPolicy::None; }; + +/****************************** + * With Descriptions + ******************************/ + +opt_with_clause : with_clause | /* empty */ { $$ = nullptr; }; + +with_clause : WITH with_description_list { $$ = $2; }; + +with_description_list : with_description { + $$ = new std::vector(); + $$->push_back($1); +} +| with_description_list ',' with_description { + $1->push_back($3); + $$ = $1; +}; + +with_description : IDENTIFIER AS select_with_paren { + $$ = new WithDescription(); + $$->alias = $1; + $$->select = $3; +}; + +/****************************** + * Join Statements + ******************************/ + +join_clause : table_ref_atomic NATURAL JOIN nonjoin_table_ref_atomic { + $$ = new TableRef(kTableJoin); + $$->join = new JoinDefinition(); + $$->join->type = kJoinNatural; + $$->join->left = $1; + $$->join->right = $4; +} +| table_ref_atomic opt_join_type JOIN table_ref_atomic ON join_condition { + $$ = new TableRef(kTableJoin); + $$->join = new JoinDefinition(); + $$->join->type = (JoinType)$2; + $$->join->left = $1; + $$->join->right = $4; + $$->join->condition = $6; +} +| table_ref_atomic opt_join_type JOIN table_ref_atomic USING '(' column_name ')' { + $$ = new TableRef(kTableJoin); + $$->join = new JoinDefinition(); + $$->join->type = (JoinType)$2; + $$->join->left = $1; + $$->join->right = $4; + auto left_col = Expr::makeColumnRef(strdup($7->name)); + if ($7->alias) { + left_col->alias = strdup($7->alias); + } + if ($1->getName()) { + left_col->table = strdup($1->getName()); + } + auto right_col = Expr::makeColumnRef(strdup($7->name)); + if ($7->alias) { + right_col->alias = strdup($7->alias); + } + if ($4->getName()) { + right_col->table = strdup($4->getName()); + } + $$->join->condition = Expr::makeOpBinary(left_col, kOpEquals, right_col); + delete $7; +}; + +opt_join_type : INNER { $$ = kJoinInner; } +| LEFT OUTER { $$ = kJoinLeft; } +| LEFT { $$ = kJoinLeft; } +| RIGHT OUTER { $$ = kJoinRight; } +| RIGHT { $$ = kJoinRight; } +| FULL OUTER { $$ = kJoinFull; } +| OUTER { $$ = kJoinFull; } +| FULL { $$ = kJoinFull; } +| CROSS { $$ = kJoinCross; } +| /* empty, default */ { $$ = kJoinInner; }; + +join_condition : expr; + +/****************************** + * Misc + ******************************/ + +opt_semicolon : ';' | /* empty */ + ; + +ident_commalist : IDENTIFIER { + $$ = new std::vector(); + $$->push_back($1); +} +| ident_commalist ',' IDENTIFIER { + $1->push_back($3); + $$ = $1; +}; + +// clang-format off +%% + // clang-format on + /********************************* + ** Section 4: Additional C code + *********************************/ + + /* empty */ diff --git a/Data/src/sql-parser/src/parser/flex_lexer.cpp b/Data/src/sql-parser/src/parser/flex_lexer.cpp new file mode 100644 index 000000000..3fc8cc569 --- /dev/null +++ b/Data/src/sql-parser/src/parser/flex_lexer.cpp @@ -0,0 +1,5564 @@ +#line 1 "flex_lexer.cpp" + +#line 3 "flex_lexer.cpp" + +#if defined(_WIN32) || defined(_WIN64) +#pragma warning(disable : 4996) +#pragma warning(disable : 4267) +#endif + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +#ifdef yy_create_buffer +#define hsql__create_buffer_ALREADY_DEFINED +#else +#define yy_create_buffer hsql__create_buffer +#endif + +#ifdef yy_delete_buffer +#define hsql__delete_buffer_ALREADY_DEFINED +#else +#define yy_delete_buffer hsql__delete_buffer +#endif + +#ifdef yy_scan_buffer +#define hsql__scan_buffer_ALREADY_DEFINED +#else +#define yy_scan_buffer hsql__scan_buffer +#endif + +#ifdef yy_scan_string +#define hsql__scan_string_ALREADY_DEFINED +#else +#define yy_scan_string hsql__scan_string +#endif + +#ifdef yy_scan_bytes +#define hsql__scan_bytes_ALREADY_DEFINED +#else +#define yy_scan_bytes hsql__scan_bytes +#endif + +#ifdef yy_init_buffer +#define hsql__init_buffer_ALREADY_DEFINED +#else +#define yy_init_buffer hsql__init_buffer +#endif + +#ifdef yy_flush_buffer +#define hsql__flush_buffer_ALREADY_DEFINED +#else +#define yy_flush_buffer hsql__flush_buffer +#endif + +#ifdef yy_load_buffer_state +#define hsql__load_buffer_state_ALREADY_DEFINED +#else +#define yy_load_buffer_state hsql__load_buffer_state +#endif + +#ifdef yy_switch_to_buffer +#define hsql__switch_to_buffer_ALREADY_DEFINED +#else +#define yy_switch_to_buffer hsql__switch_to_buffer +#endif + +#ifdef yypush_buffer_state +#define hsql_push_buffer_state_ALREADY_DEFINED +#else +#define yypush_buffer_state hsql_push_buffer_state +#endif + +#ifdef yypop_buffer_state +#define hsql_pop_buffer_state_ALREADY_DEFINED +#else +#define yypop_buffer_state hsql_pop_buffer_state +#endif + +#ifdef yyensure_buffer_stack +#define hsql_ensure_buffer_stack_ALREADY_DEFINED +#else +#define yyensure_buffer_stack hsql_ensure_buffer_stack +#endif + +#ifdef yylex +#define hsql_lex_ALREADY_DEFINED +#else +#define yylex hsql_lex +#endif + +#ifdef yyrestart +#define hsql_restart_ALREADY_DEFINED +#else +#define yyrestart hsql_restart +#endif + +#ifdef yylex_init +#define hsql_lex_init_ALREADY_DEFINED +#else +#define yylex_init hsql_lex_init +#endif + +#ifdef yylex_init_extra +#define hsql_lex_init_extra_ALREADY_DEFINED +#else +#define yylex_init_extra hsql_lex_init_extra +#endif + +#ifdef yylex_destroy +#define hsql_lex_destroy_ALREADY_DEFINED +#else +#define yylex_destroy hsql_lex_destroy +#endif + +#ifdef yyget_debug +#define hsql_get_debug_ALREADY_DEFINED +#else +#define yyget_debug hsql_get_debug +#endif + +#ifdef yyset_debug +#define hsql_set_debug_ALREADY_DEFINED +#else +#define yyset_debug hsql_set_debug +#endif + +#ifdef yyget_extra +#define hsql_get_extra_ALREADY_DEFINED +#else +#define yyget_extra hsql_get_extra +#endif + +#ifdef yyset_extra +#define hsql_set_extra_ALREADY_DEFINED +#else +#define yyset_extra hsql_set_extra +#endif + +#ifdef yyget_in +#define hsql_get_in_ALREADY_DEFINED +#else +#define yyget_in hsql_get_in +#endif + +#ifdef yyset_in +#define hsql_set_in_ALREADY_DEFINED +#else +#define yyset_in hsql_set_in +#endif + +#ifdef yyget_out +#define hsql_get_out_ALREADY_DEFINED +#else +#define yyget_out hsql_get_out +#endif + +#ifdef yyset_out +#define hsql_set_out_ALREADY_DEFINED +#else +#define yyset_out hsql_set_out +#endif + +#ifdef yyget_leng +#define hsql_get_leng_ALREADY_DEFINED +#else +#define yyget_leng hsql_get_leng +#endif + +#ifdef yyget_text +#define hsql_get_text_ALREADY_DEFINED +#else +#define yyget_text hsql_get_text +#endif + +#ifdef yyget_lineno +#define hsql_get_lineno_ALREADY_DEFINED +#else +#define yyget_lineno hsql_get_lineno +#endif + +#ifdef yyset_lineno +#define hsql_set_lineno_ALREADY_DEFINED +#else +#define yyset_lineno hsql_set_lineno +#endif + +#ifdef yyget_column +#define hsql_get_column_ALREADY_DEFINED +#else +#define yyget_column hsql_get_column +#endif + +#ifdef yyset_column +#define hsql_set_column_ALREADY_DEFINED +#else +#define yyset_column hsql_set_column +#endif + +#ifdef yywrap +#define hsql_wrap_ALREADY_DEFINED +#else +#define yywrap hsql_wrap +#endif + +#ifdef yyget_lval +#define hsql_get_lval_ALREADY_DEFINED +#else +#define yyget_lval hsql_get_lval +#endif + +#ifdef yyset_lval +#define hsql_set_lval_ALREADY_DEFINED +#else +#define yyset_lval hsql_set_lval +#endif + +#ifdef yyget_lloc +#define hsql_get_lloc_ALREADY_DEFINED +#else +#define yyget_lloc hsql_get_lloc +#endif + +#ifdef yyset_lloc +#define hsql_set_lloc_ALREADY_DEFINED +#else +#define yyset_lloc hsql_set_lloc +#endif + +#ifdef yyalloc +#define hsql_alloc_ALREADY_DEFINED +#else +#define yyalloc hsql_alloc +#endif + +#ifdef yyrealloc +#define hsql_realloc_ALREADY_DEFINED +#else +#define yyrealloc hsql_realloc +#endif + +#ifdef yyfree +#define hsql_free_ALREADY_DEFINED +#else +#define yyfree hsql_free +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include +#include +#include +#include + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have . Non-C99 systems may or may not. */ + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; + +#if (__cplusplus >= 201703L) +#if !__has_include() +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif +#endif // (__cplusplus >= 201703L) +#endif // !__has_include() +#endif /* ! C99 */ + +#endif /* ! FLEXINT_H */ + +/* begin standard C++ headers. */ + +/* TODO: this is always defined, so inline it */ +#define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) +#else +#define yynoreturn +#endif + +/* Returned upon end-of-file. */ +#define YY_NULL 0 + +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. + */ +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) + +/* An opaque pointer. */ +#ifndef YY_TYPEDEF_YY_SCANNER_T +#define YY_TYPEDEF_YY_SCANNER_T +typedef void* yyscan_t; +#endif + +/* For convenience, these vars (plus the bison vars far below) + are macros in the reentrant scanner. */ +#define yyin yyg->yyin_r +#define yyout yyg->yyout_r +#define yyextra yyg->yyextra_r +#define yyleng yyg->yyleng_r +#define yytext yyg->yytext_r +#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) +#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) +#define yy_flex_debug yyg->yy_flex_debug_r + +/* Enter a start condition. This macro really ought to take a parameter, + * but we do it the disgusting crufty way forced on us by the ()-less + * definition of BEGIN. + */ +#define BEGIN yyg->yy_start = 1 + 2 * +/* Translate the current start state into a value that can be later handed + * to BEGIN to return to the state. The YYSTATE alias is for lex + * compatibility. + */ +#define YY_START ((yyg->yy_start - 1) / 2) +#define YYSTATE YY_START +/* Action number for EOF rule of a given start state. */ +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) +/* Special action meaning "start processing a new file". */ +#define YY_NEW_FILE yyrestart( yyin , yyscanner ) +#define YY_END_OF_BUFFER_CHAR 0 + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else +#define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ +#endif + +/* The state buf must be large enough to hold one state per character in the main buffer. + */ +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +#define EOB_ACT_CONTINUE_SCAN 0 +#define EOB_ACT_END_OF_FILE 1 +#define EOB_ACT_LAST_MATCH 2 + + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) + +/* Return all but the first "n" matched characters back to the input stream. */ +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + *yy_cp = yyg->yy_hold_char; \ + YY_RESTORE_YY_MORE_OFFSET \ + yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ + } \ + while ( 0 ) +#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + int yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + +#define YY_BUFFER_NEW 0 +#define YY_BUFFER_NORMAL 1 + /* When an EOF's been seen but there's still some text to process + * then we mark the buffer as YY_EOF_PENDING, to indicate that we + * shouldn't try reading from the input source any more. We might + * still have a bunch of tokens to match, though, because of + * possible backing-up. + * + * When we actually see the EOF, we change the status to "new" + * (via yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. + */ +#define YY_BUFFER_EOF_PENDING 2 + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +/* We provide macros for accessing buffer states in case in the + * future we want to put the buffer states in a more general + * "scanner state". + * + * Returns the top of the stack, or NULL. + */ +#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ + ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ + : NULL) +/* Same as previous macro, but useful when we know that the buffer stack is not + * NULL or when we need an lvalue. For internal use only. + */ +#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] + +void yyrestart ( FILE *input_file , yyscan_t yyscanner ); +void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner ); +YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size , yyscan_t yyscanner ); +void yy_delete_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner ); +void yy_flush_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner ); +void yypush_buffer_state ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner ); +void yypop_buffer_state ( yyscan_t yyscanner ); + +static void yyensure_buffer_stack ( yyscan_t yyscanner ); +static void yy_load_buffer_state ( yyscan_t yyscanner ); +static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file , yyscan_t yyscanner ); +#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER , yyscanner) + +YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner ); +YY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner ); +YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len , yyscan_t yyscanner ); + +void *yyalloc ( yy_size_t , yyscan_t yyscanner ); +void *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner ); +void yyfree ( void * , yyscan_t yyscanner ); + +#define yy_new_buffer yy_create_buffer +#define yy_set_interactive(is_interactive) \ + { \ + if ( ! YY_CURRENT_BUFFER ){ \ + yyensure_buffer_stack (yyscanner); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ + } +#define yy_set_bol(at_bol) \ + { \ + if ( ! YY_CURRENT_BUFFER ){\ + yyensure_buffer_stack (yyscanner); \ + YY_CURRENT_BUFFER_LVALUE = \ + yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \ + } \ + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ + } +#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) + +/* Begin user sect3 */ + +#define hsql_wrap(yyscanner) (/*CONSTCOND*/1) +#define YY_SKIP_YYWRAP +typedef flex_uint8_t YY_CHAR; + +typedef int yy_state_type; + +#define yytext_ptr yytext_r + +static yy_state_type yy_get_previous_state ( yyscan_t yyscanner ); +static yy_state_type yy_try_NUL_trans ( yy_state_type current_state , yyscan_t yyscanner); +static int yy_get_next_buffer ( yyscan_t yyscanner ); +static void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner ); + +/* Done after the current pattern has been matched and before the + * corresponding action - sets up yytext. + */ +#define YY_DO_BEFORE_ACTION \ + yyg->yytext_ptr = yy_bp; \ + yyleng = (int) (yy_cp - yy_bp); \ + yyg->yy_hold_char = *yy_cp; \ + *yy_cp = '\0'; \ + yyg->yy_c_buf_p = yy_cp; +#define YY_NUM_RULES 186 +#define YY_END_OF_BUFFER 187 +/* This struct is not used in this scanner, + but its presence is necessary. */ +struct yy_trans_info + { + flex_int32_t yy_verify; + flex_int32_t yy_nxt; + }; +static const flex_int16_t yy_accept[1332] = + { 0, + 0, 0, 183, 183, 2, 2, 187, 185, 4, 4, + 185, 185, 174, 181, 174, 174, 178, 174, 174, 174, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 174, 183, 184, 2, 2, 3, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 4, 169, 0, 1, 0, + 176, 175, 178, 171, 170, 168, 172, 180, 180, 180, + + 180, 180, 180, 12, 180, 180, 180, 19, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 71, 180, 180, 74, 83, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 101, 180, 180, + 106, 109, 110, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 146, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 173, 183, 182, 2, 2, 2, 2, + 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, + + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 179, 0, 175, 5, + 180, 7, 180, 180, 10, 180, 13, 180, 180, 180, + + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 34, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 48, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 59, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 78, + 180, 180, 86, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 102, 180, 180, 180, 107, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 132, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 147, 180, 180, + + 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 180, + 180, 180, 180, 180, 180, 180, 180, 180, 20, 180, + 22, 23, 24, 180, 180, 180, 29, 180, 180, 180, + 32, 35, 180, 180, 180, 180, 180, 41, 180, 180, + 180, 46, 47, 180, 180, 180, 180, 180, 180, 180, + 56, 180, 180, 180, 61, 62, 180, 180, 66, 180, + 68, 69, 180, 180, 180, 180, 180, 180, 82, 180, + + 85, 87, 88, 180, 90, 180, 180, 93, 180, 180, + 180, 180, 180, 104, 180, 180, 180, 180, 113, 180, + 180, 116, 180, 180, 180, 180, 121, 180, 180, 180, + 180, 126, 180, 180, 180, 180, 134, 135, 180, 180, + 180, 180, 180, 142, 143, 144, 180, 149, 180, 180, + 180, 180, 180, 180, 180, 180, 180, 159, 180, 161, + 180, 163, 164, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 6, + 8, 180, 11, 180, 15, 180, 180, 180, 180, 180, + + 180, 180, 180, 180, 31, 180, 180, 180, 180, 180, + 180, 40, 180, 180, 180, 180, 180, 180, 180, 180, + 180, 180, 55, 57, 180, 180, 180, 64, 180, 70, + 72, 180, 75, 76, 180, 180, 180, 180, 89, 91, + 180, 94, 95, 180, 98, 180, 180, 180, 180, 111, + 112, 180, 180, 180, 180, 180, 120, 180, 180, 124, + 180, 180, 180, 180, 133, 180, 180, 180, 139, 180, + 180, 180, 180, 180, 152, 180, 180, 180, 156, 180, + 180, 180, 162, 165, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 180, 14, 180, 17, 180, 180, 180, 25, 27, + 180, 30, 180, 180, 180, 180, 180, 39, 180, 43, + + 180, 45, 49, 50, 180, 52, 180, 180, 180, 60, + 63, 65, 67, 73, 77, 180, 180, 180, 84, 92, + 96, 99, 180, 103, 180, 108, 180, 180, 180, 180, + 180, 122, 180, 180, 127, 129, 131, 180, 137, 180, + 140, 180, 180, 180, 180, 180, 153, 154, 155, 157, + 180, 180, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 0, 9, 16, 18, 21, 180, + 26, 28, 180, 180, 180, 37, 38, 180, 180, 51, + 53, 54, 180, 79, 180, 180, 97, 100, 180, 180, + 180, 180, 118, 119, 180, 180, 128, 130, 180, 138, + 180, 180, 180, 180, 180, 158, 160, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 180, 0, 33, 180, 42, 44, 180, 180, 81, + 105, 180, 180, 180, 123, 125, 136, 180, 180, 180, + 150, 180, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 0, 180, 0, 180, 58, 80, + 180, 115, 117, 141, 145, 180, 151, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 0, 0, 0, 36, 114, 180, 2, 2, 2, 2, + 2, 2, 0, 0, 166, 148, 2, 2, 2, 2, + + 0, 0, 2, 2, 0, 0, 2, 2, 0, 0, + 2, 2, 0, 0, 2, 2, 0, 0, 2, 2, + 0, 167, 2, 2, 0, 2, 0, 2, 177, 2, + 0 + } ; + +static const YY_CHAR yy_ec[256] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 4, 5, 1, 1, 6, 1, 7, 6, + 6, 6, 6, 6, 8, 9, 6, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 6, 6, 20, + 21, 22, 6, 1, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 6, 1, 6, 6, 49, 1, 50, 51, 52, 53, + + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 6, 76, 6, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1 + } ; + +static const YY_CHAR yy_meta[77] = + { 0, + 1, 1, 2, 1, 3, 1, 4, 1, 1, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, + 1, 1, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 1 + } ; + +static const flex_int16_t yy_base[1339] = + { 0, + 0, 0, 839, 837, 76, 0, 842, 8771, 151, 153, + 785, 0, 8771, 8771, 149, 148, 160, 159, 783, 782, + 156, 156, 165, 210, 202, 255, 151, 163, 265, 152, + 171, 215, 218, 244, 295, 257, 0, 309, 349, 392, + 163, 279, 226, 180, 723, 0, 791, 0, 237, 251, + 775, 743, 0, 0, 243, 378, 451, 237, 682, 680, + 470, 546, 600, 652, 700, 752, 384, 458, 795, 466, + 532, 533, 534, 846, 895, 944, 547, 602, 990, 1042, + 307, 650, 587, 651, 596, 301, 8771, 666, 8771, 657, + 1107, 1117, 1128, 8771, 8771, 8771, 8771, 0, 218, 243, + + 300, 328, 250, 305, 379, 315, 319, 0, 376, 354, + 694, 389, 345, 440, 710, 387, 388, 436, 439, 462, + 469, 763, 465, 467, 465, 542, 480, 484, 498, 521, + 531, 553, 572, 0, 588, 588, 654, 592, 601, 588, + 608, 651, 717, 598, 649, 655, 651, 707, 660, 716, + 715, 0, 719, 708, 754, 744, 762, 760, 757, 802, + 768, 792, 770, 846, 810, 776, 812, 799, 817, 821, + 838, 821, 816, 816, 854, 861, 829, 848, 853, 894, + 872, 859, 879, 8771, 0, 8771, 0, 396, 0, 663, + 0, 636, 1138, 1148, 1159, 0, 0, 0, 0, 906, + + 942, 955, 1015, 1156, 1034, 1155, 1202, 1152, 1040, 1195, + 1199, 1232, 1272, 1257, 1272, 1301, 1353, 1350, 1361, 1388, + 1402, 1413, 1443, 1492, 1437, 1479, 1491, 1528, 1536, 1536, + 1561, 1575, 1577, 1590, 1618, 1621, 1629, 1668, 1717, 1639, + 1682, 1683, 1707, 1764, 1816, 1762, 1714, 1808, 1817, 1857, + 1860, 1881, 1904, 1873, 1917, 1940, 1773, 1952, 1984, 1993, + 1991, 2027, 2040, 2046, 2076, 2125, 2098, 2089, 2137, 2138, + 2176, 2173, 2207, 2191, 2225, 2247, 2263, 2310, 2271, 2295, + 2314, 2325, 2339, 2363, 2375, 0, 8771, 601, 2440, 0, + 882, 0, 900, 896, 0, 921, 0, 912, 925, 918, + + 941, 943, 951, 1158, 951, 960, 972, 984, 984, 1009, + 992, 995, 1009, 998, 1047, 1054, 1063, 1210, 1159, 1160, + 1152, 1210, 1209, 1223, 0, 1231, 1229, 1262, 1248, 1256, + 1256, 1256, 1271, 1279, 1286, 1287, 1292, 1307, 1318, 1301, + 1320, 1321, 1311, 1316, 1325, 1324, 1339, 1346, 1347, 1403, + 1339, 1370, 0, 1368, 1401, 1414, 1427, 1464, 1429, 1432, + 1421, 1427, 1439, 0, 1471, 1465, 1468, 1486, 1504, 1505, + 1493, 1648, 1512, 1555, 1516, 1547, 1553, 1582, 1574, 1587, + 1607, 1601, 1620, 1628, 1643, 0, 1637, 1651, 1663, 1684, + 1683, 1697, 1715, 1729, 1737, 1752, 1762, 0, 1756, 1807, + + 1768, 1809, 1772, 1790, 1797, 1802, 1830, 1811, 1823, 1872, + 1867, 1870, 0, 600, 2450, 2443, 2444, 2445, 2446, 2373, + 2480, 2488, 2489, 2500, 2528, 2536, 2541, 2543, 2557, 2606, + 2582, 2607, 2620, 2656, 2632, 2668, 2666, 2697, 2709, 2711, + 2725, 2750, 2768, 2765, 2800, 2809, 2818, 2844, 2859, 2857, + 2862, 2907, 2898, 2912, 2912, 2933, 2957, 2954, 2982, 3008, + 2980, 3029, 3033, 3037, 3075, 3079, 3078, 3123, 3126, 3135, + 3161, 3176, 3179, 3191, 3205, 3217, 3229, 3244, 3248, 3272, + 3273, 3292, 3317, 3369, 3295, 3331, 3366, 3330, 3391, 3394, + 3419, 3426, 3440, 3454, 3465, 3479, 3494, 3546, 3494, 3596, + + 3529, 3572, 3513, 3624, 3583, 3632, 3645, 3668, 3680, 3685, + 3688, 3693, 3729, 3734, 3737, 3736, 3744, 3780, 3784, 3793, + 3826, 3829, 3846, 3849, 3875, 3878, 3898, 3903, 3900, 3948, + 3919, 3947, 3975, 3989, 4003, 4019, 4033, 4057, 582, 1908, + 1917, 1913, 1914, 1924, 1930, 1941, 1933, 1944, 0, 1950, + 0, 0, 1979, 1977, 1983, 1977, 0, 1976, 1981, 2001, + 1991, 0, 2001, 2008, 2013, 2024, 2048, 2032, 2050, 2047, + 2050, 0, 0, 2059, 2066, 2072, 2085, 2105, 2107, 2119, + 0, 2137, 2144, 2159, 0, 0, 2166, 2152, 0, 2183, + 0, 2191, 2209, 2199, 2198, 2214, 2221, 2311, 0, 2230, + + 0, 0, 0, 2235, 0, 2248, 2263, 0, 2265, 2374, + 2266, 2276, 2300, 0, 2311, 2319, 2351, 2356, 0, 2366, + 2373, 0, 2381, 2388, 2397, 2451, 0, 2444, 2445, 2444, + 2464, 0, 2498, 2503, 2517, 2517, 0, 0, 2536, 2553, + 2554, 2560, 2559, 0, 0, 2560, 2594, 0, 2614, 2598, + 2609, 2646, 2669, 2655, 2672, 2681, 2687, 0, 2678, 0, + 2696, 0, 2700, 544, 4068, 4071, 4096, 4115, 4118, 4125, + 4120, 4161, 4169, 4172, 4181, 4210, 4211, 4229, 4251, 4263, + 4264, 4265, 4293, 4300, 4317, 4318, 4343, 4343, 4359, 4390, + 4401, 4425, 4443, 4451, 4468, 4484, 4487, 4493, 4529, 4535, + + 4543, 4573, 4576, 4597, 4504, 4598, 4624, 4626, 4652, 4650, + 4664, 4682, 4696, 4694, 4701, 4731, 4737, 4748, 4749, 4783, + 4791, 4794, 4839, 4835, 4836, 4877, 4880, 4881, 4921, 4924, + 4925, 4964, 4969, 4972, 4971, 4974, 5014, 5014, 5022, 5058, + 5066, 5067, 5096, 5108, 5111, 5120, 5149, 5150, 5168, 5194, + 5202, 5203, 5216, 5242, 5244, 5268, 5256, 5290, 5295, 5299, + 5312, 5334, 5342, 5341, 5347, 5366, 5388, 5391, 5396, 5410, + 5398, 5417, 5441, 5447, 5455, 5471, 5490, 5504, 5501, 5532, + 5544, 5549, 5583, 5584, 5585, 5597, 5598, 5629, 543, 0, + 0, 2701, 0, 2724, 0, 2726, 2713, 2739, 2764, 2769, + + 2765, 2761, 2769, 2784, 0, 2780, 2804, 2813, 2828, 2819, + 2858, 0, 2869, 2859, 2869, 2887, 2923, 2909, 2913, 2919, + 2952, 2959, 0, 0, 2960, 2965, 2989, 2992, 3020, 0, + 0, 3012, 0, 0, 3015, 3032, 3036, 3027, 0, 0, + 3077, 0, 0, 3090, 3077, 3105, 3087, 3101, 3090, 0, + 0, 3107, 3095, 3143, 3134, 3138, 0, 3158, 3173, 0, + 3191, 3197, 3198, 3204, 0, 3230, 3242, 3247, 3233, 3258, + 3286, 3313, 3315, 3316, 0, 3347, 3354, 3356, 0, 3349, + 3385, 3389, 0, 0, 536, 5632, 5633, 5673, 5674, 5685, + 5686, 5724, 5725, 5743, 5738, 5778, 5770, 5793, 5810, 5813, + + 5818, 5812, 5832, 5862, 5871, 5869, 5870, 5896, 5920, 5921, + 5925, 5945, 5950, 5969, 5994, 5971, 6018, 6042, 6023, 6064, + 6072, 6098, 6025, 6107, 6113, 6137, 6143, 6151, 6167, 6181, + 6195, 6220, 6209, 6225, 6249, 6255, 6273, 6279, 6297, 6308, + 6315, 6345, 6351, 6364, 6392, 6395, 6406, 6412, 6446, 6454, + 6482, 6490, 6504, 6516, 6528, 6540, 6558, 6570, 6584, 6598, + 6572, 6596, 6637, 6628, 6635, 6653, 6671, 6695, 6701, 6714, + 6725, 6752, 6754, 6778, 6786, 6788, 6807, 6831, 6828, 6837, + 526, 3399, 0, 3396, 0, 3401, 3417, 3409, 3416, 0, + 3436, 0, 3440, 3456, 3480, 3477, 3482, 0, 3520, 0, + + 3520, 0, 0, 0, 3533, 0, 3542, 3538, 3551, 0, + 0, 0, 0, 0, 0, 3544, 3558, 3566, 0, 0, + 3554, 0, 3565, 0, 3591, 0, 3581, 3596, 3605, 3622, + 3606, 0, 3630, 3642, 3630, 3631, 0, 3647, 0, 3662, + 0, 3678, 3698, 3701, 3731, 3784, 0, 0, 0, 0, + 3775, 3785, 525, 6866, 6875, 6873, 6882, 6891, 6884, 6920, + 6927, 6935, 6936, 6971, 6977, 6980, 7022, 7018, 7031, 7062, + 7073, 7076, 7104, 7117, 7118, 7148, 7156, 7161, 7161, 7197, + 7205, 7210, 7224, 7246, 7249, 7254, 7268, 7290, 7298, 7316, + 7324, 7338, 7343, 7359, 7367, 7373, 7403, 7397, 7421, 7441, + + 7446, 7454, 7476, 7490, 7504, 7518, 7525, 7533, 7539, 7563, + 7569, 7577, 7593, 7612, 7636, 7635, 7659, 7680, 7677, 7683, + 7701, 7724, 7727, 7743, 529, 0, 0, 0, 0, 3796, + 0, 0, 436, 3797, 3805, 0, 0, 3805, 3802, 0, + 0, 0, 3828, 0, 3849, 3845, 0, 0, 3841, 3861, + 3880, 3886, 0, 0, 3917, 3937, 0, 0, 3934, 0, + 3938, 3956, 3957, 3974, 3977, 0, 0, 527, 7757, 7771, + 7785, 7799, 7620, 7810, 7824, 7863, 7848, 7866, 7878, 7892, + 7904, 7907, 7916, 7942, 7955, 7957, 7971, 7990, 7987, 8011, + 8020, 8046, 8058, 8063, 8062, 8065, 8095, 8106, 8137, 8119, + + 8150, 8173, 8186, 8197, 8194, 8227, 8244, 8245, 8247, 8279, + 526, 3973, 4081, 0, 3972, 0, 0, 3990, 3982, 0, + 0, 3989, 4018, 4029, 0, 0, 0, 4021, 4035, 4057, + 0, 4063, 524, 8298, 4259, 8293, 8317, 8342, 8343, 8356, + 8357, 8371, 8396, 8397, 8406, 8412, 8442, 8448, 8456, 8481, + 8495, 8500, 8503, 8525, 514, 438, 4062, 4083, 0, 0, + 4072, 0, 0, 0, 0, 4116, 0, 506, 8563, 4119, + 8544, 8549, 8578, 8551, 8570, 8594, 8605, 8613, 8633, 8638, + 470, 4161, 4142, 0, 0, 4154, 468, 4396, 4168, 8652, + 8657, 8659, 465, 4221, 8771, 0, 418, 4227, 0, 8667, + + 418, 4213, 390, 4214, 388, 4223, 386, 4242, 347, 4275, + 343, 4301, 338, 4306, 335, 4320, 334, 4329, 332, 4357, + 303, 8771, 293, 0, 299, 286, 248, 243, 8771, 0, + 8771, 8740, 8745, 201, 8750, 8755, 8760, 8765 + } ; + +static const flex_int16_t yy_def[1339] = + { 0, + 1331, 1, 1332, 1332, 1331, 5, 1331, 1331, 1331, 1331, + 1331, 1333, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1331, 1335, 1331, 1336, 1336, 1331, + 1336, 1337, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, + 1338, 1338, 62, 62, 62, 63, 65, 62, 65, 62, + 62, 62, 62, 63, 63, 63, 62, 62, 62, 62, + 65, 62, 62, 62, 1336, 1331, 1331, 1333, 1331, 1331, + 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1334, 1334, 1334, + + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1331, 1335, 1331, 1336, 1336, 1336, 1337, + 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 62, + + 62, 62, 65, 65, 65, 65, 65, 65, 62, 62, + 65, 65, 65, 62, 62, 62, 65, 65, 65, 62, + 65, 65, 65, 62, 65, 65, 62, 65, 62, 65, + 62, 62, 65, 65, 65, 65, 62, 62, 65, 65, + 62, 62, 62, 62, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 62, 62, 62, 62, + 65, 65, 65, 65, 65, 65, 62, 62, 62, 62, + 62, 62, 65, 62, 62, 62, 63, 62, 62, 62, + 65, 62, 62, 62, 62, 1336, 1331, 1331, 1331, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1336, 1336, 1336, 62, 62, 62, 62, 65, + 65, 65, 65, 62, 62, 62, 62, 65, 65, 62, + 62, 62, 62, 62, 62, 62, 65, 65, 62, 65, + 65, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 65, 65, 65, 65, 62, 62, + 65, 65, 65, 65, 65, 65, 65, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 65, 65, 65, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 65, 65, 65, 62, 62, 62, 62, 65, 65, + + 65, 65, 65, 65, 65, 65, 65, 65, 62, 62, + 62, 62, 62, 62, 62, 65, 65, 65, 65, 65, + 65, 65, 62, 62, 65, 65, 62, 62, 62, 62, + 65, 65, 65, 65, 65, 65, 65, 65, 1331, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1336, 65, 65, 62, 62, 62, 65, + 62, 65, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 65, 62, 62, 62, 65, 65, 65, + 65, 65, 65, 65, 62, 65, 65, 65, 65, 65, + + 65, 65, 65, 65, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 65, 65, 65, 62, 62, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 62, 62, 62, 65, 65, 65, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 65, 65, + 62, 62, 62, 65, 62, 62, 62, 62, 62, 62, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 62, 62, 62, 62, 62, 62, 62, 65, 1331, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1336, 65, 65, 65, 65, 62, + 62, 62, 62, 62, 62, 62, 65, 65, 62, 62, + + 62, 65, 62, 62, 62, 65, 62, 62, 62, 62, + 65, 62, 62, 62, 62, 65, 62, 62, 62, 62, + 62, 62, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 62, 65, 65, 65, 65, 65, 65, 65, 62, + 65, 65, 65, 65, 65, 65, 65, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 65, 65, 65, 65, 65, 65, + 65, 62, 62, 62, 62, 65, 65, 65, 65, 65, + 1331, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1336, 62, 62, 65, 65, 65, 62, 62, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 62, 62, 65, 65, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 65, 65, 65, 65, 65, 65, 65, 62, + + 62, 62, 62, 62, 62, 62, 65, 65, 65, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, + 65, 65, 65, 65, 1331, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1336, 65, 65, + 65, 65, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 65, 65, 65, 65, 65, + 65, 65, 62, 62, 65, 65, 65, 65, 65, 65, + + 65, 65, 65, 65, 65, 65, 62, 62, 62, 62, + 1331, 1334, 1331, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1334, + 1334, 1334, 1336, 62, 1336, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 65, 65, 65, 65, 65, 62, + 62, 62, 62, 62, 1331, 1334, 1331, 1334, 1334, 1334, + 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1336, 62, 1336, + 62, 62, 62, 65, 65, 65, 65, 65, 62, 62, + 1331, 1331, 1331, 1334, 1334, 1334, 1336, 1336, 1336, 62, + 62, 65, 1331, 1331, 1331, 1334, 1336, 1336, 1336, 65, + + 1331, 1331, 1336, 1336, 1331, 1331, 1336, 1336, 1331, 1331, + 1336, 1336, 1331, 1331, 1336, 1336, 1331, 1331, 1336, 1336, + 1331, 1331, 1336, 1336, 1331, 1336, 1331, 1336, 1331, 1336, + 0, 1331, 1331, 1331, 1331, 1331, 1331, 1331 + } ; + +static const flex_int16_t yy_nxt[8848] = + { 0, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 37, 44, 37, 8, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 37, 44, 37, 45, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 58, 59, 60, 61, 62, + + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 77, 84, 77, 48, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 77, 84, + 77, 85, 86, 86, 86, 86, 89, 91, 91, 91, + 91, 91, 91, 91, 91, 91, 91, 90, 92, 93, + 93, 93, 93, 93, 93, 93, 93, 93, 93, 94, + 95, 99, 105, 100, 129, 131, 106, 109, 139, 101, + 130, 102, 107, 132, 110, 103, 104, 140, 176, 133, + + 177, 111, 108, 178, 112, 98, 183, 113, 99, 105, + 100, 129, 131, 106, 109, 139, 101, 130, 102, 107, + 132, 110, 103, 104, 140, 176, 133, 177, 111, 108, + 178, 112, 114, 183, 113, 119, 115, 120, 188, 86, + 116, 141, 121, 290, 144, 142, 117, 122, 145, 118, + 191, 143, 86, 86, 146, 181, 182, 196, 197, 114, + 1330, 192, 119, 115, 120, 1329, 147, 116, 141, 121, + 290, 144, 142, 117, 122, 145, 118, 123, 143, 156, + 148, 146, 181, 182, 291, 124, 149, 150, 125, 296, + 157, 126, 134, 147, 127, 1328, 158, 128, 135, 136, + + 137, 179, 86, 86, 123, 138, 156, 148, 1327, 180, + 1326, 291, 124, 149, 150, 125, 296, 157, 126, 134, + 1325, 127, 151, 158, 128, 135, 136, 137, 179, 297, + 152, 159, 138, 292, 153, 160, 180, 154, 155, 161, + 200, 293, 278, 301, 279, 162, 1323, 280, 1321, 151, + 294, 1319, 200, 295, 1317, 302, 297, 152, 159, 1315, + 292, 153, 160, 1313, 154, 155, 161, 200, 293, 278, + 301, 279, 162, 163, 280, 164, 305, 294, 165, 200, + 295, 166, 302, 167, 312, 168, 169, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 188, 86, 1311, + + 163, 1309, 164, 305, 1307, 165, 298, 299, 166, 303, + 167, 312, 168, 169, 170, 310, 304, 231, 171, 200, + 300, 172, 173, 232, 200, 311, 320, 321, 174, 200, + 322, 175, 1305, 298, 299, 1303, 303, 1213, 1213, 1282, + 1282, 170, 310, 304, 231, 171, 200, 300, 172, 173, + 232, 200, 311, 320, 321, 174, 200, 322, 175, 194, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 187, 187, 323, 187, 187, 187, 187, 187, 187, 324, + 233, 313, 1301, 1297, 200, 1293, 314, 325, 234, 187, + 187, 187, 200, 326, 235, 201, 200, 202, 332, 323, + + 333, 334, 241, 203, 200, 204, 324, 233, 313, 205, + 206, 200, 200, 314, 325, 234, 337, 338, 1287, 200, + 326, 235, 201, 200, 202, 332, 1281, 333, 334, 241, + 203, 200, 204, 1268, 339, 1255, 205, 206, 1233, 200, + 1211, 1168, 1125, 337, 338, 187, 187, 187, 1053, 187, + 187, 187, 187, 187, 187, 981, 885, 340, 242, 243, + 246, 339, 200, 244, 247, 187, 187, 187, 200, 245, + 248, 341, 207, 200, 342, 335, 208, 200, 200, 200, + 200, 336, 209, 200, 340, 242, 243, 246, 343, 200, + 244, 247, 210, 200, 789, 200, 245, 248, 341, 207, + + 200, 342, 335, 208, 200, 200, 200, 200, 336, 209, + 200, 664, 539, 200, 344, 343, 283, 284, 345, 210, + 200, 187, 211, 200, 261, 346, 200, 351, 262, 212, + 200, 352, 263, 200, 353, 354, 213, 360, 264, 214, + 200, 344, 215, 283, 284, 345, 200, 414, 200, 211, + 200, 261, 346, 200, 351, 262, 212, 200, 352, 263, + 200, 353, 354, 213, 360, 264, 214, 413, 288, 215, + 287, 286, 281, 200, 216, 200, 200, 285, 217, 347, + 282, 200, 218, 355, 361, 356, 200, 200, 219, 348, + 362, 220, 363, 366, 349, 350, 200, 200, 200, 281, + + 199, 216, 198, 200, 285, 217, 347, 282, 200, 218, + 355, 361, 356, 200, 200, 219, 348, 362, 220, 363, + 366, 349, 350, 200, 200, 200, 200, 306, 307, 308, + 200, 309, 315, 221, 316, 222, 200, 317, 367, 357, + 223, 358, 368, 318, 369, 224, 200, 187, 364, 370, + 319, 365, 359, 200, 306, 307, 308, 200, 309, 315, + 221, 316, 222, 200, 317, 367, 357, 223, 358, 368, + 318, 369, 224, 200, 225, 364, 370, 319, 365, 359, + 371, 200, 226, 372, 373, 227, 374, 327, 228, 328, + 375, 229, 376, 329, 230, 189, 380, 186, 184, 383, + + 330, 225, 97, 96, 331, 87, 389, 371, 200, 226, + 372, 373, 227, 374, 327, 228, 328, 375, 229, 376, + 329, 230, 236, 380, 377, 381, 383, 330, 237, 238, + 239, 331, 387, 389, 390, 240, 382, 378, 391, 392, + 200, 1331, 379, 47, 393, 47, 388, 396, 1331, 236, + 397, 377, 381, 398, 404, 237, 238, 239, 1331, 387, + 1331, 390, 240, 382, 378, 391, 392, 200, 249, 379, + 384, 393, 394, 388, 396, 200, 399, 397, 405, 385, + 398, 404, 250, 395, 401, 200, 406, 386, 251, 252, + 1331, 402, 407, 1331, 403, 249, 400, 384, 410, 394, + + 411, 412, 200, 399, 1331, 405, 385, 1331, 540, 250, + 395, 401, 200, 406, 386, 251, 252, 200, 402, 407, + 408, 403, 253, 400, 200, 410, 541, 411, 412, 542, + 254, 200, 200, 409, 255, 540, 200, 256, 257, 1331, + 1331, 1331, 200, 543, 200, 1331, 1331, 408, 544, 253, + 1331, 200, 200, 541, 1331, 545, 542, 254, 200, 200, + 409, 255, 546, 200, 256, 257, 258, 416, 200, 200, + 543, 547, 200, 200, 1331, 544, 548, 259, 200, 200, + 200, 200, 545, 260, 549, 200, 200, 1331, 200, 546, + 553, 200, 1331, 258, 416, 200, 417, 1331, 547, 200, + + 200, 200, 554, 548, 259, 200, 555, 200, 200, 1331, + 260, 549, 200, 200, 265, 200, 266, 553, 200, 267, + 200, 1331, 268, 417, 269, 556, 270, 271, 200, 554, + 557, 558, 559, 555, 560, 561, 200, 1331, 562, 1331, + 1331, 265, 1331, 266, 1331, 1331, 267, 200, 418, 268, + 200, 269, 556, 270, 271, 200, 419, 557, 558, 559, + 200, 560, 561, 200, 272, 562, 200, 200, 273, 200, + 200, 274, 275, 422, 200, 418, 428, 200, 276, 200, + 563, 277, 200, 419, 564, 565, 200, 200, 200, 1331, + 1331, 272, 1331, 200, 200, 273, 200, 200, 274, 275, + + 422, 200, 1331, 428, 1331, 276, 200, 563, 277, 1331, + 1331, 564, 565, 200, 1331, 200, 91, 91, 91, 91, + 91, 91, 91, 91, 91, 91, 289, 289, 289, 289, + 289, 289, 289, 289, 289, 289, 92, 93, 93, 93, + 93, 93, 93, 93, 93, 93, 93, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 415, 415, 415, + 415, 415, 415, 415, 415, 415, 415, 194, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 420, 423, + 427, 421, 550, 568, 551, 200, 569, 200, 200, 200, + 200, 200, 200, 570, 1331, 200, 200, 200, 1331, 552, + + 200, 200, 1331, 1331, 1331, 420, 423, 427, 421, 550, + 568, 551, 200, 569, 200, 200, 200, 200, 200, 200, + 570, 200, 200, 200, 200, 200, 552, 200, 200, 424, + 425, 200, 429, 571, 200, 200, 566, 200, 1331, 430, + 1331, 200, 200, 426, 200, 1331, 572, 200, 200, 573, + 1331, 567, 200, 574, 431, 575, 424, 425, 200, 429, + 571, 200, 200, 566, 200, 200, 430, 200, 200, 200, + 426, 200, 200, 572, 200, 1331, 573, 200, 567, 1331, + 574, 431, 575, 436, 1331, 1331, 576, 200, 577, 578, + 1331, 1331, 200, 437, 200, 579, 580, 581, 200, 200, + + 1331, 582, 200, 200, 200, 432, 433, 434, 200, 435, + 436, 438, 200, 576, 200, 577, 578, 200, 200, 583, + 437, 584, 579, 580, 581, 200, 585, 200, 582, 200, + 200, 200, 432, 433, 434, 200, 435, 200, 438, 200, + 586, 587, 439, 588, 200, 200, 583, 440, 584, 589, + 1331, 590, 591, 585, 200, 592, 1331, 593, 200, 1331, + 594, 1331, 1331, 1331, 200, 595, 1331, 586, 587, 439, + 588, 1331, 596, 597, 440, 441, 589, 442, 590, 591, + 443, 600, 592, 200, 593, 200, 444, 594, 200, 446, + 447, 1331, 595, 445, 200, 200, 200, 1331, 200, 596, + + 597, 200, 441, 448, 442, 601, 200, 443, 600, 602, + 200, 1331, 200, 444, 200, 200, 446, 447, 200, 1331, + 445, 200, 200, 200, 449, 200, 1331, 603, 200, 598, + 448, 1331, 601, 200, 200, 200, 602, 200, 451, 599, + 1331, 200, 450, 1331, 604, 200, 200, 200, 200, 1331, + 1331, 449, 605, 200, 603, 1331, 598, 608, 200, 1331, + 609, 200, 200, 610, 200, 451, 599, 452, 611, 450, + 458, 604, 200, 200, 200, 200, 200, 200, 200, 605, + 200, 612, 200, 200, 608, 200, 606, 609, 200, 1331, + 610, 1331, 1331, 613, 452, 611, 607, 458, 614, 200, + + 1331, 1331, 1331, 200, 200, 200, 1331, 615, 612, 200, + 200, 1331, 459, 606, 200, 200, 453, 200, 454, 200, + 613, 200, 455, 607, 200, 614, 616, 460, 200, 456, + 617, 618, 619, 457, 615, 1331, 1331, 200, 200, 459, + 1331, 200, 1331, 453, 200, 454, 200, 622, 200, 455, + 625, 200, 1331, 616, 460, 200, 456, 617, 618, 619, + 457, 461, 200, 200, 200, 200, 200, 462, 200, 464, + 1331, 200, 463, 200, 622, 626, 200, 625, 1331, 623, + 1331, 200, 200, 1331, 1331, 1331, 627, 200, 461, 200, + 200, 200, 624, 200, 462, 200, 464, 465, 200, 463, + + 200, 200, 626, 200, 628, 200, 623, 200, 200, 200, + 200, 466, 200, 627, 200, 629, 630, 467, 200, 624, + 468, 200, 200, 200, 465, 469, 1331, 1331, 200, 1331, + 200, 628, 200, 1331, 200, 200, 1331, 200, 466, 200, + 631, 632, 629, 630, 467, 1331, 633, 468, 200, 200, + 200, 200, 469, 200, 200, 200, 200, 200, 200, 471, + 470, 200, 200, 200, 634, 200, 200, 631, 632, 635, + 620, 1331, 200, 633, 477, 200, 636, 1331, 200, 200, + 200, 200, 200, 200, 200, 200, 471, 470, 200, 621, + 200, 634, 200, 200, 200, 637, 635, 620, 200, 200, + + 638, 477, 200, 636, 200, 472, 200, 1331, 200, 200, + 1331, 200, 478, 200, 200, 1331, 621, 639, 200, 200, + 1331, 200, 637, 1331, 640, 200, 1331, 638, 200, 479, + 1331, 200, 472, 200, 480, 200, 200, 200, 641, 478, + 200, 200, 473, 200, 639, 200, 200, 200, 642, 487, + 200, 640, 474, 200, 200, 200, 479, 475, 476, 200, + 200, 480, 200, 1331, 200, 641, 643, 1331, 1331, 473, + 200, 1331, 1331, 1331, 200, 642, 487, 200, 644, 474, + 200, 200, 1331, 1331, 475, 476, 200, 645, 646, 200, + 200, 647, 1331, 643, 200, 200, 481, 200, 482, 497, + + 200, 486, 200, 200, 650, 644, 1331, 200, 653, 200, + 200, 1331, 654, 1331, 645, 646, 1331, 200, 647, 200, + 1331, 200, 200, 481, 200, 482, 497, 200, 486, 200, + 200, 650, 655, 648, 200, 653, 200, 200, 483, 654, + 484, 200, 649, 488, 656, 651, 200, 652, 200, 200, + 200, 485, 200, 200, 657, 658, 200, 200, 489, 655, + 648, 200, 200, 1331, 659, 483, 1331, 484, 200, 649, + 488, 656, 651, 1331, 652, 200, 200, 200, 485, 200, + 200, 657, 658, 200, 200, 489, 1331, 1331, 200, 200, + 200, 659, 200, 492, 1331, 200, 662, 200, 490, 1331, + + 200, 491, 200, 493, 1331, 200, 200, 660, 200, 663, + 1331, 661, 1331, 200, 200, 1331, 200, 200, 200, 200, + 492, 200, 200, 662, 200, 490, 200, 200, 491, 200, + 493, 494, 200, 200, 660, 200, 663, 200, 661, 200, + 200, 200, 495, 200, 200, 200, 1331, 790, 200, 200, + 200, 1331, 200, 200, 1331, 1331, 791, 200, 494, 792, + 793, 1331, 200, 794, 200, 795, 200, 796, 797, 495, + 798, 200, 799, 200, 790, 200, 200, 200, 200, 200, + 200, 496, 200, 791, 200, 200, 792, 793, 200, 200, + 794, 498, 795, 1331, 796, 797, 1331, 798, 200, 799, + + 200, 800, 200, 1331, 1331, 200, 499, 200, 496, 200, + 200, 801, 200, 802, 200, 200, 803, 804, 498, 500, + 200, 805, 1331, 501, 200, 200, 502, 806, 800, 200, + 200, 200, 807, 499, 808, 1331, 200, 200, 801, 200, + 802, 200, 809, 803, 804, 1331, 500, 200, 805, 503, + 501, 200, 1331, 502, 806, 810, 200, 200, 200, 807, + 200, 808, 504, 200, 1331, 811, 200, 505, 506, 809, + 812, 813, 200, 200, 814, 200, 503, 815, 1331, 507, + 200, 200, 810, 816, 1331, 200, 200, 200, 1331, 504, + 508, 200, 811, 1331, 505, 506, 817, 812, 813, 200, + + 200, 814, 200, 818, 815, 509, 507, 200, 200, 200, + 816, 200, 200, 200, 819, 200, 200, 508, 200, 515, + 513, 200, 1331, 817, 200, 200, 820, 821, 200, 822, + 818, 1331, 509, 1331, 514, 200, 200, 1331, 200, 1331, + 1331, 819, 200, 200, 200, 823, 515, 513, 200, 510, + 1331, 200, 200, 820, 821, 200, 822, 1331, 511, 516, + 200, 514, 200, 200, 200, 200, 512, 200, 200, 1331, + 200, 200, 823, 200, 200, 1331, 510, 517, 824, 1331, + 825, 826, 1331, 200, 200, 511, 516, 200, 827, 828, + 200, 200, 200, 512, 200, 200, 519, 200, 518, 200, + + 200, 200, 200, 200, 517, 824, 200, 825, 826, 200, + 200, 200, 200, 1331, 1331, 827, 828, 522, 829, 200, + 1331, 200, 200, 519, 1331, 518, 200, 200, 1331, 200, + 200, 830, 1331, 200, 1331, 831, 200, 200, 832, 200, + 200, 520, 200, 833, 522, 829, 200, 200, 200, 200, + 1331, 200, 521, 834, 200, 200, 1331, 1331, 830, 523, + 835, 200, 831, 838, 200, 832, 1331, 200, 520, 200, + 833, 200, 1331, 200, 200, 1331, 839, 200, 200, 521, + 834, 840, 200, 200, 524, 525, 523, 835, 200, 841, + 838, 842, 200, 200, 1331, 845, 530, 200, 200, 200, + + 200, 200, 200, 839, 200, 526, 1331, 200, 840, 1331, + 200, 524, 525, 1331, 1331, 846, 841, 200, 842, 200, + 200, 200, 845, 530, 200, 531, 200, 1331, 200, 200, + 847, 200, 526, 527, 200, 848, 200, 1331, 1331, 836, + 528, 200, 846, 529, 200, 849, 200, 532, 200, 200, + 837, 534, 531, 533, 200, 200, 200, 847, 200, 200, + 527, 200, 848, 200, 535, 536, 836, 528, 200, 200, + 529, 200, 849, 200, 532, 200, 200, 837, 534, 1331, + 533, 200, 200, 200, 1331, 200, 200, 1331, 200, 200, + 850, 535, 536, 200, 1331, 851, 200, 538, 200, 200, + + 852, 200, 200, 853, 537, 200, 667, 854, 200, 200, + 855, 200, 200, 200, 843, 844, 200, 850, 200, 856, + 200, 200, 851, 1331, 538, 1331, 200, 852, 200, 1331, + 853, 537, 200, 667, 854, 200, 200, 855, 200, 1331, + 200, 843, 844, 1331, 1331, 200, 856, 1331, 200, 289, + 289, 289, 289, 289, 289, 289, 289, 289, 289, 415, + 415, 415, 415, 415, 415, 415, 415, 415, 415, 200, + 665, 200, 666, 200, 200, 200, 200, 857, 858, 200, + 200, 200, 200, 1331, 859, 860, 1331, 861, 1331, 200, + 200, 200, 200, 1331, 1331, 1331, 200, 665, 200, 666, + + 200, 200, 200, 200, 857, 858, 200, 200, 200, 200, + 668, 859, 860, 200, 861, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 1331, 200, 200, + 200, 1331, 862, 200, 200, 1331, 669, 668, 863, 1331, + 200, 864, 200, 865, 1331, 1331, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 670, 862, + 200, 200, 200, 669, 200, 863, 200, 200, 864, 866, + 865, 672, 200, 200, 200, 1331, 673, 200, 200, 867, + 671, 200, 200, 200, 868, 670, 869, 200, 200, 200, + 674, 200, 200, 200, 200, 870, 866, 200, 672, 200, + + 871, 200, 200, 673, 200, 200, 867, 671, 200, 200, + 200, 868, 200, 869, 200, 200, 1331, 674, 200, 200, + 1331, 678, 870, 1331, 200, 1331, 1331, 871, 200, 200, + 675, 1331, 676, 200, 872, 200, 200, 200, 873, 200, + 874, 1331, 200, 200, 875, 200, 200, 677, 678, 679, + 200, 1331, 200, 200, 680, 200, 200, 675, 200, 676, + 200, 872, 200, 200, 200, 873, 200, 874, 200, 200, + 200, 875, 1331, 200, 677, 1331, 679, 200, 682, 200, + 200, 680, 200, 200, 1331, 200, 200, 1331, 876, 200, + 683, 877, 200, 200, 200, 200, 878, 681, 200, 200, + + 879, 200, 200, 1331, 200, 682, 684, 880, 1331, 200, + 1331, 200, 1331, 200, 200, 876, 881, 683, 877, 200, + 882, 200, 883, 878, 681, 200, 200, 879, 200, 200, + 200, 200, 200, 684, 880, 686, 685, 200, 200, 200, + 884, 200, 200, 881, 200, 200, 200, 882, 982, 883, + 983, 687, 984, 1331, 985, 200, 200, 200, 688, 200, + 200, 986, 686, 685, 200, 200, 200, 884, 1331, 200, + 200, 200, 200, 200, 1331, 982, 200, 983, 687, 984, + 689, 985, 200, 200, 1331, 688, 200, 200, 986, 987, + 690, 691, 200, 988, 200, 200, 200, 200, 200, 1331, + + 989, 200, 990, 200, 200, 991, 692, 689, 1331, 1331, + 992, 200, 1331, 200, 200, 993, 987, 690, 691, 1331, + 988, 200, 200, 200, 693, 200, 200, 989, 200, 990, + 200, 200, 991, 692, 994, 694, 200, 992, 200, 200, + 1331, 200, 993, 1331, 200, 200, 200, 1331, 200, 995, + 996, 693, 997, 200, 200, 200, 1331, 200, 1331, 695, + 1331, 994, 694, 200, 200, 1331, 200, 696, 1331, 1331, + 200, 200, 200, 200, 200, 200, 995, 996, 1331, 997, + 200, 200, 200, 698, 998, 200, 695, 200, 200, 200, + 200, 200, 200, 200, 696, 200, 697, 200, 200, 999, + + 1000, 200, 1331, 200, 1001, 200, 1331, 200, 200, 1331, + 698, 998, 200, 1002, 200, 200, 200, 200, 1331, 200, + 200, 1331, 200, 697, 700, 200, 999, 1000, 200, 699, + 200, 1001, 200, 200, 200, 200, 701, 200, 200, 1331, + 1002, 1331, 200, 200, 200, 200, 1331, 200, 200, 1003, + 1004, 700, 702, 200, 1005, 200, 699, 200, 200, 1006, + 200, 200, 1331, 701, 200, 200, 703, 1331, 200, 200, + 200, 200, 200, 200, 200, 200, 1003, 1004, 200, 702, + 200, 1005, 1007, 1008, 200, 200, 1006, 200, 1331, 200, + 200, 1331, 200, 703, 705, 200, 704, 200, 1331, 200, + + 200, 1331, 200, 1331, 1009, 200, 1010, 1331, 706, 1007, + 1008, 1331, 200, 708, 200, 200, 200, 200, 200, 200, + 200, 705, 1011, 704, 200, 200, 200, 1331, 200, 200, + 707, 1009, 1012, 1010, 200, 706, 1331, 1331, 200, 200, + 708, 1331, 200, 1331, 200, 200, 1331, 200, 1013, 1011, + 1331, 1331, 200, 1014, 200, 200, 1015, 707, 1016, 1012, + 1019, 200, 200, 709, 200, 200, 200, 710, 200, 200, + 711, 200, 200, 200, 200, 1013, 1017, 200, 200, 1018, + 1014, 200, 200, 1015, 1331, 1016, 1331, 1019, 1331, 200, + 709, 200, 1331, 200, 710, 200, 200, 711, 712, 200, + + 200, 200, 1020, 1017, 200, 200, 1018, 714, 200, 200, + 200, 200, 200, 200, 200, 200, 1021, 1022, 200, 200, + 200, 713, 1331, 200, 200, 712, 1331, 1023, 1024, 1020, + 1025, 1026, 1331, 1027, 714, 200, 1028, 200, 200, 200, + 200, 200, 200, 1021, 1022, 200, 200, 200, 713, 200, + 200, 200, 200, 715, 1023, 1024, 200, 1025, 1026, 200, + 1027, 200, 200, 1028, 1331, 200, 1331, 716, 1029, 200, + 1331, 200, 200, 1030, 717, 1331, 200, 1031, 1331, 200, + 715, 200, 1331, 200, 1032, 1331, 200, 200, 200, 200, + 1331, 200, 200, 718, 716, 1029, 200, 200, 200, 200, + + 1030, 717, 200, 1033, 1031, 720, 200, 200, 200, 200, + 1331, 1032, 719, 1034, 200, 200, 1331, 721, 200, 1035, + 718, 200, 200, 1036, 200, 200, 1331, 200, 1331, 200, + 1033, 722, 720, 200, 200, 200, 200, 200, 1331, 719, + 1034, 200, 200, 723, 721, 1037, 1035, 200, 200, 200, + 1036, 200, 200, 724, 200, 200, 1331, 1331, 722, 200, + 1038, 1331, 200, 200, 200, 200, 1331, 1039, 200, 1040, + 723, 725, 1037, 1041, 200, 200, 1331, 200, 200, 726, + 724, 200, 200, 200, 200, 1331, 200, 1038, 200, 200, + 200, 1331, 200, 200, 1039, 1331, 1040, 1042, 725, 728, + + 1041, 1331, 200, 200, 200, 200, 726, 200, 200, 200, + 200, 200, 200, 727, 1331, 200, 200, 200, 200, 200, + 200, 200, 729, 733, 1042, 200, 728, 1043, 200, 1331, + 200, 200, 200, 1331, 200, 1044, 200, 1045, 200, 200, + 727, 200, 730, 200, 200, 200, 200, 200, 200, 729, + 733, 1046, 200, 200, 1043, 200, 200, 200, 200, 734, + 200, 200, 1044, 200, 1045, 200, 200, 200, 200, 730, + 200, 736, 1331, 1047, 200, 1331, 200, 200, 1046, 1048, + 200, 1331, 1049, 200, 200, 1331, 734, 200, 200, 1050, + 200, 731, 200, 200, 200, 200, 200, 1331, 736, 200, + + 1047, 732, 200, 200, 200, 200, 1048, 1051, 735, 1049, + 1331, 1052, 200, 1331, 1331, 200, 1050, 200, 731, 200, + 200, 200, 200, 200, 200, 1126, 200, 200, 732, 200, + 200, 1127, 200, 737, 1051, 735, 1128, 200, 1052, 200, + 200, 738, 200, 1129, 200, 200, 1331, 200, 200, 200, + 1130, 200, 1126, 1331, 200, 200, 1131, 200, 1127, 739, + 737, 200, 1331, 1128, 200, 200, 200, 200, 738, 1132, + 1129, 200, 200, 200, 1331, 200, 200, 1130, 1331, 740, + 200, 1133, 200, 1131, 1331, 200, 739, 200, 200, 200, + 1134, 742, 200, 200, 741, 200, 1132, 1331, 200, 200, + + 200, 200, 200, 1331, 1135, 743, 740, 200, 1133, 200, + 1136, 200, 200, 1331, 200, 200, 200, 1134, 742, 1331, + 200, 741, 200, 1137, 200, 200, 200, 200, 200, 747, + 200, 1135, 743, 744, 200, 1331, 200, 1136, 200, 200, + 200, 1331, 200, 1138, 1139, 1331, 752, 200, 200, 1331, + 1137, 200, 200, 200, 200, 1331, 747, 200, 200, 1140, + 744, 200, 200, 750, 200, 1331, 200, 200, 745, 200, + 1138, 1139, 200, 752, 200, 200, 200, 1141, 1331, 1142, + 200, 1143, 200, 1144, 1145, 200, 1140, 746, 1146, 200, + 750, 200, 200, 1331, 1147, 745, 200, 1331, 1148, 200, + + 751, 200, 1331, 200, 1141, 200, 1142, 200, 1143, 200, + 1144, 1145, 200, 1149, 746, 1146, 200, 200, 200, 200, + 748, 1147, 1150, 200, 754, 1148, 1151, 751, 200, 200, + 1331, 200, 200, 749, 200, 1152, 200, 1331, 1331, 200, + 1149, 200, 1331, 200, 200, 200, 753, 748, 1153, 1150, + 200, 754, 1154, 1151, 1155, 200, 200, 200, 200, 200, + 749, 755, 1152, 200, 200, 200, 1156, 200, 200, 200, + 1157, 1158, 200, 753, 1331, 1153, 1331, 200, 756, 1154, + 200, 1155, 1159, 1331, 200, 200, 200, 1331, 755, 1331, + 200, 200, 200, 1156, 200, 1160, 200, 1157, 1158, 200, + + 1161, 200, 1331, 200, 200, 756, 758, 200, 757, 1159, + 200, 200, 200, 200, 760, 200, 200, 200, 200, 200, + 1162, 759, 1160, 200, 200, 1163, 200, 1161, 200, 200, + 200, 200, 1331, 758, 200, 757, 1331, 200, 200, 200, + 200, 760, 200, 200, 1331, 200, 200, 1162, 759, 1331, + 200, 200, 1163, 200, 1331, 200, 200, 1331, 200, 200, + 200, 200, 1331, 200, 200, 200, 200, 200, 761, 764, + 200, 200, 1164, 200, 763, 200, 200, 200, 762, 200, + 200, 200, 200, 200, 200, 765, 200, 200, 1331, 200, + 200, 200, 200, 1331, 200, 761, 764, 200, 200, 1164, + + 200, 763, 200, 200, 200, 762, 200, 200, 200, 1165, + 200, 200, 765, 200, 1166, 200, 200, 767, 1167, 200, + 200, 766, 1212, 1214, 200, 200, 200, 1215, 200, 200, + 768, 1216, 1331, 200, 1331, 1331, 1165, 1331, 200, 1331, + 200, 1166, 200, 1217, 767, 1167, 200, 200, 766, 1212, + 1214, 200, 200, 200, 1215, 200, 200, 768, 1216, 200, + 200, 200, 200, 1218, 770, 200, 200, 769, 1331, 200, + 1217, 200, 771, 1219, 200, 200, 200, 1331, 1220, 200, + 1221, 1331, 200, 1331, 1331, 200, 200, 1222, 200, 200, + 1218, 770, 200, 200, 769, 200, 200, 1331, 200, 771, + + 1219, 200, 200, 200, 773, 1220, 200, 1221, 200, 200, + 772, 200, 200, 774, 1222, 200, 1223, 1331, 200, 200, + 200, 1224, 200, 200, 200, 1331, 200, 1331, 200, 200, + 200, 773, 1331, 200, 775, 200, 778, 772, 200, 776, + 774, 777, 200, 1223, 200, 200, 200, 200, 1224, 200, + 200, 200, 200, 200, 780, 200, 200, 200, 1225, 200, + 200, 775, 1331, 778, 200, 1331, 776, 1331, 777, 1226, + 779, 200, 1331, 200, 200, 1227, 200, 1228, 200, 200, + 200, 780, 200, 1331, 200, 1225, 200, 200, 1331, 781, + 1229, 200, 200, 1331, 200, 1331, 1226, 779, 1230, 782, + + 1231, 200, 1227, 1232, 1228, 200, 1331, 200, 200, 200, + 200, 200, 1256, 1258, 200, 200, 781, 1229, 1259, 200, + 200, 200, 200, 1260, 200, 1230, 782, 1231, 1261, 200, + 1232, 1331, 1331, 783, 200, 200, 200, 200, 200, 1256, + 1258, 1331, 200, 200, 784, 1259, 1331, 200, 200, 200, + 1260, 200, 200, 1262, 785, 1261, 200, 1263, 786, 200, + 783, 200, 787, 200, 200, 200, 200, 1264, 200, 1331, + 200, 784, 1265, 200, 1331, 200, 1331, 1331, 200, 200, + 1262, 785, 1213, 1213, 1263, 786, 200, 1266, 1267, 787, + 200, 200, 200, 200, 1264, 200, 788, 200, 1283, 1265, + + 200, 200, 200, 200, 200, 200, 200, 886, 200, 1284, + 887, 200, 1285, 200, 1266, 1267, 200, 200, 1331, 200, + 1257, 1331, 200, 788, 200, 1283, 200, 1331, 200, 200, + 200, 200, 200, 200, 886, 200, 1284, 887, 200, 1285, + 200, 200, 888, 200, 200, 200, 892, 1257, 200, 200, + 200, 200, 1286, 200, 200, 1289, 200, 890, 200, 200, + 891, 889, 1282, 1282, 200, 200, 200, 1331, 200, 888, + 200, 200, 200, 892, 1331, 200, 1331, 200, 200, 1286, + 1331, 200, 1289, 200, 890, 200, 1295, 891, 889, 1296, + 1331, 200, 200, 200, 200, 894, 893, 200, 200, 200, + + 1331, 200, 200, 895, 1294, 200, 200, 200, 200, 1331, + 1331, 200, 1299, 1295, 1331, 200, 1296, 200, 200, 1331, + 1331, 200, 894, 893, 1331, 200, 200, 200, 200, 200, + 895, 1294, 200, 200, 200, 200, 200, 200, 200, 1299, + 200, 200, 200, 1302, 200, 200, 200, 200, 1331, 1304, + 1331, 896, 1306, 1308, 200, 200, 200, 200, 1331, 200, + 1235, 1213, 1331, 200, 200, 200, 1331, 200, 200, 1310, + 1302, 1331, 1331, 200, 200, 200, 1304, 200, 896, 1306, + 1308, 200, 200, 200, 200, 897, 200, 200, 1312, 200, + 200, 200, 200, 898, 200, 200, 1310, 200, 1270, 200, + + 200, 200, 200, 899, 200, 1314, 1331, 1331, 200, 200, + 200, 200, 897, 1331, 200, 1312, 200, 200, 200, 200, + 898, 200, 200, 200, 200, 1270, 200, 200, 200, 200, + 899, 1316, 1314, 200, 900, 200, 200, 200, 200, 200, + 901, 1318, 1331, 902, 200, 200, 200, 200, 200, 1331, + 200, 1331, 1331, 200, 200, 1320, 200, 1322, 1316, 903, + 200, 900, 200, 200, 200, 1331, 200, 901, 1318, 200, + 902, 200, 200, 200, 200, 200, 904, 1331, 200, 200, + 200, 200, 1320, 200, 1322, 1324, 903, 1331, 200, 200, + 200, 200, 200, 905, 200, 1331, 200, 1288, 1282, 200, + + 200, 1331, 1331, 904, 200, 200, 200, 1331, 1331, 1331, + 200, 1331, 1324, 1331, 1331, 200, 200, 1331, 1331, 200, + 905, 200, 1331, 200, 1331, 200, 200, 1331, 1331, 1331, + 200, 200, 906, 1331, 200, 200, 200, 1331, 1331, 1298, + 1331, 200, 907, 1331, 1331, 1331, 200, 908, 1331, 1331, + 200, 1331, 200, 1331, 1331, 1331, 1331, 200, 200, 906, + 200, 200, 200, 200, 1331, 200, 1298, 1331, 200, 907, + 200, 1331, 1331, 200, 908, 910, 200, 1331, 200, 1331, + 1331, 1331, 909, 200, 200, 200, 200, 200, 200, 1331, + 1331, 200, 200, 1331, 200, 1331, 200, 200, 911, 1331, + + 1331, 1331, 910, 200, 200, 200, 1331, 1331, 1331, 909, + 200, 200, 1331, 200, 200, 200, 1331, 912, 200, 200, + 200, 200, 200, 200, 200, 911, 200, 200, 200, 200, + 919, 200, 200, 200, 200, 1331, 1331, 1331, 200, 1331, + 200, 200, 1331, 1331, 912, 1331, 200, 200, 1331, 200, + 200, 200, 1331, 200, 200, 200, 200, 919, 1331, 200, + 200, 200, 200, 1331, 200, 200, 913, 200, 200, 200, + 200, 1331, 914, 1331, 200, 200, 200, 200, 200, 1331, + 200, 1331, 1331, 200, 1331, 915, 1331, 1331, 200, 200, + 1331, 200, 1331, 913, 1331, 200, 200, 200, 917, 914, + + 1331, 200, 200, 200, 1331, 200, 200, 200, 200, 200, + 200, 200, 915, 200, 916, 200, 200, 1331, 200, 918, + 1331, 200, 1331, 1331, 200, 917, 1331, 1331, 200, 1331, + 200, 1331, 200, 200, 200, 200, 200, 200, 200, 1331, + 200, 916, 200, 200, 200, 200, 918, 1331, 200, 1331, + 200, 200, 200, 1331, 200, 200, 200, 200, 1331, 200, + 200, 200, 921, 1331, 200, 920, 1331, 1331, 1331, 200, + 200, 200, 200, 1331, 922, 1331, 200, 200, 200, 200, + 200, 200, 200, 200, 1331, 1331, 200, 200, 200, 921, + 200, 1331, 920, 1331, 200, 1331, 200, 200, 200, 200, + + 200, 922, 1331, 200, 923, 200, 1331, 200, 200, 200, + 200, 1331, 200, 200, 1331, 200, 1331, 200, 200, 1331, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 1331, + 200, 923, 200, 924, 200, 200, 925, 200, 1331, 200, + 200, 200, 200, 1331, 1331, 200, 200, 200, 1331, 200, + 1331, 200, 1331, 200, 1331, 200, 1331, 200, 1331, 200, + 924, 200, 1331, 925, 200, 1331, 200, 200, 200, 200, + 200, 200, 200, 200, 927, 200, 200, 926, 200, 200, + 1331, 1331, 200, 1331, 200, 200, 1331, 1331, 928, 1331, + 1331, 200, 1331, 200, 200, 200, 1331, 200, 200, 200, + + 1331, 927, 200, 200, 926, 200, 200, 1331, 1331, 200, + 1331, 200, 200, 1331, 1331, 928, 200, 1331, 200, 1331, + 1331, 200, 200, 200, 200, 1331, 200, 200, 929, 200, + 930, 200, 1331, 931, 200, 1331, 200, 1331, 1331, 200, + 1331, 1331, 1331, 200, 1331, 200, 1331, 1331, 1331, 1331, + 200, 200, 1331, 200, 200, 929, 200, 930, 200, 1331, + 931, 200, 1331, 200, 1331, 1331, 200, 932, 200, 934, + 200, 200, 200, 1331, 200, 200, 200, 1331, 933, 200, + 200, 200, 1331, 1331, 200, 1331, 1331, 1331, 1331, 1331, + 1331, 1331, 1331, 1331, 932, 200, 934, 200, 200, 200, + + 1331, 200, 200, 200, 1331, 933, 200, 200, 200, 1331, + 200, 200, 200, 200, 200, 200, 200, 200, 1331, 1331, + 200, 200, 200, 1331, 1331, 200, 200, 1331, 1331, 1331, + 1331, 1331, 1331, 1331, 1331, 1331, 1331, 200, 1331, 200, + 200, 200, 200, 200, 200, 1331, 1331, 200, 200, 200, + 1331, 1331, 200, 200, 200, 1331, 200, 200, 936, 200, + 200, 200, 935, 1331, 200, 200, 200, 1331, 1331, 200, + 200, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, + 1331, 200, 1331, 200, 200, 936, 200, 200, 200, 935, + 937, 200, 200, 200, 200, 200, 200, 200, 938, 200, + + 200, 1331, 200, 941, 200, 200, 200, 200, 200, 200, + 200, 939, 940, 1331, 200, 200, 200, 937, 200, 200, + 1331, 200, 200, 1331, 1331, 938, 200, 200, 1331, 200, + 941, 200, 200, 200, 200, 200, 200, 200, 939, 940, + 200, 200, 200, 200, 943, 200, 200, 200, 200, 200, + 200, 1331, 200, 942, 200, 1331, 1331, 1331, 200, 200, + 200, 1331, 1331, 1331, 1331, 1331, 1331, 200, 200, 1331, + 1331, 943, 1331, 1331, 200, 200, 200, 200, 1331, 200, + 942, 200, 944, 1331, 200, 200, 200, 200, 200, 1331, + 1331, 1331, 945, 200, 200, 200, 200, 200, 1331, 1331, + + 1331, 1331, 200, 200, 200, 1331, 946, 1331, 1331, 944, + 1331, 200, 200, 200, 1331, 200, 1331, 1331, 1331, 945, + 200, 200, 200, 200, 200, 1331, 200, 1331, 1331, 200, + 200, 200, 200, 946, 200, 947, 1331, 200, 200, 200, + 200, 200, 200, 1331, 200, 948, 200, 200, 1331, 200, + 949, 1331, 1331, 200, 200, 1331, 200, 200, 1331, 200, + 1331, 200, 947, 1331, 200, 200, 200, 1331, 200, 200, + 1331, 200, 948, 200, 200, 200, 950, 949, 1331, 200, + 200, 200, 1331, 200, 200, 200, 200, 1331, 1331, 1331, + 951, 1331, 1331, 200, 200, 200, 200, 1331, 200, 1331, + + 1331, 1331, 200, 950, 200, 1331, 200, 200, 1331, 1331, + 1331, 1331, 200, 200, 200, 1331, 952, 951, 1331, 1331, + 200, 200, 200, 200, 200, 200, 1331, 1331, 953, 200, + 200, 200, 200, 200, 1331, 1331, 1331, 1331, 200, 200, + 200, 200, 200, 952, 1331, 1331, 200, 200, 200, 200, + 954, 200, 200, 1331, 1331, 953, 200, 200, 1331, 200, + 200, 1331, 200, 1331, 1331, 200, 200, 200, 200, 200, + 200, 1331, 200, 200, 200, 200, 200, 954, 200, 200, + 200, 955, 200, 1331, 1331, 956, 200, 1331, 200, 200, + 200, 957, 200, 1331, 200, 200, 1331, 200, 200, 200, + + 1331, 200, 200, 1331, 200, 200, 1331, 200, 955, 200, + 1331, 1331, 956, 200, 200, 200, 200, 200, 957, 200, + 200, 200, 1331, 960, 958, 200, 200, 1331, 200, 200, + 959, 200, 200, 1331, 200, 200, 200, 1331, 961, 200, + 200, 200, 200, 200, 200, 1331, 1331, 200, 200, 1331, + 960, 958, 1331, 200, 1331, 200, 1331, 959, 200, 200, + 200, 200, 200, 200, 200, 961, 200, 200, 200, 200, + 200, 200, 200, 963, 962, 200, 200, 200, 200, 1331, + 200, 200, 1331, 200, 1331, 200, 200, 200, 200, 1331, + 1331, 200, 200, 200, 1331, 200, 964, 200, 1331, 200, + + 963, 962, 200, 200, 200, 200, 1331, 200, 200, 1331, + 200, 1331, 200, 200, 965, 200, 1331, 200, 200, 200, + 200, 200, 200, 964, 200, 1331, 200, 966, 1331, 200, + 1331, 200, 200, 200, 200, 1331, 200, 200, 967, 200, + 200, 965, 200, 200, 200, 200, 200, 1331, 200, 200, + 200, 200, 200, 200, 966, 1331, 200, 968, 200, 200, + 200, 200, 200, 200, 200, 967, 1331, 200, 1331, 200, + 200, 969, 1331, 200, 200, 1331, 200, 200, 1331, 200, + 200, 200, 200, 200, 968, 1331, 200, 200, 200, 200, + 200, 1331, 200, 1331, 1331, 200, 1331, 970, 969, 1331, + + 200, 200, 1331, 200, 200, 1331, 971, 200, 200, 200, + 1331, 200, 1331, 200, 200, 200, 200, 200, 1331, 200, + 1331, 1331, 200, 200, 970, 200, 973, 200, 1331, 1331, + 200, 200, 972, 971, 200, 200, 200, 200, 200, 200, + 1331, 200, 974, 200, 200, 1331, 200, 1331, 1331, 200, + 200, 1331, 200, 973, 1331, 1331, 1331, 200, 1331, 972, + 975, 200, 200, 200, 200, 200, 200, 200, 200, 974, + 976, 200, 200, 200, 200, 200, 200, 200, 977, 200, + 200, 1331, 1331, 1331, 1331, 200, 1331, 975, 1331, 1331, + 200, 1331, 200, 1331, 200, 200, 1331, 976, 1331, 200, + + 1331, 200, 200, 1331, 200, 977, 200, 200, 1331, 200, + 200, 200, 200, 200, 200, 200, 1331, 200, 1331, 200, + 200, 200, 200, 979, 200, 1331, 978, 200, 200, 200, + 200, 200, 1331, 200, 200, 1331, 200, 200, 200, 1331, + 200, 200, 200, 200, 200, 1331, 200, 200, 200, 1331, + 979, 200, 1331, 978, 200, 200, 200, 200, 200, 1331, + 200, 200, 200, 1331, 200, 200, 200, 200, 200, 980, + 200, 200, 200, 200, 200, 1331, 1331, 200, 200, 1331, + 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 200, + 1331, 200, 200, 200, 200, 200, 980, 1331, 1331, 200, + + 200, 200, 1331, 1331, 200, 200, 200, 200, 200, 200, + 1331, 1055, 200, 200, 200, 200, 200, 1331, 200, 200, + 1054, 200, 200, 1331, 1331, 1331, 1331, 1331, 1331, 1331, + 1331, 200, 200, 200, 200, 200, 200, 1331, 1055, 200, + 200, 200, 200, 200, 1331, 200, 200, 1054, 200, 200, + 1056, 200, 1331, 1331, 200, 200, 1331, 1331, 200, 200, + 200, 200, 1331, 1059, 200, 1058, 1057, 1331, 200, 200, + 200, 200, 1331, 200, 200, 1331, 1331, 1056, 200, 200, + 1331, 200, 200, 1331, 200, 1331, 1331, 200, 200, 200, + 1059, 200, 1058, 1057, 1331, 200, 200, 200, 200, 1331, + + 200, 200, 1060, 200, 200, 1061, 200, 1331, 200, 1331, + 200, 200, 1331, 1331, 200, 200, 200, 1331, 1331, 1331, + 1331, 1331, 1331, 1331, 200, 1331, 200, 1331, 200, 1060, + 200, 200, 1061, 200, 1062, 200, 200, 200, 200, 1064, + 200, 200, 200, 200, 200, 200, 1063, 1065, 200, 200, + 1331, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 1062, 1066, 200, 200, 200, 1064, 200, 200, 1331, + 200, 200, 200, 1063, 1065, 200, 200, 1331, 200, 200, + 1331, 200, 1331, 200, 200, 200, 200, 1331, 200, 1066, + 1331, 200, 200, 1068, 1331, 200, 1070, 200, 1067, 1331, + + 200, 200, 1069, 1331, 200, 200, 200, 200, 200, 200, + 1331, 1331, 1331, 1331, 200, 200, 200, 200, 1331, 200, + 1068, 1331, 200, 1070, 200, 1067, 200, 200, 200, 1069, + 1331, 200, 200, 200, 200, 200, 200, 1331, 1331, 1331, + 1331, 200, 200, 200, 200, 1331, 200, 200, 1331, 200, + 1071, 200, 1331, 200, 1331, 1331, 200, 200, 200, 200, + 1073, 1331, 1072, 1331, 1331, 200, 200, 200, 1331, 200, + 200, 1074, 1331, 200, 200, 200, 1075, 1071, 200, 1331, + 200, 200, 1331, 200, 200, 200, 200, 1073, 1331, 1072, + 1331, 200, 200, 200, 200, 200, 200, 200, 1074, 200, + + 1331, 1331, 200, 1075, 200, 200, 200, 200, 200, 1331, + 1076, 1078, 1331, 200, 1331, 200, 200, 1331, 200, 1331, + 200, 1331, 200, 200, 200, 1331, 200, 1331, 1331, 1331, + 200, 200, 200, 200, 1331, 1077, 1331, 1076, 1078, 1331, + 200, 1331, 200, 200, 200, 1331, 1331, 200, 1079, 200, + 1331, 200, 1331, 200, 200, 1331, 1331, 200, 1083, 200, + 200, 1331, 1077, 1331, 200, 200, 1080, 200, 200, 200, + 200, 200, 200, 1331, 1331, 1079, 200, 1331, 200, 1331, + 200, 200, 1331, 1331, 1331, 1083, 200, 200, 200, 1331, + 200, 200, 200, 1080, 200, 200, 200, 200, 200, 200, + + 200, 1331, 200, 1331, 1331, 200, 1331, 1331, 200, 1331, + 200, 1331, 1331, 1331, 1331, 200, 1081, 200, 200, 1331, + 1331, 200, 1331, 1331, 200, 200, 1331, 200, 200, 200, + 1331, 1331, 1331, 1331, 200, 200, 1331, 200, 1331, 1082, + 200, 1085, 200, 1081, 200, 200, 200, 1084, 200, 1331, + 1331, 200, 200, 200, 1331, 200, 1331, 1331, 200, 1331, + 1331, 200, 1331, 1331, 1331, 1331, 1082, 200, 1085, 200, + 200, 200, 200, 200, 1084, 200, 200, 200, 200, 200, + 200, 1331, 200, 200, 200, 200, 200, 1331, 200, 1331, + 1331, 200, 1086, 1331, 1331, 1331, 200, 200, 1331, 200, + + 200, 1331, 200, 200, 200, 200, 1331, 200, 1331, 200, + 200, 200, 200, 200, 200, 200, 200, 1331, 200, 1086, + 1331, 200, 1331, 200, 1331, 1331, 200, 200, 200, 200, + 200, 1331, 1331, 1331, 200, 200, 1087, 1331, 1331, 200, + 200, 200, 200, 200, 200, 1331, 1088, 1331, 200, 1089, + 200, 1331, 1090, 200, 200, 200, 200, 200, 1091, 1331, + 200, 1331, 200, 1087, 1331, 200, 200, 200, 1331, 200, + 200, 200, 1331, 1088, 1331, 1331, 1089, 200, 1331, 1090, + 1331, 200, 200, 200, 200, 1091, 1331, 200, 200, 200, + 200, 1331, 200, 200, 200, 200, 1331, 200, 1092, 1331, + + 200, 1331, 1331, 1331, 1331, 1331, 200, 1331, 200, 200, + 1331, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 1331, 200, 200, 1331, 200, 1092, 1331, 200, 1331, 1331, + 200, 1331, 200, 200, 1093, 200, 1331, 200, 200, 200, + 200, 200, 200, 1331, 200, 200, 200, 1331, 200, 1331, + 200, 200, 1331, 1331, 200, 1094, 1331, 200, 1331, 200, + 200, 1093, 1331, 1331, 200, 200, 1331, 1095, 1331, 200, + 1331, 200, 1331, 1331, 1331, 200, 1331, 200, 200, 1331, + 200, 200, 1094, 1331, 200, 200, 200, 200, 1331, 1331, + 200, 200, 1096, 1097, 1095, 1331, 200, 200, 1331, 200, + + 1331, 1331, 1331, 1331, 200, 200, 1331, 200, 1331, 200, + 1331, 200, 200, 200, 1331, 1331, 1331, 200, 200, 1096, + 1097, 1331, 1331, 200, 200, 200, 200, 200, 200, 1331, + 200, 200, 200, 1098, 1331, 200, 200, 200, 1099, 200, + 200, 200, 200, 1331, 1331, 1331, 200, 1331, 200, 1331, + 1331, 200, 200, 1331, 200, 200, 1331, 200, 200, 200, + 1098, 1331, 200, 1331, 200, 1099, 200, 200, 200, 200, + 1331, 1331, 200, 200, 1331, 200, 200, 1331, 200, 1101, + 200, 1331, 200, 1331, 200, 200, 1331, 1100, 1331, 1331, + 200, 1331, 200, 1331, 1331, 1331, 1331, 1331, 1331, 200, + + 200, 1331, 1331, 200, 1331, 1331, 1101, 200, 200, 200, + 1331, 200, 200, 1331, 1100, 1331, 200, 200, 200, 200, + 200, 1102, 1331, 1331, 1331, 1331, 200, 200, 200, 1103, + 200, 1331, 1331, 1331, 200, 200, 200, 1331, 1331, 200, + 200, 1331, 1104, 200, 1331, 200, 200, 200, 1102, 1331, + 200, 1331, 200, 200, 200, 200, 1103, 200, 1105, 1331, + 1331, 200, 200, 200, 200, 1331, 200, 200, 1331, 1104, + 200, 1331, 1331, 200, 200, 1331, 200, 200, 1331, 200, + 1106, 200, 1331, 1331, 200, 1105, 200, 1331, 200, 200, + 1331, 200, 1107, 200, 200, 1331, 200, 200, 200, 1331, + + 200, 200, 200, 200, 200, 1331, 200, 1106, 200, 1108, + 200, 200, 1331, 200, 200, 200, 200, 1331, 200, 1107, + 200, 200, 200, 200, 200, 200, 1110, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 1108, 200, 1331, 1109, + 1331, 200, 200, 200, 200, 200, 1331, 200, 1331, 200, + 1112, 200, 1331, 1110, 200, 200, 1331, 200, 200, 200, + 1331, 200, 1111, 200, 200, 1331, 1109, 200, 200, 200, + 200, 200, 1331, 200, 200, 1113, 1331, 1112, 1331, 1331, + 200, 200, 1331, 200, 1331, 200, 200, 1331, 200, 1111, + 200, 200, 1114, 200, 200, 200, 1331, 200, 200, 1331, + + 200, 200, 1113, 1331, 200, 1331, 200, 200, 1331, 1331, + 200, 200, 1115, 200, 1331, 200, 200, 1116, 1331, 1114, + 200, 1331, 1331, 1117, 1331, 200, 1331, 1331, 200, 1331, + 200, 200, 1331, 200, 200, 200, 200, 1331, 200, 1115, + 200, 200, 1331, 200, 1116, 1331, 200, 200, 1331, 1118, + 1117, 1331, 1331, 1331, 200, 200, 1331, 200, 200, 200, + 200, 200, 200, 200, 1331, 200, 1331, 200, 200, 1331, + 200, 1331, 1331, 200, 200, 1331, 1118, 1331, 1119, 1120, + 200, 200, 200, 1331, 200, 200, 200, 200, 200, 1331, + 200, 1331, 200, 1331, 1331, 1331, 1331, 200, 200, 1331, + + 200, 1331, 1331, 1331, 1121, 1119, 1120, 200, 200, 200, + 1331, 200, 200, 1331, 200, 200, 200, 200, 1331, 1331, + 1331, 200, 200, 200, 200, 200, 1331, 200, 1122, 1123, + 1331, 1121, 200, 200, 1331, 200, 1331, 1331, 1331, 200, + 200, 200, 200, 200, 1331, 1331, 1331, 200, 200, 200, + 200, 200, 200, 1124, 1331, 1122, 1123, 1331, 1331, 200, + 200, 200, 1331, 200, 200, 1331, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 1331, 200, 200, 1331, 200, + 1124, 1331, 200, 1331, 1331, 1331, 1331, 1331, 200, 1331, + 200, 200, 1169, 200, 1331, 200, 200, 200, 200, 200, + + 200, 200, 200, 200, 200, 200, 200, 1331, 1170, 200, + 1172, 200, 200, 200, 200, 200, 1331, 200, 200, 1169, + 200, 200, 200, 200, 200, 1331, 1171, 200, 200, 200, + 200, 200, 200, 200, 1331, 1170, 200, 1172, 200, 200, + 200, 200, 200, 1331, 200, 200, 200, 200, 200, 200, + 200, 200, 1331, 1171, 200, 1331, 200, 200, 200, 1331, + 200, 1173, 200, 200, 1331, 1331, 200, 1174, 200, 1175, + 200, 200, 200, 200, 1331, 200, 200, 200, 1331, 1331, + 200, 200, 1331, 200, 1331, 1331, 1331, 200, 1173, 200, + 1331, 1331, 1331, 200, 1174, 200, 1175, 200, 200, 200, + + 1331, 1331, 200, 200, 200, 1331, 200, 200, 200, 1331, + 200, 200, 200, 200, 1177, 200, 200, 200, 1176, 1331, + 200, 1331, 200, 1331, 1331, 200, 1331, 1331, 1331, 1331, + 1331, 200, 1331, 200, 1331, 1331, 1331, 200, 200, 200, + 200, 1177, 200, 200, 200, 1176, 1178, 200, 1331, 200, + 1331, 1179, 200, 200, 1331, 200, 1331, 200, 200, 1331, + 1331, 1331, 200, 200, 200, 1331, 200, 200, 1331, 1331, + 1331, 200, 1180, 1178, 1331, 1331, 200, 1331, 1179, 1331, + 200, 1331, 200, 1331, 200, 200, 1331, 1331, 1331, 200, + 200, 200, 1331, 200, 200, 200, 1181, 200, 200, 1180, + + 1331, 1331, 200, 200, 1331, 1331, 200, 200, 200, 200, + 1331, 200, 1331, 200, 1331, 1331, 200, 1331, 200, 1331, + 1331, 200, 200, 1181, 200, 1331, 1331, 1331, 1182, 200, + 1331, 1331, 1331, 200, 200, 200, 200, 200, 200, 200, + 200, 1331, 1331, 200, 200, 200, 1331, 1331, 200, 200, + 200, 200, 200, 200, 1331, 1182, 1331, 200, 200, 1331, + 1331, 1331, 200, 200, 200, 1331, 200, 1331, 1331, 1331, + 1331, 200, 1331, 1331, 1331, 1331, 200, 200, 200, 200, + 200, 200, 1183, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 1331, 1184, 200, 1331, 1331, + + 1331, 200, 200, 1331, 1331, 1331, 200, 200, 200, 1183, + 200, 1331, 1331, 200, 200, 200, 1331, 1331, 200, 200, + 200, 200, 1331, 1184, 200, 1331, 1331, 1331, 200, 200, + 200, 200, 200, 200, 200, 1186, 200, 200, 1185, 1331, + 200, 200, 200, 1331, 1331, 1331, 200, 1331, 1331, 1331, + 200, 200, 1331, 1331, 200, 1331, 200, 200, 200, 200, + 200, 1331, 1186, 200, 200, 1185, 1331, 200, 200, 200, + 200, 1331, 200, 200, 1331, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 1331, 200, 1331, 1331, + 200, 1331, 200, 1331, 200, 200, 1331, 200, 200, 200, + + 200, 1331, 200, 200, 200, 1331, 200, 200, 1331, 200, + 1331, 200, 200, 1331, 200, 1331, 200, 200, 1331, 200, + 200, 200, 200, 1331, 1188, 200, 200, 200, 200, 1187, + 1331, 200, 1331, 1331, 200, 1331, 200, 1331, 1189, 1331, + 1331, 200, 200, 200, 200, 1331, 200, 200, 1331, 1331, + 200, 1188, 200, 200, 200, 200, 1187, 1331, 1331, 1331, + 200, 200, 200, 200, 200, 1189, 1331, 1331, 200, 200, + 200, 200, 1331, 200, 200, 1331, 200, 200, 200, 200, + 1331, 200, 1331, 1190, 200, 1331, 1331, 200, 200, 200, + 1331, 200, 200, 1331, 200, 200, 1331, 200, 1331, 200, + + 1191, 200, 200, 200, 200, 200, 200, 200, 200, 1331, + 1190, 200, 200, 200, 1331, 200, 1331, 1331, 200, 200, + 1331, 200, 1331, 1331, 1331, 1192, 200, 1191, 1331, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 1331, 200, 200, 1331, 200, 1331, 1331, 200, 1331, + 1331, 1331, 1192, 1331, 200, 1331, 200, 200, 1331, 200, + 1331, 200, 1193, 200, 200, 200, 200, 200, 1331, 200, + 200, 1194, 200, 1331, 1331, 200, 1195, 200, 1331, 1331, + 1196, 200, 200, 200, 200, 1331, 1331, 200, 200, 1193, + 200, 1331, 200, 200, 200, 1331, 1331, 1331, 1194, 200, + + 200, 1331, 200, 1195, 200, 1331, 200, 1196, 1331, 200, + 1331, 200, 200, 1331, 200, 1331, 200, 200, 1331, 200, + 200, 1331, 1197, 1331, 1331, 1331, 200, 200, 1198, 200, + 200, 1331, 1331, 200, 200, 1331, 200, 1331, 1331, 200, + 200, 1331, 1199, 200, 200, 1331, 1331, 200, 200, 1197, + 200, 1331, 1331, 200, 200, 1198, 1331, 200, 200, 1331, + 200, 200, 1331, 200, 200, 1200, 200, 200, 200, 1199, + 200, 200, 200, 1201, 200, 200, 1331, 200, 200, 200, + 1331, 200, 1331, 1331, 200, 200, 1331, 200, 1331, 1331, + 1331, 200, 1200, 200, 1331, 200, 200, 200, 1202, 200, + + 1201, 200, 200, 200, 200, 200, 200, 1331, 200, 200, + 1203, 200, 200, 1331, 200, 1331, 1331, 200, 1331, 1331, + 1331, 1331, 200, 200, 1331, 1202, 200, 1331, 200, 200, + 200, 200, 1331, 200, 1204, 200, 200, 1203, 200, 200, + 1331, 200, 1331, 1331, 200, 200, 1234, 200, 1331, 200, + 200, 1331, 200, 200, 1331, 200, 200, 200, 1205, 1206, + 200, 1204, 1331, 1331, 1331, 200, 200, 1331, 200, 200, + 200, 200, 200, 1234, 200, 200, 200, 200, 1331, 200, + 200, 200, 1331, 200, 200, 1205, 1206, 1331, 1331, 1331, + 1331, 1331, 200, 200, 200, 200, 200, 200, 200, 200, + + 1207, 1331, 200, 200, 200, 1208, 1331, 200, 200, 1331, + 200, 1331, 200, 200, 1331, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 1331, 200, 200, 1207, 200, 1331, + 1331, 200, 1208, 1331, 200, 1331, 200, 200, 1331, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 1331, 200, + 200, 1331, 200, 1331, 1331, 200, 1331, 200, 1331, 200, + 200, 200, 200, 200, 200, 1331, 1209, 200, 200, 200, + 1331, 1331, 200, 200, 1331, 1331, 1210, 1331, 200, 1331, + 1331, 1331, 1331, 200, 200, 1331, 200, 200, 200, 200, + 200, 200, 200, 1209, 200, 1331, 200, 200, 1331, 200, + + 1331, 1331, 200, 1210, 200, 200, 200, 1331, 1331, 1331, + 200, 200, 1331, 1331, 1331, 200, 200, 200, 200, 200, + 200, 1331, 1331, 1331, 200, 200, 1331, 1331, 1331, 200, + 200, 200, 200, 200, 200, 1331, 200, 1331, 200, 200, + 200, 1331, 1331, 200, 200, 200, 200, 200, 1331, 1331, + 200, 1331, 200, 1331, 200, 1331, 200, 200, 1331, 200, + 200, 200, 1331, 200, 1235, 1213, 200, 200, 1331, 1331, + 200, 200, 1331, 200, 1236, 1331, 1331, 200, 200, 1331, + 1331, 200, 1331, 200, 200, 1331, 1331, 200, 1237, 200, + 1331, 1331, 200, 200, 200, 1331, 200, 200, 1331, 200, + + 1331, 1236, 200, 1331, 200, 200, 1331, 1331, 200, 200, + 1331, 200, 200, 1331, 200, 1237, 200, 1331, 200, 200, + 200, 200, 200, 200, 200, 1331, 200, 1331, 200, 200, + 1238, 200, 1331, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 1331, 200, 200, 1331, 1239, 200, + 200, 200, 200, 200, 1331, 200, 1331, 1238, 1331, 1331, + 200, 200, 200, 1331, 200, 200, 1331, 200, 200, 200, + 200, 1331, 200, 200, 1331, 1239, 1331, 200, 200, 200, + 200, 200, 1331, 1331, 1331, 200, 1331, 1331, 200, 200, + 200, 200, 1240, 1331, 1331, 200, 1331, 200, 1331, 200, + + 1331, 200, 200, 1331, 200, 200, 200, 1331, 200, 1331, + 1331, 200, 200, 1331, 1241, 200, 200, 200, 200, 1240, + 1242, 1331, 200, 200, 200, 200, 1331, 200, 200, 200, + 200, 200, 200, 200, 1331, 200, 1331, 1331, 200, 1331, + 1331, 1241, 1331, 200, 200, 1331, 200, 1242, 1331, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 1331, 200, + 200, 1331, 200, 1331, 1331, 200, 1331, 1331, 1331, 1331, + 1331, 200, 1331, 200, 1331, 1331, 1331, 1331, 200, 200, + 200, 200, 200, 200, 1244, 1243, 200, 200, 200, 200, + 1331, 200, 200, 200, 200, 200, 1331, 1246, 200, 1245, + + 200, 1331, 200, 1331, 200, 200, 200, 200, 200, 200, + 200, 1244, 1243, 200, 1331, 200, 200, 1331, 200, 1331, + 200, 200, 200, 1331, 1246, 200, 1245, 200, 200, 200, + 200, 200, 200, 1331, 200, 200, 200, 200, 1331, 200, + 200, 200, 1331, 1331, 1331, 1331, 200, 1247, 1331, 1331, + 1331, 200, 200, 1331, 200, 200, 1331, 200, 1331, 200, + 1331, 1331, 200, 1331, 200, 1331, 200, 200, 200, 1248, + 200, 1331, 200, 200, 1247, 1331, 1331, 200, 200, 200, + 1331, 200, 200, 200, 1331, 200, 200, 1331, 1331, 1331, + 200, 200, 1331, 1331, 1331, 200, 1248, 200, 1331, 200, + + 1331, 1331, 1331, 1331, 200, 1331, 200, 1331, 200, 200, + 200, 1331, 200, 200, 1249, 1331, 1331, 200, 200, 200, + 1331, 200, 200, 1331, 1331, 1331, 200, 200, 1251, 200, + 200, 200, 200, 200, 200, 200, 1250, 200, 1331, 200, + 200, 1249, 200, 1331, 1331, 200, 200, 1331, 200, 1331, + 1331, 1331, 1331, 200, 200, 1251, 200, 200, 200, 200, + 200, 200, 200, 1250, 200, 1331, 200, 200, 1252, 200, + 1253, 1254, 200, 200, 200, 200, 1331, 200, 1331, 1331, + 200, 200, 1331, 200, 1331, 1331, 1331, 200, 1331, 200, + 200, 200, 1331, 200, 200, 1252, 1331, 1253, 1254, 200, + + 200, 200, 200, 1331, 200, 200, 1331, 200, 200, 200, + 200, 1331, 1331, 1331, 1331, 200, 1331, 200, 200, 200, + 200, 1331, 1331, 200, 200, 200, 1331, 1331, 200, 200, + 1331, 1331, 200, 1331, 200, 1331, 200, 1269, 1331, 200, + 1331, 1331, 200, 200, 200, 1331, 200, 200, 1331, 1331, + 200, 200, 200, 200, 1331, 200, 200, 1331, 1271, 1331, + 1331, 200, 1331, 200, 1269, 1331, 200, 1331, 200, 200, + 200, 200, 200, 200, 200, 1331, 1331, 1331, 200, 200, + 200, 1331, 200, 200, 1272, 1271, 200, 200, 200, 200, + 200, 1331, 200, 200, 1331, 200, 200, 200, 1273, 200, + + 200, 200, 200, 200, 1331, 200, 200, 200, 1331, 200, + 200, 1272, 1331, 200, 200, 200, 200, 200, 1331, 200, + 200, 1331, 200, 200, 200, 1273, 200, 200, 200, 200, + 200, 1331, 200, 200, 200, 1331, 1274, 1331, 1331, 200, + 1276, 1275, 200, 200, 200, 200, 200, 200, 1331, 200, + 200, 200, 200, 200, 200, 1331, 1331, 200, 1331, 200, + 200, 1331, 1331, 1274, 1331, 1331, 200, 1276, 1275, 200, + 200, 1331, 200, 200, 200, 200, 1331, 200, 200, 200, + 1331, 200, 200, 200, 200, 1331, 1331, 200, 200, 200, + 1331, 200, 1331, 200, 1331, 1331, 200, 1331, 1331, 1331, + + 1331, 200, 200, 1331, 200, 1331, 1331, 200, 200, 200, + 200, 200, 1331, 1331, 200, 200, 200, 200, 200, 1331, + 200, 200, 1331, 200, 1331, 200, 200, 1277, 200, 200, + 1279, 200, 1278, 200, 200, 1331, 200, 1331, 200, 200, + 1331, 200, 1331, 1331, 200, 1331, 200, 1331, 200, 200, + 1280, 200, 200, 200, 1277, 200, 200, 1279, 200, 1278, + 200, 200, 1331, 200, 1288, 1282, 200, 1331, 200, 1331, + 1290, 200, 1331, 200, 200, 200, 200, 1280, 200, 200, + 200, 1331, 200, 1331, 200, 200, 200, 1331, 200, 200, + 200, 1291, 1331, 200, 1331, 200, 200, 1290, 200, 200, + + 1331, 200, 200, 200, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 200, 200, 200, 200, 200, 1291, 1331, + 200, 1331, 200, 200, 200, 1331, 200, 200, 1331, 200, + 200, 200, 200, 1331, 200, 200, 200, 200, 200, 200, + 200, 200, 200, 1331, 1331, 200, 200, 1331, 200, 1331, + 200, 200, 1331, 200, 200, 1331, 200, 1331, 200, 200, + 1331, 200, 1331, 200, 200, 200, 200, 200, 200, 1292, + 1331, 1331, 200, 200, 200, 200, 1331, 200, 200, 200, + 200, 1331, 200, 200, 200, 200, 200, 200, 200, 1331, + 200, 200, 200, 200, 1300, 200, 1292, 1331, 200, 200, + + 200, 200, 200, 200, 200, 200, 200, 200, 1331, 200, + 200, 200, 200, 1331, 200, 200, 1331, 1331, 1331, 200, + 200, 1300, 1331, 1331, 1331, 200, 200, 200, 1331, 200, + 200, 200, 1331, 1331, 200, 1331, 1331, 1331, 1331, 200, + 46, 46, 46, 46, 46, 88, 1331, 1331, 88, 88, + 185, 185, 185, 1331, 185, 187, 1331, 187, 187, 187, + 190, 1331, 190, 190, 190, 200, 1331, 200, 200, 200, + 7, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, + 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, + 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, + + 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, + 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, + 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, + 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, + 1331, 1331, 1331, 1331, 1331, 1331, 1331 + } ; + +static const flex_int16_t yy_chk[8848] = + { 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 9, 9, 10, 10, 15, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 15, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 18, + 18, 21, 22, 21, 27, 28, 22, 23, 30, 21, + 27, 21, 22, 28, 23, 21, 21, 31, 41, 28, + + 41, 23, 22, 41, 23, 1334, 44, 23, 21, 22, + 21, 27, 28, 22, 23, 30, 21, 27, 21, 22, + 28, 23, 21, 21, 31, 41, 28, 41, 23, 22, + 41, 23, 24, 44, 23, 25, 24, 25, 49, 49, + 24, 32, 25, 99, 33, 32, 24, 25, 33, 24, + 55, 32, 50, 50, 33, 43, 43, 58, 58, 24, + 1328, 55, 25, 24, 25, 1327, 34, 24, 32, 25, + 99, 33, 32, 24, 25, 33, 24, 26, 32, 36, + 34, 33, 43, 43, 100, 26, 34, 34, 26, 103, + 36, 26, 29, 34, 26, 1326, 36, 26, 29, 29, + + 29, 42, 86, 86, 26, 29, 36, 34, 1325, 42, + 1323, 100, 26, 34, 34, 26, 103, 36, 26, 29, + 1321, 26, 35, 36, 26, 29, 29, 29, 42, 104, + 35, 38, 29, 101, 35, 38, 42, 35, 35, 38, + 81, 101, 81, 106, 81, 38, 1319, 81, 1317, 35, + 102, 1315, 81, 102, 1313, 107, 104, 35, 38, 1311, + 101, 35, 38, 1309, 35, 35, 38, 81, 101, 81, + 106, 81, 38, 39, 81, 39, 110, 102, 39, 81, + 102, 39, 107, 39, 113, 39, 39, 56, 56, 56, + 56, 56, 56, 56, 56, 56, 56, 188, 188, 1307, + + 39, 1305, 39, 110, 1303, 39, 105, 105, 39, 109, + 39, 113, 39, 39, 40, 112, 109, 67, 40, 67, + 105, 40, 40, 67, 67, 112, 116, 116, 40, 67, + 117, 40, 1301, 105, 105, 1297, 109, 1133, 1133, 1256, + 1256, 40, 112, 109, 67, 40, 67, 105, 40, 40, + 67, 67, 112, 116, 116, 40, 67, 117, 40, 57, + 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, + 61, 61, 118, 61, 61, 61, 61, 61, 61, 119, + 68, 114, 1293, 1287, 68, 1281, 114, 120, 68, 61, + 61, 61, 70, 121, 68, 61, 70, 61, 123, 118, + + 124, 125, 70, 61, 68, 61, 119, 68, 114, 61, + 61, 68, 70, 114, 120, 68, 127, 128, 1268, 70, + 121, 68, 61, 70, 61, 123, 1255, 124, 125, 70, + 61, 68, 61, 1233, 129, 1211, 61, 61, 1168, 70, + 1125, 1053, 981, 127, 128, 61, 62, 62, 885, 62, + 62, 62, 62, 62, 62, 789, 664, 130, 71, 72, + 73, 129, 71, 72, 73, 62, 62, 62, 71, 72, + 73, 131, 62, 77, 131, 126, 62, 77, 71, 72, + 73, 126, 62, 77, 130, 71, 72, 73, 132, 71, + 72, 73, 62, 77, 539, 71, 72, 73, 131, 62, + + 77, 131, 126, 62, 77, 71, 72, 73, 126, 62, + 77, 414, 288, 83, 133, 132, 83, 83, 135, 62, + 77, 62, 63, 83, 78, 136, 63, 138, 78, 63, + 63, 139, 78, 83, 140, 141, 63, 144, 78, 63, + 83, 133, 63, 83, 83, 135, 63, 192, 78, 63, + 83, 78, 136, 63, 138, 78, 63, 63, 139, 78, + 83, 140, 141, 63, 144, 78, 63, 190, 90, 63, + 88, 85, 82, 63, 64, 78, 82, 84, 64, 137, + 82, 84, 64, 142, 145, 142, 82, 84, 64, 137, + 146, 64, 147, 149, 137, 137, 82, 84, 64, 82, + + 60, 64, 59, 82, 84, 64, 137, 82, 84, 64, + 142, 145, 142, 82, 84, 64, 137, 146, 64, 147, + 149, 137, 137, 82, 84, 64, 65, 111, 111, 111, + 65, 111, 115, 65, 115, 65, 65, 115, 150, 143, + 65, 143, 151, 115, 153, 65, 65, 52, 148, 154, + 115, 148, 143, 65, 111, 111, 111, 65, 111, 115, + 65, 115, 65, 65, 115, 150, 143, 65, 143, 151, + 115, 153, 65, 65, 66, 148, 154, 115, 148, 143, + 155, 66, 66, 156, 157, 66, 158, 122, 66, 122, + 158, 66, 159, 122, 66, 51, 161, 47, 45, 163, + + 122, 66, 20, 19, 122, 11, 166, 155, 66, 66, + 156, 157, 66, 158, 122, 66, 122, 158, 66, 159, + 122, 66, 69, 161, 160, 162, 163, 122, 69, 69, + 69, 122, 165, 166, 167, 69, 162, 160, 168, 169, + 69, 7, 160, 4, 170, 3, 165, 172, 0, 69, + 173, 160, 162, 174, 177, 69, 69, 69, 0, 165, + 0, 167, 69, 162, 160, 168, 169, 69, 74, 160, + 164, 170, 171, 165, 172, 74, 175, 173, 178, 164, + 174, 177, 74, 171, 176, 74, 179, 164, 74, 74, + 0, 176, 179, 0, 176, 74, 175, 164, 181, 171, + + 182, 183, 74, 175, 0, 178, 164, 0, 291, 74, + 171, 176, 74, 179, 164, 74, 74, 75, 176, 179, + 180, 176, 75, 175, 75, 181, 293, 182, 183, 294, + 75, 75, 200, 180, 75, 291, 200, 75, 75, 0, + 0, 0, 200, 296, 75, 0, 0, 180, 298, 75, + 0, 75, 200, 293, 0, 299, 294, 75, 75, 200, + 180, 75, 300, 200, 75, 75, 76, 201, 201, 200, + 296, 301, 201, 76, 0, 298, 302, 76, 201, 200, + 76, 202, 299, 76, 303, 202, 76, 0, 201, 300, + 305, 202, 0, 76, 201, 201, 202, 0, 301, 201, + + 76, 202, 306, 302, 76, 201, 307, 76, 202, 0, + 76, 303, 202, 76, 79, 201, 79, 305, 202, 79, + 79, 0, 79, 202, 79, 308, 79, 79, 202, 306, + 309, 310, 311, 307, 312, 313, 79, 0, 314, 0, + 0, 79, 0, 79, 0, 0, 79, 79, 203, 79, + 203, 79, 308, 79, 79, 203, 203, 309, 310, 311, + 203, 312, 313, 79, 80, 314, 209, 205, 80, 205, + 209, 80, 80, 205, 205, 203, 209, 203, 80, 205, + 315, 80, 203, 203, 316, 317, 209, 203, 80, 0, + 0, 80, 0, 209, 205, 80, 205, 209, 80, 80, + + 205, 205, 0, 209, 0, 80, 205, 315, 80, 0, + 0, 316, 317, 209, 0, 80, 91, 91, 91, 91, + 91, 91, 91, 91, 91, 91, 92, 92, 92, 92, + 92, 92, 92, 92, 92, 92, 93, 93, 93, 93, + 93, 93, 93, 93, 93, 93, 93, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 194, 194, 194, + 194, 194, 194, 194, 194, 194, 194, 195, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 204, 206, + 208, 204, 304, 319, 304, 208, 320, 208, 206, 204, + 206, 204, 208, 321, 0, 206, 204, 208, 0, 304, + + 206, 204, 0, 0, 0, 204, 206, 208, 204, 304, + 319, 304, 208, 320, 208, 206, 204, 206, 204, 208, + 321, 210, 206, 204, 208, 210, 304, 206, 204, 207, + 207, 210, 211, 322, 211, 207, 318, 207, 0, 211, + 0, 210, 207, 207, 211, 0, 323, 207, 210, 324, + 0, 318, 210, 326, 212, 327, 207, 207, 210, 211, + 322, 211, 207, 318, 207, 212, 211, 212, 210, 207, + 207, 211, 212, 323, 207, 0, 324, 212, 318, 0, + 326, 212, 327, 214, 0, 0, 328, 214, 329, 330, + 0, 0, 212, 214, 212, 331, 332, 333, 215, 212, + + 0, 334, 215, 214, 212, 213, 213, 213, 215, 213, + 214, 215, 213, 328, 214, 329, 330, 213, 215, 335, + 214, 336, 331, 332, 333, 215, 337, 216, 334, 215, + 214, 216, 213, 213, 213, 215, 213, 216, 215, 213, + 338, 339, 216, 340, 213, 215, 335, 216, 336, 341, + 0, 342, 343, 337, 216, 344, 0, 345, 216, 0, + 346, 0, 0, 0, 216, 347, 0, 338, 339, 216, + 340, 0, 348, 349, 216, 217, 341, 217, 342, 343, + 217, 351, 344, 218, 345, 218, 217, 346, 217, 218, + 218, 0, 347, 217, 219, 218, 219, 0, 217, 348, + + 349, 219, 217, 219, 217, 352, 219, 217, 351, 354, + 218, 0, 218, 217, 220, 217, 218, 218, 220, 0, + 217, 219, 218, 219, 220, 217, 0, 355, 219, 350, + 219, 0, 352, 219, 220, 221, 354, 221, 222, 350, + 0, 220, 221, 0, 356, 220, 222, 221, 222, 0, + 0, 220, 357, 222, 355, 0, 350, 359, 222, 0, + 360, 220, 221, 361, 221, 222, 350, 223, 362, 221, + 225, 356, 225, 222, 221, 222, 223, 225, 223, 357, + 222, 363, 225, 223, 359, 222, 358, 360, 223, 0, + 361, 0, 0, 365, 223, 362, 358, 225, 366, 225, + + 0, 0, 0, 223, 225, 223, 0, 367, 363, 225, + 223, 0, 226, 358, 226, 223, 224, 227, 224, 226, + 365, 227, 224, 358, 226, 366, 368, 227, 224, 224, + 369, 370, 371, 224, 367, 0, 0, 227, 224, 226, + 0, 226, 0, 224, 227, 224, 226, 373, 227, 224, + 375, 226, 0, 368, 227, 224, 224, 369, 370, 371, + 224, 228, 229, 228, 227, 224, 229, 228, 228, 230, + 0, 230, 229, 228, 373, 376, 230, 375, 0, 374, + 0, 230, 229, 0, 0, 0, 377, 231, 228, 229, + 228, 231, 374, 229, 228, 228, 230, 231, 230, 229, + + 228, 232, 376, 230, 378, 232, 374, 231, 230, 229, + 233, 232, 233, 377, 231, 379, 380, 233, 231, 374, + 233, 232, 233, 234, 231, 234, 0, 0, 232, 0, + 234, 378, 232, 0, 231, 234, 0, 233, 232, 233, + 381, 382, 379, 380, 233, 0, 383, 233, 232, 233, + 234, 235, 234, 235, 236, 237, 236, 234, 235, 237, + 235, 236, 234, 235, 384, 237, 236, 381, 382, 385, + 372, 0, 240, 383, 240, 237, 387, 0, 235, 240, + 235, 236, 237, 236, 240, 235, 237, 235, 236, 372, + 235, 384, 237, 236, 238, 388, 385, 372, 238, 240, + + 389, 240, 237, 387, 238, 238, 240, 0, 241, 242, + 0, 240, 241, 242, 238, 0, 372, 390, 241, 242, + 0, 238, 388, 0, 391, 238, 0, 389, 241, 242, + 0, 238, 238, 243, 243, 241, 242, 243, 392, 241, + 242, 238, 239, 243, 390, 241, 242, 247, 393, 247, + 239, 391, 239, 243, 247, 241, 242, 239, 239, 247, + 243, 243, 239, 0, 243, 392, 394, 0, 0, 239, + 243, 0, 0, 0, 247, 393, 247, 239, 395, 239, + 243, 247, 0, 0, 239, 239, 247, 396, 397, 239, + 244, 399, 0, 394, 244, 246, 244, 246, 244, 257, + + 244, 246, 246, 257, 401, 395, 0, 246, 403, 257, + 244, 0, 404, 0, 396, 397, 0, 244, 399, 257, + 0, 244, 246, 244, 246, 244, 257, 244, 246, 246, + 257, 401, 405, 400, 246, 403, 257, 244, 245, 404, + 245, 248, 400, 248, 406, 402, 257, 402, 248, 245, + 249, 245, 249, 248, 407, 408, 245, 249, 249, 405, + 400, 245, 249, 0, 409, 245, 0, 245, 248, 400, + 248, 406, 402, 0, 402, 248, 245, 249, 245, 249, + 248, 407, 408, 245, 249, 249, 0, 0, 245, 249, + 250, 409, 250, 251, 0, 251, 411, 250, 250, 0, + + 251, 250, 250, 252, 0, 251, 254, 410, 254, 412, + 0, 410, 0, 254, 252, 0, 252, 250, 254, 250, + 251, 252, 251, 411, 250, 250, 252, 251, 250, 250, + 252, 253, 251, 254, 410, 254, 412, 253, 410, 253, + 254, 252, 255, 252, 253, 254, 0, 540, 252, 253, + 255, 0, 255, 252, 0, 0, 541, 255, 253, 542, + 543, 0, 255, 544, 253, 545, 253, 546, 547, 255, + 548, 253, 550, 256, 540, 256, 253, 255, 258, 255, + 256, 256, 258, 541, 255, 256, 542, 543, 258, 255, + 544, 258, 545, 0, 546, 547, 0, 548, 258, 550, + + 256, 553, 256, 0, 0, 258, 259, 256, 256, 258, + 259, 554, 256, 555, 259, 258, 556, 558, 258, 260, + 259, 559, 0, 260, 261, 258, 261, 560, 553, 260, + 259, 261, 561, 259, 563, 0, 261, 259, 554, 260, + 555, 259, 564, 556, 558, 0, 260, 259, 559, 262, + 260, 261, 0, 261, 560, 565, 260, 259, 261, 561, + 262, 563, 262, 261, 0, 566, 260, 262, 263, 564, + 567, 568, 262, 263, 569, 263, 262, 570, 0, 264, + 263, 264, 565, 571, 0, 263, 264, 262, 0, 262, + 264, 264, 566, 0, 262, 263, 574, 567, 568, 262, + + 263, 569, 263, 575, 570, 265, 264, 263, 264, 265, + 571, 265, 263, 264, 576, 268, 265, 264, 264, 268, + 267, 265, 0, 574, 267, 268, 577, 578, 267, 579, + 575, 0, 265, 0, 267, 268, 265, 0, 265, 0, + 0, 576, 268, 265, 267, 580, 268, 267, 265, 266, + 0, 267, 268, 577, 578, 267, 579, 0, 266, 269, + 266, 267, 268, 269, 270, 266, 266, 269, 270, 0, + 266, 267, 580, 269, 270, 0, 266, 270, 582, 0, + 583, 584, 0, 269, 270, 266, 269, 266, 587, 588, + 269, 270, 266, 266, 269, 270, 272, 266, 271, 272, + + 269, 270, 271, 272, 270, 582, 271, 583, 584, 272, + 269, 270, 271, 0, 0, 587, 588, 274, 590, 272, + 0, 274, 271, 272, 0, 271, 272, 274, 0, 271, + 272, 592, 0, 271, 0, 593, 272, 274, 594, 271, + 273, 273, 273, 595, 274, 590, 272, 273, 274, 271, + 0, 275, 273, 596, 274, 275, 0, 0, 592, 275, + 597, 275, 593, 600, 274, 594, 0, 273, 273, 273, + 595, 275, 0, 276, 273, 0, 604, 276, 275, 273, + 596, 606, 275, 276, 276, 277, 275, 597, 275, 607, + 600, 609, 277, 276, 0, 611, 279, 279, 275, 277, + + 276, 279, 277, 604, 276, 277, 0, 279, 606, 0, + 276, 276, 277, 0, 0, 612, 607, 279, 609, 277, + 276, 280, 611, 279, 279, 280, 277, 0, 279, 277, + 613, 280, 277, 278, 279, 615, 278, 0, 0, 598, + 278, 280, 612, 278, 279, 616, 278, 281, 280, 281, + 598, 282, 280, 281, 281, 282, 278, 613, 280, 281, + 278, 282, 615, 278, 282, 283, 598, 278, 280, 283, + 278, 282, 616, 278, 281, 283, 281, 598, 282, 0, + 281, 281, 282, 278, 0, 283, 281, 0, 282, 284, + 617, 282, 283, 284, 0, 618, 283, 285, 282, 284, + + 620, 285, 283, 621, 284, 285, 420, 623, 420, 284, + 624, 285, 283, 420, 610, 610, 284, 617, 420, 625, + 284, 285, 618, 0, 285, 0, 284, 620, 285, 0, + 621, 284, 285, 420, 623, 420, 284, 624, 285, 0, + 420, 610, 610, 0, 0, 420, 625, 0, 285, 289, + 289, 289, 289, 289, 289, 289, 289, 289, 289, 415, + 415, 415, 415, 415, 415, 415, 415, 415, 415, 416, + 417, 418, 419, 416, 417, 418, 419, 626, 628, 416, + 417, 418, 419, 0, 629, 630, 0, 631, 0, 416, + 417, 418, 419, 0, 0, 0, 416, 417, 418, 419, + + 416, 417, 418, 419, 626, 628, 416, 417, 418, 419, + 422, 629, 630, 421, 631, 421, 416, 417, 418, 419, + 421, 422, 423, 422, 423, 421, 424, 0, 422, 423, + 424, 0, 633, 422, 423, 0, 424, 422, 634, 0, + 421, 635, 421, 636, 0, 0, 424, 421, 422, 423, + 422, 423, 421, 424, 425, 422, 423, 424, 425, 633, + 422, 423, 426, 424, 425, 634, 426, 427, 635, 639, + 636, 427, 426, 424, 425, 0, 428, 427, 428, 640, + 426, 425, 426, 428, 641, 425, 642, 427, 428, 426, + 429, 425, 429, 426, 427, 643, 639, 429, 427, 426, + + 646, 425, 429, 428, 427, 428, 640, 426, 431, 426, + 428, 641, 431, 642, 427, 428, 0, 429, 431, 429, + 0, 431, 643, 0, 429, 0, 0, 646, 431, 429, + 430, 0, 430, 432, 647, 431, 430, 432, 649, 431, + 650, 0, 430, 432, 651, 431, 433, 430, 431, 432, + 433, 0, 430, 432, 433, 431, 433, 430, 435, 430, + 432, 647, 435, 430, 432, 649, 433, 650, 435, 430, + 432, 651, 0, 433, 430, 0, 432, 433, 435, 430, + 432, 433, 434, 433, 0, 435, 434, 0, 652, 435, + 436, 653, 434, 433, 436, 435, 654, 434, 436, 437, + + 655, 437, 434, 0, 436, 435, 437, 656, 0, 434, + 0, 437, 0, 434, 436, 652, 657, 436, 653, 434, + 659, 436, 661, 654, 434, 436, 437, 655, 437, 434, + 438, 436, 438, 437, 656, 439, 438, 438, 437, 439, + 663, 436, 438, 657, 440, 439, 440, 659, 792, 661, + 794, 440, 796, 0, 797, 439, 440, 438, 441, 438, + 441, 798, 439, 438, 438, 441, 439, 663, 0, 438, + 441, 440, 439, 440, 0, 792, 442, 794, 440, 796, + 442, 797, 439, 440, 0, 441, 442, 441, 798, 799, + 443, 444, 441, 800, 443, 444, 442, 441, 443, 0, + + 801, 444, 802, 442, 443, 803, 444, 442, 0, 0, + 804, 444, 0, 442, 443, 806, 799, 443, 444, 0, + 800, 443, 444, 442, 445, 443, 445, 801, 444, 802, + 445, 443, 803, 444, 807, 446, 445, 804, 444, 446, + 0, 443, 806, 0, 447, 446, 445, 0, 447, 808, + 809, 445, 810, 445, 447, 446, 0, 445, 0, 447, + 0, 807, 446, 445, 447, 0, 446, 448, 0, 0, + 448, 447, 446, 445, 448, 447, 808, 809, 0, 810, + 448, 447, 446, 450, 811, 449, 447, 450, 451, 449, + 448, 447, 451, 450, 448, 449, 449, 448, 451, 813, + + 814, 448, 0, 450, 815, 449, 0, 448, 451, 0, + 450, 811, 449, 816, 450, 451, 449, 448, 0, 451, + 450, 0, 449, 449, 453, 451, 813, 814, 453, 452, + 450, 815, 449, 452, 453, 451, 454, 452, 454, 0, + 816, 0, 454, 452, 453, 455, 0, 455, 454, 817, + 818, 453, 455, 452, 819, 453, 452, 455, 454, 820, + 452, 453, 0, 454, 452, 454, 456, 0, 456, 454, + 452, 453, 455, 456, 455, 454, 817, 818, 456, 455, + 452, 819, 821, 822, 455, 454, 820, 458, 0, 458, + 457, 0, 457, 456, 458, 456, 457, 457, 0, 458, + + 456, 0, 457, 0, 825, 456, 826, 0, 459, 821, + 822, 0, 459, 461, 458, 461, 458, 457, 459, 457, + 461, 458, 827, 457, 457, 461, 458, 0, 459, 457, + 460, 825, 828, 826, 460, 459, 0, 0, 460, 459, + 461, 0, 461, 0, 460, 459, 0, 461, 829, 827, + 0, 0, 461, 832, 460, 459, 835, 460, 836, 828, + 838, 460, 462, 462, 462, 460, 463, 463, 463, 462, + 464, 460, 464, 463, 462, 829, 837, 464, 463, 837, + 832, 460, 464, 835, 0, 836, 0, 838, 0, 462, + 462, 462, 0, 463, 463, 463, 462, 464, 465, 464, + + 463, 462, 841, 837, 464, 463, 837, 467, 465, 464, + 465, 467, 466, 467, 466, 465, 844, 845, 467, 466, + 465, 466, 0, 467, 466, 465, 0, 846, 847, 841, + 848, 849, 0, 852, 467, 465, 853, 465, 467, 466, + 467, 466, 465, 844, 845, 467, 466, 465, 466, 468, + 467, 466, 469, 468, 846, 847, 469, 848, 849, 468, + 852, 470, 469, 853, 0, 470, 0, 469, 854, 468, + 0, 470, 469, 855, 470, 0, 468, 856, 0, 469, + 468, 470, 0, 469, 858, 0, 468, 471, 470, 469, + 0, 471, 470, 471, 469, 854, 468, 471, 470, 469, + + 855, 470, 472, 859, 856, 473, 472, 471, 470, 473, + 0, 858, 472, 861, 471, 473, 0, 474, 471, 862, + 471, 474, 472, 863, 471, 473, 0, 474, 0, 472, + 859, 475, 473, 472, 471, 475, 473, 474, 0, 472, + 861, 475, 473, 476, 474, 864, 862, 476, 474, 472, + 863, 475, 473, 476, 474, 477, 0, 0, 475, 477, + 866, 0, 475, 476, 474, 477, 0, 867, 475, 868, + 476, 477, 864, 869, 476, 477, 0, 478, 475, 478, + 476, 479, 477, 479, 478, 0, 477, 866, 479, 478, + 476, 0, 477, 479, 867, 0, 868, 870, 477, 481, + + 869, 0, 477, 481, 478, 480, 478, 480, 479, 481, + 479, 478, 480, 480, 0, 479, 478, 480, 482, 481, + 479, 485, 482, 485, 870, 485, 481, 871, 482, 0, + 481, 485, 480, 0, 480, 872, 481, 873, 482, 480, + 480, 485, 483, 483, 480, 482, 481, 483, 485, 482, + 485, 874, 485, 483, 871, 482, 488, 486, 485, 486, + 488, 486, 872, 483, 873, 482, 488, 486, 485, 483, + 483, 488, 0, 876, 483, 0, 488, 486, 874, 877, + 483, 0, 878, 488, 486, 0, 486, 488, 486, 880, + 483, 484, 487, 488, 486, 484, 487, 0, 488, 484, + + 876, 484, 487, 488, 486, 484, 877, 881, 487, 878, + 0, 882, 487, 0, 0, 484, 880, 489, 484, 487, + 490, 489, 484, 487, 490, 982, 484, 489, 484, 487, + 490, 984, 484, 489, 881, 487, 986, 489, 882, 487, + 490, 491, 484, 987, 489, 491, 0, 490, 489, 491, + 988, 490, 982, 0, 489, 491, 989, 490, 984, 492, + 489, 492, 0, 986, 489, 491, 492, 490, 491, 991, + 987, 492, 491, 493, 0, 493, 491, 988, 0, 493, + 493, 993, 491, 989, 0, 493, 492, 494, 492, 494, + 994, 495, 491, 492, 494, 495, 991, 0, 492, 494, + + 493, 495, 493, 0, 995, 496, 493, 493, 993, 496, + 996, 495, 493, 0, 494, 496, 494, 994, 495, 0, + 497, 494, 495, 997, 497, 496, 494, 499, 495, 499, + 497, 995, 496, 497, 499, 0, 496, 996, 495, 499, + 497, 0, 496, 999, 1001, 0, 503, 497, 503, 0, + 997, 497, 496, 503, 499, 0, 499, 497, 503, 1005, + 497, 499, 501, 501, 501, 0, 499, 497, 498, 501, + 999, 1001, 498, 503, 501, 503, 498, 1007, 0, 1008, + 503, 1009, 498, 1016, 1017, 503, 1005, 498, 1018, 501, + 501, 501, 498, 0, 1021, 498, 501, 0, 1023, 498, + + 502, 501, 0, 498, 1007, 502, 1008, 502, 1009, 498, + 1016, 1017, 502, 1025, 498, 1018, 505, 502, 505, 498, + 500, 1021, 1027, 505, 505, 1023, 1028, 502, 505, 500, + 0, 500, 502, 500, 502, 1029, 500, 0, 0, 502, + 1025, 500, 0, 505, 502, 505, 504, 500, 1030, 1027, + 505, 505, 1031, 1028, 1033, 505, 500, 504, 500, 504, + 500, 506, 1029, 500, 504, 506, 1034, 506, 500, 504, + 1035, 1036, 506, 504, 0, 1030, 0, 506, 507, 1031, + 507, 1033, 1038, 0, 504, 507, 504, 0, 506, 0, + 507, 504, 506, 1034, 506, 1040, 504, 1035, 1036, 506, + + 1042, 508, 0, 508, 506, 507, 509, 507, 508, 1038, + 509, 510, 507, 508, 511, 510, 509, 507, 511, 512, + 1043, 510, 1040, 512, 511, 1044, 509, 1042, 508, 512, + 508, 510, 0, 509, 511, 508, 0, 509, 510, 512, + 508, 511, 510, 509, 0, 511, 512, 1043, 510, 0, + 512, 511, 1044, 509, 0, 513, 512, 0, 510, 513, + 514, 511, 0, 515, 514, 513, 512, 515, 513, 516, + 514, 516, 1045, 515, 515, 513, 516, 517, 514, 517, + 514, 516, 513, 515, 517, 517, 513, 514, 0, 517, + 515, 514, 513, 0, 515, 513, 516, 514, 516, 1045, + + 515, 515, 513, 516, 517, 514, 517, 514, 516, 1046, + 515, 517, 517, 518, 1051, 518, 517, 519, 1052, 519, + 518, 518, 1130, 1134, 519, 518, 520, 1135, 520, 519, + 520, 1138, 0, 520, 0, 0, 1046, 0, 520, 0, + 518, 1051, 518, 1139, 519, 1052, 519, 518, 518, 1130, + 1134, 519, 518, 520, 1135, 520, 519, 520, 1138, 521, + 520, 521, 522, 1143, 522, 520, 521, 521, 0, 522, + 1139, 521, 523, 1145, 522, 524, 523, 0, 1146, 524, + 1149, 0, 523, 0, 0, 524, 521, 1150, 521, 522, + 1143, 522, 523, 521, 521, 524, 522, 0, 521, 523, + + 1145, 522, 524, 523, 526, 1146, 524, 1149, 525, 523, + 525, 526, 524, 526, 1150, 525, 1151, 0, 526, 523, + 525, 1152, 524, 526, 527, 0, 529, 0, 527, 528, + 529, 526, 0, 528, 527, 525, 529, 525, 526, 528, + 526, 528, 525, 1151, 527, 526, 529, 525, 1152, 528, + 526, 527, 531, 529, 531, 527, 528, 529, 1155, 531, + 528, 527, 0, 529, 531, 0, 528, 0, 528, 1156, + 530, 527, 0, 529, 530, 1159, 528, 1161, 530, 531, + 532, 531, 532, 0, 530, 1155, 531, 532, 0, 532, + 1162, 531, 532, 0, 530, 0, 1156, 530, 1163, 533, + + 1164, 530, 1159, 1165, 1161, 530, 0, 532, 533, 532, + 533, 530, 1212, 1215, 532, 533, 532, 1162, 1218, 532, + 533, 530, 534, 1219, 534, 1163, 533, 1164, 1222, 534, + 1165, 0, 0, 534, 534, 533, 535, 533, 535, 1212, + 1215, 0, 533, 535, 535, 1218, 0, 533, 535, 534, + 1219, 534, 536, 1223, 536, 1222, 534, 1224, 536, 536, + 534, 534, 537, 535, 536, 535, 537, 1228, 537, 0, + 535, 535, 1229, 537, 0, 535, 0, 0, 537, 536, + 1223, 536, 1213, 1213, 1224, 536, 536, 1230, 1232, 537, + 538, 536, 538, 537, 1228, 537, 538, 538, 1257, 1229, + + 537, 665, 538, 665, 666, 537, 666, 665, 665, 1258, + 666, 666, 1261, 665, 1230, 1232, 666, 538, 0, 538, + 1213, 0, 667, 538, 538, 1257, 667, 0, 665, 538, + 665, 666, 667, 666, 665, 665, 1258, 666, 666, 1261, + 665, 668, 667, 666, 669, 668, 671, 1213, 669, 667, + 671, 668, 1266, 667, 669, 1270, 671, 669, 670, 667, + 670, 668, 1282, 1282, 669, 670, 671, 0, 668, 667, + 670, 669, 668, 671, 0, 669, 0, 671, 668, 1266, + 0, 669, 1270, 671, 669, 670, 1283, 670, 668, 1286, + 0, 669, 670, 671, 672, 673, 672, 670, 674, 673, + + 0, 672, 674, 675, 1282, 673, 672, 675, 674, 0, + 0, 675, 1289, 1283, 0, 673, 1286, 675, 674, 0, + 0, 672, 673, 672, 0, 674, 673, 675, 672, 674, + 675, 1282, 673, 672, 675, 674, 676, 677, 675, 1289, + 676, 677, 673, 1294, 675, 674, 676, 677, 0, 1298, + 0, 678, 1302, 1304, 675, 678, 676, 677, 0, 678, + 1235, 1235, 0, 676, 677, 678, 0, 676, 677, 1306, + 1294, 0, 0, 676, 677, 678, 1298, 679, 678, 1302, + 1304, 679, 678, 676, 677, 679, 678, 679, 1308, 680, + 681, 682, 678, 680, 681, 682, 1306, 679, 1235, 680, + + 681, 682, 678, 681, 679, 1310, 0, 0, 679, 680, + 681, 682, 679, 0, 679, 1308, 680, 681, 682, 683, + 680, 681, 682, 683, 679, 1235, 680, 681, 682, 683, + 681, 1312, 1310, 684, 683, 684, 680, 681, 682, 683, + 684, 1314, 0, 685, 686, 684, 683, 685, 686, 0, + 683, 0, 0, 685, 686, 1316, 683, 1318, 1312, 686, + 684, 683, 684, 685, 686, 0, 683, 684, 1314, 687, + 685, 686, 684, 687, 685, 686, 688, 0, 688, 687, + 685, 686, 1316, 688, 1318, 1320, 686, 0, 688, 687, + 685, 686, 689, 689, 689, 0, 687, 1288, 1288, 689, + + 687, 0, 0, 688, 689, 688, 687, 0, 0, 0, + 688, 0, 1320, 0, 0, 688, 687, 0, 0, 689, + 689, 689, 0, 690, 0, 690, 689, 0, 0, 0, + 690, 689, 690, 0, 691, 690, 691, 0, 0, 1288, + 0, 691, 691, 0, 0, 0, 691, 692, 0, 0, + 690, 0, 690, 0, 0, 0, 0, 690, 692, 690, + 692, 691, 690, 691, 0, 692, 1288, 0, 691, 691, + 692, 0, 0, 691, 692, 694, 693, 0, 693, 0, + 0, 0, 693, 693, 694, 692, 694, 692, 693, 0, + 0, 694, 692, 0, 695, 0, 694, 692, 695, 0, + + 0, 0, 694, 693, 695, 693, 0, 0, 0, 693, + 693, 694, 0, 694, 695, 693, 0, 696, 694, 696, + 697, 695, 697, 694, 696, 695, 698, 697, 698, 696, + 705, 695, 697, 698, 705, 0, 0, 0, 698, 0, + 705, 695, 0, 0, 696, 0, 696, 697, 0, 697, + 705, 696, 0, 698, 697, 698, 696, 705, 0, 697, + 698, 705, 699, 0, 699, 698, 699, 705, 700, 699, + 700, 0, 700, 0, 699, 700, 701, 705, 701, 0, + 700, 0, 0, 701, 0, 701, 0, 0, 701, 699, + 0, 699, 0, 699, 0, 700, 699, 700, 703, 700, + + 0, 699, 700, 701, 0, 701, 702, 700, 702, 703, + 701, 703, 701, 702, 702, 701, 703, 0, 702, 704, + 0, 703, 0, 0, 706, 703, 0, 0, 706, 0, + 704, 0, 704, 702, 706, 702, 703, 704, 703, 0, + 702, 702, 704, 703, 706, 702, 704, 0, 703, 0, + 707, 706, 708, 0, 707, 706, 708, 704, 0, 704, + 707, 706, 708, 0, 704, 707, 0, 0, 0, 704, + 707, 706, 708, 0, 709, 0, 710, 707, 709, 708, + 710, 707, 709, 708, 0, 0, 710, 707, 709, 708, + 711, 0, 707, 0, 711, 0, 710, 707, 709, 708, + + 711, 709, 0, 710, 712, 709, 0, 710, 712, 709, + 711, 0, 712, 710, 0, 709, 0, 711, 712, 0, + 714, 711, 713, 710, 714, 709, 713, 711, 712, 0, + 714, 712, 713, 713, 715, 712, 715, 711, 0, 712, + 714, 715, 713, 0, 0, 712, 715, 714, 0, 713, + 0, 714, 0, 713, 0, 712, 0, 714, 0, 713, + 713, 715, 0, 715, 716, 0, 716, 714, 715, 713, + 717, 716, 717, 715, 718, 719, 716, 717, 718, 719, + 0, 0, 717, 0, 718, 719, 0, 0, 719, 0, + 0, 716, 0, 716, 718, 719, 0, 717, 716, 717, + + 0, 718, 719, 716, 717, 718, 719, 0, 0, 717, + 0, 718, 719, 0, 0, 719, 720, 0, 720, 0, + 0, 718, 719, 720, 721, 0, 721, 722, 720, 722, + 721, 721, 0, 722, 722, 0, 721, 0, 0, 722, + 0, 0, 0, 720, 0, 720, 0, 0, 0, 0, + 720, 721, 0, 721, 722, 720, 722, 721, 721, 0, + 722, 722, 0, 721, 0, 0, 722, 723, 724, 725, + 724, 725, 723, 0, 723, 724, 725, 0, 723, 723, + 724, 725, 0, 0, 723, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 723, 724, 725, 724, 725, 723, + + 0, 723, 724, 725, 0, 723, 723, 724, 725, 0, + 726, 723, 726, 727, 728, 727, 728, 726, 0, 0, + 727, 728, 726, 0, 0, 727, 728, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 726, 0, 726, + 727, 728, 727, 728, 726, 0, 0, 727, 728, 726, + 0, 0, 727, 728, 729, 0, 729, 730, 731, 730, + 731, 729, 729, 0, 730, 731, 729, 0, 0, 730, + 731, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 729, 0, 729, 730, 731, 730, 731, 729, 729, + 732, 730, 731, 729, 732, 733, 730, 731, 734, 733, + + 732, 0, 734, 736, 735, 733, 735, 736, 734, 736, + 732, 735, 735, 0, 736, 733, 735, 732, 734, 736, + 0, 732, 733, 0, 0, 734, 733, 732, 0, 734, + 736, 735, 733, 735, 736, 734, 736, 732, 735, 735, + 738, 736, 733, 735, 738, 734, 736, 737, 739, 737, + 738, 0, 739, 737, 737, 0, 0, 0, 739, 737, + 738, 0, 0, 0, 0, 0, 0, 738, 739, 0, + 0, 738, 0, 0, 737, 739, 737, 738, 0, 739, + 737, 737, 740, 0, 740, 739, 737, 738, 740, 0, + 0, 0, 741, 742, 740, 739, 741, 742, 0, 0, + + 0, 0, 741, 742, 740, 0, 742, 0, 0, 740, + 0, 740, 741, 742, 0, 740, 0, 0, 0, 741, + 742, 740, 743, 741, 742, 0, 743, 0, 0, 741, + 742, 740, 743, 742, 744, 743, 0, 745, 744, 741, + 742, 745, 743, 0, 744, 745, 746, 745, 0, 743, + 746, 0, 0, 743, 744, 0, 746, 745, 0, 743, + 0, 744, 743, 0, 745, 744, 746, 0, 745, 743, + 0, 744, 745, 746, 745, 747, 748, 746, 0, 747, + 748, 744, 0, 746, 745, 747, 748, 0, 0, 0, + 749, 0, 0, 746, 749, 747, 748, 0, 749, 0, + + 0, 0, 747, 748, 749, 0, 747, 748, 0, 0, + 0, 0, 747, 748, 749, 0, 750, 749, 0, 0, + 750, 749, 747, 748, 750, 749, 0, 0, 751, 752, + 750, 749, 751, 752, 0, 0, 0, 0, 751, 752, + 750, 749, 753, 750, 0, 0, 753, 750, 751, 752, + 753, 750, 753, 0, 0, 751, 752, 750, 0, 751, + 752, 0, 753, 0, 0, 751, 752, 750, 754, 753, + 755, 0, 754, 753, 755, 751, 752, 753, 754, 753, + 755, 754, 757, 0, 0, 755, 757, 0, 754, 753, + 755, 756, 757, 0, 756, 754, 0, 755, 756, 754, + + 0, 755, 757, 0, 756, 754, 0, 755, 754, 757, + 0, 0, 755, 757, 756, 754, 758, 755, 756, 757, + 758, 756, 0, 760, 758, 756, 758, 0, 759, 757, + 759, 756, 760, 0, 760, 759, 758, 0, 761, 760, + 759, 756, 761, 758, 760, 0, 0, 758, 761, 0, + 760, 758, 0, 758, 0, 759, 0, 759, 761, 760, + 762, 760, 759, 758, 762, 761, 760, 759, 763, 761, + 762, 760, 763, 765, 764, 761, 764, 765, 763, 0, + 762, 764, 0, 765, 0, 761, 764, 762, 763, 0, + 0, 762, 766, 765, 0, 763, 766, 762, 0, 763, + + 765, 764, 766, 764, 765, 763, 0, 762, 764, 0, + 765, 0, 766, 764, 767, 763, 0, 768, 767, 766, + 765, 768, 769, 766, 767, 0, 769, 768, 0, 766, + 0, 771, 769, 771, 767, 0, 770, 768, 771, 766, + 770, 767, 769, 771, 768, 767, 770, 0, 768, 769, + 772, 767, 772, 769, 768, 0, 770, 772, 771, 769, + 771, 767, 772, 770, 768, 771, 0, 770, 0, 769, + 771, 774, 0, 770, 773, 0, 773, 772, 0, 772, + 774, 773, 774, 770, 772, 0, 773, 774, 775, 772, + 775, 0, 774, 0, 0, 775, 0, 775, 774, 0, + + 775, 773, 0, 773, 776, 0, 776, 774, 773, 774, + 0, 776, 0, 773, 774, 775, 776, 775, 0, 774, + 0, 0, 775, 777, 775, 777, 778, 775, 0, 0, + 777, 776, 777, 776, 779, 777, 779, 778, 776, 778, + 0, 779, 779, 776, 778, 0, 779, 0, 0, 778, + 777, 0, 777, 778, 0, 0, 0, 777, 0, 777, + 780, 779, 777, 779, 778, 780, 778, 780, 779, 779, + 781, 778, 780, 779, 781, 782, 778, 780, 782, 782, + 781, 0, 0, 0, 0, 782, 0, 780, 0, 0, + 781, 0, 780, 0, 780, 782, 0, 781, 0, 780, + + 0, 781, 782, 0, 780, 782, 782, 781, 0, 783, + 784, 785, 782, 783, 784, 785, 0, 781, 0, 783, + 784, 785, 782, 786, 787, 0, 784, 786, 787, 783, + 784, 785, 0, 786, 787, 0, 783, 784, 785, 0, + 783, 784, 785, 786, 787, 0, 783, 784, 785, 0, + 786, 787, 0, 784, 786, 787, 783, 784, 785, 0, + 786, 787, 788, 0, 788, 886, 887, 886, 887, 788, + 786, 787, 886, 887, 788, 0, 0, 886, 887, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 788, + 0, 788, 886, 887, 886, 887, 788, 0, 0, 886, + + 887, 788, 0, 0, 886, 887, 888, 889, 888, 889, + 0, 890, 891, 888, 889, 890, 891, 0, 888, 889, + 888, 890, 891, 0, 0, 0, 0, 0, 0, 0, + 0, 890, 891, 888, 889, 888, 889, 0, 890, 891, + 888, 889, 890, 891, 0, 888, 889, 888, 890, 891, + 892, 893, 0, 0, 892, 893, 0, 0, 890, 891, + 892, 893, 0, 895, 895, 894, 893, 0, 895, 894, + 892, 893, 0, 894, 895, 0, 0, 892, 893, 894, + 0, 892, 893, 0, 895, 0, 0, 892, 893, 894, + 895, 895, 894, 893, 0, 895, 894, 892, 893, 0, + + 894, 895, 896, 897, 896, 897, 894, 0, 896, 0, + 897, 895, 0, 0, 896, 897, 894, 0, 0, 0, + 0, 0, 0, 0, 896, 0, 898, 0, 898, 896, + 897, 896, 897, 898, 898, 896, 899, 897, 898, 900, + 899, 896, 897, 900, 901, 902, 899, 902, 901, 900, + 0, 896, 902, 898, 901, 898, 899, 902, 903, 900, + 898, 898, 903, 899, 901, 898, 900, 899, 903, 0, + 900, 901, 902, 899, 902, 901, 900, 0, 903, 902, + 0, 901, 0, 899, 902, 903, 900, 0, 904, 903, + 0, 901, 904, 905, 0, 903, 907, 905, 904, 0, + + 907, 905, 906, 0, 906, 903, 907, 905, 904, 906, + 0, 0, 0, 0, 906, 904, 907, 905, 0, 904, + 905, 0, 908, 907, 905, 904, 908, 907, 905, 906, + 0, 906, 908, 907, 905, 904, 906, 0, 0, 0, + 0, 906, 908, 907, 905, 0, 909, 910, 0, 908, + 909, 910, 0, 908, 0, 0, 909, 910, 911, 908, + 911, 0, 910, 0, 0, 911, 909, 910, 0, 908, + 911, 912, 0, 909, 910, 912, 913, 909, 910, 0, + 913, 912, 0, 909, 910, 911, 913, 911, 0, 910, + 0, 912, 911, 909, 910, 914, 913, 911, 912, 914, + + 0, 0, 912, 913, 916, 914, 916, 913, 912, 0, + 914, 916, 0, 913, 0, 914, 916, 0, 912, 0, + 915, 0, 914, 913, 915, 0, 914, 0, 0, 0, + 915, 916, 914, 916, 0, 915, 0, 914, 916, 0, + 915, 0, 914, 916, 917, 0, 0, 915, 917, 919, + 0, 915, 0, 919, 917, 0, 0, 915, 923, 919, + 923, 0, 915, 0, 917, 923, 918, 915, 918, 919, + 923, 917, 918, 0, 0, 917, 919, 0, 918, 0, + 919, 917, 0, 0, 0, 923, 919, 923, 918, 0, + 920, 917, 923, 918, 920, 918, 919, 923, 921, 918, + + 920, 0, 921, 0, 0, 918, 0, 0, 921, 0, + 920, 0, 0, 0, 0, 918, 921, 920, 921, 0, + 0, 920, 0, 0, 922, 921, 0, 920, 922, 921, + 0, 0, 0, 0, 922, 921, 0, 920, 0, 922, + 924, 925, 924, 921, 922, 921, 925, 924, 925, 0, + 0, 922, 924, 925, 0, 922, 0, 0, 925, 0, + 0, 922, 0, 0, 0, 0, 922, 924, 925, 924, + 926, 922, 926, 925, 924, 925, 927, 926, 927, 924, + 925, 0, 926, 927, 928, 925, 928, 0, 927, 0, + 0, 928, 928, 0, 0, 0, 928, 926, 0, 926, + + 929, 0, 929, 927, 926, 927, 0, 929, 0, 926, + 927, 928, 929, 928, 930, 927, 930, 0, 928, 928, + 0, 930, 0, 928, 0, 0, 930, 929, 931, 929, + 931, 0, 0, 0, 929, 931, 931, 0, 0, 929, + 931, 930, 933, 930, 933, 0, 932, 0, 930, 933, + 932, 0, 933, 930, 933, 931, 932, 931, 934, 0, + 934, 0, 931, 931, 0, 934, 932, 931, 0, 933, + 934, 933, 0, 932, 0, 0, 933, 932, 0, 933, + 0, 933, 935, 932, 935, 934, 0, 934, 936, 935, + 936, 0, 934, 932, 935, 936, 0, 934, 937, 0, + + 936, 0, 0, 0, 0, 0, 937, 0, 937, 935, + 0, 935, 938, 937, 938, 936, 935, 936, 937, 938, + 0, 935, 936, 0, 938, 937, 0, 936, 0, 0, + 939, 0, 939, 937, 940, 937, 0, 939, 940, 938, + 937, 938, 939, 0, 940, 937, 938, 0, 941, 0, + 941, 938, 0, 0, 940, 941, 0, 939, 0, 939, + 941, 940, 0, 0, 939, 940, 0, 942, 0, 939, + 0, 940, 0, 0, 0, 941, 0, 941, 942, 0, + 942, 940, 941, 0, 943, 942, 943, 941, 0, 0, + 942, 943, 943, 944, 942, 0, 943, 944, 0, 944, + + 0, 0, 0, 0, 944, 942, 0, 942, 0, 944, + 0, 943, 942, 943, 0, 0, 0, 942, 943, 943, + 944, 0, 0, 943, 944, 945, 944, 945, 946, 0, + 946, 944, 945, 945, 0, 946, 944, 945, 948, 947, + 946, 947, 948, 0, 0, 0, 947, 0, 948, 0, + 0, 947, 945, 0, 945, 946, 0, 946, 948, 945, + 945, 0, 946, 0, 945, 948, 947, 946, 947, 948, + 0, 0, 949, 947, 0, 948, 949, 0, 947, 950, + 950, 0, 949, 0, 950, 948, 0, 949, 0, 0, + 950, 0, 949, 0, 0, 0, 0, 0, 0, 949, + + 950, 0, 0, 949, 0, 0, 950, 950, 951, 949, + 0, 950, 951, 0, 949, 0, 952, 950, 951, 949, + 952, 951, 0, 0, 0, 0, 952, 950, 951, 952, + 953, 0, 0, 0, 953, 951, 952, 0, 0, 951, + 953, 0, 954, 952, 0, 951, 954, 952, 951, 0, + 953, 0, 954, 952, 955, 951, 952, 953, 955, 0, + 0, 953, 954, 952, 955, 0, 956, 953, 0, 954, + 956, 0, 0, 954, 955, 0, 956, 953, 0, 954, + 957, 955, 0, 0, 957, 955, 956, 0, 957, 954, + 0, 955, 958, 956, 957, 0, 958, 956, 961, 0, + + 958, 955, 961, 956, 957, 0, 958, 957, 961, 959, + 959, 957, 0, 956, 959, 957, 958, 0, 961, 958, + 959, 957, 962, 958, 960, 961, 962, 958, 960, 961, + 959, 957, 962, 958, 960, 961, 959, 959, 0, 960, + 0, 959, 962, 958, 960, 961, 0, 959, 0, 962, + 964, 960, 0, 962, 964, 960, 0, 959, 964, 962, + 0, 960, 963, 963, 964, 0, 960, 963, 965, 962, + 965, 960, 0, 963, 964, 965, 0, 964, 0, 0, + 965, 964, 0, 963, 0, 964, 966, 0, 966, 963, + 963, 964, 966, 966, 963, 965, 0, 965, 966, 0, + + 963, 964, 965, 0, 967, 0, 967, 965, 0, 0, + 963, 967, 967, 966, 0, 966, 967, 968, 0, 966, + 966, 0, 0, 969, 0, 966, 0, 0, 968, 0, + 968, 967, 0, 967, 969, 968, 969, 0, 967, 967, + 968, 969, 0, 967, 968, 0, 969, 970, 0, 970, + 969, 0, 0, 0, 970, 968, 0, 968, 971, 970, + 971, 969, 968, 969, 0, 971, 0, 968, 969, 0, + 971, 0, 0, 969, 970, 0, 970, 0, 972, 973, + 973, 970, 972, 0, 973, 971, 970, 971, 972, 0, + 973, 0, 971, 0, 0, 0, 0, 971, 972, 0, + + 973, 0, 0, 0, 974, 972, 973, 973, 974, 972, + 0, 973, 975, 0, 974, 972, 975, 973, 0, 0, + 0, 976, 975, 976, 974, 972, 0, 973, 976, 977, + 0, 974, 975, 976, 0, 974, 0, 0, 0, 975, + 977, 974, 977, 975, 0, 0, 0, 977, 976, 975, + 976, 974, 977, 978, 0, 976, 977, 0, 0, 975, + 976, 979, 0, 979, 978, 0, 978, 977, 979, 977, + 980, 978, 980, 979, 977, 0, 978, 980, 0, 977, + 978, 0, 980, 0, 0, 0, 0, 0, 979, 0, + 979, 978, 1054, 978, 0, 979, 1054, 980, 978, 980, + + 979, 1055, 1054, 978, 980, 1055, 1056, 0, 1056, 980, + 1059, 1055, 1054, 1056, 1059, 1057, 0, 1057, 1056, 1054, + 1059, 1055, 1057, 1054, 1058, 0, 1058, 1057, 1055, 1054, + 1059, 1058, 1055, 1056, 0, 1056, 1058, 1059, 1055, 1054, + 1056, 1059, 1057, 0, 1057, 1056, 1060, 1059, 1055, 1057, + 1060, 1058, 0, 1058, 1057, 0, 1060, 1059, 1058, 0, + 1061, 1060, 1061, 1058, 0, 0, 1060, 1061, 1062, 1063, + 1062, 1063, 1061, 1060, 0, 1062, 1063, 1060, 0, 0, + 1062, 1063, 0, 1060, 0, 0, 0, 1061, 1060, 1061, + 0, 0, 0, 1060, 1061, 1062, 1063, 1062, 1063, 1061, + + 0, 0, 1062, 1063, 1064, 0, 1064, 1062, 1063, 0, + 1065, 1064, 1065, 1066, 1066, 1066, 1064, 1065, 1065, 0, + 1066, 0, 1065, 0, 0, 1066, 0, 0, 0, 0, + 0, 1064, 0, 1064, 0, 0, 0, 1065, 1064, 1065, + 1066, 1066, 1066, 1064, 1065, 1065, 1067, 1066, 0, 1065, + 0, 1068, 1066, 1068, 0, 1067, 0, 1067, 1068, 0, + 0, 0, 1067, 1068, 1069, 0, 1069, 1067, 0, 0, + 0, 1069, 1069, 1067, 0, 0, 1069, 0, 1068, 0, + 1068, 0, 1067, 0, 1067, 1068, 0, 0, 0, 1067, + 1068, 1069, 0, 1069, 1067, 1070, 1071, 1070, 1069, 1069, + + 0, 0, 1070, 1069, 0, 0, 1071, 1070, 1071, 1072, + 0, 1072, 0, 1071, 0, 0, 1072, 0, 1071, 0, + 0, 1072, 1070, 1071, 1070, 0, 0, 0, 1073, 1070, + 0, 0, 0, 1071, 1070, 1071, 1072, 1073, 1072, 1073, + 1071, 0, 0, 1072, 1073, 1071, 0, 0, 1072, 1073, + 1074, 1075, 1074, 1075, 0, 1073, 0, 1074, 1075, 0, + 0, 0, 1074, 1075, 1073, 0, 1073, 0, 0, 0, + 0, 1073, 0, 0, 0, 0, 1073, 1074, 1075, 1074, + 1075, 1076, 1077, 1076, 1074, 1075, 1077, 1078, 1076, 1074, + 1075, 1078, 1077, 1076, 1079, 0, 1079, 1078, 0, 0, + + 0, 1079, 1077, 0, 0, 0, 1079, 1078, 1076, 1077, + 1076, 0, 0, 1077, 1078, 1076, 0, 0, 1078, 1077, + 1076, 1079, 0, 1079, 1078, 0, 0, 0, 1079, 1077, + 1080, 1081, 1080, 1079, 1078, 1081, 1082, 1080, 1080, 0, + 1082, 1081, 1080, 0, 0, 0, 1082, 0, 0, 0, + 1083, 1081, 0, 0, 1083, 0, 1082, 1080, 1081, 1080, + 1083, 0, 1081, 1082, 1080, 1080, 0, 1082, 1081, 1080, + 1083, 0, 1084, 1082, 0, 1085, 1084, 1083, 1081, 1085, + 1086, 1083, 1084, 1082, 1086, 1085, 0, 1083, 0, 0, + 1086, 0, 1084, 0, 1087, 1085, 0, 1083, 1087, 1084, + + 1086, 0, 1085, 1084, 1087, 0, 1085, 1086, 0, 1084, + 0, 1086, 1085, 0, 1087, 0, 1088, 1086, 0, 1084, + 1088, 1087, 1085, 0, 1089, 1087, 1088, 1086, 1089, 1088, + 0, 1087, 0, 0, 1089, 0, 1088, 0, 1090, 0, + 0, 1087, 1090, 1088, 1089, 0, 1090, 1088, 0, 0, + 1091, 1089, 1090, 1088, 1091, 1089, 1088, 0, 0, 0, + 1091, 1089, 1090, 1088, 1092, 1090, 0, 0, 1092, 1090, + 1091, 1089, 0, 1090, 1092, 0, 1093, 1091, 1093, 1090, + 0, 1091, 0, 1093, 1092, 0, 0, 1091, 1093, 1090, + 0, 1092, 1094, 0, 1094, 1092, 0, 1091, 0, 1094, + + 1095, 1092, 1095, 1093, 1094, 1093, 1096, 1095, 1096, 0, + 1093, 1092, 1095, 1096, 0, 1093, 0, 0, 1096, 1094, + 0, 1094, 0, 0, 0, 1097, 1094, 1095, 0, 1095, + 1098, 1094, 1098, 1096, 1095, 1096, 1097, 1098, 1097, 1095, + 1096, 0, 1098, 1097, 0, 1096, 0, 0, 1097, 0, + 0, 0, 1097, 0, 1099, 0, 1099, 1098, 0, 1098, + 0, 1099, 1099, 1097, 1098, 1097, 1099, 1100, 0, 1098, + 1097, 1100, 1101, 0, 0, 1097, 1101, 1100, 0, 0, + 1102, 1099, 1101, 1099, 1102, 0, 0, 1100, 1099, 1099, + 1102, 0, 1101, 1099, 1100, 0, 0, 0, 1100, 1101, + + 1102, 0, 1103, 1101, 1100, 0, 1103, 1102, 0, 1101, + 0, 1102, 1103, 0, 1100, 0, 1104, 1102, 0, 1101, + 1104, 0, 1103, 0, 0, 0, 1104, 1102, 1105, 1103, + 1105, 0, 0, 1103, 1105, 0, 1104, 0, 0, 1103, + 1105, 0, 1106, 1104, 1106, 0, 0, 1104, 1106, 1103, + 1105, 0, 0, 1104, 1106, 1105, 0, 1105, 1107, 0, + 1107, 1105, 0, 1104, 1106, 1107, 1108, 1105, 1108, 1106, + 1107, 1106, 1109, 1108, 1109, 1106, 0, 1105, 1108, 1109, + 0, 1106, 0, 0, 1109, 1107, 0, 1107, 0, 0, + 0, 1106, 1107, 1108, 0, 1108, 1110, 1107, 1110, 1109, + + 1108, 1109, 1111, 1110, 1111, 1108, 1109, 0, 1110, 1111, + 1112, 1109, 1112, 0, 1111, 0, 0, 1112, 0, 0, + 0, 0, 1112, 1110, 0, 1110, 1113, 0, 1113, 1111, + 1110, 1111, 0, 1113, 1114, 1110, 1111, 1112, 1113, 1112, + 0, 1111, 0, 0, 1112, 1114, 1173, 1114, 0, 1112, + 1173, 0, 1114, 1113, 0, 1113, 1173, 1114, 1115, 1116, + 1113, 1114, 0, 0, 0, 1113, 1173, 0, 1116, 1115, + 1116, 1115, 1114, 1173, 1114, 1116, 1115, 1173, 0, 1114, + 1116, 1115, 0, 1173, 1114, 1115, 1116, 0, 0, 0, + 0, 0, 1117, 1173, 1117, 1116, 1115, 1116, 1115, 1117, + + 1117, 0, 1116, 1115, 1117, 1118, 0, 1116, 1115, 0, + 1119, 0, 1119, 1118, 0, 1118, 1120, 1119, 1120, 1117, + 1118, 1117, 1119, 1120, 0, 1118, 1117, 1117, 1120, 0, + 0, 1117, 1118, 0, 1121, 0, 1121, 1119, 0, 1119, + 1118, 1121, 1118, 1120, 1119, 1120, 1121, 1118, 0, 1119, + 1120, 0, 1118, 0, 0, 1120, 0, 1122, 0, 1122, + 1123, 1121, 1123, 1121, 1122, 0, 1123, 1123, 1121, 1122, + 0, 0, 1123, 1121, 0, 0, 1124, 0, 1124, 0, + 0, 0, 0, 1124, 1122, 0, 1122, 1123, 1124, 1123, + 1169, 1122, 1169, 1123, 1123, 0, 1122, 1169, 0, 1123, + + 0, 0, 1169, 1124, 1170, 1124, 1170, 0, 0, 0, + 1124, 1170, 0, 0, 0, 1124, 1170, 1169, 1171, 1169, + 1171, 0, 0, 0, 1169, 1171, 0, 0, 0, 1169, + 1171, 1170, 1172, 1170, 1172, 0, 1174, 0, 1170, 1172, + 1174, 0, 0, 1170, 1172, 1171, 1174, 1171, 0, 0, + 1175, 0, 1171, 0, 1175, 0, 1174, 1171, 0, 1172, + 1175, 1172, 0, 1174, 1176, 1176, 1172, 1174, 0, 0, + 1175, 1172, 0, 1174, 1177, 0, 0, 1175, 1177, 0, + 0, 1175, 0, 1174, 1177, 0, 0, 1175, 1178, 1176, + 0, 0, 1178, 1176, 1177, 0, 1178, 1175, 0, 1176, + + 0, 1177, 1178, 0, 1179, 1177, 0, 0, 1179, 1176, + 0, 1177, 1178, 0, 1179, 1178, 1176, 0, 1180, 1178, + 1176, 1177, 1180, 1178, 1179, 0, 1176, 0, 1180, 1178, + 1181, 1179, 0, 1182, 1181, 1179, 1176, 1182, 1180, 1178, + 1181, 1179, 1183, 1182, 0, 1180, 1183, 0, 1182, 1180, + 1181, 1179, 1183, 1182, 0, 1180, 0, 1181, 0, 0, + 1182, 1181, 1183, 0, 1182, 1180, 0, 1181, 1184, 1183, + 1182, 0, 1184, 1183, 0, 1182, 0, 1181, 1184, 1183, + 1182, 1185, 0, 0, 0, 1185, 0, 0, 1184, 1183, + 1186, 1185, 1186, 0, 0, 1184, 0, 1186, 0, 1184, + + 0, 1185, 1186, 0, 1187, 1184, 1187, 0, 1185, 0, + 0, 1187, 1185, 0, 1188, 1184, 1187, 1186, 1185, 1186, + 1189, 0, 1189, 1188, 1186, 1188, 0, 1189, 1185, 1186, + 1188, 1187, 1189, 1187, 0, 1188, 0, 0, 1187, 0, + 0, 1188, 0, 1187, 1190, 0, 1190, 1189, 0, 1189, + 1188, 1190, 1188, 1191, 1189, 1191, 1190, 1188, 0, 1189, + 1191, 0, 1188, 0, 0, 1191, 0, 0, 0, 0, + 0, 1190, 0, 1190, 0, 0, 0, 0, 1190, 1192, + 1191, 1192, 1191, 1190, 1193, 1192, 1192, 1191, 1193, 1194, + 0, 1192, 1191, 1194, 1193, 1195, 0, 1195, 1196, 1194, + + 1196, 0, 1195, 0, 1193, 1196, 1192, 1195, 1192, 1194, + 1196, 1193, 1192, 1192, 0, 1193, 1194, 0, 1192, 0, + 1194, 1193, 1195, 0, 1195, 1196, 1194, 1196, 1197, 1195, + 1197, 1193, 1196, 0, 1195, 1197, 1194, 1196, 0, 1198, + 1197, 1198, 0, 0, 0, 0, 1198, 1198, 0, 0, + 0, 1198, 1200, 0, 1200, 1197, 0, 1197, 0, 1200, + 0, 0, 1197, 0, 1200, 0, 1198, 1197, 1198, 1199, + 1199, 0, 1199, 1198, 1198, 0, 0, 1199, 1198, 1200, + 0, 1200, 1199, 1201, 0, 1201, 1200, 0, 0, 0, + 1201, 1200, 0, 0, 0, 1201, 1199, 1199, 0, 1199, + + 0, 0, 0, 0, 1199, 0, 1202, 0, 1202, 1199, + 1201, 0, 1201, 1202, 1202, 0, 0, 1201, 1202, 1203, + 0, 1203, 1201, 0, 0, 0, 1203, 1205, 1205, 1205, + 1204, 1203, 1204, 1202, 1205, 1202, 1204, 1204, 0, 1205, + 1202, 1202, 1204, 0, 0, 1202, 1203, 0, 1203, 0, + 0, 0, 0, 1203, 1205, 1205, 1205, 1204, 1203, 1204, + 1206, 1205, 1206, 1204, 1204, 0, 1205, 1206, 1206, 1204, + 1207, 1208, 1206, 1209, 1207, 1208, 0, 1209, 0, 0, + 1207, 1208, 0, 1209, 0, 0, 0, 1206, 0, 1206, + 1207, 1208, 0, 1209, 1206, 1206, 0, 1207, 1208, 1206, + + 1209, 1207, 1208, 0, 1209, 1210, 0, 1207, 1208, 1210, + 1209, 0, 0, 0, 0, 1210, 0, 1207, 1208, 1236, + 1209, 0, 0, 1236, 1234, 1210, 0, 0, 1234, 1236, + 0, 0, 1210, 0, 1234, 0, 1210, 1234, 0, 1236, + 0, 0, 1210, 1237, 1234, 0, 1236, 1237, 0, 0, + 1236, 1234, 1210, 1237, 0, 1234, 1236, 0, 1237, 0, + 0, 1234, 0, 1237, 1234, 0, 1236, 0, 1238, 1239, + 1237, 1234, 1238, 1239, 1237, 0, 0, 0, 1238, 1239, + 1237, 0, 1240, 1241, 1240, 1237, 1240, 1241, 1238, 1239, + 1237, 0, 1240, 1241, 0, 1238, 1239, 1242, 1241, 1238, + + 1239, 1242, 1240, 1241, 0, 1238, 1239, 1242, 0, 1240, + 1241, 1240, 0, 1240, 1241, 1238, 1239, 1242, 0, 1240, + 1241, 0, 1243, 1244, 1242, 1241, 1243, 1244, 1242, 1240, + 1241, 0, 1243, 1244, 1242, 0, 1244, 0, 0, 1245, + 1246, 1245, 1243, 1244, 1242, 1246, 1245, 1246, 0, 1243, + 1244, 1245, 1246, 1243, 1244, 0, 0, 1246, 0, 1243, + 1244, 0, 0, 1244, 0, 0, 1245, 1246, 1245, 1243, + 1244, 0, 1246, 1245, 1246, 1247, 0, 1247, 1245, 1246, + 0, 1248, 1247, 1248, 1246, 0, 0, 1247, 1248, 1249, + 0, 1249, 0, 1248, 0, 0, 1249, 0, 0, 0, + + 0, 1249, 1247, 0, 1247, 0, 0, 1250, 1248, 1247, + 1248, 1250, 0, 0, 1247, 1248, 1249, 1250, 1249, 0, + 1248, 1251, 0, 1249, 0, 1251, 1252, 1250, 1249, 1253, + 1252, 1251, 1251, 1253, 1250, 0, 1252, 0, 1250, 1253, + 0, 1251, 0, 0, 1250, 0, 1252, 0, 1251, 1253, + 1254, 1254, 1251, 1252, 1250, 1254, 1253, 1252, 1251, 1251, + 1253, 1254, 0, 1252, 1269, 1269, 1253, 0, 1251, 0, + 1271, 1254, 0, 1252, 1271, 1272, 1253, 1254, 1254, 1272, + 1271, 0, 1254, 0, 1274, 1272, 1274, 0, 1254, 1269, + 1271, 1274, 0, 1269, 0, 1272, 1274, 1271, 1254, 1269, + + 0, 1271, 1272, 1275, 1273, 1275, 1272, 1271, 1273, 1269, + 1275, 1274, 1272, 1274, 1273, 1275, 1269, 1271, 1274, 0, + 1269, 0, 1272, 1274, 1273, 0, 1269, 1276, 0, 1276, + 1275, 1273, 1275, 0, 1276, 1273, 1269, 1275, 1277, 1276, + 1277, 1273, 1275, 0, 0, 1277, 1278, 0, 1278, 0, + 1277, 1273, 0, 1278, 1276, 0, 1276, 0, 1278, 1279, + 0, 1276, 0, 1279, 1280, 1277, 1276, 1277, 1280, 1279, + 0, 0, 1277, 1278, 1280, 1278, 0, 1277, 1290, 1279, + 1278, 0, 1290, 1291, 1280, 1278, 1279, 1291, 1290, 0, + 1279, 1280, 1292, 1291, 1292, 1280, 1279, 0, 1290, 1292, + + 1300, 1280, 1300, 1291, 1292, 1290, 1279, 1300, 0, 1290, + 1291, 1280, 1300, 0, 1291, 1290, 0, 0, 0, 1292, + 1291, 1292, 0, 0, 0, 1290, 1292, 1300, 0, 1300, + 1291, 1292, 0, 0, 1300, 0, 0, 0, 0, 1300, + 1332, 1332, 1332, 1332, 1332, 1333, 0, 0, 1333, 1333, + 1335, 1335, 1335, 0, 1335, 1336, 0, 1336, 1336, 1336, + 1337, 0, 1337, 1337, 1337, 1338, 0, 1338, 1338, 1338, + 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, + 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, + 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, + + 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, + 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, + 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, + 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, 1331, + 1331, 1331, 1331, 1331, 1331, 1331, 1331 + } ; + +/* The intent behind this definition is that it'll catch + * any uses of REJECT which flex missed. + */ +#define REJECT reject_used_but_not_detected +#define yymore() yymore_used_but_not_detected +#define YY_MORE_ADJ 0 +#define YY_RESTORE_YY_MORE_OFFSET +#line 1 "flex_lexer.l" +/** + * lexer + * + * + */ +/*************************** + ** Section 1: Definitions + ***************************/ + +#line 12 "flex_lexer.l" + +#include "../sql/Expr.h" +#include "bison_parser.h" +#include +#include +#include + +#define TOKEN(name) { return SQL_##name; } + +static thread_local std::stringstream strbuf; + +#line 3064 "flex_lexer.cpp" + +/*************************** + ** Section 2: Rules + ***************************/ +/* Define the output files */ +/* Make reentrant */ +/* performance tweeks */ +/* other flags */ +/* %option nodefault */ + +/*************************** + ** Section 3: Rules + ***************************/ +#line 3078 "flex_lexer.cpp" + +#define INITIAL 0 +#define singlequotedstring 1 +#define COMMENT 2 + +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#if defined(_WIN32) || defined(_WIN64) + #include +#else + #include +#endif +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +/* Holds the entire state of the reentrant scanner. */ +struct yyguts_t + { + + /* User-defined. Not touched by flex. */ + YY_EXTRA_TYPE yyextra_r; + + /* The rest are the same as the globals declared in the non-reentrant scanner. */ + FILE *yyin_r, *yyout_r; + size_t yy_buffer_stack_top; /**< index of top of stack. */ + size_t yy_buffer_stack_max; /**< capacity of stack. */ + YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ + char yy_hold_char; + int yy_n_chars; + int yyleng_r; + char *yy_c_buf_p; + int yy_init; + int yy_start; + int yy_did_buffer_switch_on_eof; + int yy_start_stack_ptr; + int yy_start_stack_depth; + int *yy_start_stack; + yy_state_type yy_last_accepting_state; + char* yy_last_accepting_cpos; + + int yylineno_r; + int yy_flex_debug_r; + + char *yytext_r; + int yy_more_flag; + int yy_more_len; + + YYSTYPE * yylval_r; + + YYLTYPE * yylloc_r; + + }; /* end struct yyguts_t */ + +static int yy_init_globals ( yyscan_t yyscanner ); + + /* This must go here because YYSTYPE and YYLTYPE are included + * from bison output in section 1.*/ + # define yylval yyg->yylval_r + + # define yylloc yyg->yylloc_r + +int yylex_init (yyscan_t* scanner); + +int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner); + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int yylex_destroy ( yyscan_t yyscanner ); + +int yyget_debug ( yyscan_t yyscanner ); + +void yyset_debug ( int debug_flag , yyscan_t yyscanner ); + +YY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner ); + +void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner ); + +FILE *yyget_in ( yyscan_t yyscanner ); + +void yyset_in ( FILE * _in_str , yyscan_t yyscanner ); + +FILE *yyget_out ( yyscan_t yyscanner ); + +void yyset_out ( FILE * _out_str , yyscan_t yyscanner ); + + int yyget_leng ( yyscan_t yyscanner ); + +char *yyget_text ( yyscan_t yyscanner ); + +int yyget_lineno ( yyscan_t yyscanner ); + +void yyset_lineno ( int _line_number , yyscan_t yyscanner ); + +int yyget_column ( yyscan_t yyscanner ); + +void yyset_column ( int _column_no , yyscan_t yyscanner ); + +YYSTYPE * yyget_lval ( yyscan_t yyscanner ); + +void yyset_lval ( YYSTYPE * yylval_param , yyscan_t yyscanner ); + + YYLTYPE *yyget_lloc ( yyscan_t yyscanner ); + + void yyset_lloc ( YYLTYPE * yylloc_param , yyscan_t yyscanner ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int yywrap ( yyscan_t yyscanner ); +#else +extern int yywrap ( yyscan_t yyscanner ); +#endif +#endif + +#ifndef YY_NO_UNPUT + +#endif + +#ifndef yytext_ptr +static void yy_flex_strncpy ( char *, const char *, int , yyscan_t yyscanner); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen ( const char * , yyscan_t yyscanner); +#endif + +#ifndef YY_NO_INPUT +#ifdef __cplusplus +static int yyinput ( yyscan_t yyscanner ); +#else +static int input ( yyscan_t yyscanner ); +#endif + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else +#define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ +#endif + +/* Copy whatever the last rule matched to the standard output. */ +#ifndef ECHO +/* This used to be an fputs(), but since the string might contain NUL's, + * we now use fwrite(). + */ +#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) +#endif + +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, + * is returned in "result". + */ +#ifndef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ + { \ + int c = '*'; \ + int n; \ + for ( n = 0; n < max_size && \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ + buf[n] = (char) c; \ + if ( c == '\n' ) \ + buf[n++] = (char) c; \ + if ( c == EOF && ferror( yyin ) ) \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + result = n; \ + } \ + else \ + { \ + errno=0; \ + while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ + { \ + if( errno != EINTR) \ + { \ + YY_FATAL_ERROR( "input in flex scanner failed" ); \ + break; \ + } \ + errno=0; \ + clearerr(yyin); \ + } \ + }\ +\ + +#endif + +/* No semi-colon after return; correct usage is to write "yyterminate();" - + * we don't want an extra ';' after the "return" because that will cause + * some compilers to complain about unreachable statements. + */ +#ifndef yyterminate +#define yyterminate() return YY_NULL +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Report a fatal error. */ +#ifndef YY_FATAL_ERROR +#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) +#endif + +/* end tables serialization structures and prototypes */ + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int yylex \ + (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner); + +#define YY_DECL int yylex \ + (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner) +#endif /* !YY_DECL */ + +/* Code executed at the beginning of each rule, after yytext and yyleng + * have been set up. + */ +#ifndef YY_USER_ACTION +#define YY_USER_ACTION +#endif + +/* Code executed at the end of each rule. */ +#ifndef YY_BREAK +#define YY_BREAK /*LINTED*/break; +#endif + +#define YY_RULE_SETUP \ + YY_USER_ACTION + +/** The main scanner function which does all the work. + */ +YY_DECL +{ + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + yylval = yylval_param; + + yylloc = yylloc_param; + + if ( !yyg->yy_init ) + { + yyg->yy_init = 1; + +#ifdef YY_USER_INIT + YY_USER_INIT; +#endif + + if ( ! yyg->yy_start ) + yyg->yy_start = 1; /* first start state */ + + if ( ! yyin ) + yyin = stdin; + + if ( ! yyout ) + yyout = stdout; + + if ( ! YY_CURRENT_BUFFER ) { + yyensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); + } + + yy_load_buffer_state( yyscanner ); + } + + { +#line 57 "flex_lexer.l" + + +#line 3365 "flex_lexer.cpp" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ + { + yy_cp = yyg->yy_c_buf_p; + + /* Support of yytext. */ + *yy_cp = yyg->yy_hold_char; + + /* yy_bp points to the position in yy_ch_buf of the start of + * the current run. + */ + yy_bp = yy_cp; + + yy_current_state = yyg->yy_start; +yy_match: + do + { + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; + if ( yy_accept[yy_current_state] ) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 1332 ) + yy_c = yy_meta[yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + ++yy_cp; + } + while ( yy_current_state != 1331 ); + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + +yy_find_action: + yy_act = yy_accept[yy_current_state]; + + YY_DO_BEFORE_ACTION; + +do_action: /* This label is used only to access EOF actions. */ + + switch ( yy_act ) + { /* beginning of action switch */ + case 0: /* must back up */ + /* undo the effects of YY_DO_BEFORE_ACTION */ + *yy_cp = yyg->yy_hold_char; + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + goto yy_find_action; + +case 1: +YY_RULE_SETUP +#line 59 "flex_lexer.l" +BEGIN(COMMENT); + YY_BREAK +case 2: +YY_RULE_SETUP +#line 60 "flex_lexer.l" +/* skipping comment content until a end of line is read */; + YY_BREAK +case 3: +/* rule 3 can match eol */ +YY_RULE_SETUP +#line 61 "flex_lexer.l" +BEGIN(INITIAL); + YY_BREAK +case 4: +/* rule 4 can match eol */ +YY_RULE_SETUP +#line 63 "flex_lexer.l" +/* skip whitespace */; + YY_BREAK +case 5: +YY_RULE_SETUP +#line 65 "flex_lexer.l" +TOKEN(ADD) + YY_BREAK +case 6: +YY_RULE_SETUP +#line 66 "flex_lexer.l" +TOKEN(AFTER) + YY_BREAK +case 7: +YY_RULE_SETUP +#line 67 "flex_lexer.l" +TOKEN(ALL) + YY_BREAK +case 8: +YY_RULE_SETUP +#line 68 "flex_lexer.l" +TOKEN(ALTER) + YY_BREAK +case 9: +YY_RULE_SETUP +#line 69 "flex_lexer.l" +TOKEN(ANALYZE) + YY_BREAK +case 10: +YY_RULE_SETUP +#line 70 "flex_lexer.l" +TOKEN(AND) + YY_BREAK +case 11: +YY_RULE_SETUP +#line 71 "flex_lexer.l" +TOKEN(ARRAY) + YY_BREAK +case 12: +YY_RULE_SETUP +#line 72 "flex_lexer.l" +TOKEN(AS) + YY_BREAK +case 13: +YY_RULE_SETUP +#line 73 "flex_lexer.l" +TOKEN(ASC) + YY_BREAK +case 14: +YY_RULE_SETUP +#line 74 "flex_lexer.l" +TOKEN(BEFORE) + YY_BREAK +case 15: +YY_RULE_SETUP +#line 75 "flex_lexer.l" +TOKEN(BEGIN) + YY_BREAK +case 16: +YY_RULE_SETUP +#line 76 "flex_lexer.l" +TOKEN(BETWEEN) + YY_BREAK +case 17: +YY_RULE_SETUP +#line 77 "flex_lexer.l" +TOKEN(BIGINT) + YY_BREAK +case 18: +YY_RULE_SETUP +#line 78 "flex_lexer.l" +TOKEN(BOOLEAN) + YY_BREAK +case 19: +YY_RULE_SETUP +#line 79 "flex_lexer.l" +TOKEN(BY) + YY_BREAK +case 20: +YY_RULE_SETUP +#line 80 "flex_lexer.l" +TOKEN(CALL) + YY_BREAK +case 21: +YY_RULE_SETUP +#line 81 "flex_lexer.l" +TOKEN(CASCADE) + YY_BREAK +case 22: +YY_RULE_SETUP +#line 82 "flex_lexer.l" +TOKEN(CASE) + YY_BREAK +case 23: +YY_RULE_SETUP +#line 83 "flex_lexer.l" +TOKEN(CAST) + YY_BREAK +case 24: +YY_RULE_SETUP +#line 84 "flex_lexer.l" +TOKEN(CHAR) + YY_BREAK +case 25: +YY_RULE_SETUP +#line 85 "flex_lexer.l" +TOKEN(COLUMN) + YY_BREAK +case 26: +YY_RULE_SETUP +#line 86 "flex_lexer.l" +TOKEN(COLUMNS) + YY_BREAK +case 27: +YY_RULE_SETUP +#line 87 "flex_lexer.l" +TOKEN(COMMIT) + YY_BREAK +case 28: +YY_RULE_SETUP +#line 88 "flex_lexer.l" +TOKEN(CONTROL) + YY_BREAK +case 29: +YY_RULE_SETUP +#line 89 "flex_lexer.l" +TOKEN(COPY) + YY_BREAK +case 30: +YY_RULE_SETUP +#line 90 "flex_lexer.l" +TOKEN(CREATE) + YY_BREAK +case 31: +YY_RULE_SETUP +#line 91 "flex_lexer.l" +TOKEN(CROSS) + YY_BREAK +case 32: +YY_RULE_SETUP +#line 92 "flex_lexer.l" +TOKEN(DATE) + YY_BREAK +case 33: +YY_RULE_SETUP +#line 93 "flex_lexer.l" +TOKEN(DATETIME) + YY_BREAK +case 34: +YY_RULE_SETUP +#line 94 "flex_lexer.l" +TOKEN(DAY) + YY_BREAK +case 35: +YY_RULE_SETUP +#line 95 "flex_lexer.l" +TOKEN(DAYS) + YY_BREAK +case 36: +YY_RULE_SETUP +#line 96 "flex_lexer.l" +TOKEN(DEALLOCATE) + YY_BREAK +case 37: +YY_RULE_SETUP +#line 97 "flex_lexer.l" +TOKEN(DECIMAL) + YY_BREAK +case 38: +YY_RULE_SETUP +#line 98 "flex_lexer.l" +TOKEN(DEFAULT) + YY_BREAK +case 39: +YY_RULE_SETUP +#line 99 "flex_lexer.l" +TOKEN(DELETE) + YY_BREAK +case 40: +YY_RULE_SETUP +#line 100 "flex_lexer.l" +TOKEN(DELTA) + YY_BREAK +case 41: +YY_RULE_SETUP +#line 101 "flex_lexer.l" +TOKEN(DESC) + YY_BREAK +case 42: +YY_RULE_SETUP +#line 102 "flex_lexer.l" +TOKEN(DESCRIBE) + YY_BREAK +case 43: +YY_RULE_SETUP +#line 103 "flex_lexer.l" +TOKEN(DIRECT) + YY_BREAK +case 44: +YY_RULE_SETUP +#line 104 "flex_lexer.l" +TOKEN(DISTINCT) + YY_BREAK +case 45: +YY_RULE_SETUP +#line 105 "flex_lexer.l" +TOKEN(DOUBLE) + YY_BREAK +case 46: +YY_RULE_SETUP +#line 106 "flex_lexer.l" +TOKEN(DROP) + YY_BREAK +case 47: +YY_RULE_SETUP +#line 107 "flex_lexer.l" +TOKEN(ELSE) + YY_BREAK +case 48: +YY_RULE_SETUP +#line 108 "flex_lexer.l" +TOKEN(END) + YY_BREAK +case 49: +YY_RULE_SETUP +#line 109 "flex_lexer.l" +TOKEN(ESCAPE) + YY_BREAK +case 50: +YY_RULE_SETUP +#line 110 "flex_lexer.l" +TOKEN(EXCEPT) + YY_BREAK +case 51: +YY_RULE_SETUP +#line 111 "flex_lexer.l" +TOKEN(EXECUTE) + YY_BREAK +case 52: +YY_RULE_SETUP +#line 112 "flex_lexer.l" +TOKEN(EXISTS) + YY_BREAK +case 53: +YY_RULE_SETUP +#line 113 "flex_lexer.l" +TOKEN(EXPLAIN) + YY_BREAK +case 54: +YY_RULE_SETUP +#line 114 "flex_lexer.l" +TOKEN(EXTRACT) + YY_BREAK +case 55: +YY_RULE_SETUP +#line 115 "flex_lexer.l" +TOKEN(FALSE) + YY_BREAK +case 56: +YY_RULE_SETUP +#line 116 "flex_lexer.l" +TOKEN(FILE) + YY_BREAK +case 57: +YY_RULE_SETUP +#line 117 "flex_lexer.l" +TOKEN(FLOAT) + YY_BREAK +case 58: +YY_RULE_SETUP +#line 118 "flex_lexer.l" +TOKEN(FOLLOWING) + YY_BREAK +case 59: +YY_RULE_SETUP +#line 119 "flex_lexer.l" +TOKEN(FOR) + YY_BREAK +case 60: +YY_RULE_SETUP +#line 120 "flex_lexer.l" +TOKEN(FORMAT) + YY_BREAK +case 61: +YY_RULE_SETUP +#line 121 "flex_lexer.l" +TOKEN(FROM) + YY_BREAK +case 62: +YY_RULE_SETUP +#line 122 "flex_lexer.l" +TOKEN(FULL) + YY_BREAK +case 63: +YY_RULE_SETUP +#line 123 "flex_lexer.l" +TOKEN(GLOBAL) + YY_BREAK +case 64: +YY_RULE_SETUP +#line 124 "flex_lexer.l" +TOKEN(GROUP) + YY_BREAK +case 65: +YY_RULE_SETUP +#line 125 "flex_lexer.l" +TOKEN(GROUPS) + YY_BREAK +case 66: +YY_RULE_SETUP +#line 126 "flex_lexer.l" +TOKEN(HASH) + YY_BREAK +case 67: +YY_RULE_SETUP +#line 127 "flex_lexer.l" +TOKEN(HAVING) + YY_BREAK +case 68: +YY_RULE_SETUP +#line 128 "flex_lexer.l" +TOKEN(HINT) + YY_BREAK +case 69: +YY_RULE_SETUP +#line 129 "flex_lexer.l" +TOKEN(HOUR) + YY_BREAK +case 70: +YY_RULE_SETUP +#line 130 "flex_lexer.l" +TOKEN(HOURS) + YY_BREAK +case 71: +YY_RULE_SETUP +#line 131 "flex_lexer.l" +TOKEN(IF) + YY_BREAK +case 72: +YY_RULE_SETUP +#line 132 "flex_lexer.l" +TOKEN(ILIKE) + YY_BREAK +case 73: +YY_RULE_SETUP +#line 133 "flex_lexer.l" +TOKEN(IMPORT) + YY_BREAK +case 74: +YY_RULE_SETUP +#line 134 "flex_lexer.l" +TOKEN(IN) + YY_BREAK +case 75: +YY_RULE_SETUP +#line 135 "flex_lexer.l" +TOKEN(INDEX) + YY_BREAK +case 76: +YY_RULE_SETUP +#line 136 "flex_lexer.l" +TOKEN(INNER) + YY_BREAK +case 77: +YY_RULE_SETUP +#line 137 "flex_lexer.l" +TOKEN(INSERT) + YY_BREAK +case 78: +YY_RULE_SETUP +#line 138 "flex_lexer.l" +TOKEN(INT) + YY_BREAK +case 79: +YY_RULE_SETUP +#line 139 "flex_lexer.l" +TOKEN(INTEGER) + YY_BREAK +case 80: +YY_RULE_SETUP +#line 140 "flex_lexer.l" +TOKEN(INTERSECT) + YY_BREAK +case 81: +YY_RULE_SETUP +#line 141 "flex_lexer.l" +TOKEN(INTERVAL) + YY_BREAK +case 82: +YY_RULE_SETUP +#line 142 "flex_lexer.l" +TOKEN(INTO) + YY_BREAK +case 83: +YY_RULE_SETUP +#line 143 "flex_lexer.l" +TOKEN(IS) + YY_BREAK +case 84: +YY_RULE_SETUP +#line 144 "flex_lexer.l" +TOKEN(ISNULL) + YY_BREAK +case 85: +YY_RULE_SETUP +#line 145 "flex_lexer.l" +TOKEN(JOIN) + YY_BREAK +case 86: +YY_RULE_SETUP +#line 146 "flex_lexer.l" +TOKEN(KEY) + YY_BREAK +case 87: +YY_RULE_SETUP +#line 147 "flex_lexer.l" +TOKEN(LEFT) + YY_BREAK +case 88: +YY_RULE_SETUP +#line 148 "flex_lexer.l" +TOKEN(LIKE) + YY_BREAK +case 89: +YY_RULE_SETUP +#line 149 "flex_lexer.l" +TOKEN(LIMIT) + YY_BREAK +case 90: +YY_RULE_SETUP +#line 150 "flex_lexer.l" +TOKEN(LOAD) + YY_BREAK +case 91: +YY_RULE_SETUP +#line 151 "flex_lexer.l" +TOKEN(LOCAL) + YY_BREAK +case 92: +YY_RULE_SETUP +#line 152 "flex_lexer.l" +TOKEN(LOCKED) + YY_BREAK +case 93: +YY_RULE_SETUP +#line 153 "flex_lexer.l" +TOKEN(LONG) + YY_BREAK +case 94: +YY_RULE_SETUP +#line 154 "flex_lexer.l" +TOKEN(MERGE) + YY_BREAK +case 95: +YY_RULE_SETUP +#line 155 "flex_lexer.l" +TOKEN(MINUS) + YY_BREAK +case 96: +YY_RULE_SETUP +#line 156 "flex_lexer.l" +TOKEN(MINUTE) + YY_BREAK +case 97: +YY_RULE_SETUP +#line 157 "flex_lexer.l" +TOKEN(MINUTES) + YY_BREAK +case 98: +YY_RULE_SETUP +#line 158 "flex_lexer.l" +TOKEN(MONTH) + YY_BREAK +case 99: +YY_RULE_SETUP +#line 159 "flex_lexer.l" +TOKEN(MONTHS) + YY_BREAK +case 100: +YY_RULE_SETUP +#line 160 "flex_lexer.l" +TOKEN(NATURAL) + YY_BREAK +case 101: +YY_RULE_SETUP +#line 161 "flex_lexer.l" +TOKEN(NO) + YY_BREAK +case 102: +YY_RULE_SETUP +#line 162 "flex_lexer.l" +TOKEN(NOT) + YY_BREAK +case 103: +YY_RULE_SETUP +#line 163 "flex_lexer.l" +TOKEN(NOWAIT) + YY_BREAK +case 104: +YY_RULE_SETUP +#line 164 "flex_lexer.l" +TOKEN(NULL) + YY_BREAK +case 105: +YY_RULE_SETUP +#line 165 "flex_lexer.l" +TOKEN(NVARCHAR) + YY_BREAK +case 106: +YY_RULE_SETUP +#line 166 "flex_lexer.l" +TOKEN(OF) + YY_BREAK +case 107: +YY_RULE_SETUP +#line 167 "flex_lexer.l" +TOKEN(OFF) + YY_BREAK +case 108: +YY_RULE_SETUP +#line 168 "flex_lexer.l" +TOKEN(OFFSET) + YY_BREAK +case 109: +YY_RULE_SETUP +#line 169 "flex_lexer.l" +TOKEN(ON) + YY_BREAK +case 110: +YY_RULE_SETUP +#line 170 "flex_lexer.l" +TOKEN(OR) + YY_BREAK +case 111: +YY_RULE_SETUP +#line 171 "flex_lexer.l" +TOKEN(ORDER) + YY_BREAK +case 112: +YY_RULE_SETUP +#line 172 "flex_lexer.l" +TOKEN(OUTER) + YY_BREAK +case 113: +YY_RULE_SETUP +#line 173 "flex_lexer.l" +TOKEN(OVER) + YY_BREAK +case 114: +YY_RULE_SETUP +#line 174 "flex_lexer.l" +TOKEN(PARAMETERS) + YY_BREAK +case 115: +YY_RULE_SETUP +#line 175 "flex_lexer.l" +TOKEN(PARTITION) + YY_BREAK +case 116: +YY_RULE_SETUP +#line 176 "flex_lexer.l" +TOKEN(PLAN) + YY_BREAK +case 117: +YY_RULE_SETUP +#line 177 "flex_lexer.l" +TOKEN(PRECEDING) + YY_BREAK +case 118: +YY_RULE_SETUP +#line 178 "flex_lexer.l" +TOKEN(PREPARE) + YY_BREAK +case 119: +YY_RULE_SETUP +#line 179 "flex_lexer.l" +TOKEN(PRIMARY) + YY_BREAK +case 120: +YY_RULE_SETUP +#line 180 "flex_lexer.l" +TOKEN(RANGE) + YY_BREAK +case 121: +YY_RULE_SETUP +#line 181 "flex_lexer.l" +TOKEN(REAL) + YY_BREAK +case 122: +YY_RULE_SETUP +#line 182 "flex_lexer.l" +TOKEN(RENAME) + YY_BREAK +case 123: +YY_RULE_SETUP +#line 183 "flex_lexer.l" +TOKEN(RESTRICT) + YY_BREAK +case 124: +YY_RULE_SETUP +#line 184 "flex_lexer.l" +TOKEN(RIGHT) + YY_BREAK +case 125: +YY_RULE_SETUP +#line 185 "flex_lexer.l" +TOKEN(ROLLBACK) + YY_BREAK +case 126: +YY_RULE_SETUP +#line 186 "flex_lexer.l" +TOKEN(ROWS) + YY_BREAK +case 127: +YY_RULE_SETUP +#line 187 "flex_lexer.l" +TOKEN(SCHEMA) + YY_BREAK +case 128: +YY_RULE_SETUP +#line 188 "flex_lexer.l" +TOKEN(SCHEMAS) + YY_BREAK +case 129: +YY_RULE_SETUP +#line 189 "flex_lexer.l" +TOKEN(SECOND) + YY_BREAK +case 130: +YY_RULE_SETUP +#line 190 "flex_lexer.l" +TOKEN(SECONDS) + YY_BREAK +case 131: +YY_RULE_SETUP +#line 191 "flex_lexer.l" +TOKEN(SELECT) + YY_BREAK +case 132: +YY_RULE_SETUP +#line 192 "flex_lexer.l" +TOKEN(SET) + YY_BREAK +case 133: +YY_RULE_SETUP +#line 193 "flex_lexer.l" +TOKEN(SHARE) + YY_BREAK +case 134: +YY_RULE_SETUP +#line 194 "flex_lexer.l" +TOKEN(SHOW) + YY_BREAK +case 135: +YY_RULE_SETUP +#line 195 "flex_lexer.l" +TOKEN(SKIP) + YY_BREAK +case 136: +YY_RULE_SETUP +#line 196 "flex_lexer.l" +TOKEN(SMALLINT) + YY_BREAK +case 137: +YY_RULE_SETUP +#line 197 "flex_lexer.l" +TOKEN(SORTED) + YY_BREAK +case 138: +YY_RULE_SETUP +#line 198 "flex_lexer.l" +TOKEN(SPATIAL) + YY_BREAK +case 139: +YY_RULE_SETUP +#line 199 "flex_lexer.l" +TOKEN(TABLE) + YY_BREAK +case 140: +YY_RULE_SETUP +#line 200 "flex_lexer.l" +TOKEN(TABLES) + YY_BREAK +case 141: +YY_RULE_SETUP +#line 201 "flex_lexer.l" +TOKEN(TEMPORARY) + YY_BREAK +case 142: +YY_RULE_SETUP +#line 202 "flex_lexer.l" +TOKEN(TEXT) + YY_BREAK +case 143: +YY_RULE_SETUP +#line 203 "flex_lexer.l" +TOKEN(THEN) + YY_BREAK +case 144: +YY_RULE_SETUP +#line 204 "flex_lexer.l" +TOKEN(TIME) + YY_BREAK +case 145: +YY_RULE_SETUP +#line 205 "flex_lexer.l" +TOKEN(TIMESTAMP) + YY_BREAK +case 146: +YY_RULE_SETUP +#line 206 "flex_lexer.l" +TOKEN(TO) + YY_BREAK +case 147: +YY_RULE_SETUP +#line 207 "flex_lexer.l" +TOKEN(TOP) + YY_BREAK +case 148: +YY_RULE_SETUP +#line 208 "flex_lexer.l" +TOKEN(TRANSACTION) + YY_BREAK +case 149: +YY_RULE_SETUP +#line 209 "flex_lexer.l" +TOKEN(TRUE) + YY_BREAK +case 150: +YY_RULE_SETUP +#line 210 "flex_lexer.l" +TOKEN(TRUNCATE) + YY_BREAK +case 151: +YY_RULE_SETUP +#line 211 "flex_lexer.l" +TOKEN(UNBOUNDED) + YY_BREAK +case 152: +YY_RULE_SETUP +#line 212 "flex_lexer.l" +TOKEN(UNION) + YY_BREAK +case 153: +YY_RULE_SETUP +#line 213 "flex_lexer.l" +TOKEN(UNIQUE) + YY_BREAK +case 154: +YY_RULE_SETUP +#line 214 "flex_lexer.l" +TOKEN(UNLOAD) + YY_BREAK +case 155: +YY_RULE_SETUP +#line 215 "flex_lexer.l" +TOKEN(UPDATE) + YY_BREAK +case 156: +YY_RULE_SETUP +#line 216 "flex_lexer.l" +TOKEN(USING) + YY_BREAK +case 157: +YY_RULE_SETUP +#line 217 "flex_lexer.l" +TOKEN(VALUES) + YY_BREAK +case 158: +YY_RULE_SETUP +#line 218 "flex_lexer.l" +TOKEN(VARCHAR) + YY_BREAK +case 159: +YY_RULE_SETUP +#line 219 "flex_lexer.l" +TOKEN(VIEW) + YY_BREAK +case 160: +YY_RULE_SETUP +#line 220 "flex_lexer.l" +TOKEN(VIRTUAL) + YY_BREAK +case 161: +YY_RULE_SETUP +#line 221 "flex_lexer.l" +TOKEN(WHEN) + YY_BREAK +case 162: +YY_RULE_SETUP +#line 222 "flex_lexer.l" +TOKEN(WHERE) + YY_BREAK +case 163: +YY_RULE_SETUP +#line 223 "flex_lexer.l" +TOKEN(WITH) + YY_BREAK +case 164: +YY_RULE_SETUP +#line 224 "flex_lexer.l" +TOKEN(YEAR) + YY_BREAK +case 165: +YY_RULE_SETUP +#line 225 "flex_lexer.l" +TOKEN(YEARS) + YY_BREAK +case 166: +/* rule 166 can match eol */ +YY_RULE_SETUP +#line 227 "flex_lexer.l" +TOKEN(CURRENT_ROW) + YY_BREAK +case 167: +/* rule 167 can match eol */ +YY_RULE_SETUP +#line 228 "flex_lexer.l" +TOKEN(CHARACTER_VARYING) + YY_BREAK +/* Allow =/== see https://sqlite.org/lang_expr.html#collateop */ +case 168: +YY_RULE_SETUP +#line 231 "flex_lexer.l" +TOKEN(EQUALS) + YY_BREAK +case 169: +YY_RULE_SETUP +#line 232 "flex_lexer.l" +TOKEN(NOTEQUALS) + YY_BREAK +case 170: +YY_RULE_SETUP +#line 233 "flex_lexer.l" +TOKEN(NOTEQUALS) + YY_BREAK +case 171: +YY_RULE_SETUP +#line 234 "flex_lexer.l" +TOKEN(LESSEQ) + YY_BREAK +case 172: +YY_RULE_SETUP +#line 235 "flex_lexer.l" +TOKEN(GREATEREQ) + YY_BREAK +case 173: +YY_RULE_SETUP +#line 236 "flex_lexer.l" +TOKEN(CONCAT) + YY_BREAK +case 174: +YY_RULE_SETUP +#line 238 "flex_lexer.l" +{ return yytext[0]; } + YY_BREAK +case 175: +#line 241 "flex_lexer.l" +case 176: +YY_RULE_SETUP +#line 241 "flex_lexer.l" +{ + yylval->fval = atof(yytext); + return SQL_FLOATVAL; +} + YY_BREAK +/* + * Regularly, negative literals are treated as . This does not work for LLONG_MIN, as it has no + * positive equivalent. We thus match for LLONG_MIN specifically. This is not an issue for floats, where + * numeric_limits::lowest() == -numeric_limits::max(); + */ +case 177: +YY_RULE_SETUP +#line 251 "flex_lexer.l" +{ + yylval->ival = LLONG_MIN; + return SQL_INTVAL; +} + YY_BREAK +case 178: +YY_RULE_SETUP +#line 256 "flex_lexer.l" +{ + errno = 0; + yylval->ival = strtoll(yytext, nullptr, 0); + if (errno) { + return fprintf(stderr, "[SQL-Lexer-Error] Integer cannot be parsed - is it out of range?"); + return 0; + } + return SQL_INTVAL; +} + YY_BREAK +case 179: +YY_RULE_SETUP +#line 266 "flex_lexer.l" +{ + // Crop the leading and trailing quote char + yylval->sval = hsql::substr(yytext, 1, strlen(yytext)-1); + return SQL_IDENTIFIER; +} + YY_BREAK +case 180: +YY_RULE_SETUP +#line 272 "flex_lexer.l" +{ + yylval->sval = strdup(yytext); + return SQL_IDENTIFIER; +} + YY_BREAK +case 181: +YY_RULE_SETUP +#line 277 "flex_lexer.l" +{ BEGIN singlequotedstring; strbuf.clear(); strbuf.str(""); } // Clear strbuf manually, see #170 + YY_BREAK +case 182: +YY_RULE_SETUP +#line 278 "flex_lexer.l" +{ strbuf << '\''; } + YY_BREAK +case 183: +/* rule 183 can match eol */ +YY_RULE_SETUP +#line 279 "flex_lexer.l" +{ strbuf << yytext; } + YY_BREAK +case 184: +YY_RULE_SETUP +#line 280 "flex_lexer.l" +{ BEGIN 0; yylval->sval = strdup(strbuf.str().c_str()); return SQL_STRING; } + YY_BREAK +case YY_STATE_EOF(singlequotedstring): +#line 281 "flex_lexer.l" +{ fprintf(stderr, "[SQL-Lexer-Error] Unterminated string\n"); return 0; } + YY_BREAK +case 185: +YY_RULE_SETUP +#line 283 "flex_lexer.l" +{ fprintf(stderr, "[SQL-Lexer-Error] Unknown Character: %c\n", yytext[0]); return 0; } + YY_BREAK +case 186: +YY_RULE_SETUP +#line 285 "flex_lexer.l" +ECHO; + YY_BREAK +#line 4381 "flex_lexer.cpp" +case YY_STATE_EOF(INITIAL): +case YY_STATE_EOF(COMMENT): + yyterminate(); + + case YY_END_OF_BUFFER: + { + /* Amount of text matched not including the EOB char. */ + int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1; + + /* Undo the effects of YY_DO_BEFORE_ACTION. */ + *yy_cp = yyg->yy_hold_char; + YY_RESTORE_YY_MORE_OFFSET + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) + { + /* We're scanning a new file or input source. It's + * possible that this happened because the user + * just pointed yyin at a new source and called + * yylex(). If so, then we have to assure + * consistency between YY_CURRENT_BUFFER and our + * globals. Here is the right place to do so, because + * this is the first action (other than possibly a + * back-up) that will match for the new input source. + */ + yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; + } + + /* Note that here we test for yy_c_buf_p "<=" to the position + * of the first EOB in the buffer, since yy_c_buf_p will + * already have been incremented past the NUL character + * (since all states make transitions on EOB to the + * end-of-buffer state). Contrast this with the test + * in input(). + */ + if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) + { /* This was really a NUL. */ + yy_state_type yy_next_state; + + yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( yyscanner ); + + /* Okay, we're now positioned to make the NUL + * transition. We couldn't have + * yy_get_previous_state() go ahead and do it + * for us because it doesn't know how to deal + * with the possibility of jamming (and we don't + * want to build jamming into it because then it + * will run more slowly). + */ + + yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner); + + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + + if ( yy_next_state ) + { + /* Consume the NUL. */ + yy_cp = ++yyg->yy_c_buf_p; + yy_current_state = yy_next_state; + goto yy_match; + } + + else + { + yy_cp = yyg->yy_last_accepting_cpos; + yy_current_state = yyg->yy_last_accepting_state; + goto yy_find_action; + } + } + + else switch ( yy_get_next_buffer( yyscanner ) ) + { + case EOB_ACT_END_OF_FILE: + { + yyg->yy_did_buffer_switch_on_eof = 0; + + if ( yywrap( yyscanner ) ) + { + /* Note: because we've taken care in + * yy_get_next_buffer() to have set up + * yytext, we can now set up + * yy_c_buf_p so that if some total + * hoser (like flex itself) wants to + * call the scanner after we return the + * YY_NULL, it'll still work - another + * YY_NULL will get returned. + */ + yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ; + + yy_act = YY_STATE_EOF(YY_START); + goto do_action; + } + + else + { + if ( ! yyg->yy_did_buffer_switch_on_eof ) + YY_NEW_FILE; + } + break; + } + + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = + yyg->yytext_ptr + yy_amount_of_matched_text; + + yy_current_state = yy_get_previous_state( yyscanner ); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_match; + + case EOB_ACT_LAST_MATCH: + yyg->yy_c_buf_p = + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars]; + + yy_current_state = yy_get_previous_state( yyscanner ); + + yy_cp = yyg->yy_c_buf_p; + yy_bp = yyg->yytext_ptr + YY_MORE_ADJ; + goto yy_find_action; + } + break; + } + + default: + YY_FATAL_ERROR( + "fatal flex scanner internal error--no action found" ); + } /* end of action switch */ + } /* end of scanning one token */ + } /* end of user's declarations */ +} /* end of yylex */ + +/* yy_get_next_buffer - try to read in a new buffer + * + * Returns a code representing an action: + * EOB_ACT_LAST_MATCH - + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position + * EOB_ACT_END_OF_FILE - end of file + */ +static int yy_get_next_buffer (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = yyg->yytext_ptr; + int number_to_move, i; + int ret_val; + + if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] ) + YY_FATAL_ERROR( + "fatal flex scanner internal error--end of buffer missed" ); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) + { /* Don't try to fill the buffer, so this is an EOF. */ + if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 ) + { + /* We matched a single character, the EOB, so + * treat this as a final EOF. + */ + return EOB_ACT_END_OF_FILE; + } + + else + { + /* We matched some text prior to the EOB, first + * process it. + */ + return EOB_ACT_LAST_MATCH; + } + } + + /* Try to read more data. */ + + /* First move last chars to start of buffer. */ + number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr - 1); + + for ( i = 0; i < number_to_move; ++i ) + *(dest++) = *(source++); + + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) + /* don't do the read, it's not guaranteed to return an EOF, + * just force an EOF + */ + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0; + + else + { + int num_to_read = + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; + + while ( num_to_read <= 0 ) + { /* Not enough room in the buffer - grow it. */ + + /* just a shorter name for the current buffer */ + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; + + int yy_c_buf_p_offset = + (int) (yyg->yy_c_buf_p - b->yy_ch_buf); + + if ( b->yy_is_our_buffer ) + { + int new_size = b->yy_buf_size * 2; + + if ( new_size <= 0 ) + b->yy_buf_size += b->yy_buf_size / 8; + else + b->yy_buf_size *= 2; + + b->yy_ch_buf = (char *) + /* Include room in for 2 EOB chars. */ + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) , yyscanner ); + } + else + /* Can't grow it, we don't own it. */ + b->yy_ch_buf = NULL; + + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( + "fatal error - scanner input buffer overflow" ); + + yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; + + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - + number_to_move - 1; + + } + + if ( num_to_read > YY_READ_BUF_SIZE ) + num_to_read = YY_READ_BUF_SIZE; + + /* Read in more data. */ + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), + yyg->yy_n_chars, num_to_read ); + + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + if ( yyg->yy_n_chars == 0 ) + { + if ( number_to_move == YY_MORE_ADJ ) + { + ret_val = EOB_ACT_END_OF_FILE; + yyrestart( yyin , yyscanner); + } + + else + { + ret_val = EOB_ACT_LAST_MATCH; + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = + YY_BUFFER_EOF_PENDING; + } + } + + else + ret_val = EOB_ACT_CONTINUE_SCAN; + + if ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + /* Extend the array by 50%, plus the number we really need. */ + int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size , yyscanner ); + if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); + } + + yyg->yy_n_chars += number_to_move; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR; + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; + + yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; + + return ret_val; +} + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + + static yy_state_type yy_get_previous_state (yyscan_t yyscanner) +{ + yy_state_type yy_current_state; + char *yy_cp; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + yy_current_state = yyg->yy_start; + + for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp ) + { + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + if ( yy_accept[yy_current_state] ) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 1332 ) + yy_c = yy_meta[yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + } + + return yy_current_state; +} + +/* yy_try_NUL_trans - try to make a transition on the NUL character + * + * synopsis + * next_state = yy_try_NUL_trans( current_state ); + */ + static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner) +{ + int yy_is_jam; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */ + char *yy_cp = yyg->yy_c_buf_p; + + YY_CHAR yy_c = 1; + if ( yy_accept[yy_current_state] ) + { + yyg->yy_last_accepting_state = yy_current_state; + yyg->yy_last_accepting_cpos = yy_cp; + } + while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) + { + yy_current_state = (int) yy_def[yy_current_state]; + if ( yy_current_state >= 1332 ) + yy_c = yy_meta[yy_c]; + } + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + yy_is_jam = (yy_current_state == 1331); + + (void)yyg; + return yy_is_jam ? 0 : yy_current_state; +} + +#ifndef YY_NO_UNPUT + +#endif + +#ifndef YY_NO_INPUT +#ifdef __cplusplus + static int yyinput (yyscan_t yyscanner) +#else + static int input (yyscan_t yyscanner) +#endif + +{ + int c; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + *yyg->yy_c_buf_p = yyg->yy_hold_char; + + if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) + { + /* yy_c_buf_p now points to the character we want to return. + * If this occurs *before* the EOB characters, then it's a + * valid NUL; if not, then we've hit the end of the buffer. + */ + if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) + /* This was really a NUL. */ + *yyg->yy_c_buf_p = '\0'; + + else + { /* need more input */ + int offset = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr); + ++yyg->yy_c_buf_p; + + switch ( yy_get_next_buffer( yyscanner ) ) + { + case EOB_ACT_LAST_MATCH: + /* This happens because yy_g_n_b() + * sees that we've accumulated a + * token and flags that we need to + * try matching the token before + * proceeding. But for input(), + * there's no matching to consider. + * So convert the EOB_ACT_LAST_MATCH + * to EOB_ACT_END_OF_FILE. + */ + + /* Reset buffer status. */ + yyrestart( yyin , yyscanner); + + /*FALLTHROUGH*/ + + case EOB_ACT_END_OF_FILE: + { + if ( yywrap( yyscanner ) ) + return 0; + + if ( ! yyg->yy_did_buffer_switch_on_eof ) + YY_NEW_FILE; +#ifdef __cplusplus + return yyinput(yyscanner); +#else + return input(yyscanner); +#endif + } + + case EOB_ACT_CONTINUE_SCAN: + yyg->yy_c_buf_p = yyg->yytext_ptr + offset; + break; + } + } + } + + c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ + *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ + yyg->yy_hold_char = *++yyg->yy_c_buf_p; + + return c; +} +#endif /* ifndef YY_NO_INPUT */ + +/** Immediately switch to a different input stream. + * @param input_file A readable stream. + * @param yyscanner The scanner object. + * @note This function does not reset the start condition to @c INITIAL . + */ + void yyrestart (FILE * input_file , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if ( ! YY_CURRENT_BUFFER ){ + yyensure_buffer_stack (yyscanner); + YY_CURRENT_BUFFER_LVALUE = + yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); + } + + yy_init_buffer( YY_CURRENT_BUFFER, input_file , yyscanner); + yy_load_buffer_state( yyscanner ); +} + +/** Switch to a different input buffer. + * @param new_buffer The new input buffer. + * @param yyscanner The scanner object. + */ + void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* TODO. We should be able to replace this entire function body + * with + * yypop_buffer_state(); + * yypush_buffer_state(new_buffer); + */ + yyensure_buffer_stack (yyscanner); + if ( YY_CURRENT_BUFFER == new_buffer ) + return; + + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + YY_CURRENT_BUFFER_LVALUE = new_buffer; + yy_load_buffer_state( yyscanner ); + + /* We don't actually know whether we did this switch during + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe + * to go ahead and always set it. + */ + yyg->yy_did_buffer_switch_on_eof = 1; +} + +static void yy_load_buffer_state (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; + yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyg->yy_hold_char = *yyg->yy_c_buf_p; +} + +/** Allocate and initialize an input buffer state. + * @param file A readable stream. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. + * @param yyscanner The scanner object. + * @return the allocated buffer state. + */ + YY_BUFFER_STATE yy_create_buffer (FILE * file, int size , yyscan_t yyscanner) +{ + YY_BUFFER_STATE b; + + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_buf_size = size; + + /* yy_ch_buf has to be 2 characters longer than the size given because + * we need to put in 2 end-of-buffer characters. + */ + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) , yyscanner ); + if ( ! b->yy_ch_buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); + + b->yy_is_our_buffer = 1; + + yy_init_buffer( b, file , yyscanner); + + return b; +} + +/** Destroy the buffer. + * @param b a buffer created with yy_create_buffer() + * @param yyscanner The scanner object. + */ + void yy_delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if ( ! b ) + return; + + if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; + + if ( b->yy_is_our_buffer ) + yyfree( (void *) b->yy_ch_buf , yyscanner ); + + yyfree( (void *) b , yyscanner ); +} + +/* Initializes or reinitializes a buffer. + * This function is sometimes called more than once on the same buffer, + * such as during a yyrestart() or at EOF. + */ + static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner) + +{ + int oerrno = errno; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + yy_flush_buffer( b , yyscanner); + + b->yy_input_file = file; + b->yy_fill_buffer = 1; + + /* If b is the current buffer, then yy_init_buffer was _probably_ + * called from yyrestart() or through yy_get_next_buffer. + * In that case, we don't want to reset the lineno or column. + */ + if (b != YY_CURRENT_BUFFER){ + b->yy_bs_lineno = 1; + b->yy_bs_column = 0; + } + + b->yy_is_interactive = 0; + + errno = oerrno; +} + +/** Discard all buffered characters. On the next scan, YY_INPUT will be called. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. + * @param yyscanner The scanner object. + */ + void yy_flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + if ( ! b ) + return; + + b->yy_n_chars = 0; + + /* We always need two end-of-buffer characters. The first causes + * a transition to the end-of-buffer state. The second causes + * a jam in that state. + */ + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; + + b->yy_buf_pos = &b->yy_ch_buf[0]; + + b->yy_at_bol = 1; + b->yy_buffer_status = YY_BUFFER_NEW; + + if ( b == YY_CURRENT_BUFFER ) + yy_load_buffer_state( yyscanner ); +} + +/** Pushes the new state onto the stack. The new state becomes + * the current state. This function will allocate the stack + * if necessary. + * @param new_buffer The new state. + * @param yyscanner The scanner object. + */ +void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + if (new_buffer == NULL) + return; + + yyensure_buffer_stack(yyscanner); + + /* This block is copied from yy_switch_to_buffer. */ + if ( YY_CURRENT_BUFFER ) + { + /* Flush out information for old buffer. */ + *yyg->yy_c_buf_p = yyg->yy_hold_char; + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; + } + + /* Only push if top exists. Otherwise, replace top. */ + if (YY_CURRENT_BUFFER) + yyg->yy_buffer_stack_top++; + YY_CURRENT_BUFFER_LVALUE = new_buffer; + + /* copied from yy_switch_to_buffer. */ + yy_load_buffer_state( yyscanner ); + yyg->yy_did_buffer_switch_on_eof = 1; +} + +/** Removes and deletes the top of the stack, if present. + * The next element becomes the new top. + * @param yyscanner The scanner object. + */ +void yypop_buffer_state (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + if (!YY_CURRENT_BUFFER) + return; + + yy_delete_buffer(YY_CURRENT_BUFFER , yyscanner); + YY_CURRENT_BUFFER_LVALUE = NULL; + if (yyg->yy_buffer_stack_top > 0) + --yyg->yy_buffer_stack_top; + + if (YY_CURRENT_BUFFER) { + yy_load_buffer_state( yyscanner ); + yyg->yy_did_buffer_switch_on_eof = 1; + } +} + +/* Allocates the stack if it does not exist. + * Guarantees space for at least one push. + */ +static void yyensure_buffer_stack (yyscan_t yyscanner) +{ + yy_size_t num_to_alloc; + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if (!yyg->yy_buffer_stack) { + + /* First allocation is just for 2 elements, since we don't know if this + * scanner will even need a stack. We use 2 instead of 1 to avoid an + * immediate realloc on the next call. + */ + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc + (num_to_alloc * sizeof(struct yy_buffer_state*) + , yyscanner); + if ( ! yyg->yy_buffer_stack ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*)); + + yyg->yy_buffer_stack_max = num_to_alloc; + yyg->yy_buffer_stack_top = 0; + return; + } + + if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){ + + /* Increase the buffer to prepare for a possible push. */ + yy_size_t grow_size = 8 /* arbitrary grow size */; + + num_to_alloc = yyg->yy_buffer_stack_max + grow_size; + yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc + (yyg->yy_buffer_stack, + num_to_alloc * sizeof(struct yy_buffer_state*) + , yyscanner); + if ( ! yyg->yy_buffer_stack ) + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + + /* zero only the new slots.*/ + memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*)); + yyg->yy_buffer_stack_max = num_to_alloc; + } +} + +/** Setup the input buffer state to scan directly from a user-specified character buffer. + * @param base the character buffer + * @param size the size in bytes of the character buffer + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner) +{ + YY_BUFFER_STATE b; + + if ( size < 2 || + base[size-2] != YY_END_OF_BUFFER_CHAR || + base[size-1] != YY_END_OF_BUFFER_CHAR ) + /* They forgot to leave room for the EOB's. */ + return NULL; + + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner ); + if ( ! b ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); + + b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ + b->yy_buf_pos = b->yy_ch_buf = base; + b->yy_is_our_buffer = 0; + b->yy_input_file = NULL; + b->yy_n_chars = b->yy_buf_size; + b->yy_is_interactive = 0; + b->yy_at_bol = 1; + b->yy_fill_buffer = 0; + b->yy_buffer_status = YY_BUFFER_NEW; + + yy_switch_to_buffer( b , yyscanner ); + + return b; +} + +/** Setup the input buffer state to scan a string. The next call to yylex() will + * scan from a @e copy of @a str. + * @param yystr a NUL-terminated string to scan + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. + * @note If you want to scan bytes that may contain NUL values, then use + * yy_scan_bytes() instead. + */ +YY_BUFFER_STATE yy_scan_string (const char * yystr , yyscan_t yyscanner) +{ + + return yy_scan_bytes( yystr, (int) strlen(yystr) , yyscanner); +} + +/** Setup the input buffer state to scan the given bytes. The next call to yylex() will + * scan from a @e copy of @a bytes. + * @param yybytes the byte buffer to scan + * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. + * @param yyscanner The scanner object. + * @return the newly allocated buffer state object. + */ +YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len , yyscan_t yyscanner) +{ + YY_BUFFER_STATE b; + char *buf; + yy_size_t n; + int i; + + /* Get memory for full buffer, including space for trailing EOB's. */ + n = (yy_size_t) (_yybytes_len + 2); + buf = (char *) yyalloc( n , yyscanner ); + if ( ! buf ) + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); + + for ( i = 0; i < _yybytes_len; ++i ) + buf[i] = yybytes[i]; + + buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; + + b = yy_scan_buffer( buf, n , yyscanner); + if ( ! b ) + YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); + + /* It's okay to grow etc. this buffer, and we should throw it + * away when we're done. + */ + b->yy_is_our_buffer = 1; + + return b; +} + +#ifndef YY_EXIT_FAILURE +#define YY_EXIT_FAILURE 2 +#endif + +static void yynoreturn yy_fatal_error (const char* msg , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + (void)yyg; + fprintf( stderr, "%s\n", msg ); + exit( YY_EXIT_FAILURE ); +} + +/* Redefine yyless() so it works in section 3 code. */ + +#undef yyless +#define yyless(n) \ + do \ + { \ + /* Undo effects of setting up yytext. */ \ + int yyless_macro_arg = (n); \ + YY_LESS_LINENO(yyless_macro_arg);\ + yytext[yyleng] = yyg->yy_hold_char; \ + yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ + yyg->yy_hold_char = *yyg->yy_c_buf_p; \ + *yyg->yy_c_buf_p = '\0'; \ + yyleng = yyless_macro_arg; \ + } \ + while ( 0 ) + +/* Accessor methods (get/set functions) to struct members. */ + +/** Get the user-defined data for this scanner. + * @param yyscanner The scanner object. + */ +YY_EXTRA_TYPE yyget_extra (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyextra; +} + +/** Get the current line number. + * @param yyscanner The scanner object. + */ +int yyget_lineno (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if (! YY_CURRENT_BUFFER) + return 0; + + return yylineno; +} + +/** Get the current column number. + * @param yyscanner The scanner object. + */ +int yyget_column (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + if (! YY_CURRENT_BUFFER) + return 0; + + return yycolumn; +} + +/** Get the input stream. + * @param yyscanner The scanner object. + */ +FILE *yyget_in (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyin; +} + +/** Get the output stream. + * @param yyscanner The scanner object. + */ +FILE *yyget_out (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyout; +} + +/** Get the length of the current token. + * @param yyscanner The scanner object. + */ +int yyget_leng (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yyleng; +} + +/** Get the current token. + * @param yyscanner The scanner object. + */ + +char *yyget_text (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yytext; +} + +/** Set the user-defined data. This data is never touched by the scanner. + * @param user_defined The data to be associated with this scanner. + * @param yyscanner The scanner object. + */ +void yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyextra = user_defined ; +} + +/** Set the current line number. + * @param _line_number line number + * @param yyscanner The scanner object. + */ +void yyset_lineno (int _line_number , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* lineno is only valid if an input buffer exists. */ + if (! YY_CURRENT_BUFFER ) + YY_FATAL_ERROR( "yyset_lineno called with no buffer" ); + + yylineno = _line_number; +} + +/** Set the current column. + * @param _column_no column number + * @param yyscanner The scanner object. + */ +void yyset_column (int _column_no , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* column is only valid if an input buffer exists. */ + if (! YY_CURRENT_BUFFER ) + YY_FATAL_ERROR( "yyset_column called with no buffer" ); + + yycolumn = _column_no; +} + +/** Set the input stream. This does not discard the current + * input buffer. + * @param _in_str A readable stream. + * @param yyscanner The scanner object. + * @see yy_switch_to_buffer + */ +void yyset_in (FILE * _in_str , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyin = _in_str ; +} + +void yyset_out (FILE * _out_str , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yyout = _out_str ; +} + +int yyget_debug (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yy_flex_debug; +} + +void yyset_debug (int _bdebug , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yy_flex_debug = _bdebug ; +} + +/* Accessor methods for yylval and yylloc */ + +YYSTYPE * yyget_lval (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yylval; +} + +void yyset_lval (YYSTYPE * yylval_param , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yylval = yylval_param; +} + +YYLTYPE *yyget_lloc (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + return yylloc; +} + +void yyset_lloc (YYLTYPE * yylloc_param , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + yylloc = yylloc_param; +} + +/* User-visible API */ + +/* yylex_init is special because it creates the scanner itself, so it is + * the ONLY reentrant function that doesn't take the scanner as the last argument. + * That's why we explicitly handle the declaration, instead of using our macros. + */ +int yylex_init(yyscan_t* ptr_yy_globals) +{ + if (ptr_yy_globals == NULL){ + errno = EINVAL; + return 1; + } + + *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL ); + + if (*ptr_yy_globals == NULL){ + errno = ENOMEM; + return 1; + } + + /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */ + memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); + + return yy_init_globals ( *ptr_yy_globals ); +} + +/* yylex_init_extra has the same functionality as yylex_init, but follows the + * convention of taking the scanner as the last argument. Note however, that + * this is a *pointer* to a scanner, as it will be allocated by this call (and + * is the reason, too, why this function also must handle its own declaration). + * The user defined value in the first argument will be available to yyalloc in + * the yyextra field. + */ +int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals ) +{ + struct yyguts_t dummy_yyguts; + + yyset_extra (yy_user_defined, &dummy_yyguts); + + if (ptr_yy_globals == NULL){ + errno = EINVAL; + return 1; + } + + *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts ); + + if (*ptr_yy_globals == NULL){ + errno = ENOMEM; + return 1; + } + + /* By setting to 0xAA, we expose bugs in + yy_init_globals. Leave at 0x00 for releases. */ + memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t)); + + yyset_extra (yy_user_defined, *ptr_yy_globals); + + return yy_init_globals ( *ptr_yy_globals ); +} + +static int yy_init_globals (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + /* Initialization is the same as for the non-reentrant scanner. + * This function is called from yylex_destroy(), so don't allocate here. + */ + + yyg->yy_buffer_stack = NULL; + yyg->yy_buffer_stack_top = 0; + yyg->yy_buffer_stack_max = 0; + yyg->yy_c_buf_p = NULL; + yyg->yy_init = 0; + yyg->yy_start = 0; + + yyg->yy_start_stack_ptr = 0; + yyg->yy_start_stack_depth = 0; + yyg->yy_start_stack = NULL; + +/* Defined in main.c */ +#ifdef YY_STDINIT + yyin = stdin; + yyout = stdout; +#else + yyin = NULL; + yyout = NULL; +#endif + + /* For future reference: Set errno on error, since we are called by + * yylex_init() + */ + return 0; +} + +/* yylex_destroy is for both reentrant and non-reentrant scanners. */ +int yylex_destroy (yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + + /* Pop the buffer stack, destroying each element. */ + while(YY_CURRENT_BUFFER){ + yy_delete_buffer( YY_CURRENT_BUFFER , yyscanner ); + YY_CURRENT_BUFFER_LVALUE = NULL; + yypop_buffer_state(yyscanner); + } + + /* Destroy the stack itself. */ + yyfree(yyg->yy_buffer_stack , yyscanner); + yyg->yy_buffer_stack = NULL; + + /* Destroy the start condition stack. */ + yyfree( yyg->yy_start_stack , yyscanner ); + yyg->yy_start_stack = NULL; + + /* Reset the globals. This is important in a non-reentrant scanner so the next time + * yylex() is called, initialization will occur. */ + yy_init_globals( yyscanner); + + /* Destroy the main struct (reentrant only). */ + yyfree ( yyscanner , yyscanner ); + yyscanner = NULL; + return 0; +} + +/* + * Internal utility routines. + */ + +#ifndef yytext_ptr +static void yy_flex_strncpy (char* s1, const char * s2, int n , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + (void)yyg; + + int i; + for ( i = 0; i < n; ++i ) + s1[i] = s2[i]; +} +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen (const char * s , yyscan_t yyscanner) +{ + int n; + for ( n = 0; s[n]; ++n ) + ; + + return n; +} +#endif + +void *yyalloc (yy_size_t size , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + (void)yyg; + return malloc(size); +} + +void *yyrealloc (void * ptr, yy_size_t size , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + (void)yyg; + + /* The cast to (char *) in the following accommodates both + * implementations that use char* generic pointers, and those + * that use void* generic pointers. It works with the latter + * because both ANSI C and C++ allow castless assignment from + * any pointer type to void*, and deal with argument conversions + * as though doing an assignment. + */ + return realloc(ptr, size); +} + +void yyfree (void * ptr , yyscan_t yyscanner) +{ + struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; + (void)yyg; + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ +} + +#define YYTABLES_NAME "yytables" + +#line 285 "flex_lexer.l" + +/*************************** + ** Section 3: User code + ***************************/ + +int yyerror(const char *msg) { + fprintf(stderr, "[SQL-Lexer-Error] %s\n",msg); return 0; +} + +#if defined(_WIN32) || defined(_WIN64) +#pragma warning(default : 4996) +#pragma warning(default : 4267) +#endif diff --git a/Data/src/sql-parser/src/parser/flex_lexer.h b/Data/src/sql-parser/src/parser/flex_lexer.h new file mode 100644 index 000000000..e33f7b06f --- /dev/null +++ b/Data/src/sql-parser/src/parser/flex_lexer.h @@ -0,0 +1,742 @@ +#ifndef hsql_HEADER_H +#define hsql_HEADER_H 1 +#define hsql_IN_HEADER 1 + +#line 5 "flex_lexer.h" + +#line 7 "flex_lexer.h" + +#define YY_INT_ALIGNED short int + +/* A lexical scanner generated by flex */ + +#define FLEX_SCANNER +#define YY_FLEX_MAJOR_VERSION 2 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 +#if YY_FLEX_SUBMINOR_VERSION > 0 +#define FLEX_BETA +#endif + +#ifdef yy_create_buffer +#define hsql__create_buffer_ALREADY_DEFINED +#else +#define yy_create_buffer hsql__create_buffer +#endif + +#ifdef yy_delete_buffer +#define hsql__delete_buffer_ALREADY_DEFINED +#else +#define yy_delete_buffer hsql__delete_buffer +#endif + +#ifdef yy_scan_buffer +#define hsql__scan_buffer_ALREADY_DEFINED +#else +#define yy_scan_buffer hsql__scan_buffer +#endif + +#ifdef yy_scan_string +#define hsql__scan_string_ALREADY_DEFINED +#else +#define yy_scan_string hsql__scan_string +#endif + +#ifdef yy_scan_bytes +#define hsql__scan_bytes_ALREADY_DEFINED +#else +#define yy_scan_bytes hsql__scan_bytes +#endif + +#ifdef yy_init_buffer +#define hsql__init_buffer_ALREADY_DEFINED +#else +#define yy_init_buffer hsql__init_buffer +#endif + +#ifdef yy_flush_buffer +#define hsql__flush_buffer_ALREADY_DEFINED +#else +#define yy_flush_buffer hsql__flush_buffer +#endif + +#ifdef yy_load_buffer_state +#define hsql__load_buffer_state_ALREADY_DEFINED +#else +#define yy_load_buffer_state hsql__load_buffer_state +#endif + +#ifdef yy_switch_to_buffer +#define hsql__switch_to_buffer_ALREADY_DEFINED +#else +#define yy_switch_to_buffer hsql__switch_to_buffer +#endif + +#ifdef yypush_buffer_state +#define hsql_push_buffer_state_ALREADY_DEFINED +#else +#define yypush_buffer_state hsql_push_buffer_state +#endif + +#ifdef yypop_buffer_state +#define hsql_pop_buffer_state_ALREADY_DEFINED +#else +#define yypop_buffer_state hsql_pop_buffer_state +#endif + +#ifdef yyensure_buffer_stack +#define hsql_ensure_buffer_stack_ALREADY_DEFINED +#else +#define yyensure_buffer_stack hsql_ensure_buffer_stack +#endif + +#ifdef yylex +#define hsql_lex_ALREADY_DEFINED +#else +#define yylex hsql_lex +#endif + +#ifdef yyrestart +#define hsql_restart_ALREADY_DEFINED +#else +#define yyrestart hsql_restart +#endif + +#ifdef yylex_init +#define hsql_lex_init_ALREADY_DEFINED +#else +#define yylex_init hsql_lex_init +#endif + +#ifdef yylex_init_extra +#define hsql_lex_init_extra_ALREADY_DEFINED +#else +#define yylex_init_extra hsql_lex_init_extra +#endif + +#ifdef yylex_destroy +#define hsql_lex_destroy_ALREADY_DEFINED +#else +#define yylex_destroy hsql_lex_destroy +#endif + +#ifdef yyget_debug +#define hsql_get_debug_ALREADY_DEFINED +#else +#define yyget_debug hsql_get_debug +#endif + +#ifdef yyset_debug +#define hsql_set_debug_ALREADY_DEFINED +#else +#define yyset_debug hsql_set_debug +#endif + +#ifdef yyget_extra +#define hsql_get_extra_ALREADY_DEFINED +#else +#define yyget_extra hsql_get_extra +#endif + +#ifdef yyset_extra +#define hsql_set_extra_ALREADY_DEFINED +#else +#define yyset_extra hsql_set_extra +#endif + +#ifdef yyget_in +#define hsql_get_in_ALREADY_DEFINED +#else +#define yyget_in hsql_get_in +#endif + +#ifdef yyset_in +#define hsql_set_in_ALREADY_DEFINED +#else +#define yyset_in hsql_set_in +#endif + +#ifdef yyget_out +#define hsql_get_out_ALREADY_DEFINED +#else +#define yyget_out hsql_get_out +#endif + +#ifdef yyset_out +#define hsql_set_out_ALREADY_DEFINED +#else +#define yyset_out hsql_set_out +#endif + +#ifdef yyget_leng +#define hsql_get_leng_ALREADY_DEFINED +#else +#define yyget_leng hsql_get_leng +#endif + +#ifdef yyget_text +#define hsql_get_text_ALREADY_DEFINED +#else +#define yyget_text hsql_get_text +#endif + +#ifdef yyget_lineno +#define hsql_get_lineno_ALREADY_DEFINED +#else +#define yyget_lineno hsql_get_lineno +#endif + +#ifdef yyset_lineno +#define hsql_set_lineno_ALREADY_DEFINED +#else +#define yyset_lineno hsql_set_lineno +#endif + +#ifdef yyget_column +#define hsql_get_column_ALREADY_DEFINED +#else +#define yyget_column hsql_get_column +#endif + +#ifdef yyset_column +#define hsql_set_column_ALREADY_DEFINED +#else +#define yyset_column hsql_set_column +#endif + +#ifdef yywrap +#define hsql_wrap_ALREADY_DEFINED +#else +#define yywrap hsql_wrap +#endif + +#ifdef yyget_lval +#define hsql_get_lval_ALREADY_DEFINED +#else +#define yyget_lval hsql_get_lval +#endif + +#ifdef yyset_lval +#define hsql_set_lval_ALREADY_DEFINED +#else +#define yyset_lval hsql_set_lval +#endif + +#ifdef yyget_lloc +#define hsql_get_lloc_ALREADY_DEFINED +#else +#define yyget_lloc hsql_get_lloc +#endif + +#ifdef yyset_lloc +#define hsql_set_lloc_ALREADY_DEFINED +#else +#define yyset_lloc hsql_set_lloc +#endif + +#ifdef yyalloc +#define hsql_alloc_ALREADY_DEFINED +#else +#define yyalloc hsql_alloc +#endif + +#ifdef yyrealloc +#define hsql_realloc_ALREADY_DEFINED +#else +#define yyrealloc hsql_realloc +#endif + +#ifdef yyfree +#define hsql_free_ALREADY_DEFINED +#else +#define yyfree hsql_free +#endif + +/* First, we deal with platform-specific or compiler-specific issues. */ + +/* begin standard C headers. */ +#include +#include +#include +#include + +/* end standard C headers. */ + +/* flex integer type definitions */ + +#ifndef FLEXINT_H +#define FLEXINT_H + +/* C99 systems have . Non-C99 systems may or may not. */ + +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L + +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, + * if you want the limit (max/min) macros for int types. + */ +#ifndef __STDC_LIMIT_MACROS +#define __STDC_LIMIT_MACROS 1 +#endif + +#include +typedef int8_t flex_int8_t; +typedef uint8_t flex_uint8_t; +typedef int16_t flex_int16_t; +typedef uint16_t flex_uint16_t; +typedef int32_t flex_int32_t; +typedef uint32_t flex_uint32_t; +#else +typedef signed char flex_int8_t; +typedef short int flex_int16_t; +typedef int flex_int32_t; +typedef unsigned char flex_uint8_t; +typedef unsigned short int flex_uint16_t; +typedef unsigned int flex_uint32_t; + +/* Limits of integral types. */ +#ifndef INT8_MIN +#define INT8_MIN (-128) +#endif +#ifndef INT16_MIN +#define INT16_MIN (-32767-1) +#endif +#ifndef INT32_MIN +#define INT32_MIN (-2147483647-1) +#endif +#ifndef INT8_MAX +#define INT8_MAX (127) +#endif +#ifndef INT16_MAX +#define INT16_MAX (32767) +#endif +#ifndef INT32_MAX +#define INT32_MAX (2147483647) +#endif +#ifndef UINT8_MAX +#define UINT8_MAX (255U) +#endif +#ifndef UINT16_MAX +#define UINT16_MAX (65535U) +#endif +#ifndef UINT32_MAX +#define UINT32_MAX (4294967295U) +#endif + +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + +#endif /* ! C99 */ + +#endif /* ! FLEXINT_H */ + +/* begin standard C++ headers. */ + +/* TODO: this is always defined, so inline it */ +#define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) +#else +#define yynoreturn +#endif + +/* An opaque pointer. */ +#ifndef YY_TYPEDEF_YY_SCANNER_T +#define YY_TYPEDEF_YY_SCANNER_T +typedef void* yyscan_t; +#endif + +/* For convenience, these vars (plus the bison vars far below) + are macros in the reentrant scanner. */ +#define yyin yyg->yyin_r +#define yyout yyg->yyout_r +#define yyextra yyg->yyextra_r +#define yyleng yyg->yyleng_r +#define yytext yyg->yytext_r +#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) +#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) +#define yy_flex_debug yyg->yy_flex_debug_r + +/* Size of default input buffer. */ +#ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else +#define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ +#endif + +#ifndef YY_TYPEDEF_YY_BUFFER_STATE +#define YY_TYPEDEF_YY_BUFFER_STATE +typedef struct yy_buffer_state *YY_BUFFER_STATE; +#endif + +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + +#ifndef YY_STRUCT_YY_BUFFER_STATE +#define YY_STRUCT_YY_BUFFER_STATE +struct yy_buffer_state + { + FILE *yy_input_file; + + char *yy_ch_buf; /* input buffer */ + char *yy_buf_pos; /* current position in input buffer */ + + /* Size of input buffer in bytes, not including room for EOB + * characters. + */ + int yy_buf_size; + + /* Number of characters read into yy_ch_buf, not including EOB + * characters. + */ + int yy_n_chars; + + /* Whether we "own" the buffer - i.e., we know we created it, + * and can realloc() it to grow it, and should free() it to + * delete it. + */ + int yy_is_our_buffer; + + /* Whether this is an "interactive" input source; if so, and + * if we're using stdio for input, then we want to use getc() + * instead of fread(), to make sure we stop fetching input after + * each newline. + */ + int yy_is_interactive; + + /* Whether we're considered to be at the beginning of a line. + * If so, '^' rules will be active on the next match, otherwise + * not. + */ + int yy_at_bol; + + int yy_bs_lineno; /**< The line count. */ + int yy_bs_column; /**< The column count. */ + + /* Whether to try to fill the input buffer when we reach the + * end of it. + */ + int yy_fill_buffer; + + int yy_buffer_status; + + }; +#endif /* !YY_STRUCT_YY_BUFFER_STATE */ + +void yyrestart ( FILE *input_file , yyscan_t yyscanner ); +void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner ); +YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size , yyscan_t yyscanner ); +void yy_delete_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner ); +void yy_flush_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner ); +void yypush_buffer_state ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner ); +void yypop_buffer_state ( yyscan_t yyscanner ); + +YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner ); +YY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner ); +YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len , yyscan_t yyscanner ); + +void *yyalloc ( yy_size_t , yyscan_t yyscanner ); +void *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner ); +void yyfree ( void * , yyscan_t yyscanner ); + +/* Begin user sect3 */ + +#define hsql_wrap(yyscanner) (/*CONSTCOND*/1) +#define YY_SKIP_YYWRAP + +#define yytext_ptr yytext_r + +#ifdef YY_HEADER_EXPORT_START_CONDITIONS +#define INITIAL 0 +#define singlequotedstring 1 +#define COMMENT 2 + +#endif + +#ifndef YY_NO_UNISTD_H +/* Special case for "unistd.h", since it is non-ANSI. We include it way + * down here because we want the user's section 1 to have been scanned first. + * The user has a chance to override it with an option. + */ +#if defined(_WIN32) || defined(_WIN64) + #include +#else + #include +#endif +#endif + +#ifndef YY_EXTRA_TYPE +#define YY_EXTRA_TYPE void * +#endif + +int yylex_init (yyscan_t* scanner); + +int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner); + +/* Accessor methods to globals. + These are made visible to non-reentrant scanners for convenience. */ + +int yylex_destroy ( yyscan_t yyscanner ); + +int yyget_debug ( yyscan_t yyscanner ); + +void yyset_debug ( int debug_flag , yyscan_t yyscanner ); + +YY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner ); + +void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner ); + +FILE *yyget_in ( yyscan_t yyscanner ); + +void yyset_in ( FILE * _in_str , yyscan_t yyscanner ); + +FILE *yyget_out ( yyscan_t yyscanner ); + +void yyset_out ( FILE * _out_str , yyscan_t yyscanner ); + + int yyget_leng ( yyscan_t yyscanner ); + +char *yyget_text ( yyscan_t yyscanner ); + +int yyget_lineno ( yyscan_t yyscanner ); + +void yyset_lineno ( int _line_number , yyscan_t yyscanner ); + +int yyget_column ( yyscan_t yyscanner ); + +void yyset_column ( int _column_no , yyscan_t yyscanner ); + +YYSTYPE * yyget_lval ( yyscan_t yyscanner ); + +void yyset_lval ( YYSTYPE * yylval_param , yyscan_t yyscanner ); + + YYLTYPE *yyget_lloc ( yyscan_t yyscanner ); + + void yyset_lloc ( YYLTYPE * yylloc_param , yyscan_t yyscanner ); + +/* Macros after this point can all be overridden by user definitions in + * section 1. + */ + +#ifndef YY_SKIP_YYWRAP +#ifdef __cplusplus +extern "C" int yywrap ( yyscan_t yyscanner ); +#else +extern int yywrap ( yyscan_t yyscanner ); +#endif +#endif + +#ifndef yytext_ptr +static void yy_flex_strncpy ( char *, const char *, int , yyscan_t yyscanner); +#endif + +#ifdef YY_NEED_STRLEN +static int yy_flex_strlen ( const char * , yyscan_t yyscanner); +#endif + +#ifndef YY_NO_INPUT + +#endif + +/* Amount of stuff to slurp up with each read. */ +#ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else +#define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ +#endif + +/* Number of entries by which start-condition stack grows. */ +#ifndef YY_START_STACK_INCR +#define YY_START_STACK_INCR 25 +#endif + +/* Default declaration of generated scanner - a define so the user can + * easily add parameters. + */ +#ifndef YY_DECL +#define YY_DECL_IS_OURS 1 + +extern int yylex \ + (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner); + +#define YY_DECL int yylex \ + (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner) +#endif /* !YY_DECL */ + +/* yy_get_previous_state - get the state just before the EOB char was reached */ + +#undef YY_NEW_FILE +#undef YY_FLUSH_BUFFER +#undef yy_set_bol +#undef yy_new_buffer +#undef yy_set_interactive +#undef YY_DO_BEFORE_ACTION + +#ifdef YY_DECL_IS_OURS +#undef YY_DECL_IS_OURS +#undef YY_DECL +#endif + +#ifndef hsql__create_buffer_ALREADY_DEFINED +#undef yy_create_buffer +#endif +#ifndef hsql__delete_buffer_ALREADY_DEFINED +#undef yy_delete_buffer +#endif +#ifndef hsql__scan_buffer_ALREADY_DEFINED +#undef yy_scan_buffer +#endif +#ifndef hsql__scan_string_ALREADY_DEFINED +#undef yy_scan_string +#endif +#ifndef hsql__scan_bytes_ALREADY_DEFINED +#undef yy_scan_bytes +#endif +#ifndef hsql__init_buffer_ALREADY_DEFINED +#undef yy_init_buffer +#endif +#ifndef hsql__flush_buffer_ALREADY_DEFINED +#undef yy_flush_buffer +#endif +#ifndef hsql__load_buffer_state_ALREADY_DEFINED +#undef yy_load_buffer_state +#endif +#ifndef hsql__switch_to_buffer_ALREADY_DEFINED +#undef yy_switch_to_buffer +#endif +#ifndef hsql_push_buffer_state_ALREADY_DEFINED +#undef yypush_buffer_state +#endif +#ifndef hsql_pop_buffer_state_ALREADY_DEFINED +#undef yypop_buffer_state +#endif +#ifndef hsql_ensure_buffer_stack_ALREADY_DEFINED +#undef yyensure_buffer_stack +#endif +#ifndef hsql_lex_ALREADY_DEFINED +#undef yylex +#endif +#ifndef hsql_restart_ALREADY_DEFINED +#undef yyrestart +#endif +#ifndef hsql_lex_init_ALREADY_DEFINED +#undef yylex_init +#endif +#ifndef hsql_lex_init_extra_ALREADY_DEFINED +#undef yylex_init_extra +#endif +#ifndef hsql_lex_destroy_ALREADY_DEFINED +#undef yylex_destroy +#endif +#ifndef hsql_get_debug_ALREADY_DEFINED +#undef yyget_debug +#endif +#ifndef hsql_set_debug_ALREADY_DEFINED +#undef yyset_debug +#endif +#ifndef hsql_get_extra_ALREADY_DEFINED +#undef yyget_extra +#endif +#ifndef hsql_set_extra_ALREADY_DEFINED +#undef yyset_extra +#endif +#ifndef hsql_get_in_ALREADY_DEFINED +#undef yyget_in +#endif +#ifndef hsql_set_in_ALREADY_DEFINED +#undef yyset_in +#endif +#ifndef hsql_get_out_ALREADY_DEFINED +#undef yyget_out +#endif +#ifndef hsql_set_out_ALREADY_DEFINED +#undef yyset_out +#endif +#ifndef hsql_get_leng_ALREADY_DEFINED +#undef yyget_leng +#endif +#ifndef hsql_get_text_ALREADY_DEFINED +#undef yyget_text +#endif +#ifndef hsql_get_lineno_ALREADY_DEFINED +#undef yyget_lineno +#endif +#ifndef hsql_set_lineno_ALREADY_DEFINED +#undef yyset_lineno +#endif +#ifndef hsql_get_column_ALREADY_DEFINED +#undef yyget_column +#endif +#ifndef hsql_set_column_ALREADY_DEFINED +#undef yyset_column +#endif +#ifndef hsql_wrap_ALREADY_DEFINED +#undef yywrap +#endif +#ifndef hsql_get_lval_ALREADY_DEFINED +#undef yyget_lval +#endif +#ifndef hsql_set_lval_ALREADY_DEFINED +#undef yyset_lval +#endif +#ifndef hsql_get_lloc_ALREADY_DEFINED +#undef yyget_lloc +#endif +#ifndef hsql_set_lloc_ALREADY_DEFINED +#undef yyset_lloc +#endif +#ifndef hsql_alloc_ALREADY_DEFINED +#undef yyalloc +#endif +#ifndef hsql_realloc_ALREADY_DEFINED +#undef yyrealloc +#endif +#ifndef hsql_free_ALREADY_DEFINED +#undef yyfree +#endif +#ifndef hsql_text_ALREADY_DEFINED +#undef yytext +#endif +#ifndef hsql_leng_ALREADY_DEFINED +#undef yyleng +#endif +#ifndef hsql_in_ALREADY_DEFINED +#undef yyin +#endif +#ifndef hsql_out_ALREADY_DEFINED +#undef yyout +#endif +#ifndef hsql__flex_debug_ALREADY_DEFINED +#undef yy_flex_debug +#endif +#ifndef hsql_lineno_ALREADY_DEFINED +#undef yylineno +#endif +#ifndef hsql_tables_fload_ALREADY_DEFINED +#undef yytables_fload +#endif +#ifndef hsql_tables_destroy_ALREADY_DEFINED +#undef yytables_destroy +#endif +#ifndef hsql_TABLES_NAME_ALREADY_DEFINED +#undef yyTABLES_NAME +#endif + +#line 285 "flex_lexer.l" + + +#line 736 "flex_lexer.h" +#undef hsql_IN_HEADER +#endif /* hsql_HEADER_H */ diff --git a/Data/src/sql-parser/src/parser/flex_lexer.l b/Data/src/sql-parser/src/parser/flex_lexer.l new file mode 100644 index 000000000..4e7565955 --- /dev/null +++ b/Data/src/sql-parser/src/parser/flex_lexer.l @@ -0,0 +1,292 @@ +/** + * lexer + * + * + */ + + +/*************************** + ** Section 1: Definitions + ***************************/ +%{ + +#include "../sql/Expr.h" +#include "bison_parser.h" +#include +#include +#include + +#define TOKEN(name) { return SQL_##name; } + +static thread_local std::stringstream strbuf; + +%} +%x singlequotedstring + +/*************************** + ** Section 2: Rules + ***************************/ + +/* Define the output files */ +%option header-file="flex_lexer.h" +%option outfile="flex_lexer.cpp" + +/* Make reentrant */ +%option reentrant +%option bison-bridge + +/* performance tweeks */ +%option never-interactive +%option batch + +/* other flags */ +%option noyywrap +%option nounput +%option warn +%option case-insensitive +%option prefix="hsql_" +%option bison-locations +/* %option nodefault */ + + +%s COMMENT + +/*************************** + ** Section 3: Rules + ***************************/ +%% + +-- BEGIN(COMMENT); +[^\n]* /* skipping comment content until a end of line is read */; +\n BEGIN(INITIAL); + +[ \t\n]+ /* skip whitespace */; + +ADD TOKEN(ADD) +AFTER TOKEN(AFTER) +ALL TOKEN(ALL) +ALTER TOKEN(ALTER) +ANALYZE TOKEN(ANALYZE) +AND TOKEN(AND) +ARRAY TOKEN(ARRAY) +AS TOKEN(AS) +ASC TOKEN(ASC) +BEFORE TOKEN(BEFORE) +BEGIN TOKEN(BEGIN) +BETWEEN TOKEN(BETWEEN) +BIGINT TOKEN(BIGINT) +BOOLEAN TOKEN(BOOLEAN) +BY TOKEN(BY) +CALL TOKEN(CALL) +CASCADE TOKEN(CASCADE) +CASE TOKEN(CASE) +CAST TOKEN(CAST) +CHAR TOKEN(CHAR) +COLUMN TOKEN(COLUMN) +COLUMNS TOKEN(COLUMNS) +COMMIT TOKEN(COMMIT) +CONTROL TOKEN(CONTROL) +COPY TOKEN(COPY) +CREATE TOKEN(CREATE) +CROSS TOKEN(CROSS) +DATE TOKEN(DATE) +DATETIME TOKEN(DATETIME) +DAY TOKEN(DAY) +DAYS TOKEN(DAYS) +DEALLOCATE TOKEN(DEALLOCATE) +DECIMAL TOKEN(DECIMAL) +DEFAULT TOKEN(DEFAULT) +DELETE TOKEN(DELETE) +DELTA TOKEN(DELTA) +DESC TOKEN(DESC) +DESCRIBE TOKEN(DESCRIBE) +DIRECT TOKEN(DIRECT) +DISTINCT TOKEN(DISTINCT) +DOUBLE TOKEN(DOUBLE) +DROP TOKEN(DROP) +ELSE TOKEN(ELSE) +END TOKEN(END) +ESCAPE TOKEN(ESCAPE) +EXCEPT TOKEN(EXCEPT) +EXECUTE TOKEN(EXECUTE) +EXISTS TOKEN(EXISTS) +EXPLAIN TOKEN(EXPLAIN) +EXTRACT TOKEN(EXTRACT) +FALSE TOKEN(FALSE) +FILE TOKEN(FILE) +FLOAT TOKEN(FLOAT) +FOLLOWING TOKEN(FOLLOWING) +FOR TOKEN(FOR) +FORMAT TOKEN(FORMAT) +FROM TOKEN(FROM) +FULL TOKEN(FULL) +GLOBAL TOKEN(GLOBAL) +GROUP TOKEN(GROUP) +GROUPS TOKEN(GROUPS) +HASH TOKEN(HASH) +HAVING TOKEN(HAVING) +HINT TOKEN(HINT) +HOUR TOKEN(HOUR) +HOURS TOKEN(HOURS) +IF TOKEN(IF) +ILIKE TOKEN(ILIKE) +IMPORT TOKEN(IMPORT) +IN TOKEN(IN) +INDEX TOKEN(INDEX) +INNER TOKEN(INNER) +INSERT TOKEN(INSERT) +INT TOKEN(INT) +INTEGER TOKEN(INTEGER) +INTERSECT TOKEN(INTERSECT) +INTERVAL TOKEN(INTERVAL) +INTO TOKEN(INTO) +IS TOKEN(IS) +ISNULL TOKEN(ISNULL) +JOIN TOKEN(JOIN) +KEY TOKEN(KEY) +LEFT TOKEN(LEFT) +LIKE TOKEN(LIKE) +LIMIT TOKEN(LIMIT) +LOAD TOKEN(LOAD) +LOCAL TOKEN(LOCAL) +LOCKED TOKEN(LOCKED) +LONG TOKEN(LONG) +MERGE TOKEN(MERGE) +MINUS TOKEN(MINUS) +MINUTE TOKEN(MINUTE) +MINUTES TOKEN(MINUTES) +MONTH TOKEN(MONTH) +MONTHS TOKEN(MONTHS) +NATURAL TOKEN(NATURAL) +NO TOKEN(NO) +NOT TOKEN(NOT) +NOWAIT TOKEN(NOWAIT) +NULL TOKEN(NULL) +NVARCHAR TOKEN(NVARCHAR) +OF TOKEN(OF) +OFF TOKEN(OFF) +OFFSET TOKEN(OFFSET) +ON TOKEN(ON) +OR TOKEN(OR) +ORDER TOKEN(ORDER) +OUTER TOKEN(OUTER) +OVER TOKEN(OVER) +PARAMETERS TOKEN(PARAMETERS) +PARTITION TOKEN(PARTITION) +PLAN TOKEN(PLAN) +PRECEDING TOKEN(PRECEDING) +PREPARE TOKEN(PREPARE) +PRIMARY TOKEN(PRIMARY) +RANGE TOKEN(RANGE) +REAL TOKEN(REAL) +RENAME TOKEN(RENAME) +RESTRICT TOKEN(RESTRICT) +RIGHT TOKEN(RIGHT) +ROLLBACK TOKEN(ROLLBACK) +ROWS TOKEN(ROWS) +SCHEMA TOKEN(SCHEMA) +SCHEMAS TOKEN(SCHEMAS) +SECOND TOKEN(SECOND) +SECONDS TOKEN(SECONDS) +SELECT TOKEN(SELECT) +SET TOKEN(SET) +SHARE TOKEN(SHARE) +SHOW TOKEN(SHOW) +SKIP TOKEN(SKIP) +SMALLINT TOKEN(SMALLINT) +SORTED TOKEN(SORTED) +SPATIAL TOKEN(SPATIAL) +TABLE TOKEN(TABLE) +TABLES TOKEN(TABLES) +TEMPORARY TOKEN(TEMPORARY) +TEXT TOKEN(TEXT) +THEN TOKEN(THEN) +TIME TOKEN(TIME) +TIMESTAMP TOKEN(TIMESTAMP) +TO TOKEN(TO) +TOP TOKEN(TOP) +TRANSACTION TOKEN(TRANSACTION) +TRUE TOKEN(TRUE) +TRUNCATE TOKEN(TRUNCATE) +UNBOUNDED TOKEN(UNBOUNDED) +UNION TOKEN(UNION) +UNIQUE TOKEN(UNIQUE) +UNLOAD TOKEN(UNLOAD) +UPDATE TOKEN(UPDATE) +USING TOKEN(USING) +VALUES TOKEN(VALUES) +VARCHAR TOKEN(VARCHAR) +VIEW TOKEN(VIEW) +VIRTUAL TOKEN(VIRTUAL) +WHEN TOKEN(WHEN) +WHERE TOKEN(WHERE) +WITH TOKEN(WITH) +YEAR TOKEN(YEAR) +YEARS TOKEN(YEARS) + +CURRENT[ \t\n]+ROW TOKEN(CURRENT_ROW) +CHARACTER[ \t\n]+VARYING TOKEN(CHARACTER_VARYING) + + /* Allow =/== see https://sqlite.org/lang_expr.html#collateop */ +"==" TOKEN(EQUALS) +"!=" TOKEN(NOTEQUALS) +"<>" TOKEN(NOTEQUALS) +"<=" TOKEN(LESSEQ) +">=" TOKEN(GREATEREQ) +"||" TOKEN(CONCAT) + +[-+*/(){},.;<>=^%:?[\]|] { return yytext[0]; } + +[0-9]+"."[0-9]* | +"."[0-9]* { + yylval->fval = atof(yytext); + return SQL_FLOATVAL; +} + + /* + * Regularly, negative literals are treated as . This does not work for LLONG_MIN, as it has no + * positive equivalent. We thus match for LLONG_MIN specifically. This is not an issue for floats, where + * numeric_limits::lowest() == -numeric_limits::max(); + */ +-9223372036854775808 { + yylval->ival = LLONG_MIN; + return SQL_INTVAL; +} + +[0-9]+ { + errno = 0; + yylval->ival = strtoll(yytext, nullptr, 0); + if (errno) { + return fprintf(stderr, "[SQL-Lexer-Error] Integer cannot be parsed - is it out of range?"); + return 0; + } + return SQL_INTVAL; +} + +\"[^\"\n]+\" { + // Crop the leading and trailing quote char + yylval->sval = hsql::substr(yytext, 1, strlen(yytext)-1); + return SQL_IDENTIFIER; +} + +[A-Za-z][A-Za-z0-9_]* { + yylval->sval = strdup(yytext); + return SQL_IDENTIFIER; +} + +\' { BEGIN singlequotedstring; strbuf.clear(); strbuf.str(""); } // Clear strbuf manually, see #170 +\'\' { strbuf << '\''; } +[^']* { strbuf << yytext; } +\' { BEGIN 0; yylval->sval = strdup(strbuf.str().c_str()); return SQL_STRING; } +<> { fprintf(stderr, "[SQL-Lexer-Error] Unterminated string\n"); return 0; } + +. { fprintf(stderr, "[SQL-Lexer-Error] Unknown Character: %c\n", yytext[0]); return 0; } + +%% +/*************************** + ** Section 3: User code + ***************************/ + +int yyerror(const char *msg) { + fprintf(stderr, "[SQL-Lexer-Error] %s\n",msg); return 0; +} diff --git a/Data/src/sql-parser/src/parser/keywordlist_generator.py b/Data/src/sql-parser/src/parser/keywordlist_generator.py new file mode 100644 index 000000000..c4e3fcbf1 --- /dev/null +++ b/Data/src/sql-parser/src/parser/keywordlist_generator.py @@ -0,0 +1,46 @@ +from __future__ import print_function +import math + + +with open("sql_keywords.txt", 'r') as fh: + keywords = [line.strip() for line in fh.readlines() if not line.strip().startswith("//") and len(line.strip()) > 0] + + keywords = sorted(set(keywords)) # Sort by name + keywords = sorted(keywords, key=lambda x: len(x), reverse=True) # Sort by length + + ################# + # Flex + + max_len = len(max(keywords, key=lambda x: len(x))) + 1 + max_len = 4 * int(math.ceil(max_len / 4.0)) + + for keyword in keywords: + len_diff = (max_len) - len(keyword) + num_tabs = int(math.floor(len_diff / 4.0)) + + if len_diff % 4 != 0: num_tabs += 1 + + tabs = ''.join(['\t' for _ in range(num_tabs)]) + print("%s%sTOKEN(%s)" % (keyword, tabs, keyword)) + + # + ################# + + + ################# + # Bison + line = "%token" + max_len = 60 + + print("/* SQL Keywords */") + for keyword in keywords: + + if len(line + " " + keyword) > max_len: + print(line) + line = "%token " + keyword + else: + line = line + " " + keyword + print(line) + + # + ################# diff --git a/Data/src/sql-parser/src/parser/parser_typedef.h b/Data/src/sql-parser/src/parser/parser_typedef.h new file mode 100644 index 000000000..329235b19 --- /dev/null +++ b/Data/src/sql-parser/src/parser/parser_typedef.h @@ -0,0 +1,33 @@ +#ifndef __PARSER_TYPEDEF_H__ +#define __PARSER_TYPEDEF_H__ + +#include + +#ifndef YYtypeDEF_YY_SCANNER_T +#define YYtypeDEF_YY_SCANNER_T +typedef void* yyscan_t; +#endif + +#define YYSTYPE HSQL_STYPE +#define YYLTYPE HSQL_LTYPE + +struct HSQL_CUST_LTYPE { + int first_line; + int first_column; + int last_line; + int last_column; + + int total_column; + + // Length of the string in the SQL query string + int string_length; + + // Parameters. + // int param_id; + std::vector param_list; +}; + +#define HSQL_LTYPE HSQL_CUST_LTYPE +#define HSQL_LTYPE_IS_DECLARED 1 + +#endif \ No newline at end of file diff --git a/Data/src/sql-parser/src/parser/sql_keywords.txt b/Data/src/sql-parser/src/parser/sql_keywords.txt new file mode 100644 index 000000000..ba4bfa19f --- /dev/null +++ b/Data/src/sql-parser/src/parser/sql_keywords.txt @@ -0,0 +1,163 @@ +// Possible source for more tokens https://www.sqlite.org/lang_keywords.html + +////////////////////////// +// Select Statement +SELECT +TOP +FROM +WHERE +GROUP +BY +HAVING +ORDER +ASC +DESC +LIMIT +DISTINCT +OFFSET +UNION +ALL +EXCEPT +MINUS +INTERSECT + +// Join clause +JOIN +ON +INNER +OUTER +LEFT +RIGHT +FULL +CROSS +USING +NATURAL +// Select Statement +////////////////////// +// Data Definition +CREATE +TABLE +SCHEMA +INDEX +VIEW +IF +NOT +EXISTS +GLOBAL +LOCAL +TEMPORARY +UNIQUE +VIRTUAL + +INDEX +UNIQUE +HASH +SPATIAL +PRIMARY +KEY +ON + +DROP +TABLE +SCHEMA +RESTRICT +CASCADE + +ALTER +ADD +COLUMN +BEFORE +AFTER +// Data Definition +//////////////////////// +// Data Manipulation +INSERT +VALUES +DIRECT +SORTED + +COPY +FORMAT + +IMPORT +FILE +CONTROL + +UPDATE +SET + +DELETE + +TRUNCATE + +MERGE +DELTA +OF + +LOAD +UNLOAD + +DELETE + +// Prepared Statements +DEALLOCATE +PREPARE +EXECUTE + +/////////////////////////////// +// other statements +RENAME +EXPLAIN +PLAN +ANALYZE + +SHOW +SCHEMAS +TABLES +COLUMNS + +// misc. +COLUMN +INTO +AS +SET +DEFAULT +CALL +FOR +TO +ARRAY + + +// Expressions +NOT +AND +OR +NULL +LIKE +IN +IS +ISNULL +BETWEEN +ESCAPE +CASE +WHEN +THEN +ELSE +END + +// With +WITH +HINT +PARAMETERS +ON +OFF + +// Data types +DATE +TIME +TIMESTAMP +INTEGER +INT +DOUBLE +NVARCHAR +TEXT diff --git a/Data/src/sql-parser/src/sql/AlterStatement.h b/Data/src/sql-parser/src/sql/AlterStatement.h new file mode 100644 index 000000000..39caec0b9 --- /dev/null +++ b/Data/src/sql-parser/src/sql/AlterStatement.h @@ -0,0 +1,40 @@ +#ifndef SQLPARSER_ALTER_STATEMENT_H +#define SQLPARSER_ALTER_STATEMENT_H + +#include "SQLStatement.h" + +// Note: Implementations of constructors and destructors can be found in statements.cpp. +namespace hsql { + +enum ActionType { + DropColumn, +}; + +struct AlterAction { + AlterAction(ActionType type); + ActionType type; + virtual ~AlterAction(); +}; + +struct DropColumnAction : AlterAction { + DropColumnAction(char* column_name); + char* columnName; + bool ifExists; + + ~DropColumnAction() override; +}; + +// Represents SQL Alter Table statements. +// Example "ALTER TABLE students DROP COLUMN name;" +struct SQLParser_API AlterStatement : SQLStatement { + AlterStatement(char* name, AlterAction* action); + ~AlterStatement() override; + + char* schema; + bool ifTableExists; + char* name; + AlterAction* action; +}; +} // namespace hsql + +#endif diff --git a/Data/src/sql-parser/src/sql/ColumnType.h b/Data/src/sql-parser/src/sql/ColumnType.h new file mode 100644 index 000000000..6eb9ed470 --- /dev/null +++ b/Data/src/sql-parser/src/sql/ColumnType.h @@ -0,0 +1,43 @@ +#ifndef SQLPARSER_COLUMN_TYPE_H +#define SQLPARSER_COLUMN_TYPE_H + +#include"sql-parser/src/sqlparser_win.h" +#include + +namespace hsql { +enum class DataType { + UNKNOWN, + BIGINT, + BOOLEAN, + CHAR, + DATE, + DATETIME, + DECIMAL, + DOUBLE, + FLOAT, + INT, + LONG, + REAL, + SMALLINT, + TEXT, + TIME, + VARCHAR, +}; + +// Represents the type of a column, e.g., FLOAT or VARCHAR(10) +struct SQLParser_API ColumnType { + ColumnType() = default; + ColumnType(DataType data_type, int64_t length = 0, int64_t precision = 0, int64_t scale = 0); + DataType data_type; + int64_t length; // Used for, e.g., VARCHAR(10) + int64_t precision; // Used for, e.g., DECIMAL (6, 4) or TIME (5) + int64_t scale; // Used for DECIMAL (6, 4) +}; + +bool operator==(const ColumnType& lhs, const ColumnType& rhs); +bool operator!=(const ColumnType& lhs, const ColumnType& rhs); +std::ostream& operator<<(std::ostream&, const ColumnType&); + +} // namespace hsql + +#endif diff --git a/Data/src/sql-parser/src/sql/CreateStatement.cpp b/Data/src/sql-parser/src/sql/CreateStatement.cpp new file mode 100644 index 000000000..d69b4179e --- /dev/null +++ b/Data/src/sql-parser/src/sql/CreateStatement.cpp @@ -0,0 +1,70 @@ +#include "CreateStatement.h" +#include "SelectStatement.h" + +namespace hsql { + +// CreateStatemnet +CreateStatement::CreateStatement(CreateType type) + : SQLStatement(kStmtCreate), + type(type), + ifNotExists(false), + filePath(nullptr), + schema(nullptr), + tableName(nullptr), + indexName(nullptr), + indexColumns(nullptr), + columns(nullptr), + tableConstraints(nullptr), + viewColumns(nullptr), + select(nullptr) {} + +CreateStatement::~CreateStatement() { + free(filePath); + free(schema); + free(tableName); + free(indexName); + delete select; + + if (columns) { + for (ColumnDefinition* def : *columns) { + delete def; + } + delete columns; + } + + if (tableConstraints) { + for (TableConstraint* def : *tableConstraints) { + delete def; + } + delete tableConstraints; + } + + if (indexColumns) { + for (char* column : *indexColumns) { + free(column); + } + delete indexColumns; + } + + if (viewColumns) { + for (char* column : *viewColumns) { + free(column); + } + delete viewColumns; + } +} + +void CreateStatement::setColumnDefsAndConstraints(std::vector* tableElements) { + columns = new std::vector(); + tableConstraints = new std::vector(); + + for (auto tableElem : *tableElements) { + if (auto* colDef = dynamic_cast(tableElem)) { + columns->emplace_back(colDef); + } else if (auto* tableConstraint = dynamic_cast(tableElem)) { + tableConstraints->emplace_back(tableConstraint); + } + } +} + +} // namespace hsql diff --git a/Data/src/sql-parser/src/sql/CreateStatement.h b/Data/src/sql-parser/src/sql/CreateStatement.h new file mode 100644 index 000000000..2ba4c90a8 --- /dev/null +++ b/Data/src/sql-parser/src/sql/CreateStatement.h @@ -0,0 +1,86 @@ +#ifndef SQLPARSER_CREATE_STATEMENT_H +#define SQLPARSER_CREATE_STATEMENT_H + +#include "ColumnType.h" +#include "SQLStatement.h" + +#include +#include + +// Note: Implementations of constructors and destructors can be found in statements.cpp. +namespace hsql { +struct SQLParser_API SelectStatement; + +enum struct ConstraintType { None, NotNull, Null, PrimaryKey, Unique }; + +// Superclass for both TableConstraint and Column Definition +struct SQLParser_API TableElement { + virtual ~TableElement() {} +}; + +// Represents definition of a table constraint +struct SQLParser_API TableConstraint : TableElement { + TableConstraint(ConstraintType keyType, std::vector* columnNames); + + ~TableConstraint() override; + + ConstraintType type; + std::vector* columnNames; +}; + +// Represents definition of a table column +struct SQLParser_API ColumnDefinition : TableElement { + ColumnDefinition(char* name, ColumnType type, std::unordered_set* column_constraints); + + ~ColumnDefinition() override; + + // By default, columns are nullable. However, we track if a column is explicitly requested to be nullable to + // notice conflicts with PRIMARY KEY table constraints. + bool trySetNullableExplicit() { + if (column_constraints->count(ConstraintType::NotNull) || column_constraints->count(ConstraintType::PrimaryKey)) { + if (column_constraints->count(ConstraintType::Null)) { + return false; + } + nullable = false; + } + + return true; + } + + std::unordered_set* column_constraints; + char* name; + ColumnType type; + bool nullable; +}; + +enum CreateType { + kCreateTable, + kCreateTableFromTbl, // Hyrise file format + kCreateView, + kCreateIndex +}; + +// Represents SQL Create statements. +// Example: "CREATE TABLE students (name TEXT, student_number INTEGER, city TEXT, grade DOUBLE)" +struct CreateStatement : SQLStatement { + CreateStatement(CreateType type); + ~CreateStatement() override; + + void setColumnDefsAndConstraints(std::vector* tableElements); + + CreateType type; + bool ifNotExists; // default: false + char* filePath; // default: nullptr + char* schema; // default: nullptr + char* tableName; // default: nullptr + char* indexName; // default: nullptr + std::vector* indexColumns; // default: nullptr + std::vector* columns; // default: nullptr + std::vector* tableConstraints; // default: nullptr + std::vector* viewColumns; + SelectStatement* select; +}; + +} // namespace hsql + +#endif diff --git a/Data/src/sql-parser/src/sql/DeleteStatement.h b/Data/src/sql-parser/src/sql/DeleteStatement.h new file mode 100644 index 000000000..828fe8051 --- /dev/null +++ b/Data/src/sql-parser/src/sql/DeleteStatement.h @@ -0,0 +1,23 @@ +#ifndef SQLPARSER_DELETE_STATEMENT_H +#define SQLPARSER_DELETE_STATEMENT_H + +#include "SQLStatement.h" + +// Note: Implementations of constructors and destructors can be found in statements.cpp. +namespace hsql { + +// Represents SQL Delete statements. +// Example: "DELETE FROM students WHERE grade > 3.0" +// Note: if (expr == nullptr) => delete all rows (truncate) +struct SQLParser_API DeleteStatement : SQLStatement { + DeleteStatement(); + ~DeleteStatement() override; + + char* schema; + char* tableName; + Expr* expr; +}; + +} // namespace hsql + +#endif diff --git a/Data/src/sql-parser/src/sql/DropStatement.h b/Data/src/sql-parser/src/sql/DropStatement.h new file mode 100644 index 000000000..e1dd38fa6 --- /dev/null +++ b/Data/src/sql-parser/src/sql/DropStatement.h @@ -0,0 +1,25 @@ +#ifndef SQLPARSER_DROP_STATEMENT_H +#define SQLPARSER_DROP_STATEMENT_H + +#include "SQLStatement.h" + +// Note: Implementations of constructors and destructors can be found in statements.cpp. +namespace hsql { + +enum DropType { kDropTable, kDropSchema, kDropIndex, kDropView, kDropPreparedStatement }; + +// Represents SQL Delete statements. +// Example "DROP TABLE students;" +struct SQLParser_API DropStatement : SQLStatement { + DropStatement(DropType type); + ~DropStatement() override; + + DropType type; + bool ifExists; + char* schema; + char* name; + char* indexName; +}; + +} // namespace hsql +#endif \ No newline at end of file diff --git a/Data/src/sql-parser/src/sql/ExecuteStatement.h b/Data/src/sql-parser/src/sql/ExecuteStatement.h new file mode 100644 index 000000000..f9dfa1fff --- /dev/null +++ b/Data/src/sql-parser/src/sql/ExecuteStatement.h @@ -0,0 +1,20 @@ +#ifndef SQLPARSER_EXECUTE_STATEMENT_H +#define SQLPARSER_EXECUTE_STATEMENT_H + +#include "SQLStatement.h" + +namespace hsql { + +// Represents SQL Execute statements. +// Example: "EXECUTE ins_prep(100, "test", 2.3);" +struct SQLParser_API ExecuteStatement : SQLStatement { + ExecuteStatement(); + ~ExecuteStatement() override; + + char* name; + std::vector* parameters; +}; + +} // namespace hsql + +#endif diff --git a/Data/src/sql-parser/src/sql/ExportStatement.h b/Data/src/sql-parser/src/sql/ExportStatement.h new file mode 100644 index 000000000..ffde10ac5 --- /dev/null +++ b/Data/src/sql-parser/src/sql/ExportStatement.h @@ -0,0 +1,24 @@ +#ifndef SQLPARSER_EXPORT_STATEMENT_H +#define SQLPARSER_EXPORT_STATEMENT_H + +#include "ImportStatement.h" +#include "SQLStatement.h" +#include "SelectStatement.h" + +namespace hsql { +// Represents SQL Export statements. +struct SQLParser_API ExportStatement : SQLStatement { + ExportStatement(ImportType type); + ~ExportStatement() override; + + // ImportType is used for compatibility reasons + ImportType type; + char* filePath; + char* schema; + char* tableName; + SelectStatement* select; +}; + +} // namespace hsql + +#endif diff --git a/Data/src/sql-parser/src/sql/Expr.cpp b/Data/src/sql-parser/src/sql/Expr.cpp new file mode 100644 index 000000000..f47dbdb1d --- /dev/null +++ b/Data/src/sql-parser/src/sql/Expr.cpp @@ -0,0 +1,315 @@ +#include "Expr.h" +#include +#include +#include "SelectStatement.h" + +namespace hsql { + +FrameBound::FrameBound(int64_t offset, FrameBoundType type, bool unbounded) + : offset{offset}, type{type}, unbounded{unbounded} {} + +FrameDescription::FrameDescription(FrameType type, FrameBound* start, FrameBound* end) + : type{type}, start{start}, end{end} {} + +FrameDescription::~FrameDescription() { + delete start; + delete end; +} + +WindowDescription::WindowDescription(std::vector* partitionList, std::vector* orderList, + FrameDescription* frameDescription) + : partitionList{partitionList}, orderList{orderList}, frameDescription{frameDescription} {} + +WindowDescription::~WindowDescription() { + if (partitionList) { + for (Expr* e : *partitionList) { + delete e; + } + delete partitionList; + } + + if (orderList) { + for (OrderDescription* orderDescription : *orderList) { + delete orderDescription; + } + delete orderList; + } + + delete frameDescription; +} + +Expr::Expr(ExprType type) + : type(type), + expr(nullptr), + expr2(nullptr), + exprList(nullptr), + select(nullptr), + name(nullptr), + table(nullptr), + alias(nullptr), + fval(0), + ival(0), + ival2(0), + datetimeField(kDatetimeNone), + columnType(DataType::UNKNOWN, 0), + isBoolLiteral(false), + opType(kOpNone), + distinct(false), + windowDescription(nullptr) {} + +Expr::~Expr() { + delete expr; + delete expr2; + delete select; + delete windowDescription; + + free(name); + free(table); + free(alias); + + if (exprList) { + for (Expr* e : *exprList) { + delete e; + } + delete exprList; + } +} + +Expr* Expr::make(ExprType type) { + Expr* e = new Expr(type); + return e; +} + +Expr* Expr::makeOpUnary(OperatorType op, Expr* expr) { + Expr* e = new Expr(kExprOperator); + e->opType = op; + e->expr = expr; + e->expr2 = nullptr; + return e; +} + +Expr* Expr::makeOpBinary(Expr* expr1, OperatorType op, Expr* expr2) { + Expr* e = new Expr(kExprOperator); + e->opType = op; + e->expr = expr1; + e->expr2 = expr2; + return e; +} + +Expr* Expr::makeBetween(Expr* expr, Expr* left, Expr* right) { + Expr* e = new Expr(kExprOperator); + e->expr = expr; + e->opType = kOpBetween; + e->exprList = new std::vector(); + e->exprList->push_back(left); + e->exprList->push_back(right); + return e; +} + +Expr* Expr::makeCaseList(Expr* caseListElement) { + Expr* e = new Expr(kExprOperator); + // Case list expressions are temporary and will be integrated into the case + // expressions exprList - thus assign operator type kOpNone + e->opType = kOpNone; + e->exprList = new std::vector(); + e->exprList->push_back(caseListElement); + return e; +} + +Expr* Expr::makeCaseListElement(Expr* when, Expr* then) { + Expr* e = new Expr(kExprOperator); + e->opType = kOpCaseListElement; + e->expr = when; + e->expr2 = then; + return e; +} + +Expr* Expr::caseListAppend(Expr* caseList, Expr* caseListElement) { + caseList->exprList->push_back(caseListElement); + return caseList; +} + +Expr* Expr::makeCase(Expr* expr, Expr* caseList, Expr* elseExpr) { + Expr* e = new Expr(kExprOperator); + e->opType = kOpCase; + e->expr = expr; + e->expr2 = elseExpr; + e->exprList = caseList->exprList; + caseList->exprList = nullptr; + delete caseList; + return e; +} + +Expr* Expr::makeLiteral(int64_t val) { + Expr* e = new Expr(kExprLiteralInt); + e->ival = val; + return e; +} + +Expr* Expr::makeLiteral(double value) { + Expr* e = new Expr(kExprLiteralFloat); + e->fval = value; + return e; +} + +Expr* Expr::makeLiteral(char* string) { + Expr* e = new Expr(kExprLiteralString); + e->name = string; + return e; +} + +Expr* Expr::makeLiteral(bool val) { + Expr* e = new Expr(kExprLiteralInt); + e->ival = (int)val; + e->isBoolLiteral = true; + return e; +} + +Expr* Expr::makeNullLiteral() { + Expr* e = new Expr(kExprLiteralNull); + return e; +} + +Expr* Expr::makeDateLiteral(char* string) { + Expr* e = new Expr(kExprLiteralDate); + e->name = string; + return e; +} + +Expr* Expr::makeIntervalLiteral(int64_t duration, DatetimeField unit) { + Expr* e = new Expr(kExprLiteralInterval); + e->ival = duration; + e->datetimeField = unit; + return e; +} + +Expr* Expr::makeColumnRef(char* name) { + Expr* e = new Expr(kExprColumnRef); + e->name = name; + return e; +} + +Expr* Expr::makeColumnRef(char* table, char* name) { + Expr* e = new Expr(kExprColumnRef); + e->name = name; + e->table = table; + return e; +} + +Expr* Expr::makeStar(void) { + Expr* e = new Expr(kExprStar); + return e; +} + +Expr* Expr::makeStar(char* table) { + Expr* e = new Expr(kExprStar); + e->table = table; + return e; +} + +Expr* Expr::makeFunctionRef(char* func_name, std::vector* exprList, bool distinct, WindowDescription* window) { + Expr* e = new Expr(kExprFunctionRef); + e->name = func_name; + e->exprList = exprList; + e->distinct = distinct; + e->windowDescription = window; + return e; +} + +Expr* Expr::makeArray(std::vector* exprList) { + Expr* e = new Expr(kExprArray); + e->exprList = exprList; + return e; +} + +Expr* Expr::makeArrayIndex(Expr* expr, int64_t index) { + Expr* e = new Expr(kExprArrayIndex); + e->expr = expr; + e->ival = index; + return e; +} + +Expr* Expr::makeParameter(int id) { + Expr* e = new Expr(kExprParameter); + e->ival = id; + return e; +} + +Expr* Expr::makeSelect(SelectStatement* select) { + Expr* e = new Expr(kExprSelect); + e->select = select; + return e; +} + +Expr* Expr::makeExists(SelectStatement* select) { + Expr* e = new Expr(kExprOperator); + e->opType = kOpExists; + e->select = select; + return e; +} + +Expr* Expr::makeInOperator(Expr* expr, std::vector* exprList) { + Expr* e = new Expr(kExprOperator); + e->opType = kOpIn; + e->expr = expr; + e->exprList = exprList; + + return e; +} + +Expr* Expr::makeInOperator(Expr* expr, SelectStatement* select) { + Expr* e = new Expr(kExprOperator); + e->opType = kOpIn; + e->expr = expr; + e->select = select; + + return e; +} + +Expr* Expr::makeExtract(DatetimeField datetimeField, Expr* expr) { + Expr* e = new Expr(kExprExtract); + e->datetimeField = datetimeField; + e->expr = expr; + return e; +} + +Expr* Expr::makeCast(Expr* expr, ColumnType columnType) { + Expr* e = new Expr(kExprCast); + e->columnType = columnType; + e->expr = expr; + return e; +} + +bool Expr::isType(ExprType exprType) const { return exprType == type; } + +bool Expr::isLiteral() const { + return isType(kExprLiteralInt) || isType(kExprLiteralFloat) || isType(kExprLiteralString) || isType(kExprParameter) || + isType(kExprLiteralNull) || isType(kExprLiteralDate) || isType(kExprLiteralInterval); +} + +bool Expr::hasAlias() const { return alias != nullptr; } + +bool Expr::hasTable() const { return table != nullptr; } + +const char* Expr::getName() const { + if (alias) + return alias; + else + return name; +} + +char* substr(const char* source, int from, int to) { + int len = to - from; + char* copy = (char*)malloc(len + 1); + ; +#if defined(_WIN32) || defined(_WIN64) +#pragma warning(disable : 4996) +#endif + strncpy(copy, source + from, len); + copy[len] = '\0'; + return copy; +#if defined(_WIN32) || defined(_WIN64) +#pragma warning(default : 4996) +#endif +} +} // namespace hsql diff --git a/Data/src/sql-parser/src/sql/Expr.h b/Data/src/sql-parser/src/sql/Expr.h new file mode 100644 index 000000000..893432de7 --- /dev/null +++ b/Data/src/sql-parser/src/sql/Expr.h @@ -0,0 +1,237 @@ +#ifndef SQLPARSER_EXPR_H +#define SQLPARSER_EXPR_H + +#include +#include +#include +#include "ColumnType.h" + +namespace hsql { +struct SelectStatement; +struct OrderDescription; + +// Helper function used by the lexer. +// TODO: move to more appropriate place. +char* substr(const char* source, int from, int to); + +enum ExprType { + kExprLiteralFloat, + kExprLiteralString, + kExprLiteralInt, + kExprLiteralNull, + kExprLiteralDate, + kExprLiteralInterval, + kExprStar, + kExprParameter, + kExprColumnRef, + kExprFunctionRef, + kExprOperator, + kExprSelect, + kExprHint, + kExprArray, + kExprArrayIndex, + kExprExtract, + kExprCast +}; + +// Operator types. These are important for expressions of type kExprOperator. +enum OperatorType { + kOpNone, + + // Ternary operator + kOpBetween, + + // n-nary special case + kOpCase, + kOpCaseListElement, // `WHEN expr THEN expr` + + // Binary operators. + kOpPlus, + kOpMinus, + kOpAsterisk, + kOpSlash, + kOpPercentage, + kOpCaret, + + kOpEquals, + kOpNotEquals, + kOpLess, + kOpLessEq, + kOpGreater, + kOpGreaterEq, + kOpLike, + kOpNotLike, + kOpILike, + kOpAnd, + kOpOr, + kOpIn, + kOpConcat, + + // Unary operators. + kOpNot, + kOpUnaryMinus, + kOpIsNull, + kOpExists +}; + +enum DatetimeField { + kDatetimeNone, + kDatetimeSecond, + kDatetimeMinute, + kDatetimeHour, + kDatetimeDay, + kDatetimeMonth, + kDatetimeYear, +}; + +// Description of the frame clause within a window expression. +enum FrameBoundType { kFollowing, kPreceding, kCurrentRow }; +struct FrameBound { + FrameBound(int64_t offset, FrameBoundType type, bool unbounded); + + int64_t offset; + FrameBoundType type; + bool unbounded; +}; + +enum FrameType { kRange, kRows, kGroups }; +struct SQLParser_API FrameDescription { + FrameDescription(FrameType type, FrameBound* start, FrameBound* end); + virtual ~FrameDescription(); + + FrameType type; + FrameBound* start; + FrameBound* end; +}; + +typedef struct Expr Expr; + +// Description of additional fields for a window expression. +struct SQLParser_API WindowDescription { + WindowDescription(std::vector* partitionList, std::vector* orderList, + FrameDescription* frameDescription); + virtual ~WindowDescription(); + + std::vector* partitionList; + std::vector* orderList; + FrameDescription* frameDescription; +}; + +// Represents SQL expressions (i.e. literals, operators, column_refs). +// TODO: When destructing a placeholder expression, we might need to alter the +// placeholder_list. +struct SQLParser_API Expr { + Expr(ExprType type); + virtual ~Expr(); + + ExprType type; + + // TODO: Replace expressions by list. + Expr* expr; + Expr* expr2; + std::vector* exprList; + SelectStatement* select; + char* name; + char* table; + char* alias; + double fval; + int64_t ival; + int64_t ival2; + DatetimeField datetimeField; + ColumnType columnType; + bool isBoolLiteral; + + OperatorType opType; + bool distinct; + + WindowDescription* windowDescription; + + // Convenience accessor methods. + + bool isType(ExprType exprType) const; + + bool isLiteral() const; + + bool hasAlias() const; + + bool hasTable() const; + + const char* getName() const; + + // Static constructors. + + static Expr* make(ExprType type); + + static Expr* makeOpUnary(OperatorType op, Expr* expr); + + static Expr* makeOpBinary(Expr* expr1, OperatorType op, Expr* expr2); + + static Expr* makeBetween(Expr* expr, Expr* left, Expr* right); + + static Expr* makeCaseList(Expr* caseListElement); + + static Expr* makeCaseListElement(Expr* when, Expr* then); + + static Expr* caseListAppend(Expr* caseList, Expr* caseListElement); + + static Expr* makeCase(Expr* expr, Expr* when, Expr* elseExpr); + + static Expr* makeLiteral(int64_t val); + + static Expr* makeLiteral(double val); + + static Expr* makeLiteral(char* val); + + static Expr* makeLiteral(bool val); + + static Expr* makeNullLiteral(); + + static Expr* makeDateLiteral(char* val); + + static Expr* makeIntervalLiteral(int64_t duration, DatetimeField unit); + + static Expr* makeColumnRef(char* name); + + static Expr* makeColumnRef(char* table, char* name); + + static Expr* makeStar(void); + + static Expr* makeStar(char* table); + + static Expr* makeFunctionRef(char* func_name, std::vector* exprList, bool distinct, WindowDescription* window); + + static Expr* makeArray(std::vector* exprList); + + static Expr* makeArrayIndex(Expr* expr, int64_t index); + + static Expr* makeParameter(int id); + + static Expr* makeSelect(SelectStatement* select); + + static Expr* makeExists(SelectStatement* select); + + static Expr* makeInOperator(Expr* expr, std::vector* exprList); + + static Expr* makeInOperator(Expr* expr, SelectStatement* select); + + static Expr* makeExtract(DatetimeField datetimeField1, Expr* expr); + + static Expr* makeCast(Expr* expr, ColumnType columnType); +}; + +// Zero initializes an Expr object and assigns it to a space in the heap +// For Hyrise we still had to put in the explicit NULL constructor +// http://www.ex-parrot.com/~chris/random/initialise.html +// Unused +#define ALLOC_EXPR(var, type) \ + Expr* var; \ + do { \ + Expr zero = {type}; \ + var = (Expr*)malloc(sizeof *var); \ + *var = zero; \ + } while (0); +#undef ALLOC_EXPR + +} // namespace hsql + +#endif diff --git a/Data/src/sql-parser/src/sql/ImportStatement.h b/Data/src/sql-parser/src/sql/ImportStatement.h new file mode 100644 index 000000000..f72bdb068 --- /dev/null +++ b/Data/src/sql-parser/src/sql/ImportStatement.h @@ -0,0 +1,28 @@ +#ifndef SQLPARSER_IMPORT_STATEMENT_H +#define SQLPARSER_IMPORT_STATEMENT_H + +#include "SQLStatement.h" + +namespace hsql { +enum ImportType { + kImportCSV, + kImportTbl, // Hyrise file format + kImportBinary, + kImportAuto +}; + +// Represents SQL Import statements. +struct SQLParser_API ImportStatement : SQLStatement { + ImportStatement(ImportType type); + ~ImportStatement() override; + + ImportType type; + char* filePath; + char* schema; + char* tableName; + Expr* whereClause; +}; + +} // namespace hsql + +#endif diff --git a/Data/src/sql-parser/src/sql/InsertStatement.h b/Data/src/sql-parser/src/sql/InsertStatement.h new file mode 100644 index 000000000..b9874ebdc --- /dev/null +++ b/Data/src/sql-parser/src/sql/InsertStatement.h @@ -0,0 +1,26 @@ +#ifndef SQLPARSER_INSERT_STATEMENT_H +#define SQLPARSER_INSERT_STATEMENT_H + +#include "SQLStatement.h" +#include "SelectStatement.h" + +namespace hsql { +enum InsertType { kInsertValues, kInsertSelect }; + +// Represents SQL Insert statements. +// Example: "INSERT INTO students VALUES ('Max', 1112233, 'Musterhausen', 2.3)" +struct SQLParser_API InsertStatement : SQLStatement { + InsertStatement(InsertType type); + ~InsertStatement() override; + + InsertType type; + char* schema; + char* tableName; + std::vector* columns; + std::vector* values; + SelectStatement* select; +}; + +} // namespace hsql + +#endif diff --git a/Data/src/sql-parser/src/sql/PrepareStatement.cpp b/Data/src/sql-parser/src/sql/PrepareStatement.cpp new file mode 100644 index 000000000..ff662fb33 --- /dev/null +++ b/Data/src/sql-parser/src/sql/PrepareStatement.cpp @@ -0,0 +1,12 @@ + +#include "PrepareStatement.h" + +namespace hsql { +// PrepareStatement +PrepareStatement::PrepareStatement() : SQLStatement(kStmtPrepare), name(nullptr), query(nullptr) {} + +PrepareStatement::~PrepareStatement() { + free(name); + free(query); +} +} // namespace hsql diff --git a/Data/src/sql-parser/src/sql/PrepareStatement.h b/Data/src/sql-parser/src/sql/PrepareStatement.h new file mode 100644 index 000000000..96b7a261e --- /dev/null +++ b/Data/src/sql-parser/src/sql/PrepareStatement.h @@ -0,0 +1,22 @@ +#ifndef SQLPARSER_PREPARE_STATEMENT_H +#define SQLPARSER_PREPARE_STATEMENT_H + +#include "SQLStatement.h" + +namespace hsql { + +// Represents SQL Prepare statements. +// Example: PREPARE test FROM 'SELECT * FROM test WHERE a = ?;' +struct SQLParser_API PrepareStatement : SQLStatement { + PrepareStatement(); + ~PrepareStatement() override; + + char* name; + + // The query that is supposed to be prepared. + char* query; +}; + +} // namespace hsql + +#endif diff --git a/Data/src/sql-parser/src/sql/SQLStatement.cpp b/Data/src/sql-parser/src/sql/SQLStatement.cpp new file mode 100644 index 000000000..52ecbec4a --- /dev/null +++ b/Data/src/sql-parser/src/sql/SQLStatement.cpp @@ -0,0 +1,24 @@ + +#include "SQLStatement.h" + +namespace hsql { + +// SQLStatement +SQLStatement::SQLStatement(StatementType type) : hints(nullptr), type_(type) {} + +SQLStatement::~SQLStatement() { + if (hints) { + for (Expr* hint : *hints) { + delete hint; + } + } + delete hints; +} + +StatementType SQLStatement::type() const { return type_; } + +bool SQLStatement::isType(StatementType type) const { return (type_ == type); } + +bool SQLStatement::is(StatementType type) const { return isType(type); } + +} // namespace hsql diff --git a/Data/src/sql-parser/src/sql/SQLStatement.h b/Data/src/sql-parser/src/sql/SQLStatement.h new file mode 100644 index 000000000..b0763f83e --- /dev/null +++ b/Data/src/sql-parser/src/sql/SQLStatement.h @@ -0,0 +1,51 @@ +#ifndef SQLPARSER_SQLSTATEMENT_H +#define SQLPARSER_SQLSTATEMENT_H + +#include +#include "sql-parser/src/sqlparser_win.h" +#include "Expr.h" + +namespace hsql { +enum StatementType { + kStmtError, // unused + kStmtSelect, + kStmtImport, + kStmtInsert, + kStmtUpdate, + kStmtDelete, + kStmtCreate, + kStmtDrop, + kStmtPrepare, + kStmtExecute, + kStmtExport, + kStmtRename, + kStmtAlter, + kStmtShow, + kStmtTransaction +}; + +// Base struct for every SQL statement +struct SQLParser_API SQLStatement { + SQLStatement(StatementType type); + + virtual ~SQLStatement(); + + StatementType type() const; + + bool isType(StatementType type) const; + + // Shorthand for isType(type). + bool is(StatementType type) const; + + // Length of the string in the SQL query string + size_t stringLength; + + std::vector* hints; + + private: + StatementType type_; +}; + +} // namespace hsql + +#endif // SQLPARSER_SQLSTATEMENT_H diff --git a/Data/src/sql-parser/src/sql/SelectStatement.h b/Data/src/sql-parser/src/sql/SelectStatement.h new file mode 100644 index 000000000..ba883205d --- /dev/null +++ b/Data/src/sql-parser/src/sql/SelectStatement.h @@ -0,0 +1,113 @@ +#ifndef SQLPARSER_SELECT_STATEMENT_H +#define SQLPARSER_SELECT_STATEMENT_H + +#include "Expr.h" +#include "SQLStatement.h" +#include "Table.h" + +namespace hsql { +enum OrderType { kOrderAsc, kOrderDesc }; + +enum SetType { kSetUnion, kSetIntersect, kSetExcept }; + +enum RowLockMode { ForUpdate, ForNoKeyUpdate, ForShare, ForKeyShare }; +enum RowLockWaitPolicy { NoWait, SkipLocked, None }; + +// Description of the order by clause within a select statement. +struct SQLParser_API OrderDescription { + OrderDescription(OrderType type, Expr* expr); + virtual ~OrderDescription(); + + OrderType type; + Expr* expr; +}; + +// Description of the limit clause within a select statement. +struct SQLParser_API LimitDescription { + LimitDescription(Expr* limit, Expr* offset); + virtual ~LimitDescription(); + + Expr* limit; + Expr* offset; +}; + +// Description of the group-by clause within a select statement. +struct SQLParser_API GroupByDescription { + GroupByDescription(); + virtual ~GroupByDescription(); + + std::vector* columns; + Expr* having; +}; + +struct SQLParser_API WithDescription { + ~WithDescription(); + + char* alias; + SelectStatement* select; +}; + +struct SQLParser_API SetOperation { + SetOperation(); + virtual ~SetOperation(); + + SetType setType; + bool isAll; + + SelectStatement* nestedSelectStatement; + std::vector* resultOrder; + LimitDescription* resultLimit; +}; + +struct SQLParser_API LockingClause { + RowLockMode rowLockMode; + RowLockWaitPolicy rowLockWaitPolicy; + std::vector* tables; +}; + +// Representation of a full SQL select statement. +struct SQLParser_API SelectStatement : SQLStatement { + SelectStatement(); + ~SelectStatement() override; + + TableRef* fromTable; + bool selectDistinct; + std::vector* selectList; + Expr* whereClause; + GroupByDescription* groupBy; + + // Note that a SetOperation is always connected to a + // different SelectStatement. This statement can itself + // have SetOperation connections to other SelectStatements. + // To evaluate the operations in the correct order: + // Iterate over the setOperations vector: + // 1. Fully evaluate the nestedSelectStatement within the SetOperation + // 2. Connect the original statement with the + // evaluated nestedSelectStatement + // 3. Apply the resultOrder and the resultLimit + // 4. The result now functions as the the original statement + // for the next iteration + // + // Example: + // + // (SELECT * FROM students INTERSECT SELECT * FROM students_2) UNION SELECT * FROM students_3 ORDER BY grade ASC; + // + // 1. We evaluate `Select * FROM students` + // 2. Then we iterate over the setOperations vector + // 3. We evalute the nestedSelectStatement of the first entry, which is: `SELECT * FROM students_2` + // 4. We connect the result of 1. with the results of 3. using the setType, which is INTERSECT + // 5. We continue the iteration of the setOperations vector + // 6. We evaluate the new nestedSelectStatement which is: `SELECT * FROM students_3` + // 7. We apply a Union-Operation to connect the results of 4. and 6. + // 8. Finally, we apply the resultOrder of the last SetOperation (ORDER BY grade ASC) + std::vector* setOperations; + + std::vector* order; + std::vector* withDescriptions; + LimitDescription* limit; + std::vector* lockings; +}; + +} // namespace hsql + +#endif diff --git a/Data/src/sql-parser/src/sql/ShowStatement.h b/Data/src/sql-parser/src/sql/ShowStatement.h new file mode 100644 index 000000000..0e35424f9 --- /dev/null +++ b/Data/src/sql-parser/src/sql/ShowStatement.h @@ -0,0 +1,23 @@ +#ifndef SQLPARSER_SHOW_STATEMENT_H +#define SQLPARSER_SHOW_STATEMENT_H + +#include "SQLStatement.h" + +// Note: Implementations of constructors and destructors can be found in statements.cpp. +namespace hsql { + +enum ShowType { kShowColumns, kShowTables }; + +// Represents SQL SHOW statements. +// Example "SHOW TABLES;" +struct SQLParser_API ShowStatement : SQLStatement { + ShowStatement(ShowType type); + ~ShowStatement() override; + + ShowType type; + char* schema; + char* name; +}; + +} // namespace hsql +#endif diff --git a/Data/src/sql-parser/src/sql/Table.h b/Data/src/sql-parser/src/sql/Table.h new file mode 100644 index 000000000..4f168edb4 --- /dev/null +++ b/Data/src/sql-parser/src/sql/Table.h @@ -0,0 +1,68 @@ +#ifndef SQLPARSER_TABLEREF_H +#define SQLPARSER_TABLEREF_H + +#include +#include +#include "Expr.h" + +namespace hsql { + +struct SelectStatement; +struct JoinDefinition; +struct TableRef; + +// Possible table reference types. +enum TableRefType { kTableName, kTableSelect, kTableJoin, kTableCrossProduct }; + +struct SQLParser_API TableName { + char* schema; + char* name; +}; + +struct SQLParser_API Alias { + Alias(char* name, std::vector* columns = nullptr); + ~Alias(); + + char* name; + std::vector* columns; +}; + +// Holds reference to tables. Can be either table names or a select statement. +struct SQLParser_API TableRef { + TableRef(TableRefType type); + virtual ~TableRef(); + + TableRefType type; + + char* schema; + char* name; + Alias* alias; + + SelectStatement* select; + std::vector* list; + JoinDefinition* join; + + // Returns true if a schema is set. + bool hasSchema() const; + + // Returns the alias, if it is set. Otherwise the name. + const char* getName() const; +}; + +// Possible types of joins. +enum JoinType { kJoinInner, kJoinFull, kJoinLeft, kJoinRight, kJoinCross, kJoinNatural }; + +// Definition of a join construct. +struct SQLParser_API JoinDefinition { + JoinDefinition(); + virtual ~JoinDefinition(); + + TableRef* left; + TableRef* right; + Expr* condition; + + JoinType type; +}; + +} // namespace hsql +#endif diff --git a/Data/src/sql-parser/src/sql/TransactionStatement.h b/Data/src/sql-parser/src/sql/TransactionStatement.h new file mode 100644 index 000000000..2e800cd04 --- /dev/null +++ b/Data/src/sql-parser/src/sql/TransactionStatement.h @@ -0,0 +1,21 @@ +#ifndef HYRISE_TRANSACTIONSTATEMENT_H +#define HYRISE_TRANSACTIONSTATEMENT_H + +#include "SQLStatement.h" + +namespace hsql { + +// Represents SQL Transaction statements. +// Example: BEGIN TRANSACTION; +enum TransactionCommand { kBeginTransaction, kCommitTransaction, kRollbackTransaction }; + +struct SQLParser_API TransactionStatement : SQLStatement { + TransactionStatement(TransactionCommand command); + ~TransactionStatement() override; + + TransactionCommand command; +}; + +} // namespace hsql + +#endif diff --git a/Data/src/sql-parser/src/sql/UpdateStatement.h b/Data/src/sql-parser/src/sql/UpdateStatement.h new file mode 100644 index 000000000..abfcc4dcf --- /dev/null +++ b/Data/src/sql-parser/src/sql/UpdateStatement.h @@ -0,0 +1,27 @@ +#ifndef SQLPARSER_UPDATE_STATEMENT_H +#define SQLPARSER_UPDATE_STATEMENT_H + +#include "SQLStatement.h" + +namespace hsql { + +// Represents "column = value" expressions. +struct UpdateClause { + char* column; + Expr* value; +}; + +// Represents SQL Update statements. +struct SQLParser_API UpdateStatement : SQLStatement { + UpdateStatement(); + ~UpdateStatement() override; + + // TODO: switch to char* instead of TableRef + TableRef* table; + std::vector* updates; + Expr* where; +}; + +} // namespace hsql + +#endif diff --git a/Data/src/sql-parser/src/sql/statements.cpp b/Data/src/sql-parser/src/sql/statements.cpp new file mode 100644 index 000000000..c1394b15e --- /dev/null +++ b/Data/src/sql-parser/src/sql/statements.cpp @@ -0,0 +1,393 @@ +#include "statements.h" +#include "AlterStatement.h" + +namespace hsql { + +// KeyConstraints +TableConstraint::TableConstraint(ConstraintType type, std::vector* columnNames) + : type(type), columnNames(columnNames) {} + +TableConstraint::~TableConstraint() { + for (char* def : *columnNames) { + free(def); + } + delete columnNames; +} + +// ColumnDefinition +ColumnDefinition::ColumnDefinition(char* name, ColumnType type, std::unordered_set* column_constraints) + : column_constraints(column_constraints), name(name), type(type), nullable(true) {} + +ColumnDefinition::~ColumnDefinition() { + free(name); + delete column_constraints; +} + +ColumnType::ColumnType(DataType data_type, int64_t length, int64_t precision, int64_t scale) + : data_type(data_type), length(length), precision(precision), scale(scale) {} + +bool operator==(const ColumnType& lhs, const ColumnType& rhs) { + if (lhs.data_type != rhs.data_type) return false; + return lhs.length == rhs.length && lhs.precision == rhs.precision && lhs.scale == rhs.scale; +} + +bool operator!=(const ColumnType& lhs, const ColumnType& rhs) { return !(lhs == rhs); } + +std::ostream& operator<<(std::ostream& stream, const ColumnType& column_type) { + switch (column_type.data_type) { + case DataType::UNKNOWN: + stream << "UNKNOWN"; + break; + case DataType::INT: + stream << "INT"; + break; + case DataType::BIGINT: + stream << "BIGINT"; + break; + case DataType::LONG: + stream << "LONG"; + break; + case DataType::FLOAT: + stream << "FLOAT"; + break; + case DataType::DOUBLE: + stream << "DOUBLE"; + break; + case DataType::REAL: + stream << "REAL"; + break; + case DataType::CHAR: + stream << "CHAR(" << column_type.length << ")"; + break; + case DataType::VARCHAR: + stream << "VARCHAR(" << column_type.length << ")"; + break; + case DataType::DECIMAL: + stream << "DECIMAL"; + break; + case DataType::TEXT: + stream << "TEXT"; + break; + case DataType::DATETIME: + stream << "DATETIME"; + break; + case DataType::DATE: + stream << "DATE"; + break; + case DataType::TIME: + stream << "TIME"; + break; + case DataType::SMALLINT: + stream << "SMALLINT"; + break; + case DataType::BOOLEAN: + stream << "BOOLEAN"; + break; + } + return stream; +} + +// DeleteStatement +DeleteStatement::DeleteStatement() : SQLStatement(kStmtDelete), schema(nullptr), tableName(nullptr), expr(nullptr) {} + +DeleteStatement::~DeleteStatement() { + free(schema); + free(tableName); + delete expr; +} + +// DropStatement +DropStatement::DropStatement(DropType type) + : SQLStatement(kStmtDrop), type(type), schema(nullptr), name(nullptr), indexName(nullptr) {} + +DropStatement::~DropStatement() { + free(schema); + free(name); + free(indexName); +} + +// AlterStatement and supportive classes + +AlterAction::AlterAction(ActionType type) : type(type) {} + +AlterAction::~AlterAction() = default; + +DropColumnAction::DropColumnAction(char* column_name) + : AlterAction(ActionType::DropColumn), columnName(column_name), ifExists(false) {} + +DropColumnAction::~DropColumnAction() { free(columnName); } + +AlterStatement::AlterStatement(char* name, AlterAction* action) + : SQLStatement(kStmtAlter), schema(nullptr), ifTableExists(false), name(name), action(action) {} + +AlterStatement::~AlterStatement() { + free(schema); + free(name); + delete action; +} + +// TransactionStatement +TransactionStatement::TransactionStatement(TransactionCommand command) + : SQLStatement(kStmtTransaction), command(command) {} + +TransactionStatement::~TransactionStatement() {} + +// ExecuteStatement +ExecuteStatement::ExecuteStatement() : SQLStatement(kStmtExecute), name(nullptr), parameters(nullptr) {} + +ExecuteStatement::~ExecuteStatement() { + free(name); + + if (parameters) { + for (Expr* param : *parameters) { + delete param; + } + delete parameters; + } +} + +// ExportStatement +ExportStatement::ExportStatement(ImportType type) + : SQLStatement(kStmtExport), type(type), filePath(nullptr), schema(nullptr), tableName(nullptr), select(nullptr) {} + +ExportStatement::~ExportStatement() { + free(filePath); + free(schema); + free(tableName); + delete select; +} + +// ImportStatement +ImportStatement::ImportStatement(ImportType type) + : SQLStatement(kStmtImport), + type(type), + filePath(nullptr), + schema(nullptr), + tableName(nullptr), + whereClause(nullptr) {} + +ImportStatement::~ImportStatement() { + free(filePath); + free(schema); + free(tableName); + delete whereClause; +} + +// InsertStatement +InsertStatement::InsertStatement(InsertType type) + : SQLStatement(kStmtInsert), + type(type), + schema(nullptr), + tableName(nullptr), + columns(nullptr), + values(nullptr), + select(nullptr) {} + +InsertStatement::~InsertStatement() { + free(schema); + free(tableName); + delete select; + + if (columns) { + for (char* column : *columns) { + free(column); + } + delete columns; + } + + if (values) { + for (Expr* expr : *values) { + delete expr; + } + delete values; + } +} + +// ShowStatament +ShowStatement::ShowStatement(ShowType type) : SQLStatement(kStmtShow), type(type), schema(nullptr), name(nullptr) {} + +ShowStatement::~ShowStatement() { + free(schema); + free(name); +} + +// SelectStatement.h + +// OrderDescription +OrderDescription::OrderDescription(OrderType type, Expr* expr) : type(type), expr(expr) {} + +OrderDescription::~OrderDescription() { delete expr; } + +// LimitDescription +LimitDescription::LimitDescription(Expr* limit, Expr* offset) : limit(limit), offset(offset) {} + +LimitDescription::~LimitDescription() { + delete limit; + delete offset; +} + +// GroypByDescription +GroupByDescription::GroupByDescription() : columns(nullptr), having(nullptr) {} + +GroupByDescription::~GroupByDescription() { + delete having; + + if (columns) { + for (Expr* expr : *columns) { + delete expr; + } + delete columns; + } +} + +WithDescription::~WithDescription() { + free(alias); + delete select; +} + +// SelectStatement +SelectStatement::SelectStatement() + : SQLStatement(kStmtSelect), + fromTable(nullptr), + selectDistinct(false), + selectList(nullptr), + whereClause(nullptr), + groupBy(nullptr), + setOperations(nullptr), + order(nullptr), + withDescriptions(nullptr), + limit(nullptr), + lockings(nullptr) {} + +SelectStatement::~SelectStatement() { + delete fromTable; + delete whereClause; + delete groupBy; + delete limit; + + // Delete each element in the select list. + if (selectList) { + for (Expr* expr : *selectList) { + delete expr; + } + delete selectList; + } + + if (order) { + for (OrderDescription* desc : *order) { + delete desc; + } + delete order; + } + + if (withDescriptions) { + for (WithDescription* desc : *withDescriptions) { + delete desc; + } + delete withDescriptions; + } + + if (setOperations) { + for (SetOperation* setOperation : *setOperations) { + delete setOperation; + } + delete setOperations; + } + + if (lockings) { + for (LockingClause* lockingClause : *lockings) { + if (lockingClause->tables) { + for (char* dtable : *lockingClause->tables) { + free(dtable); + } + delete lockingClause->tables; + } + delete lockingClause; + } + delete lockings; + } +} + +// UpdateStatement +UpdateStatement::UpdateStatement() : SQLStatement(kStmtUpdate), table(nullptr), updates(nullptr), where(nullptr) {} + +UpdateStatement::~UpdateStatement() { + delete table; + delete where; + + if (updates) { + for (UpdateClause* update : *updates) { + free(update->column); + delete update->value; + delete update; + } + delete updates; + } +} + +// Alias +Alias::Alias(char* name, std::vector* columns) : name(name), columns(columns) {} + +Alias::~Alias() { + free(name); + if (columns) { + for (char* column : *columns) { + free(column); + } + delete columns; + } +} + +// TableRef +TableRef::TableRef(TableRefType type) + : type(type), schema(nullptr), name(nullptr), alias(nullptr), select(nullptr), list(nullptr), join(nullptr) {} + +TableRef::~TableRef() { + free(schema); + free(name); + + delete select; + delete join; + delete alias; + + if (list) { + for (TableRef* table : *list) { + delete table; + } + delete list; + } +} + +bool TableRef::hasSchema() const { return schema != nullptr; } + +const char* TableRef::getName() const { + if (alias) + return alias->name; + else + return name; +} + +// JoinDefinition +JoinDefinition::JoinDefinition() : left(nullptr), right(nullptr), condition(nullptr), type(kJoinInner) {} + +JoinDefinition::~JoinDefinition() { + delete left; + delete right; + delete condition; +} + +SetOperation::SetOperation() : nestedSelectStatement(nullptr), resultOrder(nullptr), resultLimit(nullptr) {} + +SetOperation::~SetOperation() { + delete nestedSelectStatement; + delete resultLimit; + + if (resultOrder) { + for (OrderDescription* desc : *resultOrder) { + delete desc; + } + delete resultOrder; + } +} + +} // namespace hsql diff --git a/Data/src/sql-parser/src/sql/statements.h b/Data/src/sql-parser/src/sql/statements.h new file mode 100644 index 000000000..c9ee00ce4 --- /dev/null +++ b/Data/src/sql-parser/src/sql/statements.h @@ -0,0 +1,18 @@ +#ifndef SQLPARSER_STATEMENTS_H +#define SQLPARSER_STATEMENTS_H + +#include "AlterStatement.h" +#include "CreateStatement.h" +#include "DeleteStatement.h" +#include "DropStatement.h" +#include "ExecuteStatement.h" +#include "ExportStatement.h" +#include "ImportStatement.h" +#include "InsertStatement.h" +#include "PrepareStatement.h" +#include "SelectStatement.h" +#include "ShowStatement.h" +#include "TransactionStatement.h" +#include "UpdateStatement.h" + +#endif // SQLPARSER_STATEMENTS_H diff --git a/Data/src/sql-parser/src/sqlparser_win.h b/Data/src/sql-parser/src/sqlparser_win.h new file mode 100644 index 000000000..5414b93aa --- /dev/null +++ b/Data/src/sql-parser/src/sqlparser_win.h @@ -0,0 +1,18 @@ +#ifndef SQLPARSER_SQLPARSER_WIN_H +#define SQLPARSER_SQLPARSER_WIN_H + + +#if defined(_WIN32) || defined(_WIN64) + #if defined(_MSC_VER) + #define strncasecmp _strnicmp + #define strcasecmp _stricmp + #endif + #if defined(SQLParser_EXPORTS) + #define SQLParser_API __declspec(dllexport) + #else + #define SQLParser_API __declspec(dllimport) + #endif +#endif + + +#endif // SQLPARSER_SQLPARSER_WIN_H diff --git a/Data/src/sql-parser/src/util/sqlhelper.cpp b/Data/src/sql-parser/src/util/sqlhelper.cpp new file mode 100644 index 000000000..7c2f16d98 --- /dev/null +++ b/Data/src/sql-parser/src/util/sqlhelper.cpp @@ -0,0 +1,497 @@ + +#include "sqlhelper.h" +#include +#include +#include +#include + +namespace hsql { + +void printOperatorExpression(Expr* expr, uintmax_t num_indent); +void printAlias(Alias* alias, uintmax_t num_indent); + +std::ostream& operator<<(std::ostream& os, const OperatorType& op); +std::ostream& operator<<(std::ostream& os, const DatetimeField& datetime); +std::ostream& operator<<(std::ostream& os, const FrameBound& frame_bound); + +std::string indent(uintmax_t num_indent) { return std::string(num_indent, '\t'); } +void inprint(int64_t val, uintmax_t num_indent) { std::cout << indent(num_indent).c_str() << val << " " << std::endl; } +void inprint(double val, uintmax_t num_indent) { std::cout << indent(num_indent).c_str() << val << std::endl; } +void inprint(const char* val, uintmax_t num_indent) { std::cout << indent(num_indent).c_str() << val << std::endl; } +void inprint(const char* val, const char* val2, uintmax_t num_indent) { + std::cout << indent(num_indent).c_str() << val << "->" << val2 << std::endl; +} +void inprintC(char val, uintmax_t num_indent) { std::cout << indent(num_indent).c_str() << val << std::endl; } +void inprint(const OperatorType& op, uintmax_t num_indent) { std::cout << indent(num_indent) << op << std::endl; } +void inprint(const ColumnType& colType, uintmax_t num_indent) { + std::cout << indent(num_indent) << colType << std::endl; +} +void inprint(const DatetimeField& colType, uintmax_t num_indent) { + std::cout << indent(num_indent) << colType << std::endl; +} + +void printTableRefInfo(TableRef* table, uintmax_t num_indent) { + switch (table->type) { + case kTableName: + inprint(table->name, num_indent); + if (table->schema) { + inprint("Schema", num_indent + 1); + inprint(table->schema, num_indent + 2); + } + break; + case kTableSelect: + printSelectStatementInfo(table->select, num_indent); + break; + case kTableJoin: + inprint("Join Table", num_indent); + inprint("Left", num_indent + 1); + printTableRefInfo(table->join->left, num_indent + 2); + inprint("Right", num_indent + 1); + printTableRefInfo(table->join->right, num_indent + 2); + inprint("Join Condition", num_indent + 1); + printExpression(table->join->condition, num_indent + 2); + break; + case kTableCrossProduct: + for (TableRef* tbl : *table->list) printTableRefInfo(tbl, num_indent); + break; + } + + if (table->alias) { + printAlias(table->alias, num_indent); + } +} + +void printAlias(Alias* alias, uintmax_t num_indent) { + inprint("Alias", num_indent + 1); + inprint(alias->name, num_indent + 2); + + if (alias->columns) { + for (char* column : *(alias->columns)) { + inprint(column, num_indent + 3); + } + } +} + +void printOperatorExpression(Expr* expr, uintmax_t num_indent) { + if (expr == nullptr) { + inprint("null", num_indent); + return; + } + + inprint(expr->opType, num_indent); + + printExpression(expr->expr, num_indent + 1); + if (expr->expr2) { + printExpression(expr->expr2, num_indent + 1); + } else if (expr->exprList) { + for (Expr* e : *expr->exprList) printExpression(e, num_indent + 1); + } +} + +void printExpression(Expr* expr, uintmax_t num_indent) { + if (!expr) return; + switch (expr->type) { + case kExprStar: + inprint("*", num_indent); + break; + case kExprColumnRef: + inprint(expr->name, num_indent); + if (expr->table) { + inprint("Table:", num_indent + 1); + inprint(expr->table, num_indent + 2); + } + break; + // case kExprTableColumnRef: inprint(expr->table, expr->name, num_indent); break; + case kExprLiteralFloat: + inprint(expr->fval, num_indent); + break; + case kExprLiteralInt: + inprint(expr->ival, num_indent); + break; + case kExprLiteralString: + inprint(expr->name, num_indent); + break; + case kExprLiteralDate: + inprint(expr->name, num_indent); + break; + case kExprLiteralNull: + inprint("NULL", num_indent); + break; + case kExprLiteralInterval: + inprint("INTERVAL", num_indent); + inprint(expr->ival, num_indent + 1); + inprint(expr->datetimeField, num_indent + 1); + break; + case kExprFunctionRef: + inprint(expr->name, num_indent); + for (Expr* e : *expr->exprList) { + printExpression(e, num_indent + 1); + } + + if (expr->windowDescription) { + printWindowDescription(expr->windowDescription, num_indent + 1); + } + break; + case kExprExtract: + inprint("EXTRACT", num_indent); + inprint(expr->datetimeField, num_indent + 1); + printExpression(expr->expr, num_indent + 1); + break; + case kExprCast: + inprint("CAST", num_indent); + inprint(expr->columnType, num_indent + 1); + printExpression(expr->expr, num_indent + 1); + break; + case kExprOperator: + printOperatorExpression(expr, num_indent); + break; + case kExprSelect: + printSelectStatementInfo(expr->select, num_indent); + break; + case kExprParameter: + inprint(expr->ival, num_indent); + break; + case kExprArray: + for (Expr* e : *expr->exprList) { + printExpression(e, num_indent + 1); + } + break; + case kExprArrayIndex: + printExpression(expr->expr, num_indent + 1); + inprint(expr->ival, num_indent); + break; + default: + std::cerr << "Unrecognized expression type " << expr->type << std::endl; + return; + } + if (expr->alias) { + inprint("Alias", num_indent + 1); + inprint(expr->alias, num_indent + 2); + } +} + +void printOrderBy(const std::vector* expr, uintmax_t num_indent) { + if (!expr) return; + for (const auto& order_description : *expr) { + printExpression(order_description->expr, num_indent); + if (order_description->type == kOrderAsc) { + inprint("ascending", num_indent); + } else { + inprint("descending", num_indent); + } + } +} + +void printWindowDescription(WindowDescription* window_description, uintmax_t num_indent) { + inprint("OVER", num_indent); + if (window_description->partitionList) { + inprint("PARTITION BY", num_indent + 1); + for (const auto e : *window_description->partitionList) { + printExpression(e, num_indent + 2); + } + } + + if (window_description->orderList) { + inprint("ORDER BY", num_indent + 1); + printOrderBy(window_description->orderList, num_indent + 2); + } + + std::stringstream stream; + switch (window_description->frameDescription->type) { + case kRows: + stream << "ROWS"; + break; + case kRange: + stream << "RANGE"; + break; + case kGroups: + stream << "GROUPS"; + break; + } + stream << " BETWEEN " << *window_description->frameDescription->start << " AND " + << *window_description->frameDescription->end; + inprint(stream.str().c_str(), num_indent + 1); +} + +void printSelectStatementInfo(const SelectStatement* stmt, uintmax_t num_indent) { + inprint("SelectStatement", num_indent); + inprint("Fields:", num_indent + 1); + for (Expr* expr : *stmt->selectList) printExpression(expr, num_indent + 2); + + if (stmt->fromTable) { + inprint("Sources:", num_indent + 1); + printTableRefInfo(stmt->fromTable, num_indent + 2); + } + + if (stmt->whereClause) { + inprint("Search Conditions:", num_indent + 1); + printExpression(stmt->whereClause, num_indent + 2); + } + + if (stmt->groupBy) { + inprint("GroupBy:", num_indent + 1); + for (Expr* expr : *stmt->groupBy->columns) printExpression(expr, num_indent + 2); + if (stmt->groupBy->having) { + inprint("Having:", num_indent + 1); + printExpression(stmt->groupBy->having, num_indent + 2); + } + } + if (stmt->lockings) { + inprint("Lock Info:", num_indent + 1); + for (LockingClause* lockingClause : *stmt->lockings) { + inprint("Type", num_indent + 2); + if (lockingClause->rowLockMode == RowLockMode::ForUpdate) { + inprint("FOR UPDATE", num_indent + 3); + } else if (lockingClause->rowLockMode == RowLockMode::ForNoKeyUpdate) { + inprint("FOR NO KEY UPDATE", num_indent + 3); + } else if (lockingClause->rowLockMode == RowLockMode::ForShare) { + inprint("FOR SHARE", num_indent + 3); + } else if (lockingClause->rowLockMode == RowLockMode::ForKeyShare) { + inprint("FOR KEY SHARE", num_indent + 3); + } + if (lockingClause->tables) { + inprint("Target tables:", num_indent + 2); + for (char* dtable : *lockingClause->tables) { + inprint(dtable, num_indent + 3); + } + } + if (lockingClause->rowLockWaitPolicy != RowLockWaitPolicy::None) { + inprint("Waiting policy: ", num_indent + 2); + if (lockingClause->rowLockWaitPolicy == RowLockWaitPolicy::NoWait) + inprint("NOWAIT", num_indent + 3); + else + inprint("SKIP LOCKED", num_indent + 3); + } + } + } + + if (stmt->setOperations) { + for (SetOperation* setOperation : *stmt->setOperations) { + switch (setOperation->setType) { + case SetType::kSetIntersect: + inprint("Intersect:", num_indent + 1); + break; + case SetType::kSetUnion: + inprint("Union:", num_indent + 1); + break; + case SetType::kSetExcept: + inprint("Except:", num_indent + 1); + break; + } + + printSelectStatementInfo(setOperation->nestedSelectStatement, num_indent + 2); + + if (setOperation->resultOrder) { + inprint("SetResultOrderBy:", num_indent + 1); + printOrderBy(setOperation->resultOrder, num_indent + 2); + } + + if (setOperation->resultLimit) { + if (setOperation->resultLimit->limit) { + inprint("SetResultLimit:", num_indent + 1); + printExpression(setOperation->resultLimit->limit, num_indent + 2); + } + + if (setOperation->resultLimit->offset) { + inprint("SetResultOffset:", num_indent + 1); + printExpression(setOperation->resultLimit->offset, num_indent + 2); + } + } + } + } + + if (stmt->order) { + inprint("OrderBy:", num_indent + 1); + printOrderBy(stmt->order, num_indent + 2); + } + + if (stmt->limit && stmt->limit->limit) { + inprint("Limit:", num_indent + 1); + printExpression(stmt->limit->limit, num_indent + 2); + } + + if (stmt->limit && stmt->limit->offset) { + inprint("Offset:", num_indent + 1); + printExpression(stmt->limit->offset, num_indent + 2); + } +} + +void printImportStatementInfo(const ImportStatement* stmt, uintmax_t num_indent) { + inprint("ImportStatement", num_indent); + inprint(stmt->filePath, num_indent + 1); + switch (stmt->type) { + case ImportType::kImportCSV: + inprint("CSV", num_indent + 1); + break; + case ImportType::kImportTbl: + inprint("TBL", num_indent + 1); + break; + case ImportType::kImportBinary: + inprint("BINARY", num_indent + 1); + break; + case ImportType::kImportAuto: + inprint("AUTO", num_indent + 1); + break; + } + inprint(stmt->tableName, num_indent + 1); + if (stmt->whereClause) { + inprint("WHERE:", num_indent + 1); + printExpression(stmt->whereClause, num_indent + 2); + } +} + +void printExportStatementInfo(const ExportStatement* stmt, uintmax_t num_indent) { + inprint("ExportStatement", num_indent); + inprint(stmt->filePath, num_indent + 1); + switch (stmt->type) { + case ImportType::kImportCSV: + inprint("CSV", num_indent + 1); + break; + case ImportType::kImportTbl: + inprint("TBL", num_indent + 1); + break; + case ImportType::kImportBinary: + inprint("BINARY", num_indent + 1); + break; + case ImportType::kImportAuto: + inprint("AUTO", num_indent + 1); + break; + } + + if (stmt->tableName) { + inprint(stmt->tableName, num_indent + 1); + } else { + printSelectStatementInfo(stmt->select, num_indent + 1); + } +} + +void printCreateStatementInfo(const CreateStatement* stmt, uintmax_t num_indent) { + inprint("CreateStatement", num_indent); + inprint(stmt->tableName, num_indent + 1); + if (stmt->filePath) inprint(stmt->filePath, num_indent + 1); +} + +void printInsertStatementInfo(const InsertStatement* stmt, uintmax_t num_indent) { + inprint("InsertStatement", num_indent); + inprint(stmt->tableName, num_indent + 1); + if (stmt->columns) { + inprint("Columns", num_indent + 1); + for (char* col_name : *stmt->columns) { + inprint(col_name, num_indent + 2); + } + } + switch (stmt->type) { + case kInsertValues: + inprint("Values", num_indent + 1); + for (Expr* expr : *stmt->values) { + printExpression(expr, num_indent + 2); + } + break; + case kInsertSelect: + printSelectStatementInfo(stmt->select, num_indent + 1); + break; + } +} + +void printTransactionStatementInfo(const TransactionStatement* stmt, uintmax_t num_indent) { + inprint("TransactionStatement", num_indent); + switch (stmt->command) { + case kBeginTransaction: + inprint("BEGIN", num_indent + 1); + break; + case kCommitTransaction: + inprint("COMMIT", num_indent + 1); + break; + case kRollbackTransaction: + inprint("ROLLBACK", num_indent + 1); + break; + } +} + +void printStatementInfo(const SQLStatement* stmt) { + switch (stmt->type()) { + case kStmtSelect: + printSelectStatementInfo((const SelectStatement*)stmt, 0); + break; + case kStmtInsert: + printInsertStatementInfo((const InsertStatement*)stmt, 0); + break; + case kStmtCreate: + printCreateStatementInfo((const CreateStatement*)stmt, 0); + break; + case kStmtImport: + printImportStatementInfo((const ImportStatement*)stmt, 0); + break; + case kStmtExport: + printExportStatementInfo((const ExportStatement*)stmt, 0); + break; + case kStmtTransaction: + printTransactionStatementInfo((const TransactionStatement*)stmt, 0); + break; + default: + break; + } +} + +std::ostream& operator<<(std::ostream& os, const OperatorType& op) { + static const std::map operatorToToken = { + {kOpNone, "None"}, {kOpBetween, "BETWEEN"}, + {kOpCase, "CASE"}, {kOpCaseListElement, "CASE LIST ELEMENT"}, + {kOpPlus, "+"}, {kOpMinus, "-"}, + {kOpAsterisk, "*"}, {kOpSlash, "/"}, + {kOpPercentage, "%"}, {kOpCaret, "^"}, + {kOpEquals, "="}, {kOpNotEquals, "!="}, + {kOpLess, "<"}, {kOpLessEq, "<="}, + {kOpGreater, ">"}, {kOpGreaterEq, ">="}, + {kOpLike, "LIKE"}, {kOpNotLike, "NOT LIKE"}, + {kOpILike, "ILIKE"}, {kOpAnd, "AND"}, + {kOpOr, "OR"}, {kOpIn, "IN"}, + {kOpConcat, "CONCAT"}, {kOpNot, "NOT"}, + {kOpUnaryMinus, "-"}, {kOpIsNull, "IS NULL"}, + {kOpExists, "EXISTS"}}; + + const auto found = operatorToToken.find(op); + if (found == operatorToToken.cend()) { + return os << static_cast(op); + } else { + return os << (*found).second; + } +} + +std::ostream& operator<<(std::ostream& os, const DatetimeField& datetime) { + static const std::map operatorToToken = { + {kDatetimeNone, "None"}, {kDatetimeSecond, "SECOND"}, {kDatetimeMinute, "MINUTE"}, {kDatetimeHour, "HOUR"}, + {kDatetimeDay, "DAY"}, {kDatetimeMonth, "MONTH"}, {kDatetimeYear, "YEAR"}}; + + const auto found = operatorToToken.find(datetime); + if (found == operatorToToken.cend()) { + return os << static_cast(datetime); + } else { + return os << (*found).second; + } +} + +std::ostream& operator<<(std::ostream& os, const FrameBound& frame_bound) { + if (frame_bound.type == kCurrentRow) { + os << "CURRENT ROW"; + return os; + } + + if (frame_bound.unbounded) { + os << "UNBOUNDED"; + } else { + os << frame_bound.offset; + } + + os << " "; + + if (frame_bound.type == kPreceding) { + os << "PRECEDING"; + } else { + os << "FOLLOWING"; + } + + return os; +} + +} // namespace hsql diff --git a/Data/src/sql-parser/src/util/sqlhelper.h b/Data/src/sql-parser/src/util/sqlhelper.h new file mode 100644 index 000000000..5167e277d --- /dev/null +++ b/Data/src/sql-parser/src/util/sqlhelper.h @@ -0,0 +1,41 @@ +#ifndef SQLPARSER_SQLHELPER_H +#define SQLPARSER_SQLHELPER_H + +#include "../sqlparser_win.h" +#include "../sql/statements.h" + +namespace hsql { + +// Prints a summary of the given SQLStatement. +void SQLParser_API printStatementInfo(const SQLStatement* stmt); + +// Prints a summary of the given SelectStatement with the given indentation. +void SQLParser_API printSelectStatementInfo(const SelectStatement* stmt, uintmax_t num_indent); + +// Prints a summary of the given ImportStatement with the given indentation. +void SQLParser_API printImportStatementInfo(const ImportStatement* stmt, uintmax_t num_indent); + +// Prints a summary of the given CopyStatement with the given indentation. +void SQLParser_API printExportStatementInfo(const ExportStatement* stmt, uintmax_t num_indent); + +// Prints a summary of the given InsertStatement with the given indentation. +void SQLParser_API printInsertStatementInfo(const InsertStatement* stmt, uintmax_t num_indent); + +// Prints a summary of the given CreateStatement with the given indentation. +void SQLParser_API printCreateStatementInfo(const CreateStatement* stmt, uintmax_t num_indent); + +// Prints a summary of the given TransactionStatement with the given indentation. +void SQLParser_API printTransactionStatementInfo(const TransactionStatement* stmt, uintmax_t num_indent); + +// Prints a summary of the given Expression with the given indentation. +void SQLParser_API printExpression(Expr* expr, uintmax_t num_indent); + +// Prints an ORDER BY clause +void SQLParser_API printOrderBy(const std::vector* expr, uintmax_t num_indent); + +// Prints WindowDescription. +void SQLParser_API printWindowDescription(WindowDescription* window_description, uintmax_t num_indent); + +} // namespace hsql + +#endif diff --git a/Data/src/sql-parser/test/auto_query_file_test.cpp b/Data/src/sql-parser/test/auto_query_file_test.cpp new file mode 100644 index 000000000..627b0399f --- /dev/null +++ b/Data/src/sql-parser/test/auto_query_file_test.cpp @@ -0,0 +1,97 @@ +#include +#include +#include +#include +#include +#include + +#include "SQLParser.h" +#include "thirdparty/microtest/microtest.h" + +// Read all lines from the given file path. Skips comment lines. +std::vector readlines(std::string path); + +// Read the queries from all files that were supplied to the test +// through the -f argument. For all queries it is checked whether they +// can be parsed successfully. +TEST(AutoQueryFileTest) { + const std::vector& args = mt::Runtime::args(); + + std::vector query_files; + + // Parse command line arguments to retrieve query files. + uint i = 1; + for (; i < args.size(); ++i) { + if (args[i] == "-f") { + query_files.push_back(args[++i]); + } + } + + // Read list of queries from all input files. + std::vector lines; + for (std::string path : query_files) { + std::vector tmp = readlines(path); + lines.insert(lines.end(), tmp.begin(), tmp.end()); + } + + // Execute queries. + size_t num_executed = 0; + size_t num_failed = 0; + for (std::string line : lines) { + bool expected_result = true; + std::string query = line; + + // If a line starts with '!' parsing is expected to fail. + if (query.at(0) == '!') { + expected_result = false; + query = query.substr(1); + } + + // Measuring the parsing time. + std::chrono::time_point start, end; + start = std::chrono::system_clock::now(); + + // Parse the query. + hsql::SQLParserResult result; + hsql::SQLParser::parse(query, &result); + + end = std::chrono::system_clock::now(); + std::chrono::duration elapsed_seconds = end - start; + double us = elapsed_seconds.count() * 1000 * 1000; + + if (expected_result == result.isValid()) { + printf("\033[0;32m{ ok} (%.1fus)\033[0m %s\n", us, line.c_str()); + } else { + printf("\033[0;31m{ failed}\033[0m\n"); + printf("\t\033[0;31m%s (L%d:%d)\n\033[0m", result.errorMsg(), result.errorLine(), result.errorColumn()); + printf("\t%s\n", line.c_str()); + ++num_failed; + } + ++num_executed; + } + + if (num_failed == 0) { + printf("\033[0;32m{ ok} \033[0mAll %lu grammar tests completed successfully!\n", num_executed); + } else { + fprintf(stderr, "\033[0;31m{ failed} \033[0mSome grammar tests failed! %lu out of %lu tests failed!\n", num_failed, + num_executed); + } + ASSERT_EQ(num_failed, 0); +} + +std::vector readlines(std::string path) { + std::ifstream infile(path); + std::vector lines; + std::string line; + while (std::getline(infile, line)) { + std::istringstream iss(line); + + // Skip comments. + if (line[0] == '#' || (line[0] == '-' && line[1] == '-')) { + continue; + } + + lines.push_back(line); + } + return lines; +} diff --git a/Data/src/sql-parser/test/prepare_tests.cpp b/Data/src/sql-parser/test/prepare_tests.cpp new file mode 100644 index 000000000..f653106a3 --- /dev/null +++ b/Data/src/sql-parser/test/prepare_tests.cpp @@ -0,0 +1,84 @@ + +#include "SQLParser.h" +#include "sql_asserts.h" +#include "thirdparty/microtest/microtest.h" + +using hsql::kExprLiteralInt; +using hsql::kExprParameter; + +using hsql::kStmtDrop; +using hsql::kStmtExecute; +using hsql::kStmtInsert; +using hsql::kStmtPrepare; +using hsql::kStmtSelect; + +using hsql::kDropPreparedStatement; + +using hsql::DropStatement; +using hsql::ExecuteStatement; +using hsql::InsertStatement; +using hsql::PrepareStatement; +using hsql::SelectStatement; + +TEST(PrepareSingleStatementTest) { + TEST_PARSE_SINGLE_SQL("PREPARE test FROM 'SELECT * FROM students WHERE grade = ?';", kStmtPrepare, PrepareStatement, + result, prepare); + + ASSERT_STREQ(prepare->name, "test"); + ASSERT_STREQ(prepare->query, "SELECT * FROM students WHERE grade = ?"); + + TEST_PARSE_SINGLE_SQL(prepare->query, kStmtSelect, SelectStatement, result2, select); + + ASSERT_EQ(result2.parameters().size(), 1); + ASSERT(select->whereClause->expr2->isType(kExprParameter)) + ASSERT_EQ(select->whereClause->expr2->ival, 0) +} + +TEST(DeallocatePrepareStatementTest) { + TEST_PARSE_SINGLE_SQL("DEALLOCATE PREPARE test;", kStmtDrop, DropStatement, result, drop); + + ASSERT_EQ(drop->type, kDropPreparedStatement); + ASSERT_STREQ(drop->name, "test"); +} + +TEST(StatementWithParameters) { + TEST_PARSE_SINGLE_SQL("SELECT * FROM test WHERE a = ? AND b = ?", kStmtSelect, SelectStatement, result, stmt); + + const hsql::Expr* eq1 = stmt->whereClause->expr; + const hsql::Expr* eq2 = stmt->whereClause->expr2; + + ASSERT_EQ(result.parameters().size(), 2); + + ASSERT_EQ(eq1->opType, hsql::kOpEquals) + ASSERT(eq1->expr->isType(hsql::kExprColumnRef)) + ASSERT(eq1->expr2->isType(kExprParameter)) + ASSERT_EQ(eq1->expr2->ival, 0) + ASSERT_EQ(result.parameters()[0], eq1->expr2); + + ASSERT_EQ(eq2->opType, hsql::kOpEquals) + ASSERT(eq2->expr->isType(hsql::kExprColumnRef)) + ASSERT(eq2->expr2->isType(kExprParameter)) + ASSERT_EQ(eq2->expr2->ival, 1) + ASSERT_EQ(result.parameters()[1], eq2->expr2); +} + +TEST(ExecuteStatementTest) { + TEST_PARSE_SINGLE_SQL("EXECUTE test(1, 2);", kStmtExecute, ExecuteStatement, result, stmt); + + ASSERT_STREQ(stmt->name, "test"); + ASSERT_EQ(stmt->parameters->size(), 2); +} + +TEST(ExecuteStatementTestNoParam) { + TEST_PARSE_SINGLE_SQL("EXECUTE test();", kStmtExecute, ExecuteStatement, result, stmt); + + ASSERT_STREQ(stmt->name, "test"); + ASSERT_EQ(stmt->parameters, 0); +} + +TEST(ExecuteStatementTestNoParamList) { + TEST_PARSE_SINGLE_SQL("EXECUTE test;", kStmtExecute, ExecuteStatement, result, stmt); + + ASSERT_STREQ(stmt->name, "test"); + ASSERT_EQ(stmt->parameters, 0); +} diff --git a/Data/src/sql-parser/test/queries/queries-bad.sql b/Data/src/sql-parser/test/queries/queries-bad.sql new file mode 100644 index 000000000..96fd4503a --- /dev/null +++ b/Data/src/sql-parser/test/queries/queries-bad.sql @@ -0,0 +1,62 @@ +# This file contains a list of strings that are NOT valid SQL queries. +# Each line contains a single SQL query. +# Each line starts with a '!' char to indicate that parsing should fail. +! +!1 +!gibberish; +!CREATE TABLE "table" FROM TBL FILE 'students.tbl';gibberish +!CREATE TABLE "table" FROM TBL FILE 'students.tbl';1 +!INSERT INTO test_table VALUESd (1, 2, 'test'); +!SELECT * FROM t WHERE a = ? AND b = ?;gibberish; +!SHOW COLUMNS; +!DESCRIBE; +!COPY; +!COPY students; +!COPY students FROM 'students_file' WITH FORMAT XYZ; +!COPY students TO 'students_file' WITH FORMAT XYZ; +!select a + 2 as b(spam, eggs) from B; +!WITH a AS SELECT 1 SELECT 1; +!WITH a AS (SELECT ) SELECT 1; +!WITH a AS (WITH b AS (SELECT 1) SELECT 1) SELECT 1; # We do not support nested WITH clauses +!WITH a AS (SELECT ) b AS (SELECT ) SELECT 1; # Missing comma between WITH descriptions +!BEGIN TRANSACTION transName; # Transaction naming is currently not supported +!SELECT -9223372036854775809; # Out of int64_t range +!SELECT 9223372036854775808; # Out of int64_t range +!SELECT * FROM t WHERE a = DATE 'anystring'; +!SELECT * FROM t WHERE a = DATE '1996-12-310'; +!SELECT * FROM t WHERE a = DATE '1996-120-31'; +!SELECT * FROM t WHERE a = DATE '19960-12-31'; +!SELECT * FROM t WHERE a = DATE 'asdf-gh-jkl'; +!SELECT * FROM t WHERE a = DATE '2000-01-01' + INTERVAL 30; +!SELECT * FROM t WHERE a = DATE '2000-01-01' + INTERVAL 30 DAYS; +!SELECT * FROM t WHERE a = DATE '2000-01-01' + INTERVAL 30 'DAYS'; +!SELECT * FROM t WHERE a = DATE '2000-01-01' + INTERVAL 'DAYS'; +!SELECT * FROM t WHERE a = DATE '2000-01-01' + INTERVAL '1' ANYTHING; +!SELECT * FROM t WHERE a = DATE '2000-01-01' + INTERVAL '1 DAY' DAY; +!SELECT * FROM t WHERE a = DATE '2000-01-01' + INTERVAL '30 ANYTHING'; +!SELECT * FROM t WHERE a = DATE '2000-01-01' + INTERVAL '30' DAYS; +!SELECT * FROM t WHERE a = DATE '2000-01-01' + x DAYS; +!SELECT * FROM t WHERE a = DATE '2000-01-01' + INTERVAL 'x' DAY; +!SELECT * FROM t WHERE a = DATE '2000-01-01' + INTERVAL '3.3 DAYS'; +# ON is not supported by postgres. We follow postgres here since the sql-92 standard does not specify index +# implementation details. +!DROP INDEX myindex ON mytable; +!SELECT * FROM test WHERE val = 2 FOR KEY UPDATE; +!SELECT * FROM test WHERE val = 2 FOR SHARE test1; +!SELECT * FROM test WHERE val = 2 FOR NO KEY SHARE; +!SELECT * FROM test WHERE val = 2 NOWAIT FOR UPDATE; +!CREATE TABLE a_table (a_column INT PRIMARY KEY NULL); +!CREATE TABLE a_table (a_column INT NULL PRIMARY KEY); +!CREATE TABLE a_table (a_column INT NOT NULL NULL); +!CREATE TABLE a_table (a_column INT NULL NOT NULL); +# WINDOW EXPRESSIONS +!SELECT test1, sum(sum(test2)) OVER (PARTITION BY test3 ORDER BY test4 ROWS BETWEEN UNBOUNDED AND CURRENT ROW) FROM test; +!SELECT test1, sum(sum(test2)) OVER (PARTITION BY test3 ORDER BY test4 ROWS BETWEEN -1 PRECEDING AND CURRENT ROW) FROM test; +!SELECT test1, rank() OVER (INVALID UNBOUNDED PRECEDING) FROM test; +!SELECT rank() OVER (INVALID) FROM test; +!SELECT rank OVER () FROM test; +!SELECT a = 1 OVER () FROM test; +!SELECT rank() OVER (ROWS UNBOUNDEDD PRECEDING) FROM test; +!SELECT rank() OVER (ROWS UNBOUNDED PRECEDINGG) FROM test; +!SELECT test1, rank() OVER (ROWS -1 PRECEDING) FROM test; +!SELECT test1, rank() OVER (ROWS BETWEEN UNBOUNDED PRECEDING AND -1 FOLLOWING) FROM test; diff --git a/Data/src/sql-parser/test/queries/queries-good.sql b/Data/src/sql-parser/test/queries/queries-good.sql new file mode 100644 index 000000000..3a4125105 --- /dev/null +++ b/Data/src/sql-parser/test/queries/queries-good.sql @@ -0,0 +1,110 @@ +# This file contains a list of strings that are NOT valid SQL queries. +# Each line contains a single SQL query. +# SELECT statement +SELECT * FROM orders; +SELECT a FROM foo WHERE a > 12 OR b > 3 AND NOT c LIMIT 10 +SELECT a FROM some_schema.foo WHERE a > 12 OR b > 3 AND NOT c LIMIT 10 +SELECT col1 AS myname, col2, 'test' FROM "table", foo AS t WHERE age > 12 AND zipcode = 12345 GROUP BY col1; +SELECT * from "table" JOIN table2 ON a = b WHERE (b OR NOT a) AND a = 12.5 +(SELECT a FROM foo WHERE a > 12 OR b > 3 AND c NOT LIKE 's%' LIMIT 10); +SELECT * FROM "table" LIMIT 10 OFFSET 10; SELECT * FROM another; +SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY col1; +SELECT * FROM (SELECT * FROM t1); +SELECT * FROM t1 UNION (SELECT * FROM t2 UNION SELECT * FROM t3) ORDER BY col1; +SELECT TOP 10 * FROM t1 ORDER BY col1, col2; +SELECT a, MAX(b), MAX(c, d), CUSTOM(q, UP(r)) AS f FROM t1; +SELECT * FROM t WHERE a BETWEEN 1 and c; +SELECT * FROM t WHERE a = ? AND b = ?; +SELECT City.name, Product.category, SUM(price) FROM fact INNER JOIN City ON fact.city_id = City.id INNER JOIN Product ON fact.product_id = Product.id GROUP BY City.name, Product.category; +SELECT SUBSTR(a, 3, 5) FROM t; +SELECT * FROM t WHERE a = DATE '1996-12-31'; +# JOIN +SELECT t1.a, t1.b, t2.c FROM "table" AS t1 JOIN (SELECT * FROM foo JOIN bar ON foo.id = bar.id) t2 ON t1.a = t2.b WHERE (t1.b OR NOT t1.a) AND t2.c = 12.5 +SELECT * FROM t1 JOIN t2 ON c1 = c2; +SELECT a, SUM(b) FROM t2 GROUP BY a HAVING SUM(b) > 100; +# CREATE statement +CREATE TABLE "table" FROM TBL FILE 'students.tbl' +CREATE TABLE IF NOT EXISTS "table" FROM TBL FILE 'students.tbl' +CREATE TABLE students (name TEXT, student_number INTEGER, city TEXT, grade DOUBLE, credits BIGINT) +CREATE TABLE students (name TEXT, student_number INTEGER NOT NULL, city TEXT, grade DOUBLE PRIMARY KEY UNIQUE) +CREATE TABLE teachers (name VARCHAR(30), student_number LONG, city CHAR(10), grade FLOAT) +CREATE TABLE teachers (name VARCHAR(30), student_number LONG, PRIMARY KEY (name, student_number), city CHAR(10), grade FLOAT) +CREATE TABLE teachers (name CHARACTER VARYING(30)); +CREATE TABLE students_2 AS SELECT * FROM students +CREATE TABLE students_3 AS SELECT city, grade FROM students WHERE grade > 3.0 +CREATE TABLE students (date_of_birth DATE, matriculation_date DATETIME, graduation_date TIMESTAMP, graduated BOOLEAN); +# Multiple statements +CREATE TABLE "table" FROM TBL FILE 'students.tbl'; SELECT * FROM "table"; +# INSERT +INSERT INTO test_table VALUES (1, 2, 'test'); +INSERT INTO test_table (id, value, name) VALUES (1, 2, 'test'); +INSERT INTO test_table SELECT * FROM students; +INSERT INTO some_schema.test_table SELECT * FROM another_schema.students; +# DELETE +DELETE FROM students WHERE grade > 3.0 +DELETE FROM students +TRUNCATE students +# UPDATE +UPDATE students SET grade = 1.3 WHERE name = 'Max Mustermann'; +UPDATE students SET grade = 1.3, name='Felix Fürstenberg' WHERE name = 'Max Mustermann'; +UPDATE students SET grade = 1.0; +UPDATE some_schema.students SET grade = 1.0; +# ALTER +ALTER TABLE mytable DROP COLUMN IF EXISTS mycolumn; +ALTER TABLE IF EXISTS mytable DROP COLUMN IF EXISTS mycolumn; +# DROP +DROP TABLE students; +DROP TABLE IF EXISTS students; +DROP VIEW IF EXISTS students; +DROP INDEX myindex; +DROP INDEX IF EXISTS myindex; +# PREPARE +PREPARE prep_inst FROM 'INSERT INTO test VALUES (?, ?, ?)'; +PREPARE prep2 FROM 'INSERT INTO test VALUES (?, 0, 0); INSERT INTO test VALUES (0, ?, 0); INSERT INTO test VALUES (0, 0, ?);'; +EXECUTE prep_inst(1, 2, 3); +EXECUTE prep; +DEALLOCATE PREPARE prep; +# COPY +COPY students FROM 'student.tbl'; +COPY students FROM 'file_path' WITH FORMAT TBL; +COPY students FROM 'file_path' WITH FORMAT CSV; +COPY students FROM 'file_path' WITH FORMAT BIN; +COPY students FROM 'file_path' WITH FORMAT BINARY; +COPY good_students FROM 'file_path' WHERE grade > (SELECT AVG(grade) from alumni); +COPY students TO 'student.tbl'; +COPY students TO 'file_path' WITH FORMAT TBL; +COPY students TO 'file_path' WITH FORMAT CSV; +COPY students TO 'file_path' WITH FORMAT BIN; +COPY students TO 'file_path' WITH FORMAT BINARY; +COPY (SELECT firstname, COUNT(*) FROM students GROUP BY firstname) TO 'student_names.csv'; +# HINTS +SELECT * FROM test WITH HINT(NO_CACHE); +SELECT * FROM test WITH HINT(NO_CACHE, NO_SAMPLING); +SELECT * FROM test WITH HINT(NO_CACHE, SAMPLE_RATE(0.1), OMW(1.0, 'test')); +SHOW TABLES; +SHOW COLUMNS students; +DESCRIBE students; +SELECT * FROM t WHERE a = DATE '2000-01-01' + INTERVAL '30 DAYS'; +SELECT * FROM t WHERE a = DATE '2000-01-01' + INTERVAL '10' DAY; +SELECT * FROM t WHERE a BETWEEN '2000-01-01' AND DATE '2000-01-01' - 1 MONTH; +SELECT (CAST('2002-5-01' as DATE) + INTERVAL '60 days'); +SELECT CAST(student.student_number as BIGINT) FROM student; +SELECT student.name AS character FROM student; +# ROW LOCKING +SELECT * FROM test WHERE id = 1 FOR UPDATE; +SELECT * FROM test WHERE id = 1 FOR SHARE; +SELECT * FROM test WHERE id = 1 FOR NO KEY UPDATE; +SELECT * FROM test WHERE id = 1 FOR KEY SHARE; +SELECT * FROM test WHERE id = 1 FOR UPDATE SKIP LOCKED; +SELECT * FROM test WHERE id = 1 FOR UPDATE NOWAIT; +SELECT * FROM test1, test2 WHERE test1.id = 10 FOR UPDATE OF test1; +SELECT * FROM test1, test2 WHERE test2.val = 2 FOR SHARE OF test1, test2; +SELECT * FROM test1, test2 WHERE test2.val = 2 FOR UPDATE OF test1 FOR SHARE OF test2; +# WINDOW EXPRESSIONS +SELECT test1, sum(sum(test2)) OVER (PARTITION BY test3 ORDER BY test4 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) an_alias FROM test; +SELECT sum(test2)/sum(sum(test2)) OVER (PARTITION BY test1) FROM test GROUP BY test3; +SELECT test1, sum(sum(test2)) OVER (PARTITION BY test3, test4 ORDER BY test5, test6 ROWS BETWEEN 1 PRECEDING AND 2 FOLLOWING) FROM test; +SELECT test1, rank() OVER (ORDER BY test2 DESC, test3 ASC) rnk FROM test; +SELECT rank() OVER () FROM test; +SELECT rank() OVER (PARTITION BY test1) FROM test; +SELECT rank() OVER (PARTITION BY test1 ORDER BY test2) FROM test; diff --git a/Data/src/sql-parser/test/queries/tpc-h-01.sql b/Data/src/sql-parser/test/queries/tpc-h-01.sql new file mode 100644 index 000000000..580b3b52c --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-01.sql @@ -0,0 +1,9 @@ +-- http://www.sqlserver-dba.com/2011/09/this-is-a-followup-on-my-earlier-post-of-sql-server-test-data-generation-testing-tools-i-had-some-requests-for-my-set-up-pr.html +SELECT L_RETURNFLAG, L_LINESTATUS, SUM(L_QUANTITY) AS SUM_QTY, + SUM(L_EXTENDEDPRICE) AS SUM_BASE_PRICE, SUM(L_EXTENDEDPRICE*(1-L_DISCOUNT)) AS SUM_DISC_PRICE, + SUM(L_EXTENDEDPRICE*(1-L_DISCOUNT)*(1+L_TAX)) AS SUM_CHARGE, AVG(L_QUANTITY) AS AVG_QTY, + AVG(L_EXTENDEDPRICE) AS AVG_PRICE, AVG(L_DISCOUNT) AS AVG_DISC, COUNT(*) AS COUNT_ORDER +FROM LINEITEM +WHERE L_SHIPDATE <= dateadd(dd, -90, cast('1998-12-01' as datetime)) +GROUP BY L_RETURNFLAG, L_LINESTATUS +ORDER BY L_RETURNFLAG,L_LINESTATUS \ No newline at end of file diff --git a/Data/src/sql-parser/test/queries/tpc-h-02.sql b/Data/src/sql-parser/test/queries/tpc-h-02.sql new file mode 100644 index 000000000..c40be7376 --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-02.sql @@ -0,0 +1,10 @@ +-- http://www.sqlserver-dba.com/2011/09/this-is-a-followup-on-my-earlier-post-of-sql-server-test-data-generation-testing-tools-i-had-some-requests-for-my-set-up-pr.html +SELECT TOP 100 S_ACCTBAL, S_NAME, N_NAME, P_PARTKEY, P_MFGR, S_ADDRESS, S_PHONE, S_COMMENT +FROM PART, SUPPLIER, PARTSUPP, NATION, REGION +WHERE P_PARTKEY = PS_PARTKEY AND S_SUPPKEY = PS_SUPPKEY AND P_SIZE = 15 AND +P_TYPE LIKE '%%BRASS' AND S_NATIONKEY = N_NATIONKEY AND N_REGIONKEY = R_REGIONKEY AND +R_NAME = 'EUROPE' AND +PS_SUPPLYCOST = (SELECT MIN(PS_SUPPLYCOST) FROM PARTSUPP, SUPPLIER, NATION, REGION + WHERE P_PARTKEY = PS_PARTKEY AND S_SUPPKEY = PS_SUPPKEY + AND S_NATIONKEY = N_NATIONKEY AND N_REGIONKEY = R_REGIONKEY AND R_NAME = 'EUROPE') +ORDER BY S_ACCTBAL DESC, N_NAME, S_NAME, P_PARTKEY \ No newline at end of file diff --git a/Data/src/sql-parser/test/queries/tpc-h-03.sql b/Data/src/sql-parser/test/queries/tpc-h-03.sql new file mode 100644 index 000000000..5608c1420 --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-03.sql @@ -0,0 +1,7 @@ +-- http://www.sqlserver-dba.com/2011/09/this-is-a-followup-on-my-earlier-post-of-sql-server-test-data-generation-testing-tools-i-had-some-requests-for-my-set-up-pr.html +SELECT TOP 10 L_ORDERKEY, SUM(L_EXTENDEDPRICE*(1-L_DISCOUNT)) AS REVENUE, O_ORDERDATE, O_SHIPPRIORITY +FROM CUSTOMER, ORDERS, LINEITEM +WHERE C_MKTSEGMENT = 'BUILDING' AND C_CUSTKEY = O_CUSTKEY AND L_ORDERKEY = O_ORDERKEY AND +O_ORDERDATE < '1995-03-15' AND L_SHIPDATE > '1995-03-15' +GROUP BY L_ORDERKEY, O_ORDERDATE, O_SHIPPRIORITY +ORDER BY REVENUE DESC, O_ORDERDATE; \ No newline at end of file diff --git a/Data/src/sql-parser/test/queries/tpc-h-04.sql b/Data/src/sql-parser/test/queries/tpc-h-04.sql new file mode 100644 index 000000000..3d420b381 --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-04.sql @@ -0,0 +1,6 @@ +-- http://www.sqlserver-dba.com/2011/09/this-is-a-followup-on-my-earlier-post-of-sql-server-test-data-generation-testing-tools-i-had-some-requests-for-my-set-up-pr.html +SELECT O_ORDERPRIORITY, COUNT(*) AS ORDER_COUNT FROM ORDERS +WHERE O_ORDERDATE >= '1993-07-01' AND O_ORDERDATE < dateadd(mm,3, cast('1993-07-01' as datetime)) +AND EXISTS (SELECT * FROM LINEITEM WHERE L_ORDERKEY = O_ORDERKEY AND L_COMMITDATE < L_RECEIPTDATE) +GROUP BY O_ORDERPRIORITY +ORDER BY O_ORDERPRIORITY \ No newline at end of file diff --git a/Data/src/sql-parser/test/queries/tpc-h-05.sql b/Data/src/sql-parser/test/queries/tpc-h-05.sql new file mode 100644 index 000000000..95d292328 --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-05.sql @@ -0,0 +1,9 @@ +-- http://www.sqlserver-dba.com/2011/09/this-is-a-followup-on-my-earlier-post-of-sql-server-test-data-generation-testing-tools-i-had-some-requests-for-my-set-up-pr.html +SELECT N_NAME, SUM(L_EXTENDEDPRICE*(1-L_DISCOUNT)) AS REVENUE +FROM CUSTOMER, ORDERS, LINEITEM, SUPPLIER, NATION, REGION +WHERE C_CUSTKEY = O_CUSTKEY AND L_ORDERKEY = O_ORDERKEY AND L_SUPPKEY = S_SUPPKEY +AND C_NATIONKEY = S_NATIONKEY AND S_NATIONKEY = N_NATIONKEY AND N_REGIONKEY = R_REGIONKEY +AND R_NAME = 'ASIA' AND O_ORDERDATE >= '1994-01-01' +AND O_ORDERDATE < DATEADD(YY, 1, cast('1994-01-01' as datetime)) +GROUP BY N_NAME +ORDER BY REVENUE DESC \ No newline at end of file diff --git a/Data/src/sql-parser/test/queries/tpc-h-06.sql b/Data/src/sql-parser/test/queries/tpc-h-06.sql new file mode 100644 index 000000000..394bba9f8 --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-06.sql @@ -0,0 +1,5 @@ +-- http://www.sqlserver-dba.com/2011/09/this-is-a-followup-on-my-earlier-post-of-sql-server-test-data-generation-testing-tools-i-had-some-requests-for-my-set-up-pr.html +SELECT SUM(L_EXTENDEDPRICE*L_DISCOUNT) AS REVENUE +FROM LINEITEM +WHERE L_SHIPDATE >= '1994-01-01' AND L_SHIPDATE < dateadd(yy, 1, cast('1994-01-01' as datetime)) +AND L_DISCOUNT BETWEEN .06 - 0.01 AND .06 + 0.01 AND L_QUANTITY < 24 \ No newline at end of file diff --git a/Data/src/sql-parser/test/queries/tpc-h-07.sql b/Data/src/sql-parser/test/queries/tpc-h-07.sql new file mode 100644 index 000000000..449cc2609 --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-07.sql @@ -0,0 +1,11 @@ +-- http://www.sqlserver-dba.com/2011/09/this-is-a-followup-on-my-earlier-post-of-sql-server-test-data-generation-testing-tools-i-had-some-requests-for-my-set-up-pr.html +SELECT SUPP_NATION, CUST_NATION, L_YEAR, SUM(VOLUME) AS REVENUE +FROM ( SELECT N1.N_NAME AS SUPP_NATION, N2.N_NAME AS CUST_NATION, datepart(yy, L_SHIPDATE) AS L_YEAR, + L_EXTENDEDPRICE*(1-L_DISCOUNT) AS VOLUME + FROM SUPPLIER, LINEITEM, ORDERS, CUSTOMER, NATION N1, NATION N2 + WHERE S_SUPPKEY = L_SUPPKEY AND O_ORDERKEY = L_ORDERKEY AND C_CUSTKEY = O_CUSTKEY + AND S_NATIONKEY = N1.N_NATIONKEY AND C_NATIONKEY = N2.N_NATIONKEY AND ((N1.N_NAME = 'FRANCE' AND N2.N_NAME = 'GERMANY') OR + (N1.N_NAME = 'GERMANY' AND N2.N_NAME = 'FRANCE')) AND + L_SHIPDATE BETWEEN '1995-01-01' AND '1996-12-31' ) AS SHIPPING +GROUP BY SUPP_NATION, CUST_NATION, L_YEAR +ORDER BY SUPP_NATION, CUST_NATION, L_YEAR \ No newline at end of file diff --git a/Data/src/sql-parser/test/queries/tpc-h-08.sql b/Data/src/sql-parser/test/queries/tpc-h-08.sql new file mode 100644 index 000000000..77f8c64a8 --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-08.sql @@ -0,0 +1,10 @@ +-- http://www.sqlserver-dba.com/2011/09/this-is-a-followup-on-my-earlier-post-of-sql-server-test-data-generation-testing-tools-i-had-some-requests-for-my-set-up-pr.html +SELECT O_YEAR, SUM(CASE WHEN NATION = 'BRAZIL' THEN VOLUME ELSE 0 END)/SUM(VOLUME) AS MKT_SHARE +FROM (SELECT datepart(yy,O_ORDERDATE) AS O_YEAR, L_EXTENDEDPRICE*(1-L_DISCOUNT) AS VOLUME, N2.N_NAME AS NATION + FROM "PART", SUPPLIER, LINEITEM, ORDERS, CUSTOMER, NATION N1, NATION N2, REGION + WHERE P_PARTKEY = L_PARTKEY AND S_SUPPKEY = L_SUPPKEY AND L_ORDERKEY = O_ORDERKEY + AND O_CUSTKEY = C_CUSTKEY AND C_NATIONKEY = N1.N_NATIONKEY AND + N1.N_REGIONKEY = R_REGIONKEY AND R_NAME = 'AMERICA' AND S_NATIONKEY = N2.N_NATIONKEY + AND O_ORDERDATE BETWEEN '1995-01-01' AND '1996-12-31' AND P_TYPE= 'ECONOMY ANODIZED STEEL') AS ALL_NATIONS +GROUP BY O_YEAR +ORDER BY O_YEAR \ No newline at end of file diff --git a/Data/src/sql-parser/test/queries/tpc-h-09.sql b/Data/src/sql-parser/test/queries/tpc-h-09.sql new file mode 100644 index 000000000..bb9fd6f3c --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-09.sql @@ -0,0 +1,10 @@ +-- http://www.sqlserver-dba.com/2011/09/this-is-a-followup-on-my-earlier-post-of-sql-server-test-data-generation-testing-tools-i-had-some-requests-for-my-set-up-pr.html +SELECT NATION, O_YEAR, SUM(AMOUNT) AS SUM_PROFIT +FROM (SELECT N_NAME AS NATION, datepart(yy, O_ORDERDATE) AS O_YEAR, + L_EXTENDEDPRICE*(1-L_DISCOUNT)-PS_SUPPLYCOST*L_QUANTITY AS AMOUNT + FROM "PART", SUPPLIER, LINEITEM, PARTSUPP, ORDERS, NATION + WHERE S_SUPPKEY = L_SUPPKEY AND PS_SUPPKEY= L_SUPPKEY AND PS_PARTKEY = L_PARTKEY AND + P_PARTKEY= L_PARTKEY AND O_ORDERKEY = L_ORDERKEY AND S_NATIONKEY = N_NATIONKEY AND + P_NAME LIKE '%%green%%') AS PROFIT +GROUP BY NATION, O_YEAR +ORDER BY NATION, O_YEAR DESC \ No newline at end of file diff --git a/Data/src/sql-parser/test/queries/tpc-h-10.sql b/Data/src/sql-parser/test/queries/tpc-h-10.sql new file mode 100644 index 000000000..7229b24eb --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-10.sql @@ -0,0 +1,9 @@ +-- http://www.sqlserver-dba.com/2011/09/this-is-a-followup-on-my-earlier-post-of-sql-server-test-data-generation-testing-tools-i-had-some-requests-for-my-set-up-pr.html +SELECT TOP 20 C_CUSTKEY, C_NAME, SUM(L_EXTENDEDPRICE*(1-L_DISCOUNT)) AS REVENUE, C_ACCTBAL, +N_NAME, C_ADDRESS, C_PHONE, C_COMMENT +FROM CUSTOMER, ORDERS, LINEITEM, NATION +WHERE C_CUSTKEY = O_CUSTKEY AND L_ORDERKEY = O_ORDERKEY AND O_ORDERDATE>= '1993-10-01' AND +O_ORDERDATE < dateadd(mm, 3, cast('1993-10-01' as datetime)) AND +L_RETURNFLAG = 'R' AND C_NATIONKEY = N_NATIONKEY +GROUP BY C_CUSTKEY, C_NAME, C_ACCTBAL, C_PHONE, N_NAME, C_ADDRESS, C_COMMENT +ORDER BY REVENUE DESC \ No newline at end of file diff --git a/Data/src/sql-parser/test/queries/tpc-h-11.sql b/Data/src/sql-parser/test/queries/tpc-h-11.sql new file mode 100644 index 000000000..41954bb45 --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-11.sql @@ -0,0 +1,10 @@ +-- http://www.sqlserver-dba.com/2011/09/this-is-a-followup-on-my-earlier-post-of-sql-server-test-data-generation-testing-tools-i-had-some-requests-for-my-set-up-pr.html +-- TPC_H Query 11 - Important Stock Identification +SELECT PS_PARTKEY, SUM(PS_SUPPLYCOST*PS_AVAILQTY) AS VALUE +FROM PARTSUPP, SUPPLIER, NATION +WHERE PS_SUPPKEY = S_SUPPKEY AND S_NATIONKEY = N_NATIONKEY AND N_NAME = 'GERMANY' +GROUP BY PS_PARTKEY +HAVING SUM(PS_SUPPLYCOST*PS_AVAILQTY) > (SELECT SUM(PS_SUPPLYCOST*PS_AVAILQTY) * 0.0001000000 + FROM PARTSUPP, SUPPLIER, NATION + WHERE PS_SUPPKEY = S_SUPPKEY AND S_NATIONKEY = N_NATIONKEY AND N_NAME = 'GERMANY') +ORDER BY VALUE DESC; \ No newline at end of file diff --git a/Data/src/sql-parser/test/queries/tpc-h-12.sql b/Data/src/sql-parser/test/queries/tpc-h-12.sql new file mode 100644 index 000000000..59a91b056 --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-12.sql @@ -0,0 +1,10 @@ +-- TPC_H Query 12 - Shipping Modes and Order Priority +SELECT L_SHIPMODE, +SUM(CASE WHEN O_ORDERPRIORITY = '1-URGENT' OR O_ORDERPRIORITY = '2-HIGH' THEN 1 ELSE 0 END) AS HIGH_LINE_COUNT, +SUM(CASE WHEN O_ORDERPRIORITY <> '1-URGENT' AND O_ORDERPRIORITY <> '2-HIGH' THEN 1 ELSE 0 END ) AS LOW_LINE_COUNT +FROM ORDERS, LINEITEM +WHERE O_ORDERKEY = L_ORDERKEY AND L_SHIPMODE IN ('MAIL','SHIP') +AND L_COMMITDATE < L_RECEIPTDATE AND L_SHIPDATE < L_COMMITDATE AND L_RECEIPTDATE >= '1994-01-01' +AND L_RECEIPTDATE < dateadd(mm, 1, cast('1995-09-01' as datetime)) +GROUP BY L_SHIPMODE +ORDER BY L_SHIPMODE; \ No newline at end of file diff --git a/Data/src/sql-parser/test/queries/tpc-h-13.sql b/Data/src/sql-parser/test/queries/tpc-h-13.sql new file mode 100644 index 000000000..a48f691b2 --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-13.sql @@ -0,0 +1,8 @@ +-- TPC_H Query 13 - Customer Distribution +SELECT C_COUNT, COUNT(*) AS CUSTDIST +FROM (SELECT C_CUSTKEY, COUNT(O_ORDERKEY) + FROM CUSTOMER left outer join ORDERS on C_CUSTKEY = O_CUSTKEY + AND O_COMMENT not like '%%special%%requests%%' + GROUP BY C_CUSTKEY) AS C_ORDERS (C_CUSTKEY, C_COUNT) +GROUP BY C_COUNT +ORDER BY CUSTDIST DESC, C_COUNT DESC; \ No newline at end of file diff --git a/Data/src/sql-parser/test/queries/tpc-h-14.sql b/Data/src/sql-parser/test/queries/tpc-h-14.sql new file mode 100644 index 000000000..72cf9c32c --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-14.sql @@ -0,0 +1,5 @@ +-- TPC_H Query 14 - Promotion Effect +SELECT 100.00* SUM(CASE WHEN P_TYPE LIKE 'PROMO%%' THEN L_EXTENDEDPRICE*(1-L_DISCOUNT) +ELSE 0 END) / SUM(L_EXTENDEDPRICE*(1-L_DISCOUNT)) AS PROMO_REVENUE +FROM LINEITEM, PART +WHERE L_PARTKEY = P_PARTKEY AND L_SHIPDATE >= '1995-09-01' AND L_SHIPDATE < dateadd(mm, 1, '1995-09-01'); \ No newline at end of file diff --git a/Data/src/sql-parser/test/queries/tpc-h-15.sql b/Data/src/sql-parser/test/queries/tpc-h-15.sql new file mode 100644 index 000000000..5593df185 --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-15.sql @@ -0,0 +1,15 @@ +-- TPC_H Query 15.1 - Create View for Top Supplier Query +CREATE VIEW REVENUE0 (SUPPLIER_NO, TOTAL_REVENUE) AS +SELECT L_SUPPKEY, SUM(L_EXTENDEDPRICE*(1-L_DISCOUNT)) FROM LINEITEM +WHERE L_SHIPDATE >= '1996-01-01' AND L_SHIPDATE < dateadd(mm, 3, cast('1996-01-01' as datetime)) +GROUP BY L_SUPPKEY; + + +-- TPC_H Query 15.2 - Top Supplier +SELECT S_SUPPKEY, S_NAME, S_ADDRESS, S_PHONE, TOTAL_REVENUE +FROM SUPPLIER, REVENUE0 +WHERE S_SUPPKEY = SUPPLIER_NO AND TOTAL_REVENUE = (SELECT MAX(TOTAL_REVENUE) FROM REVENUE0) +ORDER BY S_SUPPKEY; + +-- TPC_H Query 15.3 - Drop View +DROP VIEW REVENUE0; \ No newline at end of file diff --git a/Data/src/sql-parser/test/queries/tpc-h-16.sql b/Data/src/sql-parser/test/queries/tpc-h-16.sql new file mode 100644 index 000000000..7bf0bbc1d --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-16.sql @@ -0,0 +1,9 @@ +-- http://www.sqlserver-dba.com/2011/09/this-is-a-followup-on-my-earlier-post-of-sql-server-test-data-generation-testing-tools-i-had-some-requests-for-my-set-up-pr.html +-- TPC_H Query 16 - Parts/Supplier Relationship +SELECT P_BRAND, P_TYPE, P_SIZE, COUNT(DISTINCT PS_SUPPKEY) AS SUPPLIER_CNT +FROM PARTSUPP, "PART" +WHERE P_PARTKEY = PS_PARTKEY AND P_BRAND <> 'Brand#45' AND P_TYPE NOT LIKE 'MEDIUM POLISHED%%' +AND P_SIZE IN (49, 14, 23, 45, 19, 3, 36, 9) AND PS_SUPPKEY NOT IN (SELECT S_SUPPKEY FROM SUPPLIER + WHERE S_COMMENT LIKE '%%Customer%%Complaints%%') +GROUP BY P_BRAND, P_TYPE, P_SIZE +ORDER BY SUPPLIER_CNT DESC, P_BRAND, P_TYPE, P_SIZE; \ No newline at end of file diff --git a/Data/src/sql-parser/test/queries/tpc-h-17.sql b/Data/src/sql-parser/test/queries/tpc-h-17.sql new file mode 100644 index 000000000..e6d50ac1e --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-17.sql @@ -0,0 +1,4 @@ +-- TPC_H Query 17 - Small-Quantity-Order Revenue +SELECT SUM(L_EXTENDEDPRICE)/7.0 AS AVG_YEARLY FROM LINEITEM, "PART" +WHERE P_PARTKEY = L_PARTKEY AND P_BRAND = 'Brand#23' AND P_CONTAINER = 'MED BOX' +AND L_QUANTITY < (SELECT 0.2*AVG(L_QUANTITY) FROM LINEITEM WHERE L_PARTKEY = P_PARTKEY); \ No newline at end of file diff --git a/Data/src/sql-parser/test/queries/tpc-h-18.sql b/Data/src/sql-parser/test/queries/tpc-h-18.sql new file mode 100644 index 000000000..57e9a34fb --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-18.sql @@ -0,0 +1,7 @@ +-- TPC_H Query 18 - Large Volume Customer +SELECT TOP 100 C_NAME, C_CUSTKEY, O_ORDERKEY, O_ORDERDATE, O_TOTALPRICE, SUM(L_QUANTITY) +FROM CUSTOMER, ORDERS, LINEITEM +WHERE O_ORDERKEY IN (SELECT L_ORDERKEY FROM LINEITEM GROUP BY L_ORDERKEY HAVING + SUM(L_QUANTITY) > 300) AND C_CUSTKEY = O_CUSTKEY AND O_ORDERKEY = L_ORDERKEY +GROUP BY C_NAME, C_CUSTKEY, O_ORDERKEY, O_ORDERDATE, O_TOTALPRICE +ORDER BY O_TOTALPRICE DESC, O_ORDERDATE; \ No newline at end of file diff --git a/Data/src/sql-parser/test/queries/tpc-h-19.sql b/Data/src/sql-parser/test/queries/tpc-h-19.sql new file mode 100644 index 000000000..8000b9691 --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-19.sql @@ -0,0 +1,9 @@ +-- TPC_H Query 19 - Discounted Revenue +SELECT SUM(L_EXTENDEDPRICE* (1 - L_DISCOUNT)) AS REVENUE +FROM LINEITEM, "PART" +WHERE (P_PARTKEY = L_PARTKEY AND P_BRAND = 'Brand#12' AND P_CONTAINER IN ('SM CASE', 'SM BOX', 'SM PACK', 'SM PKG') AND L_QUANTITY >= 1 AND L_QUANTITY <= 1 + 10 AND P_SIZE BETWEEN 1 AND 5 +AND L_SHIPMODE IN ('AIR', 'AIR REG') AND L_SHIPINSTRUCT = 'DELIVER IN PERSON') +OR (P_PARTKEY = L_PARTKEY AND P_BRAND ='Brand#23' AND P_CONTAINER IN ('MED BAG', 'MED BOX', 'MED PKG', 'MED PACK') AND L_QUANTITY >=10 AND L_QUANTITY <=10 + 10 AND P_SIZE BETWEEN 1 AND 10 +AND L_SHIPMODE IN ('AIR', 'AIR REG') AND L_SHIPINSTRUCT = 'DELIVER IN PERSON') +OR (P_PARTKEY = L_PARTKEY AND P_BRAND = 'Brand#34' AND P_CONTAINER IN ( 'LG CASE', 'LG BOX', 'LG PACK', 'LG PKG') AND L_QUANTITY >=20 AND L_QUANTITY <= 20 + 10 AND P_SIZE BETWEEN 1 AND 15 +AND L_SHIPMODE IN ('AIR', 'AIR REG') AND L_SHIPINSTRUCT = 'DELIVER IN PERSON'); \ No newline at end of file diff --git a/Data/src/sql-parser/test/queries/tpc-h-20.sql b/Data/src/sql-parser/test/queries/tpc-h-20.sql new file mode 100644 index 000000000..9803a254a --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-20.sql @@ -0,0 +1,8 @@ +-- TPC_H Query 20 - Potential Part Promotion +SELECT S_NAME, S_ADDRESS FROM SUPPLIER, NATION +WHERE S_SUPPKEY IN (SELECT PS_SUPPKEY FROM PARTSUPP + WHERE PS_PARTKEY in (SELECT P_PARTKEY FROM "PART" WHERE P_NAME like 'forest%%') AND + PS_AVAILQTY > (SELECT 0.5*sum(L_QUANTITY) FROM LINEITEM WHERE L_PARTKEY = PS_PARTKEY AND + L_SUPPKEY = PS_SUPPKEY AND L_SHIPDATE >= '1994-01-01' AND + L_SHIPDATE < dateadd(yy,1,'1994-01-01'))) AND S_NATIONKEY = N_NATIONKEY AND N_NAME = 'CANADA' +ORDER BY S_NAME; \ No newline at end of file diff --git a/Data/src/sql-parser/test/queries/tpc-h-21.sql b/Data/src/sql-parser/test/queries/tpc-h-21.sql new file mode 100644 index 000000000..27be0c6d0 --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-21.sql @@ -0,0 +1,11 @@ +-- TPC_H Query 21 - Suppliers Who Kept Orders Waiting +SELECT TOP 100 S_NAME, COUNT(*) AS NUMWAIT +FROM SUPPLIER, LINEITEM L1, ORDERS, NATION WHERE S_SUPPKEY = L1.L_SUPPKEY AND +O_ORDERKEY = L1.L_ORDERKEY AND O_ORDERSTATUS = 'F' AND L1.L_RECEIPTDATE> L1.L_COMMITDATE +AND EXISTS (SELECT * FROM LINEITEM L2 WHERE L2.L_ORDERKEY = L1.L_ORDERKEY + AND L2.L_SUPPKEY <> L1.L_SUPPKEY) AND +NOT EXISTS (SELECT * FROM LINEITEM L3 WHERE L3.L_ORDERKEY = L1.L_ORDERKEY AND + L3.L_SUPPKEY <> L1.L_SUPPKEY AND L3.L_RECEIPTDATE > L3.L_COMMITDATE) AND +S_NATIONKEY = N_NATIONKEY AND N_NAME = 'SAUDI ARABIA' +GROUP BY S_NAME +ORDER BY NUMWAIT DESC, S_NAME; \ No newline at end of file diff --git a/Data/src/sql-parser/test/queries/tpc-h-22.sql b/Data/src/sql-parser/test/queries/tpc-h-22.sql new file mode 100644 index 000000000..4d1d11e38 --- /dev/null +++ b/Data/src/sql-parser/test/queries/tpc-h-22.sql @@ -0,0 +1,9 @@ +-- TPC_H Query 22 - Global Sales Opportunity */ +SELECT CNTRYCODE, COUNT(*) AS NUMCUST, SUM(C_ACCTBAL) AS TOTACCTBAL +FROM (SELECT SUBSTRING(C_PHONE,1,2) AS CNTRYCODE, C_ACCTBAL + FROM CUSTOMER WHERE SUBSTRING(C_PHONE,1,2) IN ('13', '31', '23', '29', '30', '18', '17') AND + C_ACCTBAL > (SELECT AVG(C_ACCTBAL) FROM CUSTOMER WHERE C_ACCTBAL > 0.00 AND + SUBSTRING(C_PHONE,1,2) IN ('13', '31', '23', '29', '30', '18', '17')) AND + NOT EXISTS ( SELECT * FROM ORDERS WHERE O_CUSTKEY = C_CUSTKEY)) AS CUSTSALE +GROUP BY CNTRYCODE +ORDER BY CNTRYCODE; \ No newline at end of file diff --git a/Data/src/sql-parser/test/select_tests.cpp b/Data/src/sql-parser/test/select_tests.cpp new file mode 100644 index 000000000..40ad4e515 --- /dev/null +++ b/Data/src/sql-parser/test/select_tests.cpp @@ -0,0 +1,1138 @@ +#include +#include + +#include "SQLParser.h" +#include "sql_asserts.h" +#include "thirdparty/microtest/microtest.h" + +using namespace hsql; + +TEST(SelectTest) { + TEST_PARSE_SINGLE_SQL("SELECT * FROM students;", kStmtSelect, SelectStatement, result, stmt); + + ASSERT_NULL(stmt->whereClause); + ASSERT_NULL(stmt->groupBy); +} + +TEST(SelectExprTest) { + TEST_PARSE_SINGLE_SQL("SELECT a, MAX(b), CUSTOM(c, F(un)) FROM students;", kStmtSelect, SelectStatement, result, + stmt); + + ASSERT_NULL(stmt->whereClause); + ASSERT_NULL(stmt->groupBy); + + ASSERT_EQ(stmt->selectList->size(), 3); + + ASSERT(stmt->selectList->at(0)->isType(kExprColumnRef)); + ASSERT_STREQ(stmt->selectList->at(0)->getName(), "a"); + + ASSERT(stmt->selectList->at(1)->isType(kExprFunctionRef)); + ASSERT_STREQ(stmt->selectList->at(1)->getName(), "MAX"); + ASSERT_NOTNULL(stmt->selectList->at(1)->exprList); + ASSERT_EQ(stmt->selectList->at(1)->exprList->size(), 1); + ASSERT(stmt->selectList->at(1)->exprList->at(0)->isType(kExprColumnRef)); + ASSERT_STREQ(stmt->selectList->at(1)->exprList->at(0)->getName(), "b"); + + ASSERT(stmt->selectList->at(2)->isType(kExprFunctionRef)); + ASSERT_STREQ(stmt->selectList->at(2)->getName(), "CUSTOM"); + ASSERT_NOTNULL(stmt->selectList->at(2)->exprList); + ASSERT_EQ(stmt->selectList->at(2)->exprList->size(), 2); + ASSERT(stmt->selectList->at(2)->exprList->at(0)->isType(kExprColumnRef)); + ASSERT_STREQ(stmt->selectList->at(2)->exprList->at(0)->getName(), "c"); + + ASSERT(stmt->selectList->at(2)->exprList->at(1)->isType(kExprFunctionRef)); + ASSERT_STREQ(stmt->selectList->at(2)->exprList->at(1)->getName(), "F"); + ASSERT_EQ(stmt->selectList->at(2)->exprList->at(1)->exprList->size(), 1); + ASSERT(stmt->selectList->at(2)->exprList->at(1)->exprList->at(0)->isType(kExprColumnRef)); + ASSERT_STREQ(stmt->selectList->at(2)->exprList->at(1)->exprList->at(0)->getName(), "un"); +} + +TEST(SelectUnaryMinusTest) { + TEST_PARSE_SINGLE_SQL( + "SELECT 10 - 20, 10 + -20, 10 +-20, 10+-20, 9223372036854775807, -9223372036854775808, 10-5.2, 10+-5.2", + kStmtSelect, SelectStatement, result, stmt); + + ASSERT_EQ(stmt->selectList->size(), 8); + + ASSERT_EQ(stmt->selectList->at(0)->type, kExprOperator); + ASSERT_EQ(stmt->selectList->at(0)->opType, kOpMinus); + ASSERT_EQ(stmt->selectList->at(0)->expr->type, kExprLiteralInt); + ASSERT_EQ(stmt->selectList->at(0)->expr->ival, 10); + ASSERT_EQ(stmt->selectList->at(0)->expr2->type, kExprLiteralInt); + ASSERT_EQ(stmt->selectList->at(0)->expr2->ival, 20); + + ASSERT_EQ(stmt->selectList->at(1)->type, kExprOperator); + ASSERT_EQ(stmt->selectList->at(1)->opType, kOpPlus); + ASSERT_EQ(stmt->selectList->at(1)->expr->ival, 10); + ASSERT_EQ(stmt->selectList->at(1)->expr2->type, kExprOperator); + ASSERT_EQ(stmt->selectList->at(1)->expr2->opType, kOpUnaryMinus); + ASSERT_EQ(stmt->selectList->at(1)->expr2->expr->type, kExprLiteralInt); + ASSERT_EQ(stmt->selectList->at(1)->expr2->expr->ival, 20); + + ASSERT_EQ(stmt->selectList->at(2)->type, kExprOperator); + ASSERT_EQ(stmt->selectList->at(2)->opType, kOpPlus); + ASSERT_EQ(stmt->selectList->at(2)->expr->ival, 10); + ASSERT_EQ(stmt->selectList->at(2)->expr2->type, kExprOperator); + ASSERT_EQ(stmt->selectList->at(2)->expr2->opType, kOpUnaryMinus); + ASSERT_EQ(stmt->selectList->at(2)->expr2->expr->type, kExprLiteralInt); + ASSERT_EQ(stmt->selectList->at(2)->expr2->expr->ival, 20); + + ASSERT_EQ(stmt->selectList->at(3)->type, kExprOperator); + ASSERT_EQ(stmt->selectList->at(3)->opType, kOpPlus); + ASSERT_EQ(stmt->selectList->at(3)->expr->ival, 10); + ASSERT_EQ(stmt->selectList->at(3)->expr2->type, kExprOperator); + ASSERT_EQ(stmt->selectList->at(3)->expr2->opType, kOpUnaryMinus); + ASSERT_EQ(stmt->selectList->at(3)->expr2->expr->type, kExprLiteralInt); + ASSERT_EQ(stmt->selectList->at(3)->expr2->expr->ival, 20); + + ASSERT_EQ(stmt->selectList->at(4)->type, kExprLiteralInt); + ASSERT_EQ(stmt->selectList->at(4)->ival, LLONG_MAX); + + ASSERT_EQ(stmt->selectList->at(5)->type, kExprLiteralInt); + ASSERT_EQ(stmt->selectList->at(5)->ival, LLONG_MIN); + + ASSERT_EQ(stmt->selectList->at(6)->type, kExprOperator); + ASSERT_EQ(stmt->selectList->at(6)->opType, kOpMinus); + ASSERT_EQ(stmt->selectList->at(6)->expr->type, kExprLiteralInt); + ASSERT_EQ(stmt->selectList->at(6)->expr->ival, 10); + ASSERT_EQ(stmt->selectList->at(6)->expr2->type, kExprLiteralFloat); + ASSERT_EQ(stmt->selectList->at(6)->expr2->fval, 5.2); + + ASSERT_EQ(stmt->selectList->at(7)->type, kExprOperator); + ASSERT_EQ(stmt->selectList->at(7)->opType, kOpPlus); + ASSERT_EQ(stmt->selectList->at(7)->expr->ival, 10); + ASSERT_EQ(stmt->selectList->at(7)->expr2->type, kExprOperator); + ASSERT_EQ(stmt->selectList->at(7)->expr2->opType, kOpUnaryMinus); + ASSERT_EQ(stmt->selectList->at(7)->expr2->expr->type, kExprLiteralFloat); + ASSERT_EQ(stmt->selectList->at(7)->expr2->expr->fval, 5.2); +} + +TEST(SelectSubstrTest) { + TEST_PARSE_SINGLE_SQL("SELECT SUBSTR(a, 3, 5) FROM students;", kStmtSelect, SelectStatement, result, stmt); + + ASSERT_NULL(stmt->whereClause); + ASSERT_NULL(stmt->groupBy); + + ASSERT_EQ(stmt->selectList->size(), 1); + + ASSERT(stmt->selectList->at(0)->isType(kExprFunctionRef)); + ASSERT_STREQ(stmt->selectList->at(0)->getName(), "SUBSTR"); + + ASSERT_NOTNULL(stmt->selectList->at(0)->exprList); + ASSERT_EQ(stmt->selectList->at(0)->exprList->size(), 3); + + ASSERT(stmt->selectList->at(0)->exprList->at(0)->isType(kExprColumnRef)); + ASSERT_STREQ(stmt->selectList->at(0)->exprList->at(0)->getName(), "a"); + + ASSERT(stmt->selectList->at(0)->exprList->at(1)->isType(kExprLiteralInt)); + ASSERT_EQ(stmt->selectList->at(0)->exprList->at(1)->ival, 3); + + ASSERT(stmt->selectList->at(0)->exprList->at(2)->isType(kExprLiteralInt)); + ASSERT_EQ(stmt->selectList->at(0)->exprList->at(2)->ival, 5); +} + +TEST(SelectHavingTest) { + TEST_PARSE_SINGLE_SQL("SELECT city, AVG(grade) AS avg_grade FROM students GROUP BY city HAVING AVG(grade) < -2.0", + kStmtSelect, SelectStatement, result, stmt); + + ASSERT_FALSE(stmt->selectDistinct); + + GroupByDescription* group = stmt->groupBy; + ASSERT_NOTNULL(group); + ASSERT_EQ(group->columns->size(), 1); + ASSERT_EQ(group->having->opType, kOpLess); + ASSERT(group->having->expr->isType(kExprFunctionRef)); + ASSERT(group->having->expr2->isType(kExprOperator)); + ASSERT_EQ(group->having->expr2->opType, kOpUnaryMinus); + ASSERT_EQ(group->having->expr2->expr->fval, 2.0); +} + +TEST(SelectDistinctTest) { + TEST_PARSE_SINGLE_SQL("SELECT DISTINCT grade, city FROM students;", kStmtSelect, SelectStatement, result, stmt); + + ASSERT(stmt->selectDistinct); + ASSERT_NULL(stmt->whereClause); +} + +TEST(SelectSchemaTest) { + TEST_PARSE_SINGLE_SQL("SELECT grade FROM some_schema.students;", kStmtSelect, SelectStatement, result, stmt); + + ASSERT(stmt->fromTable); + ASSERT_EQ(std::string(stmt->fromTable->schema), "some_schema"); +} + +TEST(SelectGroupDistinctTest) { + TEST_PARSE_SINGLE_SQL("SELECT city, COUNT(name), COUNT(DISTINCT grade) FROM students GROUP BY city;", kStmtSelect, + SelectStatement, result, stmt); + + ASSERT_FALSE(stmt->selectDistinct); + ASSERT_EQ(stmt->selectList->size(), 3); + ASSERT(!stmt->selectList->at(1)->distinct); + ASSERT(stmt->selectList->at(2)->distinct); +} + +TEST(OrderByTest) { + TEST_PARSE_SINGLE_SQL("SELECT grade, city FROM students ORDER BY grade, city DESC;", kStmtSelect, SelectStatement, + result, stmt); + + ASSERT_NULL(stmt->whereClause); + ASSERT_NOTNULL(stmt->order); + + ASSERT_EQ(stmt->order->size(), 2); + ASSERT_EQ(stmt->order->at(0)->type, kOrderAsc); + ASSERT_STREQ(stmt->order->at(0)->expr->name, "grade"); + + ASSERT_EQ(stmt->order->at(1)->type, kOrderDesc); + ASSERT_STREQ(stmt->order->at(1)->expr->name, "city"); +} + +TEST(SelectBetweenTest) { + TEST_PARSE_SINGLE_SQL("SELECT grade, city FROM students WHERE grade BETWEEN 1 and c;", kStmtSelect, SelectStatement, + result, stmt); + + Expr* where = stmt->whereClause; + ASSERT_NOTNULL(where); + ASSERT(where->isType(kExprOperator)); + ASSERT_EQ(where->opType, kOpBetween); + + ASSERT_STREQ(where->expr->getName(), "grade"); + ASSERT(where->expr->isType(kExprColumnRef)); + + ASSERT_EQ(where->exprList->size(), 2); + ASSERT(where->exprList->at(0)->isType(kExprLiteralInt)); + ASSERT_EQ(where->exprList->at(0)->ival, 1); + ASSERT(where->exprList->at(1)->isType(kExprColumnRef)); + ASSERT_STREQ(where->exprList->at(1)->getName(), "c"); +} + +TEST(SelectConditionalSelectTest) { + TEST_PARSE_SINGLE_SQL( + "SELECT * FROM t WHERE a = (SELECT MIN(v) FROM tt) AND EXISTS (SELECT * FROM test WHERE x < a);", kStmtSelect, + SelectStatement, result, stmt); + + Expr* where = stmt->whereClause; + ASSERT_NOTNULL(where); + ASSERT(where->isType(kExprOperator)); + ASSERT_EQ(where->opType, kOpAnd); + + // a = (SELECT ...) + Expr* cond1 = where->expr; + ASSERT_NOTNULL(cond1); + ASSERT_NOTNULL(cond1->expr); + ASSERT_EQ(cond1->opType, kOpEquals); + ASSERT_STREQ(cond1->expr->getName(), "a"); + ASSERT(cond1->expr->isType(kExprColumnRef)); + + ASSERT_NOTNULL(cond1->expr2); + ASSERT(cond1->expr2->isType(kExprSelect)); + + SelectStatement* select2 = cond1->expr2->select; + ASSERT_NOTNULL(select2); + ASSERT_STREQ(select2->fromTable->getName(), "tt"); + + // EXISTS (SELECT ...) + Expr* cond2 = where->expr2; + ASSERT_EQ(cond2->opType, kOpExists); + ASSERT_NOTNULL(cond2->select); + + SelectStatement* ex_select = cond2->select; + ASSERT_STREQ(ex_select->fromTable->getName(), "test"); +} + +TEST(SelectCaseWhen) { + TEST_PARSE_SINGLE_SQL("SELECT MAX(CASE WHEN a = 'foo' THEN x ELSE 0 END) FROM test;", kStmtSelect, SelectStatement, + result, stmt); + + ASSERT_EQ(stmt->selectList->size(), 1); + Expr* func = stmt->selectList->at(0); + + ASSERT_NOTNULL(func); + ASSERT(func->isType(kExprFunctionRef)); + ASSERT_EQ(func->exprList->size(), 1); + + Expr* caseExpr = func->exprList->at(0); + ASSERT_NOTNULL(caseExpr); + ASSERT(caseExpr->isType(kExprOperator)); + ASSERT_EQ(caseExpr->opType, kOpCase); + ASSERT_NULL(caseExpr->expr); + ASSERT_NOTNULL(caseExpr->exprList); + ASSERT_NOTNULL(caseExpr->expr2); + ASSERT_EQ(caseExpr->exprList->size(), 1); + ASSERT(caseExpr->expr2->isType(kExprLiteralInt)); + + Expr* whenExpr = caseExpr->exprList->at(0); + ASSERT(whenExpr->expr->isType(kExprOperator)); + ASSERT_EQ(whenExpr->expr->opType, kOpEquals); + ASSERT(whenExpr->expr->expr->isType(kExprColumnRef)); + ASSERT(whenExpr->expr->expr2->isType(kExprLiteralString)); +} + +TEST(SelectCaseWhenWhen) { + TEST_PARSE_SINGLE_SQL("SELECT CASE WHEN x = 1 THEN 1 WHEN 1.25 < x THEN 2 END FROM test;", kStmtSelect, + SelectStatement, result, stmt); + + ASSERT_EQ(stmt->selectList->size(), 1); + Expr* caseExpr = stmt->selectList->at(0); + ASSERT_NOTNULL(caseExpr); + ASSERT(caseExpr->isType(kExprOperator)); + ASSERT_EQ(caseExpr->opType, kOpCase); + // CASE [expr] [exprList] [expr2] + // [expr] [expr] + // [expr] [expr2] [expr] [expr2] + // CASE (null) WHEN X = 1 THEN 1 WHEN 1.25 < x THEN 2 (null) + ASSERT_NULL(caseExpr->expr); + ASSERT_NOTNULL(caseExpr->exprList); + ASSERT_NULL(caseExpr->expr2); + ASSERT_EQ(caseExpr->exprList->size(), 2); + + Expr* whenExpr = caseExpr->exprList->at(0); + ASSERT_EQ(whenExpr->expr->opType, kOpEquals); + ASSERT(whenExpr->expr->expr->isType(kExprColumnRef)); + ASSERT(whenExpr->expr->expr2->isType(kExprLiteralInt)); + + Expr* whenExpr2 = caseExpr->exprList->at(1); + ASSERT_EQ(whenExpr2->expr->opType, kOpLess); + ASSERT(whenExpr2->expr->expr->isType(kExprLiteralFloat)); + ASSERT(whenExpr2->expr->expr2->isType(kExprColumnRef)); +} + +TEST(SelectCaseValueWhenWhenElse) { + TEST_PARSE_SINGLE_SQL("SELECT CASE x WHEN 1 THEN 0 WHEN 2 THEN 3 WHEN 8 THEN 7 ELSE 4 END FROM test;", kStmtSelect, + SelectStatement, result, stmt); + + ASSERT_EQ(stmt->selectList->size(), 1); + Expr* caseExpr = stmt->selectList->at(0); + ASSERT_NOTNULL(caseExpr); + ASSERT(caseExpr->isType(kExprOperator)); + ASSERT_EQ(caseExpr->opType, kOpCase); + ASSERT_NOTNULL(caseExpr->expr); + ASSERT_NOTNULL(caseExpr->exprList); + ASSERT_NOTNULL(caseExpr->expr2); + ASSERT_EQ(caseExpr->exprList->size(), 3); + ASSERT(caseExpr->expr->isType(kExprColumnRef)); + + Expr* whenExpr = caseExpr->exprList->at(2); + ASSERT(whenExpr->expr->isType(kExprLiteralInt)); + ASSERT_EQ(whenExpr->expr2->ival, 7); +} + +TEST(SelectJoin) { + TEST_PARSE_SINGLE_SQL( + "SELECT City.name, Product.category, SUM(price) FROM fact\ + INNER JOIN City ON fact.city_id = City.id\ + OUTER JOIN Product ON fact.product_id = Product.id\ + GROUP BY City.name, Product.category;", + kStmtSelect, SelectStatement, result, stmt); + + const TableRef* table = stmt->fromTable; + const JoinDefinition* outer_join = table->join; + ASSERT_EQ(table->type, kTableJoin); + ASSERT_EQ(outer_join->type, kJoinFull); + + ASSERT_EQ(outer_join->right->type, kTableName); + ASSERT_STREQ(outer_join->right->name, "Product"); + ASSERT_EQ(outer_join->condition->opType, kOpEquals); + ASSERT_STREQ(outer_join->condition->expr->table, "fact"); + ASSERT_STREQ(outer_join->condition->expr->name, "product_id"); + ASSERT_STREQ(outer_join->condition->expr2->table, "Product"); + ASSERT_STREQ(outer_join->condition->expr2->name, "id"); + + // Joins are are left associative. + // So the second join should be on the left. + ASSERT_EQ(outer_join->left->type, kTableJoin); + + const JoinDefinition* inner_join = outer_join->left->join; + ASSERT_EQ(inner_join->type, kJoinInner); + ASSERT_EQ(inner_join->left->type, kTableName); + ASSERT_STREQ(inner_join->left->name, "fact"); + ASSERT_EQ(inner_join->right->type, kTableName); + ASSERT_STREQ(inner_join->right->name, "City"); + + ASSERT_EQ(inner_join->condition->opType, kOpEquals); + ASSERT_STREQ(inner_join->condition->expr->table, "fact"); + ASSERT_STREQ(inner_join->condition->expr->name, "city_id"); + ASSERT_STREQ(inner_join->condition->expr2->table, "City"); + ASSERT_STREQ(inner_join->condition->expr2->name, "id"); +} + +TEST(SelectColumnOrder) { + TEST_PARSE_SINGLE_SQL( + "SELECT *\ + FROM a,\ + (SELECT a AS b FROM a) b,\ + (SELECT a AS c FROM a) c,\ + (SELECT a AS d FROM a) d;", + kStmtSelect, SelectStatement, result, stmt); + + ASSERT_EQ(stmt->fromTable->list->size(), 4); + + // Make sure the order of the table list is corrects + ASSERT_STREQ(stmt->fromTable->list->at(0)->name, "a"); + ASSERT_STREQ(stmt->fromTable->list->at(1)->alias->name, "b"); + ASSERT_STREQ(stmt->fromTable->list->at(2)->alias->name, "c"); + ASSERT_STREQ(stmt->fromTable->list->at(3)->alias->name, "d"); +} + +TEST(SelectAliasAbsent) { + TEST_PARSE_SINGLE_SQL("SELECT * FROM students;", kStmtSelect, SelectStatement, result, stmt); + + ASSERT_NULL(stmt->fromTable->alias); +} + +TEST(SelectAliasSimple) { + TEST_PARSE_SINGLE_SQL("SELECT * FROM students AS s1;", kStmtSelect, SelectStatement, result, stmt); + + Alias* alias = stmt->fromTable->alias; + ASSERT_NOTNULL(alias); + ASSERT_STREQ(alias->name, "s1"); + ASSERT_NULL(alias->columns); +} + +TEST(SelectAliasWithColumns) { + TEST_PARSE_SINGLE_SQL("SELECT * FROM students AS s1(id, city);", kStmtSelect, SelectStatement, result, stmt); + + Alias* alias = stmt->fromTable->alias; + ASSERT_NOTNULL(alias); + + ASSERT_NOTNULL(alias->name); + ASSERT_STREQ(alias->name, "s1"); + + ASSERT_NOTNULL(alias->columns); + ASSERT_EQ(alias->columns->size(), 2); + ASSERT_STREQ(alias->columns->at(0), "id"); + ASSERT_STREQ(alias->columns->at(1), "city"); +} + +TEST(SelectExpressionAlias) { + TEST_PARSE_SINGLE_SQL("SELECT AVG(grade) avg_grade FROM students;", kStmtSelect, SelectStatement, result, stmt); + + ASSERT_NULL(stmt->fromTable->alias); + ASSERT_EQ(stmt->selectList->size(), 1); + ASSERT_TRUE(stmt->selectList->at(0)->isType(kExprFunctionRef)); + ASSERT_STREQ(stmt->selectList->at(0)->name, "AVG"); + ASSERT_TRUE(stmt->selectList->at(0)->hasAlias()); + ASSERT_STREQ(stmt->selectList->at(0)->alias, "avg_grade"); +} + +TEST(Operators) { + SelectStatement* stmt; + SQLParserResult result; + + SQLParser::parse( + "SELECT * FROM foo where a = 1; \ + SELECT * FROM foo where a == 2; \ + SELECT * FROM foo where a != 1; \ + SELECT * FROM foo where a <> 1; \ + SELECT * FROM foo where a > 1; \ + SELECT * FROM foo where a < 1; \ + SELECT * FROM foo where a >= 1; \ + SELECT * FROM foo where a <= 1; \ + SELECT * FROM foo where a = TRUE; \ + SELECT * FROM foo where a = false;", + &result); + + stmt = (SelectStatement*)result.getStatement(0); + ASSERT_EQ(stmt->whereClause->opType, kOpEquals); + ASSERT_EQ(stmt->whereClause->expr2->ival, 1); + ASSERT_EQ(stmt->whereClause->expr2->isBoolLiteral, false); + + stmt = (SelectStatement*)result.getStatement(1); + ASSERT_EQ(stmt->whereClause->opType, kOpEquals); + ASSERT_EQ(stmt->whereClause->expr2->ival, 2); + + stmt = (SelectStatement*)result.getStatement(2); + ASSERT_EQ(stmt->whereClause->opType, kOpNotEquals); + + stmt = (SelectStatement*)result.getStatement(3); + ASSERT_EQ(stmt->whereClause->opType, kOpNotEquals); + + stmt = (SelectStatement*)result.getStatement(4); + ASSERT_EQ(stmt->whereClause->opType, kOpGreater); + + stmt = (SelectStatement*)result.getStatement(5); + ASSERT_EQ(stmt->whereClause->opType, kOpLess); + + stmt = (SelectStatement*)result.getStatement(6); + ASSERT_EQ(stmt->whereClause->opType, kOpGreaterEq); + + stmt = (SelectStatement*)result.getStatement(7); + ASSERT_EQ(stmt->whereClause->opType, kOpLessEq); + + stmt = (SelectStatement*)result.getStatement(8); + ASSERT_EQ(stmt->whereClause->opType, kOpEquals); + ASSERT_EQ(stmt->whereClause->expr2->ival, 1); + ASSERT_EQ(stmt->whereClause->expr2->isBoolLiteral, true); + + stmt = (SelectStatement*)result.getStatement(9); + ASSERT_EQ(stmt->whereClause->opType, kOpEquals); + ASSERT_EQ(stmt->whereClause->expr2->ival, 0); + ASSERT_EQ(stmt->whereClause->expr2->isBoolLiteral, true); +} + +TEST(JoinTypes) { + SelectStatement* stmt; + SQLParserResult result; + + SQLParser::parse( + "SELECT * FROM x join y on a=b; \ + SELECT * FROM x inner join y on a=b; \ + SELECT * FROM x left join y on a=b; \ + SELECT * FROM x left outer join y on a=b; \ + SELECT * FROM x right join y on a=b; \ + SELECT * FROM x right outer join y on a=b; \ + SELECT * FROM x full join y on a=b; \ + SELECT * FROM x outer join y on a=b; \ + SELECT * FROM x full outer join y on a=b; \ + SELECT * FROM x natural join y; \ + SELECT * FROM x cross join y on a=b; \ + SELECT * FROM x, y where a = b;", + &result); + + stmt = (SelectStatement*)result.getStatement(0); + ASSERT_EQ(stmt->fromTable->join->type, kJoinInner); + + stmt = (SelectStatement*)result.getStatement(1); + ASSERT_EQ(stmt->fromTable->join->type, kJoinInner); + + stmt = (SelectStatement*)result.getStatement(2); + ASSERT_EQ(stmt->fromTable->join->type, kJoinLeft); + + stmt = (SelectStatement*)result.getStatement(3); + ASSERT_EQ(stmt->fromTable->join->type, kJoinLeft); + + stmt = (SelectStatement*)result.getStatement(4); + ASSERT_EQ(stmt->fromTable->join->type, kJoinRight); + + stmt = (SelectStatement*)result.getStatement(5); + ASSERT_EQ(stmt->fromTable->join->type, kJoinRight); + + stmt = (SelectStatement*)result.getStatement(6); + ASSERT_EQ(stmt->fromTable->join->type, kJoinFull); + + stmt = (SelectStatement*)result.getStatement(7); + ASSERT_EQ(stmt->fromTable->join->type, kJoinFull); + + stmt = (SelectStatement*)result.getStatement(8); + ASSERT_EQ(stmt->fromTable->join->type, kJoinFull); + + stmt = (SelectStatement*)result.getStatement(9); + ASSERT_EQ(stmt->fromTable->join->type, kJoinNatural); + + stmt = (SelectStatement*)result.getStatement(10); + ASSERT_EQ(stmt->fromTable->join->type, kJoinCross); + + stmt = (SelectStatement*)result.getStatement(11); + ASSERT_NULL(stmt->fromTable->join); +} + +TEST(SetLimitOffset) { + SelectStatement* stmt; + + TEST_PARSE_SQL_QUERY( + "select a from t1 limit 1; \ + select a from t1 limit 1 + 2; \ + select a from t1 offset 1; \ + select a from t1 offset 1 + 2; \ + select a from t1 limit 1 offset 1; \ + select a from t1 limit 1 + 2 offset 1 + 2; \ + select a from t1 limit 1 offset NULL; \ + select a from t1 limit ALL; \ + select a from t1 limit NULL; \ + select a from t1 limit ALL offset 1; \ + select a from t1 limit NULL offset 1; \ + select top 10 a from t1; \ + select top 20 a from t1 limit 10; \ + select a from t1 limit (SELECT MAX(b) FROM t1) offset (SELECT MIN(b) FROM t1);", + result, 14); + + stmt = (SelectStatement*)result.getStatement(0); + ASSERT_EQ(stmt->limit->limit->type, kExprLiteralInt); + ASSERT_EQ(stmt->limit->limit->ival, 1); + ASSERT_NULL(stmt->limit->offset); + + stmt = (SelectStatement*)result.getStatement(1); + ASSERT_EQ(stmt->limit->limit->type, kExprOperator); + ASSERT_EQ(stmt->limit->limit->opType, kOpPlus); + ASSERT_EQ(stmt->limit->limit->expr->ival, 1); + ASSERT_EQ(stmt->limit->limit->expr2->ival, 2); + ASSERT_NULL(stmt->limit->offset); + + stmt = (SelectStatement*)result.getStatement(2); + ASSERT_NULL(stmt->limit->limit); + ASSERT_EQ(stmt->limit->offset->type, kExprLiteralInt); + ASSERT_EQ(stmt->limit->offset->ival, 1); + + stmt = (SelectStatement*)result.getStatement(3); + ASSERT_NULL(stmt->limit->limit); + ASSERT_EQ(stmt->limit->offset->type, kExprOperator); + ASSERT_EQ(stmt->limit->offset->opType, kOpPlus); + ASSERT_EQ(stmt->limit->offset->expr->ival, 1); + ASSERT_EQ(stmt->limit->offset->expr2->ival, 2); + + stmt = (SelectStatement*)result.getStatement(4); + ASSERT_EQ(stmt->limit->limit->type, kExprLiteralInt); + ASSERT_EQ(stmt->limit->limit->ival, 1); + ASSERT_EQ(stmt->limit->offset->type, kExprLiteralInt); + ASSERT_EQ(stmt->limit->offset->ival, 1); + + stmt = (SelectStatement*)result.getStatement(5); + ASSERT_EQ(stmt->limit->limit->type, kExprOperator); + ASSERT_EQ(stmt->limit->limit->opType, kOpPlus); + ASSERT_EQ(stmt->limit->limit->expr->ival, 1); + ASSERT_EQ(stmt->limit->limit->expr2->ival, 2); + ASSERT_EQ(stmt->limit->offset->type, kExprOperator); + ASSERT_EQ(stmt->limit->offset->opType, kOpPlus); + ASSERT_EQ(stmt->limit->offset->expr->ival, 1); + ASSERT_EQ(stmt->limit->offset->expr2->ival, 2); + + stmt = (SelectStatement*)result.getStatement(6); + ASSERT_EQ(stmt->limit->limit->type, kExprLiteralInt); + ASSERT_EQ(stmt->limit->limit->ival, 1); + ASSERT_EQ(stmt->limit->offset->type, kExprLiteralNull); + + stmt = (SelectStatement*)result.getStatement(7); + ASSERT_NULL(stmt->limit->limit); + ASSERT_NULL(stmt->limit->offset); + + stmt = (SelectStatement*)result.getStatement(8); + ASSERT_EQ(stmt->limit->limit->type, kExprLiteralNull); + ASSERT_NULL(stmt->limit->offset); + + stmt = (SelectStatement*)result.getStatement(9); + ASSERT_NULL(stmt->limit->limit); + ASSERT_EQ(stmt->limit->offset->type, kExprLiteralInt); + ASSERT_EQ(stmt->limit->offset->ival, 1); + + stmt = (SelectStatement*)result.getStatement(10); + ASSERT_EQ(stmt->limit->limit->type, kExprLiteralNull); + ASSERT_EQ(stmt->limit->offset->type, kExprLiteralInt); + ASSERT_EQ(stmt->limit->offset->ival, 1); + + stmt = (SelectStatement*)result.getStatement(11); + ASSERT_EQ(stmt->limit->limit->type, kExprLiteralInt); + ASSERT_EQ(stmt->limit->limit->ival, 10); + ASSERT_NULL(stmt->limit->offset); + + stmt = (SelectStatement*)result.getStatement(12); + ASSERT_EQ(stmt->limit->limit->type, kExprLiteralInt); + ASSERT_EQ(stmt->limit->limit->ival, 10); + ASSERT_NULL(stmt->limit->offset); + + stmt = (SelectStatement*)result.getStatement(13); + ASSERT_EQ(stmt->limit->limit->type, kExprSelect); + ASSERT_EQ(stmt->limit->offset->type, kExprSelect); +} + +TEST(Extract) { + SelectStatement* stmt; + + TEST_PARSE_SQL_QUERY( + "select extract(year from dc) FROM t;" + "select x, extract(month from dc) AS t FROM t;" + "select x FROM t WHERE extract(minute from dc) > 2011;", + result, 3); + + stmt = (SelectStatement*)result.getStatement(0); + ASSERT_TRUE(stmt->selectList); + ASSERT_EQ(stmt->selectList->size(), 1u); + ASSERT_EQ(stmt->selectList->at(0)->type, kExprExtract); + ASSERT_EQ(stmt->selectList->at(0)->datetimeField, kDatetimeYear); + ASSERT_TRUE(stmt->selectList->at(0)->expr); + ASSERT_EQ(stmt->selectList->at(0)->expr->type, kExprColumnRef); + + stmt = (SelectStatement*)result.getStatement(1); + ASSERT_TRUE(stmt->selectList); + ASSERT_EQ(stmt->selectList->size(), 2u); + ASSERT_EQ(stmt->selectList->at(1)->type, kExprExtract); + ASSERT_EQ(stmt->selectList->at(1)->datetimeField, kDatetimeMonth); + ASSERT_TRUE(stmt->selectList->at(1)->expr); + ASSERT_EQ(stmt->selectList->at(1)->expr->type, kExprColumnRef); + ASSERT_TRUE(stmt->selectList->at(1)->alias); + ASSERT_EQ(stmt->selectList->at(1)->alias, std::string("t")); + + stmt = (SelectStatement*)result.getStatement(2); + ASSERT_TRUE(stmt->whereClause); + ASSERT_TRUE(stmt->whereClause->expr); + ASSERT_EQ(stmt->whereClause->expr->type, kExprExtract); + ASSERT_EQ(stmt->whereClause->expr->datetimeField, kDatetimeMinute); +} + +TEST(CastExpression) { + TEST_PARSE_SINGLE_SQL("SELECT CAST(10 AS INT);", kStmtSelect, SelectStatement, result, stmt); + + ASSERT_TRUE(stmt->selectList); + ASSERT_FALSE(stmt->fromTable); + ASSERT_FALSE(stmt->whereClause); + ASSERT_FALSE(stmt->groupBy); + + ASSERT_EQ(stmt->selectList->size(), 1u); + ASSERT_EQ(stmt->selectList->at(0)->type, kExprCast); + ASSERT_EQ(stmt->selectList->at(0)->columnType, ColumnType(DataType::INT)); + ASSERT_EQ(stmt->selectList->at(0)->expr->type, kExprLiteralInt); +} + +TEST(NoFromClause) { + TEST_PARSE_SINGLE_SQL("SELECT 1 + 2;", kStmtSelect, SelectStatement, result, stmt); + + ASSERT_TRUE(stmt->selectList); + ASSERT_FALSE(stmt->fromTable); + ASSERT_FALSE(stmt->whereClause); + ASSERT_FALSE(stmt->groupBy); + + ASSERT_EQ(stmt->selectList->size(), 1u); + ASSERT_EQ(stmt->selectList->at(0)->type, kExprOperator); + ASSERT_EQ(stmt->selectList->at(0)->expr->type, kExprLiteralInt); + ASSERT_EQ(stmt->selectList->at(0)->expr2->type, kExprLiteralInt); +} + +TEST(WithClauseSingle) { + TEST_PARSE_SINGLE_SQL( + "WITH " + "a AS (SELECT name FROM peopleA)" + "SELECT name FROM a;", + kStmtSelect, SelectStatement, result, stmt) + + // with_description_list – count + ASSERT_EQ(stmt->withDescriptions->size(), 1); + + // with_description – alias + ASSERT_STREQ(stmt->withDescriptions->at(0)->alias, "a"); + + // with_description – select stmt + ASSERT_EQ(stmt->withDescriptions->at(0)->select->selectList->size(), 1) + ASSERT_STREQ(stmt->withDescriptions->at(0)->select->selectList->at(0)->name, std::string("name")); + ASSERT_STREQ(stmt->withDescriptions->at(0)->select->fromTable->name, std::string("peopleA")); + + // main select + ASSERT_EQ(stmt->selectList->size(), 1); + ASSERT_STREQ(stmt->selectList->at(0)->name, "name"); + ASSERT_STREQ(stmt->fromTable->name, "a"); +} + +TEST(WithClauseDouble) { + TEST_PARSE_SINGLE_SQL( + "WITH " + "a AS (SELECT nameA FROM peopleA), " + "b AS (SELECT nameB, cityB FROM peopleB) " + "SELECT nameA FROM a;", + kStmtSelect, SelectStatement, result, stmt) + + // with_description_list – count + ASSERT_EQ(stmt->withDescriptions->size(), 2); + + // with_description – aliases + ASSERT_STREQ(stmt->withDescriptions->at(0)->alias, "a"); + ASSERT_STREQ(stmt->withDescriptions->at(1)->alias, "b"); + + // with_description – select stmts + ASSERT_EQ(stmt->withDescriptions->at(0)->select->selectList->size(), 1) + ASSERT_STREQ(stmt->withDescriptions->at(0)->select->fromTable->name, "peopleA"); + ASSERT_EQ(stmt->withDescriptions->at(1)->select->selectList->size(), 2) + ASSERT_STREQ(stmt->withDescriptions->at(1)->select->fromTable->name, "peopleB"); + + // main select + ASSERT_EQ(stmt->selectList->size(), 1); + ASSERT_STREQ(stmt->selectList->at(0)->name, "nameA"); + ASSERT_STREQ(stmt->fromTable->name, "a"); +} + +TEST(CastAsDate) { + TEST_PARSE_SINGLE_SQL("SELECT CAST(ID AS DATE) FROM TEST", kStmtSelect, SelectStatement, result, stmt); + + ASSERT_TRUE(result.isValid()); + ASSERT_EQ(stmt->selectList->size(), 1); + ASSERT_EQ(stmt->selectList->front()->type, kExprCast); + ASSERT_EQ(stmt->selectList->front()->columnType.data_type, DataType::DATE); +} + +TEST(DateLiteral) { + TEST_PARSE_SINGLE_SQL("SELECT * FROM t WHERE a = DATE '1996-12-31'", kStmtSelect, SelectStatement, result, stmt); + ASSERT_TRUE(result.isValid()); + stmt = (SelectStatement*)result.getStatement(0); + ASSERT_EQ(stmt->whereClause->opType, kOpEquals); + ASSERT_STREQ(stmt->whereClause->expr2->name, "1996-12-31"); +} + +TEST(IntervalLiteral) { + SelectStatement* stmt; + Expr* interval_literal; + TEST_PARSE_SQL_QUERY( + "SELECT a + 1 year FROM t;" + "SELECT * FROM t where a = cast ('2000-01-01' AS DATE) - 30 days;", + result, 2); + + stmt = (SelectStatement*)result.getStatement(0); + ASSERT_TRUE(stmt->selectList); + ASSERT_EQ(stmt->selectList->size(), 1u); + ASSERT_EQ(stmt->selectList->at(0)->type, kExprOperator); + ASSERT_TRUE(stmt->selectList->at(0)->expr2); + interval_literal = stmt->selectList->at(0)->expr2; + ASSERT_EQ(interval_literal->datetimeField, kDatetimeYear); + ASSERT_EQ(interval_literal->ival, 1); + ASSERT_EQ(interval_literal->type, kExprLiteralInterval); + + stmt = (SelectStatement*)result.getStatement(1); + ASSERT_TRUE(stmt->whereClause); + ASSERT_TRUE(stmt->whereClause->expr); + ASSERT_TRUE(stmt->whereClause->type = kExprOperator); + ASSERT_TRUE(stmt->whereClause->opType = kOpEquals); + ASSERT_TRUE(stmt->whereClause->expr2); + ASSERT_TRUE(stmt->whereClause->expr2->type = kExprOperator); + ASSERT_TRUE(stmt->whereClause->expr2->opType = kOpPlus); + ASSERT_TRUE(stmt->whereClause->expr2->expr2); + interval_literal = stmt->whereClause->expr2->expr2; + ASSERT_EQ(interval_literal->datetimeField, kDatetimeDay); + ASSERT_EQ(interval_literal->ival, 30); + ASSERT_EQ(interval_literal->type, kExprLiteralInterval); + + const auto interval_units = std::map{ + {kDatetimeSecond, "second"}, {kDatetimeMinute, "minute"}, {kDatetimeHour, "hour"}, + {kDatetimeDay, "day"}, {kDatetimeMonth, "month"}, {kDatetimeYear, "year"}}; + + for (const auto& it : interval_units) { + const auto& unit_string = it.second; + const auto unit_string_plural = unit_string + "s"; + TEST_PARSE_SQL_QUERY("SELECT * FROM t WHERE a = 1 + 5 " + unit_string + + ";" + "SELECT * FROM t WHERE a = 1 + 5 " + + unit_string_plural + + ";" + "SELECT * FROM t WHERE a = 1 + INTERVAL '5'" + + unit_string + + ";" + "SELECT * FROM t WHERE a = 1 + INTERVAL '5 " + + unit_string + + "';" + "SELECT * FROM t WHERE a = 1 + INTERVAL '5 " + + unit_string_plural + "';", + result, 5); + + for (const auto& statement : result.getStatements()) { + stmt = (SelectStatement*)statement; + interval_literal = stmt->whereClause->expr2->expr2; + ASSERT_EQ(interval_literal->datetimeField, it.first); + ASSERT_EQ(interval_literal->ival, 5); + ASSERT_EQ(interval_literal->type, kExprLiteralInterval); + } + } +} + +TEST(LockingClauseWithoutWaitPolicy) { + SelectStatement* stmt; + TEST_PARSE_SQL_QUERY( + "SELECT * FROM t WHERE a = 10 FOR UPDATE;" + "SELECT * FROM t WHERE a = 10 FOR SHARE;" + "SELECT * FROM t WHERE a = 10 FOR NO KEY UPDATE FOR KEY SHARE;", + result, 3); + + stmt = (SelectStatement*)result.getStatement(0); + ASSERT_EQ(stmt->lockings->size(), 1); + ASSERT_FALSE(stmt->lockings->at(0)->tables); + ASSERT_EQ(stmt->lockings->at(0)->rowLockMode, RowLockMode::ForUpdate); + ASSERT_EQ(stmt->lockings->at(0)->rowLockWaitPolicy, RowLockWaitPolicy::None); + + stmt = (SelectStatement*)result.getStatement(1); + ASSERT_EQ(stmt->lockings->size(), 1); + ASSERT_FALSE(stmt->lockings->at(0)->tables); + ASSERT_EQ(stmt->lockings->at(0)->rowLockMode, RowLockMode::ForShare); + ASSERT_EQ(stmt->lockings->at(0)->rowLockWaitPolicy, RowLockWaitPolicy::None); + + stmt = (SelectStatement*)result.getStatement(2); + ASSERT_EQ(stmt->lockings->size(), 2); + ASSERT_FALSE(stmt->lockings->at(0)->tables); + ASSERT_FALSE(stmt->lockings->at(1)->tables); + ASSERT_EQ(stmt->lockings->at(0)->rowLockMode, RowLockMode::ForNoKeyUpdate); + ASSERT_EQ(stmt->lockings->at(0)->rowLockWaitPolicy, RowLockWaitPolicy::None); + ASSERT_EQ(stmt->lockings->at(1)->rowLockMode, RowLockMode::ForKeyShare); + ASSERT_EQ(stmt->lockings->at(1)->rowLockWaitPolicy, RowLockWaitPolicy::None); +} + +TEST(LockingClauseWithWaitPolicy) { + SelectStatement* stmt; + TEST_PARSE_SQL_QUERY( + "SELECT * FROM t WHERE a = 10 FOR UPDATE NOWAIT;" + "SELECT * FROM t WHERE a = 10 FOR SHARE NOWAIT;" + "SELECT * FROM t WHERE a = 10 FOR NO KEY UPDATE NOWAIT;" + "SELECT * FROM t WHERE a = 10 FOR KEY SHARE NOWAIT;" + "SELECT * FROM t WHERE a = 10 FOR UPDATE SKIP LOCKED;" + "SELECT * FROM t WHERE a = 10 FOR SHARE SKIP LOCKED;" + "SELECT * FROM t WHERE a = 10 FOR NO KEY UPDATE SKIP LOCKED;" + "SELECT * FROM t WHERE a = 10 FOR KEY SHARE SKIP LOCKED;", + result, 8); + + stmt = (SelectStatement*)result.getStatement(0); + ASSERT_EQ(stmt->lockings->size(), 1); + ASSERT_FALSE(stmt->lockings->at(0)->tables); + ASSERT_EQ(stmt->lockings->at(0)->rowLockMode, RowLockMode::ForUpdate); + ASSERT_EQ(stmt->lockings->at(0)->rowLockWaitPolicy, RowLockWaitPolicy::NoWait); + + stmt = (SelectStatement*)result.getStatement(1); + ASSERT_EQ(stmt->lockings->size(), 1); + ASSERT_FALSE(stmt->lockings->at(0)->tables); + ASSERT_EQ(stmt->lockings->at(0)->rowLockMode, RowLockMode::ForShare); + ASSERT_EQ(stmt->lockings->at(0)->rowLockWaitPolicy, RowLockWaitPolicy::NoWait); + + stmt = (SelectStatement*)result.getStatement(2); + ASSERT_EQ(stmt->lockings->size(), 1); + ASSERT_FALSE(stmt->lockings->at(0)->tables); + ASSERT_EQ(stmt->lockings->at(0)->rowLockMode, RowLockMode::ForNoKeyUpdate); + ASSERT_EQ(stmt->lockings->at(0)->rowLockWaitPolicy, RowLockWaitPolicy::NoWait); + + stmt = (SelectStatement*)result.getStatement(3); + ASSERT_EQ(stmt->lockings->size(), 1); + ASSERT_FALSE(stmt->lockings->at(0)->tables); + ASSERT_EQ(stmt->lockings->at(0)->rowLockMode, RowLockMode::ForKeyShare); + ASSERT_EQ(stmt->lockings->at(0)->rowLockWaitPolicy, RowLockWaitPolicy::NoWait); + + stmt = (SelectStatement*)result.getStatement(4); + ASSERT_EQ(stmt->lockings->size(), 1); + ASSERT_FALSE(stmt->lockings->at(0)->tables); + ASSERT_EQ(stmt->lockings->at(0)->rowLockMode, RowLockMode::ForUpdate); + ASSERT_EQ(stmt->lockings->at(0)->rowLockWaitPolicy, RowLockWaitPolicy::SkipLocked); + + stmt = (SelectStatement*)result.getStatement(5); + ASSERT_EQ(stmt->lockings->size(), 1); + ASSERT_FALSE(stmt->lockings->at(0)->tables); + ASSERT_EQ(stmt->lockings->at(0)->rowLockMode, RowLockMode::ForShare); + ASSERT_EQ(stmt->lockings->at(0)->rowLockWaitPolicy, RowLockWaitPolicy::SkipLocked); + + stmt = (SelectStatement*)result.getStatement(6); + ASSERT_EQ(stmt->lockings->size(), 1); + ASSERT_FALSE(stmt->lockings->at(0)->tables); + ASSERT_EQ(stmt->lockings->at(0)->rowLockMode, RowLockMode::ForNoKeyUpdate); + ASSERT_EQ(stmt->lockings->at(0)->rowLockWaitPolicy, RowLockWaitPolicy::SkipLocked); + + stmt = (SelectStatement*)result.getStatement(7); + ASSERT_EQ(stmt->lockings->size(), 1); + ASSERT_FALSE(stmt->lockings->at(0)->tables); + ASSERT_EQ(stmt->lockings->at(0)->rowLockMode, RowLockMode::ForKeyShare); + ASSERT_EQ(stmt->lockings->at(0)->rowLockWaitPolicy, RowLockWaitPolicy::SkipLocked); +} + +TEST(LockingClauseWithTableReference) { + SelectStatement* stmt; + TEST_PARSE_SQL_QUERY( + "SELECT * FROM t WHERE a = 10 FOR UPDATE OF t;" + "SELECT * FROM t, c WHERE t.a = 10 FOR SHARE OF t,c;" + "SELECT * FROM t, c WHERE t.a = 10 FOR NO KEY UPDATE OF t,c NOWAIT;", + result, 3); + + stmt = (SelectStatement*)result.getStatement(0); + ASSERT_EQ(stmt->lockings->size(), 1); + ASSERT_EQ(stmt->lockings->at(0)->rowLockMode, RowLockMode::ForUpdate); + ASSERT_EQ(stmt->lockings->at(0)->rowLockWaitPolicy, RowLockWaitPolicy::None); + ASSERT_EQ(stmt->lockings->at(0)->tables->size(), 1); + ASSERT_STREQ(stmt->lockings->at(0)->tables->at(0), "t"); + + stmt = (SelectStatement*)result.getStatement(1); + ASSERT_EQ(stmt->lockings->size(), 1); + ASSERT_EQ(stmt->lockings->at(0)->rowLockMode, RowLockMode::ForShare); + ASSERT_EQ(stmt->lockings->at(0)->rowLockWaitPolicy, RowLockWaitPolicy::None); + ASSERT_EQ(stmt->lockings->at(0)->tables->size(), 2); + ASSERT_STREQ(stmt->lockings->at(0)->tables->at(0), "t"); + ASSERT_STREQ(stmt->lockings->at(0)->tables->at(1), "c"); + + stmt = (SelectStatement*)result.getStatement(2); + ASSERT_EQ(stmt->lockings->size(), 1); + ASSERT_EQ(stmt->lockings->at(0)->rowLockMode, RowLockMode::ForNoKeyUpdate); + ASSERT_EQ(stmt->lockings->at(0)->rowLockWaitPolicy, RowLockWaitPolicy::NoWait); + ASSERT_EQ(stmt->lockings->at(0)->tables->size(), 2); + ASSERT_STREQ(stmt->lockings->at(0)->tables->at(0), "t"); + ASSERT_STREQ(stmt->lockings->at(0)->tables->at(1), "c"); +} + +TEST(MultipleLockingClause) { + SelectStatement* stmt; + TEST_PARSE_SQL_QUERY( + "SELECT * FROM t, c WHERE t.a = 10 FOR NO KEY UPDATE OF t FOR KEY SHARE OF c;" + "SELECT * FROM t, c WHERE t.a = 10 FOR SHARE OF t SKIP LOCKED FOR UPDATE OF c NOWAIT;" + "SELECT * FROM t, c, s WHERE t.a = 10 FOR NO KEY UPDATE FOR SHARE OF t SKIP LOCKED FOR UPDATE OF c, s NOWAIT;", + result, 3); + + stmt = (SelectStatement*)result.getStatement(0); + ASSERT_EQ(stmt->lockings->size(), 2); + ASSERT_EQ(stmt->lockings->at(0)->rowLockMode, RowLockMode::ForNoKeyUpdate); + ASSERT_EQ(stmt->lockings->at(0)->rowLockWaitPolicy, RowLockWaitPolicy::None); + ASSERT_EQ(stmt->lockings->at(0)->tables->size(), 1); + ASSERT_STREQ(stmt->lockings->at(0)->tables->at(0), "t"); + ASSERT_EQ(stmt->lockings->at(1)->rowLockMode, RowLockMode::ForKeyShare); + ASSERT_EQ(stmt->lockings->at(1)->rowLockWaitPolicy, RowLockWaitPolicy::None); + ASSERT_EQ(stmt->lockings->at(1)->tables->size(), 1); + ASSERT_STREQ(stmt->lockings->at(1)->tables->at(0), "c"); + + stmt = (SelectStatement*)result.getStatement(1); + ASSERT_EQ(stmt->lockings->size(), 2); + ASSERT_EQ(stmt->lockings->at(0)->rowLockMode, RowLockMode::ForShare); + ASSERT_EQ(stmt->lockings->at(0)->rowLockWaitPolicy, RowLockWaitPolicy::SkipLocked); + ASSERT_EQ(stmt->lockings->at(0)->tables->size(), 1); + ASSERT_STREQ(stmt->lockings->at(0)->tables->at(0), "t"); + ASSERT_EQ(stmt->lockings->at(1)->rowLockMode, RowLockMode::ForUpdate); + ASSERT_EQ(stmt->lockings->at(1)->rowLockWaitPolicy, RowLockWaitPolicy::NoWait); + ASSERT_EQ(stmt->lockings->at(0)->tables->size(), 1); + ASSERT_STREQ(stmt->lockings->at(1)->tables->at(0), "c"); + + stmt = (SelectStatement*)result.getStatement(2); + ASSERT_EQ(stmt->lockings->size(), 3); + ASSERT_EQ(stmt->lockings->at(0)->rowLockMode, RowLockMode::ForNoKeyUpdate); + ASSERT_EQ(stmt->lockings->at(0)->rowLockWaitPolicy, RowLockWaitPolicy::None); + ASSERT_FALSE(stmt->lockings->at(0)->tables); + + ASSERT_EQ(stmt->lockings->at(1)->rowLockMode, RowLockMode::ForShare); + ASSERT_EQ(stmt->lockings->at(1)->rowLockWaitPolicy, RowLockWaitPolicy::SkipLocked); + ASSERT_EQ(stmt->lockings->at(1)->tables->size(), 1); + ASSERT_STREQ(stmt->lockings->at(1)->tables->at(0), "t"); + + ASSERT_EQ(stmt->lockings->at(2)->rowLockMode, RowLockMode::ForUpdate); + ASSERT_EQ(stmt->lockings->at(2)->rowLockWaitPolicy, RowLockWaitPolicy::NoWait); + ASSERT_EQ(stmt->lockings->at(2)->tables->size(), 2); + ASSERT_STREQ(stmt->lockings->at(2)->tables->at(0), "c"); + ASSERT_STREQ(stmt->lockings->at(2)->tables->at(1), "s"); +} + +TEST(WindowFunctions) { + SelectStatement* stmt; + TEST_PARSE_SQL_QUERY( + "SELECT t2, 1 / avg(t1) OVER(), rank() OVER(ORDER BY t1 DESC) rnk FROM t;" + "SELECT avg(t1) OVER(PARTITION BY t2, t3 ORDER BY t4, t5 ROWS UNBOUNDED PRECEDING) FROM t;" + "SELECT rank() OVER(PARTITION BY t1 ORDER BY t2 ROWS BETWEEN 25 PRECEDING AND 2 FOLLOWING) FROM t;" + "SELECT rank() OVER(PARTITION BY t1 ORDER BY t2 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM " + "t;" + "SELECT rank() OVER(PARTITION BY t1 ORDER BY t2 GROUPS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) FROM t;", + result, 5); + + stmt = (SelectStatement*)result.getStatement(0); + ASSERT_TRUE(stmt->selectList); + ASSERT_EQ(stmt->selectList->size(), 3); + ASSERT_TRUE(stmt->fromTable); + ASSERT_EQ(stmt->fromTable->type, kTableName); + ASSERT_STREQ(stmt->fromTable->name, "t"); + + ASSERT_EQ(stmt->selectList->at(1)->type, kExprOperator); + ASSERT_EQ(stmt->selectList->at(1)->opType, kOpSlash); + ASSERT_TRUE(stmt->selectList->at(1)->expr); + ASSERT_EQ(stmt->selectList->at(1)->expr->type, kExprLiteralInt); + ASSERT_EQ(stmt->selectList->at(1)->expr->ival, 1); + + ASSERT_TRUE(stmt->selectList->at(1)->expr2); + ASSERT_EQ(stmt->selectList->at(1)->expr2->type, kExprFunctionRef); + ASSERT_STREQ(stmt->selectList->at(1)->expr2->name, "avg"); + ASSERT_TRUE(stmt->selectList->at(1)->expr2->exprList); + ASSERT_EQ(stmt->selectList->at(1)->expr2->exprList->size(), 1); + ASSERT_EQ(stmt->selectList->at(1)->expr2->exprList->at(0)->type, kExprColumnRef); + ASSERT_STREQ(stmt->selectList->at(1)->expr2->exprList->at(0)->name, "t1"); + + ASSERT_TRUE(stmt->selectList->at(1)->expr2->windowDescription); + ASSERT_FALSE(stmt->selectList->at(1)->expr2->windowDescription->partitionList); + ASSERT_FALSE(stmt->selectList->at(1)->expr2->windowDescription->orderList); + ASSERT_TRUE(stmt->selectList->at(1)->expr2->windowDescription->frameDescription); + ASSERT_EQ(stmt->selectList->at(1)->expr2->windowDescription->frameDescription->type, kRange); + ASSERT_TRUE(stmt->selectList->at(1)->expr2->windowDescription->frameDescription->start); + ASSERT_EQ(stmt->selectList->at(1)->expr2->windowDescription->frameDescription->start->offset, 0); + ASSERT_EQ(stmt->selectList->at(1)->expr2->windowDescription->frameDescription->start->type, kPreceding); + ASSERT_TRUE(stmt->selectList->at(1)->expr2->windowDescription->frameDescription->start->unbounded); + ASSERT_TRUE(stmt->selectList->at(1)->expr2->windowDescription->frameDescription->end); + ASSERT_EQ(stmt->selectList->at(1)->expr2->windowDescription->frameDescription->end->offset, 0); + ASSERT_EQ(stmt->selectList->at(1)->expr2->windowDescription->frameDescription->end->type, kCurrentRow); + ASSERT_FALSE(stmt->selectList->at(1)->expr2->windowDescription->frameDescription->end->unbounded); + + ASSERT_TRUE(stmt->selectList->at(2)); + ASSERT_EQ(stmt->selectList->at(2)->type, kExprFunctionRef); + ASSERT_STREQ(stmt->selectList->at(2)->name, "rank"); + ASSERT_TRUE(stmt->selectList->at(2)->alias); + ASSERT_STREQ(stmt->selectList->at(2)->alias, "rnk"); + ASSERT_TRUE(stmt->selectList->at(2)->exprList); + ASSERT_TRUE(stmt->selectList->at(2)->exprList->empty()); + + ASSERT_TRUE(stmt->selectList->at(2)->windowDescription); + ASSERT_FALSE(stmt->selectList->at(2)->windowDescription->partitionList); + ASSERT_TRUE(stmt->selectList->at(2)->windowDescription->orderList); + ASSERT_EQ(stmt->selectList->at(2)->windowDescription->orderList->size(), 1); + ASSERT_EQ(stmt->selectList->at(2)->windowDescription->orderList->at(0)->type, kOrderDesc); + ASSERT_TRUE(stmt->selectList->at(2)->windowDescription->orderList->at(0)->expr); + ASSERT_EQ(stmt->selectList->at(2)->windowDescription->orderList->at(0)->expr->type, kExprColumnRef); + ASSERT_STREQ(stmt->selectList->at(2)->windowDescription->orderList->at(0)->expr->name, "t1"); + ASSERT_TRUE(stmt->selectList->at(2)->windowDescription->frameDescription); + + stmt = (SelectStatement*)result.getStatement(1); + ASSERT_TRUE(stmt->selectList); + ASSERT_EQ(stmt->selectList->size(), 1); + ASSERT_TRUE(stmt->fromTable); + ASSERT_EQ(stmt->fromTable->type, kTableName); + ASSERT_STREQ(stmt->fromTable->name, "t"); + + ASSERT_EQ(stmt->selectList->at(0)->type, kExprFunctionRef); + ASSERT_STREQ(stmt->selectList->at(0)->name, "avg"); + ASSERT_EQ(stmt->selectList->at(0)->exprList->size(), 1); + ASSERT_STREQ(stmt->selectList->at(0)->exprList->at(0)->name, "t1"); + + ASSERT_TRUE(stmt->selectList->at(0)->windowDescription); + ASSERT_TRUE(stmt->selectList->at(0)->windowDescription->partitionList); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->partitionList->size(), 2); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->partitionList->at(0)->type, kExprColumnRef); + ASSERT_STREQ(stmt->selectList->at(0)->windowDescription->partitionList->at(0)->name, "t2"); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->partitionList->at(1)->type, kExprColumnRef); + ASSERT_STREQ(stmt->selectList->at(0)->windowDescription->partitionList->at(1)->name, "t3"); + + ASSERT_TRUE(stmt->selectList->at(0)->windowDescription->orderList); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->orderList->size(), 2); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->orderList->at(0)->type, kOrderAsc); + ASSERT_TRUE(stmt->selectList->at(0)->windowDescription->orderList->at(0)->expr); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->orderList->at(0)->expr->type, kExprColumnRef); + ASSERT_STREQ(stmt->selectList->at(0)->windowDescription->orderList->at(0)->expr->name, "t4"); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->orderList->at(1)->expr->type, kExprColumnRef); + ASSERT_STREQ(stmt->selectList->at(0)->windowDescription->orderList->at(1)->expr->name, "t5"); + + ASSERT_TRUE(stmt->selectList->at(0)->windowDescription->frameDescription); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->frameDescription->type, kRows); + ASSERT_TRUE(stmt->selectList->at(0)->windowDescription->frameDescription->start); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->frameDescription->start->offset, 0); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->frameDescription->start->type, kPreceding); + ASSERT_TRUE(stmt->selectList->at(0)->windowDescription->frameDescription->start->unbounded); + ASSERT_TRUE(stmt->selectList->at(0)->windowDescription->frameDescription->end); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->frameDescription->end->offset, 0); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->frameDescription->end->type, kCurrentRow); + ASSERT_FALSE(stmt->selectList->at(0)->windowDescription->frameDescription->end->unbounded); + + const auto frame_starts = + std::vector{{25, kPreceding, false}, {0, kPreceding, true}, {0, kPreceding, true}}; + const auto frame_ends = + std::vector{{2, kFollowing, false}, {0, kFollowing, true}, {0, kCurrentRow, false}}; + + for (auto bound_index = size_t{0}; bound_index < frame_starts.size(); ++bound_index) { + stmt = (SelectStatement*)result.getStatement(2 + bound_index); + const auto& expected_start = frame_starts[bound_index]; + const auto& expected_end = frame_ends[bound_index]; + + ASSERT_TRUE(stmt->selectList); + ASSERT_EQ(stmt->selectList->size(), 1); + ASSERT_TRUE(stmt->fromTable); + ASSERT_EQ(stmt->fromTable->type, kTableName); + ASSERT_STREQ(stmt->fromTable->name, "t"); + + ASSERT_EQ(stmt->selectList->at(0)->type, kExprFunctionRef); + ASSERT_STREQ(stmt->selectList->at(0)->name, "rank"); + ASSERT_TRUE(stmt->selectList->at(0)->exprList->empty()); + + ASSERT_TRUE(stmt->selectList->at(0)->windowDescription); + ASSERT_TRUE(stmt->selectList->at(0)->windowDescription->partitionList); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->partitionList->size(), 1); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->partitionList->at(0)->type, kExprColumnRef); + ASSERT_STREQ(stmt->selectList->at(0)->windowDescription->partitionList->at(0)->name, "t1"); + + ASSERT_TRUE(stmt->selectList->at(0)->windowDescription->orderList); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->orderList->size(), 1); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->orderList->at(0)->type, kOrderAsc); + ASSERT_TRUE(stmt->selectList->at(0)->windowDescription->orderList->at(0)->expr); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->orderList->at(0)->expr->type, kExprColumnRef); + ASSERT_STREQ(stmt->selectList->at(0)->windowDescription->orderList->at(0)->expr->name, "t2"); + ASSERT_TRUE(stmt->selectList->at(0)->windowDescription->frameDescription); + ASSERT_TRUE(stmt->selectList->at(0)->windowDescription->frameDescription->start); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->frameDescription->start->offset, expected_start.offset); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->frameDescription->start->type, expected_start.type); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->frameDescription->start->unbounded, expected_start.unbounded); + ASSERT_TRUE(stmt->selectList->at(0)->windowDescription->frameDescription->end); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->frameDescription->end->offset, expected_end.offset); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->frameDescription->end->type, expected_end.type); + ASSERT_EQ(stmt->selectList->at(0)->windowDescription->frameDescription->end->unbounded, expected_end.unbounded); + } +} diff --git a/Data/src/sql-parser/test/sql_asserts.h b/Data/src/sql-parser/test/sql_asserts.h new file mode 100644 index 000000000..6f73def2f --- /dev/null +++ b/Data/src/sql-parser/test/sql_asserts.h @@ -0,0 +1,19 @@ +#ifndef __HELPER_H__ +#define __HELPER_H__ + +#define TEST_PARSE_SQL_QUERY(query, result, numStatements) \ + hsql::SQLParserResult result; \ + hsql::SQLParser::parse(query, &result); \ + ASSERT(result.isValid()); \ + ASSERT_EQ(result.size(), numStatements); + +#define TEST_PARSE_SINGLE_SQL(query, stmtType, stmtClass, result, outputVar) \ + TEST_PARSE_SQL_QUERY(query, result, 1); \ + ASSERT_EQ(result.getStatement(0)->type(), stmtType); \ + const stmtClass* outputVar = (const stmtClass*)result.getStatement(0); + +#define TEST_CAST_STMT(result, stmt_index, stmtType, stmtClass, outputVar) \ + ASSERT_EQ(result.getStatement(stmt_index)->type(), stmtType); \ + const stmtClass* outputVar = (const stmtClass*)result.getStatement(stmt_index); + +#endif diff --git a/Data/src/sql-parser/test/sql_parser.cpp b/Data/src/sql-parser/test/sql_parser.cpp new file mode 100644 index 000000000..31b9be1f9 --- /dev/null +++ b/Data/src/sql-parser/test/sql_parser.cpp @@ -0,0 +1,44 @@ +#include "thirdparty/microtest/microtest.h" + +#include +#include +#include + +#include "SQLParser.h" +#include "parser/bison_parser.h" +#include "sql_asserts.h" + +using namespace hsql; + +void test_tokens(const std::string& query, const std::vector& expected_tokens) { + std::vector tokens; + ASSERT(SQLParser::tokenize(query, &tokens)); + + ASSERT_EQ(expected_tokens.size(), tokens.size()); + + for (unsigned i = 0; i < expected_tokens.size(); ++i) { + ASSERT_EQ(expected_tokens[i], tokens[i]); + } +} + +TEST(SQLParserTokenizeTest) { + test_tokens("SELECT * FROM test;", {SQL_SELECT, '*', SQL_FROM, SQL_IDENTIFIER, ';'}); + test_tokens("SELECT a, 'b' FROM test WITH HINT;", + {SQL_SELECT, SQL_IDENTIFIER, ',', SQL_STRING, SQL_FROM, SQL_IDENTIFIER, SQL_WITH, SQL_HINT, ';'}); +} + +TEST(SQLParserTokenizeStringifyTest) { + const std::string query = "SELECT * FROM test;"; + std::vector tokens; + ASSERT(SQLParser::tokenize(query, &tokens)); + + // Make u16string. + std::u16string token_string(tokens.cbegin(), tokens.cend()); + + // Check if u16 string is cacheable. + std::map cache; + cache[token_string] = query; + + ASSERT(query == cache[token_string]); + ASSERT(&query != &cache[token_string]); +} diff --git a/Data/src/sql-parser/test/sql_tests.cpp b/Data/src/sql-parser/test/sql_tests.cpp new file mode 100644 index 000000000..70a89583b --- /dev/null +++ b/Data/src/sql-parser/test/sql_tests.cpp @@ -0,0 +1,679 @@ +/* + * sql_tests.cpp + */ + +#include "thirdparty/microtest/microtest.h" + +#include "SQLParser.h" +#include "util/sqlhelper.h" + +#include "sql_asserts.h" + +using namespace hsql; + +TEST(DeleteStatementTest) { + SQLParserResult result; + SQLParser::parse("DELETE FROM students WHERE grade > 2.0;", &result); + + ASSERT(result.isValid()); + ASSERT_EQ(result.size(), 1); + ASSERT(result.getStatement(0)->type() == kStmtDelete); + + const DeleteStatement* stmt = (const DeleteStatement*)result.getStatement(0); + ASSERT_STREQ(stmt->tableName, "students"); + ASSERT_NOTNULL(stmt->expr); + ASSERT(stmt->expr->isType(kExprOperator)); + ASSERT_STREQ(stmt->expr->expr->name, "grade"); + ASSERT_EQ(stmt->expr->expr2->fval, 2.0); +} + +TEST(CreateStatementTest) { + SQLParserResult result; + SQLParser::parse( + "CREATE TABLE dummy_table (" + " c_bigint BIGINT, " + " c_boolean BOOLEAN, " + " c_char CHAR(42), " + " c_date DATE, " + " c_datetime DATETIME, " + " c_decimal DECIMAL, " + " c_decimal_precision DECIMAL(13), " + " c_decimal_precision_scale DECIMAL(13,37), " + " c_double_not_null DOUBLE NOT NULL, " + " c_float FLOAT, " + " c_int INT, " + " PRIMARY KEY(c_char, c_int), " + " c_integer_null INTEGER NULL, " + " c_long LONG, " + " c_real REAL, " + " c_smallint SMALLINT, " + " c_text TEXT UNIQUE PRIMARY KEY NOT NULL, " + " c_time TIME, " + " c_time_precision TIME(17), " + " c_timestamp TIMESTAMP, " + " c_varchar VARCHAR(50), " + " c_char_varying CHARACTER VARYING(60)" + ")", + &result); + ASSERT(result.isValid()); + ASSERT_EQ(result.size(), 1); + ASSERT_EQ(result.getStatement(0)->type(), kStmtCreate); + + const CreateStatement* stmt = (const CreateStatement*)result.getStatement(0); + ASSERT_EQ(stmt->type, kCreateTable); + ASSERT_STREQ(stmt->tableName, "dummy_table"); + ASSERT_NOTNULL(stmt->columns); + ASSERT_EQ(stmt->columns->size(), 21); + // c_bigint BIGINT + ASSERT_STREQ(stmt->columns->at(0)->name, "c_bigint"); + ASSERT_EQ(stmt->columns->at(0)->type, (ColumnType{DataType::BIGINT})); + ASSERT_EQ(stmt->columns->at(0)->nullable, true); + // c_boolean BOOLEAN + ASSERT_STREQ(stmt->columns->at(1)->name, "c_boolean"); + ASSERT_EQ(stmt->columns->at(1)->type, (ColumnType{DataType::BOOLEAN})); + ASSERT_EQ(stmt->columns->at(1)->nullable, true); + // c_char CHAR(42) + ASSERT_STREQ(stmt->columns->at(2)->name, "c_char"); + ASSERT_EQ(stmt->columns->at(2)->type, (ColumnType{DataType::CHAR, 42})); + ASSERT_NEQ(stmt->columns->at(2)->type, (ColumnType{DataType::CHAR, 43})); + ASSERT_EQ(stmt->columns->at(2)->nullable, true); + // c_date DATE + ASSERT_STREQ(stmt->columns->at(3)->name, "c_date"); + ASSERT_EQ(stmt->columns->at(3)->type, (ColumnType{DataType::DATE})); + ASSERT_EQ(stmt->columns->at(3)->nullable, true); + // c_datetime DATETIME + ASSERT_STREQ(stmt->columns->at(4)->name, "c_datetime"); + ASSERT_EQ(stmt->columns->at(4)->type, (ColumnType{DataType::DATETIME})); + ASSERT_EQ(stmt->columns->at(4)->nullable, true); + // c_decimal DECIMAL + ASSERT_STREQ(stmt->columns->at(5)->name, "c_decimal"); + ASSERT_EQ(stmt->columns->at(5)->type, (ColumnType{DataType::DECIMAL})); + ASSERT_EQ(stmt->columns->at(5)->nullable, true); + // c_decimal_precision DECIMAL(13) + ASSERT_STREQ(stmt->columns->at(6)->name, "c_decimal_precision"); + ASSERT_EQ(stmt->columns->at(6)->type, (ColumnType{DataType::DECIMAL, 0, 13})); + ASSERT_NEQ(stmt->columns->at(6)->type, (ColumnType{DataType::DECIMAL, 0, 14})); + ASSERT_NEQ(stmt->columns->at(6)->type, (ColumnType{DataType::DECIMAL, 1, 13})); + ASSERT_EQ(stmt->columns->at(6)->nullable, true); + // c_decimal_precision_scale DECIMAL(13,37) + ASSERT_STREQ(stmt->columns->at(7)->name, "c_decimal_precision_scale"); + ASSERT_EQ(stmt->columns->at(7)->type, (ColumnType{DataType::DECIMAL, 0, 13, 37})); + ASSERT_NEQ(stmt->columns->at(7)->type, (ColumnType{DataType::DECIMAL, 0, 14, 37})); + ASSERT_NEQ(stmt->columns->at(7)->type, (ColumnType{DataType::DECIMAL, 0, 13, 38})); + ASSERT_NEQ(stmt->columns->at(7)->type, (ColumnType{DataType::DECIMAL, 1, 13, 37})); + ASSERT_EQ(stmt->columns->at(7)->nullable, true); + // c_double_not_null DOUBLE NOT NULL + ASSERT_STREQ(stmt->columns->at(8)->name, "c_double_not_null"); + ASSERT_EQ(stmt->columns->at(8)->type, (ColumnType{DataType::DOUBLE})); + ASSERT_EQ(stmt->columns->at(8)->nullable, false); + ASSERT_EQ(stmt->columns->at(8)->column_constraints->size(), 1); + ASSERT(stmt->columns->at(8)->column_constraints->count(ConstraintType::NotNull)); + // c_float FLOAT + ASSERT_STREQ(stmt->columns->at(9)->name, "c_float"); + ASSERT_EQ(stmt->columns->at(9)->type, (ColumnType{DataType::FLOAT})); + ASSERT_EQ(stmt->columns->at(9)->nullable, true); + // c_int INT + ASSERT_STREQ(stmt->columns->at(10)->name, "c_int"); + ASSERT_EQ(stmt->columns->at(10)->type, (ColumnType{DataType::INT})); + ASSERT_EQ(stmt->columns->at(10)->nullable, true); + // c_integer INTEGER NULL + ASSERT_STREQ(stmt->columns->at(11)->name, "c_integer_null"); + ASSERT_EQ(stmt->columns->at(11)->type, (ColumnType{DataType::INT})); + ASSERT_EQ(stmt->columns->at(11)->nullable, true); + ASSERT_EQ(stmt->columns->at(11)->column_constraints->size(), 1); + ASSERT(stmt->columns->at(11)->column_constraints->count(ConstraintType::Null)); + // c_long LONG + ASSERT_STREQ(stmt->columns->at(12)->name, "c_long"); + ASSERT_EQ(stmt->columns->at(12)->type, (ColumnType{DataType::LONG})); + ASSERT_EQ(stmt->columns->at(12)->nullable, true); + // c_real REAL + ASSERT_STREQ(stmt->columns->at(13)->name, "c_real"); + ASSERT_EQ(stmt->columns->at(13)->type, (ColumnType{DataType::REAL})); + ASSERT_EQ(stmt->columns->at(13)->nullable, true); + // c_smallint SMALLINT + ASSERT_STREQ(stmt->columns->at(14)->name, "c_smallint"); + ASSERT_EQ(stmt->columns->at(14)->type, (ColumnType{DataType::SMALLINT})); + ASSERT_EQ(stmt->columns->at(14)->nullable, true); + // c_text TEXT UNIQUE PRIMARY KEY NOT NULL + ASSERT_STREQ(stmt->columns->at(15)->name, "c_text"); + ASSERT_EQ(stmt->columns->at(15)->type, (ColumnType{DataType::TEXT})); + ASSERT_EQ(stmt->columns->at(15)->nullable, false); + // Expecting two elements in column_constraints since information about NULL constraints is separately stored in + // ColumnDefinition::nullable + ASSERT_EQ(stmt->columns->at(15)->column_constraints->size(), 3); + ASSERT(stmt->columns->at(15)->column_constraints->count(ConstraintType::Unique)); + ASSERT(stmt->columns->at(15)->column_constraints->count(ConstraintType::PrimaryKey)); + ASSERT(stmt->columns->at(15)->column_constraints->count(ConstraintType::NotNull)); + // c_time TIME + ASSERT_STREQ(stmt->columns->at(16)->name, "c_time"); + ASSERT_EQ(stmt->columns->at(16)->type, (ColumnType{DataType::TIME})); + ASSERT_EQ(stmt->columns->at(16)->nullable, true); + // c_time_precision TIME(17) + ASSERT_STREQ(stmt->columns->at(17)->name, "c_time_precision"); + ASSERT_EQ(stmt->columns->at(17)->type, (ColumnType{DataType::TIME, 0, 17})); + ASSERT_NEQ(stmt->columns->at(17)->type, (ColumnType{DataType::TIME, 0, 18})); + ASSERT_NEQ(stmt->columns->at(17)->type, (ColumnType{DataType::TIME, 1, 17})); + ASSERT_EQ(stmt->columns->at(17)->nullable, true); + // c_timestamp TIMESTAMP + ASSERT_STREQ(stmt->columns->at(18)->name, "c_timestamp"); + ASSERT_EQ(stmt->columns->at(18)->type, (ColumnType{DataType::DATETIME})); + ASSERT_EQ(stmt->columns->at(18)->nullable, true); + // c_varchar VARCHAR(50) + ASSERT_STREQ(stmt->columns->at(19)->name, "c_varchar"); + ASSERT_EQ(stmt->columns->at(19)->type, (ColumnType{DataType::VARCHAR, 50})); + ASSERT_NEQ(stmt->columns->at(19)->type, (ColumnType{DataType::VARCHAR, 51})); + ASSERT_EQ(stmt->columns->at(19)->nullable, true); + // c_char_varying CHARACTER VARYING(60) + ASSERT_STREQ(stmt->columns->at(20)->name, "c_char_varying"); + ASSERT_EQ(stmt->columns->at(20)->type, (ColumnType{DataType::VARCHAR, 60})); + ASSERT_NEQ(stmt->columns->at(20)->type, (ColumnType{DataType::VARCHAR, 61})); + // Table constraints are identified and separated during the parsing of the SQL string + // Table constraints: + // - PRIMARY KEY(c_char, c_int) + ASSERT_EQ(stmt->tableConstraints->size(), 1); + ASSERT(stmt->tableConstraints->at(0)->type == ConstraintType::PrimaryKey); + ASSERT_STREQ(stmt->tableConstraints->at(0)->columnNames->at(0), "c_char"); + ASSERT_STREQ(stmt->tableConstraints->at(0)->columnNames->at(1), "c_int"); +} + +TEST(CreateAsSelectStatementTest) { + SQLParserResult result; + SQLParser::parse("CREATE TABLE students_2 AS SELECT student_number, grade FROM students", &result); + + ASSERT(result.isValid()); + ASSERT_EQ(result.size(), 1); + ASSERT_EQ(result.getStatement(0)->type(), kStmtCreate); + + const CreateStatement* stmt = (const CreateStatement*)result.getStatement(0); + ASSERT_EQ(stmt->type, kCreateTable); + ASSERT_STREQ(stmt->tableName, "students_2"); + ASSERT_NULL(stmt->columns); + ASSERT_NOTNULL(stmt->select); + ASSERT(stmt->select->selectList->at(0)->isType(kExprColumnRef)); + ASSERT_STREQ(stmt->select->selectList->at(0)->getName(), "student_number"); + ASSERT(stmt->select->selectList->at(1)->isType(kExprColumnRef)); + ASSERT_STREQ(stmt->select->selectList->at(1)->getName(), "grade"); +} + +TEST(UpdateStatementTest) { + SQLParserResult result; + SQLParser::parse("UPDATE students SET grade = 5.0, name = 'test' WHERE name = 'Max O''Mustermann';", &result); + + ASSERT(result.isValid()); + ASSERT_EQ(result.size(), 1); + ASSERT_EQ(result.getStatement(0)->type(), kStmtUpdate); + + const UpdateStatement* stmt = (const UpdateStatement*)result.getStatement(0); + ASSERT_NOTNULL(stmt->table); + ASSERT_STREQ(stmt->table->name, "students"); + + ASSERT_NOTNULL(stmt->updates); + ASSERT_EQ(stmt->updates->size(), 2); + ASSERT_STREQ(stmt->updates->at(0)->column, "grade"); + ASSERT_STREQ(stmt->updates->at(1)->column, "name"); + ASSERT(stmt->updates->at(0)->value->isType(kExprLiteralFloat)); + ASSERT(stmt->updates->at(1)->value->isType(kExprLiteralString)); + ASSERT_EQ(stmt->updates->at(0)->value->fval, 5.0); + ASSERT_STREQ(stmt->updates->at(1)->value->name, "test"); + + ASSERT_NOTNULL(stmt->where); + ASSERT(stmt->where->isType(kExprOperator)); + ASSERT_EQ(stmt->where->opType, kOpEquals); + ASSERT_STREQ(stmt->where->expr->name, "name"); + ASSERT_STREQ(stmt->where->expr2->name, "Max O'Mustermann"); +} + +TEST(InsertStatementTest) { + TEST_PARSE_SINGLE_SQL("INSERT INTO students VALUES ('Max Mustermann', 12345, 'Musterhausen', 2.0)", kStmtInsert, + InsertStatement, result, stmt); + + ASSERT_EQ(stmt->values->size(), 4); + // TODO +} + +TEST(AlterStatementDropActionTest) { + SQLParserResult result; + SQLParser::parse("ALTER TABLE mytable DROP COLUMN IF EXISTS mycolumn", &result); + + ASSERT(result.isValid()); + ASSERT_EQ(result.size(), 1); + + const AlterStatement* stmt = (const AlterStatement*)result.getStatement(0); + ASSERT_STREQ(stmt->name, "mytable"); + ASSERT_EQ(stmt->ifTableExists, false); + + auto dropAction = (const DropColumnAction*)stmt->action; + + ASSERT_EQ(dropAction->type, hsql::ActionType::DropColumn); + ASSERT_STREQ(dropAction->columnName, "mycolumn"); +} + +TEST(CreateIndexStatementTest) { + SQLParserResult result; + SQLParser::parse("CREATE INDEX myindex ON myTable (col1);", &result); + + ASSERT(result.isValid()); + ASSERT_EQ(result.size(), 1); + + const CreateStatement* stmt = (const CreateStatement*)result.getStatement(0); + ASSERT_STREQ(stmt->indexName, "myindex"); + ASSERT_STREQ(stmt->tableName, "myTable"); + ASSERT_EQ(stmt->type, kCreateIndex); + ASSERT_EQ(stmt->ifNotExists, false); + ASSERT_EQ(stmt->indexColumns->size(), 1); +} + +TEST(CreateIndexStatementIfNotExistsTest) { + SQLParserResult result; + SQLParser::parse("CREATE INDEX IF NOT EXISTS myindex ON myTable (col1, col2);", &result); + + ASSERT(result.isValid()); + ASSERT_EQ(result.size(), 1); + + const CreateStatement* stmt = (const CreateStatement*)result.getStatement(0); + ASSERT_STREQ(stmt->indexName, "myindex"); + ASSERT_STREQ(stmt->tableName, "myTable"); + ASSERT_EQ(stmt->type, kCreateIndex); + ASSERT_EQ(stmt->ifNotExists, true); + ASSERT_EQ(stmt->indexColumns->size(), 2); +} + +TEST(DropIndexTest) { + SQLParserResult result; + SQLParser::parse("DROP INDEX myindex", &result); + + ASSERT(result.isValid()); + ASSERT_EQ(result.size(), 1); + + const DropStatement* stmt = (const DropStatement*)result.getStatement(0); + ASSERT_STREQ(stmt->indexName, "myindex"); + ASSERT_EQ(stmt->ifExists, false); +} + +TEST(DropIndexIfExistsTest) { + SQLParserResult result; + SQLParser::parse("DROP INDEX IF EXISTS myindex", &result); + + ASSERT(result.isValid()); + ASSERT_EQ(result.size(), 1); + + const DropStatement* stmt = (const DropStatement*)result.getStatement(0); + ASSERT_STREQ(stmt->indexName, "myindex"); + ASSERT_EQ(stmt->ifExists, true); +} + +TEST(DropTableStatementTest) { + TEST_PARSE_SINGLE_SQL("DROP TABLE students", kStmtDrop, DropStatement, result, stmt); + + ASSERT_FALSE(stmt->ifExists); + ASSERT_EQ(stmt->type, kDropTable); + ASSERT_NOTNULL(stmt->name); + ASSERT_STREQ(stmt->name, "students"); +} + +TEST(DropTableIfExistsStatementTest) { + TEST_PARSE_SINGLE_SQL("DROP TABLE IF EXISTS students", kStmtDrop, DropStatement, result, stmt); + + ASSERT_TRUE(stmt->ifExists); + ASSERT_EQ(stmt->type, kDropTable); + ASSERT_NOTNULL(stmt->name); + ASSERT_STREQ(stmt->name, "students"); +} + +TEST(ReleaseStatementTest) { + TEST_PARSE_SINGLE_SQL("SELECT * FROM students;", kStmtSelect, SelectStatement, result, stmt); + + ASSERT_EQ(1, result.size()); + ASSERT_NULL(stmt->whereClause); + + std::vector statements = result.releaseStatements(); + + ASSERT_EQ(0, result.size()); + + for (SQLStatement* stmt : statements) { + delete stmt; + } +} + +TEST(ShowTableStatementTest) { + TEST_PARSE_SINGLE_SQL("SHOW TABLES;", kStmtShow, ShowStatement, result, stmt); + + ASSERT_EQ(stmt->type, kShowTables); + ASSERT_NULL(stmt->name); +} + +TEST(ShowColumnsStatementTest) { + TEST_PARSE_SINGLE_SQL("SHOW COLUMNS students;", kStmtShow, ShowStatement, result, stmt); + + ASSERT_EQ(stmt->type, kShowColumns); + ASSERT_NOTNULL(stmt->name); + ASSERT_STREQ(stmt->name, "students"); +} + +TEST(DescribeStatementTest) { + TEST_PARSE_SINGLE_SQL("DESCRIBE students;", kStmtShow, ShowStatement, result, stmt); + + ASSERT_EQ(stmt->type, kShowColumns); + ASSERT_NOTNULL(stmt->name); + ASSERT_STREQ(stmt->name, "students"); +} + +TEST(ImportStatementTest) { + TEST_PARSE_SINGLE_SQL("IMPORT FROM TBL FILE 'students_file' INTO students;", kStmtImport, ImportStatement, result, + stmt); + + ASSERT_EQ(stmt->type, kImportTbl); + ASSERT_NOTNULL(stmt->tableName); + ASSERT_STREQ(stmt->tableName, "students"); + ASSERT_STREQ(stmt->filePath, "students_file"); +} + +TEST(CopyStatementTest) { + TEST_PARSE_SINGLE_SQL("COPY students FROM 'students_file' WITH FORMAT BINARY;", kStmtImport, ImportStatement, + import_result, import_stmt); + + ASSERT_EQ(import_stmt->type, kImportBinary); + ASSERT_NOTNULL(import_stmt->tableName); + ASSERT_STREQ(import_stmt->tableName, "students"); + ASSERT_NOTNULL(import_stmt->filePath); + ASSERT_STREQ(import_stmt->filePath, "students_file"); + ASSERT_NULL(import_stmt->whereClause); + + TEST_PARSE_SINGLE_SQL("COPY students FROM 'students_file' WHERE lastname = 'Potter';", kStmtImport, ImportStatement, + import_filter_result, import_filter_stmt); + + ASSERT_EQ(import_filter_stmt->type, kImportAuto); + ASSERT_NOTNULL(import_filter_stmt->tableName); + ASSERT_STREQ(import_filter_stmt->tableName, "students"); + ASSERT_NOTNULL(import_filter_stmt->filePath); + ASSERT_STREQ(import_filter_stmt->filePath, "students_file"); + ASSERT_NOTNULL(import_filter_stmt->whereClause); + ASSERT_EQ(import_filter_stmt->whereClause->opType, kOpEquals); + ASSERT_EQ(import_filter_stmt->whereClause->expr->type, kExprColumnRef); + ASSERT_STREQ(import_filter_stmt->whereClause->expr->name, "lastname"); + ASSERT_EQ(import_filter_stmt->whereClause->expr2->type, kExprLiteralString); + ASSERT_STREQ(import_filter_stmt->whereClause->expr2->name, "Potter"); + + TEST_PARSE_SINGLE_SQL("COPY students TO 'students_file' WITH FORMAT CSV;", kStmtExport, ExportStatement, + export_table_result, export_table_stmt); + + ASSERT_EQ(export_table_stmt->type, kImportCSV); + ASSERT_NOTNULL(export_table_stmt->tableName); + ASSERT_STREQ(export_table_stmt->tableName, "students"); + ASSERT_NOTNULL(export_table_stmt->filePath); + ASSERT_STREQ(export_table_stmt->filePath, "students_file"); + ASSERT_NULL(export_table_stmt->select); + + TEST_PARSE_SINGLE_SQL("COPY (SELECT firstname, lastname FROM students) TO 'students_file';", kStmtExport, + ExportStatement, export_select_result, export_select_stmt); + + ASSERT_EQ(export_select_stmt->type, kImportAuto); + ASSERT_NULL(export_select_stmt->tableName); + ASSERT_NOTNULL(export_select_stmt->filePath); + ASSERT_STREQ(export_select_stmt->filePath, "students_file"); + + ASSERT_NOTNULL(export_select_stmt->select); + const auto& select_stmt = export_select_stmt->select; + ASSERT_NULL(select_stmt->whereClause); + ASSERT_NULL(select_stmt->groupBy); + ASSERT_EQ(select_stmt->selectList->size(), 2); + ASSERT(select_stmt->selectList->at(0)->isType(kExprColumnRef)); + ASSERT_STREQ(select_stmt->selectList->at(0)->getName(), "firstname"); + ASSERT(select_stmt->selectList->at(1)->isType(kExprColumnRef)); + ASSERT_STREQ(select_stmt->selectList->at(1)->getName(), "lastname"); + ASSERT_NOTNULL(select_stmt->fromTable); + ASSERT_STREQ(select_stmt->fromTable->name, "students"); +} + +SQLParserResult parse_and_move(std::string query) { + hsql::SQLParserResult result; + hsql::SQLParser::parse(query, &result); + // Moves on return. + return result; +} + +SQLParserResult move_in_and_back(SQLParserResult res) { + // Moves on return. + return res; +} + +TEST(MoveSQLResultTest) { + SQLParserResult res = parse_and_move("SELECT * FROM test;"); + ASSERT(res.isValid()); + ASSERT_EQ(1, res.size()); + + // Moved around. + SQLParserResult new_res = move_in_and_back(std::move(res)); + + // Original object should be invalid. + ASSERT_FALSE(res.isValid()); + ASSERT_EQ(0, res.size()); + + ASSERT(new_res.isValid()); + ASSERT_EQ(1, new_res.size()); +} + +TEST(HintTest) { + TEST_PARSE_SINGLE_SQL("SELECT * FROM students WITH HINT(NO_CACHE, SAMPLE_RATE(10));", kStmtSelect, SelectStatement, + result, stmt); + + ASSERT_NOTNULL(stmt->hints); + ASSERT_EQ(2, stmt->hints->size()); + ASSERT_STREQ("NO_CACHE", stmt->hints->at(0)->name); + ASSERT_STREQ("SAMPLE_RATE", stmt->hints->at(1)->name); + ASSERT_EQ(1, stmt->hints->at(1)->exprList->size()); + ASSERT_EQ(10, stmt->hints->at(1)->exprList->at(0)->ival); +} + +TEST(StringLengthTest) { + TEST_PARSE_SQL_QUERY("SELECT * FROM bar; INSERT INTO foo VALUES (4);\t\n SELECT * FROM foo;", result, 3); + + ASSERT_EQ(result.getStatement(0)->stringLength, 18); + ASSERT_EQ(result.getStatement(1)->stringLength, 28); + ASSERT_EQ(result.getStatement(2)->stringLength, 21); +} + +TEST(ExceptOperatorTest) { + TEST_PARSE_SINGLE_SQL("SELECT * FROM students EXCEPT SELECT * FROM students_2;", kStmtSelect, SelectStatement, result, + stmt); + + ASSERT_STREQ(stmt->setOperations->back()->nestedSelectStatement->fromTable->name, "students_2"); + ASSERT_STREQ(stmt->fromTable->name, "students"); + ASSERT_EQ(stmt->setOperations->back()->setType, kSetExcept); +} + +TEST(IntersectOperatorTest) { + TEST_PARSE_SINGLE_SQL("SELECT * FROM students INTERSECT SELECT * FROM students_2;", kStmtSelect, SelectStatement, + result, stmt); + + ASSERT_STREQ(stmt->setOperations->back()->nestedSelectStatement->fromTable->name, "students_2"); + ASSERT_STREQ(stmt->fromTable->name, "students"); + ASSERT_EQ(stmt->setOperations->back()->setType, kSetIntersect); +} + +TEST(UnionOperatorTest) { + TEST_PARSE_SINGLE_SQL("SELECT * FROM students UNION SELECT * FROM students_2;", kStmtSelect, SelectStatement, result, + stmt); + + ASSERT_STREQ(stmt->setOperations->back()->nestedSelectStatement->fromTable->name, "students_2"); + ASSERT_STREQ(stmt->fromTable->name, "students"); + ASSERT_EQ(stmt->setOperations->back()->setType, kSetUnion); + ASSERT_FALSE(stmt->setOperations->back()->isAll); +} + +TEST(UnionAllOperatorTest) { + TEST_PARSE_SINGLE_SQL("SELECT * FROM students UNION ALL SELECT * FROM students_2;", kStmtSelect, SelectStatement, + result, stmt); + + ASSERT_STREQ(stmt->setOperations->back()->nestedSelectStatement->fromTable->name, "students_2"); + ASSERT_STREQ(stmt->fromTable->name, "students"); + ASSERT_TRUE(stmt->setOperations->back()->isAll); +} + +TEST(NestedSetOperationTest) { + TEST_PARSE_SINGLE_SQL("SELECT * FROM students INTERSECT SELECT grade FROM students_2 UNION SELECT * FROM employees;", + kStmtSelect, SelectStatement, result, stmt); + + ASSERT_STREQ( + stmt->setOperations->back()->nestedSelectStatement->setOperations->back()->nestedSelectStatement->fromTable->name, + "employees"); + ASSERT_STREQ(stmt->setOperations->back()->nestedSelectStatement->fromTable->name, "students_2"); + ASSERT_STREQ(stmt->fromTable->name, "students"); + ASSERT_EQ(stmt->setOperations->back()->setType, kSetIntersect); + ASSERT_EQ(stmt->setOperations->back()->nestedSelectStatement->setOperations->back()->setType, kSetUnion); + ASSERT_FALSE(stmt->setOperations->back()->isAll); +} + +TEST(OrderByFullStatementTest) { + TEST_PARSE_SINGLE_SQL( + "SELECT * FROM students INTERSECT SELECT grade FROM students_2 UNION SELECT * FROM employees ORDER BY grade ASC;", + kStmtSelect, SelectStatement, result, stmt); + + ASSERT_EQ(stmt->setOperations->back()->resultOrder->at(0)->type, kOrderAsc); + ASSERT_STREQ(stmt->setOperations->back()->resultOrder->at(0)->expr->name, "grade"); + ASSERT_FALSE(stmt->setOperations->back()->isAll); +} + +TEST(SetOperationSubQueryOrder) { + TEST_PARSE_SINGLE_SQL( + "(SELECT * FROM students ORDER BY name DESC) INTERSECT SELECT grade FROM students_2 UNION SELECT * FROM " + "employees ORDER BY grade ASC;", + kStmtSelect, SelectStatement, result, stmt); + + ASSERT_EQ(stmt->order->at(0)->type, kOrderDesc); + ASSERT_STREQ(stmt->order->at(0)->expr->name, "name"); + + ASSERT_EQ(stmt->setOperations->back()->resultOrder->at(0)->type, kOrderAsc); + ASSERT_STREQ(stmt->setOperations->back()->resultOrder->at(0)->expr->name, "grade"); + ASSERT_FALSE(stmt->setOperations->back()->isAll); +} + +TEST(SetOperationLastSubQueryOrder) { + TEST_PARSE_SINGLE_SQL( + "SELECT * FROM students INTERSECT SELECT grade FROM students_2 UNION (SELECT * FROM employees ORDER BY name " + "DESC) ORDER BY grade ASC;", + kStmtSelect, SelectStatement, result, stmt); + + ASSERT_EQ(stmt->setOperations->back() + ->nestedSelectStatement->setOperations->back() + ->nestedSelectStatement->order->at(0) + ->type, + kOrderDesc); + ASSERT_STREQ(stmt->setOperations->back() + ->nestedSelectStatement->setOperations->back() + ->nestedSelectStatement->order->at(0) + ->expr->name, + "name"); + + ASSERT_EQ(stmt->setOperations->back()->resultOrder->at(0)->type, kOrderAsc); + ASSERT_STREQ(stmt->setOperations->back()->resultOrder->at(0)->expr->name, "grade"); + ASSERT_FALSE(stmt->setOperations->back()->isAll); +} + +TEST(NestedDifferentSetOperationsWithWithClause) { + TEST_PARSE_SINGLE_SQL( + "WITH UNION_FIRST AS (SELECT * FROM A UNION SELECT * FROM B) SELECT * FROM UNION_FIRST EXCEPT SELECT * FROM C", + kStmtSelect, SelectStatement, result, stmt); + + ASSERT_STREQ(stmt->withDescriptions->back()->alias, "UNION_FIRST"); + ASSERT_EQ(stmt->withDescriptions->back()->select->setOperations->back()->setType, kSetUnion); + ASSERT_STREQ(stmt->withDescriptions->back()->select->fromTable->name, "A"); + ASSERT_STREQ(stmt->withDescriptions->back()->select->setOperations->back()->nestedSelectStatement->fromTable->name, + "B"); + + ASSERT_EQ(stmt->setOperations->back()->setType, kSetExcept); + ASSERT_STREQ(stmt->fromTable->name, "UNION_FIRST"); + ASSERT_STREQ(stmt->setOperations->back()->nestedSelectStatement->fromTable->name, "C"); +} + +TEST(NestedAllSetOperationsWithWithClause) { + TEST_PARSE_SINGLE_SQL( + "WITH UNION_FIRST AS (SELECT * FROM A UNION SELECT * FROM B) SELECT * FROM UNION_FIRST EXCEPT SELECT * FROM " + "(SELECT * FROM C INTERSECT SELECT * FROM D)", + kStmtSelect, SelectStatement, result, stmt); + + ASSERT_STREQ(stmt->withDescriptions->back()->alias, "UNION_FIRST"); + ASSERT_EQ(stmt->withDescriptions->back()->select->setOperations->back()->setType, kSetUnion); + ASSERT_STREQ(stmt->withDescriptions->back()->select->fromTable->name, "A"); + ASSERT_STREQ(stmt->withDescriptions->back()->select->setOperations->back()->nestedSelectStatement->fromTable->name, + "B"); + + ASSERT_EQ(stmt->setOperations->back()->setType, kSetExcept); + ASSERT_STREQ(stmt->fromTable->name, "UNION_FIRST"); + ASSERT_EQ(stmt->setOperations->back()->nestedSelectStatement->fromTable->select->setOperations->back()->setType, + kSetIntersect); + ASSERT_STREQ(stmt->setOperations->back()->nestedSelectStatement->fromTable->select->fromTable->name, "C"); + ASSERT_STREQ(stmt->setOperations->back() + ->nestedSelectStatement->fromTable->select->setOperations->back() + ->nestedSelectStatement->fromTable->name, + "D"); +} + +TEST(NestedSetOperationsWithMultipleWithClauses) { + TEST_PARSE_SINGLE_SQL( + "WITH UNION_FIRST AS (SELECT * FROM A UNION SELECT * FROM B),INTERSECT_SECOND AS (SELECT * FROM UNION_FIRST " + "INTERSECT SELECT * FROM C) SELECT * FROM UNION_FIRST EXCEPT SELECT * FROM INTERSECT_SECOND", + kStmtSelect, SelectStatement, result, stmt); + + ASSERT_STREQ(stmt->withDescriptions->at(0)->alias, "UNION_FIRST"); + ASSERT_STREQ(stmt->withDescriptions->back()->alias, "INTERSECT_SECOND"); + + ASSERT_EQ(stmt->withDescriptions->at(0)->select->setOperations->back()->setType, kSetUnion); + ASSERT_STREQ(stmt->withDescriptions->at(0)->select->fromTable->name, "A"); + ASSERT_STREQ(stmt->withDescriptions->at(0)->select->setOperations->back()->nestedSelectStatement->fromTable->name, + "B"); + + ASSERT_EQ(stmt->withDescriptions->back()->select->setOperations->back()->setType, kSetIntersect); + ASSERT_STREQ(stmt->withDescriptions->back()->select->fromTable->name, "UNION_FIRST"); + ASSERT_STREQ(stmt->withDescriptions->back()->select->setOperations->back()->nestedSelectStatement->fromTable->name, + "C"); + + ASSERT_EQ(stmt->setOperations->back()->setType, kSetExcept); + ASSERT_STREQ(stmt->fromTable->name, "UNION_FIRST"); + ASSERT_STREQ(stmt->setOperations->back()->nestedSelectStatement->fromTable->name, "INTERSECT_SECOND"); +} + +TEST(WrongOrderByStatementTest) { + SQLParserResult res = parse_and_move("SELECT * FROM students ORDER BY name INTERSECT SELECT grade FROM students_2;"); + ASSERT_FALSE(res.isValid()); +} + +TEST(BeginTransactionTest) { + { + TEST_PARSE_SINGLE_SQL("BEGIN TRANSACTION;", kStmtTransaction, TransactionStatement, transaction_result, + transaction_stmt); + + ASSERT_EQ(transaction_stmt->command, kBeginTransaction); + } + + { + TEST_PARSE_SINGLE_SQL("BEGIN;", kStmtTransaction, TransactionStatement, transaction_result, transaction_stmt); + + ASSERT_EQ(transaction_stmt->command, kBeginTransaction); + } +} + +TEST(RollbackTransactionTest) { + TEST_PARSE_SINGLE_SQL("ROLLBACK TRANSACTION;", kStmtTransaction, TransactionStatement, transaction_result, + transaction_stmt); + + ASSERT_EQ(transaction_stmt->command, kRollbackTransaction); +} + +TEST(CommitTransactionTest) { + TEST_PARSE_SINGLE_SQL("COMMIT TRANSACTION;", kStmtTransaction, TransactionStatement, transaction_result, + transaction_stmt); + + ASSERT_EQ(transaction_stmt->command, kCommitTransaction); +} + +TEST(CastAsType) { + TEST_PARSE_SINGLE_SQL("SELECT CAST(ID AS VARCHAR(8)) FROM TEST", kStmtSelect, SelectStatement, result, stmt); + + ASSERT_TRUE(result.isValid()); + ASSERT_EQ(stmt->selectList->size(), 1); + ASSERT_EQ(stmt->selectList->front()->columnType.data_type, DataType::VARCHAR); + ASSERT_EQ(stmt->selectList->front()->columnType.length, 8); +} + +TEST_MAIN(); diff --git a/Data/src/sql-parser/test/test.sh b/Data/src/sql-parser/test/test.sh new file mode 100644 index 000000000..f240a934e --- /dev/null +++ b/Data/src/sql-parser/test/test.sh @@ -0,0 +1,95 @@ +#!/bin/bash +# Has to be executed from the root of the repository. +# Usually invoked by `make test`. +export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./ + +# Colors +RED='\033[1;31m' +GREEN='\033[1;32m' +YELLOW='\033[1;33m' +NC='\033[0m' +BOLD='\033[1;39m' + +RET=0 +SQL_TEST_RET=0 +MEM_LEAK_EXECUTED=$? +MEM_LEAK_RET=0 +CONFLICT_RET=0 + +################################################# +# Running SQL parser tests. +printf "\n${GREEN}Running SQL parser tests...${NC}\n" +bin/tests -f "test/queries/queries-good.sql" -f "test/queries/queries-bad.sql" +SQL_TEST_RET=$? + +if [ $SQL_TEST_RET -eq 0 ]; then + printf "${GREEN}SQL parser tests succeeded!${NC}\n" +else + RET=1 + printf "${RED}SQL parser tests failed!${NC}\n" +fi + +################################################# +# Running memory leak checks (only on Linux). +unamestr=$(uname) +if [[ "$unamestr" == 'Linux' ]]; then + printf "\n${GREEN}Running memory leak checks...${NC}\n" + valgrind --leak-check=full --error-exitcode=200 --log-fd=3 \ + bin/tests -f "test/queries/queries-good.sql" -f "test/queries/queries-bad.sql" \ + 3>&1>/dev/null; + + MEM_LEAK_EXECUTED=true + MEM_LEAK_RET=$? + RET=1 + + if [ $MEM_LEAK_RET -eq 0 ]; then + printf "${GREEN}Memory leak check succeeded!${NC}\n" + MEM_LEAK_RET=0 + RET=0 + elif [ $MEM_LEAK_RET -eq 200 ]; then + printf "${RED}Memory leak check failed!${NC}\n" + elif [ $MEM_LEAK_RET -eq 127 ]; then + printf "${RED}Memory leak check failed: command 'valgrind' not found!${NC}\n" + else + printf "${RED}Memory leak check failed: error code ${MEM_LEAK_RET}!${NC}\n" + fi +else + printf "\n${YELLOW}Skipping memory leak checks (can only be executed on Linux)!${NC}\n" + MEM_LEAK_EXECUTED=false +fi + +################################################# +# Checking if the grammar is conflict free. +printf "\n${GREEN}Checking for conflicts in the grammar...${NC}\n" +printf "${RED}" +make -C src/parser/ test >>/dev/null +CONFLICT_RET=$? + +if [ $CONFLICT_RET -eq 0 ]; then + printf "${GREEN}Conflict check succeeded!${NC}\n" +else + RET=1 + printf "${RED}Conflict check failed!${NC}\n" +fi + +# Print a summary of the test results. +printf " +---------------------------------- +${BOLD}Summary:\n" +if [ $SQL_TEST_RET -eq 0 ]; then printf "SQL Tests: ${GREEN}Success${BOLD}\n"; +else printf "SQL Tests: ${RED}Failure${BOLD}\n"; fi +if [ "$MEM_LEAK_EXECUTED" = true ]; then + if [ $MEM_LEAK_RET -eq 0 ]; then printf "Memory Leak Check: ${GREEN}Success${BOLD}\n"; + else printf "Memory Leak Check: ${RED}Failure${BOLD}\n"; fi +else printf "Memory Leak Check: ${YELLOW}Skipped${BOLD}\n" +fi +if [ $CONFLICT_RET -eq 0 ]; then printf "Grammar Conflict Check: ${GREEN}Success${BOLD}\n"; +else printf "Grammar Conflict Check: ${RED}Failure${BOLD}\n"; fi + +if [ $RET -ne 0 ]; then printf "${RED}Some tests failed!${NC}\n" +elif [ "$MEM_LEAK_EXECUTED" = false ]; then printf "${YELLOW}Some tests were skipped!${NC}\n" +else printf "${GREEN}All tests passed!${NC}\n" +fi +printf "${NC}----------------------------------\n" + +exit $RET diff --git a/Data/src/sql-parser/test/thirdparty/microtest/microtest.h b/Data/src/sql-parser/test/thirdparty/microtest/microtest.h new file mode 100644 index 000000000..15295fef4 --- /dev/null +++ b/Data/src/sql-parser/test/thirdparty/microtest/microtest.h @@ -0,0 +1,199 @@ +// +// microtest.h +// +// URL: https://github.com/torpedro/microtest.h +// Author: Pedro Flemming (http://torpedro.com/) +// License: MIT License (https://github.com/torpedro/microtest.h/blob/master/LICENSE) +// Copyright (c) 2017 Pedro Flemming +// +// This is a small header-only C++ unit testing framework. +// It allows to define small unit tests with set of assertions available. +// +#ifndef __MICROTEST_H__ +#define __MICROTEST_H__ + +#include +#include +#include +#include + +//////////////// +// Assertions // +//////////////// + +#define ASSERT(cond) ASSERT_TRUE(cond); + +#define ASSERT_TRUE(cond) \ + if (!(cond)) throw mt::AssertFailedException(#cond, __FILE__, __LINE__); + +#define ASSERT_FALSE(cond) \ + if (cond) throw mt::AssertFailedException(#cond, __FILE__, __LINE__); + +#define ASSERT_NULL(value) ASSERT_TRUE(value == NULL); + +#define ASSERT_NOTNULL(value) ASSERT_TRUE(value != NULL); + +#define ASSERT_STREQ(a, b) \ + if (std::string(a).compare(std::string(b)) != 0) { \ + printf("%s{ info} %s", mt::yellow(), mt::def()); \ + std::cout << "Actual values: " << a << " != " << b << std::endl; \ + throw mt::AssertFailedException(#a " == " #b, __FILE__, __LINE__); \ + } + +#define ASSERT_STRNEQ(a, b) \ + if (std::string(a).compare(std::string(b)) != = 0) { \ + printf("%s{ info} %s", mt::yellow(), mt::def()); \ + std::cout << "Actual values: " << a << " == " << b << std::endl; \ + throw mt::AssertFailedException(#a " != " #b, __FILE__, __LINE__); \ + } + +#define ASSERT_EQ(a, b) \ + if (a != b) { \ + printf("%s{ info} %s", mt::yellow(), mt::def()); \ + std::cout << "Actual values: " << a << " != " << b << std::endl; \ + } \ + ASSERT(a == b); + +#define ASSERT_NEQ(a, b) \ + if (a == b) { \ + printf("%s{ info} %s", mt::yellow(), mt::def()); \ + std::cout << "Actual values: " << a << " == " << b << std::endl; \ + } \ + ASSERT(a != b); + +//////////////// +// Unit Tests // +//////////////// + +#define TEST(name) \ + void name(); \ + namespace { \ + bool __##name = mt::TestsManager::AddTest(name, #name); \ + } \ + void name() + +/////////////// +// Framework // +/////////////// + +namespace mt { + +inline const char* red() { return "\033[1;31m"; } + +inline const char* green() { return "\033[0;32m"; } + +inline const char* yellow() { return "\033[0;33m"; } + +inline const char* def() { return "\033[0m"; } + +inline void printRunning(const char* message, FILE* file = stdout) { + fprintf(file, "%s{ running}%s %s\n", green(), def(), message); +} + +inline void printOk(const char* message, FILE* file = stdout) { + fprintf(file, "%s{ ok}%s %s\n", green(), def(), message); +} + +inline void printFailed(const char* message, FILE* file = stdout) { + fprintf(file, "%s{ failed} %s%s\n", red(), message, def()); +} + +// Exception that is thrown when an assertion fails. +class AssertFailedException : public std::exception { + public: + AssertFailedException(std::string description, std::string filepath, int line) + : std::exception(), description_(description), filepath_(filepath), line_(line){}; + + virtual const char* what() const throw() { return description_.c_str(); } + + inline const char* getFilepath() { return filepath_.c_str(); } + + inline int getLine() { return line_; } + + protected: + std::string description_; + std::string filepath_; + int line_; +}; + +class TestsManager { + // Note: static initialization fiasco + // http://www.parashift.com/c++-faq-lite/static-init-order.html + // http://www.parashift.com/c++-faq-lite/static-init-order-on-first-use.html + public: + struct Test { + const char* name; + void (*fn)(void); + }; + + static std::vector& tests() { + static std::vector tests_; + return tests_; + } + + // Adds a new test to the current set of tests. + // Returns false if a test with the same name already exists. + inline static bool AddTest(void (*fn)(void), const char* name) { + tests().push_back({name, fn}); + return true; + } + + // Run all tests that are registered. + // Returns the number of tests that failed. + inline static size_t RunAllTests(FILE* file = stdout) { + size_t num_failed = 0; + + for (const Test& test : tests()) { + // Run the test. + // If an AsserFailedException is thrown, the test has failed. + try { + printRunning(test.name, file); + + (*test.fn)(); + + printOk(test.name, file); + + } catch (AssertFailedException& e) { + printFailed(test.name, file); + fprintf(file, " %sAssertion failed: %s%s\n", red(), e.what(), def()); + fprintf(file, " %s%s:%d%s\n", red(), e.getFilepath(), e.getLine(), def()); + ++num_failed; + } + } + + int return_code = (num_failed > 0) ? 1 : 0; + return return_code; + } +}; + +// Class that will capture the arguments passed to the program. +class Runtime { + public: + static const std::vector& args(int argc = -1, char** argv = NULL) { + static std::vector args_; + if (argc >= 0) { + for (int i = 0; i < argc; ++i) { + args_.push_back(argv[i]); + } + } + return args_; + } +}; +} // namespace mt + +#define TEST_MAIN() \ + int main(int argc, char* argv[]) { \ + mt::Runtime::args(argc, argv); \ + \ + size_t num_failed = mt::TestsManager::RunAllTests(stdout); \ + if (num_failed == 0) { \ + fprintf(stdout, "%s{ summary} All tests succeeded!%s\n", mt::green(), mt::def()); \ + return 0; \ + } else { \ + double percentage = 100.0 * num_failed / mt::TestsManager::tests().size(); \ + fprintf(stderr, "%s{ summary} %lu tests failed (%.2f%%)%s\n", mt::red(), num_failed, percentage, mt::def()); \ + return -1; \ + } \ + } + +#endif // __MICROTEST_H__ \ No newline at end of file diff --git a/Data/src/sql-parser/test/tpc_h_tests.cpp b/Data/src/sql-parser/test/tpc_h_tests.cpp new file mode 100644 index 000000000..48b2daaa5 --- /dev/null +++ b/Data/src/sql-parser/test/tpc_h_tests.cpp @@ -0,0 +1,111 @@ +#include "thirdparty/microtest/microtest.h" + +#include "SQLParser.h" +#include "util/sqlhelper.h" + +#include "sql_asserts.h" + +#include +#include +#include +#include + +using namespace hsql; + +std::string readFileContents(std::string file_path) { + std::ifstream t(file_path.c_str()); + std::string text((std::istreambuf_iterator(t)), std::istreambuf_iterator()); + return text; +} + +TEST(TPCHQueryGrammarTests) { + std::vector files = { + "test/queries/tpc-h-01.sql", "test/queries/tpc-h-02.sql", "test/queries/tpc-h-03.sql", + "test/queries/tpc-h-04.sql", "test/queries/tpc-h-05.sql", "test/queries/tpc-h-06.sql", + "test/queries/tpc-h-07.sql", "test/queries/tpc-h-08.sql", "test/queries/tpc-h-09.sql", + "test/queries/tpc-h-10.sql", "test/queries/tpc-h-11.sql", "test/queries/tpc-h-12.sql", + "test/queries/tpc-h-13.sql", "test/queries/tpc-h-14.sql", "test/queries/tpc-h-15.sql", + "test/queries/tpc-h-16.sql", "test/queries/tpc-h-17.sql", "test/queries/tpc-h-18.sql", + "test/queries/tpc-h-19.sql", "test/queries/tpc-h-20.sql", "test/queries/tpc-h-21.sql", + "test/queries/tpc-h-22.sql", + }; + + int testsFailed = 0; + std::string concatenated = ""; + for (const std::string& file_path : files) { + std::string query = readFileContents(file_path); + + concatenated += query; + if (concatenated.back() != ';') concatenated += ';'; + + SQLParserResult result; + SQLParser::parse(query.c_str(), &result); + if (!result.isValid()) { + mt::printFailed(file_path.c_str()); + printf("%s %s (L%d:%d)%s\n", mt::red(), result.errorMsg(), result.errorLine(), result.errorColumn(), + mt::def()); + ++testsFailed; + } else { + mt::printOk(file_path.c_str()); + } + } + + SQLParserResult result; + SQLParser::parse(concatenated.c_str(), &result); + if (!result.isValid()) { + mt::printFailed("TPCHAllConcatenated"); + printf("%s %s (L%d:%d)%s\n", mt::red(), result.errorMsg(), result.errorLine(), result.errorColumn(), + mt::def()); + ++testsFailed; + } else { + mt::printOk("TPCHAllConcatenated"); + } + + ASSERT_EQ(testsFailed, 0); +} + +TEST(TPCHQueryDetailTest) { + std::string query = readFileContents("test/queries/tpc-h-20.sql"); + + SQLParserResult result; + SQLParser::parse(query.c_str(), &result); + ASSERT(result.isValid()); + ASSERT_EQ(result.size(), 1); + + const SQLStatement* stmt20 = result.getStatement(0); + ASSERT_EQ(stmt20->type(), kStmtSelect); + + const SelectStatement* select20 = (const SelectStatement*)stmt20; + ASSERT_EQ(select20->selectList->size(), 2); + ASSERT_STREQ(select20->selectList->at(0)->getName(), "S_NAME"); + ASSERT_STREQ(select20->selectList->at(1)->getName(), "S_ADDRESS"); + + // Test WHERE Clause. + Expr* where = select20->whereClause; + ASSERT_NOTNULL(where); + ASSERT(where->isType(kExprOperator)); + ASSERT_EQ(where->opType, kOpAnd); + + Expr* andExpr2 = where->expr; + ASSERT_NOTNULL(andExpr2); + ASSERT(andExpr2->isType(kExprOperator)); + ASSERT_EQ(andExpr2->opType, kOpAnd); + + // Test IN expression. + Expr* inExpr = andExpr2->expr; + ASSERT_NOTNULL(inExpr); + ASSERT(inExpr->isType(kExprOperator)); + ASSERT_EQ(inExpr->opType, kOpIn); + + ASSERT_STREQ(inExpr->expr->getName(), "S_SUPPKEY"); + ASSERT_NOTNULL(inExpr->select); + ASSERT_EQ(inExpr->select->selectList->size(), 1); + ASSERT(inExpr->select->selectList->at(0)->isType(kExprColumnRef)); + ASSERT_STREQ(inExpr->select->selectList->at(0)->getName(), "PS_SUPPKEY"); + + // Test ORDER BY clause. + ASSERT_NOTNULL(select20->order); + ASSERT_EQ(select20->order->size(), 1); + ASSERT(select20->order->at(0)->expr->isType(kExprColumnRef)); + ASSERT_STREQ(select20->order->at(0)->expr->getName(), "S_NAME"); +} diff --git a/Data/testsuite/src/DataTestSuite.cpp b/Data/testsuite/src/DataTestSuite.cpp index 0e7b7ea4d..9b8bb93ea 100644 --- a/Data/testsuite/src/DataTestSuite.cpp +++ b/Data/testsuite/src/DataTestSuite.cpp @@ -11,6 +11,9 @@ #include "DataTestSuite.h" #include "DataTest.h" #include "SessionPoolTest.h" +#ifdef POCO_DATA_ENABLE_SQL_PARSER +#include "SQLParserTest.h" +#endif // POCO_DATA_ENABLE_SQL_PARSER CppUnit::Test* DataTestSuite::suite() @@ -19,6 +22,9 @@ CppUnit::Test* DataTestSuite::suite() pSuite->addTest(DataTest::suite()); pSuite->addTest(SessionPoolTest::suite()); +#ifdef POCO_DATA_ENABLE_SQL_PARSER + pSuite->addTest(SQLParserTest::suite()); +#endif // POCO_DATA_ENABLE_SQL_PARSER return pSuite; } diff --git a/Data/testsuite/src/SQLParserTest.cpp b/Data/testsuite/src/SQLParserTest.cpp new file mode 100644 index 000000000..ef7400588 --- /dev/null +++ b/Data/testsuite/src/SQLParserTest.cpp @@ -0,0 +1,86 @@ +// +// SQLParserTest.cpp +// +// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "SQLParserTest.h" +#include "CppUnit/TestCaller.h" +#include "CppUnit/TestSuite.h" + +#ifdef POCO_DATA_ENABLE_SQL_PARSER + +#include "Poco/Data/SQLParser.h" + + +using namespace Poco::Data; + + +SQLParserTest::SQLParserTest(const std::string& name): CppUnit::TestCase(name) +{ +} + + +SQLParserTest::~SQLParserTest() +{ +} + + +void SQLParserTest::testSQLParser() +{ + std::string query = "INSERT INTO Test VALUES ('1', 2, 3.5);" + "SELECT * FROM Test WHERE First = ?;" + "UPDATE Test SET value=1 WHERE First = '1';" + "DELETE FROM Test WHERE First = ?;"; + + SQLParserResult result; + SQLParser::parse(query, &result); + int ins = 0, sel = 0, upd = 0, del = 0; + + assertTrue(result.isValid()); + assertEqual(4, result.size()); + for (auto i = 0u; i < result.size(); ++i) + { + const SQLStatement* stmt = result.getStatement(i); + //printStatementInfo(stmt); + switch (stmt->type()) + { + case kStmtSelect: ++sel; break; + case kStmtInsert: ++ins; break; + case kStmtUpdate: ++upd; break; + case kStmtDelete: ++del; break; + default: break; + } + } + assertEqual(1, ins); + assertEqual(1, sel); + assertEqual(1, upd); + assertEqual(1, del); +} + + +void SQLParserTest::setUp() +{ +} + + +void SQLParserTest::tearDown() +{ +} + + +CppUnit::Test* SQLParserTest::suite() +{ + CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("SQLParserTest"); + + CppUnit_addTest(pSuite, SQLParserTest, testSQLParser); + + return pSuite; +} + + +#endif // POCO_DATA_ENABLE_SQL_PARSER diff --git a/Data/testsuite/src/SQLParserTest.h b/Data/testsuite/src/SQLParserTest.h new file mode 100644 index 000000000..3946bc77a --- /dev/null +++ b/Data/testsuite/src/SQLParserTest.h @@ -0,0 +1,44 @@ +// +// SQLParserTest.h +// +// Definition of the SQLParserTest class. +// +// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef SQLParserTest_INCLUDED +#define SQLParserTest_INCLUDED + +#include "Poco/Config.h" + +#ifdef POCO_DATA_ENABLE_SQL_PARSER + +#include "Poco/Data/Data.h" +#include "CppUnit/TestCase.h" + + +class SQLParserTest: public CppUnit::TestCase +{ +public: + SQLParserTest(const std::string& name); + ~SQLParserTest(); + + void testSQLParser(); + + void setUp(); + void tearDown(); + + static CppUnit::Test* suite(); + +private: +}; + + +#endif // POCO_DATA_ENABLE_SQL_PARSER + + +#endif // SQLParserTest_INCLUDED From c7b6fa17bee8357cc9f14b29edd6e6cc3d01ac44 Mon Sep 17 00:00:00 2001 From: Friedrich Wilckens Date: Sun, 29 Oct 2023 13:53:11 -0700 Subject: [PATCH 151/395] Poco::Data::PostGreSQL::SessionHandle: free _pConnection when connection attempt fails. --- Data/PostgreSQL/src/SessionHandle.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Data/PostgreSQL/src/SessionHandle.cpp b/Data/PostgreSQL/src/SessionHandle.cpp index 3bc4aa843..65d18fb19 100644 --- a/Data/PostgreSQL/src/SessionHandle.cpp +++ b/Data/PostgreSQL/src/SessionHandle.cpp @@ -88,7 +88,13 @@ void SessionHandle::connect(const std::string& aConnectionString) if (!isConnectedNoLock()) { - throw ConnectionFailedException(std::string("Connection Error: ") + lastErrorNoLock()); + std::string msg = std::string("Connection Error: ") + lastErrorNoLock(); + if (_pConnection) + { + PQfinish(_pConnection); + _pConnection = 0; + } + throw ConnectionFailedException(msg); } _connectionString = aConnectionString; From 148affed30a5d7cbb108404a069cde5f8d8d63f9 Mon Sep 17 00:00:00 2001 From: Friedrich Wilckens Date: Mon, 30 Oct 2023 13:23:18 -0700 Subject: [PATCH 152/395] PostgreSQL: added test case for failed connection attempt. --- .../testsuite/src/PostgreSQLTest.cpp | 31 ++++++++++++++++++- .../PostgreSQL/testsuite/src/PostgreSQLTest.h | 2 ++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/Data/PostgreSQL/testsuite/src/PostgreSQLTest.cpp b/Data/PostgreSQL/testsuite/src/PostgreSQLTest.cpp index cb17b8463..0b551b642 100644 --- a/Data/PostgreSQL/testsuite/src/PostgreSQLTest.cpp +++ b/Data/PostgreSQL/testsuite/src/PostgreSQLTest.cpp @@ -140,6 +140,33 @@ void PostgreSQLTest::testConnectNoDB() } } + +void PostgreSQLTest::testFailedConnect() +{ + std::string dbConnString; + dbConnString += "host=" + getHost(); + dbConnString += " user=invalid"; + dbConnString += " password=invalid"; + dbConnString += " port=" + getPort(); + + Poco::SharedPtr pInvalidSession; + try + { + std::cout << "Attempting to Connect to [" << dbConnString << "] with invalid credentials: " << std::endl; + Session session(PostgreSQL::Connector::KEY, dbConnString); + fail ("must fail"); + } + catch (ConnectionFailedException& ex) + { + std::cout << ex.displayText() << std::endl; + } + catch (ConnectionException& ex) + { + std::cout << ex.displayText() << std::endl; + } +} + + void PostgreSQLTest::testPostgreSQLOIDs() { if (!_pSession) fail ("Test not available."); @@ -309,6 +336,7 @@ void PostgreSQLTest::testBarebonePostgreSQL() } + void PostgreSQLTest::testSimpleAccess() { if (!_pSession) fail ("Test not available."); @@ -775,7 +803,7 @@ void PostgreSQLTest::testSqlState() } catch (const Poco::Data::PostgreSQL::PostgreSQLException & exception) { - assertTrue(exception.sqlState() == std::string("42601")); + assertTrue(exception.sqlState() == std::string("42601")); } } @@ -1236,6 +1264,7 @@ CppUnit::Test* PostgreSQLTest::suite() CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("PostgreSQLTest"); CppUnit_addTest(pSuite, PostgreSQLTest, testConnectNoDB); + CppUnit_addTest(pSuite, PostgreSQLTest, testFailedConnect); CppUnit_addTest(pSuite, PostgreSQLTest, testPostgreSQLOIDs); //CppUnit_addTest(pSuite, PostgreSQLTest, testBarebonePostgreSQL); CppUnit_addTest(pSuite, PostgreSQLTest, testSimpleAccess); diff --git a/Data/PostgreSQL/testsuite/src/PostgreSQLTest.h b/Data/PostgreSQL/testsuite/src/PostgreSQLTest.h index 9f2158830..4900e6520 100644 --- a/Data/PostgreSQL/testsuite/src/PostgreSQLTest.h +++ b/Data/PostgreSQL/testsuite/src/PostgreSQLTest.h @@ -36,9 +36,11 @@ public: ~PostgreSQLTest(); void testConnectNoDB(); + void testFailedConnect(); void testPostgreSQLOIDs(); void testBarebonePostgreSQL(); + void testSimpleAccess(); void testComplexType(); void testSimpleAccessVector(); From 0024f3621b5afb6b7d275d9befbb9102e0be096d Mon Sep 17 00:00:00 2001 From: Friedrich Wilckens Date: Mon, 30 Oct 2023 13:28:09 -0700 Subject: [PATCH 153/395] PostgreSQL failed connection test: cleanup. --- Data/PostgreSQL/testsuite/src/PostgreSQLTest.cpp | 1 - Data/PostgreSQL/testsuite/src/PostgreSQLTest.h | 1 - 2 files changed, 2 deletions(-) diff --git a/Data/PostgreSQL/testsuite/src/PostgreSQLTest.cpp b/Data/PostgreSQL/testsuite/src/PostgreSQLTest.cpp index 0b551b642..5ad2a649d 100644 --- a/Data/PostgreSQL/testsuite/src/PostgreSQLTest.cpp +++ b/Data/PostgreSQL/testsuite/src/PostgreSQLTest.cpp @@ -149,7 +149,6 @@ void PostgreSQLTest::testFailedConnect() dbConnString += " password=invalid"; dbConnString += " port=" + getPort(); - Poco::SharedPtr pInvalidSession; try { std::cout << "Attempting to Connect to [" << dbConnString << "] with invalid credentials: " << std::endl; diff --git a/Data/PostgreSQL/testsuite/src/PostgreSQLTest.h b/Data/PostgreSQL/testsuite/src/PostgreSQLTest.h index 4900e6520..86abfba14 100644 --- a/Data/PostgreSQL/testsuite/src/PostgreSQLTest.h +++ b/Data/PostgreSQL/testsuite/src/PostgreSQLTest.h @@ -40,7 +40,6 @@ public: void testPostgreSQLOIDs(); void testBarebonePostgreSQL(); - void testSimpleAccess(); void testComplexType(); void testSimpleAccessVector(); From 9fcc2fd54d2cc11029ece48fd08dd0ac8803bf82 Mon Sep 17 00:00:00 2001 From: Friedrich Wilckens Date: Mon, 30 Oct 2023 13:50:45 -0700 Subject: [PATCH 154/395] PostgresSQL: make sure session is freed when disconnecting even if its status is not OK. --- Data/PostgreSQL/src/SessionHandle.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Data/PostgreSQL/src/SessionHandle.cpp b/Data/PostgreSQL/src/SessionHandle.cpp index 65d18fb19..3dde91fca 100644 --- a/Data/PostgreSQL/src/SessionHandle.cpp +++ b/Data/PostgreSQL/src/SessionHandle.cpp @@ -143,7 +143,7 @@ void SessionHandle::disconnect() { Poco::FastMutex::ScopedLock mutexLocker(_sessionMutex); - if (isConnectedNoLock()) + if (_pConnection) { PQfinish(_pConnection); From 512e63915b7792307b740fca09085aa79e7acd10 Mon Sep 17 00:00:00 2001 From: Friedrich Wilckens Date: Mon, 30 Oct 2023 14:00:15 -0700 Subject: [PATCH 155/395] PostgreSQL: when connecting, free old bad connection if there is one. --- Data/PostgreSQL/src/SessionHandle.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Data/PostgreSQL/src/SessionHandle.cpp b/Data/PostgreSQL/src/SessionHandle.cpp index 3dde91fca..48e223623 100644 --- a/Data/PostgreSQL/src/SessionHandle.cpp +++ b/Data/PostgreSQL/src/SessionHandle.cpp @@ -83,6 +83,12 @@ void SessionHandle::connect(const std::string& aConnectionString) { throw ConnectionFailedException("Already Connected"); } + else if (_pConnection) + { + // free bad connection + PQfinish(_pConnection); + _pConnection = 0; + } _pConnection = PQconnectdb(aConnectionString.c_str()); From 6dad8502d365cb20cc2224dc5d922fb021898ccb Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Wed, 1 Nov 2023 00:25:21 +0100 Subject: [PATCH 156/395] fix(Data): * make bool Session::isTransaction() return Poco::Optional * move parsing to Statement * SQLParser make build * other fixes and improvemets #4230 --- .vscode/c_cpp_properties.json | 2 +- .vscode/settings.json | 6 +- Data/Makefile | 14 +- Data/MySQL/Makefile | 4 + Data/MySQL/testsuite/Makefile | 4 + Data/ODBC/Makefile | 4 + Data/ODBC/include/Poco/Data/ODBC/Handle.h | 2 - Data/ODBC/src/ODBCStatementImpl.cpp | 2 +- Data/ODBC/testsuite/Makefile | 4 + Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp | 2 +- Data/ODBC/testsuite/src/ODBCTest.cpp | 2 +- Data/ODBC/testsuite/src/SQLExecutor.cpp | 67 +++--- Data/ODBC/testsuite/src/SQLExecutor.h | 2 +- Data/PostgreSQL/Makefile | 4 + Data/PostgreSQL/testsuite/Makefile | 4 + Data/SQLite/Makefile | 16 +- Data/SQLite/testsuite/Makefile | 4 + Data/include/Poco/Data/SQLParser.h | 9 +- Data/include/Poco/Data/Session.h | 9 +- Data/include/Poco/Data/SessionImpl.h | 9 + Data/include/Poco/Data/Statement.h | 217 +++++++++++++++++- Data/include/Poco/Data/StatementCreator.h | 20 ++ Data/include/Poco/Data/TypeHandler.h | 7 + Data/src/Session.cpp | 3 + Data/src/Statement.cpp | 149 +++++++++++- Data/src/StatementCreator.cpp | 8 +- Data/src/sql-parser/Makefile | 4 +- Data/src/sql-parser/src/SQLParserResult.cpp | 94 ++++++-- Data/src/sql-parser/src/SQLParserResult.h | 4 +- Data/src/sql-parser/src/sqlparser_win.h | 6 + Data/testsuite/Makefile | 15 +- Data/testsuite/src/DataTest.cpp | 48 ++++ Data/testsuite/src/DataTest.h | 1 + Data/testsuite/src/DataTestSuite.cpp | 8 +- Data/testsuite/src/SQLParserTest.cpp | 35 ++- Data/testsuite/src/SQLParserTest.h | 4 +- Data/testsuite/src/SessionImpl.cpp | 16 +- Data/testsuite/src/SessionImpl.h | 5 + Foundation/include/Poco/Config.h | 5 +- Makefile | 1 + build/config/Linux | 2 +- build/rules/compile | 121 ++++++++++ build/rules/global | 1 + configure | 153 +++++++----- runLibTests.sh | 48 ++++ 45 files changed, 949 insertions(+), 196 deletions(-) create mode 100755 runLibTests.sh diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index a26186809..37e2c1c30 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -23,7 +23,7 @@ "${POCO_BASE}/Redis/include", "${POCO_BASE}/MongoDB/include", "${POCO_BASE}/ApacheConnector/include", - "/usr/include" + "${POCO_BASE}/Data/src" ] }, "configurations": [ diff --git a/.vscode/settings.json b/.vscode/settings.json index e420cd4f7..e88cbd9d4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -95,7 +95,11 @@ "strstream": "cpp", "future": "cpp", "shared_mutex": "cpp", - "stop_token": "cpp" + "stop_token": "cpp", + "codecvt": "cpp", + "numbers": "cpp", + "span": "cpp", + "semaphore": "cpp" }, "files.exclude": { "**/.dep": true, diff --git a/Data/Makefile b/Data/Makefile index ea354f6c2..ba47e0276 100644 --- a/Data/Makefile +++ b/Data/Makefile @@ -15,8 +15,16 @@ objects = AbstractBinder AbstractBinding AbstractExtraction AbstractExtractor \ SessionPool SessionPoolContainer SQLChannel \ Statement StatementCreator StatementImpl Time Transcoder -target = PocoData -target_version = $(LIBVERSION) -target_libs = PocoFoundation +ifndef POCO_DATA_NO_SQL_PARSER + objects += SQLParser SQLParserResult \ + bison_parser flex_lexer \ + CreateStatement PrepareStatement SQLStatement \ + Expr statements sqlhelper + target_includes = $(POCO_BASE)/Data/src +endif + +target = PocoData +target_version = $(LIBVERSION) +target_libs = PocoFoundation include $(POCO_BASE)/build/rules/lib diff --git a/Data/MySQL/Makefile b/Data/MySQL/Makefile index 915f387b7..b199db03c 100644 --- a/Data/MySQL/Makefile +++ b/Data/MySQL/Makefile @@ -15,6 +15,10 @@ objects = Binder Extractor SessionImpl Connector \ MySQLStatementImpl ResultMetadata MySQLException \ SessionHandle StatementExecutor Utility +ifndef POCO_DATA_NO_SQL_PARSER + target_includes = $(POCO_BASE)/Data/src +endif + target = PocoDataMySQL target_version = $(LIBVERSION) target_libs = PocoData PocoFoundation diff --git a/Data/MySQL/testsuite/Makefile b/Data/MySQL/testsuite/Makefile index 440722fc8..a8c59defc 100644 --- a/Data/MySQL/testsuite/Makefile +++ b/Data/MySQL/testsuite/Makefile @@ -13,6 +13,10 @@ SYSLIBS += -lmysqlclient -lz -lpthread -ldl objects = MySQLTestSuite Driver MySQLTest SQLExecutor +ifndef POCO_DATA_NO_SQL_PARSER + target_includes = $(POCO_BASE)/Data/src +endif + target = testrunner target_version = 1 target_libs = PocoDataMySQL PocoData PocoFoundation CppUnit diff --git a/Data/ODBC/Makefile b/Data/ODBC/Makefile index 180a72b70..dcf6550da 100644 --- a/Data/ODBC/Makefile +++ b/Data/ODBC/Makefile @@ -12,6 +12,10 @@ objects = Binder ConnectionHandle Connector EnvironmentHandle \ Extractor ODBCException ODBCMetaColumn ODBCStatementImpl \ Parameter Preparator SessionImpl TypeInfo Unicode Utility +ifndef POCO_DATA_NO_SQL_PARSER + target_includes = $(POCO_BASE)/Data/src +endif + target = PocoDataODBC target_version = $(LIBVERSION) target_libs = PocoData PocoFoundation diff --git a/Data/ODBC/include/Poco/Data/ODBC/Handle.h b/Data/ODBC/include/Poco/Data/ODBC/Handle.h index 9d9dbc60c..c9e00b672 100644 --- a/Data/ODBC/include/Poco/Data/ODBC/Handle.h +++ b/Data/ODBC/include/Poco/Data/ODBC/Handle.h @@ -61,8 +61,6 @@ public: SQLRETURN rc = #endif SQLFreeHandle(handleType, _handle); - // N.B. Destructors should not throw, but neither do we want to - // leak resources. So, we throw here in debug mode if things go bad. poco_assert_dbg (!Utility::isError(rc)); } catch (...) diff --git a/Data/ODBC/src/ODBCStatementImpl.cpp b/Data/ODBC/src/ODBCStatementImpl.cpp index ee4a0fcef..a1251d4ce 100644 --- a/Data/ODBC/src/ODBCStatementImpl.cpp +++ b/Data/ODBC/src/ODBCStatementImpl.cpp @@ -373,7 +373,7 @@ void ODBCStatementImpl::makeStep() _extractors[currentDataSet()]->reset(); _nextResponse = SQLFetch(_stmt); // workaround for SQL Server drivers 17, 18, ... - // stored procedure calls produce additional data, + // stored procedure calls may produce additional data, // causing SQLFetch error 24000 (invalid cursor state); // when it happens, SQLMoreResults() is called to // force SQL_NO_DATA response diff --git a/Data/ODBC/testsuite/Makefile b/Data/ODBC/testsuite/Makefile index 91ec6987c..9472978b2 100644 --- a/Data/ODBC/testsuite/Makefile +++ b/Data/ODBC/testsuite/Makefile @@ -33,6 +33,10 @@ ifeq ($(POCO_CONFIG),MinGW) objects += ODBCAccessTest endif +ifndef POCO_DATA_NO_SQL_PARSER + target_includes = $(POCO_BASE)/Data/src +endif + target = testrunner target_version = 1 target_libs = PocoDataODBC PocoData PocoFoundation CppUnit diff --git a/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp b/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp index fea7debbc..af0d85fd5 100644 --- a/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp +++ b/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp @@ -968,9 +968,9 @@ CppUnit::Test* ODBCSQLServerTest::suite() CppUnit_addTest(pSuite, ODBCSQLServerTest, testSQLLogger); CppUnit_addTest(pSuite, ODBCSQLServerTest, testAutoCommit); CppUnit_addTest(pSuite, ODBCSQLServerTest, testSessionTransactionNoAutoCommit); + CppUnit_addTest(pSuite, ODBCSQLServerTest, testTransaction); CppUnit_addTest(pSuite, ODBCSQLServerTest, testTransactionIsolation); CppUnit_addTest(pSuite, ODBCSQLServerTest, testSessionTransaction); - CppUnit_addTest(pSuite, ODBCSQLServerTest, testTransaction); CppUnit_addTest(pSuite, ODBCSQLServerTest, testTransactor); CppUnit_addTest(pSuite, ODBCSQLServerTest, testNullable); CppUnit_addTest(pSuite, ODBCSQLServerTest, testUnicode); diff --git a/Data/ODBC/testsuite/src/ODBCTest.cpp b/Data/ODBC/testsuite/src/ODBCTest.cpp index 3acc8e452..7aa3d4233 100644 --- a/Data/ODBC/testsuite/src/ODBCTest.cpp +++ b/Data/ODBC/testsuite/src/ODBCTest.cpp @@ -1230,7 +1230,7 @@ void ODBCTest::testTransactionIsolation() recreatePersonTable(); _pSession->setFeature("autoBind", bindValue(i)); _pSession->setFeature("autoExtract", bindValue(i+1)); - _pExecutor->transactionIsolation(_rConnectString); + _pExecutor->transactionIsolation(); i += 2; } } diff --git a/Data/ODBC/testsuite/src/SQLExecutor.cpp b/Data/ODBC/testsuite/src/SQLExecutor.cpp index 7c30dfda0..2e48676a0 100644 --- a/Data/ODBC/testsuite/src/SQLExecutor.cpp +++ b/Data/ODBC/testsuite/src/SQLExecutor.cpp @@ -4187,7 +4187,7 @@ void SQLExecutor::autoCommit(const std::string& connect) } -void SQLExecutor::transactionIsolation(const std::string& connect) +void SQLExecutor::transactionIsolation() { auto ti = session().getTransactionIsolation(); @@ -4225,18 +4225,25 @@ void SQLExecutor::sessionTransaction(const std::string& connect) std::string result; session().setFeature("autoCommit", true); + assertTrue (session().getFeature("autoCommit")); + assertTrue (!session().isTransaction()); + session().begin(); assertTrue (session().isTransaction()); + assertTrue (!session().getFeature("autoCommit")); - // autocommit is invalid for session in transaction ... + // changing autocommit is invalid for session in transaction ... try { session().setFeature("autoCommit", true); fail ("must fail on autocommit setting during transaction"); } catch(const Poco::InvalidAccessException& e) { } + // make sure nothing was changed ... + assertTrue (!session().getFeature("autoCommit")); // but setting it to its current state is allowed (no-op) session().setFeature("autoCommit", false); + assertTrue (!session().getFeature("autoCommit")); session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; assertTrue (session().isTransaction()); @@ -4293,6 +4300,7 @@ void SQLExecutor::sessionTransactionNoAutoCommit(const std::string& connect) } std::string funct = "sessionTransactionNoAutoCommit()"; + std::vector lastNames = {"LN1", "LN2"}; std::vector firstNames = {"FN1", "FN2"}; std::vector addresses = {"ADDR1", "ADDR2"}; @@ -4311,20 +4319,24 @@ void SQLExecutor::sessionTransactionNoAutoCommit(const std::string& connect) local << "SELECT COUNT(*) FROM Person", into(locCount), now; assertTrue (0 == count); assertTrue (2 == locCount); +#ifndef POCO_DATA_NO_SQL_PARSER assertTrue (local.isTransaction()); // autocommit is invalid for session in transaction ... try { local.setFeature("autoCommit", true); - fail ("must fail on autocommit setting during transaction"); + fail ("must fail on autocommit setting during transaction", __LINE__); } catch(const Poco::InvalidAccessException& e) { } + // but setting it to its current state is allowed (no-op) local.setFeature("autoCommit", false); assertTrue (!session().isTransaction()); - +#else + session().commit(); +#endif // POCO_DATA_NO_SQL_PARSER local.commit(); assertTrue (!local.isTransaction()); @@ -4341,8 +4353,12 @@ void SQLExecutor::sessionTransactionNoAutoCommit(const std::string& connect) local << "SELECT COUNT(*) FROM Person", into(locCount), now; assertTrue (0 == count); assertTrue (4 == locCount); +#ifndef POCO_DATA_NO_SQL_PARSER assertTrue (local.isTransaction()); assertTrue (!session().isTransaction()); +#else + session().commit(); +#endif local.rollback(); assertTrue (!local.isTransaction()); @@ -4354,7 +4370,10 @@ void SQLExecutor::sessionTransactionNoAutoCommit(const std::string& connect) local << "SELECT COUNT(*) FROM Person", into(locCount), now; assertTrue (2 == count); assertTrue (2 == locCount); - +#ifndef POCO_DATA_NO_SQL_PARSER + session().commit(); + local.commit(); +#endif session().setFeature("autoCommit", autoCommit); } @@ -4399,34 +4418,26 @@ void SQLExecutor::transaction(const std::string& connect) assertTrue (trans.isActive()); assertTrue (session().isTransaction()); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; assertTrue (session().isTransaction()); assertTrue (trans.isActive()); - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "SELECT COUNT(*) FROM Person", into(count), now; assertTrue (2 == count); assertTrue (session().isTransaction()); assertTrue (trans.isActive()); } assertTrue (!session().isTransaction()); - try { session() << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "SELECT count(*) FROM Person", into(count), now; assertTrue (0 == count); - assertTrue (session().isTransaction()); + assertTrue (!session().isTransaction()); session().commit(); { Transaction trans(session()); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; Statement stmt1 = (local << "SELECT COUNT(*) FROM Person", into(locCount), async, now); @@ -4440,20 +4451,14 @@ void SQLExecutor::transaction(const std::string& connect) assertTrue (2 == locCount); } - try { session() << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "SELECT count(*) FROM Person", into(count), now; assertTrue (2 == count); - try { session() << "DELETE FROM Person", now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "DELETE FROM Person", now; Statement stmt1 = (local << "SELECT count(*) FROM Person", into(locCount), async, now); - try { session() << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "SELECT count(*) FROM Person", into(count), now; assertTrue (0 == count); try { @@ -4493,9 +4498,7 @@ void SQLExecutor::transaction(const std::string& connect) stmt2.wait(); assertTrue (0 == locCount); - try { session() << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "SELECT count(*) FROM Person", into(count), now; assertTrue (0 == count); trans.execute(sql); @@ -4503,9 +4506,7 @@ void SQLExecutor::transaction(const std::string& connect) Statement stmt3 = (local << "SELECT COUNT(*) FROM Person", into(locCount), now); assertTrue (2 == locCount); - try { session() << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } + session() << "SELECT count(*) FROM Person", into(count), now; assertTrue (2 == count); session().commit(); diff --git a/Data/ODBC/testsuite/src/SQLExecutor.h b/Data/ODBC/testsuite/src/SQLExecutor.h index 18304e816..a9771e0c9 100644 --- a/Data/ODBC/testsuite/src/SQLExecutor.h +++ b/Data/ODBC/testsuite/src/SQLExecutor.h @@ -512,7 +512,7 @@ public: void sqlLogger(const std::string& connect); void autoCommit(const std::string& connect); - void transactionIsolation(const std::string& connect); + void transactionIsolation(); void sessionTransaction(const std::string& connect); void sessionTransactionNoAutoCommit(const std::string& connect); diff --git a/Data/PostgreSQL/Makefile b/Data/PostgreSQL/Makefile index c3efddb2e..2f9f8bd9d 100644 --- a/Data/PostgreSQL/Makefile +++ b/Data/PostgreSQL/Makefile @@ -12,6 +12,10 @@ objects = Extractor BinaryExtractor Binder SessionImpl Connector \ PostgreSQLStatementImpl PostgreSQLException \ SessionHandle StatementExecutor PostgreSQLTypes Utility +ifndef POCO_DATA_NO_SQL_PARSER + target_includes = $(POCO_BASE)/Data/src +endif + target = PocoDataPostgreSQL target_version = $(LIBVERSION) target_libs = PocoData PocoFoundation diff --git a/Data/PostgreSQL/testsuite/Makefile b/Data/PostgreSQL/testsuite/Makefile index 23fc02dd8..ebb9696e8 100644 --- a/Data/PostgreSQL/testsuite/Makefile +++ b/Data/PostgreSQL/testsuite/Makefile @@ -13,6 +13,10 @@ SYSLIBS += -lpq -lz -lpthread -ldl objects = PostgreSQLTestSuite Driver PostgreSQLTest SQLExecutor +ifndef POCO_DATA_NO_SQL_PARSER + target_includes = $(POCO_BASE)/Data/src +endif + target = testrunner target_version = 1 target_libs = PocoDataPostgreSQL PocoData PocoFoundation CppUnit diff --git a/Data/SQLite/Makefile b/Data/SQLite/Makefile index 4a0c48d3c..c6a67219d 100644 --- a/Data/SQLite/Makefile +++ b/Data/SQLite/Makefile @@ -9,18 +9,20 @@ include $(POCO_BASE)/build/rules/global COMMONFLAGS += -I$(POCO_BASE)/Data/SQLite/src SYSFLAGS += -DSQLITE_THREADSAFE=1 -DSQLITE_DISABLE_LFS \ - -DSQLITE_OMIT_UTF16 -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_COMPLETE \ - -DSQLITE_OMIT_TCL_VARIABLE -DSQLITE_OMIT_DEPRECATED + -DSQLITE_OMIT_UTF16 -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_COMPLETE \ + -DSQLITE_OMIT_TCL_VARIABLE -DSQLITE_OMIT_DEPRECATED objects = Binder Extractor Notifier SessionImpl Connector \ - SQLiteException SQLiteStatementImpl Utility - -sqlite_objects = sqlite3 + SQLiteException SQLiteStatementImpl Utility ifdef POCO_UNBUNDLED - SYSLIBS += -lsqlite3 + SYSLIBS += -lsqlite3 else - objects += $(sqlite_objects) + objects += sqlite3 +endif + +ifndef POCO_DATA_NO_SQL_PARSER + target_includes = $(POCO_BASE)/Data/src endif target = PocoDataSQLite diff --git a/Data/SQLite/testsuite/Makefile b/Data/SQLite/testsuite/Makefile index 0b47f3429..5f8fcad7c 100644 --- a/Data/SQLite/testsuite/Makefile +++ b/Data/SQLite/testsuite/Makefile @@ -9,6 +9,10 @@ include $(POCO_BASE)/build/rules/global objects = SQLiteTestSuite Driver \ SQLiteTest +ifndef POCO_DATA_NO_SQL_PARSER + target_includes = $(POCO_BASE)/Data/src +endif + target = testrunner target_version = 1 target_libs = PocoDataSQLite PocoData PocoFoundation CppUnit diff --git a/Data/include/Poco/Data/SQLParser.h b/Data/include/Poco/Data/SQLParser.h index b2c0287f4..f86729d6b 100644 --- a/Data/include/Poco/Data/SQLParser.h +++ b/Data/include/Poco/Data/SQLParser.h @@ -20,7 +20,7 @@ #include "Poco/Config.h" -#ifdef POCO_DATA_ENABLE_SQL_PARSER +#ifndef POCO_DATA_NO_SQL_PARSER #include "sql-parser/src/SQLParser.h" @@ -29,13 +29,14 @@ namespace Poco { +namespace Data { -namespace Data = hsql; + namespace Parser = hsql; // namespace Poco::Data::Parser -} // namespace Poco +} } // namespace Poco::Data -#endif // POCO_DATA_ENABLE_SQL_PARSER +#endif // POCO_DATA_NO_SQL_PARSER #endif // Data_SQLParser_INCLUDED diff --git a/Data/include/Poco/Data/Session.h b/Data/include/Poco/Data/Session.h index 7238c4e9a..332e99698 100644 --- a/Data/include/Poco/Data/Session.h +++ b/Data/include/Poco/Data/Session.h @@ -199,12 +199,9 @@ public: template Statement operator << (const T& t) - /// Creates a Statement with the given data as SQLContent + /// Creates a Statement with the given string as SQLContent. { - Statement stmt = (_statementCreator << t); - if (!_pImpl->isTransaction() && !isAutocommit()) - _pImpl->begin(); - return stmt; + return (_statementCreator << t); } SharedPtr createStatementImpl(); @@ -356,7 +353,7 @@ private: inline bool Session::isAutocommit() const { - return hasFeature("autoCommit") && getFeature("autoCommit"); + return _pImpl->isAutocommit(); } diff --git a/Data/include/Poco/Data/SessionImpl.h b/Data/include/Poco/Data/SessionImpl.h index a956f62dd..273593210 100644 --- a/Data/include/Poco/Data/SessionImpl.h +++ b/Data/include/Poco/Data/SessionImpl.h @@ -146,6 +146,9 @@ public: std::string uri() const; /// Returns the URI for this session. + bool isAutocommit() const; + /// Returns true if autocommit is on, false otherwise. + virtual bool hasFeature(const std::string& name) const = 0; /// Returns true if session has the named feature. @@ -238,6 +241,12 @@ inline std::string SessionImpl::uri() const } +inline bool SessionImpl::isAutocommit() const +{ + return hasFeature("autoCommit") && getFeature("autoCommit"); +} + + } } // namespace Poco::Data diff --git a/Data/include/Poco/Data/Statement.h b/Data/include/Poco/Data/Statement.h index b400470cc..694ca1ce3 100644 --- a/Data/include/Poco/Data/Statement.h +++ b/Data/include/Poco/Data/Statement.h @@ -24,12 +24,14 @@ #include "Poco/Data/Range.h" #include "Poco/Data/Bulk.h" #include "Poco/Data/Row.h" +#include "Poco/Data/SQLParser.h" #include "Poco/Data/SimpleRowFormatter.h" #include "Poco/SharedPtr.h" #include "Poco/Mutex.h" #include "Poco/ActiveMethod.h" #include "Poco/ActiveResult.h" #include "Poco/Format.h" +#include "Poco/Optional.h" #include @@ -70,6 +72,18 @@ class Data_API Statement /// member function. /// If no formatter is externally supplied to the statement, the SimpleRowFormatter is lazy /// created and used. + /// + /// If compiled with SQLParser support, Statement knows the number and type of the SQL statement(s) + /// it contains, to the extent that the SQL string is a standard SQL and the staement type is supported. + /// No proprietary SQL extensions are supported. + /// + /// Supported statement types are: + /// + /// - SELECT + /// - INSERT + /// - UPDATE + /// - DELETE + /// { public: typedef void (*Manipulator)(Statement&); @@ -189,9 +203,9 @@ public: /// Registers extraction container with the Statement. { if (reset) _pImpl->resetExtraction(); - typename C::iterator itAE = val.begin(); - typename C::iterator itAEEnd = val.end(); - for (; itAE != itAEEnd; ++itAE) addExtract(*itAE); + typename C::iterator it = val.begin(); + typename C::iterator end = val.end(); + for (; it != end; ++it) addExtract(*it); return *this; } @@ -200,9 +214,9 @@ public: /// Registers container of extraction containers with the Statement. { _pImpl->resetExtraction(); - typename C::iterator itAEV = val.begin(); - typename C::iterator itAEVEnd = val.end(); - for (; itAEV != itAEVEnd; ++itAEV) addExtraction(*itAEV, false); + typename C::iterator it = val.begin(); + typename C::iterator end = val.end(); + for (; it != end; ++it) addExtraction(*it, false); return *this; } @@ -291,6 +305,53 @@ public: const std::string& toString() const; /// Creates a string from the accumulated SQL statement. + std::size_t statementsCount() const; + /// Returns the total number of SQL statements held in the accummulated SQL statement. + + Optional parse(); + /// Parses the SQL statement and returns true if successful. + /// + /// Note that parsing is not guaranteed to succeed, as some backends have proprietary + /// keywords not supported by the parser. Parsing failures are silent in terms of + /// throwing exceptions or logging, but it is possible to get error information by + /// calling parseError(). + + const std::string& parseError(); + /// Returns the SQL statement parse error message, if any. + /// For Poco::Data builds without SQLParser, it always returns empty string. + + Optional isSelect() const; + /// Returns true if the statement consists only of SELECT statement(s). + /// For Poco::Data builds without SQLParser, it always returns unspecified. + + Optional isInsert() const; + /// Returns true if the statement consists only of INSERT statement(s). + /// For Poco::Data builds without SQLParser, it always returns unspecified. + + Optional isUpdate() const; + /// Returns true if the statement consists only of UPDATE statement(s). + /// For Poco::Data builds without SQLParser, it always returns unspecified. + + Optional isDelete() const; + /// Returns true if the statement consists only of DELETE statement(s). + /// For Poco::Data builds without SQLParser, it always returns unspecified. + + Optional hasSelect() const; + /// Returns true if the statement contains a SELECT statement. + /// For Poco::Data builds without SQLParser, it always returns unspecified. + + Optional hasInsert() const; + /// Returns true if the statement contains an INSERT statement. + /// For Poco::Data builds without SQLParser, it always returns unspecified. + + Optional hasUpdate() const; + /// Returns true if the statement contains an UPDATE statement. + /// For Poco::Data builds without SQLParser, it always returns unspecified. + + Optional hasDelete() const; + /// Returns true if the statement contains a DELETE statement. + /// For Poco::Data builds without SQLParser, it always returns unspecified. + std::size_t execute(bool reset = true); /// Executes the statement synchronously or asynchronously. /// Stops when either a limit is hit or the whole statement was executed. @@ -298,15 +359,35 @@ public: /// returning data) or number of rows affected (for all other statements). /// If reset is true (default), associated storage is reset and reused. /// Otherwise, the results from this execution step are appended. - /// Reset argument has no meaning for unlimited statements that return all rows. + /// The reset argument has no meaning for unlimited statements that return all rows. /// If isAsync() returns true, the statement is executed asynchronously /// and the return value from this function is zero. /// The result of execution (i.e. number of returned or affected rows) can be /// obtained by calling wait() on the statement at a later point in time. + /// + /// When Poco::Data is compiled with SQL parsing support, if session is not already in + /// a transaction and not in autocommit mode, an attempt to parse the SQL is made before + /// statement execution, and if (1) successful, and (2) the statement does not consist + /// only of SELECT statements, a transaction is started. + /// + /// Note that parsing is not guaranteed to succeed, as some backends have proprietary + /// keywords not supported by the parser. Parsing failures are silent in terms of + /// throwing exceptions or logging, but it is possible to get error information by calling + /// Statement::parseError(). + /// When parsing does not succeed, transaction is not started, and Poco::Data::Session will + /// not reflect its state accurately. The underlying database session, however, will be in + /// transaction state. In such state, in order to complete the transaction and unlock the + /// resources, commit() or rollback() must be called on the Poco::Data::Session; this is + /// true even for a single SELECT statement in non-autocommit mode when parsing does not + /// succeed. + /// + /// For Poco::Data builds without SQLParser support, the behavior is the same as + /// for unsuccesful parsing. void executeDirect(const std::string& query); /// Executes the query synchronously and directly. - /// If isAsync() returns true, the statement is also executed synchronously. + /// Even when isAsync() returns true, the statement is still executed synchronously. + /// For transactional behavior, see execute() documentation. const Result& executeAsync(bool reset = true); /// Executes the statement asynchronously. @@ -316,6 +397,7 @@ public: /// of rows affected by the statement execution. /// When executed on a synchronous statement, this method does not alter the /// statement's synchronous nature. + /// For transactional behavior, see execute() documentation. void setAsync(bool async = true); /// Sets the asynchronous flag. If this flag is true, executeAsync() is called @@ -343,7 +425,10 @@ public: /// and there is more work to do. When no limit is set, it will always return true after calling execute(). Statement& reset(Session& session); - /// Resets the Statement so that it can be filled with a new SQL command. + /// Resets the Statement and assigns it a new session, so that it can be filled with a new SQL query. + + Statement& reset(); + /// Resets the Statement so that it can be filled with a new SQL query. bool canModifyStorage(); /// Returns true if statement is in a state that allows the internal storage to be modified. @@ -435,6 +520,33 @@ private: return *this; } + void formatQuery(); + /// Formats the query string. + + void checkBeginTransaction(); + /// Checks if the transaction needs to be started + /// and starts it if not. + /// Transaction is automatically started for the first + /// statement on a non-autocommit session. + /// The best effort is made to detect if the query + /// consists of SELECT statements only, in which case + /// transaction does not need to started. + /// However, due to many SQL dialects, this logic is + /// not 100% accurate and transaction MAY be started + /// for SELECT-only queries. + +#ifndef POCO_DATA_NO_SQL_PARSER + + bool isType(Parser::StatementType type) const; + /// Returns true if the statement is of the argument type. + + bool hasType(Parser::StatementType type) const; + /// Returns true if the statement is of the argument type. + + Poco::SharedPtr _pParseResult; + +#endif // POCO_DATA_NO_SQL_PARSER + StatementImpl::Ptr _pImpl; // asynchronous execution related members @@ -445,6 +557,7 @@ private: std::vector _arguments; RowFormatter::Ptr _pRowFormatter; mutable std::string _stmtString; + std::string _parseError; }; // @@ -456,6 +569,92 @@ inline std::size_t Statement::subTotalRowCount(int dataSet) const } +inline const std::string& Statement::parseError() +{ + return _parseError; +} + + +inline Optional Statement::isSelect() const +{ +#ifndef POCO_DATA_NO_SQL_PARSER + return isType(Parser::StatementType::kStmtSelect); +#else + return Optional(); +#endif +} + + +inline Optional Statement::isInsert() const +{ +#ifndef POCO_DATA_NO_SQL_PARSER + return isType(Parser::StatementType::kStmtInsert); +#else + return Optional(); +#endif +} + + +inline Optional Statement::isUpdate() const +{ +#ifndef POCO_DATA_NO_SQL_PARSER + return isType(Parser::StatementType::kStmtUpdate); +#else + return Optional(); +#endif +} + + +inline Optional Statement::isDelete() const +{ +#ifndef POCO_DATA_NO_SQL_PARSER + return isType(Parser::StatementType::kStmtDelete); +#else + return Optional(); +#endif +} + + +inline Optional Statement::hasSelect() const +{ +#ifndef POCO_DATA_NO_SQL_PARSER + return hasType(Parser::StatementType::kStmtSelect); +#else + return Optional(); +#endif +} + + +inline Optional Statement::hasInsert() const +{ +#ifndef POCO_DATA_NO_SQL_PARSER + return hasType(Parser::StatementType::kStmtInsert); +#else + return Optional(); +#endif +} + + +inline Optional Statement::hasUpdate() const +{ +#ifndef POCO_DATA_NO_SQL_PARSER + return hasType(Parser::StatementType::kStmtUpdate); +#else + return Optional(); +#endif +} + + +inline Optional Statement::hasDelete() const +{ +#ifndef POCO_DATA_NO_SQL_PARSER + return hasType(Parser::StatementType::kStmtDelete); +#else + return Optional(); +#endif +} + + namespace Keywords { diff --git a/Data/include/Poco/Data/StatementCreator.h b/Data/include/Poco/Data/StatementCreator.h index 23ca43032..4943ab99a 100644 --- a/Data/include/Poco/Data/StatementCreator.h +++ b/Data/include/Poco/Data/StatementCreator.h @@ -68,10 +68,30 @@ public: return stmt; } + void reset(); + /// Resets the StatementCreator. + private: Poco::AutoPtr _ptrImpl; }; +// +// inlines +// + + +inline void StatementCreator::swap(StatementCreator& other) noexcept +{ + using std::swap; + swap(_ptrImpl, other._ptrImpl); +} + + +inline void StatementCreator::reset() +{ + _ptrImpl = nullptr; +} + } } // namespace Poco::Data diff --git a/Data/include/Poco/Data/TypeHandler.h b/Data/include/Poco/Data/TypeHandler.h index 235cbbb26..bfa42985d 100644 --- a/Data/include/Poco/Data/TypeHandler.h +++ b/Data/include/Poco/Data/TypeHandler.h @@ -28,6 +28,10 @@ #include "Poco/SharedPtr.h" #include +#if defined(POCO_COMPILER_GCC) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wuse-after-free" +#endif namespace Poco { namespace Data { @@ -5750,5 +5754,8 @@ private: } } // namespace Poco::Data +#if defined(POCO_COMPILER_GCC) + #pragma GCC diagnostic pop +#endif #endif // Data_TypeHandler_INCLUDED diff --git a/Data/src/Session.cpp b/Data/src/Session.cpp index c7a611091..50052e3de 100644 --- a/Data/src/Session.cpp +++ b/Data/src/Session.cpp @@ -60,6 +60,9 @@ Session::Session(Session&& other) noexcept: _statementCreator(std::move(other._statementCreator)), _wasAutoCommit(other._wasAutoCommit) { + other._pImpl = nullptr; + other._statementCreator.reset(); + other._wasAutoCommit = false; } Session::~Session() diff --git a/Data/src/Statement.cpp b/Data/src/Statement.cpp index 2ff855d3f..380f61d19 100644 --- a/Data/src/Statement.cpp +++ b/Data/src/Statement.cpp @@ -28,6 +28,9 @@ namespace Data { Statement::Statement(StatementImpl::Ptr pImpl): +#ifndef POCO_DATA_NO_SQL_PARSER + _pParseResult(new Parser::SQLParserResult()), +#endif _pImpl(pImpl), _async(false) { @@ -43,24 +46,42 @@ Statement::Statement(Session& session): Statement::Statement(const Statement& stmt): +#ifndef POCO_DATA_NO_SQL_PARSER + _pParseResult(stmt._pParseResult), +#endif _pImpl(stmt._pImpl), _async(stmt._async), _pResult(stmt._pResult), _pAsyncExec(stmt._pAsyncExec), _arguments(stmt._arguments), - _pRowFormatter(stmt._pRowFormatter) + _pRowFormatter(stmt._pRowFormatter), + _stmtString(stmt._stmtString), + _parseError(stmt._parseError) { } Statement::Statement(Statement&& stmt) noexcept: +#ifndef POCO_DATA_NO_SQL_PARSER + _pParseResult(std::move(stmt._pParseResult)), +#endif _pImpl(std::move(stmt._pImpl)), _async(std::move(stmt._async)), _pResult(std::move(stmt._pResult)), _pAsyncExec(std::move(stmt._pAsyncExec)), _arguments(std::move(stmt._arguments)), - _pRowFormatter(std::move(stmt._pRowFormatter)) + _pRowFormatter(std::move(stmt._pRowFormatter)), + _stmtString(std::move(stmt._stmtString)), + _parseError(std::move(stmt._parseError)) { + stmt._pImpl = nullptr; + stmt._async = false; + stmt._pResult = nullptr; + stmt._pAsyncExec = nullptr; + stmt._arguments.clear(); + stmt._pRowFormatter = nullptr; + _stmtString.clear(); + _parseError.clear(); } @@ -79,12 +100,25 @@ Statement& Statement::operator = (const Statement& stmt) Statement& Statement::operator = (Statement&& stmt) noexcept { +#ifndef POCO_DATA_NO_SQL_PARSER + _pParseResult = std::move(stmt._pParseResult); +#endif _pImpl = std::move(stmt._pImpl); + stmt._pImpl = nullptr; _async = std::move(stmt._async); + stmt._async = false; _pResult = std::move(stmt._pResult); + stmt._pResult = nullptr; _pAsyncExec = std::move(stmt._pAsyncExec); + stmt._pAsyncExec = nullptr; _arguments = std::move(stmt._arguments); + stmt._arguments.clear(); _pRowFormatter = std::move(stmt._pRowFormatter); + stmt._pRowFormatter = nullptr; + _stmtString = std::move(stmt._stmtString); + _stmtString.clear(); + _parseError = std::move(stmt._parseError); + _parseError.clear(); return *this; } @@ -92,13 +126,17 @@ Statement& Statement::operator = (Statement&& stmt) noexcept void Statement::swap(Statement& other) noexcept { using std::swap; - +#ifndef POCO_DATA_NO_SQL_PARSER + swap(_pParseResult, other._pParseResult); +#endif swap(_pImpl, other._pImpl); swap(_async, other._async); - swap(_pAsyncExec, other._pAsyncExec); swap(_pResult, other._pResult); + swap(_pAsyncExec, other._pAsyncExec); _arguments.swap(other._arguments); swap(_pRowFormatter, other._pRowFormatter); + swap(_stmtString, other._stmtString); + swap(_parseError, other._parseError); } @@ -110,17 +148,107 @@ Statement& Statement::reset(Session& session) } +Statement& Statement::reset() +{ + Statement stmt(_pImpl->session().createStatementImpl()); + swap(stmt); + return *this; +} + +std::size_t Statement::statementsCount() const +{ +#ifndef POCO_DATA_NO_SQL_PARSER + return _pParseResult->size(); +#else + return 0u; +#endif +} + + +Optional Statement::parse() +{ + Optional result; +#ifndef POCO_DATA_NO_SQL_PARSER + if (_stmtString.empty()) toString(); + if (!_stmtString.empty()) + { + _pParseResult->reset(); + Parser::SQLParser::parse(_stmtString, _pParseResult.get()); + result = _pParseResult->isValid(); + if (!result.value()) + { + Poco::format(_parseError, "%s (line %d, pos %d)", + std::string(_pParseResult->errorMsg()), + _pParseResult->errorLine(), + _pParseResult->errorColumn()); + } + } +#endif + return result; +} + + +#ifndef POCO_DATA_NO_SQL_PARSER + +bool Statement::isType(Parser::StatementType type) const +{ + std::size_t sz = _pParseResult->size(); + if (sz) + { + for (int i = 0; i < sz; ++i) + { + if (_pParseResult->getStatement(i)->type() != type) + return false; + } + return true; + } + return false; +} + + +bool Statement::hasType(Parser::StatementType type) const +{ + for (int i = 0; i < _pParseResult->size(); ++i) + { + if (_pParseResult->getStatement(i)->type() == type) + return true; + } + return false; +} + +#endif // POCO_DATA_NO_SQL_PARSER + + +void Statement::formatQuery() +{ + if (_arguments.size()) + { + _pImpl->formatSQL(_arguments); + _arguments.clear(); + } +} + + +void Statement::checkBeginTransaction() +{ + SessionImpl& session = _pImpl->session(); + if (!session.isAutocommit() && !session.isTransaction()) + { + auto result = parse(); + if (result.isSpecified() && result.value() && !isSelect().value()) + session.begin(); + } +} + + std::size_t Statement::execute(bool reset) { Mutex::ScopedLock lock(_mutex); bool isDone = done(); if (initialized() || paused() || isDone) { - if (_arguments.size()) - { - _pImpl->formatSQL(_arguments); - _arguments.clear(); - } + formatQuery(); + checkBeginTransaction(); if (!isAsync()) { @@ -136,12 +264,15 @@ std::size_t Statement::execute(bool reset) else throw InvalidAccessException("Statement still executing."); } + void Statement::executeDirect(const std::string& query) { Mutex::ScopedLock lock(_mutex); bool isDone = done(); if (initialized() || paused() || isDone) { + formatQuery(); + checkBeginTransaction(); if (!isAsync()) { diff --git a/Data/src/StatementCreator.cpp b/Data/src/StatementCreator.cpp index bb3b845a5..16a2934a2 100644 --- a/Data/src/StatementCreator.cpp +++ b/Data/src/StatementCreator.cpp @@ -40,6 +40,7 @@ StatementCreator::StatementCreator(const StatementCreator& other): StatementCreator::StatementCreator(StatementCreator&& other) noexcept: _ptrImpl(std::move(other._ptrImpl)) { + other._ptrImpl = nullptr; } @@ -54,15 +55,10 @@ StatementCreator& StatementCreator::operator = (const StatementCreator& other) StatementCreator& StatementCreator::operator = (StatementCreator&& other) noexcept { _ptrImpl = std::move(other._ptrImpl); + other._ptrImpl = nullptr; return *this; } -void StatementCreator::swap(StatementCreator& other) noexcept -{ - using std::swap; - swap(_ptrImpl, other._ptrImpl); -} - StatementCreator::~StatementCreator() { diff --git a/Data/src/sql-parser/Makefile b/Data/src/sql-parser/Makefile index 14efbd191..26329ce75 100644 --- a/Data/src/sql-parser/Makefile +++ b/Data/src/sql-parser/Makefile @@ -36,7 +36,7 @@ GMAKE = make mode=$(mode) NAME := sqlparser PARSER_CPP = $(SRCPARSER)/bison_parser.cpp $(SRCPARSER)/flex_lexer.cpp PARSER_H = $(SRCPARSER)/bison_parser.h $(SRCPARSER)/flex_lexer.h -LIB_CFLAGS = -std=c++17 $(OPT_FLAG) +LIB_CFLAGS = -std=c++17 -I$(SRCPARSER)/../../../ $(OPT_FLAG) relaxed_build ?= "off" ifeq ($(relaxed_build), on) @@ -127,7 +127,7 @@ $(BM_BUILD): $(BM_ALL) $(LIB_BUILD) ############ Test & Example ############ ######################################## TEST_BUILD = $(BIN)/tests -TEST_CFLAGS = -std=c++1z -Wall -Werror -Isrc/ -Itest/ -L./ $(OPT_FLAG) +TEST_CFLAGS = -std=c++1z -Wall -Werror -I$(SRCPARSER)/../../../ -Isrc/ -Itest/ -L./ $(OPT_FLAG) TEST_CPP = $(shell find test/ -name '*.cpp') TEST_ALL = $(shell find test/ -name '*.cpp') $(shell find test/ -name '*.h') EXAMPLE_SRC = $(shell find example/ -name '*.cpp') $(shell find example/ -name '*.h') diff --git a/Data/src/sql-parser/src/SQLParserResult.cpp b/Data/src/sql-parser/src/SQLParserResult.cpp index 9cb0adc7a..c5dad9839 100644 --- a/Data/src/sql-parser/src/SQLParserResult.cpp +++ b/Data/src/sql-parser/src/SQLParserResult.cpp @@ -1,16 +1,30 @@ #include "SQLParserResult.h" #include +#include namespace hsql { -SQLParserResult::SQLParserResult() : isValid_(false), errorMsg_(nullptr) +SQLParserResult::SQLParserResult() : + statements_(new std::vector), + isValid_(false), + errorMsg_(nullptr), + errorLine_(-1), + errorColumn_(-1), + parameters_(new std::vector) { - statements_ = new std::vector; - parameters_ = new std::vector; } -SQLParserResult::SQLParserResult(SQLStatement* stmt) : isValid_(false), errorMsg_(nullptr) { addStatement(stmt); } +SQLParserResult::SQLParserResult(SQLStatement* stmt) : + statements_(new std::vector), + isValid_(false), + errorMsg_(nullptr), + errorLine_(-1), + errorColumn_(-1), + parameters_(new std::vector) +{ + addStatement(stmt); +} // Move constructor. SQLParserResult::SQLParserResult(SQLParserResult&& moved) { *this = std::forward(moved); } @@ -18,22 +32,29 @@ SQLParserResult::SQLParserResult(SQLParserResult&& moved) { *this = std::forward SQLParserResult& SQLParserResult::operator=(SQLParserResult&& moved) { isValid_ = moved.isValid_; errorMsg_ = moved.errorMsg_; - statements_ = std::move(moved.statements_); + statements_ = moved.statements_; + parameters_ = moved.parameters_; - moved.errorMsg_ = nullptr; - moved.reset(); + moved.reset(true); return *this; } SQLParserResult::~SQLParserResult() { reset(); } -void SQLParserResult::addStatement(SQLStatement* stmt) { statements_->push_back(stmt); } +void SQLParserResult::addStatement(SQLStatement* stmt) { + if (!statements_) statements_ = new std::vector; + statements_->push_back(stmt); +} -const SQLStatement* SQLParserResult::getStatement(size_t index) const { return (*statements_)[index]; } +const SQLStatement* SQLParserResult::getStatement(size_t index) const { + return statements_ ? (*statements_)[index] : nullptr; +} -SQLStatement* SQLParserResult::getMutableStatement(size_t index) { return (*statements_)[index]; } +SQLStatement* SQLParserResult::getMutableStatement(size_t index) { + return statements_ ? (*statements_)[index] : nullptr; +} -size_t SQLParserResult::size() const { return statements_->size(); } +size_t SQLParserResult::size() const { return statements_ ? statements_->size() : 0u; } bool SQLParserResult::isValid() const { return isValid_; } @@ -46,42 +67,67 @@ int SQLParserResult::errorColumn() const { return errorColumn_; } void SQLParserResult::setIsValid(bool isValid) { isValid_ = isValid; } void SQLParserResult::setErrorDetails(char* errorMsg, int errorLine, int errorColumn) { + if (errorMsg_) free(errorMsg); errorMsg_ = errorMsg; errorLine_ = errorLine; errorColumn_ = errorColumn; } -const std::vector& SQLParserResult::getStatements() const { return *statements_; } +const std::vector& SQLParserResult::getStatements() const { + if (!statements_) statements_ = new std::vector; + return *statements_; +} std::vector SQLParserResult::releaseStatements() { - std::vector copy = *statements_; - - statements_->clear(); - + std::vector copy; + if (statements_) + { + copy = *statements_; + statements_->clear(); + } return copy; } -void SQLParserResult::reset() { - for (SQLStatement* statement : *statements_) { - delete statement; +void SQLParserResult::reset(bool mv) { + if (statements_) + { + if (!mv) + { + for (SQLStatement* statement : *statements_) { + delete statement; + } + delete statements_; + } + statements_ = nullptr; + } + + if (parameters_) + { + if (!mv) delete parameters_; + parameters_ = nullptr; } - delete statements_; - delete parameters_; isValid_ = false; - free(errorMsg_); - errorMsg_ = nullptr; + if (errorMsg_) + { + if (!mv) free(errorMsg_); + errorMsg_ = nullptr; + } errorLine_ = -1; errorColumn_ = -1; } // Does NOT take ownership. void SQLParserResult::addParameter(Expr* parameter) { + if (!parameters_) parameters_ = new std::vector; parameters_->push_back(parameter); std::sort(parameters_->begin(), parameters_->end(), [](const Expr* a, const Expr* b) { return a->ival < b->ival; }); } -const std::vector& SQLParserResult::parameters() { return *parameters_; } +const std::vector& SQLParserResult::parameters() { + if (!parameters_) parameters_ = new std::vector; + return *parameters_; +} } // namespace hsql diff --git a/Data/src/sql-parser/src/SQLParserResult.h b/Data/src/sql-parser/src/SQLParserResult.h index a7cb65b13..ba1bddb68 100644 --- a/Data/src/sql-parser/src/SQLParserResult.h +++ b/Data/src/sql-parser/src/SQLParserResult.h @@ -63,7 +63,7 @@ class SQLParser_API SQLParserResult { std::vector releaseStatements(); // Deletes all statements and other data within the result. - void reset(); + void reset(bool mv = false); // Does NOT take ownership. void addParameter(Expr* parameter); @@ -72,7 +72,7 @@ class SQLParser_API SQLParserResult { private: // List of statements within the result. - std::vector* statements_; + mutable std::vector* statements_; // Flag indicating the parsing was successful. bool isValid_; diff --git a/Data/src/sql-parser/src/sqlparser_win.h b/Data/src/sql-parser/src/sqlparser_win.h index 5414b93aa..3678add94 100644 --- a/Data/src/sql-parser/src/sqlparser_win.h +++ b/Data/src/sql-parser/src/sqlparser_win.h @@ -12,6 +12,12 @@ #else #define SQLParser_API __declspec(dllimport) #endif +#else + #if defined (__GNUC__) && (__GNUC__ >= 4) + #define SQLParser_API __attribute__ ((visibility ("default"))) + #else + #define SQLParser_API + #endif #endif diff --git a/Data/testsuite/Makefile b/Data/testsuite/Makefile index 868ddf46f..bd7adb02b 100644 --- a/Data/testsuite/Makefile +++ b/Data/testsuite/Makefile @@ -7,17 +7,22 @@ include $(POCO_BASE)/build/rules/global ifeq ($(findstring SunOS,$(POCO_HOST_OSNAME)),SunOS) - POCO_SUN_FORTE = $(findstring SunOS-SunForte, $(POCO_CONFIG)) - POCO_SUN_STUDIO = $(findstring SunOS-SunStudio, $(POCO_CONFIG)) - ifneq (,$or ($(POCO_SUN_FORTE), $(POCO_SUN_STUDIO))) - CXXFLAGS += -erroff=hidevf - endif + POCO_SUN_FORTE = $(findstring SunOS-SunForte, $(POCO_CONFIG)) + POCO_SUN_STUDIO = $(findstring SunOS-SunStudio, $(POCO_CONFIG)) + ifneq (,$or ($(POCO_SUN_FORTE), $(POCO_SUN_STUDIO))) + CXXFLAGS += -erroff=hidevf + endif endif objects = DataTestSuite Driver \ DataTest SessionPoolTest \ Binder Extractor Preparator SessionImpl Connector TestStatementImpl +ifndef POCO_DATA_NO_SQL_PARSER + objects += SQLParserTest + target_includes = $(POCO_BASE)/Data/src +endif + target = testrunner target_version = 1 target_libs = PocoData PocoFoundation CppUnit diff --git a/Data/testsuite/src/DataTest.cpp b/Data/testsuite/src/DataTest.cpp index 65abe389a..a87a38d38 100644 --- a/Data/testsuite/src/DataTest.cpp +++ b/Data/testsuite/src/DataTest.cpp @@ -1437,6 +1437,53 @@ void DataTest::testTranscode() } +void DataTest::testSQLParse() +{ +#ifndef POCO_DATA_NO_SQL_PARSER + + Session sess(SessionFactory::instance().create("test", "cs")); + + assertTrue (sess.getFeature("autoCommit")); + sess.setFeature("autoCommit", false); + assertTrue (!sess.getFeature("autoCommit")); + + Statement stmt = (sess << "SELECT %s%c%s,%d,%u,%f,%s FROM Person WHERE Name LIKE 'Simp%%'", + "'",'a',"'",-1, 1u, 1.5, "42", now); + + assertTrue ("SELECT 'a',-1,1,1.500000,42 FROM Person WHERE Name LIKE 'Simp%'" == stmt.toString()); + assertTrue (stmt.isSelect().value()); + assertTrue (stmt.hasSelect().value()); + assertTrue (!stmt.isUpdate().value()); + assertTrue (!stmt.hasUpdate().value()); + assertTrue (!stmt.isInsert().value()); + assertTrue (!stmt.hasInsert().value()); + assertTrue (!stmt.isDelete().value()); + assertTrue (!stmt.hasDelete().value()); + + Session sess2(SessionFactory::instance().create("test", "cs")); + stmt.reset(sess2); + stmt = (sess << "INSERT INTO Test VALUES ('1', 2, 3.5);" + "SELECT * FROM Test WHERE First = ?;" + "UPDATE Test SET value=1 WHERE First = '1';" + "DELETE FROM Test WHERE First = ?;" + "DROP TABLE table_name;" + "ALTER TABLE mytable DROP COLUMN IF EXISTS mycolumn;" + "PREPARE prep_inst FROM 'INSERT INTO test VALUES (?, ?, ?)';" + "EXECUTE prep_inst(1, 2, 3);"); + stmt.execute(); + assertTrue (!stmt.isSelect().value()); + assertTrue (stmt.hasSelect().value()); + assertTrue (!stmt.isUpdate().value()); + assertTrue (stmt.hasUpdate().value()); + assertTrue (!stmt.isInsert().value()); + assertTrue (stmt.hasInsert().value()); + assertTrue (!stmt.isDelete().value()); + assertTrue (stmt.hasDelete().value()); + +#endif // POCO_DATA_NO_SQL_PARSER +} + + void DataTest::setUp() { } @@ -1469,6 +1516,7 @@ CppUnit::Test* DataTest::suite() CppUnit_addTest(pSuite, DataTest, testDateAndTime); CppUnit_addTest(pSuite, DataTest, testExternalBindingAndExtraction); CppUnit_addTest(pSuite, DataTest, testTranscode); + CppUnit_addTest(pSuite, DataTest, testSQLParse); return pSuite; } diff --git a/Data/testsuite/src/DataTest.h b/Data/testsuite/src/DataTest.h index 55214dd39..8d9825030 100644 --- a/Data/testsuite/src/DataTest.h +++ b/Data/testsuite/src/DataTest.h @@ -45,6 +45,7 @@ public: void testDateAndTime(); void testExternalBindingAndExtraction(); void testTranscode(); + void testSQLParse(); void setUp(); void tearDown(); diff --git a/Data/testsuite/src/DataTestSuite.cpp b/Data/testsuite/src/DataTestSuite.cpp index 9b8bb93ea..9431842c1 100644 --- a/Data/testsuite/src/DataTestSuite.cpp +++ b/Data/testsuite/src/DataTestSuite.cpp @@ -11,9 +11,9 @@ #include "DataTestSuite.h" #include "DataTest.h" #include "SessionPoolTest.h" -#ifdef POCO_DATA_ENABLE_SQL_PARSER +#ifndef POCO_DATA_NO_SQL_PARSER #include "SQLParserTest.h" -#endif // POCO_DATA_ENABLE_SQL_PARSER +#endif // POCO_DATA_NO_SQL_PARSER CppUnit::Test* DataTestSuite::suite() @@ -22,9 +22,9 @@ CppUnit::Test* DataTestSuite::suite() pSuite->addTest(DataTest::suite()); pSuite->addTest(SessionPoolTest::suite()); -#ifdef POCO_DATA_ENABLE_SQL_PARSER +#ifndef POCO_DATA_NO_SQL_PARSER pSuite->addTest(SQLParserTest::suite()); -#endif // POCO_DATA_ENABLE_SQL_PARSER +#endif // POCO_DATA_NO_SQL_PARSER return pSuite; } diff --git a/Data/testsuite/src/SQLParserTest.cpp b/Data/testsuite/src/SQLParserTest.cpp index ef7400588..8914826a8 100644 --- a/Data/testsuite/src/SQLParserTest.cpp +++ b/Data/testsuite/src/SQLParserTest.cpp @@ -11,13 +11,14 @@ #include "SQLParserTest.h" #include "CppUnit/TestCaller.h" #include "CppUnit/TestSuite.h" +#include -#ifdef POCO_DATA_ENABLE_SQL_PARSER +#ifndef POCO_DATA_NO_SQL_PARSER #include "Poco/Data/SQLParser.h" -using namespace Poco::Data; +using namespace Poco::Data::Parser; SQLParserTest::SQLParserTest(const std::string& name): CppUnit::TestCase(name) @@ -35,14 +36,25 @@ void SQLParserTest::testSQLParser() std::string query = "INSERT INTO Test VALUES ('1', 2, 3.5);" "SELECT * FROM Test WHERE First = ?;" "UPDATE Test SET value=1 WHERE First = '1';" - "DELETE FROM Test WHERE First = ?;"; + "DELETE FROM Test WHERE First = ?;" + "DROP TABLE table_name;" + "ALTER TABLE mytable DROP COLUMN IF EXISTS mycolumn;" + "PREPARE prep_inst FROM 'INSERT INTO test VALUES (?, ?, ?)';" + "EXECUTE prep_inst(1, 2, 3);"; SQLParserResult result; SQLParser::parse(query, &result); - int ins = 0, sel = 0, upd = 0, del = 0; + int ins = 0, sel = 0, upd = 0, del = 0, drop = 0, alter = 0, prepare = 0, execute = 0; + if (!result.isValid()) + { + std::ostringstream os; + os << "Given string is not a valid SQL query.\n"; + os << result.errorMsg() << "(L" << result.errorLine() << result.errorColumn() << ")\n"; + fail(os.str()); + } assertTrue(result.isValid()); - assertEqual(4, result.size()); + assertEqual(8, result.size()); for (auto i = 0u; i < result.size(); ++i) { const SQLStatement* stmt = result.getStatement(i); @@ -53,6 +65,10 @@ void SQLParserTest::testSQLParser() case kStmtInsert: ++ins; break; case kStmtUpdate: ++upd; break; case kStmtDelete: ++del; break; + case kStmtDrop: ++drop; break; + case kStmtAlter: ++alter; break; + case kStmtPrepare: ++prepare; break; + case kStmtExecute: ++execute; break; default: break; } } @@ -60,6 +76,13 @@ void SQLParserTest::testSQLParser() assertEqual(1, sel); assertEqual(1, upd); assertEqual(1, del); + assertEqual(1, drop); + assertEqual(1, alter); + assertEqual(1, prepare); + assertEqual(1, execute); + + result.reset(); + SQLParser::parse(query, &result); } @@ -83,4 +106,4 @@ CppUnit::Test* SQLParserTest::suite() } -#endif // POCO_DATA_ENABLE_SQL_PARSER +#endif // POCO_DATA_NO_SQL_PARSER diff --git a/Data/testsuite/src/SQLParserTest.h b/Data/testsuite/src/SQLParserTest.h index 3946bc77a..08cea47c3 100644 --- a/Data/testsuite/src/SQLParserTest.h +++ b/Data/testsuite/src/SQLParserTest.h @@ -15,7 +15,7 @@ #include "Poco/Config.h" -#ifdef POCO_DATA_ENABLE_SQL_PARSER +#ifndef POCO_DATA_NO_SQL_PARSER #include "Poco/Data/Data.h" #include "CppUnit/TestCase.h" @@ -38,7 +38,7 @@ private: }; -#endif // POCO_DATA_ENABLE_SQL_PARSER +#endif // POCO_DATA_NO_SQL_PARSER #endif // SQLParserTest_INCLUDED diff --git a/Data/testsuite/src/SessionImpl.cpp b/Data/testsuite/src/SessionImpl.cpp index 198f9960d..dc8a0e815 100644 --- a/Data/testsuite/src/SessionImpl.cpp +++ b/Data/testsuite/src/SessionImpl.cpp @@ -21,13 +21,15 @@ namespace Test { SessionImpl::SessionImpl(const std::string& init, std::size_t timeout): Poco::Data::AbstractSessionImpl(init, timeout), _f(false), - _connected(true) + _connected(true), + _autoCommit(true) { addFeature("f1", &SessionImpl::setF, &SessionImpl::getF); addFeature("f2", 0, &SessionImpl::getF); addFeature("f3", &SessionImpl::setF, 0); addFeature("throwOnHasNext", &SessionImpl::setThrowOnHasNext, &SessionImpl::getThrowOnHasNext); addFeature("connected", &SessionImpl::setConnected, &SessionImpl::getConnected); + addFeature("autoCommit", &SessionImpl::setAutoCommit, &SessionImpl::getAutoCommit); addProperty("p1", &SessionImpl::setP, &SessionImpl::getP); addProperty("p2", 0, &SessionImpl::getP); addProperty("p3", &SessionImpl::setP, &SessionImpl::getP); @@ -146,6 +148,18 @@ void SessionImpl::setConnected(const std::string&, bool value) } +bool SessionImpl::getAutoCommit(const std::string& name) const +{ + return _autoCommit; +} + + +void SessionImpl::setAutoCommit(const std::string&, bool value) +{ + _autoCommit = value; +} + + void SessionImpl::setF(const std::string&, bool value) { _f = value; diff --git a/Data/testsuite/src/SessionImpl.h b/Data/testsuite/src/SessionImpl.h index a0d695533..6223e6df2 100644 --- a/Data/testsuite/src/SessionImpl.h +++ b/Data/testsuite/src/SessionImpl.h @@ -96,6 +96,10 @@ public: /// This is normally done by implementation /// when a database connection loss is detected. + void setAutoCommit(const std::string& name, bool value); + bool getAutoCommit(const std::string& name) const; + /// Sets/gets the autoCommit property. + void setF(const std::string& name, bool value); bool getF(const std::string& name) const; void setThrowOnHasNext(const std::string& name, bool value); @@ -108,6 +112,7 @@ private: bool _throwOnHasNext = false; Poco::Any _p; bool _connected; + bool _autoCommit = true; std::string _connectionString; }; diff --git a/Foundation/include/Poco/Config.h b/Foundation/include/Poco/Config.h index 3a033ec0b..f64628659 100644 --- a/Foundation/include/Poco/Config.h +++ b/Foundation/include/Poco/Config.h @@ -220,8 +220,11 @@ #define POCO_HAVE_CPP17_COMPILER (__cplusplus >= 201703L) +// Uncomment to disable usage of SQLParser +// #define POCO_DATA_NO_SQL_PARSER + // Enable usage of SQL parser in Poco::Data -#ifndef POCO_DATA_ENABLE_SQL_PARSER +#if !defined(POCO_DATA_NO_SQL_PARSER) #ifdef POCO_HAVE_CPP17_COMPILER #define POCO_DATA_ENABLE_SQL_PARSER #endif diff --git a/Makefile b/Makefile index c86f3a531..8bfd7b191 100644 --- a/Makefile +++ b/Makefile @@ -6,6 +6,7 @@ sinclude config.make sinclude config.build +POCO_CONFIG_INCLUDED = 1 ifndef POCO_BASE $(warning WARNING: POCO_BASE is not defined. Assuming current directory.) diff --git a/build/config/Linux b/build/config/Linux index 83535dd42..38e6f7a38 100644 --- a/build/config/Linux +++ b/build/config/Linux @@ -45,7 +45,7 @@ SHAREDLIBLINKEXT = .so CFLAGS = $(SANITIZEFLAGS) -std=c11 CFLAGS32 = CFLAGS64 = -CXXFLAGS = $(SANITIZEFLAGS) -std=c++14 -Wall -Wno-sign-compare +CXXFLAGS = $(SANITIZEFLAGS) -std=c++17 -Wall -Wno-sign-compare CXXFLAGS32 = CXXFLAGS64 = LINKFLAGS = $(SANITIZEFLAGS) diff --git a/build/rules/compile b/build/rules/compile index d5a5be83b..5f2b41261 100644 --- a/build/rules/compile +++ b/build/rules/compile @@ -105,6 +105,85 @@ $(OBJPATH_RELEASE_SHARED)/%.o: $(GENDIR)/%.c $(DEPPATH)/%.d $(POCO_BASE)/build/c @echo "** Compiling" $< "(release, shared)" $(CC) $(INCLUDE) $(CFLAGS) $(RELEASEOPT_CC) $(SHAREDOPT_CC) -c $< -o $@ $(POCO_BUILD_STDERR) +ifndef POCO_DATA_NO_SQL_PARSER + +# SQL parser sources + +SQLDIR = src/sql-parser/src +SQLPARSERDIR = $(SQLDIR)/parser +SQLSQLDIR = $(SQLDIR)/sql +SQLUTILDIR = $(SQLDIR)/util + +# SQLParser +$(OBJPATH_DEBUG_STATIC)/%.o: $(SQLDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) + @echo "** Compiling" $< "(debug, static)" + $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(STATICOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) + +$(OBJPATH_RELEASE_STATIC)/%.o: $(SQLDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) + @echo "** Compiling" $< "(release, static)" + $(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(STATICOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) + +$(OBJPATH_DEBUG_SHARED)/%.o: $(SQLDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) + @echo "** Compiling" $< "(debug, shared)" + $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) + +$(OBJPATH_RELEASE_SHARED)/%.o: $(SQLDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) + @echo "** Compiling" $< "(release, shared)" + @echo "** Compiling" $@ "(release, shared)" + $(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) + +# parser +$(OBJPATH_DEBUG_STATIC)/%.o: $(SQLPARSERDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) + @echo "** Compiling" $< "(debug, static)" + $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(STATICOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) + +$(OBJPATH_RELEASE_STATIC)/%.o: $(SQLPARSERDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) + @echo "** Compiling" $< "(release, static)" + $(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(STATICOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) + +$(OBJPATH_DEBUG_SHARED)/%.o: $(SQLPARSERDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) + @echo "** Compiling" $< "(debug, shared)" + $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) + +$(OBJPATH_RELEASE_SHARED)/%.o: $(SQLPARSERDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) + @echo "** Compiling" $< "(release, shared)" + $(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) + +# sql +$(OBJPATH_DEBUG_STATIC)/%.o: $(SQLSQLDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) + @echo "** Compiling" $< "(debug, static)" + $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(STATICOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) + +$(OBJPATH_RELEASE_STATIC)/%.o: $(SQLSQLDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) + @echo "** Compiling" $< "(release, static)" + $(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(STATICOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) + +$(OBJPATH_DEBUG_SHARED)/%.o: $(SQLSQLDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) + @echo "** Compiling" $< "(debug, shared)" + $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) + +$(OBJPATH_RELEASE_SHARED)/%.o: $(SQLSQLDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) + @echo "** Compiling" $< "(release, shared)" + $(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) + +# util +$(OBJPATH_DEBUG_STATIC)/%.o: $(SQLUTILDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) + @echo "** Compiling" $< "(debug, static)" + $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(STATICOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) + +$(OBJPATH_RELEASE_STATIC)/%.o: $(SQLUTILDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) + @echo "** Compiling" $< "(release, static)" + $(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(STATICOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) + +$(OBJPATH_DEBUG_SHARED)/%.o: $(SQLUTILDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) + @echo "** Compiling" $< "(debug, shared)" + $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) + +$(OBJPATH_RELEASE_SHARED)/%.o: $(SQLUTILDIR)/%.cpp $(DEPPATH)/%.d $(POCO_BASE)/build/config/$(POCO_CONFIG) + @echo "** Compiling" $< "(release, shared)" + $(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@ $(POCO_BUILD_STDERR) + +endif # !POCO_DATA_NO_SQL_PARSER # # Rules for creating dependency information @@ -150,4 +229,46 @@ ifneq ($(MAKECMDGOALS),distclean) endif endif +ifndef POCO_DATA_NO_SQL_PARSER + +# Data SQL parser sources rules + +$(DEPPATH)/%.d: $(SQLDIR)/%.cpp +ifneq ($(MAKECMDGOALS),clean) +ifneq ($(MAKECMDGOALS),distclean) + @echo "** Creating dependency info for" $^ + $(MKDIR) $(DEPPATH) + $(DEP) $(SQLDIR)/$(patsubst %.d,%.cpp,$(notdir $@)) $@ $(OBJPATH_DEBUG_STATIC) $(OBJPATH_RELEASE_STATIC) $(OBJPATH_DEBUG_SHARED) $(OBJPATH_RELEASE_SHARED) $(INCLUDE) $(CXXFLAGS); +endif +endif + +$(DEPPATH)/%.d: $(SQLDIR)/parser/%.cpp +ifneq ($(MAKECMDGOALS),clean) +ifneq ($(MAKECMDGOALS),distclean) + @echo "** Creating dependency info for" $^ + $(MKDIR) $(DEPPATH) + $(DEP) $(SQLDIR)/parser/$(patsubst %.d,%.cpp,$(notdir $@)) $@ $(OBJPATH_DEBUG_STATIC) $(OBJPATH_RELEASE_STATIC) $(OBJPATH_DEBUG_SHARED) $(OBJPATH_RELEASE_SHARED) $(INCLUDE) $(CXXFLAGS) +endif +endif + +$(DEPPATH)/%.d: $(SQLDIR)/sql/%.cpp +ifneq ($(MAKECMDGOALS),clean) +ifneq ($(MAKECMDGOALS),distclean) + @echo "** Creating dependency info for" $^ + $(MKDIR) $(DEPPATH) + $(DEP) $(SQLDIR)/sql/$(patsubst %.d,%.cpp,$(notdir $@)) $@ $(OBJPATH_DEBUG_STATIC) $(OBJPATH_RELEASE_STATIC) $(OBJPATH_DEBUG_SHARED) $(OBJPATH_RELEASE_SHARED) $(INCLUDE) $(CXXFLAGS) +endif +endif + +$(DEPPATH)/%.d: $(SQLDIR)/util/%.cpp +ifneq ($(MAKECMDGOALS),clean) +ifneq ($(MAKECMDGOALS),distclean) + @echo "** Creating dependency info for" $^ + $(MKDIR) $(DEPPATH) + $(DEP) $(SQLDIR)/util/$(patsubst %.d,%.cpp,$(notdir $@)) $@ $(OBJPATH_DEBUG_STATIC) $(OBJPATH_RELEASE_STATIC) $(OBJPATH_DEBUG_SHARED) $(OBJPATH_RELEASE_SHARED) $(INCLUDE) $(CXXFLAGS) +endif +endif + +endif # !POCO_DATA_NO_SQL_PARSER + depend: $(addprefix $(DEPPATH)/,$(addsuffix .d,$(objects))) diff --git a/build/rules/global b/build/rules/global index ed178814d..4adb51a1c 100644 --- a/build/rules/global +++ b/build/rules/global @@ -29,6 +29,7 @@ endif # Include some optional make configuration # sinclude $(POCO_BASE)/config.build +sinclude $(POCO_BASE)/config.make # # Check for PROJECT_BASE diff --git a/configure b/configure index 7d07f8213..b9d020d56 100755 --- a/configure +++ b/configure @@ -21,7 +21,7 @@ Options: Use the given build configuration. Available configurations are: -`ls -C $base/build/config/` +$(ls -C "$base"/build/config/) --prefix= Use the given install directory for make install. @@ -78,6 +78,11 @@ Options: Compile with -DPOCO_NO_SOO. Disables small object optimization. + --no-sqlparser + Compile with POCO_DATA_NO_SQL_PARSER + SQLParser is not enabled by default for c++14 and below, + so this option only has meaning for c++17 and above. + --sqlite-fts= Compile with -DPOCO_DATA_SQLITE_FTS. Compile SQLite with Full Text Search support. @@ -148,11 +153,11 @@ ENDHELP } # save cwd -build=`pwd` +build=$(pwd) # get directory where we are located -cd `dirname $0` -base=`pwd` -cd $build +cd "$(dirname "$0")" || exit +base=$(pwd) +cd "$build" || exit tests=1 samples=1 @@ -166,56 +171,57 @@ odbcinclude="" unbundled="" static="" shared="" -omitMinimal="Crypto NetSSL_OpenSSL Zip Data Data/SQLite Data/ODBC Data/MySQL MongoDB PDF CppParser PageCompiler" -omitTypical="Data/ODBC Data/MySQL MongoDB PDF CppParser" +nosqlparser= +omitMinimal="Crypto NetSSL_OpenSSL Zip Data Data/SQLite Data/ODBC Data/MySQL Data/PostgreSQL MongoDB Redis PDF CppParser PageCompiler" +omitTypical="Data/ODBC Data/MySQL Data/PostgreSQL MongoDB Redis PDF CppParser" omit=$omitTypical # parse arguments while [ $# -ge 1 ]; do case "$1" in --config=*) - config="`echo ${1} | awk '{print substr($0,10)}'`" ;; + config="$(echo "${1}" | awk '{print substr($0,10)}')" ;; --prefix=*) - prefix="`echo ${1} | awk '{print substr($0,10)}'`" ;; + prefix="$(echo "${1}" | awk '{print substr($0,10)}')" ;; --no-prefix) noprefix=1 ;; --stdcxx-base=*) - stdcxx_base="`echo ${1} | awk '{print substr($0,15)}'`" ;; + stdcxx_base="$(echo "${1}" | awk '{print substr($0,15)}')" ;; --omit=*) - omit="`echo ${1} | awk '{print substr($0,8)}' | tr ',;' ' '`" ;; + omit="$(echo "${1}" | awk '{print substr($0,8)}' | tr ',;' ' ')" ;; --include-path=*) - includepath="`echo ${1} | awk '{print substr($0,16)}' | tr ',;' ' '`" ;; + includepath="$(echo "${1}" | awk '{print substr($0,16)}' | tr ',;' ' ')" ;; --library-path=*) - librarypath="`echo ${1} | awk '{print substr($0,16)}' | tr ',;' ' '`" ;; + librarypath="$(echo "${1}" | awk '{print substr($0,16)}' | tr ',;' ' ')" ;; --odbc-lib=*) - odbclib="`echo ${1} | awk '{print substr($0,12)}'`" ;; + odbclib="$(echo "${1}" | awk '{print substr($0,12)}')" ;; --odbc-include=*) - odbcinclude="`echo ${1} | awk '{print substr($0,16)}'`" ;; + odbcinclude="$(echo "${1}" | awk '{print substr($0,16)}')" ;; --mysql-lib=*) - mysqllib="`echo ${1} | awk '{print substr($0,13)}'`" ;; + mysqllib="$(echo "${1}" | awk '{print substr($0,13)}')" ;; --mysql-include=*) - mysqlinclude="`echo ${1} | awk '{print substr($0,17)}'`" ;; + mysqlinclude="$(echo "${1}" | awk '{print substr($0,17)}')" ;; --pgsql-lib=*) - pgsqllib="`echo ${1} | awk '{print substr($0,13)}'`" ;; + pgsqllib="$(echo "${1}" | awk '{print substr($0,13)}')" ;; --pgsql-include=*) - pgsqlinclude="`echo ${1} | awk '{print substr($0,17)}'`" ;; + pgsqlinclude="$(echo "${1}" | awk '{print substr($0,17)}')" ;; --cflags=*) - flags="$flags `echo ${1} | awk '{print substr($0,10)}'`" ;; + flags="$flags $(echo "${1}" | awk '{print substr($0,10)}')" ;; --ldflags=*) - ldflags="$ldflags `echo ${1} | awk '{print substr($0,11)}'`" ;; + ldflags="$ldflags $(echo "${1}" | awk '{print substr($0,11)}')" ;; --no-samples) samples="" ;; @@ -241,11 +247,16 @@ while [ $# -ge 1 ]; do --no-soo) flags="$flags -DPOCO_NO_SOO" ;; + --no-sqlparser) + flags="$flags -DPOCO_DATA_NO_SQL_PARSER" + nosqlparser=1 + ;; + --sqlite-thread-safe=*) - flags="$flags -DSQLITE_THREADSAFE=`echo ${1} | awk '{print substr($0,22)}'`" ;; + flags="$flags -DSQLITE_THREADSAFE=$(echo "${1}" | awk '{print substr($0,22)}')" ;; --sqlite-fts) - flags="$flags -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS" ;; + flags="$flags -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_FTS3_PARENTHESIS" ;; --poquito) flags="$flags -DPOCO_NO_FILECHANNEL -DPOCO_NO_SPLITTERCHANNEL -DPOCO_NO_SYSLOGCHANNEL -DPOCO_UTIL_NO_INIFILECONFIGURATION -DPOCO_UTIL_NO_JSONCONFIGURATION -DPOCO_UTIL_NO_XMLCONFIGURATION" ;; @@ -256,7 +267,7 @@ while [ $# -ge 1 ]; do ;; --minimal) - omit=$omitMinimal ;; + omit=$omitMinimal ;; --typical) omit=$omitTypical ;; @@ -286,7 +297,7 @@ done # autodetect build environment # ...special cases for CYGWIN or MinGW if [ "$config" = "" ] ; then - config=`uname` + config=$(uname) case "$config" in CYGWIN*) config=CYGWIN ;; @@ -299,7 +310,7 @@ if [ ! -f "$base/build/config/$config" ] ; then echo "Unknown configuration: $config" echo "Please use the --config option to specify another build configuration" echo "The following configurations are available:" - ls $base/build/config + ls "$base"/build/config exit 1 fi @@ -310,16 +321,16 @@ if [ -z "$prefix" ] ; then fi # check for patches -if [ -d $base/patches/$config ] ; then +if [ -d "$base"/patches/"$config" ] ; then echo "NOTE: There are patches for your configuration available. Please apply them before compiling." fi # copy Makefile to build dir if [ "$base" != "$build" ] ; then - cp $base/Makefile $build + cp "$base"/Makefile "$build" fi -if [ -n "$static" -a -n "$shared" ] ; then +if [ -n "$static" ] && [ -n "$shared" ] ; then linkmode=BOTH elif [ -n "$static" ] ; then linkmode=STATIC @@ -330,51 +341,57 @@ else fi # create config.make -echo '# config.make generated by configure script' >$build/config.make -echo "POCO_CONFIG = $config" >>$build/config.make -echo "POCO_BASE = $base" >>$build/config.make -echo "POCO_BUILD = $build" >>$build/config.make -echo "POCO_FLAGS = $flags" >>$build/config.make -echo "POCO_LDFLAGS = $ldflags" >>$build/config.make +echo '# config.make generated by configure script' > "$build"/config.make +{ + echo "POCO_CONFIG = $config" + echo "POCO_BASE = $base" + echo "POCO_BUILD = $build" + echo "POCO_FLAGS = $flags" + echo "POCO_LDFLAGS = $ldflags" +} >> "$build"/config.make + if [ -n "$prefix" ] ; then - echo "POCO_PREFIX = $prefix" >>$build/config.make + echo "POCO_PREFIX = $prefix" >>"$build"/config.make fi -echo "OMIT = $omit" >>$build/config.make +echo "OMIT = $omit" >>"$build"/config.make if [ -n "$stdcxx_base" ] ; then - echo "STDCXX_BASE = $stdcxx_base" >>$build/config.make + echo "STDCXX_BASE = $stdcxx_base" >>"$build"/config.make fi if [ -n "$includepath" ] ; then - echo "POCO_ADD_INCLUDE = $includepath" >>$build/config.make + echo "POCO_ADD_INCLUDE = $includepath" >>"$build"/config.make fi if [ -n "$librarypath" ] ; then - echo "POCO_ADD_LIBRARY = $librarypath" >>$build/config.make + echo "POCO_ADD_LIBRARY = $librarypath" >>"$build"/config.make fi if [ -n "$odbclib" ] ; then - echo "POCO_ODBC_LIB = $odbclib" >>$build/config.make + echo "POCO_ODBC_LIB = $odbclib" >>"$build"/config.make fi if [ -n "$odbcinclude" ] ; then - echo "POCO_ODBC_INCLUDE = $odbcinclude" >>$build/config.make + echo "POCO_ODBC_INCLUDE = $odbcinclude" >>"$build"/config.make fi if [ -n "$mysqllib" ] ; then - echo "POCO_MYSQL_LIB = $mysqllib" >>$build/config.make + echo "POCO_MYSQL_LIB = $mysqllib" >>"$build"/config.make fi if [ -n "$mysqlinclude" ] ; then - echo "POCO_MYSQL_INCLUDE = $mysqlinclude" >>$build/config.make + echo "POCO_MYSQL_INCLUDE = $mysqlinclude" >>"$build"/config.make fi if [ -n "$pgsqllib" ] ; then - echo "POCO_PGSQL_LIB = $pgsqllib" >>$build/config.make + echo "POCO_PGSQL_LIB = $pgsqllib" >>"$build"/config.make fi if [ -n "$pgsqlinclude" ] ; then - echo "POCO_PGSQL_INCLUDE = $pgsqlinclude" >>$build/config.make + echo "POCO_PGSQL_INCLUDE = $pgsqlinclude" >>"$build"/config.make fi if [ -n "$unbundled" ] ; then - echo "POCO_UNBUNDLED = 1" >>$build/config.make + echo "POCO_UNBUNDLED = 1" >>"$build"/config.make fi if [ -n "$linkmode" ] ; then - echo "LINKMODE = $linkmode" >>$build/config.make + echo "LINKMODE = $linkmode" >>"$build"/config.make +fi +if [ -n "$nosqlparser" ] ; then + echo "POCO_DATA_NO_SQL_PARSER = $nosqlparser" >>"$build"/config.make fi -cat <<__EOF__ >>$build/config.make +cat <<__EOF__ >>"$build"/config.make export POCO_CONFIG export POCO_BASE export POCO_BUILD @@ -383,47 +400,57 @@ export POCO_LDFLAGS __EOF__ if [ -n "$prefix" ] ; then - echo "export POCO_PREFIX" >>$build/config.make + echo "export POCO_PREFIX" >>"$build"/config.make fi if [ -n "$stdcxx_base" ] ; then - echo "export STDCXX_BASE" >>$build/config.make + echo "export STDCXX_BASE" >>"$build"/config.make fi if [ -n "$includepath" ] ; then - echo "export POCO_ADD_INCLUDE" >>$build/config.make + echo "export POCO_ADD_INCLUDE" >>"$build"/config.make fi if [ -n "$librarypath" ] ; then - echo "export POCO_ADD_LIBRARY" >>$build/config.make + echo "export POCO_ADD_LIBRARY" >>"$build"/config.make fi if [ -n "$odbclib" ] ; then - echo "export POCO_ODBC_LIB" >>$build/config.make + echo "export POCO_ODBC_LIB" >>"$build"/config.make fi if [ -n "$odbcinclude" ] ; then - echo "export POCO_ODBC_INCLUDE" >>$build/config.make + echo "export POCO_ODBC_INCLUDE" >>"$build"/config.make fi if [ -n "$mysqllib" ] ; then - echo "export POCO_MYSQL_LIB" >>$build/config.make + echo "export POCO_MYSQL_LIB" >>"$build"/config.make fi if [ -n "$mysqlinclude" ] ; then - echo "export POCO_MYSQL_INCLUDE" >>$build/config.make + echo "export POCO_MYSQL_INCLUDE" >>"$build"/config.make fi if [ -n "$pgsqllib" ] ; then - echo "export POCO_PGSQL_LIB" >>$build/config.make + echo "export POCO_PGSQL_LIB" >>"$build"/config.make fi if [ -n "$pgsqlinclude" ] ; then - echo "export POCO_PGSQL_INCLUDE" >>$build/config.make + echo "export POCO_PGSQL_INCLUDE" >>"$build"/config.make fi if [ -n "$unbundled" ] ; then - echo "export POCO_UNBUNDLED" >>$build/config.make + echo "export POCO_UNBUNDLED" >>"$build"/config.make fi if [ -n "$linkmode" ] ; then - echo "export LINKMODE" >>$build/config.make + echo "export LINKMODE" >>"$build"/config.make +fi +if [ -n "$nosqlparser" ] ; then + echo "export POCO_DATA_NO_SQL_PARSER" >>"$build"/config.make fi # create config.build -echo '# config.build generated by configure script' >$build/config.build -cat <<__EOF__ >>$build/config.build +echo '# config.build generated by configure script' >"$build"/config.build +cat <<__EOF__ >>"$build"/config.build TESTS = $tests SAMPLES = $samples __EOF__ echo "Configured for $config" +echo "======================" +echo +cat "$build"/config.make +echo +cat "$build"/config.build +echo +echo "======================" diff --git a/runLibTests.sh b/runLibTests.sh new file mode 100755 index 000000000..004dd35cb --- /dev/null +++ b/runLibTests.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# +# Script to rebuild a library and dependencies +# (with or without a sanitizer) and run the tests. +# Currently works only for top-level libs +# dependent on Foundation only. +# +# Usage: ./runLibTests.sh library [address | undefined | thread ] +# + +library=$1 +if [ -z "${library}" ]; then + echo "Library not specified" + echo "Usage: $0 library [address | undefined | thread ]" + exit 1 +fi + +self="${BASH_SOURCE[0]}" + +if [ -d "$self" ] ; then + basedir="$(cd "$self" || exit; pwd -P)" +else + basedir="$(cd "$(dirname "$self")" || exit; pwd -P)" +fi + +# shellcheck disable=SC1091 +. "$basedir"/poco_env.bash + +flag=$2 + +make distclean -C CppUnit +make distclean -C Foundation +make distclean -C "$library" +make distclean -C "$library"/testsuite + +if [ -n "${flag}" ]; then + make -s -j4 -C "$POCO_BASE"/CppUnit SANITIZEFLAGS+=-fsanitize="$flag" + make -s -j4 -C "$POCO_BASE"/Foundation SANITIZEFLAGS+=-fsanitize="$flag" + make -s -j4 -C "$POCO_BASE"/"$library" SANITIZEFLAGS+=-fsanitize="$flag" + make -s -j4 -C "$POCO_BASE"/"$library"/testsuite SANITIZEFLAGS+=-fsanitize="$flag" +else + make -s -j4 -C "$POCO_BASE"/CppUnit + make -s -j4 -C "$POCO_BASE"/Foundation + make -s -j4 -C "$POCO_BASE"/"$library" + make -s -j4 -C "$POCO_BASE"/"$library"/testsuite +fi +"$library"/testsuite/bin/"$OSNAME"/"$OSARCH"/testrunner -all +"$library"/testsuite/bin/"$OSNAME"/"$OSARCH"/testrunnerd -all From 8de003359110684bf0eb53e7e077f8f9a26f773a Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Wed, 1 Nov 2023 11:23:27 +0100 Subject: [PATCH 157/395] fix(dev): prevent set environment vars accumulation over multiple runs --- poco_env.bash | 72 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 70 insertions(+), 2 deletions(-) diff --git a/poco_env.bash b/poco_env.bash index 756438e6f..2f8d63a72 100644 --- a/poco_env.bash +++ b/poco_env.bash @@ -23,8 +23,72 @@ OSARCH="${OSARCH:=$(uname -m)}" export OSARCH POCO_BASE="$basedir" export POCO_BASE -PATH=$POCO_BASE/lib/$OSNAME/$OSARCH:$POCO_BASE:$PATH -export PATH + +POCO_LIB_PATH=$POCO_BASE/lib/$OSNAME/$OSARCH +POCO_BIN_PATH=$POCO_BASE/Foundation/testsuite/bin/$OSNAME/$OSARCH +POCO_PATHS=$POCO_BASE:$POCO_LIB_PATH:$POCO_BIN_PATH +if [[ "$PATH" != *"$POCO_PATHS"* ]]; then + PATH=$POCO_PATHS:$PATH + export PATH +fi + +explibpath= +expbinpath= +exppocopath= +function setPath { +# adds POCO_PATHS to system PATH only if they are not there already + IFS=':' read -ra PATHDIR <<< "$1" + for i in "${PATHDIR[@]}"; do + if [[ "$POCO_LIB_PATH" == "$i" ]]; then + explibpath+="$i" + elif [[ "$POCO_BIN_PATH" == "$i" ]]; then + expbinpath+="$i" + elif [[ "$POCO_BASE" == "$i" ]]; then + exppocopath+="$i" + fi + done +} + +setPath "$PATH" + +if [[ -z "$exppocopath" ]]; then + export PATH="$POCO_BASE:$PATH" +fi + +if [[ -z "$explibpath" ]]; then + export PATH="$POCO_LIB_PATH:$PATH" +fi + +if [[ -z "$expbinpath" ]]; then + export PATH="$POCO_BIN_PATH:$PATH" +fi + +explibpath= +function setLibPath { +# adds POCO_LIB_PATH to (DY)LD_LIBRARY_PATH only if it is not there already + IFS=':' read -ra LIBDIR <<< "$1" + for i in "${LIBDIR[@]}"; do + if [[ "$POCO_LIB_PATH" == "$i" ]]; then + explibpath="$1" + break + fi + done +} + +case "${OSNAME}" in + Linux*) + setLibPath "$LD_LIBRARY_PATH" + if [[ -z "$explibpath" ]]; then + export LD_LIBRARY_PATH="$POCO_LIB_PATH:$DYLD_LIBRARY_PATH" + fi + ;; + Darwin*) + setLibPath "$DYLD_LIBRARY_PATH" + if [[ -z "$explibpath" ]]; then + export DYLD_LIBRARY_PATH="$POCO_LIB_PATH:$DYLD_LIBRARY_PATH" + fi + ;; +esac # uncomment for sanitizer builds #LSAN_OPTIONS=verbosity=1:log_threads=1 @@ -34,3 +98,7 @@ echo "\$OSNAME = $OSNAME" echo "\$OSARCH = $OSARCH" echo "\$POCO_BASE = $POCO_BASE" echo "\$PATH = $PATH" +case "${OSNAME}" in + Linux*) echo "\$LD_LIBRARY_PATH = $LD_LIBRARY_PATH";; + Darwin*) echo "\$DYLD_LIBRARY_PATH = $DYLD_LIBRARY_PATH";; +esac From b1e7b9ff3bb1761d38659cba03b86fe247f3b5c7 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Wed, 1 Nov 2023 11:26:29 +0100 Subject: [PATCH 158/395] fix(Data::SQLChannel): remove SQLChannel::close() parameter (hides virtual from parent) #4230 --- Data/include/Poco/Data/SQLChannel.h | 2 +- Data/src/SQLChannel.cpp | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Data/include/Poco/Data/SQLChannel.h b/Data/include/Poco/Data/SQLChannel.h index 4c0f4183a..cb1c8e454 100644 --- a/Data/include/Poco/Data/SQLChannel.h +++ b/Data/include/Poco/Data/SQLChannel.h @@ -106,7 +106,7 @@ public: /// Opens the SQLChannel. /// Returns true if succesful. - void close(int ms = 0); + void close(); /// Closes the SQLChannel. void run(); diff --git a/Data/src/SQLChannel.cpp b/Data/src/SQLChannel.cpp index 0b46562ab..e7b7ffbc6 100644 --- a/Data/src/SQLChannel.cpp +++ b/Data/src/SQLChannel.cpp @@ -110,7 +110,7 @@ SQLChannel::~SQLChannel() try { stop(); - close(_timeout); + close(); wait(); if (_pFileChannel) _pFileChannel->close(); @@ -170,9 +170,9 @@ void SQLChannel::open() } -void SQLChannel::close(int ms) +void SQLChannel::close() { - wait(ms); + wait(_timeout); _pSession = nullptr; } @@ -237,7 +237,7 @@ void SQLChannel::run() { if (_reconnect) { - close(_timeout); + close(); open(); _reconnect = _pSession.isNull(); if (_reconnect && sleepTime < 12800) @@ -591,7 +591,7 @@ size_t SQLChannel::execSQL() _logger.error(ex.displayText()); if (!_file.empty()) n = logTofile(_pFileChannel, _file); - close(_timeout); + close(); _reconnect = true; } catch (std::exception& ex) @@ -599,7 +599,7 @@ size_t SQLChannel::execSQL() _logger.error(ex.what()); if (!_file.empty()) n = logTofile(_pFileChannel, _file); - close(_timeout); + close(); _reconnect = true; } } From dd514d599fe4af7e333d1c8f10b124201b969889 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Wed, 1 Nov 2023 11:53:15 +0100 Subject: [PATCH 159/395] fix(build): add missing include path --- ActiveRecord/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ActiveRecord/Makefile b/ActiveRecord/Makefile index 3ba7de777..80902c360 100644 --- a/ActiveRecord/Makefile +++ b/ActiveRecord/Makefile @@ -8,6 +8,10 @@ include $(POCO_BASE)/build/rules/global objects = Context ActiveRecord IDTraits StatementPlaceholderProvider +ifndef POCO_DATA_NO_SQL_PARSER + target_includes = $(POCO_BASE)/Data/src +endif + target = PocoActiveRecord target_version = 1 target_libs = PocoData PocoFoundation From 3d9bcd9553378ceb85ea62885ba4d704fea7e66a Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Wed, 1 Nov 2023 12:11:16 +0100 Subject: [PATCH 160/395] fix(build): add missing include path --- ActiveRecord/testsuite/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ActiveRecord/testsuite/Makefile b/ActiveRecord/testsuite/Makefile index 45073e7a8..9a1f40d01 100644 --- a/ActiveRecord/testsuite/Makefile +++ b/ActiveRecord/testsuite/Makefile @@ -9,6 +9,10 @@ include $(POCO_BASE)/build/rules/global objects = ActiveRecordTestSuite ActiveRecordTest Driver \ Employee Role +ifndef POCO_DATA_NO_SQL_PARSER + target_includes = $(POCO_BASE)/Data/src +endif + target = testrunner target_version = 1 target_libs = PocoActiveRecord PocoDataSQLite PocoData PocoFoundation CppUnit From 757fc321991cfaf048748d5891ff7cb4a963b07d Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Wed, 1 Nov 2023 16:29:49 +0100 Subject: [PATCH 161/395] fix(build): add missing include path --- Data/include/Poco/Data/TypeHandler.h | 4 ++-- Data/samples/Binding/Makefile | 4 ++++ Data/samples/RecordSet/Makefile | 4 ++++ Data/samples/RowFormatter/Makefile | 4 ++++ Data/samples/Tuple/Makefile | 4 ++++ Data/samples/TypeHandler/Makefile | 4 ++++ Data/samples/WebNotifier/Makefile | 4 ++++ Foundation/include/Poco/ObjectPool.h | 4 ++-- 8 files changed, 28 insertions(+), 4 deletions(-) diff --git a/Data/include/Poco/Data/TypeHandler.h b/Data/include/Poco/Data/TypeHandler.h index bfa42985d..7616bdcff 100644 --- a/Data/include/Poco/Data/TypeHandler.h +++ b/Data/include/Poco/Data/TypeHandler.h @@ -28,7 +28,7 @@ #include "Poco/SharedPtr.h" #include -#if defined(POCO_COMPILER_GCC) +#if defined(POCO_COMPILER_GCC) && (__GNUC__ >= 12) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wuse-after-free" #endif @@ -5754,7 +5754,7 @@ private: } } // namespace Poco::Data -#if defined(POCO_COMPILER_GCC) +#if defined(POCO_COMPILER_GCC) && (__GNUC__ >= 12) #pragma GCC diagnostic pop #endif diff --git a/Data/samples/Binding/Makefile b/Data/samples/Binding/Makefile index c1c73f494..6558aae56 100644 --- a/Data/samples/Binding/Makefile +++ b/Data/samples/Binding/Makefile @@ -8,6 +8,10 @@ include $(POCO_BASE)/build/rules/global objects = Binding +ifndef POCO_DATA_NO_SQL_PARSER + target_includes = $(POCO_BASE)/Data/src +endif + target = Binding target_version = 1 target_libs = PocoDataSQLite PocoData PocoFoundation diff --git a/Data/samples/RecordSet/Makefile b/Data/samples/RecordSet/Makefile index 2f6a7b1b5..a42d62b38 100644 --- a/Data/samples/RecordSet/Makefile +++ b/Data/samples/RecordSet/Makefile @@ -8,6 +8,10 @@ include $(POCO_BASE)/build/rules/global objects = RecordSet +ifndef POCO_DATA_NO_SQL_PARSER + target_includes = $(POCO_BASE)/Data/src +endif + target = RecordSet target_version = 1 target_libs = PocoDataSQLite PocoData PocoFoundation diff --git a/Data/samples/RowFormatter/Makefile b/Data/samples/RowFormatter/Makefile index b225bb0b7..34509f813 100644 --- a/Data/samples/RowFormatter/Makefile +++ b/Data/samples/RowFormatter/Makefile @@ -8,6 +8,10 @@ include $(POCO_BASE)/build/rules/global objects = RowFormatter +ifndef POCO_DATA_NO_SQL_PARSER + target_includes = $(POCO_BASE)/Data/src +endif + target = RowFormatter target_version = 1 target_libs = PocoDataSQLite PocoData PocoFoundation diff --git a/Data/samples/Tuple/Makefile b/Data/samples/Tuple/Makefile index 4e8f28eb7..4171b5a5f 100644 --- a/Data/samples/Tuple/Makefile +++ b/Data/samples/Tuple/Makefile @@ -8,6 +8,10 @@ include $(POCO_BASE)/build/rules/global objects = Tuple +ifndef POCO_DATA_NO_SQL_PARSER + target_includes = $(POCO_BASE)/Data/src +endif + target = Tuple target_version = 1 target_libs = PocoDataSQLite PocoData PocoFoundation diff --git a/Data/samples/TypeHandler/Makefile b/Data/samples/TypeHandler/Makefile index 0ba271e58..6970efb00 100644 --- a/Data/samples/TypeHandler/Makefile +++ b/Data/samples/TypeHandler/Makefile @@ -8,6 +8,10 @@ include $(POCO_BASE)/build/rules/global objects = TypeHandler +ifndef POCO_DATA_NO_SQL_PARSER + target_includes = $(POCO_BASE)/Data/src +endif + target = TypeHandler target_version = 1 target_libs = PocoDataSQLite PocoData PocoFoundation diff --git a/Data/samples/WebNotifier/Makefile b/Data/samples/WebNotifier/Makefile index 923ed0ab6..02970b8cc 100644 --- a/Data/samples/WebNotifier/Makefile +++ b/Data/samples/WebNotifier/Makefile @@ -8,6 +8,10 @@ include $(POCO_BASE)/build/rules/global objects = WebNotifier +ifndef POCO_DATA_NO_SQL_PARSER + target_includes = $(POCO_BASE)/Data/src +endif + target = WebNotifier target_version = 1 target_libs = PocoDataSQLite PocoData PocoNet PocoFoundation diff --git a/Foundation/include/Poco/ObjectPool.h b/Foundation/include/Poco/ObjectPool.h index 5757ea8ba..76497a36f 100644 --- a/Foundation/include/Poco/ObjectPool.h +++ b/Foundation/include/Poco/ObjectPool.h @@ -302,7 +302,7 @@ public: protected: P activateObject(P pObject) { -#if defined(POCO_COMPILER_GCC) +#if defined(POCO_COMPILER_GCC) && (__GNUC__ >= 12) #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wuse-after-free" #endif @@ -316,7 +316,7 @@ protected: throw; } return pObject; -#if defined(POCO_COMPILER_GCC) +#if defined(POCO_COMPILER_GCC) && (__GNUC__ >= 12) #pragma GCC diagnostic pop #endif } From 79e54d88ba6c3d75783b3dbc2978ff60b13ef568 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Wed, 1 Nov 2023 19:21:20 +0100 Subject: [PATCH 162/395] chore: fix local test run script --- runLibTests.sh | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/runLibTests.sh b/runLibTests.sh index 004dd35cb..788f9f294 100755 --- a/runLibTests.sh +++ b/runLibTests.sh @@ -30,19 +30,27 @@ flag=$2 make distclean -C CppUnit make distclean -C Foundation -make distclean -C "$library" +if [[ "$library" != "Foundation" ]]; then + make distclean -C "$library" +fi make distclean -C "$library"/testsuite if [ -n "${flag}" ]; then make -s -j4 -C "$POCO_BASE"/CppUnit SANITIZEFLAGS+=-fsanitize="$flag" make -s -j4 -C "$POCO_BASE"/Foundation SANITIZEFLAGS+=-fsanitize="$flag" - make -s -j4 -C "$POCO_BASE"/"$library" SANITIZEFLAGS+=-fsanitize="$flag" + if [[ "$library" != "Foundation" ]]; then + make -s -j4 -C "$POCO_BASE"/"$library" SANITIZEFLAGS+=-fsanitize="$flag" + fi make -s -j4 -C "$POCO_BASE"/"$library"/testsuite SANITIZEFLAGS+=-fsanitize="$flag" else make -s -j4 -C "$POCO_BASE"/CppUnit make -s -j4 -C "$POCO_BASE"/Foundation - make -s -j4 -C "$POCO_BASE"/"$library" + if [[ "$library" != "Foundation" ]]; then + make -s -j4 -C "$POCO_BASE"/"$library" + fi make -s -j4 -C "$POCO_BASE"/"$library"/testsuite fi -"$library"/testsuite/bin/"$OSNAME"/"$OSARCH"/testrunner -all -"$library"/testsuite/bin/"$OSNAME"/"$OSARCH"/testrunnerd -all + +cd "$basedir"/"$library"/testsuite/bin/"$OSNAME"/"$OSARCH"/ || exit +testrunner -all +testrunnerd -all From afd9c8c4081f7859facf8a6aa90e34c40f3f55a0 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Thu, 2 Nov 2023 00:04:10 +0100 Subject: [PATCH 163/395] feat(Data::Session): add 'sqlParse' feature #4230 --- Data/include/Poco/Data/AbstractSessionImpl.h | 29 ++++++++++++++++-- Data/include/Poco/Data/SessionImpl.h | 11 ++++++- Data/include/Poco/Data/Statement.h | 32 +++++++++++++++----- Data/include/Poco/Data/StatementImpl.h | 9 ++++++ Data/src/Statement.cpp | 2 +- Data/testsuite/src/DataTest.cpp | 26 ++++++++++++++-- runLibTests.sh | 4 +-- 7 files changed, 97 insertions(+), 16 deletions(-) diff --git a/Data/include/Poco/Data/AbstractSessionImpl.h b/Data/include/Poco/Data/AbstractSessionImpl.h index 8fa05d70a..a96f64dd9 100644 --- a/Data/include/Poco/Data/AbstractSessionImpl.h +++ b/Data/include/Poco/Data/AbstractSessionImpl.h @@ -55,7 +55,8 @@ public: _storage(std::string("deque")), _bulk(false), _emptyStringIsNull(false), - _forceEmptyString(false) + _forceEmptyString(false), + _sqlParse(true) /// Creates the AbstractSessionImpl. /// /// Adds "storage" property and sets the default internal storage container @@ -108,6 +109,10 @@ public: addFeature("forceEmptyString", &AbstractSessionImpl::setForceEmptyString, &AbstractSessionImpl::getForceEmptyString); + + addFeature("sqlParse", + &AbstractSessionImpl::setSQLParse, + &AbstractSessionImpl::getSQLParse); } ~AbstractSessionImpl() @@ -257,7 +262,7 @@ public: return _emptyStringIsNull; } - void setForceEmptyString(const std::string& name, bool forceEmptyString) + void setForceEmptyString(const std::string&, bool forceEmptyString) /// Sets the behavior regarding empty variable length strings. /// Those are treated as NULL by Oracle and as empty string by /// most other databases. @@ -278,6 +283,25 @@ public: return _forceEmptyString; } + void setSQLParse(const std::string&, bool doParse) + /// Enables the SQL parsing. Value must be of type bool. + /// When SQL parsing is enabled (default), the Statement attempts + /// to parse the SQL prior to executing it. The parsing is done + /// in non-autocommit mode only, with purpose to determine the + /// type of query and whether to start the transaction automatically. + /// + /// See Statement documentation for more information. + { + _sqlParse = doParse; + } + + + bool getSQLParse(const std::string& name = "") const + /// Returns the value of the SQL parsing flag. + { + return _sqlParse; + } + protected: void addFeature(const std::string& name, FeatureSetter setter, FeatureGetter getter) /// Adds a feature to the map of supported features. @@ -325,6 +349,7 @@ private: bool _bulk; bool _emptyStringIsNull; bool _forceEmptyString; + bool _sqlParse; Poco::Any _handle; }; diff --git a/Data/include/Poco/Data/SessionImpl.h b/Data/include/Poco/Data/SessionImpl.h index 273593210..2d7aef0a0 100644 --- a/Data/include/Poco/Data/SessionImpl.h +++ b/Data/include/Poco/Data/SessionImpl.h @@ -118,7 +118,7 @@ public: /// Returns true if session has transaction capabilities. virtual bool isTransaction() const = 0; - /// Returns true iff a transaction is a transaction is in progress, false otherwise. + /// Returns true iff a transaction is in progress, false otherwise. virtual void setTransactionIsolation(Poco::UInt32) = 0; /// Sets the transaction isolation level. @@ -149,6 +149,9 @@ public: bool isAutocommit() const; /// Returns true if autocommit is on, false otherwise. + bool shouldParse() const; + /// Returns true if SQL parser is enabled, false otherwise. + virtual bool hasFeature(const std::string& name) const = 0; /// Returns true if session has the named feature. @@ -247,6 +250,12 @@ inline bool SessionImpl::isAutocommit() const } +inline bool SessionImpl::shouldParse() const +{ + return hasFeature("sqlParse") && getFeature("sqlParse"); +} + + } } // namespace Poco::Data diff --git a/Data/include/Poco/Data/Statement.h b/Data/include/Poco/Data/Statement.h index 694ca1ce3..518be8417 100644 --- a/Data/include/Poco/Data/Statement.h +++ b/Data/include/Poco/Data/Statement.h @@ -578,7 +578,9 @@ inline const std::string& Statement::parseError() inline Optional Statement::isSelect() const { #ifndef POCO_DATA_NO_SQL_PARSER - return isType(Parser::StatementType::kStmtSelect); + if (_pImpl->session().shouldParse()) + return isType(Parser::StatementType::kStmtSelect); + else return Optional(); #else return Optional(); #endif @@ -588,7 +590,9 @@ inline Optional Statement::isSelect() const inline Optional Statement::isInsert() const { #ifndef POCO_DATA_NO_SQL_PARSER - return isType(Parser::StatementType::kStmtInsert); + if (_pImpl->session().shouldParse()) + return isType(Parser::StatementType::kStmtInsert); + else return Optional(); #else return Optional(); #endif @@ -598,7 +602,9 @@ inline Optional Statement::isInsert() const inline Optional Statement::isUpdate() const { #ifndef POCO_DATA_NO_SQL_PARSER - return isType(Parser::StatementType::kStmtUpdate); + if (_pImpl->session().shouldParse()) + return isType(Parser::StatementType::kStmtUpdate); + else return Optional(); #else return Optional(); #endif @@ -608,7 +614,9 @@ inline Optional Statement::isUpdate() const inline Optional Statement::isDelete() const { #ifndef POCO_DATA_NO_SQL_PARSER - return isType(Parser::StatementType::kStmtDelete); + if (_pImpl->session().shouldParse()) + return isType(Parser::StatementType::kStmtDelete); + else return Optional(); #else return Optional(); #endif @@ -618,7 +626,9 @@ inline Optional Statement::isDelete() const inline Optional Statement::hasSelect() const { #ifndef POCO_DATA_NO_SQL_PARSER - return hasType(Parser::StatementType::kStmtSelect); + if (_pImpl->session().shouldParse()) + return hasType(Parser::StatementType::kStmtSelect); + else return Optional(); #else return Optional(); #endif @@ -628,7 +638,9 @@ inline Optional Statement::hasSelect() const inline Optional Statement::hasInsert() const { #ifndef POCO_DATA_NO_SQL_PARSER - return hasType(Parser::StatementType::kStmtInsert); + if (_pImpl->session().shouldParse()) + return hasType(Parser::StatementType::kStmtInsert); + else return Optional(); #else return Optional(); #endif @@ -638,7 +650,9 @@ inline Optional Statement::hasInsert() const inline Optional Statement::hasUpdate() const { #ifndef POCO_DATA_NO_SQL_PARSER - return hasType(Parser::StatementType::kStmtUpdate); + if (_pImpl->session().shouldParse()) + return hasType(Parser::StatementType::kStmtUpdate); + else return Optional(); #else return Optional(); #endif @@ -648,7 +662,9 @@ inline Optional Statement::hasUpdate() const inline Optional Statement::hasDelete() const { #ifndef POCO_DATA_NO_SQL_PARSER - return hasType(Parser::StatementType::kStmtDelete); + if (_pImpl->session().shouldParse()) + return hasType(Parser::StatementType::kStmtDelete); + else return Optional(); #else return Optional(); #endif diff --git a/Data/include/Poco/Data/StatementImpl.h b/Data/include/Poco/Data/StatementImpl.h index 871d5ead6..938b1a2d8 100644 --- a/Data/include/Poco/Data/StatementImpl.h +++ b/Data/include/Poco/Data/StatementImpl.h @@ -259,6 +259,9 @@ protected: SessionImpl& session(); /// Rteurns session associated with this statement. + const SessionImpl& session() const; + /// Rteurns session associated with this statement. + virtual AbstractBinding::BinderPtr binder() = 0; /// Returns the concrete binder used by the statement. @@ -512,6 +515,12 @@ inline SessionImpl& StatementImpl::session() } +inline const SessionImpl& StatementImpl::session() const +{ + return _rSession; +} + + inline void StatementImpl::setStorage(Storage storage) { _storage = storage; diff --git a/Data/src/Statement.cpp b/Data/src/Statement.cpp index 380f61d19..520237dde 100644 --- a/Data/src/Statement.cpp +++ b/Data/src/Statement.cpp @@ -232,7 +232,7 @@ void Statement::formatQuery() void Statement::checkBeginTransaction() { SessionImpl& session = _pImpl->session(); - if (!session.isAutocommit() && !session.isTransaction()) + if (!session.isAutocommit() && !session.isTransaction() && session.shouldParse()) { auto result = parse(); if (result.isSpecified() && result.value() && !isSelect().value()) diff --git a/Data/testsuite/src/DataTest.cpp b/Data/testsuite/src/DataTest.cpp index a87a38d38..df4057d14 100644 --- a/Data/testsuite/src/DataTest.cpp +++ b/Data/testsuite/src/DataTest.cpp @@ -1460,8 +1460,7 @@ void DataTest::testSQLParse() assertTrue (!stmt.isDelete().value()); assertTrue (!stmt.hasDelete().value()); - Session sess2(SessionFactory::instance().create("test", "cs")); - stmt.reset(sess2); + stmt.reset(); stmt = (sess << "INSERT INTO Test VALUES ('1', 2, 3.5);" "SELECT * FROM Test WHERE First = ?;" "UPDATE Test SET value=1 WHERE First = '1';" @@ -1480,6 +1479,29 @@ void DataTest::testSQLParse() assertTrue (!stmt.isDelete().value()); assertTrue (stmt.hasDelete().value()); + sess.setFeature("sqlParse", false); + assertTrue (!sess.getFeature("sqlParse")); + + stmt.reset(); + stmt = (sess << "INSERT INTO Test VALUES ('1', 2, 3.5);" + "SELECT * FROM Test WHERE First = ?;" + "UPDATE Test SET value=1 WHERE First = '1';" + "DELETE FROM Test WHERE First = ?;" + "DROP TABLE table_name;" + "ALTER TABLE mytable DROP COLUMN IF EXISTS mycolumn;" + "PREPARE prep_inst FROM 'INSERT INTO test VALUES (?, ?, ?)';" + "EXECUTE prep_inst(1, 2, 3);"); + + stmt.execute(); + assertTrue (!stmt.isSelect().isSpecified()); + assertTrue (!stmt.hasSelect().isSpecified()); + assertTrue (!stmt.isUpdate().isSpecified()); + assertTrue (!stmt.hasUpdate().isSpecified()); + assertTrue (!stmt.isInsert().isSpecified()); + assertTrue (!stmt.hasInsert().isSpecified()); + assertTrue (!stmt.isDelete().isSpecified()); + assertTrue (!stmt.hasDelete().isSpecified()); + #endif // POCO_DATA_NO_SQL_PARSER } diff --git a/runLibTests.sh b/runLibTests.sh index 788f9f294..4f4143b9b 100755 --- a/runLibTests.sh +++ b/runLibTests.sh @@ -52,5 +52,5 @@ else fi cd "$basedir"/"$library"/testsuite/bin/"$OSNAME"/"$OSARCH"/ || exit -testrunner -all -testrunnerd -all +./testrunner -all +./testrunnerd -all From 4f0315aeb032f8e8a0704d4bc534d1237db7784a Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Thu, 2 Nov 2023 00:28:18 +0100 Subject: [PATCH 164/395] feat(Data::Statement): make statementsCount() Optional 230 --- Data/include/Poco/Data/Statement.h | 2 +- Data/src/Statement.cpp | 9 +++++---- Data/testsuite/src/DataTest.cpp | 2 ++ 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Data/include/Poco/Data/Statement.h b/Data/include/Poco/Data/Statement.h index 518be8417..272c4afd4 100644 --- a/Data/include/Poco/Data/Statement.h +++ b/Data/include/Poco/Data/Statement.h @@ -305,7 +305,7 @@ public: const std::string& toString() const; /// Creates a string from the accumulated SQL statement. - std::size_t statementsCount() const; + Optional statementsCount() const; /// Returns the total number of SQL statements held in the accummulated SQL statement. Optional parse(); diff --git a/Data/src/Statement.cpp b/Data/src/Statement.cpp index 520237dde..570f13078 100644 --- a/Data/src/Statement.cpp +++ b/Data/src/Statement.cpp @@ -155,13 +155,14 @@ Statement& Statement::reset() return *this; } -std::size_t Statement::statementsCount() const +Optional Statement::statementsCount() const { + Optional ret; #ifndef POCO_DATA_NO_SQL_PARSER - return _pParseResult->size(); -#else - return 0u; + if (_pImpl->session().shouldParse()) + ret = _pParseResult->size(); #endif + return ret; } diff --git a/Data/testsuite/src/DataTest.cpp b/Data/testsuite/src/DataTest.cpp index df4057d14..c7f6899a9 100644 --- a/Data/testsuite/src/DataTest.cpp +++ b/Data/testsuite/src/DataTest.cpp @@ -1451,6 +1451,7 @@ void DataTest::testSQLParse() "'",'a',"'",-1, 1u, 1.5, "42", now); assertTrue ("SELECT 'a',-1,1,1.500000,42 FROM Person WHERE Name LIKE 'Simp%'" == stmt.toString()); + assertEqual (1u, stmt.statementsCount().value()); assertTrue (stmt.isSelect().value()); assertTrue (stmt.hasSelect().value()); assertTrue (!stmt.isUpdate().value()); @@ -1470,6 +1471,7 @@ void DataTest::testSQLParse() "PREPARE prep_inst FROM 'INSERT INTO test VALUES (?, ?, ?)';" "EXECUTE prep_inst(1, 2, 3);"); stmt.execute(); + assertEqual (8u, stmt.statementsCount().value()); assertTrue (!stmt.isSelect().value()); assertTrue (stmt.hasSelect().value()); assertTrue (!stmt.isUpdate().value()); From 743da564eb1ef0774daa73cb2458747a47cf9228 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Thu, 2 Nov 2023 12:10:21 +0100 Subject: [PATCH 165/395] #4241: Poco::FileInputStream broken in 1.12.5 and 1.11.8. --- Foundation/include/Poco/FileStream.h | 53 +++++++++++++++++++--------- Foundation/src/FileStream.cpp | 44 +++++++++++------------ 2 files changed, 58 insertions(+), 39 deletions(-) diff --git a/Foundation/include/Poco/FileStream.h b/Foundation/include/Poco/FileStream.h index 2a3d3ca7c..78cfa0f0d 100644 --- a/Foundation/include/Poco/FileStream.h +++ b/Foundation/include/Poco/FileStream.h @@ -47,27 +47,12 @@ class Foundation_API FileIOS: public virtual std::ios /// On Windows platforms, UTF-8 encoded Unicode paths are correctly handled. { public: - FileIOS(std::ios::openmode defaultMode); + FileIOS(); /// Creates the basic stream. ~FileIOS(); /// Destroys the stream. - void open(const std::string& path, std::ios::openmode mode); - /// Opens the file specified by path, using the given mode. - /// - /// Throws a FileException (or a similar exception) if the file - /// does not exist or is not accessible for other reasons and - /// a new file cannot be created. - - void open(const std::string& path); - /// Opens the file specified by path, using the default mode given - /// in the constructor. - /// - /// Throws a FileException (or a similar exception) if the file - /// does not exist or is not accessible for other reasons and - /// a new file cannot be created. - void close(); /// Closes the file stream. /// @@ -80,7 +65,6 @@ public: protected: FileStreamBuf _buf; - std::ios::openmode _defaultMode; }; @@ -111,6 +95,14 @@ public: ~FileInputStream(); /// Destroys the stream. + + void open(const std::string& path, std::ios::openmode mode = std::ios::in); + /// Opens the file specified by path, using the given mode, which + /// will always include std::ios::in (even if not specified). + /// + /// Throws a FileException (or a similar exception) if the file + /// does not exist or is not accessible for other reasons and + /// a new file cannot be created. }; @@ -139,9 +131,25 @@ public: /// Throws a FileException (or a similar exception) if the file /// does not exist or is not accessible for other reasons and /// a new file cannot be created. + /// + /// NOTE: The default mode std::ios::out | std::ios::trunc is different from the default + /// for std::ofstream, which is std::ios::out only. This is for backwards compatibility + /// with earlier POCO versions. ~FileOutputStream(); /// Destroys the FileOutputStream. + + void open(const std::string& path, std::ios::openmode mode = std::ios::out | std::ios::trunc); + /// Opens the file specified by path, using the given mode, which + /// always includes std::ios::out, even if not specified. + /// + /// Throws a FileException (or a similar exception) if the file + /// does not exist or is not accessible for other reasons and + /// a new file cannot be created. + /// + /// NOTE: The default mode std::ios::out | std::ios::trunc is different from the default + /// for std::ostream, which is std::ios::out only. This is for backwards compatibility + /// with earlier POCO versions. }; @@ -168,9 +176,20 @@ public: FileStream(const std::string& path, std::ios::openmode mode = std::ios::out | std::ios::in); /// Creates the FileStream for the file given by path, using /// the given mode. + /// + /// NOTE: The default mode std::ios::in | std::ios::out is different from the default + /// for std::fstream, which is std::ios::out only. This is for backwards compatibility + /// with earlier POCO versions. ~FileStream(); /// Destroys the FileOutputStream. + + void open(const std::string& path, std::ios::openmode mode = std::ios::out | std::ios::in); + /// Opens the file specified by path, using the given mode. + /// + /// Throws a FileException (or a similar exception) if the file + /// does not exist or is not accessible for other reasons and + /// a new file cannot be created. }; diff --git a/Foundation/src/FileStream.cpp b/Foundation/src/FileStream.cpp index 158cdb5e8..f8d7feea2 100644 --- a/Foundation/src/FileStream.cpp +++ b/Foundation/src/FileStream.cpp @@ -24,8 +24,7 @@ namespace Poco { -FileIOS::FileIOS(std::ios::openmode defaultMode): - _defaultMode(defaultMode) +FileIOS::FileIOS() { poco_ios_init(&_buf); } @@ -36,20 +35,6 @@ FileIOS::~FileIOS() } -void FileIOS::open(const std::string& path, std::ios::openmode mode) -{ - clear(); - _buf.open(path, mode); -} - - -void FileIOS::open(const std::string& path) -{ - clear(); - _buf.open(path, _defaultMode); -} - - void FileIOS::close() { if (!_buf.close()) @@ -66,14 +51,12 @@ FileStreamBuf* FileIOS::rdbuf() FileInputStream::FileInputStream(): - FileIOS(std::ios::in), std::istream(&_buf) { } FileInputStream::FileInputStream(const std::string& path, std::ios::openmode mode): - FileIOS(mode | std::ios::in), std::istream(&_buf) { open(path, mode | std::ios::in); @@ -85,15 +68,20 @@ FileInputStream::~FileInputStream() } +void FileInputStream::open(const std::string& path, std::ios::openmode mode) +{ + clear(); + _buf.open(path, mode | std::ios::in); +} + + FileOutputStream::FileOutputStream(): - FileIOS(std::ios::out), std::ostream(&_buf) { } FileOutputStream::FileOutputStream(const std::string& path, std::ios::openmode mode): - FileIOS(mode | std::ios::out), std::ostream(&_buf) { open(path, mode | std::ios::out); @@ -105,15 +93,20 @@ FileOutputStream::~FileOutputStream() } +void FileOutputStream::open(const std::string& path, std::ios::openmode mode) +{ + clear(); + _buf.open(path, mode | std::ios::out); +} + + FileStream::FileStream(): - FileIOS(std::ios::in | std::ios::out), std::iostream(&_buf) { } FileStream::FileStream(const std::string& path, std::ios::openmode mode): - FileIOS(mode), std::iostream(&_buf) { open(path, mode); @@ -125,4 +118,11 @@ FileStream::~FileStream() } +void FileStream::open(const std::string& path, std::ios::openmode mode) +{ + clear(); + _buf.open(path, mode); +} + + } // namespace Poco From 8b620e74762278354eea926b2976d2b1044cfe8b Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Thu, 2 Nov 2023 22:12:23 +0100 Subject: [PATCH 166/395] enh(poco): std::string literals #4216 --- Foundation/include/Poco/Foundation.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Foundation/include/Poco/Foundation.h b/Foundation/include/Poco/Foundation.h index 74a3bf975..a217ecef9 100644 --- a/Foundation/include/Poco/Foundation.h +++ b/Foundation/include/Poco/Foundation.h @@ -91,6 +91,14 @@ #endif #endif +#include + +namespace Poco { + +using namespace std::literals; + +} // Poco + // // Include platform-specific definitions From 46728024f7df8cba27ada8de5cad9e9c6e79309a Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Thu, 2 Nov 2023 22:13:23 +0100 Subject: [PATCH 167/395] chore(CppUnit): fix comment --- CppUnit/include/CppUnit/CppUnit.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CppUnit/include/CppUnit/CppUnit.h b/CppUnit/include/CppUnit/CppUnit.h index f58dc0d82..e21861c19 100644 --- a/CppUnit/include/CppUnit/CppUnit.h +++ b/CppUnit/include/CppUnit/CppUnit.h @@ -41,9 +41,7 @@ #endif #endif -// -// Automatically link Data library. -// + #if defined(_MSC_VER) #if defined(POCO_DLL) #if defined(_DEBUG) @@ -66,7 +64,9 @@ #endif #endif - +// +// Automatically link CppUnit library. +// #if defined(_MSC_VER) && !defined(POCO_NO_AUTOMATIC_LIBS) #if !defined(CppUnit_EXPORTS) #pragma comment(lib, "CppUnit" POCO_LIB_SUFFIX) From 596bd0ef237e12970bbe8e8e4484b1b4f5faa8f6 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Thu, 2 Nov 2023 22:27:17 +0100 Subject: [PATCH 168/395] enh(Data): move SQLExecutor to a library in Poco::Data testsuite #4230 --- Data/ODBC/Makefile | 3 +- .../include/Poco/Data/ODBC/ODBCException.h | 8 +- Data/ODBC/testsuite/Makefile | 5 +- Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp | 4 +- Data/ODBC/testsuite/src/ODBCTest.cpp | 2 +- Data/ODBC/testsuite/src/ODBCTest.h | 6 +- Data/ODBC/testsuite/src/SQLExecutor.cpp | 3716 +------------- Data/ODBC/testsuite/src/SQLExecutor.h | 500 +- Data/testsuite/Makefile | 31 +- Data/testsuite/Makefile-library | 21 + Data/testsuite/Makefile-testrunner | 31 + .../include/Poco/Data/Test/SQLExecutor.h | 241 + Data/testsuite/src/SQLExecutor.cpp | 4382 +++++++++++++++++ 13 files changed, 5204 insertions(+), 3746 deletions(-) create mode 100644 Data/testsuite/Makefile-library create mode 100644 Data/testsuite/Makefile-testrunner create mode 100644 Data/testsuite/include/Poco/Data/Test/SQLExecutor.h create mode 100644 Data/testsuite/src/SQLExecutor.cpp diff --git a/Data/ODBC/Makefile b/Data/ODBC/Makefile index dcf6550da..9be4700cf 100644 --- a/Data/ODBC/Makefile +++ b/Data/ODBC/Makefile @@ -12,8 +12,9 @@ objects = Binder ConnectionHandle Connector EnvironmentHandle \ Extractor ODBCException ODBCMetaColumn ODBCStatementImpl \ Parameter Preparator SessionImpl TypeInfo Unicode Utility +target_includes = $(POCO_BASE)/Data/testsuite/include ifndef POCO_DATA_NO_SQL_PARSER - target_includes = $(POCO_BASE)/Data/src + target_includes += $(POCO_BASE)/Data/src endif target = PocoDataODBC diff --git a/Data/ODBC/include/Poco/Data/ODBC/ODBCException.h b/Data/ODBC/include/Poco/Data/ODBC/ODBCException.h index e8efa451f..098ffde95 100644 --- a/Data/ODBC/include/Poco/Data/ODBC/ODBCException.h +++ b/Data/ODBC/include/Poco/Data/ODBC/ODBCException.h @@ -138,10 +138,10 @@ private: }; -typedef HandleException EnvironmentException; -typedef HandleException ConnectionException; -typedef HandleException StatementException; -typedef HandleException DescriptorException; +using EnvironmentException = HandleException; +using ConnectionException = HandleException; +using StatementException = HandleException; +using DescriptorException = HandleException; } } } // namespace Poco::Data::ODBC diff --git a/Data/ODBC/testsuite/Makefile b/Data/ODBC/testsuite/Makefile index 9472978b2..0dd949e48 100644 --- a/Data/ODBC/testsuite/Makefile +++ b/Data/ODBC/testsuite/Makefile @@ -33,12 +33,13 @@ ifeq ($(POCO_CONFIG),MinGW) objects += ODBCAccessTest endif +target_includes = $(POCO_BASE)/Data/testsuite/include ifndef POCO_DATA_NO_SQL_PARSER - target_includes = $(POCO_BASE)/Data/src + target_includes += $(POCO_BASE)/Data/src endif target = testrunner target_version = 1 -target_libs = PocoDataODBC PocoData PocoFoundation CppUnit +target_libs = PocoDataODBC PocoDataTest PocoData PocoFoundation CppUnit include $(POCO_BASE)/build/rules/exec diff --git a/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp b/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp index af0d85fd5..5d3ef3874 100644 --- a/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp +++ b/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp @@ -189,7 +189,7 @@ void ODBCSQLServerTest::testBLOB() try { executor().blob(maxFldSize, "CONVERT(VARBINARY(MAX),?)"); - fail ("must fail"); + fail (__func__, __LINE__, __FILE__); } catch (DataException&) { @@ -209,7 +209,7 @@ void ODBCSQLServerTest::testBLOB() try { executor().blob(maxFldSize+1, "CONVERT(VARBINARY(MAX),?)"); - fail ("must fail"); + fail (__func__, __LINE__, __FILE__); } catch (DataException&) { } } diff --git a/Data/ODBC/testsuite/src/ODBCTest.cpp b/Data/ODBC/testsuite/src/ODBCTest.cpp index 7aa3d4233..5cd3e47f6 100644 --- a/Data/ODBC/testsuite/src/ODBCTest.cpp +++ b/Data/ODBC/testsuite/src/ODBCTest.cpp @@ -55,7 +55,7 @@ const bool ODBCTest::_bindValues[8] = ODBCTest::ODBCTest(const std::string& name, SessionPtr pSession, - ExecPtr pExecutor, + ExecPtr pExecutor, std::string& rDSN, std::string& rUID, std::string& rPwd, diff --git a/Data/ODBC/testsuite/src/ODBCTest.h b/Data/ODBC/testsuite/src/ODBCTest.h index 31a7d1ade..ba6a6a86c 100644 --- a/Data/ODBC/testsuite/src/ODBCTest.h +++ b/Data/ODBC/testsuite/src/ODBCTest.h @@ -23,14 +23,14 @@ #include "SQLExecutor.h" -#define POCO_ODBC_TEST_DATABASE_SERVER "localhost" +#define POCO_ODBC_TEST_DATABASE_SERVER "10.211.55.5"//"localhost" class ODBCTest: public CppUnit::TestCase { public: - typedef Poco::SharedPtr SessionPtr; - typedef Poco::SharedPtr ExecPtr; + using SessionPtr = Poco::SharedPtr; + using ExecPtr = Poco::SharedPtr; ODBCTest(const std::string& name, SessionPtr pSession, diff --git a/Data/ODBC/testsuite/src/SQLExecutor.cpp b/Data/ODBC/testsuite/src/SQLExecutor.cpp index 2e48676a0..75b22ba1c 100644 --- a/Data/ODBC/testsuite/src/SQLExecutor.cpp +++ b/Data/ODBC/testsuite/src/SQLExecutor.cpp @@ -102,188 +102,6 @@ using Poco::UnicodeConverter; using Poco::UTF16String; using Poco::UTF32String; -struct Person -{ - std::string lastName; - std::string firstName; - std::string address; - int age; - Person(){age = 0;} - Person(const std::string& ln, const std::string& fn, const std::string& adr, int a):lastName(ln), firstName(fn), address(adr), age(a) - { - } - bool operator==(const Person& other) const - { - return lastName == other.lastName && firstName == other.firstName && address == other.address && age == other.age; - } - - bool operator < (const Person& p) const - { - if (age < p.age) - return true; - if (lastName < p.lastName) - return true; - if (firstName < p.firstName) - return true; - return (address < p.address); - } - - const std::string& operator () () const - /// This method is required so we can extract data to a map! - { - // we choose the lastName as the key - return lastName; - } -}; - - -struct RefCountedPerson : public Poco::RefCountedObject -{ - std::string lastName; - std::string firstName; - std::string address; - int age; - RefCountedPerson(){age = 0;} - RefCountedPerson(const std::string& ln, const std::string& fn, const std::string& adr, int a):lastName(ln), firstName(fn), address(adr), age(a) - { - } - bool operator==(const Person& other) const - { - return lastName == other.lastName && firstName == other.firstName && address == other.address && age == other.age; - } - - bool operator < (const RefCountedPerson& p) const - { - if (age < p.age) - return true; - if (lastName < p.lastName) - return true; - if (firstName < p.firstName) - return true; - return (address < p.address); - } - - const std::string& operator () () const - /// This method is required so we can extract data to a map! - { - // we choose the lastName as the key - return lastName; - } - -private: - RefCountedPerson(const RefCountedPerson &); - RefCountedPerson& operator = (const RefCountedPerson&); -}; - - -namespace Poco { -namespace Data { - - -template <> -class TypeHandler -{ -public: - static void bind(std::size_t pos, - const Person& obj, - AbstractBinder::Ptr pBinder, - AbstractBinder::Direction dir = AbstractBinder::PD_IN) - { - // the table is defined as Person (LastName VARCHAR(30), FirstName VARCHAR, Address VARCHAR, Age INTEGER(3)) - poco_assert_dbg (!pBinder.isNull()); - pBinder->bind(pos++, obj.lastName, dir); - pBinder->bind(pos++, obj.firstName, dir); - pBinder->bind(pos++, obj.address, dir); - pBinder->bind(pos++, obj.age, dir); - } - - static void prepare(std::size_t pos, const Person& obj, AbstractPreparator::Ptr pPrepare) - { - // the table is defined as Person (LastName VARCHAR(30), FirstName VARCHAR, Address VARCHAR, Age INTEGER(3)) - poco_assert_dbg (!pPrepare.isNull()); - pPrepare->prepare(pos++, obj.lastName); - pPrepare->prepare(pos++, obj.firstName); - pPrepare->prepare(pos++, obj.address); - pPrepare->prepare(pos++, obj.age); - } - - static std::size_t size() - { - return 4; - } - - static void extract(std::size_t pos, Person& obj, const Person& defVal, AbstractExtractor::Ptr pExt) - { - poco_assert_dbg (!pExt.isNull()); - if (!pExt->extract(pos++, obj.lastName)) - obj.lastName = defVal.lastName; - if (!pExt->extract(pos++, obj.firstName)) - obj.firstName = defVal.firstName; - if (!pExt->extract(pos++, obj.address)) - obj.address = defVal.address; - if (!pExt->extract(pos++, obj.age)) - obj.age = defVal.age; - } - -private: - TypeHandler(const TypeHandler&); - TypeHandler& operator=(const TypeHandler&); -}; - - -template <> -class TypeHandler -{ -public: - static void bind(std::size_t pos, - const RefCountedPerson& obj, - AbstractBinder::Ptr pBinder, - AbstractBinder::Direction dir = AbstractBinder::PD_IN) - { - // the table is defined as Person (LastName VARCHAR(30), FirstName VARCHAR, Address VARCHAR, Age INTEGER(3)) - poco_assert_dbg (!pBinder.isNull()); - pBinder->bind(pos++, obj.lastName, dir); - pBinder->bind(pos++, obj.firstName, dir); - pBinder->bind(pos++, obj.address, dir); - pBinder->bind(pos++, obj.age, dir); - } - - static void prepare(std::size_t pos, RefCountedPerson& obj, AbstractPreparator::Ptr pPrepare) - { - // the table is defined as Person (LastName VARCHAR(30), FirstName VARCHAR, Address VARCHAR, Age INTEGER(3)) - poco_assert_dbg (!pPrepare.isNull()); - pPrepare->prepare(pos++, obj.lastName); - pPrepare->prepare(pos++, obj.firstName); - pPrepare->prepare(pos++, obj.address); - pPrepare->prepare(pos++, obj.age); - } - - static std::size_t size() - { - return 4; - } - - static void extract(std::size_t pos, RefCountedPerson& obj, const RefCountedPerson& defVal, AbstractExtractor::Ptr pExt) - { - poco_assert_dbg (!pExt.isNull()); - if (!pExt->extract(pos++, obj.lastName)) - obj.lastName = defVal.lastName; - if (!pExt->extract(pos++, obj.firstName)) - obj.firstName = defVal.firstName; - if (!pExt->extract(pos++, obj.address)) - obj.address = defVal.address; - if (!pExt->extract(pos++, obj.age)) - obj.age = defVal.age; - } - -private: - TypeHandler(const TypeHandler&); - TypeHandler& operator=(const TypeHandler&); -}; - - -} } // namespace Poco::Data - const std::string SQLExecutor::MULTI_INSERT = "INSERT INTO Test VALUES ('1', 2, 3.5);" @@ -303,7 +121,8 @@ const std::string SQLExecutor::MULTI_SELECT = SQLExecutor::SQLExecutor(const std::string& name, Poco::Data::Session* pSession, Poco::Data::Session* pEncSession): CppUnit::TestCase(name), _pSession(pSession), - _pEncSession(pEncSession) + _pEncSession(pEncSession), + _dataExecutor("Poco::Data SQL Executor", pSession, pEncSession) { } @@ -313,6 +132,21 @@ SQLExecutor::~SQLExecutor() } +Poco::Data::Session& SQLExecutor::session(bool enc) +{ + if (!enc) + { + poco_check_ptr(_pSession); + return *_pSession; + } + else + { + poco_check_ptr(_pEncSession); + return *_pEncSession; + } +} + + void SQLExecutor::bareboneODBCTest(const std::string& dbConnString, const std::string& tableCreateString, SQLExecutor::DataBinding bindMode, @@ -1147,30 +981,7 @@ void SQLExecutor::execute(const std::string& sql) void SQLExecutor::connection(const std::string& connectString) { Poco::Data::ODBC::Connection c; - assertFalse (c.isConnected()); - assertTrue (c.connect(connectString, 5)); - assertTrue (c.isConnected()); - assertTrue (c.getTimeout() == 5); - c.setTimeout(6); - assertTrue (c.getTimeout() == 6); - assertTrue (c.disconnect()); - assertFalse (c.isConnected()); - assertTrue (c.connect(connectString)); - assertTrue (c.isConnected()); - try - { - c.connect(); - fail ("Connection attempt must fail when already connected"); - } - catch(const Poco::InvalidAccessException&){} - assertTrue (c.disconnect()); - assertFalse (c.isConnected()); - try - { - c.connect(); - fail ("Connection attempt with empty string must fail"); - } - catch(const Poco::InvalidArgumentException&){} + _dataExecutor.connection(c, connectString); } @@ -1214,2394 +1025,13 @@ void SQLExecutor::session(const std::string& connectString, int timeout) } -void SQLExecutor::sessionPool(const std::string& connectString, int minSessions, int maxSessions, int idleTime, int timeout) -{ - assertTrue (minSessions <= maxSessions); - - SessionPool sp("ODBC", connectString, minSessions, maxSessions, idleTime, timeout); - assertEqual (0, sp.allocated()); - assertEqual (maxSessions, sp.available()); - Session s1 = sp.get(); - assertEqual (minSessions, sp.allocated()); - assertEqual (maxSessions-1, sp.available()); - s1 = sp.get(); - assertEqual (2, sp.allocated()); - assertEqual (maxSessions-1, sp.available()); - { - Session s2 = sp.get(); - assertEqual (2, sp.allocated()); - assertEqual (maxSessions-2, sp.available()); - } - assertEqual (2, sp.allocated()); - assertEqual (maxSessions-1, sp.available()); - - Thread::sleep(idleTime + 500); - assertEqual (maxSessions-minSessions, sp.available()); - - try - { - sp.setFeature("autoBind", true); - fail("SessionPool must throw on setFeature after the first session was created."); - } - catch(const Poco::InvalidAccessException&) {} - try - { - sp.setProperty("handle", SQL_NULL_HDBC); - fail("SessionPool must throw on setProperty after the first session was created."); - } - catch(const Poco::InvalidAccessException&) {} - - std::vector sessions; - for (int i = 0; i < maxSessions-minSessions; ++i) - { - sessions.push_back(sp.get()); - } - - try - { - Session s = sp.get(); - fail("SessionPool must throw when no sesions available."); - } - catch(const Poco::Data::SessionPoolExhaustedException&) {} - - sp.shutdown(); - try - { - Session s = sp.get(); - fail("SessionPool that was shut down must throw on get."); - } - catch(const Poco::InvalidAccessException&) {} - - { - SessionPool pool("ODBC", connectString, 1, 4, 2, 10); - - try { pool.getFeature("g1"); fail ("getting an unsuported feature must fail"); } - catch ( Poco::NotFoundException& ) { } - - try { pool.getProperty("r1"); fail ("getting an unsuported property must fail"); } - catch ( Poco::NotFoundException& ) { } - - assertTrue (pool.capacity() == 4); - assertTrue (pool.allocated() == 0); - assertTrue (pool.idle() == 0); - assertTrue (pool.connTimeout() == 10); - assertTrue (pool.available() == 4); - assertTrue (pool.dead() == 0); - assertTrue (pool.allocated() == pool.used() + pool.idle()); - Session s1(pool.get()); - - try { pool.setFeature("f1", true); fail ("setting an unsuported feature must fail"); } - catch (Poco::InvalidAccessException&) { } - catch (Poco::NotImplementedException&) { } - catch (Poco::Data::NotSupportedException&) { } - - try { pool.setProperty("p1", 1); fail ("setting an unsuported property must fail"); } - catch (Poco::InvalidAccessException&) { } - catch (Poco::NotImplementedException&) { } - catch (Poco::Data::NotSupportedException&) { } - - assertTrue (pool.capacity() == 4); - assertTrue (pool.allocated() == 1); - assertTrue (pool.idle() == 0); - assertTrue (pool.connTimeout() == 10); - assertTrue (pool.available() == 3); - assertTrue (pool.dead() == 0); - assertTrue (pool.allocated() == pool.used() + pool.idle()); - - Session s2(pool.get()); - assertTrue (pool.capacity() == 4); - assertTrue (pool.allocated() == 2); - assertTrue (pool.idle() == 0); - assertTrue (pool.connTimeout() == 10); - assertTrue (pool.available() == 2); - assertTrue (pool.dead() == 0); - assertTrue (pool.allocated() == pool.used() + pool.idle()); - - Session s4(pool.get()); - assertTrue (pool.capacity() == 4); - assertTrue (pool.allocated() == 3); - assertTrue (pool.idle() == 0); - assertTrue (pool.connTimeout() == 10); - assertTrue (pool.available() == 1); - assertTrue (pool.dead() == 0); - assertTrue (pool.allocated() == pool.used() + pool.idle()); - - Session s5(pool.get()); - assertTrue (pool.capacity() == 4); - assertTrue (pool.allocated() == 4); - assertTrue (pool.idle() == 0); - assertTrue (pool.connTimeout() == 10); - assertTrue (pool.available() == 0); - assertTrue (pool.dead() == 0); - assertTrue (pool.allocated() == pool.used() + pool.idle()); - - try - { - Session s6(pool.get()); - fail("pool exhausted - must throw"); - } - catch (Poco::Data::SessionPoolExhaustedException&) { } - - s5.close(); - assertTrue (pool.capacity() == 4); - assertTrue (pool.allocated() == 4); - assertTrue (pool.idle() == 1); - assertTrue (pool.connTimeout() == 10); - assertTrue (pool.available() == 1); - assertTrue (pool.dead() == 0); - assertTrue (pool.allocated() == pool.used() + pool.idle()); - - try - { - s5 << "DROP TABLE IF EXISTS Test", now; - fail("session unusable - must throw"); - } - catch (Poco::Data::SessionUnavailableException&) { } - - s4.close(); - assertTrue (pool.capacity() == 4); - assertTrue (pool.allocated() == 4); - assertTrue (pool.idle() == 2); - assertTrue (pool.connTimeout() == 10); - assertTrue (pool.available() == 2); - assertTrue (pool.dead() == 0); - assertTrue (pool.allocated() == pool.used() + pool.idle()); - - Thread::sleep(5000); // time to clean up idle sessions - - assertTrue (pool.capacity() == 4); - assertTrue (pool.allocated() == 2); - assertTrue (pool.idle() == 0); - assertTrue (pool.connTimeout() == 10); - assertTrue (pool.available() == 2); - assertTrue (pool.dead() == 0); - assertTrue (pool.allocated() == pool.used() + pool.idle()); - - Session s6(pool.get()); - - assertTrue (pool.capacity() == 4); - assertTrue (pool.allocated() == 3); - assertTrue (pool.idle() == 0); - assertTrue (pool.connTimeout() == 10); - assertTrue (pool.available() == 1); - assertTrue (pool.dead() == 0); - assertTrue (pool.allocated() == pool.used() + pool.idle()); - - s6.close(); - assertTrue (pool.capacity() == 4); - assertTrue (pool.allocated() == 3); - assertTrue (pool.idle() == 1); - assertTrue (pool.connTimeout() == 10); - assertTrue (pool.available() == 2); - assertTrue (pool.dead() == 0); - assertTrue (pool.allocated() == pool.used() + pool.idle()); - - assertTrue (pool.isActive()); - pool.shutdown(); - assertTrue (!pool.isActive()); - try - { - Session s7(pool.get()); - fail("pool shut down - must throw"); - } - catch (InvalidAccessException&) { } - - assertTrue (pool.capacity() == 4); - assertTrue (pool.allocated() == 0); - assertTrue (pool.idle() == 0); - assertTrue (pool.connTimeout() == 10); - assertTrue (pool.available() == 0); - assertTrue (pool.dead() == 0); - assertTrue (pool.allocated() == 0); - assertTrue (pool.used() == 0); - assertTrue (pool.idle() == 0); - } -} - - -void SQLExecutor::zeroRows() -{ - Statement stmt = (session() << "SELECT * FROM Person WHERE 0 = 1"); - assertTrue (0 == stmt.execute()); -} - - -void SQLExecutor::simpleAccess() -{ - std::string funct = "simpleAccess()"; - std::string lastName = "lastName"; - std::string firstName("firstName"); - std::string address("Address"); - int age = 133132; - int count = 0; - std::string result; - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastName), use(firstName), use(address), use(age), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 1); - - try { session() << "SELECT LastName FROM Person", into(result), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (lastName == result); - - try { session() << "SELECT Age FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == age); -} - - -void SQLExecutor::complexType() -{ - std::string funct = "complexType()"; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(p1), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(p2), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - - Person c1; - try { session() << "SELECT * FROM Person WHERE LastName = 'LN1'", into(c1), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (c1 == p1); -} - - -void SQLExecutor::complexTypeTuple() -{ - std::string funct = "complexTypeTuple()"; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - - Tuple t(p1,p2); - try { *_pSession << "INSERT INTO Person VALUES(?,?,?,?,?,?,?,?)", use(t), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - Tuple ret; - assertTrue (ret != t); - try { *_pSession << "SELECT * FROM Person", into(ret), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (ret == t); -} - - -void SQLExecutor::simpleAccessVector() -{ - std::string funct = "simpleAccessVector()"; - std::vector lastNames; - std::vector firstNames; - std::vector addresses; - std::vector ages; - std::string tableName("Person"); - lastNames.push_back("LN1"); - lastNames.push_back("LN2"); - firstNames.push_back("FN1"); - firstNames.push_back("FN2"); - addresses.push_back("ADDR1"); - addresses.push_back("ADDR2"); - ages.push_back(1); - ages.push_back(2); - int count = 0; - std::string result; - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - - std::vector lastNamesR; - std::vector firstNamesR; - std::vector addressesR; - std::vector agesR; - try { session() << "SELECT * FROM Person", into(lastNamesR), into(firstNamesR), into(addressesR), into(agesR), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (ages == agesR); - assertTrue (lastNames == lastNamesR); - assertTrue (firstNames == firstNamesR); - assertTrue (addresses == addressesR); -} - - -void SQLExecutor::complexTypeVector() -{ - std::string funct = "complexTypeVector()"; - std::vector people; - people.push_back(Person("LN1", "FN1", "ADDR1", 1)); - people.push_back(Person("LN2", "FN2", "ADDR2", 2)); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - - std::vector result; - try { session() << "SELECT * FROM Person", into(result), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (result == people); -} - - -void SQLExecutor::sharedPtrComplexTypeVector() -{ - std::string funct = "sharedPtrComplexTypeVector()"; - std::vector > people; - people.push_back(new Person("LN1", "FN1", "ADDR1", 1)); - people.push_back(new Person("LN2", "FN2", "ADDR2", 2)); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - - std::vector result; - try { session() << "SELECT * FROM Person", into(result), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (2 == result.size()); - assertTrue (result[0] == *people[0]); - assertTrue (result[1] == *people[1]); -} - - -void SQLExecutor::autoPtrComplexTypeVector() -{ - std::string funct = "sharedPtrComplexTypeVector()"; - std::vector > people; - people.push_back(new RefCountedPerson("LN1", "FN1", "ADDR1", 1)); - people.push_back(new RefCountedPerson("LN2", "FN2", "ADDR2", 2)); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - - std::vector result; - try { session() << "SELECT * FROM Person", into(result), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (2 == result.size()); - assertTrue (result[0].address == people[0]->address); - assertTrue (result[0].age == people[0]->age); - assertTrue (result[0].firstName == people[0]->firstName); - assertTrue (result[0].lastName == people[0]->lastName); - assertTrue (result[1].address == people[1]->address); - assertTrue (result[1].age == people[1]->age); - assertTrue (result[1].firstName == people[1]->firstName); - assertTrue (result[1].lastName == people[1]->lastName); -} - - -void SQLExecutor::insertVector() -{ - std::string funct = "insertVector()"; - std::vector str; - str.push_back("s1"); - str.push_back("s2"); - str.push_back("s3"); - str.push_back("s3"); - int count = 100; - - { - Statement stmt((session() << "INSERT INTO Strings VALUES (?)", use(str))); - try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 0); - - try { stmt.execute(); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 4); - } - count = 0; - try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 4); -} - - -void SQLExecutor::insertEmptyVector() -{ - std::string funct = "insertEmptyVector()"; - std::vector str; - - try - { - session() << "INSERT INTO Strings VALUES (?)", use(str), now; - fail("empty collections should not work"); - } - catch (Poco::Exception&) - { - } -} - - -void SQLExecutor::simpleAccessList() -{ - std::string funct = "simpleAccessList()"; - std::list lastNames; - std::list firstNames; - std::list addresses; - std::list ages; - std::string tableName("Person"); - lastNames.push_back("LN1"); - lastNames.push_back("LN2"); - firstNames.push_back("FN1"); - firstNames.push_back("FN2"); - addresses.push_back("ADDR1"); - addresses.push_back("ADDR2"); - ages.push_back(1); - ages.push_back(2); - int count = 0; - std::string result; - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - - std::list lastNamesR; - std::list firstNamesR; - std::list addressesR; - std::list agesR; - try { session() << "SELECT * FROM Person", into(lastNamesR), into(firstNamesR), into(addressesR), into(agesR), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (ages == agesR); - assertTrue (lastNames == lastNamesR); - assertTrue (firstNames == firstNamesR); - assertTrue (addresses == addressesR); -} - - -void SQLExecutor::complexTypeList() -{ - std::string funct = "complexTypeList()"; - std::list people; - people.push_back(Person("LN1", "FN1", "ADDR1", 1)); - people.push_back(Person("LN2", "FN2", "ADDR2", 2)); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - - std::list result; - try { session() << "SELECT * FROM Person", into(result), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (result == people); -} - - -void SQLExecutor::insertList() -{ - std::string funct = "insertList()"; - std::list str; - str.push_back("s1"); - str.push_back("s2"); - str.push_back("s3"); - str.push_back("s3"); - int count = 100; - - { - Statement stmt((session() << "INSERT INTO Strings VALUES (?)", use(str))); - try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 0); - - try { stmt.execute(); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 4); - } - count = 0; - try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 4); -} - - -void SQLExecutor::insertEmptyList() -{ - std::string funct = "insertEmptyList()"; - std::list str; - - try - { - session() << "INSERT INTO Strings VALUES (?)", use(str), now; - fail("empty collections should not work"); - } - catch (Poco::Exception&) - { - } -} - - -void SQLExecutor::simpleAccessDeque() -{ - std::string funct = "simpleAccessDeque()"; - std::deque lastNames; - std::deque firstNames; - std::deque addresses; - std::deque ages; - std::string tableName("Person"); - lastNames.push_back("LN1"); - lastNames.push_back("LN2"); - firstNames.push_back("FN1"); - firstNames.push_back("FN2"); - addresses.push_back("ADDR1"); - addresses.push_back("ADDR2"); - ages.push_back(1); - ages.push_back(2); - int count = 0; - std::string result; - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - - std::deque lastNamesR; - std::deque firstNamesR; - std::deque addressesR; - std::deque agesR; - try { session() << "SELECT * FROM Person", into(lastNamesR), into(firstNamesR), into(addressesR), into(agesR), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (ages == agesR); - assertTrue (lastNames == lastNamesR); - assertTrue (firstNames == firstNamesR); - assertTrue (addresses == addressesR); -} - - -void SQLExecutor::complexTypeDeque() -{ - std::string funct = "complexTypeDeque()"; - std::deque people; - people.push_back(Person("LN1", "FN1", "ADDR1", 1)); - people.push_back(Person("LN2", "FN2", "ADDR2", 2)); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - - std::deque result; - try { session() << "SELECT * FROM Person", into(result), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (result == people); -} - - -void SQLExecutor::insertDeque() -{ - std::string funct = "insertDeque()"; - std::deque str; - str.push_back("s1"); - str.push_back("s2"); - str.push_back("s3"); - str.push_back("s3"); - int count = 100; - - { - Statement stmt((session() << "INSERT INTO Strings VALUES (?)", use(str))); - try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 0); - - try { stmt.execute(); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 4); - } - count = 0; - try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 4); -} - - -void SQLExecutor::insertEmptyDeque() -{ - std::string funct = "insertEmptyDeque()"; - std::deque str; - - try - { - session() << "INSERT INTO Strings VALUES (?)", use(str), now; - fail("empty collections should not work"); - } - catch (Poco::Exception&) - { - } -} - - -void SQLExecutor::affectedRows(const std::string& whereClause) -{ - std::vector str; - str.push_back("s1"); - str.push_back("s2"); - str.push_back("s3"); - str.push_back("s3"); - int count = 100; - - Statement stmt1((session() << "INSERT INTO Strings VALUES(?)", use(str))); - session() << "SELECT COUNT(*) FROM Strings", into(count), now; - assertTrue (count == 0); - assertTrue (4 == stmt1.execute()); - session() << "SELECT COUNT(*) FROM Strings", into(count), now; - assertTrue (count == 4); - - Statement stmt2(session() << "UPDATE Strings SET str = 's4' WHERE str = 's3'"); - assertTrue (2 == stmt2.execute()); - - Statement stmt3(session() << "DELETE FROM Strings WHERE str = 's1'"); - assertTrue (1 == stmt3.execute()); - - std::string sql; - format(sql, "DELETE FROM Strings %s", whereClause); - Statement stmt4(session() << sql); - assertTrue (3 == stmt4.execute()); -} - - -void SQLExecutor::insertSingleBulk() -{ - std::string funct = "insertSingleBulk()"; - int x = 0; - Statement stmt((session() << "INSERT INTO Strings VALUES (?)", use(x))); - - for (x = 0; x < 100; ++x) - { - std::size_t i = stmt.execute(); - assertTrue (1 == i); - } - int count = 0; - try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 100); - - try { session() << "SELECT SUM(str) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == ((0+99)*100/2)); -} - - -void SQLExecutor::floats() -{ - std::string funct = "floats()"; - float data = 1.5f; - float ret = 0.0f; - - try { session() << "INSERT INTO Strings VALUES (?)", use(data), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - int count = 0; - try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 1); - - try { session() << "SELECT str FROM Strings", into(ret), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (ret == data); -} - - -void SQLExecutor::doubles() -{ - std::string funct = "floats()"; - double data = 1.5; - double ret = 0.0; - - try { session() << "INSERT INTO Strings VALUES (?)", use(data), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - int count = 0; - try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 1); - - try { session() << "SELECT str FROM Strings", into(ret), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (ret == data); -} - - -void SQLExecutor::uuids() -{ - std::string funct = "uuids()"; - Poco::UUID data("49cf6461-9b62-4163-9659-5472ef73153d"); - Poco::UUID ret; - - try { session() << "INSERT INTO Strings VALUES (?)", use(data), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - int count = 0; - try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 1); - - try { session() << "SELECT str FROM Strings", into(ret), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (ret == data); -} - - -void SQLExecutor::insertSingleBulkVec() -{ - std::string funct = "insertSingleBulkVec()"; - std::vector data; - - for (int x = 0; x < 100; ++x) - data.push_back(x); - - Statement stmt((session() << "INSERT INTO Strings VALUES (?)", use(data))); - stmt.execute(); - - int count = 0; - try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - assertTrue (count == 100); - try { session() << "SELECT SUM(str) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == ((0+99)*100/2)); -} - - -void SQLExecutor::limits() -{ - std::string funct = "limit()"; - std::vector data; - for (int x = 0; x < 100; ++x) - { - data.push_back(x); - } - - try { session() << "INSERT INTO Strings VALUES (?)", use(data), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - std::vector retData; - try { session() << "SELECT * FROM Strings", into(retData), limit(50), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (retData.size() == 50); - for (int x = 0; x < 50; ++x) - { - assertTrue (data[x] == retData[x]); - } -} - - -void SQLExecutor::limitZero() -{ - std::string funct = "limitZero()"; - std::vector data; - for (int x = 0; x < 100; ++x) - { - data.push_back(x); - } - - try { session() << "INSERT INTO Strings VALUES (?)", use(data), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - std::vector retData; - try { session() << "SELECT * FROM Strings", into(retData), limit(0), now; }// stupid test, but at least we shouldn't crash - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (retData.size() == 0); -} - - -void SQLExecutor::limitOnce() -{ - std::string funct = "limitOnce()"; - std::vector data; - for (int x = 0; x < 101; ++x) - { - data.push_back(x); - } - - try { session() << "INSERT INTO Strings VALUES (?)", use(data), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - std::vector retData; - Statement stmt = (session() << "SELECT * FROM Strings", into(retData), limit(50), now); - assertTrue (!stmt.done()); - assertTrue (retData.size() == 50); - stmt.execute(); - assertTrue (!stmt.done()); - assertTrue (retData.size() == 100); - stmt.execute(); - assertTrue (stmt.done()); - assertTrue (retData.size() == 101); - - for (int x = 0; x < 101; ++x) - { - assertTrue (data[x] == retData[x]); - } -} - - -void SQLExecutor::limitPrepare() -{ - std::string funct = "limitPrepare()"; - std::vector data; - for (int x = 0; x < 100; ++x) - { - data.push_back(x); - } - - try - { - Statement stmt = (session() << "INSERT INTO Strings VALUES (?)", use(data)); - assertTrue (100 == stmt.execute()); - } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - std::vector retData; - Statement stmt = (session() << "SELECT * FROM Strings", into(retData), limit(50)); - assertTrue (retData.size() == 0); - assertTrue (!stmt.done()); - - try { stmt.execute(); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (!stmt.done()); - assertTrue (retData.size() == 50); - - try { stmt.execute(); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (stmt.done()); - assertTrue (retData.size() == 100); - - try { stmt.execute(); }// will restart execution! - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - assertTrue (!stmt.done()); - assertTrue (retData.size() == 150); - for (int x = 0; x < 150; ++x) - { - assertTrue (data[x%100] == retData[x]); - } -} - - -void SQLExecutor::prepare() -{ - std::string funct = "prepare()"; - std::vector data; - for (int x = 0; x < 100; x += 2) - { - data.push_back(x); - } - - { - Statement stmt((session() << "INSERT INTO Strings VALUES (?)", use(data))); - } - - // stmt should not have been executed when destroyed - int count = 100; - try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 0); -} - - -void SQLExecutor::doBulkPerformance(Poco::UInt32 size) -{ - std::string funct = "doBulk()"; - std::vector ints(size, 1); - std::vector strings(size, "abc"); - std::vector floats(size, .5); - std::vector dateTimes(size); - - Stopwatch sw; - try - { - sw.start(); - session() << "INSERT INTO MiscTest (First, Third, Fourth, Fifth) VALUES (?,?,?,?)", - use(strings), - use(ints), - use(floats), - use(dateTimes), now; - sw.stop(); - } catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - double time = sw.elapsed() / 1000.0; - - try { session() << "DELETE FROM MiscTest", now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - try - { - sw.restart(); - session() << "INSERT INTO MiscTest (First, Third, Fourth, Fifth) VALUES (?,?,?,?)", - use(strings, bulk), - use(ints, bulk), - use(floats, bulk), - use(dateTimes, bulk), now; - sw.stop(); - } catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - double bulkTime = sw.elapsed() / 1000.0; - - double speedup; - if (0.0 == bulkTime) - { - if (0.0 == time) speedup = 1.0; - else speedup = time; - } - else - speedup = time / bulkTime; - - std::cout << "INSERT => Size:" << size - << ", Time: " << time - << ", Bulk Time: " << bulkTime - << " [ms], Speedup: " << speedup - << 'x' << std::endl; - - ints.clear(); - strings.clear(); - floats.clear(); - dateTimes.clear(); - - try - { - sw.restart(); - session() << "SELECT First, Third, Fourth, Fifth FROM MiscTest", - into(strings), - into(ints), - into(floats), - into(dateTimes), - now; - sw.stop(); - } catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - time = sw.elapsed() / 1000.0; - - assertTrue (ints.size() == size); - - ints.clear(); - strings.clear(); - floats.clear(); - dateTimes.clear(); - - try - { - sw.restart(); - session() << "SELECT First, Third, Fourth, Fifth FROM MiscTest", - into(strings, bulk(size)), - into(ints, bulk(size)), - into(floats, bulk(size)), - into(dateTimes, bulk(size)), - now; - sw.stop(); - } catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - bulkTime = sw.elapsed() / 1000.0; - - assertTrue (ints.size() == size); - - if (0.0 == bulkTime) - { - if (0.0 == time) speedup = 1.0; - else speedup = time; - } - else - speedup = time / bulkTime; - - std::cout << "SELECT => Size:" << size - << ", Time: " << time - << ", Bulk Time: " << bulkTime - << " [ms], Speedup: " << speedup - << 'x' << std::endl; -} - - -void SQLExecutor::setSimple() -{ - std::string funct = "setSimple()"; - std::set lastNames; - std::set firstNames; - std::set addresses; - std::set ages; - std::string tableName("Person"); - lastNames.insert("LN1"); - lastNames.insert("LN2"); - firstNames.insert("FN1"); - firstNames.insert("FN2"); - addresses.insert("ADDR1"); - addresses.insert("ADDR2"); - ages.insert(1); - ages.insert(2); - int count = 0; - std::string result; - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - - std::set lastNamesR; - std::set firstNamesR; - std::set addressesR; - std::set agesR; - try { session() << "SELECT * FROM Person", into(lastNamesR), into(firstNamesR), into(addressesR), into(agesR), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (ages == agesR); - assertTrue (lastNames == lastNamesR); - assertTrue (firstNames == firstNamesR); - assertTrue (addresses == addressesR); -} - - -void SQLExecutor::setComplex() -{ - std::string funct = "setComplex()"; - std::set people; - people.insert(Person("LN1", "FN1", "ADDR1", 1)); - people.insert(Person("LN2", "FN2", "ADDR2", 2)); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - - std::set result; - try { session() << "SELECT * FROM Person", into(result), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (result == people); -} - - -void SQLExecutor::setComplexUnique() -{ - std::string funct = "setComplexUnique()"; - std::vector people; - Person p1("LN1", "FN1", "ADDR1", 1); - people.push_back(p1); - people.push_back(p1); - people.push_back(p1); - people.push_back(p1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.push_back(p2); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 5); - - std::set result; - try { session() << "SELECT * FROM Person", into(result), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (result.size() == 2); - assertTrue (*result.begin() == p1); - assertTrue (*++result.begin() == p2); -} - -void SQLExecutor::multiSetSimple() -{ - std::string funct = "multiSetSimple()"; - std::multiset lastNames; - std::multiset firstNames; - std::multiset addresses; - std::multiset ages; - std::string tableName("Person"); - lastNames.insert("LN1"); - lastNames.insert("LN2"); - firstNames.insert("FN1"); - firstNames.insert("FN2"); - addresses.insert("ADDR1"); - addresses.insert("ADDR2"); - ages.insert(1); - ages.insert(2); - int count = 0; - std::string result; - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - - std::multiset lastNamesR; - std::multiset firstNamesR; - std::multiset addressesR; - std::multiset agesR; - try { session() << "SELECT * FROM Person", into(lastNamesR), into(firstNamesR), into(addressesR), into(agesR), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (ages.size() == agesR.size()); - assertTrue (lastNames.size() == lastNamesR.size()); - assertTrue (firstNames.size() == firstNamesR.size()); - assertTrue (addresses.size() == addressesR.size()); -} - - -void SQLExecutor::multiSetComplex() -{ - std::string funct = "multiSetComplex()"; - std::multiset people; - Person p1("LN1", "FN1", "ADDR1", 1); - people.insert(p1); - people.insert(p1); - people.insert(p1); - people.insert(p1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(p2); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 5); - - std::multiset result; - try { session() << "SELECT * FROM Person", into(result), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (result.size() == people.size()); -} - - -void SQLExecutor::mapComplex() -{ - std::string funct = "mapComplex()"; - std::map people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN2", p2)); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - - std::map result; - try { session() << "SELECT * FROM Person", into(result), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (result == people); -} - - -void SQLExecutor::mapComplexUnique() -{ - std::string funct = "mapComplexUnique()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN2", p2)); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 5); - - std::map result; - try { session() << "SELECT * FROM Person", into(result), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (result.size() == 2); -} - - -void SQLExecutor::multiMapComplex() -{ - std::string funct = "multiMapComplex()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN2", p2)); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 5); - - std::multimap result; - try { session() << "SELECT * FROM Person", into(result), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (result.size() == people.size()); -} - - -void SQLExecutor::selectIntoSingle() -{ - std::string funct = "selectIntoSingle()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN2", p2)); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - Person result; - try { session() << "SELECT * FROM Person ORDER BY LastName", into(result), limit(1), now; }// will return 1 object into one single result - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (result == p1); -} - - -void SQLExecutor::selectIntoSingleStep() -{ - std::string funct = "selectIntoSingleStep()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN2", p2)); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - Person result; - Statement stmt = (session() << "SELECT * FROM Person", into(result), limit(1)); - stmt.execute(); - assertTrue (result == p1); - assertTrue (!stmt.done()); - stmt.execute(); - assertTrue (result == p2); - assertTrue (stmt.done()); -} - - -void SQLExecutor::selectIntoSingleFail() -{ - std::string funct = "selectIntoSingleFail()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN2", p2)); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), limit(2, true), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - Person result; - try - { - session() << "SELECT * FROM Person", into(result), limit(1, true), now; // will fail now - fail("hardLimit is set: must fail"); - } - catch(Poco::Data::LimitException&) - { - } -} - - -void SQLExecutor::lowerLimitOk() -{ - std::string funct = "lowerLimitOk()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p2)); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - Person result; - try - { - session() << "SELECT * FROM Person", into(result), lowerLimit(2), now; // will return 2 objects into one single result but only room for one! - fail("Not enough space for results"); - } - catch(Poco::Exception&) - { - } -} - - -void SQLExecutor::singleSelect() -{ - std::string funct = "singleSelect()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p2)); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - Person result; - Statement stmt = (session() << "SELECT * FROM Person", into(result), limit(1)); - stmt.execute(); - assertTrue (result == p1); - assertTrue (!stmt.done()); - stmt.execute(); - assertTrue (result == p2); - assertTrue (stmt.done()); -} - - -void SQLExecutor::lowerLimitFail() -{ - std::string funct = "lowerLimitFail()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p2)); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - Person result; - try - { - session() << "SELECT * FROM Person", into(result), lowerLimit(3), now; // will fail - fail("should fail. not enough data"); - } - catch(Poco::Exception&) - { - } -} - - -void SQLExecutor::combinedLimits() -{ - std::string funct = "combinedLimits()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p2)); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - std::vector result; - try { session() << "SELECT * FROM Person", into(result), lowerLimit(2), upperLimit(2), now; }// will return 2 objects - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (result.size() == 2); - assertTrue (result[0] == p1); - assertTrue (result[1] == p2); -} - - - -void SQLExecutor::ranges() -{ - std::string funct = "range()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p2)); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - std::vector result; - try { session() << "SELECT * FROM Person", into(result), range(2, 2), now; }// will return 2 objects - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (result.size() == 2); - assertTrue (result[0] == p1); - assertTrue (result[1] == p2); -} - - -void SQLExecutor::combinedIllegalLimits() -{ - std::string funct = "combinedIllegalLimits()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p2)); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - Person result; - try - { - session() << "SELECT * FROM Person", into(result), lowerLimit(3), upperLimit(2), now; - fail("lower > upper is not allowed"); - } - catch(LimitException&) - { - } -} - - -void SQLExecutor::illegalRange() -{ - std::string funct = "illegalRange()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p2)); - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 2); - Person result; - try - { - session() << "SELECT * FROM Person", into(result), range(3, 2), now; - fail("lower > upper is not allowed"); - } - catch(LimitException&) - { - } -} - - -void SQLExecutor::emptyDB() -{ - std::string funct = "emptyDB()"; - int count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 0); - - Person result; - Statement stmt = (session() << "SELECT * FROM Person", into(result), limit(1)); - stmt.execute(); - assertTrue (result.firstName.empty()); - assertTrue (stmt.done()); -} - - -void SQLExecutor::blob(int bigSize, const std::string& blobPlaceholder) -{ - std::string funct = "blob()"; - std::string lastName("lastname"); - std::string firstName("firstname"); - std::string address("Address"); - - CLOB img("0123456789", 10); - int count = 0; - try { session() << format("INSERT INTO Person VALUES (?,?,?,%s)", blobPlaceholder), - use(lastName), use(firstName), use(address), use(img), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 1); - - CLOB res; - assertTrue (res.size() == 0); - try { session() << "SELECT Image FROM Person", into(res), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (res == img); - - CLOB big; - std::vector v(bigSize, 'x'); - big.assignRaw(&v[0], v.size()); - - assertTrue (big.size() == bigSize); - - try { session() << "DELETE FROM Person", now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - try { session() << format("INSERT INTO Person VALUES (?,?,?,%s)", blobPlaceholder), - use(lastName), use(firstName), use(address), use(big), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - try { session() << "SELECT Image FROM Person", into(res), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (res == big); -} - - -void SQLExecutor::blobStmt() -{ - std::string funct = "blobStmt()"; - std::string lastName("lastname"); - std::string firstName("firstname"); - std::string address("Address"); - CLOB blob("0123456789", 10); - - int count = 0; - Statement ins = (session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastName), use(firstName), use(address), use(blob)); - ins.execute(); - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 1); - - CLOB res; - poco_assert (res.size() == 0); - Statement stmt = (session() << "SELECT Image FROM Person", into(res)); - try { stmt.execute(); } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - poco_assert (res == blob); -} - - -void SQLExecutor::recordSet() -{ - std::string funct = "dateTime()"; - - std::string lastName("lastname"); - std::string firstName("firstname"); - std::string address("Address"); - DateTime born(1965, 6, 18, 5, 35, 1); - DateTime born2(1991, 6, 18, 14, 35, 1); - - try - { - { - Statement stmt = (session() << "SELECT COUNT(*) AS row_count FROM Person", now); - RecordSet rset(stmt); - assertTrue (rset.rowCount() == 1); - assertTrue (rset["row_count"].convert() == 0); - } - - { - Statement stmt = (session() << - "INSERT INTO Person VALUES (?,?,?,?)", - use(lastName), use(firstName), use(address), use(born), now); - RecordSet rset(stmt); - assertTrue (rset.rowCount() == 0); - assertTrue (rset.affectedRowCount() == 1); - } - - { - Statement stmt = (session() << "SELECT COUNT(*) AS row_count FROM Person", now); - RecordSet rset(stmt); - assertTrue (rset.rowCount() == 1); - assertTrue (rset["row_count"].convert() == 1); - } - - { - Statement stmt = (session() << "SELECT Born FROM Person", now); - RecordSet rset(stmt); - assertTrue (rset.rowCount() == 1); - assertTrue (rset["Born"].convert() == born); - } - - { - Statement stmt = (session() << - "DELETE FROM Person WHERE born = ?", use(born), now); - RecordSet rset(stmt); - assertTrue (rset.rowCount() == 0); - assertTrue (rset.affectedRowCount() == 1); - } - - { - Statement stmt = (session() << - "INSERT INTO Person VALUES (?,?,?,?)", - use(lastName), use(firstName), use(address), use(born), now); - RecordSet rset(stmt); - assertTrue (rset.rowCount() == 0); - assertTrue (rset.affectedRowCount() == 1); - } - - { - Statement stmt = (session() << - "INSERT INTO Person VALUES (?,?,?,?)", - use(lastName), use(firstName), use(address), use(born2), now); - RecordSet rset(stmt); - assertTrue (rset.rowCount() == 0); - assertTrue (rset.affectedRowCount() == 1); - } - - { - Statement stmt = (session() << "SELECT COUNT(*) AS row_count FROM Person", now); - RecordSet rset(stmt); - assertTrue (rset.rowCount() == 1); - assertTrue (rset["row_count"].convert() == 2); - } - - { - Statement stmt = (session() << "SELECT Born FROM Person ORDER BY Born DESC", now); - RecordSet rset(stmt); - assertTrue (rset.rowCount() == 2); - assertTrue (rset["Born"].convert() == born2); - rset.moveNext(); - assertTrue (rset["Born"].convert() == born); - rset.moveFirst(); - assertTrue (rset["Born"].convert() == born2); - rset.moveLast(); - assertTrue (rset["Born"].convert() == born); - } - - { - Statement stmt = (session() << "DELETE FROM Person", now); - RecordSet rset(stmt); - assertTrue (rset.rowCount() == 0); - assertTrue (rset.affectedRowCount() == 2); - } - } - catch (ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail(funct); } - catch (StatementException& se){ std::cout << se.toString() << std::endl; fail(funct); } -} - - -void SQLExecutor::dateTime() -{ - std::string funct = "dateTime()"; - std::string lastName("lastname"); - std::string firstName("firstname"); - std::string address("Address"); - - DateTime born(1965, 6, 18, 5, 35, 1); - int count = 0; - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastName), use(firstName), use(address), use(born), now; } - catch (ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail(funct); } - catch (StatementException& se){ std::cout << se.toString() << std::endl; fail(funct); } - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch (ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail(funct); } - catch (StatementException& se){ std::cout << se.toString() << std::endl; fail(funct); } - assertTrue (count == 1); - - DateTime res; - try { session() << "SELECT Born FROM Person", into(res), now; } - catch (ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail(funct); } - catch (StatementException& se){ std::cout << se.toString() << std::endl; fail(funct); } - assertTrue (res == born); - - Statement stmt = (session() << "SELECT Born FROM Person", now); - RecordSet rset(stmt); - - res = rset["Born"].convert(); - assertTrue (res == born); -} - - -void SQLExecutor::date() -{ - std::string funct = "date()"; - std::string lastName("lastname"); - std::string firstName("firstname"); - std::string address("Address"); - - Date bornDate(1965, 6, 18); - int count = 0; - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", - use(lastName), - use(firstName), - use(address), - use(bornDate), - now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 1); - - Date d; - Time t; - try { session() << "SELECT BornDate FROM Person", into(d), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (d == bornDate); - - Statement stmt = (session() << "SELECT BornDate FROM Person", now); - RecordSet rset(stmt); - - DateTime dt1 = rset["BornDate"].convert(); - - Date d2(dt1); - assertTrue (d2 == bornDate); -} - - -void SQLExecutor::time() -{ - std::string funct = "time()"; - std::string lastName("lastname"); - std::string firstName("firstname"); - std::string address("Address"); - - Time bornTime (5, 35, 1); - int count = 0; - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", - use(lastName), - use(firstName), - use(address), - use(bornTime), - now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 1); - - Date d; - Time t; - try { session() << "SELECT BornTime FROM Person", into(t), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (t == bornTime); - - Statement stmt = (session() << "SELECT BornTime FROM Person", now); - RecordSet rset(stmt); - - DateTime dt2 = rset["BornTime"].convert(); - Time t2(dt2); - assertTrue (t2 == bornTime); -} - - -void SQLExecutor::tuples() -{ - typedef Tuple TupleType; - std::string funct = "tuples()"; - TupleType t(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19); - - try { session() << "INSERT INTO Tuples VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", use(t), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - TupleType ret(-10,-11,-12,-13,-14,-15,-16,-17,-18,-19); - assertTrue (ret != t); - try { session() << "SELECT * FROM Tuples", into(ret), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (ret == t); -} - -void SQLExecutor::tupleVector() -{ - typedef Tuple TupleType; - std::string funct = "tupleVector()"; - TupleType t(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19); - Tuple - t10(10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29); - TupleType t100(100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119); - std::vector v; - v.push_back(t); - v.push_back(t10); - v.push_back(t100); - - try { session() << "INSERT INTO Tuples VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", use(v), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - int count = 0; - try { session() << "SELECT COUNT(*) FROM Tuples", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (v.size() == count); - - std::vector > ret; - try { session() << "SELECT * FROM Tuples", into(ret), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (ret == v); -} - - -void SQLExecutor::internalExtraction() -{ - std::string funct = "internalExtraction()"; - std::vector > v; - v.push_back(Tuple(1, 1.5f, "3")); - v.push_back(Tuple(2, 2.5f, "4")); - v.push_back(Tuple(3, 3.5f, "5")); - v.push_back(Tuple(4, 4.5f, "6")); - - try { session() << "INSERT INTO Vectors VALUES (?,?,?)", use(v), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - try - { - Statement stmt = (session() << "SELECT * FROM Vectors", now); - RecordSet rset(stmt); - - assertTrue (3 == rset.columnCount()); - assertTrue (4 == rset.rowCount()); - - int curVal = 3; - do - { - assertTrue (rset["str0"] == curVal); - ++curVal; - } while (rset.moveNext()); - - rset.moveFirst(); - assertTrue (rset["str0"] == "3"); - rset.moveLast(); - assertTrue (rset["str0"] == "6"); - - RecordSet rset2(rset); - assertTrue (3 == rset2.columnCount()); - assertTrue (4 == rset2.rowCount()); - - int i = rset.value(0,0); - assertTrue (1 == i); - - std::string s = rset.value(0,0).convert(); - assertTrue ("1" == s); - - int a = rset.value(0,2); - assertTrue (3 == a); - - try - { - double d = rset.value(1,1); - assertTrue (2.5 == d); - } - catch (BadCastException&) - { - float f = rset.value(1,1); - assertTrue (2.5 == f); - } - - try - { - s = rset.value(2, 2); - } - catch (BadCastException&) - { - UTF16String us = rset.value(2, 2); - Poco::UnicodeConverter::convert(us, s); - } - assertTrue ("5" == s); - - i = rset.value("str0", 2); - assertTrue (5 == i); - - const Column >& col = rset.column >(0); - Column >::Iterator it = col.begin(); - Column >::Iterator end = col.end(); - for (int i = 1; it != end; ++it, ++i) - assertTrue (*it == i); - - rset = (session() << "SELECT COUNT(*) AS cnt FROM Vectors", now); - - //various results for COUNT(*) are received from different drivers - try - { - //this is what most drivers will return - int i = rset.value(0,0); - assertTrue (4 == i); - } - catch(BadCastException&) - { - try - { - //this is for Oracle - double i = rset.value(0,0); - assertTrue (4 == int(i)); - } - catch(BadCastException&) - { - //this is for PostgreSQL - Poco::Int64 big = rset.value(0,0); - assertTrue (4 == big); - } - } - - s = rset.value("cnt", 0).convert(); - assertTrue ("4" == s); - - try { rset.column >(100); fail ("must fail"); } - catch (RangeException&) { } - - try { rset.value(0,0); fail ("must fail"); } - catch (BadCastException&) { } - - stmt = (session() << "DELETE FROM Vectors", now); - rset = stmt; - - try { rset.column >(0); fail ("must fail"); } - catch (RangeException&) { } - } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } -} - - -void SQLExecutor::filter(const std::string& query, const std::string& intFldName) -{ - std::string funct = "filter()"; - std::vector > v; - v.push_back(Tuple(1, 1.5f, "3")); - v.push_back(Tuple(2, 2.5f, "4")); - v.push_back(Tuple(3, 3.5f, "5")); - v.push_back(Tuple(4, 4.5f, "6")); - - try { session() << "INSERT INTO Vectors VALUES (?,?,?)", use(v), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - try - { - Statement stmt = (session() << query, now); - RecordSet rset(stmt); - assertTrue (rset.totalRowCount() == 4); - RowFilter::Ptr pRF = new RowFilter(&rset); - assertTrue (pRF->isEmpty()); - pRF->add(intFldName, RowFilter::VALUE_EQUAL, 1); - assertTrue (!pRF->isEmpty()); - - Var da; - try - { - da = rset.value(0, 1); - fail ("must fail"); - } catch (InvalidAccessException&) - { - da = rset.value(0, 1, false); - assertTrue (2 == da); - da = rset.value(0, 0); - assertTrue (1 == da); - } - - assertTrue (rset.rowCount() == 1); - assertTrue (rset.moveFirst()); - assertTrue (1 == rset[intFldName]); - assertTrue (!rset.moveNext()); - pRF->add("flt0", RowFilter::VALUE_LESS_THAN_OR_EQUAL, 3.5f); - assertTrue (rset.rowCount() == 3); - assertTrue (rset.moveNext()); - assertTrue (2.5 == rset["flt0"]); - assertTrue (rset.moveNext()); - assertTrue (3.5 == rset["flt0"]); - assertTrue (!rset.moveNext()); - pRF->add("str0", RowFilter::VALUE_EQUAL, 6); - assertTrue (rset.rowCount() == 4); - assertTrue (rset.moveLast()); - assertTrue ("6" == rset["str0"]); - pRF->remove("flt0"); - assertTrue (rset.rowCount() == 2); - assertTrue (rset.moveFirst()); - assertTrue ("3" == rset["str0"]); - assertTrue (rset.moveNext()); - assertTrue ("6" == rset["str0"]); - pRF->remove(intFldName); - pRF->remove("str0"); - assertTrue (pRF->isEmpty()); - pRF->add("str0", "!=", 3); - assertTrue (rset.rowCount() == 3); - - RowFilter::Ptr pRF1 = new RowFilter(pRF, RowFilter::OP_AND); - pRF1->add(intFldName, "==", 2); - assertTrue (rset.rowCount() == 1); - pRF1->add(intFldName, "<", 2); - assertTrue (rset.rowCount() == 1); - pRF1->add(intFldName, ">", 3); - assertTrue (rset.rowCount() == 2); - pRF->removeFilter(pRF1); - pRF->remove("str0"); - assertTrue (pRF->isEmpty()); - assertTrue (rset.rowCount() == 4); - } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } -} - - -void SQLExecutor::internalBulkExtraction() -{ - std::string funct = "internalBulkExtraction()"; - int size = 100; - std::vector lastName(size); - std::vector firstName(size); - std::vector address(size); - std::vector age(size); - - for (int i = 0; i < size; ++i) - { - lastName[i] = "LN" + NumberFormatter::format(i); - firstName[i] = "FN" + NumberFormatter::format(i); - address[i] = "Addr" + NumberFormatter::format(i); - age[i] = i; - } - - try - { - session() << "INSERT INTO Person VALUES (?,?,?,?)", - use(lastName, bulk), - use(firstName, bulk), - use(address, bulk), - use(age, bulk), - now; - } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - try - { - Statement stmt = (session() << "SELECT * FROM Person", bulk(size), now); - RecordSet rset(stmt); - assertTrue (size == rset.rowCount()); - assertTrue ("LN0" == rset["LastName"]); - assertTrue (0 == rset["Age"]); - rset.moveNext(); - assertTrue ("LN1" == rset["LastName"]); - assertTrue (1 == rset["Age"]); - rset.moveLast(); - assertTrue (std::string("LN") + NumberFormatter::format(size - 1) == rset["LastName"]); - assertTrue (size - 1 == rset["Age"]); - } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - try - { - Statement stmt = (session() << "SELECT * FROM Person", limit(size), bulk, now); - RecordSet rset(stmt); - assertTrue (size == rset.rowCount()); - assertTrue ("LN0" == rset["LastName"]); - assertTrue (0 == rset["Age"]); - rset.moveLast(); - assertTrue (std::string("LN") + NumberFormatter::format(size - 1) == rset["LastName"]); - assertTrue (size - 1 == rset["Age"]); - } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } -} - - -void SQLExecutor::internalBulkExtractionUTF16() -{ - std::string funct = "internalBulkExtraction()"; - int size = 100; - std::vector lastName(size); - std::vector firstName(size); - std::vector address(size); - std::vector age(size); - - for (int i = 0; i < size; ++i) - { - lastName[i] = Poco::UnicodeConverter::to("LN" + NumberFormatter::format(i)); - firstName[i] = Poco::UnicodeConverter::to("FN" + NumberFormatter::format(i)); - address[i] = Poco::UnicodeConverter::to("Addr" + NumberFormatter::format(i)); - age[i] = i; - } - - try - { - session() << "INSERT INTO Person VALUES (?,?,?,?)", - use(lastName, bulk), - use(firstName, bulk), - use(address, bulk), - use(age, bulk), - now; - } - catch (ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail(funct); } - catch (StatementException& se){ std::cout << se.toString() << std::endl; fail(funct); } - - try - { - Statement stmt = (session() << "SELECT * FROM Person", bulk(size), now); - RecordSet rset(stmt); - assertTrue (size == rset.rowCount()); - assertTrue (Poco::UnicodeConverter::to("LN0") == rset["LastName"]); - assertTrue (0 == rset["Age"]); - rset.moveNext(); - assertTrue (Poco::UnicodeConverter::to("LN1") == rset["LastName"]); - assertTrue (1 == rset["Age"]); - rset.moveLast(); - assertTrue (std::string("LN") + NumberFormatter::format(size - 1) == rset["LastName"]); - assertTrue (size - 1 == rset["Age"]); - } - catch (ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail(funct); } - catch (StatementException& se){ std::cout << se.toString() << std::endl; fail(funct); } - - try - { - Statement stmt = (session() << "SELECT * FROM Person", limit(size), bulk, now); - RecordSet rset(stmt); - assertTrue (size == rset.rowCount()); - assertTrue ("LN0" == rset["LastName"]); - assertTrue (0 == rset["Age"]); - rset.moveLast(); - assertTrue (std::string("LN") + NumberFormatter::format(size - 1) == rset["LastName"]); - assertTrue (size - 1 == rset["Age"]); - } - catch (ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail(funct); } - catch (StatementException& se){ std::cout << se.toString() << std::endl; fail(funct); } -} - - -void SQLExecutor::internalStorageType() -{ - std::string funct = "internalStorageType()"; - std::vector manips; - manips.push_back(list); - manips.push_back(deque); - manips.push_back(vector); - - std::vector > v; - v.push_back(Tuple(1, 1.5f, "3")); - v.push_back(Tuple(2, 2.5f, "4")); - v.push_back(Tuple(3, 3.5f, "5")); - v.push_back(Tuple(4, 4.5f, "6")); - - try { session() << "INSERT INTO Vectors VALUES (?,?,?)", use(v), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - try - { - std::vector::iterator it = manips.begin(); - std::vector::iterator end = manips.end(); - - for (; it != end; ++it) - { - Statement stmt = (session() << "SELECT * FROM Vectors", *it, now); - RecordSet rset(stmt); - - assertTrue (3 == rset.columnCount()); - assertTrue (4 == rset.rowCount()); - - int curVal = 3; - do - { - assertTrue (rset["str0"] == curVal); - ++curVal; - } while (rset.moveNext()); - - rset.moveFirst(); - assertTrue (rset["str0"] == "3"); - rset.moveLast(); - assertTrue (rset["str0"] == "6"); - - try - { - stmt = (session() << "SELECT * FROM Vectors", now, *it); - fail ("must fail"); - } - catch(InvalidAccessException&){} - - try - { - stmt = (session() << "SELECT * FROM Vectors", into(v), now, *it); - fail ("must fail"); - } - catch(InvalidAccessException&){} - - try - { - stmt = (session() << "SELECT * FROM Vectors", into(v), *it, now); - fail ("must fail"); - } - catch(InvalidAccessException&){} - } - } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } -} - - void SQLExecutor::notNulls(const std::string& sqlState) { try { session() << "INSERT INTO NullTest (i,r,v) VALUES (?,?,?)", use(null), use(null), use(null), now; fail ("must fail"); - }catch (StatementException& se) + } catch (StatementException& se) { //double check if we're failing for the right reason //default sqlState value is "23502"; some drivers report "HY???" codes @@ -3616,318 +1046,6 @@ void SQLExecutor::notNulls(const std::string& sqlState) } -void SQLExecutor::nulls() -{ - std::string funct = "nulls()"; - - try { session() << "INSERT INTO NullTest (i,r,v) VALUES (?,?,?)", use(null), use(null), use(null), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - RecordSet rs(session(), "SELECT * FROM NullTest"); - assertTrue (1 == rs.rowCount()); - rs.moveFirst(); - assertTrue (rs.isNull("i")); - assertTrue (rs["i"] != 0); - assertTrue (rs.isNull("r")); - assertTrue (rs.isNull("v")); - assertTrue (rs["v"] != ""); - assertTrue (rs.nvl("i") == 0); - assertTrue (rs.nvl("i", -1) == -1); - assertTrue (rs.nvl("r") == double()); - assertTrue (rs.nvl("r", -1.5) == -1.5); - assertTrue (rs.nvl("v") == ""); - assertTrue (rs.nvl("v", "123") == "123"); - try { session() << "DELETE FROM NullTest", now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - int i = 1; - double f = 1.5; - std::string s = "123"; - - try { session() << "INSERT INTO NullTest (i, r, v) VALUES (?,?,?)", use(i), use(f), use(s), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - rs = (session() << "SELECT * FROM NullTest", now); - assertTrue (1 == rs.rowCount()); - rs.moveFirst(); - assertTrue (!rs.isNull("i")); - assertTrue (rs["i"] == 1); - assertTrue (!rs.isNull("v")); - assertTrue (!rs.isNull("r")); - assertTrue (rs["v"] == "123"); - assertTrue (rs.nvl("i") == 1); - assertTrue (rs.nvl("i", -1) == 1); - assertTrue (rs.nvl("r") == 1.5); - assertTrue (rs.nvl("r", -1.5) == 1.5); - assertTrue (rs.nvl("v") == "123"); - assertTrue (rs.nvl("v", "456") == "123"); - try { session() << "UPDATE NullTest SET v = ? WHERE i = ?", use(null), use(i), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - i = 2; - f = 3.4; - try { session() << "INSERT INTO NullTest (i, r, v) VALUES (?,?,?)", use(i), use(null), use(null), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - rs = (session() << "SELECT i, r, v FROM NullTest ORDER BY i ASC", now); - assertTrue (2 == rs.rowCount()); - rs.moveFirst(); - assertTrue (!rs.isNull("i")); - assertTrue (rs["i"] == 1); - assertTrue (!rs.isNull("r")); - assertTrue (rs.isNull("v")); - assertTrue (rs["v"] != ""); - - assertTrue (rs.moveNext()); - assertTrue (!rs.isNull("i")); - assertTrue (rs["i"] == 2); - assertTrue (rs.isNull("r")); - assertTrue (rs.isNull("v")); - assertTrue (rs["v"] != ""); - - try { session() << "DELETE FROM NullTest", now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - try { session() << "INSERT INTO NullTest (v) VALUES (?)", bind(""), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - bool esin = session().getFeature("emptyStringIsNull"); - session().setFeature("emptyStringIsNull", true); - - try - { - session().setFeature("forceEmptyString", true); - fail ("must fail"); - } catch (InvalidAccessException&) { } - - bool fes = session().getFeature("forceEmptyString"); - session().setFeature("forceEmptyString", false); - - RecordSet rs1(session(), "SELECT v FROM NullTest"); - assertTrue (1 == rs1.rowCount()); - rs1.moveFirst(); - assertTrue (rs1.isNull("v")); - assertTrue (!(rs["v"] == "")); - - session().setFeature("emptyStringIsNull", false); - session().setFeature("forceEmptyString", true); - RecordSet rs2(session(), "SELECT v FROM NullTest"); - assertTrue (1 == rs2.rowCount()); - rs2.moveFirst(); - assertTrue (!rs2.isNull("v")); - assertTrue ((rs2["v"] == "")); - - try - { - session().setFeature("emptyStringIsNull", true); - fail ("must fail"); - } catch (InvalidAccessException&) { } - - session().setFeature("emptyStringIsNull", esin); - session().setFeature("forceEmptyString", fes); -} - - -void SQLExecutor::rowIterator() -{ - std::string funct = "rowIterator()"; - std::vector > v; - v.push_back(Tuple(1, 1.5f, "3")); - v.push_back(Tuple(2, 2.5f, "4")); - v.push_back(Tuple(3, 3.5f, "5")); - v.push_back(Tuple(4, 4.5f, "6")); - - try { session() << "DELETE FROM Vectors", now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - RecordSet rset0(session(), "SELECT * FROM Vectors"); - assertTrue (rset0.begin() == rset0.end()); - - try { session() << "INSERT INTO Vectors VALUES (?,?,?)", use(v), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - RecordSet rset(session(), "SELECT * FROM Vectors"); - - std::ostringstream osLoop; - RecordSet::Iterator it = rset.begin(); - RecordSet::Iterator end = rset.end(); - for (int i = 1; it != end; ++it, ++i) - { - assertTrue (it->get(0) == i); - osLoop << *it; - } - assertTrue (!osLoop.str().empty()); - - std::ostringstream osCopy; - std::copy(rset.begin(), rset.end(), std::ostream_iterator(osCopy)); - assertTrue (osLoop.str() == osCopy.str()); - - RowFilter::Ptr pRF = new RowFilter(&rset); - assertTrue (pRF->isEmpty()); - pRF->add("str0", RowFilter::VALUE_EQUAL, "3"); - assertTrue (!pRF->isEmpty()); - it = rset.begin(); - end = rset.end(); - for (int i = 1; it != end; ++it, ++i) - { - assertTrue (it->get(0) == i); - assertTrue (1 == i); - } -} - - -void SQLExecutor::stdVectorBool() -{ - std::string funct = "stdVectorBool()"; - - bool b = false; - try { session() << "INSERT INTO BoolTest VALUES (?)", use(b), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - b = true; - session() << "SELECT * FROM BoolTest", into(b), now; - assertTrue (false == b); - session() << "DELETE FROM BoolTest", now; - - b = true; - try { session() << "INSERT INTO BoolTest VALUES (?)", use(b), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - b = false; - session() << "SELECT * FROM BoolTest", into(b), now; - assertTrue (true == b); - session() << "DELETE FROM BoolTest", now; - - std::vector v; - v.push_back(true); - v.push_back(false); - v.push_back(false); - v.push_back(true); - - try { session() << "INSERT INTO BoolTest VALUES (?)", use(v), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - v.clear(); - session() << "SELECT * FROM BoolTest", into(v), now; - - assertTrue (4 == v.size()); - std::vector::iterator it = v.begin(); - std::vector::iterator end = v.end(); - int t = 0; - for (; it != end; ++it) - t += *it ? 1 : 0; - assertTrue (2 == t); - - try { session() << "SELECT * FROM BoolTest WHERE b = ?", out(v), now; fail("must fail"); } - catch (BindingException&) { } - - try { session() << "SELECT * FROM BoolTest WHERE b = ?", io(v), now; fail("must fail"); } - catch (BindingException&) { } - - RecordSet rset(session(), "SELECT * FROM BoolTest"); - - t = 0; - for (int i = 0; i < 4; ++i) - t += rset.value(0, i) ? 1 : 0; - assertTrue (2 == t); -} - - -void SQLExecutor::asynchronous(int rowCount) -{ - Session tmp = session(); - - std::vector data(rowCount); - Statement stmt = (tmp << "INSERT INTO Strings VALUES(?)", use(data)); - Statement::Result result = stmt.executeAsync(); - assertTrue (!stmt.isAsync()); - result.wait(); - - Statement stmt1 = (tmp << "SELECT * FROM Strings", into(data), async, now); - assertTrue (stmt1.isAsync()); - assertTrue (stmt1.wait() == rowCount); - - // +++ if this part of the test case fails, increase the rowCount until achieved - // that first execute is still executing when the second one is called - stmt1.execute(); - try { - stmt1.execute(); - fail ("execute() must fail"); - } catch (InvalidAccessException&) - { - stmt1.wait(); - stmt1.execute(); - stmt1.wait(); - } - // --- - - stmt = tmp << "SELECT * FROM Strings", into(data), async, now; - assertTrue (stmt.isAsync()); - stmt.wait(); - assertTrue (stmt.execute() == 0); - - // +++ if this part of the test case fails, increase the rowCount until achieved - // that first execute is still executing when the second one is called - try { - result = stmt.executeAsync(); - fail ("executeAsync() must fail"); - } catch (InvalidAccessException&) - { - assertTrue (stmt.isAsync()); - stmt.wait(); - result = stmt.executeAsync(); - } - // --- - - assertTrue (stmt.wait() == rowCount); - assertTrue (result.data() == rowCount); - stmt.setAsync(false); - assertTrue (!stmt.isAsync()); - assertTrue (stmt.execute() == rowCount); - - stmt = tmp << "SELECT * FROM Strings", into(data), sync, now; - assertTrue (!stmt.isAsync()); - assertTrue (stmt.wait() == 0); - assertTrue (stmt.execute() == rowCount); - result = stmt.executeAsync(); - assertTrue (!stmt.isAsync()); - result.wait(); - assertTrue (result.data() == rowCount); - - assertTrue (0 == rowCount % 10); - int step = (int) (rowCount/10); - data.clear(); - Statement stmt2 = (tmp << "SELECT * FROM Strings", into(data), async, limit(step)); - assertTrue (data.size() == 0); - assertTrue (!stmt2.done()); - std::size_t rows = 0; - - for (int i = 0; !stmt2.done(); i += step) - { - stmt2.execute(); - rows = stmt2.wait(); - assertTrue (step == rows); - assertTrue (step + i == data.size()); - } - assertTrue (stmt2.done()); - assertTrue (rowCount == data.size()); - - stmt2 = tmp << "SELECT * FROM Strings", reset; - assertTrue (!stmt2.isAsync()); - assertTrue ("deque" == stmt2.getStorage()); - assertTrue (stmt2.execute() == rowCount); -} - - void SQLExecutor::any() { Any i = 42; @@ -3967,799 +1085,3 @@ void SQLExecutor::any() assertTrue (AnyCast(s) == "42"); #endif } - - -void SQLExecutor::dynamicAny() -{ - Var i = 42; - Var f = 42.5; - Var s = "42"; - - Session tmp = session(); - tmp << "INSERT INTO Anys VALUES (?, ?, ?)", use(i), use(f), use(s), now; - - int count = 0; - tmp << "SELECT COUNT(*) FROM Anys", into(count), now; - assertTrue (1 == count); - - i = 0; - f = 0.0; - s = std::string(""); - tmp << "SELECT * FROM Anys", into(i), into(f), into(s), now; - assertTrue (42 == i); - assertTrue (42.5 == f); - assertTrue ("42" == s); -} - - -void SQLExecutor::multipleResults(const std::string& sql) -{ - typedef Tuple Person; - std::vector people; - people.push_back(Person("Simpson", "Homer", "Springfield", 42)); - people.push_back(Person("Simpson", "Marge", "Springfield", 38)); - people.push_back(Person("Simpson", "Bart", "Springfield", 10)); - people.push_back(Person("Simpson", "Lisa", "Springfield", 8)); - people.push_back(Person("Simpson", "Maggie", "Springfield", 3)); - session() << "INSERT INTO Person VALUES (?, ?, ?, ?)", use(people), now; - - Person pHomer; - int aHomer = 42, aLisa = 8; - Poco::UInt32 aBart = 0; - - Poco::UInt32 pos1 = 1; - int pos2 = 2; - std::vector people2; - Statement stmt(session()); - stmt << sql, into(pHomer, from(0)), use(aHomer) - , into(aBart, pos1) - , into(people2, from(pos2)), use(aLisa), use(aHomer); - - assertTrue (4 == stmt.execute()); - assertTrue (Person("Simpson", "Homer", "Springfield", 42) == pHomer); - assertTrue (10 == aBart); - assertTrue (2 == people2.size()); - assertTrue (Person("Simpson", "Lisa", "Springfield", 8) == people2[0]); - assertTrue (Person("Simpson", "Homer", "Springfield", 42) == people2[1]); -} - - -void SQLExecutor::sqlChannel(const std::string& connect) -{ - try - { - AutoPtr pChannel = new SQLChannel(Poco::Data::ODBC::Connector::KEY, connect, "TestSQLChannel"); - Stopwatch sw; sw.start(); - while (!pChannel->isRunning()) - { - Thread::sleep(10); - if (sw.elapsedSeconds() > 3) - fail ("SQLExecutor::sqlLogger(): SQLChannel timed out"); - } - - pChannel->setProperty("bulk", "true"); - pChannel->setProperty("keep", "2 seconds"); - - Message msgInf("InformationSource", "a Informational async message", Message::PRIO_INFORMATION); - pChannel->log(msgInf); - while (pChannel->logged() != 1) Thread::sleep(10); - - Message msgWarn("WarningSource", "b Warning async message", Message::PRIO_WARNING); - pChannel->log(msgWarn); - while (pChannel->logged() != 2) Thread::sleep(10); - - Message msgInfS("InformationSource", "c Informational sync message", Message::PRIO_INFORMATION); - pChannel->log(msgInfS); - while (pChannel->logged() != 3) Thread::sleep(10); - Message msgWarnS("WarningSource", "d Warning sync message", Message::PRIO_WARNING); - pChannel->log(msgWarnS); - while (pChannel->logged() != 4) Thread::sleep(10); - - RecordSet rs(session(), "SELECT * FROM T_POCO_LOG ORDER by Text"); - size_t rc = rs.rowCount(); - assertTrue (4 == rc); - assertTrue ("InformationSource" == rs["Source"]); - assertTrue ("a Informational async message" == rs["Text"]); - rs.moveNext(); - assertTrue ("WarningSource" == rs["Source"]); - assertTrue ("b Warning async message" == rs["Text"]); - rs.moveNext(); - assertTrue ("InformationSource" == rs["Source"]); - assertTrue ("c Informational sync message" == rs["Text"]); - rs.moveNext(); - assertTrue ("WarningSource" == rs["Source"]); - assertTrue ("d Warning sync message" == rs["Text"]); - - Thread::sleep(3000); // give it time to archive - - Message msgInfA("InformationSource", "e Informational sync message", Message::PRIO_INFORMATION); - pChannel->log(msgInfA); - while (pChannel->logged() != 5) Thread::sleep(10); - Message msgWarnA("WarningSource", "f Warning sync message", Message::PRIO_WARNING); - pChannel->log(msgWarnA); - while (pChannel->logged() != 6) Thread::sleep(10); - - RecordSet rs1(session(), "SELECT * FROM T_POCO_LOG_ARCHIVE"); - assertTrue (4 == rs1.rowCount()); - - pChannel->setProperty("keep", ""); - assertTrue ("forever" == pChannel->getProperty("keep")); - RecordSet rs2(session(), "SELECT * FROM T_POCO_LOG ORDER by Text"); - assertTrue (2 == rs2.rowCount()); - assertTrue ("InformationSource" == rs2["Source"]); - assertTrue ("e Informational sync message" == rs2["Text"]); - rs2.moveNext(); - assertTrue ("WarningSource" == rs2["Source"]); - assertTrue ("f Warning sync message" == rs2["Text"]); - } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("sqlChannel()"); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("sqlChannel()"); } -} - - -void SQLExecutor::sqlLogger(const std::string& connect) -{ - try - { - Logger& root = Logger::root(); - SQLChannel* pSQLChannel = new SQLChannel(Poco::Data::ODBC::Connector::KEY, connect, "TestSQLChannel"); - Stopwatch sw; sw.start(); - while (!pSQLChannel->isRunning()) - { - Thread::sleep(10); - if (sw.elapsedSeconds() > 3) - fail ("SQLExecutor::sqlLogger(): SQLChannel timed out"); - } - - root.setChannel(pSQLChannel); - root.setLevel(Message::PRIO_INFORMATION); - - root.information("a Informational message"); - root.warning("b Warning message"); - root.debug("Debug message"); - - while (pSQLChannel->logged() != 2) Thread::sleep(100); - RecordSet rs(session(), "SELECT * FROM T_POCO_LOG ORDER by Text"); - assertTrue (2 == rs.rowCount()); - assertTrue ("TestSQLChannel" == rs["Source"]); - assertTrue ("a Informational message" == rs["Text"]); - rs.moveNext(); - assertTrue ("TestSQLChannel" == rs["Source"]); - assertTrue ("b Warning message" == rs["Text"]); - } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("sqlLogger()"); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("sqlLogger()"); } -} - - -void SQLExecutor::setTransactionIsolation(Session& session, Poco::UInt32 ti) -{ - if (session.hasTransactionIsolation(ti)) - { - std::string funct = "setTransactionIsolation()"; - - try - { - Transaction t(session, false); - t.setIsolation(ti); - - assertTrue (ti == t.getIsolation()); - assertTrue (t.isIsolation(ti)); - - assertTrue (ti == session.getTransactionIsolation()); - assertTrue (session.isTransactionIsolation(ti)); - } - catch(Poco::Exception& e){ std::cout << funct << ':' << e.displayText() << std::endl;} - } - else - { - std::cerr << '[' << name() << ']' << " Warning, transaction isolation not supported: "; - switch (ti) - { - case Session::TRANSACTION_READ_COMMITTED: - std::cerr << "READ COMMITTED"; break; - case Session::TRANSACTION_READ_UNCOMMITTED: - std::cerr << "READ UNCOMMITTED"; break; - case Session::TRANSACTION_REPEATABLE_READ: - std::cerr << "REPEATABLE READ"; break; - case Session::TRANSACTION_SERIALIZABLE: - std::cerr << "SERIALIZABLE"; break; - default: - std::cerr << "UNKNOWN"; break; - } - std::cerr << std::endl; - } -} - - -void SQLExecutor::autoCommit(const std::string& connect) -{ - bool autoCommit = session().getFeature("autoCommit"); - - session().setFeature("autoCommit", true); - assertTrue (!session().isTransaction()); - session().setFeature("autoCommit", false); - assertTrue (!session().isTransaction()); - session().setFeature("autoCommit", true); - assertTrue (!session().isTransaction()); - - session().setFeature("autoCommit", autoCommit); -} - - -void SQLExecutor::transactionIsolation() -{ - auto ti = session().getTransactionIsolation(); - - // these are just calls to check the transactional capabilities of the session - // they will print diagnostics to stderr if a transaction isolation level is not supported - setTransactionIsolation(session(), Session::TRANSACTION_READ_UNCOMMITTED); - setTransactionIsolation(session(), Session::TRANSACTION_REPEATABLE_READ); - setTransactionIsolation(session(), Session::TRANSACTION_SERIALIZABLE); - setTransactionIsolation(session(), Session::TRANSACTION_READ_COMMITTED); - - setTransactionIsolation(session(), ti); -} - - -void SQLExecutor::sessionTransaction(const std::string& connect) -{ - if (!session().canTransact()) - { - std::cout << "Session not capable of transactions." << std::endl; - return; - } - - bool autoCommit = session().getFeature("autoCommit"); - - Session local("odbc", connect); - - std::string funct = "sessionTransaction()"; - - std::string tableName("Person"); - std::vector lastNames = {"LN1", "LN2"}; - std::vector firstNames = {"FN1", "FN2"}; - std::vector addresses = {"ADDR1", "ADDR2"}; - std::vector ages = {1, 2}; - int count = 0, locCount = 0; - std::string result; - - session().setFeature("autoCommit", true); - assertTrue (session().getFeature("autoCommit")); - assertTrue (!session().isTransaction()); - - session().begin(); - assertTrue (session().isTransaction()); - assertTrue (!session().getFeature("autoCommit")); - - // changing autocommit is invalid for session in transaction ... - try - { - session().setFeature("autoCommit", true); - fail ("must fail on autocommit setting during transaction"); - } - catch(const Poco::InvalidAccessException& e) { } - // make sure nothing was changed ... - assertTrue (!session().getFeature("autoCommit")); - // but setting it to its current state is allowed (no-op) - session().setFeature("autoCommit", false); - assertTrue (!session().getFeature("autoCommit")); - - session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; - assertTrue (session().isTransaction()); - - Statement stmt = (local << "SELECT COUNT(*) FROM Person", into(locCount), async, now); - - session() << "SELECT COUNT(*) FROM Person", into(count), now; - assertTrue (2 == count); - assertTrue (session().isTransaction()); - session().rollback(); - assertTrue (!session().isTransaction()); - - stmt.wait(); - assertTrue (0 == locCount); - stmt.reset(session()); - - session() << "SELECT count(*) FROM Person", into(count), now; - assertTrue (0 == count); - assertTrue (!session().isTransaction()); - - session().begin(); - session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; - assertTrue (session().isTransaction()); - - stmt = (local << "SELECT COUNT(*) FROM Person", into(locCount), async, now); - - session().commit(); - assertTrue (!session().isTransaction()); - - stmt.wait(); - assertTrue (2 == locCount); - - session() << "SELECT count(*) FROM Person", into(count), now; - assertTrue (2 == count); - // end autoCommit = true - - // restore the original transaction state - session().setFeature("autoCommit", autoCommit); -} - - -void SQLExecutor::sessionTransactionNoAutoCommit(const std::string& connect) -{ - bool autoCommit = session().getFeature("autoCommit"); - - Session local("odbc", connect); - local.setFeature("autoCommit", false); - assertTrue (!local.getFeature("autoCommit")); - - if (!local.canTransact()) - { - std::cout << "Session not capable of transactions." << std::endl; - return; - } - - std::string funct = "sessionTransactionNoAutoCommit()"; - - std::vector lastNames = {"LN1", "LN2"}; - std::vector firstNames = {"FN1", "FN2"}; - std::vector addresses = {"ADDR1", "ADDR2"}; - std::vector ages = {1, 2}; - std::string tableName("Person"); - int count = 0, locCount = 0; - std::string result; - - // no autoCommit session becomes transaction without explicit begin() - assertTrue (!local.isTransaction()); - assertTrue (!session().isTransaction()); - local << "INSERT INTO Person VALUES (?,?,?,?)", - use(lastNames), use(firstNames), use(addresses), use(ages), now; - Statement stmt = (session() << "SELECT COUNT(*) FROM Person", - into(count), async, now); - local << "SELECT COUNT(*) FROM Person", into(locCount), now; - assertTrue (0 == count); - assertTrue (2 == locCount); -#ifndef POCO_DATA_NO_SQL_PARSER - assertTrue (local.isTransaction()); - - // autocommit is invalid for session in transaction ... - try - { - local.setFeature("autoCommit", true); - fail ("must fail on autocommit setting during transaction", __LINE__); - } - catch(const Poco::InvalidAccessException& e) { } - - // but setting it to its current state is allowed (no-op) - local.setFeature("autoCommit", false); - - assertTrue (!session().isTransaction()); -#else - session().commit(); -#endif // POCO_DATA_NO_SQL_PARSER - local.commit(); - assertTrue (!local.isTransaction()); - - stmt.wait(); - assertTrue (2 == count); - count = 0; - stmt.reset(session()); - - assertTrue (!local.isTransaction()); - assertTrue (!session().isTransaction()); - local << "INSERT INTO Person VALUES (?,?,?,?)", - use(lastNames), use(firstNames), use(addresses), use(ages), now; - stmt = (session() << "SELECT COUNT(*) FROM Person", into(count), async, now); - local << "SELECT COUNT(*) FROM Person", into(locCount), now; - assertTrue (0 == count); - assertTrue (4 == locCount); -#ifndef POCO_DATA_NO_SQL_PARSER - assertTrue (local.isTransaction()); - assertTrue (!session().isTransaction()); -#else - session().commit(); -#endif - - local.rollback(); - assertTrue (!local.isTransaction()); - stmt.wait(); - assertTrue (2 == count); - - locCount = 0; - session() << "SELECT COUNT(*) FROM Person", into(count), now; - local << "SELECT COUNT(*) FROM Person", into(locCount), now; - assertTrue (2 == count); - assertTrue (2 == locCount); -#ifndef POCO_DATA_NO_SQL_PARSER - session().commit(); - local.commit(); -#endif - session().setFeature("autoCommit", autoCommit); -} - - -void SQLExecutor::transaction(const std::string& connect) -{ - if (!session().canTransact()) - { - std::cout << "Session not transaction-capable." << std::endl; - return; - } - - Session local("odbc", connect); - local.setFeature("autoCommit", true); - - bool autoCommit = session().getFeature("autoCommit"); - auto ti = session().getTransactionIsolation(); - - setTransactionIsolation(session(), Session::TRANSACTION_READ_COMMITTED); - if (local.hasTransactionIsolation(Session::TRANSACTION_READ_UNCOMMITTED)) - setTransactionIsolation(local, Session::TRANSACTION_READ_UNCOMMITTED); - else if (local.hasTransactionIsolation(Session::TRANSACTION_READ_COMMITTED)) - setTransactionIsolation(local, Session::TRANSACTION_READ_COMMITTED); - - std::string funct = "transaction()"; - std::string tableName("Person"); - std::vector lastNames = {"LN1", "LN2"}; - std::vector firstNames = {"FN1", "FN2"}; - std::vector addresses = {"ADDR1", "ADDR2"}; - std::vector ages = {1, 2}; - int count = 0, locCount = 0; - std::string result; - - session().setFeature("autoCommit", true); - assertTrue (!session().isTransaction()); - session().setFeature("autoCommit", false); - assertTrue (!session().isTransaction()); - session().setTransactionIsolation(Session::TRANSACTION_READ_COMMITTED); - - { - Transaction trans(session()); - assertTrue (trans.isActive()); - assertTrue (session().isTransaction()); - - session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; - - assertTrue (session().isTransaction()); - assertTrue (trans.isActive()); - - session() << "SELECT COUNT(*) FROM Person", into(count), now; - assertTrue (2 == count); - assertTrue (session().isTransaction()); - assertTrue (trans.isActive()); - } - assertTrue (!session().isTransaction()); - - session() << "SELECT count(*) FROM Person", into(count), now; - assertTrue (0 == count); - assertTrue (!session().isTransaction()); - session().commit(); - - { - Transaction trans(session()); - session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; - - Statement stmt1 = (local << "SELECT COUNT(*) FROM Person", into(locCount), async, now); - - assertTrue (session().isTransaction()); - assertTrue (trans.isActive()); - trans.commit(); - assertTrue (!session().isTransaction()); - assertTrue (!trans.isActive()); - - stmt1.wait(); - assertTrue (2 == locCount); - } - - session() << "SELECT count(*) FROM Person", into(count), now; - assertTrue (2 == count); - - session() << "DELETE FROM Person", now; - - Statement stmt1 = (local << "SELECT count(*) FROM Person", into(locCount), async, now); - - session() << "SELECT count(*) FROM Person", into(count), now; - assertTrue (0 == count); - try - { - stmt1.wait(5000); - if (local.getTransactionIsolation() == Session::TRANSACTION_READ_UNCOMMITTED) - assertTrue (0 == locCount); - } catch (TimeoutException&) - { std::cerr << '[' << name() << ']' << " Warning: async query timed out." << std::endl; } - session().commit(); - // repeat for those that don't support uncommitted read isolation - if (local.getTransactionIsolation() == Session::TRANSACTION_READ_COMMITTED) - { - stmt1.wait(); - local << "SELECT count(*) FROM Person", into(locCount), now; - assertTrue (0 == locCount); - } - - std::string sql1 = format("INSERT INTO Person VALUES ('%s','%s','%s',%d)", lastNames[0], firstNames[0], addresses[0], ages[0]); - std::string sql2 = format("INSERT INTO Person VALUES ('%s','%s','%s',%d)", lastNames[1], firstNames[1], addresses[1], ages[1]); - std::vector sql; - sql.push_back(sql1); - sql.push_back(sql2); - - Transaction trans(session()); - - trans.execute(sql1, false); - session() << "SELECT count(*) FROM Person", into(count), now; - assertTrue (1 == count); - trans.execute(sql2, false); - session() << "SELECT count(*) FROM Person", into(count), now; - assertTrue (2 == count); - - Statement stmt2 = (local << "SELECT COUNT(*) FROM Person", into(locCount), async, now); - - trans.rollback(); - - stmt2.wait(); - assertTrue (0 == locCount); - - session() << "SELECT count(*) FROM Person", into(count), now; - assertTrue (0 == count); - - trans.execute(sql); - - Statement stmt3 = (local << "SELECT COUNT(*) FROM Person", into(locCount), now); - assertTrue (2 == locCount); - - session() << "SELECT count(*) FROM Person", into(count), now; - assertTrue (2 == count); - session().commit(); - - // restore the original transaction state - session().setFeature("autoCommit", autoCommit); - setTransactionIsolation(session(), ti); -} - - -struct TestCommitTransactor -{ - void operator () (Session& session) const - { - session << "INSERT INTO Person VALUES ('lastName','firstName','address',10)", now; - } -}; - - -struct TestRollbackTransactor -{ - void operator () (Session& session) const - { - session << "INSERT INTO Person VALUES ('lastName','firstName','address',10)", now; - throw Poco::Exception("test"); - } -}; - - -void SQLExecutor::transactor() -{ - std::string funct = "transactor()"; - int count = 0; - - bool autoCommit = session().getFeature("autoCommit"); - auto ti = session().getTransactionIsolation(); - - session().setFeature("autoCommit", false); - session().setTransactionIsolation(Session::TRANSACTION_READ_COMMITTED); - - TestCommitTransactor ct; - Transaction t1(session(), ct); - - session() << "SELECT count(*) FROM Person", into(count), now; - assertTrue (1 == count); - - session() << "DELETE FROM Person", now; session().commit(); - - session() << "SELECT count(*) FROM Person", into(count), now; - assertTrue (0 == count); - - try - { - TestRollbackTransactor rt; - Transaction t(session(), rt); - fail ("must fail"); - } catch (Poco::Exception&) { } - - session() << "SELECT count(*) FROM Person", into(count), now; - assertTrue (0 == count); - - try - { - TestRollbackTransactor rt; - Transaction t(session()); - t.transact(rt); - fail ("must fail"); - } catch (Poco::Exception&) { } - - session() << "SELECT count(*) FROM Person", into(count), now; - assertTrue (0 == count); - - try - { - TestRollbackTransactor rt; - Transaction t(session(), false); - t.transact(rt); - fail ("must fail"); - } catch (Poco::Exception&) { } - - session() << "SELECT count(*) FROM Person", into(count), now; - assertTrue (0 == count); - - try - { - TestRollbackTransactor rt; - Transaction t(session(), true); - t.transact(rt); - fail ("must fail"); - } catch (Poco::Exception&) { } - - session() << "SELECT count(*) FROM Person", into(count), now; - assertTrue (0 == count); - session().commit(); - - // restore the original transaction state - session().setFeature("autoCommit", autoCommit); - setTransactionIsolation(session(), ti); -} - - -void SQLExecutor::nullable() -{ - try { session() << "INSERT INTO NullableTest VALUES(NULL, NULL, NULL, NULL)", now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail ("nullable()"); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail ("nullable()"); } - - Nullable i = 1; - Nullable f = 1.5; - Nullable s = std::string("abc"); - Nullable d = DateTime(); - - assertTrue (!i.isNull()); - assertTrue (!f.isNull()); - assertTrue (!s.isNull()); - assertTrue (!d.isNull()); - - session() << "SELECT EmptyString, EmptyInteger, EmptyFloat, EmptyDateTime FROM NullableTest", into(s), into(i), into(f), into(d), now; - - assertTrue (i.isNull()); - assertTrue (f.isNull()); - assertTrue (s.isNull()); - assertTrue (d.isNull()); - - RecordSet rs(session(), "SELECT * FROM NullableTest"); - - rs.moveFirst(); - assertTrue (rs.isNull("EmptyString")); - assertTrue (rs.isNull("EmptyInteger")); - assertTrue (rs.isNull("EmptyFloat")); - assertTrue (rs.isNull("EmptyDateTime")); - - Var di = 1; - Var df = 1.5; - Var ds = "abc"; - Var dd = DateTime(); - - assertTrue (!di.isEmpty()); - assertTrue (!df.isEmpty()); - assertTrue (!ds.isEmpty()); - assertTrue (!dd.isEmpty()); - - Statement stmt = (session() << "SELECT EmptyString, EmptyInteger, EmptyFloat, EmptyDateTime FROM NullableTest", into(ds), into(di), into(df), into(dd), now); - - assertTrue (di.isEmpty()); - assertTrue (df.isEmpty()); - assertTrue (ds.isEmpty()); - assertTrue (dd.isEmpty()); -} - - -void SQLExecutor::reconnect() -{ - std::string funct = "reconnect()"; - std::string lastName = "lastName"; - std::string firstName("firstName"); - std::string address("Address"); - int age = 133132; - int count = 0; - std::string result; - - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastName), use(firstName), use(address), use(age), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - - count = 0; - try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == 1); - - assertTrue (session().isConnected()); - session().close(); - assertTrue (!session().isConnected()); - try - { - session() << "SELECT LastName FROM Person", into(result), now; - fail ("must fail"); - } - catch(NotConnectedException&){ } - assertTrue (!session().isConnected()); - - session().open(); - assertTrue (session().isConnected()); - try { session() << "SELECT Age FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.toString() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.toString() << std::endl; fail (funct); } - assertTrue (count == age); - assertTrue (session().isConnected()); -} - - -void SQLExecutor::unicode(const std::string& dbConnString) -{ - const unsigned char supp[] = { 0x41, 0x42, 0xf0, 0x90, 0x82, 0xa4, 0xf0, 0xaf, 0xa6, 0xa0, 0xf0, 0xaf, 0xa8, 0x9d, 0x00 }; - std::string text((const char*) supp); - - UTF16String wtext; - Poco::UnicodeConverter::convert(text, wtext); - session() << "INSERT INTO UnicodeTable VALUES (?)", use(wtext), now; - wtext.clear(); - text.clear(); - session() << "SELECT str FROM UnicodeTable", into(wtext), now; - Poco::UnicodeConverter::convert(wtext, text); - assertTrue (text == std::string((const char*)supp)); -} - - -void SQLExecutor::encoding(const std::string& dbConnString) -{ - try - { - const unsigned char latinChars[] = { 'g', 252, 'n', 't', 'e', 'r', 0 }; - const unsigned char utf8Chars[] = { 'g', 195, 188, 'n', 't', 'e', 'r', 0 }; - std::string latinText((const char*)latinChars); - std::string utf8TextIn((const char*)utf8Chars); - - session(true) << "INSERT INTO Latin1Table VALUES (?)", use(utf8TextIn), now; - - std::string latinTextOut; - session() << "SELECT str FROM Latin1Table", into(latinTextOut), now; - assertTrue(latinText == latinTextOut); - - std::string utf8TextOut; - session(true) << "SELECT str FROM Latin1Table", into(utf8TextOut), now; - assertTrue(utf8TextIn == utf8TextOut); - - const unsigned char latinChars2[] = { 'G', 220, 'N', 'T', 'E', 'R', 0 }; - const unsigned char utf8Chars2[] = { 'G', 195, 156, 'N', 'T', 'E', 'R', 0 }; - std::string latinText2 = (const char*)latinChars2; - std::string utf8TextIn2 = (const char*)utf8Chars2; - - session(true) << "INSERT INTO Latin1Table VALUES (?)", use(utf8TextIn2), now; - - std::vector textOutVec; - session() << "SELECT str FROM Latin1Table", into(textOutVec), now; - assertTrue(textOutVec.size() == 2); - assertTrue(textOutVec[0] == latinText); - assertTrue(textOutVec[1] == latinText2); - - textOutVec.clear(); - session(true) << "SELECT str FROM Latin1Table", into(textOutVec), now; - assertTrue(textOutVec.size() == 2); - assertTrue(textOutVec[0] == utf8TextIn); - assertTrue(textOutVec[1] == utf8TextIn2); - } - catch (Poco::Exception& ex) - { - std::cout << ex.displayText() << std::endl; - throw; - } - catch (std::exception& ex) - { - std::cout << ex.what() << std::endl; - throw; - } -} diff --git a/Data/ODBC/testsuite/src/SQLExecutor.h b/Data/ODBC/testsuite/src/SQLExecutor.h index a9771e0c9..815d937d7 100644 --- a/Data/ODBC/testsuite/src/SQLExecutor.h +++ b/Data/ODBC/testsuite/src/SQLExecutor.h @@ -20,6 +20,7 @@ #include "Poco/Data/Session.h" #include "Poco/Data/BulkExtraction.h" #include "Poco/Data/BulkBinding.h" +#include "Poco/Data/Test/SQLExecutor.h" #include "Poco/NumberFormatter.h" #include "Poco/String.h" #include "Poco/Exception.h" @@ -534,21 +535,498 @@ private: Poco::Data::Session& session(bool enc = false); Poco::Data::Session* _pSession; Poco::Data::Session* _pEncSession; + Poco::Data::Test::SQLExecutor _dataExecutor; }; -inline Poco::Data::Session& SQLExecutor::session(bool enc) +inline void SQLExecutor::sessionPool(const std::string& connectString, int minSessions, int maxSessions, int idleTime, int timeout) { - if (!enc) - { - poco_check_ptr(_pSession); - return *_pSession; - } - else - { - poco_check_ptr(_pEncSession); - return *_pEncSession; - } + _dataExecutor.sessionPool("ODBC", connectString, minSessions, maxSessions, idleTime, timeout); +} + + +inline void SQLExecutor::zeroRows() +{ + _dataExecutor.zeroRows(); +} + + +inline void SQLExecutor::simpleAccess() +{ + _dataExecutor.simpleAccess(); +} + + +inline void SQLExecutor::complexType() +{ + _dataExecutor.complexType(); +} + + +inline void SQLExecutor::complexTypeTuple() +{ + _dataExecutor.complexTypeTuple(); +} + + +inline void SQLExecutor::simpleAccessVector() +{ + _dataExecutor.simpleAccessVector(); +} + + +inline void SQLExecutor::complexTypeVector() +{ + _dataExecutor.complexTypeVector(); +} + + +inline void SQLExecutor::sharedPtrComplexTypeVector() +{ + _dataExecutor.sharedPtrComplexTypeVector(); +} + + +inline void SQLExecutor::autoPtrComplexTypeVector() +{ + _dataExecutor.autoPtrComplexTypeVector(); +} + + +inline void SQLExecutor::insertVector() +{ + _dataExecutor.insertVector(); +} + + +inline void SQLExecutor::insertEmptyVector() +{ + _dataExecutor.insertEmptyVector(); +} + + +inline void SQLExecutor::simpleAccessList() +{ + _dataExecutor.simpleAccessList(); +} + + +inline void SQLExecutor::complexTypeList() +{ + _dataExecutor.complexTypeList(); +} + + +inline void SQLExecutor::insertList() +{ + _dataExecutor.insertList(); +} + + +inline void SQLExecutor::insertEmptyList() +{ + _dataExecutor.insertEmptyList(); +} + + +inline void SQLExecutor::simpleAccessDeque() +{ + _dataExecutor.simpleAccessDeque(); +} + + +inline void SQLExecutor::complexTypeDeque() +{ + _dataExecutor.complexTypeDeque(); +} + + +inline void SQLExecutor::insertDeque() +{ + _dataExecutor.insertDeque(); +} + + +inline void SQLExecutor::insertEmptyDeque() +{ + _dataExecutor.insertEmptyDeque(); +} + + +inline void SQLExecutor::affectedRows(const std::string& whereClause) +{ + _dataExecutor.affectedRows(); +} + + +inline void SQLExecutor::insertSingleBulk() +{ + _dataExecutor.insertSingleBulk(); +} + + +inline void SQLExecutor::floats() +{ + _dataExecutor.floats(); +} + + +inline void SQLExecutor::doubles() +{ + _dataExecutor.doubles(); +} + + +inline void SQLExecutor::uuids() +{ + _dataExecutor.uuids(); +} + + +inline void SQLExecutor::insertSingleBulkVec() +{ + _dataExecutor.insertSingleBulkVec(); +} + + +inline void SQLExecutor::limits() +{ + _dataExecutor.limits(); +} + + +inline void SQLExecutor::limitZero() +{ + _dataExecutor.limitZero(); +} + + +inline void SQLExecutor::limitOnce() +{ + _dataExecutor.limitOnce(); +} + + +inline void SQLExecutor::limitPrepare() +{ + _dataExecutor.limitPrepare(); +} + + +inline void SQLExecutor::prepare() +{ + _dataExecutor.prepare(); +} + + +inline void SQLExecutor::doBulkPerformance(Poco::UInt32 size) +{ + _dataExecutor.doBulkPerformance(size); +} + + +inline void SQLExecutor::setSimple() +{ + _dataExecutor.setSimple(); +} + + +inline void SQLExecutor::setComplex() +{ + _dataExecutor.setComplex(); +} + + +inline void SQLExecutor::setComplexUnique() +{ + _dataExecutor.setComplexUnique(); +} + +inline void SQLExecutor::multiSetSimple() +{ + _dataExecutor.multiSetSimple(); +} + + +inline void SQLExecutor::multiSetComplex() +{ + _dataExecutor.multiSetComplex(); +} + + +inline void SQLExecutor::mapComplex() +{ + _dataExecutor.mapComplex(); +} + + +inline void SQLExecutor::mapComplexUnique() +{ + _dataExecutor.mapComplexUnique(); +} + + +inline void SQLExecutor::multiMapComplex() +{ + _dataExecutor.multiMapComplex(); +} + + +inline void SQLExecutor::selectIntoSingle() +{ + _dataExecutor.selectIntoSingle(); +} + + +inline void SQLExecutor::selectIntoSingleStep() +{ + _dataExecutor.selectIntoSingleStep(); +} + + +inline void SQLExecutor::selectIntoSingleFail() +{ + _dataExecutor.selectIntoSingleFail(); +} + + +inline void SQLExecutor::lowerLimitOk() +{ + _dataExecutor.lowerLimitOk(); +} + + +inline void SQLExecutor::singleSelect() +{ + _dataExecutor.singleSelect(); +} + + +inline void SQLExecutor::lowerLimitFail() +{ + _dataExecutor.lowerLimitFail(); +} + + +inline void SQLExecutor::combinedLimits() +{ + _dataExecutor.combinedLimits(); +} + + + +inline void SQLExecutor::ranges() +{ + _dataExecutor.ranges(); +} + + +inline void SQLExecutor::combinedIllegalLimits() +{ + _dataExecutor.combinedIllegalLimits(); +} + + +inline void SQLExecutor::illegalRange() +{ + _dataExecutor.illegalRange(); +} + + +inline void SQLExecutor::emptyDB() +{ + _dataExecutor.emptyDB(); +} + + +inline void SQLExecutor::blob(int bigSize, const std::string& blobPlaceholder) +{ + _dataExecutor.blob(bigSize, blobPlaceholder); +} + + +inline void SQLExecutor::blobStmt() +{ + _dataExecutor.blobStmt(); +} + + +inline void SQLExecutor::recordSet() +{ + _dataExecutor.recordSet(); +} + + +inline void SQLExecutor::dateTime() +{ + _dataExecutor.dateTime(); +} + + +inline void SQLExecutor::date() +{ + _dataExecutor.date(); +} + + +inline void SQLExecutor::time() +{ + _dataExecutor.time(); +} + + +inline void SQLExecutor::tuples() +{ + _dataExecutor.tuples(); +} + +inline void SQLExecutor::tupleVector() +{ + _dataExecutor.tupleVector(); +} + + +inline void SQLExecutor::internalExtraction() +{ + _dataExecutor.internalExtraction(); +} + + +inline void SQLExecutor::filter(const std::string& query, const std::string& intFldName) +{ + _dataExecutor.filter(); +} + + +inline void SQLExecutor::internalBulkExtraction() +{ + _dataExecutor.internalBulkExtraction(); +} + + +inline void SQLExecutor::internalBulkExtractionUTF16() +{ + _dataExecutor.internalBulkExtractionUTF16(); +} + + +inline void SQLExecutor::internalStorageType() +{ + _dataExecutor.internalStorageType(); +} + + +inline void SQLExecutor::nulls() +{ + _dataExecutor.nulls(); +} + + +inline void SQLExecutor::rowIterator() +{ + _dataExecutor.rowIterator(); +} + + +inline void SQLExecutor::stdVectorBool() +{ + _dataExecutor.stdVectorBool(); +} + + +inline void SQLExecutor::asynchronous(int rowCount) +{ + _dataExecutor.asynchronous(); +} + + +inline void SQLExecutor::dynamicAny() +{ + _dataExecutor.dynamicAny(); +} + + +inline void SQLExecutor::multipleResults(const std::string& sql) +{ + _dataExecutor.multipleResults(); +} + + +inline void SQLExecutor::sqlChannel(const std::string& connect) +{ + _dataExecutor.sqlChannel("odbc", connect); +} + + +inline void SQLExecutor::sqlLogger(const std::string& connect) +{ + _dataExecutor.sqlLogger("odbc", connect); +} + + +inline void SQLExecutor::setTransactionIsolation(Poco::Data::Session& session, Poco::UInt32 ti) +{ + _dataExecutor.setTransactionIsolation(session, ti); +} + + +inline void SQLExecutor::autoCommit(const std::string&) +{ + _dataExecutor.autoCommit(); +} + + +inline void SQLExecutor::transactionIsolation() +{ + _dataExecutor.transactionIsolation(); +} + + +inline void SQLExecutor::sessionTransaction(const std::string& connect) +{ + _dataExecutor.sessionTransaction("odbc", connect); +} + + +inline void SQLExecutor::sessionTransactionNoAutoCommit(const std::string& connect) +{ + _dataExecutor.sessionTransactionNoAutoCommit("odbc", connect); +} + + +inline void SQLExecutor::transaction(const std::string& connect) +{ + _dataExecutor.transaction("odbc", connect); +} + + +inline void SQLExecutor::transactor() +{ + _dataExecutor.transactor(); +} + + +inline void SQLExecutor::nullable() +{ + _dataExecutor.nullable(); +} + + +inline void SQLExecutor::reconnect() +{ + _dataExecutor.reconnect(); +} + + +inline void SQLExecutor::unicode(const std::string& dbConnString) +{ + _dataExecutor.unicode(dbConnString); +} + + +inline void SQLExecutor::encoding(const std::string& dbConnString) +{ + _dataExecutor.encoding(dbConnString); } diff --git a/Data/testsuite/Makefile b/Data/testsuite/Makefile index bd7adb02b..b60c67fe0 100644 --- a/Data/testsuite/Makefile +++ b/Data/testsuite/Makefile @@ -1,30 +1,11 @@ # # Makefile # -# Makefile for Poco Data testsuite +# Makefile for Poco Data Tests # -include $(POCO_BASE)/build/rules/global - -ifeq ($(findstring SunOS,$(POCO_HOST_OSNAME)),SunOS) - POCO_SUN_FORTE = $(findstring SunOS-SunForte, $(POCO_CONFIG)) - POCO_SUN_STUDIO = $(findstring SunOS-SunStudio, $(POCO_CONFIG)) - ifneq (,$or ($(POCO_SUN_FORTE), $(POCO_SUN_STUDIO))) - CXXFLAGS += -erroff=hidevf - endif -endif - -objects = DataTestSuite Driver \ - DataTest SessionPoolTest \ - Binder Extractor Preparator SessionImpl Connector TestStatementImpl - -ifndef POCO_DATA_NO_SQL_PARSER - objects += SQLParserTest - target_includes = $(POCO_BASE)/Data/src -endif - -target = testrunner -target_version = 1 -target_libs = PocoData PocoFoundation CppUnit - -include $(POCO_BASE)/build/rules/exec +.PHONY: projects +clean distclean all: projects +projects: + $(MAKE) -f Makefile-testrunner $(MAKECMDGOALS) + $(MAKE) -f Makefile-library $(MAKECMDGOALS) diff --git a/Data/testsuite/Makefile-library b/Data/testsuite/Makefile-library new file mode 100644 index 000000000..afc360f99 --- /dev/null +++ b/Data/testsuite/Makefile-library @@ -0,0 +1,21 @@ +# +# Makefile +# +# Makefile for Poco Data testsuite library +# + +include $(POCO_BASE)/build/rules/global + +objects = SQLExecutor + +target_includes = $(POCO_BASE)/Data/testsuite/include +ifndef POCO_DATA_NO_SQL_PARSER + objects += SQLParserTest + target_includes += $(POCO_BASE)/Data/src +endif + +target = PocoDataTest +target_version = 1 +target_libs = PocoData PocoFoundation CppUnit + +include $(POCO_BASE)/build/rules/lib diff --git a/Data/testsuite/Makefile-testrunner b/Data/testsuite/Makefile-testrunner new file mode 100644 index 000000000..9964afe64 --- /dev/null +++ b/Data/testsuite/Makefile-testrunner @@ -0,0 +1,31 @@ +# +# Makefile +# +# Makefile for Poco Data testsuite +# + +include $(POCO_BASE)/build/rules/global + +ifeq ($(findstring SunOS,$(POCO_HOST_OSNAME)),SunOS) + POCO_SUN_FORTE = $(findstring SunOS-SunForte, $(POCO_CONFIG)) + POCO_SUN_STUDIO = $(findstring SunOS-SunStudio, $(POCO_CONFIG)) + ifneq (,$or ($(POCO_SUN_FORTE), $(POCO_SUN_STUDIO))) + CXXFLAGS += -erroff=hidevf + endif +endif + +objects = DataTestSuite Driver \ + DataTest SessionPoolTest Binder Extractor Preparator \ + SessionImpl Connector TestStatementImpl + +target_includes = $(POCO_BASE)/Data/testsuite/include +ifndef POCO_DATA_NO_SQL_PARSER + objects += SQLParserTest + target_includes += $(POCO_BASE)/Data/src +endif + +target = testrunner +target_version = 1 +target_libs = PocoData PocoFoundation CppUnit + +include $(POCO_BASE)/build/rules/exec diff --git a/Data/testsuite/include/Poco/Data/Test/SQLExecutor.h b/Data/testsuite/include/Poco/Data/Test/SQLExecutor.h new file mode 100644 index 000000000..3b88b113b --- /dev/null +++ b/Data/testsuite/include/Poco/Data/Test/SQLExecutor.h @@ -0,0 +1,241 @@ +// +// SQLExecutor.h +// +// Definition of the SQLExecutor class. +// +// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef Data_SQLExecutor_INCLUDED +#define Data_SQLExecutor_INCLUDED + + +#include "Poco/Data/Data.h" +#include "Poco/Data/Session.h" +#include "Poco/Data/BulkExtraction.h" +#include "Poco/Data/BulkBinding.h" +#include "Poco/NumberFormatter.h" +#include "Poco/String.h" +#include "Poco/Exception.h" +#include + + +#define poco_data_using_keywords using Poco::Data::Keywords::now; \ + using Poco::Data::Keywords::into; \ + using Poco::Data::Keywords::use; \ + using Poco::Data::Keywords::bulk; \ + using Poco::Data::Keywords::limit; \ + using Poco::Data::DataException; \ + using Poco::Data::CLOB; + + +namespace Poco { +namespace Data { +namespace Test { + + +class SQLExecutor: public CppUnit::TestCase +{ +public: + enum DataBinding + { + PB_IMMEDIATE, + PB_AT_EXEC + }; + + enum DataExtraction + { + DE_MANUAL, + DE_BOUND + }; + + SQLExecutor(const std::string& name, Poco::Data::Session* pSession, Poco::Data::Session* pEncSession = 0); + ~SQLExecutor(); + + template + void connection(C& c, const std::string& connectString) + { + assertFalse (c.isConnected()); + assertTrue (c.connect(connectString, 5)); + assertTrue (c.isConnected()); + assertTrue (c.getTimeout() == 5); + c.setTimeout(6); + assertTrue (c.getTimeout() == 6); + assertTrue (c.disconnect()); + assertFalse (c.isConnected()); + assertTrue (c.connect(connectString)); + assertTrue (c.isConnected()); + try + { + c.connect(); + fail ("Connection attempt must fail when already connected"); + } + catch(const Poco::InvalidAccessException&){} + assertTrue (c.disconnect()); + assertFalse (c.isConnected()); + try + { + c.connect(); + fail ("Connection attempt with empty string must fail"); + } + catch(const Poco::InvalidArgumentException&){} + } + + void session(const std::string& connector, const std::string& connectString, int timeout); + void sessionPool(const std::string& connector, const std::string& connectString, int minSessions, int maxSessions, int idleTime, int timeout); + + void execute(const std::string& sql); + /// Execute a query. + + void zeroRows(); + void simpleAccess(); + void complexType(); + void complexTypeTuple(); + + void simpleAccessVector(); + void complexTypeVector(); + void sharedPtrComplexTypeVector(); + void autoPtrComplexTypeVector(); + void insertVector(); + void insertEmptyVector(); + + void simpleAccessList(); + void complexTypeList(); + void insertList(); + void insertEmptyList(); + + void simpleAccessDeque(); + void complexTypeDeque(); + void insertDeque(); + void insertEmptyDeque(); + + void affectedRows(const std::string& whereClause = ""); + + void insertSingleBulk(); + void insertSingleBulkVec(); + + void limits(); + void limitOnce(); + void limitPrepare(); + void limitZero(); + void prepare(); + + void doBulkPerformance(Poco::UInt32 size); + + void setSimple(); + void setComplex(); + void setComplexUnique(); + void multiSetSimple(); + void multiSetComplex(); + void mapComplex(); + void mapComplexUnique(); + void multiMapComplex(); + void selectIntoSingle(); + void selectIntoSingleStep(); + void selectIntoSingleFail(); + void lowerLimitOk(); + void lowerLimitFail(); + void combinedLimits(); + void combinedIllegalLimits(); + void ranges(); + void illegalRange(); + void singleSelect(); + void emptyDB(); + + void blob(int bigSize = 1024, const std::string& blobPlaceholder = "?"); + + template + void blobContainer(int size) + { + poco_data_using_keywords; + + std::string funct = "blobContainer()"; + C1 lastName(size, "lastname"); + C1 firstName(size, "firstname"); + C1 address(size, "Address"); + C2 img(size, CLOB("0123456789", 10)); + int count = 0; + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastName), use(firstName), use(address), use(img), now; } + catch(DataException& ce){ std::cout << ce.displayText() << std::endl; fail (funct, __LINE__, __FILE__); } + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce){ std::cout << ce.displayText() << std::endl; fail (funct, __LINE__, __FILE__); } + assert (count == size); + + C2 res; + try { session() << "SELECT Image FROM Person", into(res), now; } + catch(DataException& ce){ std::cout << ce.displayText() << std::endl; fail (funct, __LINE__, __FILE__); } + assert (res.size() == img.size()); + assert (res == img); + } + + void blobStmt(); + void recordSet(); + + void dateTime(); + void date(); + void time(); + void floats(); + void doubles(); + void uuids(); + void tuples(); + void tupleVector(); + + void internalExtraction(); + void filter(const std::string& query = + "SELECT * FROM Vectors ORDER BY int0 ASC", + const std::string& intFldName = "int0"); + + void internalBulkExtraction(); + void internalBulkExtractionUTF16(); + void internalStorageType(); + void nulls(); + void rowIterator(); + void stdVectorBool(); + + void asynchronous(int rowCount = 500); + + void any(); + void dynamicAny(); + + void multipleResults(const std::string& sql = + "SELECT * FROM Person WHERE Age = ?; " + "SELECT Age FROM Person WHERE FirstName = 'Bart'; " + "SELECT * FROM Person WHERE Age = ? OR Age = ? ORDER BY Age;"); + + void sqlChannel(const std::string& connector, const std::string& connect); + void sqlLogger(const std::string& connector, const std::string& connect); + + void autoCommit(); + void transactionIsolation(); + + void sessionTransaction(const std::string& connector, const std::string& connect); + void sessionTransactionNoAutoCommit(const std::string& connector, const std::string& connect); + void transaction(const std::string& connector, const std::string& connect); + void transactor(); + void nullable(); + + void unicode(const std::string& dbConnString); + void encoding(const std::string& dbConnString); + + void reconnect(); + + Poco::Data::Session& session(bool enc = false); + void setTransactionIsolation(Poco::Data::Session& session, Poco::UInt32 ti); + +private: + static const std::string MULTI_INSERT; + static const std::string MULTI_SELECT; + + Poco::Data::Session* _pSession; + Poco::Data::Session* _pEncSession; +}; + + +} } } // Poco::Data::Test + + +#endif // Data_SQLExecutor_INCLUDED diff --git a/Data/testsuite/src/SQLExecutor.cpp b/Data/testsuite/src/SQLExecutor.cpp new file mode 100644 index 000000000..e319a019a --- /dev/null +++ b/Data/testsuite/src/SQLExecutor.cpp @@ -0,0 +1,4382 @@ +// +// SQLExecutor.cpp +// +// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "CppUnit/TestCase.h" +#include "Poco/Data/Test/SQLExecutor.h" +#include "Poco/String.h" +#include "Poco/Format.h" +#include "Poco/Tuple.h" +#include "Poco/Nullable.h" +#include "Poco/Any.h" +#include "Poco/Dynamic/Var.h" +#include "Poco/DateTime.h" +#include "Poco/Stopwatch.h" +#include "Poco/NumberFormatter.h" +#include "Poco/Thread.h" +#include "Poco/Logger.h" +#include "Poco/Message.h" +#include "Poco/RefCountedObject.h" +#include "Poco/AutoPtr.h" +#include "Poco/SharedPtr.h" +#include "Poco/Exception.h" +#include "Poco/Data/Date.h" +#include "Poco/Data/Time.h" +#include "Poco/Data/LOB.h" +#include "Poco/Data/Session.h" +#include "Poco/Data/SessionPool.h" +#include "Poco/Data/StatementImpl.h" +#include "Poco/Data/RecordSet.h" +#include "Poco/Data/RowIterator.h" +#include "Poco/Data/RowFilter.h" +#include "Poco/Data/BulkExtraction.h" +#include "Poco/Data/BulkBinding.h" +#include "Poco/Data/SQLChannel.h" +#include "Poco/Data/Transaction.h" +#include "Poco/UnicodeConverter.h" +#include "Poco/UTFString.h" +#include +#include +#include +#include + + +using namespace Poco::Data::Keywords; +using Poco::Data::Session; +using Poco::Data::SessionPool; +using Poco::Data::Statement; +using Poco::Data::RecordSet; +using Poco::Data::Column; +using Poco::Data::Row; +using Poco::Data::RowFilter; +using Poco::Data::RowIterator; +using Poco::Data::SQLChannel; +using Poco::Data::LimitException; +using Poco::Data::BindingException; +using Poco::Data::CLOB; +using Poco::Data::Date; +using Poco::Data::Time; +using Poco::Data::Transaction; +using Poco::Data::NotConnectedException; +using Poco::Data::DataException; +using Poco::format; +using Poco::Tuple; +using Poco::Nullable; +using Poco::Any; +using Poco::AnyCast; +using Poco::Dynamic::Var; +using Poco::DateTime; +using Poco::Stopwatch; +using Poco::NumberFormatter; +using Poco::AutoPtr; +using Poco::Thread; +using Poco::Logger; +using Poco::Message; +using Poco::NotFoundException; +using Poco::InvalidAccessException; +using Poco::InvalidArgumentException; +using Poco::NotImplementedException; +using Poco::BadCastException; +using Poco::RangeException; +using Poco::TimeoutException; +using Poco::UnicodeConverter; +using Poco::UTF16String; +using Poco::UTF32String; + +namespace { + + +struct Person +{ + std::string lastName; + std::string firstName; + std::string address; + int age; + Person(){age = 0;} + Person(const std::string& ln, const std::string& fn, const std::string& adr, int a):lastName(ln), firstName(fn), address(adr), age(a) + { + } + bool operator==(const Person& other) const + { + return lastName == other.lastName && firstName == other.firstName && address == other.address && age == other.age; + } + + bool operator < (const Person& p) const + { + if (age < p.age) + return true; + if (lastName < p.lastName) + return true; + if (firstName < p.firstName) + return true; + return (address < p.address); + } + + const std::string& operator () () const + /// This method is required so we can extract data to a map! + { + // we choose the lastName as the key + return lastName; + } +}; + + +struct RefCountedPerson : public Poco::RefCountedObject +{ + std::string lastName; + std::string firstName; + std::string address; + int age; + RefCountedPerson(){age = 0;} + RefCountedPerson(const std::string& ln, const std::string& fn, const std::string& adr, int a):lastName(ln), firstName(fn), address(adr), age(a) + { + } + bool operator==(const Person& other) const + { + return lastName == other.lastName && firstName == other.firstName && address == other.address && age == other.age; + } + + bool operator < (const RefCountedPerson& p) const + { + if (age < p.age) + return true; + if (lastName < p.lastName) + return true; + if (firstName < p.firstName) + return true; + return (address < p.address); + } + + const std::string& operator () () const + /// This method is required so we can extract data to a map! + { + // we choose the lastName as the key + return lastName; + } + +private: + RefCountedPerson(const RefCountedPerson &); + RefCountedPerson& operator = (const RefCountedPerson&); +}; + + +} // namespace + + +namespace Poco { +namespace Data { + + +template <> +class TypeHandler +{ +public: + static void bind(std::size_t pos, + const Person& obj, + AbstractBinder::Ptr pBinder, + AbstractBinder::Direction dir = AbstractBinder::PD_IN) + { + // the table is defined as Person (LastName VARCHAR(30), FirstName VARCHAR, Address VARCHAR, Age INTEGER(3)) + poco_assert_dbg (!pBinder.isNull()); + pBinder->bind(pos++, obj.lastName, dir); + pBinder->bind(pos++, obj.firstName, dir); + pBinder->bind(pos++, obj.address, dir); + pBinder->bind(pos++, obj.age, dir); + } + + static void prepare(std::size_t pos, const Person& obj, AbstractPreparator::Ptr pPrepare) + { + // the table is defined as Person (LastName VARCHAR(30), FirstName VARCHAR, Address VARCHAR, Age INTEGER(3)) + poco_assert_dbg (!pPrepare.isNull()); + pPrepare->prepare(pos++, obj.lastName); + pPrepare->prepare(pos++, obj.firstName); + pPrepare->prepare(pos++, obj.address); + pPrepare->prepare(pos++, obj.age); + } + + static std::size_t size() + { + return 4; + } + + static void extract(std::size_t pos, Person& obj, const Person& defVal, AbstractExtractor::Ptr pExt) + { + poco_assert_dbg (!pExt.isNull()); + if (!pExt->extract(pos++, obj.lastName)) + obj.lastName = defVal.lastName; + if (!pExt->extract(pos++, obj.firstName)) + obj.firstName = defVal.firstName; + if (!pExt->extract(pos++, obj.address)) + obj.address = defVal.address; + if (!pExt->extract(pos++, obj.age)) + obj.age = defVal.age; + } + +private: + TypeHandler(const TypeHandler&); + TypeHandler& operator=(const TypeHandler&); +}; + + +template <> +class TypeHandler +{ +public: + static void bind(std::size_t pos, + const RefCountedPerson& obj, + AbstractBinder::Ptr pBinder, + AbstractBinder::Direction dir = AbstractBinder::PD_IN) + { + // the table is defined as Person (LastName VARCHAR(30), FirstName VARCHAR, Address VARCHAR, Age INTEGER(3)) + poco_assert_dbg (!pBinder.isNull()); + pBinder->bind(pos++, obj.lastName, dir); + pBinder->bind(pos++, obj.firstName, dir); + pBinder->bind(pos++, obj.address, dir); + pBinder->bind(pos++, obj.age, dir); + } + + static void prepare(std::size_t pos, RefCountedPerson& obj, AbstractPreparator::Ptr pPrepare) + { + // the table is defined as Person (LastName VARCHAR(30), FirstName VARCHAR, Address VARCHAR, Age INTEGER(3)) + poco_assert_dbg (!pPrepare.isNull()); + pPrepare->prepare(pos++, obj.lastName); + pPrepare->prepare(pos++, obj.firstName); + pPrepare->prepare(pos++, obj.address); + pPrepare->prepare(pos++, obj.age); + } + + static std::size_t size() + { + return 4; + } + + static void extract(std::size_t pos, RefCountedPerson& obj, const RefCountedPerson& defVal, AbstractExtractor::Ptr pExt) + { + poco_assert_dbg (!pExt.isNull()); + if (!pExt->extract(pos++, obj.lastName)) + obj.lastName = defVal.lastName; + if (!pExt->extract(pos++, obj.firstName)) + obj.firstName = defVal.firstName; + if (!pExt->extract(pos++, obj.address)) + obj.address = defVal.address; + if (!pExt->extract(pos++, obj.age)) + obj.age = defVal.age; + } + +private: + TypeHandler(const TypeHandler&); + TypeHandler& operator=(const TypeHandler&); +}; + + +namespace Test { + + +const std::string SQLExecutor::MULTI_INSERT = + "INSERT INTO Test VALUES ('1', 2, 3.5);" + "INSERT INTO Test VALUES ('2', 3, 4.5);" + "INSERT INTO Test VALUES ('3', 4, 5.5);" + "INSERT INTO Test VALUES ('4', 5, 6.5);" + "INSERT INTO Test VALUES ('5', 6, 7.5);"; + +const std::string SQLExecutor::MULTI_SELECT = + "SELECT * FROM Test WHERE First = '1';" + "SELECT * FROM Test WHERE First = '2';" + "SELECT * FROM Test WHERE First = '3';" + "SELECT * FROM Test WHERE First = '4';" + "SELECT * FROM Test WHERE First = '5';"; + + +SQLExecutor::SQLExecutor(const std::string& name, Poco::Data::Session* pSession, Poco::Data::Session* pEncSession): + CppUnit::TestCase(name), + _pSession(pSession), + _pEncSession(pEncSession) +{ +} + + +SQLExecutor::~SQLExecutor() +{ +} + + +Poco::Data::Session& SQLExecutor::session(bool enc) +{ + if (!enc) + { + poco_check_ptr(_pSession); + return *_pSession; + } + else + { + poco_check_ptr(_pEncSession); + return *_pEncSession; + } +} + + +void SQLExecutor::execute(const std::string& sql) +{ + try { session() << sql, now; } catch(DataException& ce){ std::cout << ce.displayText() << std::endl; fail (sql, __LINE__, __FILE__); } +} + + +void SQLExecutor::session(const std::string& connector, const std::string& connectString, int timeout) +{ + Poco::Data::Session s(connector, connectString, timeout); + assertTrue (s.isConnected()); + s.close(); + assertTrue (!s.isConnected()); + s.open(); + assertTrue (s.isConnected()); + s.reconnect(); + assertTrue (s.isConnected()); + s.close(); + assertTrue (!s.isConnected()); + s.reconnect(); + assertTrue (s.isConnected()); +} + + +void SQLExecutor::sessionPool(const std::string& connector, const std::string& connectString, int minSessions, int maxSessions, int idleTime, int timeout) +{ + assertTrue (minSessions <= maxSessions); + + SessionPool sp(connector, connectString, minSessions, maxSessions, idleTime, timeout); + assertEqual (0, sp.allocated()); + assertEqual (maxSessions, sp.available()); + Session s1 = sp.get(); + assertEqual (minSessions, sp.allocated()); + assertEqual (maxSessions-1, sp.available()); + s1 = sp.get(); + assertEqual (2, sp.allocated()); + assertEqual (maxSessions-1, sp.available()); + { + Session s2 = sp.get(); + assertEqual (2, sp.allocated()); + assertEqual (maxSessions-2, sp.available()); + } + assertEqual (2, sp.allocated()); + assertEqual (maxSessions-1, sp.available()); + + Thread::sleep(idleTime + 500); + assertEqual (maxSessions-minSessions, sp.available()); + + try + { + sp.setFeature("autoBind"s, true); + fail("SessionPool must throw on setFeature after the first session was created.", __LINE__, __FILE__); + } catch(const Poco::InvalidAccessException&) {} + try + { + sp.setProperty("storage"s, "deque"s); + fail("SessionPool must throw on valid setProperty after the first session was created.", __LINE__, __FILE__); + } catch(const Poco::InvalidAccessException&) {} + try + { + sp.setFeature("bulk"s, true); + fail("SessionPool must throw on valid setFeature after the first session was created.", __LINE__, __FILE__); + } catch(const Poco::InvalidAccessException&) {} + + std::vector sessions; + for (int i = 0; i < maxSessions-minSessions; ++i) + { + sessions.push_back(sp.get()); + } + + try + { + Session s = sp.get(); + fail("SessionPool must throw when no sesions available.", __LINE__, __FILE__); + } catch(const Poco::Data::SessionPoolExhaustedException&) {} + + sp.shutdown(); + try + { + Session s = sp.get(); + fail("SessionPool that was shut down must throw on get.", __LINE__, __FILE__); + } catch(const Poco::InvalidAccessException&) {} + + { + SessionPool pool(connector, connectString, 1, 4, 2, 10); + + try { pool.getFeature("g1"); fail ("getting an unsuported feature must fail", __LINE__, __FILE__); } + catch ( Poco::NotFoundException& ) { } + + try { pool.getProperty("r1"); fail ("getting an unsuported property must fail", __LINE__, __FILE__); } + catch ( Poco::NotFoundException& ) { } + + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 0); + assertTrue (pool.idle() == 0); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 4); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + Session s1(pool.get()); + + try { pool.setFeature("f1", true); fail ("setting an unsuported feature must fail", __LINE__, __FILE__); } + catch (Poco::InvalidAccessException&) { } + catch (Poco::NotImplementedException&) { } + catch (Poco::Data::NotSupportedException&) { } + + try { pool.setProperty("p1", 1); fail ("setting an unsuported property must fail", __LINE__, __FILE__); } + catch (Poco::InvalidAccessException&) { } + catch (Poco::NotImplementedException&) { } + catch (Poco::Data::NotSupportedException&) { } + + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 1); + assertTrue (pool.idle() == 0); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 3); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + + Session s2(pool.get()); + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 2); + assertTrue (pool.idle() == 0); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 2); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + + Session s4(pool.get()); + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 3); + assertTrue (pool.idle() == 0); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 1); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + + Session s5(pool.get()); + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 4); + assertTrue (pool.idle() == 0); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 0); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + + try + { + Session s6(pool.get()); + fail("pool exhausted - must throw", __LINE__, __FILE__); + } + catch (Poco::Data::SessionPoolExhaustedException&) { } + + s5.close(); + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 4); + assertTrue (pool.idle() == 1); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 1); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + + try + { + s5 << "DROP TABLE IF EXISTS Test", now; + fail("session unusable - must throw", __LINE__, __FILE__); + } + catch (Poco::Data::SessionUnavailableException&) { } + + s4.close(); + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 4); + assertTrue (pool.idle() == 2); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 2); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + + Thread::sleep(5000); // time to clean up idle sessions + + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 2); + assertTrue (pool.idle() == 0); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 2); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + + Session s6(pool.get()); + + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 3); + assertTrue (pool.idle() == 0); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 1); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + + s6.close(); + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 3); + assertTrue (pool.idle() == 1); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 2); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == pool.used() + pool.idle()); + + assertTrue (pool.isActive()); + pool.shutdown(); + assertTrue (!pool.isActive()); + try + { + Session s7(pool.get()); + fail("pool shut down - must throw", __LINE__, __FILE__); + } + catch (InvalidAccessException&) { } + + assertTrue (pool.capacity() == 4); + assertTrue (pool.allocated() == 0); + assertTrue (pool.idle() == 0); + assertTrue (pool.connTimeout() == 10); + assertTrue (pool.available() == 0); + assertTrue (pool.dead() == 0); + assertTrue (pool.allocated() == 0); + assertTrue (pool.used() == 0); + assertTrue (pool.idle() == 0); + } +} + + +void SQLExecutor::zeroRows() +{ + Statement stmt = (session() << "SELECT * FROM Person WHERE 0 = 1"); + assertTrue (0 == stmt.execute()); +} + + +void SQLExecutor::simpleAccess() +{ + std::string lastName = "lastName"; + std::string firstName("firstName"); + std::string address("Address"); + int age = 133132; + int count = 0; + std::string result; + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastName), use(firstName), use(address), use(age), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + + count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 1); + + try { session() << "SELECT LastName FROM Person", into(result), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (lastName == result); + + try { session() << "SELECT Age FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == age); +} + + +void SQLExecutor::complexType() +{ + Person p1("LN1", "FN1", "ADDR1", 1); + Person p2("LN2", "FN2", "ADDR2", 2); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(p1), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(p2), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + + Person c1; + try { session() << "SELECT * FROM Person WHERE LastName = 'LN1'", into(c1), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (c1 == p1); +} + + +void SQLExecutor::complexTypeTuple() +{ + Person p1("LN1", "FN1", "ADDR1", 1); + Person p2("LN2", "FN2", "ADDR2", 2); + + Tuple t(p1,p2); + try { *_pSession << "INSERT INTO Person VALUES(?,?,?,?,?,?,?,?)", use(t), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + + Tuple ret; + assertTrue (ret != t); + try { *_pSession << "SELECT * FROM Person", into(ret), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (ret == t); +} + + +void SQLExecutor::simpleAccessVector() +{ + std::vector lastNames; + std::vector firstNames; + std::vector addresses; + std::vector ages; + std::string tableName("Person"); + lastNames.push_back("LN1"); + lastNames.push_back("LN2"); + firstNames.push_back("FN1"); + firstNames.push_back("FN2"); + addresses.push_back("ADDR1"); + addresses.push_back("ADDR2"); + ages.push_back(1); + ages.push_back(2); + int count = 0; + std::string result; + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + + std::vector lastNamesR; + std::vector firstNamesR; + std::vector addressesR; + std::vector agesR; + try { session() << "SELECT * FROM Person", into(lastNamesR), into(firstNamesR), into(addressesR), into(agesR), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (ages == agesR); + assertTrue (lastNames == lastNamesR); + assertTrue (firstNames == firstNamesR); + assertTrue (addresses == addressesR); +} + + +void SQLExecutor::complexTypeVector() +{ + std::vector people; + people.push_back(Person("LN1", "FN1", "ADDR1", 1)); + people.push_back(Person("LN2", "FN2", "ADDR2", 2)); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + + std::vector result; + try { session() << "SELECT * FROM Person", into(result), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (result == people); +} + + +void SQLExecutor::sharedPtrComplexTypeVector() +{ + std::vector > people; + people.push_back(new Person("LN1", "FN1", "ADDR1", 1)); + people.push_back(new Person("LN2", "FN2", "ADDR2", 2)); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + + std::vector result; + try { session() << "SELECT * FROM Person", into(result), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (2 == result.size()); + assertTrue (result[0] == *people[0]); + assertTrue (result[1] == *people[1]); +} + + +void SQLExecutor::autoPtrComplexTypeVector() +{ + std::vector > people; + people.push_back(new RefCountedPerson("LN1", "FN1", "ADDR1", 1)); + people.push_back(new RefCountedPerson("LN2", "FN2", "ADDR2", 2)); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + + std::vector result; + try { session() << "SELECT * FROM Person", into(result), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (2 == result.size()); + assertTrue (result[0].address == people[0]->address); + assertTrue (result[0].age == people[0]->age); + assertTrue (result[0].firstName == people[0]->firstName); + assertTrue (result[0].lastName == people[0]->lastName); + assertTrue (result[1].address == people[1]->address); + assertTrue (result[1].age == people[1]->age); + assertTrue (result[1].firstName == people[1]->firstName); + assertTrue (result[1].lastName == people[1]->lastName); +} + + +void SQLExecutor::insertVector() +{ + std::vector str; + str.push_back("s1"); + str.push_back("s2"); + str.push_back("s3"); + str.push_back("s3"); + int count = 100; + + { + Statement stmt((session() << "INSERT INTO Strings VALUES (?)", use(str))); + try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 0); + + try { stmt.execute(); } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + + try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 4); + } + count = 0; + try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 4); +} + + +void SQLExecutor::insertEmptyVector() +{ + std::vector str; + + try + { + session() << "INSERT INTO Strings VALUES (?)", use(str), now; + fail("empty collections should not work", __LINE__, __FILE__); + } catch (Poco::Exception&) + { + } +} + + +void SQLExecutor::simpleAccessList() +{ + std::list lastNames; + std::list firstNames; + std::list addresses; + std::list ages; + std::string tableName("Person"); + lastNames.push_back("LN1"); + lastNames.push_back("LN2"); + firstNames.push_back("FN1"); + firstNames.push_back("FN2"); + addresses.push_back("ADDR1"); + addresses.push_back("ADDR2"); + ages.push_back(1); + ages.push_back(2); + int count = 0; + std::string result; + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + + std::list lastNamesR; + std::list firstNamesR; + std::list addressesR; + std::list agesR; + try { session() << "SELECT * FROM Person", into(lastNamesR), into(firstNamesR), into(addressesR), into(agesR), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (ages == agesR); + assertTrue (lastNames == lastNamesR); + assertTrue (firstNames == firstNamesR); + assertTrue (addresses == addressesR); +} + + +void SQLExecutor::complexTypeList() +{ + std::list people; + people.push_back(Person("LN1", "FN1", "ADDR1", 1)); + people.push_back(Person("LN2", "FN2", "ADDR2", 2)); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + + std::list result; + try { session() << "SELECT * FROM Person", into(result), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (result == people); +} + + +void SQLExecutor::insertList() +{ + std::list str; + str.push_back("s1"); + str.push_back("s2"); + str.push_back("s3"); + str.push_back("s3"); + int count = 100; + + { + Statement stmt((session() << "INSERT INTO Strings VALUES (?)", use(str))); + try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 0); + + try { stmt.execute(); } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 4); + } + count = 0; + try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 4); +} + + +void SQLExecutor::insertEmptyList() +{ + std::list str; + + try + { + session() << "INSERT INTO Strings VALUES (?)", use(str), now; + fail("empty collections should not work"); + } catch (Poco::Exception&) + { + } +} + + +void SQLExecutor::simpleAccessDeque() +{ + std::deque lastNames; + std::deque firstNames; + std::deque addresses; + std::deque ages; + std::string tableName("Person"); + lastNames.push_back("LN1"); + lastNames.push_back("LN2"); + firstNames.push_back("FN1"); + firstNames.push_back("FN2"); + addresses.push_back("ADDR1"); + addresses.push_back("ADDR2"); + ages.push_back(1); + ages.push_back(2); + int count = 0; + std::string result; + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + + std::deque lastNamesR; + std::deque firstNamesR; + std::deque addressesR; + std::deque agesR; + try { session() << "SELECT * FROM Person", into(lastNamesR), into(firstNamesR), into(addressesR), into(agesR), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (ages == agesR); + assertTrue (lastNames == lastNamesR); + assertTrue (firstNames == firstNamesR); + assertTrue (addresses == addressesR); +} + + +void SQLExecutor::complexTypeDeque() +{ + std::deque people; + people.push_back(Person("LN1", "FN1", "ADDR1", 1)); + people.push_back(Person("LN2", "FN2", "ADDR2", 2)); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + + std::deque result; + try { session() << "SELECT * FROM Person", into(result), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (result == people); +} + + +void SQLExecutor::insertDeque() +{ + std::deque str; + str.push_back("s1"); + str.push_back("s2"); + str.push_back("s3"); + str.push_back("s3"); + int count = 100; + + { + Statement stmt((session() << "INSERT INTO Strings VALUES (?)", use(str))); + try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 0); + + try { stmt.execute(); } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 4); + } + count = 0; + try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 4); +} + + +void SQLExecutor::insertEmptyDeque() +{ + std::deque str; + + try + { + session() << "INSERT INTO Strings VALUES (?)", use(str), now; + fail("empty collections should not work"); + } catch (Poco::Exception&) + { + } +} + + +void SQLExecutor::affectedRows(const std::string& whereClause) +{ + std::vector str; + str.push_back("s1"); + str.push_back("s2"); + str.push_back("s3"); + str.push_back("s3"); + int count = 100; + + Statement stmt1((session() << "INSERT INTO Strings VALUES(?)", use(str))); + session() << "SELECT COUNT(*) FROM Strings", into(count), now; + assertTrue (count == 0); + assertTrue (4 == stmt1.execute()); + session() << "SELECT COUNT(*) FROM Strings", into(count), now; + assertTrue (count == 4); + + Statement stmt2(session() << "UPDATE Strings SET str = 's4' WHERE str = 's3'"); + assertTrue (2 == stmt2.execute()); + + Statement stmt3(session() << "DELETE FROM Strings WHERE str = 's1'"); + assertTrue (1 == stmt3.execute()); + + std::string sql; + format(sql, "DELETE FROM Strings %s", whereClause); + Statement stmt4(session() << sql); + assertTrue (3 == stmt4.execute()); +} + + +void SQLExecutor::insertSingleBulk() +{ + int x = 0; + Statement stmt((session() << "INSERT INTO Strings VALUES (?)", use(x))); + + for (x = 0; x < 100; ++x) + { + std::size_t i = stmt.execute(); + assertTrue (1 == i); + } + int count = 0; + try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 100); + + try { session() << "SELECT SUM(str) FROM Strings", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == ((0+99)*100/2)); +} + + +void SQLExecutor::floats() +{ + float data = 1.5f; + float ret = 0.0f; + + try { session() << "INSERT INTO Strings VALUES (?)", use(data), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 1); + + try { session() << "SELECT str FROM Strings", into(ret), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (ret == data); +} + + +void SQLExecutor::doubles() +{ + double data = 1.5; + double ret = 0.0; + + try { session() << "INSERT INTO Strings VALUES (?)", use(data), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 1); + + try { session() << "SELECT str FROM Strings", into(ret), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (ret == data); +} + + +void SQLExecutor::uuids() +{ + Poco::UUID data("49cf6461-9b62-4163-9659-5472ef73153d"); + Poco::UUID ret; + + try { session() << "INSERT INTO Strings VALUES (?)", use(data), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 1); + + try { session() << "SELECT str FROM Strings", into(ret), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (ret == data); +} + + +void SQLExecutor::insertSingleBulkVec() +{ + std::vector data; + + for (int x = 0; x < 100; ++x) + data.push_back(x); + + Statement stmt((session() << "INSERT INTO Strings VALUES (?)", use(data))); + stmt.execute(); + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + + assertTrue (count == 100); + try { session() << "SELECT SUM(str) FROM Strings", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == ((0+99)*100/2)); +} + + +void SQLExecutor::limits() +{ + std::vector data; + for (int x = 0; x < 100; ++x) + { + data.push_back(x); + } + + try { session() << "INSERT INTO Strings VALUES (?)", use(data), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + std::vector retData; + try { session() << "SELECT * FROM Strings", into(retData), limit(50), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (retData.size() == 50); + for (int x = 0; x < 50; ++x) + { + assertTrue (data[x] == retData[x]); + } +} + + +void SQLExecutor::limitZero() +{ + std::vector data; + for (int x = 0; x < 100; ++x) + { + data.push_back(x); + } + + try { session() << "INSERT INTO Strings VALUES (?)", use(data), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + std::vector retData; + try { session() << "SELECT * FROM Strings", into(retData), limit(0), now; }// stupid test, but at least we shouldn't crash + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (retData.size() == 0); +} + + +void SQLExecutor::limitOnce() +{ + std::vector data; + for (int x = 0; x < 101; ++x) + { + data.push_back(x); + } + + try { session() << "INSERT INTO Strings VALUES (?)", use(data), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + std::vector retData; + Statement stmt = (session() << "SELECT * FROM Strings", into(retData), limit(50), now); + assertTrue (!stmt.done()); + assertTrue (retData.size() == 50); + stmt.execute(); + assertTrue (!stmt.done()); + assertTrue (retData.size() == 100); + stmt.execute(); + assertTrue (stmt.done()); + assertTrue (retData.size() == 101); + + for (int x = 0; x < 101; ++x) + { + assertTrue (data[x] == retData[x]); + } +} + + +void SQLExecutor::limitPrepare() +{ + std::vector data; + for (int x = 0; x < 100; ++x) + { + data.push_back(x); + } + + try + { + Statement stmt = (session() << "INSERT INTO Strings VALUES (?)", use(data)); + assertTrue (100 == stmt.execute()); + } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + std::vector retData; + Statement stmt = (session() << "SELECT * FROM Strings", into(retData), limit(50)); + assertTrue (retData.size() == 0); + assertTrue (!stmt.done()); + + try { stmt.execute(); } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (!stmt.done()); + assertTrue (retData.size() == 50); + + try { stmt.execute(); } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (stmt.done()); + assertTrue (retData.size() == 100); + + try { stmt.execute(); } // will restart execution! catch(DataException& ce) + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (!stmt.done()); + assertTrue (retData.size() == 150); + for (int x = 0; x < 150; ++x) + { + assertTrue (data[x%100] == retData[x]); + } +} + + +void SQLExecutor::prepare() +{ + std::vector data; + for (int x = 0; x < 100; x += 2) + { + data.push_back(x); + } + + { + Statement stmt((session() << "INSERT INTO Strings VALUES (?)", use(data))); + } + + // stmt should not have been executed when destroyed + int count = 100; + try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 0); +} + + +void SQLExecutor::doBulkPerformance(Poco::UInt32 size) +{ + std::vector ints(size, 1); + std::vector strings(size, "abc"); + std::vector floats(size, .5); + std::vector dateTimes(size); + + Stopwatch sw; + try + { + sw.start(); + session() << "INSERT INTO MiscTest (First, Third, Fourth, Fifth) VALUES (?,?,?,?)", + use(strings), + use(ints), + use(floats), + use(dateTimes), now; + sw.stop(); + } catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + double time = sw.elapsed() / 1000.0; + + try { session() << "DELETE FROM MiscTest", now; } catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + try + { + sw.restart(); + session() << "INSERT INTO MiscTest (First, Third, Fourth, Fifth) VALUES (?,?,?,?)", + use(strings, bulk), + use(ints, bulk), + use(floats, bulk), + use(dateTimes, bulk), now; + sw.stop(); + } catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + double bulkTime = sw.elapsed() / 1000.0; + + double speedup; + if (0.0 == bulkTime) + { + if (0.0 == time) speedup = 1.0; + else speedup = time; + } + else + speedup = time / bulkTime; + + std::cout << "INSERT => Size:" << size + << ", Time: " << time + << ", Bulk Time: " << bulkTime + << " [ms], Speedup: " << speedup + << 'x' << std::endl; + + ints.clear(); + strings.clear(); + floats.clear(); + dateTimes.clear(); + + try + { + sw.restart(); + session() << "SELECT First, Third, Fourth, Fifth FROM MiscTest", + into(strings), + into(ints), + into(floats), + into(dateTimes), + now; + sw.stop(); + } catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + time = sw.elapsed() / 1000.0; + + assertTrue (ints.size() == size); + + ints.clear(); + strings.clear(); + floats.clear(); + dateTimes.clear(); + + try + { + sw.restart(); + session() << "SELECT First, Third, Fourth, Fifth FROM MiscTest", + into(strings, bulk(size)), + into(ints, bulk(size)), + into(floats, bulk(size)), + into(dateTimes, bulk(size)), + now; + sw.stop(); + } catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + bulkTime = sw.elapsed() / 1000.0; + + assertTrue (ints.size() == size); + + if (0.0 == bulkTime) + { + if (0.0 == time) speedup = 1.0; + else speedup = time; + } + else + speedup = time / bulkTime; + + std::cout << "SELECT => Size:" << size + << ", Time: " << time + << ", Bulk Time: " << bulkTime + << " [ms], Speedup: " << speedup + << 'x' << std::endl; +} + + +void SQLExecutor::setSimple() +{ + std::set lastNames; + std::set firstNames; + std::set addresses; + std::set ages; + std::string tableName("Person"); + lastNames.insert("LN1"); + lastNames.insert("LN2"); + firstNames.insert("FN1"); + firstNames.insert("FN2"); + addresses.insert("ADDR1"); + addresses.insert("ADDR2"); + ages.insert(1); + ages.insert(2); + int count = 0; + std::string result; + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + + std::set lastNamesR; + std::set firstNamesR; + std::set addressesR; + std::set agesR; + try { session() << "SELECT * FROM Person", into(lastNamesR), into(firstNamesR), into(addressesR), into(agesR), now; } catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (ages == agesR); + assertTrue (lastNames == lastNamesR); + assertTrue (firstNames == firstNamesR); + assertTrue (addresses == addressesR); +} + + +void SQLExecutor::setComplex() +{ + std::set people; + people.insert(Person("LN1", "FN1", "ADDR1", 1)); + people.insert(Person("LN2", "FN2", "ADDR2", 2)); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + + std::set result; + try { session() << "SELECT * FROM Person", into(result), now; } catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (result == people); +} + + +void SQLExecutor::setComplexUnique() +{ + std::vector people; + Person p1("LN1", "FN1", "ADDR1", 1); + people.push_back(p1); + people.push_back(p1); + people.push_back(p1); + people.push_back(p1); + Person p2("LN2", "FN2", "ADDR2", 2); + people.push_back(p2); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 5); + + std::set result; + try { session() << "SELECT * FROM Person", into(result), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (result.size() == 2); + assertTrue (*result.begin() == p1); + assertTrue (*++result.begin() == p2); +} + +void SQLExecutor::multiSetSimple() +{ + std::multiset lastNames; + std::multiset firstNames; + std::multiset addresses; + std::multiset ages; + std::string tableName("Person"); + lastNames.insert("LN1"); + lastNames.insert("LN2"); + firstNames.insert("FN1"); + firstNames.insert("FN2"); + addresses.insert("ADDR1"); + addresses.insert("ADDR2"); + ages.insert(1); + ages.insert(2); + int count = 0; + std::string result; + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + + std::multiset lastNamesR; + std::multiset firstNamesR; + std::multiset addressesR; + std::multiset agesR; + try { session() << "SELECT * FROM Person", into(lastNamesR), into(firstNamesR), into(addressesR), into(agesR), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (ages.size() == agesR.size()); + assertTrue (lastNames.size() == lastNamesR.size()); + assertTrue (firstNames.size() == firstNamesR.size()); + assertTrue (addresses.size() == addressesR.size()); +} + + +void SQLExecutor::multiSetComplex() +{ + std::multiset people; + Person p1("LN1", "FN1", "ADDR1", 1); + people.insert(p1); + people.insert(p1); + people.insert(p1); + people.insert(p1); + Person p2("LN2", "FN2", "ADDR2", 2); + people.insert(p2); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 5); + + std::multiset result; + try { session() << "SELECT * FROM Person", into(result), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (result.size() == people.size()); +} + + +void SQLExecutor::mapComplex() +{ + std::map people; + Person p1("LN1", "FN1", "ADDR1", 1); + Person p2("LN2", "FN2", "ADDR2", 2); + people.insert(std::make_pair("LN1", p1)); + people.insert(std::make_pair("LN2", p2)); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + + std::map result; + try { session() << "SELECT * FROM Person", into(result), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (result == people); +} + + +void SQLExecutor::mapComplexUnique() +{ + std::multimap people; + Person p1("LN1", "FN1", "ADDR1", 1); + Person p2("LN2", "FN2", "ADDR2", 2); + people.insert(std::make_pair("LN1", p1)); + people.insert(std::make_pair("LN1", p1)); + people.insert(std::make_pair("LN1", p1)); + people.insert(std::make_pair("LN1", p1)); + people.insert(std::make_pair("LN2", p2)); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 5); + + std::map result; + try { session() << "SELECT * FROM Person", into(result), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (result.size() == 2); +} + + +void SQLExecutor::multiMapComplex() +{ + std::multimap people; + Person p1("LN1", "FN1", "ADDR1", 1); + Person p2("LN2", "FN2", "ADDR2", 2); + people.insert(std::make_pair("LN1", p1)); + people.insert(std::make_pair("LN1", p1)); + people.insert(std::make_pair("LN1", p1)); + people.insert(std::make_pair("LN1", p1)); + people.insert(std::make_pair("LN2", p2)); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 5); + + std::multimap result; + try { session() << "SELECT * FROM Person", into(result), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (result.size() == people.size()); +} + + +void SQLExecutor::selectIntoSingle() +{ + std::multimap people; + Person p1("LN1", "FN1", "ADDR1", 1); + Person p2("LN2", "FN2", "ADDR2", 2); + people.insert(std::make_pair("LN1", p1)); + people.insert(std::make_pair("LN2", p2)); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + Person result; + try { session() << "SELECT * FROM Person ORDER BY LastName", into(result), limit(1), now; }// will return 1 object into one single result + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (result == p1); +} + + +void SQLExecutor::selectIntoSingleStep() +{ + std::multimap people; + Person p1("LN1", "FN1", "ADDR1", 1); + Person p2("LN2", "FN2", "ADDR2", 2); + people.insert(std::make_pair("LN1", p1)); + people.insert(std::make_pair("LN2", p2)); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + Person result; + Statement stmt = (session() << "SELECT * FROM Person", into(result), limit(1)); + stmt.execute(); + assertTrue (result == p1); + assertTrue (!stmt.done()); + stmt.execute(); + assertTrue (result == p2); + assertTrue (stmt.done()); +} + + +void SQLExecutor::selectIntoSingleFail() +{ + std::multimap people; + Person p1("LN1", "FN1", "ADDR1", 1); + Person p2("LN2", "FN2", "ADDR2", 2); + people.insert(std::make_pair("LN1", p1)); + people.insert(std::make_pair("LN2", p2)); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), limit(2, true), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + Person result; + try + { + session() << "SELECT * FROM Person", into(result), limit(1, true), now; // will fail now + fail("hardLimit is set: must fail", __LINE__, __FILE__); + } catch(Poco::Data::LimitException&) + { + } +} + + +void SQLExecutor::lowerLimitOk() +{ + std::multimap people; + Person p1("LN1", "FN1", "ADDR1", 1); + Person p2("LN2", "FN2", "ADDR2", 2); + people.insert(std::make_pair("LN1", p1)); + people.insert(std::make_pair("LN1", p2)); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + Person result; + try + { + session() << "SELECT * FROM Person", into(result), lowerLimit(2), now; // will return 2 objects into one single result but only room for one! + fail("Not enough space for results", __LINE__, __FILE__); + } catch(Poco::Exception&) + { + } +} + + +void SQLExecutor::singleSelect() +{ + std::multimap people; + Person p1("LN1", "FN1", "ADDR1", 1); + Person p2("LN2", "FN2", "ADDR2", 2); + people.insert(std::make_pair("LN1", p1)); + people.insert(std::make_pair("LN1", p2)); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + Person result; + Statement stmt = (session() << "SELECT * FROM Person", into(result), limit(1)); + stmt.execute(); + assertTrue (result == p1); + assertTrue (!stmt.done()); + stmt.execute(); + assertTrue (result == p2); + assertTrue (stmt.done()); +} + + +void SQLExecutor::lowerLimitFail() +{ + std::multimap people; + Person p1("LN1", "FN1", "ADDR1", 1); + Person p2("LN2", "FN2", "ADDR2", 2); + people.insert(std::make_pair("LN1", p1)); + people.insert(std::make_pair("LN1", p2)); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + Person result; + try + { + session() << "SELECT * FROM Person", into(result), lowerLimit(3), now; // will fail + fail("should fail. not enough data", __LINE__, __FILE__); + } catch(Poco::Exception&) + { + } +} + + +void SQLExecutor::combinedLimits() +{ + std::multimap people; + Person p1("LN1", "FN1", "ADDR1", 1); + Person p2("LN2", "FN2", "ADDR2", 2); + people.insert(std::make_pair("LN1", p1)); + people.insert(std::make_pair("LN1", p2)); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + std::vector result; + try { session() << "SELECT * FROM Person", into(result), lowerLimit(2), upperLimit(2), now; }// will return 2 objects + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (result.size() == 2); + assertTrue (result[0] == p1); + assertTrue (result[1] == p2); +} + + + +void SQLExecutor::ranges() +{ + std::multimap people; + Person p1("LN1", "FN1", "ADDR1", 1); + Person p2("LN2", "FN2", "ADDR2", 2); + people.insert(std::make_pair("LN1", p1)); + people.insert(std::make_pair("LN1", p2)); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + std::vector result; + try { session() << "SELECT * FROM Person", into(result), range(2, 2), now; }// will return 2 objects + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (result.size() == 2); + assertTrue (result[0] == p1); + assertTrue (result[1] == p2); +} + + +void SQLExecutor::combinedIllegalLimits() +{ + std::multimap people; + Person p1("LN1", "FN1", "ADDR1", 1); + Person p2("LN2", "FN2", "ADDR2", 2); + people.insert(std::make_pair("LN1", p1)); + people.insert(std::make_pair("LN1", p2)); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + Person result; + try + { + session() << "SELECT * FROM Person", into(result), lowerLimit(3), upperLimit(2), now; + fail("lower > upper is not allowed", __LINE__, __FILE__); + } catch(LimitException&) + { + } +} + + +void SQLExecutor::illegalRange() +{ + std::multimap people; + Person p1("LN1", "FN1", "ADDR1", 1); + Person p2("LN2", "FN2", "ADDR2", 2); + people.insert(std::make_pair("LN1", p1)); + people.insert(std::make_pair("LN1", p2)); + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 2); + Person result; + try + { + session() << "SELECT * FROM Person", into(result), range(3, 2), now; + fail("lower > upper is not allowed", __LINE__, __FILE__); + } catch(LimitException&) + { + } +} + + +void SQLExecutor::emptyDB() +{ + int count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 0); + + Person result; + Statement stmt = (session() << "SELECT * FROM Person", into(result), limit(1)); + stmt.execute(); + assertTrue (result.firstName.empty()); + assertTrue (stmt.done()); +} + + +void SQLExecutor::blob(int bigSize, const std::string& blobPlaceholder) +{ + std::string lastName("lastname"); + std::string firstName("firstname"); + std::string address("Address"); + + CLOB img("0123456789", 10); + int count = 0; + try { session() << format("INSERT INTO Person VALUES (?,?,?,%s)", blobPlaceholder), + use(lastName), use(firstName), use(address), use(img), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 1); + + CLOB res; + assertTrue (res.size() == 0); + try { session() << "SELECT Image FROM Person", into(res), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (res == img); + + CLOB big; + std::vector v(bigSize, 'x'); + big.assignRaw(&v[0], v.size()); + + assertTrue (big.size() == bigSize); + + try { session() << "DELETE FROM Person", now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + try + { + session() << format("INSERT INTO Person VALUES (?,?,?,%s)", blobPlaceholder), + use(lastName), use(firstName), use(address), use(big), now; + } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + // sometimes throws (intentionally, caught in caller) + session() << "SELECT Image FROM Person", into(res), now; + // when it doesn't throw, this must be true + assertTrue (res == big); +} + + +void SQLExecutor::blobStmt() +{ + std::string lastName("lastname"); + std::string firstName("firstname"); + std::string address("Address"); + CLOB blob("0123456789", 10); + + int count = 0; + Statement ins = (session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastName), use(firstName), use(address), use(blob)); + ins.execute(); + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 1); + + CLOB res; + poco_assert (res.size() == 0); + Statement stmt = (session() << "SELECT Image FROM Person", into(res)); + try { stmt.execute(); } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + poco_assert (res == blob); +} + + +void SQLExecutor::recordSet() +{ + std::string lastName("lastname"); + std::string firstName("firstname"); + std::string address("Address"); + DateTime born(1965, 6, 18, 5, 35, 1); + DateTime born2(1991, 6, 18, 14, 35, 1); + + try + { + { + Statement stmt = (session() << "SELECT COUNT(*) AS row_count FROM Person", now); + RecordSet rset(stmt); + assertTrue (rset.rowCount() == 1); + assertTrue (rset["row_count"].convert() == 0); + } + + { + Statement stmt = (session() << + "INSERT INTO Person VALUES (?,?,?,?)", + use(lastName), use(firstName), use(address), use(born), now); + RecordSet rset(stmt); + assertTrue (rset.rowCount() == 0); + assertTrue (rset.affectedRowCount() == 1); + } + + { + Statement stmt = (session() << "SELECT COUNT(*) AS row_count FROM Person", now); + RecordSet rset(stmt); + assertTrue (rset.rowCount() == 1); + assertTrue (rset["row_count"].convert() == 1); + } + + { + Statement stmt = (session() << "SELECT Born FROM Person", now); + RecordSet rset(stmt); + assertTrue (rset.rowCount() == 1); + assertTrue (rset["Born"].convert() == born); + } + + { + Statement stmt = (session() << + "DELETE FROM Person WHERE born = ?", use(born), now); + RecordSet rset(stmt); + assertTrue (rset.rowCount() == 0); + assertTrue (rset.affectedRowCount() == 1); + } + + { + Statement stmt = (session() << + "INSERT INTO Person VALUES (?,?,?,?)", + use(lastName), use(firstName), use(address), use(born), now); + RecordSet rset(stmt); + assertTrue (rset.rowCount() == 0); + assertTrue (rset.affectedRowCount() == 1); + } + + { + Statement stmt = (session() << + "INSERT INTO Person VALUES (?,?,?,?)", + use(lastName), use(firstName), use(address), use(born2), now); + RecordSet rset(stmt); + assertTrue (rset.rowCount() == 0); + assertTrue (rset.affectedRowCount() == 1); + } + + { + Statement stmt = (session() << "SELECT COUNT(*) AS row_count FROM Person", now); + RecordSet rset(stmt); + assertTrue (rset.rowCount() == 1); + assertTrue (rset["row_count"].convert() == 2); + } + + { + Statement stmt = (session() << "SELECT Born FROM Person ORDER BY Born DESC", now); + RecordSet rset(stmt); + assertTrue (rset.rowCount() == 2); + assertTrue (rset["Born"].convert() == born2); + rset.moveNext(); + assertTrue (rset["Born"].convert() == born); + rset.moveFirst(); + assertTrue (rset["Born"].convert() == born2); + rset.moveLast(); + assertTrue (rset["Born"].convert() == born); + } + + { + Statement stmt = (session() << "DELETE FROM Person", now); + RecordSet rset(stmt); + assertTrue (rset.rowCount() == 0); + assertTrue (rset.affectedRowCount() == 2); + } + } catch (ConnectionFailedException& ce){ std::cout << ce.displayText() << std::endl; fail (__func__, __LINE__, __FILE__); } + +} + + +void SQLExecutor::dateTime() +{ + std::string lastName("lastname"); + std::string firstName("firstname"); + std::string address("Address"); + + DateTime born(1965, 6, 18, 5, 35, 1); + int count = 0; + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastName), use(firstName), use(address), use(born), now; } catch (ConnectionFailedException& ce){ std::cout << ce.displayText() << std::endl; fail (__func__, __LINE__, __FILE__); } + + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } catch (ConnectionFailedException& ce){ std::cout << ce.displayText() << std::endl; fail (__func__, __LINE__, __FILE__); } + + assertTrue (count == 1); + + DateTime res; + try { session() << "SELECT Born FROM Person", into(res), now; } catch (ConnectionFailedException& ce){ std::cout << ce.displayText() << std::endl; fail (__func__, __LINE__, __FILE__); } + + assertTrue (res == born); + + Statement stmt = (session() << "SELECT Born FROM Person", now); + RecordSet rset(stmt); + + res = rset["Born"].convert(); + assertTrue (res == born); +} + + +void SQLExecutor::date() +{ + std::string lastName("lastname"); + std::string firstName("firstname"); + std::string address("Address"); + + Date bornDate(1965, 6, 18); + int count = 0; + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", + use(lastName), + use(firstName), + use(address), + use(bornDate), + now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 1); + + Date d; + Time t; + try { session() << "SELECT BornDate FROM Person", into(d), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (d == bornDate); + + Statement stmt = (session() << "SELECT BornDate FROM Person", now); + RecordSet rset(stmt); + + DateTime dt1 = rset["BornDate"].convert(); + + Date d2(dt1); + assertTrue (d2 == bornDate); +} + + +void SQLExecutor::time() +{ + std::string lastName("lastname"); + std::string firstName("firstname"); + std::string address("Address"); + + Time bornTime (5, 35, 1); + int count = 0; + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", + use(lastName), + use(firstName), + use(address), + use(bornTime), + now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 1); + + Date d; + Time t; + try { session() << "SELECT BornTime FROM Person", into(t), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (t == bornTime); + + Statement stmt = (session() << "SELECT BornTime FROM Person", now); + RecordSet rset(stmt); + + DateTime dt2 = rset["BornTime"].convert(); + Time t2(dt2); + assertTrue (t2 == bornTime); +} + + +void SQLExecutor::tuples() +{ + typedef Tuple TupleType; + TupleType t(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19); + + try { session() << "INSERT INTO Tuples VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", use(t), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + + TupleType ret(-10,-11,-12,-13,-14,-15,-16,-17,-18,-19); + assertTrue (ret != t); + try { session() << "SELECT * FROM Tuples", into(ret), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (ret == t); +} + +void SQLExecutor::tupleVector() +{ + typedef Tuple TupleType; + TupleType t(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19); + Tuple + t10(10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29); + TupleType t100(100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119); + std::vector v; + v.push_back(t); + v.push_back(t10); + v.push_back(t100); + + try { session() << "INSERT INTO Tuples VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", use(v), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + int count = 0; + try { session() << "SELECT COUNT(*) FROM Tuples", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (v.size() == count); + + std::vector > ret; + try { session() << "SELECT * FROM Tuples", into(ret), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (ret == v); +} + + +void SQLExecutor::internalExtraction() +{ + std::vector > v; + v.push_back(Tuple(1, 1.5f, "3")); + v.push_back(Tuple(2, 2.5f, "4")); + v.push_back(Tuple(3, 3.5f, "5")); + v.push_back(Tuple(4, 4.5f, "6")); + + try { session() << "INSERT INTO Vectors VALUES (?,?,?)", use(v), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + try + { + Statement stmt = (session() << "SELECT * FROM Vectors", now); + RecordSet rset(stmt); + + assertTrue (3 == rset.columnCount()); + assertTrue (4 == rset.rowCount()); + + int curVal = 3; + do + { + assertTrue (rset["str0"] == curVal); + ++curVal; + } while (rset.moveNext()); + + rset.moveFirst(); + assertTrue (rset["str0"] == "3"); + rset.moveLast(); + assertTrue (rset["str0"] == "6"); + + RecordSet rset2(rset); + assertTrue (3 == rset2.columnCount()); + assertTrue (4 == rset2.rowCount()); + + int i = rset.value(0,0); + assertTrue (1 == i); + + std::string s = rset.value(0,0).convert(); + assertTrue ("1" == s); + + int a = rset.value(0,2); + assertTrue (3 == a); + + try + { + double d = rset.value(1,1); + assertTrue (2.5 == d); + } + catch (BadCastException&) + { + float f = rset.value(1,1); + assertTrue (2.5 == f); + } + + try + { + s = rset.value(2, 2); + } + catch (BadCastException&) + { + UTF16String us = rset.value(2, 2); + Poco::UnicodeConverter::convert(us, s); + } + assertTrue ("5" == s); + + i = rset.value("str0", 2); + assertTrue (5 == i); + + const Column >& col = rset.column >(0); + Column >::Iterator it = col.begin(); + Column >::Iterator end = col.end(); + for (int i = 1; it != end; ++it, ++i) + assertTrue (*it == i); + + rset = (session() << "SELECT COUNT(*) AS cnt FROM Vectors", now); + + //various results for COUNT(*) are received from different drivers + try + { + //this is what most drivers will return + int i = rset.value(0,0); + assertTrue (4 == i); + } + catch(BadCastException&) + { + try + { + //this is for Oracle + double i = rset.value(0,0); + assertTrue (4 == int(i)); + } + catch(BadCastException&) + { + //this is for PostgreSQL + Poco::Int64 big = rset.value(0,0); + assertTrue (4 == big); + } + } + + s = rset.value("cnt", 0).convert(); + assertTrue ("4" == s); + + try { rset.column >(100); fail ("must fail"); } + catch (RangeException&) { } + + try { rset.value(0,0); fail ("must fail"); } + catch (BadCastException&) { } + + stmt = (session() << "DELETE FROM Vectors", now); + rset = stmt; + + try { rset.column >(0); fail ("must fail"); } + catch (RangeException&) { } + } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + +} + + +void SQLExecutor::filter(const std::string& query, const std::string& intFldName) +{ + std::vector > v; + v.push_back(Tuple(1, 1.5f, "3")); + v.push_back(Tuple(2, 2.5f, "4")); + v.push_back(Tuple(3, 3.5f, "5")); + v.push_back(Tuple(4, 4.5f, "6")); + + try { session() << "INSERT INTO Vectors VALUES (?,?,?)", use(v), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + try + { + Statement stmt = (session() << query, now); + RecordSet rset(stmt); + assertTrue (rset.totalRowCount() == 4); + RowFilter::Ptr pRF = new RowFilter(&rset); + assertTrue (pRF->isEmpty()); + pRF->add(intFldName, RowFilter::VALUE_EQUAL, 1); + assertTrue (!pRF->isEmpty()); + + Var da; + try + { + da = rset.value(0, 1); + fail ("must fail"); + } catch (InvalidAccessException&) + { + da = rset.value(0, 1, false); + assertTrue (2 == da); + da = rset.value(0, 0); + assertTrue (1 == da); + } + + assertTrue (rset.rowCount() == 1); + assertTrue (rset.moveFirst()); + assertTrue (1 == rset[intFldName]); + assertTrue (!rset.moveNext()); + pRF->add("flt0", RowFilter::VALUE_LESS_THAN_OR_EQUAL, 3.5f); + assertTrue (rset.rowCount() == 3); + assertTrue (rset.moveNext()); + assertTrue (2.5 == rset["flt0"]); + assertTrue (rset.moveNext()); + assertTrue (3.5 == rset["flt0"]); + assertTrue (!rset.moveNext()); + pRF->add("str0", RowFilter::VALUE_EQUAL, 6); + assertTrue (rset.rowCount() == 4); + assertTrue (rset.moveLast()); + assertTrue ("6" == rset["str0"]); + pRF->remove("flt0"); + assertTrue (rset.rowCount() == 2); + assertTrue (rset.moveFirst()); + assertTrue ("3" == rset["str0"]); + assertTrue (rset.moveNext()); + assertTrue ("6" == rset["str0"]); + pRF->remove(intFldName); + pRF->remove("str0"); + assertTrue (pRF->isEmpty()); + pRF->add("str0", "!=", 3); + assertTrue (rset.rowCount() == 3); + + RowFilter::Ptr pRF1 = new RowFilter(pRF, RowFilter::OP_AND); + pRF1->add(intFldName, "==", 2); + assertTrue (rset.rowCount() == 1); + pRF1->add(intFldName, "<", 2); + assertTrue (rset.rowCount() == 1); + pRF1->add(intFldName, ">", 3); + assertTrue (rset.rowCount() == 2); + pRF->removeFilter(pRF1); + pRF->remove("str0"); + assertTrue (pRF->isEmpty()); + assertTrue (rset.rowCount() == 4); + } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + +} + + +void SQLExecutor::internalBulkExtraction() +{ + int size = 100; + std::vector lastName(size); + std::vector firstName(size); + std::vector address(size); + std::vector age(size); + + for (int i = 0; i < size; ++i) + { + lastName[i] = "LN" + NumberFormatter::format(i); + firstName[i] = "FN" + NumberFormatter::format(i); + address[i] = "Addr" + NumberFormatter::format(i); + age[i] = i; + } + + try + { + session() << "INSERT INTO Person VALUES (?,?,?,?)", + use(lastName, bulk), + use(firstName, bulk), + use(address, bulk), + use(age, bulk), + now; + } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + try + { + Statement stmt = (session() << "SELECT * FROM Person", bulk(size), now); + RecordSet rset(stmt); + assertTrue (size == rset.rowCount()); + assertTrue ("LN0" == rset["LastName"]); + assertTrue (0 == rset["Age"]); + rset.moveNext(); + assertTrue ("LN1" == rset["LastName"]); + assertTrue (1 == rset["Age"]); + rset.moveLast(); + assertTrue (std::string("LN") + NumberFormatter::format(size - 1) == rset["LastName"]); + assertTrue (size - 1 == rset["Age"]); + } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + try + { + Statement stmt = (session() << "SELECT * FROM Person", limit(size), bulk, now); + RecordSet rset(stmt); + assertTrue (size == rset.rowCount()); + assertTrue ("LN0" == rset["LastName"]); + assertTrue (0 == rset["Age"]); + rset.moveLast(); + assertTrue (std::string("LN") + NumberFormatter::format(size - 1) == rset["LastName"]); + assertTrue (size - 1 == rset["Age"]); + } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } +} + + +void SQLExecutor::internalBulkExtractionUTF16() +{ + int size = 100; + std::vector lastName(size); + std::vector firstName(size); + std::vector address(size); + std::vector age(size); + + for (int i = 0; i < size; ++i) + { + lastName[i] = Poco::UnicodeConverter::to("LN" + NumberFormatter::format(i)); + firstName[i] = Poco::UnicodeConverter::to("FN" + NumberFormatter::format(i)); + address[i] = Poco::UnicodeConverter::to("Addr" + NumberFormatter::format(i)); + age[i] = i; + } + + try + { + session() << "INSERT INTO Person VALUES (?,?,?,?)", + use(lastName, bulk), + use(firstName, bulk), + use(address, bulk), + use(age, bulk), + now; + } catch (ConnectionFailedException& ce){ std::cout << ce.displayText() << std::endl; fail (__func__, __LINE__, __FILE__); } + + try + { + Statement stmt = (session() << "SELECT * FROM Person", bulk(size), now); + RecordSet rset(stmt); + assertTrue (size == rset.rowCount()); + assertTrue (Poco::UnicodeConverter::to("LN0") == rset["LastName"]); + assertTrue (0 == rset["Age"]); + rset.moveNext(); + assertTrue (Poco::UnicodeConverter::to("LN1") == rset["LastName"]); + assertTrue (1 == rset["Age"]); + rset.moveLast(); + assertTrue (std::string("LN") + NumberFormatter::format(size - 1) == rset["LastName"]); + assertTrue (size - 1 == rset["Age"]); + } catch (ConnectionFailedException& ce){ std::cout << ce.displayText() << std::endl; fail (__func__, __LINE__, __FILE__); } + + try + { + Statement stmt = (session() << "SELECT * FROM Person", limit(size), bulk, now); + RecordSet rset(stmt); + assertTrue (size == rset.rowCount()); + assertTrue ("LN0" == rset["LastName"]); + assertTrue (0 == rset["Age"]); + rset.moveLast(); + assertTrue (std::string("LN") + NumberFormatter::format(size - 1) == rset["LastName"]); + assertTrue (size - 1 == rset["Age"]); + } catch (ConnectionFailedException& ce){ std::cout << ce.displayText() << std::endl; fail (__func__, __LINE__, __FILE__); } + +} + + +void SQLExecutor::internalStorageType() +{ + std::vector manips; + manips.push_back(list); + manips.push_back(deque); + manips.push_back(vector); + + std::vector > v; + v.push_back(Tuple(1, 1.5f, "3")); + v.push_back(Tuple(2, 2.5f, "4")); + v.push_back(Tuple(3, 3.5f, "5")); + v.push_back(Tuple(4, 4.5f, "6")); + + try { session() << "INSERT INTO Vectors VALUES (?,?,?)", use(v), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + try + { + std::vector::iterator it = manips.begin(); + std::vector::iterator end = manips.end(); + + for (; it != end; ++it) + { + Statement stmt = (session() << "SELECT * FROM Vectors", *it, now); + RecordSet rset(stmt); + + assertTrue (3 == rset.columnCount()); + assertTrue (4 == rset.rowCount()); + + int curVal = 3; + do + { + assertTrue (rset["str0"] == curVal); + ++curVal; + } while (rset.moveNext()); + + rset.moveFirst(); + assertTrue (rset["str0"] == "3"); + rset.moveLast(); + assertTrue (rset["str0"] == "6"); + + try + { + stmt = (session() << "SELECT * FROM Vectors", now, *it); + fail ("must fail"); + } + catch(InvalidAccessException&){} + + try + { + stmt = (session() << "SELECT * FROM Vectors", into(v), now, *it); + fail ("must fail"); + } + catch(InvalidAccessException&){} + + try + { + stmt = (session() << "SELECT * FROM Vectors", into(v), *it, now); + fail ("must fail"); + } + catch(InvalidAccessException&){} + } + } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + +} + + +void SQLExecutor::nulls() +{ + try { session() << "INSERT INTO NullTest (i,r,v) VALUES (?,?,?)", use(null), use(null), use(null), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + RecordSet rs(session(), "SELECT * FROM NullTest"); + assertTrue (1 == rs.rowCount()); + rs.moveFirst(); + assertTrue (rs.isNull("i")); + assertTrue (rs["i"] != 0); + assertTrue (rs.isNull("r")); + assertTrue (rs.isNull("v")); + assertTrue (rs["v"] != ""); + assertTrue (rs.nvl("i") == 0); + assertTrue (rs.nvl("i", -1) == -1); + assertTrue (rs.nvl("r") == double()); + assertTrue (rs.nvl("r", -1.5) == -1.5); + assertTrue (rs.nvl("v") == ""); + assertTrue (rs.nvl("v", "123") == "123"); + try { session() << "DELETE FROM NullTest", now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + int i = 1; + double f = 1.5; + std::string s = "123"; + + try { session() << "INSERT INTO NullTest (i, r, v) VALUES (?,?,?)", use(i), use(f), use(s), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + rs = (session() << "SELECT * FROM NullTest", now); + assertTrue (1 == rs.rowCount()); + rs.moveFirst(); + assertTrue (!rs.isNull("i")); + assertTrue (rs["i"] == 1); + assertTrue (!rs.isNull("v")); + assertTrue (!rs.isNull("r")); + assertTrue (rs["v"] == "123"); + assertTrue (rs.nvl("i") == 1); + assertTrue (rs.nvl("i", -1) == 1); + assertTrue (rs.nvl("r") == 1.5); + assertTrue (rs.nvl("r", -1.5) == 1.5); + assertTrue (rs.nvl("v") == "123"); + assertTrue (rs.nvl("v", "456") == "123"); + try { session() << "UPDATE NullTest SET v = ? WHERE i = ?", use(null), use(i), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + i = 2; + f = 3.4; + try { session() << "INSERT INTO NullTest (i, r, v) VALUES (?,?,?)", use(i), use(null), use(null), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + rs = (session() << "SELECT i, r, v FROM NullTest ORDER BY i ASC", now); + assertTrue (2 == rs.rowCount()); + rs.moveFirst(); + assertTrue (!rs.isNull("i")); + assertTrue (rs["i"] == 1); + assertTrue (!rs.isNull("r")); + assertTrue (rs.isNull("v")); + assertTrue (rs["v"] != ""); + + assertTrue (rs.moveNext()); + assertTrue (!rs.isNull("i")); + assertTrue (rs["i"] == 2); + assertTrue (rs.isNull("r")); + assertTrue (rs.isNull("v")); + assertTrue (rs["v"] != ""); + + try { session() << "DELETE FROM NullTest", now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + try { session() << "INSERT INTO NullTest (v) VALUES (?)", bind(""), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + bool esin = session().getFeature("emptyStringIsNull"); + session().setFeature("emptyStringIsNull", true); + + try + { + session().setFeature("forceEmptyString", true); + fail ("must fail"); + } catch (InvalidAccessException&) { } + + bool fes = session().getFeature("forceEmptyString"); + session().setFeature("forceEmptyString", false); + + RecordSet rs1(session(), "SELECT v FROM NullTest"); + assertTrue (1 == rs1.rowCount()); + rs1.moveFirst(); + assertTrue (rs1.isNull("v")); + assertTrue (!(rs["v"] == "")); + + session().setFeature("emptyStringIsNull", false); + session().setFeature("forceEmptyString", true); + RecordSet rs2(session(), "SELECT v FROM NullTest"); + assertTrue (1 == rs2.rowCount()); + rs2.moveFirst(); + assertTrue (!rs2.isNull("v")); + assertTrue ((rs2["v"] == "")); + + try + { + session().setFeature("emptyStringIsNull", true); + fail ("must fail"); + } catch (InvalidAccessException&) { } + + session().setFeature("emptyStringIsNull", esin); + session().setFeature("forceEmptyString", fes); +} + + +void SQLExecutor::rowIterator() +{ + std::vector > v; + v.push_back(Tuple(1, 1.5f, "3")); + v.push_back(Tuple(2, 2.5f, "4")); + v.push_back(Tuple(3, 3.5f, "5")); + v.push_back(Tuple(4, 4.5f, "6")); + + try { session() << "DELETE FROM Vectors", now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + RecordSet rset0(session(), "SELECT * FROM Vectors"); + assertTrue (rset0.begin() == rset0.end()); + + try { session() << "INSERT INTO Vectors VALUES (?,?,?)", use(v), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + RecordSet rset(session(), "SELECT * FROM Vectors"); + + std::ostringstream osLoop; + RecordSet::Iterator it = rset.begin(); + RecordSet::Iterator end = rset.end(); + for (int i = 1; it != end; ++it, ++i) + { + assertTrue (it->get(0) == i); + osLoop << *it; + } + assertTrue (!osLoop.str().empty()); + + std::ostringstream osCopy; + std::copy(rset.begin(), rset.end(), std::ostream_iterator(osCopy)); + assertTrue (osLoop.str() == osCopy.str()); + + RowFilter::Ptr pRF = new RowFilter(&rset); + assertTrue (pRF->isEmpty()); + pRF->add("str0", RowFilter::VALUE_EQUAL, "3"); + assertTrue (!pRF->isEmpty()); + it = rset.begin(); + end = rset.end(); + for (int i = 1; it != end; ++it, ++i) + { + assertTrue (it->get(0) == i); + assertTrue (1 == i); + } +} + + +void SQLExecutor::stdVectorBool() +{ + bool b = false; + try { session() << "INSERT INTO BoolTest VALUES (?)", use(b), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + b = true; + session() << "SELECT * FROM BoolTest", into(b), now; + assertTrue (false == b); + session() << "DELETE FROM BoolTest", now; + + b = true; + try { session() << "INSERT INTO BoolTest VALUES (?)", use(b), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + b = false; + session() << "SELECT * FROM BoolTest", into(b), now; + assertTrue (true == b); + session() << "DELETE FROM BoolTest", now; + + std::vector v; + v.push_back(true); + v.push_back(false); + v.push_back(false); + v.push_back(true); + + try { session() << "INSERT INTO BoolTest VALUES (?)", use(v), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + v.clear(); + session() << "SELECT * FROM BoolTest", into(v), now; + + assertTrue (4 == v.size()); + std::vector::iterator it = v.begin(); + std::vector::iterator end = v.end(); + int t = 0; + for (; it != end; ++it) + t += *it ? 1 : 0; + assertTrue (2 == t); + + try { session() << "SELECT * FROM BoolTest WHERE b = ?", out(v), now; fail("must fail"); } catch (BindingException&) { } + + try { session() << "SELECT * FROM BoolTest WHERE b = ?", io(v), now; fail("must fail"); } catch (BindingException&) { } + + RecordSet rset(session(), "SELECT * FROM BoolTest"); + + t = 0; + for (int i = 0; i < 4; ++i) + t += rset.value(0, i) ? 1 : 0; + assertTrue (2 == t); +} + + +void SQLExecutor::asynchronous(int rowCount) +{ + Session tmp = session(); + + std::vector data(rowCount); + Statement stmt = (tmp << "INSERT INTO Strings VALUES(?)", use(data)); + Statement::Result result = stmt.executeAsync(); + assertTrue (!stmt.isAsync()); + result.wait(); + + Statement stmt1 = (tmp << "SELECT * FROM Strings", into(data), async, now); + assertTrue (stmt1.isAsync()); + assertTrue (stmt1.wait() == rowCount); + + // +++ if this part of the test case fails, increase the rowCount until achieved + // that first execute is still executing when the second one is called + stmt1.execute(); + try { + stmt1.execute(); + fail ("execute() must fail"); + } catch (InvalidAccessException&) + { + stmt1.wait(); + stmt1.execute(); + stmt1.wait(); + } + // --- + + stmt = tmp << "SELECT * FROM Strings", into(data), async, now; + assertTrue (stmt.isAsync()); + stmt.wait(); + assertTrue (stmt.execute() == 0); + + // +++ if this part of the test case fails, increase the rowCount until achieved + // that first execute is still executing when the second one is called + try { + result = stmt.executeAsync(); + fail ("executeAsync() must fail"); + } catch (InvalidAccessException&) + { + assertTrue (stmt.isAsync()); + stmt.wait(); + result = stmt.executeAsync(); + } + // --- + + assertTrue (stmt.wait() == rowCount); + assertTrue (result.data() == rowCount); + stmt.setAsync(false); + assertTrue (!stmt.isAsync()); + assertTrue (stmt.execute() == rowCount); + + stmt = tmp << "SELECT * FROM Strings", into(data), sync, now; + assertTrue (!stmt.isAsync()); + assertTrue (stmt.wait() == 0); + assertTrue (stmt.execute() == rowCount); + result = stmt.executeAsync(); + assertTrue (!stmt.isAsync()); + result.wait(); + assertTrue (result.data() == rowCount); + + assertTrue (0 == rowCount % 10); + int step = (int) (rowCount/10); + data.clear(); + Statement stmt2 = (tmp << "SELECT * FROM Strings", into(data), async, limit(step)); + assertTrue (data.size() == 0); + assertTrue (!stmt2.done()); + std::size_t rows = 0; + + for (int i = 0; !stmt2.done(); i += step) + { + stmt2.execute(); + rows = stmt2.wait(); + assertTrue (step == rows); + assertTrue (step + i == data.size()); + } + assertTrue (stmt2.done()); + assertTrue (rowCount == data.size()); + + stmt2 = tmp << "SELECT * FROM Strings", reset; + assertTrue (!stmt2.isAsync()); + assertTrue ("deque" == stmt2.getStorage()); + assertTrue (stmt2.execute() == rowCount); +} + + +void SQLExecutor::any() +{ + Any i = 42; + Any f = 42.5; + std::string ss("42"); + Any s = ss; + + Session tmp = session(); + + tmp << "INSERT INTO Anys VALUES (?, ?, ?)", use(i), use(f), use(s), now; + + int count = 0; + tmp << "SELECT COUNT(*) FROM Anys", into(count), now; + assertTrue (1 == count); + + i = 0; + f = 0.0; + s = std::string(""); + tmp << "SELECT * FROM Anys", into(i), into(f), into(s), now; + assertTrue (AnyCast(i) == 42); + assertTrue (AnyCast(f) == 42.5); + assertTrue (AnyCast(s) == "42"); +} + + +void SQLExecutor::dynamicAny() +{ + Var i = 42; + Var f = 42.5; + Var s = "42"; + + Session tmp = session(); + tmp << "INSERT INTO Anys VALUES (?, ?, ?)", use(i), use(f), use(s), now; + + int count = 0; + tmp << "SELECT COUNT(*) FROM Anys", into(count), now; + assertTrue (1 == count); + + i = 0; + f = 0.0; + s = std::string(""); + tmp << "SELECT * FROM Anys", into(i), into(f), into(s), now; + assertTrue (42 == i); + assertTrue (42.5 == f); + assertTrue ("42" == s); +} + + +void SQLExecutor::multipleResults(const std::string& sql) +{ + typedef Tuple Person; + std::vector people; + people.push_back(Person("Simpson", "Homer", "Springfield", 42)); + people.push_back(Person("Simpson", "Marge", "Springfield", 38)); + people.push_back(Person("Simpson", "Bart", "Springfield", 10)); + people.push_back(Person("Simpson", "Lisa", "Springfield", 8)); + people.push_back(Person("Simpson", "Maggie", "Springfield", 3)); + session() << "INSERT INTO Person VALUES (?, ?, ?, ?)", use(people), now; + + Person pHomer; + int aHomer = 42, aLisa = 8; + Poco::UInt32 aBart = 0; + + Poco::UInt32 pos1 = 1; + int pos2 = 2; + std::vector people2; + Statement stmt(session()); + stmt << sql, into(pHomer, from(0)), use(aHomer) + , into(aBart, pos1) + , into(people2, from(pos2)), use(aLisa), use(aHomer); + + assertTrue (4 == stmt.execute()); + assertTrue (Person("Simpson", "Homer", "Springfield", 42) == pHomer); + assertTrue (10 == aBart); + assertTrue (2 == people2.size()); + assertTrue (Person("Simpson", "Lisa", "Springfield", 8) == people2[0]); + assertTrue (Person("Simpson", "Homer", "Springfield", 42) == people2[1]); +} + + +void SQLExecutor::sqlChannel(const std::string& connector, const std::string& connect) +{ + try + { + AutoPtr pChannel = new SQLChannel(connector, connect, "TestSQLChannel"); + Stopwatch sw; sw.start(); + while (!pChannel->isRunning()) + { + Thread::sleep(10); + if (sw.elapsedSeconds() > 3) + fail ("SQLExecutor::sqlLogger(): SQLChannel timed out"); + } + + pChannel->setProperty("bulk", "true"); + pChannel->setProperty("keep", "2 seconds"); + + Message msgInf("InformationSource", "a Informational async message", Message::PRIO_INFORMATION); + pChannel->log(msgInf); + while (pChannel->logged() != 1) Thread::sleep(10); + + Message msgWarn("WarningSource", "b Warning async message", Message::PRIO_WARNING); + pChannel->log(msgWarn); + while (pChannel->logged() != 2) Thread::sleep(10); + + Message msgInfS("InformationSource", "c Informational sync message", Message::PRIO_INFORMATION); + pChannel->log(msgInfS); + while (pChannel->logged() != 3) Thread::sleep(10); + Message msgWarnS("WarningSource", "d Warning sync message", Message::PRIO_WARNING); + pChannel->log(msgWarnS); + while (pChannel->logged() != 4) Thread::sleep(10); + + RecordSet rs(session(), "SELECT * FROM T_POCO_LOG ORDER by Text"); + size_t rc = rs.rowCount(); + assertTrue (4 == rc); + assertTrue ("InformationSource" == rs["Source"]); + assertTrue ("a Informational async message" == rs["Text"]); + rs.moveNext(); + assertTrue ("WarningSource" == rs["Source"]); + assertTrue ("b Warning async message" == rs["Text"]); + rs.moveNext(); + assertTrue ("InformationSource" == rs["Source"]); + assertTrue ("c Informational sync message" == rs["Text"]); + rs.moveNext(); + assertTrue ("WarningSource" == rs["Source"]); + assertTrue ("d Warning sync message" == rs["Text"]); + + Thread::sleep(3000); // give it time to archive + + Message msgInfA("InformationSource", "e Informational sync message", Message::PRIO_INFORMATION); + pChannel->log(msgInfA); + while (pChannel->logged() != 5) Thread::sleep(10); + Message msgWarnA("WarningSource", "f Warning sync message", Message::PRIO_WARNING); + pChannel->log(msgWarnA); + while (pChannel->logged() != 6) Thread::sleep(10); + + RecordSet rs1(session(), "SELECT * FROM T_POCO_LOG_ARCHIVE"); + assertTrue (4 == rs1.rowCount()); + + pChannel->setProperty("keep", ""); + assertTrue ("forever" == pChannel->getProperty("keep")); + RecordSet rs2(session(), "SELECT * FROM T_POCO_LOG ORDER by Text"); + assertTrue (2 == rs2.rowCount()); + assertTrue ("InformationSource" == rs2["Source"]); + assertTrue ("e Informational sync message" == rs2["Text"]); + rs2.moveNext(); + assertTrue ("WarningSource" == rs2["Source"]); + assertTrue ("f Warning sync message" == rs2["Text"]); + } catch(DataException& ce){ std::cout << ce.displayText() << std::endl; fail ("sqlChannel()"); } +} + + +void SQLExecutor::sqlLogger(const std::string& connector, const std::string& connect) +{ + try + { + Logger& root = Logger::root(); + SQLChannel* pSQLChannel = new SQLChannel(connector, connect, "TestSQLChannel"); + Stopwatch sw; sw.start(); + while (!pSQLChannel->isRunning()) + { + Thread::sleep(10); + if (sw.elapsedSeconds() > 3) + fail ("SQLExecutor::sqlLogger(): SQLChannel timed out"); + } + + root.setChannel(pSQLChannel); + root.setLevel(Message::PRIO_INFORMATION); + + root.information("a Informational message"); + root.warning("b Warning message"); + root.debug("Debug message"); + + while (pSQLChannel->logged() != 2) Thread::sleep(100); + RecordSet rs(session(), "SELECT * FROM T_POCO_LOG ORDER by Text"); + assertTrue (2 == rs.rowCount()); + assertTrue ("TestSQLChannel" == rs["Source"]); + assertTrue ("a Informational message" == rs["Text"]); + rs.moveNext(); + assertTrue ("TestSQLChannel" == rs["Source"]); + assertTrue ("b Warning message" == rs["Text"]); + } catch(DataException& ce){ std::cout << ce.displayText() << std::endl; fail ("sqlLogger()"); } +} + + +void SQLExecutor::setTransactionIsolation(Session& session, Poco::UInt32 ti) +{ + if (session.hasTransactionIsolation(ti)) + { + try + { + Transaction t(session, false); + t.setIsolation(ti); + + assertTrue (ti == t.getIsolation()); + assertTrue (t.isIsolation(ti)); + + assertTrue (ti == session.getTransactionIsolation()); + assertTrue (session.isTransactionIsolation(ti)); + } + catch(Poco::Exception& e){ std::cout << __func__ << ':' << e.displayText() << std::endl;} + } + else + { + std::cerr << '[' << name() << ']' << " Warning, transaction isolation not supported: "; + switch (ti) + { + case Session::TRANSACTION_READ_COMMITTED: + std::cerr << "READ COMMITTED"; break; + case Session::TRANSACTION_READ_UNCOMMITTED: + std::cerr << "READ UNCOMMITTED"; break; + case Session::TRANSACTION_REPEATABLE_READ: + std::cerr << "REPEATABLE READ"; break; + case Session::TRANSACTION_SERIALIZABLE: + std::cerr << "SERIALIZABLE"; break; + default: + std::cerr << "UNKNOWN"; break; + } + std::cerr << std::endl; + } +} + + +void SQLExecutor::autoCommit() +{ + bool autoCommit = session().getFeature("autoCommit"); + + session().setFeature("autoCommit", true); + assertTrue (!session().isTransaction()); + session().setFeature("autoCommit", false); + assertTrue (!session().isTransaction()); + session().setFeature("autoCommit", true); + assertTrue (!session().isTransaction()); + + session().setFeature("autoCommit", autoCommit); +} + + +void SQLExecutor::transactionIsolation() +{ + auto ti = session().getTransactionIsolation(); + + // these are just calls to check the transactional capabilities of the session + // they will print diagnostics to stderr if a transaction isolation level is not supported + setTransactionIsolation(session(), Session::TRANSACTION_READ_UNCOMMITTED); + setTransactionIsolation(session(), Session::TRANSACTION_REPEATABLE_READ); + setTransactionIsolation(session(), Session::TRANSACTION_SERIALIZABLE); + setTransactionIsolation(session(), Session::TRANSACTION_READ_COMMITTED); + + setTransactionIsolation(session(), ti); +} + + +void SQLExecutor::sessionTransaction(const std::string& connector, const std::string& connect) +{ + if (!session().canTransact()) + { + std::cout << "Session not capable of transactions." << std::endl; + return; + } + + bool autoCommit = session().getFeature("autoCommit"); + + Session local(connector, connect); + + std::string tableName("Person"); + std::vector lastNames = {"LN1", "LN2"}; + std::vector firstNames = {"FN1", "FN2"}; + std::vector addresses = {"ADDR1", "ADDR2"}; + std::vector ages = {1, 2}; + int count = 0, locCount = 0; + std::string result; + + session().setFeature("autoCommit", true); + assertTrue (session().getFeature("autoCommit")); + assertTrue (!session().isTransaction()); + + session().begin(); + assertTrue (session().isTransaction()); + assertTrue (!session().getFeature("autoCommit")); + + // changing autocommit is invalid for session in transaction ... + try + { + session().setFeature("autoCommit", true); + fail ("must fail on autocommit setting during transaction"); + } catch(const Poco::InvalidAccessException& e) { } + // make sure nothing was changed ... + assertTrue (!session().getFeature("autoCommit")); + // but setting it to its current state is allowed (no-op) + session().setFeature("autoCommit", false); + assertTrue (!session().getFeature("autoCommit")); + + session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; + assertTrue (session().isTransaction()); + + Statement stmt = (local << "SELECT COUNT(*) FROM Person", into(locCount), async, now); + + session() << "SELECT COUNT(*) FROM Person", into(count), now; + assertTrue (2 == count); + assertTrue (session().isTransaction()); + session().rollback(); + assertTrue (!session().isTransaction()); + + stmt.wait(); + assertTrue (0 == locCount); + stmt.reset(session()); + + session() << "SELECT count(*) FROM Person", into(count), now; + assertTrue (0 == count); + assertTrue (!session().isTransaction()); + + session().begin(); + session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; + assertTrue (session().isTransaction()); + + stmt = (local << "SELECT COUNT(*) FROM Person", into(locCount), async, now); + + session().commit(); + assertTrue (!session().isTransaction()); + + stmt.wait(); + assertTrue (2 == locCount); + + session() << "SELECT count(*) FROM Person", into(count), now; + assertTrue (2 == count); + // end autoCommit = true + + // restore the original transaction state + session().setFeature("autoCommit", autoCommit); +} + + +void SQLExecutor::sessionTransactionNoAutoCommit(const std::string& connector, const std::string& connect) +{ + bool autoCommit = session().getFeature("autoCommit"); + + Session local("odbc", connect); + local.setFeature("autoCommit", false); + assertTrue (!local.getFeature("autoCommit")); + + if (!local.canTransact()) + { + std::cout << "Session not capable of transactions." << std::endl; + return; + } + + std::vector lastNames = {"LN1", "LN2"}; + std::vector firstNames = {"FN1", "FN2"}; + std::vector addresses = {"ADDR1", "ADDR2"}; + std::vector ages = {1, 2}; + std::string tableName("Person"); + int count = 0, locCount = 0; + std::string result; + + // no autoCommit session becomes transaction without explicit begin() + assertTrue (!local.isTransaction()); + assertTrue (!session().isTransaction()); + local << "INSERT INTO Person VALUES (?,?,?,?)", + use(lastNames), use(firstNames), use(addresses), use(ages), now; + Statement stmt = (session() << "SELECT COUNT(*) FROM Person", + into(count), async, now); + local << "SELECT COUNT(*) FROM Person", into(locCount), now; + assertTrue (0 == count); + assertTrue (2 == locCount); +#ifndef POCO_DATA_NO_SQL_PARSER + assertTrue (local.isTransaction()); + + // autocommit is invalid for session in transaction ... + try + { + local.setFeature("autoCommit", true); + fail ("must fail on autocommit setting during transaction", __LINE__); + } catch(const Poco::InvalidAccessException& e) { } + + // but setting it to its current state is allowed (no-op) + local.setFeature("autoCommit", false); + + assertTrue (!session().isTransaction()); +#else + session().commit(); +#endif // POCO_DATA_NO_SQL_PARSER + local.commit(); + assertTrue (!local.isTransaction()); + + stmt.wait(); + assertTrue (2 == count); + count = 0; + stmt.reset(session()); + + assertTrue (!local.isTransaction()); + assertTrue (!session().isTransaction()); + local << "INSERT INTO Person VALUES (?,?,?,?)", + use(lastNames), use(firstNames), use(addresses), use(ages), now; + stmt = (session() << "SELECT COUNT(*) FROM Person", into(count), async, now); + local << "SELECT COUNT(*) FROM Person", into(locCount), now; + assertTrue (0 == count); + assertTrue (4 == locCount); +#ifndef POCO_DATA_NO_SQL_PARSER + assertTrue (local.isTransaction()); + assertTrue (!session().isTransaction()); +#else + session().commit(); +#endif + + local.rollback(); + assertTrue (!local.isTransaction()); + stmt.wait(); + assertTrue (2 == count); + + locCount = 0; + session() << "SELECT COUNT(*) FROM Person", into(count), now; + local << "SELECT COUNT(*) FROM Person", into(locCount), now; + assertTrue (2 == count); + assertTrue (2 == locCount); +#ifndef POCO_DATA_NO_SQL_PARSER + session().commit(); + local.commit(); +#endif + session().setFeature("autoCommit", autoCommit); +} + + +void SQLExecutor::transaction(const std::string& connector, const std::string& connect) +{ + if (!session().canTransact()) + { + std::cout << "Session not transaction-capable." << std::endl; + return; + } + + Session local("odbc", connect); + local.setFeature("autoCommit", true); + + bool autoCommit = session().getFeature("autoCommit"); + auto ti = session().getTransactionIsolation(); + + setTransactionIsolation(session(), Session::TRANSACTION_READ_COMMITTED); + if (local.hasTransactionIsolation(Session::TRANSACTION_READ_UNCOMMITTED)) + setTransactionIsolation(local, Session::TRANSACTION_READ_UNCOMMITTED); + else if (local.hasTransactionIsolation(Session::TRANSACTION_READ_COMMITTED)) + setTransactionIsolation(local, Session::TRANSACTION_READ_COMMITTED); + + std::string tableName("Person"); + std::vector lastNames = {"LN1", "LN2"}; + std::vector firstNames = {"FN1", "FN2"}; + std::vector addresses = {"ADDR1", "ADDR2"}; + std::vector ages = {1, 2}; + int count = 0, locCount = 0; + std::string result; + + session().setFeature("autoCommit", true); + assertTrue (!session().isTransaction()); + session().setFeature("autoCommit", false); + assertTrue (!session().isTransaction()); + session().setTransactionIsolation(Session::TRANSACTION_READ_COMMITTED); + + { + Transaction trans(session()); + assertTrue (trans.isActive()); + assertTrue (session().isTransaction()); + + session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; + + assertTrue (session().isTransaction()); + assertTrue (trans.isActive()); + + session() << "SELECT COUNT(*) FROM Person", into(count), now; + assertTrue (2 == count); + assertTrue (session().isTransaction()); + assertTrue (trans.isActive()); + } + assertTrue (!session().isTransaction()); + + session() << "SELECT count(*) FROM Person", into(count), now; + assertTrue (0 == count); + assertTrue (!session().isTransaction()); + session().commit(); + + { + Transaction trans(session()); + session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; + + Statement stmt1 = (local << "SELECT COUNT(*) FROM Person", into(locCount), async, now); + + assertTrue (session().isTransaction()); + assertTrue (trans.isActive()); + trans.commit(); + assertTrue (!session().isTransaction()); + assertTrue (!trans.isActive()); + + stmt1.wait(); + assertTrue (2 == locCount); + } + + session() << "SELECT count(*) FROM Person", into(count), now; + assertTrue (2 == count); + + session() << "DELETE FROM Person", now; + + Statement stmt1 = (local << "SELECT count(*) FROM Person", into(locCount), async, now); + + session() << "SELECT count(*) FROM Person", into(count), now; + assertTrue (0 == count); + try + { + stmt1.wait(5000); + if (local.getTransactionIsolation() == Session::TRANSACTION_READ_UNCOMMITTED) + assertTrue (0 == locCount); + } catch (TimeoutException&) + { std::cerr << '[' << name() << ']' << " Warning: async query timed out." << std::endl; } + session().commit(); + // repeat for those that don't support uncommitted read isolation + if (local.getTransactionIsolation() == Session::TRANSACTION_READ_COMMITTED) + { + stmt1.wait(); + local << "SELECT count(*) FROM Person", into(locCount), now; + assertTrue (0 == locCount); + } + + std::string sql1 = format("INSERT INTO Person VALUES ('%s','%s','%s',%d)", lastNames[0], firstNames[0], addresses[0], ages[0]); + std::string sql2 = format("INSERT INTO Person VALUES ('%s','%s','%s',%d)", lastNames[1], firstNames[1], addresses[1], ages[1]); + std::vector sql; + sql.push_back(sql1); + sql.push_back(sql2); + + Transaction trans(session()); + + trans.execute(sql1, false); + session() << "SELECT count(*) FROM Person", into(count), now; + assertTrue (1 == count); + trans.execute(sql2, false); + session() << "SELECT count(*) FROM Person", into(count), now; + assertTrue (2 == count); + + Statement stmt2 = (local << "SELECT COUNT(*) FROM Person", into(locCount), async, now); + + trans.rollback(); + + stmt2.wait(); + assertTrue (0 == locCount); + + session() << "SELECT count(*) FROM Person", into(count), now; + assertTrue (0 == count); + + trans.execute(sql); + + Statement stmt3 = (local << "SELECT COUNT(*) FROM Person", into(locCount), now); + assertTrue (2 == locCount); + + session() << "SELECT count(*) FROM Person", into(count), now; + assertTrue (2 == count); + session().commit(); + + // restore the original transaction state + session().setFeature("autoCommit", autoCommit); + setTransactionIsolation(session(), ti); +} + + +struct TestCommitTransactor +{ + void operator () (Session& session) const + { + session << "INSERT INTO Person VALUES ('lastName','firstName','address',10)", now; + } +}; + + +struct TestRollbackTransactor +{ + void operator () (Session& session) const + { + session << "INSERT INTO Person VALUES ('lastName','firstName','address',10)", now; + throw Poco::Exception("test"); + } +}; + + +void SQLExecutor::transactor() +{ + int count = 0; + + bool autoCommit = session().getFeature("autoCommit"); + auto ti = session().getTransactionIsolation(); + + session().setFeature("autoCommit", false); + session().setTransactionIsolation(Session::TRANSACTION_READ_COMMITTED); + + TestCommitTransactor ct; + Transaction t1(session(), ct); + + session() << "SELECT count(*) FROM Person", into(count), now; + assertTrue (1 == count); + + session() << "DELETE FROM Person", now; session().commit(); + + session() << "SELECT count(*) FROM Person", into(count), now; + assertTrue (0 == count); + + try + { + TestRollbackTransactor rt; + Transaction t(session(), rt); + fail ("must fail"); + } catch (Poco::Exception&) { } + + session() << "SELECT count(*) FROM Person", into(count), now; + assertTrue (0 == count); + + try + { + TestRollbackTransactor rt; + Transaction t(session()); + t.transact(rt); + fail ("must fail"); + } catch (Poco::Exception&) { } + + session() << "SELECT count(*) FROM Person", into(count), now; + assertTrue (0 == count); + + try + { + TestRollbackTransactor rt; + Transaction t(session(), false); + t.transact(rt); + fail ("must fail"); + } catch (Poco::Exception&) { } + + session() << "SELECT count(*) FROM Person", into(count), now; + assertTrue (0 == count); + + try + { + TestRollbackTransactor rt; + Transaction t(session(), true); + t.transact(rt); + fail ("must fail"); + } catch (Poco::Exception&) { } + + session() << "SELECT count(*) FROM Person", into(count), now; + assertTrue (0 == count); + session().commit(); + + // restore the original transaction state + session().setFeature("autoCommit", autoCommit); + setTransactionIsolation(session(), ti); +} + + +void SQLExecutor::nullable() +{ + try { session() << "INSERT INTO NullableTest VALUES(NULL, NULL, NULL, NULL)", now; } catch(DataException& ce){ std::cout << ce.displayText() << std::endl; fail ("nullable()", __LINE__, __FILE__); } + + Nullable i = 1; + Nullable f = 1.5; + Nullable s = std::string("abc"); + Nullable d = DateTime(); + + assertTrue (!i.isNull()); + assertTrue (!f.isNull()); + assertTrue (!s.isNull()); + assertTrue (!d.isNull()); + + session() << "SELECT EmptyString, EmptyInteger, EmptyFloat, EmptyDateTime FROM NullableTest", into(s), into(i), into(f), into(d), now; + + assertTrue (i.isNull()); + assertTrue (f.isNull()); + assertTrue (s.isNull()); + assertTrue (d.isNull()); + + RecordSet rs(session(), "SELECT * FROM NullableTest"); + + rs.moveFirst(); + assertTrue (rs.isNull("EmptyString")); + assertTrue (rs.isNull("EmptyInteger")); + assertTrue (rs.isNull("EmptyFloat")); + assertTrue (rs.isNull("EmptyDateTime")); + + Var di = 1; + Var df = 1.5; + Var ds = "abc"; + Var dd = DateTime(); + + assertTrue (!di.isEmpty()); + assertTrue (!df.isEmpty()); + assertTrue (!ds.isEmpty()); + assertTrue (!dd.isEmpty()); + + Statement stmt = (session() << "SELECT EmptyString, EmptyInteger, EmptyFloat, EmptyDateTime FROM NullableTest", into(ds), into(di), into(df), into(dd), now); + + assertTrue (di.isEmpty()); + assertTrue (df.isEmpty()); + assertTrue (ds.isEmpty()); + assertTrue (dd.isEmpty()); +} + + +void SQLExecutor::reconnect() +{ + std::string lastName = "lastName"; + std::string firstName("firstName"); + std::string address("Address"); + int age = 133132; + int count = 0; + std::string result; + + try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastName), use(firstName), use(address), use(age), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + + count = 0; + try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == 1); + + assertTrue (session().isConnected()); + session().close(); + assertTrue (!session().isConnected()); + try + { + session() << "SELECT LastName FROM Person", into(result), now; + fail ("must fail"); + } catch(NotConnectedException&){ } + assertTrue (!session().isConnected()); + + session().open(); + assertTrue (session().isConnected()); + try { session() << "SELECT Age FROM Person", into(count), now; } + catch(DataException& ce) + { + std::cout << ce.displayText() << std::endl; + fail (__func__, __LINE__, __FILE__); + } + + assertTrue (count == age); + assertTrue (session().isConnected()); +} + + +void SQLExecutor::unicode(const std::string& dbConnString) +{ + const unsigned char supp[] = { 0x41, 0x42, 0xf0, 0x90, 0x82, 0xa4, 0xf0, 0xaf, 0xa6, 0xa0, 0xf0, 0xaf, 0xa8, 0x9d, 0x00 }; + std::string text((const char*) supp); + + UTF16String wtext; + Poco::UnicodeConverter::convert(text, wtext); + session() << "INSERT INTO UnicodeTable VALUES (?)", use(wtext), now; + wtext.clear(); + text.clear(); + session() << "SELECT str FROM UnicodeTable", into(wtext), now; + Poco::UnicodeConverter::convert(wtext, text); + assertTrue (text == std::string((const char*)supp)); +} + + +void SQLExecutor::encoding(const std::string& dbConnString) +{ + try + { + const unsigned char latinChars[] = { 'g', 252, 'n', 't', 'e', 'r', 0 }; + const unsigned char utf8Chars[] = { 'g', 195, 188, 'n', 't', 'e', 'r', 0 }; + std::string latinText((const char*)latinChars); + std::string utf8TextIn((const char*)utf8Chars); + + session(true) << "INSERT INTO Latin1Table VALUES (?)", use(utf8TextIn), now; + + std::string latinTextOut; + session() << "SELECT str FROM Latin1Table", into(latinTextOut), now; + assertTrue(latinText == latinTextOut); + + std::string utf8TextOut; + session(true) << "SELECT str FROM Latin1Table", into(utf8TextOut), now; + assertTrue(utf8TextIn == utf8TextOut); + + const unsigned char latinChars2[] = { 'G', 220, 'N', 'T', 'E', 'R', 0 }; + const unsigned char utf8Chars2[] = { 'G', 195, 156, 'N', 'T', 'E', 'R', 0 }; + std::string latinText2 = (const char*)latinChars2; + std::string utf8TextIn2 = (const char*)utf8Chars2; + + session(true) << "INSERT INTO Latin1Table VALUES (?)", use(utf8TextIn2), now; + + std::vector textOutVec; + session() << "SELECT str FROM Latin1Table", into(textOutVec), now; + assertTrue(textOutVec.size() == 2); + assertTrue(textOutVec[0] == latinText); + assertTrue(textOutVec[1] == latinText2); + + textOutVec.clear(); + session(true) << "SELECT str FROM Latin1Table", into(textOutVec), now; + assertTrue(textOutVec.size() == 2); + assertTrue(textOutVec[0] == utf8TextIn); + assertTrue(textOutVec[1] == utf8TextIn2); + } + catch (Poco::Exception& ex) + { + std::cerr << ex.displayText() << std::endl; + throw; + } + catch (std::exception& ex) + { + std::cerr << ex.what() << std::endl; + throw; + } +} + +} } } // Poco::Data::Test From 73e191f18532ebabec72dc08a66bd7d09c1d9419 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Thu, 2 Nov 2023 22:29:27 +0100 Subject: [PATCH 169/395] chore: add missing header path, revert inadvertent db server address dev change --- .vscode/c_cpp_properties.json | 3 ++- Data/ODBC/testsuite/src/ODBCTest.h | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index 37e2c1c30..7c595068a 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -23,7 +23,8 @@ "${POCO_BASE}/Redis/include", "${POCO_BASE}/MongoDB/include", "${POCO_BASE}/ApacheConnector/include", - "${POCO_BASE}/Data/src" + "${POCO_BASE}/Data/src", + "${POCO_BASE}/Data/testsuite/include" ] }, "configurations": [ diff --git a/Data/ODBC/testsuite/src/ODBCTest.h b/Data/ODBC/testsuite/src/ODBCTest.h index ba6a6a86c..7d37f3268 100644 --- a/Data/ODBC/testsuite/src/ODBCTest.h +++ b/Data/ODBC/testsuite/src/ODBCTest.h @@ -23,7 +23,7 @@ #include "SQLExecutor.h" -#define POCO_ODBC_TEST_DATABASE_SERVER "10.211.55.5"//"localhost" +#define POCO_ODBC_TEST_DATABASE_SERVER "localhost" class ODBCTest: public CppUnit::TestCase @@ -236,8 +236,8 @@ inline void ODBCTest::testTempTable() throw Poco::NotImplementedException("ODBCTest::testTempTable()"); } -inline void ODBCTest::testStoredProcedure() -{ +inline void ODBCTest::testStoredProcedure() +{ throw Poco::NotImplementedException("ODBCTest::testStoredProcedure()"); } From 5e6bb8e3966e7981341e85b7de867066452410db Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Fri, 3 Nov 2023 00:10:01 +0100 Subject: [PATCH 170/395] fix(ODBC): mac build and run #4230 --- Data/ODBC/ODBC.make | 6 ++++++ Data/ODBC/testsuite/Makefile | 2 ++ Data/testsuite/src/SQLExecutor.cpp | 1 - 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Data/ODBC/ODBC.make b/Data/ODBC/ODBC.make index fc5797db1..2063fad1c 100644 --- a/Data/ODBC/ODBC.make +++ b/Data/ODBC/ODBC.make @@ -5,7 +5,11 @@ # ifndef POCO_ODBC_INCLUDE +ifeq (0, $(shell test -e /usr/include/sql.h; echo $$?)) POCO_ODBC_INCLUDE = /usr/include +else ifeq (0, $(shell test -e /opt/homebrew/include; echo $$?)) +POCO_ODBC_INCLUDE = /opt/homebrew/include +endif endif ifndef POCO_ODBC_LIB @@ -13,6 +17,8 @@ ifeq (0, $(shell test -d /usr/lib/$(OSARCH)-linux-gnu; echo $$?)) POCO_ODBC_LIB = /usr/lib/$(OSARCH)-linux-gnu else ifeq (0, $(shell test -d /usr/lib64; echo $$?)) POCO_ODBC_LIB = /usr/lib64 +else ifeq (0, $(shell test -d /opt/homebrew/lib; echo $$?)) +POCO_ODBC_LIB = /opt/homebrew/lib else POCO_ODBC_LIB = /usr/lib endif diff --git a/Data/ODBC/testsuite/Makefile b/Data/ODBC/testsuite/Makefile index 0dd949e48..17efd307d 100644 --- a/Data/ODBC/testsuite/Makefile +++ b/Data/ODBC/testsuite/Makefile @@ -22,8 +22,10 @@ ifneq ($(OSNAME),Darwin) SYSLIBS += -lltdl endif ifneq ($(OSNAME),FreeBSD) +ifneq ($(OSNAME),Darwin) SYSLIBS += -ldl endif +endif objects = ODBCTestSuite Driver \ ODBCDB2Test ODBCMySQLTest ODBCOracleTest ODBCPostgreSQLTest \ diff --git a/Data/testsuite/src/SQLExecutor.cpp b/Data/testsuite/src/SQLExecutor.cpp index e319a019a..607ff4dfb 100644 --- a/Data/testsuite/src/SQLExecutor.cpp +++ b/Data/testsuite/src/SQLExecutor.cpp @@ -41,7 +41,6 @@ #include "Poco/Data/Transaction.h" #include "Poco/UnicodeConverter.h" #include "Poco/UTFString.h" -#include #include #include #include From 6eec8adfcb46a7217c879896beab72003c83b87e Mon Sep 17 00:00:00 2001 From: Friedrich Wilckens Date: Thu, 2 Nov 2023 19:45:28 -0700 Subject: [PATCH 171/395] PostgreSQL SessionHandle: don't call startTransaction in setAutoCommit --- Data/PostgreSQL/src/SessionHandle.cpp | 8 +++----- Data/PostgreSQL/testsuite/src/SQLExecutor.cpp | 10 +++------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/Data/PostgreSQL/src/SessionHandle.cpp b/Data/PostgreSQL/src/SessionHandle.cpp index 3bc4aa843..61dcf0bf4 100644 --- a/Data/PostgreSQL/src/SessionHandle.cpp +++ b/Data/PostgreSQL/src/SessionHandle.cpp @@ -277,11 +277,9 @@ void SessionHandle::setAutoCommit(bool aShouldAutoCommit) if (aShouldAutoCommit) { - commit(); // end any in process transaction - } - else - { - startTransaction(); // start a new transaction + Poco::FastMutex::ScopedLock mutexLocker(_sessionMutex); + if (_inTransaction) + commit(); // end any in process transaction } _isAutoCommit = aShouldAutoCommit; diff --git a/Data/PostgreSQL/testsuite/src/SQLExecutor.cpp b/Data/PostgreSQL/testsuite/src/SQLExecutor.cpp index a3df32317..60dbe8154 100644 --- a/Data/PostgreSQL/testsuite/src/SQLExecutor.cpp +++ b/Data/PostgreSQL/testsuite/src/SQLExecutor.cpp @@ -1897,11 +1897,7 @@ void SQLExecutor::sessionTransaction(const std::string& connect) bool autoCommit = _pSession->getFeature("autoCommit"); - // Next four lines inverted as autoCommit set to true is the normal mode -// autocommit set to false is the same as issuing a "begin" statement -_pSession->setFeature("autoCommit", false); - assertTrue (_pSession->isTransaction()); - + // autoCommit set to true is the normal mode _pSession->setFeature("autoCommit", true); assertTrue (!_pSession->isTransaction()); @@ -1995,11 +1991,11 @@ void SQLExecutor::transaction(const std::string& connect) bool autoCommit = _pSession->getFeature("autoCommit"); - _pSession->setFeature("autoCommit", false); +/* _pSession->setFeature("autoCommit", false); assertTrue (_pSession->isTransaction()); _pSession->setFeature("autoCommit", true); assertTrue (!_pSession->isTransaction()); - +*/ _pSession->setTransactionIsolation(Session::TRANSACTION_READ_COMMITTED); { From 90dd3821edca4796ab08f0122312353b42ce567d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nino=20Belu=C5=A1i=C4=87?= <86965206+cunj123@users.noreply.github.com> Date: Fri, 3 Nov 2023 14:34:31 +0100 Subject: [PATCH 172/395] CI improvements (#4236) * feat(ci): run pull request runs only on pull request open #4205 * feat(ci): add retry action for tsan #4205 * feat(ci): use local action for retrying tsan #4205 * fix(ci): use correct version of retry action #4205 * fix: make POSIX event thread safe * feat(ci): add info on retry action to ci.yml header #4205 * feat(ci): add linux mysql test #4205 * feat(ci): remove unused mysql containers from tests#4205 * feat(ci): add linux postgre test #4205 * feat(ci): add linux redis test #4205 * feat(ci): add linux mongodb tests #4205 * feat(ci): add mysql odbc test #4205 * chore(ci): rename tests #4205 * chore(ci): pin postgres and mysql versions #4205 * feat(ci): add odbc postgres tests #4205 * chore(ci): mysql odbc comment #4205 * chore(ci): disable windows 2019 job #4205 * feat(ci): add linux oracle tests #4205 * chore(ci): disable oracle tests #4205 * feat(ci): add sql server tests #4205 * chore(ci): disable postgres tests #4205 * chore(ci): add logging for task test #4205 * feat(ci): add local retry action #4205 * feat(ci): ignore process kill failure in action #4205 * feat(ci): send SIGKILL instead of SIGTERM in action #4205 * chore(ci): add updated action #4205 * chore(ci): reduce tsan timeout #4205 * feat(ci): kill process without children #4205 * feat(ci): send SIGTERM to child in action #4205 * feat(ci): prolong tsan timeout #4205 * chore(ci): add missing newlines #4205 * fix(ci): revert sql server test FreeTDS version #4205 * feat(ci): add retry to all jobs #4205 * feat(ci): setup python for codeQL #4205 * chore(ci): disable throwing on codeql error #4205 --- .github/actions/retry-action/action.yml | 54 + .github/actions/retry-action/dist/index.js | 26403 ++++++++++++++++ .github/actions/retry-action/package.json | 67 + .github/actions/retry-action/src/index.ts | 191 + .github/actions/retry-action/src/inputs.ts | 94 + .github/actions/retry-action/src/util.ts | 12 + .github/actions/retry-action/tsconfig.json | 16 + .github/workflows/ci.yml | 522 +- .github/workflows/codeql.yml | 11 +- .gitignore | 5 + Data/ODBC/testsuite/src/ODBCMySQLTest.cpp | 10 +- Data/ODBC/testsuite/src/ODBCOracleTest.cpp | 4 +- .../ODBC/testsuite/src/ODBCPostgreSQLTest.cpp | 6 +- Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp | 7 +- Foundation/testsuite/src/TaskTest.cpp | 43 +- 15 files changed, 27287 insertions(+), 158 deletions(-) create mode 100644 .github/actions/retry-action/action.yml create mode 100644 .github/actions/retry-action/dist/index.js create mode 100644 .github/actions/retry-action/package.json create mode 100644 .github/actions/retry-action/src/index.ts create mode 100644 .github/actions/retry-action/src/inputs.ts create mode 100644 .github/actions/retry-action/src/util.ts create mode 100644 .github/actions/retry-action/tsconfig.json diff --git a/.github/actions/retry-action/action.yml b/.github/actions/retry-action/action.yml new file mode 100644 index 000000000..5db8b6234 --- /dev/null +++ b/.github/actions/retry-action/action.yml @@ -0,0 +1,54 @@ +name: Retry Step +description: 'Retry a step on failure or timeout' +inputs: + timeout_minutes: + description: Minutes to wait before attempt times out. Must only specify either minutes or seconds + required: false + timeout_seconds: + description: Seconds to wait before attempt times out. Must only specify either minutes or seconds + required: false + max_attempts: + description: Number of attempts to make before failing the step + required: true + default: 3 + command: + description: The command to run + required: true + retry_wait_seconds: + description: Number of seconds to wait before attempting the next retry + required: false + default: 10 + shell: + description: Alternate shell to use (defaults to powershell on windows, bash otherwise). Supports bash, python, pwsh, sh, cmd, and powershell + required: false + polling_interval_seconds: + description: Number of seconds to wait for each check that command has completed running + required: false + default: 1 + retry_on: + description: Event to retry on. Currently supported [any, timeout, error] + warning_on_retry: + description: Whether to output a warning on retry, or just output to info. Defaults to true + default: true + on_retry_command: + description: Command to run before a retry (such as a cleanup script). Any error thrown from retry command is caught and surfaced as a warning. + required: false + continue_on_error: + description: Exits successfully even if an error occurs. Same as native continue-on-error behavior, but for use in composite actions. Default is false + default: false + new_command_on_retry: + description: Command to run if the first attempt fails. This command will be called on all subsequent attempts. + required: false + retry_on_exit_code: + description: Specific exit code to retry on. This will only retry for the given error code and fail immediately other error codes. + required: false +outputs: + total_attempts: + description: The final number of attempts made + exit_code: + description: The final exit code returned by the command + exit_error: + description: The final error returned by the command +runs: + using: 'node16' + main: 'dist/index.js' \ No newline at end of file diff --git a/.github/actions/retry-action/dist/index.js b/.github/actions/retry-action/dist/index.js new file mode 100644 index 000000000..afccd434c --- /dev/null +++ b/.github/actions/retry-action/dist/index.js @@ -0,0 +1,26403 @@ +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ 7351: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.issue = exports.issueCommand = void 0; +const os = __importStar(__nccwpck_require__(2037)); +const utils_1 = __nccwpck_require__(5278); +/** + * Commands + * + * Command Format: + * ::name key=value,key=value::message + * + * Examples: + * ::warning::This is the message + * ::set-env name=MY_VAR::some value + */ +function issueCommand(command, properties, message) { + const cmd = new Command(command, properties, message); + process.stdout.write(cmd.toString() + os.EOL); +} +exports.issueCommand = issueCommand; +function issue(name, message = '') { + issueCommand(name, {}, message); +} +exports.issue = issue; +const CMD_STRING = '::'; +class Command { + constructor(command, properties, message) { + if (!command) { + command = 'missing.command'; + } + this.command = command; + this.properties = properties; + this.message = message; + } + toString() { + let cmdStr = CMD_STRING + this.command; + if (this.properties && Object.keys(this.properties).length > 0) { + cmdStr += ' '; + let first = true; + for (const key in this.properties) { + if (this.properties.hasOwnProperty(key)) { + const val = this.properties[key]; + if (val) { + if (first) { + first = false; + } + else { + cmdStr += ','; + } + cmdStr += `${key}=${escapeProperty(val)}`; + } + } + } + } + cmdStr += `${CMD_STRING}${escapeData(this.message)}`; + return cmdStr; + } +} +function escapeData(s) { + return utils_1.toCommandValue(s) + .replace(/%/g, '%25') + .replace(/\r/g, '%0D') + .replace(/\n/g, '%0A'); +} +function escapeProperty(s) { + return utils_1.toCommandValue(s) + .replace(/%/g, '%25') + .replace(/\r/g, '%0D') + .replace(/\n/g, '%0A') + .replace(/:/g, '%3A') + .replace(/,/g, '%2C'); +} +//# sourceMappingURL=command.js.map + +/***/ }), + +/***/ 2186: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0; +const command_1 = __nccwpck_require__(7351); +const file_command_1 = __nccwpck_require__(717); +const utils_1 = __nccwpck_require__(5278); +const os = __importStar(__nccwpck_require__(2037)); +const path = __importStar(__nccwpck_require__(1017)); +const oidc_utils_1 = __nccwpck_require__(8041); +/** + * The code to exit an action + */ +var ExitCode; +(function (ExitCode) { + /** + * A code indicating that the action was successful + */ + ExitCode[ExitCode["Success"] = 0] = "Success"; + /** + * A code indicating that the action was a failure + */ + ExitCode[ExitCode["Failure"] = 1] = "Failure"; +})(ExitCode = exports.ExitCode || (exports.ExitCode = {})); +//----------------------------------------------------------------------- +// Variables +//----------------------------------------------------------------------- +/** + * Sets env variable for this action and future actions in the job + * @param name the name of the variable to set + * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function exportVariable(name, val) { + const convertedVal = utils_1.toCommandValue(val); + process.env[name] = convertedVal; + const filePath = process.env['GITHUB_ENV'] || ''; + if (filePath) { + return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val)); + } + command_1.issueCommand('set-env', { name }, convertedVal); +} +exports.exportVariable = exportVariable; +/** + * Registers a secret which will get masked from logs + * @param secret value of the secret + */ +function setSecret(secret) { + command_1.issueCommand('add-mask', {}, secret); +} +exports.setSecret = setSecret; +/** + * Prepends inputPath to the PATH (for this action and future actions) + * @param inputPath + */ +function addPath(inputPath) { + const filePath = process.env['GITHUB_PATH'] || ''; + if (filePath) { + file_command_1.issueFileCommand('PATH', inputPath); + } + else { + command_1.issueCommand('add-path', {}, inputPath); + } + process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`; +} +exports.addPath = addPath; +/** + * Gets the value of an input. + * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed. + * Returns an empty string if the value is not defined. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string + */ +function getInput(name, options) { + const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || ''; + if (options && options.required && !val) { + throw new Error(`Input required and not supplied: ${name}`); + } + if (options && options.trimWhitespace === false) { + return val; + } + return val.trim(); +} +exports.getInput = getInput; +/** + * Gets the values of an multiline input. Each value is also trimmed. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string[] + * + */ +function getMultilineInput(name, options) { + const inputs = getInput(name, options) + .split('\n') + .filter(x => x !== ''); + if (options && options.trimWhitespace === false) { + return inputs; + } + return inputs.map(input => input.trim()); +} +exports.getMultilineInput = getMultilineInput; +/** + * Gets the input value of the boolean type in the YAML 1.2 "core schema" specification. + * Support boolean input list: `true | True | TRUE | false | False | FALSE` . + * The return value is also in boolean type. + * ref: https://yaml.org/spec/1.2/spec.html#id2804923 + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns boolean + */ +function getBooleanInput(name, options) { + const trueValue = ['true', 'True', 'TRUE']; + const falseValue = ['false', 'False', 'FALSE']; + const val = getInput(name, options); + if (trueValue.includes(val)) + return true; + if (falseValue.includes(val)) + return false; + throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${name}\n` + + `Support boolean input list: \`true | True | TRUE | false | False | FALSE\``); +} +exports.getBooleanInput = getBooleanInput; +/** + * Sets the value of an output. + * + * @param name name of the output to set + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function setOutput(name, value) { + const filePath = process.env['GITHUB_OUTPUT'] || ''; + if (filePath) { + return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value)); + } + process.stdout.write(os.EOL); + command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value)); +} +exports.setOutput = setOutput; +/** + * Enables or disables the echoing of commands into stdout for the rest of the step. + * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set. + * + */ +function setCommandEcho(enabled) { + command_1.issue('echo', enabled ? 'on' : 'off'); +} +exports.setCommandEcho = setCommandEcho; +//----------------------------------------------------------------------- +// Results +//----------------------------------------------------------------------- +/** + * Sets the action status to failed. + * When the action exits it will be with an exit code of 1 + * @param message add error issue message + */ +function setFailed(message) { + process.exitCode = ExitCode.Failure; + error(message); +} +exports.setFailed = setFailed; +//----------------------------------------------------------------------- +// Logging Commands +//----------------------------------------------------------------------- +/** + * Gets whether Actions Step Debug is on or not + */ +function isDebug() { + return process.env['RUNNER_DEBUG'] === '1'; +} +exports.isDebug = isDebug; +/** + * Writes debug message to user log + * @param message debug message + */ +function debug(message) { + command_1.issueCommand('debug', {}, message); +} +exports.debug = debug; +/** + * Adds an error issue + * @param message error issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ +function error(message, properties = {}) { + command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); +} +exports.error = error; +/** + * Adds a warning issue + * @param message warning issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ +function warning(message, properties = {}) { + command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); +} +exports.warning = warning; +/** + * Adds a notice issue + * @param message notice issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ +function notice(message, properties = {}) { + command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); +} +exports.notice = notice; +/** + * Writes info to log with console.log. + * @param message info message + */ +function info(message) { + process.stdout.write(message + os.EOL); +} +exports.info = info; +/** + * Begin an output group. + * + * Output until the next `groupEnd` will be foldable in this group + * + * @param name The name of the output group + */ +function startGroup(name) { + command_1.issue('group', name); +} +exports.startGroup = startGroup; +/** + * End an output group. + */ +function endGroup() { + command_1.issue('endgroup'); +} +exports.endGroup = endGroup; +/** + * Wrap an asynchronous function call in a group. + * + * Returns the same type as the function itself. + * + * @param name The name of the group + * @param fn The function to wrap in the group + */ +function group(name, fn) { + return __awaiter(this, void 0, void 0, function* () { + startGroup(name); + let result; + try { + result = yield fn(); + } + finally { + endGroup(); + } + return result; + }); +} +exports.group = group; +//----------------------------------------------------------------------- +// Wrapper action state +//----------------------------------------------------------------------- +/** + * Saves state for current action, the state can only be retrieved by this action's post job execution. + * + * @param name name of the state to store + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function saveState(name, value) { + const filePath = process.env['GITHUB_STATE'] || ''; + if (filePath) { + return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value)); + } + command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value)); +} +exports.saveState = saveState; +/** + * Gets the value of an state set by this action's main execution. + * + * @param name name of the state to get + * @returns string + */ +function getState(name) { + return process.env[`STATE_${name}`] || ''; +} +exports.getState = getState; +function getIDToken(aud) { + return __awaiter(this, void 0, void 0, function* () { + return yield oidc_utils_1.OidcClient.getIDToken(aud); + }); +} +exports.getIDToken = getIDToken; +/** + * Summary exports + */ +var summary_1 = __nccwpck_require__(1327); +Object.defineProperty(exports, "summary", ({ enumerable: true, get: function () { return summary_1.summary; } })); +/** + * @deprecated use core.summary + */ +var summary_2 = __nccwpck_require__(1327); +Object.defineProperty(exports, "markdownSummary", ({ enumerable: true, get: function () { return summary_2.markdownSummary; } })); +/** + * Path exports + */ +var path_utils_1 = __nccwpck_require__(2981); +Object.defineProperty(exports, "toPosixPath", ({ enumerable: true, get: function () { return path_utils_1.toPosixPath; } })); +Object.defineProperty(exports, "toWin32Path", ({ enumerable: true, get: function () { return path_utils_1.toWin32Path; } })); +Object.defineProperty(exports, "toPlatformPath", ({ enumerable: true, get: function () { return path_utils_1.toPlatformPath; } })); +//# sourceMappingURL=core.js.map + +/***/ }), + +/***/ 717: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +// For internal use, subject to change. +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.prepareKeyValueMessage = exports.issueFileCommand = void 0; +// We use any as a valid input type +/* eslint-disable @typescript-eslint/no-explicit-any */ +const fs = __importStar(__nccwpck_require__(7147)); +const os = __importStar(__nccwpck_require__(2037)); +const uuid_1 = __nccwpck_require__(5840); +const utils_1 = __nccwpck_require__(5278); +function issueFileCommand(command, message) { + const filePath = process.env[`GITHUB_${command}`]; + if (!filePath) { + throw new Error(`Unable to find environment variable for file command ${command}`); + } + if (!fs.existsSync(filePath)) { + throw new Error(`Missing file at path: ${filePath}`); + } + fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, { + encoding: 'utf8' + }); +} +exports.issueFileCommand = issueFileCommand; +function prepareKeyValueMessage(key, value) { + const delimiter = `ghadelimiter_${uuid_1.v4()}`; + const convertedValue = utils_1.toCommandValue(value); + // These should realistically never happen, but just in case someone finds a + // way to exploit uuid generation let's not allow keys or values that contain + // the delimiter. + if (key.includes(delimiter)) { + throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`); + } + if (convertedValue.includes(delimiter)) { + throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`); + } + return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`; +} +exports.prepareKeyValueMessage = prepareKeyValueMessage; +//# sourceMappingURL=file-command.js.map + +/***/ }), + +/***/ 8041: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.OidcClient = void 0; +const http_client_1 = __nccwpck_require__(6255); +const auth_1 = __nccwpck_require__(5526); +const core_1 = __nccwpck_require__(2186); +class OidcClient { + static createHttpClient(allowRetry = true, maxRetry = 10) { + const requestOptions = { + allowRetries: allowRetry, + maxRetries: maxRetry + }; + return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions); + } + static getRequestToken() { + const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN']; + if (!token) { + throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable'); + } + return token; + } + static getIDTokenUrl() { + const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL']; + if (!runtimeUrl) { + throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable'); + } + return runtimeUrl; + } + static getCall(id_token_url) { + var _a; + return __awaiter(this, void 0, void 0, function* () { + const httpclient = OidcClient.createHttpClient(); + const res = yield httpclient + .getJson(id_token_url) + .catch(error => { + throw new Error(`Failed to get ID Token. \n + Error Code : ${error.statusCode}\n + Error Message: ${error.message}`); + }); + const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; + if (!id_token) { + throw new Error('Response json body do not have ID Token field'); + } + return id_token; + }); + } + static getIDToken(audience) { + return __awaiter(this, void 0, void 0, function* () { + try { + // New ID Token is requested from action service + let id_token_url = OidcClient.getIDTokenUrl(); + if (audience) { + const encodedAudience = encodeURIComponent(audience); + id_token_url = `${id_token_url}&audience=${encodedAudience}`; + } + core_1.debug(`ID token url is ${id_token_url}`); + const id_token = yield OidcClient.getCall(id_token_url); + core_1.setSecret(id_token); + return id_token; + } + catch (error) { + throw new Error(`Error message: ${error.message}`); + } + }); + } +} +exports.OidcClient = OidcClient; +//# sourceMappingURL=oidc-utils.js.map + +/***/ }), + +/***/ 2981: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0; +const path = __importStar(__nccwpck_require__(1017)); +/** + * toPosixPath converts the given path to the posix form. On Windows, \\ will be + * replaced with /. + * + * @param pth. Path to transform. + * @return string Posix path. + */ +function toPosixPath(pth) { + return pth.replace(/[\\]/g, '/'); +} +exports.toPosixPath = toPosixPath; +/** + * toWin32Path converts the given path to the win32 form. On Linux, / will be + * replaced with \\. + * + * @param pth. Path to transform. + * @return string Win32 path. + */ +function toWin32Path(pth) { + return pth.replace(/[/]/g, '\\'); +} +exports.toWin32Path = toWin32Path; +/** + * toPlatformPath converts the given path to a platform-specific path. It does + * this by replacing instances of / and \ with the platform-specific path + * separator. + * + * @param pth The path to platformize. + * @return string The platform-specific path. + */ +function toPlatformPath(pth) { + return pth.replace(/[/\\]/g, path.sep); +} +exports.toPlatformPath = toPlatformPath; +//# sourceMappingURL=path-utils.js.map + +/***/ }), + +/***/ 1327: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0; +const os_1 = __nccwpck_require__(2037); +const fs_1 = __nccwpck_require__(7147); +const { access, appendFile, writeFile } = fs_1.promises; +exports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY'; +exports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary'; +class Summary { + constructor() { + this._buffer = ''; + } + /** + * Finds the summary file path from the environment, rejects if env var is not found or file does not exist + * Also checks r/w permissions. + * + * @returns step summary file path + */ + filePath() { + return __awaiter(this, void 0, void 0, function* () { + if (this._filePath) { + return this._filePath; + } + const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR]; + if (!pathFromEnv) { + throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); + } + try { + yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK); + } + catch (_a) { + throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`); + } + this._filePath = pathFromEnv; + return this._filePath; + }); + } + /** + * Wraps content in an HTML tag, adding any HTML attributes + * + * @param {string} tag HTML tag to wrap + * @param {string | null} content content within the tag + * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add + * + * @returns {string} content wrapped in HTML element + */ + wrap(tag, content, attrs = {}) { + const htmlAttrs = Object.entries(attrs) + .map(([key, value]) => ` ${key}="${value}"`) + .join(''); + if (!content) { + return `<${tag}${htmlAttrs}>`; + } + return `<${tag}${htmlAttrs}>${content}`; + } + /** + * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default. + * + * @param {SummaryWriteOptions} [options] (optional) options for write operation + * + * @returns {Promise} summary instance + */ + write(options) { + return __awaiter(this, void 0, void 0, function* () { + const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite); + const filePath = yield this.filePath(); + const writeFunc = overwrite ? writeFile : appendFile; + yield writeFunc(filePath, this._buffer, { encoding: 'utf8' }); + return this.emptyBuffer(); + }); + } + /** + * Clears the summary buffer and wipes the summary file + * + * @returns {Summary} summary instance + */ + clear() { + return __awaiter(this, void 0, void 0, function* () { + return this.emptyBuffer().write({ overwrite: true }); + }); + } + /** + * Returns the current summary buffer as a string + * + * @returns {string} string of summary buffer + */ + stringify() { + return this._buffer; + } + /** + * If the summary buffer is empty + * + * @returns {boolen} true if the buffer is empty + */ + isEmptyBuffer() { + return this._buffer.length === 0; + } + /** + * Resets the summary buffer without writing to summary file + * + * @returns {Summary} summary instance + */ + emptyBuffer() { + this._buffer = ''; + return this; + } + /** + * Adds raw text to the summary buffer + * + * @param {string} text content to add + * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false) + * + * @returns {Summary} summary instance + */ + addRaw(text, addEOL = false) { + this._buffer += text; + return addEOL ? this.addEOL() : this; + } + /** + * Adds the operating system-specific end-of-line marker to the buffer + * + * @returns {Summary} summary instance + */ + addEOL() { + return this.addRaw(os_1.EOL); + } + /** + * Adds an HTML codeblock to the summary buffer + * + * @param {string} code content to render within fenced code block + * @param {string} lang (optional) language to syntax highlight code + * + * @returns {Summary} summary instance + */ + addCodeBlock(code, lang) { + const attrs = Object.assign({}, (lang && { lang })); + const element = this.wrap('pre', this.wrap('code', code), attrs); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML list to the summary buffer + * + * @param {string[]} items list of items to render + * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false) + * + * @returns {Summary} summary instance + */ + addList(items, ordered = false) { + const tag = ordered ? 'ol' : 'ul'; + const listItems = items.map(item => this.wrap('li', item)).join(''); + const element = this.wrap(tag, listItems); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML table to the summary buffer + * + * @param {SummaryTableCell[]} rows table rows + * + * @returns {Summary} summary instance + */ + addTable(rows) { + const tableBody = rows + .map(row => { + const cells = row + .map(cell => { + if (typeof cell === 'string') { + return this.wrap('td', cell); + } + const { header, data, colspan, rowspan } = cell; + const tag = header ? 'th' : 'td'; + const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan })); + return this.wrap(tag, data, attrs); + }) + .join(''); + return this.wrap('tr', cells); + }) + .join(''); + const element = this.wrap('table', tableBody); + return this.addRaw(element).addEOL(); + } + /** + * Adds a collapsable HTML details element to the summary buffer + * + * @param {string} label text for the closed state + * @param {string} content collapsable content + * + * @returns {Summary} summary instance + */ + addDetails(label, content) { + const element = this.wrap('details', this.wrap('summary', label) + content); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML image tag to the summary buffer + * + * @param {string} src path to the image you to embed + * @param {string} alt text description of the image + * @param {SummaryImageOptions} options (optional) addition image attributes + * + * @returns {Summary} summary instance + */ + addImage(src, alt, options) { + const { width, height } = options || {}; + const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height })); + const element = this.wrap('img', null, Object.assign({ src, alt }, attrs)); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML section heading element + * + * @param {string} text heading text + * @param {number | string} [level=1] (optional) the heading level, default: 1 + * + * @returns {Summary} summary instance + */ + addHeading(text, level) { + const tag = `h${level}`; + const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag) + ? tag + : 'h1'; + const element = this.wrap(allowedTag, text); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML thematic break (
      ) to the summary buffer + * + * @returns {Summary} summary instance + */ + addSeparator() { + const element = this.wrap('hr', null); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML line break (
      ) to the summary buffer + * + * @returns {Summary} summary instance + */ + addBreak() { + const element = this.wrap('br', null); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML blockquote to the summary buffer + * + * @param {string} text quote text + * @param {string} cite (optional) citation url + * + * @returns {Summary} summary instance + */ + addQuote(text, cite) { + const attrs = Object.assign({}, (cite && { cite })); + const element = this.wrap('blockquote', text, attrs); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML anchor tag to the summary buffer + * + * @param {string} text link text/content + * @param {string} href hyperlink + * + * @returns {Summary} summary instance + */ + addLink(text, href) { + const element = this.wrap('a', text, { href }); + return this.addRaw(element).addEOL(); + } +} +const _summary = new Summary(); +/** + * @deprecated use `core.summary` + */ +exports.markdownSummary = _summary; +exports.summary = _summary; +//# sourceMappingURL=summary.js.map + +/***/ }), + +/***/ 5278: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +// We use any as a valid input type +/* eslint-disable @typescript-eslint/no-explicit-any */ +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.toCommandProperties = exports.toCommandValue = void 0; +/** + * Sanitizes an input into a string so it can be passed into issueCommand safely + * @param input input to sanitize into a string + */ +function toCommandValue(input) { + if (input === null || input === undefined) { + return ''; + } + else if (typeof input === 'string' || input instanceof String) { + return input; + } + return JSON.stringify(input); +} +exports.toCommandValue = toCommandValue; +/** + * + * @param annotationProperties + * @returns The command properties to send with the actual annotation command + * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646 + */ +function toCommandProperties(annotationProperties) { + if (!Object.keys(annotationProperties).length) { + return {}; + } + return { + title: annotationProperties.title, + file: annotationProperties.file, + line: annotationProperties.startLine, + endLine: annotationProperties.endLine, + col: annotationProperties.startColumn, + endColumn: annotationProperties.endColumn + }; +} +exports.toCommandProperties = toCommandProperties; +//# sourceMappingURL=utils.js.map + +/***/ }), + +/***/ 5526: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0; +class BasicCredentialHandler { + constructor(username, password) { + this.username = username; + this.password = password; + } + prepareRequest(options) { + if (!options.headers) { + throw Error('The request has no headers'); + } + options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + throw new Error('not implemented'); + }); + } +} +exports.BasicCredentialHandler = BasicCredentialHandler; +class BearerCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!options.headers) { + throw Error('The request has no headers'); + } + options.headers['Authorization'] = `Bearer ${this.token}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + throw new Error('not implemented'); + }); + } +} +exports.BearerCredentialHandler = BearerCredentialHandler; +class PersonalAccessTokenCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!options.headers) { + throw Error('The request has no headers'); + } + options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + throw new Error('not implemented'); + }); + } +} +exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; +//# sourceMappingURL=auth.js.map + +/***/ }), + +/***/ 6255: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* eslint-disable @typescript-eslint/no-explicit-any */ +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0; +const http = __importStar(__nccwpck_require__(3685)); +const https = __importStar(__nccwpck_require__(5687)); +const pm = __importStar(__nccwpck_require__(9835)); +const tunnel = __importStar(__nccwpck_require__(4294)); +const undici_1 = __nccwpck_require__(1773); +var HttpCodes; +(function (HttpCodes) { + HttpCodes[HttpCodes["OK"] = 200] = "OK"; + HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; + HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; + HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; + HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; + HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; + HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; + HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; + HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; + HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; + HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; + HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; + HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; + HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; + HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; + HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; + HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; + HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; + HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; + HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; + HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; + HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; + HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; + HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; + HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; + HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; + HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; +})(HttpCodes || (exports.HttpCodes = HttpCodes = {})); +var Headers; +(function (Headers) { + Headers["Accept"] = "accept"; + Headers["ContentType"] = "content-type"; +})(Headers || (exports.Headers = Headers = {})); +var MediaTypes; +(function (MediaTypes) { + MediaTypes["ApplicationJson"] = "application/json"; +})(MediaTypes || (exports.MediaTypes = MediaTypes = {})); +/** + * Returns the proxy URL, depending upon the supplied url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ +function getProxyUrl(serverUrl) { + const proxyUrl = pm.getProxyUrl(new URL(serverUrl)); + return proxyUrl ? proxyUrl.href : ''; +} +exports.getProxyUrl = getProxyUrl; +const HttpRedirectCodes = [ + HttpCodes.MovedPermanently, + HttpCodes.ResourceMoved, + HttpCodes.SeeOther, + HttpCodes.TemporaryRedirect, + HttpCodes.PermanentRedirect +]; +const HttpResponseRetryCodes = [ + HttpCodes.BadGateway, + HttpCodes.ServiceUnavailable, + HttpCodes.GatewayTimeout +]; +const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; +const ExponentialBackoffCeiling = 10; +const ExponentialBackoffTimeSlice = 5; +class HttpClientError extends Error { + constructor(message, statusCode) { + super(message); + this.name = 'HttpClientError'; + this.statusCode = statusCode; + Object.setPrototypeOf(this, HttpClientError.prototype); + } +} +exports.HttpClientError = HttpClientError; +class HttpClientResponse { + constructor(message) { + this.message = message; + } + readBody() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { + let output = Buffer.alloc(0); + this.message.on('data', (chunk) => { + output = Buffer.concat([output, chunk]); + }); + this.message.on('end', () => { + resolve(output.toString()); + }); + })); + }); + } + readBodyBuffer() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { + const chunks = []; + this.message.on('data', (chunk) => { + chunks.push(chunk); + }); + this.message.on('end', () => { + resolve(Buffer.concat(chunks)); + }); + })); + }); + } +} +exports.HttpClientResponse = HttpClientResponse; +function isHttps(requestUrl) { + const parsedUrl = new URL(requestUrl); + return parsedUrl.protocol === 'https:'; +} +exports.isHttps = isHttps; +class HttpClient { + constructor(userAgent, handlers, requestOptions) { + this._ignoreSslError = false; + this._allowRedirects = true; + this._allowRedirectDowngrade = false; + this._maxRedirects = 50; + this._allowRetries = false; + this._maxRetries = 1; + this._keepAlive = false; + this._disposed = false; + this.userAgent = userAgent; + this.handlers = handlers || []; + this.requestOptions = requestOptions; + if (requestOptions) { + if (requestOptions.ignoreSslError != null) { + this._ignoreSslError = requestOptions.ignoreSslError; + } + this._socketTimeout = requestOptions.socketTimeout; + if (requestOptions.allowRedirects != null) { + this._allowRedirects = requestOptions.allowRedirects; + } + if (requestOptions.allowRedirectDowngrade != null) { + this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade; + } + if (requestOptions.maxRedirects != null) { + this._maxRedirects = Math.max(requestOptions.maxRedirects, 0); + } + if (requestOptions.keepAlive != null) { + this._keepAlive = requestOptions.keepAlive; + } + if (requestOptions.allowRetries != null) { + this._allowRetries = requestOptions.allowRetries; + } + if (requestOptions.maxRetries != null) { + this._maxRetries = requestOptions.maxRetries; + } + } + } + options(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); + }); + } + get(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('GET', requestUrl, null, additionalHeaders || {}); + }); + } + del(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('DELETE', requestUrl, null, additionalHeaders || {}); + }); + } + post(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('POST', requestUrl, data, additionalHeaders || {}); + }); + } + patch(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('PATCH', requestUrl, data, additionalHeaders || {}); + }); + } + put(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('PUT', requestUrl, data, additionalHeaders || {}); + }); + } + head(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('HEAD', requestUrl, null, additionalHeaders || {}); + }); + } + sendStream(verb, requestUrl, stream, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request(verb, requestUrl, stream, additionalHeaders); + }); + } + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ + getJson(requestUrl, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + const res = yield this.get(requestUrl, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + postJson(requestUrl, obj, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + const res = yield this.post(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + putJson(requestUrl, obj, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + const res = yield this.put(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + patchJson(requestUrl, obj, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + const res = yield this.patch(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + /** + * Makes a raw http request. + * All other methods such as get, post, patch, and request ultimately call this. + * Prefer get, del, post and patch + */ + request(verb, requestUrl, data, headers) { + return __awaiter(this, void 0, void 0, function* () { + if (this._disposed) { + throw new Error('Client has already been disposed.'); + } + const parsedUrl = new URL(requestUrl); + let info = this._prepareRequest(verb, parsedUrl, headers); + // Only perform retries on reads since writes may not be idempotent. + const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb) + ? this._maxRetries + 1 + : 1; + let numTries = 0; + let response; + do { + response = yield this.requestRaw(info, data); + // Check if it's an authentication challenge + if (response && + response.message && + response.message.statusCode === HttpCodes.Unauthorized) { + let authenticationHandler; + for (const handler of this.handlers) { + if (handler.canHandleAuthentication(response)) { + authenticationHandler = handler; + break; + } + } + if (authenticationHandler) { + return authenticationHandler.handleAuthentication(this, info, data); + } + else { + // We have received an unauthorized response but have no handlers to handle it. + // Let the response return to the caller. + return response; + } + } + let redirectsRemaining = this._maxRedirects; + while (response.message.statusCode && + HttpRedirectCodes.includes(response.message.statusCode) && + this._allowRedirects && + redirectsRemaining > 0) { + const redirectUrl = response.message.headers['location']; + if (!redirectUrl) { + // if there's no location to redirect to, we won't + break; + } + const parsedRedirectUrl = new URL(redirectUrl); + if (parsedUrl.protocol === 'https:' && + parsedUrl.protocol !== parsedRedirectUrl.protocol && + !this._allowRedirectDowngrade) { + throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.'); + } + // we need to finish reading the response before reassigning response + // which will leak the open socket. + yield response.readBody(); + // strip authorization header if redirected to a different hostname + if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { + for (const header in headers) { + // header names are case insensitive + if (header.toLowerCase() === 'authorization') { + delete headers[header]; + } + } + } + // let's make the request with the new redirectUrl + info = this._prepareRequest(verb, parsedRedirectUrl, headers); + response = yield this.requestRaw(info, data); + redirectsRemaining--; + } + if (!response.message.statusCode || + !HttpResponseRetryCodes.includes(response.message.statusCode)) { + // If not a retry code, return immediately instead of retrying + return response; + } + numTries += 1; + if (numTries < maxTries) { + yield response.readBody(); + yield this._performExponentialBackoff(numTries); + } + } while (numTries < maxTries); + return response; + }); + } + /** + * Needs to be called if keepAlive is set to true in request options. + */ + dispose() { + if (this._agent) { + this._agent.destroy(); + } + this._disposed = true; + } + /** + * Raw request. + * @param info + * @param data + */ + requestRaw(info, data) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => { + function callbackForResult(err, res) { + if (err) { + reject(err); + } + else if (!res) { + // If `err` is not passed, then `res` must be passed. + reject(new Error('Unknown error')); + } + else { + resolve(res); + } + } + this.requestRawWithCallback(info, data, callbackForResult); + }); + }); + } + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info, data, onResult) { + if (typeof data === 'string') { + if (!info.options.headers) { + info.options.headers = {}; + } + info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8'); + } + let callbackCalled = false; + function handleResult(err, res) { + if (!callbackCalled) { + callbackCalled = true; + onResult(err, res); + } + } + const req = info.httpModule.request(info.options, (msg) => { + const res = new HttpClientResponse(msg); + handleResult(undefined, res); + }); + let socket; + req.on('socket', sock => { + socket = sock; + }); + // If we ever get disconnected, we want the socket to timeout eventually + req.setTimeout(this._socketTimeout || 3 * 60000, () => { + if (socket) { + socket.end(); + } + handleResult(new Error(`Request timeout: ${info.options.path}`)); + }); + req.on('error', function (err) { + // err has statusCode property + // res should have headers + handleResult(err); + }); + if (data && typeof data === 'string') { + req.write(data, 'utf8'); + } + if (data && typeof data !== 'string') { + data.on('close', function () { + req.end(); + }); + data.pipe(req); + } + else { + req.end(); + } + } + /** + * Gets an http agent. This function is useful when you need an http agent that handles + * routing through a proxy server - depending upon the url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ + getAgent(serverUrl) { + const parsedUrl = new URL(serverUrl); + return this._getAgent(parsedUrl); + } + getAgentDispatcher(serverUrl) { + const parsedUrl = new URL(serverUrl); + const proxyUrl = pm.getProxyUrl(parsedUrl); + const useProxy = proxyUrl && proxyUrl.hostname; + if (!useProxy) { + return; + } + return this._getProxyAgentDispatcher(parsedUrl, proxyUrl); + } + _prepareRequest(method, requestUrl, headers) { + const info = {}; + info.parsedUrl = requestUrl; + const usingSsl = info.parsedUrl.protocol === 'https:'; + info.httpModule = usingSsl ? https : http; + const defaultPort = usingSsl ? 443 : 80; + info.options = {}; + info.options.host = info.parsedUrl.hostname; + info.options.port = info.parsedUrl.port + ? parseInt(info.parsedUrl.port) + : defaultPort; + info.options.path = + (info.parsedUrl.pathname || '') + (info.parsedUrl.search || ''); + info.options.method = method; + info.options.headers = this._mergeHeaders(headers); + if (this.userAgent != null) { + info.options.headers['user-agent'] = this.userAgent; + } + info.options.agent = this._getAgent(info.parsedUrl); + // gives handlers an opportunity to participate + if (this.handlers) { + for (const handler of this.handlers) { + handler.prepareRequest(info.options); + } + } + return info; + } + _mergeHeaders(headers) { + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {})); + } + return lowercaseKeys(headers || {}); + } + _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; + } + return additionalHeaders[header] || clientHeader || _default; + } + _getAgent(parsedUrl) { + let agent; + const proxyUrl = pm.getProxyUrl(parsedUrl); + const useProxy = proxyUrl && proxyUrl.hostname; + if (this._keepAlive && useProxy) { + agent = this._proxyAgent; + } + if (this._keepAlive && !useProxy) { + agent = this._agent; + } + // if agent is already assigned use that agent. + if (agent) { + return agent; + } + const usingSsl = parsedUrl.protocol === 'https:'; + let maxSockets = 100; + if (this.requestOptions) { + maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; + } + // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis. + if (proxyUrl && proxyUrl.hostname) { + const agentOptions = { + maxSockets, + keepAlive: this._keepAlive, + proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && { + proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` + })), { host: proxyUrl.hostname, port: proxyUrl.port }) + }; + let tunnelAgent; + const overHttps = proxyUrl.protocol === 'https:'; + if (usingSsl) { + tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp; + } + else { + tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp; + } + agent = tunnelAgent(agentOptions); + this._proxyAgent = agent; + } + // if reusing agent across request and tunneling agent isn't assigned create a new agent + if (this._keepAlive && !agent) { + const options = { keepAlive: this._keepAlive, maxSockets }; + agent = usingSsl ? new https.Agent(options) : new http.Agent(options); + this._agent = agent; + } + // if not using private agent and tunnel agent isn't setup then use global agent + if (!agent) { + agent = usingSsl ? https.globalAgent : http.globalAgent; + } + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + agent.options = Object.assign(agent.options || {}, { + rejectUnauthorized: false + }); + } + return agent; + } + _getProxyAgentDispatcher(parsedUrl, proxyUrl) { + let proxyAgent; + if (this._keepAlive) { + proxyAgent = this._proxyAgentDispatcher; + } + // if agent is already assigned use that agent. + if (proxyAgent) { + return proxyAgent; + } + const usingSsl = parsedUrl.protocol === 'https:'; + proxyAgent = new undici_1.ProxyAgent(Object.assign({ uri: proxyUrl.href, pipelining: !this._keepAlive ? 0 : 1 }, ((proxyUrl.username || proxyUrl.password) && { + token: `${proxyUrl.username}:${proxyUrl.password}` + }))); + this._proxyAgentDispatcher = proxyAgent; + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + proxyAgent.options = Object.assign(proxyAgent.options.requestTls || {}, { + rejectUnauthorized: false + }); + } + return proxyAgent; + } + _performExponentialBackoff(retryNumber) { + return __awaiter(this, void 0, void 0, function* () { + retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); + const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); + return new Promise(resolve => setTimeout(() => resolve(), ms)); + }); + } + _processResponse(res, options) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + const statusCode = res.message.statusCode || 0; + const response = { + statusCode, + result: null, + headers: {} + }; + // not found leads to null obj returned + if (statusCode === HttpCodes.NotFound) { + resolve(response); + } + // get the result from the body + function dateTimeDeserializer(key, value) { + if (typeof value === 'string') { + const a = new Date(value); + if (!isNaN(a.valueOf())) { + return a; + } + } + return value; + } + let obj; + let contents; + try { + contents = yield res.readBody(); + if (contents && contents.length > 0) { + if (options && options.deserializeDates) { + obj = JSON.parse(contents, dateTimeDeserializer); + } + else { + obj = JSON.parse(contents); + } + response.result = obj; + } + response.headers = res.message.headers; + } + catch (err) { + // Invalid resource (contents not json); leaving result obj null + } + // note that 3xx redirects are handled by the http layer. + if (statusCode > 299) { + let msg; + // if exception/error in body, attempt to get better error + if (obj && obj.message) { + msg = obj.message; + } + else if (contents && contents.length > 0) { + // it may be the case that the exception is in the body message as string + msg = contents; + } + else { + msg = `Failed request: (${statusCode})`; + } + const err = new HttpClientError(msg, statusCode); + err.result = response.result; + reject(err); + } + else { + resolve(response); + } + })); + }); + } +} +exports.HttpClient = HttpClient; +const lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ 9835: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.checkBypass = exports.getProxyUrl = void 0; +function getProxyUrl(reqUrl) { + const usingSsl = reqUrl.protocol === 'https:'; + if (checkBypass(reqUrl)) { + return undefined; + } + const proxyVar = (() => { + if (usingSsl) { + return process.env['https_proxy'] || process.env['HTTPS_PROXY']; + } + else { + return process.env['http_proxy'] || process.env['HTTP_PROXY']; + } + })(); + if (proxyVar) { + try { + return new URL(proxyVar); + } + catch (_a) { + if (!proxyVar.startsWith('http://') && !proxyVar.startsWith('https://')) + return new URL(`http://${proxyVar}`); + } + } + else { + return undefined; + } +} +exports.getProxyUrl = getProxyUrl; +function checkBypass(reqUrl) { + if (!reqUrl.hostname) { + return false; + } + const reqHost = reqUrl.hostname; + if (isLoopbackAddress(reqHost)) { + return true; + } + const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; + if (!noProxy) { + return false; + } + // Determine the request port + let reqPort; + if (reqUrl.port) { + reqPort = Number(reqUrl.port); + } + else if (reqUrl.protocol === 'http:') { + reqPort = 80; + } + else if (reqUrl.protocol === 'https:') { + reqPort = 443; + } + // Format the request hostname and hostname with port + const upperReqHosts = [reqUrl.hostname.toUpperCase()]; + if (typeof reqPort === 'number') { + upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); + } + // Compare request host against noproxy + for (const upperNoProxyItem of noProxy + .split(',') + .map(x => x.trim().toUpperCase()) + .filter(x => x)) { + if (upperNoProxyItem === '*' || + upperReqHosts.some(x => x === upperNoProxyItem || + x.endsWith(`.${upperNoProxyItem}`) || + (upperNoProxyItem.startsWith('.') && + x.endsWith(`${upperNoProxyItem}`)))) { + return true; + } + } + return false; +} +exports.checkBypass = checkBypass; +function isLoopbackAddress(host) { + const hostLower = host.toLowerCase(); + return (hostLower === 'localhost' || + hostLower.startsWith('127.') || + hostLower.startsWith('[::1]') || + hostLower.startsWith('[0:0:0:0:0:0:0:1]')); +} +//# sourceMappingURL=proxy.js.map + +/***/ }), + +/***/ 2856: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const WritableStream = (__nccwpck_require__(4492).Writable) +const inherits = (__nccwpck_require__(7261).inherits) + +const StreamSearch = __nccwpck_require__(8534) + +const PartStream = __nccwpck_require__(8710) +const HeaderParser = __nccwpck_require__(333) + +const DASH = 45 +const B_ONEDASH = Buffer.from('-') +const B_CRLF = Buffer.from('\r\n') +const EMPTY_FN = function () {} + +function Dicer (cfg) { + if (!(this instanceof Dicer)) { return new Dicer(cfg) } + WritableStream.call(this, cfg) + + if (!cfg || (!cfg.headerFirst && typeof cfg.boundary !== 'string')) { throw new TypeError('Boundary required') } + + if (typeof cfg.boundary === 'string') { this.setBoundary(cfg.boundary) } else { this._bparser = undefined } + + this._headerFirst = cfg.headerFirst + + this._dashes = 0 + this._parts = 0 + this._finished = false + this._realFinish = false + this._isPreamble = true + this._justMatched = false + this._firstWrite = true + this._inHeader = true + this._part = undefined + this._cb = undefined + this._ignoreData = false + this._partOpts = { highWaterMark: cfg.partHwm } + this._pause = false + + const self = this + this._hparser = new HeaderParser(cfg) + this._hparser.on('header', function (header) { + self._inHeader = false + self._part.emit('header', header) + }) +} +inherits(Dicer, WritableStream) + +Dicer.prototype.emit = function (ev) { + if (ev === 'finish' && !this._realFinish) { + if (!this._finished) { + const self = this + process.nextTick(function () { + self.emit('error', new Error('Unexpected end of multipart data')) + if (self._part && !self._ignoreData) { + const type = (self._isPreamble ? 'Preamble' : 'Part') + self._part.emit('error', new Error(type + ' terminated early due to unexpected end of multipart data')) + self._part.push(null) + process.nextTick(function () { + self._realFinish = true + self.emit('finish') + self._realFinish = false + }) + return + } + self._realFinish = true + self.emit('finish') + self._realFinish = false + }) + } + } else { WritableStream.prototype.emit.apply(this, arguments) } +} + +Dicer.prototype._write = function (data, encoding, cb) { + // ignore unexpected data (e.g. extra trailer data after finished) + if (!this._hparser && !this._bparser) { return cb() } + + if (this._headerFirst && this._isPreamble) { + if (!this._part) { + this._part = new PartStream(this._partOpts) + if (this._events.preamble) { this.emit('preamble', this._part) } else { this._ignore() } + } + const r = this._hparser.push(data) + if (!this._inHeader && r !== undefined && r < data.length) { data = data.slice(r) } else { return cb() } + } + + // allows for "easier" testing + if (this._firstWrite) { + this._bparser.push(B_CRLF) + this._firstWrite = false + } + + this._bparser.push(data) + + if (this._pause) { this._cb = cb } else { cb() } +} + +Dicer.prototype.reset = function () { + this._part = undefined + this._bparser = undefined + this._hparser = undefined +} + +Dicer.prototype.setBoundary = function (boundary) { + const self = this + this._bparser = new StreamSearch('\r\n--' + boundary) + this._bparser.on('info', function (isMatch, data, start, end) { + self._oninfo(isMatch, data, start, end) + }) +} + +Dicer.prototype._ignore = function () { + if (this._part && !this._ignoreData) { + this._ignoreData = true + this._part.on('error', EMPTY_FN) + // we must perform some kind of read on the stream even though we are + // ignoring the data, otherwise node's Readable stream will not emit 'end' + // after pushing null to the stream + this._part.resume() + } +} + +Dicer.prototype._oninfo = function (isMatch, data, start, end) { + let buf; const self = this; let i = 0; let r; let shouldWriteMore = true + + if (!this._part && this._justMatched && data) { + while (this._dashes < 2 && (start + i) < end) { + if (data[start + i] === DASH) { + ++i + ++this._dashes + } else { + if (this._dashes) { buf = B_ONEDASH } + this._dashes = 0 + break + } + } + if (this._dashes === 2) { + if ((start + i) < end && this._events.trailer) { this.emit('trailer', data.slice(start + i, end)) } + this.reset() + this._finished = true + // no more parts will be added + if (self._parts === 0) { + self._realFinish = true + self.emit('finish') + self._realFinish = false + } + } + if (this._dashes) { return } + } + if (this._justMatched) { this._justMatched = false } + if (!this._part) { + this._part = new PartStream(this._partOpts) + this._part._read = function (n) { + self._unpause() + } + if (this._isPreamble && this._events.preamble) { this.emit('preamble', this._part) } else if (this._isPreamble !== true && this._events.part) { this.emit('part', this._part) } else { this._ignore() } + if (!this._isPreamble) { this._inHeader = true } + } + if (data && start < end && !this._ignoreData) { + if (this._isPreamble || !this._inHeader) { + if (buf) { shouldWriteMore = this._part.push(buf) } + shouldWriteMore = this._part.push(data.slice(start, end)) + if (!shouldWriteMore) { this._pause = true } + } else if (!this._isPreamble && this._inHeader) { + if (buf) { this._hparser.push(buf) } + r = this._hparser.push(data.slice(start, end)) + if (!this._inHeader && r !== undefined && r < end) { this._oninfo(false, data, start + r, end) } + } + } + if (isMatch) { + this._hparser.reset() + if (this._isPreamble) { this._isPreamble = false } else { + if (start !== end) { + ++this._parts + this._part.on('end', function () { + if (--self._parts === 0) { + if (self._finished) { + self._realFinish = true + self.emit('finish') + self._realFinish = false + } else { + self._unpause() + } + } + }) + } + } + this._part.push(null) + this._part = undefined + this._ignoreData = false + this._justMatched = true + this._dashes = 0 + } +} + +Dicer.prototype._unpause = function () { + if (!this._pause) { return } + + this._pause = false + if (this._cb) { + const cb = this._cb + this._cb = undefined + cb() + } +} + +module.exports = Dicer + + +/***/ }), + +/***/ 333: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const EventEmitter = (__nccwpck_require__(5673).EventEmitter) +const inherits = (__nccwpck_require__(7261).inherits) +const getLimit = __nccwpck_require__(9692) + +const StreamSearch = __nccwpck_require__(8534) + +const B_DCRLF = Buffer.from('\r\n\r\n') +const RE_CRLF = /\r\n/g +const RE_HDR = /^([^:]+):[ \t]?([\x00-\xFF]+)?$/ // eslint-disable-line no-control-regex + +function HeaderParser (cfg) { + EventEmitter.call(this) + + cfg = cfg || {} + const self = this + this.nread = 0 + this.maxed = false + this.npairs = 0 + this.maxHeaderPairs = getLimit(cfg, 'maxHeaderPairs', 2000) + this.maxHeaderSize = getLimit(cfg, 'maxHeaderSize', 80 * 1024) + this.buffer = '' + this.header = {} + this.finished = false + this.ss = new StreamSearch(B_DCRLF) + this.ss.on('info', function (isMatch, data, start, end) { + if (data && !self.maxed) { + if (self.nread + end - start >= self.maxHeaderSize) { + end = self.maxHeaderSize - self.nread + start + self.nread = self.maxHeaderSize + self.maxed = true + } else { self.nread += (end - start) } + + self.buffer += data.toString('binary', start, end) + } + if (isMatch) { self._finish() } + }) +} +inherits(HeaderParser, EventEmitter) + +HeaderParser.prototype.push = function (data) { + const r = this.ss.push(data) + if (this.finished) { return r } +} + +HeaderParser.prototype.reset = function () { + this.finished = false + this.buffer = '' + this.header = {} + this.ss.reset() +} + +HeaderParser.prototype._finish = function () { + if (this.buffer) { this._parseHeader() } + this.ss.matches = this.ss.maxMatches + const header = this.header + this.header = {} + this.buffer = '' + this.finished = true + this.nread = this.npairs = 0 + this.maxed = false + this.emit('header', header) +} + +HeaderParser.prototype._parseHeader = function () { + if (this.npairs === this.maxHeaderPairs) { return } + + const lines = this.buffer.split(RE_CRLF) + const len = lines.length + let m, h + + for (var i = 0; i < len; ++i) { // eslint-disable-line no-var + if (lines[i].length === 0) { continue } + if (lines[i][0] === '\t' || lines[i][0] === ' ') { + // folded header content + // RFC2822 says to just remove the CRLF and not the whitespace following + // it, so we follow the RFC and include the leading whitespace ... + if (h) { + this.header[h][this.header[h].length - 1] += lines[i] + continue + } + } + + const posColon = lines[i].indexOf(':') + if ( + posColon === -1 || + posColon === 0 + ) { + return + } + m = RE_HDR.exec(lines[i]) + h = m[1].toLowerCase() + this.header[h] = this.header[h] || [] + this.header[h].push((m[2] || '')) + if (++this.npairs === this.maxHeaderPairs) { break } + } +} + +module.exports = HeaderParser + + +/***/ }), + +/***/ 8710: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const inherits = (__nccwpck_require__(7261).inherits) +const ReadableStream = (__nccwpck_require__(4492).Readable) + +function PartStream (opts) { + ReadableStream.call(this, opts) +} +inherits(PartStream, ReadableStream) + +PartStream.prototype._read = function (n) {} + +module.exports = PartStream + + +/***/ }), + +/***/ 8534: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +/** + * Copyright Brian White. All rights reserved. + * + * @see https://github.com/mscdex/streamsearch + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + * + * Based heavily on the Streaming Boyer-Moore-Horspool C++ implementation + * by Hongli Lai at: https://github.com/FooBarWidget/boyer-moore-horspool + */ +const EventEmitter = (__nccwpck_require__(5673).EventEmitter) +const inherits = (__nccwpck_require__(7261).inherits) + +function SBMH (needle) { + if (typeof needle === 'string') { + needle = Buffer.from(needle) + } + + if (!Buffer.isBuffer(needle)) { + throw new TypeError('The needle has to be a String or a Buffer.') + } + + const needleLength = needle.length + + if (needleLength === 0) { + throw new Error('The needle cannot be an empty String/Buffer.') + } + + if (needleLength > 256) { + throw new Error('The needle cannot have a length bigger than 256.') + } + + this.maxMatches = Infinity + this.matches = 0 + + this._occ = new Array(256) + .fill(needleLength) // Initialize occurrence table. + this._lookbehind_size = 0 + this._needle = needle + this._bufpos = 0 + + this._lookbehind = Buffer.alloc(needleLength) + + // Populate occurrence table with analysis of the needle, + // ignoring last letter. + for (var i = 0; i < needleLength - 1; ++i) { // eslint-disable-line no-var + this._occ[needle[i]] = needleLength - 1 - i + } +} +inherits(SBMH, EventEmitter) + +SBMH.prototype.reset = function () { + this._lookbehind_size = 0 + this.matches = 0 + this._bufpos = 0 +} + +SBMH.prototype.push = function (chunk, pos) { + if (!Buffer.isBuffer(chunk)) { + chunk = Buffer.from(chunk, 'binary') + } + const chlen = chunk.length + this._bufpos = pos || 0 + let r + while (r !== chlen && this.matches < this.maxMatches) { r = this._sbmh_feed(chunk) } + return r +} + +SBMH.prototype._sbmh_feed = function (data) { + const len = data.length + const needle = this._needle + const needleLength = needle.length + const lastNeedleChar = needle[needleLength - 1] + + // Positive: points to a position in `data` + // pos == 3 points to data[3] + // Negative: points to a position in the lookbehind buffer + // pos == -2 points to lookbehind[lookbehind_size - 2] + let pos = -this._lookbehind_size + let ch + + if (pos < 0) { + // Lookbehind buffer is not empty. Perform Boyer-Moore-Horspool + // search with character lookup code that considers both the + // lookbehind buffer and the current round's haystack data. + // + // Loop until + // there is a match. + // or until + // we've moved past the position that requires the + // lookbehind buffer. In this case we switch to the + // optimized loop. + // or until + // the character to look at lies outside the haystack. + while (pos < 0 && pos <= len - needleLength) { + ch = this._sbmh_lookup_char(data, pos + needleLength - 1) + + if ( + ch === lastNeedleChar && + this._sbmh_memcmp(data, pos, needleLength - 1) + ) { + this._lookbehind_size = 0 + ++this.matches + this.emit('info', true) + + return (this._bufpos = pos + needleLength) + } + pos += this._occ[ch] + } + + // No match. + + if (pos < 0) { + // There's too few data for Boyer-Moore-Horspool to run, + // so let's use a different algorithm to skip as much as + // we can. + // Forward pos until + // the trailing part of lookbehind + data + // looks like the beginning of the needle + // or until + // pos == 0 + while (pos < 0 && !this._sbmh_memcmp(data, pos, len - pos)) { ++pos } + } + + if (pos >= 0) { + // Discard lookbehind buffer. + this.emit('info', false, this._lookbehind, 0, this._lookbehind_size) + this._lookbehind_size = 0 + } else { + // Cut off part of the lookbehind buffer that has + // been processed and append the entire haystack + // into it. + const bytesToCutOff = this._lookbehind_size + pos + if (bytesToCutOff > 0) { + // The cut off data is guaranteed not to contain the needle. + this.emit('info', false, this._lookbehind, 0, bytesToCutOff) + } + + this._lookbehind.copy(this._lookbehind, 0, bytesToCutOff, + this._lookbehind_size - bytesToCutOff) + this._lookbehind_size -= bytesToCutOff + + data.copy(this._lookbehind, this._lookbehind_size) + this._lookbehind_size += len + + this._bufpos = len + return len + } + } + + pos += (pos >= 0) * this._bufpos + + // Lookbehind buffer is now empty. We only need to check if the + // needle is in the haystack. + if (data.indexOf(needle, pos) !== -1) { + pos = data.indexOf(needle, pos) + ++this.matches + if (pos > 0) { this.emit('info', true, data, this._bufpos, pos) } else { this.emit('info', true) } + + return (this._bufpos = pos + needleLength) + } else { + pos = len - needleLength + } + + // There was no match. If there's trailing haystack data that we cannot + // match yet using the Boyer-Moore-Horspool algorithm (because the trailing + // data is less than the needle size) then match using a modified + // algorithm that starts matching from the beginning instead of the end. + // Whatever trailing data is left after running this algorithm is added to + // the lookbehind buffer. + while ( + pos < len && + ( + data[pos] !== needle[0] || + ( + (Buffer.compare( + data.subarray(pos, pos + len - pos), + needle.subarray(0, len - pos) + ) !== 0) + ) + ) + ) { + ++pos + } + if (pos < len) { + data.copy(this._lookbehind, 0, pos, pos + (len - pos)) + this._lookbehind_size = len - pos + } + + // Everything until pos is guaranteed not to contain needle data. + if (pos > 0) { this.emit('info', false, data, this._bufpos, pos < len ? pos : len) } + + this._bufpos = len + return len +} + +SBMH.prototype._sbmh_lookup_char = function (data, pos) { + return (pos < 0) + ? this._lookbehind[this._lookbehind_size + pos] + : data[pos] +} + +SBMH.prototype._sbmh_memcmp = function (data, pos, len) { + for (var i = 0; i < len; ++i) { // eslint-disable-line no-var + if (this._sbmh_lookup_char(data, pos + i) !== this._needle[i]) { return false } + } + return true +} + +module.exports = SBMH + + +/***/ }), + +/***/ 3438: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const WritableStream = (__nccwpck_require__(4492).Writable) +const { inherits } = __nccwpck_require__(7261) +const Dicer = __nccwpck_require__(2856) + +const MultipartParser = __nccwpck_require__(415) +const UrlencodedParser = __nccwpck_require__(6780) +const parseParams = __nccwpck_require__(4426) + +function Busboy (opts) { + if (!(this instanceof Busboy)) { return new Busboy(opts) } + + if (typeof opts !== 'object') { + throw new TypeError('Busboy expected an options-Object.') + } + if (typeof opts.headers !== 'object') { + throw new TypeError('Busboy expected an options-Object with headers-attribute.') + } + if (typeof opts.headers['content-type'] !== 'string') { + throw new TypeError('Missing Content-Type-header.') + } + + const { + headers, + ...streamOptions + } = opts + + this.opts = { + autoDestroy: false, + ...streamOptions + } + WritableStream.call(this, this.opts) + + this._done = false + this._parser = this.getParserByHeaders(headers) + this._finished = false +} +inherits(Busboy, WritableStream) + +Busboy.prototype.emit = function (ev) { + if (ev === 'finish') { + if (!this._done) { + this._parser?.end() + return + } else if (this._finished) { + return + } + this._finished = true + } + WritableStream.prototype.emit.apply(this, arguments) +} + +Busboy.prototype.getParserByHeaders = function (headers) { + const parsed = parseParams(headers['content-type']) + + const cfg = { + defCharset: this.opts.defCharset, + fileHwm: this.opts.fileHwm, + headers, + highWaterMark: this.opts.highWaterMark, + isPartAFile: this.opts.isPartAFile, + limits: this.opts.limits, + parsedConType: parsed, + preservePath: this.opts.preservePath + } + + if (MultipartParser.detect.test(parsed[0])) { + return new MultipartParser(this, cfg) + } + if (UrlencodedParser.detect.test(parsed[0])) { + return new UrlencodedParser(this, cfg) + } + throw new Error('Unsupported Content-Type.') +} + +Busboy.prototype._write = function (chunk, encoding, cb) { + this._parser.write(chunk, cb) +} + +module.exports = Busboy +module.exports["default"] = Busboy +module.exports.Busboy = Busboy + +module.exports.Dicer = Dicer + + +/***/ }), + +/***/ 415: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +// TODO: +// * support 1 nested multipart level +// (see second multipart example here: +// http://www.w3.org/TR/html401/interact/forms.html#didx-multipartform-data) +// * support limits.fieldNameSize +// -- this will require modifications to utils.parseParams + +const { Readable } = __nccwpck_require__(4492) +const { inherits } = __nccwpck_require__(7261) + +const Dicer = __nccwpck_require__(2856) + +const parseParams = __nccwpck_require__(4426) +const decodeText = __nccwpck_require__(9136) +const basename = __nccwpck_require__(496) +const getLimit = __nccwpck_require__(9692) + +const RE_BOUNDARY = /^boundary$/i +const RE_FIELD = /^form-data$/i +const RE_CHARSET = /^charset$/i +const RE_FILENAME = /^filename$/i +const RE_NAME = /^name$/i + +Multipart.detect = /^multipart\/form-data/i +function Multipart (boy, cfg) { + let i + let len + const self = this + let boundary + const limits = cfg.limits + const isPartAFile = cfg.isPartAFile || ((fieldName, contentType, fileName) => (contentType === 'application/octet-stream' || fileName !== undefined)) + const parsedConType = cfg.parsedConType || [] + const defCharset = cfg.defCharset || 'utf8' + const preservePath = cfg.preservePath + const fileOpts = { highWaterMark: cfg.fileHwm } + + for (i = 0, len = parsedConType.length; i < len; ++i) { + if (Array.isArray(parsedConType[i]) && + RE_BOUNDARY.test(parsedConType[i][0])) { + boundary = parsedConType[i][1] + break + } + } + + function checkFinished () { + if (nends === 0 && finished && !boy._done) { + finished = false + self.end() + } + } + + if (typeof boundary !== 'string') { throw new Error('Multipart: Boundary not found') } + + const fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024) + const fileSizeLimit = getLimit(limits, 'fileSize', Infinity) + const filesLimit = getLimit(limits, 'files', Infinity) + const fieldsLimit = getLimit(limits, 'fields', Infinity) + const partsLimit = getLimit(limits, 'parts', Infinity) + const headerPairsLimit = getLimit(limits, 'headerPairs', 2000) + const headerSizeLimit = getLimit(limits, 'headerSize', 80 * 1024) + + let nfiles = 0 + let nfields = 0 + let nends = 0 + let curFile + let curField + let finished = false + + this._needDrain = false + this._pause = false + this._cb = undefined + this._nparts = 0 + this._boy = boy + + const parserCfg = { + boundary, + maxHeaderPairs: headerPairsLimit, + maxHeaderSize: headerSizeLimit, + partHwm: fileOpts.highWaterMark, + highWaterMark: cfg.highWaterMark + } + + this.parser = new Dicer(parserCfg) + this.parser.on('drain', function () { + self._needDrain = false + if (self._cb && !self._pause) { + const cb = self._cb + self._cb = undefined + cb() + } + }).on('part', function onPart (part) { + if (++self._nparts > partsLimit) { + self.parser.removeListener('part', onPart) + self.parser.on('part', skipPart) + boy.hitPartsLimit = true + boy.emit('partsLimit') + return skipPart(part) + } + + // hack because streams2 _always_ doesn't emit 'end' until nextTick, so let + // us emit 'end' early since we know the part has ended if we are already + // seeing the next part + if (curField) { + const field = curField + field.emit('end') + field.removeAllListeners('end') + } + + part.on('header', function (header) { + let contype + let fieldname + let parsed + let charset + let encoding + let filename + let nsize = 0 + + if (header['content-type']) { + parsed = parseParams(header['content-type'][0]) + if (parsed[0]) { + contype = parsed[0].toLowerCase() + for (i = 0, len = parsed.length; i < len; ++i) { + if (RE_CHARSET.test(parsed[i][0])) { + charset = parsed[i][1].toLowerCase() + break + } + } + } + } + + if (contype === undefined) { contype = 'text/plain' } + if (charset === undefined) { charset = defCharset } + + if (header['content-disposition']) { + parsed = parseParams(header['content-disposition'][0]) + if (!RE_FIELD.test(parsed[0])) { return skipPart(part) } + for (i = 0, len = parsed.length; i < len; ++i) { + if (RE_NAME.test(parsed[i][0])) { + fieldname = parsed[i][1] + } else if (RE_FILENAME.test(parsed[i][0])) { + filename = parsed[i][1] + if (!preservePath) { filename = basename(filename) } + } + } + } else { return skipPart(part) } + + if (header['content-transfer-encoding']) { encoding = header['content-transfer-encoding'][0].toLowerCase() } else { encoding = '7bit' } + + let onData, + onEnd + + if (isPartAFile(fieldname, contype, filename)) { + // file/binary field + if (nfiles === filesLimit) { + if (!boy.hitFilesLimit) { + boy.hitFilesLimit = true + boy.emit('filesLimit') + } + return skipPart(part) + } + + ++nfiles + + if (!boy._events.file) { + self.parser._ignore() + return + } + + ++nends + const file = new FileStream(fileOpts) + curFile = file + file.on('end', function () { + --nends + self._pause = false + checkFinished() + if (self._cb && !self._needDrain) { + const cb = self._cb + self._cb = undefined + cb() + } + }) + file._read = function (n) { + if (!self._pause) { return } + self._pause = false + if (self._cb && !self._needDrain) { + const cb = self._cb + self._cb = undefined + cb() + } + } + boy.emit('file', fieldname, file, filename, encoding, contype) + + onData = function (data) { + if ((nsize += data.length) > fileSizeLimit) { + const extralen = fileSizeLimit - nsize + data.length + if (extralen > 0) { file.push(data.slice(0, extralen)) } + file.truncated = true + file.bytesRead = fileSizeLimit + part.removeAllListeners('data') + file.emit('limit') + return + } else if (!file.push(data)) { self._pause = true } + + file.bytesRead = nsize + } + + onEnd = function () { + curFile = undefined + file.push(null) + } + } else { + // non-file field + if (nfields === fieldsLimit) { + if (!boy.hitFieldsLimit) { + boy.hitFieldsLimit = true + boy.emit('fieldsLimit') + } + return skipPart(part) + } + + ++nfields + ++nends + let buffer = '' + let truncated = false + curField = part + + onData = function (data) { + if ((nsize += data.length) > fieldSizeLimit) { + const extralen = (fieldSizeLimit - (nsize - data.length)) + buffer += data.toString('binary', 0, extralen) + truncated = true + part.removeAllListeners('data') + } else { buffer += data.toString('binary') } + } + + onEnd = function () { + curField = undefined + if (buffer.length) { buffer = decodeText(buffer, 'binary', charset) } + boy.emit('field', fieldname, buffer, false, truncated, encoding, contype) + --nends + checkFinished() + } + } + + /* As of node@2efe4ab761666 (v0.10.29+/v0.11.14+), busboy had become + broken. Streams2/streams3 is a huge black box of confusion, but + somehow overriding the sync state seems to fix things again (and still + seems to work for previous node versions). + */ + part._readableState.sync = false + + part.on('data', onData) + part.on('end', onEnd) + }).on('error', function (err) { + if (curFile) { curFile.emit('error', err) } + }) + }).on('error', function (err) { + boy.emit('error', err) + }).on('finish', function () { + finished = true + checkFinished() + }) +} + +Multipart.prototype.write = function (chunk, cb) { + const r = this.parser.write(chunk) + if (r && !this._pause) { + cb() + } else { + this._needDrain = !r + this._cb = cb + } +} + +Multipart.prototype.end = function () { + const self = this + + if (self.parser.writable) { + self.parser.end() + } else if (!self._boy._done) { + process.nextTick(function () { + self._boy._done = true + self._boy.emit('finish') + }) + } +} + +function skipPart (part) { + part.resume() +} + +function FileStream (opts) { + Readable.call(this, opts) + + this.bytesRead = 0 + + this.truncated = false +} + +inherits(FileStream, Readable) + +FileStream.prototype._read = function (n) {} + +module.exports = Multipart + + +/***/ }), + +/***/ 6780: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const Decoder = __nccwpck_require__(9730) +const decodeText = __nccwpck_require__(9136) +const getLimit = __nccwpck_require__(9692) + +const RE_CHARSET = /^charset$/i + +UrlEncoded.detect = /^application\/x-www-form-urlencoded/i +function UrlEncoded (boy, cfg) { + const limits = cfg.limits + const parsedConType = cfg.parsedConType + this.boy = boy + + this.fieldSizeLimit = getLimit(limits, 'fieldSize', 1 * 1024 * 1024) + this.fieldNameSizeLimit = getLimit(limits, 'fieldNameSize', 100) + this.fieldsLimit = getLimit(limits, 'fields', Infinity) + + let charset + for (var i = 0, len = parsedConType.length; i < len; ++i) { // eslint-disable-line no-var + if (Array.isArray(parsedConType[i]) && + RE_CHARSET.test(parsedConType[i][0])) { + charset = parsedConType[i][1].toLowerCase() + break + } + } + + if (charset === undefined) { charset = cfg.defCharset || 'utf8' } + + this.decoder = new Decoder() + this.charset = charset + this._fields = 0 + this._state = 'key' + this._checkingBytes = true + this._bytesKey = 0 + this._bytesVal = 0 + this._key = '' + this._val = '' + this._keyTrunc = false + this._valTrunc = false + this._hitLimit = false +} + +UrlEncoded.prototype.write = function (data, cb) { + if (this._fields === this.fieldsLimit) { + if (!this.boy.hitFieldsLimit) { + this.boy.hitFieldsLimit = true + this.boy.emit('fieldsLimit') + } + return cb() + } + + let idxeq; let idxamp; let i; let p = 0; const len = data.length + + while (p < len) { + if (this._state === 'key') { + idxeq = idxamp = undefined + for (i = p; i < len; ++i) { + if (!this._checkingBytes) { ++p } + if (data[i] === 0x3D/* = */) { + idxeq = i + break + } else if (data[i] === 0x26/* & */) { + idxamp = i + break + } + if (this._checkingBytes && this._bytesKey === this.fieldNameSizeLimit) { + this._hitLimit = true + break + } else if (this._checkingBytes) { ++this._bytesKey } + } + + if (idxeq !== undefined) { + // key with assignment + if (idxeq > p) { this._key += this.decoder.write(data.toString('binary', p, idxeq)) } + this._state = 'val' + + this._hitLimit = false + this._checkingBytes = true + this._val = '' + this._bytesVal = 0 + this._valTrunc = false + this.decoder.reset() + + p = idxeq + 1 + } else if (idxamp !== undefined) { + // key with no assignment + ++this._fields + let key; const keyTrunc = this._keyTrunc + if (idxamp > p) { key = (this._key += this.decoder.write(data.toString('binary', p, idxamp))) } else { key = this._key } + + this._hitLimit = false + this._checkingBytes = true + this._key = '' + this._bytesKey = 0 + this._keyTrunc = false + this.decoder.reset() + + if (key.length) { + this.boy.emit('field', decodeText(key, 'binary', this.charset), + '', + keyTrunc, + false) + } + + p = idxamp + 1 + if (this._fields === this.fieldsLimit) { return cb() } + } else if (this._hitLimit) { + // we may not have hit the actual limit if there are encoded bytes... + if (i > p) { this._key += this.decoder.write(data.toString('binary', p, i)) } + p = i + if ((this._bytesKey = this._key.length) === this.fieldNameSizeLimit) { + // yep, we actually did hit the limit + this._checkingBytes = false + this._keyTrunc = true + } + } else { + if (p < len) { this._key += this.decoder.write(data.toString('binary', p)) } + p = len + } + } else { + idxamp = undefined + for (i = p; i < len; ++i) { + if (!this._checkingBytes) { ++p } + if (data[i] === 0x26/* & */) { + idxamp = i + break + } + if (this._checkingBytes && this._bytesVal === this.fieldSizeLimit) { + this._hitLimit = true + break + } else if (this._checkingBytes) { ++this._bytesVal } + } + + if (idxamp !== undefined) { + ++this._fields + if (idxamp > p) { this._val += this.decoder.write(data.toString('binary', p, idxamp)) } + this.boy.emit('field', decodeText(this._key, 'binary', this.charset), + decodeText(this._val, 'binary', this.charset), + this._keyTrunc, + this._valTrunc) + this._state = 'key' + + this._hitLimit = false + this._checkingBytes = true + this._key = '' + this._bytesKey = 0 + this._keyTrunc = false + this.decoder.reset() + + p = idxamp + 1 + if (this._fields === this.fieldsLimit) { return cb() } + } else if (this._hitLimit) { + // we may not have hit the actual limit if there are encoded bytes... + if (i > p) { this._val += this.decoder.write(data.toString('binary', p, i)) } + p = i + if ((this._val === '' && this.fieldSizeLimit === 0) || + (this._bytesVal = this._val.length) === this.fieldSizeLimit) { + // yep, we actually did hit the limit + this._checkingBytes = false + this._valTrunc = true + } + } else { + if (p < len) { this._val += this.decoder.write(data.toString('binary', p)) } + p = len + } + } + } + cb() +} + +UrlEncoded.prototype.end = function () { + if (this.boy._done) { return } + + if (this._state === 'key' && this._key.length > 0) { + this.boy.emit('field', decodeText(this._key, 'binary', this.charset), + '', + this._keyTrunc, + false) + } else if (this._state === 'val') { + this.boy.emit('field', decodeText(this._key, 'binary', this.charset), + decodeText(this._val, 'binary', this.charset), + this._keyTrunc, + this._valTrunc) + } + this.boy._done = true + this.boy.emit('finish') +} + +module.exports = UrlEncoded + + +/***/ }), + +/***/ 9730: +/***/ ((module) => { + +"use strict"; + + +const RE_PLUS = /\+/g + +const HEX = [ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +] + +function Decoder () { + this.buffer = undefined +} +Decoder.prototype.write = function (str) { + // Replace '+' with ' ' before decoding + str = str.replace(RE_PLUS, ' ') + let res = '' + let i = 0; let p = 0; const len = str.length + for (; i < len; ++i) { + if (this.buffer !== undefined) { + if (!HEX[str.charCodeAt(i)]) { + res += '%' + this.buffer + this.buffer = undefined + --i // retry character + } else { + this.buffer += str[i] + ++p + if (this.buffer.length === 2) { + res += String.fromCharCode(parseInt(this.buffer, 16)) + this.buffer = undefined + } + } + } else if (str[i] === '%') { + if (i > p) { + res += str.substring(p, i) + p = i + } + this.buffer = '' + ++p + } + } + if (p < len && this.buffer === undefined) { res += str.substring(p) } + return res +} +Decoder.prototype.reset = function () { + this.buffer = undefined +} + +module.exports = Decoder + + +/***/ }), + +/***/ 496: +/***/ ((module) => { + +"use strict"; + + +module.exports = function basename (path) { + if (typeof path !== 'string') { return '' } + for (var i = path.length - 1; i >= 0; --i) { // eslint-disable-line no-var + switch (path.charCodeAt(i)) { + case 0x2F: // '/' + case 0x5C: // '\' + path = path.slice(i + 1) + return (path === '..' || path === '.' ? '' : path) + } + } + return (path === '..' || path === '.' ? '' : path) +} + + +/***/ }), + +/***/ 9136: +/***/ ((module) => { + +"use strict"; + + +// Node has always utf-8 +const utf8Decoder = new TextDecoder('utf-8') +const textDecoders = new Map([ + ['utf-8', utf8Decoder], + ['utf8', utf8Decoder] +]) + +function decodeText (text, textEncoding, destEncoding) { + if (text) { + if (textDecoders.has(destEncoding)) { + try { + return textDecoders.get(destEncoding).decode(Buffer.from(text, textEncoding)) + } catch (e) { } + } else { + try { + textDecoders.set(destEncoding, new TextDecoder(destEncoding)) + return textDecoders.get(destEncoding).decode(Buffer.from(text, textEncoding)) + } catch (e) { } + } + } + return text +} + +module.exports = decodeText + + +/***/ }), + +/***/ 9692: +/***/ ((module) => { + +"use strict"; + + +module.exports = function getLimit (limits, name, defaultLimit) { + if ( + !limits || + limits[name] === undefined || + limits[name] === null + ) { return defaultLimit } + + if ( + typeof limits[name] !== 'number' || + isNaN(limits[name]) + ) { throw new TypeError('Limit ' + name + ' is not a valid number') } + + return limits[name] +} + + +/***/ }), + +/***/ 4426: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const decodeText = __nccwpck_require__(9136) + +const RE_ENCODED = /%([a-fA-F0-9]{2})/g + +function encodedReplacer (match, byte) { + return String.fromCharCode(parseInt(byte, 16)) +} + +function parseParams (str) { + const res = [] + let state = 'key' + let charset = '' + let inquote = false + let escaping = false + let p = 0 + let tmp = '' + + for (var i = 0, len = str.length; i < len; ++i) { // eslint-disable-line no-var + const char = str[i] + if (char === '\\' && inquote) { + if (escaping) { escaping = false } else { + escaping = true + continue + } + } else if (char === '"') { + if (!escaping) { + if (inquote) { + inquote = false + state = 'key' + } else { inquote = true } + continue + } else { escaping = false } + } else { + if (escaping && inquote) { tmp += '\\' } + escaping = false + if ((state === 'charset' || state === 'lang') && char === "'") { + if (state === 'charset') { + state = 'lang' + charset = tmp.substring(1) + } else { state = 'value' } + tmp = '' + continue + } else if (state === 'key' && + (char === '*' || char === '=') && + res.length) { + if (char === '*') { state = 'charset' } else { state = 'value' } + res[p] = [tmp, undefined] + tmp = '' + continue + } else if (!inquote && char === ';') { + state = 'key' + if (charset) { + if (tmp.length) { + tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer), + 'binary', + charset) + } + charset = '' + } else if (tmp.length) { + tmp = decodeText(tmp, 'binary', 'utf8') + } + if (res[p] === undefined) { res[p] = tmp } else { res[p][1] = tmp } + tmp = '' + ++p + continue + } else if (!inquote && (char === ' ' || char === '\t')) { continue } + } + tmp += char + } + if (charset && tmp.length) { + tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer), + 'binary', + charset) + } else if (tmp) { + tmp = decodeText(tmp, 'binary', 'utf8') + } + + if (res[p] === undefined) { + if (tmp) { res[p] = tmp } + } else { res[p][1] = tmp } + + return res +} + +module.exports = parseParams + + +/***/ }), + +/***/ 2318: +/***/ ((module) => { + +function calc(m) { + return function(n) { return Math.round(n * m); }; +}; +module.exports = { + seconds: calc(1e3), + minutes: calc(6e4), + hours: calc(36e5), + days: calc(864e5), + weeks: calc(6048e5), + months: calc(26298e5), + years: calc(315576e5) +}; + + +/***/ }), + +/***/ 4294: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +module.exports = __nccwpck_require__(4219); + + +/***/ }), + +/***/ 4219: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +var net = __nccwpck_require__(1808); +var tls = __nccwpck_require__(4404); +var http = __nccwpck_require__(3685); +var https = __nccwpck_require__(5687); +var events = __nccwpck_require__(2361); +var assert = __nccwpck_require__(9491); +var util = __nccwpck_require__(3837); + + +exports.httpOverHttp = httpOverHttp; +exports.httpsOverHttp = httpsOverHttp; +exports.httpOverHttps = httpOverHttps; +exports.httpsOverHttps = httpsOverHttps; + + +function httpOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + return agent; +} + +function httpsOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} + +function httpOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + return agent; +} + +function httpsOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} + + +function TunnelingAgent(options) { + var self = this; + self.options = options || {}; + self.proxyOptions = self.options.proxy || {}; + self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; + self.requests = []; + self.sockets = []; + + self.on('free', function onFree(socket, host, port, localAddress) { + var options = toOptions(host, port, localAddress); + for (var i = 0, len = self.requests.length; i < len; ++i) { + var pending = self.requests[i]; + if (pending.host === options.host && pending.port === options.port) { + // Detect the request to connect same origin server, + // reuse the connection. + self.requests.splice(i, 1); + pending.request.onSocket(socket); + return; + } + } + socket.destroy(); + self.removeSocket(socket); + }); +} +util.inherits(TunnelingAgent, events.EventEmitter); + +TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) { + var self = this; + var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress)); + + if (self.sockets.length >= this.maxSockets) { + // We are over limit so we'll add it to the queue. + self.requests.push(options); + return; + } + + // If we are under maxSockets create a new one. + self.createSocket(options, function(socket) { + socket.on('free', onFree); + socket.on('close', onCloseOrRemove); + socket.on('agentRemove', onCloseOrRemove); + req.onSocket(socket); + + function onFree() { + self.emit('free', socket, options); + } + + function onCloseOrRemove(err) { + self.removeSocket(socket); + socket.removeListener('free', onFree); + socket.removeListener('close', onCloseOrRemove); + socket.removeListener('agentRemove', onCloseOrRemove); + } + }); +}; + +TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { + var self = this; + var placeholder = {}; + self.sockets.push(placeholder); + + var connectOptions = mergeOptions({}, self.proxyOptions, { + method: 'CONNECT', + path: options.host + ':' + options.port, + agent: false, + headers: { + host: options.host + ':' + options.port + } + }); + if (options.localAddress) { + connectOptions.localAddress = options.localAddress; + } + if (connectOptions.proxyAuth) { + connectOptions.headers = connectOptions.headers || {}; + connectOptions.headers['Proxy-Authorization'] = 'Basic ' + + new Buffer(connectOptions.proxyAuth).toString('base64'); + } + + debug('making CONNECT request'); + var connectReq = self.request(connectOptions); + connectReq.useChunkedEncodingByDefault = false; // for v0.6 + connectReq.once('response', onResponse); // for v0.6 + connectReq.once('upgrade', onUpgrade); // for v0.6 + connectReq.once('connect', onConnect); // for v0.7 or later + connectReq.once('error', onError); + connectReq.end(); + + function onResponse(res) { + // Very hacky. This is necessary to avoid http-parser leaks. + res.upgrade = true; + } + + function onUpgrade(res, socket, head) { + // Hacky. + process.nextTick(function() { + onConnect(res, socket, head); + }); + } + + function onConnect(res, socket, head) { + connectReq.removeAllListeners(); + socket.removeAllListeners(); + + if (res.statusCode !== 200) { + debug('tunneling socket could not be established, statusCode=%d', + res.statusCode); + socket.destroy(); + var error = new Error('tunneling socket could not be established, ' + + 'statusCode=' + res.statusCode); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + return; + } + if (head.length > 0) { + debug('got illegal response body from proxy'); + socket.destroy(); + var error = new Error('got illegal response body from proxy'); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + return; + } + debug('tunneling connection has established'); + self.sockets[self.sockets.indexOf(placeholder)] = socket; + return cb(socket); + } + + function onError(cause) { + connectReq.removeAllListeners(); + + debug('tunneling socket could not be established, cause=%s\n', + cause.message, cause.stack); + var error = new Error('tunneling socket could not be established, ' + + 'cause=' + cause.message); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + } +}; + +TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { + var pos = this.sockets.indexOf(socket) + if (pos === -1) { + return; + } + this.sockets.splice(pos, 1); + + var pending = this.requests.shift(); + if (pending) { + // If we have pending requests and a socket gets closed a new one + // needs to be created to take over in the pool for the one that closed. + this.createSocket(pending, function(socket) { + pending.request.onSocket(socket); + }); + } +}; + +function createSecureSocket(options, cb) { + var self = this; + TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { + var hostHeader = options.request.getHeader('host'); + var tlsOptions = mergeOptions({}, self.options, { + socket: socket, + servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host + }); + + // 0 is dummy port for v0.6 + var secureSocket = tls.connect(0, tlsOptions); + self.sockets[self.sockets.indexOf(socket)] = secureSocket; + cb(secureSocket); + }); +} + + +function toOptions(host, port, localAddress) { + if (typeof host === 'string') { // since v0.10 + return { + host: host, + port: port, + localAddress: localAddress + }; + } + return host; // for v0.11 or later +} + +function mergeOptions(target) { + for (var i = 1, len = arguments.length; i < len; ++i) { + var overrides = arguments[i]; + if (typeof overrides === 'object') { + var keys = Object.keys(overrides); + for (var j = 0, keyLen = keys.length; j < keyLen; ++j) { + var k = keys[j]; + if (overrides[k] !== undefined) { + target[k] = overrides[k]; + } + } + } + } + return target; +} + + +var debug; +if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { + debug = function() { + var args = Array.prototype.slice.call(arguments); + if (typeof args[0] === 'string') { + args[0] = 'TUNNEL: ' + args[0]; + } else { + args.unshift('TUNNEL:'); + } + console.error.apply(console, args); + } +} else { + debug = function() {}; +} +exports.debug = debug; // for test + + +/***/ }), + +/***/ 1773: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const Client = __nccwpck_require__(3598) +const Dispatcher = __nccwpck_require__(412) +const errors = __nccwpck_require__(8045) +const Pool = __nccwpck_require__(4634) +const BalancedPool = __nccwpck_require__(7931) +const Agent = __nccwpck_require__(7890) +const util = __nccwpck_require__(3983) +const { InvalidArgumentError } = errors +const api = __nccwpck_require__(4059) +const buildConnector = __nccwpck_require__(2067) +const MockClient = __nccwpck_require__(8687) +const MockAgent = __nccwpck_require__(6771) +const MockPool = __nccwpck_require__(6193) +const mockErrors = __nccwpck_require__(888) +const ProxyAgent = __nccwpck_require__(7858) +const { getGlobalDispatcher, setGlobalDispatcher } = __nccwpck_require__(1892) +const DecoratorHandler = __nccwpck_require__(6930) +const RedirectHandler = __nccwpck_require__(2860) +const createRedirectInterceptor = __nccwpck_require__(8861) + +let hasCrypto +try { + __nccwpck_require__(6113) + hasCrypto = true +} catch { + hasCrypto = false +} + +Object.assign(Dispatcher.prototype, api) + +module.exports.Dispatcher = Dispatcher +module.exports.Client = Client +module.exports.Pool = Pool +module.exports.BalancedPool = BalancedPool +module.exports.Agent = Agent +module.exports.ProxyAgent = ProxyAgent + +module.exports.DecoratorHandler = DecoratorHandler +module.exports.RedirectHandler = RedirectHandler +module.exports.createRedirectInterceptor = createRedirectInterceptor + +module.exports.buildConnector = buildConnector +module.exports.errors = errors + +function makeDispatcher (fn) { + return (url, opts, handler) => { + if (typeof opts === 'function') { + handler = opts + opts = null + } + + if (!url || (typeof url !== 'string' && typeof url !== 'object' && !(url instanceof URL))) { + throw new InvalidArgumentError('invalid url') + } + + if (opts != null && typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } + + if (opts && opts.path != null) { + if (typeof opts.path !== 'string') { + throw new InvalidArgumentError('invalid opts.path') + } + + let path = opts.path + if (!opts.path.startsWith('/')) { + path = `/${path}` + } + + url = new URL(util.parseOrigin(url).origin + path) + } else { + if (!opts) { + opts = typeof url === 'object' ? url : {} + } + + url = util.parseURL(url) + } + + const { agent, dispatcher = getGlobalDispatcher() } = opts + + if (agent) { + throw new InvalidArgumentError('unsupported opts.agent. Did you mean opts.client?') + } + + return fn.call(dispatcher, { + ...opts, + origin: url.origin, + path: url.search ? `${url.pathname}${url.search}` : url.pathname, + method: opts.method || (opts.body ? 'PUT' : 'GET') + }, handler) + } +} + +module.exports.setGlobalDispatcher = setGlobalDispatcher +module.exports.getGlobalDispatcher = getGlobalDispatcher + +if (util.nodeMajor > 16 || (util.nodeMajor === 16 && util.nodeMinor >= 8)) { + let fetchImpl = null + module.exports.fetch = async function fetch (resource) { + if (!fetchImpl) { + fetchImpl = (__nccwpck_require__(4881).fetch) + } + + try { + return await fetchImpl(...arguments) + } catch (err) { + if (typeof err === 'object') { + Error.captureStackTrace(err, this) + } + + throw err + } + } + module.exports.Headers = __nccwpck_require__(554).Headers + module.exports.Response = __nccwpck_require__(7823).Response + module.exports.Request = __nccwpck_require__(8359).Request + module.exports.FormData = __nccwpck_require__(2015).FormData + module.exports.File = __nccwpck_require__(8511).File + module.exports.FileReader = __nccwpck_require__(1446).FileReader + + const { setGlobalOrigin, getGlobalOrigin } = __nccwpck_require__(1246) + + module.exports.setGlobalOrigin = setGlobalOrigin + module.exports.getGlobalOrigin = getGlobalOrigin + + const { CacheStorage } = __nccwpck_require__(7907) + const { kConstruct } = __nccwpck_require__(9174) + + // Cache & CacheStorage are tightly coupled with fetch. Even if it may run + // in an older version of Node, it doesn't have any use without fetch. + module.exports.caches = new CacheStorage(kConstruct) +} + +if (util.nodeMajor >= 16) { + const { deleteCookie, getCookies, getSetCookies, setCookie } = __nccwpck_require__(1724) + + module.exports.deleteCookie = deleteCookie + module.exports.getCookies = getCookies + module.exports.getSetCookies = getSetCookies + module.exports.setCookie = setCookie + + const { parseMIMEType, serializeAMimeType } = __nccwpck_require__(685) + + module.exports.parseMIMEType = parseMIMEType + module.exports.serializeAMimeType = serializeAMimeType +} + +if (util.nodeMajor >= 18 && hasCrypto) { + const { WebSocket } = __nccwpck_require__(4284) + + module.exports.WebSocket = WebSocket +} + +module.exports.request = makeDispatcher(api.request) +module.exports.stream = makeDispatcher(api.stream) +module.exports.pipeline = makeDispatcher(api.pipeline) +module.exports.connect = makeDispatcher(api.connect) +module.exports.upgrade = makeDispatcher(api.upgrade) + +module.exports.MockClient = MockClient +module.exports.MockPool = MockPool +module.exports.MockAgent = MockAgent +module.exports.mockErrors = mockErrors + + +/***/ }), + +/***/ 7890: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { InvalidArgumentError } = __nccwpck_require__(8045) +const { kClients, kRunning, kClose, kDestroy, kDispatch, kInterceptors } = __nccwpck_require__(2785) +const DispatcherBase = __nccwpck_require__(4839) +const Pool = __nccwpck_require__(4634) +const Client = __nccwpck_require__(3598) +const util = __nccwpck_require__(3983) +const createRedirectInterceptor = __nccwpck_require__(8861) +const { WeakRef, FinalizationRegistry } = __nccwpck_require__(6436)() + +const kOnConnect = Symbol('onConnect') +const kOnDisconnect = Symbol('onDisconnect') +const kOnConnectionError = Symbol('onConnectionError') +const kMaxRedirections = Symbol('maxRedirections') +const kOnDrain = Symbol('onDrain') +const kFactory = Symbol('factory') +const kFinalizer = Symbol('finalizer') +const kOptions = Symbol('options') + +function defaultFactory (origin, opts) { + return opts && opts.connections === 1 + ? new Client(origin, opts) + : new Pool(origin, opts) +} + +class Agent extends DispatcherBase { + constructor ({ factory = defaultFactory, maxRedirections = 0, connect, ...options } = {}) { + super() + + if (typeof factory !== 'function') { + throw new InvalidArgumentError('factory must be a function.') + } + + if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') { + throw new InvalidArgumentError('connect must be a function or an object') + } + + if (!Number.isInteger(maxRedirections) || maxRedirections < 0) { + throw new InvalidArgumentError('maxRedirections must be a positive number') + } + + if (connect && typeof connect !== 'function') { + connect = { ...connect } + } + + this[kInterceptors] = options.interceptors && options.interceptors.Agent && Array.isArray(options.interceptors.Agent) + ? options.interceptors.Agent + : [createRedirectInterceptor({ maxRedirections })] + + this[kOptions] = { ...util.deepClone(options), connect } + this[kOptions].interceptors = options.interceptors + ? { ...options.interceptors } + : undefined + this[kMaxRedirections] = maxRedirections + this[kFactory] = factory + this[kClients] = new Map() + this[kFinalizer] = new FinalizationRegistry(/* istanbul ignore next: gc is undeterministic */ key => { + const ref = this[kClients].get(key) + if (ref !== undefined && ref.deref() === undefined) { + this[kClients].delete(key) + } + }) + + const agent = this + + this[kOnDrain] = (origin, targets) => { + agent.emit('drain', origin, [agent, ...targets]) + } + + this[kOnConnect] = (origin, targets) => { + agent.emit('connect', origin, [agent, ...targets]) + } + + this[kOnDisconnect] = (origin, targets, err) => { + agent.emit('disconnect', origin, [agent, ...targets], err) + } + + this[kOnConnectionError] = (origin, targets, err) => { + agent.emit('connectionError', origin, [agent, ...targets], err) + } + } + + get [kRunning] () { + let ret = 0 + for (const ref of this[kClients].values()) { + const client = ref.deref() + /* istanbul ignore next: gc is undeterministic */ + if (client) { + ret += client[kRunning] + } + } + return ret + } + + [kDispatch] (opts, handler) { + let key + if (opts.origin && (typeof opts.origin === 'string' || opts.origin instanceof URL)) { + key = String(opts.origin) + } else { + throw new InvalidArgumentError('opts.origin must be a non-empty string or URL.') + } + + const ref = this[kClients].get(key) + + let dispatcher = ref ? ref.deref() : null + if (!dispatcher) { + dispatcher = this[kFactory](opts.origin, this[kOptions]) + .on('drain', this[kOnDrain]) + .on('connect', this[kOnConnect]) + .on('disconnect', this[kOnDisconnect]) + .on('connectionError', this[kOnConnectionError]) + + this[kClients].set(key, new WeakRef(dispatcher)) + this[kFinalizer].register(dispatcher, key) + } + + return dispatcher.dispatch(opts, handler) + } + + async [kClose] () { + const closePromises = [] + for (const ref of this[kClients].values()) { + const client = ref.deref() + /* istanbul ignore else: gc is undeterministic */ + if (client) { + closePromises.push(client.close()) + } + } + + await Promise.all(closePromises) + } + + async [kDestroy] (err) { + const destroyPromises = [] + for (const ref of this[kClients].values()) { + const client = ref.deref() + /* istanbul ignore else: gc is undeterministic */ + if (client) { + destroyPromises.push(client.destroy(err)) + } + } + + await Promise.all(destroyPromises) + } +} + +module.exports = Agent + + +/***/ }), + +/***/ 7032: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +const { addAbortListener } = __nccwpck_require__(3983) +const { RequestAbortedError } = __nccwpck_require__(8045) + +const kListener = Symbol('kListener') +const kSignal = Symbol('kSignal') + +function abort (self) { + if (self.abort) { + self.abort() + } else { + self.onError(new RequestAbortedError()) + } +} + +function addSignal (self, signal) { + self[kSignal] = null + self[kListener] = null + + if (!signal) { + return + } + + if (signal.aborted) { + abort(self) + return + } + + self[kSignal] = signal + self[kListener] = () => { + abort(self) + } + + addAbortListener(self[kSignal], self[kListener]) +} + +function removeSignal (self) { + if (!self[kSignal]) { + return + } + + if ('removeEventListener' in self[kSignal]) { + self[kSignal].removeEventListener('abort', self[kListener]) + } else { + self[kSignal].removeListener('abort', self[kListener]) + } + + self[kSignal] = null + self[kListener] = null +} + +module.exports = { + addSignal, + removeSignal +} + + +/***/ }), + +/***/ 9744: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { AsyncResource } = __nccwpck_require__(852) +const { InvalidArgumentError, RequestAbortedError, SocketError } = __nccwpck_require__(8045) +const util = __nccwpck_require__(3983) +const { addSignal, removeSignal } = __nccwpck_require__(7032) + +class ConnectHandler extends AsyncResource { + constructor (opts, callback) { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } + + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } + + const { signal, opaque, responseHeaders } = opts + + if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { + throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') + } + + super('UNDICI_CONNECT') + + this.opaque = opaque || null + this.responseHeaders = responseHeaders || null + this.callback = callback + this.abort = null + + addSignal(this, signal) + } + + onConnect (abort, context) { + if (!this.callback) { + throw new RequestAbortedError() + } + + this.abort = abort + this.context = context + } + + onHeaders () { + throw new SocketError('bad connect', null) + } + + onUpgrade (statusCode, rawHeaders, socket) { + const { callback, opaque, context } = this + + removeSignal(this) + + this.callback = null + + let headers = rawHeaders + // Indicates is an HTTP2Session + if (headers != null) { + headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) + } + + this.runInAsyncScope(callback, null, null, { + statusCode, + headers, + socket, + opaque, + context + }) + } + + onError (err) { + const { callback, opaque } = this + + removeSignal(this) + + if (callback) { + this.callback = null + queueMicrotask(() => { + this.runInAsyncScope(callback, null, err, { opaque }) + }) + } + } +} + +function connect (opts, callback) { + if (callback === undefined) { + return new Promise((resolve, reject) => { + connect.call(this, opts, (err, data) => { + return err ? reject(err) : resolve(data) + }) + }) + } + + try { + const connectHandler = new ConnectHandler(opts, callback) + this.dispatch({ ...opts, method: 'CONNECT' }, connectHandler) + } catch (err) { + if (typeof callback !== 'function') { + throw err + } + const opaque = opts && opts.opaque + queueMicrotask(() => callback(err, { opaque })) + } +} + +module.exports = connect + + +/***/ }), + +/***/ 8752: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { + Readable, + Duplex, + PassThrough +} = __nccwpck_require__(2781) +const { + InvalidArgumentError, + InvalidReturnValueError, + RequestAbortedError +} = __nccwpck_require__(8045) +const util = __nccwpck_require__(3983) +const { AsyncResource } = __nccwpck_require__(852) +const { addSignal, removeSignal } = __nccwpck_require__(7032) +const assert = __nccwpck_require__(9491) + +const kResume = Symbol('resume') + +class PipelineRequest extends Readable { + constructor () { + super({ autoDestroy: true }) + + this[kResume] = null + } + + _read () { + const { [kResume]: resume } = this + + if (resume) { + this[kResume] = null + resume() + } + } + + _destroy (err, callback) { + this._read() + + callback(err) + } +} + +class PipelineResponse extends Readable { + constructor (resume) { + super({ autoDestroy: true }) + this[kResume] = resume + } + + _read () { + this[kResume]() + } + + _destroy (err, callback) { + if (!err && !this._readableState.endEmitted) { + err = new RequestAbortedError() + } + + callback(err) + } +} + +class PipelineHandler extends AsyncResource { + constructor (opts, handler) { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } + + if (typeof handler !== 'function') { + throw new InvalidArgumentError('invalid handler') + } + + const { signal, method, opaque, onInfo, responseHeaders } = opts + + if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { + throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') + } + + if (method === 'CONNECT') { + throw new InvalidArgumentError('invalid method') + } + + if (onInfo && typeof onInfo !== 'function') { + throw new InvalidArgumentError('invalid onInfo callback') + } + + super('UNDICI_PIPELINE') + + this.opaque = opaque || null + this.responseHeaders = responseHeaders || null + this.handler = handler + this.abort = null + this.context = null + this.onInfo = onInfo || null + + this.req = new PipelineRequest().on('error', util.nop) + + this.ret = new Duplex({ + readableObjectMode: opts.objectMode, + autoDestroy: true, + read: () => { + const { body } = this + + if (body && body.resume) { + body.resume() + } + }, + write: (chunk, encoding, callback) => { + const { req } = this + + if (req.push(chunk, encoding) || req._readableState.destroyed) { + callback() + } else { + req[kResume] = callback + } + }, + destroy: (err, callback) => { + const { body, req, res, ret, abort } = this + + if (!err && !ret._readableState.endEmitted) { + err = new RequestAbortedError() + } + + if (abort && err) { + abort() + } + + util.destroy(body, err) + util.destroy(req, err) + util.destroy(res, err) + + removeSignal(this) + + callback(err) + } + }).on('prefinish', () => { + const { req } = this + + // Node < 15 does not call _final in same tick. + req.push(null) + }) + + this.res = null + + addSignal(this, signal) + } + + onConnect (abort, context) { + const { ret, res } = this + + assert(!res, 'pipeline cannot be retried') + + if (ret.destroyed) { + throw new RequestAbortedError() + } + + this.abort = abort + this.context = context + } + + onHeaders (statusCode, rawHeaders, resume) { + const { opaque, handler, context } = this + + if (statusCode < 200) { + if (this.onInfo) { + const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) + this.onInfo({ statusCode, headers }) + } + return + } + + this.res = new PipelineResponse(resume) + + let body + try { + this.handler = null + const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) + body = this.runInAsyncScope(handler, null, { + statusCode, + headers, + opaque, + body: this.res, + context + }) + } catch (err) { + this.res.on('error', util.nop) + throw err + } + + if (!body || typeof body.on !== 'function') { + throw new InvalidReturnValueError('expected Readable') + } + + body + .on('data', (chunk) => { + const { ret, body } = this + + if (!ret.push(chunk) && body.pause) { + body.pause() + } + }) + .on('error', (err) => { + const { ret } = this + + util.destroy(ret, err) + }) + .on('end', () => { + const { ret } = this + + ret.push(null) + }) + .on('close', () => { + const { ret } = this + + if (!ret._readableState.ended) { + util.destroy(ret, new RequestAbortedError()) + } + }) + + this.body = body + } + + onData (chunk) { + const { res } = this + return res.push(chunk) + } + + onComplete (trailers) { + const { res } = this + res.push(null) + } + + onError (err) { + const { ret } = this + this.handler = null + util.destroy(ret, err) + } +} + +function pipeline (opts, handler) { + try { + const pipelineHandler = new PipelineHandler(opts, handler) + this.dispatch({ ...opts, body: pipelineHandler.req }, pipelineHandler) + return pipelineHandler.ret + } catch (err) { + return new PassThrough().destroy(err) + } +} + +module.exports = pipeline + + +/***/ }), + +/***/ 5448: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const Readable = __nccwpck_require__(3858) +const { + InvalidArgumentError, + RequestAbortedError +} = __nccwpck_require__(8045) +const util = __nccwpck_require__(3983) +const { getResolveErrorBodyCallback } = __nccwpck_require__(7474) +const { AsyncResource } = __nccwpck_require__(852) +const { addSignal, removeSignal } = __nccwpck_require__(7032) + +class RequestHandler extends AsyncResource { + constructor (opts, callback) { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } + + const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError, highWaterMark } = opts + + try { + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } + + if (highWaterMark && (typeof highWaterMark !== 'number' || highWaterMark < 0)) { + throw new InvalidArgumentError('invalid highWaterMark') + } + + if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { + throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') + } + + if (method === 'CONNECT') { + throw new InvalidArgumentError('invalid method') + } + + if (onInfo && typeof onInfo !== 'function') { + throw new InvalidArgumentError('invalid onInfo callback') + } + + super('UNDICI_REQUEST') + } catch (err) { + if (util.isStream(body)) { + util.destroy(body.on('error', util.nop), err) + } + throw err + } + + this.responseHeaders = responseHeaders || null + this.opaque = opaque || null + this.callback = callback + this.res = null + this.abort = null + this.body = body + this.trailers = {} + this.context = null + this.onInfo = onInfo || null + this.throwOnError = throwOnError + this.highWaterMark = highWaterMark + + if (util.isStream(body)) { + body.on('error', (err) => { + this.onError(err) + }) + } + + addSignal(this, signal) + } + + onConnect (abort, context) { + if (!this.callback) { + throw new RequestAbortedError() + } + + this.abort = abort + this.context = context + } + + onHeaders (statusCode, rawHeaders, resume, statusMessage) { + const { callback, opaque, abort, context, responseHeaders, highWaterMark } = this + + const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) + + if (statusCode < 200) { + if (this.onInfo) { + this.onInfo({ statusCode, headers }) + } + return + } + + const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers + const contentType = parsedHeaders['content-type'] + const body = new Readable({ resume, abort, contentType, highWaterMark }) + + this.callback = null + this.res = body + if (callback !== null) { + if (this.throwOnError && statusCode >= 400) { + this.runInAsyncScope(getResolveErrorBodyCallback, null, + { callback, body, contentType, statusCode, statusMessage, headers } + ) + } else { + this.runInAsyncScope(callback, null, null, { + statusCode, + headers, + trailers: this.trailers, + opaque, + body, + context + }) + } + } + } + + onData (chunk) { + const { res } = this + return res.push(chunk) + } + + onComplete (trailers) { + const { res } = this + + removeSignal(this) + + util.parseHeaders(trailers, this.trailers) + + res.push(null) + } + + onError (err) { + const { res, callback, body, opaque } = this + + removeSignal(this) + + if (callback) { + // TODO: Does this need queueMicrotask? + this.callback = null + queueMicrotask(() => { + this.runInAsyncScope(callback, null, err, { opaque }) + }) + } + + if (res) { + this.res = null + // Ensure all queued handlers are invoked before destroying res. + queueMicrotask(() => { + util.destroy(res, err) + }) + } + + if (body) { + this.body = null + util.destroy(body, err) + } + } +} + +function request (opts, callback) { + if (callback === undefined) { + return new Promise((resolve, reject) => { + request.call(this, opts, (err, data) => { + return err ? reject(err) : resolve(data) + }) + }) + } + + try { + this.dispatch(opts, new RequestHandler(opts, callback)) + } catch (err) { + if (typeof callback !== 'function') { + throw err + } + const opaque = opts && opts.opaque + queueMicrotask(() => callback(err, { opaque })) + } +} + +module.exports = request + + +/***/ }), + +/***/ 5395: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { finished, PassThrough } = __nccwpck_require__(2781) +const { + InvalidArgumentError, + InvalidReturnValueError, + RequestAbortedError +} = __nccwpck_require__(8045) +const util = __nccwpck_require__(3983) +const { getResolveErrorBodyCallback } = __nccwpck_require__(7474) +const { AsyncResource } = __nccwpck_require__(852) +const { addSignal, removeSignal } = __nccwpck_require__(7032) + +class StreamHandler extends AsyncResource { + constructor (opts, factory, callback) { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } + + const { signal, method, opaque, body, onInfo, responseHeaders, throwOnError } = opts + + try { + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } + + if (typeof factory !== 'function') { + throw new InvalidArgumentError('invalid factory') + } + + if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { + throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') + } + + if (method === 'CONNECT') { + throw new InvalidArgumentError('invalid method') + } + + if (onInfo && typeof onInfo !== 'function') { + throw new InvalidArgumentError('invalid onInfo callback') + } + + super('UNDICI_STREAM') + } catch (err) { + if (util.isStream(body)) { + util.destroy(body.on('error', util.nop), err) + } + throw err + } + + this.responseHeaders = responseHeaders || null + this.opaque = opaque || null + this.factory = factory + this.callback = callback + this.res = null + this.abort = null + this.context = null + this.trailers = null + this.body = body + this.onInfo = onInfo || null + this.throwOnError = throwOnError || false + + if (util.isStream(body)) { + body.on('error', (err) => { + this.onError(err) + }) + } + + addSignal(this, signal) + } + + onConnect (abort, context) { + if (!this.callback) { + throw new RequestAbortedError() + } + + this.abort = abort + this.context = context + } + + onHeaders (statusCode, rawHeaders, resume, statusMessage) { + const { factory, opaque, context, callback, responseHeaders } = this + + const headers = responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) + + if (statusCode < 200) { + if (this.onInfo) { + this.onInfo({ statusCode, headers }) + } + return + } + + this.factory = null + + let res + + if (this.throwOnError && statusCode >= 400) { + const parsedHeaders = responseHeaders === 'raw' ? util.parseHeaders(rawHeaders) : headers + const contentType = parsedHeaders['content-type'] + res = new PassThrough() + + this.callback = null + this.runInAsyncScope(getResolveErrorBodyCallback, null, + { callback, body: res, contentType, statusCode, statusMessage, headers } + ) + } else { + if (factory === null) { + return + } + + res = this.runInAsyncScope(factory, null, { + statusCode, + headers, + opaque, + context + }) + + if ( + !res || + typeof res.write !== 'function' || + typeof res.end !== 'function' || + typeof res.on !== 'function' + ) { + throw new InvalidReturnValueError('expected Writable') + } + + // TODO: Avoid finished. It registers an unnecessary amount of listeners. + finished(res, { readable: false }, (err) => { + const { callback, res, opaque, trailers, abort } = this + + this.res = null + if (err || !res.readable) { + util.destroy(res, err) + } + + this.callback = null + this.runInAsyncScope(callback, null, err || null, { opaque, trailers }) + + if (err) { + abort() + } + }) + } + + res.on('drain', resume) + + this.res = res + + const needDrain = res.writableNeedDrain !== undefined + ? res.writableNeedDrain + : res._writableState && res._writableState.needDrain + + return needDrain !== true + } + + onData (chunk) { + const { res } = this + + return res ? res.write(chunk) : true + } + + onComplete (trailers) { + const { res } = this + + removeSignal(this) + + if (!res) { + return + } + + this.trailers = util.parseHeaders(trailers) + + res.end() + } + + onError (err) { + const { res, callback, opaque, body } = this + + removeSignal(this) + + this.factory = null + + if (res) { + this.res = null + util.destroy(res, err) + } else if (callback) { + this.callback = null + queueMicrotask(() => { + this.runInAsyncScope(callback, null, err, { opaque }) + }) + } + + if (body) { + this.body = null + util.destroy(body, err) + } + } +} + +function stream (opts, factory, callback) { + if (callback === undefined) { + return new Promise((resolve, reject) => { + stream.call(this, opts, factory, (err, data) => { + return err ? reject(err) : resolve(data) + }) + }) + } + + try { + this.dispatch(opts, new StreamHandler(opts, factory, callback)) + } catch (err) { + if (typeof callback !== 'function') { + throw err + } + const opaque = opts && opts.opaque + queueMicrotask(() => callback(err, { opaque })) + } +} + +module.exports = stream + + +/***/ }), + +/***/ 6923: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { InvalidArgumentError, RequestAbortedError, SocketError } = __nccwpck_require__(8045) +const { AsyncResource } = __nccwpck_require__(852) +const util = __nccwpck_require__(3983) +const { addSignal, removeSignal } = __nccwpck_require__(7032) +const assert = __nccwpck_require__(9491) + +class UpgradeHandler extends AsyncResource { + constructor (opts, callback) { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('invalid opts') + } + + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } + + const { signal, opaque, responseHeaders } = opts + + if (signal && typeof signal.on !== 'function' && typeof signal.addEventListener !== 'function') { + throw new InvalidArgumentError('signal must be an EventEmitter or EventTarget') + } + + super('UNDICI_UPGRADE') + + this.responseHeaders = responseHeaders || null + this.opaque = opaque || null + this.callback = callback + this.abort = null + this.context = null + + addSignal(this, signal) + } + + onConnect (abort, context) { + if (!this.callback) { + throw new RequestAbortedError() + } + + this.abort = abort + this.context = null + } + + onHeaders () { + throw new SocketError('bad upgrade', null) + } + + onUpgrade (statusCode, rawHeaders, socket) { + const { callback, opaque, context } = this + + assert.strictEqual(statusCode, 101) + + removeSignal(this) + + this.callback = null + const headers = this.responseHeaders === 'raw' ? util.parseRawHeaders(rawHeaders) : util.parseHeaders(rawHeaders) + this.runInAsyncScope(callback, null, null, { + headers, + socket, + opaque, + context + }) + } + + onError (err) { + const { callback, opaque } = this + + removeSignal(this) + + if (callback) { + this.callback = null + queueMicrotask(() => { + this.runInAsyncScope(callback, null, err, { opaque }) + }) + } + } +} + +function upgrade (opts, callback) { + if (callback === undefined) { + return new Promise((resolve, reject) => { + upgrade.call(this, opts, (err, data) => { + return err ? reject(err) : resolve(data) + }) + }) + } + + try { + const upgradeHandler = new UpgradeHandler(opts, callback) + this.dispatch({ + ...opts, + method: opts.method || 'GET', + upgrade: opts.protocol || 'Websocket' + }, upgradeHandler) + } catch (err) { + if (typeof callback !== 'function') { + throw err + } + const opaque = opts && opts.opaque + queueMicrotask(() => callback(err, { opaque })) + } +} + +module.exports = upgrade + + +/***/ }), + +/***/ 4059: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +module.exports.request = __nccwpck_require__(5448) +module.exports.stream = __nccwpck_require__(5395) +module.exports.pipeline = __nccwpck_require__(8752) +module.exports.upgrade = __nccwpck_require__(6923) +module.exports.connect = __nccwpck_require__(9744) + + +/***/ }), + +/***/ 3858: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; +// Ported from https://github.com/nodejs/undici/pull/907 + + + +const assert = __nccwpck_require__(9491) +const { Readable } = __nccwpck_require__(2781) +const { RequestAbortedError, NotSupportedError, InvalidArgumentError } = __nccwpck_require__(8045) +const util = __nccwpck_require__(3983) +const { ReadableStreamFrom, toUSVString } = __nccwpck_require__(3983) + +let Blob + +const kConsume = Symbol('kConsume') +const kReading = Symbol('kReading') +const kBody = Symbol('kBody') +const kAbort = Symbol('abort') +const kContentType = Symbol('kContentType') + +module.exports = class BodyReadable extends Readable { + constructor ({ + resume, + abort, + contentType = '', + highWaterMark = 64 * 1024 // Same as nodejs fs streams. + }) { + super({ + autoDestroy: true, + read: resume, + highWaterMark + }) + + this._readableState.dataEmitted = false + + this[kAbort] = abort + this[kConsume] = null + this[kBody] = null + this[kContentType] = contentType + + // Is stream being consumed through Readable API? + // This is an optimization so that we avoid checking + // for 'data' and 'readable' listeners in the hot path + // inside push(). + this[kReading] = false + } + + destroy (err) { + if (this.destroyed) { + // Node < 16 + return this + } + + if (!err && !this._readableState.endEmitted) { + err = new RequestAbortedError() + } + + if (err) { + this[kAbort]() + } + + return super.destroy(err) + } + + emit (ev, ...args) { + if (ev === 'data') { + // Node < 16.7 + this._readableState.dataEmitted = true + } else if (ev === 'error') { + // Node < 16 + this._readableState.errorEmitted = true + } + return super.emit(ev, ...args) + } + + on (ev, ...args) { + if (ev === 'data' || ev === 'readable') { + this[kReading] = true + } + return super.on(ev, ...args) + } + + addListener (ev, ...args) { + return this.on(ev, ...args) + } + + off (ev, ...args) { + const ret = super.off(ev, ...args) + if (ev === 'data' || ev === 'readable') { + this[kReading] = ( + this.listenerCount('data') > 0 || + this.listenerCount('readable') > 0 + ) + } + return ret + } + + removeListener (ev, ...args) { + return this.off(ev, ...args) + } + + push (chunk) { + if (this[kConsume] && chunk !== null && this.readableLength === 0) { + consumePush(this[kConsume], chunk) + return this[kReading] ? super.push(chunk) : true + } + return super.push(chunk) + } + + // https://fetch.spec.whatwg.org/#dom-body-text + async text () { + return consume(this, 'text') + } + + // https://fetch.spec.whatwg.org/#dom-body-json + async json () { + return consume(this, 'json') + } + + // https://fetch.spec.whatwg.org/#dom-body-blob + async blob () { + return consume(this, 'blob') + } + + // https://fetch.spec.whatwg.org/#dom-body-arraybuffer + async arrayBuffer () { + return consume(this, 'arrayBuffer') + } + + // https://fetch.spec.whatwg.org/#dom-body-formdata + async formData () { + // TODO: Implement. + throw new NotSupportedError() + } + + // https://fetch.spec.whatwg.org/#dom-body-bodyused + get bodyUsed () { + return util.isDisturbed(this) + } + + // https://fetch.spec.whatwg.org/#dom-body-body + get body () { + if (!this[kBody]) { + this[kBody] = ReadableStreamFrom(this) + if (this[kConsume]) { + // TODO: Is this the best way to force a lock? + this[kBody].getReader() // Ensure stream is locked. + assert(this[kBody].locked) + } + } + return this[kBody] + } + + async dump (opts) { + let limit = opts && Number.isFinite(opts.limit) ? opts.limit : 262144 + const signal = opts && opts.signal + const abortFn = () => { + this.destroy() + } + let signalListenerCleanup + if (signal) { + if (typeof signal !== 'object' || !('aborted' in signal)) { + throw new InvalidArgumentError('signal must be an AbortSignal') + } + util.throwIfAborted(signal) + signalListenerCleanup = util.addAbortListener(signal, abortFn) + } + try { + for await (const chunk of this) { + util.throwIfAborted(signal) + limit -= Buffer.byteLength(chunk) + if (limit < 0) { + return + } + } + } catch { + util.throwIfAborted(signal) + } finally { + if (typeof signalListenerCleanup === 'function') { + signalListenerCleanup() + } else if (signalListenerCleanup) { + signalListenerCleanup[Symbol.dispose]() + } + } + } +} + +// https://streams.spec.whatwg.org/#readablestream-locked +function isLocked (self) { + // Consume is an implicit lock. + return (self[kBody] && self[kBody].locked === true) || self[kConsume] +} + +// https://fetch.spec.whatwg.org/#body-unusable +function isUnusable (self) { + return util.isDisturbed(self) || isLocked(self) +} + +async function consume (stream, type) { + if (isUnusable(stream)) { + throw new TypeError('unusable') + } + + assert(!stream[kConsume]) + + return new Promise((resolve, reject) => { + stream[kConsume] = { + type, + stream, + resolve, + reject, + length: 0, + body: [] + } + + stream + .on('error', function (err) { + consumeFinish(this[kConsume], err) + }) + .on('close', function () { + if (this[kConsume].body !== null) { + consumeFinish(this[kConsume], new RequestAbortedError()) + } + }) + + process.nextTick(consumeStart, stream[kConsume]) + }) +} + +function consumeStart (consume) { + if (consume.body === null) { + return + } + + const { _readableState: state } = consume.stream + + for (const chunk of state.buffer) { + consumePush(consume, chunk) + } + + if (state.endEmitted) { + consumeEnd(this[kConsume]) + } else { + consume.stream.on('end', function () { + consumeEnd(this[kConsume]) + }) + } + + consume.stream.resume() + + while (consume.stream.read() != null) { + // Loop + } +} + +function consumeEnd (consume) { + const { type, body, resolve, stream, length } = consume + + try { + if (type === 'text') { + resolve(toUSVString(Buffer.concat(body))) + } else if (type === 'json') { + resolve(JSON.parse(Buffer.concat(body))) + } else if (type === 'arrayBuffer') { + const dst = new Uint8Array(length) + + let pos = 0 + for (const buf of body) { + dst.set(buf, pos) + pos += buf.byteLength + } + + resolve(dst.buffer) + } else if (type === 'blob') { + if (!Blob) { + Blob = (__nccwpck_require__(4300).Blob) + } + resolve(new Blob(body, { type: stream[kContentType] })) + } + + consumeFinish(consume) + } catch (err) { + stream.destroy(err) + } +} + +function consumePush (consume, chunk) { + consume.length += chunk.length + consume.body.push(chunk) +} + +function consumeFinish (consume, err) { + if (consume.body === null) { + return + } + + if (err) { + consume.reject(err) + } else { + consume.resolve() + } + + consume.type = null + consume.stream = null + consume.resolve = null + consume.reject = null + consume.length = 0 + consume.body = null +} + + +/***/ }), + +/***/ 7474: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +const assert = __nccwpck_require__(9491) +const { + ResponseStatusCodeError +} = __nccwpck_require__(8045) +const { toUSVString } = __nccwpck_require__(3983) + +async function getResolveErrorBodyCallback ({ callback, body, contentType, statusCode, statusMessage, headers }) { + assert(body) + + let chunks = [] + let limit = 0 + + for await (const chunk of body) { + chunks.push(chunk) + limit += chunk.length + if (limit > 128 * 1024) { + chunks = null + break + } + } + + if (statusCode === 204 || !contentType || !chunks) { + process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers)) + return + } + + try { + if (contentType.startsWith('application/json')) { + const payload = JSON.parse(toUSVString(Buffer.concat(chunks))) + process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload)) + return + } + + if (contentType.startsWith('text/')) { + const payload = toUSVString(Buffer.concat(chunks)) + process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers, payload)) + return + } + } catch (err) { + // Process in a fallback if error + } + + process.nextTick(callback, new ResponseStatusCodeError(`Response status code ${statusCode}${statusMessage ? `: ${statusMessage}` : ''}`, statusCode, headers)) +} + +module.exports = { getResolveErrorBodyCallback } + + +/***/ }), + +/***/ 7931: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { + BalancedPoolMissingUpstreamError, + InvalidArgumentError +} = __nccwpck_require__(8045) +const { + PoolBase, + kClients, + kNeedDrain, + kAddClient, + kRemoveClient, + kGetDispatcher +} = __nccwpck_require__(3198) +const Pool = __nccwpck_require__(4634) +const { kUrl, kInterceptors } = __nccwpck_require__(2785) +const { parseOrigin } = __nccwpck_require__(3983) +const kFactory = Symbol('factory') + +const kOptions = Symbol('options') +const kGreatestCommonDivisor = Symbol('kGreatestCommonDivisor') +const kCurrentWeight = Symbol('kCurrentWeight') +const kIndex = Symbol('kIndex') +const kWeight = Symbol('kWeight') +const kMaxWeightPerServer = Symbol('kMaxWeightPerServer') +const kErrorPenalty = Symbol('kErrorPenalty') + +function getGreatestCommonDivisor (a, b) { + if (b === 0) return a + return getGreatestCommonDivisor(b, a % b) +} + +function defaultFactory (origin, opts) { + return new Pool(origin, opts) +} + +class BalancedPool extends PoolBase { + constructor (upstreams = [], { factory = defaultFactory, ...opts } = {}) { + super() + + this[kOptions] = opts + this[kIndex] = -1 + this[kCurrentWeight] = 0 + + this[kMaxWeightPerServer] = this[kOptions].maxWeightPerServer || 100 + this[kErrorPenalty] = this[kOptions].errorPenalty || 15 + + if (!Array.isArray(upstreams)) { + upstreams = [upstreams] + } + + if (typeof factory !== 'function') { + throw new InvalidArgumentError('factory must be a function.') + } + + this[kInterceptors] = opts.interceptors && opts.interceptors.BalancedPool && Array.isArray(opts.interceptors.BalancedPool) + ? opts.interceptors.BalancedPool + : [] + this[kFactory] = factory + + for (const upstream of upstreams) { + this.addUpstream(upstream) + } + this._updateBalancedPoolStats() + } + + addUpstream (upstream) { + const upstreamOrigin = parseOrigin(upstream).origin + + if (this[kClients].find((pool) => ( + pool[kUrl].origin === upstreamOrigin && + pool.closed !== true && + pool.destroyed !== true + ))) { + return this + } + const pool = this[kFactory](upstreamOrigin, Object.assign({}, this[kOptions])) + + this[kAddClient](pool) + pool.on('connect', () => { + pool[kWeight] = Math.min(this[kMaxWeightPerServer], pool[kWeight] + this[kErrorPenalty]) + }) + + pool.on('connectionError', () => { + pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]) + this._updateBalancedPoolStats() + }) + + pool.on('disconnect', (...args) => { + const err = args[2] + if (err && err.code === 'UND_ERR_SOCKET') { + // decrease the weight of the pool. + pool[kWeight] = Math.max(1, pool[kWeight] - this[kErrorPenalty]) + this._updateBalancedPoolStats() + } + }) + + for (const client of this[kClients]) { + client[kWeight] = this[kMaxWeightPerServer] + } + + this._updateBalancedPoolStats() + + return this + } + + _updateBalancedPoolStats () { + this[kGreatestCommonDivisor] = this[kClients].map(p => p[kWeight]).reduce(getGreatestCommonDivisor, 0) + } + + removeUpstream (upstream) { + const upstreamOrigin = parseOrigin(upstream).origin + + const pool = this[kClients].find((pool) => ( + pool[kUrl].origin === upstreamOrigin && + pool.closed !== true && + pool.destroyed !== true + )) + + if (pool) { + this[kRemoveClient](pool) + } + + return this + } + + get upstreams () { + return this[kClients] + .filter(dispatcher => dispatcher.closed !== true && dispatcher.destroyed !== true) + .map((p) => p[kUrl].origin) + } + + [kGetDispatcher] () { + // We validate that pools is greater than 0, + // otherwise we would have to wait until an upstream + // is added, which might never happen. + if (this[kClients].length === 0) { + throw new BalancedPoolMissingUpstreamError() + } + + const dispatcher = this[kClients].find(dispatcher => ( + !dispatcher[kNeedDrain] && + dispatcher.closed !== true && + dispatcher.destroyed !== true + )) + + if (!dispatcher) { + return + } + + const allClientsBusy = this[kClients].map(pool => pool[kNeedDrain]).reduce((a, b) => a && b, true) + + if (allClientsBusy) { + return + } + + let counter = 0 + + let maxWeightIndex = this[kClients].findIndex(pool => !pool[kNeedDrain]) + + while (counter++ < this[kClients].length) { + this[kIndex] = (this[kIndex] + 1) % this[kClients].length + const pool = this[kClients][this[kIndex]] + + // find pool index with the largest weight + if (pool[kWeight] > this[kClients][maxWeightIndex][kWeight] && !pool[kNeedDrain]) { + maxWeightIndex = this[kIndex] + } + + // decrease the current weight every `this[kClients].length`. + if (this[kIndex] === 0) { + // Set the current weight to the next lower weight. + this[kCurrentWeight] = this[kCurrentWeight] - this[kGreatestCommonDivisor] + + if (this[kCurrentWeight] <= 0) { + this[kCurrentWeight] = this[kMaxWeightPerServer] + } + } + if (pool[kWeight] >= this[kCurrentWeight] && (!pool[kNeedDrain])) { + return pool + } + } + + this[kCurrentWeight] = this[kClients][maxWeightIndex][kWeight] + this[kIndex] = maxWeightIndex + return this[kClients][maxWeightIndex] + } +} + +module.exports = BalancedPool + + +/***/ }), + +/***/ 6101: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { kConstruct } = __nccwpck_require__(9174) +const { urlEquals, fieldValues: getFieldValues } = __nccwpck_require__(2396) +const { kEnumerableProperty, isDisturbed } = __nccwpck_require__(3983) +const { kHeadersList } = __nccwpck_require__(2785) +const { webidl } = __nccwpck_require__(1744) +const { Response, cloneResponse } = __nccwpck_require__(7823) +const { Request } = __nccwpck_require__(8359) +const { kState, kHeaders, kGuard, kRealm } = __nccwpck_require__(5861) +const { fetching } = __nccwpck_require__(4881) +const { urlIsHttpHttpsScheme, createDeferredPromise, readAllBytes } = __nccwpck_require__(2538) +const assert = __nccwpck_require__(9491) +const { getGlobalDispatcher } = __nccwpck_require__(1892) + +/** + * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation + * @typedef {Object} CacheBatchOperation + * @property {'delete' | 'put'} type + * @property {any} request + * @property {any} response + * @property {import('../../types/cache').CacheQueryOptions} options + */ + +/** + * @see https://w3c.github.io/ServiceWorker/#dfn-request-response-list + * @typedef {[any, any][]} requestResponseList + */ + +class Cache { + /** + * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-request-response-list + * @type {requestResponseList} + */ + #relevantRequestResponseList + + constructor () { + if (arguments[0] !== kConstruct) { + webidl.illegalConstructor() + } + + this.#relevantRequestResponseList = arguments[1] + } + + async match (request, options = {}) { + webidl.brandCheck(this, Cache) + webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.match' }) + + request = webidl.converters.RequestInfo(request) + options = webidl.converters.CacheQueryOptions(options) + + const p = await this.matchAll(request, options) + + if (p.length === 0) { + return + } + + return p[0] + } + + async matchAll (request = undefined, options = {}) { + webidl.brandCheck(this, Cache) + + if (request !== undefined) request = webidl.converters.RequestInfo(request) + options = webidl.converters.CacheQueryOptions(options) + + // 1. + let r = null + + // 2. + if (request !== undefined) { + if (request instanceof Request) { + // 2.1.1 + r = request[kState] + + // 2.1.2 + if (r.method !== 'GET' && !options.ignoreMethod) { + return [] + } + } else if (typeof request === 'string') { + // 2.2.1 + r = new Request(request)[kState] + } + } + + // 5. + // 5.1 + const responses = [] + + // 5.2 + if (request === undefined) { + // 5.2.1 + for (const requestResponse of this.#relevantRequestResponseList) { + responses.push(requestResponse[1]) + } + } else { // 5.3 + // 5.3.1 + const requestResponses = this.#queryCache(r, options) + + // 5.3.2 + for (const requestResponse of requestResponses) { + responses.push(requestResponse[1]) + } + } + + // 5.4 + // We don't implement CORs so we don't need to loop over the responses, yay! + + // 5.5.1 + const responseList = [] + + // 5.5.2 + for (const response of responses) { + // 5.5.2.1 + const responseObject = new Response(response.body?.source ?? null) + const body = responseObject[kState].body + responseObject[kState] = response + responseObject[kState].body = body + responseObject[kHeaders][kHeadersList] = response.headersList + responseObject[kHeaders][kGuard] = 'immutable' + + responseList.push(responseObject) + } + + // 6. + return Object.freeze(responseList) + } + + async add (request) { + webidl.brandCheck(this, Cache) + webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.add' }) + + request = webidl.converters.RequestInfo(request) + + // 1. + const requests = [request] + + // 2. + const responseArrayPromise = this.addAll(requests) + + // 3. + return await responseArrayPromise + } + + async addAll (requests) { + webidl.brandCheck(this, Cache) + webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.addAll' }) + + requests = webidl.converters['sequence'](requests) + + // 1. + const responsePromises = [] + + // 2. + const requestList = [] + + // 3. + for (const request of requests) { + if (typeof request === 'string') { + continue + } + + // 3.1 + const r = request[kState] + + // 3.2 + if (!urlIsHttpHttpsScheme(r.url) || r.method !== 'GET') { + throw webidl.errors.exception({ + header: 'Cache.addAll', + message: 'Expected http/s scheme when method is not GET.' + }) + } + } + + // 4. + /** @type {ReturnType[]} */ + const fetchControllers = [] + + // 5. + for (const request of requests) { + // 5.1 + const r = new Request(request)[kState] + + // 5.2 + if (!urlIsHttpHttpsScheme(r.url)) { + throw webidl.errors.exception({ + header: 'Cache.addAll', + message: 'Expected http/s scheme.' + }) + } + + // 5.4 + r.initiator = 'fetch' + r.destination = 'subresource' + + // 5.5 + requestList.push(r) + + // 5.6 + const responsePromise = createDeferredPromise() + + // 5.7 + fetchControllers.push(fetching({ + request: r, + dispatcher: getGlobalDispatcher(), + processResponse (response) { + // 1. + if (response.type === 'error' || response.status === 206 || response.status < 200 || response.status > 299) { + responsePromise.reject(webidl.errors.exception({ + header: 'Cache.addAll', + message: 'Received an invalid status code or the request failed.' + })) + } else if (response.headersList.contains('vary')) { // 2. + // 2.1 + const fieldValues = getFieldValues(response.headersList.get('vary')) + + // 2.2 + for (const fieldValue of fieldValues) { + // 2.2.1 + if (fieldValue === '*') { + responsePromise.reject(webidl.errors.exception({ + header: 'Cache.addAll', + message: 'invalid vary field value' + })) + + for (const controller of fetchControllers) { + controller.abort() + } + + return + } + } + } + }, + processResponseEndOfBody (response) { + // 1. + if (response.aborted) { + responsePromise.reject(new DOMException('aborted', 'AbortError')) + return + } + + // 2. + responsePromise.resolve(response) + } + })) + + // 5.8 + responsePromises.push(responsePromise.promise) + } + + // 6. + const p = Promise.all(responsePromises) + + // 7. + const responses = await p + + // 7.1 + const operations = [] + + // 7.2 + let index = 0 + + // 7.3 + for (const response of responses) { + // 7.3.1 + /** @type {CacheBatchOperation} */ + const operation = { + type: 'put', // 7.3.2 + request: requestList[index], // 7.3.3 + response // 7.3.4 + } + + operations.push(operation) // 7.3.5 + + index++ // 7.3.6 + } + + // 7.5 + const cacheJobPromise = createDeferredPromise() + + // 7.6.1 + let errorData = null + + // 7.6.2 + try { + this.#batchCacheOperations(operations) + } catch (e) { + errorData = e + } + + // 7.6.3 + queueMicrotask(() => { + // 7.6.3.1 + if (errorData === null) { + cacheJobPromise.resolve(undefined) + } else { + // 7.6.3.2 + cacheJobPromise.reject(errorData) + } + }) + + // 7.7 + return cacheJobPromise.promise + } + + async put (request, response) { + webidl.brandCheck(this, Cache) + webidl.argumentLengthCheck(arguments, 2, { header: 'Cache.put' }) + + request = webidl.converters.RequestInfo(request) + response = webidl.converters.Response(response) + + // 1. + let innerRequest = null + + // 2. + if (request instanceof Request) { + innerRequest = request[kState] + } else { // 3. + innerRequest = new Request(request)[kState] + } + + // 4. + if (!urlIsHttpHttpsScheme(innerRequest.url) || innerRequest.method !== 'GET') { + throw webidl.errors.exception({ + header: 'Cache.put', + message: 'Expected an http/s scheme when method is not GET' + }) + } + + // 5. + const innerResponse = response[kState] + + // 6. + if (innerResponse.status === 206) { + throw webidl.errors.exception({ + header: 'Cache.put', + message: 'Got 206 status' + }) + } + + // 7. + if (innerResponse.headersList.contains('vary')) { + // 7.1. + const fieldValues = getFieldValues(innerResponse.headersList.get('vary')) + + // 7.2. + for (const fieldValue of fieldValues) { + // 7.2.1 + if (fieldValue === '*') { + throw webidl.errors.exception({ + header: 'Cache.put', + message: 'Got * vary field value' + }) + } + } + } + + // 8. + if (innerResponse.body && (isDisturbed(innerResponse.body.stream) || innerResponse.body.stream.locked)) { + throw webidl.errors.exception({ + header: 'Cache.put', + message: 'Response body is locked or disturbed' + }) + } + + // 9. + const clonedResponse = cloneResponse(innerResponse) + + // 10. + const bodyReadPromise = createDeferredPromise() + + // 11. + if (innerResponse.body != null) { + // 11.1 + const stream = innerResponse.body.stream + + // 11.2 + const reader = stream.getReader() + + // 11.3 + readAllBytes(reader).then(bodyReadPromise.resolve, bodyReadPromise.reject) + } else { + bodyReadPromise.resolve(undefined) + } + + // 12. + /** @type {CacheBatchOperation[]} */ + const operations = [] + + // 13. + /** @type {CacheBatchOperation} */ + const operation = { + type: 'put', // 14. + request: innerRequest, // 15. + response: clonedResponse // 16. + } + + // 17. + operations.push(operation) + + // 19. + const bytes = await bodyReadPromise.promise + + if (clonedResponse.body != null) { + clonedResponse.body.source = bytes + } + + // 19.1 + const cacheJobPromise = createDeferredPromise() + + // 19.2.1 + let errorData = null + + // 19.2.2 + try { + this.#batchCacheOperations(operations) + } catch (e) { + errorData = e + } + + // 19.2.3 + queueMicrotask(() => { + // 19.2.3.1 + if (errorData === null) { + cacheJobPromise.resolve() + } else { // 19.2.3.2 + cacheJobPromise.reject(errorData) + } + }) + + return cacheJobPromise.promise + } + + async delete (request, options = {}) { + webidl.brandCheck(this, Cache) + webidl.argumentLengthCheck(arguments, 1, { header: 'Cache.delete' }) + + request = webidl.converters.RequestInfo(request) + options = webidl.converters.CacheQueryOptions(options) + + /** + * @type {Request} + */ + let r = null + + if (request instanceof Request) { + r = request[kState] + + if (r.method !== 'GET' && !options.ignoreMethod) { + return false + } + } else { + assert(typeof request === 'string') + + r = new Request(request)[kState] + } + + /** @type {CacheBatchOperation[]} */ + const operations = [] + + /** @type {CacheBatchOperation} */ + const operation = { + type: 'delete', + request: r, + options + } + + operations.push(operation) + + const cacheJobPromise = createDeferredPromise() + + let errorData = null + let requestResponses + + try { + requestResponses = this.#batchCacheOperations(operations) + } catch (e) { + errorData = e + } + + queueMicrotask(() => { + if (errorData === null) { + cacheJobPromise.resolve(!!requestResponses?.length) + } else { + cacheJobPromise.reject(errorData) + } + }) + + return cacheJobPromise.promise + } + + /** + * @see https://w3c.github.io/ServiceWorker/#dom-cache-keys + * @param {any} request + * @param {import('../../types/cache').CacheQueryOptions} options + * @returns {readonly Request[]} + */ + async keys (request = undefined, options = {}) { + webidl.brandCheck(this, Cache) + + if (request !== undefined) request = webidl.converters.RequestInfo(request) + options = webidl.converters.CacheQueryOptions(options) + + // 1. + let r = null + + // 2. + if (request !== undefined) { + // 2.1 + if (request instanceof Request) { + // 2.1.1 + r = request[kState] + + // 2.1.2 + if (r.method !== 'GET' && !options.ignoreMethod) { + return [] + } + } else if (typeof request === 'string') { // 2.2 + r = new Request(request)[kState] + } + } + + // 4. + const promise = createDeferredPromise() + + // 5. + // 5.1 + const requests = [] + + // 5.2 + if (request === undefined) { + // 5.2.1 + for (const requestResponse of this.#relevantRequestResponseList) { + // 5.2.1.1 + requests.push(requestResponse[0]) + } + } else { // 5.3 + // 5.3.1 + const requestResponses = this.#queryCache(r, options) + + // 5.3.2 + for (const requestResponse of requestResponses) { + // 5.3.2.1 + requests.push(requestResponse[0]) + } + } + + // 5.4 + queueMicrotask(() => { + // 5.4.1 + const requestList = [] + + // 5.4.2 + for (const request of requests) { + const requestObject = new Request('https://a') + requestObject[kState] = request + requestObject[kHeaders][kHeadersList] = request.headersList + requestObject[kHeaders][kGuard] = 'immutable' + requestObject[kRealm] = request.client + + // 5.4.2.1 + requestList.push(requestObject) + } + + // 5.4.3 + promise.resolve(Object.freeze(requestList)) + }) + + return promise.promise + } + + /** + * @see https://w3c.github.io/ServiceWorker/#batch-cache-operations-algorithm + * @param {CacheBatchOperation[]} operations + * @returns {requestResponseList} + */ + #batchCacheOperations (operations) { + // 1. + const cache = this.#relevantRequestResponseList + + // 2. + const backupCache = [...cache] + + // 3. + const addedItems = [] + + // 4.1 + const resultList = [] + + try { + // 4.2 + for (const operation of operations) { + // 4.2.1 + if (operation.type !== 'delete' && operation.type !== 'put') { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'operation type does not match "delete" or "put"' + }) + } + + // 4.2.2 + if (operation.type === 'delete' && operation.response != null) { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'delete operation should not have an associated response' + }) + } + + // 4.2.3 + if (this.#queryCache(operation.request, operation.options, addedItems).length) { + throw new DOMException('???', 'InvalidStateError') + } + + // 4.2.4 + let requestResponses + + // 4.2.5 + if (operation.type === 'delete') { + // 4.2.5.1 + requestResponses = this.#queryCache(operation.request, operation.options) + + // TODO: the spec is wrong, this is needed to pass WPTs + if (requestResponses.length === 0) { + return [] + } + + // 4.2.5.2 + for (const requestResponse of requestResponses) { + const idx = cache.indexOf(requestResponse) + assert(idx !== -1) + + // 4.2.5.2.1 + cache.splice(idx, 1) + } + } else if (operation.type === 'put') { // 4.2.6 + // 4.2.6.1 + if (operation.response == null) { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'put operation should have an associated response' + }) + } + + // 4.2.6.2 + const r = operation.request + + // 4.2.6.3 + if (!urlIsHttpHttpsScheme(r.url)) { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'expected http or https scheme' + }) + } + + // 4.2.6.4 + if (r.method !== 'GET') { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'not get method' + }) + } + + // 4.2.6.5 + if (operation.options != null) { + throw webidl.errors.exception({ + header: 'Cache.#batchCacheOperations', + message: 'options must not be defined' + }) + } + + // 4.2.6.6 + requestResponses = this.#queryCache(operation.request) + + // 4.2.6.7 + for (const requestResponse of requestResponses) { + const idx = cache.indexOf(requestResponse) + assert(idx !== -1) + + // 4.2.6.7.1 + cache.splice(idx, 1) + } + + // 4.2.6.8 + cache.push([operation.request, operation.response]) + + // 4.2.6.10 + addedItems.push([operation.request, operation.response]) + } + + // 4.2.7 + resultList.push([operation.request, operation.response]) + } + + // 4.3 + return resultList + } catch (e) { // 5. + // 5.1 + this.#relevantRequestResponseList.length = 0 + + // 5.2 + this.#relevantRequestResponseList = backupCache + + // 5.3 + throw e + } + } + + /** + * @see https://w3c.github.io/ServiceWorker/#query-cache + * @param {any} requestQuery + * @param {import('../../types/cache').CacheQueryOptions} options + * @param {requestResponseList} targetStorage + * @returns {requestResponseList} + */ + #queryCache (requestQuery, options, targetStorage) { + /** @type {requestResponseList} */ + const resultList = [] + + const storage = targetStorage ?? this.#relevantRequestResponseList + + for (const requestResponse of storage) { + const [cachedRequest, cachedResponse] = requestResponse + if (this.#requestMatchesCachedItem(requestQuery, cachedRequest, cachedResponse, options)) { + resultList.push(requestResponse) + } + } + + return resultList + } + + /** + * @see https://w3c.github.io/ServiceWorker/#request-matches-cached-item-algorithm + * @param {any} requestQuery + * @param {any} request + * @param {any | null} response + * @param {import('../../types/cache').CacheQueryOptions | undefined} options + * @returns {boolean} + */ + #requestMatchesCachedItem (requestQuery, request, response = null, options) { + // if (options?.ignoreMethod === false && request.method === 'GET') { + // return false + // } + + const queryURL = new URL(requestQuery.url) + + const cachedURL = new URL(request.url) + + if (options?.ignoreSearch) { + cachedURL.search = '' + + queryURL.search = '' + } + + if (!urlEquals(queryURL, cachedURL, true)) { + return false + } + + if ( + response == null || + options?.ignoreVary || + !response.headersList.contains('vary') + ) { + return true + } + + const fieldValues = getFieldValues(response.headersList.get('vary')) + + for (const fieldValue of fieldValues) { + if (fieldValue === '*') { + return false + } + + const requestValue = request.headersList.get(fieldValue) + const queryValue = requestQuery.headersList.get(fieldValue) + + // If one has the header and the other doesn't, or one has + // a different value than the other, return false + if (requestValue !== queryValue) { + return false + } + } + + return true + } +} + +Object.defineProperties(Cache.prototype, { + [Symbol.toStringTag]: { + value: 'Cache', + configurable: true + }, + match: kEnumerableProperty, + matchAll: kEnumerableProperty, + add: kEnumerableProperty, + addAll: kEnumerableProperty, + put: kEnumerableProperty, + delete: kEnumerableProperty, + keys: kEnumerableProperty +}) + +const cacheQueryOptionConverters = [ + { + key: 'ignoreSearch', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'ignoreMethod', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'ignoreVary', + converter: webidl.converters.boolean, + defaultValue: false + } +] + +webidl.converters.CacheQueryOptions = webidl.dictionaryConverter(cacheQueryOptionConverters) + +webidl.converters.MultiCacheQueryOptions = webidl.dictionaryConverter([ + ...cacheQueryOptionConverters, + { + key: 'cacheName', + converter: webidl.converters.DOMString + } +]) + +webidl.converters.Response = webidl.interfaceConverter(Response) + +webidl.converters['sequence'] = webidl.sequenceConverter( + webidl.converters.RequestInfo +) + +module.exports = { + Cache +} + + +/***/ }), + +/***/ 7907: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { kConstruct } = __nccwpck_require__(9174) +const { Cache } = __nccwpck_require__(6101) +const { webidl } = __nccwpck_require__(1744) +const { kEnumerableProperty } = __nccwpck_require__(3983) + +class CacheStorage { + /** + * @see https://w3c.github.io/ServiceWorker/#dfn-relevant-name-to-cache-map + * @type {Map} + */ + async has (cacheName) { + webidl.brandCheck(this, CacheStorage) + webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.has' }) + + cacheName = webidl.converters.DOMString(cacheName) + + // 2.1.1 + // 2.2 + return this.#caches.has(cacheName) + } + + /** + * @see https://w3c.github.io/ServiceWorker/#dom-cachestorage-open + * @param {string} cacheName + * @returns {Promise} + */ + async open (cacheName) { + webidl.brandCheck(this, CacheStorage) + webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.open' }) + + cacheName = webidl.converters.DOMString(cacheName) + + // 2.1 + if (this.#caches.has(cacheName)) { + // await caches.open('v1') !== await caches.open('v1') + + // 2.1.1 + const cache = this.#caches.get(cacheName) + + // 2.1.1.1 + return new Cache(kConstruct, cache) + } + + // 2.2 + const cache = [] + + // 2.3 + this.#caches.set(cacheName, cache) + + // 2.4 + return new Cache(kConstruct, cache) + } + + /** + * @see https://w3c.github.io/ServiceWorker/#cache-storage-delete + * @param {string} cacheName + * @returns {Promise} + */ + async delete (cacheName) { + webidl.brandCheck(this, CacheStorage) + webidl.argumentLengthCheck(arguments, 1, { header: 'CacheStorage.delete' }) + + cacheName = webidl.converters.DOMString(cacheName) + + return this.#caches.delete(cacheName) + } + + /** + * @see https://w3c.github.io/ServiceWorker/#cache-storage-keys + * @returns {string[]} + */ + async keys () { + webidl.brandCheck(this, CacheStorage) + + // 2.1 + const keys = this.#caches.keys() + + // 2.2 + return [...keys] + } +} + +Object.defineProperties(CacheStorage.prototype, { + [Symbol.toStringTag]: { + value: 'CacheStorage', + configurable: true + }, + match: kEnumerableProperty, + has: kEnumerableProperty, + open: kEnumerableProperty, + delete: kEnumerableProperty, + keys: kEnumerableProperty +}) + +module.exports = { + CacheStorage +} + + +/***/ }), + +/***/ 9174: +/***/ ((module) => { + +"use strict"; + + +module.exports = { + kConstruct: Symbol('constructable') +} + + +/***/ }), + +/***/ 2396: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const assert = __nccwpck_require__(9491) +const { URLSerializer } = __nccwpck_require__(685) +const { isValidHeaderName } = __nccwpck_require__(2538) + +/** + * @see https://url.spec.whatwg.org/#concept-url-equals + * @param {URL} A + * @param {URL} B + * @param {boolean | undefined} excludeFragment + * @returns {boolean} + */ +function urlEquals (A, B, excludeFragment = false) { + const serializedA = URLSerializer(A, excludeFragment) + + const serializedB = URLSerializer(B, excludeFragment) + + return serializedA === serializedB +} + +/** + * @see https://github.com/chromium/chromium/blob/694d20d134cb553d8d89e5500b9148012b1ba299/content/browser/cache_storage/cache_storage_cache.cc#L260-L262 + * @param {string} header + */ +function fieldValues (header) { + assert(header !== null) + + const values = [] + + for (let value of header.split(',')) { + value = value.trim() + + if (!value.length) { + continue + } else if (!isValidHeaderName(value)) { + continue + } + + values.push(value) + } + + return values +} + +module.exports = { + urlEquals, + fieldValues +} + + +/***/ }), + +/***/ 3598: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; +// @ts-check + + + +/* global WebAssembly */ + +const assert = __nccwpck_require__(9491) +const net = __nccwpck_require__(1808) +const http = __nccwpck_require__(3685) +const { pipeline } = __nccwpck_require__(2781) +const util = __nccwpck_require__(3983) +const timers = __nccwpck_require__(9459) +const Request = __nccwpck_require__(2905) +const DispatcherBase = __nccwpck_require__(4839) +const { + RequestContentLengthMismatchError, + ResponseContentLengthMismatchError, + InvalidArgumentError, + RequestAbortedError, + HeadersTimeoutError, + HeadersOverflowError, + SocketError, + InformationalError, + BodyTimeoutError, + HTTPParserError, + ResponseExceededMaxSizeError, + ClientDestroyedError +} = __nccwpck_require__(8045) +const buildConnector = __nccwpck_require__(2067) +const { + kUrl, + kReset, + kServerName, + kClient, + kBusy, + kParser, + kConnect, + kBlocking, + kResuming, + kRunning, + kPending, + kSize, + kWriting, + kQueue, + kConnected, + kConnecting, + kNeedDrain, + kNoRef, + kKeepAliveDefaultTimeout, + kHostHeader, + kPendingIdx, + kRunningIdx, + kError, + kPipelining, + kSocket, + kKeepAliveTimeoutValue, + kMaxHeadersSize, + kKeepAliveMaxTimeout, + kKeepAliveTimeoutThreshold, + kHeadersTimeout, + kBodyTimeout, + kStrictContentLength, + kConnector, + kMaxRedirections, + kMaxRequests, + kCounter, + kClose, + kDestroy, + kDispatch, + kInterceptors, + kLocalAddress, + kMaxResponseSize, + kHTTPConnVersion, + // HTTP2 + kHost, + kHTTP2Session, + kHTTP2SessionState, + kHTTP2BuildRequest, + kHTTP2CopyHeaders, + kHTTP1BuildRequest +} = __nccwpck_require__(2785) + +/** @type {import('http2')} */ +let http2 +try { + http2 = __nccwpck_require__(5158) +} catch { + // @ts-ignore + http2 = { constants: {} } +} + +const { + constants: { + HTTP2_HEADER_AUTHORITY, + HTTP2_HEADER_METHOD, + HTTP2_HEADER_PATH, + HTTP2_HEADER_SCHEME, + HTTP2_HEADER_CONTENT_LENGTH, + HTTP2_HEADER_EXPECT, + HTTP2_HEADER_STATUS + } +} = http2 + +// Experimental +let h2ExperimentalWarned = false + +const FastBuffer = Buffer[Symbol.species] + +const kClosedResolve = Symbol('kClosedResolve') + +const channels = {} + +try { + const diagnosticsChannel = __nccwpck_require__(7643) + channels.sendHeaders = diagnosticsChannel.channel('undici:client:sendHeaders') + channels.beforeConnect = diagnosticsChannel.channel('undici:client:beforeConnect') + channels.connectError = diagnosticsChannel.channel('undici:client:connectError') + channels.connected = diagnosticsChannel.channel('undici:client:connected') +} catch { + channels.sendHeaders = { hasSubscribers: false } + channels.beforeConnect = { hasSubscribers: false } + channels.connectError = { hasSubscribers: false } + channels.connected = { hasSubscribers: false } +} + +/** + * @type {import('../types/client').default} + */ +class Client extends DispatcherBase { + /** + * + * @param {string|URL} url + * @param {import('../types/client').Client.Options} options + */ + constructor (url, { + interceptors, + maxHeaderSize, + headersTimeout, + socketTimeout, + requestTimeout, + connectTimeout, + bodyTimeout, + idleTimeout, + keepAlive, + keepAliveTimeout, + maxKeepAliveTimeout, + keepAliveMaxTimeout, + keepAliveTimeoutThreshold, + socketPath, + pipelining, + tls, + strictContentLength, + maxCachedSessions, + maxRedirections, + connect, + maxRequestsPerClient, + localAddress, + maxResponseSize, + autoSelectFamily, + autoSelectFamilyAttemptTimeout, + // h2 + allowH2, + maxConcurrentStreams + } = {}) { + super() + + if (keepAlive !== undefined) { + throw new InvalidArgumentError('unsupported keepAlive, use pipelining=0 instead') + } + + if (socketTimeout !== undefined) { + throw new InvalidArgumentError('unsupported socketTimeout, use headersTimeout & bodyTimeout instead') + } + + if (requestTimeout !== undefined) { + throw new InvalidArgumentError('unsupported requestTimeout, use headersTimeout & bodyTimeout instead') + } + + if (idleTimeout !== undefined) { + throw new InvalidArgumentError('unsupported idleTimeout, use keepAliveTimeout instead') + } + + if (maxKeepAliveTimeout !== undefined) { + throw new InvalidArgumentError('unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead') + } + + if (maxHeaderSize != null && !Number.isFinite(maxHeaderSize)) { + throw new InvalidArgumentError('invalid maxHeaderSize') + } + + if (socketPath != null && typeof socketPath !== 'string') { + throw new InvalidArgumentError('invalid socketPath') + } + + if (connectTimeout != null && (!Number.isFinite(connectTimeout) || connectTimeout < 0)) { + throw new InvalidArgumentError('invalid connectTimeout') + } + + if (keepAliveTimeout != null && (!Number.isFinite(keepAliveTimeout) || keepAliveTimeout <= 0)) { + throw new InvalidArgumentError('invalid keepAliveTimeout') + } + + if (keepAliveMaxTimeout != null && (!Number.isFinite(keepAliveMaxTimeout) || keepAliveMaxTimeout <= 0)) { + throw new InvalidArgumentError('invalid keepAliveMaxTimeout') + } + + if (keepAliveTimeoutThreshold != null && !Number.isFinite(keepAliveTimeoutThreshold)) { + throw new InvalidArgumentError('invalid keepAliveTimeoutThreshold') + } + + if (headersTimeout != null && (!Number.isInteger(headersTimeout) || headersTimeout < 0)) { + throw new InvalidArgumentError('headersTimeout must be a positive integer or zero') + } + + if (bodyTimeout != null && (!Number.isInteger(bodyTimeout) || bodyTimeout < 0)) { + throw new InvalidArgumentError('bodyTimeout must be a positive integer or zero') + } + + if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') { + throw new InvalidArgumentError('connect must be a function or an object') + } + + if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { + throw new InvalidArgumentError('maxRedirections must be a positive number') + } + + if (maxRequestsPerClient != null && (!Number.isInteger(maxRequestsPerClient) || maxRequestsPerClient < 0)) { + throw new InvalidArgumentError('maxRequestsPerClient must be a positive number') + } + + if (localAddress != null && (typeof localAddress !== 'string' || net.isIP(localAddress) === 0)) { + throw new InvalidArgumentError('localAddress must be valid string IP address') + } + + if (maxResponseSize != null && (!Number.isInteger(maxResponseSize) || maxResponseSize < -1)) { + throw new InvalidArgumentError('maxResponseSize must be a positive number') + } + + if ( + autoSelectFamilyAttemptTimeout != null && + (!Number.isInteger(autoSelectFamilyAttemptTimeout) || autoSelectFamilyAttemptTimeout < -1) + ) { + throw new InvalidArgumentError('autoSelectFamilyAttemptTimeout must be a positive number') + } + + // h2 + if (allowH2 != null && typeof allowH2 !== 'boolean') { + throw new InvalidArgumentError('allowH2 must be a valid boolean value') + } + + if (maxConcurrentStreams != null && (typeof maxConcurrentStreams !== 'number' || maxConcurrentStreams < 1)) { + throw new InvalidArgumentError('maxConcurrentStreams must be a possitive integer, greater than 0') + } + + if (typeof connect !== 'function') { + connect = buildConnector({ + ...tls, + maxCachedSessions, + allowH2, + socketPath, + timeout: connectTimeout, + ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined), + ...connect + }) + } + + this[kInterceptors] = interceptors && interceptors.Client && Array.isArray(interceptors.Client) + ? interceptors.Client + : [createRedirectInterceptor({ maxRedirections })] + this[kUrl] = util.parseOrigin(url) + this[kConnector] = connect + this[kSocket] = null + this[kPipelining] = pipelining != null ? pipelining : 1 + this[kMaxHeadersSize] = maxHeaderSize || http.maxHeaderSize + this[kKeepAliveDefaultTimeout] = keepAliveTimeout == null ? 4e3 : keepAliveTimeout + this[kKeepAliveMaxTimeout] = keepAliveMaxTimeout == null ? 600e3 : keepAliveMaxTimeout + this[kKeepAliveTimeoutThreshold] = keepAliveTimeoutThreshold == null ? 1e3 : keepAliveTimeoutThreshold + this[kKeepAliveTimeoutValue] = this[kKeepAliveDefaultTimeout] + this[kServerName] = null + this[kLocalAddress] = localAddress != null ? localAddress : null + this[kResuming] = 0 // 0, idle, 1, scheduled, 2 resuming + this[kNeedDrain] = 0 // 0, idle, 1, scheduled, 2 resuming + this[kHostHeader] = `host: ${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}\r\n` + this[kBodyTimeout] = bodyTimeout != null ? bodyTimeout : 300e3 + this[kHeadersTimeout] = headersTimeout != null ? headersTimeout : 300e3 + this[kStrictContentLength] = strictContentLength == null ? true : strictContentLength + this[kMaxRedirections] = maxRedirections + this[kMaxRequests] = maxRequestsPerClient + this[kClosedResolve] = null + this[kMaxResponseSize] = maxResponseSize > -1 ? maxResponseSize : -1 + this[kHTTPConnVersion] = 'h1' + + // HTTP/2 + this[kHTTP2Session] = null + this[kHTTP2SessionState] = !allowH2 + ? null + : { + // streams: null, // Fixed queue of streams - For future support of `push` + openStreams: 0, // Keep track of them to decide wether or not unref the session + maxConcurrentStreams: maxConcurrentStreams != null ? maxConcurrentStreams : 100 // Max peerConcurrentStreams for a Node h2 server + } + this[kHost] = `${this[kUrl].hostname}${this[kUrl].port ? `:${this[kUrl].port}` : ''}` + + // kQueue is built up of 3 sections separated by + // the kRunningIdx and kPendingIdx indices. + // | complete | running | pending | + // ^ kRunningIdx ^ kPendingIdx ^ kQueue.length + // kRunningIdx points to the first running element. + // kPendingIdx points to the first pending element. + // This implements a fast queue with an amortized + // time of O(1). + + this[kQueue] = [] + this[kRunningIdx] = 0 + this[kPendingIdx] = 0 + } + + get pipelining () { + return this[kPipelining] + } + + set pipelining (value) { + this[kPipelining] = value + resume(this, true) + } + + get [kPending] () { + return this[kQueue].length - this[kPendingIdx] + } + + get [kRunning] () { + return this[kPendingIdx] - this[kRunningIdx] + } + + get [kSize] () { + return this[kQueue].length - this[kRunningIdx] + } + + get [kConnected] () { + return !!this[kSocket] && !this[kConnecting] && !this[kSocket].destroyed + } + + get [kBusy] () { + const socket = this[kSocket] + return ( + (socket && (socket[kReset] || socket[kWriting] || socket[kBlocking])) || + (this[kSize] >= (this[kPipelining] || 1)) || + this[kPending] > 0 + ) + } + + /* istanbul ignore: only used for test */ + [kConnect] (cb) { + connect(this) + this.once('connect', cb) + } + + [kDispatch] (opts, handler) { + const origin = opts.origin || this[kUrl].origin + + const request = this[kHTTPConnVersion] === 'h2' + ? Request[kHTTP2BuildRequest](origin, opts, handler) + : Request[kHTTP1BuildRequest](origin, opts, handler) + + this[kQueue].push(request) + if (this[kResuming]) { + // Do nothing. + } else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) { + // Wait a tick in case stream/iterator is ended in the same tick. + this[kResuming] = 1 + process.nextTick(resume, this) + } else { + resume(this, true) + } + + if (this[kResuming] && this[kNeedDrain] !== 2 && this[kBusy]) { + this[kNeedDrain] = 2 + } + + return this[kNeedDrain] < 2 + } + + async [kClose] () { + // TODO: for H2 we need to gracefully flush the remaining enqueued + // request and close each stream. + return new Promise((resolve) => { + if (!this[kSize]) { + resolve(null) + } else { + this[kClosedResolve] = resolve + } + }) + } + + async [kDestroy] (err) { + return new Promise((resolve) => { + const requests = this[kQueue].splice(this[kPendingIdx]) + for (let i = 0; i < requests.length; i++) { + const request = requests[i] + errorRequest(this, request, err) + } + + const callback = () => { + if (this[kClosedResolve]) { + // TODO (fix): Should we error here with ClientDestroyedError? + this[kClosedResolve]() + this[kClosedResolve] = null + } + resolve() + } + + if (this[kHTTP2Session] != null) { + util.destroy(this[kHTTP2Session], err) + this[kHTTP2Session] = null + this[kHTTP2SessionState] = null + } + + if (!this[kSocket]) { + queueMicrotask(callback) + } else { + util.destroy(this[kSocket].on('close', callback), err) + } + + resume(this) + }) + } +} + +function onHttp2SessionError (err) { + assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID') + + this[kSocket][kError] = err + + onError(this[kClient], err) +} + +function onHttp2FrameError (type, code, id) { + const err = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`) + + if (id === 0) { + this[kSocket][kError] = err + onError(this[kClient], err) + } +} + +function onHttp2SessionEnd () { + util.destroy(this, new SocketError('other side closed')) + util.destroy(this[kSocket], new SocketError('other side closed')) +} + +function onHTTP2GoAway (code) { + const client = this[kClient] + const err = new InformationalError(`HTTP/2: "GOAWAY" frame received with code ${code}`) + client[kSocket] = null + client[kHTTP2Session] = null + + if (client.destroyed) { + assert(this[kPending] === 0) + + // Fail entire queue. + const requests = client[kQueue].splice(client[kRunningIdx]) + for (let i = 0; i < requests.length; i++) { + const request = requests[i] + errorRequest(this, request, err) + } + } else if (client[kRunning] > 0) { + // Fail head of pipeline. + const request = client[kQueue][client[kRunningIdx]] + client[kQueue][client[kRunningIdx]++] = null + + errorRequest(client, request, err) + } + + client[kPendingIdx] = client[kRunningIdx] + + assert(client[kRunning] === 0) + + client.emit('disconnect', + client[kUrl], + [client], + err + ) + + resume(client) +} + +const constants = __nccwpck_require__(953) +const createRedirectInterceptor = __nccwpck_require__(8861) +const EMPTY_BUF = Buffer.alloc(0) + +async function lazyllhttp () { + const llhttpWasmData = process.env.JEST_WORKER_ID ? __nccwpck_require__(1145) : undefined + + let mod + try { + mod = await WebAssembly.compile(Buffer.from(__nccwpck_require__(5627), 'base64')) + } catch (e) { + /* istanbul ignore next */ + + // We could check if the error was caused by the simd option not + // being enabled, but the occurring of this other error + // * https://github.com/emscripten-core/emscripten/issues/11495 + // got me to remove that check to avoid breaking Node 12. + mod = await WebAssembly.compile(Buffer.from(llhttpWasmData || __nccwpck_require__(1145), 'base64')) + } + + return await WebAssembly.instantiate(mod, { + env: { + /* eslint-disable camelcase */ + + wasm_on_url: (p, at, len) => { + /* istanbul ignore next */ + return 0 + }, + wasm_on_status: (p, at, len) => { + assert.strictEqual(currentParser.ptr, p) + const start = at - currentBufferPtr + currentBufferRef.byteOffset + return currentParser.onStatus(new FastBuffer(currentBufferRef.buffer, start, len)) || 0 + }, + wasm_on_message_begin: (p) => { + assert.strictEqual(currentParser.ptr, p) + return currentParser.onMessageBegin() || 0 + }, + wasm_on_header_field: (p, at, len) => { + assert.strictEqual(currentParser.ptr, p) + const start = at - currentBufferPtr + currentBufferRef.byteOffset + return currentParser.onHeaderField(new FastBuffer(currentBufferRef.buffer, start, len)) || 0 + }, + wasm_on_header_value: (p, at, len) => { + assert.strictEqual(currentParser.ptr, p) + const start = at - currentBufferPtr + currentBufferRef.byteOffset + return currentParser.onHeaderValue(new FastBuffer(currentBufferRef.buffer, start, len)) || 0 + }, + wasm_on_headers_complete: (p, statusCode, upgrade, shouldKeepAlive) => { + assert.strictEqual(currentParser.ptr, p) + return currentParser.onHeadersComplete(statusCode, Boolean(upgrade), Boolean(shouldKeepAlive)) || 0 + }, + wasm_on_body: (p, at, len) => { + assert.strictEqual(currentParser.ptr, p) + const start = at - currentBufferPtr + currentBufferRef.byteOffset + return currentParser.onBody(new FastBuffer(currentBufferRef.buffer, start, len)) || 0 + }, + wasm_on_message_complete: (p) => { + assert.strictEqual(currentParser.ptr, p) + return currentParser.onMessageComplete() || 0 + } + + /* eslint-enable camelcase */ + } + }) +} + +let llhttpInstance = null +let llhttpPromise = lazyllhttp() +llhttpPromise.catch() + +let currentParser = null +let currentBufferRef = null +let currentBufferSize = 0 +let currentBufferPtr = null + +const TIMEOUT_HEADERS = 1 +const TIMEOUT_BODY = 2 +const TIMEOUT_IDLE = 3 + +class Parser { + constructor (client, socket, { exports }) { + assert(Number.isFinite(client[kMaxHeadersSize]) && client[kMaxHeadersSize] > 0) + + this.llhttp = exports + this.ptr = this.llhttp.llhttp_alloc(constants.TYPE.RESPONSE) + this.client = client + this.socket = socket + this.timeout = null + this.timeoutValue = null + this.timeoutType = null + this.statusCode = null + this.statusText = '' + this.upgrade = false + this.headers = [] + this.headersSize = 0 + this.headersMaxSize = client[kMaxHeadersSize] + this.shouldKeepAlive = false + this.paused = false + this.resume = this.resume.bind(this) + + this.bytesRead = 0 + + this.keepAlive = '' + this.contentLength = '' + this.connection = '' + this.maxResponseSize = client[kMaxResponseSize] + } + + setTimeout (value, type) { + this.timeoutType = type + if (value !== this.timeoutValue) { + timers.clearTimeout(this.timeout) + if (value) { + this.timeout = timers.setTimeout(onParserTimeout, value, this) + // istanbul ignore else: only for jest + if (this.timeout.unref) { + this.timeout.unref() + } + } else { + this.timeout = null + } + this.timeoutValue = value + } else if (this.timeout) { + // istanbul ignore else: only for jest + if (this.timeout.refresh) { + this.timeout.refresh() + } + } + } + + resume () { + if (this.socket.destroyed || !this.paused) { + return + } + + assert(this.ptr != null) + assert(currentParser == null) + + this.llhttp.llhttp_resume(this.ptr) + + assert(this.timeoutType === TIMEOUT_BODY) + if (this.timeout) { + // istanbul ignore else: only for jest + if (this.timeout.refresh) { + this.timeout.refresh() + } + } + + this.paused = false + this.execute(this.socket.read() || EMPTY_BUF) // Flush parser. + this.readMore() + } + + readMore () { + while (!this.paused && this.ptr) { + const chunk = this.socket.read() + if (chunk === null) { + break + } + this.execute(chunk) + } + } + + execute (data) { + assert(this.ptr != null) + assert(currentParser == null) + assert(!this.paused) + + const { socket, llhttp } = this + + if (data.length > currentBufferSize) { + if (currentBufferPtr) { + llhttp.free(currentBufferPtr) + } + currentBufferSize = Math.ceil(data.length / 4096) * 4096 + currentBufferPtr = llhttp.malloc(currentBufferSize) + } + + new Uint8Array(llhttp.memory.buffer, currentBufferPtr, currentBufferSize).set(data) + + // Call `execute` on the wasm parser. + // We pass the `llhttp_parser` pointer address, the pointer address of buffer view data, + // and finally the length of bytes to parse. + // The return value is an error code or `constants.ERROR.OK`. + try { + let ret + + try { + currentBufferRef = data + currentParser = this + ret = llhttp.llhttp_execute(this.ptr, currentBufferPtr, data.length) + /* eslint-disable-next-line no-useless-catch */ + } catch (err) { + /* istanbul ignore next: difficult to make a test case for */ + throw err + } finally { + currentParser = null + currentBufferRef = null + } + + const offset = llhttp.llhttp_get_error_pos(this.ptr) - currentBufferPtr + + if (ret === constants.ERROR.PAUSED_UPGRADE) { + this.onUpgrade(data.slice(offset)) + } else if (ret === constants.ERROR.PAUSED) { + this.paused = true + socket.unshift(data.slice(offset)) + } else if (ret !== constants.ERROR.OK) { + const ptr = llhttp.llhttp_get_error_reason(this.ptr) + let message = '' + /* istanbul ignore else: difficult to make a test case for */ + if (ptr) { + const len = new Uint8Array(llhttp.memory.buffer, ptr).indexOf(0) + message = + 'Response does not match the HTTP/1.1 protocol (' + + Buffer.from(llhttp.memory.buffer, ptr, len).toString() + + ')' + } + throw new HTTPParserError(message, constants.ERROR[ret], data.slice(offset)) + } + } catch (err) { + util.destroy(socket, err) + } + } + + destroy () { + assert(this.ptr != null) + assert(currentParser == null) + + this.llhttp.llhttp_free(this.ptr) + this.ptr = null + + timers.clearTimeout(this.timeout) + this.timeout = null + this.timeoutValue = null + this.timeoutType = null + + this.paused = false + } + + onStatus (buf) { + this.statusText = buf.toString() + } + + onMessageBegin () { + const { socket, client } = this + + /* istanbul ignore next: difficult to make a test case for */ + if (socket.destroyed) { + return -1 + } + + const request = client[kQueue][client[kRunningIdx]] + if (!request) { + return -1 + } + } + + onHeaderField (buf) { + const len = this.headers.length + + if ((len & 1) === 0) { + this.headers.push(buf) + } else { + this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]) + } + + this.trackHeader(buf.length) + } + + onHeaderValue (buf) { + let len = this.headers.length + + if ((len & 1) === 1) { + this.headers.push(buf) + len += 1 + } else { + this.headers[len - 1] = Buffer.concat([this.headers[len - 1], buf]) + } + + const key = this.headers[len - 2] + if (key.length === 10 && key.toString().toLowerCase() === 'keep-alive') { + this.keepAlive += buf.toString() + } else if (key.length === 10 && key.toString().toLowerCase() === 'connection') { + this.connection += buf.toString() + } else if (key.length === 14 && key.toString().toLowerCase() === 'content-length') { + this.contentLength += buf.toString() + } + + this.trackHeader(buf.length) + } + + trackHeader (len) { + this.headersSize += len + if (this.headersSize >= this.headersMaxSize) { + util.destroy(this.socket, new HeadersOverflowError()) + } + } + + onUpgrade (head) { + const { upgrade, client, socket, headers, statusCode } = this + + assert(upgrade) + + const request = client[kQueue][client[kRunningIdx]] + assert(request) + + assert(!socket.destroyed) + assert(socket === client[kSocket]) + assert(!this.paused) + assert(request.upgrade || request.method === 'CONNECT') + + this.statusCode = null + this.statusText = '' + this.shouldKeepAlive = null + + assert(this.headers.length % 2 === 0) + this.headers = [] + this.headersSize = 0 + + socket.unshift(head) + + socket[kParser].destroy() + socket[kParser] = null + + socket[kClient] = null + socket[kError] = null + socket + .removeListener('error', onSocketError) + .removeListener('readable', onSocketReadable) + .removeListener('end', onSocketEnd) + .removeListener('close', onSocketClose) + + client[kSocket] = null + client[kQueue][client[kRunningIdx]++] = null + client.emit('disconnect', client[kUrl], [client], new InformationalError('upgrade')) + + try { + request.onUpgrade(statusCode, headers, socket) + } catch (err) { + util.destroy(socket, err) + } + + resume(client) + } + + onHeadersComplete (statusCode, upgrade, shouldKeepAlive) { + const { client, socket, headers, statusText } = this + + /* istanbul ignore next: difficult to make a test case for */ + if (socket.destroyed) { + return -1 + } + + const request = client[kQueue][client[kRunningIdx]] + + /* istanbul ignore next: difficult to make a test case for */ + if (!request) { + return -1 + } + + assert(!this.upgrade) + assert(this.statusCode < 200) + + if (statusCode === 100) { + util.destroy(socket, new SocketError('bad response', util.getSocketInfo(socket))) + return -1 + } + + /* this can only happen if server is misbehaving */ + if (upgrade && !request.upgrade) { + util.destroy(socket, new SocketError('bad upgrade', util.getSocketInfo(socket))) + return -1 + } + + assert.strictEqual(this.timeoutType, TIMEOUT_HEADERS) + + this.statusCode = statusCode + this.shouldKeepAlive = ( + shouldKeepAlive || + // Override llhttp value which does not allow keepAlive for HEAD. + (request.method === 'HEAD' && !socket[kReset] && this.connection.toLowerCase() === 'keep-alive') + ) + + if (this.statusCode >= 200) { + const bodyTimeout = request.bodyTimeout != null + ? request.bodyTimeout + : client[kBodyTimeout] + this.setTimeout(bodyTimeout, TIMEOUT_BODY) + } else if (this.timeout) { + // istanbul ignore else: only for jest + if (this.timeout.refresh) { + this.timeout.refresh() + } + } + + if (request.method === 'CONNECT') { + assert(client[kRunning] === 1) + this.upgrade = true + return 2 + } + + if (upgrade) { + assert(client[kRunning] === 1) + this.upgrade = true + return 2 + } + + assert(this.headers.length % 2 === 0) + this.headers = [] + this.headersSize = 0 + + if (this.shouldKeepAlive && client[kPipelining]) { + const keepAliveTimeout = this.keepAlive ? util.parseKeepAliveTimeout(this.keepAlive) : null + + if (keepAliveTimeout != null) { + const timeout = Math.min( + keepAliveTimeout - client[kKeepAliveTimeoutThreshold], + client[kKeepAliveMaxTimeout] + ) + if (timeout <= 0) { + socket[kReset] = true + } else { + client[kKeepAliveTimeoutValue] = timeout + } + } else { + client[kKeepAliveTimeoutValue] = client[kKeepAliveDefaultTimeout] + } + } else { + // Stop more requests from being dispatched. + socket[kReset] = true + } + + let pause + try { + pause = request.onHeaders(statusCode, headers, this.resume, statusText) === false + } catch (err) { + util.destroy(socket, err) + return -1 + } + + if (request.method === 'HEAD') { + return 1 + } + + if (statusCode < 200) { + return 1 + } + + if (socket[kBlocking]) { + socket[kBlocking] = false + resume(client) + } + + return pause ? constants.ERROR.PAUSED : 0 + } + + onBody (buf) { + const { client, socket, statusCode, maxResponseSize } = this + + if (socket.destroyed) { + return -1 + } + + const request = client[kQueue][client[kRunningIdx]] + assert(request) + + assert.strictEqual(this.timeoutType, TIMEOUT_BODY) + if (this.timeout) { + // istanbul ignore else: only for jest + if (this.timeout.refresh) { + this.timeout.refresh() + } + } + + assert(statusCode >= 200) + + if (maxResponseSize > -1 && this.bytesRead + buf.length > maxResponseSize) { + util.destroy(socket, new ResponseExceededMaxSizeError()) + return -1 + } + + this.bytesRead += buf.length + + try { + if (request.onData(buf) === false) { + return constants.ERROR.PAUSED + } + } catch (err) { + util.destroy(socket, err) + return -1 + } + } + + onMessageComplete () { + const { client, socket, statusCode, upgrade, headers, contentLength, bytesRead, shouldKeepAlive } = this + + if (socket.destroyed && (!statusCode || shouldKeepAlive)) { + return -1 + } + + if (upgrade) { + return + } + + const request = client[kQueue][client[kRunningIdx]] + assert(request) + + assert(statusCode >= 100) + + this.statusCode = null + this.statusText = '' + this.bytesRead = 0 + this.contentLength = '' + this.keepAlive = '' + this.connection = '' + + assert(this.headers.length % 2 === 0) + this.headers = [] + this.headersSize = 0 + + if (statusCode < 200) { + return + } + + /* istanbul ignore next: should be handled by llhttp? */ + if (request.method !== 'HEAD' && contentLength && bytesRead !== parseInt(contentLength, 10)) { + util.destroy(socket, new ResponseContentLengthMismatchError()) + return -1 + } + + try { + request.onComplete(headers) + } catch (err) { + errorRequest(client, request, err) + } + + client[kQueue][client[kRunningIdx]++] = null + + if (socket[kWriting]) { + assert.strictEqual(client[kRunning], 0) + // Response completed before request. + util.destroy(socket, new InformationalError('reset')) + return constants.ERROR.PAUSED + } else if (!shouldKeepAlive) { + util.destroy(socket, new InformationalError('reset')) + return constants.ERROR.PAUSED + } else if (socket[kReset] && client[kRunning] === 0) { + // Destroy socket once all requests have completed. + // The request at the tail of the pipeline is the one + // that requested reset and no further requests should + // have been queued since then. + util.destroy(socket, new InformationalError('reset')) + return constants.ERROR.PAUSED + } else if (client[kPipelining] === 1) { + // We must wait a full event loop cycle to reuse this socket to make sure + // that non-spec compliant servers are not closing the connection even if they + // said they won't. + setImmediate(resume, client) + } else { + resume(client) + } + } +} + +function onParserTimeout (parser) { + const { socket, timeoutType, client } = parser + + /* istanbul ignore else */ + if (timeoutType === TIMEOUT_HEADERS) { + if (!socket[kWriting] || socket.writableNeedDrain || client[kRunning] > 1) { + assert(!parser.paused, 'cannot be paused while waiting for headers') + util.destroy(socket, new HeadersTimeoutError()) + } + } else if (timeoutType === TIMEOUT_BODY) { + if (!parser.paused) { + util.destroy(socket, new BodyTimeoutError()) + } + } else if (timeoutType === TIMEOUT_IDLE) { + assert(client[kRunning] === 0 && client[kKeepAliveTimeoutValue]) + util.destroy(socket, new InformationalError('socket idle timeout')) + } +} + +function onSocketReadable () { + const { [kParser]: parser } = this + if (parser) { + parser.readMore() + } +} + +function onSocketError (err) { + const { [kClient]: client, [kParser]: parser } = this + + assert(err.code !== 'ERR_TLS_CERT_ALTNAME_INVALID') + + if (client[kHTTPConnVersion] !== 'h2') { + // On Mac OS, we get an ECONNRESET even if there is a full body to be forwarded + // to the user. + if (err.code === 'ECONNRESET' && parser.statusCode && !parser.shouldKeepAlive) { + // We treat all incoming data so for as a valid response. + parser.onMessageComplete() + return + } + } + + this[kError] = err + + onError(this[kClient], err) +} + +function onError (client, err) { + if ( + client[kRunning] === 0 && + err.code !== 'UND_ERR_INFO' && + err.code !== 'UND_ERR_SOCKET' + ) { + // Error is not caused by running request and not a recoverable + // socket error. + + assert(client[kPendingIdx] === client[kRunningIdx]) + + const requests = client[kQueue].splice(client[kRunningIdx]) + for (let i = 0; i < requests.length; i++) { + const request = requests[i] + errorRequest(client, request, err) + } + assert(client[kSize] === 0) + } +} + +function onSocketEnd () { + const { [kParser]: parser, [kClient]: client } = this + + if (client[kHTTPConnVersion] !== 'h2') { + if (parser.statusCode && !parser.shouldKeepAlive) { + // We treat all incoming data so far as a valid response. + parser.onMessageComplete() + return + } + } + + util.destroy(this, new SocketError('other side closed', util.getSocketInfo(this))) +} + +function onSocketClose () { + const { [kClient]: client, [kParser]: parser } = this + + if (client[kHTTPConnVersion] === 'h1' && parser) { + if (!this[kError] && parser.statusCode && !parser.shouldKeepAlive) { + // We treat all incoming data so far as a valid response. + parser.onMessageComplete() + } + + this[kParser].destroy() + this[kParser] = null + } + + const err = this[kError] || new SocketError('closed', util.getSocketInfo(this)) + + client[kSocket] = null + + if (client.destroyed) { + assert(client[kPending] === 0) + + // Fail entire queue. + const requests = client[kQueue].splice(client[kRunningIdx]) + for (let i = 0; i < requests.length; i++) { + const request = requests[i] + errorRequest(client, request, err) + } + } else if (client[kRunning] > 0 && err.code !== 'UND_ERR_INFO') { + // Fail head of pipeline. + const request = client[kQueue][client[kRunningIdx]] + client[kQueue][client[kRunningIdx]++] = null + + errorRequest(client, request, err) + } + + client[kPendingIdx] = client[kRunningIdx] + + assert(client[kRunning] === 0) + + client.emit('disconnect', client[kUrl], [client], err) + + resume(client) +} + +async function connect (client) { + assert(!client[kConnecting]) + assert(!client[kSocket]) + + let { host, hostname, protocol, port } = client[kUrl] + + // Resolve ipv6 + if (hostname[0] === '[') { + const idx = hostname.indexOf(']') + + assert(idx !== -1) + const ip = hostname.substr(1, idx - 1) + + assert(net.isIP(ip)) + hostname = ip + } + + client[kConnecting] = true + + if (channels.beforeConnect.hasSubscribers) { + channels.beforeConnect.publish({ + connectParams: { + host, + hostname, + protocol, + port, + servername: client[kServerName], + localAddress: client[kLocalAddress] + }, + connector: client[kConnector] + }) + } + + try { + const socket = await new Promise((resolve, reject) => { + client[kConnector]({ + host, + hostname, + protocol, + port, + servername: client[kServerName], + localAddress: client[kLocalAddress] + }, (err, socket) => { + if (err) { + reject(err) + } else { + resolve(socket) + } + }) + }) + + if (client.destroyed) { + util.destroy(socket.on('error', () => {}), new ClientDestroyedError()) + return + } + + client[kConnecting] = false + + assert(socket) + + const isH2 = socket.alpnProtocol === 'h2' + if (isH2) { + if (!h2ExperimentalWarned) { + h2ExperimentalWarned = true + process.emitWarning('H2 support is experimental, expect them to change at any time.', { + code: 'UNDICI-H2' + }) + } + + const session = http2.connect(client[kUrl], { + createConnection: () => socket, + peerMaxConcurrentStreams: client[kHTTP2SessionState].maxConcurrentStreams + }) + + client[kHTTPConnVersion] = 'h2' + session[kClient] = client + session[kSocket] = socket + session.on('error', onHttp2SessionError) + session.on('frameError', onHttp2FrameError) + session.on('end', onHttp2SessionEnd) + session.on('goaway', onHTTP2GoAway) + session.on('close', onSocketClose) + session.unref() + + client[kHTTP2Session] = session + socket[kHTTP2Session] = session + } else { + if (!llhttpInstance) { + llhttpInstance = await llhttpPromise + llhttpPromise = null + } + + socket[kNoRef] = false + socket[kWriting] = false + socket[kReset] = false + socket[kBlocking] = false + socket[kParser] = new Parser(client, socket, llhttpInstance) + } + + socket[kCounter] = 0 + socket[kMaxRequests] = client[kMaxRequests] + socket[kClient] = client + socket[kError] = null + + socket + .on('error', onSocketError) + .on('readable', onSocketReadable) + .on('end', onSocketEnd) + .on('close', onSocketClose) + + client[kSocket] = socket + + if (channels.connected.hasSubscribers) { + channels.connected.publish({ + connectParams: { + host, + hostname, + protocol, + port, + servername: client[kServerName], + localAddress: client[kLocalAddress] + }, + connector: client[kConnector], + socket + }) + } + client.emit('connect', client[kUrl], [client]) + } catch (err) { + if (client.destroyed) { + return + } + + client[kConnecting] = false + + if (channels.connectError.hasSubscribers) { + channels.connectError.publish({ + connectParams: { + host, + hostname, + protocol, + port, + servername: client[kServerName], + localAddress: client[kLocalAddress] + }, + connector: client[kConnector], + error: err + }) + } + + if (err.code === 'ERR_TLS_CERT_ALTNAME_INVALID') { + assert(client[kRunning] === 0) + while (client[kPending] > 0 && client[kQueue][client[kPendingIdx]].servername === client[kServerName]) { + const request = client[kQueue][client[kPendingIdx]++] + errorRequest(client, request, err) + } + } else { + onError(client, err) + } + + client.emit('connectionError', client[kUrl], [client], err) + } + + resume(client) +} + +function emitDrain (client) { + client[kNeedDrain] = 0 + client.emit('drain', client[kUrl], [client]) +} + +function resume (client, sync) { + if (client[kResuming] === 2) { + return + } + + client[kResuming] = 2 + + _resume(client, sync) + client[kResuming] = 0 + + if (client[kRunningIdx] > 256) { + client[kQueue].splice(0, client[kRunningIdx]) + client[kPendingIdx] -= client[kRunningIdx] + client[kRunningIdx] = 0 + } +} + +function _resume (client, sync) { + while (true) { + if (client.destroyed) { + assert(client[kPending] === 0) + return + } + + if (client[kClosedResolve] && !client[kSize]) { + client[kClosedResolve]() + client[kClosedResolve] = null + return + } + + const socket = client[kSocket] + + if (socket && !socket.destroyed && socket.alpnProtocol !== 'h2') { + if (client[kSize] === 0) { + if (!socket[kNoRef] && socket.unref) { + socket.unref() + socket[kNoRef] = true + } + } else if (socket[kNoRef] && socket.ref) { + socket.ref() + socket[kNoRef] = false + } + + if (client[kSize] === 0) { + if (socket[kParser].timeoutType !== TIMEOUT_IDLE) { + socket[kParser].setTimeout(client[kKeepAliveTimeoutValue], TIMEOUT_IDLE) + } + } else if (client[kRunning] > 0 && socket[kParser].statusCode < 200) { + if (socket[kParser].timeoutType !== TIMEOUT_HEADERS) { + const request = client[kQueue][client[kRunningIdx]] + const headersTimeout = request.headersTimeout != null + ? request.headersTimeout + : client[kHeadersTimeout] + socket[kParser].setTimeout(headersTimeout, TIMEOUT_HEADERS) + } + } + } + + if (client[kBusy]) { + client[kNeedDrain] = 2 + } else if (client[kNeedDrain] === 2) { + if (sync) { + client[kNeedDrain] = 1 + process.nextTick(emitDrain, client) + } else { + emitDrain(client) + } + continue + } + + if (client[kPending] === 0) { + return + } + + if (client[kRunning] >= (client[kPipelining] || 1)) { + return + } + + const request = client[kQueue][client[kPendingIdx]] + + if (client[kUrl].protocol === 'https:' && client[kServerName] !== request.servername) { + if (client[kRunning] > 0) { + return + } + + client[kServerName] = request.servername + + if (socket && socket.servername !== request.servername) { + util.destroy(socket, new InformationalError('servername changed')) + return + } + } + + if (client[kConnecting]) { + return + } + + if (!socket && !client[kHTTP2Session]) { + connect(client) + return + } + + if (socket.destroyed || socket[kWriting] || socket[kReset] || socket[kBlocking]) { + return + } + + if (client[kRunning] > 0 && !request.idempotent) { + // Non-idempotent request cannot be retried. + // Ensure that no other requests are inflight and + // could cause failure. + return + } + + if (client[kRunning] > 0 && (request.upgrade || request.method === 'CONNECT')) { + // Don't dispatch an upgrade until all preceding requests have completed. + // A misbehaving server might upgrade the connection before all pipelined + // request has completed. + return + } + + if (util.isStream(request.body) && util.bodyLength(request.body) === 0) { + request.body + .on('data', /* istanbul ignore next */ function () { + /* istanbul ignore next */ + assert(false) + }) + .on('error', function (err) { + errorRequest(client, request, err) + }) + .on('end', function () { + util.destroy(this) + }) + + request.body = null + } + + if (client[kRunning] > 0 && + (util.isStream(request.body) || util.isAsyncIterable(request.body))) { + // Request with stream or iterator body can error while other requests + // are inflight and indirectly error those as well. + // Ensure this doesn't happen by waiting for inflight + // to complete before dispatching. + + // Request with stream or iterator body cannot be retried. + // Ensure that no other requests are inflight and + // could cause failure. + return + } + + if (!request.aborted && write(client, request)) { + client[kPendingIdx]++ + } else { + client[kQueue].splice(client[kPendingIdx], 1) + } + } +} + +function write (client, request) { + if (client[kHTTPConnVersion] === 'h2') { + writeH2(client, client[kHTTP2Session], request) + return + } + + const { body, method, path, host, upgrade, headers, blocking, reset } = request + + // https://tools.ietf.org/html/rfc7231#section-4.3.1 + // https://tools.ietf.org/html/rfc7231#section-4.3.2 + // https://tools.ietf.org/html/rfc7231#section-4.3.5 + + // Sending a payload body on a request that does not + // expect it can cause undefined behavior on some + // servers and corrupt connection state. Do not + // re-use the connection for further requests. + + const expectsPayload = ( + method === 'PUT' || + method === 'POST' || + method === 'PATCH' + ) + + if (body && typeof body.read === 'function') { + // Try to read EOF in order to get length. + body.read(0) + } + + let contentLength = util.bodyLength(body) + + if (contentLength === null) { + contentLength = request.contentLength + } + + if (contentLength === 0 && !expectsPayload) { + // https://tools.ietf.org/html/rfc7230#section-3.3.2 + // A user agent SHOULD NOT send a Content-Length header field when + // the request message does not contain a payload body and the method + // semantics do not anticipate such a body. + + contentLength = null + } + + if (request.contentLength !== null && request.contentLength !== contentLength) { + if (client[kStrictContentLength]) { + errorRequest(client, request, new RequestContentLengthMismatchError()) + return false + } + + process.emitWarning(new RequestContentLengthMismatchError()) + } + + const socket = client[kSocket] + + try { + request.onConnect((err) => { + if (request.aborted || request.completed) { + return + } + + errorRequest(client, request, err || new RequestAbortedError()) + + util.destroy(socket, new InformationalError('aborted')) + }) + } catch (err) { + errorRequest(client, request, err) + } + + if (request.aborted) { + return false + } + + if (method === 'HEAD') { + // https://github.com/mcollina/undici/issues/258 + // Close after a HEAD request to interop with misbehaving servers + // that may send a body in the response. + + socket[kReset] = true + } + + if (upgrade || method === 'CONNECT') { + // On CONNECT or upgrade, block pipeline from dispatching further + // requests on this connection. + + socket[kReset] = true + } + + if (reset != null) { + socket[kReset] = reset + } + + if (client[kMaxRequests] && socket[kCounter]++ >= client[kMaxRequests]) { + socket[kReset] = true + } + + if (blocking) { + socket[kBlocking] = true + } + + let header = `${method} ${path} HTTP/1.1\r\n` + + if (typeof host === 'string') { + header += `host: ${host}\r\n` + } else { + header += client[kHostHeader] + } + + if (upgrade) { + header += `connection: upgrade\r\nupgrade: ${upgrade}\r\n` + } else if (client[kPipelining] && !socket[kReset]) { + header += 'connection: keep-alive\r\n' + } else { + header += 'connection: close\r\n' + } + + if (headers) { + header += headers + } + + if (channels.sendHeaders.hasSubscribers) { + channels.sendHeaders.publish({ request, headers: header, socket }) + } + + /* istanbul ignore else: assertion */ + if (!body) { + if (contentLength === 0) { + socket.write(`${header}content-length: 0\r\n\r\n`, 'latin1') + } else { + assert(contentLength === null, 'no body must not have content length') + socket.write(`${header}\r\n`, 'latin1') + } + request.onRequestSent() + } else if (util.isBuffer(body)) { + assert(contentLength === body.byteLength, 'buffer body must have content length') + + socket.cork() + socket.write(`${header}content-length: ${contentLength}\r\n\r\n`, 'latin1') + socket.write(body) + socket.uncork() + request.onBodySent(body) + request.onRequestSent() + if (!expectsPayload) { + socket[kReset] = true + } + } else if (util.isBlobLike(body)) { + if (typeof body.stream === 'function') { + writeIterable({ body: body.stream(), client, request, socket, contentLength, header, expectsPayload }) + } else { + writeBlob({ body, client, request, socket, contentLength, header, expectsPayload }) + } + } else if (util.isStream(body)) { + writeStream({ body, client, request, socket, contentLength, header, expectsPayload }) + } else if (util.isIterable(body)) { + writeIterable({ body, client, request, socket, contentLength, header, expectsPayload }) + } else { + assert(false) + } + + return true +} + +function writeH2 (client, session, request) { + const { body, method, path, host, upgrade, expectContinue, signal, headers: reqHeaders } = request + + let headers + if (typeof reqHeaders === 'string') headers = Request[kHTTP2CopyHeaders](reqHeaders.trim()) + else headers = reqHeaders + + if (upgrade) { + errorRequest(client, request, new Error('Upgrade not supported for H2')) + return false + } + + try { + // TODO(HTTP/2): Should we call onConnect immediately or on stream ready event? + request.onConnect((err) => { + if (request.aborted || request.completed) { + return + } + + errorRequest(client, request, err || new RequestAbortedError()) + }) + } catch (err) { + errorRequest(client, request, err) + } + + if (request.aborted) { + return false + } + + let stream + const h2State = client[kHTTP2SessionState] + + headers[HTTP2_HEADER_AUTHORITY] = host || client[kHost] + headers[HTTP2_HEADER_METHOD] = method + + if (method === 'CONNECT') { + session.ref() + // we are already connected, streams are pending, first request + // will create a new stream. We trigger a request to create the stream and wait until + // `ready` event is triggered + // We disabled endStream to allow the user to write to the stream + stream = session.request(headers, { endStream: false, signal }) + + if (stream.id && !stream.pending) { + request.onUpgrade(null, null, stream) + ++h2State.openStreams + } else { + stream.once('ready', () => { + request.onUpgrade(null, null, stream) + ++h2State.openStreams + }) + } + + stream.once('close', () => { + h2State.openStreams -= 1 + // TODO(HTTP/2): unref only if current streams count is 0 + if (h2State.openStreams === 0) session.unref() + }) + + return true + } + + // https://tools.ietf.org/html/rfc7540#section-8.3 + // :path and :scheme headers must be omited when sending CONNECT + + headers[HTTP2_HEADER_PATH] = path + headers[HTTP2_HEADER_SCHEME] = 'https' + + // https://tools.ietf.org/html/rfc7231#section-4.3.1 + // https://tools.ietf.org/html/rfc7231#section-4.3.2 + // https://tools.ietf.org/html/rfc7231#section-4.3.5 + + // Sending a payload body on a request that does not + // expect it can cause undefined behavior on some + // servers and corrupt connection state. Do not + // re-use the connection for further requests. + + const expectsPayload = ( + method === 'PUT' || + method === 'POST' || + method === 'PATCH' + ) + + if (body && typeof body.read === 'function') { + // Try to read EOF in order to get length. + body.read(0) + } + + let contentLength = util.bodyLength(body) + + if (contentLength == null) { + contentLength = request.contentLength + } + + if (contentLength === 0 || !expectsPayload) { + // https://tools.ietf.org/html/rfc7230#section-3.3.2 + // A user agent SHOULD NOT send a Content-Length header field when + // the request message does not contain a payload body and the method + // semantics do not anticipate such a body. + + contentLength = null + } + + if (request.contentLength != null && request.contentLength !== contentLength) { + if (client[kStrictContentLength]) { + errorRequest(client, request, new RequestContentLengthMismatchError()) + return false + } + + process.emitWarning(new RequestContentLengthMismatchError()) + } + + if (contentLength != null) { + assert(body, 'no body must not have content length') + headers[HTTP2_HEADER_CONTENT_LENGTH] = `${contentLength}` + } + + session.ref() + + const shouldEndStream = method === 'GET' || method === 'HEAD' + if (expectContinue) { + headers[HTTP2_HEADER_EXPECT] = '100-continue' + /** + * @type {import('node:http2').ClientHttp2Stream} + */ + stream = session.request(headers, { endStream: shouldEndStream, signal }) + + stream.once('continue', writeBodyH2) + } else { + /** @type {import('node:http2').ClientHttp2Stream} */ + stream = session.request(headers, { + endStream: shouldEndStream, + signal + }) + writeBodyH2() + } + + // Increment counter as we have new several streams open + ++h2State.openStreams + + stream.once('response', headers => { + if (request.onHeaders(Number(headers[HTTP2_HEADER_STATUS]), headers, stream.resume.bind(stream), '') === false) { + stream.pause() + } + }) + + stream.once('end', () => { + request.onComplete([]) + }) + + stream.on('data', (chunk) => { + if (request.onData(chunk) === false) stream.pause() + }) + + stream.once('close', () => { + h2State.openStreams -= 1 + // TODO(HTTP/2): unref only if current streams count is 0 + if (h2State.openStreams === 0) session.unref() + }) + + stream.once('error', function (err) { + if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) { + h2State.streams -= 1 + util.destroy(stream, err) + } + }) + + stream.once('frameError', (type, code) => { + const err = new InformationalError(`HTTP/2: "frameError" received - type ${type}, code ${code}`) + errorRequest(client, request, err) + + if (client[kHTTP2Session] && !client[kHTTP2Session].destroyed && !this.closed && !this.destroyed) { + h2State.streams -= 1 + util.destroy(stream, err) + } + }) + + // stream.on('aborted', () => { + // // TODO(HTTP/2): Support aborted + // }) + + // stream.on('timeout', () => { + // // TODO(HTTP/2): Support timeout + // }) + + // stream.on('push', headers => { + // // TODO(HTTP/2): Suppor push + // }) + + // stream.on('trailers', headers => { + // // TODO(HTTP/2): Support trailers + // }) + + return true + + function writeBodyH2 () { + /* istanbul ignore else: assertion */ + if (!body) { + request.onRequestSent() + } else if (util.isBuffer(body)) { + assert(contentLength === body.byteLength, 'buffer body must have content length') + stream.cork() + stream.write(body) + stream.uncork() + stream.end() + request.onBodySent(body) + request.onRequestSent() + } else if (util.isBlobLike(body)) { + if (typeof body.stream === 'function') { + writeIterable({ + client, + request, + contentLength, + h2stream: stream, + expectsPayload, + body: body.stream(), + socket: client[kSocket], + header: '' + }) + } else { + writeBlob({ + body, + client, + request, + contentLength, + expectsPayload, + h2stream: stream, + header: '', + socket: client[kSocket] + }) + } + } else if (util.isStream(body)) { + writeStream({ + body, + client, + request, + contentLength, + expectsPayload, + socket: client[kSocket], + h2stream: stream, + header: '' + }) + } else if (util.isIterable(body)) { + writeIterable({ + body, + client, + request, + contentLength, + expectsPayload, + header: '', + h2stream: stream, + socket: client[kSocket] + }) + } else { + assert(false) + } + } +} + +function writeStream ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { + assert(contentLength !== 0 || client[kRunning] === 0, 'stream body cannot be pipelined') + + if (client[kHTTPConnVersion] === 'h2') { + // For HTTP/2, is enough to pipe the stream + const pipe = pipeline( + body, + h2stream, + (err) => { + if (err) { + util.destroy(body, err) + util.destroy(h2stream, err) + } else { + request.onRequestSent() + } + } + ) + + pipe.on('data', onPipeData) + pipe.once('end', () => { + pipe.removeListener('data', onPipeData) + util.destroy(pipe) + }) + + function onPipeData (chunk) { + request.onBodySent(chunk) + } + + return + } + + let finished = false + + const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header }) + + const onData = function (chunk) { + if (finished) { + return + } + + try { + if (!writer.write(chunk) && this.pause) { + this.pause() + } + } catch (err) { + util.destroy(this, err) + } + } + const onDrain = function () { + if (finished) { + return + } + + if (body.resume) { + body.resume() + } + } + const onAbort = function () { + onFinished(new RequestAbortedError()) + } + const onFinished = function (err) { + if (finished) { + return + } + + finished = true + + assert(socket.destroyed || (socket[kWriting] && client[kRunning] <= 1)) + + socket + .off('drain', onDrain) + .off('error', onFinished) + + body + .removeListener('data', onData) + .removeListener('end', onFinished) + .removeListener('error', onFinished) + .removeListener('close', onAbort) + + if (!err) { + try { + writer.end() + } catch (er) { + err = er + } + } + + writer.destroy(err) + + if (err && (err.code !== 'UND_ERR_INFO' || err.message !== 'reset')) { + util.destroy(body, err) + } else { + util.destroy(body) + } + } + + body + .on('data', onData) + .on('end', onFinished) + .on('error', onFinished) + .on('close', onAbort) + + if (body.resume) { + body.resume() + } + + socket + .on('drain', onDrain) + .on('error', onFinished) +} + +async function writeBlob ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { + assert(contentLength === body.size, 'blob body must have content length') + + const isH2 = client[kHTTPConnVersion] === 'h2' + try { + if (contentLength != null && contentLength !== body.size) { + throw new RequestContentLengthMismatchError() + } + + const buffer = Buffer.from(await body.arrayBuffer()) + + if (isH2) { + h2stream.cork() + h2stream.write(buffer) + h2stream.uncork() + } else { + socket.cork() + socket.write(`${header}content-length: ${contentLength}\r\n\r\n`, 'latin1') + socket.write(buffer) + socket.uncork() + } + + request.onBodySent(buffer) + request.onRequestSent() + + if (!expectsPayload) { + socket[kReset] = true + } + + resume(client) + } catch (err) { + util.destroy(isH2 ? h2stream : socket, err) + } +} + +async function writeIterable ({ h2stream, body, client, request, socket, contentLength, header, expectsPayload }) { + assert(contentLength !== 0 || client[kRunning] === 0, 'iterator body cannot be pipelined') + + let callback = null + function onDrain () { + if (callback) { + const cb = callback + callback = null + cb() + } + } + + const waitForDrain = () => new Promise((resolve, reject) => { + assert(callback === null) + + if (socket[kError]) { + reject(socket[kError]) + } else { + callback = resolve + } + }) + + if (client[kHTTPConnVersion] === 'h2') { + h2stream + .on('close', onDrain) + .on('drain', onDrain) + + try { + // It's up to the user to somehow abort the async iterable. + for await (const chunk of body) { + if (socket[kError]) { + throw socket[kError] + } + + const res = h2stream.write(chunk) + request.onBodySent(chunk) + if (!res) { + await waitForDrain() + } + } + } catch (err) { + h2stream.destroy(err) + } finally { + request.onRequestSent() + h2stream.end() + h2stream + .off('close', onDrain) + .off('drain', onDrain) + } + + return + } + + socket + .on('close', onDrain) + .on('drain', onDrain) + + const writer = new AsyncWriter({ socket, request, contentLength, client, expectsPayload, header }) + try { + // It's up to the user to somehow abort the async iterable. + for await (const chunk of body) { + if (socket[kError]) { + throw socket[kError] + } + + if (!writer.write(chunk)) { + await waitForDrain() + } + } + + writer.end() + } catch (err) { + writer.destroy(err) + } finally { + socket + .off('close', onDrain) + .off('drain', onDrain) + } +} + +class AsyncWriter { + constructor ({ socket, request, contentLength, client, expectsPayload, header }) { + this.socket = socket + this.request = request + this.contentLength = contentLength + this.client = client + this.bytesWritten = 0 + this.expectsPayload = expectsPayload + this.header = header + + socket[kWriting] = true + } + + write (chunk) { + const { socket, request, contentLength, client, bytesWritten, expectsPayload, header } = this + + if (socket[kError]) { + throw socket[kError] + } + + if (socket.destroyed) { + return false + } + + const len = Buffer.byteLength(chunk) + if (!len) { + return true + } + + // We should defer writing chunks. + if (contentLength !== null && bytesWritten + len > contentLength) { + if (client[kStrictContentLength]) { + throw new RequestContentLengthMismatchError() + } + + process.emitWarning(new RequestContentLengthMismatchError()) + } + + socket.cork() + + if (bytesWritten === 0) { + if (!expectsPayload) { + socket[kReset] = true + } + + if (contentLength === null) { + socket.write(`${header}transfer-encoding: chunked\r\n`, 'latin1') + } else { + socket.write(`${header}content-length: ${contentLength}\r\n\r\n`, 'latin1') + } + } + + if (contentLength === null) { + socket.write(`\r\n${len.toString(16)}\r\n`, 'latin1') + } + + this.bytesWritten += len + + const ret = socket.write(chunk) + + socket.uncork() + + request.onBodySent(chunk) + + if (!ret) { + if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { + // istanbul ignore else: only for jest + if (socket[kParser].timeout.refresh) { + socket[kParser].timeout.refresh() + } + } + } + + return ret + } + + end () { + const { socket, contentLength, client, bytesWritten, expectsPayload, header, request } = this + request.onRequestSent() + + socket[kWriting] = false + + if (socket[kError]) { + throw socket[kError] + } + + if (socket.destroyed) { + return + } + + if (bytesWritten === 0) { + if (expectsPayload) { + // https://tools.ietf.org/html/rfc7230#section-3.3.2 + // A user agent SHOULD send a Content-Length in a request message when + // no Transfer-Encoding is sent and the request method defines a meaning + // for an enclosed payload body. + + socket.write(`${header}content-length: 0\r\n\r\n`, 'latin1') + } else { + socket.write(`${header}\r\n`, 'latin1') + } + } else if (contentLength === null) { + socket.write('\r\n0\r\n\r\n', 'latin1') + } + + if (contentLength !== null && bytesWritten !== contentLength) { + if (client[kStrictContentLength]) { + throw new RequestContentLengthMismatchError() + } else { + process.emitWarning(new RequestContentLengthMismatchError()) + } + } + + if (socket[kParser].timeout && socket[kParser].timeoutType === TIMEOUT_HEADERS) { + // istanbul ignore else: only for jest + if (socket[kParser].timeout.refresh) { + socket[kParser].timeout.refresh() + } + } + + resume(client) + } + + destroy (err) { + const { socket, client } = this + + socket[kWriting] = false + + if (err) { + assert(client[kRunning] <= 1, 'pipeline should only contain this request') + util.destroy(socket, err) + } + } +} + +function errorRequest (client, request, err) { + try { + request.onError(err) + assert(request.aborted) + } catch (err) { + client.emit('error', err) + } +} + +module.exports = Client + + +/***/ }), + +/***/ 6436: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +/* istanbul ignore file: only for Node 12 */ + +const { kConnected, kSize } = __nccwpck_require__(2785) + +class CompatWeakRef { + constructor (value) { + this.value = value + } + + deref () { + return this.value[kConnected] === 0 && this.value[kSize] === 0 + ? undefined + : this.value + } +} + +class CompatFinalizer { + constructor (finalizer) { + this.finalizer = finalizer + } + + register (dispatcher, key) { + if (dispatcher.on) { + dispatcher.on('disconnect', () => { + if (dispatcher[kConnected] === 0 && dispatcher[kSize] === 0) { + this.finalizer(key) + } + }) + } + } +} + +module.exports = function () { + // FIXME: remove workaround when the Node bug is fixed + // https://github.com/nodejs/node/issues/49344#issuecomment-1741776308 + if (process.env.NODE_V8_COVERAGE) { + return { + WeakRef: CompatWeakRef, + FinalizationRegistry: CompatFinalizer + } + } + return { + WeakRef: global.WeakRef || CompatWeakRef, + FinalizationRegistry: global.FinalizationRegistry || CompatFinalizer + } +} + + +/***/ }), + +/***/ 663: +/***/ ((module) => { + +"use strict"; + + +// https://wicg.github.io/cookie-store/#cookie-maximum-attribute-value-size +const maxAttributeValueSize = 1024 + +// https://wicg.github.io/cookie-store/#cookie-maximum-name-value-pair-size +const maxNameValuePairSize = 4096 + +module.exports = { + maxAttributeValueSize, + maxNameValuePairSize +} + + +/***/ }), + +/***/ 1724: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { parseSetCookie } = __nccwpck_require__(4408) +const { stringify, getHeadersList } = __nccwpck_require__(3121) +const { webidl } = __nccwpck_require__(1744) +const { Headers } = __nccwpck_require__(554) + +/** + * @typedef {Object} Cookie + * @property {string} name + * @property {string} value + * @property {Date|number|undefined} expires + * @property {number|undefined} maxAge + * @property {string|undefined} domain + * @property {string|undefined} path + * @property {boolean|undefined} secure + * @property {boolean|undefined} httpOnly + * @property {'Strict'|'Lax'|'None'} sameSite + * @property {string[]} unparsed + */ + +/** + * @param {Headers} headers + * @returns {Record} + */ +function getCookies (headers) { + webidl.argumentLengthCheck(arguments, 1, { header: 'getCookies' }) + + webidl.brandCheck(headers, Headers, { strict: false }) + + const cookie = headers.get('cookie') + const out = {} + + if (!cookie) { + return out + } + + for (const piece of cookie.split(';')) { + const [name, ...value] = piece.split('=') + + out[name.trim()] = value.join('=') + } + + return out +} + +/** + * @param {Headers} headers + * @param {string} name + * @param {{ path?: string, domain?: string }|undefined} attributes + * @returns {void} + */ +function deleteCookie (headers, name, attributes) { + webidl.argumentLengthCheck(arguments, 2, { header: 'deleteCookie' }) + + webidl.brandCheck(headers, Headers, { strict: false }) + + name = webidl.converters.DOMString(name) + attributes = webidl.converters.DeleteCookieAttributes(attributes) + + // Matches behavior of + // https://github.com/denoland/deno_std/blob/63827b16330b82489a04614027c33b7904e08be5/http/cookie.ts#L278 + setCookie(headers, { + name, + value: '', + expires: new Date(0), + ...attributes + }) +} + +/** + * @param {Headers} headers + * @returns {Cookie[]} + */ +function getSetCookies (headers) { + webidl.argumentLengthCheck(arguments, 1, { header: 'getSetCookies' }) + + webidl.brandCheck(headers, Headers, { strict: false }) + + const cookies = getHeadersList(headers).cookies + + if (!cookies) { + return [] + } + + // In older versions of undici, cookies is a list of name:value. + return cookies.map((pair) => parseSetCookie(Array.isArray(pair) ? pair[1] : pair)) +} + +/** + * @param {Headers} headers + * @param {Cookie} cookie + * @returns {void} + */ +function setCookie (headers, cookie) { + webidl.argumentLengthCheck(arguments, 2, { header: 'setCookie' }) + + webidl.brandCheck(headers, Headers, { strict: false }) + + cookie = webidl.converters.Cookie(cookie) + + const str = stringify(cookie) + + if (str) { + headers.append('Set-Cookie', stringify(cookie)) + } +} + +webidl.converters.DeleteCookieAttributes = webidl.dictionaryConverter([ + { + converter: webidl.nullableConverter(webidl.converters.DOMString), + key: 'path', + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters.DOMString), + key: 'domain', + defaultValue: null + } +]) + +webidl.converters.Cookie = webidl.dictionaryConverter([ + { + converter: webidl.converters.DOMString, + key: 'name' + }, + { + converter: webidl.converters.DOMString, + key: 'value' + }, + { + converter: webidl.nullableConverter((value) => { + if (typeof value === 'number') { + return webidl.converters['unsigned long long'](value) + } + + return new Date(value) + }), + key: 'expires', + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters['long long']), + key: 'maxAge', + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters.DOMString), + key: 'domain', + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters.DOMString), + key: 'path', + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters.boolean), + key: 'secure', + defaultValue: null + }, + { + converter: webidl.nullableConverter(webidl.converters.boolean), + key: 'httpOnly', + defaultValue: null + }, + { + converter: webidl.converters.USVString, + key: 'sameSite', + allowedValues: ['Strict', 'Lax', 'None'] + }, + { + converter: webidl.sequenceConverter(webidl.converters.DOMString), + key: 'unparsed', + defaultValue: [] + } +]) + +module.exports = { + getCookies, + deleteCookie, + getSetCookies, + setCookie +} + + +/***/ }), + +/***/ 4408: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { maxNameValuePairSize, maxAttributeValueSize } = __nccwpck_require__(663) +const { isCTLExcludingHtab } = __nccwpck_require__(3121) +const { collectASequenceOfCodePointsFast } = __nccwpck_require__(685) +const assert = __nccwpck_require__(9491) + +/** + * @description Parses the field-value attributes of a set-cookie header string. + * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4 + * @param {string} header + * @returns if the header is invalid, null will be returned + */ +function parseSetCookie (header) { + // 1. If the set-cookie-string contains a %x00-08 / %x0A-1F / %x7F + // character (CTL characters excluding HTAB): Abort these steps and + // ignore the set-cookie-string entirely. + if (isCTLExcludingHtab(header)) { + return null + } + + let nameValuePair = '' + let unparsedAttributes = '' + let name = '' + let value = '' + + // 2. If the set-cookie-string contains a %x3B (";") character: + if (header.includes(';')) { + // 1. The name-value-pair string consists of the characters up to, + // but not including, the first %x3B (";"), and the unparsed- + // attributes consist of the remainder of the set-cookie-string + // (including the %x3B (";") in question). + const position = { position: 0 } + + nameValuePair = collectASequenceOfCodePointsFast(';', header, position) + unparsedAttributes = header.slice(position.position) + } else { + // Otherwise: + + // 1. The name-value-pair string consists of all the characters + // contained in the set-cookie-string, and the unparsed- + // attributes is the empty string. + nameValuePair = header + } + + // 3. If the name-value-pair string lacks a %x3D ("=") character, then + // the name string is empty, and the value string is the value of + // name-value-pair. + if (!nameValuePair.includes('=')) { + value = nameValuePair + } else { + // Otherwise, the name string consists of the characters up to, but + // not including, the first %x3D ("=") character, and the (possibly + // empty) value string consists of the characters after the first + // %x3D ("=") character. + const position = { position: 0 } + name = collectASequenceOfCodePointsFast( + '=', + nameValuePair, + position + ) + value = nameValuePair.slice(position.position + 1) + } + + // 4. Remove any leading or trailing WSP characters from the name + // string and the value string. + name = name.trim() + value = value.trim() + + // 5. If the sum of the lengths of the name string and the value string + // is more than 4096 octets, abort these steps and ignore the set- + // cookie-string entirely. + if (name.length + value.length > maxNameValuePairSize) { + return null + } + + // 6. The cookie-name is the name string, and the cookie-value is the + // value string. + return { + name, value, ...parseUnparsedAttributes(unparsedAttributes) + } +} + +/** + * Parses the remaining attributes of a set-cookie header + * @see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4 + * @param {string} unparsedAttributes + * @param {[Object.]={}} cookieAttributeList + */ +function parseUnparsedAttributes (unparsedAttributes, cookieAttributeList = {}) { + // 1. If the unparsed-attributes string is empty, skip the rest of + // these steps. + if (unparsedAttributes.length === 0) { + return cookieAttributeList + } + + // 2. Discard the first character of the unparsed-attributes (which + // will be a %x3B (";") character). + assert(unparsedAttributes[0] === ';') + unparsedAttributes = unparsedAttributes.slice(1) + + let cookieAv = '' + + // 3. If the remaining unparsed-attributes contains a %x3B (";") + // character: + if (unparsedAttributes.includes(';')) { + // 1. Consume the characters of the unparsed-attributes up to, but + // not including, the first %x3B (";") character. + cookieAv = collectASequenceOfCodePointsFast( + ';', + unparsedAttributes, + { position: 0 } + ) + unparsedAttributes = unparsedAttributes.slice(cookieAv.length) + } else { + // Otherwise: + + // 1. Consume the remainder of the unparsed-attributes. + cookieAv = unparsedAttributes + unparsedAttributes = '' + } + + // Let the cookie-av string be the characters consumed in this step. + + let attributeName = '' + let attributeValue = '' + + // 4. If the cookie-av string contains a %x3D ("=") character: + if (cookieAv.includes('=')) { + // 1. The (possibly empty) attribute-name string consists of the + // characters up to, but not including, the first %x3D ("=") + // character, and the (possibly empty) attribute-value string + // consists of the characters after the first %x3D ("=") + // character. + const position = { position: 0 } + + attributeName = collectASequenceOfCodePointsFast( + '=', + cookieAv, + position + ) + attributeValue = cookieAv.slice(position.position + 1) + } else { + // Otherwise: + + // 1. The attribute-name string consists of the entire cookie-av + // string, and the attribute-value string is empty. + attributeName = cookieAv + } + + // 5. Remove any leading or trailing WSP characters from the attribute- + // name string and the attribute-value string. + attributeName = attributeName.trim() + attributeValue = attributeValue.trim() + + // 6. If the attribute-value is longer than 1024 octets, ignore the + // cookie-av string and return to Step 1 of this algorithm. + if (attributeValue.length > maxAttributeValueSize) { + return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) + } + + // 7. Process the attribute-name and attribute-value according to the + // requirements in the following subsections. (Notice that + // attributes with unrecognized attribute-names are ignored.) + const attributeNameLowercase = attributeName.toLowerCase() + + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1 + // If the attribute-name case-insensitively matches the string + // "Expires", the user agent MUST process the cookie-av as follows. + if (attributeNameLowercase === 'expires') { + // 1. Let the expiry-time be the result of parsing the attribute-value + // as cookie-date (see Section 5.1.1). + const expiryTime = new Date(attributeValue) + + // 2. If the attribute-value failed to parse as a cookie date, ignore + // the cookie-av. + + cookieAttributeList.expires = expiryTime + } else if (attributeNameLowercase === 'max-age') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2 + // If the attribute-name case-insensitively matches the string "Max- + // Age", the user agent MUST process the cookie-av as follows. + + // 1. If the first character of the attribute-value is not a DIGIT or a + // "-" character, ignore the cookie-av. + const charCode = attributeValue.charCodeAt(0) + + if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') { + return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) + } + + // 2. If the remainder of attribute-value contains a non-DIGIT + // character, ignore the cookie-av. + if (!/^\d+$/.test(attributeValue)) { + return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) + } + + // 3. Let delta-seconds be the attribute-value converted to an integer. + const deltaSeconds = Number(attributeValue) + + // 4. Let cookie-age-limit be the maximum age of the cookie (which + // SHOULD be 400 days or less, see Section 4.1.2.2). + + // 5. Set delta-seconds to the smaller of its present value and cookie- + // age-limit. + // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs) + + // 6. If delta-seconds is less than or equal to zero (0), let expiry- + // time be the earliest representable date and time. Otherwise, let + // the expiry-time be the current date and time plus delta-seconds + // seconds. + // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds + + // 7. Append an attribute to the cookie-attribute-list with an + // attribute-name of Max-Age and an attribute-value of expiry-time. + cookieAttributeList.maxAge = deltaSeconds + } else if (attributeNameLowercase === 'domain') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3 + // If the attribute-name case-insensitively matches the string "Domain", + // the user agent MUST process the cookie-av as follows. + + // 1. Let cookie-domain be the attribute-value. + let cookieDomain = attributeValue + + // 2. If cookie-domain starts with %x2E ("."), let cookie-domain be + // cookie-domain without its leading %x2E ("."). + if (cookieDomain[0] === '.') { + cookieDomain = cookieDomain.slice(1) + } + + // 3. Convert the cookie-domain to lower case. + cookieDomain = cookieDomain.toLowerCase() + + // 4. Append an attribute to the cookie-attribute-list with an + // attribute-name of Domain and an attribute-value of cookie-domain. + cookieAttributeList.domain = cookieDomain + } else if (attributeNameLowercase === 'path') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4 + // If the attribute-name case-insensitively matches the string "Path", + // the user agent MUST process the cookie-av as follows. + + // 1. If the attribute-value is empty or if the first character of the + // attribute-value is not %x2F ("/"): + let cookiePath = '' + if (attributeValue.length === 0 || attributeValue[0] !== '/') { + // 1. Let cookie-path be the default-path. + cookiePath = '/' + } else { + // Otherwise: + + // 1. Let cookie-path be the attribute-value. + cookiePath = attributeValue + } + + // 2. Append an attribute to the cookie-attribute-list with an + // attribute-name of Path and an attribute-value of cookie-path. + cookieAttributeList.path = cookiePath + } else if (attributeNameLowercase === 'secure') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5 + // If the attribute-name case-insensitively matches the string "Secure", + // the user agent MUST append an attribute to the cookie-attribute-list + // with an attribute-name of Secure and an empty attribute-value. + + cookieAttributeList.secure = true + } else if (attributeNameLowercase === 'httponly') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6 + // If the attribute-name case-insensitively matches the string + // "HttpOnly", the user agent MUST append an attribute to the cookie- + // attribute-list with an attribute-name of HttpOnly and an empty + // attribute-value. + + cookieAttributeList.httpOnly = true + } else if (attributeNameLowercase === 'samesite') { + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7 + // If the attribute-name case-insensitively matches the string + // "SameSite", the user agent MUST process the cookie-av as follows: + + // 1. Let enforcement be "Default". + let enforcement = 'Default' + + const attributeValueLowercase = attributeValue.toLowerCase() + // 2. If cookie-av's attribute-value is a case-insensitive match for + // "None", set enforcement to "None". + if (attributeValueLowercase.includes('none')) { + enforcement = 'None' + } + + // 3. If cookie-av's attribute-value is a case-insensitive match for + // "Strict", set enforcement to "Strict". + if (attributeValueLowercase.includes('strict')) { + enforcement = 'Strict' + } + + // 4. If cookie-av's attribute-value is a case-insensitive match for + // "Lax", set enforcement to "Lax". + if (attributeValueLowercase.includes('lax')) { + enforcement = 'Lax' + } + + // 5. Append an attribute to the cookie-attribute-list with an + // attribute-name of "SameSite" and an attribute-value of + // enforcement. + cookieAttributeList.sameSite = enforcement + } else { + cookieAttributeList.unparsed ??= [] + + cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`) + } + + // 8. Return to Step 1 of this algorithm. + return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList) +} + +module.exports = { + parseSetCookie, + parseUnparsedAttributes +} + + +/***/ }), + +/***/ 3121: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const assert = __nccwpck_require__(9491) +const { kHeadersList } = __nccwpck_require__(2785) + +function isCTLExcludingHtab (value) { + if (value.length === 0) { + return false + } + + for (const char of value) { + const code = char.charCodeAt(0) + + if ( + (code >= 0x00 || code <= 0x08) || + (code >= 0x0A || code <= 0x1F) || + code === 0x7F + ) { + return false + } + } +} + +/** + CHAR = + token = 1* + separators = "(" | ")" | "<" | ">" | "@" + | "," | ";" | ":" | "\" | <"> + | "/" | "[" | "]" | "?" | "=" + | "{" | "}" | SP | HT + * @param {string} name + */ +function validateCookieName (name) { + for (const char of name) { + const code = char.charCodeAt(0) + + if ( + (code <= 0x20 || code > 0x7F) || + char === '(' || + char === ')' || + char === '>' || + char === '<' || + char === '@' || + char === ',' || + char === ';' || + char === ':' || + char === '\\' || + char === '"' || + char === '/' || + char === '[' || + char === ']' || + char === '?' || + char === '=' || + char === '{' || + char === '}' + ) { + throw new Error('Invalid cookie name') + } + } +} + +/** + cookie-value = *cookie-octet / ( DQUOTE *cookie-octet DQUOTE ) + cookie-octet = %x21 / %x23-2B / %x2D-3A / %x3C-5B / %x5D-7E + ; US-ASCII characters excluding CTLs, + ; whitespace DQUOTE, comma, semicolon, + ; and backslash + * @param {string} value + */ +function validateCookieValue (value) { + for (const char of value) { + const code = char.charCodeAt(0) + + if ( + code < 0x21 || // exclude CTLs (0-31) + code === 0x22 || + code === 0x2C || + code === 0x3B || + code === 0x5C || + code > 0x7E // non-ascii + ) { + throw new Error('Invalid header value') + } + } +} + +/** + * path-value = + * @param {string} path + */ +function validateCookiePath (path) { + for (const char of path) { + const code = char.charCodeAt(0) + + if (code < 0x21 || char === ';') { + throw new Error('Invalid cookie path') + } + } +} + +/** + * I have no idea why these values aren't allowed to be honest, + * but Deno tests these. - Khafra + * @param {string} domain + */ +function validateCookieDomain (domain) { + if ( + domain.startsWith('-') || + domain.endsWith('.') || + domain.endsWith('-') + ) { + throw new Error('Invalid cookie domain') + } +} + +/** + * @see https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1 + * @param {number|Date} date + IMF-fixdate = day-name "," SP date1 SP time-of-day SP GMT + ; fixed length/zone/capitalization subset of the format + ; see Section 3.3 of [RFC5322] + + day-name = %x4D.6F.6E ; "Mon", case-sensitive + / %x54.75.65 ; "Tue", case-sensitive + / %x57.65.64 ; "Wed", case-sensitive + / %x54.68.75 ; "Thu", case-sensitive + / %x46.72.69 ; "Fri", case-sensitive + / %x53.61.74 ; "Sat", case-sensitive + / %x53.75.6E ; "Sun", case-sensitive + date1 = day SP month SP year + ; e.g., 02 Jun 1982 + + day = 2DIGIT + month = %x4A.61.6E ; "Jan", case-sensitive + / %x46.65.62 ; "Feb", case-sensitive + / %x4D.61.72 ; "Mar", case-sensitive + / %x41.70.72 ; "Apr", case-sensitive + / %x4D.61.79 ; "May", case-sensitive + / %x4A.75.6E ; "Jun", case-sensitive + / %x4A.75.6C ; "Jul", case-sensitive + / %x41.75.67 ; "Aug", case-sensitive + / %x53.65.70 ; "Sep", case-sensitive + / %x4F.63.74 ; "Oct", case-sensitive + / %x4E.6F.76 ; "Nov", case-sensitive + / %x44.65.63 ; "Dec", case-sensitive + year = 4DIGIT + + GMT = %x47.4D.54 ; "GMT", case-sensitive + + time-of-day = hour ":" minute ":" second + ; 00:00:00 - 23:59:60 (leap second) + + hour = 2DIGIT + minute = 2DIGIT + second = 2DIGIT + */ +function toIMFDate (date) { + if (typeof date === 'number') { + date = new Date(date) + } + + const days = [ + 'Sun', 'Mon', 'Tue', 'Wed', + 'Thu', 'Fri', 'Sat' + ] + + const months = [ + 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' + ] + + const dayName = days[date.getUTCDay()] + const day = date.getUTCDate().toString().padStart(2, '0') + const month = months[date.getUTCMonth()] + const year = date.getUTCFullYear() + const hour = date.getUTCHours().toString().padStart(2, '0') + const minute = date.getUTCMinutes().toString().padStart(2, '0') + const second = date.getUTCSeconds().toString().padStart(2, '0') + + return `${dayName}, ${day} ${month} ${year} ${hour}:${minute}:${second} GMT` +} + +/** + max-age-av = "Max-Age=" non-zero-digit *DIGIT + ; In practice, both expires-av and max-age-av + ; are limited to dates representable by the + ; user agent. + * @param {number} maxAge + */ +function validateCookieMaxAge (maxAge) { + if (maxAge < 0) { + throw new Error('Invalid cookie max-age') + } +} + +/** + * @see https://www.rfc-editor.org/rfc/rfc6265#section-4.1.1 + * @param {import('./index').Cookie} cookie + */ +function stringify (cookie) { + if (cookie.name.length === 0) { + return null + } + + validateCookieName(cookie.name) + validateCookieValue(cookie.value) + + const out = [`${cookie.name}=${cookie.value}`] + + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.1 + // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-cookie-prefixes-00#section-3.2 + if (cookie.name.startsWith('__Secure-')) { + cookie.secure = true + } + + if (cookie.name.startsWith('__Host-')) { + cookie.secure = true + cookie.domain = null + cookie.path = '/' + } + + if (cookie.secure) { + out.push('Secure') + } + + if (cookie.httpOnly) { + out.push('HttpOnly') + } + + if (typeof cookie.maxAge === 'number') { + validateCookieMaxAge(cookie.maxAge) + out.push(`Max-Age=${cookie.maxAge}`) + } + + if (cookie.domain) { + validateCookieDomain(cookie.domain) + out.push(`Domain=${cookie.domain}`) + } + + if (cookie.path) { + validateCookiePath(cookie.path) + out.push(`Path=${cookie.path}`) + } + + if (cookie.expires && cookie.expires.toString() !== 'Invalid Date') { + out.push(`Expires=${toIMFDate(cookie.expires)}`) + } + + if (cookie.sameSite) { + out.push(`SameSite=${cookie.sameSite}`) + } + + for (const part of cookie.unparsed) { + if (!part.includes('=')) { + throw new Error('Invalid unparsed') + } + + const [key, ...value] = part.split('=') + + out.push(`${key.trim()}=${value.join('=')}`) + } + + return out.join('; ') +} + +let kHeadersListNode + +function getHeadersList (headers) { + if (headers[kHeadersList]) { + return headers[kHeadersList] + } + + if (!kHeadersListNode) { + kHeadersListNode = Object.getOwnPropertySymbols(headers).find( + (symbol) => symbol.description === 'headers list' + ) + + assert(kHeadersListNode, 'Headers cannot be parsed') + } + + const headersList = headers[kHeadersListNode] + assert(headersList) + + return headersList +} + +module.exports = { + isCTLExcludingHtab, + stringify, + getHeadersList +} + + +/***/ }), + +/***/ 2067: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const net = __nccwpck_require__(1808) +const assert = __nccwpck_require__(9491) +const util = __nccwpck_require__(3983) +const { InvalidArgumentError, ConnectTimeoutError } = __nccwpck_require__(8045) + +let tls // include tls conditionally since it is not always available + +// TODO: session re-use does not wait for the first +// connection to resolve the session and might therefore +// resolve the same servername multiple times even when +// re-use is enabled. + +let SessionCache +// FIXME: remove workaround when the Node bug is fixed +// https://github.com/nodejs/node/issues/49344#issuecomment-1741776308 +if (global.FinalizationRegistry && !process.env.NODE_V8_COVERAGE) { + SessionCache = class WeakSessionCache { + constructor (maxCachedSessions) { + this._maxCachedSessions = maxCachedSessions + this._sessionCache = new Map() + this._sessionRegistry = new global.FinalizationRegistry((key) => { + if (this._sessionCache.size < this._maxCachedSessions) { + return + } + + const ref = this._sessionCache.get(key) + if (ref !== undefined && ref.deref() === undefined) { + this._sessionCache.delete(key) + } + }) + } + + get (sessionKey) { + const ref = this._sessionCache.get(sessionKey) + return ref ? ref.deref() : null + } + + set (sessionKey, session) { + if (this._maxCachedSessions === 0) { + return + } + + this._sessionCache.set(sessionKey, new WeakRef(session)) + this._sessionRegistry.register(session, sessionKey) + } + } +} else { + SessionCache = class SimpleSessionCache { + constructor (maxCachedSessions) { + this._maxCachedSessions = maxCachedSessions + this._sessionCache = new Map() + } + + get (sessionKey) { + return this._sessionCache.get(sessionKey) + } + + set (sessionKey, session) { + if (this._maxCachedSessions === 0) { + return + } + + if (this._sessionCache.size >= this._maxCachedSessions) { + // remove the oldest session + const { value: oldestKey } = this._sessionCache.keys().next() + this._sessionCache.delete(oldestKey) + } + + this._sessionCache.set(sessionKey, session) + } + } +} + +function buildConnector ({ allowH2, maxCachedSessions, socketPath, timeout, ...opts }) { + if (maxCachedSessions != null && (!Number.isInteger(maxCachedSessions) || maxCachedSessions < 0)) { + throw new InvalidArgumentError('maxCachedSessions must be a positive integer or zero') + } + + const options = { path: socketPath, ...opts } + const sessionCache = new SessionCache(maxCachedSessions == null ? 100 : maxCachedSessions) + timeout = timeout == null ? 10e3 : timeout + allowH2 = allowH2 != null ? allowH2 : false + return function connect ({ hostname, host, protocol, port, servername, localAddress, httpSocket }, callback) { + let socket + if (protocol === 'https:') { + if (!tls) { + tls = __nccwpck_require__(4404) + } + servername = servername || options.servername || util.getServerName(host) || null + + const sessionKey = servername || hostname + const session = sessionCache.get(sessionKey) || null + + assert(sessionKey) + + socket = tls.connect({ + highWaterMark: 16384, // TLS in node can't have bigger HWM anyway... + ...options, + servername, + session, + localAddress, + // TODO(HTTP/2): Add support for h2c + ALPNProtocols: allowH2 ? ['http/1.1', 'h2'] : ['http/1.1'], + socket: httpSocket, // upgrade socket connection + port: port || 443, + host: hostname + }) + + socket + .on('session', function (session) { + // TODO (fix): Can a session become invalid once established? Don't think so? + sessionCache.set(sessionKey, session) + }) + } else { + assert(!httpSocket, 'httpSocket can only be sent on TLS update') + socket = net.connect({ + highWaterMark: 64 * 1024, // Same as nodejs fs streams. + ...options, + localAddress, + port: port || 80, + host: hostname + }) + } + + // Set TCP keep alive options on the socket here instead of in connect() for the case of assigning the socket + if (options.keepAlive == null || options.keepAlive) { + const keepAliveInitialDelay = options.keepAliveInitialDelay === undefined ? 60e3 : options.keepAliveInitialDelay + socket.setKeepAlive(true, keepAliveInitialDelay) + } + + const cancelTimeout = setupTimeout(() => onConnectTimeout(socket), timeout) + + socket + .setNoDelay(true) + .once(protocol === 'https:' ? 'secureConnect' : 'connect', function () { + cancelTimeout() + + if (callback) { + const cb = callback + callback = null + cb(null, this) + } + }) + .on('error', function (err) { + cancelTimeout() + + if (callback) { + const cb = callback + callback = null + cb(err) + } + }) + + return socket + } +} + +function setupTimeout (onConnectTimeout, timeout) { + if (!timeout) { + return () => {} + } + + let s1 = null + let s2 = null + const timeoutId = setTimeout(() => { + // setImmediate is added to make sure that we priotorise socket error events over timeouts + s1 = setImmediate(() => { + if (process.platform === 'win32') { + // Windows needs an extra setImmediate probably due to implementation differences in the socket logic + s2 = setImmediate(() => onConnectTimeout()) + } else { + onConnectTimeout() + } + }) + }, timeout) + return () => { + clearTimeout(timeoutId) + clearImmediate(s1) + clearImmediate(s2) + } +} + +function onConnectTimeout (socket) { + util.destroy(socket, new ConnectTimeoutError()) +} + +module.exports = buildConnector + + +/***/ }), + +/***/ 8045: +/***/ ((module) => { + +"use strict"; + + +class UndiciError extends Error { + constructor (message) { + super(message) + this.name = 'UndiciError' + this.code = 'UND_ERR' + } +} + +class ConnectTimeoutError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, ConnectTimeoutError) + this.name = 'ConnectTimeoutError' + this.message = message || 'Connect Timeout Error' + this.code = 'UND_ERR_CONNECT_TIMEOUT' + } +} + +class HeadersTimeoutError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, HeadersTimeoutError) + this.name = 'HeadersTimeoutError' + this.message = message || 'Headers Timeout Error' + this.code = 'UND_ERR_HEADERS_TIMEOUT' + } +} + +class HeadersOverflowError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, HeadersOverflowError) + this.name = 'HeadersOverflowError' + this.message = message || 'Headers Overflow Error' + this.code = 'UND_ERR_HEADERS_OVERFLOW' + } +} + +class BodyTimeoutError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, BodyTimeoutError) + this.name = 'BodyTimeoutError' + this.message = message || 'Body Timeout Error' + this.code = 'UND_ERR_BODY_TIMEOUT' + } +} + +class ResponseStatusCodeError extends UndiciError { + constructor (message, statusCode, headers, body) { + super(message) + Error.captureStackTrace(this, ResponseStatusCodeError) + this.name = 'ResponseStatusCodeError' + this.message = message || 'Response Status Code Error' + this.code = 'UND_ERR_RESPONSE_STATUS_CODE' + this.body = body + this.status = statusCode + this.statusCode = statusCode + this.headers = headers + } +} + +class InvalidArgumentError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, InvalidArgumentError) + this.name = 'InvalidArgumentError' + this.message = message || 'Invalid Argument Error' + this.code = 'UND_ERR_INVALID_ARG' + } +} + +class InvalidReturnValueError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, InvalidReturnValueError) + this.name = 'InvalidReturnValueError' + this.message = message || 'Invalid Return Value Error' + this.code = 'UND_ERR_INVALID_RETURN_VALUE' + } +} + +class RequestAbortedError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, RequestAbortedError) + this.name = 'AbortError' + this.message = message || 'Request aborted' + this.code = 'UND_ERR_ABORTED' + } +} + +class InformationalError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, InformationalError) + this.name = 'InformationalError' + this.message = message || 'Request information' + this.code = 'UND_ERR_INFO' + } +} + +class RequestContentLengthMismatchError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, RequestContentLengthMismatchError) + this.name = 'RequestContentLengthMismatchError' + this.message = message || 'Request body length does not match content-length header' + this.code = 'UND_ERR_REQ_CONTENT_LENGTH_MISMATCH' + } +} + +class ResponseContentLengthMismatchError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, ResponseContentLengthMismatchError) + this.name = 'ResponseContentLengthMismatchError' + this.message = message || 'Response body length does not match content-length header' + this.code = 'UND_ERR_RES_CONTENT_LENGTH_MISMATCH' + } +} + +class ClientDestroyedError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, ClientDestroyedError) + this.name = 'ClientDestroyedError' + this.message = message || 'The client is destroyed' + this.code = 'UND_ERR_DESTROYED' + } +} + +class ClientClosedError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, ClientClosedError) + this.name = 'ClientClosedError' + this.message = message || 'The client is closed' + this.code = 'UND_ERR_CLOSED' + } +} + +class SocketError extends UndiciError { + constructor (message, socket) { + super(message) + Error.captureStackTrace(this, SocketError) + this.name = 'SocketError' + this.message = message || 'Socket error' + this.code = 'UND_ERR_SOCKET' + this.socket = socket + } +} + +class NotSupportedError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, NotSupportedError) + this.name = 'NotSupportedError' + this.message = message || 'Not supported error' + this.code = 'UND_ERR_NOT_SUPPORTED' + } +} + +class BalancedPoolMissingUpstreamError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, NotSupportedError) + this.name = 'MissingUpstreamError' + this.message = message || 'No upstream has been added to the BalancedPool' + this.code = 'UND_ERR_BPL_MISSING_UPSTREAM' + } +} + +class HTTPParserError extends Error { + constructor (message, code, data) { + super(message) + Error.captureStackTrace(this, HTTPParserError) + this.name = 'HTTPParserError' + this.code = code ? `HPE_${code}` : undefined + this.data = data ? data.toString() : undefined + } +} + +class ResponseExceededMaxSizeError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, ResponseExceededMaxSizeError) + this.name = 'ResponseExceededMaxSizeError' + this.message = message || 'Response content exceeded max size' + this.code = 'UND_ERR_RES_EXCEEDED_MAX_SIZE' + } +} + +module.exports = { + HTTPParserError, + UndiciError, + HeadersTimeoutError, + HeadersOverflowError, + BodyTimeoutError, + RequestContentLengthMismatchError, + ConnectTimeoutError, + ResponseStatusCodeError, + InvalidArgumentError, + InvalidReturnValueError, + RequestAbortedError, + ClientDestroyedError, + ClientClosedError, + InformationalError, + SocketError, + NotSupportedError, + ResponseContentLengthMismatchError, + BalancedPoolMissingUpstreamError, + ResponseExceededMaxSizeError +} + + +/***/ }), + +/***/ 2905: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { + InvalidArgumentError, + NotSupportedError +} = __nccwpck_require__(8045) +const assert = __nccwpck_require__(9491) +const { kHTTP2BuildRequest, kHTTP2CopyHeaders, kHTTP1BuildRequest } = __nccwpck_require__(2785) +const util = __nccwpck_require__(3983) + +// tokenRegExp and headerCharRegex have been lifted from +// https://github.com/nodejs/node/blob/main/lib/_http_common.js + +/** + * Verifies that the given val is a valid HTTP token + * per the rules defined in RFC 7230 + * See https://tools.ietf.org/html/rfc7230#section-3.2.6 + */ +const tokenRegExp = /^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/ + +/** + * Matches if val contains an invalid field-vchar + * field-value = *( field-content / obs-fold ) + * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ] + * field-vchar = VCHAR / obs-text + */ +const headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/ + +// Verifies that a given path is valid does not contain control chars \x00 to \x20 +const invalidPathRegex = /[^\u0021-\u00ff]/ + +const kHandler = Symbol('handler') + +const channels = {} + +let extractBody + +try { + const diagnosticsChannel = __nccwpck_require__(7643) + channels.create = diagnosticsChannel.channel('undici:request:create') + channels.bodySent = diagnosticsChannel.channel('undici:request:bodySent') + channels.headers = diagnosticsChannel.channel('undici:request:headers') + channels.trailers = diagnosticsChannel.channel('undici:request:trailers') + channels.error = diagnosticsChannel.channel('undici:request:error') +} catch { + channels.create = { hasSubscribers: false } + channels.bodySent = { hasSubscribers: false } + channels.headers = { hasSubscribers: false } + channels.trailers = { hasSubscribers: false } + channels.error = { hasSubscribers: false } +} + +class Request { + constructor (origin, { + path, + method, + body, + headers, + query, + idempotent, + blocking, + upgrade, + headersTimeout, + bodyTimeout, + reset, + throwOnError, + expectContinue + }, handler) { + if (typeof path !== 'string') { + throw new InvalidArgumentError('path must be a string') + } else if ( + path[0] !== '/' && + !(path.startsWith('http://') || path.startsWith('https://')) && + method !== 'CONNECT' + ) { + throw new InvalidArgumentError('path must be an absolute URL or start with a slash') + } else if (invalidPathRegex.exec(path) !== null) { + throw new InvalidArgumentError('invalid request path') + } + + if (typeof method !== 'string') { + throw new InvalidArgumentError('method must be a string') + } else if (tokenRegExp.exec(method) === null) { + throw new InvalidArgumentError('invalid request method') + } + + if (upgrade && typeof upgrade !== 'string') { + throw new InvalidArgumentError('upgrade must be a string') + } + + if (headersTimeout != null && (!Number.isFinite(headersTimeout) || headersTimeout < 0)) { + throw new InvalidArgumentError('invalid headersTimeout') + } + + if (bodyTimeout != null && (!Number.isFinite(bodyTimeout) || bodyTimeout < 0)) { + throw new InvalidArgumentError('invalid bodyTimeout') + } + + if (reset != null && typeof reset !== 'boolean') { + throw new InvalidArgumentError('invalid reset') + } + + if (expectContinue != null && typeof expectContinue !== 'boolean') { + throw new InvalidArgumentError('invalid expectContinue') + } + + this.headersTimeout = headersTimeout + + this.bodyTimeout = bodyTimeout + + this.throwOnError = throwOnError === true + + this.method = method + + if (body == null) { + this.body = null + } else if (util.isStream(body)) { + this.body = body + } else if (util.isBuffer(body)) { + this.body = body.byteLength ? body : null + } else if (ArrayBuffer.isView(body)) { + this.body = body.buffer.byteLength ? Buffer.from(body.buffer, body.byteOffset, body.byteLength) : null + } else if (body instanceof ArrayBuffer) { + this.body = body.byteLength ? Buffer.from(body) : null + } else if (typeof body === 'string') { + this.body = body.length ? Buffer.from(body) : null + } else if (util.isFormDataLike(body) || util.isIterable(body) || util.isBlobLike(body)) { + this.body = body + } else { + throw new InvalidArgumentError('body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable') + } + + this.completed = false + + this.aborted = false + + this.upgrade = upgrade || null + + this.path = query ? util.buildURL(path, query) : path + + this.origin = origin + + this.idempotent = idempotent == null + ? method === 'HEAD' || method === 'GET' + : idempotent + + this.blocking = blocking == null ? false : blocking + + this.reset = reset == null ? null : reset + + this.host = null + + this.contentLength = null + + this.contentType = null + + this.headers = '' + + // Only for H2 + this.expectContinue = expectContinue != null ? expectContinue : false + + if (Array.isArray(headers)) { + if (headers.length % 2 !== 0) { + throw new InvalidArgumentError('headers array must be even') + } + for (let i = 0; i < headers.length; i += 2) { + processHeader(this, headers[i], headers[i + 1]) + } + } else if (headers && typeof headers === 'object') { + const keys = Object.keys(headers) + for (let i = 0; i < keys.length; i++) { + const key = keys[i] + processHeader(this, key, headers[key]) + } + } else if (headers != null) { + throw new InvalidArgumentError('headers must be an object or an array') + } + + if (util.isFormDataLike(this.body)) { + if (util.nodeMajor < 16 || (util.nodeMajor === 16 && util.nodeMinor < 8)) { + throw new InvalidArgumentError('Form-Data bodies are only supported in node v16.8 and newer.') + } + + if (!extractBody) { + extractBody = (__nccwpck_require__(1472).extractBody) + } + + const [bodyStream, contentType] = extractBody(body) + if (this.contentType == null) { + this.contentType = contentType + this.headers += `content-type: ${contentType}\r\n` + } + this.body = bodyStream.stream + this.contentLength = bodyStream.length + } else if (util.isBlobLike(body) && this.contentType == null && body.type) { + this.contentType = body.type + this.headers += `content-type: ${body.type}\r\n` + } + + util.validateHandler(handler, method, upgrade) + + this.servername = util.getServerName(this.host) + + this[kHandler] = handler + + if (channels.create.hasSubscribers) { + channels.create.publish({ request: this }) + } + } + + onBodySent (chunk) { + if (this[kHandler].onBodySent) { + try { + this[kHandler].onBodySent(chunk) + } catch (err) { + this.onError(err) + } + } + } + + onRequestSent () { + if (channels.bodySent.hasSubscribers) { + channels.bodySent.publish({ request: this }) + } + + if (this[kHandler].onRequestSent) { + try { + this[kHandler].onRequestSent() + } catch (err) { + this.onError(err) + } + } + } + + onConnect (abort) { + assert(!this.aborted) + assert(!this.completed) + + return this[kHandler].onConnect(abort) + } + + onHeaders (statusCode, headers, resume, statusText) { + assert(!this.aborted) + assert(!this.completed) + + if (channels.headers.hasSubscribers) { + channels.headers.publish({ request: this, response: { statusCode, headers, statusText } }) + } + + return this[kHandler].onHeaders(statusCode, headers, resume, statusText) + } + + onData (chunk) { + assert(!this.aborted) + assert(!this.completed) + + return this[kHandler].onData(chunk) + } + + onUpgrade (statusCode, headers, socket) { + assert(!this.aborted) + assert(!this.completed) + + return this[kHandler].onUpgrade(statusCode, headers, socket) + } + + onComplete (trailers) { + assert(!this.aborted) + + this.completed = true + if (channels.trailers.hasSubscribers) { + channels.trailers.publish({ request: this, trailers }) + } + return this[kHandler].onComplete(trailers) + } + + onError (error) { + if (channels.error.hasSubscribers) { + channels.error.publish({ request: this, error }) + } + + if (this.aborted) { + return + } + this.aborted = true + return this[kHandler].onError(error) + } + + // TODO: adjust to support H2 + addHeader (key, value) { + processHeader(this, key, value) + return this + } + + static [kHTTP1BuildRequest] (origin, opts, handler) { + // TODO: Migrate header parsing here, to make Requests + // HTTP agnostic + return new Request(origin, opts, handler) + } + + static [kHTTP2BuildRequest] (origin, opts, handler) { + const headers = opts.headers + opts = { ...opts, headers: null } + + const request = new Request(origin, opts, handler) + + request.headers = {} + + if (Array.isArray(headers)) { + if (headers.length % 2 !== 0) { + throw new InvalidArgumentError('headers array must be even') + } + for (let i = 0; i < headers.length; i += 2) { + processHeader(request, headers[i], headers[i + 1], true) + } + } else if (headers && typeof headers === 'object') { + const keys = Object.keys(headers) + for (let i = 0; i < keys.length; i++) { + const key = keys[i] + processHeader(request, key, headers[key], true) + } + } else if (headers != null) { + throw new InvalidArgumentError('headers must be an object or an array') + } + + return request + } + + static [kHTTP2CopyHeaders] (raw) { + const rawHeaders = raw.split('\r\n') + const headers = {} + + for (const header of rawHeaders) { + const [key, value] = header.split(': ') + + if (value == null || value.length === 0) continue + + if (headers[key]) headers[key] += `,${value}` + else headers[key] = value + } + + return headers + } +} + +function processHeaderValue (key, val, skipAppend) { + if (val && typeof val === 'object') { + throw new InvalidArgumentError(`invalid ${key} header`) + } + + val = val != null ? `${val}` : '' + + if (headerCharRegex.exec(val) !== null) { + throw new InvalidArgumentError(`invalid ${key} header`) + } + + return skipAppend ? val : `${key}: ${val}\r\n` +} + +function processHeader (request, key, val, skipAppend = false) { + if (val && (typeof val === 'object' && !Array.isArray(val))) { + throw new InvalidArgumentError(`invalid ${key} header`) + } else if (val === undefined) { + return + } + + if ( + request.host === null && + key.length === 4 && + key.toLowerCase() === 'host' + ) { + if (headerCharRegex.exec(val) !== null) { + throw new InvalidArgumentError(`invalid ${key} header`) + } + // Consumed by Client + request.host = val + } else if ( + request.contentLength === null && + key.length === 14 && + key.toLowerCase() === 'content-length' + ) { + request.contentLength = parseInt(val, 10) + if (!Number.isFinite(request.contentLength)) { + throw new InvalidArgumentError('invalid content-length header') + } + } else if ( + request.contentType === null && + key.length === 12 && + key.toLowerCase() === 'content-type' + ) { + request.contentType = val + if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend) + else request.headers += processHeaderValue(key, val) + } else if ( + key.length === 17 && + key.toLowerCase() === 'transfer-encoding' + ) { + throw new InvalidArgumentError('invalid transfer-encoding header') + } else if ( + key.length === 10 && + key.toLowerCase() === 'connection' + ) { + const value = typeof val === 'string' ? val.toLowerCase() : null + if (value !== 'close' && value !== 'keep-alive') { + throw new InvalidArgumentError('invalid connection header') + } else if (value === 'close') { + request.reset = true + } + } else if ( + key.length === 10 && + key.toLowerCase() === 'keep-alive' + ) { + throw new InvalidArgumentError('invalid keep-alive header') + } else if ( + key.length === 7 && + key.toLowerCase() === 'upgrade' + ) { + throw new InvalidArgumentError('invalid upgrade header') + } else if ( + key.length === 6 && + key.toLowerCase() === 'expect' + ) { + throw new NotSupportedError('expect header not supported') + } else if (tokenRegExp.exec(key) === null) { + throw new InvalidArgumentError('invalid header key') + } else { + if (Array.isArray(val)) { + for (let i = 0; i < val.length; i++) { + if (skipAppend) { + if (request.headers[key]) request.headers[key] += `,${processHeaderValue(key, val[i], skipAppend)}` + else request.headers[key] = processHeaderValue(key, val[i], skipAppend) + } else { + request.headers += processHeaderValue(key, val[i]) + } + } + } else { + if (skipAppend) request.headers[key] = processHeaderValue(key, val, skipAppend) + else request.headers += processHeaderValue(key, val) + } + } +} + +module.exports = Request + + +/***/ }), + +/***/ 2785: +/***/ ((module) => { + +module.exports = { + kClose: Symbol('close'), + kDestroy: Symbol('destroy'), + kDispatch: Symbol('dispatch'), + kUrl: Symbol('url'), + kWriting: Symbol('writing'), + kResuming: Symbol('resuming'), + kQueue: Symbol('queue'), + kConnect: Symbol('connect'), + kConnecting: Symbol('connecting'), + kHeadersList: Symbol('headers list'), + kKeepAliveDefaultTimeout: Symbol('default keep alive timeout'), + kKeepAliveMaxTimeout: Symbol('max keep alive timeout'), + kKeepAliveTimeoutThreshold: Symbol('keep alive timeout threshold'), + kKeepAliveTimeoutValue: Symbol('keep alive timeout'), + kKeepAlive: Symbol('keep alive'), + kHeadersTimeout: Symbol('headers timeout'), + kBodyTimeout: Symbol('body timeout'), + kServerName: Symbol('server name'), + kLocalAddress: Symbol('local address'), + kHost: Symbol('host'), + kNoRef: Symbol('no ref'), + kBodyUsed: Symbol('used'), + kRunning: Symbol('running'), + kBlocking: Symbol('blocking'), + kPending: Symbol('pending'), + kSize: Symbol('size'), + kBusy: Symbol('busy'), + kQueued: Symbol('queued'), + kFree: Symbol('free'), + kConnected: Symbol('connected'), + kClosed: Symbol('closed'), + kNeedDrain: Symbol('need drain'), + kReset: Symbol('reset'), + kDestroyed: Symbol.for('nodejs.stream.destroyed'), + kMaxHeadersSize: Symbol('max headers size'), + kRunningIdx: Symbol('running index'), + kPendingIdx: Symbol('pending index'), + kError: Symbol('error'), + kClients: Symbol('clients'), + kClient: Symbol('client'), + kParser: Symbol('parser'), + kOnDestroyed: Symbol('destroy callbacks'), + kPipelining: Symbol('pipelining'), + kSocket: Symbol('socket'), + kHostHeader: Symbol('host header'), + kConnector: Symbol('connector'), + kStrictContentLength: Symbol('strict content length'), + kMaxRedirections: Symbol('maxRedirections'), + kMaxRequests: Symbol('maxRequestsPerClient'), + kProxy: Symbol('proxy agent options'), + kCounter: Symbol('socket request counter'), + kInterceptors: Symbol('dispatch interceptors'), + kMaxResponseSize: Symbol('max response size'), + kHTTP2Session: Symbol('http2Session'), + kHTTP2SessionState: Symbol('http2Session state'), + kHTTP2BuildRequest: Symbol('http2 build request'), + kHTTP1BuildRequest: Symbol('http1 build request'), + kHTTP2CopyHeaders: Symbol('http2 copy headers'), + kHTTPConnVersion: Symbol('http connection version') +} + + +/***/ }), + +/***/ 3983: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const assert = __nccwpck_require__(9491) +const { kDestroyed, kBodyUsed } = __nccwpck_require__(2785) +const { IncomingMessage } = __nccwpck_require__(3685) +const stream = __nccwpck_require__(2781) +const net = __nccwpck_require__(1808) +const { InvalidArgumentError } = __nccwpck_require__(8045) +const { Blob } = __nccwpck_require__(4300) +const nodeUtil = __nccwpck_require__(3837) +const { stringify } = __nccwpck_require__(3477) + +const [nodeMajor, nodeMinor] = process.versions.node.split('.').map(v => Number(v)) + +function nop () {} + +function isStream (obj) { + return obj && typeof obj === 'object' && typeof obj.pipe === 'function' && typeof obj.on === 'function' +} + +// based on https://github.com/node-fetch/fetch-blob/blob/8ab587d34080de94140b54f07168451e7d0b655e/index.js#L229-L241 (MIT License) +function isBlobLike (object) { + return (Blob && object instanceof Blob) || ( + object && + typeof object === 'object' && + (typeof object.stream === 'function' || + typeof object.arrayBuffer === 'function') && + /^(Blob|File)$/.test(object[Symbol.toStringTag]) + ) +} + +function buildURL (url, queryParams) { + if (url.includes('?') || url.includes('#')) { + throw new Error('Query params cannot be passed when url already contains "?" or "#".') + } + + const stringified = stringify(queryParams) + + if (stringified) { + url += '?' + stringified + } + + return url +} + +function parseURL (url) { + if (typeof url === 'string') { + url = new URL(url) + + if (!/^https?:/.test(url.origin || url.protocol)) { + throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.') + } + + return url + } + + if (!url || typeof url !== 'object') { + throw new InvalidArgumentError('Invalid URL: The URL argument must be a non-null object.') + } + + if (!/^https?:/.test(url.origin || url.protocol)) { + throw new InvalidArgumentError('Invalid URL protocol: the URL must start with `http:` or `https:`.') + } + + if (!(url instanceof URL)) { + if (url.port != null && url.port !== '' && !Number.isFinite(parseInt(url.port))) { + throw new InvalidArgumentError('Invalid URL: port must be a valid integer or a string representation of an integer.') + } + + if (url.path != null && typeof url.path !== 'string') { + throw new InvalidArgumentError('Invalid URL path: the path must be a string or null/undefined.') + } + + if (url.pathname != null && typeof url.pathname !== 'string') { + throw new InvalidArgumentError('Invalid URL pathname: the pathname must be a string or null/undefined.') + } + + if (url.hostname != null && typeof url.hostname !== 'string') { + throw new InvalidArgumentError('Invalid URL hostname: the hostname must be a string or null/undefined.') + } + + if (url.origin != null && typeof url.origin !== 'string') { + throw new InvalidArgumentError('Invalid URL origin: the origin must be a string or null/undefined.') + } + + const port = url.port != null + ? url.port + : (url.protocol === 'https:' ? 443 : 80) + let origin = url.origin != null + ? url.origin + : `${url.protocol}//${url.hostname}:${port}` + let path = url.path != null + ? url.path + : `${url.pathname || ''}${url.search || ''}` + + if (origin.endsWith('/')) { + origin = origin.substring(0, origin.length - 1) + } + + if (path && !path.startsWith('/')) { + path = `/${path}` + } + // new URL(path, origin) is unsafe when `path` contains an absolute URL + // From https://developer.mozilla.org/en-US/docs/Web/API/URL/URL: + // If first parameter is a relative URL, second param is required, and will be used as the base URL. + // If first parameter is an absolute URL, a given second param will be ignored. + url = new URL(origin + path) + } + + return url +} + +function parseOrigin (url) { + url = parseURL(url) + + if (url.pathname !== '/' || url.search || url.hash) { + throw new InvalidArgumentError('invalid url') + } + + return url +} + +function getHostname (host) { + if (host[0] === '[') { + const idx = host.indexOf(']') + + assert(idx !== -1) + return host.substr(1, idx - 1) + } + + const idx = host.indexOf(':') + if (idx === -1) return host + + return host.substr(0, idx) +} + +// IP addresses are not valid server names per RFC6066 +// > Currently, the only server names supported are DNS hostnames +function getServerName (host) { + if (!host) { + return null + } + + assert.strictEqual(typeof host, 'string') + + const servername = getHostname(host) + if (net.isIP(servername)) { + return '' + } + + return servername +} + +function deepClone (obj) { + return JSON.parse(JSON.stringify(obj)) +} + +function isAsyncIterable (obj) { + return !!(obj != null && typeof obj[Symbol.asyncIterator] === 'function') +} + +function isIterable (obj) { + return !!(obj != null && (typeof obj[Symbol.iterator] === 'function' || typeof obj[Symbol.asyncIterator] === 'function')) +} + +function bodyLength (body) { + if (body == null) { + return 0 + } else if (isStream(body)) { + const state = body._readableState + return state && state.objectMode === false && state.ended === true && Number.isFinite(state.length) + ? state.length + : null + } else if (isBlobLike(body)) { + return body.size != null ? body.size : null + } else if (isBuffer(body)) { + return body.byteLength + } + + return null +} + +function isDestroyed (stream) { + return !stream || !!(stream.destroyed || stream[kDestroyed]) +} + +function isReadableAborted (stream) { + const state = stream && stream._readableState + return isDestroyed(stream) && state && !state.endEmitted +} + +function destroy (stream, err) { + if (!isStream(stream) || isDestroyed(stream)) { + return + } + + if (typeof stream.destroy === 'function') { + if (Object.getPrototypeOf(stream).constructor === IncomingMessage) { + // See: https://github.com/nodejs/node/pull/38505/files + stream.socket = null + } + + stream.destroy(err) + } else if (err) { + process.nextTick((stream, err) => { + stream.emit('error', err) + }, stream, err) + } + + if (stream.destroyed !== true) { + stream[kDestroyed] = true + } +} + +const KEEPALIVE_TIMEOUT_EXPR = /timeout=(\d+)/ +function parseKeepAliveTimeout (val) { + const m = val.toString().match(KEEPALIVE_TIMEOUT_EXPR) + return m ? parseInt(m[1], 10) * 1000 : null +} + +function parseHeaders (headers, obj = {}) { + // For H2 support + if (!Array.isArray(headers)) return headers + + for (let i = 0; i < headers.length; i += 2) { + const key = headers[i].toString().toLowerCase() + let val = obj[key] + + if (!val) { + if (Array.isArray(headers[i + 1])) { + obj[key] = headers[i + 1] + } else { + obj[key] = headers[i + 1].toString('utf8') + } + } else { + if (!Array.isArray(val)) { + val = [val] + obj[key] = val + } + val.push(headers[i + 1].toString('utf8')) + } + } + + // See https://github.com/nodejs/node/pull/46528 + if ('content-length' in obj && 'content-disposition' in obj) { + obj['content-disposition'] = Buffer.from(obj['content-disposition']).toString('latin1') + } + + return obj +} + +function parseRawHeaders (headers) { + const ret = [] + let hasContentLength = false + let contentDispositionIdx = -1 + + for (let n = 0; n < headers.length; n += 2) { + const key = headers[n + 0].toString() + const val = headers[n + 1].toString('utf8') + + if (key.length === 14 && (key === 'content-length' || key.toLowerCase() === 'content-length')) { + ret.push(key, val) + hasContentLength = true + } else if (key.length === 19 && (key === 'content-disposition' || key.toLowerCase() === 'content-disposition')) { + contentDispositionIdx = ret.push(key, val) - 1 + } else { + ret.push(key, val) + } + } + + // See https://github.com/nodejs/node/pull/46528 + if (hasContentLength && contentDispositionIdx !== -1) { + ret[contentDispositionIdx] = Buffer.from(ret[contentDispositionIdx]).toString('latin1') + } + + return ret +} + +function isBuffer (buffer) { + // See, https://github.com/mcollina/undici/pull/319 + return buffer instanceof Uint8Array || Buffer.isBuffer(buffer) +} + +function validateHandler (handler, method, upgrade) { + if (!handler || typeof handler !== 'object') { + throw new InvalidArgumentError('handler must be an object') + } + + if (typeof handler.onConnect !== 'function') { + throw new InvalidArgumentError('invalid onConnect method') + } + + if (typeof handler.onError !== 'function') { + throw new InvalidArgumentError('invalid onError method') + } + + if (typeof handler.onBodySent !== 'function' && handler.onBodySent !== undefined) { + throw new InvalidArgumentError('invalid onBodySent method') + } + + if (upgrade || method === 'CONNECT') { + if (typeof handler.onUpgrade !== 'function') { + throw new InvalidArgumentError('invalid onUpgrade method') + } + } else { + if (typeof handler.onHeaders !== 'function') { + throw new InvalidArgumentError('invalid onHeaders method') + } + + if (typeof handler.onData !== 'function') { + throw new InvalidArgumentError('invalid onData method') + } + + if (typeof handler.onComplete !== 'function') { + throw new InvalidArgumentError('invalid onComplete method') + } + } +} + +// A body is disturbed if it has been read from and it cannot +// be re-used without losing state or data. +function isDisturbed (body) { + return !!(body && ( + stream.isDisturbed + ? stream.isDisturbed(body) || body[kBodyUsed] // TODO (fix): Why is body[kBodyUsed] needed? + : body[kBodyUsed] || + body.readableDidRead || + (body._readableState && body._readableState.dataEmitted) || + isReadableAborted(body) + )) +} + +function isErrored (body) { + return !!(body && ( + stream.isErrored + ? stream.isErrored(body) + : /state: 'errored'/.test(nodeUtil.inspect(body) + ))) +} + +function isReadable (body) { + return !!(body && ( + stream.isReadable + ? stream.isReadable(body) + : /state: 'readable'/.test(nodeUtil.inspect(body) + ))) +} + +function getSocketInfo (socket) { + return { + localAddress: socket.localAddress, + localPort: socket.localPort, + remoteAddress: socket.remoteAddress, + remotePort: socket.remotePort, + remoteFamily: socket.remoteFamily, + timeout: socket.timeout, + bytesWritten: socket.bytesWritten, + bytesRead: socket.bytesRead + } +} + +async function * convertIterableToBuffer (iterable) { + for await (const chunk of iterable) { + yield Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk) + } +} + +let ReadableStream +function ReadableStreamFrom (iterable) { + if (!ReadableStream) { + ReadableStream = (__nccwpck_require__(5356).ReadableStream) + } + + if (ReadableStream.from) { + return ReadableStream.from(convertIterableToBuffer(iterable)) + } + + let iterator + return new ReadableStream( + { + async start () { + iterator = iterable[Symbol.asyncIterator]() + }, + async pull (controller) { + const { done, value } = await iterator.next() + if (done) { + queueMicrotask(() => { + controller.close() + }) + } else { + const buf = Buffer.isBuffer(value) ? value : Buffer.from(value) + controller.enqueue(new Uint8Array(buf)) + } + return controller.desiredSize > 0 + }, + async cancel (reason) { + await iterator.return() + } + }, + 0 + ) +} + +// The chunk should be a FormData instance and contains +// all the required methods. +function isFormDataLike (object) { + return ( + object && + typeof object === 'object' && + typeof object.append === 'function' && + typeof object.delete === 'function' && + typeof object.get === 'function' && + typeof object.getAll === 'function' && + typeof object.has === 'function' && + typeof object.set === 'function' && + object[Symbol.toStringTag] === 'FormData' + ) +} + +function throwIfAborted (signal) { + if (!signal) { return } + if (typeof signal.throwIfAborted === 'function') { + signal.throwIfAborted() + } else { + if (signal.aborted) { + // DOMException not available < v17.0.0 + const err = new Error('The operation was aborted') + err.name = 'AbortError' + throw err + } + } +} + +let events +function addAbortListener (signal, listener) { + if (typeof Symbol.dispose === 'symbol') { + if (!events) { + events = __nccwpck_require__(2361) + } + if (typeof events.addAbortListener === 'function' && 'aborted' in signal) { + return events.addAbortListener(signal, listener) + } + } + if ('addEventListener' in signal) { + signal.addEventListener('abort', listener, { once: true }) + return () => signal.removeEventListener('abort', listener) + } + signal.addListener('abort', listener) + return () => signal.removeListener('abort', listener) +} + +const hasToWellFormed = !!String.prototype.toWellFormed + +/** + * @param {string} val + */ +function toUSVString (val) { + if (hasToWellFormed) { + return `${val}`.toWellFormed() + } else if (nodeUtil.toUSVString) { + return nodeUtil.toUSVString(val) + } + + return `${val}` +} + +const kEnumerableProperty = Object.create(null) +kEnumerableProperty.enumerable = true + +module.exports = { + kEnumerableProperty, + nop, + isDisturbed, + isErrored, + isReadable, + toUSVString, + isReadableAborted, + isBlobLike, + parseOrigin, + parseURL, + getServerName, + isStream, + isIterable, + isAsyncIterable, + isDestroyed, + parseRawHeaders, + parseHeaders, + parseKeepAliveTimeout, + destroy, + bodyLength, + deepClone, + ReadableStreamFrom, + isBuffer, + validateHandler, + getSocketInfo, + isFormDataLike, + buildURL, + throwIfAborted, + addAbortListener, + nodeMajor, + nodeMinor, + nodeHasAutoSelectFamily: nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 13) +} + + +/***/ }), + +/***/ 4839: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const Dispatcher = __nccwpck_require__(412) +const { + ClientDestroyedError, + ClientClosedError, + InvalidArgumentError +} = __nccwpck_require__(8045) +const { kDestroy, kClose, kDispatch, kInterceptors } = __nccwpck_require__(2785) + +const kDestroyed = Symbol('destroyed') +const kClosed = Symbol('closed') +const kOnDestroyed = Symbol('onDestroyed') +const kOnClosed = Symbol('onClosed') +const kInterceptedDispatch = Symbol('Intercepted Dispatch') + +class DispatcherBase extends Dispatcher { + constructor () { + super() + + this[kDestroyed] = false + this[kOnDestroyed] = null + this[kClosed] = false + this[kOnClosed] = [] + } + + get destroyed () { + return this[kDestroyed] + } + + get closed () { + return this[kClosed] + } + + get interceptors () { + return this[kInterceptors] + } + + set interceptors (newInterceptors) { + if (newInterceptors) { + for (let i = newInterceptors.length - 1; i >= 0; i--) { + const interceptor = this[kInterceptors][i] + if (typeof interceptor !== 'function') { + throw new InvalidArgumentError('interceptor must be an function') + } + } + } + + this[kInterceptors] = newInterceptors + } + + close (callback) { + if (callback === undefined) { + return new Promise((resolve, reject) => { + this.close((err, data) => { + return err ? reject(err) : resolve(data) + }) + }) + } + + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } + + if (this[kDestroyed]) { + queueMicrotask(() => callback(new ClientDestroyedError(), null)) + return + } + + if (this[kClosed]) { + if (this[kOnClosed]) { + this[kOnClosed].push(callback) + } else { + queueMicrotask(() => callback(null, null)) + } + return + } + + this[kClosed] = true + this[kOnClosed].push(callback) + + const onClosed = () => { + const callbacks = this[kOnClosed] + this[kOnClosed] = null + for (let i = 0; i < callbacks.length; i++) { + callbacks[i](null, null) + } + } + + // Should not error. + this[kClose]() + .then(() => this.destroy()) + .then(() => { + queueMicrotask(onClosed) + }) + } + + destroy (err, callback) { + if (typeof err === 'function') { + callback = err + err = null + } + + if (callback === undefined) { + return new Promise((resolve, reject) => { + this.destroy(err, (err, data) => { + return err ? /* istanbul ignore next: should never error */ reject(err) : resolve(data) + }) + }) + } + + if (typeof callback !== 'function') { + throw new InvalidArgumentError('invalid callback') + } + + if (this[kDestroyed]) { + if (this[kOnDestroyed]) { + this[kOnDestroyed].push(callback) + } else { + queueMicrotask(() => callback(null, null)) + } + return + } + + if (!err) { + err = new ClientDestroyedError() + } + + this[kDestroyed] = true + this[kOnDestroyed] = this[kOnDestroyed] || [] + this[kOnDestroyed].push(callback) + + const onDestroyed = () => { + const callbacks = this[kOnDestroyed] + this[kOnDestroyed] = null + for (let i = 0; i < callbacks.length; i++) { + callbacks[i](null, null) + } + } + + // Should not error. + this[kDestroy](err).then(() => { + queueMicrotask(onDestroyed) + }) + } + + [kInterceptedDispatch] (opts, handler) { + if (!this[kInterceptors] || this[kInterceptors].length === 0) { + this[kInterceptedDispatch] = this[kDispatch] + return this[kDispatch](opts, handler) + } + + let dispatch = this[kDispatch].bind(this) + for (let i = this[kInterceptors].length - 1; i >= 0; i--) { + dispatch = this[kInterceptors][i](dispatch) + } + this[kInterceptedDispatch] = dispatch + return dispatch(opts, handler) + } + + dispatch (opts, handler) { + if (!handler || typeof handler !== 'object') { + throw new InvalidArgumentError('handler must be an object') + } + + try { + if (!opts || typeof opts !== 'object') { + throw new InvalidArgumentError('opts must be an object.') + } + + if (this[kDestroyed] || this[kOnDestroyed]) { + throw new ClientDestroyedError() + } + + if (this[kClosed]) { + throw new ClientClosedError() + } + + return this[kInterceptedDispatch](opts, handler) + } catch (err) { + if (typeof handler.onError !== 'function') { + throw new InvalidArgumentError('invalid onError method') + } + + handler.onError(err) + + return false + } + } +} + +module.exports = DispatcherBase + + +/***/ }), + +/***/ 412: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const EventEmitter = __nccwpck_require__(2361) + +class Dispatcher extends EventEmitter { + dispatch () { + throw new Error('not implemented') + } + + close () { + throw new Error('not implemented') + } + + destroy () { + throw new Error('not implemented') + } +} + +module.exports = Dispatcher + + +/***/ }), + +/***/ 1472: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const Busboy = __nccwpck_require__(3438) +const util = __nccwpck_require__(3983) +const { + ReadableStreamFrom, + isBlobLike, + isReadableStreamLike, + readableStreamClose, + createDeferredPromise, + fullyReadBody +} = __nccwpck_require__(2538) +const { FormData } = __nccwpck_require__(2015) +const { kState } = __nccwpck_require__(5861) +const { webidl } = __nccwpck_require__(1744) +const { DOMException, structuredClone } = __nccwpck_require__(1037) +const { Blob, File: NativeFile } = __nccwpck_require__(4300) +const { kBodyUsed } = __nccwpck_require__(2785) +const assert = __nccwpck_require__(9491) +const { isErrored } = __nccwpck_require__(3983) +const { isUint8Array, isArrayBuffer } = __nccwpck_require__(9830) +const { File: UndiciFile } = __nccwpck_require__(8511) +const { parseMIMEType, serializeAMimeType } = __nccwpck_require__(685) + +let ReadableStream = globalThis.ReadableStream + +/** @type {globalThis['File']} */ +const File = NativeFile ?? UndiciFile +const textEncoder = new TextEncoder() +const textDecoder = new TextDecoder() + +// https://fetch.spec.whatwg.org/#concept-bodyinit-extract +function extractBody (object, keepalive = false) { + if (!ReadableStream) { + ReadableStream = (__nccwpck_require__(5356).ReadableStream) + } + + // 1. Let stream be null. + let stream = null + + // 2. If object is a ReadableStream object, then set stream to object. + if (object instanceof ReadableStream) { + stream = object + } else if (isBlobLike(object)) { + // 3. Otherwise, if object is a Blob object, set stream to the + // result of running object’s get stream. + stream = object.stream() + } else { + // 4. Otherwise, set stream to a new ReadableStream object, and set + // up stream. + stream = new ReadableStream({ + async pull (controller) { + controller.enqueue( + typeof source === 'string' ? textEncoder.encode(source) : source + ) + queueMicrotask(() => readableStreamClose(controller)) + }, + start () {}, + type: undefined + }) + } + + // 5. Assert: stream is a ReadableStream object. + assert(isReadableStreamLike(stream)) + + // 6. Let action be null. + let action = null + + // 7. Let source be null. + let source = null + + // 8. Let length be null. + let length = null + + // 9. Let type be null. + let type = null + + // 10. Switch on object: + if (typeof object === 'string') { + // Set source to the UTF-8 encoding of object. + // Note: setting source to a Uint8Array here breaks some mocking assumptions. + source = object + + // Set type to `text/plain;charset=UTF-8`. + type = 'text/plain;charset=UTF-8' + } else if (object instanceof URLSearchParams) { + // URLSearchParams + + // spec says to run application/x-www-form-urlencoded on body.list + // this is implemented in Node.js as apart of an URLSearchParams instance toString method + // See: https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L490 + // and https://github.com/nodejs/node/blob/e46c680bf2b211bbd52cf959ca17ee98c7f657f5/lib/internal/url.js#L1100 + + // Set source to the result of running the application/x-www-form-urlencoded serializer with object’s list. + source = object.toString() + + // Set type to `application/x-www-form-urlencoded;charset=UTF-8`. + type = 'application/x-www-form-urlencoded;charset=UTF-8' + } else if (isArrayBuffer(object)) { + // BufferSource/ArrayBuffer + + // Set source to a copy of the bytes held by object. + source = new Uint8Array(object.slice()) + } else if (ArrayBuffer.isView(object)) { + // BufferSource/ArrayBufferView + + // Set source to a copy of the bytes held by object. + source = new Uint8Array(object.buffer.slice(object.byteOffset, object.byteOffset + object.byteLength)) + } else if (util.isFormDataLike(object)) { + const boundary = `----formdata-undici-0${`${Math.floor(Math.random() * 1e11)}`.padStart(11, '0')}` + const prefix = `--${boundary}\r\nContent-Disposition: form-data` + + /*! formdata-polyfill. MIT License. Jimmy Wärting */ + const escape = (str) => + str.replace(/\n/g, '%0A').replace(/\r/g, '%0D').replace(/"/g, '%22') + const normalizeLinefeeds = (value) => value.replace(/\r?\n|\r/g, '\r\n') + + // Set action to this step: run the multipart/form-data + // encoding algorithm, with object’s entry list and UTF-8. + // - This ensures that the body is immutable and can't be changed afterwords + // - That the content-length is calculated in advance. + // - And that all parts are pre-encoded and ready to be sent. + + const blobParts = [] + const rn = new Uint8Array([13, 10]) // '\r\n' + length = 0 + let hasUnknownSizeValue = false + + for (const [name, value] of object) { + if (typeof value === 'string') { + const chunk = textEncoder.encode(prefix + + `; name="${escape(normalizeLinefeeds(name))}"` + + `\r\n\r\n${normalizeLinefeeds(value)}\r\n`) + blobParts.push(chunk) + length += chunk.byteLength + } else { + const chunk = textEncoder.encode(`${prefix}; name="${escape(normalizeLinefeeds(name))}"` + + (value.name ? `; filename="${escape(value.name)}"` : '') + '\r\n' + + `Content-Type: ${ + value.type || 'application/octet-stream' + }\r\n\r\n`) + blobParts.push(chunk, value, rn) + if (typeof value.size === 'number') { + length += chunk.byteLength + value.size + rn.byteLength + } else { + hasUnknownSizeValue = true + } + } + } + + const chunk = textEncoder.encode(`--${boundary}--`) + blobParts.push(chunk) + length += chunk.byteLength + if (hasUnknownSizeValue) { + length = null + } + + // Set source to object. + source = object + + action = async function * () { + for (const part of blobParts) { + if (part.stream) { + yield * part.stream() + } else { + yield part + } + } + } + + // Set type to `multipart/form-data; boundary=`, + // followed by the multipart/form-data boundary string generated + // by the multipart/form-data encoding algorithm. + type = 'multipart/form-data; boundary=' + boundary + } else if (isBlobLike(object)) { + // Blob + + // Set source to object. + source = object + + // Set length to object’s size. + length = object.size + + // If object’s type attribute is not the empty byte sequence, set + // type to its value. + if (object.type) { + type = object.type + } + } else if (typeof object[Symbol.asyncIterator] === 'function') { + // If keepalive is true, then throw a TypeError. + if (keepalive) { + throw new TypeError('keepalive') + } + + // If object is disturbed or locked, then throw a TypeError. + if (util.isDisturbed(object) || object.locked) { + throw new TypeError( + 'Response body object should not be disturbed or locked' + ) + } + + stream = + object instanceof ReadableStream ? object : ReadableStreamFrom(object) + } + + // 11. If source is a byte sequence, then set action to a + // step that returns source and length to source’s length. + if (typeof source === 'string' || util.isBuffer(source)) { + length = Buffer.byteLength(source) + } + + // 12. If action is non-null, then run these steps in in parallel: + if (action != null) { + // Run action. + let iterator + stream = new ReadableStream({ + async start () { + iterator = action(object)[Symbol.asyncIterator]() + }, + async pull (controller) { + const { value, done } = await iterator.next() + if (done) { + // When running action is done, close stream. + queueMicrotask(() => { + controller.close() + }) + } else { + // Whenever one or more bytes are available and stream is not errored, + // enqueue a Uint8Array wrapping an ArrayBuffer containing the available + // bytes into stream. + if (!isErrored(stream)) { + controller.enqueue(new Uint8Array(value)) + } + } + return controller.desiredSize > 0 + }, + async cancel (reason) { + await iterator.return() + }, + type: undefined + }) + } + + // 13. Let body be a body whose stream is stream, source is source, + // and length is length. + const body = { stream, source, length } + + // 14. Return (body, type). + return [body, type] +} + +// https://fetch.spec.whatwg.org/#bodyinit-safely-extract +function safelyExtractBody (object, keepalive = false) { + if (!ReadableStream) { + // istanbul ignore next + ReadableStream = (__nccwpck_require__(5356).ReadableStream) + } + + // To safely extract a body and a `Content-Type` value from + // a byte sequence or BodyInit object object, run these steps: + + // 1. If object is a ReadableStream object, then: + if (object instanceof ReadableStream) { + // Assert: object is neither disturbed nor locked. + // istanbul ignore next + assert(!util.isDisturbed(object), 'The body has already been consumed.') + // istanbul ignore next + assert(!object.locked, 'The stream is locked.') + } + + // 2. Return the results of extracting object. + return extractBody(object, keepalive) +} + +function cloneBody (body) { + // To clone a body body, run these steps: + + // https://fetch.spec.whatwg.org/#concept-body-clone + + // 1. Let « out1, out2 » be the result of teeing body’s stream. + const [out1, out2] = body.stream.tee() + const out2Clone = structuredClone(out2, { transfer: [out2] }) + // This, for whatever reasons, unrefs out2Clone which allows + // the process to exit by itself. + const [, finalClone] = out2Clone.tee() + + // 2. Set body’s stream to out1. + body.stream = out1 + + // 3. Return a body whose stream is out2 and other members are copied from body. + return { + stream: finalClone, + length: body.length, + source: body.source + } +} + +async function * consumeBody (body) { + if (body) { + if (isUint8Array(body)) { + yield body + } else { + const stream = body.stream + + if (util.isDisturbed(stream)) { + throw new TypeError('The body has already been consumed.') + } + + if (stream.locked) { + throw new TypeError('The stream is locked.') + } + + // Compat. + stream[kBodyUsed] = true + + yield * stream + } + } +} + +function throwIfAborted (state) { + if (state.aborted) { + throw new DOMException('The operation was aborted.', 'AbortError') + } +} + +function bodyMixinMethods (instance) { + const methods = { + blob () { + // The blob() method steps are to return the result of + // running consume body with this and the following step + // given a byte sequence bytes: return a Blob whose + // contents are bytes and whose type attribute is this’s + // MIME type. + return specConsumeBody(this, (bytes) => { + let mimeType = bodyMimeType(this) + + if (mimeType === 'failure') { + mimeType = '' + } else if (mimeType) { + mimeType = serializeAMimeType(mimeType) + } + + // Return a Blob whose contents are bytes and type attribute + // is mimeType. + return new Blob([bytes], { type: mimeType }) + }, instance) + }, + + arrayBuffer () { + // The arrayBuffer() method steps are to return the result + // of running consume body with this and the following step + // given a byte sequence bytes: return a new ArrayBuffer + // whose contents are bytes. + return specConsumeBody(this, (bytes) => { + return new Uint8Array(bytes).buffer + }, instance) + }, + + text () { + // The text() method steps are to return the result of running + // consume body with this and UTF-8 decode. + return specConsumeBody(this, utf8DecodeBytes, instance) + }, + + json () { + // The json() method steps are to return the result of running + // consume body with this and parse JSON from bytes. + return specConsumeBody(this, parseJSONFromBytes, instance) + }, + + async formData () { + webidl.brandCheck(this, instance) + + throwIfAborted(this[kState]) + + const contentType = this.headers.get('Content-Type') + + // If mimeType’s essence is "multipart/form-data", then: + if (/multipart\/form-data/.test(contentType)) { + const headers = {} + for (const [key, value] of this.headers) headers[key.toLowerCase()] = value + + const responseFormData = new FormData() + + let busboy + + try { + busboy = new Busboy({ + headers, + preservePath: true + }) + } catch (err) { + throw new DOMException(`${err}`, 'AbortError') + } + + busboy.on('field', (name, value) => { + responseFormData.append(name, value) + }) + busboy.on('file', (name, value, filename, encoding, mimeType) => { + const chunks = [] + + if (encoding === 'base64' || encoding.toLowerCase() === 'base64') { + let base64chunk = '' + + value.on('data', (chunk) => { + base64chunk += chunk.toString().replace(/[\r\n]/gm, '') + + const end = base64chunk.length - base64chunk.length % 4 + chunks.push(Buffer.from(base64chunk.slice(0, end), 'base64')) + + base64chunk = base64chunk.slice(end) + }) + value.on('end', () => { + chunks.push(Buffer.from(base64chunk, 'base64')) + responseFormData.append(name, new File(chunks, filename, { type: mimeType })) + }) + } else { + value.on('data', (chunk) => { + chunks.push(chunk) + }) + value.on('end', () => { + responseFormData.append(name, new File(chunks, filename, { type: mimeType })) + }) + } + }) + + const busboyResolve = new Promise((resolve, reject) => { + busboy.on('finish', resolve) + busboy.on('error', (err) => reject(new TypeError(err))) + }) + + if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk) + busboy.end() + await busboyResolve + + return responseFormData + } else if (/application\/x-www-form-urlencoded/.test(contentType)) { + // Otherwise, if mimeType’s essence is "application/x-www-form-urlencoded", then: + + // 1. Let entries be the result of parsing bytes. + let entries + try { + let text = '' + // application/x-www-form-urlencoded parser will keep the BOM. + // https://url.spec.whatwg.org/#concept-urlencoded-parser + // Note that streaming decoder is stateful and cannot be reused + const streamingDecoder = new TextDecoder('utf-8', { ignoreBOM: true }) + + for await (const chunk of consumeBody(this[kState].body)) { + if (!isUint8Array(chunk)) { + throw new TypeError('Expected Uint8Array chunk') + } + text += streamingDecoder.decode(chunk, { stream: true }) + } + text += streamingDecoder.decode() + entries = new URLSearchParams(text) + } catch (err) { + // istanbul ignore next: Unclear when new URLSearchParams can fail on a string. + // 2. If entries is failure, then throw a TypeError. + throw Object.assign(new TypeError(), { cause: err }) + } + + // 3. Return a new FormData object whose entries are entries. + const formData = new FormData() + for (const [name, value] of entries) { + formData.append(name, value) + } + return formData + } else { + // Wait a tick before checking if the request has been aborted. + // Otherwise, a TypeError can be thrown when an AbortError should. + await Promise.resolve() + + throwIfAborted(this[kState]) + + // Otherwise, throw a TypeError. + throw webidl.errors.exception({ + header: `${instance.name}.formData`, + message: 'Could not parse content as FormData.' + }) + } + } + } + + return methods +} + +function mixinBody (prototype) { + Object.assign(prototype.prototype, bodyMixinMethods(prototype)) +} + +/** + * @see https://fetch.spec.whatwg.org/#concept-body-consume-body + * @param {Response|Request} object + * @param {(value: unknown) => unknown} convertBytesToJSValue + * @param {Response|Request} instance + */ +async function specConsumeBody (object, convertBytesToJSValue, instance) { + webidl.brandCheck(object, instance) + + throwIfAborted(object[kState]) + + // 1. If object is unusable, then return a promise rejected + // with a TypeError. + if (bodyUnusable(object[kState].body)) { + throw new TypeError('Body is unusable') + } + + // 2. Let promise be a new promise. + const promise = createDeferredPromise() + + // 3. Let errorSteps given error be to reject promise with error. + const errorSteps = (error) => promise.reject(error) + + // 4. Let successSteps given a byte sequence data be to resolve + // promise with the result of running convertBytesToJSValue + // with data. If that threw an exception, then run errorSteps + // with that exception. + const successSteps = (data) => { + try { + promise.resolve(convertBytesToJSValue(data)) + } catch (e) { + errorSteps(e) + } + } + + // 5. If object’s body is null, then run successSteps with an + // empty byte sequence. + if (object[kState].body == null) { + successSteps(new Uint8Array()) + return promise.promise + } + + // 6. Otherwise, fully read object’s body given successSteps, + // errorSteps, and object’s relevant global object. + await fullyReadBody(object[kState].body, successSteps, errorSteps) + + // 7. Return promise. + return promise.promise +} + +// https://fetch.spec.whatwg.org/#body-unusable +function bodyUnusable (body) { + // An object including the Body interface mixin is + // said to be unusable if its body is non-null and + // its body’s stream is disturbed or locked. + return body != null && (body.stream.locked || util.isDisturbed(body.stream)) +} + +/** + * @see https://encoding.spec.whatwg.org/#utf-8-decode + * @param {Buffer} buffer + */ +function utf8DecodeBytes (buffer) { + if (buffer.length === 0) { + return '' + } + + // 1. Let buffer be the result of peeking three bytes from + // ioQueue, converted to a byte sequence. + + // 2. If buffer is 0xEF 0xBB 0xBF, then read three + // bytes from ioQueue. (Do nothing with those bytes.) + if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) { + buffer = buffer.subarray(3) + } + + // 3. Process a queue with an instance of UTF-8’s + // decoder, ioQueue, output, and "replacement". + const output = textDecoder.decode(buffer) + + // 4. Return output. + return output +} + +/** + * @see https://infra.spec.whatwg.org/#parse-json-bytes-to-a-javascript-value + * @param {Uint8Array} bytes + */ +function parseJSONFromBytes (bytes) { + return JSON.parse(utf8DecodeBytes(bytes)) +} + +/** + * @see https://fetch.spec.whatwg.org/#concept-body-mime-type + * @param {import('./response').Response|import('./request').Request} object + */ +function bodyMimeType (object) { + const { headersList } = object[kState] + const contentType = headersList.get('content-type') + + if (contentType === null) { + return 'failure' + } + + return parseMIMEType(contentType) +} + +module.exports = { + extractBody, + safelyExtractBody, + cloneBody, + mixinBody +} + + +/***/ }), + +/***/ 1037: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { MessageChannel, receiveMessageOnPort } = __nccwpck_require__(1267) + +const corsSafeListedMethods = ['GET', 'HEAD', 'POST'] +const corsSafeListedMethodsSet = new Set(corsSafeListedMethods) + +const nullBodyStatus = [101, 204, 205, 304] + +const redirectStatus = [301, 302, 303, 307, 308] +const redirectStatusSet = new Set(redirectStatus) + +// https://fetch.spec.whatwg.org/#block-bad-port +const badPorts = [ + '1', '7', '9', '11', '13', '15', '17', '19', '20', '21', '22', '23', '25', '37', '42', '43', '53', '69', '77', '79', + '87', '95', '101', '102', '103', '104', '109', '110', '111', '113', '115', '117', '119', '123', '135', '137', + '139', '143', '161', '179', '389', '427', '465', '512', '513', '514', '515', '526', '530', '531', '532', + '540', '548', '554', '556', '563', '587', '601', '636', '989', '990', '993', '995', '1719', '1720', '1723', + '2049', '3659', '4045', '5060', '5061', '6000', '6566', '6665', '6666', '6667', '6668', '6669', '6697', + '10080' +] + +const badPortsSet = new Set(badPorts) + +// https://w3c.github.io/webappsec-referrer-policy/#referrer-policies +const referrerPolicy = [ + '', + 'no-referrer', + 'no-referrer-when-downgrade', + 'same-origin', + 'origin', + 'strict-origin', + 'origin-when-cross-origin', + 'strict-origin-when-cross-origin', + 'unsafe-url' +] +const referrerPolicySet = new Set(referrerPolicy) + +const requestRedirect = ['follow', 'manual', 'error'] + +const safeMethods = ['GET', 'HEAD', 'OPTIONS', 'TRACE'] +const safeMethodsSet = new Set(safeMethods) + +const requestMode = ['navigate', 'same-origin', 'no-cors', 'cors'] + +const requestCredentials = ['omit', 'same-origin', 'include'] + +const requestCache = [ + 'default', + 'no-store', + 'reload', + 'no-cache', + 'force-cache', + 'only-if-cached' +] + +// https://fetch.spec.whatwg.org/#request-body-header-name +const requestBodyHeader = [ + 'content-encoding', + 'content-language', + 'content-location', + 'content-type', + // See https://github.com/nodejs/undici/issues/2021 + // 'Content-Length' is a forbidden header name, which is typically + // removed in the Headers implementation. However, undici doesn't + // filter out headers, so we add it here. + 'content-length' +] + +// https://fetch.spec.whatwg.org/#enumdef-requestduplex +const requestDuplex = [ + 'half' +] + +// http://fetch.spec.whatwg.org/#forbidden-method +const forbiddenMethods = ['CONNECT', 'TRACE', 'TRACK'] +const forbiddenMethodsSet = new Set(forbiddenMethods) + +const subresource = [ + 'audio', + 'audioworklet', + 'font', + 'image', + 'manifest', + 'paintworklet', + 'script', + 'style', + 'track', + 'video', + 'xslt', + '' +] +const subresourceSet = new Set(subresource) + +/** @type {globalThis['DOMException']} */ +const DOMException = globalThis.DOMException ?? (() => { + // DOMException was only made a global in Node v17.0.0, + // but fetch supports >= v16.8. + try { + atob('~') + } catch (err) { + return Object.getPrototypeOf(err).constructor + } +})() + +let channel + +/** @type {globalThis['structuredClone']} */ +const structuredClone = + globalThis.structuredClone ?? + // https://github.com/nodejs/node/blob/b27ae24dcc4251bad726d9d84baf678d1f707fed/lib/internal/structured_clone.js + // structuredClone was added in v17.0.0, but fetch supports v16.8 + function structuredClone (value, options = undefined) { + if (arguments.length === 0) { + throw new TypeError('missing argument') + } + + if (!channel) { + channel = new MessageChannel() + } + channel.port1.unref() + channel.port2.unref() + channel.port1.postMessage(value, options?.transfer) + return receiveMessageOnPort(channel.port2).message + } + +module.exports = { + DOMException, + structuredClone, + subresource, + forbiddenMethods, + requestBodyHeader, + referrerPolicy, + requestRedirect, + requestMode, + requestCredentials, + requestCache, + redirectStatus, + corsSafeListedMethods, + nullBodyStatus, + safeMethods, + badPorts, + requestDuplex, + subresourceSet, + badPortsSet, + redirectStatusSet, + corsSafeListedMethodsSet, + safeMethodsSet, + forbiddenMethodsSet, + referrerPolicySet +} + + +/***/ }), + +/***/ 685: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +const assert = __nccwpck_require__(9491) +const { atob } = __nccwpck_require__(4300) +const { isomorphicDecode } = __nccwpck_require__(2538) + +const encoder = new TextEncoder() + +/** + * @see https://mimesniff.spec.whatwg.org/#http-token-code-point + */ +const HTTP_TOKEN_CODEPOINTS = /^[!#$%&'*+-.^_|~A-Za-z0-9]+$/ +const HTTP_WHITESPACE_REGEX = /(\u000A|\u000D|\u0009|\u0020)/ // eslint-disable-line +/** + * @see https://mimesniff.spec.whatwg.org/#http-quoted-string-token-code-point + */ +const HTTP_QUOTED_STRING_TOKENS = /[\u0009|\u0020-\u007E|\u0080-\u00FF]/ // eslint-disable-line + +// https://fetch.spec.whatwg.org/#data-url-processor +/** @param {URL} dataURL */ +function dataURLProcessor (dataURL) { + // 1. Assert: dataURL’s scheme is "data". + assert(dataURL.protocol === 'data:') + + // 2. Let input be the result of running the URL + // serializer on dataURL with exclude fragment + // set to true. + let input = URLSerializer(dataURL, true) + + // 3. Remove the leading "data:" string from input. + input = input.slice(5) + + // 4. Let position point at the start of input. + const position = { position: 0 } + + // 5. Let mimeType be the result of collecting a + // sequence of code points that are not equal + // to U+002C (,), given position. + let mimeType = collectASequenceOfCodePointsFast( + ',', + input, + position + ) + + // 6. Strip leading and trailing ASCII whitespace + // from mimeType. + // Undici implementation note: we need to store the + // length because if the mimetype has spaces removed, + // the wrong amount will be sliced from the input in + // step #9 + const mimeTypeLength = mimeType.length + mimeType = removeASCIIWhitespace(mimeType, true, true) + + // 7. If position is past the end of input, then + // return failure + if (position.position >= input.length) { + return 'failure' + } + + // 8. Advance position by 1. + position.position++ + + // 9. Let encodedBody be the remainder of input. + const encodedBody = input.slice(mimeTypeLength + 1) + + // 10. Let body be the percent-decoding of encodedBody. + let body = stringPercentDecode(encodedBody) + + // 11. If mimeType ends with U+003B (;), followed by + // zero or more U+0020 SPACE, followed by an ASCII + // case-insensitive match for "base64", then: + if (/;(\u0020){0,}base64$/i.test(mimeType)) { + // 1. Let stringBody be the isomorphic decode of body. + const stringBody = isomorphicDecode(body) + + // 2. Set body to the forgiving-base64 decode of + // stringBody. + body = forgivingBase64(stringBody) + + // 3. If body is failure, then return failure. + if (body === 'failure') { + return 'failure' + } + + // 4. Remove the last 6 code points from mimeType. + mimeType = mimeType.slice(0, -6) + + // 5. Remove trailing U+0020 SPACE code points from mimeType, + // if any. + mimeType = mimeType.replace(/(\u0020)+$/, '') + + // 6. Remove the last U+003B (;) code point from mimeType. + mimeType = mimeType.slice(0, -1) + } + + // 12. If mimeType starts with U+003B (;), then prepend + // "text/plain" to mimeType. + if (mimeType.startsWith(';')) { + mimeType = 'text/plain' + mimeType + } + + // 13. Let mimeTypeRecord be the result of parsing + // mimeType. + let mimeTypeRecord = parseMIMEType(mimeType) + + // 14. If mimeTypeRecord is failure, then set + // mimeTypeRecord to text/plain;charset=US-ASCII. + if (mimeTypeRecord === 'failure') { + mimeTypeRecord = parseMIMEType('text/plain;charset=US-ASCII') + } + + // 15. Return a new data: URL struct whose MIME + // type is mimeTypeRecord and body is body. + // https://fetch.spec.whatwg.org/#data-url-struct + return { mimeType: mimeTypeRecord, body } +} + +// https://url.spec.whatwg.org/#concept-url-serializer +/** + * @param {URL} url + * @param {boolean} excludeFragment + */ +function URLSerializer (url, excludeFragment = false) { + const href = url.href + + if (!excludeFragment) { + return href + } + + const hash = href.lastIndexOf('#') + if (hash === -1) { + return href + } + return href.slice(0, hash) +} + +// https://infra.spec.whatwg.org/#collect-a-sequence-of-code-points +/** + * @param {(char: string) => boolean} condition + * @param {string} input + * @param {{ position: number }} position + */ +function collectASequenceOfCodePoints (condition, input, position) { + // 1. Let result be the empty string. + let result = '' + + // 2. While position doesn’t point past the end of input and the + // code point at position within input meets the condition condition: + while (position.position < input.length && condition(input[position.position])) { + // 1. Append that code point to the end of result. + result += input[position.position] + + // 2. Advance position by 1. + position.position++ + } + + // 3. Return result. + return result +} + +/** + * A faster collectASequenceOfCodePoints that only works when comparing a single character. + * @param {string} char + * @param {string} input + * @param {{ position: number }} position + */ +function collectASequenceOfCodePointsFast (char, input, position) { + const idx = input.indexOf(char, position.position) + const start = position.position + + if (idx === -1) { + position.position = input.length + return input.slice(start) + } + + position.position = idx + return input.slice(start, position.position) +} + +// https://url.spec.whatwg.org/#string-percent-decode +/** @param {string} input */ +function stringPercentDecode (input) { + // 1. Let bytes be the UTF-8 encoding of input. + const bytes = encoder.encode(input) + + // 2. Return the percent-decoding of bytes. + return percentDecode(bytes) +} + +// https://url.spec.whatwg.org/#percent-decode +/** @param {Uint8Array} input */ +function percentDecode (input) { + // 1. Let output be an empty byte sequence. + /** @type {number[]} */ + const output = [] + + // 2. For each byte byte in input: + for (let i = 0; i < input.length; i++) { + const byte = input[i] + + // 1. If byte is not 0x25 (%), then append byte to output. + if (byte !== 0x25) { + output.push(byte) + + // 2. Otherwise, if byte is 0x25 (%) and the next two bytes + // after byte in input are not in the ranges + // 0x30 (0) to 0x39 (9), 0x41 (A) to 0x46 (F), + // and 0x61 (a) to 0x66 (f), all inclusive, append byte + // to output. + } else if ( + byte === 0x25 && + !/^[0-9A-Fa-f]{2}$/i.test(String.fromCharCode(input[i + 1], input[i + 2])) + ) { + output.push(0x25) + + // 3. Otherwise: + } else { + // 1. Let bytePoint be the two bytes after byte in input, + // decoded, and then interpreted as hexadecimal number. + const nextTwoBytes = String.fromCharCode(input[i + 1], input[i + 2]) + const bytePoint = Number.parseInt(nextTwoBytes, 16) + + // 2. Append a byte whose value is bytePoint to output. + output.push(bytePoint) + + // 3. Skip the next two bytes in input. + i += 2 + } + } + + // 3. Return output. + return Uint8Array.from(output) +} + +// https://mimesniff.spec.whatwg.org/#parse-a-mime-type +/** @param {string} input */ +function parseMIMEType (input) { + // 1. Remove any leading and trailing HTTP whitespace + // from input. + input = removeHTTPWhitespace(input, true, true) + + // 2. Let position be a position variable for input, + // initially pointing at the start of input. + const position = { position: 0 } + + // 3. Let type be the result of collecting a sequence + // of code points that are not U+002F (/) from + // input, given position. + const type = collectASequenceOfCodePointsFast( + '/', + input, + position + ) + + // 4. If type is the empty string or does not solely + // contain HTTP token code points, then return failure. + // https://mimesniff.spec.whatwg.org/#http-token-code-point + if (type.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(type)) { + return 'failure' + } + + // 5. If position is past the end of input, then return + // failure + if (position.position > input.length) { + return 'failure' + } + + // 6. Advance position by 1. (This skips past U+002F (/).) + position.position++ + + // 7. Let subtype be the result of collecting a sequence of + // code points that are not U+003B (;) from input, given + // position. + let subtype = collectASequenceOfCodePointsFast( + ';', + input, + position + ) + + // 8. Remove any trailing HTTP whitespace from subtype. + subtype = removeHTTPWhitespace(subtype, false, true) + + // 9. If subtype is the empty string or does not solely + // contain HTTP token code points, then return failure. + if (subtype.length === 0 || !HTTP_TOKEN_CODEPOINTS.test(subtype)) { + return 'failure' + } + + const typeLowercase = type.toLowerCase() + const subtypeLowercase = subtype.toLowerCase() + + // 10. Let mimeType be a new MIME type record whose type + // is type, in ASCII lowercase, and subtype is subtype, + // in ASCII lowercase. + // https://mimesniff.spec.whatwg.org/#mime-type + const mimeType = { + type: typeLowercase, + subtype: subtypeLowercase, + /** @type {Map} */ + parameters: new Map(), + // https://mimesniff.spec.whatwg.org/#mime-type-essence + essence: `${typeLowercase}/${subtypeLowercase}` + } + + // 11. While position is not past the end of input: + while (position.position < input.length) { + // 1. Advance position by 1. (This skips past U+003B (;).) + position.position++ + + // 2. Collect a sequence of code points that are HTTP + // whitespace from input given position. + collectASequenceOfCodePoints( + // https://fetch.spec.whatwg.org/#http-whitespace + char => HTTP_WHITESPACE_REGEX.test(char), + input, + position + ) + + // 3. Let parameterName be the result of collecting a + // sequence of code points that are not U+003B (;) + // or U+003D (=) from input, given position. + let parameterName = collectASequenceOfCodePoints( + (char) => char !== ';' && char !== '=', + input, + position + ) + + // 4. Set parameterName to parameterName, in ASCII + // lowercase. + parameterName = parameterName.toLowerCase() + + // 5. If position is not past the end of input, then: + if (position.position < input.length) { + // 1. If the code point at position within input is + // U+003B (;), then continue. + if (input[position.position] === ';') { + continue + } + + // 2. Advance position by 1. (This skips past U+003D (=).) + position.position++ + } + + // 6. If position is past the end of input, then break. + if (position.position > input.length) { + break + } + + // 7. Let parameterValue be null. + let parameterValue = null + + // 8. If the code point at position within input is + // U+0022 ("), then: + if (input[position.position] === '"') { + // 1. Set parameterValue to the result of collecting + // an HTTP quoted string from input, given position + // and the extract-value flag. + parameterValue = collectAnHTTPQuotedString(input, position, true) + + // 2. Collect a sequence of code points that are not + // U+003B (;) from input, given position. + collectASequenceOfCodePointsFast( + ';', + input, + position + ) + + // 9. Otherwise: + } else { + // 1. Set parameterValue to the result of collecting + // a sequence of code points that are not U+003B (;) + // from input, given position. + parameterValue = collectASequenceOfCodePointsFast( + ';', + input, + position + ) + + // 2. Remove any trailing HTTP whitespace from parameterValue. + parameterValue = removeHTTPWhitespace(parameterValue, false, true) + + // 3. If parameterValue is the empty string, then continue. + if (parameterValue.length === 0) { + continue + } + } + + // 10. If all of the following are true + // - parameterName is not the empty string + // - parameterName solely contains HTTP token code points + // - parameterValue solely contains HTTP quoted-string token code points + // - mimeType’s parameters[parameterName] does not exist + // then set mimeType’s parameters[parameterName] to parameterValue. + if ( + parameterName.length !== 0 && + HTTP_TOKEN_CODEPOINTS.test(parameterName) && + (parameterValue.length === 0 || HTTP_QUOTED_STRING_TOKENS.test(parameterValue)) && + !mimeType.parameters.has(parameterName) + ) { + mimeType.parameters.set(parameterName, parameterValue) + } + } + + // 12. Return mimeType. + return mimeType +} + +// https://infra.spec.whatwg.org/#forgiving-base64-decode +/** @param {string} data */ +function forgivingBase64 (data) { + // 1. Remove all ASCII whitespace from data. + data = data.replace(/[\u0009\u000A\u000C\u000D\u0020]/g, '') // eslint-disable-line + + // 2. If data’s code point length divides by 4 leaving + // no remainder, then: + if (data.length % 4 === 0) { + // 1. If data ends with one or two U+003D (=) code points, + // then remove them from data. + data = data.replace(/=?=$/, '') + } + + // 3. If data’s code point length divides by 4 leaving + // a remainder of 1, then return failure. + if (data.length % 4 === 1) { + return 'failure' + } + + // 4. If data contains a code point that is not one of + // U+002B (+) + // U+002F (/) + // ASCII alphanumeric + // then return failure. + if (/[^+/0-9A-Za-z]/.test(data)) { + return 'failure' + } + + const binary = atob(data) + const bytes = new Uint8Array(binary.length) + + for (let byte = 0; byte < binary.length; byte++) { + bytes[byte] = binary.charCodeAt(byte) + } + + return bytes +} + +// https://fetch.spec.whatwg.org/#collect-an-http-quoted-string +// tests: https://fetch.spec.whatwg.org/#example-http-quoted-string +/** + * @param {string} input + * @param {{ position: number }} position + * @param {boolean?} extractValue + */ +function collectAnHTTPQuotedString (input, position, extractValue) { + // 1. Let positionStart be position. + const positionStart = position.position + + // 2. Let value be the empty string. + let value = '' + + // 3. Assert: the code point at position within input + // is U+0022 ("). + assert(input[position.position] === '"') + + // 4. Advance position by 1. + position.position++ + + // 5. While true: + while (true) { + // 1. Append the result of collecting a sequence of code points + // that are not U+0022 (") or U+005C (\) from input, given + // position, to value. + value += collectASequenceOfCodePoints( + (char) => char !== '"' && char !== '\\', + input, + position + ) + + // 2. If position is past the end of input, then break. + if (position.position >= input.length) { + break + } + + // 3. Let quoteOrBackslash be the code point at position within + // input. + const quoteOrBackslash = input[position.position] + + // 4. Advance position by 1. + position.position++ + + // 5. If quoteOrBackslash is U+005C (\), then: + if (quoteOrBackslash === '\\') { + // 1. If position is past the end of input, then append + // U+005C (\) to value and break. + if (position.position >= input.length) { + value += '\\' + break + } + + // 2. Append the code point at position within input to value. + value += input[position.position] + + // 3. Advance position by 1. + position.position++ + + // 6. Otherwise: + } else { + // 1. Assert: quoteOrBackslash is U+0022 ("). + assert(quoteOrBackslash === '"') + + // 2. Break. + break + } + } + + // 6. If the extract-value flag is set, then return value. + if (extractValue) { + return value + } + + // 7. Return the code points from positionStart to position, + // inclusive, within input. + return input.slice(positionStart, position.position) +} + +/** + * @see https://mimesniff.spec.whatwg.org/#serialize-a-mime-type + */ +function serializeAMimeType (mimeType) { + assert(mimeType !== 'failure') + const { parameters, essence } = mimeType + + // 1. Let serialization be the concatenation of mimeType’s + // type, U+002F (/), and mimeType’s subtype. + let serialization = essence + + // 2. For each name → value of mimeType’s parameters: + for (let [name, value] of parameters.entries()) { + // 1. Append U+003B (;) to serialization. + serialization += ';' + + // 2. Append name to serialization. + serialization += name + + // 3. Append U+003D (=) to serialization. + serialization += '=' + + // 4. If value does not solely contain HTTP token code + // points or value is the empty string, then: + if (!HTTP_TOKEN_CODEPOINTS.test(value)) { + // 1. Precede each occurence of U+0022 (") or + // U+005C (\) in value with U+005C (\). + value = value.replace(/(\\|")/g, '\\$1') + + // 2. Prepend U+0022 (") to value. + value = '"' + value + + // 3. Append U+0022 (") to value. + value += '"' + } + + // 5. Append value to serialization. + serialization += value + } + + // 3. Return serialization. + return serialization +} + +/** + * @see https://fetch.spec.whatwg.org/#http-whitespace + * @param {string} char + */ +function isHTTPWhiteSpace (char) { + return char === '\r' || char === '\n' || char === '\t' || char === ' ' +} + +/** + * @see https://fetch.spec.whatwg.org/#http-whitespace + * @param {string} str + */ +function removeHTTPWhitespace (str, leading = true, trailing = true) { + let lead = 0 + let trail = str.length - 1 + + if (leading) { + for (; lead < str.length && isHTTPWhiteSpace(str[lead]); lead++); + } + + if (trailing) { + for (; trail > 0 && isHTTPWhiteSpace(str[trail]); trail--); + } + + return str.slice(lead, trail + 1) +} + +/** + * @see https://infra.spec.whatwg.org/#ascii-whitespace + * @param {string} char + */ +function isASCIIWhitespace (char) { + return char === '\r' || char === '\n' || char === '\t' || char === '\f' || char === ' ' +} + +/** + * @see https://infra.spec.whatwg.org/#strip-leading-and-trailing-ascii-whitespace + */ +function removeASCIIWhitespace (str, leading = true, trailing = true) { + let lead = 0 + let trail = str.length - 1 + + if (leading) { + for (; lead < str.length && isASCIIWhitespace(str[lead]); lead++); + } + + if (trailing) { + for (; trail > 0 && isASCIIWhitespace(str[trail]); trail--); + } + + return str.slice(lead, trail + 1) +} + +module.exports = { + dataURLProcessor, + URLSerializer, + collectASequenceOfCodePoints, + collectASequenceOfCodePointsFast, + stringPercentDecode, + parseMIMEType, + collectAnHTTPQuotedString, + serializeAMimeType +} + + +/***/ }), + +/***/ 8511: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { Blob, File: NativeFile } = __nccwpck_require__(4300) +const { types } = __nccwpck_require__(3837) +const { kState } = __nccwpck_require__(5861) +const { isBlobLike } = __nccwpck_require__(2538) +const { webidl } = __nccwpck_require__(1744) +const { parseMIMEType, serializeAMimeType } = __nccwpck_require__(685) +const { kEnumerableProperty } = __nccwpck_require__(3983) +const encoder = new TextEncoder() + +class File extends Blob { + constructor (fileBits, fileName, options = {}) { + // The File constructor is invoked with two or three parameters, depending + // on whether the optional dictionary parameter is used. When the File() + // constructor is invoked, user agents must run the following steps: + webidl.argumentLengthCheck(arguments, 2, { header: 'File constructor' }) + + fileBits = webidl.converters['sequence'](fileBits) + fileName = webidl.converters.USVString(fileName) + options = webidl.converters.FilePropertyBag(options) + + // 1. Let bytes be the result of processing blob parts given fileBits and + // options. + // Note: Blob handles this for us + + // 2. Let n be the fileName argument to the constructor. + const n = fileName + + // 3. Process FilePropertyBag dictionary argument by running the following + // substeps: + + // 1. If the type member is provided and is not the empty string, let t + // be set to the type dictionary member. If t contains any characters + // outside the range U+0020 to U+007E, then set t to the empty string + // and return from these substeps. + // 2. Convert every character in t to ASCII lowercase. + let t = options.type + let d + + // eslint-disable-next-line no-labels + substep: { + if (t) { + t = parseMIMEType(t) + + if (t === 'failure') { + t = '' + // eslint-disable-next-line no-labels + break substep + } + + t = serializeAMimeType(t).toLowerCase() + } + + // 3. If the lastModified member is provided, let d be set to the + // lastModified dictionary member. If it is not provided, set d to the + // current date and time represented as the number of milliseconds since + // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]). + d = options.lastModified + } + + // 4. Return a new File object F such that: + // F refers to the bytes byte sequence. + // F.size is set to the number of total bytes in bytes. + // F.name is set to n. + // F.type is set to t. + // F.lastModified is set to d. + + super(processBlobParts(fileBits, options), { type: t }) + this[kState] = { + name: n, + lastModified: d, + type: t + } + } + + get name () { + webidl.brandCheck(this, File) + + return this[kState].name + } + + get lastModified () { + webidl.brandCheck(this, File) + + return this[kState].lastModified + } + + get type () { + webidl.brandCheck(this, File) + + return this[kState].type + } +} + +class FileLike { + constructor (blobLike, fileName, options = {}) { + // TODO: argument idl type check + + // The File constructor is invoked with two or three parameters, depending + // on whether the optional dictionary parameter is used. When the File() + // constructor is invoked, user agents must run the following steps: + + // 1. Let bytes be the result of processing blob parts given fileBits and + // options. + + // 2. Let n be the fileName argument to the constructor. + const n = fileName + + // 3. Process FilePropertyBag dictionary argument by running the following + // substeps: + + // 1. If the type member is provided and is not the empty string, let t + // be set to the type dictionary member. If t contains any characters + // outside the range U+0020 to U+007E, then set t to the empty string + // and return from these substeps. + // TODO + const t = options.type + + // 2. Convert every character in t to ASCII lowercase. + // TODO + + // 3. If the lastModified member is provided, let d be set to the + // lastModified dictionary member. If it is not provided, set d to the + // current date and time represented as the number of milliseconds since + // the Unix Epoch (which is the equivalent of Date.now() [ECMA-262]). + const d = options.lastModified ?? Date.now() + + // 4. Return a new File object F such that: + // F refers to the bytes byte sequence. + // F.size is set to the number of total bytes in bytes. + // F.name is set to n. + // F.type is set to t. + // F.lastModified is set to d. + + this[kState] = { + blobLike, + name: n, + type: t, + lastModified: d + } + } + + stream (...args) { + webidl.brandCheck(this, FileLike) + + return this[kState].blobLike.stream(...args) + } + + arrayBuffer (...args) { + webidl.brandCheck(this, FileLike) + + return this[kState].blobLike.arrayBuffer(...args) + } + + slice (...args) { + webidl.brandCheck(this, FileLike) + + return this[kState].blobLike.slice(...args) + } + + text (...args) { + webidl.brandCheck(this, FileLike) + + return this[kState].blobLike.text(...args) + } + + get size () { + webidl.brandCheck(this, FileLike) + + return this[kState].blobLike.size + } + + get type () { + webidl.brandCheck(this, FileLike) + + return this[kState].blobLike.type + } + + get name () { + webidl.brandCheck(this, FileLike) + + return this[kState].name + } + + get lastModified () { + webidl.brandCheck(this, FileLike) + + return this[kState].lastModified + } + + get [Symbol.toStringTag] () { + return 'File' + } +} + +Object.defineProperties(File.prototype, { + [Symbol.toStringTag]: { + value: 'File', + configurable: true + }, + name: kEnumerableProperty, + lastModified: kEnumerableProperty +}) + +webidl.converters.Blob = webidl.interfaceConverter(Blob) + +webidl.converters.BlobPart = function (V, opts) { + if (webidl.util.Type(V) === 'Object') { + if (isBlobLike(V)) { + return webidl.converters.Blob(V, { strict: false }) + } + + if ( + ArrayBuffer.isView(V) || + types.isAnyArrayBuffer(V) + ) { + return webidl.converters.BufferSource(V, opts) + } + } + + return webidl.converters.USVString(V, opts) +} + +webidl.converters['sequence'] = webidl.sequenceConverter( + webidl.converters.BlobPart +) + +// https://www.w3.org/TR/FileAPI/#dfn-FilePropertyBag +webidl.converters.FilePropertyBag = webidl.dictionaryConverter([ + { + key: 'lastModified', + converter: webidl.converters['long long'], + get defaultValue () { + return Date.now() + } + }, + { + key: 'type', + converter: webidl.converters.DOMString, + defaultValue: '' + }, + { + key: 'endings', + converter: (value) => { + value = webidl.converters.DOMString(value) + value = value.toLowerCase() + + if (value !== 'native') { + value = 'transparent' + } + + return value + }, + defaultValue: 'transparent' + } +]) + +/** + * @see https://www.w3.org/TR/FileAPI/#process-blob-parts + * @param {(NodeJS.TypedArray|Blob|string)[]} parts + * @param {{ type: string, endings: string }} options + */ +function processBlobParts (parts, options) { + // 1. Let bytes be an empty sequence of bytes. + /** @type {NodeJS.TypedArray[]} */ + const bytes = [] + + // 2. For each element in parts: + for (const element of parts) { + // 1. If element is a USVString, run the following substeps: + if (typeof element === 'string') { + // 1. Let s be element. + let s = element + + // 2. If the endings member of options is "native", set s + // to the result of converting line endings to native + // of element. + if (options.endings === 'native') { + s = convertLineEndingsNative(s) + } + + // 3. Append the result of UTF-8 encoding s to bytes. + bytes.push(encoder.encode(s)) + } else if ( + types.isAnyArrayBuffer(element) || + types.isTypedArray(element) + ) { + // 2. If element is a BufferSource, get a copy of the + // bytes held by the buffer source, and append those + // bytes to bytes. + if (!element.buffer) { // ArrayBuffer + bytes.push(new Uint8Array(element)) + } else { + bytes.push( + new Uint8Array(element.buffer, element.byteOffset, element.byteLength) + ) + } + } else if (isBlobLike(element)) { + // 3. If element is a Blob, append the bytes it represents + // to bytes. + bytes.push(element) + } + } + + // 3. Return bytes. + return bytes +} + +/** + * @see https://www.w3.org/TR/FileAPI/#convert-line-endings-to-native + * @param {string} s + */ +function convertLineEndingsNative (s) { + // 1. Let native line ending be be the code point U+000A LF. + let nativeLineEnding = '\n' + + // 2. If the underlying platform’s conventions are to + // represent newlines as a carriage return and line feed + // sequence, set native line ending to the code point + // U+000D CR followed by the code point U+000A LF. + if (process.platform === 'win32') { + nativeLineEnding = '\r\n' + } + + return s.replace(/\r?\n/g, nativeLineEnding) +} + +// If this function is moved to ./util.js, some tools (such as +// rollup) will warn about circular dependencies. See: +// https://github.com/nodejs/undici/issues/1629 +function isFileLike (object) { + return ( + (NativeFile && object instanceof NativeFile) || + object instanceof File || ( + object && + (typeof object.stream === 'function' || + typeof object.arrayBuffer === 'function') && + object[Symbol.toStringTag] === 'File' + ) + ) +} + +module.exports = { File, FileLike, isFileLike } + + +/***/ }), + +/***/ 2015: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { isBlobLike, toUSVString, makeIterator } = __nccwpck_require__(2538) +const { kState } = __nccwpck_require__(5861) +const { File: UndiciFile, FileLike, isFileLike } = __nccwpck_require__(8511) +const { webidl } = __nccwpck_require__(1744) +const { Blob, File: NativeFile } = __nccwpck_require__(4300) + +/** @type {globalThis['File']} */ +const File = NativeFile ?? UndiciFile + +// https://xhr.spec.whatwg.org/#formdata +class FormData { + constructor (form) { + if (form !== undefined) { + throw webidl.errors.conversionFailed({ + prefix: 'FormData constructor', + argument: 'Argument 1', + types: ['undefined'] + }) + } + + this[kState] = [] + } + + append (name, value, filename = undefined) { + webidl.brandCheck(this, FormData) + + webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.append' }) + + if (arguments.length === 3 && !isBlobLike(value)) { + throw new TypeError( + "Failed to execute 'append' on 'FormData': parameter 2 is not of type 'Blob'" + ) + } + + // 1. Let value be value if given; otherwise blobValue. + + name = webidl.converters.USVString(name) + value = isBlobLike(value) + ? webidl.converters.Blob(value, { strict: false }) + : webidl.converters.USVString(value) + filename = arguments.length === 3 + ? webidl.converters.USVString(filename) + : undefined + + // 2. Let entry be the result of creating an entry with + // name, value, and filename if given. + const entry = makeEntry(name, value, filename) + + // 3. Append entry to this’s entry list. + this[kState].push(entry) + } + + delete (name) { + webidl.brandCheck(this, FormData) + + webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.delete' }) + + name = webidl.converters.USVString(name) + + // The delete(name) method steps are to remove all entries whose name + // is name from this’s entry list. + this[kState] = this[kState].filter(entry => entry.name !== name) + } + + get (name) { + webidl.brandCheck(this, FormData) + + webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.get' }) + + name = webidl.converters.USVString(name) + + // 1. If there is no entry whose name is name in this’s entry list, + // then return null. + const idx = this[kState].findIndex((entry) => entry.name === name) + if (idx === -1) { + return null + } + + // 2. Return the value of the first entry whose name is name from + // this’s entry list. + return this[kState][idx].value + } + + getAll (name) { + webidl.brandCheck(this, FormData) + + webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.getAll' }) + + name = webidl.converters.USVString(name) + + // 1. If there is no entry whose name is name in this’s entry list, + // then return the empty list. + // 2. Return the values of all entries whose name is name, in order, + // from this’s entry list. + return this[kState] + .filter((entry) => entry.name === name) + .map((entry) => entry.value) + } + + has (name) { + webidl.brandCheck(this, FormData) + + webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.has' }) + + name = webidl.converters.USVString(name) + + // The has(name) method steps are to return true if there is an entry + // whose name is name in this’s entry list; otherwise false. + return this[kState].findIndex((entry) => entry.name === name) !== -1 + } + + set (name, value, filename = undefined) { + webidl.brandCheck(this, FormData) + + webidl.argumentLengthCheck(arguments, 2, { header: 'FormData.set' }) + + if (arguments.length === 3 && !isBlobLike(value)) { + throw new TypeError( + "Failed to execute 'set' on 'FormData': parameter 2 is not of type 'Blob'" + ) + } + + // The set(name, value) and set(name, blobValue, filename) method steps + // are: + + // 1. Let value be value if given; otherwise blobValue. + + name = webidl.converters.USVString(name) + value = isBlobLike(value) + ? webidl.converters.Blob(value, { strict: false }) + : webidl.converters.USVString(value) + filename = arguments.length === 3 + ? toUSVString(filename) + : undefined + + // 2. Let entry be the result of creating an entry with name, value, and + // filename if given. + const entry = makeEntry(name, value, filename) + + // 3. If there are entries in this’s entry list whose name is name, then + // replace the first such entry with entry and remove the others. + const idx = this[kState].findIndex((entry) => entry.name === name) + if (idx !== -1) { + this[kState] = [ + ...this[kState].slice(0, idx), + entry, + ...this[kState].slice(idx + 1).filter((entry) => entry.name !== name) + ] + } else { + // 4. Otherwise, append entry to this’s entry list. + this[kState].push(entry) + } + } + + entries () { + webidl.brandCheck(this, FormData) + + return makeIterator( + () => this[kState].map(pair => [pair.name, pair.value]), + 'FormData', + 'key+value' + ) + } + + keys () { + webidl.brandCheck(this, FormData) + + return makeIterator( + () => this[kState].map(pair => [pair.name, pair.value]), + 'FormData', + 'key' + ) + } + + values () { + webidl.brandCheck(this, FormData) + + return makeIterator( + () => this[kState].map(pair => [pair.name, pair.value]), + 'FormData', + 'value' + ) + } + + /** + * @param {(value: string, key: string, self: FormData) => void} callbackFn + * @param {unknown} thisArg + */ + forEach (callbackFn, thisArg = globalThis) { + webidl.brandCheck(this, FormData) + + webidl.argumentLengthCheck(arguments, 1, { header: 'FormData.forEach' }) + + if (typeof callbackFn !== 'function') { + throw new TypeError( + "Failed to execute 'forEach' on 'FormData': parameter 1 is not of type 'Function'." + ) + } + + for (const [key, value] of this) { + callbackFn.apply(thisArg, [value, key, this]) + } + } +} + +FormData.prototype[Symbol.iterator] = FormData.prototype.entries + +Object.defineProperties(FormData.prototype, { + [Symbol.toStringTag]: { + value: 'FormData', + configurable: true + } +}) + +/** + * @see https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#create-an-entry + * @param {string} name + * @param {string|Blob} value + * @param {?string} filename + * @returns + */ +function makeEntry (name, value, filename) { + // 1. Set name to the result of converting name into a scalar value string. + // "To convert a string into a scalar value string, replace any surrogates + // with U+FFFD." + // see: https://nodejs.org/dist/latest-v18.x/docs/api/buffer.html#buftostringencoding-start-end + name = Buffer.from(name).toString('utf8') + + // 2. If value is a string, then set value to the result of converting + // value into a scalar value string. + if (typeof value === 'string') { + value = Buffer.from(value).toString('utf8') + } else { + // 3. Otherwise: + + // 1. If value is not a File object, then set value to a new File object, + // representing the same bytes, whose name attribute value is "blob" + if (!isFileLike(value)) { + value = value instanceof Blob + ? new File([value], 'blob', { type: value.type }) + : new FileLike(value, 'blob', { type: value.type }) + } + + // 2. If filename is given, then set value to a new File object, + // representing the same bytes, whose name attribute is filename. + if (filename !== undefined) { + /** @type {FilePropertyBag} */ + const options = { + type: value.type, + lastModified: value.lastModified + } + + value = (NativeFile && value instanceof NativeFile) || value instanceof UndiciFile + ? new File([value], filename, options) + : new FileLike(value, filename, options) + } + } + + // 4. Return an entry whose name is name and whose value is value. + return { name, value } +} + +module.exports = { FormData } + + +/***/ }), + +/***/ 1246: +/***/ ((module) => { + +"use strict"; + + +// In case of breaking changes, increase the version +// number to avoid conflicts. +const globalOrigin = Symbol.for('undici.globalOrigin.1') + +function getGlobalOrigin () { + return globalThis[globalOrigin] +} + +function setGlobalOrigin (newOrigin) { + if (newOrigin === undefined) { + Object.defineProperty(globalThis, globalOrigin, { + value: undefined, + writable: true, + enumerable: false, + configurable: false + }) + + return + } + + const parsedURL = new URL(newOrigin) + + if (parsedURL.protocol !== 'http:' && parsedURL.protocol !== 'https:') { + throw new TypeError(`Only http & https urls are allowed, received ${parsedURL.protocol}`) + } + + Object.defineProperty(globalThis, globalOrigin, { + value: parsedURL, + writable: true, + enumerable: false, + configurable: false + }) +} + +module.exports = { + getGlobalOrigin, + setGlobalOrigin +} + + +/***/ }), + +/***/ 554: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; +// https://github.com/Ethan-Arrowood/undici-fetch + + + +const { kHeadersList } = __nccwpck_require__(2785) +const { kGuard } = __nccwpck_require__(5861) +const { kEnumerableProperty } = __nccwpck_require__(3983) +const { + makeIterator, + isValidHeaderName, + isValidHeaderValue +} = __nccwpck_require__(2538) +const { webidl } = __nccwpck_require__(1744) +const assert = __nccwpck_require__(9491) + +const kHeadersMap = Symbol('headers map') +const kHeadersSortedMap = Symbol('headers map sorted') + +/** + * @see https://fetch.spec.whatwg.org/#concept-header-value-normalize + * @param {string} potentialValue + */ +function headerValueNormalize (potentialValue) { + // To normalize a byte sequence potentialValue, remove + // any leading and trailing HTTP whitespace bytes from + // potentialValue. + + // Trimming the end with `.replace()` and a RegExp is typically subject to + // ReDoS. This is safer and faster. + let i = potentialValue.length + while (/[\r\n\t ]/.test(potentialValue.charAt(--i))); + return potentialValue.slice(0, i + 1).replace(/^[\r\n\t ]+/, '') +} + +function fill (headers, object) { + // To fill a Headers object headers with a given object object, run these steps: + + // 1. If object is a sequence, then for each header in object: + // Note: webidl conversion to array has already been done. + if (Array.isArray(object)) { + for (const header of object) { + // 1. If header does not contain exactly two items, then throw a TypeError. + if (header.length !== 2) { + throw webidl.errors.exception({ + header: 'Headers constructor', + message: `expected name/value pair to be length 2, found ${header.length}.` + }) + } + + // 2. Append (header’s first item, header’s second item) to headers. + headers.append(header[0], header[1]) + } + } else if (typeof object === 'object' && object !== null) { + // Note: null should throw + + // 2. Otherwise, object is a record, then for each key → value in object, + // append (key, value) to headers + for (const [key, value] of Object.entries(object)) { + headers.append(key, value) + } + } else { + throw webidl.errors.conversionFailed({ + prefix: 'Headers constructor', + argument: 'Argument 1', + types: ['sequence>', 'record'] + }) + } +} + +class HeadersList { + /** @type {[string, string][]|null} */ + cookies = null + + constructor (init) { + if (init instanceof HeadersList) { + this[kHeadersMap] = new Map(init[kHeadersMap]) + this[kHeadersSortedMap] = init[kHeadersSortedMap] + this.cookies = init.cookies + } else { + this[kHeadersMap] = new Map(init) + this[kHeadersSortedMap] = null + } + } + + // https://fetch.spec.whatwg.org/#header-list-contains + contains (name) { + // A header list list contains a header name name if list + // contains a header whose name is a byte-case-insensitive + // match for name. + name = name.toLowerCase() + + return this[kHeadersMap].has(name) + } + + clear () { + this[kHeadersMap].clear() + this[kHeadersSortedMap] = null + this.cookies = null + } + + // https://fetch.spec.whatwg.org/#concept-header-list-append + append (name, value) { + this[kHeadersSortedMap] = null + + // 1. If list contains name, then set name to the first such + // header’s name. + const lowercaseName = name.toLowerCase() + const exists = this[kHeadersMap].get(lowercaseName) + + // 2. Append (name, value) to list. + if (exists) { + const delimiter = lowercaseName === 'cookie' ? '; ' : ', ' + this[kHeadersMap].set(lowercaseName, { + name: exists.name, + value: `${exists.value}${delimiter}${value}` + }) + } else { + this[kHeadersMap].set(lowercaseName, { name, value }) + } + + if (lowercaseName === 'set-cookie') { + this.cookies ??= [] + this.cookies.push(value) + } + } + + // https://fetch.spec.whatwg.org/#concept-header-list-set + set (name, value) { + this[kHeadersSortedMap] = null + const lowercaseName = name.toLowerCase() + + if (lowercaseName === 'set-cookie') { + this.cookies = [value] + } + + // 1. If list contains name, then set the value of + // the first such header to value and remove the + // others. + // 2. Otherwise, append header (name, value) to list. + return this[kHeadersMap].set(lowercaseName, { name, value }) + } + + // https://fetch.spec.whatwg.org/#concept-header-list-delete + delete (name) { + this[kHeadersSortedMap] = null + + name = name.toLowerCase() + + if (name === 'set-cookie') { + this.cookies = null + } + + return this[kHeadersMap].delete(name) + } + + // https://fetch.spec.whatwg.org/#concept-header-list-get + get (name) { + // 1. If list does not contain name, then return null. + if (!this.contains(name)) { + return null + } + + // 2. Return the values of all headers in list whose name + // is a byte-case-insensitive match for name, + // separated from each other by 0x2C 0x20, in order. + return this[kHeadersMap].get(name.toLowerCase())?.value ?? null + } + + * [Symbol.iterator] () { + // use the lowercased name + for (const [name, { value }] of this[kHeadersMap]) { + yield [name, value] + } + } + + get entries () { + const headers = {} + + if (this[kHeadersMap].size) { + for (const { name, value } of this[kHeadersMap].values()) { + headers[name] = value + } + } + + return headers + } +} + +// https://fetch.spec.whatwg.org/#headers-class +class Headers { + constructor (init = undefined) { + this[kHeadersList] = new HeadersList() + + // The new Headers(init) constructor steps are: + + // 1. Set this’s guard to "none". + this[kGuard] = 'none' + + // 2. If init is given, then fill this with init. + if (init !== undefined) { + init = webidl.converters.HeadersInit(init) + fill(this, init) + } + } + + // https://fetch.spec.whatwg.org/#dom-headers-append + append (name, value) { + webidl.brandCheck(this, Headers) + + webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.append' }) + + name = webidl.converters.ByteString(name) + value = webidl.converters.ByteString(value) + + // 1. Normalize value. + value = headerValueNormalize(value) + + // 2. If name is not a header name or value is not a + // header value, then throw a TypeError. + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.append', + value: name, + type: 'header name' + }) + } else if (!isValidHeaderValue(value)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.append', + value, + type: 'header value' + }) + } + + // 3. If headers’s guard is "immutable", then throw a TypeError. + // 4. Otherwise, if headers’s guard is "request" and name is a + // forbidden header name, return. + // Note: undici does not implement forbidden header names + if (this[kGuard] === 'immutable') { + throw new TypeError('immutable') + } else if (this[kGuard] === 'request-no-cors') { + // 5. Otherwise, if headers’s guard is "request-no-cors": + // TODO + } + + // 6. Otherwise, if headers’s guard is "response" and name is a + // forbidden response-header name, return. + + // 7. Append (name, value) to headers’s header list. + // 8. If headers’s guard is "request-no-cors", then remove + // privileged no-CORS request headers from headers + return this[kHeadersList].append(name, value) + } + + // https://fetch.spec.whatwg.org/#dom-headers-delete + delete (name) { + webidl.brandCheck(this, Headers) + + webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.delete' }) + + name = webidl.converters.ByteString(name) + + // 1. If name is not a header name, then throw a TypeError. + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.delete', + value: name, + type: 'header name' + }) + } + + // 2. If this’s guard is "immutable", then throw a TypeError. + // 3. Otherwise, if this’s guard is "request" and name is a + // forbidden header name, return. + // 4. Otherwise, if this’s guard is "request-no-cors", name + // is not a no-CORS-safelisted request-header name, and + // name is not a privileged no-CORS request-header name, + // return. + // 5. Otherwise, if this’s guard is "response" and name is + // a forbidden response-header name, return. + // Note: undici does not implement forbidden header names + if (this[kGuard] === 'immutable') { + throw new TypeError('immutable') + } else if (this[kGuard] === 'request-no-cors') { + // TODO + } + + // 6. If this’s header list does not contain name, then + // return. + if (!this[kHeadersList].contains(name)) { + return + } + + // 7. Delete name from this’s header list. + // 8. If this’s guard is "request-no-cors", then remove + // privileged no-CORS request headers from this. + return this[kHeadersList].delete(name) + } + + // https://fetch.spec.whatwg.org/#dom-headers-get + get (name) { + webidl.brandCheck(this, Headers) + + webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.get' }) + + name = webidl.converters.ByteString(name) + + // 1. If name is not a header name, then throw a TypeError. + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.get', + value: name, + type: 'header name' + }) + } + + // 2. Return the result of getting name from this’s header + // list. + return this[kHeadersList].get(name) + } + + // https://fetch.spec.whatwg.org/#dom-headers-has + has (name) { + webidl.brandCheck(this, Headers) + + webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.has' }) + + name = webidl.converters.ByteString(name) + + // 1. If name is not a header name, then throw a TypeError. + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.has', + value: name, + type: 'header name' + }) + } + + // 2. Return true if this’s header list contains name; + // otherwise false. + return this[kHeadersList].contains(name) + } + + // https://fetch.spec.whatwg.org/#dom-headers-set + set (name, value) { + webidl.brandCheck(this, Headers) + + webidl.argumentLengthCheck(arguments, 2, { header: 'Headers.set' }) + + name = webidl.converters.ByteString(name) + value = webidl.converters.ByteString(value) + + // 1. Normalize value. + value = headerValueNormalize(value) + + // 2. If name is not a header name or value is not a + // header value, then throw a TypeError. + if (!isValidHeaderName(name)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.set', + value: name, + type: 'header name' + }) + } else if (!isValidHeaderValue(value)) { + throw webidl.errors.invalidArgument({ + prefix: 'Headers.set', + value, + type: 'header value' + }) + } + + // 3. If this’s guard is "immutable", then throw a TypeError. + // 4. Otherwise, if this’s guard is "request" and name is a + // forbidden header name, return. + // 5. Otherwise, if this’s guard is "request-no-cors" and + // name/value is not a no-CORS-safelisted request-header, + // return. + // 6. Otherwise, if this’s guard is "response" and name is a + // forbidden response-header name, return. + // Note: undici does not implement forbidden header names + if (this[kGuard] === 'immutable') { + throw new TypeError('immutable') + } else if (this[kGuard] === 'request-no-cors') { + // TODO + } + + // 7. Set (name, value) in this’s header list. + // 8. If this’s guard is "request-no-cors", then remove + // privileged no-CORS request headers from this + return this[kHeadersList].set(name, value) + } + + // https://fetch.spec.whatwg.org/#dom-headers-getsetcookie + getSetCookie () { + webidl.brandCheck(this, Headers) + + // 1. If this’s header list does not contain `Set-Cookie`, then return « ». + // 2. Return the values of all headers in this’s header list whose name is + // a byte-case-insensitive match for `Set-Cookie`, in order. + + const list = this[kHeadersList].cookies + + if (list) { + return [...list] + } + + return [] + } + + // https://fetch.spec.whatwg.org/#concept-header-list-sort-and-combine + get [kHeadersSortedMap] () { + if (this[kHeadersList][kHeadersSortedMap]) { + return this[kHeadersList][kHeadersSortedMap] + } + + // 1. Let headers be an empty list of headers with the key being the name + // and value the value. + const headers = [] + + // 2. Let names be the result of convert header names to a sorted-lowercase + // set with all the names of the headers in list. + const names = [...this[kHeadersList]].sort((a, b) => a[0] < b[0] ? -1 : 1) + const cookies = this[kHeadersList].cookies + + // 3. For each name of names: + for (const [name, value] of names) { + // 1. If name is `set-cookie`, then: + if (name === 'set-cookie') { + // 1. Let values be a list of all values of headers in list whose name + // is a byte-case-insensitive match for name, in order. + + // 2. For each value of values: + // 1. Append (name, value) to headers. + for (const value of cookies) { + headers.push([name, value]) + } + } else { + // 2. Otherwise: + + // 1. Let value be the result of getting name from list. + + // 2. Assert: value is non-null. + assert(value !== null) + + // 3. Append (name, value) to headers. + headers.push([name, value]) + } + } + + this[kHeadersList][kHeadersSortedMap] = headers + + // 4. Return headers. + return headers + } + + keys () { + webidl.brandCheck(this, Headers) + + return makeIterator( + () => [...this[kHeadersSortedMap].values()], + 'Headers', + 'key' + ) + } + + values () { + webidl.brandCheck(this, Headers) + + return makeIterator( + () => [...this[kHeadersSortedMap].values()], + 'Headers', + 'value' + ) + } + + entries () { + webidl.brandCheck(this, Headers) + + return makeIterator( + () => [...this[kHeadersSortedMap].values()], + 'Headers', + 'key+value' + ) + } + + /** + * @param {(value: string, key: string, self: Headers) => void} callbackFn + * @param {unknown} thisArg + */ + forEach (callbackFn, thisArg = globalThis) { + webidl.brandCheck(this, Headers) + + webidl.argumentLengthCheck(arguments, 1, { header: 'Headers.forEach' }) + + if (typeof callbackFn !== 'function') { + throw new TypeError( + "Failed to execute 'forEach' on 'Headers': parameter 1 is not of type 'Function'." + ) + } + + for (const [key, value] of this) { + callbackFn.apply(thisArg, [value, key, this]) + } + } + + [Symbol.for('nodejs.util.inspect.custom')] () { + webidl.brandCheck(this, Headers) + + return this[kHeadersList] + } +} + +Headers.prototype[Symbol.iterator] = Headers.prototype.entries + +Object.defineProperties(Headers.prototype, { + append: kEnumerableProperty, + delete: kEnumerableProperty, + get: kEnumerableProperty, + has: kEnumerableProperty, + set: kEnumerableProperty, + getSetCookie: kEnumerableProperty, + keys: kEnumerableProperty, + values: kEnumerableProperty, + entries: kEnumerableProperty, + forEach: kEnumerableProperty, + [Symbol.iterator]: { enumerable: false }, + [Symbol.toStringTag]: { + value: 'Headers', + configurable: true + } +}) + +webidl.converters.HeadersInit = function (V) { + if (webidl.util.Type(V) === 'Object') { + if (V[Symbol.iterator]) { + return webidl.converters['sequence>'](V) + } + + return webidl.converters['record'](V) + } + + throw webidl.errors.conversionFailed({ + prefix: 'Headers constructor', + argument: 'Argument 1', + types: ['sequence>', 'record'] + }) +} + +module.exports = { + fill, + Headers, + HeadersList +} + + +/***/ }), + +/***/ 4881: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; +// https://github.com/Ethan-Arrowood/undici-fetch + + + +const { + Response, + makeNetworkError, + makeAppropriateNetworkError, + filterResponse, + makeResponse +} = __nccwpck_require__(7823) +const { Headers } = __nccwpck_require__(554) +const { Request, makeRequest } = __nccwpck_require__(8359) +const zlib = __nccwpck_require__(9796) +const { + bytesMatch, + makePolicyContainer, + clonePolicyContainer, + requestBadPort, + TAOCheck, + appendRequestOriginHeader, + responseLocationURL, + requestCurrentURL, + setRequestReferrerPolicyOnRedirect, + tryUpgradeRequestToAPotentiallyTrustworthyURL, + createOpaqueTimingInfo, + appendFetchMetadata, + corsCheck, + crossOriginResourcePolicyCheck, + determineRequestsReferrer, + coarsenedSharedCurrentTime, + createDeferredPromise, + isBlobLike, + sameOrigin, + isCancelled, + isAborted, + isErrorLike, + fullyReadBody, + readableStreamClose, + isomorphicEncode, + urlIsLocal, + urlIsHttpHttpsScheme, + urlHasHttpsScheme +} = __nccwpck_require__(2538) +const { kState, kHeaders, kGuard, kRealm } = __nccwpck_require__(5861) +const assert = __nccwpck_require__(9491) +const { safelyExtractBody } = __nccwpck_require__(1472) +const { + redirectStatusSet, + nullBodyStatus, + safeMethodsSet, + requestBodyHeader, + subresourceSet, + DOMException +} = __nccwpck_require__(1037) +const { kHeadersList } = __nccwpck_require__(2785) +const EE = __nccwpck_require__(2361) +const { Readable, pipeline } = __nccwpck_require__(2781) +const { addAbortListener, isErrored, isReadable, nodeMajor, nodeMinor } = __nccwpck_require__(3983) +const { dataURLProcessor, serializeAMimeType } = __nccwpck_require__(685) +const { TransformStream } = __nccwpck_require__(5356) +const { getGlobalDispatcher } = __nccwpck_require__(1892) +const { webidl } = __nccwpck_require__(1744) +const { STATUS_CODES } = __nccwpck_require__(3685) +const GET_OR_HEAD = ['GET', 'HEAD'] + +/** @type {import('buffer').resolveObjectURL} */ +let resolveObjectURL +let ReadableStream = globalThis.ReadableStream + +class Fetch extends EE { + constructor (dispatcher) { + super() + + this.dispatcher = dispatcher + this.connection = null + this.dump = false + this.state = 'ongoing' + // 2 terminated listeners get added per request, + // but only 1 gets removed. If there are 20 redirects, + // 21 listeners will be added. + // See https://github.com/nodejs/undici/issues/1711 + // TODO (fix): Find and fix root cause for leaked listener. + this.setMaxListeners(21) + } + + terminate (reason) { + if (this.state !== 'ongoing') { + return + } + + this.state = 'terminated' + this.connection?.destroy(reason) + this.emit('terminated', reason) + } + + // https://fetch.spec.whatwg.org/#fetch-controller-abort + abort (error) { + if (this.state !== 'ongoing') { + return + } + + // 1. Set controller’s state to "aborted". + this.state = 'aborted' + + // 2. Let fallbackError be an "AbortError" DOMException. + // 3. Set error to fallbackError if it is not given. + if (!error) { + error = new DOMException('The operation was aborted.', 'AbortError') + } + + // 4. Let serializedError be StructuredSerialize(error). + // If that threw an exception, catch it, and let + // serializedError be StructuredSerialize(fallbackError). + + // 5. Set controller’s serialized abort reason to serializedError. + this.serializedAbortReason = error + + this.connection?.destroy(error) + this.emit('terminated', error) + } +} + +// https://fetch.spec.whatwg.org/#fetch-method +function fetch (input, init = {}) { + webidl.argumentLengthCheck(arguments, 1, { header: 'globalThis.fetch' }) + + // 1. Let p be a new promise. + const p = createDeferredPromise() + + // 2. Let requestObject be the result of invoking the initial value of + // Request as constructor with input and init as arguments. If this throws + // an exception, reject p with it and return p. + let requestObject + + try { + requestObject = new Request(input, init) + } catch (e) { + p.reject(e) + return p.promise + } + + // 3. Let request be requestObject’s request. + const request = requestObject[kState] + + // 4. If requestObject’s signal’s aborted flag is set, then: + if (requestObject.signal.aborted) { + // 1. Abort the fetch() call with p, request, null, and + // requestObject’s signal’s abort reason. + abortFetch(p, request, null, requestObject.signal.reason) + + // 2. Return p. + return p.promise + } + + // 5. Let globalObject be request’s client’s global object. + const globalObject = request.client.globalObject + + // 6. If globalObject is a ServiceWorkerGlobalScope object, then set + // request’s service-workers mode to "none". + if (globalObject?.constructor?.name === 'ServiceWorkerGlobalScope') { + request.serviceWorkers = 'none' + } + + // 7. Let responseObject be null. + let responseObject = null + + // 8. Let relevantRealm be this’s relevant Realm. + const relevantRealm = null + + // 9. Let locallyAborted be false. + let locallyAborted = false + + // 10. Let controller be null. + let controller = null + + // 11. Add the following abort steps to requestObject’s signal: + addAbortListener( + requestObject.signal, + () => { + // 1. Set locallyAborted to true. + locallyAborted = true + + // 2. Assert: controller is non-null. + assert(controller != null) + + // 3. Abort controller with requestObject’s signal’s abort reason. + controller.abort(requestObject.signal.reason) + + // 4. Abort the fetch() call with p, request, responseObject, + // and requestObject’s signal’s abort reason. + abortFetch(p, request, responseObject, requestObject.signal.reason) + } + ) + + // 12. Let handleFetchDone given response response be to finalize and + // report timing with response, globalObject, and "fetch". + const handleFetchDone = (response) => + finalizeAndReportTiming(response, 'fetch') + + // 13. Set controller to the result of calling fetch given request, + // with processResponseEndOfBody set to handleFetchDone, and processResponse + // given response being these substeps: + + const processResponse = (response) => { + // 1. If locallyAborted is true, terminate these substeps. + if (locallyAborted) { + return Promise.resolve() + } + + // 2. If response’s aborted flag is set, then: + if (response.aborted) { + // 1. Let deserializedError be the result of deserialize a serialized + // abort reason given controller’s serialized abort reason and + // relevantRealm. + + // 2. Abort the fetch() call with p, request, responseObject, and + // deserializedError. + + abortFetch(p, request, responseObject, controller.serializedAbortReason) + return Promise.resolve() + } + + // 3. If response is a network error, then reject p with a TypeError + // and terminate these substeps. + if (response.type === 'error') { + p.reject( + Object.assign(new TypeError('fetch failed'), { cause: response.error }) + ) + return Promise.resolve() + } + + // 4. Set responseObject to the result of creating a Response object, + // given response, "immutable", and relevantRealm. + responseObject = new Response() + responseObject[kState] = response + responseObject[kRealm] = relevantRealm + responseObject[kHeaders][kHeadersList] = response.headersList + responseObject[kHeaders][kGuard] = 'immutable' + responseObject[kHeaders][kRealm] = relevantRealm + + // 5. Resolve p with responseObject. + p.resolve(responseObject) + } + + controller = fetching({ + request, + processResponseEndOfBody: handleFetchDone, + processResponse, + dispatcher: init.dispatcher ?? getGlobalDispatcher() // undici + }) + + // 14. Return p. + return p.promise +} + +// https://fetch.spec.whatwg.org/#finalize-and-report-timing +function finalizeAndReportTiming (response, initiatorType = 'other') { + // 1. If response is an aborted network error, then return. + if (response.type === 'error' && response.aborted) { + return + } + + // 2. If response’s URL list is null or empty, then return. + if (!response.urlList?.length) { + return + } + + // 3. Let originalURL be response’s URL list[0]. + const originalURL = response.urlList[0] + + // 4. Let timingInfo be response’s timing info. + let timingInfo = response.timingInfo + + // 5. Let cacheState be response’s cache state. + let cacheState = response.cacheState + + // 6. If originalURL’s scheme is not an HTTP(S) scheme, then return. + if (!urlIsHttpHttpsScheme(originalURL)) { + return + } + + // 7. If timingInfo is null, then return. + if (timingInfo === null) { + return + } + + // 8. If response’s timing allow passed flag is not set, then: + if (!timingInfo.timingAllowPassed) { + // 1. Set timingInfo to a the result of creating an opaque timing info for timingInfo. + timingInfo = createOpaqueTimingInfo({ + startTime: timingInfo.startTime + }) + + // 2. Set cacheState to the empty string. + cacheState = '' + } + + // 9. Set timingInfo’s end time to the coarsened shared current time + // given global’s relevant settings object’s cross-origin isolated + // capability. + // TODO: given global’s relevant settings object’s cross-origin isolated + // capability? + timingInfo.endTime = coarsenedSharedCurrentTime() + + // 10. Set response’s timing info to timingInfo. + response.timingInfo = timingInfo + + // 11. Mark resource timing for timingInfo, originalURL, initiatorType, + // global, and cacheState. + markResourceTiming( + timingInfo, + originalURL, + initiatorType, + globalThis, + cacheState + ) +} + +// https://w3c.github.io/resource-timing/#dfn-mark-resource-timing +function markResourceTiming (timingInfo, originalURL, initiatorType, globalThis, cacheState) { + if (nodeMajor > 18 || (nodeMajor === 18 && nodeMinor >= 2)) { + performance.markResourceTiming(timingInfo, originalURL.href, initiatorType, globalThis, cacheState) + } +} + +// https://fetch.spec.whatwg.org/#abort-fetch +function abortFetch (p, request, responseObject, error) { + // Note: AbortSignal.reason was added in node v17.2.0 + // which would give us an undefined error to reject with. + // Remove this once node v16 is no longer supported. + if (!error) { + error = new DOMException('The operation was aborted.', 'AbortError') + } + + // 1. Reject promise with error. + p.reject(error) + + // 2. If request’s body is not null and is readable, then cancel request’s + // body with error. + if (request.body != null && isReadable(request.body?.stream)) { + request.body.stream.cancel(error).catch((err) => { + if (err.code === 'ERR_INVALID_STATE') { + // Node bug? + return + } + throw err + }) + } + + // 3. If responseObject is null, then return. + if (responseObject == null) { + return + } + + // 4. Let response be responseObject’s response. + const response = responseObject[kState] + + // 5. If response’s body is not null and is readable, then error response’s + // body with error. + if (response.body != null && isReadable(response.body?.stream)) { + response.body.stream.cancel(error).catch((err) => { + if (err.code === 'ERR_INVALID_STATE') { + // Node bug? + return + } + throw err + }) + } +} + +// https://fetch.spec.whatwg.org/#fetching +function fetching ({ + request, + processRequestBodyChunkLength, + processRequestEndOfBody, + processResponse, + processResponseEndOfBody, + processResponseConsumeBody, + useParallelQueue = false, + dispatcher // undici +}) { + // 1. Let taskDestination be null. + let taskDestination = null + + // 2. Let crossOriginIsolatedCapability be false. + let crossOriginIsolatedCapability = false + + // 3. If request’s client is non-null, then: + if (request.client != null) { + // 1. Set taskDestination to request’s client’s global object. + taskDestination = request.client.globalObject + + // 2. Set crossOriginIsolatedCapability to request’s client’s cross-origin + // isolated capability. + crossOriginIsolatedCapability = + request.client.crossOriginIsolatedCapability + } + + // 4. If useParallelQueue is true, then set taskDestination to the result of + // starting a new parallel queue. + // TODO + + // 5. Let timingInfo be a new fetch timing info whose start time and + // post-redirect start time are the coarsened shared current time given + // crossOriginIsolatedCapability. + const currenTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability) + const timingInfo = createOpaqueTimingInfo({ + startTime: currenTime + }) + + // 6. Let fetchParams be a new fetch params whose + // request is request, + // timing info is timingInfo, + // process request body chunk length is processRequestBodyChunkLength, + // process request end-of-body is processRequestEndOfBody, + // process response is processResponse, + // process response consume body is processResponseConsumeBody, + // process response end-of-body is processResponseEndOfBody, + // task destination is taskDestination, + // and cross-origin isolated capability is crossOriginIsolatedCapability. + const fetchParams = { + controller: new Fetch(dispatcher), + request, + timingInfo, + processRequestBodyChunkLength, + processRequestEndOfBody, + processResponse, + processResponseConsumeBody, + processResponseEndOfBody, + taskDestination, + crossOriginIsolatedCapability + } + + // 7. If request’s body is a byte sequence, then set request’s body to + // request’s body as a body. + // NOTE: Since fetching is only called from fetch, body should already be + // extracted. + assert(!request.body || request.body.stream) + + // 8. If request’s window is "client", then set request’s window to request’s + // client, if request’s client’s global object is a Window object; otherwise + // "no-window". + if (request.window === 'client') { + // TODO: What if request.client is null? + request.window = + request.client?.globalObject?.constructor?.name === 'Window' + ? request.client + : 'no-window' + } + + // 9. If request’s origin is "client", then set request’s origin to request’s + // client’s origin. + if (request.origin === 'client') { + // TODO: What if request.client is null? + request.origin = request.client?.origin + } + + // 10. If all of the following conditions are true: + // TODO + + // 11. If request’s policy container is "client", then: + if (request.policyContainer === 'client') { + // 1. If request’s client is non-null, then set request’s policy + // container to a clone of request’s client’s policy container. [HTML] + if (request.client != null) { + request.policyContainer = clonePolicyContainer( + request.client.policyContainer + ) + } else { + // 2. Otherwise, set request’s policy container to a new policy + // container. + request.policyContainer = makePolicyContainer() + } + } + + // 12. If request’s header list does not contain `Accept`, then: + if (!request.headersList.contains('accept')) { + // 1. Let value be `*/*`. + const value = '*/*' + + // 2. A user agent should set value to the first matching statement, if + // any, switching on request’s destination: + // "document" + // "frame" + // "iframe" + // `text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8` + // "image" + // `image/png,image/svg+xml,image/*;q=0.8,*/*;q=0.5` + // "style" + // `text/css,*/*;q=0.1` + // TODO + + // 3. Append `Accept`/value to request’s header list. + request.headersList.append('accept', value) + } + + // 13. If request’s header list does not contain `Accept-Language`, then + // user agents should append `Accept-Language`/an appropriate value to + // request’s header list. + if (!request.headersList.contains('accept-language')) { + request.headersList.append('accept-language', '*') + } + + // 14. If request’s priority is null, then use request’s initiator and + // destination appropriately in setting request’s priority to a + // user-agent-defined object. + if (request.priority === null) { + // TODO + } + + // 15. If request is a subresource request, then: + if (subresourceSet.has(request.destination)) { + // TODO + } + + // 16. Run main fetch given fetchParams. + mainFetch(fetchParams) + .catch(err => { + fetchParams.controller.terminate(err) + }) + + // 17. Return fetchParam's controller + return fetchParams.controller +} + +// https://fetch.spec.whatwg.org/#concept-main-fetch +async function mainFetch (fetchParams, recursive = false) { + // 1. Let request be fetchParams’s request. + const request = fetchParams.request + + // 2. Let response be null. + let response = null + + // 3. If request’s local-URLs-only flag is set and request’s current URL is + // not local, then set response to a network error. + if (request.localURLsOnly && !urlIsLocal(requestCurrentURL(request))) { + response = makeNetworkError('local URLs only') + } + + // 4. Run report Content Security Policy violations for request. + // TODO + + // 5. Upgrade request to a potentially trustworthy URL, if appropriate. + tryUpgradeRequestToAPotentiallyTrustworthyURL(request) + + // 6. If should request be blocked due to a bad port, should fetching request + // be blocked as mixed content, or should request be blocked by Content + // Security Policy returns blocked, then set response to a network error. + if (requestBadPort(request) === 'blocked') { + response = makeNetworkError('bad port') + } + // TODO: should fetching request be blocked as mixed content? + // TODO: should request be blocked by Content Security Policy? + + // 7. If request’s referrer policy is the empty string, then set request’s + // referrer policy to request’s policy container’s referrer policy. + if (request.referrerPolicy === '') { + request.referrerPolicy = request.policyContainer.referrerPolicy + } + + // 8. If request’s referrer is not "no-referrer", then set request’s + // referrer to the result of invoking determine request’s referrer. + if (request.referrer !== 'no-referrer') { + request.referrer = determineRequestsReferrer(request) + } + + // 9. Set request’s current URL’s scheme to "https" if all of the following + // conditions are true: + // - request’s current URL’s scheme is "http" + // - request’s current URL’s host is a domain + // - Matching request’s current URL’s host per Known HSTS Host Domain Name + // Matching results in either a superdomain match with an asserted + // includeSubDomains directive or a congruent match (with or without an + // asserted includeSubDomains directive). [HSTS] + // TODO + + // 10. If recursive is false, then run the remaining steps in parallel. + // TODO + + // 11. If response is null, then set response to the result of running + // the steps corresponding to the first matching statement: + if (response === null) { + response = await (async () => { + const currentURL = requestCurrentURL(request) + + if ( + // - request’s current URL’s origin is same origin with request’s origin, + // and request’s response tainting is "basic" + (sameOrigin(currentURL, request.url) && request.responseTainting === 'basic') || + // request’s current URL’s scheme is "data" + (currentURL.protocol === 'data:') || + // - request’s mode is "navigate" or "websocket" + (request.mode === 'navigate' || request.mode === 'websocket') + ) { + // 1. Set request’s response tainting to "basic". + request.responseTainting = 'basic' + + // 2. Return the result of running scheme fetch given fetchParams. + return await schemeFetch(fetchParams) + } + + // request’s mode is "same-origin" + if (request.mode === 'same-origin') { + // 1. Return a network error. + return makeNetworkError('request mode cannot be "same-origin"') + } + + // request’s mode is "no-cors" + if (request.mode === 'no-cors') { + // 1. If request’s redirect mode is not "follow", then return a network + // error. + if (request.redirect !== 'follow') { + return makeNetworkError( + 'redirect mode cannot be "follow" for "no-cors" request' + ) + } + + // 2. Set request’s response tainting to "opaque". + request.responseTainting = 'opaque' + + // 3. Return the result of running scheme fetch given fetchParams. + return await schemeFetch(fetchParams) + } + + // request’s current URL’s scheme is not an HTTP(S) scheme + if (!urlIsHttpHttpsScheme(requestCurrentURL(request))) { + // Return a network error. + return makeNetworkError('URL scheme must be a HTTP(S) scheme') + } + + // - request’s use-CORS-preflight flag is set + // - request’s unsafe-request flag is set and either request’s method is + // not a CORS-safelisted method or CORS-unsafe request-header names with + // request’s header list is not empty + // 1. Set request’s response tainting to "cors". + // 2. Let corsWithPreflightResponse be the result of running HTTP fetch + // given fetchParams and true. + // 3. If corsWithPreflightResponse is a network error, then clear cache + // entries using request. + // 4. Return corsWithPreflightResponse. + // TODO + + // Otherwise + // 1. Set request’s response tainting to "cors". + request.responseTainting = 'cors' + + // 2. Return the result of running HTTP fetch given fetchParams. + return await httpFetch(fetchParams) + })() + } + + // 12. If recursive is true, then return response. + if (recursive) { + return response + } + + // 13. If response is not a network error and response is not a filtered + // response, then: + if (response.status !== 0 && !response.internalResponse) { + // If request’s response tainting is "cors", then: + if (request.responseTainting === 'cors') { + // 1. Let headerNames be the result of extracting header list values + // given `Access-Control-Expose-Headers` and response’s header list. + // TODO + // 2. If request’s credentials mode is not "include" and headerNames + // contains `*`, then set response’s CORS-exposed header-name list to + // all unique header names in response’s header list. + // TODO + // 3. Otherwise, if headerNames is not null or failure, then set + // response’s CORS-exposed header-name list to headerNames. + // TODO + } + + // Set response to the following filtered response with response as its + // internal response, depending on request’s response tainting: + if (request.responseTainting === 'basic') { + response = filterResponse(response, 'basic') + } else if (request.responseTainting === 'cors') { + response = filterResponse(response, 'cors') + } else if (request.responseTainting === 'opaque') { + response = filterResponse(response, 'opaque') + } else { + assert(false) + } + } + + // 14. Let internalResponse be response, if response is a network error, + // and response’s internal response otherwise. + let internalResponse = + response.status === 0 ? response : response.internalResponse + + // 15. If internalResponse’s URL list is empty, then set it to a clone of + // request’s URL list. + if (internalResponse.urlList.length === 0) { + internalResponse.urlList.push(...request.urlList) + } + + // 16. If request’s timing allow failed flag is unset, then set + // internalResponse’s timing allow passed flag. + if (!request.timingAllowFailed) { + response.timingAllowPassed = true + } + + // 17. If response is not a network error and any of the following returns + // blocked + // - should internalResponse to request be blocked as mixed content + // - should internalResponse to request be blocked by Content Security Policy + // - should internalResponse to request be blocked due to its MIME type + // - should internalResponse to request be blocked due to nosniff + // TODO + + // 18. If response’s type is "opaque", internalResponse’s status is 206, + // internalResponse’s range-requested flag is set, and request’s header + // list does not contain `Range`, then set response and internalResponse + // to a network error. + if ( + response.type === 'opaque' && + internalResponse.status === 206 && + internalResponse.rangeRequested && + !request.headers.contains('range') + ) { + response = internalResponse = makeNetworkError() + } + + // 19. If response is not a network error and either request’s method is + // `HEAD` or `CONNECT`, or internalResponse’s status is a null body status, + // set internalResponse’s body to null and disregard any enqueuing toward + // it (if any). + if ( + response.status !== 0 && + (request.method === 'HEAD' || + request.method === 'CONNECT' || + nullBodyStatus.includes(internalResponse.status)) + ) { + internalResponse.body = null + fetchParams.controller.dump = true + } + + // 20. If request’s integrity metadata is not the empty string, then: + if (request.integrity) { + // 1. Let processBodyError be this step: run fetch finale given fetchParams + // and a network error. + const processBodyError = (reason) => + fetchFinale(fetchParams, makeNetworkError(reason)) + + // 2. If request’s response tainting is "opaque", or response’s body is null, + // then run processBodyError and abort these steps. + if (request.responseTainting === 'opaque' || response.body == null) { + processBodyError(response.error) + return + } + + // 3. Let processBody given bytes be these steps: + const processBody = (bytes) => { + // 1. If bytes do not match request’s integrity metadata, + // then run processBodyError and abort these steps. [SRI] + if (!bytesMatch(bytes, request.integrity)) { + processBodyError('integrity mismatch') + return + } + + // 2. Set response’s body to bytes as a body. + response.body = safelyExtractBody(bytes)[0] + + // 3. Run fetch finale given fetchParams and response. + fetchFinale(fetchParams, response) + } + + // 4. Fully read response’s body given processBody and processBodyError. + await fullyReadBody(response.body, processBody, processBodyError) + } else { + // 21. Otherwise, run fetch finale given fetchParams and response. + fetchFinale(fetchParams, response) + } +} + +// https://fetch.spec.whatwg.org/#concept-scheme-fetch +// given a fetch params fetchParams +function schemeFetch (fetchParams) { + // Note: since the connection is destroyed on redirect, which sets fetchParams to a + // cancelled state, we do not want this condition to trigger *unless* there have been + // no redirects. See https://github.com/nodejs/undici/issues/1776 + // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams. + if (isCancelled(fetchParams) && fetchParams.request.redirectCount === 0) { + return Promise.resolve(makeAppropriateNetworkError(fetchParams)) + } + + // 2. Let request be fetchParams’s request. + const { request } = fetchParams + + const { protocol: scheme } = requestCurrentURL(request) + + // 3. Switch on request’s current URL’s scheme and run the associated steps: + switch (scheme) { + case 'about:': { + // If request’s current URL’s path is the string "blank", then return a new response + // whose status message is `OK`, header list is « (`Content-Type`, `text/html;charset=utf-8`) », + // and body is the empty byte sequence as a body. + + // Otherwise, return a network error. + return Promise.resolve(makeNetworkError('about scheme is not supported')) + } + case 'blob:': { + if (!resolveObjectURL) { + resolveObjectURL = (__nccwpck_require__(4300).resolveObjectURL) + } + + // 1. Let blobURLEntry be request’s current URL’s blob URL entry. + const blobURLEntry = requestCurrentURL(request) + + // https://github.com/web-platform-tests/wpt/blob/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/FileAPI/url/resources/fetch-tests.js#L52-L56 + // Buffer.resolveObjectURL does not ignore URL queries. + if (blobURLEntry.search.length !== 0) { + return Promise.resolve(makeNetworkError('NetworkError when attempting to fetch resource.')) + } + + const blobURLEntryObject = resolveObjectURL(blobURLEntry.toString()) + + // 2. If request’s method is not `GET`, blobURLEntry is null, or blobURLEntry’s + // object is not a Blob object, then return a network error. + if (request.method !== 'GET' || !isBlobLike(blobURLEntryObject)) { + return Promise.resolve(makeNetworkError('invalid method')) + } + + // 3. Let bodyWithType be the result of safely extracting blobURLEntry’s object. + const bodyWithType = safelyExtractBody(blobURLEntryObject) + + // 4. Let body be bodyWithType’s body. + const body = bodyWithType[0] + + // 5. Let length be body’s length, serialized and isomorphic encoded. + const length = isomorphicEncode(`${body.length}`) + + // 6. Let type be bodyWithType’s type if it is non-null; otherwise the empty byte sequence. + const type = bodyWithType[1] ?? '' + + // 7. Return a new response whose status message is `OK`, header list is + // « (`Content-Length`, length), (`Content-Type`, type) », and body is body. + const response = makeResponse({ + statusText: 'OK', + headersList: [ + ['content-length', { name: 'Content-Length', value: length }], + ['content-type', { name: 'Content-Type', value: type }] + ] + }) + + response.body = body + + return Promise.resolve(response) + } + case 'data:': { + // 1. Let dataURLStruct be the result of running the + // data: URL processor on request’s current URL. + const currentURL = requestCurrentURL(request) + const dataURLStruct = dataURLProcessor(currentURL) + + // 2. If dataURLStruct is failure, then return a + // network error. + if (dataURLStruct === 'failure') { + return Promise.resolve(makeNetworkError('failed to fetch the data URL')) + } + + // 3. Let mimeType be dataURLStruct’s MIME type, serialized. + const mimeType = serializeAMimeType(dataURLStruct.mimeType) + + // 4. Return a response whose status message is `OK`, + // header list is « (`Content-Type`, mimeType) », + // and body is dataURLStruct’s body as a body. + return Promise.resolve(makeResponse({ + statusText: 'OK', + headersList: [ + ['content-type', { name: 'Content-Type', value: mimeType }] + ], + body: safelyExtractBody(dataURLStruct.body)[0] + })) + } + case 'file:': { + // For now, unfortunate as it is, file URLs are left as an exercise for the reader. + // When in doubt, return a network error. + return Promise.resolve(makeNetworkError('not implemented... yet...')) + } + case 'http:': + case 'https:': { + // Return the result of running HTTP fetch given fetchParams. + + return httpFetch(fetchParams) + .catch((err) => makeNetworkError(err)) + } + default: { + return Promise.resolve(makeNetworkError('unknown scheme')) + } + } +} + +// https://fetch.spec.whatwg.org/#finalize-response +function finalizeResponse (fetchParams, response) { + // 1. Set fetchParams’s request’s done flag. + fetchParams.request.done = true + + // 2, If fetchParams’s process response done is not null, then queue a fetch + // task to run fetchParams’s process response done given response, with + // fetchParams’s task destination. + if (fetchParams.processResponseDone != null) { + queueMicrotask(() => fetchParams.processResponseDone(response)) + } +} + +// https://fetch.spec.whatwg.org/#fetch-finale +function fetchFinale (fetchParams, response) { + // 1. If response is a network error, then: + if (response.type === 'error') { + // 1. Set response’s URL list to « fetchParams’s request’s URL list[0] ». + response.urlList = [fetchParams.request.urlList[0]] + + // 2. Set response’s timing info to the result of creating an opaque timing + // info for fetchParams’s timing info. + response.timingInfo = createOpaqueTimingInfo({ + startTime: fetchParams.timingInfo.startTime + }) + } + + // 2. Let processResponseEndOfBody be the following steps: + const processResponseEndOfBody = () => { + // 1. Set fetchParams’s request’s done flag. + fetchParams.request.done = true + + // If fetchParams’s process response end-of-body is not null, + // then queue a fetch task to run fetchParams’s process response + // end-of-body given response with fetchParams’s task destination. + if (fetchParams.processResponseEndOfBody != null) { + queueMicrotask(() => fetchParams.processResponseEndOfBody(response)) + } + } + + // 3. If fetchParams’s process response is non-null, then queue a fetch task + // to run fetchParams’s process response given response, with fetchParams’s + // task destination. + if (fetchParams.processResponse != null) { + queueMicrotask(() => fetchParams.processResponse(response)) + } + + // 4. If response’s body is null, then run processResponseEndOfBody. + if (response.body == null) { + processResponseEndOfBody() + } else { + // 5. Otherwise: + + // 1. Let transformStream be a new a TransformStream. + + // 2. Let identityTransformAlgorithm be an algorithm which, given chunk, + // enqueues chunk in transformStream. + const identityTransformAlgorithm = (chunk, controller) => { + controller.enqueue(chunk) + } + + // 3. Set up transformStream with transformAlgorithm set to identityTransformAlgorithm + // and flushAlgorithm set to processResponseEndOfBody. + const transformStream = new TransformStream({ + start () {}, + transform: identityTransformAlgorithm, + flush: processResponseEndOfBody + }, { + size () { + return 1 + } + }, { + size () { + return 1 + } + }) + + // 4. Set response’s body to the result of piping response’s body through transformStream. + response.body = { stream: response.body.stream.pipeThrough(transformStream) } + } + + // 6. If fetchParams’s process response consume body is non-null, then: + if (fetchParams.processResponseConsumeBody != null) { + // 1. Let processBody given nullOrBytes be this step: run fetchParams’s + // process response consume body given response and nullOrBytes. + const processBody = (nullOrBytes) => fetchParams.processResponseConsumeBody(response, nullOrBytes) + + // 2. Let processBodyError be this step: run fetchParams’s process + // response consume body given response and failure. + const processBodyError = (failure) => fetchParams.processResponseConsumeBody(response, failure) + + // 3. If response’s body is null, then queue a fetch task to run processBody + // given null, with fetchParams’s task destination. + if (response.body == null) { + queueMicrotask(() => processBody(null)) + } else { + // 4. Otherwise, fully read response’s body given processBody, processBodyError, + // and fetchParams’s task destination. + return fullyReadBody(response.body, processBody, processBodyError) + } + return Promise.resolve() + } +} + +// https://fetch.spec.whatwg.org/#http-fetch +async function httpFetch (fetchParams) { + // 1. Let request be fetchParams’s request. + const request = fetchParams.request + + // 2. Let response be null. + let response = null + + // 3. Let actualResponse be null. + let actualResponse = null + + // 4. Let timingInfo be fetchParams’s timing info. + const timingInfo = fetchParams.timingInfo + + // 5. If request’s service-workers mode is "all", then: + if (request.serviceWorkers === 'all') { + // TODO + } + + // 6. If response is null, then: + if (response === null) { + // 1. If makeCORSPreflight is true and one of these conditions is true: + // TODO + + // 2. If request’s redirect mode is "follow", then set request’s + // service-workers mode to "none". + if (request.redirect === 'follow') { + request.serviceWorkers = 'none' + } + + // 3. Set response and actualResponse to the result of running + // HTTP-network-or-cache fetch given fetchParams. + actualResponse = response = await httpNetworkOrCacheFetch(fetchParams) + + // 4. If request’s response tainting is "cors" and a CORS check + // for request and response returns failure, then return a network error. + if ( + request.responseTainting === 'cors' && + corsCheck(request, response) === 'failure' + ) { + return makeNetworkError('cors failure') + } + + // 5. If the TAO check for request and response returns failure, then set + // request’s timing allow failed flag. + if (TAOCheck(request, response) === 'failure') { + request.timingAllowFailed = true + } + } + + // 7. If either request’s response tainting or response’s type + // is "opaque", and the cross-origin resource policy check with + // request’s origin, request’s client, request’s destination, + // and actualResponse returns blocked, then return a network error. + if ( + (request.responseTainting === 'opaque' || response.type === 'opaque') && + crossOriginResourcePolicyCheck( + request.origin, + request.client, + request.destination, + actualResponse + ) === 'blocked' + ) { + return makeNetworkError('blocked') + } + + // 8. If actualResponse’s status is a redirect status, then: + if (redirectStatusSet.has(actualResponse.status)) { + // 1. If actualResponse’s status is not 303, request’s body is not null, + // and the connection uses HTTP/2, then user agents may, and are even + // encouraged to, transmit an RST_STREAM frame. + // See, https://github.com/whatwg/fetch/issues/1288 + if (request.redirect !== 'manual') { + fetchParams.controller.connection.destroy() + } + + // 2. Switch on request’s redirect mode: + if (request.redirect === 'error') { + // Set response to a network error. + response = makeNetworkError('unexpected redirect') + } else if (request.redirect === 'manual') { + // Set response to an opaque-redirect filtered response whose internal + // response is actualResponse. + // NOTE(spec): On the web this would return an `opaqueredirect` response, + // but that doesn't make sense server side. + // See https://github.com/nodejs/undici/issues/1193. + response = actualResponse + } else if (request.redirect === 'follow') { + // Set response to the result of running HTTP-redirect fetch given + // fetchParams and response. + response = await httpRedirectFetch(fetchParams, response) + } else { + assert(false) + } + } + + // 9. Set response’s timing info to timingInfo. + response.timingInfo = timingInfo + + // 10. Return response. + return response +} + +// https://fetch.spec.whatwg.org/#http-redirect-fetch +function httpRedirectFetch (fetchParams, response) { + // 1. Let request be fetchParams’s request. + const request = fetchParams.request + + // 2. Let actualResponse be response, if response is not a filtered response, + // and response’s internal response otherwise. + const actualResponse = response.internalResponse + ? response.internalResponse + : response + + // 3. Let locationURL be actualResponse’s location URL given request’s current + // URL’s fragment. + let locationURL + + try { + locationURL = responseLocationURL( + actualResponse, + requestCurrentURL(request).hash + ) + + // 4. If locationURL is null, then return response. + if (locationURL == null) { + return response + } + } catch (err) { + // 5. If locationURL is failure, then return a network error. + return Promise.resolve(makeNetworkError(err)) + } + + // 6. If locationURL’s scheme is not an HTTP(S) scheme, then return a network + // error. + if (!urlIsHttpHttpsScheme(locationURL)) { + return Promise.resolve(makeNetworkError('URL scheme must be a HTTP(S) scheme')) + } + + // 7. If request’s redirect count is 20, then return a network error. + if (request.redirectCount === 20) { + return Promise.resolve(makeNetworkError('redirect count exceeded')) + } + + // 8. Increase request’s redirect count by 1. + request.redirectCount += 1 + + // 9. If request’s mode is "cors", locationURL includes credentials, and + // request’s origin is not same origin with locationURL’s origin, then return + // a network error. + if ( + request.mode === 'cors' && + (locationURL.username || locationURL.password) && + !sameOrigin(request, locationURL) + ) { + return Promise.resolve(makeNetworkError('cross origin not allowed for request mode "cors"')) + } + + // 10. If request’s response tainting is "cors" and locationURL includes + // credentials, then return a network error. + if ( + request.responseTainting === 'cors' && + (locationURL.username || locationURL.password) + ) { + return Promise.resolve(makeNetworkError( + 'URL cannot contain credentials for request mode "cors"' + )) + } + + // 11. If actualResponse’s status is not 303, request’s body is non-null, + // and request’s body’s source is null, then return a network error. + if ( + actualResponse.status !== 303 && + request.body != null && + request.body.source == null + ) { + return Promise.resolve(makeNetworkError()) + } + + // 12. If one of the following is true + // - actualResponse’s status is 301 or 302 and request’s method is `POST` + // - actualResponse’s status is 303 and request’s method is not `GET` or `HEAD` + if ( + ([301, 302].includes(actualResponse.status) && request.method === 'POST') || + (actualResponse.status === 303 && + !GET_OR_HEAD.includes(request.method)) + ) { + // then: + // 1. Set request’s method to `GET` and request’s body to null. + request.method = 'GET' + request.body = null + + // 2. For each headerName of request-body-header name, delete headerName from + // request’s header list. + for (const headerName of requestBodyHeader) { + request.headersList.delete(headerName) + } + } + + // 13. If request’s current URL’s origin is not same origin with locationURL’s + // origin, then for each headerName of CORS non-wildcard request-header name, + // delete headerName from request’s header list. + if (!sameOrigin(requestCurrentURL(request), locationURL)) { + // https://fetch.spec.whatwg.org/#cors-non-wildcard-request-header-name + request.headersList.delete('authorization') + + // "Cookie" and "Host" are forbidden request-headers, which undici doesn't implement. + request.headersList.delete('cookie') + request.headersList.delete('host') + } + + // 14. If request’s body is non-null, then set request’s body to the first return + // value of safely extracting request’s body’s source. + if (request.body != null) { + assert(request.body.source != null) + request.body = safelyExtractBody(request.body.source)[0] + } + + // 15. Let timingInfo be fetchParams’s timing info. + const timingInfo = fetchParams.timingInfo + + // 16. Set timingInfo’s redirect end time and post-redirect start time to the + // coarsened shared current time given fetchParams’s cross-origin isolated + // capability. + timingInfo.redirectEndTime = timingInfo.postRedirectStartTime = + coarsenedSharedCurrentTime(fetchParams.crossOriginIsolatedCapability) + + // 17. If timingInfo’s redirect start time is 0, then set timingInfo’s + // redirect start time to timingInfo’s start time. + if (timingInfo.redirectStartTime === 0) { + timingInfo.redirectStartTime = timingInfo.startTime + } + + // 18. Append locationURL to request’s URL list. + request.urlList.push(locationURL) + + // 19. Invoke set request’s referrer policy on redirect on request and + // actualResponse. + setRequestReferrerPolicyOnRedirect(request, actualResponse) + + // 20. Return the result of running main fetch given fetchParams and true. + return mainFetch(fetchParams, true) +} + +// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch +async function httpNetworkOrCacheFetch ( + fetchParams, + isAuthenticationFetch = false, + isNewConnectionFetch = false +) { + // 1. Let request be fetchParams’s request. + const request = fetchParams.request + + // 2. Let httpFetchParams be null. + let httpFetchParams = null + + // 3. Let httpRequest be null. + let httpRequest = null + + // 4. Let response be null. + let response = null + + // 5. Let storedResponse be null. + // TODO: cache + + // 6. Let httpCache be null. + const httpCache = null + + // 7. Let the revalidatingFlag be unset. + const revalidatingFlag = false + + // 8. Run these steps, but abort when the ongoing fetch is terminated: + + // 1. If request’s window is "no-window" and request’s redirect mode is + // "error", then set httpFetchParams to fetchParams and httpRequest to + // request. + if (request.window === 'no-window' && request.redirect === 'error') { + httpFetchParams = fetchParams + httpRequest = request + } else { + // Otherwise: + + // 1. Set httpRequest to a clone of request. + httpRequest = makeRequest(request) + + // 2. Set httpFetchParams to a copy of fetchParams. + httpFetchParams = { ...fetchParams } + + // 3. Set httpFetchParams’s request to httpRequest. + httpFetchParams.request = httpRequest + } + + // 3. Let includeCredentials be true if one of + const includeCredentials = + request.credentials === 'include' || + (request.credentials === 'same-origin' && + request.responseTainting === 'basic') + + // 4. Let contentLength be httpRequest’s body’s length, if httpRequest’s + // body is non-null; otherwise null. + const contentLength = httpRequest.body ? httpRequest.body.length : null + + // 5. Let contentLengthHeaderValue be null. + let contentLengthHeaderValue = null + + // 6. If httpRequest’s body is null and httpRequest’s method is `POST` or + // `PUT`, then set contentLengthHeaderValue to `0`. + if ( + httpRequest.body == null && + ['POST', 'PUT'].includes(httpRequest.method) + ) { + contentLengthHeaderValue = '0' + } + + // 7. If contentLength is non-null, then set contentLengthHeaderValue to + // contentLength, serialized and isomorphic encoded. + if (contentLength != null) { + contentLengthHeaderValue = isomorphicEncode(`${contentLength}`) + } + + // 8. If contentLengthHeaderValue is non-null, then append + // `Content-Length`/contentLengthHeaderValue to httpRequest’s header + // list. + if (contentLengthHeaderValue != null) { + httpRequest.headersList.append('content-length', contentLengthHeaderValue) + } + + // 9. If contentLengthHeaderValue is non-null, then append (`Content-Length`, + // contentLengthHeaderValue) to httpRequest’s header list. + + // 10. If contentLength is non-null and httpRequest’s keepalive is true, + // then: + if (contentLength != null && httpRequest.keepalive) { + // NOTE: keepalive is a noop outside of browser context. + } + + // 11. If httpRequest’s referrer is a URL, then append + // `Referer`/httpRequest’s referrer, serialized and isomorphic encoded, + // to httpRequest’s header list. + if (httpRequest.referrer instanceof URL) { + httpRequest.headersList.append('referer', isomorphicEncode(httpRequest.referrer.href)) + } + + // 12. Append a request `Origin` header for httpRequest. + appendRequestOriginHeader(httpRequest) + + // 13. Append the Fetch metadata headers for httpRequest. [FETCH-METADATA] + appendFetchMetadata(httpRequest) + + // 14. If httpRequest’s header list does not contain `User-Agent`, then + // user agents should append `User-Agent`/default `User-Agent` value to + // httpRequest’s header list. + if (!httpRequest.headersList.contains('user-agent')) { + httpRequest.headersList.append('user-agent', typeof esbuildDetection === 'undefined' ? 'undici' : 'node') + } + + // 15. If httpRequest’s cache mode is "default" and httpRequest’s header + // list contains `If-Modified-Since`, `If-None-Match`, + // `If-Unmodified-Since`, `If-Match`, or `If-Range`, then set + // httpRequest’s cache mode to "no-store". + if ( + httpRequest.cache === 'default' && + (httpRequest.headersList.contains('if-modified-since') || + httpRequest.headersList.contains('if-none-match') || + httpRequest.headersList.contains('if-unmodified-since') || + httpRequest.headersList.contains('if-match') || + httpRequest.headersList.contains('if-range')) + ) { + httpRequest.cache = 'no-store' + } + + // 16. If httpRequest’s cache mode is "no-cache", httpRequest’s prevent + // no-cache cache-control header modification flag is unset, and + // httpRequest’s header list does not contain `Cache-Control`, then append + // `Cache-Control`/`max-age=0` to httpRequest’s header list. + if ( + httpRequest.cache === 'no-cache' && + !httpRequest.preventNoCacheCacheControlHeaderModification && + !httpRequest.headersList.contains('cache-control') + ) { + httpRequest.headersList.append('cache-control', 'max-age=0') + } + + // 17. If httpRequest’s cache mode is "no-store" or "reload", then: + if (httpRequest.cache === 'no-store' || httpRequest.cache === 'reload') { + // 1. If httpRequest’s header list does not contain `Pragma`, then append + // `Pragma`/`no-cache` to httpRequest’s header list. + if (!httpRequest.headersList.contains('pragma')) { + httpRequest.headersList.append('pragma', 'no-cache') + } + + // 2. If httpRequest’s header list does not contain `Cache-Control`, + // then append `Cache-Control`/`no-cache` to httpRequest’s header list. + if (!httpRequest.headersList.contains('cache-control')) { + httpRequest.headersList.append('cache-control', 'no-cache') + } + } + + // 18. If httpRequest’s header list contains `Range`, then append + // `Accept-Encoding`/`identity` to httpRequest’s header list. + if (httpRequest.headersList.contains('range')) { + httpRequest.headersList.append('accept-encoding', 'identity') + } + + // 19. Modify httpRequest’s header list per HTTP. Do not append a given + // header if httpRequest’s header list contains that header’s name. + // TODO: https://github.com/whatwg/fetch/issues/1285#issuecomment-896560129 + if (!httpRequest.headersList.contains('accept-encoding')) { + if (urlHasHttpsScheme(requestCurrentURL(httpRequest))) { + httpRequest.headersList.append('accept-encoding', 'br, gzip, deflate') + } else { + httpRequest.headersList.append('accept-encoding', 'gzip, deflate') + } + } + + httpRequest.headersList.delete('host') + + // 20. If includeCredentials is true, then: + if (includeCredentials) { + // 1. If the user agent is not configured to block cookies for httpRequest + // (see section 7 of [COOKIES]), then: + // TODO: credentials + // 2. If httpRequest’s header list does not contain `Authorization`, then: + // TODO: credentials + } + + // 21. If there’s a proxy-authentication entry, use it as appropriate. + // TODO: proxy-authentication + + // 22. Set httpCache to the result of determining the HTTP cache + // partition, given httpRequest. + // TODO: cache + + // 23. If httpCache is null, then set httpRequest’s cache mode to + // "no-store". + if (httpCache == null) { + httpRequest.cache = 'no-store' + } + + // 24. If httpRequest’s cache mode is neither "no-store" nor "reload", + // then: + if (httpRequest.mode !== 'no-store' && httpRequest.mode !== 'reload') { + // TODO: cache + } + + // 9. If aborted, then return the appropriate network error for fetchParams. + // TODO + + // 10. If response is null, then: + if (response == null) { + // 1. If httpRequest’s cache mode is "only-if-cached", then return a + // network error. + if (httpRequest.mode === 'only-if-cached') { + return makeNetworkError('only if cached') + } + + // 2. Let forwardResponse be the result of running HTTP-network fetch + // given httpFetchParams, includeCredentials, and isNewConnectionFetch. + const forwardResponse = await httpNetworkFetch( + httpFetchParams, + includeCredentials, + isNewConnectionFetch + ) + + // 3. If httpRequest’s method is unsafe and forwardResponse’s status is + // in the range 200 to 399, inclusive, invalidate appropriate stored + // responses in httpCache, as per the "Invalidation" chapter of HTTP + // Caching, and set storedResponse to null. [HTTP-CACHING] + if ( + !safeMethodsSet.has(httpRequest.method) && + forwardResponse.status >= 200 && + forwardResponse.status <= 399 + ) { + // TODO: cache + } + + // 4. If the revalidatingFlag is set and forwardResponse’s status is 304, + // then: + if (revalidatingFlag && forwardResponse.status === 304) { + // TODO: cache + } + + // 5. If response is null, then: + if (response == null) { + // 1. Set response to forwardResponse. + response = forwardResponse + + // 2. Store httpRequest and forwardResponse in httpCache, as per the + // "Storing Responses in Caches" chapter of HTTP Caching. [HTTP-CACHING] + // TODO: cache + } + } + + // 11. Set response’s URL list to a clone of httpRequest’s URL list. + response.urlList = [...httpRequest.urlList] + + // 12. If httpRequest’s header list contains `Range`, then set response’s + // range-requested flag. + if (httpRequest.headersList.contains('range')) { + response.rangeRequested = true + } + + // 13. Set response’s request-includes-credentials to includeCredentials. + response.requestIncludesCredentials = includeCredentials + + // 14. If response’s status is 401, httpRequest’s response tainting is not + // "cors", includeCredentials is true, and request’s window is an environment + // settings object, then: + // TODO + + // 15. If response’s status is 407, then: + if (response.status === 407) { + // 1. If request’s window is "no-window", then return a network error. + if (request.window === 'no-window') { + return makeNetworkError() + } + + // 2. ??? + + // 3. If fetchParams is canceled, then return the appropriate network error for fetchParams. + if (isCancelled(fetchParams)) { + return makeAppropriateNetworkError(fetchParams) + } + + // 4. Prompt the end user as appropriate in request’s window and store + // the result as a proxy-authentication entry. [HTTP-AUTH] + // TODO: Invoke some kind of callback? + + // 5. Set response to the result of running HTTP-network-or-cache fetch given + // fetchParams. + // TODO + return makeNetworkError('proxy authentication required') + } + + // 16. If all of the following are true + if ( + // response’s status is 421 + response.status === 421 && + // isNewConnectionFetch is false + !isNewConnectionFetch && + // request’s body is null, or request’s body is non-null and request’s body’s source is non-null + (request.body == null || request.body.source != null) + ) { + // then: + + // 1. If fetchParams is canceled, then return the appropriate network error for fetchParams. + if (isCancelled(fetchParams)) { + return makeAppropriateNetworkError(fetchParams) + } + + // 2. Set response to the result of running HTTP-network-or-cache + // fetch given fetchParams, isAuthenticationFetch, and true. + + // TODO (spec): The spec doesn't specify this but we need to cancel + // the active response before we can start a new one. + // https://github.com/whatwg/fetch/issues/1293 + fetchParams.controller.connection.destroy() + + response = await httpNetworkOrCacheFetch( + fetchParams, + isAuthenticationFetch, + true + ) + } + + // 17. If isAuthenticationFetch is true, then create an authentication entry + if (isAuthenticationFetch) { + // TODO + } + + // 18. Return response. + return response +} + +// https://fetch.spec.whatwg.org/#http-network-fetch +async function httpNetworkFetch ( + fetchParams, + includeCredentials = false, + forceNewConnection = false +) { + assert(!fetchParams.controller.connection || fetchParams.controller.connection.destroyed) + + fetchParams.controller.connection = { + abort: null, + destroyed: false, + destroy (err) { + if (!this.destroyed) { + this.destroyed = true + this.abort?.(err ?? new DOMException('The operation was aborted.', 'AbortError')) + } + } + } + + // 1. Let request be fetchParams’s request. + const request = fetchParams.request + + // 2. Let response be null. + let response = null + + // 3. Let timingInfo be fetchParams’s timing info. + const timingInfo = fetchParams.timingInfo + + // 4. Let httpCache be the result of determining the HTTP cache partition, + // given request. + // TODO: cache + const httpCache = null + + // 5. If httpCache is null, then set request’s cache mode to "no-store". + if (httpCache == null) { + request.cache = 'no-store' + } + + // 6. Let networkPartitionKey be the result of determining the network + // partition key given request. + // TODO + + // 7. Let newConnection be "yes" if forceNewConnection is true; otherwise + // "no". + const newConnection = forceNewConnection ? 'yes' : 'no' // eslint-disable-line no-unused-vars + + // 8. Switch on request’s mode: + if (request.mode === 'websocket') { + // Let connection be the result of obtaining a WebSocket connection, + // given request’s current URL. + // TODO + } else { + // Let connection be the result of obtaining a connection, given + // networkPartitionKey, request’s current URL’s origin, + // includeCredentials, and forceNewConnection. + // TODO + } + + // 9. Run these steps, but abort when the ongoing fetch is terminated: + + // 1. If connection is failure, then return a network error. + + // 2. Set timingInfo’s final connection timing info to the result of + // calling clamp and coarsen connection timing info with connection’s + // timing info, timingInfo’s post-redirect start time, and fetchParams’s + // cross-origin isolated capability. + + // 3. If connection is not an HTTP/2 connection, request’s body is non-null, + // and request’s body’s source is null, then append (`Transfer-Encoding`, + // `chunked`) to request’s header list. + + // 4. Set timingInfo’s final network-request start time to the coarsened + // shared current time given fetchParams’s cross-origin isolated + // capability. + + // 5. Set response to the result of making an HTTP request over connection + // using request with the following caveats: + + // - Follow the relevant requirements from HTTP. [HTTP] [HTTP-SEMANTICS] + // [HTTP-COND] [HTTP-CACHING] [HTTP-AUTH] + + // - If request’s body is non-null, and request’s body’s source is null, + // then the user agent may have a buffer of up to 64 kibibytes and store + // a part of request’s body in that buffer. If the user agent reads from + // request’s body beyond that buffer’s size and the user agent needs to + // resend request, then instead return a network error. + + // - Set timingInfo’s final network-response start time to the coarsened + // shared current time given fetchParams’s cross-origin isolated capability, + // immediately after the user agent’s HTTP parser receives the first byte + // of the response (e.g., frame header bytes for HTTP/2 or response status + // line for HTTP/1.x). + + // - Wait until all the headers are transmitted. + + // - Any responses whose status is in the range 100 to 199, inclusive, + // and is not 101, are to be ignored, except for the purposes of setting + // timingInfo’s final network-response start time above. + + // - If request’s header list contains `Transfer-Encoding`/`chunked` and + // response is transferred via HTTP/1.0 or older, then return a network + // error. + + // - If the HTTP request results in a TLS client certificate dialog, then: + + // 1. If request’s window is an environment settings object, make the + // dialog available in request’s window. + + // 2. Otherwise, return a network error. + + // To transmit request’s body body, run these steps: + let requestBody = null + // 1. If body is null and fetchParams’s process request end-of-body is + // non-null, then queue a fetch task given fetchParams’s process request + // end-of-body and fetchParams’s task destination. + if (request.body == null && fetchParams.processRequestEndOfBody) { + queueMicrotask(() => fetchParams.processRequestEndOfBody()) + } else if (request.body != null) { + // 2. Otherwise, if body is non-null: + + // 1. Let processBodyChunk given bytes be these steps: + const processBodyChunk = async function * (bytes) { + // 1. If the ongoing fetch is terminated, then abort these steps. + if (isCancelled(fetchParams)) { + return + } + + // 2. Run this step in parallel: transmit bytes. + yield bytes + + // 3. If fetchParams’s process request body is non-null, then run + // fetchParams’s process request body given bytes’s length. + fetchParams.processRequestBodyChunkLength?.(bytes.byteLength) + } + + // 2. Let processEndOfBody be these steps: + const processEndOfBody = () => { + // 1. If fetchParams is canceled, then abort these steps. + if (isCancelled(fetchParams)) { + return + } + + // 2. If fetchParams’s process request end-of-body is non-null, + // then run fetchParams’s process request end-of-body. + if (fetchParams.processRequestEndOfBody) { + fetchParams.processRequestEndOfBody() + } + } + + // 3. Let processBodyError given e be these steps: + const processBodyError = (e) => { + // 1. If fetchParams is canceled, then abort these steps. + if (isCancelled(fetchParams)) { + return + } + + // 2. If e is an "AbortError" DOMException, then abort fetchParams’s controller. + if (e.name === 'AbortError') { + fetchParams.controller.abort() + } else { + fetchParams.controller.terminate(e) + } + } + + // 4. Incrementally read request’s body given processBodyChunk, processEndOfBody, + // processBodyError, and fetchParams’s task destination. + requestBody = (async function * () { + try { + for await (const bytes of request.body.stream) { + yield * processBodyChunk(bytes) + } + processEndOfBody() + } catch (err) { + processBodyError(err) + } + })() + } + + try { + // socket is only provided for websockets + const { body, status, statusText, headersList, socket } = await dispatch({ body: requestBody }) + + if (socket) { + response = makeResponse({ status, statusText, headersList, socket }) + } else { + const iterator = body[Symbol.asyncIterator]() + fetchParams.controller.next = () => iterator.next() + + response = makeResponse({ status, statusText, headersList }) + } + } catch (err) { + // 10. If aborted, then: + if (err.name === 'AbortError') { + // 1. If connection uses HTTP/2, then transmit an RST_STREAM frame. + fetchParams.controller.connection.destroy() + + // 2. Return the appropriate network error for fetchParams. + return makeAppropriateNetworkError(fetchParams, err) + } + + return makeNetworkError(err) + } + + // 11. Let pullAlgorithm be an action that resumes the ongoing fetch + // if it is suspended. + const pullAlgorithm = () => { + fetchParams.controller.resume() + } + + // 12. Let cancelAlgorithm be an algorithm that aborts fetchParams’s + // controller with reason, given reason. + const cancelAlgorithm = (reason) => { + fetchParams.controller.abort(reason) + } + + // 13. Let highWaterMark be a non-negative, non-NaN number, chosen by + // the user agent. + // TODO + + // 14. Let sizeAlgorithm be an algorithm that accepts a chunk object + // and returns a non-negative, non-NaN, non-infinite number, chosen by the user agent. + // TODO + + // 15. Let stream be a new ReadableStream. + // 16. Set up stream with pullAlgorithm set to pullAlgorithm, + // cancelAlgorithm set to cancelAlgorithm, highWaterMark set to + // highWaterMark, and sizeAlgorithm set to sizeAlgorithm. + if (!ReadableStream) { + ReadableStream = (__nccwpck_require__(5356).ReadableStream) + } + + const stream = new ReadableStream( + { + async start (controller) { + fetchParams.controller.controller = controller + }, + async pull (controller) { + await pullAlgorithm(controller) + }, + async cancel (reason) { + await cancelAlgorithm(reason) + } + }, + { + highWaterMark: 0, + size () { + return 1 + } + } + ) + + // 17. Run these steps, but abort when the ongoing fetch is terminated: + + // 1. Set response’s body to a new body whose stream is stream. + response.body = { stream } + + // 2. If response is not a network error and request’s cache mode is + // not "no-store", then update response in httpCache for request. + // TODO + + // 3. If includeCredentials is true and the user agent is not configured + // to block cookies for request (see section 7 of [COOKIES]), then run the + // "set-cookie-string" parsing algorithm (see section 5.2 of [COOKIES]) on + // the value of each header whose name is a byte-case-insensitive match for + // `Set-Cookie` in response’s header list, if any, and request’s current URL. + // TODO + + // 18. If aborted, then: + // TODO + + // 19. Run these steps in parallel: + + // 1. Run these steps, but abort when fetchParams is canceled: + fetchParams.controller.on('terminated', onAborted) + fetchParams.controller.resume = async () => { + // 1. While true + while (true) { + // 1-3. See onData... + + // 4. Set bytes to the result of handling content codings given + // codings and bytes. + let bytes + let isFailure + try { + const { done, value } = await fetchParams.controller.next() + + if (isAborted(fetchParams)) { + break + } + + bytes = done ? undefined : value + } catch (err) { + if (fetchParams.controller.ended && !timingInfo.encodedBodySize) { + // zlib doesn't like empty streams. + bytes = undefined + } else { + bytes = err + + // err may be propagated from the result of calling readablestream.cancel, + // which might not be an error. https://github.com/nodejs/undici/issues/2009 + isFailure = true + } + } + + if (bytes === undefined) { + // 2. Otherwise, if the bytes transmission for response’s message + // body is done normally and stream is readable, then close + // stream, finalize response for fetchParams and response, and + // abort these in-parallel steps. + readableStreamClose(fetchParams.controller.controller) + + finalizeResponse(fetchParams, response) + + return + } + + // 5. Increase timingInfo’s decoded body size by bytes’s length. + timingInfo.decodedBodySize += bytes?.byteLength ?? 0 + + // 6. If bytes is failure, then terminate fetchParams’s controller. + if (isFailure) { + fetchParams.controller.terminate(bytes) + return + } + + // 7. Enqueue a Uint8Array wrapping an ArrayBuffer containing bytes + // into stream. + fetchParams.controller.controller.enqueue(new Uint8Array(bytes)) + + // 8. If stream is errored, then terminate the ongoing fetch. + if (isErrored(stream)) { + fetchParams.controller.terminate() + return + } + + // 9. If stream doesn’t need more data ask the user agent to suspend + // the ongoing fetch. + if (!fetchParams.controller.controller.desiredSize) { + return + } + } + } + + // 2. If aborted, then: + function onAborted (reason) { + // 2. If fetchParams is aborted, then: + if (isAborted(fetchParams)) { + // 1. Set response’s aborted flag. + response.aborted = true + + // 2. If stream is readable, then error stream with the result of + // deserialize a serialized abort reason given fetchParams’s + // controller’s serialized abort reason and an + // implementation-defined realm. + if (isReadable(stream)) { + fetchParams.controller.controller.error( + fetchParams.controller.serializedAbortReason + ) + } + } else { + // 3. Otherwise, if stream is readable, error stream with a TypeError. + if (isReadable(stream)) { + fetchParams.controller.controller.error(new TypeError('terminated', { + cause: isErrorLike(reason) ? reason : undefined + })) + } + } + + // 4. If connection uses HTTP/2, then transmit an RST_STREAM frame. + // 5. Otherwise, the user agent should close connection unless it would be bad for performance to do so. + fetchParams.controller.connection.destroy() + } + + // 20. Return response. + return response + + async function dispatch ({ body }) { + const url = requestCurrentURL(request) + /** @type {import('../..').Agent} */ + const agent = fetchParams.controller.dispatcher + + return new Promise((resolve, reject) => agent.dispatch( + { + path: url.pathname + url.search, + origin: url.origin, + method: request.method, + body: fetchParams.controller.dispatcher.isMockActive ? request.body && request.body.source : body, + headers: request.headersList.entries, + maxRedirections: 0, + upgrade: request.mode === 'websocket' ? 'websocket' : undefined + }, + { + body: null, + abort: null, + + onConnect (abort) { + // TODO (fix): Do we need connection here? + const { connection } = fetchParams.controller + + if (connection.destroyed) { + abort(new DOMException('The operation was aborted.', 'AbortError')) + } else { + fetchParams.controller.on('terminated', abort) + this.abort = connection.abort = abort + } + }, + + onHeaders (status, headersList, resume, statusText) { + if (status < 200) { + return + } + + let codings = [] + let location = '' + + const headers = new Headers() + + // For H2, the headers are a plain JS object + // We distinguish between them and iterate accordingly + if (Array.isArray(headersList)) { + for (let n = 0; n < headersList.length; n += 2) { + const key = headersList[n + 0].toString('latin1') + const val = headersList[n + 1].toString('latin1') + if (key.toLowerCase() === 'content-encoding') { + // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1 + // "All content-coding values are case-insensitive..." + codings = val.toLowerCase().split(',').map((x) => x.trim()) + } else if (key.toLowerCase() === 'location') { + location = val + } + + headers.append(key, val) + } + } else { + const keys = Object.keys(headersList) + for (const key of keys) { + const val = headersList[key] + if (key.toLowerCase() === 'content-encoding') { + // https://www.rfc-editor.org/rfc/rfc7231#section-3.1.2.1 + // "All content-coding values are case-insensitive..." + codings = val.toLowerCase().split(',').map((x) => x.trim()).reverse() + } else if (key.toLowerCase() === 'location') { + location = val + } + + headers.append(key, val) + } + } + + this.body = new Readable({ read: resume }) + + const decoders = [] + + const willFollow = request.redirect === 'follow' && + location && + redirectStatusSet.has(status) + + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding + if (request.method !== 'HEAD' && request.method !== 'CONNECT' && !nullBodyStatus.includes(status) && !willFollow) { + for (const coding of codings) { + // https://www.rfc-editor.org/rfc/rfc9112.html#section-7.2 + if (coding === 'x-gzip' || coding === 'gzip') { + decoders.push(zlib.createGunzip({ + // Be less strict when decoding compressed responses, since sometimes + // servers send slightly invalid responses that are still accepted + // by common browsers. + // Always using Z_SYNC_FLUSH is what cURL does. + flush: zlib.constants.Z_SYNC_FLUSH, + finishFlush: zlib.constants.Z_SYNC_FLUSH + })) + } else if (coding === 'deflate') { + decoders.push(zlib.createInflate()) + } else if (coding === 'br') { + decoders.push(zlib.createBrotliDecompress()) + } else { + decoders.length = 0 + break + } + } + } + + resolve({ + status, + statusText, + headersList: headers[kHeadersList], + body: decoders.length + ? pipeline(this.body, ...decoders, () => { }) + : this.body.on('error', () => {}) + }) + + return true + }, + + onData (chunk) { + if (fetchParams.controller.dump) { + return + } + + // 1. If one or more bytes have been transmitted from response’s + // message body, then: + + // 1. Let bytes be the transmitted bytes. + const bytes = chunk + + // 2. Let codings be the result of extracting header list values + // given `Content-Encoding` and response’s header list. + // See pullAlgorithm. + + // 3. Increase timingInfo’s encoded body size by bytes’s length. + timingInfo.encodedBodySize += bytes.byteLength + + // 4. See pullAlgorithm... + + return this.body.push(bytes) + }, + + onComplete () { + if (this.abort) { + fetchParams.controller.off('terminated', this.abort) + } + + fetchParams.controller.ended = true + + this.body.push(null) + }, + + onError (error) { + if (this.abort) { + fetchParams.controller.off('terminated', this.abort) + } + + this.body?.destroy(error) + + fetchParams.controller.terminate(error) + + reject(error) + }, + + onUpgrade (status, headersList, socket) { + if (status !== 101) { + return + } + + const headers = new Headers() + + for (let n = 0; n < headersList.length; n += 2) { + const key = headersList[n + 0].toString('latin1') + const val = headersList[n + 1].toString('latin1') + + headers.append(key, val) + } + + resolve({ + status, + statusText: STATUS_CODES[status], + headersList: headers[kHeadersList], + socket + }) + + return true + } + } + )) + } +} + +module.exports = { + fetch, + Fetch, + fetching, + finalizeAndReportTiming +} + + +/***/ }), + +/***/ 8359: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; +/* globals AbortController */ + + + +const { extractBody, mixinBody, cloneBody } = __nccwpck_require__(1472) +const { Headers, fill: fillHeaders, HeadersList } = __nccwpck_require__(554) +const { FinalizationRegistry } = __nccwpck_require__(6436)() +const util = __nccwpck_require__(3983) +const { + isValidHTTPToken, + sameOrigin, + normalizeMethod, + makePolicyContainer +} = __nccwpck_require__(2538) +const { + forbiddenMethodsSet, + corsSafeListedMethodsSet, + referrerPolicy, + requestRedirect, + requestMode, + requestCredentials, + requestCache, + requestDuplex +} = __nccwpck_require__(1037) +const { kEnumerableProperty } = util +const { kHeaders, kSignal, kState, kGuard, kRealm } = __nccwpck_require__(5861) +const { webidl } = __nccwpck_require__(1744) +const { getGlobalOrigin } = __nccwpck_require__(1246) +const { URLSerializer } = __nccwpck_require__(685) +const { kHeadersList } = __nccwpck_require__(2785) +const assert = __nccwpck_require__(9491) +const { getMaxListeners, setMaxListeners, getEventListeners, defaultMaxListeners } = __nccwpck_require__(2361) + +let TransformStream = globalThis.TransformStream + +const kInit = Symbol('init') +const kAbortController = Symbol('abortController') + +const requestFinalizer = new FinalizationRegistry(({ signal, abort }) => { + signal.removeEventListener('abort', abort) +}) + +// https://fetch.spec.whatwg.org/#request-class +class Request { + // https://fetch.spec.whatwg.org/#dom-request + constructor (input, init = {}) { + if (input === kInit) { + return + } + + webidl.argumentLengthCheck(arguments, 1, { header: 'Request constructor' }) + + input = webidl.converters.RequestInfo(input) + init = webidl.converters.RequestInit(init) + + // https://html.spec.whatwg.org/multipage/webappapis.html#environment-settings-object + this[kRealm] = { + settingsObject: { + baseUrl: getGlobalOrigin(), + get origin () { + return this.baseUrl?.origin + }, + policyContainer: makePolicyContainer() + } + } + + // 1. Let request be null. + let request = null + + // 2. Let fallbackMode be null. + let fallbackMode = null + + // 3. Let baseURL be this’s relevant settings object’s API base URL. + const baseUrl = this[kRealm].settingsObject.baseUrl + + // 4. Let signal be null. + let signal = null + + // 5. If input is a string, then: + if (typeof input === 'string') { + // 1. Let parsedURL be the result of parsing input with baseURL. + // 2. If parsedURL is failure, then throw a TypeError. + let parsedURL + try { + parsedURL = new URL(input, baseUrl) + } catch (err) { + throw new TypeError('Failed to parse URL from ' + input, { cause: err }) + } + + // 3. If parsedURL includes credentials, then throw a TypeError. + if (parsedURL.username || parsedURL.password) { + throw new TypeError( + 'Request cannot be constructed from a URL that includes credentials: ' + + input + ) + } + + // 4. Set request to a new request whose URL is parsedURL. + request = makeRequest({ urlList: [parsedURL] }) + + // 5. Set fallbackMode to "cors". + fallbackMode = 'cors' + } else { + // 6. Otherwise: + + // 7. Assert: input is a Request object. + assert(input instanceof Request) + + // 8. Set request to input’s request. + request = input[kState] + + // 9. Set signal to input’s signal. + signal = input[kSignal] + } + + // 7. Let origin be this’s relevant settings object’s origin. + const origin = this[kRealm].settingsObject.origin + + // 8. Let window be "client". + let window = 'client' + + // 9. If request’s window is an environment settings object and its origin + // is same origin with origin, then set window to request’s window. + if ( + request.window?.constructor?.name === 'EnvironmentSettingsObject' && + sameOrigin(request.window, origin) + ) { + window = request.window + } + + // 10. If init["window"] exists and is non-null, then throw a TypeError. + if (init.window != null) { + throw new TypeError(`'window' option '${window}' must be null`) + } + + // 11. If init["window"] exists, then set window to "no-window". + if ('window' in init) { + window = 'no-window' + } + + // 12. Set request to a new request with the following properties: + request = makeRequest({ + // URL request’s URL. + // undici implementation note: this is set as the first item in request's urlList in makeRequest + // method request’s method. + method: request.method, + // header list A copy of request’s header list. + // undici implementation note: headersList is cloned in makeRequest + headersList: request.headersList, + // unsafe-request flag Set. + unsafeRequest: request.unsafeRequest, + // client This’s relevant settings object. + client: this[kRealm].settingsObject, + // window window. + window, + // priority request’s priority. + priority: request.priority, + // origin request’s origin. The propagation of the origin is only significant for navigation requests + // being handled by a service worker. In this scenario a request can have an origin that is different + // from the current client. + origin: request.origin, + // referrer request’s referrer. + referrer: request.referrer, + // referrer policy request’s referrer policy. + referrerPolicy: request.referrerPolicy, + // mode request’s mode. + mode: request.mode, + // credentials mode request’s credentials mode. + credentials: request.credentials, + // cache mode request’s cache mode. + cache: request.cache, + // redirect mode request’s redirect mode. + redirect: request.redirect, + // integrity metadata request’s integrity metadata. + integrity: request.integrity, + // keepalive request’s keepalive. + keepalive: request.keepalive, + // reload-navigation flag request’s reload-navigation flag. + reloadNavigation: request.reloadNavigation, + // history-navigation flag request’s history-navigation flag. + historyNavigation: request.historyNavigation, + // URL list A clone of request’s URL list. + urlList: [...request.urlList] + }) + + // 13. If init is not empty, then: + if (Object.keys(init).length > 0) { + // 1. If request’s mode is "navigate", then set it to "same-origin". + if (request.mode === 'navigate') { + request.mode = 'same-origin' + } + + // 2. Unset request’s reload-navigation flag. + request.reloadNavigation = false + + // 3. Unset request’s history-navigation flag. + request.historyNavigation = false + + // 4. Set request’s origin to "client". + request.origin = 'client' + + // 5. Set request’s referrer to "client" + request.referrer = 'client' + + // 6. Set request’s referrer policy to the empty string. + request.referrerPolicy = '' + + // 7. Set request’s URL to request’s current URL. + request.url = request.urlList[request.urlList.length - 1] + + // 8. Set request’s URL list to « request’s URL ». + request.urlList = [request.url] + } + + // 14. If init["referrer"] exists, then: + if (init.referrer !== undefined) { + // 1. Let referrer be init["referrer"]. + const referrer = init.referrer + + // 2. If referrer is the empty string, then set request’s referrer to "no-referrer". + if (referrer === '') { + request.referrer = 'no-referrer' + } else { + // 1. Let parsedReferrer be the result of parsing referrer with + // baseURL. + // 2. If parsedReferrer is failure, then throw a TypeError. + let parsedReferrer + try { + parsedReferrer = new URL(referrer, baseUrl) + } catch (err) { + throw new TypeError(`Referrer "${referrer}" is not a valid URL.`, { cause: err }) + } + + // 3. If one of the following is true + // - parsedReferrer’s scheme is "about" and path is the string "client" + // - parsedReferrer’s origin is not same origin with origin + // then set request’s referrer to "client". + if ( + (parsedReferrer.protocol === 'about:' && parsedReferrer.hostname === 'client') || + (origin && !sameOrigin(parsedReferrer, this[kRealm].settingsObject.baseUrl)) + ) { + request.referrer = 'client' + } else { + // 4. Otherwise, set request’s referrer to parsedReferrer. + request.referrer = parsedReferrer + } + } + } + + // 15. If init["referrerPolicy"] exists, then set request’s referrer policy + // to it. + if (init.referrerPolicy !== undefined) { + request.referrerPolicy = init.referrerPolicy + } + + // 16. Let mode be init["mode"] if it exists, and fallbackMode otherwise. + let mode + if (init.mode !== undefined) { + mode = init.mode + } else { + mode = fallbackMode + } + + // 17. If mode is "navigate", then throw a TypeError. + if (mode === 'navigate') { + throw webidl.errors.exception({ + header: 'Request constructor', + message: 'invalid request mode navigate.' + }) + } + + // 18. If mode is non-null, set request’s mode to mode. + if (mode != null) { + request.mode = mode + } + + // 19. If init["credentials"] exists, then set request’s credentials mode + // to it. + if (init.credentials !== undefined) { + request.credentials = init.credentials + } + + // 18. If init["cache"] exists, then set request’s cache mode to it. + if (init.cache !== undefined) { + request.cache = init.cache + } + + // 21. If request’s cache mode is "only-if-cached" and request’s mode is + // not "same-origin", then throw a TypeError. + if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') { + throw new TypeError( + "'only-if-cached' can be set only with 'same-origin' mode" + ) + } + + // 22. If init["redirect"] exists, then set request’s redirect mode to it. + if (init.redirect !== undefined) { + request.redirect = init.redirect + } + + // 23. If init["integrity"] exists, then set request’s integrity metadata to it. + if (init.integrity !== undefined && init.integrity != null) { + request.integrity = String(init.integrity) + } + + // 24. If init["keepalive"] exists, then set request’s keepalive to it. + if (init.keepalive !== undefined) { + request.keepalive = Boolean(init.keepalive) + } + + // 25. If init["method"] exists, then: + if (init.method !== undefined) { + // 1. Let method be init["method"]. + let method = init.method + + // 2. If method is not a method or method is a forbidden method, then + // throw a TypeError. + if (!isValidHTTPToken(init.method)) { + throw TypeError(`'${init.method}' is not a valid HTTP method.`) + } + + if (forbiddenMethodsSet.has(method.toUpperCase())) { + throw TypeError(`'${init.method}' HTTP method is unsupported.`) + } + + // 3. Normalize method. + method = normalizeMethod(init.method) + + // 4. Set request’s method to method. + request.method = method + } + + // 26. If init["signal"] exists, then set signal to it. + if (init.signal !== undefined) { + signal = init.signal + } + + // 27. Set this’s request to request. + this[kState] = request + + // 28. Set this’s signal to a new AbortSignal object with this’s relevant + // Realm. + // TODO: could this be simplified with AbortSignal.any + // (https://dom.spec.whatwg.org/#dom-abortsignal-any) + const ac = new AbortController() + this[kSignal] = ac.signal + this[kSignal][kRealm] = this[kRealm] + + // 29. If signal is not null, then make this’s signal follow signal. + if (signal != null) { + if ( + !signal || + typeof signal.aborted !== 'boolean' || + typeof signal.addEventListener !== 'function' + ) { + throw new TypeError( + "Failed to construct 'Request': member signal is not of type AbortSignal." + ) + } + + if (signal.aborted) { + ac.abort(signal.reason) + } else { + // Keep a strong ref to ac while request object + // is alive. This is needed to prevent AbortController + // from being prematurely garbage collected. + // See, https://github.com/nodejs/undici/issues/1926. + this[kAbortController] = ac + + const acRef = new WeakRef(ac) + const abort = function () { + const ac = acRef.deref() + if (ac !== undefined) { + ac.abort(this.reason) + } + } + + // Third-party AbortControllers may not work with these. + // See, https://github.com/nodejs/undici/pull/1910#issuecomment-1464495619. + try { + // If the max amount of listeners is equal to the default, increase it + // This is only available in node >= v19.9.0 + if (typeof getMaxListeners === 'function' && getMaxListeners(signal) === defaultMaxListeners) { + setMaxListeners(100, signal) + } else if (getEventListeners(signal, 'abort').length >= defaultMaxListeners) { + setMaxListeners(100, signal) + } + } catch {} + + util.addAbortListener(signal, abort) + requestFinalizer.register(ac, { signal, abort }) + } + } + + // 30. Set this’s headers to a new Headers object with this’s relevant + // Realm, whose header list is request’s header list and guard is + // "request". + this[kHeaders] = new Headers() + this[kHeaders][kHeadersList] = request.headersList + this[kHeaders][kGuard] = 'request' + this[kHeaders][kRealm] = this[kRealm] + + // 31. If this’s request’s mode is "no-cors", then: + if (mode === 'no-cors') { + // 1. If this’s request’s method is not a CORS-safelisted method, + // then throw a TypeError. + if (!corsSafeListedMethodsSet.has(request.method)) { + throw new TypeError( + `'${request.method} is unsupported in no-cors mode.` + ) + } + + // 2. Set this’s headers’s guard to "request-no-cors". + this[kHeaders][kGuard] = 'request-no-cors' + } + + // 32. If init is not empty, then: + if (Object.keys(init).length !== 0) { + // 1. Let headers be a copy of this’s headers and its associated header + // list. + let headers = new Headers(this[kHeaders]) + + // 2. If init["headers"] exists, then set headers to init["headers"]. + if (init.headers !== undefined) { + headers = init.headers + } + + // 3. Empty this’s headers’s header list. + this[kHeaders][kHeadersList].clear() + + // 4. If headers is a Headers object, then for each header in its header + // list, append header’s name/header’s value to this’s headers. + if (headers.constructor.name === 'Headers') { + for (const [key, val] of headers) { + this[kHeaders].append(key, val) + } + } else { + // 5. Otherwise, fill this’s headers with headers. + fillHeaders(this[kHeaders], headers) + } + } + + // 33. Let inputBody be input’s request’s body if input is a Request + // object; otherwise null. + const inputBody = input instanceof Request ? input[kState].body : null + + // 34. If either init["body"] exists and is non-null or inputBody is + // non-null, and request’s method is `GET` or `HEAD`, then throw a + // TypeError. + if ( + (init.body != null || inputBody != null) && + (request.method === 'GET' || request.method === 'HEAD') + ) { + throw new TypeError('Request with GET/HEAD method cannot have body.') + } + + // 35. Let initBody be null. + let initBody = null + + // 36. If init["body"] exists and is non-null, then: + if (init.body != null) { + // 1. Let Content-Type be null. + // 2. Set initBody and Content-Type to the result of extracting + // init["body"], with keepalive set to request’s keepalive. + const [extractedBody, contentType] = extractBody( + init.body, + request.keepalive + ) + initBody = extractedBody + + // 3, If Content-Type is non-null and this’s headers’s header list does + // not contain `Content-Type`, then append `Content-Type`/Content-Type to + // this’s headers. + if (contentType && !this[kHeaders][kHeadersList].contains('content-type')) { + this[kHeaders].append('content-type', contentType) + } + } + + // 37. Let inputOrInitBody be initBody if it is non-null; otherwise + // inputBody. + const inputOrInitBody = initBody ?? inputBody + + // 38. If inputOrInitBody is non-null and inputOrInitBody’s source is + // null, then: + if (inputOrInitBody != null && inputOrInitBody.source == null) { + // 1. If initBody is non-null and init["duplex"] does not exist, + // then throw a TypeError. + if (initBody != null && init.duplex == null) { + throw new TypeError('RequestInit: duplex option is required when sending a body.') + } + + // 2. If this’s request’s mode is neither "same-origin" nor "cors", + // then throw a TypeError. + if (request.mode !== 'same-origin' && request.mode !== 'cors') { + throw new TypeError( + 'If request is made from ReadableStream, mode should be "same-origin" or "cors"' + ) + } + + // 3. Set this’s request’s use-CORS-preflight flag. + request.useCORSPreflightFlag = true + } + + // 39. Let finalBody be inputOrInitBody. + let finalBody = inputOrInitBody + + // 40. If initBody is null and inputBody is non-null, then: + if (initBody == null && inputBody != null) { + // 1. If input is unusable, then throw a TypeError. + if (util.isDisturbed(inputBody.stream) || inputBody.stream.locked) { + throw new TypeError( + 'Cannot construct a Request with a Request object that has already been used.' + ) + } + + // 2. Set finalBody to the result of creating a proxy for inputBody. + if (!TransformStream) { + TransformStream = (__nccwpck_require__(5356).TransformStream) + } + + // https://streams.spec.whatwg.org/#readablestream-create-a-proxy + const identityTransform = new TransformStream() + inputBody.stream.pipeThrough(identityTransform) + finalBody = { + source: inputBody.source, + length: inputBody.length, + stream: identityTransform.readable + } + } + + // 41. Set this’s request’s body to finalBody. + this[kState].body = finalBody + } + + // Returns request’s HTTP method, which is "GET" by default. + get method () { + webidl.brandCheck(this, Request) + + // The method getter steps are to return this’s request’s method. + return this[kState].method + } + + // Returns the URL of request as a string. + get url () { + webidl.brandCheck(this, Request) + + // The url getter steps are to return this’s request’s URL, serialized. + return URLSerializer(this[kState].url) + } + + // Returns a Headers object consisting of the headers associated with request. + // Note that headers added in the network layer by the user agent will not + // be accounted for in this object, e.g., the "Host" header. + get headers () { + webidl.brandCheck(this, Request) + + // The headers getter steps are to return this’s headers. + return this[kHeaders] + } + + // Returns the kind of resource requested by request, e.g., "document" + // or "script". + get destination () { + webidl.brandCheck(this, Request) + + // The destination getter are to return this’s request’s destination. + return this[kState].destination + } + + // Returns the referrer of request. Its value can be a same-origin URL if + // explicitly set in init, the empty string to indicate no referrer, and + // "about:client" when defaulting to the global’s default. This is used + // during fetching to determine the value of the `Referer` header of the + // request being made. + get referrer () { + webidl.brandCheck(this, Request) + + // 1. If this’s request’s referrer is "no-referrer", then return the + // empty string. + if (this[kState].referrer === 'no-referrer') { + return '' + } + + // 2. If this’s request’s referrer is "client", then return + // "about:client". + if (this[kState].referrer === 'client') { + return 'about:client' + } + + // Return this’s request’s referrer, serialized. + return this[kState].referrer.toString() + } + + // Returns the referrer policy associated with request. + // This is used during fetching to compute the value of the request’s + // referrer. + get referrerPolicy () { + webidl.brandCheck(this, Request) + + // The referrerPolicy getter steps are to return this’s request’s referrer policy. + return this[kState].referrerPolicy + } + + // Returns the mode associated with request, which is a string indicating + // whether the request will use CORS, or will be restricted to same-origin + // URLs. + get mode () { + webidl.brandCheck(this, Request) + + // The mode getter steps are to return this’s request’s mode. + return this[kState].mode + } + + // Returns the credentials mode associated with request, + // which is a string indicating whether credentials will be sent with the + // request always, never, or only when sent to a same-origin URL. + get credentials () { + // The credentials getter steps are to return this’s request’s credentials mode. + return this[kState].credentials + } + + // Returns the cache mode associated with request, + // which is a string indicating how the request will + // interact with the browser’s cache when fetching. + get cache () { + webidl.brandCheck(this, Request) + + // The cache getter steps are to return this’s request’s cache mode. + return this[kState].cache + } + + // Returns the redirect mode associated with request, + // which is a string indicating how redirects for the + // request will be handled during fetching. A request + // will follow redirects by default. + get redirect () { + webidl.brandCheck(this, Request) + + // The redirect getter steps are to return this’s request’s redirect mode. + return this[kState].redirect + } + + // Returns request’s subresource integrity metadata, which is a + // cryptographic hash of the resource being fetched. Its value + // consists of multiple hashes separated by whitespace. [SRI] + get integrity () { + webidl.brandCheck(this, Request) + + // The integrity getter steps are to return this’s request’s integrity + // metadata. + return this[kState].integrity + } + + // Returns a boolean indicating whether or not request can outlive the + // global in which it was created. + get keepalive () { + webidl.brandCheck(this, Request) + + // The keepalive getter steps are to return this’s request’s keepalive. + return this[kState].keepalive + } + + // Returns a boolean indicating whether or not request is for a reload + // navigation. + get isReloadNavigation () { + webidl.brandCheck(this, Request) + + // The isReloadNavigation getter steps are to return true if this’s + // request’s reload-navigation flag is set; otherwise false. + return this[kState].reloadNavigation + } + + // Returns a boolean indicating whether or not request is for a history + // navigation (a.k.a. back-foward navigation). + get isHistoryNavigation () { + webidl.brandCheck(this, Request) + + // The isHistoryNavigation getter steps are to return true if this’s request’s + // history-navigation flag is set; otherwise false. + return this[kState].historyNavigation + } + + // Returns the signal associated with request, which is an AbortSignal + // object indicating whether or not request has been aborted, and its + // abort event handler. + get signal () { + webidl.brandCheck(this, Request) + + // The signal getter steps are to return this’s signal. + return this[kSignal] + } + + get body () { + webidl.brandCheck(this, Request) + + return this[kState].body ? this[kState].body.stream : null + } + + get bodyUsed () { + webidl.brandCheck(this, Request) + + return !!this[kState].body && util.isDisturbed(this[kState].body.stream) + } + + get duplex () { + webidl.brandCheck(this, Request) + + return 'half' + } + + // Returns a clone of request. + clone () { + webidl.brandCheck(this, Request) + + // 1. If this is unusable, then throw a TypeError. + if (this.bodyUsed || this.body?.locked) { + throw new TypeError('unusable') + } + + // 2. Let clonedRequest be the result of cloning this’s request. + const clonedRequest = cloneRequest(this[kState]) + + // 3. Let clonedRequestObject be the result of creating a Request object, + // given clonedRequest, this’s headers’s guard, and this’s relevant Realm. + const clonedRequestObject = new Request(kInit) + clonedRequestObject[kState] = clonedRequest + clonedRequestObject[kRealm] = this[kRealm] + clonedRequestObject[kHeaders] = new Headers() + clonedRequestObject[kHeaders][kHeadersList] = clonedRequest.headersList + clonedRequestObject[kHeaders][kGuard] = this[kHeaders][kGuard] + clonedRequestObject[kHeaders][kRealm] = this[kHeaders][kRealm] + + // 4. Make clonedRequestObject’s signal follow this’s signal. + const ac = new AbortController() + if (this.signal.aborted) { + ac.abort(this.signal.reason) + } else { + util.addAbortListener( + this.signal, + () => { + ac.abort(this.signal.reason) + } + ) + } + clonedRequestObject[kSignal] = ac.signal + + // 4. Return clonedRequestObject. + return clonedRequestObject + } +} + +mixinBody(Request) + +function makeRequest (init) { + // https://fetch.spec.whatwg.org/#requests + const request = { + method: 'GET', + localURLsOnly: false, + unsafeRequest: false, + body: null, + client: null, + reservedClient: null, + replacesClientId: '', + window: 'client', + keepalive: false, + serviceWorkers: 'all', + initiator: '', + destination: '', + priority: null, + origin: 'client', + policyContainer: 'client', + referrer: 'client', + referrerPolicy: '', + mode: 'no-cors', + useCORSPreflightFlag: false, + credentials: 'same-origin', + useCredentials: false, + cache: 'default', + redirect: 'follow', + integrity: '', + cryptoGraphicsNonceMetadata: '', + parserMetadata: '', + reloadNavigation: false, + historyNavigation: false, + userActivation: false, + taintedOrigin: false, + redirectCount: 0, + responseTainting: 'basic', + preventNoCacheCacheControlHeaderModification: false, + done: false, + timingAllowFailed: false, + ...init, + headersList: init.headersList + ? new HeadersList(init.headersList) + : new HeadersList() + } + request.url = request.urlList[0] + return request +} + +// https://fetch.spec.whatwg.org/#concept-request-clone +function cloneRequest (request) { + // To clone a request request, run these steps: + + // 1. Let newRequest be a copy of request, except for its body. + const newRequest = makeRequest({ ...request, body: null }) + + // 2. If request’s body is non-null, set newRequest’s body to the + // result of cloning request’s body. + if (request.body != null) { + newRequest.body = cloneBody(request.body) + } + + // 3. Return newRequest. + return newRequest +} + +Object.defineProperties(Request.prototype, { + method: kEnumerableProperty, + url: kEnumerableProperty, + headers: kEnumerableProperty, + redirect: kEnumerableProperty, + clone: kEnumerableProperty, + signal: kEnumerableProperty, + duplex: kEnumerableProperty, + destination: kEnumerableProperty, + body: kEnumerableProperty, + bodyUsed: kEnumerableProperty, + isHistoryNavigation: kEnumerableProperty, + isReloadNavigation: kEnumerableProperty, + keepalive: kEnumerableProperty, + integrity: kEnumerableProperty, + cache: kEnumerableProperty, + credentials: kEnumerableProperty, + attribute: kEnumerableProperty, + referrerPolicy: kEnumerableProperty, + referrer: kEnumerableProperty, + mode: kEnumerableProperty, + [Symbol.toStringTag]: { + value: 'Request', + configurable: true + } +}) + +webidl.converters.Request = webidl.interfaceConverter( + Request +) + +// https://fetch.spec.whatwg.org/#requestinfo +webidl.converters.RequestInfo = function (V) { + if (typeof V === 'string') { + return webidl.converters.USVString(V) + } + + if (V instanceof Request) { + return webidl.converters.Request(V) + } + + return webidl.converters.USVString(V) +} + +webidl.converters.AbortSignal = webidl.interfaceConverter( + AbortSignal +) + +// https://fetch.spec.whatwg.org/#requestinit +webidl.converters.RequestInit = webidl.dictionaryConverter([ + { + key: 'method', + converter: webidl.converters.ByteString + }, + { + key: 'headers', + converter: webidl.converters.HeadersInit + }, + { + key: 'body', + converter: webidl.nullableConverter( + webidl.converters.BodyInit + ) + }, + { + key: 'referrer', + converter: webidl.converters.USVString + }, + { + key: 'referrerPolicy', + converter: webidl.converters.DOMString, + // https://w3c.github.io/webappsec-referrer-policy/#referrer-policy + allowedValues: referrerPolicy + }, + { + key: 'mode', + converter: webidl.converters.DOMString, + // https://fetch.spec.whatwg.org/#concept-request-mode + allowedValues: requestMode + }, + { + key: 'credentials', + converter: webidl.converters.DOMString, + // https://fetch.spec.whatwg.org/#requestcredentials + allowedValues: requestCredentials + }, + { + key: 'cache', + converter: webidl.converters.DOMString, + // https://fetch.spec.whatwg.org/#requestcache + allowedValues: requestCache + }, + { + key: 'redirect', + converter: webidl.converters.DOMString, + // https://fetch.spec.whatwg.org/#requestredirect + allowedValues: requestRedirect + }, + { + key: 'integrity', + converter: webidl.converters.DOMString + }, + { + key: 'keepalive', + converter: webidl.converters.boolean + }, + { + key: 'signal', + converter: webidl.nullableConverter( + (signal) => webidl.converters.AbortSignal( + signal, + { strict: false } + ) + ) + }, + { + key: 'window', + converter: webidl.converters.any + }, + { + key: 'duplex', + converter: webidl.converters.DOMString, + allowedValues: requestDuplex + } +]) + +module.exports = { Request, makeRequest } + + +/***/ }), + +/***/ 7823: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { Headers, HeadersList, fill } = __nccwpck_require__(554) +const { extractBody, cloneBody, mixinBody } = __nccwpck_require__(1472) +const util = __nccwpck_require__(3983) +const { kEnumerableProperty } = util +const { + isValidReasonPhrase, + isCancelled, + isAborted, + isBlobLike, + serializeJavascriptValueToJSONString, + isErrorLike, + isomorphicEncode +} = __nccwpck_require__(2538) +const { + redirectStatusSet, + nullBodyStatus, + DOMException +} = __nccwpck_require__(1037) +const { kState, kHeaders, kGuard, kRealm } = __nccwpck_require__(5861) +const { webidl } = __nccwpck_require__(1744) +const { FormData } = __nccwpck_require__(2015) +const { getGlobalOrigin } = __nccwpck_require__(1246) +const { URLSerializer } = __nccwpck_require__(685) +const { kHeadersList } = __nccwpck_require__(2785) +const assert = __nccwpck_require__(9491) +const { types } = __nccwpck_require__(3837) + +const ReadableStream = globalThis.ReadableStream || (__nccwpck_require__(5356).ReadableStream) +const textEncoder = new TextEncoder('utf-8') + +// https://fetch.spec.whatwg.org/#response-class +class Response { + // Creates network error Response. + static error () { + // TODO + const relevantRealm = { settingsObject: {} } + + // The static error() method steps are to return the result of creating a + // Response object, given a new network error, "immutable", and this’s + // relevant Realm. + const responseObject = new Response() + responseObject[kState] = makeNetworkError() + responseObject[kRealm] = relevantRealm + responseObject[kHeaders][kHeadersList] = responseObject[kState].headersList + responseObject[kHeaders][kGuard] = 'immutable' + responseObject[kHeaders][kRealm] = relevantRealm + return responseObject + } + + // https://fetch.spec.whatwg.org/#dom-response-json + static json (data, init = {}) { + webidl.argumentLengthCheck(arguments, 1, { header: 'Response.json' }) + + if (init !== null) { + init = webidl.converters.ResponseInit(init) + } + + // 1. Let bytes the result of running serialize a JavaScript value to JSON bytes on data. + const bytes = textEncoder.encode( + serializeJavascriptValueToJSONString(data) + ) + + // 2. Let body be the result of extracting bytes. + const body = extractBody(bytes) + + // 3. Let responseObject be the result of creating a Response object, given a new response, + // "response", and this’s relevant Realm. + const relevantRealm = { settingsObject: {} } + const responseObject = new Response() + responseObject[kRealm] = relevantRealm + responseObject[kHeaders][kGuard] = 'response' + responseObject[kHeaders][kRealm] = relevantRealm + + // 4. Perform initialize a response given responseObject, init, and (body, "application/json"). + initializeResponse(responseObject, init, { body: body[0], type: 'application/json' }) + + // 5. Return responseObject. + return responseObject + } + + // Creates a redirect Response that redirects to url with status status. + static redirect (url, status = 302) { + const relevantRealm = { settingsObject: {} } + + webidl.argumentLengthCheck(arguments, 1, { header: 'Response.redirect' }) + + url = webidl.converters.USVString(url) + status = webidl.converters['unsigned short'](status) + + // 1. Let parsedURL be the result of parsing url with current settings + // object’s API base URL. + // 2. If parsedURL is failure, then throw a TypeError. + // TODO: base-URL? + let parsedURL + try { + parsedURL = new URL(url, getGlobalOrigin()) + } catch (err) { + throw Object.assign(new TypeError('Failed to parse URL from ' + url), { + cause: err + }) + } + + // 3. If status is not a redirect status, then throw a RangeError. + if (!redirectStatusSet.has(status)) { + throw new RangeError('Invalid status code ' + status) + } + + // 4. Let responseObject be the result of creating a Response object, + // given a new response, "immutable", and this’s relevant Realm. + const responseObject = new Response() + responseObject[kRealm] = relevantRealm + responseObject[kHeaders][kGuard] = 'immutable' + responseObject[kHeaders][kRealm] = relevantRealm + + // 5. Set responseObject’s response’s status to status. + responseObject[kState].status = status + + // 6. Let value be parsedURL, serialized and isomorphic encoded. + const value = isomorphicEncode(URLSerializer(parsedURL)) + + // 7. Append `Location`/value to responseObject’s response’s header list. + responseObject[kState].headersList.append('location', value) + + // 8. Return responseObject. + return responseObject + } + + // https://fetch.spec.whatwg.org/#dom-response + constructor (body = null, init = {}) { + if (body !== null) { + body = webidl.converters.BodyInit(body) + } + + init = webidl.converters.ResponseInit(init) + + // TODO + this[kRealm] = { settingsObject: {} } + + // 1. Set this’s response to a new response. + this[kState] = makeResponse({}) + + // 2. Set this’s headers to a new Headers object with this’s relevant + // Realm, whose header list is this’s response’s header list and guard + // is "response". + this[kHeaders] = new Headers() + this[kHeaders][kGuard] = 'response' + this[kHeaders][kHeadersList] = this[kState].headersList + this[kHeaders][kRealm] = this[kRealm] + + // 3. Let bodyWithType be null. + let bodyWithType = null + + // 4. If body is non-null, then set bodyWithType to the result of extracting body. + if (body != null) { + const [extractedBody, type] = extractBody(body) + bodyWithType = { body: extractedBody, type } + } + + // 5. Perform initialize a response given this, init, and bodyWithType. + initializeResponse(this, init, bodyWithType) + } + + // Returns response’s type, e.g., "cors". + get type () { + webidl.brandCheck(this, Response) + + // The type getter steps are to return this’s response’s type. + return this[kState].type + } + + // Returns response’s URL, if it has one; otherwise the empty string. + get url () { + webidl.brandCheck(this, Response) + + const urlList = this[kState].urlList + + // The url getter steps are to return the empty string if this’s + // response’s URL is null; otherwise this’s response’s URL, + // serialized with exclude fragment set to true. + const url = urlList[urlList.length - 1] ?? null + + if (url === null) { + return '' + } + + return URLSerializer(url, true) + } + + // Returns whether response was obtained through a redirect. + get redirected () { + webidl.brandCheck(this, Response) + + // The redirected getter steps are to return true if this’s response’s URL + // list has more than one item; otherwise false. + return this[kState].urlList.length > 1 + } + + // Returns response’s status. + get status () { + webidl.brandCheck(this, Response) + + // The status getter steps are to return this’s response’s status. + return this[kState].status + } + + // Returns whether response’s status is an ok status. + get ok () { + webidl.brandCheck(this, Response) + + // The ok getter steps are to return true if this’s response’s status is an + // ok status; otherwise false. + return this[kState].status >= 200 && this[kState].status <= 299 + } + + // Returns response’s status message. + get statusText () { + webidl.brandCheck(this, Response) + + // The statusText getter steps are to return this’s response’s status + // message. + return this[kState].statusText + } + + // Returns response’s headers as Headers. + get headers () { + webidl.brandCheck(this, Response) + + // The headers getter steps are to return this’s headers. + return this[kHeaders] + } + + get body () { + webidl.brandCheck(this, Response) + + return this[kState].body ? this[kState].body.stream : null + } + + get bodyUsed () { + webidl.brandCheck(this, Response) + + return !!this[kState].body && util.isDisturbed(this[kState].body.stream) + } + + // Returns a clone of response. + clone () { + webidl.brandCheck(this, Response) + + // 1. If this is unusable, then throw a TypeError. + if (this.bodyUsed || (this.body && this.body.locked)) { + throw webidl.errors.exception({ + header: 'Response.clone', + message: 'Body has already been consumed.' + }) + } + + // 2. Let clonedResponse be the result of cloning this’s response. + const clonedResponse = cloneResponse(this[kState]) + + // 3. Return the result of creating a Response object, given + // clonedResponse, this’s headers’s guard, and this’s relevant Realm. + const clonedResponseObject = new Response() + clonedResponseObject[kState] = clonedResponse + clonedResponseObject[kRealm] = this[kRealm] + clonedResponseObject[kHeaders][kHeadersList] = clonedResponse.headersList + clonedResponseObject[kHeaders][kGuard] = this[kHeaders][kGuard] + clonedResponseObject[kHeaders][kRealm] = this[kHeaders][kRealm] + + return clonedResponseObject + } +} + +mixinBody(Response) + +Object.defineProperties(Response.prototype, { + type: kEnumerableProperty, + url: kEnumerableProperty, + status: kEnumerableProperty, + ok: kEnumerableProperty, + redirected: kEnumerableProperty, + statusText: kEnumerableProperty, + headers: kEnumerableProperty, + clone: kEnumerableProperty, + body: kEnumerableProperty, + bodyUsed: kEnumerableProperty, + [Symbol.toStringTag]: { + value: 'Response', + configurable: true + } +}) + +Object.defineProperties(Response, { + json: kEnumerableProperty, + redirect: kEnumerableProperty, + error: kEnumerableProperty +}) + +// https://fetch.spec.whatwg.org/#concept-response-clone +function cloneResponse (response) { + // To clone a response response, run these steps: + + // 1. If response is a filtered response, then return a new identical + // filtered response whose internal response is a clone of response’s + // internal response. + if (response.internalResponse) { + return filterResponse( + cloneResponse(response.internalResponse), + response.type + ) + } + + // 2. Let newResponse be a copy of response, except for its body. + const newResponse = makeResponse({ ...response, body: null }) + + // 3. If response’s body is non-null, then set newResponse’s body to the + // result of cloning response’s body. + if (response.body != null) { + newResponse.body = cloneBody(response.body) + } + + // 4. Return newResponse. + return newResponse +} + +function makeResponse (init) { + return { + aborted: false, + rangeRequested: false, + timingAllowPassed: false, + requestIncludesCredentials: false, + type: 'default', + status: 200, + timingInfo: null, + cacheState: '', + statusText: '', + ...init, + headersList: init.headersList + ? new HeadersList(init.headersList) + : new HeadersList(), + urlList: init.urlList ? [...init.urlList] : [] + } +} + +function makeNetworkError (reason) { + const isError = isErrorLike(reason) + return makeResponse({ + type: 'error', + status: 0, + error: isError + ? reason + : new Error(reason ? String(reason) : reason), + aborted: reason && reason.name === 'AbortError' + }) +} + +function makeFilteredResponse (response, state) { + state = { + internalResponse: response, + ...state + } + + return new Proxy(response, { + get (target, p) { + return p in state ? state[p] : target[p] + }, + set (target, p, value) { + assert(!(p in state)) + target[p] = value + return true + } + }) +} + +// https://fetch.spec.whatwg.org/#concept-filtered-response +function filterResponse (response, type) { + // Set response to the following filtered response with response as its + // internal response, depending on request’s response tainting: + if (type === 'basic') { + // A basic filtered response is a filtered response whose type is "basic" + // and header list excludes any headers in internal response’s header list + // whose name is a forbidden response-header name. + + // Note: undici does not implement forbidden response-header names + return makeFilteredResponse(response, { + type: 'basic', + headersList: response.headersList + }) + } else if (type === 'cors') { + // A CORS filtered response is a filtered response whose type is "cors" + // and header list excludes any headers in internal response’s header + // list whose name is not a CORS-safelisted response-header name, given + // internal response’s CORS-exposed header-name list. + + // Note: undici does not implement CORS-safelisted response-header names + return makeFilteredResponse(response, { + type: 'cors', + headersList: response.headersList + }) + } else if (type === 'opaque') { + // An opaque filtered response is a filtered response whose type is + // "opaque", URL list is the empty list, status is 0, status message + // is the empty byte sequence, header list is empty, and body is null. + + return makeFilteredResponse(response, { + type: 'opaque', + urlList: Object.freeze([]), + status: 0, + statusText: '', + body: null + }) + } else if (type === 'opaqueredirect') { + // An opaque-redirect filtered response is a filtered response whose type + // is "opaqueredirect", status is 0, status message is the empty byte + // sequence, header list is empty, and body is null. + + return makeFilteredResponse(response, { + type: 'opaqueredirect', + status: 0, + statusText: '', + headersList: [], + body: null + }) + } else { + assert(false) + } +} + +// https://fetch.spec.whatwg.org/#appropriate-network-error +function makeAppropriateNetworkError (fetchParams, err = null) { + // 1. Assert: fetchParams is canceled. + assert(isCancelled(fetchParams)) + + // 2. Return an aborted network error if fetchParams is aborted; + // otherwise return a network error. + return isAborted(fetchParams) + ? makeNetworkError(Object.assign(new DOMException('The operation was aborted.', 'AbortError'), { cause: err })) + : makeNetworkError(Object.assign(new DOMException('Request was cancelled.'), { cause: err })) +} + +// https://whatpr.org/fetch/1392.html#initialize-a-response +function initializeResponse (response, init, body) { + // 1. If init["status"] is not in the range 200 to 599, inclusive, then + // throw a RangeError. + if (init.status !== null && (init.status < 200 || init.status > 599)) { + throw new RangeError('init["status"] must be in the range of 200 to 599, inclusive.') + } + + // 2. If init["statusText"] does not match the reason-phrase token production, + // then throw a TypeError. + if ('statusText' in init && init.statusText != null) { + // See, https://datatracker.ietf.org/doc/html/rfc7230#section-3.1.2: + // reason-phrase = *( HTAB / SP / VCHAR / obs-text ) + if (!isValidReasonPhrase(String(init.statusText))) { + throw new TypeError('Invalid statusText') + } + } + + // 3. Set response’s response’s status to init["status"]. + if ('status' in init && init.status != null) { + response[kState].status = init.status + } + + // 4. Set response’s response’s status message to init["statusText"]. + if ('statusText' in init && init.statusText != null) { + response[kState].statusText = init.statusText + } + + // 5. If init["headers"] exists, then fill response’s headers with init["headers"]. + if ('headers' in init && init.headers != null) { + fill(response[kHeaders], init.headers) + } + + // 6. If body was given, then: + if (body) { + // 1. If response's status is a null body status, then throw a TypeError. + if (nullBodyStatus.includes(response.status)) { + throw webidl.errors.exception({ + header: 'Response constructor', + message: 'Invalid response status code ' + response.status + }) + } + + // 2. Set response's body to body's body. + response[kState].body = body.body + + // 3. If body's type is non-null and response's header list does not contain + // `Content-Type`, then append (`Content-Type`, body's type) to response's header list. + if (body.type != null && !response[kState].headersList.contains('Content-Type')) { + response[kState].headersList.append('content-type', body.type) + } + } +} + +webidl.converters.ReadableStream = webidl.interfaceConverter( + ReadableStream +) + +webidl.converters.FormData = webidl.interfaceConverter( + FormData +) + +webidl.converters.URLSearchParams = webidl.interfaceConverter( + URLSearchParams +) + +// https://fetch.spec.whatwg.org/#typedefdef-xmlhttprequestbodyinit +webidl.converters.XMLHttpRequestBodyInit = function (V) { + if (typeof V === 'string') { + return webidl.converters.USVString(V) + } + + if (isBlobLike(V)) { + return webidl.converters.Blob(V, { strict: false }) + } + + if ( + types.isAnyArrayBuffer(V) || + types.isTypedArray(V) || + types.isDataView(V) + ) { + return webidl.converters.BufferSource(V) + } + + if (util.isFormDataLike(V)) { + return webidl.converters.FormData(V, { strict: false }) + } + + if (V instanceof URLSearchParams) { + return webidl.converters.URLSearchParams(V) + } + + return webidl.converters.DOMString(V) +} + +// https://fetch.spec.whatwg.org/#bodyinit +webidl.converters.BodyInit = function (V) { + if (V instanceof ReadableStream) { + return webidl.converters.ReadableStream(V) + } + + // Note: the spec doesn't include async iterables, + // this is an undici extension. + if (V?.[Symbol.asyncIterator]) { + return V + } + + return webidl.converters.XMLHttpRequestBodyInit(V) +} + +webidl.converters.ResponseInit = webidl.dictionaryConverter([ + { + key: 'status', + converter: webidl.converters['unsigned short'], + defaultValue: 200 + }, + { + key: 'statusText', + converter: webidl.converters.ByteString, + defaultValue: '' + }, + { + key: 'headers', + converter: webidl.converters.HeadersInit + } +]) + +module.exports = { + makeNetworkError, + makeResponse, + makeAppropriateNetworkError, + filterResponse, + Response, + cloneResponse +} + + +/***/ }), + +/***/ 5861: +/***/ ((module) => { + +"use strict"; + + +module.exports = { + kUrl: Symbol('url'), + kHeaders: Symbol('headers'), + kSignal: Symbol('signal'), + kState: Symbol('state'), + kGuard: Symbol('guard'), + kRealm: Symbol('realm') +} + + +/***/ }), + +/***/ 2538: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { redirectStatusSet, referrerPolicySet: referrerPolicyTokens, badPortsSet } = __nccwpck_require__(1037) +const { getGlobalOrigin } = __nccwpck_require__(1246) +const { performance } = __nccwpck_require__(4074) +const { isBlobLike, toUSVString, ReadableStreamFrom } = __nccwpck_require__(3983) +const assert = __nccwpck_require__(9491) +const { isUint8Array } = __nccwpck_require__(9830) + +// https://nodejs.org/api/crypto.html#determining-if-crypto-support-is-unavailable +/** @type {import('crypto')|undefined} */ +let crypto + +try { + crypto = __nccwpck_require__(6113) +} catch { + +} + +function responseURL (response) { + // https://fetch.spec.whatwg.org/#responses + // A response has an associated URL. It is a pointer to the last URL + // in response’s URL list and null if response’s URL list is empty. + const urlList = response.urlList + const length = urlList.length + return length === 0 ? null : urlList[length - 1].toString() +} + +// https://fetch.spec.whatwg.org/#concept-response-location-url +function responseLocationURL (response, requestFragment) { + // 1. If response’s status is not a redirect status, then return null. + if (!redirectStatusSet.has(response.status)) { + return null + } + + // 2. Let location be the result of extracting header list values given + // `Location` and response’s header list. + let location = response.headersList.get('location') + + // 3. If location is a header value, then set location to the result of + // parsing location with response’s URL. + if (location !== null && isValidHeaderValue(location)) { + location = new URL(location, responseURL(response)) + } + + // 4. If location is a URL whose fragment is null, then set location’s + // fragment to requestFragment. + if (location && !location.hash) { + location.hash = requestFragment + } + + // 5. Return location. + return location +} + +/** @returns {URL} */ +function requestCurrentURL (request) { + return request.urlList[request.urlList.length - 1] +} + +function requestBadPort (request) { + // 1. Let url be request’s current URL. + const url = requestCurrentURL(request) + + // 2. If url’s scheme is an HTTP(S) scheme and url’s port is a bad port, + // then return blocked. + if (urlIsHttpHttpsScheme(url) && badPortsSet.has(url.port)) { + return 'blocked' + } + + // 3. Return allowed. + return 'allowed' +} + +function isErrorLike (object) { + return object instanceof Error || ( + object?.constructor?.name === 'Error' || + object?.constructor?.name === 'DOMException' + ) +} + +// Check whether |statusText| is a ByteString and +// matches the Reason-Phrase token production. +// RFC 2616: https://tools.ietf.org/html/rfc2616 +// RFC 7230: https://tools.ietf.org/html/rfc7230 +// "reason-phrase = *( HTAB / SP / VCHAR / obs-text )" +// https://github.com/chromium/chromium/blob/94.0.4604.1/third_party/blink/renderer/core/fetch/response.cc#L116 +function isValidReasonPhrase (statusText) { + for (let i = 0; i < statusText.length; ++i) { + const c = statusText.charCodeAt(i) + if ( + !( + ( + c === 0x09 || // HTAB + (c >= 0x20 && c <= 0x7e) || // SP / VCHAR + (c >= 0x80 && c <= 0xff) + ) // obs-text + ) + ) { + return false + } + } + return true +} + +function isTokenChar (c) { + return !( + c >= 0x7f || + c <= 0x20 || + c === '(' || + c === ')' || + c === '<' || + c === '>' || + c === '@' || + c === ',' || + c === ';' || + c === ':' || + c === '\\' || + c === '"' || + c === '/' || + c === '[' || + c === ']' || + c === '?' || + c === '=' || + c === '{' || + c === '}' + ) +} + +// See RFC 7230, Section 3.2.6. +// https://github.com/chromium/chromium/blob/d7da0240cae77824d1eda25745c4022757499131/third_party/blink/renderer/platform/network/http_parsers.cc#L321 +function isValidHTTPToken (characters) { + if (!characters || typeof characters !== 'string') { + return false + } + for (let i = 0; i < characters.length; ++i) { + const c = characters.charCodeAt(i) + if (c > 0x7f || !isTokenChar(c)) { + return false + } + } + return true +} + +// https://fetch.spec.whatwg.org/#header-name +// https://github.com/chromium/chromium/blob/b3d37e6f94f87d59e44662d6078f6a12de845d17/net/http/http_util.cc#L342 +function isValidHeaderName (potentialValue) { + if (potentialValue.length === 0) { + return false + } + + return isValidHTTPToken(potentialValue) +} + +/** + * @see https://fetch.spec.whatwg.org/#header-value + * @param {string} potentialValue + */ +function isValidHeaderValue (potentialValue) { + // - Has no leading or trailing HTTP tab or space bytes. + // - Contains no 0x00 (NUL) or HTTP newline bytes. + if ( + potentialValue.startsWith('\t') || + potentialValue.startsWith(' ') || + potentialValue.endsWith('\t') || + potentialValue.endsWith(' ') + ) { + return false + } + + if ( + potentialValue.includes('\0') || + potentialValue.includes('\r') || + potentialValue.includes('\n') + ) { + return false + } + + return true +} + +// https://w3c.github.io/webappsec-referrer-policy/#set-requests-referrer-policy-on-redirect +function setRequestReferrerPolicyOnRedirect (request, actualResponse) { + // Given a request request and a response actualResponse, this algorithm + // updates request’s referrer policy according to the Referrer-Policy + // header (if any) in actualResponse. + + // 1. Let policy be the result of executing § 8.1 Parse a referrer policy + // from a Referrer-Policy header on actualResponse. + + // 8.1 Parse a referrer policy from a Referrer-Policy header + // 1. Let policy-tokens be the result of extracting header list values given `Referrer-Policy` and response’s header list. + const { headersList } = actualResponse + // 2. Let policy be the empty string. + // 3. For each token in policy-tokens, if token is a referrer policy and token is not the empty string, then set policy to token. + // 4. Return policy. + const policyHeader = (headersList.get('referrer-policy') ?? '').split(',') + + // Note: As the referrer-policy can contain multiple policies + // separated by comma, we need to loop through all of them + // and pick the first valid one. + // Ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy#specify_a_fallback_policy + let policy = '' + if (policyHeader.length > 0) { + // The right-most policy takes precedence. + // The left-most policy is the fallback. + for (let i = policyHeader.length; i !== 0; i--) { + const token = policyHeader[i - 1].trim() + if (referrerPolicyTokens.has(token)) { + policy = token + break + } + } + } + + // 2. If policy is not the empty string, then set request’s referrer policy to policy. + if (policy !== '') { + request.referrerPolicy = policy + } +} + +// https://fetch.spec.whatwg.org/#cross-origin-resource-policy-check +function crossOriginResourcePolicyCheck () { + // TODO + return 'allowed' +} + +// https://fetch.spec.whatwg.org/#concept-cors-check +function corsCheck () { + // TODO + return 'success' +} + +// https://fetch.spec.whatwg.org/#concept-tao-check +function TAOCheck () { + // TODO + return 'success' +} + +function appendFetchMetadata (httpRequest) { + // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-dest-header + // TODO + + // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-mode-header + + // 1. Assert: r’s url is a potentially trustworthy URL. + // TODO + + // 2. Let header be a Structured Header whose value is a token. + let header = null + + // 3. Set header’s value to r’s mode. + header = httpRequest.mode + + // 4. Set a structured field value `Sec-Fetch-Mode`/header in r’s header list. + httpRequest.headersList.set('sec-fetch-mode', header) + + // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-site-header + // TODO + + // https://w3c.github.io/webappsec-fetch-metadata/#sec-fetch-user-header + // TODO +} + +// https://fetch.spec.whatwg.org/#append-a-request-origin-header +function appendRequestOriginHeader (request) { + // 1. Let serializedOrigin be the result of byte-serializing a request origin with request. + let serializedOrigin = request.origin + + // 2. If request’s response tainting is "cors" or request’s mode is "websocket", then append (`Origin`, serializedOrigin) to request’s header list. + if (request.responseTainting === 'cors' || request.mode === 'websocket') { + if (serializedOrigin) { + request.headersList.append('origin', serializedOrigin) + } + + // 3. Otherwise, if request’s method is neither `GET` nor `HEAD`, then: + } else if (request.method !== 'GET' && request.method !== 'HEAD') { + // 1. Switch on request’s referrer policy: + switch (request.referrerPolicy) { + case 'no-referrer': + // Set serializedOrigin to `null`. + serializedOrigin = null + break + case 'no-referrer-when-downgrade': + case 'strict-origin': + case 'strict-origin-when-cross-origin': + // If request’s origin is a tuple origin, its scheme is "https", and request’s current URL’s scheme is not "https", then set serializedOrigin to `null`. + if (request.origin && urlHasHttpsScheme(request.origin) && !urlHasHttpsScheme(requestCurrentURL(request))) { + serializedOrigin = null + } + break + case 'same-origin': + // If request’s origin is not same origin with request’s current URL’s origin, then set serializedOrigin to `null`. + if (!sameOrigin(request, requestCurrentURL(request))) { + serializedOrigin = null + } + break + default: + // Do nothing. + } + + if (serializedOrigin) { + // 2. Append (`Origin`, serializedOrigin) to request’s header list. + request.headersList.append('origin', serializedOrigin) + } + } +} + +function coarsenedSharedCurrentTime (crossOriginIsolatedCapability) { + // TODO + return performance.now() +} + +// https://fetch.spec.whatwg.org/#create-an-opaque-timing-info +function createOpaqueTimingInfo (timingInfo) { + return { + startTime: timingInfo.startTime ?? 0, + redirectStartTime: 0, + redirectEndTime: 0, + postRedirectStartTime: timingInfo.startTime ?? 0, + finalServiceWorkerStartTime: 0, + finalNetworkResponseStartTime: 0, + finalNetworkRequestStartTime: 0, + endTime: 0, + encodedBodySize: 0, + decodedBodySize: 0, + finalConnectionTimingInfo: null + } +} + +// https://html.spec.whatwg.org/multipage/origin.html#policy-container +function makePolicyContainer () { + // Note: the fetch spec doesn't make use of embedder policy or CSP list + return { + referrerPolicy: 'strict-origin-when-cross-origin' + } +} + +// https://html.spec.whatwg.org/multipage/origin.html#clone-a-policy-container +function clonePolicyContainer (policyContainer) { + return { + referrerPolicy: policyContainer.referrerPolicy + } +} + +// https://w3c.github.io/webappsec-referrer-policy/#determine-requests-referrer +function determineRequestsReferrer (request) { + // 1. Let policy be request's referrer policy. + const policy = request.referrerPolicy + + // Note: policy cannot (shouldn't) be null or an empty string. + assert(policy) + + // 2. Let environment be request’s client. + + let referrerSource = null + + // 3. Switch on request’s referrer: + if (request.referrer === 'client') { + // Note: node isn't a browser and doesn't implement document/iframes, + // so we bypass this step and replace it with our own. + + const globalOrigin = getGlobalOrigin() + + if (!globalOrigin || globalOrigin.origin === 'null') { + return 'no-referrer' + } + + // note: we need to clone it as it's mutated + referrerSource = new URL(globalOrigin) + } else if (request.referrer instanceof URL) { + // Let referrerSource be request’s referrer. + referrerSource = request.referrer + } + + // 4. Let request’s referrerURL be the result of stripping referrerSource for + // use as a referrer. + let referrerURL = stripURLForReferrer(referrerSource) + + // 5. Let referrerOrigin be the result of stripping referrerSource for use as + // a referrer, with the origin-only flag set to true. + const referrerOrigin = stripURLForReferrer(referrerSource, true) + + // 6. If the result of serializing referrerURL is a string whose length is + // greater than 4096, set referrerURL to referrerOrigin. + if (referrerURL.toString().length > 4096) { + referrerURL = referrerOrigin + } + + const areSameOrigin = sameOrigin(request, referrerURL) + const isNonPotentiallyTrustWorthy = isURLPotentiallyTrustworthy(referrerURL) && + !isURLPotentiallyTrustworthy(request.url) + + // 8. Execute the switch statements corresponding to the value of policy: + switch (policy) { + case 'origin': return referrerOrigin != null ? referrerOrigin : stripURLForReferrer(referrerSource, true) + case 'unsafe-url': return referrerURL + case 'same-origin': + return areSameOrigin ? referrerOrigin : 'no-referrer' + case 'origin-when-cross-origin': + return areSameOrigin ? referrerURL : referrerOrigin + case 'strict-origin-when-cross-origin': { + const currentURL = requestCurrentURL(request) + + // 1. If the origin of referrerURL and the origin of request’s current + // URL are the same, then return referrerURL. + if (sameOrigin(referrerURL, currentURL)) { + return referrerURL + } + + // 2. If referrerURL is a potentially trustworthy URL and request’s + // current URL is not a potentially trustworthy URL, then return no + // referrer. + if (isURLPotentiallyTrustworthy(referrerURL) && !isURLPotentiallyTrustworthy(currentURL)) { + return 'no-referrer' + } + + // 3. Return referrerOrigin. + return referrerOrigin + } + case 'strict-origin': // eslint-disable-line + /** + * 1. If referrerURL is a potentially trustworthy URL and + * request’s current URL is not a potentially trustworthy URL, + * then return no referrer. + * 2. Return referrerOrigin + */ + case 'no-referrer-when-downgrade': // eslint-disable-line + /** + * 1. If referrerURL is a potentially trustworthy URL and + * request’s current URL is not a potentially trustworthy URL, + * then return no referrer. + * 2. Return referrerOrigin + */ + + default: // eslint-disable-line + return isNonPotentiallyTrustWorthy ? 'no-referrer' : referrerOrigin + } +} + +/** + * @see https://w3c.github.io/webappsec-referrer-policy/#strip-url + * @param {URL} url + * @param {boolean|undefined} originOnly + */ +function stripURLForReferrer (url, originOnly) { + // 1. Assert: url is a URL. + assert(url instanceof URL) + + // 2. If url’s scheme is a local scheme, then return no referrer. + if (url.protocol === 'file:' || url.protocol === 'about:' || url.protocol === 'blank:') { + return 'no-referrer' + } + + // 3. Set url’s username to the empty string. + url.username = '' + + // 4. Set url’s password to the empty string. + url.password = '' + + // 5. Set url’s fragment to null. + url.hash = '' + + // 6. If the origin-only flag is true, then: + if (originOnly) { + // 1. Set url’s path to « the empty string ». + url.pathname = '' + + // 2. Set url’s query to null. + url.search = '' + } + + // 7. Return url. + return url +} + +function isURLPotentiallyTrustworthy (url) { + if (!(url instanceof URL)) { + return false + } + + // If child of about, return true + if (url.href === 'about:blank' || url.href === 'about:srcdoc') { + return true + } + + // If scheme is data, return true + if (url.protocol === 'data:') return true + + // If file, return true + if (url.protocol === 'file:') return true + + return isOriginPotentiallyTrustworthy(url.origin) + + function isOriginPotentiallyTrustworthy (origin) { + // If origin is explicitly null, return false + if (origin == null || origin === 'null') return false + + const originAsURL = new URL(origin) + + // If secure, return true + if (originAsURL.protocol === 'https:' || originAsURL.protocol === 'wss:') { + return true + } + + // If localhost or variants, return true + if (/^127(?:\.[0-9]+){0,2}\.[0-9]+$|^\[(?:0*:)*?:?0*1\]$/.test(originAsURL.hostname) || + (originAsURL.hostname === 'localhost' || originAsURL.hostname.includes('localhost.')) || + (originAsURL.hostname.endsWith('.localhost'))) { + return true + } + + // If any other, return false + return false + } +} + +/** + * @see https://w3c.github.io/webappsec-subresource-integrity/#does-response-match-metadatalist + * @param {Uint8Array} bytes + * @param {string} metadataList + */ +function bytesMatch (bytes, metadataList) { + // If node is not built with OpenSSL support, we cannot check + // a request's integrity, so allow it by default (the spec will + // allow requests if an invalid hash is given, as precedence). + /* istanbul ignore if: only if node is built with --without-ssl */ + if (crypto === undefined) { + return true + } + + // 1. Let parsedMetadata be the result of parsing metadataList. + const parsedMetadata = parseMetadata(metadataList) + + // 2. If parsedMetadata is no metadata, return true. + if (parsedMetadata === 'no metadata') { + return true + } + + // 3. If parsedMetadata is the empty set, return true. + if (parsedMetadata.length === 0) { + return true + } + + // 4. Let metadata be the result of getting the strongest + // metadata from parsedMetadata. + const list = parsedMetadata.sort((c, d) => d.algo.localeCompare(c.algo)) + // get the strongest algorithm + const strongest = list[0].algo + // get all entries that use the strongest algorithm; ignore weaker + const metadata = list.filter((item) => item.algo === strongest) + + // 5. For each item in metadata: + for (const item of metadata) { + // 1. Let algorithm be the alg component of item. + const algorithm = item.algo + + // 2. Let expectedValue be the val component of item. + let expectedValue = item.hash + + // See https://github.com/web-platform-tests/wpt/commit/e4c5cc7a5e48093220528dfdd1c4012dc3837a0e + // "be liberal with padding". This is annoying, and it's not even in the spec. + + if (expectedValue.endsWith('==')) { + expectedValue = expectedValue.slice(0, -2) + } + + // 3. Let actualValue be the result of applying algorithm to bytes. + let actualValue = crypto.createHash(algorithm).update(bytes).digest('base64') + + if (actualValue.endsWith('==')) { + actualValue = actualValue.slice(0, -2) + } + + // 4. If actualValue is a case-sensitive match for expectedValue, + // return true. + if (actualValue === expectedValue) { + return true + } + + let actualBase64URL = crypto.createHash(algorithm).update(bytes).digest('base64url') + + if (actualBase64URL.endsWith('==')) { + actualBase64URL = actualBase64URL.slice(0, -2) + } + + if (actualBase64URL === expectedValue) { + return true + } + } + + // 6. Return false. + return false +} + +// https://w3c.github.io/webappsec-subresource-integrity/#grammardef-hash-with-options +// https://www.w3.org/TR/CSP2/#source-list-syntax +// https://www.rfc-editor.org/rfc/rfc5234#appendix-B.1 +const parseHashWithOptions = /((?sha256|sha384|sha512)-(?[A-z0-9+/]{1}.*={0,2}))( +[\x21-\x7e]?)?/i + +/** + * @see https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata + * @param {string} metadata + */ +function parseMetadata (metadata) { + // 1. Let result be the empty set. + /** @type {{ algo: string, hash: string }[]} */ + const result = [] + + // 2. Let empty be equal to true. + let empty = true + + const supportedHashes = crypto.getHashes() + + // 3. For each token returned by splitting metadata on spaces: + for (const token of metadata.split(' ')) { + // 1. Set empty to false. + empty = false + + // 2. Parse token as a hash-with-options. + const parsedToken = parseHashWithOptions.exec(token) + + // 3. If token does not parse, continue to the next token. + if (parsedToken === null || parsedToken.groups === undefined) { + // Note: Chromium blocks the request at this point, but Firefox + // gives a warning that an invalid integrity was given. The + // correct behavior is to ignore these, and subsequently not + // check the integrity of the resource. + continue + } + + // 4. Let algorithm be the hash-algo component of token. + const algorithm = parsedToken.groups.algo + + // 5. If algorithm is a hash function recognized by the user + // agent, add the parsed token to result. + if (supportedHashes.includes(algorithm.toLowerCase())) { + result.push(parsedToken.groups) + } + } + + // 4. Return no metadata if empty is true, otherwise return result. + if (empty === true) { + return 'no metadata' + } + + return result +} + +// https://w3c.github.io/webappsec-upgrade-insecure-requests/#upgrade-request +function tryUpgradeRequestToAPotentiallyTrustworthyURL (request) { + // TODO +} + +/** + * @link {https://html.spec.whatwg.org/multipage/origin.html#same-origin} + * @param {URL} A + * @param {URL} B + */ +function sameOrigin (A, B) { + // 1. If A and B are the same opaque origin, then return true. + if (A.origin === B.origin && A.origin === 'null') { + return true + } + + // 2. If A and B are both tuple origins and their schemes, + // hosts, and port are identical, then return true. + if (A.protocol === B.protocol && A.hostname === B.hostname && A.port === B.port) { + return true + } + + // 3. Return false. + return false +} + +function createDeferredPromise () { + let res + let rej + const promise = new Promise((resolve, reject) => { + res = resolve + rej = reject + }) + + return { promise, resolve: res, reject: rej } +} + +function isAborted (fetchParams) { + return fetchParams.controller.state === 'aborted' +} + +function isCancelled (fetchParams) { + return fetchParams.controller.state === 'aborted' || + fetchParams.controller.state === 'terminated' +} + +// https://fetch.spec.whatwg.org/#concept-method-normalize +function normalizeMethod (method) { + return /^(DELETE|GET|HEAD|OPTIONS|POST|PUT)$/i.test(method) + ? method.toUpperCase() + : method +} + +// https://infra.spec.whatwg.org/#serialize-a-javascript-value-to-a-json-string +function serializeJavascriptValueToJSONString (value) { + // 1. Let result be ? Call(%JSON.stringify%, undefined, « value »). + const result = JSON.stringify(value) + + // 2. If result is undefined, then throw a TypeError. + if (result === undefined) { + throw new TypeError('Value is not JSON serializable') + } + + // 3. Assert: result is a string. + assert(typeof result === 'string') + + // 4. Return result. + return result +} + +// https://tc39.es/ecma262/#sec-%25iteratorprototype%25-object +const esIteratorPrototype = Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())) + +/** + * @see https://webidl.spec.whatwg.org/#dfn-iterator-prototype-object + * @param {() => unknown[]} iterator + * @param {string} name name of the instance + * @param {'key'|'value'|'key+value'} kind + */ +function makeIterator (iterator, name, kind) { + const object = { + index: 0, + kind, + target: iterator + } + + const i = { + next () { + // 1. Let interface be the interface for which the iterator prototype object exists. + + // 2. Let thisValue be the this value. + + // 3. Let object be ? ToObject(thisValue). + + // 4. If object is a platform object, then perform a security + // check, passing: + + // 5. If object is not a default iterator object for interface, + // then throw a TypeError. + if (Object.getPrototypeOf(this) !== i) { + throw new TypeError( + `'next' called on an object that does not implement interface ${name} Iterator.` + ) + } + + // 6. Let index be object’s index. + // 7. Let kind be object’s kind. + // 8. Let values be object’s target's value pairs to iterate over. + const { index, kind, target } = object + const values = target() + + // 9. Let len be the length of values. + const len = values.length + + // 10. If index is greater than or equal to len, then return + // CreateIterResultObject(undefined, true). + if (index >= len) { + return { value: undefined, done: true } + } + + // 11. Let pair be the entry in values at index index. + const pair = values[index] + + // 12. Set object’s index to index + 1. + object.index = index + 1 + + // 13. Return the iterator result for pair and kind. + return iteratorResult(pair, kind) + }, + // The class string of an iterator prototype object for a given interface is the + // result of concatenating the identifier of the interface and the string " Iterator". + [Symbol.toStringTag]: `${name} Iterator` + } + + // The [[Prototype]] internal slot of an iterator prototype object must be %IteratorPrototype%. + Object.setPrototypeOf(i, esIteratorPrototype) + // esIteratorPrototype needs to be the prototype of i + // which is the prototype of an empty object. Yes, it's confusing. + return Object.setPrototypeOf({}, i) +} + +// https://webidl.spec.whatwg.org/#iterator-result +function iteratorResult (pair, kind) { + let result + + // 1. Let result be a value determined by the value of kind: + switch (kind) { + case 'key': { + // 1. Let idlKey be pair’s key. + // 2. Let key be the result of converting idlKey to an + // ECMAScript value. + // 3. result is key. + result = pair[0] + break + } + case 'value': { + // 1. Let idlValue be pair’s value. + // 2. Let value be the result of converting idlValue to + // an ECMAScript value. + // 3. result is value. + result = pair[1] + break + } + case 'key+value': { + // 1. Let idlKey be pair’s key. + // 2. Let idlValue be pair’s value. + // 3. Let key be the result of converting idlKey to an + // ECMAScript value. + // 4. Let value be the result of converting idlValue to + // an ECMAScript value. + // 5. Let array be ! ArrayCreate(2). + // 6. Call ! CreateDataProperty(array, "0", key). + // 7. Call ! CreateDataProperty(array, "1", value). + // 8. result is array. + result = pair + break + } + } + + // 2. Return CreateIterResultObject(result, false). + return { value: result, done: false } +} + +/** + * @see https://fetch.spec.whatwg.org/#body-fully-read + */ +async function fullyReadBody (body, processBody, processBodyError) { + // 1. If taskDestination is null, then set taskDestination to + // the result of starting a new parallel queue. + + // 2. Let successSteps given a byte sequence bytes be to queue a + // fetch task to run processBody given bytes, with taskDestination. + const successSteps = processBody + + // 3. Let errorSteps be to queue a fetch task to run processBodyError, + // with taskDestination. + const errorSteps = processBodyError + + // 4. Let reader be the result of getting a reader for body’s stream. + // If that threw an exception, then run errorSteps with that + // exception and return. + let reader + + try { + reader = body.stream.getReader() + } catch (e) { + errorSteps(e) + return + } + + // 5. Read all bytes from reader, given successSteps and errorSteps. + try { + const result = await readAllBytes(reader) + successSteps(result) + } catch (e) { + errorSteps(e) + } +} + +/** @type {ReadableStream} */ +let ReadableStream = globalThis.ReadableStream + +function isReadableStreamLike (stream) { + if (!ReadableStream) { + ReadableStream = (__nccwpck_require__(5356).ReadableStream) + } + + return stream instanceof ReadableStream || ( + stream[Symbol.toStringTag] === 'ReadableStream' && + typeof stream.tee === 'function' + ) +} + +const MAXIMUM_ARGUMENT_LENGTH = 65535 + +/** + * @see https://infra.spec.whatwg.org/#isomorphic-decode + * @param {number[]|Uint8Array} input + */ +function isomorphicDecode (input) { + // 1. To isomorphic decode a byte sequence input, return a string whose code point + // length is equal to input’s length and whose code points have the same values + // as the values of input’s bytes, in the same order. + + if (input.length < MAXIMUM_ARGUMENT_LENGTH) { + return String.fromCharCode(...input) + } + + return input.reduce((previous, current) => previous + String.fromCharCode(current), '') +} + +/** + * @param {ReadableStreamController} controller + */ +function readableStreamClose (controller) { + try { + controller.close() + } catch (err) { + // TODO: add comment explaining why this error occurs. + if (!err.message.includes('Controller is already closed')) { + throw err + } + } +} + +/** + * @see https://infra.spec.whatwg.org/#isomorphic-encode + * @param {string} input + */ +function isomorphicEncode (input) { + // 1. Assert: input contains no code points greater than U+00FF. + for (let i = 0; i < input.length; i++) { + assert(input.charCodeAt(i) <= 0xFF) + } + + // 2. Return a byte sequence whose length is equal to input’s code + // point length and whose bytes have the same values as the + // values of input’s code points, in the same order + return input +} + +/** + * @see https://streams.spec.whatwg.org/#readablestreamdefaultreader-read-all-bytes + * @see https://streams.spec.whatwg.org/#read-loop + * @param {ReadableStreamDefaultReader} reader + */ +async function readAllBytes (reader) { + const bytes = [] + let byteLength = 0 + + while (true) { + const { done, value: chunk } = await reader.read() + + if (done) { + // 1. Call successSteps with bytes. + return Buffer.concat(bytes, byteLength) + } + + // 1. If chunk is not a Uint8Array object, call failureSteps + // with a TypeError and abort these steps. + if (!isUint8Array(chunk)) { + throw new TypeError('Received non-Uint8Array chunk') + } + + // 2. Append the bytes represented by chunk to bytes. + bytes.push(chunk) + byteLength += chunk.length + + // 3. Read-loop given reader, bytes, successSteps, and failureSteps. + } +} + +/** + * @see https://fetch.spec.whatwg.org/#is-local + * @param {URL} url + */ +function urlIsLocal (url) { + assert('protocol' in url) // ensure it's a url object + + const protocol = url.protocol + + return protocol === 'about:' || protocol === 'blob:' || protocol === 'data:' +} + +/** + * @param {string|URL} url + */ +function urlHasHttpsScheme (url) { + if (typeof url === 'string') { + return url.startsWith('https:') + } + + return url.protocol === 'https:' +} + +/** + * @see https://fetch.spec.whatwg.org/#http-scheme + * @param {URL} url + */ +function urlIsHttpHttpsScheme (url) { + assert('protocol' in url) // ensure it's a url object + + const protocol = url.protocol + + return protocol === 'http:' || protocol === 'https:' +} + +/** + * Fetch supports node >= 16.8.0, but Object.hasOwn was added in v16.9.0. + */ +const hasOwn = Object.hasOwn || ((dict, key) => Object.prototype.hasOwnProperty.call(dict, key)) + +module.exports = { + isAborted, + isCancelled, + createDeferredPromise, + ReadableStreamFrom, + toUSVString, + tryUpgradeRequestToAPotentiallyTrustworthyURL, + coarsenedSharedCurrentTime, + determineRequestsReferrer, + makePolicyContainer, + clonePolicyContainer, + appendFetchMetadata, + appendRequestOriginHeader, + TAOCheck, + corsCheck, + crossOriginResourcePolicyCheck, + createOpaqueTimingInfo, + setRequestReferrerPolicyOnRedirect, + isValidHTTPToken, + requestBadPort, + requestCurrentURL, + responseURL, + responseLocationURL, + isBlobLike, + isURLPotentiallyTrustworthy, + isValidReasonPhrase, + sameOrigin, + normalizeMethod, + serializeJavascriptValueToJSONString, + makeIterator, + isValidHeaderName, + isValidHeaderValue, + hasOwn, + isErrorLike, + fullyReadBody, + bytesMatch, + isReadableStreamLike, + readableStreamClose, + isomorphicEncode, + isomorphicDecode, + urlIsLocal, + urlHasHttpsScheme, + urlIsHttpHttpsScheme, + readAllBytes +} + + +/***/ }), + +/***/ 1744: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { types } = __nccwpck_require__(3837) +const { hasOwn, toUSVString } = __nccwpck_require__(2538) + +/** @type {import('../../types/webidl').Webidl} */ +const webidl = {} +webidl.converters = {} +webidl.util = {} +webidl.errors = {} + +webidl.errors.exception = function (message) { + return new TypeError(`${message.header}: ${message.message}`) +} + +webidl.errors.conversionFailed = function (context) { + const plural = context.types.length === 1 ? '' : ' one of' + const message = + `${context.argument} could not be converted to` + + `${plural}: ${context.types.join(', ')}.` + + return webidl.errors.exception({ + header: context.prefix, + message + }) +} + +webidl.errors.invalidArgument = function (context) { + return webidl.errors.exception({ + header: context.prefix, + message: `"${context.value}" is an invalid ${context.type}.` + }) +} + +// https://webidl.spec.whatwg.org/#implements +webidl.brandCheck = function (V, I, opts = undefined) { + if (opts?.strict !== false && !(V instanceof I)) { + throw new TypeError('Illegal invocation') + } else { + return V?.[Symbol.toStringTag] === I.prototype[Symbol.toStringTag] + } +} + +webidl.argumentLengthCheck = function ({ length }, min, ctx) { + if (length < min) { + throw webidl.errors.exception({ + message: `${min} argument${min !== 1 ? 's' : ''} required, ` + + `but${length ? ' only' : ''} ${length} found.`, + ...ctx + }) + } +} + +webidl.illegalConstructor = function () { + throw webidl.errors.exception({ + header: 'TypeError', + message: 'Illegal constructor' + }) +} + +// https://tc39.es/ecma262/#sec-ecmascript-data-types-and-values +webidl.util.Type = function (V) { + switch (typeof V) { + case 'undefined': return 'Undefined' + case 'boolean': return 'Boolean' + case 'string': return 'String' + case 'symbol': return 'Symbol' + case 'number': return 'Number' + case 'bigint': return 'BigInt' + case 'function': + case 'object': { + if (V === null) { + return 'Null' + } + + return 'Object' + } + } +} + +// https://webidl.spec.whatwg.org/#abstract-opdef-converttoint +webidl.util.ConvertToInt = function (V, bitLength, signedness, opts = {}) { + let upperBound + let lowerBound + + // 1. If bitLength is 64, then: + if (bitLength === 64) { + // 1. Let upperBound be 2^53 − 1. + upperBound = Math.pow(2, 53) - 1 + + // 2. If signedness is "unsigned", then let lowerBound be 0. + if (signedness === 'unsigned') { + lowerBound = 0 + } else { + // 3. Otherwise let lowerBound be −2^53 + 1. + lowerBound = Math.pow(-2, 53) + 1 + } + } else if (signedness === 'unsigned') { + // 2. Otherwise, if signedness is "unsigned", then: + + // 1. Let lowerBound be 0. + lowerBound = 0 + + // 2. Let upperBound be 2^bitLength − 1. + upperBound = Math.pow(2, bitLength) - 1 + } else { + // 3. Otherwise: + + // 1. Let lowerBound be -2^bitLength − 1. + lowerBound = Math.pow(-2, bitLength) - 1 + + // 2. Let upperBound be 2^bitLength − 1 − 1. + upperBound = Math.pow(2, bitLength - 1) - 1 + } + + // 4. Let x be ? ToNumber(V). + let x = Number(V) + + // 5. If x is −0, then set x to +0. + if (x === 0) { + x = 0 + } + + // 6. If the conversion is to an IDL type associated + // with the [EnforceRange] extended attribute, then: + if (opts.enforceRange === true) { + // 1. If x is NaN, +∞, or −∞, then throw a TypeError. + if ( + Number.isNaN(x) || + x === Number.POSITIVE_INFINITY || + x === Number.NEGATIVE_INFINITY + ) { + throw webidl.errors.exception({ + header: 'Integer conversion', + message: `Could not convert ${V} to an integer.` + }) + } + + // 2. Set x to IntegerPart(x). + x = webidl.util.IntegerPart(x) + + // 3. If x < lowerBound or x > upperBound, then + // throw a TypeError. + if (x < lowerBound || x > upperBound) { + throw webidl.errors.exception({ + header: 'Integer conversion', + message: `Value must be between ${lowerBound}-${upperBound}, got ${x}.` + }) + } + + // 4. Return x. + return x + } + + // 7. If x is not NaN and the conversion is to an IDL + // type associated with the [Clamp] extended + // attribute, then: + if (!Number.isNaN(x) && opts.clamp === true) { + // 1. Set x to min(max(x, lowerBound), upperBound). + x = Math.min(Math.max(x, lowerBound), upperBound) + + // 2. Round x to the nearest integer, choosing the + // even integer if it lies halfway between two, + // and choosing +0 rather than −0. + if (Math.floor(x) % 2 === 0) { + x = Math.floor(x) + } else { + x = Math.ceil(x) + } + + // 3. Return x. + return x + } + + // 8. If x is NaN, +0, +∞, or −∞, then return +0. + if ( + Number.isNaN(x) || + (x === 0 && Object.is(0, x)) || + x === Number.POSITIVE_INFINITY || + x === Number.NEGATIVE_INFINITY + ) { + return 0 + } + + // 9. Set x to IntegerPart(x). + x = webidl.util.IntegerPart(x) + + // 10. Set x to x modulo 2^bitLength. + x = x % Math.pow(2, bitLength) + + // 11. If signedness is "signed" and x ≥ 2^bitLength − 1, + // then return x − 2^bitLength. + if (signedness === 'signed' && x >= Math.pow(2, bitLength) - 1) { + return x - Math.pow(2, bitLength) + } + + // 12. Otherwise, return x. + return x +} + +// https://webidl.spec.whatwg.org/#abstract-opdef-integerpart +webidl.util.IntegerPart = function (n) { + // 1. Let r be floor(abs(n)). + const r = Math.floor(Math.abs(n)) + + // 2. If n < 0, then return -1 × r. + if (n < 0) { + return -1 * r + } + + // 3. Otherwise, return r. + return r +} + +// https://webidl.spec.whatwg.org/#es-sequence +webidl.sequenceConverter = function (converter) { + return (V) => { + // 1. If Type(V) is not Object, throw a TypeError. + if (webidl.util.Type(V) !== 'Object') { + throw webidl.errors.exception({ + header: 'Sequence', + message: `Value of type ${webidl.util.Type(V)} is not an Object.` + }) + } + + // 2. Let method be ? GetMethod(V, @@iterator). + /** @type {Generator} */ + const method = V?.[Symbol.iterator]?.() + const seq = [] + + // 3. If method is undefined, throw a TypeError. + if ( + method === undefined || + typeof method.next !== 'function' + ) { + throw webidl.errors.exception({ + header: 'Sequence', + message: 'Object is not an iterator.' + }) + } + + // https://webidl.spec.whatwg.org/#create-sequence-from-iterable + while (true) { + const { done, value } = method.next() + + if (done) { + break + } + + seq.push(converter(value)) + } + + return seq + } +} + +// https://webidl.spec.whatwg.org/#es-to-record +webidl.recordConverter = function (keyConverter, valueConverter) { + return (O) => { + // 1. If Type(O) is not Object, throw a TypeError. + if (webidl.util.Type(O) !== 'Object') { + throw webidl.errors.exception({ + header: 'Record', + message: `Value of type ${webidl.util.Type(O)} is not an Object.` + }) + } + + // 2. Let result be a new empty instance of record. + const result = {} + + if (!types.isProxy(O)) { + // Object.keys only returns enumerable properties + const keys = Object.keys(O) + + for (const key of keys) { + // 1. Let typedKey be key converted to an IDL value of type K. + const typedKey = keyConverter(key) + + // 2. Let value be ? Get(O, key). + // 3. Let typedValue be value converted to an IDL value of type V. + const typedValue = valueConverter(O[key]) + + // 4. Set result[typedKey] to typedValue. + result[typedKey] = typedValue + } + + // 5. Return result. + return result + } + + // 3. Let keys be ? O.[[OwnPropertyKeys]](). + const keys = Reflect.ownKeys(O) + + // 4. For each key of keys. + for (const key of keys) { + // 1. Let desc be ? O.[[GetOwnProperty]](key). + const desc = Reflect.getOwnPropertyDescriptor(O, key) + + // 2. If desc is not undefined and desc.[[Enumerable]] is true: + if (desc?.enumerable) { + // 1. Let typedKey be key converted to an IDL value of type K. + const typedKey = keyConverter(key) + + // 2. Let value be ? Get(O, key). + // 3. Let typedValue be value converted to an IDL value of type V. + const typedValue = valueConverter(O[key]) + + // 4. Set result[typedKey] to typedValue. + result[typedKey] = typedValue + } + } + + // 5. Return result. + return result + } +} + +webidl.interfaceConverter = function (i) { + return (V, opts = {}) => { + if (opts.strict !== false && !(V instanceof i)) { + throw webidl.errors.exception({ + header: i.name, + message: `Expected ${V} to be an instance of ${i.name}.` + }) + } + + return V + } +} + +webidl.dictionaryConverter = function (converters) { + return (dictionary) => { + const type = webidl.util.Type(dictionary) + const dict = {} + + if (type === 'Null' || type === 'Undefined') { + return dict + } else if (type !== 'Object') { + throw webidl.errors.exception({ + header: 'Dictionary', + message: `Expected ${dictionary} to be one of: Null, Undefined, Object.` + }) + } + + for (const options of converters) { + const { key, defaultValue, required, converter } = options + + if (required === true) { + if (!hasOwn(dictionary, key)) { + throw webidl.errors.exception({ + header: 'Dictionary', + message: `Missing required key "${key}".` + }) + } + } + + let value = dictionary[key] + const hasDefault = hasOwn(options, 'defaultValue') + + // Only use defaultValue if value is undefined and + // a defaultValue options was provided. + if (hasDefault && value !== null) { + value = value ?? defaultValue + } + + // A key can be optional and have no default value. + // When this happens, do not perform a conversion, + // and do not assign the key a value. + if (required || hasDefault || value !== undefined) { + value = converter(value) + + if ( + options.allowedValues && + !options.allowedValues.includes(value) + ) { + throw webidl.errors.exception({ + header: 'Dictionary', + message: `${value} is not an accepted type. Expected one of ${options.allowedValues.join(', ')}.` + }) + } + + dict[key] = value + } + } + + return dict + } +} + +webidl.nullableConverter = function (converter) { + return (V) => { + if (V === null) { + return V + } + + return converter(V) + } +} + +// https://webidl.spec.whatwg.org/#es-DOMString +webidl.converters.DOMString = function (V, opts = {}) { + // 1. If V is null and the conversion is to an IDL type + // associated with the [LegacyNullToEmptyString] + // extended attribute, then return the DOMString value + // that represents the empty string. + if (V === null && opts.legacyNullToEmptyString) { + return '' + } + + // 2. Let x be ? ToString(V). + if (typeof V === 'symbol') { + throw new TypeError('Could not convert argument of type symbol to string.') + } + + // 3. Return the IDL DOMString value that represents the + // same sequence of code units as the one the + // ECMAScript String value x represents. + return String(V) +} + +// https://webidl.spec.whatwg.org/#es-ByteString +webidl.converters.ByteString = function (V) { + // 1. Let x be ? ToString(V). + // Note: DOMString converter perform ? ToString(V) + const x = webidl.converters.DOMString(V) + + // 2. If the value of any element of x is greater than + // 255, then throw a TypeError. + for (let index = 0; index < x.length; index++) { + const charCode = x.charCodeAt(index) + + if (charCode > 255) { + throw new TypeError( + 'Cannot convert argument to a ByteString because the character at ' + + `index ${index} has a value of ${charCode} which is greater than 255.` + ) + } + } + + // 3. Return an IDL ByteString value whose length is the + // length of x, and where the value of each element is + // the value of the corresponding element of x. + return x +} + +// https://webidl.spec.whatwg.org/#es-USVString +webidl.converters.USVString = toUSVString + +// https://webidl.spec.whatwg.org/#es-boolean +webidl.converters.boolean = function (V) { + // 1. Let x be the result of computing ToBoolean(V). + const x = Boolean(V) + + // 2. Return the IDL boolean value that is the one that represents + // the same truth value as the ECMAScript Boolean value x. + return x +} + +// https://webidl.spec.whatwg.org/#es-any +webidl.converters.any = function (V) { + return V +} + +// https://webidl.spec.whatwg.org/#es-long-long +webidl.converters['long long'] = function (V) { + // 1. Let x be ? ConvertToInt(V, 64, "signed"). + const x = webidl.util.ConvertToInt(V, 64, 'signed') + + // 2. Return the IDL long long value that represents + // the same numeric value as x. + return x +} + +// https://webidl.spec.whatwg.org/#es-unsigned-long-long +webidl.converters['unsigned long long'] = function (V) { + // 1. Let x be ? ConvertToInt(V, 64, "unsigned"). + const x = webidl.util.ConvertToInt(V, 64, 'unsigned') + + // 2. Return the IDL unsigned long long value that + // represents the same numeric value as x. + return x +} + +// https://webidl.spec.whatwg.org/#es-unsigned-long +webidl.converters['unsigned long'] = function (V) { + // 1. Let x be ? ConvertToInt(V, 32, "unsigned"). + const x = webidl.util.ConvertToInt(V, 32, 'unsigned') + + // 2. Return the IDL unsigned long value that + // represents the same numeric value as x. + return x +} + +// https://webidl.spec.whatwg.org/#es-unsigned-short +webidl.converters['unsigned short'] = function (V, opts) { + // 1. Let x be ? ConvertToInt(V, 16, "unsigned"). + const x = webidl.util.ConvertToInt(V, 16, 'unsigned', opts) + + // 2. Return the IDL unsigned short value that represents + // the same numeric value as x. + return x +} + +// https://webidl.spec.whatwg.org/#idl-ArrayBuffer +webidl.converters.ArrayBuffer = function (V, opts = {}) { + // 1. If Type(V) is not Object, or V does not have an + // [[ArrayBufferData]] internal slot, then throw a + // TypeError. + // see: https://tc39.es/ecma262/#sec-properties-of-the-arraybuffer-instances + // see: https://tc39.es/ecma262/#sec-properties-of-the-sharedarraybuffer-instances + if ( + webidl.util.Type(V) !== 'Object' || + !types.isAnyArrayBuffer(V) + ) { + throw webidl.errors.conversionFailed({ + prefix: `${V}`, + argument: `${V}`, + types: ['ArrayBuffer'] + }) + } + + // 2. If the conversion is not to an IDL type associated + // with the [AllowShared] extended attribute, and + // IsSharedArrayBuffer(V) is true, then throw a + // TypeError. + if (opts.allowShared === false && types.isSharedArrayBuffer(V)) { + throw webidl.errors.exception({ + header: 'ArrayBuffer', + message: 'SharedArrayBuffer is not allowed.' + }) + } + + // 3. If the conversion is not to an IDL type associated + // with the [AllowResizable] extended attribute, and + // IsResizableArrayBuffer(V) is true, then throw a + // TypeError. + // Note: resizable ArrayBuffers are currently a proposal. + + // 4. Return the IDL ArrayBuffer value that is a + // reference to the same object as V. + return V +} + +webidl.converters.TypedArray = function (V, T, opts = {}) { + // 1. Let T be the IDL type V is being converted to. + + // 2. If Type(V) is not Object, or V does not have a + // [[TypedArrayName]] internal slot with a value + // equal to T’s name, then throw a TypeError. + if ( + webidl.util.Type(V) !== 'Object' || + !types.isTypedArray(V) || + V.constructor.name !== T.name + ) { + throw webidl.errors.conversionFailed({ + prefix: `${T.name}`, + argument: `${V}`, + types: [T.name] + }) + } + + // 3. If the conversion is not to an IDL type associated + // with the [AllowShared] extended attribute, and + // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is + // true, then throw a TypeError. + if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { + throw webidl.errors.exception({ + header: 'ArrayBuffer', + message: 'SharedArrayBuffer is not allowed.' + }) + } + + // 4. If the conversion is not to an IDL type associated + // with the [AllowResizable] extended attribute, and + // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is + // true, then throw a TypeError. + // Note: resizable array buffers are currently a proposal + + // 5. Return the IDL value of type T that is a reference + // to the same object as V. + return V +} + +webidl.converters.DataView = function (V, opts = {}) { + // 1. If Type(V) is not Object, or V does not have a + // [[DataView]] internal slot, then throw a TypeError. + if (webidl.util.Type(V) !== 'Object' || !types.isDataView(V)) { + throw webidl.errors.exception({ + header: 'DataView', + message: 'Object is not a DataView.' + }) + } + + // 2. If the conversion is not to an IDL type associated + // with the [AllowShared] extended attribute, and + // IsSharedArrayBuffer(V.[[ViewedArrayBuffer]]) is true, + // then throw a TypeError. + if (opts.allowShared === false && types.isSharedArrayBuffer(V.buffer)) { + throw webidl.errors.exception({ + header: 'ArrayBuffer', + message: 'SharedArrayBuffer is not allowed.' + }) + } + + // 3. If the conversion is not to an IDL type associated + // with the [AllowResizable] extended attribute, and + // IsResizableArrayBuffer(V.[[ViewedArrayBuffer]]) is + // true, then throw a TypeError. + // Note: resizable ArrayBuffers are currently a proposal + + // 4. Return the IDL DataView value that is a reference + // to the same object as V. + return V +} + +// https://webidl.spec.whatwg.org/#BufferSource +webidl.converters.BufferSource = function (V, opts = {}) { + if (types.isAnyArrayBuffer(V)) { + return webidl.converters.ArrayBuffer(V, opts) + } + + if (types.isTypedArray(V)) { + return webidl.converters.TypedArray(V, V.constructor) + } + + if (types.isDataView(V)) { + return webidl.converters.DataView(V, opts) + } + + throw new TypeError(`Could not convert ${V} to a BufferSource.`) +} + +webidl.converters['sequence'] = webidl.sequenceConverter( + webidl.converters.ByteString +) + +webidl.converters['sequence>'] = webidl.sequenceConverter( + webidl.converters['sequence'] +) + +webidl.converters['record'] = webidl.recordConverter( + webidl.converters.ByteString, + webidl.converters.ByteString +) + +module.exports = { + webidl +} + + +/***/ }), + +/***/ 4854: +/***/ ((module) => { + +"use strict"; + + +/** + * @see https://encoding.spec.whatwg.org/#concept-encoding-get + * @param {string|undefined} label + */ +function getEncoding (label) { + if (!label) { + return 'failure' + } + + // 1. Remove any leading and trailing ASCII whitespace from label. + // 2. If label is an ASCII case-insensitive match for any of the + // labels listed in the table below, then return the + // corresponding encoding; otherwise return failure. + switch (label.trim().toLowerCase()) { + case 'unicode-1-1-utf-8': + case 'unicode11utf8': + case 'unicode20utf8': + case 'utf-8': + case 'utf8': + case 'x-unicode20utf8': + return 'UTF-8' + case '866': + case 'cp866': + case 'csibm866': + case 'ibm866': + return 'IBM866' + case 'csisolatin2': + case 'iso-8859-2': + case 'iso-ir-101': + case 'iso8859-2': + case 'iso88592': + case 'iso_8859-2': + case 'iso_8859-2:1987': + case 'l2': + case 'latin2': + return 'ISO-8859-2' + case 'csisolatin3': + case 'iso-8859-3': + case 'iso-ir-109': + case 'iso8859-3': + case 'iso88593': + case 'iso_8859-3': + case 'iso_8859-3:1988': + case 'l3': + case 'latin3': + return 'ISO-8859-3' + case 'csisolatin4': + case 'iso-8859-4': + case 'iso-ir-110': + case 'iso8859-4': + case 'iso88594': + case 'iso_8859-4': + case 'iso_8859-4:1988': + case 'l4': + case 'latin4': + return 'ISO-8859-4' + case 'csisolatincyrillic': + case 'cyrillic': + case 'iso-8859-5': + case 'iso-ir-144': + case 'iso8859-5': + case 'iso88595': + case 'iso_8859-5': + case 'iso_8859-5:1988': + return 'ISO-8859-5' + case 'arabic': + case 'asmo-708': + case 'csiso88596e': + case 'csiso88596i': + case 'csisolatinarabic': + case 'ecma-114': + case 'iso-8859-6': + case 'iso-8859-6-e': + case 'iso-8859-6-i': + case 'iso-ir-127': + case 'iso8859-6': + case 'iso88596': + case 'iso_8859-6': + case 'iso_8859-6:1987': + return 'ISO-8859-6' + case 'csisolatingreek': + case 'ecma-118': + case 'elot_928': + case 'greek': + case 'greek8': + case 'iso-8859-7': + case 'iso-ir-126': + case 'iso8859-7': + case 'iso88597': + case 'iso_8859-7': + case 'iso_8859-7:1987': + case 'sun_eu_greek': + return 'ISO-8859-7' + case 'csiso88598e': + case 'csisolatinhebrew': + case 'hebrew': + case 'iso-8859-8': + case 'iso-8859-8-e': + case 'iso-ir-138': + case 'iso8859-8': + case 'iso88598': + case 'iso_8859-8': + case 'iso_8859-8:1988': + case 'visual': + return 'ISO-8859-8' + case 'csiso88598i': + case 'iso-8859-8-i': + case 'logical': + return 'ISO-8859-8-I' + case 'csisolatin6': + case 'iso-8859-10': + case 'iso-ir-157': + case 'iso8859-10': + case 'iso885910': + case 'l6': + case 'latin6': + return 'ISO-8859-10' + case 'iso-8859-13': + case 'iso8859-13': + case 'iso885913': + return 'ISO-8859-13' + case 'iso-8859-14': + case 'iso8859-14': + case 'iso885914': + return 'ISO-8859-14' + case 'csisolatin9': + case 'iso-8859-15': + case 'iso8859-15': + case 'iso885915': + case 'iso_8859-15': + case 'l9': + return 'ISO-8859-15' + case 'iso-8859-16': + return 'ISO-8859-16' + case 'cskoi8r': + case 'koi': + case 'koi8': + case 'koi8-r': + case 'koi8_r': + return 'KOI8-R' + case 'koi8-ru': + case 'koi8-u': + return 'KOI8-U' + case 'csmacintosh': + case 'mac': + case 'macintosh': + case 'x-mac-roman': + return 'macintosh' + case 'iso-8859-11': + case 'iso8859-11': + case 'iso885911': + case 'tis-620': + case 'windows-874': + return 'windows-874' + case 'cp1250': + case 'windows-1250': + case 'x-cp1250': + return 'windows-1250' + case 'cp1251': + case 'windows-1251': + case 'x-cp1251': + return 'windows-1251' + case 'ansi_x3.4-1968': + case 'ascii': + case 'cp1252': + case 'cp819': + case 'csisolatin1': + case 'ibm819': + case 'iso-8859-1': + case 'iso-ir-100': + case 'iso8859-1': + case 'iso88591': + case 'iso_8859-1': + case 'iso_8859-1:1987': + case 'l1': + case 'latin1': + case 'us-ascii': + case 'windows-1252': + case 'x-cp1252': + return 'windows-1252' + case 'cp1253': + case 'windows-1253': + case 'x-cp1253': + return 'windows-1253' + case 'cp1254': + case 'csisolatin5': + case 'iso-8859-9': + case 'iso-ir-148': + case 'iso8859-9': + case 'iso88599': + case 'iso_8859-9': + case 'iso_8859-9:1989': + case 'l5': + case 'latin5': + case 'windows-1254': + case 'x-cp1254': + return 'windows-1254' + case 'cp1255': + case 'windows-1255': + case 'x-cp1255': + return 'windows-1255' + case 'cp1256': + case 'windows-1256': + case 'x-cp1256': + return 'windows-1256' + case 'cp1257': + case 'windows-1257': + case 'x-cp1257': + return 'windows-1257' + case 'cp1258': + case 'windows-1258': + case 'x-cp1258': + return 'windows-1258' + case 'x-mac-cyrillic': + case 'x-mac-ukrainian': + return 'x-mac-cyrillic' + case 'chinese': + case 'csgb2312': + case 'csiso58gb231280': + case 'gb2312': + case 'gb_2312': + case 'gb_2312-80': + case 'gbk': + case 'iso-ir-58': + case 'x-gbk': + return 'GBK' + case 'gb18030': + return 'gb18030' + case 'big5': + case 'big5-hkscs': + case 'cn-big5': + case 'csbig5': + case 'x-x-big5': + return 'Big5' + case 'cseucpkdfmtjapanese': + case 'euc-jp': + case 'x-euc-jp': + return 'EUC-JP' + case 'csiso2022jp': + case 'iso-2022-jp': + return 'ISO-2022-JP' + case 'csshiftjis': + case 'ms932': + case 'ms_kanji': + case 'shift-jis': + case 'shift_jis': + case 'sjis': + case 'windows-31j': + case 'x-sjis': + return 'Shift_JIS' + case 'cseuckr': + case 'csksc56011987': + case 'euc-kr': + case 'iso-ir-149': + case 'korean': + case 'ks_c_5601-1987': + case 'ks_c_5601-1989': + case 'ksc5601': + case 'ksc_5601': + case 'windows-949': + return 'EUC-KR' + case 'csiso2022kr': + case 'hz-gb-2312': + case 'iso-2022-cn': + case 'iso-2022-cn-ext': + case 'iso-2022-kr': + case 'replacement': + return 'replacement' + case 'unicodefffe': + case 'utf-16be': + return 'UTF-16BE' + case 'csunicode': + case 'iso-10646-ucs-2': + case 'ucs-2': + case 'unicode': + case 'unicodefeff': + case 'utf-16': + case 'utf-16le': + return 'UTF-16LE' + case 'x-user-defined': + return 'x-user-defined' + default: return 'failure' + } +} + +module.exports = { + getEncoding +} + + +/***/ }), + +/***/ 1446: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { + staticPropertyDescriptors, + readOperation, + fireAProgressEvent +} = __nccwpck_require__(7530) +const { + kState, + kError, + kResult, + kEvents, + kAborted +} = __nccwpck_require__(9054) +const { webidl } = __nccwpck_require__(1744) +const { kEnumerableProperty } = __nccwpck_require__(3983) + +class FileReader extends EventTarget { + constructor () { + super() + + this[kState] = 'empty' + this[kResult] = null + this[kError] = null + this[kEvents] = { + loadend: null, + error: null, + abort: null, + load: null, + progress: null, + loadstart: null + } + } + + /** + * @see https://w3c.github.io/FileAPI/#dfn-readAsArrayBuffer + * @param {import('buffer').Blob} blob + */ + readAsArrayBuffer (blob) { + webidl.brandCheck(this, FileReader) + + webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsArrayBuffer' }) + + blob = webidl.converters.Blob(blob, { strict: false }) + + // The readAsArrayBuffer(blob) method, when invoked, + // must initiate a read operation for blob with ArrayBuffer. + readOperation(this, blob, 'ArrayBuffer') + } + + /** + * @see https://w3c.github.io/FileAPI/#readAsBinaryString + * @param {import('buffer').Blob} blob + */ + readAsBinaryString (blob) { + webidl.brandCheck(this, FileReader) + + webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsBinaryString' }) + + blob = webidl.converters.Blob(blob, { strict: false }) + + // The readAsBinaryString(blob) method, when invoked, + // must initiate a read operation for blob with BinaryString. + readOperation(this, blob, 'BinaryString') + } + + /** + * @see https://w3c.github.io/FileAPI/#readAsDataText + * @param {import('buffer').Blob} blob + * @param {string?} encoding + */ + readAsText (blob, encoding = undefined) { + webidl.brandCheck(this, FileReader) + + webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsText' }) + + blob = webidl.converters.Blob(blob, { strict: false }) + + if (encoding !== undefined) { + encoding = webidl.converters.DOMString(encoding) + } + + // The readAsText(blob, encoding) method, when invoked, + // must initiate a read operation for blob with Text and encoding. + readOperation(this, blob, 'Text', encoding) + } + + /** + * @see https://w3c.github.io/FileAPI/#dfn-readAsDataURL + * @param {import('buffer').Blob} blob + */ + readAsDataURL (blob) { + webidl.brandCheck(this, FileReader) + + webidl.argumentLengthCheck(arguments, 1, { header: 'FileReader.readAsDataURL' }) + + blob = webidl.converters.Blob(blob, { strict: false }) + + // The readAsDataURL(blob) method, when invoked, must + // initiate a read operation for blob with DataURL. + readOperation(this, blob, 'DataURL') + } + + /** + * @see https://w3c.github.io/FileAPI/#dfn-abort + */ + abort () { + // 1. If this's state is "empty" or if this's state is + // "done" set this's result to null and terminate + // this algorithm. + if (this[kState] === 'empty' || this[kState] === 'done') { + this[kResult] = null + return + } + + // 2. If this's state is "loading" set this's state to + // "done" and set this's result to null. + if (this[kState] === 'loading') { + this[kState] = 'done' + this[kResult] = null + } + + // 3. If there are any tasks from this on the file reading + // task source in an affiliated task queue, then remove + // those tasks from that task queue. + this[kAborted] = true + + // 4. Terminate the algorithm for the read method being processed. + // TODO + + // 5. Fire a progress event called abort at this. + fireAProgressEvent('abort', this) + + // 6. If this's state is not "loading", fire a progress + // event called loadend at this. + if (this[kState] !== 'loading') { + fireAProgressEvent('loadend', this) + } + } + + /** + * @see https://w3c.github.io/FileAPI/#dom-filereader-readystate + */ + get readyState () { + webidl.brandCheck(this, FileReader) + + switch (this[kState]) { + case 'empty': return this.EMPTY + case 'loading': return this.LOADING + case 'done': return this.DONE + } + } + + /** + * @see https://w3c.github.io/FileAPI/#dom-filereader-result + */ + get result () { + webidl.brandCheck(this, FileReader) + + // The result attribute’s getter, when invoked, must return + // this's result. + return this[kResult] + } + + /** + * @see https://w3c.github.io/FileAPI/#dom-filereader-error + */ + get error () { + webidl.brandCheck(this, FileReader) + + // The error attribute’s getter, when invoked, must return + // this's error. + return this[kError] + } + + get onloadend () { + webidl.brandCheck(this, FileReader) + + return this[kEvents].loadend + } + + set onloadend (fn) { + webidl.brandCheck(this, FileReader) + + if (this[kEvents].loadend) { + this.removeEventListener('loadend', this[kEvents].loadend) + } + + if (typeof fn === 'function') { + this[kEvents].loadend = fn + this.addEventListener('loadend', fn) + } else { + this[kEvents].loadend = null + } + } + + get onerror () { + webidl.brandCheck(this, FileReader) + + return this[kEvents].error + } + + set onerror (fn) { + webidl.brandCheck(this, FileReader) + + if (this[kEvents].error) { + this.removeEventListener('error', this[kEvents].error) + } + + if (typeof fn === 'function') { + this[kEvents].error = fn + this.addEventListener('error', fn) + } else { + this[kEvents].error = null + } + } + + get onloadstart () { + webidl.brandCheck(this, FileReader) + + return this[kEvents].loadstart + } + + set onloadstart (fn) { + webidl.brandCheck(this, FileReader) + + if (this[kEvents].loadstart) { + this.removeEventListener('loadstart', this[kEvents].loadstart) + } + + if (typeof fn === 'function') { + this[kEvents].loadstart = fn + this.addEventListener('loadstart', fn) + } else { + this[kEvents].loadstart = null + } + } + + get onprogress () { + webidl.brandCheck(this, FileReader) + + return this[kEvents].progress + } + + set onprogress (fn) { + webidl.brandCheck(this, FileReader) + + if (this[kEvents].progress) { + this.removeEventListener('progress', this[kEvents].progress) + } + + if (typeof fn === 'function') { + this[kEvents].progress = fn + this.addEventListener('progress', fn) + } else { + this[kEvents].progress = null + } + } + + get onload () { + webidl.brandCheck(this, FileReader) + + return this[kEvents].load + } + + set onload (fn) { + webidl.brandCheck(this, FileReader) + + if (this[kEvents].load) { + this.removeEventListener('load', this[kEvents].load) + } + + if (typeof fn === 'function') { + this[kEvents].load = fn + this.addEventListener('load', fn) + } else { + this[kEvents].load = null + } + } + + get onabort () { + webidl.brandCheck(this, FileReader) + + return this[kEvents].abort + } + + set onabort (fn) { + webidl.brandCheck(this, FileReader) + + if (this[kEvents].abort) { + this.removeEventListener('abort', this[kEvents].abort) + } + + if (typeof fn === 'function') { + this[kEvents].abort = fn + this.addEventListener('abort', fn) + } else { + this[kEvents].abort = null + } + } +} + +// https://w3c.github.io/FileAPI/#dom-filereader-empty +FileReader.EMPTY = FileReader.prototype.EMPTY = 0 +// https://w3c.github.io/FileAPI/#dom-filereader-loading +FileReader.LOADING = FileReader.prototype.LOADING = 1 +// https://w3c.github.io/FileAPI/#dom-filereader-done +FileReader.DONE = FileReader.prototype.DONE = 2 + +Object.defineProperties(FileReader.prototype, { + EMPTY: staticPropertyDescriptors, + LOADING: staticPropertyDescriptors, + DONE: staticPropertyDescriptors, + readAsArrayBuffer: kEnumerableProperty, + readAsBinaryString: kEnumerableProperty, + readAsText: kEnumerableProperty, + readAsDataURL: kEnumerableProperty, + abort: kEnumerableProperty, + readyState: kEnumerableProperty, + result: kEnumerableProperty, + error: kEnumerableProperty, + onloadstart: kEnumerableProperty, + onprogress: kEnumerableProperty, + onload: kEnumerableProperty, + onabort: kEnumerableProperty, + onerror: kEnumerableProperty, + onloadend: kEnumerableProperty, + [Symbol.toStringTag]: { + value: 'FileReader', + writable: false, + enumerable: false, + configurable: true + } +}) + +Object.defineProperties(FileReader, { + EMPTY: staticPropertyDescriptors, + LOADING: staticPropertyDescriptors, + DONE: staticPropertyDescriptors +}) + +module.exports = { + FileReader +} + + +/***/ }), + +/***/ 5504: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { webidl } = __nccwpck_require__(1744) + +const kState = Symbol('ProgressEvent state') + +/** + * @see https://xhr.spec.whatwg.org/#progressevent + */ +class ProgressEvent extends Event { + constructor (type, eventInitDict = {}) { + type = webidl.converters.DOMString(type) + eventInitDict = webidl.converters.ProgressEventInit(eventInitDict ?? {}) + + super(type, eventInitDict) + + this[kState] = { + lengthComputable: eventInitDict.lengthComputable, + loaded: eventInitDict.loaded, + total: eventInitDict.total + } + } + + get lengthComputable () { + webidl.brandCheck(this, ProgressEvent) + + return this[kState].lengthComputable + } + + get loaded () { + webidl.brandCheck(this, ProgressEvent) + + return this[kState].loaded + } + + get total () { + webidl.brandCheck(this, ProgressEvent) + + return this[kState].total + } +} + +webidl.converters.ProgressEventInit = webidl.dictionaryConverter([ + { + key: 'lengthComputable', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'loaded', + converter: webidl.converters['unsigned long long'], + defaultValue: 0 + }, + { + key: 'total', + converter: webidl.converters['unsigned long long'], + defaultValue: 0 + }, + { + key: 'bubbles', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'cancelable', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'composed', + converter: webidl.converters.boolean, + defaultValue: false + } +]) + +module.exports = { + ProgressEvent +} + + +/***/ }), + +/***/ 9054: +/***/ ((module) => { + +"use strict"; + + +module.exports = { + kState: Symbol('FileReader state'), + kResult: Symbol('FileReader result'), + kError: Symbol('FileReader error'), + kLastProgressEventFired: Symbol('FileReader last progress event fired timestamp'), + kEvents: Symbol('FileReader events'), + kAborted: Symbol('FileReader aborted') +} + + +/***/ }), + +/***/ 7530: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { + kState, + kError, + kResult, + kAborted, + kLastProgressEventFired +} = __nccwpck_require__(9054) +const { ProgressEvent } = __nccwpck_require__(5504) +const { getEncoding } = __nccwpck_require__(4854) +const { DOMException } = __nccwpck_require__(1037) +const { serializeAMimeType, parseMIMEType } = __nccwpck_require__(685) +const { types } = __nccwpck_require__(3837) +const { StringDecoder } = __nccwpck_require__(1576) +const { btoa } = __nccwpck_require__(4300) + +/** @type {PropertyDescriptor} */ +const staticPropertyDescriptors = { + enumerable: true, + writable: false, + configurable: false +} + +/** + * @see https://w3c.github.io/FileAPI/#readOperation + * @param {import('./filereader').FileReader} fr + * @param {import('buffer').Blob} blob + * @param {string} type + * @param {string?} encodingName + */ +function readOperation (fr, blob, type, encodingName) { + // 1. If fr’s state is "loading", throw an InvalidStateError + // DOMException. + if (fr[kState] === 'loading') { + throw new DOMException('Invalid state', 'InvalidStateError') + } + + // 2. Set fr’s state to "loading". + fr[kState] = 'loading' + + // 3. Set fr’s result to null. + fr[kResult] = null + + // 4. Set fr’s error to null. + fr[kError] = null + + // 5. Let stream be the result of calling get stream on blob. + /** @type {import('stream/web').ReadableStream} */ + const stream = blob.stream() + + // 6. Let reader be the result of getting a reader from stream. + const reader = stream.getReader() + + // 7. Let bytes be an empty byte sequence. + /** @type {Uint8Array[]} */ + const bytes = [] + + // 8. Let chunkPromise be the result of reading a chunk from + // stream with reader. + let chunkPromise = reader.read() + + // 9. Let isFirstChunk be true. + let isFirstChunk = true + + // 10. In parallel, while true: + // Note: "In parallel" just means non-blocking + // Note 2: readOperation itself cannot be async as double + // reading the body would then reject the promise, instead + // of throwing an error. + ;(async () => { + while (!fr[kAborted]) { + // 1. Wait for chunkPromise to be fulfilled or rejected. + try { + const { done, value } = await chunkPromise + + // 2. If chunkPromise is fulfilled, and isFirstChunk is + // true, queue a task to fire a progress event called + // loadstart at fr. + if (isFirstChunk && !fr[kAborted]) { + queueMicrotask(() => { + fireAProgressEvent('loadstart', fr) + }) + } + + // 3. Set isFirstChunk to false. + isFirstChunk = false + + // 4. If chunkPromise is fulfilled with an object whose + // done property is false and whose value property is + // a Uint8Array object, run these steps: + if (!done && types.isUint8Array(value)) { + // 1. Let bs be the byte sequence represented by the + // Uint8Array object. + + // 2. Append bs to bytes. + bytes.push(value) + + // 3. If roughly 50ms have passed since these steps + // were last invoked, queue a task to fire a + // progress event called progress at fr. + if ( + ( + fr[kLastProgressEventFired] === undefined || + Date.now() - fr[kLastProgressEventFired] >= 50 + ) && + !fr[kAborted] + ) { + fr[kLastProgressEventFired] = Date.now() + queueMicrotask(() => { + fireAProgressEvent('progress', fr) + }) + } + + // 4. Set chunkPromise to the result of reading a + // chunk from stream with reader. + chunkPromise = reader.read() + } else if (done) { + // 5. Otherwise, if chunkPromise is fulfilled with an + // object whose done property is true, queue a task + // to run the following steps and abort this algorithm: + queueMicrotask(() => { + // 1. Set fr’s state to "done". + fr[kState] = 'done' + + // 2. Let result be the result of package data given + // bytes, type, blob’s type, and encodingName. + try { + const result = packageData(bytes, type, blob.type, encodingName) + + // 4. Else: + + if (fr[kAborted]) { + return + } + + // 1. Set fr’s result to result. + fr[kResult] = result + + // 2. Fire a progress event called load at the fr. + fireAProgressEvent('load', fr) + } catch (error) { + // 3. If package data threw an exception error: + + // 1. Set fr’s error to error. + fr[kError] = error + + // 2. Fire a progress event called error at fr. + fireAProgressEvent('error', fr) + } + + // 5. If fr’s state is not "loading", fire a progress + // event called loadend at the fr. + if (fr[kState] !== 'loading') { + fireAProgressEvent('loadend', fr) + } + }) + + break + } + } catch (error) { + if (fr[kAborted]) { + return + } + + // 6. Otherwise, if chunkPromise is rejected with an + // error error, queue a task to run the following + // steps and abort this algorithm: + queueMicrotask(() => { + // 1. Set fr’s state to "done". + fr[kState] = 'done' + + // 2. Set fr’s error to error. + fr[kError] = error + + // 3. Fire a progress event called error at fr. + fireAProgressEvent('error', fr) + + // 4. If fr’s state is not "loading", fire a progress + // event called loadend at fr. + if (fr[kState] !== 'loading') { + fireAProgressEvent('loadend', fr) + } + }) + + break + } + } + })() +} + +/** + * @see https://w3c.github.io/FileAPI/#fire-a-progress-event + * @see https://dom.spec.whatwg.org/#concept-event-fire + * @param {string} e The name of the event + * @param {import('./filereader').FileReader} reader + */ +function fireAProgressEvent (e, reader) { + // The progress event e does not bubble. e.bubbles must be false + // The progress event e is NOT cancelable. e.cancelable must be false + const event = new ProgressEvent(e, { + bubbles: false, + cancelable: false + }) + + reader.dispatchEvent(event) +} + +/** + * @see https://w3c.github.io/FileAPI/#blob-package-data + * @param {Uint8Array[]} bytes + * @param {string} type + * @param {string?} mimeType + * @param {string?} encodingName + */ +function packageData (bytes, type, mimeType, encodingName) { + // 1. A Blob has an associated package data algorithm, given + // bytes, a type, a optional mimeType, and a optional + // encodingName, which switches on type and runs the + // associated steps: + + switch (type) { + case 'DataURL': { + // 1. Return bytes as a DataURL [RFC2397] subject to + // the considerations below: + // * Use mimeType as part of the Data URL if it is + // available in keeping with the Data URL + // specification [RFC2397]. + // * If mimeType is not available return a Data URL + // without a media-type. [RFC2397]. + + // https://datatracker.ietf.org/doc/html/rfc2397#section-3 + // dataurl := "data:" [ mediatype ] [ ";base64" ] "," data + // mediatype := [ type "/" subtype ] *( ";" parameter ) + // data := *urlchar + // parameter := attribute "=" value + let dataURL = 'data:' + + const parsed = parseMIMEType(mimeType || 'application/octet-stream') + + if (parsed !== 'failure') { + dataURL += serializeAMimeType(parsed) + } + + dataURL += ';base64,' + + const decoder = new StringDecoder('latin1') + + for (const chunk of bytes) { + dataURL += btoa(decoder.write(chunk)) + } + + dataURL += btoa(decoder.end()) + + return dataURL + } + case 'Text': { + // 1. Let encoding be failure + let encoding = 'failure' + + // 2. If the encodingName is present, set encoding to the + // result of getting an encoding from encodingName. + if (encodingName) { + encoding = getEncoding(encodingName) + } + + // 3. If encoding is failure, and mimeType is present: + if (encoding === 'failure' && mimeType) { + // 1. Let type be the result of parse a MIME type + // given mimeType. + const type = parseMIMEType(mimeType) + + // 2. If type is not failure, set encoding to the result + // of getting an encoding from type’s parameters["charset"]. + if (type !== 'failure') { + encoding = getEncoding(type.parameters.get('charset')) + } + } + + // 4. If encoding is failure, then set encoding to UTF-8. + if (encoding === 'failure') { + encoding = 'UTF-8' + } + + // 5. Decode bytes using fallback encoding encoding, and + // return the result. + return decode(bytes, encoding) + } + case 'ArrayBuffer': { + // Return a new ArrayBuffer whose contents are bytes. + const sequence = combineByteSequences(bytes) + + return sequence.buffer + } + case 'BinaryString': { + // Return bytes as a binary string, in which every byte + // is represented by a code unit of equal value [0..255]. + let binaryString = '' + + const decoder = new StringDecoder('latin1') + + for (const chunk of bytes) { + binaryString += decoder.write(chunk) + } + + binaryString += decoder.end() + + return binaryString + } + } +} + +/** + * @see https://encoding.spec.whatwg.org/#decode + * @param {Uint8Array[]} ioQueue + * @param {string} encoding + */ +function decode (ioQueue, encoding) { + const bytes = combineByteSequences(ioQueue) + + // 1. Let BOMEncoding be the result of BOM sniffing ioQueue. + const BOMEncoding = BOMSniffing(bytes) + + let slice = 0 + + // 2. If BOMEncoding is non-null: + if (BOMEncoding !== null) { + // 1. Set encoding to BOMEncoding. + encoding = BOMEncoding + + // 2. Read three bytes from ioQueue, if BOMEncoding is + // UTF-8; otherwise read two bytes. + // (Do nothing with those bytes.) + slice = BOMEncoding === 'UTF-8' ? 3 : 2 + } + + // 3. Process a queue with an instance of encoding’s + // decoder, ioQueue, output, and "replacement". + + // 4. Return output. + + const sliced = bytes.slice(slice) + return new TextDecoder(encoding).decode(sliced) +} + +/** + * @see https://encoding.spec.whatwg.org/#bom-sniff + * @param {Uint8Array} ioQueue + */ +function BOMSniffing (ioQueue) { + // 1. Let BOM be the result of peeking 3 bytes from ioQueue, + // converted to a byte sequence. + const [a, b, c] = ioQueue + + // 2. For each of the rows in the table below, starting with + // the first one and going down, if BOM starts with the + // bytes given in the first column, then return the + // encoding given in the cell in the second column of that + // row. Otherwise, return null. + if (a === 0xEF && b === 0xBB && c === 0xBF) { + return 'UTF-8' + } else if (a === 0xFE && b === 0xFF) { + return 'UTF-16BE' + } else if (a === 0xFF && b === 0xFE) { + return 'UTF-16LE' + } + + return null +} + +/** + * @param {Uint8Array[]} sequences + */ +function combineByteSequences (sequences) { + const size = sequences.reduce((a, b) => { + return a + b.byteLength + }, 0) + + let offset = 0 + + return sequences.reduce((a, b) => { + a.set(b, offset) + offset += b.byteLength + return a + }, new Uint8Array(size)) +} + +module.exports = { + staticPropertyDescriptors, + readOperation, + fireAProgressEvent +} + + +/***/ }), + +/***/ 1892: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +// We include a version number for the Dispatcher API. In case of breaking changes, +// this version number must be increased to avoid conflicts. +const globalDispatcher = Symbol.for('undici.globalDispatcher.1') +const { InvalidArgumentError } = __nccwpck_require__(8045) +const Agent = __nccwpck_require__(7890) + +if (getGlobalDispatcher() === undefined) { + setGlobalDispatcher(new Agent()) +} + +function setGlobalDispatcher (agent) { + if (!agent || typeof agent.dispatch !== 'function') { + throw new InvalidArgumentError('Argument agent must implement Agent') + } + Object.defineProperty(globalThis, globalDispatcher, { + value: agent, + writable: true, + enumerable: false, + configurable: false + }) +} + +function getGlobalDispatcher () { + return globalThis[globalDispatcher] +} + +module.exports = { + setGlobalDispatcher, + getGlobalDispatcher +} + + +/***/ }), + +/***/ 6930: +/***/ ((module) => { + +"use strict"; + + +module.exports = class DecoratorHandler { + constructor (handler) { + this.handler = handler + } + + onConnect (...args) { + return this.handler.onConnect(...args) + } + + onError (...args) { + return this.handler.onError(...args) + } + + onUpgrade (...args) { + return this.handler.onUpgrade(...args) + } + + onHeaders (...args) { + return this.handler.onHeaders(...args) + } + + onData (...args) { + return this.handler.onData(...args) + } + + onComplete (...args) { + return this.handler.onComplete(...args) + } + + onBodySent (...args) { + return this.handler.onBodySent(...args) + } +} + + +/***/ }), + +/***/ 2860: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const util = __nccwpck_require__(3983) +const { kBodyUsed } = __nccwpck_require__(2785) +const assert = __nccwpck_require__(9491) +const { InvalidArgumentError } = __nccwpck_require__(8045) +const EE = __nccwpck_require__(2361) + +const redirectableStatusCodes = [300, 301, 302, 303, 307, 308] + +const kBody = Symbol('body') + +class BodyAsyncIterable { + constructor (body) { + this[kBody] = body + this[kBodyUsed] = false + } + + async * [Symbol.asyncIterator] () { + assert(!this[kBodyUsed], 'disturbed') + this[kBodyUsed] = true + yield * this[kBody] + } +} + +class RedirectHandler { + constructor (dispatch, maxRedirections, opts, handler) { + if (maxRedirections != null && (!Number.isInteger(maxRedirections) || maxRedirections < 0)) { + throw new InvalidArgumentError('maxRedirections must be a positive number') + } + + util.validateHandler(handler, opts.method, opts.upgrade) + + this.dispatch = dispatch + this.location = null + this.abort = null + this.opts = { ...opts, maxRedirections: 0 } // opts must be a copy + this.maxRedirections = maxRedirections + this.handler = handler + this.history = [] + + if (util.isStream(this.opts.body)) { + // TODO (fix): Provide some way for the user to cache the file to e.g. /tmp + // so that it can be dispatched again? + // TODO (fix): Do we need 100-expect support to provide a way to do this properly? + if (util.bodyLength(this.opts.body) === 0) { + this.opts.body + .on('data', function () { + assert(false) + }) + } + + if (typeof this.opts.body.readableDidRead !== 'boolean') { + this.opts.body[kBodyUsed] = false + EE.prototype.on.call(this.opts.body, 'data', function () { + this[kBodyUsed] = true + }) + } + } else if (this.opts.body && typeof this.opts.body.pipeTo === 'function') { + // TODO (fix): We can't access ReadableStream internal state + // to determine whether or not it has been disturbed. This is just + // a workaround. + this.opts.body = new BodyAsyncIterable(this.opts.body) + } else if ( + this.opts.body && + typeof this.opts.body !== 'string' && + !ArrayBuffer.isView(this.opts.body) && + util.isIterable(this.opts.body) + ) { + // TODO: Should we allow re-using iterable if !this.opts.idempotent + // or through some other flag? + this.opts.body = new BodyAsyncIterable(this.opts.body) + } + } + + onConnect (abort) { + this.abort = abort + this.handler.onConnect(abort, { history: this.history }) + } + + onUpgrade (statusCode, headers, socket) { + this.handler.onUpgrade(statusCode, headers, socket) + } + + onError (error) { + this.handler.onError(error) + } + + onHeaders (statusCode, headers, resume, statusText) { + this.location = this.history.length >= this.maxRedirections || util.isDisturbed(this.opts.body) + ? null + : parseLocation(statusCode, headers) + + if (this.opts.origin) { + this.history.push(new URL(this.opts.path, this.opts.origin)) + } + + if (!this.location) { + return this.handler.onHeaders(statusCode, headers, resume, statusText) + } + + const { origin, pathname, search } = util.parseURL(new URL(this.location, this.opts.origin && new URL(this.opts.path, this.opts.origin))) + const path = search ? `${pathname}${search}` : pathname + + // Remove headers referring to the original URL. + // By default it is Host only, unless it's a 303 (see below), which removes also all Content-* headers. + // https://tools.ietf.org/html/rfc7231#section-6.4 + this.opts.headers = cleanRequestHeaders(this.opts.headers, statusCode === 303, this.opts.origin !== origin) + this.opts.path = path + this.opts.origin = origin + this.opts.maxRedirections = 0 + this.opts.query = null + + // https://tools.ietf.org/html/rfc7231#section-6.4.4 + // In case of HTTP 303, always replace method to be either HEAD or GET + if (statusCode === 303 && this.opts.method !== 'HEAD') { + this.opts.method = 'GET' + this.opts.body = null + } + } + + onData (chunk) { + if (this.location) { + /* + https://tools.ietf.org/html/rfc7231#section-6.4 + + TLDR: undici always ignores 3xx response bodies. + + Redirection is used to serve the requested resource from another URL, so it is assumes that + no body is generated (and thus can be ignored). Even though generating a body is not prohibited. + + For status 301, 302, 303, 307 and 308 (the latter from RFC 7238), the specs mention that the body usually + (which means it's optional and not mandated) contain just an hyperlink to the value of + the Location response header, so the body can be ignored safely. + + For status 300, which is "Multiple Choices", the spec mentions both generating a Location + response header AND a response body with the other possible location to follow. + Since the spec explicitily chooses not to specify a format for such body and leave it to + servers and browsers implementors, we ignore the body as there is no specified way to eventually parse it. + */ + } else { + return this.handler.onData(chunk) + } + } + + onComplete (trailers) { + if (this.location) { + /* + https://tools.ietf.org/html/rfc7231#section-6.4 + + TLDR: undici always ignores 3xx response trailers as they are not expected in case of redirections + and neither are useful if present. + + See comment on onData method above for more detailed informations. + */ + + this.location = null + this.abort = null + + this.dispatch(this.opts, this) + } else { + this.handler.onComplete(trailers) + } + } + + onBodySent (chunk) { + if (this.handler.onBodySent) { + this.handler.onBodySent(chunk) + } + } +} + +function parseLocation (statusCode, headers) { + if (redirectableStatusCodes.indexOf(statusCode) === -1) { + return null + } + + for (let i = 0; i < headers.length; i += 2) { + if (headers[i].toString().toLowerCase() === 'location') { + return headers[i + 1] + } + } +} + +// https://tools.ietf.org/html/rfc7231#section-6.4.4 +function shouldRemoveHeader (header, removeContent, unknownOrigin) { + return ( + (header.length === 4 && header.toString().toLowerCase() === 'host') || + (removeContent && header.toString().toLowerCase().indexOf('content-') === 0) || + (unknownOrigin && header.length === 13 && header.toString().toLowerCase() === 'authorization') || + (unknownOrigin && header.length === 6 && header.toString().toLowerCase() === 'cookie') + ) +} + +// https://tools.ietf.org/html/rfc7231#section-6.4 +function cleanRequestHeaders (headers, removeContent, unknownOrigin) { + const ret = [] + if (Array.isArray(headers)) { + for (let i = 0; i < headers.length; i += 2) { + if (!shouldRemoveHeader(headers[i], removeContent, unknownOrigin)) { + ret.push(headers[i], headers[i + 1]) + } + } + } else if (headers && typeof headers === 'object') { + for (const key of Object.keys(headers)) { + if (!shouldRemoveHeader(key, removeContent, unknownOrigin)) { + ret.push(key, headers[key]) + } + } + } else { + assert(headers == null, 'headers must be an object or an array') + } + return ret +} + +module.exports = RedirectHandler + + +/***/ }), + +/***/ 8861: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const RedirectHandler = __nccwpck_require__(2860) + +function createRedirectInterceptor ({ maxRedirections: defaultMaxRedirections }) { + return (dispatch) => { + return function Intercept (opts, handler) { + const { maxRedirections = defaultMaxRedirections } = opts + + if (!maxRedirections) { + return dispatch(opts, handler) + } + + const redirectHandler = new RedirectHandler(dispatch, maxRedirections, opts, handler) + opts = { ...opts, maxRedirections: 0 } // Stop sub dispatcher from also redirecting. + return dispatch(opts, redirectHandler) + } + } +} + +module.exports = createRedirectInterceptor + + +/***/ }), + +/***/ 953: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SPECIAL_HEADERS = exports.HEADER_STATE = exports.MINOR = exports.MAJOR = exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS = exports.TOKEN = exports.STRICT_TOKEN = exports.HEX = exports.URL_CHAR = exports.STRICT_URL_CHAR = exports.USERINFO_CHARS = exports.MARK = exports.ALPHANUM = exports.NUM = exports.HEX_MAP = exports.NUM_MAP = exports.ALPHA = exports.FINISH = exports.H_METHOD_MAP = exports.METHOD_MAP = exports.METHODS_RTSP = exports.METHODS_ICE = exports.METHODS_HTTP = exports.METHODS = exports.LENIENT_FLAGS = exports.FLAGS = exports.TYPE = exports.ERROR = void 0; +const utils_1 = __nccwpck_require__(1891); +// C headers +var ERROR; +(function (ERROR) { + ERROR[ERROR["OK"] = 0] = "OK"; + ERROR[ERROR["INTERNAL"] = 1] = "INTERNAL"; + ERROR[ERROR["STRICT"] = 2] = "STRICT"; + ERROR[ERROR["LF_EXPECTED"] = 3] = "LF_EXPECTED"; + ERROR[ERROR["UNEXPECTED_CONTENT_LENGTH"] = 4] = "UNEXPECTED_CONTENT_LENGTH"; + ERROR[ERROR["CLOSED_CONNECTION"] = 5] = "CLOSED_CONNECTION"; + ERROR[ERROR["INVALID_METHOD"] = 6] = "INVALID_METHOD"; + ERROR[ERROR["INVALID_URL"] = 7] = "INVALID_URL"; + ERROR[ERROR["INVALID_CONSTANT"] = 8] = "INVALID_CONSTANT"; + ERROR[ERROR["INVALID_VERSION"] = 9] = "INVALID_VERSION"; + ERROR[ERROR["INVALID_HEADER_TOKEN"] = 10] = "INVALID_HEADER_TOKEN"; + ERROR[ERROR["INVALID_CONTENT_LENGTH"] = 11] = "INVALID_CONTENT_LENGTH"; + ERROR[ERROR["INVALID_CHUNK_SIZE"] = 12] = "INVALID_CHUNK_SIZE"; + ERROR[ERROR["INVALID_STATUS"] = 13] = "INVALID_STATUS"; + ERROR[ERROR["INVALID_EOF_STATE"] = 14] = "INVALID_EOF_STATE"; + ERROR[ERROR["INVALID_TRANSFER_ENCODING"] = 15] = "INVALID_TRANSFER_ENCODING"; + ERROR[ERROR["CB_MESSAGE_BEGIN"] = 16] = "CB_MESSAGE_BEGIN"; + ERROR[ERROR["CB_HEADERS_COMPLETE"] = 17] = "CB_HEADERS_COMPLETE"; + ERROR[ERROR["CB_MESSAGE_COMPLETE"] = 18] = "CB_MESSAGE_COMPLETE"; + ERROR[ERROR["CB_CHUNK_HEADER"] = 19] = "CB_CHUNK_HEADER"; + ERROR[ERROR["CB_CHUNK_COMPLETE"] = 20] = "CB_CHUNK_COMPLETE"; + ERROR[ERROR["PAUSED"] = 21] = "PAUSED"; + ERROR[ERROR["PAUSED_UPGRADE"] = 22] = "PAUSED_UPGRADE"; + ERROR[ERROR["PAUSED_H2_UPGRADE"] = 23] = "PAUSED_H2_UPGRADE"; + ERROR[ERROR["USER"] = 24] = "USER"; +})(ERROR = exports.ERROR || (exports.ERROR = {})); +var TYPE; +(function (TYPE) { + TYPE[TYPE["BOTH"] = 0] = "BOTH"; + TYPE[TYPE["REQUEST"] = 1] = "REQUEST"; + TYPE[TYPE["RESPONSE"] = 2] = "RESPONSE"; +})(TYPE = exports.TYPE || (exports.TYPE = {})); +var FLAGS; +(function (FLAGS) { + FLAGS[FLAGS["CONNECTION_KEEP_ALIVE"] = 1] = "CONNECTION_KEEP_ALIVE"; + FLAGS[FLAGS["CONNECTION_CLOSE"] = 2] = "CONNECTION_CLOSE"; + FLAGS[FLAGS["CONNECTION_UPGRADE"] = 4] = "CONNECTION_UPGRADE"; + FLAGS[FLAGS["CHUNKED"] = 8] = "CHUNKED"; + FLAGS[FLAGS["UPGRADE"] = 16] = "UPGRADE"; + FLAGS[FLAGS["CONTENT_LENGTH"] = 32] = "CONTENT_LENGTH"; + FLAGS[FLAGS["SKIPBODY"] = 64] = "SKIPBODY"; + FLAGS[FLAGS["TRAILING"] = 128] = "TRAILING"; + // 1 << 8 is unused + FLAGS[FLAGS["TRANSFER_ENCODING"] = 512] = "TRANSFER_ENCODING"; +})(FLAGS = exports.FLAGS || (exports.FLAGS = {})); +var LENIENT_FLAGS; +(function (LENIENT_FLAGS) { + LENIENT_FLAGS[LENIENT_FLAGS["HEADERS"] = 1] = "HEADERS"; + LENIENT_FLAGS[LENIENT_FLAGS["CHUNKED_LENGTH"] = 2] = "CHUNKED_LENGTH"; + LENIENT_FLAGS[LENIENT_FLAGS["KEEP_ALIVE"] = 4] = "KEEP_ALIVE"; +})(LENIENT_FLAGS = exports.LENIENT_FLAGS || (exports.LENIENT_FLAGS = {})); +var METHODS; +(function (METHODS) { + METHODS[METHODS["DELETE"] = 0] = "DELETE"; + METHODS[METHODS["GET"] = 1] = "GET"; + METHODS[METHODS["HEAD"] = 2] = "HEAD"; + METHODS[METHODS["POST"] = 3] = "POST"; + METHODS[METHODS["PUT"] = 4] = "PUT"; + /* pathological */ + METHODS[METHODS["CONNECT"] = 5] = "CONNECT"; + METHODS[METHODS["OPTIONS"] = 6] = "OPTIONS"; + METHODS[METHODS["TRACE"] = 7] = "TRACE"; + /* WebDAV */ + METHODS[METHODS["COPY"] = 8] = "COPY"; + METHODS[METHODS["LOCK"] = 9] = "LOCK"; + METHODS[METHODS["MKCOL"] = 10] = "MKCOL"; + METHODS[METHODS["MOVE"] = 11] = "MOVE"; + METHODS[METHODS["PROPFIND"] = 12] = "PROPFIND"; + METHODS[METHODS["PROPPATCH"] = 13] = "PROPPATCH"; + METHODS[METHODS["SEARCH"] = 14] = "SEARCH"; + METHODS[METHODS["UNLOCK"] = 15] = "UNLOCK"; + METHODS[METHODS["BIND"] = 16] = "BIND"; + METHODS[METHODS["REBIND"] = 17] = "REBIND"; + METHODS[METHODS["UNBIND"] = 18] = "UNBIND"; + METHODS[METHODS["ACL"] = 19] = "ACL"; + /* subversion */ + METHODS[METHODS["REPORT"] = 20] = "REPORT"; + METHODS[METHODS["MKACTIVITY"] = 21] = "MKACTIVITY"; + METHODS[METHODS["CHECKOUT"] = 22] = "CHECKOUT"; + METHODS[METHODS["MERGE"] = 23] = "MERGE"; + /* upnp */ + METHODS[METHODS["M-SEARCH"] = 24] = "M-SEARCH"; + METHODS[METHODS["NOTIFY"] = 25] = "NOTIFY"; + METHODS[METHODS["SUBSCRIBE"] = 26] = "SUBSCRIBE"; + METHODS[METHODS["UNSUBSCRIBE"] = 27] = "UNSUBSCRIBE"; + /* RFC-5789 */ + METHODS[METHODS["PATCH"] = 28] = "PATCH"; + METHODS[METHODS["PURGE"] = 29] = "PURGE"; + /* CalDAV */ + METHODS[METHODS["MKCALENDAR"] = 30] = "MKCALENDAR"; + /* RFC-2068, section 19.6.1.2 */ + METHODS[METHODS["LINK"] = 31] = "LINK"; + METHODS[METHODS["UNLINK"] = 32] = "UNLINK"; + /* icecast */ + METHODS[METHODS["SOURCE"] = 33] = "SOURCE"; + /* RFC-7540, section 11.6 */ + METHODS[METHODS["PRI"] = 34] = "PRI"; + /* RFC-2326 RTSP */ + METHODS[METHODS["DESCRIBE"] = 35] = "DESCRIBE"; + METHODS[METHODS["ANNOUNCE"] = 36] = "ANNOUNCE"; + METHODS[METHODS["SETUP"] = 37] = "SETUP"; + METHODS[METHODS["PLAY"] = 38] = "PLAY"; + METHODS[METHODS["PAUSE"] = 39] = "PAUSE"; + METHODS[METHODS["TEARDOWN"] = 40] = "TEARDOWN"; + METHODS[METHODS["GET_PARAMETER"] = 41] = "GET_PARAMETER"; + METHODS[METHODS["SET_PARAMETER"] = 42] = "SET_PARAMETER"; + METHODS[METHODS["REDIRECT"] = 43] = "REDIRECT"; + METHODS[METHODS["RECORD"] = 44] = "RECORD"; + /* RAOP */ + METHODS[METHODS["FLUSH"] = 45] = "FLUSH"; +})(METHODS = exports.METHODS || (exports.METHODS = {})); +exports.METHODS_HTTP = [ + METHODS.DELETE, + METHODS.GET, + METHODS.HEAD, + METHODS.POST, + METHODS.PUT, + METHODS.CONNECT, + METHODS.OPTIONS, + METHODS.TRACE, + METHODS.COPY, + METHODS.LOCK, + METHODS.MKCOL, + METHODS.MOVE, + METHODS.PROPFIND, + METHODS.PROPPATCH, + METHODS.SEARCH, + METHODS.UNLOCK, + METHODS.BIND, + METHODS.REBIND, + METHODS.UNBIND, + METHODS.ACL, + METHODS.REPORT, + METHODS.MKACTIVITY, + METHODS.CHECKOUT, + METHODS.MERGE, + METHODS['M-SEARCH'], + METHODS.NOTIFY, + METHODS.SUBSCRIBE, + METHODS.UNSUBSCRIBE, + METHODS.PATCH, + METHODS.PURGE, + METHODS.MKCALENDAR, + METHODS.LINK, + METHODS.UNLINK, + METHODS.PRI, + // TODO(indutny): should we allow it with HTTP? + METHODS.SOURCE, +]; +exports.METHODS_ICE = [ + METHODS.SOURCE, +]; +exports.METHODS_RTSP = [ + METHODS.OPTIONS, + METHODS.DESCRIBE, + METHODS.ANNOUNCE, + METHODS.SETUP, + METHODS.PLAY, + METHODS.PAUSE, + METHODS.TEARDOWN, + METHODS.GET_PARAMETER, + METHODS.SET_PARAMETER, + METHODS.REDIRECT, + METHODS.RECORD, + METHODS.FLUSH, + // For AirPlay + METHODS.GET, + METHODS.POST, +]; +exports.METHOD_MAP = utils_1.enumToMap(METHODS); +exports.H_METHOD_MAP = {}; +Object.keys(exports.METHOD_MAP).forEach((key) => { + if (/^H/.test(key)) { + exports.H_METHOD_MAP[key] = exports.METHOD_MAP[key]; + } +}); +var FINISH; +(function (FINISH) { + FINISH[FINISH["SAFE"] = 0] = "SAFE"; + FINISH[FINISH["SAFE_WITH_CB"] = 1] = "SAFE_WITH_CB"; + FINISH[FINISH["UNSAFE"] = 2] = "UNSAFE"; +})(FINISH = exports.FINISH || (exports.FINISH = {})); +exports.ALPHA = []; +for (let i = 'A'.charCodeAt(0); i <= 'Z'.charCodeAt(0); i++) { + // Upper case + exports.ALPHA.push(String.fromCharCode(i)); + // Lower case + exports.ALPHA.push(String.fromCharCode(i + 0x20)); +} +exports.NUM_MAP = { + 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, + 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, +}; +exports.HEX_MAP = { + 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, + 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, + A: 0XA, B: 0XB, C: 0XC, D: 0XD, E: 0XE, F: 0XF, + a: 0xa, b: 0xb, c: 0xc, d: 0xd, e: 0xe, f: 0xf, +}; +exports.NUM = [ + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', +]; +exports.ALPHANUM = exports.ALPHA.concat(exports.NUM); +exports.MARK = ['-', '_', '.', '!', '~', '*', '\'', '(', ')']; +exports.USERINFO_CHARS = exports.ALPHANUM + .concat(exports.MARK) + .concat(['%', ';', ':', '&', '=', '+', '$', ',']); +// TODO(indutny): use RFC +exports.STRICT_URL_CHAR = [ + '!', '"', '$', '%', '&', '\'', + '(', ')', '*', '+', ',', '-', '.', '/', + ':', ';', '<', '=', '>', + '@', '[', '\\', ']', '^', '_', + '`', + '{', '|', '}', '~', +].concat(exports.ALPHANUM); +exports.URL_CHAR = exports.STRICT_URL_CHAR + .concat(['\t', '\f']); +// All characters with 0x80 bit set to 1 +for (let i = 0x80; i <= 0xff; i++) { + exports.URL_CHAR.push(i); +} +exports.HEX = exports.NUM.concat(['a', 'b', 'c', 'd', 'e', 'f', 'A', 'B', 'C', 'D', 'E', 'F']); +/* Tokens as defined by rfc 2616. Also lowercases them. + * token = 1* + * separators = "(" | ")" | "<" | ">" | "@" + * | "," | ";" | ":" | "\" | <"> + * | "/" | "[" | "]" | "?" | "=" + * | "{" | "}" | SP | HT + */ +exports.STRICT_TOKEN = [ + '!', '#', '$', '%', '&', '\'', + '*', '+', '-', '.', + '^', '_', '`', + '|', '~', +].concat(exports.ALPHANUM); +exports.TOKEN = exports.STRICT_TOKEN.concat([' ']); +/* + * Verify that a char is a valid visible (printable) US-ASCII + * character or %x80-FF + */ +exports.HEADER_CHARS = ['\t']; +for (let i = 32; i <= 255; i++) { + if (i !== 127) { + exports.HEADER_CHARS.push(i); + } +} +// ',' = \x44 +exports.CONNECTION_TOKEN_CHARS = exports.HEADER_CHARS.filter((c) => c !== 44); +exports.MAJOR = exports.NUM_MAP; +exports.MINOR = exports.MAJOR; +var HEADER_STATE; +(function (HEADER_STATE) { + HEADER_STATE[HEADER_STATE["GENERAL"] = 0] = "GENERAL"; + HEADER_STATE[HEADER_STATE["CONNECTION"] = 1] = "CONNECTION"; + HEADER_STATE[HEADER_STATE["CONTENT_LENGTH"] = 2] = "CONTENT_LENGTH"; + HEADER_STATE[HEADER_STATE["TRANSFER_ENCODING"] = 3] = "TRANSFER_ENCODING"; + HEADER_STATE[HEADER_STATE["UPGRADE"] = 4] = "UPGRADE"; + HEADER_STATE[HEADER_STATE["CONNECTION_KEEP_ALIVE"] = 5] = "CONNECTION_KEEP_ALIVE"; + HEADER_STATE[HEADER_STATE["CONNECTION_CLOSE"] = 6] = "CONNECTION_CLOSE"; + HEADER_STATE[HEADER_STATE["CONNECTION_UPGRADE"] = 7] = "CONNECTION_UPGRADE"; + HEADER_STATE[HEADER_STATE["TRANSFER_ENCODING_CHUNKED"] = 8] = "TRANSFER_ENCODING_CHUNKED"; +})(HEADER_STATE = exports.HEADER_STATE || (exports.HEADER_STATE = {})); +exports.SPECIAL_HEADERS = { + 'connection': HEADER_STATE.CONNECTION, + 'content-length': HEADER_STATE.CONTENT_LENGTH, + 'proxy-connection': HEADER_STATE.CONNECTION, + 'transfer-encoding': HEADER_STATE.TRANSFER_ENCODING, + 'upgrade': HEADER_STATE.UPGRADE, +}; +//# sourceMappingURL=constants.js.map + +/***/ }), + +/***/ 1145: +/***/ ((module) => { + +module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCsLgAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQyoCAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDKgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMqAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMqAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL/gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARB//8DcSIDQQhxDQACQCADQYAEcUUNAAJAIAAtAChBAUcNACAALQAtQQpxDQBBBQ8LQQQPCwJAIANBIHENAAJAIAAtAChBAUYNACAALwEyQf//A3EiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQShxRQ0CIANBiARxQYAERg0CC0EADwtBAEEDIAApAyBQGyEFCyAFC2IBAn9BACEBAkAgAC0AKEEBRg0AIAAvATJB//8DcSICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6cBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMkH//wNxIgVBnH9qQeQASQ0AIAVBzAFGDQAgBUGwAkYNACAEQcAAcQ0AQQAhAyAEQYgEcUGABEYNACAEQShxQQBHIQMLIABBADsBMCAAQQA6AC8gAwuZAQECfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEBIAAvATAiAkECcUUNAQwCC0EAIQEgAC8BMCICQQFxRQ0BC0EBIQEgAC0AKEEBRg0AIAAvATJB//8DcSIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC1kAIABBGGpCADcDACAAQgA3AwAgAEE4akIANwMAIABBMGpCADcDACAAQShqQgA3AwAgAEEgakIANwMAIABBEGpCADcDACAAQQhqQgA3AwAgAEHdATYCHEEAC3sBAX8CQCAAKAIMIgMNAAJAIAAoAgRFDQAgACABNgIECwJAIAAgASACEMSAgIAAIgMNACAAKAIMDwsgACADNgIcQQAhAyAAKAIEIgFFDQAgACABIAIgACgCCBGBgICAAAAiAUUNACAAIAI2AhQgACABNgIMIAEhAwsgAwvk8wEDDn8DfgR/I4CAgIAAQRBrIgMkgICAgAAgASEEIAEhBSABIQYgASEHIAEhCCABIQkgASEKIAEhCyABIQwgASENIAEhDiABIQ8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgACgCHCIQQX9qDt0B2gEB2QECAwQFBgcICQoLDA0O2AEPENcBERLWARMUFRYXGBkaG+AB3wEcHR7VAR8gISIjJCXUASYnKCkqKyzTAdIBLS7RAdABLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVG2wFHSElKzwHOAUvNAUzMAU1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4ABgQGCAYMBhAGFAYYBhwGIAYkBigGLAYwBjQGOAY8BkAGRAZIBkwGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwHLAcoBuAHJAbkByAG6AbsBvAG9Ab4BvwHAAcEBwgHDAcQBxQHGAQDcAQtBACEQDMYBC0EOIRAMxQELQQ0hEAzEAQtBDyEQDMMBC0EQIRAMwgELQRMhEAzBAQtBFCEQDMABC0EVIRAMvwELQRYhEAy+AQtBFyEQDL0BC0EYIRAMvAELQRkhEAy7AQtBGiEQDLoBC0EbIRAMuQELQRwhEAy4AQtBCCEQDLcBC0EdIRAMtgELQSAhEAy1AQtBHyEQDLQBC0EHIRAMswELQSEhEAyyAQtBIiEQDLEBC0EeIRAMsAELQSMhEAyvAQtBEiEQDK4BC0ERIRAMrQELQSQhEAysAQtBJSEQDKsBC0EmIRAMqgELQSchEAypAQtBwwEhEAyoAQtBKSEQDKcBC0ErIRAMpgELQSwhEAylAQtBLSEQDKQBC0EuIRAMowELQS8hEAyiAQtBxAEhEAyhAQtBMCEQDKABC0E0IRAMnwELQQwhEAyeAQtBMSEQDJ0BC0EyIRAMnAELQTMhEAybAQtBOSEQDJoBC0E1IRAMmQELQcUBIRAMmAELQQshEAyXAQtBOiEQDJYBC0E2IRAMlQELQQohEAyUAQtBNyEQDJMBC0E4IRAMkgELQTwhEAyRAQtBOyEQDJABC0E9IRAMjwELQQkhEAyOAQtBKCEQDI0BC0E+IRAMjAELQT8hEAyLAQtBwAAhEAyKAQtBwQAhEAyJAQtBwgAhEAyIAQtBwwAhEAyHAQtBxAAhEAyGAQtBxQAhEAyFAQtBxgAhEAyEAQtBKiEQDIMBC0HHACEQDIIBC0HIACEQDIEBC0HJACEQDIABC0HKACEQDH8LQcsAIRAMfgtBzQAhEAx9C0HMACEQDHwLQc4AIRAMewtBzwAhEAx6C0HQACEQDHkLQdEAIRAMeAtB0gAhEAx3C0HTACEQDHYLQdQAIRAMdQtB1gAhEAx0C0HVACEQDHMLQQYhEAxyC0HXACEQDHELQQUhEAxwC0HYACEQDG8LQQQhEAxuC0HZACEQDG0LQdoAIRAMbAtB2wAhEAxrC0HcACEQDGoLQQMhEAxpC0HdACEQDGgLQd4AIRAMZwtB3wAhEAxmC0HhACEQDGULQeAAIRAMZAtB4gAhEAxjC0HjACEQDGILQQIhEAxhC0HkACEQDGALQeUAIRAMXwtB5gAhEAxeC0HnACEQDF0LQegAIRAMXAtB6QAhEAxbC0HqACEQDFoLQesAIRAMWQtB7AAhEAxYC0HtACEQDFcLQe4AIRAMVgtB7wAhEAxVC0HwACEQDFQLQfEAIRAMUwtB8gAhEAxSC0HzACEQDFELQfQAIRAMUAtB9QAhEAxPC0H2ACEQDE4LQfcAIRAMTQtB+AAhEAxMC0H5ACEQDEsLQfoAIRAMSgtB+wAhEAxJC0H8ACEQDEgLQf0AIRAMRwtB/gAhEAxGC0H/ACEQDEULQYABIRAMRAtBgQEhEAxDC0GCASEQDEILQYMBIRAMQQtBhAEhEAxAC0GFASEQDD8LQYYBIRAMPgtBhwEhEAw9C0GIASEQDDwLQYkBIRAMOwtBigEhEAw6C0GLASEQDDkLQYwBIRAMOAtBjQEhEAw3C0GOASEQDDYLQY8BIRAMNQtBkAEhEAw0C0GRASEQDDMLQZIBIRAMMgtBkwEhEAwxC0GUASEQDDALQZUBIRAMLwtBlgEhEAwuC0GXASEQDC0LQZgBIRAMLAtBmQEhEAwrC0GaASEQDCoLQZsBIRAMKQtBnAEhEAwoC0GdASEQDCcLQZ4BIRAMJgtBnwEhEAwlC0GgASEQDCQLQaEBIRAMIwtBogEhEAwiC0GjASEQDCELQaQBIRAMIAtBpQEhEAwfC0GmASEQDB4LQacBIRAMHQtBqAEhEAwcC0GpASEQDBsLQaoBIRAMGgtBqwEhEAwZC0GsASEQDBgLQa0BIRAMFwtBrgEhEAwWC0EBIRAMFQtBrwEhEAwUC0GwASEQDBMLQbEBIRAMEgtBswEhEAwRC0GyASEQDBALQbQBIRAMDwtBtQEhEAwOC0G2ASEQDA0LQbcBIRAMDAtBuAEhEAwLC0G5ASEQDAoLQboBIRAMCQtBuwEhEAwIC0HGASEQDAcLQbwBIRAMBgtBvQEhEAwFC0G+ASEQDAQLQb8BIRAMAwtBwAEhEAwCC0HCASEQDAELQcEBIRALA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQDscBAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxweHyAhIyUoP0BBREVGR0hJSktMTU9QUVJT3gNXWVtcXWBiZWZnaGlqa2xtb3BxcnN0dXZ3eHl6e3x9foABggGFAYYBhwGJAYsBjAGNAY4BjwGQAZEBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B4AHhAeIB4wHkAeUB5gHnAegB6QHqAesB7AHtAe4B7wHwAfEB8gHzAZkCpAKwAv4C/gILIAEiBCACRw3zAUHdASEQDP8DCyABIhAgAkcN3QFBwwEhEAz+AwsgASIBIAJHDZABQfcAIRAM/QMLIAEiASACRw2GAUHvACEQDPwDCyABIgEgAkcNf0HqACEQDPsDCyABIgEgAkcNe0HoACEQDPoDCyABIgEgAkcNeEHmACEQDPkDCyABIgEgAkcNGkEYIRAM+AMLIAEiASACRw0UQRIhEAz3AwsgASIBIAJHDVlBxQAhEAz2AwsgASIBIAJHDUpBPyEQDPUDCyABIgEgAkcNSEE8IRAM9AMLIAEiASACRw1BQTEhEAzzAwsgAC0ALkEBRg3rAwyHAgsgACABIgEgAhDAgICAAEEBRw3mASAAQgA3AyAM5wELIAAgASIBIAIQtICAgAAiEA3nASABIQEM9QILAkAgASIBIAJHDQBBBiEQDPADCyAAIAFBAWoiASACELuAgIAAIhAN6AEgASEBDDELIABCADcDIEESIRAM1QMLIAEiECACRw0rQR0hEAztAwsCQCABIgEgAkYNACABQQFqIQFBECEQDNQDC0EHIRAM7AMLIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN5QFBCCEQDOsDCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEUIRAM0gMLQQkhEAzqAwsgASEBIAApAyBQDeQBIAEhAQzyAgsCQCABIgEgAkcNAEELIRAM6QMLIAAgAUEBaiIBIAIQtoCAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3lASABIQEM8gILIAAgASIBIAIQuICAgAAiEA3mASABIQEMDQsgACABIgEgAhC6gICAACIQDecBIAEhAQzwAgsCQCABIgEgAkcNAEEPIRAM5QMLIAEtAAAiEEE7Rg0IIBBBDUcN6AEgAUEBaiEBDO8CCyAAIAEiASACELqAgIAAIhAN6AEgASEBDPICCwNAAkAgAS0AAEHwtYCAAGotAAAiEEEBRg0AIBBBAkcN6wEgACgCBCEQIABBADYCBCAAIBAgAUEBaiIBELmAgIAAIhAN6gEgASEBDPQCCyABQQFqIgEgAkcNAAtBEiEQDOIDCyAAIAEiASACELqAgIAAIhAN6QEgASEBDAoLIAEiASACRw0GQRshEAzgAwsCQCABIgEgAkcNAEEWIRAM4AMLIABBioCAgAA2AgggACABNgIEIAAgASACELiAgIAAIhAN6gEgASEBQSAhEAzGAwsCQCABIgEgAkYNAANAAkAgAS0AAEHwt4CAAGotAAAiEEECRg0AAkAgEEF/ag4E5QHsAQDrAewBCyABQQFqIQFBCCEQDMgDCyABQQFqIgEgAkcNAAtBFSEQDN8DC0EVIRAM3gMLA0ACQCABLQAAQfC5gIAAai0AACIQQQJGDQAgEEF/ag4E3gHsAeAB6wHsAQsgAUEBaiIBIAJHDQALQRghEAzdAwsCQCABIgEgAkYNACAAQYuAgIAANgIIIAAgATYCBCABIQFBByEQDMQDC0EZIRAM3AMLIAFBAWohAQwCCwJAIAEiFCACRw0AQRohEAzbAwsgFCEBAkAgFC0AAEFzag4U3QLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gIA7gILQQAhECAAQQA2AhwgAEGvi4CAADYCECAAQQI2AgwgACAUQQFqNgIUDNoDCwJAIAEtAAAiEEE7Rg0AIBBBDUcN6AEgAUEBaiEBDOUCCyABQQFqIQELQSIhEAy/AwsCQCABIhAgAkcNAEEcIRAM2AMLQgAhESAQIQEgEC0AAEFQag435wHmAQECAwQFBgcIAAAAAAAAAAkKCwwNDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADxAREhMUAAtBHiEQDL0DC0ICIREM5QELQgMhEQzkAQtCBCERDOMBC0IFIREM4gELQgYhEQzhAQtCByERDOABC0IIIREM3wELQgkhEQzeAQtCCiERDN0BC0ILIREM3AELQgwhEQzbAQtCDSERDNoBC0IOIREM2QELQg8hEQzYAQtCCiERDNcBC0ILIREM1gELQgwhEQzVAQtCDSERDNQBC0IOIREM0wELQg8hEQzSAQtCACERAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAQLQAAQVBqDjflAeQBAAECAwQFBgfmAeYB5gHmAeYB5gHmAQgJCgsMDeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gEODxAREhPmAQtCAiERDOQBC0IDIREM4wELQgQhEQziAQtCBSERDOEBC0IGIREM4AELQgchEQzfAQtCCCERDN4BC0IJIREM3QELQgohEQzcAQtCCyERDNsBC0IMIREM2gELQg0hEQzZAQtCDiERDNgBC0IPIREM1wELQgohEQzWAQtCCyERDNUBC0IMIREM1AELQg0hEQzTAQtCDiERDNIBC0IPIREM0QELIABCACAAKQMgIhEgAiABIhBrrSISfSITIBMgEVYbNwMgIBEgElYiFEUN0gFBHyEQDMADCwJAIAEiASACRg0AIABBiYCAgAA2AgggACABNgIEIAEhAUEkIRAMpwMLQSAhEAy/AwsgACABIhAgAhC+gICAAEF/ag4FtgEAxQIB0QHSAQtBESEQDKQDCyAAQQE6AC8gECEBDLsDCyABIgEgAkcN0gFBJCEQDLsDCyABIg0gAkcNHkHGACEQDLoDCyAAIAEiASACELKAgIAAIhAN1AEgASEBDLUBCyABIhAgAkcNJkHQACEQDLgDCwJAIAEiASACRw0AQSghEAy4AwsgAEEANgIEIABBjICAgAA2AgggACABIAEQsYCAgAAiEA3TASABIQEM2AELAkAgASIQIAJHDQBBKSEQDLcDCyAQLQAAIgFBIEYNFCABQQlHDdMBIBBBAWohAQwVCwJAIAEiASACRg0AIAFBAWohAQwXC0EqIRAMtQMLAkAgASIQIAJHDQBBKyEQDLUDCwJAIBAtAAAiAUEJRg0AIAFBIEcN1QELIAAtACxBCEYN0wEgECEBDJEDCwJAIAEiASACRw0AQSwhEAy0AwsgAS0AAEEKRw3VASABQQFqIQEMyQILIAEiDiACRw3VAUEvIRAMsgMLA0ACQCABLQAAIhBBIEYNAAJAIBBBdmoOBADcAdwBANoBCyABIQEM4AELIAFBAWoiASACRw0AC0ExIRAMsQMLQTIhECABIhQgAkYNsAMgAiAUayAAKAIAIgFqIRUgFCABa0EDaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfC7gIAAai0AAEcNAQJAIAFBA0cNAEEGIQEMlgMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLEDCyAAQQA2AgAgFCEBDNkBC0EzIRAgASIUIAJGDa8DIAIgFGsgACgCACIBaiEVIBQgAWtBCGohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUH0u4CAAGotAABHDQECQCABQQhHDQBBBSEBDJUDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAywAwsgAEEANgIAIBQhAQzYAQtBNCEQIAEiFCACRg2uAyACIBRrIAAoAgAiAWohFSAUIAFrQQVqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw0BAkAgAUEFRw0AQQchAQyUAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMrwMLIABBADYCACAUIQEM1wELAkAgASIBIAJGDQADQAJAIAEtAABBgL6AgABqLQAAIhBBAUYNACAQQQJGDQogASEBDN0BCyABQQFqIgEgAkcNAAtBMCEQDK4DC0EwIRAMrQMLAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AIBBBdmoOBNkB2gHaAdkB2gELIAFBAWoiASACRw0AC0E4IRAMrQMLQTghEAysAwsDQAJAIAEtAAAiEEEgRg0AIBBBCUcNAwsgAUEBaiIBIAJHDQALQTwhEAyrAwsDQAJAIAEtAAAiEEEgRg0AAkACQCAQQXZqDgTaAQEB2gEACyAQQSxGDdsBCyABIQEMBAsgAUEBaiIBIAJHDQALQT8hEAyqAwsgASEBDNsBC0HAACEQIAEiFCACRg2oAyACIBRrIAAoAgAiAWohFiAUIAFrQQZqIRcCQANAIBQtAABBIHIgAUGAwICAAGotAABHDQEgAUEGRg2OAyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAypAwsgAEEANgIAIBQhAQtBNiEQDI4DCwJAIAEiDyACRw0AQcEAIRAMpwMLIABBjICAgAA2AgggACAPNgIEIA8hASAALQAsQX9qDgTNAdUB1wHZAYcDCyABQQFqIQEMzAELAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgciAQIBBBv39qQf8BcUEaSRtB/wFxIhBBCUYNACAQQSBGDQACQAJAAkACQCAQQZ1/ag4TAAMDAwMDAwMBAwMDAwMDAwMDAgMLIAFBAWohAUExIRAMkQMLIAFBAWohAUEyIRAMkAMLIAFBAWohAUEzIRAMjwMLIAEhAQzQAQsgAUEBaiIBIAJHDQALQTUhEAylAwtBNSEQDKQDCwJAIAEiASACRg0AA0ACQCABLQAAQYC8gIAAai0AAEEBRg0AIAEhAQzTAQsgAUEBaiIBIAJHDQALQT0hEAykAwtBPSEQDKMDCyAAIAEiASACELCAgIAAIhAN1gEgASEBDAELIBBBAWohAQtBPCEQDIcDCwJAIAEiASACRw0AQcIAIRAMoAMLAkADQAJAIAEtAABBd2oOGAAC/gL+AoQD/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4CAP4CCyABQQFqIgEgAkcNAAtBwgAhEAygAwsgAUEBaiEBIAAtAC1BAXFFDb0BIAEhAQtBLCEQDIUDCyABIgEgAkcN0wFBxAAhEAydAwsDQAJAIAEtAABBkMCAgABqLQAAQQFGDQAgASEBDLcCCyABQQFqIgEgAkcNAAtBxQAhEAycAwsgDS0AACIQQSBGDbMBIBBBOkcNgQMgACgCBCEBIABBADYCBCAAIAEgDRCvgICAACIBDdABIA1BAWohAQyzAgtBxwAhECABIg0gAkYNmgMgAiANayAAKAIAIgFqIRYgDSABa0EFaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGQwoCAAGotAABHDYADIAFBBUYN9AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmgMLQcgAIRAgASINIAJGDZkDIAIgDWsgACgCACIBaiEWIA0gAWtBCWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBlsKAgABqLQAARw3/AgJAIAFBCUcNAEECIQEM9QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJkDCwJAIAEiDSACRw0AQckAIRAMmQMLAkACQCANLQAAIgFBIHIgASABQb9/akH/AXFBGkkbQf8BcUGSf2oOBwCAA4ADgAOAA4ADAYADCyANQQFqIQFBPiEQDIADCyANQQFqIQFBPyEQDP8CC0HKACEQIAEiDSACRg2XAyACIA1rIAAoAgAiAWohFiANIAFrQQFqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaDCgIAAai0AAEcN/QIgAUEBRg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyXAwtBywAhECABIg0gAkYNlgMgAiANayAAKAIAIgFqIRYgDSABa0EOaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGiwoCAAGotAABHDfwCIAFBDkYN8AIgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlgMLQcwAIRAgASINIAJGDZUDIAIgDWsgACgCACIBaiEWIA0gAWtBD2ohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBwMKAgABqLQAARw37AgJAIAFBD0cNAEEDIQEM8QILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJUDC0HNACEQIAEiDSACRg2UAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQdDCgIAAai0AAEcN+gICQCABQQVHDQBBBCEBDPACCyABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyUAwsCQCABIg0gAkcNAEHOACEQDJQDCwJAAkACQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZ1/ag4TAP0C/QL9Av0C/QL9Av0C/QL9Av0C/QL9AgH9Av0C/QICA/0CCyANQQFqIQFBwQAhEAz9AgsgDUEBaiEBQcIAIRAM/AILIA1BAWohAUHDACEQDPsCCyANQQFqIQFBxAAhEAz6AgsCQCABIgEgAkYNACAAQY2AgIAANgIIIAAgATYCBCABIQFBxQAhEAz6AgtBzwAhEAySAwsgECEBAkACQCAQLQAAQXZqDgQBqAKoAgCoAgsgEEEBaiEBC0EnIRAM+AILAkAgASIBIAJHDQBB0QAhEAyRAwsCQCABLQAAQSBGDQAgASEBDI0BCyABQQFqIQEgAC0ALUEBcUUNxwEgASEBDIwBCyABIhcgAkcNyAFB0gAhEAyPAwtB0wAhECABIhQgAkYNjgMgAiAUayAAKAIAIgFqIRYgFCABa0EBaiEXA0AgFC0AACABQdbCgIAAai0AAEcNzAEgAUEBRg3HASABQQFqIQEgFEEBaiIUIAJHDQALIAAgFjYCAAyOAwsCQCABIgEgAkcNAEHVACEQDI4DCyABLQAAQQpHDcwBIAFBAWohAQzHAQsCQCABIgEgAkcNAEHWACEQDI0DCwJAAkAgAS0AAEF2ag4EAM0BzQEBzQELIAFBAWohAQzHAQsgAUEBaiEBQcoAIRAM8wILIAAgASIBIAIQroCAgAAiEA3LASABIQFBzQAhEAzyAgsgAC0AKUEiRg2FAwymAgsCQCABIgEgAkcNAEHbACEQDIoDC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgAS0AAEFQag4K1AHTAQABAgMEBQYI1QELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMzAELQQkhEEEBIRRBACEXQQAhFgzLAQsCQCABIgEgAkcNAEHdACEQDIkDCyABLQAAQS5HDcwBIAFBAWohAQymAgsgASIBIAJHDcwBQd8AIRAMhwMLAkAgASIBIAJGDQAgAEGOgICAADYCCCAAIAE2AgQgASEBQdAAIRAM7gILQeAAIRAMhgMLQeEAIRAgASIBIAJGDYUDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHiwoCAAGotAABHDc0BIBRBA0YNzAEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhQMLQeIAIRAgASIBIAJGDYQDIAIgAWsgACgCACIUaiEWIAEgFGtBAmohFwNAIAEtAAAgFEHmwoCAAGotAABHDcwBIBRBAkYNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMhAMLQeMAIRAgASIBIAJGDYMDIAIgAWsgACgCACIUaiEWIAEgFGtBA2ohFwNAIAEtAAAgFEHpwoCAAGotAABHDcsBIBRBA0YNzgEgFEEBaiEUIAFBAWoiASACRw0ACyAAIBY2AgAMgwMLAkAgASIBIAJHDQBB5QAhEAyDAwsgACABQQFqIgEgAhCogICAACIQDc0BIAEhAUHWACEQDOkCCwJAIAEiASACRg0AA0ACQCABLQAAIhBBIEYNAAJAAkACQCAQQbh/ag4LAAHPAc8BzwHPAc8BzwHPAc8BAs8BCyABQQFqIQFB0gAhEAztAgsgAUEBaiEBQdMAIRAM7AILIAFBAWohAUHUACEQDOsCCyABQQFqIgEgAkcNAAtB5AAhEAyCAwtB5AAhEAyBAwsDQAJAIAEtAABB8MKAgABqLQAAIhBBAUYNACAQQX5qDgPPAdAB0QHSAQsgAUEBaiIBIAJHDQALQeYAIRAMgAMLAkAgASIBIAJGDQAgAUEBaiEBDAMLQecAIRAM/wILA0ACQCABLQAAQfDEgIAAai0AACIQQQFGDQACQCAQQX5qDgTSAdMB1AEA1QELIAEhAUHXACEQDOcCCyABQQFqIgEgAkcNAAtB6AAhEAz+AgsCQCABIgEgAkcNAEHpACEQDP4CCwJAIAEtAAAiEEF2ag4augHVAdUBvAHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHKAdUB1QEA0wELIAFBAWohAQtBBiEQDOMCCwNAAkAgAS0AAEHwxoCAAGotAABBAUYNACABIQEMngILIAFBAWoiASACRw0AC0HqACEQDPsCCwJAIAEiASACRg0AIAFBAWohAQwDC0HrACEQDPoCCwJAIAEiASACRw0AQewAIRAM+gILIAFBAWohAQwBCwJAIAEiASACRw0AQe0AIRAM+QILIAFBAWohAQtBBCEQDN4CCwJAIAEiFCACRw0AQe4AIRAM9wILIBQhAQJAAkACQCAULQAAQfDIgIAAai0AAEF/ag4H1AHVAdYBAJwCAQLXAQsgFEEBaiEBDAoLIBRBAWohAQzNAQtBACEQIABBADYCHCAAQZuSgIAANgIQIABBBzYCDCAAIBRBAWo2AhQM9gILAkADQAJAIAEtAABB8MiAgABqLQAAIhBBBEYNAAJAAkAgEEF/ag4H0gHTAdQB2QEABAHZAQsgASEBQdoAIRAM4AILIAFBAWohAUHcACEQDN8CCyABQQFqIgEgAkcNAAtB7wAhEAz2AgsgAUEBaiEBDMsBCwJAIAEiFCACRw0AQfAAIRAM9QILIBQtAABBL0cN1AEgFEEBaiEBDAYLAkAgASIUIAJHDQBB8QAhEAz0AgsCQCAULQAAIgFBL0cNACAUQQFqIQFB3QAhEAzbAgsgAUF2aiIEQRZLDdMBQQEgBHRBiYCAAnFFDdMBDMoCCwJAIAEiASACRg0AIAFBAWohAUHeACEQDNoCC0HyACEQDPICCwJAIAEiFCACRw0AQfQAIRAM8gILIBQhAQJAIBQtAABB8MyAgABqLQAAQX9qDgPJApQCANQBC0HhACEQDNgCCwJAIAEiFCACRg0AA0ACQCAULQAAQfDKgIAAai0AACIBQQNGDQACQCABQX9qDgLLAgDVAQsgFCEBQd8AIRAM2gILIBRBAWoiFCACRw0AC0HzACEQDPECC0HzACEQDPACCwJAIAEiASACRg0AIABBj4CAgAA2AgggACABNgIEIAEhAUHgACEQDNcCC0H1ACEQDO8CCwJAIAEiASACRw0AQfYAIRAM7wILIABBj4CAgAA2AgggACABNgIEIAEhAQtBAyEQDNQCCwNAIAEtAABBIEcNwwIgAUEBaiIBIAJHDQALQfcAIRAM7AILAkAgASIBIAJHDQBB+AAhEAzsAgsgAS0AAEEgRw3OASABQQFqIQEM7wELIAAgASIBIAIQrICAgAAiEA3OASABIQEMjgILAkAgASIEIAJHDQBB+gAhEAzqAgsgBC0AAEHMAEcN0QEgBEEBaiEBQRMhEAzPAQsCQCABIgQgAkcNAEH7ACEQDOkCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRADQCAELQAAIAFB8M6AgABqLQAARw3QASABQQVGDc4BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQfsAIRAM6AILAkAgASIEIAJHDQBB/AAhEAzoAgsCQAJAIAQtAABBvX9qDgwA0QHRAdEB0QHRAdEB0QHRAdEB0QEB0QELIARBAWohAUHmACEQDM8CCyAEQQFqIQFB5wAhEAzOAgsCQCABIgQgAkcNAEH9ACEQDOcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDc8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH9ACEQDOcCCyAAQQA2AgAgEEEBaiEBQRAhEAzMAQsCQCABIgQgAkcNAEH+ACEQDOYCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUH2zoCAAGotAABHDc4BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH+ACEQDOYCCyAAQQA2AgAgEEEBaiEBQRYhEAzLAQsCQCABIgQgAkcNAEH/ACEQDOUCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUH8zoCAAGotAABHDc0BIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEH/ACEQDOUCCyAAQQA2AgAgEEEBaiEBQQUhEAzKAQsCQCABIgQgAkcNAEGAASEQDOQCCyAELQAAQdkARw3LASAEQQFqIQFBCCEQDMkBCwJAIAEiBCACRw0AQYEBIRAM4wILAkACQCAELQAAQbJ/ag4DAMwBAcwBCyAEQQFqIQFB6wAhEAzKAgsgBEEBaiEBQewAIRAMyQILAkAgASIEIAJHDQBBggEhEAziAgsCQAJAIAQtAABBuH9qDggAywHLAcsBywHLAcsBAcsBCyAEQQFqIQFB6gAhEAzJAgsgBEEBaiEBQe0AIRAMyAILAkAgASIEIAJHDQBBgwEhEAzhAgsgAiAEayAAKAIAIgFqIRAgBCABa0ECaiEUAkADQCAELQAAIAFBgM+AgABqLQAARw3JASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBA2AgBBgwEhEAzhAgtBACEQIABBADYCACAUQQFqIQEMxgELAkAgASIEIAJHDQBBhAEhEAzgAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBg8+AgABqLQAARw3IASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhAEhEAzgAgsgAEEANgIAIBBBAWohAUEjIRAMxQELAkAgASIEIAJHDQBBhQEhEAzfAgsCQAJAIAQtAABBtH9qDggAyAHIAcgByAHIAcgBAcgBCyAEQQFqIQFB7wAhEAzGAgsgBEEBaiEBQfAAIRAMxQILAkAgASIEIAJHDQBBhgEhEAzeAgsgBC0AAEHFAEcNxQEgBEEBaiEBDIMCCwJAIAEiBCACRw0AQYcBIRAM3QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQYjPgIAAai0AAEcNxQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYcBIRAM3QILIABBADYCACAQQQFqIQFBLSEQDMIBCwJAIAEiBCACRw0AQYgBIRAM3AILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNxAEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYgBIRAM3AILIABBADYCACAQQQFqIQFBKSEQDMEBCwJAIAEiASACRw0AQYkBIRAM2wILQQEhECABLQAAQd8ARw3AASABQQFqIQEMgQILAkAgASIEIAJHDQBBigEhEAzaAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQA0AgBC0AACABQYzPgIAAai0AAEcNwQEgAUEBRg2vAiABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGKASEQDNkCCwJAIAEiBCACRw0AQYsBIRAM2QILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQY7PgIAAai0AAEcNwQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYsBIRAM2QILIABBADYCACAQQQFqIQFBAiEQDL4BCwJAIAEiBCACRw0AQYwBIRAM2AILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNwAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYwBIRAM2AILIABBADYCACAQQQFqIQFBHyEQDL0BCwJAIAEiBCACRw0AQY0BIRAM1wILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNvwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY0BIRAM1wILIABBADYCACAQQQFqIQFBCSEQDLwBCwJAIAEiBCACRw0AQY4BIRAM1gILAkACQCAELQAAQbd/ag4HAL8BvwG/Ab8BvwEBvwELIARBAWohAUH4ACEQDL0CCyAEQQFqIQFB+QAhEAy8AgsCQCABIgQgAkcNAEGPASEQDNUCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGRz4CAAGotAABHDb0BIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGPASEQDNUCCyAAQQA2AgAgEEEBaiEBQRghEAy6AQsCQCABIgQgAkcNAEGQASEQDNQCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUGXz4CAAGotAABHDbwBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGQASEQDNQCCyAAQQA2AgAgEEEBaiEBQRchEAy5AQsCQCABIgQgAkcNAEGRASEQDNMCCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUGaz4CAAGotAABHDbsBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGRASEQDNMCCyAAQQA2AgAgEEEBaiEBQRUhEAy4AQsCQCABIgQgAkcNAEGSASEQDNICCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGhz4CAAGotAABHDboBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGSASEQDNICCyAAQQA2AgAgEEEBaiEBQR4hEAy3AQsCQCABIgQgAkcNAEGTASEQDNECCyAELQAAQcwARw24ASAEQQFqIQFBCiEQDLYBCwJAIAQgAkcNAEGUASEQDNACCwJAAkAgBC0AAEG/f2oODwC5AbkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AQG5AQsgBEEBaiEBQf4AIRAMtwILIARBAWohAUH/ACEQDLYCCwJAIAQgAkcNAEGVASEQDM8CCwJAAkAgBC0AAEG/f2oOAwC4AQG4AQsgBEEBaiEBQf0AIRAMtgILIARBAWohBEGAASEQDLUCCwJAIAQgAkcNAEGWASEQDM4CCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUGnz4CAAGotAABHDbYBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGWASEQDM4CCyAAQQA2AgAgEEEBaiEBQQshEAyzAQsCQCAEIAJHDQBBlwEhEAzNAgsCQAJAAkACQCAELQAAQVNqDiMAuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AQG4AbgBuAG4AbgBArgBuAG4AQO4AQsgBEEBaiEBQfsAIRAMtgILIARBAWohAUH8ACEQDLUCCyAEQQFqIQRBgQEhEAy0AgsgBEEBaiEEQYIBIRAMswILAkAgBCACRw0AQZgBIRAMzAILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQanPgIAAai0AAEcNtAEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZgBIRAMzAILIABBADYCACAQQQFqIQFBGSEQDLEBCwJAIAQgAkcNAEGZASEQDMsCCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUGuz4CAAGotAABHDbMBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGZASEQDMsCCyAAQQA2AgAgEEEBaiEBQQYhEAywAQsCQCAEIAJHDQBBmgEhEAzKAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBtM+AgABqLQAARw2yASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmgEhEAzKAgsgAEEANgIAIBBBAWohAUEcIRAMrwELAkAgBCACRw0AQZsBIRAMyQILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbbPgIAAai0AAEcNsQEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZsBIRAMyQILIABBADYCACAQQQFqIQFBJyEQDK4BCwJAIAQgAkcNAEGcASEQDMgCCwJAAkAgBC0AAEGsf2oOAgABsQELIARBAWohBEGGASEQDK8CCyAEQQFqIQRBhwEhEAyuAgsCQCAEIAJHDQBBnQEhEAzHAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBuM+AgABqLQAARw2vASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBnQEhEAzHAgsgAEEANgIAIBBBAWohAUEmIRAMrAELAkAgBCACRw0AQZ4BIRAMxgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQbrPgIAAai0AAEcNrgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ4BIRAMxgILIABBADYCACAQQQFqIQFBAyEQDKsBCwJAIAQgAkcNAEGfASEQDMUCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDa0BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGfASEQDMUCCyAAQQA2AgAgEEEBaiEBQQwhEAyqAQsCQCAEIAJHDQBBoAEhEAzEAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBvM+AgABqLQAARw2sASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBoAEhEAzEAgsgAEEANgIAIBBBAWohAUENIRAMqQELAkAgBCACRw0AQaEBIRAMwwILAkACQCAELQAAQbp/ag4LAKwBrAGsAawBrAGsAawBrAGsAQGsAQsgBEEBaiEEQYsBIRAMqgILIARBAWohBEGMASEQDKkCCwJAIAQgAkcNAEGiASEQDMICCyAELQAAQdAARw2pASAEQQFqIQQM6QELAkAgBCACRw0AQaMBIRAMwQILAkACQCAELQAAQbd/ag4HAaoBqgGqAaoBqgEAqgELIARBAWohBEGOASEQDKgCCyAEQQFqIQFBIiEQDKYBCwJAIAQgAkcNAEGkASEQDMACCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHAz4CAAGotAABHDagBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGkASEQDMACCyAAQQA2AgAgEEEBaiEBQR0hEAylAQsCQCAEIAJHDQBBpQEhEAy/AgsCQAJAIAQtAABBrn9qDgMAqAEBqAELIARBAWohBEGQASEQDKYCCyAEQQFqIQFBBCEQDKQBCwJAIAQgAkcNAEGmASEQDL4CCwJAAkACQAJAAkAgBC0AAEG/f2oOFQCqAaoBqgGqAaoBqgGqAaoBqgGqAQGqAaoBAqoBqgEDqgGqAQSqAQsgBEEBaiEEQYgBIRAMqAILIARBAWohBEGJASEQDKcCCyAEQQFqIQRBigEhEAymAgsgBEEBaiEEQY8BIRAMpQILIARBAWohBEGRASEQDKQCCwJAIAQgAkcNAEGnASEQDL0CCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDaUBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGnASEQDL0CCyAAQQA2AgAgEEEBaiEBQREhEAyiAQsCQCAEIAJHDQBBqAEhEAy8AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBws+AgABqLQAARw2kASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqAEhEAy8AgsgAEEANgIAIBBBAWohAUEsIRAMoQELAkAgBCACRw0AQakBIRAMuwILIAIgBGsgACgCACIBaiEUIAQgAWtBBGohEAJAA0AgBC0AACABQcXPgIAAai0AAEcNowEgAUEERg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQakBIRAMuwILIABBADYCACAQQQFqIQFBKyEQDKABCwJAIAQgAkcNAEGqASEQDLoCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHKz4CAAGotAABHDaIBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGqASEQDLoCCyAAQQA2AgAgEEEBaiEBQRQhEAyfAQsCQCAEIAJHDQBBqwEhEAy5AgsCQAJAAkACQCAELQAAQb5/ag4PAAECpAGkAaQBpAGkAaQBpAGkAaQBpAGkAQOkAQsgBEEBaiEEQZMBIRAMogILIARBAWohBEGUASEQDKECCyAEQQFqIQRBlQEhEAygAgsgBEEBaiEEQZYBIRAMnwILAkAgBCACRw0AQawBIRAMuAILIAQtAABBxQBHDZ8BIARBAWohBAzgAQsCQCAEIAJHDQBBrQEhEAy3AgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBzc+AgABqLQAARw2fASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrQEhEAy3AgsgAEEANgIAIBBBAWohAUEOIRAMnAELAkAgBCACRw0AQa4BIRAMtgILIAQtAABB0ABHDZ0BIARBAWohAUElIRAMmwELAkAgBCACRw0AQa8BIRAMtQILIAIgBGsgACgCACIBaiEUIAQgAWtBCGohEAJAA0AgBC0AACABQdDPgIAAai0AAEcNnQEgAUEIRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQa8BIRAMtQILIABBADYCACAQQQFqIQFBKiEQDJoBCwJAIAQgAkcNAEGwASEQDLQCCwJAAkAgBC0AAEGrf2oOCwCdAZ0BnQGdAZ0BnQGdAZ0BnQEBnQELIARBAWohBEGaASEQDJsCCyAEQQFqIQRBmwEhEAyaAgsCQCAEIAJHDQBBsQEhEAyzAgsCQAJAIAQtAABBv39qDhQAnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBAZwBCyAEQQFqIQRBmQEhEAyaAgsgBEEBaiEEQZwBIRAMmQILAkAgBCACRw0AQbIBIRAMsgILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQdnPgIAAai0AAEcNmgEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbIBIRAMsgILIABBADYCACAQQQFqIQFBISEQDJcBCwJAIAQgAkcNAEGzASEQDLECCyACIARrIAAoAgAiAWohFCAEIAFrQQZqIRACQANAIAQtAAAgAUHdz4CAAGotAABHDZkBIAFBBkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGzASEQDLECCyAAQQA2AgAgEEEBaiEBQRohEAyWAQsCQCAEIAJHDQBBtAEhEAywAgsCQAJAAkAgBC0AAEG7f2oOEQCaAZoBmgGaAZoBmgGaAZoBmgEBmgGaAZoBmgGaAQKaAQsgBEEBaiEEQZ0BIRAMmAILIARBAWohBEGeASEQDJcCCyAEQQFqIQRBnwEhEAyWAgsCQCAEIAJHDQBBtQEhEAyvAgsgAiAEayAAKAIAIgFqIRQgBCABa0EFaiEQAkADQCAELQAAIAFB5M+AgABqLQAARw2XASABQQVGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtQEhEAyvAgsgAEEANgIAIBBBAWohAUEoIRAMlAELAkAgBCACRw0AQbYBIRAMrgILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQerPgIAAai0AAEcNlgEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbYBIRAMrgILIABBADYCACAQQQFqIQFBByEQDJMBCwJAIAQgAkcNAEG3ASEQDK0CCwJAAkAgBC0AAEG7f2oODgCWAZYBlgGWAZYBlgGWAZYBlgGWAZYBlgEBlgELIARBAWohBEGhASEQDJQCCyAEQQFqIQRBogEhEAyTAgsCQCAEIAJHDQBBuAEhEAysAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB7c+AgABqLQAARw2UASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuAEhEAysAgsgAEEANgIAIBBBAWohAUESIRAMkQELAkAgBCACRw0AQbkBIRAMqwILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfDPgIAAai0AAEcNkwEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbkBIRAMqwILIABBADYCACAQQQFqIQFBICEQDJABCwJAIAQgAkcNAEG6ASEQDKoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUHyz4CAAGotAABHDZIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG6ASEQDKoCCyAAQQA2AgAgEEEBaiEBQQ8hEAyPAQsCQCAEIAJHDQBBuwEhEAypAgsCQAJAIAQtAABBt39qDgcAkgGSAZIBkgGSAQGSAQsgBEEBaiEEQaUBIRAMkAILIARBAWohBEGmASEQDI8CCwJAIAQgAkcNAEG8ASEQDKgCCyACIARrIAAoAgAiAWohFCAEIAFrQQdqIRACQANAIAQtAAAgAUH0z4CAAGotAABHDZABIAFBB0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG8ASEQDKgCCyAAQQA2AgAgEEEBaiEBQRshEAyNAQsCQCAEIAJHDQBBvQEhEAynAgsCQAJAAkAgBC0AAEG+f2oOEgCRAZEBkQGRAZEBkQGRAZEBkQEBkQGRAZEBkQGRAZEBApEBCyAEQQFqIQRBpAEhEAyPAgsgBEEBaiEEQacBIRAMjgILIARBAWohBEGoASEQDI0CCwJAIAQgAkcNAEG+ASEQDKYCCyAELQAAQc4ARw2NASAEQQFqIQQMzwELAkAgBCACRw0AQb8BIRAMpQILAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBC0AAEG/f2oOFQABAgOcAQQFBpwBnAGcAQcICQoLnAEMDQ4PnAELIARBAWohAUHoACEQDJoCCyAEQQFqIQFB6QAhEAyZAgsgBEEBaiEBQe4AIRAMmAILIARBAWohAUHyACEQDJcCCyAEQQFqIQFB8wAhEAyWAgsgBEEBaiEBQfYAIRAMlQILIARBAWohAUH3ACEQDJQCCyAEQQFqIQFB+gAhEAyTAgsgBEEBaiEEQYMBIRAMkgILIARBAWohBEGEASEQDJECCyAEQQFqIQRBhQEhEAyQAgsgBEEBaiEEQZIBIRAMjwILIARBAWohBEGYASEQDI4CCyAEQQFqIQRBoAEhEAyNAgsgBEEBaiEEQaMBIRAMjAILIARBAWohBEGqASEQDIsCCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEGrASEQDIsCC0HAASEQDKMCCyAAIAUgAhCqgICAACIBDYsBIAUhAQxcCwJAIAYgAkYNACAGQQFqIQUMjQELQcIBIRAMoQILA0ACQCAQLQAAQXZqDgSMAQAAjwEACyAQQQFqIhAgAkcNAAtBwwEhEAygAgsCQCAHIAJGDQAgAEGRgICAADYCCCAAIAc2AgQgByEBQQEhEAyHAgtBxAEhEAyfAgsCQCAHIAJHDQBBxQEhEAyfAgsCQAJAIActAABBdmoOBAHOAc4BAM4BCyAHQQFqIQYMjQELIAdBAWohBQyJAQsCQCAHIAJHDQBBxgEhEAyeAgsCQAJAIActAABBdmoOFwGPAY8BAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAQCPAQsgB0EBaiEHC0GwASEQDIQCCwJAIAggAkcNAEHIASEQDJ0CCyAILQAAQSBHDY0BIABBADsBMiAIQQFqIQFBswEhEAyDAgsgASEXAkADQCAXIgcgAkYNASAHLQAAQVBqQf8BcSIQQQpPDcwBAkAgAC8BMiIUQZkzSw0AIAAgFEEKbCIUOwEyIBBB//8DcyAUQf7/A3FJDQAgB0EBaiEXIAAgFCAQaiIQOwEyIBBB//8DcUHoB0kNAQsLQQAhECAAQQA2AhwgAEHBiYCAADYCECAAQQ02AgwgACAHQQFqNgIUDJwCC0HHASEQDJsCCyAAIAggAhCugICAACIQRQ3KASAQQRVHDYwBIABByAE2AhwgACAINgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAyaAgsCQCAJIAJHDQBBzAEhEAyaAgtBACEUQQEhF0EBIRZBACEQAkACQAJAAkACQAJAAkACQAJAIAktAABBUGoOCpYBlQEAAQIDBAUGCJcBC0ECIRAMBgtBAyEQDAULQQQhEAwEC0EFIRAMAwtBBiEQDAILQQchEAwBC0EIIRALQQAhF0EAIRZBACEUDI4BC0EJIRBBASEUQQAhF0EAIRYMjQELAkAgCiACRw0AQc4BIRAMmQILIAotAABBLkcNjgEgCkEBaiEJDMoBCyALIAJHDY4BQdABIRAMlwILAkAgCyACRg0AIABBjoCAgAA2AgggACALNgIEQbcBIRAM/gELQdEBIRAMlgILAkAgBCACRw0AQdIBIRAMlgILIAIgBGsgACgCACIQaiEUIAQgEGtBBGohCwNAIAQtAAAgEEH8z4CAAGotAABHDY4BIBBBBEYN6QEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB0gEhEAyVAgsgACAMIAIQrICAgAAiAQ2NASAMIQEMuAELAkAgBCACRw0AQdQBIRAMlAILIAIgBGsgACgCACIQaiEUIAQgEGtBAWohDANAIAQtAAAgEEGB0ICAAGotAABHDY8BIBBBAUYNjgEgEEEBaiEQIARBAWoiBCACRw0ACyAAIBQ2AgBB1AEhEAyTAgsCQCAEIAJHDQBB1gEhEAyTAgsgAiAEayAAKAIAIhBqIRQgBCAQa0ECaiELA0AgBC0AACAQQYPQgIAAai0AAEcNjgEgEEECRg2QASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHWASEQDJICCwJAIAQgAkcNAEHXASEQDJICCwJAAkAgBC0AAEG7f2oOEACPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAY8BCyAEQQFqIQRBuwEhEAz5AQsgBEEBaiEEQbwBIRAM+AELAkAgBCACRw0AQdgBIRAMkQILIAQtAABByABHDYwBIARBAWohBAzEAQsCQCAEIAJGDQAgAEGQgICAADYCCCAAIAQ2AgRBvgEhEAz3AQtB2QEhEAyPAgsCQCAEIAJHDQBB2gEhEAyPAgsgBC0AAEHIAEYNwwEgAEEBOgAoDLkBCyAAQQI6AC8gACAEIAIQpoCAgAAiEA2NAUHCASEQDPQBCyAALQAoQX9qDgK3AbkBuAELA0ACQCAELQAAQXZqDgQAjgGOAQCOAQsgBEEBaiIEIAJHDQALQd0BIRAMiwILIABBADoALyAALQAtQQRxRQ2EAgsgAEEAOgAvIABBAToANCABIQEMjAELIBBBFUYN2gEgAEEANgIcIAAgATYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMiAILAkAgACAQIAIQtICAgAAiBA0AIBAhAQyBAgsCQCAEQRVHDQAgAEEDNgIcIAAgEDYCFCAAQbCYgIAANgIQIABBFTYCDEEAIRAMiAILIABBADYCHCAAIBA2AhQgAEGnjoCAADYCECAAQRI2AgxBACEQDIcCCyAQQRVGDdYBIABBADYCHCAAIAE2AhQgAEHajYCAADYCECAAQRQ2AgxBACEQDIYCCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNjQEgAEEHNgIcIAAgEDYCFCAAIBQ2AgxBACEQDIUCCyAAIAAvATBBgAFyOwEwIAEhAQtBKiEQDOoBCyAQQRVGDdEBIABBADYCHCAAIAE2AhQgAEGDjICAADYCECAAQRM2AgxBACEQDIICCyAQQRVGDc8BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDIECCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyNAQsgAEEMNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDIACCyAQQRVGDcwBIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDP8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyMAQsgAEENNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDP4BCyAQQRVGDckBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDP0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyLAQsgAEEONgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPwBCyAAQQA2AhwgACABNgIUIABBwJWAgAA2AhAgAEECNgIMQQAhEAz7AQsgEEEVRg3FASAAQQA2AhwgACABNgIUIABBxoyAgAA2AhAgAEEjNgIMQQAhEAz6AQsgAEEQNgIcIAAgATYCFCAAIBA2AgxBACEQDPkBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQzxAQsgAEERNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPgBCyAQQRVGDcEBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPcBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQuYCAgAAiEA0AIAFBAWohAQyIAQsgAEETNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPYBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQuYCAgAAiBA0AIAFBAWohAQztAQsgAEEUNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPUBCyAQQRVGDb0BIABBADYCHCAAIAE2AhQgAEGaj4CAADYCECAAQSI2AgxBACEQDPQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQt4CAgAAiEA0AIAFBAWohAQyGAQsgAEEWNgIcIAAgEDYCDCAAIAFBAWo2AhRBACEQDPMBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQt4CAgAAiBA0AIAFBAWohAQzpAQsgAEEXNgIcIAAgBDYCDCAAIAFBAWo2AhRBACEQDPIBCyAAQQA2AhwgACABNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzxAQtCASERCyAQQQFqIQECQCAAKQMgIhJC//////////8PVg0AIAAgEkIEhiARhDcDICABIQEMhAELIABBADYCHCAAIAE2AhQgAEGtiYCAADYCECAAQQw2AgxBACEQDO8BCyAAQQA2AhwgACAQNgIUIABBzZOAgAA2AhAgAEEMNgIMQQAhEAzuAQsgACgCBCEXIABBADYCBCAQIBGnaiIWIQEgACAXIBAgFiAUGyIQELWAgIAAIhRFDXMgAEEFNgIcIAAgEDYCFCAAIBQ2AgxBACEQDO0BCyAAQQA2AhwgACAQNgIUIABBqpyAgAA2AhAgAEEPNgIMQQAhEAzsAQsgACAQIAIQtICAgAAiAQ0BIBAhAQtBDiEQDNEBCwJAIAFBFUcNACAAQQI2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAzqAQsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAM6QELIAFBAWohEAJAIAAvATAiAUGAAXFFDQACQCAAIBAgAhC7gICAACIBDQAgECEBDHALIAFBFUcNugEgAEEFNgIcIAAgEDYCFCAAQfmXgIAANgIQIABBFTYCDEEAIRAM6QELAkAgAUGgBHFBoARHDQAgAC0ALUECcQ0AIABBADYCHCAAIBA2AhQgAEGWk4CAADYCECAAQQQ2AgxBACEQDOkBCyAAIBAgAhC9gICAABogECEBAkACQAJAAkACQCAAIBAgAhCzgICAAA4WAgEABAQEBAQEBAQEBAQEBAQEBAQEAwQLIABBAToALgsgACAALwEwQcAAcjsBMCAQIQELQSYhEAzRAQsgAEEjNgIcIAAgEDYCFCAAQaWWgIAANgIQIABBFTYCDEEAIRAM6QELIABBADYCHCAAIBA2AhQgAEHVi4CAADYCECAAQRE2AgxBACEQDOgBCyAALQAtQQFxRQ0BQcMBIRAMzgELAkAgDSACRg0AA0ACQCANLQAAQSBGDQAgDSEBDMQBCyANQQFqIg0gAkcNAAtBJSEQDOcBC0ElIRAM5gELIAAoAgQhBCAAQQA2AgQgACAEIA0Qr4CAgAAiBEUNrQEgAEEmNgIcIAAgBDYCDCAAIA1BAWo2AhRBACEQDOUBCyAQQRVGDasBIABBADYCHCAAIAE2AhQgAEH9jYCAADYCECAAQR02AgxBACEQDOQBCyAAQSc2AhwgACABNgIUIAAgEDYCDEEAIRAM4wELIBAhAUEBIRQCQAJAAkACQAJAAkACQCAALQAsQX5qDgcGBQUDAQIABQsgACAALwEwQQhyOwEwDAMLQQIhFAwBC0EEIRQLIABBAToALCAAIAAvATAgFHI7ATALIBAhAQtBKyEQDMoBCyAAQQA2AhwgACAQNgIUIABBq5KAgAA2AhAgAEELNgIMQQAhEAziAQsgAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDEEAIRAM4QELIABBADoALCAQIQEMvQELIBAhAUEBIRQCQAJAAkACQAJAIAAtACxBe2oOBAMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0EpIRAMxQELIABBADYCHCAAIAE2AhQgAEHwlICAADYCECAAQQM2AgxBACEQDN0BCwJAIA4tAABBDUcNACAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA5BAWohAQx1CyAAQSw2AhwgACABNgIMIAAgDkEBajYCFEEAIRAM3QELIAAtAC1BAXFFDQFBxAEhEAzDAQsCQCAOIAJHDQBBLSEQDNwBCwJAAkADQAJAIA4tAABBdmoOBAIAAAMACyAOQQFqIg4gAkcNAAtBLSEQDN0BCyAAKAIEIQEgAEEANgIEAkAgACABIA4QsYCAgAAiAQ0AIA4hAQx0CyAAQSw2AhwgACAONgIUIAAgATYCDEEAIRAM3AELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHMLIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzbAQsgACgCBCEEIABBADYCBCAAIAQgDhCxgICAACIEDaABIA4hAQzOAQsgEEEsRw0BIAFBAWohEEEBIQECQAJAAkACQAJAIAAtACxBe2oOBAMBAgQACyAQIQEMBAtBAiEBDAELQQQhAQsgAEEBOgAsIAAgAC8BMCABcjsBMCAQIQEMAQsgACAALwEwQQhyOwEwIBAhAQtBOSEQDL8BCyAAQQA6ACwgASEBC0E0IRAMvQELIAAgAC8BMEEgcjsBMCABIQEMAgsgACgCBCEEIABBADYCBAJAIAAgBCABELGAgIAAIgQNACABIQEMxwELIABBNzYCHCAAIAE2AhQgACAENgIMQQAhEAzUAQsgAEEIOgAsIAEhAQtBMCEQDLkBCwJAIAAtAChBAUYNACABIQEMBAsgAC0ALUEIcUUNkwEgASEBDAMLIAAtADBBIHENlAFBxQEhEAy3AQsCQCAPIAJGDQACQANAAkAgDy0AAEFQaiIBQf8BcUEKSQ0AIA8hAUE1IRAMugELIAApAyAiEUKZs+bMmbPmzBlWDQEgACARQgp+IhE3AyAgESABrUL/AYMiEkJ/hVYNASAAIBEgEnw3AyAgD0EBaiIPIAJHDQALQTkhEAzRAQsgACgCBCECIABBADYCBCAAIAIgD0EBaiIEELGAgIAAIgINlQEgBCEBDMMBC0E5IRAMzwELAkAgAC8BMCIBQQhxRQ0AIAAtAChBAUcNACAALQAtQQhxRQ2QAQsgACABQff7A3FBgARyOwEwIA8hAQtBNyEQDLQBCyAAIAAvATBBEHI7ATAMqwELIBBBFUYNiwEgAEEANgIcIAAgATYCFCAAQfCOgIAANgIQIABBHDYCDEEAIRAMywELIABBwwA2AhwgACABNgIMIAAgDUEBajYCFEEAIRAMygELAkAgAS0AAEE6Rw0AIAAoAgQhECAAQQA2AgQCQCAAIBAgARCvgICAACIQDQAgAUEBaiEBDGMLIABBwwA2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMygELIABBADYCHCAAIAE2AhQgAEGxkYCAADYCECAAQQo2AgxBACEQDMkBCyAAQQA2AhwgACABNgIUIABBoJmAgAA2AhAgAEEeNgIMQQAhEAzIAQsgAEEANgIACyAAQYASOwEqIAAgF0EBaiIBIAIQqICAgAAiEA0BIAEhAQtBxwAhEAysAQsgEEEVRw2DASAAQdEANgIcIAAgATYCFCAAQeOXgIAANgIQIABBFTYCDEEAIRAMxAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDF4LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMwwELIABBADYCHCAAIBQ2AhQgAEHBqICAADYCECAAQQc2AgwgAEEANgIAQQAhEAzCAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAzBAQtBACEQIABBADYCHCAAIAE2AhQgAEGAkYCAADYCECAAQQk2AgwMwAELIBBBFUYNfSAAQQA2AhwgACABNgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAy/AQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgAUEBaiEBAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBAJAIAAgECABEK2AgIAAIhANACABIQEMXAsgAEHYADYCHCAAIAE2AhQgACAQNgIMQQAhEAy+AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMrQELIABB2QA2AhwgACABNgIUIAAgBDYCDEEAIRAMvQELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKsBCyAAQdoANgIcIAAgATYCFCAAIAQ2AgxBACEQDLwBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQypAQsgAEHcADYCHCAAIAE2AhQgACAENgIMQQAhEAy7AQsCQCABLQAAQVBqIhBB/wFxQQpPDQAgACAQOgAqIAFBAWohAUHPACEQDKIBCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQynAQsgAEHeADYCHCAAIAE2AhQgACAENgIMQQAhEAy6AQsgAEEANgIAIBdBAWohAQJAIAAtAClBI08NACABIQEMWQsgAEEANgIcIAAgATYCFCAAQdOJgIAANgIQIABBCDYCDEEAIRAMuQELIABBADYCAAtBACEQIABBADYCHCAAIAE2AhQgAEGQs4CAADYCECAAQQg2AgwMtwELIABBADYCACAXQQFqIQECQCAALQApQSFHDQAgASEBDFYLIABBADYCHCAAIAE2AhQgAEGbioCAADYCECAAQQg2AgxBACEQDLYBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKSIQQV1qQQtPDQAgASEBDFULAkAgEEEGSw0AQQEgEHRBygBxRQ0AIAEhAQxVC0EAIRAgAEEANgIcIAAgATYCFCAAQfeJgIAANgIQIABBCDYCDAy1AQsgEEEVRg1xIABBADYCHCAAIAE2AhQgAEG5jYCAADYCECAAQRo2AgxBACEQDLQBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxUCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLMBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDLIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDLEBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxRCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDLABCyAAQQA2AhwgACABNgIUIABBxoqAgAA2AhAgAEEHNgIMQQAhEAyvAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAyuAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMSQsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAytAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMTQsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAysAQsgAEEANgIcIAAgATYCFCAAQdyIgIAANgIQIABBBzYCDEEAIRAMqwELIBBBP0cNASABQQFqIQELQQUhEAyQAQtBACEQIABBADYCHCAAIAE2AhQgAEH9koCAADYCECAAQQc2AgwMqAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMpwELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEILIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMpgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDEYLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMpQELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0gA2AhwgACAUNgIUIAAgATYCDEEAIRAMpAELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDD8LIABB0wA2AhwgACAUNgIUIAAgATYCDEEAIRAMowELIAAoAgQhASAAQQA2AgQCQCAAIAEgFBCngICAACIBDQAgFCEBDEMLIABB5QA2AhwgACAUNgIUIAAgATYCDEEAIRAMogELIABBADYCHCAAIBQ2AhQgAEHDj4CAADYCECAAQQc2AgxBACEQDKEBCyAAQQA2AhwgACABNgIUIABBw4+AgAA2AhAgAEEHNgIMQQAhEAygAQtBACEQIABBADYCHCAAIBQ2AhQgAEGMnICAADYCECAAQQc2AgwMnwELIABBADYCHCAAIBQ2AhQgAEGMnICAADYCECAAQQc2AgxBACEQDJ4BCyAAQQA2AhwgACAUNgIUIABB/pGAgAA2AhAgAEEHNgIMQQAhEAydAQsgAEEANgIcIAAgATYCFCAAQY6bgIAANgIQIABBBjYCDEEAIRAMnAELIBBBFUYNVyAAQQA2AhwgACABNgIUIABBzI6AgAA2AhAgAEEgNgIMQQAhEAybAQsgAEEANgIAIBBBAWohAUEkIRALIAAgEDoAKSAAKAIEIRAgAEEANgIEIAAgECABEKuAgIAAIhANVCABIQEMPgsgAEEANgIAC0EAIRAgAEEANgIcIAAgBDYCFCAAQfGbgIAANgIQIABBBjYCDAyXAQsgAUEVRg1QIABBADYCHCAAIAU2AhQgAEHwjICAADYCECAAQRs2AgxBACEQDJYBCyAAKAIEIQUgAEEANgIEIAAgBSAQEKmAgIAAIgUNASAQQQFqIQULQa0BIRAMewsgAEHBATYCHCAAIAU2AgwgACAQQQFqNgIUQQAhEAyTAQsgACgCBCEGIABBADYCBCAAIAYgEBCpgICAACIGDQEgEEEBaiEGC0GuASEQDHgLIABBwgE2AhwgACAGNgIMIAAgEEEBajYCFEEAIRAMkAELIABBADYCHCAAIAc2AhQgAEGXi4CAADYCECAAQQ02AgxBACEQDI8BCyAAQQA2AhwgACAINgIUIABB45CAgAA2AhAgAEEJNgIMQQAhEAyOAQsgAEEANgIcIAAgCDYCFCAAQZSNgIAANgIQIABBITYCDEEAIRAMjQELQQEhFkEAIRdBACEUQQEhEAsgACAQOgArIAlBAWohCAJAAkAgAC0ALUEQcQ0AAkACQAJAIAAtACoOAwEAAgQLIBZFDQMMAgsgFA0BDAILIBdFDQELIAAoAgQhECAAQQA2AgQgACAQIAgQrYCAgAAiEEUNPSAAQckBNgIcIAAgCDYCFCAAIBA2AgxBACEQDIwBCyAAKAIEIQQgAEEANgIEIAAgBCAIEK2AgIAAIgRFDXYgAEHKATYCHCAAIAg2AhQgACAENgIMQQAhEAyLAQsgACgCBCEEIABBADYCBCAAIAQgCRCtgICAACIERQ10IABBywE2AhwgACAJNgIUIAAgBDYCDEEAIRAMigELIAAoAgQhBCAAQQA2AgQgACAEIAoQrYCAgAAiBEUNciAAQc0BNgIcIAAgCjYCFCAAIAQ2AgxBACEQDIkBCwJAIAstAABBUGoiEEH/AXFBCk8NACAAIBA6ACogC0EBaiEKQbYBIRAMcAsgACgCBCEEIABBADYCBCAAIAQgCxCtgICAACIERQ1wIABBzwE2AhwgACALNgIUIAAgBDYCDEEAIRAMiAELIABBADYCHCAAIAQ2AhQgAEGQs4CAADYCECAAQQg2AgwgAEEANgIAQQAhEAyHAQsgAUEVRg0/IABBADYCHCAAIAw2AhQgAEHMjoCAADYCECAAQSA2AgxBACEQDIYBCyAAQYEEOwEoIAAoAgQhECAAQgA3AwAgACAQIAxBAWoiDBCrgICAACIQRQ04IABB0wE2AhwgACAMNgIUIAAgEDYCDEEAIRAMhQELIABBADYCAAtBACEQIABBADYCHCAAIAQ2AhQgAEHYm4CAADYCECAAQQg2AgwMgwELIAAoAgQhECAAQgA3AwAgACAQIAtBAWoiCxCrgICAACIQDQFBxgEhEAxpCyAAQQI6ACgMVQsgAEHVATYCHCAAIAs2AhQgACAQNgIMQQAhEAyAAQsgEEEVRg03IABBADYCHCAAIAQ2AhQgAEGkjICAADYCECAAQRA2AgxBACEQDH8LIAAtADRBAUcNNCAAIAQgAhC8gICAACIQRQ00IBBBFUcNNSAAQdwBNgIcIAAgBDYCFCAAQdWWgIAANgIQIABBFTYCDEEAIRAMfgtBACEQIABBADYCHCAAQa+LgIAANgIQIABBAjYCDCAAIBRBAWo2AhQMfQtBACEQDGMLQQIhEAxiC0ENIRAMYQtBDyEQDGALQSUhEAxfC0ETIRAMXgtBFSEQDF0LQRYhEAxcC0EXIRAMWwtBGCEQDFoLQRkhEAxZC0EaIRAMWAtBGyEQDFcLQRwhEAxWC0EdIRAMVQtBHyEQDFQLQSEhEAxTC0EjIRAMUgtBxgAhEAxRC0EuIRAMUAtBLyEQDE8LQTshEAxOC0E9IRAMTQtByAAhEAxMC0HJACEQDEsLQcsAIRAMSgtBzAAhEAxJC0HOACEQDEgLQdEAIRAMRwtB1QAhEAxGC0HYACEQDEULQdkAIRAMRAtB2wAhEAxDC0HkACEQDEILQeUAIRAMQQtB8QAhEAxAC0H0ACEQDD8LQY0BIRAMPgtBlwEhEAw9C0GpASEQDDwLQawBIRAMOwtBwAEhEAw6C0G5ASEQDDkLQa8BIRAMOAtBsQEhEAw3C0GyASEQDDYLQbQBIRAMNQtBtQEhEAw0C0G6ASEQDDMLQb0BIRAMMgtBvwEhEAwxC0HBASEQDDALIABBADYCHCAAIAQ2AhQgAEHpi4CAADYCECAAQR82AgxBACEQDEgLIABB2wE2AhwgACAENgIUIABB+paAgAA2AhAgAEEVNgIMQQAhEAxHCyAAQfgANgIcIAAgDDYCFCAAQcqYgIAANgIQIABBFTYCDEEAIRAMRgsgAEHRADYCHCAAIAU2AhQgAEGwl4CAADYCECAAQRU2AgxBACEQDEULIABB+QA2AhwgACABNgIUIAAgEDYCDEEAIRAMRAsgAEH4ADYCHCAAIAE2AhQgAEHKmICAADYCECAAQRU2AgxBACEQDEMLIABB5AA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhEAxCCyAAQdcANgIcIAAgATYCFCAAQcmXgIAANgIQIABBFTYCDEEAIRAMQQsgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAIRAMQAsgAEHCADYCHCAAIAE2AhQgAEHjmICAADYCECAAQRU2AgxBACEQDD8LIABBADYCBCAAIA8gDxCxgICAACIERQ0BIABBOjYCHCAAIAQ2AgwgACAPQQFqNgIUQQAhEAw+CyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBEUNACAAQTs2AhwgACAENgIMIAAgAUEBajYCFEEAIRAMPgsgAUEBaiEBDC0LIA9BAWohAQwtCyAAQQA2AhwgACAPNgIUIABB5JKAgAA2AhAgAEEENgIMQQAhEAw7CyAAQTY2AhwgACAENgIUIAAgAjYCDEEAIRAMOgsgAEEuNgIcIAAgDjYCFCAAIAQ2AgxBACEQDDkLIABB0AA2AhwgACABNgIUIABBkZiAgAA2AhAgAEEVNgIMQQAhEAw4CyANQQFqIQEMLAsgAEEVNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMNgsgAEEbNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMNQsgAEEPNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMNAsgAEELNgIcIAAgATYCFCAAQZGXgIAANgIQIABBFTYCDEEAIRAMMwsgAEEaNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMMgsgAEELNgIcIAAgATYCFCAAQYKZgIAANgIQIABBFTYCDEEAIRAMMQsgAEEKNgIcIAAgATYCFCAAQeSWgIAANgIQIABBFTYCDEEAIRAMMAsgAEEeNgIcIAAgATYCFCAAQfmXgIAANgIQIABBFTYCDEEAIRAMLwsgAEEANgIcIAAgEDYCFCAAQdqNgIAANgIQIABBFDYCDEEAIRAMLgsgAEEENgIcIAAgATYCFCAAQbCYgIAANgIQIABBFTYCDEEAIRAMLQsgAEEANgIAIAtBAWohCwtBuAEhEAwSCyAAQQA2AgAgEEEBaiEBQfUAIRAMEQsgASEBAkAgAC0AKUEFRw0AQeMAIRAMEQtB4gAhEAwQC0EAIRAgAEEANgIcIABB5JGAgAA2AhAgAEEHNgIMIAAgFEEBajYCFAwoCyAAQQA2AgAgF0EBaiEBQcAAIRAMDgtBASEBCyAAIAE6ACwgAEEANgIAIBdBAWohAQtBKCEQDAsLIAEhAQtBOCEQDAkLAkAgASIPIAJGDQADQAJAIA8tAABBgL6AgABqLQAAIgFBAUYNACABQQJHDQMgD0EBaiEBDAQLIA9BAWoiDyACRw0AC0E+IRAMIgtBPiEQDCELIABBADoALCAPIQEMAQtBCyEQDAYLQTohEAwFCyABQQFqIQFBLSEQDAQLIAAgAToALCAAQQA2AgAgFkEBaiEBQQwhEAwDCyAAQQA2AgAgF0EBaiEBQQohEAwCCyAAQQA2AgALIABBADoALCANIQFBCSEQDAALC0EAIRAgAEEANgIcIAAgCzYCFCAAQc2QgIAANgIQIABBCTYCDAwXC0EAIRAgAEEANgIcIAAgCjYCFCAAQemKgIAANgIQIABBCTYCDAwWC0EAIRAgAEEANgIcIAAgCTYCFCAAQbeQgIAANgIQIABBCTYCDAwVC0EAIRAgAEEANgIcIAAgCDYCFCAAQZyRgIAANgIQIABBCTYCDAwUC0EAIRAgAEEANgIcIAAgATYCFCAAQc2QgIAANgIQIABBCTYCDAwTC0EAIRAgAEEANgIcIAAgATYCFCAAQemKgIAANgIQIABBCTYCDAwSC0EAIRAgAEEANgIcIAAgATYCFCAAQbeQgIAANgIQIABBCTYCDAwRC0EAIRAgAEEANgIcIAAgATYCFCAAQZyRgIAANgIQIABBCTYCDAwQC0EAIRAgAEEANgIcIAAgATYCFCAAQZeVgIAANgIQIABBDzYCDAwPC0EAIRAgAEEANgIcIAAgATYCFCAAQZeVgIAANgIQIABBDzYCDAwOC0EAIRAgAEEANgIcIAAgATYCFCAAQcCSgIAANgIQIABBCzYCDAwNC0EAIRAgAEEANgIcIAAgATYCFCAAQZWJgIAANgIQIABBCzYCDAwMC0EAIRAgAEEANgIcIAAgATYCFCAAQeGPgIAANgIQIABBCjYCDAwLC0EAIRAgAEEANgIcIAAgATYCFCAAQfuPgIAANgIQIABBCjYCDAwKC0EAIRAgAEEANgIcIAAgATYCFCAAQfGZgIAANgIQIABBAjYCDAwJC0EAIRAgAEEANgIcIAAgATYCFCAAQcSUgIAANgIQIABBAjYCDAwIC0EAIRAgAEEANgIcIAAgATYCFCAAQfKVgIAANgIQIABBAjYCDAwHCyAAQQI2AhwgACABNgIUIABBnJqAgAA2AhAgAEEWNgIMQQAhEAwGC0EBIRAMBQtB1AAhECABIgQgAkYNBCADQQhqIAAgBCACQdjCgIAAQQoQxYCAgAAgAygCDCEEIAMoAggOAwEEAgALEMqAgIAAAAsgAEEANgIcIABBtZqAgAA2AhAgAEEXNgIMIAAgBEEBajYCFEEAIRAMAgsgAEEANgIcIAAgBDYCFCAAQcqagIAANgIQIABBCTYCDEEAIRAMAQsCQCABIgQgAkcNAEEiIRAMAQsgAEGJgICAADYCCCAAIAQ2AgRBISEQCyADQRBqJICAgIAAIBALrwEBAn8gASgCACEGAkACQCACIANGDQAgBCAGaiEEIAYgA2ogAmshByACIAZBf3MgBWoiBmohBQNAAkAgAi0AACAELQAARg0AQQIhBAwDCwJAIAYNAEEAIQQgBSECDAMLIAZBf2ohBiAEQQFqIQQgAkEBaiICIANHDQALIAchBiADIQILIABBATYCACABIAY2AgAgACACNgIEDwsgAUEANgIAIAAgBDYCACAAIAI2AgQLCgAgABDHgICAAAvyNgELfyOAgICAAEEQayIBJICAgIAAAkBBACgCoNCAgAANAEEAEMuAgIAAQYDUhIAAayICQdkASQ0AQQAhAwJAQQAoAuDTgIAAIgQNAEEAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEIakFwcUHYqtWqBXMiBDYC4NOAgABBAEEANgL004CAAEEAQQA2AsTTgIAAC0EAIAI2AszTgIAAQQBBgNSEgAA2AsjTgIAAQQBBgNSEgAA2ApjQgIAAQQAgBDYCrNCAgABBAEF/NgKo0ICAAANAIANBxNCAgABqIANBuNCAgABqIgQ2AgAgBCADQbDQgIAAaiIFNgIAIANBvNCAgABqIAU2AgAgA0HM0ICAAGogA0HA0ICAAGoiBTYCACAFIAQ2AgAgA0HU0ICAAGogA0HI0ICAAGoiBDYCACAEIAU2AgAgA0HQ0ICAAGogBDYCACADQSBqIgNBgAJHDQALQYDUhIAAQXhBgNSEgABrQQ9xQQBBgNSEgABBCGpBD3EbIgNqIgRBBGogAkFIaiIFIANrIgNBAXI2AgBBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAQ2AqDQgIAAQYDUhIAAIAVqQTg2AgQLAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABB7AFLDQACQEEAKAKI0ICAACIGQRAgAEETakFwcSAAQQtJGyICQQN2IgR2IgNBA3FFDQACQAJAIANBAXEgBHJBAXMiBUEDdCIEQbDQgIAAaiIDIARBuNCAgABqKAIAIgQoAggiAkcNAEEAIAZBfiAFd3E2AojQgIAADAELIAMgAjYCCCACIAM2AgwLIARBCGohAyAEIAVBA3QiBUEDcjYCBCAEIAVqIgQgBCgCBEEBcjYCBAwMCyACQQAoApDQgIAAIgdNDQECQCADRQ0AAkACQCADIAR0QQIgBHQiA0EAIANrcnEiA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqIgRBA3QiA0Gw0ICAAGoiBSADQbjQgIAAaigCACIDKAIIIgBHDQBBACAGQX4gBHdxIgY2AojQgIAADAELIAUgADYCCCAAIAU2AgwLIAMgAkEDcjYCBCADIARBA3QiBGogBCACayIFNgIAIAMgAmoiACAFQQFyNgIEAkAgB0UNACAHQXhxQbDQgIAAaiECQQAoApzQgIAAIQQCQAJAIAZBASAHQQN2dCIIcQ0AQQAgBiAIcjYCiNCAgAAgAiEIDAELIAIoAgghCAsgCCAENgIMIAIgBDYCCCAEIAI2AgwgBCAINgIICyADQQhqIQNBACAANgKc0ICAAEEAIAU2ApDQgIAADAwLQQAoAozQgIAAIglFDQEgCUEAIAlrcUF/aiIDIANBDHZBEHEiA3YiBEEFdkEIcSIFIANyIAQgBXYiA0ECdkEEcSIEciADIAR2IgNBAXZBAnEiBHIgAyAEdiIDQQF2QQFxIgRyIAMgBHZqQQJ0QbjSgIAAaigCACIAKAIEQXhxIAJrIQQgACEFAkADQAJAIAUoAhAiAw0AIAVBFGooAgAiA0UNAgsgAygCBEF4cSACayIFIAQgBSAESSIFGyEEIAMgACAFGyEAIAMhBQwACwsgACgCGCEKAkAgACgCDCIIIABGDQAgACgCCCIDQQAoApjQgIAASRogCCADNgIIIAMgCDYCDAwLCwJAIABBFGoiBSgCACIDDQAgACgCECIDRQ0DIABBEGohBQsDQCAFIQsgAyIIQRRqIgUoAgAiAw0AIAhBEGohBSAIKAIQIgMNAAsgC0EANgIADAoLQX8hAiAAQb9/Sw0AIABBE2oiA0FwcSECQQAoAozQgIAAIgdFDQBBACELAkAgAkGAAkkNAEEfIQsgAkH///8HSw0AIANBCHYiAyADQYD+P2pBEHZBCHEiA3QiBCAEQYDgH2pBEHZBBHEiBHQiBSAFQYCAD2pBEHZBAnEiBXRBD3YgAyAEciAFcmsiA0EBdCACIANBFWp2QQFxckEcaiELC0EAIAJrIQQCQAJAAkACQCALQQJ0QbjSgIAAaigCACIFDQBBACEDQQAhCAwBC0EAIQMgAkEAQRkgC0EBdmsgC0EfRht0IQBBACEIA0ACQCAFKAIEQXhxIAJrIgYgBE8NACAGIQQgBSEIIAYNAEEAIQQgBSEIIAUhAwwDCyADIAVBFGooAgAiBiAGIAUgAEEddkEEcWpBEGooAgAiBUYbIAMgBhshAyAAQQF0IQAgBQ0ACwsCQCADIAhyDQBBACEIQQIgC3QiA0EAIANrciAHcSIDRQ0DIANBACADa3FBf2oiAyADQQx2QRBxIgN2IgVBBXZBCHEiACADciAFIAB2IgNBAnZBBHEiBXIgAyAFdiIDQQF2QQJxIgVyIAMgBXYiA0EBdkEBcSIFciADIAV2akECdEG40oCAAGooAgAhAwsgA0UNAQsDQCADKAIEQXhxIAJrIgYgBEkhAAJAIAMoAhAiBQ0AIANBFGooAgAhBQsgBiAEIAAbIQQgAyAIIAAbIQggBSEDIAUNAAsLIAhFDQAgBEEAKAKQ0ICAACACa08NACAIKAIYIQsCQCAIKAIMIgAgCEYNACAIKAIIIgNBACgCmNCAgABJGiAAIAM2AgggAyAANgIMDAkLAkAgCEEUaiIFKAIAIgMNACAIKAIQIgNFDQMgCEEQaiEFCwNAIAUhBiADIgBBFGoiBSgCACIDDQAgAEEQaiEFIAAoAhAiAw0ACyAGQQA2AgAMCAsCQEEAKAKQ0ICAACIDIAJJDQBBACgCnNCAgAAhBAJAAkAgAyACayIFQRBJDQAgBCACaiIAIAVBAXI2AgRBACAFNgKQ0ICAAEEAIAA2ApzQgIAAIAQgA2ogBTYCACAEIAJBA3I2AgQMAQsgBCADQQNyNgIEIAQgA2oiAyADKAIEQQFyNgIEQQBBADYCnNCAgABBAEEANgKQ0ICAAAsgBEEIaiEDDAoLAkBBACgClNCAgAAiACACTQ0AQQAoAqDQgIAAIgMgAmoiBCAAIAJrIgVBAXI2AgRBACAFNgKU0ICAAEEAIAQ2AqDQgIAAIAMgAkEDcjYCBCADQQhqIQMMCgsCQAJAQQAoAuDTgIAARQ0AQQAoAujTgIAAIQQMAQtBAEJ/NwLs04CAAEEAQoCAhICAgMAANwLk04CAAEEAIAFBDGpBcHFB2KrVqgVzNgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgABBgIAEIQQLQQAhAwJAIAQgAkHHAGoiB2oiBkEAIARrIgtxIgggAksNAEEAQTA2AvjTgIAADAoLAkBBACgCwNOAgAAiA0UNAAJAQQAoArjTgIAAIgQgCGoiBSAETQ0AIAUgA00NAQtBACEDQQBBMDYC+NOAgAAMCgtBAC0AxNOAgABBBHENBAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQAJAIAMoAgAiBSAESw0AIAUgAygCBGogBEsNAwsgAygCCCIDDQALC0EAEMuAgIAAIgBBf0YNBSAIIQYCQEEAKALk04CAACIDQX9qIgQgAHFFDQAgCCAAayAEIABqQQAgA2txaiEGCyAGIAJNDQUgBkH+////B0sNBQJAQQAoAsDTgIAAIgNFDQBBACgCuNOAgAAiBCAGaiIFIARNDQYgBSADSw0GCyAGEMuAgIAAIgMgAEcNAQwHCyAGIABrIAtxIgZB/v///wdLDQQgBhDLgICAACIAIAMoAgAgAygCBGpGDQMgACEDCwJAIANBf0YNACACQcgAaiAGTQ0AAkAgByAGa0EAKALo04CAACIEakEAIARrcSIEQf7///8HTQ0AIAMhAAwHCwJAIAQQy4CAgABBf0YNACAEIAZqIQYgAyEADAcLQQAgBmsQy4CAgAAaDAQLIAMhACADQX9HDQUMAwtBACEIDAcLQQAhAAwFCyAAQX9HDQILQQBBACgCxNOAgABBBHI2AsTTgIAACyAIQf7///8HSw0BIAgQy4CAgAAhAEEAEMuAgIAAIQMgAEF/Rg0BIANBf0YNASAAIANPDQEgAyAAayIGIAJBOGpNDQELQQBBACgCuNOAgAAgBmoiAzYCuNOAgAACQCADQQAoArzTgIAATQ0AQQAgAzYCvNOAgAALAkACQAJAAkBBACgCoNCAgAAiBEUNAEHI04CAACEDA0AgACADKAIAIgUgAygCBCIIakYNAiADKAIIIgMNAAwDCwsCQAJAQQAoApjQgIAAIgNFDQAgACADTw0BC0EAIAA2ApjQgIAAC0EAIQNBACAGNgLM04CAAEEAIAA2AsjTgIAAQQBBfzYCqNCAgABBAEEAKALg04CAADYCrNCAgABBAEEANgLU04CAAANAIANBxNCAgABqIANBuNCAgABqIgQ2AgAgBCADQbDQgIAAaiIFNgIAIANBvNCAgABqIAU2AgAgA0HM0ICAAGogA0HA0ICAAGoiBTYCACAFIAQ2AgAgA0HU0ICAAGogA0HI0ICAAGoiBDYCACAEIAU2AgAgA0HQ0ICAAGogBDYCACADQSBqIgNBgAJHDQALIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgQgBkFIaiIFIANrIgNBAXI2AgRBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAQ2AqDQgIAAIAAgBWpBODYCBAwCCyADLQAMQQhxDQAgBCAFSQ0AIAQgAE8NACAEQXggBGtBD3FBACAEQQhqQQ9xGyIFaiIAQQAoApTQgIAAIAZqIgsgBWsiBUEBcjYCBCADIAggBmo2AgRBAEEAKALw04CAADYCpNCAgABBACAFNgKU0ICAAEEAIAA2AqDQgIAAIAQgC2pBODYCBAwBCwJAIABBACgCmNCAgAAiCE8NAEEAIAA2ApjQgIAAIAAhCAsgACAGaiEFQcjTgIAAIQMCQAJAAkACQAJAAkACQANAIAMoAgAgBUYNASADKAIIIgMNAAwCCwsgAy0ADEEIcUUNAQtByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiIFIARLDQMLIAMoAgghAwwACwsgAyAANgIAIAMgAygCBCAGajYCBCAAQXggAGtBD3FBACAAQQhqQQ9xG2oiCyACQQNyNgIEIAVBeCAFa0EPcUEAIAVBCGpBD3EbaiIGIAsgAmoiAmshAwJAIAYgBEcNAEEAIAI2AqDQgIAAQQBBACgClNCAgAAgA2oiAzYClNCAgAAgAiADQQFyNgIEDAMLAkAgBkEAKAKc0ICAAEcNAEEAIAI2ApzQgIAAQQBBACgCkNCAgAAgA2oiAzYCkNCAgAAgAiADQQFyNgIEIAIgA2ogAzYCAAwDCwJAIAYoAgQiBEEDcUEBRw0AIARBeHEhBwJAAkAgBEH/AUsNACAGKAIIIgUgBEEDdiIIQQN0QbDQgIAAaiIARhoCQCAGKAIMIgQgBUcNAEEAQQAoAojQgIAAQX4gCHdxNgKI0ICAAAwCCyAEIABGGiAEIAU2AgggBSAENgIMDAELIAYoAhghCQJAAkAgBigCDCIAIAZGDQAgBigCCCIEIAhJGiAAIAQ2AgggBCAANgIMDAELAkAgBkEUaiIEKAIAIgUNACAGQRBqIgQoAgAiBQ0AQQAhAAwBCwNAIAQhCCAFIgBBFGoiBCgCACIFDQAgAEEQaiEEIAAoAhAiBQ0ACyAIQQA2AgALIAlFDQACQAJAIAYgBigCHCIFQQJ0QbjSgIAAaiIEKAIARw0AIAQgADYCACAADQFBAEEAKAKM0ICAAEF+IAV3cTYCjNCAgAAMAgsgCUEQQRQgCSgCECAGRhtqIAA2AgAgAEUNAQsgACAJNgIYAkAgBigCECIERQ0AIAAgBDYCECAEIAA2AhgLIAYoAhQiBEUNACAAQRRqIAQ2AgAgBCAANgIYCyAHIANqIQMgBiAHaiIGKAIEIQQLIAYgBEF+cTYCBCACIANqIAM2AgAgAiADQQFyNgIEAkAgA0H/AUsNACADQXhxQbDQgIAAaiEEAkACQEEAKAKI0ICAACIFQQEgA0EDdnQiA3ENAEEAIAUgA3I2AojQgIAAIAQhAwwBCyAEKAIIIQMLIAMgAjYCDCAEIAI2AgggAiAENgIMIAIgAzYCCAwDC0EfIQQCQCADQf///wdLDQAgA0EIdiIEIARBgP4/akEQdkEIcSIEdCIFIAVBgOAfakEQdkEEcSIFdCIAIABBgIAPakEQdkECcSIAdEEPdiAEIAVyIAByayIEQQF0IAMgBEEVanZBAXFyQRxqIQQLIAIgBDYCHCACQgA3AhAgBEECdEG40oCAAGohBQJAQQAoAozQgIAAIgBBASAEdCIIcQ0AIAUgAjYCAEEAIAAgCHI2AozQgIAAIAIgBTYCGCACIAI2AgggAiACNgIMDAMLIANBAEEZIARBAXZrIARBH0YbdCEEIAUoAgAhAANAIAAiBSgCBEF4cSADRg0CIARBHXYhACAEQQF0IQQgBSAAQQRxakEQaiIIKAIAIgANAAsgCCACNgIAIAIgBTYCGCACIAI2AgwgAiACNgIIDAILIABBeCAAa0EPcUEAIABBCGpBD3EbIgNqIgsgBkFIaiIIIANrIgNBAXI2AgQgACAIakE4NgIEIAQgBUE3IAVrQQ9xQQAgBUFJakEPcRtqQUFqIgggCCAEQRBqSRsiCEEjNgIEQQBBACgC8NOAgAA2AqTQgIAAQQAgAzYClNCAgABBACALNgKg0ICAACAIQRBqQQApAtDTgIAANwIAIAhBACkCyNOAgAA3AghBACAIQQhqNgLQ04CAAEEAIAY2AszTgIAAQQAgADYCyNOAgABBAEEANgLU04CAACAIQSRqIQMDQCADQQc2AgAgA0EEaiIDIAVJDQALIAggBEYNAyAIIAgoAgRBfnE2AgQgCCAIIARrIgA2AgAgBCAAQQFyNgIEAkAgAEH/AUsNACAAQXhxQbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgAEEDdnQiAHENAEEAIAUgAHI2AojQgIAAIAMhBQwBCyADKAIIIQULIAUgBDYCDCADIAQ2AgggBCADNgIMIAQgBTYCCAwEC0EfIQMCQCAAQf///wdLDQAgAEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCIIIAhBgIAPakEQdkECcSIIdEEPdiADIAVyIAhyayIDQQF0IAAgA0EVanZBAXFyQRxqIQMLIAQgAzYCHCAEQgA3AhAgA0ECdEG40oCAAGohBQJAQQAoAozQgIAAIghBASADdCIGcQ0AIAUgBDYCAEEAIAggBnI2AozQgIAAIAQgBTYCGCAEIAQ2AgggBCAENgIMDAQLIABBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhCANAIAgiBSgCBEF4cSAARg0DIANBHXYhCCADQQF0IQMgBSAIQQRxakEQaiIGKAIAIggNAAsgBiAENgIAIAQgBTYCGCAEIAQ2AgwgBCAENgIIDAMLIAUoAggiAyACNgIMIAUgAjYCCCACQQA2AhggAiAFNgIMIAIgAzYCCAsgC0EIaiEDDAULIAUoAggiAyAENgIMIAUgBDYCCCAEQQA2AhggBCAFNgIMIAQgAzYCCAtBACgClNCAgAAiAyACTQ0AQQAoAqDQgIAAIgQgAmoiBSADIAJrIgNBAXI2AgRBACADNgKU0ICAAEEAIAU2AqDQgIAAIAQgAkEDcjYCBCAEQQhqIQMMAwtBACEDQQBBMDYC+NOAgAAMAgsCQCALRQ0AAkACQCAIIAgoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAA2AgAgAA0BQQAgB0F+IAV3cSIHNgKM0ICAAAwCCyALQRBBFCALKAIQIAhGG2ogADYCACAARQ0BCyAAIAs2AhgCQCAIKAIQIgNFDQAgACADNgIQIAMgADYCGAsgCEEUaigCACIDRQ0AIABBFGogAzYCACADIAA2AhgLAkACQCAEQQ9LDQAgCCAEIAJqIgNBA3I2AgQgCCADaiIDIAMoAgRBAXI2AgQMAQsgCCACaiIAIARBAXI2AgQgCCACQQNyNgIEIAAgBGogBDYCAAJAIARB/wFLDQAgBEF4cUGw0ICAAGohAwJAAkBBACgCiNCAgAAiBUEBIARBA3Z0IgRxDQBBACAFIARyNgKI0ICAACADIQQMAQsgAygCCCEECyAEIAA2AgwgAyAANgIIIAAgAzYCDCAAIAQ2AggMAQtBHyEDAkAgBEH///8HSw0AIARBCHYiAyADQYD+P2pBEHZBCHEiA3QiBSAFQYDgH2pBEHZBBHEiBXQiAiACQYCAD2pBEHZBAnEiAnRBD3YgAyAFciACcmsiA0EBdCAEIANBFWp2QQFxckEcaiEDCyAAIAM2AhwgAEIANwIQIANBAnRBuNKAgABqIQUCQCAHQQEgA3QiAnENACAFIAA2AgBBACAHIAJyNgKM0ICAACAAIAU2AhggACAANgIIIAAgADYCDAwBCyAEQQBBGSADQQF2ayADQR9GG3QhAyAFKAIAIQICQANAIAIiBSgCBEF4cSAERg0BIANBHXYhAiADQQF0IQMgBSACQQRxakEQaiIGKAIAIgINAAsgBiAANgIAIAAgBTYCGCAAIAA2AgwgACAANgIIDAELIAUoAggiAyAANgIMIAUgADYCCCAAQQA2AhggACAFNgIMIAAgAzYCCAsgCEEIaiEDDAELAkAgCkUNAAJAAkAgACAAKAIcIgVBAnRBuNKAgABqIgMoAgBHDQAgAyAINgIAIAgNAUEAIAlBfiAFd3E2AozQgIAADAILIApBEEEUIAooAhAgAEYbaiAINgIAIAhFDQELIAggCjYCGAJAIAAoAhAiA0UNACAIIAM2AhAgAyAINgIYCyAAQRRqKAIAIgNFDQAgCEEUaiADNgIAIAMgCDYCGAsCQAJAIARBD0sNACAAIAQgAmoiA0EDcjYCBCAAIANqIgMgAygCBEEBcjYCBAwBCyAAIAJqIgUgBEEBcjYCBCAAIAJBA3I2AgQgBSAEaiAENgIAAkAgB0UNACAHQXhxQbDQgIAAaiECQQAoApzQgIAAIQMCQAJAQQEgB0EDdnQiCCAGcQ0AQQAgCCAGcjYCiNCAgAAgAiEIDAELIAIoAgghCAsgCCADNgIMIAIgAzYCCCADIAI2AgwgAyAINgIIC0EAIAU2ApzQgIAAQQAgBDYCkNCAgAALIABBCGohAwsgAUEQaiSAgICAACADCwoAIAAQyYCAgAAL4g0BB38CQCAARQ0AIABBeGoiASAAQXxqKAIAIgJBeHEiAGohAwJAIAJBAXENACACQQNxRQ0BIAEgASgCACICayIBQQAoApjQgIAAIgRJDQEgAiAAaiEAAkAgAUEAKAKc0ICAAEYNAAJAIAJB/wFLDQAgASgCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgASgCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAwsgAiAGRhogAiAENgIIIAQgAjYCDAwCCyABKAIYIQcCQAJAIAEoAgwiBiABRg0AIAEoAggiAiAESRogBiACNgIIIAIgBjYCDAwBCwJAIAFBFGoiAigCACIEDQAgAUEQaiICKAIAIgQNAEEAIQYMAQsDQCACIQUgBCIGQRRqIgIoAgAiBA0AIAZBEGohAiAGKAIQIgQNAAsgBUEANgIACyAHRQ0BAkACQCABIAEoAhwiBEECdEG40oCAAGoiAigCAEcNACACIAY2AgAgBg0BQQBBACgCjNCAgABBfiAEd3E2AozQgIAADAMLIAdBEEEUIAcoAhAgAUYbaiAGNgIAIAZFDQILIAYgBzYCGAJAIAEoAhAiAkUNACAGIAI2AhAgAiAGNgIYCyABKAIUIgJFDQEgBkEUaiACNgIAIAIgBjYCGAwBCyADKAIEIgJBA3FBA0cNACADIAJBfnE2AgRBACAANgKQ0ICAACABIABqIAA2AgAgASAAQQFyNgIEDwsgASADTw0AIAMoAgQiAkEBcUUNAAJAAkAgAkECcQ0AAkAgA0EAKAKg0ICAAEcNAEEAIAE2AqDQgIAAQQBBACgClNCAgAAgAGoiADYClNCAgAAgASAAQQFyNgIEIAFBACgCnNCAgABHDQNBAEEANgKQ0ICAAEEAQQA2ApzQgIAADwsCQCADQQAoApzQgIAARw0AQQAgATYCnNCAgABBAEEAKAKQ0ICAACAAaiIANgKQ0ICAACABIABBAXI2AgQgASAAaiAANgIADwsgAkF4cSAAaiEAAkACQCACQf8BSw0AIAMoAggiBCACQQN2IgVBA3RBsNCAgABqIgZGGgJAIAMoAgwiAiAERw0AQQBBACgCiNCAgABBfiAFd3E2AojQgIAADAILIAIgBkYaIAIgBDYCCCAEIAI2AgwMAQsgAygCGCEHAkACQCADKAIMIgYgA0YNACADKAIIIgJBACgCmNCAgABJGiAGIAI2AgggAiAGNgIMDAELAkAgA0EUaiICKAIAIgQNACADQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQACQAJAIAMgAygCHCIEQQJ0QbjSgIAAaiICKAIARw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAgsgB0EQQRQgBygCECADRhtqIAY2AgAgBkUNAQsgBiAHNgIYAkAgAygCECICRQ0AIAYgAjYCECACIAY2AhgLIAMoAhQiAkUNACAGQRRqIAI2AgAgAiAGNgIYCyABIABqIAA2AgAgASAAQQFyNgIEIAFBACgCnNCAgABHDQFBACAANgKQ0ICAAA8LIAMgAkF+cTYCBCABIABqIAA2AgAgASAAQQFyNgIECwJAIABB/wFLDQAgAEF4cUGw0ICAAGohAgJAAkBBACgCiNCAgAAiBEEBIABBA3Z0IgBxDQBBACAEIAByNgKI0ICAACACIQAMAQsgAigCCCEACyAAIAE2AgwgAiABNgIIIAEgAjYCDCABIAA2AggPC0EfIQICQCAAQf///wdLDQAgAEEIdiICIAJBgP4/akEQdkEIcSICdCIEIARBgOAfakEQdkEEcSIEdCIGIAZBgIAPakEQdkECcSIGdEEPdiACIARyIAZyayICQQF0IAAgAkEVanZBAXFyQRxqIQILIAEgAjYCHCABQgA3AhAgAkECdEG40oCAAGohBAJAAkBBACgCjNCAgAAiBkEBIAJ0IgNxDQAgBCABNgIAQQAgBiADcjYCjNCAgAAgASAENgIYIAEgATYCCCABIAE2AgwMAQsgAEEAQRkgAkEBdmsgAkEfRht0IQIgBCgCACEGAkADQCAGIgQoAgRBeHEgAEYNASACQR12IQYgAkEBdCECIAQgBkEEcWpBEGoiAygCACIGDQALIAMgATYCACABIAQ2AhggASABNgIMIAEgATYCCAwBCyAEKAIIIgAgATYCDCAEIAE2AgggAUEANgIYIAEgBDYCDCABIAA2AggLQQBBACgCqNCAgABBf2oiAUF/IAEbNgKo0ICAAAsLBAAAAAtOAAJAIAANAD8AQRB0DwsCQCAAQf//A3ENACAAQX9MDQACQCAAQRB2QAAiAEF/Rw0AQQBBMDYC+NOAgABBfw8LIABBEHQPCxDKgICAAAAL8gICA38BfgJAIAJFDQAgACABOgAAIAIgAGoiA0F/aiABOgAAIAJBA0kNACAAIAE6AAIgACABOgABIANBfWogAToAACADQX5qIAE6AAAgAkEHSQ0AIAAgAToAAyADQXxqIAE6AAAgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIFayICQSBJDQAgAa1CgYCAgBB+IQYgAyAFaiEBA0AgASAGNwMYIAEgBjcDECABIAY3AwggASAGNwMAIAFBIGohASACQWBqIgJBH0sNAAsLIAALC45IAQBBgAgLhkgBAAAAAgAAAAMAAAAAAAAAAAAAAAQAAAAFAAAAAAAAAAAAAAAGAAAABwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEludmFsaWQgY2hhciBpbiB1cmwgcXVlcnkAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9ib2R5AENvbnRlbnQtTGVuZ3RoIG92ZXJmbG93AENodW5rIHNpemUgb3ZlcmZsb3cAUmVzcG9uc2Ugb3ZlcmZsb3cASW52YWxpZCBtZXRob2QgZm9yIEhUVFAveC54IHJlcXVlc3QASW52YWxpZCBtZXRob2QgZm9yIFJUU1AveC54IHJlcXVlc3QARXhwZWN0ZWQgU09VUkNFIG1ldGhvZCBmb3IgSUNFL3gueCByZXF1ZXN0AEludmFsaWQgY2hhciBpbiB1cmwgZnJhZ21lbnQgc3RhcnQARXhwZWN0ZWQgZG90AFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fc3RhdHVzAEludmFsaWQgcmVzcG9uc2Ugc3RhdHVzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWVzc2FnZV9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX21ldGhvZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lYCBjYWxsYmFjayBlcnJvcgBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNlcnZlcgBJbnZhbGlkIGhlYWRlciB2YWx1ZSBjaGFyAEludmFsaWQgaGVhZGVyIGZpZWxkIGNoYXIAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl92ZXJzaW9uAEludmFsaWQgbWlub3IgdmVyc2lvbgBJbnZhbGlkIG1ham9yIHZlcnNpb24ARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgdmVyc2lvbgBFeHBlY3RlZCBDUkxGIGFmdGVyIHZlcnNpb24ASW52YWxpZCBIVFRQIHZlcnNpb24ASW52YWxpZCBoZWFkZXIgdG9rZW4AU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl91cmwASW52YWxpZCBjaGFyYWN0ZXJzIGluIHVybABVbmV4cGVjdGVkIHN0YXJ0IGNoYXIgaW4gdXJsAERvdWJsZSBAIGluIHVybABFbXB0eSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXJhY3RlciBpbiBDb250ZW50LUxlbmd0aABEdXBsaWNhdGUgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyIGluIHVybCBwYXRoAENvbnRlbnQtTGVuZ3RoIGNhbid0IGJlIHByZXNlbnQgd2l0aCBUcmFuc2Zlci1FbmNvZGluZwBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBzaXplAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX3ZhbHVlAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgdmFsdWUATWlzc2luZyBleHBlY3RlZCBMRiBhZnRlciBoZWFkZXIgdmFsdWUASW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIHF1b3RlIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fbmFtZQBJbnZhbGlkIGNoYXJhY3RlciBpbiBjaHVuayBleHRlbnNpb25zIG5hbWUAUGF1c2Ugb24gQ09OTkVDVC9VcGdyYWRlAFBhdXNlIG9uIFBSSS9VcGdyYWRlAEV4cGVjdGVkIEhUVFAvMiBDb25uZWN0aW9uIFByZWZhY2UAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9tZXRob2QARXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgbWV0aG9kAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25faGVhZGVyX2ZpZWxkAFBhdXNlZABJbnZhbGlkIHdvcmQgZW5jb3VudGVyZWQASW52YWxpZCBtZXRob2QgZW5jb3VudGVyZWQAVW5leHBlY3RlZCBjaGFyIGluIHVybCBzY2hlbWEAUmVxdWVzdCBoYXMgaW52YWxpZCBgVHJhbnNmZXItRW5jb2RpbmdgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX0NIVU5LX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX05BTUVfQ09NUExFVEUASFBFX0NCX01FU1NBR0VfQ09NUExFVEUASFBFX0NCX01FVEhPRF9DT01QTEVURQBIUEVfQ0JfSEVBREVSX0ZJRUxEX0NPTVBMRVRFAERFTEVURQBIUEVfSU5WQUxJRF9FT0ZfU1RBVEUASU5WQUxJRF9TU0xfQ0VSVElGSUNBVEUAUEFVU0UATk9fUkVTUE9OU0UAVU5TVVBQT1JURURfTUVESUFfVFlQRQBHT05FAE5PVF9BQ0NFUFRBQkxFAFNFUlZJQ0VfVU5BVkFJTEFCTEUAUkFOR0VfTk9UX1NBVElTRklBQkxFAE9SSUdJTl9JU19VTlJFQUNIQUJMRQBSRVNQT05TRV9JU19TVEFMRQBQVVJHRQBNRVJHRQBSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFAFJFUVVFU1RfSEVBREVSX1RPT19MQVJHRQBQQVlMT0FEX1RPT19MQVJHRQBJTlNVRkZJQ0lFTlRfU1RPUkFHRQBIUEVfUEFVU0VEX1VQR1JBREUASFBFX1BBVVNFRF9IMl9VUEdSQURFAFNPVVJDRQBBTk5PVU5DRQBUUkFDRQBIUEVfVU5FWFBFQ1RFRF9TUEFDRQBERVNDUklCRQBVTlNVQlNDUklCRQBSRUNPUkQASFBFX0lOVkFMSURfTUVUSE9EAE5PVF9GT1VORABQUk9QRklORABVTkJJTkQAUkVCSU5EAFVOQVVUSE9SSVpFRABNRVRIT0RfTk9UX0FMTE9XRUQASFRUUF9WRVJTSU9OX05PVF9TVVBQT1JURUQAQUxSRUFEWV9SRVBPUlRFRABBQ0NFUFRFRABOT1RfSU1QTEVNRU5URUQATE9PUF9ERVRFQ1RFRABIUEVfQ1JfRVhQRUNURUQASFBFX0xGX0VYUEVDVEVEAENSRUFURUQASU1fVVNFRABIUEVfUEFVU0VEAFRJTUVPVVRfT0NDVVJFRABQQVlNRU5UX1JFUVVJUkVEAFBSRUNPTkRJVElPTl9SRVFVSVJFRABQUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRABORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAExFTkdUSF9SRVFVSVJFRABTU0xfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVVBHUkFERV9SRVFVSVJFRABQQUdFX0VYUElSRUQAUFJFQ09ORElUSU9OX0ZBSUxFRABFWFBFQ1RBVElPTl9GQUlMRUQAUkVWQUxJREFUSU9OX0ZBSUxFRABTU0xfSEFORFNIQUtFX0ZBSUxFRABMT0NLRUQAVFJBTlNGT1JNQVRJT05fQVBQTElFRABOT1RfTU9ESUZJRUQATk9UX0VYVEVOREVEAEJBTkRXSURUSF9MSU1JVF9FWENFRURFRABTSVRFX0lTX09WRVJMT0FERUQASEVBRABFeHBlY3RlZCBIVFRQLwAAXhMAACYTAAAwEAAA8BcAAJ0TAAAVEgAAORcAAPASAAAKEAAAdRIAAK0SAACCEwAATxQAAH8QAACgFQAAIxQAAIkSAACLFAAATRUAANQRAADPFAAAEBgAAMkWAADcFgAAwREAAOAXAAC7FAAAdBQAAHwVAADlFAAACBcAAB8QAABlFQAAoxQAACgVAAACFQAAmRUAACwQAACLGQAATw8AANQOAABqEAAAzhAAAAIXAACJDgAAbhMAABwTAABmFAAAVhcAAMETAADNEwAAbBMAAGgXAABmFwAAXxcAACITAADODwAAaQ4AANgOAABjFgAAyxMAAKoOAAAoFwAAJhcAAMUTAABdFgAA6BEAAGcTAABlEwAA8hYAAHMTAAAdFwAA+RYAAPMRAADPDgAAzhUAAAwSAACzEQAApREAAGEQAAAyFwAAuxMAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIDAgICAgIAAAICAAICAAICAgICAgICAgIABAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAACAAICAgICAAACAgACAgACAgICAgICAgICAAMABAAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbG9zZWVlcC1hbGl2ZQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBY2h1bmtlZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEAAAEBAAEBAAEBAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AAAAAAAAAAAAAAAAAAAByYW5zZmVyLWVuY29kaW5ncGdyYWRlDQoNCg0KU00NCg0KVFRQL0NFL1RTUC8AAAAAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQIAAQMAAAAAAAAAAAAAAAAAAAAAAAAEAQEFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAAAAQAAAgAAAAAAAAAAAAAAAAAAAAAAAAMEAAAEBAQEBAQEBAQEBAUEBAQEBAQEBAQEBAQABAAGBwQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAIAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOT1VOQ0VFQ0tPVVRORUNURVRFQ1JJQkVMVVNIRVRFQURTRUFSQ0hSR0VDVElWSVRZTEVOREFSVkVPVElGWVBUSU9OU0NIU0VBWVNUQVRDSEdFT1JESVJFQ1RPUlRSQ0hQQVJBTUVURVJVUkNFQlNDUklCRUFSRE9XTkFDRUlORE5LQ0tVQlNDUklCRUhUVFAvQURUUC8=' + + +/***/ }), + +/***/ 5627: +/***/ ((module) => { + +module.exports = 'AGFzbQEAAAABMAhgAX8Bf2ADf39/AX9gBH9/f38Bf2AAAGADf39/AGABfwBgAn9/AGAGf39/f39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQACA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAA0ZFAwMEAAAFAAAAAAAABQEFAAUFBQAABgAAAAAGBgYGAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAABAQcAAAUFAwABBAUBcAESEgUDAQACBggBfwFBgNQECwfRBSIGbWVtb3J5AgALX2luaXRpYWxpemUACRlfX2luZGlyZWN0X2Z1bmN0aW9uX3RhYmxlAQALbGxodHRwX2luaXQAChhsbGh0dHBfc2hvdWxkX2tlZXBfYWxpdmUAQQxsbGh0dHBfYWxsb2MADAZtYWxsb2MARgtsbGh0dHBfZnJlZQANBGZyZWUASA9sbGh0dHBfZ2V0X3R5cGUADhVsbGh0dHBfZ2V0X2h0dHBfbWFqb3IADxVsbGh0dHBfZ2V0X2h0dHBfbWlub3IAEBFsbGh0dHBfZ2V0X21ldGhvZAARFmxsaHR0cF9nZXRfc3RhdHVzX2NvZGUAEhJsbGh0dHBfZ2V0X3VwZ3JhZGUAEwxsbGh0dHBfcmVzZXQAFA5sbGh0dHBfZXhlY3V0ZQAVFGxsaHR0cF9zZXR0aW5nc19pbml0ABYNbGxodHRwX2ZpbmlzaAAXDGxsaHR0cF9wYXVzZQAYDWxsaHR0cF9yZXN1bWUAGRtsbGh0dHBfcmVzdW1lX2FmdGVyX3VwZ3JhZGUAGhBsbGh0dHBfZ2V0X2Vycm5vABsXbGxodHRwX2dldF9lcnJvcl9yZWFzb24AHBdsbGh0dHBfc2V0X2Vycm9yX3JlYXNvbgAdFGxsaHR0cF9nZXRfZXJyb3JfcG9zAB4RbGxodHRwX2Vycm5vX25hbWUAHxJsbGh0dHBfbWV0aG9kX25hbWUAIBJsbGh0dHBfc3RhdHVzX25hbWUAIRpsbGh0dHBfc2V0X2xlbmllbnRfaGVhZGVycwAiIWxsaHR0cF9zZXRfbGVuaWVudF9jaHVua2VkX2xlbmd0aAAjHWxsaHR0cF9zZXRfbGVuaWVudF9rZWVwX2FsaXZlACQkbGxodHRwX3NldF9sZW5pZW50X3RyYW5zZmVyX2VuY29kaW5nACUYbGxodHRwX21lc3NhZ2VfbmVlZHNfZW9mAD8JFwEAQQELEQECAwQFCwYHNTk3MS8tJyspCrLgAkUCAAsIABCIgICAAAsZACAAEMKAgIAAGiAAIAI2AjggACABOgAoCxwAIAAgAC8BMiAALQAuIAAQwYCAgAAQgICAgAALKgEBf0HAABDGgICAACIBEMKAgIAAGiABQYCIgIAANgI4IAEgADoAKCABCwoAIAAQyICAgAALBwAgAC0AKAsHACAALQAqCwcAIAAtACsLBwAgAC0AKQsHACAALwEyCwcAIAAtAC4LRQEEfyAAKAIYIQEgAC0ALSECIAAtACghAyAAKAI4IQQgABDCgICAABogACAENgI4IAAgAzoAKCAAIAI6AC0gACABNgIYCxEAIAAgASABIAJqEMOAgIAACxAAIABBAEHcABDMgICAABoLZwEBf0EAIQECQCAAKAIMDQACQAJAAkACQCAALQAvDgMBAAMCCyAAKAI4IgFFDQAgASgCLCIBRQ0AIAAgARGAgICAAAAiAQ0DC0EADwsQyoCAgAAACyAAQcOWgIAANgIQQQ4hAQsgAQseAAJAIAAoAgwNACAAQdGbgIAANgIQIABBFTYCDAsLFgACQCAAKAIMQRVHDQAgAEEANgIMCwsWAAJAIAAoAgxBFkcNACAAQQA2AgwLCwcAIAAoAgwLBwAgACgCEAsJACAAIAE2AhALBwAgACgCFAsiAAJAIABBJEkNABDKgICAAAALIABBAnRBoLOAgABqKAIACyIAAkAgAEEuSQ0AEMqAgIAAAAsgAEECdEGwtICAAGooAgAL7gsBAX9B66iAgAAhAQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBnH9qDvQDY2IAAWFhYWFhYQIDBAVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhBgcICQoLDA0OD2FhYWFhEGFhYWFhYWFhYWFhEWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYRITFBUWFxgZGhthYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2YTc4OTphYWFhYWFhYTthYWE8YWFhYT0+P2FhYWFhYWFhQGFhQWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYUJDREVGR0hJSktMTU5PUFFSU2FhYWFhYWFhVFVWV1hZWlthXF1hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFeYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhX2BhC0Hhp4CAAA8LQaShgIAADwtBy6yAgAAPC0H+sYCAAA8LQcCkgIAADwtBq6SAgAAPC0GNqICAAA8LQeKmgIAADwtBgLCAgAAPC0G5r4CAAA8LQdekgIAADwtB75+AgAAPC0Hhn4CAAA8LQfqfgIAADwtB8qCAgAAPC0Gor4CAAA8LQa6ygIAADwtBiLCAgAAPC0Hsp4CAAA8LQYKigIAADwtBjp2AgAAPC0HQroCAAA8LQcqjgIAADwtBxbKAgAAPC0HfnICAAA8LQdKcgIAADwtBxKCAgAAPC0HXoICAAA8LQaKfgIAADwtB7a6AgAAPC0GrsICAAA8LQdSlgIAADwtBzK6AgAAPC0H6roCAAA8LQfyrgIAADwtB0rCAgAAPC0HxnYCAAA8LQbuggIAADwtB96uAgAAPC0GQsYCAAA8LQdexgIAADwtBoq2AgAAPC0HUp4CAAA8LQeCrgIAADwtBn6yAgAAPC0HrsYCAAA8LQdWfgIAADwtByrGAgAAPC0HepYCAAA8LQdSegIAADwtB9JyAgAAPC0GnsoCAAA8LQbGdgIAADwtBoJ2AgAAPC0G5sYCAAA8LQbywgIAADwtBkqGAgAAPC0GzpoCAAA8LQemsgIAADwtBrJ6AgAAPC0HUq4CAAA8LQfemgIAADwtBgKaAgAAPC0GwoYCAAA8LQf6egIAADwtBjaOAgAAPC0GJrYCAAA8LQfeigIAADwtBoLGAgAAPC0Gun4CAAA8LQcalgIAADwtB6J6AgAAPC0GTooCAAA8LQcKvgIAADwtBw52AgAAPC0GLrICAAA8LQeGdgIAADwtBja+AgAAPC0HqoYCAAA8LQbStgIAADwtB0q+AgAAPC0HfsoCAAA8LQdKygIAADwtB8LCAgAAPC0GpooCAAA8LQfmjgIAADwtBmZ6AgAAPC0G1rICAAA8LQZuwgIAADwtBkrKAgAAPC0G2q4CAAA8LQcKigIAADwtB+LKAgAAPC0GepYCAAA8LQdCigIAADwtBup6AgAAPC0GBnoCAAA8LEMqAgIAAAAtB1qGAgAAhAQsgAQsWACAAIAAtAC1B/gFxIAFBAEdyOgAtCxkAIAAgAC0ALUH9AXEgAUEAR0EBdHI6AC0LGQAgACAALQAtQfsBcSABQQBHQQJ0cjoALQsZACAAIAAtAC1B9wFxIAFBAEdBA3RyOgAtCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAgAiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCBCIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQcaRgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIwIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAggiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2ioCAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCNCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIMIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZqAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAjgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCECIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZWQgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAI8IgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAhQiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEGqm4CAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCQCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIYIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABB7ZOAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCJCIERQ0AIAAgBBGAgICAAAAhAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIsIgRFDQAgACAEEYCAgIAAACEDCyADC0kBAn9BACEDAkAgACgCOCIERQ0AIAQoAigiBEUNACAAIAEgAiABayAEEYGAgIAAACIDQX9HDQAgAEH2iICAADYCEEEYIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCUCIERQ0AIAAgBBGAgICAAAAhAwsgAwtJAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAIcIgRFDQAgACABIAIgAWsgBBGBgICAAAAiA0F/Rw0AIABBwpmAgAA2AhBBGCEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAkgiBEUNACAAIAQRgICAgAAAIQMLIAMLSQECf0EAIQMCQCAAKAI4IgRFDQAgBCgCICIERQ0AIAAgASACIAFrIAQRgYCAgAAAIgNBf0cNACAAQZSUgIAANgIQQRghAwsgAwsuAQJ/QQAhAwJAIAAoAjgiBEUNACAEKAJMIgRFDQAgACAEEYCAgIAAACEDCyADCy4BAn9BACEDAkAgACgCOCIERQ0AIAQoAlQiBEUNACAAIAQRgICAgAAAIQMLIAMLLgECf0EAIQMCQCAAKAI4IgRFDQAgBCgCWCIERQ0AIAAgBBGAgICAAAAhAwsgAwtFAQF/AkACQCAALwEwQRRxQRRHDQBBASEDIAAtAChBAUYNASAALwEyQeUARiEDDAELIAAtAClBBUYhAwsgACADOgAuQQAL/gEBA39BASEDAkAgAC8BMCIEQQhxDQAgACkDIEIAUiEDCwJAAkAgAC0ALkUNAEEBIQUgAC0AKUEFRg0BQQEhBSAEQcAAcUUgA3FBAUcNAQtBACEFIARBwABxDQBBAiEFIARB//8DcSIDQQhxDQACQCADQYAEcUUNAAJAIAAtAChBAUcNACAALQAtQQpxDQBBBQ8LQQQPCwJAIANBIHENAAJAIAAtAChBAUYNACAALwEyQf//A3EiAEGcf2pB5ABJDQAgAEHMAUYNACAAQbACRg0AQQQhBSAEQShxRQ0CIANBiARxQYAERg0CC0EADwtBAEEDIAApAyBQGyEFCyAFC2IBAn9BACEBAkAgAC0AKEEBRg0AIAAvATJB//8DcSICQZx/akHkAEkNACACQcwBRg0AIAJBsAJGDQAgAC8BMCIAQcAAcQ0AQQEhASAAQYgEcUGABEYNACAAQShxRSEBCyABC6cBAQN/AkACQAJAIAAtACpFDQAgAC0AK0UNAEEAIQMgAC8BMCIEQQJxRQ0BDAILQQAhAyAALwEwIgRBAXFFDQELQQEhAyAALQAoQQFGDQAgAC8BMkH//wNxIgVBnH9qQeQASQ0AIAVBzAFGDQAgBUGwAkYNACAEQcAAcQ0AQQAhAyAEQYgEcUGABEYNACAEQShxQQBHIQMLIABBADsBMCAAQQA6AC8gAwuZAQECfwJAAkACQCAALQAqRQ0AIAAtACtFDQBBACEBIAAvATAiAkECcUUNAQwCC0EAIQEgAC8BMCICQQFxRQ0BC0EBIQEgAC0AKEEBRg0AIAAvATJB//8DcSIAQZx/akHkAEkNACAAQcwBRg0AIABBsAJGDQAgAkHAAHENAEEAIQEgAkGIBHFBgARGDQAgAkEocUEARyEBCyABC0kBAXsgAEEQav0MAAAAAAAAAAAAAAAAAAAAACIB/QsDACAAIAH9CwMAIABBMGogAf0LAwAgAEEgaiAB/QsDACAAQd0BNgIcQQALewEBfwJAIAAoAgwiAw0AAkAgACgCBEUNACAAIAE2AgQLAkAgACABIAIQxICAgAAiAw0AIAAoAgwPCyAAIAM2AhxBACEDIAAoAgQiAUUNACAAIAEgAiAAKAIIEYGAgIAAACIBRQ0AIAAgAjYCFCAAIAE2AgwgASEDCyADC+TzAQMOfwN+BH8jgICAgABBEGsiAySAgICAACABIQQgASEFIAEhBiABIQcgASEIIAEhCSABIQogASELIAEhDCABIQ0gASEOIAEhDwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAKAIcIhBBf2oO3QHaAQHZAQIDBAUGBwgJCgsMDQ7YAQ8Q1wEREtYBExQVFhcYGRob4AHfARwdHtUBHyAhIiMkJdQBJicoKSorLNMB0gEtLtEB0AEvMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUbbAUdISUrPAc4BS80BTMwBTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gAGBAYIBgwGEAYUBhgGHAYgBiQGKAYsBjAGNAY4BjwGQAZEBkgGTAZQBlQGWAZcBmAGZAZoBmwGcAZ0BngGfAaABoQGiAaMBpAGlAaYBpwGoAakBqgGrAawBrQGuAa8BsAGxAbIBswG0AbUBtgG3AcsBygG4AckBuQHIAboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBANwBC0EAIRAMxgELQQ4hEAzFAQtBDSEQDMQBC0EPIRAMwwELQRAhEAzCAQtBEyEQDMEBC0EUIRAMwAELQRUhEAy/AQtBFiEQDL4BC0EXIRAMvQELQRghEAy8AQtBGSEQDLsBC0EaIRAMugELQRshEAy5AQtBHCEQDLgBC0EIIRAMtwELQR0hEAy2AQtBICEQDLUBC0EfIRAMtAELQQchEAyzAQtBISEQDLIBC0EiIRAMsQELQR4hEAywAQtBIyEQDK8BC0ESIRAMrgELQREhEAytAQtBJCEQDKwBC0ElIRAMqwELQSYhEAyqAQtBJyEQDKkBC0HDASEQDKgBC0EpIRAMpwELQSshEAymAQtBLCEQDKUBC0EtIRAMpAELQS4hEAyjAQtBLyEQDKIBC0HEASEQDKEBC0EwIRAMoAELQTQhEAyfAQtBDCEQDJ4BC0ExIRAMnQELQTIhEAycAQtBMyEQDJsBC0E5IRAMmgELQTUhEAyZAQtBxQEhEAyYAQtBCyEQDJcBC0E6IRAMlgELQTYhEAyVAQtBCiEQDJQBC0E3IRAMkwELQTghEAySAQtBPCEQDJEBC0E7IRAMkAELQT0hEAyPAQtBCSEQDI4BC0EoIRAMjQELQT4hEAyMAQtBPyEQDIsBC0HAACEQDIoBC0HBACEQDIkBC0HCACEQDIgBC0HDACEQDIcBC0HEACEQDIYBC0HFACEQDIUBC0HGACEQDIQBC0EqIRAMgwELQccAIRAMggELQcgAIRAMgQELQckAIRAMgAELQcoAIRAMfwtBywAhEAx+C0HNACEQDH0LQcwAIRAMfAtBzgAhEAx7C0HPACEQDHoLQdAAIRAMeQtB0QAhEAx4C0HSACEQDHcLQdMAIRAMdgtB1AAhEAx1C0HWACEQDHQLQdUAIRAMcwtBBiEQDHILQdcAIRAMcQtBBSEQDHALQdgAIRAMbwtBBCEQDG4LQdkAIRAMbQtB2gAhEAxsC0HbACEQDGsLQdwAIRAMagtBAyEQDGkLQd0AIRAMaAtB3gAhEAxnC0HfACEQDGYLQeEAIRAMZQtB4AAhEAxkC0HiACEQDGMLQeMAIRAMYgtBAiEQDGELQeQAIRAMYAtB5QAhEAxfC0HmACEQDF4LQecAIRAMXQtB6AAhEAxcC0HpACEQDFsLQeoAIRAMWgtB6wAhEAxZC0HsACEQDFgLQe0AIRAMVwtB7gAhEAxWC0HvACEQDFULQfAAIRAMVAtB8QAhEAxTC0HyACEQDFILQfMAIRAMUQtB9AAhEAxQC0H1ACEQDE8LQfYAIRAMTgtB9wAhEAxNC0H4ACEQDEwLQfkAIRAMSwtB+gAhEAxKC0H7ACEQDEkLQfwAIRAMSAtB/QAhEAxHC0H+ACEQDEYLQf8AIRAMRQtBgAEhEAxEC0GBASEQDEMLQYIBIRAMQgtBgwEhEAxBC0GEASEQDEALQYUBIRAMPwtBhgEhEAw+C0GHASEQDD0LQYgBIRAMPAtBiQEhEAw7C0GKASEQDDoLQYsBIRAMOQtBjAEhEAw4C0GNASEQDDcLQY4BIRAMNgtBjwEhEAw1C0GQASEQDDQLQZEBIRAMMwtBkgEhEAwyC0GTASEQDDELQZQBIRAMMAtBlQEhEAwvC0GWASEQDC4LQZcBIRAMLQtBmAEhEAwsC0GZASEQDCsLQZoBIRAMKgtBmwEhEAwpC0GcASEQDCgLQZ0BIRAMJwtBngEhEAwmC0GfASEQDCULQaABIRAMJAtBoQEhEAwjC0GiASEQDCILQaMBIRAMIQtBpAEhEAwgC0GlASEQDB8LQaYBIRAMHgtBpwEhEAwdC0GoASEQDBwLQakBIRAMGwtBqgEhEAwaC0GrASEQDBkLQawBIRAMGAtBrQEhEAwXC0GuASEQDBYLQQEhEAwVC0GvASEQDBQLQbABIRAMEwtBsQEhEAwSC0GzASEQDBELQbIBIRAMEAtBtAEhEAwPC0G1ASEQDA4LQbYBIRAMDQtBtwEhEAwMC0G4ASEQDAsLQbkBIRAMCgtBugEhEAwJC0G7ASEQDAgLQcYBIRAMBwtBvAEhEAwGC0G9ASEQDAULQb4BIRAMBAtBvwEhEAwDC0HAASEQDAILQcIBIRAMAQtBwQEhEAsDQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAOxwEAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB4fICEjJSg/QEFERUZHSElKS0xNT1BRUlPeA1dZW1xdYGJlZmdoaWprbG1vcHFyc3R1dnd4eXp7fH1+gAGCAYUBhgGHAYkBiwGMAY0BjgGPAZABkQGUAZUBlgGXAZgBmQGaAZsBnAGdAZ4BnwGgAaEBogGjAaQBpQGmAacBqAGpAaoBqwGsAa0BrgGvAbABsQGyAbMBtAG1AbYBtwG4AbkBugG7AbwBvQG+Ab8BwAHBAcIBwwHEAcUBxgHHAcgByQHKAcsBzAHNAc4BzwHQAdEB0gHTAdQB1QHWAdcB2AHZAdoB2wHcAd0B3gHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMBmQKkArAC/gL+AgsgASIEIAJHDfMBQd0BIRAM/wMLIAEiECACRw3dAUHDASEQDP4DCyABIgEgAkcNkAFB9wAhEAz9AwsgASIBIAJHDYYBQe8AIRAM/AMLIAEiASACRw1/QeoAIRAM+wMLIAEiASACRw17QegAIRAM+gMLIAEiASACRw14QeYAIRAM+QMLIAEiASACRw0aQRghEAz4AwsgASIBIAJHDRRBEiEQDPcDCyABIgEgAkcNWUHFACEQDPYDCyABIgEgAkcNSkE/IRAM9QMLIAEiASACRw1IQTwhEAz0AwsgASIBIAJHDUFBMSEQDPMDCyAALQAuQQFGDesDDIcCCyAAIAEiASACEMCAgIAAQQFHDeYBIABCADcDIAznAQsgACABIgEgAhC0gICAACIQDecBIAEhAQz1AgsCQCABIgEgAkcNAEEGIRAM8AMLIAAgAUEBaiIBIAIQu4CAgAAiEA3oASABIQEMMQsgAEIANwMgQRIhEAzVAwsgASIQIAJHDStBHSEQDO0DCwJAIAEiASACRg0AIAFBAWohAUEQIRAM1AMLQQchEAzsAwsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3lAUEIIRAM6wMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQRQhEAzSAwtBCSEQDOoDCyABIQEgACkDIFAN5AEgASEBDPICCwJAIAEiASACRw0AQQshEAzpAwsgACABQQFqIgEgAhC2gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeUBIAEhAQzyAgsgACABIgEgAhC4gICAACIQDeYBIAEhAQwNCyAAIAEiASACELqAgIAAIhAN5wEgASEBDPACCwJAIAEiASACRw0AQQ8hEAzlAwsgAS0AACIQQTtGDQggEEENRw3oASABQQFqIQEM7wILIAAgASIBIAIQuoCAgAAiEA3oASABIQEM8gILA0ACQCABLQAAQfC1gIAAai0AACIQQQFGDQAgEEECRw3rASAAKAIEIRAgAEEANgIEIAAgECABQQFqIgEQuYCAgAAiEA3qASABIQEM9AILIAFBAWoiASACRw0AC0ESIRAM4gMLIAAgASIBIAIQuoCAgAAiEA3pASABIQEMCgsgASIBIAJHDQZBGyEQDOADCwJAIAEiASACRw0AQRYhEAzgAwsgAEGKgICAADYCCCAAIAE2AgQgACABIAIQuICAgAAiEA3qASABIQFBICEQDMYDCwJAIAEiASACRg0AA0ACQCABLQAAQfC3gIAAai0AACIQQQJGDQACQCAQQX9qDgTlAewBAOsB7AELIAFBAWohAUEIIRAMyAMLIAFBAWoiASACRw0AC0EVIRAM3wMLQRUhEAzeAwsDQAJAIAEtAABB8LmAgABqLQAAIhBBAkYNACAQQX9qDgTeAewB4AHrAewBCyABQQFqIgEgAkcNAAtBGCEQDN0DCwJAIAEiASACRg0AIABBi4CAgAA2AgggACABNgIEIAEhAUEHIRAMxAMLQRkhEAzcAwsgAUEBaiEBDAILAkAgASIUIAJHDQBBGiEQDNsDCyAUIQECQCAULQAAQXNqDhTdAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAu4C7gLuAgDuAgtBACEQIABBADYCHCAAQa+LgIAANgIQIABBAjYCDCAAIBRBAWo2AhQM2gMLAkAgAS0AACIQQTtGDQAgEEENRw3oASABQQFqIQEM5QILIAFBAWohAQtBIiEQDL8DCwJAIAEiECACRw0AQRwhEAzYAwtCACERIBAhASAQLQAAQVBqDjfnAeYBAQIDBAUGBwgAAAAAAAAACQoLDA0OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPEBESExQAC0EeIRAMvQMLQgIhEQzlAQtCAyERDOQBC0IEIREM4wELQgUhEQziAQtCBiERDOEBC0IHIREM4AELQgghEQzfAQtCCSERDN4BC0IKIREM3QELQgshEQzcAQtCDCERDNsBC0INIREM2gELQg4hEQzZAQtCDyERDNgBC0IKIREM1wELQgshEQzWAQtCDCERDNUBC0INIREM1AELQg4hEQzTAQtCDyERDNIBC0IAIRECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIBAtAABBUGoON+UB5AEAAQIDBAUGB+YB5gHmAeYB5gHmAeYBCAkKCwwN5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAeYB5gHmAQ4PEBESE+YBC0ICIREM5AELQgMhEQzjAQtCBCERDOIBC0IFIREM4QELQgYhEQzgAQtCByERDN8BC0IIIREM3gELQgkhEQzdAQtCCiERDNwBC0ILIREM2wELQgwhEQzaAQtCDSERDNkBC0IOIREM2AELQg8hEQzXAQtCCiERDNYBC0ILIREM1QELQgwhEQzUAQtCDSERDNMBC0IOIREM0gELQg8hEQzRAQsgAEIAIAApAyAiESACIAEiEGutIhJ9IhMgEyARVhs3AyAgESASViIURQ3SAUEfIRAMwAMLAkAgASIBIAJGDQAgAEGJgICAADYCCCAAIAE2AgQgASEBQSQhEAynAwtBICEQDL8DCyAAIAEiECACEL6AgIAAQX9qDgW2AQDFAgHRAdIBC0ERIRAMpAMLIABBAToALyAQIQEMuwMLIAEiASACRw3SAUEkIRAMuwMLIAEiDSACRw0eQcYAIRAMugMLIAAgASIBIAIQsoCAgAAiEA3UASABIQEMtQELIAEiECACRw0mQdAAIRAMuAMLAkAgASIBIAJHDQBBKCEQDLgDCyAAQQA2AgQgAEGMgICAADYCCCAAIAEgARCxgICAACIQDdMBIAEhAQzYAQsCQCABIhAgAkcNAEEpIRAMtwMLIBAtAAAiAUEgRg0UIAFBCUcN0wEgEEEBaiEBDBULAkAgASIBIAJGDQAgAUEBaiEBDBcLQSohEAy1AwsCQCABIhAgAkcNAEErIRAMtQMLAkAgEC0AACIBQQlGDQAgAUEgRw3VAQsgAC0ALEEIRg3TASAQIQEMkQMLAkAgASIBIAJHDQBBLCEQDLQDCyABLQAAQQpHDdUBIAFBAWohAQzJAgsgASIOIAJHDdUBQS8hEAyyAwsDQAJAIAEtAAAiEEEgRg0AAkAgEEF2ag4EANwB3AEA2gELIAEhAQzgAQsgAUEBaiIBIAJHDQALQTEhEAyxAwtBMiEQIAEiFCACRg2wAyACIBRrIAAoAgAiAWohFSAUIAFrQQNqIRYCQANAIBQtAAAiF0EgciAXIBdBv39qQf8BcUEaSRtB/wFxIAFB8LuAgABqLQAARw0BAkAgAUEDRw0AQQYhAQyWAwsgAUEBaiEBIBRBAWoiFCACRw0ACyAAIBU2AgAMsQMLIABBADYCACAUIQEM2QELQTMhECABIhQgAkYNrwMgAiAUayAAKAIAIgFqIRUgFCABa0EIaiEWAkADQCAULQAAIhdBIHIgFyAXQb9/akH/AXFBGkkbQf8BcSABQfS7gIAAai0AAEcNAQJAIAFBCEcNAEEFIQEMlQMLIAFBAWohASAUQQFqIhQgAkcNAAsgACAVNgIADLADCyAAQQA2AgAgFCEBDNgBC0E0IRAgASIUIAJGDa4DIAIgFGsgACgCACIBaiEVIBQgAWtBBWohFgJAA0AgFC0AACIXQSByIBcgF0G/f2pB/wFxQRpJG0H/AXEgAUHQwoCAAGotAABHDQECQCABQQVHDQBBByEBDJQDCyABQQFqIQEgFEEBaiIUIAJHDQALIAAgFTYCAAyvAwsgAEEANgIAIBQhAQzXAQsCQCABIgEgAkYNAANAAkAgAS0AAEGAvoCAAGotAAAiEEEBRg0AIBBBAkYNCiABIQEM3QELIAFBAWoiASACRw0AC0EwIRAMrgMLQTAhEAytAwsCQCABIgEgAkYNAANAAkAgAS0AACIQQSBGDQAgEEF2ag4E2QHaAdoB2QHaAQsgAUEBaiIBIAJHDQALQTghEAytAwtBOCEQDKwDCwNAAkAgAS0AACIQQSBGDQAgEEEJRw0DCyABQQFqIgEgAkcNAAtBPCEQDKsDCwNAAkAgAS0AACIQQSBGDQACQAJAIBBBdmoOBNoBAQHaAQALIBBBLEYN2wELIAEhAQwECyABQQFqIgEgAkcNAAtBPyEQDKoDCyABIQEM2wELQcAAIRAgASIUIAJGDagDIAIgFGsgACgCACIBaiEWIBQgAWtBBmohFwJAA0AgFC0AAEEgciABQYDAgIAAai0AAEcNASABQQZGDY4DIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADKkDCyAAQQA2AgAgFCEBC0E2IRAMjgMLAkAgASIPIAJHDQBBwQAhEAynAwsgAEGMgICAADYCCCAAIA82AgQgDyEBIAAtACxBf2oOBM0B1QHXAdkBhwMLIAFBAWohAQzMAQsCQCABIgEgAkYNAANAAkAgAS0AACIQQSByIBAgEEG/f2pB/wFxQRpJG0H/AXEiEEEJRg0AIBBBIEYNAAJAAkACQAJAIBBBnX9qDhMAAwMDAwMDAwEDAwMDAwMDAwMCAwsgAUEBaiEBQTEhEAyRAwsgAUEBaiEBQTIhEAyQAwsgAUEBaiEBQTMhEAyPAwsgASEBDNABCyABQQFqIgEgAkcNAAtBNSEQDKUDC0E1IRAMpAMLAkAgASIBIAJGDQADQAJAIAEtAABBgLyAgABqLQAAQQFGDQAgASEBDNMBCyABQQFqIgEgAkcNAAtBPSEQDKQDC0E9IRAMowMLIAAgASIBIAIQsICAgAAiEA3WASABIQEMAQsgEEEBaiEBC0E8IRAMhwMLAkAgASIBIAJHDQBBwgAhEAygAwsCQANAAkAgAS0AAEF3ag4YAAL+Av4ChAP+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gL+Av4C/gIA/gILIAFBAWoiASACRw0AC0HCACEQDKADCyABQQFqIQEgAC0ALUEBcUUNvQEgASEBC0EsIRAMhQMLIAEiASACRw3TAUHEACEQDJ0DCwNAAkAgAS0AAEGQwICAAGotAABBAUYNACABIQEMtwILIAFBAWoiASACRw0AC0HFACEQDJwDCyANLQAAIhBBIEYNswEgEEE6Rw2BAyAAKAIEIQEgAEEANgIEIAAgASANEK+AgIAAIgEN0AEgDUEBaiEBDLMCC0HHACEQIAEiDSACRg2aAyACIA1rIAAoAgAiAWohFiANIAFrQQVqIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQZDCgIAAai0AAEcNgAMgAUEFRg30AiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyaAwtByAAhECABIg0gAkYNmQMgAiANayAAKAIAIgFqIRYgDSABa0EJaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUGWwoCAAGotAABHDf8CAkAgAUEJRw0AQQIhAQz1AgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMmQMLAkAgASINIAJHDQBByQAhEAyZAwsCQAJAIA0tAAAiAUEgciABIAFBv39qQf8BcUEaSRtB/wFxQZJ/ag4HAIADgAOAA4ADgAMBgAMLIA1BAWohAUE+IRAMgAMLIA1BAWohAUE/IRAM/wILQcoAIRAgASINIAJGDZcDIAIgDWsgACgCACIBaiEWIA0gAWtBAWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFBoMKAgABqLQAARw39AiABQQFGDfACIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJcDC0HLACEQIAEiDSACRg2WAyACIA1rIAAoAgAiAWohFiANIAFrQQ5qIRcDQCANLQAAIhRBIHIgFCAUQb9/akH/AXFBGkkbQf8BcSABQaLCgIAAai0AAEcN/AIgAUEORg3wAiABQQFqIQEgDUEBaiINIAJHDQALIAAgFjYCAAyWAwtBzAAhECABIg0gAkYNlQMgAiANayAAKAIAIgFqIRYgDSABa0EPaiEXA0AgDS0AACIUQSByIBQgFEG/f2pB/wFxQRpJG0H/AXEgAUHAwoCAAGotAABHDfsCAkAgAUEPRw0AQQMhAQzxAgsgAUEBaiEBIA1BAWoiDSACRw0ACyAAIBY2AgAMlQMLQc0AIRAgASINIAJGDZQDIAIgDWsgACgCACIBaiEWIA0gAWtBBWohFwNAIA0tAAAiFEEgciAUIBRBv39qQf8BcUEaSRtB/wFxIAFB0MKAgABqLQAARw36AgJAIAFBBUcNAEEEIQEM8AILIAFBAWohASANQQFqIg0gAkcNAAsgACAWNgIADJQDCwJAIAEiDSACRw0AQc4AIRAMlAMLAkACQAJAAkAgDS0AACIBQSByIAEgAUG/f2pB/wFxQRpJG0H/AXFBnX9qDhMA/QL9Av0C/QL9Av0C/QL9Av0C/QL9Av0CAf0C/QL9AgID/QILIA1BAWohAUHBACEQDP0CCyANQQFqIQFBwgAhEAz8AgsgDUEBaiEBQcMAIRAM+wILIA1BAWohAUHEACEQDPoCCwJAIAEiASACRg0AIABBjYCAgAA2AgggACABNgIEIAEhAUHFACEQDPoCC0HPACEQDJIDCyAQIQECQAJAIBAtAABBdmoOBAGoAqgCAKgCCyAQQQFqIQELQSchEAz4AgsCQCABIgEgAkcNAEHRACEQDJEDCwJAIAEtAABBIEYNACABIQEMjQELIAFBAWohASAALQAtQQFxRQ3HASABIQEMjAELIAEiFyACRw3IAUHSACEQDI8DC0HTACEQIAEiFCACRg2OAyACIBRrIAAoAgAiAWohFiAUIAFrQQFqIRcDQCAULQAAIAFB1sKAgABqLQAARw3MASABQQFGDccBIAFBAWohASAUQQFqIhQgAkcNAAsgACAWNgIADI4DCwJAIAEiASACRw0AQdUAIRAMjgMLIAEtAABBCkcNzAEgAUEBaiEBDMcBCwJAIAEiASACRw0AQdYAIRAMjQMLAkACQCABLQAAQXZqDgQAzQHNAQHNAQsgAUEBaiEBDMcBCyABQQFqIQFBygAhEAzzAgsgACABIgEgAhCugICAACIQDcsBIAEhAUHNACEQDPICCyAALQApQSJGDYUDDKYCCwJAIAEiASACRw0AQdsAIRAMigMLQQAhFEEBIRdBASEWQQAhEAJAAkACQAJAAkACQAJAAkACQCABLQAAQVBqDgrUAdMBAAECAwQFBgjVAQtBAiEQDAYLQQMhEAwFC0EEIRAMBAtBBSEQDAMLQQYhEAwCC0EHIRAMAQtBCCEQC0EAIRdBACEWQQAhFAzMAQtBCSEQQQEhFEEAIRdBACEWDMsBCwJAIAEiASACRw0AQd0AIRAMiQMLIAEtAABBLkcNzAEgAUEBaiEBDKYCCyABIgEgAkcNzAFB3wAhEAyHAwsCQCABIgEgAkYNACAAQY6AgIAANgIIIAAgATYCBCABIQFB0AAhEAzuAgtB4AAhEAyGAwtB4QAhECABIgEgAkYNhQMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQeLCgIAAai0AAEcNzQEgFEEDRg3MASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyFAwtB4gAhECABIgEgAkYNhAMgAiABayAAKAIAIhRqIRYgASAUa0ECaiEXA0AgAS0AACAUQebCgIAAai0AAEcNzAEgFEECRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyEAwtB4wAhECABIgEgAkYNgwMgAiABayAAKAIAIhRqIRYgASAUa0EDaiEXA0AgAS0AACAUQenCgIAAai0AAEcNywEgFEEDRg3OASAUQQFqIRQgAUEBaiIBIAJHDQALIAAgFjYCAAyDAwsCQCABIgEgAkcNAEHlACEQDIMDCyAAIAFBAWoiASACEKiAgIAAIhANzQEgASEBQdYAIRAM6QILAkAgASIBIAJGDQADQAJAIAEtAAAiEEEgRg0AAkACQAJAIBBBuH9qDgsAAc8BzwHPAc8BzwHPAc8BzwECzwELIAFBAWohAUHSACEQDO0CCyABQQFqIQFB0wAhEAzsAgsgAUEBaiEBQdQAIRAM6wILIAFBAWoiASACRw0AC0HkACEQDIIDC0HkACEQDIEDCwNAAkAgAS0AAEHwwoCAAGotAAAiEEEBRg0AIBBBfmoOA88B0AHRAdIBCyABQQFqIgEgAkcNAAtB5gAhEAyAAwsCQCABIgEgAkYNACABQQFqIQEMAwtB5wAhEAz/AgsDQAJAIAEtAABB8MSAgABqLQAAIhBBAUYNAAJAIBBBfmoOBNIB0wHUAQDVAQsgASEBQdcAIRAM5wILIAFBAWoiASACRw0AC0HoACEQDP4CCwJAIAEiASACRw0AQekAIRAM/gILAkAgAS0AACIQQXZqDhq6AdUB1QG8AdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAdUB1QHVAcoB1QHVAQDTAQsgAUEBaiEBC0EGIRAM4wILA0ACQCABLQAAQfDGgIAAai0AAEEBRg0AIAEhAQyeAgsgAUEBaiIBIAJHDQALQeoAIRAM+wILAkAgASIBIAJGDQAgAUEBaiEBDAMLQesAIRAM+gILAkAgASIBIAJHDQBB7AAhEAz6AgsgAUEBaiEBDAELAkAgASIBIAJHDQBB7QAhEAz5AgsgAUEBaiEBC0EEIRAM3gILAkAgASIUIAJHDQBB7gAhEAz3AgsgFCEBAkACQAJAIBQtAABB8MiAgABqLQAAQX9qDgfUAdUB1gEAnAIBAtcBCyAUQQFqIQEMCgsgFEEBaiEBDM0BC0EAIRAgAEEANgIcIABBm5KAgAA2AhAgAEEHNgIMIAAgFEEBajYCFAz2AgsCQANAAkAgAS0AAEHwyICAAGotAAAiEEEERg0AAkACQCAQQX9qDgfSAdMB1AHZAQAEAdkBCyABIQFB2gAhEAzgAgsgAUEBaiEBQdwAIRAM3wILIAFBAWoiASACRw0AC0HvACEQDPYCCyABQQFqIQEMywELAkAgASIUIAJHDQBB8AAhEAz1AgsgFC0AAEEvRw3UASAUQQFqIQEMBgsCQCABIhQgAkcNAEHxACEQDPQCCwJAIBQtAAAiAUEvRw0AIBRBAWohAUHdACEQDNsCCyABQXZqIgRBFksN0wFBASAEdEGJgIACcUUN0wEMygILAkAgASIBIAJGDQAgAUEBaiEBQd4AIRAM2gILQfIAIRAM8gILAkAgASIUIAJHDQBB9AAhEAzyAgsgFCEBAkAgFC0AAEHwzICAAGotAABBf2oOA8kClAIA1AELQeEAIRAM2AILAkAgASIUIAJGDQADQAJAIBQtAABB8MqAgABqLQAAIgFBA0YNAAJAIAFBf2oOAssCANUBCyAUIQFB3wAhEAzaAgsgFEEBaiIUIAJHDQALQfMAIRAM8QILQfMAIRAM8AILAkAgASIBIAJGDQAgAEGPgICAADYCCCAAIAE2AgQgASEBQeAAIRAM1wILQfUAIRAM7wILAkAgASIBIAJHDQBB9gAhEAzvAgsgAEGPgICAADYCCCAAIAE2AgQgASEBC0EDIRAM1AILA0AgAS0AAEEgRw3DAiABQQFqIgEgAkcNAAtB9wAhEAzsAgsCQCABIgEgAkcNAEH4ACEQDOwCCyABLQAAQSBHDc4BIAFBAWohAQzvAQsgACABIgEgAhCsgICAACIQDc4BIAEhAQyOAgsCQCABIgQgAkcNAEH6ACEQDOoCCyAELQAAQcwARw3RASAEQQFqIQFBEyEQDM8BCwJAIAEiBCACRw0AQfsAIRAM6QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEANAIAQtAAAgAUHwzoCAAGotAABHDdABIAFBBUYNzgEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBB+wAhEAzoAgsCQCABIgQgAkcNAEH8ACEQDOgCCwJAAkAgBC0AAEG9f2oODADRAdEB0QHRAdEB0QHRAdEB0QHRAQHRAQsgBEEBaiEBQeYAIRAMzwILIARBAWohAUHnACEQDM4CCwJAIAEiBCACRw0AQf0AIRAM5wILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNzwEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf0AIRAM5wILIABBADYCACAQQQFqIQFBECEQDMwBCwJAIAEiBCACRw0AQf4AIRAM5gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQfbOgIAAai0AAEcNzgEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf4AIRAM5gILIABBADYCACAQQQFqIQFBFiEQDMsBCwJAIAEiBCACRw0AQf8AIRAM5QILIAIgBGsgACgCACIBaiEUIAQgAWtBA2ohEAJAA0AgBC0AACABQfzOgIAAai0AAEcNzQEgAUEDRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQf8AIRAM5QILIABBADYCACAQQQFqIQFBBSEQDMoBCwJAIAEiBCACRw0AQYABIRAM5AILIAQtAABB2QBHDcsBIARBAWohAUEIIRAMyQELAkAgASIEIAJHDQBBgQEhEAzjAgsCQAJAIAQtAABBsn9qDgMAzAEBzAELIARBAWohAUHrACEQDMoCCyAEQQFqIQFB7AAhEAzJAgsCQCABIgQgAkcNAEGCASEQDOICCwJAAkAgBC0AAEG4f2oOCADLAcsBywHLAcsBywEBywELIARBAWohAUHqACEQDMkCCyAEQQFqIQFB7QAhEAzIAgsCQCABIgQgAkcNAEGDASEQDOECCyACIARrIAAoAgAiAWohECAEIAFrQQJqIRQCQANAIAQtAAAgAUGAz4CAAGotAABHDckBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgEDYCAEGDASEQDOECC0EAIRAgAEEANgIAIBRBAWohAQzGAQsCQCABIgQgAkcNAEGEASEQDOACCyACIARrIAAoAgAiAWohFCAEIAFrQQRqIRACQANAIAQtAAAgAUGDz4CAAGotAABHDcgBIAFBBEYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGEASEQDOACCyAAQQA2AgAgEEEBaiEBQSMhEAzFAQsCQCABIgQgAkcNAEGFASEQDN8CCwJAAkAgBC0AAEG0f2oOCADIAcgByAHIAcgByAEByAELIARBAWohAUHvACEQDMYCCyAEQQFqIQFB8AAhEAzFAgsCQCABIgQgAkcNAEGGASEQDN4CCyAELQAAQcUARw3FASAEQQFqIQEMgwILAkAgASIEIAJHDQBBhwEhEAzdAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFBiM+AgABqLQAARw3FASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBhwEhEAzdAgsgAEEANgIAIBBBAWohAUEtIRAMwgELAkAgASIEIAJHDQBBiAEhEAzcAgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw3EASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiAEhEAzcAgsgAEEANgIAIBBBAWohAUEpIRAMwQELAkAgASIBIAJHDQBBiQEhEAzbAgtBASEQIAEtAABB3wBHDcABIAFBAWohAQyBAgsCQCABIgQgAkcNAEGKASEQDNoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRADQCAELQAAIAFBjM+AgABqLQAARw3BASABQQFGDa8CIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQYoBIRAM2QILAkAgASIEIAJHDQBBiwEhEAzZAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFBjs+AgABqLQAARw3BASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBiwEhEAzZAgsgAEEANgIAIBBBAWohAUECIRAMvgELAkAgASIEIAJHDQBBjAEhEAzYAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw3AASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjAEhEAzYAgsgAEEANgIAIBBBAWohAUEfIRAMvQELAkAgASIEIAJHDQBBjQEhEAzXAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8s+AgABqLQAARw2/ASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBjQEhEAzXAgsgAEEANgIAIBBBAWohAUEJIRAMvAELAkAgASIEIAJHDQBBjgEhEAzWAgsCQAJAIAQtAABBt39qDgcAvwG/Ab8BvwG/AQG/AQsgBEEBaiEBQfgAIRAMvQILIARBAWohAUH5ACEQDLwCCwJAIAEiBCACRw0AQY8BIRAM1QILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQZHPgIAAai0AAEcNvQEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQY8BIRAM1QILIABBADYCACAQQQFqIQFBGCEQDLoBCwJAIAEiBCACRw0AQZABIRAM1AILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQZfPgIAAai0AAEcNvAEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZABIRAM1AILIABBADYCACAQQQFqIQFBFyEQDLkBCwJAIAEiBCACRw0AQZEBIRAM0wILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQZrPgIAAai0AAEcNuwEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZEBIRAM0wILIABBADYCACAQQQFqIQFBFSEQDLgBCwJAIAEiBCACRw0AQZIBIRAM0gILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQaHPgIAAai0AAEcNugEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZIBIRAM0gILIABBADYCACAQQQFqIQFBHiEQDLcBCwJAIAEiBCACRw0AQZMBIRAM0QILIAQtAABBzABHDbgBIARBAWohAUEKIRAMtgELAkAgBCACRw0AQZQBIRAM0AILAkACQCAELQAAQb9/ag4PALkBuQG5AbkBuQG5AbkBuQG5AbkBuQG5AbkBAbkBCyAEQQFqIQFB/gAhEAy3AgsgBEEBaiEBQf8AIRAMtgILAkAgBCACRw0AQZUBIRAMzwILAkACQCAELQAAQb9/ag4DALgBAbgBCyAEQQFqIQFB/QAhEAy2AgsgBEEBaiEEQYABIRAMtQILAkAgBCACRw0AQZYBIRAMzgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQafPgIAAai0AAEcNtgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZYBIRAMzgILIABBADYCACAQQQFqIQFBCyEQDLMBCwJAIAQgAkcNAEGXASEQDM0CCwJAAkACQAJAIAQtAABBU2oOIwC4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBuAG4AbgBAbgBuAG4AbgBuAECuAG4AbgBA7gBCyAEQQFqIQFB+wAhEAy2AgsgBEEBaiEBQfwAIRAMtQILIARBAWohBEGBASEQDLQCCyAEQQFqIQRBggEhEAyzAgsCQCAEIAJHDQBBmAEhEAzMAgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBqc+AgABqLQAARw20ASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmAEhEAzMAgsgAEEANgIAIBBBAWohAUEZIRAMsQELAkAgBCACRw0AQZkBIRAMywILIAIgBGsgACgCACIBaiEUIAQgAWtBBWohEAJAA0AgBC0AACABQa7PgIAAai0AAEcNswEgAUEFRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZkBIRAMywILIABBADYCACAQQQFqIQFBBiEQDLABCwJAIAQgAkcNAEGaASEQDMoCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG0z4CAAGotAABHDbIBIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGaASEQDMoCCyAAQQA2AgAgEEEBaiEBQRwhEAyvAQsCQCAEIAJHDQBBmwEhEAzJAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBts+AgABqLQAARw2xASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBmwEhEAzJAgsgAEEANgIAIBBBAWohAUEnIRAMrgELAkAgBCACRw0AQZwBIRAMyAILAkACQCAELQAAQax/ag4CAAGxAQsgBEEBaiEEQYYBIRAMrwILIARBAWohBEGHASEQDK4CCwJAIAQgAkcNAEGdASEQDMcCCyACIARrIAAoAgAiAWohFCAEIAFrQQFqIRACQANAIAQtAAAgAUG4z4CAAGotAABHDa8BIAFBAUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGdASEQDMcCCyAAQQA2AgAgEEEBaiEBQSYhEAysAQsCQCAEIAJHDQBBngEhEAzGAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFBus+AgABqLQAARw2uASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBngEhEAzGAgsgAEEANgIAIBBBAWohAUEDIRAMqwELAkAgBCACRw0AQZ8BIRAMxQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNrQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQZ8BIRAMxQILIABBADYCACAQQQFqIQFBDCEQDKoBCwJAIAQgAkcNAEGgASEQDMQCCyACIARrIAAoAgAiAWohFCAEIAFrQQNqIRACQANAIAQtAAAgAUG8z4CAAGotAABHDawBIAFBA0YNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGgASEQDMQCCyAAQQA2AgAgEEEBaiEBQQ0hEAypAQsCQCAEIAJHDQBBoQEhEAzDAgsCQAJAIAQtAABBun9qDgsArAGsAawBrAGsAawBrAGsAawBAawBCyAEQQFqIQRBiwEhEAyqAgsgBEEBaiEEQYwBIRAMqQILAkAgBCACRw0AQaIBIRAMwgILIAQtAABB0ABHDakBIARBAWohBAzpAQsCQCAEIAJHDQBBowEhEAzBAgsCQAJAIAQtAABBt39qDgcBqgGqAaoBqgGqAQCqAQsgBEEBaiEEQY4BIRAMqAILIARBAWohAUEiIRAMpgELAkAgBCACRw0AQaQBIRAMwAILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQcDPgIAAai0AAEcNqAEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaQBIRAMwAILIABBADYCACAQQQFqIQFBHSEQDKUBCwJAIAQgAkcNAEGlASEQDL8CCwJAAkAgBC0AAEGuf2oOAwCoAQGoAQsgBEEBaiEEQZABIRAMpgILIARBAWohAUEEIRAMpAELAkAgBCACRw0AQaYBIRAMvgILAkACQAJAAkACQCAELQAAQb9/ag4VAKoBqgGqAaoBqgGqAaoBqgGqAaoBAaoBqgECqgGqAQOqAaoBBKoBCyAEQQFqIQRBiAEhEAyoAgsgBEEBaiEEQYkBIRAMpwILIARBAWohBEGKASEQDKYCCyAEQQFqIQRBjwEhEAylAgsgBEEBaiEEQZEBIRAMpAILAkAgBCACRw0AQacBIRAMvQILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQe3PgIAAai0AAEcNpQEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQacBIRAMvQILIABBADYCACAQQQFqIQFBESEQDKIBCwJAIAQgAkcNAEGoASEQDLwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHCz4CAAGotAABHDaQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGoASEQDLwCCyAAQQA2AgAgEEEBaiEBQSwhEAyhAQsCQCAEIAJHDQBBqQEhEAy7AgsgAiAEayAAKAIAIgFqIRQgBCABa0EEaiEQAkADQCAELQAAIAFBxc+AgABqLQAARw2jASABQQRGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBqQEhEAy7AgsgAEEANgIAIBBBAWohAUErIRAMoAELAkAgBCACRw0AQaoBIRAMugILIAIgBGsgACgCACIBaiEUIAQgAWtBAmohEAJAA0AgBC0AACABQcrPgIAAai0AAEcNogEgAUECRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQaoBIRAMugILIABBADYCACAQQQFqIQFBFCEQDJ8BCwJAIAQgAkcNAEGrASEQDLkCCwJAAkACQAJAIAQtAABBvn9qDg8AAQKkAaQBpAGkAaQBpAGkAaQBpAGkAaQBA6QBCyAEQQFqIQRBkwEhEAyiAgsgBEEBaiEEQZQBIRAMoQILIARBAWohBEGVASEQDKACCyAEQQFqIQRBlgEhEAyfAgsCQCAEIAJHDQBBrAEhEAy4AgsgBC0AAEHFAEcNnwEgBEEBaiEEDOABCwJAIAQgAkcNAEGtASEQDLcCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHNz4CAAGotAABHDZ8BIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEGtASEQDLcCCyAAQQA2AgAgEEEBaiEBQQ4hEAycAQsCQCAEIAJHDQBBrgEhEAy2AgsgBC0AAEHQAEcNnQEgBEEBaiEBQSUhEAybAQsCQCAEIAJHDQBBrwEhEAy1AgsgAiAEayAAKAIAIgFqIRQgBCABa0EIaiEQAkADQCAELQAAIAFB0M+AgABqLQAARw2dASABQQhGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBrwEhEAy1AgsgAEEANgIAIBBBAWohAUEqIRAMmgELAkAgBCACRw0AQbABIRAMtAILAkACQCAELQAAQat/ag4LAJ0BnQGdAZ0BnQGdAZ0BnQGdAQGdAQsgBEEBaiEEQZoBIRAMmwILIARBAWohBEGbASEQDJoCCwJAIAQgAkcNAEGxASEQDLMCCwJAAkAgBC0AAEG/f2oOFACcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAGcAZwBnAEBnAELIARBAWohBEGZASEQDJoCCyAEQQFqIQRBnAEhEAyZAgsCQCAEIAJHDQBBsgEhEAyyAgsgAiAEayAAKAIAIgFqIRQgBCABa0EDaiEQAkADQCAELQAAIAFB2c+AgABqLQAARw2aASABQQNGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBsgEhEAyyAgsgAEEANgIAIBBBAWohAUEhIRAMlwELAkAgBCACRw0AQbMBIRAMsQILIAIgBGsgACgCACIBaiEUIAQgAWtBBmohEAJAA0AgBC0AACABQd3PgIAAai0AAEcNmQEgAUEGRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbMBIRAMsQILIABBADYCACAQQQFqIQFBGiEQDJYBCwJAIAQgAkcNAEG0ASEQDLACCwJAAkACQCAELQAAQbt/ag4RAJoBmgGaAZoBmgGaAZoBmgGaAQGaAZoBmgGaAZoBApoBCyAEQQFqIQRBnQEhEAyYAgsgBEEBaiEEQZ4BIRAMlwILIARBAWohBEGfASEQDJYCCwJAIAQgAkcNAEG1ASEQDK8CCyACIARrIAAoAgAiAWohFCAEIAFrQQVqIRACQANAIAQtAAAgAUHkz4CAAGotAABHDZcBIAFBBUYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG1ASEQDK8CCyAAQQA2AgAgEEEBaiEBQSghEAyUAQsCQCAEIAJHDQBBtgEhEAyuAgsgAiAEayAAKAIAIgFqIRQgBCABa0ECaiEQAkADQCAELQAAIAFB6s+AgABqLQAARw2WASABQQJGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBtgEhEAyuAgsgAEEANgIAIBBBAWohAUEHIRAMkwELAkAgBCACRw0AQbcBIRAMrQILAkACQCAELQAAQbt/ag4OAJYBlgGWAZYBlgGWAZYBlgGWAZYBlgGWAQGWAQsgBEEBaiEEQaEBIRAMlAILIARBAWohBEGiASEQDJMCCwJAIAQgAkcNAEG4ASEQDKwCCyACIARrIAAoAgAiAWohFCAEIAFrQQJqIRACQANAIAQtAAAgAUHtz4CAAGotAABHDZQBIAFBAkYNASABQQFqIQEgBEEBaiIEIAJHDQALIAAgFDYCAEG4ASEQDKwCCyAAQQA2AgAgEEEBaiEBQRIhEAyRAQsCQCAEIAJHDQBBuQEhEAyrAgsgAiAEayAAKAIAIgFqIRQgBCABa0EBaiEQAkADQCAELQAAIAFB8M+AgABqLQAARw2TASABQQFGDQEgAUEBaiEBIARBAWoiBCACRw0ACyAAIBQ2AgBBuQEhEAyrAgsgAEEANgIAIBBBAWohAUEgIRAMkAELAkAgBCACRw0AQboBIRAMqgILIAIgBGsgACgCACIBaiEUIAQgAWtBAWohEAJAA0AgBC0AACABQfLPgIAAai0AAEcNkgEgAUEBRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQboBIRAMqgILIABBADYCACAQQQFqIQFBDyEQDI8BCwJAIAQgAkcNAEG7ASEQDKkCCwJAAkAgBC0AAEG3f2oOBwCSAZIBkgGSAZIBAZIBCyAEQQFqIQRBpQEhEAyQAgsgBEEBaiEEQaYBIRAMjwILAkAgBCACRw0AQbwBIRAMqAILIAIgBGsgACgCACIBaiEUIAQgAWtBB2ohEAJAA0AgBC0AACABQfTPgIAAai0AAEcNkAEgAUEHRg0BIAFBAWohASAEQQFqIgQgAkcNAAsgACAUNgIAQbwBIRAMqAILIABBADYCACAQQQFqIQFBGyEQDI0BCwJAIAQgAkcNAEG9ASEQDKcCCwJAAkACQCAELQAAQb5/ag4SAJEBkQGRAZEBkQGRAZEBkQGRAQGRAZEBkQGRAZEBkQECkQELIARBAWohBEGkASEQDI8CCyAEQQFqIQRBpwEhEAyOAgsgBEEBaiEEQagBIRAMjQILAkAgBCACRw0AQb4BIRAMpgILIAQtAABBzgBHDY0BIARBAWohBAzPAQsCQCAEIAJHDQBBvwEhEAylAgsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAELQAAQb9/ag4VAAECA5wBBAUGnAGcAZwBBwgJCgucAQwNDg+cAQsgBEEBaiEBQegAIRAMmgILIARBAWohAUHpACEQDJkCCyAEQQFqIQFB7gAhEAyYAgsgBEEBaiEBQfIAIRAMlwILIARBAWohAUHzACEQDJYCCyAEQQFqIQFB9gAhEAyVAgsgBEEBaiEBQfcAIRAMlAILIARBAWohAUH6ACEQDJMCCyAEQQFqIQRBgwEhEAySAgsgBEEBaiEEQYQBIRAMkQILIARBAWohBEGFASEQDJACCyAEQQFqIQRBkgEhEAyPAgsgBEEBaiEEQZgBIRAMjgILIARBAWohBEGgASEQDI0CCyAEQQFqIQRBowEhEAyMAgsgBEEBaiEEQaoBIRAMiwILAkAgBCACRg0AIABBkICAgAA2AgggACAENgIEQasBIRAMiwILQcABIRAMowILIAAgBSACEKqAgIAAIgENiwEgBSEBDFwLAkAgBiACRg0AIAZBAWohBQyNAQtBwgEhEAyhAgsDQAJAIBAtAABBdmoOBIwBAACPAQALIBBBAWoiECACRw0AC0HDASEQDKACCwJAIAcgAkYNACAAQZGAgIAANgIIIAAgBzYCBCAHIQFBASEQDIcCC0HEASEQDJ8CCwJAIAcgAkcNAEHFASEQDJ8CCwJAAkAgBy0AAEF2ag4EAc4BzgEAzgELIAdBAWohBgyNAQsgB0EBaiEFDIkBCwJAIAcgAkcNAEHGASEQDJ4CCwJAAkAgBy0AAEF2ag4XAY8BjwEBjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BAI8BCyAHQQFqIQcLQbABIRAMhAILAkAgCCACRw0AQcgBIRAMnQILIAgtAABBIEcNjQEgAEEAOwEyIAhBAWohAUGzASEQDIMCCyABIRcCQANAIBciByACRg0BIActAABBUGpB/wFxIhBBCk8NzAECQCAALwEyIhRBmTNLDQAgACAUQQpsIhQ7ATIgEEH//wNzIBRB/v8DcUkNACAHQQFqIRcgACAUIBBqIhA7ATIgEEH//wNxQegHSQ0BCwtBACEQIABBADYCHCAAQcGJgIAANgIQIABBDTYCDCAAIAdBAWo2AhQMnAILQccBIRAMmwILIAAgCCACEK6AgIAAIhBFDcoBIBBBFUcNjAEgAEHIATYCHCAAIAg2AhQgAEHJl4CAADYCECAAQRU2AgxBACEQDJoCCwJAIAkgAkcNAEHMASEQDJoCC0EAIRRBASEXQQEhFkEAIRACQAJAAkACQAJAAkACQAJAAkAgCS0AAEFQag4KlgGVAQABAgMEBQYIlwELQQIhEAwGC0EDIRAMBQtBBCEQDAQLQQUhEAwDC0EGIRAMAgtBByEQDAELQQghEAtBACEXQQAhFkEAIRQMjgELQQkhEEEBIRRBACEXQQAhFgyNAQsCQCAKIAJHDQBBzgEhEAyZAgsgCi0AAEEuRw2OASAKQQFqIQkMygELIAsgAkcNjgFB0AEhEAyXAgsCQCALIAJGDQAgAEGOgICAADYCCCAAIAs2AgRBtwEhEAz+AQtB0QEhEAyWAgsCQCAEIAJHDQBB0gEhEAyWAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EEaiELA0AgBC0AACAQQfzPgIAAai0AAEcNjgEgEEEERg3pASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHSASEQDJUCCyAAIAwgAhCsgICAACIBDY0BIAwhAQy4AQsCQCAEIAJHDQBB1AEhEAyUAgsgAiAEayAAKAIAIhBqIRQgBCAQa0EBaiEMA0AgBC0AACAQQYHQgIAAai0AAEcNjwEgEEEBRg2OASAQQQFqIRAgBEEBaiIEIAJHDQALIAAgFDYCAEHUASEQDJMCCwJAIAQgAkcNAEHWASEQDJMCCyACIARrIAAoAgAiEGohFCAEIBBrQQJqIQsDQCAELQAAIBBBg9CAgABqLQAARw2OASAQQQJGDZABIBBBAWohECAEQQFqIgQgAkcNAAsgACAUNgIAQdYBIRAMkgILAkAgBCACRw0AQdcBIRAMkgILAkACQCAELQAAQbt/ag4QAI8BjwGPAY8BjwGPAY8BjwGPAY8BjwGPAY8BjwEBjwELIARBAWohBEG7ASEQDPkBCyAEQQFqIQRBvAEhEAz4AQsCQCAEIAJHDQBB2AEhEAyRAgsgBC0AAEHIAEcNjAEgBEEBaiEEDMQBCwJAIAQgAkYNACAAQZCAgIAANgIIIAAgBDYCBEG+ASEQDPcBC0HZASEQDI8CCwJAIAQgAkcNAEHaASEQDI8CCyAELQAAQcgARg3DASAAQQE6ACgMuQELIABBAjoALyAAIAQgAhCmgICAACIQDY0BQcIBIRAM9AELIAAtAChBf2oOArcBuQG4AQsDQAJAIAQtAABBdmoOBACOAY4BAI4BCyAEQQFqIgQgAkcNAAtB3QEhEAyLAgsgAEEAOgAvIAAtAC1BBHFFDYQCCyAAQQA6AC8gAEEBOgA0IAEhAQyMAQsgEEEVRg3aASAAQQA2AhwgACABNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAyIAgsCQCAAIBAgAhC0gICAACIEDQAgECEBDIECCwJAIARBFUcNACAAQQM2AhwgACAQNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAyIAgsgAEEANgIcIAAgEDYCFCAAQaeOgIAANgIQIABBEjYCDEEAIRAMhwILIBBBFUYN1gEgAEEANgIcIAAgATYCFCAAQdqNgIAANgIQIABBFDYCDEEAIRAMhgILIAAoAgQhFyAAQQA2AgQgECARp2oiFiEBIAAgFyAQIBYgFBsiEBC1gICAACIURQ2NASAAQQc2AhwgACAQNgIUIAAgFDYCDEEAIRAMhQILIAAgAC8BMEGAAXI7ATAgASEBC0EqIRAM6gELIBBBFUYN0QEgAEEANgIcIAAgATYCFCAAQYOMgIAANgIQIABBEzYCDEEAIRAMggILIBBBFUYNzwEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAMgQILIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDI0BCyAAQQw2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAMgAILIBBBFUYNzAEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM/wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIwBCyAAQQ02AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/gELIBBBFUYNyQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM/QELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIsBCyAAQQ42AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM/AELIABBADYCHCAAIAE2AhQgAEHAlYCAADYCECAAQQI2AgxBACEQDPsBCyAQQRVGDcUBIABBADYCHCAAIAE2AhQgAEHGjICAADYCECAAQSM2AgxBACEQDPoBCyAAQRA2AhwgACABNgIUIAAgEDYCDEEAIRAM+QELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDPEBCyAAQRE2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM+AELIBBBFUYNwQEgAEEANgIcIAAgATYCFCAAQcaMgIAANgIQIABBIzYCDEEAIRAM9wELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC5gICAACIQDQAgAUEBaiEBDIgBCyAAQRM2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM9gELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC5gICAACIEDQAgAUEBaiEBDO0BCyAAQRQ2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM9QELIBBBFUYNvQEgAEEANgIcIAAgATYCFCAAQZqPgIAANgIQIABBIjYCDEEAIRAM9AELIAAoAgQhECAAQQA2AgQCQCAAIBAgARC3gICAACIQDQAgAUEBaiEBDIYBCyAAQRY2AhwgACAQNgIMIAAgAUEBajYCFEEAIRAM8wELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARC3gICAACIEDQAgAUEBaiEBDOkBCyAAQRc2AhwgACAENgIMIAAgAUEBajYCFEEAIRAM8gELIABBADYCHCAAIAE2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDPEBC0IBIRELIBBBAWohAQJAIAApAyAiEkL//////////w9WDQAgACASQgSGIBGENwMgIAEhAQyEAQsgAEEANgIcIAAgATYCFCAAQa2JgIAANgIQIABBDDYCDEEAIRAM7wELIABBADYCHCAAIBA2AhQgAEHNk4CAADYCECAAQQw2AgxBACEQDO4BCyAAKAIEIRcgAEEANgIEIBAgEadqIhYhASAAIBcgECAWIBQbIhAQtYCAgAAiFEUNcyAAQQU2AhwgACAQNgIUIAAgFDYCDEEAIRAM7QELIABBADYCHCAAIBA2AhQgAEGqnICAADYCECAAQQ82AgxBACEQDOwBCyAAIBAgAhC0gICAACIBDQEgECEBC0EOIRAM0QELAkAgAUEVRw0AIABBAjYCHCAAIBA2AhQgAEGwmICAADYCECAAQRU2AgxBACEQDOoBCyAAQQA2AhwgACAQNgIUIABBp46AgAA2AhAgAEESNgIMQQAhEAzpAQsgAUEBaiEQAkAgAC8BMCIBQYABcUUNAAJAIAAgECACELuAgIAAIgENACAQIQEMcAsgAUEVRw26ASAAQQU2AhwgACAQNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAzpAQsCQCABQaAEcUGgBEcNACAALQAtQQJxDQAgAEEANgIcIAAgEDYCFCAAQZaTgIAANgIQIABBBDYCDEEAIRAM6QELIAAgECACEL2AgIAAGiAQIQECQAJAAkACQAJAIAAgECACELOAgIAADhYCAQAEBAQEBAQEBAQEBAQEBAQEBAQDBAsgAEEBOgAuCyAAIAAvATBBwAByOwEwIBAhAQtBJiEQDNEBCyAAQSM2AhwgACAQNgIUIABBpZaAgAA2AhAgAEEVNgIMQQAhEAzpAQsgAEEANgIcIAAgEDYCFCAAQdWLgIAANgIQIABBETYCDEEAIRAM6AELIAAtAC1BAXFFDQFBwwEhEAzOAQsCQCANIAJGDQADQAJAIA0tAABBIEYNACANIQEMxAELIA1BAWoiDSACRw0AC0ElIRAM5wELQSUhEAzmAQsgACgCBCEEIABBADYCBCAAIAQgDRCvgICAACIERQ2tASAAQSY2AhwgACAENgIMIAAgDUEBajYCFEEAIRAM5QELIBBBFUYNqwEgAEEANgIcIAAgATYCFCAAQf2NgIAANgIQIABBHTYCDEEAIRAM5AELIABBJzYCHCAAIAE2AhQgACAQNgIMQQAhEAzjAQsgECEBQQEhFAJAAkACQAJAAkACQAJAIAAtACxBfmoOBwYFBQMBAgAFCyAAIAAvATBBCHI7ATAMAwtBAiEUDAELQQQhFAsgAEEBOgAsIAAgAC8BMCAUcjsBMAsgECEBC0ErIRAMygELIABBADYCHCAAIBA2AhQgAEGrkoCAADYCECAAQQs2AgxBACEQDOIBCyAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMQQAhEAzhAQsgAEEAOgAsIBAhAQy9AQsgECEBQQEhFAJAAkACQAJAAkAgAC0ALEF7ag4EAwECAAULIAAgAC8BMEEIcjsBMAwDC0ECIRQMAQtBBCEUCyAAQQE6ACwgACAALwEwIBRyOwEwCyAQIQELQSkhEAzFAQsgAEEANgIcIAAgATYCFCAAQfCUgIAANgIQIABBAzYCDEEAIRAM3QELAkAgDi0AAEENRw0AIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDkEBaiEBDHULIABBLDYCHCAAIAE2AgwgACAOQQFqNgIUQQAhEAzdAQsgAC0ALUEBcUUNAUHEASEQDMMBCwJAIA4gAkcNAEEtIRAM3AELAkACQANAAkAgDi0AAEF2ag4EAgAAAwALIA5BAWoiDiACRw0AC0EtIRAM3QELIAAoAgQhASAAQQA2AgQCQCAAIAEgDhCxgICAACIBDQAgDiEBDHQLIABBLDYCHCAAIA42AhQgACABNgIMQQAhEAzcAQsgACgCBCEBIABBADYCBAJAIAAgASAOELGAgIAAIgENACAOQQFqIQEMcwsgAEEsNgIcIAAgATYCDCAAIA5BAWo2AhRBACEQDNsBCyAAKAIEIQQgAEEANgIEIAAgBCAOELGAgIAAIgQNoAEgDiEBDM4BCyAQQSxHDQEgAUEBaiEQQQEhAQJAAkACQAJAAkAgAC0ALEF7ag4EAwECBAALIBAhAQwEC0ECIQEMAQtBBCEBCyAAQQE6ACwgACAALwEwIAFyOwEwIBAhAQwBCyAAIAAvATBBCHI7ATAgECEBC0E5IRAMvwELIABBADoALCABIQELQTQhEAy9AQsgACAALwEwQSByOwEwIAEhAQwCCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQsYCAgAAiBA0AIAEhAQzHAQsgAEE3NgIcIAAgATYCFCAAIAQ2AgxBACEQDNQBCyAAQQg6ACwgASEBC0EwIRAMuQELAkAgAC0AKEEBRg0AIAEhAQwECyAALQAtQQhxRQ2TASABIQEMAwsgAC0AMEEgcQ2UAUHFASEQDLcBCwJAIA8gAkYNAAJAA0ACQCAPLQAAQVBqIgFB/wFxQQpJDQAgDyEBQTUhEAy6AQsgACkDICIRQpmz5syZs+bMGVYNASAAIBFCCn4iETcDICARIAGtQv8BgyISQn+FVg0BIAAgESASfDcDICAPQQFqIg8gAkcNAAtBOSEQDNEBCyAAKAIEIQIgAEEANgIEIAAgAiAPQQFqIgQQsYCAgAAiAg2VASAEIQEMwwELQTkhEAzPAQsCQCAALwEwIgFBCHFFDQAgAC0AKEEBRw0AIAAtAC1BCHFFDZABCyAAIAFB9/sDcUGABHI7ATAgDyEBC0E3IRAMtAELIAAgAC8BMEEQcjsBMAyrAQsgEEEVRg2LASAAQQA2AhwgACABNgIUIABB8I6AgAA2AhAgAEEcNgIMQQAhEAzLAQsgAEHDADYCHCAAIAE2AgwgACANQQFqNgIUQQAhEAzKAQsCQCABLQAAQTpHDQAgACgCBCEQIABBADYCBAJAIAAgECABEK+AgIAAIhANACABQQFqIQEMYwsgAEHDADYCHCAAIBA2AgwgACABQQFqNgIUQQAhEAzKAQsgAEEANgIcIAAgATYCFCAAQbGRgIAANgIQIABBCjYCDEEAIRAMyQELIABBADYCHCAAIAE2AhQgAEGgmYCAADYCECAAQR42AgxBACEQDMgBCyAAQQA2AgALIABBgBI7ASogACAXQQFqIgEgAhCogICAACIQDQEgASEBC0HHACEQDKwBCyAQQRVHDYMBIABB0QA2AhwgACABNgIUIABB45eAgAA2AhAgAEEVNgIMQQAhEAzEAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMXgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAzDAQsgAEEANgIcIAAgFDYCFCAAQcGogIAANgIQIABBBzYCDCAAQQA2AgBBACEQDMIBCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxdCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDMEBC0EAIRAgAEEANgIcIAAgATYCFCAAQYCRgIAANgIQIABBCTYCDAzAAQsgEEEVRg19IABBADYCHCAAIAE2AhQgAEGUjYCAADYCECAAQSE2AgxBACEQDL8BC0EBIRZBACEXQQAhFEEBIRALIAAgEDoAKyABQQFqIQECQAJAIAAtAC1BEHENAAJAAkACQCAALQAqDgMBAAIECyAWRQ0DDAILIBQNAQwCCyAXRQ0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQrYCAgAAiEA0AIAEhAQxcCyAAQdgANgIcIAAgATYCFCAAIBA2AgxBACEQDL4BCyAAKAIEIQQgAEEANgIEAkAgACAEIAEQrYCAgAAiBA0AIAEhAQytAQsgAEHZADYCHCAAIAE2AhQgACAENgIMQQAhEAy9AQsgACgCBCEEIABBADYCBAJAIAAgBCABEK2AgIAAIgQNACABIQEMqwELIABB2gA2AhwgACABNgIUIAAgBDYCDEEAIRAMvAELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKkBCyAAQdwANgIcIAAgATYCFCAAIAQ2AgxBACEQDLsBCwJAIAEtAABBUGoiEEH/AXFBCk8NACAAIBA6ACogAUEBaiEBQc8AIRAMogELIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCtgICAACIEDQAgASEBDKcBCyAAQd4ANgIcIAAgATYCFCAAIAQ2AgxBACEQDLoBCyAAQQA2AgAgF0EBaiEBAkAgAC0AKUEjTw0AIAEhAQxZCyAAQQA2AhwgACABNgIUIABB04mAgAA2AhAgAEEINgIMQQAhEAy5AQsgAEEANgIAC0EAIRAgAEEANgIcIAAgATYCFCAAQZCzgIAANgIQIABBCDYCDAy3AQsgAEEANgIAIBdBAWohAQJAIAAtAClBIUcNACABIQEMVgsgAEEANgIcIAAgATYCFCAAQZuKgIAANgIQIABBCDYCDEEAIRAMtgELIABBADYCACAXQQFqIQECQCAALQApIhBBXWpBC08NACABIQEMVQsCQCAQQQZLDQBBASAQdEHKAHFFDQAgASEBDFULQQAhECAAQQA2AhwgACABNgIUIABB94mAgAA2AhAgAEEINgIMDLUBCyAQQRVGDXEgAEEANgIcIAAgATYCFCAAQbmNgIAANgIQIABBGjYCDEEAIRAMtAELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFQLIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMswELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0gA2AhwgACABNgIUIAAgEDYCDEEAIRAMsgELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDE0LIABB0wA2AhwgACABNgIUIAAgEDYCDEEAIRAMsQELIAAoAgQhECAAQQA2AgQCQCAAIBAgARCngICAACIQDQAgASEBDFELIABB5QA2AhwgACABNgIUIAAgEDYCDEEAIRAMsAELIABBADYCHCAAIAE2AhQgAEHGioCAADYCECAAQQc2AgxBACEQDK8BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdIANgIcIAAgATYCFCAAIBA2AgxBACEQDK4BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxJCyAAQdMANgIcIAAgATYCFCAAIBA2AgxBACEQDK0BCyAAKAIEIRAgAEEANgIEAkAgACAQIAEQp4CAgAAiEA0AIAEhAQxNCyAAQeUANgIcIAAgATYCFCAAIBA2AgxBACEQDKwBCyAAQQA2AhwgACABNgIUIABB3IiAgAA2AhAgAEEHNgIMQQAhEAyrAQsgEEE/Rw0BIAFBAWohAQtBBSEQDJABC0EAIRAgAEEANgIcIAAgATYCFCAAQf2SgIAANgIQIABBBzYCDAyoAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHSADYCHCAAIAE2AhQgACAQNgIMQQAhEAynAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMQgsgAEHTADYCHCAAIAE2AhQgACAQNgIMQQAhEAymAQsgACgCBCEQIABBADYCBAJAIAAgECABEKeAgIAAIhANACABIQEMRgsgAEHlADYCHCAAIAE2AhQgACAQNgIMQQAhEAylAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHSADYCHCAAIBQ2AhQgACABNgIMQQAhEAykAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMPwsgAEHTADYCHCAAIBQ2AhQgACABNgIMQQAhEAyjAQsgACgCBCEBIABBADYCBAJAIAAgASAUEKeAgIAAIgENACAUIQEMQwsgAEHlADYCHCAAIBQ2AhQgACABNgIMQQAhEAyiAQsgAEEANgIcIAAgFDYCFCAAQcOPgIAANgIQIABBBzYCDEEAIRAMoQELIABBADYCHCAAIAE2AhQgAEHDj4CAADYCECAAQQc2AgxBACEQDKABC0EAIRAgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDAyfAQsgAEEANgIcIAAgFDYCFCAAQYycgIAANgIQIABBBzYCDEEAIRAMngELIABBADYCHCAAIBQ2AhQgAEH+kYCAADYCECAAQQc2AgxBACEQDJ0BCyAAQQA2AhwgACABNgIUIABBjpuAgAA2AhAgAEEGNgIMQQAhEAycAQsgEEEVRg1XIABBADYCHCAAIAE2AhQgAEHMjoCAADYCECAAQSA2AgxBACEQDJsBCyAAQQA2AgAgEEEBaiEBQSQhEAsgACAQOgApIAAoAgQhECAAQQA2AgQgACAQIAEQq4CAgAAiEA1UIAEhAQw+CyAAQQA2AgALQQAhECAAQQA2AhwgACAENgIUIABB8ZuAgAA2AhAgAEEGNgIMDJcBCyABQRVGDVAgAEEANgIcIAAgBTYCFCAAQfCMgIAANgIQIABBGzYCDEEAIRAMlgELIAAoAgQhBSAAQQA2AgQgACAFIBAQqYCAgAAiBQ0BIBBBAWohBQtBrQEhEAx7CyAAQcEBNgIcIAAgBTYCDCAAIBBBAWo2AhRBACEQDJMBCyAAKAIEIQYgAEEANgIEIAAgBiAQEKmAgIAAIgYNASAQQQFqIQYLQa4BIRAMeAsgAEHCATYCHCAAIAY2AgwgACAQQQFqNgIUQQAhEAyQAQsgAEEANgIcIAAgBzYCFCAAQZeLgIAANgIQIABBDTYCDEEAIRAMjwELIABBADYCHCAAIAg2AhQgAEHjkICAADYCECAAQQk2AgxBACEQDI4BCyAAQQA2AhwgACAINgIUIABBlI2AgAA2AhAgAEEhNgIMQQAhEAyNAQtBASEWQQAhF0EAIRRBASEQCyAAIBA6ACsgCUEBaiEIAkACQCAALQAtQRBxDQACQAJAAkAgAC0AKg4DAQACBAsgFkUNAwwCCyAUDQEMAgsgF0UNAQsgACgCBCEQIABBADYCBCAAIBAgCBCtgICAACIQRQ09IABByQE2AhwgACAINgIUIAAgEDYCDEEAIRAMjAELIAAoAgQhBCAAQQA2AgQgACAEIAgQrYCAgAAiBEUNdiAAQcoBNgIcIAAgCDYCFCAAIAQ2AgxBACEQDIsBCyAAKAIEIQQgAEEANgIEIAAgBCAJEK2AgIAAIgRFDXQgAEHLATYCHCAAIAk2AhQgACAENgIMQQAhEAyKAQsgACgCBCEEIABBADYCBCAAIAQgChCtgICAACIERQ1yIABBzQE2AhwgACAKNgIUIAAgBDYCDEEAIRAMiQELAkAgCy0AAEFQaiIQQf8BcUEKTw0AIAAgEDoAKiALQQFqIQpBtgEhEAxwCyAAKAIEIQQgAEEANgIEIAAgBCALEK2AgIAAIgRFDXAgAEHPATYCHCAAIAs2AhQgACAENgIMQQAhEAyIAQsgAEEANgIcIAAgBDYCFCAAQZCzgIAANgIQIABBCDYCDCAAQQA2AgBBACEQDIcBCyABQRVGDT8gAEEANgIcIAAgDDYCFCAAQcyOgIAANgIQIABBIDYCDEEAIRAMhgELIABBgQQ7ASggACgCBCEQIABCADcDACAAIBAgDEEBaiIMEKuAgIAAIhBFDTggAEHTATYCHCAAIAw2AhQgACAQNgIMQQAhEAyFAQsgAEEANgIAC0EAIRAgAEEANgIcIAAgBDYCFCAAQdibgIAANgIQIABBCDYCDAyDAQsgACgCBCEQIABCADcDACAAIBAgC0EBaiILEKuAgIAAIhANAUHGASEQDGkLIABBAjoAKAxVCyAAQdUBNgIcIAAgCzYCFCAAIBA2AgxBACEQDIABCyAQQRVGDTcgAEEANgIcIAAgBDYCFCAAQaSMgIAANgIQIABBEDYCDEEAIRAMfwsgAC0ANEEBRw00IAAgBCACELyAgIAAIhBFDTQgEEEVRw01IABB3AE2AhwgACAENgIUIABB1ZaAgAA2AhAgAEEVNgIMQQAhEAx+C0EAIRAgAEEANgIcIABBr4uAgAA2AhAgAEECNgIMIAAgFEEBajYCFAx9C0EAIRAMYwtBAiEQDGILQQ0hEAxhC0EPIRAMYAtBJSEQDF8LQRMhEAxeC0EVIRAMXQtBFiEQDFwLQRchEAxbC0EYIRAMWgtBGSEQDFkLQRohEAxYC0EbIRAMVwtBHCEQDFYLQR0hEAxVC0EfIRAMVAtBISEQDFMLQSMhEAxSC0HGACEQDFELQS4hEAxQC0EvIRAMTwtBOyEQDE4LQT0hEAxNC0HIACEQDEwLQckAIRAMSwtBywAhEAxKC0HMACEQDEkLQc4AIRAMSAtB0QAhEAxHC0HVACEQDEYLQdgAIRAMRQtB2QAhEAxEC0HbACEQDEMLQeQAIRAMQgtB5QAhEAxBC0HxACEQDEALQfQAIRAMPwtBjQEhEAw+C0GXASEQDD0LQakBIRAMPAtBrAEhEAw7C0HAASEQDDoLQbkBIRAMOQtBrwEhEAw4C0GxASEQDDcLQbIBIRAMNgtBtAEhEAw1C0G1ASEQDDQLQboBIRAMMwtBvQEhEAwyC0G/ASEQDDELQcEBIRAMMAsgAEEANgIcIAAgBDYCFCAAQemLgIAANgIQIABBHzYCDEEAIRAMSAsgAEHbATYCHCAAIAQ2AhQgAEH6loCAADYCECAAQRU2AgxBACEQDEcLIABB+AA2AhwgACAMNgIUIABBypiAgAA2AhAgAEEVNgIMQQAhEAxGCyAAQdEANgIcIAAgBTYCFCAAQbCXgIAANgIQIABBFTYCDEEAIRAMRQsgAEH5ADYCHCAAIAE2AhQgACAQNgIMQQAhEAxECyAAQfgANgIcIAAgATYCFCAAQcqYgIAANgIQIABBFTYCDEEAIRAMQwsgAEHkADYCHCAAIAE2AhQgAEHjl4CAADYCECAAQRU2AgxBACEQDEILIABB1wA2AhwgACABNgIUIABByZeAgAA2AhAgAEEVNgIMQQAhEAxBCyAAQQA2AhwgACABNgIUIABBuY2AgAA2AhAgAEEaNgIMQQAhEAxACyAAQcIANgIcIAAgATYCFCAAQeOYgIAANgIQIABBFTYCDEEAIRAMPwsgAEEANgIEIAAgDyAPELGAgIAAIgRFDQEgAEE6NgIcIAAgBDYCDCAAIA9BAWo2AhRBACEQDD4LIAAoAgQhBCAAQQA2AgQCQCAAIAQgARCxgICAACIERQ0AIABBOzYCHCAAIAQ2AgwgACABQQFqNgIUQQAhEAw+CyABQQFqIQEMLQsgD0EBaiEBDC0LIABBADYCHCAAIA82AhQgAEHkkoCAADYCECAAQQQ2AgxBACEQDDsLIABBNjYCHCAAIAQ2AhQgACACNgIMQQAhEAw6CyAAQS42AhwgACAONgIUIAAgBDYCDEEAIRAMOQsgAEHQADYCHCAAIAE2AhQgAEGRmICAADYCECAAQRU2AgxBACEQDDgLIA1BAWohAQwsCyAAQRU2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAw2CyAAQRs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw1CyAAQQ82AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAw0CyAAQQs2AhwgACABNgIUIABBkZeAgAA2AhAgAEEVNgIMQQAhEAwzCyAAQRo2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwyCyAAQQs2AhwgACABNgIUIABBgpmAgAA2AhAgAEEVNgIMQQAhEAwxCyAAQQo2AhwgACABNgIUIABB5JaAgAA2AhAgAEEVNgIMQQAhEAwwCyAAQR42AhwgACABNgIUIABB+ZeAgAA2AhAgAEEVNgIMQQAhEAwvCyAAQQA2AhwgACAQNgIUIABB2o2AgAA2AhAgAEEUNgIMQQAhEAwuCyAAQQQ2AhwgACABNgIUIABBsJiAgAA2AhAgAEEVNgIMQQAhEAwtCyAAQQA2AgAgC0EBaiELC0G4ASEQDBILIABBADYCACAQQQFqIQFB9QAhEAwRCyABIQECQCAALQApQQVHDQBB4wAhEAwRC0HiACEQDBALQQAhECAAQQA2AhwgAEHkkYCAADYCECAAQQc2AgwgACAUQQFqNgIUDCgLIABBADYCACAXQQFqIQFBwAAhEAwOC0EBIQELIAAgAToALCAAQQA2AgAgF0EBaiEBC0EoIRAMCwsgASEBC0E4IRAMCQsCQCABIg8gAkYNAANAAkAgDy0AAEGAvoCAAGotAAAiAUEBRg0AIAFBAkcNAyAPQQFqIQEMBAsgD0EBaiIPIAJHDQALQT4hEAwiC0E+IRAMIQsgAEEAOgAsIA8hAQwBC0ELIRAMBgtBOiEQDAULIAFBAWohAUEtIRAMBAsgACABOgAsIABBADYCACAWQQFqIQFBDCEQDAMLIABBADYCACAXQQFqIQFBCiEQDAILIABBADYCAAsgAEEAOgAsIA0hAUEJIRAMAAsLQQAhECAAQQA2AhwgACALNgIUIABBzZCAgAA2AhAgAEEJNgIMDBcLQQAhECAAQQA2AhwgACAKNgIUIABB6YqAgAA2AhAgAEEJNgIMDBYLQQAhECAAQQA2AhwgACAJNgIUIABBt5CAgAA2AhAgAEEJNgIMDBULQQAhECAAQQA2AhwgACAINgIUIABBnJGAgAA2AhAgAEEJNgIMDBQLQQAhECAAQQA2AhwgACABNgIUIABBzZCAgAA2AhAgAEEJNgIMDBMLQQAhECAAQQA2AhwgACABNgIUIABB6YqAgAA2AhAgAEEJNgIMDBILQQAhECAAQQA2AhwgACABNgIUIABBt5CAgAA2AhAgAEEJNgIMDBELQQAhECAAQQA2AhwgACABNgIUIABBnJGAgAA2AhAgAEEJNgIMDBALQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA8LQQAhECAAQQA2AhwgACABNgIUIABBl5WAgAA2AhAgAEEPNgIMDA4LQQAhECAAQQA2AhwgACABNgIUIABBwJKAgAA2AhAgAEELNgIMDA0LQQAhECAAQQA2AhwgACABNgIUIABBlYmAgAA2AhAgAEELNgIMDAwLQQAhECAAQQA2AhwgACABNgIUIABB4Y+AgAA2AhAgAEEKNgIMDAsLQQAhECAAQQA2AhwgACABNgIUIABB+4+AgAA2AhAgAEEKNgIMDAoLQQAhECAAQQA2AhwgACABNgIUIABB8ZmAgAA2AhAgAEECNgIMDAkLQQAhECAAQQA2AhwgACABNgIUIABBxJSAgAA2AhAgAEECNgIMDAgLQQAhECAAQQA2AhwgACABNgIUIABB8pWAgAA2AhAgAEECNgIMDAcLIABBAjYCHCAAIAE2AhQgAEGcmoCAADYCECAAQRY2AgxBACEQDAYLQQEhEAwFC0HUACEQIAEiBCACRg0EIANBCGogACAEIAJB2MKAgABBChDFgICAACADKAIMIQQgAygCCA4DAQQCAAsQyoCAgAAACyAAQQA2AhwgAEG1moCAADYCECAAQRc2AgwgACAEQQFqNgIUQQAhEAwCCyAAQQA2AhwgACAENgIUIABBypqAgAA2AhAgAEEJNgIMQQAhEAwBCwJAIAEiBCACRw0AQSIhEAwBCyAAQYmAgIAANgIIIAAgBDYCBEEhIRALIANBEGokgICAgAAgEAuvAQECfyABKAIAIQYCQAJAIAIgA0YNACAEIAZqIQQgBiADaiACayEHIAIgBkF/cyAFaiIGaiEFA0ACQCACLQAAIAQtAABGDQBBAiEEDAMLAkAgBg0AQQAhBCAFIQIMAwsgBkF/aiEGIARBAWohBCACQQFqIgIgA0cNAAsgByEGIAMhAgsgAEEBNgIAIAEgBjYCACAAIAI2AgQPCyABQQA2AgAgACAENgIAIAAgAjYCBAsKACAAEMeAgIAAC/I2AQt/I4CAgIAAQRBrIgEkgICAgAACQEEAKAKg0ICAAA0AQQAQy4CAgABBgNSEgABrIgJB2QBJDQBBACEDAkBBACgC4NOAgAAiBA0AQQBCfzcC7NOAgABBAEKAgISAgIDAADcC5NOAgABBACABQQhqQXBxQdiq1aoFcyIENgLg04CAAEEAQQA2AvTTgIAAQQBBADYCxNOAgAALQQAgAjYCzNOAgABBAEGA1ISAADYCyNOAgABBAEGA1ISAADYCmNCAgABBACAENgKs0ICAAEEAQX82AqjQgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAtBgNSEgABBeEGA1ISAAGtBD3FBAEGA1ISAAEEIakEPcRsiA2oiBEEEaiACQUhqIgUgA2siA0EBcjYCAEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgABBgNSEgAAgBWpBODYCBAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEHsAUsNAAJAQQAoAojQgIAAIgZBECAAQRNqQXBxIABBC0kbIgJBA3YiBHYiA0EDcUUNAAJAAkAgA0EBcSAEckEBcyIFQQN0IgRBsNCAgABqIgMgBEG40ICAAGooAgAiBCgCCCICRw0AQQAgBkF+IAV3cTYCiNCAgAAMAQsgAyACNgIIIAIgAzYCDAsgBEEIaiEDIAQgBUEDdCIFQQNyNgIEIAQgBWoiBCAEKAIEQQFyNgIEDAwLIAJBACgCkNCAgAAiB00NAQJAIANFDQACQAJAIAMgBHRBAiAEdCIDQQAgA2tycSIDQQAgA2txQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmoiBEEDdCIDQbDQgIAAaiIFIANBuNCAgABqKAIAIgMoAggiAEcNAEEAIAZBfiAEd3EiBjYCiNCAgAAMAQsgBSAANgIIIAAgBTYCDAsgAyACQQNyNgIEIAMgBEEDdCIEaiAEIAJrIgU2AgAgAyACaiIAIAVBAXI2AgQCQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhBAJAAkAgBkEBIAdBA3Z0IghxDQBBACAGIAhyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAQ2AgwgAiAENgIIIAQgAjYCDCAEIAg2AggLIANBCGohA0EAIAA2ApzQgIAAQQAgBTYCkNCAgAAMDAtBACgCjNCAgAAiCUUNASAJQQAgCWtxQX9qIgMgA0EMdkEQcSIDdiIEQQV2QQhxIgUgA3IgBCAFdiIDQQJ2QQRxIgRyIAMgBHYiA0EBdkECcSIEciADIAR2IgNBAXZBAXEiBHIgAyAEdmpBAnRBuNKAgABqKAIAIgAoAgRBeHEgAmshBCAAIQUCQANAAkAgBSgCECIDDQAgBUEUaigCACIDRQ0CCyADKAIEQXhxIAJrIgUgBCAFIARJIgUbIQQgAyAAIAUbIQAgAyEFDAALCyAAKAIYIQoCQCAAKAIMIgggAEYNACAAKAIIIgNBACgCmNCAgABJGiAIIAM2AgggAyAINgIMDAsLAkAgAEEUaiIFKAIAIgMNACAAKAIQIgNFDQMgAEEQaiEFCwNAIAUhCyADIghBFGoiBSgCACIDDQAgCEEQaiEFIAgoAhAiAw0ACyALQQA2AgAMCgtBfyECIABBv39LDQAgAEETaiIDQXBxIQJBACgCjNCAgAAiB0UNAEEAIQsCQCACQYACSQ0AQR8hCyACQf///wdLDQAgA0EIdiIDIANBgP4/akEQdkEIcSIDdCIEIARBgOAfakEQdkEEcSIEdCIFIAVBgIAPakEQdkECcSIFdEEPdiADIARyIAVyayIDQQF0IAIgA0EVanZBAXFyQRxqIQsLQQAgAmshBAJAAkACQAJAIAtBAnRBuNKAgABqKAIAIgUNAEEAIQNBACEIDAELQQAhAyACQQBBGSALQQF2ayALQR9GG3QhAEEAIQgDQAJAIAUoAgRBeHEgAmsiBiAETw0AIAYhBCAFIQggBg0AQQAhBCAFIQggBSEDDAMLIAMgBUEUaigCACIGIAYgBSAAQR12QQRxakEQaigCACIFRhsgAyAGGyEDIABBAXQhACAFDQALCwJAIAMgCHINAEEAIQhBAiALdCIDQQAgA2tyIAdxIgNFDQMgA0EAIANrcUF/aiIDIANBDHZBEHEiA3YiBUEFdkEIcSIAIANyIAUgAHYiA0ECdkEEcSIFciADIAV2IgNBAXZBAnEiBXIgAyAFdiIDQQF2QQFxIgVyIAMgBXZqQQJ0QbjSgIAAaigCACEDCyADRQ0BCwNAIAMoAgRBeHEgAmsiBiAESSEAAkAgAygCECIFDQAgA0EUaigCACEFCyAGIAQgABshBCADIAggABshCCAFIQMgBQ0ACwsgCEUNACAEQQAoApDQgIAAIAJrTw0AIAgoAhghCwJAIAgoAgwiACAIRg0AIAgoAggiA0EAKAKY0ICAAEkaIAAgAzYCCCADIAA2AgwMCQsCQCAIQRRqIgUoAgAiAw0AIAgoAhAiA0UNAyAIQRBqIQULA0AgBSEGIAMiAEEUaiIFKAIAIgMNACAAQRBqIQUgACgCECIDDQALIAZBADYCAAwICwJAQQAoApDQgIAAIgMgAkkNAEEAKAKc0ICAACEEAkACQCADIAJrIgVBEEkNACAEIAJqIgAgBUEBcjYCBEEAIAU2ApDQgIAAQQAgADYCnNCAgAAgBCADaiAFNgIAIAQgAkEDcjYCBAwBCyAEIANBA3I2AgQgBCADaiIDIAMoAgRBAXI2AgRBAEEANgKc0ICAAEEAQQA2ApDQgIAACyAEQQhqIQMMCgsCQEEAKAKU0ICAACIAIAJNDQBBACgCoNCAgAAiAyACaiIEIAAgAmsiBUEBcjYCBEEAIAU2ApTQgIAAQQAgBDYCoNCAgAAgAyACQQNyNgIEIANBCGohAwwKCwJAAkBBACgC4NOAgABFDQBBACgC6NOAgAAhBAwBC0EAQn83AuzTgIAAQQBCgICEgICAwAA3AuTTgIAAQQAgAUEMakFwcUHYqtWqBXM2AuDTgIAAQQBBADYC9NOAgABBAEEANgLE04CAAEGAgAQhBAtBACEDAkAgBCACQccAaiIHaiIGQQAgBGsiC3EiCCACSw0AQQBBMDYC+NOAgAAMCgsCQEEAKALA04CAACIDRQ0AAkBBACgCuNOAgAAiBCAIaiIFIARNDQAgBSADTQ0BC0EAIQNBAEEwNgL404CAAAwKC0EALQDE04CAAEEEcQ0EAkACQAJAQQAoAqDQgIAAIgRFDQBByNOAgAAhAwNAAkAgAygCACIFIARLDQAgBSADKAIEaiAESw0DCyADKAIIIgMNAAsLQQAQy4CAgAAiAEF/Rg0FIAghBgJAQQAoAuTTgIAAIgNBf2oiBCAAcUUNACAIIABrIAQgAGpBACADa3FqIQYLIAYgAk0NBSAGQf7///8HSw0FAkBBACgCwNOAgAAiA0UNAEEAKAK404CAACIEIAZqIgUgBE0NBiAFIANLDQYLIAYQy4CAgAAiAyAARw0BDAcLIAYgAGsgC3EiBkH+////B0sNBCAGEMuAgIAAIgAgAygCACADKAIEakYNAyAAIQMLAkAgA0F/Rg0AIAJByABqIAZNDQACQCAHIAZrQQAoAujTgIAAIgRqQQAgBGtxIgRB/v///wdNDQAgAyEADAcLAkAgBBDLgICAAEF/Rg0AIAQgBmohBiADIQAMBwtBACAGaxDLgICAABoMBAsgAyEAIANBf0cNBQwDC0EAIQgMBwtBACEADAULIABBf0cNAgtBAEEAKALE04CAAEEEcjYCxNOAgAALIAhB/v///wdLDQEgCBDLgICAACEAQQAQy4CAgAAhAyAAQX9GDQEgA0F/Rg0BIAAgA08NASADIABrIgYgAkE4ak0NAQtBAEEAKAK404CAACAGaiIDNgK404CAAAJAIANBACgCvNOAgABNDQBBACADNgK804CAAAsCQAJAAkACQEEAKAKg0ICAACIERQ0AQcjTgIAAIQMDQCAAIAMoAgAiBSADKAIEIghqRg0CIAMoAggiAw0ADAMLCwJAAkBBACgCmNCAgAAiA0UNACAAIANPDQELQQAgADYCmNCAgAALQQAhA0EAIAY2AszTgIAAQQAgADYCyNOAgABBAEF/NgKo0ICAAEEAQQAoAuDTgIAANgKs0ICAAEEAQQA2AtTTgIAAA0AgA0HE0ICAAGogA0G40ICAAGoiBDYCACAEIANBsNCAgABqIgU2AgAgA0G80ICAAGogBTYCACADQczQgIAAaiADQcDQgIAAaiIFNgIAIAUgBDYCACADQdTQgIAAaiADQcjQgIAAaiIENgIAIAQgBTYCACADQdDQgIAAaiAENgIAIANBIGoiA0GAAkcNAAsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiBCAGQUhqIgUgA2siA0EBcjYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAM2ApTQgIAAQQAgBDYCoNCAgAAgACAFakE4NgIEDAILIAMtAAxBCHENACAEIAVJDQAgBCAATw0AIARBeCAEa0EPcUEAIARBCGpBD3EbIgVqIgBBACgClNCAgAAgBmoiCyAFayIFQQFyNgIEIAMgCCAGajYCBEEAQQAoAvDTgIAANgKk0ICAAEEAIAU2ApTQgIAAQQAgADYCoNCAgAAgBCALakE4NgIEDAELAkAgAEEAKAKY0ICAACIITw0AQQAgADYCmNCAgAAgACEICyAAIAZqIQVByNOAgAAhAwJAAkACQAJAAkACQAJAA0AgAygCACAFRg0BIAMoAggiAw0ADAILCyADLQAMQQhxRQ0BC0HI04CAACEDA0ACQCADKAIAIgUgBEsNACAFIAMoAgRqIgUgBEsNAwsgAygCCCEDDAALCyADIAA2AgAgAyADKAIEIAZqNgIEIABBeCAAa0EPcUEAIABBCGpBD3EbaiILIAJBA3I2AgQgBUF4IAVrQQ9xQQAgBUEIakEPcRtqIgYgCyACaiICayEDAkAgBiAERw0AQQAgAjYCoNCAgABBAEEAKAKU0ICAACADaiIDNgKU0ICAACACIANBAXI2AgQMAwsCQCAGQQAoApzQgIAARw0AQQAgAjYCnNCAgABBAEEAKAKQ0ICAACADaiIDNgKQ0ICAACACIANBAXI2AgQgAiADaiADNgIADAMLAkAgBigCBCIEQQNxQQFHDQAgBEF4cSEHAkACQCAEQf8BSw0AIAYoAggiBSAEQQN2IghBA3RBsNCAgABqIgBGGgJAIAYoAgwiBCAFRw0AQQBBACgCiNCAgABBfiAId3E2AojQgIAADAILIAQgAEYaIAQgBTYCCCAFIAQ2AgwMAQsgBigCGCEJAkACQCAGKAIMIgAgBkYNACAGKAIIIgQgCEkaIAAgBDYCCCAEIAA2AgwMAQsCQCAGQRRqIgQoAgAiBQ0AIAZBEGoiBCgCACIFDQBBACEADAELA0AgBCEIIAUiAEEUaiIEKAIAIgUNACAAQRBqIQQgACgCECIFDQALIAhBADYCAAsgCUUNAAJAAkAgBiAGKAIcIgVBAnRBuNKAgABqIgQoAgBHDQAgBCAANgIAIAANAUEAQQAoAozQgIAAQX4gBXdxNgKM0ICAAAwCCyAJQRBBFCAJKAIQIAZGG2ogADYCACAARQ0BCyAAIAk2AhgCQCAGKAIQIgRFDQAgACAENgIQIAQgADYCGAsgBigCFCIERQ0AIABBFGogBDYCACAEIAA2AhgLIAcgA2ohAyAGIAdqIgYoAgQhBAsgBiAEQX5xNgIEIAIgA2ogAzYCACACIANBAXI2AgQCQCADQf8BSw0AIANBeHFBsNCAgABqIQQCQAJAQQAoAojQgIAAIgVBASADQQN2dCIDcQ0AQQAgBSADcjYCiNCAgAAgBCEDDAELIAQoAgghAwsgAyACNgIMIAQgAjYCCCACIAQ2AgwgAiADNgIIDAMLQR8hBAJAIANB////B0sNACADQQh2IgQgBEGA/j9qQRB2QQhxIgR0IgUgBUGA4B9qQRB2QQRxIgV0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAQgBXIgAHJrIgRBAXQgAyAEQRVqdkEBcXJBHGohBAsgAiAENgIcIAJCADcCECAEQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiAEEBIAR0IghxDQAgBSACNgIAQQAgACAIcjYCjNCAgAAgAiAFNgIYIAIgAjYCCCACIAI2AgwMAwsgA0EAQRkgBEEBdmsgBEEfRht0IQQgBSgCACEAA0AgACIFKAIEQXhxIANGDQIgBEEddiEAIARBAXQhBCAFIABBBHFqQRBqIggoAgAiAA0ACyAIIAI2AgAgAiAFNgIYIAIgAjYCDCACIAI2AggMAgsgAEF4IABrQQ9xQQAgAEEIakEPcRsiA2oiCyAGQUhqIgggA2siA0EBcjYCBCAAIAhqQTg2AgQgBCAFQTcgBWtBD3FBACAFQUlqQQ9xG2pBQWoiCCAIIARBEGpJGyIIQSM2AgRBAEEAKALw04CAADYCpNCAgABBACADNgKU0ICAAEEAIAs2AqDQgIAAIAhBEGpBACkC0NOAgAA3AgAgCEEAKQLI04CAADcCCEEAIAhBCGo2AtDTgIAAQQAgBjYCzNOAgABBACAANgLI04CAAEEAQQA2AtTTgIAAIAhBJGohAwNAIANBBzYCACADQQRqIgMgBUkNAAsgCCAERg0DIAggCCgCBEF+cTYCBCAIIAggBGsiADYCACAEIABBAXI2AgQCQCAAQf8BSw0AIABBeHFBsNCAgABqIQMCQAJAQQAoAojQgIAAIgVBASAAQQN2dCIAcQ0AQQAgBSAAcjYCiNCAgAAgAyEFDAELIAMoAgghBQsgBSAENgIMIAMgBDYCCCAEIAM2AgwgBCAFNgIIDAQLQR8hAwJAIABB////B0sNACAAQQh2IgMgA0GA/j9qQRB2QQhxIgN0IgUgBUGA4B9qQRB2QQRxIgV0IgggCEGAgA9qQRB2QQJxIgh0QQ92IAMgBXIgCHJrIgNBAXQgACADQRVqdkEBcXJBHGohAwsgBCADNgIcIARCADcCECADQQJ0QbjSgIAAaiEFAkBBACgCjNCAgAAiCEEBIAN0IgZxDQAgBSAENgIAQQAgCCAGcjYCjNCAgAAgBCAFNgIYIAQgBDYCCCAEIAQ2AgwMBAsgAEEAQRkgA0EBdmsgA0EfRht0IQMgBSgCACEIA0AgCCIFKAIEQXhxIABGDQMgA0EddiEIIANBAXQhAyAFIAhBBHFqQRBqIgYoAgAiCA0ACyAGIAQ2AgAgBCAFNgIYIAQgBDYCDCAEIAQ2AggMAwsgBSgCCCIDIAI2AgwgBSACNgIIIAJBADYCGCACIAU2AgwgAiADNgIICyALQQhqIQMMBQsgBSgCCCIDIAQ2AgwgBSAENgIIIARBADYCGCAEIAU2AgwgBCADNgIIC0EAKAKU0ICAACIDIAJNDQBBACgCoNCAgAAiBCACaiIFIAMgAmsiA0EBcjYCBEEAIAM2ApTQgIAAQQAgBTYCoNCAgAAgBCACQQNyNgIEIARBCGohAwwDC0EAIQNBAEEwNgL404CAAAwCCwJAIAtFDQACQAJAIAggCCgCHCIFQQJ0QbjSgIAAaiIDKAIARw0AIAMgADYCACAADQFBACAHQX4gBXdxIgc2AozQgIAADAILIAtBEEEUIAsoAhAgCEYbaiAANgIAIABFDQELIAAgCzYCGAJAIAgoAhAiA0UNACAAIAM2AhAgAyAANgIYCyAIQRRqKAIAIgNFDQAgAEEUaiADNgIAIAMgADYCGAsCQAJAIARBD0sNACAIIAQgAmoiA0EDcjYCBCAIIANqIgMgAygCBEEBcjYCBAwBCyAIIAJqIgAgBEEBcjYCBCAIIAJBA3I2AgQgACAEaiAENgIAAkAgBEH/AUsNACAEQXhxQbDQgIAAaiEDAkACQEEAKAKI0ICAACIFQQEgBEEDdnQiBHENAEEAIAUgBHI2AojQgIAAIAMhBAwBCyADKAIIIQQLIAQgADYCDCADIAA2AgggACADNgIMIAAgBDYCCAwBC0EfIQMCQCAEQf///wdLDQAgBEEIdiIDIANBgP4/akEQdkEIcSIDdCIFIAVBgOAfakEQdkEEcSIFdCICIAJBgIAPakEQdkECcSICdEEPdiADIAVyIAJyayIDQQF0IAQgA0EVanZBAXFyQRxqIQMLIAAgAzYCHCAAQgA3AhAgA0ECdEG40oCAAGohBQJAIAdBASADdCICcQ0AIAUgADYCAEEAIAcgAnI2AozQgIAAIAAgBTYCGCAAIAA2AgggACAANgIMDAELIARBAEEZIANBAXZrIANBH0YbdCEDIAUoAgAhAgJAA0AgAiIFKAIEQXhxIARGDQEgA0EddiECIANBAXQhAyAFIAJBBHFqQRBqIgYoAgAiAg0ACyAGIAA2AgAgACAFNgIYIAAgADYCDCAAIAA2AggMAQsgBSgCCCIDIAA2AgwgBSAANgIIIABBADYCGCAAIAU2AgwgACADNgIICyAIQQhqIQMMAQsCQCAKRQ0AAkACQCAAIAAoAhwiBUECdEG40oCAAGoiAygCAEcNACADIAg2AgAgCA0BQQAgCUF+IAV3cTYCjNCAgAAMAgsgCkEQQRQgCigCECAARhtqIAg2AgAgCEUNAQsgCCAKNgIYAkAgACgCECIDRQ0AIAggAzYCECADIAg2AhgLIABBFGooAgAiA0UNACAIQRRqIAM2AgAgAyAINgIYCwJAAkAgBEEPSw0AIAAgBCACaiIDQQNyNgIEIAAgA2oiAyADKAIEQQFyNgIEDAELIAAgAmoiBSAEQQFyNgIEIAAgAkEDcjYCBCAFIARqIAQ2AgACQCAHRQ0AIAdBeHFBsNCAgABqIQJBACgCnNCAgAAhAwJAAkBBASAHQQN2dCIIIAZxDQBBACAIIAZyNgKI0ICAACACIQgMAQsgAigCCCEICyAIIAM2AgwgAiADNgIIIAMgAjYCDCADIAg2AggLQQAgBTYCnNCAgABBACAENgKQ0ICAAAsgAEEIaiEDCyABQRBqJICAgIAAIAMLCgAgABDJgICAAAviDQEHfwJAIABFDQAgAEF4aiIBIABBfGooAgAiAkF4cSIAaiEDAkAgAkEBcQ0AIAJBA3FFDQEgASABKAIAIgJrIgFBACgCmNCAgAAiBEkNASACIABqIQACQCABQQAoApzQgIAARg0AAkAgAkH/AUsNACABKAIIIgQgAkEDdiIFQQN0QbDQgIAAaiIGRhoCQCABKAIMIgIgBEcNAEEAQQAoAojQgIAAQX4gBXdxNgKI0ICAAAwDCyACIAZGGiACIAQ2AgggBCACNgIMDAILIAEoAhghBwJAAkAgASgCDCIGIAFGDQAgASgCCCICIARJGiAGIAI2AgggAiAGNgIMDAELAkAgAUEUaiICKAIAIgQNACABQRBqIgIoAgAiBA0AQQAhBgwBCwNAIAIhBSAEIgZBFGoiAigCACIEDQAgBkEQaiECIAYoAhAiBA0ACyAFQQA2AgALIAdFDQECQAJAIAEgASgCHCIEQQJ0QbjSgIAAaiICKAIARw0AIAIgBjYCACAGDQFBAEEAKAKM0ICAAEF+IAR3cTYCjNCAgAAMAwsgB0EQQRQgBygCECABRhtqIAY2AgAgBkUNAgsgBiAHNgIYAkAgASgCECICRQ0AIAYgAjYCECACIAY2AhgLIAEoAhQiAkUNASAGQRRqIAI2AgAgAiAGNgIYDAELIAMoAgQiAkEDcUEDRw0AIAMgAkF+cTYCBEEAIAA2ApDQgIAAIAEgAGogADYCACABIABBAXI2AgQPCyABIANPDQAgAygCBCICQQFxRQ0AAkACQCACQQJxDQACQCADQQAoAqDQgIAARw0AQQAgATYCoNCAgABBAEEAKAKU0ICAACAAaiIANgKU0ICAACABIABBAXI2AgQgAUEAKAKc0ICAAEcNA0EAQQA2ApDQgIAAQQBBADYCnNCAgAAPCwJAIANBACgCnNCAgABHDQBBACABNgKc0ICAAEEAQQAoApDQgIAAIABqIgA2ApDQgIAAIAEgAEEBcjYCBCABIABqIAA2AgAPCyACQXhxIABqIQACQAJAIAJB/wFLDQAgAygCCCIEIAJBA3YiBUEDdEGw0ICAAGoiBkYaAkAgAygCDCICIARHDQBBAEEAKAKI0ICAAEF+IAV3cTYCiNCAgAAMAgsgAiAGRhogAiAENgIIIAQgAjYCDAwBCyADKAIYIQcCQAJAIAMoAgwiBiADRg0AIAMoAggiAkEAKAKY0ICAAEkaIAYgAjYCCCACIAY2AgwMAQsCQCADQRRqIgIoAgAiBA0AIANBEGoiAigCACIEDQBBACEGDAELA0AgAiEFIAQiBkEUaiICKAIAIgQNACAGQRBqIQIgBigCECIEDQALIAVBADYCAAsgB0UNAAJAAkAgAyADKAIcIgRBAnRBuNKAgABqIgIoAgBHDQAgAiAGNgIAIAYNAUEAQQAoAozQgIAAQX4gBHdxNgKM0ICAAAwCCyAHQRBBFCAHKAIQIANGG2ogBjYCACAGRQ0BCyAGIAc2AhgCQCADKAIQIgJFDQAgBiACNgIQIAIgBjYCGAsgAygCFCICRQ0AIAZBFGogAjYCACACIAY2AhgLIAEgAGogADYCACABIABBAXI2AgQgAUEAKAKc0ICAAEcNAUEAIAA2ApDQgIAADwsgAyACQX5xNgIEIAEgAGogADYCACABIABBAXI2AgQLAkAgAEH/AUsNACAAQXhxQbDQgIAAaiECAkACQEEAKAKI0ICAACIEQQEgAEEDdnQiAHENAEEAIAQgAHI2AojQgIAAIAIhAAwBCyACKAIIIQALIAAgATYCDCACIAE2AgggASACNgIMIAEgADYCCA8LQR8hAgJAIABB////B0sNACAAQQh2IgIgAkGA/j9qQRB2QQhxIgJ0IgQgBEGA4B9qQRB2QQRxIgR0IgYgBkGAgA9qQRB2QQJxIgZ0QQ92IAIgBHIgBnJrIgJBAXQgACACQRVqdkEBcXJBHGohAgsgASACNgIcIAFCADcCECACQQJ0QbjSgIAAaiEEAkACQEEAKAKM0ICAACIGQQEgAnQiA3ENACAEIAE2AgBBACAGIANyNgKM0ICAACABIAQ2AhggASABNgIIIAEgATYCDAwBCyAAQQBBGSACQQF2ayACQR9GG3QhAiAEKAIAIQYCQANAIAYiBCgCBEF4cSAARg0BIAJBHXYhBiACQQF0IQIgBCAGQQRxakEQaiIDKAIAIgYNAAsgAyABNgIAIAEgBDYCGCABIAE2AgwgASABNgIIDAELIAQoAggiACABNgIMIAQgATYCCCABQQA2AhggASAENgIMIAEgADYCCAtBAEEAKAKo0ICAAEF/aiIBQX8gARs2AqjQgIAACwsEAAAAC04AAkAgAA0APwBBEHQPCwJAIABB//8DcQ0AIABBf0wNAAJAIABBEHZAACIAQX9HDQBBAEEwNgL404CAAEF/DwsgAEEQdA8LEMqAgIAAAAvyAgIDfwF+AkAgAkUNACAAIAE6AAAgAiAAaiIDQX9qIAE6AAAgAkEDSQ0AIAAgAToAAiAAIAE6AAEgA0F9aiABOgAAIANBfmogAToAACACQQdJDQAgACABOgADIANBfGogAToAACACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiATYCACADIAIgBGtBfHEiBGoiAkF8aiABNgIAIARBCUkNACADIAE2AgggAyABNgIEIAJBeGogATYCACACQXRqIAE2AgAgBEEZSQ0AIAMgATYCGCADIAE2AhQgAyABNgIQIAMgATYCDCACQXBqIAE2AgAgAkFsaiABNgIAIAJBaGogATYCACACQWRqIAE2AgAgBCADQQRxQRhyIgVrIgJBIEkNACABrUKBgICAEH4hBiADIAVqIQEDQCABIAY3AxggASAGNwMQIAEgBjcDCCABIAY3AwAgAUEgaiEBIAJBYGoiAkEfSw0ACwsgAAsLjkgBAEGACAuGSAEAAAACAAAAAwAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAYAAAAHAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASW52YWxpZCBjaGFyIGluIHVybCBxdWVyeQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2JvZHkAQ29udGVudC1MZW5ndGggb3ZlcmZsb3cAQ2h1bmsgc2l6ZSBvdmVyZmxvdwBSZXNwb25zZSBvdmVyZmxvdwBJbnZhbGlkIG1ldGhvZCBmb3IgSFRUUC94LnggcmVxdWVzdABJbnZhbGlkIG1ldGhvZCBmb3IgUlRTUC94LnggcmVxdWVzdABFeHBlY3RlZCBTT1VSQ0UgbWV0aG9kIGZvciBJQ0UveC54IHJlcXVlc3QASW52YWxpZCBjaGFyIGluIHVybCBmcmFnbWVudCBzdGFydABFeHBlY3RlZCBkb3QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9zdGF0dXMASW52YWxpZCByZXNwb25zZSBzdGF0dXMASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucwBVc2VyIGNhbGxiYWNrIGVycm9yAGBvbl9yZXNldGAgY2FsbGJhY2sgZXJyb3IAYG9uX2NodW5rX2hlYWRlcmAgY2FsbGJhY2sgZXJyb3IAYG9uX21lc3NhZ2VfYmVnaW5gIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19leHRlbnNpb25fdmFsdWVgIGNhbGxiYWNrIGVycm9yAGBvbl9zdGF0dXNfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl92ZXJzaW9uX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdXJsX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAEVtcHR5IENvbnRlbnQtTGVuZ3RoAEludmFsaWQgY2hhcmFjdGVyIGluIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBNaXNzaW5nIGV4cGVjdGVkIExGIGFmdGVyIGhlYWRlciB2YWx1ZQBJbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGUgdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZWQgdmFsdWUAUGF1c2VkIGJ5IG9uX2hlYWRlcnNfY29tcGxldGUASW52YWxpZCBFT0Ygc3RhdGUAb25fcmVzZXQgcGF1c2UAb25fY2h1bmtfaGVhZGVyIHBhdXNlAG9uX21lc3NhZ2VfYmVnaW4gcGF1c2UAb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlIHBhdXNlAG9uX3N0YXR1c19jb21wbGV0ZSBwYXVzZQBvbl92ZXJzaW9uX2NvbXBsZXRlIHBhdXNlAG9uX3VybF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19jb21wbGV0ZSBwYXVzZQBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGUgcGF1c2UAb25fbWVzc2FnZV9jb21wbGV0ZSBwYXVzZQBvbl9tZXRob2RfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lIHBhdXNlAFVuZXhwZWN0ZWQgc3BhY2UgYWZ0ZXIgc3RhcnQgbGluZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX2NodW5rX2V4dGVuc2lvbl9uYW1lAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgbmFtZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AAU1dJVENIX1BST1hZAFVTRV9QUk9YWQBNS0FDVElWSVRZAFVOUFJPQ0VTU0FCTEVfRU5USVRZAENPUFkATU9WRURfUEVSTUFORU5UTFkAVE9PX0VBUkxZAE5PVElGWQBGQUlMRURfREVQRU5ERU5DWQBCQURfR0FURVdBWQBQTEFZAFBVVABDSEVDS09VVABHQVRFV0FZX1RJTUVPVVQAUkVRVUVTVF9USU1FT1VUAE5FVFdPUktfQ09OTkVDVF9USU1FT1VUAENPTk5FQ1RJT05fVElNRU9VVABMT0dJTl9USU1FT1VUAE5FVFdPUktfUkVBRF9USU1FT1VUAFBPU1QATUlTRElSRUNURURfUkVRVUVTVABDTElFTlRfQ0xPU0VEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9MT0FEX0JBTEFOQ0VEX1JFUVVFU1QAQkFEX1JFUVVFU1QASFRUUF9SRVFVRVNUX1NFTlRfVE9fSFRUUFNfUE9SVABSRVBPUlQASU1fQV9URUFQT1QAUkVTRVRfQ09OVEVOVABOT19DT05URU5UAFBBUlRJQUxfQ09OVEVOVABIUEVfSU5WQUxJRF9DT05TVEFOVABIUEVfQ0JfUkVTRVQAR0VUAEhQRV9TVFJJQ1QAQ09ORkxJQ1QAVEVNUE9SQVJZX1JFRElSRUNUAFBFUk1BTkVOVF9SRURJUkVDVABDT05ORUNUAE1VTFRJX1NUQVRVUwBIUEVfSU5WQUxJRF9TVEFUVVMAVE9PX01BTllfUkVRVUVTVFMARUFSTFlfSElOVFMAVU5BVkFJTEFCTEVfRk9SX0xFR0FMX1JFQVNPTlMAT1BUSU9OUwBTV0lUQ0hJTkdfUFJPVE9DT0xTAFZBUklBTlRfQUxTT19ORUdPVElBVEVTAE1VTFRJUExFX0NIT0lDRVMASU5URVJOQUxfU0VSVkVSX0VSUk9SAFdFQl9TRVJWRVJfVU5LTk9XTl9FUlJPUgBSQUlMR1VOX0VSUk9SAElERU5USVRZX1BST1ZJREVSX0FVVEhFTlRJQ0FUSU9OX0VSUk9SAFNTTF9DRVJUSUZJQ0FURV9FUlJPUgBJTlZBTElEX1hfRk9SV0FSREVEX0ZPUgBTRVRfUEFSQU1FVEVSAEdFVF9QQVJBTUVURVIASFBFX1VTRVIAU0VFX09USEVSAEhQRV9DQl9DSFVOS19IRUFERVIATUtDQUxFTkRBUgBTRVRVUABXRUJfU0VSVkVSX0lTX0RPV04AVEVBUkRPV04ASFBFX0NMT1NFRF9DT05ORUNUSU9OAEhFVVJJU1RJQ19FWFBJUkFUSU9OAERJU0NPTk5FQ1RFRF9PUEVSQVRJT04ATk9OX0FVVEhPUklUQVRJVkVfSU5GT1JNQVRJT04ASFBFX0lOVkFMSURfVkVSU0lPTgBIUEVfQ0JfTUVTU0FHRV9CRUdJTgBTSVRFX0lTX0ZST1pFTgBIUEVfSU5WQUxJRF9IRUFERVJfVE9LRU4ASU5WQUxJRF9UT0tFTgBGT1JCSURERU4ARU5IQU5DRV9ZT1VSX0NBTE0ASFBFX0lOVkFMSURfVVJMAEJMT0NLRURfQllfUEFSRU5UQUxfQ09OVFJPTABNS0NPTABBQ0wASFBFX0lOVEVSTkFMAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VfVU5PRkZJQ0lBTABIUEVfT0sAVU5MSU5LAFVOTE9DSwBQUkkAUkVUUllfV0lUSABIUEVfSU5WQUxJRF9DT05URU5UX0xFTkdUSABIUEVfVU5FWFBFQ1RFRF9DT05URU5UX0xFTkdUSABGTFVTSABQUk9QUEFUQ0gATS1TRUFSQ0gAVVJJX1RPT19MT05HAFBST0NFU1NJTkcATUlTQ0VMTEFORU9VU19QRVJTSVNURU5UX1dBUk5JTkcATUlTQ0VMTEFORU9VU19XQVJOSU5HAEhQRV9JTlZBTElEX1RSQU5TRkVSX0VOQ09ESU5HAEV4cGVjdGVkIENSTEYASFBFX0lOVkFMSURfQ0hVTktfU0laRQBNT1ZFAENPTlRJTlVFAEhQRV9DQl9TVEFUVVNfQ09NUExFVEUASFBFX0NCX0hFQURFUlNfQ09NUExFVEUASFBFX0NCX1ZFUlNJT05fQ09NUExFVEUASFBFX0NCX1VSTF9DT01QTEVURQBIUEVfQ0JfQ0hVTktfQ09NUExFVEUASFBFX0NCX0hFQURFUl9WQUxVRV9DT01QTEVURQBIUEVfQ0JfQ0hVTktfRVhURU5TSU9OX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fTkFNRV9DT01QTEVURQBIUEVfQ0JfTUVTU0FHRV9DT01QTEVURQBIUEVfQ0JfTUVUSE9EX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJfRklFTERfQ09NUExFVEUAREVMRVRFAEhQRV9JTlZBTElEX0VPRl9TVEFURQBJTlZBTElEX1NTTF9DRVJUSUZJQ0FURQBQQVVTRQBOT19SRVNQT05TRQBVTlNVUFBPUlRFRF9NRURJQV9UWVBFAEdPTkUATk9UX0FDQ0VQVEFCTEUAU0VSVklDRV9VTkFWQUlMQUJMRQBSQU5HRV9OT1RfU0FUSVNGSUFCTEUAT1JJR0lOX0lTX1VOUkVBQ0hBQkxFAFJFU1BPTlNFX0lTX1NUQUxFAFBVUkdFAE1FUkdFAFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0UAUkVRVUVTVF9IRUFERVJfVE9PX0xBUkdFAFBBWUxPQURfVE9PX0xBUkdFAElOU1VGRklDSUVOVF9TVE9SQUdFAEhQRV9QQVVTRURfVVBHUkFERQBIUEVfUEFVU0VEX0gyX1VQR1JBREUAU09VUkNFAEFOTk9VTkNFAFRSQUNFAEhQRV9VTkVYUEVDVEVEX1NQQUNFAERFU0NSSUJFAFVOU1VCU0NSSUJFAFJFQ09SRABIUEVfSU5WQUxJRF9NRVRIT0QATk9UX0ZPVU5EAFBST1BGSU5EAFVOQklORABSRUJJTkQAVU5BVVRIT1JJWkVEAE1FVEhPRF9OT1RfQUxMT1dFRABIVFRQX1ZFUlNJT05fTk9UX1NVUFBPUlRFRABBTFJFQURZX1JFUE9SVEVEAEFDQ0VQVEVEAE5PVF9JTVBMRU1FTlRFRABMT09QX0RFVEVDVEVEAEhQRV9DUl9FWFBFQ1RFRABIUEVfTEZfRVhQRUNURUQAQ1JFQVRFRABJTV9VU0VEAEhQRV9QQVVTRUQAVElNRU9VVF9PQ0NVUkVEAFBBWU1FTlRfUkVRVUlSRUQAUFJFQ09ORElUSU9OX1JFUVVJUkVEAFBST1hZX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEAE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATEVOR1RIX1JFUVVJUkVEAFNTTF9DRVJUSUZJQ0FURV9SRVFVSVJFRABVUEdSQURFX1JFUVVJUkVEAFBBR0VfRVhQSVJFRABQUkVDT05ESVRJT05fRkFJTEVEAEVYUEVDVEFUSU9OX0ZBSUxFRABSRVZBTElEQVRJT05fRkFJTEVEAFNTTF9IQU5EU0hBS0VfRkFJTEVEAExPQ0tFRABUUkFOU0ZPUk1BVElPTl9BUFBMSUVEAE5PVF9NT0RJRklFRABOT1RfRVhURU5ERUQAQkFORFdJRFRIX0xJTUlUX0VYQ0VFREVEAFNJVEVfSVNfT1ZFUkxPQURFRABIRUFEAEV4cGVjdGVkIEhUVFAvAABeEwAAJhMAADAQAADwFwAAnRMAABUSAAA5FwAA8BIAAAoQAAB1EgAArRIAAIITAABPFAAAfxAAAKAVAAAjFAAAiRIAAIsUAABNFQAA1BEAAM8UAAAQGAAAyRYAANwWAADBEQAA4BcAALsUAAB0FAAAfBUAAOUUAAAIFwAAHxAAAGUVAACjFAAAKBUAAAIVAACZFQAALBAAAIsZAABPDwAA1A4AAGoQAADOEAAAAhcAAIkOAABuEwAAHBMAAGYUAABWFwAAwRMAAM0TAABsEwAAaBcAAGYXAABfFwAAIhMAAM4PAABpDgAA2A4AAGMWAADLEwAAqg4AACgXAAAmFwAAxRMAAF0WAADoEQAAZxMAAGUTAADyFgAAcxMAAB0XAAD5FgAA8xEAAM8OAADOFQAADBIAALMRAAClEQAAYRAAADIXAAC7EwAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgMCAgICAgAAAgIAAgIAAgICAgICAgICAgAEAAAAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgICAgIAAAICAAICAAICAgICAgICAgIAAwAEAAAAAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsb3NlZWVwLWFsaXZlAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQFjaHVua2VkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVjdGlvbmVudC1sZW5ndGhvbnJveHktY29ubmVjdGlvbgAAAAAAAAAAAAAAAAAAAHJhbnNmZXItZW5jb2RpbmdwZ3JhZGUNCg0KDQpTTQ0KDQpUVFAvQ0UvVFNQLwAAAAAAAAAAAAAAAAECAAEDAAAAAAAAAAAAAAAAAAAAAAAABAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAAAAAAAAABAgABAwAAAAAAAAAAAAAAAAAAAAAAAAQBAQUBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAABAAACAAAAAAAAAAAAAAAAAAAAAAAAAwQAAAQEBAQEBAQEBAQEBQQEBAQEBAQEBAQEBAAEAAYHBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQABAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAQAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAEAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAgAAAAACAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5PVU5DRUVDS09VVE5FQ1RFVEVDUklCRUxVU0hFVEVBRFNFQVJDSFJHRUNUSVZJVFlMRU5EQVJWRU9USUZZUFRJT05TQ0hTRUFZU1RBVENIR0VPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFSFRUUC9BRFRQLw==' + + +/***/ }), + +/***/ 1891: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.enumToMap = void 0; +function enumToMap(obj) { + const res = {}; + Object.keys(obj).forEach((key) => { + const value = obj[key]; + if (typeof value === 'number') { + res[key] = value; + } + }); + return res; +} +exports.enumToMap = enumToMap; +//# sourceMappingURL=utils.js.map + +/***/ }), + +/***/ 6771: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { kClients } = __nccwpck_require__(2785) +const Agent = __nccwpck_require__(7890) +const { + kAgent, + kMockAgentSet, + kMockAgentGet, + kDispatches, + kIsMockActive, + kNetConnect, + kGetNetConnect, + kOptions, + kFactory +} = __nccwpck_require__(4347) +const MockClient = __nccwpck_require__(8687) +const MockPool = __nccwpck_require__(6193) +const { matchValue, buildMockOptions } = __nccwpck_require__(9323) +const { InvalidArgumentError, UndiciError } = __nccwpck_require__(8045) +const Dispatcher = __nccwpck_require__(412) +const Pluralizer = __nccwpck_require__(8891) +const PendingInterceptorsFormatter = __nccwpck_require__(6823) + +class FakeWeakRef { + constructor (value) { + this.value = value + } + + deref () { + return this.value + } +} + +class MockAgent extends Dispatcher { + constructor (opts) { + super(opts) + + this[kNetConnect] = true + this[kIsMockActive] = true + + // Instantiate Agent and encapsulate + if ((opts && opts.agent && typeof opts.agent.dispatch !== 'function')) { + throw new InvalidArgumentError('Argument opts.agent must implement Agent') + } + const agent = opts && opts.agent ? opts.agent : new Agent(opts) + this[kAgent] = agent + + this[kClients] = agent[kClients] + this[kOptions] = buildMockOptions(opts) + } + + get (origin) { + let dispatcher = this[kMockAgentGet](origin) + + if (!dispatcher) { + dispatcher = this[kFactory](origin) + this[kMockAgentSet](origin, dispatcher) + } + return dispatcher + } + + dispatch (opts, handler) { + // Call MockAgent.get to perform additional setup before dispatching as normal + this.get(opts.origin) + return this[kAgent].dispatch(opts, handler) + } + + async close () { + await this[kAgent].close() + this[kClients].clear() + } + + deactivate () { + this[kIsMockActive] = false + } + + activate () { + this[kIsMockActive] = true + } + + enableNetConnect (matcher) { + if (typeof matcher === 'string' || typeof matcher === 'function' || matcher instanceof RegExp) { + if (Array.isArray(this[kNetConnect])) { + this[kNetConnect].push(matcher) + } else { + this[kNetConnect] = [matcher] + } + } else if (typeof matcher === 'undefined') { + this[kNetConnect] = true + } else { + throw new InvalidArgumentError('Unsupported matcher. Must be one of String|Function|RegExp.') + } + } + + disableNetConnect () { + this[kNetConnect] = false + } + + // This is required to bypass issues caused by using global symbols - see: + // https://github.com/nodejs/undici/issues/1447 + get isMockActive () { + return this[kIsMockActive] + } + + [kMockAgentSet] (origin, dispatcher) { + this[kClients].set(origin, new FakeWeakRef(dispatcher)) + } + + [kFactory] (origin) { + const mockOptions = Object.assign({ agent: this }, this[kOptions]) + return this[kOptions] && this[kOptions].connections === 1 + ? new MockClient(origin, mockOptions) + : new MockPool(origin, mockOptions) + } + + [kMockAgentGet] (origin) { + // First check if we can immediately find it + const ref = this[kClients].get(origin) + if (ref) { + return ref.deref() + } + + // If the origin is not a string create a dummy parent pool and return to user + if (typeof origin !== 'string') { + const dispatcher = this[kFactory]('http://localhost:9999') + this[kMockAgentSet](origin, dispatcher) + return dispatcher + } + + // If we match, create a pool and assign the same dispatches + for (const [keyMatcher, nonExplicitRef] of Array.from(this[kClients])) { + const nonExplicitDispatcher = nonExplicitRef.deref() + if (nonExplicitDispatcher && typeof keyMatcher !== 'string' && matchValue(keyMatcher, origin)) { + const dispatcher = this[kFactory](origin) + this[kMockAgentSet](origin, dispatcher) + dispatcher[kDispatches] = nonExplicitDispatcher[kDispatches] + return dispatcher + } + } + } + + [kGetNetConnect] () { + return this[kNetConnect] + } + + pendingInterceptors () { + const mockAgentClients = this[kClients] + + return Array.from(mockAgentClients.entries()) + .flatMap(([origin, scope]) => scope.deref()[kDispatches].map(dispatch => ({ ...dispatch, origin }))) + .filter(({ pending }) => pending) + } + + assertNoPendingInterceptors ({ pendingInterceptorsFormatter = new PendingInterceptorsFormatter() } = {}) { + const pending = this.pendingInterceptors() + + if (pending.length === 0) { + return + } + + const pluralizer = new Pluralizer('interceptor', 'interceptors').pluralize(pending.length) + + throw new UndiciError(` +${pluralizer.count} ${pluralizer.noun} ${pluralizer.is} pending: + +${pendingInterceptorsFormatter.format(pending)} +`.trim()) + } +} + +module.exports = MockAgent + + +/***/ }), + +/***/ 8687: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { promisify } = __nccwpck_require__(3837) +const Client = __nccwpck_require__(3598) +const { buildMockDispatch } = __nccwpck_require__(9323) +const { + kDispatches, + kMockAgent, + kClose, + kOriginalClose, + kOrigin, + kOriginalDispatch, + kConnected +} = __nccwpck_require__(4347) +const { MockInterceptor } = __nccwpck_require__(410) +const Symbols = __nccwpck_require__(2785) +const { InvalidArgumentError } = __nccwpck_require__(8045) + +/** + * MockClient provides an API that extends the Client to influence the mockDispatches. + */ +class MockClient extends Client { + constructor (origin, opts) { + super(origin, opts) + + if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') { + throw new InvalidArgumentError('Argument opts.agent must implement Agent') + } + + this[kMockAgent] = opts.agent + this[kOrigin] = origin + this[kDispatches] = [] + this[kConnected] = 1 + this[kOriginalDispatch] = this.dispatch + this[kOriginalClose] = this.close.bind(this) + + this.dispatch = buildMockDispatch.call(this) + this.close = this[kClose] + } + + get [Symbols.kConnected] () { + return this[kConnected] + } + + /** + * Sets up the base interceptor for mocking replies from undici. + */ + intercept (opts) { + return new MockInterceptor(opts, this[kDispatches]) + } + + async [kClose] () { + await promisify(this[kOriginalClose])() + this[kConnected] = 0 + this[kMockAgent][Symbols.kClients].delete(this[kOrigin]) + } +} + +module.exports = MockClient + + +/***/ }), + +/***/ 888: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { UndiciError } = __nccwpck_require__(8045) + +class MockNotMatchedError extends UndiciError { + constructor (message) { + super(message) + Error.captureStackTrace(this, MockNotMatchedError) + this.name = 'MockNotMatchedError' + this.message = message || 'The request does not match any registered mock dispatches' + this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED' + } +} + +module.exports = { + MockNotMatchedError +} + + +/***/ }), + +/***/ 410: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { getResponseData, buildKey, addMockDispatch } = __nccwpck_require__(9323) +const { + kDispatches, + kDispatchKey, + kDefaultHeaders, + kDefaultTrailers, + kContentLength, + kMockDispatch +} = __nccwpck_require__(4347) +const { InvalidArgumentError } = __nccwpck_require__(8045) +const { buildURL } = __nccwpck_require__(3983) + +/** + * Defines the scope API for an interceptor reply + */ +class MockScope { + constructor (mockDispatch) { + this[kMockDispatch] = mockDispatch + } + + /** + * Delay a reply by a set amount in ms. + */ + delay (waitInMs) { + if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) { + throw new InvalidArgumentError('waitInMs must be a valid integer > 0') + } + + this[kMockDispatch].delay = waitInMs + return this + } + + /** + * For a defined reply, never mark as consumed. + */ + persist () { + this[kMockDispatch].persist = true + return this + } + + /** + * Allow one to define a reply for a set amount of matching requests. + */ + times (repeatTimes) { + if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) { + throw new InvalidArgumentError('repeatTimes must be a valid integer > 0') + } + + this[kMockDispatch].times = repeatTimes + return this + } +} + +/** + * Defines an interceptor for a Mock + */ +class MockInterceptor { + constructor (opts, mockDispatches) { + if (typeof opts !== 'object') { + throw new InvalidArgumentError('opts must be an object') + } + if (typeof opts.path === 'undefined') { + throw new InvalidArgumentError('opts.path must be defined') + } + if (typeof opts.method === 'undefined') { + opts.method = 'GET' + } + // See https://github.com/nodejs/undici/issues/1245 + // As per RFC 3986, clients are not supposed to send URI + // fragments to servers when they retrieve a document, + if (typeof opts.path === 'string') { + if (opts.query) { + opts.path = buildURL(opts.path, opts.query) + } else { + // Matches https://github.com/nodejs/undici/blob/main/lib/fetch/index.js#L1811 + const parsedURL = new URL(opts.path, 'data://') + opts.path = parsedURL.pathname + parsedURL.search + } + } + if (typeof opts.method === 'string') { + opts.method = opts.method.toUpperCase() + } + + this[kDispatchKey] = buildKey(opts) + this[kDispatches] = mockDispatches + this[kDefaultHeaders] = {} + this[kDefaultTrailers] = {} + this[kContentLength] = false + } + + createMockScopeDispatchData (statusCode, data, responseOptions = {}) { + const responseData = getResponseData(data) + const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {} + const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers } + const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers } + + return { statusCode, data, headers, trailers } + } + + validateReplyParameters (statusCode, data, responseOptions) { + if (typeof statusCode === 'undefined') { + throw new InvalidArgumentError('statusCode must be defined') + } + if (typeof data === 'undefined') { + throw new InvalidArgumentError('data must be defined') + } + if (typeof responseOptions !== 'object') { + throw new InvalidArgumentError('responseOptions must be an object') + } + } + + /** + * Mock an undici request with a defined reply. + */ + reply (replyData) { + // Values of reply aren't available right now as they + // can only be available when the reply callback is invoked. + if (typeof replyData === 'function') { + // We'll first wrap the provided callback in another function, + // this function will properly resolve the data from the callback + // when invoked. + const wrappedDefaultsCallback = (opts) => { + // Our reply options callback contains the parameter for statusCode, data and options. + const resolvedData = replyData(opts) + + // Check if it is in the right format + if (typeof resolvedData !== 'object') { + throw new InvalidArgumentError('reply options callback must return an object') + } + + const { statusCode, data = '', responseOptions = {} } = resolvedData + this.validateReplyParameters(statusCode, data, responseOptions) + // Since the values can be obtained immediately we return them + // from this higher order function that will be resolved later. + return { + ...this.createMockScopeDispatchData(statusCode, data, responseOptions) + } + } + + // Add usual dispatch data, but this time set the data parameter to function that will eventually provide data. + const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback) + return new MockScope(newMockDispatch) + } + + // We can have either one or three parameters, if we get here, + // we should have 1-3 parameters. So we spread the arguments of + // this function to obtain the parameters, since replyData will always + // just be the statusCode. + const [statusCode, data = '', responseOptions = {}] = [...arguments] + this.validateReplyParameters(statusCode, data, responseOptions) + + // Send in-already provided data like usual + const dispatchData = this.createMockScopeDispatchData(statusCode, data, responseOptions) + const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData) + return new MockScope(newMockDispatch) + } + + /** + * Mock an undici request with a defined error. + */ + replyWithError (error) { + if (typeof error === 'undefined') { + throw new InvalidArgumentError('error must be defined') + } + + const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error }) + return new MockScope(newMockDispatch) + } + + /** + * Set default reply headers on the interceptor for subsequent replies + */ + defaultReplyHeaders (headers) { + if (typeof headers === 'undefined') { + throw new InvalidArgumentError('headers must be defined') + } + + this[kDefaultHeaders] = headers + return this + } + + /** + * Set default reply trailers on the interceptor for subsequent replies + */ + defaultReplyTrailers (trailers) { + if (typeof trailers === 'undefined') { + throw new InvalidArgumentError('trailers must be defined') + } + + this[kDefaultTrailers] = trailers + return this + } + + /** + * Set reply content length header for replies on the interceptor + */ + replyContentLength () { + this[kContentLength] = true + return this + } +} + +module.exports.MockInterceptor = MockInterceptor +module.exports.MockScope = MockScope + + +/***/ }), + +/***/ 6193: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { promisify } = __nccwpck_require__(3837) +const Pool = __nccwpck_require__(4634) +const { buildMockDispatch } = __nccwpck_require__(9323) +const { + kDispatches, + kMockAgent, + kClose, + kOriginalClose, + kOrigin, + kOriginalDispatch, + kConnected +} = __nccwpck_require__(4347) +const { MockInterceptor } = __nccwpck_require__(410) +const Symbols = __nccwpck_require__(2785) +const { InvalidArgumentError } = __nccwpck_require__(8045) + +/** + * MockPool provides an API that extends the Pool to influence the mockDispatches. + */ +class MockPool extends Pool { + constructor (origin, opts) { + super(origin, opts) + + if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') { + throw new InvalidArgumentError('Argument opts.agent must implement Agent') + } + + this[kMockAgent] = opts.agent + this[kOrigin] = origin + this[kDispatches] = [] + this[kConnected] = 1 + this[kOriginalDispatch] = this.dispatch + this[kOriginalClose] = this.close.bind(this) + + this.dispatch = buildMockDispatch.call(this) + this.close = this[kClose] + } + + get [Symbols.kConnected] () { + return this[kConnected] + } + + /** + * Sets up the base interceptor for mocking replies from undici. + */ + intercept (opts) { + return new MockInterceptor(opts, this[kDispatches]) + } + + async [kClose] () { + await promisify(this[kOriginalClose])() + this[kConnected] = 0 + this[kMockAgent][Symbols.kClients].delete(this[kOrigin]) + } +} + +module.exports = MockPool + + +/***/ }), + +/***/ 4347: +/***/ ((module) => { + +"use strict"; + + +module.exports = { + kAgent: Symbol('agent'), + kOptions: Symbol('options'), + kFactory: Symbol('factory'), + kDispatches: Symbol('dispatches'), + kDispatchKey: Symbol('dispatch key'), + kDefaultHeaders: Symbol('default headers'), + kDefaultTrailers: Symbol('default trailers'), + kContentLength: Symbol('content length'), + kMockAgent: Symbol('mock agent'), + kMockAgentSet: Symbol('mock agent set'), + kMockAgentGet: Symbol('mock agent get'), + kMockDispatch: Symbol('mock dispatch'), + kClose: Symbol('close'), + kOriginalClose: Symbol('original agent close'), + kOrigin: Symbol('origin'), + kIsMockActive: Symbol('is mock active'), + kNetConnect: Symbol('net connect'), + kGetNetConnect: Symbol('get net connect'), + kConnected: Symbol('connected') +} + + +/***/ }), + +/***/ 9323: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { MockNotMatchedError } = __nccwpck_require__(888) +const { + kDispatches, + kMockAgent, + kOriginalDispatch, + kOrigin, + kGetNetConnect +} = __nccwpck_require__(4347) +const { buildURL, nop } = __nccwpck_require__(3983) +const { STATUS_CODES } = __nccwpck_require__(3685) +const { + types: { + isPromise + } +} = __nccwpck_require__(3837) + +function matchValue (match, value) { + if (typeof match === 'string') { + return match === value + } + if (match instanceof RegExp) { + return match.test(value) + } + if (typeof match === 'function') { + return match(value) === true + } + return false +} + +function lowerCaseEntries (headers) { + return Object.fromEntries( + Object.entries(headers).map(([headerName, headerValue]) => { + return [headerName.toLocaleLowerCase(), headerValue] + }) + ) +} + +/** + * @param {import('../../index').Headers|string[]|Record} headers + * @param {string} key + */ +function getHeaderByName (headers, key) { + if (Array.isArray(headers)) { + for (let i = 0; i < headers.length; i += 2) { + if (headers[i].toLocaleLowerCase() === key.toLocaleLowerCase()) { + return headers[i + 1] + } + } + + return undefined + } else if (typeof headers.get === 'function') { + return headers.get(key) + } else { + return lowerCaseEntries(headers)[key.toLocaleLowerCase()] + } +} + +/** @param {string[]} headers */ +function buildHeadersFromArray (headers) { // fetch HeadersList + const clone = headers.slice() + const entries = [] + for (let index = 0; index < clone.length; index += 2) { + entries.push([clone[index], clone[index + 1]]) + } + return Object.fromEntries(entries) +} + +function matchHeaders (mockDispatch, headers) { + if (typeof mockDispatch.headers === 'function') { + if (Array.isArray(headers)) { // fetch HeadersList + headers = buildHeadersFromArray(headers) + } + return mockDispatch.headers(headers ? lowerCaseEntries(headers) : {}) + } + if (typeof mockDispatch.headers === 'undefined') { + return true + } + if (typeof headers !== 'object' || typeof mockDispatch.headers !== 'object') { + return false + } + + for (const [matchHeaderName, matchHeaderValue] of Object.entries(mockDispatch.headers)) { + const headerValue = getHeaderByName(headers, matchHeaderName) + + if (!matchValue(matchHeaderValue, headerValue)) { + return false + } + } + return true +} + +function safeUrl (path) { + if (typeof path !== 'string') { + return path + } + + const pathSegments = path.split('?') + + if (pathSegments.length !== 2) { + return path + } + + const qp = new URLSearchParams(pathSegments.pop()) + qp.sort() + return [...pathSegments, qp.toString()].join('?') +} + +function matchKey (mockDispatch, { path, method, body, headers }) { + const pathMatch = matchValue(mockDispatch.path, path) + const methodMatch = matchValue(mockDispatch.method, method) + const bodyMatch = typeof mockDispatch.body !== 'undefined' ? matchValue(mockDispatch.body, body) : true + const headersMatch = matchHeaders(mockDispatch, headers) + return pathMatch && methodMatch && bodyMatch && headersMatch +} + +function getResponseData (data) { + if (Buffer.isBuffer(data)) { + return data + } else if (typeof data === 'object') { + return JSON.stringify(data) + } else { + return data.toString() + } +} + +function getMockDispatch (mockDispatches, key) { + const basePath = key.query ? buildURL(key.path, key.query) : key.path + const resolvedPath = typeof basePath === 'string' ? safeUrl(basePath) : basePath + + // Match path + let matchedMockDispatches = mockDispatches.filter(({ consumed }) => !consumed).filter(({ path }) => matchValue(safeUrl(path), resolvedPath)) + if (matchedMockDispatches.length === 0) { + throw new MockNotMatchedError(`Mock dispatch not matched for path '${resolvedPath}'`) + } + + // Match method + matchedMockDispatches = matchedMockDispatches.filter(({ method }) => matchValue(method, key.method)) + if (matchedMockDispatches.length === 0) { + throw new MockNotMatchedError(`Mock dispatch not matched for method '${key.method}'`) + } + + // Match body + matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== 'undefined' ? matchValue(body, key.body) : true) + if (matchedMockDispatches.length === 0) { + throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}'`) + } + + // Match headers + matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers)) + if (matchedMockDispatches.length === 0) { + throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === 'object' ? JSON.stringify(key.headers) : key.headers}'`) + } + + return matchedMockDispatches[0] +} + +function addMockDispatch (mockDispatches, key, data) { + const baseData = { timesInvoked: 0, times: 1, persist: false, consumed: false } + const replyData = typeof data === 'function' ? { callback: data } : { ...data } + const newMockDispatch = { ...baseData, ...key, pending: true, data: { error: null, ...replyData } } + mockDispatches.push(newMockDispatch) + return newMockDispatch +} + +function deleteMockDispatch (mockDispatches, key) { + const index = mockDispatches.findIndex(dispatch => { + if (!dispatch.consumed) { + return false + } + return matchKey(dispatch, key) + }) + if (index !== -1) { + mockDispatches.splice(index, 1) + } +} + +function buildKey (opts) { + const { path, method, body, headers, query } = opts + return { + path, + method, + body, + headers, + query + } +} + +function generateKeyValues (data) { + return Object.entries(data).reduce((keyValuePairs, [key, value]) => [ + ...keyValuePairs, + Buffer.from(`${key}`), + Array.isArray(value) ? value.map(x => Buffer.from(`${x}`)) : Buffer.from(`${value}`) + ], []) +} + +/** + * @see https://developer.mozilla.org/en-US/docs/Web/HTTP/Status + * @param {number} statusCode + */ +function getStatusText (statusCode) { + return STATUS_CODES[statusCode] || 'unknown' +} + +async function getResponse (body) { + const buffers = [] + for await (const data of body) { + buffers.push(data) + } + return Buffer.concat(buffers).toString('utf8') +} + +/** + * Mock dispatch function used to simulate undici dispatches + */ +function mockDispatch (opts, handler) { + // Get mock dispatch from built key + const key = buildKey(opts) + const mockDispatch = getMockDispatch(this[kDispatches], key) + + mockDispatch.timesInvoked++ + + // Here's where we resolve a callback if a callback is present for the dispatch data. + if (mockDispatch.data.callback) { + mockDispatch.data = { ...mockDispatch.data, ...mockDispatch.data.callback(opts) } + } + + // Parse mockDispatch data + const { data: { statusCode, data, headers, trailers, error }, delay, persist } = mockDispatch + const { timesInvoked, times } = mockDispatch + + // If it's used up and not persistent, mark as consumed + mockDispatch.consumed = !persist && timesInvoked >= times + mockDispatch.pending = timesInvoked < times + + // If specified, trigger dispatch error + if (error !== null) { + deleteMockDispatch(this[kDispatches], key) + handler.onError(error) + return true + } + + // Handle the request with a delay if necessary + if (typeof delay === 'number' && delay > 0) { + setTimeout(() => { + handleReply(this[kDispatches]) + }, delay) + } else { + handleReply(this[kDispatches]) + } + + function handleReply (mockDispatches, _data = data) { + // fetch's HeadersList is a 1D string array + const optsHeaders = Array.isArray(opts.headers) + ? buildHeadersFromArray(opts.headers) + : opts.headers + const body = typeof _data === 'function' + ? _data({ ...opts, headers: optsHeaders }) + : _data + + // util.types.isPromise is likely needed for jest. + if (isPromise(body)) { + // If handleReply is asynchronous, throwing an error + // in the callback will reject the promise, rather than + // synchronously throw the error, which breaks some tests. + // Rather, we wait for the callback to resolve if it is a + // promise, and then re-run handleReply with the new body. + body.then((newData) => handleReply(mockDispatches, newData)) + return + } + + const responseData = getResponseData(body) + const responseHeaders = generateKeyValues(headers) + const responseTrailers = generateKeyValues(trailers) + + handler.abort = nop + handler.onHeaders(statusCode, responseHeaders, resume, getStatusText(statusCode)) + handler.onData(Buffer.from(responseData)) + handler.onComplete(responseTrailers) + deleteMockDispatch(mockDispatches, key) + } + + function resume () {} + + return true +} + +function buildMockDispatch () { + const agent = this[kMockAgent] + const origin = this[kOrigin] + const originalDispatch = this[kOriginalDispatch] + + return function dispatch (opts, handler) { + if (agent.isMockActive) { + try { + mockDispatch.call(this, opts, handler) + } catch (error) { + if (error instanceof MockNotMatchedError) { + const netConnect = agent[kGetNetConnect]() + if (netConnect === false) { + throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect disabled)`) + } + if (checkNetConnect(netConnect, origin)) { + originalDispatch.call(this, opts, handler) + } else { + throw new MockNotMatchedError(`${error.message}: subsequent request to origin ${origin} was not allowed (net.connect is not enabled for this origin)`) + } + } else { + throw error + } + } + } else { + originalDispatch.call(this, opts, handler) + } + } +} + +function checkNetConnect (netConnect, origin) { + const url = new URL(origin) + if (netConnect === true) { + return true + } else if (Array.isArray(netConnect) && netConnect.some((matcher) => matchValue(matcher, url.host))) { + return true + } + return false +} + +function buildMockOptions (opts) { + if (opts) { + const { agent, ...mockOptions } = opts + return mockOptions + } +} + +module.exports = { + getResponseData, + getMockDispatch, + addMockDispatch, + deleteMockDispatch, + buildKey, + generateKeyValues, + matchValue, + getResponse, + getStatusText, + mockDispatch, + buildMockDispatch, + checkNetConnect, + buildMockOptions, + getHeaderByName +} + + +/***/ }), + +/***/ 6823: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { Transform } = __nccwpck_require__(2781) +const { Console } = __nccwpck_require__(6206) + +/** + * Gets the output of `console.table(…)` as a string. + */ +module.exports = class PendingInterceptorsFormatter { + constructor ({ disableColors } = {}) { + this.transform = new Transform({ + transform (chunk, _enc, cb) { + cb(null, chunk) + } + }) + + this.logger = new Console({ + stdout: this.transform, + inspectOptions: { + colors: !disableColors && !process.env.CI + } + }) + } + + format (pendingInterceptors) { + const withPrettyHeaders = pendingInterceptors.map( + ({ method, path, data: { statusCode }, persist, times, timesInvoked, origin }) => ({ + Method: method, + Origin: origin, + Path: path, + 'Status code': statusCode, + Persistent: persist ? '✅' : 'âŒ', + Invocations: timesInvoked, + Remaining: persist ? Infinity : times - timesInvoked + })) + + this.logger.table(withPrettyHeaders) + return this.transform.read().toString() + } +} + + +/***/ }), + +/***/ 8891: +/***/ ((module) => { + +"use strict"; + + +const singulars = { + pronoun: 'it', + is: 'is', + was: 'was', + this: 'this' +} + +const plurals = { + pronoun: 'they', + is: 'are', + was: 'were', + this: 'these' +} + +module.exports = class Pluralizer { + constructor (singular, plural) { + this.singular = singular + this.plural = plural + } + + pluralize (count) { + const one = count === 1 + const keys = one ? singulars : plurals + const noun = one ? this.singular : this.plural + return { ...keys, count, noun } + } +} + + +/***/ }), + +/***/ 8266: +/***/ ((module) => { + +"use strict"; +/* eslint-disable */ + + + +// Extracted from node/lib/internal/fixed_queue.js + +// Currently optimal queue size, tested on V8 6.0 - 6.6. Must be power of two. +const kSize = 2048; +const kMask = kSize - 1; + +// The FixedQueue is implemented as a singly-linked list of fixed-size +// circular buffers. It looks something like this: +// +// head tail +// | | +// v v +// +-----------+ <-----\ +-----------+ <------\ +-----------+ +// | [null] | \----- | next | \------- | next | +// +-----------+ +-----------+ +-----------+ +// | item | <-- bottom | item | <-- bottom | [empty] | +// | item | | item | | [empty] | +// | item | | item | | [empty] | +// | item | | item | | [empty] | +// | item | | item | bottom --> | item | +// | item | | item | | item | +// | ... | | ... | | ... | +// | item | | item | | item | +// | item | | item | | item | +// | [empty] | <-- top | item | | item | +// | [empty] | | item | | item | +// | [empty] | | [empty] | <-- top top --> | [empty] | +// +-----------+ +-----------+ +-----------+ +// +// Or, if there is only one circular buffer, it looks something +// like either of these: +// +// head tail head tail +// | | | | +// v v v v +// +-----------+ +-----------+ +// | [null] | | [null] | +// +-----------+ +-----------+ +// | [empty] | | item | +// | [empty] | | item | +// | item | <-- bottom top --> | [empty] | +// | item | | [empty] | +// | [empty] | <-- top bottom --> | item | +// | [empty] | | item | +// +-----------+ +-----------+ +// +// Adding a value means moving `top` forward by one, removing means +// moving `bottom` forward by one. After reaching the end, the queue +// wraps around. +// +// When `top === bottom` the current queue is empty and when +// `top + 1 === bottom` it's full. This wastes a single space of storage +// but allows much quicker checks. + +class FixedCircularBuffer { + constructor() { + this.bottom = 0; + this.top = 0; + this.list = new Array(kSize); + this.next = null; + } + + isEmpty() { + return this.top === this.bottom; + } + + isFull() { + return ((this.top + 1) & kMask) === this.bottom; + } + + push(data) { + this.list[this.top] = data; + this.top = (this.top + 1) & kMask; + } + + shift() { + const nextItem = this.list[this.bottom]; + if (nextItem === undefined) + return null; + this.list[this.bottom] = undefined; + this.bottom = (this.bottom + 1) & kMask; + return nextItem; + } +} + +module.exports = class FixedQueue { + constructor() { + this.head = this.tail = new FixedCircularBuffer(); + } + + isEmpty() { + return this.head.isEmpty(); + } + + push(data) { + if (this.head.isFull()) { + // Head is full: Creates a new queue, sets the old queue's `.next` to it, + // and sets it as the new main queue. + this.head = this.head.next = new FixedCircularBuffer(); + } + this.head.push(data); + } + + shift() { + const tail = this.tail; + const next = tail.shift(); + if (tail.isEmpty() && tail.next !== null) { + // If there is another queue, it forms the new tail. + this.tail = tail.next; + } + return next; + } +}; + + +/***/ }), + +/***/ 3198: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const DispatcherBase = __nccwpck_require__(4839) +const FixedQueue = __nccwpck_require__(8266) +const { kConnected, kSize, kRunning, kPending, kQueued, kBusy, kFree, kUrl, kClose, kDestroy, kDispatch } = __nccwpck_require__(2785) +const PoolStats = __nccwpck_require__(9689) + +const kClients = Symbol('clients') +const kNeedDrain = Symbol('needDrain') +const kQueue = Symbol('queue') +const kClosedResolve = Symbol('closed resolve') +const kOnDrain = Symbol('onDrain') +const kOnConnect = Symbol('onConnect') +const kOnDisconnect = Symbol('onDisconnect') +const kOnConnectionError = Symbol('onConnectionError') +const kGetDispatcher = Symbol('get dispatcher') +const kAddClient = Symbol('add client') +const kRemoveClient = Symbol('remove client') +const kStats = Symbol('stats') + +class PoolBase extends DispatcherBase { + constructor () { + super() + + this[kQueue] = new FixedQueue() + this[kClients] = [] + this[kQueued] = 0 + + const pool = this + + this[kOnDrain] = function onDrain (origin, targets) { + const queue = pool[kQueue] + + let needDrain = false + + while (!needDrain) { + const item = queue.shift() + if (!item) { + break + } + pool[kQueued]-- + needDrain = !this.dispatch(item.opts, item.handler) + } + + this[kNeedDrain] = needDrain + + if (!this[kNeedDrain] && pool[kNeedDrain]) { + pool[kNeedDrain] = false + pool.emit('drain', origin, [pool, ...targets]) + } + + if (pool[kClosedResolve] && queue.isEmpty()) { + Promise + .all(pool[kClients].map(c => c.close())) + .then(pool[kClosedResolve]) + } + } + + this[kOnConnect] = (origin, targets) => { + pool.emit('connect', origin, [pool, ...targets]) + } + + this[kOnDisconnect] = (origin, targets, err) => { + pool.emit('disconnect', origin, [pool, ...targets], err) + } + + this[kOnConnectionError] = (origin, targets, err) => { + pool.emit('connectionError', origin, [pool, ...targets], err) + } + + this[kStats] = new PoolStats(this) + } + + get [kBusy] () { + return this[kNeedDrain] + } + + get [kConnected] () { + return this[kClients].filter(client => client[kConnected]).length + } + + get [kFree] () { + return this[kClients].filter(client => client[kConnected] && !client[kNeedDrain]).length + } + + get [kPending] () { + let ret = this[kQueued] + for (const { [kPending]: pending } of this[kClients]) { + ret += pending + } + return ret + } + + get [kRunning] () { + let ret = 0 + for (const { [kRunning]: running } of this[kClients]) { + ret += running + } + return ret + } + + get [kSize] () { + let ret = this[kQueued] + for (const { [kSize]: size } of this[kClients]) { + ret += size + } + return ret + } + + get stats () { + return this[kStats] + } + + async [kClose] () { + if (this[kQueue].isEmpty()) { + return Promise.all(this[kClients].map(c => c.close())) + } else { + return new Promise((resolve) => { + this[kClosedResolve] = resolve + }) + } + } + + async [kDestroy] (err) { + while (true) { + const item = this[kQueue].shift() + if (!item) { + break + } + item.handler.onError(err) + } + + return Promise.all(this[kClients].map(c => c.destroy(err))) + } + + [kDispatch] (opts, handler) { + const dispatcher = this[kGetDispatcher]() + + if (!dispatcher) { + this[kNeedDrain] = true + this[kQueue].push({ opts, handler }) + this[kQueued]++ + } else if (!dispatcher.dispatch(opts, handler)) { + dispatcher[kNeedDrain] = true + this[kNeedDrain] = !this[kGetDispatcher]() + } + + return !this[kNeedDrain] + } + + [kAddClient] (client) { + client + .on('drain', this[kOnDrain]) + .on('connect', this[kOnConnect]) + .on('disconnect', this[kOnDisconnect]) + .on('connectionError', this[kOnConnectionError]) + + this[kClients].push(client) + + if (this[kNeedDrain]) { + process.nextTick(() => { + if (this[kNeedDrain]) { + this[kOnDrain](client[kUrl], [this, client]) + } + }) + } + + return this + } + + [kRemoveClient] (client) { + client.close(() => { + const idx = this[kClients].indexOf(client) + if (idx !== -1) { + this[kClients].splice(idx, 1) + } + }) + + this[kNeedDrain] = this[kClients].some(dispatcher => ( + !dispatcher[kNeedDrain] && + dispatcher.closed !== true && + dispatcher.destroyed !== true + )) + } +} + +module.exports = { + PoolBase, + kClients, + kNeedDrain, + kAddClient, + kRemoveClient, + kGetDispatcher +} + + +/***/ }), + +/***/ 9689: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +const { kFree, kConnected, kPending, kQueued, kRunning, kSize } = __nccwpck_require__(2785) +const kPool = Symbol('pool') + +class PoolStats { + constructor (pool) { + this[kPool] = pool + } + + get connected () { + return this[kPool][kConnected] + } + + get free () { + return this[kPool][kFree] + } + + get pending () { + return this[kPool][kPending] + } + + get queued () { + return this[kPool][kQueued] + } + + get running () { + return this[kPool][kRunning] + } + + get size () { + return this[kPool][kSize] + } +} + +module.exports = PoolStats + + +/***/ }), + +/***/ 4634: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { + PoolBase, + kClients, + kNeedDrain, + kAddClient, + kGetDispatcher +} = __nccwpck_require__(3198) +const Client = __nccwpck_require__(3598) +const { + InvalidArgumentError +} = __nccwpck_require__(8045) +const util = __nccwpck_require__(3983) +const { kUrl, kInterceptors } = __nccwpck_require__(2785) +const buildConnector = __nccwpck_require__(2067) + +const kOptions = Symbol('options') +const kConnections = Symbol('connections') +const kFactory = Symbol('factory') + +function defaultFactory (origin, opts) { + return new Client(origin, opts) +} + +class Pool extends PoolBase { + constructor (origin, { + connections, + factory = defaultFactory, + connect, + connectTimeout, + tls, + maxCachedSessions, + socketPath, + autoSelectFamily, + autoSelectFamilyAttemptTimeout, + allowH2, + ...options + } = {}) { + super() + + if (connections != null && (!Number.isFinite(connections) || connections < 0)) { + throw new InvalidArgumentError('invalid connections') + } + + if (typeof factory !== 'function') { + throw new InvalidArgumentError('factory must be a function.') + } + + if (connect != null && typeof connect !== 'function' && typeof connect !== 'object') { + throw new InvalidArgumentError('connect must be a function or an object') + } + + if (typeof connect !== 'function') { + connect = buildConnector({ + ...tls, + maxCachedSessions, + allowH2, + socketPath, + timeout: connectTimeout == null ? 10e3 : connectTimeout, + ...(util.nodeHasAutoSelectFamily && autoSelectFamily ? { autoSelectFamily, autoSelectFamilyAttemptTimeout } : undefined), + ...connect + }) + } + + this[kInterceptors] = options.interceptors && options.interceptors.Pool && Array.isArray(options.interceptors.Pool) + ? options.interceptors.Pool + : [] + this[kConnections] = connections || null + this[kUrl] = util.parseOrigin(origin) + this[kOptions] = { ...util.deepClone(options), connect, allowH2 } + this[kOptions].interceptors = options.interceptors + ? { ...options.interceptors } + : undefined + this[kFactory] = factory + } + + [kGetDispatcher] () { + let dispatcher = this[kClients].find(dispatcher => !dispatcher[kNeedDrain]) + + if (dispatcher) { + return dispatcher + } + + if (!this[kConnections] || this[kClients].length < this[kConnections]) { + dispatcher = this[kFactory](this[kUrl], this[kOptions]) + this[kAddClient](dispatcher) + } + + return dispatcher + } +} + +module.exports = Pool + + +/***/ }), + +/***/ 7858: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { kProxy, kClose, kDestroy, kInterceptors } = __nccwpck_require__(2785) +const { URL } = __nccwpck_require__(7310) +const Agent = __nccwpck_require__(7890) +const Pool = __nccwpck_require__(4634) +const DispatcherBase = __nccwpck_require__(4839) +const { InvalidArgumentError, RequestAbortedError } = __nccwpck_require__(8045) +const buildConnector = __nccwpck_require__(2067) + +const kAgent = Symbol('proxy agent') +const kClient = Symbol('proxy client') +const kProxyHeaders = Symbol('proxy headers') +const kRequestTls = Symbol('request tls settings') +const kProxyTls = Symbol('proxy tls settings') +const kConnectEndpoint = Symbol('connect endpoint function') + +function defaultProtocolPort (protocol) { + return protocol === 'https:' ? 443 : 80 +} + +function buildProxyOptions (opts) { + if (typeof opts === 'string') { + opts = { uri: opts } + } + + if (!opts || !opts.uri) { + throw new InvalidArgumentError('Proxy opts.uri is mandatory') + } + + return { + uri: opts.uri, + protocol: opts.protocol || 'https' + } +} + +function defaultFactory (origin, opts) { + return new Pool(origin, opts) +} + +class ProxyAgent extends DispatcherBase { + constructor (opts) { + super(opts) + this[kProxy] = buildProxyOptions(opts) + this[kAgent] = new Agent(opts) + this[kInterceptors] = opts.interceptors && opts.interceptors.ProxyAgent && Array.isArray(opts.interceptors.ProxyAgent) + ? opts.interceptors.ProxyAgent + : [] + + if (typeof opts === 'string') { + opts = { uri: opts } + } + + if (!opts || !opts.uri) { + throw new InvalidArgumentError('Proxy opts.uri is mandatory') + } + + const { clientFactory = defaultFactory } = opts + + if (typeof clientFactory !== 'function') { + throw new InvalidArgumentError('Proxy opts.clientFactory must be a function.') + } + + this[kRequestTls] = opts.requestTls + this[kProxyTls] = opts.proxyTls + this[kProxyHeaders] = opts.headers || {} + + if (opts.auth && opts.token) { + throw new InvalidArgumentError('opts.auth cannot be used in combination with opts.token') + } else if (opts.auth) { + /* @deprecated in favour of opts.token */ + this[kProxyHeaders]['proxy-authorization'] = `Basic ${opts.auth}` + } else if (opts.token) { + this[kProxyHeaders]['proxy-authorization'] = opts.token + } + + const resolvedUrl = new URL(opts.uri) + const { origin, port, host } = resolvedUrl + + const connect = buildConnector({ ...opts.proxyTls }) + this[kConnectEndpoint] = buildConnector({ ...opts.requestTls }) + this[kClient] = clientFactory(resolvedUrl, { connect }) + this[kAgent] = new Agent({ + ...opts, + connect: async (opts, callback) => { + let requestedHost = opts.host + if (!opts.port) { + requestedHost += `:${defaultProtocolPort(opts.protocol)}` + } + try { + const { socket, statusCode } = await this[kClient].connect({ + origin, + port, + path: requestedHost, + signal: opts.signal, + headers: { + ...this[kProxyHeaders], + host + } + }) + if (statusCode !== 200) { + socket.on('error', () => {}).destroy() + callback(new RequestAbortedError('Proxy response !== 200 when HTTP Tunneling')) + } + if (opts.protocol !== 'https:') { + callback(null, socket) + return + } + let servername + if (this[kRequestTls]) { + servername = this[kRequestTls].servername + } else { + servername = opts.servername + } + this[kConnectEndpoint]({ ...opts, servername, httpSocket: socket }, callback) + } catch (err) { + callback(err) + } + } + }) + } + + dispatch (opts, handler) { + const { host } = new URL(opts.origin) + const headers = buildHeaders(opts.headers) + throwIfProxyAuthIsSent(headers) + return this[kAgent].dispatch( + { + ...opts, + headers: { + ...headers, + host + } + }, + handler + ) + } + + async [kClose] () { + await this[kAgent].close() + await this[kClient].close() + } + + async [kDestroy] () { + await this[kAgent].destroy() + await this[kClient].destroy() + } +} + +/** + * @param {string[] | Record} headers + * @returns {Record} + */ +function buildHeaders (headers) { + // When using undici.fetch, the headers list is stored + // as an array. + if (Array.isArray(headers)) { + /** @type {Record} */ + const headersPair = {} + + for (let i = 0; i < headers.length; i += 2) { + headersPair[headers[i]] = headers[i + 1] + } + + return headersPair + } + + return headers +} + +/** + * @param {Record} headers + * + * Previous versions of ProxyAgent suggests the Proxy-Authorization in request headers + * Nevertheless, it was changed and to avoid a security vulnerability by end users + * this check was created. + * It should be removed in the next major version for performance reasons + */ +function throwIfProxyAuthIsSent (headers) { + const existProxyAuth = headers && Object.keys(headers) + .find((key) => key.toLowerCase() === 'proxy-authorization') + if (existProxyAuth) { + throw new InvalidArgumentError('Proxy-Authorization should be sent in ProxyAgent constructor') + } +} + +module.exports = ProxyAgent + + +/***/ }), + +/***/ 9459: +/***/ ((module) => { + +"use strict"; + + +let fastNow = Date.now() +let fastNowTimeout + +const fastTimers = [] + +function onTimeout () { + fastNow = Date.now() + + let len = fastTimers.length + let idx = 0 + while (idx < len) { + const timer = fastTimers[idx] + + if (timer.state === 0) { + timer.state = fastNow + timer.delay + } else if (timer.state > 0 && fastNow >= timer.state) { + timer.state = -1 + timer.callback(timer.opaque) + } + + if (timer.state === -1) { + timer.state = -2 + if (idx !== len - 1) { + fastTimers[idx] = fastTimers.pop() + } else { + fastTimers.pop() + } + len -= 1 + } else { + idx += 1 + } + } + + if (fastTimers.length > 0) { + refreshTimeout() + } +} + +function refreshTimeout () { + if (fastNowTimeout && fastNowTimeout.refresh) { + fastNowTimeout.refresh() + } else { + clearTimeout(fastNowTimeout) + fastNowTimeout = setTimeout(onTimeout, 1e3) + if (fastNowTimeout.unref) { + fastNowTimeout.unref() + } + } +} + +class Timeout { + constructor (callback, delay, opaque) { + this.callback = callback + this.delay = delay + this.opaque = opaque + + // -2 not in timer list + // -1 in timer list but inactive + // 0 in timer list waiting for time + // > 0 in timer list waiting for time to expire + this.state = -2 + + this.refresh() + } + + refresh () { + if (this.state === -2) { + fastTimers.push(this) + if (!fastNowTimeout || fastTimers.length === 1) { + refreshTimeout() + } + } + + this.state = 0 + } + + clear () { + this.state = -1 + } +} + +module.exports = { + setTimeout (callback, delay, opaque) { + return delay < 1e3 + ? setTimeout(callback, delay, opaque) + : new Timeout(callback, delay, opaque) + }, + clearTimeout (timeout) { + if (timeout instanceof Timeout) { + timeout.clear() + } else { + clearTimeout(timeout) + } + } +} + + +/***/ }), + +/***/ 5354: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const diagnosticsChannel = __nccwpck_require__(7643) +const { uid, states } = __nccwpck_require__(9188) +const { + kReadyState, + kSentClose, + kByteParser, + kReceivedClose +} = __nccwpck_require__(7578) +const { fireEvent, failWebsocketConnection } = __nccwpck_require__(5515) +const { CloseEvent } = __nccwpck_require__(2611) +const { makeRequest } = __nccwpck_require__(8359) +const { fetching } = __nccwpck_require__(4881) +const { Headers } = __nccwpck_require__(554) +const { getGlobalDispatcher } = __nccwpck_require__(1892) +const { kHeadersList } = __nccwpck_require__(2785) + +const channels = {} +channels.open = diagnosticsChannel.channel('undici:websocket:open') +channels.close = diagnosticsChannel.channel('undici:websocket:close') +channels.socketError = diagnosticsChannel.channel('undici:websocket:socket_error') + +/** @type {import('crypto')} */ +let crypto +try { + crypto = __nccwpck_require__(6113) +} catch { + +} + +/** + * @see https://websockets.spec.whatwg.org/#concept-websocket-establish + * @param {URL} url + * @param {string|string[]} protocols + * @param {import('./websocket').WebSocket} ws + * @param {(response: any) => void} onEstablish + * @param {Partial} options + */ +function establishWebSocketConnection (url, protocols, ws, onEstablish, options) { + // 1. Let requestURL be a copy of url, with its scheme set to "http", if url’s + // scheme is "ws", and to "https" otherwise. + const requestURL = url + + requestURL.protocol = url.protocol === 'ws:' ? 'http:' : 'https:' + + // 2. Let request be a new request, whose URL is requestURL, client is client, + // service-workers mode is "none", referrer is "no-referrer", mode is + // "websocket", credentials mode is "include", cache mode is "no-store" , + // and redirect mode is "error". + const request = makeRequest({ + urlList: [requestURL], + serviceWorkers: 'none', + referrer: 'no-referrer', + mode: 'websocket', + credentials: 'include', + cache: 'no-store', + redirect: 'error' + }) + + // Note: undici extension, allow setting custom headers. + if (options.headers) { + const headersList = new Headers(options.headers)[kHeadersList] + + request.headersList = headersList + } + + // 3. Append (`Upgrade`, `websocket`) to request’s header list. + // 4. Append (`Connection`, `Upgrade`) to request’s header list. + // Note: both of these are handled by undici currently. + // https://github.com/nodejs/undici/blob/68c269c4144c446f3f1220951338daef4a6b5ec4/lib/client.js#L1397 + + // 5. Let keyValue be a nonce consisting of a randomly selected + // 16-byte value that has been forgiving-base64-encoded and + // isomorphic encoded. + const keyValue = crypto.randomBytes(16).toString('base64') + + // 6. Append (`Sec-WebSocket-Key`, keyValue) to request’s + // header list. + request.headersList.append('sec-websocket-key', keyValue) + + // 7. Append (`Sec-WebSocket-Version`, `13`) to request’s + // header list. + request.headersList.append('sec-websocket-version', '13') + + // 8. For each protocol in protocols, combine + // (`Sec-WebSocket-Protocol`, protocol) in request’s header + // list. + for (const protocol of protocols) { + request.headersList.append('sec-websocket-protocol', protocol) + } + + // 9. Let permessageDeflate be a user-agent defined + // "permessage-deflate" extension header value. + // https://github.com/mozilla/gecko-dev/blob/ce78234f5e653a5d3916813ff990f053510227bc/netwerk/protocol/websocket/WebSocketChannel.cpp#L2673 + // TODO: enable once permessage-deflate is supported + const permessageDeflate = '' // 'permessage-deflate; 15' + + // 10. Append (`Sec-WebSocket-Extensions`, permessageDeflate) to + // request’s header list. + // request.headersList.append('sec-websocket-extensions', permessageDeflate) + + // 11. Fetch request with useParallelQueue set to true, and + // processResponse given response being these steps: + const controller = fetching({ + request, + useParallelQueue: true, + dispatcher: options.dispatcher ?? getGlobalDispatcher(), + processResponse (response) { + // 1. If response is a network error or its status is not 101, + // fail the WebSocket connection. + if (response.type === 'error' || response.status !== 101) { + failWebsocketConnection(ws, 'Received network error or non-101 status code.') + return + } + + // 2. If protocols is not the empty list and extracting header + // list values given `Sec-WebSocket-Protocol` and response’s + // header list results in null, failure, or the empty byte + // sequence, then fail the WebSocket connection. + if (protocols.length !== 0 && !response.headersList.get('Sec-WebSocket-Protocol')) { + failWebsocketConnection(ws, 'Server did not respond with sent protocols.') + return + } + + // 3. Follow the requirements stated step 2 to step 6, inclusive, + // of the last set of steps in section 4.1 of The WebSocket + // Protocol to validate response. This either results in fail + // the WebSocket connection or the WebSocket connection is + // established. + + // 2. If the response lacks an |Upgrade| header field or the |Upgrade| + // header field contains a value that is not an ASCII case- + // insensitive match for the value "websocket", the client MUST + // _Fail the WebSocket Connection_. + if (response.headersList.get('Upgrade')?.toLowerCase() !== 'websocket') { + failWebsocketConnection(ws, 'Server did not set Upgrade header to "websocket".') + return + } + + // 3. If the response lacks a |Connection| header field or the + // |Connection| header field doesn't contain a token that is an + // ASCII case-insensitive match for the value "Upgrade", the client + // MUST _Fail the WebSocket Connection_. + if (response.headersList.get('Connection')?.toLowerCase() !== 'upgrade') { + failWebsocketConnection(ws, 'Server did not set Connection header to "upgrade".') + return + } + + // 4. If the response lacks a |Sec-WebSocket-Accept| header field or + // the |Sec-WebSocket-Accept| contains a value other than the + // base64-encoded SHA-1 of the concatenation of the |Sec-WebSocket- + // Key| (as a string, not base64-decoded) with the string "258EAFA5- + // E914-47DA-95CA-C5AB0DC85B11" but ignoring any leading and + // trailing whitespace, the client MUST _Fail the WebSocket + // Connection_. + const secWSAccept = response.headersList.get('Sec-WebSocket-Accept') + const digest = crypto.createHash('sha1').update(keyValue + uid).digest('base64') + if (secWSAccept !== digest) { + failWebsocketConnection(ws, 'Incorrect hash received in Sec-WebSocket-Accept header.') + return + } + + // 5. If the response includes a |Sec-WebSocket-Extensions| header + // field and this header field indicates the use of an extension + // that was not present in the client's handshake (the server has + // indicated an extension not requested by the client), the client + // MUST _Fail the WebSocket Connection_. (The parsing of this + // header field to determine which extensions are requested is + // discussed in Section 9.1.) + const secExtension = response.headersList.get('Sec-WebSocket-Extensions') + + if (secExtension !== null && secExtension !== permessageDeflate) { + failWebsocketConnection(ws, 'Received different permessage-deflate than the one set.') + return + } + + // 6. If the response includes a |Sec-WebSocket-Protocol| header field + // and this header field indicates the use of a subprotocol that was + // not present in the client's handshake (the server has indicated a + // subprotocol not requested by the client), the client MUST _Fail + // the WebSocket Connection_. + const secProtocol = response.headersList.get('Sec-WebSocket-Protocol') + + if (secProtocol !== null && secProtocol !== request.headersList.get('Sec-WebSocket-Protocol')) { + failWebsocketConnection(ws, 'Protocol was not set in the opening handshake.') + return + } + + response.socket.on('data', onSocketData) + response.socket.on('close', onSocketClose) + response.socket.on('error', onSocketError) + + if (channels.open.hasSubscribers) { + channels.open.publish({ + address: response.socket.address(), + protocol: secProtocol, + extensions: secExtension + }) + } + + onEstablish(response) + } + }) + + return controller +} + +/** + * @param {Buffer} chunk + */ +function onSocketData (chunk) { + if (!this.ws[kByteParser].write(chunk)) { + this.pause() + } +} + +/** + * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol + * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.4 + */ +function onSocketClose () { + const { ws } = this + + // If the TCP connection was closed after the + // WebSocket closing handshake was completed, the WebSocket connection + // is said to have been closed _cleanly_. + const wasClean = ws[kSentClose] && ws[kReceivedClose] + + let code = 1005 + let reason = '' + + const result = ws[kByteParser].closingInfo + + if (result) { + code = result.code ?? 1005 + reason = result.reason + } else if (!ws[kSentClose]) { + // If _The WebSocket + // Connection is Closed_ and no Close control frame was received by the + // endpoint (such as could occur if the underlying transport connection + // is lost), _The WebSocket Connection Close Code_ is considered to be + // 1006. + code = 1006 + } + + // 1. Change the ready state to CLOSED (3). + ws[kReadyState] = states.CLOSED + + // 2. If the user agent was required to fail the WebSocket + // connection, or if the WebSocket connection was closed + // after being flagged as full, fire an event named error + // at the WebSocket object. + // TODO + + // 3. Fire an event named close at the WebSocket object, + // using CloseEvent, with the wasClean attribute + // initialized to true if the connection closed cleanly + // and false otherwise, the code attribute initialized to + // the WebSocket connection close code, and the reason + // attribute initialized to the result of applying UTF-8 + // decode without BOM to the WebSocket connection close + // reason. + fireEvent('close', ws, CloseEvent, { + wasClean, code, reason + }) + + if (channels.close.hasSubscribers) { + channels.close.publish({ + websocket: ws, + code, + reason + }) + } +} + +function onSocketError (error) { + const { ws } = this + + ws[kReadyState] = states.CLOSING + + if (channels.socketError.hasSubscribers) { + channels.socketError.publish(error) + } + + this.destroy() +} + +module.exports = { + establishWebSocketConnection +} + + +/***/ }), + +/***/ 9188: +/***/ ((module) => { + +"use strict"; + + +// This is a Globally Unique Identifier unique used +// to validate that the endpoint accepts websocket +// connections. +// See https://www.rfc-editor.org/rfc/rfc6455.html#section-1.3 +const uid = '258EAFA5-E914-47DA-95CA-C5AB0DC85B11' + +/** @type {PropertyDescriptor} */ +const staticPropertyDescriptors = { + enumerable: true, + writable: false, + configurable: false +} + +const states = { + CONNECTING: 0, + OPEN: 1, + CLOSING: 2, + CLOSED: 3 +} + +const opcodes = { + CONTINUATION: 0x0, + TEXT: 0x1, + BINARY: 0x2, + CLOSE: 0x8, + PING: 0x9, + PONG: 0xA +} + +const maxUnsigned16Bit = 2 ** 16 - 1 // 65535 + +const parserStates = { + INFO: 0, + PAYLOADLENGTH_16: 2, + PAYLOADLENGTH_64: 3, + READ_DATA: 4 +} + +const emptyBuffer = Buffer.allocUnsafe(0) + +module.exports = { + uid, + staticPropertyDescriptors, + states, + opcodes, + maxUnsigned16Bit, + parserStates, + emptyBuffer +} + + +/***/ }), + +/***/ 2611: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { webidl } = __nccwpck_require__(1744) +const { kEnumerableProperty } = __nccwpck_require__(3983) +const { MessagePort } = __nccwpck_require__(1267) + +/** + * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent + */ +class MessageEvent extends Event { + #eventInit + + constructor (type, eventInitDict = {}) { + webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent constructor' }) + + type = webidl.converters.DOMString(type) + eventInitDict = webidl.converters.MessageEventInit(eventInitDict) + + super(type, eventInitDict) + + this.#eventInit = eventInitDict + } + + get data () { + webidl.brandCheck(this, MessageEvent) + + return this.#eventInit.data + } + + get origin () { + webidl.brandCheck(this, MessageEvent) + + return this.#eventInit.origin + } + + get lastEventId () { + webidl.brandCheck(this, MessageEvent) + + return this.#eventInit.lastEventId + } + + get source () { + webidl.brandCheck(this, MessageEvent) + + return this.#eventInit.source + } + + get ports () { + webidl.brandCheck(this, MessageEvent) + + if (!Object.isFrozen(this.#eventInit.ports)) { + Object.freeze(this.#eventInit.ports) + } + + return this.#eventInit.ports + } + + initMessageEvent ( + type, + bubbles = false, + cancelable = false, + data = null, + origin = '', + lastEventId = '', + source = null, + ports = [] + ) { + webidl.brandCheck(this, MessageEvent) + + webidl.argumentLengthCheck(arguments, 1, { header: 'MessageEvent.initMessageEvent' }) + + return new MessageEvent(type, { + bubbles, cancelable, data, origin, lastEventId, source, ports + }) + } +} + +/** + * @see https://websockets.spec.whatwg.org/#the-closeevent-interface + */ +class CloseEvent extends Event { + #eventInit + + constructor (type, eventInitDict = {}) { + webidl.argumentLengthCheck(arguments, 1, { header: 'CloseEvent constructor' }) + + type = webidl.converters.DOMString(type) + eventInitDict = webidl.converters.CloseEventInit(eventInitDict) + + super(type, eventInitDict) + + this.#eventInit = eventInitDict + } + + get wasClean () { + webidl.brandCheck(this, CloseEvent) + + return this.#eventInit.wasClean + } + + get code () { + webidl.brandCheck(this, CloseEvent) + + return this.#eventInit.code + } + + get reason () { + webidl.brandCheck(this, CloseEvent) + + return this.#eventInit.reason + } +} + +// https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface +class ErrorEvent extends Event { + #eventInit + + constructor (type, eventInitDict) { + webidl.argumentLengthCheck(arguments, 1, { header: 'ErrorEvent constructor' }) + + super(type, eventInitDict) + + type = webidl.converters.DOMString(type) + eventInitDict = webidl.converters.ErrorEventInit(eventInitDict ?? {}) + + this.#eventInit = eventInitDict + } + + get message () { + webidl.brandCheck(this, ErrorEvent) + + return this.#eventInit.message + } + + get filename () { + webidl.brandCheck(this, ErrorEvent) + + return this.#eventInit.filename + } + + get lineno () { + webidl.brandCheck(this, ErrorEvent) + + return this.#eventInit.lineno + } + + get colno () { + webidl.brandCheck(this, ErrorEvent) + + return this.#eventInit.colno + } + + get error () { + webidl.brandCheck(this, ErrorEvent) + + return this.#eventInit.error + } +} + +Object.defineProperties(MessageEvent.prototype, { + [Symbol.toStringTag]: { + value: 'MessageEvent', + configurable: true + }, + data: kEnumerableProperty, + origin: kEnumerableProperty, + lastEventId: kEnumerableProperty, + source: kEnumerableProperty, + ports: kEnumerableProperty, + initMessageEvent: kEnumerableProperty +}) + +Object.defineProperties(CloseEvent.prototype, { + [Symbol.toStringTag]: { + value: 'CloseEvent', + configurable: true + }, + reason: kEnumerableProperty, + code: kEnumerableProperty, + wasClean: kEnumerableProperty +}) + +Object.defineProperties(ErrorEvent.prototype, { + [Symbol.toStringTag]: { + value: 'ErrorEvent', + configurable: true + }, + message: kEnumerableProperty, + filename: kEnumerableProperty, + lineno: kEnumerableProperty, + colno: kEnumerableProperty, + error: kEnumerableProperty +}) + +webidl.converters.MessagePort = webidl.interfaceConverter(MessagePort) + +webidl.converters['sequence'] = webidl.sequenceConverter( + webidl.converters.MessagePort +) + +const eventInit = [ + { + key: 'bubbles', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'cancelable', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'composed', + converter: webidl.converters.boolean, + defaultValue: false + } +] + +webidl.converters.MessageEventInit = webidl.dictionaryConverter([ + ...eventInit, + { + key: 'data', + converter: webidl.converters.any, + defaultValue: null + }, + { + key: 'origin', + converter: webidl.converters.USVString, + defaultValue: '' + }, + { + key: 'lastEventId', + converter: webidl.converters.DOMString, + defaultValue: '' + }, + { + key: 'source', + // Node doesn't implement WindowProxy or ServiceWorker, so the only + // valid value for source is a MessagePort. + converter: webidl.nullableConverter(webidl.converters.MessagePort), + defaultValue: null + }, + { + key: 'ports', + converter: webidl.converters['sequence'], + get defaultValue () { + return [] + } + } +]) + +webidl.converters.CloseEventInit = webidl.dictionaryConverter([ + ...eventInit, + { + key: 'wasClean', + converter: webidl.converters.boolean, + defaultValue: false + }, + { + key: 'code', + converter: webidl.converters['unsigned short'], + defaultValue: 0 + }, + { + key: 'reason', + converter: webidl.converters.USVString, + defaultValue: '' + } +]) + +webidl.converters.ErrorEventInit = webidl.dictionaryConverter([ + ...eventInit, + { + key: 'message', + converter: webidl.converters.DOMString, + defaultValue: '' + }, + { + key: 'filename', + converter: webidl.converters.USVString, + defaultValue: '' + }, + { + key: 'lineno', + converter: webidl.converters['unsigned long'], + defaultValue: 0 + }, + { + key: 'colno', + converter: webidl.converters['unsigned long'], + defaultValue: 0 + }, + { + key: 'error', + converter: webidl.converters.any + } +]) + +module.exports = { + MessageEvent, + CloseEvent, + ErrorEvent +} + + +/***/ }), + +/***/ 5444: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { maxUnsigned16Bit } = __nccwpck_require__(9188) + +/** @type {import('crypto')} */ +let crypto +try { + crypto = __nccwpck_require__(6113) +} catch { + +} + +class WebsocketFrameSend { + /** + * @param {Buffer|undefined} data + */ + constructor (data) { + this.frameData = data + this.maskKey = crypto.randomBytes(4) + } + + createFrame (opcode) { + const bodyLength = this.frameData?.byteLength ?? 0 + + /** @type {number} */ + let payloadLength = bodyLength // 0-125 + let offset = 6 + + if (bodyLength > maxUnsigned16Bit) { + offset += 8 // payload length is next 8 bytes + payloadLength = 127 + } else if (bodyLength > 125) { + offset += 2 // payload length is next 2 bytes + payloadLength = 126 + } + + const buffer = Buffer.allocUnsafe(bodyLength + offset) + + // Clear first 2 bytes, everything else is overwritten + buffer[0] = buffer[1] = 0 + buffer[0] |= 0x80 // FIN + buffer[0] = (buffer[0] & 0xF0) + opcode // opcode + + /*! ws. MIT License. Einar Otto Stangvik */ + buffer[offset - 4] = this.maskKey[0] + buffer[offset - 3] = this.maskKey[1] + buffer[offset - 2] = this.maskKey[2] + buffer[offset - 1] = this.maskKey[3] + + buffer[1] = payloadLength + + if (payloadLength === 126) { + buffer.writeUInt16BE(bodyLength, 2) + } else if (payloadLength === 127) { + // Clear extended payload length + buffer[2] = buffer[3] = 0 + buffer.writeUIntBE(bodyLength, 4, 6) + } + + buffer[1] |= 0x80 // MASK + + // mask body + for (let i = 0; i < bodyLength; i++) { + buffer[offset + i] = this.frameData[i] ^ this.maskKey[i % 4] + } + + return buffer + } +} + +module.exports = { + WebsocketFrameSend +} + + +/***/ }), + +/***/ 1688: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { Writable } = __nccwpck_require__(2781) +const diagnosticsChannel = __nccwpck_require__(7643) +const { parserStates, opcodes, states, emptyBuffer } = __nccwpck_require__(9188) +const { kReadyState, kSentClose, kResponse, kReceivedClose } = __nccwpck_require__(7578) +const { isValidStatusCode, failWebsocketConnection, websocketMessageReceived } = __nccwpck_require__(5515) +const { WebsocketFrameSend } = __nccwpck_require__(5444) + +// This code was influenced by ws released under the MIT license. +// Copyright (c) 2011 Einar Otto Stangvik +// Copyright (c) 2013 Arnout Kazemier and contributors +// Copyright (c) 2016 Luigi Pinca and contributors + +const channels = {} +channels.ping = diagnosticsChannel.channel('undici:websocket:ping') +channels.pong = diagnosticsChannel.channel('undici:websocket:pong') + +class ByteParser extends Writable { + #buffers = [] + #byteOffset = 0 + + #state = parserStates.INFO + + #info = {} + #fragments = [] + + constructor (ws) { + super() + + this.ws = ws + } + + /** + * @param {Buffer} chunk + * @param {() => void} callback + */ + _write (chunk, _, callback) { + this.#buffers.push(chunk) + this.#byteOffset += chunk.length + + this.run(callback) + } + + /** + * Runs whenever a new chunk is received. + * Callback is called whenever there are no more chunks buffering, + * or not enough bytes are buffered to parse. + */ + run (callback) { + while (true) { + if (this.#state === parserStates.INFO) { + // If there aren't enough bytes to parse the payload length, etc. + if (this.#byteOffset < 2) { + return callback() + } + + const buffer = this.consume(2) + + this.#info.fin = (buffer[0] & 0x80) !== 0 + this.#info.opcode = buffer[0] & 0x0F + + // If we receive a fragmented message, we use the type of the first + // frame to parse the full message as binary/text, when it's terminated + this.#info.originalOpcode ??= this.#info.opcode + + this.#info.fragmented = !this.#info.fin && this.#info.opcode !== opcodes.CONTINUATION + + if (this.#info.fragmented && this.#info.opcode !== opcodes.BINARY && this.#info.opcode !== opcodes.TEXT) { + // Only text and binary frames can be fragmented + failWebsocketConnection(this.ws, 'Invalid frame type was fragmented.') + return + } + + const payloadLength = buffer[1] & 0x7F + + if (payloadLength <= 125) { + this.#info.payloadLength = payloadLength + this.#state = parserStates.READ_DATA + } else if (payloadLength === 126) { + this.#state = parserStates.PAYLOADLENGTH_16 + } else if (payloadLength === 127) { + this.#state = parserStates.PAYLOADLENGTH_64 + } + + if (this.#info.fragmented && payloadLength > 125) { + // A fragmented frame can't be fragmented itself + failWebsocketConnection(this.ws, 'Fragmented frame exceeded 125 bytes.') + return + } else if ( + (this.#info.opcode === opcodes.PING || + this.#info.opcode === opcodes.PONG || + this.#info.opcode === opcodes.CLOSE) && + payloadLength > 125 + ) { + // Control frames can have a payload length of 125 bytes MAX + failWebsocketConnection(this.ws, 'Payload length for control frame exceeded 125 bytes.') + return + } else if (this.#info.opcode === opcodes.CLOSE) { + if (payloadLength === 1) { + failWebsocketConnection(this.ws, 'Received close frame with a 1-byte body.') + return + } + + const body = this.consume(payloadLength) + + this.#info.closeInfo = this.parseCloseBody(false, body) + + if (!this.ws[kSentClose]) { + // If an endpoint receives a Close frame and did not previously send a + // Close frame, the endpoint MUST send a Close frame in response. (When + // sending a Close frame in response, the endpoint typically echos the + // status code it received.) + const body = Buffer.allocUnsafe(2) + body.writeUInt16BE(this.#info.closeInfo.code, 0) + const closeFrame = new WebsocketFrameSend(body) + + this.ws[kResponse].socket.write( + closeFrame.createFrame(opcodes.CLOSE), + (err) => { + if (!err) { + this.ws[kSentClose] = true + } + } + ) + } + + // Upon either sending or receiving a Close control frame, it is said + // that _The WebSocket Closing Handshake is Started_ and that the + // WebSocket connection is in the CLOSING state. + this.ws[kReadyState] = states.CLOSING + this.ws[kReceivedClose] = true + + this.end() + + return + } else if (this.#info.opcode === opcodes.PING) { + // Upon receipt of a Ping frame, an endpoint MUST send a Pong frame in + // response, unless it already received a Close frame. + // A Pong frame sent in response to a Ping frame must have identical + // "Application data" + + const body = this.consume(payloadLength) + + if (!this.ws[kReceivedClose]) { + const frame = new WebsocketFrameSend(body) + + this.ws[kResponse].socket.write(frame.createFrame(opcodes.PONG)) + + if (channels.ping.hasSubscribers) { + channels.ping.publish({ + payload: body + }) + } + } + + this.#state = parserStates.INFO + + if (this.#byteOffset > 0) { + continue + } else { + callback() + return + } + } else if (this.#info.opcode === opcodes.PONG) { + // A Pong frame MAY be sent unsolicited. This serves as a + // unidirectional heartbeat. A response to an unsolicited Pong frame is + // not expected. + + const body = this.consume(payloadLength) + + if (channels.pong.hasSubscribers) { + channels.pong.publish({ + payload: body + }) + } + + if (this.#byteOffset > 0) { + continue + } else { + callback() + return + } + } + } else if (this.#state === parserStates.PAYLOADLENGTH_16) { + if (this.#byteOffset < 2) { + return callback() + } + + const buffer = this.consume(2) + + this.#info.payloadLength = buffer.readUInt16BE(0) + this.#state = parserStates.READ_DATA + } else if (this.#state === parserStates.PAYLOADLENGTH_64) { + if (this.#byteOffset < 8) { + return callback() + } + + const buffer = this.consume(8) + const upper = buffer.readUInt32BE(0) + + // 2^31 is the maxinimum bytes an arraybuffer can contain + // on 32-bit systems. Although, on 64-bit systems, this is + // 2^53-1 bytes. + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_array_length + // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/common/globals.h;drc=1946212ac0100668f14eb9e2843bdd846e510a1e;bpv=1;bpt=1;l=1275 + // https://source.chromium.org/chromium/chromium/src/+/main:v8/src/objects/js-array-buffer.h;l=34;drc=1946212ac0100668f14eb9e2843bdd846e510a1e + if (upper > 2 ** 31 - 1) { + failWebsocketConnection(this.ws, 'Received payload length > 2^31 bytes.') + return + } + + const lower = buffer.readUInt32BE(4) + + this.#info.payloadLength = (upper << 8) + lower + this.#state = parserStates.READ_DATA + } else if (this.#state === parserStates.READ_DATA) { + if (this.#byteOffset < this.#info.payloadLength) { + // If there is still more data in this chunk that needs to be read + return callback() + } else if (this.#byteOffset >= this.#info.payloadLength) { + // If the server sent multiple frames in a single chunk + + const body = this.consume(this.#info.payloadLength) + + this.#fragments.push(body) + + // If the frame is unfragmented, or a fragmented frame was terminated, + // a message was received + if (!this.#info.fragmented || (this.#info.fin && this.#info.opcode === opcodes.CONTINUATION)) { + const fullMessage = Buffer.concat(this.#fragments) + + websocketMessageReceived(this.ws, this.#info.originalOpcode, fullMessage) + + this.#info = {} + this.#fragments.length = 0 + } + + this.#state = parserStates.INFO + } + } + + if (this.#byteOffset > 0) { + continue + } else { + callback() + break + } + } + } + + /** + * Take n bytes from the buffered Buffers + * @param {number} n + * @returns {Buffer|null} + */ + consume (n) { + if (n > this.#byteOffset) { + return null + } else if (n === 0) { + return emptyBuffer + } + + if (this.#buffers[0].length === n) { + this.#byteOffset -= this.#buffers[0].length + return this.#buffers.shift() + } + + const buffer = Buffer.allocUnsafe(n) + let offset = 0 + + while (offset !== n) { + const next = this.#buffers[0] + const { length } = next + + if (length + offset === n) { + buffer.set(this.#buffers.shift(), offset) + break + } else if (length + offset > n) { + buffer.set(next.subarray(0, n - offset), offset) + this.#buffers[0] = next.subarray(n - offset) + break + } else { + buffer.set(this.#buffers.shift(), offset) + offset += next.length + } + } + + this.#byteOffset -= n + + return buffer + } + + parseCloseBody (onlyCode, data) { + // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.5 + /** @type {number|undefined} */ + let code + + if (data.length >= 2) { + // _The WebSocket Connection Close Code_ is + // defined as the status code (Section 7.4) contained in the first Close + // control frame received by the application + code = data.readUInt16BE(0) + } + + if (onlyCode) { + if (!isValidStatusCode(code)) { + return null + } + + return { code } + } + + // https://datatracker.ietf.org/doc/html/rfc6455#section-7.1.6 + /** @type {Buffer} */ + let reason = data.subarray(2) + + // Remove BOM + if (reason[0] === 0xEF && reason[1] === 0xBB && reason[2] === 0xBF) { + reason = reason.subarray(3) + } + + if (code !== undefined && !isValidStatusCode(code)) { + return null + } + + try { + // TODO: optimize this + reason = new TextDecoder('utf-8', { fatal: true }).decode(reason) + } catch { + return null + } + + return { code, reason } + } + + get closingInfo () { + return this.#info.closeInfo + } +} + +module.exports = { + ByteParser +} + + +/***/ }), + +/***/ 7578: +/***/ ((module) => { + +"use strict"; + + +module.exports = { + kWebSocketURL: Symbol('url'), + kReadyState: Symbol('ready state'), + kController: Symbol('controller'), + kResponse: Symbol('response'), + kBinaryType: Symbol('binary type'), + kSentClose: Symbol('sent close'), + kReceivedClose: Symbol('received close'), + kByteParser: Symbol('byte parser') +} + + +/***/ }), + +/***/ 5515: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { kReadyState, kController, kResponse, kBinaryType, kWebSocketURL } = __nccwpck_require__(7578) +const { states, opcodes } = __nccwpck_require__(9188) +const { MessageEvent, ErrorEvent } = __nccwpck_require__(2611) + +/* globals Blob */ + +/** + * @param {import('./websocket').WebSocket} ws + */ +function isEstablished (ws) { + // If the server's response is validated as provided for above, it is + // said that _The WebSocket Connection is Established_ and that the + // WebSocket Connection is in the OPEN state. + return ws[kReadyState] === states.OPEN +} + +/** + * @param {import('./websocket').WebSocket} ws + */ +function isClosing (ws) { + // Upon either sending or receiving a Close control frame, it is said + // that _The WebSocket Closing Handshake is Started_ and that the + // WebSocket connection is in the CLOSING state. + return ws[kReadyState] === states.CLOSING +} + +/** + * @param {import('./websocket').WebSocket} ws + */ +function isClosed (ws) { + return ws[kReadyState] === states.CLOSED +} + +/** + * @see https://dom.spec.whatwg.org/#concept-event-fire + * @param {string} e + * @param {EventTarget} target + * @param {EventInit | undefined} eventInitDict + */ +function fireEvent (e, target, eventConstructor = Event, eventInitDict) { + // 1. If eventConstructor is not given, then let eventConstructor be Event. + + // 2. Let event be the result of creating an event given eventConstructor, + // in the relevant realm of target. + // 3. Initialize event’s type attribute to e. + const event = new eventConstructor(e, eventInitDict) // eslint-disable-line new-cap + + // 4. Initialize any other IDL attributes of event as described in the + // invocation of this algorithm. + + // 5. Return the result of dispatching event at target, with legacy target + // override flag set if set. + target.dispatchEvent(event) +} + +/** + * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol + * @param {import('./websocket').WebSocket} ws + * @param {number} type Opcode + * @param {Buffer} data application data + */ +function websocketMessageReceived (ws, type, data) { + // 1. If ready state is not OPEN (1), then return. + if (ws[kReadyState] !== states.OPEN) { + return + } + + // 2. Let dataForEvent be determined by switching on type and binary type: + let dataForEvent + + if (type === opcodes.TEXT) { + // -> type indicates that the data is Text + // a new DOMString containing data + try { + dataForEvent = new TextDecoder('utf-8', { fatal: true }).decode(data) + } catch { + failWebsocketConnection(ws, 'Received invalid UTF-8 in text frame.') + return + } + } else if (type === opcodes.BINARY) { + if (ws[kBinaryType] === 'blob') { + // -> type indicates that the data is Binary and binary type is "blob" + // a new Blob object, created in the relevant Realm of the WebSocket + // object, that represents data as its raw data + dataForEvent = new Blob([data]) + } else { + // -> type indicates that the data is Binary and binary type is "arraybuffer" + // a new ArrayBuffer object, created in the relevant Realm of the + // WebSocket object, whose contents are data + dataForEvent = new Uint8Array(data).buffer + } + } + + // 3. Fire an event named message at the WebSocket object, using MessageEvent, + // with the origin attribute initialized to the serialization of the WebSocket + // object’s url's origin, and the data attribute initialized to dataForEvent. + fireEvent('message', ws, MessageEvent, { + origin: ws[kWebSocketURL].origin, + data: dataForEvent + }) +} + +/** + * @see https://datatracker.ietf.org/doc/html/rfc6455 + * @see https://datatracker.ietf.org/doc/html/rfc2616 + * @see https://bugs.chromium.org/p/chromium/issues/detail?id=398407 + * @param {string} protocol + */ +function isValidSubprotocol (protocol) { + // If present, this value indicates one + // or more comma-separated subprotocol the client wishes to speak, + // ordered by preference. The elements that comprise this value + // MUST be non-empty strings with characters in the range U+0021 to + // U+007E not including separator characters as defined in + // [RFC2616] and MUST all be unique strings. + if (protocol.length === 0) { + return false + } + + for (const char of protocol) { + const code = char.charCodeAt(0) + + if ( + code < 0x21 || + code > 0x7E || + char === '(' || + char === ')' || + char === '<' || + char === '>' || + char === '@' || + char === ',' || + char === ';' || + char === ':' || + char === '\\' || + char === '"' || + char === '/' || + char === '[' || + char === ']' || + char === '?' || + char === '=' || + char === '{' || + char === '}' || + code === 32 || // SP + code === 9 // HT + ) { + return false + } + } + + return true +} + +/** + * @see https://datatracker.ietf.org/doc/html/rfc6455#section-7-4 + * @param {number} code + */ +function isValidStatusCode (code) { + if (code >= 1000 && code < 1015) { + return ( + code !== 1004 && // reserved + code !== 1005 && // "MUST NOT be set as a status code" + code !== 1006 // "MUST NOT be set as a status code" + ) + } + + return code >= 3000 && code <= 4999 +} + +/** + * @param {import('./websocket').WebSocket} ws + * @param {string|undefined} reason + */ +function failWebsocketConnection (ws, reason) { + const { [kController]: controller, [kResponse]: response } = ws + + controller.abort() + + if (response?.socket && !response.socket.destroyed) { + response.socket.destroy() + } + + if (reason) { + fireEvent('error', ws, ErrorEvent, { + error: new Error(reason) + }) + } +} + +module.exports = { + isEstablished, + isClosing, + isClosed, + fireEvent, + isValidSubprotocol, + isValidStatusCode, + failWebsocketConnection, + websocketMessageReceived +} + + +/***/ }), + +/***/ 4284: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const { webidl } = __nccwpck_require__(1744) +const { DOMException } = __nccwpck_require__(1037) +const { URLSerializer } = __nccwpck_require__(685) +const { getGlobalOrigin } = __nccwpck_require__(1246) +const { staticPropertyDescriptors, states, opcodes, emptyBuffer } = __nccwpck_require__(9188) +const { + kWebSocketURL, + kReadyState, + kController, + kBinaryType, + kResponse, + kSentClose, + kByteParser +} = __nccwpck_require__(7578) +const { isEstablished, isClosing, isValidSubprotocol, failWebsocketConnection, fireEvent } = __nccwpck_require__(5515) +const { establishWebSocketConnection } = __nccwpck_require__(5354) +const { WebsocketFrameSend } = __nccwpck_require__(5444) +const { ByteParser } = __nccwpck_require__(1688) +const { kEnumerableProperty, isBlobLike } = __nccwpck_require__(3983) +const { getGlobalDispatcher } = __nccwpck_require__(1892) +const { types } = __nccwpck_require__(3837) + +let experimentalWarned = false + +// https://websockets.spec.whatwg.org/#interface-definition +class WebSocket extends EventTarget { + #events = { + open: null, + error: null, + close: null, + message: null + } + + #bufferedAmount = 0 + #protocol = '' + #extensions = '' + + /** + * @param {string} url + * @param {string|string[]} protocols + */ + constructor (url, protocols = []) { + super() + + webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket constructor' }) + + if (!experimentalWarned) { + experimentalWarned = true + process.emitWarning('WebSockets are experimental, expect them to change at any time.', { + code: 'UNDICI-WS' + }) + } + + const options = webidl.converters['DOMString or sequence or WebSocketInit'](protocols) + + url = webidl.converters.USVString(url) + protocols = options.protocols + + // 1. Let baseURL be this's relevant settings object's API base URL. + const baseURL = getGlobalOrigin() + + // 1. Let urlRecord be the result of applying the URL parser to url with baseURL. + let urlRecord + + try { + urlRecord = new URL(url, baseURL) + } catch (e) { + // 3. If urlRecord is failure, then throw a "SyntaxError" DOMException. + throw new DOMException(e, 'SyntaxError') + } + + // 4. If urlRecord’s scheme is "http", then set urlRecord’s scheme to "ws". + if (urlRecord.protocol === 'http:') { + urlRecord.protocol = 'ws:' + } else if (urlRecord.protocol === 'https:') { + // 5. Otherwise, if urlRecord’s scheme is "https", set urlRecord’s scheme to "wss". + urlRecord.protocol = 'wss:' + } + + // 6. If urlRecord’s scheme is not "ws" or "wss", then throw a "SyntaxError" DOMException. + if (urlRecord.protocol !== 'ws:' && urlRecord.protocol !== 'wss:') { + throw new DOMException( + `Expected a ws: or wss: protocol, got ${urlRecord.protocol}`, + 'SyntaxError' + ) + } + + // 7. If urlRecord’s fragment is non-null, then throw a "SyntaxError" + // DOMException. + if (urlRecord.hash || urlRecord.href.endsWith('#')) { + throw new DOMException('Got fragment', 'SyntaxError') + } + + // 8. If protocols is a string, set protocols to a sequence consisting + // of just that string. + if (typeof protocols === 'string') { + protocols = [protocols] + } + + // 9. If any of the values in protocols occur more than once or otherwise + // fail to match the requirements for elements that comprise the value + // of `Sec-WebSocket-Protocol` fields as defined by The WebSocket + // protocol, then throw a "SyntaxError" DOMException. + if (protocols.length !== new Set(protocols.map(p => p.toLowerCase())).size) { + throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError') + } + + if (protocols.length > 0 && !protocols.every(p => isValidSubprotocol(p))) { + throw new DOMException('Invalid Sec-WebSocket-Protocol value', 'SyntaxError') + } + + // 10. Set this's url to urlRecord. + this[kWebSocketURL] = new URL(urlRecord.href) + + // 11. Let client be this's relevant settings object. + + // 12. Run this step in parallel: + + // 1. Establish a WebSocket connection given urlRecord, protocols, + // and client. + this[kController] = establishWebSocketConnection( + urlRecord, + protocols, + this, + (response) => this.#onConnectionEstablished(response), + options + ) + + // Each WebSocket object has an associated ready state, which is a + // number representing the state of the connection. Initially it must + // be CONNECTING (0). + this[kReadyState] = WebSocket.CONNECTING + + // The extensions attribute must initially return the empty string. + + // The protocol attribute must initially return the empty string. + + // Each WebSocket object has an associated binary type, which is a + // BinaryType. Initially it must be "blob". + this[kBinaryType] = 'blob' + } + + /** + * @see https://websockets.spec.whatwg.org/#dom-websocket-close + * @param {number|undefined} code + * @param {string|undefined} reason + */ + close (code = undefined, reason = undefined) { + webidl.brandCheck(this, WebSocket) + + if (code !== undefined) { + code = webidl.converters['unsigned short'](code, { clamp: true }) + } + + if (reason !== undefined) { + reason = webidl.converters.USVString(reason) + } + + // 1. If code is present, but is neither an integer equal to 1000 nor an + // integer in the range 3000 to 4999, inclusive, throw an + // "InvalidAccessError" DOMException. + if (code !== undefined) { + if (code !== 1000 && (code < 3000 || code > 4999)) { + throw new DOMException('invalid code', 'InvalidAccessError') + } + } + + let reasonByteLength = 0 + + // 2. If reason is present, then run these substeps: + if (reason !== undefined) { + // 1. Let reasonBytes be the result of encoding reason. + // 2. If reasonBytes is longer than 123 bytes, then throw a + // "SyntaxError" DOMException. + reasonByteLength = Buffer.byteLength(reason) + + if (reasonByteLength > 123) { + throw new DOMException( + `Reason must be less than 123 bytes; received ${reasonByteLength}`, + 'SyntaxError' + ) + } + } + + // 3. Run the first matching steps from the following list: + if (this[kReadyState] === WebSocket.CLOSING || this[kReadyState] === WebSocket.CLOSED) { + // If this's ready state is CLOSING (2) or CLOSED (3) + // Do nothing. + } else if (!isEstablished(this)) { + // If the WebSocket connection is not yet established + // Fail the WebSocket connection and set this's ready state + // to CLOSING (2). + failWebsocketConnection(this, 'Connection was closed before it was established.') + this[kReadyState] = WebSocket.CLOSING + } else if (!isClosing(this)) { + // If the WebSocket closing handshake has not yet been started + // Start the WebSocket closing handshake and set this's ready + // state to CLOSING (2). + // - If neither code nor reason is present, the WebSocket Close + // message must not have a body. + // - If code is present, then the status code to use in the + // WebSocket Close message must be the integer given by code. + // - If reason is also present, then reasonBytes must be + // provided in the Close message after the status code. + + const frame = new WebsocketFrameSend() + + // If neither code nor reason is present, the WebSocket Close + // message must not have a body. + + // If code is present, then the status code to use in the + // WebSocket Close message must be the integer given by code. + if (code !== undefined && reason === undefined) { + frame.frameData = Buffer.allocUnsafe(2) + frame.frameData.writeUInt16BE(code, 0) + } else if (code !== undefined && reason !== undefined) { + // If reason is also present, then reasonBytes must be + // provided in the Close message after the status code. + frame.frameData = Buffer.allocUnsafe(2 + reasonByteLength) + frame.frameData.writeUInt16BE(code, 0) + // the body MAY contain UTF-8-encoded data with value /reason/ + frame.frameData.write(reason, 2, 'utf-8') + } else { + frame.frameData = emptyBuffer + } + + /** @type {import('stream').Duplex} */ + const socket = this[kResponse].socket + + socket.write(frame.createFrame(opcodes.CLOSE), (err) => { + if (!err) { + this[kSentClose] = true + } + }) + + // Upon either sending or receiving a Close control frame, it is said + // that _The WebSocket Closing Handshake is Started_ and that the + // WebSocket connection is in the CLOSING state. + this[kReadyState] = states.CLOSING + } else { + // Otherwise + // Set this's ready state to CLOSING (2). + this[kReadyState] = WebSocket.CLOSING + } + } + + /** + * @see https://websockets.spec.whatwg.org/#dom-websocket-send + * @param {NodeJS.TypedArray|ArrayBuffer|Blob|string} data + */ + send (data) { + webidl.brandCheck(this, WebSocket) + + webidl.argumentLengthCheck(arguments, 1, { header: 'WebSocket.send' }) + + data = webidl.converters.WebSocketSendData(data) + + // 1. If this's ready state is CONNECTING, then throw an + // "InvalidStateError" DOMException. + if (this[kReadyState] === WebSocket.CONNECTING) { + throw new DOMException('Sent before connected.', 'InvalidStateError') + } + + // 2. Run the appropriate set of steps from the following list: + // https://datatracker.ietf.org/doc/html/rfc6455#section-6.1 + // https://datatracker.ietf.org/doc/html/rfc6455#section-5.2 + + if (!isEstablished(this) || isClosing(this)) { + return + } + + /** @type {import('stream').Duplex} */ + const socket = this[kResponse].socket + + // If data is a string + if (typeof data === 'string') { + // If the WebSocket connection is established and the WebSocket + // closing handshake has not yet started, then the user agent + // must send a WebSocket Message comprised of the data argument + // using a text frame opcode; if the data cannot be sent, e.g. + // because it would need to be buffered but the buffer is full, + // the user agent must flag the WebSocket as full and then close + // the WebSocket connection. Any invocation of this method with a + // string argument that does not throw an exception must increase + // the bufferedAmount attribute by the number of bytes needed to + // express the argument as UTF-8. + + const value = Buffer.from(data) + const frame = new WebsocketFrameSend(value) + const buffer = frame.createFrame(opcodes.TEXT) + + this.#bufferedAmount += value.byteLength + socket.write(buffer, () => { + this.#bufferedAmount -= value.byteLength + }) + } else if (types.isArrayBuffer(data)) { + // If the WebSocket connection is established, and the WebSocket + // closing handshake has not yet started, then the user agent must + // send a WebSocket Message comprised of data using a binary frame + // opcode; if the data cannot be sent, e.g. because it would need + // to be buffered but the buffer is full, the user agent must flag + // the WebSocket as full and then close the WebSocket connection. + // The data to be sent is the data stored in the buffer described + // by the ArrayBuffer object. Any invocation of this method with an + // ArrayBuffer argument that does not throw an exception must + // increase the bufferedAmount attribute by the length of the + // ArrayBuffer in bytes. + + const value = Buffer.from(data) + const frame = new WebsocketFrameSend(value) + const buffer = frame.createFrame(opcodes.BINARY) + + this.#bufferedAmount += value.byteLength + socket.write(buffer, () => { + this.#bufferedAmount -= value.byteLength + }) + } else if (ArrayBuffer.isView(data)) { + // If the WebSocket connection is established, and the WebSocket + // closing handshake has not yet started, then the user agent must + // send a WebSocket Message comprised of data using a binary frame + // opcode; if the data cannot be sent, e.g. because it would need to + // be buffered but the buffer is full, the user agent must flag the + // WebSocket as full and then close the WebSocket connection. The + // data to be sent is the data stored in the section of the buffer + // described by the ArrayBuffer object that data references. Any + // invocation of this method with this kind of argument that does + // not throw an exception must increase the bufferedAmount attribute + // by the length of data’s buffer in bytes. + + const ab = Buffer.from(data, data.byteOffset, data.byteLength) + + const frame = new WebsocketFrameSend(ab) + const buffer = frame.createFrame(opcodes.BINARY) + + this.#bufferedAmount += ab.byteLength + socket.write(buffer, () => { + this.#bufferedAmount -= ab.byteLength + }) + } else if (isBlobLike(data)) { + // If the WebSocket connection is established, and the WebSocket + // closing handshake has not yet started, then the user agent must + // send a WebSocket Message comprised of data using a binary frame + // opcode; if the data cannot be sent, e.g. because it would need to + // be buffered but the buffer is full, the user agent must flag the + // WebSocket as full and then close the WebSocket connection. The data + // to be sent is the raw data represented by the Blob object. Any + // invocation of this method with a Blob argument that does not throw + // an exception must increase the bufferedAmount attribute by the size + // of the Blob object’s raw data, in bytes. + + const frame = new WebsocketFrameSend() + + data.arrayBuffer().then((ab) => { + const value = Buffer.from(ab) + frame.frameData = value + const buffer = frame.createFrame(opcodes.BINARY) + + this.#bufferedAmount += value.byteLength + socket.write(buffer, () => { + this.#bufferedAmount -= value.byteLength + }) + }) + } + } + + get readyState () { + webidl.brandCheck(this, WebSocket) + + // The readyState getter steps are to return this's ready state. + return this[kReadyState] + } + + get bufferedAmount () { + webidl.brandCheck(this, WebSocket) + + return this.#bufferedAmount + } + + get url () { + webidl.brandCheck(this, WebSocket) + + // The url getter steps are to return this's url, serialized. + return URLSerializer(this[kWebSocketURL]) + } + + get extensions () { + webidl.brandCheck(this, WebSocket) + + return this.#extensions + } + + get protocol () { + webidl.brandCheck(this, WebSocket) + + return this.#protocol + } + + get onopen () { + webidl.brandCheck(this, WebSocket) + + return this.#events.open + } + + set onopen (fn) { + webidl.brandCheck(this, WebSocket) + + if (this.#events.open) { + this.removeEventListener('open', this.#events.open) + } + + if (typeof fn === 'function') { + this.#events.open = fn + this.addEventListener('open', fn) + } else { + this.#events.open = null + } + } + + get onerror () { + webidl.brandCheck(this, WebSocket) + + return this.#events.error + } + + set onerror (fn) { + webidl.brandCheck(this, WebSocket) + + if (this.#events.error) { + this.removeEventListener('error', this.#events.error) + } + + if (typeof fn === 'function') { + this.#events.error = fn + this.addEventListener('error', fn) + } else { + this.#events.error = null + } + } + + get onclose () { + webidl.brandCheck(this, WebSocket) + + return this.#events.close + } + + set onclose (fn) { + webidl.brandCheck(this, WebSocket) + + if (this.#events.close) { + this.removeEventListener('close', this.#events.close) + } + + if (typeof fn === 'function') { + this.#events.close = fn + this.addEventListener('close', fn) + } else { + this.#events.close = null + } + } + + get onmessage () { + webidl.brandCheck(this, WebSocket) + + return this.#events.message + } + + set onmessage (fn) { + webidl.brandCheck(this, WebSocket) + + if (this.#events.message) { + this.removeEventListener('message', this.#events.message) + } + + if (typeof fn === 'function') { + this.#events.message = fn + this.addEventListener('message', fn) + } else { + this.#events.message = null + } + } + + get binaryType () { + webidl.brandCheck(this, WebSocket) + + return this[kBinaryType] + } + + set binaryType (type) { + webidl.brandCheck(this, WebSocket) + + if (type !== 'blob' && type !== 'arraybuffer') { + this[kBinaryType] = 'blob' + } else { + this[kBinaryType] = type + } + } + + /** + * @see https://websockets.spec.whatwg.org/#feedback-from-the-protocol + */ + #onConnectionEstablished (response) { + // processResponse is called when the "response’s header list has been received and initialized." + // once this happens, the connection is open + this[kResponse] = response + + const parser = new ByteParser(this) + parser.on('drain', function onParserDrain () { + this.ws[kResponse].socket.resume() + }) + + response.socket.ws = this + this[kByteParser] = parser + + // 1. Change the ready state to OPEN (1). + this[kReadyState] = states.OPEN + + // 2. Change the extensions attribute’s value to the extensions in use, if + // it is not the null value. + // https://datatracker.ietf.org/doc/html/rfc6455#section-9.1 + const extensions = response.headersList.get('sec-websocket-extensions') + + if (extensions !== null) { + this.#extensions = extensions + } + + // 3. Change the protocol attribute’s value to the subprotocol in use, if + // it is not the null value. + // https://datatracker.ietf.org/doc/html/rfc6455#section-1.9 + const protocol = response.headersList.get('sec-websocket-protocol') + + if (protocol !== null) { + this.#protocol = protocol + } + + // 4. Fire an event named open at the WebSocket object. + fireEvent('open', this) + } +} + +// https://websockets.spec.whatwg.org/#dom-websocket-connecting +WebSocket.CONNECTING = WebSocket.prototype.CONNECTING = states.CONNECTING +// https://websockets.spec.whatwg.org/#dom-websocket-open +WebSocket.OPEN = WebSocket.prototype.OPEN = states.OPEN +// https://websockets.spec.whatwg.org/#dom-websocket-closing +WebSocket.CLOSING = WebSocket.prototype.CLOSING = states.CLOSING +// https://websockets.spec.whatwg.org/#dom-websocket-closed +WebSocket.CLOSED = WebSocket.prototype.CLOSED = states.CLOSED + +Object.defineProperties(WebSocket.prototype, { + CONNECTING: staticPropertyDescriptors, + OPEN: staticPropertyDescriptors, + CLOSING: staticPropertyDescriptors, + CLOSED: staticPropertyDescriptors, + url: kEnumerableProperty, + readyState: kEnumerableProperty, + bufferedAmount: kEnumerableProperty, + onopen: kEnumerableProperty, + onerror: kEnumerableProperty, + onclose: kEnumerableProperty, + close: kEnumerableProperty, + onmessage: kEnumerableProperty, + binaryType: kEnumerableProperty, + send: kEnumerableProperty, + extensions: kEnumerableProperty, + protocol: kEnumerableProperty, + [Symbol.toStringTag]: { + value: 'WebSocket', + writable: false, + enumerable: false, + configurable: true + } +}) + +Object.defineProperties(WebSocket, { + CONNECTING: staticPropertyDescriptors, + OPEN: staticPropertyDescriptors, + CLOSING: staticPropertyDescriptors, + CLOSED: staticPropertyDescriptors +}) + +webidl.converters['sequence'] = webidl.sequenceConverter( + webidl.converters.DOMString +) + +webidl.converters['DOMString or sequence'] = function (V) { + if (webidl.util.Type(V) === 'Object' && Symbol.iterator in V) { + return webidl.converters['sequence'](V) + } + + return webidl.converters.DOMString(V) +} + +// This implements the propsal made in https://github.com/whatwg/websockets/issues/42 +webidl.converters.WebSocketInit = webidl.dictionaryConverter([ + { + key: 'protocols', + converter: webidl.converters['DOMString or sequence'], + get defaultValue () { + return [] + } + }, + { + key: 'dispatcher', + converter: (V) => V, + get defaultValue () { + return getGlobalDispatcher() + } + }, + { + key: 'headers', + converter: webidl.nullableConverter(webidl.converters.HeadersInit) + } +]) + +webidl.converters['DOMString or sequence or WebSocketInit'] = function (V) { + if (webidl.util.Type(V) === 'Object' && !(Symbol.iterator in V)) { + return webidl.converters.WebSocketInit(V) + } + + return { protocols: webidl.converters['DOMString or sequence'](V) } +} + +webidl.converters.WebSocketSendData = function (V) { + if (webidl.util.Type(V) === 'Object') { + if (isBlobLike(V)) { + return webidl.converters.Blob(V, { strict: false }) + } + + if (ArrayBuffer.isView(V) || types.isAnyArrayBuffer(V)) { + return webidl.converters.BufferSource(V) + } + } + + return webidl.converters.USVString(V) +} + +module.exports = { + WebSocket +} + + +/***/ }), + +/***/ 5840: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +Object.defineProperty(exports, "v1", ({ + enumerable: true, + get: function () { + return _v.default; + } +})); +Object.defineProperty(exports, "v3", ({ + enumerable: true, + get: function () { + return _v2.default; + } +})); +Object.defineProperty(exports, "v4", ({ + enumerable: true, + get: function () { + return _v3.default; + } +})); +Object.defineProperty(exports, "v5", ({ + enumerable: true, + get: function () { + return _v4.default; + } +})); +Object.defineProperty(exports, "NIL", ({ + enumerable: true, + get: function () { + return _nil.default; + } +})); +Object.defineProperty(exports, "version", ({ + enumerable: true, + get: function () { + return _version.default; + } +})); +Object.defineProperty(exports, "validate", ({ + enumerable: true, + get: function () { + return _validate.default; + } +})); +Object.defineProperty(exports, "stringify", ({ + enumerable: true, + get: function () { + return _stringify.default; + } +})); +Object.defineProperty(exports, "parse", ({ + enumerable: true, + get: function () { + return _parse.default; + } +})); + +var _v = _interopRequireDefault(__nccwpck_require__(8628)); + +var _v2 = _interopRequireDefault(__nccwpck_require__(6409)); + +var _v3 = _interopRequireDefault(__nccwpck_require__(5122)); + +var _v4 = _interopRequireDefault(__nccwpck_require__(9120)); + +var _nil = _interopRequireDefault(__nccwpck_require__(5332)); + +var _version = _interopRequireDefault(__nccwpck_require__(1595)); + +var _validate = _interopRequireDefault(__nccwpck_require__(6900)); + +var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); + +var _parse = _interopRequireDefault(__nccwpck_require__(2746)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ 4569: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function md5(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8'); + } + + return _crypto.default.createHash('md5').update(bytes).digest(); +} + +var _default = md5; +exports["default"] = _default; + +/***/ }), + +/***/ 5332: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _default = '00000000-0000-0000-0000-000000000000'; +exports["default"] = _default; + +/***/ }), + +/***/ 2746: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _validate = _interopRequireDefault(__nccwpck_require__(6900)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function parse(uuid) { + if (!(0, _validate.default)(uuid)) { + throw TypeError('Invalid UUID'); + } + + let v; + const arr = new Uint8Array(16); // Parse ########-....-....-....-............ + + arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; + arr[1] = v >>> 16 & 0xff; + arr[2] = v >>> 8 & 0xff; + arr[3] = v & 0xff; // Parse ........-####-....-....-............ + + arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; + arr[5] = v & 0xff; // Parse ........-....-####-....-............ + + arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; + arr[7] = v & 0xff; // Parse ........-....-....-####-............ + + arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; + arr[9] = v & 0xff; // Parse ........-....-....-....-############ + // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) + + arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; + arr[11] = v / 0x100000000 & 0xff; + arr[12] = v >>> 24 & 0xff; + arr[13] = v >>> 16 & 0xff; + arr[14] = v >>> 8 & 0xff; + arr[15] = v & 0xff; + return arr; +} + +var _default = parse; +exports["default"] = _default; + +/***/ }), + +/***/ 814: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; +exports["default"] = _default; + +/***/ }), + +/***/ 807: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = rng; + +var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate + +let poolPtr = rnds8Pool.length; + +function rng() { + if (poolPtr > rnds8Pool.length - 16) { + _crypto.default.randomFillSync(rnds8Pool); + + poolPtr = 0; + } + + return rnds8Pool.slice(poolPtr, poolPtr += 16); +} + +/***/ }), + +/***/ 5274: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function sha1(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8'); + } + + return _crypto.default.createHash('sha1').update(bytes).digest(); +} + +var _default = sha1; +exports["default"] = _default; + +/***/ }), + +/***/ 8950: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _validate = _interopRequireDefault(__nccwpck_require__(6900)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Convert array of 16 byte values to UUID string format of the form: + * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX + */ +const byteToHex = []; + +for (let i = 0; i < 256; ++i) { + byteToHex.push((i + 0x100).toString(16).substr(1)); +} + +function stringify(arr, offset = 0) { + // Note: Be careful editing this code! It's been tuned for performance + // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 + const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one + // of the following: + // - One or more input array values don't map to a hex octet (leading to + // "undefined" in the uuid) + // - Invalid input values for the RFC `version` or `variant` fields + + if (!(0, _validate.default)(uuid)) { + throw TypeError('Stringified UUID is invalid'); + } + + return uuid; +} + +var _default = stringify; +exports["default"] = _default; + +/***/ }), + +/***/ 8628: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _rng = _interopRequireDefault(__nccwpck_require__(807)); + +var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// **`v1()` - Generate time-based UUID** +// +// Inspired by https://github.com/LiosK/UUID.js +// and http://docs.python.org/library/uuid.html +let _nodeId; + +let _clockseq; // Previous uuid creation time + + +let _lastMSecs = 0; +let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details + +function v1(options, buf, offset) { + let i = buf && offset || 0; + const b = buf || new Array(16); + options = options || {}; + let node = options.node || _nodeId; + let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not + // specified. We do this lazily to minimize issues related to insufficient + // system entropy. See #189 + + if (node == null || clockseq == null) { + const seedBytes = options.random || (options.rng || _rng.default)(); + + if (node == null) { + // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) + node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; + } + + if (clockseq == null) { + // Per 4.2.2, randomize (14 bit) clockseq + clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; + } + } // UUID timestamps are 100 nano-second units since the Gregorian epoch, + // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so + // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' + // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. + + + let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock + // cycle to simulate higher resolution clock + + let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) + + const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression + + if (dt < 0 && options.clockseq === undefined) { + clockseq = clockseq + 1 & 0x3fff; + } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new + // time interval + + + if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { + nsecs = 0; + } // Per 4.2.1.2 Throw error if too many uuids are requested + + + if (nsecs >= 10000) { + throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); + } + + _lastMSecs = msecs; + _lastNSecs = nsecs; + _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + + msecs += 12219292800000; // `time_low` + + const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; + b[i++] = tl >>> 24 & 0xff; + b[i++] = tl >>> 16 & 0xff; + b[i++] = tl >>> 8 & 0xff; + b[i++] = tl & 0xff; // `time_mid` + + const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; + b[i++] = tmh >>> 8 & 0xff; + b[i++] = tmh & 0xff; // `time_high_and_version` + + b[i++] = tmh >>> 24 & 0xf | 0x10; // include version + + b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) + + b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` + + b[i++] = clockseq & 0xff; // `node` + + for (let n = 0; n < 6; ++n) { + b[i + n] = node[n]; + } + + return buf || (0, _stringify.default)(b); +} + +var _default = v1; +exports["default"] = _default; + +/***/ }), + +/***/ 6409: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _v = _interopRequireDefault(__nccwpck_require__(5998)); + +var _md = _interopRequireDefault(__nccwpck_require__(4569)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const v3 = (0, _v.default)('v3', 0x30, _md.default); +var _default = v3; +exports["default"] = _default; + +/***/ }), + +/***/ 5998: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = _default; +exports.URL = exports.DNS = void 0; + +var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); + +var _parse = _interopRequireDefault(__nccwpck_require__(2746)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function stringToBytes(str) { + str = unescape(encodeURIComponent(str)); // UTF8 escape + + const bytes = []; + + for (let i = 0; i < str.length; ++i) { + bytes.push(str.charCodeAt(i)); + } + + return bytes; +} + +const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; +exports.DNS = DNS; +const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; +exports.URL = URL; + +function _default(name, version, hashfunc) { + function generateUUID(value, namespace, buf, offset) { + if (typeof value === 'string') { + value = stringToBytes(value); + } + + if (typeof namespace === 'string') { + namespace = (0, _parse.default)(namespace); + } + + if (namespace.length !== 16) { + throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); + } // Compute hash of namespace and value, Per 4.3 + // Future: Use spread syntax when supported on all platforms, e.g. `bytes = + // hashfunc([...namespace, ... value])` + + + let bytes = new Uint8Array(16 + value.length); + bytes.set(namespace); + bytes.set(value, namespace.length); + bytes = hashfunc(bytes); + bytes[6] = bytes[6] & 0x0f | version; + bytes[8] = bytes[8] & 0x3f | 0x80; + + if (buf) { + offset = offset || 0; + + for (let i = 0; i < 16; ++i) { + buf[offset + i] = bytes[i]; + } + + return buf; + } + + return (0, _stringify.default)(bytes); + } // Function#name is not settable on some platforms (#270) + + + try { + generateUUID.name = name; // eslint-disable-next-line no-empty + } catch (err) {} // For CommonJS default export support + + + generateUUID.DNS = DNS; + generateUUID.URL = URL; + return generateUUID; +} + +/***/ }), + +/***/ 5122: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _rng = _interopRequireDefault(__nccwpck_require__(807)); + +var _stringify = _interopRequireDefault(__nccwpck_require__(8950)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function v4(options, buf, offset) { + options = options || {}; + + const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + + + rnds[6] = rnds[6] & 0x0f | 0x40; + rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided + + if (buf) { + offset = offset || 0; + + for (let i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i]; + } + + return buf; + } + + return (0, _stringify.default)(rnds); +} + +var _default = v4; +exports["default"] = _default; + +/***/ }), + +/***/ 9120: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _v = _interopRequireDefault(__nccwpck_require__(5998)); + +var _sha = _interopRequireDefault(__nccwpck_require__(5274)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const v5 = (0, _v.default)('v5', 0x50, _sha.default); +var _default = v5; +exports["default"] = _default; + +/***/ }), + +/***/ 6900: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _regex = _interopRequireDefault(__nccwpck_require__(814)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function validate(uuid) { + return typeof uuid === 'string' && _regex.default.test(uuid); +} + +var _default = validate; +exports["default"] = _default; + +/***/ }), + +/***/ 1595: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _validate = _interopRequireDefault(__nccwpck_require__(6900)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function version(uuid) { + if (!(0, _validate.default)(uuid)) { + throw TypeError('Invalid UUID'); + } + + return parseInt(uuid.substr(14, 1), 16); +} + +var _default = version; +exports["default"] = _default; + +/***/ }), + +/***/ 6144: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +var core_1 = __nccwpck_require__(2186); +var child_process_1 = __nccwpck_require__(2081); +var milliseconds_1 = __importDefault(__nccwpck_require__(2318)); +var inputs_1 = __nccwpck_require__(7063); +var util_1 = __nccwpck_require__(2629); +var OS = process.platform; +var OUTPUT_TOTAL_ATTEMPTS_KEY = 'total_attempts'; +var OUTPUT_EXIT_CODE_KEY = 'exit_code'; +var OUTPUT_EXIT_ERROR_KEY = 'exit_error'; +var exit; +var done; +function getExecutable(inputs) { + if (!inputs.shell) { + return OS === 'win32' ? 'powershell' : 'bash'; + } + var executable; + var shellName = inputs.shell.split(' ')[0]; + switch (shellName) { + case 'bash': + case 'python': + case 'pwsh': { + executable = inputs.shell; + break; + } + case 'sh': { + if (OS === 'win32') { + throw new Error("Shell ".concat(shellName, " not allowed on OS ").concat(OS)); + } + executable = inputs.shell; + break; + } + case 'cmd': + case 'powershell': { + if (OS !== 'win32') { + throw new Error("Shell ".concat(shellName, " not allowed on OS ").concat(OS)); + } + executable = shellName + '.exe' + inputs.shell.replace(shellName, ''); + break; + } + default: { + throw new Error("Shell ".concat(shellName, " not supported. See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsshell for supported shells")); + } + } + return executable; +} +function runRetryCmd(inputs) { + return __awaiter(this, void 0, void 0, function () { + var error_1; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + // if no retry script, just continue + if (!inputs.on_retry_command) { + return [2 /*return*/]; + } + _a.label = 1; + case 1: + _a.trys.push([1, 3, , 4]); + return [4 /*yield*/, (0, child_process_1.execSync)(inputs.on_retry_command, { stdio: 'inherit' })]; + case 2: + _a.sent(); + return [3 /*break*/, 4]; + case 3: + error_1 = _a.sent(); + (0, core_1.info)("WARNING: Retry command threw the error ".concat(error_1.message)); + return [3 /*break*/, 4]; + case 4: return [2 /*return*/]; + } + }); + }); +} +function runCmd(attempt, inputs) { + var _a, _b; + return __awaiter(this, void 0, void 0, function () { + var end_time, executable, timeout, child; + return __generator(this, function (_c) { + switch (_c.label) { + case 0: + end_time = Date.now() + (0, inputs_1.getTimeout)(inputs); + executable = getExecutable(inputs); + exit = 0; + done = false; + timeout = false; + (0, core_1.debug)("Running command ".concat(inputs.command, " on ").concat(OS, " using shell ").concat(executable)); + child = attempt > 1 && inputs.new_command_on_retry + ? (0, child_process_1.spawn)(inputs.new_command_on_retry, { shell: executable }) + : (0, child_process_1.spawn)(inputs.command, { shell: executable }); + (_a = child.stdout) === null || _a === void 0 ? void 0 : _a.on('data', function (data) { + process.stdout.write(data); + }); + (_b = child.stderr) === null || _b === void 0 ? void 0 : _b.on('data', function (data) { + process.stdout.write(data); + }); + child.on('exit', function (code, signal) { + (0, core_1.debug)("Code: ".concat(code)); + (0, core_1.debug)("Signal: ".concat(signal)); + // timeouts are killed manually + if (signal === 'SIGTERM') { + return; + } + // On Windows signal is null. + if (timeout) { + return; + } + if (code && code > 0) { + exit = code; + } + done = true; + }); + _c.label = 1; + case 1: return [4 /*yield*/, (0, util_1.wait)(milliseconds_1.default.seconds(inputs.polling_interval_seconds))]; + case 2: + _c.sent(); + _c.label = 3; + case 3: + if (Date.now() < end_time && !done) return [3 /*break*/, 1]; + _c.label = 4; + case 4: + if (!(!done && child.pid)) return [3 /*break*/, 6]; + timeout = true; + try { + child.kill(); + } + catch (e) { + //ignore if process can't be killed + } + return [4 /*yield*/, (0, util_1.retryWait)(milliseconds_1.default.seconds(inputs.retry_wait_seconds))]; + case 5: + _c.sent(); + throw new Error("Timeout of ".concat((0, inputs_1.getTimeout)(inputs), "ms hit")); + case 6: + if (!(exit > 0)) return [3 /*break*/, 8]; + return [4 /*yield*/, (0, util_1.retryWait)(milliseconds_1.default.seconds(inputs.retry_wait_seconds))]; + case 7: + _c.sent(); + throw new Error("Child_process exited with error code ".concat(exit)); + case 8: return [2 /*return*/]; + } + }); + }); +} +function runAction(inputs) { + return __awaiter(this, void 0, void 0, function () { + var attempt, error_2; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, (0, inputs_1.validateInputs)(inputs)]; + case 1: + _a.sent(); + attempt = 1; + _a.label = 2; + case 2: + if (!(attempt <= inputs.max_attempts)) return [3 /*break*/, 13]; + _a.label = 3; + case 3: + _a.trys.push([3, 5, , 12]); + // just keep overwriting attempts output + (0, core_1.setOutput)(OUTPUT_TOTAL_ATTEMPTS_KEY, attempt); + return [4 /*yield*/, runCmd(attempt, inputs)]; + case 4: + _a.sent(); + (0, core_1.info)("Command completed after ".concat(attempt, " attempt(s).")); + return [3 /*break*/, 13]; + case 5: + error_2 = _a.sent(); + if (!(attempt === inputs.max_attempts)) return [3 /*break*/, 6]; + throw new Error("Final attempt failed. ".concat(error_2.message)); + case 6: + if (!(!done && inputs.retry_on === 'error')) return [3 /*break*/, 7]; + // error: timeout + throw error_2; + case 7: + if (!(inputs.retry_on_exit_code && inputs.retry_on_exit_code !== exit)) return [3 /*break*/, 8]; + throw error_2; + case 8: + if (!(exit > 0 && inputs.retry_on === 'timeout')) return [3 /*break*/, 9]; + // error: error + throw error_2; + case 9: return [4 /*yield*/, runRetryCmd(inputs)]; + case 10: + _a.sent(); + if (inputs.warning_on_retry) { + (0, core_1.warning)("Attempt ".concat(attempt, " failed. Reason: ").concat(error_2.message)); + } + else { + (0, core_1.info)("Attempt ".concat(attempt, " failed. Reason: ").concat(error_2.message)); + } + _a.label = 11; + case 11: return [3 /*break*/, 12]; + case 12: + attempt++; + return [3 /*break*/, 2]; + case 13: return [2 /*return*/]; + } + }); + }); +} +var inputs = (0, inputs_1.getInputs)(); +runAction(inputs) + .then(function () { + (0, core_1.setOutput)(OUTPUT_EXIT_CODE_KEY, 0); + process.exit(0); // success +}) + .catch(function (err) { + // exact error code if available, otherwise just 1 + var exitCode = exit > 0 ? exit : 1; + if (inputs.continue_on_error) { + (0, core_1.warning)(err.message); + } + else { + (0, core_1.error)(err.message); + } + // these can be helpful to know if continue-on-error is true + (0, core_1.setOutput)(OUTPUT_EXIT_ERROR_KEY, err.message); + (0, core_1.setOutput)(OUTPUT_EXIT_CODE_KEY, exitCode); + // if continue_on_error, exit with exact error code else exit gracefully + // mimics native continue-on-error that is not supported in composite actions + process.exit(inputs.continue_on_error ? 0 : exitCode); +}); + + +/***/ }), + +/***/ 7063: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.getInputs = exports.getTimeout = exports.validateInputs = exports.getInputBoolean = exports.getInputNumber = void 0; +var core_1 = __nccwpck_require__(2186); +var milliseconds_1 = __importDefault(__nccwpck_require__(2318)); +function getInputNumber(id, required) { + var input = (0, core_1.getInput)(id, { required: required }); + var num = Number.parseInt(input); + // empty is ok + if (!input && !required) { + return; + } + if (!Number.isInteger(num)) { + throw "Input ".concat(id, " only accepts numbers. Received ").concat(input); + } + return num; +} +exports.getInputNumber = getInputNumber; +function getInputBoolean(id) { + var input = (0, core_1.getInput)(id); + if (!['true', 'false'].includes(input.toLowerCase())) { + throw "Input ".concat(id, " only accepts boolean values. Received ").concat(input); + } + return input.toLowerCase() === 'true'; +} +exports.getInputBoolean = getInputBoolean; +function validateInputs(inputs) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + if ((!inputs.timeout_minutes && !inputs.timeout_seconds) || + (inputs.timeout_minutes && inputs.timeout_seconds)) { + throw new Error('Must specify either timeout_minutes or timeout_seconds inputs'); + } + return [2 /*return*/]; + }); + }); +} +exports.validateInputs = validateInputs; +function getTimeout(inputs) { + if (inputs.timeout_minutes) { + return milliseconds_1.default.minutes(inputs.timeout_minutes); + } + else if (inputs.timeout_seconds) { + return milliseconds_1.default.seconds(inputs.timeout_seconds); + } + throw new Error('Must specify either timeout_minutes or timeout_seconds inputs'); +} +exports.getTimeout = getTimeout; +function getInputs() { + var timeout_minutes = getInputNumber('timeout_minutes', false); + var timeout_seconds = getInputNumber('timeout_seconds', false); + var max_attempts = getInputNumber('max_attempts', true) || 3; + var command = (0, core_1.getInput)('command', { required: true }); + var retry_wait_seconds = getInputNumber('retry_wait_seconds', false) || 10; + var shell = (0, core_1.getInput)('shell'); + var polling_interval_seconds = getInputNumber('polling_interval_seconds', false) || 1; + var retry_on = (0, core_1.getInput)('retry_on') || 'any'; + var warning_on_retry = (0, core_1.getInput)('warning_on_retry').toLowerCase() === 'true'; + var on_retry_command = (0, core_1.getInput)('on_retry_command'); + var continue_on_error = getInputBoolean('continue_on_error'); + var new_command_on_retry = (0, core_1.getInput)('new_command_on_retry'); + var retry_on_exit_code = getInputNumber('retry_on_exit_code', false); + return { + timeout_minutes: timeout_minutes, + timeout_seconds: timeout_seconds, + max_attempts: max_attempts, + command: command, + retry_wait_seconds: retry_wait_seconds, + shell: shell, + polling_interval_seconds: polling_interval_seconds, + retry_on: retry_on, + warning_on_retry: warning_on_retry, + on_retry_command: on_retry_command, + continue_on_error: continue_on_error, + new_command_on_retry: new_command_on_retry, + retry_on_exit_code: retry_on_exit_code, + }; +} +exports.getInputs = getInputs; + + +/***/ }), + +/***/ 2629: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (g && (g = 0, op[0] && (_ = 0)), _) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.retryWait = exports.wait = void 0; +var core_1 = __nccwpck_require__(2186); +function wait(ms) { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2 /*return*/, new Promise(function (r) { return setTimeout(r, ms); })]; + }); + }); +} +exports.wait = wait; +function retryWait(retryWaitSeconds) { + return __awaiter(this, void 0, void 0, function () { + var waitStart; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + waitStart = Date.now(); + return [4 /*yield*/, wait(retryWaitSeconds)]; + case 1: + _a.sent(); + (0, core_1.debug)("Waited ".concat(Date.now() - waitStart, "ms")); + (0, core_1.debug)("Configured wait: ".concat(retryWaitSeconds, "ms")); + return [2 /*return*/]; + } + }); + }); +} +exports.retryWait = retryWait; + + +/***/ }), + +/***/ 9491: +/***/ ((module) => { + +"use strict"; +module.exports = require("assert"); + +/***/ }), + +/***/ 852: +/***/ ((module) => { + +"use strict"; +module.exports = require("async_hooks"); + +/***/ }), + +/***/ 4300: +/***/ ((module) => { + +"use strict"; +module.exports = require("buffer"); + +/***/ }), + +/***/ 2081: +/***/ ((module) => { + +"use strict"; +module.exports = require("child_process"); + +/***/ }), + +/***/ 6206: +/***/ ((module) => { + +"use strict"; +module.exports = require("console"); + +/***/ }), + +/***/ 6113: +/***/ ((module) => { + +"use strict"; +module.exports = require("crypto"); + +/***/ }), + +/***/ 7643: +/***/ ((module) => { + +"use strict"; +module.exports = require("diagnostics_channel"); + +/***/ }), + +/***/ 2361: +/***/ ((module) => { + +"use strict"; +module.exports = require("events"); + +/***/ }), + +/***/ 7147: +/***/ ((module) => { + +"use strict"; +module.exports = require("fs"); + +/***/ }), + +/***/ 3685: +/***/ ((module) => { + +"use strict"; +module.exports = require("http"); + +/***/ }), + +/***/ 5158: +/***/ ((module) => { + +"use strict"; +module.exports = require("http2"); + +/***/ }), + +/***/ 5687: +/***/ ((module) => { + +"use strict"; +module.exports = require("https"); + +/***/ }), + +/***/ 1808: +/***/ ((module) => { + +"use strict"; +module.exports = require("net"); + +/***/ }), + +/***/ 5673: +/***/ ((module) => { + +"use strict"; +module.exports = require("node:events"); + +/***/ }), + +/***/ 4492: +/***/ ((module) => { + +"use strict"; +module.exports = require("node:stream"); + +/***/ }), + +/***/ 7261: +/***/ ((module) => { + +"use strict"; +module.exports = require("node:util"); + +/***/ }), + +/***/ 2037: +/***/ ((module) => { + +"use strict"; +module.exports = require("os"); + +/***/ }), + +/***/ 1017: +/***/ ((module) => { + +"use strict"; +module.exports = require("path"); + +/***/ }), + +/***/ 4074: +/***/ ((module) => { + +"use strict"; +module.exports = require("perf_hooks"); + +/***/ }), + +/***/ 3477: +/***/ ((module) => { + +"use strict"; +module.exports = require("querystring"); + +/***/ }), + +/***/ 2781: +/***/ ((module) => { + +"use strict"; +module.exports = require("stream"); + +/***/ }), + +/***/ 5356: +/***/ ((module) => { + +"use strict"; +module.exports = require("stream/web"); + +/***/ }), + +/***/ 1576: +/***/ ((module) => { + +"use strict"; +module.exports = require("string_decoder"); + +/***/ }), + +/***/ 4404: +/***/ ((module) => { + +"use strict"; +module.exports = require("tls"); + +/***/ }), + +/***/ 7310: +/***/ ((module) => { + +"use strict"; +module.exports = require("url"); + +/***/ }), + +/***/ 3837: +/***/ ((module) => { + +"use strict"; +module.exports = require("util"); + +/***/ }), + +/***/ 9830: +/***/ ((module) => { + +"use strict"; +module.exports = require("util/types"); + +/***/ }), + +/***/ 1267: +/***/ ((module) => { + +"use strict"; +module.exports = require("worker_threads"); + +/***/ }), + +/***/ 9796: +/***/ ((module) => { + +"use strict"; +module.exports = require("zlib"); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __nccwpck_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ var threw = true; +/******/ try { +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __nccwpck_require__); +/******/ threw = false; +/******/ } finally { +/******/ if(threw) delete __webpack_module_cache__[moduleId]; +/******/ } +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat */ +/******/ +/******/ if (typeof __nccwpck_require__ !== 'undefined') __nccwpck_require__.ab = __dirname + "/"; +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module is referenced by other modules so it can't be inlined +/******/ var __webpack_exports__ = __nccwpck_require__(6144); +/******/ module.exports = __webpack_exports__; +/******/ +/******/ })() +; \ No newline at end of file diff --git a/.github/actions/retry-action/package.json b/.github/actions/retry-action/package.json new file mode 100644 index 000000000..f1c309fba --- /dev/null +++ b/.github/actions/retry-action/package.json @@ -0,0 +1,67 @@ +{ + "name": "retry", + "version": "0.0.0-managed-by-semantic-release", + "description": "Retries a GitHub Action step on failure or timeout.", + "scripts": { + "lint:base": "eslint --config ./.config/.eslintrc.js ", + "lint": "npm run lint:base -- .", + "local": "npm run prepare && node -r dotenv/config ./dist/index.js", + "prepare": "ncc build src/index.ts", + "style:base": "prettier --config ./.config/.prettierrc.yml --ignore-path ./.config/.prettierignore --write ", + "style": "npm run style:base -- .", + "test": "jest -c ./.config/jest.config.js" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/nick-invision/retry.git" + }, + "keywords": [], + "author": "Nick Fields", + "license": "ISC", + "bugs": { + "url": "https://github.com/nick-invision/retry/issues" + }, + "homepage": "https://github.com/nick-invision/retry#readme", + "dependencies": { + "@actions/core": "^1.10.0", + "milliseconds": "^1.0.3", + "tree-kill": "^1.2.2" + }, + "devDependencies": { + "@commitlint/cli": "^16.2.3", + "@commitlint/config-conventional": "^16.2.1", + "@semantic-release/changelog": "^6.0.1", + "@semantic-release/git": "^10.0.1", + "@types/babel-generator": "^6.25.7", + "@types/jest": "^28.1.6", + "@types/milliseconds": "0.0.30", + "@types/node": "^16.11.7", + "@typescript-eslint/eslint-plugin": "^5.32.0", + "@typescript-eslint/parser": "^5.32.0", + "@vercel/ncc": "^0.38.1", + "dotenv": "8.2.0", + "eslint": "^8.21.0", + "eslint-config-prettier": "^8.5.0", + "husky": "^8.0.1", + "jest": "^28.1.3", + "lint-staged": "^13.0.3", + "prettier": "^2.7.1", + "semantic-release": "19.0.3", + "ts-jest": "^28.0.7", + "ts-node": "9.0.0", + "typescript": "^4.7.4", + "yaml-lint": "^1.7.0" + }, + "lint-staged": { + "**/*.ts": [ + "npm run style:base --", + "npm run lint:base --" + ], + "**/*.{md,yaml,yml}": [ + "npm run style:base --" + ], + "**/*.{yaml,yml}": [ + "npx yamllint " + ] + } +} diff --git a/.github/actions/retry-action/src/index.ts b/.github/actions/retry-action/src/index.ts new file mode 100644 index 000000000..a40e5bf97 --- /dev/null +++ b/.github/actions/retry-action/src/index.ts @@ -0,0 +1,191 @@ +import { error, warning, info, debug, setOutput } from '@actions/core'; +import { execSync, spawn } from 'child_process'; +import ms from 'milliseconds'; + +import { getInputs, getTimeout, Inputs, validateInputs } from './inputs'; +import { retryWait, wait } from './util'; + +const OS = process.platform; +const OUTPUT_TOTAL_ATTEMPTS_KEY = 'total_attempts'; +const OUTPUT_EXIT_CODE_KEY = 'exit_code'; +const OUTPUT_EXIT_ERROR_KEY = 'exit_error'; + +let exit: number; +let done: boolean; + +function getExecutable(inputs: Inputs): string { + if (!inputs.shell) { + return OS === 'win32' ? 'powershell' : 'bash'; + } + + let executable: string; + const shellName = inputs.shell.split(' ')[0]; + + switch (shellName) { + case 'bash': + case 'python': + case 'pwsh': { + executable = inputs.shell; + break; + } + case 'sh': { + if (OS === 'win32') { + throw new Error(`Shell ${shellName} not allowed on OS ${OS}`); + } + executable = inputs.shell; + break; + } + case 'cmd': + case 'powershell': { + if (OS !== 'win32') { + throw new Error(`Shell ${shellName} not allowed on OS ${OS}`); + } + executable = shellName + '.exe' + inputs.shell.replace(shellName, ''); + break; + } + default: { + throw new Error( + `Shell ${shellName} not supported. See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsshell for supported shells` + ); + } + } + return executable; +} + +async function runRetryCmd(inputs: Inputs): Promise { + // if no retry script, just continue + if (!inputs.on_retry_command) { + return; + } + + try { + await execSync(inputs.on_retry_command, { stdio: 'inherit' }); + // eslint-disable-next-line + } catch (error: any) { + info(`WARNING: Retry command threw the error ${error.message}`); + } +} + +async function runCmd(attempt: number, inputs: Inputs) { + const end_time = Date.now() + getTimeout(inputs); + const executable = getExecutable(inputs); + + exit = 0; + done = false; + let timeout = false; + + debug(`Running command ${inputs.command} on ${OS} using shell ${executable}`); + const child = + attempt > 1 && inputs.new_command_on_retry + ? spawn(inputs.new_command_on_retry, { shell: executable }) + : spawn(inputs.command, { shell: executable }); + + child.stdout?.on('data', (data) => { + process.stdout.write(data); + }); + child.stderr?.on('data', (data) => { + process.stdout.write(data); + }); + + child.on('exit', (code, signal) => { + debug(`Code: ${code}`); + debug(`Signal: ${signal}`); + + // timeouts are killed manually + if (signal === 'SIGTERM') { + return; + } + + // On Windows signal is null. + if (timeout) { + return; + } + + if (code && code > 0) { + exit = code; + } + + done = true; + }); + + do { + await wait(ms.seconds(inputs.polling_interval_seconds)); + } while (Date.now() < end_time && !done); + + if (!done && child.pid) { + timeout = true; + try { + child.kill(); + } + catch(e) { + //ignore if process can't be killed + } + await retryWait(ms.seconds(inputs.retry_wait_seconds)); + throw new Error(`Timeout of ${getTimeout(inputs)}ms hit`); + } else if (exit > 0) { + await retryWait(ms.seconds(inputs.retry_wait_seconds)); + throw new Error(`Child_process exited with error code ${exit}`); + } else { + return; + } +} + +async function runAction(inputs: Inputs) { + await validateInputs(inputs); + + for (let attempt = 1; attempt <= inputs.max_attempts; attempt++) { + try { + // just keep overwriting attempts output + setOutput(OUTPUT_TOTAL_ATTEMPTS_KEY, attempt); + await runCmd(attempt, inputs); + info(`Command completed after ${attempt} attempt(s).`); + break; + // eslint-disable-next-line + } catch (error: any) { + if (attempt === inputs.max_attempts) { + throw new Error(`Final attempt failed. ${error.message}`); + } else if (!done && inputs.retry_on === 'error') { + // error: timeout + throw error; + } else if (inputs.retry_on_exit_code && inputs.retry_on_exit_code !== exit) { + throw error; + } else if (exit > 0 && inputs.retry_on === 'timeout') { + // error: error + throw error; + } else { + await runRetryCmd(inputs); + if (inputs.warning_on_retry) { + warning(`Attempt ${attempt} failed. Reason: ${error.message}`); + } else { + info(`Attempt ${attempt} failed. Reason: ${error.message}`); + } + } + } + } +} + +const inputs = getInputs(); + +runAction(inputs) + .then(() => { + setOutput(OUTPUT_EXIT_CODE_KEY, 0); + process.exit(0); // success + }) + .catch((err) => { + // exact error code if available, otherwise just 1 + const exitCode = exit > 0 ? exit : 1; + + if (inputs.continue_on_error) { + warning(err.message); + } else { + error(err.message); + } + + // these can be helpful to know if continue-on-error is true + setOutput(OUTPUT_EXIT_ERROR_KEY, err.message); + setOutput(OUTPUT_EXIT_CODE_KEY, exitCode); + + // if continue_on_error, exit with exact error code else exit gracefully + // mimics native continue-on-error that is not supported in composite actions + process.exit(inputs.continue_on_error ? 0 : exitCode); + }); \ No newline at end of file diff --git a/.github/actions/retry-action/src/inputs.ts b/.github/actions/retry-action/src/inputs.ts new file mode 100644 index 000000000..b9614e200 --- /dev/null +++ b/.github/actions/retry-action/src/inputs.ts @@ -0,0 +1,94 @@ +import { getInput } from '@actions/core'; +import ms from 'milliseconds'; + +export interface Inputs { + timeout_minutes: number | undefined; + timeout_seconds: number | undefined; + max_attempts: number; + command: string; + retry_wait_seconds: number; + shell: string | undefined; + polling_interval_seconds: number; + retry_on: string | undefined; + warning_on_retry: boolean; + on_retry_command: string | undefined; + continue_on_error: boolean; + new_command_on_retry: string | undefined; + retry_on_exit_code: number | undefined; +} + +export function getInputNumber(id: string, required: boolean): number | undefined { + const input = getInput(id, { required }); + const num = Number.parseInt(input); + + // empty is ok + if (!input && !required) { + return; + } + + if (!Number.isInteger(num)) { + throw `Input ${id} only accepts numbers. Received ${input}`; + } + + return num; +} + +export function getInputBoolean(id: string): boolean { + const input = getInput(id); + + if (!['true', 'false'].includes(input.toLowerCase())) { + throw `Input ${id} only accepts boolean values. Received ${input}`; + } + return input.toLowerCase() === 'true'; +} + +export async function validateInputs(inputs: Inputs) { + if ( + (!inputs.timeout_minutes && !inputs.timeout_seconds) || + (inputs.timeout_minutes && inputs.timeout_seconds) + ) { + throw new Error('Must specify either timeout_minutes or timeout_seconds inputs'); + } +} + +export function getTimeout(inputs: Inputs): number { + if (inputs.timeout_minutes) { + return ms.minutes(inputs.timeout_minutes); + } else if (inputs.timeout_seconds) { + return ms.seconds(inputs.timeout_seconds); + } + + throw new Error('Must specify either timeout_minutes or timeout_seconds inputs'); +} + +export function getInputs(): Inputs { + const timeout_minutes = getInputNumber('timeout_minutes', false); + const timeout_seconds = getInputNumber('timeout_seconds', false); + const max_attempts = getInputNumber('max_attempts', true) || 3; + const command = getInput('command', { required: true }); + const retry_wait_seconds = getInputNumber('retry_wait_seconds', false) || 10; + const shell = getInput('shell'); + const polling_interval_seconds = getInputNumber('polling_interval_seconds', false) || 1; + const retry_on = getInput('retry_on') || 'any'; + const warning_on_retry = getInput('warning_on_retry').toLowerCase() === 'true'; + const on_retry_command = getInput('on_retry_command'); + const continue_on_error = getInputBoolean('continue_on_error'); + const new_command_on_retry = getInput('new_command_on_retry'); + const retry_on_exit_code = getInputNumber('retry_on_exit_code', false); + + return { + timeout_minutes, + timeout_seconds, + max_attempts, + command, + retry_wait_seconds, + shell, + polling_interval_seconds, + retry_on, + warning_on_retry, + on_retry_command, + continue_on_error, + new_command_on_retry, + retry_on_exit_code, + }; +} \ No newline at end of file diff --git a/.github/actions/retry-action/src/util.ts b/.github/actions/retry-action/src/util.ts new file mode 100644 index 000000000..8928c89b1 --- /dev/null +++ b/.github/actions/retry-action/src/util.ts @@ -0,0 +1,12 @@ +import { debug } from '@actions/core'; + +export async function wait(ms: number) { + return new Promise((r) => setTimeout(r, ms)); +} + +export async function retryWait(retryWaitSeconds: number) { + const waitStart = Date.now(); + await wait(retryWaitSeconds); + debug(`Waited ${Date.now() - waitStart}ms`); + debug(`Configured wait: ${retryWaitSeconds}ms`); +} \ No newline at end of file diff --git a/.github/actions/retry-action/tsconfig.json b/.github/actions/retry-action/tsconfig.json new file mode 100644 index 000000000..8b378b3fb --- /dev/null +++ b/.github/actions/retry-action/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + /* Basic Options */ + "target": "es5" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */, + "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */, + "noEmit": true /* Do not emit outputs. */, + + /* Strict Type-Checking Options */ + "strict": true /* Enable all strict type-checking options. */, + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, + + /* Advanced Options */ + "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ + }, + "exclude": ["**/__tests__", "**/__mocks__"] + } \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 140433953..bd7fa9e67 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,5 +1,11 @@ -name: poco-ci -on: [push, pull_request] +# To enable retrying a job on failure or a specific timeout, instead of the run step, use uses: nick-fields/retry@v2.9.0(see the linux-gcc-make-tsan jsob) +# To retry only on timeout set retry_on: timeout +# To retry only on error set retry_on: error +# For more information on the retry action see https://github.com/nick-fields/retry +on: + pull_request: + types: [opened] + push: concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true @@ -7,24 +13,19 @@ concurrency: jobs: linux-gcc-make: runs-on: ubuntu-22.04 - services: - mysql: - image: mysql:latest - env: - MYSQL_ALLOW_EMPTY_PASSWORD: yes - MYSQL_USER: pocotest - MYSQL_PASSWORD: pocotest - MYSQL_DATABASE: pocotest - ports: - - 3306:3306 steps: - uses: actions/checkout@v3 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev redis-server libmysqlclient-dev - run: ./configure --everything --omit=PDF && make all -s -j4 && sudo make install - - run: >- - sudo -s - EXCLUDE_TESTS="Data/ODBC Data/PostgreSQL MongoDB" - ./ci/runtests.sh + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + sudo -s + EXCLUDE_TESTS="Data/ODBC Data/MySQL Data/PostgreSQL MongoDB" + ./ci/runtests.sh linux-gcc-make-cxx20: runs-on: ubuntu-22.04 @@ -32,31 +33,31 @@ jobs: - uses: actions/checkout@v3 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev redis-server libmysqlclient-dev - run: ./configure --config=Linux-c++20 --everything --omit=PDF && make all -s -j4 && sudo make install - - run: >- - sudo -s - EXCLUDE_TESTS="Data/ODBC Data/MySQL Data/PostgreSQL MongoDB" - ./ci/runtests.sh + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + sudo -s + EXCLUDE_TESTS="Data/ODBC Data/MySQL Data/PostgreSQL MongoDB" + ./ci/runtests.sh linux-gcc-make-asan: runs-on: ubuntu-22.04 - services: - mysql: - image: mysql:latest - env: - MYSQL_ALLOW_EMPTY_PASSWORD: yes - MYSQL_USER: pocotest - MYSQL_PASSWORD: pocotest - MYSQL_DATABASE: pocotest - ports: - - 3306:3306 steps: - uses: actions/checkout@v3 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server - run: ./configure --everything --no-samples --omit=PDF && make all -s -j4 SANITIZEFLAGS=-fsanitize=address && sudo make install - - run: >- - sudo -s - EXCLUDE_TESTS="Data/ODBC Data/PostgreSQL MongoDB" - ./ci/runtests.sh + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + sudo -s + EXCLUDE_TESTS="Data/ODBC Data/PostgreSQL Data/MySQL MongoDB" + ./ci/runtests.sh linux-gcc-make-asan-no-soo: runs-on: ubuntu-22.04 @@ -64,10 +65,15 @@ jobs: - uses: actions/checkout@v3 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server - run: ./configure --everything --no-samples --omit=PDF --no-soo && make all -s -j4 SANITIZEFLAGS=-fsanitize=address && sudo make install - - run: >- - sudo -s - EXCLUDE_TESTS="Data/MySQL Data/ODBC Data/PostgreSQL MongoDB" - ./ci/runtests.sh + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + sudo -s + EXCLUDE_TESTS="Data/MySQL Data/ODBC Data/PostgreSQL MongoDB" + ./ci/runtests.sh linux-gcc-make-ubsan: runs-on: ubuntu-22.04 @@ -75,10 +81,15 @@ jobs: - uses: actions/checkout@v3 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server - run: ./configure --everything --no-samples --omit=PDF && make all -s -j4 SANITIZEFLAGS=-fsanitize=undefined && sudo make install - - run: >- - sudo -s - EXCLUDE_TESTS="Data/MySQL Data/ODBC Data/PostgreSQL MongoDB" - ./ci/runtests.sh + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + sudo -s + EXCLUDE_TESTS="Data/MySQL Data/ODBC Data/PostgreSQL MongoDB" + ./ci/runtests.sh linux-gcc-make-tsan: runs-on: ubuntu-22.04 @@ -86,9 +97,14 @@ jobs: - uses: actions/checkout@v3 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server - run: ./configure --everything --no-samples --omit=CppParser,Encodings,Data/MySQL,Data/ODBC,Data/PostgreSQL,MongoDB,PageCompiler,PDF,PocoDoc,ProGen,Redis,SevenZip && make all -s -j4 SANITIZEFLAGS=-fsanitize=thread && sudo make install - - run: >- - sudo -s - ./ci/runtests.sh TSAN + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + sudo -s + ./ci/runtests.sh TSAN linux-gcc-cmake: runs-on: ubuntu-22.04 @@ -96,11 +112,16 @@ jobs: - uses: actions/checkout@v3 - run: sudo apt -y update && sudo apt -y install cmake ninja-build libssl-dev unixodbc-dev libmysqlclient-dev redis-server - run: cmake -H. -Bcmake-build -GNinja -DENABLE_PDF=OFF -DENABLE_TESTS=ON && cmake --build cmake-build --target all - - run: >- - cd cmake-build && - sudo -s - PWD=`pwd` - ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)" + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + cd cmake-build && + sudo -s + PWD=`pwd` + ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)" linux-gcc-make-cross-armhf: runs-on: ubuntu-22.04 @@ -109,9 +130,14 @@ jobs: - run: >- sudo apt-get -y update && sudo apt-get -y install crossbuild-essential-armhf - - run: >- - ./configure --config=ARM-Linux --everything --omit=PDF,Crypto,NetSSL_OpenSSL,JWT,Data/MySQL,Data/ODBC,Data/PostgreSQL,PageCompiler,PageCompiler/File2Page && - make all -s -j4 ARCHFLAGS="-mcpu=cortex-a8 -mfloat-abi=hard -mfpu=neon" TOOL=arm-linux-gnueabihf + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + ./configure --config=ARM-Linux --everything --omit=PDF,Crypto,NetSSL_OpenSSL,JWT,Data/MySQL,Data/ODBC,Data/PostgreSQL,PageCompiler,PageCompiler/File2Page && + make all -s -j4 ARCHFLAGS="-mcpu=cortex-a8 -mfloat-abi=hard -mfpu=neon" TOOL=arm-linux-gnueabihf macos-clang-make: runs-on: macos-12 @@ -123,18 +149,23 @@ jobs: --odbc-include=/usr/local/opt/unixodbc/include --odbc-lib=/usr/local/opt/unixodbc/lib --mysql-include=/usr/local/opt/mysql-client/include --mysql-lib=/usr/local/opt/mysql-client/lib && make all -s -j4 - - run: >- - sudo -s - CPPUNIT_IGNORE=" - CppUnit::TestCaller.testTrySleep, - CppUnit::TestCaller.testTimestamp, - CppUnit::TestCaller.testExpireN, - CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testExpireN, - CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testOldBSD" - EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" - ./ci/runtests.sh + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + sudo -s + CPPUNIT_IGNORE=" + CppUnit::TestCaller.testTrySleep, + CppUnit::TestCaller.testTimestamp, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testOldBSD" + EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" + ./ci/runtests.sh macos-clang-cmake: runs-on: macos-12 @@ -142,19 +173,24 @@ jobs: - uses: actions/checkout@v3 - run: brew install openssl@1.1 mysql-client unixodbc libpq - run: cmake -H. -Bcmake-build -DENABLE_PDF=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@1.1 -DMYSQL_ROOT_DIR=/usr/local/opt/mysql-client && cmake --build cmake-build --target all - - run: >- - cd cmake-build && - sudo -s - CPPUNIT_IGNORE=" - CppUnit::TestCaller.testTrySleep, - CppUnit::TestCaller.testTimestamp, - CppUnit::TestCaller.testExpireN, - CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testExpireN, - CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testPollClosedServer" - PWD=`pwd` - ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + cd cmake-build && + sudo -s + CPPUNIT_IGNORE=" + CppUnit::TestCaller.testTrySleep, + CppUnit::TestCaller.testTimestamp, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testPollClosedServer" + PWD=`pwd` + ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" macos-clang-cmake-openssl3: runs-on: macos-12 @@ -162,54 +198,69 @@ jobs: - uses: actions/checkout@v3 - run: brew install openssl@3 mysql-client unixodbc libpq - run: cmake -H. -Bcmake-build -DENABLE_PDF=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@3 -DMYSQL_ROOT_DIR=/usr/local/opt/mysql-client && cmake --build cmake-build --target all - - run: >- - cd cmake-build && - sudo -s - CPPUNIT_IGNORE=" - CppUnit::TestCaller.testTrySleep, - CppUnit::TestCaller.testTimestamp, - CppUnit::TestCaller.testExpireN, - CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testExpireN, - CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testPollClosedServer" - PWD=`pwd` - ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + cd cmake-build && + sudo -s + CPPUNIT_IGNORE=" + CppUnit::TestCaller.testTrySleep, + CppUnit::TestCaller.testTimestamp, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testPollClosedServer" + PWD=`pwd` + ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" - windows-2019-msvc-cmake: - runs-on: windows-2019 - env: - CPPUNIT_IGNORE: >- - class CppUnit::TestCaller.testFind, - class CppUnit::TestCaller.testSendToReceiveFrom, - class CppUnit::TestCaller.testPing, - class CppUnit::TestCaller.testBigPing, - class CppUnit::TestCaller.testMTU, - class CppUnit::TestCaller.testProxy, - class CppUnit::TestCaller.testProxy, - class CppUnit::TestCaller.testPollClosedServer - steps: - - uses: actions/checkout@v3 - - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON - - run: cmake --build cmake-build --config Release - - run: >- - cd cmake-build; - ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Release +# windows-2019-msvc-cmake: +# runs-on: windows-2019 +# env: +# CPPUNIT_IGNORE: >- +# class CppUnit::TestCaller.testFind, +# class CppUnit::TestCaller.testSendToReceiveFrom, +# class CppUnit::TestCaller.testPing, +# class CppUnit::TestCaller.testBigPing, +# class CppUnit::TestCaller.testMTU, +# class CppUnit::TestCaller.testProxy, +# class CppUnit::TestCaller.testProxy, +# class CppUnit::TestCaller.testPollClosedServer +# steps: +# - uses: actions/checkout@v3 +# - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON +# - run: cmake --build cmake-build --config Release +# - uses: ./.github/actions/retry-action +# with: +# timeout_minutes: 90 +# max_attempts: 3 +# retry_on: any +# command: >- +# cd cmake-build; +# ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Release - windows-2019-msvc-buildwin-x64: - runs-on: windows-2019 - env: - CPPUNIT_IGNORE: >- - class CppUnit::TestCaller.testFind, - class CppUnit::TestCaller.testSendToReceiveFrom, - class CppUnit::TestCaller.testPing, - class CppUnit::TestCaller.testBigPing, - class CppUnit::TestCaller.testMTU, - class CppUnit::TestCaller.testProxy, - class CppUnit::TestCaller.testProxy - steps: - - uses: actions/checkout@v3 - - run: .\buildwin.ps1 -poco_base . -vs 160 -action build -linkmode all -config release -platform x64 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" +# windows-2019-msvc-buildwin-x64: +# runs-on: windows-2019 +# env: +# CPPUNIT_IGNORE: >- +# class CppUnit::TestCaller.testFind, +# class CppUnit::TestCaller.testSendToReceiveFrom, +# class CppUnit::TestCaller.testPing, +# class CppUnit::TestCaller.testBigPing, +# class CppUnit::TestCaller.testMTU, +# class CppUnit::TestCaller.testProxy, +# class CppUnit::TestCaller.testProxy +# steps: +# - uses: actions/checkout@v3 +# - uses: ./.github/actions/retry-action +# with: +# timeout_minutes: 90 +# max_attempts: 3 +# retry_on: any +# command: .\buildwin.ps1 -poco_base . -vs 160 -action build -linkmode all -config release -platform x64 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" # windows-2019-msvc-buildwin-win32: # runs-on: windows-2019 @@ -217,7 +268,12 @@ jobs: # CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy # steps: # - uses: actions/checkout@v3 -# - run: .\buildwin.ps1 -poco_base . -vs 160 -action build -linkmode all -config release -platform Win32 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" +# - uses: ./.github/actions/retry-action +# with: +# timeout_minutes: 90 +# max_attempts: 3 +# retry_on: any +# command: .\buildwin.ps1 -poco_base . -vs 160 -action build -linkmode all -config release -platform Win32 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" windows-2022-msvc-buildwin-x64: runs-on: windows-2022 @@ -232,7 +288,12 @@ jobs: class CppUnit::TestCaller.testProxy steps: - uses: actions/checkout@v3 - - run: .\buildwin.ps1 -poco_base . -vs 170 -action build -linkmode all -config release -platform x64 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: .\buildwin.ps1 -poco_base . -vs 170 -action build -linkmode all -config release -platform x64 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" # windows-2022-msvc-buildwin-win32: # runs-on: windows-2022 @@ -247,7 +308,12 @@ jobs: # class CppUnit::TestCaller.testProxy # steps: # - uses: actions/checkout@v3 -# - run: .\buildwin.ps1 -poco_base . -vs 170 -action build -linkmode all -config release -platform Win32 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" +# - uses: ./.github/actions/retry-action +# with: +# timeout_minutes: 90 +# max_attempts: 3 +# retry_on: any +# command: .\buildwin.ps1 -poco_base . -vs 170 -action build -linkmode all -config release -platform Win32 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" windows-2022-msvc-cmake: runs-on: windows-2022 @@ -264,9 +330,14 @@ jobs: - uses: actions/checkout@v3 - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON - run: cmake --build cmake-build --config Release - - run: >- - cd cmake-build; - ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Release + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + cd cmake-build; + ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Release # missing asan dll path # windows-2022-msvc-cmake-asan: @@ -284,6 +355,195 @@ jobs: # - uses: actions/checkout@v3 # - run: cmake -S. -Bcmake-build -DPOCO_SANITIZE_ASAN=ON -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON # - run: cmake --build cmake-build --config Debug -# - run: >- +# - uses: ./.github/actions/retry-action +# with: +# timeout_minutes: 90 +# max_attempts: 3 +# retry_on: any +# command: >- # cd cmake-build; # ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Debug + + linux-gcc-make-mysql: + runs-on: ubuntu-22.04 + services: + mysql: + image: mysql:8.1.0 + env: + MYSQL_ALLOW_EMPTY_PASSWORD: yes + MYSQL_USER: pocotest + MYSQL_PASSWORD: pocotest + MYSQL_DATABASE: pocotest + ports: + - 3306:3306 + steps: + - uses: actions/checkout@v3 + - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev mysql-client + - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/PostgreSQL,Data/SQLite,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + sudo -s + EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/PostgreSQL Data/ODBC Data/SQLite Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" + ./ci/runtests.sh +# TODO ODBC tests connect to database and hang +# - run: | +# wget https://dev.mysql.com/get/Downloads/Connector-ODBC/8.2/mysql-connector-odbc_8.2.0-1ubuntu22.04_amd64.deb +# wget https://dev.mysql.com/get/Downloads/MySQL-8.2/mysql-community-client-plugins_8.2.0-1ubuntu22.04_amd64.deb +# sudo dpkg -i mysql-community-client-plugins_8.2.0-1ubuntu22.04_amd64.deb mysql-connector-odbc_8.2.0-1ubuntu22.04_amd64.deb +# - run: mysql -h 127.0.0.1 -u pocotest --password=pocotest -e "DROP DATABASE pocotest; CREATE DATABASE pocotest" +# - uses: ./.github/actions/retry-action +# with: +# timeout_minutes: 90 +# max_attempts: 3 +# retry_on: any +# command: >- +# sudo -s +# EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/PostgreSQL Data/MySQL Data/SQLite Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" +# ./ci/runtests.sh + +# TODO tests sometimes failling on testTransaction and testReconnect +# linux-gcc-make-postgres: +# runs-on: ubuntu-22.04 +# services: +# postgres: +# image: postgres:16.0 +# env: +# POSTGRES_PASSWORD: postgres +# ports: +# - 5432:5432 +# steps: +# - uses: actions/checkout@v3 +# - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev odbc-postgresql +# - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/MySQL,Data/SQLite,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install +# - uses: ./.github/actions/retry-action +# with: +# timeout_minutes: 90 +# max_attempts: 3 +# retry_on: any +# command: >- +# sudo -s +# EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/ODBC Data/MySQL Data/SQLite Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" +# ./ci/runtests.sh +# - run: | +# sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' +# wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - +# sudo apt -y update +# sudo apt -y install postgresql-client-12 +# - run: PGPASSWORD=postgres psql -h localhost --username=postgres -d template1 -c 'DROP DATABASE postgres' -c 'CREATE DATABASE postgres' +# - uses: ./.github/actions/retry-action +# with: +# timeout_minutes: 90 +# max_attempts: 3 +# retry_on: any +# command: >- +# sudo -s +# EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/PostgreSQL Data/MySQL Data/SQLite Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" +# ./ci/runtests.sh + + linux-gcc-make-redis: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev + - run: | + curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg + echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list + sudo apt-get -y update + sudo apt-get -y install redis + - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/ODBC,Data/MySQL,Data/SQLite,Data/PostgreSQL,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + sudo -s + EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/ODBC Data/MySQL Data/SQLite Data/PostgreSQL Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus SevenZip Util XML Zip" + ./ci/runtests.sh + + linux-gcc-make-mongodb: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - uses: supercharge/mongodb-github-action@1.10.0 + - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev + - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/ODBC,Data/MySQL,Data/SQLite,Data/PostgreSQL,Encodings,JSON,JWT,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + sudo -s + EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/ODBC Data/MySQL Data/SQLite Data/PostgreSQL Encodings Foundation JSON JWT Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" + ./ci/runtests.sh + +# TODO Tests keep failing at testCursorStoredProcedure +# linux-gcc-make-oracle: +# runs-on: ubuntu-22.04 +# services: +# oracle: +# image: container-registry.oracle.com/database/express:21.3.0-xe +# env: +# ORACLE_PWD: poco +# ports: +# - 1521:1521 +# steps: +# - uses: actions/checkout@v3 +# - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev alien libaio1 +# - run: | +# wget https://download.oracle.com/otn_software/linux/instantclient/2112000/oracle-instantclient-basic-21.12.0.0.0-1.x86_64.rpm +# wget https://download.oracle.com/otn_software/linux/instantclient/2112000/oracle-instantclient-sqlplus-21.12.0.0.0-1.x86_64.rpm +# wget https://download.oracle.com/otn_software/linux/instantclient/2112000/oracle-instantclient-odbc-21.12.0.0.0-1.x86_64.rpm +# sudo alien --scripts ./oracle-instantclient-basic-21.12.0.0.0-1.x86_64.rpm +# sudo alien --scripts ./oracle-instantclient-sqlplus-21.12.0.0.0-1.x86_64.rpm +# sudo alien --scripts ./oracle-instantclient-odbc-21.12.0.0.0-1.x86_64.rpm +# sudo apt install ./oracle-instantclient-basic_21.12.0.0.0-2_amd64.deb +# sudo apt install ./oracle-instantclient-sqlplus_21.12.0.0.0-2_amd64.deb +# sudo apt install ./oracle-instantclient-odbc_21.12.0.0.0-2_amd64.deb +# sudo /usr/lib/oracle/21/client64/bin/odbc_update_ini.sh / "/usr/lib/oracle/21/client64/lib" "" "" "/etc/odbc.ini" +# - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/MySQL,Data/SQLite,Data/PostgreSQL,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install +# - uses: ./.github/actions/retry-action +# with: +# timeout_minutes: 90 +# max_attempts: 3 +# retry_on: any +# command: >- +# sudo -s +# EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/MySQL Data/SQLite Data/PostgreSQL Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" +# ./ci/runtests.sh +# TODO multiple tests are failling(testStoredProcedure, testBulkPerformance, testBulk,testBareboneODBC) +# linux-gcc-make-sqlserver: +# runs-on: ubuntu-22.04 +# services: +# sqlserver: +# image: mcr.microsoft.com/mssql/server:2022-latest +# env: +# MSSQL_PID: Express +# ACCEPT_EULA: Y +# MSSQL_SA_PASSWORD: Pocopoco1 +# ports: +# - 1433:1433 +# steps: +# - uses: actions/checkout@v3 +# - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev gnupg2 curl +# - run: | +# curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc +# curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list +# sudo apt-get update +# sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 +# - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/MySQL,Data/SQLite,Data/PostgreSQL,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install +# - uses: ./.github/actions/retry-action +# with: +# timeout_minutes: 90 +# max_attempts: 3 +# retry_on: any +# command: >- +# sudo -s +# EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/MySQL Data/SQLite Data/PostgreSQL Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" +# ./ci/runtests.sh + \ No newline at end of file diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 3ef873fc8..5de0ed87d 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -120,7 +120,10 @@ jobs: path: ${{ steps.step1.outputs.sarif-output }} retention-days: 5 - - name: Fail if an error is found - run: | - ./.github/workflows/fail_on_error.py \ - ${{ steps.step1.outputs.sarif-output }}/cpp.sarif + - name: Setup Python + uses: actions/setup-python@v4 + + # - name: Fail if an error is found + # run: | + # python ./.github/workflows/fail_on_error.py \ + # ${{ steps.step1.outputs.sarif-output }}/cpp.sarif diff --git a/.gitignore b/.gitignore index 500d56ef6..abf2185cf 100644 --- a/.gitignore +++ b/.gitignore @@ -152,3 +152,8 @@ poco_build_stderr.out *.swp *.vim tags + +# Javascript # +############## +package-lock.json +node_modules diff --git a/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp b/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp index 340c98658..2f8d427a9 100644 --- a/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp +++ b/Data/ODBC/testsuite/src/ODBCMySQLTest.cpp @@ -38,13 +38,13 @@ using Poco::Tuple; using Poco::NotFoundException; -#define MYSQL_ODBC_DRIVER "MySQL ODBC 5.3 Unicode Driver" +#define MYSQL_ODBC_DRIVER "MySQL ODBC 8.2 Unicode Driver" #define MYSQL_DSN "PocoDataMySQLTest" #define MYSQL_SERVER POCO_ODBC_TEST_DATABASE_SERVER -#define MYSQL_DB "test" -#define MYSQL_UID "root" -#define MYSQL_PWD "poco" -#define MYSQL_DB "test" +#define MYSQL_DB "pocotest" +#define MYSQL_UID "pocotest" +#define MYSQL_PWD "pocotest" +#define MYSQL_DB "pocotest" ODBCTest::SessionPtr ODBCMySQLTest::_pSession; diff --git a/Data/ODBC/testsuite/src/ODBCOracleTest.cpp b/Data/ODBC/testsuite/src/ODBCOracleTest.cpp index bee9ea036..a2adad496 100644 --- a/Data/ODBC/testsuite/src/ODBCOracleTest.cpp +++ b/Data/ODBC/testsuite/src/ODBCOracleTest.cpp @@ -41,12 +41,12 @@ using Poco::DynamicAny; using Poco::DateTime; -#define ORACLE_ODBC_DRIVER "Oracle in XE" +#define ORACLE_ODBC_DRIVER "Oracle 21 ODBC driver" #define ORACLE_DSN "PocoDataOracleTest" #define ORACLE_SERVER POCO_ODBC_TEST_DATABASE_SERVER #define ORACLE_PORT "1521" #define ORACLE_SID "XE" -#define ORACLE_UID "poco" +#define ORACLE_UID "SYSTEM" #define ORACLE_PWD "poco" diff --git a/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.cpp b/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.cpp index 6aafef3d7..2f103739d 100644 --- a/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.cpp +++ b/Data/ODBC/testsuite/src/ODBCPostgreSQLTest.cpp @@ -44,7 +44,7 @@ using Poco::DateTime; #define POSTGRESQL_DSN "PocoDataPgSQLTestW" #else #ifdef POCO_PTR_IS_64_BIT - #define POSTGRESQL_ODBC_DRIVER "PostgreSQL ANSI(x64)" + #define POSTGRESQL_ODBC_DRIVER "PostgreSQL ANSI" #else #define POSTGRESQL_ODBC_DRIVER "PostgreSQL ANSI" #endif @@ -59,8 +59,8 @@ using Poco::DateTime; #define POSTGRESQL_PORT "5432" #define POSTGRESQL_DB "postgres" #define POSTGRESQL_UID "postgres" -#define POSTGRESQL_PWD "poco" -#define POSTGRESQL_VERSION "10" +#define POSTGRESQL_PWD "postgres" +#define POSTGRESQL_VERSION "16" #ifdef POCO_OS_FAMILY_WINDOWS const std::string ODBCPostgreSQLTest::_libDir = "C:\\\\Program Files\\\\PostgreSQL\\\\pg" POSTGRESQL_VERSION "\\\\lib\\\\"; diff --git a/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp b/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp index e87771997..a8fc12ca9 100644 --- a/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp +++ b/Data/ODBC/testsuite/src/ODBCSQLServerTest.cpp @@ -68,9 +68,9 @@ using Poco::DateTime; #define MS_SQL_SERVER_DSN "PocoDataSQLServerTest" #define MS_SQL_SERVER_SERVER POCO_ODBC_TEST_DATABASE_SERVER #define MS_SQL_SERVER_PORT "1433" -#define MS_SQL_SERVER_DB "poco" -#define MS_SQL_SERVER_UID "poco" -#define MS_SQL_SERVER_PWD "poco" +#define MS_SQL_SERVER_DB "model" +#define MS_SQL_SERVER_UID "sa" +#define MS_SQL_SERVER_PWD "Pocopoco1" ODBCTest::SessionPtr ODBCSQLServerTest::_pSession; @@ -88,6 +88,7 @@ std::string ODBCSQLServerTest::_connectString = "DRIVER=" MS_SQL_SERVER_ODBC_DRI "DATABASE=" MS_SQL_SERVER_DB ";" "SERVER=" MS_SQL_SERVER_SERVER ";" "PORT=" MS_SQL_SERVER_PORT ";" + "TrustServerCertificate=yes;" "Encrypt=no" #ifdef FREE_TDS_VERSION "TDS_Version=" FREE_TDS_VERSION ";" diff --git a/Foundation/testsuite/src/TaskTest.cpp b/Foundation/testsuite/src/TaskTest.cpp index 2d2bd5eaa..551f0bb12 100644 --- a/Foundation/testsuite/src/TaskTest.cpp +++ b/Foundation/testsuite/src/TaskTest.cpp @@ -15,6 +15,7 @@ #include "Poco/Thread.h" #include "Poco/Event.h" #include "Poco/AutoPtr.h" +#include using Poco::Task; @@ -34,20 +35,42 @@ namespace void runTask() { - _event.wait(); - if (sleep(10)) - return; - setProgress(0.5); - _event.wait(); - if (isCancelled()) - return; - setProgress(1.0); - _event.wait(); + try + { + _event.wait(); + if (sleep(10)) + return; + setProgress(0.5); + _event.wait(); + if (isCancelled()) + return; + setProgress(1.0); + _event.wait(); + } + catch(const Poco::Exception& e) + { + std::cerr << "TestTask::run(): " << e.displayText() << '\n'; + } + catch(const std::exception& e) + { + std::cerr << "TestTask::run(): " << e.what() << '\n'; + } + catch(...) + { + std::cerr << "TestTask::run(): unknown exception." << '\n'; + } } void cont() { - _event.set(); + try + { + _event.set(); + } + catch(const Poco::SystemException& e) + { + std::cerr << "TestTask::cont(): " << e.displayText() << '\n'; + } } private: From a7a6f869c158040b35b0e3675dde38ac7ac1b84b Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Fri, 3 Nov 2023 14:53:15 +0100 Subject: [PATCH 173/395] feat: C++17 #4235 --- CMakeLists.txt | 12 ++++++------ cmake/CXX1x.cmake | 18 +++++++++--------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3ed1c19e5..422957fd4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,16 +42,16 @@ endif() # Setup C/C++ compiler options ################################################################################# -# C++11/14 compiler flags +# C++11/17 compiler flags include(CXX1x) -check_for_cxx14_compiler(CXX14_COMPILER) +check_for_cxx17_compiler(CXX17_COMPILER) -# If a C++14 compiler is available, then set the appropriate flags -if(CXX14_COMPILER) - set(CMAKE_CXX_STANDARD 14) +# If a C++17 compiler is available, then set the appropriate flags +if(CXX17_COMPILER) + set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) else() - message(FATAL_ERROR "Compiler does not support C++14.") + message(FATAL_ERROR "Compiler does not support C++17.") endif() if(NOT CMAKE_BUILD_TYPE) diff --git a/cmake/CXX1x.cmake b/cmake/CXX1x.cmake index 2120cede7..50a38de0f 100644 --- a/cmake/CXX1x.cmake +++ b/cmake/CXX1x.cmake @@ -20,7 +20,7 @@ # Determines whether the compiler supports C++11 macro(check_for_cxx11_compiler _VAR) - message(STATUS "Checking for C++11 compiler") + message(STATUS "Checking for C++11 compiler ...") set(${_VAR}) try_compile(_COMPILER_TEST_RESULT ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/cmake/test_compiler.cpp CMAKE_FLAGS -DCMAKE_CXX_STANDARD=11 -DCMAKE_CXX_STANDARD_REQUIRED=ON) if(NOT _COMPILER_TEST_RESULT AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang") @@ -43,17 +43,17 @@ macro(check_for_cxx11_compiler _VAR) endif() endmacro() -# Determines whether the compiler supports C++14 -macro(check_for_cxx14_compiler _VAR) - message(STATUS "Checking for C++14 compiler") +# Determines whether the compiler supports C++17 +macro(check_for_cxx17_compiler _VAR) + message(STATUS "Checking for C++17 compiler") set(${_VAR}) - try_compile(_COMPILER_TEST_RESULT ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/cmake/test_compiler.cpp CMAKE_FLAGS -DCMAKE_CXX_STANDARD=14 -DCMAKE_CXX_STANDARD_REQUIRED=ON) + try_compile(_COMPILER_TEST_RESULT ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/cmake/test_compiler.cpp CMAKE_FLAGS -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON) if(NOT _COMPILER_TEST_RESULT AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - try_compile(_COMPILER_TEST_RESULT ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/cmake/test_compiler.cpp CMAKE_FLAGS -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_CXX_STANDARD=14 -DCMAKE_CXX_STANDARD_REQUIRED=ON) + try_compile(_COMPILER_TEST_RESULT ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/cmake/test_compiler.cpp CMAKE_FLAGS -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_STANDARD_REQUIRED=ON) if(_COMPILER_TEST_RESULT) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") else() - message(STATUS "To enable C++14 install libc++ standard library from https://libcxx.llvm.org/") + message(STATUS "To enable C++17 install libc++ standard library from https://libcxx.llvm.org/") endif() endif() if(_COMPILER_TEST_RESULT AND ((MSVC AND (MSVC14)) OR @@ -62,8 +62,8 @@ macro(check_for_cxx14_compiler _VAR) (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND NOT ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 3.4) OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang"))) set(${_VAR} 1) - message(STATUS "Checking for C++14 compiler - available") + message(STATUS "Checking for C++17 compiler - available") else() - message(STATUS "Checking for C++14 compiler - unavailable") + message(STATUS "Checking for C++17 compiler - unavailable") endif() endmacro() From 8740816c786649210d90f8a4362001fb99a7ddcf Mon Sep 17 00:00:00 2001 From: Friedrich Wilckens Date: Fri, 3 Nov 2023 19:48:52 -0700 Subject: [PATCH 174/395] PostgreSQL SessionHandle: const fixes. --- .../Poco/Data/PostgreSQL/SessionHandle.h | 18 +++++++++--------- Data/PostgreSQL/src/SessionHandle.cpp | 6 +++--- Data/PostgreSQL/testsuite/src/SQLExecutor.cpp | 5 ++--- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/Data/PostgreSQL/include/Poco/Data/PostgreSQL/SessionHandle.h b/Data/PostgreSQL/include/Poco/Data/PostgreSQL/SessionHandle.h index 597e08945..2feee7776 100644 --- a/Data/PostgreSQL/include/Poco/Data/PostgreSQL/SessionHandle.h +++ b/Data/PostgreSQL/include/Poco/Data/PostgreSQL/SessionHandle.h @@ -106,7 +106,7 @@ public: void startTransaction(); /// Start transaction - bool isTransaction(); + bool isTransaction() const; /// Returns true iff a transaction is a transaction is in progress, false otherwise. void commit(); @@ -115,13 +115,13 @@ public: void rollback(); /// Rollback trabsaction - bool isAutoCommit(); + bool isAutoCommit() const; /// is the connection in auto commit mode? void setAutoCommit(bool aShouldAutoCommit = true); /// is the connection in auto commit mode? - bool isAsynchronousCommit(); + bool isAsynchronousCommit() const; /// is the connection in Asynchronous commit mode? void setAsynchronousCommit(bool aShouldAsynchronousCommit = true); @@ -133,10 +133,10 @@ public: void setTransactionIsolation(Poco::UInt32 aTI); /// Sets the transaction isolation level. - Poco::UInt32 transactionIsolation(); + Poco::UInt32 transactionIsolation() const; /// Returns the transaction isolation level. - bool hasTransactionIsolation(Poco::UInt32 aTI); + static bool hasTransactionIsolation(Poco::UInt32 aTI); /// Returns true iff the transaction isolation level corresponding /// to the supplied bitmask is supported. @@ -288,7 +288,7 @@ inline SessionHandle::operator PGconn * () } -inline Poco::FastMutex&SessionHandle::mutex() +inline Poco::FastMutex& SessionHandle::mutex() { return _sessionMutex; } @@ -300,19 +300,19 @@ inline std::string SessionHandle::connectionString() const } -inline bool SessionHandle::isTransaction() +inline bool SessionHandle::isTransaction() const { return _inTransaction; } -inline bool SessionHandle::isAutoCommit() +inline bool SessionHandle::isAutoCommit() const { return _isAutoCommit; } -inline bool SessionHandle::isAsynchronousCommit() +inline bool SessionHandle::isAsynchronousCommit() const { return _isAsynchronousCommit; } diff --git a/Data/PostgreSQL/src/SessionHandle.cpp b/Data/PostgreSQL/src/SessionHandle.cpp index 61dcf0bf4..f0778eb17 100644 --- a/Data/PostgreSQL/src/SessionHandle.cpp +++ b/Data/PostgreSQL/src/SessionHandle.cpp @@ -270,6 +270,7 @@ void SessionHandle::rollback() void SessionHandle::setAutoCommit(bool aShouldAutoCommit) { + // There is no PostgreSQL API call to switch autocommit (unchained) mode off. if (aShouldAutoCommit == _isAutoCommit) { return; @@ -277,8 +278,7 @@ void SessionHandle::setAutoCommit(bool aShouldAutoCommit) if (aShouldAutoCommit) { - Poco::FastMutex::ScopedLock mutexLocker(_sessionMutex); - if (_inTransaction) + if (isTransaction()) commit(); // end any in process transaction } @@ -374,7 +374,7 @@ void SessionHandle::setTransactionIsolation(Poco::UInt32 aTI) } -Poco::UInt32 SessionHandle::transactionIsolation() +Poco::UInt32 SessionHandle::transactionIsolation() const { return _tranactionIsolationLevel; } diff --git a/Data/PostgreSQL/testsuite/src/SQLExecutor.cpp b/Data/PostgreSQL/testsuite/src/SQLExecutor.cpp index 60dbe8154..12457d918 100644 --- a/Data/PostgreSQL/testsuite/src/SQLExecutor.cpp +++ b/Data/PostgreSQL/testsuite/src/SQLExecutor.cpp @@ -1991,11 +1991,10 @@ void SQLExecutor::transaction(const std::string& connect) bool autoCommit = _pSession->getFeature("autoCommit"); -/* _pSession->setFeature("autoCommit", false); - assertTrue (_pSession->isTransaction()); + _pSession->setFeature("autoCommit", false); _pSession->setFeature("autoCommit", true); assertTrue (!_pSession->isTransaction()); -*/ + _pSession->setTransactionIsolation(Session::TRANSACTION_READ_COMMITTED); { From 8baa2f9c3418455d8f967f2286fe3b0d8fc63a19 Mon Sep 17 00:00:00 2001 From: Friedrich Wilckens Date: Fri, 3 Nov 2023 20:15:12 -0700 Subject: [PATCH 175/395] Implement MySQL::SessionHandle::startTransaction as submitting the SQL statement 'BEGIN' --- Data/MySQL/src/SessionHandle.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Data/MySQL/src/SessionHandle.cpp b/Data/MySQL/src/SessionHandle.cpp index ba935cdb4..5e9ab21b2 100644 --- a/Data/MySQL/src/SessionHandle.cpp +++ b/Data/MySQL/src/SessionHandle.cpp @@ -153,14 +153,14 @@ void SessionHandle::close() void SessionHandle::startTransaction() { - int rc = mysql_autocommit(_pHandle, false); + int rc = mysql_query(_pHandle, "BEGIN"); if (rc != 0) { // retry if connection lost int err = mysql_errno(_pHandle); if (err == 2006 /* CR_SERVER_GONE_ERROR */ || err == 2013 /* CR_SERVER_LOST */) { - rc = mysql_autocommit(_pHandle, false); + rc = mysql_query(_pHandle, "BEGIN"); } } if (rc != 0) throw TransactionException("Start transaction failed.", _pHandle); From 81d7307fa7c7761934e3da66d1764364ad833f3e Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Sat, 4 Nov 2023 23:11:38 +0100 Subject: [PATCH 176/395] fix(Data): adjust make and CMake for SQLParser and DataTest lib separate samples from tests in CMake remove unused StatementImpl from Data testsuite --- .vscode/c_cpp_properties.json | 2 +- ApacheConnector/CMakeLists.txt | 2 +- CMakeLists.txt | 11 +- CppUnit/CMakeLists.txt | 3 + CppUnit/Makefile | 2 +- CppUnit/cmake/CppUnitConfig.cmake | 3 + CppUnit/dependencies | 1 + Crypto/CMakeLists.txt | 5 +- Data/CMakeLists.txt | 13 +- Data/MySQL/testsuite/CMakeLists.txt | 3 +- Data/ODBC/testsuite/CMakeLists.txt | 4 +- Data/ODBC/testsuite/Makefile | 8 +- Data/PostgreSQL/testsuite/CMakeLists.txt | 3 +- Data/SQLite/testsuite/CMakeLists.txt | 7 +- Data/include/Poco/Data/Statement.h | 8 +- Data/src/Statement.cpp | 16 +- Data/testsuite/CMakeLists.txt | 10 +- Data/testsuite/DataTest/CMakeLists.txt | 34 +++ Data/testsuite/DataTest/Makefile | 16 + .../DataTest/cmake/PocoDataTestConfig.cmake | 5 + Data/testsuite/DataTest/dependencies | 2 + .../include/Poco/Data/Test/DataTest.h | 62 ++++ .../include/Poco/Data/Test/SQLExecutor.h | 24 +- .../{ => DataTest}/src/SQLExecutor.cpp | 0 Data/testsuite/Makefile | 2 +- Data/testsuite/Makefile-library | 21 -- Data/testsuite/src/DataTest.cpp | 2 + Data/testsuite/src/StatementImpl.cpp | 82 ----- Data/testsuite/src/StatementImpl.h | 91 ------ Data/testsuite/testsuite.cmake | 33 ++ Encodings/CMakeLists.txt | 5 +- Foundation/CMakeLists.txt | 5 +- JSON/CMakeLists.txt | 5 +- MongoDB/CMakeLists.txt | 5 +- Net/CMakeLists.txt | 5 +- NetSSL_OpenSSL/CMakeLists.txt | 5 +- NetSSL_Win/CMakeLists.txt | 5 +- PDF/CMakeLists.txt | 5 +- Prometheus/CMakeLists.txt | 5 +- Redis/CMakeLists.txt | 1 - SevenZip/CMakeLists.txt | 2 - Util/CMakeLists.txt | 5 +- XML/CMakeLists.txt | 5 +- Zip/CMakeLists.txt | 5 +- cmake/PocoMacros.cmake | 289 +++++++++--------- doc/00200-GettingStarted.page | 1 + runLibTests.sh | 85 ++++-- 47 files changed, 488 insertions(+), 425 deletions(-) create mode 100644 CppUnit/cmake/CppUnitConfig.cmake create mode 100644 CppUnit/dependencies create mode 100644 Data/testsuite/DataTest/CMakeLists.txt create mode 100644 Data/testsuite/DataTest/Makefile create mode 100644 Data/testsuite/DataTest/cmake/PocoDataTestConfig.cmake create mode 100644 Data/testsuite/DataTest/dependencies create mode 100644 Data/testsuite/DataTest/include/Poco/Data/Test/DataTest.h rename Data/testsuite/{ => DataTest}/include/Poco/Data/Test/SQLExecutor.h (95%) rename Data/testsuite/{ => DataTest}/src/SQLExecutor.cpp (100%) delete mode 100644 Data/testsuite/Makefile-library delete mode 100644 Data/testsuite/src/StatementImpl.cpp delete mode 100644 Data/testsuite/src/StatementImpl.h create mode 100644 Data/testsuite/testsuite.cmake diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index 7c595068a..acbacaf3c 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -24,7 +24,7 @@ "${POCO_BASE}/MongoDB/include", "${POCO_BASE}/ApacheConnector/include", "${POCO_BASE}/Data/src", - "${POCO_BASE}/Data/testsuite/include" + "${POCO_BASE}/Data/testsuite/DataTest/include" ] }, "configurations": [ diff --git a/ApacheConnector/CMakeLists.txt b/ApacheConnector/CMakeLists.txt index 544904fe2..022772d77 100644 --- a/ApacheConnector/CMakeLists.txt +++ b/ApacheConnector/CMakeLists.txt @@ -21,6 +21,6 @@ target_include_directories(mod_poco ) target_link_libraries(mod_poco PUBLIC Poco::Util Poco::Net Apache::Apr Apache::Aprutil) -if(ENABLE_TESTS) +if(ENABLE_SAMPLES) add_subdirectory(samples) endif() diff --git a/CMakeLists.txt b/CMakeLists.txt index 422957fd4..a03458de9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -204,7 +204,10 @@ if(ENABLE_ACTIVERECORD AND NOT ENABLE_XML) endif() option(ENABLE_TESTS - "Set to OFF|ON (default is OFF) to control build of POCO tests & samples" OFF) + "Set to OFF|ON (default is OFF) to control build of POCO tests" OFF) + +option(ENABLE_SAMPLES + "Set to OFF|ON (default is OFF) to control build of POCO samples" OFF) option(POCO_UNBUNDLED "Set to OFF|ON (default is OFF) to control linking dependencies as external" OFF) @@ -393,7 +396,13 @@ if(OPENSSL_FOUND) endif() endif(OPENSSL_FOUND) + +option(POCO_DATA_NO_SQL_PARSER "Disable SQL parser" OFF) + if(EXISTS ${PROJECT_SOURCE_DIR}/Data AND ENABLE_DATA) + if(POCO_DATA_NO_SQL_PARSER) + add_definitions(-DPOCO_DATA_NO_SQL_PARSER=1) + endif() add_subdirectory(Data) list(APPEND Poco_COMPONENTS "Data") endif() diff --git a/CppUnit/CMakeLists.txt b/CppUnit/CMakeLists.txt index 78b89d442..8a9badec2 100644 --- a/CppUnit/CMakeLists.txt +++ b/CppUnit/CMakeLists.txt @@ -38,3 +38,6 @@ elseif(MINGW) PUBLIC _DLL) endif() + +POCO_INSTALL(CppUnit) +POCO_GENERATE_PACKAGE(CppUnit) diff --git a/CppUnit/Makefile b/CppUnit/Makefile index bcd73ff8c..4890fe667 100644 --- a/CppUnit/Makefile +++ b/CppUnit/Makefile @@ -11,6 +11,6 @@ objects = CppUnitException TestDecorator TestResult TestSuite \ target = CppUnit target_version = 1 -target_libs = +target_libs = PocoFoundation include $(POCO_BASE)/build/rules/lib diff --git a/CppUnit/cmake/CppUnitConfig.cmake b/CppUnit/cmake/CppUnitConfig.cmake new file mode 100644 index 000000000..f78f247b0 --- /dev/null +++ b/CppUnit/cmake/CppUnitConfig.cmake @@ -0,0 +1,3 @@ +include(CMakeFindDependencyMacro) +find_dependency(PocoFoundation) +include("${CMAKE_CURRENT_LIST_DIR}/PocoDataTargets.cmake") diff --git a/CppUnit/dependencies b/CppUnit/dependencies new file mode 100644 index 000000000..2e8175e4e --- /dev/null +++ b/CppUnit/dependencies @@ -0,0 +1 @@ +Foundation diff --git a/Crypto/CMakeLists.txt b/Crypto/CMakeLists.txt index 0a3b620df..5a69cf83e 100644 --- a/Crypto/CMakeLists.txt +++ b/Crypto/CMakeLists.txt @@ -40,7 +40,10 @@ endif() POCO_INSTALL(Crypto) POCO_GENERATE_PACKAGE(Crypto) -if(ENABLE_TESTS) +if(ENABLE_SAMPLES) add_subdirectory(samples) +endif() + +if(ENABLE_TESTS) add_subdirectory(testsuite) endif() diff --git a/Data/CMakeLists.txt b/Data/CMakeLists.txt index 0772af648..4da7d5979 100644 --- a/Data/CMakeLists.txt +++ b/Data/CMakeLists.txt @@ -1,6 +1,11 @@ # Sources file(GLOB SRCS_G "src/*.cpp") POCO_SOURCES_AUTO(SRCS ${SRCS_G}) +if (NOT POCO_DATA_NO_SQL_PARSER) + file(GLOB_RECURSE SRCS_PARSER "src/sql-parser/src/*.cpp") + LIST(REMOVE_ITEM SRCS_PARSER "${CMAKE_CURRENT_SOURCE_DIR}/src/sql-parser/src/parser/conflict_test.cpp") + POCO_SOURCES_AUTO(SRCS ${SRCS_PARSER}) +endif() # Headers file(GLOB_RECURSE HDRS_G "include/*.h") @@ -30,6 +35,7 @@ target_link_libraries(Data PUBLIC Poco::Foundation) target_include_directories(Data PUBLIC $ + $ $ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src ) @@ -37,6 +43,10 @@ target_include_directories(Data POCO_INSTALL(Data) POCO_GENERATE_PACKAGE(Data) +if(ENABLE_TESTS) + add_subdirectory(testsuite) +endif() + if(ENABLE_DATA_SQLITE) # SQlite3 is built in any case message(STATUS "SQLite Support Enabled") @@ -66,7 +76,6 @@ else() message(STATUS "ODBC Support Disabled") endif() -if(ENABLE_TESTS) +if(ENABLE_SAMPLES) add_subdirectory(samples) - add_subdirectory(testsuite) endif() diff --git a/Data/MySQL/testsuite/CMakeLists.txt b/Data/MySQL/testsuite/CMakeLists.txt index 04b57b4cf..6b979517e 100644 --- a/Data/MySQL/testsuite/CMakeLists.txt +++ b/Data/MySQL/testsuite/CMakeLists.txt @@ -25,4 +25,5 @@ else() ) set_tests_properties(DataMySQL PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) endif() -target_link_libraries(DataMySQL-testrunner PUBLIC Poco::DataMySQL CppUnit) +target_link_libraries(DataMySQL-testrunner PUBLIC Poco::DataMySQL Poco::DataTest CppUnit) +target_include_directories(DataMySQL-testrunner PUBLIC ${CMAKE_SOURCE_DIR}/Data/testsuite/DataTest/include/) diff --git a/Data/ODBC/testsuite/CMakeLists.txt b/Data/ODBC/testsuite/CMakeLists.txt index f2938060f..80d0af09f 100644 --- a/Data/ODBC/testsuite/CMakeLists.txt +++ b/Data/ODBC/testsuite/CMakeLists.txt @@ -25,4 +25,6 @@ else() ) set_tests_properties(DataODBC PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) endif() -target_link_libraries(DataODBC-testrunner PUBLIC Poco::DataODBC CppUnit) + +target_link_libraries(DataODBC-testrunner PUBLIC Poco::DataTest Poco::DataODBC Poco::Data CppUnit) +target_include_directories(DataODBC-testrunner PUBLIC ${CMAKE_SOURCE_DIR}/Data/testsuite/DataTest/include/) diff --git a/Data/ODBC/testsuite/Makefile b/Data/ODBC/testsuite/Makefile index 17efd307d..b17f82c86 100644 --- a/Data/ODBC/testsuite/Makefile +++ b/Data/ODBC/testsuite/Makefile @@ -35,13 +35,13 @@ ifeq ($(POCO_CONFIG),MinGW) objects += ODBCAccessTest endif -target_includes = $(POCO_BASE)/Data/testsuite/include ifndef POCO_DATA_NO_SQL_PARSER target_includes += $(POCO_BASE)/Data/src endif -target = testrunner -target_version = 1 -target_libs = PocoDataODBC PocoDataTest PocoData PocoFoundation CppUnit +target = testrunner +target_version = 1 +target_libs = PocoDataODBC PocoDataTest PocoData PocoFoundation CppUnit +target_includes += $(POCO_BASE)/Data/testsuite/DataTest/include include $(POCO_BASE)/build/rules/exec diff --git a/Data/PostgreSQL/testsuite/CMakeLists.txt b/Data/PostgreSQL/testsuite/CMakeLists.txt index 8afd77ded..f97bb9c7c 100644 --- a/Data/PostgreSQL/testsuite/CMakeLists.txt +++ b/Data/PostgreSQL/testsuite/CMakeLists.txt @@ -17,4 +17,5 @@ add_test( COMMAND DataPostgreSQL-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all ) set_tests_properties(DataPostgreSQL PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) -target_link_libraries(DataPostgreSQL-testrunner PUBLIC Poco::DataPostgreSQL CppUnit) +target_link_libraries(DataPostgreSQL-testrunner PUBLIC Poco::DataPostgreSQL Poco::DataTest CppUnit) +target_include_directories(DataPostgreSQL-testrunner PUBLIC ${CMAKE_SOURCE_DIR}/Data/testsuite/DataTest/include/) diff --git a/Data/SQLite/testsuite/CMakeLists.txt b/Data/SQLite/testsuite/CMakeLists.txt index 73b8d5252..2c04c2212 100644 --- a/Data/SQLite/testsuite/CMakeLists.txt +++ b/Data/SQLite/testsuite/CMakeLists.txt @@ -4,7 +4,8 @@ POCO_SOURCES_AUTO(TEST_SRCS ${SRCS_G}) # Headers file(GLOB_RECURSE HDRS_G "src/*.h") -POCO_HEADERS_AUTO(TEST_SRCS ${HDRS_G}) +file(GLOB HDRS_E ${CMAKE_SOURCE_DIR}/Data/testsuite/DataTest/include/*.h) +POCO_HEADERS_AUTO(TEST_SRCS ${HDRS_E}) POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF src/WinDriver.cpp @@ -29,4 +30,6 @@ else() ) set_tests_properties(DataSQLite PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) endif() -target_link_libraries(DataSQLite-testrunner PUBLIC Poco::DataSQLite CppUnit) + +target_link_libraries(DataSQLite-testrunner PUBLIC Poco::DataSQLite Poco::DataTest CppUnit) +target_include_directories(DataSQLite-testrunner PUBLIC ${CMAKE_SOURCE_DIR}/Data/testsuite/DataTest/include/) diff --git a/Data/include/Poco/Data/Statement.h b/Data/include/Poco/Data/Statement.h index 272c4afd4..7aeba69b3 100644 --- a/Data/include/Poco/Data/Statement.h +++ b/Data/include/Poco/Data/Statement.h @@ -544,7 +544,7 @@ private: /// Returns true if the statement is of the argument type. Poco::SharedPtr _pParseResult; - + std::string _parseError; #endif // POCO_DATA_NO_SQL_PARSER StatementImpl::Ptr _pImpl; @@ -557,7 +557,6 @@ private: std::vector _arguments; RowFormatter::Ptr _pRowFormatter; mutable std::string _stmtString; - std::string _parseError; }; // @@ -571,7 +570,12 @@ inline std::size_t Statement::subTotalRowCount(int dataSet) const inline const std::string& Statement::parseError() { +#ifdef POCO_DATA_NO_SQL_PARSER + static std::string empty; + return empty; +#else return _parseError; +#endif } diff --git a/Data/src/Statement.cpp b/Data/src/Statement.cpp index 570f13078..efb9b02cc 100644 --- a/Data/src/Statement.cpp +++ b/Data/src/Statement.cpp @@ -48,6 +48,7 @@ Statement::Statement(Session& session): Statement::Statement(const Statement& stmt): #ifndef POCO_DATA_NO_SQL_PARSER _pParseResult(stmt._pParseResult), + _parseError(stmt._parseError), #endif _pImpl(stmt._pImpl), _async(stmt._async), @@ -55,8 +56,7 @@ Statement::Statement(const Statement& stmt): _pAsyncExec(stmt._pAsyncExec), _arguments(stmt._arguments), _pRowFormatter(stmt._pRowFormatter), - _stmtString(stmt._stmtString), - _parseError(stmt._parseError) + _stmtString(stmt._stmtString) { } @@ -64,6 +64,7 @@ Statement::Statement(const Statement& stmt): Statement::Statement(Statement&& stmt) noexcept: #ifndef POCO_DATA_NO_SQL_PARSER _pParseResult(std::move(stmt._pParseResult)), + _parseError(std::move(stmt._parseError)), #endif _pImpl(std::move(stmt._pImpl)), _async(std::move(stmt._async)), @@ -71,8 +72,7 @@ Statement::Statement(Statement&& stmt) noexcept: _pAsyncExec(std::move(stmt._pAsyncExec)), _arguments(std::move(stmt._arguments)), _pRowFormatter(std::move(stmt._pRowFormatter)), - _stmtString(std::move(stmt._stmtString)), - _parseError(std::move(stmt._parseError)) + _stmtString(std::move(stmt._stmtString)) { stmt._pImpl = nullptr; stmt._async = false; @@ -81,7 +81,9 @@ Statement::Statement(Statement&& stmt) noexcept: stmt._arguments.clear(); stmt._pRowFormatter = nullptr; _stmtString.clear(); +#ifndef POCO_DATA_NO_SQL_PARSER _parseError.clear(); +#endif } @@ -102,6 +104,8 @@ Statement& Statement::operator = (Statement&& stmt) noexcept { #ifndef POCO_DATA_NO_SQL_PARSER _pParseResult = std::move(stmt._pParseResult); + _parseError = std::move(stmt._parseError); + _parseError.clear(); #endif _pImpl = std::move(stmt._pImpl); stmt._pImpl = nullptr; @@ -117,8 +121,6 @@ Statement& Statement::operator = (Statement&& stmt) noexcept stmt._pRowFormatter = nullptr; _stmtString = std::move(stmt._stmtString); _stmtString.clear(); - _parseError = std::move(stmt._parseError); - _parseError.clear(); return *this; } @@ -128,6 +130,7 @@ void Statement::swap(Statement& other) noexcept using std::swap; #ifndef POCO_DATA_NO_SQL_PARSER swap(_pParseResult, other._pParseResult); + swap(_parseError, other._parseError); #endif swap(_pImpl, other._pImpl); swap(_async, other._async); @@ -136,7 +139,6 @@ void Statement::swap(Statement& other) noexcept _arguments.swap(other._arguments); swap(_pRowFormatter, other._pRowFormatter); swap(_stmtString, other._stmtString); - swap(_parseError, other._parseError); } diff --git a/Data/testsuite/CMakeLists.txt b/Data/testsuite/CMakeLists.txt index f7226d31d..a6e0a9b87 100644 --- a/Data/testsuite/CMakeLists.txt +++ b/Data/testsuite/CMakeLists.txt @@ -1,9 +1,10 @@ # Sources file(GLOB SRCS_G "src/*.cpp") +LIST(REMOVE_ITEM SRCS_G "${CMAKE_CURRENT_SOURCE_DIR}/src/SQLExecutor.cpp") POCO_SOURCES_AUTO(TEST_SRCS ${SRCS_G}) # Headers -file(GLOB_RECURSE HDRS_G "src/*.h") +file(GLOB HDRS_G "src/*.h") POCO_HEADERS_AUTO(TEST_SRCS ${HDRS_G}) POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF @@ -14,11 +15,6 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS WINCE src/WinCEDriver.cpp ) -#TODO: Why is this file there? It doesn't compile if it is include in the sources -POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF - src/StatementImpl.cpp -) - add_executable(Data-testrunner ${TEST_SRCS}) if(ANDROID) add_test( @@ -35,3 +31,5 @@ else() set_tests_properties(Data PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) endif() target_link_libraries(Data-testrunner PUBLIC Poco::Data CppUnit) + +add_subdirectory(DataTest) diff --git a/Data/testsuite/DataTest/CMakeLists.txt b/Data/testsuite/DataTest/CMakeLists.txt new file mode 100644 index 000000000..13f93a6ec --- /dev/null +++ b/Data/testsuite/DataTest/CMakeLists.txt @@ -0,0 +1,34 @@ +# Sources +file(GLOB SRCS_G ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp) +POCO_SOURCES_AUTO(DATA_TEST_LIB_SRCS ${SRCS_G}) + +# Headers +file(GLOB HDRS_G ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h) +POCO_HEADERS_AUTO(DATA_TEST_LIB_SRCS ${HDRS_G}) + +# Version Resource +if(MSVC AND BUILD_SHARED_LIBS) + source_group("Resources" FILES ${PROJECT_SOURCE_DIR}/DLLVersion.rc) + list(APPEND DATA_TEST_LIB_SRCS ${PROJECT_SOURCE_DIR}/DLLVersion.rc) +endif() + +add_library(DataTest ${DATA_TEST_LIB_SRCS}) +add_library(Poco::DataTest ALIAS DataTest) +set_target_properties(DataTest + PROPERTIES + VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} + OUTPUT_NAME PocoDataTest + DEFINE_SYMBOL DataTest_EXPORTS +) + +target_link_libraries(DataTest PUBLIC Poco::Data CppUnit) +target_include_directories(DataTest + PUBLIC + $ + $ + $ + $ +) + +POCO_INSTALL(DataTest) +POCO_GENERATE_PACKAGE(DataTest) diff --git a/Data/testsuite/DataTest/Makefile b/Data/testsuite/DataTest/Makefile new file mode 100644 index 000000000..61a309c7b --- /dev/null +++ b/Data/testsuite/DataTest/Makefile @@ -0,0 +1,16 @@ +# +# Makefile +# +# Makefile for Poco Data testsuite library +# + +include $(POCO_BASE)/build/rules/global + +objects = SQLExecutor + +target = PocoDataTest +target_version = 1 +target_libs = PocoData PocoFoundation CppUnit +target_includes = $(POCO_BASE)/Data/src $(POCO_BASE)/Data/testsuite/DataTest/include + +include $(POCO_BASE)/build/rules/lib diff --git a/Data/testsuite/DataTest/cmake/PocoDataTestConfig.cmake b/Data/testsuite/DataTest/cmake/PocoDataTestConfig.cmake new file mode 100644 index 000000000..5a497122e --- /dev/null +++ b/Data/testsuite/DataTest/cmake/PocoDataTestConfig.cmake @@ -0,0 +1,5 @@ +include(CMakeFindDependencyMacro) +find_dependency(PocoFoundation) +find_dependency(PocoData) +find_dependency(CppUnit) +include("${CMAKE_CURRENT_LIST_DIR}/PocoDataTestTargets.cmake") diff --git a/Data/testsuite/DataTest/dependencies b/Data/testsuite/DataTest/dependencies new file mode 100644 index 000000000..bef728c9a --- /dev/null +++ b/Data/testsuite/DataTest/dependencies @@ -0,0 +1,2 @@ +Foundation +Data diff --git a/Data/testsuite/DataTest/include/Poco/Data/Test/DataTest.h b/Data/testsuite/DataTest/include/Poco/Data/Test/DataTest.h new file mode 100644 index 000000000..e3c520b65 --- /dev/null +++ b/Data/testsuite/DataTest/include/Poco/Data/Test/DataTest.h @@ -0,0 +1,62 @@ +// +// DataTest.h +// +// Library: DataTest +// Package: DataTestCore +// Module: DataTest +// +// Basic definitions for the Poco DataTest library. +// This file must be the first file included by every other DataTest +// header file. +// +// Copyright (c) 2006, Applied Informatics Software Engineering GmbH., +// Aleph ONE Software Engineering d.o.o., and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef DataTest_DataTest_INCLUDED +#define DataTest_DataTest_INCLUDED + + +#include "Poco/Foundation.h" + + +// +// The following block is the standard way of creating macros which make exporting +// from a DLL simpler. All files within this DLL are compiled with the DataTest_EXPORTS +// symbol defined on the command line. this symbol should not be defined on any project +// that uses this DLL. This way any other project whose source files include this file see +// DataTest_API functions as being imported from a DLL, wheras this DLL sees symbols +// defined with this macro as being exported. +// +#if defined(_WIN32) && defined(POCO_DLL) + #if defined(DataTest_EXPORTS) + #define DataTest_API __declspec(dllexport) + #else + #define DataTest_API __declspec(dllimport) + #endif +#endif + + +#if !defined(DataTest_API) + #if !defined(POCO_NO_GCC_API_ATTRIBUTE) && defined (__GNUC__) && (__GNUC__ >= 4) + #define DataTest_API __attribute__ ((visibility ("default"))) + #else + #define DataTest_API + #endif +#endif + + +// +// Automatically link DataTest library. +// +#if defined(_MSC_VER) + #if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(DataTest_EXPORTS) + #pragma comment(lib, "PocoDataTest" POCO_LIB_SUFFIX) + #endif +#endif + + +#endif // DataTest_DataTest_INCLUDED diff --git a/Data/testsuite/include/Poco/Data/Test/SQLExecutor.h b/Data/testsuite/DataTest/include/Poco/Data/Test/SQLExecutor.h similarity index 95% rename from Data/testsuite/include/Poco/Data/Test/SQLExecutor.h rename to Data/testsuite/DataTest/include/Poco/Data/Test/SQLExecutor.h index 3b88b113b..281dd51dc 100644 --- a/Data/testsuite/include/Poco/Data/Test/SQLExecutor.h +++ b/Data/testsuite/DataTest/include/Poco/Data/Test/SQLExecutor.h @@ -3,18 +3,18 @@ // // Definition of the SQLExecutor class. // -// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. -// and Contributors. +// Copyright (c) 2006, Applied Informatics Software Engineering GmbH., +// Aleph ONE Software Engineering d.o.o., and Contributors. // // SPDX-License-Identifier: BSL-1.0 // -#ifndef Data_SQLExecutor_INCLUDED -#define Data_SQLExecutor_INCLUDED +#ifndef DataTest_SQLExecutor_INCLUDED +#define DataTest_SQLExecutor_INCLUDED -#include "Poco/Data/Data.h" +#include "Poco/Data/Test/DataTest.h" #include "Poco/Data/Session.h" #include "Poco/Data/BulkExtraction.h" #include "Poco/Data/BulkBinding.h" @@ -24,6 +24,11 @@ #include +namespace Poco { +namespace Data { +namespace Test { + + #define poco_data_using_keywords using Poco::Data::Keywords::now; \ using Poco::Data::Keywords::into; \ using Poco::Data::Keywords::use; \ @@ -33,12 +38,7 @@ using Poco::Data::CLOB; -namespace Poco { -namespace Data { -namespace Test { - - -class SQLExecutor: public CppUnit::TestCase +class DataTest_API SQLExecutor: public CppUnit::TestCase { public: enum DataBinding @@ -238,4 +238,4 @@ private: } } } // Poco::Data::Test -#endif // Data_SQLExecutor_INCLUDED +#endif // DataTest_SQLExecutor_INCLUDED diff --git a/Data/testsuite/src/SQLExecutor.cpp b/Data/testsuite/DataTest/src/SQLExecutor.cpp similarity index 100% rename from Data/testsuite/src/SQLExecutor.cpp rename to Data/testsuite/DataTest/src/SQLExecutor.cpp diff --git a/Data/testsuite/Makefile b/Data/testsuite/Makefile index b60c67fe0..f5397e1b7 100644 --- a/Data/testsuite/Makefile +++ b/Data/testsuite/Makefile @@ -8,4 +8,4 @@ clean distclean all: projects projects: $(MAKE) -f Makefile-testrunner $(MAKECMDGOALS) - $(MAKE) -f Makefile-library $(MAKECMDGOALS) + $(MAKE) -C DataTest $(MAKECMDGOALS) diff --git a/Data/testsuite/Makefile-library b/Data/testsuite/Makefile-library deleted file mode 100644 index afc360f99..000000000 --- a/Data/testsuite/Makefile-library +++ /dev/null @@ -1,21 +0,0 @@ -# -# Makefile -# -# Makefile for Poco Data testsuite library -# - -include $(POCO_BASE)/build/rules/global - -objects = SQLExecutor - -target_includes = $(POCO_BASE)/Data/testsuite/include -ifndef POCO_DATA_NO_SQL_PARSER - objects += SQLParserTest - target_includes += $(POCO_BASE)/Data/src -endif - -target = PocoDataTest -target_version = 1 -target_libs = PocoData PocoFoundation CppUnit - -include $(POCO_BASE)/build/rules/lib diff --git a/Data/testsuite/src/DataTest.cpp b/Data/testsuite/src/DataTest.cpp index c7f6899a9..6fb0ce49c 100644 --- a/Data/testsuite/src/DataTest.cpp +++ b/Data/testsuite/src/DataTest.cpp @@ -1504,6 +1504,8 @@ void DataTest::testSQLParse() assertTrue (!stmt.isDelete().isSpecified()); assertTrue (!stmt.hasDelete().isSpecified()); +#else + std::cout << "[NOT ENABLED]"; #endif // POCO_DATA_NO_SQL_PARSER } diff --git a/Data/testsuite/src/StatementImpl.cpp b/Data/testsuite/src/StatementImpl.cpp deleted file mode 100644 index 5c19c05a7..000000000 --- a/Data/testsuite/src/StatementImpl.cpp +++ /dev/null @@ -1,82 +0,0 @@ -// -// StatementImpl.cpp -// -// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "StatementImpl.h" - - -namespace Poco { -namespace Data { -namespace Test { - - -StatementImpl::StatementImpl() -{ -} - - -StatementImpl::~StatementImpl() -{ -} - - -void StatementImpl::compileImpl() -{ - // prepare binding - _ptrBinder = new Binder; - _ptrExtractor = new Extractor; - _ptrPrepare = new Preparation(); -} - - -bool StatementImpl::canBind() const -{ - return false; -} - - -void StatementImpl::bindImpl() -{ - // bind - typedef Poco::Data::AbstractBindingVec Bindings; - Bindings& binds = bindings(); - if (binds.empty()) - return; - - Bindings::iterator it = binds.begin(); - Bindings::iterator itEnd = binds.end(); - std::size_t pos = 0; - for (; it != itEnd && (*it)->canBind(); ++it) - { - (*it)->bind(pos); - pos += (*it)->numOfColumnsHandled(); - } -} - - -bool StatementImpl::hasNext() -{ - return false; -} - - -void StatementImpl::next() -{ - Poco::Data::AbstractExtractionVec::iterator it = extractions().begin(); - Poco::Data::AbstractExtractionVec::iterator itEnd = extractions().end(); - std::size_t pos = 0; - for (; it != itEnd; ++it) - { - (*it)->extract(pos); - pos += (*it)->numOfColumnsHandled(); - } -} - - -} } } // namespace Poco::Data::Test diff --git a/Data/testsuite/src/StatementImpl.h b/Data/testsuite/src/StatementImpl.h deleted file mode 100644 index e7df70f89..000000000 --- a/Data/testsuite/src/StatementImpl.h +++ /dev/null @@ -1,91 +0,0 @@ -// -// StatementImpl.h -// -// Definition of the StatementImpl class. -// -// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#ifndef Data_Test_StatementImpl_INCLUDED -#define Data_Test_StatementImpl_INCLUDED - - -#include "Poco/Data/StatementImpl.h" -#include "Poco/SharedPtr.h" -#include "Binder.h" -#include "Extractor.h" -#include "Preparator.h" - - -struct sqlite3; -struct sqlite3_stmt; - - -namespace Poco { -namespace Data { -namespace Test { - - -class StatementImpl: public Poco::Data::StatementImpl - /// A no-op implementation of StatementImpl for testing. -{ -public: - StatementImpl(); - /// Creates the StatementImpl. - - ~StatementImpl(); - /// Destroys the StatementImpl. - -protected: - bool hasNext(); - /// Returns true if a call to next() will return data. - - void next(); - /// Retrieves the next row from the resultset. - /// Will throw, if the resultset is empty. - - bool canBind() const; - /// Returns true if a valid statement is set and we can bind. - - void compileImpl(); - /// Compiles the statement, doesn't bind yet - - void bindImpl(); - /// Binds parameters - - AbstractExtractor& extractor(); - /// Returns the concrete extractor used by the statement. - - AbstractBinder& binder(); - /// Returns the concrete binder used by the statement. - -private: - Poco::SharedPtr _ptrBinder; - Poco::SharedPtr _ptrExtractor; - Poco::SharedPtr _ptrPrepare; -}; - - -// -// inlines -// -inline AbstractExtractor& StatementImpl::extractor() -{ - return *_ptrExtractor; -} - - -inline AbstractBinder& StatementImpl::binder() -{ - return *_ptrBinder; -} - - -} } } // namespace Poco::Data::Test - - -#endif // Data_Test_StatementImpl_INCLUDED diff --git a/Data/testsuite/testsuite.cmake b/Data/testsuite/testsuite.cmake new file mode 100644 index 000000000..5e7334dea --- /dev/null +++ b/Data/testsuite/testsuite.cmake @@ -0,0 +1,33 @@ +# Sources +file(GLOB SRCS_G "src/*.cpp") +LIST(REMOVE_ITEM SRCS_G "${CMAKE_CURRENT_SOURCE_DIR}/src/SQLExecutor.cpp") +POCO_SOURCES_AUTO(TEST_SRCS ${SRCS_G}) + +# Headers +file(GLOB HDRS_G "src/*.h") +POCO_HEADERS_AUTO(TEST_SRCS ${HDRS_G}) + +POCO_SOURCES_AUTO_PLAT(TEST_SRCS WIN + src/WinDriver.cpp +) + +POCO_SOURCES_AUTO_PLAT(TEST_SRCS WINCE + src/WinCEDriver.cpp +) + +add_executable(Data-testrunner ${TEST_SRCS}) +if(ANDROID) + add_test( + NAME Data + WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} + COMMAND ${CMAKE_COMMAND} -DANDROID_NDK=${ANDROID_NDK} -DLIBRARY_DIR=${CMAKE_BINARY_DIR}/lib -DUNITTEST=${CMAKE_BINARY_DIR}/bin/Data-testrunner -DTEST_PARAMETER=-all -P ${CMAKE_SOURCE_DIR}/cmake/ExecuteOnAndroid.cmake + ) +else() + add_test( + NAME Data + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMAND Data-testrunner -ignore ${CMAKE_SOURCE_DIR}/cppignore.lnx -all + ) + set_tests_properties(Data PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) +endif() +target_link_libraries(Data-testrunner PUBLIC Poco::Data CppUnit) diff --git a/Encodings/CMakeLists.txt b/Encodings/CMakeLists.txt index 0a484e2d7..eb72f498c 100644 --- a/Encodings/CMakeLists.txt +++ b/Encodings/CMakeLists.txt @@ -32,7 +32,10 @@ target_include_directories(Encodings POCO_INSTALL(Encodings) POCO_GENERATE_PACKAGE(Encodings) -if(ENABLE_TESTS) +if(ENABLE_SAMPLES) add_subdirectory(samples) +endif() + +if(ENABLE_TESTS) add_subdirectory(testsuite) endif() diff --git a/Foundation/CMakeLists.txt b/Foundation/CMakeLists.txt index c3e28fde8..748b30b8b 100644 --- a/Foundation/CMakeLists.txt +++ b/Foundation/CMakeLists.txt @@ -234,10 +234,13 @@ endif() POCO_INSTALL(Foundation) POCO_GENERATE_PACKAGE(Foundation) +if(ENABLE_SAMPLES) + add_subdirectory(samples) +endif() + if(ENABLE_TESTS) if(NOT BUILD_SHARED_LIBS) set_property(TARGET Foundation PROPERTY POSITION_INDEPENDENT_CODE ON) # This is needed to build TestLibrary.so as shared. endif() - add_subdirectory(samples) add_subdirectory(testsuite) endif() diff --git a/JSON/CMakeLists.txt b/JSON/CMakeLists.txt index f8f478a4b..86d6ed312 100644 --- a/JSON/CMakeLists.txt +++ b/JSON/CMakeLists.txt @@ -41,7 +41,10 @@ endif() POCO_INSTALL(JSON) POCO_GENERATE_PACKAGE(JSON) -if(ENABLE_TESTS) +if(ENABLE_SAMPLES) add_subdirectory(samples) +endif() + +if(ENABLE_TESTS) add_subdirectory(testsuite) endif() diff --git a/MongoDB/CMakeLists.txt b/MongoDB/CMakeLists.txt index 2d4cb08a8..771567194 100644 --- a/MongoDB/CMakeLists.txt +++ b/MongoDB/CMakeLists.txt @@ -32,8 +32,11 @@ target_include_directories(MongoDB POCO_INSTALL(MongoDB) POCO_GENERATE_PACKAGE(MongoDB) -if(ENABLE_TESTS) +if(ENABLE_SAMPLES) add_subdirectory(samples) +endif() + +if(ENABLE_TESTS) add_subdirectory(testsuite) endif() diff --git a/Net/CMakeLists.txt b/Net/CMakeLists.txt index 237df1c3b..04799325c 100644 --- a/Net/CMakeLists.txt +++ b/Net/CMakeLists.txt @@ -46,8 +46,11 @@ target_include_directories(Net POCO_INSTALL(Net) POCO_GENERATE_PACKAGE(Net) -if(ENABLE_TESTS) +if(ENABLE_SAMPLES) add_subdirectory(samples) +endif() + +if(ENABLE_TESTS) add_subdirectory(testsuite) endif() diff --git a/NetSSL_OpenSSL/CMakeLists.txt b/NetSSL_OpenSSL/CMakeLists.txt index d5e61b88c..eb7f56227 100644 --- a/NetSSL_OpenSSL/CMakeLists.txt +++ b/NetSSL_OpenSSL/CMakeLists.txt @@ -36,8 +36,11 @@ endif() POCO_INSTALL(NetSSL) POCO_GENERATE_PACKAGE(NetSSL) -if(ENABLE_TESTS) +if(ENABLE_SAMPLES) add_subdirectory(samples) +endif() + +if(ENABLE_TESTS) add_subdirectory(testsuite) endif() diff --git a/NetSSL_Win/CMakeLists.txt b/NetSSL_Win/CMakeLists.txt index c6325eb4f..c0e17689d 100644 --- a/NetSSL_Win/CMakeLists.txt +++ b/NetSSL_Win/CMakeLists.txt @@ -32,9 +32,12 @@ target_include_directories(NetSSLWin POCO_INSTALL(NetSSLWin) POCO_GENERATE_PACKAGE(NetSSLWin) -if(ENABLE_TESTS) +if(ENABLE_SAMPLES) #TODO: Looks like the samples use crypto somehow? #add_subdirectory(samples) +endif() + +if(ENABLE_TESTS) #add_subdirectory(testsuite) endif() diff --git a/PDF/CMakeLists.txt b/PDF/CMakeLists.txt index 2c565ad17..f0c16350e 100644 --- a/PDF/CMakeLists.txt +++ b/PDF/CMakeLists.txt @@ -146,8 +146,11 @@ target_include_directories(PDF POCO_INSTALL(PDF) POCO_GENERATE_PACKAGE(PDF) -if(ENABLE_TESTS) +if(ENABLE_SAMPLES) add_subdirectory(samples) +endif() + +if(ENABLE_TESTS) add_subdirectory(testsuite) endif() diff --git a/Prometheus/CMakeLists.txt b/Prometheus/CMakeLists.txt index f9186f579..f10a0ce46 100644 --- a/Prometheus/CMakeLists.txt +++ b/Prometheus/CMakeLists.txt @@ -32,8 +32,11 @@ target_include_directories(Prometheus POCO_INSTALL(Prometheus) POCO_GENERATE_PACKAGE(Prometheus) -if(ENABLE_TESTS) +if(ENABLE_SAMPLES) add_subdirectory(samples) +endif() + +if(ENABLE_TESTS) add_subdirectory(testsuite) endif() diff --git a/Redis/CMakeLists.txt b/Redis/CMakeLists.txt index 875f49ab9..da8bd9dba 100644 --- a/Redis/CMakeLists.txt +++ b/Redis/CMakeLists.txt @@ -34,6 +34,5 @@ POCO_GENERATE_PACKAGE(Redis) if(ENABLE_TESTS) add_subdirectory(testsuite) -# add_subdirectory(samples) endif() diff --git a/SevenZip/CMakeLists.txt b/SevenZip/CMakeLists.txt index 118ded71b..1babc0ef7 100644 --- a/SevenZip/CMakeLists.txt +++ b/SevenZip/CMakeLists.txt @@ -75,7 +75,5 @@ POCO_GENERATE_PACKAGE(SevenZip) if(ENABLE_TESTS) add_subdirectory(samples) - # TODO: Add tests - #add_subdirectory(testsuite) endif() diff --git a/Util/CMakeLists.txt b/Util/CMakeLists.txt index 5f3f7c1fd..f206ac040 100644 --- a/Util/CMakeLists.txt +++ b/Util/CMakeLists.txt @@ -49,7 +49,10 @@ target_include_directories(Util POCO_INSTALL(Util) POCO_GENERATE_PACKAGE(Util) -if(ENABLE_TESTS) +if(ENABLE_SAMPLES) add_subdirectory(samples) +endif() + +if(ENABLE_TESTS) add_subdirectory(testsuite) endif() diff --git a/XML/CMakeLists.txt b/XML/CMakeLists.txt index 123657a0c..a51d906c3 100644 --- a/XML/CMakeLists.txt +++ b/XML/CMakeLists.txt @@ -65,8 +65,11 @@ endif() POCO_INSTALL(XML) POCO_GENERATE_PACKAGE(XML) -if(ENABLE_TESTS) +if(ENABLE_SAMPLES) add_subdirectory(samples) +endif() + +if(ENABLE_TESTS) add_subdirectory(testsuite) endif() diff --git a/Zip/CMakeLists.txt b/Zip/CMakeLists.txt index abe577653..796898cf6 100644 --- a/Zip/CMakeLists.txt +++ b/Zip/CMakeLists.txt @@ -32,8 +32,11 @@ target_include_directories(Zip POCO_INSTALL(Zip) POCO_GENERATE_PACKAGE(Zip) -if(ENABLE_TESTS) +if(ENABLE_SAMPLES) add_subdirectory(samples) +endif() + +if(ENABLE_TESTS) add_subdirectory(testsuite) endif() diff --git a/cmake/PocoMacros.cmake b/cmake/PocoMacros.cmake index e37473e2d..fc2891033 100644 --- a/cmake/PocoMacros.cmake +++ b/cmake/PocoMacros.cmake @@ -53,155 +53,155 @@ endif(WIN32) # Macros for Source file management # # POCO_SOURCES_PLAT - Adds a list of files to the sources of a components -# Usage: POCO_SOURCES_PLAT( out name platform sources) -# INPUT: -# out the variable the sources are added to -# name: the name of the components -# platform: the platform this sources are for (ON = All, OFF = None, WIN32, UNIX ...) -# sources: a list of files to add to ${out} -# Example: POCO_SOURCES_PLAT( SRCS Foundation ON src/Foundation.cpp ) +# Usage: POCO_SOURCES_PLAT( out name platform sources) +# INPUT: +# out the variable the sources are added to +# name: the name of the components +# platform: the platform this sources are for (ON = All, OFF = None, WIN32, UNIX ...) +# sources: a list of files to add to ${out} +# Example: POCO_SOURCES_PLAT( SRCS Foundation ON src/Foundation.cpp ) # # POCO_SOURCES - Like POCO_SOURCES_PLAT with platform = ON (Built on all platforms) -# Usage: POCO_SOURCES( out name sources) -# Example: POCO_SOURCES( SRCS Foundation src/Foundation.cpp) +# Usage: POCO_SOURCES( out name sources) +# Example: POCO_SOURCES( SRCS Foundation src/Foundation.cpp) # # POCO_SOURCES_AUTO - Like POCO_SOURCES but the name is read from the file header // Package: X -# Usage: POCO_SOURCES_AUTO( out sources) -# Example: POCO_SOURCES_AUTO( SRCS src/Foundation.cpp) +# Usage: POCO_SOURCES_AUTO( out sources) +# Example: POCO_SOURCES_AUTO( SRCS src/Foundation.cpp) # # POCO_SOURCES_AUTO_PLAT - Like POCO_SOURCES_PLAT but the name is read from the file header // Package: X -# Usage: POCO_SOURCES_AUTO_PLAT(out platform sources) -# Example: POCO_SOURCES_AUTO_PLAT( SRCS WIN32 src/Foundation.cpp) +# Usage: POCO_SOURCES_AUTO_PLAT(out platform sources) +# Example: POCO_SOURCES_AUTO_PLAT( SRCS WIN32 src/Foundation.cpp) # # # POCO_HEADERS - Adds a list of files to the headers of a components -# Usage: POCO_HEADERS( out name headers) -# INPUT: -# out the variable the headers are added to -# name: the name of the components -# headers: a list of files to add to HDRSt -# Example: POCO_HEADERS( HDRS Foundation include/Poco/Foundation.h ) +# Usage: POCO_HEADERS( out name headers) +# INPUT: +# out the variable the headers are added to +# name: the name of the components +# headers: a list of files to add to HDRSt +# Example: POCO_HEADERS( HDRS Foundation include/Poco/Foundation.h ) # # POCO_HEADERS_AUTO - Like POCO_HEADERS but the name is read from the file header // Package: X -# Usage: POCO_HEADERS_AUTO( out headers) -# Example: POCO_HEADERS_AUTO( HDRS src/Foundation.cpp) +# Usage: POCO_HEADERS_AUTO( out headers) +# Example: POCO_HEADERS_AUTO( HDRS src/Foundation.cpp) # # # POCO_MESSAGES - Adds a list of files to the messages of a components -# and adds the generated headers to the header list of the component. -# On platforms other then Windows this does nothing -# Usage: POCO_MESSAGES( out name messages) -# INPUT: -# out the variable the message and the resulting headers are added to -# name: the name of the components -# messages: a list of files to add to MSGS -# Example: POCO_MESSAGES( HDRS Foundation include/Poco/Foundation.mc ) +# and adds the generated headers to the header list of the component. +# On platforms other then Windows this does nothing +# Usage: POCO_MESSAGES( out name messages) +# INPUT: +# out the variable the message and the resulting headers are added to +# name: the name of the components +# messages: a list of files to add to MSGS +# Example: POCO_MESSAGES( HDRS Foundation include/Poco/Foundation.mc ) # macro(POCO_SOURCES_PLAT out name platform) - source_group("${name}\\Source Files" FILES ${ARGN}) - list(APPEND ${out} ${ARGN}) - if(NOT(${platform})) - set_source_files_properties(${ARGN} PROPERTIES HEADER_FILE_ONLY TRUE) - endif() + source_group("${name}\\Source Files" FILES ${ARGN}) + list(APPEND ${out} ${ARGN}) + if(NOT(${platform})) + set_source_files_properties(${ARGN} PROPERTIES HEADER_FILE_ONLY TRUE) + endif() endmacro() macro(POCO_SOURCES out name) - POCO_SOURCES_PLAT( ${out} ${name} ON ${ARGN}) + POCO_SOURCES_PLAT( ${out} ${name} ON ${ARGN}) endmacro() macro(POCO_SOURCES_AUTO out) - POCO_SOURCES_AUTO_PLAT( ${out} ON ${ARGN}) + POCO_SOURCES_AUTO_PLAT( ${out} ON ${ARGN}) endmacro() macro(POCO_SOURCES_AUTO_PLAT out platform) - foreach(f ${ARGN}) - get_filename_component(fname ${f} NAME) + foreach(f ${ARGN}) + get_filename_component(fname ${f} NAME) - # Read the package name from the source file - file(STRINGS ${f} package REGEX "// Package: (.*)") - if(package) - string(REGEX REPLACE ".*: (.*)" "\\1" name ${package}) + # Read the package name from the source file + file(STRINGS ${f} package REGEX "// Package: (.*)") + if(package) + string(REGEX REPLACE ".*: (.*)" "\\1" name ${package}) - # Files of the Form X_UNIX.cpp are treated as headers - if(${fname} MATCHES ".*_.*\\..*") - #message(STATUS "Platform: ${name} ${f} ${platform}") - POCO_SOURCES_PLAT( ${out} ${name} OFF ${f}) - else() - #message(STATUS "Source: ${name} ${f} ${platform}") - POCO_SOURCES_PLAT( ${out} ${name} ${platform} ${f}) - endif() - else() - #message(STATUS "Source: Unknown ${f} ${platform}") - POCO_SOURCES_PLAT( ${out} Unknown ${platform} ${f}) - endif() - endforeach() + # Files of the Form X_UNIX.cpp are treated as headers + if(${fname} MATCHES ".*_.*\\..*") + #message(STATUS "Platform: ${name} ${f} ${platform}") + POCO_SOURCES_PLAT( ${out} ${name} OFF ${f}) + else() + #message(STATUS "Source: ${name} ${f} ${platform}") + POCO_SOURCES_PLAT( ${out} ${name} ${platform} ${f}) + endif() + else() + #message(STATUS "Source: Unknown ${f} ${platform}") + POCO_SOURCES_PLAT( ${out} Unknown ${platform} ${f}) + endif() + endforeach() endmacro() macro(POCO_HEADERS_AUTO out) - foreach(f ${ARGN}) - get_filename_component(fname ${f} NAME) + foreach(f ${ARGN}) + get_filename_component(fname ${f} NAME) - # Read the package name from the source file - file(STRINGS ${f} package REGEX "// Package: (.*)") - if(package) - string(REGEX REPLACE ".*: (.*)" "\\1" name ${package}) - #message(STATUS "Header: ${name} ${f}") - POCO_HEADERS( ${out} ${name} ${f}) - else() - #message(STATUS "Header: Unknown ${f}") - POCO_HEADERS( ${out} Unknown ${f}) - endif() - endforeach() + # Read the package name from the source file + file(STRINGS ${f} package REGEX "// Package: (.*)") + if(package) + string(REGEX REPLACE ".*: (.*)" "\\1" name ${package}) + #message(STATUS "Header: ${name} ${f}") + POCO_HEADERS( ${out} ${name} ${f}) + else() + #message(STATUS "Header: Unknown ${f}") + POCO_HEADERS( ${out} Unknown ${f}) + endif() + endforeach() endmacro() macro(POCO_HEADERS out name) - set_source_files_properties(${ARGN} PROPERTIES HEADER_FILE_ONLY TRUE) - source_group("${name}\\Header Files" FILES ${ARGN}) - list(APPEND ${out} ${ARGN}) + set_source_files_properties(${ARGN} PROPERTIES HEADER_FILE_ONLY TRUE) + source_group("${name}\\Header Files" FILES ${ARGN}) + list(APPEND ${out} ${ARGN}) endmacro() macro(POCO_MESSAGES out name) - if(WIN32) - foreach(msg ${ARGN}) - get_filename_component(msg_name ${msg} NAME) - get_filename_component(msg_path ${msg} ABSOLUTE) - string(REPLACE ".mc" ".h" hdr ${msg_name}) - set_source_files_properties(${hdr} PROPERTIES GENERATED TRUE) - add_custom_command( - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${hdr} - DEPENDS ${msg} - COMMAND ${CMAKE_MC_COMPILER} - ARGS - -h ${CMAKE_CURRENT_BINARY_DIR} - -r ${CMAKE_CURRENT_BINARY_DIR} - ${msg_path} - VERBATIM # recommended: p260 - ) + if(WIN32) + foreach(msg ${ARGN}) + get_filename_component(msg_name ${msg} NAME) + get_filename_component(msg_path ${msg} ABSOLUTE) + string(REPLACE ".mc" ".h" hdr ${msg_name}) + set_source_files_properties(${hdr} PROPERTIES GENERATED TRUE) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${hdr} + DEPENDS ${msg} + COMMAND ${CMAKE_MC_COMPILER} + ARGS + -h ${CMAKE_CURRENT_BINARY_DIR} + -r ${CMAKE_CURRENT_BINARY_DIR} + ${msg_path} + VERBATIM # recommended: p260 + ) - # Add the generated file to the include directory - include_directories(${CMAKE_CURRENT_BINARY_DIR}) + # Add the generated file to the include directory + include_directories(${CMAKE_CURRENT_BINARY_DIR}) - # Add the generated headers to POCO_HEADERS of the component - POCO_HEADERS( ${out} ${name} ${CMAKE_CURRENT_BINARY_DIR}/${hdr}) + # Add the generated headers to POCO_HEADERS of the component + POCO_HEADERS( ${out} ${name} ${CMAKE_CURRENT_BINARY_DIR}/${hdr}) - endforeach() + endforeach() - set_source_files_properties(${ARGN} PROPERTIES HEADER_FILE_ONLY TRUE) - source_group("${name}\\Message Files" FILES ${ARGN}) - list(APPEND ${out} ${ARGN}) + set_source_files_properties(${ARGN} PROPERTIES HEADER_FILE_ONLY TRUE) + source_group("${name}\\Message Files" FILES ${ARGN}) + list(APPEND ${out} ${ARGN}) - endif(WIN32) + endif(WIN32) endmacro() #=============================================================================== # Macros for Package generation # # POCO_GENERATE_PACKAGE - Generates *Config.cmake -# Usage: POCO_GENERATE_PACKAGE(target_name) -# INPUT: -# target_name the name of the target. e.g. Foundation for PocoFoundation -# Example: POCO_GENERATE_PACKAGE(Foundation) +# Usage: POCO_GENERATE_PACKAGE(target_name) +# INPUT: +# target_name the name of the target. e.g. Foundation for PocoFoundation +# Example: POCO_GENERATE_PACKAGE(Foundation) macro(POCO_GENERATE_PACKAGE target_name) include(CMakePackageConfigHelpers) write_basic_package_version_file( @@ -214,18 +214,25 @@ if("${CMAKE_VERSION}" VERSION_LESS "3.0.0") export(TARGETS "${target_name}" APPEND FILE "${CMAKE_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}${target_name}Targets.cmake" NAMESPACE "${PROJECT_NAME}::" - ) - endif() + ) + endif() else() export(EXPORT "${target_name}Targets" FILE "${CMAKE_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}${target_name}Targets.cmake" NAMESPACE "${PROJECT_NAME}::" - ) + ) endif() -configure_file("cmake/Poco${target_name}Config.cmake" +if("${target_name}" STREQUAL "CppUnit") + configure_file("cmake/${target_name}Config.cmake" "${CMAKE_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}${target_name}Config.cmake" @ONLY -) + ) +else() + configure_file("cmake/Poco${target_name}Config.cmake" + "${CMAKE_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}${target_name}Config.cmake" + @ONLY + ) +endif() # Set config script install location in a location that find_package() will # look for, which is different on MS Windows than for UNIX @@ -237,18 +244,18 @@ else() endif() install( - EXPORT "${target_name}Targets" - FILE "${PROJECT_NAME}${target_name}Targets.cmake" - NAMESPACE "${PROJECT_NAME}::" - DESTINATION "${PocoConfigPackageLocation}" + EXPORT "${target_name}Targets" + FILE "${PROJECT_NAME}${target_name}Targets.cmake" + NAMESPACE "${PROJECT_NAME}::" + DESTINATION "${PocoConfigPackageLocation}" ) install( - FILES - "${CMAKE_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}${target_name}Config.cmake" - "${CMAKE_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}${target_name}ConfigVersion.cmake" - DESTINATION "${PocoConfigPackageLocation}" - COMPONENT Devel + FILES + "${CMAKE_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}${target_name}Config.cmake" + "${CMAKE_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}${target_name}ConfigVersion.cmake" + DESTINATION "${PocoConfigPackageLocation}" + COMPONENT Devel ) endmacro() @@ -257,25 +264,25 @@ endmacro() # Macros for simplified installation # # POCO_INSTALL - Install the given target -# Usage: POCO_INSTALL(target_name) -# INPUT: -# target_name the name of the target. e.g. Foundation for PocoFoundation -# Example: POCO_INSTALL(Foundation) +# Usage: POCO_INSTALL(target_name) +# INPUT: +# target_name the name of the target. e.g. Foundation for PocoFoundation +# Example: POCO_INSTALL(Foundation) macro(POCO_INSTALL target_name) install( - DIRECTORY include/Poco - DESTINATION include - COMPONENT Devel - PATTERN ".svn" EXCLUDE + DIRECTORY include/Poco + DESTINATION include + COMPONENT Devel + PATTERN ".svn" EXCLUDE ) install( - TARGETS "${target_name}" EXPORT "${target_name}Targets" - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} - INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + TARGETS "${target_name}" EXPORT "${target_name}Targets" + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) if(MSVC) @@ -286,20 +293,20 @@ endif() endmacro() # POCO_INSTALL_PDB - Install the given target's companion pdb file (if present) -# Usage: POCO_INSTALL_PDB(target_name) -# INPUT: -# target_name the name of the target. e.g. Foundation for PocoFoundation -# Example: POCO_INSTALL_PDB(Foundation) +# Usage: POCO_INSTALL_PDB(target_name) +# INPUT: +# target_name the name of the target. e.g. Foundation for PocoFoundation +# Example: POCO_INSTALL_PDB(Foundation) # -# This is an internal macro meant only to be used by POCO_INSTALL. +# This is an internal macro meant only to be used by POCO_INSTALL. macro(POCO_INSTALL_PDB target_name) - get_property(type TARGET ${target_name} PROPERTY TYPE) - if("${type}" STREQUAL "SHARED_LIBRARY" OR "${type}" STREQUAL "EXECUTABLE") - install( - FILES $ - DESTINATION ${CMAKE_INSTALL_BINDIR} - COMPONENT Devel - OPTIONAL - ) + get_property(type TARGET ${target_name} PROPERTY TYPE) + if("${type}" STREQUAL "SHARED_LIBRARY" OR "${type}" STREQUAL "EXECUTABLE") + install( + FILES $ + DESTINATION ${CMAKE_INSTALL_BINDIR} + COMPONENT Devel + OPTIONAL + ) endif() endmacro() diff --git a/doc/00200-GettingStarted.page b/doc/00200-GettingStarted.page index cefe4e05f..7732b8743 100644 --- a/doc/00200-GettingStarted.page +++ b/doc/00200-GettingStarted.page @@ -389,6 +389,7 @@ Here an overview of POCO build options: * ENABLE_PAGECOMPILER_FILE2PAGE Set to OFF|ON (default is ON) to build File2Page * ENABLE_POCODOC Set to OFF|ON (default is OFF) to build Poco Documentation Generator * ENABLE_TESTS Set to OFF|ON (default is OFF) to build Unit tests + * ENABLE_SAMPLES Set to OFF|ON (default is OFF) to build samples * ENABLE_LONG_RUNNING_TESTS Set to OFF|ON (default is ON) to use long running test * POCO_UNBUNDLED Set to OFF|ON (default is OFF) to control linking dependencies as external diff --git a/runLibTests.sh b/runLibTests.sh index 4f4143b9b..fb761eb5f 100755 --- a/runLibTests.sh +++ b/runLibTests.sh @@ -1,20 +1,32 @@ #!/bin/bash # -# Script to rebuild a library and dependencies +# Script to rebuild libraries and dependencies # (with or without a sanitizer) and run the tests. -# Currently works only for top-level libs -# dependent on Foundation only. # -# Usage: ./runLibTests.sh library [address | undefined | thread ] +# The use case of the script is mainly for development purposes - +# to clean and rebuild a single library, with all of its dependencies, +# and run the tests. +# +# Usage: ./runLibTests.sh library [address | undefined | thread ] +# +# Example: ./runLibTests.sh Data/SQLite address +# (distcleans, rebuilds and runs tests for Data/SQLite with address sanitizer) # -library=$1 -if [ -z "${library}" ]; then +# g++ does not like empty quoted arguments, but +# the shellcheck wants them quoted to remain quiet +# shellcheck disable=SC2086 + +path=$1 +if [ -z "${path}" ]; then echo "Library not specified" - echo "Usage: $0 library [address | undefined | thread ]" + echo "Usage: $0 path [address | undefined | thread ]" exit 1 fi +libraries= +IFS='/' read -r -a libraries <<< "$path" + self="${BASH_SOURCE[0]}" if [ -d "$self" ] ; then @@ -27,30 +39,41 @@ fi . "$basedir"/poco_env.bash flag=$2 - -make distclean -C CppUnit -make distclean -C Foundation -if [[ "$library" != "Foundation" ]]; then - make distclean -C "$library" -fi -make distclean -C "$library"/testsuite - +flags= if [ -n "${flag}" ]; then - make -s -j4 -C "$POCO_BASE"/CppUnit SANITIZEFLAGS+=-fsanitize="$flag" - make -s -j4 -C "$POCO_BASE"/Foundation SANITIZEFLAGS+=-fsanitize="$flag" - if [[ "$library" != "Foundation" ]]; then - make -s -j4 -C "$POCO_BASE"/"$library" SANITIZEFLAGS+=-fsanitize="$flag" - fi - make -s -j4 -C "$POCO_BASE"/"$library"/testsuite SANITIZEFLAGS+=-fsanitize="$flag" -else - make -s -j4 -C "$POCO_BASE"/CppUnit - make -s -j4 -C "$POCO_BASE"/Foundation - if [[ "$library" != "Foundation" ]]; then - make -s -j4 -C "$POCO_BASE"/"$library" - fi - make -s -j4 -C "$POCO_BASE"/"$library"/testsuite + flags=SANITIZEFLAGS+=-fsanitize="$flag" fi -cd "$basedir"/"$library"/testsuite/bin/"$OSNAME"/"$OSARCH"/ || exit -./testrunner -all -./testrunnerd -all +path="$basedir"/"${libraries[0]}" + +make distclean -C "$basedir"/Foundation +make distclean -C "$basedir"/CppUnit + +make -s -j4 -C "$basedir"/Foundation $flags +make -s -j4 -C "$basedir"/CppUnit $flags + +# Foundation requested, build/run tests and exit +if [[ "$path" == "$basedir"/"Foundation" ]]; then + cd "$path/testsuite/" || exit + make -s -j4 -C ./ $flags + cd "bin/$OSNAME/$OSARCH/" || exit + ./testrunner -all + ./testrunnerd -all + echo "$path $flags done." + exit 0 +fi + +for library in "${libraries[@]}" +do + cd "$library" || exit + make distclean + make -s -j4 -C ./ $flags + cd testsuite || exit + make distclean + make -s -j4 -C ./ $flags + cd bin/"$OSNAME"/"$OSARCH"/ || exit + ./testrunner -all + ./testrunnerd -all + echo "$1 $flags done." + cd ../../../../ || exit +done From 8adef65e52942817538c83c70985d2eeddaee3b1 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Sat, 4 Nov 2023 23:18:15 +0100 Subject: [PATCH 177/395] fix(build): CppUnit depends on Foundation, swap build order --- components | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components b/components index 11773ba42..c8f4d61ac 100644 --- a/components +++ b/components @@ -1,5 +1,5 @@ -CppUnit Foundation +CppUnit Encodings XML JSON From b4144dea463e071b87f357ebe71bc48e5b39c349 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Sat, 4 Nov 2023 23:50:21 +0100 Subject: [PATCH 178/395] fix(build): Makefile dependency --- Makefile | 2 +- build/script/shlibln | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 8bfd7b191..a90deb523 100644 --- a/Makefile +++ b/Makefile @@ -81,7 +81,7 @@ all: libexecs tests samples INSTALLDIR = $(DESTDIR)$(POCO_PREFIX) COMPONENTS = Foundation Encodings XML JSON Util Net Crypto NetSSL_OpenSSL Data Data/SQLite Data/ODBC Data/MySQL Data/PostgreSQL ActiveRecord ActiveRecord/Compiler Zip PageCompiler PageCompiler/File2Page JWT CppParser PDF MongoDB Redis Prometheus -cppunit: +cppunit: Foundation-libexec $(MAKE) -C $(POCO_BASE)/CppUnit CppUnit-clean: diff --git a/build/script/shlibln b/build/script/shlibln index 2c9be40c7..4f3745a04 100755 --- a/build/script/shlibln +++ b/build/script/shlibln @@ -13,11 +13,11 @@ fi source="$1" target="$2" -sourcedir=`dirname "$source"` -targetdir=`dirname "$target"` +sourcedir=$(dirname "$source") +targetdir=$(dirname "$target") if [ "$sourcedir" = "$targetdir" ] ; then - source=`basename $source` + source=$(basename "$source") fi From 2f6dc18c0ba1bf45a18be4202c831075c5ce213b Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Sun, 5 Nov 2023 22:11:36 +0100 Subject: [PATCH 179/395] enh(ProGen): consolidate/unify pdb names (not consistent) #4207 --- ProGen/progen.properties | 8 ++++---- .../vs170/Win32/executable/debug_shared-ARM64.template | 3 ++- .../vs170/Win32/executable/debug_shared-Win32.template | 3 ++- .../vs170/Win32/executable/debug_shared-x64.template | 3 ++- .../vs170/Win32/executable/debug_static_md-ARM64.template | 3 ++- .../vs170/Win32/executable/debug_static_md-Win32.template | 3 ++- .../vs170/Win32/executable/debug_static_md-x64.template | 3 ++- .../vs170/Win32/executable/debug_static_mt-ARM64.template | 3 ++- .../vs170/Win32/executable/debug_static_mt-Win32.template | 3 ++- .../vs170/Win32/executable/debug_static_mt-x64.template | 3 ++- .../vs170/Win32/executable/release_shared-ARM64.template | 1 + .../vs170/Win32/executable/release_shared-Win32.template | 1 + .../vs170/Win32/executable/release_shared-x64.template | 1 + .../Win32/executable/release_static_md-ARM64.template | 1 + .../Win32/executable/release_static_md-Win32.template | 1 + .../vs170/Win32/executable/release_static_md-x64.template | 1 + .../Win32/executable/release_static_mt-ARM64.template | 1 + .../Win32/executable/release_static_mt-Win32.template | 1 + .../vs170/Win32/executable/release_static_mt-x64.template | 1 + .../vs170/Win32/library/debug_shared-ARM64.template | 3 ++- .../vs170/Win32/library/debug_shared-Win32.template | 3 ++- .../vs170/Win32/library/debug_shared-x64.template | 3 ++- .../vs170/Win32/library/debug_static_md-ARM64.template | 1 + .../vs170/Win32/library/debug_static_md-Win32.template | 1 + .../vs170/Win32/library/debug_static_md-x64.template | 1 + .../vs170/Win32/library/debug_static_mt-ARM64.template | 1 + .../vs170/Win32/library/debug_static_mt-Win32.template | 1 + .../vs170/Win32/library/debug_static_mt-x64.template | 1 + .../vs170/Win32/library/release_shared-ARM64.template | 1 + .../vs170/Win32/library/release_shared-Win32.template | 1 + .../vs170/Win32/library/release_shared-x64.template | 1 + .../vs170/Win32/library/release_static_md-ARM64.template | 1 + .../vs170/Win32/library/release_static_md-Win32.template | 1 + .../vs170/Win32/library/release_static_md-x64.template | 1 + .../vs170/Win32/library/release_static_mt-ARM64.template | 1 + .../vs170/Win32/library/release_static_mt-Win32.template | 1 + .../vs170/Win32/library/release_static_mt-x64.template | 1 + .../vs170/Win32/plugin/debug_shared-ARM64.template | 3 ++- .../vs170/Win32/plugin/debug_shared-Win32.template | 3 ++- .../vs170/Win32/plugin/debug_shared-x64.template | 3 ++- .../vs170/Win32/plugin/release_shared-ARM64.template | 1 + .../vs170/Win32/plugin/release_shared-Win32.template | 1 + .../vs170/Win32/plugin/release_shared-x64.template | 1 + .../vs170/Win32/testsuite/debug_shared-ARM64.template | 3 ++- .../vs170/Win32/testsuite/debug_shared-Win32.template | 3 ++- .../vs170/Win32/testsuite/debug_shared-x64.template | 3 ++- .../vs170/Win32/testsuite/debug_static_md-ARM64.template | 3 ++- .../vs170/Win32/testsuite/debug_static_md-Win32.template | 3 ++- .../vs170/Win32/testsuite/debug_static_md-x64.template | 3 ++- .../vs170/Win32/testsuite/debug_static_mt-ARM64.template | 3 ++- .../vs170/Win32/testsuite/debug_static_mt-Win32.template | 3 ++- .../vs170/Win32/testsuite/debug_static_mt-x64.template | 3 ++- .../vs170/Win32/testsuite/release_shared-ARM64.template | 1 + .../vs170/Win32/testsuite/release_shared-Win32.template | 1 + .../vs170/Win32/testsuite/release_shared-x64.template | 1 + .../Win32/testsuite/release_static_md-ARM64.template | 1 + .../Win32/testsuite/release_static_md-Win32.template | 1 + .../vs170/Win32/testsuite/release_static_md-x64.template | 1 + .../Win32/testsuite/release_static_mt-ARM64.template | 1 + .../Win32/testsuite/release_static_mt-Win32.template | 1 + .../vs170/Win32/testsuite/release_static_mt-x64.template | 1 + 61 files changed, 88 insertions(+), 28 deletions(-) diff --git a/ProGen/progen.properties b/ProGen/progen.properties index ae32b17a8..f2420ee6a 100644 --- a/ProGen/progen.properties +++ b/ProGen/progen.properties @@ -7,25 +7,25 @@ progen.libsuffix.release_static_md = md.lib progen.libsuffix.release_static_mt = mt.lib progen.project.guidFromName.namespaceUUID = F4193868-E4EB-4090-9A01-344E7233004B -progen.postprocess.upgrade2008to2015.tool = ${system.env.VS160COMNTOOLS}\\..\\IDE\\DevEnv.exe +progen.postprocess.upgrade2008to2015.tool = ${system.env.VS170COMNTOOLS}\\..\\IDE\\DevEnv.exe progen.postprocess.upgrade2008to2015.args = %;/Upgrade progen.postprocess.upgrade2008to2015.deleteOriginalFile = true progen.postprocess.upgrade2008to2015.deleteFiles = Backup;_UpgradeReport_Files;UpgradeLog.XML;UpgradeLog.htm progen.postprocess.upgrade2008to2015.fix2015ProjectFile = true -progen.postprocess.upgrade2008to2017.tool = ${system.env.VS160COMNTOOLS}\\..\\IDE\\DevEnv.exe +progen.postprocess.upgrade2008to2017.tool = ${system.env.VS170COMNTOOLS}\\..\\IDE\\DevEnv.exe progen.postprocess.upgrade2008to2017.args = %;/Upgrade progen.postprocess.upgrade2008to2017.deleteOriginalFile = true progen.postprocess.upgrade2008to2017.deleteFiles = Backup;_UpgradeReport_Files;UpgradeLog.XML;UpgradeLog.htm progen.postprocess.upgrade2008to2017.fix2017ProjectFile = true -progen.postprocess.upgrade2008to2019.tool = ${system.env.VS160COMNTOOLS}\\..\\IDE\\DevEnv.exe +progen.postprocess.upgrade2008to2019.tool = ${system.env.VS170COMNTOOLS}\\..\\IDE\\DevEnv.exe progen.postprocess.upgrade2008to2019.args = %;/Upgrade progen.postprocess.upgrade2008to2019.deleteOriginalFile = true progen.postprocess.upgrade2008to2019.deleteFiles = Backup;_UpgradeReport_Files;UpgradeLog.XML;UpgradeLog.htm progen.postprocess.upgrade2008to2019.fix2019ProjectFile = true -progen.postprocess.upgrade2008to2022.tool = ${system.env.VS160COMNTOOLS}\\..\\IDE\\DevEnv.exe +progen.postprocess.upgrade2008to2022.tool = ${system.env.VS170COMNTOOLS}\\..\\IDE\\DevEnv.exe progen.postprocess.upgrade2008to2022.args = %;/Upgrade progen.postprocess.upgrade2008to2022.deleteOriginalFile = true progen.postprocess.upgrade2008to2022.deleteFiles = Backup;_UpgradeReport_Files;UpgradeLog.XML;UpgradeLog.htm diff --git a/ProGen/templates/vs170/Win32/executable/debug_shared-ARM64.template b/ProGen/templates/vs170/Win32/executable/debug_shared-ARM64.template index 9fc768e66..0d017f174 100644 --- a/ProGen/templates/vs170/Win32/executable/debug_shared-ARM64.template +++ b/ProGen/templates/vs170/Win32/executable/debug_shared-ARM64.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +58,7 @@ AdditionalLibraryDirectories="${project.pocobase}\libA64;${configuration.linker.libraries}" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="binA64\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="18" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs170/Win32/executable/debug_shared-Win32.template b/ProGen/templates/vs170/Win32/executable/debug_shared-Win32.template index 801cc8067..1e53f6525 100644 --- a/ProGen/templates/vs170/Win32/executable/debug_shared-Win32.template +++ b/ProGen/templates/vs170/Win32/executable/debug_shared-Win32.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +58,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib;${configuration.linker.libraries}" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="1" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs170/Win32/executable/debug_shared-x64.template b/ProGen/templates/vs170/Win32/executable/debug_shared-x64.template index 44f8b2f54..6a60609f9 100644 --- a/ProGen/templates/vs170/Win32/executable/debug_shared-x64.template +++ b/ProGen/templates/vs170/Win32/executable/debug_shared-x64.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +58,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib64;${configuration.linker.libraries}" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin64\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="17" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs170/Win32/executable/debug_static_md-ARM64.template b/ProGen/templates/vs170/Win32/executable/debug_static_md-ARM64.template index bf6a0f932..50ec13b97 100644 --- a/ProGen/templates/vs170/Win32/executable/debug_static_md-ARM64.template +++ b/ProGen/templates/vs170/Win32/executable/debug_static_md-ARM64.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +58,7 @@ AdditionalLibraryDirectories="${project.pocobase}\libA64;${configuration.linker.libraries}" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="binA64\static_md\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="18" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs170/Win32/executable/debug_static_md-Win32.template b/ProGen/templates/vs170/Win32/executable/debug_static_md-Win32.template index 2654e35af..2c81701b8 100644 --- a/ProGen/templates/vs170/Win32/executable/debug_static_md-Win32.template +++ b/ProGen/templates/vs170/Win32/executable/debug_static_md-Win32.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +58,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib;${configuration.linker.libraries}" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin\static_md\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="1" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs170/Win32/executable/debug_static_md-x64.template b/ProGen/templates/vs170/Win32/executable/debug_static_md-x64.template index 644ff2a42..540787176 100644 --- a/ProGen/templates/vs170/Win32/executable/debug_static_md-x64.template +++ b/ProGen/templates/vs170/Win32/executable/debug_static_md-x64.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +58,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib64;${configuration.linker.libraries}" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin64\static_md\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="17" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs170/Win32/executable/debug_static_mt-ARM64.template b/ProGen/templates/vs170/Win32/executable/debug_static_mt-ARM64.template index 866b6805d..d2f06f731 100644 --- a/ProGen/templates/vs170/Win32/executable/debug_static_mt-ARM64.template +++ b/ProGen/templates/vs170/Win32/executable/debug_static_mt-ARM64.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +58,7 @@ AdditionalLibraryDirectories="${project.pocobase}\libA64;${configuration.linker.libraries}" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="binA64\static_mt\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="18" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs170/Win32/executable/debug_static_mt-Win32.template b/ProGen/templates/vs170/Win32/executable/debug_static_mt-Win32.template index 0884c8f07..a157cc259 100644 --- a/ProGen/templates/vs170/Win32/executable/debug_static_mt-Win32.template +++ b/ProGen/templates/vs170/Win32/executable/debug_static_mt-Win32.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +58,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib;${configuration.linker.libraries}" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin\static_mt\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="1" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs170/Win32/executable/debug_static_mt-x64.template b/ProGen/templates/vs170/Win32/executable/debug_static_mt-x64.template index b52d79a78..2c8579500 100644 --- a/ProGen/templates/vs170/Win32/executable/debug_static_mt-x64.template +++ b/ProGen/templates/vs170/Win32/executable/debug_static_mt-x64.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +58,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib64;${configuration.linker.libraries}" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin64\static_mt\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="17" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs170/Win32/executable/release_shared-ARM64.template b/ProGen/templates/vs170/Win32/executable/release_shared-ARM64.template index 64c010d97..f94c04259 100644 --- a/ProGen/templates/vs170/Win32/executable/release_shared-ARM64.template +++ b/ProGen/templates/vs170/Win32/executable/release_shared-ARM64.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/release_shared-Win32.template b/ProGen/templates/vs170/Win32/executable/release_shared-Win32.template index 6a8dccbbd..74fec5f6c 100644 --- a/ProGen/templates/vs170/Win32/executable/release_shared-Win32.template +++ b/ProGen/templates/vs170/Win32/executable/release_shared-Win32.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/release_shared-x64.template b/ProGen/templates/vs170/Win32/executable/release_shared-x64.template index 369c69169..c413c620a 100644 --- a/ProGen/templates/vs170/Win32/executable/release_shared-x64.template +++ b/ProGen/templates/vs170/Win32/executable/release_shared-x64.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/release_static_md-ARM64.template b/ProGen/templates/vs170/Win32/executable/release_static_md-ARM64.template index 60170da33..58247df7e 100644 --- a/ProGen/templates/vs170/Win32/executable/release_static_md-ARM64.template +++ b/ProGen/templates/vs170/Win32/executable/release_static_md-ARM64.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/release_static_md-Win32.template b/ProGen/templates/vs170/Win32/executable/release_static_md-Win32.template index d9dd10406..adcc9bbdc 100644 --- a/ProGen/templates/vs170/Win32/executable/release_static_md-Win32.template +++ b/ProGen/templates/vs170/Win32/executable/release_static_md-Win32.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/release_static_md-x64.template b/ProGen/templates/vs170/Win32/executable/release_static_md-x64.template index 5992c40cf..070e042c6 100644 --- a/ProGen/templates/vs170/Win32/executable/release_static_md-x64.template +++ b/ProGen/templates/vs170/Win32/executable/release_static_md-x64.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/release_static_mt-ARM64.template b/ProGen/templates/vs170/Win32/executable/release_static_mt-ARM64.template index f11679405..a475f27ce 100644 --- a/ProGen/templates/vs170/Win32/executable/release_static_mt-ARM64.template +++ b/ProGen/templates/vs170/Win32/executable/release_static_mt-ARM64.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/release_static_mt-Win32.template b/ProGen/templates/vs170/Win32/executable/release_static_mt-Win32.template index 5477c2b8c..5ee732a05 100644 --- a/ProGen/templates/vs170/Win32/executable/release_static_mt-Win32.template +++ b/ProGen/templates/vs170/Win32/executable/release_static_mt-Win32.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/release_static_mt-x64.template b/ProGen/templates/vs170/Win32/executable/release_static_mt-x64.template index f04f3a998..a2a3f4d2f 100644 --- a/ProGen/templates/vs170/Win32/executable/release_static_mt-x64.template +++ b/ProGen/templates/vs170/Win32/executable/release_static_mt-x64.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/debug_shared-ARM64.template b/ProGen/templates/vs170/Win32/library/debug_shared-ARM64.template index a678a162e..67e9e2a4f 100644 --- a/ProGen/templates/vs170/Win32/library/debug_shared-ARM64.template +++ b/ProGen/templates/vs170/Win32/library/debug_shared-ARM64.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -56,7 +57,7 @@ LinkIncremental="2" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="${project.outdir}\binA64\${project.target}A64d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" AdditionalLibraryDirectories="${project.pocobase}\libA64" SubSystem="1" ImportLibrary="${project.outdir}\libA64\${project.target}d.lib" diff --git a/ProGen/templates/vs170/Win32/library/debug_shared-Win32.template b/ProGen/templates/vs170/Win32/library/debug_shared-Win32.template index 5d547438b..bbeb15f41 100644 --- a/ProGen/templates/vs170/Win32/library/debug_shared-Win32.template +++ b/ProGen/templates/vs170/Win32/library/debug_shared-Win32.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -56,7 +57,7 @@ LinkIncremental="2" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="${project.outdir}\bin\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" AdditionalLibraryDirectories="${project.pocobase}\lib" SubSystem="1" ImportLibrary="${project.outdir}\lib\${project.target}d.lib" diff --git a/ProGen/templates/vs170/Win32/library/debug_shared-x64.template b/ProGen/templates/vs170/Win32/library/debug_shared-x64.template index f2257dda0..b2fbd27b2 100644 --- a/ProGen/templates/vs170/Win32/library/debug_shared-x64.template +++ b/ProGen/templates/vs170/Win32/library/debug_shared-x64.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -56,7 +57,7 @@ LinkIncremental="2" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="${project.outdir}\bin64\${project.target}64d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" AdditionalLibraryDirectories="${project.pocobase}\lib64" SubSystem="1" ImportLibrary="${project.outdir}\lib64\${project.target}d.lib" diff --git a/ProGen/templates/vs170/Win32/library/debug_static_md-ARM64.template b/ProGen/templates/vs170/Win32/library/debug_static_md-ARM64.template index 0690ae9e1..ad65de228 100644 --- a/ProGen/templates/vs170/Win32/library/debug_static_md-ARM64.template +++ b/ProGen/templates/vs170/Win32/library/debug_static_md-ARM64.template @@ -38,6 +38,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/debug_static_md-Win32.template b/ProGen/templates/vs170/Win32/library/debug_static_md-Win32.template index e4db26930..7b84792b8 100644 --- a/ProGen/templates/vs170/Win32/library/debug_static_md-Win32.template +++ b/ProGen/templates/vs170/Win32/library/debug_static_md-Win32.template @@ -38,6 +38,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/debug_static_md-x64.template b/ProGen/templates/vs170/Win32/library/debug_static_md-x64.template index 8cdfbae91..786a86bc4 100644 --- a/ProGen/templates/vs170/Win32/library/debug_static_md-x64.template +++ b/ProGen/templates/vs170/Win32/library/debug_static_md-x64.template @@ -38,6 +38,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/debug_static_mt-ARM64.template b/ProGen/templates/vs170/Win32/library/debug_static_mt-ARM64.template index 99a8d695d..756c090cf 100644 --- a/ProGen/templates/vs170/Win32/library/debug_static_mt-ARM64.template +++ b/ProGen/templates/vs170/Win32/library/debug_static_mt-ARM64.template @@ -38,6 +38,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/debug_static_mt-Win32.template b/ProGen/templates/vs170/Win32/library/debug_static_mt-Win32.template index 486a9c7a3..2522fe20d 100644 --- a/ProGen/templates/vs170/Win32/library/debug_static_mt-Win32.template +++ b/ProGen/templates/vs170/Win32/library/debug_static_mt-Win32.template @@ -38,6 +38,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/debug_static_mt-x64.template b/ProGen/templates/vs170/Win32/library/debug_static_mt-x64.template index b02b7a56f..b2233a300 100644 --- a/ProGen/templates/vs170/Win32/library/debug_static_mt-x64.template +++ b/ProGen/templates/vs170/Win32/library/debug_static_mt-x64.template @@ -38,6 +38,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/release_shared-ARM64.template b/ProGen/templates/vs170/Win32/library/release_shared-ARM64.template index 8b3b814af..c87d1875d 100644 --- a/ProGen/templates/vs170/Win32/library/release_shared-ARM64.template +++ b/ProGen/templates/vs170/Win32/library/release_shared-ARM64.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/release_shared-Win32.template b/ProGen/templates/vs170/Win32/library/release_shared-Win32.template index 51211d8e5..d21a8d6f3 100644 --- a/ProGen/templates/vs170/Win32/library/release_shared-Win32.template +++ b/ProGen/templates/vs170/Win32/library/release_shared-Win32.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/release_shared-x64.template b/ProGen/templates/vs170/Win32/library/release_shared-x64.template index 598a27939..bb3287cee 100644 --- a/ProGen/templates/vs170/Win32/library/release_shared-x64.template +++ b/ProGen/templates/vs170/Win32/library/release_shared-x64.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/release_static_md-ARM64.template b/ProGen/templates/vs170/Win32/library/release_static_md-ARM64.template index d223cede1..b485e3433 100644 --- a/ProGen/templates/vs170/Win32/library/release_static_md-ARM64.template +++ b/ProGen/templates/vs170/Win32/library/release_static_md-ARM64.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/release_static_md-Win32.template b/ProGen/templates/vs170/Win32/library/release_static_md-Win32.template index 59c197fe0..b731abaad 100644 --- a/ProGen/templates/vs170/Win32/library/release_static_md-Win32.template +++ b/ProGen/templates/vs170/Win32/library/release_static_md-Win32.template @@ -41,6 +41,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/release_static_md-x64.template b/ProGen/templates/vs170/Win32/library/release_static_md-x64.template index dbc15deec..57d54d0a4 100644 --- a/ProGen/templates/vs170/Win32/library/release_static_md-x64.template +++ b/ProGen/templates/vs170/Win32/library/release_static_md-x64.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/release_static_mt-ARM64.template b/ProGen/templates/vs170/Win32/library/release_static_mt-ARM64.template index 1b2e40ae2..7d5b194e8 100644 --- a/ProGen/templates/vs170/Win32/library/release_static_mt-ARM64.template +++ b/ProGen/templates/vs170/Win32/library/release_static_mt-ARM64.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/release_static_mt-Win32.template b/ProGen/templates/vs170/Win32/library/release_static_mt-Win32.template index bc35acb96..eb99d59a2 100644 --- a/ProGen/templates/vs170/Win32/library/release_static_mt-Win32.template +++ b/ProGen/templates/vs170/Win32/library/release_static_mt-Win32.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/release_static_mt-x64.template b/ProGen/templates/vs170/Win32/library/release_static_mt-x64.template index acebfc406..4bcb145b4 100644 --- a/ProGen/templates/vs170/Win32/library/release_static_mt-x64.template +++ b/ProGen/templates/vs170/Win32/library/release_static_mt-x64.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/plugin/debug_shared-ARM64.template b/ProGen/templates/vs170/Win32/plugin/debug_shared-ARM64.template index b77e01f75..14180efa7 100644 --- a/ProGen/templates/vs170/Win32/plugin/debug_shared-ARM64.template +++ b/ProGen/templates/vs170/Win32/plugin/debug_shared-ARM64.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -56,7 +57,7 @@ LinkIncremental="2" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="${project.outdir}\binA64\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" AdditionalLibraryDirectories="${project.pocobase}\libA64" SubSystem="1" TargetMachine="18" diff --git a/ProGen/templates/vs170/Win32/plugin/debug_shared-Win32.template b/ProGen/templates/vs170/Win32/plugin/debug_shared-Win32.template index d238a563d..7eb7c39e2 100644 --- a/ProGen/templates/vs170/Win32/plugin/debug_shared-Win32.template +++ b/ProGen/templates/vs170/Win32/plugin/debug_shared-Win32.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -56,7 +57,7 @@ LinkIncremental="2" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="${project.outdir}\bin\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" AdditionalLibraryDirectories="${project.pocobase}\lib" SubSystem="1" TargetMachine="1" diff --git a/ProGen/templates/vs170/Win32/plugin/debug_shared-x64.template b/ProGen/templates/vs170/Win32/plugin/debug_shared-x64.template index 6778cf133..d3a864e67 100644 --- a/ProGen/templates/vs170/Win32/plugin/debug_shared-x64.template +++ b/ProGen/templates/vs170/Win32/plugin/debug_shared-x64.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -56,7 +57,7 @@ LinkIncremental="2" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="${project.outdir}\bin64\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" AdditionalLibraryDirectories="${project.pocobase}\lib64" SubSystem="1" TargetMachine="17" diff --git a/ProGen/templates/vs170/Win32/plugin/release_shared-ARM64.template b/ProGen/templates/vs170/Win32/plugin/release_shared-ARM64.template index 556329d51..d963a40a5 100644 --- a/ProGen/templates/vs170/Win32/plugin/release_shared-ARM64.template +++ b/ProGen/templates/vs170/Win32/plugin/release_shared-ARM64.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/plugin/release_shared-Win32.template b/ProGen/templates/vs170/Win32/plugin/release_shared-Win32.template index 862c9c6af..c7f434704 100644 --- a/ProGen/templates/vs170/Win32/plugin/release_shared-Win32.template +++ b/ProGen/templates/vs170/Win32/plugin/release_shared-Win32.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/plugin/release_shared-x64.template b/ProGen/templates/vs170/Win32/plugin/release_shared-x64.template index 65d659177..348c2b6af 100644 --- a/ProGen/templates/vs170/Win32/plugin/release_shared-x64.template +++ b/ProGen/templates/vs170/Win32/plugin/release_shared-x64.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_shared-ARM64.template b/ProGen/templates/vs170/Win32/testsuite/debug_shared-ARM64.template index 89d550fd3..cc5e42b6f 100644 --- a/ProGen/templates/vs170/Win32/testsuite/debug_shared-ARM64.template +++ b/ProGen/templates/vs170/Win32/testsuite/debug_shared-ARM64.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +58,7 @@ AdditionalLibraryDirectories="${project.pocobase}\libA64" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="binA64\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="18" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_shared-Win32.template b/ProGen/templates/vs170/Win32/testsuite/debug_shared-Win32.template index 908b44c3f..f22beb012 100644 --- a/ProGen/templates/vs170/Win32/testsuite/debug_shared-Win32.template +++ b/ProGen/templates/vs170/Win32/testsuite/debug_shared-Win32.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +58,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="1" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_shared-x64.template b/ProGen/templates/vs170/Win32/testsuite/debug_shared-x64.template index 56255cbf4..fadac8ccb 100644 --- a/ProGen/templates/vs170/Win32/testsuite/debug_shared-x64.template +++ b/ProGen/templates/vs170/Win32/testsuite/debug_shared-x64.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +58,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib64" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin64\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="17" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_static_md-ARM64.template b/ProGen/templates/vs170/Win32/testsuite/debug_static_md-ARM64.template index 419c6640e..7a76dfec1 100644 --- a/ProGen/templates/vs170/Win32/testsuite/debug_static_md-ARM64.template +++ b/ProGen/templates/vs170/Win32/testsuite/debug_static_md-ARM64.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +58,7 @@ AdditionalLibraryDirectories="${project.pocobase}\libA64" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="binA64\static_md\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="18" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_static_md-Win32.template b/ProGen/templates/vs170/Win32/testsuite/debug_static_md-Win32.template index f9d422527..bb7df4cc0 100644 --- a/ProGen/templates/vs170/Win32/testsuite/debug_static_md-Win32.template +++ b/ProGen/templates/vs170/Win32/testsuite/debug_static_md-Win32.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +58,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin\static_md\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="1" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_static_md-x64.template b/ProGen/templates/vs170/Win32/testsuite/debug_static_md-x64.template index f8a3aa416..3def75c6b 100644 --- a/ProGen/templates/vs170/Win32/testsuite/debug_static_md-x64.template +++ b/ProGen/templates/vs170/Win32/testsuite/debug_static_md-x64.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +58,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib64" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin64\static_md\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="17" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-ARM64.template b/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-ARM64.template index a4ae7a264..2a49771ca 100644 --- a/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-ARM64.template +++ b/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-ARM64.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +58,7 @@ AdditionalLibraryDirectories="${project.pocobase}\libA64" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="binA64\static_mt\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="18" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-Win32.template b/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-Win32.template index 83d67eca3..432af105c 100644 --- a/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-Win32.template +++ b/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-Win32.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +58,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin\static_mt\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="1" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-x64.template b/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-x64.template index 2769034f9..1e62bd6f3 100644 --- a/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-x64.template +++ b/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-x64.template @@ -37,6 +37,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +58,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib64" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin64\static_mt\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="17" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs170/Win32/testsuite/release_shared-ARM64.template b/ProGen/templates/vs170/Win32/testsuite/release_shared-ARM64.template index 31f2abe9a..019792bc4 100644 --- a/ProGen/templates/vs170/Win32/testsuite/release_shared-ARM64.template +++ b/ProGen/templates/vs170/Win32/testsuite/release_shared-ARM64.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/release_shared-Win32.template b/ProGen/templates/vs170/Win32/testsuite/release_shared-Win32.template index c467ca9d0..5f87dd23f 100644 --- a/ProGen/templates/vs170/Win32/testsuite/release_shared-Win32.template +++ b/ProGen/templates/vs170/Win32/testsuite/release_shared-Win32.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/release_shared-x64.template b/ProGen/templates/vs170/Win32/testsuite/release_shared-x64.template index 64f778e24..29a6d078f 100644 --- a/ProGen/templates/vs170/Win32/testsuite/release_shared-x64.template +++ b/ProGen/templates/vs170/Win32/testsuite/release_shared-x64.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/release_static_md-ARM64.template b/ProGen/templates/vs170/Win32/testsuite/release_static_md-ARM64.template index a7032fa51..b61783cef 100644 --- a/ProGen/templates/vs170/Win32/testsuite/release_static_md-ARM64.template +++ b/ProGen/templates/vs170/Win32/testsuite/release_static_md-ARM64.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/release_static_md-Win32.template b/ProGen/templates/vs170/Win32/testsuite/release_static_md-Win32.template index 6a8013d56..56748c8d6 100644 --- a/ProGen/templates/vs170/Win32/testsuite/release_static_md-Win32.template +++ b/ProGen/templates/vs170/Win32/testsuite/release_static_md-Win32.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/release_static_md-x64.template b/ProGen/templates/vs170/Win32/testsuite/release_static_md-x64.template index e58ce0734..4a2e95d19 100644 --- a/ProGen/templates/vs170/Win32/testsuite/release_static_md-x64.template +++ b/ProGen/templates/vs170/Win32/testsuite/release_static_md-x64.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/release_static_mt-ARM64.template b/ProGen/templates/vs170/Win32/testsuite/release_static_mt-ARM64.template index 355d62329..feeb99467 100644 --- a/ProGen/templates/vs170/Win32/testsuite/release_static_mt-ARM64.template +++ b/ProGen/templates/vs170/Win32/testsuite/release_static_mt-ARM64.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/release_static_mt-Win32.template b/ProGen/templates/vs170/Win32/testsuite/release_static_mt-Win32.template index 3e4baa030..bec106742 100644 --- a/ProGen/templates/vs170/Win32/testsuite/release_static_mt-Win32.template +++ b/ProGen/templates/vs170/Win32/testsuite/release_static_mt-Win32.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/release_static_mt-x64.template b/ProGen/templates/vs170/Win32/testsuite/release_static_mt-x64.template index 75d4bcb9d..f6b12737a 100644 --- a/ProGen/templates/vs170/Win32/testsuite/release_static_mt-x64.template +++ b/ProGen/templates/vs170/Win32/testsuite/release_static_mt-x64.template @@ -40,6 +40,7 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> From 324424b7a743c9889612b1669db6bab99bd8d69e Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Sun, 5 Nov 2023 22:19:25 +0100 Subject: [PATCH 180/395] fix(build): align Foundation and CppUnit #4207 --- CppUnit/CppUnit_vs170.vcxproj | 164 ++++++++++--------- Foundation/Foundation_vs170.vcxproj | 49 ++++-- Foundation/testsuite/TestSuite_vs170.vcxproj | 22 ++- 3 files changed, 144 insertions(+), 91 deletions(-) diff --git a/CppUnit/CppUnit_vs170.vcxproj b/CppUnit/CppUnit_vs170.vcxproj index 5d8927b1a..62ac2bd10 100644 --- a/CppUnit/CppUnit_vs170.vcxproj +++ b/CppUnit/CppUnit_vs170.vcxproj @@ -1,4 +1,4 @@ - + @@ -80,8 +80,9 @@ {138BB448-808A-4FE5-A66D-78D1F8770F59} CppUnit Win32Proj + 10.0 - + StaticLibrary MultiByte @@ -172,63 +173,63 @@ MultiByte v143 - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + <_ProjectFileVersion>17.0.32505.173 CppUnitA64d @@ -340,17 +341,19 @@ true true true - + Level3 ProgramDatabase Default true + $(OutDir)$(TargetName).pdb + stdcpp17 - ..\binA64\CppUnitA64d.dll + ..\binA64\$(TargetName).dll true true - ..\binA64\CppUnitA64d.pdb + $(OutDir)$(TargetName).pdb ..\libA64;%(AdditionalLibraryDirectories) Console ..\libA64\CppUnitd.lib @@ -372,14 +375,15 @@ true true true - + Level3 - + Default true + stdcpp17 - ..\binA64\CppUnitA64.dll + ..\binA64\$(TargetName).dll true false ..\libA64;%(AdditionalLibraryDirectories) @@ -402,15 +406,16 @@ true true true - - ..\libA64\CppUnitmtd.pdb + + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default true + stdcpp17 - ..\libA64\CppUnitmtd.lib + ..\libA64\$(TargetName).lib @@ -428,14 +433,15 @@ true true true - + Level3 - + Default true + stdcpp17 - ..\libA64\CppUnitmt.lib + ..\libA64\$(TargetName).lib @@ -450,15 +456,16 @@ true true true - - ..\libA64\CppUnitmdd.pdb + + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default true + stdcpp17 - ..\libA64\CppUnitmdd.lib + ..\libA64\$(TargetName).lib @@ -476,14 +483,15 @@ true true true - + Level3 - + Default true + stdcpp17 - ..\libA64\CppUnitmd.lib + ..\libA64\$(TargetName).lib @@ -498,7 +506,7 @@ true true true - + Level3 ProgramDatabase Default @@ -530,9 +538,9 @@ true true true - + Level3 - + Default true @@ -560,7 +568,7 @@ true true true - + ..\lib\CppUnitmtd.pdb Level3 ProgramDatabase @@ -586,9 +594,9 @@ true true true - + Level3 - + Default true @@ -608,7 +616,7 @@ true true true - + ..\lib\CppUnitmdd.pdb Level3 ProgramDatabase @@ -634,10 +642,10 @@ true true true - + ..\lib\CppUnitmd.pdb Level3 - + Default true @@ -657,7 +665,7 @@ true true true - + Level3 ProgramDatabase Default @@ -689,9 +697,9 @@ true true true - + Level3 - + Default true @@ -719,7 +727,7 @@ true true true - + ..\lib64\CppUnitmtd.pdb Level3 ProgramDatabase @@ -745,9 +753,9 @@ true true true - + Level3 - + Default true @@ -767,7 +775,7 @@ true true true - + ..\lib64\CppUnitmdd.pdb Level3 ProgramDatabase @@ -793,9 +801,9 @@ true true true - + Level3 - + Default true @@ -830,23 +838,23 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - + + + \ No newline at end of file diff --git a/Foundation/Foundation_vs170.vcxproj b/Foundation/Foundation_vs170.vcxproj index 0223e151f..9a0ee2b12 100644 --- a/Foundation/Foundation_vs170.vcxproj +++ b/Foundation/Foundation_vs170.vcxproj @@ -79,6 +79,7 @@ {B01196CC-B693-4548-8464-2FF60499E73F} Foundation Win32Proj + 10.0 @@ -261,6 +262,7 @@ true + ..\binA64\ ..\bin\ @@ -274,6 +276,7 @@ false + ..\libA64\ ..\lib\ @@ -307,6 +310,18 @@ ..\lib64\ obj64\Foundation\$(Configuration)\ + + ..\libA64\ + + + ..\libA64\ + + + ..\libA64\ + + + ..\libA64\ + Disabled @@ -386,13 +401,16 @@ ProgramDatabase Default true + $(OutDir)$(TargetName).pdb + stdcpp17 + stdc11 iphlpapi.lib;%(AdditionalDependencies) - ..\binA64\PocoFoundation64d.dll + $(OutDir)$(TargetName).dll true true - ..\binA64\PocoFoundation64d.pdb + $(OutDir)$(TargetName).pdb ..\libA64;%(AdditionalLibraryDirectories) Console ..\libA64\PocoFoundationd.lib @@ -489,10 +507,13 @@ Default true + $(OutDir)$(TargetName).pdb + stdcpp17 + stdc11 iphlpapi.lib;%(AdditionalDependencies) - ..\binA64\PocoFoundation64.dll + ..\binA64\$(TargetName).dll true false ..\libA64;%(AdditionalLibraryDirectories) @@ -565,14 +586,16 @@ true - ..\libA64\PocoFoundationmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default true + stdcpp17 + stdc11 - ..\libA64\PocoFoundationmtd.lib + $(OutDir)$(TargetName).lib @@ -650,9 +673,11 @@ Default true + stdcpp17 + stdc11 - ..\libA64\PocoFoundationmt.lib + $(OutDir)$(TargetName).lib @@ -718,14 +743,16 @@ true - ..\libA64\PocoFoundationmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default true + stdcpp17 + stdc11 - ..\libA64\PocoFoundationmdd.lib + $(OutDir)$(TargetName).lib @@ -804,17 +831,19 @@ true - $(IntDir)$(ProjectName).pdb + $(OutDir)$(TargetName).pdb Level3 Default true + stdcpp17 + stdc11 - ..\libA64\PocoFoundationmd.lib + $(OutDir)$(TargetName).lib diff --git a/Foundation/testsuite/TestSuite_vs170.vcxproj b/Foundation/testsuite/TestSuite_vs170.vcxproj index 4dcc32ca3..754b4a140 100644 --- a/Foundation/testsuite/TestSuite_vs170.vcxproj +++ b/Foundation/testsuite/TestSuite_vs170.vcxproj @@ -79,6 +79,7 @@ {F1EE93DF-347F-4CB3-B191-C4E63F38E972} TestSuite Win32Proj + 10.0 @@ -261,6 +262,7 @@ true + binA64\ bin\ @@ -274,6 +276,7 @@ false + binA64\ bin\static_mt\ @@ -287,6 +290,7 @@ true + binA64\static_mt\ bin\static_mt\ @@ -300,6 +304,7 @@ false + binA64\static_mt\ bin\static_md\ @@ -313,6 +318,7 @@ true + binA64\static_md\ bin\static_md\ @@ -326,6 +332,7 @@ false + binA64\static_md\ @@ -404,6 +411,7 @@ ProgramDatabase Default true + $(OutDir)$(TargetName).pdb iphlpapi.lib;%(AdditionalDependencies) @@ -411,7 +419,7 @@ ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console @@ -502,6 +510,7 @@ Default true + iphlpapi.lib;%(AdditionalDependencies) @@ -511,6 +520,7 @@ Console true true + @@ -590,6 +600,7 @@ ProgramDatabase Default true + $(OutDir)$(TargetName).pdb iphlpapi.lib;%(AdditionalDependencies) @@ -597,7 +608,7 @@ ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console @@ -688,6 +699,7 @@ Default true + iphlpapi.lib;%(AdditionalDependencies) @@ -697,6 +709,7 @@ Console true true + @@ -776,6 +789,7 @@ ProgramDatabase Default true + $(OutDir)$(TargetName).pdb iphlpapi.lib;%(AdditionalDependencies) @@ -783,7 +797,7 @@ ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console @@ -874,6 +888,7 @@ Default true + iphlpapi.lib;%(AdditionalDependencies) @@ -883,6 +898,7 @@ Console true true + From 78234857bf416b718455496800d1b7be3a0d0a53 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Sun, 5 Nov 2023 23:40:47 +0100 Subject: [PATCH 181/395] feat(ProGen): default to c++17 --- Data/Data.progen | 9 +- Data/Data_NO_SQL_PARSER.progen | 17 + Data/Data_NO_SQL_PARSER.vcproj | 923 ++++++++++++++++++ Data/Data_VS90.vcproj | 200 ++++ Data/Data_vs170.vcxproj | 161 ++- Data/Data_vs170.vcxproj.filters | 180 +++- Data/testsuite/TestSuite.progen | 6 +- Data/testsuite/TestSuite_NO_SQL_PARSER.progen | 10 + Data/testsuite/TestSuite_NO_SQL_PARSER.vcproj | 541 ++++++++++ Data/testsuite/TestSuite_VS90.vcproj | 13 + Data/testsuite/TestSuite_vs170.vcxproj | 96 +- .../testsuite/TestSuite_vs170.vcxproj.filters | 43 +- Data/testsuite/src/DataTest.cpp | 15 +- Foundation/include/Poco/Config.h | 8 +- .../BinaryReaderWriter.progen | 2 +- Foundation/samples/DateTime/DateTime.progen | 2 +- .../LineEndingConverter.progen | 2 +- .../samples/LogRotation/LogRotation.progen | 2 +- Foundation/samples/Logger/Logger.progen | 2 +- .../NotificationQueue.progen | 2 +- .../StringTokenizer/StringTokenizer.progen | 2 +- Foundation/samples/Timer/Timer.progen | 2 +- Foundation/samples/URI/URI.progen | 2 +- .../samples/base64decode/base64decode.progen | 2 +- .../samples/base64encode/base64encode.progen | 2 +- Foundation/samples/deflate/deflate.progen | 2 +- Foundation/samples/dir/dir.progen | 2 +- Foundation/samples/grep/grep.progen | 2 +- Foundation/samples/hmacmd5/hmacmd5.progen | 2 +- Foundation/samples/inflate/inflate.progen | 2 +- Foundation/samples/md5/md5.progen | 2 +- Foundation/samples/uuidgen/uuidgen.progen | 2 +- JSON/JSON.progen | 2 +- JSON/samples/Benchmark/Benchmark.progen | 2 +- JSON/testsuite/TestSuite.progen | 2 +- JWT/JWT.progen | 2 +- JWT/testsuite/TestSuite.progen | 2 +- MongoDB/MongoDB.progen | 2 +- MongoDB/samples/SQLToMongo/SQLToMongo.progen | 2 +- MongoDB/testsuite/TestSuite.progen | 2 +- Net/Net.progen | 2 +- Net/samples/EchoServer/EchoServer.progen | 2 +- .../HTTPFormServer/HTTPFormServer.progen | 2 +- Net/samples/HTTPLoadTest/HTTPLoadTest.progen | 2 +- .../HTTPTimeServer/HTTPTimeServer.progen | 2 +- Net/samples/Mail/Mail.progen | 2 +- Net/samples/Ping/Ping.progen | 2 +- Net/samples/SMTPLogger/SMTPLogger.progen | 2 +- Net/samples/TimeServer/TimeServer.progen | 2 +- .../WebSocketServer/WebSocketServer.progen | 2 +- Net/samples/dict/dict.progen | 2 +- Net/samples/download/download.progen | 2 +- Net/samples/httpget/httpget.progen | 2 +- Net/samples/ifconfig/ifconfig.progen | 2 +- Net/samples/tcpserver/tcpserver.progen | 2 +- Net/testsuite/TestSuite.progen | 2 +- NetSSL_OpenSSL/NetSSL_OpenSSL.progen | 2 +- .../HTTPSTimeServer/HTTPSTimeServer.progen | 2 +- NetSSL_OpenSSL/samples/Mail/Mail.progen | 2 +- .../samples/SetSourceIP/SetSourceIP.progen | 2 +- .../TwitterClient/TwitterClient.progen | 2 +- .../samples/download/download.progen | 2 +- NetSSL_OpenSSL/testsuite/TestSuite.progen | 2 +- NetSSL_Win/NetSSL_Win.progen | 2 +- .../HTTPSTimeServer/HTTPSTimeServer.progen | 2 +- NetSSL_Win/samples/Mail/Mail.progen | 2 +- NetSSL_Win/samples/download/download.progen | 2 +- NetSSL_Win/testsuite/TestSuite.progen | 2 +- PDF/PDF.progen | 2 +- PDF/samples/Image/Image.progen | 2 +- PDF/samples/Template/Template.progen | 2 +- PDF/samples/Text/Text.progen | 2 +- PDF/testsuite/TestSuite.progen | 2 +- PageCompiler/File2Page/File2Page.progen | 2 +- PageCompiler/PageCompiler.progen | 2 +- .../HTTPTimeServer/HTTPTimeServer.progen | 2 +- PocoDoc/PocoDoc.progen | 2 +- ProGen/ProGen.progen | 2 +- ProGen/src/ProGen.cpp | 5 + .../executable/debug_shared-ARM64.template | 2 + .../executable/debug_shared-Win32.template | 2 + .../executable/debug_shared-x64.template | 2 + .../executable/debug_static_md-ARM64.template | 2 + .../executable/debug_static_md-Win32.template | 2 + .../executable/debug_static_md-x64.template | 2 + .../executable/debug_static_mt-ARM64.template | 2 + .../executable/debug_static_mt-Win32.template | 2 + .../executable/debug_static_mt-x64.template | 2 + .../executable/release_shared-ARM64.template | 2 + .../executable/release_shared-Win32.template | 2 + .../executable/release_shared-x64.template | 2 + .../release_static_md-ARM64.template | 2 + .../release_static_md-Win32.template | 2 + .../executable/release_static_md-x64.template | 2 + .../release_static_mt-ARM64.template | 2 + .../release_static_mt-Win32.template | 2 + .../executable/release_static_mt-x64.template | 2 + .../Win32/library/debug_shared-ARM64.template | 2 + .../Win32/library/debug_shared-Win32.template | 2 + .../Win32/library/debug_shared-x64.template | 2 + .../library/debug_static_md-ARM64.template | 2 + .../library/debug_static_md-Win32.template | 2 + .../library/debug_static_md-x64.template | 2 + .../library/debug_static_mt-ARM64.template | 2 + .../library/debug_static_mt-Win32.template | 2 + .../library/debug_static_mt-x64.template | 2 + .../library/release_shared-ARM64.template | 2 + .../library/release_shared-Win32.template | 2 + .../Win32/library/release_shared-x64.template | 2 + .../library/release_static_md-ARM64.template | 2 + .../library/release_static_md-Win32.template | 2 + .../library/release_static_md-x64.template | 2 + .../library/release_static_mt-ARM64.template | 2 + .../library/release_static_mt-Win32.template | 2 + .../library/release_static_mt-x64.template | 2 + .../Win32/plugin/debug_shared-ARM64.template | 2 + .../Win32/plugin/debug_shared-Win32.template | 2 + .../Win32/plugin/debug_shared-x64.template | 2 + .../plugin/release_shared-ARM64.template | 2 + .../plugin/release_shared-Win32.template | 2 + .../Win32/plugin/release_shared-x64.template | 2 + .../testsuite/debug_shared-ARM64.template | 2 + .../testsuite/debug_shared-Win32.template | 2 + .../Win32/testsuite/debug_shared-x64.template | 2 + .../testsuite/debug_static_md-ARM64.template | 2 + .../testsuite/debug_static_md-Win32.template | 2 + .../testsuite/debug_static_md-x64.template | 2 + .../testsuite/debug_static_mt-ARM64.template | 2 + .../testsuite/debug_static_mt-Win32.template | 2 + .../testsuite/debug_static_mt-x64.template | 2 + .../testsuite/release_shared-ARM64.template | 2 + .../testsuite/release_shared-Win32.template | 2 + .../testsuite/release_shared-x64.template | 2 + .../release_static_md-ARM64.template | 2 + .../release_static_md-Win32.template | 2 + .../testsuite/release_static_md-x64.template | 2 + .../release_static_mt-ARM64.template | 2 + .../release_static_mt-Win32.template | 2 + .../testsuite/release_static_mt-x64.template | 2 + Prometheus/Prometheus.progen | 2 +- .../MetricsSample/MetricsSample.progen | 2 +- Prometheus/testsuite/TestSuite.progen | 2 +- Redis/Redis.progen | 2 +- Redis/testsuite/TestSuite.progen | 2 +- SevenZip/SevenZip.progen | 2 +- SevenZip/samples/un7zip/un7zip.progen | 2 +- Util/Util.progen | 2 +- Util/samples/SampleApp/SampleApp.progen | 2 +- Util/samples/SampleServer/SampleServer.progen | 2 +- Util/samples/Units/Units.progen | 2 +- Util/samples/pkill/pkill.progen | 2 +- Util/testsuite/TestSuite.progen | 2 +- XML/XML.progen | 2 +- XML/samples/DOMParser/DOMParser.progen | 2 +- XML/samples/DOMWriter/DOMWriter.progen | 2 +- XML/samples/PrettyPrint/PrettyPrint.progen | 2 +- XML/samples/SAXParser/SAXParser.progen | 2 +- XML/testsuite/TestSuite.progen | 2 +- Zip/Zip.progen | 2 +- Zip/samples/unzip/unzip.progen | 2 +- Zip/samples/zip/zip.progen | 2 +- Zip/testsuite/TestSuite.progen | 2 +- 162 files changed, 2323 insertions(+), 198 deletions(-) create mode 100644 Data/Data_NO_SQL_PARSER.progen create mode 100644 Data/Data_NO_SQL_PARSER.vcproj create mode 100644 Data/testsuite/TestSuite_NO_SQL_PARSER.progen create mode 100644 Data/testsuite/TestSuite_NO_SQL_PARSER.vcproj diff --git a/Data/Data.progen b/Data/Data.progen index 8bb947569..336587d3e 100644 --- a/Data/Data.progen +++ b/Data/Data.progen @@ -1,17 +1,22 @@ vc.project.guid = 240E83C3-368D-11DB-9FBC-00123FC423B5 vc.project.name = Data vc.project.target = Poco${vc.project.name} +vc.project.prototype = Data_vs90.vcproj vc.project.type = library vc.project.pocobase = .. vc.project.outdir = ${vc.project.pocobase} vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\Foundation\\include +# TODO, for now we can just send cpp std via AdditionalOptions (see below) +#vc.project.compiler.std.cpp=stdcpp17 +#vc.project.compiler.std.c=stdc11 +vc.project.compiler.include = .\\src;..\\Foundation\\include vc.project.compiler.defines = -vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS +vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS;SQLParser_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.compiler.additionalOptions.Win32.x64 = /bigobj vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/Data/Data_NO_SQL_PARSER.progen b/Data/Data_NO_SQL_PARSER.progen new file mode 100644 index 000000000..8bb947569 --- /dev/null +++ b/Data/Data_NO_SQL_PARSER.progen @@ -0,0 +1,17 @@ +vc.project.guid = 240E83C3-368D-11DB-9FBC-00123FC423B5 +vc.project.name = Data +vc.project.target = Poco${vc.project.name} +vc.project.type = library +vc.project.pocobase = .. +vc.project.outdir = ${vc.project.pocobase} +vc.project.platforms = Win32 +vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md +vc.project.prototype = ${vc.project.name}_vs90.vcproj +vc.project.compiler.include = ..\\Foundation\\include +vc.project.compiler.defines = +vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS +vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} +vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} +vc.project.compiler.additionalOptions.Win32.x64 = /bigobj +vc.solution.create = true +vc.solution.include = testsuite\\TestSuite diff --git a/Data/Data_NO_SQL_PARSER.vcproj b/Data/Data_NO_SQL_PARSER.vcproj new file mode 100644 index 000000000..bdd6f6e7b --- /dev/null +++ b/Data/Data_NO_SQL_PARSER.vcproj @@ -0,0 +1,923 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Data/Data_VS90.vcproj b/Data/Data_VS90.vcproj index bdd6f6e7b..7ee4df50e 100644 --- a/Data/Data_VS90.vcproj +++ b/Data/Data_VS90.vcproj @@ -651,6 +651,14 @@ RelativePath=".\include\Poco\Data\SimpleRowFormatter.h" > + + + + @@ -783,6 +791,10 @@ RelativePath=".\src\SimpleRowFormatter.cpp" > + + @@ -853,6 +865,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Data/Data_vs170.vcxproj b/Data/Data_vs170.vcxproj index a3f0a4dd6..f3f19b33d 100644 --- a/Data/Data_vs170.vcxproj +++ b/Data/Data_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34202.158 PocoDataA64d PocoDatamdd PocoDatamtd @@ -331,8 +331,8 @@ Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;%(PreprocessorDefinitions) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -344,13 +344,15 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true ..\binA64\PocoDataA64d.dll true true - ..\binA64\PocoDataA64d.pdb + $(OutDir)$(TargetName).pdb ..\libA64;%(AdditionalLibraryDirectories) Console ..\libA64\PocoDatad.lib @@ -364,8 +366,8 @@ true Speed true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;%(PreprocessorDefinitions) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL false @@ -376,6 +378,8 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -393,7 +397,7 @@ Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -403,10 +407,11 @@ true true - ..\libA64\PocoDatamtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -420,7 +425,7 @@ true Speed true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -432,6 +437,8 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -441,7 +448,7 @@ Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -451,10 +458,11 @@ true true - ..\libA64\PocoDatamdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -468,7 +476,7 @@ true Speed true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -480,6 +488,8 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -489,8 +499,8 @@ Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;%(PreprocessorDefinitions) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -502,13 +512,15 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true ..\bin\PocoDatad.dll true true - ..\bin\PocoDatad.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoDatad.lib @@ -522,8 +534,8 @@ true Speed true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;%(PreprocessorDefinitions) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL false @@ -534,6 +546,8 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -551,7 +565,7 @@ Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -561,10 +575,11 @@ true true - ..\lib\PocoDatamtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -578,7 +593,7 @@ true Speed true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -590,6 +605,8 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -599,7 +616,7 @@ Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -609,10 +626,11 @@ true true - ..\lib\PocoDatamdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -626,7 +644,7 @@ true Speed true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -635,10 +653,11 @@ true true - ..\lib\PocoDatamd.pdb + $(OutDir)$(TargetName).pdb Level3 Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -648,8 +667,8 @@ Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;%(PreprocessorDefinitions) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -661,14 +680,15 @@ Level3 ProgramDatabase Default - /bigobj %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) true ..\bin64\PocoData64d.dll true true - ..\bin64\PocoData64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoDatad.lib @@ -682,8 +702,8 @@ true Speed true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;%(PreprocessorDefinitions) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL false @@ -694,7 +714,8 @@ Level3 Default - /bigobj %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) true @@ -712,7 +733,7 @@ Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -722,11 +743,11 @@ true true - ..\lib64\PocoDatamtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default - /bigobj %(AdditionalOptions) + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) true @@ -740,7 +761,7 @@ true Speed true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -752,7 +773,8 @@ Level3 Default - /bigobj %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) true @@ -762,7 +784,7 @@ Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -772,11 +794,11 @@ true true - ..\lib64\PocoDatamdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default - /bigobj %(AdditionalOptions) + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) true @@ -790,7 +812,7 @@ true Speed true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -802,7 +824,8 @@ Level3 Default - /bigobj %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) true @@ -854,6 +877,7 @@ + @@ -861,6 +885,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -953,6 +1002,36 @@ true + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + true diff --git a/Data/Data_vs170.vcxproj.filters b/Data/Data_vs170.vcxproj.filters index b229d0a2d..c375c7cb8 100644 --- a/Data/Data_vs170.vcxproj.filters +++ b/Data/Data_vs170.vcxproj.filters @@ -2,31 +2,67 @@ - {25181de0-3e99-4db9-a218-4580b16cbb0a} + {b506cf12-ceab-4480-9dd5-756051d07e59} - {bf1fcd58-d750-4f91-8eea-0dc1e09013b6} + {90bfe7ca-919b-4bd6-8c37-9dbe7112498c} - {9ccb9717-2829-450a-b3ea-715077fc770f} + {e6833f80-3310-4e9c-8e2e-0bc97da8930b} - {fa110a23-abc0-4838-8c37-2cf0a512d556} + {4e47ac5e-d10b-4f76-9a2e-2ee9bb9e8a5a} - {6dd4ce47-c8de-48c7-891f-6fc47fff19e9} + {20d5b73e-b1a1-42df-9646-76a028076568} - {5011cbf7-2ae9-4b14-9a03-bb9f9c754dc4} + {be02d32e-211c-4862-a024-45a3fee69a52} + + + {b7bbae6d-e7e9-4509-9913-39ed7f4b490d} + + + {83ee7750-9959-4d4e-9c5d-eee6ab11e7fc} + + + {86d2f06a-b0be-4c31-aaca-46c0ea8f0286} + + + {b6ca2721-dbbb-430a-a5be-c935eb0dc38f} + + + {d4b21be3-c7c5-4ae4-83ef-2c297f700dc0} + + + {b4468c52-548a-403f-bc0f-a16ad4ddb739} + + + {1dc3d753-71bd-4610-aea9-143c65775ff6} + + + {6acef4f6-0228-42fa-a749-459986350109} + + + {693d9699-5db9-4840-a7b5-f415dafb5313} + + + {fb4b6a93-f251-4a47-80ff-f1a20ba0d30e} + + + {0cf30b8a-83a6-46d6-bd8b-97fda9209963} + + + {50d1df52-b839-4b23-a1ae-70fcc8b5810c} - {39e78f99-76eb-4ca6-a6e5-69380ba1e19f} + {f63fc3da-14d4-4a1d-8624-a6edd819c136} - {c2cbcb61-3c9c-4208-aebc-bf1e7ec77703} + {06bd663d-63c8-4438-9d55-12e68e755a4f} - {f59283d4-ff32-4856-903b-81bd84ebb146} + {663042c7-77cc-439e-b0e2-b5fcce9cf733} @@ -93,6 +129,9 @@ DataCore\Header Files + + DataCore\Header Files + DataCore\Header Files @@ -141,6 +180,12 @@ DataCore\Header Files + + DataCore\Header Files + + + DataCore\Header Files + DataCore\Header Files @@ -174,10 +219,82 @@ SessionPooling\Header Files - - Logging\Header Files + + SQLParser\Header Files - + + SQLParser\Header Files + + + SQLParser\Header Files + + + SQLParser\parser\Header Files + + + SQLParser\parser\Header Files + + + SQLParser\parser\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\util\Header Files + + Logging\Header Files @@ -215,6 +332,9 @@ DataCore\Source Files + + DataCore\Source Files + DataCore\Source Files @@ -254,6 +374,9 @@ DataCore\Source Files + + DataCore\Source Files + DataCore\Source Files @@ -284,10 +407,37 @@ SessionPooling\Source Files - - Logging\Source Files + + SQLParser\Source Files - + + SQLParser\Source Files + + + SQLParser\parser\Source Files + + + SQLParser\parser\Source Files + + + SQLParser\sql\Source Files + + + SQLParser\sql\Source Files + + + SQLParser\sql\Source Files + + + SQLParser\sql\Source Files + + + SQLParser\sql\Source Files + + + SQLParser\util\Source Files + + Logging\Source Files diff --git a/Data/testsuite/TestSuite.progen b/Data/testsuite/TestSuite.progen index c9bc62810..6e936ac49 100644 --- a/Data/testsuite/TestSuite.progen +++ b/Data/testsuite/TestSuite.progen @@ -6,5 +6,9 @@ vc.project.pocobase = ..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj -vc.project.compiler.include = ..\\..\\Foundation\\include +# TODO, for now we can just send cpp std via AdditionalOptions (see below) +#vc.project.compiler.std.cpp=stdcpp17 +#vc.project.compiler.std.c=stdc11 +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.include = ..\\src;..\\..\\Foundation\\include vc.project.linker.dependencies.Win32 = iphlpapi.lib diff --git a/Data/testsuite/TestSuite_NO_SQL_PARSER.progen b/Data/testsuite/TestSuite_NO_SQL_PARSER.progen new file mode 100644 index 000000000..069754a66 --- /dev/null +++ b/Data/testsuite/TestSuite_NO_SQL_PARSER.progen @@ -0,0 +1,10 @@ +vc.project.guid = 1813A463-E349-4FEA-8A8E-4A41E41C0DC7 +vc.project.name = TestSuite +vc.project.target = TestSuite +vc.project.prototype = TestSuite_NO_SQL_PARSER_vs90.vcproj +vc.project.type = testsuite +vc.project.pocobase = ..\\.. +vc.project.platforms = Win32 +vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md +vc.project.compiler.include = ..\\src;..\\..\\Foundation\\include +vc.project.linker.dependencies.Win32 = iphlpapi.lib diff --git a/Data/testsuite/TestSuite_NO_SQL_PARSER.vcproj b/Data/testsuite/TestSuite_NO_SQL_PARSER.vcproj new file mode 100644 index 000000000..54d28051d --- /dev/null +++ b/Data/testsuite/TestSuite_NO_SQL_PARSER.vcproj @@ -0,0 +1,541 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Data/testsuite/TestSuite_VS90.vcproj b/Data/testsuite/TestSuite_VS90.vcproj index bf070b939..54d28051d 100644 --- a/Data/testsuite/TestSuite_VS90.vcproj +++ b/Data/testsuite/TestSuite_VS90.vcproj @@ -523,6 +523,19 @@ RelativePath=".\src\SessionPoolTest.cpp"/> + + + + + + + + diff --git a/Data/testsuite/TestSuite_vs170.vcxproj b/Data/testsuite/TestSuite_vs170.vcxproj index 7714a48e8..5c8ef8ecc 100644 --- a/Data/testsuite/TestSuite_vs170.vcxproj +++ b/Data/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34202.158 TestSuited TestSuited TestSuited @@ -343,7 +343,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -356,6 +356,8 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -364,7 +366,7 @@ ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -376,7 +378,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -388,6 +390,8 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -404,7 +408,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -417,6 +421,8 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -425,7 +431,7 @@ ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -437,7 +443,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -449,6 +455,8 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -465,7 +473,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -478,6 +486,8 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -486,7 +496,7 @@ ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -498,7 +508,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -510,6 +520,8 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -526,7 +538,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -539,6 +551,8 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -547,7 +561,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -559,7 +573,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -571,6 +585,8 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -587,7 +603,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -600,6 +616,8 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -608,7 +626,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -620,7 +638,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -632,6 +650,8 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -648,7 +668,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -661,6 +681,8 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -669,7 +691,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -681,7 +703,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -693,6 +715,8 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -709,7 +733,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -722,6 +746,8 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -730,7 +756,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -742,7 +768,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -754,6 +780,8 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -770,7 +798,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -783,6 +811,8 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -791,7 +821,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -803,7 +833,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -815,6 +845,8 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -831,7 +863,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -844,6 +876,8 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -852,7 +886,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -864,7 +898,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -876,6 +910,8 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -898,6 +934,7 @@ + @@ -928,6 +965,9 @@ true + + true + true diff --git a/Data/testsuite/TestSuite_vs170.vcxproj.filters b/Data/testsuite/TestSuite_vs170.vcxproj.filters index 3f243db79..b37165ae7 100644 --- a/Data/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Data/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,46 +2,55 @@ - {6805f657-87dc-44e7-9b5a-943d131f7e01} + {93cac614-b3c1-438b-a5ac-0a1cba850cee} - {1564b6b4-0635-4e6d-a889-7d62a1fade23} + {57be5187-e2d3-4978-92f7-b99d633ac676} - {b957ab6f-eb9d-4947-949c-65fc9ad4bc08} + {94a457fb-07cf-4409-a6c3-fc25991942c5} - {9792c24f-5d89-4974-b1f8-7d3c9212a561} + {0a15584c-f4f5-4eba-8928-04828aed084a} - {f501e382-1925-40cb-ad66-5364acc86382} + {baa428fd-2851-4232-932f-0bcba22726b5} - {403897bb-b8bb-4815-9648-a0aa5e2497e5} + {32ac6e17-51c6-466c-a66e-9c7aa8835bba} - {5e877bb1-ca6b-4c67-a71e-eb690d26dbcd} + {a13744c0-ae5d-4f46-a3d9-37612a8ab104} - {e842d4aa-7c8c-47e2-9d46-4d82e4954076} + {24237165-5f13-4f4b-8190-c400f36f3e29} - {9576e0a5-5582-41aa-88d3-613860840471} + {d43bd6db-bc17-457d-a860-961aa6ab5185} - {d7c725ec-4477-4e5c-8513-22b196c4031f} + {141fe152-46ab-4318-be77-0b3020b5164f} - {1d2402ba-c36a-455d-a060-0e103ca637c7} + {300408b2-5dcb-4227-b3d1-b85b02f6e82d} - {a37d5b0f-35f0-45c1-a1ea-477af3536ee5} + {990865e3-1a79-4423-87b9-3f137135ba24} - {f587e62c-7bbb-4fb5-b78e-a2318838268b} + {54250ddc-469c-4054-b8ac-eca071c58877} - {bfdf8369-a0a0-4786-8e3b-c859f528fdc9} + {367d6638-017f-4ac1-ad6d-9865d5a2f585} + + + {a205190a-b349-4421-a585-93939a5791c1} + + + {e005576b-7c3c-4b05-a7d8-6043b8425c81} + + + {f2decc2a-9f48-4be5-838a-bc7a4333e2d7} @@ -72,6 +81,9 @@ SessionPooling\Header Files + + SQLParser\Header Files + @@ -104,5 +116,8 @@ SessionPooling\Source Files + + SQLParser\Source Files + \ No newline at end of file diff --git a/Data/testsuite/src/DataTest.cpp b/Data/testsuite/src/DataTest.cpp index 6fb0ce49c..8249379c0 100644 --- a/Data/testsuite/src/DataTest.cpp +++ b/Data/testsuite/src/DataTest.cpp @@ -1439,8 +1439,6 @@ void DataTest::testTranscode() void DataTest::testSQLParse() { -#ifndef POCO_DATA_NO_SQL_PARSER - Session sess(SessionFactory::instance().create("test", "cs")); assertTrue (sess.getFeature("autoCommit")); @@ -1451,6 +1449,9 @@ void DataTest::testSQLParse() "'",'a',"'",-1, 1u, 1.5, "42", now); assertTrue ("SELECT 'a',-1,1,1.500000,42 FROM Person WHERE Name LIKE 'Simp%'" == stmt.toString()); + +#ifndef POCO_DATA_NO_SQL_PARSER + assertEqual (1u, stmt.statementsCount().value()); assertTrue (stmt.isSelect().value()); assertTrue (stmt.hasSelect().value()); @@ -1484,6 +1485,12 @@ void DataTest::testSQLParse() sess.setFeature("sqlParse", false); assertTrue (!sess.getFeature("sqlParse")); +#else + + std::cout << "partial test (parser not available)"; + +#endif // POCO_DATA_NO_SQL_PARSER + stmt.reset(); stmt = (sess << "INSERT INTO Test VALUES ('1', 2, 3.5);" "SELECT * FROM Test WHERE First = ?;" @@ -1503,10 +1510,6 @@ void DataTest::testSQLParse() assertTrue (!stmt.hasInsert().isSpecified()); assertTrue (!stmt.isDelete().isSpecified()); assertTrue (!stmt.hasDelete().isSpecified()); - -#else - std::cout << "[NOT ENABLED]"; -#endif // POCO_DATA_NO_SQL_PARSER } diff --git a/Foundation/include/Poco/Config.h b/Foundation/include/Poco/Config.h index f64628659..61311b1cc 100644 --- a/Foundation/include/Poco/Config.h +++ b/Foundation/include/Poco/Config.h @@ -220,13 +220,13 @@ #define POCO_HAVE_CPP17_COMPILER (__cplusplus >= 201703L) -// Uncomment to disable usage of SQLParser +// Uncomment to explicitly disable SQLParser // #define POCO_DATA_NO_SQL_PARSER -// Enable usage of SQL parser in Poco::Data +// Automatically disable SQL parser for < c++17 compile #if !defined(POCO_DATA_NO_SQL_PARSER) - #ifdef POCO_HAVE_CPP17_COMPILER - #define POCO_DATA_ENABLE_SQL_PARSER + #ifndef POCO_HAVE_CPP17_COMPILER + #define POCO_DATA_NO_SQL_PARSER #endif #endif diff --git a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter.progen b/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter.progen index 518a9d34a..dbae00da9 100644 --- a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter.progen +++ b/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/DateTime/DateTime.progen b/Foundation/samples/DateTime/DateTime.progen index 518a9d34a..dbae00da9 100644 --- a/Foundation/samples/DateTime/DateTime.progen +++ b/Foundation/samples/DateTime/DateTime.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/LineEndingConverter/LineEndingConverter.progen b/Foundation/samples/LineEndingConverter/LineEndingConverter.progen index 518a9d34a..dbae00da9 100644 --- a/Foundation/samples/LineEndingConverter/LineEndingConverter.progen +++ b/Foundation/samples/LineEndingConverter/LineEndingConverter.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/LogRotation/LogRotation.progen b/Foundation/samples/LogRotation/LogRotation.progen index 518a9d34a..dbae00da9 100644 --- a/Foundation/samples/LogRotation/LogRotation.progen +++ b/Foundation/samples/LogRotation/LogRotation.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/Logger/Logger.progen b/Foundation/samples/Logger/Logger.progen index 518a9d34a..dbae00da9 100644 --- a/Foundation/samples/Logger/Logger.progen +++ b/Foundation/samples/Logger/Logger.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/NotificationQueue/NotificationQueue.progen b/Foundation/samples/NotificationQueue/NotificationQueue.progen index 518a9d34a..dbae00da9 100644 --- a/Foundation/samples/NotificationQueue/NotificationQueue.progen +++ b/Foundation/samples/NotificationQueue/NotificationQueue.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/StringTokenizer/StringTokenizer.progen b/Foundation/samples/StringTokenizer/StringTokenizer.progen index 518a9d34a..dbae00da9 100644 --- a/Foundation/samples/StringTokenizer/StringTokenizer.progen +++ b/Foundation/samples/StringTokenizer/StringTokenizer.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/Timer/Timer.progen b/Foundation/samples/Timer/Timer.progen index 518a9d34a..dbae00da9 100644 --- a/Foundation/samples/Timer/Timer.progen +++ b/Foundation/samples/Timer/Timer.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/URI/URI.progen b/Foundation/samples/URI/URI.progen index 518a9d34a..dbae00da9 100644 --- a/Foundation/samples/URI/URI.progen +++ b/Foundation/samples/URI/URI.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/base64decode/base64decode.progen b/Foundation/samples/base64decode/base64decode.progen index 518a9d34a..dbae00da9 100644 --- a/Foundation/samples/base64decode/base64decode.progen +++ b/Foundation/samples/base64decode/base64decode.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/base64encode/base64encode.progen b/Foundation/samples/base64encode/base64encode.progen index 518a9d34a..dbae00da9 100644 --- a/Foundation/samples/base64encode/base64encode.progen +++ b/Foundation/samples/base64encode/base64encode.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/deflate/deflate.progen b/Foundation/samples/deflate/deflate.progen index 518a9d34a..dbae00da9 100644 --- a/Foundation/samples/deflate/deflate.progen +++ b/Foundation/samples/deflate/deflate.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/dir/dir.progen b/Foundation/samples/dir/dir.progen index 518a9d34a..dbae00da9 100644 --- a/Foundation/samples/dir/dir.progen +++ b/Foundation/samples/dir/dir.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/grep/grep.progen b/Foundation/samples/grep/grep.progen index 518a9d34a..dbae00da9 100644 --- a/Foundation/samples/grep/grep.progen +++ b/Foundation/samples/grep/grep.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/hmacmd5/hmacmd5.progen b/Foundation/samples/hmacmd5/hmacmd5.progen index 518a9d34a..dbae00da9 100644 --- a/Foundation/samples/hmacmd5/hmacmd5.progen +++ b/Foundation/samples/hmacmd5/hmacmd5.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/inflate/inflate.progen b/Foundation/samples/inflate/inflate.progen index 518a9d34a..dbae00da9 100644 --- a/Foundation/samples/inflate/inflate.progen +++ b/Foundation/samples/inflate/inflate.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/md5/md5.progen b/Foundation/samples/md5/md5.progen index 518a9d34a..dbae00da9 100644 --- a/Foundation/samples/md5/md5.progen +++ b/Foundation/samples/md5/md5.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/uuidgen/uuidgen.progen b/Foundation/samples/uuidgen/uuidgen.progen index 518a9d34a..dbae00da9 100644 --- a/Foundation/samples/uuidgen/uuidgen.progen +++ b/Foundation/samples/uuidgen/uuidgen.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/JSON/JSON.progen b/JSON/JSON.progen index cb3ce16f5..1502f6624 100644 --- a/JSON/JSON.progen +++ b/JSON/JSON.progen @@ -12,6 +12,6 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/JSON/samples/Benchmark/Benchmark.progen b/JSON/samples/Benchmark/Benchmark.progen index d0d81fca9..40e486bd7 100644 --- a/JSON/samples/Benchmark/Benchmark.progen +++ b/JSON/samples/Benchmark/Benchmark.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\JSON\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/JSON/testsuite/TestSuite.progen b/JSON/testsuite/TestSuite.progen index a9a55670a..d5a1c2f16 100644 --- a/JSON/testsuite/TestSuite.progen +++ b/JSON/testsuite/TestSuite.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = iphlpapi.lib diff --git a/JWT/JWT.progen b/JWT/JWT.progen index 70f081e9e..c8b7f83f2 100644 --- a/JWT/JWT.progen +++ b/JWT/JWT.progen @@ -11,6 +11,6 @@ vc.project.compiler.include = ..\\Foundation\\include;..\\JSON\\include;..\\Cryp vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/JWT/testsuite/TestSuite.progen b/JWT/testsuite/TestSuite.progen index 72c40da85..9f509e17a 100644 --- a/JWT/testsuite/TestSuite.progen +++ b/JWT/testsuite/TestSuite.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\JSON\\include;..\\..\\Crypto\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/MongoDB/MongoDB.progen b/MongoDB/MongoDB.progen index 67595ba84..3eca02b91 100644 --- a/MongoDB/MongoDB.progen +++ b/MongoDB/MongoDB.progen @@ -12,6 +12,6 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/MongoDB/samples/SQLToMongo/SQLToMongo.progen b/MongoDB/samples/SQLToMongo/SQLToMongo.progen index 602fdc35e..1543dabdb 100644 --- a/MongoDB/samples/SQLToMongo/SQLToMongo.progen +++ b/MongoDB/samples/SQLToMongo/SQLToMongo.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Net\\include;..\\..\\..\\MongoDB\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/MongoDB/testsuite/TestSuite.progen b/MongoDB/testsuite/TestSuite.progen index fb74be89f..c1bc49fed 100644 --- a/MongoDB/testsuite/TestSuite.progen +++ b/MongoDB/testsuite/TestSuite.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/Net.progen b/Net/Net.progen index 50812acf6..1c5bbcbb9 100644 --- a/Net/Net.progen +++ b/Net/Net.progen @@ -12,7 +12,7 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/Net/samples/EchoServer/EchoServer.progen b/Net/samples/EchoServer/EchoServer.progen index c610dc055..ede2c7832 100644 --- a/Net/samples/EchoServer/EchoServer.progen +++ b/Net/samples/EchoServer/EchoServer.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/HTTPFormServer/HTTPFormServer.progen b/Net/samples/HTTPFormServer/HTTPFormServer.progen index c610dc055..ede2c7832 100644 --- a/Net/samples/HTTPFormServer/HTTPFormServer.progen +++ b/Net/samples/HTTPFormServer/HTTPFormServer.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/HTTPLoadTest/HTTPLoadTest.progen b/Net/samples/HTTPLoadTest/HTTPLoadTest.progen index c610dc055..ede2c7832 100644 --- a/Net/samples/HTTPLoadTest/HTTPLoadTest.progen +++ b/Net/samples/HTTPLoadTest/HTTPLoadTest.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/HTTPTimeServer/HTTPTimeServer.progen b/Net/samples/HTTPTimeServer/HTTPTimeServer.progen index c610dc055..ede2c7832 100644 --- a/Net/samples/HTTPTimeServer/HTTPTimeServer.progen +++ b/Net/samples/HTTPTimeServer/HTTPTimeServer.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/Mail/Mail.progen b/Net/samples/Mail/Mail.progen index c610dc055..ede2c7832 100644 --- a/Net/samples/Mail/Mail.progen +++ b/Net/samples/Mail/Mail.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/Ping/Ping.progen b/Net/samples/Ping/Ping.progen index c610dc055..ede2c7832 100644 --- a/Net/samples/Ping/Ping.progen +++ b/Net/samples/Ping/Ping.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/SMTPLogger/SMTPLogger.progen b/Net/samples/SMTPLogger/SMTPLogger.progen index c610dc055..ede2c7832 100644 --- a/Net/samples/SMTPLogger/SMTPLogger.progen +++ b/Net/samples/SMTPLogger/SMTPLogger.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/TimeServer/TimeServer.progen b/Net/samples/TimeServer/TimeServer.progen index c610dc055..ede2c7832 100644 --- a/Net/samples/TimeServer/TimeServer.progen +++ b/Net/samples/TimeServer/TimeServer.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/WebSocketServer/WebSocketServer.progen b/Net/samples/WebSocketServer/WebSocketServer.progen index c610dc055..ede2c7832 100644 --- a/Net/samples/WebSocketServer/WebSocketServer.progen +++ b/Net/samples/WebSocketServer/WebSocketServer.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/dict/dict.progen b/Net/samples/dict/dict.progen index c610dc055..ede2c7832 100644 --- a/Net/samples/dict/dict.progen +++ b/Net/samples/dict/dict.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/download/download.progen b/Net/samples/download/download.progen index c610dc055..ede2c7832 100644 --- a/Net/samples/download/download.progen +++ b/Net/samples/download/download.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/httpget/httpget.progen b/Net/samples/httpget/httpget.progen index c610dc055..ede2c7832 100644 --- a/Net/samples/httpget/httpget.progen +++ b/Net/samples/httpget/httpget.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/ifconfig/ifconfig.progen b/Net/samples/ifconfig/ifconfig.progen index c610dc055..ede2c7832 100644 --- a/Net/samples/ifconfig/ifconfig.progen +++ b/Net/samples/ifconfig/ifconfig.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/tcpserver/tcpserver.progen b/Net/samples/tcpserver/tcpserver.progen index 9ffca51c2..70c16504a 100644 --- a/Net/samples/tcpserver/tcpserver.progen +++ b/Net/samples/tcpserver/tcpserver.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/testsuite/TestSuite.progen b/Net/testsuite/TestSuite.progen index f65485977..205fabcee 100644 --- a/Net/testsuite/TestSuite.progen +++ b/Net/testsuite/TestSuite.progen @@ -7,6 +7,6 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies = iphlpapi.lib vc.project.linker.dependencies.Win32 = ws2_32.lib diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL.progen b/NetSSL_OpenSSL/NetSSL_OpenSSL.progen index 507316953..6e03a7bc7 100644 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL.progen +++ b/NetSSL_OpenSSL/NetSSL_OpenSSL.progen @@ -12,7 +12,7 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = NetSSL_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer.progen b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer.progen index 6c28cacf4..b7b3a1b28 100644 --- a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer.progen +++ b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_OpenSSL/samples/Mail/Mail.progen b/NetSSL_OpenSSL/samples/Mail/Mail.progen index 6c28cacf4..b7b3a1b28 100644 --- a/NetSSL_OpenSSL/samples/Mail/Mail.progen +++ b/NetSSL_OpenSSL/samples/Mail/Mail.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP.progen b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP.progen index 6c28cacf4..b7b3a1b28 100644 --- a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP.progen +++ b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient.progen b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient.progen index aab070e1a..8a5572545 100644 --- a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient.progen +++ b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\JSON\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_OpenSSL/samples/download/download.progen b/NetSSL_OpenSSL/samples/download/download.progen index 6c28cacf4..b7b3a1b28 100644 --- a/NetSSL_OpenSSL/samples/download/download.progen +++ b/NetSSL_OpenSSL/samples/download/download.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_OpenSSL/testsuite/TestSuite.progen b/NetSSL_OpenSSL/testsuite/TestSuite.progen index 61b90bc37..adcae7daa 100644 --- a/NetSSL_OpenSSL/testsuite/TestSuite.progen +++ b/NetSSL_OpenSSL/testsuite/TestSuite.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\XML\\include;..\\..\\Util\\include;..\\..\\Net\\include;..\\..\\Crypto\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_Win/NetSSL_Win.progen b/NetSSL_Win/NetSSL_Win.progen index 4e149bcb0..10824e6a8 100644 --- a/NetSSL_Win/NetSSL_Win.progen +++ b/NetSSL_Win/NetSSL_Win.progen @@ -12,7 +12,7 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib Crypt32.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.progen b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.progen index 9225aa0c3..c63b31f35 100644 --- a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.progen +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_Win\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_Win/samples/Mail/Mail.progen b/NetSSL_Win/samples/Mail/Mail.progen index 9225aa0c3..c63b31f35 100644 --- a/NetSSL_Win/samples/Mail/Mail.progen +++ b/NetSSL_Win/samples/Mail/Mail.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_Win\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_Win/samples/download/download.progen b/NetSSL_Win/samples/download/download.progen index 9225aa0c3..c63b31f35 100644 --- a/NetSSL_Win/samples/download/download.progen +++ b/NetSSL_Win/samples/download/download.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_Win\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_Win/testsuite/TestSuite.progen b/NetSSL_Win/testsuite/TestSuite.progen index f22128754..6be09147b 100644 --- a/NetSSL_Win/testsuite/TestSuite.progen +++ b/NetSSL_Win/testsuite/TestSuite.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\XML\\include;..\\..\\Util\\include;..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/PDF/PDF.progen b/PDF/PDF.progen index 12898d52a..f187804ea 100644 --- a/PDF/PDF.progen +++ b/PDF/PDF.progen @@ -12,6 +12,6 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = _CRT_SECURE_NO_WARNINGS;${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/PDF/samples/Image/Image.progen b/PDF/samples/Image/Image.progen index ae20fcfeb..aa38e179b 100644 --- a/PDF/samples/Image/Image.progen +++ b/PDF/samples/Image/Image.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\PDF\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies = diff --git a/PDF/samples/Template/Template.progen b/PDF/samples/Template/Template.progen index 8ec52a56c..028bc844f 100644 --- a/PDF/samples/Template/Template.progen +++ b/PDF/samples/Template/Template.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\PDF\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies = diff --git a/PDF/samples/Text/Text.progen b/PDF/samples/Text/Text.progen index ae20fcfeb..aa38e179b 100644 --- a/PDF/samples/Text/Text.progen +++ b/PDF/samples/Text/Text.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\PDF\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies = diff --git a/PDF/testsuite/TestSuite.progen b/PDF/testsuite/TestSuite.progen index 17f326951..fbe3e7456 100644 --- a/PDF/testsuite/TestSuite.progen +++ b/PDF/testsuite/TestSuite.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\XML\\include;..\\..\\Util\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies = iphlpapi.lib diff --git a/PageCompiler/File2Page/File2Page.progen b/PageCompiler/File2Page/File2Page.progen index 8dd0d26ff..fd5708eca 100644 --- a/PageCompiler/File2Page/File2Page.progen +++ b/PageCompiler/File2Page/File2Page.progen @@ -12,6 +12,6 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib vc.solution.create = true diff --git a/PageCompiler/PageCompiler.progen b/PageCompiler/PageCompiler.progen index 4535e63db..d0193b1bf 100644 --- a/PageCompiler/PageCompiler.progen +++ b/PageCompiler/PageCompiler.progen @@ -12,6 +12,6 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib vc.solution.create = true diff --git a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer.progen b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer.progen index c610dc055..ede2c7832 100644 --- a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer.progen +++ b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/PocoDoc/PocoDoc.progen b/PocoDoc/PocoDoc.progen index 555286756..832c985c5 100644 --- a/PocoDoc/PocoDoc.progen +++ b/PocoDoc/PocoDoc.progen @@ -12,6 +12,6 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib vc.solution.create = true diff --git a/ProGen/ProGen.progen b/ProGen/ProGen.progen index 0cb9602be..93a3aecb4 100644 --- a/ProGen/ProGen.progen +++ b/ProGen/ProGen.progen @@ -12,6 +12,6 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib vc.solution.create = true diff --git a/ProGen/src/ProGen.cpp b/ProGen/src/ProGen.cpp index 236f4f0c2..394f3e1bf 100644 --- a/ProGen/src/ProGen.cpp +++ b/ProGen/src/ProGen.cpp @@ -584,6 +584,11 @@ protected: void fix2022Project(Poco::AutoPtr pProjectDoc, const std::set& configSet, const std::string& platform, const Poco::Util::AbstractConfiguration& projectProps, const Poco::Util::AbstractConfiguration& templateProps) { + // TODO: handle standards + // in template: + // LanguageStandard="${vc.project.compiler.std.cpp}" + // LanguageStandard_C="${vc.project.compiler.std.c}" + // for now, we're getting by through AdditionalOptions for C++ fix20XXProject(pProjectDoc, configSet, platform, projectProps, templateProps, "v143"); Poco::AutoPtr pLinkList = pProjectDoc->getElementsByTagName("Link"); for (unsigned long i = 0; i < pLinkList->length(); i++) diff --git a/ProGen/templates/vs170/Win32/executable/debug_shared-ARM64.template b/ProGen/templates/vs170/Win32/executable/debug_shared-ARM64.template index 0d017f174..6e09c7f52 100644 --- a/ProGen/templates/vs170/Win32/executable/debug_shared-ARM64.template +++ b/ProGen/templates/vs170/Win32/executable/debug_shared-ARM64.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/debug_shared-Win32.template b/ProGen/templates/vs170/Win32/executable/debug_shared-Win32.template index 1e53f6525..f0cbc374c 100644 --- a/ProGen/templates/vs170/Win32/executable/debug_shared-Win32.template +++ b/ProGen/templates/vs170/Win32/executable/debug_shared-Win32.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/debug_shared-x64.template b/ProGen/templates/vs170/Win32/executable/debug_shared-x64.template index 6a60609f9..3269b7d49 100644 --- a/ProGen/templates/vs170/Win32/executable/debug_shared-x64.template +++ b/ProGen/templates/vs170/Win32/executable/debug_shared-x64.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/debug_static_md-ARM64.template b/ProGen/templates/vs170/Win32/executable/debug_static_md-ARM64.template index 50ec13b97..6e92191b0 100644 --- a/ProGen/templates/vs170/Win32/executable/debug_static_md-ARM64.template +++ b/ProGen/templates/vs170/Win32/executable/debug_static_md-ARM64.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/debug_static_md-Win32.template b/ProGen/templates/vs170/Win32/executable/debug_static_md-Win32.template index 2c81701b8..4cbbc03c1 100644 --- a/ProGen/templates/vs170/Win32/executable/debug_static_md-Win32.template +++ b/ProGen/templates/vs170/Win32/executable/debug_static_md-Win32.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/debug_static_md-x64.template b/ProGen/templates/vs170/Win32/executable/debug_static_md-x64.template index 540787176..eea5e259c 100644 --- a/ProGen/templates/vs170/Win32/executable/debug_static_md-x64.template +++ b/ProGen/templates/vs170/Win32/executable/debug_static_md-x64.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/debug_static_mt-ARM64.template b/ProGen/templates/vs170/Win32/executable/debug_static_mt-ARM64.template index d2f06f731..5859224fb 100644 --- a/ProGen/templates/vs170/Win32/executable/debug_static_mt-ARM64.template +++ b/ProGen/templates/vs170/Win32/executable/debug_static_mt-ARM64.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/debug_static_mt-Win32.template b/ProGen/templates/vs170/Win32/executable/debug_static_mt-Win32.template index a157cc259..0eed84cbf 100644 --- a/ProGen/templates/vs170/Win32/executable/debug_static_mt-Win32.template +++ b/ProGen/templates/vs170/Win32/executable/debug_static_mt-Win32.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/debug_static_mt-x64.template b/ProGen/templates/vs170/Win32/executable/debug_static_mt-x64.template index 2c8579500..c09aa9775 100644 --- a/ProGen/templates/vs170/Win32/executable/debug_static_mt-x64.template +++ b/ProGen/templates/vs170/Win32/executable/debug_static_mt-x64.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/release_shared-ARM64.template b/ProGen/templates/vs170/Win32/executable/release_shared-ARM64.template index f94c04259..a06010b86 100644 --- a/ProGen/templates/vs170/Win32/executable/release_shared-ARM64.template +++ b/ProGen/templates/vs170/Win32/executable/release_shared-ARM64.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/release_shared-Win32.template b/ProGen/templates/vs170/Win32/executable/release_shared-Win32.template index 74fec5f6c..83c779a50 100644 --- a/ProGen/templates/vs170/Win32/executable/release_shared-Win32.template +++ b/ProGen/templates/vs170/Win32/executable/release_shared-Win32.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/release_shared-x64.template b/ProGen/templates/vs170/Win32/executable/release_shared-x64.template index c413c620a..6afe64a20 100644 --- a/ProGen/templates/vs170/Win32/executable/release_shared-x64.template +++ b/ProGen/templates/vs170/Win32/executable/release_shared-x64.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/release_static_md-ARM64.template b/ProGen/templates/vs170/Win32/executable/release_static_md-ARM64.template index 58247df7e..c28555a5b 100644 --- a/ProGen/templates/vs170/Win32/executable/release_static_md-ARM64.template +++ b/ProGen/templates/vs170/Win32/executable/release_static_md-ARM64.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/release_static_md-Win32.template b/ProGen/templates/vs170/Win32/executable/release_static_md-Win32.template index adcc9bbdc..04586914d 100644 --- a/ProGen/templates/vs170/Win32/executable/release_static_md-Win32.template +++ b/ProGen/templates/vs170/Win32/executable/release_static_md-Win32.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/release_static_md-x64.template b/ProGen/templates/vs170/Win32/executable/release_static_md-x64.template index 070e042c6..9591713e2 100644 --- a/ProGen/templates/vs170/Win32/executable/release_static_md-x64.template +++ b/ProGen/templates/vs170/Win32/executable/release_static_md-x64.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/release_static_mt-ARM64.template b/ProGen/templates/vs170/Win32/executable/release_static_mt-ARM64.template index a475f27ce..d7a7e0bac 100644 --- a/ProGen/templates/vs170/Win32/executable/release_static_mt-ARM64.template +++ b/ProGen/templates/vs170/Win32/executable/release_static_mt-ARM64.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/release_static_mt-Win32.template b/ProGen/templates/vs170/Win32/executable/release_static_mt-Win32.template index 5ee732a05..c43771347 100644 --- a/ProGen/templates/vs170/Win32/executable/release_static_mt-Win32.template +++ b/ProGen/templates/vs170/Win32/executable/release_static_mt-Win32.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/executable/release_static_mt-x64.template b/ProGen/templates/vs170/Win32/executable/release_static_mt-x64.template index a2a3f4d2f..8c7889cb0 100644 --- a/ProGen/templates/vs170/Win32/executable/release_static_mt-x64.template +++ b/ProGen/templates/vs170/Win32/executable/release_static_mt-x64.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/debug_shared-ARM64.template b/ProGen/templates/vs170/Win32/library/debug_shared-ARM64.template index 67e9e2a4f..ff733b5e6 100644 --- a/ProGen/templates/vs170/Win32/library/debug_shared-ARM64.template +++ b/ProGen/templates/vs170/Win32/library/debug_shared-ARM64.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/debug_shared-Win32.template b/ProGen/templates/vs170/Win32/library/debug_shared-Win32.template index bbeb15f41..1e6ef2e2d 100644 --- a/ProGen/templates/vs170/Win32/library/debug_shared-Win32.template +++ b/ProGen/templates/vs170/Win32/library/debug_shared-Win32.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/debug_shared-x64.template b/ProGen/templates/vs170/Win32/library/debug_shared-x64.template index b2fbd27b2..587c848b9 100644 --- a/ProGen/templates/vs170/Win32/library/debug_shared-x64.template +++ b/ProGen/templates/vs170/Win32/library/debug_shared-x64.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/debug_static_md-ARM64.template b/ProGen/templates/vs170/Win32/library/debug_static_md-ARM64.template index ad65de228..5f67b3f22 100644 --- a/ProGen/templates/vs170/Win32/library/debug_static_md-ARM64.template +++ b/ProGen/templates/vs170/Win32/library/debug_static_md-ARM64.template @@ -39,6 +39,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/debug_static_md-Win32.template b/ProGen/templates/vs170/Win32/library/debug_static_md-Win32.template index 7b84792b8..be12f08aa 100644 --- a/ProGen/templates/vs170/Win32/library/debug_static_md-Win32.template +++ b/ProGen/templates/vs170/Win32/library/debug_static_md-Win32.template @@ -39,6 +39,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/debug_static_md-x64.template b/ProGen/templates/vs170/Win32/library/debug_static_md-x64.template index 786a86bc4..6aa1d4336 100644 --- a/ProGen/templates/vs170/Win32/library/debug_static_md-x64.template +++ b/ProGen/templates/vs170/Win32/library/debug_static_md-x64.template @@ -39,6 +39,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/debug_static_mt-ARM64.template b/ProGen/templates/vs170/Win32/library/debug_static_mt-ARM64.template index 756c090cf..f9df17907 100644 --- a/ProGen/templates/vs170/Win32/library/debug_static_mt-ARM64.template +++ b/ProGen/templates/vs170/Win32/library/debug_static_mt-ARM64.template @@ -39,6 +39,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/debug_static_mt-Win32.template b/ProGen/templates/vs170/Win32/library/debug_static_mt-Win32.template index 2522fe20d..02b3e5774 100644 --- a/ProGen/templates/vs170/Win32/library/debug_static_mt-Win32.template +++ b/ProGen/templates/vs170/Win32/library/debug_static_mt-Win32.template @@ -39,6 +39,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/debug_static_mt-x64.template b/ProGen/templates/vs170/Win32/library/debug_static_mt-x64.template index b2233a300..9900351b9 100644 --- a/ProGen/templates/vs170/Win32/library/debug_static_mt-x64.template +++ b/ProGen/templates/vs170/Win32/library/debug_static_mt-x64.template @@ -39,6 +39,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/release_shared-ARM64.template b/ProGen/templates/vs170/Win32/library/release_shared-ARM64.template index c87d1875d..2b35da9ce 100644 --- a/ProGen/templates/vs170/Win32/library/release_shared-ARM64.template +++ b/ProGen/templates/vs170/Win32/library/release_shared-ARM64.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/release_shared-Win32.template b/ProGen/templates/vs170/Win32/library/release_shared-Win32.template index d21a8d6f3..afdf988d2 100644 --- a/ProGen/templates/vs170/Win32/library/release_shared-Win32.template +++ b/ProGen/templates/vs170/Win32/library/release_shared-Win32.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/release_shared-x64.template b/ProGen/templates/vs170/Win32/library/release_shared-x64.template index bb3287cee..d0f231df5 100644 --- a/ProGen/templates/vs170/Win32/library/release_shared-x64.template +++ b/ProGen/templates/vs170/Win32/library/release_shared-x64.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/release_static_md-ARM64.template b/ProGen/templates/vs170/Win32/library/release_static_md-ARM64.template index b485e3433..eac1fc53a 100644 --- a/ProGen/templates/vs170/Win32/library/release_static_md-ARM64.template +++ b/ProGen/templates/vs170/Win32/library/release_static_md-ARM64.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/release_static_md-Win32.template b/ProGen/templates/vs170/Win32/library/release_static_md-Win32.template index b731abaad..f77d914c2 100644 --- a/ProGen/templates/vs170/Win32/library/release_static_md-Win32.template +++ b/ProGen/templates/vs170/Win32/library/release_static_md-Win32.template @@ -42,6 +42,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/release_static_md-x64.template b/ProGen/templates/vs170/Win32/library/release_static_md-x64.template index 57d54d0a4..91596d53f 100644 --- a/ProGen/templates/vs170/Win32/library/release_static_md-x64.template +++ b/ProGen/templates/vs170/Win32/library/release_static_md-x64.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/release_static_mt-ARM64.template b/ProGen/templates/vs170/Win32/library/release_static_mt-ARM64.template index 7d5b194e8..9fc9bac97 100644 --- a/ProGen/templates/vs170/Win32/library/release_static_mt-ARM64.template +++ b/ProGen/templates/vs170/Win32/library/release_static_mt-ARM64.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/release_static_mt-Win32.template b/ProGen/templates/vs170/Win32/library/release_static_mt-Win32.template index eb99d59a2..c7ee3da27 100644 --- a/ProGen/templates/vs170/Win32/library/release_static_mt-Win32.template +++ b/ProGen/templates/vs170/Win32/library/release_static_mt-Win32.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/library/release_static_mt-x64.template b/ProGen/templates/vs170/Win32/library/release_static_mt-x64.template index 4bcb145b4..167881543 100644 --- a/ProGen/templates/vs170/Win32/library/release_static_mt-x64.template +++ b/ProGen/templates/vs170/Win32/library/release_static_mt-x64.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/plugin/debug_shared-ARM64.template b/ProGen/templates/vs170/Win32/plugin/debug_shared-ARM64.template index 14180efa7..ce397d049 100644 --- a/ProGen/templates/vs170/Win32/plugin/debug_shared-ARM64.template +++ b/ProGen/templates/vs170/Win32/plugin/debug_shared-ARM64.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/plugin/debug_shared-Win32.template b/ProGen/templates/vs170/Win32/plugin/debug_shared-Win32.template index 7eb7c39e2..4e2541a71 100644 --- a/ProGen/templates/vs170/Win32/plugin/debug_shared-Win32.template +++ b/ProGen/templates/vs170/Win32/plugin/debug_shared-Win32.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/plugin/debug_shared-x64.template b/ProGen/templates/vs170/Win32/plugin/debug_shared-x64.template index d3a864e67..1ae6b0e05 100644 --- a/ProGen/templates/vs170/Win32/plugin/debug_shared-x64.template +++ b/ProGen/templates/vs170/Win32/plugin/debug_shared-x64.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/plugin/release_shared-ARM64.template b/ProGen/templates/vs170/Win32/plugin/release_shared-ARM64.template index d963a40a5..6171ef1c7 100644 --- a/ProGen/templates/vs170/Win32/plugin/release_shared-ARM64.template +++ b/ProGen/templates/vs170/Win32/plugin/release_shared-ARM64.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/plugin/release_shared-Win32.template b/ProGen/templates/vs170/Win32/plugin/release_shared-Win32.template index c7f434704..4c3250275 100644 --- a/ProGen/templates/vs170/Win32/plugin/release_shared-Win32.template +++ b/ProGen/templates/vs170/Win32/plugin/release_shared-Win32.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/plugin/release_shared-x64.template b/ProGen/templates/vs170/Win32/plugin/release_shared-x64.template index 348c2b6af..286237b32 100644 --- a/ProGen/templates/vs170/Win32/plugin/release_shared-x64.template +++ b/ProGen/templates/vs170/Win32/plugin/release_shared-x64.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_shared-ARM64.template b/ProGen/templates/vs170/Win32/testsuite/debug_shared-ARM64.template index cc5e42b6f..c96761832 100644 --- a/ProGen/templates/vs170/Win32/testsuite/debug_shared-ARM64.template +++ b/ProGen/templates/vs170/Win32/testsuite/debug_shared-ARM64.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_shared-Win32.template b/ProGen/templates/vs170/Win32/testsuite/debug_shared-Win32.template index f22beb012..9d82b2d58 100644 --- a/ProGen/templates/vs170/Win32/testsuite/debug_shared-Win32.template +++ b/ProGen/templates/vs170/Win32/testsuite/debug_shared-Win32.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_shared-x64.template b/ProGen/templates/vs170/Win32/testsuite/debug_shared-x64.template index fadac8ccb..6badd1a14 100644 --- a/ProGen/templates/vs170/Win32/testsuite/debug_shared-x64.template +++ b/ProGen/templates/vs170/Win32/testsuite/debug_shared-x64.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_static_md-ARM64.template b/ProGen/templates/vs170/Win32/testsuite/debug_static_md-ARM64.template index 7a76dfec1..075924d57 100644 --- a/ProGen/templates/vs170/Win32/testsuite/debug_static_md-ARM64.template +++ b/ProGen/templates/vs170/Win32/testsuite/debug_static_md-ARM64.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_static_md-Win32.template b/ProGen/templates/vs170/Win32/testsuite/debug_static_md-Win32.template index bb7df4cc0..c31cf435a 100644 --- a/ProGen/templates/vs170/Win32/testsuite/debug_static_md-Win32.template +++ b/ProGen/templates/vs170/Win32/testsuite/debug_static_md-Win32.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_static_md-x64.template b/ProGen/templates/vs170/Win32/testsuite/debug_static_md-x64.template index 3def75c6b..8ec7c04b4 100644 --- a/ProGen/templates/vs170/Win32/testsuite/debug_static_md-x64.template +++ b/ProGen/templates/vs170/Win32/testsuite/debug_static_md-x64.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-ARM64.template b/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-ARM64.template index 2a49771ca..c54f2c6b5 100644 --- a/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-ARM64.template +++ b/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-ARM64.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-Win32.template b/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-Win32.template index 432af105c..ec9d6244c 100644 --- a/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-Win32.template +++ b/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-Win32.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-x64.template b/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-x64.template index 1e62bd6f3..032e87005 100644 --- a/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-x64.template +++ b/ProGen/templates/vs170/Win32/testsuite/debug_static_mt-x64.template @@ -38,6 +38,8 @@ DebugInformationFormat="3" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/release_shared-ARM64.template b/ProGen/templates/vs170/Win32/testsuite/release_shared-ARM64.template index 019792bc4..58a940bef 100644 --- a/ProGen/templates/vs170/Win32/testsuite/release_shared-ARM64.template +++ b/ProGen/templates/vs170/Win32/testsuite/release_shared-ARM64.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/release_shared-Win32.template b/ProGen/templates/vs170/Win32/testsuite/release_shared-Win32.template index 5f87dd23f..daf4781cb 100644 --- a/ProGen/templates/vs170/Win32/testsuite/release_shared-Win32.template +++ b/ProGen/templates/vs170/Win32/testsuite/release_shared-Win32.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/release_shared-x64.template b/ProGen/templates/vs170/Win32/testsuite/release_shared-x64.template index 29a6d078f..a100e0fa7 100644 --- a/ProGen/templates/vs170/Win32/testsuite/release_shared-x64.template +++ b/ProGen/templates/vs170/Win32/testsuite/release_shared-x64.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/release_static_md-ARM64.template b/ProGen/templates/vs170/Win32/testsuite/release_static_md-ARM64.template index b61783cef..cbd712ef5 100644 --- a/ProGen/templates/vs170/Win32/testsuite/release_static_md-ARM64.template +++ b/ProGen/templates/vs170/Win32/testsuite/release_static_md-ARM64.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/release_static_md-Win32.template b/ProGen/templates/vs170/Win32/testsuite/release_static_md-Win32.template index 56748c8d6..4308e6bcc 100644 --- a/ProGen/templates/vs170/Win32/testsuite/release_static_md-Win32.template +++ b/ProGen/templates/vs170/Win32/testsuite/release_static_md-Win32.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/release_static_md-x64.template b/ProGen/templates/vs170/Win32/testsuite/release_static_md-x64.template index 4a2e95d19..53444e6a3 100644 --- a/ProGen/templates/vs170/Win32/testsuite/release_static_md-x64.template +++ b/ProGen/templates/vs170/Win32/testsuite/release_static_md-x64.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/release_static_mt-ARM64.template b/ProGen/templates/vs170/Win32/testsuite/release_static_mt-ARM64.template index feeb99467..d1d18b5b6 100644 --- a/ProGen/templates/vs170/Win32/testsuite/release_static_mt-ARM64.template +++ b/ProGen/templates/vs170/Win32/testsuite/release_static_mt-ARM64.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/release_static_mt-Win32.template b/ProGen/templates/vs170/Win32/testsuite/release_static_mt-Win32.template index bec106742..1583ff998 100644 --- a/ProGen/templates/vs170/Win32/testsuite/release_static_mt-Win32.template +++ b/ProGen/templates/vs170/Win32/testsuite/release_static_mt-Win32.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs170/Win32/testsuite/release_static_mt-x64.template b/ProGen/templates/vs170/Win32/testsuite/release_static_mt-x64.template index f6b12737a..123fb0728 100644 --- a/ProGen/templates/vs170/Win32/testsuite/release_static_mt-x64.template +++ b/ProGen/templates/vs170/Win32/testsuite/release_static_mt-x64.template @@ -41,6 +41,8 @@ DebugInformationFormat="0" CompileAs="0" ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/Prometheus/Prometheus.progen b/Prometheus/Prometheus.progen index cfe4ce225..e24b46f91 100644 --- a/Prometheus/Prometheus.progen +++ b/Prometheus/Prometheus.progen @@ -12,6 +12,6 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/Prometheus/samples/MetricsSample/MetricsSample.progen b/Prometheus/samples/MetricsSample/MetricsSample.progen index db3ccc99f..a6047e0a0 100644 --- a/Prometheus/samples/MetricsSample/MetricsSample.progen +++ b/Prometheus/samples/MetricsSample/MetricsSample.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Util\\include;..\\..\\..\\XML\\include;..\\..\\..\\JSON\\include;..\\..\\..\\Net\\include;..\\..\\..\\Prometheus\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Prometheus/testsuite/TestSuite.progen b/Prometheus/testsuite/TestSuite.progen index 3fd46be00..21c033eab 100644 --- a/Prometheus/testsuite/TestSuite.progen +++ b/Prometheus/testsuite/TestSuite.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Net\\include;..\\..\\Prometheus\\include;.\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus \ No newline at end of file +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 \ No newline at end of file diff --git a/Redis/Redis.progen b/Redis/Redis.progen index a3300cd1f..6f31b281c 100644 --- a/Redis/Redis.progen +++ b/Redis/Redis.progen @@ -12,6 +12,6 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/Redis/testsuite/TestSuite.progen b/Redis/testsuite/TestSuite.progen index fb74be89f..c1bc49fed 100644 --- a/Redis/testsuite/TestSuite.progen +++ b/Redis/testsuite/TestSuite.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/SevenZip/SevenZip.progen b/SevenZip/SevenZip.progen index 704a7a428..b262740ed 100644 --- a/SevenZip/SevenZip.progen +++ b/SevenZip/SevenZip.progen @@ -13,5 +13,5 @@ vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.disableWarnings = 4244;4267 -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.solution.create = true diff --git a/SevenZip/samples/un7zip/un7zip.progen b/SevenZip/samples/un7zip/un7zip.progen index be513ad17..90a8dd807 100644 --- a/SevenZip/samples/un7zip/un7zip.progen +++ b/SevenZip/samples/un7zip/un7zip.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\SevenZip\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 diff --git a/Util/Util.progen b/Util/Util.progen index 465e2dbdb..67580f011 100644 --- a/Util/Util.progen +++ b/Util/Util.progen @@ -8,7 +8,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\Foundation\\include;..\\XML\\include;..\\JSON\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} diff --git a/Util/samples/SampleApp/SampleApp.progen b/Util/samples/SampleApp/SampleApp.progen index 36407c412..b1d2420a5 100644 --- a/Util/samples/SampleApp/SampleApp.progen +++ b/Util/samples/SampleApp/SampleApp.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Util/samples/SampleServer/SampleServer.progen b/Util/samples/SampleServer/SampleServer.progen index 36407c412..b1d2420a5 100644 --- a/Util/samples/SampleServer/SampleServer.progen +++ b/Util/samples/SampleServer/SampleServer.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Util/samples/Units/Units.progen b/Util/samples/Units/Units.progen index bb80bca91..80c2d2653 100644 --- a/Util/samples/Units/Units.progen +++ b/Util/samples/Units/Units.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Util\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 diff --git a/Util/samples/pkill/pkill.progen b/Util/samples/pkill/pkill.progen index 36407c412..b1d2420a5 100644 --- a/Util/samples/pkill/pkill.progen +++ b/Util/samples/pkill/pkill.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Util/testsuite/TestSuite.progen b/Util/testsuite/TestSuite.progen index c734b414d..2280fee75 100644 --- a/Util/testsuite/TestSuite.progen +++ b/Util/testsuite/TestSuite.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\XML\\include;..\\..\\JSON\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = iphlpapi.lib diff --git a/XML/XML.progen b/XML/XML.progen index e8b0f0645..da5e6529f 100644 --- a/XML/XML.progen +++ b/XML/XML.progen @@ -12,6 +12,6 @@ vc.project.compiler.defines = XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/XML/samples/DOMParser/DOMParser.progen b/XML/samples/DOMParser/DOMParser.progen index cd5b15cf0..299a2da6e 100644 --- a/XML/samples/DOMParser/DOMParser.progen +++ b/XML/samples/DOMParser/DOMParser.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/XML/samples/DOMWriter/DOMWriter.progen b/XML/samples/DOMWriter/DOMWriter.progen index cd5b15cf0..299a2da6e 100644 --- a/XML/samples/DOMWriter/DOMWriter.progen +++ b/XML/samples/DOMWriter/DOMWriter.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/XML/samples/PrettyPrint/PrettyPrint.progen b/XML/samples/PrettyPrint/PrettyPrint.progen index cd5b15cf0..299a2da6e 100644 --- a/XML/samples/PrettyPrint/PrettyPrint.progen +++ b/XML/samples/PrettyPrint/PrettyPrint.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/XML/samples/SAXParser/SAXParser.progen b/XML/samples/SAXParser/SAXParser.progen index cd5b15cf0..299a2da6e 100644 --- a/XML/samples/SAXParser/SAXParser.progen +++ b/XML/samples/SAXParser/SAXParser.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/XML/testsuite/TestSuite.progen b/XML/testsuite/TestSuite.progen index 09d789f80..99ba45b05 100644 --- a/XML/testsuite/TestSuite.progen +++ b/XML/testsuite/TestSuite.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies = iphlpapi.lib diff --git a/Zip/Zip.progen b/Zip/Zip.progen index fbcba85bf..c3cddae59 100644 --- a/Zip/Zip.progen +++ b/Zip/Zip.progen @@ -13,7 +13,7 @@ vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.disableWarnings = 4244;4267 -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/Zip/samples/unzip/unzip.progen b/Zip/samples/unzip/unzip.progen index 2df44952a..32577f864 100644 --- a/Zip/samples/unzip/unzip.progen +++ b/Zip/samples/unzip/unzip.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Zip\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Zip/samples/zip/zip.progen b/Zip/samples/zip/zip.progen index 2df44952a..32577f864 100644 --- a/Zip/samples/zip/zip.progen +++ b/Zip/samples/zip/zip.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Zip\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Zip/testsuite/TestSuite.progen b/Zip/testsuite/TestSuite.progen index 132ab0546..1617f52d8 100644 --- a/Zip/testsuite/TestSuite.progen +++ b/Zip/testsuite/TestSuite.progen @@ -7,6 +7,6 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.linker.dependencies = iphlpapi.lib From 05645bff159d28a8c564a7d3ad49d75bae682462 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Mon, 6 Nov 2023 11:00:07 +0100 Subject: [PATCH 182/395] fix(cmake): add missing Data define --- Data/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Data/CMakeLists.txt b/Data/CMakeLists.txt index 4da7d5979..5542b7e94 100644 --- a/Data/CMakeLists.txt +++ b/Data/CMakeLists.txt @@ -31,6 +31,9 @@ set_target_properties(Data DEFINE_SYMBOL Data_EXPORTS ) +if (NOT POCO_DATA_NO_SQL_PARSER) + target_compile_definitions(Data PUBLIC -DSQLParser_EXPORTS) +endif() target_link_libraries(Data PUBLIC Poco::Foundation) target_include_directories(Data PUBLIC From 6317398162023958cf3829955cc5d9a6d9433ddc Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Mon, 6 Nov 2023 11:01:18 +0100 Subject: [PATCH 183/395] fix(buildwin): add ARM64 and fix formatting and code style --- buildwin.ps1 | 82 +++++++++++++++++++++++++--------------------------- 1 file changed, 40 insertions(+), 42 deletions(-) diff --git a/buildwin.ps1 b/buildwin.ps1 index 93fac1f08..95c453849 100644 --- a/buildwin.ps1 +++ b/buildwin.ps1 @@ -41,7 +41,7 @@ Param [string] $config = 'release', [Parameter()] - [ValidateSet('Win32', 'x64', 'WinCE', 'WEC2013')] + [ValidateSet('Win32', 'x64', 'ARM64', 'WinCE', 'WEC2013')] [string] $platform = 'x64', [switch] $tests = $false, @@ -93,8 +93,8 @@ function Add-VSCOMNTOOLS([int] $vsver) { $range='[17.0,18.0)' } - - $installationPath = Get-VSSetupInstance | Select-VSSetupInstance -Version $range -product * -Latest -Require Microsoft.VisualStudio.Component.VC.Tools.x86.x64 | select InstallationPath + + $installationPath = Get-VSSetupInstance | Select-VSSetupInstance -Version $range -product * -Latest -Require Microsoft.VisualStudio.Component.VC.Tools.x86.x64 | Select-Object InstallationPath $vscomntools = $installationPath.psobject.properties.Value; if ($vsver -eq 150) { @@ -145,17 +145,17 @@ function Set-Environment $script:openssl_base = "$poco_base\openssl" } - $Env:OPENSSL_DIR = "$openssl_base" + $Env:OPENSSL_DIR = "$openssl_base" $Env:OPENSSL_INCLUDE = "$Env:OPENSSL_DIR\include" - $Env:OPENSSL_LIB = "$Env:OPENSSL_DIR\lib;$Env:OPENSSL_DIR\lib\VC" + $Env:OPENSSL_LIB = "$Env:OPENSSL_DIR\lib;$Env:OPENSSL_DIR\lib\VC" Add-Env-Var "OPENSSL" "INCLUDE" Add-Env-Var "OPENSSL" "LIB" if ($mysql_base -ne '') { - $Env:MYSQL_DIR = "$mysql_base" + $Env:MYSQL_DIR = "$mysql_base" $Env:MYSQL_INCLUDE = "$Env:MYSQL_DIR\include" - $Env:MYSQL_LIB = "$Env:MYSQL_DIR\lib" + $Env:MYSQL_LIB = "$Env:MYSQL_DIR\lib" Add-Env-Var "MYSQL" "INCLUDE" Add-Env-Var "MYSQL" "LIB" } @@ -166,7 +166,7 @@ function Set-Environment $Command = '' $CommandArg = '' if ($platform -eq 'x64') { $CommandArg = "amd64" } - else { $CommandArg = "x86" } + else { $CommandArg = "x86" } if ($vs -eq 150) { $Command = Resolve-Path "$($vsdir)\..\..\VC\Auxiliary\Build\vcvarsall.bat" @@ -209,20 +209,20 @@ function Process-Input { Write-Host 'Usage:' Write-Host '------' - Write-Host 'buildwin.ps1 [-poco_base ]' - Write-Host ' [-vs 140 | 150 | 160 | 170]' - Write-Host ' [-action build | rebuild | clean]' - Write-Host ' [-linkmode shared | static_mt | static_md | all]' - Write-Host ' [-config release | debug | both]' - Write-Host ' [-platform Win32 | x64 | WinCE | WEC2013]' - Write-Host ' [-samples]' - Write-Host ' [-tests]' - Write-Host ' [-omit "Lib1X,LibY,LibZ,..."]' - Write-Host ' [-tool msbuild | devenv]' - Write-Host ' [-useenv env | noenv]' - Write-Host ' [-verbosity minimal | quiet | normal | detailed | diagnostic' - Write-Host ' [-openssl_base ]' - Write-Host ' [-mysql_base ]' + Write-Host 'buildwin.ps1 [-poco_base ]' + Write-Host ' [-vs 140 | 150 | 160 | 170]' + Write-Host ' [-action build | rebuild | clean]' + Write-Host ' [-linkmode shared | static_mt | static_md | all]' + Write-Host ' [-config release | debug | both]' + Write-Host ' [-platform Win32 | x64 | WinCE | WEC2013]' + Write-Host ' [-samples]' + Write-Host ' [-tests]' + Write-Host ' [-omit "Lib1X,LibY,LibZ,..."]' + Write-Host ' [-tool msbuild | devenv]' + Write-Host ' [-useenv env | noenv]' + Write-Host ' [-verbosity minimal | quiet | normal | detailed | diagnostic' + Write-Host ' [-openssl_base ]' + Write-Host ' [-mysql_base ]' Exit } @@ -232,29 +232,29 @@ function Process-Input Write-Host "Build configuration:" Write-Host "--------------------" - Write-Host "Poco Base: $poco_base" - Write-Host "Version: $vs" - Write-Host "Action: $action" - Write-Host "Link Mode: $linkmode" + Write-Host "Poco Base: $poco_base" + Write-Host "Version: $vs" + Write-Host "Action: $action" + Write-Host "Link Mode: $linkmode" Write-Host "Configuration: $config" - Write-Host "Platform: $platform" - Write-Host "Tests: $tests" - Write-Host "Samples: $samples" - Write-Host "Build Tool: $tool" + Write-Host "Platform: $platform" + Write-Host "Tests: $tests" + Write-Host "Samples: $samples" + Write-Host "Build Tool: $tool" if ($omit -ne '') { - Write-Host "Omit: $omit" + Write-Host "Omit: $omit" } if ($openssl_base -ne '') { - Write-Host "OpenSSL: $openssl_base" + Write-Host "OpenSSL: $openssl_base" } if ($mysql_base -ne '') { - Write-Host "MySQL: $mysql_base" + Write-Host "MySQL: $mysql_base" } # NB: this won't work in PowerShell ISE @@ -410,7 +410,7 @@ function Build-Exec([string] $tool, [string] $vsProject, [switch] $skipStatic) function Build-Components([string] $extension, [string] $type) -{ +{ Get-Content "$poco_base\components" | Foreach-Object { $component = $_ @@ -420,10 +420,10 @@ function Build-Components([string] $extension, [string] $type) $suffix = "_vs$vs" $omitArray = @() - $omit.Split(',') | ForEach { + $omit.Split(',') | ForEach-Object { $omitArray += $_.Trim() } - + if ($omitArray -NotContains $component) { $vsProject = "$poco_base\$componentDir\$componentName$($suffix).$($extension)" @@ -476,13 +476,13 @@ function Build-Components([string] $extension, [string] $type) if ($platform -eq 'x64') { Get-Childitem "$poco_base\$($componentDir)" -Recurse |` - Where {$_.Extension -Match $extension -And $_.DirectoryName -Like "*samples*" -And $_.BaseName -Like "*$($suffix)" } ` + Where-Object {$_.Extension -Match $extension -And $_.DirectoryName -Like "*samples*" -And $_.BaseName -Like "*$($suffix)" } ` | Build-samples "$_" } else { Get-Childitem "$poco_base\$($componentDir)" -Recurse |` - Where {$_.Extension -Match $extension -And $_.DirectoryName -Like "*samples*" -And $_.BaseName -Like "*$($suffix)" -And $_.BaseName -NotLike "*_x64_*" } ` + Where-Object {$_.Extension -Match $extension -And $_.DirectoryName -Like "*samples*" -And $_.BaseName -Like "*$($suffix)" -And $_.BaseName -NotLike "*_x64_*" } ` | Build-samples "$_" } } @@ -501,10 +501,8 @@ function Build { Process-Input - if ($vs -lt 100) { $extension = 'vcproj' } - else { $extension = 'vcxproj' } - - + if ($vs -lt 100) { $extension = 'vcproj' } + else { $extension = 'vcxproj' } Build-Components $extension "lib" Build-Components $extension "test" From 90f64af08701e5202c958ff64f80dd885bc1a230 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Mon, 6 Nov 2023 12:32:17 +0100 Subject: [PATCH 184/395] fix(build): update buildwin.ps1 script for ARM64; regenerate Data dependent VS2022 projects --- ActiveRecord/ActiveRecord.progen | 2 +- ActiveRecord/ActiveRecord_vs170.vcxproj | 69 +++++++++-------- .../ActiveRecord_vs170.vcxproj.filters | 6 +- ActiveRecord/testsuite/TestSuite.progen | 3 +- .../testsuite/TestSuite_vs170.vcxproj | 74 ++++++++++++------- .../testsuite/TestSuite_vs170.vcxproj.filters | 8 +- Data/MySQL/MySQL.progen | 3 +- Data/MySQL/MySQL_VS90.vcproj | 12 +-- Data/MySQL/MySQL_vs170.vcxproj | 69 +++++++++-------- Data/MySQL/testsuite/TestSuite.progen | 3 +- Data/MySQL/testsuite/TestSuite_VS90.vcproj | 12 +-- Data/MySQL/testsuite/TestSuite_vs170.vcxproj | 74 ++++++++++++------- .../testsuite/TestSuite_vs170.vcxproj.filters | 16 ++-- Data/ODBC/ODBC.progen | 2 +- Data/ODBC/ODBC_VS90.vcproj | 12 +-- Data/ODBC/ODBC_vs170.vcxproj | 69 +++++++++-------- Data/ODBC/ODBC_vs170.vcxproj.filters | 6 +- Data/ODBC/testsuite/TestSuite.progen | 2 +- Data/ODBC/testsuite/TestSuite_VS90.vcproj | 12 +-- Data/ODBC/testsuite/TestSuite_vs170.vcxproj | 74 ++++++++++++------- .../testsuite/TestSuite_vs170.vcxproj.filters | 16 ++-- Data/PostgreSQL/PostgreSQL.progen | 3 +- Data/PostgreSQL/PostgreSQL_VS90.vcproj | 12 +-- Data/PostgreSQL/PostgreSQL_vs170.vcxproj | 69 +++++++++-------- Data/PostgreSQL/testsuite/TestSuite.progen | 3 +- .../testsuite/TestSuite_VS90.vcproj | 12 +-- .../testsuite/TestSuite_vs170.vcxproj | 74 ++++++++++++------- .../testsuite/TestSuite_vs170.vcxproj.filters | 16 ++-- Data/SQLite/SQLite.progen | 2 +- Data/SQLite/SQLite_VS90.vcproj | 12 +-- Data/SQLite/SQLite_vs170.vcxproj | 69 +++++++++-------- Data/SQLite/SQLite_vs170.vcxproj.filters | 12 +-- Data/SQLite/testsuite/TestSuite.progen | 2 +- Data/SQLite/testsuite/TestSuite_VS90.vcproj | 12 +-- Data/SQLite/testsuite/TestSuite_vs170.vcxproj | 74 ++++++++++++------- .../testsuite/TestSuite_vs170.vcxproj.filters | 16 ++-- buildwin.ps1 | 24 ++++-- 37 files changed, 560 insertions(+), 396 deletions(-) diff --git a/ActiveRecord/ActiveRecord.progen b/ActiveRecord/ActiveRecord.progen index 08164c1db..3862b7c1a 100644 --- a/ActiveRecord/ActiveRecord.progen +++ b/ActiveRecord/ActiveRecord.progen @@ -7,7 +7,7 @@ vc.project.outdir = ${vc.project.pocobase} vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\Foundation\\include, ..\\Data\\include +vc.project.compiler.include = ..\\Foundation\\include;..\\Data\\include;..\\Data\\src vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}Lib_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} diff --git a/ActiveRecord/ActiveRecord_vs170.vcxproj b/ActiveRecord/ActiveRecord_vs170.vcxproj index d0af33fa4..cc4b70f39 100644 --- a/ActiveRecord/ActiveRecord_vs170.vcxproj +++ b/ActiveRecord/ActiveRecord_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34202.158 PocoActiveRecordA64d PocoActiveRecordmdd PocoActiveRecordmtd @@ -331,7 +331,7 @@ Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -344,13 +344,14 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true ..\binA64\PocoActiveRecordA64d.dll true true - ..\binA64\PocoActiveRecordA64d.pdb + $(OutDir)$(TargetName).pdb ..\libA64;%(AdditionalLibraryDirectories) Console ..\libA64\PocoActiveRecordd.lib @@ -364,7 +365,7 @@ true Speed true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -376,6 +377,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -393,7 +395,7 @@ Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -403,7 +405,7 @@ true true - ..\libA64\PocoActiveRecordmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -420,7 +422,7 @@ true Speed true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -432,6 +434,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -441,7 +444,7 @@ Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -451,7 +454,7 @@ true true - ..\libA64\PocoActiveRecordmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -468,7 +471,7 @@ true Speed true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -480,6 +483,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -489,7 +493,7 @@ Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -502,13 +506,14 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true ..\bin\PocoActiveRecordd.dll true true - ..\bin\PocoActiveRecordd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoActiveRecordd.lib @@ -522,7 +527,7 @@ true Speed true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -534,6 +539,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -551,7 +557,7 @@ Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -561,7 +567,7 @@ true true - ..\lib\PocoActiveRecordmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -578,7 +584,7 @@ true Speed true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -590,6 +596,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -599,7 +606,7 @@ Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -609,7 +616,7 @@ true true - ..\lib\PocoActiveRecordmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -626,7 +633,7 @@ true Speed true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -635,7 +642,7 @@ true true - ..\lib\PocoActiveRecordmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -648,7 +655,7 @@ Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -661,13 +668,14 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true ..\bin64\PocoActiveRecord64d.dll true true - ..\bin64\PocoActiveRecord64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoActiveRecordd.lib @@ -681,7 +689,7 @@ true Speed true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -693,6 +701,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -710,7 +719,7 @@ Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -720,7 +729,7 @@ true true - ..\lib64\PocoActiveRecordmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -737,7 +746,7 @@ true Speed true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -749,6 +758,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -758,7 +768,7 @@ Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -768,7 +778,7 @@ true true - ..\lib64\PocoActiveRecordmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -785,7 +795,7 @@ true Speed true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -797,6 +807,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true diff --git a/ActiveRecord/ActiveRecord_vs170.vcxproj.filters b/ActiveRecord/ActiveRecord_vs170.vcxproj.filters index f036fdfe6..a0d823385 100644 --- a/ActiveRecord/ActiveRecord_vs170.vcxproj.filters +++ b/ActiveRecord/ActiveRecord_vs170.vcxproj.filters @@ -2,13 +2,13 @@ - {9cca8535-cf0a-4522-9de3-ea3b7be7f991} + {c01cecef-6df2-46a3-ab05-46ed396f6038} - {bd01a2c1-30a0-4c11-b18c-70c3151b477b} + {f809bd11-fc6a-401f-82bd-e20950f1d1b0} - {5e2b163d-82cb-47c5-9df3-11bdd30c15c0} + {114f7d6f-450f-4730-afc3-93c52413d20f} diff --git a/ActiveRecord/testsuite/TestSuite.progen b/ActiveRecord/testsuite/TestSuite.progen index b94f31e3b..a13c41243 100644 --- a/ActiveRecord/testsuite/TestSuite.progen +++ b/ActiveRecord/testsuite/TestSuite.progen @@ -6,4 +6,5 @@ vc.project.pocobase = ..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj -vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Data\\include;..\\..\\Data\\SQLite\\include;..\\..\\ActiveRecord\\include;.\\include +vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Data\\include;..\\..\\Data\\src; \ + ..\\..\\Data\\SQLite\\include;..\\..\\ActiveRecord\\include;.\\include diff --git a/ActiveRecord/testsuite/TestSuite_vs170.vcxproj b/ActiveRecord/testsuite/TestSuite_vs170.vcxproj index 12f536372..b23bf7325 100644 --- a/ActiveRecord/testsuite/TestSuite_vs170.vcxproj +++ b/ActiveRecord/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34202.158 TestSuited TestSuited TestSuited @@ -343,7 +343,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -356,6 +356,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -364,7 +365,7 @@ ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -376,7 +377,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -388,6 +389,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -404,7 +406,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -417,6 +419,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -425,7 +428,7 @@ ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -437,7 +440,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -449,6 +452,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -465,7 +469,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -478,6 +482,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -486,7 +491,7 @@ ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -498,7 +503,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -510,6 +515,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -526,7 +532,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -539,6 +545,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -547,7 +554,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -559,7 +566,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -571,6 +578,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -587,7 +595,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -600,6 +608,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -608,7 +617,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -620,7 +629,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -632,6 +641,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -648,7 +658,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -661,6 +671,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -669,7 +680,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -681,7 +692,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -693,6 +704,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -709,7 +721,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -722,6 +734,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -730,7 +743,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -742,7 +755,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -754,6 +767,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -770,7 +784,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -783,6 +797,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -791,7 +806,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -803,7 +818,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -815,6 +830,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -831,7 +847,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -844,6 +860,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -852,7 +869,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -864,7 +881,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -876,6 +893,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true diff --git a/ActiveRecord/testsuite/TestSuite_vs170.vcxproj.filters b/ActiveRecord/testsuite/TestSuite_vs170.vcxproj.filters index dfc3e31e2..22cc7d8d6 100644 --- a/ActiveRecord/testsuite/TestSuite_vs170.vcxproj.filters +++ b/ActiveRecord/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,16 +2,16 @@ - {3947c588-f807-4200-8275-91de658656ab} + {0a7b641a-4834-4f9f-b017-9a4120774ae0} - {df9bd59e-3743-49b1-900f-090f8eab11e3} + {6defcb8f-d22e-403f-ac23-1bc786b2bc04} - {283726aa-5601-40b5-bd69-30f542c4ed53} + {7d34b586-f30f-4dfa-9b2d-21b929412de4} - {4fb792f6-42f2-4d69-b1ca-e6fd68675b6f} + {869d3957-fe79-4b78-8f7f-a9836d60d780} diff --git a/Data/MySQL/MySQL.progen b/Data/MySQL/MySQL.progen index 683714c5f..278d9fef7 100644 --- a/Data/MySQL/MySQL.progen +++ b/Data/MySQL/MySQL.progen @@ -7,7 +7,8 @@ vc.project.outdir = ${vc.project.pocobase} vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ${vc.project.pocobase}\\Foundation\\include;${vc.project.pocobase}\\Data\\include;${vc.project.pocobase}\\mysql\\include +vc.project.compiler.include = ${vc.project.pocobase}\\Foundation\\include; \ + ${vc.project.pocobase}\\Data\\include;${vc.project.pocobase}\\Data\\src;${vc.project.pocobase}\\mysql\\include vc.project.compiler.defines = THREADSAFE;__LCC__ vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} diff --git a/Data/MySQL/MySQL_VS90.vcproj b/Data/MySQL/MySQL_VS90.vcproj index 5dca686e7..5399c652d 100644 --- a/Data/MySQL/MySQL_VS90.vcproj +++ b/Data/MySQL/MySQL_VS90.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;..\..\mysql\include" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS" StringPooling="true" MinimalRebuild="true" @@ -136,7 +136,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;..\..\mysql\include" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS" StringPooling="true" RuntimeLibrary="2" @@ -224,7 +224,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;..\..\mysql\include" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__" StringPooling="true" MinimalRebuild="true" @@ -302,7 +302,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;..\..\mysql\include" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__" StringPooling="true" RuntimeLibrary="0" @@ -373,7 +373,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;..\..\mysql\include" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__" StringPooling="true" MinimalRebuild="true" @@ -451,7 +451,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;..\..\mysql\include" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__" StringPooling="true" RuntimeLibrary="2" diff --git a/Data/MySQL/MySQL_vs170.vcxproj b/Data/MySQL/MySQL_vs170.vcxproj index 29b7943d6..abb5d2eb7 100644 --- a/Data/MySQL/MySQL_vs170.vcxproj +++ b/Data/MySQL/MySQL_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34202.158 PocoDataMySQLA64d PocoDataMySQLmdd PocoDataMySQLmtd @@ -331,7 +331,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -344,13 +344,14 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true ..\..\binA64\PocoDataMySQLA64d.dll true true - ..\..\binA64\PocoDataMySQLA64d.pdb + $(OutDir)$(TargetName).pdb ..\..\libA64;%(AdditionalLibraryDirectories) Console ..\..\libA64\PocoDataMySQLd.lib @@ -364,7 +365,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -376,6 +377,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -393,7 +395,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -403,7 +405,7 @@ true true - ..\..\libA64\PocoDataMySQLmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -420,7 +422,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreaded @@ -432,6 +434,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -441,7 +444,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -451,7 +454,7 @@ true true - ..\..\libA64\PocoDataMySQLmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -468,7 +471,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -480,6 +483,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -489,7 +493,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -502,13 +506,14 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true ..\..\bin\PocoDataMySQLd.dll true true - ..\..\bin\PocoDataMySQLd.pdb + $(OutDir)$(TargetName).pdb ..\..\lib;%(AdditionalLibraryDirectories) Console ..\..\lib\PocoDataMySQLd.lib @@ -522,7 +527,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -534,6 +539,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -551,7 +557,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -561,7 +567,7 @@ true true - ..\..\lib\PocoDataMySQLmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -578,7 +584,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreaded @@ -590,6 +596,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -599,7 +606,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -609,7 +616,7 @@ true true - ..\..\lib\PocoDataMySQLmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -626,7 +633,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -635,7 +642,7 @@ true true - ..\..\lib\PocoDataMySQLmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -648,7 +655,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -661,13 +668,14 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true ..\..\bin64\PocoDataMySQL64d.dll true true - ..\..\bin64\PocoDataMySQL64d.pdb + $(OutDir)$(TargetName).pdb ..\..\lib64;%(AdditionalLibraryDirectories) Console ..\..\lib64\PocoDataMySQLd.lib @@ -681,7 +689,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -693,6 +701,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -710,7 +719,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -720,7 +729,7 @@ true true - ..\..\lib64\PocoDataMySQLmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -737,7 +746,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreaded @@ -749,6 +758,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -758,7 +768,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -768,7 +778,7 @@ true true - ..\..\lib64\PocoDataMySQLmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -785,7 +795,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -797,6 +807,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true diff --git a/Data/MySQL/testsuite/TestSuite.progen b/Data/MySQL/testsuite/TestSuite.progen index a9fedf186..bce2d53ac 100644 --- a/Data/MySQL/testsuite/TestSuite.progen +++ b/Data/MySQL/testsuite/TestSuite.progen @@ -7,5 +7,6 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj mysql = ${vc.project.pocobase}\\mysql -vc.project.compiler.include = ${mysql}\\include;${vc.project.pocobase}\\Foundation\\include;${vc.project.pocobase}\\Data\\include +vc.project.compiler.include = ${mysql}\\include;${vc.project.pocobase}\\Foundation\\include; \ + ${vc.project.pocobase}\\Data\\include;${vc.project.pocobase}\\Data\\src vc.project.linker.dependencies.Win32 = iphlpapi.lib diff --git a/Data/MySQL/testsuite/TestSuite_VS90.vcproj b/Data/MySQL/testsuite/TestSuite_VS90.vcproj index 2fcd438be..84d1c7f37 100644 --- a/Data/MySQL/testsuite/TestSuite_VS90.vcproj +++ b/Data/MySQL/testsuite/TestSuite_VS90.vcproj @@ -32,7 +32,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34202.158 TestSuited TestSuited TestSuited @@ -343,7 +343,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -356,6 +356,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -364,7 +365,7 @@ ..\..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -376,7 +377,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -388,6 +389,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -404,7 +406,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -417,6 +419,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -425,7 +428,7 @@ ..\..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -437,7 +440,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -449,6 +452,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -465,7 +469,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -478,6 +482,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -486,7 +491,7 @@ ..\..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -498,7 +503,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -510,6 +515,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -526,7 +532,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -539,6 +545,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -547,7 +554,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -559,7 +566,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -571,6 +578,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -587,7 +595,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -600,6 +608,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -608,7 +617,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -620,7 +629,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -632,6 +641,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -648,7 +658,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -661,6 +671,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -669,7 +680,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -681,7 +692,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -693,6 +704,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -709,7 +721,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -722,6 +734,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -730,7 +743,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -742,7 +755,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -754,6 +767,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -770,7 +784,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -783,6 +797,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -791,7 +806,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -803,7 +818,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -815,6 +830,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -831,7 +847,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -844,6 +860,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -852,7 +869,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -864,7 +881,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -876,6 +893,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true diff --git a/Data/MySQL/testsuite/TestSuite_vs170.vcxproj.filters b/Data/MySQL/testsuite/TestSuite_vs170.vcxproj.filters index 1c224ebde..a235d3676 100644 --- a/Data/MySQL/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Data/MySQL/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,28 +2,28 @@ - {449315c7-5108-4fb4-b8a0-0442787a8945} + {7a2de31a-3851-4088-9c14-706e03473109} - {2fa4dffd-6dba-4189-b9f5-3c4a041e6809} + {af663958-170c-4adf-a2fc-e3dde9fedc84} - {cb8a4a23-72b2-4622-ac88-ded8df44a54a} + {359523e9-e866-44ed-874f-6c9bcf60e2a4} - {da3d59c5-7f8e-4ffe-942d-cecdeee6ec58} + {69d7242c-ec6a-46cf-b40f-54e3c8981e6c} - {7d488ccf-a2e1-42d4-b6bd-fc91269fb5df} + {669b37d9-6a2e-4919-af2e-4255d5a2b76b} - {90fc90a8-745f-4296-a8e9-7a09caef75f8} + {aa49fa04-b549-4203-9916-6cb958d4d3b2} - {848aa036-edb1-4b2e-bd60-8db096b13241} + {0b628b67-c9e4-471f-944f-37cd6a0726e2} - {ff2f59ec-d56d-45a5-890a-0a0a6cd26044} + {3f6f87ea-5a64-4efc-901b-ceb8cebf4468} diff --git a/Data/ODBC/ODBC.progen b/Data/ODBC/ODBC.progen index c4f142f67..05f759a12 100644 --- a/Data/ODBC/ODBC.progen +++ b/Data/ODBC/ODBC.progen @@ -7,7 +7,7 @@ vc.project.outdir = ${vc.project.pocobase} vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Data\\include +vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Data\\include;..\\..\\Data\\src vc.project.compiler.defines = THREADSAFE vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} diff --git a/Data/ODBC/ODBC_VS90.vcproj b/Data/ODBC/ODBC_VS90.vcproj index dc090854e..656632804 100644 --- a/Data/ODBC/ODBC_VS90.vcproj +++ b/Data/ODBC/ODBC_VS90.vcproj @@ -42,7 +42,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS" StringPooling="true" MinimalRebuild="true" @@ -134,7 +134,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS" StringPooling="true" RuntimeLibrary="2" @@ -221,7 +221,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE" StringPooling="true" MinimalRebuild="true" @@ -298,7 +298,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE" StringPooling="true" RuntimeLibrary="0" @@ -368,7 +368,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE" StringPooling="true" MinimalRebuild="true" @@ -445,7 +445,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE" StringPooling="true" RuntimeLibrary="2" diff --git a/Data/ODBC/ODBC_vs170.vcxproj b/Data/ODBC/ODBC_vs170.vcxproj index 52b5e120f..267f337ab 100644 --- a/Data/ODBC/ODBC_vs170.vcxproj +++ b/Data/ODBC/ODBC_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34202.158 PocoDataODBCA64d PocoDataODBCmdd PocoDataODBCmtd @@ -331,7 +331,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -344,6 +344,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -351,7 +352,7 @@ ..\..\binA64\PocoDataODBCA64d.dll true true - ..\..\binA64\PocoDataODBCA64d.pdb + $(OutDir)$(TargetName).pdb ..\..\libA64;%(AdditionalLibraryDirectories) Console ..\..\libA64\PocoDataODBCd.lib @@ -365,7 +366,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -377,6 +378,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -395,7 +397,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -405,7 +407,7 @@ true true - ..\..\libA64\PocoDataODBCmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -422,7 +424,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreaded @@ -434,6 +436,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -443,7 +446,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -453,7 +456,7 @@ true true - ..\..\libA64\PocoDataODBCmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -470,7 +473,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -482,6 +485,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -491,7 +495,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -504,6 +508,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -511,7 +516,7 @@ ..\..\bin\PocoDataODBCd.dll true true - ..\..\bin\PocoDataODBCd.pdb + $(OutDir)$(TargetName).pdb ..\..\lib;%(AdditionalLibraryDirectories) Console ..\..\lib\PocoDataODBCd.lib @@ -525,7 +530,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -537,6 +542,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -555,7 +561,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -565,7 +571,7 @@ true true - ..\..\lib\PocoDataODBCmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -582,7 +588,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreaded @@ -594,6 +600,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -603,7 +610,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -613,7 +620,7 @@ true true - ..\..\lib\PocoDataODBCmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -630,7 +637,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -639,7 +646,7 @@ true true - ..\..\lib\PocoDataODBCmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -653,7 +660,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -666,6 +673,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -673,7 +681,7 @@ ..\..\bin64\PocoDataODBC64d.dll true true - ..\..\bin64\PocoDataODBC64d.pdb + $(OutDir)$(TargetName).pdb ..\..\lib64;%(AdditionalLibraryDirectories) Console ..\..\lib64\PocoDataODBCd.lib @@ -687,7 +695,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -699,6 +707,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -717,7 +726,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -727,7 +736,7 @@ true true - ..\..\lib64\PocoDataODBCmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -744,7 +753,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreaded @@ -756,6 +765,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -765,7 +775,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -775,7 +785,7 @@ true true - ..\..\lib64\PocoDataODBCmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -792,7 +802,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -804,6 +814,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true diff --git a/Data/ODBC/ODBC_vs170.vcxproj.filters b/Data/ODBC/ODBC_vs170.vcxproj.filters index 6ea3e1d0f..7cce9d8c3 100644 --- a/Data/ODBC/ODBC_vs170.vcxproj.filters +++ b/Data/ODBC/ODBC_vs170.vcxproj.filters @@ -2,13 +2,13 @@ - {b8ec0707-a887-473f-b9df-d375a3cecfc6} + {ab1bd12b-967a-48d9-a972-7079d524ac44} - {5e75780b-745d-43a9-b8d4-2df43dff6bf0} + {71ad1ef0-6dc6-45e8-8c12-1c0503e8c2e9} - {fd620827-243b-4487-8eaa-0a5fa27be6ee} + {ac1c05f5-d9ad-44cf-a750-47d34820b806} diff --git a/Data/ODBC/testsuite/TestSuite.progen b/Data/ODBC/testsuite/TestSuite.progen index e2e80ee00..49a01b0d3 100644 --- a/Data/ODBC/testsuite/TestSuite.progen +++ b/Data/ODBC/testsuite/TestSuite.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj -vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src vc.project.linker.dependencies = odbc32.lib odbccp32.lib iphlpapi.lib diff --git a/Data/ODBC/testsuite/TestSuite_VS90.vcproj b/Data/ODBC/testsuite/TestSuite_VS90.vcproj index e8678b973..40f218e0f 100644 --- a/Data/ODBC/testsuite/TestSuite_VS90.vcproj +++ b/Data/ODBC/testsuite/TestSuite_VS90.vcproj @@ -32,7 +32,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34202.158 TestSuited TestSuited TestSuited @@ -343,7 +343,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -356,6 +356,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -364,7 +365,7 @@ ..\..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -376,7 +377,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -388,6 +389,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -404,7 +406,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -417,6 +419,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -425,7 +428,7 @@ ..\..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -437,7 +440,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -449,6 +452,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -465,7 +469,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -478,6 +482,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -486,7 +491,7 @@ ..\..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -498,7 +503,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -510,6 +515,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -526,7 +532,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -539,6 +545,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -547,7 +554,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -559,7 +566,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -571,6 +578,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -587,7 +595,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -600,6 +608,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -608,7 +617,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -620,7 +629,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -632,6 +641,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -648,7 +658,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -661,6 +671,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -669,7 +680,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -681,7 +692,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -693,6 +704,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -709,7 +721,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -722,6 +734,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -730,7 +743,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -742,7 +755,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -754,6 +767,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -770,7 +784,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -783,6 +797,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -791,7 +806,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -803,7 +818,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -815,6 +830,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -831,7 +847,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -844,6 +860,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -852,7 +869,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -864,7 +881,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -876,6 +893,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true diff --git a/Data/ODBC/testsuite/TestSuite_vs170.vcxproj.filters b/Data/ODBC/testsuite/TestSuite_vs170.vcxproj.filters index 3bd195b93..0ebbcd2bf 100644 --- a/Data/ODBC/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Data/ODBC/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,28 +2,28 @@ - {cc2d8726-73aa-4a01-a748-9d5240c35137} + {8a8e9e4b-3f14-45d4-98df-f1f683ba97a4} - {679e2ecd-01b8-4875-96cc-35ee6773be2a} + {1061d731-1756-40b8-86ba-d5d65d110c74} - {ad30d348-df1b-462c-9d88-94be1caed184} + {4af6ca97-6cdf-48e7-9427-e92587d2e93a} - {7d56d4fd-4d2a-402b-b43b-237218f25a61} + {c97fa050-eabd-4021-bade-78be7a463783} - {9d4c68cd-e9c7-43fa-929e-fd784f31edf5} + {8f9726af-5a39-413e-a3e1-2fffec81087e} - {039d0dc7-42cd-4aec-8039-db32d6d02327} + {b9e2167b-6c0b-46ba-8790-09d312b6283b} - {7b6c55d5-94ba-4c63-bc86-68714e168729} + {73bfa817-5440-4fe0-82b0-d8d3d1f2b421} - {1ec29134-77b5-4419-846e-92210003beb2} + {4bcc2a95-a0be-4b9f-b55b-4b970e339390} diff --git a/Data/PostgreSQL/PostgreSQL.progen b/Data/PostgreSQL/PostgreSQL.progen index 69c140f74..02eec0eaa 100644 --- a/Data/PostgreSQL/PostgreSQL.progen +++ b/Data/PostgreSQL/PostgreSQL.progen @@ -7,7 +7,8 @@ vc.project.outdir = ${vc.project.pocobase} vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ${vc.project.pocobase}\\postgresql\\include;${vc.project.pocobase}\\Foundation\\include;${vc.project.pocobase}\\Data\\include +vc.project.compiler.include = ${vc.project.pocobase}\\postgresql\\include; \ + ${vc.project.pocobase}\\Foundation\\include;${vc.project.pocobase}\\Data\\include;${vc.project.pocobase}\\Data\\src vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} diff --git a/Data/PostgreSQL/PostgreSQL_VS90.vcproj b/Data/PostgreSQL/PostgreSQL_VS90.vcproj index 80534fd1b..59e2aca3f 100644 --- a/Data/PostgreSQL/PostgreSQL_VS90.vcproj +++ b/Data/PostgreSQL/PostgreSQL_VS90.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include" + AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS" StringPooling="true" MinimalRebuild="true" @@ -136,7 +136,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include" + AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS" StringPooling="true" RuntimeLibrary="2" @@ -224,7 +224,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include" + AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;" StringPooling="true" MinimalRebuild="true" @@ -302,7 +302,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include" + AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;" StringPooling="true" RuntimeLibrary="0" @@ -373,7 +373,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include" + AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;" StringPooling="true" MinimalRebuild="true" @@ -451,7 +451,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include" + AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;" StringPooling="true" RuntimeLibrary="2" diff --git a/Data/PostgreSQL/PostgreSQL_vs170.vcxproj b/Data/PostgreSQL/PostgreSQL_vs170.vcxproj index 20c711b26..34a4ecdf0 100644 --- a/Data/PostgreSQL/PostgreSQL_vs170.vcxproj +++ b/Data/PostgreSQL/PostgreSQL_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34202.158 PocoDataPostgreSQLA64d PocoDataPostgreSQLmdd PocoDataPostgreSQLmtd @@ -331,7 +331,7 @@ Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -344,13 +344,14 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true ..\..\binA64\PocoDataPostgreSQLA64d.dll true true - ..\..\binA64\PocoDataPostgreSQLA64d.pdb + $(OutDir)$(TargetName).pdb ..\..\libA64;%(AdditionalLibraryDirectories) Console ..\..\libA64\PocoDataPostgreSQLd.lib @@ -364,7 +365,7 @@ true Speed true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -376,6 +377,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -393,7 +395,7 @@ Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -403,7 +405,7 @@ true true - ..\..\libA64\PocoDataPostgreSQLmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -420,7 +422,7 @@ true Speed true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -432,6 +434,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -441,7 +444,7 @@ Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -451,7 +454,7 @@ true true - ..\..\libA64\PocoDataPostgreSQLmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -468,7 +471,7 @@ true Speed true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -480,6 +483,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -489,7 +493,7 @@ Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -502,13 +506,14 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true ..\..\bin\PocoDataPostgreSQLd.dll true true - ..\..\bin\PocoDataPostgreSQLd.pdb + $(OutDir)$(TargetName).pdb ..\..\lib;%(AdditionalLibraryDirectories) Console ..\..\lib\PocoDataPostgreSQLd.lib @@ -522,7 +527,7 @@ true Speed true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -534,6 +539,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -551,7 +557,7 @@ Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -561,7 +567,7 @@ true true - ..\..\lib\PocoDataPostgreSQLmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -578,7 +584,7 @@ true Speed true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -590,6 +596,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -599,7 +606,7 @@ Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -609,7 +616,7 @@ true true - ..\..\lib\PocoDataPostgreSQLmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -626,7 +633,7 @@ true Speed true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -635,7 +642,7 @@ true true - ..\..\lib\PocoDataPostgreSQLmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -648,7 +655,7 @@ Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -661,13 +668,14 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true ..\..\bin64\PocoDataPostgreSQL64d.dll true true - ..\..\bin64\PocoDataPostgreSQL64d.pdb + $(OutDir)$(TargetName).pdb ..\..\lib64;%(AdditionalLibraryDirectories) Console ..\..\lib64\PocoDataPostgreSQLd.lib @@ -681,7 +689,7 @@ true Speed true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -693,6 +701,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -710,7 +719,7 @@ Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -720,7 +729,7 @@ true true - ..\..\lib64\PocoDataPostgreSQLmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -737,7 +746,7 @@ true Speed true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -749,6 +758,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -758,7 +768,7 @@ Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -768,7 +778,7 @@ true true - ..\..\lib64\PocoDataPostgreSQLmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -785,7 +795,7 @@ true Speed true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -797,6 +807,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true diff --git a/Data/PostgreSQL/testsuite/TestSuite.progen b/Data/PostgreSQL/testsuite/TestSuite.progen index 22d6acf18..3e02e5225 100644 --- a/Data/PostgreSQL/testsuite/TestSuite.progen +++ b/Data/PostgreSQL/testsuite/TestSuite.progen @@ -7,7 +7,8 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj postgresql = ${vc.project.pocobase}\\postgresql -vc.project.compiler.include = ${postgresql}\\include;${vc.project.pocobase}\\Foundation\\include;${vc.project.pocobase}\\Data\\include +vc.project.compiler.include = ${postgresql}\\include;${vc.project.pocobase}\\Foundation\\include; \ + ${vc.project.pocobase}\\Data\\include;${vc.project.pocobase}\\Data\\src vc.project.compiler.defines = _CRT_SECURE_NO_WARNINGS vc.project.linker.dependencies = iphlpapi.lib vc.project.linker.dependencies.debug_shared = diff --git a/Data/PostgreSQL/testsuite/TestSuite_VS90.vcproj b/Data/PostgreSQL/testsuite/TestSuite_VS90.vcproj index 9166aa6f2..205430f49 100644 --- a/Data/PostgreSQL/testsuite/TestSuite_VS90.vcproj +++ b/Data/PostgreSQL/testsuite/TestSuite_VS90.vcproj @@ -32,7 +32,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34202.158 TestSuited TestSuited TestSuited @@ -343,7 +343,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -356,6 +356,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -364,7 +365,7 @@ ..\..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -376,7 +377,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -388,6 +389,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -404,7 +406,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -417,6 +419,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -425,7 +428,7 @@ ..\..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -437,7 +440,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreaded @@ -449,6 +452,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -465,7 +469,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -478,6 +482,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -486,7 +491,7 @@ ..\..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -498,7 +503,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -510,6 +515,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -526,7 +532,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -539,6 +545,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -547,7 +554,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -559,7 +566,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -571,6 +578,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -587,7 +595,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -600,6 +608,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -608,7 +617,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -620,7 +629,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreaded @@ -632,6 +641,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -648,7 +658,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -661,6 +671,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -669,7 +680,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -681,7 +692,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -693,6 +704,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -709,7 +721,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -722,6 +734,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -730,7 +743,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -742,7 +755,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -754,6 +767,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -770,7 +784,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -783,6 +797,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -791,7 +806,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -803,7 +818,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreaded @@ -815,6 +830,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -831,7 +847,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -844,6 +860,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -852,7 +869,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -864,7 +881,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -876,6 +893,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true diff --git a/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj.filters b/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj.filters index 654cc7f50..0340be8f0 100644 --- a/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,28 +2,28 @@ - {e04bdf35-1d0e-4e88-8aa7-91d0096a746d} + {40bc8f7a-43ff-4852-ace5-60ec9cddbb3a} - {cdb6bb71-611d-4ef6-afe7-0942b18f5f7b} + {748dd641-bc6f-4b96-975a-e9cb2abea6ce} - {457de2bf-00a9-46d0-b829-9c0a3fbd4047} + {5ae15642-48c5-4e25-a82e-37c0a6e23b78} - {087aa94e-c4a7-4cc1-afae-7b99f78faceb} + {1ba54474-f1cf-4aa9-8dae-c7e8cfac25fd} - {74d67af4-958c-43a4-893b-7b2b6352d3d3} + {49e48454-e8dd-4e09-88a9-aad31021d102} - {eb4721c3-d8fe-4e94-8f99-eac8123468a2} + {92138048-f8fc-45b2-ae37-1a4f2ad8458e} - {babb012a-e163-42d5-9a70-da09e565fd6e} + {bad834c6-562c-490d-9d9f-f9a237980777} - {0b607550-392b-4d42-a321-ac16d70b6e13} + {94ffbbfa-e25a-4ca2-a364-eb3c45caf208} diff --git a/Data/SQLite/SQLite.progen b/Data/SQLite/SQLite.progen index 48d7f5f4d..aae7329fa 100644 --- a/Data/SQLite/SQLite.progen +++ b/Data/SQLite/SQLite.progen @@ -7,7 +7,7 @@ vc.project.outdir = ${vc.project.pocobase} vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Data\\include +vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Data\\include;..\\..\\Data\\src vc.project.compiler.defines = SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} diff --git a/Data/SQLite/SQLite_VS90.vcproj b/Data/SQLite/SQLite_VS90.vcproj index d2fad7511..10d03ec23 100644 --- a/Data/SQLite/SQLite_VS90.vcproj +++ b/Data/SQLite/SQLite_VS90.vcproj @@ -42,7 +42,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS" StringPooling="true" MinimalRebuild="true" @@ -134,7 +134,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS" StringPooling="true" RuntimeLibrary="2" @@ -221,7 +221,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED" StringPooling="true" MinimalRebuild="true" @@ -298,7 +298,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED" StringPooling="true" RuntimeLibrary="0" @@ -368,7 +368,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED" StringPooling="true" MinimalRebuild="true" @@ -445,7 +445,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED" StringPooling="true" RuntimeLibrary="2" diff --git a/Data/SQLite/SQLite_vs170.vcxproj b/Data/SQLite/SQLite_vs170.vcxproj index d1a5bed10..de35c5c6a 100644 --- a/Data/SQLite/SQLite_vs170.vcxproj +++ b/Data/SQLite/SQLite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34202.158 PocoDataSQLiteA64d PocoDataSQLitemdd PocoDataSQLitemtd @@ -331,7 +331,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -344,6 +344,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) true @@ -351,7 +352,7 @@ ..\..\binA64\PocoDataSQLiteA64d.dll true true - ..\..\binA64\PocoDataSQLiteA64d.pdb + $(OutDir)$(TargetName).pdb ..\..\libA64;%(AdditionalLibraryDirectories) Console ..\..\libA64\PocoDataSQLited.lib @@ -365,7 +366,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -377,6 +378,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) true @@ -395,7 +397,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -405,7 +407,7 @@ true true - ..\..\libA64\PocoDataSQLitemtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -423,7 +425,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreaded @@ -435,6 +437,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) true @@ -445,7 +448,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -455,7 +458,7 @@ true true - ..\..\libA64\PocoDataSQLitemdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -473,7 +476,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -485,6 +488,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) true @@ -495,7 +499,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -508,6 +512,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) true @@ -515,7 +520,7 @@ ..\..\bin\PocoDataSQLited.dll true true - ..\..\bin\PocoDataSQLited.pdb + $(OutDir)$(TargetName).pdb ..\..\lib;%(AdditionalLibraryDirectories) Console ..\..\lib\PocoDataSQLited.lib @@ -529,7 +534,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -541,6 +546,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) true @@ -559,7 +565,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -569,7 +575,7 @@ true true - ..\..\lib\PocoDataSQLitemtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -587,7 +593,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreaded @@ -599,6 +605,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) true @@ -609,7 +616,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -619,7 +626,7 @@ true true - ..\..\lib\PocoDataSQLitemdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -637,7 +644,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -646,7 +653,7 @@ true true - ..\..\lib\PocoDataSQLitemd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -660,7 +667,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -673,6 +680,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) true @@ -680,7 +688,7 @@ ..\..\bin64\PocoDataSQLite64d.dll true true - ..\..\bin64\PocoDataSQLite64d.pdb + $(OutDir)$(TargetName).pdb ..\..\lib64;%(AdditionalLibraryDirectories) Console ..\..\lib64\PocoDataSQLited.lib @@ -694,7 +702,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -706,6 +714,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) true @@ -724,7 +733,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -734,7 +743,7 @@ true true - ..\..\lib64\PocoDataSQLitemtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -752,7 +761,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreaded @@ -764,6 +773,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) true @@ -774,7 +784,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -784,7 +794,7 @@ true true - ..\..\lib64\PocoDataSQLitemdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -802,7 +812,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -814,6 +824,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) true diff --git a/Data/SQLite/SQLite_vs170.vcxproj.filters b/Data/SQLite/SQLite_vs170.vcxproj.filters index d4c55391b..f7614bfd6 100644 --- a/Data/SQLite/SQLite_vs170.vcxproj.filters +++ b/Data/SQLite/SQLite_vs170.vcxproj.filters @@ -2,22 +2,22 @@ - {3707e952-0552-4a59-b8b5-4625c2165653} + {0f97d9c5-511d-4ad7-a417-277f1f38d433} - {b5e2c1d5-3bd7-47e1-8dd5-6cf26bfda6cd} + {28c6bf27-daea-4c82-a93e-8bfc510ed367} - {3589dfbc-d508-4ad0-92e6-47b65ad88233} + {98acac2a-fc74-41d6-9658-2beb5cccb3fc} - {b54e14c4-1d53-41dc-a5aa-489cf90ec0ed} + {e689daa1-4175-496f-a5ca-487b96adaa2e} - {7e70a235-1f11-4ac8-b77b-c7baa2cd12ad} + {f0771742-8255-465f-b48b-46534ddb0822} - {8aaf6a2f-54d5-4147-aef1-558b5ceca326} + {fbf0afec-95ea-4501-bb4b-2327a2e74670} diff --git a/Data/SQLite/testsuite/TestSuite.progen b/Data/SQLite/testsuite/TestSuite.progen index a156305a6..c0784b935 100644 --- a/Data/SQLite/testsuite/TestSuite.progen +++ b/Data/SQLite/testsuite/TestSuite.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj -vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src vc.project.linker.dependencies = iphlpapi.lib diff --git a/Data/SQLite/testsuite/TestSuite_VS90.vcproj b/Data/SQLite/testsuite/TestSuite_VS90.vcproj index 09ffaea0e..af17fce99 100644 --- a/Data/SQLite/testsuite/TestSuite_VS90.vcproj +++ b/Data/SQLite/testsuite/TestSuite_VS90.vcproj @@ -32,7 +32,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34202.158 TestSuited TestSuited TestSuited @@ -343,7 +343,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -356,6 +356,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -364,7 +365,7 @@ ..\..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -376,7 +377,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -388,6 +389,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -404,7 +406,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -417,6 +419,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -425,7 +428,7 @@ ..\..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -437,7 +440,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -449,6 +452,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -465,7 +469,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -478,6 +482,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -486,7 +491,7 @@ ..\..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -498,7 +503,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -510,6 +515,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -526,7 +532,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -539,6 +545,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -547,7 +554,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -559,7 +566,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -571,6 +578,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -587,7 +595,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -600,6 +608,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -608,7 +617,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -620,7 +629,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -632,6 +641,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -648,7 +658,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -661,6 +671,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -669,7 +680,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -681,7 +692,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -693,6 +704,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -709,7 +721,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -722,6 +734,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -730,7 +743,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -742,7 +755,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -754,6 +767,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -770,7 +784,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -783,6 +797,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -791,7 +806,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -803,7 +818,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -815,6 +830,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true @@ -831,7 +847,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -844,6 +860,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -852,7 +869,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -864,7 +881,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -876,6 +893,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true diff --git a/Data/SQLite/testsuite/TestSuite_vs170.vcxproj.filters b/Data/SQLite/testsuite/TestSuite_vs170.vcxproj.filters index 49eab5e29..5ba14b6fc 100644 --- a/Data/SQLite/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Data/SQLite/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,28 +2,28 @@ - {0f5204ab-bddc-4a41-80ae-bbc7499a76c6} + {3212c920-2f2f-4a45-90d1-a015c9249f4c} - {cbe8d249-19a2-419e-9f5e-1f476e0aa227} + {fbcc075b-24c8-4adb-a855-714a83de0d95} - {8f3961e3-9a30-455c-920d-0760d34a3d8e} + {95071351-fdb1-4abd-9f90-d8ed53a4b121} - {abfc56e0-0f63-4ddb-9b98-ae48e3b9e621} + {e7c8c73d-9ce5-4d39-af7b-5e9137e2d341} - {7353ffba-df44-4737-8d73-381589207fe3} + {6ade71f3-ab22-408a-aa9b-dd9dd505a4a2} - {9f6abdce-8c1d-4d22-9cba-1ebfa28e823c} + {2dbcfeda-f710-451f-83be-a42e16e2ea99} - {b1272400-aa82-487b-8530-0487041d459a} + {c97cc6a2-5f40-4f30-b815-7f723f3a387b} - {54958fce-0543-4d9c-931c-c5fe3a7f3e81} + {dc94f6c5-b6f8-462d-a8e9-6cf80ed5e205} diff --git a/buildwin.ps1 b/buildwin.ps1 index 95c453849..4ee8eb777 100644 --- a/buildwin.ps1 +++ b/buildwin.ps1 @@ -71,7 +71,7 @@ Param function Add-VSCOMNTOOLS([int] $vsver) { - if ($vsver -ge 150) + if ($vsver -ge 150) { $vssetup= $([Environment]::GetFolderPath("MyDocuments")) $vssetup= Join-Path $vssetup "WindowsPowerShell" @@ -94,7 +94,20 @@ function Add-VSCOMNTOOLS([int] $vsver) $range='[17.0,18.0)' } - $installationPath = Get-VSSetupInstance | Select-VSSetupInstance -Version $range -product * -Latest -Require Microsoft.VisualStudio.Component.VC.Tools.x86.x64 | Select-Object InstallationPath + $installationPath = "" + if ($platform -eq 'x64') + { + $installationPath = Get-VSSetupInstance | ` + Select-VSSetupInstance -Version $range -product * -Latest -Require Microsoft.VisualStudio.Component.VC.Tools.x86.x64 | ` + Select-Object InstallationPath + } + elseif ($platform -eq 'ARM64') + { + $installationPath = Get-VSSetupInstance | ` + Select-VSSetupInstance -Version $range -product * -Latest -Require Microsoft.VisualStudio.Component.VC.Tools.ARM64 | ` + Select-Object InstallationPath + } + $vscomntools = $installationPath.psobject.properties.Value; if ($vsver -eq 150) { @@ -166,6 +179,7 @@ function Set-Environment $Command = '' $CommandArg = '' if ($platform -eq 'x64') { $CommandArg = "amd64" } + if ($platform -eq 'ARM64') { $CommandArg = "ARM64" } else { $CommandArg = "x86" } if ($vs -eq 150) { @@ -244,17 +258,17 @@ function Process-Input if ($omit -ne '') { - Write-Host "Omit: $omit" + Write-Host "Omit: $omit" } if ($openssl_base -ne '') { - Write-Host "OpenSSL: $openssl_base" + Write-Host "OpenSSL: $openssl_base" } if ($mysql_base -ne '') { - Write-Host "MySQL: $mysql_base" + Write-Host "MySQL: $mysql_base" } # NB: this won't work in PowerShell ISE From 530167117513131e009056f43c81d1447bd7b9c8 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Mon, 6 Nov 2023 14:15:38 +0100 Subject: [PATCH 185/395] fix(buildwin.ps1): make install path global --- buildwin.ps1 | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/buildwin.ps1 b/buildwin.ps1 index 4ee8eb777..c829c906b 100644 --- a/buildwin.ps1 +++ b/buildwin.ps1 @@ -94,16 +94,15 @@ function Add-VSCOMNTOOLS([int] $vsver) $range='[17.0,18.0)' } - $installationPath = "" if ($platform -eq 'x64') { - $installationPath = Get-VSSetupInstance | ` + $global:installationPath = Get-VSSetupInstance | ` Select-VSSetupInstance -Version $range -product * -Latest -Require Microsoft.VisualStudio.Component.VC.Tools.x86.x64 | ` Select-Object InstallationPath } elseif ($platform -eq 'ARM64') { - $installationPath = Get-VSSetupInstance | ` + $global:installationPath = Get-VSSetupInstance | ` Select-VSSetupInstance -Version $range -product * -Latest -Require Microsoft.VisualStudio.Component.VC.Tools.ARM64 | ` Select-Object InstallationPath } @@ -112,17 +111,26 @@ function Add-VSCOMNTOOLS([int] $vsver) if ($vsver -eq 150) { set-item -force -path "ENV:VS150COMNTOOLS" -value "$vscomntools\Common7\Tools\" - Write-Host "`nVS150COMNTOOLS=$env:VS150COMNTOOLS" -ForegroundColor Yellow + Write-Host "`n----------------------------------------" -ForegroundColor Yellow + Write-Host "VS150COMNTOOLS=$env:VS150COMNTOOLS" -ForegroundColor Yellow + Write-Host "----------------------------------------" -ForegroundColor Yellow + Write-Host "" } if ($vsver -eq 160) { set-item -force -path "ENV:VS160COMNTOOLS" -value "$vscomntools\Common7\Tools\" - Write-Host "`nVS160COMNTOOLS=$env:VS160COMNTOOLS" -ForegroundColor Yellow + Write-Host "`n----------------------------------------" -ForegroundColor Yellow + Write-Host "VS160COMNTOOLS=$env:VS160COMNTOOLS" -ForegroundColor Yellow + Write-Host "----------------------------------------" -ForegroundColor Yellow + Write-Host "" } if ($vsver -eq 170) { set-item -force -path "ENV:VS170COMNTOOLS" -value "$vscomntools\Common7\Tools\" - Write-Host "`nVS170COMNTOOLS=$env:VS170COMNTOOLS" -ForegroundColor Yellow + Write-Host "`n----------------------------------------" -ForegroundColor Yellow + Write-Host "VS170COMNTOOLS=$env:VS170COMNTOOLS" -ForegroundColor Yellow + Write-Host "----------------------------------------" -ForegroundColor Yellow + Write-Host "" } } } @@ -228,7 +236,7 @@ function Process-Input Write-Host ' [-action build | rebuild | clean]' Write-Host ' [-linkmode shared | static_mt | static_md | all]' Write-Host ' [-config release | debug | both]' - Write-Host ' [-platform Win32 | x64 | WinCE | WEC2013]' + Write-Host ' [-platform Win32 | x64 | WinCE | WEC2013 | ARM64]' Write-Host ' [-samples]' Write-Host ' [-tests]' Write-Host ' [-omit "Lib1X,LibY,LibZ,..."]' @@ -237,13 +245,19 @@ function Process-Input Write-Host ' [-verbosity minimal | quiet | normal | detailed | diagnostic' Write-Host ' [-openssl_base ]' Write-Host ' [-mysql_base ]' - Exit } else { Set-Environment + Write-Host "" + Write-Host "--------------------" + Write-Host "PS Version: " $PSVersionTable.PSVersion + Write-Host "--------------------" + + Write-Host "" + Write-Host "--------------------" Write-Host "Build configuration:" Write-Host "--------------------" Write-Host "Poco Base: $poco_base" @@ -271,6 +285,9 @@ function Process-Input Write-Host "MySQL: $mysql_base" } + Write-Host "----------------------------------------" + Write-Host "" + # NB: this won't work in PowerShell ISE #Write-Host "Press Ctrl-C to exit or any other key to continue ..." #$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyUp") From fb1fb41466140cd16045b35f241f3d518873fb56 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Mon, 6 Nov 2023 17:05:44 +0100 Subject: [PATCH 186/395] fix(ProGen): unify output name (eliminate discrepancies) --- .../vs170/Win32/executable/debug_shared-ARM64.template | 3 ++- .../vs170/Win32/executable/release_static_md-ARM64.template | 2 +- .../templates/vs170/Win32/plugin/debug_shared-ARM64.template | 2 +- .../vs170/Win32/testsuite/debug_shared-ARM64.template | 3 ++- .../vs170/Win32/testsuite/debug_static_md-ARM64.template | 3 ++- .../vs170/Win32/testsuite/debug_static_mt-ARM64.template | 3 ++- .../vs170/Win32/testsuite/release_shared-ARM64.template | 3 ++- .../vs170/Win32/testsuite/release_static_md-ARM64.template | 3 ++- .../vs170/Win32/testsuite/release_static_mt-ARM64.template | 3 ++- 9 files changed, 16 insertions(+), 9 deletions(-) diff --git a/ProGen/templates/vs170/Win32/executable/debug_shared-ARM64.template b/ProGen/templates/vs170/Win32/executable/debug_shared-ARM64.template index 6e09c7f52..bf4794a16 100644 --- a/ProGen/templates/vs170/Win32/executable/debug_shared-ARM64.template +++ b/ProGen/templates/vs170/Win32/executable/debug_shared-ARM64.template @@ -1,6 +1,7 @@ Date: Mon, 6 Nov 2023 17:07:32 +0100 Subject: [PATCH 187/395] fix(ProGen): regen CppUnit and Net VS projects --- CppUnit/CppUnit_vs170.vcxproj | 185 ++-- CppUnit/CppUnit_vs170.vcxproj.filters | 4 +- Net/Net_vs170.vcxproj | 858 ++++++++++++------ Net/Net_vs170.vcxproj.filters | 108 +-- Net/testsuite/TestSuite_vs170.vcxproj | 609 ++++++++----- Net/testsuite/TestSuite_vs170.vcxproj.filters | 112 +-- 6 files changed, 1157 insertions(+), 719 deletions(-) diff --git a/CppUnit/CppUnit_vs170.vcxproj b/CppUnit/CppUnit_vs170.vcxproj index 62ac2bd10..d135a2314 100644 --- a/CppUnit/CppUnit_vs170.vcxproj +++ b/CppUnit/CppUnit_vs170.vcxproj @@ -1,4 +1,4 @@ - + @@ -80,9 +80,8 @@ {138BB448-808A-4FE5-A66D-78D1F8770F59} CppUnit Win32Proj - 10.0 - + StaticLibrary MultiByte @@ -173,65 +172,65 @@ MultiByte v143 - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34202.158 CppUnitA64d CppUnitmdd CppUnitmtd @@ -341,16 +340,15 @@ true true true - + Level3 ProgramDatabase Default - true $(OutDir)$(TargetName).pdb - stdcpp17 + true - ..\binA64\$(TargetName).dll + ..\binA64\CppUnitA64d.dll true true $(OutDir)$(TargetName).pdb @@ -375,15 +373,15 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true - stdcpp17 - ..\binA64\$(TargetName).dll + ..\binA64\CppUnitA64.dll true false ..\libA64;%(AdditionalLibraryDirectories) @@ -406,16 +404,15 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default true - stdcpp17 - ..\libA64\$(TargetName).lib + ..\libA64\CppUnitmtd.lib @@ -433,15 +430,15 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true - stdcpp17 - ..\libA64\$(TargetName).lib + ..\libA64\CppUnitmt.lib @@ -456,16 +453,15 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default true - stdcpp17 - ..\libA64\$(TargetName).lib + ..\libA64\CppUnitmdd.lib @@ -483,15 +479,15 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true - stdcpp17 - ..\libA64\$(TargetName).lib + ..\libA64\CppUnitmd.lib @@ -506,17 +502,18 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true ..\bin\CppUnitd.dll true true - ..\bin\CppUnitd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\CppUnitd.lib @@ -538,10 +535,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -568,8 +566,8 @@ true true true - - ..\lib\CppUnitmtd.pdb + + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -594,10 +592,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -616,8 +615,8 @@ true true true - - ..\lib\CppUnitmdd.pdb + + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -642,10 +641,10 @@ true true true - - ..\lib\CppUnitmd.pdb + + $(OutDir)$(TargetName).pdb Level3 - + Default true @@ -665,17 +664,18 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true ..\bin64\CppUnit64d.dll true true - ..\bin64\CppUnit64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\CppUnitd.lib @@ -697,10 +697,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -727,8 +728,8 @@ true true true - - ..\lib64\CppUnitmtd.pdb + + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -753,10 +754,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -775,8 +777,8 @@ true true true - - ..\lib64\CppUnitmdd.pdb + + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -801,10 +803,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -838,23 +841,23 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - \ No newline at end of file + + + diff --git a/CppUnit/CppUnit_vs170.vcxproj.filters b/CppUnit/CppUnit_vs170.vcxproj.filters index cdac40a9c..03c16c4ec 100644 --- a/CppUnit/CppUnit_vs170.vcxproj.filters +++ b/CppUnit/CppUnit_vs170.vcxproj.filters @@ -2,11 +2,11 @@ - {52c8067a-54e6-44bf-a510-eb95e4ec9865} + {84e2f454-350e-4e2b-8bfd-f3cbbb62f23c} cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - {d1a255dc-fbfb-43a1-ad75-b34778d06787} + {e32858e2-8161-4416-aa5b-e230b409f24b} *.h diff --git a/Net/Net_vs170.vcxproj b/Net/Net_vs170.vcxproj index 4b18dea60..4be3ef120 100644 --- a/Net/Net_vs170.vcxproj +++ b/Net/Net_vs170.vcxproj @@ -1,5 +1,5 @@ - - + + debug_shared @@ -75,41 +75,42 @@ + 17.0 Net {B057A1FE-09F7-465E-B8B5-E1B659051D76} Net Win32Proj - + StaticLibrary - v143 MultiByte + v143 StaticLibrary - v143 MultiByte + v143 StaticLibrary - v143 MultiByte + v143 StaticLibrary - v143 MultiByte + v143 DynamicLibrary - v143 MultiByte + v143 DynamicLibrary - v143 MultiByte + v143 StaticLibrary @@ -163,34 +164,33 @@ DynamicLibrary - v143 MultiByte + v143 DynamicLibrary - v143 MultiByte + v143 - - - + + - + - + - + - + - + - + @@ -211,26 +211,44 @@ - + - + - + - + - + - + - + - <_ProjectFileVersion>16.0.32602.291 + <_ProjectFileVersion>17.0.34202.158 + PocoNetA64d + PocoNetmdd + PocoNetmtd + PocoNetA64 + PocoNetmd + PocoNetmt + PocoNetd + PocoNetmdd + PocoNetmtd + PocoNet + PocoNetmd + PocoNetmt + PocoNet64d + PocoNetmdd + PocoNetmtd + PocoNet64 + PocoNetmd + PocoNetmt ..\binA64\ @@ -326,7 +344,8 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -334,7 +353,7 @@ ..\binA64\PocoNetA64d.dll true true - ..\binA64\PocoNetA64d.pdb + $(OutDir)$(TargetName).pdb ..\libA64;%(AdditionalLibraryDirectories) Console ..\libA64\PocoNetd.lib @@ -360,7 +379,8 @@ Level3 Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -389,11 +409,11 @@ true true - ..\libA64\PocoNetmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -419,7 +439,8 @@ Level3 Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -439,11 +460,11 @@ true true - ..\libA64\PocoNetmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -469,7 +490,8 @@ Level3 Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -488,18 +510,20 @@ true true true - + Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) ..\bin\PocoNetd.dll true true - ..\bin\PocoNetd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoNetd.lib @@ -521,11 +545,13 @@ true true true - + Level3 - + Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,12 +578,13 @@ true true true - - ..\lib\PocoNetmtd.pdb + + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true ..\lib\PocoNetmtd.lib @@ -578,11 +605,13 @@ true true true - + Level3 - + Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true ..\lib\PocoNetmt.lib @@ -600,12 +629,13 @@ true true true - - ..\lib\PocoNetmdd.pdb + + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true ..\lib\PocoNetmdd.lib @@ -626,12 +656,13 @@ true true true - - ..\lib\PocoNetmd.pdb + + $(OutDir)$(TargetName).pdb Level3 - + Default - /Zc:__cplusplus %(AdditionalOptions) + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -650,18 +681,20 @@ true true true - + Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) ..\bin64\PocoNet64d.dll true true - ..\bin64\PocoNet64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoNetd.lib @@ -683,11 +716,13 @@ true true true - + Level3 - + Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -714,12 +749,13 @@ true true true - - ..\lib64\PocoNetmtd.pdb + + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true ..\lib64\PocoNetmtd.lib @@ -740,11 +776,13 @@ true true true - + Level3 - + Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true ..\lib64\PocoNetmt.lib @@ -762,12 +800,13 @@ true true true - - ..\lib64\PocoNetmdd.pdb + + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true ..\lib64\PocoNetmdd.lib @@ -788,244 +827,460 @@ true true true - + Level3 - + Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true ..\lib64\PocoNetmd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + @@ -1043,7 +1298,6 @@ true - - - + + diff --git a/Net/Net_vs170.vcxproj.filters b/Net/Net_vs170.vcxproj.filters index a81c5cd6b..8ba36682f 100644 --- a/Net/Net_vs170.vcxproj.filters +++ b/Net/Net_vs170.vcxproj.filters @@ -2,166 +2,166 @@ - {0327a3ad-30cf-4db6-a801-53911cef2882} + {90277211-36fe-44fa-8779-bee1b27c0b33} - {5bb088f8-9b67-443b-ba87-88c89083d108} + {dde6886a-711b-4b19-8ede-16e0946b3dd3} - {c2212b81-c615-43ae-bc4b-538ea9acbd0c} + {225e8c7b-6770-4930-a8a6-de55b4e51c6f} - {22aeb535-82d3-48de-bcc1-4855d0fa6957} + {89f0837c-8470-476c-872e-2feb780c3755} - {7c491825-976b-44a7-a830-3bf552a20300} + {2adaae0b-b111-47fc-8613-a8eda7c657b8} - {0ee833b1-e45b-4288-ae5e-91b76b4df09a} + {6b763933-275b-43db-8351-c759be910124} - {972bf346-2819-4b15-a005-ee821590335d} + {c8823488-ff33-4000-bc95-a32a4962bc5f} - {790ee1d2-7e0b-4db9-b4a1-ed41b7577deb} + {66abd578-d1d6-4f71-b3b6-6442be8027ea} - {55ac476f-f77d-4bfa-a347-3e9d62a154bb} + {04a41c32-4f81-4630-8251-aebaac657dde} - {1121319e-26fe-4b5e-a99c-a9ad657feb1c} + {a1b32860-4beb-44c8-be19-9ce8f80a8628} - {66afe532-112f-4a65-8a48-6c283fe312ca} + {f3e1e652-16e3-4251-953d-dfbe62ea3982} - {010f68d2-86e0-4871-a30d-80e385d03fc9} + {eb9d676b-c46b-4256-a316-d50aa6d696db} - {c1508524-5428-4ed9-80bd-42156bc3f7e3} + {be5fbb21-ee3d-4a3b-824d-a93663d3b5b5} - {512b50b6-03cd-4491-897f-8eaaceef5fa4} + {4bf59802-369d-44b5-b5e2-27de877443b7} - {7a34e468-42db-41db-99b6-1c5143cf4720} + {2d040338-7189-4832-885f-c35df5e0261e} - {6a67a7a9-4e13-4aa9-a393-7d2bec8dfb40} + {65ff22c9-dc2e-4dd6-806f-112e50a728a3} - {2d54ebba-8e9d-417e-9da3-e02e349e3b64} + {171a9cfa-0f74-4258-b1cb-e8bc2f542719} - {9f7d4901-70e6-4271-8063-e1fce4ab7021} + {700a3455-e21e-4b83-bbde-3bbf58da3ac2} - {06bdc7d7-2fbd-4b4d-b2aa-c9ecb51c7bc5} + {491c59ae-0899-40d7-88e8-27b4b3bd341c} - {82980e3e-becb-4db7-9fd3-5e33aa1c8abc} + {e318a0ee-2d73-454f-a372-1cb32986fcbf} - {5cc883c1-7f7a-4444-81ea-fffa841fad3c} + {7bbbe1fd-5699-4d47-aeea-5c4ae76e0ed1} - {5069cc08-95e8-438c-a95c-3bfb44046feb} + {e1c20e0e-cf9d-4388-ae15-747c642452ee} - {7f600cd5-030c-416a-83bd-b55f27861921} + {e7c37000-31b5-4d4d-8b8e-ebb4b91e22aa} - {5e34956e-7957-4a58-9d36-3a41b799fdd7} + {303f1252-d50c-45f5-ad39-9538d48e7da8} - {b4a00fb0-4b7a-4f84-8c4f-bc3f54f0801e} + {64d4ca86-bc0e-47cd-93cb-1688b08c7dbc} - {a4548540-c2f7-47d4-a163-7420617948da} + {ac6da4d0-ff1d-4845-8655-c1d7bb8af706} - {8772fa07-ac53-41cd-aa2b-c99d1cde05c7} + {59dfc623-2f30-4dee-9e7f-b9ea32311877} - {826fb5ae-5563-45ac-bce3-24414626f0a8} + {e35f97d2-6c4e-4101-b8d9-2d40a6e1f8d6} - {df60d666-f912-4618-9bba-72e28295cb94} + {d4f6b235-3727-43b1-a45c-97634a88bcb5} - {1787e2b6-d541-4b16-93a2-e66e636f4770} + {729c6f41-45c3-445c-9eaf-adc6fa2ab957} - {4d782d56-61d9-423e-b668-07358c5acf2e} + {1c1aa126-7035-4c6c-b4a6-6db4bb9ba7b8} - {ac70d310-02cd-4084-b6e8-a8394c3da327} + {697d988f-e82e-4b9a-a763-4e20e959246e} - {87711a59-71ae-41ed-9058-a7f975bb4cd6} + {5f209277-2d19-4d78-b6f6-eb69ff9d169a} - {891c3f22-1a25-4d1c-af8c-92621b530082} + {97dc13ec-7fd0-4bd0-88d7-d3f4e8b5aaf0} - {61cd8667-c43a-42ad-80ad-2c012e3a63a8} + {82036806-9daf-40ea-97a9-7fa9d48d2c76} - {2d2fc73b-7622-4cdf-b9a2-431d8cef5b6d} + {d44c2015-66b4-41bb-bab8-ce94e0642356} - {ec40a7ac-6125-4cc1-b6ae-25f245629278} + {67442bc4-3f65-4814-8a73-98a91d70f29d} - {50f1d5a8-30e3-44a0-a52e-5a3445aa6638} + {bd80dc76-0f7c-4c57-b1d6-1211abc0b0f1} - {f5c8df69-6521-4f35-a31c-103322795b54} + {6a5f03bb-b749-40b5-86a2-8662f0ff7dfe} - {8fe68575-229a-4caa-8f62-ee1cce1856fe} + {f535b5d2-7a50-45aa-8ce1-d427d3a7e54c} - {d7259566-fbb7-4998-a4e4-56dae77866a7} + {575be2dd-dcee-4599-a534-e51c4cbab323} - {47d3ce03-365c-4c13-86d0-342e99ebe32c} + {60d2fad0-8bae-4b91-a14c-f9b782c0d8ba} - {1bc55eb6-3c68-44e9-a929-ae46d1d11922} + {26842ddd-3b15-47f6-a5a0-b4044213e4b5} - {d79dbf11-3184-4558-acb9-a94cb0f0a461} + {db4b2298-756d-4f33-8047-e122cbf5ee67} - {b99e11f4-018c-45c9-84d4-47c1c17fd78b} + {4f92c211-e6a2-401d-b04e-887f42165a06} - {b35c8bbe-07c0-4f48-8236-5ffde07e185d} + {66d9c5ee-26b0-43d1-9a58-e257d9a76b59} - {b56349c5-6624-47fd-aeb6-0d48502db985} + {c0fc6593-fd16-4366-a83a-cae87e1fae2f} - {6df2f132-e07c-4ec2-b2fc-10262a58892b} + {08828b81-6913-4920-9f47-369439c27b3a} - {a313fb55-54b0-487c-86e6-fd0b3de340f0} + {1ba12463-f782-4a94-9113-acfe835a2b8a} - {65812101-be4a-4c49-912a-49eb9ea65cca} + {692613dc-6b1e-4ffb-9c28-47282f9b119f} - {f6c00d82-d1e8-4dd8-9fc2-b95d376662a6} + {2df8e415-77bd-41b2-b770-ec4bfaee9e00} - {34e35154-1aef-4fcf-991f-b3db9b4cbfc5} + {ccae9a0d-6819-45e0-af22-a5b2ff8b429b} - {8c5c3d52-4e1d-4d0e-b5c6-a1199900e823} + {7f1a06da-5317-4803-9f4c-a13acd1e3959} - {112649bf-0779-4de5-b573-cd0c0a2c3b78} + {d1384c8b-86bb-4d26-a6cf-06b490284056} diff --git a/Net/testsuite/TestSuite_vs170.vcxproj b/Net/testsuite/TestSuite_vs170.vcxproj index 0ad896704..edd84e7b5 100644 --- a/Net/testsuite/TestSuite_vs170.vcxproj +++ b/Net/testsuite/TestSuite_vs170.vcxproj @@ -1,5 +1,5 @@ - - + + debug_shared @@ -75,36 +75,37 @@ + 17.0 TestSuite {D5EFBF27-B934-4B8D-8AE5-6EC00374819C} TestSuite Win32Proj - + Application - v143 MultiByte + v143 Application - v143 MultiByte + v143 Application - v143 MultiByte + v143 Application - v143 MultiByte + v143 Application - v143 MultiByte + v143 Application @@ -168,29 +169,28 @@ Application - v143 MultiByte + v143 - - - + + - + - + - + - + - + - + @@ -211,26 +211,44 @@ - + - + - + - + - + - + - + - <_ProjectFileVersion>16.0.32602.291 + <_ProjectFileVersion>17.0.34202.158 + TestSuited + TestSuited + TestSuited + TestSuite + TestSuite + TestSuite + TestSuited + TestSuited + TestSuited + TestSuite + TestSuite + TestSuite + TestSuited + TestSuited + TestSuited + TestSuite + TestSuite + TestSuite binA64\ @@ -338,16 +356,17 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true CppUnitd.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - binA64\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -371,12 +390,13 @@ Level3 Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true CppUnit.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - binA64\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -401,16 +421,17 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -434,12 +455,13 @@ Level3 Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -464,16 +486,17 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - binA64\static_md\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -497,12 +520,13 @@ Level3 Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - binA64\static_md\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -523,11 +547,13 @@ true true true - + Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true CppUnitd.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -535,7 +561,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -555,11 +581,13 @@ true true true - + Level3 - + Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true CppUnit.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -584,11 +612,13 @@ true true true - + Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -596,7 +626,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -616,11 +646,13 @@ true true true - + Level3 - + Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -645,11 +677,13 @@ true true true - + Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -657,7 +691,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -677,11 +711,13 @@ true true true - + Level3 - + Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -706,11 +742,13 @@ true true true - + Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true CppUnitd.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -718,7 +756,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -738,11 +776,13 @@ true true true - + Level3 - + Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true CppUnit.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -767,11 +807,13 @@ true true true - + Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -779,7 +821,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -799,11 +841,13 @@ true true true - + Level3 - + Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -828,11 +872,13 @@ true true true - + Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -840,7 +886,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -860,11 +906,13 @@ true true true - + Level3 - + Default - /Zc:__cplusplus %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -878,143 +926,276 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + - - - - \ No newline at end of file + + + diff --git a/Net/testsuite/TestSuite_vs170.vcxproj.filters b/Net/testsuite/TestSuite_vs170.vcxproj.filters index 4771142e6..8f5123de3 100644 --- a/Net/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Net/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,172 +2,172 @@ - {bb5f99a4-076d-40f6-bd03-b605e2f78942} + {1de7c206-c047-4fa9-9f70-76fba36d6357} - {370ee1f9-94d6-46c9-9cfd-ae9a82e4215e} + {b8067e77-98a2-483f-9ac4-87f6926e781d} - {659db2c3-80b4-4646-9df5-9ea4def9cb97} + {21307ccd-54fb-4e34-b214-d1445abb7f49} - {135d073c-c9d2-46f3-9f18-8692661c6a80} + {50f284c2-4fae-4db8-b938-edc31f894396} - {4cea6005-eb6b-4067-8254-b2c023c162b1} + {88476b8b-c763-4846-9332-faa616e0af8e} - {3718fde6-4856-4136-8951-ec466b8db23d} + {745ac167-857f-462c-ba8d-b77e85c3f0f8} - {ef1aacf2-69b0-4f45-a2fa-d6273e7de591} + {782f1313-d76f-43f8-b194-4db6d179c288} - {4379c133-cd56-4860-9c0e-1c3169ab30ee} + {7e31d1a5-174b-4d94-b66f-5306fc1d0516} - {c913a0b8-78bf-41ad-bded-a1f9a8b37902} + {f069a939-12ee-4950-a2be-ac79d0633704} - {057f1290-2c76-46e8-8dfc-da11d02253ef} + {1ff556e1-f288-4a77-9af3-2d8dcba443cb} - {5a50683c-8e6a-400b-a50f-9eb7b74a6b12} + {b8e2bd2b-b893-4ce1-ac58-af41715c1d74} - {32ed4d09-4da4-4316-8211-0dabc2ecba44} + {a0aca32e-b4d1-46a1-8389-65ea253b36d6} - {a9b5b4c6-2436-46aa-bc18-79d150dc29c7} + {eacb0411-250d-436e-8d2f-e7177d116ec0} - {ca0b80f5-478b-497c-bf9e-7bb0d3b0eb62} + {d9e4d8e8-d182-4dea-9b5b-b89962403176} - {7f42dbcb-7c13-42ff-9f99-d4ce0d333515} + {b6edc3f3-cc59-494b-a71d-4f8c14ce3e39} - {a8ace8af-b953-4ee5-9e7a-3cd7a54a78c0} + {458168b2-eebc-4dd4-9a03-d9f0f9a2a6c9} - {ea6141c5-7525-4a5b-b339-cd124ed4f22b} + {838e9f23-65d9-411d-ad98-865282c4b124} - {53842cf1-f516-431d-8eb5-e82dd686a69a} + {6790685c-24ac-4168-b7ec-11a33c69eecc} - {b416b22f-fbf5-40c0-87db-11757f720182} + {e275504a-869c-4e49-8efb-5d761f5fa689} - {61beb9b6-7056-4521-84b3-fae105421be5} + {eee2aa8f-28a6-4b90-9620-7074523024ed} - {0e63a36b-a325-42da-8557-9be5b90249f9} + {17bcc15e-9b80-4a1f-b001-0c5c87e1c174} - {f1394d79-96e4-4eed-bfc4-d20f25b9430b} + {5045634b-9e56-4776-9d49-e636e35f53f2} - {ddabcfb2-56ba-49be-adb7-af8fb9d3ef97} + {08c36bec-040b-40f4-aff2-62b9285dc941} - {021d4d11-8236-4574-a893-53d52a246d4f} + {b2e93dbe-aa43-4d42-a7f8-15eff701159f} - {3ce8c86d-1258-488f-84be-7e95b3e0a540} + {91b9a556-e17f-4ed2-8362-0bc461cfa9d3} - {10ac33f6-f9c0-4caa-8bf4-e0d27328842d} + {78fe40f0-075d-4204-8585-bf075d34845c} - {244449a7-8c64-48e7-9112-209ef80e7cc3} + {d1d5fce3-0238-4e76-a858-cfd624518677} - {39201469-efa7-45cc-89d4-41e6126221e0} + {d60f9e62-cc72-485e-9560-03e039bb99d7} - {1f58cb9c-30a1-4dff-813a-c315c41e1540} + {ffab98d4-0d10-4316-998e-64f2a7c1e420} - {dbc10ea1-5b42-469b-9358-ff12f39d8682} + {72bc5ba0-b4bc-45a7-887b-4f26d11c3388} - {2f616086-6096-4c84-9622-6fffc25be1e0} + {cb750701-7d58-4b83-96bd-3e20c101dc88} - {f9cd5b41-fc85-4e81-a08b-69f11f9aa058} + {c8829492-7db9-4fa8-bde1-8fec56ec7760} - {0a43d4b7-1310-420d-9d69-b1deb7e0be39} + {9b7bd1fc-4765-492c-b1fc-e8cd0dbf2901} - {aa486584-1762-4de5-abc4-0bca8749ef07} + {eaab7fac-663b-488c-a432-cee5c82c803a} - {800eea8c-e13c-40aa-a581-b3af74ef6a74} + {acd6ae16-7521-4502-a85e-f7c260ad252e} - {897be9b0-379b-4005-b6ec-c633df4aa0a6} + {d5c53961-e5cf-4d89-8077-b1146b50ff9c} - {5326e350-6c82-4b47-b8bb-acf10c40f9a7} + {78abd5c7-e162-40db-bae9-187a17af9b5e} - {f2edd76d-ba16-4ee2-a68b-7d9e9f800879} + {bb0aaf00-be64-401b-b847-5968d682bf75} - {db1a8466-0305-4faa-9fe6-20fa535c1d80} + {9a43adf5-9118-437e-bd3f-979da977ac57} - {2d22c5e1-721b-4d19-b698-8773ddc4dabc} + {ed4fe2e4-debb-4b0a-9b8a-434970c01115} - {0bbba14e-6a39-455c-aec1-15af68b3bc73} + {18b22b60-08c4-44a3-8915-ec192e8a3fb0} - {c92f3301-00f6-4491-beba-14937b1f3e68} + {3db6f9e0-ec17-41de-ad4b-48af29dc4ac1} - {f6af5476-f273-4302-9e9b-5b6d0d1cbfb2} + {bec0a34f-958b-40d2-b6d6-bc6b6b147113} - {804c7c07-44a1-4d61-be02-c6cc8b279420} + {8195d3bf-855d-4817-89ea-a58eff8c03c4} - {b8618dd9-3ad3-4ace-94e8-a74c69d9d2e7} + {6333479e-c8ff-44f7-a50d-085523e5105f} - {5696d5bc-86ff-43a9-b49c-9f9d45940500} + {72b65c24-6964-4b98-a113-329343f32ebd} - {08a48a0b-85b2-43c9-b359-f08ae91631d5} + {09e33a50-8379-46db-8e79-e41018ee0d8f} - {c5cf5e44-9907-4ecd-9fcd-075c862a0282} + {bd402350-2d9d-4a4a-852d-be89ac05db28} - {ebe4a4ae-edae-4c4f-9f4c-c05da0288028} + {f4cd0903-39ed-40f7-9e92-c4e7cbe35ef0} - {57c8332e-5bc0-464a-ba23-717a5ad8d7e0} + {68a90000-19f3-4d13-8fae-e9b6e5716652} - {d8b00c86-03af-40df-8e84-2ba586a9e97c} + {66c54799-5c41-46f8-ae7a-58942ad4705b} - {0ed1b87d-86e0-4883-9889-f8ca060cb9ad} + {f8351074-43b3-486c-b17c-1d3e97afa010} - {f3304f4b-f410-46d9-879d-66f81e13e1cc} + {2cfcb915-097f-4a15-861f-69087117bc54} - {fa35d4ea-24c8-4d08-a14d-d92fd1cb7d9f} + {160bf970-48eb-490c-a1c7-ada4205e3b04} - {494ab2d2-7191-46ce-adfa-12fe16cd45e6} + {bd7d0bc2-d6a3-40fb-889d-3a9908f761b2} - {3cb06642-ffbd-4684-b1f0-cfe3f3ad4bff} + {704cd365-f4d0-41dc-8509-02627e48fc33} From 264eead0958dfe2677f2c3c3439b00406d2de664 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Mon, 6 Nov 2023 17:08:29 +0100 Subject: [PATCH 188/395] fix(Net): failing testPollNoServer test on windows --- Net/testsuite/src/PollSetTest.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/Net/testsuite/src/PollSetTest.cpp b/Net/testsuite/src/PollSetTest.cpp index 5ac9d070e..05a3291f4 100644 --- a/Net/testsuite/src/PollSetTest.cpp +++ b/Net/testsuite/src/PollSetTest.cpp @@ -340,8 +340,25 @@ void PollSetTest::testPollNoServer() // should be like this, but Linux epoll disagrees ... //assertEqual(0, static_cast(ps.poll(Timespan(100)).size())); - ss1.connectNB(SocketAddress("127.0.0.1", 0xFEFE)); - ss2.connectNB(SocketAddress("127.0.0.1", 0xFEFF)); + ss1.setBlocking(true); + ss2.setBlocking(true); + try + { + ss1.connect(SocketAddress("127.0.0.1", 0xFFFF)); + fail("connection must fail", __LINE__, __FILE__); + } + catch (Poco::Net::ConnectionRefusedException&) {} + catch (Poco::Net::NetException&) {} + catch (Poco::Exception&) {} + + try + { + ss2.connect(SocketAddress("127.0.0.1", 0xFFFF)); + fail("connection must fail", __LINE__, __FILE__); + } + catch (Poco::Net::ConnectionRefusedException&) {} + catch (Poco::Net::NetException&) {} + catch (Poco::Exception&) {} assertEqual(2, ps.poll(Timespan(1000000)).size()); From 1c60325242d010dd6222799c18d28daf57435a24 Mon Sep 17 00:00:00 2001 From: Pavle Date: Tue, 7 Nov 2023 16:37:49 +0100 Subject: [PATCH 189/395] chore(build): add missing platform to buildwin #4230 --- buildwin.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildwin.ps1 b/buildwin.ps1 index c829c906b..a7646626b 100644 --- a/buildwin.ps1 +++ b/buildwin.ps1 @@ -8,7 +8,7 @@ # [-action build | rebuild | clean] # [-linkmode shared | static_mt | static_md | all] # [-config release | debug | both] -# [-platform Win32 | x64 | WinCE | WEC2013] +# [-platform Win32 | x64 | ARM64 | WinCE | WEC2013] # [-samples] # [-tests] # [-omit "Lib1X,LibY,LibZ,..."] From 1d6421045a03738dcc02eadebce506a22a849250 Mon Sep 17 00:00:00 2001 From: Pavle Date: Tue, 7 Nov 2023 17:38:48 +0100 Subject: [PATCH 190/395] fix(build): bad value #4230 --- buildwin.ps1 | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/buildwin.ps1 b/buildwin.ps1 index a7646626b..1c42de7be 100644 --- a/buildwin.ps1 +++ b/buildwin.ps1 @@ -94,18 +94,18 @@ function Add-VSCOMNTOOLS([int] $vsver) $range='[17.0,18.0)' } - if ($platform -eq 'x64') - { - $global:installationPath = Get-VSSetupInstance | ` - Select-VSSetupInstance -Version $range -product * -Latest -Require Microsoft.VisualStudio.Component.VC.Tools.x86.x64 | ` - Select-Object InstallationPath - } - elseif ($platform -eq 'ARM64') + if ($platform -eq 'ARM64') { $global:installationPath = Get-VSSetupInstance | ` Select-VSSetupInstance -Version $range -product * -Latest -Require Microsoft.VisualStudio.Component.VC.Tools.ARM64 | ` Select-Object InstallationPath } + else + { + $global:installationPath = Get-VSSetupInstance | ` + Select-VSSetupInstance -Version $range -product * -Latest -Require Microsoft.VisualStudio.Component.VC.Tools.x86.x64 | ` + Select-Object InstallationPath + } $vscomntools = $installationPath.psobject.properties.Value; if ($vsver -eq 150) @@ -187,7 +187,7 @@ function Set-Environment $Command = '' $CommandArg = '' if ($platform -eq 'x64') { $CommandArg = "amd64" } - if ($platform -eq 'ARM64') { $CommandArg = "ARM64" } + elseif ($platform -eq 'ARM64') { $CommandArg = "ARM64" } else { $CommandArg = "x86" } if ($vs -eq 150) { From 83d50284e07df356dcb387165d23bcc2b544682d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nino=20Belu=C5=A1i=C4=87?= <86965206+cunj123@users.noreply.github.com> Date: Tue, 7 Nov 2023 20:58:41 +0100 Subject: [PATCH 191/395] 4249 separate ci odbc tests into separate job (#4251) * feat(CI): separate odbc tests into separate job #4249 * fix(CI): fix ODBC test server address #4249 * fix(CI): disable MySQL ODBC tests #4249 * chore(ci): remove unneeded sql server and oracle jobs #4249 * fix(CI): disable Oracle ODBC tests #4249 * fix(CI): disable Postgres ODBC tests #4249 * Update ci.yml (add newline) --------- Co-authored-by: Aleksandar Fabijanic --- .github/workflows/ci.yml | 169 ++++++++++++----------------- Data/ODBC/testsuite/src/ODBCTest.h | 2 +- 2 files changed, 72 insertions(+), 99 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bd7fa9e67..8a5375cb0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -379,7 +379,7 @@ jobs: steps: - uses: actions/checkout@v3 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev mysql-client - - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/PostgreSQL,Data/SQLite,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install + - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/PostgreSQL,Data/SQLite,Data/ODBC,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install - uses: ./.github/actions/retry-action with: timeout_minutes: 90 @@ -389,21 +389,6 @@ jobs: sudo -s EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/PostgreSQL Data/ODBC Data/SQLite Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" ./ci/runtests.sh -# TODO ODBC tests connect to database and hang -# - run: | -# wget https://dev.mysql.com/get/Downloads/Connector-ODBC/8.2/mysql-connector-odbc_8.2.0-1ubuntu22.04_amd64.deb -# wget https://dev.mysql.com/get/Downloads/MySQL-8.2/mysql-community-client-plugins_8.2.0-1ubuntu22.04_amd64.deb -# sudo dpkg -i mysql-community-client-plugins_8.2.0-1ubuntu22.04_amd64.deb mysql-connector-odbc_8.2.0-1ubuntu22.04_amd64.deb -# - run: mysql -h 127.0.0.1 -u pocotest --password=pocotest -e "DROP DATABASE pocotest; CREATE DATABASE pocotest" -# - uses: ./.github/actions/retry-action -# with: -# timeout_minutes: 90 -# max_attempts: 3 -# retry_on: any -# command: >- -# sudo -s -# EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/PostgreSQL Data/MySQL Data/SQLite Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" -# ./ci/runtests.sh # TODO tests sometimes failling on testTransaction and testReconnect # linux-gcc-make-postgres: @@ -418,7 +403,7 @@ jobs: # steps: # - uses: actions/checkout@v3 # - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev odbc-postgresql -# - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/MySQL,Data/SQLite,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install +# - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/MySQL,Data/ODBC,Data/SQLite,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install # - uses: ./.github/actions/retry-action # with: # timeout_minutes: 90 @@ -427,21 +412,6 @@ jobs: # command: >- # sudo -s # EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/ODBC Data/MySQL Data/SQLite Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" -# ./ci/runtests.sh -# - run: | -# sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' -# wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - -# sudo apt -y update -# sudo apt -y install postgresql-client-12 -# - run: PGPASSWORD=postgres psql -h localhost --username=postgres -d template1 -c 'DROP DATABASE postgres' -c 'CREATE DATABASE postgres' -# - uses: ./.github/actions/retry-action -# with: -# timeout_minutes: 90 -# max_attempts: 3 -# retry_on: any -# command: >- -# sudo -s -# EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/PostgreSQL Data/MySQL Data/SQLite Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" # ./ci/runtests.sh linux-gcc-make-redis: @@ -481,69 +451,72 @@ jobs: sudo -s EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/ODBC Data/MySQL Data/SQLite Data/PostgreSQL Encodings Foundation JSON JWT Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" ./ci/runtests.sh - -# TODO Tests keep failing at testCursorStoredProcedure -# linux-gcc-make-oracle: -# runs-on: ubuntu-22.04 -# services: -# oracle: -# image: container-registry.oracle.com/database/express:21.3.0-xe -# env: -# ORACLE_PWD: poco -# ports: -# - 1521:1521 -# steps: -# - uses: actions/checkout@v3 -# - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev alien libaio1 -# - run: | -# wget https://download.oracle.com/otn_software/linux/instantclient/2112000/oracle-instantclient-basic-21.12.0.0.0-1.x86_64.rpm -# wget https://download.oracle.com/otn_software/linux/instantclient/2112000/oracle-instantclient-sqlplus-21.12.0.0.0-1.x86_64.rpm -# wget https://download.oracle.com/otn_software/linux/instantclient/2112000/oracle-instantclient-odbc-21.12.0.0.0-1.x86_64.rpm -# sudo alien --scripts ./oracle-instantclient-basic-21.12.0.0.0-1.x86_64.rpm -# sudo alien --scripts ./oracle-instantclient-sqlplus-21.12.0.0.0-1.x86_64.rpm -# sudo alien --scripts ./oracle-instantclient-odbc-21.12.0.0.0-1.x86_64.rpm -# sudo apt install ./oracle-instantclient-basic_21.12.0.0.0-2_amd64.deb -# sudo apt install ./oracle-instantclient-sqlplus_21.12.0.0.0-2_amd64.deb -# sudo apt install ./oracle-instantclient-odbc_21.12.0.0.0-2_amd64.deb -# sudo /usr/lib/oracle/21/client64/bin/odbc_update_ini.sh / "/usr/lib/oracle/21/client64/lib" "" "" "/etc/odbc.ini" -# - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/MySQL,Data/SQLite,Data/PostgreSQL,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install -# - uses: ./.github/actions/retry-action -# with: -# timeout_minutes: 90 -# max_attempts: 3 -# retry_on: any -# command: >- -# sudo -s -# EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/MySQL Data/SQLite Data/PostgreSQL Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" -# ./ci/runtests.sh -# TODO multiple tests are failling(testStoredProcedure, testBulkPerformance, testBulk,testBareboneODBC) -# linux-gcc-make-sqlserver: -# runs-on: ubuntu-22.04 -# services: -# sqlserver: -# image: mcr.microsoft.com/mssql/server:2022-latest -# env: -# MSSQL_PID: Express -# ACCEPT_EULA: Y -# MSSQL_SA_PASSWORD: Pocopoco1 -# ports: -# - 1433:1433 -# steps: -# - uses: actions/checkout@v3 -# - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev gnupg2 curl -# - run: | -# curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc -# curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list -# sudo apt-get update -# sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 -# - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/MySQL,Data/SQLite,Data/PostgreSQL,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install -# - uses: ./.github/actions/retry-action -# with: -# timeout_minutes: 90 -# max_attempts: 3 -# retry_on: any -# command: >- -# sudo -s -# EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/MySQL Data/SQLite Data/PostgreSQL Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" -# ./ci/runtests.sh - \ No newline at end of file + + linux-gcc-make-odbc: + runs-on: ubuntu-22.04 + services: + mysql: + image: mysql:8.1.0 + env: + MYSQL_ALLOW_EMPTY_PASSWORD: yes + MYSQL_USER: pocotest + MYSQL_PASSWORD: pocotest + MYSQL_DATABASE: pocotest + ports: + - 3306:3306 + postgres: + image: postgres:16.0 + env: + POSTGRES_PASSWORD: postgres + ports: + - 5432:5432 + oracle: + image: container-registry.oracle.com/database/express:21.3.0-xe + env: + ORACLE_PWD: poco + ports: + - 1521:1521 + sqlserver: + image: mcr.microsoft.com/mssql/server:2022-latest + env: + MSSQL_PID: Express + ACCEPT_EULA: Y + MSSQL_SA_PASSWORD: Pocopoco1 + ports: + - 1433:1433 + steps: + - uses: actions/checkout@v3 + - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev mysql-client alien libaio1 gnupg2 curl #odbc-postgresql + - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/MySQL,Data/PostgreSQL,Data/SQLite,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install + # - name: Setup MySQL ODBC connector + # run: | + # wget https://dev.mysql.com/get/Downloads/Connector-ODBC/8.2/mysql-connector-odbc_8.2.0-1ubuntu22.04_amd64.deb + # wget https://dev.mysql.com/get/Downloads/MySQL-8.2/mysql-community-client-plugins_8.2.0-1ubuntu22.04_amd64.deb + # sudo dpkg -i mysql-community-client-plugins_8.2.0-1ubuntu22.04_amd64.deb mysql-connector-odbc_8.2.0-1ubuntu22.04_amd64.deb + # - name: Setup Oracle ODBC connector + # run: | + # wget https://download.oracle.com/otn_software/linux/instantclient/2112000/oracle-instantclient-basic-21.12.0.0.0-1.x86_64.rpm + # wget https://download.oracle.com/otn_software/linux/instantclient/2112000/oracle-instantclient-sqlplus-21.12.0.0.0-1.x86_64.rpm + # wget https://download.oracle.com/otn_software/linux/instantclient/2112000/oracle-instantclient-odbc-21.12.0.0.0-1.x86_64.rpm + # sudo alien --scripts ./oracle-instantclient-basic-21.12.0.0.0-1.x86_64.rpm + # sudo alien --scripts ./oracle-instantclient-sqlplus-21.12.0.0.0-1.x86_64.rpm + # sudo alien --scripts ./oracle-instantclient-odbc-21.12.0.0.0-1.x86_64.rpm + # sudo apt install ./oracle-instantclient-basic_21.12.0.0.0-2_amd64.deb + # sudo apt install ./oracle-instantclient-sqlplus_21.12.0.0.0-2_amd64.deb + # sudo apt install ./oracle-instantclient-odbc_21.12.0.0.0-2_amd64.deb + # sudo /usr/lib/oracle/21/client64/bin/odbc_update_ini.sh / "/usr/lib/oracle/21/client64/lib" "" "" "/etc/odbc.ini" + - name: Setup SQL Server ODBC connector + run: | + curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc + curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list + sudo apt-get update + sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + sudo -s + EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/MySQL Data/PostgreSQL Data/SQLite Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" + ./ci/runtests.sh diff --git a/Data/ODBC/testsuite/src/ODBCTest.h b/Data/ODBC/testsuite/src/ODBCTest.h index 9605b780b..9e4e50552 100644 --- a/Data/ODBC/testsuite/src/ODBCTest.h +++ b/Data/ODBC/testsuite/src/ODBCTest.h @@ -23,7 +23,7 @@ #include "SQLExecutor.h" -#define POCO_ODBC_TEST_DATABASE_SERVER "10.211.55.5"//"localhost" +#define POCO_ODBC_TEST_DATABASE_SERVER "localhost" class ODBCTest: public CppUnit::TestCase From 02861debeed119772aa58db0410893c47b7c786d Mon Sep 17 00:00:00 2001 From: Nino Belusic Date: Wed, 8 Nov 2023 15:12:16 +0100 Subject: [PATCH 192/395] feat: add progen ps script #4248 --- progen.ps1 | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 progen.ps1 diff --git a/progen.ps1 b/progen.ps1 new file mode 100644 index 000000000..1089968ae --- /dev/null +++ b/progen.ps1 @@ -0,0 +1,101 @@ +# +# POCO progen automation script +# +# Usage: +# ------ +# progen.ps1 [-poco_base dir] +# [-vs 140 | 150 | 160| 170] +# [-omit "Lib1X,LibY,LibZ,..."] + +[CmdletBinding()] +Param +( + [Parameter()] + [string] $poco_base = ".", + + [Parameter()] + [ValidateSet(140, 150, 160, 170)] + [int] $vs = 140, + + [string] $omit, + + [switch] $help +) + +function Process-Input +{ + if ($help -eq $true) + { + Write-Host 'Usage:' + Write-Host '------' + Write-Host 'progen.ps1 [-poco_base ]' + Write-Host ' [-vs 140 | 150 | 160 | 170]' + Write-Host ' [-omit "Lib1X,LibY,LibZ,..."]' + Exit + } + else + { + Write-Host "" + Write-Host "--------------------" + Write-Host "Progen configuration:" + Write-Host "--------------------" + Write-Host "Poco Base: $poco_base" + Write-Host "Version: $vs" + + if ($omit -ne '') + { + Write-Host "Omit: $omit" + } + + Write-Host "----------------------------------------" + Write-Host "" + + # NB: this won't work in PowerShell ISE + #Write-Host "Press Ctrl-C to exit or any other key to continue ..." + #$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyUp") + } +} + +function Run-Progen-Components +{ + $progenPath = Resolve-Path "$poco_base\ProGen\bin64\static_mt\progen.exe" + Get-Content "$poco_base\components" | Foreach-Object { + + $component = $_ + $componentDir = $_.Replace("/", "\") + $componentArr = $_.split('/') + $componentName = $componentArr[$componentArr.Length - 1] + + $omitArray = @() + $omit.Split(',') | ForEach-Object { + $omitArray += $_.Trim() + } + + if ($omitArray -NotContains $component) + { + $componentProgenPath = "$poco_base\$componentDir\$componentName.Progen" + + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + Write-Host "| Running ProGen for $componentDir" + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + + Invoke-Expression "$progenPath /tool=vs$vs $componentProgenPath" + } + else + { + Write-Host "-------------------------------" + Write-Host "# Skipping $componentDir" + Write-Host "-------------------------------" + } + } +} + +function Run +{ + Process-Input + + Run-Progen-Components +} + + +Run \ No newline at end of file From 856782f1b8e5d8ff1763aa120009d1278f366512 Mon Sep 17 00:00:00 2001 From: Nino Belusic Date: Wed, 8 Nov 2023 15:34:35 +0100 Subject: [PATCH 193/395] feat: dynamically choose progen.exe location #4248 --- progen.ps1 | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/progen.ps1 b/progen.ps1 index 1089968ae..edf7d95dd 100644 --- a/progen.ps1 +++ b/progen.ps1 @@ -15,7 +15,7 @@ Param [Parameter()] [ValidateSet(140, 150, 160, 170)] - [int] $vs = 140, + [int] $vs = 170, [string] $omit, @@ -58,7 +58,15 @@ function Process-Input function Run-Progen-Components { - $progenPath = Resolve-Path "$poco_base\ProGen\bin64\static_mt\progen.exe" + if(Test-Path "$poco_base\ProGen\bin64\static_mt\progen.exe") { + $progenPath = Resolve-Path "$poco_base\ProGen\bin64\static_mt\progen.exe" + } + elseif(Test-Path "$poco_base\ProGen\bin64\static_md\progen.exe") { + $progenPath = Resolve-Path "$poco_base\ProGen\bin64\static_md\progen.exe" + } + else { + $progenPath = Resolve-Path "$poco_base\ProGen\bin64\progen.exe" + } Get-Content "$poco_base\components" | Foreach-Object { $component = $_ From 4416fc3c754fec1d454dd7096049d2f1c6461b0d Mon Sep 17 00:00:00 2001 From: Nino Belusic Date: Wed, 8 Nov 2023 15:35:11 +0100 Subject: [PATCH 194/395] fix: fix default arg values #4248 --- progen.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/progen.ps1 b/progen.ps1 index edf7d95dd..f31e856e8 100644 --- a/progen.ps1 +++ b/progen.ps1 @@ -11,11 +11,11 @@ Param ( [Parameter()] - [string] $poco_base = ".", + [string] $poco_base, [Parameter()] [ValidateSet(140, 150, 160, 170)] - [int] $vs = 170, + [int] $vs = 140, [string] $omit, From 7446252dcab3a46682d4374272d820a9a4625d54 Mon Sep 17 00:00:00 2001 From: Nino Belusic Date: Thu, 9 Nov 2023 09:10:34 +0100 Subject: [PATCH 195/395] feat: add running progen for tests and samples #4248 --- progen.ps1 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 48 insertions(+), 4 deletions(-) diff --git a/progen.ps1 b/progen.ps1 index f31e856e8..384525448 100644 --- a/progen.ps1 +++ b/progen.ps1 @@ -6,6 +6,8 @@ # progen.ps1 [-poco_base dir] # [-vs 140 | 150 | 160| 170] # [-omit "Lib1X,LibY,LibZ,..."] +# [-samples] +# [-tests] [CmdletBinding()] Param @@ -18,6 +20,8 @@ Param [int] $vs = 140, [string] $omit, + [switch] $samples = $false, + [switch] $tests = $false, [switch] $help ) @@ -31,6 +35,8 @@ function Process-Input Write-Host 'progen.ps1 [-poco_base ]' Write-Host ' [-vs 140 | 150 | 160 | 170]' Write-Host ' [-omit "Lib1X,LibY,LibZ,..."]' + Write-Host ' [-samples]' + Write-Host ' [-tests]' Exit } else @@ -41,6 +47,8 @@ function Process-Input Write-Host "--------------------" Write-Host "Poco Base: $poco_base" Write-Host "Version: $vs" + Write-Host "Samples: $samples" + Write-Host "Tests: $tests" if ($omit -ne '') { @@ -56,7 +64,27 @@ function Process-Input } } -function Run-Progen-Components +function Run-Progen-Samples +{ + process { + $sampleName = $_.BaseName.split(".")[0] + if($_.Name -eq "samples.progen") { + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + Write-Host "| Running Progen for $componentDir\$sampleName" + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + $sampleProgenPath = "$($poco_base)\$($componentDir)\$($sampleName)\$($_)" + } + else { + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + Write-Host "| Running Progen for $componentDir\samples\$sampleName" + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + $sampleProgenPath = "$($poco_base)\$($componentDir)\samples\$($sampleName)\$($_)" + } + Invoke-Expression "$progenPath /tool=vs$vs $sampleProgenPath" + } +} + +function Run-Progen-Components([string] $type) { if(Test-Path "$poco_base\ProGen\bin64\static_mt\progen.exe") { $progenPath = Resolve-Path "$poco_base\ProGen\bin64\static_mt\progen.exe" @@ -81,13 +109,27 @@ function Run-Progen-Components if ($omitArray -NotContains $component) { - $componentProgenPath = "$poco_base\$componentDir\$componentName.Progen" Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" Write-Host "| Running ProGen for $componentDir" Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" - Invoke-Expression "$progenPath /tool=vs$vs $componentProgenPath" + if($type -eq "lib") { + $componentProgenPath = "$poco_base\$componentDir\$componentName.Progen" + Invoke-Expression "$progenPath /tool=vs$vs $componentProgenPath" + } + ElseIf ($tests -and ($type -eq "test")) { + $componentTestProgenPath = "$poco_base\$componentDir\testsuite\TestSuite.Progen" + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + Write-Host "| Running Progen for $componentDir\testsuite" + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + Invoke-Expression "$progenPath /tool=vs$vs $componentTestProgenPath" + } + ElseIf ($samples -and ($type -eq "sample")) { + Get-Childitem "$poco_base\$($componentDir)" -Recurse |` + Where-Object {$_.Extension -Match ".progen" -And $_.DirectoryName -Like "*samples*" } ` + | Run-Progen-Samples "$_" + } } else { @@ -102,7 +144,9 @@ function Run { Process-Input - Run-Progen-Components + Run-Progen-Components "lib" + Run-Progen-Components "test" + Run-Progen-Components "sample" } From 56f6caf8cf8041585d7be3532d27052632b72078 Mon Sep 17 00:00:00 2001 From: Pavle Date: Thu, 9 Nov 2023 17:02:35 +0100 Subject: [PATCH 196/395] fix(Data): Automatically link Data lib WIN --- Data/include/Poco/Data/Data.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Data/include/Poco/Data/Data.h b/Data/include/Poco/Data/Data.h index 8a9e532e9..6cb8f05b6 100644 --- a/Data/include/Poco/Data/Data.h +++ b/Data/include/Poco/Data/Data.h @@ -53,6 +53,26 @@ // Automatically link Data library. // #if defined(_MSC_VER) + #if defined(POCO_DLL) + #if defined(_DEBUG) + #define POCO_LIB_SUFFIX "d.lib" + #else + #define POCO_LIB_SUFFIX ".lib" + #endif + #elif defined(_DLL) + #if defined(_DEBUG) + #define POCO_LIB_SUFFIX "mdd.lib" + #else + #define POCO_LIB_SUFFIX "md.lib" + #endif + #else + #if defined(_DEBUG) + #define POCO_LIB_SUFFIX "mtd.lib" + #else + #define POCO_LIB_SUFFIX "mt.lib" + #endif + #endif + #if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(Data_EXPORTS) #pragma comment(lib, "PocoData" POCO_LIB_SUFFIX) #endif From be52ced34a1de835320c092ce9d9eb739a8fd726 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Fri, 10 Nov 2023 01:36:55 +0100 Subject: [PATCH 197/395] fix(SQLParser): static linking error on windows --- Data/include/Poco/Data/Data.h | 20 -------------------- Data/src/sql-parser/src/sqlparser_win.h | 23 +++++++++++++---------- 2 files changed, 13 insertions(+), 30 deletions(-) diff --git a/Data/include/Poco/Data/Data.h b/Data/include/Poco/Data/Data.h index 6cb8f05b6..8a9e532e9 100644 --- a/Data/include/Poco/Data/Data.h +++ b/Data/include/Poco/Data/Data.h @@ -53,26 +53,6 @@ // Automatically link Data library. // #if defined(_MSC_VER) - #if defined(POCO_DLL) - #if defined(_DEBUG) - #define POCO_LIB_SUFFIX "d.lib" - #else - #define POCO_LIB_SUFFIX ".lib" - #endif - #elif defined(_DLL) - #if defined(_DEBUG) - #define POCO_LIB_SUFFIX "mdd.lib" - #else - #define POCO_LIB_SUFFIX "md.lib" - #endif - #else - #if defined(_DEBUG) - #define POCO_LIB_SUFFIX "mtd.lib" - #else - #define POCO_LIB_SUFFIX "mt.lib" - #endif - #endif - #if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(Data_EXPORTS) #pragma comment(lib, "PocoData" POCO_LIB_SUFFIX) #endif diff --git a/Data/src/sql-parser/src/sqlparser_win.h b/Data/src/sql-parser/src/sqlparser_win.h index 3678add94..e959cf8cc 100644 --- a/Data/src/sql-parser/src/sqlparser_win.h +++ b/Data/src/sql-parser/src/sqlparser_win.h @@ -2,17 +2,20 @@ #define SQLPARSER_SQLPARSER_WIN_H -#if defined(_WIN32) || defined(_WIN64) - #if defined(_MSC_VER) - #define strncasecmp _strnicmp - #define strcasecmp _stricmp +#if defined(_WIN32) + #define strncasecmp _strnicmp + #define strcasecmp _stricmp + #if defined(_USRDLL) + #if defined(SQLParser_EXPORTS) + #define SQLParser_API __declspec(dllexport) + #else + #define SQLParser_API __declspec(dllimport) + #endif #endif - #if defined(SQLParser_EXPORTS) - #define SQLParser_API __declspec(dllexport) - #else - #define SQLParser_API __declspec(dllimport) - #endif -#else +#endif + + +#if !defined(SQLParser_API) #if defined (__GNUC__) && (__GNUC__ >= 4) #define SQLParser_API __attribute__ ((visibility ("default"))) #else From 71f475745a306673ca4b8837cd5e54fb81890c57 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Fri, 10 Nov 2023 02:17:41 +0100 Subject: [PATCH 198/395] fix(buildwin.ps1): skip TestLibrary for static build (DLL only); build DataTest library --- buildwin.ps1 | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/buildwin.ps1 b/buildwin.ps1 index 1c42de7be..be589a370 100644 --- a/buildwin.ps1 +++ b/buildwin.ps1 @@ -312,6 +312,11 @@ function Exec-MSBuild([string] $vsProject, [string] $projectConfig) function Build-MSBuild([string] $vsProject, [switch] $skipStatic) { if ($linkmode -contains "static" -and $skipStatic) { Return } + if ($linkmode.Contains("static") -and $vsProject.Contains("TestLibrary")) + { + Write-Host "Skipping static build of DLL-only $vsProject" + return + } if ($linkmode -eq 'all') { @@ -501,6 +506,14 @@ function Build-Components([string] $extension, [string] $type) Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" Build-Exec $tool $vsTestProject -skipStatic } + elseif ($component -eq "Data") # special case for Data, which needs DataTest lib + { + $vsTestProject = "$poco_base\$componentDir\testsuite\DataTest\DataTest$($suffix).$($extension)" + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + Write-Host "| Building $vsTestProject" + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + Build-Exec $tool $vsTestProject + } } ElseIf ($samples -and ($type -eq "sample")) { From 30006b4e2084104159a77fad307301fff2f35e8f Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Fri, 10 Nov 2023 02:19:29 +0100 Subject: [PATCH 199/395] enh(Data): regenerate VS projects; add DataTest VS projects --- Data/Data.progen | 5 +- Data/Data_vs170.sln | 222 +++-- Data/ODBC/ODBC_vs170.vcxproj.filters | 6 +- Data/ODBC/testsuite/TestSuite.progen | 2 +- Data/ODBC/testsuite/TestSuite_vs170.vcxproj | 162 ++-- Data/samples/Binding/Binding.progen | 2 +- Data/samples/Binding/Binding_vs170.vcxproj | 100 +- Data/samples/RecordSet/RecordSet.progen | 2 +- .../samples/RecordSet/RecordSet_vs170.vcxproj | 100 +- Data/samples/RowFormatter/RowFormatter.progen | 2 +- .../RowFormatter/RowFormatter_vs170.vcxproj | 100 +- Data/samples/Tuple/Tuple.progen | 2 +- Data/samples/Tuple/Tuple_vs170.vcxproj | 100 +- Data/samples/TypeHandler/TypeHandler.progen | 2 +- .../TypeHandler/TypeHandler_vs170.vcxproj | 100 +- Data/samples/WebNotifier/WebNotifier.progen | 2 +- .../WebNotifier/WebNotifier_vs170.vcxproj | 100 +- Data/testsuite/DataTest/DataTest.progen | 21 + Data/testsuite/DataTest/DataTest_VS90.vcproj | 555 +++++++++++ .../testsuite/DataTest/DataTest_vs140.vcxproj | 582 ++++++++++++ .../DataTest/DataTest_vs140.vcxproj.filters | 32 + .../testsuite/DataTest/DataTest_vs150.vcxproj | 582 ++++++++++++ .../DataTest/DataTest_vs150.vcxproj.filters | 32 + .../testsuite/DataTest/DataTest_vs160.vcxproj | 582 ++++++++++++ .../DataTest/DataTest_vs160.vcxproj.filters | 32 + .../testsuite/DataTest/DataTest_vs170.vcxproj | 865 ++++++++++++++++++ .../DataTest/DataTest_vs170.vcxproj.filters | 32 + Data/testsuite/DataTest/src/SQLExecutor.cpp | 4 +- 28 files changed, 3842 insertions(+), 486 deletions(-) create mode 100644 Data/testsuite/DataTest/DataTest.progen create mode 100644 Data/testsuite/DataTest/DataTest_VS90.vcproj create mode 100644 Data/testsuite/DataTest/DataTest_vs140.vcxproj create mode 100644 Data/testsuite/DataTest/DataTest_vs140.vcxproj.filters create mode 100644 Data/testsuite/DataTest/DataTest_vs150.vcxproj create mode 100644 Data/testsuite/DataTest/DataTest_vs150.vcxproj.filters create mode 100644 Data/testsuite/DataTest/DataTest_vs160.vcxproj create mode 100644 Data/testsuite/DataTest/DataTest_vs160.vcxproj.filters create mode 100644 Data/testsuite/DataTest/DataTest_vs170.vcxproj create mode 100644 Data/testsuite/DataTest/DataTest_vs170.vcxproj.filters diff --git a/Data/Data.progen b/Data/Data.progen index 336587d3e..cc4d87cde 100644 --- a/Data/Data.progen +++ b/Data/Data.progen @@ -16,7 +16,8 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS;SQLParser_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.compiler.additionalOptions.Win32.x64 = /bigobj +vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions.Win32.x64 = /bigobj /std:c++17 vc.solution.create = true vc.solution.include = testsuite\\TestSuite +vc.solution.include = testsuite\\DataTest\\DataTest diff --git a/Data/Data_vs170.sln b/Data/Data_vs170.sln index 222c7e57f..1ba83d39a 100644 --- a/Data/Data_vs170.sln +++ b/Data/Data_vs170.sln @@ -1,5 +1,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 +VisualStudioVersion = 17.7.34202.233 +MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Data", "Data_vs170.vcxproj", "{240E83C3-368D-11DB-9FBC-00123FC423B5}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs170.vcxproj", "{1813A463-E349-4FEA-8A8E-4A41E41C0DC7}" @@ -7,136 +9,174 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\Test {240E83C3-368D-11DB-9FBC-00123FC423B5} = {240E83C3-368D-11DB-9FBC-00123FC423B5} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DataTest", "testsuite\DataTest\DataTest_vs170.vcxproj", "{7F518AB9-9D03-4769-9464-09D84F40A91A}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution debug_shared|ARM64 = debug_shared|ARM64 - release_shared|ARM64 = release_shared|ARM64 - debug_static_mt|ARM64 = debug_static_mt|ARM64 - release_static_mt|ARM64 = release_static_mt|ARM64 - debug_static_md|ARM64 = debug_static_md|ARM64 - release_static_md|ARM64 = release_static_md|ARM64 debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 + debug_static_md|ARM64 = debug_static_md|ARM64 + debug_static_md|Win32 = debug_static_md|Win32 debug_static_md|x64 = debug_static_md|x64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 + debug_static_mt|Win32 = debug_static_mt|Win32 + debug_static_mt|x64 = debug_static_mt|x64 + release_shared|ARM64 = release_shared|ARM64 + release_shared|Win32 = release_shared|Win32 + release_shared|x64 = release_shared|x64 + release_static_md|ARM64 = release_static_md|ARM64 + release_static_md|Win32 = release_static_md|Win32 release_static_md|x64 = release_static_md|x64 + release_static_mt|ARM64 = release_static_mt|ARM64 + release_static_mt|Win32 = release_static_mt|Win32 + release_static_mt|x64 = release_static_mt|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.Build.0 = release_shared|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Build.0 = release_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Build.0 = debug_shared|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.ActiveCfg = release_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Build.0 = release_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Deploy.0 = release_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Build.0 = release_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.ActiveCfg = release_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Build.0 = release_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Deploy.0 = release_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Build.0 = release_static_md|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|ARM64.Build.0 = release_shared|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.Build.0 = debug_shared|Win32 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Build.0 = release_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.ActiveCfg = debug_shared|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.Build.0 = debug_shared|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.ActiveCfg = release_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Build.0 = release_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Deploy.0 = release_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.Build.0 = debug_static_md|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Build.0 = release_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.ActiveCfg = release_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Build.0 = release_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Deploy.0 = release_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.ActiveCfg = release_static_md|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.Build.0 = release_static_md|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_shared|x64.Build.0 = debug_shared|x64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_shared|Win32.Build.0 = release_shared|Win32 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_shared|x64.ActiveCfg = release_shared|x64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_shared|x64.Build.0 = release_shared|x64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_md|x64.Build.0 = release_static_md|x64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_mt|x64.Build.0 = release_static_mt|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Data/ODBC/ODBC_vs170.vcxproj.filters b/Data/ODBC/ODBC_vs170.vcxproj.filters index 7cce9d8c3..54bcd1e08 100644 --- a/Data/ODBC/ODBC_vs170.vcxproj.filters +++ b/Data/ODBC/ODBC_vs170.vcxproj.filters @@ -2,13 +2,13 @@ - {ab1bd12b-967a-48d9-a972-7079d524ac44} + {a7388ead-42ff-447a-955a-aacd59ab48f3} - {71ad1ef0-6dc6-45e8-8c12-1c0503e8c2e9} + {2565da62-cc47-42d3-aa3e-4c9a3b2f0a7a} - {ac1c05f5-d9ad-44cf-a750-47d34820b806} + {7bb5985d-c5ad-47ae-acd6-e35e9f095bdb} diff --git a/Data/ODBC/testsuite/TestSuite.progen b/Data/ODBC/testsuite/TestSuite.progen index 49a01b0d3..ad611e51d 100644 --- a/Data/ODBC/testsuite/TestSuite.progen +++ b/Data/ODBC/testsuite/TestSuite.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj -vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src +vc.project.compiler.include = ..\\..\\..\\CppUnit\\include;..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\testsuite\\DataTest\\include vc.project.linker.dependencies = odbc32.lib odbccp32.lib iphlpapi.lib diff --git a/Data/ODBC/testsuite/TestSuite_vs170.vcxproj b/Data/ODBC/testsuite/TestSuite_vs170.vcxproj index 82019cf08..ed3e0fff8 100644 --- a/Data/ODBC/testsuite/TestSuite_vs170.vcxproj +++ b/Data/ODBC/testsuite/TestSuite_vs170.vcxproj @@ -1,4 +1,4 @@ - + @@ -81,7 +81,7 @@ TestSuite Win32Proj - + Application MultiByte @@ -172,63 +172,63 @@ MultiByte v143 - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + <_ProjectFileVersion>17.0.34202.158 TestSuited @@ -343,7 +343,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -352,7 +352,7 @@ true true true - + Level3 ProgramDatabase Default @@ -377,7 +377,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -385,9 +385,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb true @@ -406,7 +406,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -415,7 +415,7 @@ true true true - + Level3 ProgramDatabase Default @@ -440,7 +440,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -448,9 +448,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb true @@ -469,7 +469,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -478,7 +478,7 @@ true true true - + Level3 ProgramDatabase Default @@ -503,7 +503,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -511,9 +511,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb true @@ -532,7 +532,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -541,7 +541,7 @@ true true true - + Level3 ProgramDatabase Default @@ -566,7 +566,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -574,9 +574,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb true @@ -595,7 +595,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -604,7 +604,7 @@ true true true - + Level3 ProgramDatabase Default @@ -629,7 +629,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -637,9 +637,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb true @@ -658,7 +658,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -667,7 +667,7 @@ true true true - + Level3 ProgramDatabase Default @@ -692,7 +692,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -700,9 +700,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb true @@ -721,7 +721,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -730,7 +730,7 @@ true true true - + Level3 ProgramDatabase Default @@ -755,7 +755,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -763,9 +763,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb true @@ -784,7 +784,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -793,7 +793,7 @@ true true true - + Level3 ProgramDatabase Default @@ -818,7 +818,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -826,9 +826,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb true @@ -847,7 +847,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -856,7 +856,7 @@ true true true - + Level3 ProgramDatabase Default @@ -881,7 +881,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -889,9 +889,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb true @@ -908,16 +908,16 @@ - - - - - - - - - - + + + + + + + + + + @@ -954,6 +954,6 @@ true - - - + + + \ No newline at end of file diff --git a/Data/samples/Binding/Binding.progen b/Data/samples/Binding/Binding.progen index c8aed3279..a3dd5dfdd 100644 --- a/Data/samples/Binding/Binding.progen +++ b/Data/samples/Binding/Binding.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLite\\include +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include vc.project.linker.dependencies = iphlpapi.lib diff --git a/Data/samples/Binding/Binding_vs170.vcxproj b/Data/samples/Binding/Binding_vs170.vcxproj index f4d37b434..cd160382b 100644 --- a/Data/samples/Binding/Binding_vs170.vcxproj +++ b/Data/samples/Binding/Binding_vs170.vcxproj @@ -1,4 +1,4 @@ - + @@ -56,7 +56,7 @@ Binding Win32Proj - + Application MultiByte @@ -117,45 +117,45 @@ MultiByte v143 - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + <_ProjectFileVersion>15.0.28307.799 Bindingd @@ -234,7 +234,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -243,7 +243,7 @@ true true true - + Level3 ProgramDatabase Default @@ -267,7 +267,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -275,9 +275,9 @@ true true true - + Level3 - + Default true @@ -295,7 +295,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -304,7 +304,7 @@ true true true - + Level3 ProgramDatabase Default @@ -328,7 +328,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -336,9 +336,9 @@ true true true - + Level3 - + Default true @@ -356,7 +356,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -365,7 +365,7 @@ true true true - + Level3 ProgramDatabase Default @@ -389,7 +389,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -397,9 +397,9 @@ true true true - + Level3 - + Default true @@ -417,7 +417,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -426,7 +426,7 @@ true true true - + Level3 ProgramDatabase Default @@ -450,7 +450,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -458,9 +458,9 @@ true true true - + Level3 - + Default true @@ -478,7 +478,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -487,7 +487,7 @@ true true true - + Level3 ProgramDatabase Default @@ -511,7 +511,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -519,9 +519,9 @@ true true true - + Level3 - + Default true @@ -539,7 +539,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -548,7 +548,7 @@ true true true - + Level3 ProgramDatabase Default @@ -572,7 +572,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -580,9 +580,9 @@ true true true - + Level3 - + Default true @@ -602,6 +602,6 @@ true - - - + + + \ No newline at end of file diff --git a/Data/samples/RecordSet/RecordSet.progen b/Data/samples/RecordSet/RecordSet.progen index c8aed3279..a3dd5dfdd 100644 --- a/Data/samples/RecordSet/RecordSet.progen +++ b/Data/samples/RecordSet/RecordSet.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLite\\include +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include vc.project.linker.dependencies = iphlpapi.lib diff --git a/Data/samples/RecordSet/RecordSet_vs170.vcxproj b/Data/samples/RecordSet/RecordSet_vs170.vcxproj index 70da04ea9..b457eb095 100644 --- a/Data/samples/RecordSet/RecordSet_vs170.vcxproj +++ b/Data/samples/RecordSet/RecordSet_vs170.vcxproj @@ -1,4 +1,4 @@ - + @@ -56,7 +56,7 @@ RecordSet Win32Proj - + Application MultiByte @@ -117,45 +117,45 @@ MultiByte v143 - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + <_ProjectFileVersion>15.0.28307.799 RecordSetd @@ -234,7 +234,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -243,7 +243,7 @@ true true true - + Level3 ProgramDatabase Default @@ -267,7 +267,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -275,9 +275,9 @@ true true true - + Level3 - + Default true @@ -295,7 +295,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -304,7 +304,7 @@ true true true - + Level3 ProgramDatabase Default @@ -328,7 +328,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -336,9 +336,9 @@ true true true - + Level3 - + Default true @@ -356,7 +356,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -365,7 +365,7 @@ true true true - + Level3 ProgramDatabase Default @@ -389,7 +389,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -397,9 +397,9 @@ true true true - + Level3 - + Default true @@ -417,7 +417,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -426,7 +426,7 @@ true true true - + Level3 ProgramDatabase Default @@ -450,7 +450,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -458,9 +458,9 @@ true true true - + Level3 - + Default true @@ -478,7 +478,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -487,7 +487,7 @@ true true true - + Level3 ProgramDatabase Default @@ -511,7 +511,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -519,9 +519,9 @@ true true true - + Level3 - + Default true @@ -539,7 +539,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -548,7 +548,7 @@ true true true - + Level3 ProgramDatabase Default @@ -572,7 +572,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -580,9 +580,9 @@ true true true - + Level3 - + Default true @@ -602,6 +602,6 @@ true - - - + + + \ No newline at end of file diff --git a/Data/samples/RowFormatter/RowFormatter.progen b/Data/samples/RowFormatter/RowFormatter.progen index c8aed3279..a3dd5dfdd 100644 --- a/Data/samples/RowFormatter/RowFormatter.progen +++ b/Data/samples/RowFormatter/RowFormatter.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLite\\include +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include vc.project.linker.dependencies = iphlpapi.lib diff --git a/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj b/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj index e005c0188..f79a295df 100644 --- a/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj +++ b/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj @@ -1,4 +1,4 @@ - + @@ -56,7 +56,7 @@ RowFormatter Win32Proj - + Application MultiByte @@ -117,45 +117,45 @@ MultiByte v143 - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + <_ProjectFileVersion>15.0.28307.799 RowFormatterd @@ -234,7 +234,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -243,7 +243,7 @@ true true true - + Level3 ProgramDatabase Default @@ -267,7 +267,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -275,9 +275,9 @@ true true true - + Level3 - + Default true @@ -295,7 +295,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -304,7 +304,7 @@ true true true - + Level3 ProgramDatabase Default @@ -328,7 +328,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -336,9 +336,9 @@ true true true - + Level3 - + Default true @@ -356,7 +356,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -365,7 +365,7 @@ true true true - + Level3 ProgramDatabase Default @@ -389,7 +389,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -397,9 +397,9 @@ true true true - + Level3 - + Default true @@ -417,7 +417,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -426,7 +426,7 @@ true true true - + Level3 ProgramDatabase Default @@ -450,7 +450,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -458,9 +458,9 @@ true true true - + Level3 - + Default true @@ -478,7 +478,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -487,7 +487,7 @@ true true true - + Level3 ProgramDatabase Default @@ -511,7 +511,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -519,9 +519,9 @@ true true true - + Level3 - + Default true @@ -539,7 +539,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -548,7 +548,7 @@ true true true - + Level3 ProgramDatabase Default @@ -572,7 +572,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -580,9 +580,9 @@ true true true - + Level3 - + Default true @@ -602,6 +602,6 @@ true - - - + + + \ No newline at end of file diff --git a/Data/samples/Tuple/Tuple.progen b/Data/samples/Tuple/Tuple.progen index c8aed3279..a3dd5dfdd 100644 --- a/Data/samples/Tuple/Tuple.progen +++ b/Data/samples/Tuple/Tuple.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLite\\include +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include vc.project.linker.dependencies = iphlpapi.lib diff --git a/Data/samples/Tuple/Tuple_vs170.vcxproj b/Data/samples/Tuple/Tuple_vs170.vcxproj index c8be8a37b..bef0cccdc 100644 --- a/Data/samples/Tuple/Tuple_vs170.vcxproj +++ b/Data/samples/Tuple/Tuple_vs170.vcxproj @@ -1,4 +1,4 @@ - + @@ -56,7 +56,7 @@ Tuple Win32Proj - + Application MultiByte @@ -117,45 +117,45 @@ MultiByte v143 - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + <_ProjectFileVersion>15.0.28307.799 Tupled @@ -234,7 +234,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -243,7 +243,7 @@ true true true - + Level3 ProgramDatabase Default @@ -267,7 +267,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -275,9 +275,9 @@ true true true - + Level3 - + Default true @@ -295,7 +295,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -304,7 +304,7 @@ true true true - + Level3 ProgramDatabase Default @@ -328,7 +328,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -336,9 +336,9 @@ true true true - + Level3 - + Default true @@ -356,7 +356,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -365,7 +365,7 @@ true true true - + Level3 ProgramDatabase Default @@ -389,7 +389,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -397,9 +397,9 @@ true true true - + Level3 - + Default true @@ -417,7 +417,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -426,7 +426,7 @@ true true true - + Level3 ProgramDatabase Default @@ -450,7 +450,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -458,9 +458,9 @@ true true true - + Level3 - + Default true @@ -478,7 +478,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -487,7 +487,7 @@ true true true - + Level3 ProgramDatabase Default @@ -511,7 +511,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -519,9 +519,9 @@ true true true - + Level3 - + Default true @@ -539,7 +539,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -548,7 +548,7 @@ true true true - + Level3 ProgramDatabase Default @@ -572,7 +572,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -580,9 +580,9 @@ true true true - + Level3 - + Default true @@ -602,6 +602,6 @@ true - - - + + + \ No newline at end of file diff --git a/Data/samples/TypeHandler/TypeHandler.progen b/Data/samples/TypeHandler/TypeHandler.progen index a9d5d4900..96965a6ce 100644 --- a/Data/samples/TypeHandler/TypeHandler.progen +++ b/Data/samples/TypeHandler/TypeHandler.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLite\\include +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj b/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj index e719b252a..7f2abfcb7 100644 --- a/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj +++ b/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj @@ -1,4 +1,4 @@ - + @@ -56,7 +56,7 @@ TypeHandler Win32Proj - + Application MultiByte @@ -117,45 +117,45 @@ MultiByte v143 - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + <_ProjectFileVersion>15.0.28307.799 TypeHandlerd @@ -234,7 +234,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -243,7 +243,7 @@ true true true - + Level3 ProgramDatabase Default @@ -267,7 +267,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -275,9 +275,9 @@ true true true - + Level3 - + Default true @@ -295,7 +295,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -304,7 +304,7 @@ true true true - + Level3 ProgramDatabase Default @@ -328,7 +328,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -336,9 +336,9 @@ true true true - + Level3 - + Default true @@ -356,7 +356,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -365,7 +365,7 @@ true true true - + Level3 ProgramDatabase Default @@ -389,7 +389,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -397,9 +397,9 @@ true true true - + Level3 - + Default true @@ -417,7 +417,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -426,7 +426,7 @@ true true true - + Level3 ProgramDatabase Default @@ -450,7 +450,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -458,9 +458,9 @@ true true true - + Level3 - + Default true @@ -478,7 +478,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -487,7 +487,7 @@ true true true - + Level3 ProgramDatabase Default @@ -511,7 +511,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -519,9 +519,9 @@ true true true - + Level3 - + Default true @@ -539,7 +539,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -548,7 +548,7 @@ true true true - + Level3 ProgramDatabase Default @@ -572,7 +572,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -580,9 +580,9 @@ true true true - + Level3 - + Default true @@ -602,6 +602,6 @@ true - - - + + + \ No newline at end of file diff --git a/Data/samples/WebNotifier/WebNotifier.progen b/Data/samples/WebNotifier/WebNotifier.progen index 5d9f41217..7d8738bb1 100644 --- a/Data/samples/WebNotifier/WebNotifier.progen +++ b/Data/samples/WebNotifier/WebNotifier.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLite\\include;..\\..\\..\\Net\\include +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include;..\\..\\..\\Net\\include vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib diff --git a/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj b/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj index 3ec214628..f60166a4b 100644 --- a/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj +++ b/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj @@ -1,4 +1,4 @@ - + @@ -56,7 +56,7 @@ WebNotifier Win32Proj - + Application MultiByte @@ -117,45 +117,45 @@ MultiByte v143 - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + <_ProjectFileVersion>15.0.28307.799 WebNotifierd @@ -234,7 +234,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -243,7 +243,7 @@ true true true - + Level3 ProgramDatabase Default @@ -267,7 +267,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -275,9 +275,9 @@ true true true - + Level3 - + Default true @@ -295,7 +295,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -304,7 +304,7 @@ true true true - + Level3 ProgramDatabase Default @@ -328,7 +328,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -336,9 +336,9 @@ true true true - + Level3 - + Default true @@ -356,7 +356,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -365,7 +365,7 @@ true true true - + Level3 ProgramDatabase Default @@ -389,7 +389,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -397,9 +397,9 @@ true true true - + Level3 - + Default true @@ -417,7 +417,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -426,7 +426,7 @@ true true true - + Level3 ProgramDatabase Default @@ -450,7 +450,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -458,9 +458,9 @@ true true true - + Level3 - + Default true @@ -478,7 +478,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -487,7 +487,7 @@ true true true - + Level3 ProgramDatabase Default @@ -511,7 +511,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -519,9 +519,9 @@ true true true - + Level3 - + Default true @@ -539,7 +539,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -548,7 +548,7 @@ true true true - + Level3 ProgramDatabase Default @@ -572,7 +572,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -580,9 +580,9 @@ true true true - + Level3 - + Default true @@ -602,6 +602,6 @@ true - - - + + + \ No newline at end of file diff --git a/Data/testsuite/DataTest/DataTest.progen b/Data/testsuite/DataTest/DataTest.progen new file mode 100644 index 000000000..e8966f337 --- /dev/null +++ b/Data/testsuite/DataTest/DataTest.progen @@ -0,0 +1,21 @@ +vc.project.guid = 240E83C3-368D-11DB-9FBC-00123FC423B5 +vc.project.name = DataTest +vc.project.target = Poco${vc.project.name} +vc.project.prototype = DataTest_vs90.vcproj +vc.project.type = library +vc.project.pocobase = ..\\..\\.. +vc.project.outdir = ${vc.project.pocobase} +vc.project.platforms = Win32 +vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md +vc.project.prototype = ${vc.project.name}_vs90.vcproj +# TODO, for now we can just send cpp std via AdditionalOptions (see below) +#vc.project.compiler.std.cpp=stdcpp17 +#vc.project.compiler.std.c=stdc11 +vc.project.compiler.include = .\\src;${vc.project.pocobase}\\CppUnit\\include;${vc.project.pocobase}\\Data\\include;${vc.project.pocobase}\\Data\\src;${vc.project.pocobase}\\Foundation\\include +vc.project.compiler.defines = +vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS;SQLParser_EXPORTS +vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} +vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} +vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.compiler.additionalOptions.Win32.x64 = /bigobj /std:c++17 +vc.solution.create = false diff --git a/Data/testsuite/DataTest/DataTest_VS90.vcproj b/Data/testsuite/DataTest/DataTest_VS90.vcproj new file mode 100644 index 000000000..580faa040 --- /dev/null +++ b/Data/testsuite/DataTest/DataTest_VS90.vcproj @@ -0,0 +1,555 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Data/testsuite/DataTest/DataTest_vs140.vcxproj b/Data/testsuite/DataTest/DataTest_vs140.vcxproj new file mode 100644 index 000000000..6011756e8 --- /dev/null +++ b/Data/testsuite/DataTest/DataTest_vs140.vcxproj @@ -0,0 +1,582 @@ + + + + + debug_shared + Win32 + + + debug_shared + x64 + + + debug_static_md + Win32 + + + debug_static_md + x64 + + + debug_static_mt + Win32 + + + debug_static_mt + x64 + + + release_shared + Win32 + + + release_shared + x64 + + + release_static_md + Win32 + + + release_static_md + x64 + + + release_static_mt + Win32 + + + release_static_mt + x64 + + + + 17.0 + DataTest + {240E83C3-368D-11DB-9FBC-00123FC423B5} + DataTest + Win32Proj + + + + StaticLibrary + MultiByte + v140 + + + StaticLibrary + MultiByte + v140 + + + StaticLibrary + MultiByte + v140 + + + StaticLibrary + MultiByte + v140 + + + DynamicLibrary + MultiByte + v140 + + + DynamicLibrary + MultiByte + v140 + + + StaticLibrary + MultiByte + v140 + + + StaticLibrary + MultiByte + v140 + + + StaticLibrary + MultiByte + v140 + + + StaticLibrary + MultiByte + v140 + + + DynamicLibrary + MultiByte + v140 + + + DynamicLibrary + MultiByte + v140 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>17.0.34202.158 + PocoDataTestd + PocoDataTestmdd + PocoDataTestmtd + PocoDataTest + PocoDataTestmd + PocoDataTestmt + PocoDataTest64d + PocoDataTestmdd + PocoDataTestmtd + PocoDataTest64 + PocoDataTestmd + PocoDataTestmt + + + ..\bin\ + obj\DataTest\$(Configuration)\ + true + + + ..\bin\ + obj\DataTest\$(Configuration)\ + false + + + ..\lib\ + obj\DataTest\$(Configuration)\ + + + ..\lib\ + obj\DataTest\$(Configuration)\ + + + ..\lib\ + obj\DataTest\$(Configuration)\ + + + ..\lib\ + obj\DataTest\$(Configuration)\ + + + ..\bin64\ + obj64\DataTest\$(Configuration)\ + true + + + ..\bin64\ + obj64\DataTest\$(Configuration)\ + false + + + ..\lib64\ + obj64\DataTest\$(Configuration)\ + + + ..\lib64\ + obj64\DataTest\$(Configuration)\ + + + ..\lib64\ + obj64\DataTest\$(Configuration)\ + + + ..\lib64\ + obj64\DataTest\$(Configuration)\ + + + + Disabled + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\bin\PocoDataTestd.dll + true + true + ..\bin\PocoDataTestd.pdb + ..\lib;%(AdditionalLibraryDirectories) + Console + ..\lib\PocoDataTestd.lib + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\bin\PocoDataTest.dll + true + false + ..\lib;%(AdditionalLibraryDirectories) + Console + true + true + ..\lib\PocoDataTest.lib + MachineX86 + + + + + Disabled + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + ..\lib\PocoDataTestmtd.pdb + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\lib\PocoDataTestmtd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\lib\PocoDataTestmt.lib + + + + + Disabled + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + ..\lib\PocoDataTestmdd.pdb + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\lib\PocoDataTestmdd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + ..\lib\PocoDataTestmd.pdb + Level3 + + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\lib\PocoDataTestmd.lib + + + + + Disabled + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + true + + + ..\bin64\PocoDataTest64d.dll + true + true + ..\bin64\PocoDataTest64d.pdb + ..\lib64;%(AdditionalLibraryDirectories) + Console + ..\lib64\PocoDataTestd.lib + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + true + + + ..\bin64\PocoDataTest64.dll + true + false + ..\lib64;%(AdditionalLibraryDirectories) + Console + true + true + ..\lib64\PocoDataTest.lib + MachineX64 + + + + + Disabled + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + ..\lib64\PocoDataTestmtd.pdb + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + true + + + ..\lib64\PocoDataTestmtd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + true + + + ..\lib64\PocoDataTestmt.lib + + + + + Disabled + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + ..\lib64\PocoDataTestmdd.pdb + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + true + + + ..\lib64\PocoDataTestmdd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + true + + + ..\lib64\PocoDataTestmd.lib + + + + + + + + + + + + true + + + + + true + true + true + true + true + true + true + true + + + + + diff --git a/Data/testsuite/DataTest/DataTest_vs140.vcxproj.filters b/Data/testsuite/DataTest/DataTest_vs140.vcxproj.filters new file mode 100644 index 000000000..00bc48187 --- /dev/null +++ b/Data/testsuite/DataTest/DataTest_vs140.vcxproj.filters @@ -0,0 +1,32 @@ + + + + + {1aa885d6-a396-459d-96f6-d62ede642430} + + + {3b15ecde-a0e3-4524-a130-192cc19ffa00} + + + + + Header Files + + + + + Header Files + + + Header Files + + + + + Source Files + + + + + + \ No newline at end of file diff --git a/Data/testsuite/DataTest/DataTest_vs150.vcxproj b/Data/testsuite/DataTest/DataTest_vs150.vcxproj new file mode 100644 index 000000000..e08aa1da5 --- /dev/null +++ b/Data/testsuite/DataTest/DataTest_vs150.vcxproj @@ -0,0 +1,582 @@ + + + + + debug_shared + Win32 + + + debug_shared + x64 + + + debug_static_md + Win32 + + + debug_static_md + x64 + + + debug_static_mt + Win32 + + + debug_static_mt + x64 + + + release_shared + Win32 + + + release_shared + x64 + + + release_static_md + Win32 + + + release_static_md + x64 + + + release_static_mt + Win32 + + + release_static_mt + x64 + + + + 17.0 + DataTest + {240E83C3-368D-11DB-9FBC-00123FC423B5} + DataTest + Win32Proj + + + + StaticLibrary + MultiByte + v141 + + + StaticLibrary + MultiByte + v141 + + + StaticLibrary + MultiByte + v141 + + + StaticLibrary + MultiByte + v141 + + + DynamicLibrary + MultiByte + v141 + + + DynamicLibrary + MultiByte + v141 + + + StaticLibrary + MultiByte + v141 + + + StaticLibrary + MultiByte + v141 + + + StaticLibrary + MultiByte + v141 + + + StaticLibrary + MultiByte + v141 + + + DynamicLibrary + MultiByte + v141 + + + DynamicLibrary + MultiByte + v141 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>17.0.34202.158 + PocoDataTestd + PocoDataTestmdd + PocoDataTestmtd + PocoDataTest + PocoDataTestmd + PocoDataTestmt + PocoDataTest64d + PocoDataTestmdd + PocoDataTestmtd + PocoDataTest64 + PocoDataTestmd + PocoDataTestmt + + + ..\bin\ + obj\DataTest\$(Configuration)\ + true + + + ..\bin\ + obj\DataTest\$(Configuration)\ + false + + + ..\lib\ + obj\DataTest\$(Configuration)\ + + + ..\lib\ + obj\DataTest\$(Configuration)\ + + + ..\lib\ + obj\DataTest\$(Configuration)\ + + + ..\lib\ + obj\DataTest\$(Configuration)\ + + + ..\bin64\ + obj64\DataTest\$(Configuration)\ + true + + + ..\bin64\ + obj64\DataTest\$(Configuration)\ + false + + + ..\lib64\ + obj64\DataTest\$(Configuration)\ + + + ..\lib64\ + obj64\DataTest\$(Configuration)\ + + + ..\lib64\ + obj64\DataTest\$(Configuration)\ + + + ..\lib64\ + obj64\DataTest\$(Configuration)\ + + + + Disabled + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\bin\PocoDataTestd.dll + true + true + ..\bin\PocoDataTestd.pdb + ..\lib;%(AdditionalLibraryDirectories) + Console + ..\lib\PocoDataTestd.lib + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\bin\PocoDataTest.dll + true + false + ..\lib;%(AdditionalLibraryDirectories) + Console + true + true + ..\lib\PocoDataTest.lib + MachineX86 + + + + + Disabled + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + ..\lib\PocoDataTestmtd.pdb + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\lib\PocoDataTestmtd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\lib\PocoDataTestmt.lib + + + + + Disabled + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + ..\lib\PocoDataTestmdd.pdb + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\lib\PocoDataTestmdd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + ..\lib\PocoDataTestmd.pdb + Level3 + + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\lib\PocoDataTestmd.lib + + + + + Disabled + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + true + + + ..\bin64\PocoDataTest64d.dll + true + true + ..\bin64\PocoDataTest64d.pdb + ..\lib64;%(AdditionalLibraryDirectories) + Console + ..\lib64\PocoDataTestd.lib + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + true + + + ..\bin64\PocoDataTest64.dll + true + false + ..\lib64;%(AdditionalLibraryDirectories) + Console + true + true + ..\lib64\PocoDataTest.lib + MachineX64 + + + + + Disabled + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + ..\lib64\PocoDataTestmtd.pdb + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + true + + + ..\lib64\PocoDataTestmtd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + true + + + ..\lib64\PocoDataTestmt.lib + + + + + Disabled + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + ..\lib64\PocoDataTestmdd.pdb + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + true + + + ..\lib64\PocoDataTestmdd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + true + + + ..\lib64\PocoDataTestmd.lib + + + + + + + + + + + + true + + + + + true + true + true + true + true + true + true + true + + + + + diff --git a/Data/testsuite/DataTest/DataTest_vs150.vcxproj.filters b/Data/testsuite/DataTest/DataTest_vs150.vcxproj.filters new file mode 100644 index 000000000..6f0aea61d --- /dev/null +++ b/Data/testsuite/DataTest/DataTest_vs150.vcxproj.filters @@ -0,0 +1,32 @@ + + + + + {6622d8cd-0202-4944-8c15-4209b6a162c2} + + + {c1db789a-4af6-4386-b74e-056e46ffc5a6} + + + + + Header Files + + + + + Header Files + + + Header Files + + + + + Source Files + + + + + + \ No newline at end of file diff --git a/Data/testsuite/DataTest/DataTest_vs160.vcxproj b/Data/testsuite/DataTest/DataTest_vs160.vcxproj new file mode 100644 index 000000000..acfb9d6bc --- /dev/null +++ b/Data/testsuite/DataTest/DataTest_vs160.vcxproj @@ -0,0 +1,582 @@ + + + + + debug_shared + Win32 + + + debug_shared + x64 + + + debug_static_md + Win32 + + + debug_static_md + x64 + + + debug_static_mt + Win32 + + + debug_static_mt + x64 + + + release_shared + Win32 + + + release_shared + x64 + + + release_static_md + Win32 + + + release_static_md + x64 + + + release_static_mt + Win32 + + + release_static_mt + x64 + + + + 17.0 + DataTest + {240E83C3-368D-11DB-9FBC-00123FC423B5} + DataTest + Win32Proj + + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + DynamicLibrary + MultiByte + v142 + + + DynamicLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + DynamicLibrary + MultiByte + v142 + + + DynamicLibrary + MultiByte + v142 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>17.0.34202.158 + PocoDataTestd + PocoDataTestmdd + PocoDataTestmtd + PocoDataTest + PocoDataTestmd + PocoDataTestmt + PocoDataTest64d + PocoDataTestmdd + PocoDataTestmtd + PocoDataTest64 + PocoDataTestmd + PocoDataTestmt + + + ..\bin\ + obj\DataTest\$(Configuration)\ + true + + + ..\bin\ + obj\DataTest\$(Configuration)\ + false + + + ..\lib\ + obj\DataTest\$(Configuration)\ + + + ..\lib\ + obj\DataTest\$(Configuration)\ + + + ..\lib\ + obj\DataTest\$(Configuration)\ + + + ..\lib\ + obj\DataTest\$(Configuration)\ + + + ..\bin64\ + obj64\DataTest\$(Configuration)\ + true + + + ..\bin64\ + obj64\DataTest\$(Configuration)\ + false + + + ..\lib64\ + obj64\DataTest\$(Configuration)\ + + + ..\lib64\ + obj64\DataTest\$(Configuration)\ + + + ..\lib64\ + obj64\DataTest\$(Configuration)\ + + + ..\lib64\ + obj64\DataTest\$(Configuration)\ + + + + Disabled + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\bin\PocoDataTestd.dll + true + true + ..\bin\PocoDataTestd.pdb + ..\lib;%(AdditionalLibraryDirectories) + Console + ..\lib\PocoDataTestd.lib + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\bin\PocoDataTest.dll + true + false + ..\lib;%(AdditionalLibraryDirectories) + Console + true + true + ..\lib\PocoDataTest.lib + MachineX86 + + + + + Disabled + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + ..\lib\PocoDataTestmtd.pdb + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\lib\PocoDataTestmtd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\lib\PocoDataTestmt.lib + + + + + Disabled + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + ..\lib\PocoDataTestmdd.pdb + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\lib\PocoDataTestmdd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + ..\lib\PocoDataTestmd.pdb + Level3 + + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\lib\PocoDataTestmd.lib + + + + + Disabled + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + true + + + ..\bin64\PocoDataTest64d.dll + true + true + ..\bin64\PocoDataTest64d.pdb + ..\lib64;%(AdditionalLibraryDirectories) + Console + ..\lib64\PocoDataTestd.lib + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + true + + + ..\bin64\PocoDataTest64.dll + true + false + ..\lib64;%(AdditionalLibraryDirectories) + Console + true + true + ..\lib64\PocoDataTest.lib + MachineX64 + + + + + Disabled + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + ..\lib64\PocoDataTestmtd.pdb + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + true + + + ..\lib64\PocoDataTestmtd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + true + + + ..\lib64\PocoDataTestmt.lib + + + + + Disabled + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + ..\lib64\PocoDataTestmdd.pdb + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + true + + + ..\lib64\PocoDataTestmdd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + true + + + ..\lib64\PocoDataTestmd.lib + + + + + + + + + + + + true + + + + + true + true + true + true + true + true + true + true + + + + + diff --git a/Data/testsuite/DataTest/DataTest_vs160.vcxproj.filters b/Data/testsuite/DataTest/DataTest_vs160.vcxproj.filters new file mode 100644 index 000000000..526420e8d --- /dev/null +++ b/Data/testsuite/DataTest/DataTest_vs160.vcxproj.filters @@ -0,0 +1,32 @@ + + + + + {8a77203b-f433-458d-8414-77fc321bd4b1} + + + {4a07844d-3afc-46d5-977f-86d98fc91159} + + + + + Header Files + + + + + Header Files + + + Header Files + + + + + Source Files + + + + + + \ No newline at end of file diff --git a/Data/testsuite/DataTest/DataTest_vs170.vcxproj b/Data/testsuite/DataTest/DataTest_vs170.vcxproj new file mode 100644 index 000000000..eda6be045 --- /dev/null +++ b/Data/testsuite/DataTest/DataTest_vs170.vcxproj @@ -0,0 +1,865 @@ + + + + + debug_shared + ARM64 + + + debug_shared + Win32 + + + debug_shared + x64 + + + debug_static_md + ARM64 + + + debug_static_md + Win32 + + + debug_static_md + x64 + + + debug_static_mt + ARM64 + + + debug_static_mt + Win32 + + + debug_static_mt + x64 + + + release_shared + ARM64 + + + release_shared + Win32 + + + release_shared + x64 + + + release_static_md + ARM64 + + + release_static_md + Win32 + + + release_static_md + x64 + + + release_static_mt + ARM64 + + + release_static_mt + Win32 + + + release_static_mt + x64 + + + + 17.0 + DataTest + {7F518AB9-9D03-4769-9464-09D84F40A91A} + DataTest + Win32Proj + + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + DynamicLibrary + MultiByte + v143 + + + DynamicLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + DynamicLibrary + MultiByte + v143 + + + DynamicLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + DynamicLibrary + MultiByte + v143 + + + DynamicLibrary + MultiByte + v143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>17.0.34202.158 + PocoDataTestA64d + PocoDataTestmdd + PocoDataTestmtd + PocoDataTestA64 + PocoDataTestmd + PocoDataTestmt + PocoDataTestd + PocoDataTestmdd + PocoDataTestmtd + PocoDataTest + PocoDataTestmd + PocoDataTestmt + PocoDataTest64d + PocoDataTestmdd + PocoDataTestmtd + PocoDataTest64 + PocoDataTestmd + PocoDataTestmt + + + ..\..\..\binA64\ + objA64\DataTest\$(Configuration)\ + true + + + ..\..\..\binA64\ + objA64\DataTest\$(Configuration)\ + false + + + ..\..\..\libA64\ + objA64\DataTest\$(Configuration)\ + + + ..\..\..\libA64\ + objA64\DataTest\$(Configuration)\ + + + ..\..\..\libA64\ + objA64\DataTest\$(Configuration)\ + + + ..\..\..\libA64\ + objA64\DataTest\$(Configuration)\ + + + ..\..\..\bin\ + obj\DataTest\$(Configuration)\ + true + + + ..\..\..\bin\ + obj\DataTest\$(Configuration)\ + false + + + ..\..\..\lib\ + obj\DataTest\$(Configuration)\ + + + ..\..\..\lib\ + obj\DataTest\$(Configuration)\ + + + ..\..\..\lib\ + obj\DataTest\$(Configuration)\ + + + ..\..\..\lib\ + obj\DataTest\$(Configuration)\ + + + ..\..\..\bin64\ + obj64\DataTest\$(Configuration)\ + true + + + ..\..\..\bin64\ + obj64\DataTest\$(Configuration)\ + false + + + ..\..\..\lib64\ + obj64\DataTest\$(Configuration)\ + + + ..\..\..\lib64\ + obj64\DataTest\$(Configuration)\ + + + ..\..\..\lib64\ + obj64\DataTest\$(Configuration)\ + + + ..\..\..\lib64\ + obj64\DataTest\$(Configuration)\ + + + + Disabled + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\..\..\binA64\PocoDataTestA64d.dll + true + true + $(OutDir)$(TargetName).pdb + ..\..\..\libA64;%(AdditionalLibraryDirectories) + Console + ..\..\..\libA64\PocoDataTestd.lib + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\..\..\binA64\PocoDataTestA64.dll + true + false + ..\..\..\libA64;%(AdditionalLibraryDirectories) + Console + true + true + ..\..\..\libA64\PocoDataTest.lib + MachineARM64 + + + + + Disabled + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\..\..\libA64\PocoDataTestmtd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\..\..\libA64\PocoDataTestmt.lib + + + + + Disabled + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\..\..\libA64\PocoDataTestmdd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\..\..\libA64\PocoDataTestmd.lib + + + + + Disabled + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\..\..\bin\PocoDataTestd.dll + true + true + $(OutDir)$(TargetName).pdb + ..\..\..\lib;%(AdditionalLibraryDirectories) + Console + ..\..\..\lib\PocoDataTestd.lib + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\..\..\bin\PocoDataTest.dll + true + false + ..\..\..\lib;%(AdditionalLibraryDirectories) + Console + true + true + ..\..\..\lib\PocoDataTest.lib + MachineX86 + + + + + Disabled + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\..\..\lib\PocoDataTestmtd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\..\..\lib\PocoDataTestmt.lib + + + + + Disabled + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\..\..\lib\PocoDataTestmdd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\..\..\lib\PocoDataTestmd.lib + + + + + Disabled + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\..\..\bin64\PocoDataTest64d.dll + true + true + $(OutDir)$(TargetName).pdb + ..\..\..\lib64;%(AdditionalLibraryDirectories) + Console + ..\..\..\lib64\PocoDataTestd.lib + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\..\..\bin64\PocoDataTest64.dll + true + false + ..\..\..\lib64;%(AdditionalLibraryDirectories) + Console + true + true + ..\..\..\lib64\PocoDataTest.lib + MachineX64 + + + + + Disabled + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\..\..\lib64\PocoDataTestmtd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\..\..\lib64\PocoDataTestmt.lib + + + + + Disabled + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\..\..\lib64\PocoDataTestmdd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + true + + + ..\..\..\lib64\PocoDataTestmd.lib + + + + + + + + + + + + true + + + + + true + true + true + true + true + true + true + true + true + true + true + true + + + + + \ No newline at end of file diff --git a/Data/testsuite/DataTest/DataTest_vs170.vcxproj.filters b/Data/testsuite/DataTest/DataTest_vs170.vcxproj.filters new file mode 100644 index 000000000..1465809d0 --- /dev/null +++ b/Data/testsuite/DataTest/DataTest_vs170.vcxproj.filters @@ -0,0 +1,32 @@ + + + + + {d23df068-ff7c-40b6-815e-f5a00e85c352} + + + {01fdedb2-0713-4240-8060-3d4eb4f6dcfb} + + + + + Header Files + + + + + Header Files + + + Header Files + + + + + Source Files + + + + + + \ No newline at end of file diff --git a/Data/testsuite/DataTest/src/SQLExecutor.cpp b/Data/testsuite/DataTest/src/SQLExecutor.cpp index 607ff4dfb..ed6c20cc3 100644 --- a/Data/testsuite/DataTest/src/SQLExecutor.cpp +++ b/Data/testsuite/DataTest/src/SQLExecutor.cpp @@ -3849,7 +3849,7 @@ void SQLExecutor::sessionTransaction(const std::string& connector, const std::st { session().setFeature("autoCommit", true); fail ("must fail on autocommit setting during transaction"); - } catch(const Poco::InvalidAccessException& e) { } + } catch(const Poco::InvalidAccessException&) { } // make sure nothing was changed ... assertTrue (!session().getFeature("autoCommit")); // but setting it to its current state is allowed (no-op) @@ -3936,7 +3936,7 @@ void SQLExecutor::sessionTransactionNoAutoCommit(const std::string& connector, c { local.setFeature("autoCommit", true); fail ("must fail on autocommit setting during transaction", __LINE__); - } catch(const Poco::InvalidAccessException& e) { } + } catch(const Poco::InvalidAccessException&) { } // but setting it to its current state is allowed (no-op) local.setFeature("autoCommit", false); From 1022d495b4d475252a0cbb30969dc0be3d99e315 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Fri, 10 Nov 2023 10:09:51 +0100 Subject: [PATCH 200/395] fix(build): regenerate vs160 Data-dependent projects; temporarily disable all CI jobs except VS2019 buildwin --- .github/workflows/ci.yml | 400 +++++++++--------- ActiveRecord/ActiveRecord_vs160.vcxproj | 29 +- .../ActiveRecord_vs160.vcxproj.filters | 6 +- .../testsuite/TestSuite_vs160.vcxproj | 29 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 8 +- Data/Data_vs160.sln | 74 ++-- Data/Data_vs160.vcxproj | 111 +++-- Data/Data_vs160.vcxproj.filters | 174 +++++++- Data/ODBC/ODBC_vs160.vcxproj | 29 +- Data/ODBC/ODBC_vs160.vcxproj.filters | 6 +- Data/ODBC/testsuite/TestSuite_vs160.vcxproj | 29 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 16 +- Data/samples/Binding/Binding_vs160.vcxproj | 29 +- .../Binding/Binding_vs160.vcxproj.filters | 4 +- .../samples/RecordSet/RecordSet_vs160.vcxproj | 29 +- .../RecordSet/RecordSet_vs160.vcxproj.filters | 4 +- .../RowFormatter/RowFormatter_vs160.vcxproj | 29 +- .../RowFormatter_vs160.vcxproj.filters | 4 +- Data/samples/Tuple/Tuple_vs160.vcxproj | 29 +- .../samples/Tuple/Tuple_vs160.vcxproj.filters | 4 +- .../TypeHandler/TypeHandler_vs160.vcxproj | 29 +- .../TypeHandler_vs160.vcxproj.filters | 4 +- .../WebNotifier/WebNotifier_vs160.vcxproj | 29 +- .../WebNotifier_vs160.vcxproj.filters | 4 +- .../testsuite/DataTest/DataTest_vs160.vcxproj | 126 +++--- .../DataTest/DataTest_vs160.vcxproj.filters | 4 +- Data/testsuite/TestSuite_vs160.vcxproj | 45 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 43 +- 28 files changed, 788 insertions(+), 539 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 140433953..85a8395b6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,197 +5,197 @@ concurrency: cancel-in-progress: true jobs: - linux-gcc-make: - runs-on: ubuntu-22.04 - services: - mysql: - image: mysql:latest - env: - MYSQL_ALLOW_EMPTY_PASSWORD: yes - MYSQL_USER: pocotest - MYSQL_PASSWORD: pocotest - MYSQL_DATABASE: pocotest - ports: - - 3306:3306 - steps: - - uses: actions/checkout@v3 - - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev redis-server libmysqlclient-dev - - run: ./configure --everything --omit=PDF && make all -s -j4 && sudo make install - - run: >- - sudo -s - EXCLUDE_TESTS="Data/ODBC Data/PostgreSQL MongoDB" - ./ci/runtests.sh +### linux-gcc-make: +### runs-on: ubuntu-22.04 +### services: +### mysql: +### image: mysql:latest +### env: +### MYSQL_ALLOW_EMPTY_PASSWORD: yes +### MYSQL_USER: pocotest +### MYSQL_PASSWORD: pocotest +### MYSQL_DATABASE: pocotest +### ports: +### - 3306:3306 +### steps: +### - uses: actions/checkout@v3 +### - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev redis-server libmysqlclient-dev +### - run: ./configure --everything --omit=PDF && make all -s -j4 && sudo make install +### - run: >- +### sudo -s +### EXCLUDE_TESTS="Data/ODBC Data/PostgreSQL MongoDB" +### ./ci/runtests.sh - linux-gcc-make-cxx20: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev redis-server libmysqlclient-dev - - run: ./configure --config=Linux-c++20 --everything --omit=PDF && make all -s -j4 && sudo make install - - run: >- - sudo -s - EXCLUDE_TESTS="Data/ODBC Data/MySQL Data/PostgreSQL MongoDB" - ./ci/runtests.sh +### linux-gcc-make-cxx20: +### runs-on: ubuntu-22.04 +### steps: +### - uses: actions/checkout@v3 +### - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev redis-server libmysqlclient-dev +### - run: ./configure --config=Linux-c++20 --everything --omit=PDF && make all -s -j4 && sudo make install +### - run: >- +### sudo -s +### EXCLUDE_TESTS="Data/ODBC Data/MySQL Data/PostgreSQL MongoDB" +### ./ci/runtests.sh - linux-gcc-make-asan: - runs-on: ubuntu-22.04 - services: - mysql: - image: mysql:latest - env: - MYSQL_ALLOW_EMPTY_PASSWORD: yes - MYSQL_USER: pocotest - MYSQL_PASSWORD: pocotest - MYSQL_DATABASE: pocotest - ports: - - 3306:3306 - steps: - - uses: actions/checkout@v3 - - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server - - run: ./configure --everything --no-samples --omit=PDF && make all -s -j4 SANITIZEFLAGS=-fsanitize=address && sudo make install - - run: >- - sudo -s - EXCLUDE_TESTS="Data/ODBC Data/PostgreSQL MongoDB" - ./ci/runtests.sh +### linux-gcc-make-asan: +### runs-on: ubuntu-22.04 +### services: +### mysql: +### image: mysql:latest +### env: +### MYSQL_ALLOW_EMPTY_PASSWORD: yes +### MYSQL_USER: pocotest +### MYSQL_PASSWORD: pocotest +### MYSQL_DATABASE: pocotest +### ports: +### - 3306:3306 +### steps: +### - uses: actions/checkout@v3 +### - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server +### - run: ./configure --everything --no-samples --omit=PDF && make all -s -j4 SANITIZEFLAGS=-fsanitize=address && sudo make install +### - run: >- +### sudo -s +### EXCLUDE_TESTS="Data/ODBC Data/PostgreSQL MongoDB" +### ./ci/runtests.sh - linux-gcc-make-asan-no-soo: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server - - run: ./configure --everything --no-samples --omit=PDF --no-soo && make all -s -j4 SANITIZEFLAGS=-fsanitize=address && sudo make install - - run: >- - sudo -s - EXCLUDE_TESTS="Data/MySQL Data/ODBC Data/PostgreSQL MongoDB" - ./ci/runtests.sh +### linux-gcc-make-asan-no-soo: +### runs-on: ubuntu-22.04 +### steps: +### - uses: actions/checkout@v3 +### - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server +### - run: ./configure --everything --no-samples --omit=PDF --no-soo && make all -s -j4 SANITIZEFLAGS=-fsanitize=address && sudo make install +### - run: >- +### sudo -s +### EXCLUDE_TESTS="Data/MySQL Data/ODBC Data/PostgreSQL MongoDB" +### ./ci/runtests.sh +### +### linux-gcc-make-ubsan: +### runs-on: ubuntu-22.04 +### steps: +### - uses: actions/checkout@v3 +### - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server +### - run: ./configure --everything --no-samples --omit=PDF && make all -s -j4 SANITIZEFLAGS=-fsanitize=undefined && sudo make install +### - run: >- +### sudo -s +### EXCLUDE_TESTS="Data/MySQL Data/ODBC Data/PostgreSQL MongoDB" +### ./ci/runtests.sh - linux-gcc-make-ubsan: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server - - run: ./configure --everything --no-samples --omit=PDF && make all -s -j4 SANITIZEFLAGS=-fsanitize=undefined && sudo make install - - run: >- - sudo -s - EXCLUDE_TESTS="Data/MySQL Data/ODBC Data/PostgreSQL MongoDB" - ./ci/runtests.sh +### linux-gcc-make-tsan: +### runs-on: ubuntu-22.04 +### steps: +### - uses: actions/checkout@v3 +### - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server +### - run: ./configure --everything --no-samples --omit=CppParser,Encodings,Data/MySQL,Data/ODBC,Data/PostgreSQL,MongoDB,PageCompiler,PDF,PocoDoc,ProGen,Redis,SevenZip && make all -s -j4 SANITIZEFLAGS=-fsanitize=thread && sudo make install +### - run: >- +### sudo -s +### ./ci/runtests.sh TSAN +### +### linux-gcc-cmake: +### runs-on: ubuntu-22.04 +### steps: +### - uses: actions/checkout@v3 +### - run: sudo apt -y update && sudo apt -y install cmake ninja-build libssl-dev unixodbc-dev libmysqlclient-dev redis-server +### - run: cmake -H. -Bcmake-build -GNinja -DENABLE_PDF=OFF -DENABLE_TESTS=ON && cmake --build cmake-build --target all +### - run: >- +### cd cmake-build && +### sudo -s +### PWD=`pwd` +### ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)" - linux-gcc-make-tsan: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server - - run: ./configure --everything --no-samples --omit=CppParser,Encodings,Data/MySQL,Data/ODBC,Data/PostgreSQL,MongoDB,PageCompiler,PDF,PocoDoc,ProGen,Redis,SevenZip && make all -s -j4 SANITIZEFLAGS=-fsanitize=thread && sudo make install - - run: >- - sudo -s - ./ci/runtests.sh TSAN +### linux-gcc-make-cross-armhf: +### runs-on: ubuntu-22.04 +### steps: +### - uses: actions/checkout@v3 +### - run: >- +### sudo apt-get -y update && +### sudo apt-get -y install crossbuild-essential-armhf +### - run: >- +### ./configure --config=ARM-Linux --everything --omit=PDF,Crypto,NetSSL_OpenSSL,JWT,Data/MySQL,Data/ODBC,Data/PostgreSQL,PageCompiler,PageCompiler/File2Page && +### make all -s -j4 ARCHFLAGS="-mcpu=cortex-a8 -mfloat-abi=hard -mfpu=neon" TOOL=arm-linux-gnueabihf - linux-gcc-cmake: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - - run: sudo apt -y update && sudo apt -y install cmake ninja-build libssl-dev unixodbc-dev libmysqlclient-dev redis-server - - run: cmake -H. -Bcmake-build -GNinja -DENABLE_PDF=OFF -DENABLE_TESTS=ON && cmake --build cmake-build --target all - - run: >- - cd cmake-build && - sudo -s - PWD=`pwd` - ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)" +### macos-clang-make: +### runs-on: macos-12 +### steps: +### - uses: actions/checkout@v3 +### - run: brew install openssl@1.1 mysql-client unixodbc libpq +### - run: >- +### ./configure --everything --no-prefix --omit=PDF +### --odbc-include=/usr/local/opt/unixodbc/include --odbc-lib=/usr/local/opt/unixodbc/lib +### --mysql-include=/usr/local/opt/mysql-client/include --mysql-lib=/usr/local/opt/mysql-client/lib && +### make all -s -j4 +### - run: >- +### sudo -s +### CPPUNIT_IGNORE=" +### CppUnit::TestCaller.testTrySleep, +### CppUnit::TestCaller.testTimestamp, +### CppUnit::TestCaller.testExpireN, +### CppUnit::TestCaller.testAccessExpireN, +### CppUnit::TestCaller.testExpireN, +### CppUnit::TestCaller.testAccessExpireN, +### CppUnit::TestCaller.testOldBSD" +### EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" +### ./ci/runtests.sh - linux-gcc-make-cross-armhf: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - - run: >- - sudo apt-get -y update && - sudo apt-get -y install crossbuild-essential-armhf - - run: >- - ./configure --config=ARM-Linux --everything --omit=PDF,Crypto,NetSSL_OpenSSL,JWT,Data/MySQL,Data/ODBC,Data/PostgreSQL,PageCompiler,PageCompiler/File2Page && - make all -s -j4 ARCHFLAGS="-mcpu=cortex-a8 -mfloat-abi=hard -mfpu=neon" TOOL=arm-linux-gnueabihf +### macos-clang-cmake: +### runs-on: macos-12 +### steps: +### - uses: actions/checkout@v3 +### - run: brew install openssl@1.1 mysql-client unixodbc libpq +### - run: cmake -H. -Bcmake-build -DENABLE_PDF=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@1.1 -DMYSQL_ROOT_DIR=/usr/local/opt/mysql-client && cmake --build cmake-build --target all +### - run: >- +### cd cmake-build && +### sudo -s +### CPPUNIT_IGNORE=" +### CppUnit::TestCaller.testTrySleep, +### CppUnit::TestCaller.testTimestamp, +### CppUnit::TestCaller.testExpireN, +### CppUnit::TestCaller.testAccessExpireN, +### CppUnit::TestCaller.testExpireN, +### CppUnit::TestCaller.testAccessExpireN, +### CppUnit::TestCaller.testPollClosedServer" +### PWD=`pwd` +### ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" - macos-clang-make: - runs-on: macos-12 - steps: - - uses: actions/checkout@v3 - - run: brew install openssl@1.1 mysql-client unixodbc libpq - - run: >- - ./configure --everything --no-prefix --omit=PDF - --odbc-include=/usr/local/opt/unixodbc/include --odbc-lib=/usr/local/opt/unixodbc/lib - --mysql-include=/usr/local/opt/mysql-client/include --mysql-lib=/usr/local/opt/mysql-client/lib && - make all -s -j4 - - run: >- - sudo -s - CPPUNIT_IGNORE=" - CppUnit::TestCaller.testTrySleep, - CppUnit::TestCaller.testTimestamp, - CppUnit::TestCaller.testExpireN, - CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testExpireN, - CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testOldBSD" - EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" - ./ci/runtests.sh +### macos-clang-cmake-openssl3: +### runs-on: macos-12 +### steps: +### - uses: actions/checkout@v3 +### - run: brew install openssl@3 mysql-client unixodbc libpq +### - run: cmake -H. -Bcmake-build -DENABLE_PDF=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@3 -DMYSQL_ROOT_DIR=/usr/local/opt/mysql-client && cmake --build cmake-build --target all +### - run: >- +### cd cmake-build && +### sudo -s +### CPPUNIT_IGNORE=" +### CppUnit::TestCaller.testTrySleep, +### CppUnit::TestCaller.testTimestamp, +### CppUnit::TestCaller.testExpireN, +### CppUnit::TestCaller.testAccessExpireN, +### CppUnit::TestCaller.testExpireN, +### CppUnit::TestCaller.testAccessExpireN, +### CppUnit::TestCaller.testPollClosedServer" +### PWD=`pwd` +### ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" - macos-clang-cmake: - runs-on: macos-12 - steps: - - uses: actions/checkout@v3 - - run: brew install openssl@1.1 mysql-client unixodbc libpq - - run: cmake -H. -Bcmake-build -DENABLE_PDF=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@1.1 -DMYSQL_ROOT_DIR=/usr/local/opt/mysql-client && cmake --build cmake-build --target all - - run: >- - cd cmake-build && - sudo -s - CPPUNIT_IGNORE=" - CppUnit::TestCaller.testTrySleep, - CppUnit::TestCaller.testTimestamp, - CppUnit::TestCaller.testExpireN, - CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testExpireN, - CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testPollClosedServer" - PWD=`pwd` - ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" +### windows-2019-msvc-cmake: +### runs-on: windows-2019 +### env: +### CPPUNIT_IGNORE: >- +### class CppUnit::TestCaller.testFind, +### class CppUnit::TestCaller.testSendToReceiveFrom, +### class CppUnit::TestCaller.testPing, +### class CppUnit::TestCaller.testBigPing, +### class CppUnit::TestCaller.testMTU, +### class CppUnit::TestCaller.testProxy, +### class CppUnit::TestCaller.testProxy, +### class CppUnit::TestCaller.testPollClosedServer +### steps: +### - uses: actions/checkout@v3 +### - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON +### - run: cmake --build cmake-build --config Release +### - run: >- +### cd cmake-build; +### ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Release - macos-clang-cmake-openssl3: - runs-on: macos-12 - steps: - - uses: actions/checkout@v3 - - run: brew install openssl@3 mysql-client unixodbc libpq - - run: cmake -H. -Bcmake-build -DENABLE_PDF=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@3 -DMYSQL_ROOT_DIR=/usr/local/opt/mysql-client && cmake --build cmake-build --target all - - run: >- - cd cmake-build && - sudo -s - CPPUNIT_IGNORE=" - CppUnit::TestCaller.testTrySleep, - CppUnit::TestCaller.testTimestamp, - CppUnit::TestCaller.testExpireN, - CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testExpireN, - CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testPollClosedServer" - PWD=`pwd` - ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" - - windows-2019-msvc-cmake: - runs-on: windows-2019 - env: - CPPUNIT_IGNORE: >- - class CppUnit::TestCaller.testFind, - class CppUnit::TestCaller.testSendToReceiveFrom, - class CppUnit::TestCaller.testPing, - class CppUnit::TestCaller.testBigPing, - class CppUnit::TestCaller.testMTU, - class CppUnit::TestCaller.testProxy, - class CppUnit::TestCaller.testProxy, - class CppUnit::TestCaller.testPollClosedServer - steps: - - uses: actions/checkout@v3 - - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON - - run: cmake --build cmake-build --config Release - - run: >- - cd cmake-build; - ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Release - windows-2019-msvc-buildwin-x64: runs-on: windows-2019 env: @@ -210,7 +210,7 @@ jobs: steps: - uses: actions/checkout@v3 - run: .\buildwin.ps1 -poco_base . -vs 160 -action build -linkmode all -config release -platform x64 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" - + # windows-2019-msvc-buildwin-win32: # runs-on: windows-2019 # env: @@ -249,24 +249,24 @@ jobs: # - uses: actions/checkout@v3 # - run: .\buildwin.ps1 -poco_base . -vs 170 -action build -linkmode all -config release -platform Win32 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" - windows-2022-msvc-cmake: - runs-on: windows-2022 - env: - CPPUNIT_IGNORE: >- - class CppUnit::TestCaller.testFind, - class CppUnit::TestCaller.testSendToReceiveFrom, - class CppUnit::TestCaller.testPing, - class CppUnit::TestCaller.testBigPing, - class CppUnit::TestCaller.testMTU, - class CppUnit::TestCaller.testProxy, - class CppUnit::TestCaller.testProxy - steps: - - uses: actions/checkout@v3 - - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON - - run: cmake --build cmake-build --config Release - - run: >- - cd cmake-build; - ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Release +### windows-2022-msvc-cmake: +### runs-on: windows-2022 +### env: +### CPPUNIT_IGNORE: >- +### class CppUnit::TestCaller.testFind, +### class CppUnit::TestCaller.testSendToReceiveFrom, +### class CppUnit::TestCaller.testPing, +### class CppUnit::TestCaller.testBigPing, +### class CppUnit::TestCaller.testMTU, +### class CppUnit::TestCaller.testProxy, +### class CppUnit::TestCaller.testProxy +### steps: +### - uses: actions/checkout@v3 +### - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON +### - run: cmake --build cmake-build --config Release +### - run: >- +### cd cmake-build; +### ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Release # missing asan dll path # windows-2022-msvc-cmake-asan: diff --git a/ActiveRecord/ActiveRecord_vs160.vcxproj b/ActiveRecord/ActiveRecord_vs160.vcxproj index d6663ac5c..1ee839cb0 100644 --- a/ActiveRecord/ActiveRecord_vs160.vcxproj +++ b/ActiveRecord/ActiveRecord_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 ActiveRecord {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E} ActiveRecord @@ -157,7 +158,7 @@ - <_ProjectFileVersion>14.0.25420.1 + <_ProjectFileVersion>17.0.34202.158 PocoActiveRecordd PocoActiveRecordmdd PocoActiveRecordmtd @@ -226,7 +227,7 @@ Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -259,7 +260,7 @@ true Speed true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -288,7 +289,7 @@ Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -315,7 +316,7 @@ true Speed true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -336,7 +337,7 @@ Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -363,7 +364,7 @@ true Speed true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -385,7 +386,7 @@ Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -418,7 +419,7 @@ true Speed true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -447,7 +448,7 @@ Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -474,7 +475,7 @@ true Speed true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -495,7 +496,7 @@ Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -522,7 +523,7 @@ true Speed true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/ActiveRecord/ActiveRecord_vs160.vcxproj.filters b/ActiveRecord/ActiveRecord_vs160.vcxproj.filters index f97048f13..ec9568e29 100644 --- a/ActiveRecord/ActiveRecord_vs160.vcxproj.filters +++ b/ActiveRecord/ActiveRecord_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {0c7ca2fc-405c-41cb-8a85-0c0be704bb61} + {28dd6b11-317a-48e6-b680-ad6a817cbec3} - {dc022939-cad7-4896-a860-11904f78b5e8} + {331ea644-41fa-430e-8e0d-672a7371118c} - {ff728db9-1520-40b8-89fd-93aa9669be62} + {2fcea3ab-7133-4bb4-be47-8b6a6c1c931f} diff --git a/ActiveRecord/testsuite/TestSuite_vs160.vcxproj b/ActiveRecord/testsuite/TestSuite_vs160.vcxproj index f552c3180..08cacbce7 100644 --- a/ActiveRecord/testsuite/TestSuite_vs160.vcxproj +++ b/ActiveRecord/testsuite/TestSuite_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TestSuite {16B8C4E7-6F29-4910-9350-848730F9EF77} TestSuite @@ -157,7 +158,7 @@ - <_ProjectFileVersion>14.0.25420.1 + <_ProjectFileVersion>17.0.34202.158 TestSuited TestSuited TestSuited @@ -234,7 +235,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -267,7 +268,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -295,7 +296,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -328,7 +329,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -356,7 +357,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -389,7 +390,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -417,7 +418,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -450,7 +451,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -478,7 +479,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -511,7 +512,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -539,7 +540,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -572,7 +573,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/ActiveRecord/testsuite/TestSuite_vs160.vcxproj.filters b/ActiveRecord/testsuite/TestSuite_vs160.vcxproj.filters index ae99c9914..823a823a2 100644 --- a/ActiveRecord/testsuite/TestSuite_vs160.vcxproj.filters +++ b/ActiveRecord/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,16 +2,16 @@ - {50b5d6b1-711a-40b7-85fb-33c942328403} + {d195900b-a711-4532-aa25-5e5f0696f7ce} - {e893dccc-0b77-4350-9d63-692dd9dde5fa} + {75bdd16b-c424-440c-a778-e6c040418f1f} - {333120d3-2230-44ba-a64d-d480996fa66d} + {7f1b72cc-467e-46fe-b821-c6da44a434a1} - {39342b6b-82bb-4269-a9c6-42525f863ec3} + {794b4ed4-42e7-410c-91b2-24e920b43b69} diff --git a/Data/Data_vs160.sln b/Data/Data_vs160.sln index ebf71b52f..2f0f1e28c 100644 --- a/Data/Data_vs160.sln +++ b/Data/Data_vs160.sln @@ -2,7 +2,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Data", "Data_vs160.vcxproj", "{240E83C3-368D-11DB-9FBC-00123FC423B5}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs160.vcxproj", "{1813A463-E349-4FEA-8A8E-4A41E41C0DC7}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DataTest", "testsuite\DataTest\DataTest_vs160.vcxproj", "{240E83C3-368D-11DB-9FBC-00123FC423B5}" ProjectSection(ProjectDependencies) = postProject {240E83C3-368D-11DB-9FBC-00123FC423B5} = {240E83C3-368D-11DB-9FBC-00123FC423B5} EndProjectSection @@ -59,42 +59,42 @@ Global {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Build.0 = release_static_md|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Build.0 = release_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.Build.0 = debug_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.ActiveCfg = release_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Build.0 = release_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Deploy.0 = release_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.Build.0 = release_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Build.0 = release_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Build.0 = debug_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.ActiveCfg = release_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Build.0 = release_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Deploy.0 = release_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Build.0 = release_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Data/Data_vs160.vcxproj b/Data/Data_vs160.vcxproj index 829557603..07cca1e02 100644 --- a/Data/Data_vs160.vcxproj +++ b/Data/Data_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 Data {240E83C3-368D-11DB-9FBC-00123FC423B5} Data @@ -157,7 +158,7 @@ - <_ProjectFileVersion>16.0.32002.118 + <_ProjectFileVersion>17.0.34202.158 PocoDatad PocoDatamdd PocoDatamtd @@ -226,8 +227,8 @@ Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;%(PreprocessorDefinitions) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -239,6 +240,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true @@ -259,8 +261,8 @@ true Speed true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;%(PreprocessorDefinitions) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL false @@ -271,6 +273,7 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true @@ -288,7 +291,7 @@ Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -302,6 +305,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true @@ -315,7 +319,7 @@ true Speed true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -327,6 +331,7 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true @@ -336,7 +341,7 @@ Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -350,6 +355,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true @@ -363,7 +369,7 @@ true Speed true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -376,6 +382,7 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true @@ -385,8 +392,8 @@ Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;%(PreprocessorDefinitions) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -398,7 +405,7 @@ Level3 ProgramDatabase Default - /bigobj %(AdditionalOptions) + /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) true @@ -419,8 +426,8 @@ true Speed true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;%(PreprocessorDefinitions) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL false @@ -431,7 +438,7 @@ Level3 Default - /bigobj %(AdditionalOptions) + /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) true @@ -449,7 +456,7 @@ Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -463,7 +470,7 @@ Level3 ProgramDatabase Default - /bigobj %(AdditionalOptions) + /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) true @@ -477,7 +484,7 @@ true Speed true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -489,7 +496,7 @@ Level3 Default - /bigobj %(AdditionalOptions) + /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) true @@ -499,7 +506,7 @@ Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -513,7 +520,7 @@ Level3 ProgramDatabase Default - /bigobj %(AdditionalOptions) + /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) true @@ -527,7 +534,7 @@ true Speed true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -539,7 +546,7 @@ Level3 Default - /bigobj %(AdditionalOptions) + /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) true @@ -591,6 +598,7 @@ + @@ -598,6 +606,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + @@ -690,6 +723,36 @@ true + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + true diff --git a/Data/Data_vs160.vcxproj.filters b/Data/Data_vs160.vcxproj.filters index eed50b05b..8b8ddcc50 100644 --- a/Data/Data_vs160.vcxproj.filters +++ b/Data/Data_vs160.vcxproj.filters @@ -2,31 +2,67 @@ - {ca802690-e052-4003-ae74-b2cd7e2c95f9} + {c03ff8c4-8b7e-4fdc-a268-709322472159} - {c9a3889d-4e2d-43ac-887e-3b22b1cf4ba9} + {9a23b528-2531-44aa-8d43-726f323ffc99} - {b6b0997e-c4d7-4526-88c6-614fba4407cf} + {00830c67-613c-4796-9fb0-040a48f12882} - {ca986e9c-3287-419e-8f6a-7472a96c71b9} + {98fddf5f-d853-4bff-8d97-76472d7ad823} - {33a16a37-8706-47fb-ac35-f3e913ff6a03} + {b7ef9ec6-fd35-4cc1-92e0-c8c9d7c882a8} - {934c7f71-50fb-452a-94a6-c123cdaa043e} + {5349df12-1923-44ae-8183-8fb838eeee13} + + + {2ef77b83-0fc5-456b-b951-9c92c7bee3c3} + + + {b63e58be-4bbc-47b9-a8bf-e0448fef4f59} + + + {087be81f-8245-4139-823d-763aac0291db} + + + {50155fee-d8ab-4019-bf65-ee51ae880fed} + + + {488b9194-dbab-4ef5-b9ce-3524673580d6} + + + {7d187a76-cd8f-43a1-88b3-9c4df2102301} + + + {d6e4e4fe-0a7e-4340-ae08-6535f8b0473d} + + + {70e4617b-3c43-4c1b-aa8b-396883bf8d83} + + + {a05db2e4-d3a1-4b7c-b4ff-0bd71821bdab} + + + {2b5f602b-14d7-4bf9-95d9-6502044dea10} + + + {490613de-8e49-47aa-91b9-afefbca8cbf9} + + + {8c2b6618-3a46-4d65-9f5d-0cc213a8cc2e} - {e6946b3f-5400-4275-a315-25a8db846def} + {f8120323-9741-4afd-93f2-d94fec707930} - {6fd48faa-50da-4192-bf66-27068d6b2156} + {5c86ff4b-d4ca-43a3-afad-f5ba79bd4756} - {71eaafa2-e2fe-4cb8-80e2-82ea694abeec} + {5007e3df-6ea5-4a11-a030-8f2b1f2c6314} @@ -144,6 +180,12 @@ DataCore\Header Files + + DataCore\Header Files + + + DataCore\Header Files + DataCore\Header Files @@ -177,10 +219,82 @@ SessionPooling\Header Files - - Logging\Header Files + + SQLParser\Header Files - + + SQLParser\Header Files + + + SQLParser\Header Files + + + SQLParser\parser\Header Files + + + SQLParser\parser\Header Files + + + SQLParser\parser\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\sql\Header Files + + + SQLParser\util\Header Files + + Logging\Header Files @@ -260,6 +374,9 @@ DataCore\Source Files + + DataCore\Source Files + DataCore\Source Files @@ -290,10 +407,37 @@ SessionPooling\Source Files - - Logging\Source Files + + SQLParser\Source Files - + + SQLParser\Source Files + + + SQLParser\parser\Source Files + + + SQLParser\parser\Source Files + + + SQLParser\sql\Source Files + + + SQLParser\sql\Source Files + + + SQLParser\sql\Source Files + + + SQLParser\sql\Source Files + + + SQLParser\sql\Source Files + + + SQLParser\util\Source Files + + Logging\Source Files diff --git a/Data/ODBC/ODBC_vs160.vcxproj b/Data/ODBC/ODBC_vs160.vcxproj index 8d4d6ea61..9a398a943 100644 --- a/Data/ODBC/ODBC_vs160.vcxproj +++ b/Data/ODBC/ODBC_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 ODBC {1B29820D-375F-11DB-837B-00123FC423B5} ODBC @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34202.158 PocoDataODBCd PocoDataODBCmdd PocoDataODBCmtd @@ -226,7 +227,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -260,7 +261,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -290,7 +291,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -317,7 +318,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreaded @@ -338,7 +339,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -365,7 +366,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -388,7 +389,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -422,7 +423,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -452,7 +453,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -479,7 +480,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreaded @@ -500,7 +501,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -527,7 +528,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/ODBC/ODBC_vs160.vcxproj.filters b/Data/ODBC/ODBC_vs160.vcxproj.filters index 7e60d14d9..f614bd33f 100644 --- a/Data/ODBC/ODBC_vs160.vcxproj.filters +++ b/Data/ODBC/ODBC_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {01707a8d-a3d6-4b70-8f70-7287a14b1746} + {e2a5414c-2ea8-4332-8e66-e425df38839d} - {411e4e11-ca0d-496b-a136-d225efd991b8} + {ea8d6d0f-1dcc-4992-bb60-7a201b6e70de} - {ecf8fac7-8acd-482d-b81c-88d9e282f0e5} + {fc6df9a9-e096-4f48-93ea-83e59cadce4c} diff --git a/Data/ODBC/testsuite/TestSuite_vs160.vcxproj b/Data/ODBC/testsuite/TestSuite_vs160.vcxproj index df4337d9f..99fce8dde 100644 --- a/Data/ODBC/testsuite/TestSuite_vs160.vcxproj +++ b/Data/ODBC/testsuite/TestSuite_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TestSuite {00627063-395B-4413-9099-23BDB56562FA} TestSuite @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34202.158 TestSuited TestSuited TestSuited @@ -234,7 +235,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -267,7 +268,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -295,7 +296,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -328,7 +329,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -356,7 +357,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -389,7 +390,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -417,7 +418,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -450,7 +451,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -478,7 +479,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -511,7 +512,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -539,7 +540,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -572,7 +573,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/ODBC/testsuite/TestSuite_vs160.vcxproj.filters b/Data/ODBC/testsuite/TestSuite_vs160.vcxproj.filters index 5d00f6a6b..34fd3c6f2 100644 --- a/Data/ODBC/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Data/ODBC/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,28 +2,28 @@ - {e2bd62e2-949b-437b-971b-48484d6a0d72} + {22a759ed-26a8-4379-9e4f-ca8209204c81} - {44c93e62-417f-40e6-b4ed-7af5f6bbeea3} + {18baf03f-b45b-471c-9d3f-ebc8b978bea1} - {f77ee3ee-39ea-4276-9f42-e6719c76c567} + {4c2012a0-d52d-4f89-b618-078cc929ff6a} - {548bf7c2-04c3-490d-ae1f-61a4fe93b7d6} + {971b1b28-f835-4aab-89de-0de1474e1d76} - {66c8a268-e4e4-4edb-83a8-83cb1e5c028f} + {a46fd561-4196-4c2e-aba8-704e5f9c15be} - {17121a95-2f6b-430c-af19-1dd77b2f9558} + {35623448-5963-40e5-a05c-c69a6cda43e7} - {180f1b2b-e1aa-481c-a794-aa41d763aa0e} + {a224e65a-c791-404c-9767-756328215455} - {00cb3142-6543-4572-b3c6-5d6081e36d3d} + {fc7d8085-883f-422c-bd7e-8399b1dc1f52} diff --git a/Data/samples/Binding/Binding_vs160.vcxproj b/Data/samples/Binding/Binding_vs160.vcxproj index 3f8694cd0..feb0a75d4 100644 --- a/Data/samples/Binding/Binding_vs160.vcxproj +++ b/Data/samples/Binding/Binding_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 Binding {0F0DF069-83D1-378D-A949-8DF9A883B627} Binding @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34202.158 Bindingd Bindingd Bindingd @@ -234,7 +235,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -267,7 +268,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -295,7 +296,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -328,7 +329,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -356,7 +357,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -389,7 +390,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -417,7 +418,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -450,7 +451,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -478,7 +479,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -511,7 +512,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -539,7 +540,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -572,7 +573,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/samples/Binding/Binding_vs160.vcxproj.filters b/Data/samples/Binding/Binding_vs160.vcxproj.filters index 109af540e..050744c40 100644 --- a/Data/samples/Binding/Binding_vs160.vcxproj.filters +++ b/Data/samples/Binding/Binding_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {8ee507ee-3aa1-4d49-9ef3-44d85cf0e693} + {6be20fef-8856-47c8-a8b1-17fd30ab14d4} - {fc183b74-19a5-4af3-bfb9-081d7b793dc8} + {596a7322-f960-4b6f-8f15-4cf616e140bc} diff --git a/Data/samples/RecordSet/RecordSet_vs160.vcxproj b/Data/samples/RecordSet/RecordSet_vs160.vcxproj index 9716e1ac8..05a06154c 100644 --- a/Data/samples/RecordSet/RecordSet_vs160.vcxproj +++ b/Data/samples/RecordSet/RecordSet_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 RecordSet {FEE20DCE-B9E3-30AB-A40C-B6A324997328} RecordSet @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34202.158 RecordSetd RecordSetd RecordSetd @@ -234,7 +235,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -267,7 +268,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -295,7 +296,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -328,7 +329,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -356,7 +357,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -389,7 +390,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -417,7 +418,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -450,7 +451,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -478,7 +479,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -511,7 +512,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -539,7 +540,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -572,7 +573,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/samples/RecordSet/RecordSet_vs160.vcxproj.filters b/Data/samples/RecordSet/RecordSet_vs160.vcxproj.filters index 62051007d..57d8e4f5e 100644 --- a/Data/samples/RecordSet/RecordSet_vs160.vcxproj.filters +++ b/Data/samples/RecordSet/RecordSet_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {8520b6ad-a899-436e-8a95-071b48aff857} + {a2633deb-2af8-46ce-a0f9-c2d880e077fd} - {56295ad1-b4ed-45b1-9a2d-a45649e8fc84} + {3262c8ac-33d1-462c-aab8-d112306ce791} diff --git a/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj b/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj index 3ec6a370a..687b4b249 100644 --- a/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj +++ b/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 RowFormatter {133C62C7-3301-3F43-9ABF-14DF094A042F} RowFormatter @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34202.158 RowFormatterd RowFormatterd RowFormatterd @@ -234,7 +235,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -267,7 +268,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -295,7 +296,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -328,7 +329,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -356,7 +357,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -389,7 +390,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -417,7 +418,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -450,7 +451,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -478,7 +479,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -511,7 +512,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -539,7 +540,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -572,7 +573,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj.filters b/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj.filters index 7c230599a..5e2cd2a58 100644 --- a/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj.filters +++ b/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {fc0f9cfa-2465-463b-a683-b7406ecd5e92} + {b9d6aa62-3694-4755-b00c-1b809e0a8cf6} - {9de77a46-8474-45aa-9724-85957b200684} + {386743cd-a052-4ed7-b72c-ae801934da44} diff --git a/Data/samples/Tuple/Tuple_vs160.vcxproj b/Data/samples/Tuple/Tuple_vs160.vcxproj index bd57e58aa..ddf3aa8c3 100644 --- a/Data/samples/Tuple/Tuple_vs160.vcxproj +++ b/Data/samples/Tuple/Tuple_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 Tuple {F143DA5A-221A-3737-BCBA-F5BFD977038F} Tuple @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34202.158 Tupled Tupled Tupled @@ -234,7 +235,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -267,7 +268,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -295,7 +296,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -328,7 +329,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -356,7 +357,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -389,7 +390,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -417,7 +418,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -450,7 +451,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -478,7 +479,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -511,7 +512,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -539,7 +540,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -572,7 +573,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/samples/Tuple/Tuple_vs160.vcxproj.filters b/Data/samples/Tuple/Tuple_vs160.vcxproj.filters index 0bb960acf..2e24e1705 100644 --- a/Data/samples/Tuple/Tuple_vs160.vcxproj.filters +++ b/Data/samples/Tuple/Tuple_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {5bfd42b3-29cd-4440-a0c3-d0fc68f77f81} + {b5101158-cfe5-4fba-a045-69b5f17da5c3} - {dc7e3860-dfcf-410b-aad1-2ea1832f0268} + {2c118573-3105-485e-8d30-be4f02ee79e4} diff --git a/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj b/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj index 564135db7..13e837f9d 100644 --- a/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj +++ b/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TypeHandler {65A12348-CA20-324E-9F5E-7F82753C2C65} TypeHandler @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34202.158 TypeHandlerd TypeHandlerd TypeHandlerd @@ -234,7 +235,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -267,7 +268,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -295,7 +296,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -328,7 +329,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -356,7 +357,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -389,7 +390,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -417,7 +418,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -450,7 +451,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -478,7 +479,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -511,7 +512,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -539,7 +540,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -572,7 +573,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj.filters b/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj.filters index 2e224ca21..ad451c847 100644 --- a/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj.filters +++ b/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {48b989ac-6dce-4853-bbec-b89f0469081a} + {02dbb876-36e1-4bcf-896a-726a0954ae2d} - {0f9f5c5d-3119-447f-b446-d788c4952f18} + {7898bceb-09b3-41ee-91b1-2745ac74f96e} diff --git a/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj b/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj index 8aa2e312b..ae6764c50 100644 --- a/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj +++ b/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 WebNotifier {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754} WebNotifier @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34202.158 WebNotifierd WebNotifierd WebNotifierd @@ -234,7 +235,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -267,7 +268,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -295,7 +296,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -328,7 +329,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -356,7 +357,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -389,7 +390,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -417,7 +418,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -450,7 +451,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -478,7 +479,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -511,7 +512,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -539,7 +540,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -572,7 +573,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj.filters b/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj.filters index 3aa01efb0..d2688d4ac 100644 --- a/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj.filters +++ b/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {5216e52f-9c81-4b5e-8073-e4e320c5664d} + {91bd5b6a-0e13-4e60-981a-ad0e6c69eb71} - {6d4b6f71-3e84-495c-820a-b08181d12bcb} + {116b5d1b-034d-497b-b3ea-0ddedb47343d} diff --git a/Data/testsuite/DataTest/DataTest_vs160.vcxproj b/Data/testsuite/DataTest/DataTest_vs160.vcxproj index acfb9d6bc..87a846dfd 100644 --- a/Data/testsuite/DataTest/DataTest_vs160.vcxproj +++ b/Data/testsuite/DataTest/DataTest_vs160.vcxproj @@ -173,61 +173,61 @@ PocoDataTestmt - ..\bin\ + ..\..\..\bin\ obj\DataTest\$(Configuration)\ true - ..\bin\ + ..\..\..\bin\ obj\DataTest\$(Configuration)\ false - ..\lib\ + ..\..\..\lib\ obj\DataTest\$(Configuration)\ - ..\lib\ + ..\..\..\lib\ obj\DataTest\$(Configuration)\ - ..\lib\ + ..\..\..\lib\ obj\DataTest\$(Configuration)\ - ..\lib\ + ..\..\..\lib\ obj\DataTest\$(Configuration)\ - ..\bin64\ + ..\..\..\bin64\ obj64\DataTest\$(Configuration)\ true - ..\bin64\ + ..\..\..\bin64\ obj64\DataTest\$(Configuration)\ false - ..\lib64\ + ..\..\..\lib64\ obj64\DataTest\$(Configuration)\ - ..\lib64\ + ..\..\..\lib64\ obj64\DataTest\$(Configuration)\ - ..\lib64\ + ..\..\..\lib64\ obj64\DataTest\$(Configuration)\ - ..\lib64\ + ..\..\..\lib64\ obj64\DataTest\$(Configuration)\ Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -240,17 +240,17 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true - ..\bin\PocoDataTestd.dll + ..\..\..\bin\PocoDataTestd.dll true true - ..\bin\PocoDataTestd.pdb - ..\lib;%(AdditionalLibraryDirectories) + ..\..\..\bin\PocoDataTestd.pdb + ..\..\..\lib;%(AdditionalLibraryDirectories) Console - ..\lib\PocoDataTestd.lib + ..\..\..\lib\PocoDataTestd.lib MachineX86 @@ -261,7 +261,7 @@ true Speed true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -273,25 +273,25 @@ Level3 Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true - ..\bin\PocoDataTest.dll + ..\..\..\bin\PocoDataTest.dll true false - ..\lib;%(AdditionalLibraryDirectories) + ..\..\..\lib;%(AdditionalLibraryDirectories) Console true true - ..\lib\PocoDataTest.lib + ..\..\..\lib\PocoDataTest.lib MachineX86 Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -301,15 +301,15 @@ true true - ..\lib\PocoDataTestmtd.pdb + ..\..\..\lib\PocoDataTestmtd.pdb Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true - ..\lib\PocoDataTestmtd.lib + ..\..\..\lib\PocoDataTestmtd.lib @@ -319,7 +319,7 @@ true Speed true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -331,17 +331,17 @@ Level3 Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true - ..\lib\PocoDataTestmt.lib + ..\..\..\lib\PocoDataTestmt.lib Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -351,15 +351,15 @@ true true - ..\lib\PocoDataTestmdd.pdb + ..\..\..\lib\PocoDataTestmdd.pdb Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true - ..\lib\PocoDataTestmdd.lib + ..\..\..\lib\PocoDataTestmdd.lib @@ -369,7 +369,7 @@ true Speed true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -378,21 +378,21 @@ true true - ..\lib\PocoDataTestmd.pdb + ..\..\..\lib\PocoDataTestmd.pdb Level3 Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true - ..\lib\PocoDataTestmd.lib + ..\..\..\lib\PocoDataTestmd.lib Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -405,17 +405,17 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) true - ..\bin64\PocoDataTest64d.dll + ..\..\..\bin64\PocoDataTest64d.dll true true - ..\bin64\PocoDataTest64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) + ..\..\..\bin64\PocoDataTest64d.pdb + ..\..\..\lib64;%(AdditionalLibraryDirectories) Console - ..\lib64\PocoDataTestd.lib + ..\..\..\lib64\PocoDataTestd.lib MachineX64 @@ -426,7 +426,7 @@ true Speed true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -438,25 +438,25 @@ Level3 Default - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) true - ..\bin64\PocoDataTest64.dll + ..\..\..\bin64\PocoDataTest64.dll true false - ..\lib64;%(AdditionalLibraryDirectories) + ..\..\..\lib64;%(AdditionalLibraryDirectories) Console true true - ..\lib64\PocoDataTest.lib + ..\..\..\lib64\PocoDataTest.lib MachineX64 Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -466,15 +466,15 @@ true true - ..\lib64\PocoDataTestmtd.pdb + ..\..\..\lib64\PocoDataTestmtd.pdb Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) true - ..\lib64\PocoDataTestmtd.lib + ..\..\..\lib64\PocoDataTestmtd.lib @@ -484,7 +484,7 @@ true Speed true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -496,17 +496,17 @@ Level3 Default - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) true - ..\lib64\PocoDataTestmt.lib + ..\..\..\lib64\PocoDataTestmt.lib Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -516,15 +516,15 @@ true true - ..\lib64\PocoDataTestmdd.pdb + ..\..\..\lib64\PocoDataTestmdd.pdb Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) true - ..\lib64\PocoDataTestmdd.lib + ..\..\..\lib64\PocoDataTestmdd.lib @@ -534,7 +534,7 @@ true Speed true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -546,11 +546,11 @@ Level3 Default - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) true - ..\lib64\PocoDataTestmd.lib + ..\..\..\lib64\PocoDataTestmd.lib diff --git a/Data/testsuite/DataTest/DataTest_vs160.vcxproj.filters b/Data/testsuite/DataTest/DataTest_vs160.vcxproj.filters index 526420e8d..960c53a77 100644 --- a/Data/testsuite/DataTest/DataTest_vs160.vcxproj.filters +++ b/Data/testsuite/DataTest/DataTest_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {8a77203b-f433-458d-8414-77fc321bd4b1} + {9ed3013f-fb42-4ea8-b9a2-57ac9aea5410} - {4a07844d-3afc-46d5-977f-86d98fc91159} + {ee8a15fa-6a19-46f9-83cf-7ca7689668e1} diff --git a/Data/testsuite/TestSuite_vs160.vcxproj b/Data/testsuite/TestSuite_vs160.vcxproj index 753289d4d..1deb4bcc0 100644 --- a/Data/testsuite/TestSuite_vs160.vcxproj +++ b/Data/testsuite/TestSuite_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TestSuite {1813A463-E349-4FEA-8A8E-4A41E41C0DC7} TestSuite @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34202.158 TestSuited TestSuited TestSuited @@ -234,7 +235,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -247,6 +248,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -267,7 +269,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -279,6 +281,7 @@ Level3 Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -295,7 +298,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -308,6 +311,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -328,7 +332,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -340,6 +344,7 @@ Level3 Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -356,7 +361,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -369,6 +374,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -389,7 +395,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -401,6 +407,7 @@ Level3 Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -417,7 +424,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -430,6 +437,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -450,7 +458,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -462,6 +470,7 @@ Level3 Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -478,7 +487,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -491,6 +500,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -511,7 +521,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -523,6 +533,7 @@ Level3 Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -539,7 +550,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -552,6 +563,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -572,7 +584,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -584,6 +596,7 @@ Level3 Default + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -606,6 +619,7 @@ + @@ -636,6 +650,9 @@ true + + true + true diff --git a/Data/testsuite/TestSuite_vs160.vcxproj.filters b/Data/testsuite/TestSuite_vs160.vcxproj.filters index 0a17d578a..1e9696fed 100644 --- a/Data/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Data/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,46 +2,55 @@ - {7e84ee0f-ec22-4e97-aeea-a8bd0ce4152e} + {2110cb77-2dd9-4fc9-b23c-7ffa01780b10} - {f4d0b95b-288c-4d87-adc2-05a8e804d138} + {7e659760-f611-4c4c-aa87-ab2735f50f1f} - {67638b50-3c9a-49fd-8830-878198b44a4b} + {8b4dde88-f590-4fd5-a3e2-c96b5bad09d7} - {aa2eca34-420d-4002-a647-522105462d3c} + {89ce8418-6b41-4fb6-af39-5b0f063ff8f9} - {77380bae-42e2-4730-bdf5-029a46b7de60} + {374575a8-73d9-472d-92a1-5952e25976e1} - {bf7ee855-8def-49be-bbeb-b343f1af6e25} + {3ad16fb0-d990-496a-a475-c7f8f25cdd76} - {71b40c25-0a71-4af1-9c24-bd19e9f05ee5} + {bd48e2d8-fa49-47cf-92ee-aaba8c3865dc} - {18542fbd-0f3f-4ded-bbd8-3187dacda5b9} + {f27a4252-9660-4011-a8fd-c3f11a8a829d} - {391c5e24-2daa-4267-95ba-ab8e4a678121} + {71478dc8-bf46-499c-a9d7-66f198e19bb0} - {0ae4b178-a34b-40fe-81eb-46e86815153a} + {95a357b7-739e-42ce-8e75-a84fb4a76224} - {bd5d5609-7342-4cfb-95fa-4057043b296f} + {0a3e2b11-5212-435f-b32d-d18ae3216a5f} - {5f59170e-8a51-4ec5-acc8-bab9e3f5c427} + {06592de6-8082-4b23-b3d0-f4322f4eb826} - {a03c48d7-ad5a-4962-ac25-f8d3b10fc4c0} + {629e12d4-340b-4da8-9606-8477affad287} - {777f4515-c6c8-4df2-9f01-661d208a7534} + {64fc97a7-e16f-4c74-95dd-9bfa176d9fe3} + + + {02bd5950-0a8d-43a0-a9c4-a125d402cc08} + + + {91d4e4e3-c6c6-4c93-9dba-3d996c4c9274} + + + {68eb2f3e-441a-484a-8dec-aa91e5129f40} @@ -72,6 +81,9 @@ SessionPooling\Header Files + + SQLParser\Header Files + @@ -104,5 +116,8 @@ SessionPooling\Source Files + + SQLParser\Source Files + \ No newline at end of file From f4ae6f66a63bca51ff45532b33a0a6f41289f534 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Fri, 10 Nov 2023 10:54:56 +0100 Subject: [PATCH 201/395] fix(build): SQLite VS2019 projects --- Data/SQLite/SQLite_vs160.vcxproj | 29 ++++++++++--------- Data/SQLite/SQLite_vs160.vcxproj.filters | 12 ++++---- Data/SQLite/testsuite/TestSuite_vs160.vcxproj | 29 ++++++++++--------- .../testsuite/TestSuite_vs160.vcxproj.filters | 16 +++++----- 4 files changed, 44 insertions(+), 42 deletions(-) diff --git a/Data/SQLite/SQLite_vs160.vcxproj b/Data/SQLite/SQLite_vs160.vcxproj index 52ce29cd5..a3451a702 100644 --- a/Data/SQLite/SQLite_vs160.vcxproj +++ b/Data/SQLite/SQLite_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 SQLite {5B889CE7-AD42-4CFE-BBC3-532B61F8329E} SQLite @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34202.158 PocoDataSQLited PocoDataSQLitemdd PocoDataSQLitemtd @@ -226,7 +227,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -260,7 +261,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -290,7 +291,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -318,7 +319,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreaded @@ -340,7 +341,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -368,7 +369,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -391,7 +392,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -425,7 +426,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -455,7 +456,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -483,7 +484,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreaded @@ -505,7 +506,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -533,7 +534,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/SQLite/SQLite_vs160.vcxproj.filters b/Data/SQLite/SQLite_vs160.vcxproj.filters index 3c4f2b55a..1a20ff92d 100644 --- a/Data/SQLite/SQLite_vs160.vcxproj.filters +++ b/Data/SQLite/SQLite_vs160.vcxproj.filters @@ -2,22 +2,22 @@ - {69e75109-38a4-45a9-b2bc-b966296050a3} + {6c840d0b-ed66-410e-a421-0f2c9c9e9a7d} - {2d0cba04-2d92-4245-aa49-2e03bdd553a2} + {8e9c497e-a61d-4203-85f0-4ef7108f6d7e} - {9dec7452-0210-4fed-a3d8-d29ca0a1e1a9} + {911ef95b-e39d-41c6-9a73-5aaa4d5c7891} - {48298e96-9316-4083-b764-0c51cf8fa29b} + {0301236d-4aae-44a0-866f-a8f712263d84} - {0d2e4f5a-3f5c-4abc-bafa-efa5277aa0ab} + {da5de5e7-1979-4db2-b976-478d62ba2060} - {88136f08-c111-474b-ad7e-3957a3c254d4} + {8e8c110a-c008-4b96-972d-99bc6c999456} diff --git a/Data/SQLite/testsuite/TestSuite_vs160.vcxproj b/Data/SQLite/testsuite/TestSuite_vs160.vcxproj index 194a6cc04..048d977fe 100644 --- a/Data/SQLite/testsuite/TestSuite_vs160.vcxproj +++ b/Data/SQLite/testsuite/TestSuite_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TestSuite {45528A81-2523-48DD-AEB3-6B6BD73A2C5D} TestSuite @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34202.158 TestSuited TestSuited TestSuited @@ -234,7 +235,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -267,7 +268,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -295,7 +296,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -328,7 +329,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -356,7 +357,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -389,7 +390,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -417,7 +418,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -450,7 +451,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -478,7 +479,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -511,7 +512,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -539,7 +540,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -572,7 +573,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/SQLite/testsuite/TestSuite_vs160.vcxproj.filters b/Data/SQLite/testsuite/TestSuite_vs160.vcxproj.filters index a4fa53d6f..f895c07c5 100644 --- a/Data/SQLite/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Data/SQLite/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,28 +2,28 @@ - {ed9db460-7840-4c2f-aefb-36610262d999} + {53c09e90-9b56-4deb-aaf8-19821bc8ebc5} - {b0b1e990-daee-4451-86fe-29f91f3f1afc} + {5fa58902-2934-4eda-82c0-72bc5fed82ae} - {1621e1d6-8809-4e43-9ca6-d901e61df43d} + {c8cf4cb9-c5e1-4c6d-b3f6-811a67f2441f} - {624af317-ec16-4fad-889f-d87560f6bc03} + {ec73dddc-e297-4eae-82f4-8834666e78ab} - {ae3bfdb9-fc88-4445-b3ce-c1750f5d3c72} + {1e29bb6f-b8cc-43a5-9300-7c61826f99c3} - {ea522ea4-785e-4c88-a0d3-fd82d24e1ac9} + {7598d309-7d05-46b9-b51e-33c9f5e77c50} - {06b794fc-059c-4be3-96e5-f0acc7280e02} + {39759e95-cb8d-43d9-a134-934836253600} - {88876074-436c-46b6-bbc7-3c3e6f16b046} + {1cce9aed-17a3-46b3-8304-10d803b2373e} From c71197901736c81da476e2281dc99455471c7834 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Fri, 10 Nov 2023 12:06:21 +0100 Subject: [PATCH 202/395] chore(ci): re-enable --- .github/workflows/ci.yml | 398 +++++++++++++++++++-------------------- 1 file changed, 199 insertions(+), 199 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 85a8395b6..8a688fc20 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,196 +5,196 @@ concurrency: cancel-in-progress: true jobs: -### linux-gcc-make: -### runs-on: ubuntu-22.04 -### services: -### mysql: -### image: mysql:latest -### env: -### MYSQL_ALLOW_EMPTY_PASSWORD: yes -### MYSQL_USER: pocotest -### MYSQL_PASSWORD: pocotest -### MYSQL_DATABASE: pocotest -### ports: -### - 3306:3306 -### steps: -### - uses: actions/checkout@v3 -### - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev redis-server libmysqlclient-dev -### - run: ./configure --everything --omit=PDF && make all -s -j4 && sudo make install -### - run: >- -### sudo -s -### EXCLUDE_TESTS="Data/ODBC Data/PostgreSQL MongoDB" -### ./ci/runtests.sh + linux-gcc-make: + runs-on: ubuntu-22.04 + services: + mysql: + image: mysql:latest + env: + MYSQL_ALLOW_EMPTY_PASSWORD: yes + MYSQL_USER: pocotest + MYSQL_PASSWORD: pocotest + MYSQL_DATABASE: pocotest + ports: + - 3306:3306 + steps: + - uses: actions/checkout@v3 + - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev redis-server libmysqlclient-dev + - run: ./configure --everything --omit=PDF && make all -s -j4 && sudo make install + - run: >- + sudo -s + EXCLUDE_TESTS="Data/ODBC Data/PostgreSQL MongoDB" + ./ci/runtests.sh -### linux-gcc-make-cxx20: -### runs-on: ubuntu-22.04 -### steps: -### - uses: actions/checkout@v3 -### - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev redis-server libmysqlclient-dev -### - run: ./configure --config=Linux-c++20 --everything --omit=PDF && make all -s -j4 && sudo make install -### - run: >- -### sudo -s -### EXCLUDE_TESTS="Data/ODBC Data/MySQL Data/PostgreSQL MongoDB" -### ./ci/runtests.sh + linux-gcc-make-cxx20: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev redis-server libmysqlclient-dev + - run: ./configure --config=Linux-c++20 --everything --omit=PDF && make all -s -j4 && sudo make install + - run: >- + sudo -s + EXCLUDE_TESTS="Data/ODBC Data/MySQL Data/PostgreSQL MongoDB" + ./ci/runtests.sh -### linux-gcc-make-asan: -### runs-on: ubuntu-22.04 -### services: -### mysql: -### image: mysql:latest -### env: -### MYSQL_ALLOW_EMPTY_PASSWORD: yes -### MYSQL_USER: pocotest -### MYSQL_PASSWORD: pocotest -### MYSQL_DATABASE: pocotest -### ports: -### - 3306:3306 -### steps: -### - uses: actions/checkout@v3 -### - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server -### - run: ./configure --everything --no-samples --omit=PDF && make all -s -j4 SANITIZEFLAGS=-fsanitize=address && sudo make install -### - run: >- -### sudo -s -### EXCLUDE_TESTS="Data/ODBC Data/PostgreSQL MongoDB" -### ./ci/runtests.sh + linux-gcc-make-asan: + runs-on: ubuntu-22.04 + services: + mysql: + image: mysql:latest + env: + MYSQL_ALLOW_EMPTY_PASSWORD: yes + MYSQL_USER: pocotest + MYSQL_PASSWORD: pocotest + MYSQL_DATABASE: pocotest + ports: + - 3306:3306 + steps: + - uses: actions/checkout@v3 + - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server + - run: ./configure --everything --no-samples --omit=PDF && make all -s -j4 SANITIZEFLAGS=-fsanitize=address && sudo make install + - run: >- + sudo -s + EXCLUDE_TESTS="Data/ODBC Data/PostgreSQL MongoDB" + ./ci/runtests.sh -### linux-gcc-make-asan-no-soo: -### runs-on: ubuntu-22.04 -### steps: -### - uses: actions/checkout@v3 -### - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server -### - run: ./configure --everything --no-samples --omit=PDF --no-soo && make all -s -j4 SANITIZEFLAGS=-fsanitize=address && sudo make install -### - run: >- -### sudo -s -### EXCLUDE_TESTS="Data/MySQL Data/ODBC Data/PostgreSQL MongoDB" -### ./ci/runtests.sh -### -### linux-gcc-make-ubsan: -### runs-on: ubuntu-22.04 -### steps: -### - uses: actions/checkout@v3 -### - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server -### - run: ./configure --everything --no-samples --omit=PDF && make all -s -j4 SANITIZEFLAGS=-fsanitize=undefined && sudo make install -### - run: >- -### sudo -s -### EXCLUDE_TESTS="Data/MySQL Data/ODBC Data/PostgreSQL MongoDB" -### ./ci/runtests.sh + linux-gcc-make-asan-no-soo: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server + - run: ./configure --everything --no-samples --omit=PDF --no-soo && make all -s -j4 SANITIZEFLAGS=-fsanitize=address && sudo make install + - run: >- + sudo -s + EXCLUDE_TESTS="Data/MySQL Data/ODBC Data/PostgreSQL MongoDB" + ./ci/runtests.sh -### linux-gcc-make-tsan: -### runs-on: ubuntu-22.04 -### steps: -### - uses: actions/checkout@v3 -### - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server -### - run: ./configure --everything --no-samples --omit=CppParser,Encodings,Data/MySQL,Data/ODBC,Data/PostgreSQL,MongoDB,PageCompiler,PDF,PocoDoc,ProGen,Redis,SevenZip && make all -s -j4 SANITIZEFLAGS=-fsanitize=thread && sudo make install -### - run: >- -### sudo -s -### ./ci/runtests.sh TSAN -### -### linux-gcc-cmake: -### runs-on: ubuntu-22.04 -### steps: -### - uses: actions/checkout@v3 -### - run: sudo apt -y update && sudo apt -y install cmake ninja-build libssl-dev unixodbc-dev libmysqlclient-dev redis-server -### - run: cmake -H. -Bcmake-build -GNinja -DENABLE_PDF=OFF -DENABLE_TESTS=ON && cmake --build cmake-build --target all -### - run: >- -### cd cmake-build && -### sudo -s -### PWD=`pwd` -### ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)" + linux-gcc-make-ubsan: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server + - run: ./configure --everything --no-samples --omit=PDF && make all -s -j4 SANITIZEFLAGS=-fsanitize=undefined && sudo make install + - run: >- + sudo -s + EXCLUDE_TESTS="Data/MySQL Data/ODBC Data/PostgreSQL MongoDB" + ./ci/runtests.sh -### linux-gcc-make-cross-armhf: -### runs-on: ubuntu-22.04 -### steps: -### - uses: actions/checkout@v3 -### - run: >- -### sudo apt-get -y update && -### sudo apt-get -y install crossbuild-essential-armhf -### - run: >- -### ./configure --config=ARM-Linux --everything --omit=PDF,Crypto,NetSSL_OpenSSL,JWT,Data/MySQL,Data/ODBC,Data/PostgreSQL,PageCompiler,PageCompiler/File2Page && -### make all -s -j4 ARCHFLAGS="-mcpu=cortex-a8 -mfloat-abi=hard -mfpu=neon" TOOL=arm-linux-gnueabihf + linux-gcc-make-tsan: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server + - run: ./configure --everything --no-samples --omit=CppParser,Encodings,Data/MySQL,Data/ODBC,Data/PostgreSQL,MongoDB,PageCompiler,PDF,PocoDoc,ProGen,Redis,SevenZip && make all -s -j4 SANITIZEFLAGS=-fsanitize=thread && sudo make install + - run: >- + sudo -s + ./ci/runtests.sh TSAN -### macos-clang-make: -### runs-on: macos-12 -### steps: -### - uses: actions/checkout@v3 -### - run: brew install openssl@1.1 mysql-client unixodbc libpq -### - run: >- -### ./configure --everything --no-prefix --omit=PDF -### --odbc-include=/usr/local/opt/unixodbc/include --odbc-lib=/usr/local/opt/unixodbc/lib -### --mysql-include=/usr/local/opt/mysql-client/include --mysql-lib=/usr/local/opt/mysql-client/lib && -### make all -s -j4 -### - run: >- -### sudo -s -### CPPUNIT_IGNORE=" -### CppUnit::TestCaller.testTrySleep, -### CppUnit::TestCaller.testTimestamp, -### CppUnit::TestCaller.testExpireN, -### CppUnit::TestCaller.testAccessExpireN, -### CppUnit::TestCaller.testExpireN, -### CppUnit::TestCaller.testAccessExpireN, -### CppUnit::TestCaller.testOldBSD" -### EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" -### ./ci/runtests.sh + linux-gcc-cmake: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - run: sudo apt -y update && sudo apt -y install cmake ninja-build libssl-dev unixodbc-dev libmysqlclient-dev redis-server + - run: cmake -H. -Bcmake-build -GNinja -DENABLE_PDF=OFF -DENABLE_TESTS=ON && cmake --build cmake-build --target all + - run: >- + cd cmake-build && + sudo -s + PWD=`pwd` + ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)" -### macos-clang-cmake: -### runs-on: macos-12 -### steps: -### - uses: actions/checkout@v3 -### - run: brew install openssl@1.1 mysql-client unixodbc libpq -### - run: cmake -H. -Bcmake-build -DENABLE_PDF=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@1.1 -DMYSQL_ROOT_DIR=/usr/local/opt/mysql-client && cmake --build cmake-build --target all -### - run: >- -### cd cmake-build && -### sudo -s -### CPPUNIT_IGNORE=" -### CppUnit::TestCaller.testTrySleep, -### CppUnit::TestCaller.testTimestamp, -### CppUnit::TestCaller.testExpireN, -### CppUnit::TestCaller.testAccessExpireN, -### CppUnit::TestCaller.testExpireN, -### CppUnit::TestCaller.testAccessExpireN, -### CppUnit::TestCaller.testPollClosedServer" -### PWD=`pwd` -### ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" + linux-gcc-make-cross-armhf: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - run: >- + sudo apt-get -y update && + sudo apt-get -y install crossbuild-essential-armhf + - run: >- + ./configure --config=ARM-Linux --everything --omit=PDF,Crypto,NetSSL_OpenSSL,JWT,Data/MySQL,Data/ODBC,Data/PostgreSQL,PageCompiler,PageCompiler/File2Page && + make all -s -j4 ARCHFLAGS="-mcpu=cortex-a8 -mfloat-abi=hard -mfpu=neon" TOOL=arm-linux-gnueabihf -### macos-clang-cmake-openssl3: -### runs-on: macos-12 -### steps: -### - uses: actions/checkout@v3 -### - run: brew install openssl@3 mysql-client unixodbc libpq -### - run: cmake -H. -Bcmake-build -DENABLE_PDF=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@3 -DMYSQL_ROOT_DIR=/usr/local/opt/mysql-client && cmake --build cmake-build --target all -### - run: >- -### cd cmake-build && -### sudo -s -### CPPUNIT_IGNORE=" -### CppUnit::TestCaller.testTrySleep, -### CppUnit::TestCaller.testTimestamp, -### CppUnit::TestCaller.testExpireN, -### CppUnit::TestCaller.testAccessExpireN, -### CppUnit::TestCaller.testExpireN, -### CppUnit::TestCaller.testAccessExpireN, -### CppUnit::TestCaller.testPollClosedServer" -### PWD=`pwd` -### ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" + macos-clang-make: + runs-on: macos-12 + steps: + - uses: actions/checkout@v3 + - run: brew install openssl@1.1 mysql-client unixodbc libpq + - run: >- + ./configure --everything --no-prefix --omit=PDF + --odbc-include=/usr/local/opt/unixodbc/include --odbc-lib=/usr/local/opt/unixodbc/lib + --mysql-include=/usr/local/opt/mysql-client/include --mysql-lib=/usr/local/opt/mysql-client/lib && + make all -s -j4 + - run: >- + sudo -s + CPPUNIT_IGNORE=" + CppUnit::TestCaller.testTrySleep, + CppUnit::TestCaller.testTimestamp, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testOldBSD" + EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" + ./ci/runtests.sh -### windows-2019-msvc-cmake: -### runs-on: windows-2019 -### env: -### CPPUNIT_IGNORE: >- -### class CppUnit::TestCaller.testFind, -### class CppUnit::TestCaller.testSendToReceiveFrom, -### class CppUnit::TestCaller.testPing, -### class CppUnit::TestCaller.testBigPing, -### class CppUnit::TestCaller.testMTU, -### class CppUnit::TestCaller.testProxy, -### class CppUnit::TestCaller.testProxy, -### class CppUnit::TestCaller.testPollClosedServer -### steps: -### - uses: actions/checkout@v3 -### - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON -### - run: cmake --build cmake-build --config Release -### - run: >- -### cd cmake-build; -### ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Release + macos-clang-cmake: + runs-on: macos-12 + steps: + - uses: actions/checkout@v3 + - run: brew install openssl@1.1 mysql-client unixodbc libpq + - run: cmake -H. -Bcmake-build -DENABLE_PDF=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@1.1 -DMYSQL_ROOT_DIR=/usr/local/opt/mysql-client && cmake --build cmake-build --target all + - run: >- + cd cmake-build && + sudo -s + CPPUNIT_IGNORE=" + CppUnit::TestCaller.testTrySleep, + CppUnit::TestCaller.testTimestamp, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testPollClosedServer" + PWD=`pwd` + ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" + + macos-clang-cmake-openssl3: + runs-on: macos-12 + steps: + - uses: actions/checkout@v3 + - run: brew install openssl@3 mysql-client unixodbc libpq + - run: cmake -H. -Bcmake-build -DENABLE_PDF=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@3 -DMYSQL_ROOT_DIR=/usr/local/opt/mysql-client && cmake --build cmake-build --target all + - run: >- + cd cmake-build && + sudo -s + CPPUNIT_IGNORE=" + CppUnit::TestCaller.testTrySleep, + CppUnit::TestCaller.testTimestamp, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testPollClosedServer" + PWD=`pwd` + ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" + + windows-2019-msvc-cmake: + runs-on: windows-2019 + env: + CPPUNIT_IGNORE: >- + class CppUnit::TestCaller.testFind, + class CppUnit::TestCaller.testSendToReceiveFrom, + class CppUnit::TestCaller.testPing, + class CppUnit::TestCaller.testBigPing, + class CppUnit::TestCaller.testMTU, + class CppUnit::TestCaller.testProxy, + class CppUnit::TestCaller.testProxy, + class CppUnit::TestCaller.testPollClosedServer + steps: + - uses: actions/checkout@v3 + - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON + - run: cmake --build cmake-build --config Release + - run: >- + cd cmake-build; + ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Release windows-2019-msvc-buildwin-x64: runs-on: windows-2019 @@ -249,24 +249,24 @@ jobs: # - uses: actions/checkout@v3 # - run: .\buildwin.ps1 -poco_base . -vs 170 -action build -linkmode all -config release -platform Win32 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" -### windows-2022-msvc-cmake: -### runs-on: windows-2022 -### env: -### CPPUNIT_IGNORE: >- -### class CppUnit::TestCaller.testFind, -### class CppUnit::TestCaller.testSendToReceiveFrom, -### class CppUnit::TestCaller.testPing, -### class CppUnit::TestCaller.testBigPing, -### class CppUnit::TestCaller.testMTU, -### class CppUnit::TestCaller.testProxy, -### class CppUnit::TestCaller.testProxy -### steps: -### - uses: actions/checkout@v3 -### - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON -### - run: cmake --build cmake-build --config Release -### - run: >- -### cd cmake-build; -### ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Release + windows-2022-msvc-cmake: + runs-on: windows-2022 + env: + CPPUNIT_IGNORE: >- + class CppUnit::TestCaller.testFind, + class CppUnit::TestCaller.testSendToReceiveFrom, + class CppUnit::TestCaller.testPing, + class CppUnit::TestCaller.testBigPing, + class CppUnit::TestCaller.testMTU, + class CppUnit::TestCaller.testProxy, + class CppUnit::TestCaller.testProxy + steps: + - uses: actions/checkout@v3 + - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON + - run: cmake --build cmake-build --config Release + - run: >- + cd cmake-build; + ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Release # missing asan dll path # windows-2022-msvc-cmake-asan: From 10ad89594a9122c8a449ac5694bf4f502b74fe0b Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Sat, 11 Nov 2023 11:08:18 +0100 Subject: [PATCH 203/395] Win build fix (#4260) * fix(SQLParser): use Data_API if available * fix(ProGen): wrong AdditionalOptions separator #4259 * fix(SQLParser): add default export define when embedded --- .github/workflows/ci.yml | 8 +- .../ActiveRecord_vs160.vcxproj.filters | 6 +- .../ActiveRecord_vs170.vcxproj.filters | 6 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 8 +- .../testsuite/TestSuite_vs170.vcxproj | 12 +- .../testsuite/TestSuite_vs170.vcxproj.filters | 8 +- Data/Data.progen | 6 +- Data/Data_NO_SQL_PARSER.progen | 2 +- Data/Data_vs160.sln | 42 ++ Data/Data_vs160.vcxproj | 24 +- Data/Data_vs160.vcxproj.filters | 42 +- Data/Data_vs170.sln | 280 ++++++------ Data/Data_vs170.vcxproj | 36 +- Data/Data_vs170.vcxproj.filters | 42 +- Data/MySQL/MySQL_vs160.vcxproj | 29 +- Data/MySQL/testsuite/TestSuite_vs160.vcxproj | 29 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 16 +- Data/MySQL/testsuite/TestSuite_vs170.vcxproj | 12 +- .../testsuite/TestSuite_vs170.vcxproj.filters | 16 +- Data/ODBC/ODBC_vs160.vcxproj.filters | 6 +- Data/ODBC/ODBC_vs170.vcxproj.filters | 6 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 16 +- Data/ODBC/testsuite/TestSuite_vs170.vcxproj | 174 +++---- .../testsuite/TestSuite_vs170.vcxproj.filters | 16 +- Data/PostgreSQL/PostgreSQL_vs160.vcxproj | 29 +- .../testsuite/TestSuite_vs160.vcxproj | 29 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 16 +- .../testsuite/TestSuite_vs170.vcxproj | 12 +- .../testsuite/TestSuite_vs170.vcxproj.filters | 16 +- Data/SQLite/SQLite_vs160.vcxproj.filters | 12 +- Data/SQLite/SQLite_vs170.vcxproj.filters | 12 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 16 +- Data/SQLite/testsuite/TestSuite_vs170.vcxproj | 12 +- .../testsuite/TestSuite_vs170.vcxproj.filters | 16 +- .../Binding/Binding_vs160.vcxproj.filters | 4 +- Data/samples/Binding/Binding_vs170.vcxproj | 428 +++++++++++++++--- .../Binding/Binding_vs170.vcxproj.filters | 4 +- .../RecordSet/RecordSet_vs160.vcxproj.filters | 4 +- .../samples/RecordSet/RecordSet_vs170.vcxproj | 428 +++++++++++++++--- .../RecordSet/RecordSet_vs170.vcxproj.filters | 4 +- .../RowFormatter_vs160.vcxproj.filters | 4 +- .../RowFormatter/RowFormatter_vs170.vcxproj | 428 +++++++++++++++--- .../RowFormatter_vs170.vcxproj.filters | 4 +- .../samples/Tuple/Tuple_vs160.vcxproj.filters | 4 +- Data/samples/Tuple/Tuple_vs170.vcxproj | 428 +++++++++++++++--- .../samples/Tuple/Tuple_vs170.vcxproj.filters | 4 +- .../TypeHandler_vs160.vcxproj.filters | 4 +- .../TypeHandler/TypeHandler_vs170.vcxproj | 428 +++++++++++++++--- .../TypeHandler_vs170.vcxproj.filters | 4 +- .../WebNotifier_vs160.vcxproj.filters | 4 +- .../WebNotifier/WebNotifier_vs170.vcxproj | 428 +++++++++++++++--- .../WebNotifier_vs170.vcxproj.filters | 4 +- Data/src/sql-parser/src/sqlparser_win.h | 24 +- Data/testsuite/CMakeLists.txt | 2 +- Data/testsuite/DataTest/DataTest.progen | 3 +- .../testsuite/DataTest/DataTest_vs160.vcxproj | 24 +- .../DataTest/DataTest_vs160.vcxproj.filters | 4 +- .../testsuite/DataTest/DataTest_vs170.vcxproj | 114 ++--- .../DataTest/DataTest_vs170.vcxproj.filters | 4 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 34 +- Data/testsuite/TestSuite_vs170.vcxproj | 12 +- .../testsuite/TestSuite_vs170.vcxproj.filters | 34 +- Foundation/testsuite/src/FPETest.cpp | 11 + .../testsuite/src/LinearHashTableTest.cpp | 10 + ProGen/src/ProGen.cpp | 4 +- 65 files changed, 2934 insertions(+), 974 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5f8942d11..506e4dafd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,7 +2,7 @@ # To retry only on timeout set retry_on: timeout # To retry only on error set retry_on: error # For more information on the retry action see https://github.com/nick-fields/retry -on: +on: pull_request: types: [opened] push: @@ -241,7 +241,7 @@ jobs: # command: >- # cd cmake-build; # ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Release - + # windows-2019-msvc-buildwin-x64: # runs-on: windows-2019 # env: @@ -451,7 +451,7 @@ jobs: sudo -s EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/ODBC Data/MySQL Data/SQLite Data/PostgreSQL Encodings Foundation JSON JWT Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" ./ci/runtests.sh - + linux-gcc-make-odbc: runs-on: ubuntu-22.04 services: @@ -498,7 +498,7 @@ jobs: # wget https://download.oracle.com/otn_software/linux/instantclient/2112000/oracle-instantclient-basic-21.12.0.0.0-1.x86_64.rpm # wget https://download.oracle.com/otn_software/linux/instantclient/2112000/oracle-instantclient-sqlplus-21.12.0.0.0-1.x86_64.rpm # wget https://download.oracle.com/otn_software/linux/instantclient/2112000/oracle-instantclient-odbc-21.12.0.0.0-1.x86_64.rpm - # sudo alien --scripts ./oracle-instantclient-basic-21.12.0.0.0-1.x86_64.rpm + # sudo alien --scripts ./oracle-instantclient-basic-21.12.0.0.0-1.x86_64.rpm # sudo alien --scripts ./oracle-instantclient-sqlplus-21.12.0.0.0-1.x86_64.rpm # sudo alien --scripts ./oracle-instantclient-odbc-21.12.0.0.0-1.x86_64.rpm # sudo apt install ./oracle-instantclient-basic_21.12.0.0.0-2_amd64.deb diff --git a/ActiveRecord/ActiveRecord_vs160.vcxproj.filters b/ActiveRecord/ActiveRecord_vs160.vcxproj.filters index ec9568e29..41f6102fd 100644 --- a/ActiveRecord/ActiveRecord_vs160.vcxproj.filters +++ b/ActiveRecord/ActiveRecord_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {28dd6b11-317a-48e6-b680-ad6a817cbec3} + {ebe820d0-5937-490c-8ddc-7dde87f658aa} - {331ea644-41fa-430e-8e0d-672a7371118c} + {2d5b0e12-b750-4803-ad74-c9756c2abc98} - {2fcea3ab-7133-4bb4-be47-8b6a6c1c931f} + {4a459f4f-d116-4642-ad0c-0966c895a8a2} diff --git a/ActiveRecord/ActiveRecord_vs170.vcxproj.filters b/ActiveRecord/ActiveRecord_vs170.vcxproj.filters index a0d823385..4d935e8dc 100644 --- a/ActiveRecord/ActiveRecord_vs170.vcxproj.filters +++ b/ActiveRecord/ActiveRecord_vs170.vcxproj.filters @@ -2,13 +2,13 @@ - {c01cecef-6df2-46a3-ab05-46ed396f6038} + {73c14701-9a05-4ff0-ad45-6a014639a69e} - {f809bd11-fc6a-401f-82bd-e20950f1d1b0} + {163f196a-9202-45e4-80aa-20307db240a7} - {114f7d6f-450f-4730-afc3-93c52413d20f} + {15a3b1af-8e8c-4aff-bb0f-04c75fcc1610} diff --git a/ActiveRecord/testsuite/TestSuite_vs160.vcxproj.filters b/ActiveRecord/testsuite/TestSuite_vs160.vcxproj.filters index 823a823a2..5fd6a8de3 100644 --- a/ActiveRecord/testsuite/TestSuite_vs160.vcxproj.filters +++ b/ActiveRecord/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,16 +2,16 @@ - {d195900b-a711-4532-aa25-5e5f0696f7ce} + {029152e5-3d3c-4359-8e19-e3339dfb916f} - {75bdd16b-c424-440c-a778-e6c040418f1f} + {81913cce-c711-403e-8bcf-9bea3ce7162b} - {7f1b72cc-467e-46fe-b821-c6da44a434a1} + {a659828c-15fc-4d14-b7c1-b96b779ad220} - {794b4ed4-42e7-410c-91b2-24e920b43b69} + {321ae715-2a94-4ecb-8368-473b38ae89eb} diff --git a/ActiveRecord/testsuite/TestSuite_vs170.vcxproj b/ActiveRecord/testsuite/TestSuite_vs170.vcxproj index b23bf7325..f7df61046 100644 --- a/ActiveRecord/testsuite/TestSuite_vs170.vcxproj +++ b/ActiveRecord/testsuite/TestSuite_vs170.vcxproj @@ -361,7 +361,7 @@ CppUnitd.lib;%(AdditionalDependencies) - binA64\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true @@ -394,7 +394,7 @@ CppUnit.lib;%(AdditionalDependencies) - binA64\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -424,7 +424,7 @@ CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true @@ -457,7 +457,7 @@ CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -487,7 +487,7 @@ CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - binA64\static_md\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true @@ -520,7 +520,7 @@ CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - binA64\static_md\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console diff --git a/ActiveRecord/testsuite/TestSuite_vs170.vcxproj.filters b/ActiveRecord/testsuite/TestSuite_vs170.vcxproj.filters index 22cc7d8d6..7b9a51f7d 100644 --- a/ActiveRecord/testsuite/TestSuite_vs170.vcxproj.filters +++ b/ActiveRecord/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,16 +2,16 @@ - {0a7b641a-4834-4f9f-b017-9a4120774ae0} + {441842f8-5906-4eba-8622-ce2adb220b2c} - {6defcb8f-d22e-403f-ac23-1bc786b2bc04} + {d9408da8-d459-41c9-a781-65c0f5434c36} - {7d34b586-f30f-4dfa-9b2d-21b929412de4} + {b89d1d90-8f75-4b8e-a5f5-70f76b1f6831} - {869d3957-fe79-4b78-8f7f-a9836d60d780} + {7f27626c-1bc5-4720-8115-2e140a2110f3} diff --git a/Data/Data.progen b/Data/Data.progen index cc4d87cde..1ea8c123d 100644 --- a/Data/Data.progen +++ b/Data/Data.progen @@ -16,8 +16,6 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS;SQLParser_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus -vc.project.compiler.additionalOptions.Win32.x64 = /bigobj /std:c++17 +vc.project.compiler.additionalOptions = /bigobj /std:c++17 /Zc:__cplusplus vc.solution.create = true -vc.solution.include = testsuite\\TestSuite -vc.solution.include = testsuite\\DataTest\\DataTest +vc.solution.include = testsuite\\TestSuite,testsuite\\DataTest\\DataTest diff --git a/Data/Data_NO_SQL_PARSER.progen b/Data/Data_NO_SQL_PARSER.progen index 8bb947569..4b7376b7b 100644 --- a/Data/Data_NO_SQL_PARSER.progen +++ b/Data/Data_NO_SQL_PARSER.progen @@ -12,6 +12,6 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions.Win32.x64 = /bigobj +vc.project.compiler.additionalOptions = /bigobj /std:c++17 /Zc:__cplusplus vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/Data/Data_vs160.sln b/Data/Data_vs160.sln index 2f0f1e28c..6c7016e50 100644 --- a/Data/Data_vs160.sln +++ b/Data/Data_vs160.sln @@ -2,9 +2,15 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Data", "Data_vs160.vcxproj", "{240E83C3-368D-11DB-9FBC-00123FC423B5}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs160.vcxproj", "{1813A463-E349-4FEA-8A8E-4A41E41C0DC7}" + ProjectSection(ProjectDependencies) = postProject + {240E83C3-368D-11DB-9FBC-00123FC423B5} = {240E83C3-368D-11DB-9FBC-00123FC423B5} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DataTest", "testsuite\DataTest\DataTest_vs160.vcxproj", "{240E83C3-368D-11DB-9FBC-00123FC423B5}" ProjectSection(ProjectDependencies) = postProject {240E83C3-368D-11DB-9FBC-00123FC423B5} = {240E83C3-368D-11DB-9FBC-00123FC423B5} + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7} = {1813A463-E349-4FEA-8A8E-4A41E41C0DC7} EndProjectSection EndProject Global @@ -59,6 +65,42 @@ Global {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Build.0 = release_static_md|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Build.0 = release_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.Build.0 = debug_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.ActiveCfg = release_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Build.0 = release_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Deploy.0 = release_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.Build.0 = release_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.Deploy.0 = release_static_md|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 diff --git a/Data/Data_vs160.vcxproj b/Data/Data_vs160.vcxproj index 07cca1e02..276468518 100644 --- a/Data/Data_vs160.vcxproj +++ b/Data/Data_vs160.vcxproj @@ -240,7 +240,7 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -273,7 +273,7 @@ Level3 Default - /Zc:__cplusplus %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -305,7 +305,7 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -331,7 +331,7 @@ Level3 Default - /Zc:__cplusplus %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -355,7 +355,7 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -382,7 +382,7 @@ Level3 Default - /Zc:__cplusplus %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -405,7 +405,7 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -438,7 +438,7 @@ Level3 Default - /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -470,7 +470,7 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -496,7 +496,7 @@ Level3 Default - /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -520,7 +520,7 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -546,7 +546,7 @@ Level3 Default - /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true diff --git a/Data/Data_vs160.vcxproj.filters b/Data/Data_vs160.vcxproj.filters index 8b8ddcc50..16ff21640 100644 --- a/Data/Data_vs160.vcxproj.filters +++ b/Data/Data_vs160.vcxproj.filters @@ -2,67 +2,67 @@ - {c03ff8c4-8b7e-4fdc-a268-709322472159} + {288b7ac9-80e7-4977-a381-cadf008ebcdf} - {9a23b528-2531-44aa-8d43-726f323ffc99} + {12c9cc3b-7826-4d45-92e1-dfaf991fa840} - {00830c67-613c-4796-9fb0-040a48f12882} + {9b0e3fe8-e8ce-4391-9560-884f347aa865} - {98fddf5f-d853-4bff-8d97-76472d7ad823} + {2e63a473-b289-4e92-92cc-e16be11c82d2} - {b7ef9ec6-fd35-4cc1-92e0-c8c9d7c882a8} + {18ea13a6-df50-4dc9-a7fe-926a890660ae} - {5349df12-1923-44ae-8183-8fb838eeee13} + {66c345c5-e7e4-4f9f-b52f-7413988b0d27} - {2ef77b83-0fc5-456b-b951-9c92c7bee3c3} + {0c5d9d8e-0633-457a-91ed-1c3aeea54844} - {b63e58be-4bbc-47b9-a8bf-e0448fef4f59} + {9adf59bc-ea95-4087-bc16-555f8005d8b5} - {087be81f-8245-4139-823d-763aac0291db} + {fe968685-92e8-4ee7-b34c-3b0d38738b4d} - {50155fee-d8ab-4019-bf65-ee51ae880fed} + {e19f63d7-be47-4527-b461-2fad09893743} - {488b9194-dbab-4ef5-b9ce-3524673580d6} + {53b9df29-8e80-48a8-820d-1090106ca8b7} - {7d187a76-cd8f-43a1-88b3-9c4df2102301} + {400e13b9-2f0b-47d7-9cef-98085da073bb} - {d6e4e4fe-0a7e-4340-ae08-6535f8b0473d} + {5b82d281-dcdc-4347-b738-349ae56de5ed} - {70e4617b-3c43-4c1b-aa8b-396883bf8d83} + {a4f1e56c-3574-4ab4-a763-a2ecdb55085a} - {a05db2e4-d3a1-4b7c-b4ff-0bd71821bdab} + {bd87f7db-3601-4147-9364-b8f2a7405480} - {2b5f602b-14d7-4bf9-95d9-6502044dea10} + {d71eb285-47d3-47af-97a9-eedcdc0a8293} - {490613de-8e49-47aa-91b9-afefbca8cbf9} + {de71c098-5b96-428d-b141-1c732e265a84} - {8c2b6618-3a46-4d65-9f5d-0cc213a8cc2e} + {f726cbf2-abf6-4b07-9db2-c68d87d7f66d} - {f8120323-9741-4afd-93f2-d94fec707930} + {04cbb57c-8da3-490b-b7b9-08fc95bb8b1f} - {5c86ff4b-d4ca-43a3-afad-f5ba79bd4756} + {de7a4819-b822-4c31-9668-ba871e59ba73} - {5007e3df-6ea5-4a11-a030-8f2b1f2c6314} + {a983f5f7-627c-43e2-ad22-62bdc4eade93} diff --git a/Data/Data_vs170.sln b/Data/Data_vs170.sln index 1ba83d39a..128d7c690 100644 --- a/Data/Data_vs170.sln +++ b/Data/Data_vs170.sln @@ -1,7 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 -VisualStudioVersion = 17.7.34202.233 -MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Data", "Data_vs170.vcxproj", "{240E83C3-368D-11DB-9FBC-00123FC423B5}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs170.vcxproj", "{1813A463-E349-4FEA-8A8E-4A41E41C0DC7}" @@ -9,174 +7,196 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\Test {240E83C3-368D-11DB-9FBC-00123FC423B5} = {240E83C3-368D-11DB-9FBC-00123FC423B5} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DataTest", "testsuite\DataTest\DataTest_vs170.vcxproj", "{7F518AB9-9D03-4769-9464-09D84F40A91A}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DataTest", "testsuite\DataTest\DataTest_vs170.vcxproj", "{240E83C3-368D-11DB-9FBC-00123FC423B5}" + ProjectSection(ProjectDependencies) = postProject + {240E83C3-368D-11DB-9FBC-00123FC423B5} = {240E83C3-368D-11DB-9FBC-00123FC423B5} + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7} = {1813A463-E349-4FEA-8A8E-4A41E41C0DC7} + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution debug_shared|ARM64 = debug_shared|ARM64 - debug_shared|Win32 = debug_shared|Win32 - debug_shared|x64 = debug_shared|x64 - debug_static_md|ARM64 = debug_static_md|ARM64 - debug_static_md|Win32 = debug_static_md|Win32 - debug_static_md|x64 = debug_static_md|x64 - debug_static_mt|ARM64 = debug_static_mt|ARM64 - debug_static_mt|Win32 = debug_static_mt|Win32 - debug_static_mt|x64 = debug_static_mt|x64 release_shared|ARM64 = release_shared|ARM64 - release_shared|Win32 = release_shared|Win32 - release_shared|x64 = release_shared|x64 - release_static_md|ARM64 = release_static_md|ARM64 - release_static_md|Win32 = release_static_md|Win32 - release_static_md|x64 = release_static_md|x64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 release_static_mt|ARM64 = release_static_mt|ARM64 + debug_static_md|ARM64 = debug_static_md|ARM64 + release_static_md|ARM64 = release_static_md|ARM64 + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + debug_shared|x64 = debug_shared|x64 + release_shared|x64 = release_shared|x64 + debug_static_mt|x64 = debug_static_mt|x64 release_static_mt|x64 = release_static_mt|x64 + debug_static_md|x64 = debug_static_md|x64 + release_static_md|x64 = release_static_md|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Build.0 = debug_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.Build.0 = release_shared|ARM64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Build.0 = release_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.ActiveCfg = release_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Build.0 = release_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Deploy.0 = release_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Build.0 = release_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Build.0 = release_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Build.0 = debug_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.ActiveCfg = release_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Build.0 = release_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Deploy.0 = release_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Build.0 = release_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.Build.0 = debug_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|ARM64.Build.0 = release_shared|ARM64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Build.0 = release_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.ActiveCfg = release_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Build.0 = release_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Deploy.0 = release_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.Build.0 = release_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Build.0 = release_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.Build.0 = debug_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.ActiveCfg = release_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Build.0 = release_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Deploy.0 = release_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.Build.0 = release_static_mt|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_shared|x64.Build.0 = debug_shared|x64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_shared|ARM64.Build.0 = release_shared|ARM64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_shared|Win32.Build.0 = release_shared|Win32 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_shared|x64.ActiveCfg = release_shared|x64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_shared|x64.Build.0 = release_shared|x64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_md|x64.Build.0 = release_static_md|x64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {7F518AB9-9D03-4769-9464-09D84F40A91A}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.Build.0 = release_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Build.0 = release_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Build.0 = debug_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.ActiveCfg = release_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Build.0 = release_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Deploy.0 = release_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Build.0 = release_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Data/Data_vs170.vcxproj b/Data/Data_vs170.vcxproj index f3f19b33d..b7db546f3 100644 --- a/Data/Data_vs170.vcxproj +++ b/Data/Data_vs170.vcxproj @@ -345,7 +345,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -379,7 +379,7 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -411,7 +411,7 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -438,7 +438,7 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -462,7 +462,7 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -489,7 +489,7 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -513,7 +513,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -547,7 +547,7 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -579,7 +579,7 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -606,7 +606,7 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -630,7 +630,7 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -657,7 +657,7 @@ Level3 Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -681,7 +681,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -715,7 +715,7 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -747,7 +747,7 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -774,7 +774,7 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -798,7 +798,7 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true @@ -825,7 +825,7 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) + /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) true diff --git a/Data/Data_vs170.vcxproj.filters b/Data/Data_vs170.vcxproj.filters index c375c7cb8..200b28d92 100644 --- a/Data/Data_vs170.vcxproj.filters +++ b/Data/Data_vs170.vcxproj.filters @@ -2,67 +2,67 @@ - {b506cf12-ceab-4480-9dd5-756051d07e59} + {17dee3c5-eff8-4413-8538-35cde2b4b148} - {90bfe7ca-919b-4bd6-8c37-9dbe7112498c} + {b47de74d-a006-494a-92ca-14bb740b6a8f} - {e6833f80-3310-4e9c-8e2e-0bc97da8930b} + {2fae20d2-553e-4d22-a054-7bdcaf5cfa18} - {4e47ac5e-d10b-4f76-9a2e-2ee9bb9e8a5a} + {8e430176-5758-4f18-a0a1-a2e47cd5d20a} - {20d5b73e-b1a1-42df-9646-76a028076568} + {f46d9d0c-aaad-4c18-b335-aa902649086a} - {be02d32e-211c-4862-a024-45a3fee69a52} + {a2f2316a-c2ec-45b6-bfb5-9c7ea4bf8406} - {b7bbae6d-e7e9-4509-9913-39ed7f4b490d} + {396b1821-ed93-4c83-884c-d60497a66f11} - {83ee7750-9959-4d4e-9c5d-eee6ab11e7fc} + {77bc6a77-c249-4be3-80b3-86841c7b6297} - {86d2f06a-b0be-4c31-aaca-46c0ea8f0286} + {c74693c2-b89b-4615-ba48-44ef418f9ab6} - {b6ca2721-dbbb-430a-a5be-c935eb0dc38f} + {6fadb32c-ee06-4f9e-937e-28203e2504d1} - {d4b21be3-c7c5-4ae4-83ef-2c297f700dc0} + {3c5d1163-2067-4363-abf6-dc040e3613cc} - {b4468c52-548a-403f-bc0f-a16ad4ddb739} + {15321502-9c36-49f6-a094-90a9de888c41} - {1dc3d753-71bd-4610-aea9-143c65775ff6} + {4f383c22-b278-40e9-bb9a-b25fd0db10a3} - {6acef4f6-0228-42fa-a749-459986350109} + {f037c038-fa66-4ea9-ab1e-187aac6f52ce} - {693d9699-5db9-4840-a7b5-f415dafb5313} + {fda6c009-20d7-4eb4-a9be-fbb1d578d166} - {fb4b6a93-f251-4a47-80ff-f1a20ba0d30e} + {5e4a847f-8c8d-40f0-aa79-03b211bd5ac9} - {0cf30b8a-83a6-46d6-bd8b-97fda9209963} + {dd5133dc-82db-4f2a-92f6-91dba81a222b} - {50d1df52-b839-4b23-a1ae-70fcc8b5810c} + {8d7c5808-50f5-4790-b35c-77350ea2b16c} - {f63fc3da-14d4-4a1d-8624-a6edd819c136} + {6fe708ec-ec55-4aeb-9be3-2b1aa30f3cb1} - {06bd663d-63c8-4438-9d55-12e68e755a4f} + {c8f1ad0b-aede-43b8-9b01-ad4cbf24f45b} - {663042c7-77cc-439e-b0e2-b5fcce9cf733} + {6845af31-0048-47ba-96f7-48baed099606} diff --git a/Data/MySQL/MySQL_vs160.vcxproj b/Data/MySQL/MySQL_vs160.vcxproj index 7553b21e4..a316b4941 100644 --- a/Data/MySQL/MySQL_vs160.vcxproj +++ b/Data/MySQL/MySQL_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 MySQL {73E19FDE-1570-488C-B3DB-72A60FADD408} MySQL @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34202.158 PocoDataMySQLd PocoDataMySQLmdd PocoDataMySQLmtd @@ -226,7 +227,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -259,7 +260,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -288,7 +289,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -315,7 +316,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreaded @@ -336,7 +337,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -363,7 +364,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -385,7 +386,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -418,7 +419,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -447,7 +448,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -474,7 +475,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreaded @@ -495,7 +496,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -522,7 +523,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/MySQL/testsuite/TestSuite_vs160.vcxproj b/Data/MySQL/testsuite/TestSuite_vs160.vcxproj index f7478ba07..82e6e1174 100644 --- a/Data/MySQL/testsuite/TestSuite_vs160.vcxproj +++ b/Data/MySQL/testsuite/TestSuite_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TestSuite {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7} TestSuite @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34202.158 TestSuited TestSuited TestSuited @@ -234,7 +235,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -267,7 +268,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -295,7 +296,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -328,7 +329,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -356,7 +357,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -389,7 +390,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -417,7 +418,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -450,7 +451,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -478,7 +479,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -511,7 +512,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -539,7 +540,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -572,7 +573,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/MySQL/testsuite/TestSuite_vs160.vcxproj.filters b/Data/MySQL/testsuite/TestSuite_vs160.vcxproj.filters index 4ff004647..2d17d0b26 100644 --- a/Data/MySQL/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Data/MySQL/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,28 +2,28 @@ - {92272352-c2e9-47a9-a7cf-9d3260252fe1} + {a02c2fb6-9366-4fe2-9022-6dca2b18e75f} - {d7569098-818f-42cf-955e-778cefa26d2c} + {a83a2532-d02e-435a-8b10-3738ecdd189b} - {abe33a7f-8005-49e6-975e-74f3d1dbe5f0} + {2786a6f3-0adf-4c57-905c-14985d7426df} - {ec17685d-e4d4-493a-82ea-10bb4f4c3fda} + {36db8336-1c50-4a71-a096-dd712a0ce2b5} - {d0e04155-de50-4c8f-ab46-78ee761ba517} + {461c5b13-8706-427a-9a06-051ae968b0f0} - {66dfd391-fa88-4845-9a67-5b4dcc3ed690} + {bf188fdd-ea10-43f8-8b4b-3ade1fea8915} - {efbd4271-382f-4f1b-bab7-4a607a662172} + {5e83eb1b-5e35-4c81-ab54-bb516861d7c2} - {2edef2c1-ea40-4f1b-ab14-85cd57f4fcbd} + {5af4c889-5733-42fe-b991-4675f5412663} diff --git a/Data/MySQL/testsuite/TestSuite_vs170.vcxproj b/Data/MySQL/testsuite/TestSuite_vs170.vcxproj index 34b9a4799..7a876ee85 100644 --- a/Data/MySQL/testsuite/TestSuite_vs170.vcxproj +++ b/Data/MySQL/testsuite/TestSuite_vs170.vcxproj @@ -361,7 +361,7 @@ CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) true true @@ -394,7 +394,7 @@ CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -424,7 +424,7 @@ CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) true true @@ -457,7 +457,7 @@ CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -487,7 +487,7 @@ CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) true true @@ -520,7 +520,7 @@ CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) false Console diff --git a/Data/MySQL/testsuite/TestSuite_vs170.vcxproj.filters b/Data/MySQL/testsuite/TestSuite_vs170.vcxproj.filters index a235d3676..d9b8002a8 100644 --- a/Data/MySQL/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Data/MySQL/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,28 +2,28 @@ - {7a2de31a-3851-4088-9c14-706e03473109} + {70e207d1-df25-48bb-876d-ef409138f1b3} - {af663958-170c-4adf-a2fc-e3dde9fedc84} + {3fb6fff1-8b74-414a-b207-21b52d944f4a} - {359523e9-e866-44ed-874f-6c9bcf60e2a4} + {1f7bf169-8c4a-4916-a4b6-cedca1de05a7} - {69d7242c-ec6a-46cf-b40f-54e3c8981e6c} + {5a5a5709-5023-48fb-b5ef-04f278c3a373} - {669b37d9-6a2e-4919-af2e-4255d5a2b76b} + {655df9d6-25b9-40f6-a676-774a9b7a68ed} - {aa49fa04-b549-4203-9916-6cb958d4d3b2} + {fb215f7b-16a4-4636-8be4-8ad05620a751} - {0b628b67-c9e4-471f-944f-37cd6a0726e2} + {1884265a-eeaa-40ce-a482-88db43b1a781} - {3f6f87ea-5a64-4efc-901b-ceb8cebf4468} + {2d93157c-bbe0-4314-b051-48ed6db6ca30} diff --git a/Data/ODBC/ODBC_vs160.vcxproj.filters b/Data/ODBC/ODBC_vs160.vcxproj.filters index f614bd33f..a12b9ed91 100644 --- a/Data/ODBC/ODBC_vs160.vcxproj.filters +++ b/Data/ODBC/ODBC_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {e2a5414c-2ea8-4332-8e66-e425df38839d} + {85a70ddf-ffdf-43ff-9d15-7314f24f8119} - {ea8d6d0f-1dcc-4992-bb60-7a201b6e70de} + {84609c69-4c6b-454f-8d3f-6e76ffe07259} - {fc6df9a9-e096-4f48-93ea-83e59cadce4c} + {c0f252a5-5fdd-4d18-82d2-c1bf39392bac} diff --git a/Data/ODBC/ODBC_vs170.vcxproj.filters b/Data/ODBC/ODBC_vs170.vcxproj.filters index 54bcd1e08..ca60a96bd 100644 --- a/Data/ODBC/ODBC_vs170.vcxproj.filters +++ b/Data/ODBC/ODBC_vs170.vcxproj.filters @@ -2,13 +2,13 @@ - {a7388ead-42ff-447a-955a-aacd59ab48f3} + {f34e7de5-7ef8-4dd2-b62f-7a06b6a35a67} - {2565da62-cc47-42d3-aa3e-4c9a3b2f0a7a} + {65266e55-5683-4419-9976-d381eb3a37b1} - {7bb5985d-c5ad-47ae-acd6-e35e9f095bdb} + {0217b02a-6b9b-47ee-963c-837798f77fe9} diff --git a/Data/ODBC/testsuite/TestSuite_vs160.vcxproj.filters b/Data/ODBC/testsuite/TestSuite_vs160.vcxproj.filters index 34fd3c6f2..e59733f1c 100644 --- a/Data/ODBC/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Data/ODBC/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,28 +2,28 @@ - {22a759ed-26a8-4379-9e4f-ca8209204c81} + {b4e5b39e-6fb7-4804-a8f7-a9cebd0a1685} - {18baf03f-b45b-471c-9d3f-ebc8b978bea1} + {06029882-af09-469c-b1fe-eecbfa099a4b} - {4c2012a0-d52d-4f89-b618-078cc929ff6a} + {0785c132-47d0-4eb6-ba16-e7ffbb041334} - {971b1b28-f835-4aab-89de-0de1474e1d76} + {91928e83-625d-4c82-bce5-428c1ac4981b} - {a46fd561-4196-4c2e-aba8-704e5f9c15be} + {44df0f18-94c4-4cdf-ac97-a7fa2f047b70} - {35623448-5963-40e5-a05c-c69a6cda43e7} + {57eef758-9d73-4dd4-8dfa-29fafdffc274} - {a224e65a-c791-404c-9767-756328215455} + {5147873f-6883-4ef3-8498-dac75690f01c} - {fc7d8085-883f-422c-bd7e-8399b1dc1f52} + {f3320cfe-a54b-483e-b1ac-02d825870e31} diff --git a/Data/ODBC/testsuite/TestSuite_vs170.vcxproj b/Data/ODBC/testsuite/TestSuite_vs170.vcxproj index ed3e0fff8..473b80173 100644 --- a/Data/ODBC/testsuite/TestSuite_vs170.vcxproj +++ b/Data/ODBC/testsuite/TestSuite_vs170.vcxproj @@ -1,4 +1,4 @@ - + @@ -81,7 +81,7 @@ TestSuite Win32Proj - + Application MultiByte @@ -172,63 +172,63 @@ MultiByte v143 - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + <_ProjectFileVersion>17.0.34202.158 TestSuited @@ -343,7 +343,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -352,7 +352,7 @@ true true true - + Level3 ProgramDatabase Default @@ -361,7 +361,7 @@ CppUnitd.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) true true @@ -377,7 +377,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -385,16 +385,16 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb true CppUnit.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -406,7 +406,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -415,7 +415,7 @@ true true true - + Level3 ProgramDatabase Default @@ -424,7 +424,7 @@ CppUnitmtd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) true true @@ -440,7 +440,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -448,16 +448,16 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb true CppUnitmt.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -469,7 +469,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -478,7 +478,7 @@ true true true - + Level3 ProgramDatabase Default @@ -487,7 +487,7 @@ CppUnitmdd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) true true @@ -503,7 +503,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -511,16 +511,16 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb true CppUnitmd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -532,7 +532,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -541,7 +541,7 @@ true true true - + Level3 ProgramDatabase Default @@ -566,7 +566,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -574,9 +574,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb true @@ -595,7 +595,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -604,7 +604,7 @@ true true true - + Level3 ProgramDatabase Default @@ -629,7 +629,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -637,9 +637,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb true @@ -658,7 +658,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -667,7 +667,7 @@ true true true - + Level3 ProgramDatabase Default @@ -692,7 +692,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -700,9 +700,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb true @@ -721,7 +721,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -730,7 +730,7 @@ true true true - + Level3 ProgramDatabase Default @@ -755,7 +755,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -763,9 +763,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb true @@ -784,7 +784,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -793,7 +793,7 @@ true true true - + Level3 ProgramDatabase Default @@ -818,7 +818,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -826,9 +826,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb true @@ -847,7 +847,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -856,7 +856,7 @@ true true true - + Level3 ProgramDatabase Default @@ -881,7 +881,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -889,9 +889,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb true @@ -908,16 +908,16 @@ - - - - - - - - - - + + + + + + + + + + @@ -954,6 +954,6 @@ true - - - \ No newline at end of file + + + diff --git a/Data/ODBC/testsuite/TestSuite_vs170.vcxproj.filters b/Data/ODBC/testsuite/TestSuite_vs170.vcxproj.filters index 0ebbcd2bf..8666a8bd7 100644 --- a/Data/ODBC/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Data/ODBC/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,28 +2,28 @@ - {8a8e9e4b-3f14-45d4-98df-f1f683ba97a4} + {179a380b-3910-49b1-bd76-2fa7222a96cb} - {1061d731-1756-40b8-86ba-d5d65d110c74} + {27ed4014-dc16-4c25-84cd-1598bcc2b8ab} - {4af6ca97-6cdf-48e7-9427-e92587d2e93a} + {44fb61ac-3639-400f-a868-2cfc81338e8d} - {c97fa050-eabd-4021-bade-78be7a463783} + {68ef2164-2dbb-48f6-85d9-d22e20cebaf2} - {8f9726af-5a39-413e-a3e1-2fffec81087e} + {36208f03-46c7-4ac6-9be6-c04374dfb886} - {b9e2167b-6c0b-46ba-8790-09d312b6283b} + {2a8314f2-90c2-4649-8e5e-1ea1ab61200b} - {73bfa817-5440-4fe0-82b0-d8d3d1f2b421} + {7d675381-7b81-43fd-882e-f2401eabdb9e} - {4bcc2a95-a0be-4b9f-b55b-4b970e339390} + {f178aec2-ceb4-4c7b-9d88-4cb2bdb516cc} diff --git a/Data/PostgreSQL/PostgreSQL_vs160.vcxproj b/Data/PostgreSQL/PostgreSQL_vs160.vcxproj index f7fbf3ceb..b181f8cc3 100644 --- a/Data/PostgreSQL/PostgreSQL_vs160.vcxproj +++ b/Data/PostgreSQL/PostgreSQL_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 PostgreSQL {73E19FDE-1570-488C-B3DB-72A60FADD408} PostgreSQL @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34202.158 PocoDataPostgreSQLd PocoDataPostgreSQLmdd PocoDataPostgreSQLmtd @@ -226,7 +227,7 @@ Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -259,7 +260,7 @@ true Speed true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -288,7 +289,7 @@ Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -315,7 +316,7 @@ true Speed true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -336,7 +337,7 @@ Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -363,7 +364,7 @@ true Speed true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -385,7 +386,7 @@ Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -418,7 +419,7 @@ true Speed true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -447,7 +448,7 @@ Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -474,7 +475,7 @@ true Speed true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -495,7 +496,7 @@ Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -522,7 +523,7 @@ true Speed true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj b/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj index 0cb9e6bcc..05e45d6a1 100644 --- a/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj +++ b/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TestSuite {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15} TestSuite @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34202.158 TestSuited TestSuited TestSuited @@ -234,7 +235,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -267,7 +268,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -295,7 +296,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -328,7 +329,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreaded @@ -356,7 +357,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -389,7 +390,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -417,7 +418,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -450,7 +451,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -478,7 +479,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -511,7 +512,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreaded @@ -539,7 +540,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -572,7 +573,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj.filters b/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj.filters index e729070f1..6465e68b9 100644 --- a/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,28 +2,28 @@ - {b6f3d3f5-b5b2-4c15-a131-df3ee935872b} + {40b7b518-0729-407f-aaa8-d729ff794b7c} - {6bb23149-6b7f-42b0-a901-4e61ed394129} + {74b86b6a-a134-45a7-a82a-6e689b0c15c1} - {36411492-9256-430d-aa1b-38223048a0af} + {3b2fde8a-8897-49f9-9861-e9cc8eb2804b} - {a4e22462-529f-4f30-b398-6437d7979115} + {81f98471-1fb0-4b94-aafd-9f3e92d361a2} - {52806c39-c63a-49c3-8bb4-620a54f485f0} + {51fecf06-b911-4446-b43e-20c2b50d303a} - {afb402a1-b537-4bc2-a9f0-a3d8f4137d23} + {ce4c1258-75b8-4fdb-89d0-69de8121d7d4} - {d343be75-be0c-4a63-97fe-0c999ff8cc77} + {84217615-5ac7-4350-a9cd-2ec20457397d} - {e0f9283b-6fab-42b9-bc8d-bd19829ac627} + {24455166-46c9-4af9-b9b2-05ff5c55c9c2} diff --git a/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj b/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj index 77648f4f1..cad20efca 100644 --- a/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj +++ b/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj @@ -361,7 +361,7 @@ CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) true true @@ -394,7 +394,7 @@ CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -424,7 +424,7 @@ CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) true true @@ -457,7 +457,7 @@ CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -487,7 +487,7 @@ CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) true true @@ -520,7 +520,7 @@ CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) false Console diff --git a/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj.filters b/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj.filters index 0340be8f0..5303c4ea6 100644 --- a/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,28 +2,28 @@ - {40bc8f7a-43ff-4852-ace5-60ec9cddbb3a} + {1426fa27-35d9-4513-9f66-3537ff2d94b1} - {748dd641-bc6f-4b96-975a-e9cb2abea6ce} + {e4285a23-6fb3-43b1-889a-f81db867e93f} - {5ae15642-48c5-4e25-a82e-37c0a6e23b78} + {d3c8e624-61b1-4faa-af37-a0f9fd08317a} - {1ba54474-f1cf-4aa9-8dae-c7e8cfac25fd} + {27f4b44e-ac77-4131-837e-5af866de11f0} - {49e48454-e8dd-4e09-88a9-aad31021d102} + {1a05011d-353f-46d1-9945-9b5fe29aa160} - {92138048-f8fc-45b2-ae37-1a4f2ad8458e} + {d0b4c31a-b0ce-497c-bf78-831d6886c8f7} - {bad834c6-562c-490d-9d9f-f9a237980777} + {37f759f0-f214-4e79-a169-5636af2ddf90} - {94ffbbfa-e25a-4ca2-a364-eb3c45caf208} + {c54bd706-4bc9-4fa0-b5eb-8a8c12540b09} diff --git a/Data/SQLite/SQLite_vs160.vcxproj.filters b/Data/SQLite/SQLite_vs160.vcxproj.filters index 1a20ff92d..8e7f78c26 100644 --- a/Data/SQLite/SQLite_vs160.vcxproj.filters +++ b/Data/SQLite/SQLite_vs160.vcxproj.filters @@ -2,22 +2,22 @@ - {6c840d0b-ed66-410e-a421-0f2c9c9e9a7d} + {a9c4986e-093e-45c6-9d8e-bb77226b4b7b} - {8e9c497e-a61d-4203-85f0-4ef7108f6d7e} + {0e4f061e-d880-4496-bb90-ea6ef99d7b4d} - {911ef95b-e39d-41c6-9a73-5aaa4d5c7891} + {aa4f801f-fcaf-44b5-bcb0-3516ffe084ce} - {0301236d-4aae-44a0-866f-a8f712263d84} + {54e5ea14-8781-4939-a457-4457a136be3a} - {da5de5e7-1979-4db2-b976-478d62ba2060} + {975d7fb2-b6c5-46c2-8f4f-56629285cfc6} - {8e8c110a-c008-4b96-972d-99bc6c999456} + {71124ce4-c134-4836-a5e8-ecdf3e3a5bfa} diff --git a/Data/SQLite/SQLite_vs170.vcxproj.filters b/Data/SQLite/SQLite_vs170.vcxproj.filters index f7614bfd6..7dab32536 100644 --- a/Data/SQLite/SQLite_vs170.vcxproj.filters +++ b/Data/SQLite/SQLite_vs170.vcxproj.filters @@ -2,22 +2,22 @@ - {0f97d9c5-511d-4ad7-a417-277f1f38d433} + {023fba4b-4ebd-4098-bfd0-95569b89efb9} - {28c6bf27-daea-4c82-a93e-8bfc510ed367} + {9a59ce73-0d00-4438-9ea1-9014d62bf834} - {98acac2a-fc74-41d6-9658-2beb5cccb3fc} + {2a5c5030-0ab3-4ac1-8699-3cc1d228047b} - {e689daa1-4175-496f-a5ca-487b96adaa2e} + {34f21c3d-d771-458f-9b6f-90a3a44bb448} - {f0771742-8255-465f-b48b-46534ddb0822} + {67a323f5-6b84-4db0-9098-087855fe9ac2} - {fbf0afec-95ea-4501-bb4b-2327a2e74670} + {aa7d787e-3b84-43df-9232-8e399089ee3e} diff --git a/Data/SQLite/testsuite/TestSuite_vs160.vcxproj.filters b/Data/SQLite/testsuite/TestSuite_vs160.vcxproj.filters index f895c07c5..a3c185284 100644 --- a/Data/SQLite/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Data/SQLite/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,28 +2,28 @@ - {53c09e90-9b56-4deb-aaf8-19821bc8ebc5} + {577e2c77-7603-417a-91b8-b65480a47cff} - {5fa58902-2934-4eda-82c0-72bc5fed82ae} + {93630c8c-e68d-457c-8383-f709db929d93} - {c8cf4cb9-c5e1-4c6d-b3f6-811a67f2441f} + {9989beae-c400-4843-8f3a-52ab7b928d0c} - {ec73dddc-e297-4eae-82f4-8834666e78ab} + {313dbe1c-d8df-4c5b-9abb-ab9e28300048} - {1e29bb6f-b8cc-43a5-9300-7c61826f99c3} + {9b336120-a676-4408-b349-b2e7cb4f4e4b} - {7598d309-7d05-46b9-b51e-33c9f5e77c50} + {ba9a1b30-2f4d-4f92-8839-83d69be829d9} - {39759e95-cb8d-43d9-a134-934836253600} + {0be222c2-f6b0-4ff0-9f79-6f7bc32e926a} - {1cce9aed-17a3-46b3-8304-10d803b2373e} + {36ce391f-e038-4ac9-b71f-54d0c459d468} diff --git a/Data/SQLite/testsuite/TestSuite_vs170.vcxproj b/Data/SQLite/testsuite/TestSuite_vs170.vcxproj index 5d4168408..7d23cab24 100644 --- a/Data/SQLite/testsuite/TestSuite_vs170.vcxproj +++ b/Data/SQLite/testsuite/TestSuite_vs170.vcxproj @@ -361,7 +361,7 @@ CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) true true @@ -394,7 +394,7 @@ CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -424,7 +424,7 @@ CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) true true @@ -457,7 +457,7 @@ CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -487,7 +487,7 @@ CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) true true @@ -520,7 +520,7 @@ CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) false Console diff --git a/Data/SQLite/testsuite/TestSuite_vs170.vcxproj.filters b/Data/SQLite/testsuite/TestSuite_vs170.vcxproj.filters index 5ba14b6fc..f6cfb49a2 100644 --- a/Data/SQLite/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Data/SQLite/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,28 +2,28 @@ - {3212c920-2f2f-4a45-90d1-a015c9249f4c} + {dd4cfc76-874b-4382-be44-81a295298cb6} - {fbcc075b-24c8-4adb-a855-714a83de0d95} + {c5923469-368d-4bcb-8f28-5705b18b49c9} - {95071351-fdb1-4abd-9f90-d8ed53a4b121} + {51dcfbe6-d547-4150-a965-ed9d7f75e266} - {e7c8c73d-9ce5-4d39-af7b-5e9137e2d341} + {8b666d33-bda1-420e-b882-4b339c8f2214} - {6ade71f3-ab22-408a-aa9b-dd9dd505a4a2} + {3e7c0757-51e8-47bc-a907-20f1e465474d} - {2dbcfeda-f710-451f-83be-a42e16e2ea99} + {0936e3ec-1613-4a78-ba4d-7f8ea3525526} - {c97cc6a2-5f40-4f30-b815-7f723f3a387b} + {c40d7bc0-a933-4bd2-9e18-f53925bbbb40} - {dc94f6c5-b6f8-462d-a8e9-6cf80ed5e205} + {018c2803-1962-4f36-9e10-4e1ea6e9afad} diff --git a/Data/samples/Binding/Binding_vs160.vcxproj.filters b/Data/samples/Binding/Binding_vs160.vcxproj.filters index 050744c40..00c8052ed 100644 --- a/Data/samples/Binding/Binding_vs160.vcxproj.filters +++ b/Data/samples/Binding/Binding_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {6be20fef-8856-47c8-a8b1-17fd30ab14d4} + {7a189050-2048-4632-ba6c-46b07a479ed3} - {596a7322-f960-4b6f-8f15-4cf616e140bc} + {e103ec6c-2a14-4472-a070-ced6e1be4255} diff --git a/Data/samples/Binding/Binding_vs170.vcxproj b/Data/samples/Binding/Binding_vs170.vcxproj index cd160382b..5c0b2354b 100644 --- a/Data/samples/Binding/Binding_vs170.vcxproj +++ b/Data/samples/Binding/Binding_vs170.vcxproj @@ -1,6 +1,10 @@ - - + + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,12 +75,13 @@ + 17.0 Binding {0F0DF069-83D1-378D-A949-8DF9A883B627} Binding Win32Proj - + Application MultiByte @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -117,47 +172,71 @@ MultiByte v143 - - + + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34202.158 + Bindingd + Bindingd + Bindingd + Binding + Binding + Binding Bindingd Bindingd Bindingd @@ -171,6 +250,36 @@ Binding Binding + + binA64\ + objA64\Binding\$(Configuration)\ + true + + + binA64\ + objA64\Binding\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\Binding\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\Binding\$(Configuration)\ + false + + + binA64\static_md\ + objA64\Binding\$(Configuration)\ + true + + + binA64\static_md\ + objA64\Binding\$(Configuration)\ + false + bin\ obj\Binding\$(Configuration)\ @@ -231,10 +340,10 @@ obj64\Binding\$(Configuration)\ false - + Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -243,10 +352,200 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;%(AdditionalDependencies) + binA64\Binding.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\Bindingd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\Binding.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\Bindingd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb true @@ -255,7 +554,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Bindingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -267,7 +566,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -275,10 +574,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -295,7 +595,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -304,10 +604,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -316,7 +617,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Bindingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -328,7 +629,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -336,10 +637,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -356,7 +658,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -365,10 +667,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -377,7 +680,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Bindingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -389,7 +692,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -397,10 +700,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -417,7 +721,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -426,10 +730,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -438,7 +743,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Bindingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -450,7 +755,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -458,10 +763,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -478,7 +784,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -487,10 +793,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -499,7 +806,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Bindingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -511,7 +818,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -519,10 +826,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -539,7 +847,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -548,10 +856,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -560,7 +869,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Bindingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -572,7 +881,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -580,10 +889,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -602,6 +912,6 @@ true - - - \ No newline at end of file + + + diff --git a/Data/samples/Binding/Binding_vs170.vcxproj.filters b/Data/samples/Binding/Binding_vs170.vcxproj.filters index 590e05545..bb893a59f 100644 --- a/Data/samples/Binding/Binding_vs170.vcxproj.filters +++ b/Data/samples/Binding/Binding_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {2b285cb8-cbc3-4bd7-a8c8-93d40e7f9f3c} + {e8e76134-6346-40e9-bce4-baf24c7610fb} - {100c26cc-8717-4358-82bc-fffdb2b90f9b} + {9a993148-b7f8-48c8-92b8-14a209548407} diff --git a/Data/samples/RecordSet/RecordSet_vs160.vcxproj.filters b/Data/samples/RecordSet/RecordSet_vs160.vcxproj.filters index 57d8e4f5e..dddae643b 100644 --- a/Data/samples/RecordSet/RecordSet_vs160.vcxproj.filters +++ b/Data/samples/RecordSet/RecordSet_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {a2633deb-2af8-46ce-a0f9-c2d880e077fd} + {c6b24ce7-3335-43c1-bbe3-d7f06940eb31} - {3262c8ac-33d1-462c-aab8-d112306ce791} + {2750a7d3-75d7-423d-98cb-602f1e544742} diff --git a/Data/samples/RecordSet/RecordSet_vs170.vcxproj b/Data/samples/RecordSet/RecordSet_vs170.vcxproj index b457eb095..3426fb812 100644 --- a/Data/samples/RecordSet/RecordSet_vs170.vcxproj +++ b/Data/samples/RecordSet/RecordSet_vs170.vcxproj @@ -1,6 +1,10 @@ - - + + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,12 +75,13 @@ + 17.0 RecordSet {FEE20DCE-B9E3-30AB-A40C-B6A324997328} RecordSet Win32Proj - + Application MultiByte @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -117,47 +172,71 @@ MultiByte v143 - - + + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34202.158 + RecordSetd + RecordSetd + RecordSetd + RecordSet + RecordSet + RecordSet RecordSetd RecordSetd RecordSetd @@ -171,6 +250,36 @@ RecordSet RecordSet + + binA64\ + objA64\RecordSet\$(Configuration)\ + true + + + binA64\ + objA64\RecordSet\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\RecordSet\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\RecordSet\$(Configuration)\ + false + + + binA64\static_md\ + objA64\RecordSet\$(Configuration)\ + true + + + binA64\static_md\ + objA64\RecordSet\$(Configuration)\ + false + bin\ obj\RecordSet\$(Configuration)\ @@ -231,10 +340,10 @@ obj64\RecordSet\$(Configuration)\ false - + Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -243,10 +352,200 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;%(AdditionalDependencies) + binA64\RecordSet.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\RecordSetd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\RecordSet.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\RecordSetd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb true @@ -255,7 +554,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\RecordSetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -267,7 +566,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -275,10 +574,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -295,7 +595,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -304,10 +604,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -316,7 +617,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\RecordSetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -328,7 +629,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -336,10 +637,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -356,7 +658,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -365,10 +667,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -377,7 +680,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\RecordSetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -389,7 +692,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -397,10 +700,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -417,7 +721,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -426,10 +730,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -438,7 +743,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\RecordSetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -450,7 +755,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -458,10 +763,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -478,7 +784,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -487,10 +793,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -499,7 +806,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\RecordSetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -511,7 +818,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -519,10 +826,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -539,7 +847,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -548,10 +856,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -560,7 +869,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\RecordSetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -572,7 +881,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -580,10 +889,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -602,6 +912,6 @@ true - - - \ No newline at end of file + + + diff --git a/Data/samples/RecordSet/RecordSet_vs170.vcxproj.filters b/Data/samples/RecordSet/RecordSet_vs170.vcxproj.filters index d5198436b..930c29c55 100644 --- a/Data/samples/RecordSet/RecordSet_vs170.vcxproj.filters +++ b/Data/samples/RecordSet/RecordSet_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {b7079871-ec08-445f-ba4d-8d42631a5532} + {5c9585a2-5f0e-4e0d-a215-c5b4e2598b02} - {7b43c72e-1ce9-4bd1-9c11-75c8da3db9d8} + {4114cf23-5bc2-4f39-83cd-dab67726573b} diff --git a/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj.filters b/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj.filters index 5e2cd2a58..9840118b6 100644 --- a/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj.filters +++ b/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {b9d6aa62-3694-4755-b00c-1b809e0a8cf6} + {376dbfba-c2f2-4580-b415-12d8f0d2be28} - {386743cd-a052-4ed7-b72c-ae801934da44} + {f57ec78e-c922-47ba-9d73-3fa18a9612fe} diff --git a/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj b/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj index f79a295df..da03c0b98 100644 --- a/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj +++ b/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj @@ -1,6 +1,10 @@ - - + + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,12 +75,13 @@ + 17.0 RowFormatter {133C62C7-3301-3F43-9ABF-14DF094A042F} RowFormatter Win32Proj - + Application MultiByte @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -117,47 +172,71 @@ MultiByte v143 - - + + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34202.158 + RowFormatterd + RowFormatterd + RowFormatterd + RowFormatter + RowFormatter + RowFormatter RowFormatterd RowFormatterd RowFormatterd @@ -171,6 +250,36 @@ RowFormatter RowFormatter + + binA64\ + objA64\RowFormatter\$(Configuration)\ + true + + + binA64\ + objA64\RowFormatter\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\RowFormatter\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\RowFormatter\$(Configuration)\ + false + + + binA64\static_md\ + objA64\RowFormatter\$(Configuration)\ + true + + + binA64\static_md\ + objA64\RowFormatter\$(Configuration)\ + false + bin\ obj\RowFormatter\$(Configuration)\ @@ -231,10 +340,10 @@ obj64\RowFormatter\$(Configuration)\ false - + Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -243,10 +352,200 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;%(AdditionalDependencies) + binA64\RowFormatter.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\RowFormatterd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\RowFormatter.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\RowFormatterd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb true @@ -255,7 +554,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\RowFormatterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -267,7 +566,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -275,10 +574,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -295,7 +595,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -304,10 +604,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -316,7 +617,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\RowFormatterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -328,7 +629,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -336,10 +637,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -356,7 +658,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -365,10 +667,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -377,7 +680,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\RowFormatterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -389,7 +692,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -397,10 +700,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -417,7 +721,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -426,10 +730,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -438,7 +743,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\RowFormatterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -450,7 +755,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -458,10 +763,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -478,7 +784,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -487,10 +793,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -499,7 +806,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\RowFormatterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -511,7 +818,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -519,10 +826,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -539,7 +847,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -548,10 +856,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -560,7 +869,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\RowFormatterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -572,7 +881,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -580,10 +889,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -602,6 +912,6 @@ true - - - \ No newline at end of file + + + diff --git a/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj.filters b/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj.filters index daff1f957..30d00b894 100644 --- a/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj.filters +++ b/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {bca53cc2-4da3-46c4-b1a9-16540962b7ee} + {55d27c6d-34e3-48c9-9dab-30f19b4eb2db} - {51999dcf-059f-4193-bbc2-8ee1651c3e7b} + {a2662e75-309d-48b4-ac0f-6b20f70c63e7} diff --git a/Data/samples/Tuple/Tuple_vs160.vcxproj.filters b/Data/samples/Tuple/Tuple_vs160.vcxproj.filters index 2e24e1705..4d056f77d 100644 --- a/Data/samples/Tuple/Tuple_vs160.vcxproj.filters +++ b/Data/samples/Tuple/Tuple_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {b5101158-cfe5-4fba-a045-69b5f17da5c3} + {daced653-361b-4687-9b08-af29969dc023} - {2c118573-3105-485e-8d30-be4f02ee79e4} + {3f70b07e-c518-4105-b9d7-5c2d93c622ea} diff --git a/Data/samples/Tuple/Tuple_vs170.vcxproj b/Data/samples/Tuple/Tuple_vs170.vcxproj index bef0cccdc..ead6b92b4 100644 --- a/Data/samples/Tuple/Tuple_vs170.vcxproj +++ b/Data/samples/Tuple/Tuple_vs170.vcxproj @@ -1,6 +1,10 @@ - - + + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,12 +75,13 @@ + 17.0 Tuple {F143DA5A-221A-3737-BCBA-F5BFD977038F} Tuple Win32Proj - + Application MultiByte @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -117,47 +172,71 @@ MultiByte v143 - - + + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34202.158 + Tupled + Tupled + Tupled + Tuple + Tuple + Tuple Tupled Tupled Tupled @@ -171,6 +250,36 @@ Tuple Tuple + + binA64\ + objA64\Tuple\$(Configuration)\ + true + + + binA64\ + objA64\Tuple\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\Tuple\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\Tuple\$(Configuration)\ + false + + + binA64\static_md\ + objA64\Tuple\$(Configuration)\ + true + + + binA64\static_md\ + objA64\Tuple\$(Configuration)\ + false + bin\ obj\Tuple\$(Configuration)\ @@ -231,10 +340,10 @@ obj64\Tuple\$(Configuration)\ false - + Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -243,10 +352,200 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;%(AdditionalDependencies) + binA64\Tuple.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\Tupled.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\Tuple.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\Tupled.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb true @@ -255,7 +554,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Tupled.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -267,7 +566,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -275,10 +574,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -295,7 +595,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -304,10 +604,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -316,7 +617,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Tupled.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -328,7 +629,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -336,10 +637,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -356,7 +658,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -365,10 +667,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -377,7 +680,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Tupled.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -389,7 +692,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -397,10 +700,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -417,7 +721,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -426,10 +730,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -438,7 +743,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Tupled.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -450,7 +755,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -458,10 +763,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -478,7 +784,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -487,10 +793,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -499,7 +806,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Tupled.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -511,7 +818,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -519,10 +826,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -539,7 +847,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -548,10 +856,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -560,7 +869,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Tupled.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -572,7 +881,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -580,10 +889,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -602,6 +912,6 @@ true - - - \ No newline at end of file + + + diff --git a/Data/samples/Tuple/Tuple_vs170.vcxproj.filters b/Data/samples/Tuple/Tuple_vs170.vcxproj.filters index 9fd454054..90cbfb8d5 100644 --- a/Data/samples/Tuple/Tuple_vs170.vcxproj.filters +++ b/Data/samples/Tuple/Tuple_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {27f7e3fb-3e06-480f-8609-df8524d33f36} + {dac0e7cb-b6c6-48ec-a4fe-dfc68586a8a8} - {14f0853d-1182-4f5f-be21-2cb123e7ad2a} + {d0910af4-6934-4679-a1d5-06b32761ccbb} diff --git a/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj.filters b/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj.filters index ad451c847..9740ce41c 100644 --- a/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj.filters +++ b/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {02dbb876-36e1-4bcf-896a-726a0954ae2d} + {69d64388-00f7-43b5-b051-7ae49f6d85d0} - {7898bceb-09b3-41ee-91b1-2745ac74f96e} + {b50f674a-512d-41ff-8e82-2523bedf9781} diff --git a/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj b/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj index 7f2abfcb7..9b9e9a772 100644 --- a/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj +++ b/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj @@ -1,6 +1,10 @@ - - + + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,12 +75,13 @@ + 17.0 TypeHandler {65A12348-CA20-324E-9F5E-7F82753C2C65} TypeHandler Win32Proj - + Application MultiByte @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -117,47 +172,71 @@ MultiByte v143 - - + + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34202.158 + TypeHandlerd + TypeHandlerd + TypeHandlerd + TypeHandler + TypeHandler + TypeHandler TypeHandlerd TypeHandlerd TypeHandlerd @@ -171,6 +250,36 @@ TypeHandler TypeHandler + + binA64\ + objA64\TypeHandler\$(Configuration)\ + true + + + binA64\ + objA64\TypeHandler\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\TypeHandler\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\TypeHandler\$(Configuration)\ + false + + + binA64\static_md\ + objA64\TypeHandler\$(Configuration)\ + true + + + binA64\static_md\ + objA64\TypeHandler\$(Configuration)\ + false + bin\ obj\TypeHandler\$(Configuration)\ @@ -231,10 +340,10 @@ obj64\TypeHandler\$(Configuration)\ false - + Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -243,10 +352,200 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + true + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\TypeHandler.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\TypeHandlerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\TypeHandler.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\TypeHandlerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb true @@ -255,7 +554,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TypeHandlerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -267,7 +566,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -275,10 +574,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -295,7 +595,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -304,10 +604,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -316,7 +617,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TypeHandlerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -328,7 +629,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -336,10 +637,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -356,7 +658,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -365,10 +667,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -377,7 +680,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TypeHandlerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -389,7 +692,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -397,10 +700,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -417,7 +721,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -426,10 +730,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -438,7 +743,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TypeHandlerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -450,7 +755,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -458,10 +763,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -478,7 +784,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -487,10 +793,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -499,7 +806,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TypeHandlerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -511,7 +818,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -519,10 +826,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -539,7 +847,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -548,10 +856,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -560,7 +869,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TypeHandlerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -572,7 +881,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -580,10 +889,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -602,6 +912,6 @@ true - - - \ No newline at end of file + + + diff --git a/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj.filters b/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj.filters index c33cee3e6..b9aed831b 100644 --- a/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj.filters +++ b/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {3a0c64d6-ba9f-414b-846c-7f1fc1d56838} + {c8572373-9da3-41da-ae2d-593a2d477636} - {6b088f6a-1ff6-4c80-a364-726e5eaec8f9} + {c2309f1a-6646-481b-9043-eff95df10be7} diff --git a/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj.filters b/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj.filters index d2688d4ac..2b3f977dc 100644 --- a/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj.filters +++ b/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {91bd5b6a-0e13-4e60-981a-ad0e6c69eb71} + {f529f90f-8157-4358-ba52-bd499007d7dd} - {116b5d1b-034d-497b-b3ea-0ddedb47343d} + {394800ac-0f2f-46d6-9e16-06ddd9a9072a} diff --git a/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj b/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj index f60166a4b..3f55b0caf 100644 --- a/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj +++ b/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj @@ -1,6 +1,10 @@ - - + + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,12 +75,13 @@ + 17.0 WebNotifier {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754} WebNotifier Win32Proj - + Application MultiByte @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -117,47 +172,71 @@ MultiByte v143 - - + + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34202.158 + WebNotifierd + WebNotifierd + WebNotifierd + WebNotifier + WebNotifier + WebNotifier WebNotifierd WebNotifierd WebNotifierd @@ -171,6 +250,36 @@ WebNotifier WebNotifier + + binA64\ + objA64\WebNotifier\$(Configuration)\ + true + + + binA64\ + objA64\WebNotifier\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\WebNotifier\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\WebNotifier\$(Configuration)\ + false + + + binA64\static_md\ + objA64\WebNotifier\$(Configuration)\ + true + + + binA64\static_md\ + objA64\WebNotifier\$(Configuration)\ + false + bin\ obj\WebNotifier\$(Configuration)\ @@ -231,10 +340,10 @@ obj64\WebNotifier\$(Configuration)\ false - + Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -243,10 +352,200 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + true + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\WebNotifier.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\WebNotifierd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\WebNotifier.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\WebNotifierd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb true @@ -255,7 +554,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\WebNotifierd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -267,7 +566,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -275,10 +574,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -295,7 +595,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -304,10 +604,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -316,7 +617,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\WebNotifierd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -328,7 +629,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -336,10 +637,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -356,7 +658,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -365,10 +667,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -377,7 +680,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\WebNotifierd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -389,7 +692,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -397,10 +700,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -417,7 +721,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -426,10 +730,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -438,7 +743,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\WebNotifierd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -450,7 +755,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -458,10 +763,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -478,7 +784,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -487,10 +793,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -499,7 +806,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\WebNotifierd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -511,7 +818,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -519,10 +826,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -539,7 +847,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -548,10 +856,11 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true @@ -560,7 +869,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\WebNotifierd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -572,7 +881,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -580,10 +889,11 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb true @@ -602,6 +912,6 @@ true - - - \ No newline at end of file + + + diff --git a/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj.filters b/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj.filters index 8deba4d82..1f7fbe255 100644 --- a/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj.filters +++ b/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {5e520d47-5b69-4e5b-b97c-c81d1164fbc2} + {574dcbbb-642e-4307-b0da-189fb24bc04d} - {2415b6a7-656d-40e5-a281-68bb18200ebd} + {a73ef0f0-269a-4ac8-9988-d72517e63f55} diff --git a/Data/src/sql-parser/src/sqlparser_win.h b/Data/src/sql-parser/src/sqlparser_win.h index e959cf8cc..bfb9bd6ac 100644 --- a/Data/src/sql-parser/src/sqlparser_win.h +++ b/Data/src/sql-parser/src/sqlparser_win.h @@ -2,10 +2,20 @@ #define SQLPARSER_SQLPARSER_WIN_H -#if defined(_WIN32) - #define strncasecmp _strnicmp - #define strcasecmp _stricmp - #if defined(_USRDLL) +#if (__cplusplus >= 201703L) + #if __has_include("Poco/Data/Data.h") + #include "Poco/Data/Data.h" + #endif +#endif + + +#ifdef Data_API + #define SQLParser_API Data_API + #ifdef Data_EXPORTS + #define SQLParserEXPORTS + #endif +#else + #if defined(_DLL) || defined(_USRDLL) #if defined(SQLParser_EXPORTS) #define SQLParser_API __declspec(dllexport) #else @@ -15,6 +25,12 @@ #endif +#if defined(_WIN32) + #define strncasecmp _strnicmp + #define strcasecmp _stricmp +#endif + + #if !defined(SQLParser_API) #if defined (__GNUC__) && (__GNUC__ >= 4) #define SQLParser_API __attribute__ ((visibility ("default"))) diff --git a/Data/testsuite/CMakeLists.txt b/Data/testsuite/CMakeLists.txt index a6e0a9b87..c368fc77e 100644 --- a/Data/testsuite/CMakeLists.txt +++ b/Data/testsuite/CMakeLists.txt @@ -30,6 +30,6 @@ else() ) set_tests_properties(Data PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) endif() -target_link_libraries(Data-testrunner PUBLIC Poco::Data CppUnit) +target_link_libraries(Data-testrunner PUBLIC Poco::DataTest Poco::Data CppUnit) add_subdirectory(DataTest) diff --git a/Data/testsuite/DataTest/DataTest.progen b/Data/testsuite/DataTest/DataTest.progen index e8966f337..a66f1f1a9 100644 --- a/Data/testsuite/DataTest/DataTest.progen +++ b/Data/testsuite/DataTest/DataTest.progen @@ -16,6 +16,5 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS;SQLParser_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus -vc.project.compiler.additionalOptions.Win32.x64 = /bigobj /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.solution.create = false diff --git a/Data/testsuite/DataTest/DataTest_vs160.vcxproj b/Data/testsuite/DataTest/DataTest_vs160.vcxproj index 87a846dfd..1b1fe654c 100644 --- a/Data/testsuite/DataTest/DataTest_vs160.vcxproj +++ b/Data/testsuite/DataTest/DataTest_vs160.vcxproj @@ -240,7 +240,7 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -273,7 +273,7 @@ Level3 Default - /Zc:__cplusplus %(AdditionalOptions) + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -305,7 +305,7 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -331,7 +331,7 @@ Level3 Default - /Zc:__cplusplus %(AdditionalOptions) + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -355,7 +355,7 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus %(AdditionalOptions) + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -382,7 +382,7 @@ Level3 Default - /Zc:__cplusplus %(AdditionalOptions) + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -405,7 +405,7 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -438,7 +438,7 @@ Level3 Default - /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -470,7 +470,7 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -496,7 +496,7 @@ Level3 Default - /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -520,7 +520,7 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -546,7 +546,7 @@ Level3 Default - /Zc:__cplusplus%3b/bigobj /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true diff --git a/Data/testsuite/DataTest/DataTest_vs160.vcxproj.filters b/Data/testsuite/DataTest/DataTest_vs160.vcxproj.filters index 960c53a77..ff3bdca00 100644 --- a/Data/testsuite/DataTest/DataTest_vs160.vcxproj.filters +++ b/Data/testsuite/DataTest/DataTest_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {9ed3013f-fb42-4ea8-b9a2-57ac9aea5410} + {500cef7c-16d5-46fb-97ec-01057efdb45c} - {ee8a15fa-6a19-46f9-83cf-7ca7689668e1} + {ea370452-c471-484e-953b-6d4f1802114c} diff --git a/Data/testsuite/DataTest/DataTest_vs170.vcxproj b/Data/testsuite/DataTest/DataTest_vs170.vcxproj index eda6be045..e485ed818 100644 --- a/Data/testsuite/DataTest/DataTest_vs170.vcxproj +++ b/Data/testsuite/DataTest/DataTest_vs170.vcxproj @@ -1,4 +1,4 @@ - + @@ -77,11 +77,11 @@ 17.0 DataTest - {7F518AB9-9D03-4769-9464-09D84F40A91A} + {240E83C3-368D-11DB-9FBC-00123FC423B5} DataTest Win32Proj - + StaticLibrary MultiByte @@ -172,63 +172,63 @@ MultiByte v143 - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + <_ProjectFileVersion>17.0.34202.158 PocoDataTestA64d @@ -340,7 +340,7 @@ true true true - + Level3 ProgramDatabase Default @@ -374,9 +374,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus /std:c++17 %(AdditionalOptions) @@ -406,7 +406,7 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase @@ -433,9 +433,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus /std:c++17 %(AdditionalOptions) @@ -457,7 +457,7 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase @@ -484,9 +484,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus /std:c++17 %(AdditionalOptions) @@ -508,7 +508,7 @@ true true true - + Level3 ProgramDatabase Default @@ -542,9 +542,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus /std:c++17 %(AdditionalOptions) @@ -574,7 +574,7 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase @@ -601,9 +601,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus /std:c++17 %(AdditionalOptions) @@ -625,7 +625,7 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase @@ -652,10 +652,10 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 - + Default /Zc:__cplusplus /std:c++17 %(AdditionalOptions) true @@ -676,7 +676,7 @@ true true true - + Level3 ProgramDatabase Default @@ -710,9 +710,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus /std:c++17 %(AdditionalOptions) @@ -742,7 +742,7 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase @@ -769,9 +769,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus /std:c++17 %(AdditionalOptions) @@ -793,7 +793,7 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase @@ -820,9 +820,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus /std:c++17 %(AdditionalOptions) @@ -833,11 +833,11 @@ - + - - + + @@ -860,6 +860,6 @@ true - - - \ No newline at end of file + + + diff --git a/Data/testsuite/DataTest/DataTest_vs170.vcxproj.filters b/Data/testsuite/DataTest/DataTest_vs170.vcxproj.filters index 1465809d0..b51cabb96 100644 --- a/Data/testsuite/DataTest/DataTest_vs170.vcxproj.filters +++ b/Data/testsuite/DataTest/DataTest_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {d23df068-ff7c-40b6-815e-f5a00e85c352} + {2713314a-e003-4c79-92c3-7d9b8e7203f9} - {01fdedb2-0713-4240-8060-3d4eb4f6dcfb} + {de6b2c36-307e-4d6c-8e6d-d945183e3f0c} diff --git a/Data/testsuite/TestSuite_vs160.vcxproj.filters b/Data/testsuite/TestSuite_vs160.vcxproj.filters index 1e9696fed..8f84e6038 100644 --- a/Data/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Data/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,55 +2,55 @@ - {2110cb77-2dd9-4fc9-b23c-7ffa01780b10} + {efd284a0-836e-4ec5-839a-b0ce012b452c} - {7e659760-f611-4c4c-aa87-ab2735f50f1f} + {9d2c02b3-1a4c-4f82-b246-094be9675fb7} - {8b4dde88-f590-4fd5-a3e2-c96b5bad09d7} + {7419925d-2910-46ef-b66d-75be7083f76e} - {89ce8418-6b41-4fb6-af39-5b0f063ff8f9} + {7de21299-9fde-466e-9ce5-07fd9eca02b6} - {374575a8-73d9-472d-92a1-5952e25976e1} + {307e2d27-9ce4-4917-8065-d6b291d81880} - {3ad16fb0-d990-496a-a475-c7f8f25cdd76} + {f17dd1ac-48fc-4a78-974f-0617bb547a84} - {bd48e2d8-fa49-47cf-92ee-aaba8c3865dc} + {4500fec7-05ca-4079-b954-0fc6b926bf80} - {f27a4252-9660-4011-a8fd-c3f11a8a829d} + {0afe4a91-71c0-4750-a29f-f8aee0a2ed3d} - {71478dc8-bf46-499c-a9d7-66f198e19bb0} + {408adb2a-a0ba-406c-af0f-ba35c79de465} - {95a357b7-739e-42ce-8e75-a84fb4a76224} + {6a11898f-7e83-4885-91f7-b8666ec0bfae} - {0a3e2b11-5212-435f-b32d-d18ae3216a5f} + {4c3df67f-20f5-41cd-a9a5-69838ddb5623} - {06592de6-8082-4b23-b3d0-f4322f4eb826} + {bda62c82-7799-4e32-aa59-794187c9254c} - {629e12d4-340b-4da8-9606-8477affad287} + {569ea43a-87d8-4662-87f9-e86ecdd62c85} - {64fc97a7-e16f-4c74-95dd-9bfa176d9fe3} + {16747406-0a06-4a3e-be49-740d0436d7b6} - {02bd5950-0a8d-43a0-a9c4-a125d402cc08} + {79a12ac6-a42c-44a9-9cce-5863936607d5} - {91d4e4e3-c6c6-4c93-9dba-3d996c4c9274} + {07db900c-1cf4-45af-8977-fa95c862e73f} - {68eb2f3e-441a-484a-8dec-aa91e5129f40} + {6037cc1b-d9ba-465c-9b57-fef469e15a68} diff --git a/Data/testsuite/TestSuite_vs170.vcxproj b/Data/testsuite/TestSuite_vs170.vcxproj index 5c8ef8ecc..d8a07a82b 100644 --- a/Data/testsuite/TestSuite_vs170.vcxproj +++ b/Data/testsuite/TestSuite_vs170.vcxproj @@ -362,7 +362,7 @@ CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true @@ -396,7 +396,7 @@ CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -427,7 +427,7 @@ CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true @@ -461,7 +461,7 @@ CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -492,7 +492,7 @@ CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true @@ -526,7 +526,7 @@ CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console diff --git a/Data/testsuite/TestSuite_vs170.vcxproj.filters b/Data/testsuite/TestSuite_vs170.vcxproj.filters index b37165ae7..ca13c060b 100644 --- a/Data/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Data/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,55 +2,55 @@ - {93cac614-b3c1-438b-a5ac-0a1cba850cee} + {bfb939fb-2a9d-4da7-b6ad-e04d4a293d2f} - {57be5187-e2d3-4978-92f7-b99d633ac676} + {fbff398e-274d-4f64-b41f-65f7a7fc7c2c} - {94a457fb-07cf-4409-a6c3-fc25991942c5} + {83f79846-18d7-4869-ab18-f9a220d7e22c} - {0a15584c-f4f5-4eba-8928-04828aed084a} + {39b1a2ac-3b5c-40b5-89aa-05484f2b26b0} - {baa428fd-2851-4232-932f-0bcba22726b5} + {1b5be6d4-1d17-4ef9-a524-6e891779d7e7} - {32ac6e17-51c6-466c-a66e-9c7aa8835bba} + {b771eb76-d75b-468b-b09c-ea802323ba47} - {a13744c0-ae5d-4f46-a3d9-37612a8ab104} + {2a5cd233-fc4d-42d5-94ec-073698b29255} - {24237165-5f13-4f4b-8190-c400f36f3e29} + {9729b7a6-eefe-4063-8711-adeb071c8a47} - {d43bd6db-bc17-457d-a860-961aa6ab5185} + {2eb01c5a-4b7e-4595-aa6d-6224e546f35c} - {141fe152-46ab-4318-be77-0b3020b5164f} + {5cb5afec-f610-4725-b20b-1a5f9abd7290} - {300408b2-5dcb-4227-b3d1-b85b02f6e82d} + {e0bd3e5b-1fcc-4476-8bbf-35c4a1c956e9} - {990865e3-1a79-4423-87b9-3f137135ba24} + {e5e2a5fe-1877-4def-ae55-49c843216fa7} - {54250ddc-469c-4054-b8ac-eca071c58877} + {3e80b53f-9999-4bdb-a94a-712c0ff85c93} - {367d6638-017f-4ac1-ad6d-9865d5a2f585} + {a20048d6-a82e-464c-84d2-e605d0c8bdf3} - {a205190a-b349-4421-a585-93939a5791c1} + {f5928423-1e7c-4fdb-a4d4-ce8282e4586e} - {e005576b-7c3c-4b05-a7d8-6043b8425c81} + {3b9ede37-08a8-41e5-b770-c602e121d367} - {f2decc2a-9f48-4be5-838a-bc7a4333e2d7} + {62f36aaa-94ce-43ce-985d-baba339bbfd8} diff --git a/Foundation/testsuite/src/FPETest.cpp b/Foundation/testsuite/src/FPETest.cpp index 79c38218a..c2796af9f 100644 --- a/Foundation/testsuite/src/FPETest.cpp +++ b/Foundation/testsuite/src/FPETest.cpp @@ -14,6 +14,12 @@ #include "Poco/FPEnvironment.h" +#ifdef POCO_COMPILER_MSVC +#pragma warning(push) +#pragma warning(disable : 4723) // discarding return value of function with 'nodiscard' attribute +#endif // POCO_COMPILER_MSVC + + using Poco::FPE; @@ -154,3 +160,8 @@ CppUnit::Test* FPETest::suite() return pSuite; } + + +#ifdef POCO_COMPILER_MSVC +#pragma warning(pop) +#endif // POCO_COMPILER_MSVC diff --git a/Foundation/testsuite/src/LinearHashTableTest.cpp b/Foundation/testsuite/src/LinearHashTableTest.cpp index 1ac9af36c..c66b93031 100644 --- a/Foundation/testsuite/src/LinearHashTableTest.cpp +++ b/Foundation/testsuite/src/LinearHashTableTest.cpp @@ -19,6 +19,12 @@ #include +#ifdef POCO_COMPILER_MSVC +#pragma warning(push) +#pragma warning(disable : 4834) // divide by zero +#endif // POCO_COMPILER_MSVC + + using Poco::LinearHashTable; using Poco::Hash; using Poco::HashTable; @@ -354,3 +360,7 @@ CppUnit::Test* LinearHashTableTest::suite() return pSuite; } + +#ifdef POCO_COMPILER_MSVC +#pragma warning(pop) +#endif // POCO_COMPILER_MSVC diff --git a/ProGen/src/ProGen.cpp b/ProGen/src/ProGen.cpp index 394f3e1bf..657d6f6ec 100644 --- a/ProGen/src/ProGen.cpp +++ b/ProGen/src/ProGen.cpp @@ -694,11 +694,11 @@ protected: setProperty(*pProps, "configuration.compiler.includes", projectConfig, "vc.project.compiler.include", platform, arch, config); setProperty(*pProps, "configuration.compiler.defines", projectConfig, "vc.project.compiler.defines", platform, arch, config); setProperty(*pProps, "configuration.compiler.disableWarnings", projectConfig, "vc.project.compiler.disableWarnings", platform, arch, config); - setProperty(*pProps, "configuration.compiler.additionalOptions", projectConfig, "vc.project.compiler.additionalOptions", platform, arch, config); + setProperty(*pProps, "configuration.compiler.additionalOptions", projectConfig, "vc.project.compiler.additionalOptions", platform, arch, config, " "); setProperty(*pProps, "configuration.linker.dependencies", projectConfig, "vc.project.linker.dependencies", platform, arch, config, " "); setProperty(*pProps, "configuration.linker.libraries", projectConfig, "vc.project.linker.libraries", platform, arch, config); setProperty(*pProps, "configuration.linker.entry", projectConfig, "vc.project.linker.entry", platform, arch, config); - setProperty(*pProps, "configuration.linker.additionalOptions", projectConfig, "vc.project.linker.additionalOptions", platform, arch, config); + setProperty(*pProps, "configuration.linker.additionalOptions", projectConfig, "vc.project.linker.additionalOptions", platform, arch, config, " "); setProperty(*pProps, "configuration.prebuild", projectConfig, "vc.project.prebuild", platform, arch, config); setProperty(*pProps, "configuration.postbuild", projectConfig, "vc.project.postbuild", platform, arch, config); std::string libSuffix = this->config().getString("progen.libsuffix." + config, ""); From a9f889f5cf24f40c509c8d9f06c344aa6297a9b1 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Sat, 11 Nov 2023 19:12:48 +0100 Subject: [PATCH 204/395] fix: misspelled define --- Data/src/sql-parser/src/sqlparser_win.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Data/src/sql-parser/src/sqlparser_win.h b/Data/src/sql-parser/src/sqlparser_win.h index bfb9bd6ac..121f28a71 100644 --- a/Data/src/sql-parser/src/sqlparser_win.h +++ b/Data/src/sql-parser/src/sqlparser_win.h @@ -12,7 +12,7 @@ #ifdef Data_API #define SQLParser_API Data_API #ifdef Data_EXPORTS - #define SQLParserEXPORTS + #define SQLParser_EXPORTS #endif #else #if defined(_DLL) || defined(_USRDLL) From 6a5387ec21d7ed0b06bab94735035c53b42243cf Mon Sep 17 00:00:00 2001 From: Alexander B Date: Sat, 11 Nov 2023 21:18:12 +0300 Subject: [PATCH 205/395] add visitor pattern implementation for Poco::Dynamic::Var (#4144) * add visitor pattern implementation for Poco::Dynamic::Var * add changes to Makefile and vcxproj for VarVisitor * resolve review comments Poco::Dynamic::Var --------- Co-authored-by: Alexander B --- Foundation/Foundation_vs140.vcxproj | 3 +- Foundation/Foundation_vs150.vcxproj | 3 +- Foundation/Foundation_vs160.vcxproj | 3 +- Foundation/Foundation_vs170.vcxproj | 3 +- Foundation/Makefile | 2 +- Foundation/include/Poco/Dynamic/VarVisitor.h | 99 +++++++++++ Foundation/src/VarVisitor.cpp | 32 ++++ Foundation/testsuite/src/VarTest.cpp | 174 ++++++++++++++++++- Foundation/testsuite/src/VarTest.h | 1 + 9 files changed, 314 insertions(+), 6 deletions(-) create mode 100644 Foundation/include/Poco/Dynamic/VarVisitor.h create mode 100644 Foundation/src/VarVisitor.cpp diff --git a/Foundation/Foundation_vs140.vcxproj b/Foundation/Foundation_vs140.vcxproj index 1dc961f2e..385a23190 100644 --- a/Foundation/Foundation_vs140.vcxproj +++ b/Foundation/Foundation_vs140.vcxproj @@ -1463,6 +1463,7 @@ + @@ -1843,4 +1844,4 @@ - \ No newline at end of file + diff --git a/Foundation/Foundation_vs150.vcxproj b/Foundation/Foundation_vs150.vcxproj index e54736830..597ce98b1 100644 --- a/Foundation/Foundation_vs150.vcxproj +++ b/Foundation/Foundation_vs150.vcxproj @@ -1463,6 +1463,7 @@ + @@ -1843,4 +1844,4 @@ - \ No newline at end of file + diff --git a/Foundation/Foundation_vs160.vcxproj b/Foundation/Foundation_vs160.vcxproj index 9a9d92ce2..905849d71 100644 --- a/Foundation/Foundation_vs160.vcxproj +++ b/Foundation/Foundation_vs160.vcxproj @@ -1469,6 +1469,7 @@ + @@ -1849,4 +1850,4 @@ - \ No newline at end of file + diff --git a/Foundation/Foundation_vs170.vcxproj b/Foundation/Foundation_vs170.vcxproj index 9a0ee2b12..b77d103e0 100644 --- a/Foundation/Foundation_vs170.vcxproj +++ b/Foundation/Foundation_vs170.vcxproj @@ -2052,6 +2052,7 @@ + @@ -2456,4 +2457,4 @@ - \ No newline at end of file + diff --git a/Foundation/Makefile b/Foundation/Makefile index c1949c051..16a45cd05 100644 --- a/Foundation/Makefile +++ b/Foundation/Makefile @@ -29,7 +29,7 @@ objects = ArchiveStrategy Ascii ASCIIEncoding AsyncChannel \ ThreadPool ThreadTarget ActiveDispatcher Timer Timespan Timestamp Timezone Token URI \ FileStreamFactory URIStreamFactory URIStreamOpener UTF32Encoding UTF16Encoding UTF8Encoding UTF8String \ Unicode UnicodeConverter Windows1250Encoding Windows1251Encoding Windows1252Encoding \ - UUID UUIDGenerator Void Var VarHolder VarIterator Format Pipe PipeImpl PipeStream SharedMemory \ + UUID UUIDGenerator Void Var VarHolder VarIterator VarVisitor Format Pipe PipeImpl PipeStream SharedMemory \ MemoryStream FileStream AtomicCounter DataURIStream DataURIStreamFactory zlib_objects = adler32 compress crc32 deflate \ diff --git a/Foundation/include/Poco/Dynamic/VarVisitor.h b/Foundation/include/Poco/Dynamic/VarVisitor.h new file mode 100644 index 000000000..e800369a5 --- /dev/null +++ b/Foundation/include/Poco/Dynamic/VarVisitor.h @@ -0,0 +1,99 @@ +#ifndef Foundation_VarVisitor_INCLUDED +#define Foundation_VarVisitor_INCLUDED + +// +// VarVisitor.h +// +// Library: Foundation +// Package: Dynamic +// Module: VarVisitor +// +// Definition of the VarVisitor class. +// +// Copyright (c) 2023, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Dynamic/Var.h" +#include +#include + +namespace Poco { +namespace Details { + +struct TypeInfoHash +{ + inline std::size_t operator()(std::type_info const& t) const { return t.hash_code(); } +}; + +struct EqualRef +{ + template + bool operator()(std::reference_wrapper a, std::reference_wrapper b) const + { + return a.get() == b.get(); + } +}; + +using TypeInfoRef = std::reference_wrapper; + +using HandlerCaller = std::function; + +template +using HandlerPointer = void (*)(const T &); + +template +using Handler = std::function; + +} // Details + +namespace Dynamic { + +class Foundation_API Visitor + /// VarVisitor class. +{ + std::unordered_map _handlers; + +public: + template + bool addHandler(const Details::Handler &f) + /// Add handler for specific type T which holds in Var + /// This method is more safe, because it saves copy of handler : lambda or std::function + /// Returns true if handler was added + { + auto result = _handlers.emplace(std::ref(typeid(T)), + Details::HandlerCaller([handler = f](const Poco::Dynamic::Var& x) + { + handler(x.extract()); + })); + return result.second; + } + + template + bool addHandler(Details::HandlerPointer f) + /// Add handler for specific type T which holds in Var + /// This method is less safe, because it saves only copy of function pointer + /// Returns true if handler was added + { + auto result = _handlers.emplace(std::ref(typeid(T)), + Details::HandlerCaller([handlerPointer = f](const Poco::Dynamic::Var& x) + { + handlerPointer(x.extract()); + })); + return result.second; + } + + bool visit(const Poco::Dynamic::Var& x) const; + /// Find handler for holded type and if it exists call handler + /// Returns true if hanler was found othrewise returns false +}; + +} } // namespace Poco::Dynamic + +#endif // Foundation_VarVisitor_INCLUDED diff --git a/Foundation/src/VarVisitor.cpp b/Foundation/src/VarVisitor.cpp new file mode 100644 index 000000000..1c23ea2d8 --- /dev/null +++ b/Foundation/src/VarVisitor.cpp @@ -0,0 +1,32 @@ +// +// VarVisitor.cpp +// +// Library: Foundation +// Package: Dynamic +// Module: VarVisitor +// +// +// Copyright (c) 2023, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + +#include "Poco/Dynamic/VarVisitor.h" + +namespace Poco { +namespace Dynamic { + +bool Visitor::visit(const Var &x) const +{ + bool wasHandled = false; + auto it = _handlers.find(x.type()); + if (it != _handlers.end()) + { + it->second(x); + wasHandled = true; + } + return wasHandled; +} + +} } // namespace Poco::Dynamic diff --git a/Foundation/testsuite/src/VarTest.cpp b/Foundation/testsuite/src/VarTest.cpp index 1311900e7..eb0cfc07a 100644 --- a/Foundation/testsuite/src/VarTest.cpp +++ b/Foundation/testsuite/src/VarTest.cpp @@ -16,8 +16,10 @@ #include "Poco/Bugcheck.h" #include "Poco/Dynamic/Struct.h" #include "Poco/Dynamic/Pair.h" +#include "Poco/Dynamic/VarVisitor.h" #include #include +#include #if defined(_MSC_VER) && _MSC_VER < 1400 @@ -48,10 +50,15 @@ public: return _val; } - bool operator == (int i) + bool operator == (int i) const { return i == _val; } + + friend bool operator == (const Dummy &d1, const Dummy &d2) + { + return d1._val == d2._val; + } private: int _val; @@ -3103,6 +3110,170 @@ void VarTest::testSharedPtr() assertTrue(p.referenceCount() == 1); } +struct ProcessDummy +{ + Var &v; + ProcessDummy(Var &var) : v(var) {} + void operator()(const Dummy &d) + { + v = d; + } +}; + +#define ADD_HANDLER_FOR_TYPE_WITH_VALUE(Type, Handler, Value) \ +visitor.addHandler(Handler); \ +if (accepted) \ +{ \ + var.emplace_back(Type(Value));\ +} \ +else \ +{ \ + warn("handler already exists for " #Type "", __LINE__, __FILE__); \ +} void(0) + +void VarTest::testVarVisitor() +{ + Visitor visitor; + Var processedVar; + auto processInt8 = [&processedVar](const Poco::Int8 &v) -> void + { + processedVar = v; + std::cout << " -> Poco::Int8 "; + }; + auto processInt16 = [&processedVar](const Poco::Int16 &v) -> void + { + processedVar = v; + std::cout << " -> Poco::Int16 "; + }; + auto processInt32 = [&processedVar](const Poco::Int32 &v) -> void + { + processedVar = v; + std::cout << " -> Poco::Int32 "; + }; + auto processInt64 = [&processedVar](const Poco::Int64 &v) -> void + { + processedVar = v; + std::cout << " -> Poco::Int64 "; + }; + auto processUInt8 = [&processedVar](const Poco::UInt8 &v) -> void + { + processedVar = v; + std::cout << " -> Poco::UInt8 "; + }; + auto processUInt16 = [&processedVar](const Poco::UInt16 &v) -> void + { + processedVar = v; + std::cout << " -> Poco::UInt16 "; + }; + auto processUInt32 = [&processedVar](const Poco::UInt32 &v) -> void + { + processedVar = v; + std::cout << " -> Poco::UInt32 "; + }; + auto processUInt64 = [&processedVar](const Poco::UInt64 &v) -> void + { + processedVar = v; + std::cout << " -> Poco::UInt64 "; + }; + auto processBool = [&processedVar](const bool &v) -> void + { + processedVar = v; + std::cout << " -> bool "; + }; + auto processChar = [&processedVar](const char &v) -> void + { + processedVar = v; + std::cout << " -> char "; + }; + auto processFloat = [&processedVar](const float &v) -> void + { + processedVar = v; + std::cout << " -> float "; + }; + auto processDouble = [&processedVar](const double &v) -> void + { + processedVar = v; + std::cout << " -> double "; + }; + auto processLong = [&processedVar](const long &v) -> void + { + processedVar = v; + std::cout << " -> long "; + }; + auto processLongLong = [&processedVar](const long long &v) -> void + { + processedVar = v; + std::cout << " -> long long "; + }; + auto processULong = [&processedVar](const unsigned long &v) -> void + { + processedVar = v; + std::cout << " -> unsigned long "; + }; + auto processULongLong = [&processedVar](const unsigned long long &v) -> void + { + processedVar = v; + std::cout << " -> unsigned long long "; + }; + auto processString = [&processedVar](const std::string &v) -> void + { + processedVar = v; + std::cout << " -> string "; + }; + + std::vector var; + + using ulong = unsigned long; + using longlong = long long; + using ulonglong = unsigned long long; + + ProcessDummy processDummy(processedVar); + + bool accepted = false; + accepted = ADD_HANDLER_FOR_TYPE_WITH_VALUE(Poco::Int8, processInt8, -8); + accepted = ADD_HANDLER_FOR_TYPE_WITH_VALUE(Poco::Int16, processInt16, -16); + accepted = ADD_HANDLER_FOR_TYPE_WITH_VALUE(Poco::Int32, processInt32, -32); + accepted = ADD_HANDLER_FOR_TYPE_WITH_VALUE(Poco::Int64, processInt64, -64); + accepted = ADD_HANDLER_FOR_TYPE_WITH_VALUE(Poco::UInt8, processUInt8, 8); + accepted = ADD_HANDLER_FOR_TYPE_WITH_VALUE(Poco::UInt16, processUInt16, 16); + accepted = ADD_HANDLER_FOR_TYPE_WITH_VALUE(Poco::UInt32, processUInt32, 32); + accepted = ADD_HANDLER_FOR_TYPE_WITH_VALUE(Poco::UInt64, processUInt64, 64); + accepted = ADD_HANDLER_FOR_TYPE_WITH_VALUE(bool, processBool, true); + accepted = ADD_HANDLER_FOR_TYPE_WITH_VALUE(char, processChar, 'f'); + accepted = ADD_HANDLER_FOR_TYPE_WITH_VALUE(float, processFloat, 1.2f); + accepted = ADD_HANDLER_FOR_TYPE_WITH_VALUE(double, processDouble, 2.4); + accepted = ADD_HANDLER_FOR_TYPE_WITH_VALUE(long, processLong, 123L); + accepted = ADD_HANDLER_FOR_TYPE_WITH_VALUE(ulong, processULong, 124UL); + accepted = ADD_HANDLER_FOR_TYPE_WITH_VALUE(longlong, processLongLong, 123123LL); + accepted = ADD_HANDLER_FOR_TYPE_WITH_VALUE(ulonglong, processULongLong, 124124ULL); + accepted = ADD_HANDLER_FOR_TYPE_WITH_VALUE(std::string, processString, "hello world"); + accepted = ADD_HANDLER_FOR_TYPE_WITH_VALUE(Dummy, processDummy, 42); + + for (const auto &v : var) + { + std::cout << "handle type : " << v.type().name(); + if (visitor.visit(v)) + { + if (v.type() != typeid(Dummy)) + { + std::cout << " [" << v.toString() << "] ... "; + assertTrue(v == processedVar); + } + else + { + std::cout << " [" << v.extract() << "] ... "; + assertTrue(v.extract() == processedVar.extract()); + } + std::cout << " ok" << '\n'; + } + else + { + std::cout << " fail" << '\n'; + fail(Poco::format("failed type handle : %s", v.type().name()), __LINE__, __FILE__); + } + } +} + void VarTest::setUp() { @@ -3172,6 +3343,7 @@ CppUnit::Test* VarTest::suite() CppUnit_addTest(pSuite, VarTest, testUUID); CppUnit_addTest(pSuite, VarTest, testEmpty); CppUnit_addTest(pSuite, VarTest, testIterator); + CppUnit_addTest(pSuite, VarTest, testVarVisitor); return pSuite; } diff --git a/Foundation/testsuite/src/VarTest.h b/Foundation/testsuite/src/VarTest.h index cdb0242fb..e71dd0e92 100644 --- a/Foundation/testsuite/src/VarTest.h +++ b/Foundation/testsuite/src/VarTest.h @@ -80,6 +80,7 @@ public: void testEmpty(); void testIterator(); void testSharedPtr(); + void testVarVisitor(); void setUp(); void tearDown(); From 18eea1bb70578097b007866571070c79aeba0bca Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Sat, 11 Nov 2023 19:40:48 +0100 Subject: [PATCH 206/395] temporarily comment failing mysql ci until fixed --- .github/workflows/ci.yml | 50 ++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 506e4dafd..f8c86e1c5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -364,31 +364,31 @@ jobs: # cd cmake-build; # ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Debug - linux-gcc-make-mysql: - runs-on: ubuntu-22.04 - services: - mysql: - image: mysql:8.1.0 - env: - MYSQL_ALLOW_EMPTY_PASSWORD: yes - MYSQL_USER: pocotest - MYSQL_PASSWORD: pocotest - MYSQL_DATABASE: pocotest - ports: - - 3306:3306 - steps: - - uses: actions/checkout@v3 - - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev mysql-client - - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/PostgreSQL,Data/SQLite,Data/ODBC,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install - - uses: ./.github/actions/retry-action - with: - timeout_minutes: 90 - max_attempts: 3 - retry_on: any - command: >- - sudo -s - EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/PostgreSQL Data/ODBC Data/SQLite Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" - ./ci/runtests.sh +# linux-gcc-make-mysql: +# runs-on: ubuntu-22.04 +# services: +# mysql: +# image: mysql:8.1.0 +# env: +# MYSQL_ALLOW_EMPTY_PASSWORD: yes +# MYSQL_USER: pocotest +# MYSQL_PASSWORD: pocotest +# MYSQL_DATABASE: pocotest +# ports: +# - 3306:3306 +# steps: +# - uses: actions/checkout@v3 +# - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev mysql-client +# - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/PostgreSQL,Data/SQLite,Data/ODBC,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install +# - uses: ./.github/actions/retry-action +# with: +# timeout_minutes: 90 +# max_attempts: 3 +# retry_on: any +# command: >- +# sudo -s +# EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/PostgreSQL Data/ODBC Data/SQLite Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" +# ./ci/runtests.sh # TODO tests sometimes failling on testTransaction and testReconnect # linux-gcc-make-postgres: From 23463b2e5554e27b6ea27c735d336c2499a10a5f Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Sat, 11 Nov 2023 23:20:27 +0100 Subject: [PATCH 207/395] chore: add issue template --- .github/ISSUE_TEMPLATE/bug_report.md | 31 +++++++++++++++++++++++ .github/ISSUE_TEMPLATE/custom.md | 10 ++++++++ .github/ISSUE_TEMPLATE/feature_request.md | 20 +++++++++++++++ 3 files changed, 61 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/custom.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 000000000..c0aaad10d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,31 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: 'bug' +assignees: '' + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior. If feasible, please provide a [SSCCE](http://www.sscce.org/) - usually, it will make the process much easier and faster. + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Logs** +If applicable, add logs to help explain your problem. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Please add relevant environment information:** + - OS Type and Version + - POCO Version + - Third-party product (eg. database or library) type and version + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/custom.md b/.github/ISSUE_TEMPLATE/custom.md new file mode 100644 index 000000000..fe81f1db1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/custom.md @@ -0,0 +1,10 @@ +--- +name: Something else +about: An issue that is neither a bug report, nor a feature request. +title: '' +labels: '' +assignees: '' + +--- + + diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 000000000..de666baee --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: 'feature' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. From 54d3c7b351366b72c08f6f304bff92ca9bc7b7f7 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Mon, 13 Nov 2023 10:28:08 +0100 Subject: [PATCH 208/395] SessionPool idle connections should behave as a FIFO queue (#3951) (#4264) Co-authored-by: Friedrich Wilckens --- Data/src/SessionPool.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Data/src/SessionPool.cpp b/Data/src/SessionPool.cpp index 99ddce63e..ff849a8ce 100644 --- a/Data/src/SessionPool.cpp +++ b/Data/src/SessionPool.cpp @@ -78,7 +78,7 @@ Session SessionPool::get() customizeSession(newSession); PooledSessionHolderPtr pHolder(new PooledSessionHolder(*this, newSession.impl())); - _idleSessions.push_front(pHolder); + _idleSessions.push_back(pHolder); ++_nSessions; } else throw SessionPoolExhaustedException(_connector); @@ -261,7 +261,7 @@ void SessionPool::putBack(PooledSessionHolderPtr pHolder) applySettings(pHolder->session()); pHolder->access(); - _idleSessions.push_front(pHolder); + _idleSessions.push_back(pHolder); } else --_nSessions; From daeb9d730197eb059c821ee98a6faeb7af65a870 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Mon, 13 Nov 2023 10:32:12 +0100 Subject: [PATCH 209/395] 4254 net message header optional decoding (#4263) * GH #4254: Net::MessageHeader: automatic decoding of header values is made optional (enabled by default). * GH #4254: Net::MessageHeader: test for optional automatic decoding of header values --- Net/include/Poco/Net/HTTPServerParams.h | 18 ++++++++- Net/include/Poco/Net/MessageHeader.h | 21 ++++++++++- Net/src/HTTPServerParams.cpp | 9 ++++- Net/src/HTTPServerRequestImpl.cpp | 1 + Net/src/MessageHeader.cpp | 49 ++++++++++++++++++++++++- Net/testsuite/src/MessageHeaderTest.cpp | 43 ++++++++++++++++++++++ Net/testsuite/src/MessageHeaderTest.h | 1 + 7 files changed, 137 insertions(+), 5 deletions(-) diff --git a/Net/include/Poco/Net/HTTPServerParams.h b/Net/include/Poco/Net/HTTPServerParams.h index 10bb26eba..7691677bc 100644 --- a/Net/include/Poco/Net/HTTPServerParams.h +++ b/Net/include/Poco/Net/HTTPServerParams.h @@ -77,7 +77,7 @@ public: /// persistent connections. bool getKeepAlive() const; - /// Returns true iff persistent connections are enabled. + /// Returns true if persistent connections are enabled. void setKeepAliveTimeout(const Poco::Timespan& timeout); /// Sets the keep-alive timeout for persistent HTTP connections. @@ -95,6 +95,15 @@ public: /// during a persistent connection, or 0 if /// unlimited connections are allowed. + void setAutoDecodeHeaders(bool autoDecode); + /// Enables or disables automatic HTTP header value conversions, for example + /// RFC2047. + /// Default is true: convert header values when reading HTTP header. + + bool getAutoDecodeHeaders() const; + /// Returns true if automatic conversion of HTTP header values + /// when reading HTTP header. + protected: virtual ~HTTPServerParams(); /// Destroys the HTTPServerParams. @@ -106,6 +115,7 @@ private: bool _keepAlive; int _maxKeepAliveRequests; Poco::Timespan _keepAliveTimeout; + bool _autoDecodeHeaders; }; @@ -148,6 +158,12 @@ inline const Poco::Timespan& HTTPServerParams::getKeepAliveTimeout() const } +inline bool HTTPServerParams::getAutoDecodeHeaders() const +{ + return _autoDecodeHeaders; +} + + } } // namespace Poco::Net diff --git a/Net/include/Poco/Net/MessageHeader.h b/Net/include/Poco/Net/MessageHeader.h index 2500b2bb9..c1da4cc0a 100644 --- a/Net/include/Poco/Net/MessageHeader.h +++ b/Net/include/Poco/Net/MessageHeader.h @@ -87,6 +87,23 @@ public: /// Throws a MessageException if the input stream is /// malformed. + void setAutoDecode(bool convert); + /// Enables or disables automatic conversion of HTTP header values + /// when reading HTTP header. + + bool getAutoDecode() const; + /// Returns true if automatic conversion of HTTP header values + /// when reading HTTP header. + + std::string getDecoded(const std::string& name) const; + /// Get decoded header value. It does conversion if it was not + /// automatically converted when reading. + + std::string getDecoded(const std::string& name, const std::string& defaultValue) const; + /// Get decoded header value. It does conversion if it was not + /// automatically converted when reading. + /// Default value is returned if the name does not exist. + int getFieldLimit() const; /// Returns the maximum number of header fields /// allowed. @@ -122,7 +139,7 @@ public: /// The default limit is 8192. bool hasToken(const std::string& fieldName, const std::string& token) const; - /// Returns true iff the field with the given fieldName contains + /// Returns true if the field with the given fieldName contains /// the given token. Tokens in a header field are expected to be /// comma-separated and are case insensitive. @@ -182,6 +199,8 @@ private: int _fieldLimit; int _nameLengthLimit; int _valueLengthLimit; + bool _autoDecode; + bool _decodedOnRead; }; diff --git a/Net/src/HTTPServerParams.cpp b/Net/src/HTTPServerParams.cpp index 34742c72b..e43a7f5f0 100644 --- a/Net/src/HTTPServerParams.cpp +++ b/Net/src/HTTPServerParams.cpp @@ -23,7 +23,8 @@ HTTPServerParams::HTTPServerParams(): _timeout(60000000), _keepAlive(true), _maxKeepAliveRequests(0), - _keepAliveTimeout(15000000) + _keepAliveTimeout(15000000), + _autoDecodeHeaders(true) { } @@ -70,4 +71,10 @@ void HTTPServerParams::setMaxKeepAliveRequests(int maxKeepAliveRequests) } +void HTTPServerParams::setAutoDecodeHeaders(bool autoDecode) +{ + _autoDecodeHeaders = autoDecode; +} + + } } // namespace Poco::Net diff --git a/Net/src/HTTPServerRequestImpl.cpp b/Net/src/HTTPServerRequestImpl.cpp index e27abd8ee..dd50227e0 100644 --- a/Net/src/HTTPServerRequestImpl.cpp +++ b/Net/src/HTTPServerRequestImpl.cpp @@ -40,6 +40,7 @@ HTTPServerRequestImpl::HTTPServerRequestImpl(HTTPServerResponseImpl& response, H response.attachRequest(this); HTTPHeaderInputStream hs(session); + setAutoDecode(_pParams->getAutoDecodeHeaders()); read(hs); // Now that we know socket is still connected, obtain addresses diff --git a/Net/src/MessageHeader.cpp b/Net/src/MessageHeader.cpp index bddb11c3a..86e7aa0d6 100644 --- a/Net/src/MessageHeader.cpp +++ b/Net/src/MessageHeader.cpp @@ -30,7 +30,9 @@ namespace Net { MessageHeader::MessageHeader(): _fieldLimit(DFL_FIELD_LIMIT), _nameLengthLimit(DFL_NAME_LENGTH_LIMIT), - _valueLengthLimit(DFL_VALUE_LENGTH_LIMIT) + _valueLengthLimit(DFL_VALUE_LENGTH_LIMIT), + _autoDecode(true), + _decodedOnRead(false) { } @@ -104,15 +106,58 @@ void MessageHeader::read(std::istream& istr) else if (ch != eof) throw MessageException("Folded field value too long/no CRLF found"); } + + // TODO: Add to the if below? Poco::trimRightInPlace(value); - add(name, decodeWord(value)); + + if (_autoDecode) + add(name, decodeWord(value)); + else + add(name, value); + ++fields; } + // Save the state of the auto decode at the time of reading. + _decodedOnRead = _autoDecode; if (istr.good() && ch != eof) istr.putback(ch); } +void MessageHeader::setAutoDecode(bool decode) +{ + _autoDecode = decode; +} + + +bool MessageHeader::getAutoDecode() const +{ + return _autoDecode; +} + + +std::string MessageHeader::getDecoded(const std::string& name) const +{ + const auto& value { get(name) }; + if (_decodedOnRead) + { + // Already decoded, just return the value + return value; + } + return decodeWord(value); +} + + +std::string MessageHeader::getDecoded(const std::string& name, const std::string& defaultValue) const +{ + if (!has(name)) + { + return defaultValue; + } + return getDecoded(name); +} + + int MessageHeader::getFieldLimit() const { return _fieldLimit; diff --git a/Net/testsuite/src/MessageHeaderTest.cpp b/Net/testsuite/src/MessageHeaderTest.cpp index cb4cd75d5..399ac6dca 100644 --- a/Net/testsuite/src/MessageHeaderTest.cpp +++ b/Net/testsuite/src/MessageHeaderTest.cpp @@ -407,6 +407,48 @@ void MessageHeaderTest::testDecodeWord() assertTrue (decoded == "Hello Francis, good bye"); } +// Sample HTTP reuest header +static std::string httpRequestHeader{ +R"(GET / HTTP/2 +Host: stackoverflow.com +User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/119.0 +Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 +Accept-Language: en-GB,en;q=0.5 +Accept-Encoding: gzip, deflate, br +Connection: keep-alive +Upgrade-Insecure-Requests: 1 +X-Encoded-Header-A: (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=) +X-Encoded-Header-B: Hello =?UTF-8?B?RnJhbmNpcw==?=, good bye + +)" +}; + +void MessageHeaderTest::testAutoDecode() +{ + { + std::istringstream istr(httpRequestHeader); + MessageHeader mh; + mh.read(istr); + + assertEquals(mh.get("X-Encoded-Header-A"), "(a b)"); + assertEquals(mh.get("X-Encoded-Header-B"), "Hello Francis, good bye"); + + assertEquals(mh.getDecoded("X-Encoded-Header-A"), "(a b)"); + assertEquals(mh.getDecoded("X-Encoded-Header-B"), "Hello Francis, good bye"); + } + { + std::istringstream istr(httpRequestHeader); + MessageHeader mh; + mh.setAutoDecode(false); + mh.read(istr); + + assertEquals(mh.get("X-Encoded-Header-A"), "(=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)"); + assertEquals(mh.get("X-Encoded-Header-B"), "Hello =?UTF-8?B?RnJhbmNpcw==?=, good bye"); + + assertEquals(mh.getDecoded("X-Encoded-Header-A"), "(a b)"); + assertEquals(mh.getDecoded("X-Encoded-Header-B"), "Hello Francis, good bye"); + } +} void MessageHeaderTest::setUp() @@ -440,6 +482,7 @@ CppUnit::Test* MessageHeaderTest::suite() CppUnit_addTest(pSuite, MessageHeaderTest, testSplitParameters); CppUnit_addTest(pSuite, MessageHeaderTest, testFieldLimit); CppUnit_addTest(pSuite, MessageHeaderTest, testDecodeWord); + CppUnit_addTest(pSuite, MessageHeaderTest, testAutoDecode); return pSuite; } diff --git a/Net/testsuite/src/MessageHeaderTest.h b/Net/testsuite/src/MessageHeaderTest.h index 98d9220d7..e829733f6 100644 --- a/Net/testsuite/src/MessageHeaderTest.h +++ b/Net/testsuite/src/MessageHeaderTest.h @@ -43,6 +43,7 @@ public: void testNameLengthLimit(); void testValueLengthLimit(); void testDecodeWord(); + void testAutoDecode(); void setUp(); void tearDown(); From b8d9eab0b8aee447903131aff5b970f940586f49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nino=20Belu=C5=A1i=C4=87?= <86965206+cunj123@users.noreply.github.com> Date: Mon, 13 Nov 2023 22:34:45 +0100 Subject: [PATCH 210/395] 4248 additional progen script feature (#4265) * feat: add components argument to progen.ps1 #4248 * feat: add components argument to buildwin.ps1 #4248 * fix: fix buildwin output #4248 * fix: fix buildwin components argument check #4248 * feat: add calling buildwin to progen.ps1 #4248 * fix: fix progen build output #4248 * fix: call buildwin with static_mt linkmode #4248 * feat: run progen for Data/testsuite/DataTest #4248 * fix(progen.ps1): default poco_base; fix buildwin path; use Start-Process (to get exit code); rename non-name-compliant cmdlets * fix(PS scripts): rename functions to comply with cmdlets names; add platform to progen --------- Co-authored-by: Aleksandar Fabijanic --- buildwin.ps1 | 79 +++++++++++++++++++++++--------------- progen.ps1 | 105 +++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 133 insertions(+), 51 deletions(-) diff --git a/buildwin.ps1 b/buildwin.ps1 index be589a370..0db295ab3 100644 --- a/buildwin.ps1 +++ b/buildwin.ps1 @@ -12,6 +12,7 @@ # [-samples] # [-tests] # [-omit "Lib1X,LibY,LibZ,..."] +# [-components "Lib1X,LibY,LibZ,..."] # [-tool msbuild | devenv] # [-useenv env | noenv] # [-verbosity minimal | quiet | normal | detailed | diagnostic] @@ -22,7 +23,7 @@ Param ( [Parameter()] - [string] $poco_base, + [string] $poco_base = $([System.Environment]::GetEnvironmentVariable('POCO_BASE')), [Parameter()] [ValidateSet(140, 150, 160, 170)] @@ -47,6 +48,7 @@ Param [switch] $tests = $false, [switch] $samples = $false, [string] $omit, + [string] $components, [Parameter()] [ValidateSet('msbuild', 'devenv')] @@ -240,6 +242,7 @@ function Process-Input Write-Host ' [-samples]' Write-Host ' [-tests]' Write-Host ' [-omit "Lib1X,LibY,LibZ,..."]' + Write-Host ' [-components "Lib1X,LibY,LibZ,..."]' Write-Host ' [-tool msbuild | devenv]' Write-Host ' [-useenv env | noenv]' Write-Host ' [-verbosity minimal | quiet | normal | detailed | diagnostic' @@ -249,6 +252,10 @@ function Process-Input } else { + if($components -ne '' -and $omit -ne '') { + Write-Host "-components and -omit cannot be used simultaneously, exiting..." + Exit 1 + } Set-Environment Write-Host "" @@ -275,6 +282,11 @@ function Process-Input Write-Host "Omit: $omit" } + if ($components -ne '') + { + Write-Host "Components: $components" + } + if ($openssl_base -ne '') { Write-Host "OpenSSL: $openssl_base" @@ -295,7 +307,7 @@ function Process-Input } -function Exec-MSBuild([string] $vsProject, [string] $projectConfig) +function ExecuteMSBuild([string] $vsProject, [string] $projectConfig) { if (!(Test-Path -Path $vsProject -PathType leaf)) { Write-Host "Project $vsProject not found, skipping." @@ -309,7 +321,7 @@ function Exec-MSBuild([string] $vsProject, [string] $projectConfig) } -function Build-MSBuild([string] $vsProject, [switch] $skipStatic) +function RunMSBuild([string] $vsProject, [switch] $skipStatic) { if ($linkmode -contains "static" -and $skipStatic) { Return } if ($linkmode.Contains("static") -and $vsProject.Contains("TestLibrary")) @@ -333,12 +345,12 @@ function Build-MSBuild([string] $vsProject, [switch] $skipStatic) $configArr = 'release', 'debug' foreach ($cfg in $configArr) { - Exec-MSBuild $vsProject "$($cfg)_$($mode)" + ExecuteMSBuild $vsProject "$($cfg)_$($mode)" } } else #config { - Exec-MSBuild $vsProject "$($config)_$($mode)" + ExecuteMSBuild $vsProject "$($config)_$($mode)" } } } @@ -349,18 +361,18 @@ function Build-MSBuild([string] $vsProject, [switch] $skipStatic) $configArr = 'release', 'debug' foreach ($cfg in $configArr) { - Exec-MSBuild $vsProject "$($cfg)_$($linkmode)" + ExecuteMSBuild $vsProject "$($cfg)_$($linkmode)" } } else #config { - Exec-MSBuild $vsProject "$($config)_$($linkmode)" + ExecuteMSBuild $vsProject "$($config)_$($linkmode)" } } } -function Exec-Devenv([string] $projectConfig, [string] $vsProject) +function ExecuteDevenv([string] $projectConfig, [string] $vsProject) { $cmd = "devenv /useenv /$action $projectConfig $vsProject" Write-Host $cmd @@ -368,7 +380,7 @@ function Exec-Devenv([string] $projectConfig, [string] $vsProject) } -function Build-Devenv([string] $vsProject, [switch] $skipStatic) +function BuildDevenv([string] $vsProject, [switch] $skipStatic) { if ($linkmode -contains "static" -and $skipStatic) { Return } @@ -387,12 +399,12 @@ function Build-Devenv([string] $vsProject, [switch] $skipStatic) $configArr = 'release', 'debug' foreach ($cfg in $configArr) { - Exec-Devenv "$($cfg)_$($mode)" $vsProject + ExecuteDevenv "$($cfg)_$($mode)" $vsProject } } else #config { - Exec-Devenv "$($config)_$($mode)" $vsProject + ExecuteDevenv "$($config)_$($mode)" $vsProject } } } @@ -403,30 +415,30 @@ function Build-Devenv([string] $vsProject, [switch] $skipStatic) $configArr = 'release', 'debug' foreach ($cfg in $configArr) { - Exec-Devenv "$($cfg)_$($linkmode)" $vsProject + ExecuteDevenv "$($cfg)_$($linkmode)" $vsProject } } else #config { - Exec-Devenv "$($config)_$($linkmode)" $vsProject + ExecuteDevenv "$($config)_$($linkmode)" $vsProject } } } -function Build-samples +function BuildSamples { process { $sampleName = $_.BaseName.split("_")[0] $sampleProjName = "$($poco_base)\$($componentDir)\samples\$($sampleName)\$($_)" - if ($tool -eq 'devenv') { Build-Devenv $sampleProjName } - elseif ($tool -eq 'msbuild') { Build-MSBuild $sampleProjName } + if ($tool -eq 'devenv') { BuildDevenv $sampleProjName } + elseif ($tool -eq 'msbuild') { RunMSBuild $sampleProjName } else{ Write-Host "Tool not supported: $tool" } } } -function Build-Exec([string] $tool, [string] $vsProject, [switch] $skipStatic) +function BuildExecute([string] $tool, [string] $vsProject, [switch] $skipStatic) { if (!(Test-Path -Path $vsProject)) # not found { @@ -435,8 +447,8 @@ function Build-Exec([string] $tool, [string] $vsProject, [switch] $skipStatic) Write-Host "+------------------------------------------------------------------" Return } - if ($tool -eq 'devenv') { Build-Devenv $vsProject -skipStatic:$skipStatic } - elseif ($tool -eq 'msbuild') { Build-MSBuild $vsProject -skipStatic:$skipStatic } + if ($tool -eq 'devenv') { BuildDevenv $vsProject -skipStatic:$skipStatic } + elseif ($tool -eq 'msbuild') { RunMSBuild $vsProject -skipStatic:$skipStatic } else { Write-Host "Build tool $tool not supported. Exiting." @@ -445,7 +457,7 @@ function Build-Exec([string] $tool, [string] $vsProject, [switch] $skipStatic) } -function Build-Components([string] $extension, [string] $type) +function BuildComponents([string] $extension, [string] $type) { Get-Content "$poco_base\components" | Foreach-Object { @@ -460,7 +472,12 @@ function Build-Components([string] $extension, [string] $type) $omitArray += $_.Trim() } - if ($omitArray -NotContains $component) + $componentsArray = @() + $components.Split(',') | ForEach-Object { + $componentsArray += $_.Trim() + } + + if ($omitArray -NotContains $component -and (($componentsArray -Contains $component) -or ($components -eq ''))) { $vsProject = "$poco_base\$componentDir\$componentName$($suffix).$($extension)" @@ -482,7 +499,7 @@ function Build-Components([string] $extension, [string] $type) if ($type -eq "lib") { - Build-Exec $tool $vsProject + BuildExecute $tool $vsProject } ElseIf ($tests -and ($type -eq "test")) { @@ -490,7 +507,7 @@ function Build-Components([string] $extension, [string] $type) Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" Write-Host "| Building $vsTestProject" Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" - Build-Exec $tool $vsTestProject + BuildExecute $tool $vsTestProject if ($component -eq "Foundation") # special case for Foundation, which needs test app and dll { @@ -498,13 +515,13 @@ function Build-Components([string] $extension, [string] $type) Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" Write-Host "| Building $vsTestProject" Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" - Build-Exec $tool $vsTestProject + BuildExecute $tool $vsTestProject $vsTestProject = "$poco_base\$componentDir\testsuite\TestLibrary$($suffix).$($extension)" Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" Write-Host "| Building $vsTestProject" Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" - Build-Exec $tool $vsTestProject -skipStatic + BuildExecute $tool $vsTestProject -skipStatic } elseif ($component -eq "Data") # special case for Data, which needs DataTest lib { @@ -512,7 +529,7 @@ function Build-Components([string] $extension, [string] $type) Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" Write-Host "| Building $vsTestProject" Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" - Build-Exec $tool $vsTestProject + BuildExecute $tool $vsTestProject } } ElseIf ($samples -and ($type -eq "sample")) @@ -521,13 +538,13 @@ function Build-Components([string] $extension, [string] $type) { Get-Childitem "$poco_base\$($componentDir)" -Recurse |` Where-Object {$_.Extension -Match $extension -And $_.DirectoryName -Like "*samples*" -And $_.BaseName -Like "*$($suffix)" } ` - | Build-samples "$_" + | BuildSamples "$_" } else { Get-Childitem "$poco_base\$($componentDir)" -Recurse |` Where-Object {$_.Extension -Match $extension -And $_.DirectoryName -Like "*samples*" -And $_.BaseName -Like "*$($suffix)" -And $_.BaseName -NotLike "*_x64_*" } ` - | Build-samples "$_" + | BuildSamples "$_" } } } @@ -548,9 +565,9 @@ function Build if ($vs -lt 100) { $extension = 'vcproj' } else { $extension = 'vcxproj' } - Build-Components $extension "lib" - Build-Components $extension "test" - Build-Components $extension "sample" + BuildComponents $extension "lib" + BuildComponents $extension "test" + BuildComponents $extension "sample" } diff --git a/progen.ps1 b/progen.ps1 index 384525448..da91900bd 100644 --- a/progen.ps1 +++ b/progen.ps1 @@ -6,27 +6,38 @@ # progen.ps1 [-poco_base dir] # [-vs 140 | 150 | 160| 170] # [-omit "Lib1X,LibY,LibZ,..."] +# [-components "Lib1X,LibY,LibZ,..."] +# [-platform Win32 | x64 | ARM64 | WinCE | WEC2013] # [-samples] # [-tests] +# [-nobuild] [CmdletBinding()] Param ( [Parameter()] - [string] $poco_base, + [string] $poco_base = $([System.Environment]::GetEnvironmentVariable('POCO_BASE')), [Parameter()] [ValidateSet(140, 150, 160, 170)] - [int] $vs = 140, + [int] $vs = 170, [string] $omit, + [string] $components, + + [Parameter()] + [ValidateSet('Win32', 'x64', 'ARM64', 'WinCE', 'WEC2013')] + [string] $platform = 'x64', + [switch] $samples = $false, [switch] $tests = $false, + [switch] $nobuild = $false, + [switch] $help ) -function Process-Input +function ProcessInput { if ($help -eq $true) { @@ -35,12 +46,18 @@ function Process-Input Write-Host 'progen.ps1 [-poco_base ]' Write-Host ' [-vs 140 | 150 | 160 | 170]' Write-Host ' [-omit "Lib1X,LibY,LibZ,..."]' + Write-Host ' [-components "Lib1X,LibY,LibZ,..."]' Write-Host ' [-samples]' Write-Host ' [-tests]' + Write-Host ' [-nobuild]' Exit } else { + if($components -ne '' -and $omit -ne '') { + Write-Host "-components and -omit cannot be used simultaneously, exiting..." + Exit + } Write-Host "" Write-Host "--------------------" Write-Host "Progen configuration:" @@ -49,12 +66,18 @@ function Process-Input Write-Host "Version: $vs" Write-Host "Samples: $samples" Write-Host "Tests: $tests" + Write-Host "No Build: $nobuild" if ($omit -ne '') { Write-Host "Omit: $omit" } + if ($components -ne '') + { + Write-Host "Components: $components" + } + Write-Host "----------------------------------------" Write-Host "" @@ -64,7 +87,17 @@ function Process-Input } } -function Run-Progen-Samples +function InvokeProcess([string] $exe, [string] $arguments) +{ + $proc = Start-Process -NoNewWindow -FilePath $exe -ArgumentList $arguments -PassThru + $handle = $proc.Handle # cache proc.Handle, necessary to get exit code + $proc.WaitForExit(); + if ($proc.ExitCode -ne 0) { + Write-Warning "$_ exited with status code $($proc.ExitCode)" + } +} + +function InvokeProgenSamples { process { $sampleName = $_.BaseName.split(".")[0] @@ -80,11 +113,11 @@ function Run-Progen-Samples Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" $sampleProgenPath = "$($poco_base)\$($componentDir)\samples\$($sampleName)\$($_)" } - Invoke-Expression "$progenPath /tool=vs$vs $sampleProgenPath" + InvokeProcess $progenPath "/tool=vs$vs $sampleProgenPath" } } -function Run-Progen-Components([string] $type) +function InvokeProgenComponents([string] $type) { if(Test-Path "$poco_base\ProGen\bin64\static_mt\progen.exe") { $progenPath = Resolve-Path "$poco_base\ProGen\bin64\static_mt\progen.exe" @@ -95,6 +128,12 @@ function Run-Progen-Components([string] $type) else { $progenPath = Resolve-Path "$poco_base\ProGen\bin64\progen.exe" } + $exists = Test-Path "$poco_base\ProGen\bin64\static_mt\progen.exe" + if (-not $exists) { + Write-Error "Progen not found, exiting..." + Exit -1 + } + Get-Content "$poco_base\components" | Foreach-Object { $component = $_ @@ -107,28 +146,40 @@ function Run-Progen-Components([string] $type) $omitArray += $_.Trim() } - if ($omitArray -NotContains $component) + $componentsArray = @() + $components.Split(',') | ForEach-Object { + $componentsArray += $_.Trim() + } + + if ($omitArray -NotContains $component -and (-not ($component -Contains "Foundation")) -and (($componentsArray -Contains $component) -or ($components -eq ''))) { - - Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" - Write-Host "| Running ProGen for $componentDir" - Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" - if($type -eq "lib") { - $componentProgenPath = "$poco_base\$componentDir\$componentName.Progen" - Invoke-Expression "$progenPath /tool=vs$vs $componentProgenPath" + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + Write-Host "| Running ProGen for $componentDir" + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + $componentProgenPath = "$poco_base\$componentDir\$componentName.progen" + InvokeProcess $progenPath "/tool=vs$vs $componentProgenPath" } ElseIf ($tests -and ($type -eq "test")) { $componentTestProgenPath = "$poco_base\$componentDir\testsuite\TestSuite.Progen" Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" Write-Host "| Running Progen for $componentDir\testsuite" Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" - Invoke-Expression "$progenPath /tool=vs$vs $componentTestProgenPath" + InvokeProcess $progenPath "/tool=vs$vs $componentTestProgenPath" + + if ($component -eq "Data") # special case for Data + { + $componentTestProgenPath = "$poco_base\$componentDir\testsuite\DataTest\DataTest.progen" + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + Write-Host "| Running Progen for $componentDir\testsuite\DataTest" + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + InvokeProcess $progenPath "/tool=vs$vs $componentTestProgenPath" + } } ElseIf ($samples -and ($type -eq "sample")) { Get-Childitem "$poco_base\$($componentDir)" -Recurse |` Where-Object {$_.Extension -Match ".progen" -And $_.DirectoryName -Like "*samples*" } ` - | Run-Progen-Samples "$_" + | InvokeProgenSamples "$_" } } else @@ -140,13 +191,27 @@ function Run-Progen-Components([string] $type) } } +function InvokeBuildWin { + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + Write-Host "| Building Foundation,XML,JSON,Util,Progen" + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + Invoke-Expression "$poco_base\buildwin.ps1 -poco_base $poco_base -platform $platform -linkmode static_mt -vs $vs -action build -components `"Foundation,XML,JSON,Util,Progen`" " + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + Write-Host "| Build finished." + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" +} + function Run { - Process-Input + ProcessInput - Run-Progen-Components "lib" - Run-Progen-Components "test" - Run-Progen-Components "sample" + if($nobuild -eq $false) { + InvokeBuildWin + } + + InvokeProgenComponents "lib" + InvokeProgenComponents "test" + InvokeProgenComponents "sample" } From 5e88502b7fd0e928c1c8b932d873148c857e2673 Mon Sep 17 00:00:00 2001 From: Pavle Dragisic Date: Tue, 21 Nov 2023 03:04:02 +0100 Subject: [PATCH 211/395] Fix Poco::Process::launch (UNIX) - memory leak when launching invalid command (#4267) * fix: memory leak in ProcessImpl #2366 * fix(Process): variable masking and spelling #2366 * feat(ProcessTest): invalid command launch test #2366 * fix(ProcessTest): handle failed launch on win #2366 * fix(ProcessTest): undefined exception #2366 --------- Co-authored-by: Pavle --- Foundation/src/Process_UNIX.cpp | 129 ++++++++++++----------- Foundation/testsuite/src/ProcessTest.cpp | 39 +++++++ Foundation/testsuite/src/ProcessTest.h | 1 + 3 files changed, 108 insertions(+), 61 deletions(-) diff --git a/Foundation/src/Process_UNIX.cpp b/Foundation/src/Process_UNIX.cpp index e2a0c6f5d..f48448d26 100644 --- a/Foundation/src/Process_UNIX.cpp +++ b/Foundation/src/Process_UNIX.cpp @@ -182,76 +182,83 @@ ProcessHandleImpl* ProcessImpl::launchByForkExecImpl(const std::string& command, // We therefore limit the maximum number of file descriptors we close. const long CLOSE_FD_MAX = 100000; - // We must not allocated memory after fork(), - // therefore allocate all required buffers first. - std::vector envChars = getEnvironmentVariablesBuffer(env); - std::vector argv(args.size() + 2); - int i = 0; - argv[i++] = const_cast(command.c_str()); - for (const auto& a: args) + do { - argv[i++] = const_cast(a.c_str()); - } - argv[i] = NULL; + // We must not allocate memory after fork(), + // therefore allocate all required buffers first. - const char* pInitialDirectory = initialDirectory.empty() ? 0 : initialDirectory.c_str(); - - int pid = fork(); - if (pid < 0) - { - throw SystemException("Cannot fork process for", command); - } - else if (pid == 0) - { - if (pInitialDirectory) + std::vector envChars = getEnvironmentVariablesBuffer(env); + std::vector argv(args.size() + 2); + int i = 0; + argv[i++] = const_cast(command.c_str()); + for (const auto& a: args) { - if (chdir(pInitialDirectory) != 0) + argv[i++] = const_cast(a.c_str()); + } + argv[i] = NULL; + + const char* pInitialDirectory = initialDirectory.empty() ? 0 : initialDirectory.c_str(); + + int pid = fork(); + if (pid < 0) + { + throw SystemException("Cannot fork process for", command); + } + else if (pid == 0) + { + if (pInitialDirectory) { - _exit(72); + if (chdir(pInitialDirectory) != 0) + { + break; + } } + + // set environment variables + char* p = &envChars[0]; + while (*p) + { + putenv(p); + while (*p) ++p; + ++p; + } + + // setup redirection + if (inPipe) + { + dup2(inPipe->readHandle(), STDIN_FILENO); + inPipe->close(Pipe::CLOSE_BOTH); + } + if (options & PROCESS_CLOSE_STDIN) close(STDIN_FILENO); + + // outPipe and errPipe may be the same, so we dup first and close later + if (outPipe) dup2(outPipe->writeHandle(), STDOUT_FILENO); + if (errPipe) dup2(errPipe->writeHandle(), STDERR_FILENO); + if (outPipe) outPipe->close(Pipe::CLOSE_BOTH); + if (options & PROCESS_CLOSE_STDOUT) close(STDOUT_FILENO); + if (errPipe) errPipe->close(Pipe::CLOSE_BOTH); + if (options & PROCESS_CLOSE_STDERR) close(STDERR_FILENO); + // close all open file descriptors other than stdin, stdout, stderr + long fdMax = sysconf(_SC_OPEN_MAX); + // on some systems, sysconf(_SC_OPEN_MAX) returns a ridiculously high number + if (fdMax > CLOSE_FD_MAX) fdMax = CLOSE_FD_MAX; + for (long j = 3; j < fdMax; ++j) + { + close(j); + } + + execvp(argv[0], &argv[0]); + break; } - // set environment variables - char* p = &envChars[0]; - while (*p) - { - putenv(p); - while (*p) ++p; - ++p; - } - - // setup redirection - if (inPipe) - { - dup2(inPipe->readHandle(), STDIN_FILENO); - inPipe->close(Pipe::CLOSE_BOTH); - } - if (options & PROCESS_CLOSE_STDIN) close(STDIN_FILENO); - - // outPipe and errPipe may be the same, so we dup first and close later - if (outPipe) dup2(outPipe->writeHandle(), STDOUT_FILENO); - if (errPipe) dup2(errPipe->writeHandle(), STDERR_FILENO); - if (outPipe) outPipe->close(Pipe::CLOSE_BOTH); - if (options & PROCESS_CLOSE_STDOUT) close(STDOUT_FILENO); - if (errPipe) errPipe->close(Pipe::CLOSE_BOTH); - if (options & PROCESS_CLOSE_STDERR) close(STDERR_FILENO); - // close all open file descriptors other than stdin, stdout, stderr - long fdMax = sysconf(_SC_OPEN_MAX); - // on some systems, sysconf(_SC_OPEN_MAX) returns a ridiculously high number - if (fdMax > CLOSE_FD_MAX) fdMax = CLOSE_FD_MAX; - for (long i = 3; i < fdMax; ++i) - { - close(i); - } - - execvp(argv[0], &argv[0]); - _exit(72); + if (inPipe) inPipe->close(Pipe::CLOSE_READ); + if (outPipe) outPipe->close(Pipe::CLOSE_WRITE); + if (errPipe) errPipe->close(Pipe::CLOSE_WRITE); + return new ProcessHandleImpl(pid); } + while (false); - if (inPipe) inPipe->close(Pipe::CLOSE_READ); - if (outPipe) outPipe->close(Pipe::CLOSE_WRITE); - if (errPipe) errPipe->close(Pipe::CLOSE_WRITE); - return new ProcessHandleImpl(pid); + _exit(72); #else throw Poco::NotImplementedException("platform does not allow fork/exec"); #endif diff --git a/Foundation/testsuite/src/ProcessTest.cpp b/Foundation/testsuite/src/ProcessTest.cpp index 2bb97e909..e4712be7d 100644 --- a/Foundation/testsuite/src/ProcessTest.cpp +++ b/Foundation/testsuite/src/ProcessTest.cpp @@ -226,6 +226,44 @@ void ProcessTest::testLaunchArgs() } +void ProcessTest::testLaunchInvalidCommand() +{ + std::string name("InvalidCmd"); + std::string cmd; +#if defined(_DEBUG) && (POCO_OS != POCO_OS_ANDROID) + name += "d"; +#endif + +#if defined(POCO_OS_FAMILY_UNIX) + cmd += name; +#elif defined(_WIN32_WCE) + cmd = "\\"; + cmd += name; + cmd += ".EXE"; +#else + cmd = name; +#endif + + std::vector args; + args.push_back("arg1"); + args.push_back("arg2"); + args.push_back("arg3"); +#if defined(POCO_OS_FAMILY_UNIX) + ProcessHandle ph = Process::launch(cmd, args); + int rc = ph.wait(); + assertTrue (rc == 72); +#elif defined(POCO_OS_FAMILY_WINDOWS) + try + { + ProcessHandle ph = Process::launch(cmd, args); + int rc = ph.wait(); + fail("must fail"); + } + catch (...){} +#endif +} + + void ProcessTest::testIsRunning() { #if !defined(_WIN32_WCE) @@ -278,6 +316,7 @@ CppUnit::Test* ProcessTest::suite() CppUnit_addTest(pSuite, ProcessTest, testLaunchRedirectOut); CppUnit_addTest(pSuite, ProcessTest, testLaunchEnv); CppUnit_addTest(pSuite, ProcessTest, testLaunchArgs); + CppUnit_addTest(pSuite, ProcessTest, testLaunchInvalidCommand); CppUnit_addTest(pSuite, ProcessTest, testIsRunning); return pSuite; diff --git a/Foundation/testsuite/src/ProcessTest.h b/Foundation/testsuite/src/ProcessTest.h index a99a77645..b33a9cbf7 100644 --- a/Foundation/testsuite/src/ProcessTest.h +++ b/Foundation/testsuite/src/ProcessTest.h @@ -30,6 +30,7 @@ public: void testLaunchRedirectOut(); void testLaunchEnv(); void testLaunchArgs(); + void testLaunchInvalidCommand(); void testIsRunning(); void setUp(); From 2e608624c8ff31ed4e1cf0e952b862afb98c2513 Mon Sep 17 00:00:00 2001 From: tyler92 Date: Tue, 21 Nov 2023 05:07:24 +0300 Subject: [PATCH 212/395] fix(build): Install cmake files with resolved ENABLE_JSON and ENABLE_XML (#4227) --- Util/cmake/PocoUtilConfig.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Util/cmake/PocoUtilConfig.cmake b/Util/cmake/PocoUtilConfig.cmake index 90c1eab1c..8186435e1 100644 --- a/Util/cmake/PocoUtilConfig.cmake +++ b/Util/cmake/PocoUtilConfig.cmake @@ -1,9 +1,9 @@ include(CMakeFindDependencyMacro) find_dependency(PocoFoundation) -if(ENABLE_XML) +if(@ENABLE_XML@) find_dependency(PocoXML) endif() -if(ENABLE_JSON) +if(@ENABLE_JSON@) find_dependency(PocoJSON) endif() include("${CMAKE_CURRENT_LIST_DIR}/PocoUtilTargets.cmake") From 39e35c316dee7b199938e0190540ba98f8b26564 Mon Sep 17 00:00:00 2001 From: Andrew Auclair Date: Mon, 20 Nov 2023 22:17:19 -0500 Subject: [PATCH 213/395] SplitterChannel::addChannel() should only add a channel once SplitterChannel::addChannel() should only add a channel once to the internal vector. This prevents issues where the channel is accidentally added twice but only removed once because removeChannel stops at the first result. (#4270) --- Foundation/src/SplitterChannel.cpp | 19 +++++++----- Foundation/testsuite/src/ChannelTest.cpp | 37 ++++++++++++++++++------ Foundation/testsuite/src/ChannelTest.h | 3 +- 3 files changed, 41 insertions(+), 18 deletions(-) diff --git a/Foundation/src/SplitterChannel.cpp b/Foundation/src/SplitterChannel.cpp index af1c26c16..2b8192a65 100644 --- a/Foundation/src/SplitterChannel.cpp +++ b/Foundation/src/SplitterChannel.cpp @@ -40,10 +40,15 @@ SplitterChannel::~SplitterChannel() void SplitterChannel::addChannel(Channel::Ptr pChannel) { - poco_check_ptr (pChannel); + poco_check_ptr(pChannel); FastMutex::ScopedLock lock(_mutex); - _channels.push_back(pChannel); + + // ensure that the channel is only added once + if (std::find(_channels.begin(), _channels.end(), pChannel) == _channels.end()) + { + _channels.push_back(pChannel); + } } @@ -51,13 +56,11 @@ void SplitterChannel::removeChannel(Channel::Ptr pChannel) { FastMutex::ScopedLock lock(_mutex); - for (ChannelVec::iterator it = _channels.begin(); it != _channels.end(); ++it) + const auto it = std::find(_channels.begin(), _channels.end(), pChannel); + + if (it != _channels.end()) { - if (*it == pChannel) - { - _channels.erase(it); - break; - } + _channels.erase(it); } } diff --git a/Foundation/testsuite/src/ChannelTest.cpp b/Foundation/testsuite/src/ChannelTest.cpp index 3a7ec81e2..917ded521 100644 --- a/Foundation/testsuite/src/ChannelTest.cpp +++ b/Foundation/testsuite/src/ChannelTest.cpp @@ -35,7 +35,7 @@ using Poco::Thread; using Poco::Runnable; -class SimpleFormatter: public Formatter +class SimpleFormatter : public Formatter { public: void format(const Message& msg, std::string& text) @@ -50,7 +50,7 @@ public: class LogRunnable : public Runnable { public: - LogRunnable(AutoPtr pAsync): + LogRunnable(AutoPtr pAsync) : _pAsync(pAsync), _stop(false) { @@ -73,7 +73,7 @@ private: }; -ChannelTest::ChannelTest(const std::string& name): CppUnit::TestCase(name) +ChannelTest::ChannelTest(const std::string& name) : CppUnit::TestCase(name) { } @@ -84,16 +84,34 @@ ChannelTest::~ChannelTest() void ChannelTest::testSplitter() +{ + AutoPtr pChannel1 = new TestChannel; + AutoPtr pChannel2 = new TestChannel; + AutoPtr pSplitter = new SplitterChannel; + pSplitter->addChannel(pChannel1); + pSplitter->addChannel(pChannel2); + Message msg; + pSplitter->log(msg); + assertTrue(pChannel1->list().size() == 1); + assertTrue(pChannel2->list().size() == 1); +} + +void ChannelTest::testSplitterAddSameChannelTwice() { AutoPtr pChannel = new TestChannel; AutoPtr pSplitter = new SplitterChannel; pSplitter->addChannel(pChannel); pSplitter->addChannel(pChannel); + + assertTrue(pSplitter->count() == 1); + Message msg; pSplitter->log(msg); - assertTrue (pChannel->list().size() == 2); -} + pSplitter->removeChannel(pChannel); + + assertTrue(pSplitter->count() == 0); +} void ChannelTest::testAsync() { @@ -109,7 +127,7 @@ void ChannelTest::testAsync() pAsync->close(); lr.stop(); t.join(); - assertTrue (pChannel->list().size() >= 2); + assertTrue(pChannel->list().size() >= 2); } @@ -120,8 +138,8 @@ void ChannelTest::testFormatting() AutoPtr pFormatterChannel = new FormattingChannel(pFormatter, pChannel); Message msg("Source", "Text", Message::PRIO_INFORMATION); pFormatterChannel->log(msg); - assertTrue (pChannel->list().size() == 1); - assertTrue (pChannel->list().begin()->getText() == "Source: Text"); + assertTrue(pChannel->list().size() == 1); + assertTrue(pChannel->list().begin()->getText() == "Source: Text"); } @@ -143,7 +161,7 @@ void ChannelTest::testStream() AutoPtr pFormatterChannel = new FormattingChannel(pFormatter, pChannel); Message msg("Source", "Text", Message::PRIO_INFORMATION); pFormatterChannel->log(msg); - assertTrue (str.str().find("Source: Text") == 0); + assertTrue(str.str().find("Source: Text") == 0); } @@ -162,6 +180,7 @@ CppUnit::Test* ChannelTest::suite() CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ChannelTest"); CppUnit_addTest(pSuite, ChannelTest, testSplitter); + CppUnit_addTest(pSuite, ChannelTest, testSplitterAddSameChannelTwice); CppUnit_addTest(pSuite, ChannelTest, testAsync); CppUnit_addTest(pSuite, ChannelTest, testFormatting); CppUnit_addTest(pSuite, ChannelTest, testConsole); diff --git a/Foundation/testsuite/src/ChannelTest.h b/Foundation/testsuite/src/ChannelTest.h index a8ecba0c4..08cc23f7f 100644 --- a/Foundation/testsuite/src/ChannelTest.h +++ b/Foundation/testsuite/src/ChannelTest.h @@ -18,13 +18,14 @@ #include "CppUnit/TestCase.h" -class ChannelTest: public CppUnit::TestCase +class ChannelTest : public CppUnit::TestCase { public: ChannelTest(const std::string& name); ~ChannelTest(); void testSplitter(); + void testSplitterAddSameChannelTwice(); void testAsync(); void testFormatting(); void testConsole(); From f30d759c08b3ddaf9ec5ad52f5f77f90f45db310 Mon Sep 17 00:00:00 2001 From: Pavle Dragisic Date: Tue, 21 Nov 2023 06:36:36 +0100 Subject: [PATCH 214/395] Virtualize ServerApplication::handlePidFile() (#4223) * feat(OptionSet): Add replaceOption() #4181 * revert changes #4181 * feat: make ServerApplication::handlePidFile virtual #4181 * move handlePidFile() out of ifdef #4181 * fix(ServerApplication): move handlePidFile() out of all ifdefs #4181 --------- Co-authored-by: Pavle Co-authored-by: Aleksandar Fabijanic --- Util/include/Poco/Util/ServerApplication.h | 2 +- Util/src/ServerApplication.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Util/include/Poco/Util/ServerApplication.h b/Util/include/Poco/Util/ServerApplication.h index 85c4ed19d..ae5cea0f1 100644 --- a/Util/include/Poco/Util/ServerApplication.h +++ b/Util/include/Poco/Util/ServerApplication.h @@ -166,12 +166,12 @@ protected: #endif private: + virtual void handlePidFile(const std::string& name, const std::string& value); #if defined(POCO_VXWORKS) static Poco::Event _terminate; #elif defined(POCO_OS_FAMILY_UNIX) void handleDaemon(const std::string& name, const std::string& value); void handleUMask(const std::string& name, const std::string& value); - void handlePidFile(const std::string& name, const std::string& value); bool isDaemon(int argc, char** argv); void beDaemon(); #if POCO_OS == POCO_OS_ANDROID diff --git a/Util/src/ServerApplication.cpp b/Util/src/ServerApplication.cpp index af373113f..0d2245c1c 100644 --- a/Util/src/ServerApplication.cpp +++ b/Util/src/ServerApplication.cpp @@ -16,6 +16,7 @@ #include "Poco/Util/Option.h" #include "Poco/Util/OptionSet.h" #include "Poco/Util/OptionException.h" +#include "Poco/TemporaryFile.h" #include "Poco/FileStream.h" #include "Poco/Exception.h" #if !defined(POCO_VXWORKS) @@ -26,7 +27,6 @@ #include "Poco/Logger.h" #include "Poco/String.h" #if defined(POCO_OS_FAMILY_UNIX) && !defined(POCO_VXWORKS) -#include "Poco/TemporaryFile.h" #include #include #include @@ -706,6 +706,9 @@ void ServerApplication::handleUMask(const std::string& name, const std::string& } +#endif + + void ServerApplication::handlePidFile(const std::string& name, const std::string& value) { Poco::FileOutputStream ostr(value); @@ -717,7 +720,4 @@ void ServerApplication::handlePidFile(const std::string& name, const std::string } -#endif - - } } // namespace Poco::Util From 4a9285c997234bc216657ec8f1ce1b23b66fd223 Mon Sep 17 00:00:00 2001 From: Alexander B Date: Wed, 22 Nov 2023 02:59:24 +0300 Subject: [PATCH 215/395] Improve FifoEvent, ActiveMethod, ActiveResult (#4211) Co-authored-by: Alexander B --- Foundation/Foundation_vs140.vcxproj | 1 + Foundation/Foundation_vs150.vcxproj | 1 + Foundation/Foundation_vs160.vcxproj | 1 + Foundation/Foundation_vs170.vcxproj | 1 + Foundation/Makefile | 2 +- Foundation/include/Poco/AbstractEvent.h | 5 +- Foundation/include/Poco/ActiveStarter.h | 4 +- Foundation/include/Poco/ActiveThreadPool.h | 145 +++++++ Foundation/include/Poco/DefaultStrategy.h | 14 + Foundation/include/Poco/FIFOStrategy.h | 11 + Foundation/src/ActiveThreadPool.cpp | 363 ++++++++++++++++++ Foundation/src/NotificationQueue.cpp | 8 +- Foundation/testsuite/Makefile-Driver | 2 +- Foundation/testsuite/TestSuite_vs140.vcxproj | 4 +- Foundation/testsuite/TestSuite_vs150.vcxproj | 4 +- Foundation/testsuite/TestSuite_vs160.vcxproj | 4 +- Foundation/testsuite/TestSuite_vs170.vcxproj | 4 +- .../testsuite/src/ActiveThreadPoolTest.cpp | 103 +++++ .../testsuite/src/ActiveThreadPoolTest.h | 44 +++ Foundation/testsuite/src/FIFOEventTest.cpp | 37 ++ Foundation/testsuite/src/FIFOEventTest.h | 4 +- .../testsuite/src/ThreadingTestSuite.cpp | 2 + 22 files changed, 748 insertions(+), 16 deletions(-) create mode 100644 Foundation/include/Poco/ActiveThreadPool.h create mode 100644 Foundation/src/ActiveThreadPool.cpp create mode 100644 Foundation/testsuite/src/ActiveThreadPoolTest.cpp create mode 100644 Foundation/testsuite/src/ActiveThreadPoolTest.h diff --git a/Foundation/Foundation_vs140.vcxproj b/Foundation/Foundation_vs140.vcxproj index 385a23190..1ce7d199b 100644 --- a/Foundation/Foundation_vs140.vcxproj +++ b/Foundation/Foundation_vs140.vcxproj @@ -1385,6 +1385,7 @@ + true diff --git a/Foundation/Foundation_vs150.vcxproj b/Foundation/Foundation_vs150.vcxproj index 597ce98b1..960d00aba 100644 --- a/Foundation/Foundation_vs150.vcxproj +++ b/Foundation/Foundation_vs150.vcxproj @@ -1385,6 +1385,7 @@ + true diff --git a/Foundation/Foundation_vs160.vcxproj b/Foundation/Foundation_vs160.vcxproj index 905849d71..99854dff3 100644 --- a/Foundation/Foundation_vs160.vcxproj +++ b/Foundation/Foundation_vs160.vcxproj @@ -1391,6 +1391,7 @@ + true diff --git a/Foundation/Foundation_vs170.vcxproj b/Foundation/Foundation_vs170.vcxproj index b77d103e0..0eac76c95 100644 --- a/Foundation/Foundation_vs170.vcxproj +++ b/Foundation/Foundation_vs170.vcxproj @@ -1950,6 +1950,7 @@ + true diff --git a/Foundation/Makefile b/Foundation/Makefile index 16a45cd05..447fa3629 100644 --- a/Foundation/Makefile +++ b/Foundation/Makefile @@ -6,7 +6,7 @@ include $(POCO_BASE)/build/rules/global -objects = ArchiveStrategy Ascii ASCIIEncoding AsyncChannel \ +objects = ArchiveStrategy Ascii ASCIIEncoding AsyncChannel ActiveThreadPool\ Base32Decoder Base32Encoder Base64Decoder Base64Encoder \ BinaryReader BinaryWriter Bugcheck ByteOrder Channel Checksum Clock Configurable ConsoleChannel \ Condition CountingStream DateTime LocalDateTime DateTimeFormat DateTimeFormatter DateTimeParser \ diff --git a/Foundation/include/Poco/AbstractEvent.h b/Foundation/include/Poco/AbstractEvent.h index d3724c909..032f1477d 100644 --- a/Foundation/include/Poco/AbstractEvent.h +++ b/Foundation/include/Poco/AbstractEvent.h @@ -339,9 +339,8 @@ protected: } NotifyAsyncParams params = par; - TArgs retArgs(params.args); - params.ptrStrat->notify(params.pSender, retArgs); - return retArgs; + params.ptrStrat->notify(params.pSender, params.args); + return params.args; } TStrategy _strategy; /// The strategy used to notify observers. diff --git a/Foundation/include/Poco/ActiveStarter.h b/Foundation/include/Poco/ActiveStarter.h index c1e211738..66c300ac0 100644 --- a/Foundation/include/Poco/ActiveStarter.h +++ b/Foundation/include/Poco/ActiveStarter.h @@ -19,7 +19,7 @@ #include "Poco/Foundation.h" -#include "Poco/ThreadPool.h" +#include "Poco/ActiveThreadPool.h" #include "Poco/ActiveRunnable.h" @@ -36,7 +36,7 @@ class ActiveStarter public: static void start(OwnerType* /*pOwner*/, ActiveRunnableBase::Ptr pRunnable) { - ThreadPool::defaultPool().start(*pRunnable); + ActiveThreadPool::defaultPool().start(*pRunnable); pRunnable->duplicate(); // The runnable will release itself. } }; diff --git a/Foundation/include/Poco/ActiveThreadPool.h b/Foundation/include/Poco/ActiveThreadPool.h new file mode 100644 index 000000000..5c04a8ff0 --- /dev/null +++ b/Foundation/include/Poco/ActiveThreadPool.h @@ -0,0 +1,145 @@ +// +// ActiveThreadPool.h +// +// Library: Foundation +// Package: Threading +// Module: ActiveThreadPool +// +// Definition of the ActiveThreadPool class. +// +// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef Foundation_ActiveThreadPool_INCLUDED +#define Foundation_ActiveThreadPool_INCLUDED + + +#include "Poco/Foundation.h" +#include "Poco/Thread.h" +#include "Poco/Mutex.h" +#include "Poco/Environment.h" +#include + + +namespace Poco { + + +class Runnable; +class ActiveThread; + + +class Foundation_API ActiveThreadPool + /// A thread pool always keeps a number of threads running, ready + /// to accept work. + /// Threads in an active thread pool are re-used + /// Every thread in the pool has own notification-queue with Runnable + /// Every Runnable executes on next thread (round-robin model) + /// The thread pool always keeps fixed number of threads running. + /// Use case for this pool is running many (more than os-max-thread-count) short live tasks + /// Round-robin model allow efficiently utilize cpu cores +{ +public: + ActiveThreadPool(int capacity = static_cast(Environment::processorCount()) + 1, + int stackSize = POCO_THREAD_STACK_SIZE); + /// Creates a thread pool with fixed capacity threads. + /// Threads are created with given stack size. + + ActiveThreadPool(std::string name, + int capacity = static_cast(Environment::processorCount()) + 1, + int stackSize = POCO_THREAD_STACK_SIZE); + /// Creates a thread pool with the given name and fixed capacity threads. + /// Threads are created with given stack size. + + ~ActiveThreadPool(); + /// Currently running threads will remain active + /// until they complete. + + int capacity() const; + /// Returns the capacity of threads. + + int getStackSize() const; + /// Returns the stack size used to create new threads. + + void start(Runnable& target); + /// Obtains a thread and starts the target. + + void start(Runnable& target, const std::string& name); + /// Obtains a thread and starts the target. + /// Assigns the given name to the thread. + + void startWithPriority(Thread::Priority priority, Runnable& target); + /// Obtains a thread, adjusts the thread's priority, and starts the target. + + void startWithPriority(Thread::Priority priority, Runnable& target, const std::string& name); + /// Obtains a thread, adjusts the thread's priority, and starts the target. + /// Assigns the given name to the thread. + + void stopAll(); + /// Stops all running threads and waits for their completion. + /// + /// Will also delete all thread objects. + /// If used, this method should be the last action before + /// the thread pool is deleted. + /// + /// Note: If a thread fails to stop within 10 seconds + /// (due to a programming error, for example), the + /// underlying thread object will not be deleted and + /// this method will return anyway. This allows for a + /// more or less graceful shutdown in case of a misbehaving + /// thread. + + void joinAll(); + /// Waits for all threads to complete. + /// + /// Note that this will join() underlying + /// threads and restart them for next tasks. + + const std::string& name() const; + /// Returns the name of the thread pool, + /// or an empty string if no name has been + /// specified in the constructor. + + static ActiveThreadPool& defaultPool(); + /// Returns a reference to the default + /// thread pool. + +protected: + ActiveThread* getThread(); + ActiveThread* createThread(); + +private: + ActiveThreadPool(const ActiveThreadPool& pool); + ActiveThreadPool& operator = (const ActiveThreadPool& pool); + + typedef std::vector ThreadVec; + + std::string _name; + int _capacity; + int _serial; + int _stackSize; + ThreadVec _threads; + mutable FastMutex _mutex; + std::atomic _lastThreadIndex{0}; +}; + + +inline int ActiveThreadPool::getStackSize() const +{ + return _stackSize; +} + + +inline const std::string& ActiveThreadPool::name() const +{ + return _name; +} + + +} // namespace Poco + + +#endif // Foundation_ActiveThreadPool_INCLUDED diff --git a/Foundation/include/Poco/DefaultStrategy.h b/Foundation/include/Poco/DefaultStrategy.h index 905acacc4..ede9d051e 100644 --- a/Foundation/include/Poco/DefaultStrategy.h +++ b/Foundation/include/Poco/DefaultStrategy.h @@ -147,6 +147,11 @@ public: { } + DefaultStrategy(DefaultStrategy&& s): + _delegates(std::move(s._delegates)) + { + } + ~DefaultStrategy() { } @@ -201,6 +206,15 @@ public: return *this; } + DefaultStrategy& operator = (DefaultStrategy&& s) + { + if (this != &s) + { + _delegates = std::move(s._delegates); + } + return *this; + } + void clear() { for (Iterator it = _delegates.begin(); it != _delegates.end(); ++it) diff --git a/Foundation/include/Poco/FIFOStrategy.h b/Foundation/include/Poco/FIFOStrategy.h index b69ca6c9d..577bb4ee2 100644 --- a/Foundation/include/Poco/FIFOStrategy.h +++ b/Foundation/include/Poco/FIFOStrategy.h @@ -41,6 +41,11 @@ public: { } + FIFOStrategy(FIFOStrategy&& s): + DefaultStrategy(std::move(s)) + { + } + ~FIFOStrategy() { } @@ -50,6 +55,12 @@ public: DefaultStrategy::operator = (s); return *this; } + + FIFOStrategy& operator = (FIFOStrategy&& s) + { + DefaultStrategy::operator = (s); + return *this; + } }; diff --git a/Foundation/src/ActiveThreadPool.cpp b/Foundation/src/ActiveThreadPool.cpp new file mode 100644 index 000000000..b7a9170fd --- /dev/null +++ b/Foundation/src/ActiveThreadPool.cpp @@ -0,0 +1,363 @@ +// +// ActiveThreadPool.cpp +// +// Library: Foundation +// Package: Threading +// Module: ActiveThreadPool +// +// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/ActiveThreadPool.h" +#include "Poco/Runnable.h" +#include "Poco/Thread.h" +#include "Poco/Event.h" +#include "Poco/ThreadLocal.h" +#include "Poco/ErrorHandler.h" +#include "Poco/NotificationQueue.h" +#include +#include +#include + +namespace Poco { + +class NewActionNotification: public Notification +{ +public: + NewActionNotification(Thread::Priority priority, Runnable &runnable, std::string name) : + _priority(priority), + _runnable(runnable), + _name(std::move(name)) + { } + + ~NewActionNotification() override = default; + + Runnable& runnable() const + { + return _runnable; + } + + Thread::Priority priotity() const + { + return _priority; + } + + const std::string &threadName() const + { + return _name; + } + + std::string threadFullName() const + { + std::string fullName(_name); + if (_name.empty()) + { + fullName = _name; + } + else + { + fullName.append(" ("); + fullName.append(_name); + fullName.append(")"); + } + return fullName; + } + +private: + Thread::Priority _priority; + Runnable &_runnable; + std::string _name; +}; + +class ActiveThread: public Runnable +{ +public: + ActiveThread(const std::string& name, int stackSize = POCO_THREAD_STACK_SIZE); + ~ActiveThread() override = default; + + void start(); + void start(Thread::Priority priority, Runnable& target); + void start(Thread::Priority priority, Runnable& target, const std::string& name); + void join(); + void release(); + void run() override; + +private: + NotificationQueue _pTargetQueue; + std::string _name; + Thread _thread; + Event _targetCompleted; + FastMutex _mutex; + const long JOIN_TIMEOUT = 10000; + std::atomic _needToStop{false}; +}; + + +ActiveThread::ActiveThread(const std::string& name, int stackSize): + _name(name), + _thread(name), + _targetCompleted(false) +{ + poco_assert_dbg (stackSize >= 0); + _thread.setStackSize(stackSize); +} + +void ActiveThread::start() +{ + _needToStop = false; + _thread.start(*this); +} + + +void ActiveThread::start(Thread::Priority priority, Runnable& target) +{ + _pTargetQueue.enqueueNotification(Poco::makeAuto(priority, target, _name)); +} + + +void ActiveThread::start(Thread::Priority priority, Runnable& target, const std::string& name) +{ + _pTargetQueue.enqueueNotification(Poco::makeAuto(priority, target, name)); +} + +void ActiveThread::join() +{ + _pTargetQueue.wakeUpAll(); + if (!_pTargetQueue.empty()) + { + _targetCompleted.wait(); + } + +} + + +void ActiveThread::release() +{ + // In case of a statically allocated thread pool (such + // as the default thread pool), Windows may have already + // terminated the thread before we got here. + if (_thread.isRunning()) + { + _needToStop = true; + _pTargetQueue.wakeUpAll(); + if (!_pTargetQueue.empty()) + _targetCompleted.wait(JOIN_TIMEOUT); + } + + if (_thread.tryJoin(JOIN_TIMEOUT)) + { + delete this; + } +} + + +void ActiveThread::run() +{ + do { + auto *_pTarget = dynamic_cast(_pTargetQueue.waitDequeueNotification()); + while (_pTarget) + { + Runnable* pTarget = &_pTarget->runnable(); + _thread.setPriority(_pTarget->priotity()); + _thread.setName(_pTarget->name()); + try + { + pTarget->run(); + } + catch (Exception& exc) + { + ErrorHandler::handle(exc); + } + catch (std::exception& exc) + { + ErrorHandler::handle(exc); + } + catch (...) + { + ErrorHandler::handle(); + } + _pTarget->release(); + _thread.setName(_name); + _thread.setPriority(Thread::PRIO_NORMAL); + ThreadLocalStorage::clear(); + _pTarget = dynamic_cast(_pTargetQueue.waitDequeueNotification(1000)); + } + _targetCompleted.set(); + } + while (_needToStop == false); +} + + +ActiveThreadPool::ActiveThreadPool(int capacity, int stackSize): + _capacity(capacity), + _serial(0), + _stackSize(stackSize), + _lastThreadIndex(0) +{ + poco_assert (_capacity >= 1); + + _threads.reserve(_capacity); + + for (int i = 0; i < _capacity; i++) + { + ActiveThread* pThread = createThread(); + _threads.push_back(pThread); + pThread->start(); + } +} + + +ActiveThreadPool::ActiveThreadPool(std::string name, int capacity, int stackSize): + _name(std::move(name)), + _capacity(capacity), + _serial(0), + _stackSize(stackSize), + _lastThreadIndex(0) +{ + poco_assert (_capacity >= 1); + + _threads.reserve(_capacity); + + for (int i = 0; i < _capacity; i++) + { + ActiveThread* pThread = createThread(); + _threads.push_back(pThread); + pThread->start(); + } +} + + +ActiveThreadPool::~ActiveThreadPool() +{ + try + { + stopAll(); + } + catch (...) + { + poco_unexpected(); + } +} + + +int ActiveThreadPool::capacity() const +{ + return _capacity; +} + + +void ActiveThreadPool::start(Runnable& target) +{ + getThread()->start(Thread::PRIO_NORMAL, target); +} + + +void ActiveThreadPool::start(Runnable& target, const std::string& name) +{ + getThread()->start(Thread::PRIO_NORMAL, target, name); +} + + +void ActiveThreadPool::startWithPriority(Thread::Priority priority, Runnable& target) +{ + getThread()->start(priority, target); +} + + +void ActiveThreadPool::startWithPriority(Thread::Priority priority, Runnable& target, const std::string& name) +{ + getThread()->start(priority, target, name); +} + + +void ActiveThreadPool::stopAll() +{ + FastMutex::ScopedLock lock(_mutex); + + for (auto pThread: _threads) + { + pThread->release(); + } + _threads.clear(); +} + + +void ActiveThreadPool::joinAll() +{ + FastMutex::ScopedLock lock(_mutex); + + for (auto pThread: _threads) + { + pThread->join(); + } + + _threads.clear(); + _threads.reserve(_capacity); + + for (int i = 0; i < _capacity; i++) + { + ActiveThread* pThread = createThread(); + _threads.push_back(pThread); + pThread->start(); + } +} + +ActiveThread* ActiveThreadPool::getThread() +{ + auto thrSize = _threads.size(); + auto i = (_lastThreadIndex++) % thrSize; + ActiveThread* pThread = _threads[i]; + return pThread; +} + + +ActiveThread* ActiveThreadPool::createThread() +{ + std::ostringstream name; + name << _name << "[#active-thread-" << ++_serial << "]"; + return new ActiveThread(name.str(), _stackSize); +} + + +class ActiveThreadPoolSingletonHolder +{ +public: + ActiveThreadPoolSingletonHolder() = default; + ~ActiveThreadPoolSingletonHolder() + { + delete _pPool; + } + ActiveThreadPool* pool() + { + FastMutex::ScopedLock lock(_mutex); + + if (!_pPool) + { + _pPool = new ActiveThreadPool("default-active"); + } + return _pPool; + } + +private: + ActiveThreadPool* _pPool{nullptr}; + FastMutex _mutex; +}; + + +namespace +{ + static ActiveThreadPoolSingletonHolder sh; +} + + +ActiveThreadPool& ActiveThreadPool::defaultPool() +{ + return *sh.pool(); +} + + +} // namespace Poco diff --git a/Foundation/src/NotificationQueue.cpp b/Foundation/src/NotificationQueue.cpp index 88a182a38..c365baeab 100644 --- a/Foundation/src/NotificationQueue.cpp +++ b/Foundation/src/NotificationQueue.cpp @@ -45,13 +45,13 @@ void NotificationQueue::enqueueNotification(Notification::Ptr pNotification) FastMutex::ScopedLock lock(_mutex); if (_waitQueue.empty()) { - _nfQueue.push_back(pNotification); + _nfQueue.push_back(std::move(pNotification)); } else { WaitInfo* pWI = _waitQueue.front(); _waitQueue.pop_front(); - pWI->pNf = pNotification; + pWI->pNf = std::move(pNotification); pWI->nfAvailable.set(); } } @@ -63,13 +63,13 @@ void NotificationQueue::enqueueUrgentNotification(Notification::Ptr pNotificatio FastMutex::ScopedLock lock(_mutex); if (_waitQueue.empty()) { - _nfQueue.push_front(pNotification); + _nfQueue.push_front(std::move(pNotification)); } else { WaitInfo* pWI = _waitQueue.front(); _waitQueue.pop_front(); - pWI->pNf = pNotification; + pWI->pNf = std::move(pNotification); pWI->nfAvailable.set(); } } diff --git a/Foundation/testsuite/Makefile-Driver b/Foundation/testsuite/Makefile-Driver index a7a7814fa..e5230f1a5 100644 --- a/Foundation/testsuite/Makefile-Driver +++ b/Foundation/testsuite/Makefile-Driver @@ -28,7 +28,7 @@ objects = ActiveMethodTest ActivityTest ActiveDispatcherTest \ StreamsTestSuite StringTest StringTokenizerTest TaskTestSuite TaskTest \ TaskManagerTest TestChannel TeeStreamTest UTF8StringTest \ TextConverterTest TextIteratorTest TextBufferIteratorTest TextTestSuite TextEncodingTest \ - ThreadLocalTest ThreadPoolTest ThreadTest ThreadingTestSuite TimerTest \ + ThreadLocalTest ThreadPoolTest ActiveThreadPoolTest ThreadTest ThreadingTestSuite TimerTest \ TimespanTest TimestampTest TimezoneTest URIStreamOpenerTest URITest \ URITestSuite UUIDGeneratorTest UUIDTest UUIDTestSuite ZLibTest \ TestPlugin DummyDelegate BasicEventTest FIFOEventTest PriorityEventTest EventTestSuite \ diff --git a/Foundation/testsuite/TestSuite_vs140.vcxproj b/Foundation/testsuite/TestSuite_vs140.vcxproj index 089e45fc9..fa71aeb29 100644 --- a/Foundation/testsuite/TestSuite_vs140.vcxproj +++ b/Foundation/testsuite/TestSuite_vs140.vcxproj @@ -723,6 +723,7 @@ + @@ -864,6 +865,7 @@ + @@ -887,4 +889,4 @@ - \ No newline at end of file + diff --git a/Foundation/testsuite/TestSuite_vs150.vcxproj b/Foundation/testsuite/TestSuite_vs150.vcxproj index c67f7c8bf..03036de2e 100644 --- a/Foundation/testsuite/TestSuite_vs150.vcxproj +++ b/Foundation/testsuite/TestSuite_vs150.vcxproj @@ -723,6 +723,7 @@ + @@ -864,6 +865,7 @@ + @@ -887,4 +889,4 @@ - \ No newline at end of file + diff --git a/Foundation/testsuite/TestSuite_vs160.vcxproj b/Foundation/testsuite/TestSuite_vs160.vcxproj index 65082cfb7..ed453e07a 100644 --- a/Foundation/testsuite/TestSuite_vs160.vcxproj +++ b/Foundation/testsuite/TestSuite_vs160.vcxproj @@ -730,6 +730,7 @@ + @@ -871,6 +872,7 @@ + @@ -894,4 +896,4 @@ - \ No newline at end of file + diff --git a/Foundation/testsuite/TestSuite_vs170.vcxproj b/Foundation/testsuite/TestSuite_vs170.vcxproj index 754b4a140..b476e428f 100644 --- a/Foundation/testsuite/TestSuite_vs170.vcxproj +++ b/Foundation/testsuite/TestSuite_vs170.vcxproj @@ -1021,6 +1021,7 @@ + @@ -1162,6 +1163,7 @@ + @@ -1185,4 +1187,4 @@ - \ No newline at end of file + diff --git a/Foundation/testsuite/src/ActiveThreadPoolTest.cpp b/Foundation/testsuite/src/ActiveThreadPoolTest.cpp new file mode 100644 index 000000000..1bef49d0b --- /dev/null +++ b/Foundation/testsuite/src/ActiveThreadPoolTest.cpp @@ -0,0 +1,103 @@ +// +// ActiveThreadPoolTest.cpp +// +// Copyright (c) 2004-2023, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "ActiveThreadPoolTest.h" +#include "CppUnit/TestCaller.h" +#include "CppUnit/TestSuite.h" +#include "Poco/ActiveThreadPool.h" +#include "Poco/RunnableAdapter.h" +#include "Poco/Exception.h" +#include "Poco/Thread.h" +#include "Poco/Environment.h" + + +using Poco::ActiveThreadPool; +using Poco::RunnableAdapter; +using Poco::Thread; +using Poco::Environment; + + +ActiveThreadPoolTest::ActiveThreadPoolTest(const std::string& name): CppUnit::TestCase(name) +{ +} + + +ActiveThreadPoolTest::~ActiveThreadPoolTest() +{ +} + + +void ActiveThreadPoolTest::testActiveThreadPool() +{ + ActiveThreadPool pool; + + assertTrue (pool.capacity() == static_cast(Environment::processorCount()) + 1); + + RunnableAdapter ra(*this, &ActiveThreadPoolTest::count); + + try + { + for (int i = 0; i < 2000; ++i) + { + pool.start(ra); + } + } + catch (...) + { + failmsg("wrong exception thrown"); + } + + pool.joinAll(); + + assertTrue (_count == 2000); + + _count = 0; + try + { + for (int i = 0; i < 1000; ++i) + { + pool.start(ra); + } + } + catch (...) + { + failmsg("wrong exception thrown"); + } + pool.joinAll(); + + assertTrue (_count == 1000); +} + + +void ActiveThreadPoolTest::setUp() +{ + _count = 0; +} + + +void ActiveThreadPoolTest::tearDown() +{ +} + + +void ActiveThreadPoolTest::count() +{ + ++_count; +} + + +CppUnit::Test* ActiveThreadPoolTest::suite() +{ + CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ActiveThreadPoolTest"); + + CppUnit_addTest(pSuite, ActiveThreadPoolTest, testActiveThreadPool); + + return pSuite; +} diff --git a/Foundation/testsuite/src/ActiveThreadPoolTest.h b/Foundation/testsuite/src/ActiveThreadPoolTest.h new file mode 100644 index 000000000..51df83735 --- /dev/null +++ b/Foundation/testsuite/src/ActiveThreadPoolTest.h @@ -0,0 +1,44 @@ +// +// ActiveThreadPoolTest.h +// +// Definition of the ActiveThreadPoolTest class. +// +// Copyright (c) 2004-2023, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef ActiveThreadPoolTest_INCLUDED +#define ActiveThreadPoolTest_INCLUDED + + +#include "Poco/Foundation.h" +#include "CppUnit/TestCase.h" +#include "Poco/Event.h" +#include "Poco/AtomicCounter.h" + + +class ActiveThreadPoolTest: public CppUnit::TestCase +{ +public: + ActiveThreadPoolTest(const std::string& name); + ~ActiveThreadPoolTest(); + + void testActiveThreadPool(); + + void setUp(); + void tearDown(); + + static CppUnit::Test* suite(); + +protected: + void count(); + +private: + Poco::AtomicCounter _count; +}; + + +#endif // ActiveThreadPoolTest_INCLUDED diff --git a/Foundation/testsuite/src/FIFOEventTest.cpp b/Foundation/testsuite/src/FIFOEventTest.cpp index 9f1bd73ac..7bc5c0d94 100644 --- a/Foundation/testsuite/src/FIFOEventTest.cpp +++ b/Foundation/testsuite/src/FIFOEventTest.cpp @@ -16,6 +16,8 @@ #include "Poco/Expire.h" #include "Poco/Thread.h" #include "Poco/Exception.h" +#include "Poco/Stopwatch.h" +#include using namespace Poco; @@ -347,6 +349,35 @@ void FIFOEventTest::testAsyncNotify() assertTrue (_count == LARGEINC); } +void FIFOEventTest::testAsyncNotifyBenchmark() +{ + Poco::FIFOEvent simple; + simple += delegate(this, &FIFOEventTest::onAsyncBench); + assertTrue (_count == 0); + const int cnt = 10000; + int runCount = 1000; + const Poco::Int64 allCount = cnt * runCount; + Poco::Stopwatch sw; + sw.restart(); + while (runCount-- > 0) + { + std::vector> vresult; + vresult.reserve(cnt); + for (int i = 0; i < cnt; ++i) + { + vresult.push_back(simple.notifyAsync(this, i)); + } + + for (int i = 0; i < cnt; ++i) + { + vresult[i].wait(); + assertTrue (vresult[i].data() == (i*2)); + } + } + sw.stop(); + std::cout << "notify and wait time = " << sw.elapsed() / 1000 << std::endl; + assertTrue (_count == allCount); +} void FIFOEventTest::onVoid(const void* pSender) { @@ -402,6 +433,11 @@ void FIFOEventTest::onAsync(const void* pSender, int& i) _count += LARGEINC ; } +void FIFOEventTest::onAsyncBench(const void* pSender, int& i) +{ + ++_count; + i *= 2; +} int FIFOEventTest::getCount() const { @@ -446,5 +482,6 @@ CppUnit::Test* FIFOEventTest::suite() CppUnit_addTest(pSuite, FIFOEventTest, testExpireReRegister); CppUnit_addTest(pSuite, FIFOEventTest, testOverwriteDelegate); CppUnit_addTest(pSuite, FIFOEventTest, testAsyncNotify); + CppUnit_addTest(pSuite, FIFOEventTest, testAsyncNotifyBenchmark); return pSuite; } diff --git a/Foundation/testsuite/src/FIFOEventTest.h b/Foundation/testsuite/src/FIFOEventTest.h index 84113cd78..f66d6a802 100644 --- a/Foundation/testsuite/src/FIFOEventTest.h +++ b/Foundation/testsuite/src/FIFOEventTest.h @@ -45,6 +45,7 @@ public: void testReturnParams(); void testOverwriteDelegate(); void testAsyncNotify(); + void testAsyncNotifyBenchmark(); void setUp(); void tearDown(); @@ -60,10 +61,11 @@ protected: void onConstComplex(const void* pSender, const Poco::EventArgs*& i); void onConst2Complex(const void* pSender, const Poco::EventArgs * const & i); void onAsync(const void* pSender, int& i); + void onAsyncBench(const void* pSender, int& i); int getCount() const; private: - std::atomic _count; + std::atomic _count; }; diff --git a/Foundation/testsuite/src/ThreadingTestSuite.cpp b/Foundation/testsuite/src/ThreadingTestSuite.cpp index 18bc6fd1c..11936a86e 100644 --- a/Foundation/testsuite/src/ThreadingTestSuite.cpp +++ b/Foundation/testsuite/src/ThreadingTestSuite.cpp @@ -19,6 +19,7 @@ #include "ActiveMethodTest.h" #include "ActiveDispatcherTest.h" #include "ConditionTest.h" +#include "ActiveThreadPoolTest.h" CppUnit::Test* ThreadingTestSuite::suite() @@ -35,6 +36,7 @@ CppUnit::Test* ThreadingTestSuite::suite() pSuite->addTest(ActiveMethodTest::suite()); pSuite->addTest(ActiveDispatcherTest::suite()); pSuite->addTest(ConditionTest::suite()); + pSuite->addTest(ActiveThreadPoolTest::suite()); return pSuite; } From b34801f4ba77fd00aea9644e40b4201b8de8e922 Mon Sep 17 00:00:00 2001 From: Tavi Cacina Date: Thu, 23 Nov 2023 02:57:01 +0100 Subject: [PATCH 216/395] fix(NetSSL_Win): Error during handshake: failed to read data (#4275) Closes #3944 --- NetSSL_Win/src/SecureSocketImpl.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/NetSSL_Win/src/SecureSocketImpl.cpp b/NetSSL_Win/src/SecureSocketImpl.cpp index 74e00e701..03aedf399 100644 --- a/NetSSL_Win/src/SecureSocketImpl.cpp +++ b/NetSSL_Win/src/SecureSocketImpl.cpp @@ -132,6 +132,15 @@ void SecureSocketImpl::initCommon() { _contextFlags |= ISC_REQ_MANUAL_CRED_VALIDATION; } + + if (_mode == MODE_CLIENT) + { + // If we do not set this, in some cases the InitializeSecurityContext() will return SEC_I_INCOMPLETE_CREDENTIALS. + // That case is not handled in the handshake, it will try to continue reading, thus blocking until timeout. + // The handling of this case would be to repeat the InitializeSecurityContext once again, or as we do here, + // inform to use a client cert if available. + _contextFlags |= ISC_REQ_USE_SUPPLIED_CREDS; + } } From 904075e1f19bfeece987698885d1008f85491697 Mon Sep 17 00:00:00 2001 From: Sokolov Yura Date: Thu, 23 Nov 2023 06:49:10 +0300 Subject: [PATCH 217/395] AutoPtr: do 'duplicate' before 'release' (#4068) Common knowledge in reference counting is "on assignment increment first then decrement", because "just to be deleted" object could hold last reference to "just to be assigned" one. Fixes #3979 --- Foundation/include/Poco/AutoPtr.h | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/Foundation/include/Poco/AutoPtr.h b/Foundation/include/Poco/AutoPtr.h index 8251f4669..27f68a6b6 100644 --- a/Foundation/include/Poco/AutoPtr.h +++ b/Foundation/include/Poco/AutoPtr.h @@ -110,34 +110,23 @@ public: { if (_ptr != ptr) { - if (_ptr) _ptr->release(); - _ptr = ptr; - if (shared && _ptr) _ptr->duplicate(); + if (shared && ptr) ptr->duplicate(); + std::swap(_ptr, ptr); + if (ptr) ptr->release(); } return *this; } AutoPtr& assign(const AutoPtr& ptr) { - if (&ptr != this) - { - if (_ptr) _ptr->release(); - _ptr = ptr._ptr; - if (_ptr) _ptr->duplicate(); - } - return *this; + return assign(ptr._ptr, true); } template AutoPtr& assign(const AutoPtr& ptr) { - if (ptr.get() != _ptr) - { - if (_ptr) _ptr->release(); - _ptr = const_cast(ptr.get()); - if (_ptr) _ptr->duplicate(); - } - return *this; + C* nptr = const_cast(ptr.get()); + return assign(nptr, true); } void reset() From 70bb3a40dee845cc0d31df9dac4b8df861c2edb9 Mon Sep 17 00:00:00 2001 From: Pavle Dragisic Date: Fri, 24 Nov 2023 20:22:01 +0100 Subject: [PATCH 218/395] Add ProcessRunner and PIDFile (#4225) * feat(Foundation): PIDFile and ProcessRunner #4064 * feat(Thread): optional signal blocking on POSIX #2978 * fix(ProcessRunner):remove logger, code enhancement #4225 * feat(Foundation): add PIDFile and ProcessRunner Tests #4064 * fix(Foundation): failing ProcessRunner Test #4064 * fix(PIDFile): remove append argument #4064 * remove Windows TODO from ProcessRunner #4064 * feat(ProcessRunnerTest): add line to checkTimeout #4064 * fix(ProcessRunner): add done flag to run() #4064 * fix(ProcessRunnerTest): add missing pidFile argument #4064 * chore(ProcessRunner): remove comments #4064 * fix(ProcessRunner): add runCount flag #4064 * fix(test): SharedLibrary and Class tests paths * fix(ProcessRunner): thread sanitizer reported data races #4064 * fix(build): pass env var to testrunner #4064 * chore(PIDFile): remove ; in comments #4064 * feat(ProcessRunner): add Win argument format #4064 * fix(Tests): add ProcessRunnerTest to vcxproj #4064 * fix(Tests): change path to TestApp #4064 * feat(Tests): windows processrunner tests #4064 * fix(Tests): duplicate ProcessRunnerTest in TestSuite vcxproj #4064 * fix(CodeQL): sw declaration hides variable #4064 * fix test binaries path for cmake * fix(Build): missing include/PIDFile.h buildWin #4064 * fix(Build): add PocoFoundation depend in buildWin #4064 * feat(ProcessRunner): test process launching multiple threads #2976 --------- Co-authored-by: Pavle Co-authored-by: Alex Fabijanic --- Data/src/sql-parser/src/sqlparser_win.h | 2 +- Foundation/Foundation_vs140.vcxproj | 4 + Foundation/Foundation_vs140.vcxproj.filters | 12 + Foundation/Foundation_vs150.vcxproj | 4 + Foundation/Foundation_vs150.vcxproj.filters | 12 + Foundation/Foundation_vs160.vcxproj | 4 + Foundation/Foundation_vs160.vcxproj.filters | 12 + Foundation/Foundation_vs170.vcxproj | 4 + Foundation/Foundation_vs170.vcxproj.filters | 12 + Foundation/Makefile | 2 +- Foundation/include/Poco/PIDFile.h | 101 +++++ Foundation/include/Poco/ProcessRunner.h | 199 ++++++++++ Foundation/include/Poco/Process_UNIX.h | 3 +- Foundation/include/Poco/Thread.h | 16 +- Foundation/include/Poco/Thread_POSIX.h | 1 + Foundation/src/PIDFile.cpp | 122 ++++++ Foundation/src/ProcessRunner.cpp | 217 +++++++++++ Foundation/src/Thread.cpp | 10 +- Foundation/src/Thread_POSIX.cpp | 15 + Foundation/testsuite/Makefile-Driver | 2 +- Foundation/testsuite/TestApp_vs170.vcxproj | 90 +++-- Foundation/testsuite/TestSuite_vs170.vcxproj | 2 + .../testsuite/TestSuite_vs170.vcxproj.filters | 6 + Foundation/testsuite/src/ClassLoaderTest.cpp | 77 ++-- Foundation/testsuite/src/ClassLoaderTest.h | 1 + .../testsuite/src/ProcessRunnerTest.cpp | 348 ++++++++++++++++++ Foundation/testsuite/src/ProcessRunnerTest.h | 44 +++ Foundation/testsuite/src/ProcessTest.cpp | 3 + Foundation/testsuite/src/ProcessTest.h | 1 + .../testsuite/src/ProcessesTestSuite.cpp | 2 + .../testsuite/src/SharedLibraryTest.cpp | 64 ++-- Foundation/testsuite/src/SharedLibraryTest.h | 1 + Foundation/testsuite/src/TestApp.cpp | 165 +++++++++ build/script/runtests.sh | 2 +- poco_env.bash | 2 + tsan.suppress | 2 +- 36 files changed, 1469 insertions(+), 95 deletions(-) create mode 100644 Foundation/include/Poco/PIDFile.h create mode 100644 Foundation/include/Poco/ProcessRunner.h create mode 100644 Foundation/src/PIDFile.cpp create mode 100644 Foundation/src/ProcessRunner.cpp create mode 100644 Foundation/testsuite/src/ProcessRunnerTest.cpp create mode 100644 Foundation/testsuite/src/ProcessRunnerTest.h diff --git a/Data/src/sql-parser/src/sqlparser_win.h b/Data/src/sql-parser/src/sqlparser_win.h index 121f28a71..f7a273f85 100644 --- a/Data/src/sql-parser/src/sqlparser_win.h +++ b/Data/src/sql-parser/src/sqlparser_win.h @@ -11,7 +11,7 @@ #ifdef Data_API #define SQLParser_API Data_API - #ifdef Data_EXPORTS + #if defined(Data_EXPORTS) && !defined(SQLParser_EXPORTS) #define SQLParser_EXPORTS #endif #else diff --git a/Foundation/Foundation_vs140.vcxproj b/Foundation/Foundation_vs140.vcxproj index 1ce7d199b..878e178e4 100644 --- a/Foundation/Foundation_vs140.vcxproj +++ b/Foundation/Foundation_vs140.vcxproj @@ -1093,6 +1093,7 @@ + @@ -1168,6 +1169,7 @@ true true + @@ -1655,6 +1657,7 @@ + @@ -1673,6 +1676,7 @@ + diff --git a/Foundation/Foundation_vs140.vcxproj.filters b/Foundation/Foundation_vs140.vcxproj.filters index 319858164..4989d157a 100644 --- a/Foundation/Foundation_vs140.vcxproj.filters +++ b/Foundation/Foundation_vs140.vcxproj.filters @@ -642,6 +642,9 @@ Processes\Source Files + + Processes\Source Files + Processes\Source Files @@ -669,6 +672,9 @@ Processes\Source Files + + Processes\Source Files + Processes\Source Files @@ -1514,6 +1520,9 @@ Processes\Header Files + + Processes\Header Files + Processes\Header Files @@ -1541,6 +1550,9 @@ Processes\Header Files + + Processes\Header Files + Processes\Header Files diff --git a/Foundation/Foundation_vs150.vcxproj b/Foundation/Foundation_vs150.vcxproj index 960d00aba..e48de4e18 100644 --- a/Foundation/Foundation_vs150.vcxproj +++ b/Foundation/Foundation_vs150.vcxproj @@ -1093,6 +1093,7 @@ + @@ -1168,6 +1169,7 @@ true true + @@ -1655,6 +1657,7 @@ + @@ -1673,6 +1676,7 @@ + diff --git a/Foundation/Foundation_vs150.vcxproj.filters b/Foundation/Foundation_vs150.vcxproj.filters index e97e0132c..a8fc29f2d 100644 --- a/Foundation/Foundation_vs150.vcxproj.filters +++ b/Foundation/Foundation_vs150.vcxproj.filters @@ -642,6 +642,9 @@ Processes\Source Files + + Processes\Source Files + Processes\Source Files @@ -669,6 +672,9 @@ Processes\Source Files + + Processes\Source Files + Processes\Source Files @@ -1514,6 +1520,9 @@ Processes\Header Files + + Processes\Header Files + Processes\Header Files @@ -1541,6 +1550,9 @@ Processes\Header Files + + Processes\Header Files + Processes\Header Files diff --git a/Foundation/Foundation_vs160.vcxproj b/Foundation/Foundation_vs160.vcxproj index 99854dff3..791df8391 100644 --- a/Foundation/Foundation_vs160.vcxproj +++ b/Foundation/Foundation_vs160.vcxproj @@ -1099,6 +1099,7 @@ + @@ -1174,6 +1175,7 @@ true true + @@ -1661,6 +1663,7 @@ + @@ -1679,6 +1682,7 @@ + diff --git a/Foundation/Foundation_vs160.vcxproj.filters b/Foundation/Foundation_vs160.vcxproj.filters index 07fcc124b..2698f3fbb 100644 --- a/Foundation/Foundation_vs160.vcxproj.filters +++ b/Foundation/Foundation_vs160.vcxproj.filters @@ -642,6 +642,9 @@ Processes\Source Files + + Processes\Source Files + Processes\Source Files @@ -669,6 +672,9 @@ Processes\Source Files + + Processes\Source Files + Processes\Source Files @@ -1514,6 +1520,9 @@ Processes\Header Files + + Processes\Header Files + Processes\Header Files @@ -1541,6 +1550,9 @@ Processes\Header Files + + Processes\Header Files + Processes\Header Files diff --git a/Foundation/Foundation_vs170.vcxproj b/Foundation/Foundation_vs170.vcxproj index 0eac76c95..f79c42792 100644 --- a/Foundation/Foundation_vs170.vcxproj +++ b/Foundation/Foundation_vs170.vcxproj @@ -1550,6 +1550,7 @@ + @@ -1655,6 +1656,7 @@ true true + @@ -2244,6 +2246,7 @@ + @@ -2262,6 +2265,7 @@ + diff --git a/Foundation/Foundation_vs170.vcxproj.filters b/Foundation/Foundation_vs170.vcxproj.filters index fc8cd62ce..15652e5bd 100644 --- a/Foundation/Foundation_vs170.vcxproj.filters +++ b/Foundation/Foundation_vs170.vcxproj.filters @@ -642,6 +642,9 @@ Processes\Source Files + + Processes\Source Files + Processes\Source Files @@ -669,6 +672,9 @@ Processes\Source Files + + Processes\Source Files + Processes\Source Files @@ -1514,6 +1520,9 @@ Processes\Header Files + + Processes\Header Files + Processes\Header Files @@ -1541,6 +1550,9 @@ Processes\Header Files + + Processes\Header Files + Processes\Header Files diff --git a/Foundation/Makefile b/Foundation/Makefile index 447fa3629..96e0100e5 100644 --- a/Foundation/Makefile +++ b/Foundation/Makefile @@ -19,7 +19,7 @@ objects = ArchiveStrategy Ascii ASCIIEncoding AsyncChannel ActiveThreadPool\ NestedDiagnosticContext Notification NotificationCenter \ NotificationQueue PriorityNotificationQueue TimedNotificationQueue \ NullStream NumberFormatter NumberParser NumericString AbstractObserver \ - Path PatternFormatter Process PurgeStrategy RWLock Random RandomStream \ + Path PatternFormatter PIDFile Process ProcessRunner PurgeStrategy RWLock Random RandomStream \ DirectoryIteratorStrategy RegularExpression RefCountedObject Runnable RotateStrategy \ SHA1Engine SHA2Engine Semaphore SharedLibrary SimpleFileChannel \ SignalHandler SplitterChannel SortedDirectoryIterator Stopwatch StreamChannel \ diff --git a/Foundation/include/Poco/PIDFile.h b/Foundation/include/Poco/PIDFile.h new file mode 100644 index 000000000..ba5087086 --- /dev/null +++ b/Foundation/include/Poco/PIDFile.h @@ -0,0 +1,101 @@ +// +// PIDFile.h +// +// Library: Foundation +// Package: Processes +// Module: PIDFile +// +// Definition of the PIDFile class. +// +// Copyright (c) 2023, Applied Informatics Software Engineering GmbH. +// Aleph ONE Software Engineering d.o.o., +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef Foundation_PIDFile_INCLUDED +#define Foundation_PIDFile_INCLUDED + + +#include "Poco/Foundation.h" +#include + + +namespace Poco { + + +class Foundation_API PIDFile + /// A utility class, creating process ID file on + /// construction and deleting it on destruction. +{ +public: + using Ptr = std::unique_ptr; + + static const int INVALID_PID = -1; + + PIDFile(); + /// Creates the PIDFile. + + PIDFile(const std::string& fileName, bool write = true); + /// Creates the PIDFile. + /// If `fileName` is not empty, creates the PID file. + /// If `write` is true, the file is written. + + ~PIDFile(); + /// Destroys the PIDFile. + /// If fileName is not empty, deletes the PID file. + + const std::string& getName() const; + /// Returns the file name. + + void setName(const std::string& fileName); + /// Sets the file name. + + void create(); + /// Creates the file and writes PID into it. + + void destroy(); + /// Deletes the PID file and invalidates the held PID. + + int getPID() const; + /// Returns the PID. + + bool exists() const; + /// Returns true if PID file exists and its content is + /// equal to the held PID. + + static bool contains(const std::string& fileName, int pid); + /// Returns true if the `fileName` contains the given `pid`. + + static std::string& getFileName(std::string& pidFile); + /// Returns the file name. + +private: + + std::string _fileName; + int _pid = INVALID_PID; +}; + + +// +// inlines +// + +inline const std::string& PIDFile::getName() const +{ + return _fileName; +} + + +inline int PIDFile::getPID() const +{ + return _pid; +} + + +} // namespace Poco + + +#endif // Foundation_ProcessRunner_INCLUDED diff --git a/Foundation/include/Poco/ProcessRunner.h b/Foundation/include/Poco/ProcessRunner.h new file mode 100644 index 000000000..ed2fa9fdf --- /dev/null +++ b/Foundation/include/Poco/ProcessRunner.h @@ -0,0 +1,199 @@ +// +// ProcessRunner.h +// +// Library: Foundation +// Package: Processes +// Module: ProcessRunner +// +// Definition of the ProcessRunner class. +// +// Copyright (c) 2023, Applied Informatics Software Engineering GmbH. +// Aleph ONE Software Engineering d.o.o., +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef Foundation_ProcessRunner_INCLUDED +#define Foundation_ProcessRunner_INCLUDED + + +#include "Poco/Foundation.h" +#include "Poco/Process.h" +#include "Poco/ProcessOptions.h" +#include "Poco/Runnable.h" +#include "Poco/Thread.h" +#include "Poco/Format.h" +#include "Poco/Stopwatch.h" +#include +#include + + +namespace Poco { + + +class Foundation_API ProcessRunner: public Poco::Runnable + /// ProcessRunner is a wrapper class for `Poco::ProcessHandle. + /// It starts and terminates a process with enabled or disabled (default) + /// `stdio` pipes, and optionally waits for process PID to be created before + /// returning control to the caller. The process is spawned from an + /// internal thread. Starting/stopping the process may block up to + /// a certain (configurable) period of time. + /// + /// ProcessRunner can hold and control only one process at a time, which + /// can be started/stopped multiple times during the ProcessRunner lifetime. +{ +public: + using Args = Poco::Process::Args; + using PID = Poco::ProcessHandle::PID; + + static const int NO_OUT = Poco::PROCESS_CLOSE_STDOUT|Poco::PROCESS_CLOSE_STDERR; + /// Constant to prevent std out and err from being received from the process. + + ProcessRunner(const std::string& cmd, + const Args& args, + const std::string& pidFile = "", + int options = NO_OUT, + int timeout = 10, /*seconds*/ + bool startProcess = true, + const Args& pidArgFmt = pidArgFormat()); + /// Creates the ProcessRunner. + /// + /// If `pidFile` is not empty, the starting of the process waits + /// until the pid file has been updated with the new pid, and + /// the stopping of the process waits until the pid file is gone. + /// Waiting is terminated after timeout seconds. + /// + /// If `pidFile` is empty and `pidArgFmt` is not empty, autodetect + /// of PID file from `args` is attempted; the default PID file + /// argument format corresponds to the one used by + /// `Poco::Util::Application` + /// + /// The `options` are passed to the process, defaulting to + /// closed stdio output pipes. + /// + /// The `timeout` in seconds determines how long the ProcessRunner + /// waits for the process to start; if PID file name is provided or + /// autodetected from arguments, ProcessRunner will wait until the file + /// exists and contains the process PID or timeout expires (in which + /// case a TimeoutException is thrown). + /// + /// If `startProcess` is true, the process is started on object creation. + + ~ProcessRunner(); + /// Destroys the ProcessRunner. + + PID pid() const; + /// Returns the process PID. + + const std::string& pidFile() const; + /// Returns the process PID filename. + /// Returns empty string when pid filename + /// is not specified at construction, either + /// explicitly, or implicitly through + /// command line argument. + + bool running() const; + /// Returns true if process is running. + + void start(); + /// Starts the process and waits for it to be fully initialized. + /// Process initialization completion is indicated by a new pid in + /// the pid file (if specified at construction, otherwise there + /// is no wating for pid). + /// If pid file is not specified, there is no waiting. + /// + /// Attempting to start a started process results in + /// Poco::InvalidAccessException being thrown. + + void stop(); + /// Stops the process. + /// + /// Calling stop() on a stopped process is a no-op. + + std::string cmdLine() const; + /// Returns process full command line. + + int result() const; + /// Returns process return code. + + int runCount() const; + /// Returns the number of times the process has been executed. + + +private: + static const Poco::ProcessHandle::PID INVALID_PID = -1; + static const int RESULT_UNKNOWN = -1; + + static Args pidArgFormat() + { +#if defined(POCO_OS_FAMILY_WINDOWS) + return Args{"-p", "--pidfile=", "/p", "/pidfile="}; +#else + return Args{"-p", "--pidfile="}; +#endif + } + + + void run(); + /// Starts the process and waits for it to be fully initialized. + /// Process initialization completion is indicated by new pid in + /// the pid file. If pid file is not specified, there is no waiting. + + void checkTimeout(const Poco::Stopwatch& sw, const std::string& msg); + /// If timeout is exceeded, throws TimeoutException with `msg` + /// message. + + Poco::Thread _t; + std::string _cmd; + Args _args; + std::atomic _pid; + std::string _pidFile; + int _options; + int _timeout; + std::atomic _pPH; + std::atomic _started; + std::atomic _rc; + std::atomic _runCount; +}; + + +// +// inlines +// + +inline const std::string& ProcessRunner::pidFile() const +{ + return _pidFile; +} + + +inline bool ProcessRunner::running() const +{ + return _pid != INVALID_PID; +} + + +inline ProcessRunner::PID ProcessRunner::pid() const +{ + return _pid; +} + + +inline int ProcessRunner::result() const +{ + return _rc; +} + + +inline int ProcessRunner::runCount() const +{ + return _runCount; +} + + +} // namespace Poco + + +#endif // Foundation_ProcessRunner_INCLUDED diff --git a/Foundation/include/Poco/Process_UNIX.h b/Foundation/include/Poco/Process_UNIX.h index 749ddde1a..101243585 100644 --- a/Foundation/include/Poco/Process_UNIX.h +++ b/Foundation/include/Poco/Process_UNIX.h @@ -23,6 +23,7 @@ #include #include #include +#include namespace Poco { @@ -42,7 +43,7 @@ public: int tryWait() const; private: - pid_t _pid; + std::atomic _pid; }; diff --git a/Foundation/include/Poco/Thread.h b/Foundation/include/Poco/Thread.h index c7e51e597..30eaa2d51 100644 --- a/Foundation/include/Poco/Thread.h +++ b/Foundation/include/Poco/Thread.h @@ -74,11 +74,23 @@ public: POLICY_DEFAULT = POLICY_DEFAULT_IMPL }; - Thread(); + Thread(uint32_t sigMask = 0); /// Creates a thread. Call start() to start it. + /// + /// The optional sigMask parameter specifies which signals should be blocked. + /// To block a specific signal, set the corresponding bit in the sigMask. + /// Multiple bits can be set in the mask to block multiple signals if needed. + /// + /// Available on POSIX platforms only - Thread(const std::string& name); + Thread(const std::string& name, uint32_t sigMask = 0); /// Creates a named thread. Call start() to start it. + /// + /// The optional sigMask parameter specifies which signals should be blocked. + /// To block a specific signal, set the corresponding bit in the sigMask. + /// Multiple bits can be set in the mask to block multiple signals if needed. + /// + /// Available on POSIX platforms only ~Thread(); /// Destroys the thread. diff --git a/Foundation/include/Poco/Thread_POSIX.h b/Foundation/include/Poco/Thread_POSIX.h index 4d8ef6a5e..f758353d7 100644 --- a/Foundation/include/Poco/Thread_POSIX.h +++ b/Foundation/include/Poco/Thread_POSIX.h @@ -76,6 +76,7 @@ public: static int getMaxOSPriorityImpl(int policy); void setStackSizeImpl(int size); int getStackSizeImpl() const; + void setSignalMaskImpl(uint32_t sigMask); void startImpl(SharedPtr pTarget); void joinImpl(); bool joinImpl(long milliseconds); diff --git a/Foundation/src/PIDFile.cpp b/Foundation/src/PIDFile.cpp new file mode 100644 index 000000000..ed657bf1c --- /dev/null +++ b/Foundation/src/PIDFile.cpp @@ -0,0 +1,122 @@ +// +// PIDFile.cpp +// +// Library: Foundation +// Package: Processes +// Module: PIDFile +// +// Copyright (c) 2023, Applied Informatics Software Engineering GmbH. +// Aleph ONE Software Engineering d.o.o., +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/PIDFile.h" +#include "Poco/Path.h" +#include "Poco/File.h" +#include "Poco/Process.h" +#include "Poco/FileStream.h" +#include + + +using Poco::Path; +using Poco::File; +using Poco::Process; +using Poco::FileInputStream; +using Poco::FileOutputStream; + + +namespace Poco { + + +PIDFile::PIDFile() +{ +} + + +PIDFile::PIDFile(const std::string& fileName, bool write): + _fileName(fileName) +{ + if (write) create(); +} + + +PIDFile::~PIDFile() +{ + destroy(); +} + + +void PIDFile::setName(const std::string& fileName) +{ + destroy(); + _fileName = fileName; + create(); +} + + +void PIDFile::create() +{ + if (!_fileName.empty()) + { + Path p(getFileName(_fileName)); + if (!File(p.makeParent()).exists()) + File(p).createDirectories(); + _pid = static_cast(Process::id()); + FileOutputStream fos(_fileName); + fos << _pid; fos.close(); + } +} + + +void PIDFile::destroy() +{ + if (!_fileName.empty()) + { + File f(_fileName); + if (f.exists()) f.remove(); + _fileName.clear(); + } + _pid = INVALID_PID; +} + + +bool PIDFile::exists() const +{ + if (File(_fileName).exists()) + { + FileInputStream fis(_fileName); + int fPID = 0; + if (fis.peek() != std::ifstream::traits_type::eof()) + fis >> fPID; + return fPID == _pid; + } + return false; +} + + +bool PIDFile::contains(const std::string& fileName, int pid) +{ + if (File(fileName).exists()) + { + FileInputStream fis(fileName); + int fPID = 0; + if (fis.peek() != std::ifstream::traits_type::eof()) + fis >> fPID; + return fPID == pid; + } + return false; +} + + +std::string& PIDFile::getFileName(std::string& pidFile) +{ + Path p(pidFile); + pidFile = p.makeAbsolute().toString(); + return pidFile; +} + + +} // namespace Poco diff --git a/Foundation/src/ProcessRunner.cpp b/Foundation/src/ProcessRunner.cpp new file mode 100644 index 000000000..a4f868dda --- /dev/null +++ b/Foundation/src/ProcessRunner.cpp @@ -0,0 +1,217 @@ +// +// ProcessRunner.cpp +// +// Library: Foundation +// Package: Processes +// Module: ProcessRunner +// +// Copyright (c) 2023, Applied Informatics Software Engineering GmbH. +// Aleph ONE Software Engineering d.o.o., +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/ProcessRunner.h" +#include "Poco/PIDFile.h" +#include "Poco/FileStream.h" +#include "Poco/AutoPtr.h" +#include "Poco/File.h" +#include "Poco/Path.h" +#include "Poco/String.h" +#include + + +using Poco::Thread; +using Poco::Process; +using Poco::ProcessHandle; +using Poco::FileInputStream; +using Poco::AutoPtr; +using Poco::File; +using Poco::Path; +using Poco::Stopwatch; + + +namespace Poco { + + +ProcessRunner::ProcessRunner(const std::string& cmd, + const Args& args, + const std::string& pidFile, + int options, + int timeout, + bool startProcess, + const Args& pidArgFmt): _cmd(cmd), + _args(args), + _pid(INVALID_PID), + _pidFile(pidFile), + _options(options), + _timeout(timeout), + _pPH(nullptr), + _started(false), + _rc(RESULT_UNKNOWN), + _runCount(0) +{ + if (_pidFile.empty() && !_args.empty() && !pidArgFmt.empty()) + { + for (const auto& fmt : pidArgFmt) + { + for (const auto& arg : _args) + { + std::string a = Poco::trim(arg); + std::size_t pos = a.find(fmt); + if (pos == 0) + { + _pidFile = a.substr(fmt.length()); + PIDFile::getFileName(_pidFile); + break; + } + } + } + } + if (startProcess) start(); +} + + +ProcessRunner::~ProcessRunner() +{ + try + { + stop(); + } + catch (...) + { + poco_unexpected(); + } +} + + +std::string ProcessRunner::cmdLine() const +{ + std::string cmdL = _cmd + ' '; + auto it = _args.begin(); + auto end = _args.end(); + for (; it != end;) + { + cmdL.append(*it); + if (++it == end) break; + cmdL.append(1, ' '); + } + return cmdL; +} + + +void ProcessRunner::run() +{ + ProcessHandle* pPH = nullptr; + try + { + _pPH = pPH = new ProcessHandle(Process::launch(_cmd, _args, _options)); + _pid = pPH->id(); + _rc = pPH->wait(); + } + catch (...) + { + } + + _pid = INVALID_PID; + _pPH = nullptr; + ++_runCount; + delete pPH; +} + + +void ProcessRunner::stop() +{ + if (_started) + { + PID pid; + Stopwatch sw; sw.start(); + if (_pPH.exchange(nullptr) && ((pid = _pid.exchange(INVALID_PID))) != INVALID_PID) + { + while (Process::isRunning(pid)) + { + if (pid > 0) + { + Process::requestTermination(pid); + checkTimeout(sw, "Waiting for process termination"); + } + else throw Poco::IllegalStateException("Invalid PID, can;t terminate process"); + } + _t.join(); + } + + if (!_pidFile.empty()) + { + if (!_pidFile.empty()) + { + File pidFile(_pidFile); + _pidFile.clear(); + std::string msg; + Poco::format(msg, "Waiting for PID file (pidFile: '%s')", _pidFile); + sw.restart(); + while (pidFile.exists()) + checkTimeout(sw, msg); + } + } + } + _started.store(false); +} + + +void ProcessRunner::checkTimeout(const Stopwatch& sw, const std::string& msg) +{ + if (sw.elapsedSeconds() > _timeout) + { + throw Poco::TimeoutException( + Poco::format("ProcessRunner::checkTimeout(): %s", msg)); + } + Thread::sleep(10); +} + + +void ProcessRunner::start() +{ + if (!_started.exchange(true)) + { + int prevRunCnt = runCount(); + + _t.start(*this); + + std::string msg; + Poco::format(msg, "Waiting for process to start (pidFile: '%s')", _pidFile); + Stopwatch sw; sw.start(); + + // wait for the process to be either running or completed by monitoring run counts. + while (!running() && prevRunCnt >= runCount()) checkTimeout(sw, msg); + + // we could wait for the process handle != INVALID_PID, + // but if pidFile name was given, we should wait for + // the process to write it + if (!_pidFile.empty()) + { + sw.restart(); + // wait until process is fully initialized + File pidFile(_pidFile); + while (!pidFile.exists()) + checkTimeout(sw, "waiting for PID file"); + + // verify that the file content is actually the process PID + FileInputStream fis(_pidFile); + int fPID = 0; + if (fis.peek() != std::ifstream::traits_type::eof()) + fis >> fPID; + while (fPID != pid()) + { + fis.clear(); fis.seekg(0); fis >> fPID; + checkTimeout(sw, Poco::format("waiting for new PID (%s)", _pidFile)); + } + } + } + else + throw Poco::InvalidAccessException("start() called on started ProcessRunner"); +} + + +} // namespace Poco diff --git a/Foundation/src/Thread.cpp b/Foundation/src/Thread.cpp index de5cb3adb..fdc2b3bae 100644 --- a/Foundation/src/Thread.cpp +++ b/Foundation/src/Thread.cpp @@ -88,21 +88,27 @@ private: } // namespace -Thread::Thread(): +Thread::Thread(uint32_t sigMask): _id(uniqueId()), _pTLS(0), _event(true) { setNameImpl(makeName()); +#if defined(POCO_OS_FAMILY_UNIX) + setSignalMaskImpl(sigMask); +#endif } -Thread::Thread(const std::string& name): +Thread::Thread(const std::string& name, uint32_t sigMask): _id(uniqueId()), _pTLS(0), _event(true) { setNameImpl(name); +#if defined(POCO_OS_FAMILY_UNIX) + setSignalMaskImpl(sigMask); +#endif } diff --git a/Foundation/src/Thread_POSIX.cpp b/Foundation/src/Thread_POSIX.cpp index 7f01d17c7..5e1c58442 100644 --- a/Foundation/src/Thread_POSIX.cpp +++ b/Foundation/src/Thread_POSIX.cpp @@ -257,6 +257,21 @@ void ThreadImpl::setStackSizeImpl(int size) } +void ThreadImpl::setSignalMaskImpl(uint32_t sigMask) +{ + sigset_t sset; + sigemptyset(&sset); + + for (int sig = 0; sig < sizeof(uint32_t) * 8; ++sig) + { + if ((sigMask & (1 << sig)) != 0) + sigaddset(&sset, sig); + } + + pthread_sigmask(SIG_BLOCK, &sset, 0); +} + + void ThreadImpl::startImpl(SharedPtr pTarget) { { diff --git a/Foundation/testsuite/Makefile-Driver b/Foundation/testsuite/Makefile-Driver index e5230f1a5..1a2b3c64c 100644 --- a/Foundation/testsuite/Makefile-Driver +++ b/Foundation/testsuite/Makefile-Driver @@ -20,7 +20,7 @@ objects = ActiveMethodTest ActivityTest ActiveDispatcherTest \ NDCTest NotificationCenterTest NotificationQueueTest \ PriorityNotificationQueueTest TimedNotificationQueueTest \ NotificationsTestSuite NullStreamTest NumberFormatterTest \ - NumberParserTest PathTest PatternFormatterTest PBKDF2EngineTest RWLockTest \ + NumberParserTest PathTest PatternFormatterTest PBKDF2EngineTest ProcessRunnerTest RWLockTest \ RandomStreamTest RandomTest RegularExpressionTest SHA1EngineTest SHA2EngineTest \ SemaphoreTest ConditionTest SharedLibraryTest SharedLibraryTestSuite \ SimpleFileChannelTest StopwatchTest \ diff --git a/Foundation/testsuite/TestApp_vs170.vcxproj b/Foundation/testsuite/TestApp_vs170.vcxproj index c6461b28f..6d7c1f083 100644 --- a/Foundation/testsuite/TestApp_vs170.vcxproj +++ b/Foundation/testsuite/TestApp_vs170.vcxproj @@ -344,7 +344,7 @@ Disabled - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) false EnableFastChecks @@ -361,8 +361,9 @@ true + ws2_32.lib;iphlpapi.lib;PocoFoundationd.lib;%(AdditionalDependencies) bin\TestAppd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) + ..\..\lib;%(AdditionalLibraryDirectories) true bin\TestAppd.pdb Console @@ -372,7 +373,7 @@ Disabled - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL @@ -388,8 +389,9 @@ true + ws2_32.lib;iphlpapi.lib;PocoFoundationd.lib;%(AdditionalDependencies) bin64\TestAppd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) + ..\..\lib64;%(AdditionalLibraryDirectories) true bin64\TestAppd.pdb Console @@ -398,7 +400,7 @@ Disabled - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL @@ -414,8 +416,9 @@ true + ws2_32.lib;iphlpapi.lib;PocoFoundationd.lib;%(AdditionalDependencies) binA64\TestAppd.exe - ..\..\..\libA64;%(AdditionalLibraryDirectories) + ..\..\libA64;%(AdditionalLibraryDirectories) true binA64\TestAppd.pdb Console @@ -428,7 +431,7 @@ true Speed true - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -445,8 +448,9 @@ true + ws2_32.lib;iphlpapi.lib;PocoFoundation.lib;%(AdditionalDependencies) bin\TestApp.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) + ..\..\lib;%(AdditionalLibraryDirectories) false @@ -463,7 +467,7 @@ true Speed true - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -480,8 +484,9 @@ true + ws2_32.lib;iphlpapi.lib;PocoFoundation.lib;%(AdditionalDependencies) bin64\TestApp.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) + ..\..\lib64;%(AdditionalLibraryDirectories) false @@ -497,7 +502,7 @@ true Speed true - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -514,8 +519,9 @@ true + ws2_32.lib;iphlpapi.lib;PocoFoundation.lib;%(AdditionalDependencies) binA64\TestApp.exe - ..\..\..\libA64;%(AdditionalLibraryDirectories) + ..\..\libA64;%(AdditionalLibraryDirectories) false @@ -531,7 +537,7 @@ true Speed true - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -548,8 +554,9 @@ true + PocoFoundationmd.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin\static_md\TestApp.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) + ..\..\lib;%(AdditionalLibraryDirectories) false @@ -566,7 +573,7 @@ true Speed true - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -583,8 +590,9 @@ true + PocoFoundationmd.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin64\static_md\TestApp.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) + ..\..\lib64;%(AdditionalLibraryDirectories) false @@ -600,7 +608,7 @@ true Speed true - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -617,8 +625,9 @@ true + PocoFoundationmd.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) binA64\static_md\TestApp.exe - ..\..\..\libA64;%(AdditionalLibraryDirectories) + ..\..\libA64;%(AdditionalLibraryDirectories) false @@ -630,7 +639,7 @@ Disabled - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) false EnableFastChecks @@ -647,8 +656,9 @@ true + PocoFoundationmdd.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin\static_md\TestAppd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) + ..\..\lib;%(AdditionalLibraryDirectories) true bin\static_md\TestAppd.pdb Console @@ -658,7 +668,7 @@ Disabled - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL @@ -674,8 +684,9 @@ true + PocoFoundationmdd.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin64\static_md\TestAppd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) + ..\..\lib64;%(AdditionalLibraryDirectories) true bin64\static_md\TestAppd.pdb Console @@ -684,7 +695,7 @@ Disabled - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL @@ -700,8 +711,9 @@ true + PocoFoundationmdd.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) binA64\static_md\TestAppd.exe - ..\..\..\libA64;%(AdditionalLibraryDirectories) + ..\..\libA64;%(AdditionalLibraryDirectories) true binA64\static_md\TestAppd.pdb Console @@ -710,7 +722,7 @@ Disabled - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) false EnableFastChecks @@ -727,8 +739,9 @@ true + PocoFoundationmtd.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin\static_mt\TestAppd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) + ..\..\lib;%(AdditionalLibraryDirectories) true bin\static_mt\TestAppd.pdb Console @@ -738,7 +751,7 @@ Disabled - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug @@ -754,8 +767,9 @@ true + PocoFoundationmtd.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin64\static_mt\TestAppd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) + ..\..\lib64;%(AdditionalLibraryDirectories) true bin64\static_mt\TestAppd.pdb Console @@ -764,7 +778,7 @@ Disabled - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug @@ -780,8 +794,9 @@ true + PocoFoundationmtd.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) binA64\static_mt\TestAppd.exe - ..\..\..\libA64;%(AdditionalLibraryDirectories) + ..\..\libA64;%(AdditionalLibraryDirectories) true binA64\static_mt\TestAppd.pdb Console @@ -794,7 +809,7 @@ true Speed true - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -811,8 +826,9 @@ true + PocoFoundationmt.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin\static_mt\TestApp.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) + ..\..\lib;%(AdditionalLibraryDirectories) false @@ -829,7 +845,7 @@ true Speed true - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -846,8 +862,9 @@ true + PocoFoundationmt.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin64\static_mt\TestApp.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) + ..\..\lib64;%(AdditionalLibraryDirectories) false @@ -863,7 +880,7 @@ true Speed true - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -880,8 +897,9 @@ true + PocoFoundationmt.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) binA64\static_mt\TestApp.exe - ..\..\..\libA64;%(AdditionalLibraryDirectories) + ..\..\libA64;%(AdditionalLibraryDirectories) false diff --git a/Foundation/testsuite/TestSuite_vs170.vcxproj b/Foundation/testsuite/TestSuite_vs170.vcxproj index b476e428f..dc5bfaca2 100644 --- a/Foundation/testsuite/TestSuite_vs170.vcxproj +++ b/Foundation/testsuite/TestSuite_vs170.vcxproj @@ -985,6 +985,7 @@ + @@ -1127,6 +1128,7 @@ + diff --git a/Foundation/testsuite/TestSuite_vs170.vcxproj.filters b/Foundation/testsuite/TestSuite_vs170.vcxproj.filters index e2946e043..cbcc92d96 100644 --- a/Foundation/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Foundation/testsuite/TestSuite_vs170.vcxproj.filters @@ -519,6 +519,9 @@ Processes\Source Files + + Processes\Source Files + Processes\Source Files @@ -938,6 +941,9 @@ Processes\Header Files + + Processes\Header Files + Processes\Header Files diff --git a/Foundation/testsuite/src/ClassLoaderTest.cpp b/Foundation/testsuite/src/ClassLoaderTest.cpp index 93c149a05..45bafbecd 100644 --- a/Foundation/testsuite/src/ClassLoaderTest.cpp +++ b/Foundation/testsuite/src/ClassLoaderTest.cpp @@ -15,6 +15,8 @@ #include "Poco/Manifest.h" #include "Poco/Exception.h" #include "Poco/Path.h" +#include "Poco/File.h" +#include "Poco/Format.h" #include "TestPlugin.h" @@ -24,6 +26,8 @@ using Poco::SharedLibrary; using Poco::AbstractMetaObject; using Poco::NotFoundException; using Poco::InvalidAccessException; +using Poco::Path; +using Poco::File; ClassLoaderTest::ClassLoaderTest(const std::string& name): CppUnit::TestCase(name) @@ -38,17 +42,14 @@ ClassLoaderTest::~ClassLoaderTest() void ClassLoaderTest::testClassLoader1() { - std::string path = "TestLibrary"; - path.append(SharedLibrary::suffix()); - Poco::Path libraryPath = Poco::Path::current(); - libraryPath.append(path); + std::string libraryPath = getFullName("TestLibrary"); ClassLoader cl; assertTrue (cl.begin() == cl.end()); assertNullPtr (cl.findClass("PluginA")); - assertNullPtr (cl.findManifest(libraryPath.toString())); + assertNullPtr (cl.findManifest(libraryPath)); - assertTrue (!cl.isLibraryLoaded(libraryPath.toString())); + assertTrue (!cl.isLibraryLoaded(libraryPath)); try { @@ -65,7 +66,7 @@ void ClassLoaderTest::testClassLoader1() try { - const ClassLoader::Manif& POCO_UNUSED manif = cl.manifestFor(libraryPath.toString()); + const ClassLoader::Manif& POCO_UNUSED manif = cl.manifestFor(libraryPath); fail("not found - must throw exception"); } catch (NotFoundException&) @@ -80,25 +81,22 @@ void ClassLoaderTest::testClassLoader1() void ClassLoaderTest::testClassLoader2() { - std::string path = "TestLibrary"; - path.append(SharedLibrary::suffix()); - Poco::Path libraryPath = Poco::Path::current(); - libraryPath.append(path); + std::string libraryPath = getFullName("TestLibrary"); ClassLoader cl; - cl.loadLibrary(libraryPath.toString()); + cl.loadLibrary(libraryPath); assertTrue (cl.begin() != cl.end()); assertNotNullPtr (cl.findClass("PluginA")); assertNotNullPtr (cl.findClass("PluginB")); assertNotNullPtr (cl.findClass("PluginC")); - assertNotNullPtr (cl.findManifest(libraryPath.toString())); + assertNotNullPtr (cl.findManifest(libraryPath)); - assertTrue (cl.isLibraryLoaded(libraryPath.toString())); - assertTrue (cl.manifestFor(libraryPath.toString()).size() == 3); + assertTrue (cl.isLibraryLoaded(libraryPath)); + assertTrue (cl.manifestFor(libraryPath).size() == 3); ClassLoader::Iterator it = cl.begin(); assertTrue (it != cl.end()); - assertTrue (it->first == libraryPath.toString()); + assertTrue (it->first == libraryPath); assertTrue (it->second->size() == 3); ++it; assertTrue (it == cl.end()); @@ -165,32 +163,55 @@ void ClassLoaderTest::testClassLoader2() meta2.destroy(pPlugin); assertTrue (!meta2.isAutoDelete(pPlugin)); - cl.unloadLibrary(libraryPath.toString()); + cl.unloadLibrary(libraryPath); } void ClassLoaderTest::testClassLoader3() { - std::string path = "TestLibrary"; - path.append(SharedLibrary::suffix()); - Poco::Path libraryPath = Poco::Path::current(); - libraryPath.append(path); + std::string libraryPath = getFullName("TestLibrary"); ClassLoader cl; - cl.loadLibrary(libraryPath.toString()); - cl.loadLibrary(libraryPath.toString()); - cl.unloadLibrary(libraryPath.toString()); + cl.loadLibrary(libraryPath); + cl.loadLibrary(libraryPath); + cl.unloadLibrary(libraryPath); - assertTrue (cl.manifestFor(libraryPath.toString()).size() == 3); + assertTrue (cl.manifestFor(libraryPath).size() == 3); ClassLoader::Iterator it = cl.begin(); assertTrue (it != cl.end()); - assertTrue (it->first == libraryPath.toString()); + assertTrue (it->first == libraryPath); assertTrue (it->second->size() == 3); ++it; assertTrue (it == cl.end()); - cl.unloadLibrary(libraryPath.toString()); - assertNullPtr (cl.findManifest(libraryPath.toString())); + cl.unloadLibrary(libraryPath); + assertNullPtr (cl.findManifest(libraryPath)); +} + + +std::string ClassLoaderTest::getFullName(const std::string& libName) +{ + std::string name = Path::expand("$POCO_BASE"); + char c = Path::separator(); + std::string OSNAME = Path::expand("$OSNAME"); + std::string OSARCH = Path::expand("$OSARCH"); + name.append(1, c) + .append(Poco::format("Foundation%ctestsuite%cbin%c", c, c, c)) + .append(Poco::format("%s%c%s%c", OSNAME, c, OSARCH, c)) + .append(libName).append(SharedLibrary::suffix()); + + // CMake + if (!File(name).exists()) + { + name = Path::expand("$POCO_BASE"); + name.append(Poco::format("%ccmake-build%cbin%c", c, c, c)) + .append(libName).append(SharedLibrary::suffix()); + } + + if (!File(name).exists()) + name = libName + SharedLibrary::suffix(); + + return name; } diff --git a/Foundation/testsuite/src/ClassLoaderTest.h b/Foundation/testsuite/src/ClassLoaderTest.h index aef0e7531..679deab8c 100644 --- a/Foundation/testsuite/src/ClassLoaderTest.h +++ b/Foundation/testsuite/src/ClassLoaderTest.h @@ -34,6 +34,7 @@ public: static CppUnit::Test* suite(); private: + static std::string getFullName(const std::string& libName); }; diff --git a/Foundation/testsuite/src/ProcessRunnerTest.cpp b/Foundation/testsuite/src/ProcessRunnerTest.cpp new file mode 100644 index 000000000..fad57fb7b --- /dev/null +++ b/Foundation/testsuite/src/ProcessRunnerTest.cpp @@ -0,0 +1,348 @@ +// +// ProcessRunnerTest.cpp +// +// Copyright (c) 2023, Applied Informatics Software Engineering GmbH. +// Aleph ONE Software Engineering d.o.o., +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "ProcessRunnerTest.h" +#include "CppUnit/TestCaller.h" +#include "CppUnit/TestSuite.h" +#include "Poco/PIDFile.h" +#include "Poco/Format.h" +#include "Poco/Path.h" +#include "Poco/File.h" +#include "Poco/FileStream.h" + + +using namespace Poco; + + +ProcessRunnerTest::ProcessRunnerTest(const std::string& name): + CppUnit::TestCase(name) +{ +} + + +ProcessRunnerTest::~ProcessRunnerTest() +{ +} + + +void ProcessRunnerTest::testPIDFile() +{ + std::string pidFile = Path::tempHome() + "test.pid"; + + { + PIDFile f; + assertTrue (f.getName().empty()); + assertTrue (f.getPID() == PIDFile::INVALID_PID); + assertFalse (File(pidFile).exists()); + + f.setName(pidFile); + assertTrue (f.getName() == pidFile); + assertTrue (f.getPID() != PIDFile::INVALID_PID); + assertTrue (File(pidFile).exists()); + } + assertFalse (File(pidFile).exists()); + + { + PIDFile f(pidFile); + std::string pf = pidFile; + + assertTrue (f.getName() == pf); + assertTrue (File(pf).exists()); + assertTrue (f.getPID() != PIDFile::INVALID_PID); + + assertTrue (f.exists()); + } + assertFalse (File(pidFile).exists()); + + { + PIDFile f(pidFile); + assertTrue (f.getName() == pidFile); + assertTrue (File(pidFile).exists()); + assertTrue (f.getPID() != PIDFile::INVALID_PID); + + assertTrue (f.exists()); + } + assertFalse (File(pidFile).exists()); + + { + PIDFile f(pidFile, false); + std::string pf = pidFile; + + assertTrue (f.getName() == pf); + assertTrue (!File(pf).exists()); + assertTrue (f.getPID() == PIDFile::INVALID_PID); + + f.create(); + assertTrue (f.exists()); + } + assertFalse (File(pidFile).exists()); +} + + +void ProcessRunnerTest::testProcessRunner() +{ + std::string name("TestApp"); + std::string cmd; +#if defined(_DEBUG) && (POCO_OS != POCO_OS_ANDROID) + name += "d"; +#endif + +#if defined(POCO_OS_FAMILY_UNIX) + cmd += name; +#elif defined(_WIN32_WCE) + cmd = "\\"; + cmd += name; + cmd += ".EXE"; +#else + cmd = name; +#endif + + // non-auto start, no PID + { + std::vector args; + char c = Path::separator(); + std::string pidFile = Poco::format("run%c%s.pid", c, name); + args.push_back(std::string("--pidfile=").append(pidFile)); + ProcessRunner pr(cmd, args, "", ProcessRunner::NO_OUT, 10, false); + assertTrue (pr.cmdLine() == cmdLine(cmd, args)); + assertFalse (pr.running()); + pr.start(); + + Stopwatch sw; sw.start(); + while (!pr.running()) + checkTimeout(sw, "Waiting for process to start", 1000, __LINE__); + + assertTrue (pr.running()); + try + { + pr.start(); + fail("It should not be possible to start a started process."); + } + catch(const Poco::InvalidAccessException&) {} + pr.stop(); + sw.restart(); + while (pr.running()) + checkTimeout(sw, "Waiting for process to stop", 1000, __LINE__); + assertFalse (pr.running()); + pr.start(); + while (!pr.running()) + checkTimeout(sw, "Waiting for process to start", 1000, __LINE__); + assertTrue (pr.running()); + pr.stop(); + pr.stop(); // second stop() should be silent no-op + } + + // non-auto start with PID + { + std::vector args; + char c = Path::separator(); + std::string pidFile = Poco::format("run%c%s.pid", c, name); + args.push_back(std::string("--pidfile=").append(pidFile)); + ProcessRunner pr(cmd, args, "", ProcessRunner::NO_OUT, 10, false); + assertTrue (pr.cmdLine() == cmdLine(cmd, args)); + assertFalse (pr.running()); + pr.start(); + Stopwatch sw; sw.start(); + while (!pr.running()) + checkTimeout(sw, "Waiting for process to start", 1000, __LINE__); + assertTrue (pr.running()); + try + { + pr.start(); + fail("It should not be possible to start a started process."); + } + catch(const Poco::InvalidAccessException&) {} + pr.stop(); + sw.restart(); + while (pr.running()) + checkTimeout(sw, "Waiting for process to stop", 1000, __LINE__); + assertFalse (pr.running()); + pr.start(); + while (!pr.running()) + checkTimeout(sw, "Waiting for process to start", 1000, __LINE__); + assertTrue (pr.running()); + pr.stop(); + pr.stop(); // second stop() should be silent no-op + } + + // autodetect PID file from the long command line argument + { + std::vector args; + char c = Path::separator(); + std::string pidFile = Poco::format("run%c%s.pid", c, name); + args.push_back(std::string("--pidfile=").append(pidFile)); + { + ProcessRunner pr(cmd, args); + assertTrue (pr.cmdLine() == cmdLine(cmd, args)); + assertTrue (pr.pidFile() == PIDFile::getFileName(pidFile)); + assertTrue (File(pidFile).exists()); + assertTrue (PIDFile::contains(pidFile, pr.pid())); + } + assertTrue (!File(pidFile).exists()); + } + + // autodetect PID file from the short command line argument + { + std::vector args; + char c = Path::separator(); + std::string pidFile = Poco::format("run%c%s.pid", c, name); + args.push_back(std::string("-p=").append(pidFile)); + { + ProcessRunner pr(cmd, args, PIDFile::getFileName(pidFile)); + assertTrue (pr.cmdLine() == cmdLine(cmd, args)); + assertTrue (pr.pidFile() == pidFile); + assertTrue (File(pidFile).exists()); + assertTrue (PIDFile::contains(pidFile, pr.pid())); + } + assertTrue (!File(pidFile).exists()); + } + + // ProcessRunner should NOT autodetect PID from command line args + // if argument formats list is empty + { + std::vector args; + char c = Path::separator(); + std::string pidFile = Poco::format("run%c%s.pid", c, name); + args.push_back(std::string("--pidfile=").append(pidFile)); + { + ProcessRunner pr(cmd, args, "", ProcessRunner::NO_OUT, 10, true, {}); + assertTrue (pr.cmdLine() == cmdLine(cmd, args)); + assertTrue (pr.pidFile().empty()); // ProcessRunner has no PID file + + PIDFile::getFileName(pidFile); + Stopwatch sw; sw.start(); + while (!File(pidFile).exists()) + checkTimeout(sw, "Waiting for PID file", 1000, __LINE__); + + // PID file exists and is valid + assertTrue (File(pidFile).exists()); + assertTrue (PIDFile::contains(pidFile, pr.pid())); + } + assertTrue (!File(pidFile).exists()); + } + + { + std::vector args; + char c = Path::separator(); + std::string pidFile = Poco::format("run%c%s.pid", c, name); + args.push_back(std::string("-p=").append(pidFile)); + { + ProcessRunner pr(cmd, args, "", ProcessRunner::NO_OUT, 10, true, {}); + assertTrue (pr.cmdLine() == cmdLine(cmd, args)); + assertTrue (pr.pidFile().empty()); // ProcessRunner has no PID file + + PIDFile::getFileName(pidFile); + Stopwatch sw; sw.start(); + while (!File(pidFile).exists()) + checkTimeout(sw, "Waiting for PID file", 1000, __LINE__); + + // PID file exists and is valid + assertTrue (File(pidFile).exists()); + assertTrue (PIDFile::contains(pidFile, pr.pid())); + } + assertTrue (!File(pidFile).exists()); + } + + // no PID file created at all + { + std::vector args; + char c = Path::separator(); + std::string pidFile = Poco::format("run%c%s.pid", c, name); + { + ProcessRunner pr(cmd, args); + assertTrue (pr.cmdLine() == cmdLine(cmd, args)); + assertTrue (pr.pidFile().empty()); + + Thread::sleep(500); + + assertTrue (!File(pidFile).exists()); + assertTrue (!PIDFile::contains(pidFile, pr.pid())); + } + assertTrue (!File(pidFile).exists()); + } +#if defined(POCO_OS_FAMILY_UNIX) + // start process launching multiple threads + { + std::vector args; + char c = Path::separator(); + std::string pidFile = Poco::format("run%c%s.pid", c, name); + args.push_back(std::string("--pidfile=").append(pidFile)); + args.push_back(std::string("--launch-thread")); + ProcessRunner pr(cmd, args, "", ProcessRunner::NO_OUT, 10, false); + assertTrue (pr.cmdLine() == cmdLine(cmd, args)); + assertFalse (pr.running()); + pr.start(); + Stopwatch sw; sw.start(); + while (!pr.running()) + checkTimeout(sw, "Waiting for process to start", 1000, __LINE__); + assertTrue (pr.running()); + try + { + pr.start(); + fail("It should not be possible to start a started process."); + } + catch(const Poco::InvalidAccessException&) {} + pr.stop(); + sw.restart(); + while (pr.running()) + checkTimeout(sw, "Waiting for process to stop", 1000, __LINE__); + assertFalse (pr.running()); + assertEqual (pr.result(), 0); + } +#endif +} + + +std::string ProcessRunnerTest::cmdLine(const std::string& cmd, const ProcessRunner::Args& args) +{ + std::string cmdL = cmd + ' '; + auto it = args.begin(); + auto end = args.end(); + for (; it != end;) + { + cmdL.append(*it); + if (++it == end) break; + cmdL.append(1, ' '); + } + return cmdL; +} + + +void ProcessRunnerTest::checkTimeout(const Stopwatch& sw, const std::string& msg, int timeoutMS, int line) +{ + if (sw.elapsedSeconds()*1000 > timeoutMS) + { + throw Poco::TimeoutException( + Poco::format("ProcessRunner::checkTimeout(): %s, line: %d", msg, line)); + } + Thread::sleep(10); +} + + +void ProcessRunnerTest::setUp() +{ +} + + +void ProcessRunnerTest::tearDown() +{ +} + + +CppUnit::Test* ProcessRunnerTest::suite() +{ + CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("ProcessRunnerTest"); + + CppUnit_addTest(pSuite, ProcessRunnerTest, testPIDFile); + CppUnit_addTest(pSuite, ProcessRunnerTest, testProcessRunner); + + return pSuite; +} \ No newline at end of file diff --git a/Foundation/testsuite/src/ProcessRunnerTest.h b/Foundation/testsuite/src/ProcessRunnerTest.h new file mode 100644 index 000000000..8590b933f --- /dev/null +++ b/Foundation/testsuite/src/ProcessRunnerTest.h @@ -0,0 +1,44 @@ +// +// ProcessRunnerTest.h +// +// Definition of the ProcessRunnerTest class. +// +// Copyright (c) 2023, Applied Informatics Software Engineering GmbH. +// Aleph ONE Software Engineering d.o.o., +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + + +#ifndef ProcessRunnerTest_INCLUDED +#define ProcessRunnerTest_INCLUDED + + +#include "CppUnit/TestCase.h" +#include "Poco/ProcessRunner.h" +#include "Poco/Stopwatch.h" + + +class ProcessRunnerTest: public CppUnit::TestCase +{ +public: + ProcessRunnerTest(const std::string& name); + ~ProcessRunnerTest(); + + void testPIDFile(); + void testProcessRunner(); + + void setUp(); + void tearDown(); + + static CppUnit::Test* suite(); + +private: + std::string cmdLine(const std::string& cmd, const Poco::ProcessRunner::Args& args); + void checkTimeout(const Poco::Stopwatch& sw, const std::string& msg, int timeoutMS, int line); +}; + + +#endif // ProcessRunnerTest_INCLUDED diff --git a/Foundation/testsuite/src/ProcessTest.cpp b/Foundation/testsuite/src/ProcessTest.cpp index e4712be7d..f66fac4e5 100644 --- a/Foundation/testsuite/src/ProcessTest.cpp +++ b/Foundation/testsuite/src/ProcessTest.cpp @@ -14,12 +14,15 @@ #include "Poco/Process.h" #include "Poco/Pipe.h" #include "Poco/PipeStream.h" +#include "Poco/Path.h" +#include "Poco/Format.h" using namespace std::string_literals; using Poco::Process; using Poco::ProcessHandle; using Poco::Pipe; +using Poco::Path; using Poco::PipeInputStream; using Poco::PipeOutputStream; diff --git a/Foundation/testsuite/src/ProcessTest.h b/Foundation/testsuite/src/ProcessTest.h index b33a9cbf7..cefbae39c 100644 --- a/Foundation/testsuite/src/ProcessTest.h +++ b/Foundation/testsuite/src/ProcessTest.h @@ -39,6 +39,7 @@ public: static CppUnit::Test* suite(); private: + static std::string getFullName(const std::string& name); }; diff --git a/Foundation/testsuite/src/ProcessesTestSuite.cpp b/Foundation/testsuite/src/ProcessesTestSuite.cpp index f72504191..ab0f12b59 100644 --- a/Foundation/testsuite/src/ProcessesTestSuite.cpp +++ b/Foundation/testsuite/src/ProcessesTestSuite.cpp @@ -13,6 +13,7 @@ #include "NamedMutexTest.h" #include "NamedEventTest.h" #include "SharedMemoryTest.h" +#include "ProcessRunnerTest.h" CppUnit::Test* ProcessesTestSuite::suite() @@ -23,6 +24,7 @@ CppUnit::Test* ProcessesTestSuite::suite() pSuite->addTest(NamedMutexTest::suite()); pSuite->addTest(NamedEventTest::suite()); pSuite->addTest(SharedMemoryTest::suite()); + pSuite->addTest(ProcessRunnerTest::suite()); return pSuite; } diff --git a/Foundation/testsuite/src/SharedLibraryTest.cpp b/Foundation/testsuite/src/SharedLibraryTest.cpp index 27ee375b9..ee26fbd00 100644 --- a/Foundation/testsuite/src/SharedLibraryTest.cpp +++ b/Foundation/testsuite/src/SharedLibraryTest.cpp @@ -14,12 +14,16 @@ #include "Poco/SharedLibrary.h" #include "Poco/Exception.h" #include "Poco/Path.h" +#include "Poco/File.h" +#include "Poco/Format.h" using Poco::SharedLibrary; using Poco::NotFoundException; using Poco::LibraryLoadException; using Poco::LibraryAlreadyLoadedException; +using Poco::Path; +using Poco::File; typedef int (*GimmeFiveFunc)(); @@ -37,14 +41,11 @@ SharedLibraryTest::~SharedLibraryTest() void SharedLibraryTest::testSharedLibrary1() { - std::string path = "TestLibrary"; - path.append(SharedLibrary::suffix()); - Poco::Path libraryPath = Poco::Path::current(); - libraryPath.append(path); + std::string libraryPath = getFullName("TestLibrary"); SharedLibrary sl; assertTrue (!sl.isLoaded()); - sl.load(libraryPath.toString()); - assertTrue (sl.getPath() == libraryPath.toString()); + sl.load(libraryPath); + assertTrue (sl.getPath() == libraryPath); assertTrue (sl.isLoaded()); assertTrue (sl.hasSymbol("pocoBuildManifest")); assertTrue (sl.hasSymbol("pocoInitializeLibrary")); @@ -73,12 +74,9 @@ void SharedLibraryTest::testSharedLibrary1() void SharedLibraryTest::testSharedLibrary2() { - std::string path = "TestLibrary"; - path.append(SharedLibrary::suffix()); - Poco::Path libraryPath = Poco::Path::current(); - libraryPath.append(path); - SharedLibrary sl(libraryPath.toString()); - assertTrue (sl.getPath() == libraryPath.toString()); + std::string libraryPath = getFullName("TestLibrary"); + SharedLibrary sl(libraryPath); + assertTrue (sl.getPath() == libraryPath); assertTrue (sl.isLoaded()); GimmeFiveFunc gimmeFive = (GimmeFiveFunc) sl.getSymbol("gimmeFive"); @@ -91,12 +89,12 @@ void SharedLibraryTest::testSharedLibrary2() void SharedLibraryTest::testSharedLibrary3() { - std::string path = "NonexistentLibrary"; - path.append(SharedLibrary::suffix()); + std::string libraryPath = "NonexistentLibrary"; + libraryPath.append(libraryPath); SharedLibrary sl; try { - sl.load(path); + sl.load(libraryPath); failmsg("no such library - must throw exception"); } catch (LibraryLoadException&) @@ -108,16 +106,13 @@ void SharedLibraryTest::testSharedLibrary3() } assertTrue (!sl.isLoaded()); - path = "TestLibrary"; - path.append(SharedLibrary::suffix()); - Poco::Path libraryPath = Poco::Path::current(); - libraryPath.append(path); - sl.load(libraryPath.toString()); + libraryPath = getFullName("TestLibrary"); + sl.load(libraryPath); assertTrue (sl.isLoaded()); try { - sl.load(libraryPath.toString()); + sl.load(libraryPath); failmsg("library already loaded - must throw exception"); } catch (LibraryAlreadyLoadedException&) @@ -134,6 +129,33 @@ void SharedLibraryTest::testSharedLibrary3() } +std::string SharedLibraryTest::getFullName(const std::string& libName) +{ + // make + std::string name = Path::expand("$POCO_BASE"); + char c = Path::separator(); + std::string OSNAME = Path::expand("$OSNAME"); + std::string OSARCH = Path::expand("$OSARCH"); + name.append(1, c) + .append(Poco::format("Foundation%ctestsuite%cbin%c", c, c, c)) + .append(Poco::format("%s%c%s%c", OSNAME, c, OSARCH, c)) + .append(libName).append(SharedLibrary::suffix()); + + // CMake + if (!File(name).exists()) + { + name = Path::expand("$POCO_BASE"); + name.append(Poco::format("%ccmake-build%cbin%c", c, c, c)) + .append(libName).append(SharedLibrary::suffix()); + } + + if (!File(name).exists()) + name = libName + SharedLibrary::suffix(); + + return name; +} + + void SharedLibraryTest::setUp() { } diff --git a/Foundation/testsuite/src/SharedLibraryTest.h b/Foundation/testsuite/src/SharedLibraryTest.h index fe641181f..845203994 100644 --- a/Foundation/testsuite/src/SharedLibraryTest.h +++ b/Foundation/testsuite/src/SharedLibraryTest.h @@ -34,6 +34,7 @@ public: static CppUnit::Test* suite(); private: + static std::string getFullName(const std::string& libName); }; diff --git a/Foundation/testsuite/src/TestApp.cpp b/Foundation/testsuite/src/TestApp.cpp index 259c169dc..ff62cd6f2 100644 --- a/Foundation/testsuite/src/TestApp.cpp +++ b/Foundation/testsuite/src/TestApp.cpp @@ -12,12 +12,151 @@ #define _CRT_SECURE_NO_DEPRECATE #endif +#include "Poco/PIDFile.h" #include #include #include #include +#if defined(POCO_OS_FAMILY_UNIX) +#include "Poco/Thread.h" +#include "Poco/Runnable.h" +#elif defined(POCO_OS_FAMILY_WINDOWS) +#include "Poco/Process.h" +#include "Poco/Event.h" +#include "Poco/NamedEvent.h" +#endif + +using namespace Poco; + +#if defined(POCO_OS_FAMILY_UNIX) +class MyRunnable: public Runnable +{ +public: + MyRunnable(): _ran(false) + { + } + + void run() + { + Thread* pThread = Thread::current(); + if (pThread) + { + _threadName = pThread->name(); + } + _ran = true; + } + + bool ran() const + { + return _ran; + } + +private: + bool _ran; + std::string _threadName; +}; +#endif + +#if POCO_OS != POCO_OS_ANDROID +class MyApp +{ +public: + MyApp() {} + ~MyApp() {} + + std::unique_ptr _pPIDFile; +#if defined(POCO_OS_FAMILY_WINDOWS) + static Poco::Event _terminated; + static Poco::NamedEvent _terminate; + + + static void terminate() + { + _terminate.set(); + } + + + static BOOL WINAPI ConsoleCtrlHandler(DWORD ctrlType) + { + switch (ctrlType) + { + case CTRL_C_EVENT: + case CTRL_CLOSE_EVENT: + case CTRL_BREAK_EVENT: + terminate(); + return _terminated.tryWait(10000) ? TRUE : FALSE; + default: + return FALSE; + } + } + + void waitForTerminationRequest() + { + SetConsoleCtrlHandler(ConsoleCtrlHandler, TRUE); + _terminate.wait(); + _terminated.set(); + } +#elif defined(POCO_OS_FAMILY_UNIX) + void waitForTerminationRequest() + { + sigset_t sset; + sigemptyset(&sset); + if (!std::getenv("POCO_ENABLE_DEBUGGER")) + { + sigaddset(&sset, SIGINT); + } + sigaddset(&sset, SIGQUIT); + sigaddset(&sset, SIGTERM); + sigprocmask(SIG_BLOCK, &sset, NULL); + int sig; + sigwait(&sset, &sig); + } + + int runThreads(std::string pidPath) + { + _pPIDFile.reset(new PIDFile(pidPath, true)); + + uint32_t sigMask = 4; // Block SIGINT + + Thread thread1(sigMask); + Thread thread2(sigMask); + Thread thread3(sigMask); + Thread thread4(sigMask); + + MyRunnable r1; + MyRunnable r2; + MyRunnable r3; + MyRunnable r4; + + thread1.start(r1); + thread2.start(r2); + thread3.start(r3); + thread4.start(r4); + + waitForTerminationRequest(); + + thread1.join(); + thread2.join(); + thread3.join(); + thread4.join(); + return 0; + } +#endif + + int run(std::string pidPath) + { + _pPIDFile.reset(new PIDFile(pidPath, true)); + waitForTerminationRequest(); + return 0; + } +}; +#endif +#if defined(POCO_OS_FAMILY_WINDOWS) +Poco::Event MyApp::_terminated; +Poco::NamedEvent MyApp::_terminate(Poco::ProcessImpl::terminationEventName(Poco::Process::id())); +#endif int main(int argc, char** argv) { @@ -57,6 +196,32 @@ int main(int argc, char** argv) std::cout << argv[i] << std::endl; } } +#if defined(POCO_OS_FAMILY_UNIX) + else if (argc > 2 && arg.find("--pidfile") != std::string::npos && std::string(argv[2]) == "--launch-thread") + { + size_t equals_pos = arg.find('='); + if (equals_pos != std::string::npos) + { + std::string pidPath = arg.substr(equals_pos + 1); + MyApp myApp; + int result = myApp.runThreads(pidPath); + return result; + } + } +#endif +#if POCO_OS != POCO_OS_ANDROID + else if (arg.find("--pidfile") != std::string::npos || arg.find("-p") != std::string::npos) + { + size_t equals_pos = arg.find('='); + if (equals_pos != std::string::npos) + { + std::string pidPath = arg.substr(equals_pos + 1); + MyApp myApp; + int result = myApp.run(pidPath); + return result; + } + } +#endif } return argc - 1; } diff --git a/build/script/runtests.sh b/build/script/runtests.sh index 658d9de1f..23f766f23 100755 --- a/build/script/runtests.sh +++ b/build/script/runtests.sh @@ -87,7 +87,7 @@ do echo "" runs=$((runs + 1)) - if ! sh -c "cd $POCO_BUILD/$comp/testsuite/$BINDIR && PATH=.:$PATH && LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH $TESTRUNNER $IGNORE $TESTRUNNERARGS"; + if ! sh -c "export POCO_BASE='$POCO_BASE'; export OSNAME='$OSNAME'; export OSARCH='$OSARCH'; cd $POCO_BUILD/$comp/testsuite/$BINDIR && PATH=.:$PATH && LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH $TESTRUNNER $IGNORE $TESTRUNNERARGS"; then failures=$((failures + 1)) failedTests="$failedTests $comp" diff --git a/poco_env.bash b/poco_env.bash index 2f8d63a72..c3902364f 100644 --- a/poco_env.bash +++ b/poco_env.bash @@ -93,6 +93,8 @@ esac # uncomment for sanitizer builds #LSAN_OPTIONS=verbosity=1:log_threads=1 #export LSAN_OPTIONS +#TSAN_OPTIONS="suppressions=$POCO_BASE/tsan.suppress,second_deadlock_stack=1" +#export TSAN_OPTIONS echo "\$OSNAME = $OSNAME" echo "\$OSARCH = $OSARCH" diff --git a/tsan.suppress b/tsan.suppress index c35a7079d..8701cfc4a 100644 --- a/tsan.suppress +++ b/tsan.suppress @@ -3,7 +3,7 @@ # https://github.com/google/sanitizers/wiki/ThreadSanitizerSuppressions # # To apply: -# export TSAN_OPTIONS="suppressions=$POCO_BASE/tsan.supress,second_deadlock_stack=1" +# export TSAN_OPTIONS="suppressions=$POCO_BASE/tsan.suppress,second_deadlock_stack=1" ############## # Suppressions: From 11de40399cdb12fcb485a957359d81d84509523d Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Sun, 26 Nov 2023 04:57:39 +0100 Subject: [PATCH 219/395] fix(sharedMemory): x64 size error #2976 (#4295) * fix(sharedMemory): x64 size error #2976 * chore: add Util dependency to Prometheus samples * fix(HTTPClientSession): not working with UNIX_LOCAL SocketAddress #2578 * fix(WebSocketTest): supress connection reset exception assertion * fix(PollSet): wait on premature epoll_wait return; reinforce tests for windows * fix(build): add DataTest dependency to Makefile * fix(Task): intermittently hanging test and some other improvements * fix(Net): PollSet loop; suppress test WebSocket handler shutdown IOExeption --- Foundation/include/Poco/SharedMemory_WIN32.h | 10 +-- Foundation/include/Poco/Task.h | 14 ++-- Foundation/include/Poco/TaskManager.h | 2 +- Foundation/src/SharedMemory_WIN32.cpp | 28 ++++++-- Foundation/src/Task.cpp | 11 ++-- Foundation/testsuite/src/SharedMemoryTest.cpp | 25 +++++++ Foundation/testsuite/src/SharedMemoryTest.h | 1 + Foundation/testsuite/src/TaskTest.cpp | 66 ++++++++++--------- Makefile | 15 +++-- Net/include/Poco/Net/HTTPClientSession.h | 2 +- Net/include/Poco/Net/SocketAddress.h | 3 + Net/src/HTTPClientSession.cpp | 7 +- Net/src/HTTPSession.cpp | 3 +- Net/src/PollSet.cpp | 30 ++++++--- Net/src/SocketAddress.cpp | 29 ++++---- Net/testsuite/src/EchoServer.cpp | 3 +- Net/testsuite/src/HTTPClientSessionTest.cpp | 31 +++++++++ Net/testsuite/src/HTTPClientSessionTest.h | 1 + Net/testsuite/src/HTTPTestServer.cpp | 17 ++++- Net/testsuite/src/HTTPTestServer.h | 3 + Net/testsuite/src/PollSetTest.cpp | 19 +++++- Net/testsuite/src/SocketTest.cpp | 12 ++-- Net/testsuite/src/SocketTest.h | 8 +-- Net/testsuite/src/WebSocketTest.cpp | 8 +++ 24 files changed, 244 insertions(+), 104 deletions(-) diff --git a/Foundation/include/Poco/SharedMemory_WIN32.h b/Foundation/include/Poco/SharedMemory_WIN32.h index c89130549..b39bd39ab 100644 --- a/Foundation/include/Poco/SharedMemory_WIN32.h +++ b/Foundation/include/Poco/SharedMemory_WIN32.h @@ -74,11 +74,11 @@ private: SharedMemoryImpl& operator = (const SharedMemoryImpl&); std::string _name; - HANDLE _memHandle; - HANDLE _fileHandle; - DWORD _size; - DWORD _mode; - char* _address; + HANDLE _memHandle; + HANDLE _fileHandle; + std::size_t _size; + DWORD _mode; + char* _address; }; diff --git a/Foundation/include/Poco/Task.h b/Foundation/include/Poco/Task.h index 123c74ab3..904dc97ef 100644 --- a/Foundation/include/Poco/Task.h +++ b/Foundation/include/Poco/Task.h @@ -107,7 +107,7 @@ protected: /// A Task should use this method in favor of Thread::sleep(). bool yield(); - /// Yields cpu to other threads + /// Yields cpu to other threads /// /// If the task is cancelled while it is suspended, /// yield() will return true. If the tasks resumes @@ -145,12 +145,12 @@ private: Task(const Task&); Task& operator = (const Task&); - std::string _name; - TaskManager* _pOwner; - float _progress; + std::string _name; + TaskManager* _pOwner; + std::atomic _progress; std::atomic _state; - Event _cancelEvent; - mutable FastMutex _mutex; + Event _cancelEvent; + mutable FastMutex _mutex; friend class TaskManager; }; @@ -167,8 +167,6 @@ inline const std::string& Task::name() const inline float Task::progress() const { - FastMutex::ScopedLock lock(_mutex); - return _progress; } diff --git a/Foundation/include/Poco/TaskManager.h b/Foundation/include/Poco/TaskManager.h index de3984ca1..e8f2836f2 100644 --- a/Foundation/include/Poco/TaskManager.h +++ b/Foundation/include/Poco/TaskManager.h @@ -122,7 +122,7 @@ private: TaskList _taskList; Timestamp _lastProgressNotification; NotificationCenter _nc; - mutable MutexT _mutex; + mutable MutexT _mutex; friend class Task; }; diff --git a/Foundation/src/SharedMemory_WIN32.cpp b/Foundation/src/SharedMemory_WIN32.cpp index 45beaa840..6d35611cd 100644 --- a/Foundation/src/SharedMemory_WIN32.cpp +++ b/Foundation/src/SharedMemory_WIN32.cpp @@ -28,7 +28,7 @@ SharedMemoryImpl::SharedMemoryImpl(const std::string& name, std::size_t size, Sh _name(name), _memHandle(INVALID_HANDLE_VALUE), _fileHandle(INVALID_HANDLE_VALUE), - _size(static_cast(size)), + _size(size), _mode(PAGE_READONLY), _address(0) { @@ -37,22 +37,40 @@ SharedMemoryImpl::SharedMemoryImpl(const std::string& name, std::size_t size, Sh std::wstring utf16name; UnicodeConverter::toUTF16(_name, utf16name); - _memHandle = CreateFileMappingW(INVALID_HANDLE_VALUE, NULL, _mode, 0, _size, utf16name.c_str()); +#ifdef _WIN64 + const DWORD dwMaxSizeLow = static_cast(_size & 0xFFFFFFFFULL); + const DWORD dwMaxSizeHigh = static_cast((_size & (0xFFFFFFFFULL << 32)) >> 32); +#else + if (_size > std::numeric_limits::max()) + { + throw Poco::InvalidArgumentException(Poco::format("Requested shared memory size (%z) too large (max %lu)", + _size, std::numeric_limits::max())); + } + const DWORD dwMaxSizeLow = static_cast(_size); + const DWORD dwMaxSizeHigh = 0UL; +#endif + _memHandle = CreateFileMappingW(INVALID_HANDLE_VALUE, NULL, _mode, dwMaxSizeHigh, dwMaxSizeLow, utf16name.c_str()); if (!_memHandle) { DWORD dwRetVal = GetLastError(); + int retVal = static_cast(dwRetVal); #if defined (_WIN32_WCE) - throw SystemException(format("Cannot create shared memory object %s [Error %d: %s]", _name, static_cast(dwRetVal), Error::getMessage(dwRetVal))); + throw SystemException(Poco::format("Cannot create shared memory object %s [Error %d: %s]", + _name, retVal, Error::getMessage(dwRetVal))); #else if (_mode != PAGE_READONLY || dwRetVal != 5) - throw SystemException(format("Cannot create shared memory object %s [Error %d: %s]", _name, static_cast(dwRetVal), Error::getMessage(dwRetVal))); + { + throw SystemException(Poco::format("Cannot create shared memory object %s [Error %d: %s]", + _name, retVal, Error::getMessage(dwRetVal)), retVal); + } _memHandle = OpenFileMappingW(PAGE_READONLY, FALSE, utf16name.c_str()); if (!_memHandle) { dwRetVal = GetLastError(); - throw SystemException(format("Cannot open shared memory object %s [Error %d: %s]", _name, static_cast(dwRetVal), Error::getMessage(dwRetVal))); + throw SystemException(Poco::format("Cannot open shared memory object %s [Error %d: %s]", + _name, retVal, Error::getMessage(dwRetVal)), retVal); } #endif } diff --git a/Foundation/src/Task.cpp b/Foundation/src/Task.cpp index 4b1e1fa1b..a84c0c273 100644 --- a/Foundation/src/Task.cpp +++ b/Foundation/src/Task.cpp @@ -71,12 +71,12 @@ void Task::run() catch (std::exception& exc) { if (pOwner) - pOwner->taskFailed(this, SystemException(exc.what())); + pOwner->taskFailed(this, SystemException("Task::run()", exc.what())); } catch (...) { if (pOwner) - pOwner->taskFailed(this, SystemException("unknown exception")); + pOwner->taskFailed(this, SystemException("Task::run(): unknown exception")); } _state = TASK_FINISHED; if (pOwner) pOwner->taskFinished(this); @@ -98,11 +98,9 @@ bool Task::yield() void Task::setProgress(float progress) { - FastMutex::ScopedLock lock(_mutex); - - if (_progress != progress) + if (_progress.exchange(progress) != progress) { - _progress = progress; + FastMutex::ScopedLock lock(_mutex); if (_pOwner) _pOwner->taskProgress(this, _progress); } @@ -112,7 +110,6 @@ void Task::setProgress(float progress) void Task::setOwner(TaskManager* pOwner) { FastMutex::ScopedLock lock(_mutex); - _pOwner = pOwner; } diff --git a/Foundation/testsuite/src/SharedMemoryTest.cpp b/Foundation/testsuite/src/SharedMemoryTest.cpp index bc077b7f8..31cf0a93d 100644 --- a/Foundation/testsuite/src/SharedMemoryTest.cpp +++ b/Foundation/testsuite/src/SharedMemoryTest.cpp @@ -72,6 +72,30 @@ Poco::Path SharedMemoryTest::findDataFile(const std::string& afile) } +void SharedMemoryTest::testCreateLarge() +{ +#if POCO_OS == POCO_OS_WINDOWS_NT + try + { +#ifdef _WIN64 + const size_t size = 0x03FFFFFFFFULL; +#else + const size_t size = 0xDFFFFFFFUL; +#endif + SharedMemory mem("hiLarge", size, SharedMemory::AM_WRITE); + assertTrue((mem.end() - mem.begin()) == size); + mem.begin()[0] = 'A'; + mem.end()[-1] = 'Z'; + } + catch (Poco::SystemException& ex) + { + // no memory, quite posible to happen + assertEqual(ERROR_NOT_ENOUGH_MEMORY, ex.code()); + } +#endif +} + + void SharedMemoryTest::setUp() { } @@ -89,6 +113,7 @@ CppUnit::Test* SharedMemoryTest::suite() #if !defined(POCO_NO_SHAREDMEMORY) CppUnit_addTest(pSuite, SharedMemoryTest, testCreate); CppUnit_addTest(pSuite, SharedMemoryTest, testCreateFromFile); + CppUnit_addTest(pSuite, SharedMemoryTest, testCreateLarge); #endif return pSuite; } diff --git a/Foundation/testsuite/src/SharedMemoryTest.h b/Foundation/testsuite/src/SharedMemoryTest.h index b54541b24..492ffbc6d 100644 --- a/Foundation/testsuite/src/SharedMemoryTest.h +++ b/Foundation/testsuite/src/SharedMemoryTest.h @@ -27,6 +27,7 @@ public: void testCreate(); void testCreateFromFile(); + void testCreateLarge(); void setUp(); void tearDown(); diff --git a/Foundation/testsuite/src/TaskTest.cpp b/Foundation/testsuite/src/TaskTest.cpp index 551f0bb12..9e6b67d58 100644 --- a/Foundation/testsuite/src/TaskTest.cpp +++ b/Foundation/testsuite/src/TaskTest.cpp @@ -35,42 +35,42 @@ namespace void runTask() { - try - { - _event.wait(); - if (sleep(10)) - return; - setProgress(0.5); - _event.wait(); - if (isCancelled()) - return; - setProgress(1.0); - _event.wait(); - } - catch(const Poco::Exception& e) - { - std::cerr << "TestTask::run(): " << e.displayText() << '\n'; - } - catch(const std::exception& e) - { - std::cerr << "TestTask::run(): " << e.what() << '\n'; - } - catch(...) - { - std::cerr << "TestTask::run(): unknown exception." << '\n'; - } + try + { + _event.wait(); + if (sleep(100)) + return; + setProgress(0.5); + _event.wait(); + if (isCancelled()) + return; + setProgress(1.0); + _event.wait(); + } + catch(const Poco::Exception& e) + { + std::cerr << "TestTask::run(): " << e.displayText() << '\n'; + } + catch(const std::exception& e) + { + std::cerr << "TestTask::run(): " << e.what() << '\n'; + } + catch(...) + { + std::cerr << "TestTask::run(): unknown exception." << '\n'; + } } void cont() { - try - { - _event.set(); - } - catch(const Poco::SystemException& e) - { - std::cerr << "TestTask::cont(): " << e.displayText() << '\n'; - } + try + { + _event.set(); + } + catch(const Poco::SystemException& e) + { + std::cerr << "TestTask::cont(): " << e.displayText() << '\n'; + } } private: @@ -131,6 +131,8 @@ void TaskTest::testCancel2() assertTrue (pTT->state() == Task::TASK_IDLE); Thread thr; thr.start(*pTT); + while (pTT->state() != Task::TASK_RUNNING) + Thread::sleep(50); assertTrue (pTT->progress() == 0); pTT->cancel(); assertTrue (pTT->state() == Task::TASK_CANCELLING); diff --git a/Makefile b/Makefile index a90deb523..35e4cb357 100644 --- a/Makefile +++ b/Makefile @@ -246,7 +246,10 @@ NetSSL_OpenSSL-clean: Data-libexec: Foundation-libexec $(MAKE) -C $(POCO_BASE)/Data -Data-tests: Data-libexec cppunit +DataTest-libexec: Data-libexec + $(MAKE) -C $(POCO_BASE)/Data/testsuite/DataTest + +Data-tests: Data-libexec DataTest-libexec cppunit $(MAKE) -C $(POCO_BASE)/Data/testsuite Data-samples: Data-libexec Data-libexec Data/SQLite-libexec Net-libexec @@ -260,7 +263,7 @@ Data-clean: Data/SQLite-libexec: Foundation-libexec Data-libexec $(MAKE) -C $(POCO_BASE)/Data/SQLite -Data/SQLite-tests: Data/SQLite-libexec cppunit +Data/SQLite-tests: Data/SQLite-libexec DataTest-libexec cppunit $(MAKE) -C $(POCO_BASE)/Data/SQLite/testsuite Data/SQLite-clean: @@ -270,7 +273,7 @@ Data/SQLite-clean: Data/ODBC-libexec: Foundation-libexec Data-libexec $(MAKE) -C $(POCO_BASE)/Data/ODBC -Data/ODBC-tests: Data/ODBC-libexec cppunit +Data/ODBC-tests: Data/ODBC-libexec DataTest-libexec cppunit $(MAKE) -C $(POCO_BASE)/Data/ODBC/testsuite Data/ODBC-clean: @@ -280,7 +283,7 @@ Data/ODBC-clean: Data/MySQL-libexec: Foundation-libexec Data-libexec $(MAKE) -C $(POCO_BASE)/Data/MySQL -Data/MySQL-tests: Data/MySQL-libexec cppunit +Data/MySQL-tests: Data/MySQL-libexec DataTest-libexec cppunit $(MAKE) -C $(POCO_BASE)/Data/MySQL/testsuite Data/MySQL-clean: @@ -290,7 +293,7 @@ Data/MySQL-clean: Data/PostgreSQL-libexec: Foundation-libexec Data-libexec $(MAKE) -C $(POCO_BASE)/Data/PostgreSQL -Data/PostgreSQL-tests: Data/PostgreSQL-libexec cppunit +Data/PostgreSQL-tests: Data/PostgreSQL-libexec DataTest-libexec cppunit $(MAKE) -C $(POCO_BASE)/Data/PostgreSQL/testsuite Data/PostgreSQL-clean: @@ -407,7 +410,7 @@ Prometheus-libexec: Foundation-libexec Net-libexec Prometheus-tests: Prometheus-libexec cppunit $(MAKE) -C $(POCO_BASE)/Prometheus/testsuite -Prometheus-samples: Prometheus-libexec +Prometheus-samples: Prometheus-libexec Util-libexec $(MAKE) -C $(POCO_BASE)/Prometheus/samples Prometheus-clean: diff --git a/Net/include/Poco/Net/HTTPClientSession.h b/Net/include/Poco/Net/HTTPClientSession.h index 14ae999bb..d7eabb298 100644 --- a/Net/include/Poco/Net/HTTPClientSession.h +++ b/Net/include/Poco/Net/HTTPClientSession.h @@ -384,7 +384,7 @@ private: HTTPBasicCredentials _proxyBasicCreds; HTTPDigestCredentials _proxyDigestCreds; HTTPNTLMCredentials _proxyNTLMCreds; - bool _ntlmProxyAuthenticated; + bool _ntlmProxyAuthenticated = false; static ProxyConfig _globalProxyConfig; diff --git a/Net/include/Poco/Net/SocketAddress.h b/Net/include/Poco/Net/SocketAddress.h index d0ed93c13..622ed06bf 100644 --- a/Net/include/Poco/Net/SocketAddress.h +++ b/Net/include/Poco/Net/SocketAddress.h @@ -208,6 +208,9 @@ public: /// Maximum length in bytes of a socket address. }; + static bool isUnixLocal(const std::string& hostAndPort); + /// Returns true iff `hostAndPort` is an absolute file path. + protected: void init(const IPAddress& hostAddress, Poco::UInt16 portNumber); void init(const std::string& hostAddress, Poco::UInt16 portNumber); diff --git a/Net/src/HTTPClientSession.cpp b/Net/src/HTTPClientSession.cpp index 7197e26ad..7214b58fe 100644 --- a/Net/src/HTTPClientSession.cpp +++ b/Net/src/HTTPClientSession.cpp @@ -459,7 +459,12 @@ void HTTPClientSession::reconnect() { SocketAddress addr; if (_proxyConfig.host.empty() || bypassProxy()) - addr = SocketAddress(_host, _port); + { + if (SocketAddress::isUnixLocal(_host)) + addr = SocketAddress(_host); + else + addr = SocketAddress(_host, _port); + } else addr = SocketAddress(_proxyConfig.host, _proxyConfig.port); diff --git a/Net/src/HTTPSession.cpp b/Net/src/HTTPSession.cpp index 478a0ad78..84e436f6d 100644 --- a/Net/src/HTTPSession.cpp +++ b/Net/src/HTTPSession.cpp @@ -196,7 +196,8 @@ void HTTPSession::connect(const SocketAddress& address) _socket.connect(address, _connectionTimeout); _socket.setReceiveTimeout(_receiveTimeout); _socket.setSendTimeout(_sendTimeout); - _socket.setNoDelay(true); + if (address.family() != SocketAddress::UNIX_LOCAL) + _socket.setNoDelay(true); // There may be leftover data from a previous (failed) request in the buffer, // so we clear it. _pCurrent = _pEnd = _pBuffer; diff --git a/Net/src/PollSet.cpp b/Net/src/PollSet.cpp index 11bfa487e..620d85cc3 100644 --- a/Net/src/PollSet.cpp +++ b/Net/src/PollSet.cpp @@ -171,12 +171,16 @@ public: Poco::Timespan remainingTime(timeout); int rc; - do + while (true) { Poco::Timestamp start; rc = epoll_wait(_epollfd, &_events[0], static_cast(_events.size()), static_cast(remainingTime.totalMilliseconds())); - if (rc == 0) return result; + if (rc == 0) + { + if (keepWaiting(start, remainingTime)) continue; + return result; + } // if we are hitting the events limit, resize it; even without resizing, the subseqent // calls would round-robin through the remaining ready sockets, but it's better to give @@ -187,18 +191,12 @@ public: // if interrupted and there's still time left, keep waiting if (SocketImpl::lastError() == POCO_EINTR) { - Poco::Timestamp end; - Poco::Timespan waited = end - start; - if (waited < remainingTime) - { - remainingTime -= waited; - continue; - } + if (keepWaiting(start, remainingTime)) continue; } else SocketImpl::error(); } + break; } - while (false); ScopedLock lock(_mutex); @@ -304,6 +302,18 @@ private: return epoll_ctl(_epollfd, op, fd, &ev); } + static bool keepWaiting(const Poco::Timestamp& start, Poco::Timespan& remainingTime) + { + Poco::Timestamp end; + Poco::Timespan waited = end - start; + if (waited < remainingTime) + { + remainingTime -= waited; + return true; + } + return false; + } + #ifndef WEPOLL_H_ using EPollHandle = std::atomic; #else // WEPOLL_H_ diff --git a/Net/src/SocketAddress.cpp b/Net/src/SocketAddress.cpp index d9a7ce654..3c9955b06 100644 --- a/Net/src/SocketAddress.cpp +++ b/Net/src/SocketAddress.cpp @@ -79,7 +79,7 @@ SocketAddress::SocketAddress() SocketAddress::SocketAddress(Family fam) { - init(IPAddress(fam), 0); + init(IPAddress(fam), 0); } @@ -362,31 +362,34 @@ void SocketAddress::init(Family fam, const std::string& address) } +bool SocketAddress::isUnixLocal(const std::string& hostAndPort) +{ +#if defined(POCO_HAS_UNIX_SOCKET) + #if defined(POCO_OS_FAMILY_WINDOWS) + RegularExpression re(R"((?:[a-zA-Z]\:|\\\\[\w\s\.]+\\[\w\s\.$]+)\\(?:[\w\s\.]+\\)*[\w\s\.]*?$)"); + if (re.match(hostAndPort)) return true; + #elif defined(POCO_OS_FAMILY_UNIX) + if (hostAndPort.size() && (hostAndPort[0] == '/')) return true; + #endif +#endif + return false; +} + + void SocketAddress::init(const std::string& hostAndPort) { poco_assert (!hostAndPort.empty()); -#if defined(POCO_OS_FAMILY_WINDOWS) && defined(POCO_HAS_UNIX_SOCKET) - RegularExpression re(R"((?:[a-zA-Z]\:|\\\\[\w\s\.]+\\[\w\s\.$]+)\\(?:[\w\s\.]+\\)*[\w\s\.]*?$)"); - if (re.match(hostAndPort)) + if (isUnixLocal(hostAndPort)) { newLocal(hostAndPort); return; } -#endif std::string host; std::string port; std::string::const_iterator it = hostAndPort.begin(); std::string::const_iterator end = hostAndPort.end(); - -#if defined(POCO_OS_FAMILY_UNIX) - if (*it == '/') - { - newLocal(hostAndPort); - return; - } -#endif if (*it == '[') { ++it; diff --git a/Net/testsuite/src/EchoServer.cpp b/Net/testsuite/src/EchoServer.cpp index 67f3529c6..48817683f 100644 --- a/Net/testsuite/src/EchoServer.cpp +++ b/Net/testsuite/src/EchoServer.cpp @@ -83,8 +83,10 @@ void EchoServer::run() { std::cerr << "EchoServer: " << exc.displayText() << std::endl; } + ss.close(); } } + _socket.close(); _done = true; } @@ -99,4 +101,3 @@ bool EchoServer::done() { return _done; } - diff --git a/Net/testsuite/src/HTTPClientSessionTest.cpp b/Net/testsuite/src/HTTPClientSessionTest.cpp index b7bf375e4..31de15053 100644 --- a/Net/testsuite/src/HTTPClientSessionTest.cpp +++ b/Net/testsuite/src/HTTPClientSessionTest.cpp @@ -15,6 +15,8 @@ #include "Poco/Net/HTTPRequest.h" #include "Poco/Net/HTTPResponse.h" #include "Poco/StreamCopier.h" +#include "Poco/File.h" +#include "Poco/Path.h" #include "HTTPTestServer.h" #include #include @@ -26,6 +28,8 @@ using Poco::Net::HTTPRequest; using Poco::Net::HTTPResponse; using Poco::Net::HTTPMessage; using Poco::StreamCopier; +using Poco::File; +using Poco::Path; HTTPClientSessionTest::HTTPClientSessionTest(const std::string& name): CppUnit::TestCase(name) @@ -54,6 +58,32 @@ void HTTPClientSessionTest::testGetSmall() } +void HTTPClientSessionTest::testGetSmallUnix() +{ +#if defined(POCO_HAS_UNIX_SOCKET) +#if POCO_OS == POCO_OS_ANDROID + File socketFile("/data/local/tmp/SocketTest.sock"); +#elif defined(POCO_OS_FAMILY_WINDOWS) + File socketFile(Path::tempHome() + "SocketTest.sock"); +#else + File socketFile("/tmp/SocketTest.sock"); +#endif // POCO_OS == POCO_OS_ANDROID + if (socketFile.exists()) socketFile.remove(); + HTTPTestServer srv(socketFile.path()); + HTTPClientSession s(socketFile.path()); + HTTPRequest request(HTTPRequest::HTTP_GET, "/small"); + s.sendRequest(request); + HTTPResponse response; + std::istream& rs = s.receiveResponse(response); + assertTrue(response.getContentLength() == HTTPTestServer::SMALL_BODY.length()); + assertTrue(response.getContentType() == "text/plain"); + std::ostringstream ostr; + StreamCopier::copyStream(rs, ostr); + assertTrue(ostr.str() == HTTPTestServer::SMALL_BODY); +#endif // POCO_HAS_UNIX_SOCKET +} + + void HTTPClientSessionTest::testGetLarge() { HTTPTestServer srv; @@ -373,6 +403,7 @@ CppUnit::Test* HTTPClientSessionTest::suite() CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("HTTPClientSessionTest"); CppUnit_addTest(pSuite, HTTPClientSessionTest, testGetSmall); + CppUnit_addTest(pSuite, HTTPClientSessionTest, testGetSmallUnix); CppUnit_addTest(pSuite, HTTPClientSessionTest, testGetLarge); CppUnit_addTest(pSuite, HTTPClientSessionTest, testHead); CppUnit_addTest(pSuite, HTTPClientSessionTest, testPostSmallIdentity); diff --git a/Net/testsuite/src/HTTPClientSessionTest.h b/Net/testsuite/src/HTTPClientSessionTest.h index ecc7b50e4..fc0a004f9 100644 --- a/Net/testsuite/src/HTTPClientSessionTest.h +++ b/Net/testsuite/src/HTTPClientSessionTest.h @@ -25,6 +25,7 @@ public: ~HTTPClientSessionTest(); void testGetSmall(); + void testGetSmallUnix(); void testGetLarge(); void testHead(); void testPostSmallIdentity(); diff --git a/Net/testsuite/src/HTTPTestServer.cpp b/Net/testsuite/src/HTTPTestServer.cpp index 78e3e0a7e..02f01a096 100644 --- a/Net/testsuite/src/HTTPTestServer.cpp +++ b/Net/testsuite/src/HTTPTestServer.cpp @@ -37,6 +37,17 @@ HTTPTestServer::HTTPTestServer(): } +HTTPTestServer::HTTPTestServer(const std::string& addr) : + _socket(SocketAddress(addr)), + _thread("HTTPTestServer"), + _stop(false) +{ + _thread.start(*this); + _ready.wait(); + _lastRequest.reserve(4000); +} + + HTTPTestServer::~HTTPTestServer() { _stop = true; @@ -74,13 +85,15 @@ void HTTPTestServer::run() { _lastRequest.append(buffer, n); if (!requestComplete()) + { n = ss.receiveBytes(buffer, sizeof(buffer)); + } else n = 0; } std::string response = handleRequest(); - ss.sendBytes(response.data(), (int) response.size()); - Poco::Thread::sleep(1000); + n = ss.sendBytes(response.data(), (int) response.size()); + if (n) Poco::Thread::sleep(1000); try { ss.shutdown(); diff --git a/Net/testsuite/src/HTTPTestServer.h b/Net/testsuite/src/HTTPTestServer.h index 4bb647887..02ca9e0d4 100644 --- a/Net/testsuite/src/HTTPTestServer.h +++ b/Net/testsuite/src/HTTPTestServer.h @@ -27,6 +27,9 @@ public: HTTPTestServer(); /// Creates the HTTPTestServer. + HTTPTestServer(const std::string& addr); + /// Creates the HTTPTestServer on the specified address. + ~HTTPTestServer(); /// Destroys the HTTPTestServer. diff --git a/Net/testsuite/src/PollSetTest.cpp b/Net/testsuite/src/PollSetTest.cpp index 05a3291f4..dd8e0b251 100644 --- a/Net/testsuite/src/PollSetTest.cpp +++ b/Net/testsuite/src/PollSetTest.cpp @@ -404,9 +404,19 @@ void PollSetTest::testPollClosedServer() "waiting on server after %ds", secs), __LINE__); } } - + char buffer[5]; + int n = ss1.receiveBytes(buffer, sizeof(buffer)); + assertTrue(n == 0); + auto smm = ps.poll(Timespan(1000000)); + assertEqual(1, smm.size()); + assertTrue(ss1 == smm.begin()->first); + ps.remove(ss1); + assertTrue(!ps.empty()); + assertTrue(!ps.has(ss1)); + assertTrue(ps.has(ss2)); echoServer2.stop(); assertTrue (len == ss2.sendBytes(str.data(), len)); + sw.restart(); while (!echoServer2.done()) { Thread::sleep(10); @@ -417,8 +427,11 @@ void PollSetTest::testPollClosedServer() "waiting on server after %ds", secs), __LINE__); } } - - assertEqual(2, ps.poll(Timespan(1000000)).size()); + n = ss2.receiveBytes(buffer, sizeof(buffer)); + assertTrue(n == 0); + smm = ps.poll(Timespan(1000000)); + assertEqual(1, smm.size()); + assertTrue(ss2 == smm.begin()->first); // socket closed or error assertTrue(0 >= ss1.receiveBytes(0, 0)); diff --git a/Net/testsuite/src/SocketTest.cpp b/Net/testsuite/src/SocketTest.cpp index e4df0208b..c8976a1fb 100644 --- a/Net/testsuite/src/SocketTest.cpp +++ b/Net/testsuite/src/SocketTest.cpp @@ -562,8 +562,10 @@ void SocketTest::testEchoUnixLocal() if (socketFile.exists()) socketFile.remove(); echoServer.stop(); #else // POCO_HAS_UNIX_SOCKET - #pragma message("[UNIX LOCAL SOCKET DISABLED]") - std::cout << "[UNIX LOCAL SOCKET DISABLED]" << std::endl; + #if POCO_OS == POCO_OS_WINDOWS_NT + #pragma message("[UNIX LOCAL SOCKET DISABLED]") + #endif + std::cout << "[UNIX LOCAL SOCKET DISABLED]"; #endif } @@ -588,8 +590,10 @@ void SocketTest::testUnixLocalAbstract() ss.close(); echoServer.stop(); #else // POCO_HAS_UNIX_SOCKET -#pragma message("[ABSTRACT UNIX LOCAL SOCKET DISABLED]") - std::cout << "[ABSTRACT UNIX LOCAL SOCKET DISABLED]" << std::endl; + #if POCO_OS == POCO_OS_WINDOWS_NT + #pragma message("[ABSTRACT UNIX LOCAL SOCKET DISABLED]") + #endif + std::cout << "[ABSTRACT UNIX LOCAL SOCKET DISABLED]"; #endif } diff --git a/Net/testsuite/src/SocketTest.h b/Net/testsuite/src/SocketTest.h index 7575d7f9d..e3b69e0f6 100644 --- a/Net/testsuite/src/SocketTest.h +++ b/Net/testsuite/src/SocketTest.h @@ -53,10 +53,10 @@ private: void onReadable(bool& b); void onWritable(bool& b); - int _readableToNot; - int _notToReadable; - int _writableToNot; - int _notToWritable; + int _readableToNot = 0; + int _notToReadable = 0; + int _writableToNot = 0; + int _notToWritable = 0; }; diff --git a/Net/testsuite/src/WebSocketTest.cpp b/Net/testsuite/src/WebSocketTest.cpp index 664bc4ff0..3cd312ed1 100644 --- a/Net/testsuite/src/WebSocketTest.cpp +++ b/Net/testsuite/src/WebSocketTest.cpp @@ -34,6 +34,8 @@ using Poco::Net::HTTPServerResponse; using Poco::Net::SocketStream; using Poco::Net::WebSocket; using Poco::Net::WebSocketException; +using Poco::Net::ConnectionAbortedException; +using Poco::IOException; namespace @@ -76,6 +78,12 @@ namespace break; } } + catch (ConnectionAbortedException&) + { + } + catch (IOException&) + { + } } private: From 388a3b40108052159e98e45cb78b23b1ee4c3d90 Mon Sep 17 00:00:00 2001 From: chrisbednarski Date: Mon, 27 Nov 2023 04:12:11 +1100 Subject: [PATCH 220/395] fix openssl session resumption, add quiet shutdown option, support FTPS with hostname (#4103) --- Net/include/Poco/Net/FTPClientSession.h | 7 +++++++ NetSSL_OpenSSL/include/Poco/Net/Context.h | 15 ++++++++++++++ NetSSL_OpenSSL/src/Context.cpp | 20 +++++++++++++++++++ NetSSL_OpenSSL/src/FTPSClientSession.cpp | 4 ++-- NetSSL_OpenSSL/src/SSLManager.cpp | 1 + .../testsuite/src/TCPServerTest.cpp | 1 + 6 files changed, 46 insertions(+), 2 deletions(-) diff --git a/Net/include/Poco/Net/FTPClientSession.h b/Net/include/Poco/Net/FTPClientSession.h index 7738a67cf..c2d79a24d 100644 --- a/Net/include/Poco/Net/FTPClientSession.h +++ b/Net/include/Poco/Net/FTPClientSession.h @@ -325,6 +325,9 @@ protected: DEFAULT_TIMEOUT = 30000000 // 30 seconds default timeout for socket operations }; + const std::string& getHost() const; + /// Returns the host name + static bool isPositivePreliminary(int status); static bool isPositiveCompletion(int status); static bool isPositiveIntermediate(int status); @@ -422,6 +425,10 @@ inline const std::string& FTPClientSession::welcomeMessage() return _welcomeMessage; } +inline const std::string& FTPClientSession::getHost() const +{ + return _host; +} } } // namespace Poco::Net diff --git a/NetSSL_OpenSSL/include/Poco/Net/Context.h b/NetSSL_OpenSSL/include/Poco/Net/Context.h index 67d697c99..52fb9cf4a 100644 --- a/NetSSL_OpenSSL/include/Poco/Net/Context.h +++ b/NetSSL_OpenSSL/include/Poco/Net/Context.h @@ -439,6 +439,21 @@ public: void setSecurityLevel(SecurityLevel level); /// Sets the security level. + void ignoreUnexpectedEof(bool flag = true); + /// Enable or disable SSL/TLS SSL_OP_IGNORE_UNEXPECTED_EOF + /// + /// Some TLS implementations do not send the mandatory close_notify alert on shutdown. + /// If the application tries to wait for the close_notify alert + /// but the peer closes the connection without sending it, an error is generated. + /// When this option is enabled the peer does not need to send the close_notify alert + /// and a closed connection will be treated as if the close_notify alert was received. + + void setQuietShutdown(bool flag = true); + /// Normally, when an SSL connection is finished, the parties must send out close_notify alert messages for a clean shutdown. + /// When setting the "quiet shutdown" flag to true, the SecureSocketImpl::shutdown() will set the SSL shutdown flags, + /// but no close_notify alert is sent to the peer. This behaviour violates the TLS standard. + /// The default is a normal shutdown behaviour as described by the TLS standard. + private: void init(const Params& params); /// Initializes the Context with the given parameters. diff --git a/NetSSL_OpenSSL/src/Context.cpp b/NetSSL_OpenSSL/src/Context.cpp index 0f692b259..42c6b815e 100644 --- a/NetSSL_OpenSSL/src/Context.cpp +++ b/NetSSL_OpenSSL/src/Context.cpp @@ -229,6 +229,26 @@ void Context::setSecurityLevel(SecurityLevel level) #endif } +void Context::ignoreUnexpectedEof(bool flag) +{ + if (flag) + { +#if defined(SSL_OP_IGNORE_UNEXPECTED_EOF) + SSL_CTX_set_options(_pSSLContext, SSL_OP_IGNORE_UNEXPECTED_EOF); +#endif + } + else + { +#if defined(SSL_OP_IGNORE_UNEXPECTED_EOF) + SSL_CTX_clear_options(_pSSLContext, SSL_OP_IGNORE_UNEXPECTED_EOF); +#endif + } +} + +void Context::setQuietShutdown(bool flag) +{ + SSL_CTX_set_quiet_shutdown(_pSSLContext, flag ? 1 : 0); +} void Context::useCertificate(const Poco::Crypto::X509Certificate& certificate) { diff --git a/NetSSL_OpenSSL/src/FTPSClientSession.cpp b/NetSSL_OpenSSL/src/FTPSClientSession.cpp index 059c94ebd..18c4984c0 100644 --- a/NetSSL_OpenSSL/src/FTPSClientSession.cpp +++ b/NetSSL_OpenSSL/src/FTPSClientSession.cpp @@ -96,7 +96,7 @@ void FTPSClientSession::afterCreateControlSocket() try { if (!_pContext) _pContext = Poco::Net::SSLManager::instance().defaultClientContext(); - Poco::Net::SecureStreamSocket sss(Poco::Net::SecureStreamSocket::attach(*_pControlSocket, _pContext)); + Poco::Net::SecureStreamSocket sss(Poco::Net::SecureStreamSocket::attach(*_pControlSocket, getHost(), _pContext)); *_pControlSocket = sss; } catch (Poco::Exception&) @@ -125,7 +125,7 @@ StreamSocket FTPSClientSession::establishDataConnection(const std::string& comma Poco::Net::SecureStreamSocketImpl* pSecure = dynamic_cast(_pControlSocket->impl()); if (pSecure != nullptr) { - Poco::Net::SecureStreamSocket sss(Poco::Net::SecureStreamSocket::attach(ss, pSecure->context(), pSecure->currentSession())); + Poco::Net::SecureStreamSocket sss(Poco::Net::SecureStreamSocket::attach(ss, getHost(), pSecure->context(), pSecure->currentSession())); ss = sss; if (_forceSessionReuse) { diff --git a/NetSSL_OpenSSL/src/SSLManager.cpp b/NetSSL_OpenSSL/src/SSLManager.cpp index 14048fa59..4ea45ab6e 100644 --- a/NetSSL_OpenSSL/src/SSLManager.cpp +++ b/NetSSL_OpenSSL/src/SSLManager.cpp @@ -103,6 +103,7 @@ void SSLManager::shutdown() ServerVerificationError.clear(); _ptrDefaultServerContext = 0; _ptrDefaultClientContext = 0; + _socketIndex = _contextIndex = -1; } diff --git a/NetSSL_OpenSSL/testsuite/src/TCPServerTest.cpp b/NetSSL_OpenSSL/testsuite/src/TCPServerTest.cpp index 0d4059981..af98055ea 100644 --- a/NetSSL_OpenSSL/testsuite/src/TCPServerTest.cpp +++ b/NetSSL_OpenSSL/testsuite/src/TCPServerTest.cpp @@ -324,6 +324,7 @@ void TCPServerTest::testReuseSession() 9, true, "ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH"); + pServerContext->disableProtocols(Context::PROTO_TLSV1_3); pServerContext->enableSessionCache(true, "TestSuite"); pServerContext->setSessionTimeout(10); pServerContext->setSessionCacheSize(1000); From af69d61ff508e35e562ba411d1f08380a5b7acf6 Mon Sep 17 00:00:00 2001 From: tuduongquyet <78657396+tuduongquyet@users.noreply.github.com> Date: Mon, 27 Nov 2023 01:49:50 +0700 Subject: [PATCH 221/395] Adding API Poco::XML insertAfterNP() (#4061) --- XML/include/Poco/DOM/AbstractContainerNode.h | 1 + XML/include/Poco/DOM/AbstractNode.h | 1 + XML/include/Poco/DOM/Node.h | 8 +++ XML/src/AbstractContainerNode.cpp | 74 ++++++++++++++++++++ XML/src/AbstractNode.cpp | 6 ++ XML/testsuite/src/ChildNodesTest.cpp | 29 ++++++-- 6 files changed, 112 insertions(+), 7 deletions(-) diff --git a/XML/include/Poco/DOM/AbstractContainerNode.h b/XML/include/Poco/DOM/AbstractContainerNode.h index e0f7893b3..96389ef01 100644 --- a/XML/include/Poco/DOM/AbstractContainerNode.h +++ b/XML/include/Poco/DOM/AbstractContainerNode.h @@ -37,6 +37,7 @@ public: Node* firstChild() const; Node* lastChild() const; Node* insertBefore(Node* newChild, Node* refChild); + Node* insertAfterNP(Node* newChild, Node* refChild); Node* replaceChild(Node* newChild, Node* oldChild); Node* removeChild(Node* oldChild); Node* appendChild(Node* newChild); diff --git a/XML/include/Poco/DOM/AbstractNode.h b/XML/include/Poco/DOM/AbstractNode.h index cedcc7392..99687e8bb 100644 --- a/XML/include/Poco/DOM/AbstractNode.h +++ b/XML/include/Poco/DOM/AbstractNode.h @@ -52,6 +52,7 @@ public: NamedNodeMap* attributes() const; Document* ownerDocument() const; Node* insertBefore(Node* newChild, Node* refChild); + Node* insertAfterNP(Node* newChild, Node* refChild); Node* replaceChild(Node* newChild, Node* oldChild); Node* removeChild(Node* oldChild); Node* appendChild(Node* newChild); diff --git a/XML/include/Poco/DOM/Node.h b/XML/include/Poco/DOM/Node.h index 821c189d9..e65a9872f 100644 --- a/XML/include/Poco/DOM/Node.h +++ b/XML/include/Poco/DOM/Node.h @@ -133,6 +133,14 @@ public: /// If newChild is a DocumentFragment object, all of its children are /// inserted in the same order, before refChild. If the newChild is already /// in the tree, it is first removed. + + virtual Node* insertAfterNP(Node* newChild, Node* refChild) = 0; + /// Inserts the node newChild after the existing child node refChild. + /// + /// If refChild is null, insert newChild at the beginning of the list of children. + /// If newChild is a DocumentFragment object, all of its children are + /// inserted in the same order, after refChild. If the newChild is already + /// in the tree, it is first removed. virtual Node* replaceChild(Node* newChild, Node* oldChild) = 0; /// Replaces the child node oldChild with newChild in the list of children, diff --git a/XML/src/AbstractContainerNode.cpp b/XML/src/AbstractContainerNode.cpp index f80833141..29b5b6a50 100644 --- a/XML/src/AbstractContainerNode.cpp +++ b/XML/src/AbstractContainerNode.cpp @@ -151,6 +151,80 @@ Node* AbstractContainerNode::insertBefore(Node* newChild, Node* refChild) } + +Node* AbstractContainerNode::insertAfterNP(Node* newChild, Node* refChild) +{ + poco_check_ptr (newChild); + + if (static_cast(newChild)->_pOwner != _pOwner && static_cast(newChild)->_pOwner != this) + throw DOMException(DOMException::WRONG_DOCUMENT_ERR); + if (refChild && static_cast(refChild)->_pParent != this) + throw DOMException(DOMException::NOT_FOUND_ERR); + if (newChild == refChild) + return nullptr; + if (this == newChild) + throw DOMException(DOMException::HIERARCHY_REQUEST_ERR); + + AbstractNode* pFirst = 0; + AbstractNode* pLast = 0; + if (newChild->nodeType() == Node::DOCUMENT_FRAGMENT_NODE) + { + AbstractContainerNode* pFrag = static_cast(newChild); + pFirst = pFrag->_pFirstChild; + pLast = pFirst; + if (pFirst) + { + while (pLast->_pNext) + { + pLast->_pParent = this; + pLast = pLast->_pNext; + } + pLast->_pParent = this; + } + pFrag->_pFirstChild = 0; + } + else + { + newChild->duplicate(); + AbstractContainerNode* pParent = static_cast(newChild)->_pParent; + if (pParent) pParent->removeChild(newChild); + pFirst = static_cast(newChild); + pLast = pFirst; + pFirst->_pParent = this; + } + if (_pFirstChild && pFirst) + { + AbstractNode* pCur = _pFirstChild; + while (pCur && pCur != refChild) + { + pCur = pCur->_pNext; + } + if (pCur) + { + pLast->_pNext = pCur->_pNext; + pCur->_pNext = pFirst; + } + else throw DOMException(DOMException::NOT_FOUND_ERR); + } + else + { + _pFirstChild = pFirst; + } + + if (events()) + { + while (pFirst && pFirst != pLast->_pNext) + { + pFirst->dispatchNodeInserted(); + pFirst->dispatchNodeInsertedIntoDocument(); + pFirst = pFirst->_pNext; + } + dispatchSubtreeModified(); + } + return newChild; +} + + Node* AbstractContainerNode::replaceChild(Node* newChild, Node* oldChild) { poco_check_ptr (newChild); diff --git a/XML/src/AbstractNode.cpp b/XML/src/AbstractNode.cpp index 6d048a608..7e2e2e6d6 100644 --- a/XML/src/AbstractNode.cpp +++ b/XML/src/AbstractNode.cpp @@ -144,6 +144,12 @@ Node* AbstractNode::insertBefore(Node* newChild, Node* refChild) } +Node* AbstractNode::insertAfterNP(Node* newChild, Node* refChild) +{ + throw DOMException(DOMException::HIERARCHY_REQUEST_ERR); +} + + Node* AbstractNode::replaceChild(Node* newChild, Node* oldChild) { throw DOMException(DOMException::HIERARCHY_REQUEST_ERR); diff --git a/XML/testsuite/src/ChildNodesTest.cpp b/XML/testsuite/src/ChildNodesTest.cpp index c2e0f883a..4ab946eef 100644 --- a/XML/testsuite/src/ChildNodesTest.cpp +++ b/XML/testsuite/src/ChildNodesTest.cpp @@ -65,18 +65,33 @@ void ChildNodesTest::testChildNodes() assertTrue (pNL->item(1) == pChild1); assertTrue (pNL->item(2) == pChild2); + AutoPtr pChild3 = pDoc->createElement("child3"); + pRoot->insertAfterNP(pChild3, pChild1); + + assertTrue(pNL->length() == 4); + assertTrue(pNL->item(0) == pChild0); + assertTrue(pNL->item(1) == pChild1); + assertTrue(pNL->item(2) == pChild3); + assertTrue(pNL->item(3) == pChild2); + pRoot->removeChild(pChild1); - assertTrue (pNL->length() == 2); - assertTrue (pNL->item(0) == pChild0); - assertTrue (pNL->item(1) == pChild2); + assertTrue(pNL->length() == 3); + assertTrue(pNL->item(0) == pChild0); + assertTrue(pNL->item(1) == pChild3); + assertTrue(pNL->item(2) == pChild2); pRoot->removeChild(pChild0); - assertTrue (pNL->length() == 1); - assertTrue (pNL->item(0) == pChild2); + assertTrue(pNL->length() == 2); + assertTrue(pNL->item(0) == pChild3); + assertTrue(pNL->item(1) == pChild2); pRoot->removeChild(pChild2); - assertTrue (pNL->length() == 0); - assertTrue (pNL->item(0) == 0); + assertTrue(pNL->length() == 1); + assertTrue(pNL->item(0) == pChild3); + + pRoot->removeChild(pChild3); + assertTrue(pNL->length() == 0); + assertTrue(pNL->item(0) == nullptr); assertTrue (!pRoot->hasChildNodes()); } From 1f4d5754659521dddffc7085b6de49bd669c1691 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Sun, 26 Nov 2023 18:55:16 -0600 Subject: [PATCH 222/395] dev(vscode): add CodeLLDB launchers --- .vscode/launch.json | 95 +++++++++++++++++++++++++++++++++++++++++++ .vscode/settings.json | 4 +- 2 files changed, 98 insertions(+), 1 deletion(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 1dfbd742b..7b2d9688a 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -256,6 +256,101 @@ "ignoreFailures": true } ] + }, + /******************************************************************************************************************************** + * Following configurations are multiplatform; lldb and CodeLLDB required: * + * https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb * + * * + * OSX SIP notes: * + * 1. DYLD_LIBRARY_PATH is not passed to VSCode (even when launched from terminal having it properly set) * + * 2. the consequence is that the POCO libraries can only be found if they (or links to them) are in the system library path * + * 3. binaries or symbolic links can not be placed in `/usr/lib`, only in `/usr/local/lib` * + * 4. SIP can be disabled (not recommended) * + * https://developer.apple.com/documentation/security/disabling_and_enabling_system_integrity_protection * + ********************************************************************************************************************************/ + { + "name": "CodeLLDB Foundation Test", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/Foundation/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"] + }, + { + "name": "CodeLLDB Net Test", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/Net/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"] + }, + { + "name": "CodeLLDB JSON Test", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/JSON/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"] + }, + { + "name": "CodeLLDB XML Test", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/XML/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"] + }, + { + "name": "CodeLLDB Util Test", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/Util/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"] + }, + { + "name": "CodeLLDB Data Test", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/Data/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"] + }, + { + "name": "CodeLLDB Data/SQLite Test", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/Data/SQLite/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"] + }, + { + "name": "CodeLLDB Data/ODBC Test", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/Data/ODBC/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"] + }, + { + "name": "CodeLLDB Data/MySQL Test", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/Data/MySQL/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"] + }, + { + "name": "CodeLLDB Data/PostgreSQL Test", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/Data/PostgreSQL/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"] + }, + { + "name": "CodeLLDB MongoDB Test", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/MongoDB/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"] + }, + { + "name": "CodeLLDB Redis Test", + "type": "lldb", + "request": "launch", + "program": "${workspaceFolder}/Redis/testsuite/bin/${env:OSNAME}/${env:OSARCH}/testrunnerd", + "args": ["-all"] } ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index e88cbd9d4..e6e898017 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -99,7 +99,9 @@ "codecvt": "cpp", "numbers": "cpp", "span": "cpp", - "semaphore": "cpp" + "semaphore": "cpp", + "__verbose_abort": "cpp", + "charconv": "cpp" }, "files.exclude": { "**/.dep": true, From cc67fb36ead8cd5a711821f621ed6bd14826b30b Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Sun, 26 Nov 2023 18:56:54 -0600 Subject: [PATCH 223/395] enh(Ascii): improve performance for toLower/toUpper #3462 --- Foundation/include/Poco/Ascii.h | 4 +- Foundation/include/Poco/String.h | 64 ++++++++++++++++++++++++++------ 2 files changed, 54 insertions(+), 14 deletions(-) diff --git a/Foundation/include/Poco/Ascii.h b/Foundation/include/Poco/Ascii.h index 3556a322f..5121dba87 100644 --- a/Foundation/include/Poco/Ascii.h +++ b/Foundation/include/Poco/Ascii.h @@ -208,7 +208,7 @@ inline bool Ascii::isPrintable(int ch) inline int Ascii::toLower(int ch) { if (isUpper(ch)) - return ch + 32; + return ch | 0x20; else return ch; } @@ -217,7 +217,7 @@ inline int Ascii::toLower(int ch) inline int Ascii::toUpper(int ch) { if (isLower(ch)) - return ch - 32; + return ch & ~0x20; else return ch; } diff --git a/Foundation/include/Poco/String.h b/Foundation/include/Poco/String.h index d6a5e6e9d..e4157da15 100644 --- a/Foundation/include/Poco/String.h +++ b/Foundation/include/Poco/String.h @@ -116,12 +116,22 @@ template S toUpper(const S& str) /// Returns a copy of str containing all upper-case characters. { - typename S::const_iterator it = str.begin(); - typename S::const_iterator end = str.end(); + S result(str); - S result; - result.reserve(str.size()); - while (it != end) result += static_cast(Ascii::toUpper(*it++)); + typename S::iterator it = result.begin(); + typename S::iterator end = result.end(); + +#if defined(__clang__) && ((__clang_major__ > 3) || (__clang_major__ == 3 && __clang_minor__ >= 6)) +# pragma clang loop unroll(enable) +#elif defined(POCO_MSVS_VERSION) && (POCO_MSVS_VERSION >= 2017) +# pragma loop(hint_parallel(0)) +#endif + while (it != end) + { + int ch = static_cast(*it); + *it = static_cast(Ascii::toUpper(ch)); + ++it; + } return result; } @@ -133,7 +143,17 @@ S& toUpperInPlace(S& str) typename S::iterator it = str.begin(); typename S::iterator end = str.end(); - while (it != end) { *it = static_cast(Ascii::toUpper(*it)); ++it; } +#if defined(__clang__) && ((__clang_major__ > 3) || (__clang_major__ == 3 && __clang_minor__ >= 6)) +# pragma clang loop unroll(enable) +#elif defined(POCO_MSVS_VERSION) && (POCO_MSVS_VERSION >= 2017) +# pragma loop(hint_parallel(0)) +#endif + while (it != end) + { + int ch = static_cast(*it); + *it = static_cast(Ascii::toUpper(ch)); + ++it; + } return str; } @@ -142,12 +162,22 @@ template S toLower(const S& str) /// Returns a copy of str containing all lower-case characters. { - typename S::const_iterator it = str.begin(); - typename S::const_iterator end = str.end(); + S result(str); - S result; - result.reserve(str.size()); - while (it != end) result += static_cast(Ascii::toLower(*it++)); + typename S::iterator it = result.begin(); + typename S::iterator end = result.end(); + +#if defined(__clang__) && ((__clang_major__ > 3) || (__clang_major__ == 3 && __clang_minor__ >= 6)) +# pragma clang loop unroll(enable) +#elif defined(POCO_MSVS_VERSION) && (POCO_MSVS_VERSION >= 2017) +# pragma loop(hint_parallel(0)) +#endif + while (it != end) + { + int ch = static_cast(*it); + *it = static_cast(Ascii::toLower(ch)); + ++it; + } return result; } @@ -159,7 +189,17 @@ S& toLowerInPlace(S& str) typename S::iterator it = str.begin(); typename S::iterator end = str.end(); - while (it != end) { *it = static_cast(Ascii::toLower(*it)); ++it; } +#if defined(__clang__) && ((__clang_major__ > 3) || (__clang_major__ == 3 && __clang_minor__ >= 6)) +# pragma clang loop unroll(enable) +#elif defined(POCO_MSVS_VERSION) && (POCO_MSVS_VERSION >= 2017) +# pragma loop(hint_parallel(0)) +#endif + while (it != end) + { + int ch = static_cast(*it); + *it = static_cast(Ascii::toLower(ch)); + ++it; + } return str; } From 862b1ad3697647b01695ed34dc0d5e42fc699416 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Mon, 27 Nov 2023 03:42:25 +0100 Subject: [PATCH 224/395] enh(ci): add CIFuzz GitHub action #3882 (#4302) --- .github/workflows/cifuzz.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .github/workflows/cifuzz.yml diff --git a/.github/workflows/cifuzz.yml b/.github/workflows/cifuzz.yml new file mode 100644 index 000000000..e1d58157b --- /dev/null +++ b/.github/workflows/cifuzz.yml @@ -0,0 +1,26 @@ +name: CIFuzz +on: [pull_request] +jobs: + Fuzzing: + runs-on: ubuntu-latest + steps: + - name: Build Fuzzers + id: build + uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master + with: + oss-fuzz-project-name: 'poco' + dry-run: false + language: c++ + - name: Run Fuzzers + uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master + with: + oss-fuzz-project-name: 'poco' + fuzz-seconds: 300 + dry-run: false + language: c++ + - name: Upload Crash + uses: actions/upload-artifact@v3 + if: failure() && steps.build.outcome == 'success' + with: + name: artifacts + path: ./out/artifacts From 9141368eca7857f90a4547930946964634390ec9 Mon Sep 17 00:00:00 2001 From: Owen Knight Date: Mon, 27 Nov 2023 13:52:37 +1100 Subject: [PATCH 225/395] Make Binding and CopyBinding specializations final (#4022) The Binding specializations call it virtual functions numOfRowsHandled() and reset() from their constructors. This is fine assuming virtual function dispatch to a further derived class was not intended. In this case the assumption is solid, however this triggers the Clang diagnostic clang-analyzer-optin.cplusplus.VirtualCall Adding the final specifyer to these specializations gives Clang enough of a hint to silence --- Data/include/Poco/Data/Binding.h | 40 ++++++++++++++++---------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/Data/include/Poco/Data/Binding.h b/Data/include/Poco/Data/Binding.h index 17b38407c..22dc3a72b 100644 --- a/Data/include/Poco/Data/Binding.h +++ b/Data/include/Poco/Data/Binding.h @@ -38,7 +38,7 @@ namespace Data { template -class Binding: public AbstractBinding +class Binding final: public AbstractBinding /// Binding maps a value or multiple values (see Binding specializations for STL containers as /// well as type handlers) to database column(s). Values to be bound can be either mapped /// directly (by reference) or a copy can be created, depending on the value of the copy argument. @@ -109,7 +109,7 @@ private: template -class CopyBinding: public AbstractBinding +class CopyBinding final: public AbstractBinding /// Binding maps a value or multiple values (see Binding specializations for STL containers as /// well as type handlers) to database column(s). Values to be bound can be either mapped /// directly (by reference) or a copy can be created, depending on the value of the copy argument. @@ -177,7 +177,7 @@ private: template <> -class Binding: public AbstractBinding +class Binding final: public AbstractBinding /// Binding const char* specialization wraps char pointer into string. { public: @@ -238,7 +238,7 @@ private: template <> -class CopyBinding: public AbstractBinding +class CopyBinding final: public AbstractBinding /// Binding const char* specialization wraps char pointer into string. { public: @@ -298,7 +298,7 @@ private: template -class Binding>: public AbstractBinding +class Binding> final: public AbstractBinding /// Specialization for std::vector. { public: @@ -364,7 +364,7 @@ private: template -class CopyBinding>: public AbstractBinding +class CopyBinding> final: public AbstractBinding /// Specialization for std::vector. { public: @@ -431,7 +431,7 @@ private: template <> -class Binding>: public AbstractBinding +class Binding> final: public AbstractBinding /// Specialization for std::vector. /// This specialization is necessary due to the nature of std::vector. /// For details, see the standard library implementation of std::vector @@ -512,7 +512,7 @@ private: template <> -class CopyBinding>: public AbstractBinding +class CopyBinding> final: public AbstractBinding /// Specialization for std::vector. /// This specialization is necessary due to the nature of std::vector. /// For details, see the standard library implementation of std::vector @@ -592,7 +592,7 @@ private: template -class Binding>: public AbstractBinding +class Binding> final: public AbstractBinding /// Specialization for std::list. { public: @@ -657,7 +657,7 @@ private: template -class CopyBinding>: public AbstractBinding +class CopyBinding> final: public AbstractBinding /// Specialization for std::list. { public: @@ -722,7 +722,7 @@ private: template -class Binding>: public AbstractBinding +class Binding> final: public AbstractBinding /// Specialization for std::deque. { public: @@ -787,7 +787,7 @@ private: template -class CopyBinding>: public AbstractBinding +class CopyBinding> final: public AbstractBinding /// Specialization for std::deque. { public: @@ -852,7 +852,7 @@ private: template -class Binding>: public AbstractBinding +class Binding> final: public AbstractBinding /// Specialization for std::set. { public: @@ -917,7 +917,7 @@ private: template -class CopyBinding>: public AbstractBinding +class CopyBinding> final: public AbstractBinding /// Specialization for std::set. { public: @@ -982,7 +982,7 @@ private: template -class Binding>: public AbstractBinding +class Binding> final: public AbstractBinding /// Specialization for std::multiset. { public: @@ -1047,7 +1047,7 @@ private: template -class CopyBinding>: public AbstractBinding +class CopyBinding> final: public AbstractBinding /// Specialization for std::multiset. { public: @@ -1112,7 +1112,7 @@ private: template -class Binding>: public AbstractBinding +class Binding> final: public AbstractBinding /// Specialization for std::map. { public: @@ -1177,7 +1177,7 @@ private: template -class CopyBinding>: public AbstractBinding +class CopyBinding> final: public AbstractBinding /// Specialization for std::map. { public: @@ -1242,7 +1242,7 @@ private: template -class Binding>: public AbstractBinding +class Binding> final: public AbstractBinding /// Specialization for std::multimap. { public: @@ -1307,7 +1307,7 @@ private: template -class CopyBinding>: public AbstractBinding +class CopyBinding> final: public AbstractBinding /// Specialization for std::multimap. { public: From 57bc0bbbb5afcbadad604fa5fdcc1f5dfb642148 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Mon, 27 Nov 2023 22:43:20 +0100 Subject: [PATCH 226/395] 3102 json lowercase hex (#4306) * Made it possible to use lowercase hex numbers, also when encoding JSON (#3102) Co-authored-by: Thomas Weyn * fix(JSONString): Remove deprecated toJSON functions #4305 * fix(NumericString): conversions inconsistencies #4304 --------- Co-authored-by: Archipel Co-authored-by: Thomas Weyn --- Foundation/include/Poco/JSONString.h | 33 ++---- Foundation/include/Poco/NumberFormatter.h | 60 +++++------ Foundation/include/Poco/NumericString.h | 95 +++++++++++++---- Foundation/include/Poco/UTF8String.h | 2 +- Foundation/src/JSONString.cpp | 22 +--- Foundation/src/NumberFormatter.cpp | 60 +++++------ Foundation/src/UTF8String.cpp | 12 +-- Foundation/testsuite/src/StringTest.cpp | 122 +++++++++++++++------- JSON/include/Poco/JSON/Array.h | 18 ++++ JSON/include/Poco/JSON/Object.h | 19 ++++ JSON/src/Array.cpp | 12 ++- JSON/src/Object.cpp | 5 + JSON/src/Stringifier.cpp | 5 + 13 files changed, 292 insertions(+), 173 deletions(-) diff --git a/Foundation/include/Poco/JSONString.h b/Foundation/include/Poco/JSONString.h index d3d15ef76..2c7102f9a 100644 --- a/Foundation/include/Poco/JSONString.h +++ b/Foundation/include/Poco/JSONString.h @@ -38,37 +38,18 @@ enum JSONOptions /// unicode characters will be escaped in the resulting /// string. - JSON_WRAP_STRINGS = 4 + JSON_WRAP_STRINGS = 4, /// If specified, the object will preserve the items /// insertion order. Otherwise, items will be sorted /// by keys. + + JSON_LOWERCASE_HEX = 8 + /// If specified, all encoding happens with lowercase + /// HEX characters instead of capitals }; -//@ deprecated -void Foundation_API toJSON(const std::string& value, std::ostream& out, bool wrap = true); - /// Formats string value into the supplied output stream by - /// escaping control and ALL Unicode characters. - /// If wrap is true, the resulting string is enclosed in double quotes. - /// - /// This function is deprecated, please use - /// - /// void Poco::toJSON(const std::string&, std::ostream&, int) - - -//@ deprecated -std::string Foundation_API toJSON(const std::string& value, bool wrap = true); - /// Formats string value by escaping control and ALL Unicode characters. - /// If wrap is true, the resulting string is enclosed in double quotes - /// - /// Returns formatted string. - /// - /// This function is deprecated, please use - /// - /// std::string Poco::toJSON(const std::string&, int) - - -void Foundation_API toJSON(const std::string& value, std::ostream& out, int options); +void Foundation_API toJSON(const std::string& value, std::ostream& out, int options = Poco::JSON_WRAP_STRINGS); /// Formats string value into the supplied output stream by /// escaping control characters. /// If JSON_WRAP_STRINGS is in options, the resulting strings is enclosed in double quotes @@ -76,7 +57,7 @@ void Foundation_API toJSON(const std::string& value, std::ostream& out, int opti /// only the compulsory ones. -std::string Foundation_API toJSON(const std::string& value, int options); +std::string Foundation_API toJSON(const std::string& value, int options = Poco::JSON_WRAP_STRINGS); /// Formats string value by escaping control characters. /// If JSON_WRAP_STRINGS is in options, the resulting string is enclosed in double quotes /// If JSON_ESCAPE_UNICODE is in options, all unicode characters will be escaped, otherwise diff --git a/Foundation/include/Poco/NumberFormatter.h b/Foundation/include/Poco/NumberFormatter.h index a197712f1..342f6e7ab 100644 --- a/Foundation/include/Poco/NumberFormatter.h +++ b/Foundation/include/Poco/NumberFormatter.h @@ -302,11 +302,11 @@ public: /// right justified and zero-padded in a field /// having at least the specified width. - static void appendHex(std::string& str, int value); + static void appendHex(std::string& str, int value, bool lowercase = false); /// Formats an int value in hexadecimal notation. /// The value is treated as unsigned. - static void appendHex(std::string& str, int value, int width); + static void appendHex(std::string& str, int value, int width, bool lowercase = false); /// Formats a int value in hexadecimal notation, /// right justified and zero-padded in /// a field having at least the specified width. @@ -535,7 +535,7 @@ inline std::string NumberFormatter::format0(int value, int width) inline std::string NumberFormatter::formatHex(int value, bool prefix) { std::string result; - uIntToStr(static_cast(value), 0x10, result, prefix); + intToStr(static_cast(value), 0x10, result, prefix); return result; } @@ -543,7 +543,7 @@ inline std::string NumberFormatter::formatHex(int value, bool prefix) inline std::string NumberFormatter::formatHex(int value, int width, bool prefix) { std::string result; - uIntToStr(static_cast(value), 0x10, result, prefix, width, '0'); + intToStr(static_cast(value), 0x10, result, prefix, width, '0'); return result; } @@ -551,7 +551,7 @@ inline std::string NumberFormatter::formatHex(int value, int width, bool prefix) inline std::string NumberFormatter::format(unsigned value) { std::string result; - uIntToStr(value, 10, result); + intToStr(value, 10, result); return result; } @@ -559,7 +559,7 @@ inline std::string NumberFormatter::format(unsigned value) inline std::string NumberFormatter::format(unsigned value, int width) { std::string result; - uIntToStr(value, 10, result, false, width, ' '); + intToStr(value, 10, result, false, width, ' '); return result; } @@ -567,7 +567,7 @@ inline std::string NumberFormatter::format(unsigned value, int width) inline std::string NumberFormatter::format0(unsigned int value, int width) { std::string result; - uIntToStr(value, 10, result, false, width, '0'); + intToStr(value, 10, result, false, width, '0'); return result; } @@ -575,7 +575,7 @@ inline std::string NumberFormatter::format0(unsigned int value, int width) inline std::string NumberFormatter::formatHex(unsigned value, bool prefix) { std::string result; - uIntToStr(value, 0x10, result, prefix); + intToStr(value, 0x10, result, prefix); return result; } @@ -583,7 +583,7 @@ inline std::string NumberFormatter::formatHex(unsigned value, bool prefix) inline std::string NumberFormatter::formatHex(unsigned value, int width, bool prefix) { std::string result; - uIntToStr(value, 0x10, result, prefix, width, '0'); + intToStr(value, 0x10, result, prefix, width, '0'); return result; } @@ -615,7 +615,7 @@ inline std::string NumberFormatter::format0(long value, int width) inline std::string NumberFormatter::formatHex(long value, bool prefix) { std::string result; - uIntToStr(static_cast(value), 0x10, result, prefix); + intToStr(static_cast(value), 0x10, result, prefix); return result; } @@ -623,7 +623,7 @@ inline std::string NumberFormatter::formatHex(long value, bool prefix) inline std::string NumberFormatter::formatHex(long value, int width, bool prefix) { std::string result; - uIntToStr(static_cast(value), 0x10, result, prefix, width, '0'); + intToStr(static_cast(value), 0x10, result, prefix, width, '0'); return result; } @@ -631,7 +631,7 @@ inline std::string NumberFormatter::formatHex(long value, int width, bool prefix inline std::string NumberFormatter::format(unsigned long value) { std::string result; - uIntToStr(value, 10, result); + intToStr(value, 10, result); return result; } @@ -639,7 +639,7 @@ inline std::string NumberFormatter::format(unsigned long value) inline std::string NumberFormatter::format(unsigned long value, int width) { std::string result; - uIntToStr(value, 10, result, false, width, ' '); + intToStr(value, 10, result, false, width, ' '); return result; } @@ -647,7 +647,7 @@ inline std::string NumberFormatter::format(unsigned long value, int width) inline std::string NumberFormatter::format0(unsigned long value, int width) { std::string result; - uIntToStr(value, 10, result, false, width, '0'); + intToStr(value, 10, result, false, width, '0'); return result; } @@ -655,7 +655,7 @@ inline std::string NumberFormatter::format0(unsigned long value, int width) inline std::string NumberFormatter::formatHex(unsigned long value, bool prefix) { std::string result; - uIntToStr(value, 0x10, result, prefix); + intToStr(value, 0x10, result, prefix); return result; } @@ -663,7 +663,7 @@ inline std::string NumberFormatter::formatHex(unsigned long value, bool prefix) inline std::string NumberFormatter::formatHex(unsigned long value, int width, bool prefix) { std::string result; - uIntToStr(value, 0x10, result, prefix, width, '0'); + intToStr(value, 0x10, result, prefix, width, '0'); return result; } @@ -699,7 +699,7 @@ inline std::string NumberFormatter::format0(long long value, int width) inline std::string NumberFormatter::formatHex(long long value, bool prefix) { std::string result; - uIntToStr(static_cast(value), 0x10, result, prefix); + intToStr(static_cast(value), 0x10, result, prefix); return result; } @@ -707,7 +707,7 @@ inline std::string NumberFormatter::formatHex(long long value, bool prefix) inline std::string NumberFormatter::formatHex(long long value, int width, bool prefix) { std::string result; - uIntToStr(static_cast(value), 0x10, result, prefix, width, '0'); + intToStr(static_cast(value), 0x10, result, prefix, width, '0'); return result; } @@ -715,7 +715,7 @@ inline std::string NumberFormatter::formatHex(long long value, int width, bool p inline std::string NumberFormatter::format(unsigned long long value) { std::string result; - uIntToStr(value, 10, result); + intToStr(value, 10, result); return result; } @@ -723,7 +723,7 @@ inline std::string NumberFormatter::format(unsigned long long value) inline std::string NumberFormatter::format(unsigned long long value, int width) { std::string result; - uIntToStr(value, 10, result, false, width, ' '); + intToStr(value, 10, result, false, width, ' '); return result; } @@ -731,7 +731,7 @@ inline std::string NumberFormatter::format(unsigned long long value, int width) inline std::string NumberFormatter::format0(unsigned long long value, int width) { std::string result; - uIntToStr(value, 10, result, false, width, '0'); + intToStr(value, 10, result, false, width, '0'); return result; } @@ -739,7 +739,7 @@ inline std::string NumberFormatter::format0(unsigned long long value, int width) inline std::string NumberFormatter::formatHex(unsigned long long value, bool prefix) { std::string result; - uIntToStr(value, 0x10, result, prefix); + intToStr(value, 0x10, result, prefix); return result; } @@ -747,7 +747,7 @@ inline std::string NumberFormatter::formatHex(unsigned long long value, bool pre inline std::string NumberFormatter::formatHex(unsigned long long value, int width, bool prefix) { std::string result; - uIntToStr(value, 0x10, result, prefix, width, '0'); + intToStr(value, 0x10, result, prefix, width, '0'); return result; } @@ -782,7 +782,7 @@ inline std::string NumberFormatter::format0(Int64 value, int width) inline std::string NumberFormatter::formatHex(Int64 value, bool prefix) { std::string result; - uIntToStr(static_cast(value), 0x10, result, prefix); + intToStr(static_cast(value), 0x10, result, prefix); return result; } @@ -790,7 +790,7 @@ inline std::string NumberFormatter::formatHex(Int64 value, bool prefix) inline std::string NumberFormatter::formatHex(Int64 value, int width, bool prefix) { std::string result; - uIntToStr(static_cast(value), 0x10, result, prefix, width, '0'); + intToStr(static_cast(value), 0x10, result, prefix, width, '0'); return result; } @@ -798,7 +798,7 @@ inline std::string NumberFormatter::formatHex(Int64 value, int width, bool prefi inline std::string NumberFormatter::format(UInt64 value) { std::string result; - uIntToStr(value, 10, result); + intToStr(value, 10, result); return result; } @@ -806,7 +806,7 @@ inline std::string NumberFormatter::format(UInt64 value) inline std::string NumberFormatter::format(UInt64 value, int width) { std::string result; - uIntToStr(value, 10, result, false, width, ' '); + intToStr(value, 10, result, false, width, ' '); return result; } @@ -814,7 +814,7 @@ inline std::string NumberFormatter::format(UInt64 value, int width) inline std::string NumberFormatter::format0(UInt64 value, int width) { std::string result; - uIntToStr(value, 10, result, false, width, '0'); + intToStr(value, 10, result, false, width, '0'); return result; } @@ -822,7 +822,7 @@ inline std::string NumberFormatter::format0(UInt64 value, int width) inline std::string NumberFormatter::formatHex(UInt64 value, bool prefix) { std::string result; - uIntToStr(value, 0x10, result, prefix); + intToStr(value, 0x10, result, prefix); return result; } @@ -830,7 +830,7 @@ inline std::string NumberFormatter::formatHex(UInt64 value, bool prefix) inline std::string NumberFormatter::formatHex(UInt64 value, int width, bool prefix) { std::string result; - uIntToStr(value, 0x10, result, prefix, width, '0'); + intToStr(value, 0x10, result, prefix, width, '0'); return result; } diff --git a/Foundation/include/Poco/NumericString.h b/Foundation/include/Poco/NumericString.h index 7fbb5b3f4..140619e77 100644 --- a/Foundation/include/Poco/NumericString.h +++ b/Foundation/include/Poco/NumericString.h @@ -33,6 +33,7 @@ #if !defined(POCO_NO_LOCALE) #include #endif +#include #if defined(POCO_NOINTMAX) typedef Poco::UInt64 uintmax_t; typedef Poco::Int64 intmax_t; @@ -207,7 +208,9 @@ bool strToInt(const char* pStr, I& outResult, short base, char thSep = ',') /// Converts zero-terminated character array to integer number; /// Thousand separators are recognized for base10 and current locale; /// they are silently skipped and not verified for correct positioning. - /// It is not allowed to convert a negative number to unsigned integer. + /// It is not allowed to convert a negative number to anything except + /// 10-base signed integer. + /// For hexadecimal numbers, the case of the digits is not relevant. /// /// Function returns true if successful. If parsing was unsuccessful, /// the return value is false with the result value undetermined. @@ -216,7 +219,9 @@ bool strToInt(const char* pStr, I& outResult, short base, char thSep = ',') if (!pStr) return false; while (std::isspace(*pStr)) ++pStr; - if (*pStr == '\0') return false; + if ((*pStr == '\0') || ((*pStr == '-') && ((base != 10) || (std::is_unsigned::value)))) + return false; + bool negative = false; if ((base == 10) && (*pStr == '-')) { @@ -363,10 +368,16 @@ namespace Impl { const char* _end; }; +template +using EnableSigned = typename std::enable_if< std::is_signed::value >::type*; + +template +using EnableUnsigned = typename std::enable_if< std::is_unsigned::value >::type*; + } // namespace Impl -template +template = nullptr> bool intToStr(T value, unsigned short base, char* result, @@ -374,8 +385,9 @@ bool intToStr(T value, bool prefix = false, int width = -1, char fill = ' ', - char thSep = 0) - /// Converts integer to string. Numeric bases from binary to hexadecimal are supported. + char thSep = 0, + bool lowercase = false) + /// Converts integer to string. Standard numeric bases from binary to hexadecimal are supported. /// If width is non-zero, it pads the return value with fill character to the specified width. /// When padding is zero character ('0'), it is prepended to the number itself; all other /// paddings are prepended to the formatted result with minus sign or base prefix included @@ -383,6 +395,8 @@ bool intToStr(T value, /// "0x" for hexadecimal) is prepended. For all other bases, prefix argument is ignored. /// Formatted string has at least [width] total length. { + poco_assert_dbg (((value < 0) && (base == 10)) || (value >= 0)); + if (base < 2 || base > 0x10) { *result = '\0'; @@ -396,7 +410,7 @@ bool intToStr(T value, { tmpVal = value; value /= base; - *ptr++ = "FEDCBA9876543210123456789ABCDEF"[15 + (tmpVal - value * base)]; + *ptr++ = (lowercase ? "fedcba9876543210123456789abcdef" : "FEDCBA9876543210123456789ABCDEF")[15 + (tmpVal - value * base)]; if (thSep && (base == 10) && (++thCount == 3)) { *ptr++ = thSep; @@ -444,15 +458,16 @@ bool intToStr(T value, } -template -bool uIntToStr(T value, +template = nullptr> +bool intToStr(T value, unsigned short base, char* result, std::size_t& size, bool prefix = false, int width = -1, char fill = ' ', - char thSep = 0) + char thSep = 0, + bool lowercase = false) /// Converts unsigned integer to string. Numeric bases from binary to hexadecimal are supported. /// If width is non-zero, it pads the return value with fill character to the specified width. /// When padding is zero character ('0'), it is prepended to the number itself; all other @@ -474,7 +489,7 @@ bool uIntToStr(T value, { tmpVal = value; value /= base; - *ptr++ = "FEDCBA9876543210123456789ABCDEF"[15 + (tmpVal - value * base)]; + *ptr++ = (lowercase ? "fedcba9876543210123456789abcdef" : "FEDCBA9876543210123456789ABCDEF")[15 + (tmpVal - value * base)]; if (thSep && (base == 10) && (++thCount == 3)) { *ptr++ = thSep; @@ -510,7 +525,7 @@ bool uIntToStr(T value, char tmp; while(ptrr < ptr) { - tmp = *ptr; + tmp = *ptr; *ptr-- = *ptrr; *ptrr++ = tmp; } @@ -519,29 +534,67 @@ bool uIntToStr(T value, } +//@ deprecated template -bool intToStr (T number, unsigned short base, std::string& result, bool prefix = false, int width = -1, char fill = ' ', char thSep = 0) - /// Converts integer to string; This is a wrapper function, for details see see the +bool uIntToStr(T value, + unsigned short base, + char* result, + std::size_t& size, + bool prefix = false, + int width = -1, + char fill = ' ', + char thSep = 0, + bool lowercase = false) + /// Converts unsigned integer to string. Numeric bases from binary to hexadecimal are supported. + /// If width is non-zero, it pads the return value with fill character to the specified width. + /// When padding is zero character ('0'), it is prepended to the number itself; all other + /// paddings are prepended to the formatted result with minus sign or base prefix included + /// If prefix is true and base is octal or hexadecimal, respective prefix ('0' for octal, + /// "0x" for hexadecimal) is prepended. For all other bases, prefix argument is ignored. + /// Formatted string has at least [width] total length. + /// + /// This function is deprecated; use intToStr instead. +{ + return intToStr(value, base, result, size, prefix, width, fill, thSep, lowercase); +} + + +template +bool intToStr (T number, + unsigned short base, + std::string& result, + bool prefix = false, + int width = -1, + char fill = ' ', + char thSep = 0, + bool lowercase = false) + /// Converts integer to string; This is a wrapper function, for details see the /// bool intToStr(T, unsigned short, char*, int, int, char, char) implementation. { char res[POCO_MAX_INT_STRING_LEN] = {0}; std::size_t size = POCO_MAX_INT_STRING_LEN; - bool ret = intToStr(number, base, res, size, prefix, width, fill, thSep); + bool ret = intToStr(number, base, res, size, prefix, width, fill, thSep, lowercase); result.assign(res, size); return ret; } +//@ deprecated template -bool uIntToStr (T number, unsigned short base, std::string& result, bool prefix = false, int width = -1, char fill = ' ', char thSep = 0) - /// Converts unsigned integer to string; This is a wrapper function, for details see see the +bool uIntToStr (T number, + unsigned short base, + std::string& result, + bool prefix = false, + int width = -1, + char fill = ' ', + char thSep = 0, + bool lowercase = false) + /// Converts unsigned integer to string; This is a wrapper function, for details see the /// bool uIntToStr(T, unsigned short, char*, int, int, char, char) implementation. + /// + /// This function is deprecated; use intToStr instead. { - char res[POCO_MAX_INT_STRING_LEN] = {0}; - std::size_t size = POCO_MAX_INT_STRING_LEN; - bool ret = uIntToStr(number, base, res, size, prefix, width, fill, thSep); - result.assign(res, size); - return ret; + return intToStr(number, base, result, prefix, width, fill, thSep, lowercase); } diff --git a/Foundation/include/Poco/UTF8String.h b/Foundation/include/Poco/UTF8String.h index 9b0ddb911..f1330d571 100644 --- a/Foundation/include/Poco/UTF8String.h +++ b/Foundation/include/Poco/UTF8String.h @@ -63,7 +63,7 @@ struct Foundation_API UTF8 /// If strictJSON is true, \a and \v will be escaped to \\u0007 and \\u000B /// instead of \\a and \\v for strict JSON conformance. - static std::string escape(const std::string::const_iterator& begin, const std::string::const_iterator& end, bool strictJSON = false); + static std::string escape(const std::string::const_iterator& begin, const std::string::const_iterator& end, bool strictJSON = false, bool lowerCaseHex = false); /// Escapes a string. Special characters like tab, backslash, ... are /// escaped. Unicode characters are escaped to \uxxxx. /// If strictJSON is true, \a and \v will be escaped to \\u0007 and \\u000B diff --git a/Foundation/src/JSONString.cpp b/Foundation/src/JSONString.cpp index e843867ff..5f648eea7 100644 --- a/Foundation/src/JSONString.cpp +++ b/Foundation/src/JSONString.cpp @@ -32,6 +32,7 @@ void writeString(const std::string &value, T& obj, typename WriteFunc::Typ { bool wrap = ((options & Poco::JSON_WRAP_STRINGS) != 0); bool escapeAllUnicode = ((options & Poco::JSON_ESCAPE_UNICODE) != 0); + bool lowerCaseHex = ((options & Poco::JSON_LOWERCASE_HEX) != 0); if (value.size() == 0) { @@ -42,7 +43,7 @@ void writeString(const std::string &value, T& obj, typename WriteFunc::Typ if(wrap) (obj.*write)("\"", 1); if(escapeAllUnicode) { - std::string str = Poco::UTF8::escape(value.begin(), value.end(), true); + std::string str = Poco::UTF8::escape(value.begin(), value.end(), true, lowerCaseHex); (obj.*write)(str.c_str(), str.size()); } else @@ -51,7 +52,7 @@ void writeString(const std::string &value, T& obj, typename WriteFunc::Typ { if ((*it >= 0 && *it <= 31) || (*it == '"') || (*it == '\\')) { - std::string str = Poco::UTF8::escape(it, it + 1, true); + std::string str = Poco::UTF8::escape(it, it + 1, true, lowerCaseHex); (obj.*write)(str.c_str(), str.size()); } else (obj.*write)(&(*it), 1); @@ -67,23 +68,6 @@ void writeString(const std::string &value, T& obj, typename WriteFunc::Typ namespace Poco { -void toJSON(const std::string& value, std::ostream& out, bool wrap) -{ - int options = (wrap ? Poco::JSON_WRAP_STRINGS : 0); - writeString(value, out, &std::ostream::write, options); -} - - -std::string toJSON(const std::string& value, bool wrap) -{ - int options = (wrap ? Poco::JSON_WRAP_STRINGS : 0); - std::string ret; - writeString(value, ret, &std::string::append, options); - return ret; -} - - void toJSON(const std::string& value, std::ostream& out, int options) { writeString(value, out, &std::ostream::write, options); diff --git a/Foundation/src/NumberFormatter.cpp b/Foundation/src/NumberFormatter.cpp index 2c32129df..e0821a191 100644 --- a/Foundation/src/NumberFormatter.cpp +++ b/Foundation/src/NumberFormatter.cpp @@ -83,20 +83,20 @@ void NumberFormatter::append0(std::string& str, int value, int width) } -void NumberFormatter::appendHex(std::string& str, int value) +void NumberFormatter::appendHex(std::string& str, int value, bool lowercase) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(static_cast(value), 0x10, result, sz); + intToStr(static_cast(value), 0x10, result, sz, false, -1, ' ', 0, lowercase); str.append(result, sz); } -void NumberFormatter::appendHex(std::string& str, int value, int width) +void NumberFormatter::appendHex(std::string& str, int value, int width, bool lowercase) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(static_cast(value), 0x10, result, sz, false, width, '0'); + intToStr(static_cast(value), 0x10, result, sz, false, width, '0', 0, lowercase); str.append(result, sz); } @@ -105,7 +105,7 @@ void NumberFormatter::append(std::string& str, unsigned value) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(value, 10, result, sz); + intToStr(value, 10, result, sz); str.append(result, sz); } @@ -114,7 +114,7 @@ void NumberFormatter::append(std::string& str, unsigned value, int width) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(value, 10, result, sz, false, width); + intToStr(value, 10, result, sz, false, width); str.append(result, sz); } @@ -123,7 +123,7 @@ void NumberFormatter::append0(std::string& str, unsigned int value, int width) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(value, 10, result, sz, false, width, '0'); + intToStr(value, 10, result, sz, false, width, '0'); str.append(result, sz); } @@ -132,7 +132,7 @@ void NumberFormatter::appendHex(std::string& str, unsigned value) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(value, 0x10, result, sz); + intToStr(value, 0x10, result, sz); str.append(result, sz); } @@ -141,7 +141,7 @@ void NumberFormatter::appendHex(std::string& str, unsigned value, int width) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(value, 0x10, result, sz, false, width, '0'); + intToStr(value, 0x10, result, sz, false, width, '0'); str.append(result, sz); } @@ -177,7 +177,7 @@ void NumberFormatter::appendHex(std::string& str, long value) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(static_cast(value), 0x10, result, sz); + intToStr(static_cast(value), 0x10, result, sz); str.append(result, sz); } @@ -186,7 +186,7 @@ void NumberFormatter::appendHex(std::string& str, long value, int width) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(static_cast(value), 0x10, result, sz, false, width, '0'); + intToStr(static_cast(value), 0x10, result, sz, false, width, '0'); str.append(result, sz); } @@ -195,7 +195,7 @@ void NumberFormatter::append(std::string& str, unsigned long value) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(value, 10, result, sz); + intToStr(value, 10, result, sz); str.append(result, sz); } @@ -204,7 +204,7 @@ void NumberFormatter::append(std::string& str, unsigned long value, int width) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(value, 10, result, sz, false, width, '0'); + intToStr(value, 10, result, sz, false, width, '0'); str.append(result, sz); } @@ -213,7 +213,7 @@ void NumberFormatter::append0(std::string& str, unsigned long value, int width) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(value, 10, result, sz, false, width, '0'); + intToStr(value, 10, result, sz, false, width, '0'); str.append(result, sz); } @@ -222,7 +222,7 @@ void NumberFormatter::appendHex(std::string& str, unsigned long value) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(value, 0x10, result, sz); + intToStr(value, 0x10, result, sz); str.append(result, sz); } @@ -231,7 +231,7 @@ void NumberFormatter::appendHex(std::string& str, unsigned long value, int width { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(value, 0x10, result, sz, false, width, '0'); + intToStr(value, 0x10, result, sz, false, width, '0'); str.append(result, sz); } @@ -271,7 +271,7 @@ void NumberFormatter::appendHex(std::string& str, long long value) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(static_cast(value), 0x10, result, sz); + intToStr(static_cast(value), 0x10, result, sz); str.append(result, sz); } @@ -280,7 +280,7 @@ void NumberFormatter::appendHex(std::string& str, long long value, int width) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(static_cast(value), 0x10, result, sz, false, width, '0'); + intToStr(static_cast(value), 0x10, result, sz, false, width, '0'); str.append(result, sz); } @@ -289,7 +289,7 @@ void NumberFormatter::append(std::string& str, unsigned long long value) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(value, 10, result, sz); + intToStr(value, 10, result, sz); str.append(result, sz); } @@ -298,7 +298,7 @@ void NumberFormatter::append(std::string& str, unsigned long long value, int wid { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(value, 10, result, sz, false, width, '0'); + intToStr(value, 10, result, sz, false, width, '0'); str.append(result, sz); } @@ -307,7 +307,7 @@ void NumberFormatter::append0(std::string& str, unsigned long long value, int wi { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(value, 10, result, sz, false, width, '0'); + intToStr(value, 10, result, sz, false, width, '0'); str.append(result, sz); } @@ -316,7 +316,7 @@ void NumberFormatter::appendHex(std::string& str, unsigned long long value) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(value, 0x10, result, sz); + intToStr(value, 0x10, result, sz); str.append(result, sz); } @@ -325,7 +325,7 @@ void NumberFormatter::appendHex(std::string& str, unsigned long long value, int { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(value, 0x10, result, sz, false, width, '0'); + intToStr(value, 0x10, result, sz, false, width, '0'); str.append(result, sz); } @@ -364,7 +364,7 @@ void NumberFormatter::appendHex(std::string& str, Int64 value) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(static_cast(value), 0x10, result, sz); + intToStr(static_cast(value), 0x10, result, sz); str.append(result, sz); } @@ -373,7 +373,7 @@ void NumberFormatter::appendHex(std::string& str, Int64 value, int width) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(static_cast(value), 0x10, result, sz, false, width, '0'); + intToStr(static_cast(value), 0x10, result, sz, false, width, '0'); str.append(result, sz); } @@ -382,7 +382,7 @@ void NumberFormatter::append(std::string& str, UInt64 value) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(value, 10, result, sz); + intToStr(value, 10, result, sz); str.append(result, sz); } @@ -391,7 +391,7 @@ void NumberFormatter::append(std::string& str, UInt64 value, int width) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(value, 10, result, sz, false, width, '0'); + intToStr(value, 10, result, sz, false, width, '0'); str.append(result, sz); } @@ -400,7 +400,7 @@ void NumberFormatter::append0(std::string& str, UInt64 value, int width) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(value, 10, result, sz, false, width, '0'); + intToStr(value, 10, result, sz, false, width, '0'); str.append(result, sz); } @@ -409,7 +409,7 @@ void NumberFormatter::appendHex(std::string& str, UInt64 value) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(value, 0x10, result, sz); + intToStr(value, 0x10, result, sz); str.append(result, sz); } @@ -418,7 +418,7 @@ void NumberFormatter::appendHex(std::string& str, UInt64 value, int width) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - uIntToStr(value, 0x10, result, sz, false, width, '0'); + intToStr(value, 0x10, result, sz, false, width, '0'); str.append(result, sz); } diff --git a/Foundation/src/UTF8String.cpp b/Foundation/src/UTF8String.cpp index d9336f3b2..f51bec4f8 100644 --- a/Foundation/src/UTF8String.cpp +++ b/Foundation/src/UTF8String.cpp @@ -178,7 +178,7 @@ std::string UTF8::escape(const std::string &s, bool strictJSON) } -std::string UTF8::escape(const std::string::const_iterator& begin, const std::string::const_iterator& end, bool strictJSON) +std::string UTF8::escape(const std::string::const_iterator& begin, const std::string::const_iterator& end, bool strictJSON, bool lowerCaseHex) { static Poco::UInt32 offsetsFromUTF8[6] = { 0x00000000UL, 0x00003080UL, 0x000E2080UL, @@ -208,7 +208,7 @@ std::string UTF8::escape(const std::string::const_iterator& begin, const std::st else if (ch == '\r') result += "\\r"; else if (ch == '\b') result += "\\b"; else if (ch == '\f') result += "\\f"; - else if (ch == '\v') result += (strictJSON ? "\\u000B" : "\\v"); + else if (ch == '\v') result += (strictJSON ? (lowerCaseHex ? "\\u000b" : "\\u000B") : "\\v"); else if (ch == '\a') result += (strictJSON ? "\\u0007" : "\\a"); else if (ch == '\\') result += "\\\\"; else if (ch == '\"') result += "\\\""; @@ -217,20 +217,20 @@ std::string UTF8::escape(const std::string::const_iterator& begin, const std::st else if (ch < 32 || ch == 0x7f) { result += "\\u"; - NumberFormatter::appendHex(result, (unsigned short) ch, 4); + NumberFormatter::appendHex(result, (unsigned short) ch, 4, lowerCaseHex); } else if (ch > 0xFFFF) { ch -= 0x10000; result += "\\u"; - NumberFormatter::appendHex(result, (unsigned short) (( ch >> 10 ) & 0x03ff ) + 0xd800, 4); + NumberFormatter::appendHex(result, (unsigned short) (( ch >> 10 ) & 0x03ff ) + 0xd800, 4, lowerCaseHex); result += "\\u"; - NumberFormatter::appendHex(result, (unsigned short) (ch & 0x03ff ) + 0xdc00, 4); + NumberFormatter::appendHex(result, (unsigned short) (ch & 0x03ff ) + 0xdc00, 4, lowerCaseHex); } else if (ch >= 0x80 && ch <= 0xFFFF) { result += "\\u"; - NumberFormatter::appendHex(result, (unsigned short) ch, 4); + NumberFormatter::appendHex(result, (unsigned short) ch, 4, lowerCaseHex); } else { diff --git a/Foundation/testsuite/src/StringTest.cpp b/Foundation/testsuite/src/StringTest.cpp index 0f1021ba1..031ce13b3 100644 --- a/Foundation/testsuite/src/StringTest.cpp +++ b/Foundation/testsuite/src/StringTest.cpp @@ -58,7 +58,7 @@ using Poco::strToInt; using Poco::strToFloat; using Poco::strToDouble; using Poco::intToStr; -using Poco::uIntToStr; +using Poco::intToStr; using Poco::floatToStr; using Poco::doubleToStr; using Poco::thousandSeparator; @@ -944,67 +944,92 @@ void StringTest::testIntToString() assertTrue (result == "1001001100101100000001011010010"); assertTrue (intToStr(1234567890, 2, result, true, 35, '0')); assertTrue (result == "00001001001100101100000001011010010"); - assertTrue (uIntToStr(0xFF, 2, result)); + assertTrue (intToStr(0xFF, 2, result)); assertTrue (result == "11111111"); - assertTrue (uIntToStr(0x0F, 2, result, false, 8, '0')); + assertTrue (intToStr(0x0F, 2, result, false, 8, '0')); assertTrue (result == "00001111"); - assertTrue (uIntToStr(0x0F, 2, result)); + assertTrue (intToStr(0x0F, 2, result)); assertTrue (result == "1111"); - assertTrue (uIntToStr(0xF0, 2, result)); + assertTrue (intToStr(0xF0, 2, result)); assertTrue (result == "11110000"); - assertTrue (uIntToStr(0xFFFF, 2, result)); + assertTrue (intToStr(0xFFFF, 2, result)); assertTrue (result == "1111111111111111"); - assertTrue (uIntToStr(0xFF00, 2, result)); + assertTrue (intToStr(0xFF00, 2, result)); assertTrue (result == "1111111100000000"); - assertTrue (uIntToStr(0xFFFFFFFF, 2, result)); + assertTrue (intToStr(0xFFFFFFFF, 2, result)); assertTrue (result == "11111111111111111111111111111111"); - assertTrue (uIntToStr(0xFF00FF00, 2, result)); + assertTrue (intToStr(0xFF00FF00, 2, result)); assertTrue (result == "11111111000000001111111100000000"); - assertTrue (uIntToStr(0xF0F0F0F0, 2, result)); + assertTrue (intToStr(0xF0F0F0F0, 2, result)); assertTrue (result == "11110000111100001111000011110000"); #if defined(POCO_HAVE_INT64) - assertTrue (uIntToStr(0xFFFFFFFFFFFFFFFF, 2, result)); + assertTrue (intToStr(0xFFFFFFFFFFFFFFFF, 2, result)); assertTrue (result == "1111111111111111111111111111111111111111111111111111111111111111"); - assertTrue (uIntToStr(0xFF00000FF00000FF, 2, result)); + assertTrue (intToStr(0xFF00000FF00000FF, 2, result)); assertTrue (result == "1111111100000000000000000000111111110000000000000000000011111111"); #endif // octal - assertTrue (uIntToStr(1234567890, 010, result)); + assertTrue (intToStr(1234567890, 010, result)); assertTrue (result == "11145401322"); - assertTrue (uIntToStr(1234567890, 010, result, true)); + assertTrue (intToStr(1234567890, 010, result, true)); assertTrue (result == "011145401322"); - assertTrue (uIntToStr(1234567890, 010, result, true, 15, '0')); + assertTrue (intToStr(1234567890, 010, result, true, 15, '0')); assertTrue (result == "000011145401322"); - assertTrue (uIntToStr(012345670, 010, result, true)); + assertTrue (intToStr(012345670, 010, result, true)); assertTrue (result == "012345670"); - assertTrue (uIntToStr(012345670, 010, result)); + assertTrue (intToStr(012345670, 010, result)); assertTrue (result == "12345670"); // hexadecimal - assertTrue (uIntToStr(0, 0x10, result, true)); + // uppercase + assertTrue (intToStr(0, 0x10, result, true)); assertTrue (result == "0x0"); - assertTrue (uIntToStr(0, 0x10, result, true, 4, '0')); + assertTrue (intToStr(0, 0x10, result, true, 4, '0')); assertTrue (result == "0x00"); - assertTrue (uIntToStr(0, 0x10, result, false, 4, '0')); + assertTrue (intToStr(0, 0x10, result, false, 4, '0')); assertTrue (result == "0000"); - assertTrue (uIntToStr(1234567890, 0x10, result)); + assertTrue (intToStr(1234567890, 0x10, result)); assertTrue (result == "499602D2"); - assertTrue (uIntToStr(1234567890, 0x10, result, true)); + assertTrue (intToStr(1234567890, 0x10, result, true)); assertTrue (result == "0x499602D2"); - assertTrue (uIntToStr(1234567890, 0x10, result, true, 15, '0')); + assertTrue (intToStr(1234567890, 0x10, result, true, 15, '0')); assertTrue (result == "0x00000499602D2"); - assertTrue (uIntToStr(0x1234567890ABCDEF, 0x10, result, true)); + assertTrue (intToStr(0x1234567890ABCDEF, 0x10, result, true)); assertTrue (result == "0x1234567890ABCDEF"); - assertTrue (uIntToStr(0xDEADBEEF, 0x10, result)); + assertTrue (intToStr(0xDEADBEEF, 0x10, result)); assertTrue (result == "DEADBEEF"); #if defined(POCO_HAVE_INT64) - assertTrue (uIntToStr(0xFFFFFFFFFFFFFFFF, 0x10, result)); + assertTrue (intToStr(0xFFFFFFFFFFFFFFFF, 0x10, result)); assertTrue (result == "FFFFFFFFFFFFFFFF"); - assertTrue (uIntToStr(0xFFFFFFFFFFFFFFFF, 0x10, result, true)); + assertTrue (intToStr(0xFFFFFFFFFFFFFFFF, 0x10, result, true)); assertTrue (result == "0xFFFFFFFFFFFFFFFF"); #endif + // lowercase + assertTrue (intToStr(0, 0x10, result, true, -1, (char)32, 0, true)); + assertTrue (result == "0x0"); + assertTrue (intToStr(0, 0x10, result, true, 4, '0', 0, true)); + assertTrue (result == "0x00"); + assertTrue (intToStr(0, 0x10, result, false, 4, '0', 0, true)); + assertTrue (result == "0000"); + assertTrue (intToStr(1234567890, 0x10, result, false, -1, (char)32, 0, true)); + assertTrue (result == "499602d2"); + assertTrue (intToStr(1234567890, 0x10, result, true, -1, (char)32, 0, true)); + assertTrue (result == "0x499602d2"); + assertTrue (intToStr(1234567890, 0x10, result, true, 15, '0', 0, true)); + assertTrue (result == "0x00000499602d2"); + assertTrue (intToStr(0x1234567890ABCDEF, 0x10, result, true, -1, (char)32, 0, true)); + assertTrue (result == "0x1234567890abcdef"); + assertTrue (intToStr(0xDEADBEEF, 0x10, result, false, -1, (char)32, 0, true)); + assertTrue (result == "deadbeef"); +#if defined(POCO_HAVE_INT64) + assertTrue (intToStr(0xFFFFFFFFFFFFFFFF, 0x10, result, false, -1, (char)32, 0, true)); + assertTrue (result == "ffffffffffffffff"); + assertTrue (intToStr(0xFFFFFFFFFFFFFFFF, 0x10, result, true, -1, (char)32, 0, true)); + assertTrue (result == "0xffffffffffffffff"); +#endif + try { char pResult[POCO_MAX_INT_STRING_LEN]; @@ -1245,16 +1270,17 @@ void formatSprintf(double value, std::string& str) void StringTest::testJSONString() { - assertTrue (toJSON("\\", false) == "\\\\"); - assertTrue (toJSON("\"", false) == "\\\""); - assertTrue (toJSON("\a", false) == "\\u0007"); - assertTrue (toJSON("\b", false) == "\\b"); - assertTrue (toJSON("\f", false) == "\\f"); - assertTrue (toJSON("\n", false) == "\\n"); - assertTrue (toJSON("\r", false) == "\\r"); - assertTrue (toJSON("\t", false) == "\\t"); - assertTrue (toJSON("\v", false) == "\\u000B"); - assertTrue (toJSON("a", false) == "a"); + assertTrue (toJSON("\\", 0) == "\\\\"); + assertTrue (toJSON("\"", 0) == "\\\""); + assertTrue (toJSON("\a", 0) == "\\u0007"); + assertTrue (toJSON("\b", 0) == "\\b"); + assertTrue (toJSON("\f", 0) == "\\f"); + assertTrue (toJSON("\n", 0) == "\\n"); + assertTrue (toJSON("\r", 0) == "\\r"); + assertTrue (toJSON("\t", 0) == "\\t"); + assertTrue (toJSON("\v", 0) == "\\u000B"); + assertTrue (toJSON("\v", Poco::JSON_LOWERCASE_HEX) == "\\u000b"); + assertTrue (toJSON("a", 0) == "a"); assertTrue (toJSON("\xD0\x82", 0) == "\xD0\x82"); assertTrue (toJSON("\xD0\x82", Poco::JSON_ESCAPE_UNICODE) == "\\u0402"); @@ -1296,12 +1322,34 @@ void StringTest::testJSONString() ostr.str(""); toJSON("tb\t", ostr); assertTrue (ostr.str() == "\"tb\\t\""); + ostr.str(""); toJSON("\xD0\x82", ostr); assertTrue (ostr.str() == "\"\xD0\x82\""); ostr.str(""); toJSON("\xD0\x82", ostr, Poco::JSON_WRAP_STRINGS); assertTrue (ostr.str() == "\"\xD0\x82\""); + + // wrap + // uppercase (default) + ostr.str(""); + toJSON("\v", ostr); + assertTrue (ostr.str() == "\"\\u000B\""); + // lowercase + ostr.str(""); + toJSON("\v", ostr, Poco::JSON_WRAP_STRINGS | Poco::JSON_LOWERCASE_HEX); + assertTrue (ostr.str() == "\"\\u000b\""); + + // no wrap + // uppercase + ostr.str(""); + toJSON("\v", ostr, 0); + assertTrue (ostr.str() == "\\u000B"); + // lowercase + ostr.str(""); + toJSON("\v", ostr, Poco::JSON_LOWERCASE_HEX); + assertTrue (ostr.str() == "\\u000b"); + ostr.str(""); toJSON("\xD0\x82", ostr, Poco::JSON_WRAP_STRINGS | Poco::JSON_ESCAPE_UNICODE); assertTrue (ostr.str() == "\"\\u0402\""); diff --git a/JSON/include/Poco/JSON/Array.h b/JSON/include/Poco/JSON/Array.h index 73c9d2e6e..631160de6 100644 --- a/JSON/include/Poco/JSON/Array.h +++ b/JSON/include/Poco/JSON/Array.h @@ -90,6 +90,12 @@ public: bool getEscapeUnicode() const; /// Returns the flag for escaping unicode. + + void setLowercaseHex(bool lowercaseHex); + /// Sets the flag for using lowercase hex numbers + + bool getLowercaseHex() const; + /// Returns the flag for using lowercase hex numbers ValueVec::const_iterator begin() const; /// Returns the begin iterator for values. @@ -206,6 +212,7 @@ private: // is because Array can be returned stringified from a Dynamic::Var:toString(), // so it must know whether to escape unicode or not. bool _escapeUnicode; + bool _lowercaseHex; }; @@ -224,6 +231,17 @@ inline bool Array::getEscapeUnicode() const return _escapeUnicode; } +inline void Array::setLowercaseHex(bool lowercaseHex) +{ + _lowercaseHex = lowercaseHex; +} + + +inline bool Array::getLowercaseHex() const +{ + return _lowercaseHex; +} + inline Array::ValueVec::const_iterator Array::begin() const { diff --git a/JSON/include/Poco/JSON/Object.h b/JSON/include/Poco/JSON/Object.h index 5a3cd688c..e7eae6249 100644 --- a/JSON/include/Poco/JSON/Object.h +++ b/JSON/include/Poco/JSON/Object.h @@ -101,7 +101,13 @@ public: bool getEscapeUnicode() const; /// Returns the flag for escaping unicode. + + void setLowercaseHex(bool lowercaseHex); + /// Sets the flag for using lowercase hex numbers + bool getLowercaseHex() const; + /// Returns the flag for using lowercase hex numbers + Iterator begin(); /// Returns begin iterator for values. @@ -255,6 +261,7 @@ private: { int options = Poco::JSON_WRAP_STRINGS; options |= _escapeUnicode ? Poco::JSON_ESCAPE_UNICODE : 0; + options |= _lowercaseHex ? Poco::JSON_LOWERCASE_HEX : 0; out << '{'; @@ -349,6 +356,7 @@ private: // because Object can be returned stringified from Dynamic::Var::toString(), // so it must know whether to escape unicode or not. bool _escapeUnicode; + bool _lowercaseHex; mutable StructPtr _pStruct; mutable OrdStructPtr _pOrdStruct; mutable bool _modified; @@ -370,6 +378,17 @@ inline bool Object::getEscapeUnicode() const return _escapeUnicode; } +inline void Object::setLowercaseHex(bool lowercaseHex) +{ + _lowercaseHex = lowercaseHex; +} + + +inline bool Object::getLowercaseHex() const +{ + return _lowercaseHex; +} + inline Object::Iterator Object::begin() { diff --git a/JSON/src/Array.cpp b/JSON/src/Array.cpp index 67e43f218..05f40503f 100644 --- a/JSON/src/Array.cpp +++ b/JSON/src/Array.cpp @@ -27,7 +27,8 @@ namespace JSON { Array::Array(int options): _modified(false), - _escapeUnicode((options & Poco::JSON_ESCAPE_UNICODE) != 0) + _escapeUnicode((options & Poco::JSON_ESCAPE_UNICODE) != 0), + _lowercaseHex((options & Poco::JSON_LOWERCASE_HEX) != 0) { } @@ -36,7 +37,8 @@ Array::Array(const Array& other) : _values(other._values), _pArray(other._pArray), _modified(other._modified), - _escapeUnicode(other._escapeUnicode) + _escapeUnicode(other._escapeUnicode), + _lowercaseHex(other._lowercaseHex) { } @@ -45,7 +47,8 @@ Array::Array(Array&& other) noexcept: _values(std::move(other._values)), _pArray(std::move(other._pArray)), _modified(other._modified), - _escapeUnicode(other._escapeUnicode) + _escapeUnicode(other._escapeUnicode), + _lowercaseHex(other._lowercaseHex) { } @@ -58,6 +61,7 @@ Array& Array::operator = (const Array& other) _pArray = other._pArray; _modified = other._modified; _escapeUnicode = other._escapeUnicode; + _lowercaseHex = other._lowercaseHex; } return *this; } @@ -69,6 +73,7 @@ Array& Array::operator = (Array&& other) noexcept _pArray = std::move(other._pArray); _modified = other._modified; _escapeUnicode = other._escapeUnicode; + _lowercaseHex = other._lowercaseHex; return *this; } @@ -154,6 +159,7 @@ void Array::stringify(std::ostream& out, unsigned int indent, int step) const { int options = Poco::JSON_WRAP_STRINGS; options |= _escapeUnicode ? Poco::JSON_ESCAPE_UNICODE : 0; + options |= _lowercaseHex ? Poco::JSON_LOWERCASE_HEX : 0; if (step == -1) step = indent; diff --git a/JSON/src/Object.cpp b/JSON/src/Object.cpp index 9ddbfc71d..36c23e61f 100644 --- a/JSON/src/Object.cpp +++ b/JSON/src/Object.cpp @@ -27,6 +27,7 @@ namespace JSON { Object::Object(int options): _preserveInsOrder((options & Poco::JSON_PRESERVE_KEY_ORDER) != 0), _escapeUnicode((options & Poco::JSON_ESCAPE_UNICODE) != 0), + _lowercaseHex((options & Poco::JSON_LOWERCASE_HEX) != 0), _modified(false) { } @@ -35,6 +36,7 @@ Object::Object(int options): Object::Object(const Object& other) : _values(other._values), _preserveInsOrder(other._preserveInsOrder), _escapeUnicode(other._escapeUnicode), + _lowercaseHex(other._lowercaseHex), _pStruct(!other._modified ? other._pStruct : 0), _modified(other._modified) { @@ -47,6 +49,7 @@ Object::Object(Object&& other) noexcept: _keys(std::move(other._keys)), _preserveInsOrder(other._preserveInsOrder), _escapeUnicode(other._escapeUnicode), + _lowercaseHex(other._lowercaseHex), _pStruct(std::move(other._pStruct)), _pOrdStruct(std::move(other._pOrdStruct)), _modified(other._modified) @@ -67,6 +70,7 @@ Object &Object::operator = (const Object &other) _keys = other._keys; _preserveInsOrder = other._preserveInsOrder; _escapeUnicode = other._escapeUnicode; + _lowercaseHex = other._lowercaseHex; _pStruct = !other._modified ? other._pStruct : 0; _modified = other._modified; } @@ -80,6 +84,7 @@ Object& Object::operator = (Object&& other) noexcept _keys = std::move(other._keys); _preserveInsOrder = other._preserveInsOrder; _escapeUnicode = other._escapeUnicode; + _lowercaseHex = other._lowercaseHex; _pStruct = std::move(other._pStruct); _pOrdStruct = std::move(other._pOrdStruct); _modified = other._modified; diff --git a/JSON/src/Stringifier.cpp b/JSON/src/Stringifier.cpp index b71625b60..78ced3921 100644 --- a/JSON/src/Stringifier.cpp +++ b/JSON/src/Stringifier.cpp @@ -28,6 +28,7 @@ namespace JSON { void Stringifier::stringify(const Var& any, std::ostream& out, unsigned int indent, int step, int options) { bool escapeUnicode = ((options & Poco::JSON_ESCAPE_UNICODE) != 0); + bool lowercaseHex = ((options & Poco::JSON_LOWERCASE_HEX) != 0); if (step == -1) step = indent; @@ -35,24 +36,28 @@ void Stringifier::stringify(const Var& any, std::ostream& out, unsigned int inde { Object& o = const_cast(any.extract()); o.setEscapeUnicode(escapeUnicode); + o.setLowercaseHex(lowercaseHex); o.stringify(out, indent == 0 ? 0 : indent, step); } else if (any.type() == typeid(Array)) { Array& a = const_cast(any.extract()); a.setEscapeUnicode(escapeUnicode); + a.setLowercaseHex(lowercaseHex); a.stringify(out, indent == 0 ? 0 : indent, step); } else if (any.type() == typeid(Object::Ptr)) { Object::Ptr& o = const_cast(any.extract()); o->setEscapeUnicode(escapeUnicode); + o->setLowercaseHex(lowercaseHex); o->stringify(out, indent == 0 ? 0 : indent, step); } else if (any.type() == typeid(Array::Ptr)) { Array::Ptr& a = const_cast(any.extract()); a->setEscapeUnicode(escapeUnicode); + a->setLowercaseHex(lowercaseHex); a->stringify(out, indent == 0 ? 0 : indent, step); } else if (any.isEmpty()) From 4cfa96c94ea66641ee7106de65cbf34aa29852b9 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Thu, 30 Nov 2023 14:53:55 +0100 Subject: [PATCH 227/395] enh(JSON): Add unit test testBasicJson to test basic functionality of the JSON parser. #3331 (#4315) --- JSON/testsuite/src/JSONTest.cpp | 38 +++++++++++++++++++++++++++++++++ JSON/testsuite/src/JSONTest.h | 2 ++ 2 files changed, 40 insertions(+) diff --git a/JSON/testsuite/src/JSONTest.cpp b/JSON/testsuite/src/JSONTest.cpp index d28696406..7e0b56d4d 100644 --- a/JSON/testsuite/src/JSONTest.cpp +++ b/JSON/testsuite/src/JSONTest.cpp @@ -1806,6 +1806,43 @@ void JSONTest::testVarConvert() assertTrue(cvt == "[1,2,3]"); } +void JSONTest::testBasicJson() +{ + // Tests basic JSON structure and accessibility of members + + const auto json = R"( + { + "clientConfig" : "Franky", + "arrayMember": [1, "A", 3.5], + "objectMember": { + "a": 1, + "b": "B" + } + } + )"; + Poco::JSON::Parser jsonParser; + Poco::Dynamic::Var jsonObject = jsonParser.parse(json); + + Poco::JSON::Object::Ptr jsonPtr = jsonObject.extract(); + + assertFalse(jsonPtr->get("clientConfig").isEmpty()); + const auto testStr = jsonPtr->getValue("clientConfig"); + assertEqual(testStr, "Franky"); + + const auto testArr = jsonPtr->getArray("arrayMember"); + assertFalse(testArr.isNull()); + assertFalse(testArr->empty()); + assertEqual(testArr->size(), 3); + assertEqual(testArr->getElement(0), 1); + assertEqual(testArr->getElement(1), "A"); + + const auto testObj = jsonPtr->getObject("objectMember"); + assertFalse(testObj.isNull()); + assertEqual(testObj->size(), 2); + assertEqual(testObj->getValue("a"), 1); + assertEqual(testObj->getValue("b"), "B"); + +} void JSONTest::testValidJanssonFiles() { @@ -2375,6 +2412,7 @@ CppUnit::Test* JSONTest::suite() CppUnit_addTest(pSuite, JSONTest, testStringifyNaN); CppUnit_addTest(pSuite, JSONTest, testStringifyPreserveOrder); CppUnit_addTest(pSuite, JSONTest, testVarConvert); + CppUnit_addTest(pSuite, JSONTest, testBasicJson); CppUnit_addTest(pSuite, JSONTest, testValidJanssonFiles); CppUnit_addTest(pSuite, JSONTest, testInvalidJanssonFiles); CppUnit_addTest(pSuite, JSONTest, testInvalidUnicodeJanssonFiles); diff --git a/JSON/testsuite/src/JSONTest.h b/JSON/testsuite/src/JSONTest.h index c459bc231..40bf81a1a 100644 --- a/JSON/testsuite/src/JSONTest.h +++ b/JSON/testsuite/src/JSONTest.h @@ -71,6 +71,8 @@ public: void testStringifyPreserveOrder(); void testVarConvert(); + void testBasicJson(); + void testValidJanssonFiles(); void testInvalidJanssonFiles(); void testTemplate(); From 1e4c08b4eb8965a427d317c3429b5acd579bef22 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Thu, 30 Nov 2023 12:46:24 +0100 Subject: [PATCH 228/395] fix(MongoDB): PooledConnection shall have a pointer to a ConnectionPool instead of a reference (fixes clang warning) #4276 --- .../include/Poco/MongoDB/PoolableConnectionFactory.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/MongoDB/include/Poco/MongoDB/PoolableConnectionFactory.h b/MongoDB/include/Poco/MongoDB/PoolableConnectionFactory.h index 10d089517..26c485eab 100644 --- a/MongoDB/include/Poco/MongoDB/PoolableConnectionFactory.h +++ b/MongoDB/include/Poco/MongoDB/PoolableConnectionFactory.h @@ -89,11 +89,13 @@ namespace MongoDB { class PooledConnection /// Helper class for borrowing and returning a connection automatically from a pool. + /// Note that the connection pool is not expected to be deleted during the lifetime + /// of an instance of PooledConnection. { public: - PooledConnection(Poco::ObjectPool& pool) : _pool(pool) + PooledConnection(Poco::ObjectPool& pool) : _pool(&pool) { - _connection = _pool.borrowObject(); + _connection = _pool->borrowObject(); } virtual ~PooledConnection() @@ -102,7 +104,7 @@ public: { if (_connection) { - _pool.returnObject(_connection); + _pool->returnObject(_connection); } } catch (...) @@ -125,7 +127,7 @@ public: PooledConnection& operator=(PooledConnection&&) = default; private: - Poco::ObjectPool& _pool; + Poco::ObjectPool* _pool; Connection::Ptr _connection; }; From 381467d8f521f36b5c8dbb5cbe7218f6beafdb0a Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Thu, 30 Nov 2023 12:50:39 +0100 Subject: [PATCH 229/395] enh(ci): Add ENABLE_COMPILER_WARNINGS to cmake to enable additional compiler warnings --- CMakeLists.txt | 3 +++ cmake/DefinePlatformSpecifc.cmake | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a03458de9..22c403ba5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -206,6 +206,9 @@ endif() option(ENABLE_TESTS "Set to OFF|ON (default is OFF) to control build of POCO tests" OFF) +option(ENABLE_COMPILER_WARNINGS + "Set to OFF|ON (default is OFF) to enable additional compiler warnings. Intended primarily for maintainers." OFF) + option(ENABLE_SAMPLES "Set to OFF|ON (default is OFF) to control build of POCO samples" OFF) diff --git a/cmake/DefinePlatformSpecifc.cmake b/cmake/DefinePlatformSpecifc.cmake index dbb8abbca..1b09993b0 100644 --- a/cmake/DefinePlatformSpecifc.cmake +++ b/cmake/DefinePlatformSpecifc.cmake @@ -49,7 +49,20 @@ else(MSVC) set(STATIC_POSTFIX "" CACHE STRING "Set static library postfix" FORCE) endif(MSVC) - +if (ENABLE_COMPILER_WARNINGS) + message(STATUS "Enabling additional compiler warning flags.") + # Additional compiler-specific warning flags + if (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + # using clang + add_compile_options(-Wall -Wextra -Wpedantic -Wno-unused-parameter) + elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + # using GCC + add_compile_options(-Wall -Wextra -Wpedantic -Wno-unused-parameter) + elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + # using Visual Studio C++ + add_compile_options(/W4) + endif() +endif() # Add a d postfix to the debug libraries if(BUILD_SHARED_LIBS) From 5c9217663e568512c3e7b8d3b38225528f161e39 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Thu, 30 Nov 2023 14:26:11 +0100 Subject: [PATCH 230/395] fix(Foundation): Format.h uses Poco::format explicitly to avoid ambiguity with std::format (C++-20). #4028 --- Foundation/include/Poco/Format.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Foundation/include/Poco/Format.h b/Foundation/include/Poco/Format.h index e76326c6e..d82b107be 100644 --- a/Foundation/include/Poco/Format.h +++ b/Foundation/include/Poco/Format.h @@ -115,14 +115,14 @@ inline void formatAny(std::string& result, const std::string& fmt, const std::ve /// Supports a variable number of arguments and is used by /// all other variants of format(). { - format(result, fmt, values); + Poco::format(result, fmt, values); } inline void formatAny(std::string& result, const char *fmt, const std::vector& values) /// Supports a variable number of arguments and is used by /// all other variants of format(). { - format(result, fmt, values); + Poco::format(result, fmt, values); } template From 94418e5bc8037d6a8b62739ff2e5876b6ab57cc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 4 Dec 2023 15:27:06 +0100 Subject: [PATCH 231/395] #4320: Integer overflow in Poco::UTF32Encoding --- Foundation/include/Poco/UTF32Encoding.h | 9 ++++++ Foundation/src/UTF32Encoding.cpp | 42 ++++++++++++------------- 2 files changed, 30 insertions(+), 21 deletions(-) diff --git a/Foundation/include/Poco/UTF32Encoding.h b/Foundation/include/Poco/UTF32Encoding.h index fc466b0d2..2c216e6e0 100644 --- a/Foundation/include/Poco/UTF32Encoding.h +++ b/Foundation/include/Poco/UTF32Encoding.h @@ -69,6 +69,15 @@ public: int queryConvert(const unsigned char* bytes, int length) const; int sequenceLength(const unsigned char* bytes, int length) const; +protected: + static int safeToInt(Poco::UInt32 value) + { + if (value <= 0x10FFFF) + return static_cast(value); + else + return -1; + } + private: bool _flipBytes; static const char* _names[]; diff --git a/Foundation/src/UTF32Encoding.cpp b/Foundation/src/UTF32Encoding.cpp index 47a0156b0..5b8606605 100644 --- a/Foundation/src/UTF32Encoding.cpp +++ b/Foundation/src/UTF32Encoding.cpp @@ -30,22 +30,22 @@ const char* UTF32Encoding::_names[] = const TextEncoding::CharacterMap UTF32Encoding::_charMap = { - /* 00 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* 10 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* 20 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* 30 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* 40 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* 50 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* 60 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* 70 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* 80 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* 90 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* a0 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* b0 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* c0 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* d0 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* e0 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, - /* f0 */ -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, + /* 00 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* 10 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* 20 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* 30 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* 40 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* 50 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* 60 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* 70 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* 80 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* 90 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* a0 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* b0 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* c0 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* d0 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* e0 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, + /* f0 */ -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, }; @@ -118,7 +118,7 @@ const TextEncoding::CharacterMap& UTF32Encoding::characterMap() const int UTF32Encoding::convert(const unsigned char* bytes) const { UInt32 uc; - unsigned char* p = (unsigned char*) &uc; + unsigned char* p = reinterpret_cast(&uc); *p++ = *bytes++; *p++ = *bytes++; *p++ = *bytes++; @@ -129,7 +129,7 @@ int UTF32Encoding::convert(const unsigned char* bytes) const uc = ByteOrder::flipBytes(uc); } - return uc; + return safeToInt(uc); } @@ -138,7 +138,7 @@ int UTF32Encoding::convert(int ch, unsigned char* bytes, int length) const if (bytes && length >= 4) { UInt32 ch1 = _flipBytes ? ByteOrder::flipBytes((UInt32) ch) : (UInt32) ch; - unsigned char* p = (unsigned char*) &ch1; + unsigned char* p = reinterpret_cast(&ch1); *bytes++ = *p++; *bytes++ = *p++; *bytes++ = *p++; @@ -155,7 +155,7 @@ int UTF32Encoding::queryConvert(const unsigned char* bytes, int length) const if (length >= 4) { UInt32 uc; - unsigned char* p = (unsigned char*) &uc; + unsigned char* p = reinterpret_cast(&uc); *p++ = *bytes++; *p++ = *bytes++; *p++ = *bytes++; @@ -164,7 +164,7 @@ int UTF32Encoding::queryConvert(const unsigned char* bytes, int length) const { uc = ByteOrder::flipBytes(uc); } - return uc; + ret = safeToInt(uc); } return ret; From 3ae282db2e4d7cfa200996b45ef28b54838c6694 Mon Sep 17 00:00:00 2001 From: Russell Greene Date: Mon, 4 Dec 2023 08:53:40 -0700 Subject: [PATCH 232/395] enh(Net): Allow passing raw fd's into ServerSocket (#4156) * Allow creating ServerSocket's from fd's * more sensible approach * fix whitespace issue * add test * build fixes for windows --- Net/include/Poco/Net/ServerSocket.h | 4 +++ Net/include/Poco/Net/Socket.h | 4 +++ Net/include/Poco/Net/SocketImpl.h | 7 +++++ Net/src/ServerSocket.cpp | 8 +++++ Net/src/Socket.cpp | 9 ++++++ Net/src/SocketImpl.cpp | 8 +++++ Net/testsuite/src/EchoServer.cpp | 12 ++++++++ Net/testsuite/src/EchoServer.h | 3 ++ Net/testsuite/src/SocketTest.cpp | 46 +++++++++++++++++++++++++++++ Net/testsuite/src/SocketTest.h | 1 + 10 files changed, 102 insertions(+) diff --git a/Net/include/Poco/Net/ServerSocket.h b/Net/include/Poco/Net/ServerSocket.h index 62dd932e5..e13d46ea0 100644 --- a/Net/include/Poco/Net/ServerSocket.h +++ b/Net/include/Poco/Net/ServerSocket.h @@ -60,6 +60,10 @@ public: /// After successful construction, the server socket /// is ready to accept connections. + static ServerSocket fromFileDescriptor(poco_socket_t fd); + // Creates a socket from an existing file descriptor. + // Ownership is taken by poco + virtual ~ServerSocket(); /// Destroys the ServerSocket. diff --git a/Net/include/Poco/Net/Socket.h b/Net/include/Poco/Net/Socket.h index be1bf606a..331657aeb 100644 --- a/Net/include/Poco/Net/Socket.h +++ b/Net/include/Poco/Net/Socket.h @@ -85,6 +85,10 @@ public: #endif // POCO_NEW_STATE_ON_MOVE + static Socket fromFileDescriptor(poco_socket_t fd); + // Creates a socket from an existing file descriptor. + // Ownership is taken by poco + virtual ~Socket(); /// Destroys the Socket and releases the /// SocketImpl. diff --git a/Net/include/Poco/Net/SocketImpl.h b/Net/include/Poco/Net/SocketImpl.h index 84fb51755..ad0f1b44f 100644 --- a/Net/include/Poco/Net/SocketImpl.h +++ b/Net/include/Poco/Net/SocketImpl.h @@ -142,6 +142,13 @@ public: /// If the library has not been built with IPv6 support, /// a Poco::NotImplementedException will be thrown. + void useFileDescriptor(poco_socket_t fd); + /// Use a external file descriptor for the socket. Required to be careful + /// about what kind of file descriptor you're passing to make sure it's compatable + /// with how you plan on using it. These specifics are platform-specific. + /// Not valid to call this if the internal socket is already initialized. + /// Poco takes ownership of the file descriptor, closing it when this socket is closed. + virtual void listen(int backlog = 64); /// Puts the socket into listening state. /// diff --git a/Net/src/ServerSocket.cpp b/Net/src/ServerSocket.cpp index b5cc4572c..52dcf4c83 100644 --- a/Net/src/ServerSocket.cpp +++ b/Net/src/ServerSocket.cpp @@ -57,6 +57,14 @@ ServerSocket::ServerSocket(SocketImpl* pImpl, bool ignore): Socket(pImpl) } +ServerSocket ServerSocket::fromFileDescriptor(poco_socket_t fd) +{ + ServerSocket s; + s.impl()->useFileDescriptor(fd); + return s; +} + + ServerSocket::~ServerSocket() { } diff --git a/Net/src/Socket.cpp b/Net/src/Socket.cpp index 75d48de48..cd62f4028 100644 --- a/Net/src/Socket.cpp +++ b/Net/src/Socket.cpp @@ -54,6 +54,15 @@ Socket::Socket(const Socket& socket): _pImpl->duplicate(); } + +Socket Socket::fromFileDescriptor(poco_socket_t fd) +{ + Socket s; + s.impl()->useFileDescriptor(fd); + return s; +} + + #if POCO_NEW_STATE_ON_MOVE Socket::Socket(Socket&& socket): diff --git a/Net/src/SocketImpl.cpp b/Net/src/SocketImpl.cpp index f35a41996..36902fa4c 100644 --- a/Net/src/SocketImpl.cpp +++ b/Net/src/SocketImpl.cpp @@ -276,6 +276,14 @@ void SocketImpl::bind6(const SocketAddress& address, bool reuseAddress, bool reu } +void SocketImpl::useFileDescriptor(poco_socket_t fd) +{ + poco_assert (_sockfd == POCO_INVALID_SOCKET); + + _sockfd = fd; +} + + void SocketImpl::listen(int backlog) { if (_sockfd == POCO_INVALID_SOCKET) throw InvalidSocketException(); diff --git a/Net/testsuite/src/EchoServer.cpp b/Net/testsuite/src/EchoServer.cpp index 48817683f..4ee68b070 100644 --- a/Net/testsuite/src/EchoServer.cpp +++ b/Net/testsuite/src/EchoServer.cpp @@ -9,6 +9,7 @@ #include "EchoServer.h" +#include "Poco/Net/ServerSocket.h" #include "Poco/Net/StreamSocket.h" #include "Poco/Net/SocketAddress.h" #include "Poco/Timespan.h" @@ -42,6 +43,17 @@ EchoServer::EchoServer(const Poco::Net::SocketAddress& address): } +EchoServer::EchoServer(const Poco::Net::ServerSocket& sock): + _socket(sock), + _thread("EchoServer"), + _stop(false), + _done(false) +{ + _thread.start(*this); + _ready.wait(); +} + + EchoServer::~EchoServer() { _stop = true; diff --git a/Net/testsuite/src/EchoServer.h b/Net/testsuite/src/EchoServer.h index 3df637450..9a149fe67 100644 --- a/Net/testsuite/src/EchoServer.h +++ b/Net/testsuite/src/EchoServer.h @@ -31,6 +31,9 @@ public: EchoServer(const Poco::Net::SocketAddress& address); /// Creates the EchoServer using the given address. + EchoServer(const Poco::Net::ServerSocket& sock); + /// Creates the EchoServer using the already created socket + ~EchoServer(); /// Destroys the EchoServer. diff --git a/Net/testsuite/src/SocketTest.cpp b/Net/testsuite/src/SocketTest.cpp index c8976a1fb..17289f7f3 100644 --- a/Net/testsuite/src/SocketTest.cpp +++ b/Net/testsuite/src/SocketTest.cpp @@ -598,6 +598,51 @@ void SocketTest::testUnixLocalAbstract() } +void SocketTest::testUseFd() +{ +#ifdef POCO_OS_FAMILY_WINDOWS + struct addrinfo addr_hint = {}; + addr_hint.ai_family = AF_INET; + addr_hint.ai_socktype = SOCK_STREAM; + addr_hint.ai_protocol = IPPROTO_TCP; + addr_hint.ai_flags = AI_PASSIVE; + struct addrinfo* addr_result; + getaddrinfo(nullptr, "0", &addr_hint, &addr_result); + poco_socket_t listenfd = socket(addr_result->ai_family, addr_result->ai_socktype, addr_result->ai_protocol); + bind(listenfd, addr_result->ai_addr, (int)addr_result->ai_addrlen); + freeaddrinfo(addr_result); + listen(listenfd, SOMAXCONN); + SOCKADDR_IN serv_addr; + int addr_len = sizeof(serv_addr); + getsockname(listenfd, (SOCKADDR*)&serv_addr, &addr_len); + auto server_port = ntohs(serv_addr.sin_port); +#elif defined(POCO_OS_FAMILY_UNIX) + poco_socket_t listenfd = socket(AF_INET, SOCK_STREAM, 0); + struct sockaddr_in serv_addr = {}; + serv_addr.sin_family = AF_INET; + serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); + serv_addr.sin_port = htons(0); + bind(listenfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)); + listen(listenfd, 1); + socklen_t len = sizeof(serv_addr); + getsockname(listenfd, (struct sockaddr*)&serv_addr, &len); + auto server_port = ntohs(serv_addr.sin_port); +#else + std::cout << "[USE FD TEST DISABLED]"; + return; +#endif + EchoServer server(ServerSocket::fromFileDescriptor(listenfd)); + StreamSocket ss; + ss.connect(SocketAddress("127.0.0.1", server_port)); + int n = ss.sendBytes("hello", 5); + assertTrue (n == 5); + char buffer[256]; + n = ss.receiveBytes(buffer, sizeof(buffer)); + assertTrue (n == 5); + assertTrue (std::string(buffer, n) == "hello"); + ss.close(); +} + void SocketTest::onReadable(bool& b) { @@ -650,6 +695,7 @@ CppUnit::Test* SocketTest::suite() CppUnit_addTest(pSuite, SocketTest, testSelect3); CppUnit_addTest(pSuite, SocketTest, testEchoUnixLocal); CppUnit_addTest(pSuite, SocketTest, testUnixLocalAbstract); + CppUnit_addTest(pSuite, SocketTest, testUseFd); return pSuite; } diff --git a/Net/testsuite/src/SocketTest.h b/Net/testsuite/src/SocketTest.h index e3b69e0f6..badaea913 100644 --- a/Net/testsuite/src/SocketTest.h +++ b/Net/testsuite/src/SocketTest.h @@ -43,6 +43,7 @@ public: void testSelect3(); void testEchoUnixLocal(); void testUnixLocalAbstract(); + void testUseFd(); void setUp(); void tearDown(); From 0e4eb00ea52a01ca12621086882d1e4c6c13242e Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Mon, 4 Dec 2023 16:56:12 +0100 Subject: [PATCH 233/395] enh(Net): fix a typo --- Net/include/Poco/Net/SocketImpl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Net/include/Poco/Net/SocketImpl.h b/Net/include/Poco/Net/SocketImpl.h index ad0f1b44f..e49579097 100644 --- a/Net/include/Poco/Net/SocketImpl.h +++ b/Net/include/Poco/Net/SocketImpl.h @@ -144,7 +144,7 @@ public: void useFileDescriptor(poco_socket_t fd); /// Use a external file descriptor for the socket. Required to be careful - /// about what kind of file descriptor you're passing to make sure it's compatable + /// about what kind of file descriptor you're passing to make sure it's compatible /// with how you plan on using it. These specifics are platform-specific. /// Not valid to call this if the internal socket is already initialized. /// Poco takes ownership of the file descriptor, closing it when this socket is closed. From 607b0863ce2210adbfb3bc961faddb8795504127 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Tue, 5 Dec 2023 07:55:07 +0100 Subject: [PATCH 234/395] enh(Foundation): Path of the current process Path::self() (#2282) * Merge remote-tracking branch 'jackywoo/add_self_to_path' into 2282-path-self * fix(Foundation): minor code cleanup. #2282 * enh(Foundation): Windows unit test for Path::self and exception for non-implemented platform. * fix(Foundation): Path::self() throws SystemException when the path can't be acquired. #2282 Co-developed-by: Jackie Woo Co-developed-by: Matej Kenda --- Foundation/include/Poco/Path.h | 4 ++ Foundation/include/Poco/Path_UNIX.h | 2 + Foundation/include/Poco/Path_WIN32U.h | 1 + Foundation/include/Poco/Path_WINCE.h | 1 + Foundation/src/Path.cpp | 6 +++ Foundation/src/Path_UNIX.cpp | 63 +++++++++++++++++++++++++-- Foundation/src/Path_WIN32U.cpp | 15 ++++++- Foundation/src/Path_WINCE.cpp | 4 ++ Foundation/testsuite/src/PathTest.cpp | 25 +++++++++++ Foundation/testsuite/src/PathTest.h | 1 + 10 files changed, 117 insertions(+), 5 deletions(-) diff --git a/Foundation/include/Poco/Path.h b/Foundation/include/Poco/Path.h index 0f0a889d0..cf6b76abd 100644 --- a/Foundation/include/Poco/Path.h +++ b/Foundation/include/Poco/Path.h @@ -290,6 +290,10 @@ public: /// this is the semicolon ';'. On OpenVMS systems, this is the /// comma ','. + static std::string self(); + /// Return path to the executable file, empty string if failed. + /// The path is absolute one. + static std::string current(); /// Returns the current working directory. diff --git a/Foundation/include/Poco/Path_UNIX.h b/Foundation/include/Poco/Path_UNIX.h index 50a6478b9..8e27bd962 100644 --- a/Foundation/include/Poco/Path_UNIX.h +++ b/Foundation/include/Poco/Path_UNIX.h @@ -28,6 +28,7 @@ namespace Poco { class PathImpl { public: + static std::string selfImpl(); static std::string currentImpl(); static std::string homeImpl(); static std::string configHomeImpl(); @@ -39,6 +40,7 @@ public: static std::string nullImpl(); static std::string expandImpl(const std::string& path); static void listRootsImpl(std::vector& roots); + }; diff --git a/Foundation/include/Poco/Path_WIN32U.h b/Foundation/include/Poco/Path_WIN32U.h index fb9d451cc..c72d78ef5 100644 --- a/Foundation/include/Poco/Path_WIN32U.h +++ b/Foundation/include/Poco/Path_WIN32U.h @@ -28,6 +28,7 @@ namespace Poco { class Foundation_API PathImpl { public: + static std::string selfImpl(); static std::string currentImpl(); static std::string homeImpl(); static std::string configHomeImpl(); diff --git a/Foundation/include/Poco/Path_WINCE.h b/Foundation/include/Poco/Path_WINCE.h index 37e3fff58..32677150d 100644 --- a/Foundation/include/Poco/Path_WINCE.h +++ b/Foundation/include/Poco/Path_WINCE.h @@ -28,6 +28,7 @@ namespace Poco { class Foundation_API PathImpl { public: + static std::string selfImpl(); static std::string currentImpl(); static std::string homeImpl(); static std::string configHomeImpl(); diff --git a/Foundation/src/Path.cpp b/Foundation/src/Path.cpp index 38d354eb4..23e83aeb8 100644 --- a/Foundation/src/Path.cpp +++ b/Foundation/src/Path.cpp @@ -578,6 +578,12 @@ Path& Path::clear() } +std::string Path::self() +{ + return PathImpl::selfImpl(); +} + + std::string Path::current() { return PathImpl::currentImpl(); diff --git a/Foundation/src/Path_UNIX.cpp b/Foundation/src/Path_UNIX.cpp index 697e0f641..1856728e5 100644 --- a/Foundation/src/Path_UNIX.cpp +++ b/Foundation/src/Path_UNIX.cpp @@ -19,19 +19,74 @@ #include #include #include +#include + #if !defined(POCO_VXWORKS) #include #endif -#include - -#ifndef PATH_MAX -#define PATH_MAX 1024 // fallback +#if POCO_OS == POCO_OS_MAC_OS_X +#include +#elif POCO_OS == POCO_OS_FREE_BSD +#include +#elif POCO_OS == POCO_OS_LINUX +#include #endif +#ifndef PATH_MAX +#define PATH_MAX 4096 // fallback +#endif + namespace Poco { +std::string PathImpl::selfImpl() +{ + std::string path; + char buf[PATH_MAX + 1] {0}; + +#if POCO_OS == POCO_OS_MAC_OS_X + std::uint32_t size = sizeof(buf); + if (_NSGetExecutablePath(buf, &size) == 0) + path = buf; + else + throw Poco::SystemException("Cannot get path of the current process."); +#elif POCO_OS == POCO_OS_FREE_BSD + int mib[4]; + mib[0] = CTL_KERN; + mib[1] = KERN_PROC; + mib[2] = KERN_PROC_PATHNAME; + mib[3] = -1; + std::size_t size = sizeof(buf); + if (sysctl(mib, 4, buf, &size, NULL, 0) == 0) + path = buf; + else + throw Poco::SystemException("Cannot get path of the current process."); +#elif POCO_OS == POCO_OS_NET_BSD + std::size_t size = sizeof(buf); + int n = readlink("/proc/curproc/exe", buf, size); + if (n > 0 && n < PATH_MAX) + path = buf; +#elif POCO_OS == POCO_OS_SOLARIS + char * execName = getexecname(); + if (execName) + path = execName; + else + throw Poco::SystemException("Cannot get path of the current process."); +#elif POCO_OS == POCO_OS_LINUX || POCO_OS == POCO_OS_ANDROID + const std::size_t size = sizeof(buf); + int n = readlink("/proc/self/exe", buf, size); + if (n > 0 && n < PATH_MAX) + path = buf; + else + throw Poco::SystemException("Cannot get path of the current process."); +#else + throw Poco::NotImplementedException("File path of the current process not implemented on this platform."); +#endif + + return path; +} + std::string PathImpl::currentImpl() { diff --git a/Foundation/src/Path_WIN32U.cpp b/Foundation/src/Path_WIN32U.cpp index db8e6cd25..164386465 100644 --- a/Foundation/src/Path_WIN32U.cpp +++ b/Foundation/src/Path_WIN32U.cpp @@ -19,9 +19,22 @@ #include "Poco/Exception.h" #include "Poco/UnWindows.h" - namespace Poco { +std::string PathImpl::selfImpl() +{ + std::string path; + Buffer buf(MAX_PATH_LEN); + DWORD n = GetModuleFileNameW(NULL, buf.begin(), MAX_PATH_LEN); + + if (n > 0 && n < MAX_PATH_LEN) + { + UnicodeConverter::toUTF8(buf.begin(), path); + return path; + } + + throw SystemException("Cannot get path of the current process."); +} std::string PathImpl::currentImpl() { diff --git a/Foundation/src/Path_WINCE.cpp b/Foundation/src/Path_WINCE.cpp index 05d9c868c..7f2ba0739 100644 --- a/Foundation/src/Path_WINCE.cpp +++ b/Foundation/src/Path_WINCE.cpp @@ -23,6 +23,10 @@ namespace Poco { +std::string PathImpl::selfImpl() +{ + return(""); +} std::string PathImpl::currentImpl() { diff --git a/Foundation/testsuite/src/PathTest.cpp b/Foundation/testsuite/src/PathTest.cpp index c68e5bd69..fc0af6844 100644 --- a/Foundation/testsuite/src/PathTest.cpp +++ b/Foundation/testsuite/src/PathTest.cpp @@ -1619,6 +1619,30 @@ void PathTest::testWindowsSystem() #endif } +void PathTest::testSelf() +{ + std::string self = Path::self(); + std::cout << self << std::endl; + +#if POCO_OS == POCO_OS_MAC_OS_X \ + || POCO_OS == POCO_OS_FREE_BSD \ + || POCO_OS == POCO_OS_NET_BSD \ + || POCO_OS == POCO_OS_SOLARIS \ + || POCO_OS == POCO_OS_LINUX \ + || POCO_OS == POCO_OS_ANDROID \ + || POCO_OS == POCO_OS_WINDOWS_NT + + assertTrue(!self.empty()); + Path p(self); + + assertTrue(p.isAbsolute()); + assertTrue(p.isFile()); + assertTrue(self.find("testrunner") != std::string::npos); +#else + std::cout << "Path::self() not implemented for this platform." +#endif +} + void PathTest::setUp() { @@ -1662,6 +1686,7 @@ CppUnit::Test* PathTest::suite() CppUnit_addTest(pSuite, PathTest, testResolve); CppUnit_addTest(pSuite, PathTest, testPushPop); CppUnit_addTest(pSuite, PathTest, testWindowsSystem); + CppUnit_addTest(pSuite, PathTest, testSelf); return pSuite; } diff --git a/Foundation/testsuite/src/PathTest.h b/Foundation/testsuite/src/PathTest.h index 85264825d..f05f224b4 100644 --- a/Foundation/testsuite/src/PathTest.h +++ b/Foundation/testsuite/src/PathTest.h @@ -52,6 +52,7 @@ public: void testResolve(); void testPushPop(); void testWindowsSystem(); + void testSelf(); void setUp(); void tearDown(); From e868ecb2472511cfe25e0f71d5839cb766cb45c3 Mon Sep 17 00:00:00 2001 From: Alessandro Zini Date: Tue, 5 Dec 2023 19:23:03 +0100 Subject: [PATCH 235/395] cppignore: add testEchoIPv4Move (#4322) --- cppignore.lnx | 1 + cppignore.win | 1 + 2 files changed, 2 insertions(+) diff --git a/cppignore.lnx b/cppignore.lnx index 49a0a71f4..b3288d474 100644 --- a/cppignore.lnx +++ b/cppignore.lnx @@ -17,6 +17,7 @@ CppUnit::TestCaller.testTimer CppUnit::TestCaller.testSocketAddress CppUnit::TestCaller.testEchoIPv4 CppUnit::TestCaller.testSendToReceiveFromIPv4 +CppUnit::TestCaller.testEchoIPv4Move CppUnit::TestCaller.testPing CppUnit::TestCaller.testBigPing CppUnit::TestCaller.testSendToReceiveFrom diff --git a/cppignore.win b/cppignore.win index b038cee01..c762b60ac 100644 --- a/cppignore.win +++ b/cppignore.win @@ -2,6 +2,7 @@ class CppUnit::TestCaller.testTimeSync class CppUnit::TestCaller.testGlob class CppUnit::TestCaller.testEchoIPv4 class CppUnit::TestCaller.testSendToReceiveFromIPv4 +class CppUnit::TestCaller.testEchoIPv4Move class CppUnit::TestCaller.testPing class CppUnit::TestCaller.testBigPing class CppUnit::TestCaller.testProxy From 35e1490b266dcb67a4b7b2d5c594a4f431c76e06 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Thu, 7 Dec 2023 01:48:14 +0100 Subject: [PATCH 236/395] fix(platform): Fixes to compile with emscripten 3.1.5 (fixes #2707) (#4318) * fix(platform): Fixes to compile with emscripten 3.1.5 on Ubuntu 22.04 #2707 * enh(Platform): add test check with emscripten on Linux --- .github/workflows/ci.yml | 18 ++++++++++++++++++ Foundation/include/Poco/Platform.h | 7 +++++-- Foundation/src/Thread_POSIX.cpp | 4 +++- MongoDB/include/Poco/MongoDB/MessageHeader.h | 2 +- Net/src/NetworkInterface.cpp | 8 ++++---- 5 files changed, 31 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f8c86e1c5..30a4e54f4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -123,6 +123,24 @@ jobs: PWD=`pwd` ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)" + linux-emscripten-cmake: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - run: sudo apt -y update && sudo apt -y install cmake ninja-build emscripten + - run: emcmake cmake -H. -B cmake-build -DENABLE_ACTIVERECORD_COMPILER=OFF -DENABLE_PAGECOMPILER=OFF -DENABLE_PAGECOMPILER_FILE2PAGE=off && emmake cmake --build cmake-build --target all -j4 +# TODO: How to run unit tests in emscripten? +# - uses: ./.github/actions/retry-action +# with: +# timeout_minutes: 90 +# max_attempts: 3 +# retry_on: any +# command: >- +# cd cmake-build && +# sudo -s +# PWD=`pwd` +# ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)" + linux-gcc-make-cross-armhf: runs-on: ubuntu-22.04 steps: diff --git a/Foundation/include/Poco/Platform.h b/Foundation/include/Poco/Platform.h index 71177472a..97ffacd2b 100644 --- a/Foundation/include/Poco/Platform.h +++ b/Foundation/include/Poco/Platform.h @@ -61,13 +61,16 @@ #elif defined(__NACL__) #define POCO_OS_FAMILY_UNIX 1 #define POCO_OS POCO_OS_NACL -#elif defined(linux) || defined(__linux) || defined(__linux__) || defined(__TOS_LINUX__) || defined(EMSCRIPTEN) +#elif defined(linux) || defined(__linux) || defined(__linux__) || defined(__TOS_LINUX__) || defined(__EMSCRIPTEN__) #define POCO_OS_FAMILY_UNIX 1 #if defined(__ANDROID__) #define POCO_OS POCO_OS_ANDROID #else #define POCO_OS POCO_OS_LINUX #endif + #if defined(__EMSCRIPTEN__) + #define POCO_EMSCRIPTEN + #endif #elif defined(__APPLE__) || defined(__TOS_MACOS__) #define POCO_OS_FAMILY_UNIX 1 #define POCO_OS_FAMILY_BSD 1 @@ -142,7 +145,7 @@ #if defined(__ALPHA) || defined(__alpha) || defined(__alpha__) || defined(_M_ALPHA) #define POCO_ARCH POCO_ARCH_ALPHA #define POCO_ARCH_LITTLE_ENDIAN 1 -#elif defined(i386) || defined(__i386) || defined(__i386__) || defined(_M_IX86) || defined(EMSCRIPTEN) +#elif defined(i386) || defined(__i386) || defined(__i386__) || defined(_M_IX86) || defined(POCO_EMSCRIPTEN) #define POCO_ARCH POCO_ARCH_IA32 #define POCO_ARCH_LITTLE_ENDIAN 1 #elif defined(_IA64) || defined(__IA64__) || defined(__ia64__) || defined(__ia64) || defined(_M_IA64) diff --git a/Foundation/src/Thread_POSIX.cpp b/Foundation/src/Thread_POSIX.cpp index 5e1c58442..ecbca6050 100644 --- a/Foundation/src/Thread_POSIX.cpp +++ b/Foundation/src/Thread_POSIX.cpp @@ -364,7 +364,9 @@ ThreadImpl::TIDImpl ThreadImpl::currentTidImpl() long ThreadImpl::currentOsTidImpl() { -#if POCO_OS == POCO_OS_LINUX +#if defined(POCO_EMSCRIPTEN) + return ::pthread_self(); +#elif POCO_OS == POCO_OS_LINUX return ::syscall(SYS_gettid); #elif POCO_OS == POCO_OS_MAC_OS_X return ::pthread_mach_thread_np(::pthread_self()); diff --git a/MongoDB/include/Poco/MongoDB/MessageHeader.h b/MongoDB/include/Poco/MongoDB/MessageHeader.h index a8ef0b654..3524954ab 100644 --- a/MongoDB/include/Poco/MongoDB/MessageHeader.h +++ b/MongoDB/include/Poco/MongoDB/MessageHeader.h @@ -34,7 +34,7 @@ class MongoDB_API MessageHeader /// MongoDB request or response message. { public: - static const unsigned int MSG_HEADER_SIZE = 16; + static constexpr Int32 MSG_HEADER_SIZE = 16; enum OpCode { diff --git a/Net/src/NetworkInterface.cpp b/Net/src/NetworkInterface.cpp index 460250da9..f73d8f684 100644 --- a/Net/src/NetworkInterface.cpp +++ b/Net/src/NetworkInterface.cpp @@ -1512,7 +1512,7 @@ NetworkInterface::Map NetworkInterface::map(bool ipOnly, bool upOnly) #include #endif #include -#ifndef POCO_NO_LINUX_IF_PACKET_H +#if !defined(POCO_NO_LINUX_IF_PACKET_H) && !defined(POCO_EMSCRIPTEN) #include #endif #include @@ -1543,7 +1543,7 @@ static NetworkInterface::Type fromNative(unsigned arphrd) } } -#if POCO_OS != POCO_OS_ANDROID +#if (POCO_OS != POCO_OS_ANDROID) && !defined(POCO_EMSCRIPTEN) void setInterfaceParams(struct ifaddrs* iface, NetworkInterfaceImpl& impl) { @@ -1552,7 +1552,7 @@ void setInterfaceParams(struct ifaddrs* iface, NetworkInterfaceImpl& impl) impl.setAdapterName(iface->ifa_name); impl.setPhyParams(); -#ifndef POCO_NO_LINUX_IF_PACKET_H +#if !defined(POCO_NO_LINUX_IF_PACKET_H) if (iface->ifa_addr->sa_family == AF_PACKET) { struct sockaddr_ll* sdl = (struct sockaddr_ll*) iface->ifa_addr; @@ -1602,7 +1602,7 @@ void setInterfaceParams(struct ifaddrs* iface, NetworkInterfaceImpl& impl) NetworkInterface::Map NetworkInterface::map(bool ipOnly, bool upOnly) { -#if POCO_OS != POCO_OS_ANDROID +#if (POCO_OS != POCO_OS_ANDROID) && !defined(POCO_EMSCRIPTEN) FastMutex::ScopedLock lock(_mutex); Map result; unsigned ifIndex = 0; From 1e90f64bbf2ad121a158f0b206370fdfbb27e2cf Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Sat, 9 Dec 2023 21:16:24 +0100 Subject: [PATCH 237/395] 4307/8/9/10 data races (#4312) * fix(NumericString): properly mark uIntToString deprecated #4304 * dev(runLibtests): allow to specify test to run * fix(NotificationCenter): data race #4307 * fix(DirectoryWatcher): data race #4308 * fix(ArchiveStrategy): data race #4309 * fix(ActiveThread): data race #4310 * fix(Task): Cancelled Task shouldn't start running #4311 (WIP) * fix(String): ignore clang loop unrolling warnings * fix(TaskManager): task ownership #4311 * chore(FIFOEventTest): fix unused var warning; disable benchmark in test * fix(Task): remove unnecessary mutex (and prevent cyclic locking reported by TSAN) * fix(CryptoTest): disable testEncryptDecryptGCM * fix(ci): typo * fix(NotificationCenter): disable and clear observers in dtor (#4307) --------- Co-authored-by: Matej Kenda --- .github/workflows/ci.yml | 6 +- Crypto/testsuite/Makefile | 10 ++- Foundation/include/Poco/ArchiveStrategy.h | 7 +- Foundation/include/Poco/NumericString.h | 7 +- Foundation/include/Poco/String.h | 8 ++ Foundation/include/Poco/Task.h | 33 ++++++--- Foundation/include/Poco/TaskManager.h | 11 ++- Foundation/src/ActiveThreadPool.cpp | 56 +++++++------- Foundation/src/ArchiveStrategy.cpp | 2 +- Foundation/src/DirectoryWatcher.cpp | 5 +- Foundation/src/NotificationCenter.cpp | 12 +++ Foundation/src/Task.cpp | 51 ++++++------- Foundation/src/TaskManager.cpp | 40 ++++++---- Foundation/testsuite/src/FIFOEventTest.cpp | 22 ++++-- Foundation/testsuite/src/TaskManagerTest.cpp | 77 ++++++++++++++++++-- Foundation/testsuite/src/TaskManagerTest.h | 1 + Foundation/testsuite/src/TaskTest.cpp | 40 +++++++++- Foundation/testsuite/src/TaskTest.h | 1 + runLibTests.sh | 25 +++++-- 19 files changed, 303 insertions(+), 111 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 30a4e54f4..a4e92314d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,6 +2,9 @@ # To retry only on timeout set retry_on: timeout # To retry only on error set retry_on: error # For more information on the retry action see https://github.com/nick-fields/retry + +name: Compile and Testrun + on: pull_request: types: [opened] @@ -231,7 +234,8 @@ jobs: CppUnit::TestCaller.testAccessExpireN, CppUnit::TestCaller.testExpireN, CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testPollClosedServer" + CppUnit::TestCaller.testPollClosedServer, + CppUnit::TestCaller.testEncryptDecryptGCM" PWD=`pwd` ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" diff --git a/Crypto/testsuite/Makefile b/Crypto/testsuite/Makefile index 8ec1c2707..c45f61c47 100644 --- a/Crypto/testsuite/Makefile +++ b/Crypto/testsuite/Makefile @@ -16,10 +16,14 @@ else ifeq ($(findstring AIX, $(POCO_CONFIG)), AIX) SYSLIBS += -lssl_a -lcrypto_a -lz -ldl else +ifeq ($(POCO_CONFIG),Darwin) +SYSLIBS += -lssl -lcrypto -lz +else SYSLIBS += -lssl -lcrypto -lz -ldl -endif -endif -endif +endif # Darwin +endif # AIX +endif # QNX +endif # FreeBSD objects = CryptoTestSuite Driver \ CryptoTest DigestEngineTest ECTest \ diff --git a/Foundation/include/Poco/ArchiveStrategy.h b/Foundation/include/Poco/ArchiveStrategy.h index db69354c6..f78127986 100644 --- a/Foundation/include/Poco/ArchiveStrategy.h +++ b/Foundation/include/Poco/ArchiveStrategy.h @@ -23,6 +23,7 @@ #include "Poco/File.h" #include "Poco/DateTimeFormatter.h" #include "Poco/NumberFormatter.h" +#include namespace Poco { @@ -44,7 +45,7 @@ public: virtual LogFile* open(LogFile* pFile) = 0; /// Open a new log file and return it. - + virtual LogFile* archive(LogFile* pFile) = 0; /// Renames the given log file for archiving /// and creates and returns a new log file. @@ -61,8 +62,8 @@ private: ArchiveStrategy(const ArchiveStrategy&); ArchiveStrategy& operator = (const ArchiveStrategy&); - bool _compress; - ArchiveCompressor* _pCompressor; + std::atomic _compress; + std::atomic _pCompressor; }; diff --git a/Foundation/include/Poco/NumericString.h b/Foundation/include/Poco/NumericString.h index 140619e77..aefa17b9c 100644 --- a/Foundation/include/Poco/NumericString.h +++ b/Foundation/include/Poco/NumericString.h @@ -387,7 +387,8 @@ bool intToStr(T value, char fill = ' ', char thSep = 0, bool lowercase = false) - /// Converts integer to string. Standard numeric bases from binary to hexadecimal are supported. + /// Converts signed integer to string. Standard numeric bases from binary to hexadecimal + /// are supported. /// If width is non-zero, it pads the return value with fill character to the specified width. /// When padding is zero character ('0'), it is prepended to the number itself; all other /// paddings are prepended to the formatted result with minus sign or base prefix included @@ -534,8 +535,8 @@ bool intToStr(T value, } -//@ deprecated template +[[deprecated("use intToStr instead")]] bool uIntToStr(T value, unsigned short base, char* result, @@ -579,8 +580,8 @@ bool intToStr (T number, } -//@ deprecated template +[[deprecated("use intToStr instead")]] bool uIntToStr (T number, unsigned short base, std::string& result, diff --git a/Foundation/include/Poco/String.h b/Foundation/include/Poco/String.h index e4157da15..32574ae9d 100644 --- a/Foundation/include/Poco/String.h +++ b/Foundation/include/Poco/String.h @@ -23,6 +23,11 @@ #include #include +// ignore loop unrolling warnings in this file +#if defined(__clang__) && ((__clang_major__ > 3) || (__clang_major__ == 3 && __clang_minor__ >= 6)) +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wpass-failed" +#endif namespace Poco { @@ -760,5 +765,8 @@ struct CILess } // namespace Poco +#if defined(__clang__) && ((__clang_major__ > 3) || (__clang_major__ == 3 && __clang_minor__ >= 6)) +# pragma clang diagnostic pop +#endif #endif // Foundation_String_INCLUDED diff --git a/Foundation/include/Poco/Task.h b/Foundation/include/Poco/Task.h index 904dc97ef..b2c4441a3 100644 --- a/Foundation/include/Poco/Task.h +++ b/Foundation/include/Poco/Task.h @@ -77,6 +77,8 @@ public: /// A Task's runTask() method should periodically /// call this method and stop whatever it is doing in an /// orderly way when this method returns true. + /// If task is cancelled before it had a chance to run, + /// runTask() will never be called. TaskState state() const; /// Returns the task's current state. @@ -90,9 +92,14 @@ public: /// be overridden by subclasses. void run(); - /// Calls the task's runTask() method and notifies the owner - /// of the task's start and completion. + /// If task has not been cancelled prior to this call, it + /// calls the task's runTask() method and notifies the owner of + /// the task's start and completion. + /// If task has been cancelled prior to this call, it only sets + /// the state to TASK_FINISHED and notifies the owner. + bool hasOwner() const; + /// Returns true iff the task has an owner. protected: bool sleep(long milliseconds); /// Suspends the current thread for the specified @@ -134,7 +141,7 @@ protected: TaskManager* getOwner() const; /// Returns the owner of the task, which may be NULL. - void setState(TaskState state); + TaskState setState(TaskState state); /// Sets the task's state. virtual ~Task(); @@ -145,12 +152,12 @@ private: Task(const Task&); Task& operator = (const Task&); - std::string _name; - TaskManager* _pOwner; - std::atomic _progress; - std::atomic _state; - Event _cancelEvent; - mutable FastMutex _mutex; + std::string _name; + std::atomic _pOwner; + std::atomic _progress; + std::atomic _state; + Event _cancelEvent; + mutable FastMutex _mutex; friend class TaskManager; }; @@ -185,12 +192,16 @@ inline Task::TaskState Task::state() const inline TaskManager* Task::getOwner() const { - FastMutex::ScopedLock lock(_mutex); - return _pOwner; } +inline bool Task::hasOwner() const +{ + return _pOwner != nullptr; +} + + } // namespace Poco diff --git a/Foundation/include/Poco/TaskManager.h b/Foundation/include/Poco/TaskManager.h index e8f2836f2..6ca0c2f9f 100644 --- a/Foundation/include/Poco/TaskManager.h +++ b/Foundation/include/Poco/TaskManager.h @@ -65,9 +65,16 @@ public: ~TaskManager(); /// Destroys the TaskManager. - void start(Task* pTask); + bool start(Task* pTask); /// Starts the given task in a thread obtained - /// from the thread pool. + /// from the thread pool; returns true if successful. + /// + /// If this method returns false, the task was cancelled + /// before it could be started, or it was already running; + /// in any case, a false return means refusal of ownership + /// and indicates that the task pointer may not be valid + /// anymore (it will only be valid if it was duplicated + /// prior to this call). /// /// The TaskManager takes ownership of the Task object /// and deletes it when it is finished. diff --git a/Foundation/src/ActiveThreadPool.cpp b/Foundation/src/ActiveThreadPool.cpp index b7a9170fd..ed52f6330 100644 --- a/Foundation/src/ActiveThreadPool.cpp +++ b/Foundation/src/ActiveThreadPool.cpp @@ -28,11 +28,14 @@ namespace Poco { class NewActionNotification: public Notification { public: - NewActionNotification(Thread::Priority priority, Runnable &runnable, std::string name) : - _priority(priority), - _runnable(runnable), - _name(std::move(name)) - { } + using Ptr = AutoPtr; + + NewActionNotification(Thread::Priority priority, Runnable& runnable, const std::string& name) : + _priority(priority), + _runnable(runnable), + _name(name) + { + } ~NewActionNotification() override = default; @@ -41,16 +44,16 @@ public: return _runnable; } - Thread::Priority priotity() const + Thread::Priority priority() const { return _priority; } - + const std::string &threadName() const { return _name; } - + std::string threadFullName() const { std::string fullName(_name); @@ -68,8 +71,8 @@ public: } private: - Thread::Priority _priority; - Runnable &_runnable; + std::atomic _priority; + Runnable& _runnable; std::string _name; }; @@ -87,13 +90,13 @@ public: void run() override; private: - NotificationQueue _pTargetQueue; - std::string _name; - Thread _thread; - Event _targetCompleted; - FastMutex _mutex; - const long JOIN_TIMEOUT = 10000; - std::atomic _needToStop{false}; + NotificationQueue _pTargetQueue; + std::string _name; + Thread _thread; + Event _targetCompleted; + FastMutex _mutex; + const long JOIN_TIMEOUT = 10000; + std::atomic _needToStop{false}; }; @@ -157,16 +160,18 @@ void ActiveThread::release() void ActiveThread::run() { - do { - auto *_pTarget = dynamic_cast(_pTargetQueue.waitDequeueNotification()); - while (_pTarget) + do + { + AutoPtr pN = _pTargetQueue.waitDequeueNotification(); + while (pN) { - Runnable* pTarget = &_pTarget->runnable(); - _thread.setPriority(_pTarget->priotity()); - _thread.setName(_pTarget->name()); + NewActionNotification::Ptr pNAN = pN.cast(); + Runnable& target = pNAN->runnable(); + _thread.setPriority(pNAN->priority()); + _thread.setName(pNAN->name()); try { - pTarget->run(); + target.run(); } catch (Exception& exc) { @@ -180,11 +185,10 @@ void ActiveThread::run() { ErrorHandler::handle(); } - _pTarget->release(); _thread.setName(_name); _thread.setPriority(Thread::PRIO_NORMAL); ThreadLocalStorage::clear(); - _pTarget = dynamic_cast(_pTargetQueue.waitDequeueNotification(1000)); + pN = _pTargetQueue.waitDequeueNotification(1000); } _targetCompleted.set(); } diff --git a/Foundation/src/ArchiveStrategy.cpp b/Foundation/src/ArchiveStrategy.cpp index c8dff0000..bab2bfa0a 100644 --- a/Foundation/src/ArchiveStrategy.cpp +++ b/Foundation/src/ArchiveStrategy.cpp @@ -123,7 +123,7 @@ void ArchiveStrategy::moveFile(const std::string& oldPath, const std::string& ne { f.renameTo(newPath); if (!_pCompressor) _pCompressor = new ArchiveCompressor; - _pCompressor->compress(newPath); + _pCompressor.load()->compress(newPath); } } diff --git a/Foundation/src/DirectoryWatcher.cpp b/Foundation/src/DirectoryWatcher.cpp index 6e72d2f4d..6b2c373f2 100644 --- a/Foundation/src/DirectoryWatcher.cpp +++ b/Foundation/src/DirectoryWatcher.cpp @@ -40,6 +40,7 @@ #endif #include #include +#include namespace Poco { @@ -244,7 +245,7 @@ public: } private: - HANDLE _hStopped; + std::atomic _hStopped; }; @@ -455,7 +456,7 @@ public: private: int _queueFD; int _dirFD; - bool _stopped; + std::atomic _stopped; }; diff --git a/Foundation/src/NotificationCenter.cpp b/Foundation/src/NotificationCenter.cpp index 9da92f349..eb7e76cb2 100644 --- a/Foundation/src/NotificationCenter.cpp +++ b/Foundation/src/NotificationCenter.cpp @@ -29,6 +29,18 @@ NotificationCenter::NotificationCenter() NotificationCenter::~NotificationCenter() { + try + { + Mutex::ScopedLock lock(_mutex); + for (auto& o: _observers) + o->disable(); + + _observers.clear(); + } + catch(...) + { + poco_unexpected(); + } } diff --git a/Foundation/src/Task.cpp b/Foundation/src/Task.cpp index a84c0c273..3a06c9e4b 100644 --- a/Foundation/src/Task.cpp +++ b/Foundation/src/Task.cpp @@ -41,7 +41,7 @@ void Task::cancel() _state = TASK_CANCELLING; _cancelEvent.set(); if (_pOwner) - _pOwner->taskCancelled(this); + _pOwner.load()->taskCancelled(this); } @@ -56,27 +56,29 @@ void Task::reset() void Task::run() { TaskManager* pOwner = getOwner(); - if (pOwner) - pOwner->taskStarted(this); - try - { - _state = TASK_RUNNING; - runTask(); - } - catch (Exception& exc) + if (_state.exchange(TASK_RUNNING) < TASK_RUNNING) { if (pOwner) - pOwner->taskFailed(this, exc); - } - catch (std::exception& exc) - { - if (pOwner) - pOwner->taskFailed(this, SystemException("Task::run()", exc.what())); - } - catch (...) - { - if (pOwner) - pOwner->taskFailed(this, SystemException("Task::run(): unknown exception")); + pOwner->taskStarted(this); + try + { + runTask(); + } + catch (Exception& exc) + { + if (pOwner) + pOwner->taskFailed(this, exc); + } + catch (std::exception& exc) + { + if (pOwner) + pOwner->taskFailed(this, SystemException("Task::run()", exc.what())); + } + catch (...) + { + if (pOwner) + pOwner->taskFailed(this, SystemException("Task::run(): unknown exception")); + } } _state = TASK_FINISHED; if (pOwner) pOwner->taskFinished(this); @@ -102,21 +104,20 @@ void Task::setProgress(float progress) { FastMutex::ScopedLock lock(_mutex); if (_pOwner) - _pOwner->taskProgress(this, _progress); + _pOwner.load()->taskProgress(this, _progress); } } void Task::setOwner(TaskManager* pOwner) { - FastMutex::ScopedLock lock(_mutex); _pOwner = pOwner; } -void Task::setState(TaskState state) +Task::TaskState Task::setState(TaskState state) { - _state = state; + return _state.exchange(state); } @@ -127,7 +128,7 @@ void Task::postNotification(Notification* pNf) FastMutex::ScopedLock lock(_mutex); if (_pOwner) - _pOwner->postNotification(pNf); + _pOwner.load()->postNotification(pNf); else if (pNf) pNf->release(); } diff --git a/Foundation/src/TaskManager.cpp b/Foundation/src/TaskManager.cpp index cddf027b6..3daee633f 100644 --- a/Foundation/src/TaskManager.cpp +++ b/Foundation/src/TaskManager.cpp @@ -48,30 +48,39 @@ TaskManager::TaskManager(ThreadPool& pool): TaskManager::~TaskManager() { + for (auto& pTask: _taskList) + pTask->setOwner(nullptr); + if (_ownPool) delete &_threadPool; } -void TaskManager::start(Task* pTask) +bool TaskManager::start(Task* pTask) { TaskPtr pAutoTask(pTask); // take ownership immediately - pAutoTask->setOwner(this); - pAutoTask->setState(Task::TASK_STARTING); + if (pTask->getOwner()) + throw IllegalStateException("Task already owned by another TaskManager"); - ScopedLockT lock(_mutex); - _taskList.push_back(pAutoTask); - try + if (pTask->state() == Task::TASK_IDLE) { - _threadPool.start(*pAutoTask, pAutoTask->name()); - } - catch (...) - { - // Make sure that we don't act like we own the task since - // we never started it. If we leave the task on our task - // list, the size of the list is incorrect. - _taskList.pop_back(); - throw; + pTask->setOwner(this); + pTask->setState(Task::TASK_STARTING); + try + { + _threadPool.start(*pTask, pTask->name()); + ScopedLockT lock(_mutex); + _taskList.push_back(pAutoTask); + return true; + } + catch (...) + { + pTask->setOwner(nullptr); + throw; + } } + + pTask->setOwner(nullptr); + return false; } @@ -152,6 +161,7 @@ void TaskManager::taskFinished(Task* pTask) { if (*it == pTask) { + pTask->setOwner(nullptr); _taskList.erase(it); break; } diff --git a/Foundation/testsuite/src/FIFOEventTest.cpp b/Foundation/testsuite/src/FIFOEventTest.cpp index 7bc5c0d94..570dc75c1 100644 --- a/Foundation/testsuite/src/FIFOEventTest.cpp +++ b/Foundation/testsuite/src/FIFOEventTest.cpp @@ -18,6 +18,7 @@ #include "Poco/Exception.h" #include "Poco/Stopwatch.h" #include +#include using namespace Poco; @@ -357,12 +358,14 @@ void FIFOEventTest::testAsyncNotifyBenchmark() const int cnt = 10000; int runCount = 1000; const Poco::Int64 allCount = cnt * runCount; + std::vector times; + times.reserve(allCount); + std::vector> vresult; + vresult.reserve(cnt); Poco::Stopwatch sw; - sw.restart(); while (runCount-- > 0) { - std::vector> vresult; - vresult.reserve(cnt); + sw.restart(); for (int i = 0; i < cnt; ++i) { vresult.push_back(simple.notifyAsync(this, i)); @@ -373,12 +376,19 @@ void FIFOEventTest::testAsyncNotifyBenchmark() vresult[i].wait(); assertTrue (vresult[i].data() == (i*2)); } + sw.stop(); + times.push_back(sw.elapsed()/1000); + vresult.clear(); } - sw.stop(); - std::cout << "notify and wait time = " << sw.elapsed() / 1000 << std::endl; + + Poco::UInt64 totTime = std::accumulate(times.begin(), times.end(), 0); + double avgTime = static_cast(totTime)/times.size(); + std::cout << "Total notify/wait time for " << allCount << " runs of " + << cnt << " tasks = " << totTime << "ms (avg/run=" << avgTime << "ms)"; assertTrue (_count == allCount); } + void FIFOEventTest::onVoid(const void* pSender) { _count++; @@ -482,6 +492,6 @@ CppUnit::Test* FIFOEventTest::suite() CppUnit_addTest(pSuite, FIFOEventTest, testExpireReRegister); CppUnit_addTest(pSuite, FIFOEventTest, testOverwriteDelegate); CppUnit_addTest(pSuite, FIFOEventTest, testAsyncNotify); - CppUnit_addTest(pSuite, FIFOEventTest, testAsyncNotifyBenchmark); + //CppUnit_addTest(pSuite, FIFOEventTest, testAsyncNotifyBenchmark); return pSuite; } diff --git a/Foundation/testsuite/src/TaskManagerTest.cpp b/Foundation/testsuite/src/TaskManagerTest.cpp index 070b0ed40..0c94840f4 100644 --- a/Foundation/testsuite/src/TaskManagerTest.cpp +++ b/Foundation/testsuite/src/TaskManagerTest.cpp @@ -22,6 +22,7 @@ #include "Poco/Observer.h" #include "Poco/Exception.h" #include "Poco/AutoPtr.h" +#include using Poco::TaskManager; @@ -51,12 +52,14 @@ namespace public: TestTask(): Task("TestTask"), - _fail(false) + _fail(false), + _started(false) { } void runTask() { + _started = true; _event.wait(); setProgress(0.5); _event.wait(); @@ -78,9 +81,15 @@ namespace _event.set(); } + bool started() const + { + return _started; + } + private: Event _event; - bool _fail; + std::atomic _fail; + std::atomic _started; }; class SimpleTask: public Task @@ -277,6 +286,11 @@ void TaskManagerTest::testFinish() assertTrue (!to.error()); tm.cancelAll(); tm.joinAll(); + tm.removeObserver(Observer(to, &TaskObserver::taskStarted)); + tm.removeObserver(Observer(to, &TaskObserver::taskCancelled)); + tm.removeObserver(Observer(to, &TaskObserver::taskFailed)); + tm.removeObserver(Observer(to, &TaskObserver::taskFinished)); + tm.removeObserver(Observer(to, &TaskObserver::taskProgress)); } @@ -317,6 +331,11 @@ void TaskManagerTest::testCancel() assertTrue (!to.error()); tm.cancelAll(); tm.joinAll(); + tm.removeObserver(Observer(to, &TaskObserver::taskStarted)); + tm.removeObserver(Observer(to, &TaskObserver::taskCancelled)); + tm.removeObserver(Observer(to, &TaskObserver::taskFailed)); + tm.removeObserver(Observer(to, &TaskObserver::taskFinished)); + tm.removeObserver(Observer(to, &TaskObserver::taskProgress)); } @@ -330,7 +349,7 @@ void TaskManagerTest::testError() tm.addObserver(Observer(to, &TaskObserver::taskFinished)); tm.addObserver(Observer(to, &TaskObserver::taskProgress)); AutoPtr pTT = new TestTask; - tm.start(pTT.duplicate()); + assertTrue (tm.start(pTT.duplicate())); while (pTT->state() < Task::TASK_RUNNING) Thread::sleep(50); assertTrue (pTT->progress() == 0); Thread::sleep(200); @@ -356,6 +375,11 @@ void TaskManagerTest::testError() assertTrue (list.empty()); tm.cancelAll(); tm.joinAll(); + tm.removeObserver(Observer(to, &TaskObserver::taskStarted)); + tm.removeObserver(Observer(to, &TaskObserver::taskCancelled)); + tm.removeObserver(Observer(to, &TaskObserver::taskFailed)); + tm.removeObserver(Observer(to, &TaskObserver::taskFinished)); + tm.removeObserver(Observer(to, &TaskObserver::taskProgress)); } @@ -443,12 +467,45 @@ void TaskManagerTest::testCustom() } +void TaskManagerTest::testCancelNoStart() +{ + TaskManager tm; + TaskObserver to; + tm.addObserver(Observer(to, &TaskObserver::taskStarted)); + tm.addObserver(Observer(to, &TaskObserver::taskCancelled)); + tm.addObserver(Observer(to, &TaskObserver::taskFailed)); + tm.addObserver(Observer(to, &TaskObserver::taskFinished)); + tm.addObserver(Observer(to, &TaskObserver::taskProgress)); + AutoPtr pTT = new TestTask; + pTT->cancel(); + assertTrue (pTT->isCancelled()); + assertFalse(tm.start(pTT.duplicate())); + assertTrue (pTT->progress() == 0); + assertTrue (pTT->isCancelled()); + assertFalse (pTT->hasOwner()); + tm.removeObserver(Observer(to, &TaskObserver::taskStarted)); + tm.removeObserver(Observer(to, &TaskObserver::taskCancelled)); + tm.removeObserver(Observer(to, &TaskObserver::taskFailed)); + tm.removeObserver(Observer(to, &TaskObserver::taskFinished)); + tm.removeObserver(Observer(to, &TaskObserver::taskProgress)); +} + + void TaskManagerTest::testMultiTasks() { TaskManager tm; - tm.start(new SimpleTask); - tm.start(new SimpleTask); - tm.start(new SimpleTask); + + AutoPtr pTT1 = new SimpleTask; + AutoPtr pTT2 = new SimpleTask; + AutoPtr pTT3 = new SimpleTask; + + tm.start(pTT1.duplicate()); + tm.start(pTT2.duplicate()); + tm.start(pTT3.duplicate()); + + assertTrue (pTT1->hasOwner()); + assertTrue (pTT2->hasOwner()); + assertTrue (pTT3->hasOwner()); TaskManager::TaskList list = tm.taskList(); assertTrue (list.size() == 3); @@ -457,6 +514,13 @@ void TaskManagerTest::testMultiTasks() while (tm.count() > 0) Thread::sleep(100); assertTrue (tm.count() == 0); tm.joinAll(); + + while (pTT1->state() != Task::TASK_FINISHED) Thread::sleep(50); + assertFalse (pTT1->hasOwner()); + while (pTT2->state() != Task::TASK_FINISHED) Thread::sleep(50); + assertFalse (pTT2->hasOwner()); + while (pTT3->state() != Task::TASK_FINISHED) Thread::sleep(50); + assertFalse (pTT3->hasOwner()); } @@ -510,6 +574,7 @@ CppUnit::Test* TaskManagerTest::suite() CppUnit_addTest(pSuite, TaskManagerTest, testFinish); CppUnit_addTest(pSuite, TaskManagerTest, testCancel); CppUnit_addTest(pSuite, TaskManagerTest, testError); + CppUnit_addTest(pSuite, TaskManagerTest, testCancelNoStart); CppUnit_addTest(pSuite, TaskManagerTest, testMultiTasks); CppUnit_addTest(pSuite, TaskManagerTest, testCustom); CppUnit_addTest(pSuite, TaskManagerTest, testCustomThreadPool); diff --git a/Foundation/testsuite/src/TaskManagerTest.h b/Foundation/testsuite/src/TaskManagerTest.h index 54e931573..f1fa21e17 100644 --- a/Foundation/testsuite/src/TaskManagerTest.h +++ b/Foundation/testsuite/src/TaskManagerTest.h @@ -33,6 +33,7 @@ public: void testFinish(); void testCancel(); void testError(); + void testCancelNoStart(); void testCustom(); void testMultiTasks(); void testCustomThreadPool(); diff --git a/Foundation/testsuite/src/TaskTest.cpp b/Foundation/testsuite/src/TaskTest.cpp index 9e6b67d58..8677430d9 100644 --- a/Foundation/testsuite/src/TaskTest.cpp +++ b/Foundation/testsuite/src/TaskTest.cpp @@ -29,12 +29,14 @@ namespace class TestTask: public Task { public: - TestTask(): Task("TestTask") + TestTask(): Task("TestTask"), + _started(false) { } void runTask() { + _started = true; try { _event.wait(); @@ -73,8 +75,14 @@ namespace } } + bool started() const + { + return _started; + } + private: Event _event; + std::atomic _started; }; } @@ -104,6 +112,20 @@ void TaskTest::testFinish() pTT->cont(); thr.join(); assertTrue (pTT->state() == Task::TASK_FINISHED); + + pTT->reset(); + assertTrue (pTT->progress() == 0); + assertTrue (pTT->state() == Task::TASK_IDLE); + thr.start(*pTT); + assertTrue (pTT->progress() == 0); + pTT->cont(); + while (pTT->progress() != 0.5) Thread::sleep(50); + assertTrue (pTT->state() == Task::TASK_RUNNING); + pTT->cont(); + while (pTT->progress() != 1.0) Thread::sleep(50); + pTT->cont(); + thr.join(); + assertTrue (pTT->state() == Task::TASK_FINISHED); } @@ -142,6 +164,21 @@ void TaskTest::testCancel2() } +void TaskTest::testCancelNoStart() +{ + AutoPtr pTT = new TestTask; + assertTrue (pTT->state() == Task::TASK_IDLE); + pTT->cancel(); + assertTrue (pTT->state() == Task::TASK_CANCELLING); + Thread thr; + thr.start(*pTT); + while (pTT->state() != Task::TASK_FINISHED) + Thread::sleep(50); + assertTrue (pTT->state() == Task::TASK_FINISHED); + assertFalse (pTT->started()); +} + + void TaskTest::setUp() { } @@ -159,6 +196,7 @@ CppUnit::Test* TaskTest::suite() CppUnit_addTest(pSuite, TaskTest, testFinish); CppUnit_addTest(pSuite, TaskTest, testCancel1); CppUnit_addTest(pSuite, TaskTest, testCancel2); + CppUnit_addTest(pSuite, TaskTest, testCancelNoStart); return pSuite; } diff --git a/Foundation/testsuite/src/TaskTest.h b/Foundation/testsuite/src/TaskTest.h index 8da65fc86..e35972937 100644 --- a/Foundation/testsuite/src/TaskTest.h +++ b/Foundation/testsuite/src/TaskTest.h @@ -27,6 +27,7 @@ public: void testFinish(); void testCancel1(); void testCancel2(); + void testCancelNoStart(); void setUp(); void tearDown(); diff --git a/runLibTests.sh b/runLibTests.sh index fb761eb5f..4acb7755e 100755 --- a/runLibTests.sh +++ b/runLibTests.sh @@ -7,11 +7,15 @@ # to clean and rebuild a single library, with all of its dependencies, # and run the tests. # -# Usage: ./runLibTests.sh library [address | undefined | thread ] +# Usage: ./runLibTests.sh library [address | undefined | thread] [ | -all | none] # # Example: ./runLibTests.sh Data/SQLite address # (distcleans, rebuilds and runs tests for Data/SQLite with address sanitizer) # +# Known shortcomings (TODO): +# - the script does not check if the library is a dependency of another library +# workaround: run the script for the dependent libraries first +# # g++ does not like empty quoted arguments, but # the shellcheck wants them quoted to remain quiet @@ -20,7 +24,7 @@ path=$1 if [ -z "${path}" ]; then echo "Library not specified" - echo "Usage: $0 path [address | undefined | thread ]" + echo "Usage: $0 path [address | undefined | thread] [ | -all | none]" exit 1 fi @@ -52,13 +56,20 @@ make distclean -C "$basedir"/CppUnit make -s -j4 -C "$basedir"/Foundation $flags make -s -j4 -C "$basedir"/CppUnit $flags +test=$3 +if [ -z "${test}" ]; then + test="-all" +fi + # Foundation requested, build/run tests and exit if [[ "$path" == "$basedir"/"Foundation" ]]; then cd "$path/testsuite/" || exit make -s -j4 -C ./ $flags cd "bin/$OSNAME/$OSARCH/" || exit - ./testrunner -all - ./testrunnerd -all + if [[ "$test" != "none" ]]; then + ./testrunner "${test}" + ./testrunnerd "${test}" + fi echo "$path $flags done." exit 0 fi @@ -72,8 +83,10 @@ do make distclean make -s -j4 -C ./ $flags cd bin/"$OSNAME"/"$OSARCH"/ || exit - ./testrunner -all - ./testrunnerd -all + if [[ "$test" != "none" ]]; then + ./testrunner "${test}" + ./testrunnerd "${test}" + fi echo "$1 $flags done." cd ../../../../ || exit done From 689a81c4c44356c34b604761c0d550d3b5ce77d7 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Mon, 11 Dec 2023 09:07:45 +0100 Subject: [PATCH 238/395] enh(File): Throw FileNotReadyException in File::exists() (Win32) (#2403) --- Foundation/include/Poco/Exception.h | 1 + Foundation/src/Exception.cpp | 1 + Foundation/src/File_WIN32U.cpp | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Foundation/include/Poco/Exception.h b/Foundation/include/Poco/Exception.h index ce6d4d035..d09d4ff99 100644 --- a/Foundation/include/Poco/Exception.h +++ b/Foundation/include/Poco/Exception.h @@ -246,6 +246,7 @@ POCO_DECLARE_EXCEPTION(Foundation_API, CreateFileException, FileException) POCO_DECLARE_EXCEPTION(Foundation_API, OpenFileException, FileException) POCO_DECLARE_EXCEPTION(Foundation_API, WriteFileException, FileException) POCO_DECLARE_EXCEPTION(Foundation_API, ReadFileException, FileException) +POCO_DECLARE_EXCEPTION(Foundation_API, FileNotReadyException, FileException) POCO_DECLARE_EXCEPTION(Foundation_API, DirectoryNotEmptyException, FileException) POCO_DECLARE_EXCEPTION(Foundation_API, UnknownURISchemeException, RuntimeException) POCO_DECLARE_EXCEPTION(Foundation_API, TooManyURIRedirectsException, RuntimeException) diff --git a/Foundation/src/Exception.cpp b/Foundation/src/Exception.cpp index a0bfd5849..a1460406e 100644 --- a/Foundation/src/Exception.cpp +++ b/Foundation/src/Exception.cpp @@ -169,6 +169,7 @@ POCO_IMPLEMENT_EXCEPTION(CreateFileException, FileException, "Cannot create file POCO_IMPLEMENT_EXCEPTION(OpenFileException, FileException, "Cannot open file") POCO_IMPLEMENT_EXCEPTION(WriteFileException, FileException, "Cannot write file") POCO_IMPLEMENT_EXCEPTION(ReadFileException, FileException, "Cannot read file") +POCO_IMPLEMENT_EXCEPTION(FileNotReadyException, FileException, "File not ready") POCO_IMPLEMENT_EXCEPTION(DirectoryNotEmptyException, FileException, "Directory not empty") POCO_IMPLEMENT_EXCEPTION(UnknownURISchemeException, RuntimeException, "Unknown URI scheme") POCO_IMPLEMENT_EXCEPTION(TooManyURIRedirectsException, RuntimeException, "Too many URI redirects") diff --git a/Foundation/src/File_WIN32U.cpp b/Foundation/src/File_WIN32U.cpp index 75b5da85c..e819ff501 100644 --- a/Foundation/src/File_WIN32U.cpp +++ b/Foundation/src/File_WIN32U.cpp @@ -100,7 +100,6 @@ bool FileImpl::existsImpl() const { case ERROR_FILE_NOT_FOUND: case ERROR_PATH_NOT_FOUND: - case ERROR_NOT_READY: case ERROR_INVALID_DRIVE: return false; default: @@ -439,6 +438,8 @@ void FileImpl::handleLastErrorImpl(const std::string& path) case ERROR_CANT_RESOLVE_FILENAME: case ERROR_INVALID_DRIVE: throw PathNotFoundException(path, err); + case ERROR_NOT_READY: + throw FileNotReadyException(path, err); case ERROR_ACCESS_DENIED: throw FileAccessDeniedException(path, err); case ERROR_ALREADY_EXISTS: From 24b7122f432631458719ef757c79f198f3c705a8 Mon Sep 17 00:00:00 2001 From: Alexander B Date: Mon, 11 Dec 2023 12:47:03 +0300 Subject: [PATCH 239/395] add sendfile method for streamsocket (#4007) * add sendfile method for streamsocket * add mswsock.lib to the project files and templates * remove /DPOCO_NO_AUTOMATIC_LIBS for cmake windows build * merge from upstream * merge from upstream * fix code stile add NotImplemented exception for unsupported platforms exculude for POCO_EMSCRIPTEN, because https:// github.com/emscripten-core/emscripten/pull/16234 * add iostream include for std::cout * fix compilation for emscripten (wrap sendfile) --- .github/workflows/ci.yml | 2 +- CppParser/testsuite/TestSuite.progen | 2 +- Crypto/Crypto.progen | 2 +- Crypto/samples/genrsakey/genrsakey.progen | 2 +- Crypto/testsuite/TestSuite.progen | 2 +- Data/MySQL/testsuite/TestSuite.progen | 2 +- Data/ODBC/testsuite/TestSuite.progen | 2 +- Data/PostgreSQL/testsuite/TestSuite.progen | 2 +- Data/SQLite/testsuite/TestSuite.progen | 2 +- Data/samples/Binding/Binding.progen | 2 +- Data/samples/RecordSet/RecordSet.progen | 2 +- Data/samples/RowFormatter/RowFormatter.progen | 2 +- Data/samples/Tuple/Tuple.progen | 2 +- Data/samples/TypeHandler/TypeHandler.progen | 2 +- Data/samples/WebNotifier/WebNotifier.progen | 2 +- Data/testsuite/TestSuite.progen | 2 +- Encodings/Compiler/Compiler.progen | 2 +- .../TextConverter/TextConverter.progen | 2 +- Foundation/include/Poco/FileStream.h | 9 ++ Foundation/include/Poco/FileStream_POSIX.h | 10 +- Foundation/include/Poco/FileStream_WIN32.h | 10 +- .../samples/ActiveMethod/ActiveMethod.progen | 2 +- Foundation/samples/Activity/Activity.progen | 2 +- .../BinaryReaderWriter.progen | 2 +- Foundation/samples/DateTime/DateTime.progen | 2 +- .../LineEndingConverter.progen | 2 +- .../samples/LogRotation/LogRotation.progen | 2 +- Foundation/samples/Logger/Logger.progen | 2 +- .../NotificationQueue.progen | 2 +- .../StringTokenizer/StringTokenizer.progen | 2 +- Foundation/samples/Timer/Timer.progen | 2 +- Foundation/samples/URI/URI.progen | 2 +- .../samples/base64decode/base64decode.progen | 2 +- .../samples/base64encode/base64encode.progen | 2 +- Foundation/samples/deflate/deflate.progen | 2 +- Foundation/samples/dir/dir.progen | 2 +- Foundation/samples/grep/grep.progen | 2 +- Foundation/samples/hmacmd5/hmacmd5.progen | 2 +- Foundation/samples/inflate/inflate.progen | 2 +- Foundation/samples/md5/md5.progen | 2 +- Foundation/samples/uuidgen/uuidgen.progen | 2 +- Foundation/src/FileStream.cpp | 10 ++ Foundation/src/FileStream_POSIX.cpp | 19 ++++ Foundation/src/FileStream_WIN32.cpp | 19 ++++ JSON/samples/Benchmark/Benchmark.progen | 2 +- JSON/testsuite/TestSuite.progen | 2 +- JWT/testsuite/TestSuite.progen | 2 +- MongoDB/samples/SQLToMongo/SQLToMongo.progen | 2 +- MongoDB/testsuite/TestSuite.progen | 2 +- Net/CMakeLists.txt | 2 +- Net/Net.progen | 2 +- Net/include/Poco/Net/SocketImpl.h | 10 ++ Net/include/Poco/Net/StreamSocket.h | 10 ++ Net/samples/EchoServer/EchoServer.progen | 2 +- .../HTTPFormServer/HTTPFormServer.progen | 2 +- Net/samples/HTTPLoadTest/HTTPLoadTest.progen | 2 +- .../HTTPTimeServer/HTTPTimeServer.progen | 2 +- Net/samples/Mail/Mail.progen | 2 +- Net/samples/Ping/Ping.progen | 2 +- Net/samples/SMTPLogger/SMTPLogger.progen | 2 +- Net/samples/TimeServer/TimeServer.progen | 2 +- .../WebSocketServer/WebSocketServer.progen | 2 +- Net/samples/dict/dict.progen | 2 +- Net/samples/download/download.progen | 2 +- Net/samples/httpget/httpget.progen | 2 +- Net/samples/ifconfig/ifconfig.progen | 2 +- Net/samples/tcpserver/tcpserver.progen | 2 +- Net/src/SocketImpl.cpp | 91 +++++++++++++++++++ Net/src/StreamSocket.cpp | 4 + Net/testsuite/TestSuite.progen | 2 +- Net/testsuite/src/SocketStreamTest.cpp | 66 +++++++++++++- Net/testsuite/src/SocketStreamTest.h | 1 + NetSSL_OpenSSL/NetSSL_OpenSSL.progen | 2 +- .../HTTPSTimeServer/HTTPSTimeServer.progen | 2 +- NetSSL_OpenSSL/samples/Mail/Mail.progen | 2 +- .../samples/SetSourceIP/SetSourceIP.progen | 2 +- .../TwitterClient/TwitterClient.progen | 2 +- .../samples/download/download.progen | 2 +- NetSSL_OpenSSL/testsuite/TestSuite.progen | 2 +- NetSSL_Win/NetSSL_Win.progen | 2 +- .../HTTPSTimeServer/HTTPSTimeServer.progen | 2 +- NetSSL_Win/samples/Mail/Mail.progen | 2 +- NetSSL_Win/samples/download/download.progen | 2 +- NetSSL_Win/testsuite/TestSuite.progen | 2 +- PDF/testsuite/TestSuite.progen | 2 +- PageCompiler/File2Page/File2Page.progen | 2 +- PageCompiler/PageCompiler.progen | 2 +- .../HTTPTimeServer/HTTPTimeServer.progen | 2 +- PocoDoc/PocoDoc.progen | 2 +- ProGen/ProGen.progen | 2 +- .../MetricsSample/MetricsSample.progen | 2 +- Redis/testsuite/TestSuite.progen | 2 +- Util/samples/SampleApp/SampleApp.progen | 2 +- Util/samples/SampleServer/SampleServer.progen | 2 +- Util/samples/pkill/pkill.progen | 2 +- Util/testsuite/TestSuite.progen | 2 +- XML/samples/DOMParser/DOMParser.progen | 2 +- XML/samples/DOMWriter/DOMWriter.progen | 2 +- XML/samples/PrettyPrint/PrettyPrint.progen | 2 +- XML/samples/SAXParser/SAXParser.progen | 2 +- XML/testsuite/TestSuite.progen | 2 +- Zip/Zip.progen | 2 +- Zip/samples/unzip/unzip.progen | 2 +- Zip/samples/zip/zip.progen | 2 +- Zip/testsuite/TestSuite.progen | 2 +- build/config/MinGW | 2 +- build/config/MinGW-CrossEnv | 2 +- 107 files changed, 350 insertions(+), 99 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a4e92314d..20308718c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -350,7 +350,7 @@ jobs: class CppUnit::TestCaller.testProxy steps: - uses: actions/checkout@v3 - - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON + - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON -DCMAKE_CXX_FLAGS="/MP /EHsc" -DCMAKE_C_FLAGS="/MP" - run: cmake --build cmake-build --config Release - uses: ./.github/actions/retry-action with: diff --git a/CppParser/testsuite/TestSuite.progen b/CppParser/testsuite/TestSuite.progen index 67d728c5d..ca967f5d2 100644 --- a/CppParser/testsuite/TestSuite.progen +++ b/CppParser/testsuite/TestSuite.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include -vc.project.linker.dependencies = iphlpapi.lib +vc.project.linker.dependencies = iphlpapi.lib mswsock.lib diff --git a/Crypto/Crypto.progen b/Crypto/Crypto.progen index f3492c130..778deba00 100644 --- a/Crypto/Crypto.progen +++ b/Crypto/Crypto.progen @@ -12,7 +12,7 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib mswsock.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/Crypto/samples/genrsakey/genrsakey.progen b/Crypto/samples/genrsakey/genrsakey.progen index 6b42329a8..15c79a473 100644 --- a/Crypto/samples/genrsakey/genrsakey.progen +++ b/Crypto/samples/genrsakey/genrsakey.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Crypto\\include -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/Crypto/testsuite/TestSuite.progen b/Crypto/testsuite/TestSuite.progen index 242a68ec1..086e660d9 100644 --- a/Crypto/testsuite/TestSuite.progen +++ b/Crypto/testsuite/TestSuite.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ${vc.project.pocobase}\\Foundation\\include vc.project.compiler.defines = _CRT_SECURE_NO_WARNINGS -vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib mswsock.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = diff --git a/Data/MySQL/testsuite/TestSuite.progen b/Data/MySQL/testsuite/TestSuite.progen index bce2d53ac..f9f15dcf2 100644 --- a/Data/MySQL/testsuite/TestSuite.progen +++ b/Data/MySQL/testsuite/TestSuite.progen @@ -9,4 +9,4 @@ vc.project.prototype = TestSuite_vs90.vcproj mysql = ${vc.project.pocobase}\\mysql vc.project.compiler.include = ${mysql}\\include;${vc.project.pocobase}\\Foundation\\include; \ ${vc.project.pocobase}\\Data\\include;${vc.project.pocobase}\\Data\\src -vc.project.linker.dependencies.Win32 = iphlpapi.lib +vc.project.linker.dependencies.Win32 = iphlpapi.lib mswsock.lib diff --git a/Data/ODBC/testsuite/TestSuite.progen b/Data/ODBC/testsuite/TestSuite.progen index ad611e51d..451672884 100644 --- a/Data/ODBC/testsuite/TestSuite.progen +++ b/Data/ODBC/testsuite/TestSuite.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\CppUnit\\include;..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\testsuite\\DataTest\\include -vc.project.linker.dependencies = odbc32.lib odbccp32.lib iphlpapi.lib +vc.project.linker.dependencies = odbc32.lib odbccp32.lib iphlpapi.lib mswsock.lib diff --git a/Data/PostgreSQL/testsuite/TestSuite.progen b/Data/PostgreSQL/testsuite/TestSuite.progen index 3e02e5225..a1f5145e3 100644 --- a/Data/PostgreSQL/testsuite/TestSuite.progen +++ b/Data/PostgreSQL/testsuite/TestSuite.progen @@ -10,7 +10,7 @@ postgresql = ${vc.project.pocobase}\\postgresql vc.project.compiler.include = ${postgresql}\\include;${vc.project.pocobase}\\Foundation\\include; \ ${vc.project.pocobase}\\Data\\include;${vc.project.pocobase}\\Data\\src vc.project.compiler.defines = _CRT_SECURE_NO_WARNINGS -vc.project.linker.dependencies = iphlpapi.lib +vc.project.linker.dependencies = iphlpapi.lib mswsock.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = diff --git a/Data/SQLite/testsuite/TestSuite.progen b/Data/SQLite/testsuite/TestSuite.progen index c0784b935..515abb7c8 100644 --- a/Data/SQLite/testsuite/TestSuite.progen +++ b/Data/SQLite/testsuite/TestSuite.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src -vc.project.linker.dependencies = iphlpapi.lib +vc.project.linker.dependencies = iphlpapi.lib mswsock.lib diff --git a/Data/samples/Binding/Binding.progen b/Data/samples/Binding/Binding.progen index a3dd5dfdd..d4f19fff6 100644 --- a/Data/samples/Binding/Binding.progen +++ b/Data/samples/Binding/Binding.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include -vc.project.linker.dependencies = iphlpapi.lib +vc.project.linker.dependencies = iphlpapi.lib mswsock.lib diff --git a/Data/samples/RecordSet/RecordSet.progen b/Data/samples/RecordSet/RecordSet.progen index a3dd5dfdd..d4f19fff6 100644 --- a/Data/samples/RecordSet/RecordSet.progen +++ b/Data/samples/RecordSet/RecordSet.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include -vc.project.linker.dependencies = iphlpapi.lib +vc.project.linker.dependencies = iphlpapi.lib mswsock.lib diff --git a/Data/samples/RowFormatter/RowFormatter.progen b/Data/samples/RowFormatter/RowFormatter.progen index a3dd5dfdd..d4f19fff6 100644 --- a/Data/samples/RowFormatter/RowFormatter.progen +++ b/Data/samples/RowFormatter/RowFormatter.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include -vc.project.linker.dependencies = iphlpapi.lib +vc.project.linker.dependencies = iphlpapi.lib mswsock.lib diff --git a/Data/samples/Tuple/Tuple.progen b/Data/samples/Tuple/Tuple.progen index a3dd5dfdd..d4f19fff6 100644 --- a/Data/samples/Tuple/Tuple.progen +++ b/Data/samples/Tuple/Tuple.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include -vc.project.linker.dependencies = iphlpapi.lib +vc.project.linker.dependencies = iphlpapi.lib mswsock.lib diff --git a/Data/samples/TypeHandler/TypeHandler.progen b/Data/samples/TypeHandler/TypeHandler.progen index 96965a6ce..396ddefbf 100644 --- a/Data/samples/TypeHandler/TypeHandler.progen +++ b/Data/samples/TypeHandler/TypeHandler.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Data/samples/WebNotifier/WebNotifier.progen b/Data/samples/WebNotifier/WebNotifier.progen index 7d8738bb1..8d7de14a3 100644 --- a/Data/samples/WebNotifier/WebNotifier.progen +++ b/Data/samples/WebNotifier/WebNotifier.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include;..\\..\\..\\Net\\include -vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Data/testsuite/TestSuite.progen b/Data/testsuite/TestSuite.progen index 6e936ac49..c035310b3 100644 --- a/Data/testsuite/TestSuite.progen +++ b/Data/testsuite/TestSuite.progen @@ -11,4 +11,4 @@ vc.project.prototype = TestSuite_vs90.vcproj #vc.project.compiler.std.c=stdc11 vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.compiler.include = ..\\src;..\\..\\Foundation\\include -vc.project.linker.dependencies.Win32 = iphlpapi.lib +vc.project.linker.dependencies.Win32 = iphlpapi.lib mswsock.lib diff --git a/Encodings/Compiler/Compiler.progen b/Encodings/Compiler/Compiler.progen index 724d3e9c4..310238652 100644 --- a/Encodings/Compiler/Compiler.progen +++ b/Encodings/Compiler/Compiler.progen @@ -12,5 +12,5 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib mswsock.lib vc.solution.create = true diff --git a/Encodings/samples/TextConverter/TextConverter.progen b/Encodings/samples/TextConverter/TextConverter.progen index ccd636a33..074b45626 100644 --- a/Encodings/samples/TextConverter/TextConverter.progen +++ b/Encodings/samples/TextConverter/TextConverter.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Encodings\\include -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Foundation/include/Poco/FileStream.h b/Foundation/include/Poco/FileStream.h index 78cfa0f0d..768364bbd 100644 --- a/Foundation/include/Poco/FileStream.h +++ b/Foundation/include/Poco/FileStream.h @@ -47,6 +47,9 @@ class Foundation_API FileIOS: public virtual std::ios /// On Windows platforms, UTF-8 encoded Unicode paths are correctly handled. { public: + + using NativeHandle = FileStreamBuf::NativeHandle; + FileIOS(); /// Creates the basic stream. @@ -63,6 +66,12 @@ public: FileStreamBuf* rdbuf(); /// Returns a pointer to the underlying streambuf. + NativeHandle nativeHandle() const; + /// Returns native file descriptor handle + + Poco::UInt64 size() const; + /// Returns file size + protected: FileStreamBuf _buf; }; diff --git a/Foundation/include/Poco/FileStream_POSIX.h b/Foundation/include/Poco/FileStream_POSIX.h index 3d19bdec2..8e7ef8fb2 100644 --- a/Foundation/include/Poco/FileStream_POSIX.h +++ b/Foundation/include/Poco/FileStream_POSIX.h @@ -31,6 +31,8 @@ class Foundation_API FileStreamBuf: public BufferedBidirectionalStreamBuf /// This stream buffer handles Fileio { public: + using NativeHandle = int; + FileStreamBuf(); /// Creates a FileStreamBuf. @@ -50,6 +52,12 @@ public: std::streampos seekpos(std::streampos pos, std::ios::openmode mode = std::ios::in | std::ios::out); /// Change to specified position, according to mode. + NativeHandle nativeHandle() const; + /// Returns native file descriptor handle + + Poco::UInt64 size() const; + /// Returns file size + protected: enum { @@ -61,7 +69,7 @@ protected: private: std::string _path; - int _fd; + NativeHandle _fd; std::streamoff _pos; }; diff --git a/Foundation/include/Poco/FileStream_WIN32.h b/Foundation/include/Poco/FileStream_WIN32.h index 5382f84db..d26f1ffed 100644 --- a/Foundation/include/Poco/FileStream_WIN32.h +++ b/Foundation/include/Poco/FileStream_WIN32.h @@ -30,6 +30,8 @@ class Foundation_API FileStreamBuf: public BufferedBidirectionalStreamBuf /// This stream buffer handles Fileio { public: + using NativeHandle = HANDLE; + FileStreamBuf(); /// Creates a FileStreamBuf. @@ -49,6 +51,12 @@ public: std::streampos seekpos(std::streampos pos, std::ios::openmode mode = std::ios::in | std::ios::out); /// change to specified position, according to mode + NativeHandle nativeHandle() const; + /// Returns native file descriptor handle + + Poco::UInt64 size() const; + /// Returns file size + protected: enum { @@ -60,7 +68,7 @@ protected: private: std::string _path; - HANDLE _handle; + NativeHandle _handle; UInt64 _pos; }; diff --git a/Foundation/samples/ActiveMethod/ActiveMethod.progen b/Foundation/samples/ActiveMethod/ActiveMethod.progen index 7c2c98bb5..e99390def 100644 --- a/Foundation/samples/ActiveMethod/ActiveMethod.progen +++ b/Foundation/samples/ActiveMethod/ActiveMethod.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Foundation/samples/Activity/Activity.progen b/Foundation/samples/Activity/Activity.progen index 7c2c98bb5..e99390def 100644 --- a/Foundation/samples/Activity/Activity.progen +++ b/Foundation/samples/Activity/Activity.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter.progen b/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter.progen index dbae00da9..7184a4818 100644 --- a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter.progen +++ b/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Foundation/samples/DateTime/DateTime.progen b/Foundation/samples/DateTime/DateTime.progen index dbae00da9..7184a4818 100644 --- a/Foundation/samples/DateTime/DateTime.progen +++ b/Foundation/samples/DateTime/DateTime.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Foundation/samples/LineEndingConverter/LineEndingConverter.progen b/Foundation/samples/LineEndingConverter/LineEndingConverter.progen index dbae00da9..7184a4818 100644 --- a/Foundation/samples/LineEndingConverter/LineEndingConverter.progen +++ b/Foundation/samples/LineEndingConverter/LineEndingConverter.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Foundation/samples/LogRotation/LogRotation.progen b/Foundation/samples/LogRotation/LogRotation.progen index dbae00da9..7184a4818 100644 --- a/Foundation/samples/LogRotation/LogRotation.progen +++ b/Foundation/samples/LogRotation/LogRotation.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Foundation/samples/Logger/Logger.progen b/Foundation/samples/Logger/Logger.progen index dbae00da9..7184a4818 100644 --- a/Foundation/samples/Logger/Logger.progen +++ b/Foundation/samples/Logger/Logger.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Foundation/samples/NotificationQueue/NotificationQueue.progen b/Foundation/samples/NotificationQueue/NotificationQueue.progen index dbae00da9..7184a4818 100644 --- a/Foundation/samples/NotificationQueue/NotificationQueue.progen +++ b/Foundation/samples/NotificationQueue/NotificationQueue.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Foundation/samples/StringTokenizer/StringTokenizer.progen b/Foundation/samples/StringTokenizer/StringTokenizer.progen index dbae00da9..7184a4818 100644 --- a/Foundation/samples/StringTokenizer/StringTokenizer.progen +++ b/Foundation/samples/StringTokenizer/StringTokenizer.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Foundation/samples/Timer/Timer.progen b/Foundation/samples/Timer/Timer.progen index dbae00da9..7184a4818 100644 --- a/Foundation/samples/Timer/Timer.progen +++ b/Foundation/samples/Timer/Timer.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Foundation/samples/URI/URI.progen b/Foundation/samples/URI/URI.progen index dbae00da9..7184a4818 100644 --- a/Foundation/samples/URI/URI.progen +++ b/Foundation/samples/URI/URI.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Foundation/samples/base64decode/base64decode.progen b/Foundation/samples/base64decode/base64decode.progen index dbae00da9..7184a4818 100644 --- a/Foundation/samples/base64decode/base64decode.progen +++ b/Foundation/samples/base64decode/base64decode.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Foundation/samples/base64encode/base64encode.progen b/Foundation/samples/base64encode/base64encode.progen index dbae00da9..7184a4818 100644 --- a/Foundation/samples/base64encode/base64encode.progen +++ b/Foundation/samples/base64encode/base64encode.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Foundation/samples/deflate/deflate.progen b/Foundation/samples/deflate/deflate.progen index dbae00da9..7184a4818 100644 --- a/Foundation/samples/deflate/deflate.progen +++ b/Foundation/samples/deflate/deflate.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Foundation/samples/dir/dir.progen b/Foundation/samples/dir/dir.progen index dbae00da9..7184a4818 100644 --- a/Foundation/samples/dir/dir.progen +++ b/Foundation/samples/dir/dir.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Foundation/samples/grep/grep.progen b/Foundation/samples/grep/grep.progen index dbae00da9..7184a4818 100644 --- a/Foundation/samples/grep/grep.progen +++ b/Foundation/samples/grep/grep.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Foundation/samples/hmacmd5/hmacmd5.progen b/Foundation/samples/hmacmd5/hmacmd5.progen index dbae00da9..7184a4818 100644 --- a/Foundation/samples/hmacmd5/hmacmd5.progen +++ b/Foundation/samples/hmacmd5/hmacmd5.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Foundation/samples/inflate/inflate.progen b/Foundation/samples/inflate/inflate.progen index dbae00da9..7184a4818 100644 --- a/Foundation/samples/inflate/inflate.progen +++ b/Foundation/samples/inflate/inflate.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Foundation/samples/md5/md5.progen b/Foundation/samples/md5/md5.progen index dbae00da9..7184a4818 100644 --- a/Foundation/samples/md5/md5.progen +++ b/Foundation/samples/md5/md5.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Foundation/samples/uuidgen/uuidgen.progen b/Foundation/samples/uuidgen/uuidgen.progen index dbae00da9..7184a4818 100644 --- a/Foundation/samples/uuidgen/uuidgen.progen +++ b/Foundation/samples/uuidgen/uuidgen.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Foundation/src/FileStream.cpp b/Foundation/src/FileStream.cpp index f8d7feea2..28b49eb24 100644 --- a/Foundation/src/FileStream.cpp +++ b/Foundation/src/FileStream.cpp @@ -50,6 +50,16 @@ FileStreamBuf* FileIOS::rdbuf() } +FileIOS::NativeHandle FileIOS::nativeHandle() const +{ + return _buf.nativeHandle(); +} + + +Poco::UInt64 FileIOS::size() const { + return _buf.size(); +} + FileInputStream::FileInputStream(): std::istream(&_buf) { diff --git a/Foundation/src/FileStream_POSIX.cpp b/Foundation/src/FileStream_POSIX.cpp index faf0109c7..fb4b96707 100644 --- a/Foundation/src/FileStream_POSIX.cpp +++ b/Foundation/src/FileStream_POSIX.cpp @@ -19,6 +19,8 @@ #include #include #include +#include +#include namespace Poco { @@ -167,4 +169,21 @@ std::streampos FileStreamBuf::seekpos(std::streampos pos, std::ios::openmode mod } +FileStreamBuf::NativeHandle FileStreamBuf::nativeHandle() const +{ + return _fd; +} + +Poco::UInt64 FileStreamBuf::size() const +{ + struct stat stat_buf; + int rc = fstat(_fd, &stat_buf); + if (rc < 0) + { + Poco::SystemException(strerror(errno), errno); + } + return stat_buf.st_size; +} + + } // namespace Poco diff --git a/Foundation/src/FileStream_WIN32.cpp b/Foundation/src/FileStream_WIN32.cpp index 7e9ca7e4f..5e1986c99 100644 --- a/Foundation/src/FileStream_WIN32.cpp +++ b/Foundation/src/FileStream_WIN32.cpp @@ -199,4 +199,23 @@ std::streampos FileStreamBuf::seekpos(std::streampos pos, std::ios::openmode mod } +FileStreamBuf::NativeHandle FileStreamBuf::nativeHandle() const +{ + return _handle; +} + +Poco::UInt64 FileStreamBuf::size() const +{ + LARGE_INTEGER result; + result.QuadPart = 0; + DWORD high = 0; + result.LowPart = ::GetFileSize(_handle, &high); + if (high > 0) + { + result.HighPart = high; + } + return result.QuadPart; +} + + } // namespace Poco diff --git a/JSON/samples/Benchmark/Benchmark.progen b/JSON/samples/Benchmark/Benchmark.progen index 40e486bd7..5978bf1f2 100644 --- a/JSON/samples/Benchmark/Benchmark.progen +++ b/JSON/samples/Benchmark/Benchmark.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\JSON\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/JSON/testsuite/TestSuite.progen b/JSON/testsuite/TestSuite.progen index d5a1c2f16..1d0853235 100644 --- a/JSON/testsuite/TestSuite.progen +++ b/JSON/testsuite/TestSuite.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = iphlpapi.lib +vc.project.linker.dependencies.Win32 = iphlpapi.lib mswsock.lib diff --git a/JWT/testsuite/TestSuite.progen b/JWT/testsuite/TestSuite.progen index 9f509e17a..a29642abc 100644 --- a/JWT/testsuite/TestSuite.progen +++ b/JWT/testsuite/TestSuite.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\JSON\\include;..\\..\\Crypto\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/MongoDB/samples/SQLToMongo/SQLToMongo.progen b/MongoDB/samples/SQLToMongo/SQLToMongo.progen index 1543dabdb..b38803c56 100644 --- a/MongoDB/samples/SQLToMongo/SQLToMongo.progen +++ b/MongoDB/samples/SQLToMongo/SQLToMongo.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Net\\include;..\\..\\..\\MongoDB\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/MongoDB/testsuite/TestSuite.progen b/MongoDB/testsuite/TestSuite.progen index c1bc49fed..32700f626 100644 --- a/MongoDB/testsuite/TestSuite.progen +++ b/MongoDB/testsuite/TestSuite.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Net/CMakeLists.txt b/Net/CMakeLists.txt index 04799325c..07fc182d8 100644 --- a/Net/CMakeLists.txt +++ b/Net/CMakeLists.txt @@ -28,7 +28,7 @@ set_target_properties(Net target_link_libraries(Net PUBLIC Poco::Foundation) # Windows and WindowsCE need additional libraries if(WIN32) - target_link_libraries(Net PUBLIC "iphlpapi.lib") + target_link_libraries(Net PUBLIC "iphlpapi.lib" "mswsock.lib") if(WINCE) target_link_libraries(Net PUBLIC "ws2.lib") else() diff --git a/Net/Net.progen b/Net/Net.progen index 1c5bbcbb9..cb262f1e9 100644 --- a/Net/Net.progen +++ b/Net/Net.progen @@ -13,6 +13,6 @@ vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/Net/include/Poco/Net/SocketImpl.h b/Net/include/Poco/Net/SocketImpl.h index e49579097..ca5794a5d 100644 --- a/Net/include/Poco/Net/SocketImpl.h +++ b/Net/include/Poco/Net/SocketImpl.h @@ -27,6 +27,11 @@ namespace Poco { + + +class FileInputStream; + + namespace Net { @@ -473,6 +478,11 @@ public: bool initialized() const; /// Returns true iff the underlying socket is initialized. + Poco::Int64 sendFile(FileInputStream &FileInputStream, Poco::UInt64 offset = 0); + /// Sends file using system function + /// for posix systems - with sendfile[64](...) + /// for windows - with TransmitFile(...) + protected: SocketImpl(); /// Creates a SocketImpl. diff --git a/Net/include/Poco/Net/StreamSocket.h b/Net/include/Poco/Net/StreamSocket.h index 84379974e..a71b87acd 100644 --- a/Net/include/Poco/Net/StreamSocket.h +++ b/Net/include/Poco/Net/StreamSocket.h @@ -24,6 +24,11 @@ namespace Poco { + + +class FileInputStream; + + namespace Net { @@ -253,6 +258,11 @@ public: /// The preferred way for a socket to receive urgent data /// is by enabling the SO_OOBINLINE option. + Poco::Int64 sendFile(FileInputStream &FileInputStream, Poco::UInt64 offset = 0); + /// Sends file using system function + /// for posix systems - with sendfile[64](...) + /// for windows - with TransmitFile(...) + StreamSocket(SocketImpl* pImpl); /// Creates the Socket and attaches the given SocketImpl. /// The socket takes ownership of the SocketImpl. diff --git a/Net/samples/EchoServer/EchoServer.progen b/Net/samples/EchoServer/EchoServer.progen index ede2c7832..b4cc41e63 100644 --- a/Net/samples/EchoServer/EchoServer.progen +++ b/Net/samples/EchoServer/EchoServer.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Net/samples/HTTPFormServer/HTTPFormServer.progen b/Net/samples/HTTPFormServer/HTTPFormServer.progen index ede2c7832..b4cc41e63 100644 --- a/Net/samples/HTTPFormServer/HTTPFormServer.progen +++ b/Net/samples/HTTPFormServer/HTTPFormServer.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Net/samples/HTTPLoadTest/HTTPLoadTest.progen b/Net/samples/HTTPLoadTest/HTTPLoadTest.progen index ede2c7832..b4cc41e63 100644 --- a/Net/samples/HTTPLoadTest/HTTPLoadTest.progen +++ b/Net/samples/HTTPLoadTest/HTTPLoadTest.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Net/samples/HTTPTimeServer/HTTPTimeServer.progen b/Net/samples/HTTPTimeServer/HTTPTimeServer.progen index ede2c7832..b4cc41e63 100644 --- a/Net/samples/HTTPTimeServer/HTTPTimeServer.progen +++ b/Net/samples/HTTPTimeServer/HTTPTimeServer.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Net/samples/Mail/Mail.progen b/Net/samples/Mail/Mail.progen index ede2c7832..b4cc41e63 100644 --- a/Net/samples/Mail/Mail.progen +++ b/Net/samples/Mail/Mail.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Net/samples/Ping/Ping.progen b/Net/samples/Ping/Ping.progen index ede2c7832..b4cc41e63 100644 --- a/Net/samples/Ping/Ping.progen +++ b/Net/samples/Ping/Ping.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Net/samples/SMTPLogger/SMTPLogger.progen b/Net/samples/SMTPLogger/SMTPLogger.progen index ede2c7832..b4cc41e63 100644 --- a/Net/samples/SMTPLogger/SMTPLogger.progen +++ b/Net/samples/SMTPLogger/SMTPLogger.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Net/samples/TimeServer/TimeServer.progen b/Net/samples/TimeServer/TimeServer.progen index ede2c7832..b4cc41e63 100644 --- a/Net/samples/TimeServer/TimeServer.progen +++ b/Net/samples/TimeServer/TimeServer.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Net/samples/WebSocketServer/WebSocketServer.progen b/Net/samples/WebSocketServer/WebSocketServer.progen index ede2c7832..b4cc41e63 100644 --- a/Net/samples/WebSocketServer/WebSocketServer.progen +++ b/Net/samples/WebSocketServer/WebSocketServer.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Net/samples/dict/dict.progen b/Net/samples/dict/dict.progen index ede2c7832..b4cc41e63 100644 --- a/Net/samples/dict/dict.progen +++ b/Net/samples/dict/dict.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Net/samples/download/download.progen b/Net/samples/download/download.progen index ede2c7832..b4cc41e63 100644 --- a/Net/samples/download/download.progen +++ b/Net/samples/download/download.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Net/samples/httpget/httpget.progen b/Net/samples/httpget/httpget.progen index ede2c7832..b4cc41e63 100644 --- a/Net/samples/httpget/httpget.progen +++ b/Net/samples/httpget/httpget.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Net/samples/ifconfig/ifconfig.progen b/Net/samples/ifconfig/ifconfig.progen index ede2c7832..b4cc41e63 100644 --- a/Net/samples/ifconfig/ifconfig.progen +++ b/Net/samples/ifconfig/ifconfig.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Net/samples/tcpserver/tcpserver.progen b/Net/samples/tcpserver/tcpserver.progen index 70c16504a..3a6442037 100644 --- a/Net/samples/tcpserver/tcpserver.progen +++ b/Net/samples/tcpserver/tcpserver.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Net/src/SocketImpl.cpp b/Net/src/SocketImpl.cpp index 36902fa4c..68310f930 100644 --- a/Net/src/SocketImpl.cpp +++ b/Net/src/SocketImpl.cpp @@ -17,12 +17,15 @@ #include "Poco/Net/StreamSocketImpl.h" #include "Poco/NumberFormatter.h" #include "Poco/Timestamp.h" +#include "Poco/FileStream.h" +#include "Poco/Error.h" #include // FD_SET needs memset on some platforms, so we can't use #if defined(POCO_HAVE_FD_EPOLL) #ifdef POCO_OS_FAMILY_WINDOWS #include "wepoll.h" + #include "mswsock.h" #else #include #include @@ -42,9 +45,21 @@ #ifdef POCO_OS_FAMILY_WINDOWS #include +#else +#include #endif +#if POCO_OS == POCO_OS_MAC_OS_X || POCO_OS == POCO_OS_FAMILY_BSD +#include +#include +using sighandler_t = sig_t; +#endif + +#if POCO_OS == POCO_OS_LINUX && !defined(POCO_EMSCRIPTEN) +#include +#endif + #if defined(_MSC_VER) #pragma warning(disable:4996) // deprecation warnings #endif @@ -1358,5 +1373,81 @@ void SocketImpl::error(int code, const std::string& arg) } } +#ifdef POCO_OS_FAMILY_WINDOWS +Poco::Int64 SocketImpl::sendFile(FileInputStream &fileInputStream, Poco::UInt64 offset) +{ + FileIOS::NativeHandle fd = fileInputStream.nativeHandle(); + Poco::UInt64 fileSize = fileInputStream.size(); + std::streamoff sentSize = fileSize - offset; + LARGE_INTEGER offsetHelper; + offsetHelper.QuadPart = offset; + OVERLAPPED overlapped; + memset(&overlapped, 0, sizeof(overlapped)); + overlapped.Offset = offsetHelper.LowPart; + overlapped.OffsetHigh = offsetHelper.HighPart; + overlapped.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); + if (overlapped.hEvent == nullptr) + { + return -1; + } + bool result = TransmitFile(_sockfd, fd, sentSize, 0, &overlapped, nullptr, 0); + if (!result) + { + int err = WSAGetLastError(); + if ((err != ERROR_IO_PENDING) && (WSAGetLastError() != WSA_IO_PENDING)) { + CloseHandle(overlapped.hEvent); + error(err, Error::getMessage(err)); + } + WaitForSingleObject(overlapped.hEvent, INFINITE); + } + CloseHandle(overlapped.hEvent); + return sentSize; +} +#else +Poco::Int64 _sendfile(poco_socket_t sd, FileIOS::NativeHandle fd, Poco::UInt64 offset,std::streamoff sentSize) +{ + Poco::Int64 sent = 0; +#ifdef __USE_LARGEFILE64 + sent = sendfile64(sd, fd, (off64_t *)&offset, sentSize); +#else +#if POCO_OS == POCO_OS_LINUX && !defined(POCO_EMSCRIPTEN) + sent = sendfile(sd, fd, (off_t *)&offset, sentSize); +#elif POCO_OS == POCO_OS_MAC_OS_X + int result = sendfile(fd, sd, offset, &sentSize, nullptr, 0); + if (result < 0) + { + sent = -1; + } + else + { + sent = sentSize; + } +#else + throw Poco::NotImplementedException("sendfile not implemented for this platform"); +#endif +#endif + if (errno == EAGAIN || errno == EWOULDBLOCK) + { + sent = 0; + } + return sent; +} + +Poco::Int64 SocketImpl::sendFile(FileInputStream &fileInputStream, Poco::UInt64 offset) +{ + FileIOS::NativeHandle fd = fileInputStream.nativeHandle(); + Poco::UInt64 fileSize = fileInputStream.size(); + std::streamoff sentSize = fileSize - offset; + Poco::Int64 sent = 0; + sighandler_t sigPrev = signal(SIGPIPE, SIG_IGN); + while (sent == 0) + { + errno = 0; + sent = _sendfile(_sockfd, fd, offset, sentSize); + } + signal(SIGPIPE, sigPrev != SIG_ERR ? sigPrev : SIG_DFL); + return sent; +} +#endif // POCO_OS_FAMILY_WINDOWS } } // namespace Poco::Net diff --git a/Net/src/StreamSocket.cpp b/Net/src/StreamSocket.cpp index efb31f83f..7741654ed 100644 --- a/Net/src/StreamSocket.cpp +++ b/Net/src/StreamSocket.cpp @@ -213,5 +213,9 @@ void StreamSocket::sendUrgent(unsigned char data) impl()->sendUrgent(data); } +Poco::Int64 StreamSocket::sendFile(FileInputStream &fileInputStream, Poco::UInt64 offset) +{ + return impl()->sendFile(fileInputStream, offset); +} } } // namespace Poco::Net diff --git a/Net/testsuite/TestSuite.progen b/Net/testsuite/TestSuite.progen index 205fabcee..fa52e8aed 100644 --- a/Net/testsuite/TestSuite.progen +++ b/Net/testsuite/TestSuite.progen @@ -8,5 +8,5 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies = iphlpapi.lib +vc.project.linker.dependencies = iphlpapi.lib mswsock.lib vc.project.linker.dependencies.Win32 = ws2_32.lib diff --git a/Net/testsuite/src/SocketStreamTest.cpp b/Net/testsuite/src/SocketStreamTest.cpp index 99954b3c6..5a453b444 100644 --- a/Net/testsuite/src/SocketStreamTest.cpp +++ b/Net/testsuite/src/SocketStreamTest.cpp @@ -19,7 +19,10 @@ #include "Poco/Net/NetException.h" #include "Poco/Timespan.h" #include "Poco/Stopwatch.h" - +#include "Poco/FileStream.h" +#include "Poco/File.h" +#include "Poco/Path.h" +#include using Poco::Net::Socket; using Poco::Net::SocketStream; @@ -31,7 +34,9 @@ using Poco::Timespan; using Poco::Stopwatch; using Poco::TimeoutException; using Poco::InvalidArgumentException; - +using Poco::FileInputStream; +using Poco::FileOutputStream; +using Poco::File; SocketStreamTest::SocketStreamTest(const std::string& name): CppUnit::TestCase(name) { @@ -119,6 +124,62 @@ void SocketStreamTest::testEOF() ss.close(); } +void SocketStreamTest::testSendFile() +{ + const int fileSize = 64000; + std::string payload(fileSize, 'x'); + Poco::Path testFilePath = Poco::Path::temp().append("test.sendfile.txt"); + const std::string fileName = testFilePath.toString(); + { + File f(fileName); + if (f.exists()) + { + f.remove(); + } + } + FileOutputStream fout(fileName); + fout << payload; + fout.close(); + FileInputStream fin(fileName); + EchoServer echoServer; + StreamSocket ss; + ss.connect(SocketAddress("127.0.0.1", echoServer.port())); + + SocketStream str(ss); + + Poco::UInt64 offset = 0; + Poco::Int64 sent = 0; + try + { + sent = ss.sendFile(fin); + } + catch (Poco::NotImplementedException &) + { + std::cout << "[NOT IMPLEMENTED]\n"; + return; + } + assertTrue(sent >= 0); + while (sent < fileSize) + { + offset = sent; + sent = ss.sendFile(fin, offset); + assertTrue(sent >= 0); + } + str.flush(); + assertTrue (str.good()); + ss.shutdownSend(); + + assertTrue (str.gcount() == 0); + char buffer[fileSize]; + str.read(buffer, sizeof(buffer)); + assertTrue (str.good()); + assertTrue (str.gcount() == fileSize); + + ss.close(); + fin.close(); + File f(fileName); + f.remove(); +} void SocketStreamTest::setUp() { @@ -137,6 +198,7 @@ CppUnit::Test* SocketStreamTest::suite() CppUnit_addTest(pSuite, SocketStreamTest, testStreamEcho); CppUnit_addTest(pSuite, SocketStreamTest, testLargeStreamEcho); CppUnit_addTest(pSuite, SocketStreamTest, testEOF); + CppUnit_addTest(pSuite, SocketStreamTest, testSendFile); return pSuite; } diff --git a/Net/testsuite/src/SocketStreamTest.h b/Net/testsuite/src/SocketStreamTest.h index aa2fa7c3f..c97a77e6f 100644 --- a/Net/testsuite/src/SocketStreamTest.h +++ b/Net/testsuite/src/SocketStreamTest.h @@ -27,6 +27,7 @@ public: void testStreamEcho(); void testLargeStreamEcho(); void testEOF(); + void testSendFile(); void setUp(); void tearDown(); diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL.progen b/NetSSL_OpenSSL/NetSSL_OpenSSL.progen index 6e03a7bc7..d98320c8d 100644 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL.progen +++ b/NetSSL_OpenSSL/NetSSL_OpenSSL.progen @@ -13,7 +13,7 @@ vc.project.compiler.defines.shared = NetSSL_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer.progen b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer.progen index b7b3a1b28..973e43e03 100644 --- a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer.progen +++ b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/NetSSL_OpenSSL/samples/Mail/Mail.progen b/NetSSL_OpenSSL/samples/Mail/Mail.progen index b7b3a1b28..973e43e03 100644 --- a/NetSSL_OpenSSL/samples/Mail/Mail.progen +++ b/NetSSL_OpenSSL/samples/Mail/Mail.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP.progen b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP.progen index b7b3a1b28..973e43e03 100644 --- a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP.progen +++ b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient.progen b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient.progen index 8a5572545..e78d283ca 100644 --- a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient.progen +++ b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\JSON\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/NetSSL_OpenSSL/samples/download/download.progen b/NetSSL_OpenSSL/samples/download/download.progen index b7b3a1b28..973e43e03 100644 --- a/NetSSL_OpenSSL/samples/download/download.progen +++ b/NetSSL_OpenSSL/samples/download/download.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/NetSSL_OpenSSL/testsuite/TestSuite.progen b/NetSSL_OpenSSL/testsuite/TestSuite.progen index adcae7daa..5f50c0867 100644 --- a/NetSSL_OpenSSL/testsuite/TestSuite.progen +++ b/NetSSL_OpenSSL/testsuite/TestSuite.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\XML\\include;..\\..\\Util\\include;..\\..\\Net\\include;..\\..\\Crypto\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/NetSSL_Win/NetSSL_Win.progen b/NetSSL_Win/NetSSL_Win.progen index 10824e6a8..ec946a416 100644 --- a/NetSSL_Win/NetSSL_Win.progen +++ b/NetSSL_Win/NetSSL_Win.progen @@ -13,7 +13,7 @@ vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib Crypt32.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib Crypt32.lib mswsock.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.progen b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.progen index c63b31f35..bb072373b 100644 --- a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.progen +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_Win\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/NetSSL_Win/samples/Mail/Mail.progen b/NetSSL_Win/samples/Mail/Mail.progen index c63b31f35..bb072373b 100644 --- a/NetSSL_Win/samples/Mail/Mail.progen +++ b/NetSSL_Win/samples/Mail/Mail.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_Win\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/NetSSL_Win/samples/download/download.progen b/NetSSL_Win/samples/download/download.progen index c63b31f35..bb072373b 100644 --- a/NetSSL_Win/samples/download/download.progen +++ b/NetSSL_Win/samples/download/download.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_Win\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/NetSSL_Win/testsuite/TestSuite.progen b/NetSSL_Win/testsuite/TestSuite.progen index 6be09147b..06c8d66d1 100644 --- a/NetSSL_Win/testsuite/TestSuite.progen +++ b/NetSSL_Win/testsuite/TestSuite.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\XML\\include;..\\..\\Util\\include;..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/PDF/testsuite/TestSuite.progen b/PDF/testsuite/TestSuite.progen index fbe3e7456..229ff3ba6 100644 --- a/PDF/testsuite/TestSuite.progen +++ b/PDF/testsuite/TestSuite.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\XML\\include;..\\..\\Util\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies = iphlpapi.lib +vc.project.linker.dependencies = iphlpapi.lib mswsock.lib diff --git a/PageCompiler/File2Page/File2Page.progen b/PageCompiler/File2Page/File2Page.progen index fd5708eca..0df5eb4d7 100644 --- a/PageCompiler/File2Page/File2Page.progen +++ b/PageCompiler/File2Page/File2Page.progen @@ -13,5 +13,5 @@ vc.project.compiler.defines.shared = vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib mswsock.lib vc.solution.create = true diff --git a/PageCompiler/PageCompiler.progen b/PageCompiler/PageCompiler.progen index d0193b1bf..8bdae3fff 100644 --- a/PageCompiler/PageCompiler.progen +++ b/PageCompiler/PageCompiler.progen @@ -13,5 +13,5 @@ vc.project.compiler.defines.shared = vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib mswsock.lib vc.solution.create = true diff --git a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer.progen b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer.progen index ede2c7832..b4cc41e63 100644 --- a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer.progen +++ b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/PocoDoc/PocoDoc.progen b/PocoDoc/PocoDoc.progen index 832c985c5..bb2a4f69e 100644 --- a/PocoDoc/PocoDoc.progen +++ b/PocoDoc/PocoDoc.progen @@ -13,5 +13,5 @@ vc.project.compiler.defines.shared = vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib mswsock.lib vc.solution.create = true diff --git a/ProGen/ProGen.progen b/ProGen/ProGen.progen index 93a3aecb4..1b2188dd4 100644 --- a/ProGen/ProGen.progen +++ b/ProGen/ProGen.progen @@ -13,5 +13,5 @@ vc.project.compiler.defines.shared = vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib mswsock.lib vc.solution.create = true diff --git a/Prometheus/samples/MetricsSample/MetricsSample.progen b/Prometheus/samples/MetricsSample/MetricsSample.progen index a6047e0a0..718397f29 100644 --- a/Prometheus/samples/MetricsSample/MetricsSample.progen +++ b/Prometheus/samples/MetricsSample/MetricsSample.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Util\\include;..\\..\\..\\XML\\include;..\\..\\..\\JSON\\include;..\\..\\..\\Net\\include;..\\..\\..\\Prometheus\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Redis/testsuite/TestSuite.progen b/Redis/testsuite/TestSuite.progen index c1bc49fed..32700f626 100644 --- a/Redis/testsuite/TestSuite.progen +++ b/Redis/testsuite/TestSuite.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Util/samples/SampleApp/SampleApp.progen b/Util/samples/SampleApp/SampleApp.progen index b1d2420a5..5e8490c90 100644 --- a/Util/samples/SampleApp/SampleApp.progen +++ b/Util/samples/SampleApp/SampleApp.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Util/samples/SampleServer/SampleServer.progen b/Util/samples/SampleServer/SampleServer.progen index b1d2420a5..5e8490c90 100644 --- a/Util/samples/SampleServer/SampleServer.progen +++ b/Util/samples/SampleServer/SampleServer.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Util/samples/pkill/pkill.progen b/Util/samples/pkill/pkill.progen index b1d2420a5..5e8490c90 100644 --- a/Util/samples/pkill/pkill.progen +++ b/Util/samples/pkill/pkill.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Util/testsuite/TestSuite.progen b/Util/testsuite/TestSuite.progen index 2280fee75..500ed975e 100644 --- a/Util/testsuite/TestSuite.progen +++ b/Util/testsuite/TestSuite.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\XML\\include;..\\..\\JSON\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = iphlpapi.lib +vc.project.linker.dependencies.Win32 = iphlpapi.lib mswsock.lib diff --git a/XML/samples/DOMParser/DOMParser.progen b/XML/samples/DOMParser/DOMParser.progen index 299a2da6e..63d42fa11 100644 --- a/XML/samples/DOMParser/DOMParser.progen +++ b/XML/samples/DOMParser/DOMParser.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/XML/samples/DOMWriter/DOMWriter.progen b/XML/samples/DOMWriter/DOMWriter.progen index 299a2da6e..63d42fa11 100644 --- a/XML/samples/DOMWriter/DOMWriter.progen +++ b/XML/samples/DOMWriter/DOMWriter.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/XML/samples/PrettyPrint/PrettyPrint.progen b/XML/samples/PrettyPrint/PrettyPrint.progen index 299a2da6e..63d42fa11 100644 --- a/XML/samples/PrettyPrint/PrettyPrint.progen +++ b/XML/samples/PrettyPrint/PrettyPrint.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/XML/samples/SAXParser/SAXParser.progen b/XML/samples/SAXParser/SAXParser.progen index 299a2da6e..63d42fa11 100644 --- a/XML/samples/SAXParser/SAXParser.progen +++ b/XML/samples/SAXParser/SAXParser.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/XML/testsuite/TestSuite.progen b/XML/testsuite/TestSuite.progen index 99ba45b05..851ab8bcd 100644 --- a/XML/testsuite/TestSuite.progen +++ b/XML/testsuite/TestSuite.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies = iphlpapi.lib +vc.project.linker.dependencies = iphlpapi.lib mswsock.lib diff --git a/Zip/Zip.progen b/Zip/Zip.progen index c3cddae59..13dd4f2c5 100644 --- a/Zip/Zip.progen +++ b/Zip/Zip.progen @@ -14,6 +14,6 @@ vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.disableWarnings = 4244;4267 vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/Zip/samples/unzip/unzip.progen b/Zip/samples/unzip/unzip.progen index 32577f864..4509bb186 100644 --- a/Zip/samples/unzip/unzip.progen +++ b/Zip/samples/unzip/unzip.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Zip\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Zip/samples/zip/zip.progen b/Zip/samples/zip/zip.progen index 32577f864..4509bb186 100644 --- a/Zip/samples/zip/zip.progen +++ b/Zip/samples/zip/zip.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Zip\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib diff --git a/Zip/testsuite/TestSuite.progen b/Zip/testsuite/TestSuite.progen index 1617f52d8..3c9cf8d61 100644 --- a/Zip/testsuite/TestSuite.progen +++ b/Zip/testsuite/TestSuite.progen @@ -8,5 +8,5 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies = iphlpapi.lib +vc.project.linker.dependencies = iphlpapi.lib mswsock.lib diff --git a/build/config/MinGW b/build/config/MinGW index f3c25ee9e..4c177669c 100644 --- a/build/config/MinGW +++ b/build/config/MinGW @@ -70,4 +70,4 @@ SYSFLAGS = -D_WIN32 -DMINGW32 -DWINVER=0x501 -DPOCO_NO_FPENVIRONMENT -DPCRE_STAT # # System Specific Libraries # -SYSLIBS = -L/usr/local/lib -L/usr/lib -liphlpapi -lssl -lcrypto -lws2_32 +SYSLIBS = -L/usr/local/lib -L/usr/lib -liphlpapi -lmswsock -lssl -lcrypto -lws2_32 diff --git a/build/config/MinGW-CrossEnv b/build/config/MinGW-CrossEnv index 3b2a52e78..87080ef3b 100644 --- a/build/config/MinGW-CrossEnv +++ b/build/config/MinGW-CrossEnv @@ -72,4 +72,4 @@ SYSFLAGS = -D_WIN32 -DMINGW32 -DWINVER=0x501 -DPOCO_NO_FPENVIRONMENT -DPCRE_STAT # # System Specific Libraries # -SYSLIBS = -liphlpapi -lssl -lcrypto -lws2_32 +SYSLIBS = -liphlpapi -lmswsock -lssl -lcrypto -lws2_32 From 4f1cf683079cc3b00be96259fc42f5c291ab4c77 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Mon, 11 Dec 2023 14:48:33 +0100 Subject: [PATCH 240/395] Stricter DateTimeParser for known formats (fixes #569) (#4330) * GH #569: Cherry pick and correct code from devel-experimental. * GH #569: Add missing timezone codes. * enh(Foundation): DateTimeParser: stricter checks of timezones, more tests for invalid inputs. (#569) * enh(Foundation): Small fixes of issues detected by CodeQL --------- Co-authored-by: Alex Fabijanic --- Foundation/include/Poco/DateTimeFormat.h | 34 ++++++ Foundation/include/Poco/DateTimeParser.h | 2 + Foundation/src/DateTime.cpp | 34 ++++-- Foundation/src/DateTimeFormat.cpp | 100 ++++++++++++++++ Foundation/src/DateTimeParser.cpp | 106 ++++++++++------- Foundation/src/RegularExpression.cpp | 2 +- .../testsuite/src/DateTimeParserTest.cpp | 110 ++++++++++++++++-- Foundation/testsuite/src/DateTimeParserTest.h | 1 + .../testsuite/src/RegularExpressionTest.cpp | 10 ++ .../testsuite/src/RegularExpressionTest.h | 1 + 10 files changed, 339 insertions(+), 61 deletions(-) diff --git a/Foundation/include/Poco/DateTimeFormat.h b/Foundation/include/Poco/DateTimeFormat.h index d550b492f..291bf18b2 100644 --- a/Foundation/include/Poco/DateTimeFormat.h +++ b/Foundation/include/Poco/DateTimeFormat.h @@ -19,16 +19,21 @@ #include "Poco/Foundation.h" +#include namespace Poco { +class RegularExpression; + + class Foundation_API DateTimeFormat /// Definition of date/time formats and various /// constants used by DateTimeFormatter and DateTimeParser. { public: + // predefined date formats static const std::string ISO8601_FORMAT; /// The date/time format defined in the ISO 8601 standard. @@ -37,6 +42,8 @@ public: /// 2005-01-01T12:00:00+01:00 /// 2005-01-01T11:00:00Z + static const std::string ISO8601_REGEX; + static const std::string ISO8601_FRAC_FORMAT; /// The date/time format defined in the ISO 8601 standard, /// with fractional seconds. @@ -52,6 +59,8 @@ public: /// Sat, 1 Jan 05 12:00:00 +0100 /// Sat, 1 Jan 05 11:00:00 GMT + static const std::string RFC822_REGEX; + static const std::string RFC1123_FORMAT; /// The date/time format defined in RFC 1123 (obsoletes RFC 822). /// @@ -59,6 +68,8 @@ public: /// Sat, 1 Jan 2005 12:00:00 +0100 /// Sat, 1 Jan 2005 11:00:00 GMT + static const std::string RFC1123_REGEX; + static const std::string HTTP_FORMAT; /// The date/time format defined in the HTTP specification (RFC 2616), /// which is basically a variant of RFC 1036 with a zero-padded day field. @@ -67,6 +78,8 @@ public: /// Sat, 01 Jan 2005 12:00:00 +0100 /// Sat, 01 Jan 2005 11:00:00 GMT + static const std::string HTTP_REGEX; + static const std::string RFC850_FORMAT; /// The date/time format defined in RFC 850 (obsoleted by RFC 1036). /// @@ -74,6 +87,8 @@ public: /// Saturday, 1-Jan-05 12:00:00 +0100 /// Saturday, 1-Jan-05 11:00:00 GMT + static const std::string RFC850_REGEX; + static const std::string RFC1036_FORMAT; /// The date/time format defined in RFC 1036 (obsoletes RFC 850). /// @@ -81,18 +96,24 @@ public: /// Saturday, 1 Jan 05 12:00:00 +0100 /// Saturday, 1 Jan 05 11:00:00 GMT + static const std::string RFC1036_REGEX; + static const std::string ASCTIME_FORMAT; /// The date/time format produced by the ANSI C asctime() function. /// /// Example: /// Sat Jan 1 12:00:00 2005 + static const std::string ASCTIME_REGEX; + static const std::string SORTABLE_FORMAT; /// A simple, sortable date/time format. /// /// Example: /// 2005-01-01 12:00:00 + static const std::string SORTABLE_REGEX; + // ^(\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d)$ // names used by formatter and parser static const std::string WEEKDAY_NAMES[7]; @@ -100,6 +121,19 @@ public: static const std::string MONTH_NAMES[12]; /// English names of months (January, February, ...). + + static bool hasFormat(const std::string& fmt); + /// Returns true if fmt is a known standard format. + + static bool isValid(const std::string& dateTime); + /// Returns true if dateTime validates against at least one supported format. + + typedef std::unordered_set RegexList; + static RegexList REGEX_LIST; + +private: + typedef std::unordered_set Formatlist; + static Formatlist FORMAT_LIST; }; diff --git a/Foundation/include/Poco/DateTimeParser.h b/Foundation/include/Poco/DateTimeParser.h index 0459babe3..5fa4d36d0 100644 --- a/Foundation/include/Poco/DateTimeParser.h +++ b/Foundation/include/Poco/DateTimeParser.h @@ -53,6 +53,8 @@ class Foundation_API DateTimeParser /// If more strict format validation of date/time strings is required, a regular /// expression could be used for initial validation, before passing the string /// to DateTimeParser. + /// TODO: Correct description + { public: static void parse(const std::string& fmt, const std::string& str, DateTime& dateTime, int& timeZoneDifferential); diff --git a/Foundation/src/DateTime.cpp b/Foundation/src/DateTime.cpp index 5f00b4b13..36ec1c1aa 100644 --- a/Foundation/src/DateTime.cpp +++ b/Foundation/src/DateTime.cpp @@ -14,6 +14,8 @@ #include "Poco/DateTime.h" #include "Poco/Timespan.h" +#include "Poco/Exception.h" +#include "Poco/Format.h" #include #include #include @@ -70,16 +72,28 @@ DateTime::DateTime(int year, int month, int day, int hour, int minute, int secon _millisecond(millisecond), _microsecond(microsecond) { - poco_assert (year >= 0 && year <= 9999); - poco_assert (month >= 1 && month <= 12); - poco_assert (day >= 1 && day <= daysOfMonth(year, month)); - poco_assert (hour >= 0 && hour <= 23); - poco_assert (minute >= 0 && minute <= 59); - poco_assert (second >= 0 && second <= 60); // allow leap seconds - poco_assert (millisecond >= 0 && millisecond <= 999); - poco_assert (microsecond >= 0 && microsecond <= 999); - - _utcTime = toUtcTime(toJulianDay(year, month, day)) + 10*(hour*Timespan::HOURS + minute*Timespan::MINUTES + second*Timespan::SECONDS + millisecond*Timespan::MILLISECONDS + microsecond); + if (isValid(_year, _month, _day, _hour, _minute, _second, _millisecond, _microsecond)) + { + _utcTime = toUtcTime(toJulianDay(year, month, day)) + + 10 * (hour*Timespan::HOURS + minute*Timespan::MINUTES + second*Timespan::SECONDS + + millisecond*Timespan::MILLISECONDS + microsecond); + } + else + { + throw Poco::InvalidArgumentException(Poco::format("Date time is %d-%d-%dT%d:%d:%d.%d.%d\n" + "Valid values:\n" + "0 <= year <= 9999\n" + "1 <= month <= 12\n" + "1 <= day <= %d\n" + "0 <= hour <= 23\n" + "0 <= minute <= 59\n" + "0 <= second <= 59\n" + "0 <= millisecond <= 999\n" + "0 <= microsecond <= 999", + _year, _month, _day, _hour, _minute, + _second, _millisecond, _microsecond, + daysOfMonth(_year, _month))); + } } diff --git a/Foundation/src/DateTimeFormat.cpp b/Foundation/src/DateTimeFormat.cpp index 9f16a392e..da25d6e8c 100644 --- a/Foundation/src/DateTimeFormat.cpp +++ b/Foundation/src/DateTimeFormat.cpp @@ -12,21 +12,92 @@ // +#include #include "Poco/DateTimeFormat.h" +#include "Poco/RegularExpression.h" namespace Poco { +// NOTE: Must be in sync with DateTimeParser::parseTZD +// TODO: Validate timezone strings separately and simplify regex? +#define TIMEZONES_REGEX_PART \ + "(UT)|(GMT)|(BST)|(IST)|(WET)|(WEST)|(CET)|(CEST)|(EET)|(EEST)|(EST)|(MSK)|" \ + "(MSD)|(NST)|(NDT)|(AST)|(ADT)|(EST)|(EDT)|(CST)|(CDT)|(MST)|(MDT)|(PST)|" \ + "(PDT)|(AKST)|(AKDT)|(HST)|(AEST)|(AEDT)|(ACST)|(ACDT)|(AWST)|(AWDT)" const std::string DateTimeFormat::ISO8601_FORMAT("%Y-%m-%dT%H:%M:%S%z"); const std::string DateTimeFormat::ISO8601_FRAC_FORMAT("%Y-%m-%dT%H:%M:%s%z"); +const std::string DateTimeFormat::ISO8601_REGEX("([\\+-]?\\d{4}(?!\\d{2}\\b))" + "((-?)" + "((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-2])(-?[1-7])?|" + "(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))" + "([T\\s]" + "((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24\\:?00)([\\.,]\\d+(?!:))?)?" + "(\\17[0-5]\\d([\\.,]\\d+)?)?([A-I]|[K-Z]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?"); + const std::string DateTimeFormat::RFC822_FORMAT("%w, %e %b %y %H:%M:%S %Z"); + +const std::string DateTimeFormat::RFC822_REGEX("(((Mon)|(Tue)|(Wed)|(Thu)|(Fri)|(Sat)|(Sun)), *)?" + "\\d\\d? +" + "((Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec)) +" + "\\d\\d(\\d\\d)? +" + "\\d\\d:\\d\\d(:\\d\\d)? +" + "(([+\\-]?\\d\\d\\d\\d)|" TIMEZONES_REGEX_PART "|\\w)"); + const std::string DateTimeFormat::RFC1123_FORMAT("%w, %e %b %Y %H:%M:%S %Z"); +const std::string DateTimeFormat::RFC1123_REGEX(DateTimeFormat::RFC822_REGEX); + const std::string DateTimeFormat::HTTP_FORMAT("%w, %d %b %Y %H:%M:%S %Z"); +const std::string DateTimeFormat::HTTP_REGEX("(((Mon)|(Tue)|(Wed)|(Thu)|(Fri)|(Sat)|(Sun)), *)?" + "\\d\\d? +" + "((Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec)) +" + "\\d\\d(\\d\\d)? +\\d\\d:\\d\\d(:\\d\\d)? " + "(" TIMEZONES_REGEX_PART "|)?+" + "(([+\\-]?\\d\\d\\d\\d)?|" TIMEZONES_REGEX_PART "|\\w)"); + const std::string DateTimeFormat::RFC850_FORMAT("%W, %e-%b-%y %H:%M:%S %Z"); +const std::string DateTimeFormat::RFC850_REGEX( + "(((Monday)|(Tuesday)|(Wednesday)|(Thursday)|(Friday)|(Saturday)|(Sunday)|" + "(Mon)|(Tue)|(Wed)|(Thu)|(Fri)|(Sat)|(Sun)), *)?" + "\\d\\d?-((Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec))-" + "\\d\\d(\\d\\d)? +\\d\\d:\\d\\d(:\\d\\d)? " + "(" TIMEZONES_REGEX_PART "|)?+" + "(([+\\-]?\\d\\d\\d\\d)?|" TIMEZONES_REGEX_PART "|\\w)"); + const std::string DateTimeFormat::RFC1036_FORMAT("%W, %e %b %y %H:%M:%S %Z"); +const std::string DateTimeFormat::RFC1036_REGEX( + "(((Monday)|(Tuesday)|(Wednesday)|(Thursday)|(Friday)|(Saturday)|(Sun)), *)?" + "\\d\\d? +" + "((Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec)) +" + "\\d\\d(\\d\\d)? +\\d\\d:\\d\\d(:\\d\\d)? " + "(" TIMEZONES_REGEX_PART "|)?+" + "(([+\\-]?\\d\\d\\d\\d)?|" TIMEZONES_REGEX_PART "|\\w)"); + +// It would perhaps be useful to add RFC 2822 (successor of 822) +// https://www.rfc-editor.org/rfc/rfc2822#section-3.3 + const std::string DateTimeFormat::ASCTIME_FORMAT("%w %b %f %H:%M:%S %Y"); +const std::string DateTimeFormat::ASCTIME_REGEX("((Mon)|(Tue)|(Wed)|(Thu)|(Fri)|(Sat)|(Sun)) +" + "((Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec)) +" + "\\d\\d? +\\d\\d:\\d\\d:\\d\\d +(\\d\\d\\d\\d)"); + const std::string DateTimeFormat::SORTABLE_FORMAT("%Y-%m-%d %H:%M:%S"); +const std::string DateTimeFormat::SORTABLE_REGEX("(\\d\\d\\d\\d-\\d\\d-\\d\\d \\d\\d:\\d\\d:\\d\\d)"); + + +DateTimeFormat::Formatlist DateTimeFormat::FORMAT_LIST( +{ + DateTimeFormat::ISO8601_FORMAT, + DateTimeFormat::ISO8601_FRAC_FORMAT, + DateTimeFormat::RFC822_FORMAT, + DateTimeFormat::RFC1123_FORMAT, + DateTimeFormat::HTTP_FORMAT, + DateTimeFormat::RFC850_FORMAT, + DateTimeFormat::RFC1036_FORMAT, + DateTimeFormat::ASCTIME_FORMAT, + DateTimeFormat::SORTABLE_FORMAT +}); const std::string DateTimeFormat::WEEKDAY_NAMES[] = @@ -58,4 +129,33 @@ const std::string DateTimeFormat::MONTH_NAMES[] = }; +DateTimeFormat::RegexList DateTimeFormat::REGEX_LIST = +{ + &DateTimeFormat::ISO8601_REGEX, + &DateTimeFormat::RFC822_REGEX, + &DateTimeFormat::RFC1123_REGEX, + &DateTimeFormat::HTTP_REGEX, + &DateTimeFormat::RFC850_REGEX, + &DateTimeFormat::RFC1036_REGEX, + &DateTimeFormat::ASCTIME_REGEX, + &DateTimeFormat::SORTABLE_REGEX +}; + + +bool DateTimeFormat::hasFormat(const std::string& fmt) +{ + return FORMAT_LIST.find(fmt) != FORMAT_LIST.end(); +} + + +bool DateTimeFormat::isValid(const std::string& dateTime) +{ + for (const auto& f : REGEX_LIST) + { + if (RegularExpression(*f).match(dateTime)) return true; + } + return false; +} + + } // namespace Poco diff --git a/Foundation/src/DateTimeParser.cpp b/Foundation/src/DateTimeParser.cpp index c9eba1e7e..383f85c8d 100644 --- a/Foundation/src/DateTimeParser.cpp +++ b/Foundation/src/DateTimeParser.cpp @@ -44,8 +44,8 @@ namespace Poco { void DateTimeParser::parse(const std::string& fmt, const std::string& str, DateTime& dateTime, int& timeZoneDifferential) { - if (fmt.empty() || str.empty()) - throw SyntaxException("Empty string."); + if (fmt.empty() || str.empty() || (DateTimeFormat::hasFormat(fmt) && !DateTimeFormat::isValid(str))) + throw SyntaxException("Invalid DateTimeString:" + str); int year = 0; int month = 0; @@ -57,6 +57,9 @@ void DateTimeParser::parse(const std::string& fmt, const std::string& str, DateT int micros = 0; int tzd = 0; + bool dayParsed = false; + bool monthParsed = false; + std::string::const_iterator it = str.begin(); std::string::const_iterator end = str.end(); std::string::const_iterator itf = fmt.begin(); @@ -78,18 +81,21 @@ void DateTimeParser::parse(const std::string& fmt, const std::string& str, DateT case 'b': case 'B': month = parseMonth(it, end); + monthParsed = true; break; case 'd': case 'e': case 'f': SKIP_JUNK(); PARSE_NUMBER_N(day, 2); + dayParsed = true; break; case 'm': case 'n': case 'o': SKIP_JUNK(); PARSE_NUMBER_N(month, 2); + monthParsed = true; break; case 'y': SKIP_JUNK(); @@ -167,12 +173,13 @@ void DateTimeParser::parse(const std::string& fmt, const std::string& str, DateT } else ++itf; } - if (month == 0) month = 1; - if (day == 0) day = 1; + if (!monthParsed) month = 1; + if (!dayParsed) day = 1; if (DateTime::isValid(year, month, day, hour, minute, second, millis, micros)) dateTime.assign(year, month, day, hour, minute, second, millis, micros); else throw SyntaxException("date/time component out of range"); + timeZoneDifferential = tzd; } @@ -191,7 +198,7 @@ bool DateTimeParser::tryParse(const std::string& fmt, const std::string& str, Da { parse(fmt, str, dateTime, timeZoneDifferential); } - catch (Exception&) + catch (const Exception&) { return false; } @@ -245,53 +252,55 @@ int DateTimeParser::parseTZD(std::string::const_iterator& it, const std::string: { const char* designator; int timeZoneDifferential; + bool allowsDifference; }; - static Zone zones[] = + static const Zone zones[] = { - {"Z", 0}, - {"UT", 0}, - {"GMT", 0}, - {"BST", 1*3600}, - {"IST", 1*3600}, - {"WET", 0}, - {"WEST", 1*3600}, - {"CET", 1*3600}, - {"CEST", 2*3600}, - {"EET", 2*3600}, - {"EEST", 3*3600}, - {"MSK", 3*3600}, - {"MSD", 4*3600}, - {"NST", -3*3600-1800}, - {"NDT", -2*3600-1800}, - {"AST", -4*3600}, - {"ADT", -3*3600}, - {"EST", -5*3600}, - {"EDT", -4*3600}, - {"CST", -6*3600}, - {"CDT", -5*3600}, - {"MST", -7*3600}, - {"MDT", -6*3600}, - {"PST", -8*3600}, - {"PDT", -7*3600}, - {"AKST", -9*3600}, - {"AKDT", -8*3600}, - {"HST", -10*3600}, - {"AEST", 10*3600}, - {"AEDT", 11*3600}, - {"ACST", 9*3600+1800}, - {"ACDT", 10*3600+1800}, - {"AWST", 8*3600}, - {"AWDT", 9*3600} + {"Z", 0, true}, + {"UT", 0, true}, + {"GMT", 0, true}, + {"BST", 1*3600, false}, + {"IST", 1*3600, false}, + {"WET", 0, false}, + {"WEST", 1*3600, false}, + {"CET", 1*3600, false}, + {"CEST", 2*3600, false}, + {"EET", 2*3600, false}, + {"EEST", 3*3600, false}, + {"MSK", 3*3600, false}, + {"MSD", 4*3600, false}, + {"NST", -3*3600-1800, false}, + {"NDT", -2*3600-1800, false}, + {"AST", -4*3600, false}, + {"ADT", -3*3600, false}, + {"EST", -5*3600, false}, + {"EDT", -4*3600, false}, + {"CST", -6*3600, false}, + {"CDT", -5*3600, false}, + {"MST", -7*3600, false}, + {"MDT", -6*3600, false}, + {"PST", -8*3600, false}, + {"PDT", -7*3600, false}, + {"AKST", -9*3600, false}, + {"AKDT", -8*3600, false}, + {"HST", -10*3600, false}, + {"AEST", 10*3600, false}, + {"AEDT", 11*3600, false}, + {"ACST", 9*3600+1800, false}, + {"ACDT", 10*3600+1800, false}, + {"AWST", 8*3600, false}, + {"AWDT", 9*3600, false} }; int tzd = 0; while (it != end && Ascii::isSpace(*it)) ++it; + const Zone* zone = nullptr; + std::string designator; if (it != end) { if (Ascii::isAlpha(*it)) { - std::string designator; designator += *it++; if (it != end && Ascii::isAlpha(*it)) designator += *it++; if (it != end && Ascii::isAlpha(*it)) designator += *it++; @@ -300,20 +309,33 @@ int DateTimeParser::parseTZD(std::string::const_iterator& it, const std::string: { if (designator == zones[i].designator) { - tzd = zones[i].timeZoneDifferential; + zone = &(zones[i]); + tzd = zone->timeZoneDifferential; break; } } } + if (!designator.empty() && !zone) + throw SyntaxException("Unknown timezone designator "s + designator); + if (it != end && (*it == '+' || *it == '-')) { + // Time difference is allowed only for some timezone designators in general + // Some formats prevent even that with regular expression + if (zone && !zone->allowsDifference) + throw SyntaxException("Timezone does not allow difference "s + zone->designator); + int sign = *it == '+' ? 1 : -1; ++it; int hours = 0; PARSE_NUMBER_N(hours, 2); + if (hours < 0 || hours > 23) + throw SyntaxException("Timezone difference hours out of range"); if (it != end && *it == ':') ++it; int minutes = 0; PARSE_NUMBER_N(minutes, 2); + if (minutes < 0 || minutes > 59) + throw SyntaxException("Timezone difference minutes out of range"); tzd += sign*(hours*3600 + minutes*60); } } diff --git a/Foundation/src/RegularExpression.cpp b/Foundation/src/RegularExpression.cpp index d07628328..0e8c64f43 100644 --- a/Foundation/src/RegularExpression.cpp +++ b/Foundation/src/RegularExpression.cpp @@ -64,7 +64,7 @@ namespace namespace Poco { -RegularExpression::RegularExpression(const std::string& pattern, int options, bool /*study*/): _pcre(0) +RegularExpression::RegularExpression(const std::string& pattern, int options, bool /*study*/): _pcre(nullptr) { int errorCode; PCRE2_SIZE errorOffset; diff --git a/Foundation/testsuite/src/DateTimeParserTest.cpp b/Foundation/testsuite/src/DateTimeParserTest.cpp index 5a855f661..a6d6aba3b 100644 --- a/Foundation/testsuite/src/DateTimeParserTest.cpp +++ b/Foundation/testsuite/src/DateTimeParserTest.cpp @@ -24,6 +24,7 @@ using Poco::DateTimeParser; using Poco::Timestamp; using Poco::SyntaxException; +using namespace std::string_literals; DateTimeParserTest::DateTimeParserTest(const std::string& name): CppUnit::TestCase(name) { @@ -46,6 +47,17 @@ void DateTimeParserTest::testISO8601() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == 0); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12.30:00Z", tzd); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-00-08T12:30:00Z", tzd); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-00T12:30:00Z", tzd); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-00T33:30:00Z", tzd); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-00T12:80:00Z", tzd); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-00T12:30:90Z", tzd); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-0012:30:90Z", tzd); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-00X12:30:90Z", tzd); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "200501-00T12:30:90Z", tzd); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-0100T12:30:90Z", tzd); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005_01+00T12:30:90Z", tzd); dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FORMAT, "2005-01-08T12:30:00+01:00", tzd); assertTrue (dt.year() == 2005); @@ -55,6 +67,9 @@ void DateTimeParserTest::testISO8601() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == 3600); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-8T12:30:00+01:00", tzd); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00+41:00", tzd); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00+01:70", tzd); dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FORMAT, "2005-01-08T12:30:00-01:00", tzd); assertTrue (dt.year() == 2005); @@ -64,6 +79,7 @@ void DateTimeParserTest::testISO8601() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == -3600); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-0812:30:00-01:00", tzd); dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FORMAT, "2005-01-08T12:30:00", tzd); assertTrue (dt.year() == 2005); @@ -73,6 +89,7 @@ void DateTimeParserTest::testISO8601() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == 0); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:0", tzd); dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FORMAT, "2005-01-08", tzd); assertTrue (dt.year() == 2005); @@ -82,6 +99,7 @@ void DateTimeParserTest::testISO8601() assertTrue (dt.minute() == 0); assertTrue (dt.second() == 0); assertTrue (tzd == 0); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-8", tzd); } @@ -98,6 +116,7 @@ void DateTimeParserTest::testISO8601Frac() assertTrue (dt.millisecond() == 0); assertTrue (dt.microsecond() == 0); assertTrue (tzd == 0); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-1-08T12:30:00Z", tzd); dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00+01:00", tzd); assertTrue (dt.year() == 2005); @@ -109,6 +128,7 @@ void DateTimeParserTest::testISO8601Frac() assertTrue (dt.millisecond() == 0); assertTrue (dt.microsecond() == 0); assertTrue (tzd == 3600); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08Z12:30:00+01:00", tzd); dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00-01:00", tzd); assertTrue (dt.year() == 2005); @@ -120,6 +140,7 @@ void DateTimeParserTest::testISO8601Frac() assertTrue (dt.millisecond() == 0); assertTrue (dt.microsecond() == 0); assertTrue (tzd == -3600); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00-01.00", tzd); dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00", tzd); assertTrue (dt.year() == 2005); @@ -131,6 +152,7 @@ void DateTimeParserTest::testISO8601Frac() assertTrue (dt.millisecond() == 0); assertTrue (dt.microsecond() == 0); assertTrue (tzd == 0); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12;30:00", tzd); dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08", tzd); assertTrue (dt.year() == 2005); @@ -142,6 +164,7 @@ void DateTimeParserTest::testISO8601Frac() assertTrue (dt.millisecond() == 0); assertTrue (dt.microsecond() == 0); assertTrue (tzd == 0); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01+08", tzd); dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00.1Z", tzd); assertTrue (dt.year() == 2005); @@ -153,6 +176,7 @@ void DateTimeParserTest::testISO8601Frac() assertTrue (dt.millisecond() == 100); assertTrue (dt.microsecond() == 0); assertTrue (tzd == 0); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00.1J", tzd); dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00.123+01:00", tzd); assertTrue (dt.year() == 2005); @@ -164,6 +188,7 @@ void DateTimeParserTest::testISO8601Frac() assertTrue (dt.millisecond() == 123); assertTrue (dt.microsecond() == 0); assertTrue (tzd == 3600); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00.123*01:00", tzd); dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00.12345-01:00", tzd); assertTrue (dt.year() == 2005); @@ -175,6 +200,7 @@ void DateTimeParserTest::testISO8601Frac() assertTrue (dt.millisecond() == 123); assertTrue (dt.microsecond() == 450); assertTrue (tzd == -3600); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01+08T12:30:00.12345-01:00", tzd); dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2010-09-23T16:17:01.2817002+02:00", tzd); assertTrue (dt.year() == 2010); @@ -186,6 +212,7 @@ void DateTimeParserTest::testISO8601Frac() assertTrue (dt.millisecond() == 281); assertTrue (dt.microsecond() == 700); assertTrue (tzd == 7200); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "201009-23T16:17:01.2817002+02:00", tzd); dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00", tzd); assertTrue (dt.year() == 2005); @@ -197,6 +224,7 @@ void DateTimeParserTest::testISO8601Frac() assertTrue (dt.millisecond() == 0); assertTrue (dt.microsecond() == 0); assertTrue (tzd == 0); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:0", tzd); dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00.123456", tzd); assertTrue (dt.year() == 2005); @@ -208,6 +236,7 @@ void DateTimeParserTest::testISO8601Frac() assertTrue (dt.millisecond() == 123); assertTrue (dt.microsecond() == 456); assertTrue (tzd == 0); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "005-01-08T12:30:00.123456", tzd); dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08", tzd); assertTrue (dt.year() == 2005); @@ -219,6 +248,10 @@ void DateTimeParserTest::testISO8601Frac() assertTrue (dt.millisecond() == 0); assertTrue (dt.microsecond() == 0); assertTrue (tzd == 0); + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-0", tzd); + + testBad(DateTimeFormat::ISO8601_FRAC_FORMAT, "jnghjgnbcfjb", tzd); + } @@ -233,6 +266,7 @@ void DateTimeParserTest::testRFC822() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == 0); + testBad(DateTimeFormat::RFC822_FORMAT, "at, 8 Jan 05 12:30:00 GMT", tzd); dt = DateTimeParser::parse(DateTimeFormat::RFC822_FORMAT, "Sat, 8 Jan 05 12:30:00 +0100", tzd); assertTrue (dt.year() == 2005); @@ -242,6 +276,7 @@ void DateTimeParserTest::testRFC822() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == 3600); + testBad(DateTimeFormat::RFC822_FORMAT, "Sat, x Jan 05 12:30:00 +0100", tzd); dt = DateTimeParser::parse(DateTimeFormat::RFC822_FORMAT, "Sat, 8 Jan 05 12:30:00 -0100", tzd); assertTrue (dt.year() == 2005); @@ -251,6 +286,7 @@ void DateTimeParserTest::testRFC822() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == -3600); + testBad(DateTimeFormat::RFC822_FORMAT, "Sat, 8 Jan 05 12:30:00 *0100", tzd); dt = DateTimeParser::parse(DateTimeFormat::RFC822_FORMAT, "Tue, 18 Jan 05 12:30:00 CET", tzd); assertTrue (dt.year() == 2005); @@ -260,6 +296,7 @@ void DateTimeParserTest::testRFC822() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == 3600); + testBad(DateTimeFormat::RFC822_FORMAT, "Tue, 18 Jan 05 12:30:00 abc", tzd); dt = DateTimeParser::parse(DateTimeFormat::RFC822_FORMAT, "Wed, 12 Sep 73 02:01:12 CEST", tzd); assertTrue (dt.year() == 1973); @@ -269,6 +306,7 @@ void DateTimeParserTest::testRFC822() assertTrue (dt.minute() == 1); assertTrue (dt.second() == 12); assertTrue (tzd == 7200); + testBad(DateTimeFormat::RFC822_FORMAT, "Wed, 12 Sep 73 02:01:2 CST", tzd); dt = DateTimeParser::parse(DateTimeFormat::RFC822_FORMAT, "12 Sep 73 02:01:12 CEST", tzd); assertTrue (dt.year() == 1973); @@ -278,6 +316,8 @@ void DateTimeParserTest::testRFC822() assertTrue (dt.minute() == 1); assertTrue (dt.second() == 12); assertTrue (tzd == 7200); + + testBad(DateTimeFormat::RFC822_FORMAT, "12 Sep 73 02.01:12 EST", tzd); } @@ -292,6 +332,7 @@ void DateTimeParserTest::testRFC1123() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == 0); + testBad(DateTimeFormat::RFC1123_FORMAT, "Sat, 8 Jan 2005 12:30:00 GPX", tzd); dt = DateTimeParser::parse(DateTimeFormat::RFC1123_FORMAT, "Sat, 8 Jan 2005 12:30:00 +0100", tzd); assertTrue (dt.year() == 2005); @@ -301,6 +342,7 @@ void DateTimeParserTest::testRFC1123() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == 3600); + testBad(DateTimeFormat::RFC1123_FORMAT, "Sat, 8 Jan 2005 xy:30:00 +0100", tzd); dt = DateTimeParser::parse(DateTimeFormat::RFC1123_FORMAT, "Sat, 8 Jan 2005 12:30:00 -0100", tzd); assertTrue (dt.year() == 2005); @@ -310,6 +352,7 @@ void DateTimeParserTest::testRFC1123() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == -3600); + testBad(DateTimeFormat::RFC1123_FORMAT, "Sat, 8 Jan 205 12:30:00 -0100", tzd); dt = DateTimeParser::parse(DateTimeFormat::RFC1123_FORMAT, "Sun, 20 Jul 1969 16:17:30 EDT", tzd); assertTrue (dt.year() == 1969); @@ -319,15 +362,41 @@ void DateTimeParserTest::testRFC1123() assertTrue (dt.minute() == 17); assertTrue (dt.second() == 30); assertTrue (tzd == -14400); + testBad(DateTimeFormat::RFC1123_FORMAT, "Hue, 18 Jan 2005 12:30:00 EDT", tzd); - dt = DateTimeParser::parse(DateTimeFormat::RFC1123_FORMAT, "Sun, 20 Jul 1969 16:17:30 GMT+01:00", tzd); - assertTrue (dt.year() == 1969); - assertTrue (dt.month() == 7); - assertTrue (dt.day() == 20); - assertTrue (dt.hour() == 16); - assertTrue (dt.minute() == 17); - assertTrue (dt.second() == 30); - assertTrue (tzd == 3600); + testBad(DateTimeFormat::RFC1123_FORMAT, "Sun, 20 Jul 1969 16:17:30 GMT+01:00", tzd); + testBad(DateTimeFormat::RFC1123_FORMAT, "Sun, 20 Jul 1969 16:17:30 GMT+01?00", tzd); + + dt = DateTimeParser::parse(DateTimeFormat::RFC1123_FORMAT, "Tue, 18 Jan 2005 12:30:00 CDT", tzd); + assertTrue (dt.year() == 2005); + assertTrue (dt.month() == 1); + assertTrue (dt.day() == 18); + assertTrue (dt.hour() == 12); + assertTrue (dt.minute() == 30); + assertTrue (dt.second() == 0); + assertTrue (tzd == -18000); + testBad(DateTimeFormat::RFC1123_FORMAT, "Hue, 18 Jan 2005 12:30:00 CDT", tzd); + + dt = DateTimeParser::parse(DateTimeFormat::RFC1123_FORMAT, "Wed, 12 Sep 1973 02:01:12 CST", tzd); + assertTrue (dt.year() == 1973); + assertTrue (dt.month() == 9); + assertTrue (dt.day() == 12); + assertTrue (dt.hour() == 2); + assertTrue (dt.minute() == 1); + assertTrue (dt.second() == 12); + assertTrue (tzd == -21600); + testBad(DateTimeFormat::RFC1123_FORMAT, "Wed, 12 Sp 1973 02:01:12 CST", tzd); + + dt = DateTimeParser::parse(DateTimeFormat::RFC1123_FORMAT, "12 Sep 1973 02:01:12 EST", tzd); + assertTrue (dt.year() == 1973); + assertTrue (dt.month() == 9); + assertTrue (dt.day() == 12); + assertTrue (dt.hour() == 2); + assertTrue (dt.minute() == 1); + assertTrue (dt.second() == 12); + assertTrue (tzd == -18000); + testBad(DateTimeFormat::RFC1123_FORMAT, "12 Sep 193 02:01:12 EST", tzd); + testBad(DateTimeFormat::RFC1123_FORMAT, "12 Sep 1973 02:01:12 ABC", tzd); } @@ -342,6 +411,7 @@ void DateTimeParserTest::testHTTP() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == 0); + testBad(DateTimeFormat::HTTP_FORMAT, "Sat, 08 Jn 2005 12:30:00 GMT", tzd); dt = DateTimeParser::parse(DateTimeFormat::HTTP_FORMAT, "Sat, 08 Jan 2005 12:30:00 +0100", tzd); assertTrue (dt.year() == 2005); @@ -351,6 +421,7 @@ void DateTimeParserTest::testHTTP() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == 3600); + testBad(DateTimeFormat::HTTP_FORMAT, "Sat, 08 Jan 2005 12:30:00 j0100", tzd); dt = DateTimeParser::parse(DateTimeFormat::HTTP_FORMAT, "Sat, 08 Jan 2005 12:30:00 -0100", tzd); assertTrue (dt.year() == 2005); @@ -360,6 +431,7 @@ void DateTimeParserTest::testHTTP() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == -3600); + testBad(DateTimeFormat::HTTP_FORMAT, "Sat 08 Jan 2005 12:30:00 -0100", tzd); } @@ -374,6 +446,7 @@ void DateTimeParserTest::testRFC850() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == 0); + testBad(DateTimeFormat::RFC850_FORMAT, "Saturday, 8-Jan 05 12:30:00 GMT", tzd); dt = DateTimeParser::parse(DateTimeFormat::RFC850_FORMAT, "Saturday, 8-Jan-05 12:30:00 +0100", tzd); assertTrue (dt.year() == 2005); @@ -383,6 +456,7 @@ void DateTimeParserTest::testRFC850() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == 3600); + testBad(DateTimeFormat::RFC850_FORMAT, "Saturday, 8+Jan-05 12:30:00 +0100", tzd); dt = DateTimeParser::parse(DateTimeFormat::RFC850_FORMAT, "Saturday, 8-Jan-05 12:30:00 -0100", tzd); assertTrue (dt.year() == 2005); @@ -392,6 +466,7 @@ void DateTimeParserTest::testRFC850() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == -3600); + testBad(DateTimeFormat::RFC850_FORMAT, "Saturday 8-Jan-05 12:30:00 -0100", tzd); dt = DateTimeParser::parse(DateTimeFormat::RFC850_FORMAT, "Wed, 12-Sep-73 02:01:12 CEST", tzd); assertTrue (dt.year() == 1973); @@ -401,6 +476,7 @@ void DateTimeParserTest::testRFC850() assertTrue (dt.minute() == 1); assertTrue (dt.second() == 12); assertTrue (tzd == 7200); + testBad(DateTimeFormat::RFC850_FORMAT, "Wed, 12-pep-73 02:01:12 CST", tzd); } @@ -415,6 +491,7 @@ void DateTimeParserTest::testRFC1036() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == 0); + testBad(DateTimeFormat::RFC1036_FORMAT, "Saturday, 8 Jan 0512:30:00 GMT", tzd); dt = DateTimeParser::parse(DateTimeFormat::RFC1036_FORMAT, "Saturday, 8 Jan 05 12:30:00 +0100", tzd); assertTrue (dt.year() == 2005); @@ -424,6 +501,7 @@ void DateTimeParserTest::testRFC1036() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == 3600); + testBad(DateTimeFormat::RFC1036_FORMAT, "Saturday, 8 Jan 051 12:30:00 +0100", tzd); dt = DateTimeParser::parse(DateTimeFormat::RFC1036_FORMAT, "Saturday, 8 Jan 05 12:30:00 -0100", tzd); assertTrue (dt.year() == 2005); @@ -433,6 +511,7 @@ void DateTimeParserTest::testRFC1036() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == -3600); + testBad(DateTimeFormat::RFC1036_FORMAT, "Saturday, 8 Jan 05 12:30:00 -0100x", tzd); } @@ -447,6 +526,7 @@ void DateTimeParserTest::testASCTIME() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == 0); + testBad(DateTimeFormat::ASCTIME_FORMAT, "Bat Jan 8 12:30:00 2005", tzd); } @@ -461,6 +541,7 @@ void DateTimeParserTest::testSORTABLE() assertTrue (dt.minute() == 30); assertTrue (dt.second() == 0); assertTrue (tzd == 0); + testBad(DateTimeFormat::SORTABLE_FORMAT, "2005-01-08 12:30;00", tzd); dt = DateTimeParser::parse(DateTimeFormat::SORTABLE_FORMAT, "2005-01-08", tzd); assertTrue (dt.year() == 2005); @@ -470,6 +551,7 @@ void DateTimeParserTest::testSORTABLE() assertTrue (dt.minute() == 0); assertTrue (dt.second() == 0); assertTrue (tzd == 0); + testBad(DateTimeFormat::SORTABLE_FORMAT, "2005+01-08", tzd); } @@ -758,6 +840,18 @@ void DateTimeParserTest::testParseDayOfWeek() } +void DateTimeParserTest::testBad(const std::string& fmt, const std::string& dateStr, int tzd) +{ + try + { + DateTime dt; + DateTimeParser::parse(fmt, dateStr, dt, tzd); + fail ("must fail: "s + fmt + ", " + dateStr); + } + catch(const Poco::Exception&) { } +} + + void DateTimeParserTest::setUp() { } diff --git a/Foundation/testsuite/src/DateTimeParserTest.h b/Foundation/testsuite/src/DateTimeParserTest.h index 258428223..ea0b83e90 100644 --- a/Foundation/testsuite/src/DateTimeParserTest.h +++ b/Foundation/testsuite/src/DateTimeParserTest.h @@ -44,6 +44,7 @@ public: static CppUnit::Test* suite(); private: + void testBad(const std::string& fmt, const std::string& dateStr, int tzd); }; diff --git a/Foundation/testsuite/src/RegularExpressionTest.cpp b/Foundation/testsuite/src/RegularExpressionTest.cpp index 34a336a84..0e4061f41 100644 --- a/Foundation/testsuite/src/RegularExpressionTest.cpp +++ b/Foundation/testsuite/src/RegularExpressionTest.cpp @@ -136,6 +136,15 @@ void RegularExpressionTest::testMatch6() } +void RegularExpressionTest::testMatchDateTime() +{ + RegularExpression re( + R"(([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24\:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?)" + ); + assert (re.match("2005-01-08T12:30:00Z")); +} + + void RegularExpressionTest::testExtract() { RegularExpression re("[0-9]+"); @@ -295,6 +304,7 @@ CppUnit::Test* RegularExpressionTest::suite() CppUnit_addTest(pSuite, RegularExpressionTest, testMatch4); CppUnit_addTest(pSuite, RegularExpressionTest, testMatch5); CppUnit_addTest(pSuite, RegularExpressionTest, testMatch6); + CppUnit_addTest(pSuite, RegularExpressionTest, testMatchDateTime); CppUnit_addTest(pSuite, RegularExpressionTest, testExtract); CppUnit_addTest(pSuite, RegularExpressionTest, testSplit1); CppUnit_addTest(pSuite, RegularExpressionTest, testSplit2); diff --git a/Foundation/testsuite/src/RegularExpressionTest.h b/Foundation/testsuite/src/RegularExpressionTest.h index d2151780b..d9d47e854 100644 --- a/Foundation/testsuite/src/RegularExpressionTest.h +++ b/Foundation/testsuite/src/RegularExpressionTest.h @@ -31,6 +31,7 @@ public: void testMatch4(); void testMatch5(); void testMatch6(); + void testMatchDateTime(); void testExtract(); void testSplit1(); void testSplit2(); From ec3c0f4f989ee8f1c8bd576f6f0a5eebe4916a48 Mon Sep 17 00:00:00 2001 From: Joerg-Christian Boehme Date: Mon, 11 Dec 2023 20:34:03 +0100 Subject: [PATCH 241/395] Github Action for Android NDK (#4321) * Add first android git hub action to try * Set up android toolchain * Add second android ndk build * add some default settings for android * Add a third android build for armv7 * fix(OpMsgMessage): android v7a compile --------- Co-authored-by: Aleksandar Fabijanic --- .github/workflows/ci.yml | 36 +++++++++++++++++++++++++++++++++--- MongoDB/src/OpMsgMessage.cpp | 8 ++++---- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 20308718c..ed5a4b6ce 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,6 +14,36 @@ concurrency: cancel-in-progress: true jobs: + android-arm64-v8a-ndk-latest-cmake: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - uses: nttld/setup-ndk@v1 + with: + ndk-version: r25c + add-to-path: true + - run: cmake -S$GITHUB_WORKSPACE -B$HOME/android-build -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-21 -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake && cmake --build $HOME/android-build --target all + + android-arm64-v8a-ndk-cmake: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - uses: nttld/setup-ndk@v1 + with: + ndk-version: r25c + add-to-path: true + - run: cmake -S$GITHUB_WORKSPACE -B$HOME/android-build -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-21 -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake && cmake --build $HOME/android-build --target all + + android-armeabi-v7a-ndk-cmake: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - uses: nttld/setup-ndk@v1 + with: + ndk-version: r25c + add-to-path: true + - run: cmake -S$GITHUB_WORKSPACE -B$HOME/android-build -DANDROID_ABI=armeabi-v7a -DANDROID_PLATFORM=android-21 -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake && cmake --build $HOME/android-build --target all + linux-gcc-make: runs-on: ubuntu-22.04 steps: @@ -114,7 +144,7 @@ jobs: steps: - uses: actions/checkout@v3 - run: sudo apt -y update && sudo apt -y install cmake ninja-build libssl-dev unixodbc-dev libmysqlclient-dev redis-server - - run: cmake -H. -Bcmake-build -GNinja -DENABLE_PDF=OFF -DENABLE_TESTS=ON && cmake --build cmake-build --target all + - run: cmake -S. -Bcmake-build -GNinja -DENABLE_PDF=OFF -DENABLE_TESTS=ON && cmake --build cmake-build --target all - uses: ./.github/actions/retry-action with: timeout_minutes: 90 @@ -193,7 +223,7 @@ jobs: steps: - uses: actions/checkout@v3 - run: brew install openssl@1.1 mysql-client unixodbc libpq - - run: cmake -H. -Bcmake-build -DENABLE_PDF=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@1.1 -DMYSQL_ROOT_DIR=/usr/local/opt/mysql-client && cmake --build cmake-build --target all + - run: cmake -S. -Bcmake-build -DENABLE_PDF=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@1.1 -DMYSQL_ROOT_DIR=/usr/local/opt/mysql-client && cmake --build cmake-build --target all - uses: ./.github/actions/retry-action with: timeout_minutes: 90 @@ -218,7 +248,7 @@ jobs: steps: - uses: actions/checkout@v3 - run: brew install openssl@3 mysql-client unixodbc libpq - - run: cmake -H. -Bcmake-build -DENABLE_PDF=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@3 -DMYSQL_ROOT_DIR=/usr/local/opt/mysql-client && cmake --build cmake-build --target all + - run: cmake -S. -Bcmake-build -DENABLE_PDF=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@3 -DMYSQL_ROOT_DIR=/usr/local/opt/mysql-client && cmake --build cmake-build --target all - uses: ./.github/actions/retry-action with: timeout_minutes: 90 diff --git a/MongoDB/src/OpMsgMessage.cpp b/MongoDB/src/OpMsgMessage.cpp index 2b55772ca..0f216393f 100644 --- a/MongoDB/src/OpMsgMessage.cpp +++ b/MongoDB/src/OpMsgMessage.cpp @@ -36,7 +36,7 @@ const std::string OpMsgMessage::CMD_COUNT { "count" }; const std::string OpMsgMessage::CMD_DISTINCT { "distinct" }; const std::string OpMsgMessage::CMD_MAP_REDUCE { "mapReduce" }; -// Replication and administration +// Replication and administration const std::string OpMsgMessage::CMD_HELLO { "hello" }; const std::string OpMsgMessage::CMD_REPL_SET_GET_STATUS { "replSetGetStatus" }; const std::string OpMsgMessage::CMD_REPL_SET_GET_CONFIG { "replSetGetConfig" }; @@ -104,7 +104,7 @@ void OpMsgMessage::setCommandName(const std::string& command) // IMPORTANT: Command name must be first if (_collectionName.empty()) { - // Collection is not specified. It is assumed that this particular command does + // Collection is not specified. It is assumed that this particular command does // not need it. _body.add(_commandName, Int32(1)); } @@ -280,7 +280,7 @@ void OpMsgMessage::read(std::istream& istr) poco_assert_dbg(_header.opCode() == _header.OP_MSG); - const std::streamsize remainingSize {_header.getMessageLength() - _header.MSG_HEADER_SIZE }; + const std::streamsize remainingSize { static_cast(_header.getMessageLength() - _header.MSG_HEADER_SIZE) }; message.reserve(remainingSize); #if POCO_MONGODB_DUMP @@ -289,7 +289,7 @@ void OpMsgMessage::read(std::istream& istr) << _header.opCode() << " " << _header.getRequestID() << " " << _header.responseTo() << std::endl; #endif - + reader.readRaw(remainingSize, message); #if POCO_MONGODB_DUMP From 54f0feb2821ef44046ae36521c9dc36e068662f9 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Tue, 12 Dec 2023 11:07:02 +0100 Subject: [PATCH 242/395] fix(ci): Partially revert "add sendfile method for streamsocket (#4007)" This reverts commit 24b7122f432631458719ef757c79f198f3c705a8. --- .github/workflows/ci.yml | 2 +- CppParser/testsuite/TestSuite.progen | 2 +- Crypto/Crypto.progen | 2 +- Crypto/samples/genrsakey/genrsakey.progen | 2 +- Crypto/testsuite/TestSuite.progen | 2 +- Data/MySQL/testsuite/TestSuite.progen | 2 +- Data/ODBC/testsuite/TestSuite.progen | 2 +- Data/PostgreSQL/testsuite/TestSuite.progen | 2 +- Data/SQLite/testsuite/TestSuite.progen | 2 +- Data/samples/Binding/Binding.progen | 2 +- Data/samples/RecordSet/RecordSet.progen | 2 +- Data/samples/RowFormatter/RowFormatter.progen | 2 +- Data/samples/Tuple/Tuple.progen | 2 +- Data/samples/TypeHandler/TypeHandler.progen | 2 +- Data/samples/WebNotifier/WebNotifier.progen | 2 +- Data/testsuite/TestSuite.progen | 2 +- Encodings/Compiler/Compiler.progen | 2 +- Encodings/samples/TextConverter/TextConverter.progen | 2 +- Foundation/samples/ActiveMethod/ActiveMethod.progen | 2 +- Foundation/samples/Activity/Activity.progen | 2 +- Foundation/samples/BinaryReaderWriter/BinaryReaderWriter.progen | 2 +- Foundation/samples/DateTime/DateTime.progen | 2 +- .../samples/LineEndingConverter/LineEndingConverter.progen | 2 +- Foundation/samples/LogRotation/LogRotation.progen | 2 +- Foundation/samples/Logger/Logger.progen | 2 +- Foundation/samples/NotificationQueue/NotificationQueue.progen | 2 +- Foundation/samples/StringTokenizer/StringTokenizer.progen | 2 +- Foundation/samples/Timer/Timer.progen | 2 +- Foundation/samples/URI/URI.progen | 2 +- Foundation/samples/base64decode/base64decode.progen | 2 +- Foundation/samples/base64encode/base64encode.progen | 2 +- Foundation/samples/deflate/deflate.progen | 2 +- Foundation/samples/dir/dir.progen | 2 +- Foundation/samples/grep/grep.progen | 2 +- Foundation/samples/hmacmd5/hmacmd5.progen | 2 +- Foundation/samples/inflate/inflate.progen | 2 +- Foundation/samples/md5/md5.progen | 2 +- Foundation/samples/uuidgen/uuidgen.progen | 2 +- JSON/samples/Benchmark/Benchmark.progen | 2 +- JSON/testsuite/TestSuite.progen | 2 +- JWT/testsuite/TestSuite.progen | 2 +- MongoDB/samples/SQLToMongo/SQLToMongo.progen | 2 +- MongoDB/testsuite/TestSuite.progen | 2 +- Net/CMakeLists.txt | 2 +- Net/Net.progen | 2 +- Net/samples/EchoServer/EchoServer.progen | 2 +- Net/samples/HTTPFormServer/HTTPFormServer.progen | 2 +- Net/samples/HTTPLoadTest/HTTPLoadTest.progen | 2 +- Net/samples/HTTPTimeServer/HTTPTimeServer.progen | 2 +- Net/samples/Mail/Mail.progen | 2 +- Net/samples/Ping/Ping.progen | 2 +- Net/samples/SMTPLogger/SMTPLogger.progen | 2 +- Net/samples/TimeServer/TimeServer.progen | 2 +- Net/samples/WebSocketServer/WebSocketServer.progen | 2 +- Net/samples/dict/dict.progen | 2 +- Net/samples/download/download.progen | 2 +- Net/samples/httpget/httpget.progen | 2 +- Net/samples/ifconfig/ifconfig.progen | 2 +- Net/samples/tcpserver/tcpserver.progen | 2 +- Net/testsuite/TestSuite.progen | 2 +- NetSSL_OpenSSL/NetSSL_OpenSSL.progen | 2 +- NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer.progen | 2 +- NetSSL_OpenSSL/samples/Mail/Mail.progen | 2 +- NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP.progen | 2 +- NetSSL_OpenSSL/samples/TwitterClient/TwitterClient.progen | 2 +- NetSSL_OpenSSL/samples/download/download.progen | 2 +- NetSSL_OpenSSL/testsuite/TestSuite.progen | 2 +- NetSSL_Win/NetSSL_Win.progen | 2 +- NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.progen | 2 +- NetSSL_Win/samples/Mail/Mail.progen | 2 +- NetSSL_Win/samples/download/download.progen | 2 +- NetSSL_Win/testsuite/TestSuite.progen | 2 +- PDF/testsuite/TestSuite.progen | 2 +- PageCompiler/File2Page/File2Page.progen | 2 +- PageCompiler/PageCompiler.progen | 2 +- PageCompiler/samples/HTTPTimeServer/HTTPTimeServer.progen | 2 +- PocoDoc/PocoDoc.progen | 2 +- ProGen/ProGen.progen | 2 +- Prometheus/samples/MetricsSample/MetricsSample.progen | 2 +- Redis/testsuite/TestSuite.progen | 2 +- Util/samples/SampleApp/SampleApp.progen | 2 +- Util/samples/SampleServer/SampleServer.progen | 2 +- Util/samples/pkill/pkill.progen | 2 +- Util/testsuite/TestSuite.progen | 2 +- XML/samples/DOMParser/DOMParser.progen | 2 +- XML/samples/DOMWriter/DOMWriter.progen | 2 +- XML/samples/PrettyPrint/PrettyPrint.progen | 2 +- XML/samples/SAXParser/SAXParser.progen | 2 +- XML/testsuite/TestSuite.progen | 2 +- Zip/Zip.progen | 2 +- Zip/samples/unzip/unzip.progen | 2 +- Zip/samples/zip/zip.progen | 2 +- Zip/testsuite/TestSuite.progen | 2 +- build/config/MinGW | 2 +- build/config/MinGW-CrossEnv | 2 +- 95 files changed, 95 insertions(+), 95 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ed5a4b6ce..a427df523 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -380,7 +380,7 @@ jobs: class CppUnit::TestCaller.testProxy steps: - uses: actions/checkout@v3 - - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON -DCMAKE_CXX_FLAGS="/MP /EHsc" -DCMAKE_C_FLAGS="/MP" + - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON - run: cmake --build cmake-build --config Release - uses: ./.github/actions/retry-action with: diff --git a/CppParser/testsuite/TestSuite.progen b/CppParser/testsuite/TestSuite.progen index ca967f5d2..67d728c5d 100644 --- a/CppParser/testsuite/TestSuite.progen +++ b/CppParser/testsuite/TestSuite.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include -vc.project.linker.dependencies = iphlpapi.lib mswsock.lib +vc.project.linker.dependencies = iphlpapi.lib diff --git a/Crypto/Crypto.progen b/Crypto/Crypto.progen index 778deba00..f3492c130 100644 --- a/Crypto/Crypto.progen +++ b/Crypto/Crypto.progen @@ -12,7 +12,7 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/Crypto/samples/genrsakey/genrsakey.progen b/Crypto/samples/genrsakey/genrsakey.progen index 15c79a473..6b42329a8 100644 --- a/Crypto/samples/genrsakey/genrsakey.progen +++ b/Crypto/samples/genrsakey/genrsakey.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Crypto\\include -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/Crypto/testsuite/TestSuite.progen b/Crypto/testsuite/TestSuite.progen index 086e660d9..242a68ec1 100644 --- a/Crypto/testsuite/TestSuite.progen +++ b/Crypto/testsuite/TestSuite.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ${vc.project.pocobase}\\Foundation\\include vc.project.compiler.defines = _CRT_SECURE_NO_WARNINGS -vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = diff --git a/Data/MySQL/testsuite/TestSuite.progen b/Data/MySQL/testsuite/TestSuite.progen index f9f15dcf2..bce2d53ac 100644 --- a/Data/MySQL/testsuite/TestSuite.progen +++ b/Data/MySQL/testsuite/TestSuite.progen @@ -9,4 +9,4 @@ vc.project.prototype = TestSuite_vs90.vcproj mysql = ${vc.project.pocobase}\\mysql vc.project.compiler.include = ${mysql}\\include;${vc.project.pocobase}\\Foundation\\include; \ ${vc.project.pocobase}\\Data\\include;${vc.project.pocobase}\\Data\\src -vc.project.linker.dependencies.Win32 = iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = iphlpapi.lib diff --git a/Data/ODBC/testsuite/TestSuite.progen b/Data/ODBC/testsuite/TestSuite.progen index 451672884..ad611e51d 100644 --- a/Data/ODBC/testsuite/TestSuite.progen +++ b/Data/ODBC/testsuite/TestSuite.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\CppUnit\\include;..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\testsuite\\DataTest\\include -vc.project.linker.dependencies = odbc32.lib odbccp32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies = odbc32.lib odbccp32.lib iphlpapi.lib diff --git a/Data/PostgreSQL/testsuite/TestSuite.progen b/Data/PostgreSQL/testsuite/TestSuite.progen index a1f5145e3..3e02e5225 100644 --- a/Data/PostgreSQL/testsuite/TestSuite.progen +++ b/Data/PostgreSQL/testsuite/TestSuite.progen @@ -10,7 +10,7 @@ postgresql = ${vc.project.pocobase}\\postgresql vc.project.compiler.include = ${postgresql}\\include;${vc.project.pocobase}\\Foundation\\include; \ ${vc.project.pocobase}\\Data\\include;${vc.project.pocobase}\\Data\\src vc.project.compiler.defines = _CRT_SECURE_NO_WARNINGS -vc.project.linker.dependencies = iphlpapi.lib mswsock.lib +vc.project.linker.dependencies = iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = diff --git a/Data/SQLite/testsuite/TestSuite.progen b/Data/SQLite/testsuite/TestSuite.progen index 515abb7c8..c0784b935 100644 --- a/Data/SQLite/testsuite/TestSuite.progen +++ b/Data/SQLite/testsuite/TestSuite.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src -vc.project.linker.dependencies = iphlpapi.lib mswsock.lib +vc.project.linker.dependencies = iphlpapi.lib diff --git a/Data/samples/Binding/Binding.progen b/Data/samples/Binding/Binding.progen index d4f19fff6..a3dd5dfdd 100644 --- a/Data/samples/Binding/Binding.progen +++ b/Data/samples/Binding/Binding.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include -vc.project.linker.dependencies = iphlpapi.lib mswsock.lib +vc.project.linker.dependencies = iphlpapi.lib diff --git a/Data/samples/RecordSet/RecordSet.progen b/Data/samples/RecordSet/RecordSet.progen index d4f19fff6..a3dd5dfdd 100644 --- a/Data/samples/RecordSet/RecordSet.progen +++ b/Data/samples/RecordSet/RecordSet.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include -vc.project.linker.dependencies = iphlpapi.lib mswsock.lib +vc.project.linker.dependencies = iphlpapi.lib diff --git a/Data/samples/RowFormatter/RowFormatter.progen b/Data/samples/RowFormatter/RowFormatter.progen index d4f19fff6..a3dd5dfdd 100644 --- a/Data/samples/RowFormatter/RowFormatter.progen +++ b/Data/samples/RowFormatter/RowFormatter.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include -vc.project.linker.dependencies = iphlpapi.lib mswsock.lib +vc.project.linker.dependencies = iphlpapi.lib diff --git a/Data/samples/Tuple/Tuple.progen b/Data/samples/Tuple/Tuple.progen index d4f19fff6..a3dd5dfdd 100644 --- a/Data/samples/Tuple/Tuple.progen +++ b/Data/samples/Tuple/Tuple.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include -vc.project.linker.dependencies = iphlpapi.lib mswsock.lib +vc.project.linker.dependencies = iphlpapi.lib diff --git a/Data/samples/TypeHandler/TypeHandler.progen b/Data/samples/TypeHandler/TypeHandler.progen index 396ddefbf..96965a6ce 100644 --- a/Data/samples/TypeHandler/TypeHandler.progen +++ b/Data/samples/TypeHandler/TypeHandler.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Data/samples/WebNotifier/WebNotifier.progen b/Data/samples/WebNotifier/WebNotifier.progen index 8d7de14a3..7d8738bb1 100644 --- a/Data/samples/WebNotifier/WebNotifier.progen +++ b/Data/samples/WebNotifier/WebNotifier.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include;..\\..\\..\\Net\\include -vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib diff --git a/Data/testsuite/TestSuite.progen b/Data/testsuite/TestSuite.progen index c035310b3..6e936ac49 100644 --- a/Data/testsuite/TestSuite.progen +++ b/Data/testsuite/TestSuite.progen @@ -11,4 +11,4 @@ vc.project.prototype = TestSuite_vs90.vcproj #vc.project.compiler.std.c=stdc11 vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 vc.project.compiler.include = ..\\src;..\\..\\Foundation\\include -vc.project.linker.dependencies.Win32 = iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = iphlpapi.lib diff --git a/Encodings/Compiler/Compiler.progen b/Encodings/Compiler/Compiler.progen index 310238652..724d3e9c4 100644 --- a/Encodings/Compiler/Compiler.progen +++ b/Encodings/Compiler/Compiler.progen @@ -12,5 +12,5 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib vc.solution.create = true diff --git a/Encodings/samples/TextConverter/TextConverter.progen b/Encodings/samples/TextConverter/TextConverter.progen index 074b45626..ccd636a33 100644 --- a/Encodings/samples/TextConverter/TextConverter.progen +++ b/Encodings/samples/TextConverter/TextConverter.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Encodings\\include -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/ActiveMethod/ActiveMethod.progen b/Foundation/samples/ActiveMethod/ActiveMethod.progen index e99390def..7c2c98bb5 100644 --- a/Foundation/samples/ActiveMethod/ActiveMethod.progen +++ b/Foundation/samples/ActiveMethod/ActiveMethod.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/Activity/Activity.progen b/Foundation/samples/Activity/Activity.progen index e99390def..7c2c98bb5 100644 --- a/Foundation/samples/Activity/Activity.progen +++ b/Foundation/samples/Activity/Activity.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter.progen b/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter.progen index 7184a4818..dbae00da9 100644 --- a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter.progen +++ b/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/DateTime/DateTime.progen b/Foundation/samples/DateTime/DateTime.progen index 7184a4818..dbae00da9 100644 --- a/Foundation/samples/DateTime/DateTime.progen +++ b/Foundation/samples/DateTime/DateTime.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/LineEndingConverter/LineEndingConverter.progen b/Foundation/samples/LineEndingConverter/LineEndingConverter.progen index 7184a4818..dbae00da9 100644 --- a/Foundation/samples/LineEndingConverter/LineEndingConverter.progen +++ b/Foundation/samples/LineEndingConverter/LineEndingConverter.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/LogRotation/LogRotation.progen b/Foundation/samples/LogRotation/LogRotation.progen index 7184a4818..dbae00da9 100644 --- a/Foundation/samples/LogRotation/LogRotation.progen +++ b/Foundation/samples/LogRotation/LogRotation.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/Logger/Logger.progen b/Foundation/samples/Logger/Logger.progen index 7184a4818..dbae00da9 100644 --- a/Foundation/samples/Logger/Logger.progen +++ b/Foundation/samples/Logger/Logger.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/NotificationQueue/NotificationQueue.progen b/Foundation/samples/NotificationQueue/NotificationQueue.progen index 7184a4818..dbae00da9 100644 --- a/Foundation/samples/NotificationQueue/NotificationQueue.progen +++ b/Foundation/samples/NotificationQueue/NotificationQueue.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/StringTokenizer/StringTokenizer.progen b/Foundation/samples/StringTokenizer/StringTokenizer.progen index 7184a4818..dbae00da9 100644 --- a/Foundation/samples/StringTokenizer/StringTokenizer.progen +++ b/Foundation/samples/StringTokenizer/StringTokenizer.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/Timer/Timer.progen b/Foundation/samples/Timer/Timer.progen index 7184a4818..dbae00da9 100644 --- a/Foundation/samples/Timer/Timer.progen +++ b/Foundation/samples/Timer/Timer.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/URI/URI.progen b/Foundation/samples/URI/URI.progen index 7184a4818..dbae00da9 100644 --- a/Foundation/samples/URI/URI.progen +++ b/Foundation/samples/URI/URI.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/base64decode/base64decode.progen b/Foundation/samples/base64decode/base64decode.progen index 7184a4818..dbae00da9 100644 --- a/Foundation/samples/base64decode/base64decode.progen +++ b/Foundation/samples/base64decode/base64decode.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/base64encode/base64encode.progen b/Foundation/samples/base64encode/base64encode.progen index 7184a4818..dbae00da9 100644 --- a/Foundation/samples/base64encode/base64encode.progen +++ b/Foundation/samples/base64encode/base64encode.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/deflate/deflate.progen b/Foundation/samples/deflate/deflate.progen index 7184a4818..dbae00da9 100644 --- a/Foundation/samples/deflate/deflate.progen +++ b/Foundation/samples/deflate/deflate.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/dir/dir.progen b/Foundation/samples/dir/dir.progen index 7184a4818..dbae00da9 100644 --- a/Foundation/samples/dir/dir.progen +++ b/Foundation/samples/dir/dir.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/grep/grep.progen b/Foundation/samples/grep/grep.progen index 7184a4818..dbae00da9 100644 --- a/Foundation/samples/grep/grep.progen +++ b/Foundation/samples/grep/grep.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/hmacmd5/hmacmd5.progen b/Foundation/samples/hmacmd5/hmacmd5.progen index 7184a4818..dbae00da9 100644 --- a/Foundation/samples/hmacmd5/hmacmd5.progen +++ b/Foundation/samples/hmacmd5/hmacmd5.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/inflate/inflate.progen b/Foundation/samples/inflate/inflate.progen index 7184a4818..dbae00da9 100644 --- a/Foundation/samples/inflate/inflate.progen +++ b/Foundation/samples/inflate/inflate.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/md5/md5.progen b/Foundation/samples/md5/md5.progen index 7184a4818..dbae00da9 100644 --- a/Foundation/samples/md5/md5.progen +++ b/Foundation/samples/md5/md5.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/uuidgen/uuidgen.progen b/Foundation/samples/uuidgen/uuidgen.progen index 7184a4818..dbae00da9 100644 --- a/Foundation/samples/uuidgen/uuidgen.progen +++ b/Foundation/samples/uuidgen/uuidgen.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/JSON/samples/Benchmark/Benchmark.progen b/JSON/samples/Benchmark/Benchmark.progen index 5978bf1f2..40e486bd7 100644 --- a/JSON/samples/Benchmark/Benchmark.progen +++ b/JSON/samples/Benchmark/Benchmark.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\JSON\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/JSON/testsuite/TestSuite.progen b/JSON/testsuite/TestSuite.progen index 1d0853235..d5a1c2f16 100644 --- a/JSON/testsuite/TestSuite.progen +++ b/JSON/testsuite/TestSuite.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = iphlpapi.lib diff --git a/JWT/testsuite/TestSuite.progen b/JWT/testsuite/TestSuite.progen index a29642abc..9f509e17a 100644 --- a/JWT/testsuite/TestSuite.progen +++ b/JWT/testsuite/TestSuite.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\JSON\\include;..\\..\\Crypto\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/MongoDB/samples/SQLToMongo/SQLToMongo.progen b/MongoDB/samples/SQLToMongo/SQLToMongo.progen index b38803c56..1543dabdb 100644 --- a/MongoDB/samples/SQLToMongo/SQLToMongo.progen +++ b/MongoDB/samples/SQLToMongo/SQLToMongo.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Net\\include;..\\..\\..\\MongoDB\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/MongoDB/testsuite/TestSuite.progen b/MongoDB/testsuite/TestSuite.progen index 32700f626..c1bc49fed 100644 --- a/MongoDB/testsuite/TestSuite.progen +++ b/MongoDB/testsuite/TestSuite.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/CMakeLists.txt b/Net/CMakeLists.txt index 07fc182d8..04799325c 100644 --- a/Net/CMakeLists.txt +++ b/Net/CMakeLists.txt @@ -28,7 +28,7 @@ set_target_properties(Net target_link_libraries(Net PUBLIC Poco::Foundation) # Windows and WindowsCE need additional libraries if(WIN32) - target_link_libraries(Net PUBLIC "iphlpapi.lib" "mswsock.lib") + target_link_libraries(Net PUBLIC "iphlpapi.lib") if(WINCE) target_link_libraries(Net PUBLIC "ws2.lib") else() diff --git a/Net/Net.progen b/Net/Net.progen index cb262f1e9..1c5bbcbb9 100644 --- a/Net/Net.progen +++ b/Net/Net.progen @@ -13,6 +13,6 @@ vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/Net/samples/EchoServer/EchoServer.progen b/Net/samples/EchoServer/EchoServer.progen index b4cc41e63..ede2c7832 100644 --- a/Net/samples/EchoServer/EchoServer.progen +++ b/Net/samples/EchoServer/EchoServer.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/HTTPFormServer/HTTPFormServer.progen b/Net/samples/HTTPFormServer/HTTPFormServer.progen index b4cc41e63..ede2c7832 100644 --- a/Net/samples/HTTPFormServer/HTTPFormServer.progen +++ b/Net/samples/HTTPFormServer/HTTPFormServer.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/HTTPLoadTest/HTTPLoadTest.progen b/Net/samples/HTTPLoadTest/HTTPLoadTest.progen index b4cc41e63..ede2c7832 100644 --- a/Net/samples/HTTPLoadTest/HTTPLoadTest.progen +++ b/Net/samples/HTTPLoadTest/HTTPLoadTest.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/HTTPTimeServer/HTTPTimeServer.progen b/Net/samples/HTTPTimeServer/HTTPTimeServer.progen index b4cc41e63..ede2c7832 100644 --- a/Net/samples/HTTPTimeServer/HTTPTimeServer.progen +++ b/Net/samples/HTTPTimeServer/HTTPTimeServer.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/Mail/Mail.progen b/Net/samples/Mail/Mail.progen index b4cc41e63..ede2c7832 100644 --- a/Net/samples/Mail/Mail.progen +++ b/Net/samples/Mail/Mail.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/Ping/Ping.progen b/Net/samples/Ping/Ping.progen index b4cc41e63..ede2c7832 100644 --- a/Net/samples/Ping/Ping.progen +++ b/Net/samples/Ping/Ping.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/SMTPLogger/SMTPLogger.progen b/Net/samples/SMTPLogger/SMTPLogger.progen index b4cc41e63..ede2c7832 100644 --- a/Net/samples/SMTPLogger/SMTPLogger.progen +++ b/Net/samples/SMTPLogger/SMTPLogger.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/TimeServer/TimeServer.progen b/Net/samples/TimeServer/TimeServer.progen index b4cc41e63..ede2c7832 100644 --- a/Net/samples/TimeServer/TimeServer.progen +++ b/Net/samples/TimeServer/TimeServer.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/WebSocketServer/WebSocketServer.progen b/Net/samples/WebSocketServer/WebSocketServer.progen index b4cc41e63..ede2c7832 100644 --- a/Net/samples/WebSocketServer/WebSocketServer.progen +++ b/Net/samples/WebSocketServer/WebSocketServer.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/dict/dict.progen b/Net/samples/dict/dict.progen index b4cc41e63..ede2c7832 100644 --- a/Net/samples/dict/dict.progen +++ b/Net/samples/dict/dict.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/download/download.progen b/Net/samples/download/download.progen index b4cc41e63..ede2c7832 100644 --- a/Net/samples/download/download.progen +++ b/Net/samples/download/download.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/httpget/httpget.progen b/Net/samples/httpget/httpget.progen index b4cc41e63..ede2c7832 100644 --- a/Net/samples/httpget/httpget.progen +++ b/Net/samples/httpget/httpget.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/ifconfig/ifconfig.progen b/Net/samples/ifconfig/ifconfig.progen index b4cc41e63..ede2c7832 100644 --- a/Net/samples/ifconfig/ifconfig.progen +++ b/Net/samples/ifconfig/ifconfig.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/tcpserver/tcpserver.progen b/Net/samples/tcpserver/tcpserver.progen index 3a6442037..70c16504a 100644 --- a/Net/samples/tcpserver/tcpserver.progen +++ b/Net/samples/tcpserver/tcpserver.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/testsuite/TestSuite.progen b/Net/testsuite/TestSuite.progen index fa52e8aed..205fabcee 100644 --- a/Net/testsuite/TestSuite.progen +++ b/Net/testsuite/TestSuite.progen @@ -8,5 +8,5 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies = iphlpapi.lib mswsock.lib +vc.project.linker.dependencies = iphlpapi.lib vc.project.linker.dependencies.Win32 = ws2_32.lib diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL.progen b/NetSSL_OpenSSL/NetSSL_OpenSSL.progen index d98320c8d..6e03a7bc7 100644 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL.progen +++ b/NetSSL_OpenSSL/NetSSL_OpenSSL.progen @@ -13,7 +13,7 @@ vc.project.compiler.defines.shared = NetSSL_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer.progen b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer.progen index 973e43e03..b7b3a1b28 100644 --- a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer.progen +++ b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/NetSSL_OpenSSL/samples/Mail/Mail.progen b/NetSSL_OpenSSL/samples/Mail/Mail.progen index 973e43e03..b7b3a1b28 100644 --- a/NetSSL_OpenSSL/samples/Mail/Mail.progen +++ b/NetSSL_OpenSSL/samples/Mail/Mail.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP.progen b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP.progen index 973e43e03..b7b3a1b28 100644 --- a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP.progen +++ b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient.progen b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient.progen index e78d283ca..8a5572545 100644 --- a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient.progen +++ b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\JSON\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/NetSSL_OpenSSL/samples/download/download.progen b/NetSSL_OpenSSL/samples/download/download.progen index 973e43e03..b7b3a1b28 100644 --- a/NetSSL_OpenSSL/samples/download/download.progen +++ b/NetSSL_OpenSSL/samples/download/download.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/NetSSL_OpenSSL/testsuite/TestSuite.progen b/NetSSL_OpenSSL/testsuite/TestSuite.progen index 5f50c0867..adcae7daa 100644 --- a/NetSSL_OpenSSL/testsuite/TestSuite.progen +++ b/NetSSL_OpenSSL/testsuite/TestSuite.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\XML\\include;..\\..\\Util\\include;..\\..\\Net\\include;..\\..\\Crypto\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/NetSSL_Win/NetSSL_Win.progen b/NetSSL_Win/NetSSL_Win.progen index ec946a416..10824e6a8 100644 --- a/NetSSL_Win/NetSSL_Win.progen +++ b/NetSSL_Win/NetSSL_Win.progen @@ -13,7 +13,7 @@ vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib Crypt32.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib Crypt32.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.progen b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.progen index bb072373b..c63b31f35 100644 --- a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.progen +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_Win\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/NetSSL_Win/samples/Mail/Mail.progen b/NetSSL_Win/samples/Mail/Mail.progen index bb072373b..c63b31f35 100644 --- a/NetSSL_Win/samples/Mail/Mail.progen +++ b/NetSSL_Win/samples/Mail/Mail.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_Win\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/NetSSL_Win/samples/download/download.progen b/NetSSL_Win/samples/download/download.progen index bb072373b..c63b31f35 100644 --- a/NetSSL_Win/samples/download/download.progen +++ b/NetSSL_Win/samples/download/download.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_Win\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/NetSSL_Win/testsuite/TestSuite.progen b/NetSSL_Win/testsuite/TestSuite.progen index 06c8d66d1..6be09147b 100644 --- a/NetSSL_Win/testsuite/TestSuite.progen +++ b/NetSSL_Win/testsuite/TestSuite.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\XML\\include;..\\..\\Util\\include;..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = vc.project.linker.dependencies.debug_static_md = Crypt32.lib diff --git a/PDF/testsuite/TestSuite.progen b/PDF/testsuite/TestSuite.progen index 229ff3ba6..fbe3e7456 100644 --- a/PDF/testsuite/TestSuite.progen +++ b/PDF/testsuite/TestSuite.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\XML\\include;..\\..\\Util\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies = iphlpapi.lib mswsock.lib +vc.project.linker.dependencies = iphlpapi.lib diff --git a/PageCompiler/File2Page/File2Page.progen b/PageCompiler/File2Page/File2Page.progen index 0df5eb4d7..fd5708eca 100644 --- a/PageCompiler/File2Page/File2Page.progen +++ b/PageCompiler/File2Page/File2Page.progen @@ -13,5 +13,5 @@ vc.project.compiler.defines.shared = vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib vc.solution.create = true diff --git a/PageCompiler/PageCompiler.progen b/PageCompiler/PageCompiler.progen index 8bdae3fff..d0193b1bf 100644 --- a/PageCompiler/PageCompiler.progen +++ b/PageCompiler/PageCompiler.progen @@ -13,5 +13,5 @@ vc.project.compiler.defines.shared = vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib vc.solution.create = true diff --git a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer.progen b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer.progen index b4cc41e63..ede2c7832 100644 --- a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer.progen +++ b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/PocoDoc/PocoDoc.progen b/PocoDoc/PocoDoc.progen index bb2a4f69e..832c985c5 100644 --- a/PocoDoc/PocoDoc.progen +++ b/PocoDoc/PocoDoc.progen @@ -13,5 +13,5 @@ vc.project.compiler.defines.shared = vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib vc.solution.create = true diff --git a/ProGen/ProGen.progen b/ProGen/ProGen.progen index 1b2188dd4..93a3aecb4 100644 --- a/ProGen/ProGen.progen +++ b/ProGen/ProGen.progen @@ -13,5 +13,5 @@ vc.project.compiler.defines.shared = vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib vc.solution.create = true diff --git a/Prometheus/samples/MetricsSample/MetricsSample.progen b/Prometheus/samples/MetricsSample/MetricsSample.progen index 718397f29..a6047e0a0 100644 --- a/Prometheus/samples/MetricsSample/MetricsSample.progen +++ b/Prometheus/samples/MetricsSample/MetricsSample.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Util\\include;..\\..\\..\\XML\\include;..\\..\\..\\JSON\\include;..\\..\\..\\Net\\include;..\\..\\..\\Prometheus\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Redis/testsuite/TestSuite.progen b/Redis/testsuite/TestSuite.progen index 32700f626..c1bc49fed 100644 --- a/Redis/testsuite/TestSuite.progen +++ b/Redis/testsuite/TestSuite.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Net\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Util/samples/SampleApp/SampleApp.progen b/Util/samples/SampleApp/SampleApp.progen index 5e8490c90..b1d2420a5 100644 --- a/Util/samples/SampleApp/SampleApp.progen +++ b/Util/samples/SampleApp/SampleApp.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Util/samples/SampleServer/SampleServer.progen b/Util/samples/SampleServer/SampleServer.progen index 5e8490c90..b1d2420a5 100644 --- a/Util/samples/SampleServer/SampleServer.progen +++ b/Util/samples/SampleServer/SampleServer.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Util/samples/pkill/pkill.progen b/Util/samples/pkill/pkill.progen index 5e8490c90..b1d2420a5 100644 --- a/Util/samples/pkill/pkill.progen +++ b/Util/samples/pkill/pkill.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Util/testsuite/TestSuite.progen b/Util/testsuite/TestSuite.progen index 500ed975e..2280fee75 100644 --- a/Util/testsuite/TestSuite.progen +++ b/Util/testsuite/TestSuite.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\XML\\include;..\\..\\JSON\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = iphlpapi.lib diff --git a/XML/samples/DOMParser/DOMParser.progen b/XML/samples/DOMParser/DOMParser.progen index 63d42fa11..299a2da6e 100644 --- a/XML/samples/DOMParser/DOMParser.progen +++ b/XML/samples/DOMParser/DOMParser.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/XML/samples/DOMWriter/DOMWriter.progen b/XML/samples/DOMWriter/DOMWriter.progen index 63d42fa11..299a2da6e 100644 --- a/XML/samples/DOMWriter/DOMWriter.progen +++ b/XML/samples/DOMWriter/DOMWriter.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/XML/samples/PrettyPrint/PrettyPrint.progen b/XML/samples/PrettyPrint/PrettyPrint.progen index 63d42fa11..299a2da6e 100644 --- a/XML/samples/PrettyPrint/PrettyPrint.progen +++ b/XML/samples/PrettyPrint/PrettyPrint.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/XML/samples/SAXParser/SAXParser.progen b/XML/samples/SAXParser/SAXParser.progen index 63d42fa11..299a2da6e 100644 --- a/XML/samples/SAXParser/SAXParser.progen +++ b/XML/samples/SAXParser/SAXParser.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/XML/testsuite/TestSuite.progen b/XML/testsuite/TestSuite.progen index 851ab8bcd..99ba45b05 100644 --- a/XML/testsuite/TestSuite.progen +++ b/XML/testsuite/TestSuite.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies = iphlpapi.lib mswsock.lib +vc.project.linker.dependencies = iphlpapi.lib diff --git a/Zip/Zip.progen b/Zip/Zip.progen index 13dd4f2c5..c3cddae59 100644 --- a/Zip/Zip.progen +++ b/Zip/Zip.progen @@ -14,6 +14,6 @@ vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.disableWarnings = 4244;4267 vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/Zip/samples/unzip/unzip.progen b/Zip/samples/unzip/unzip.progen index 4509bb186..32577f864 100644 --- a/Zip/samples/unzip/unzip.progen +++ b/Zip/samples/unzip/unzip.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Zip\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Zip/samples/zip/zip.progen b/Zip/samples/zip/zip.progen index 4509bb186..32577f864 100644 --- a/Zip/samples/zip/zip.progen +++ b/Zip/samples/zip/zip.progen @@ -8,4 +8,4 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Zip\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib mswsock.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Zip/testsuite/TestSuite.progen b/Zip/testsuite/TestSuite.progen index 3c9cf8d61..1617f52d8 100644 --- a/Zip/testsuite/TestSuite.progen +++ b/Zip/testsuite/TestSuite.progen @@ -8,5 +8,5 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 -vc.project.linker.dependencies = iphlpapi.lib mswsock.lib +vc.project.linker.dependencies = iphlpapi.lib diff --git a/build/config/MinGW b/build/config/MinGW index 4c177669c..f3c25ee9e 100644 --- a/build/config/MinGW +++ b/build/config/MinGW @@ -70,4 +70,4 @@ SYSFLAGS = -D_WIN32 -DMINGW32 -DWINVER=0x501 -DPOCO_NO_FPENVIRONMENT -DPCRE_STAT # # System Specific Libraries # -SYSLIBS = -L/usr/local/lib -L/usr/lib -liphlpapi -lmswsock -lssl -lcrypto -lws2_32 +SYSLIBS = -L/usr/local/lib -L/usr/lib -liphlpapi -lssl -lcrypto -lws2_32 diff --git a/build/config/MinGW-CrossEnv b/build/config/MinGW-CrossEnv index 87080ef3b..3b2a52e78 100644 --- a/build/config/MinGW-CrossEnv +++ b/build/config/MinGW-CrossEnv @@ -72,4 +72,4 @@ SYSFLAGS = -D_WIN32 -DMINGW32 -DWINVER=0x501 -DPOCO_NO_FPENVIRONMENT -DPCRE_STAT # # System Specific Libraries # -SYSLIBS = -liphlpapi -lmswsock -lssl -lcrypto -lws2_32 +SYSLIBS = -liphlpapi -lssl -lcrypto -lws2_32 From 12a99dcd18a2ddc648ee4c3612b32d0ef14b32ff Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Tue, 12 Dec 2023 11:10:20 +0100 Subject: [PATCH 243/395] fix(SocketImpl): Windows: use pragma to link mswsock.lib --- Net/include/Poco/Net/SocketImpl.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Net/include/Poco/Net/SocketImpl.h b/Net/include/Poco/Net/SocketImpl.h index ca5794a5d..501488e05 100644 --- a/Net/include/Poco/Net/SocketImpl.h +++ b/Net/include/Poco/Net/SocketImpl.h @@ -599,4 +599,8 @@ inline bool SocketImpl::getBlocking() const } } // namespace Poco::Net +#if defined(POCO_OS_FAMILY_WINDOWS) + #pragma comment(lib, "mswsock.lib") +#endif + #endif // Net_SocketImpl_INCLUDED From 10f41c06d9416a6ae0884c4827ea2a91bf5d2cf8 Mon Sep 17 00:00:00 2001 From: Kari Argillander Date: Wed, 13 Dec 2023 03:16:35 +0200 Subject: [PATCH 244/395] Improve project C++17 support (#4334) Poco now use C++17. We can take some old code away because of that. We also raise requiments for C++17 so everything works as excpected with it. Co-authored-by: Kari Argillander --- .vscode/c_cpp_properties.json | 4 ++-- CMakeLists.txt | 2 +- Foundation/include/Poco/Config.h | 7 ------- README.md | 2 +- cmake/CXX1x.cmake | 25 ------------------------- release/script/mkdocumentation | 2 +- 6 files changed, 5 insertions(+), 37 deletions(-) diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index acbacaf3c..b7c6a74e5 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -42,7 +42,7 @@ "forcedInclude": [], "compilerPath": "/usr/bin/clang", "cStandard": "c11", - "cppStandard": "c++14", + "cppStandard": "c++17", "compileCommands": "", "browse": { "path": [ @@ -63,7 +63,7 @@ "forcedInclude": [], "compilerPath": "/usr/bin/gcc", "cStandard": "c11", - "cppStandard": "c++14", + "cppStandard": "c++17", "compileCommands": "", "browse": { "path": [ diff --git a/CMakeLists.txt b/CMakeLists.txt index 22c403ba5..6695eca4b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,7 +42,7 @@ endif() # Setup C/C++ compiler options ################################################################################# -# C++11/17 compiler flags +# C++17 compiler flags include(CXX1x) check_for_cxx17_compiler(CXX17_COMPILER) diff --git a/Foundation/include/Poco/Config.h b/Foundation/include/Poco/Config.h index 61311b1cc..99463f58d 100644 --- a/Foundation/include/Poco/Config.h +++ b/Foundation/include/Poco/Config.h @@ -223,11 +223,4 @@ // Uncomment to explicitly disable SQLParser // #define POCO_DATA_NO_SQL_PARSER -// Automatically disable SQL parser for < c++17 compile -#if !defined(POCO_DATA_NO_SQL_PARSER) - #ifndef POCO_HAVE_CPP17_COMPILER - #define POCO_DATA_NO_SQL_PARSER - #endif -#endif - #endif // Foundation_Config_INCLUDED diff --git a/README.md b/README.md index 951ecdbce..afa11f318 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ and [Getting Started](https://pocoproject.org/docs/00200-GettingStarted.html) do ### Prerequisites - CMake 3.5 or newer -- A C++14 compiler (Visual C++ 2015, GCC 5.0, Clang 3.4, or newer) +- A C++17 compiler (Visual C++ 2017, GCC 8.0, Clang 5, or newer) - OpenSSL headers and libraries (optional, but recommended) - MySQL, PostgreSQL and ODBC client libraries (optional) diff --git a/cmake/CXX1x.cmake b/cmake/CXX1x.cmake index 50a38de0f..608fd8f27 100644 --- a/cmake/CXX1x.cmake +++ b/cmake/CXX1x.cmake @@ -18,31 +18,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -# Determines whether the compiler supports C++11 -macro(check_for_cxx11_compiler _VAR) - message(STATUS "Checking for C++11 compiler ...") - set(${_VAR}) - try_compile(_COMPILER_TEST_RESULT ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/cmake/test_compiler.cpp CMAKE_FLAGS -DCMAKE_CXX_STANDARD=11 -DCMAKE_CXX_STANDARD_REQUIRED=ON) - if(NOT _COMPILER_TEST_RESULT AND CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - try_compile(_COMPILER_TEST_RESULT ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/cmake/test_compiler.cpp CMAKE_FLAGS -DCMAKE_CXX_FLAGS="-stdlib=libc++" -DCMAKE_CXX_STANDARD=11 -DCMAKE_CXX_STANDARD_REQUIRED=ON) - if(_COMPILER_TEST_RESULT) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++") - else() - message(STATUS "To enable C++11 install libc++ standard library from https://libcxx.llvm.org/") - endif() - endif() - if(_COMPILER_TEST_RESULT AND ((MSVC AND (MSVC10 OR MSVC11 OR MSVC12 OR MSVC14)) OR - (CMAKE_COMPILER_IS_GNUCXX AND NOT ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 4.8.1) OR - (CMAKE_CXX_COMPILER_ID STREQUAL "QCC" AND NOT ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 4.8.1) OR - (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND NOT ${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS 3.3) OR - (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang"))) - set(${_VAR} 1) - message(STATUS "Checking for C++11 compiler - available") - else() - message(STATUS "Checking for C++11 compiler - unavailable") - endif() -endmacro() - # Determines whether the compiler supports C++17 macro(check_for_cxx17_compiler _VAR) message(STATUS "Checking for C++17 compiler") diff --git a/release/script/mkdocumentation b/release/script/mkdocumentation index c98764a5f..727d8d1df 100755 --- a/release/script/mkdocumentation +++ b/release/script/mkdocumentation @@ -123,7 +123,7 @@ done : ${CC:=gcc} : ${CXX:=g++} -: ${CXXFLAGS:=-std=c++11} +: ${CXXFLAGS:=-std=c++17} echo "CC=$CC" >>$build/PocoDoc.ini echo "CXX=$CXX" >>$build/PocoDoc.ini From 46759cab03c28adbe4325d865b5fe68240cceb0d Mon Sep 17 00:00:00 2001 From: Kari Argillander Date: Wed, 13 Dec 2023 04:36:37 +0200 Subject: [PATCH 245/395] Fix RemoteSyslogChannel setProperty value check (#4339) We compare just 4 first letters. So if value would have example be syslevel then this function would work wrong. Nothing major but nice to fix. Co-authored-by: Kari Argillander --- Net/src/RemoteSyslogChannel.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Net/src/RemoteSyslogChannel.cpp b/Net/src/RemoteSyslogChannel.cpp index e1a5b1d26..2d526ae75 100644 --- a/Net/src/RemoteSyslogChannel.cpp +++ b/Net/src/RemoteSyslogChannel.cpp @@ -176,7 +176,7 @@ void RemoteSyslogChannel::setProperty(const std::string& name, const std::string std::string facility; if (Poco::icompare(value, 4, "LOG_") == 0) facility = Poco::toUpper(value.substr(4)); - else if (Poco::icompare(value, 4, "SYSLOG_") == 0) + else if (Poco::icompare(value, 7, "SYSLOG_") == 0) facility = Poco::toUpper(value.substr(7)); else facility = Poco::toUpper(value); From 708a5d830713f5aa46440eac7a53ee8398dfeee3 Mon Sep 17 00:00:00 2001 From: Kari Argillander Date: Thu, 14 Dec 2023 01:25:04 +0200 Subject: [PATCH 246/395] RFC: Remove Windows CE support (#4342) * Remove _WIN32_WCE macro Poco now use C++17 and Windows CE does not support it and VS2017 does also not support it so we can just remove Windows CE code. First remove all macro usages from our own files. * Remove WinCE support from build files Poco now use C++17 and Windows CE does not support it and VS2017 does also not support it so we can just remove Windows CE code. Remove all references from build systems / scripts. * Remove Windows CE related source and header files Poco now use C++17 and Windows CE does not support it and VS2017 does also not support it so we can just remove Windows CE code. First remove all macro usages from our own files. * Remove wcelibcex folder Poco now use C++17 and Windows CE does not support it and VS2017 does also not support it so we can just remove Windows CE code. First remove all macro usages from our own files. * Remove rest Windows CE mentions There where some Windows CE mentions left. Remove those. * Update Windows CE documentation We should keep documentation some time so people can find reason for remove. --------- Co-authored-by: Kari Argillander --- ActiveRecord/testsuite/CMakeLists.txt | 4 - ActiveRecord/testsuite/src/WinCEDriver.cpp | 30 - CppUnit/src/TextTestResult.cpp | 3 - Crypto/testsuite/CMakeLists.txt | 4 - Crypto/testsuite/src/WinCEDriver.cpp | 48 - Data/CMakeLists.txt | 2 +- Data/SQLite/CMakeLists.txt | 3 - Data/SQLite/testsuite/CMakeLists.txt | 4 - Data/SQLite/testsuite/src/WinCEDriver.cpp | 30 - Data/testsuite/CMakeLists.txt | 4 - Data/testsuite/src/WinCEDriver.cpp | 30 - Data/testsuite/testsuite.cmake | 4 - Encodings/testsuite/CMakeLists.txt | 4 - Encodings/testsuite/src/WinCEDriver.cpp | 30 - Foundation/CMakeLists.txt | 8 - Foundation/extradirs | 1 - Foundation/include/Poco/Config.h | 8 +- Foundation/include/Poco/Environment_WINCE.h | 59 -- Foundation/include/Poco/File.h | 4 - Foundation/include/Poco/File_WINCE.h | 95 -- Foundation/include/Poco/Foundation.h | 2 +- Foundation/include/Poco/Mutex.h | 4 - Foundation/include/Poco/Mutex_WINCE.h | 50 -- Foundation/include/Poco/Path_WINCE.h | 55 -- Foundation/include/Poco/PipeImpl.h | 4 - Foundation/include/Poco/Platform.h | 6 +- Foundation/include/Poco/Process.h | 4 - Foundation/include/Poco/Process_WINCE.h | 85 -- Foundation/include/Poco/RWLock.h | 4 - Foundation/include/Poco/RWLock_WINCE.h | 61 -- Foundation/include/Poco/Thread.h | 4 - Foundation/include/Poco/Thread_WINCE.h | 194 ----- Foundation/src/Debugger.cpp | 15 +- Foundation/src/DirectoryIterator_WIN32U.cpp | 4 - Foundation/src/Environment.cpp | 4 - Foundation/src/Environment_WINCE.cpp | 244 ------ Foundation/src/File.cpp | 4 - Foundation/src/File_WINCE.cpp | 447 ---------- Foundation/src/LocalDateTime.cpp | 14 +- Foundation/src/LoggingFactory.cpp | 6 +- Foundation/src/Mutex.cpp | 4 - Foundation/src/Mutex_WINCE.cpp | 80 -- Foundation/src/Path.cpp | 4 - Foundation/src/Path_WINCE.cpp | 148 ---- Foundation/src/PipeImpl.cpp | 4 - Foundation/src/Process.cpp | 4 - Foundation/src/Process_WINCE.cpp | 244 ------ Foundation/src/RWLock.cpp | 4 - Foundation/src/RWLock_WINCE.cpp | 174 ---- Foundation/src/Random.cpp | 8 +- Foundation/src/SharedLibrary_WIN32U.cpp | 10 +- Foundation/src/SharedMemory_WIN32.cpp | 6 +- Foundation/src/Thread.cpp | 4 - Foundation/src/ThreadPool.cpp | 15 - Foundation/src/Thread_WINCE.cpp | 201 ----- Foundation/src/Timestamp.cpp | 110 --- Foundation/src/Timezone.cpp | 4 - Foundation/src/Timezone_WINCE.cpp | 104 --- Foundation/testsuite/CMakeLists.txt | 12 +- Foundation/testsuite/src/CoreTest.cpp | 4 +- Foundation/testsuite/src/FileTest.cpp | 13 +- Foundation/testsuite/src/GlobTest.cpp | 2 - .../testsuite/src/LocalDateTimeTest.cpp | 7 - .../testsuite/src/LoggingFactoryTest.cpp | 2 +- Foundation/testsuite/src/PathTest.cpp | 7 - .../testsuite/src/ProcessRunnerTest.cpp | 4 - Foundation/testsuite/src/ProcessTest.cpp | 20 +- Foundation/testsuite/src/TestApp_WINCE.cpp | 33 - Foundation/testsuite/src/WinCEDriver.cpp | 30 - Foundation/wcelibcex-1.0/AUTHORS.txt | 13 - Foundation/wcelibcex-1.0/BUILD.txt | 41 - Foundation/wcelibcex-1.0/COPYING.txt | 9 - Foundation/wcelibcex-1.0/LICENSE.txt | 24 - Foundation/wcelibcex-1.0/README.txt | 22 - .../wcelibcex-1.0/msvc80/wcelibcex.vsprops | 15 - .../wcelibcex-1.0/msvc80/wcelibcex_lib.sln | 46 - .../wcelibcex-1.0/msvc80/wcelibcex_lib.vcproj | 817 ------------------ Foundation/wcelibcex-1.0/src/errno.h | 49 -- Foundation/wcelibcex-1.0/src/fcntl.h | 48 - Foundation/wcelibcex-1.0/src/wce_abort.c | 62 -- Foundation/wcelibcex-1.0/src/wce_access.c | 101 --- Foundation/wcelibcex-1.0/src/wce_asctime.c | 138 --- Foundation/wcelibcex-1.0/src/wce_bsearch.c | 90 -- Foundation/wcelibcex-1.0/src/wce_clock.c | 87 -- Foundation/wcelibcex-1.0/src/wce_ctime.c | 100 --- Foundation/wcelibcex-1.0/src/wce_direct.h | 58 -- .../src/wce_directorymanagement.c | 227 ----- Foundation/wcelibcex-1.0/src/wce_errno.c | 42 - Foundation/wcelibcex-1.0/src/wce_errno.h | 105 --- Foundation/wcelibcex-1.0/src/wce_fcntl.h | 79 -- Foundation/wcelibcex-1.0/src/wce_findfile.c | 183 ---- Foundation/wcelibcex-1.0/src/wce_getenv.c | 53 -- Foundation/wcelibcex-1.0/src/wce_getopt.c | 154 ---- .../wcelibcex-1.0/src/wce_gettimeofday.c | 83 -- Foundation/wcelibcex-1.0/src/wce_io.h | 110 --- Foundation/wcelibcex-1.0/src/wce_lfind.c | 81 -- Foundation/wcelibcex-1.0/src/wce_localtime.c | 228 ----- Foundation/wcelibcex-1.0/src/wce_mkdir.c | 112 --- Foundation/wcelibcex-1.0/src/wce_mktime.c | 155 ---- Foundation/wcelibcex-1.0/src/wce_path.c | 479 ---------- Foundation/wcelibcex-1.0/src/wce_rename.c | 91 -- Foundation/wcelibcex-1.0/src/wce_rewind.c | 100 --- Foundation/wcelibcex-1.0/src/wce_rmdir.c | 92 -- Foundation/wcelibcex-1.0/src/wce_setlocale.c | 56 -- Foundation/wcelibcex-1.0/src/wce_stat.c | 233 ----- Foundation/wcelibcex-1.0/src/wce_stat.h | 142 --- Foundation/wcelibcex-1.0/src/wce_stdio.h | 61 -- Foundation/wcelibcex-1.0/src/wce_stdlib.h | 102 --- Foundation/wcelibcex-1.0/src/wce_strerror.c | 58 -- Foundation/wcelibcex-1.0/src/wce_string.h | 59 -- Foundation/wcelibcex-1.0/src/wce_time.c | 126 --- Foundation/wcelibcex-1.0/src/wce_time.h | 156 ---- Foundation/wcelibcex-1.0/src/wce_timesys.c | 138 --- Foundation/wcelibcex-1.0/src/wce_timesys.h | 59 -- Foundation/wcelibcex-1.0/src/wce_types.h | 62 -- Foundation/wcelibcex-1.0/src/wce_unistd.h | 72 -- Foundation/wcelibcex-1.0/src/wce_unlink.c | 100 --- Foundation/wcelibcex-1.0/src/wce_winbase.c | 38 - Foundation/wcelibcex-1.0/src/wce_winbase.h | 54 -- JSON/testsuite/CMakeLists.txt | 4 - JSON/testsuite/src/WinCEDriver.cpp | 30 - JWT/testsuite/CMakeLists.txt | 4 - JWT/testsuite/src/WinCEDriver.cpp | 30 - MongoDB/testsuite/CMakeLists.txt | 4 - MongoDB/testsuite/src/WinCEDriver.cpp | 30 - Net/CMakeLists.txt | 8 +- Net/include/Poco/Net/Net.h | 4 +- Net/include/Poco/Net/SocketDefs.h | 2 +- Net/samples/WebSocketServer/CMakeLists.txt | 4 +- Net/src/NetworkInterface.cpp | 28 +- Net/src/TCPServer.cpp | 10 +- Net/testsuite/CMakeLists.txt | 4 - Net/testsuite/src/SocketAddressTest.cpp | 2 - Net/testsuite/src/WinCEDriver.cpp | 30 - NetSSL_OpenSSL/testsuite/CMakeLists.txt | 4 - NetSSL_OpenSSL/testsuite/src/WinCEDriver.cpp | 88 -- NetSSL_Win/src/SSLManager.cpp | 8 - NetSSL_Win/src/SecureSocketImpl.cpp | 5 +- NetSSL_Win/testsuite/CMakeLists.txt | 4 - NetSSL_Win/testsuite/src/WinCEDriver.cpp | 89 -- Prometheus/testsuite/CMakeLists.txt | 4 - Prometheus/testsuite/src/WinCEDriver.cpp | 30 - Redis/testsuite/CMakeLists.txt | 4 - Redis/testsuite/src/WinCEDriver.cpp | 30 - Util/include/Poco/Util/ServerApplication.h | 4 - Util/samples/SampleApp/CMakeLists.txt | 4 +- Util/samples/SampleServer/CMakeLists.txt | 4 +- Util/samples/pkill/CMakeLists.txt | 4 +- Util/src/ServerApplication.cpp | 60 -- Util/src/WinRegistryConfiguration.cpp | 7 - Util/src/WinRegistryKey.cpp | 10 +- Util/src/WinService.cpp | 6 - Util/testsuite/CMakeLists.txt | 4 - .../testsuite/src/LoggingConfiguratorTest.cpp | 2 +- Util/testsuite/src/UtilTestSuite.cpp | 4 +- Util/testsuite/src/WinCEDriver.cpp | 30 - Util/testsuite/src/WinConfigurationTest.cpp | 9 +- XML/testsuite/CMakeLists.txt | 4 - XML/testsuite/src/WinCEDriver.cpp | 30 - Zip/samples/unzip/CMakeLists.txt | 4 +- Zip/samples/zip/CMakeLists.txt | 4 +- Zip/testsuite/CMakeLists.txt | 4 - Zip/testsuite/src/WinCEDriver.cpp | 30 - buildwin.ps1 | 6 +- doc/99200-WinCEPlatformNotes.page | 131 +-- packaging/Windows/WiX/Poco.wxs | 5 - progen.ps1 | 4 +- 167 files changed, 55 insertions(+), 9233 deletions(-) delete mode 100644 ActiveRecord/testsuite/src/WinCEDriver.cpp delete mode 100644 Crypto/testsuite/src/WinCEDriver.cpp delete mode 100644 Data/SQLite/testsuite/src/WinCEDriver.cpp delete mode 100644 Data/testsuite/src/WinCEDriver.cpp delete mode 100644 Encodings/testsuite/src/WinCEDriver.cpp delete mode 100644 Foundation/extradirs delete mode 100644 Foundation/include/Poco/Environment_WINCE.h delete mode 100644 Foundation/include/Poco/File_WINCE.h delete mode 100644 Foundation/include/Poco/Mutex_WINCE.h delete mode 100644 Foundation/include/Poco/Path_WINCE.h delete mode 100644 Foundation/include/Poco/Process_WINCE.h delete mode 100644 Foundation/include/Poco/RWLock_WINCE.h delete mode 100644 Foundation/include/Poco/Thread_WINCE.h delete mode 100644 Foundation/src/Environment_WINCE.cpp delete mode 100644 Foundation/src/File_WINCE.cpp delete mode 100644 Foundation/src/Mutex_WINCE.cpp delete mode 100644 Foundation/src/Path_WINCE.cpp delete mode 100644 Foundation/src/Process_WINCE.cpp delete mode 100644 Foundation/src/RWLock_WINCE.cpp delete mode 100644 Foundation/src/Thread_WINCE.cpp delete mode 100644 Foundation/src/Timezone_WINCE.cpp delete mode 100644 Foundation/testsuite/src/TestApp_WINCE.cpp delete mode 100644 Foundation/testsuite/src/WinCEDriver.cpp delete mode 100644 Foundation/wcelibcex-1.0/AUTHORS.txt delete mode 100644 Foundation/wcelibcex-1.0/BUILD.txt delete mode 100644 Foundation/wcelibcex-1.0/COPYING.txt delete mode 100644 Foundation/wcelibcex-1.0/LICENSE.txt delete mode 100644 Foundation/wcelibcex-1.0/README.txt delete mode 100644 Foundation/wcelibcex-1.0/msvc80/wcelibcex.vsprops delete mode 100644 Foundation/wcelibcex-1.0/msvc80/wcelibcex_lib.sln delete mode 100644 Foundation/wcelibcex-1.0/msvc80/wcelibcex_lib.vcproj delete mode 100644 Foundation/wcelibcex-1.0/src/errno.h delete mode 100644 Foundation/wcelibcex-1.0/src/fcntl.h delete mode 100644 Foundation/wcelibcex-1.0/src/wce_abort.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_access.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_asctime.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_bsearch.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_clock.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_ctime.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_direct.h delete mode 100644 Foundation/wcelibcex-1.0/src/wce_directorymanagement.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_errno.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_errno.h delete mode 100644 Foundation/wcelibcex-1.0/src/wce_fcntl.h delete mode 100644 Foundation/wcelibcex-1.0/src/wce_findfile.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_getenv.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_getopt.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_gettimeofday.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_io.h delete mode 100644 Foundation/wcelibcex-1.0/src/wce_lfind.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_localtime.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_mkdir.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_mktime.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_path.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_rename.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_rewind.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_rmdir.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_setlocale.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_stat.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_stat.h delete mode 100644 Foundation/wcelibcex-1.0/src/wce_stdio.h delete mode 100644 Foundation/wcelibcex-1.0/src/wce_stdlib.h delete mode 100644 Foundation/wcelibcex-1.0/src/wce_strerror.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_string.h delete mode 100644 Foundation/wcelibcex-1.0/src/wce_time.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_time.h delete mode 100644 Foundation/wcelibcex-1.0/src/wce_timesys.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_timesys.h delete mode 100644 Foundation/wcelibcex-1.0/src/wce_types.h delete mode 100644 Foundation/wcelibcex-1.0/src/wce_unistd.h delete mode 100644 Foundation/wcelibcex-1.0/src/wce_unlink.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_winbase.c delete mode 100644 Foundation/wcelibcex-1.0/src/wce_winbase.h delete mode 100644 JSON/testsuite/src/WinCEDriver.cpp delete mode 100644 JWT/testsuite/src/WinCEDriver.cpp delete mode 100644 MongoDB/testsuite/src/WinCEDriver.cpp delete mode 100644 Net/testsuite/src/WinCEDriver.cpp delete mode 100644 NetSSL_OpenSSL/testsuite/src/WinCEDriver.cpp delete mode 100644 NetSSL_Win/testsuite/src/WinCEDriver.cpp delete mode 100644 Prometheus/testsuite/src/WinCEDriver.cpp delete mode 100644 Redis/testsuite/src/WinCEDriver.cpp delete mode 100644 Util/testsuite/src/WinCEDriver.cpp delete mode 100644 XML/testsuite/src/WinCEDriver.cpp delete mode 100644 Zip/testsuite/src/WinCEDriver.cpp diff --git a/ActiveRecord/testsuite/CMakeLists.txt b/ActiveRecord/testsuite/CMakeLists.txt index bfbe34d48..73b774060 100644 --- a/ActiveRecord/testsuite/CMakeLists.txt +++ b/ActiveRecord/testsuite/CMakeLists.txt @@ -10,10 +10,6 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF src/WinDriver.cpp ) -POCO_SOURCES_AUTO_PLAT(TEST_SRCS WINCE - src/WinCEDriver.cpp -) - add_executable(ActiveRecord-testrunner ${TEST_SRCS}) if(ANDROID) add_test( diff --git a/ActiveRecord/testsuite/src/WinCEDriver.cpp b/ActiveRecord/testsuite/src/WinCEDriver.cpp deleted file mode 100644 index 54d2eaa95..000000000 --- a/ActiveRecord/testsuite/src/WinCEDriver.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// -// WinCEDriver.cpp -// -// Console-based test driver for Windows CE. -// -// Copyright (c) 2020, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "CppUnit/TestRunner.h" -#include "ActiveRecordTestSuite.h" -#include - - -int wmain(int argc, wchar_t* argv[]) -{ - std::vector args; - for (int i = 0; i < argc; ++i) - { - char buffer[1024]; - std::wcstombs(buffer, argv[i], sizeof(buffer)); - args.push_back(std::string(buffer)); - } - CppUnit::TestRunner runner; - runner.addTest("ActiveRecordTestSuite", ActiveRecordTestSuite::suite()); - return runner.run(args) ? 0 : 1; -} diff --git a/CppUnit/src/TextTestResult.cpp b/CppUnit/src/TextTestResult.cpp index 6b88f4dc2..f70ed82bf 100644 --- a/CppUnit/src/TextTestResult.cpp +++ b/CppUnit/src/TextTestResult.cpp @@ -104,15 +104,12 @@ void TextTestResult::ignoring(const std::string ignore) void TextTestResult::setup() { -#if !defined(_WIN32_WCE) const char* env = std::getenv("CPPUNIT_IGNORE"); if (env) { std::string ignored = env; ignoring(ignored); } - -#endif } diff --git a/Crypto/testsuite/CMakeLists.txt b/Crypto/testsuite/CMakeLists.txt index a7ae3e990..1a25fd3dd 100644 --- a/Crypto/testsuite/CMakeLists.txt +++ b/Crypto/testsuite/CMakeLists.txt @@ -10,10 +10,6 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF src/WinDriver.cpp ) -POCO_SOURCES_AUTO_PLAT(TEST_SRCS WINCE - src/WinCEDriver.cpp -) - add_executable(Crypto-testrunner ${TEST_SRCS}) if(ANDROID) add_test( diff --git a/Crypto/testsuite/src/WinCEDriver.cpp b/Crypto/testsuite/src/WinCEDriver.cpp deleted file mode 100644 index 6f0530a76..000000000 --- a/Crypto/testsuite/src/WinCEDriver.cpp +++ /dev/null @@ -1,48 +0,0 @@ -// -// WinCEDriver.cpp -// -// Console-based test driver for Windows CE. -// -// Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "CppUnit/TestRunner.h" -#include "CryptoTestSuite.h" -#include "Poco/Crypto/Crypto.h" -#include - - -class CryptoInitializer -{ -public: - CryptoInitializer() - { - Poco::Crypto::initializeCrypto(); - } - - ~CryptoInitializer() - { - Poco::Crypto::uninitializeCrypto(); - } -}; - - -int _tmain(int argc, wchar_t* argv[]) -{ - CryptoInitializer ci; - - std::vector args; - for (int i = 0; i < argc; ++i) - { - char buffer[1024]; - std::wcstombs(buffer, argv[i], sizeof(buffer)); - args.push_back(std::string(buffer)); - } - CppUnit::TestRunner runner; - runner.addTest("CryptoTestSuite", CryptoTestSuite::suite()); - return runner.run(args) ? 0 : 1; -} diff --git a/Data/CMakeLists.txt b/Data/CMakeLists.txt index 5542b7e94..5f02248aa 100644 --- a/Data/CMakeLists.txt +++ b/Data/CMakeLists.txt @@ -72,7 +72,7 @@ else() message(STATUS "PostgreSQL Support Disabled") endif() -if(ODBC_FOUND AND ENABLE_DATA_ODBC AND NOT WINCE) +if(ODBC_FOUND AND ENABLE_DATA_ODBC) message(STATUS "ODBC Support Enabled") add_subdirectory(ODBC) else() diff --git a/Data/SQLite/CMakeLists.txt b/Data/SQLite/CMakeLists.txt index 3a176d744..e62fcf23d 100644 --- a/Data/SQLite/CMakeLists.txt +++ b/Data/SQLite/CMakeLists.txt @@ -49,9 +49,6 @@ if(POCO_UNBUNDLED) SQLITE_THREADSAFE=1 ) else() - if(WINCE) - target_compile_definitions(DataSQLite PRIVATE SQLITE_MSVC_LOCALTIME_API) - endif(WINCE) target_compile_definitions(DataSQLite PRIVATE SQLITE_THREADSAFE=1 SQLITE_DISABLE_LFS diff --git a/Data/SQLite/testsuite/CMakeLists.txt b/Data/SQLite/testsuite/CMakeLists.txt index 2c04c2212..c8d1785e8 100644 --- a/Data/SQLite/testsuite/CMakeLists.txt +++ b/Data/SQLite/testsuite/CMakeLists.txt @@ -11,10 +11,6 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF src/WinDriver.cpp ) -POCO_SOURCES_AUTO_PLAT(TEST_SRCS WINCE - src/WinCEDriver.cpp -) - add_executable(DataSQLite-testrunner ${TEST_SRCS}) if(ANDROID) add_test( diff --git a/Data/SQLite/testsuite/src/WinCEDriver.cpp b/Data/SQLite/testsuite/src/WinCEDriver.cpp deleted file mode 100644 index 8fd5bc023..000000000 --- a/Data/SQLite/testsuite/src/WinCEDriver.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// -// WinCEDriver.cpp -// -// Console-based test driver for Windows CE. -// -// Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "CppUnit/TestRunner.h" -#include "SQLiteTestSuite.h" -#include - - -int wmain(int argc, wchar_t* argv[]) -{ - std::vector args; - for (int i = 0; i < argc; ++i) - { - char buffer[1024]; - std::wcstombs(buffer, argv[i], sizeof(buffer)); - args.push_back(std::string(buffer)); - } - CppUnit::TestRunner runner; - runner.addTest("SQLiteTestSuite", SQLiteTestSuite::suite()); - return runner.run(args) ? 0 : 1; -} diff --git a/Data/testsuite/CMakeLists.txt b/Data/testsuite/CMakeLists.txt index c368fc77e..af3119ef1 100644 --- a/Data/testsuite/CMakeLists.txt +++ b/Data/testsuite/CMakeLists.txt @@ -11,10 +11,6 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF src/WinDriver.cpp ) -POCO_SOURCES_AUTO_PLAT(TEST_SRCS WINCE - src/WinCEDriver.cpp -) - add_executable(Data-testrunner ${TEST_SRCS}) if(ANDROID) add_test( diff --git a/Data/testsuite/src/WinCEDriver.cpp b/Data/testsuite/src/WinCEDriver.cpp deleted file mode 100644 index 422f789ce..000000000 --- a/Data/testsuite/src/WinCEDriver.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// -// WinCEDriver.cpp -// -// Console-based test driver for Windows CE. -// -// Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "CppUnit/TestRunner.h" -#include "DataTestSuite.h" -#include - - -int wmain(int argc, wchar_t* argv[]) -{ - std::vector args; - for (int i = 0; i < argc; ++i) - { - char buffer[1024]; - std::wcstombs(buffer, argv[i], sizeof(buffer)); - args.push_back(std::string(buffer)); - } - CppUnit::TestRunner runner; - runner.addTest("DataTestSuite", DataTestSuite::suite()); - return runner.run(args) ? 0 : 1; -} diff --git a/Data/testsuite/testsuite.cmake b/Data/testsuite/testsuite.cmake index 5e7334dea..c800fb031 100644 --- a/Data/testsuite/testsuite.cmake +++ b/Data/testsuite/testsuite.cmake @@ -11,10 +11,6 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS WIN src/WinDriver.cpp ) -POCO_SOURCES_AUTO_PLAT(TEST_SRCS WINCE - src/WinCEDriver.cpp -) - add_executable(Data-testrunner ${TEST_SRCS}) if(ANDROID) add_test( diff --git a/Encodings/testsuite/CMakeLists.txt b/Encodings/testsuite/CMakeLists.txt index 7f68ab71f..8be3bafa0 100644 --- a/Encodings/testsuite/CMakeLists.txt +++ b/Encodings/testsuite/CMakeLists.txt @@ -10,10 +10,6 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF src/WinDriver.cpp ) -POCO_SOURCES_AUTO_PLAT(TEST_SRCS WINCE - src/WinCEDriver.cpp -) - add_executable(Encodings-testrunner ${TEST_SRCS}) if(ANDROID) add_test( diff --git a/Encodings/testsuite/src/WinCEDriver.cpp b/Encodings/testsuite/src/WinCEDriver.cpp deleted file mode 100644 index 6a5d85ca2..000000000 --- a/Encodings/testsuite/src/WinCEDriver.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// -// WinCEDriver.cpp -// -// Console-based test driver for Windows CE. -// -// Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "CppUnit/TestRunner.h" -#include "EncodingsTestSuite.h" -#include - - -int wmain(int argc, wchar_t* argv[]) -{ - std::vector args; - for (int i = 0; i < argc; ++i) - { - char buffer[1024]; - std::wcstombs(buffer, argv[i], sizeof(buffer)); - args.push_back(std::string(buffer)); - } - CppUnit::TestRunner runner; - runner.addTest("EncodingsTestSuite", EncodingsTestSuite::suite()); - return runner.run(args) ? 0 : 1; -} diff --git a/Foundation/CMakeLists.txt b/Foundation/CMakeLists.txt index 748b30b8b..18fa814af 100644 --- a/Foundation/CMakeLists.txt +++ b/Foundation/CMakeLists.txt @@ -10,18 +10,10 @@ POCO_HEADERS_AUTO(SRCS ${HDRS_G}) POCO_SOURCES_AUTO_PLAT(SRCS UNIX src/SyslogChannel.cpp) POCO_HEADERS_AUTO(SRCS include/Poco/SyslogChannel.h) -# For Windows CE we need to disable these -if(WINCE) -POCO_SOURCES_AUTO_PLAT(SRCS OFF - src/WindowsConsoleChannel.cpp - src/EventLogChannel.cpp - ) -else() POCO_SOURCES_AUTO_PLAT(SRCS WIN32 src/WindowsConsoleChannel.cpp src/EventLogChannel.cpp ) -endif() # Version Resource if(MSVC AND BUILD_SHARED_LIBS) diff --git a/Foundation/extradirs b/Foundation/extradirs deleted file mode 100644 index 9cc510422..000000000 --- a/Foundation/extradirs +++ /dev/null @@ -1 +0,0 @@ -wcelibcex-1.0 \ No newline at end of file diff --git a/Foundation/include/Poco/Config.h b/Foundation/include/Poco/Config.h index 99463f58d..66a50fdd1 100644 --- a/Foundation/include/Poco/Config.h +++ b/Foundation/include/Poco/Config.h @@ -42,7 +42,7 @@ // #define POCO_NO_SHAREDMEMORY -// Define if no header is available (such as on WinCE) +// Define if no header is available // #define POCO_NO_LOCALE @@ -165,12 +165,6 @@ #endif -// Windows CE has no locale support -#if defined(_WIN32_WCE) - #define POCO_NO_LOCALE -#endif - - // Enable the poco_debug_* and poco_trace_* macros // even if the _DEBUG variable is not set. // This allows the use of these macros in a release version. diff --git a/Foundation/include/Poco/Environment_WINCE.h b/Foundation/include/Poco/Environment_WINCE.h deleted file mode 100644 index b513682f6..000000000 --- a/Foundation/include/Poco/Environment_WINCE.h +++ /dev/null @@ -1,59 +0,0 @@ -// -// Environment_WINCE.h -// -// Library: Foundation -// Package: Core -// Module: Environment -// -// Definition of the EnvironmentImpl class for WINCE. -// -// Copyright (c) 2009-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#ifndef Foundation_Environment_WINCE_INCLUDED -#define Foundation_Environment_WINCE_INCLUDED - - -#include "Poco/Foundation.h" - - -namespace Poco { - - -class Foundation_API EnvironmentImpl -{ -public: - typedef UInt8 NodeId[6]; /// Ethernet address. - - static std::string getImpl(const std::string& name); - static bool hasImpl(const std::string& name); - static void setImpl(const std::string& name, const std::string& value); - static std::string osNameImpl(); - static std::string osDisplayNameImpl(); - static std::string osVersionImpl(); - static std::string osArchitectureImpl(); - static std::string nodeNameImpl(); - static void nodeIdImpl(NodeId& id); - static unsigned processorCountImpl(); - -private: - static bool envVar(const std::string& name, std::string* value); - - static const std::string TEMP; - static const std::string TMP; - static const std::string HOMEPATH; - static const std::string COMPUTERNAME; - static const std::string OS; - static const std::string NUMBER_OF_PROCESSORS; - static const std::string PROCESSOR_ARCHITECTURE; -}; - - -} // namespace Poco - - -#endif // Foundation_Environment_WINCE_INCLUDED diff --git a/Foundation/include/Poco/File.h b/Foundation/include/Poco/File.h index 2ba1e964c..c13159da2 100644 --- a/Foundation/include/Poco/File.h +++ b/Foundation/include/Poco/File.h @@ -24,11 +24,7 @@ #if defined(POCO_OS_FAMILY_WINDOWS) -#if defined(_WIN32_WCE) -#include "File_WINCE.h" -#else #include "Poco/File_WIN32U.h" -#endif #elif defined(POCO_VXWORKS) #include "Poco/File_VX.h" #elif defined(POCO_OS_FAMILY_UNIX) diff --git a/Foundation/include/Poco/File_WINCE.h b/Foundation/include/Poco/File_WINCE.h deleted file mode 100644 index 336ff6ef3..000000000 --- a/Foundation/include/Poco/File_WINCE.h +++ /dev/null @@ -1,95 +0,0 @@ -// -// File_WIN32U.h -// -// Library: Foundation -// Package: Filesystem -// Module: File -// -// Definition of the Unicode FileImpl class for WIN32. -// -// Copyright (c) 2006-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#ifndef Foundation_File_WINCE_INCLUDED -#define Foundation_File_WINCE_INCLUDED - - -#include "Poco/Foundation.h" -#include "Poco/Timestamp.h" - - -namespace Poco { - - -class Foundation_API FileImpl -{ -protected: - - enum Options { - OPT_FAIL_ON_OVERWRITE_IMPL = 0x01 - }; - - typedef UInt64 FileSizeImpl; - - FileImpl(); - FileImpl(const std::string& path); - virtual ~FileImpl(); - void swapImpl(FileImpl& file); - void setPathImpl(const std::string& path); - const std::string& getPathImpl() const; - bool existsImpl() const; - bool canReadImpl() const; - bool canWriteImpl() const; - bool canExecuteImpl() const; - bool isFileImpl() const; - bool isDirectoryImpl() const; - bool isLinkImpl() const; - bool isDeviceImpl() const; - bool isHiddenImpl() const; - Timestamp createdImpl() const; - Timestamp getLastModifiedImpl() const; - void setLastModifiedImpl(const Timestamp& ts); - FileSizeImpl getSizeImpl() const; - void setSizeImpl(FileSizeImpl size); - void setWriteableImpl(bool flag = true); - void setExecutableImpl(bool flag = true); - void copyToImpl(const std::string& path, int options = 0) const; - void renameToImpl(const std::string& path, int options = 0); - void linkToImpl(const std::string& path, int type) const; - void removeImpl(); - bool createFileImpl(); - bool createDirectoryImpl(); - FileSizeImpl totalSpaceImpl() const; - FileSizeImpl usableSpaceImpl() const; - FileSizeImpl freeSpaceImpl() const; - static void handleLastErrorImpl(const std::string& path); - static void convertPath(const std::string& utf8Path, std::wstring& utf16Path); - -private: - std::string _path; - std::wstring _upath; - - friend class FileHandle; - friend class DirectoryIteratorImpl; - friend class FileStreamBuf; - friend class LogFileImpl; -}; - - -// -// inlines -// -inline const std::string& FileImpl::getPathImpl() const -{ - return _path; -} - - -} // namespace Poco - - -#endif // Foundation_File_WINCE_INCLUDED diff --git a/Foundation/include/Poco/Foundation.h b/Foundation/include/Poco/Foundation.h index a217ecef9..83133af79 100644 --- a/Foundation/include/Poco/Foundation.h +++ b/Foundation/include/Poco/Foundation.h @@ -44,7 +44,7 @@ // Foundation_API functions as being imported from a DLL, wheras this DLL sees symbols // defined with this macro as being exported. // -#if (defined(_WIN32) || defined(_WIN32_WCE)) && defined(POCO_DLL) +#if defined(_WIN32) && defined(POCO_DLL) #if defined(Foundation_EXPORTS) #define Foundation_API __declspec(dllexport) #else diff --git a/Foundation/include/Poco/Mutex.h b/Foundation/include/Poco/Mutex.h index 5b926ceea..a7a4100fa 100644 --- a/Foundation/include/Poco/Mutex.h +++ b/Foundation/include/Poco/Mutex.h @@ -28,11 +28,7 @@ #include "Poco/Mutex_STD.h" #else #if defined(POCO_OS_FAMILY_WINDOWS) -#if defined(_WIN32_WCE) -#include "Poco/Mutex_WINCE.h" -#else #include "Poco/Mutex_WIN32.h" -#endif #elif defined(POCO_VXWORKS) #include "Poco/Mutex_VX.h" #else diff --git a/Foundation/include/Poco/Mutex_WINCE.h b/Foundation/include/Poco/Mutex_WINCE.h deleted file mode 100644 index 27f93a72a..000000000 --- a/Foundation/include/Poco/Mutex_WINCE.h +++ /dev/null @@ -1,50 +0,0 @@ -// -// Mutex_WIN32.h -// -// Library: Foundation -// Package: Threading -// Module: Mutex -// -// Definition of the MutexImpl and FastMutexImpl classes for WIN32. -// -// Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#ifndef Foundation_Mutex_WINCE_INCLUDED -#define Foundation_Mutex_WINCE_INCLUDED - - -#include "Poco/Foundation.h" -#include "Poco/Exception.h" -#include "Poco/UnWindows.h" - - -namespace Poco { - - -class Foundation_API MutexImpl -{ -protected: - MutexImpl(); - ~MutexImpl(); - void lockImpl(); - bool tryLockImpl(); - bool tryLockImpl(long milliseconds); - void unlockImpl(); - -private: - HANDLE _mutex; -}; - - -typedef MutexImpl FastMutexImpl; - - -} // namespace Poco - - -#endif // Foundation_Mutex_WINCE_INCLUDED diff --git a/Foundation/include/Poco/Path_WINCE.h b/Foundation/include/Poco/Path_WINCE.h deleted file mode 100644 index 32677150d..000000000 --- a/Foundation/include/Poco/Path_WINCE.h +++ /dev/null @@ -1,55 +0,0 @@ -// -// Path_WINCE.h -// -// Library: Foundation -// Package: Filesystem -// Module: Path -// -// Definition of the PathImpl class for WIN32. -// -// Copyright (c) 2006-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#ifndef Foundation_Path_WINCE_INCLUDED -#define Foundation_Path_WINCE_INCLUDED - - -#include "Poco/Foundation.h" -#include - - -namespace Poco { - - -class Foundation_API PathImpl -{ -public: - static std::string selfImpl(); - static std::string currentImpl(); - static std::string homeImpl(); - static std::string configHomeImpl(); - static std::string dataHomeImpl(); - static std::string cacheHomeImpl(); - static std::string tempHomeImpl(); - static std::string tempImpl(); - static std::string configImpl(); - static std::string nullImpl(); - static std::string systemImpl(); - static std::string expandImpl(const std::string& path); - static void listRootsImpl(std::vector& roots); - - enum - { - MAX_PATH_LEN = 32767 - }; -}; - - -} // namespace Poco - - -#endif // Foundation_Path_WINCE_INCLUDED diff --git a/Foundation/include/Poco/PipeImpl.h b/Foundation/include/Poco/PipeImpl.h index b0b718370..1d94003a1 100644 --- a/Foundation/include/Poco/PipeImpl.h +++ b/Foundation/include/Poco/PipeImpl.h @@ -22,11 +22,7 @@ #if defined(POCO_OS_FAMILY_WINDOWS) -#if defined(_WIN32_WCE) -#include "PipeImpl_DUMMY.h" -#else #include "Poco/PipeImpl_WIN32.h" -#endif #elif defined(POCO_OS_FAMILY_UNIX) #include "Poco/PipeImpl_POSIX.h" #else diff --git a/Foundation/include/Poco/Platform.h b/Foundation/include/Poco/Platform.h index 97ffacd2b..81c483b67 100644 --- a/Foundation/include/Poco/Platform.h +++ b/Foundation/include/Poco/Platform.h @@ -41,7 +41,6 @@ #define POCO_OS_ANDROID 0x000f #define POCO_OS_UNKNOWN_UNIX 0x00ff #define POCO_OS_WINDOWS_NT 0x1001 -#define POCO_OS_WINDOWS_CE 0x1011 #define POCO_OS_VMS 0x2001 @@ -101,9 +100,6 @@ #elif defined(unix) || defined(__unix) || defined(__unix__) #define POCO_OS_FAMILY_UNIX 1 #define POCO_OS POCO_OS_UNKNOWN_UNIX -#elif defined(_WIN32_WCE) - #define POCO_OS_FAMILY_WINDOWS 1 - #define POCO_OS POCO_OS_WINDOWS_CE #elif defined(_WIN32) || defined(_WIN64) #define POCO_OS_FAMILY_WINDOWS 1 #define POCO_OS POCO_OS_WINDOWS_NT @@ -212,7 +208,7 @@ #define POCO_ARCH_BIG_ENDIAN 1 #elif defined(__sh__) || defined(__sh) || defined(SHx) || defined(_SHX_) #define POCO_ARCH POCO_ARCH_SH - #if defined(__LITTLE_ENDIAN__) || (POCO_OS == POCO_OS_WINDOWS_CE) + #if defined(__LITTLE_ENDIAN__) #define POCO_ARCH_LITTLE_ENDIAN 1 #else #define POCO_ARCH_BIG_ENDIAN 1 diff --git a/Foundation/include/Poco/Process.h b/Foundation/include/Poco/Process.h index e1aa2afd9..717040444 100644 --- a/Foundation/include/Poco/Process.h +++ b/Foundation/include/Poco/Process.h @@ -22,11 +22,7 @@ #if defined(POCO_OS_FAMILY_WINDOWS) -#if defined(_WIN32_WCE) -#include "Process_WINCE.h" -#else #include "Poco/Process_WIN32U.h" -#endif #elif defined(POCO_VXWORKS) #include "Poco/Process_VX.h" #elif defined(POCO_OS_FAMILY_UNIX) diff --git a/Foundation/include/Poco/Process_WINCE.h b/Foundation/include/Poco/Process_WINCE.h deleted file mode 100644 index 045329e63..000000000 --- a/Foundation/include/Poco/Process_WINCE.h +++ /dev/null @@ -1,85 +0,0 @@ -// -// Process_WINCE.h -// -// Library: Foundation -// Package: Processes -// Module: Process -// -// Definition of the ProcessImpl class for WIN32. -// -// Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#ifndef Foundation_Process_WINCE_INCLUDED -#define Foundation_Process_WINCE_INCLUDED - - -#include "Poco/Foundation.h" -#include "Poco/RefCountedObject.h" -#include -#include -#include "Poco/UnWindows.h" - - -namespace Poco { - - -class Pipe; - - -class Foundation_API ProcessHandleImpl: public RefCountedObject -{ -public: - ProcessHandleImpl(HANDLE _hProcess, UInt32 pid); - ~ProcessHandleImpl(); - - UInt32 id() const; - HANDLE process() const; - int wait() const; - int tryWait() const; - void closeHandle(); - -private: - HANDLE _hProcess; - UInt32 _pid; - - ProcessHandleImpl(const ProcessHandleImpl&); - ProcessHandleImpl& operator = (const ProcessHandleImpl&); -}; - - -class Foundation_API ProcessImpl -{ -public: - typedef UInt32 PIDImpl; - typedef std::vector ArgsImpl; - typedef std::map EnvImpl; - - static PIDImpl idImpl(); - static void timesImpl(long& userTime, long& kernelTime); - static ProcessHandleImpl* launchImpl( - const std::string& command, - const ArgsImpl& args, - const std::string& initialDirectory, - Pipe* inPipe, - Pipe* outPipe, - Pipe* errPipe, - const EnvImpl& env, - int options = 0); - static void killImpl(ProcessHandleImpl& handle); - static void killImpl(PIDImpl pid); - static bool isRunningImpl(const ProcessHandleImpl& handle); - static bool isRunningImpl(PIDImpl pid); - static void requestTerminationImpl(PIDImpl pid); - static std::string terminationEventName(PIDImpl pid); -}; - - -} // namespace Poco - - -#endif // Foundation_Process_WINCE_INCLUDED diff --git a/Foundation/include/Poco/RWLock.h b/Foundation/include/Poco/RWLock.h index 60ce8bf9c..b0ea3e456 100644 --- a/Foundation/include/Poco/RWLock.h +++ b/Foundation/include/Poco/RWLock.h @@ -23,11 +23,7 @@ #if defined(POCO_OS_FAMILY_WINDOWS) -#if defined(_WIN32_WCE) -#include "Poco/RWLock_WINCE.h" -#else #include "Poco/RWLock_WIN32.h" -#endif #elif POCO_OS == POCO_OS_ANDROID #include "Poco/RWLock_Android.h" #elif defined(POCO_VXWORKS) diff --git a/Foundation/include/Poco/RWLock_WINCE.h b/Foundation/include/Poco/RWLock_WINCE.h deleted file mode 100644 index 13d080654..000000000 --- a/Foundation/include/Poco/RWLock_WINCE.h +++ /dev/null @@ -1,61 +0,0 @@ -// -// RWLock_WINCE.h -// -// Library: Foundation -// Package: Threading -// Module: RWLock -// -// Definition of the RWLockImpl class for WINCE. -// -// Copyright (c) 2009-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#ifndef Foundation_RWLock_WINCE_INCLUDED -#define Foundation_RWLock_WINCE_INCLUDED - - -#include "Poco/Foundation.h" -#include "Poco/Exception.h" -#include "Poco/UnWindows.h" - - -namespace Poco { - - -class Foundation_API RWLockImpl - /// This implementation is based on the one from Stone Steps Inc, - /// licensed under the BSD license. - /// http://forums.stonesteps.ca/thread.asp?t=105 - /// - /// Note that with this implementation, writers always take - /// precedence over readers. -{ -protected: - RWLockImpl(); - ~RWLockImpl(); - void readLockImpl(); - bool tryReadLockImpl(DWORD timeout = 1); - void writeLockImpl(); - bool tryWriteLockImpl(DWORD timeout = 1); - void unlockImpl(); - -private: - DWORD _readerCount; - DWORD _readerWaiting; - DWORD _writerCount; - DWORD _writerWaiting; - HANDLE _readerGreen; - HANDLE _writerGreen; - CRITICAL_SECTION _cs; - bool _writeLock; -}; - - -} // namespace Poco - - -#endif // Foundation_RWLock_WINCE_INCLUDED diff --git a/Foundation/include/Poco/Thread.h b/Foundation/include/Poco/Thread.h index 30eaa2d51..56f45e561 100644 --- a/Foundation/include/Poco/Thread.h +++ b/Foundation/include/Poco/Thread.h @@ -26,11 +26,7 @@ #if defined(POCO_OS_FAMILY_WINDOWS) -#if defined(_WIN32_WCE) -#include "Poco/Thread_WINCE.h" -#else #include "Poco/Thread_WIN32.h" -#endif #elif defined(POCO_VXWORKS) #include "Poco/Thread_VX.h" #else diff --git a/Foundation/include/Poco/Thread_WINCE.h b/Foundation/include/Poco/Thread_WINCE.h deleted file mode 100644 index e998e8d32..000000000 --- a/Foundation/include/Poco/Thread_WINCE.h +++ /dev/null @@ -1,194 +0,0 @@ -// -// Thread_WINCE.h -// -// Library: Foundation -// Package: Threading -// Module: Thread -// -// Definition of the ThreadImpl class for WIN32. -// -// Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#ifndef Foundation_Thread_WINCE_INCLUDED -#define Foundation_Thread_WINCE_INCLUDED - - -#include "Poco/Foundation.h" -#include "Poco/Runnable.h" -#include "Poco/SharedPtr.h" -#include "Poco/UnWindows.h" - - -#if !defined(TLS_OUT_OF_INDEXES) // Windows CE 5.x does not define this -#define TLS_OUT_OF_INDEXES 0xFFFFFFFF -#endif - - -namespace Poco { - - -class Foundation_API ThreadImpl -{ -public: - typedef DWORD TIDImpl; - typedef void (*Callable)(void*); - typedef DWORD (WINAPI *Entry)(LPVOID); - - enum Priority - { - PRIO_LOWEST_IMPL = THREAD_PRIORITY_LOWEST, - PRIO_LOW_IMPL = THREAD_PRIORITY_BELOW_NORMAL, - PRIO_NORMAL_IMPL = THREAD_PRIORITY_NORMAL, - PRIO_HIGH_IMPL = THREAD_PRIORITY_ABOVE_NORMAL, - PRIO_HIGHEST_IMPL = THREAD_PRIORITY_HIGHEST - }; - - enum Policy - { - POLICY_DEFAULT_IMPL = 0 - }; - - ThreadImpl(); - ~ThreadImpl(); - - TIDImpl tidImpl() const; - void setNameImpl(const std::string& threadName); - std::string getNameImpl() const; - std::string getOSThreadNameImpl(); - /// Returns the thread's name, expressed as an operating system - /// specific name value. Return empty string if thread is not running. - /// For test used only. - void setPriorityImpl(int prio); - int getPriorityImpl() const; - void setOSPriorityImpl(int prio, int policy = 0); - int getOSPriorityImpl() const; - static int getMinOSPriorityImpl(int policy); - static int getMaxOSPriorityImpl(int policy); - void setStackSizeImpl(int size); - int getStackSizeImpl() const; - void startImpl(SharedPtr pTarget); - void joinImpl(); - bool joinImpl(long milliseconds); - bool isRunningImpl() const; - static void yieldImpl(); - static ThreadImpl* currentImpl(); - static TIDImpl currentTidImpl(); - static long currentOsTidImpl(); - bool setAffinityImpl(int); - int getAffinityImpl() const; - -protected: - static DWORD WINAPI runnableEntry(LPVOID pThread); - - void createImpl(Entry ent, void* pData); - void threadCleanup(); - -private: - class CurrentThreadHolder - { - public: - CurrentThreadHolder(): _slot(TlsAlloc()) - { - if (_slot == TLS_OUT_OF_INDEXES) - throw SystemException("cannot allocate thread context key"); - } - ~CurrentThreadHolder() - { - TlsFree(_slot); - } - ThreadImpl* get() const - { - return reinterpret_cast(TlsGetValue(_slot)); - } - void set(ThreadImpl* pThread) - { - TlsSetValue(_slot, pThread); - } - - private: - DWORD _slot; - }; - - SharedPtr _pRunnableTarget; - HANDLE _thread; - DWORD _threadId; - int _prio; - int _stackSize; - std::string _name; - - static CurrentThreadHolder _currentThreadHolder; -}; - - -// -// inlines -// -inline int ThreadImpl::getPriorityImpl() const -{ - return _prio; -} - - -inline int ThreadImpl::getOSPriorityImpl() const -{ - return _prio; -} - - -inline int ThreadImpl::getMinOSPriorityImpl(int /* policy */) -{ - return PRIO_LOWEST_IMPL; -} - - -inline int ThreadImpl::getMaxOSPriorityImpl(int /* policy */) -{ - return PRIO_HIGHEST_IMPL; -} - - -inline void ThreadImpl::yieldImpl() -{ - Sleep(0); -} - - -inline void ThreadImpl::setStackSizeImpl(int size) -{ - _stackSize = size; -} - - -inline int ThreadImpl::getStackSizeImpl() const -{ - return _stackSize; -} - - -inline ThreadImpl::TIDImpl ThreadImpl::tidImpl() const -{ - return _threadId; -} - - -inline bool ThreadImpl::setAffinityImpl(int) -{ - return false; -} - - -inline int ThreadImpl::getAffinityImpl() const -{ - return -1; -} - - -} // namespace Poco - - -#endif // Foundation_Thread_WINCE_INCLUDED diff --git a/Foundation/src/Debugger.cpp b/Foundation/src/Debugger.cpp index f50a7f75b..3e9915fd1 100644 --- a/Foundation/src/Debugger.cpp +++ b/Foundation/src/Debugger.cpp @@ -37,20 +37,7 @@ bool Debugger::isAvailable() { #if defined(_DEBUG) #if defined(POCO_OS_FAMILY_WINDOWS) - #if defined(_WIN32_WCE) - #if (_WIN32_WCE >= 0x600) - BOOL isDebuggerPresent; - if (CheckRemoteDebuggerPresent(GetCurrentProcess(), &isDebuggerPresent)) - { - return isDebuggerPresent ? true : false; - } - return false; - #else - return false; - #endif - #else - return IsDebuggerPresent() ? true : false; - #endif + return IsDebuggerPresent() ? true : false; #elif defined(POCO_VXWORKS) return false; #elif defined(POCO_OS_FAMILY_UNIX) diff --git a/Foundation/src/DirectoryIterator_WIN32U.cpp b/Foundation/src/DirectoryIterator_WIN32U.cpp index 7289016ee..7655ac3fa 100644 --- a/Foundation/src/DirectoryIterator_WIN32U.cpp +++ b/Foundation/src/DirectoryIterator_WIN32U.cpp @@ -13,11 +13,7 @@ #include "Poco/DirectoryIterator_WIN32U.h" -#if defined(_WIN32_WCE) -#include "Poco/File_WINCE.h" -#else #include "Poco/File_WIN32U.h" -#endif #include "Poco/Path.h" #include "Poco/UnicodeConverter.h" #include diff --git a/Foundation/src/Environment.cpp b/Foundation/src/Environment.cpp index 5a1e3ec53..d59ef409e 100644 --- a/Foundation/src/Environment.cpp +++ b/Foundation/src/Environment.cpp @@ -28,12 +28,8 @@ #elif defined(POCO_OS_FAMILY_UNIX) #include "Environment_UNIX.cpp" #elif defined(POCO_OS_FAMILY_WINDOWS) -#if defined(_WIN32_WCE) -#include "Environment_WINCE.cpp" -#else #include "Environment_WIN32U.cpp" #endif -#endif namespace Poco { diff --git a/Foundation/src/Environment_WINCE.cpp b/Foundation/src/Environment_WINCE.cpp deleted file mode 100644 index 6c8b8f4a8..000000000 --- a/Foundation/src/Environment_WINCE.cpp +++ /dev/null @@ -1,244 +0,0 @@ -// -// Environment_WINCE.cpp -// -// Library: Foundation -// Package: Core -// Module: Environment -// -// Copyright (c) 2009-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "Poco/Environment_WINCE.h" -#include "Poco/Exception.h" -#include "Poco/UnicodeConverter.h" -#include "Poco/String.h" -#include "Poco/Path.h" -#include "Poco/NumberFormatter.h" -#include -#include -#include -#include - - -namespace Poco { - - -const std::string EnvironmentImpl::TEMP("TEMP"); -const std::string EnvironmentImpl::TMP("TMP"); -const std::string EnvironmentImpl::HOMEPATH("HOMEPATH"); -const std::string EnvironmentImpl::COMPUTERNAME("COMPUTERNAME"); -const std::string EnvironmentImpl::OS("OS"); -const std::string EnvironmentImpl::NUMBER_OF_PROCESSORS("NUMBER_OF_PROCESSORS"); -const std::string EnvironmentImpl::PROCESSOR_ARCHITECTURE("PROCESSOR_ARCHITECTURE"); - - -std::string EnvironmentImpl::getImpl(const std::string& name) -{ - std::string value; - if (!envVar(name, &value)) throw NotFoundException(name); - return value; -} - - -bool EnvironmentImpl::hasImpl(const std::string& name) -{ - return envVar(name, 0); -} - - -void EnvironmentImpl::setImpl(const std::string& name, const std::string& value) -{ - throw NotImplementedException("Cannot set environment variables on Windows CE"); -} - - -std::string EnvironmentImpl::osNameImpl() -{ - return "Windows CE"; -} - - -std::string EnvironmentImpl::osDisplayNameImpl() -{ - return osNameImpl(); -} - - -std::string EnvironmentImpl::osVersionImpl() -{ - OSVERSIONINFOW vi; - vi.dwOSVersionInfoSize = sizeof(vi); - if (GetVersionExW(&vi) == 0) throw SystemException("Cannot get OS version information"); - std::ostringstream str; - str << vi.dwMajorVersion << "." << vi.dwMinorVersion << " (Build " << (vi.dwBuildNumber & 0xFFFF); - std::string version; - UnicodeConverter::toUTF8(vi.szCSDVersion, version); - if (!version.empty()) str << ": " << version; - str << ")"; - return str.str(); -} - - -std::string EnvironmentImpl::osArchitectureImpl() -{ - SYSTEM_INFO si; - GetSystemInfo(&si); - switch (si.wProcessorArchitecture) - { - case PROCESSOR_ARCHITECTURE_INTEL: - return "IA32"; - case PROCESSOR_ARCHITECTURE_MIPS: - return "MIPS"; - case PROCESSOR_ARCHITECTURE_ALPHA: - return "ALPHA"; - case PROCESSOR_ARCHITECTURE_PPC: - return "PPC"; - case PROCESSOR_ARCHITECTURE_IA64: - return "IA64"; -#ifdef PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 - case PROCESSOR_ARCHITECTURE_IA32_ON_WIN64: - return "IA64/32"; -#endif -#ifdef PROCESSOR_ARCHITECTURE_AMD64 - case PROCESSOR_ARCHITECTURE_AMD64: - return "AMD64"; -#endif - case PROCESSOR_ARCHITECTURE_SHX: - return "SHX"; - case PROCESSOR_ARCHITECTURE_ARM: - return "ARM"; - default: - return "Unknown"; - } -} - - -std::string EnvironmentImpl::nodeNameImpl() -{ - HKEY hKey; - DWORD dwDisposition; - if (RegCreateKeyExW(HKEY_LOCAL_MACHINE, L"\\Ident", 0, 0, 0, 0, 0, &hKey, &dwDisposition) != ERROR_SUCCESS) - throw SystemException("Cannot get node name", "registry key not found"); - - std::string value; - DWORD dwType; - BYTE bData[1026]; - DWORD dwData = sizeof(bData); - if (RegQueryValueExW(hKey, L"Name", 0, &dwType, bData, &dwData) == ERROR_SUCCESS) - { - switch (dwType) - { - case REG_SZ: - UnicodeConverter::toUTF8(reinterpret_cast(bData), value); - break; - - default: - RegCloseKey(hKey); - throw SystemException("Cannot get node name", "registry value has wrong type"); - } - } - else - { - RegCloseKey(hKey); - throw SystemException("Cannot get node name", "registry value not found"); - } - RegCloseKey(hKey); - return value; -} - - -void EnvironmentImpl::nodeIdImpl(NodeId& id) -{ - PIP_ADAPTER_INFO pAdapterInfo; - PIP_ADAPTER_INFO pAdapter = 0; - ULONG len = sizeof(IP_ADAPTER_INFO); - pAdapterInfo = reinterpret_cast(new char[len]); - // Make an initial call to GetAdaptersInfo to get - // the necessary size into len - DWORD rc = GetAdaptersInfo(pAdapterInfo, &len); - if (rc == ERROR_BUFFER_OVERFLOW) - { - delete [] reinterpret_cast(pAdapterInfo); - pAdapterInfo = reinterpret_cast(new char[len]); - } - else if (rc != ERROR_SUCCESS) - { - delete[] reinterpret_cast(pAdapterInfo); - throw SystemException("cannot get network adapter list"); - } - try - { - bool found = false; - if (GetAdaptersInfo(pAdapterInfo, &len) == NO_ERROR) - { - pAdapter = pAdapterInfo; - while (pAdapter && !found) - { - if (pAdapter->Type == MIB_IF_TYPE_ETHERNET && pAdapter->AddressLength == sizeof(id)) - { - std::memcpy(&id, pAdapter->Address, pAdapter->AddressLength); - found = true; - } - pAdapter = pAdapter->Next; - } - } - else throw SystemException("cannot get network adapter list"); - if (!found) throw SystemException("no Ethernet adapter found"); - } - catch (Exception&) - { - delete [] reinterpret_cast(pAdapterInfo); - throw; - } - delete [] reinterpret_cast(pAdapterInfo); -} - - -unsigned EnvironmentImpl::processorCountImpl() -{ - SYSTEM_INFO si; - GetSystemInfo(&si); - return si.dwNumberOfProcessors; -} - - -bool EnvironmentImpl::envVar(const std::string& name, std::string* value) -{ - if (icompare(name, TEMP) == 0) - { - if (value) *value = Path::temp(); - } - else if (icompare(name, TMP) == 0) - { - if (value) *value = Path::temp(); - } - else if (icompare(name, HOMEPATH) == 0) - { - if (value) *value = Path::home(); - } - else if (icompare(name, COMPUTERNAME) == 0) - { - if (value) *value = nodeNameImpl(); - } - else if (icompare(name, OS) == 0) - { - if (value) *value = osNameImpl(); - } - else if (icompare(name, NUMBER_OF_PROCESSORS) == 0) - { - if (value) *value = NumberFormatter::format(processorCountImpl()); - } - else if (icompare(name, PROCESSOR_ARCHITECTURE) == 0) - { - if (value) *value = osArchitectureImpl(); - } - else return false; - return true; -} - - -} // namespace Poco diff --git a/Foundation/src/File.cpp b/Foundation/src/File.cpp index 7f96d5df7..9fe69ee2d 100644 --- a/Foundation/src/File.cpp +++ b/Foundation/src/File.cpp @@ -18,11 +18,7 @@ #if defined(POCO_OS_FAMILY_WINDOWS) -#if defined(_WIN32_WCE) -#include "File_WINCE.cpp" -#else #include "File_WIN32U.cpp" -#endif #elif defined(POCO_VXWORKS) #include "File_VX.cpp" #elif defined(POCO_OS_FAMILY_UNIX) diff --git a/Foundation/src/File_WINCE.cpp b/Foundation/src/File_WINCE.cpp deleted file mode 100644 index c894d3196..000000000 --- a/Foundation/src/File_WINCE.cpp +++ /dev/null @@ -1,447 +0,0 @@ -// -// File_WIN32U.cpp -// -// Library: Foundation -// Package: Filesystem -// Module: File -// -// Copyright (c) 2006-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "Poco/File_WINCE.h" -#include "Poco/Exception.h" -#include "Poco/String.h" -#include "Poco/UnicodeConverter.h" -#include "Poco/Path.h" -#include "Poco/UnWindows.h" - - -namespace Poco { - - -class FileHandle -{ -public: - FileHandle(const std::string& path, const std::wstring& upath, DWORD access, DWORD share, DWORD disp) - { - _h = CreateFileW(upath.c_str(), access, share, 0, disp, 0, 0); - if (_h == INVALID_HANDLE_VALUE) - { - FileImpl::handleLastErrorImpl(path); - } - } - - ~FileHandle() - { - if (_h != INVALID_HANDLE_VALUE) CloseHandle(_h); - } - - HANDLE get() const - { - return _h; - } - -private: - HANDLE _h; -}; - - -FileImpl::FileImpl() -{ -} - - -FileImpl::FileImpl(const std::string& path): _path(path) -{ - std::string::size_type n = _path.size(); - if (n > 1 && (_path[n - 1] == '\\' || _path[n - 1] == '/') && !((n == 3 && _path[1]==':'))) - { - _path.resize(n - 1); - } - convertPath(_path, _upath); -} - - -FileImpl::~FileImpl() -{ -} - - -void FileImpl::swapImpl(FileImpl& file) -{ - std::swap(_path, file._path); - std::swap(_upath, file._upath); -} - - -void FileImpl::setPathImpl(const std::string& path) -{ - _path = path; - std::string::size_type n = _path.size(); - if (n > 1 && (_path[n - 1] == '\\' || _path[n - 1] == '/') && !((n == 3 && _path[1]==':'))) - { - _path.resize(n - 1); - } - convertPath(_path, _upath); -} - - -bool FileImpl::existsImpl() const -{ - poco_assert (!_path.empty()); - - DWORD attr = GetFileAttributesW(_upath.c_str()); - if (attr == INVALID_FILE_ATTRIBUTES) - { - switch (GetLastError()) - { - case ERROR_FILE_NOT_FOUND: - case ERROR_PATH_NOT_FOUND: - case ERROR_NOT_READY: - case ERROR_INVALID_DRIVE: - return false; - default: - handleLastErrorImpl(_path); - } - } - return true; -} - - -bool FileImpl::canReadImpl() const -{ - poco_assert (!_path.empty()); - - DWORD attr = GetFileAttributesW(_upath.c_str()); - if (attr == INVALID_FILE_ATTRIBUTES) - { - switch (GetLastError()) - { - case ERROR_ACCESS_DENIED: - return false; - default: - handleLastErrorImpl(_path); - } - } - return true; -} - - -bool FileImpl::canWriteImpl() const -{ - poco_assert (!_path.empty()); - - DWORD attr = GetFileAttributesW(_upath.c_str()); - if (attr == INVALID_FILE_ATTRIBUTES) - handleLastErrorImpl(_path); - return (attr & FILE_ATTRIBUTE_READONLY) == 0; -} - - -bool FileImpl::canExecuteImpl() const -{ - Path p(_path); - return icompare(p.getExtension(), "exe") == 0; -} - - -bool FileImpl::isFileImpl() const -{ - return !isDirectoryImpl() && !isDeviceImpl(); -} - - -bool FileImpl::isDirectoryImpl() const -{ - poco_assert (!_path.empty()); - - DWORD attr = GetFileAttributesW(_upath.c_str()); - if (attr == INVALID_FILE_ATTRIBUTES) - handleLastErrorImpl(_path); - return (attr & FILE_ATTRIBUTE_DIRECTORY) != 0; -} - - -bool FileImpl::isLinkImpl() const -{ - return false; -} - - -bool FileImpl::isDeviceImpl() const -{ - return false; -} - - -bool FileImpl::isHiddenImpl() const -{ - poco_assert (!_path.empty()); - - DWORD attr = GetFileAttributesW(_upath.c_str()); - if (attr == INVALID_FILE_ATTRIBUTES) - handleLastErrorImpl(_path); - return (attr & FILE_ATTRIBUTE_HIDDEN) != 0; -} - - -Timestamp FileImpl::createdImpl() const -{ - poco_assert (!_path.empty()); - - WIN32_FILE_ATTRIBUTE_DATA fad; - if (GetFileAttributesExW(_upath.c_str(), GetFileExInfoStandard, &fad) == 0) - handleLastErrorImpl(_path); - return Timestamp::fromFileTimeNP(fad.ftCreationTime.dwLowDateTime, fad.ftCreationTime.dwHighDateTime); -} - - -Timestamp FileImpl::getLastModifiedImpl() const -{ - poco_assert (!_path.empty()); - - WIN32_FILE_ATTRIBUTE_DATA fad; - if (GetFileAttributesExW(_upath.c_str(), GetFileExInfoStandard, &fad) == 0) - handleLastErrorImpl(_path); - return Timestamp::fromFileTimeNP(fad.ftLastWriteTime.dwLowDateTime, fad.ftLastWriteTime.dwHighDateTime); -} - - -void FileImpl::setLastModifiedImpl(const Timestamp& ts) -{ - poco_assert (!_path.empty()); - - UInt32 low; - UInt32 high; - ts.toFileTimeNP(low, high); - FILETIME ft; - ft.dwLowDateTime = low; - ft.dwHighDateTime = high; - FileHandle fh(_path, _upath, GENERIC_WRITE, FILE_SHARE_WRITE, OPEN_EXISTING); - if (SetFileTime(fh.get(), 0, &ft, &ft) == 0) - handleLastErrorImpl(_path); -} - - -FileImpl::FileSizeImpl FileImpl::getSizeImpl() const -{ - poco_assert (!_path.empty()); - - WIN32_FILE_ATTRIBUTE_DATA fad; - if (GetFileAttributesExW(_upath.c_str(), GetFileExInfoStandard, &fad) == 0) - handleLastErrorImpl(_path); - LARGE_INTEGER li; - li.LowPart = fad.nFileSizeLow; - li.HighPart = fad.nFileSizeHigh; - return li.QuadPart; -} - - -void FileImpl::setSizeImpl(FileSizeImpl size) -{ - poco_assert (!_path.empty()); - - FileHandle fh(_path, _upath, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, OPEN_EXISTING); - LARGE_INTEGER li; - li.QuadPart = size; - if (SetFilePointer(fh.get(), li.LowPart, &li.HighPart, FILE_BEGIN) == INVALID_SET_FILE_POINTER) - handleLastErrorImpl(_path); - if (SetEndOfFile(fh.get()) == 0) - handleLastErrorImpl(_path); -} - - -void FileImpl::setWriteableImpl(bool flag) -{ - poco_assert (!_path.empty()); - - DWORD attr = GetFileAttributesW(_upath.c_str()); - if (attr == -1) - handleLastErrorImpl(_path); - if (flag) - attr &= ~FILE_ATTRIBUTE_READONLY; - else - attr |= FILE_ATTRIBUTE_READONLY; - if (SetFileAttributesW(_upath.c_str(), attr) == 0) - handleLastErrorImpl(_path); -} - - -void FileImpl::setExecutableImpl(bool flag) -{ - // not supported -} - - -void FileImpl::copyToImpl(const std::string& path, int options) const -{ - poco_assert (!_path.empty()); - - std::wstring upath; - convertPath(path, upath); - if (CopyFileW(_upath.c_str(), upath.c_str(), (options & OPT_FAIL_ON_OVERWRITE_IMPL) != 0) == 0) - handleLastErrorImpl(_path); -} - - -void FileImpl::renameToImpl(const std::string& path, int options) -{ - poco_assert (!_path.empty()); - - std::wstring upath; - convertPath(path, upath); - if (options & OPT_FAIL_ON_OVERWRITE_IMPL) { - if (MoveFileW(_upath.c_str(), upath.c_str()) == 0) - handleLastErrorImpl(_path); - } else { - if (MoveFileW(_upath.c_str(), upath.c_str(), MOVEFILE_REPLACE_EXISTING) == 0) - handleLastErrorImpl(_path); - } - -} - - -void FileImpl::linkToImpl(const std::string& path, int type) const -{ - throw Poco::NotImplementedException("File::linkTo() is not available on this platform"); -} - - -void FileImpl::removeImpl() -{ - poco_assert (!_path.empty()); - - if (isDirectoryImpl()) - { - if (RemoveDirectoryW(_upath.c_str()) == 0) - handleLastErrorImpl(_path); - } - else - { - if (DeleteFileW(_upath.c_str()) == 0) - handleLastErrorImpl(_path); - } -} - - -bool FileImpl::createFileImpl() -{ - poco_assert (!_path.empty()); - - HANDLE hFile = CreateFileW(_upath.c_str(), GENERIC_WRITE, 0, 0, CREATE_NEW, 0, 0); - if (hFile != INVALID_HANDLE_VALUE) - { - CloseHandle(hFile); - return true; - } - else if (GetLastError() == ERROR_FILE_EXISTS) - return false; - else - handleLastErrorImpl(_path); - return false; -} - - -bool FileImpl::createDirectoryImpl() -{ - poco_assert (!_path.empty()); - - if (existsImpl() && isDirectoryImpl()) - return false; - if (CreateDirectoryW(_upath.c_str(), 0) == 0) - handleLastErrorImpl(_path); - return true; -} - - -FileImpl::FileSizeImpl FileImpl::totalSpaceImpl() const -{ - poco_assert(!_path.empty()); - - ULARGE_INTEGER space; - if (!GetDiskFreeSpaceExW(_upath.c_str(), NULL, &space, NULL)) - handleLastErrorImpl(_path); - return space.QuadPart; -} - - -FileImpl::FileSizeImpl FileImpl::usableSpaceImpl() const -{ - poco_assert(!_path.empty()); - - ULARGE_INTEGER space; - if (!GetDiskFreeSpaceExW(_upath.c_str(), &space, NULL, NULL)) - handleLastErrorImpl(_path); - return space.QuadPart; -} - - -FileImpl::FileSizeImpl FileImpl::freeSpaceImpl() const -{ - poco_assert(!_path.empty()); - - ULARGE_INTEGER space; - if (!GetDiskFreeSpaceExW(_upath.c_str(), NULL, NULL, &space)) - handleLastErrorImpl(_path); - return space.QuadPart; -} - - -void FileImpl::handleLastErrorImpl(const std::string& path) -{ - switch (GetLastError()) - { - case ERROR_FILE_NOT_FOUND: - throw FileNotFoundException(path); - case ERROR_PATH_NOT_FOUND: - case ERROR_BAD_NETPATH: - case ERROR_CANT_RESOLVE_FILENAME: - case ERROR_INVALID_DRIVE: - throw PathNotFoundException(path); - case ERROR_ACCESS_DENIED: - throw FileAccessDeniedException(path); - case ERROR_ALREADY_EXISTS: - case ERROR_FILE_EXISTS: - throw FileExistsException(path); - case ERROR_INVALID_NAME: - case ERROR_DIRECTORY: - case ERROR_FILENAME_EXCED_RANGE: - case ERROR_BAD_PATHNAME: - throw PathSyntaxException(path); - case ERROR_FILE_READ_ONLY: - throw FileReadOnlyException(path); - case ERROR_CANNOT_MAKE: - throw CreateFileException(path); - case ERROR_DIR_NOT_EMPTY: - throw DirectoryNotEmptyException(path); - case ERROR_WRITE_FAULT: - throw WriteFileException(path); - case ERROR_READ_FAULT: - throw ReadFileException(path); - case ERROR_SHARING_VIOLATION: - throw FileException("sharing violation", path); - case ERROR_LOCK_VIOLATION: - throw FileException("lock violation", path); - case ERROR_HANDLE_EOF: - throw ReadFileException("EOF reached", path); - case ERROR_HANDLE_DISK_FULL: - case ERROR_DISK_FULL: - throw WriteFileException("disk is full", path); - case ERROR_NEGATIVE_SEEK: - throw FileException("negative seek", path); - default: - throw FileException(path); - } -} - - -void FileImpl::convertPath(const std::string& utf8Path, std::wstring& utf16Path) -{ - UnicodeConverter::toUTF16(utf8Path, utf16Path); -} - -} // namespace Poco diff --git a/Foundation/src/LocalDateTime.cpp b/Foundation/src/LocalDateTime.cpp index 846ebc7fc..7449d901f 100644 --- a/Foundation/src/LocalDateTime.cpp +++ b/Foundation/src/LocalDateTime.cpp @@ -23,9 +23,7 @@ #include "Poco/Exception.h" #include #include -#if defined(_WIN32_WCE) && _WIN32_WCE < 0x800 -#include "wce_time.h" -#elif defined(_WIN32) +#if defined(_WIN32) #include #endif @@ -268,14 +266,11 @@ void LocalDateTime::determineTzd(bool adjust) { std::time_t epochTime = _dateTime.timestamp().epochTime(); #if defined(_WIN32) || defined(POCO_NO_POSIX_TSF) -#if defined(_WIN32_WCE) && _WIN32_WCE < 0x800 - std::tm* broken = wceex_localtime(&epochTime); -#else std::tm brokenBuf; std::tm* broken = &brokenBuf; errno_t err = localtime_s(broken, &epochTime); if (err) broken = nullptr; -#endif + if (!broken) throw Poco::SystemException("cannot get local time"); _tzd = Timezone::utcOffset() + Timezone::dst(_dateTime.timestamp()); #else @@ -312,11 +307,8 @@ std::time_t LocalDateTime::dstOffset(int& dstOffset) const broken.tm_min = _dateTime.minute(); broken.tm_sec = _dateTime.second(); broken.tm_isdst = -1; -#if defined(_WIN32_WCE) && _WIN32_WCE < 0x800 - local = wceex_mktime(&broken); -#else + local = std::mktime(&broken); -#endif dstOffset = (broken.tm_isdst == 1) ? Timezone::dst(_dateTime.timestamp()) : 0; return local; diff --git a/Foundation/src/LoggingFactory.cpp b/Foundation/src/LoggingFactory.cpp index 267e4dd4d..3b6edc3f3 100644 --- a/Foundation/src/LoggingFactory.cpp +++ b/Foundation/src/LoggingFactory.cpp @@ -25,7 +25,7 @@ #if defined(POCO_OS_FAMILY_UNIX) && !defined(POCO_NO_SYSLOGCHANNEL) #include "Poco/SyslogChannel.h" #endif -#if defined(POCO_OS_FAMILY_WINDOWS) && !defined(_WIN32_WCE) +#if defined(POCO_OS_FAMILY_WINDOWS) #include "Poco/EventLogChannel.h" #include "Poco/WindowsConsoleChannel.h" #endif @@ -85,7 +85,7 @@ LoggingFactory& LoggingFactory::defaultFactory() void LoggingFactory::registerBuiltins() { _channelFactory.registerClass("AsyncChannel", new Instantiator); -#if defined(POCO_OS_FAMILY_WINDOWS) && !defined(_WIN32_WCE) +#if defined(POCO_OS_FAMILY_WINDOWS) _channelFactory.registerClass("ConsoleChannel", new Instantiator); _channelFactory.registerClass("ColorConsoleChannel", new Instantiator); #else @@ -110,7 +110,7 @@ void LoggingFactory::registerBuiltins() #endif #endif -#if defined(POCO_OS_FAMILY_WINDOWS) && !defined(_WIN32_WCE) +#if defined(POCO_OS_FAMILY_WINDOWS) _channelFactory.registerClass("EventLogChannel", new Instantiator); #endif diff --git a/Foundation/src/Mutex.cpp b/Foundation/src/Mutex.cpp index 939e7afb4..aa8fb2c26 100644 --- a/Foundation/src/Mutex.cpp +++ b/Foundation/src/Mutex.cpp @@ -17,11 +17,7 @@ #if defined(POCO_ENABLE_STD_MUTEX) #include "Mutex_STD.cpp" #elif defined(POCO_OS_FAMILY_WINDOWS) -#if defined(_WIN32_WCE) -#include "Mutex_WINCE.cpp" -#else #include "Mutex_WIN32.cpp" -#endif #elif defined(POCO_VXWORKS) #include "Mutex_VX.cpp" #else diff --git a/Foundation/src/Mutex_WINCE.cpp b/Foundation/src/Mutex_WINCE.cpp deleted file mode 100644 index 927d98d99..000000000 --- a/Foundation/src/Mutex_WINCE.cpp +++ /dev/null @@ -1,80 +0,0 @@ -// -// Mutex_WINCE.cpp -// -// Library: Foundation -// Package: Threading -// Module: Mutex -// -// Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "Poco/Mutex_WINCE.h" - - -namespace Poco { - - -MutexImpl::MutexImpl() -{ - _mutex = CreateMutexW(NULL, FALSE, NULL); - if (!_mutex) throw SystemException("cannot create mutex"); -} - - -MutexImpl::~MutexImpl() -{ - CloseHandle(_mutex); -} - - -void MutexImpl::lockImpl() -{ - switch (WaitForSingleObject(_mutex, INFINITE)) - { - case WAIT_OBJECT_0: - return; - default: - throw SystemException("cannot lock mutex"); - } -} - - -bool MutexImpl::tryLockImpl() -{ - switch (WaitForSingleObject(_mutex, 0)) - { - case WAIT_TIMEOUT: - return false; - case WAIT_OBJECT_0: - return true; - default: - throw SystemException("cannot lock mutex"); - } -} - - -bool MutexImpl::tryLockImpl(long milliseconds) -{ - switch (WaitForSingleObject(_mutex, milliseconds + 1)) - { - case WAIT_TIMEOUT: - return false; - case WAIT_OBJECT_0: - return true; - default: - throw SystemException("cannot lock mutex"); - } -} - - -void MutexImpl::unlockImpl() -{ - ReleaseMutex(_mutex); -} - - -} // namespace Poco diff --git a/Foundation/src/Path.cpp b/Foundation/src/Path.cpp index 23e83aeb8..d69c40318 100644 --- a/Foundation/src/Path.cpp +++ b/Foundation/src/Path.cpp @@ -26,12 +26,8 @@ #if defined(POCO_OS_FAMILY_UNIX) #include "Path_UNIX.cpp" #elif defined(POCO_OS_FAMILY_WINDOWS) -#if defined(_WIN32_WCE) -#include "Path_WINCE.cpp" -#else #include "Path_WIN32U.cpp" #endif -#endif namespace Poco { diff --git a/Foundation/src/Path_WINCE.cpp b/Foundation/src/Path_WINCE.cpp deleted file mode 100644 index 7f2ba0739..000000000 --- a/Foundation/src/Path_WINCE.cpp +++ /dev/null @@ -1,148 +0,0 @@ -// -// Path_WIN32U.cpp -// -// Library: Foundation -// Package: Filesystem -// Module: Path -// -// Copyright (c) 2006-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "Poco/Path_WINCE.h" -#include "Poco/Environment_WINCE.h" -#include "Poco/UnicodeConverter.h" -#include "Poco/Buffer.h" -#include "Poco/Environment.h" -#include "Poco/Exception.h" -#include "Poco/UnWindows.h" - - -namespace Poco { - -std::string PathImpl::selfImpl() -{ - return(""); -} - -std::string PathImpl::currentImpl() -{ - return("\\"); -} - -std::string PathImpl::homeImpl() -{ - return("\\"); -} - -std::string PathImpl::configHomeImpl() -{ - return homeImpl(); -} - -std::string PathImpl::dataHomeImpl() -{ - return homeImpl(); -} - -std::string PathImpl::cacheHomeImpl() -{ - return homeImpl(); -} - - -std::string PathImpl::tempHomeImpl() -{ - return tempImpl(); -} - - -std::string PathImpl::configImpl() -{ - return("\\"); -} - -std::string PathImpl::systemImpl() -{ - return("\\"); -} - - -std::string PathImpl::nullImpl() -{ - return "NUL:"; -} - - -std::string PathImpl::tempImpl() -{ - return "\\Temp\\"; -} - - -std::string PathImpl::expandImpl(const std::string& path) -{ - std::string result; - std::string::const_iterator it = path.begin(); - std::string::const_iterator end = path.end(); - while (it != end) - { - if (*it == '%') - { - ++it; - if (it != end && *it == '%') - { - result += '%'; - } - else - { - std::string var; - while (it != end && *it != '%') var += *it++; - if (it != end) ++it; - result += Environment::get(var, ""); - } - } - else result += *it++; - } - return result; -} - - -void PathImpl::listRootsImpl(std::vector& roots) -{ - roots.clear(); - roots.push_back("\\"); - - WIN32_FIND_DATAW fd; - HANDLE hFind = FindFirstFileW(L"\\*.*", &fd); - if (hFind != INVALID_HANDLE_VALUE) - { - do - { - if ((fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && - (fd.dwFileAttributes & FILE_ATTRIBUTE_TEMPORARY)) - { - std::wstring name(fd.cFileName); - name += L"\\Vol:"; - HANDLE h = CreateFileW(name.c_str(), GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); - if (h != INVALID_HANDLE_VALUE) - { - // its a device volume - CloseHandle(h); - std::string name; - UnicodeConverter::toUTF8(fd.cFileName, name); - std::string root = "\\" + name; - roots.push_back(root); - } - } - } - while (FindNextFileW(hFind, &fd)); - FindClose(hFind); - } -} - - -} // namespace Poco diff --git a/Foundation/src/PipeImpl.cpp b/Foundation/src/PipeImpl.cpp index 0f43b45ba..1922bee48 100644 --- a/Foundation/src/PipeImpl.cpp +++ b/Foundation/src/PipeImpl.cpp @@ -16,11 +16,7 @@ #if defined(POCO_OS_FAMILY_WINDOWS) -#if defined(_WIN32_WCE) -#include "PipeImpl_DUMMY.cpp" -#else #include "PipeImpl_WIN32.cpp" -#endif #elif defined(POCO_OS_FAMILY_UNIX) #include "PipeImpl_POSIX.cpp" #else diff --git a/Foundation/src/Process.cpp b/Foundation/src/Process.cpp index f31a0ecbb..506890857 100644 --- a/Foundation/src/Process.cpp +++ b/Foundation/src/Process.cpp @@ -48,11 +48,7 @@ namespace #if defined(POCO_OS_FAMILY_WINDOWS) -#if defined(_WIN32_WCE) -#include "Process_WINCE.cpp" -#else #include "Process_WIN32U.cpp" -#endif #elif defined(POCO_VXWORKS) #include "Process_VX.cpp" #elif defined(POCO_OS_FAMILY_UNIX) diff --git a/Foundation/src/Process_WINCE.cpp b/Foundation/src/Process_WINCE.cpp deleted file mode 100644 index 96b26c946..000000000 --- a/Foundation/src/Process_WINCE.cpp +++ /dev/null @@ -1,244 +0,0 @@ -// -// Process_WINCE.cpp -// -// Library: Foundation -// Package: Processes -// Module: Process -// -// Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "Poco/Process_WINCE.h" -#include "Poco/Exception.h" -#include "Poco/NumberFormatter.h" -#include "Poco/NamedEvent.h" -#include "Poco/UnicodeConverter.h" -#include "Poco/Pipe.h" - - -namespace Poco { - - -// -// ProcessHandleImpl -// -ProcessHandleImpl::ProcessHandleImpl(HANDLE hProcess, UInt32 pid): - _hProcess(hProcess), - _pid(pid) -{ -} - - -ProcessHandleImpl::~ProcessHandleImpl() -{ - closeHandle(); -} - -void ProcessHandleImpl::closeHandle() -{ - if (_hProcess) - { - CloseHandle(_hProcess); - _hProcess = NULL; - } -} - -UInt32 ProcessHandleImpl::id() const -{ - return _pid; -} - - -HANDLE ProcessHandleImpl::process() const -{ - return _hProcess; -} - - -int ProcessHandleImpl::wait() const -{ - DWORD rc = WaitForSingleObject(_hProcess, INFINITE); - if (rc != WAIT_OBJECT_0) - throw SystemException("Wait failed for process", NumberFormatter::format(_pid)); - - DWORD exitCode; - if (GetExitCodeProcess(_hProcess, &exitCode) == 0) - throw SystemException("Cannot get exit code for process", NumberFormatter::format(_pid)); - - return exitCode; -} - - -int ProcessHandleImpl::tryWait() const -{ - DWORD exitCode; - if (GetExitCodeProcess(_hProcess, &exitCode) == 0) - throw SystemException("Cannot get exit code for process", NumberFormatter::format(_pid)); - if (exitCode == STILL_ACTIVE) - return -1; - else - return exitCode; -} - - -// -// ProcessImpl -// -ProcessImpl::PIDImpl ProcessImpl::idImpl() -{ - return GetCurrentProcessId(); -} - - -void ProcessImpl::timesImpl(long& userTime, long& kernelTime) -{ - FILETIME ftCreation; - FILETIME ftExit; - FILETIME ftKernel; - FILETIME ftUser; - - if (GetThreadTimes(GetCurrentThread(), &ftCreation, &ftExit, &ftKernel, &ftUser) != 0) - { - ULARGE_INTEGER time; - time.LowPart = ftKernel.dwLowDateTime; - time.HighPart = ftKernel.dwHighDateTime; - kernelTime = long(time.QuadPart/10000000L); - time.LowPart = ftUser.dwLowDateTime; - time.HighPart = ftUser.dwHighDateTime; - userTime = long(time.QuadPart/10000000L); - } - else - { - userTime = kernelTime = -1; - } -} - - -ProcessHandleImpl* ProcessImpl::launchImpl(const std::string& command, const ArgsImpl& args, const std::string& initialDirectory, Pipe* inPipe, Pipe* outPipe, Pipe* errPipe, const EnvImpl& env, int options) -{ - std::wstring ucommand; - UnicodeConverter::toUTF16(command, ucommand); - - std::string commandLine; - for (ArgsImpl::const_iterator it = args.begin(); it != args.end(); ++it) - { - if (it != args.begin()) commandLine.append(" "); - commandLine.append(*it); - } - - std::wstring ucommandLine; - UnicodeConverter::toUTF16(commandLine, ucommandLine); - - PROCESS_INFORMATION processInfo; - BOOL rc = CreateProcessW( - ucommand.c_str(), - const_cast(ucommandLine.c_str()), - NULL, - NULL, - FALSE, - 0, - NULL, - NULL, - NULL/*&startupInfo*/, - &processInfo - ); - - if (rc) - { - CloseHandle(processInfo.hThread); - return new ProcessHandleImpl(processInfo.hProcess, processInfo.dwProcessId); - } - else throw SystemException("Cannot launch process", command); -} - - -void ProcessImpl::killImpl(ProcessHandleImpl& handle) -{ - if (handle.process()) - { - if (TerminateProcess(handle.process(), 0) == 0) - { - handle.closeHandle(); - throw SystemException("cannot kill process"); - } - handle.closeHandle(); - } -} - - -void ProcessImpl::killImpl(PIDImpl pid) -{ - HANDLE hProc = OpenProcess(PROCESS_TERMINATE, FALSE, pid); - if (hProc) - { - if (TerminateProcess(hProc, 0) == 0) - { - CloseHandle(hProc); - throw SystemException("cannot kill process"); - } - CloseHandle(hProc); - } - else - { - switch (GetLastError()) - { - case ERROR_ACCESS_DENIED: - throw NoPermissionException("cannot kill process"); - case ERROR_NOT_FOUND: - throw NotFoundException("cannot kill process"); - default: - throw SystemException("cannot kill process"); - } - } -} - - -bool ProcessImpl::isRunningImpl(const ProcessHandleImpl& handle) -{ - bool result = true; - DWORD exitCode; - BOOL rc = GetExitCodeProcess(handle.process(), &exitCode); - if (!rc || exitCode != STILL_ACTIVE) result = false; - return result; -} - - -bool ProcessImpl::isRunningImpl(PIDImpl pid) -{ - HANDLE hProc = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, pid); - bool result = true; - if (hProc) - { - DWORD exitCode; - BOOL rc = GetExitCodeProcess(hProc, &exitCode); - if (!rc || exitCode != STILL_ACTIVE) result = false; - CloseHandle(hProc); - } - else - { - result = false; - } - return result; -} - - -void ProcessImpl::requestTerminationImpl(PIDImpl pid) -{ - NamedEvent ev(terminationEventName(pid)); - ev.set(); -} - - -std::string ProcessImpl::terminationEventName(PIDImpl pid) -{ - std::string evName("POCOTRM"); - NumberFormatter::appendHex(evName, pid, 8); - return evName; -} - - -} // namespace Poco diff --git a/Foundation/src/RWLock.cpp b/Foundation/src/RWLock.cpp index 2937a5798..9bf18cc65 100644 --- a/Foundation/src/RWLock.cpp +++ b/Foundation/src/RWLock.cpp @@ -16,11 +16,7 @@ #if defined(POCO_OS_FAMILY_WINDOWS) -#if defined(_WIN32_WCE) -#include "RWLock_WINCE.cpp" -#else #include "RWLock_WIN32.cpp" -#endif #elif POCO_OS == POCO_OS_ANDROID #include "RWLock_Android.cpp" #elif defined(POCO_VXWORKS) diff --git a/Foundation/src/RWLock_WINCE.cpp b/Foundation/src/RWLock_WINCE.cpp deleted file mode 100644 index f669605da..000000000 --- a/Foundation/src/RWLock_WINCE.cpp +++ /dev/null @@ -1,174 +0,0 @@ -// -// RWLock_WINCE.cpp -// -// Library: Foundation -// Package: Threading -// Module: RWLock -// -// Copyright (c) 2009-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "Poco/RWLock_WINCE.h" -#include "Poco/Thread.h" - - -namespace Poco { - - -RWLockImpl::RWLockImpl(): - _readerCount(0), - _readerWaiting(0), - _writerCount(0), - _writerWaiting(0), - _writeLock(false) - -{ - InitializeCriticalSection(&_cs); - _readerGreen = CreateEventW(NULL, FALSE, TRUE, NULL); - if (!_readerGreen) throw SystemException("Cannot create RWLock"); - _writerGreen = CreateEventW(NULL, FALSE, TRUE, NULL); - if (!_writerGreen) - { - CloseHandle(_readerGreen); - throw SystemException("Cannot create RWLock"); - } -} - - -RWLockImpl::~RWLockImpl() -{ - CloseHandle(_readerGreen); - CloseHandle(_writerGreen); - DeleteCriticalSection(&_cs); -} - - -void RWLockImpl::readLockImpl() -{ - tryReadLockImpl(INFINITE); -} - - -bool RWLockImpl::tryReadLockImpl(DWORD timeout) -{ - bool wait = false; - do - { - EnterCriticalSection(&_cs); - if (!_writerCount && !_writerWaiting) - { - if (wait) - { - _readerWaiting--; - wait = false; - } - _readerCount++; - } - else - { - if (!wait) - { - _readerWaiting++; - wait = true; - } - ResetEvent(_readerGreen); - } - LeaveCriticalSection(&_cs); - if (wait) - { - if (WaitForSingleObject(_readerGreen, timeout) != WAIT_OBJECT_0) - { - EnterCriticalSection(&_cs); - _readerWaiting--; - SetEvent(_readerGreen); - SetEvent(_writerGreen); - LeaveCriticalSection(&_cs); - return false; - } - } - } - while (wait); - - return true; -} - - -void RWLockImpl::writeLockImpl() -{ - tryWriteLockImpl(INFINITE); -} - - -bool RWLockImpl::tryWriteLockImpl(DWORD timeout) -{ - bool wait = false; - - do - { - EnterCriticalSection(&_cs); - if (!_readerCount && !_writerCount) - { - if (wait) - { - _writerWaiting--; - wait = false; - } - _writerCount++; - } - else - { - if (!wait) - { - _writerWaiting++; - wait = true; - } - ResetEvent(_writerGreen); - } - LeaveCriticalSection(&_cs); - if (wait) - { - if (WaitForSingleObject(_writerGreen, timeout) != WAIT_OBJECT_0) - { - EnterCriticalSection(&_cs); - _writerWaiting--; - SetEvent(_readerGreen); - SetEvent(_writerGreen); - LeaveCriticalSection(&_cs); - return false; - } - } - } - while (wait); - - _writeLock = true; - return true; -} - - -void RWLockImpl::unlockImpl() -{ - EnterCriticalSection(&_cs); - - if (_writeLock) - { - _writeLock = false; - _writerCount--; - } - else - { - _readerCount--; - } - if (_writerWaiting) - SetEvent(_writerGreen); - else if (_readerWaiting) - SetEvent(_readerGreen); - - LeaveCriticalSection(&_cs); -} - - -} // namespace Poco diff --git a/Foundation/src/Random.cpp b/Foundation/src/Random.cpp index 59df7122f..51d027c96 100644 --- a/Foundation/src/Random.cpp +++ b/Foundation/src/Random.cpp @@ -47,9 +47,6 @@ #include "Poco/Random.h" #include "Poco/RandomStream.h" #include -#if defined(_WIN32_WCE) && _WIN32_WCE < 0x800 -#include "wce_time.h" -#endif /* @@ -153,11 +150,8 @@ Random::Random(int stateSize) poco_assert (BREAK_0 <= stateSize && stateSize <= BREAK_4); _pBuffer = new char[stateSize]; -#if defined(_WIN32_WCE) && _WIN32_WCE < 0x800 - initState((UInt32) wceex_time(NULL), _pBuffer, stateSize); -#else + initState((UInt32) std::time(NULL), _pBuffer, stateSize); -#endif } diff --git a/Foundation/src/SharedLibrary_WIN32U.cpp b/Foundation/src/SharedLibrary_WIN32U.cpp index 6ecd4e953..4432fbc8f 100644 --- a/Foundation/src/SharedLibrary_WIN32U.cpp +++ b/Foundation/src/SharedLibrary_WIN32U.cpp @@ -44,10 +44,10 @@ void SharedLibraryImpl::loadImpl(const std::string& path, int /*flags*/) if (_handle) throw LibraryAlreadyLoadedException(_path); DWORD flags(0); -#if !defined(_WIN32_WCE) + Path p(path); if (p.isAbsolute()) flags |= LOAD_WITH_ALTERED_SEARCH_PATH; -#endif + std::wstring upath; UnicodeConverter::toUTF16(path, upath); _handle = LoadLibraryExW(upath.c_str(), 0, flags); @@ -88,13 +88,7 @@ void* SharedLibraryImpl::findSymbolImpl(const std::string& name) if (_handle) { -#if defined(_WIN32_WCE) - std::wstring uname; - UnicodeConverter::toUTF16(name, uname); - return (void*) GetProcAddressW((HMODULE) _handle, uname.c_str()); -#else return (void*) GetProcAddress((HMODULE) _handle, name.c_str()); -#endif } else return 0; } diff --git a/Foundation/src/SharedMemory_WIN32.cpp b/Foundation/src/SharedMemory_WIN32.cpp index 6d35611cd..f653eddf0 100644 --- a/Foundation/src/SharedMemory_WIN32.cpp +++ b/Foundation/src/SharedMemory_WIN32.cpp @@ -55,10 +55,7 @@ SharedMemoryImpl::SharedMemoryImpl(const std::string& name, std::size_t size, Sh { DWORD dwRetVal = GetLastError(); int retVal = static_cast(dwRetVal); -#if defined (_WIN32_WCE) - throw SystemException(Poco::format("Cannot create shared memory object %s [Error %d: %s]", - _name, retVal, Error::getMessage(dwRetVal))); -#else + if (_mode != PAGE_READONLY || dwRetVal != 5) { throw SystemException(Poco::format("Cannot create shared memory object %s [Error %d: %s]", @@ -72,7 +69,6 @@ SharedMemoryImpl::SharedMemoryImpl(const std::string& name, std::size_t size, Sh throw SystemException(Poco::format("Cannot open shared memory object %s [Error %d: %s]", _name, retVal, Error::getMessage(dwRetVal)), retVal); } -#endif } map(); } diff --git a/Foundation/src/Thread.cpp b/Foundation/src/Thread.cpp index fdc2b3bae..19171262b 100644 --- a/Foundation/src/Thread.cpp +++ b/Foundation/src/Thread.cpp @@ -21,11 +21,7 @@ #if defined(POCO_OS_FAMILY_WINDOWS) -#if defined(_WIN32_WCE) -#include "Thread_WINCE.cpp" -#else #include "Thread_WIN32.cpp" -#endif #elif defined(POCO_VXWORKS) #include "Thread_VX.cpp" #else diff --git a/Foundation/src/ThreadPool.cpp b/Foundation/src/ThreadPool.cpp index 028370f66..bb3f59600 100644 --- a/Foundation/src/ThreadPool.cpp +++ b/Foundation/src/ThreadPool.cpp @@ -20,9 +20,6 @@ #include "Poco/ErrorHandler.h" #include #include -#if defined(_WIN32_WCE) && _WIN32_WCE < 0x800 -#include "wce_time.h" -#endif namespace Poco { @@ -67,11 +64,7 @@ PooledThread::PooledThread(const std::string& name, int stackSize): { poco_assert_dbg (stackSize >= 0); _thread.setStackSize(stackSize); -#if defined(_WIN32_WCE) && _WIN32_WCE < 0x800 - _idleTime = wceex_time(NULL); -#else _idleTime = std::time(NULL); -#endif } @@ -135,11 +128,7 @@ int PooledThread::idleTime() { FastMutex::ScopedLock lock(_mutex); -#if defined(_WIN32_WCE) && _WIN32_WCE < 0x800 - return (int) (wceex_time(NULL) - _idleTime); -#else return (int) (time(NULL) - _idleTime); -#endif } @@ -212,11 +201,7 @@ void PooledThread::run() } FastMutex::ScopedLock lock(_mutex); _pTarget = 0; -#if defined(_WIN32_WCE) && _WIN32_WCE < 0x800 - _idleTime = wceex_time(NULL); -#else _idleTime = time(NULL); -#endif _idle = true; _targetCompleted.set(); ThreadLocalStorage::clear(); diff --git a/Foundation/src/Thread_WINCE.cpp b/Foundation/src/Thread_WINCE.cpp deleted file mode 100644 index 84544bbdf..000000000 --- a/Foundation/src/Thread_WINCE.cpp +++ /dev/null @@ -1,201 +0,0 @@ -// -// Thread_WINCE.h -// -// Library: Foundation -// Package: Threading -// Module: Thread -// -// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "Poco/Thread_WINCE.h" -#include "Poco/Exception.h" -#include "Poco/ErrorHandler.h" - -namespace Poco { - - -ThreadImpl::CurrentThreadHolder ThreadImpl::_currentThreadHolder; - - -ThreadImpl::ThreadImpl(): - _pRunnableTarget(0), - _thread(0), - _threadId(0), - _prio(PRIO_NORMAL_IMPL), - _stackSize(POCO_THREAD_STACK_SIZE) -{ -} - - -ThreadImpl::~ThreadImpl() -{ - if (_thread) CloseHandle(_thread); -} - -void ThreadImpl::setNameImpl(const std::string& threadName) -{ - std::string realName = threadName; - if (threadName.size() > POCO_MAX_THREAD_NAME_LEN) - { - int half = (POCO_MAX_THREAD_NAME_LEN - 1) / 2; - std::string truncName(threadName, 0, half); - truncName.append("~"); - truncName.append(threadName, threadName.size() - half); - realName = truncName; - } - - if (realName != _name) - { - _name = realName; - } -} - - -std::string ThreadImpl::getNameImpl() const -{ - return _name; -} - -std::string ThreadImpl::getOSThreadNameImpl() -{ - // return fake thread name; - return isRunningImpl() ? _name : ""; -} - -void ThreadImpl::setPriorityImpl(int prio) -{ - if (prio != _prio) - { - _prio = prio; - if (_thread) - { - if (SetThreadPriority(_thread, _prio) == 0) - throw SystemException("cannot set thread priority"); - } - } -} - - -void ThreadImpl::setOSPriorityImpl(int prio, int /* policy */) -{ - setPriorityImpl(prio); -} - - -void ThreadImpl::startImpl(SharedPtr pTarget) -{ - if (isRunningImpl()) - throw SystemException("thread already running"); - - _pRunnableTarget = pTarget; - - createImpl(runnableEntry, this); -} - - -void ThreadImpl::createImpl(Entry ent, void* pData) -{ - _thread = CreateThread(NULL, _stackSize, ent, pData, 0, &_threadId); - - if (!_thread) - throw SystemException("cannot create thread"); - if (_prio != PRIO_NORMAL_IMPL && !SetThreadPriority(_thread, _prio)) - throw SystemException("cannot set thread priority"); -} - - -void ThreadImpl::joinImpl() -{ - if (!_thread) return; - - switch (WaitForSingleObject(_thread, INFINITE)) - { - case WAIT_OBJECT_0: - threadCleanup(); - return; - default: - throw SystemException("cannot join thread"); - } -} - - -bool ThreadImpl::joinImpl(long milliseconds) -{ - if (!_thread) return true; - - switch (WaitForSingleObject(_thread, milliseconds + 1)) - { - case WAIT_TIMEOUT: - return false; - case WAIT_OBJECT_0: - threadCleanup(); - return true; - default: - throw SystemException("cannot join thread"); - } -} - - -bool ThreadImpl::isRunningImpl() const -{ - if (_thread) - { - DWORD ec = 0; - return GetExitCodeThread(_thread, &ec) && ec == STILL_ACTIVE; - } - return false; -} - - -void ThreadImpl::threadCleanup() -{ - if (!_thread) return; - if (CloseHandle(_thread)) _thread = 0; -} - - -ThreadImpl* ThreadImpl::currentImpl() -{ - return _currentThreadHolder.get(); -} - - -ThreadImpl::TIDImpl ThreadImpl::currentTidImpl() -{ - return GetCurrentThreadId(); -} - -long ThreadImpl::currentOsTidImpl() -{ - return GetCurrentThreadId(); -} - -DWORD WINAPI ThreadImpl::runnableEntry(LPVOID pThread) -{ - _currentThreadHolder.set(reinterpret_cast(pThread)); - try - { - reinterpret_cast(pThread)->_pRunnableTarget->run(); - } - catch (Exception& exc) - { - ErrorHandler::handle(exc); - } - catch (std::exception& exc) - { - ErrorHandler::handle(exc); - } - catch (...) - { - ErrorHandler::handle(); - } - return 0; -} - - -} // namespace Poco diff --git a/Foundation/src/Timestamp.cpp b/Foundation/src/Timestamp.cpp index da05a56bf..1bfccf613 100644 --- a/Foundation/src/Timestamp.cpp +++ b/Foundation/src/Timestamp.cpp @@ -30,9 +30,6 @@ #endif #elif defined(POCO_OS_FAMILY_WINDOWS) #include "Poco/UnWindows.h" -#if defined(_WIN32_WCE) -#include -#endif #endif @@ -45,109 +42,6 @@ #endif -#if defined(_WIN32_WCE) && defined(POCO_WINCE_TIMESTAMP_HACK) - - -// -// See -// for an explanation of the following code. -// -// In short: Windows CE system time in most cases only has a resolution of one second. -// But we want millisecond resolution. -// - - -namespace { - - -class TickOffset -{ -public: - TickOffset() - { - SYSTEMTIME st1, st2; - std::memset(&st1, 0, sizeof(SYSTEMTIME)); - std::memset(&st2, 0, sizeof(SYSTEMTIME)); - GetSystemTime(&st1); - while (true) - { - GetSystemTime(&st2); - - // wait for a rollover - if (st1.wSecond != st2.wSecond) - { - _offset = GetTickCount() % 1000; - break; - } - } - } - - void calibrate(int seconds) - { - SYSTEMTIME st1, st2; - systemTime(&st1); - - WORD s = st1.wSecond; - int sum = 0; - int remaining = seconds; - while (remaining > 0) - { - systemTime(&st2); - WORD s2 = st2.wSecond; - - if (s != s2) - { - remaining--; - // store the offset from zero - sum += (st2.wMilliseconds > 500) ? (st2.wMilliseconds - 1000) : st2.wMilliseconds; - s = st2.wSecond; - } - } - - // adjust the offset by the average deviation from zero (round to the integer farthest from zero) - if (sum < 0) - _offset += (int) std::floor(sum / (float)seconds); - else - _offset += (int) std::ceil(sum / (float)seconds); - } - - void systemTime(SYSTEMTIME* pST) - { - std::memset(pST, 0, sizeof(SYSTEMTIME)); - - WORD tick = GetTickCount() % 1000; - GetSystemTime(pST); - WORD ms = (tick >= _offset) ? (tick - _offset) : (1000 - (_offset - tick)); - pST->wMilliseconds = ms; - } - - void systemTimeAsFileTime(FILETIME* pFT) - { - SYSTEMTIME st; - systemTime(&st); - SystemTimeToFileTime(&st, pFT); - } - -private: - WORD _offset; -}; - - -static TickOffset offset; - - -void GetSystemTimeAsFileTimeWithMillisecondResolution(FILETIME* pFT) -{ - offset.systemTimeAsFileTime(pFT); -} - - -} // namespace - - -#endif // defined(_WIN32_WCE) && defined(POCO_WINCE_TIMESTAMP_HACK) - - namespace Poco { @@ -217,11 +111,7 @@ void Timestamp::update() #if defined(POCO_OS_FAMILY_WINDOWS) FILETIME ft; -#if defined(_WIN32_WCE) && defined(POCO_WINCE_TIMESTAMP_HACK) - GetSystemTimeAsFileTimeWithMillisecondResolution(&ft); -#else GetSystemTimeAsFileTime(&ft); -#endif ULARGE_INTEGER epoch; // UNIX epoch (1970-01-01 00:00:00) expressed in Windows NT FILETIME epoch.LowPart = 0xD53E8000; diff --git a/Foundation/src/Timezone.cpp b/Foundation/src/Timezone.cpp index a70a0cfe8..550824f3d 100644 --- a/Foundation/src/Timezone.cpp +++ b/Foundation/src/Timezone.cpp @@ -22,11 +22,7 @@ #if defined(POCO_OS_FAMILY_WINDOWS) -#if defined(_WIN32_WCE) -#include "Timezone_WINCE.cpp" -#else #include "Timezone_WIN32.cpp" -#endif #elif defined(POCO_VXWORKS) #include "Timezone_VX.cpp" #else diff --git a/Foundation/src/Timezone_WINCE.cpp b/Foundation/src/Timezone_WINCE.cpp deleted file mode 100644 index 99ae9ce3f..000000000 --- a/Foundation/src/Timezone_WINCE.cpp +++ /dev/null @@ -1,104 +0,0 @@ -// -// Timezone_WINCE.cpp -// -// Library: Foundation -// Package: DateTime -// Module: Timezone -// -// Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "Poco/Timezone.h" -#include "Poco/UnicodeConverter.h" -#include "Poco/Exception.h" -#include "Poco/UnWindows.h" -#include -#if _WIN32_WCE >= 0x800 -#include "time.h" -#else -#include "wce_time.h" -#endif - - -namespace Poco { - - -int Timezone::utcOffset() -{ - TIME_ZONE_INFORMATION tzInfo; - DWORD dstFlag = GetTimeZoneInformation(&tzInfo); - return -tzInfo.Bias*60; -} - - -int Timezone::dst() -{ - TIME_ZONE_INFORMATION tzInfo; - DWORD dstFlag = GetTimeZoneInformation(&tzInfo); - return dstFlag == TIME_ZONE_ID_DAYLIGHT ? -tzInfo.DaylightBias*60 : 0; -} - - -int Timezone::dst(const Poco::Timestamp& timestamp) -{ - if (isDst(timestamp)) - { - TIME_ZONE_INFORMATION tzInfo; - GetTimeZoneInformation(&tzInfo); - return -tzInfo.DaylightBias*60; - } - else return 0; -} - - -bool Timezone::isDst(const Timestamp& timestamp) -{ - std::time_t time = timestamp.epochTime(); -#if _WIN32_WCE >= 0x800 - struct std::tm* tms = localtime(&time); -#else - struct std::tm* tms = wceex_localtime(&time); -#endif - if (!tms) throw SystemException("cannot get local time DST flag"); - return tms->tm_isdst > 0; -} - - -std::string Timezone::name() -{ - std::string result; - TIME_ZONE_INFORMATION tzInfo; - DWORD dstFlag = GetTimeZoneInformation(&tzInfo); - WCHAR* ptr = dstFlag == TIME_ZONE_ID_DAYLIGHT ? tzInfo.DaylightName : tzInfo.StandardName; - UnicodeConverter::toUTF8(ptr, result); - return result; -} - - -std::string Timezone::standardName() -{ - std::string result; - TIME_ZONE_INFORMATION tzInfo; - DWORD dstFlag = GetTimeZoneInformation(&tzInfo); - WCHAR* ptr = tzInfo.StandardName; - UnicodeConverter::toUTF8(ptr, result); - return result; -} - - -std::string Timezone::dstName() -{ - std::string result; - TIME_ZONE_INFORMATION tzInfo; - DWORD dstFlag = GetTimeZoneInformation(&tzInfo); - WCHAR* ptr = tzInfo.DaylightName; - UnicodeConverter::toUTF8(ptr, result); - return result; -} - - -} // namespace Poco diff --git a/Foundation/testsuite/CMakeLists.txt b/Foundation/testsuite/CMakeLists.txt index 7e2c9b526..d421ae94a 100644 --- a/Foundation/testsuite/CMakeLists.txt +++ b/Foundation/testsuite/CMakeLists.txt @@ -4,7 +4,6 @@ set(TESTUNIT "Foundation-testrunner") file(GLOB SRCS_G "src/*.cpp") file(GLOB SRCS_G_REMOVE src/TestApp.cpp - src/TestApp_WINCE.cpp src/TestLibrary.cpp src/TestPlugin.cpp ) @@ -20,10 +19,6 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF src/WinDriver.cpp ) -POCO_SOURCES_AUTO_PLAT(TEST_SRCS WINCE - src/WinCEDriver.cpp -) - add_executable(Foundation-testrunner ${TEST_SRCS}) if(ANDROID) add_test( @@ -53,12 +48,7 @@ if(UNIX AND NOT ANDROID) endif(UNIX AND NOT ANDROID) # TestApp -if(WINCE) -add_executable(TestApp src/TestApp_WINCE.cpp) - set_target_properties(TestApp PROPERTIES LINK_FLAGS "/ENTRY:wmainCRTStartup") -else() - add_executable(TestApp src/TestApp.cpp) -endif() +add_executable(TestApp src/TestApp.cpp) # The test is run in the runtime directory. So the TestApp is built there too because it is used by the tests set_target_properties(TestApp PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) target_link_libraries(TestApp PUBLIC Poco::Foundation) diff --git a/Foundation/testsuite/src/CoreTest.cpp b/Foundation/testsuite/src/CoreTest.cpp index 7c61c0ec1..234d5071f 100644 --- a/Foundation/testsuite/src/CoreTest.cpp +++ b/Foundation/testsuite/src/CoreTest.cpp @@ -181,11 +181,11 @@ void CoreTest::testBugcheck() void CoreTest::testEnvironment() { -#if !defined(_WIN32_WCE) + Environment::set("FOO", "BAR"); assertTrue (Environment::has("FOO")); assertTrue (Environment::get("FOO") == "BAR"); -#endif + try { std::string v = Environment::get("THISONEDOESNOTEXIST123"); diff --git a/Foundation/testsuite/src/FileTest.cpp b/Foundation/testsuite/src/FileTest.cpp index a42899cc8..5b8b996eb 100644 --- a/Foundation/testsuite/src/FileTest.cpp +++ b/Foundation/testsuite/src/FileTest.cpp @@ -231,15 +231,13 @@ void FileTest::testFileAttributes3() #else File f("/dev/console"); #endif -#elif defined(POCO_OS_FAMILY_WINDOWS) && !defined(_WIN32_WCE) +#elif defined(POCO_OS_FAMILY_WINDOWS) File f("CON"); #endif -#if !defined(_WIN32_WCE) assertTrue (f.isDevice()); assertTrue (!f.isFile()); assertTrue (!f.isDirectory()); -#endif } @@ -271,12 +269,6 @@ void FileTest::testCompare() void FileTest::testRootDir() { #if defined(POCO_OS_FAMILY_WINDOWS) -#if defined(_WIN32_WCE) - File f1("\\"); - File f2("/"); - assertTrue (f1.exists()); - assertTrue (f2.exists()); -#else File f1("/"); File f2("c:/"); File f3("c:\\"); @@ -285,7 +277,6 @@ void FileTest::testRootDir() assertTrue (f2.exists()); assertTrue (f3.exists()); assertTrue (f4.exists()); -#endif #else File f1("/"); assertTrue (f1.exists()); @@ -588,7 +579,7 @@ void FileTest::testRenameFailIfExists() { void FileTest::testLongPath() { -#if defined(_WIN32) && !defined(_WIN32_WCE) +#if defined(_WIN32) Poco::Path p("longpathtest"); p.makeAbsolute(); std::string longpath(p.toString()); diff --git a/Foundation/testsuite/src/GlobTest.cpp b/Foundation/testsuite/src/GlobTest.cpp index 529fe8851..368d2ab89 100644 --- a/Foundation/testsuite/src/GlobTest.cpp +++ b/Foundation/testsuite/src/GlobTest.cpp @@ -456,13 +456,11 @@ void GlobTest::testGlob() assertTrue (files.find("globtest/testsuite/src/test.c") != files.end()); assertTrue (files.find("globtest/testsuite/src/main.c") != files.end()); -#if !defined(_WIN32_WCE) // won't work if current directory is root dir files.clear(); Glob::glob("globtest/../*/testsuite/*/", files); translatePaths(files); assertTrue (files.size() == 1); -#endif File dir("globtest"); dir.remove(true); diff --git a/Foundation/testsuite/src/LocalDateTimeTest.cpp b/Foundation/testsuite/src/LocalDateTimeTest.cpp index c1b8d4f08..c0f040273 100644 --- a/Foundation/testsuite/src/LocalDateTimeTest.cpp +++ b/Foundation/testsuite/src/LocalDateTimeTest.cpp @@ -25,9 +25,6 @@ #include "Poco/DateTimeFormatter.h" #include #include -#if defined(_WIN32_WCE) && _WIN32_WCE < 0x800 -#include "wce_time.h" -#endif using Poco::LocalDateTime; @@ -35,9 +32,7 @@ using Poco::DateTime; using Poco::Timestamp; using Poco::Timespan; using Poco::Timezone; -#ifndef _WIN32_WCE using std::strftime; -#endif LocalDateTimeTest::LocalDateTimeTest(const std::string& name): CppUnit::TestCase(name) @@ -368,7 +363,6 @@ void LocalDateTimeTest::testSwap() void LocalDateTimeTest::testTimezone() { -#if !defined(_WIN32_WCE) std::time_t tINCREMENT = (30 * 24 * 60 * 60); // 30 days Timespan tsINCREMENT(30*Timespan::DAYS); LocalDateTime now; @@ -450,7 +444,6 @@ void LocalDateTimeTest::testTimezone() << " - failed to locate DST boundary, timezone test skipped." << std::endl; } -#endif } diff --git a/Foundation/testsuite/src/LoggingFactoryTest.cpp b/Foundation/testsuite/src/LoggingFactoryTest.cpp index 2cb53b87b..7775d8fb2 100644 --- a/Foundation/testsuite/src/LoggingFactoryTest.cpp +++ b/Foundation/testsuite/src/LoggingFactoryTest.cpp @@ -80,7 +80,7 @@ void LoggingFactoryTest::testBuiltins() LoggingFactory& fact = LoggingFactory::defaultFactory(); Channel::Ptr pConsoleChannel = fact.createChannel("ConsoleChannel"); -#if defined(_WIN32) && !defined(_WIN32_WCE) +#if defined(_WIN32) assertTrue (!pConsoleChannel.cast().isNull()); #else assertTrue (!pConsoleChannel.cast().isNull()); diff --git a/Foundation/testsuite/src/PathTest.cpp b/Foundation/testsuite/src/PathTest.cpp index fc0af6844..86145e9b3 100644 --- a/Foundation/testsuite/src/PathTest.cpp +++ b/Foundation/testsuite/src/PathTest.cpp @@ -19,12 +19,8 @@ #if defined(POCO_OS_FAMILY_WINDOWS) -#if defined(_WIN32_WCE) -#include "Poco/Path_WINCE.h" -#else #include "Poco/Path_WIN32U.h" #endif -#endif using Poco::Path; @@ -1549,9 +1545,6 @@ void PathTest::testFind() bool found = Path::find(Environment::get("PATH"), "ls", p); bool notfound = Path::find(Environment::get("PATH"), "xxxyyy123", p); #elif defined(POCO_OS_FAMILY_WINDOWS) -#if defined(_WIN32_WCE) - return; -#endif bool found = Path::find(Environment::get("PATH"), "cmd.exe", p); bool notfound = Path::find(Environment::get("PATH"), "xxxyyy123.zzz", p); #else diff --git a/Foundation/testsuite/src/ProcessRunnerTest.cpp b/Foundation/testsuite/src/ProcessRunnerTest.cpp index fad57fb7b..e564a33c8 100644 --- a/Foundation/testsuite/src/ProcessRunnerTest.cpp +++ b/Foundation/testsuite/src/ProcessRunnerTest.cpp @@ -97,10 +97,6 @@ void ProcessRunnerTest::testProcessRunner() #if defined(POCO_OS_FAMILY_UNIX) cmd += name; -#elif defined(_WIN32_WCE) - cmd = "\\"; - cmd += name; - cmd += ".EXE"; #else cmd = name; #endif diff --git a/Foundation/testsuite/src/ProcessTest.cpp b/Foundation/testsuite/src/ProcessTest.cpp index f66fac4e5..b70e157ba 100644 --- a/Foundation/testsuite/src/ProcessTest.cpp +++ b/Foundation/testsuite/src/ProcessTest.cpp @@ -65,10 +65,6 @@ void ProcessTest::testLaunch() #if defined(POCO_OS_FAMILY_UNIX) cmd += name; -#elif defined(_WIN32_WCE) - cmd = "\\"; - cmd += name; - cmd += ".EXE"; #else cmd = name; #endif @@ -85,7 +81,6 @@ void ProcessTest::testLaunch() void ProcessTest::testLaunchRedirectIn() { -#if !defined(_WIN32_WCE) std::string name("TestApp"); std::string cmd; #if defined(_DEBUG) && (POCO_OS != POCO_OS_ANDROID) @@ -107,13 +102,11 @@ void ProcessTest::testLaunchRedirectIn() ostr.close(); int rc = ph.wait(); assertTrue (rc == 100); -#endif // !defined(_WIN32_WCE) } void ProcessTest::testLaunchRedirectOut() { -#if !defined(_WIN32_WCE) std::string name("TestApp"); std::string cmd; #if defined(_DEBUG) && (POCO_OS != POCO_OS_ANDROID) @@ -137,13 +130,11 @@ void ProcessTest::testLaunchRedirectOut() assertTrue (s == "Hello, world!"); int rc = ph.wait(); assertTrue (rc == 1); -#endif // !defined(_WIN32_WCE) } void ProcessTest::testLaunchEnv() { -#if !defined(_WIN32_WCE) std::string name("TestApp"); std::string cmd; #if defined(_DEBUG) && (POCO_OS != POCO_OS_ANDROID) @@ -169,13 +160,12 @@ void ProcessTest::testLaunchEnv() assertTrue (s == "test"); int rc = ph.wait(); assertTrue (rc == 0); -#endif // !defined(_WIN32_WCE) } void ProcessTest::testLaunchArgs() { -#if defined (_WIN32) && !defined(_WIN32_WCE) +#if defined (_WIN32) std::string name("TestApp"); #if defined(_DEBUG) name += 'd'; @@ -225,7 +215,7 @@ void ProcessTest::testLaunchArgs() assertTrue (argNumber == args.size()); int rc = ph.wait(); assertTrue (rc == args.size()); -#endif // !defined(_WIN32_WCE) +#endif // defined (_WIN32) } @@ -239,10 +229,6 @@ void ProcessTest::testLaunchInvalidCommand() #if defined(POCO_OS_FAMILY_UNIX) cmd += name; -#elif defined(_WIN32_WCE) - cmd = "\\"; - cmd += name; - cmd += ".EXE"; #else cmd = name; #endif @@ -269,7 +255,6 @@ void ProcessTest::testLaunchInvalidCommand() void ProcessTest::testIsRunning() { -#if !defined(_WIN32_WCE) std::string name("TestApp"); std::string cmd; #if defined(_DEBUG) && (POCO_OS != POCO_OS_ANDROID) @@ -295,7 +280,6 @@ void ProcessTest::testIsRunning() int POCO_UNUSED rc = ph.wait(); assertTrue (!Process::isRunning(ph)); assertTrue (!Process::isRunning(id)); -#endif // !defined(_WIN32_WCE) } diff --git a/Foundation/testsuite/src/TestApp_WINCE.cpp b/Foundation/testsuite/src/TestApp_WINCE.cpp deleted file mode 100644 index a41b8c1ed..000000000 --- a/Foundation/testsuite/src/TestApp_WINCE.cpp +++ /dev/null @@ -1,33 +0,0 @@ -// -// TestApp_WINCE.cpp -// -// Copyright (c) 2005-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include -#include - - -int wmain(int argc, wchar_t* argv[]) -{ - if (argc > 1) - { - std::wstring arg(argv[1]); - if (arg == L"-hello") - { - std::cout << "Hello, world!"; - } - else if (arg == L"-count") - { - int n = 0; - int c = std::cin.get(); - while (c != -1) { ++n; c = std::cin.get(); } - return n; - } - } - return argc - 1; -} diff --git a/Foundation/testsuite/src/WinCEDriver.cpp b/Foundation/testsuite/src/WinCEDriver.cpp deleted file mode 100644 index 9c5104c8c..000000000 --- a/Foundation/testsuite/src/WinCEDriver.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// -// WinCEDriver.cpp -// -// Console-based test driver for Windows CE. -// -// Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "CppUnit/TestRunner.h" -#include "FoundationTestSuite.h" -#include - - -int wmain(int argc, wchar_t* argv[]) -{ - std::vector args; - for (int i = 0; i < argc; ++i) - { - char buffer[1024]; - std::wcstombs(buffer, argv[i], sizeof(buffer)); - args.push_back(std::string(buffer)); - } - CppUnit::TestRunner runner; - runner.addTest("FoundationTestSuite", FoundationTestSuite::suite()); - return runner.run(args) ? 0 : 1; -} diff --git a/Foundation/wcelibcex-1.0/AUTHORS.txt b/Foundation/wcelibcex-1.0/AUTHORS.txt deleted file mode 100644 index 7b5400993..000000000 --- a/Foundation/wcelibcex-1.0/AUTHORS.txt +++ /dev/null @@ -1,13 +0,0 @@ -List of WCELIBCEX authors: - -Active developers ------------------ - -* Mateusz Loskot (mateusz@loskot.net) - -* Stéphane Dunand (sdunand@sirap.fr) - -Previously contributed ----------------------- - -* Piotr Wisniewski (pwisniewski@taxussi.com.pl) diff --git a/Foundation/wcelibcex-1.0/BUILD.txt b/Foundation/wcelibcex-1.0/BUILD.txt deleted file mode 100644 index d6e224f9c..000000000 --- a/Foundation/wcelibcex-1.0/BUILD.txt +++ /dev/null @@ -1,41 +0,0 @@ -$Id: BUILD.txt 50 2007-01-08 12:16:50Z mloskot $ --------------------------------------------------------------------------------- - Building WCELIBCEX library --------------------------------------------------------------------------------- - -*** IMPORTANT *** -Remember to build WCELIBCEX as a static library, not DLL. -Provided project for Visual C++ 2005 is configured to -build WCELIBCEX as a static library -***************** - -Supported and tested platforms: - -- Windows CE 4.x - - Pocket PC 2003 - - Smartphone 2003 -- Windows CE 5.0 - - Windows Mobile 5.0 - - other custom operating systems based on Windows CE 5.0 - -If you've used WCELIBCEX on Windows CE OS not listed here, -please drop me a message on mateusz@loskot.net. - -Supported compilers: - -- Microsoft Visual C++ 2005 Standard or Professional -- Microsoft eMbedded Visual C++ 4.0 - -At the moment, there is no project file available for eVC++ 4.0. -The process of creating new project file for WCELIBCEX is pretty easy, -so there should be no problem with creating it for eVC++ 4.0. -In case of problems, write to wcelibcex-devel@lists.sourceforge.net. - -Building the library - -1. Go to 'msvc80' directory -2. Open 'wcelibcex_lib.sln' project in Visual C++ 2005 IDE -3. From the main toolbar, select prefered 'Solution Configuration' - and 'Solution Platform' -4. Run Build -> Build Solution -5. If no errors occured, the library is ready to use diff --git a/Foundation/wcelibcex-1.0/COPYING.txt b/Foundation/wcelibcex-1.0/COPYING.txt deleted file mode 100644 index 3ea708b2e..000000000 --- a/Foundation/wcelibcex-1.0/COPYING.txt +++ /dev/null @@ -1,9 +0,0 @@ -Note about WCELIBCEX files copyright. - -File copyright is held by a file author. - -Files created for the first version of the WCELIBCEX project are -copyrighted by (c) 2006 Taxus SI Ltd., http://www.taxussi.com.pl - -See comment in header of source files for more details. -See LICENSE.txt for license agreement. diff --git a/Foundation/wcelibcex-1.0/LICENSE.txt b/Foundation/wcelibcex-1.0/LICENSE.txt deleted file mode 100644 index 8e0f7fb8a..000000000 --- a/Foundation/wcelibcex-1.0/LICENSE.txt +++ /dev/null @@ -1,24 +0,0 @@ -WCELIBCEX - Windows CE C Library Extensions - -The source code of the WCELIBCEX library is -licensed under MIT License: - -http://opensource.org/licenses/mit-license.php - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation -the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom -the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH -THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Foundation/wcelibcex-1.0/README.txt b/Foundation/wcelibcex-1.0/README.txt deleted file mode 100644 index 326673833..000000000 --- a/Foundation/wcelibcex-1.0/README.txt +++ /dev/null @@ -1,22 +0,0 @@ -$Id: README.txt 50 2007-01-08 12:16:50Z mloskot $ -------------------------------------------------------------------------------- -WCELIBCEX - Windows CE C Library Extensions -------------------------------------------------------------------------------- - -The WCELIBCEX is a package of C library extensions for Windows CE -operating system. It is a supplement to standard C library -available on Windows CE system. - -Project developer: Mateusz Loskot - -Homepage: http://sourceforge.net/projects/wcelibcex -Wiki: http://wcelibcex.sourceforge.net - -For details, check following files: -AUTHORS.txt - list of developers and contributors -LICENSE.txt - license agreement -COPYING.txt - copyright and provenience notice -BUILD.txt - building instructions - -Initial version of WCELIBCEX was founded and copyrighted by Taxus SI Ltd., -http://www.taxussi.com.pl diff --git a/Foundation/wcelibcex-1.0/msvc80/wcelibcex.vsprops b/Foundation/wcelibcex-1.0/msvc80/wcelibcex.vsprops deleted file mode 100644 index 85d5e0fe8..000000000 --- a/Foundation/wcelibcex-1.0/msvc80/wcelibcex.vsprops +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/Foundation/wcelibcex-1.0/msvc80/wcelibcex_lib.sln b/Foundation/wcelibcex-1.0/msvc80/wcelibcex_lib.sln deleted file mode 100644 index a31f5c2f9..000000000 --- a/Foundation/wcelibcex-1.0/msvc80/wcelibcex_lib.sln +++ /dev/null @@ -1,46 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wcelibcex_lib", "wcelibcex_lib.vcproj", "{55190080-FEA8-4B07-83E1-A26E6937982A}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Pocket PC 2003 (ARMV4) = Debug|Pocket PC 2003 (ARMV4) - Debug|Smartphone 2003 (ARMV4) = Debug|Smartphone 2003 (ARMV4) - Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) - Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I) = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I) - Release|Pocket PC 2003 (ARMV4) = Release|Pocket PC 2003 (ARMV4) - Release|Smartphone 2003 (ARMV4) = Release|Smartphone 2003 (ARMV4) - Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) - Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I) = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I) - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {55190080-FEA8-4B07-83E1-A26E6937982A}.Debug|Pocket PC 2003 (ARMV4).ActiveCfg = Debug|Pocket PC 2003 (ARMV4) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Debug|Pocket PC 2003 (ARMV4).Build.0 = Debug|Pocket PC 2003 (ARMV4) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Debug|Pocket PC 2003 (ARMV4).Deploy.0 = Debug|Pocket PC 2003 (ARMV4) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Debug|Smartphone 2003 (ARMV4).ActiveCfg = Debug|Smartphone 2003 (ARMV4) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Debug|Smartphone 2003 (ARMV4).Build.0 = Debug|Smartphone 2003 (ARMV4) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Debug|Smartphone 2003 (ARMV4).Deploy.0 = Debug|Smartphone 2003 (ARMV4) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Build.0 = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).ActiveCfg = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Build.0 = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Deploy.0 = Debug|Windows Mobile 5.0 Smartphone SDK (ARMV4I) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Release|Pocket PC 2003 (ARMV4).ActiveCfg = Release|Pocket PC 2003 (ARMV4) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Release|Pocket PC 2003 (ARMV4).Build.0 = Release|Pocket PC 2003 (ARMV4) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Release|Pocket PC 2003 (ARMV4).Deploy.0 = Release|Pocket PC 2003 (ARMV4) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Release|Smartphone 2003 (ARMV4).ActiveCfg = Release|Smartphone 2003 (ARMV4) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Release|Smartphone 2003 (ARMV4).Build.0 = Release|Smartphone 2003 (ARMV4) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Release|Smartphone 2003 (ARMV4).Deploy.0 = Release|Smartphone 2003 (ARMV4) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Build.0 = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 5.0 Pocket PC SDK (ARMV4I) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).ActiveCfg = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Build.0 = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I) - {55190080-FEA8-4B07-83E1-A26E6937982A}.Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I).Deploy.0 = Release|Windows Mobile 5.0 Smartphone SDK (ARMV4I) - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Foundation/wcelibcex-1.0/msvc80/wcelibcex_lib.vcproj b/Foundation/wcelibcex-1.0/msvc80/wcelibcex_lib.vcproj deleted file mode 100644 index fe453ff46..000000000 --- a/Foundation/wcelibcex-1.0/msvc80/wcelibcex_lib.vcproj +++ /dev/null @@ -1,817 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Foundation/wcelibcex-1.0/src/errno.h b/Foundation/wcelibcex-1.0/src/errno.h deleted file mode 100644 index e67313b78..000000000 --- a/Foundation/wcelibcex-1.0/src/errno.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * $Id: errno.h 20 2006-11-18 17:00:30Z mloskot $ - * - * errno.h - system error numbers - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Mateusz Loskot (mateusz@loskot.net) - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - */ -#ifndef WCEEX_ERRNO_WRAPPER_H -#define WCEEX_ERRNO_WRAPPER_H 1 - -/* - * Windows CE SDK does not provide errno.h file. - * In order to simplify usage of wce_errno.h extension, this header is provided. - * It directly includes wce_errno.h file. - */ - -#if !defined(_WIN32_WCE) -# error "Only Winddows CE target is supported!" -#else -# include "wce_errno.h" -#endif - - -#endif /* #ifndef WCEEX_ERRNO_WRAPPER_H */ - diff --git a/Foundation/wcelibcex-1.0/src/fcntl.h b/Foundation/wcelibcex-1.0/src/fcntl.h deleted file mode 100644 index 7756f1c46..000000000 --- a/Foundation/wcelibcex-1.0/src/fcntl.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * $Id$ - * - * fcntl.h - wrapper on wce_fcntl.h header - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Mateusz Loskot (mateusz@loskot.net) - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - */ -#ifndef WCEEX_FCNTL_WRAPPER_H -#define WCEEX_FCNTL_WRAPPER_H 1 - -/* - * Windows CE SDK does not provide fcntl.h file. - * In order to simplify usage of wce_fcntl.h extension, this header is provided. - * It directly includes wce_fcntl.h file. - */ - -#if !defined(_WIN32_WCE) -# error "Only Winddows CE target is supported!" -#else -# include "wce_fcntl.h" -#endif - - -#endif /* #ifndef WCEEX_FCNTL_WRAPPER_H */ diff --git a/Foundation/wcelibcex-1.0/src/wce_abort.c b/Foundation/wcelibcex-1.0/src/wce_abort.c deleted file mode 100644 index 1fcb02a33..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_abort.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * $Id: wce_abort.c,v 1.2 2006/04/09 16:48:18 mloskot Exp $ - * - * Defines abort() function. - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ - -#include - -/******************************************************************************* -* wceex_abort - Generate abnormal process termination. -* -* Description: -* -* The abort() function shall cause abnormal process termination to occur. -* Internally, mkdir() function wraps TerminateProcess call from -* Windows CE API. -* -* Return: -* -* The abort() function shall not return.* -* -* Reference: -* -* IEEE 1003.1, 2004 Edition -* -*******************************************************************************/ -void wceex_abort(void) -{ - /* No return */ - TerminateProcess(GetCurrentProcess(), 0); -} - diff --git a/Foundation/wcelibcex-1.0/src/wce_access.c b/Foundation/wcelibcex-1.0/src/wce_access.c deleted file mode 100644 index 993ae72f8..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_access.c +++ /dev/null @@ -1,101 +0,0 @@ -/* - * $Id: wce_access.c,v 1.0 2006/11/29 16:37:06 stephaned Exp $ - * - * Defines _access(), _waccess() functions. - * - * Created by Stéphane Dunand (sdunand@sirap.fr) - * - * Copyright (c) 2006 Stéphane Dunand - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - */ - -#include -#include -#include - -/******************************************************************************* -* wceex_waccess - Determine file-access permission -* -* Description: -* -* Return: -* 0 if the file has the given mode -* –1 if the named file does not exist or is not accessible in the given mode -* and errno set as : -* EACCES file's permission setting does not allow specified access -* ENOENT filename or path not found -* -* Reference: -* -*******************************************************************************/ - -int wceex_waccess( const wchar_t *path, int mode ) -{ - SHFILEINFO fi; - if( !SHGetFileInfo( path, 0, &fi, sizeof(fi), SHGFI_ATTRIBUTES ) ) - { - errno = ENOENT; - return -1; - } - // existence ? - if( mode == 0 ) - return 0; - // write permission ? - if( mode & 2 ) - { - if( fi.dwAttributes & SFGAO_READONLY ) - { - errno = EACCES; - return -1; - } - } - return 0; -} - -/******************************************************************************* -* wceex_access - Determine file-access permission -* -* Description: -* -* Return: -* 0 if the file has the given mode -* –1 if the named file does not exist or is not accessible in the given mode -* and errno set as : -* EACCES file's permission setting does not allow specified access -* ENOENT filename or path not found -* -* Reference: -* -*******************************************************************************/ - -int wceex_access( const char *path, int mode ) -{ - wchar_t wpath[_MAX_PATH]; - if( !MultiByteToWideChar( CP_ACP, 0, path, -1, wpath, _MAX_PATH ) ) - { - errno = ENOENT; - return -1; - } - return wceex_waccess( wpath, mode ); -} diff --git a/Foundation/wcelibcex-1.0/src/wce_asctime.c b/Foundation/wcelibcex-1.0/src/wce_asctime.c deleted file mode 100644 index 562feaf52..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_asctime.c +++ /dev/null @@ -1,138 +0,0 @@ -/* - * $Id: wce_asctime.c,v 1.2 2006/04/09 16:48:18 mloskot Exp $ - * - * Defines asctime() function. - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ - -#include -#include - -/******************************************************************************* -* Internal definitions -*******************************************************************************/ - -/* Buffer to store string representation of tm struct. */ -#define TIME_STRING_SIZE 26 - -/* Buffer to store string representation of tm struct. */ -static char __wce_asc_result[TIME_STRING_SIZE]; - -/* Format of string returned. */ -static const char __wce_asc_format[] = "%.3s %.3s %02d %.2d:%.2d:%.2d %d\n"; - - -/******************************************************************************* -* wceex_asctime - Convert date and time to a string -* -* Description: -* -* The asctime function converts the broken-down time value that -* brokentime points to into a string in a standard format: -* "Mon Jan 30 13:46:22 2006\n" -* -* The abbreviations for the days of week are: -* Sun, Mon, Tue, Wed, Thu, Fri, and Sat. -* -* The abbreviations for the months are: -* Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, and Dec. -* -* The asctime() is not required to be thread-safe. -* -* Reference: -* -* IEEE Std 1003.1-2001 -* The GNU C Library Manual -* -*******************************************************************************/ -char * wceex_asctime(const struct tm *tmbuff) -{ - return wceex_asctime_r(tmbuff, __wce_asc_result); -} - - -/******************************************************************************* -* wceex_asctime_r - Convert date and time to a string -* -* Description: -* -* This function is similar to asctime but instead of placing the result -* in a static buffer it writes the string in the buffer pointed to by -* the parameter buffer. This buffer should have room for at least 26 bytes, -* including the terminating null. -* -* The asctime_r() is not required to be thread-safe. -* -* Return value: -* -* Upon success the function returns a pointer to the string the result was written into. -* Otherwise return NULL. -* -* Reference: -* -* IEEE Std 1003.1-2001 -* The GNU C Library Manual -* -*******************************************************************************/ -char * wceex_asctime_r(const struct tm *tmbuff, char *buff) -{ - int res; - static char wday_short[7][3] = { - "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" - }; - static char mon_short[12][3] = { - "Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" - }; - - if (tmbuff == NULL) - { - // XXX - mloskot - set errno with EINVAL - return NULL; - } - - /* Format: "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n" */ - res = sprintf(buff, __wce_asc_format, - wday_short[tmbuff->tm_wday], - mon_short[tmbuff->tm_mon], - tmbuff->tm_mday, - tmbuff->tm_hour, - tmbuff->tm_min, - tmbuff->tm_sec, - 1900 + tmbuff->tm_year); - - if (res < 0) - return NULL; - else - return buff; -} - diff --git a/Foundation/wcelibcex-1.0/src/wce_bsearch.c b/Foundation/wcelibcex-1.0/src/wce_bsearch.c deleted file mode 100644 index b43dcfa76..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_bsearch.c +++ /dev/null @@ -1,90 +0,0 @@ -/* - * $Id: wce_bsearch.c 20 2006-11-18 17:00:30Z mloskot $ - * - * Defines bsearch() function. - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Mateusz Loskot - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - */ - -#include -#include -#include - -/******************************************************************************* -* wceex_bsearch - TODO -* -* Description: -* -* Return: -* -* -* Reference: -* IEEE 1003.1, 2004 Edition -*******************************************************************************/ - -void* wceex_bsearch(const void *key, const void *base, size_t num, size_t width, - int (*compare)(const void *, const void *)) -{ - size_t left; - size_t middle; - size_t right; - int res; - - /* input parameters validation */ - assert(key != NULL); - assert(base != NULL); - assert(compare != NULL); - - res = 0; - left = 0; - right = num - 1; - - while (left <= right) - { - middle = (left + right) / 2; - - res = compare(((char*) base + (width * middle)), key); - if (res > 0) - { - /* search from middle to left */ - right = middle - 1; - } - else if (res < 0) - { - /* search from middle to right */ - left = middle + 1; - } - else if (res == 0) - { - /* middle points to the key element. */ - return ((char*) base + (width * middle)); - } - } - - /* key not found */ - return NULL; -} \ No newline at end of file diff --git a/Foundation/wcelibcex-1.0/src/wce_clock.c b/Foundation/wcelibcex-1.0/src/wce_clock.c deleted file mode 100644 index 7aac06fc5..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_clock.c +++ /dev/null @@ -1,87 +0,0 @@ -/* - * $Id: wce_clock.c 20 2006-11-18 17:00:30Z mloskot $ - * - * Defines clock() function. - * - * Created by hav (TODO: Full name of hav) - * - * Copyright (c) 2006 (TODO: Full name of hav) - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - */ - -#include -#include - -/******************************************************************************* -* wceex_clock - report CPU time used -* -* Description: -* -* The clock() function shall return the implementation's best approximation to -* the processor time used by the process since the beginning of -* an implementation-defined era related only to the process invocation. -* -* Windows CE specific: -* CLOCKS_PER_SEC is defined in available in Windows CE SDK. -* -* Return value: -* -* To determine the time in seconds, the value returned by clock() should be -* divided by the value of the macro CLOCKS_PER_SEC. -* CLOCKS_PER_SEC is defined to be one million in . -* If the processor time used is not available or its value cannot be represented, -* the function shall return the value ( clock_t)-1. -* -* Reference: -* -* IEEE Std 1003.1-2001 -* The GNU C Library Manual -* -*******************************************************************************/ - - - -clock_t wceex_clock() -{ - __int64 ticks; - SYSTEMTIME stCurrent; - FILETIME ftCurrent; - - GetSystemTime(&stCurrent); - - if (SystemTimeToFileTime(&stCurrent, &ftCurrent)) - { - ticks = *(__int64*)&ftCurrent; - } - else - { - /* The processor time used is not available or - * its value cannot be represented. - */ - ticks = -1; - } - - return (clock_t)ticks; -} - diff --git a/Foundation/wcelibcex-1.0/src/wce_ctime.c b/Foundation/wcelibcex-1.0/src/wce_ctime.c deleted file mode 100644 index 3af45bb71..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_ctime.c +++ /dev/null @@ -1,100 +0,0 @@ -/* - * $Id: wce_ctime.c,v 1.2 2006/04/09 16:48:18 mloskot Exp $ - * - * Defines ctime() function. - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ - -#include -#include - -/******************************************************************************* -* wceex_ctime - Convert a time value to a date and time string -* -* Description: -* -* The ctime function is similar to asctime, except that you specify -* the calendar time argument as a time_t simple time value rather -* than in broken-down local time format. -* It shall be equivalent to: asctime(localtime(clock)) -* -* The ctime() is not required to be thread-safe. -* -* Windows CE specific: -* ctime does not set the variable tzname. -* -* Reference: -* -* IEEE Std 1003.1-2001 -* The GNU C Library Manual -* -*******************************************************************************/ -char * wceex_ctime(const time_t *timer) -{ - return wceex_asctime(wceex_localtime(timer)); -} - - -/******************************************************************************* -* wceex_ctime_r - Convert a time value to a date and time string -* -* Description: -* -* This function is similar to ctime, but places the result in the string -* pointed to by buffer. -* -* The ctime() is not required to be thread-safe. -* -* Windows CE specific: -* ctime does not set the variable tzname. -* -* Return value: -* -* Upon success the function returns a pointer to the string the result was written into. -* Otherwise return NULL. -* -* Reference: -* -* IEEE Std 1003.1-2001 -* The GNU C Library Manual -* -*******************************************************************************/ -char * wceex_ctime_r(const time_t *timer, char *buf) -{ - /* - XXX - mloskot - it's waiting for localtime_r function. - - ({ struct tm tm; asctime_r (localtime_r (time, &tm), buf); }) - */ - return NULL; -} - diff --git a/Foundation/wcelibcex-1.0/src/wce_direct.h b/Foundation/wcelibcex-1.0/src/wce_direct.h deleted file mode 100644 index deab69f61..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_direct.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * $Id: wce_direct.h,v 1.0 2006/11/29 16:38:05 stephaned Exp $ - * - * Created by Stéphane Dunand (sdunand@sirap.fr) - * - * Copyright (c) 2006 Stéphane Dunand - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - */ -#ifndef WCEEX_DIRECT_H -#define WCEEX_DIRECT_H 1 - -#if !defined(_WIN32_WCE) -# error "Only Windows CE target is supported!" -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -int wceex_wmkdir( const wchar_t* dirname ); - -char* wceex_getcwd( char *buffer, int maxlen ); -wchar_t* wceex_wgetcwd( wchar_t *buffer, int maxlen ); - -int wceex_chdir( const char *dirname ); -int wceex_wchdir( const wchar_t *dirname ); - -DWORD wceex_GetCurrentDirectoryW( DWORD nBufferLength, LPWSTR lpBuffer ); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* #ifndef WCEEX_DIRECT_H */ - diff --git a/Foundation/wcelibcex-1.0/src/wce_directorymanagement.c b/Foundation/wcelibcex-1.0/src/wce_directorymanagement.c deleted file mode 100644 index 18d879499..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_directorymanagement.c +++ /dev/null @@ -1,227 +0,0 @@ -/* - * $Id: wce_directorymanagement.c,v 1.0 2006/11/29 17:00:28 stephaned Exp $ - * - * Defines _getcwd(), GetCurrentDirectoryW() _wgetcwd(), - * _chdir(), _wchdir functions. - * - * Created by Stéphane Dunand (sdunand@sirap.fr) - * - * Copyright (c) 2006 Stéphane Dunand - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - */ - -#include -#include -#include -#include - -/******************************************************************************* -* InitCwd - Init the current directory with the path for the file used to create -* the calling process -* -* Description: -* -* Return: -* -* Reference: -* -*******************************************************************************/ - -static wchar_t Cwd[_MAX_PATH] = { '\0' }; - -static int InitCwd() -{ - if( Cwd[0] ) - return 0; - if( !GetModuleFileName( NULL, Cwd, _MAX_PATH ) ) - return errno = GetLastError(); - else - { - wchar_t* slash = wcsrchr( Cwd, '\\' ); - if( !slash ) - slash = wcsrchr( Cwd, '/' ); - if( slash ) - { - if( slash == Cwd ) - slash++; - *slash = 0; - } - return 0; - } -} - -/******************************************************************************* -* wceex_getcwd - Get the current working directory -* -* Description: -* -* Return: -* -* Reference: -* -*******************************************************************************/ - -char* wceex_getcwd( char *buffer, int maxlen ) -{ - if( !buffer && (buffer = (char*)malloc(maxlen)) == NULL ) - { - errno = ENOMEM; - return NULL; - } - if( InitCwd() ) - return NULL; - if( !WideCharToMultiByte( CP_ACP, 0, Cwd, -1, buffer, maxlen, NULL, NULL ) ) - { - errno = GetLastError(); - return NULL; - } - return buffer; -} - -/******************************************************************************* -* wceex_GetCurrentDirectoryW - Get the current working directory -* -* Description: -* -* Return: -* -* Reference: -* -*******************************************************************************/ - -DWORD wceex_GetCurrentDirectoryW( DWORD nBufferLength, LPWSTR lpBuffer ) -{ - *lpBuffer = 0; - if( InitCwd() ) - { - SetLastError( errno ); - return 0; - } - else - { - size_t slen = wcslen( Cwd ); - if( slen >= (size_t)nBufferLength ) - return slen + 1; - wcscpy( lpBuffer, Cwd ); - return slen; - } -} - -/******************************************************************************* -* wceex_wgetcwd - Get the current working directory -* -* Description: -* -* Return: -* -* Reference: -* -*******************************************************************************/ - -wchar_t* wceex_wgetcwd( wchar_t *buffer, int maxlen ) -{ - if( !buffer && (buffer = (wchar_t*)malloc(maxlen * sizeof(wchar_t))) == NULL ) - { - errno = ENOMEM; - return NULL; - } - else - { - DWORD slen = wceex_GetCurrentDirectoryW( maxlen, buffer ); - if( !slen ) - return NULL; - if( slen >= (DWORD)maxlen ) - { - errno = ERANGE; - return NULL; - } - return buffer; - } -} - -/******************************************************************************* -* wceex_wchdir - Change the current working directory -* -* Description: -* -* Return: -* -* Reference: -* -*******************************************************************************/ - -int wceex_wchdir( const wchar_t *dirname ) -{ - if( !dirname || *dirname == 0 ) - { - errno = ENOENT; - return -1; - } - else - { - SHFILEINFO fi; - if( !SHGetFileInfo( dirname, 0, &fi, sizeof(fi), SHGFI_ATTRIBUTES ) ) - { - errno = ENOENT; - return -1; - } - if( !(fi.dwAttributes & SFGAO_FOLDER) ) - { - errno = ENOENT; - return -1; - } - wcscpy( Cwd, dirname ); - return 0; - } -} - -/******************************************************************************* -* wceex_chdir - Change the current working directory -* -* Description: -* -* Return: -* -* Reference: -* -*******************************************************************************/ - -int wceex_chdir( const char *dirname ) -{ - if( !dirname || *dirname == 0 ) - { - errno = ENOENT; - return -1; - } - else - { - wchar_t wdirname[_MAX_PATH]; - if( !MultiByteToWideChar( CP_ACP, 0, dirname, -1, wdirname, _MAX_PATH ) ) - { - errno = ENOENT; - return -1; - } - return wceex_wchdir( wdirname ); - } -} diff --git a/Foundation/wcelibcex-1.0/src/wce_errno.c b/Foundation/wcelibcex-1.0/src/wce_errno.c deleted file mode 100644 index 96f005ccf..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_errno.c +++ /dev/null @@ -1,42 +0,0 @@ -/* - * $Id: wce_errno.c,v 1.1 2006/02/19 22:04:53 mloskot Exp $ - * - * Global errno variable. - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ - -/* - * XXX - mloskot - errno is required to be thread-safe - */ - -int errno; - diff --git a/Foundation/wcelibcex-1.0/src/wce_errno.h b/Foundation/wcelibcex-1.0/src/wce_errno.h deleted file mode 100644 index 683fe4502..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_errno.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * $Id: wce_errno.h,v 1.2 2006/04/09 16:48:18 mloskot Exp $ - * - * errno.h - system error numbers - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ -#ifndef WCEEX_ERRNO_H -#define WCEEX_ERRNO_H 1 - -#if !defined(_WIN32_WCE) -# error "Only Winddows CE target is supported!" -#endif - - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - - -/* -#if defined(_MT) -# error "errno as global variable does not work with multi threads" -#endif -*/ -/* XXX - mloskot - make it thread-safe by calling (*_errno()) */ -extern int errno; - - -/* Error Codes */ - -#define EPERM 1 -#define ENOENT 2 -#define ESRCH 3 -#define EINTR 4 -#define EIO 5 -#define ENXIO 6 -#define E2BIG 7 -#define ENOEXEC 8 -#define EBADF 9 -#define ECHILD 10 -#define EAGAIN 11 -#define ENOMEM 12 -#define EACCES 13 -#define EFAULT 14 -#define EBUSY 16 -#define EEXIST 17 -#define EXDEV 18 -#define ENODEV 19 -#define ENOTDIR 20 -#define EISDIR 21 -#define EINVAL 22 -#define ENFILE 23 -#define EMFILE 24 -#define ENOTTY 25 -#define EFBIG 27 -#define ENOSPC 28 -#define ESPIPE 29 -#define EROFS 30 -#define EMLINK 31 -#define EPIPE 32 -#define EDOM 33 -#define ERANGE 34 -#define EDEADLK 36 -#define ENAMETOOLONG 38 -#define ENOLCK 39 -#define ENOSYS 40 -#define ENOTEMPTY 41 -#define EILSEQ 42 - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* #ifndef WCEEX_ERRNO_H */ - diff --git a/Foundation/wcelibcex-1.0/src/wce_fcntl.h b/Foundation/wcelibcex-1.0/src/wce_fcntl.h deleted file mode 100644 index 22667a3b5..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_fcntl.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * $Id: wce_fcntl.h 20 2006-11-18 17:00:30Z mloskot $ - * - * fcntl.h - file control options - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Mateusz Loskot - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - */ -#ifndef WCEEX_FCNTL_H -#define WCEEX_FCNTL_H 1 - -#if !defined(_WIN32_WCE) -# error "Only Windows CE target is supported!" -#endif - -/* File control flags and functions - * - * Implementation based on the Open Group Base Specifications Issue 6, - * IEEE Std 1003.1, 2004 Edition - * - * Windows CE Notes: - * - * Mostly, these flags are not used, but defined to feed compiler. - * Also, some programs (ie. libtiff) translate textual file flags (r, rw, etc.) - * file control flags. - * Functions fcntl() and open() are not implemented. - */ - -/* File creation flags */ - -#define O_CREAT 0x0100 /* Open or create file if it does not exist. */ -#define O_EXCL 0x0200 /* Exclusive file use. */ -#define O_NOCTTY 0x0400 /* Do not assign controlling terminal. */ -#define O_TRUNC 0x1000 /* Open and truncate file. */ - -/* File access and status flags */ - -#define O_RDONLY 0x0000 /* Open for read only. */ -#define O_WRONLY 0x0001 /* Open for write only. */ -#define O_RDWR 0x0002 /* Open for reading and writing. */ -#define O_APPEND 0x2000 /* Set append mode. */ - - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - - - - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* #ifndef WCEEX_FCNTL_H */ \ No newline at end of file diff --git a/Foundation/wcelibcex-1.0/src/wce_findfile.c b/Foundation/wcelibcex-1.0/src/wce_findfile.c deleted file mode 100644 index c44f05e0d..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_findfile.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - * $Id: wce_findfile.c,v 1.2 2006/04/09 16:48:18 mloskot Exp $ - * - * Defines functions to find files. - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ - -#include -#include -#include - -/******************************************************************************* -* wceex_findclose - XXX -* -* Description: -* -* XXX -* -* Return: -* -* XXX -* -* Reference: -* -* IEEE 1003.1, 2004 Edition -* -*******************************************************************************/ -int wceex_findclose(intptr_t hFile) -{ - if(!FindClose((HANDLE)hFile)) - { - //errno = EINVAL; - return (-1); - } - return (0); - -} - -/******************************************************************************* -* wceex_findfirst - XXX -* -* Description: -* -* XXX -* -* Return: -* -* XXX -* -* Reference: -* -* IEEE 1003.1, 2004 Edition -* -*******************************************************************************/ -intptr_t wceex_findfirst(const char *filespec, struct _finddata_t *fileinfo) -{ - WIN32_FIND_DATA wfd; - HANDLE hFile; - DWORD err; - wchar_t wfilename[MAX_PATH]; - - mbstowcs(wfilename, filespec, strlen(filespec) + 1); - - /* XXX - mloskot - set errno values! */ - - hFile = FindFirstFile(wfilename, &wfd); - if(hFile == INVALID_HANDLE_VALUE) - { - err = GetLastError(); - switch (err) - { - case ERROR_NO_MORE_FILES: - case ERROR_FILE_NOT_FOUND: - case ERROR_PATH_NOT_FOUND: - //errno = ENOENT; - break; - - case ERROR_NOT_ENOUGH_MEMORY: - //errno = ENOMEM; - break; - - default: - //errno = EINVAL; - break; - } - return (-1); - } - - fileinfo->attrib = (wfd.dwFileAttributes == FILE_ATTRIBUTE_NORMAL) ? 0 : wfd.dwFileAttributes; - fileinfo->time_create = wceex_filetime_to_time(&wfd.ftCreationTime); - fileinfo->time_access = wceex_filetime_to_time(&wfd.ftLastAccessTime); - fileinfo->time_write = wceex_filetime_to_time(&wfd.ftLastWriteTime); - - fileinfo->size = wfd.nFileSizeLow; - wcstombs(fileinfo->name, wfd.cFileName, wcslen(wfd.cFileName) + 1); - - return (intptr_t)hFile; -} - -/******************************************************************************* -* wceex_findnext - XXX -* -* Description: -* -* XXX -* -* Return: -* -* XXX -* -* Reference: -* -* IEEE 1003.1, 2004 Edition -* -*******************************************************************************/ -int wceex_findnext(intptr_t handle, struct _finddata_t *fileinfo) -{ - WIN32_FIND_DATA wfd; - DWORD err; - - /* XXX - mloskot - set errno values! */ - - if (!FindNextFile((HANDLE)handle, &wfd)) - { - err = GetLastError(); - switch (err) { - case ERROR_NO_MORE_FILES: - case ERROR_FILE_NOT_FOUND: - case ERROR_PATH_NOT_FOUND: - //errno = ENOENT; - break; - - case ERROR_NOT_ENOUGH_MEMORY: - //errno = ENOMEM; - break; - - default: - //errno = EINVAL; - break; - } - return (-1); - } - - fileinfo->attrib = (wfd.dwFileAttributes == FILE_ATTRIBUTE_NORMAL)? 0 : wfd.dwFileAttributes; - fileinfo->time_create = wceex_filetime_to_time(&wfd.ftCreationTime); - fileinfo->time_access = wceex_filetime_to_time(&wfd.ftLastAccessTime); - fileinfo->time_write = wceex_filetime_to_time(&wfd.ftLastWriteTime); - - fileinfo->size = wfd.nFileSizeLow; - wcstombs(fileinfo->name, wfd.cFileName, wcslen(wfd.cFileName)+1); - - return 0; -} - diff --git a/Foundation/wcelibcex-1.0/src/wce_getenv.c b/Foundation/wcelibcex-1.0/src/wce_getenv.c deleted file mode 100644 index ad5cef03c..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_getenv.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * $Id: wce_getenv.c 20 2006-11-18 17:00:30Z mloskot $ - * - * Defines getenv() function with dummy implementation. - * - * Created by Mateusz Loskot (mloskot@loskot.net) - * - * Copyright (c) 2006 Mateusz Loskot (mloskot@loskot.net) - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - */ - - -/******************************************************************************* -* wceex_getenv - dummy getenv() function -* -* Description: -* -* There is no concept of environment variable in Windows CE operating system. -* This function acts as a dummy compilation enabler and ALWAYS returns NULL. -* -* Return: -* -* The wceex_getenv() function ALWAYS returns NULL.* -* -*******************************************************************************/ - -#include - -char* wceex_getenv(const char* varname) -{ - return NULL; -} diff --git a/Foundation/wcelibcex-1.0/src/wce_getopt.c b/Foundation/wcelibcex-1.0/src/wce_getopt.c deleted file mode 100644 index 415e031a1..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_getopt.c +++ /dev/null @@ -1,154 +0,0 @@ -/* - * $Id$ - * - * Copyright (c) 1987, 1993, 1994 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ -#if 0 -static char sccsid[] = "@(#)getopt.c 8.3 (Berkeley) 4/27/95"; -__RCSID("$NetBSD: getopt.c,v 1.26 2003/08/07 16:43:40 agc Exp $"); -#endif - -#include -#include - -/* - * Declared in - */ -char *optarg; /* argument associated with option */ -int opterr = 1; /* if error message should be printed */ -int optind = 1; /* index into parent argv vector */ -int optopt; /* character checked for validity */ - -int optreset; /* reset getopt */ - -#define BADCH (int)'?' -#define BADARG (int)':' -#define EMSG "" - -/******************************************************************************* -* wceex_getopt - function is a command-line parser -* -* Description: -* -* The parameters argc and argv are the argument count and argument array as -* passed to main(). The argument optstring is a string of recognised option -* characters. If a character is followed by a colon, the option takes an argument. -* -* The variable optind is the index of the next element of the argv[] vector to be -* processed. It is initialised to 1 by the system, and getopt() updates it when it -* finishes with each element of argv[]. -* -* NOTE: Implementation of the getopt() function was grabbed from NetBSD -* operating system sources. See copyright note in the file header. -* -* Return: -* -* Returns the next option character specified on the command line. -* A colon (:) is returned if getopt() detects a missing argument and -* the first character of optstring was a colon (:). -* A question mark (?) is returned if getopt() encounters an option -* character not in optstring or detects a missing argument and the first -* character of optstring was not a colon (:). -* Otherwise getopt() returns -1 when all command line options are parsed. -* -* Reference: -* -* IEEE 1003.1, 2004 Edition -* -*******************************************************************************/ - -int wceex_getopt(int argc, char * const argv[], const char *optstring) -{ - static char *place = EMSG; /* option letter processing */ - char *oli; /* option letter list index */ - - if (optreset || *place == 0) { /* update scanning pointer */ - optreset = 0; - place = argv[optind]; - if (optind >= argc || *place++ != '-') { - /* Argument is absent or is not an option */ - place = EMSG; - return (-1); - } - optopt = *place++; - if (optopt == '-' && *place == 0) { - /* "--" => end of options */ - ++optind; - place = EMSG; - return (-1); - } - if (optopt == 0) { - /* Solitary '-', treat as a '-' option - if the program (eg su) is looking for it. */ - place = EMSG; - if (strchr(optstring, '-') == NULL) - return -1; - optopt = '-'; - } - } else - optopt = *place++; - - /* See if option letter is one the caller wanted... */ - if (optopt == ':' || (oli = strchr(optstring, optopt)) == NULL) { - if (*place == 0) - ++optind; - if (opterr && *optstring != ':') - (void)fprintf(stderr, - "unknown option -- %c\n", optopt); - return (BADCH); - } - - /* Does this option need an argument? */ - if (oli[1] != ':') { - /* don't need argument */ - optarg = NULL; - if (*place == 0) - ++optind; - } else { - /* Option-argument is either the rest of this argument or the - entire next argument. */ - if (*place) - optarg = place; - else if (argc > ++optind) - optarg = argv[optind]; - else { - /* option-argument absent */ - place = EMSG; - if (*optstring == ':') - return (BADARG); - if (opterr) - (void)fprintf(stderr, - "option requires an argument -- %c\n", - optopt); - return (BADCH); - } - place = EMSG; - ++optind; - } - return (optopt); /* return option letter */ -} diff --git a/Foundation/wcelibcex-1.0/src/wce_gettimeofday.c b/Foundation/wcelibcex-1.0/src/wce_gettimeofday.c deleted file mode 100644 index 1b03214d7..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_gettimeofday.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * $Id$ - * - * Defines gettimeofday function. - * - * Author of first version (timeval.h): by Wu Yongwei - * Author of Windows CE version: Mateusz Loskot (mateusz@loskot.net) - * - * All code here is considered in the public domain though we do wish our names - * could be retained if anyone uses them. - */ - -#define WIN32_LEAN_AND_MEAN -#include -#include -#include - -/******************************************************************************* -* wceex_gettimeofday - get the date and time -* -* Description: -* -* The gettimeofday() function shall obtain the current time, -* expressed as seconds and microseconds since the Epoch, -* and store it in the timeval structure pointed to by tp. -* The resolution of the system clock is unspecified. -* -* Return value: -* -* The gettimeofday() function shall return 0 and -* no value shall be reserved to indicate an error. -* -* Reference: -* -* IEEE Standard and an Open Group Technical Standard 1003.1, 2004 Edition -* -*******************************************************************************/ - -int wceex_gettimeofday(struct timeval *tp, struct timezone *tzp) -{ - SYSTEMTIME st; - FILETIME ft; - LARGE_INTEGER li; - TIME_ZONE_INFORMATION tzi; - __int64 t; - static int tzflag; - - if (NULL != tp) - { - GetSystemTime(&st); - SystemTimeToFileTime(&st, &ft); - li.LowPart = ft.dwLowDateTime; - li.HighPart = ft.dwHighDateTime; - t = li.QuadPart; /* In 100-nanosecond intervals */ - t -= EPOCHFILETIME; /* Offset to the Epoch time */ - t /= 10; /* In microseconds */ - tp->tv_sec = (long)(t / 1000000); - tp->tv_usec = (long)(t % 1000000); - } - - if (NULL != tzp) - { - GetTimeZoneInformation(&tzi); - - tzp->tz_minuteswest = tzi.Bias; - if (tzi.StandardDate.wMonth != 0) - { - tzp->tz_minuteswest += tzi.StandardBias * 60; - } - - if (tzi.DaylightDate.wMonth != 0) - { - tzp->tz_dsttime = 1; - } - else - { - tzp->tz_dsttime = 0; - } - } - - return 0; -} - diff --git a/Foundation/wcelibcex-1.0/src/wce_io.h b/Foundation/wcelibcex-1.0/src/wce_io.h deleted file mode 100644 index 5859657d6..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_io.h +++ /dev/null @@ -1,110 +0,0 @@ -/* - * $Id: wce_io.h,v 1.2 2006/04/09 16:48:18 mloskot Exp $ - * - * io.h - file handling functions - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ -#ifndef WCEEX_IO_H -#define WCEEX_IO_H 1 - -#if !defined(_WIN32_WCE) -# error "Only Winddows CE target is supported!" -#endif - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - - -/******************************************************************************* - I/O Types and Structures -*******************************************************************************/ - -#ifndef _INTPTR_T_DEFINED -typedef long intptr_t; -# define _INTPTR_T_DEFINED -#endif - -#ifndef _FSIZE_T_DEFINED -typedef unsigned long fsize_t; -# define _FSIZE_T_DEFINED -#endif - -#define MAX_PATH 260 - -#ifndef _FINDDATA_T_DEFINED -struct _finddata_t -{ - unsigned attrib; /* File attributes */ - time_t time_create; /* -1L for FAT file systems */ - time_t time_access; /* -1L for FAT file systems */ - time_t time_write; /* Time of last modification */ - fsize_t size; /* Size of file in bytes */ - char name[MAX_PATH]; /* Name of file witout complete path */ -}; -# define _FINDDATA_T_DEFINED -#endif - -/* File attribute constants for _findfirst() */ - -/* XXX - mloskot - macra IS_xxx */ -#define _A_NORMAL 0x00 /* Normal file - No read/write restrictions */ -#define _A_RDONLY 0x01 /* Read only file */ -#define _A_HIDDEN 0x02 /* Hidden file */ -#define _A_SYSTEM 0x04 /* System file */ -#define _A_SUBDIR 0x10 /* Subdirectory */ -#define _A_ARCH 0x20 /* Archive file */ - - -/******************************************************************************* - I/O Functions -*******************************************************************************/ - -intptr_t wceex_findfirst(const char *filespec, struct _finddata_t *fileinfo); -int wceex_findnext(intptr_t handle, struct _finddata_t *fileinfo); -int wceex_findclose(intptr_t hFile); - -/******************************************************************************* - File-access permission functions -*******************************************************************************/ - -int wceex_waccess( const wchar_t *path, int mode ); -int wceex_access( const char *path, int mode ); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* #ifndef WCEEX_IO_H */ diff --git a/Foundation/wcelibcex-1.0/src/wce_lfind.c b/Foundation/wcelibcex-1.0/src/wce_lfind.c deleted file mode 100644 index 6d49af41c..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_lfind.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - * $Id: wce_lfind.c 20 2006-11-18 17:00:30Z mloskot $ - * - * Defines lfind() function. - * - * Created by Mateusz Loskot (mloskot@loskot.net) - * - * Implementation of this function was taken from LibTIFF - * project, http://www.remotesensing.org/libtiff/ - * The copyright note below has been copied without any changes. - * - * Copyright (c) 1989, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Roger L. Snyder. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -#include -#include - -/******************************************************************************* -* wceex_lfind - TODO -* -* Description: -* -* Return: -* -* Reference: -* IEEE 1003.1, 2004 Edition -*******************************************************************************/ - -void* wceex_lfind(const void *key, const void *base, size_t *nmemb, size_t size, - int(*compar)(const void *, const void *)) -{ - char *element, *end; - - assert(key != NULL); - assert(base != NULL); - assert(compar != NULL); - - element = NULL; - end = (char *)base + (*nmemb * size); - - for (element = (char *)base; element < end; element += size) - { - if (!compar(element, key)) - { - /* key found */ - return element; - } - } - - return NULL; -} - diff --git a/Foundation/wcelibcex-1.0/src/wce_localtime.c b/Foundation/wcelibcex-1.0/src/wce_localtime.c deleted file mode 100644 index 066e11d72..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_localtime.c +++ /dev/null @@ -1,228 +0,0 @@ -/* - * $Id: wce_localtime.c,v 1.2 2006/04/09 16:48:18 mloskot Exp $ - * - * Defines localtime() function. - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ - -#include -#include -#include - -/******************************************************************************* - Constants and macros used internally -*******************************************************************************/ - -#define SECS_PER_MIN 60 -#define MINS_PER_HOUR 60 -#define HOURS_PER_DAY 24 -#define DAYS_PER_WEEK 7 -#define DAYS_PER_NYEAR 365 -#define DAYS_PER_LYEAR 366 -#define SECS_PER_HOUR (SECS_PER_MIN * MINS_PER_HOUR) -#define SECS_PER_DAY ((long) SECS_PER_HOUR * HOURS_PER_DAY) -#define MONS_PER_YEAR 12 - -#define TM_SUNDAY 0 -#define TM_MONDAY 1 -#define TM_TUESDAY 2 -#define TM_WEDNESDAY 3 -#define TM_THURSDAY 4 -#define TM_FRIDAY 5 -#define TM_SATURDAY 6 - -#define TM_JANUARY 0 -#define TM_FEBRUARY 1 -#define TM_MARCH 2 -#define TM_APRIL 3 -#define TM_MAY 4 -#define TM_JUNE 5 -#define TM_JULY 6 -#define TM_AUGUST 7 -#define TM_SEPTEMBER 8 -#define TM_OCTOBER 9 -#define TM_NOVEBER 10 -#define TM_DECEMBER 11 -#define TM_SUNDAY 0 - -#define TM_YEAR_BASE 1900 - -#define EPOCH_YEAR 1970 -#define EPOCH_WDAY TM_THURSDAY - -#define isleap(y) (((y) % 4) == 0 && ((y) % 100) != 0 || ((y) % 400) == 0) - -/******************************************************************************* - Local time functions -*******************************************************************************/ - -struct tm * __wceex_offtime(const time_t *timer, long tzoffset); - -/******************************************************************************* -* wceex_localtime - Convert time_t value to tm struct. -* -* Description: -* Use offset as difference in seconds between local time and UTC time. -* -*******************************************************************************/ -struct tm * wceex_localtime(const time_t *timer) -{ - register struct tm *tmp; - - long tzoffset; - TIME_ZONE_INFORMATION tzi; - - // Retrive timezone offset in seconds - tzoffset = 0; - if (GetTimeZoneInformation(&tzi) != 0xFFFFFFFF) - { - tzoffset += (tzi.Bias * 60); - if (tzi.StandardDate.wMonth != 0) - { - tzoffset += (tzi.StandardBias * 60); - } - } - - tzoffset *= -1; - tmp = __wceex_offtime(timer, tzoffset); - - return tmp; -} - -/******************************************************************************* -* wceex_gmtime - Convert time_t value to tm struct. -* -* Description: -* This function is similar to localtime, except that the broken-down -* time is expressed as Coordinated Universal Time (UTC) -* rather than relative to a local time zone. -* -*******************************************************************************/ -struct tm * wceex_gmtime(const time_t *timer) -{ - register struct tm *tmp; - - tmp = __wceex_offtime(timer, 0L); - - return tmp; -} - -/******************************************************************************* -* __wceex_offtime - Convert time_t value to tm struct. -* -* Description: -* Use offset as difference in seconds between local time and UTC time. -* -*******************************************************************************/ -static int mon_lengths[2][MONS_PER_YEAR] = -{ - 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, - 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 -}; - -static int year_lengths[2] = { DAYS_PER_NYEAR, DAYS_PER_LYEAR }; - - -struct tm * __wceex_offtime(const time_t *timer, long tzoffset) -{ - register struct tm *tmp; - register long days; - register long rem; - register int y; - register int yleap; - register int *ip; - static struct tm tm; - - tmp = &tm; - days = *timer / SECS_PER_DAY; - rem = *timer % SECS_PER_DAY; - rem += tzoffset; - while (rem < 0) - { - rem += SECS_PER_DAY; - --days; - } - - while (rem >= SECS_PER_DAY) - { - rem -= SECS_PER_DAY; - ++days; - } - tmp->tm_hour = (int) (rem / SECS_PER_HOUR); - - rem = rem % SECS_PER_HOUR; - tmp->tm_min = (int) (rem / SECS_PER_MIN); - tmp->tm_sec = (int) (rem % SECS_PER_MIN); - tmp->tm_wday = (int) ((EPOCH_WDAY + days) % DAYS_PER_WEEK); - - if (tmp->tm_wday < 0) - tmp->tm_wday += DAYS_PER_WEEK; - - y = EPOCH_YEAR; - - if (days >= 0) - { - for ( ; ; ) - { - yleap = isleap(y); - if (days < (long) year_lengths[yleap]) - break; - - ++y; - days = days - (long) year_lengths[yleap]; - } - } - else - { - do - { - --y; - yleap = isleap(y); - days = days + (long) year_lengths[yleap]; - } while (days < 0); - } - - tmp->tm_year = y - TM_YEAR_BASE; - tmp->tm_yday = (int) days; - ip = mon_lengths[yleap]; - - for (tmp->tm_mon = 0; days >= (long) ip[tmp->tm_mon]; ++(tmp->tm_mon)) - { - days = days - (long) ip[tmp->tm_mon]; - } - - tmp->tm_mday = (int) (days + 1); - tmp->tm_isdst = 0; - - return tmp; -} - diff --git a/Foundation/wcelibcex-1.0/src/wce_mkdir.c b/Foundation/wcelibcex-1.0/src/wce_mkdir.c deleted file mode 100644 index 3fa7e4c3f..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_mkdir.c +++ /dev/null @@ -1,112 +0,0 @@ -/* - * $Id: wce_mkdir.c,v 1.3 2006/04/09 16:48:18 mloskot Exp $ - * - * Defines wmkdir, mkdir() functions. - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ - -#include -#include - -/******************************************************************************* -* wceex_mkdir - Make a directory. -* -* Description: -* -* The mkdir() function shall create a new directory with name path. -* Internally, mkdir() function wraps CreateDirectory call from -* Windows CE API. -* -* Return: -* -* Upon successful completion, mkdir() shall return 0. -* Otherwise, -1 shall be returned, no directory shall be created, -* and errno shall be set with the error returned by CreateDirectory. -* -* Reference: -* IEEE 1003.1, 2004 Edition -*******************************************************************************/ -int wceex_mkdir(const char *filename) -{ - int res; - size_t len; - wchar_t *widestr; - - /* Covert filename buffer to Unicode. */ - len = MultiByteToWideChar (CP_ACP, 0, filename, -1, NULL, 0) ; - widestr = (wchar_t*)malloc(sizeof(wchar_t) * len); - - MultiByteToWideChar( CP_ACP, 0, filename, -1, widestr, len); - - /* Delete file using Win32 CE API call */ - res = CreateDirectory(widestr, NULL); - - /* Free wide-char string */ - free(widestr); - - if (res) - return 0; /* success */ - else - { - errno = GetLastError(); - return -1; - } -} - -/******************************************************************************* -* wceex_mkdir - Make a directory. -* -* Description: -* -* The wmkdir() function shall create a new directory with name path. -* Internally, wmkdir() function wraps CreateDirectory call from -* Windows CE API. -* -* Return: -* -* Upon successful completion, wmkdir() shall return 0. -* Otherwise, -1 shall be returned, no directory shall be created, -* and errno shall be set with the error returned by CreateDirectory. -* -* Reference: -* IEEE 1003.1, 2004 Edition -*******************************************************************************/ - -int wceex_wmkdir( const wchar_t* dirname ) -{ - if( !CreateDirectory( dirname, NULL ) ) - { - errno = GetLastError(); - return -1; - } - return 0; -} diff --git a/Foundation/wcelibcex-1.0/src/wce_mktime.c b/Foundation/wcelibcex-1.0/src/wce_mktime.c deleted file mode 100644 index 312068c45..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_mktime.c +++ /dev/null @@ -1,155 +0,0 @@ -/* - * $Id: wce_mktime.c,v 1.2 2006/04/09 16:48:18 mloskot Exp $ - * - * Defines functions to convert struct tm to time_t value. - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ - -#include -#include - -/* Function used intenally to convert struct tm to a time_t value. */ -static time_t __wceex_mktime_internal(struct tm *tmbuff, time_t _loctime_offset); - -/******************************************************************************* -* wceex_mktime - Convert local time to calendar value in seconds since epoch. -*******************************************************************************/ -time_t wceex_mktime(struct tm *tmbuff) -{ - time_t offset; - TIME_ZONE_INFORMATION tzi; - - offset = 0; - - // Retrive timezone offset in seconds - if (GetTimeZoneInformation(&tzi) != 0xFFFFFFFF) - { - offset += (tzi.Bias * 60); - if (tzi.StandardDate.wMonth != 0) - { - offset += (tzi.StandardBias * 60); - } - } - - return __wceex_mktime_internal(tmbuff, offset); -} - - -/******************************************************************************* -* wceex_gmmktime - Get Unix timestamp for a GMT date -* -* Description: -* Given a struct tm representing a calendar time in UTC, convert it to -* seconds since epoch. -* Note that this function does not canonicalize the provided -* struct tm, nor does it allow out of range values or years before 1970. -* The tm struct values of tm_wday and tm_yday are ignored. -* -* Return: -* Value of time if success, otherwise (time_t)-1 is returned. -* -*******************************************************************************/ -time_t wceex_gmmktime(struct tm *tmbuff) -{ - return __wceex_mktime_internal(tmbuff, 0); -} - -/******************************************************************************* -* __wceex_mktime_internal - Convert struct tm to a time_t value. -* -* Description: -* Use offset as difference in seconds between local time and UTC time. -* -/*******************************************************************************/ - -/* The number of days in each month. */ -#define MONTHS_NUMBER 12 - -static const int MONTHDAYS[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; - -static time_t __wceex_mktime_internal(struct tm *tmbuff, time_t _loctime_offset) -{ - time_t tres; - int doy; - int i; - - /* We do allow some ill-formed dates, but we don't do anything special - with them and our callers really shouldn't pass them to us. Do - explicitly disallow the ones that would cause invalid array accesses - or other algorithm problems. */ - if (tmbuff->tm_mon < 0 || tmbuff->tm_mon > 11 || tmbuff->tm_year < (EPOCH_YEAR - TM_YEAR_BASE)) - { - return (time_t) -1; - } - - /* Convert calender time to a time_t value. */ - tres = 0; - - /* Sum total amount of days from the Epoch with respect to leap years. */ - for (i = EPOCH_YEAR; i < tmbuff->tm_year + TM_YEAR_BASE; i++) - { - tres += 365 + IS_LEAP_YEAR(i); - } - - /* Add days of months before current month. */ - doy = 0; - for (i = 0; i < tmbuff->tm_mon; i++) - { - doy += MONTHDAYS[i]; - } - tres += doy; - - /* Day of year */ - tmbuff->tm_yday = doy + tmbuff->tm_mday; - - if (tmbuff->tm_mon > 1 && IS_LEAP_YEAR(tmbuff->tm_year + TM_YEAR_BASE)) - { - tres++; - } - - /* Add days of current month and convert to total to hours. */ - tres = 24 * (tres + tmbuff->tm_mday - 1) + tmbuff->tm_hour; - - /* Add minutes part and convert total to minutes. */ - tres = 60 * tres + tmbuff->tm_min; - - /* Add seconds part and convert total to seconds. */ - tres = 60 * tres + tmbuff->tm_sec; - - /* For offset > 0 adjust time value for timezone - given as local to UTC time difference in seconds). */ - tres += _loctime_offset; - - return tres; -} - - diff --git a/Foundation/wcelibcex-1.0/src/wce_path.c b/Foundation/wcelibcex-1.0/src/wce_path.c deleted file mode 100644 index 7fa304cd8..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_path.c +++ /dev/null @@ -1,479 +0,0 @@ -/* - * $Id: wce_path.c,v 1.0 2006/11/29 16:56:01 sdunand Exp $ - * - * Defines _splitpath, _wsplitpath, _makepath, _wmakepath, - * wceex_GetFullPathNameW, _fullpath, _wfullpath functions - * - * Created by Stéphane Dunand (sdunand@sirap.fr) - * - * Copyright (c) 2006 Stéphane Dunand - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - */ - -#include -#include -#include -#include - -/******************************************************************************* -* wceex_splitpath -* -* Description: -* Break a path name into components. -* -* Return: -* -* Reference: -* -*******************************************************************************/ - -void wceex_splitpath( const char *path, - char *drive, char *dir, char *name, char *ext ) -{ - char *slash, *bslash; - if( drive ) - *drive = 0; - if( dir ) - *dir = 0; - if( name ) - *name = 0; - if( ext ) - *ext = 0; - if( !path || *path == 0 ) - return; - slash = strrchr( path, '/' ); - bslash = strrchr( path, '\\' ); - if( slash > bslash ) - bslash = slash; - if( bslash ) - { - if( dir ) - { - size_t count = (bslash - path); - if( count >= _MAX_DIR ) - count = _MAX_DIR - 1; - strncat( dir, path, count ); - } - bslash++; - } - else - bslash = (char*)path; - if( name ) - { - char* dot; - strncat( name, bslash, _MAX_FNAME - 1 ); - dot = strrchr( name, '.' ); - if( dot ) - *dot = 0; - } - if( ext ) - { - char* dot = strrchr( bslash, '.' ); - if( dot ) - strncat( ext, dot, _MAX_EXT - 1 ); - } -} - -/******************************************************************************* -* wceex_wsplitpath -* -* Description: -* Break a path name into components. -* -* Return: -* -* Reference: -* -*******************************************************************************/ - -void wceex_wsplitpath( const wchar_t *path, - wchar_t *drive, wchar_t *dir, wchar_t *name, wchar_t *ext ) -{ - wchar_t *slash, *bslash; - if( drive ) - *drive = 0; - if( dir ) - *dir = 0; - if( name ) - *name = 0; - if( ext ) - *ext = 0; - if( !path || *path == 0 ) - return; - slash = wcsrchr( path, '/' ); - bslash = wcsrchr( path, '\\' ); - if( slash > bslash ) - bslash = slash; - if( bslash ) - { - if( dir ) - { - size_t count = (bslash - path) / sizeof(wchar_t); - if( count >= _MAX_DIR ) - count = _MAX_DIR - 1; - wcsncat( dir, path, count ); - } - bslash++; - } - else - bslash = (wchar_t*)path; - if( name ) - { - wchar_t* dot; - wcsncat( name, bslash, _MAX_FNAME - 1 ); - dot = wcsrchr( name, '.' ); - if( dot ) - *dot = 0; - } - if( ext ) - { - wchar_t* dot = wcsrchr( bslash, '.' ); - if( dot ) - wcsncat( ext, dot, _MAX_EXT - 1 ); - } -} - -/******************************************************************************* -* wceex_makepath -* -* Description: -* Create a path name from components -* -* Return: -* -* Reference: -* -*******************************************************************************/ - -void wceex_makepath( char *path, - const char *drive, const char *dir, - const char *name, const char *ext ) -{ - char* ptr = path; - size_t slen, sbuf = _MAX_PATH - 1; - *path = 0; - if( drive && *drive ) - { - strncat( ptr, drive, sbuf ); - slen = strlen( ptr ); - ptr += slen; - sbuf -= slen; - } - if( dir && *dir && sbuf ) - { - strncat( ptr, dir, sbuf ); - slen = strlen( ptr ); - ptr += slen - 1; - sbuf -= slen; - // backslash ? - if( sbuf && *ptr != '\\' && *ptr != '/' ) - { - char* slash = strchr( path, '/' ); - if( !slash ) - slash = strchr( path, '\\' ); - ptr++; - if( slash ) - *ptr = *slash; - else - *ptr = '\\'; - ptr++; - *ptr = 0; - sbuf--; - } - ptr++; - } - if( name && *name && sbuf ) - { - strncat( ptr, name, sbuf ); - slen = strlen( ptr ); - ptr += slen; - sbuf -= slen; - } - if( ext && *ext && sbuf ) - { - if( *ext != '.' ) - { - *ptr = '.'; - ptr++; - *ptr = 0; - sbuf--; - } - if( sbuf ) - strncat( ptr, ext, sbuf ); - } -} - -/******************************************************************************* -* wceex_wmakepath -* -* Description: -* Create a path name from components -* -* Return: -* -* Reference: -* -*******************************************************************************/ - -void wceex_wmakepath( wchar_t *path, - const wchar_t *drive, const wchar_t *dir, - const wchar_t *name, const wchar_t *ext ) -{ - wchar_t* ptr = path; - size_t slen, sbuf = _MAX_PATH - 1; - *path = 0; - if( drive && *drive ) - { - wcsncat( ptr, drive, sbuf ); - slen = wcslen( ptr ); - ptr += slen; - sbuf -= slen; - } - if( dir && *dir && sbuf ) - { - wcsncat( ptr, dir, sbuf ); - slen = wcslen( ptr ); - ptr += slen - 1; - sbuf -= slen; - // backslash ? - if( sbuf && *ptr != '\\' && *ptr != '/' ) - { - wchar_t* slash = wcschr( path, '/' ); - if( !slash ) - slash = wcschr( path, '\\' ); - ptr++; - if( slash ) - *ptr = *slash; - else - *ptr = '\\'; - ptr++; - *ptr = 0; - sbuf--; - } - ptr++; - } - if( name && *name && sbuf ) - { - wcsncat( ptr, name, sbuf ); - slen = wcslen( ptr ); - ptr += slen; - sbuf -= slen; - } - if( ext && *ext && sbuf ) - { - if( *ext != '.' ) - { - *ptr = '.'; - ptr++; - *ptr = 0; - sbuf--; - } - if( sbuf ) - wcsncat( ptr, ext, sbuf ); - } -} - -/******************************************************************************* -* wceex_GetFullPathNameW -* -* Description: -* retrieves the full path and file name of a specified file. -* -* Return: -* -* Reference: -* -*******************************************************************************/ - -DWORD wceex_GetFullPathNameW( LPCWSTR lpFileName, DWORD nBufferLength, - LPWSTR lpBuffer, LPWSTR *lpFilePart ) -{ - int up = 0, down = 0; - size_t len_tot, len_buf = 0; - LPWSTR file; - - // reference to current working directory ? - if( wcsncmp( lpFileName, L".\\", 2 ) == 0 ) - down = 1; - else if( wcsncmp( lpFileName, L"./", 2 ) == 0 ) - down = 2; - if( wcsncmp( lpFileName, L"..\\", 3 ) == 0 ) - up = 1; - else if( wcsncmp( lpFileName, L"../", 3 ) == 0 ) - up = 2; - if( down || up ) - { - LPWSTR last; - len_buf = wceex_GetCurrentDirectoryW( nBufferLength, lpBuffer ); - if( !len_buf ) - return 0; - // backslash at the end ? - last = lpBuffer + len_buf - 1; - if( *last != '\\' && *last != '/' ) - { - // test sufficient buffer before add - len_buf++; - if( len_buf >= nBufferLength ) - return len_buf + wcslen( lpFileName ) + 1; - last++; - if( down == 1 || up == 1 ) - *last = '\\'; - else - *last = '/'; - *(last + 1) = 0; - } - if( down ) - { - lpBuffer = last + 1; - lpFileName += 2; - } - else if( up ) - { - LPWSTR fname = (LPWSTR)lpFileName; - for(;;) - { - // root ? - if( last == lpBuffer ) - { - errno = ERROR_BAD_PATHNAME; - return 0; - } - // erase last backslash - *last = 0; - // parent directory - if( up == 1 ) - last = wcsrchr( lpBuffer, '\\' ); - else - last = wcsrchr( lpBuffer, '/' ); - if( !last ) - { - errno = ERROR_BAD_PATHNAME; - return 0; - } - *(last + 1) = 0; - // next parent directory ? - fname += 3; - if( up == 1 ) - { - if( wcsncmp( fname, L"..\\", 3 ) ) - break; - } - else - { - if( wcsncmp( fname, L"../", 3 ) ) - break; - } - } - len_buf = wcslen( lpBuffer ); - lpBuffer = last + 1; - lpFileName = fname; - } - } - len_tot = len_buf + wcslen( lpFileName ); - if( len_tot >= nBufferLength ) - return len_tot + 1; - wcscpy( lpBuffer, lpFileName ); - // delimiter of file name ? - file = wcsrchr( lpBuffer, '\\' ); - if( !file ) - file = wcsrchr( lpBuffer, '/' ); - if( file ) - { - file++; - if( *file == 0 ) - *lpFilePart = NULL; - else - *lpFilePart = file; - } - else - *lpFilePart = lpBuffer; - return len_tot; -} - -/******************************************************************************* -* wceex_wfullpath -* -* Description: -* Create an absolute or full path name for the specified relative path name. -* -* Return: -* -* Reference: -* -*******************************************************************************/ - -wchar_t* wceex_wfullpath( wchar_t *absPath, const wchar_t *relPath, size_t maxLength ) -{ - wchar_t* lpFilePart; - DWORD ret = wceex_GetFullPathNameW( relPath, maxLength, absPath, &lpFilePart ); - if( !ret || ret > maxLength ) - { - *absPath = 0; - return NULL; - } - return absPath; -} - -/******************************************************************************* -* wceex_fullpath -* -* Description: -* Create an absolute or full path name for the specified relative path name. -* -* Return: -* -* Reference: -* -*******************************************************************************/ - -char* wceex_fullpath( char *absPath, const char *relPath, size_t maxLength ) -{ - wchar_t wrelPath[_MAX_PATH*2], *wabsPath, *wret; - if( !MultiByteToWideChar( CP_ACP, 0, relPath, -1, wrelPath, _MAX_PATH*2 ) ) - { - errno = ENOMEM; - *absPath = 0; - return NULL; - } - if( (wabsPath = (wchar_t*)malloc( maxLength * sizeof(wchar_t) )) == NULL ) - { - errno = ENOMEM; - *absPath = 0; - return NULL; - } - wret = wceex_wfullpath( wabsPath, wrelPath, maxLength ); - if( wret && !WideCharToMultiByte( CP_ACP, 0, wabsPath, -1, absPath, - maxLength, NULL, NULL ) ) - { - errno = GetLastError(); - wret = NULL; - } - free( wabsPath ); - if( !wret ) - { - *absPath = 0; - return NULL; - } - return absPath; -} diff --git a/Foundation/wcelibcex-1.0/src/wce_rename.c b/Foundation/wcelibcex-1.0/src/wce_rename.c deleted file mode 100644 index 3cb750bc5..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_rename.c +++ /dev/null @@ -1,91 +0,0 @@ -/* - * $Id: wce_rename.c,v 1.3 2006/04/09 16:48:18 mloskot Exp $ - * - * Defines rename() function. - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ - -#include - -/******************************************************************************* -* wceex_rename - rename a file -* -* Description: -* -* The rename() function changes the name of a file. -* The oldfile argument points to the pathname of the file to be renamed. -* The newfile argument points to the new pathname of the file. -* -* XXX - mloskot - function does not set errno value yet. -* -* Return: -* -* Upon successful completion, rename() returns 0. Otherwise, -1 is returned. -* -* Reference: -* -* IEEE 1003.1, 2004 Edition -* -*******************************************************************************/ -int wceex_rename(const char *oldfile, const char *newfile) -{ - int res; - size_t lenold; - size_t lennew; - wchar_t *wsold; - wchar_t *wsnew; - - /* Covert filename buffer to Unicode. */ - - /* Old filename */ - lenold = MultiByteToWideChar (CP_ACP, 0, oldfile, -1, NULL, 0) ; - wsold = (wchar_t*)malloc(sizeof(wchar_t) * lenold); - MultiByteToWideChar( CP_ACP, 0, oldfile, -1, wsold, lenold); - - /* New filename */ - lennew = MultiByteToWideChar (CP_ACP, 0, newfile, -1, NULL, 0) ; - wsnew = (wchar_t*)malloc(sizeof(wchar_t) * lennew); - MultiByteToWideChar(CP_ACP, 0, newfile, -1, wsnew, lennew); - - /* Delete file using Win32 CE API call */ - res = MoveFile(wsold, wsnew); - - /* Free wide-char string */ - free(wsold); - free(wsnew); - - if (res) - return 0; /* success */ - else - return -1; -} - diff --git a/Foundation/wcelibcex-1.0/src/wce_rewind.c b/Foundation/wcelibcex-1.0/src/wce_rewind.c deleted file mode 100644 index 083eb8738..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_rewind.c +++ /dev/null @@ -1,100 +0,0 @@ -/* - * $Id: wce_rewind.c,v 1.2 2006/04/09 16:48:18 mloskot Exp $ - * - * Defines rewind() function. - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ - -#include -#include - -/******************************************************************************* -* wceex_rewind - Reset the file position indicator in a stream -* -* Description: -* -* The call rewind(stream) shall be equivalent to: -* (void) fseek(stream, 0L, SEEK_SET) -* -* Internally, rewind() function uses SetFilePointer call from -* Windows CE API. -* -* Windows CE specific: -* On Windows CE HANDLE type is defined as typedef void *HANDLE -* and FILE type is declared as typedef void FILE. -* -* Return: -* -* No return value. -* -* Reference: -* -* IEEE 1003.1, 2004 Edition -* -*******************************************************************************/ -void wceex_rewind(FILE * fp) -{ - int ret; - - /* TODO - mloskot: WARNING! - * fseek() does not clear error and end-of-file indicators for the stream - * So, that's why dirty asserts are used to get informed about potential problems. - */ - ret = fseek(fp, 0L, SEEK_SET); - - assert(0 == ret); - assert(0 == ferror(fp)); - assert(!feof(fp)); - - /* - - // XXX - mloskot: - // FILE* to HANDLE conversion needs hacks like _get_osfhandle() - // which are not available on Windows CE. - // Simple cast does not work. - // - // TODO: Does anyone know how to convert FILE* to HANDLE? - - DWORD dwError; - HANDLE hFile; - - hFile = (void*)fp; - - if (0xFFFFFFFF == SetFilePointer(hFile, 0, NULL, FILE_BEGIN)) - { - dwError = GetLastError(); - assert(NO_ERROR == dwError); - } - - */ -} - diff --git a/Foundation/wcelibcex-1.0/src/wce_rmdir.c b/Foundation/wcelibcex-1.0/src/wce_rmdir.c deleted file mode 100644 index 71fdab48f..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_rmdir.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - * $Id: wce_rmdir.c,v 1.3 2006/04/09 16:48:18 mloskot Exp $ - * - * Defines rmdir() function. - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ - -#include -#include -#include - -/******************************************************************************* -* wceex_rmdir - Remove empty directory from filesystem. -* -* Description: -* -* The rmdir() function shall remove a directory whose name is given by path. -* The directory shall be removed only if it is an empty directory. -* Internally, mkdir() function wraps RemoveDirectory call from -* Windows CE API. -* -* Return: -* -* Upon successful completion, rmdir() shall return 0. -* Otherwise, -1 shall be returned. If -1 is returned, the named directory -* shall not be changed. -* -* XXX - mloskot - errno is not set - todo. -* -* Reference: -* -* IEEE 1003.1, 2004 Edition -* -*******************************************************************************/ -int wceex_rmdir(const char *filename) -{ - int res; - size_t len; - wchar_t *widestr; - - /* Covert filename buffer to Unicode. */ - len = MultiByteToWideChar (CP_ACP, 0, filename, -1, NULL, 0) ; - widestr = (wchar_t*)malloc(sizeof(wchar_t) * len); - MultiByteToWideChar( CP_ACP, 0, filename, -1, widestr, len); - - /* Delete file using Win32 CE API call */ - res = RemoveDirectory(widestr); - - /* Free wide-char string */ - free(widestr); - - /* XXX - Consider following recommendations: */ - /* XXX - mloskot - update the st_ctime and st_mtime fields of the parent directory. */ - /* XXX - mloskot - set errno to [EEXIST] or [ENOTEMPTY] if function failed. */ - - if (res) - return 0; /* success */ - else - return -1; - -} - - diff --git a/Foundation/wcelibcex-1.0/src/wce_setlocale.c b/Foundation/wcelibcex-1.0/src/wce_setlocale.c deleted file mode 100644 index 9e024ad92..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_setlocale.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * $Id: wce_setlocale.c 20 2006-11-18 17:00:30Z mloskot $ - * - * Defines setlocale() function with dummy implementation. - * - * Created by Mateusz Loskot (mloskot@loskot.net) - * - * Copyright (c) 2006 Mateusz Loskot (mloskot@loskot.net) - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - */ - - -/******************************************************************************* -* wceex_setlocale - dummy setlocale() function -* -* Description: -* -* C library on Windows CE includes file with prototype of -* setlocale() function but no implementation is available. -* -* Currently, wceex_setlocale() function does not provide any implementation. -* It does ALWAYS return empty string. -* -* TODO: Consider to implement working version of setlocale() based on -* GetLocaleInfo and SetLocaleInfo() calls from Windows CE API. -* Return: -* -* The wceex_setlocale() function ALWAYS returns empty string.* -* -*******************************************************************************/ - -char* wceex_setlocale(int category, const char* locale) -{ - return ""; -} diff --git a/Foundation/wcelibcex-1.0/src/wce_stat.c b/Foundation/wcelibcex-1.0/src/wce_stat.c deleted file mode 100644 index fd219870a..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_stat.c +++ /dev/null @@ -1,233 +0,0 @@ -/* - * $Id: wce_stat.c,v 1.2 2006/04/09 16:48:18 mloskot Exp $ - * - * Defines stat() function. - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ - -#include -#include -#include -#include - -/******************************************************************************* -* Forward declarations. -********************************************************************************/ - -/* Return mode of file. */ -static unsigned short __wceex_get_file_mode(const char* name, int attr); - - -/******************************************************************************* -* wceex_stat - Get file attributes for file and store them in buffer. -* -* Description: -* -* File times on Windows CE: Windows CE object store keeps track of only -* one time, the time the file was last written to. -* -* Return value: -* -* Upon successful completion, 0 shall be returned. -* Otherwise, -1 shall be returned and errno set to indicate the error. -* -* XXX - mloskot - errno is not yet implemented -* -* Reference: -* IEEE Std 1003.1, 2004 Edition -* -*******************************************************************************/ -int wceex_stat(const char* filename, struct stat *buffer) -{ - HANDLE findhandle; - WIN32_FIND_DATA findbuf; - wchar_t pathWCE[MAX_PATH]; - - //Don't allow wildcards to be interpreted by system - if(strpbrk(filename, "?*")) - //if(wcspbrk(path, L"?*")) - { - //errno = ENOENT; - return(-1); - } - - //search file/dir - mbstowcs(pathWCE, filename, strlen(filename) + 1); - findhandle = FindFirstFile(pathWCE, &findbuf); - if(findhandle == INVALID_HANDLE_VALUE) - { - //is root - if(_stricmp(filename, ".\\")==0) - { - findbuf.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY; - - //dummy values - findbuf.nFileSizeHigh = 0; - findbuf.nFileSizeLow = 0; - findbuf.cFileName[0] = '\0'; - - buffer->st_mtime = wceex_local_to_time_r(1980 - TM_YEAR_BASE, 0, 1, 0, 0, 0); - buffer->st_atime = buffer->st_mtime; - buffer->st_ctime = buffer->st_mtime; - } - - //treat as an error - else - { - //errno = ENOENT; - return(-1); - } - } - else - { - /* File is found*/ - - SYSTEMTIME SystemTime; - FILETIME LocalFTime; - - //Time of last modification - if(!FileTimeToLocalFileTime( &findbuf.ftLastWriteTime, &LocalFTime) || - !FileTimeToSystemTime(&LocalFTime, &SystemTime)) - { - //errno = ::GetLastError(); - FindClose( findhandle ); - return( -1 ); - } - - buffer->st_mtime = wceex_local_to_time(&SystemTime); - - //Time od last access of file - if(findbuf.ftLastAccessTime.dwLowDateTime || findbuf.ftLastAccessTime.dwHighDateTime) - { - if(!FileTimeToLocalFileTime(&findbuf.ftLastAccessTime, &LocalFTime) || - !FileTimeToSystemTime(&LocalFTime, &SystemTime)) - { - //errno = ::GetLastError(); - FindClose( findhandle ); - return( -1 ); - } - buffer->st_atime = wceex_local_to_time(&SystemTime); - } - else - { - buffer->st_atime = buffer->st_mtime; - } - - - //Time of creation of file - if(findbuf.ftCreationTime.dwLowDateTime || findbuf.ftCreationTime.dwHighDateTime) - { - if(!FileTimeToLocalFileTime(&findbuf.ftCreationTime, &LocalFTime) || - !FileTimeToSystemTime(&LocalFTime, &SystemTime)) - { - //errno = ::GetLastError(); - FindClose( findhandle ); - return( -1 ); - } - buffer->st_ctime = wceex_local_to_time(&SystemTime); - } - else - { - buffer->st_ctime = buffer->st_mtime; - } - - //close handle - FindClose(findhandle); - } - - //file mode - buffer->st_mode = __wceex_get_file_mode(filename, findbuf.dwFileAttributes); - - //file size - buffer->st_size = findbuf.nFileSizeLow; - - //drive letter 0 - buffer->st_rdev = buffer->st_dev = 0; - - //set the common fields - buffer->st_gid = 0; - buffer->st_ino = 0; - buffer->st_uid = 0; - - //1 dla nlink - buffer->st_nlink = 1; - - - return 0; -} - -/******************************************************************************* -* Return mode of file. -********************************************************************************/ - -/* Test path for presence of slach at the end. */ -#define IS_SLASH(a) ((a) =='\\' || (a) == '/') - -#define __DOSMODE_MASK 0xff - -static unsigned short __wceex_get_file_mode(const char* filename, int attr) -{ - unsigned short file_mode; - unsigned mode; - const char *p; - - mode = attr & __DOSMODE_MASK; - - /* XXX - mloskot - remove it */ - if ((p = filename)[1] == ':') - p += 2; - - /* Check to see if this is a directory. */ - file_mode = (unsigned short) - (((IS_SLASH(*p) && !p[1]) || (mode & FILE_ATTRIBUTE_DIRECTORY) || !*p) - ? S_IFDIR | S_IEXEC : S_IFREG); - - /* Check if attribute byte does have read-only bit, otherwise it is read-write. */ - file_mode |= (mode & FILE_ATTRIBUTE_READONLY) ? S_IREAD : (S_IREAD | S_IWRITE); - - /* See if file appears to be executable by the extension. */ - if (p = strrchr(filename, '.')) - { - if (!_stricmp(p, ".exe") || - !_stricmp(p, ".cmd") || - !_stricmp(p, ".bat") || - !_stricmp(p, ".com")) - file_mode |= S_IEXEC; - } - - /* Propagate user read/write/execute bits to group/other fields. */ - file_mode |= (file_mode & 0700) >> 3; - file_mode |= (file_mode & 0700) >> 6; - - return(file_mode); -} - diff --git a/Foundation/wcelibcex-1.0/src/wce_stat.h b/Foundation/wcelibcex-1.0/src/wce_stat.h deleted file mode 100644 index c68546a56..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_stat.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - * $Id: wce_stat.h,v 1.2 2006/04/09 16:48:18 mloskot Exp $ - * - * sys/stat.h - data returned by the stat() function - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ -#ifndef WCEEX_STAT_H -#define WCEEX_STAT_H 1 - -#if !defined(_WIN32_WCE) -# error "Only Winddows CE target is supported!" -#endif - - -#include - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -#ifndef _STAT_T_DEFINED -struct stat -{ - /* Drive number of the disk containing the file (same as st_rdev). */ - unsigned int st_dev; - - /* - * Number of the information node (the inode) for the file (UNIX-specific). - * On UNIX file systems, the inode describes the file date and time stamps, permissions, and content. - * When files are hard-linked to one another, they share the same inode. - * The inode, and therefore st_ino, has no meaning in the FAT, HPFS, or NTFS file systems. - */ - unsigned short st_ino; - - /* - * Bit mask for file-mode information. The _S_IFDIR bit is set if path specifies a directory; - * the _S_IFREG bit is set if path specifies an ordinary file or a device. - * User read/write bits are set according to the file's permission mode; - * user execute bits are set according to the filename extension. - */ - unsigned short st_mode; - - /* Always 1 on non-NTFS file systems. */ - short st_nlink; - - /* - * Numeric identifier of user who owns file (UNIX-specific). - * This field will always be zero on Windows NT systems. - * A redirected file is classified as a Windows NT file. - */ - short st_uid; - - /* - * Numeric identifier of group that owns file (UNIX-specific). - * This field will always be zero on Windows NT systems. - * A redirected file is classified as a Windows NT file - */ - short st_gid; - - /* Drive number of the disk containing the file (same as st_dev) */ - unsigned int st_rdev; - - long st_size; /* Size of the file in bytes */ - time_t st_atime; /* Time of last access of file */ - time_t st_mtime; /* Time of last modification of file */ - time_t st_ctime; /* Time of creation of file */ -}; -# define _STAT_T_DEFINED -#endif - -/* Encoding of the file mode. */ -#define __S_IFMT 0170000 /* These bits determine file type. */ - -/* File types. */ -#define S_IFDIR 0040000 /* Directory. */ -#define S_IFCHR 0020000 /* Character device. */ -#define S_IFREG 0100000 /* Regular file. */ -#define S_IFIFO 0010000 /* FIFO. */ - -/* Permission bits */ -#define S_ISUID 04000 /* Set user ID on execution. */ -#define S_ISGID 02000 /* Set group ID on execution. */ -#define S_IREAD 0000400 /* Read permission, owner */ -#define S_IWRITE 0000200 /* Write permission, owner */ -#define S_IEXEC 0000100 /* Execute/search permission, owner */ - -/* Macros to test file types masks.*/ - -#define __S_ISTYPE(mode, mask) (((mode) & __S_IFMT) == (mask)) - -#define S_ISDIR(mode) __S_ISTYPE((mode), S_IFDIR) /* Test for a directory. */ -#define S_ISCHR(mode) __S_ISTYPE((mode), S_IFCHR) /* Test for a character special file. */ -#define S_ISREG(mode) __S_ISTYPE((mode), S_IFREG) /* Test for a regular file. */ -#define S_ISFIFO(mode) __S_ISTYPE((mode), S_IFIFO) /* Test for a pipe or FIFO special file. */ - - -/* - * File functions declarations. - */ - -int wceex_stat(const char *filename, struct stat *buf); -/* XXX - mloskot - int wceex_fstat(int filedes, struct stat *buf); */ - -int wceex_mkdir(const char *filename); -int wceex_rmdir(const char *filename); - - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* #ifndef WCEEX_STAT_H */ diff --git a/Foundation/wcelibcex-1.0/src/wce_stdio.h b/Foundation/wcelibcex-1.0/src/wce_stdio.h deleted file mode 100644 index f60c81981..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_stdio.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * $Id: wce_stdio.h,v 1.2 2006/04/09 16:48:18 mloskot Exp $ - * - * stdio.h - standard buffered input/output - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ -#ifndef WCEEX_STDIO_H -#define WCEEX_STDIO_H 1 - -#if !defined(_WIN32_WCE) -# error "Only Windows CE target is supported!" -#endif - - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - - -/* Functions declarations */ - -int wceex_rename(const char *oldfile, const char *newfile); -int wceex_unlink(const char *filename); -int wceex_wunlink(const wchar_t *filename); -void wceex_rewind(FILE *stream); - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* #ifndef WCEEX_STDIO_H */ diff --git a/Foundation/wcelibcex-1.0/src/wce_stdlib.h b/Foundation/wcelibcex-1.0/src/wce_stdlib.h deleted file mode 100644 index 2087a4af6..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_stdlib.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - * $Id: wce_stdlib.h,v 1.2 2006/04/09 16:48:18 mloskot Exp $ - * - * stdlib.h - standard library definitions - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ -#ifndef WCEEX_STDLIB_H -#define WCEEX_STDLIB_H 1 - -#if !defined(_WIN32_WCE) -# error "Only Windows CE target is supported!" -#endif - -/* - * Minimal set of required declarations to avoid inclusion of , - * because it defines 'LP' type and other which conflict with some libraries, - * like PROJ.4. - */ -typedef unsigned long DWORD; -typedef wchar_t *LPWSTR, *PWSTR; -typedef const wchar_t *LPCWSTR, *PCWSTR; - -#define _MAX_DIR 256 -#define _MAX_FNAME 256 -#define _MAX_EXT 256 - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - - -/* Generate an abnormal process abort. */ - -void wceex_abort(void); - -/* Searching and sorting utilities. */ - -void* wceex_bsearch(const void *key, const void *base, size_t nmemb, size_t size, - int (*compar)(const void *, const void *)); - -void* wceex_lfind(const void *key, const void *base, size_t *nmemb, size_t size, - int(*compar)(const void *, const void *)); - -/* File Management Functions */ - -void wceex_splitpath( const char *path, - char *drive, char *dir, char *name, char *ext ); -void wceex_wsplitpath( const wchar_t *path, - wchar_t *drive, wchar_t *dir, wchar_t *name, wchar_t *ext ); - -void wceex_makepath( char *path, - const char *drive, const char *dir, - const char *name, const char *ext ); -void wceex_wmakepath( wchar_t *path, - const wchar_t *drive, const wchar_t *dir, - const wchar_t *name, const wchar_t *ext ); - -char* wceex_fullpath( char *absPath, const char *relPath, size_t maxLength ); -wchar_t* wceex_wfullpath( wchar_t *absPath, const wchar_t *relPath, size_t maxLength ); - -DWORD wceex_GetFullPathNameW( LPCWSTR lpFileName, DWORD nBufferLength, - LPWSTR lpBuffer, LPWSTR *lpFilePart ); - -/* Dummy compilation enablers - functions that do not provide any implementation. */ - -char* wceex_getenv(const char* varname); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - - -#endif /* #ifndef WCEEX_STDLIB_H */ diff --git a/Foundation/wcelibcex-1.0/src/wce_strerror.c b/Foundation/wcelibcex-1.0/src/wce_strerror.c deleted file mode 100644 index 90b7ae908..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_strerror.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * $Id: wce_strerror.c,v 1.2 2006/04/09 16:48:18 mloskot Exp $ - * - * Defined strerror() function. - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ - -/******************************************************************** -* strerror - get error message string -* -* Description: -* -* The strerror() function shall map the error number in errnum -* to a locale-dependent error message string and shall return -* a pointer to it. Typically, the values for errnum come -* from errno, but strerror() shall map any value of type -* int to a message. -* -* Return value: -* -* Upon successful completion, strerror_r() shall return 0. -* Otherwise, an error number shall be returned to indicate -* the error. -********************************************************************/ -char * wceex_strerror(int errnum) -{ - return ""; /* dummy error message */ -} - diff --git a/Foundation/wcelibcex-1.0/src/wce_string.h b/Foundation/wcelibcex-1.0/src/wce_string.h deleted file mode 100644 index 0bdbd5ac2..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_string.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * $Id: wce_string.h,v 1.2 2006/04/09 16:48:18 mloskot Exp $ - * - * string.h - string operations - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ -#ifndef WCEEX_STRING_H -#define WCEEX_STRING_H 1 - -#if !defined(_WIN32_WCE) -# error "Only Winddows CE target is supported!" -#endif - - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - - -/* Function declarations */ - -char * wceex_strerror(int errnum); - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* #ifndef WCEEX_STRING_H */ - diff --git a/Foundation/wcelibcex-1.0/src/wce_time.c b/Foundation/wcelibcex-1.0/src/wce_time.c deleted file mode 100644 index b976cdd53..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_time.c +++ /dev/null @@ -1,126 +0,0 @@ -/* - * $Id: wce_time.c,v 1.2 2006/04/09 16:48:18 mloskot Exp $ - * - * Defines time() function. - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ - -#include -#include - -/******************************************************************************* -* wceex_time - Return the value of time in seconds since the Epoch. -* -* Description: -* The timer argument points to an area where the return value is also stored. -* If timer is a null pointer, no value is stored. -* -* Return: -* Value of time if success, otherwise (time_t)-1 is returned. -* -* Reference: -* IEEE Standard and an Open Group Technical Standard 1003.1, 2004 Edition -*******************************************************************************/ -time_t wceex_time(time_t *timer) -{ - time_t t; - struct tm tmbuff; - SYSTEMTIME st; - - /* Retrive current system date time as UTC */ - GetSystemTime(&st); - - /* Build tm struct based on SYSTEMTIME values */ - - /* Date values */ - tmbuff.tm_year = st.wYear - TM_YEAR_BASE; - tmbuff.tm_mon = st.wMonth - 1; /* wMonth value 1-12 */ - tmbuff.tm_mday = st.wDay; - - /* Time values */ - tmbuff.tm_hour = st.wHour; - tmbuff.tm_min = st.wMinute; - tmbuff.tm_sec = st.wSecond; - tmbuff.tm_isdst = 0; /* Always 0 for UTC time. */ - tmbuff.tm_wday = st.wDayOfWeek; - tmbuff.tm_yday = 0; /* Value is set by wceex_gmmktime */ - - /* Convert tm struct to time_tUTC */ - t = wceex_gmmktime(&tmbuff); - - /* Assign time value. */ - if (timer != NULL) - { - *timer = t; - } - - return t; -} -/******************************************************************************* -* _wceex_tm_to_time_t - Convert time from tm struct format to time_t value. -* -* Description: -* The tmbuff points to structure that contains broken-down time. -* Input and output times are encoded as UTC. -* -* Return: -* Specified time since the Epoch encoded as a value of type time_t. -* (time_t)-1 is returned if time can not be represented by time_t. -* -* Reference: -* IEEE Standard and an Open Group Technical Standard 1003.1, 2004 Edition -*******************************************************************************/ -time_t __wceex_tm_to_time_t(const struct tm *tmbuff) -{ - time_t timer; - - /* If the year is <1970 or the value is negative, the relationship is undefined */ - if (tmbuff->tm_year < 70) - { - return (time_t) -1; - } - - /* If the year is >=1970 */ - /* Each and every day shall be accounted for by exactly 86400 seconds */ - - timer = tmbuff->tm_sec - + tmbuff->tm_min * 60 /* convert minutes to seconds */ - + tmbuff->tm_hour * 3600 /* convert hours to seconds */ - + tmbuff->tm_yday * 86400 /* convert day of year to seconds */ - + (tmbuff->tm_year - 70) * 31536000 /* convert year to seconds */ - + ((tmbuff->tm_year - 69) / 4) * 86400 /* add a day (seconds) every 4 years starting in 1973 */ - - ((tmbuff->tm_year - 1) / 100) * 86400 /* subtract a day back out every 100 years starting in 2001 */ - + ((tmbuff->tm_year + 299) / 400) * 86400; /* add a day back in every 400 years starting in 2001 */ - - return timer; -} - diff --git a/Foundation/wcelibcex-1.0/src/wce_time.h b/Foundation/wcelibcex-1.0/src/wce_time.h deleted file mode 100644 index 4b9720ea9..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_time.h +++ /dev/null @@ -1,156 +0,0 @@ -/* - * $Id: wce_time.h,v 1.2 2006/04/09 16:48:18 mloskot Exp $ - * - * time.h and sys/time.h - time types and functions - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ -#ifndef WCEEX_TIME_H -#define WCEEX_TIME_H 1 - -#if !defined(_WIN32_WCE) -# error "Only Winddows CE target is supported!" -#endif - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/******************************************************************************* - Types and macros definition -*******************************************************************************/ - -#ifndef _TIME_T_DEFINED -typedef long time_t; /* time value as number of seconds of the Epoch */ -#define _TIME_T_DEFINED -#endif /* _TIME_T_DEFINED */ - -#ifndef _TM_DEFINED -struct tm -{ - int tm_sec; /* seconds after the minute - [0,59] */ - int tm_min; /* minutes after the hour - [0,59] */ - int tm_hour; /* hours since midnight - [0,23] */ - int tm_mday; /* day of the month - [1,31] */ - int tm_mon; /* months since January - [0,11] */ - int tm_year; /* years since 1900 */ - int tm_wday; /* days since Sunday - [0,6] */ - int tm_yday; /* days since January 1 - [0,365] */ - int tm_isdst; /* daylight savings time flag */ -}; -#define _TM_DEFINED -#endif /* _TM_DEFINED */ - -#ifndef _TIMEZONE_DEFINED -struct timezone -{ - int tz_minuteswest; /* minutes W of Greenwich */ - int tz_dsttime; /* type of dst correction */ -}; -#define _TIMEZONE_DEFINED -#endif /* _TIMEZONE_DEFINED */ - -/* - * Constants used internally by time functions. - */ - -#if defined(_MSC_VER) || defined(__BORLANDC__) -#define EPOCHFILETIME (116444736000000000i64) -#else -#define EPOCHFILETIME (116444736000000000LL) -#endif - -/* Epoch base year */ -#define EPOCH_YEAR 1970 - -/* tm struct members conversion units */ -#define TM_YEAR_BASE 1900 /* tm_year base year */ -#define TM_MONTH_MIN 0 /* tm_mon = 0 - January */ -#define TM_MONTH_MAX 11 /* tm_mon = 11 - December */ - -#define MIN_SEC 60 /* seconds in a minute */ -#define HOUR_SEC 3600 /* seconds in an hour */ -#define DAY_SEC 86400 /* seconds in a day */ -#define YEAR_SEC (365 * DAY_SEC) /* seconds in a year */ -#define FOUR_YEAR_SEC (4 * YEAR_SEC + 1) /* seconds in a 4-year period */ - -/* -In every, 400 year period (greg) is an interval of the same -number of days: 365 x 400 + 97 = 146097 -Also, there are 97 leap days in every such 400 years interval -*/ -#define LEAP_DAYS_IN_GREG 97 -#define GREG_YEARS 400 -#define GREG_DAYS (365 * GREG_YEARS + LEAP_DAYS_IN_GREG) -#define GREG_SECS (GREG_DAYS * DAY_SEC) - -/* Checks if given year is a leap year. */ -#define IS_LEAP_YEAR(year) \ - (((year) % 4) == 0 && (((year) % 100) != 0 || ((year) % 400) == 0)) - -/******************************************************************************* - time.h functions -*******************************************************************************/ - -time_t wceex_time(time_t *timer); -time_t wceex_mktime(struct tm *tmbuff); -time_t wceex_gmmktime(struct tm *tmbuff); - -struct tm * wceex_localtime(const time_t *timer); -struct tm * wceex_gmtime(const time_t *timer); - -char * wceex_ctime(const time_t *timer); -char * wceex_ctime_r(const time_t *timer, char *buf); - -char * wceex_asctime(const struct tm *tmbuff); -char * wceex_asctime_r(const struct tm *tbuff, char *buff); - -/******************************************************************************* - sys/time.h functions -*******************************************************************************/ - -int wceex_gettimeofday(struct timeval *tp, struct timezone *tzp); - -/******************************************************************************* - Internal functions prototypes. -*******************************************************************************/ - -/* Internal function to get time value from tm struc. */ -extern time_t __wceex_mktime_utc(struct tm *tmbuff); - - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* #ifndef WCEEX_TIME_H */ - diff --git a/Foundation/wcelibcex-1.0/src/wce_timesys.c b/Foundation/wcelibcex-1.0/src/wce_timesys.c deleted file mode 100644 index 946c4c44c..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_timesys.c +++ /dev/null @@ -1,138 +0,0 @@ -/* - * $Id: wce_timesys.c,v 1.2 2006/04/09 16:48:18 mloskot Exp $ - * - * Defines function to convert time between formats SYSTEMTIME, - * FILETIME and time_t value. - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ - -#include -#include -#include - -/******************************************************************************* -* wceex_filetime_to_time - Convert FILETIME to time as time_t value -* -* Description: -* -* -* Return: -* -* This function shall return the specified time since the Epoch -* encoded as a value of type time_t. -* -*******************************************************************************/ -time_t wceex_filetime_to_time(const FILETIME * pft) -{ - SYSTEMTIME st; - FILETIME lft; - - /* File time as 0 value cannot be represented as Epoch time. */ - - if (!pft->dwLowDateTime && !pft->dwHighDateTime) - { - return (time_t)-1; - } - - /* Convert to a broken down local time value */ - if (!FileTimeToLocalFileTime(pft, &lft) || - !FileTimeToSystemTime(&lft, &st)) - { - return (time_t)-1; - } - - return wceex_local_to_time(&st); -} - - -/******************************************************************************* -* wceex_local_to_time - Convert broken-down local time to value of type time_t -* -* Description: -* -* -* Return: -* -* This function shall return the specified time since the Epoch -* encoded as a value of type time_t. -* -*******************************************************************************/ -time_t wceex_local_to_time(const SYSTEMTIME *st) -{ - if (st == NULL) - { - return (time_t)-1; - } - - return wceex_local_to_time_r(st->wYear - TM_YEAR_BASE, - st->wMonth - 1, - st->wDay, st->wHour, - st->wMinute, - st->wSecond); -} - -/******************************************************************************* -* wceex_local_to_time - Convert broken-down local time to value of type time_t -* -* Description: -* -* Date and time are given as a set of separate values. -* Parameters: -* - year is Epoch-based, year - 1900 -* - mon is 0 based number of current month -* - day is 1 based number of current day -* - hour, min and sec represent current local time. -* -* Return: -* -* This function shall return the specified time since the Epoch -* encoded as a value of type time_t. -* -*******************************************************************************/ -time_t wceex_local_to_time_r(int year, int mon, int day, int hour, int min, int sec) -{ - struct tm tmbuff = { 0 }; - - tmbuff.tm_year = year; - tmbuff.tm_mon = mon; - tmbuff.tm_mday = day; - tmbuff.tm_hour = hour; - tmbuff.tm_min = min; - tmbuff.tm_sec = sec; - tmbuff.tm_isdst = 0; - tmbuff.tm_wday = 0; - tmbuff.tm_yday = 0; - - /* Convert tm struct to time_tUTC */ - return wceex_mktime(&tmbuff); -} - diff --git a/Foundation/wcelibcex-1.0/src/wce_timesys.h b/Foundation/wcelibcex-1.0/src/wce_timesys.h deleted file mode 100644 index 32928b851..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_timesys.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * $Id: wce_timesys.h,v 1.2 2006/04/09 16:48:18 mloskot Exp $ - * - * wce_timesys.h - SYSTEMTIME and FILETIME conversion utilities. - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - */ -#ifndef WCEEX_TIMESYS_H -#define WCEEX_TIMESYS_H 1 - -#ifndef _WIN32_WCE -# error "Only Windows CE target compilation supported" -#endif - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* Function declarations. */ - -time_t wceex_filetime_to_time(const FILETIME * filetime); -time_t wceex_local_to_time(const SYSTEMTIME *systemtime); -time_t wceex_local_to_time_r(int year, int mon, int day, int hour, int min, int sec); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* #ifndef WCEEX_TIMESYS_H */ diff --git a/Foundation/wcelibcex-1.0/src/wce_types.h b/Foundation/wcelibcex-1.0/src/wce_types.h deleted file mode 100644 index 850e17b05..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_types.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * $Id: wce_types.h,v 1.2 2006/04/09 16:48:18 mloskot Exp $ - * - * sys/types.h - data types - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - */ -#ifndef WCEEX_SYS_TYPES_H -#define WCEEX_SYS_TYPES_H 1 - -#if !defined(_WIN32_WCE) -# error "Only Winddows CE target is supported!" -#endif - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - - -#ifndef _TIME_T_DEFINED -typedef long time_t; /* Used for time in seconds. */ -# define _TIME_T_DEFINED -#endif - -#ifndef _SIZE_T_DEFINED -typedef unsigned int size_t; /* Used for sizes of objects. */ -# define _SIZE_T_DEFINED -#endif - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* #ifndef WCEEX_SYS_TYPES_H */ \ No newline at end of file diff --git a/Foundation/wcelibcex-1.0/src/wce_unistd.h b/Foundation/wcelibcex-1.0/src/wce_unistd.h deleted file mode 100644 index f8579f907..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_unistd.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * $Id$ - * - * unistd.h - defines symbolic constants, types, and declares miscellaneous functions - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Mateusz Loskot - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - */ -#ifndef WCEEX_UNISTD_H -#define WCEEX_UNISTD_H 1 - -#if !defined(_WIN32_WCE) -# error "Only Winddows CE target is supported!" -#endif - -/* Defines NULL pointer value */ -#include - - -/* - * Symbolic constants for second argument to access() function. - * All constants and following expressions R_OK|W_OK, R_OK|X_OK - * and R_OK|W_OK|X_OK have distinct values. - */ - -#define R_OK 4 /* Test for read permission. */ -#define W_OK 2 /* Test for write permission. */ -#define X_OK 1 /* Test for execute (search) permission. */ -#define F_OK 0 /* Test for existence of file. */ - - -/* - * Variables used for communication with getopt() function - * to the caller. - */ - -/* Argument associated with option */ -extern char *optarg; - -/* Index into parent argv vector */ -extern int optind; - -/* If error message should be printed */ -extern int opterr; - -/* Character checked for validity */ -extern int optopt; - -#endif /* #ifndef WCEEX_UNISTD_H */ \ No newline at end of file diff --git a/Foundation/wcelibcex-1.0/src/wce_unlink.c b/Foundation/wcelibcex-1.0/src/wce_unlink.c deleted file mode 100644 index b83ecf118..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_unlink.c +++ /dev/null @@ -1,100 +0,0 @@ -/* - * $Id: wce_unlink.c,v 1.2 2006/04/09 16:48:18 mloskot Exp $ - * - * Defines unlink() function. - * - * Created by Mateusz Loskot (mateusz@loskot.net) - * - * Copyright (c) 2006 Taxus SI Ltd. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - * Contact: - * Taxus SI Ltd. - * http://www.taxussi.com.pl - * - */ - -#include -#include - -/******************************************************************************* -* wceex_unlink -remove a directory entry. -* -* Return: -* -* Upon successful completion, 0 shall be returned. Otherwise, -1. -* -* Reference: -* -* IEEE 1003.1, 2004 Edition -* -*******************************************************************************/ -int wceex_unlink(const char *filename) -{ - int res; - int len; - wchar_t* pWideStr; - - /* Covert filename buffer to Unicode. */ - len = MultiByteToWideChar(CP_ACP, 0, filename, -1, NULL, 0) ; - pWideStr = (wchar_t*)malloc(sizeof(wchar_t) * len); - - MultiByteToWideChar(CP_ACP, 0, filename, -1, pWideStr, len); - - /* Delete file using Win32 CE API call */ - res = DeleteFile(pWideStr); - - /* Free wide-char string */ - free(pWideStr); - - if (res) - return 0; /* success */ - else - { - errno = GetLastError(); - return -1; - } -} - -/******************************************************************************* -* wceex_wunlink -remove a directory entry. -* -* Return: -* -* Upon successful completion, 0 shall be returned. Otherwise, -1. -* -* Reference: -* -* IEEE 1003.1, 2004 Edition -* -*******************************************************************************/ -int wceex_wunlink(const wchar_t *filename) -{ - if( DeleteFile(filename) ) - return 0; - else - { - errno = GetLastError(); - return -1; - } -} \ No newline at end of file diff --git a/Foundation/wcelibcex-1.0/src/wce_winbase.c b/Foundation/wcelibcex-1.0/src/wce_winbase.c deleted file mode 100644 index b0bb3b9fe..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_winbase.c +++ /dev/null @@ -1,38 +0,0 @@ -/* - * $Id: wce_winbase.c,v 1.0 2006/11/29 17:00:28 sdunand Exp $ - * - * Defines GetStdHandle() function with dummy implementation. - * - * Created by Stéphane Dunand (sdunand@sirap.fr) - * - * Copyright (c) 2006 Stéphane Dunand - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - */ - -#include - -HANDLE GetStdHandle( DWORD nStdHandle ) -{ - return NULL; -} diff --git a/Foundation/wcelibcex-1.0/src/wce_winbase.h b/Foundation/wcelibcex-1.0/src/wce_winbase.h deleted file mode 100644 index 3bbe5aacf..000000000 --- a/Foundation/wcelibcex-1.0/src/wce_winbase.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * $Id: wce_winbase.h,v 1.0 2006/04/12 15:11:36 sdunand Exp $ - * - * Created by Stéphane Dunand (sdunand@sirap.fr) - * - * Copyright (c) 2006 Stéphane Dunand - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom - * the Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included - * in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY - * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, - * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH - * THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * MIT License: - * http://opensource.org/licenses/mit-license.php - * - */ -#ifndef WCEEX_WINBASE_H -#define WCEEX_WINBASE_H 1 - -#if !defined(_WIN32_WCE) -# error "Only Windows CE target is supported!" -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -#define STD_INPUT_HANDLE (DWORD)-10 -#define STD_OUTPUT_HANDLE (DWORD)-11 -#define STD_ERROR_HANDLE (DWORD)-12 - -HANDLE GetStdHandle( DWORD nStdHandle ); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* #ifndef WCEEX_WINBASE_H */ - diff --git a/JSON/testsuite/CMakeLists.txt b/JSON/testsuite/CMakeLists.txt index 2a399f14f..2d2e54c2b 100644 --- a/JSON/testsuite/CMakeLists.txt +++ b/JSON/testsuite/CMakeLists.txt @@ -10,10 +10,6 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF src/WinDriver.cpp ) -POCO_SOURCES_AUTO_PLAT(TEST_SRCS WINCE - src/WinCEDriver.cpp -) - add_executable(JSON-testrunner ${TEST_SRCS}) if(ANDROID) add_test( diff --git a/JSON/testsuite/src/WinCEDriver.cpp b/JSON/testsuite/src/WinCEDriver.cpp deleted file mode 100644 index 12f962df9..000000000 --- a/JSON/testsuite/src/WinCEDriver.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// -// WinCEDriver.cpp -// -// Console-based test driver for Windows CE. -// -// Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "CppUnit/TestRunner.h" -#include "JSONTestSuite.h" -#include - - -int wmain(int argc, wchar_t* argv[]) -{ - std::vector args; - for (int i = 0; i < argc; ++i) - { - char buffer[1024]; - std::wcstombs(buffer, argv[i], sizeof(buffer)); - args.push_back(std::string(buffer)); - } - CppUnit::TestRunner runner; - runner.addTest("JSONTestSuite", JSONTestSuite::suite()); - return runner.run(args) ? 0 : 1; -} diff --git a/JWT/testsuite/CMakeLists.txt b/JWT/testsuite/CMakeLists.txt index 32f1b3eec..b8166ed98 100644 --- a/JWT/testsuite/CMakeLists.txt +++ b/JWT/testsuite/CMakeLists.txt @@ -10,10 +10,6 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF src/WinDriver.cpp ) -POCO_SOURCES_AUTO_PLAT(TEST_SRCS WINCE - src/WinCEDriver.cpp -) - add_executable(JWT-testrunner ${TEST_SRCS}) if(ANDROID) add_test( diff --git a/JWT/testsuite/src/WinCEDriver.cpp b/JWT/testsuite/src/WinCEDriver.cpp deleted file mode 100644 index 9961f2b8f..000000000 --- a/JWT/testsuite/src/WinCEDriver.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// -// WinCEDriver.cpp -// -// Console-based test driver for Windows CE. -// -// Copyright (c) 2019, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "CppUnit/TestRunner.h" -#include "JWTTestSuite.h" -#include - - -int wmain(int argc, wchar_t* argv[]) -{ - std::vector args; - for (int i = 0; i < argc; ++i) - { - char buffer[1024]; - std::wcstombs(buffer, argv[i], sizeof(buffer)); - args.push_back(std::string(buffer)); - } - CppUnit::TestRunner runner; - runner.addTest("JWTTestSuite", JWTTestSuite::suite()); - return runner.run(args) ? 0 : 1; -} diff --git a/MongoDB/testsuite/CMakeLists.txt b/MongoDB/testsuite/CMakeLists.txt index df40359d2..afa0f1659 100644 --- a/MongoDB/testsuite/CMakeLists.txt +++ b/MongoDB/testsuite/CMakeLists.txt @@ -10,10 +10,6 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF src/WinDriver.cpp ) -POCO_SOURCES_AUTO_PLAT(TEST_SRCS WINCE - src/WinCEDriver.cpp -) - add_executable(MongoDB-testrunner ${TEST_SRCS}) if(ANDROID) add_test( diff --git a/MongoDB/testsuite/src/WinCEDriver.cpp b/MongoDB/testsuite/src/WinCEDriver.cpp deleted file mode 100644 index 2fb7f34bd..000000000 --- a/MongoDB/testsuite/src/WinCEDriver.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// -// WinCEDriver.cpp -// -// Console-based test driver for Windows CE. -// -// Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "CppUnit/TestRunner.h" -#include "MongoDBTestSuite.h" -#include - - -int _tmain(int argc, wchar_t* argv[]) -{ - std::vector args; - for (int i = 0; i < argc; ++i) - { - char buffer[1024]; - std::wcstombs(buffer, argv[i], sizeof(buffer)); - args.push_back(std::string(buffer)); - } - CppUnit::TestRunner runner; - runner.addTest("MongoDBTestSuite", MongoDBTestSuite::suite()); - return runner.run(args) ? 0 : 1; -} diff --git a/Net/CMakeLists.txt b/Net/CMakeLists.txt index 04799325c..eff4df8b8 100644 --- a/Net/CMakeLists.txt +++ b/Net/CMakeLists.txt @@ -26,14 +26,10 @@ set_target_properties(Net ) target_link_libraries(Net PUBLIC Poco::Foundation) -# Windows and WindowsCE need additional libraries +# Windows need additional libraries if(WIN32) target_link_libraries(Net PUBLIC "iphlpapi.lib") - if(WINCE) - target_link_libraries(Net PUBLIC "ws2.lib") - else() - target_link_libraries(Net PUBLIC "ws2_32.lib") - endif() + target_link_libraries(Net PUBLIC "ws2_32.lib") endif(WIN32) target_include_directories(Net diff --git a/Net/include/Poco/Net/Net.h b/Net/include/Poco/Net/Net.h index 58e052af3..9b4fae0e6 100644 --- a/Net/include/Poco/Net/Net.h +++ b/Net/include/Poco/Net/Net.h @@ -106,13 +106,13 @@ std::string htmlize(const std::string& str); extern "C" const struct Net_API NetworkInitializer pocoNetworkInitializer; #if defined(Net_EXPORTS) - #if defined(_WIN64) || (defined(_WIN32_WCE) && !defined(x86)) + #if defined(_WIN64) #define POCO_NET_FORCE_SYMBOL(s) __pragma(comment (linker, "/export:"#s)) #elif defined(_WIN32) #define POCO_NET_FORCE_SYMBOL(s) __pragma(comment (linker, "/export:_"#s)) #endif #else // !Net_EXPORTS - #if defined(_WIN64) || (defined(_WIN32_WCE) && !defined(x86)) + #if defined(_WIN64) #define POCO_NET_FORCE_SYMBOL(s) __pragma(comment (linker, "/include:"#s)) #elif defined(_WIN32) #define POCO_NET_FORCE_SYMBOL(s) __pragma(comment (linker, "/include:_"#s)) diff --git a/Net/include/Poco/Net/SocketDefs.h b/Net/include/Poco/Net/SocketDefs.h index cbe80b9fb..3f7b182da 100644 --- a/Net/include/Poco/Net/SocketDefs.h +++ b/Net/include/Poco/Net/SocketDefs.h @@ -250,7 +250,7 @@ #endif -#if (POCO_OS == POCO_OS_HPUX) || (POCO_OS == POCO_OS_SOLARIS) || (POCO_OS == POCO_OS_WINDOWS_CE) || (POCO_OS == POCO_OS_CYGWIN) +#if (POCO_OS == POCO_OS_HPUX) || (POCO_OS == POCO_OS_SOLARIS) || (POCO_OS == POCO_OS_CYGWIN) #define POCO_BROKEN_TIMEOUTS 1 #endif diff --git a/Net/samples/WebSocketServer/CMakeLists.txt b/Net/samples/WebSocketServer/CMakeLists.txt index 0b3abfa13..5dd584983 100644 --- a/Net/samples/WebSocketServer/CMakeLists.txt +++ b/Net/samples/WebSocketServer/CMakeLists.txt @@ -1,5 +1,3 @@ add_executable(WebSocketServer src/WebSocketServer.cpp) -if(WINCE) - set_target_properties(WebSocketServer PROPERTIES LINK_FLAGS "/ENTRY:wmainCRTStartup") -endif() + target_link_libraries(WebSocketServer PUBLIC Poco::Net Poco::Util Poco::JSON) diff --git a/Net/src/NetworkInterface.cpp b/Net/src/NetworkInterface.cpp index f73d8f684..0002c316d 100644 --- a/Net/src/NetworkInterface.cpp +++ b/Net/src/NetworkInterface.cpp @@ -1009,7 +1009,6 @@ IPAddress subnetMaskForInterface(const std::string& name, bool isLoopback) } else { -#if !defined(_WIN32_WCE) std::string subKey("SYSTEM\\CurrentControlSet\\services\\Tcpip\\Parameters\\Interfaces\\"); subKey += name; std::string netmask; @@ -1031,9 +1030,6 @@ IPAddress subnetMaskForInterface(const std::string& name, bool isLoopback) Poco::UnicodeConverter::toUTF8(unetmask, netmask); RegCloseKey(hKey); return IPAddress::parse(netmask); -#else - return IPAddress(); -#endif // !defined(_WIN32_WCE) } } @@ -1088,9 +1084,7 @@ NetworkInterface::Map NetworkInterface::map(bool ipOnly, bool upOnly) unsigned ifIndex = 0; #if defined(POCO_HAVE_IPv6) - #if defined(_WIN32_WCE) - ifIndex = pAddress->Ipv6IfIndex; - #elif (_WIN32_WINNT >= 0x0501) && (NTDDI_VERSION >= 0x05010100) // Win XP SP1 + #if (_WIN32_WINNT >= 0x0501) && (NTDDI_VERSION >= 0x05010100) // Win XP SP1 #if defined (IP_ADAPTER_IPV6_ENABLED) // Vista if(osvi.dwMajorVersion>=6)//vista { @@ -1190,24 +1184,8 @@ NetworkInterface::Map NetworkInterface::map(bool ipOnly, bool upOnly) // OS, master address structure does not contain member for prefix length; we go an extra mile here in order to make sure // we reflect the actual values held by system and protect against misconfiguration (e.g. bad DHCP config entry) ULONG prefixLength = 0; -#if defined(_WIN32_WCE) - #if _WIN32_WCE >= 0x0800 - prefixLength = pUniAddr->OnLinkPrefixLength; - broadcastAddress = getBroadcastAddress(pAddress->FirstPrefix, address); - #else - broadcastAddress = getBroadcastAddress(pAddress->FirstPrefix, address, &prefixLength); - #endif - // if previous call did not do it, make last-ditch attempt for prefix and broadcast - if (prefixLength == 0 && pAddress->FirstPrefix) - prefixLength = pAddress->FirstPrefix->PrefixLength; - poco_assert (prefixLength <= 32); - if (broadcastAddress.isWildcard()) - { - IPAddress mask(static_cast(prefixLength), IPAddress::IPv4); - IPAddress host(mask & address); - broadcastAddress = host | ~mask; - } -#elif (_WIN32_WINNT >= 0x0501) && (NTDDI_VERSION >= 0x05010100) // Win XP SP1 + +#if (_WIN32_WINNT >= 0x0501) && (NTDDI_VERSION >= 0x05010100) // Win XP SP1 #if (_WIN32_WINNT >= 0x0600) // Vista and newer if (osvi.dwMajorVersion >= 6) { diff --git a/Net/src/TCPServer.cpp b/Net/src/TCPServer.cpp index 46951fdb9..ea307b399 100644 --- a/Net/src/TCPServer.cpp +++ b/Net/src/TCPServer.cpp @@ -225,18 +225,10 @@ void TCPServer::setConnectionFilter(const TCPServerConnectionFilter::Ptr& pConne std::string TCPServer::threadName(const ServerSocket& socket) { -#if _WIN32_WCE == 0x0800 - // Workaround for WEC2013: only the first call to getsockname() - // succeeds. To mitigate the impact of this bug, do not call - // socket.address(), which calls getsockname(), here. - std::string name("TCPServer"); - #pragma message("Using WEC2013 getsockname() workaround in TCPServer::threadName(). Remove when no longer needed.") -#else std::string name("TCPServer: "); name.append(socket.address().toString()); -#endif - return name; + return name; } diff --git a/Net/testsuite/CMakeLists.txt b/Net/testsuite/CMakeLists.txt index f302e795a..b3f78ab81 100644 --- a/Net/testsuite/CMakeLists.txt +++ b/Net/testsuite/CMakeLists.txt @@ -10,10 +10,6 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF src/WinDriver.cpp ) -POCO_SOURCES_AUTO_PLAT(TEST_SRCS WINCE - src/WinCEDriver.cpp -) - add_executable(Net-testrunner ${TEST_SRCS}) if(ANDROID) add_test( diff --git a/Net/testsuite/src/SocketAddressTest.cpp b/Net/testsuite/src/SocketAddressTest.cpp index 2249f9df1..b5b4e6cf9 100644 --- a/Net/testsuite/src/SocketAddressTest.cpp +++ b/Net/testsuite/src/SocketAddressTest.cpp @@ -57,12 +57,10 @@ void SocketAddressTest::testSocketAddress() assertTrue (sa2.host().toString() == "192.168.1.100"); assertTrue (sa2.port() == 100); -#if !defined(_WIN32_WCE) SocketAddress sa03 = SocketAddress("192.168.1.100", "ftp"); SocketAddress sa3(std::move(sa03)); assertTrue (sa3.host().toString() == "192.168.1.100"); assertTrue (sa3.port() == 21); -#endif try { diff --git a/Net/testsuite/src/WinCEDriver.cpp b/Net/testsuite/src/WinCEDriver.cpp deleted file mode 100644 index e1b3bf516..000000000 --- a/Net/testsuite/src/WinCEDriver.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// -// WinCEDriver.cpp -// -// Console-based test driver for Windows CE. -// -// Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "CppUnit/TestRunner.h" -#include "NetTestSuite.h" -#include - - -int wmain(int argc, wchar_t* argv[]) -{ - std::vector args; - for (int i = 0; i < argc; ++i) - { - char buffer[1024]; - std::wcstombs(buffer, argv[i], sizeof(buffer)); - args.push_back(std::string(buffer)); - } - CppUnit::TestRunner runner; - runner.addTest("NetTestSuite", NetTestSuite::suite()); - return runner.run(args) ? 0 : 1; -} diff --git a/NetSSL_OpenSSL/testsuite/CMakeLists.txt b/NetSSL_OpenSSL/testsuite/CMakeLists.txt index 320d4dd14..9f8e916f5 100644 --- a/NetSSL_OpenSSL/testsuite/CMakeLists.txt +++ b/NetSSL_OpenSSL/testsuite/CMakeLists.txt @@ -10,10 +10,6 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF src/WinDriver.cpp ) -POCO_SOURCES_AUTO_PLAT(TEST_SRCS WINCE - src/WinCEDriver.cpp -) - add_executable(NetSSL-testrunner ${TEST_SRCS}) if(ANDROID) add_test( diff --git a/NetSSL_OpenSSL/testsuite/src/WinCEDriver.cpp b/NetSSL_OpenSSL/testsuite/src/WinCEDriver.cpp deleted file mode 100644 index 970b39b9e..000000000 --- a/NetSSL_OpenSSL/testsuite/src/WinCEDriver.cpp +++ /dev/null @@ -1,88 +0,0 @@ -// -// WinCEDriver.cpp -// -// Console-based test driver for Windows CE. -// -// Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "CppUnit/TestRunner.h" -#include "NetSSLTestSuite.h" -#include "Poco/Util/Application.h" -#include "Poco/Net/HTTPStreamFactory.h" -#include "Poco/Net/HTTPSStreamFactory.h" -#include - - -class NetSSLApp: public Poco::Util::Application -{ -public: - NetSSLApp() - { - Poco::Net::initializeSSL(); - Poco::Net::HTTPStreamFactory::registerFactory(); - Poco::Net::HTTPSStreamFactory::registerFactory(); - } - - ~NetSSLApp() - { - Poco::Net::uninitializeSSL(); - } - - int main(const std::vector& args) - { - CppUnit::TestRunner runner; - runner.addTest("NetSSLTestSuite", NetSSLTestSuite::suite()); - return runner.run(_targs) ? 0 : 1; - } - - void setup(const std::vector& args) - { - char* argv[] = - { - const_cast(args[0].c_str()) - }; - - init(1, argv); - for (std::size_t i = 0; i < args.size(); ++i) - _targs.push_back(args[i]); - } - -protected: - void initialize(Poco::Util::Application& self) - { - loadConfiguration(); // load default configuration files, if present - Poco::Util::Application::initialize(self); - } - -private: - std::vector _targs; -}; - - -int _tmain(int argc, wchar_t* argv[]) -{ - std::vector args; - for (int i = 0; i < argc; ++i) - { - char buffer[1024]; - std::wcstombs(buffer, argv[i], sizeof(buffer)); - args.push_back(std::string(buffer)); - } - - NetSSLApp app; - try - { - app.setup(args); - return app.run(); - } - catch (Poco::Exception& exc) - { - std::cout << exc.displayText() << std::endl; - return 1; - } -} diff --git a/NetSSL_Win/src/SSLManager.cpp b/NetSSL_Win/src/SSLManager.cpp index 853a1b5b0..40be6ebaa 100644 --- a/NetSSL_Win/src/SSLManager.cpp +++ b/NetSSL_Win/src/SSLManager.cpp @@ -349,9 +349,6 @@ void SSLManager::loadSecurityLibrary() if (!GetVersionEx(&VerInfo)) throw Poco::SystemException("Cannot determine OS version"); -#if defined(_WIN32_WCE) - dllPath = L"Secur32.dll"; -#else if (VerInfo.dwPlatformId == VER_PLATFORM_WIN32_NT && VerInfo.dwMajorVersion == 4) { @@ -366,7 +363,6 @@ void SSLManager::loadSecurityLibrary() { throw Poco::SystemException("Cannot determine which security DLL to use"); } -#endif // // Load Security DLL @@ -378,11 +374,7 @@ void SSLManager::loadSecurityLibrary() throw Poco::SystemException("Failed to load security DLL"); } -#if defined(_WIN32_WCE) - INIT_SECURITY_INTERFACE pInitSecurityInterface = (INIT_SECURITY_INTERFACE)GetProcAddressW( _hSecurityModule, L"InitSecurityInterfaceW"); -#else INIT_SECURITY_INTERFACE pInitSecurityInterface = (INIT_SECURITY_INTERFACE)GetProcAddress( _hSecurityModule, "InitSecurityInterfaceW"); -#endif if (!pInitSecurityInterface) { diff --git a/NetSSL_Win/src/SecureSocketImpl.cpp b/NetSSL_Win/src/SecureSocketImpl.cpp index 03aedf399..c7b9c7e6e 100644 --- a/NetSSL_Win/src/SecureSocketImpl.cpp +++ b/NetSSL_Win/src/SecureSocketImpl.cpp @@ -1308,7 +1308,6 @@ void SecureSocketImpl::verifyCertificateChainClient(PCCERT_CONTEXT pServerCert) } CertFreeCertificateContext(pResult); -#if !defined(_WIN32_WCE) // check if cert is revoked if (_pContext->options() & Context::OPT_PERFORM_REVOCATION_CHECK) { @@ -1338,7 +1337,6 @@ void SecureSocketImpl::verifyCertificateChainClient(PCCERT_CONTEXT pServerCert) } else break; } -#endif } CertFreeCertificateChain(pChainContext); } @@ -1409,7 +1407,6 @@ void SecureSocketImpl::serverVerifyCertificate() return; } -#if !defined(_WIN32_WCE) // perform revocation checking for (DWORD i = 0; i < pChainContext->cChain; i++) { @@ -1444,7 +1441,7 @@ void SecureSocketImpl::serverVerifyCertificate() } } } -#endif + if (pChainContext) { CertFreeCertificateChain(pChainContext); diff --git a/NetSSL_Win/testsuite/CMakeLists.txt b/NetSSL_Win/testsuite/CMakeLists.txt index ec45478a1..40507eda4 100644 --- a/NetSSL_Win/testsuite/CMakeLists.txt +++ b/NetSSL_Win/testsuite/CMakeLists.txt @@ -10,10 +10,6 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF src/WinDriver.cpp ) -POCO_SOURCES_AUTO_PLAT(TEST_SRCS WINCE - src/WinCEDriver.cpp -) - add_executable(NetSSLWin-testrunner ${TEST_SRCS}) add_test( NAME NetSSLWin diff --git a/NetSSL_Win/testsuite/src/WinCEDriver.cpp b/NetSSL_Win/testsuite/src/WinCEDriver.cpp deleted file mode 100644 index 990a47c8e..000000000 --- a/NetSSL_Win/testsuite/src/WinCEDriver.cpp +++ /dev/null @@ -1,89 +0,0 @@ -// -// WinCEDriver.cpp -// -// Console-based test driver for Windows CE. -// -// Copyright (c) 2006-2014, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "CppUnit/TestRunner.h" -#include "NetSSLTestSuite.h" -#include "Poco/Util/Application.h" -#include "Poco/Net/HTTPStreamFactory.h" -#include "Poco/Net/HTTPSStreamFactory.h" -#include -#include - - -class NetSSLApp: public Poco::Util::Application -{ -public: - NetSSLApp() - { - Poco::Net::initializeSSL(); - Poco::Net::HTTPStreamFactory::registerFactory(); - Poco::Net::HTTPSStreamFactory::registerFactory(); - } - - ~NetSSLApp() - { - Poco::Net::uninitializeSSL(); - } - - int main(const std::vector& args) - { - CppUnit::TestRunner runner; - runner.addTest("NetSSLTestSuite", NetSSLTestSuite::suite()); - return runner.run(_targs) ? 0 : 1; - } - - void setup(const std::vector& args) - { - char* argv[] = - { - const_cast(args[0].c_str()) - }; - - init(1, argv); - for (std::size_t i = 0; i < args.size(); ++i) - _targs.push_back(args[i]); - } - -protected: - void initialize(Poco::Util::Application& self) - { - loadConfiguration(); // load default configuration files, if present - Poco::Util::Application::initialize(self); - } - -private: - std::vector _targs; -}; - - -int _tmain(int argc, wchar_t* argv[]) -{ - std::vector args; - for (int i = 0; i < argc; ++i) - { - char buffer[1024]; - std::wcstombs(buffer, argv[i], sizeof(buffer)); - args.push_back(std::string(buffer)); - } - - NetSSLApp app; - try - { - app.setup(args); - return app.run(); - } - catch (Poco::Exception& exc) - { - std::cout << exc.displayText() << std::endl; - return 1; - } -} diff --git a/Prometheus/testsuite/CMakeLists.txt b/Prometheus/testsuite/CMakeLists.txt index 2d840a988..f36482084 100644 --- a/Prometheus/testsuite/CMakeLists.txt +++ b/Prometheus/testsuite/CMakeLists.txt @@ -10,10 +10,6 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF src/WinDriver.cpp ) -POCO_SOURCES_AUTO_PLAT(TEST_SRCS WINCE - src/WinCEDriver.cpp -) - add_executable(Prometheus-testrunner ${TEST_SRCS}) if(ANDROID) add_test( diff --git a/Prometheus/testsuite/src/WinCEDriver.cpp b/Prometheus/testsuite/src/WinCEDriver.cpp deleted file mode 100644 index b17d86e24..000000000 --- a/Prometheus/testsuite/src/WinCEDriver.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// -// WinCEDriver.cpp -// -// Console-based test driver for Windows CE. -// -// Copyright (c) 2022, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "CppUnit/TestRunner.h" -#include "PrometheusTestSuite.h" -#include - - -int _tmain(int argc, wchar_t* argv[]) -{ - std::vector args; - for (int i = 0; i < argc; ++i) - { - char buffer[1024]; - std::wcstombs(buffer, argv[i], sizeof(buffer)); - args.push_back(std::string(buffer)); - } - CppUnit::TestRunner runner; - runner.addTest("PrometheusTestSuite", PrometheusTestSuite::suite()); - return runner.run(args) ? 0 : 1; -} diff --git a/Redis/testsuite/CMakeLists.txt b/Redis/testsuite/CMakeLists.txt index 422ffc493..a74d39c7b 100644 --- a/Redis/testsuite/CMakeLists.txt +++ b/Redis/testsuite/CMakeLists.txt @@ -10,10 +10,6 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF src/WinDriver.cpp ) -POCO_SOURCES_AUTO_PLAT(TEST_SRCS WINCE - src/WinCEDriver.cpp -) - add_executable(Redis-testrunner ${TEST_SRCS}) if(ANDROID) add_test( diff --git a/Redis/testsuite/src/WinCEDriver.cpp b/Redis/testsuite/src/WinCEDriver.cpp deleted file mode 100644 index 156391d69..000000000 --- a/Redis/testsuite/src/WinCEDriver.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// -// WinCEDriver.cpp -// -// Console-based test driver for Windows CE. -// -// Copyright (c) 2015, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "CppUnit/TestRunner.h" -#include "RedisTestSuite.h" -#include - - -int _tmain(int argc, wchar_t* argv[]) -{ - std::vector args; - for (int i = 0; i < argc; ++i) - { - char buffer[1024]; - std::wcstombs(buffer, argv[i], sizeof(buffer)); - args.push_back(std::string(buffer)); - } - CppUnit::TestRunner runner; - runner.addTest("RedisTestSuite", RedisTestSuite::suite()); - return runner.run(args) ? 0 : 1; -} diff --git a/Util/include/Poco/Util/ServerApplication.h b/Util/include/Poco/Util/ServerApplication.h index ae5cea0f1..f575963da 100644 --- a/Util/include/Poco/Util/ServerApplication.h +++ b/Util/include/Poco/Util/ServerApplication.h @@ -161,9 +161,7 @@ public: protected: int run(); void waitForTerminationRequest(); -#if !defined(_WIN32_WCE) void defineOptions(OptionSet& options); -#endif private: virtual void handlePidFile(const std::string& name, const std::string& value); @@ -178,7 +176,6 @@ private: static Poco::Event _terminate; #endif #elif defined(POCO_OS_FAMILY_WINDOWS) -#if !defined(_WIN32_WCE) enum Action { SRV_RUN, @@ -208,7 +205,6 @@ private: static Poco::Event _terminated; static SERVICE_STATUS _serviceStatus; static SERVICE_STATUS_HANDLE _serviceStatusHandle; -#endif // _WIN32_WCE static Poco::NamedEvent _terminate; #endif }; diff --git a/Util/samples/SampleApp/CMakeLists.txt b/Util/samples/SampleApp/CMakeLists.txt index 30f2c787d..e86a9aa2d 100644 --- a/Util/samples/SampleApp/CMakeLists.txt +++ b/Util/samples/SampleApp/CMakeLists.txt @@ -1,5 +1,3 @@ add_executable(SampleApp src/SampleApp.cpp) -if(WINCE) - set_target_properties(SampleApp PROPERTIES LINK_FLAGS "/ENTRY:wmainCRTStartup") -endif() + target_link_libraries(SampleApp PUBLIC Poco::Util Poco::JSON Poco::XML) diff --git a/Util/samples/SampleServer/CMakeLists.txt b/Util/samples/SampleServer/CMakeLists.txt index e2bcfe0a3..7137fe489 100644 --- a/Util/samples/SampleServer/CMakeLists.txt +++ b/Util/samples/SampleServer/CMakeLists.txt @@ -1,5 +1,3 @@ add_executable(SampleServer src/SampleServer.cpp) -if(WINCE) - set_target_properties(SampleServer PROPERTIES LINK_FLAGS "/ENTRY:wmainCRTStartup") -endif() + target_link_libraries(SampleServer PUBLIC Poco::Util Poco::JSON Poco::XML) diff --git a/Util/samples/pkill/CMakeLists.txt b/Util/samples/pkill/CMakeLists.txt index 9c34d001b..b1eaf4504 100644 --- a/Util/samples/pkill/CMakeLists.txt +++ b/Util/samples/pkill/CMakeLists.txt @@ -1,5 +1,3 @@ add_executable(pkill src/pkill.cpp) -if(WINCE) - set_target_properties(pkill PROPERTIES LINK_FLAGS "/ENTRY:wmainCRTStartup") -endif() + target_link_libraries(pkill PUBLIC Poco::Util Poco::JSON Poco::XML) diff --git a/Util/src/ServerApplication.cpp b/Util/src/ServerApplication.cpp index 0d2245c1c..6ff10a959 100644 --- a/Util/src/ServerApplication.cpp +++ b/Util/src/ServerApplication.cpp @@ -34,10 +34,8 @@ #include #include #elif defined(POCO_OS_FAMILY_WINDOWS) -#if !defined(_WIN32_WCE) #include "Poco/Util/WinService.h" #include "Poco/Util/WinRegistryKey.h" -#endif #include "Poco/UnWindows.h" #include #endif @@ -56,12 +54,10 @@ namespace Util { #if defined(POCO_OS_FAMILY_WINDOWS) Poco::NamedEvent ServerApplication::_terminate(Poco::ProcessImpl::terminationEventName(Poco::Process::id())); -#if !defined(_WIN32_WCE) Poco::Event ServerApplication::_terminated; SERVICE_STATUS ServerApplication::_serviceStatus; SERVICE_STATUS_HANDLE ServerApplication::_serviceStatusHandle = 0; #endif -#endif #if defined(POCO_VXWORKS) || POCO_OS == POCO_OS_ANDROID Poco::Event ServerApplication::_terminate; #endif @@ -70,11 +66,9 @@ Poco::Event ServerApplication::_terminate; ServerApplication::ServerApplication() { #if defined(POCO_OS_FAMILY_WINDOWS) -#if !defined(_WIN32_WCE) _action = SRV_RUN; std::memset(&_serviceStatus, 0, sizeof(_serviceStatus)); #endif -#endif } @@ -109,7 +103,6 @@ void ServerApplication::terminate() #if defined(POCO_OS_FAMILY_WINDOWS) -#if !defined(_WIN32_WCE) // @@ -436,59 +429,6 @@ void ServerApplication::handleStartup(const std::string& name, const std::string } -#else // _WIN32_WCE -void ServerApplication::waitForTerminationRequest() -{ - _terminate.wait(); -} - - -int ServerApplication::run(int argc, char** argv) -{ - try - { - init(argc, argv); - } - catch (Exception& exc) - { - logger().log(exc); - return EXIT_CONFIG; - } - return run(); -} - - -int ServerApplication::run(const std::vector& args) -{ - try - { - init(args); - } - catch (Exception& exc) - { - logger().log(exc); - return EXIT_CONFIG; - } - return run(); -} - - -int ServerApplication::run(int argc, wchar_t** argv) -{ - try - { - init(argc, argv); - } - catch (Exception& exc) - { - logger().log(exc); - return EXIT_CONFIG; - } - return run(); -} - - -#endif // _WIN32_WCE #elif defined(POCO_VXWORKS) // // VxWorks specific code diff --git a/Util/src/WinRegistryConfiguration.cpp b/Util/src/WinRegistryConfiguration.cpp index b8d5c32a1..9bf9ffef3 100644 --- a/Util/src/WinRegistryConfiguration.cpp +++ b/Util/src/WinRegistryConfiguration.cpp @@ -95,19 +95,12 @@ void WinRegistryConfiguration::enumerate(const std::string& key, Keys& range) co if (fullPath.empty()) { // return all root level keys -#if defined(_WIN32_WCE) - range.push_back("HKEY_CLASSES_ROOT"); - range.push_back("HKEY_CURRENT_USER"); - range.push_back("HKEY_LOCAL_MACHINE"); - range.push_back("HKEY_USERS"); -#else range.push_back("HKEY_CLASSES_ROOT"); range.push_back("HKEY_CURRENT_CONFIG"); range.push_back("HKEY_CURRENT_USER"); range.push_back("HKEY_LOCAL_MACHINE"); range.push_back("HKEY_PERFORMANCE_DATA"); range.push_back("HKEY_USERS"); -#endif } else { diff --git a/Util/src/WinRegistryKey.cpp b/Util/src/WinRegistryKey.cpp index 7fd1a28d0..960e8f728 100644 --- a/Util/src/WinRegistryKey.cpp +++ b/Util/src/WinRegistryKey.cpp @@ -148,17 +148,14 @@ std::string WinRegistryKey::getStringExpand(const std::string& name) Poco::Buffer buffer(len + 1); RegQueryValueExW(_hKey, uname.c_str(), NULL, NULL, (BYTE*) buffer.begin(), &size); buffer[len] = 0; -#if !defined(_WIN32_WCE) + wchar_t temp; DWORD expSize = ExpandEnvironmentStringsW(buffer.begin(), &temp, 1); Poco::Buffer expBuffer(expSize); ExpandEnvironmentStringsW(buffer.begin(), expBuffer.begin(), expSize); std::string result; UnicodeConverter::toUTF8(expBuffer.begin(), result); -#else - std::string result; - UnicodeConverter::toUTF8(buffer.begin(), result); -#endif + return result; } return std::string(); @@ -281,7 +278,6 @@ void WinRegistryKey::deleteKey() std::wstring usubKey; Poco::UnicodeConverter::toUTF16(_subKey, usubKey); -#if !defined(_WIN32_WCE) typedef LONG (WINAPI *RegDeleteKeyExWFunc)(HKEY hKey, const wchar_t* lpSubKey, REGSAM samDesired, DWORD Reserved); if (_extraSam != 0) { @@ -297,7 +293,7 @@ void WinRegistryKey::deleteKey() } } } -#endif + if (RegDeleteKeyW(_hRootKey, usubKey.c_str()) != ERROR_SUCCESS) throw NotFoundException(key()); } diff --git a/Util/src/WinService.cpp b/Util/src/WinService.cpp index 6e231bbd9..b2a9d8f6c 100644 --- a/Util/src/WinService.cpp +++ b/Util/src/WinService.cpp @@ -12,9 +12,6 @@ // -#if !defined(_WIN32_WCE) - - #include "Poco/Util/WinService.h" #include "Poco/Util/WinRegistryKey.h" #include "Poco/Thread.h" @@ -421,6 +418,3 @@ POCO_LPQUERY_SERVICE_CONFIG WinService::config() const } } // namespace Poco::Util - - -#endif // !defined(_WIN32_WCE) diff --git a/Util/testsuite/CMakeLists.txt b/Util/testsuite/CMakeLists.txt index 90332680a..4f1e0f3c4 100644 --- a/Util/testsuite/CMakeLists.txt +++ b/Util/testsuite/CMakeLists.txt @@ -17,10 +17,6 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF src/WinDriver.cpp ) -POCO_SOURCES_AUTO_PLAT(TEST_SRCS WINCE - src/WinCEDriver.cpp -) - add_executable(Util-testrunner ${TEST_SRCS}) if(ANDROID) add_test( diff --git a/Util/testsuite/src/LoggingConfiguratorTest.cpp b/Util/testsuite/src/LoggingConfiguratorTest.cpp index 9f1d97d7e..3e9250f57 100644 --- a/Util/testsuite/src/LoggingConfiguratorTest.cpp +++ b/Util/testsuite/src/LoggingConfiguratorTest.cpp @@ -89,7 +89,7 @@ void LoggingConfiguratorTest::testConfigurator() assertTrue (root.getLevel() == Message::PRIO_WARNING); FormattingChannel::Ptr pFC = root.getChannel().cast(); assertNotNull (pFC); -#if defined(_WIN32) && !defined(_WIN32_WCE) +#if defined(_WIN32) assertTrue (!pFC->getChannel().cast().isNull()); #else assertTrue (!pFC->getChannel().cast().isNull()); diff --git a/Util/testsuite/src/UtilTestSuite.cpp b/Util/testsuite/src/UtilTestSuite.cpp index 36bdbf369..d0715be78 100644 --- a/Util/testsuite/src/UtilTestSuite.cpp +++ b/Util/testsuite/src/UtilTestSuite.cpp @@ -12,7 +12,7 @@ #include "ConfigurationTestSuite.h" #include "OptionsTestSuite.h" #include "TimerTestSuite.h" -#if defined(_MSC_VER) && !defined(_WIN32_WCE) +#if defined(_MSC_VER) #include "WindowsTestSuite.h" #endif @@ -24,7 +24,7 @@ CppUnit::Test* UtilTestSuite::suite() pSuite->addTest(ConfigurationTestSuite::suite()); pSuite->addTest(OptionsTestSuite::suite()); pSuite->addTest(TimerTestSuite::suite()); -#if defined(_MSC_VER) && !defined(_WIN32_WCE) +#if defined(_MSC_VER) pSuite->addTest(WindowsTestSuite::suite()); #endif diff --git a/Util/testsuite/src/WinCEDriver.cpp b/Util/testsuite/src/WinCEDriver.cpp deleted file mode 100644 index 5ccb12824..000000000 --- a/Util/testsuite/src/WinCEDriver.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// -// WinCEDriver.cpp -// -// Console-based test driver for Windows CE. -// -// Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "CppUnit/TestRunner.h" -#include "UtilTestSuite.h" -#include - - -int wmain(int argc, wchar_t* argv[]) -{ - std::vector args; - for (int i = 0; i < argc; ++i) - { - char buffer[1024]; - std::wcstombs(buffer, argv[i], sizeof(buffer)); - args.push_back(std::string(buffer)); - } - CppUnit::TestRunner runner; - runner.addTest("UtilTestSuite", UtilTestSuite::suite()); - return runner.run(args) ? 0 : 1; -} diff --git a/Util/testsuite/src/WinConfigurationTest.cpp b/Util/testsuite/src/WinConfigurationTest.cpp index 1686aeefc..078520f06 100644 --- a/Util/testsuite/src/WinConfigurationTest.cpp +++ b/Util/testsuite/src/WinConfigurationTest.cpp @@ -108,13 +108,7 @@ void WinConfigurationTest::testConfiguration() assertTrue (pRootReg->getInt("HKEY_CURRENT_USER.Software.Applied Informatics.Test.name1") == 1); pRootReg->keys(keys); -#if defined(_WIN32_WCE) - assertTrue (keys.size() == 4); - assertTrue (std::find(keys.begin(), keys.end(), "HKEY_CLASSES_ROOT") != keys.end()); - assertTrue (std::find(keys.begin(), keys.end(), "HKEY_CURRENT_USER") != keys.end()); - assertTrue (std::find(keys.begin(), keys.end(), "HKEY_LOCAL_MACHINE") != keys.end()); - assertTrue (std::find(keys.begin(), keys.end(), "HKEY_USERS") != keys.end()); -#else + assertTrue (keys.size() == 6); assertTrue (std::find(keys.begin(), keys.end(), "HKEY_CLASSES_ROOT") != keys.end()); assertTrue (std::find(keys.begin(), keys.end(), "HKEY_CURRENT_CONFIG") != keys.end()); @@ -122,7 +116,6 @@ void WinConfigurationTest::testConfiguration() assertTrue (std::find(keys.begin(), keys.end(), "HKEY_LOCAL_MACHINE") != keys.end()); assertTrue (std::find(keys.begin(), keys.end(), "HKEY_PERFORMANCE_DATA") != keys.end()); assertTrue (std::find(keys.begin(), keys.end(), "HKEY_USERS") != keys.end()); -#endif pRootReg->keys("HKEY_CURRENT_USER.Software.Applied Informatics.Test", keys); assertTrue (keys.size() == 5); diff --git a/XML/testsuite/CMakeLists.txt b/XML/testsuite/CMakeLists.txt index aae415a07..a20ce39c9 100644 --- a/XML/testsuite/CMakeLists.txt +++ b/XML/testsuite/CMakeLists.txt @@ -10,10 +10,6 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF src/WinDriver.cpp ) -POCO_SOURCES_AUTO_PLAT(TEST_SRCS WINCE - src/WinCEDriver.cpp -) - add_executable(XML-testrunner ${TEST_SRCS}) if(ANDROID) add_test( diff --git a/XML/testsuite/src/WinCEDriver.cpp b/XML/testsuite/src/WinCEDriver.cpp deleted file mode 100644 index c50dedda4..000000000 --- a/XML/testsuite/src/WinCEDriver.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// -// WinCEDriver.cpp -// -// Console-based test driver for Windows CE. -// -// Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "CppUnit/TestRunner.h" -#include "XMLTestSuite.h" -#include - - -int wmain(int argc, wchar_t* argv[]) -{ - std::vector args; - for (int i = 0; i < argc; ++i) - { - char buffer[1024]; - std::wcstombs(buffer, argv[i], sizeof(buffer)); - args.push_back(std::string(buffer)); - } - CppUnit::TestRunner runner; - runner.addTest("XMLTestSuite", XMLTestSuite::suite()); - return runner.run(args) ? 0 : 1; -} diff --git a/Zip/samples/unzip/CMakeLists.txt b/Zip/samples/unzip/CMakeLists.txt index e46f06ccf..ca912559e 100644 --- a/Zip/samples/unzip/CMakeLists.txt +++ b/Zip/samples/unzip/CMakeLists.txt @@ -1,5 +1,3 @@ add_executable(sample-unzip src/unzip.cpp) -if(WINCE) - set_target_properties(sample-unzip PROPERTIES LINK_FLAGS "/ENTRY:wmainCRTStartup") -endif() + target_link_libraries(sample-unzip PUBLIC Poco::Zip Poco::Util Poco::XML) diff --git a/Zip/samples/zip/CMakeLists.txt b/Zip/samples/zip/CMakeLists.txt index 74de0707d..01cd5c721 100644 --- a/Zip/samples/zip/CMakeLists.txt +++ b/Zip/samples/zip/CMakeLists.txt @@ -4,7 +4,5 @@ set(LOCAL_SRCS "") aux_source_directory(src LOCAL_SRCS) add_executable(sample-zip src/zip.cpp) -if(WINCE) - set_target_properties(sample-zip PROPERTIES LINK_FLAGS "/ENTRY:wmainCRTStartup") -endif() + target_link_libraries(sample-zip PUBLIC Poco::Zip Poco::Util Poco::XML) diff --git a/Zip/testsuite/CMakeLists.txt b/Zip/testsuite/CMakeLists.txt index aac6056cd..7fc4b93db 100644 --- a/Zip/testsuite/CMakeLists.txt +++ b/Zip/testsuite/CMakeLists.txt @@ -10,10 +10,6 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF src/WinDriver.cpp ) -POCO_SOURCES_AUTO_PLAT(TEST_SRCS WINCE - src/WinCEDriver.cpp -) - add_executable(Zip-testrunner ${TEST_SRCS}) if(ANDROID) add_test( diff --git a/Zip/testsuite/src/WinCEDriver.cpp b/Zip/testsuite/src/WinCEDriver.cpp deleted file mode 100644 index 79d306206..000000000 --- a/Zip/testsuite/src/WinCEDriver.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// -// WinCEDriver.cpp -// -// Console-based test driver for Windows CE. -// -// Copyright (c) 2004-2010, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "CppUnit/TestRunner.h" -#include "ZipTestSuite.h" -#include - - -int wmain(int argc, wchar_t* argv[]) -{ - std::vector args; - for (int i = 0; i < argc; ++i) - { - char buffer[1024]; - std::wcstombs(buffer, argv[i], sizeof(buffer)); - args.push_back(std::string(buffer)); - } - CppUnit::TestRunner runner; - runner.addTest("ZipTestSuite", ZipTestSuite::suite()); - return runner.run(args) ? 0 : 1; -} diff --git a/buildwin.ps1 b/buildwin.ps1 index 0db295ab3..6025f3244 100644 --- a/buildwin.ps1 +++ b/buildwin.ps1 @@ -8,7 +8,7 @@ # [-action build | rebuild | clean] # [-linkmode shared | static_mt | static_md | all] # [-config release | debug | both] -# [-platform Win32 | x64 | ARM64 | WinCE | WEC2013] +# [-platform Win32 | x64 | ARM64 | WEC2013] # [-samples] # [-tests] # [-omit "Lib1X,LibY,LibZ,..."] @@ -42,7 +42,7 @@ Param [string] $config = 'release', [Parameter()] - [ValidateSet('Win32', 'x64', 'ARM64', 'WinCE', 'WEC2013')] + [ValidateSet('Win32', 'x64', 'ARM64', 'WEC2013')] [string] $platform = 'x64', [switch] $tests = $false, @@ -238,7 +238,7 @@ function Process-Input Write-Host ' [-action build | rebuild | clean]' Write-Host ' [-linkmode shared | static_mt | static_md | all]' Write-Host ' [-config release | debug | both]' - Write-Host ' [-platform Win32 | x64 | WinCE | WEC2013 | ARM64]' + Write-Host ' [-platform Win32 | x64 | WEC2013 | ARM64]' Write-Host ' [-samples]' Write-Host ' [-tests]' Write-Host ' [-omit "Lib1X,LibY,LibZ,..."]' diff --git a/doc/99200-WinCEPlatformNotes.page b/doc/99200-WinCEPlatformNotes.page index 34546f66b..69081ad54 100644 --- a/doc/99200-WinCEPlatformNotes.page +++ b/doc/99200-WinCEPlatformNotes.page @@ -3,130 +3,7 @@ AAAIntroduction !!!Introduction -Starting with release 1.4.0 the POCO C++ Libraries can be used on -Windows CE 6. Project files for Visual Studio 2008 are provided that -support static and shared debug and release builds. - -The port should work for Windows CE 5 as well, however, this has not been tested. - - -!!!Changing The Target In The Project Files - -The project files contain build configurations for the "Digi JumpStart (ARMV4I)" -target. To use another target, the Visual Studio project and solution files -must be changed accordingly. Note that the project files cannot be opened -by Visual Studio unless the target referenced in the project and solution files is available. -To change the project and solution files for your platform, replace -all occurrences of the string "Digi JumpStart (ARMV4I)" with the name -of your platform (e.g. "Windows Mobile 6 Professional SDK (ARMV4I)"). -This is best done with a text editor that supports global search/replace -across an entire directory tree (solution and project files are plain text/xml -files, so there's no risk breaking something). - - -!!!Restrictions - -!!Poco::Environment - -Windows CE does not support environment variables. -Therefore, Poco::Environment::get() and Poco::Environment::has() only support the -following hardcoded "pseudo" environment variables: - * TEMP - * TMP - * HOMEPATH - * COMPUTERNAME - * OS - * NUMBER_OF_PROCESSORS - * PROCESSOR_ARCHITECTURE - -Poco::Environment::set() always throws a Poco::NotImplementedException. - - -!!Date/Time Support - -Some date/time features are implemented with the help of [[http://wcelibcex.sourceforge.net/ WCELIBCEX]]. -The library is statically included in the Foundation library to simplify the build process. -However, it is also possible to use WCELIBCEX as a separate library if the Foundation project file is modified accordingly -(by removing or excluding from build the WCELIBCEX folder and modifying the header file search path accordingly). -The following functions from WCELIBCEX are used: - * wceex_time() - * wceex_localtime() - * wceex_mktime() - -It should also be possible to use wcecompat instead of WCELIBCEX, as this library provides -similar features. In this case, the calls to the wceex_* functions need to be replaced with -the wcecompat counterparts. The affected files are Random.cpp, LocalDateTime.cpp, -Timezone_WINCE.cpp and ThreadPool.cpp. - -To obtain the current date and time with millisecond resolution, -the hack described in -is used. This means there will be a one second delay when starting up -the application. - - -!!Poco::Path - -Poco::Path::listRoots() returns the root directory ("\"), as well as all mounted storage devices -(e.g., "\Hard Disk"), even if they are also present in the root directory. - -Poco::Path::current() and Poco::Path::home() always return the root directory. - - -!!Poco::RWLock - -In the reader/writer lock implementation for Windows CE, writers always take precedence over readers. - - -!!Poco::Process - -Launching a process with pipes for redirecting input/output is not supported. - - -!!Poco::Util::ServerApplication - -Poco::Util::ServerApplication::waitForTerminationRequest(): CTRL-C does not work to shut down the application as -it's not supported by the Windows CE console. The pkill utility supplied as part of the Util library -samples can be used to terminate a process from the command line. - - -!!Crypto and NetSSL - -Crypto and NetSSL_OpenSSL have not been tested yet. Project files are there, but they might need some adaptions depending on -how OpenSSL has been built for the Windows CE target. - - -!!Data - -Only the SQLite backend is currently supported. - -The SQLite engine in Data/SQLite is built without localtime support (SQLITE_OMIT_LOCALTIME) due to localtime_s() not being -available on Windows CE. - - -!!Raw Sockets in Net - -The test cases involving raw sockets will fail unless the testsuite is ran as a privileged (signed) application. -These are RawSocketTest::testEchoIPv4(), RawSocketTest::testSendToReceiveFromIPv4() and ICMPClientTest::testPing(). - - -!!!Build Notes - -Optimization settings should be set as follows for release builds -(<*Properties > Configuration Properties > C/C++ > Optimization*>): - * Optimization: Custom - * Inline Function Expansion: Default - * Enable Intrinsic Functions: Yes (/Oi) - * Floating-Point Consistency: Default Consistency - * Favor Size or Speed: Favor Fast Code (/Ot) - * Whole Program Optimization: No - -Other settings may or may not produce working programs. -Specifically, setting <*Optimization*> to <*Maximize Speed (/O2)*> will result in failures in the -test suite for Foundation Events due to a compiler optimizer bug. - -For shared/DLL builds, the /FORCE:MULTIPLE option is passed to the linker. This is -to avoid a problem with iostream classes and their methods (template instantiations), -which for some unknown reason (possibly bug) will be exported by the Foundation library -(and others) and thus cause multiply defined symbol errors. - -The reference system used for testing is a Digi ConnectCore 9P 9360 running Windows CE 6.0. +Starting with release 1.4.0 the POCO C++ Libraries cannot be used on Windows CE +platform anymore. The reason for this is that POCO has moved to support C++17. +Windows CE does not support C++17 anymore. Also as C++17 needs Visual Studio +2017 it also does not support Windows CE anymore. diff --git a/packaging/Windows/WiX/Poco.wxs b/packaging/Windows/WiX/Poco.wxs index 01f4b112e..1b7ca024a 100644 --- a/packaging/Windows/WiX/Poco.wxs +++ b/packaging/Windows/WiX/Poco.wxs @@ -1013,7 +1013,6 @@ - @@ -1036,7 +1035,6 @@ - @@ -1109,7 +1107,6 @@ - @@ -1126,7 +1123,6 @@ - @@ -1140,7 +1136,6 @@ - diff --git a/progen.ps1 b/progen.ps1 index da91900bd..94831359c 100644 --- a/progen.ps1 +++ b/progen.ps1 @@ -7,7 +7,7 @@ # [-vs 140 | 150 | 160| 170] # [-omit "Lib1X,LibY,LibZ,..."] # [-components "Lib1X,LibY,LibZ,..."] -# [-platform Win32 | x64 | ARM64 | WinCE | WEC2013] +# [-platform Win32 | x64 | ARM64 | WEC2013] # [-samples] # [-tests] # [-nobuild] @@ -26,7 +26,7 @@ Param [string] $components, [Parameter()] - [ValidateSet('Win32', 'x64', 'ARM64', 'WinCE', 'WEC2013')] + [ValidateSet('Win32', 'x64', 'ARM64', 'WEC2013')] [string] $platform = 'x64', [switch] $samples = $false, From cfc9ce380ee9970f2d90cf9061541e239d06d261 Mon Sep 17 00:00:00 2001 From: Andrew Auclair Date: Thu, 14 Dec 2023 10:41:28 -0500 Subject: [PATCH 247/395] Throw exceptions when node ID retrieval is unsuccessful and support Wireless Adapters on Windows (#4336) --- Foundation/src/Environment_UNIX.cpp | 9 ++--- Foundation/src/Environment_WIN32U.cpp | 48 +++++++++++++++++++-------- 2 files changed, 40 insertions(+), 17 deletions(-) diff --git a/Foundation/src/Environment_UNIX.cpp b/Foundation/src/Environment_UNIX.cpp index eb9042b9c..bb67887c0 100644 --- a/Foundation/src/Environment_UNIX.cpp +++ b/Foundation/src/Environment_UNIX.cpp @@ -352,15 +352,16 @@ namespace Poco { void EnvironmentImpl::nodeIdImpl(NodeId& id) { std::memset(&id, 0, sizeof(id)); + char name[MAXHOSTNAMELEN]; if (gethostname(name, sizeof(name))) - return; + throw SystemException("unable to get hostname"); struct hostent* pHost = gethostbyname(name); - if (!pHost) return; + if (!pHost) throw SystemException("unable to get host"); int s = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP); - if (s == -1) return; + if (s == -1) throw SystemException("unable to open socket"); struct arpreq ar; std::memset(&ar, 0, sizeof(ar)); @@ -369,7 +370,7 @@ void EnvironmentImpl::nodeIdImpl(NodeId& id) std::memcpy(&pAddr->sin_addr, *pHost->h_addr_list, sizeof(struct in_addr)); int rc = ioctl(s, SIOCGARP, &ar); close(s); - if (rc < 0) return; + if (rc < 0) throw SystemException("unable to get socket data"); std::memcpy(&id, ar.arp_ha.sa_data, sizeof(id)); } diff --git a/Foundation/src/Environment_WIN32U.cpp b/Foundation/src/Environment_WIN32U.cpp index 561e9de61..e561f0668 100644 --- a/Foundation/src/Environment_WIN32U.cpp +++ b/Foundation/src/Environment_WIN32U.cpp @@ -202,38 +202,60 @@ void EnvironmentImpl::nodeIdImpl(NodeId& id) { std::memset(&id, 0, sizeof(id)); - PIP_ADAPTER_INFO pAdapterInfo; - PIP_ADAPTER_INFO pAdapter = 0; + auto pAdapterInfo = std::make_unique(1); ULONG len = sizeof(IP_ADAPTER_INFO); - pAdapterInfo = reinterpret_cast(new char[len]); + // Make an initial call to GetAdaptersInfo to get // the necessary size into len - DWORD rc = GetAdaptersInfo(pAdapterInfo, &len); + const DWORD rc = GetAdaptersInfo(pAdapterInfo.get(), &len); + if (rc == ERROR_BUFFER_OVERFLOW) { - delete [] reinterpret_cast(pAdapterInfo); - pAdapterInfo = reinterpret_cast(new char[len]); + pAdapterInfo = std::make_unique(len / sizeof(IP_ADAPTER_INFO)); } else if (rc != ERROR_SUCCESS) { - delete[] reinterpret_cast(pAdapterInfo); throw SystemException("cannot get network adapter list"); } - if (GetAdaptersInfo(pAdapterInfo, &len) == NO_ERROR) + + if (GetAdaptersInfo(pAdapterInfo.get(), &len) == NO_ERROR) { - pAdapter = pAdapterInfo; - bool found = false; - while (pAdapter && !found) + IP_ADAPTER_INFO* pAdapter = pAdapterInfo.get(); + + while (pAdapter) { if (pAdapter->Type == MIB_IF_TYPE_ETHERNET && pAdapter->AddressLength == sizeof(id)) { - found = true; std::memcpy(&id, pAdapter->Address, pAdapter->AddressLength); + + // found an ethernet adapter, we can return now + return; + } + pAdapter = pAdapter->Next; + } + + // if an ethernet adapter was not found, search for a wifi adapter + pAdapter = pAdapterInfo.get(); + + while (pAdapter) + { + if (pAdapter->Type == IF_TYPE_IEEE80211 && pAdapter->AddressLength == sizeof(id)) + { + std::memcpy(&id, pAdapter->Address, pAdapter->AddressLength); + + // found a wifi adapter, we can return now + return; } pAdapter = pAdapter->Next; } } - delete [] reinterpret_cast(pAdapterInfo); + else + { + throw SystemException("cannot get network adapter list"); + } + + // ethernet and wifi adapters not found, fail the search + throw SystemException("no ethernet or wifi adapter found"); } From 214b54460e26e6bb6f0338dcd7347fca55ca8c6b Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Thu, 14 Dec 2023 11:27:20 +0100 Subject: [PATCH 248/395] mingw 11: fixes to compile common libraries --- Data/CMakeLists.txt | 3 +++ Foundation/CMakeLists.txt | 2 +- Foundation/src/File_WIN32U.cpp | 2 +- Foundation/src/Thread_WIN32.cpp | 4 +++- Net/CMakeLists.txt | 3 +++ Net/include/Poco/Net/SocketDefs.h | 4 +++- cmake/DefinePlatformSpecifc.cmake | 4 ++++ cmake/PocoMacros.cmake | 2 +- 8 files changed, 19 insertions(+), 5 deletions(-) diff --git a/Data/CMakeLists.txt b/Data/CMakeLists.txt index 5f02248aa..d795073c3 100644 --- a/Data/CMakeLists.txt +++ b/Data/CMakeLists.txt @@ -14,6 +14,9 @@ POCO_HEADERS_AUTO(SRCS ${HDRS_G}) if(MSVC AND NOT(MSVC_VERSION LESS 1400)) set_source_files_properties(src/StatementImpl.cpp PROPERTIES COMPILE_FLAGS "/bigobj") +elseif(MINGW) + set_source_files_properties(src/StatementImpl.cpp + PROPERTIES COMPILE_FLAGS "-Wa,-mbig-obj") endif() # Version Resource diff --git a/Foundation/CMakeLists.txt b/Foundation/CMakeLists.txt index 18fa814af..41ba99936 100644 --- a/Foundation/CMakeLists.txt +++ b/Foundation/CMakeLists.txt @@ -181,7 +181,7 @@ if(CMAKE_SYSTEM MATCHES "SunOS") target_link_libraries(Foundation PUBLIC pthread socket xnet nsl resolv rt ${CMAKE_DL_LIBS}) endif() -if(CMAKE_COMPILER_IS_MINGW) +if(MINGW) target_compile_definitions(Foundation PUBLIC WC_NO_BEST_FIT_CHARS=0x400 diff --git a/Foundation/src/File_WIN32U.cpp b/Foundation/src/File_WIN32U.cpp index e819ff501..ae9a80c18 100644 --- a/Foundation/src/File_WIN32U.cpp +++ b/Foundation/src/File_WIN32U.cpp @@ -308,7 +308,7 @@ void FileImpl::renameToImpl(const std::string& path, int options) std::wstring upath; convertPath(path, upath); if (options & OPT_FAIL_ON_OVERWRITE_IMPL) { - if (MoveFileExW(_upath.c_str(), upath.c_str(), NULL) == 0) + if (MoveFileExW(_upath.c_str(), upath.c_str(), 0) == 0) handleLastErrorImpl(_path); } else { if (MoveFileExW(_upath.c_str(), upath.c_str(), MOVEFILE_REPLACE_EXISTING) == 0) diff --git a/Foundation/src/Thread_WIN32.cpp b/Foundation/src/Thread_WIN32.cpp index 197ed0384..dad6246f4 100644 --- a/Foundation/src/Thread_WIN32.cpp +++ b/Foundation/src/Thread_WIN32.cpp @@ -45,6 +45,7 @@ namespace info.dwThreadID = dwThreadID; info.dwFlags = 0; +#if !defined(POCO_COMPILER_MINGW) __try { RaiseException(MS_VC_EXCEPTION, 0, sizeof(info)/sizeof(ULONG_PTR), (ULONG_PTR*)&info); @@ -52,7 +53,8 @@ namespace __except (EXCEPTION_CONTINUE_EXECUTION) { } - } +#endif + } } diff --git a/Net/CMakeLists.txt b/Net/CMakeLists.txt index eff4df8b8..229cdc991 100644 --- a/Net/CMakeLists.txt +++ b/Net/CMakeLists.txt @@ -30,6 +30,9 @@ target_link_libraries(Net PUBLIC Poco::Foundation) if(WIN32) target_link_libraries(Net PUBLIC "iphlpapi.lib") target_link_libraries(Net PUBLIC "ws2_32.lib") + if (MINGW) + target_link_libraries(Net PUBLIC "mswsock.lib") + endif() endif(WIN32) target_include_directories(Net diff --git a/Net/include/Poco/Net/SocketDefs.h b/Net/include/Poco/Net/SocketDefs.h index 3f7b182da..8806e80bd 100644 --- a/Net/include/Poco/Net/SocketDefs.h +++ b/Net/include/Poco/Net/SocketDefs.h @@ -26,7 +26,9 @@ #if defined(POCO_OS_FAMILY_WINDOWS) #include "Poco/UnWindows.h" - #define FD_SETSIZE 1024 // increase as needed + #ifndef FD_SETSIZE + #define FD_SETSIZE 1024 // increase as needed + #endif #include #include #include diff --git a/cmake/DefinePlatformSpecifc.cmake b/cmake/DefinePlatformSpecifc.cmake index 1b09993b0..06a80accf 100644 --- a/cmake/DefinePlatformSpecifc.cmake +++ b/cmake/DefinePlatformSpecifc.cmake @@ -49,6 +49,10 @@ else(MSVC) set(STATIC_POSTFIX "" CACHE STRING "Set static library postfix" FORCE) endif(MSVC) +if(MINGW) + add_link_options("-municode") +endif() + if (ENABLE_COMPILER_WARNINGS) message(STATUS "Enabling additional compiler warning flags.") # Additional compiler-specific warning flags diff --git a/cmake/PocoMacros.cmake b/cmake/PocoMacros.cmake index fc2891033..2ef58c5a4 100644 --- a/cmake/PocoMacros.cmake +++ b/cmake/PocoMacros.cmake @@ -11,7 +11,7 @@ # CMAKE_MC_COMPILER - where to find mc.exe if(WIN32) # cmake has CMAKE_RC_COMPILER, but no message compiler - if("${CMAKE_GENERATOR}" MATCHES "Visual Studio") + if("${CMAKE_GENERATOR}" MATCHES "Visual Studio" OR MINGW) # this path is only present for 2008+, but we currently require PATH to # be set up anyway get_filename_component(sdk_dir "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows;CurrentInstallFolder]" REALPATH) From a464a4eabff9f45a9b654d96d7064c6f8c670812 Mon Sep 17 00:00:00 2001 From: Alexander B Date: Fri, 15 Dec 2023 18:00:26 +0300 Subject: [PATCH 249/395] fic(ci): Properly include openssl 1.1 on macOS (#4345) * set opessl@1.1 path for macos build * fix command-line problem --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a427df523..8111d3741 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -198,7 +198,8 @@ jobs: - run: >- ./configure --everything --no-prefix --omit=PDF --odbc-include=/usr/local/opt/unixodbc/include --odbc-lib=/usr/local/opt/unixodbc/lib - --mysql-include=/usr/local/opt/mysql-client/include --mysql-lib=/usr/local/opt/mysql-client/lib && + --mysql-include=/usr/local/opt/mysql-client/include --mysql-lib=/usr/local/opt/mysql-client/lib + --include-path="/usr/local/opt/openssl@1.1/include" --library-path="/usr/local/opt/openssl@1.1/lib" && make all -s -j4 - uses: ./.github/actions/retry-action with: From 111fe90dd91ad6dcf2a487b69706e90132d97c44 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Fri, 15 Dec 2023 18:30:55 +0100 Subject: [PATCH 250/395] enh(NumberFormatter): Introduce backward compatible options for formatHex functions (#4333) * enh(NumberFormatter): Introduce backward compatible options for formatHex functions. * enh(NumberFormatter): Corrections and improvements suggested in code review. * fix(ci): disable testEncryptDecryptGCM on macOS which often fails. * enh(NumberFormatter): Improved naming. --- .github/workflows/ci.yml | 9 +- Crypto/testsuite/src/CryptoTest.cpp | 6 + Foundation/include/Poco/NumberFormatter.h | 412 ++++++++++++------ Foundation/include/Poco/NumericString.h | 4 +- Foundation/src/NumberFormatter.cpp | 168 +++++-- .../testsuite/src/NumberFormatterTest.cpp | 131 ++++-- 6 files changed, 532 insertions(+), 198 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8111d3741..368495d02 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -215,11 +215,13 @@ jobs: CppUnit::TestCaller.testAccessExpireN, CppUnit::TestCaller.testExpireN, CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testOldBSD" + CppUnit::TestCaller.testOldBSD, + CppUnit::TestCaller.testPollClosedServer, + CppUnit::TestCaller.testEncryptDecryptGCM" EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" ./ci/runtests.sh - macos-clang-cmake: + macos-clang-cmake-openssl: runs-on: macos-12 steps: - uses: actions/checkout@v3 @@ -240,7 +242,8 @@ jobs: CppUnit::TestCaller.testAccessExpireN, CppUnit::TestCaller.testExpireN, CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testPollClosedServer" + CppUnit::TestCaller.testPollClosedServer, + CppUnit::TestCaller.testEncryptDecryptGCM" PWD=`pwd` ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" diff --git a/Crypto/testsuite/src/CryptoTest.cpp b/Crypto/testsuite/src/CryptoTest.cpp index d60f1988e..6aa9a1f8d 100644 --- a/Crypto/testsuite/src/CryptoTest.cpp +++ b/Crypto/testsuite/src/CryptoTest.cpp @@ -212,6 +212,12 @@ void CryptoTest::testEncryptDecryptDESECB() void CryptoTest::testEncryptDecryptGCM() { + // + // The test sometimes fails when it is running for longer time + // This conversation perhaps contains a hint: + // https://github.com/openssl/openssl/issues/21119 + // + CipherKey key("aes-256-gcm"); CipherKey::ByteVec iv(20, 213); diff --git a/Foundation/include/Poco/NumberFormatter.h b/Foundation/include/Poco/NumberFormatter.h index 342f6e7ab..bb9ff309e 100644 --- a/Foundation/include/Poco/NumberFormatter.h +++ b/Foundation/include/Poco/NumberFormatter.h @@ -43,6 +43,17 @@ public: FMT_ON_OFF }; + enum class Options + /// Options to control the format of the generated string. + { + DEFAULT = 0, + /// formatHex defaults: No 0x prefix, uppercase hexadecimal values + PREFIX = 1 << 0, + /// formatHex: Prepend prefix 0x + LOWERCASE = 1 << 1 + /// formatHex: Use lowercase letters for hexadecimal values + }; + static const unsigned NF_MAX_INT_STRING_LEN = 32; // increase for 64-bit binary formatting support static const unsigned NF_MAX_FLT_STRING_LEN = POCO_MAX_FLT_STRING_LEN; @@ -59,18 +70,18 @@ public: /// right justified and zero-padded in a field /// having at least the specified width. - static std::string formatHex(int value, bool prefix = false); + static std::string formatHex(int value, Options options = Options::DEFAULT); /// Formats an int value in hexadecimal notation. - /// If prefix is true, "0x" prefix is prepended to the - /// resulting string. + /// Options (see NumberFormatter::Options) define the format of the + /// generated string. /// The value is treated as unsigned. - static std::string formatHex(int value, int width, bool prefix = false); - /// Formats a int value in hexadecimal notation, + static std::string formatHex(int value, int width, Options options = Options::DEFAULT); + /// Formats an int value in hexadecimal notation, /// right justified and zero-padded in /// a field having at least the specified width. - /// If prefix is true, "0x" prefix is prepended to the - /// resulting string. + /// Options (see NumberFormatter::Options) define the format of the + /// generated string. /// The value is treated as unsigned. static std::string format(unsigned value); @@ -86,17 +97,17 @@ public: /// right justified and zero-padded in a field having at /// least the specified width. - static std::string formatHex(unsigned value, bool prefix = false); + static std::string formatHex(unsigned value, Options options = Options::DEFAULT); /// Formats an unsigned int value in hexadecimal notation. - /// If prefix is true, "0x" prefix is prepended to the - /// resulting string. + /// Options (see NumberFormatter::Options) define the format of the + /// generated string. - static std::string formatHex(unsigned value, int width, bool prefix = false); - /// Formats a int value in hexadecimal notation, + static std::string formatHex(unsigned value, int width, Options options = Options::DEFAULT); + /// Formats an unsigned value in hexadecimal notation, /// right justified and zero-padded in /// a field having at least the specified width. - /// If prefix is true, "0x" prefix is prepended to the - /// resulting string. + /// Options (see NumberFormatter::Options) define the format of the + /// generated string. static std::string format(long value); /// Formats a long value in decimal notation. @@ -111,19 +122,17 @@ public: /// right justified and zero-padded in a field /// having at least the specified width. - static std::string formatHex(long value, bool prefix = false); - /// Formats an unsigned long value in hexadecimal notation. - /// If prefix is true, "0x" prefix is prepended to the - /// resulting string. - /// The value is treated as unsigned. + static std::string formatHex(long value, Options options = Options::DEFAULT); + /// Formats a long value in hexadecimal notation. + /// Options (see NumberFormatter::Options) define the format of the + /// generated string. - static std::string formatHex(long value, int width, bool prefix = false); - /// Formats an unsigned long value in hexadecimal notation, - /// right justified and zero-padded in a field having at least the - /// specified width. - /// If prefix is true, "0x" prefix is prepended to the - /// resulting string. - /// The value is treated as unsigned. + static std::string formatHex(long value, int width, Options options = Options::DEFAULT); + /// Formats a long value in hexadecimal notation, + /// right justified and zero-padded in + /// a field having at least the specified width. + /// Options (see NumberFormatter::Options) define the format of the + /// generated string. static std::string format(unsigned long value); /// Formats an unsigned long value in decimal notation. @@ -138,17 +147,17 @@ public: /// right justified and zero-padded /// in a field having at least the specified width. - static std::string formatHex(unsigned long value, bool prefix = false); + static std::string formatHex(unsigned long value, Options options = Options::DEFAULT); /// Formats an unsigned long value in hexadecimal notation. - /// If prefix is true, "0x" prefix is prepended to the - /// resulting string. + /// Options (see NumberFormatter::Options) define the format of the + /// generated string. - static std::string formatHex(unsigned long value, int width, bool prefix = false); + static std::string formatHex(unsigned long value, int width, Options options = Options::DEFAULT); /// Formats an unsigned long value in hexadecimal notation, - /// right justified and zero-padded in a field having at least the - /// specified width. - /// If prefix is true, "0x" prefix is prepended to the - /// resulting string. + /// right justified and zero-padded in + /// a field having at least the specified width. + /// Options (see NumberFormatter::Options) define the format of the + /// generated string. #ifdef POCO_HAVE_INT64 #ifdef POCO_INT64_IS_LONG @@ -165,18 +174,18 @@ public: /// right justified and zero-padded in a field having at least /// the specified width. - static std::string formatHex(long long value, bool prefix = false); + static std::string formatHex(long long value, Options options = Options::DEFAULT); /// Formats a 64-bit integer value in hexadecimal notation. - /// If prefix is true, "0x" prefix is prepended to the - /// resulting string. - /// The value is treated as unsigned. + /// Options (see NumberFormatter::Options) define the format of the + /// generated string. - static std::string formatHex(long long value, int width, bool prefix = false); + static std::string formatHex(long long value, int width, Options options = Options::DEFAULT); /// Formats a 64-bit integer value in hexadecimal notation, /// right justified and zero-padded in a field having at least /// the specified width. /// The value is treated as unsigned. - /// If prefix is true, "0x" prefix is prepended to the resulting string. + /// Options (see NumberFormatter::Options) define the format of the + /// generated string. static std::string format(unsigned long long value); /// Formats an unsigned 64-bit integer value in decimal notation. @@ -190,16 +199,18 @@ public: /// right justified and zero-padded in a field having at least the /// specified width. - static std::string formatHex(unsigned long long value, bool prefix = false); - /// Formats a 64-bit integer value in hexadecimal notation. - /// If prefix is true, "0x" prefix is prepended to the - /// resulting string. + static std::string formatHex(unsigned long long value, Options options = Options::DEFAULT); + /// Formats an unsigned 64-bit value in hexadecimal notation. + /// Options (see NumberFormatter::Options) define the format of the + /// generated string. - static std::string formatHex(unsigned long long value, int width, bool prefix = false); - /// Formats a 64-bit integer value in hexadecimal notation, + static std::string formatHex(unsigned long long value, int width, Options options = Options::DEFAULT); + /// Formats an unsigned 64-bit value in hexadecimal notation, /// right justified and zero-padded in a field having at least - /// the specified width. If prefix is true, "0x" prefix is - /// prepended to the resulting string. + /// the specified width. + /// The value is treated as unsigned. + /// Options (see NumberFormatter::Options) define the format of the + /// generated string. #else // ifndef POCO_INT64_IS_LONG @@ -215,18 +226,18 @@ public: /// right justified and zero-padded in a field having at least /// the specified width. - static std::string formatHex(Int64 value, bool prefix = false); + static std::string formatHex(Int64 value, Options options = Options::DEFAULT); /// Formats a 64-bit integer value in hexadecimal notation. - /// If prefix is true, "0x" prefix is prepended to the - /// resulting string. - /// The value is treated as unsigned. + /// Options (see NumberFormatter::Options) define the format of the + /// generated string. - static std::string formatHex(Int64 value, int width, bool prefix = false); + static std::string formatHex(Int64 value, int width, Options options = Options::DEFAULT); /// Formats a 64-bit integer value in hexadecimal notation, /// right justified and zero-padded in a field having at least /// the specified width. /// The value is treated as unsigned. - /// If prefix is true, "0x" prefix is prepended to the resulting string. + /// Options (see NumberFormatter::Options) define the format of the + /// generated string. static std::string format(UInt64 value); /// Formats an unsigned 64-bit integer value in decimal notation. @@ -240,16 +251,18 @@ public: /// right justified and zero-padded in a field having at least the /// specified width. - static std::string formatHex(UInt64 value, bool prefix = false); - /// Formats a 64-bit integer value in hexadecimal notation. - /// If prefix is true, "0x" prefix is prepended to the - /// resulting string. + static std::string formatHex(UInt64 value, Options options = Options::DEFAULT); + /// Formats an unsigned 64-bit integer in hexadecimal notation. + /// Options (see NumberFormatter::Options) define the format of the + /// generated string. - static std::string formatHex(UInt64 value, int width, bool prefix = false); - /// Formats a 64-bit integer value in hexadecimal notation, + static std::string formatHex(UInt64 value, int width, Options options = Options::DEFAULT); + /// Formats an unsigned 64-bit integer in hexadecimal notation, /// right justified and zero-padded in a field having at least - /// the specified width. If prefix is true, "0x" prefix is - /// prepended to the resulting string. + /// the specified width. + /// The value is treated as unsigned. + /// Options (see NumberFormatter::Options) define the format of the + /// generated string. #endif // ifdef POCO_INT64_IS_LONG #endif // ifdef POCO_HAVE_INT64 @@ -325,10 +338,10 @@ public: /// right justified and zero-padded in a field having at /// least the specified width. - static void appendHex(std::string& str, unsigned value); + static void appendHex(std::string& str, unsigned value, bool lowercase = false); /// Formats an unsigned int value in hexadecimal notation. - static void appendHex(std::string& str, unsigned value, int width); + static void appendHex(std::string& str, unsigned value, int width, bool lowercase = false); /// Formats a int value in hexadecimal notation, /// right justified and zero-padded in /// a field having at least the specified width. @@ -346,11 +359,11 @@ public: /// right justified and zero-padded in a field /// having at least the specified width. - static void appendHex(std::string& str, long value); + static void appendHex(std::string& str, long value, bool lowercase = false); /// Formats an unsigned long value in hexadecimal notation. /// The value is treated as unsigned. - static void appendHex(std::string& str, long value, int width); + static void appendHex(std::string& str, long value, int width, bool lowercase = false); /// Formats an unsigned long value in hexadecimal notation, /// right justified and zero-padded in a field having at least the /// specified width. @@ -369,10 +382,10 @@ public: /// right justified and zero-padded /// in a field having at least the specified width. - static void appendHex(std::string& str, unsigned long value); + static void appendHex(std::string& str, unsigned long value, bool lowercase = false); /// Formats an unsigned long value in hexadecimal notation. - static void appendHex(std::string& str, unsigned long value, int width); + static void appendHex(std::string& str, unsigned long value, int width, bool lowercase = false); /// Formats an unsigned long value in hexadecimal notation, /// right justified and zero-padded in a field having at least the /// specified width. @@ -392,11 +405,11 @@ public: /// right justified and zero-padded in a field having at least /// the specified width. - static void appendHex(std::string& str, long long value); + static void appendHex(std::string& str, long long value, bool lowercase = false); /// Formats a 64-bit integer value in hexadecimal notation. /// The value is treated as unsigned. - static void appendHex(std::string& str, long long value, int width); + static void appendHex(std::string& str, long long value, int width, bool lowercase = false); /// Formats a 64-bit integer value in hexadecimal notation, /// right justified and zero-padded in a field having at least /// the specified width. @@ -414,10 +427,10 @@ public: /// right justified and zero-padded in a field having at least the /// specified width. - static void appendHex(std::string& str, unsigned long long value); + static void appendHex(std::string& str, unsigned long long value, bool lowercase = false); /// Formats a 64-bit integer value in hexadecimal notation. - static void appendHex(std::string& str, unsigned long long value, int width); + static void appendHex(std::string& str, unsigned long long value, int width, bool lowercase = false); /// Formats a 64-bit integer value in hexadecimal notation, /// right justified and zero-padded in a field having at least /// the specified width. @@ -436,11 +449,11 @@ public: /// right justified and zero-padded in a field having at least /// the specified width. - static void appendHex(std::string& str, Int64 value); + static void appendHex(std::string& str, Int64 value, bool lowercase = false); /// Formats a 64-bit integer value in hexadecimal notation. /// The value is treated as unsigned. - static void appendHex(std::string& str, Int64 value, int width); + static void appendHex(std::string& str, Int64 value, int width, bool lowercase = false); /// Formats a 64-bit integer value in hexadecimal notation, /// right justified and zero-padded in a field having at least /// the specified width. @@ -458,10 +471,10 @@ public: /// right justified and zero-padded in a field having at least the /// specified width. - static void appendHex(std::string& str, UInt64 value); + static void appendHex(std::string& str, UInt64 value, bool lowercase = false); /// Formats a 64-bit integer value in hexadecimal notation. - static void appendHex(std::string& str, UInt64 value, int width); + static void appendHex(std::string& str, UInt64 value, int width, bool lowercase = false); /// Formats a 64-bit integer value in hexadecimal notation, /// right justified and zero-padded in a field having at least /// the specified width. @@ -500,7 +513,137 @@ public: /// sixteen (64-bit architectures) characters wide /// field in hexadecimal notation. +// +// Deprecated functions +// + + [[deprecated("use formatHex with options instead")]] + static std::string formatHex(int value, bool prefix); + /// Formats an int value in hexadecimal notation. + /// If prefix is true, "0x" prefix is prepended to the + /// resulting string. + /// The value is treated as unsigned. + + [[deprecated("use formatHex with options instead")]] + static std::string formatHex(int value, int width, bool prefix); + /// Formats an int value in hexadecimal notation, + /// right justified and zero-padded in + /// a field having at least the specified width. + /// If prefix is true, "0x" prefix is prepended to the + /// resulting string. + /// The value is treated as unsigned. + + [[deprecated("use formatHex with options instead")]] + static std::string formatHex(unsigned value, bool prefix); + /// Formats an unsigned int value in hexadecimal notation. + /// If prefix is true, "0x" prefix is prepended to the + /// resulting string. + + [[deprecated("use formatHex with options instead")]] + static std::string formatHex(unsigned value, int width, bool prefix); + /// Formats an unsigned value in hexadecimal notation, + /// right justified and zero-padded in + /// a field having at least the specified width. + /// If prefix is true, "0x" prefix is prepended to the + /// resulting string. + + [[deprecated("use formatHex with options instead")]] + static std::string formatHex(long value, bool prefix); + /// Formats a long value in hexadecimal notation. + /// If prefix is true, "0x" prefix is prepended to the + /// resulting string. + /// The value is treated as unsigned. + + [[deprecated("use formatHex with options instead")]] + static std::string formatHex(long value, int width, bool prefix); + /// Formats a long value in hexadecimal notation, + /// right justified and zero-padded in a field having at least the + /// specified width. + /// If prefix is true, "0x" prefix is prepended to the + /// resulting string. + /// The value is treated as unsigned. + + [[deprecated("use formatHex with options instead")]] + static std::string formatHex(unsigned long value, bool prefix); + /// Formats an unsigned long value in hexadecimal notation. + /// If prefix is true, "0x" prefix is prepended to the + /// resulting string. + + [[deprecated("use formatHex with options instead")]] + static std::string formatHex(unsigned long value, int width, bool prefix); + /// Formats an unsigned long value in hexadecimal notation, + /// right justified and zero-padded in a field having at least the + /// specified width. + /// If prefix is true, "0x" prefix is prepended to the + /// resulting string. + +#ifdef POCO_HAVE_INT64 +#ifdef POCO_INT64_IS_LONG + + [[deprecated("use formatHex with options instead")]] + static std::string formatHex(long long value, bool prefix); + /// Formats a 64-bit integer value in hexadecimal notation. + /// If prefix is true, "0x" prefix is prepended to the + /// resulting string. + /// The value is treated as unsigned. + + [[deprecated("use formatHex with options instead")]] + static std::string formatHex(long long value, int width, bool prefix); + /// Formats a 64-bit integer value in hexadecimal notation, + /// right justified and zero-padded in a field having at least + /// the specified width. + /// The value is treated as unsigned. + /// If prefix is true, "0x" prefix is prepended to the resulting string. + + [[deprecated("use formatHex with options instead")]] + static std::string formatHex(unsigned long long value, bool prefix); + /// Formats an unsigned 64-bit integer value in hexadecimal notation. + /// If prefix is true, "0x" prefix is prepended to the + /// resulting string. + + [[deprecated("use formatHex with options instead")]] + static std::string formatHex(unsigned long long value, int width, bool prefix); + /// Formats an unsigned 64-bit integer value in hexadecimal notation, + /// right justified and zero-padded in a field having at least + /// the specified width. If prefix is true, "0x" prefix is + /// prepended to the resulting string. + +#else // ifndef POCO_INT64_IS_LONG + + [[deprecated("use formatHex with options instead")]] + static std::string formatHex(Int64 value, bool prefix); + /// Formats a 64-bit integer value in hexadecimal notation. + /// If prefix is true, "0x" prefix is prepended to the + /// resulting string. + /// The value is treated as unsigned. + + [[deprecated("use formatHex with options instead")]] + static std::string formatHex(Int64 value, int width, bool prefix); + /// Formats a 64-bit integer value in hexadecimal notation, + /// right justified and zero-padded in a field having at least + /// the specified width. + /// The value is treated as unsigned. + /// If prefix is true, "0x" prefix is prepended to the resulting string. + + [[deprecated("use formatHex with options instead")]] + static std::string formatHex(UInt64 value, bool prefix); + /// Formats an unsigned 64-bit integer value in hexadecimal notation. + /// If prefix is true, "0x" prefix is prepended to the + /// resulting string. + + [[deprecated("use formatHex with options instead")]] + static std::string formatHex(UInt64 value, int width, bool prefix); + /// Formats an unsigned 64-bit integer value in hexadecimal notation, + /// right justified and zero-padded in a field having at least + /// the specified width. If prefix is true, "0x" prefix is + /// prepended to the resulting string. + +#endif // ifdef POCO_INT64_IS_LONG +#endif // ifdef POCO_HAVE_INT64 + private: + + static bool isEnabled(NumberFormatter::Options options, NumberFormatter::Options opt); }; @@ -508,6 +651,42 @@ private: // inlines // + +inline NumberFormatter::Options operator | (NumberFormatter::Options lhs, NumberFormatter::Options rhs) +{ + using T = std::underlying_type_t; + return static_cast(static_cast(lhs) | static_cast(rhs)); +} + + +inline NumberFormatter::Options& operator |= (NumberFormatter::Options& lhs, NumberFormatter::Options rhs) +{ + lhs = lhs | rhs; + return lhs; +} + + +inline NumberFormatter::Options operator & (NumberFormatter::Options lhs, NumberFormatter::Options rhs) +{ + using T = std::underlying_type_t; + return static_cast(static_cast(lhs) & static_cast(rhs)); +} + + +inline NumberFormatter::Options& operator &= (NumberFormatter::Options& lhs, NumberFormatter::Options rhs) +{ + lhs = lhs & rhs; + return lhs; +} + + +inline bool NumberFormatter::isEnabled(Options options, Options opt) +{ + using T = std::underlying_type_t; + return static_cast(options & opt) != 0; +} + + inline std::string NumberFormatter::format(int value) { std::string result; @@ -532,19 +711,15 @@ inline std::string NumberFormatter::format0(int value, int width) } -inline std::string NumberFormatter::formatHex(int value, bool prefix) +inline std::string NumberFormatter::formatHex(int value, Options options) { - std::string result; - intToStr(static_cast(value), 0x10, result, prefix); - return result; + return formatHex(static_cast(value), options); } -inline std::string NumberFormatter::formatHex(int value, int width, bool prefix) +inline std::string NumberFormatter::formatHex(int value, int width, Options options) { - std::string result; - intToStr(static_cast(value), 0x10, result, prefix, width, '0'); - return result; + return formatHex(static_cast(value), width, options); } @@ -572,18 +747,18 @@ inline std::string NumberFormatter::format0(unsigned int value, int width) } -inline std::string NumberFormatter::formatHex(unsigned value, bool prefix) +inline std::string NumberFormatter::formatHex(unsigned value, Options options) { std::string result; - intToStr(value, 0x10, result, prefix); + intToStr(value, 0x10, result, isEnabled(options, Options::PREFIX),-1, ' ', 0, isEnabled(options, Options::LOWERCASE)); return result; } -inline std::string NumberFormatter::formatHex(unsigned value, int width, bool prefix) +inline std::string NumberFormatter::formatHex(unsigned value, int width, Options options) { std::string result; - intToStr(value, 0x10, result, prefix, width, '0'); + intToStr(value, 0x10, result, isEnabled(options, Options::PREFIX), width, '0', 0, isEnabled(options, Options::LOWERCASE)); return result; } @@ -612,19 +787,15 @@ inline std::string NumberFormatter::format0(long value, int width) } -inline std::string NumberFormatter::formatHex(long value, bool prefix) +inline std::string NumberFormatter::formatHex(long value, Options options) { - std::string result; - intToStr(static_cast(value), 0x10, result, prefix); - return result; + return formatHex(static_cast(value), options); } -inline std::string NumberFormatter::formatHex(long value, int width, bool prefix) +inline std::string NumberFormatter::formatHex(long value, int width, Options options) { - std::string result; - intToStr(static_cast(value), 0x10, result, prefix, width, '0'); - return result; + return formatHex(static_cast(value), width, options); } @@ -652,22 +823,21 @@ inline std::string NumberFormatter::format0(unsigned long value, int width) } -inline std::string NumberFormatter::formatHex(unsigned long value, bool prefix) +inline std::string NumberFormatter::formatHex(unsigned long value, Options options) { std::string result; - intToStr(value, 0x10, result, prefix); + intToStr(value, 0x10, result, isEnabled(options, Options::PREFIX), -1, ' ', 0, isEnabled(options, Options::LOWERCASE)); return result; } -inline std::string NumberFormatter::formatHex(unsigned long value, int width, bool prefix) +inline std::string NumberFormatter::formatHex(unsigned long value, int width, Options options) { std::string result; - intToStr(value, 0x10, result, prefix, width, '0'); + intToStr(value, 0x10, result, isEnabled(options, Options::PREFIX), width, '0', 0, isEnabled(options, Options::LOWERCASE)); return result; } - #ifdef POCO_HAVE_INT64 #ifdef POCO_INT64_IS_LONG @@ -696,19 +866,15 @@ inline std::string NumberFormatter::format0(long long value, int width) } -inline std::string NumberFormatter::formatHex(long long value, bool prefix) +inline std::string NumberFormatter::formatHex(long long value, Options options) { - std::string result; - intToStr(static_cast(value), 0x10, result, prefix); - return result; + return formatHex(static_cast(value), options); } -inline std::string NumberFormatter::formatHex(long long value, int width, bool prefix) +inline std::string NumberFormatter::formatHex(long long value, int width, Options options) { - std::string result; - intToStr(static_cast(value), 0x10, result, prefix, width, '0'); - return result; + return formatHex(static_cast(value), width, options); } @@ -736,18 +902,18 @@ inline std::string NumberFormatter::format0(unsigned long long value, int width) } -inline std::string NumberFormatter::formatHex(unsigned long long value, bool prefix) +inline std::string NumberFormatter::formatHex(unsigned long long value, Options options) { std::string result; - intToStr(value, 0x10, result, prefix); + intToStr(value, 0x10, result, isEnabled(options, Options::PREFIX), -1, ' ', 0, isEnabled(options, Options::LOWERCASE)); return result; } -inline std::string NumberFormatter::formatHex(unsigned long long value, int width, bool prefix) +inline std::string NumberFormatter::formatHex(unsigned long long value, int width, Options options) { std::string result; - intToStr(value, 0x10, result, prefix, width, '0'); + intToStr(value, 0x10, result, isEnabled(options, Options::PREFIX), width, '0', 0, isEnabled(options, Options::LOWERCASE)); return result; } @@ -779,19 +945,15 @@ inline std::string NumberFormatter::format0(Int64 value, int width) } -inline std::string NumberFormatter::formatHex(Int64 value, bool prefix) +inline std::string NumberFormatter::formatHex(Int64 value, Options options) { - std::string result; - intToStr(static_cast(value), 0x10, result, prefix); - return result; + return formatHex(static_cast(value), options); } -inline std::string NumberFormatter::formatHex(Int64 value, int width, bool prefix) +inline std::string NumberFormatter::formatHex(long long value, int width, Options options) { - std::string result; - intToStr(static_cast(value), 0x10, result, prefix, width, '0'); - return result; + return formatHex(static_cast(value), width, options); } @@ -819,18 +981,18 @@ inline std::string NumberFormatter::format0(UInt64 value, int width) } -inline std::string NumberFormatter::formatHex(UInt64 value, bool prefix) +inline std::string NumberFormatter::formatHex(UInt64 value, Options options) { std::string result; - intToStr(value, 0x10, result, prefix); + intToStr(value, 0x10, result, isEnabled(options, Options::PREFIX), -1, ' ', 0, isEnabled(options, Options::LOWERCASE)); return result; } -inline std::string NumberFormatter::formatHex(UInt64 value, int width, bool prefix) +inline std::string NumberFormatter::formatHex(UInt64 value, int width, Options options) { std::string result; - intToStr(value, 0x10, result, prefix, width, '0'); + intToStr(value, 0x10, result, isEnabled(options, Options::PREFIX), width, '0', 0, isEnabled(options, Options::LOWERCASE)); return result; } diff --git a/Foundation/include/Poco/NumericString.h b/Foundation/include/Poco/NumericString.h index aefa17b9c..ac571301e 100644 --- a/Foundation/include/Poco/NumericString.h +++ b/Foundation/include/Poco/NumericString.h @@ -46,8 +46,8 @@ typedef Poco::Int64 intmax_t; #pragma warning(disable : 4146) #endif // POCO_COMPILER_MSVC -// binary numbers are supported, thus 64 (bits) + 1 (string terminating zero) -#define POCO_MAX_INT_STRING_LEN 65 +// binary numbers are supported, thus 64 (bits) + 1 (string terminating zero) + 2 (hex prefix) +#define POCO_MAX_INT_STRING_LEN (67) // value from strtod.cc (double_conversion::kMaxSignificantDecimalDigits) #define POCO_MAX_FLT_STRING_LEN 780 diff --git a/Foundation/src/NumberFormatter.cpp b/Foundation/src/NumberFormatter.cpp index e0821a191..1b8eb0b15 100644 --- a/Foundation/src/NumberFormatter.cpp +++ b/Foundation/src/NumberFormatter.cpp @@ -128,20 +128,20 @@ void NumberFormatter::append0(std::string& str, unsigned int value, int width) } -void NumberFormatter::appendHex(std::string& str, unsigned value) +void NumberFormatter::appendHex(std::string& str, unsigned value, bool lowercase) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - intToStr(value, 0x10, result, sz); + intToStr(value, 0x10, result, sz, false, -1, ' ', 0, lowercase); str.append(result, sz); } -void NumberFormatter::appendHex(std::string& str, unsigned value, int width) +void NumberFormatter::appendHex(std::string& str, unsigned value, int width, bool lowercase) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - intToStr(value, 0x10, result, sz, false, width, '0'); + intToStr(value, 0x10, result, sz, false, width, '0', 0, lowercase); str.append(result, sz); } @@ -173,20 +173,20 @@ void NumberFormatter::append0(std::string& str, long value, int width) } -void NumberFormatter::appendHex(std::string& str, long value) +void NumberFormatter::appendHex(std::string& str, long value, bool lowercase) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - intToStr(static_cast(value), 0x10, result, sz); + intToStr(static_cast(value), 0x10, result, sz, false, -1, ' ', 0, lowercase); str.append(result, sz); } -void NumberFormatter::appendHex(std::string& str, long value, int width) +void NumberFormatter::appendHex(std::string& str, long value, int width, bool lowercase) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - intToStr(static_cast(value), 0x10, result, sz, false, width, '0'); + intToStr(static_cast(value), 0x10, result, sz, false, width, '0', 0, lowercase); str.append(result, sz); } @@ -218,20 +218,20 @@ void NumberFormatter::append0(std::string& str, unsigned long value, int width) } -void NumberFormatter::appendHex(std::string& str, unsigned long value) +void NumberFormatter::appendHex(std::string& str, unsigned long value, bool lowercase) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - intToStr(value, 0x10, result, sz); + intToStr(value, 0x10, result, sz, false, -1, ' ', 0, lowercase); str.append(result, sz); } -void NumberFormatter::appendHex(std::string& str, unsigned long value, int width) +void NumberFormatter::appendHex(std::string& str, unsigned long value, int width, bool lowercase) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - intToStr(value, 0x10, result, sz, false, width, '0'); + intToStr(value, 0x10, result, sz, false, width, '0', 0, lowercase); str.append(result, sz); } @@ -267,20 +267,20 @@ void NumberFormatter::append0(std::string& str, long long value, int width) } -void NumberFormatter::appendHex(std::string& str, long long value) +void NumberFormatter::appendHex(std::string& str, long long value, bool lowercase) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - intToStr(static_cast(value), 0x10, result, sz); + intToStr(static_cast(value), 0x10, result, sz, false, -1, ' ', 0, lowercase); str.append(result, sz); } -void NumberFormatter::appendHex(std::string& str, long long value, int width) +void NumberFormatter::appendHex(std::string& str, long long value, int width, bool lowercase) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - intToStr(static_cast(value), 0x10, result, sz, false, width, '0'); + intToStr(static_cast(value), 0x10, result, sz, false, width, '0', 0, lowercase); str.append(result, sz); } @@ -312,20 +312,20 @@ void NumberFormatter::append0(std::string& str, unsigned long long value, int wi } -void NumberFormatter::appendHex(std::string& str, unsigned long long value) +void NumberFormatter::appendHex(std::string& str, unsigned long long value, bool lowercase) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - intToStr(value, 0x10, result, sz); + intToStr(value, 0x10, result, sz, false, -1, ' ', 0, lowercase); str.append(result, sz); } -void NumberFormatter::appendHex(std::string& str, unsigned long long value, int width) +void NumberFormatter::appendHex(std::string& str, unsigned long long value, int width, bool lowercase) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - intToStr(value, 0x10, result, sz, false, width, '0'); + intToStr(value, 0x10, result, sz, false, width, '0', 0, lowercase); str.append(result, sz); } @@ -360,20 +360,20 @@ void NumberFormatter::append0(std::string& str, Int64 value, int width) } -void NumberFormatter::appendHex(std::string& str, Int64 value) +void NumberFormatter::appendHex(std::string& str, Int64 value, bool lowercase) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - intToStr(static_cast(value), 0x10, result, sz); + intToStr(static_cast(value), 0x10, result, sz, false, -1, ' ', 0, lowercase); str.append(result, sz); } -void NumberFormatter::appendHex(std::string& str, Int64 value, int width) +void NumberFormatter::appendHex(std::string& str, Int64 value, int width, bool lowercase) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - intToStr(static_cast(value), 0x10, result, sz, false, width, '0'); + intToStr(static_cast(value), 0x10, result, sz, false, width, '0', 0, lowercase); str.append(result, sz); } @@ -405,20 +405,20 @@ void NumberFormatter::append0(std::string& str, UInt64 value, int width) } -void NumberFormatter::appendHex(std::string& str, UInt64 value) +void NumberFormatter::appendHex(std::string& str, UInt64 value, bool lowercase) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - intToStr(value, 0x10, result, sz); + intToStr(value, 0x10, result, sz, false, -1, ' ', 0, lowercase); str.append(result, sz); } -void NumberFormatter::appendHex(std::string& str, UInt64 value, int width) +void NumberFormatter::appendHex(std::string& str, UInt64 value, int width, bool lowercase) { char result[NF_MAX_INT_STRING_LEN]; std::size_t sz = NF_MAX_INT_STRING_LEN; - intToStr(value, 0x10, result, sz, false, width, '0'); + intToStr(value, 0x10, result, sz, false, width, '0', 0, lowercase); str.append(result, sz); } @@ -485,4 +485,116 @@ void NumberFormatter::append(std::string& str, const void* ptr) } +// +// Deprecated functions +// + + +std::string NumberFormatter::formatHex(int value, bool prefix) +{ + return formatHex(static_cast(value), prefix ? Options::PREFIX : Options::DEFAULT); +} + + +std::string NumberFormatter::formatHex(int value, int width, bool prefix) +{ + return formatHex(static_cast(value), width, prefix ? Options::PREFIX : Options::DEFAULT); +} + + +std::string NumberFormatter::formatHex(unsigned value, bool prefix) +{ + return formatHex(value, prefix ? Options::PREFIX : Options::DEFAULT); +} + + +std::string NumberFormatter::formatHex(unsigned value, int width, bool prefix) +{ + return formatHex(value, width, prefix ? Options::PREFIX : Options::DEFAULT); +} + + +std::string NumberFormatter::formatHex(long value, bool prefix) +{ + return formatHex(static_cast(value), prefix ? Options::PREFIX : Options::DEFAULT); +} + + +std::string NumberFormatter::formatHex(long value, int width, bool prefix) +{ + return formatHex(static_cast(value), width, prefix ? Options::PREFIX : Options::DEFAULT); +} + + +std::string NumberFormatter::formatHex(unsigned long value, bool prefix) +{ + return formatHex(value, prefix ? Options::PREFIX : Options::DEFAULT); +} + + +std::string NumberFormatter::formatHex(unsigned long value, int width, bool prefix) +{ + return formatHex(value, width, prefix ? Options::PREFIX : Options::DEFAULT); +} + + +#ifdef POCO_HAVE_INT64 +#ifdef POCO_INT64_IS_LONG + + +std::string NumberFormatter::formatHex(long long value, bool prefix) +{ + return formatHex(static_cast(value), prefix ? Options::PREFIX : Options::DEFAULT); +} + + +std::string NumberFormatter::formatHex(long long value, int width, bool prefix) +{ + return formatHex(static_cast(value), width, prefix ? Options::PREFIX : Options::DEFAULT); +} + + +std::string NumberFormatter::formatHex(unsigned long long value, bool prefix) +{ + return formatHex(value, prefix ? Options::PREFIX : Options::DEFAULT); +} + + +std::string NumberFormatter::formatHex(unsigned long long value, int width, bool prefix) +{ + return formatHex(value, width, prefix ? Options::PREFIX : Options::DEFAULT); +} + + +#else // ifndef POCO_LONG_IS_64_BIT + + +std::string NumberFormatter::formatHex(Int64 value, bool prefix) +{ + return formatHex(static_cast(value), prefix ? Options::PREFIX : Options::DEFAULT); +} + + +std::string NumberFormatter::formatHex(Int64 value, int width, bool prefix) +{ + return formatHex(static_cast(value), width, prefix ? Options::PREFIX : Options::DEFAULT); +} + + +std::string NumberFormatter::formatHex(UInt64 value, bool prefix) +{ + return formatHex(value, prefix ? Options::PREFIX : Options::DEFAULT); +} + + +std::string NumberFormatter::formatHex(UInt64 value, int width, bool prefix) +{ + return formatHex(value, width, prefix ? Options::PREFIX : Options::DEFAULT); +} + + +#endif // ifdef POCO_INT64_IS_LONG +#endif // ifdef POCO_HAVE_INT64 + + } // namespace Poco diff --git a/Foundation/testsuite/src/NumberFormatterTest.cpp b/Foundation/testsuite/src/NumberFormatterTest.cpp index a170f279d..068a74c35 100644 --- a/Foundation/testsuite/src/NumberFormatterTest.cpp +++ b/Foundation/testsuite/src/NumberFormatterTest.cpp @@ -113,105 +113,156 @@ void NumberFormatterTest::testFormatBool() void NumberFormatterTest::testFormatHex() { + using Opt = NumberFormatter::Options; + assertTrue (NumberFormatter::formatHex(0x12) == "12"); assertTrue (NumberFormatter::formatHex(0xab) == "AB"); + assertTrue (NumberFormatter::formatHex(0xab, Opt::LOWERCASE) == "ab"); assertTrue (NumberFormatter::formatHex(0x12, 4) == "0012"); assertTrue (NumberFormatter::formatHex(0xab, 4) == "00AB"); + assertTrue (NumberFormatter::formatHex(0xab, 4, Opt::LOWERCASE) == "00ab"); assertTrue (NumberFormatter::formatHex((unsigned) 0x12) == "12"); assertTrue (NumberFormatter::formatHex((unsigned) 0xab) == "AB"); + assertTrue (NumberFormatter::formatHex((unsigned) 0xab, Opt::LOWERCASE) == "ab"); assertTrue (NumberFormatter::formatHex((unsigned) 0x12, 4) == "0012"); assertTrue (NumberFormatter::formatHex((unsigned) 0xab, 4) == "00AB"); + assertTrue (NumberFormatter::formatHex((unsigned) 0xab, 4, Opt::LOWERCASE) == "00ab"); assertTrue (NumberFormatter::formatHex((long) 0x12) == "12"); assertTrue (NumberFormatter::formatHex((long) 0xab) == "AB"); + assertTrue (NumberFormatter::formatHex((long) 0xab, Opt::LOWERCASE) == "ab"); assertTrue (NumberFormatter::formatHex((long) 0x12, 4) == "0012"); assertTrue (NumberFormatter::formatHex((long) 0xab, 4) == "00AB"); assertTrue (NumberFormatter::formatHex((unsigned long) 0x12) == "12"); assertTrue (NumberFormatter::formatHex((unsigned long) 0xab) == "AB"); + assertTrue (NumberFormatter::formatHex((unsigned long) 0xab, Opt::LOWERCASE) == "ab"); assertTrue (NumberFormatter::formatHex((unsigned long) 0x12, 4) == "0012"); assertTrue (NumberFormatter::formatHex((unsigned long) 0xab, 4) == "00AB"); + assertTrue (NumberFormatter::formatHex((unsigned long) 0xab, 4, Opt::LOWERCASE) == "00ab"); #if defined(POCO_HAVE_INT64) assertTrue (NumberFormatter::formatHex((Int64) 0x12) == "12"); assertTrue (NumberFormatter::formatHex((Int64) 0xab) == "AB"); + assertTrue (NumberFormatter::formatHex((Int64) 0xab, Opt::LOWERCASE) == "ab"); assertTrue (NumberFormatter::formatHex((Int64) 0x12, 4) == "0012"); assertTrue (NumberFormatter::formatHex((Int64) 0xab, 4) == "00AB"); + assertTrue (NumberFormatter::formatHex((Int64) 0xab, 4, Opt::LOWERCASE) == "00ab"); assertTrue (NumberFormatter::formatHex((UInt64) 0x12) == "12"); assertTrue (NumberFormatter::formatHex((UInt64) 0xab) == "AB"); + assertTrue (NumberFormatter::formatHex((UInt64) 0xab, Opt::LOWERCASE) == "ab"); assertTrue (NumberFormatter::formatHex((UInt64) 0x12, 4) == "0012"); assertTrue (NumberFormatter::formatHex((UInt64) 0xab, 4) == "00AB"); + assertTrue (NumberFormatter::formatHex((UInt64) 0xab, 4, Opt::LOWERCASE) == "00ab"); #if defined(POCO_LONG_IS_64_BIT) assertTrue (NumberFormatter::formatHex((long long) 0x12) == "12"); assertTrue (NumberFormatter::formatHex((long long) 0xab) == "AB"); + assertTrue (NumberFormatter::formatHex((long long) 0xab, Opt::LOWERCASE) == "ab"); assertTrue (NumberFormatter::formatHex((long long) 0x12, 4) == "0012"); assertTrue (NumberFormatter::formatHex((long long) 0xab, 4) == "00AB"); + assertTrue (NumberFormatter::formatHex((long long) 0xab, 4, Opt::LOWERCASE) == "00ab"); assertTrue (NumberFormatter::formatHex((unsigned long long) 0x12) == "12"); assertTrue (NumberFormatter::formatHex((unsigned long long) 0xab) == "AB"); + assertTrue (NumberFormatter::formatHex((unsigned long long) 0xab, Opt::LOWERCASE) == "ab"); assertTrue (NumberFormatter::formatHex((unsigned long long) 0x12, 4) == "0012"); assertTrue (NumberFormatter::formatHex((unsigned long long) 0xab, 4) == "00AB"); + assertTrue (NumberFormatter::formatHex((unsigned long long) 0xab, 4, Opt::LOWERCASE) == "00ab"); #endif #endif + // Deprecated function assertTrue (NumberFormatter::formatHex(0x12, true) == "0x12"); - assertTrue (NumberFormatter::formatHex(0xab, true) == "0xAB"); - assertTrue (NumberFormatter::formatHex(0x12, 4, true) == "0x12"); - assertTrue (NumberFormatter::formatHex(0xab, 4, true) == "0xAB"); - assertTrue (NumberFormatter::formatHex(0x12, 6, true) == "0x0012"); - assertTrue (NumberFormatter::formatHex(0xab, 6, true) == "0x00AB"); + + assertTrue (NumberFormatter::formatHex(0x12, Opt::PREFIX) == "0x12"); + assertTrue (NumberFormatter::formatHex(0xab, Opt::PREFIX) == "0xAB"); + assertTrue (NumberFormatter::formatHex(0xab, Opt::PREFIX | Opt::LOWERCASE) == "0xab"); + assertTrue (NumberFormatter::formatHex(0x12, 4, Opt::PREFIX) == "0x12"); + assertTrue (NumberFormatter::formatHex(0xab, 4, Opt::PREFIX) == "0xAB"); + assertTrue (NumberFormatter::formatHex(0xab, 4, Opt::PREFIX | Opt::LOWERCASE) == "0xab"); + assertTrue (NumberFormatter::formatHex(0x12, 6, Opt::PREFIX) == "0x0012"); + assertTrue (NumberFormatter::formatHex(0xab, 6, Opt::PREFIX) == "0x00AB"); + assertTrue (NumberFormatter::formatHex(0xab, 6, Opt::PREFIX | Opt::LOWERCASE) == "0x00ab"); assertTrue (NumberFormatter::formatHex((unsigned) 0x12, true) == "0x12"); - assertTrue (NumberFormatter::formatHex((unsigned) 0xab, true) == "0xAB"); - assertTrue (NumberFormatter::formatHex((unsigned) 0x12, 4, true) == "0x12"); - assertTrue (NumberFormatter::formatHex((unsigned) 0xab, 4, true) == "0xAB"); - assertTrue (NumberFormatter::formatHex((unsigned) 0x12, 6, true) == "0x0012"); - assertTrue (NumberFormatter::formatHex((unsigned) 0xab, 6, true) == "0x00AB"); + assertTrue (NumberFormatter::formatHex((unsigned) 0x12, Opt::PREFIX) == "0x12"); + assertTrue (NumberFormatter::formatHex((unsigned) 0xab, Opt::PREFIX) == "0xAB"); + assertTrue (NumberFormatter::formatHex((unsigned) 0xab, Opt::PREFIX | Opt::LOWERCASE) == "0xab"); + assertTrue (NumberFormatter::formatHex((unsigned) 0x12, 4, Opt::PREFIX) == "0x12"); + assertTrue (NumberFormatter::formatHex((unsigned) 0xab, 4, Opt::PREFIX) == "0xAB"); + assertTrue (NumberFormatter::formatHex((unsigned) 0xab, 4, Opt::PREFIX | Opt::LOWERCASE) == "0xab"); + assertTrue (NumberFormatter::formatHex((unsigned) 0x12, 6, Opt::PREFIX) == "0x0012"); + assertTrue (NumberFormatter::formatHex((unsigned) 0xab, 6, Opt::PREFIX) == "0x00AB"); + assertTrue (NumberFormatter::formatHex((unsigned) 0xab, 6, Opt::PREFIX | Opt::LOWERCASE) == "0x00ab"); assertTrue (NumberFormatter::formatHex((long) 0x12, true) == "0x12"); - assertTrue (NumberFormatter::formatHex((long) 0xab, true) == "0xAB"); - assertTrue (NumberFormatter::formatHex((long) 0x12, 4, true) == "0x12"); - assertTrue (NumberFormatter::formatHex((long) 0xab, 4, true) == "0xAB"); - assertTrue (NumberFormatter::formatHex((long) 0x12, 6, true) == "0x0012"); - assertTrue (NumberFormatter::formatHex((long) 0xab, 6, true) == "0x00AB"); + assertTrue (NumberFormatter::formatHex((long) 0x12, Opt::PREFIX) == "0x12"); + assertTrue (NumberFormatter::formatHex((long) 0xab, Opt::PREFIX) == "0xAB"); + assertTrue (NumberFormatter::formatHex((long) 0xab, Opt::PREFIX | Opt::LOWERCASE) == "0xab"); + assertTrue (NumberFormatter::formatHex((long) 0x12, 4, Opt::PREFIX) == "0x12"); + assertTrue (NumberFormatter::formatHex((long) 0xab, 4, Opt::PREFIX) == "0xAB"); + assertTrue (NumberFormatter::formatHex((long) 0xab, 4, Opt::PREFIX | Opt::LOWERCASE) == "0xab"); + assertTrue (NumberFormatter::formatHex((long) 0x12, 6, Opt::PREFIX) == "0x0012"); + assertTrue (NumberFormatter::formatHex((long) 0xab, 6, Opt::PREFIX) == "0x00AB"); + assertTrue (NumberFormatter::formatHex((long) 0xab, 6, Opt::PREFIX | Opt::LOWERCASE) == "0x00ab"); assertTrue (NumberFormatter::formatHex((unsigned long) 0x12, true) == "0x12"); - assertTrue (NumberFormatter::formatHex((unsigned long) 0xab, true) == "0xAB"); - assertTrue (NumberFormatter::formatHex((unsigned long) 0x12, 4, true) == "0x12"); - assertTrue (NumberFormatter::formatHex((unsigned long) 0xab, 4, true) == "0xAB"); - assertTrue (NumberFormatter::formatHex((unsigned long) 0x12, 6, true) == "0x0012"); - assertTrue (NumberFormatter::formatHex((unsigned long) 0xab, 6, true) == "0x00AB"); + assertTrue (NumberFormatter::formatHex((unsigned long) 0x12, Opt::PREFIX) == "0x12"); + assertTrue (NumberFormatter::formatHex((unsigned long) 0xab, Opt::PREFIX) == "0xAB"); + assertTrue (NumberFormatter::formatHex((unsigned long) 0xab, Opt::PREFIX | Opt::LOWERCASE) == "0xab"); + assertTrue (NumberFormatter::formatHex((unsigned long) 0x12, 4, Opt::PREFIX) == "0x12"); + assertTrue (NumberFormatter::formatHex((unsigned long) 0xab, 4, Opt::PREFIX) == "0xAB"); + assertTrue (NumberFormatter::formatHex((unsigned long) 0xab, 4, Opt::PREFIX | Opt::LOWERCASE) == "0xab"); + assertTrue (NumberFormatter::formatHex((unsigned long) 0x12, 6, Opt::PREFIX) == "0x0012"); + assertTrue (NumberFormatter::formatHex((unsigned long) 0xab, 6, Opt::PREFIX) == "0x00AB"); + assertTrue (NumberFormatter::formatHex((unsigned long) 0xab, 6, Opt::PREFIX | Opt::LOWERCASE) == "0x00ab"); #if defined(POCO_HAVE_INT64) assertTrue (NumberFormatter::formatHex((Int64) 0x12, true) == "0x12"); - assertTrue (NumberFormatter::formatHex((Int64) 0xab, true) == "0xAB"); - assertTrue (NumberFormatter::formatHex((Int64) 0x12, 4, true) == "0x12"); - assertTrue (NumberFormatter::formatHex((Int64) 0xab, 4, true) == "0xAB"); - assertTrue (NumberFormatter::formatHex((Int64) 0x12, 6, true) == "0x0012"); - assertTrue (NumberFormatter::formatHex((Int64) 0xab, 6, true) == "0x00AB"); + assertTrue (NumberFormatter::formatHex((Int64) 0x12, Opt::PREFIX) == "0x12"); + assertTrue (NumberFormatter::formatHex((Int64) 0xab, Opt::PREFIX) == "0xAB"); + assertTrue (NumberFormatter::formatHex((Int64) 0xab, Opt::PREFIX | Opt::LOWERCASE) == "0xab"); + assertTrue (NumberFormatter::formatHex((Int64) 0x12, 4, Opt::PREFIX) == "0x12"); + assertTrue (NumberFormatter::formatHex((Int64) 0xab, 4, Opt::PREFIX) == "0xAB"); + assertTrue (NumberFormatter::formatHex((Int64) 0xab, 4, Opt::PREFIX | Opt::LOWERCASE) == "0xab"); + assertTrue (NumberFormatter::formatHex((Int64) 0x12, 6, Opt::PREFIX) == "0x0012"); + assertTrue (NumberFormatter::formatHex((Int64) 0xab, 6, Opt::PREFIX) == "0x00AB"); + assertTrue (NumberFormatter::formatHex((Int64) 0xab, 6, Opt::PREFIX | Opt::LOWERCASE) == "0x00ab"); assertTrue (NumberFormatter::formatHex((UInt64) 0x12, true) == "0x12"); - assertTrue (NumberFormatter::formatHex((UInt64) 0xab, true) == "0xAB"); - assertTrue (NumberFormatter::formatHex((UInt64) 0x12, 4, true) == "0x12"); - assertTrue (NumberFormatter::formatHex((UInt64) 0xab, 4, true) == "0xAB"); - assertTrue (NumberFormatter::formatHex((UInt64) 0x12, 6, true) == "0x0012"); - assertTrue (NumberFormatter::formatHex((UInt64) 0xab, 6, true) == "0x00AB"); + assertTrue (NumberFormatter::formatHex((UInt64) 0x12, Opt::PREFIX) == "0x12"); + assertTrue (NumberFormatter::formatHex((UInt64) 0xab, Opt::PREFIX) == "0xAB"); + assertTrue (NumberFormatter::formatHex((UInt64) 0xab, Opt::PREFIX | Opt::LOWERCASE) == "0xab"); + assertTrue (NumberFormatter::formatHex((UInt64) 0x12, 4, Opt::PREFIX) == "0x12"); + assertTrue (NumberFormatter::formatHex((UInt64) 0xab, 4, Opt::PREFIX) == "0xAB"); + assertTrue (NumberFormatter::formatHex((UInt64) 0xab, 4, Opt::PREFIX | Opt::LOWERCASE) == "0xab"); + assertTrue (NumberFormatter::formatHex((UInt64) 0x12, 6, Opt::PREFIX) == "0x0012"); + assertTrue (NumberFormatter::formatHex((UInt64) 0xab, 6, Opt::PREFIX) == "0x00AB"); + assertTrue (NumberFormatter::formatHex((UInt64) 0xab, 6, Opt::PREFIX | Opt::LOWERCASE) == "0x00ab"); #if defined(POCO_LONG_IS_64_BIT) assertTrue (NumberFormatter::formatHex((long long) 0x12, true) == "0x12"); - assertTrue (NumberFormatter::formatHex((long long) 0xab, true) == "0xAB"); - assertTrue (NumberFormatter::formatHex((long long) 0x12, 4, true) == "0x12"); - assertTrue (NumberFormatter::formatHex((long long) 0xab, 4, true) == "0xAB"); - assertTrue (NumberFormatter::formatHex((long long) 0x12, 6, true) == "0x0012"); - assertTrue (NumberFormatter::formatHex((long long) 0xab, 6, true) == "0x00AB"); + assertTrue (NumberFormatter::formatHex((long long) 0x12, Opt::PREFIX) == "0x12"); + assertTrue (NumberFormatter::formatHex((long long) 0xab, Opt::PREFIX) == "0xAB"); + assertTrue (NumberFormatter::formatHex((long long) 0xab, Opt::PREFIX | Opt::LOWERCASE) == "0xab"); + assertTrue (NumberFormatter::formatHex((long long) 0x12, 4, Opt::PREFIX) == "0x12"); + assertTrue (NumberFormatter::formatHex((long long) 0xab, 4, Opt::PREFIX) == "0xAB"); + assertTrue (NumberFormatter::formatHex((long long) 0xab, 4, Opt::PREFIX | Opt::LOWERCASE) == "0xab"); + assertTrue (NumberFormatter::formatHex((long long) 0x12, 6, Opt::PREFIX) == "0x0012"); + assertTrue (NumberFormatter::formatHex((long long) 0xab, 6, Opt::PREFIX) == "0x00AB"); + assertTrue (NumberFormatter::formatHex((long long) 0xab, 6, Opt::PREFIX | Opt::LOWERCASE) == "0x00ab"); assertTrue (NumberFormatter::formatHex((unsigned long long) 0x12, true) == "0x12"); - assertTrue (NumberFormatter::formatHex((unsigned long long) 0xab, true) == "0xAB"); - assertTrue (NumberFormatter::formatHex((unsigned long long) 0x12, 4, true) == "0x12"); - assertTrue (NumberFormatter::formatHex((unsigned long long) 0xab, 4, true) == "0xAB"); - assertTrue (NumberFormatter::formatHex((unsigned long long) 0x12, 6, true) == "0x0012"); - assertTrue (NumberFormatter::formatHex((unsigned long long) 0xab, 6, true) == "0x00AB"); + assertTrue (NumberFormatter::formatHex((unsigned long long) 0x12, Opt::PREFIX) == "0x12"); + assertTrue (NumberFormatter::formatHex((unsigned long long) 0xab, Opt::PREFIX) == "0xAB"); + assertTrue (NumberFormatter::formatHex((unsigned long long) 0xab, Opt::PREFIX | Opt::LOWERCASE) == "0xab"); + assertTrue (NumberFormatter::formatHex((unsigned long long) 0x12, 4, Opt::PREFIX) == "0x12"); + assertTrue (NumberFormatter::formatHex((unsigned long long) 0xab, 4, Opt::PREFIX) == "0xAB"); + assertTrue (NumberFormatter::formatHex((unsigned long long) 0xab, 4, Opt::PREFIX | Opt::LOWERCASE) == "0xab"); + assertTrue (NumberFormatter::formatHex((unsigned long long) 0x12, 6, Opt::PREFIX) == "0x0012"); + assertTrue (NumberFormatter::formatHex((unsigned long long) 0xab, 6, Opt::PREFIX) == "0x00AB"); + assertTrue (NumberFormatter::formatHex((unsigned long long) 0xab, 6, Opt::PREFIX | Opt::LOWERCASE) == "0x00ab"); #endif #endif } From bf3c519183128b298e3a671aff1fc8ff8e5950ce Mon Sep 17 00:00:00 2001 From: Kari Argillander Date: Sun, 17 Dec 2023 17:55:30 +0200 Subject: [PATCH 251/395] Fix some issues found with clang-tidy (#4353) * directoryiterator: Fix missing inline Add missing inline to inline function. This was found with clang-tidy check: misc-definitions-in-headers * Convert deprecated throw() to noexcept throw() has been deprecated in standar in C++17. It has been removed in C++20. Code still compiles but let's just define these at those should be. These where found with clang-tidy check: modernize-use-noexcept * Fix unnecessary copy initializations Clang-tidy did find these with check: performance-unnecessary-copy-initialization * Fix some strings not references Looks like these are just missing reference marks. --------- Co-authored-by: Kari Argillander --- CppUnit/include/CppUnit/CppUnitException.h | 8 ++++---- Data/PostgreSQL/src/PostgreSQLException.cpp | 2 +- Data/src/SessionPoolContainer.cpp | 2 +- .../include/Poco/DirectoryIterator_UNIX.h | 2 +- Foundation/src/URIStreamOpener.cpp | 2 +- MongoDB/src/Connection.cpp | 4 ++-- Net/include/Poco/Net/IPAddress.h | 2 +- Net/include/Poco/Net/MailMessage.h | 2 +- Net/src/IPAddress.cpp | 2 +- Net/src/MailMessage.cpp | 4 ++-- Redis/include/Poco/Redis/Type.h | 2 +- XML/include/Poco/XML/XMLStreamParserException.h | 4 ++-- XML/src/XMLStreamParserException.cpp | 4 ++-- XML/src/XMLWriter.cpp | 17 ++++++++--------- Zip/src/Decompress.cpp | 2 +- 15 files changed, 29 insertions(+), 30 deletions(-) diff --git a/CppUnit/include/CppUnit/CppUnitException.h b/CppUnit/include/CppUnit/CppUnitException.h index 7bbc891d1..b0583a384 100644 --- a/CppUnit/include/CppUnit/CppUnitException.h +++ b/CppUnit/include/CppUnit/CppUnitException.h @@ -33,11 +33,11 @@ public: long data2lineNumber, const std::string& fileName); CppUnitException(const CppUnitException& other); - virtual ~CppUnitException() throw(); + virtual ~CppUnitException() noexcept; CppUnitException& operator = (const CppUnitException& other); - const char* what() const throw (); + const char* what() const noexcept; long lineNumber() const; long data1LineNumber() const; @@ -81,7 +81,7 @@ inline CppUnitException::CppUnitException (const std::string& message, long line } -inline CppUnitException::~CppUnitException () throw() +inline CppUnitException::~CppUnitException () noexcept { } @@ -102,7 +102,7 @@ inline CppUnitException& CppUnitException::operator = (const CppUnitException& o } -inline const char* CppUnitException::what() const throw () +inline const char* CppUnitException::what() const noexcept { return _message.c_str(); } diff --git a/Data/PostgreSQL/src/PostgreSQLException.cpp b/Data/PostgreSQL/src/PostgreSQLException.cpp index e542c9059..7c6423b0a 100644 --- a/Data/PostgreSQL/src/PostgreSQLException.cpp +++ b/Data/PostgreSQL/src/PostgreSQLException.cpp @@ -45,7 +45,7 @@ PostgreSQLException::PostgreSQLException(const PostgreSQLException& anException) } -PostgreSQLException::~PostgreSQLException() throw() +PostgreSQLException::~PostgreSQLException() noexcept { } diff --git a/Data/src/SessionPoolContainer.cpp b/Data/src/SessionPoolContainer.cpp index f8f7c434c..c4a48a313 100644 --- a/Data/src/SessionPoolContainer.cpp +++ b/Data/src/SessionPoolContainer.cpp @@ -100,7 +100,7 @@ Session SessionPoolContainer::get(const std::string& name) SessionPool& SessionPoolContainer::getPool(const std::string& name) { URI uri(name); - std::string path = uri.getPath(); + const std::string& path = uri.getPath(); poco_assert (!path.empty()); std::string n = Session::uri(uri.getScheme(), path.substr(1)); diff --git a/Foundation/include/Poco/DirectoryIterator_UNIX.h b/Foundation/include/Poco/DirectoryIterator_UNIX.h index c91c970c2..61e5f9b4a 100644 --- a/Foundation/include/Poco/DirectoryIterator_UNIX.h +++ b/Foundation/include/Poco/DirectoryIterator_UNIX.h @@ -47,7 +47,7 @@ private: // // inlines // -const std::string& DirectoryIteratorImpl::get() const +inline const std::string& DirectoryIteratorImpl::get() const { return _current; } diff --git a/Foundation/src/URIStreamOpener.cpp b/Foundation/src/URIStreamOpener.cpp index 4bb8cfdff..fa59a0763 100644 --- a/Foundation/src/URIStreamOpener.cpp +++ b/Foundation/src/URIStreamOpener.cpp @@ -56,7 +56,7 @@ std::istream* URIStreamOpener::open(const std::string& pathOrURI) const try { URI uri(pathOrURI); - std::string scheme(uri.getScheme()); + const std::string& scheme(uri.getScheme()); FactoryMap::const_iterator it = _map.find(scheme); if (it != _map.end()) { diff --git a/MongoDB/src/Connection.cpp b/MongoDB/src/Connection.cpp index b525a597a..10661047a 100644 --- a/MongoDB/src/Connection.cpp +++ b/MongoDB/src/Connection.cpp @@ -148,8 +148,8 @@ void Connection::connect(const std::string& uri, SocketFactory& socketFactory) Poco::URI theURI(uri); if (theURI.getScheme() != "mongodb") throw Poco::UnknownURISchemeException(uri); - std::string userInfo = theURI.getUserInfo(); - std::string host = theURI.getHost(); + const std::string& userInfo = theURI.getUserInfo(); + const std::string& host = theURI.getHost(); Poco::UInt16 port = theURI.getPort(); if (port == 0) port = 27017; diff --git a/Net/include/Poco/Net/IPAddress.h b/Net/include/Poco/Net/IPAddress.h index 3858ab5ee..5c7550230 100644 --- a/Net/include/Poco/Net/IPAddress.h +++ b/Net/include/Poco/Net/IPAddress.h @@ -397,7 +397,7 @@ private: void newIPv6(const void* hostAddr, Poco::UInt32 scope); void newIPv6(unsigned prefix); static std::string& compressV6(std::string& v6addr); - static std::string trimIPv6(const std::string v6Addr); + static std::string trimIPv6(const std::string& v6Addr); #endif Ptr _pImpl; }; diff --git a/Net/include/Poco/Net/MailMessage.h b/Net/include/Poco/Net/MailMessage.h index 1ab1ff989..380353b4f 100644 --- a/Net/include/Poco/Net/MailMessage.h +++ b/Net/include/Poco/Net/MailMessage.h @@ -297,7 +297,7 @@ class Net_API MultipartSource: public PartSource /// mail messages consisting of multiple nested parts. { public: - explicit MultipartSource(const std::string contentType = "multipart/alternative"); + explicit MultipartSource(const std::string& contentType = "multipart/alternative"); /// Creates an empty MultipartSource. /// /// At least one part must be added with addPart(). diff --git a/Net/src/IPAddress.cpp b/Net/src/IPAddress.cpp index 0ad28c242..df1745a09 100644 --- a/Net/src/IPAddress.cpp +++ b/Net/src/IPAddress.cpp @@ -549,7 +549,7 @@ std::string& IPAddress::compressV6(std::string& v6addr) } -std::string IPAddress::trimIPv6(const std::string v6Addr) +std::string IPAddress::trimIPv6(const std::string& v6Addr) { std::string v6addr(v6Addr); std::string::size_type len = v6addr.length(); diff --git a/Net/src/MailMessage.cpp b/Net/src/MailMessage.cpp index 97d7e79e1..113335a8a 100644 --- a/Net/src/MailMessage.cpp +++ b/Net/src/MailMessage.cpp @@ -83,7 +83,7 @@ namespace MailMessage::ContentTransferEncoding cte = MailMessage::ENCODING_7BIT; if (header.has(MailMessage::HEADER_CONTENT_TRANSFER_ENCODING)) { - std::string enc = header[MailMessage::HEADER_CONTENT_TRANSFER_ENCODING]; + const std::string& enc = header[MailMessage::HEADER_CONTENT_TRANSFER_ENCODING]; if (enc == MailMessage::CTE_8BIT) cte = MailMessage::ENCODING_8BIT; else if (enc == MailMessage::CTE_QUOTED_PRINTABLE) @@ -692,7 +692,7 @@ PartSource* MailMessage::createPartStore(const std::string& content, const std:: } -MultipartSource::MultipartSource(const std::string contentType): +MultipartSource::MultipartSource(const std::string& contentType): PartSource(contentTypeWithBoundary(contentType)) { } diff --git a/Redis/include/Poco/Redis/Type.h b/Redis/include/Poco/Redis/Type.h index 084b3f710..a54c246ec 100644 --- a/Redis/include/Poco/Redis/Type.h +++ b/Redis/include/Poco/Redis/Type.h @@ -197,7 +197,7 @@ struct RedisTypeTraits } else { - std::string s = value.value(); + const std::string& s = value.value(); return marker + NumberFormatter::format(s.length()) + LineEnding::NEWLINE_CRLF diff --git a/XML/include/Poco/XML/XMLStreamParserException.h b/XML/include/Poco/XML/XMLStreamParserException.h index b2ccedadb..88e4ff330 100644 --- a/XML/include/Poco/XML/XMLStreamParserException.h +++ b/XML/include/Poco/XML/XMLStreamParserException.h @@ -33,13 +33,13 @@ class XML_API XMLStreamParserException: public Poco::XML::XMLException public: XMLStreamParserException(const std::string& name, Poco::UInt64 line, Poco::UInt64 column, const std::string& description); XMLStreamParserException(const XMLStreamParser&, const std::string& description); - virtual ~XMLStreamParserException() throw (); + virtual ~XMLStreamParserException() noexcept; const char* name() const noexcept; Poco::UInt64 line() const; Poco::UInt64 column() const; const std::string& description() const; - virtual const char* what() const throw (); + virtual const char* what() const noexcept; private: void init(); diff --git a/XML/src/XMLStreamParserException.cpp b/XML/src/XMLStreamParserException.cpp index 2b93641ad..d7b01690e 100644 --- a/XML/src/XMLStreamParserException.cpp +++ b/XML/src/XMLStreamParserException.cpp @@ -20,7 +20,7 @@ namespace Poco { namespace XML { -XMLStreamParserException::~XMLStreamParserException() throw () +XMLStreamParserException::~XMLStreamParserException() noexcept { } @@ -79,7 +79,7 @@ const std::string& XMLStreamParserException::description() const } -char const* XMLStreamParserException::what() const throw () +char const* XMLStreamParserException::what() const noexcept { return _what.c_str(); } diff --git a/XML/src/XMLWriter.cpp b/XML/src/XMLWriter.cpp index f93e62724..a9d0bca3f 100644 --- a/XML/src/XMLWriter.cpp +++ b/XML/src/XMLWriter.cpp @@ -724,8 +724,7 @@ void XMLWriter::declareNamespaces(const XMLString& namespaceURI, const XMLString for (int i = 0; i < attributes.getLength(); i++) { XMLString attributeNamespaceURI = attributes.getURI(i); - XMLString attributeLocalName = attributes.getLocalName(i); - XMLString attributeQName = attributes.getQName(i); + const XMLString& attributeQName = attributes.getQName(i); XMLString attributePrefix; XMLString attributeLocal; @@ -774,9 +773,9 @@ void XMLWriter::declareAttributeNamespaces(const Attributes& attributes) { for (int i = 0; i < attributes.getLength(); i++) { - XMLString namespaceURI = attributes.getURI(i); - XMLString localName = attributes.getLocalName(i); - XMLString qname = attributes.getQName(i); + const XMLString& namespaceURI = attributes.getURI(i); + const XMLString& localName = attributes.getLocalName(i); + const XMLString& qname = attributes.getQName(i); if (!localName.empty()) { XMLString prefix; @@ -841,8 +840,8 @@ void XMLWriter::addAttributes(AttributeMap& attributeMap, const Attributes& attr { for (int i = 0; i < attributes.getLength(); i++) { - XMLString namespaceURI = attributes.getURI(i); - XMLString localName = attributes.getLocalName(i); + const XMLString& namespaceURI = attributes.getURI(i); + const XMLString& localName = attributes.getLocalName(i); XMLString qname = attributes.getQName(i); if (!localName.empty()) { @@ -866,8 +865,8 @@ void XMLWriter::addAttributes(CanonicalAttributeMap& attributeMap, const Attribu { for (int i = 0; i < attributes.getLength(); i++) { - XMLString namespaceURI = attributes.getURI(i); - XMLString localName = attributes.getLocalName(i); + const XMLString& namespaceURI = attributes.getURI(i); + const XMLString& localName = attributes.getLocalName(i); XMLString qname = attributes.getQName(i); XMLString fullQName = qname; if (!localName.empty()) diff --git a/Zip/src/Decompress.cpp b/Zip/src/Decompress.cpp index f2d2893e3..605ad7227 100644 --- a/Zip/src/Decompress.cpp +++ b/Zip/src/Decompress.cpp @@ -79,7 +79,7 @@ bool Decompress::handleZipEntry(std::istream& zipStream, const ZipLocalFileHeade // directory have 0 size, nth to read if (!_flattenDirs) { - std::string dirName = hdr.getFileName(); + const std::string& dirName = hdr.getFileName(); if (!ZipCommon::isValidPath(dirName)) throw ZipException("Illegal entry name", dirName); Poco::Path dir(_outDir, dirName); From d1d557a4f7bd091fb1d786e5baf1690d58e141dd Mon Sep 17 00:00:00 2001 From: Kari Argillander Date: Wed, 13 Dec 2023 07:34:33 +0200 Subject: [PATCH 252/395] Remove vs140 and vs150 project files As we now only support C++17 these does not make much sense to keep. --- ActiveRecord/ActiveRecord_vs140.sln | 144 -- ActiveRecord/ActiveRecord_vs140.vcxproj | 579 ----- .../ActiveRecord_vs140.vcxproj.filters | 51 - ActiveRecord/ActiveRecord_vs150.sln | 144 -- ActiveRecord/ActiveRecord_vs150.vcxproj | 579 ----- .../ActiveRecord_vs150.vcxproj.filters | 51 - ActiveRecord/Compiler/Compiler_vs140.sln | 61 - ActiveRecord/Compiler/Compiler_vs140.vcxproj | 622 ------ .../Compiler/Compiler_vs140.vcxproj.filters | 45 - ActiveRecord/Compiler/Compiler_vs150.sln | 61 - ActiveRecord/Compiler/Compiler_vs150.vcxproj | 622 ------ .../Compiler/Compiler_vs150.vcxproj.filters | 45 - .../testsuite/TestSuite_vs140.vcxproj | 625 ------ .../testsuite/TestSuite_vs140.vcxproj.filters | 48 - .../testsuite/TestSuite_vs150.vcxproj | 625 ------ .../testsuite/TestSuite_vs150.vcxproj.filters | 48 - ApacheConnector/ApacheConnector_vs140.sln | 29 - ApacheConnector/ApacheConnector_vs140.vcxproj | 252 --- .../ApacheConnector_vs140.vcxproj.filters | 57 - ApacheConnector/ApacheConnector_vs150.sln | 29 - ApacheConnector/ApacheConnector_vs150.vcxproj | 252 --- .../ApacheConnector_vs150.vcxproj.filters | 57 - .../FormServer/FormServer_vs140.vcxproj | 219 -- .../FormServer_vs140.vcxproj.filters | 17 - .../FormServer/FormServer_vs150.vcxproj | 219 -- .../FormServer_vs150.vcxproj.filters | 17 - .../TimeServer/TimeServer_vs140.vcxproj | 219 -- .../TimeServer_vs140.vcxproj.filters | 17 - .../TimeServer/TimeServer_vs150.vcxproj | 219 -- .../TimeServer_vs150.vcxproj.filters | 17 - ApacheConnector/samples/samples_vs140.sln | 43 - ApacheConnector/samples/samples_vs150.sln | 43 - CppParser/CppParser_vs140.sln | 102 - CppParser/CppParser_vs140.vcxproj | 630 ------ CppParser/CppParser_vs140.vcxproj.filters | 144 -- CppParser/CppParser_vs150.sln | 102 - CppParser/CppParser_vs150.vcxproj | 630 ------ CppParser/CppParser_vs150.vcxproj.filters | 144 -- CppParser/testsuite/TestSuite_vs140.vcxproj | 625 ------ .../testsuite/TestSuite_vs140.vcxproj.filters | 69 - CppParser/testsuite/TestSuite_vs150.vcxproj | 625 ------ .../testsuite/TestSuite_vs150.vcxproj.filters | 69 - CppUnit/CppUnit_vs140.sln | 61 - CppUnit/CppUnit_vs140.vcxproj | 589 ------ CppUnit/CppUnit_vs140.vcxproj.filters | 89 - CppUnit/CppUnit_vs150.sln | 61 - CppUnit/CppUnit_vs150.vcxproj | 589 ------ CppUnit/CppUnit_vs150.vcxproj.filters | 89 - Crypto/Crypto_vs140.sln | 102 - Crypto/Crypto_vs140.vcxproj | 663 ------ Crypto/Crypto_vs140.vcxproj.filters | 213 -- Crypto/Crypto_vs150.sln | 102 - Crypto/Crypto_vs150.vcxproj | 663 ------ Crypto/Crypto_vs150.vcxproj.filters | 213 -- .../samples/genrsakey/genrsakey_vs140.vcxproj | 607 ------ .../genrsakey/genrsakey_vs140.vcxproj.filters | 16 - .../samples/genrsakey/genrsakey_vs150.vcxproj | 607 ------ .../genrsakey/genrsakey_vs150.vcxproj.filters | 16 - Crypto/samples/samples_vs140.sln | 61 - Crypto/samples/samples_vs150.sln | 61 - Crypto/testsuite/TestSuite_vs140.vcxproj | 641 ------ .../testsuite/TestSuite_vs140.vcxproj.filters | 84 - Crypto/testsuite/TestSuite_vs150.vcxproj | 641 ------ .../testsuite/TestSuite_vs150.vcxproj.filters | 84 - Data/Data_vs140.sln | 102 - Data/Data_vs140.vcxproj | 725 ------- Data/Data_vs140.vcxproj.filters | 297 --- Data/Data_vs150.sln | 102 - Data/Data_vs150.vcxproj | 725 ------- Data/Data_vs150.vcxproj.filters | 297 --- Data/MySQL/MySQL_vs140.sln | 102 - Data/MySQL/MySQL_vs140.vcxproj | 602 ------ Data/MySQL/MySQL_vs140.vcxproj.filters | 83 - Data/MySQL/MySQL_vs150.sln | 102 - Data/MySQL/MySQL_vs150.vcxproj | 602 ------ Data/MySQL/MySQL_vs150.vcxproj.filters | 83 - Data/MySQL/testsuite/TestSuite_vs140.vcxproj | 621 ------ .../testsuite/TestSuite_vs140.vcxproj.filters | 54 - Data/MySQL/testsuite/TestSuite_vs150.vcxproj | 621 ------ .../testsuite/TestSuite_vs150.vcxproj.filters | 54 - Data/ODBC/ODBC_vs140.sln | 102 - Data/ODBC/ODBC_vs140.vcxproj | 658 ------ Data/ODBC/ODBC_vs140.vcxproj.filters | 129 -- Data/ODBC/ODBC_vs150.sln | 102 - Data/ODBC/ODBC_vs150.vcxproj | 658 ------ Data/ODBC/ODBC_vs150.vcxproj.filters | 129 -- Data/ODBC/testsuite/TestSuite_vs140.vcxproj | 649 ------ .../testsuite/TestSuite_vs140.vcxproj.filters | 96 - Data/ODBC/testsuite/TestSuite_vs150.vcxproj | 649 ------ .../testsuite/TestSuite_vs150.vcxproj.filters | 96 - Data/PostgreSQL/PostgreSQL_vs140.sln | 102 - Data/PostgreSQL/PostgreSQL_vs140.vcxproj | 606 ------ .../PostgreSQL_vs140.vcxproj.filters | 89 - Data/PostgreSQL/PostgreSQL_vs150.sln | 102 - Data/PostgreSQL/PostgreSQL_vs150.vcxproj | 606 ------ .../PostgreSQL_vs150.vcxproj.filters | 89 - .../testsuite/TestSuite_vs140.vcxproj | 621 ------ .../testsuite/TestSuite_vs140.vcxproj.filters | 54 - .../testsuite/TestSuite_vs150.vcxproj | 621 ------ .../testsuite/TestSuite_vs150.vcxproj.filters | 54 - Data/SQLite/SQLite_vs140.sln | 102 - Data/SQLite/SQLite_vs140.vcxproj | 610 ------ Data/SQLite/SQLite_vs140.vcxproj.filters | 87 - Data/SQLite/SQLite_vs150.sln | 102 - Data/SQLite/SQLite_vs150.vcxproj | 610 ------ Data/SQLite/SQLite_vs150.vcxproj.filters | 87 - Data/SQLite/testsuite/TestSuite_vs140.vcxproj | 617 ------ .../testsuite/TestSuite_vs140.vcxproj.filters | 48 - Data/SQLite/testsuite/TestSuite_vs150.vcxproj | 617 ------ .../testsuite/TestSuite_vs150.vcxproj.filters | 48 - Data/samples/Binding/Binding_vs140.vcxproj | 607 ------ .../Binding/Binding_vs140.vcxproj.filters | 16 - Data/samples/Binding/Binding_vs150.vcxproj | 607 ------ .../Binding/Binding_vs150.vcxproj.filters | 16 - .../samples/RecordSet/RecordSet_vs140.vcxproj | 607 ------ .../RecordSet/RecordSet_vs140.vcxproj.filters | 16 - .../samples/RecordSet/RecordSet_vs150.vcxproj | 607 ------ .../RecordSet/RecordSet_vs150.vcxproj.filters | 16 - .../RowFormatter/RowFormatter_vs140.vcxproj | 607 ------ .../RowFormatter_vs140.vcxproj.filters | 16 - .../RowFormatter/RowFormatter_vs150.vcxproj | 607 ------ .../RowFormatter_vs150.vcxproj.filters | 16 - Data/samples/Tuple/Tuple_vs140.vcxproj | 607 ------ .../samples/Tuple/Tuple_vs140.vcxproj.filters | 16 - Data/samples/Tuple/Tuple_vs150.vcxproj | 607 ------ .../samples/Tuple/Tuple_vs150.vcxproj.filters | 16 - .../TypeHandler/TypeHandler_vs140.vcxproj | 607 ------ .../TypeHandler_vs140.vcxproj.filters | 16 - .../TypeHandler/TypeHandler_vs150.vcxproj | 607 ------ .../TypeHandler_vs150.vcxproj.filters | 16 - .../WebNotifier/WebNotifier_vs140.vcxproj | 607 ------ .../WebNotifier_vs140.vcxproj.filters | 16 - .../WebNotifier/WebNotifier_vs150.vcxproj | 607 ------ .../WebNotifier_vs150.vcxproj.filters | 16 - Data/samples/samples_vs140.sln | 251 --- Data/samples/samples_vs150.sln | 251 --- .../testsuite/DataTest/DataTest_vs140.vcxproj | 582 ----- .../DataTest/DataTest_vs140.vcxproj.filters | 32 - .../testsuite/DataTest/DataTest_vs150.vcxproj | 582 ----- .../DataTest/DataTest_vs150.vcxproj.filters | 32 - Data/testsuite/TestSuite_vs140.vcxproj | 645 ------ .../testsuite/TestSuite_vs140.vcxproj.filters | 108 - Data/testsuite/TestSuite_vs150.vcxproj | 645 ------ .../testsuite/TestSuite_vs150.vcxproj.filters | 108 - Encodings/Compiler/Compiler_vs140.sln | 61 - Encodings/Compiler/Compiler_vs140.vcxproj | 607 ------ .../Compiler/Compiler_vs140.vcxproj.filters | 16 - Encodings/Compiler/Compiler_vs150.sln | 61 - Encodings/Compiler/Compiler_vs150.vcxproj | 607 ------ .../Compiler/Compiler_vs150.vcxproj.filters | 16 - Encodings/Encodings_vs140.sln | 102 - Encodings/Encodings_vs140.vcxproj | 689 ------ Encodings/Encodings_vs140.vcxproj.filters | 213 -- Encodings/Encodings_vs150.sln | 102 - Encodings/Encodings_vs150.vcxproj | 689 ------ Encodings/Encodings_vs150.vcxproj.filters | 213 -- .../TextConverter/TextConverter_vs140.vcxproj | 607 ------ .../TextConverter_vs140.vcxproj.filters | 16 - .../TextConverter/TextConverter_vs150.vcxproj | 607 ------ .../TextConverter_vs150.vcxproj.filters | 16 - Encodings/samples/samples_vs140.sln | 61 - Encodings/samples/samples_vs150.sln | 61 - Encodings/testsuite/TestSuite_vs140.vcxproj | 617 ------ .../testsuite/TestSuite_vs140.vcxproj.filters | 30 - Encodings/testsuite/TestSuite_vs150.vcxproj | 617 ------ .../testsuite/TestSuite_vs150.vcxproj.filters | 30 - Foundation/Foundation_vs140.sln | 150 -- Foundation/Foundation_vs140.vcxproj | 1852 ---------------- Foundation/Foundation_vs140.vcxproj.filters | 1880 ----------------- Foundation/Foundation_vs150.sln | 150 -- Foundation/Foundation_vs150.vcxproj | 1852 ---------------- Foundation/Foundation_vs150.vcxproj.filters | 1880 ----------------- .../ActiveMethod/ActiveMethod_vs140.vcxproj | 607 ------ .../ActiveMethod_vs140.vcxproj.filters | 16 - .../ActiveMethod/ActiveMethod_vs150.vcxproj | 607 ------ .../ActiveMethod_vs150.vcxproj.filters | 16 - .../samples/Activity/Activity_vs140.vcxproj | 607 ------ .../Activity/Activity_vs140.vcxproj.filters | 16 - .../samples/Activity/Activity_vs150.vcxproj | 607 ------ .../Activity/Activity_vs150.vcxproj.filters | 16 - .../BinaryReaderWriter_vs140.vcxproj | 607 ------ .../BinaryReaderWriter_vs140.vcxproj.filters | 16 - .../BinaryReaderWriter_vs150.vcxproj | 607 ------ .../BinaryReaderWriter_vs150.vcxproj.filters | 16 - .../samples/DateTime/DateTime_vs140.vcxproj | 607 ------ .../DateTime/DateTime_vs140.vcxproj.filters | 16 - .../samples/DateTime/DateTime_vs150.vcxproj | 607 ------ .../DateTime/DateTime_vs150.vcxproj.filters | 16 - .../LineEndingConverter_vs140.vcxproj | 607 ------ .../LineEndingConverter_vs140.vcxproj.filters | 16 - .../LineEndingConverter_vs150.vcxproj | 607 ------ .../LineEndingConverter_vs150.vcxproj.filters | 16 - .../LogRotation/LogRotation_vs140.vcxproj | 607 ------ .../LogRotation_vs140.vcxproj.filters | 16 - .../LogRotation/LogRotation_vs150.vcxproj | 607 ------ .../LogRotation_vs150.vcxproj.filters | 16 - .../samples/Logger/Logger_vs140.vcxproj | 607 ------ .../Logger/Logger_vs140.vcxproj.filters | 16 - .../samples/Logger/Logger_vs150.vcxproj | 607 ------ .../Logger/Logger_vs150.vcxproj.filters | 16 - .../NotificationQueue_vs140.vcxproj | 607 ------ .../NotificationQueue_vs140.vcxproj.filters | 16 - .../NotificationQueue_vs150.vcxproj | 607 ------ .../NotificationQueue_vs150.vcxproj.filters | 16 - .../StringTokenizer_vs140.vcxproj | 607 ------ .../StringTokenizer_vs140.vcxproj.filters | 16 - .../StringTokenizer_vs150.vcxproj | 607 ------ .../StringTokenizer_vs150.vcxproj.filters | 16 - Foundation/samples/Timer/Timer_vs140.vcxproj | 607 ------ .../samples/Timer/Timer_vs140.vcxproj.filters | 16 - Foundation/samples/Timer/Timer_vs150.vcxproj | 607 ------ .../samples/Timer/Timer_vs150.vcxproj.filters | 16 - Foundation/samples/URI/URI_vs140.vcxproj | 607 ------ .../samples/URI/URI_vs140.vcxproj.filters | 16 - Foundation/samples/URI/URI_vs150.vcxproj | 607 ------ .../samples/URI/URI_vs150.vcxproj.filters | 16 - .../base64decode/base64decode_vs140.vcxproj | 607 ------ .../base64decode_vs140.vcxproj.filters | 16 - .../base64decode/base64decode_vs150.vcxproj | 607 ------ .../base64decode_vs150.vcxproj.filters | 16 - .../base64encode/base64encode_vs140.vcxproj | 607 ------ .../base64encode_vs140.vcxproj.filters | 16 - .../base64encode/base64encode_vs150.vcxproj | 607 ------ .../base64encode_vs150.vcxproj.filters | 16 - .../samples/deflate/deflate_vs140.vcxproj | 607 ------ .../deflate/deflate_vs140.vcxproj.filters | 16 - .../samples/deflate/deflate_vs150.vcxproj | 607 ------ .../deflate/deflate_vs150.vcxproj.filters | 16 - Foundation/samples/dir/dir_vs140.vcxproj | 607 ------ .../samples/dir/dir_vs140.vcxproj.filters | 16 - Foundation/samples/dir/dir_vs150.vcxproj | 607 ------ .../samples/dir/dir_vs150.vcxproj.filters | 16 - Foundation/samples/grep/grep_vs140.vcxproj | 607 ------ .../samples/grep/grep_vs140.vcxproj.filters | 16 - Foundation/samples/grep/grep_vs150.vcxproj | 607 ------ .../samples/grep/grep_vs150.vcxproj.filters | 16 - .../samples/hmacmd5/hmacmd5_vs140.vcxproj | 607 ------ .../hmacmd5/hmacmd5_vs140.vcxproj.filters | 16 - .../samples/hmacmd5/hmacmd5_vs150.vcxproj | 607 ------ .../hmacmd5/hmacmd5_vs150.vcxproj.filters | 16 - .../samples/inflate/inflate_vs140.vcxproj | 607 ------ .../inflate/inflate_vs140.vcxproj.filters | 16 - .../samples/inflate/inflate_vs150.vcxproj | 607 ------ .../inflate/inflate_vs150.vcxproj.filters | 16 - Foundation/samples/md5/md5_vs140.vcxproj | 607 ------ .../samples/md5/md5_vs140.vcxproj.filters | 16 - Foundation/samples/md5/md5_vs150.vcxproj | 607 ------ .../samples/md5/md5_vs150.vcxproj.filters | 16 - Foundation/samples/samples_vs140.sln | 783 ------- Foundation/samples/samples_vs150.sln | 783 ------- .../samples/uuidgen/uuidgen_vs140.vcxproj | 607 ------ .../uuidgen/uuidgen_vs140.vcxproj.filters | 16 - .../samples/uuidgen/uuidgen_vs150.vcxproj | 607 ------ .../uuidgen/uuidgen_vs150.vcxproj.filters | 16 - Foundation/testsuite/TestApp_vs140.vcxproj | 622 ------ .../testsuite/TestApp_vs140.vcxproj.filters | 13 - Foundation/testsuite/TestApp_vs150.vcxproj | 622 ------ .../testsuite/TestApp_vs150.vcxproj.filters | 13 - .../testsuite/TestLibrary_vs140.vcxproj | 237 --- .../TestLibrary_vs140.vcxproj.filters | 25 - .../testsuite/TestLibrary_vs150.vcxproj | 237 --- .../TestLibrary_vs150.vcxproj.filters | 25 - Foundation/testsuite/TestSuite_vs140.vcxproj | 892 -------- .../testsuite/TestSuite_vs140.vcxproj.filters | 1020 --------- Foundation/testsuite/TestSuite_vs150.vcxproj | 892 -------- .../testsuite/TestSuite_vs150.vcxproj.filters | 1020 --------- JSON/JSON_vs140.sln | 102 - JSON/JSON_vs140.vcxproj | 638 ------ JSON/JSON_vs140.vcxproj.filters | 99 - JSON/JSON_vs150.sln | 102 - JSON/JSON_vs150.vcxproj | 638 ------ JSON/JSON_vs150.vcxproj.filters | 99 - .../samples/Benchmark/Benchmark_vs140.vcxproj | 607 ------ .../Benchmark/Benchmark_vs140.vcxproj.filters | 16 - .../samples/Benchmark/Benchmark_vs150.vcxproj | 607 ------ .../Benchmark/Benchmark_vs150.vcxproj.filters | 16 - JSON/samples/samples_vs140.sln | 61 - JSON/samples/samples_vs150.sln | 61 - JSON/testsuite/TestSuite_vs140.vcxproj | 617 ------ .../testsuite/TestSuite_vs140.vcxproj.filters | 30 - JSON/testsuite/TestSuite_vs150.vcxproj | 617 ------ .../testsuite/TestSuite_vs150.vcxproj.filters | 30 - JWT/JWT_vs140.sln | 102 - JWT/JWT_vs140.vcxproj | 578 ----- JWT/JWT_vs140.vcxproj.filters | 45 - JWT/JWT_vs150.sln | 102 - JWT/JWT_vs150.vcxproj | 578 ----- JWT/JWT_vs150.vcxproj.filters | 45 - JWT/testsuite/TestSuite_vs140.vcxproj | 625 ------ JWT/testsuite/TestSuite_vs140.vcxproj.filters | 42 - JWT/testsuite/TestSuite_vs150.vcxproj | 625 ------ JWT/testsuite/TestSuite_vs150.vcxproj.filters | 42 - MongoDB/MongoDB_vs140.sln | 102 - MongoDB/MongoDB_vs140.vcxproj | 657 ------ MongoDB/MongoDB_vs140.vcxproj.filters | 156 -- MongoDB/MongoDB_vs150.sln | 102 - MongoDB/MongoDB_vs150.vcxproj | 657 ------ MongoDB/MongoDB_vs150.vcxproj.filters | 156 -- .../SQLToMongo/SQLToMongo_vs140.vcxproj | 607 ------ .../SQLToMongo_vs140.vcxproj.filters | 16 - .../SQLToMongo/SQLToMongo_vs150.vcxproj | 607 ------ .../SQLToMongo_vs150.vcxproj.filters | 16 - MongoDB/samples/samples_vs140.sln | 61 - MongoDB/samples/samples_vs150.sln | 61 - MongoDB/testsuite/TestSuite_vs140.vcxproj | 620 ------ .../testsuite/TestSuite_vs140.vcxproj.filters | 30 - MongoDB/testsuite/TestSuite_vs150.vcxproj | 620 ------ .../testsuite/TestSuite_vs150.vcxproj.filters | 30 - Net/Net_vs140.sln | 102 - Net/Net_vs140.vcxproj | 1001 --------- Net/Net_vs140.vcxproj.filters | 843 -------- Net/Net_vs150.sln | 102 - Net/Net_vs150.vcxproj | 787 ------- Net/Net_vs150.vcxproj.filters | 849 -------- .../EchoServer/EchoServer_vs140.vcxproj | 610 ------ .../EchoServer_vs140.vcxproj.filters | 21 - .../EchoServer/EchoServer_vs150.vcxproj | 610 ------ .../EchoServer_vs150.vcxproj.filters | 21 - .../HTTPFormServer_vs140.vcxproj | 610 ------ .../HTTPFormServer_vs140.vcxproj.filters | 21 - .../HTTPFormServer_vs150.vcxproj | 610 ------ .../HTTPFormServer_vs150.vcxproj.filters | 21 - .../HTTPLoadTest/HTTPLoadTest_vs140.vcxproj | 607 ------ .../HTTPLoadTest_vs140.vcxproj.filters | 13 - .../HTTPLoadTest/HTTPLoadTest_vs150.vcxproj | 607 ------ .../HTTPLoadTest_vs150.vcxproj.filters | 13 - .../HTTPTimeServer_vs140.vcxproj | 610 ------ .../HTTPTimeServer_vs140.vcxproj.filters | 21 - .../HTTPTimeServer_vs150.vcxproj | 610 ------ .../HTTPTimeServer_vs150.vcxproj.filters | 21 - Net/samples/Mail/Mail_vs140.vcxproj | 610 ------ Net/samples/Mail/Mail_vs140.vcxproj.filters | 18 - Net/samples/Mail/Mail_vs150.vcxproj | 610 ------ Net/samples/Mail/Mail_vs150.vcxproj.filters | 18 - Net/samples/Ping/Ping_vs140.vcxproj | 610 ------ Net/samples/Ping/Ping_vs140.vcxproj.filters | 21 - Net/samples/Ping/Ping_vs150.vcxproj | 610 ------ Net/samples/Ping/Ping_vs150.vcxproj.filters | 21 - .../SMTPLogger/SMTPLogger_vs140.vcxproj | 607 ------ .../SMTPLogger_vs140.vcxproj.filters | 13 - .../SMTPLogger/SMTPLogger_vs150.vcxproj | 607 ------ .../SMTPLogger_vs150.vcxproj.filters | 13 - .../TimeServer/TimeServer_vs140.vcxproj | 610 ------ .../TimeServer_vs140.vcxproj.filters | 21 - .../TimeServer/TimeServer_vs150.vcxproj | 610 ------ .../TimeServer_vs150.vcxproj.filters | 21 - .../WebSocketServer_vs140.vcxproj | 607 ------ .../WebSocketServer_vs140.vcxproj.filters | 13 - .../WebSocketServer_vs150.vcxproj | 607 ------ .../WebSocketServer_vs150.vcxproj.filters | 13 - Net/samples/dict/dict_vs140.vcxproj | 607 ------ Net/samples/dict/dict_vs140.vcxproj.filters | 13 - Net/samples/dict/dict_vs150.vcxproj | 607 ------ Net/samples/dict/dict_vs150.vcxproj.filters | 13 - Net/samples/download/download_vs140.vcxproj | 607 ------ .../download/download_vs140.vcxproj.filters | 13 - Net/samples/download/download_vs150.vcxproj | 607 ------ .../download/download_vs150.vcxproj.filters | 13 - Net/samples/httpget/httpget_vs140.vcxproj | 607 ------ .../httpget/httpget_vs140.vcxproj.filters | 13 - Net/samples/httpget/httpget_vs150.vcxproj | 607 ------ .../httpget/httpget_vs150.vcxproj.filters | 13 - Net/samples/ifconfig/ifconfig_vs140.vcxproj | 607 ------ .../ifconfig/ifconfig_vs140.vcxproj.filters | 13 - Net/samples/ifconfig/ifconfig_vs150.vcxproj | 607 ------ .../ifconfig/ifconfig_vs150.vcxproj.filters | 13 - Net/samples/samples_vs140.sln | 517 ----- Net/samples/samples_vs150.sln | 517 ----- Net/samples/tcpserver/tcpserver_vs140.vcxproj | 607 ------ .../tcpserver/tcpserver_vs140.vcxproj.filters | 13 - Net/samples/tcpserver/tcpserver_vs150.vcxproj | 607 ------ .../tcpserver/tcpserver_vs150.vcxproj.filters | 13 - Net/testsuite/TestSuite_vs140.vcxproj | 865 -------- Net/testsuite/TestSuite_vs140.vcxproj.filters | 564 ----- Net/testsuite/TestSuite_vs150.vcxproj | 730 ------- Net/testsuite/TestSuite_vs150.vcxproj.filters | 576 ----- NetSSL_OpenSSL/NetSSL_OpenSSL_vs140.sln | 102 - NetSSL_OpenSSL/NetSSL_OpenSSL_vs140.vcxproj | 683 ------ .../NetSSL_OpenSSL_vs140.vcxproj.filters | 234 -- NetSSL_OpenSSL/NetSSL_OpenSSL_vs150.sln | 102 - NetSSL_OpenSSL/NetSSL_OpenSSL_vs150.vcxproj | 683 ------ .../NetSSL_OpenSSL_vs150.vcxproj.filters | 234 -- .../HTTPSTimeServer_vs140.vcxproj | 610 ------ .../HTTPSTimeServer_vs140.vcxproj.filters | 21 - .../HTTPSTimeServer_vs150.vcxproj | 610 ------ .../HTTPSTimeServer_vs150.vcxproj.filters | 21 - .../samples/Mail/Mail_vs140.vcxproj | 610 ------ .../samples/Mail/Mail_vs140.vcxproj.filters | 18 - .../samples/Mail/Mail_vs150.vcxproj | 610 ------ .../samples/Mail/Mail_vs150.vcxproj.filters | 18 - .../SetSourceIP/SetSourceIP_vs140.vcxproj | 610 ------ .../SetSourceIP_vs140.vcxproj.filters | 18 - .../SetSourceIP/SetSourceIP_vs150.vcxproj | 610 ------ .../SetSourceIP_vs150.vcxproj.filters | 18 - .../SetSourceIP/SetSourceIP_x64_vs140.vcxproj | 314 --- .../SetSourceIP_x64_vs140.vcxproj.filters | 21 - .../SetSourceIP/SetSourceIP_x64_vs150.vcxproj | 314 --- .../SetSourceIP_x64_vs150.vcxproj.filters | 21 - .../TwitterClient/TwitterClient_vs140.vcxproj | 613 ------ .../TwitterClient_vs140.vcxproj.filters | 24 - .../TwitterClient/TwitterClient_vs150.vcxproj | 613 ------ .../TwitterClient_vs150.vcxproj.filters | 24 - .../samples/download/download_vs140.vcxproj | 607 ------ .../download/download_vs140.vcxproj.filters | 13 - .../samples/download/download_vs150.vcxproj | 607 ------ .../download/download_vs150.vcxproj.filters | 13 - NetSSL_OpenSSL/samples/samples_vs140.sln | 213 -- NetSSL_OpenSSL/samples/samples_vs150.sln | 213 -- .../testsuite/TestSuite_vs140.vcxproj | 665 ------ .../testsuite/TestSuite_vs140.vcxproj.filters | 165 -- .../testsuite/TestSuite_vs150.vcxproj | 665 ------ .../testsuite/TestSuite_vs150.vcxproj.filters | 165 -- NetSSL_Win/NetSSL_Win_vs140.sln | 102 - NetSSL_Win/NetSSL_Win_vs140.vcxproj | 676 ------ NetSSL_Win/NetSSL_Win_vs140.vcxproj.filters | 216 -- NetSSL_Win/NetSSL_Win_vs150.sln | 102 - NetSSL_Win/NetSSL_Win_vs150.vcxproj | 676 ------ NetSSL_Win/NetSSL_Win_vs150.vcxproj.filters | 216 -- .../HTTPSTimeServer_vs140.vcxproj | 610 ------ .../HTTPSTimeServer_vs140.vcxproj.filters | 21 - .../HTTPSTimeServer_vs150.vcxproj | 610 ------ .../HTTPSTimeServer_vs150.vcxproj.filters | 21 - NetSSL_Win/samples/Mail/Mail_vs140.vcxproj | 610 ------ .../samples/Mail/Mail_vs140.vcxproj.filters | 18 - NetSSL_Win/samples/Mail/Mail_vs150.vcxproj | 610 ------ .../samples/Mail/Mail_vs150.vcxproj.filters | 18 - .../samples/download/download_vs140.vcxproj | 607 ------ .../download/download_vs140.vcxproj.filters | 13 - .../samples/download/download_vs150.vcxproj | 607 ------ .../download/download_vs150.vcxproj.filters | 13 - NetSSL_Win/samples/samples_vs140.sln | 137 -- NetSSL_Win/samples/samples_vs150.sln | 137 -- NetSSL_Win/testsuite/TestSuite_vs140.vcxproj | 645 ------ .../testsuite/TestSuite_vs140.vcxproj.filters | 117 - NetSSL_Win/testsuite/TestSuite_vs150.vcxproj | 645 ------ .../testsuite/TestSuite_vs150.vcxproj.filters | 117 - PDF/PDF_vs140.sln | 102 - PDF/PDF_vs140.vcxproj | 917 -------- PDF/PDF_vs140.vcxproj.filters | 516 ----- PDF/PDF_vs150.sln | 102 - PDF/PDF_vs150.vcxproj | 917 -------- PDF/PDF_vs150.vcxproj.filters | 516 ----- PDF/samples/Image/Image_vs140.vcxproj | 603 ------ PDF/samples/Image/Image_vs140.vcxproj.filters | 16 - PDF/samples/Image/Image_vs150.vcxproj | 603 ------ PDF/samples/Image/Image_vs150.vcxproj.filters | 16 - PDF/samples/Template/Template_vs140.sln | 33 - PDF/samples/Template/Template_vs140.vcxproj | 603 ------ .../Template/Template_vs140.vcxproj.filters | 16 - PDF/samples/Template/Template_vs150.vcxproj | 603 ------ .../Template/Template_vs150.vcxproj.filters | 16 - PDF/samples/Text/Text_vs140.vcxproj | 603 ------ PDF/samples/Text/Text_vs140.vcxproj.filters | 16 - PDF/samples/Text/Text_vs150.vcxproj | 603 ------ PDF/samples/Text/Text_vs150.vcxproj.filters | 16 - PDF/samples/samples_vs140.sln | 137 -- PDF/samples/samples_vs150.sln | 137 -- PDF/testsuite/TestSuite_vs140.vcxproj | 617 ------ PDF/testsuite/TestSuite_vs140.vcxproj.filters | 48 - PDF/testsuite/TestSuite_vs150.vcxproj | 617 ------ PDF/testsuite/TestSuite_vs150.vcxproj.filters | 48 - PageCompiler/File2Page/File2Page_vs140.sln | 61 - .../File2Page/File2Page_vs140.vcxproj | 607 ------ .../File2Page/File2Page_vs140.vcxproj.filters | 16 - PageCompiler/File2Page/File2Page_vs150.sln | 61 - .../File2Page/File2Page_vs150.vcxproj | 607 ------ .../File2Page/File2Page_vs150.vcxproj.filters | 16 - PageCompiler/PageCompiler_vs140.sln | 61 - PageCompiler/PageCompiler_vs140.vcxproj | 632 ------ .../PageCompiler_vs140.vcxproj.filters | 56 - PageCompiler/PageCompiler_vs150.sln | 61 - PageCompiler/PageCompiler_vs150.vcxproj | 632 ------ .../PageCompiler_vs150.vcxproj.filters | 56 - .../HTTPTimeServer_vs140.vcxproj | 616 ------ .../HTTPTimeServer_vs140.vcxproj.filters | 32 - .../HTTPTimeServer_vs150.vcxproj | 616 ------ .../HTTPTimeServer_vs150.vcxproj.filters | 32 - PageCompiler/samples/samples_vs140.sln | 61 - PageCompiler/samples/samples_vs150.sln | 61 - PocoDoc/PocoDoc_vs140.sln | 61 - PocoDoc/PocoDoc_vs140.vcxproj | 613 ------ PocoDoc/PocoDoc_vs140.vcxproj.filters | 36 - PocoDoc/PocoDoc_vs150.sln | 61 - PocoDoc/PocoDoc_vs150.vcxproj | 613 ------ PocoDoc/PocoDoc_vs150.vcxproj.filters | 36 - ProGen/ProGen_vs140.sln | 61 - ProGen/ProGen_vs140.vcxproj | 616 ------ ProGen/ProGen_vs140.vcxproj.filters | 32 - ProGen/ProGen_vs150.sln | 61 - ProGen/ProGen_vs150.vcxproj | 616 ------ ProGen/ProGen_vs150.vcxproj.filters | 32 - Prometheus/Prometheus_vs140.sln | 102 - Prometheus/Prometheus_vs140.vcxproj | 619 ------ Prometheus/Prometheus_vs140.vcxproj.filters | 117 - Prometheus/Prometheus_vs150.sln | 102 - Prometheus/Prometheus_vs150.vcxproj | 619 ------ Prometheus/Prometheus_vs150.vcxproj.filters | 117 - .../MetricsSample/MetricsSample_vs140.vcxproj | 607 ------ .../MetricsSample_vs140.vcxproj.filters | 13 - .../MetricsSample/MetricsSample_vs150.vcxproj | 607 ------ .../MetricsSample_vs150.vcxproj.filters | 13 - Prometheus/samples/samples_vs140.sln | 61 - Prometheus/samples/samples_vs150.sln | 61 - Prometheus/testsuite/TestSuite_vs140.vcxproj | 637 ------ .../testsuite/TestSuite_vs140.vcxproj.filters | 60 - Prometheus/testsuite/TestSuite_vs150.vcxproj | 637 ------ .../testsuite/TestSuite_vs150.vcxproj.filters | 60 - Redis/Redis_vs140.sln | 102 - Redis/Redis_vs140.vcxproj | 599 ------ Redis/Redis_vs140.vcxproj.filters | 78 - Redis/Redis_vs150.sln | 102 - Redis/Redis_vs150.vcxproj | 599 ------ Redis/Redis_vs150.vcxproj.filters | 78 - Redis/testsuite/TestSuite_vs140.vcxproj | 617 ------ .../testsuite/TestSuite_vs140.vcxproj.filters | 30 - Redis/testsuite/TestSuite_vs150.vcxproj | 617 ------ .../testsuite/TestSuite_vs150.vcxproj.filters | 30 - SevenZip/SevenZip_vs140.sln | 61 - SevenZip/SevenZip_vs140.vcxproj | 645 ------ SevenZip/SevenZip_vs140.vcxproj.filters | 141 -- SevenZip/SevenZip_vs150.sln | 61 - SevenZip/SevenZip_vs150.vcxproj | 645 ------ SevenZip/SevenZip_vs150.vcxproj.filters | 141 -- SevenZip/samples/samples_vs140.sln | 61 - SevenZip/samples/samples_vs150.sln | 61 - SevenZip/samples/un7zip/un7zip_vs140.vcxproj | 603 ------ .../un7zip/un7zip_vs140.vcxproj.filters | 16 - SevenZip/samples/un7zip/un7zip_vs150.vcxproj | 603 ------ .../un7zip/un7zip_vs150.vcxproj.filters | 16 - Util/Util_vs140.sln | 102 - Util/Util_vs140.vcxproj | 687 ------ Util/Util_vs140.vcxproj.filters | 258 --- Util/Util_vs150.sln | 102 - Util/Util_vs150.vcxproj | 687 ------ Util/Util_vs150.vcxproj.filters | 258 --- .../samples/SampleApp/SampleApp_vs140.vcxproj | 610 ------ .../SampleApp/SampleApp_vs140.vcxproj.filters | 21 - .../samples/SampleApp/SampleApp_vs150.vcxproj | 610 ------ .../SampleApp/SampleApp_vs150.vcxproj.filters | 21 - .../SampleServer/SampleServer_vs140.vcxproj | 607 ------ .../SampleServer_vs140.vcxproj.filters | 16 - .../SampleServer/SampleServer_vs150.vcxproj | 607 ------ .../SampleServer_vs150.vcxproj.filters | 16 - Util/samples/Units/Units_vs140.vcxproj | 603 ------ .../samples/Units/Units_vs140.vcxproj.filters | 16 - Util/samples/Units/Units_vs150.vcxproj | 603 ------ .../samples/Units/Units_vs150.vcxproj.filters | 16 - Util/samples/pkill/pkill_vs140.vcxproj | 607 ------ .../samples/pkill/pkill_vs140.vcxproj.filters | 13 - Util/samples/pkill/pkill_vs150.vcxproj | 607 ------ .../samples/pkill/pkill_vs150.vcxproj.filters | 13 - Util/samples/samples_vs140.sln | 175 -- Util/samples/samples_vs150.sln | 175 -- Util/testsuite/TestSuite_vs140.vcxproj | 717 ------- .../testsuite/TestSuite_vs140.vcxproj.filters | 234 -- Util/testsuite/TestSuite_vs150.vcxproj | 717 ------- .../testsuite/TestSuite_vs150.vcxproj.filters | 234 -- XML/XML_vs140.sln | 102 - XML/XML_vs140.vcxproj | 913 -------- XML/XML_vs140.vcxproj.filters | 540 ----- XML/XML_vs150.sln | 102 - XML/XML_vs150.vcxproj | 913 -------- XML/XML_vs150.vcxproj.filters | 540 ----- XML/samples/DOMParser/DOMParser_vs140.vcxproj | 607 ------ .../DOMParser/DOMParser_vs140.vcxproj.filters | 16 - XML/samples/DOMParser/DOMParser_vs150.vcxproj | 607 ------ .../DOMParser/DOMParser_vs150.vcxproj.filters | 16 - XML/samples/DOMWriter/DOMWriter_vs140.vcxproj | 607 ------ .../DOMWriter/DOMWriter_vs140.vcxproj.filters | 16 - XML/samples/DOMWriter/DOMWriter_vs150.vcxproj | 607 ------ .../DOMWriter/DOMWriter_vs150.vcxproj.filters | 16 - .../PrettyPrint/PrettyPrint_vs140.vcxproj | 607 ------ .../PrettyPrint_vs140.vcxproj.filters | 16 - .../PrettyPrint/PrettyPrint_vs150.vcxproj | 607 ------ .../PrettyPrint_vs150.vcxproj.filters | 16 - XML/samples/SAXParser/SAXParser_vs140.vcxproj | 607 ------ .../SAXParser/SAXParser_vs140.vcxproj.filters | 16 - XML/samples/SAXParser/SAXParser_vs150.vcxproj | 607 ------ .../SAXParser/SAXParser_vs150.vcxproj.filters | 16 - XML/samples/samples_vs140.sln | 175 -- XML/samples/samples_vs150.sln | 175 -- XML/testsuite/TestSuite_vs140.vcxproj | 693 ------ XML/testsuite/TestSuite_vs140.vcxproj.filters | 180 -- XML/testsuite/TestSuite_vs150.vcxproj | 693 ------ XML/testsuite/TestSuite_vs150.vcxproj.filters | 180 -- Zip/Zip_vs140.sln | 102 - Zip/Zip_vs140.vcxproj | 667 ------ Zip/Zip_vs140.vcxproj.filters | 165 -- Zip/Zip_vs150.sln | 102 - Zip/Zip_vs150.vcxproj | 667 ------ Zip/Zip_vs150.vcxproj.filters | 165 -- Zip/samples/samples_vs140.sln | 99 - Zip/samples/samples_vs150.sln | 99 - Zip/samples/unzip/unzip_vs140.vcxproj | 607 ------ Zip/samples/unzip/unzip_vs140.vcxproj.filters | 16 - Zip/samples/unzip/unzip_vs150.vcxproj | 607 ------ Zip/samples/unzip/unzip_vs150.vcxproj.filters | 16 - Zip/samples/zip/zip_vs140.vcxproj | 607 ------ Zip/samples/zip/zip_vs140.vcxproj.filters | 13 - Zip/samples/zip/zip_vs150.vcxproj | 607 ------ Zip/samples/zip/zip_vs150.vcxproj.filters | 13 - Zip/testsuite/TestSuite_vs140.vcxproj | 625 ------ Zip/testsuite/TestSuite_vs140.vcxproj.filters | 60 - Zip/testsuite/TestSuite_vs150.vcxproj | 625 ------ Zip/testsuite/TestSuite_vs150.vcxproj.filters | 60 - 605 files changed, 192890 deletions(-) delete mode 100644 ActiveRecord/ActiveRecord_vs140.sln delete mode 100644 ActiveRecord/ActiveRecord_vs140.vcxproj delete mode 100644 ActiveRecord/ActiveRecord_vs140.vcxproj.filters delete mode 100644 ActiveRecord/ActiveRecord_vs150.sln delete mode 100644 ActiveRecord/ActiveRecord_vs150.vcxproj delete mode 100644 ActiveRecord/ActiveRecord_vs150.vcxproj.filters delete mode 100644 ActiveRecord/Compiler/Compiler_vs140.sln delete mode 100644 ActiveRecord/Compiler/Compiler_vs140.vcxproj delete mode 100644 ActiveRecord/Compiler/Compiler_vs140.vcxproj.filters delete mode 100644 ActiveRecord/Compiler/Compiler_vs150.sln delete mode 100644 ActiveRecord/Compiler/Compiler_vs150.vcxproj delete mode 100644 ActiveRecord/Compiler/Compiler_vs150.vcxproj.filters delete mode 100644 ActiveRecord/testsuite/TestSuite_vs140.vcxproj delete mode 100644 ActiveRecord/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 ActiveRecord/testsuite/TestSuite_vs150.vcxproj delete mode 100644 ActiveRecord/testsuite/TestSuite_vs150.vcxproj.filters delete mode 100644 ApacheConnector/ApacheConnector_vs140.sln delete mode 100644 ApacheConnector/ApacheConnector_vs140.vcxproj delete mode 100644 ApacheConnector/ApacheConnector_vs140.vcxproj.filters delete mode 100644 ApacheConnector/ApacheConnector_vs150.sln delete mode 100644 ApacheConnector/ApacheConnector_vs150.vcxproj delete mode 100644 ApacheConnector/ApacheConnector_vs150.vcxproj.filters delete mode 100644 ApacheConnector/samples/FormServer/FormServer_vs140.vcxproj delete mode 100644 ApacheConnector/samples/FormServer/FormServer_vs140.vcxproj.filters delete mode 100644 ApacheConnector/samples/FormServer/FormServer_vs150.vcxproj delete mode 100644 ApacheConnector/samples/FormServer/FormServer_vs150.vcxproj.filters delete mode 100644 ApacheConnector/samples/TimeServer/TimeServer_vs140.vcxproj delete mode 100644 ApacheConnector/samples/TimeServer/TimeServer_vs140.vcxproj.filters delete mode 100644 ApacheConnector/samples/TimeServer/TimeServer_vs150.vcxproj delete mode 100644 ApacheConnector/samples/TimeServer/TimeServer_vs150.vcxproj.filters delete mode 100644 ApacheConnector/samples/samples_vs140.sln delete mode 100644 ApacheConnector/samples/samples_vs150.sln delete mode 100644 CppParser/CppParser_vs140.sln delete mode 100644 CppParser/CppParser_vs140.vcxproj delete mode 100644 CppParser/CppParser_vs140.vcxproj.filters delete mode 100644 CppParser/CppParser_vs150.sln delete mode 100644 CppParser/CppParser_vs150.vcxproj delete mode 100644 CppParser/CppParser_vs150.vcxproj.filters delete mode 100644 CppParser/testsuite/TestSuite_vs140.vcxproj delete mode 100644 CppParser/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 CppParser/testsuite/TestSuite_vs150.vcxproj delete mode 100644 CppParser/testsuite/TestSuite_vs150.vcxproj.filters delete mode 100644 CppUnit/CppUnit_vs140.sln delete mode 100644 CppUnit/CppUnit_vs140.vcxproj delete mode 100644 CppUnit/CppUnit_vs140.vcxproj.filters delete mode 100644 CppUnit/CppUnit_vs150.sln delete mode 100644 CppUnit/CppUnit_vs150.vcxproj delete mode 100644 CppUnit/CppUnit_vs150.vcxproj.filters delete mode 100644 Crypto/Crypto_vs140.sln delete mode 100644 Crypto/Crypto_vs140.vcxproj delete mode 100644 Crypto/Crypto_vs140.vcxproj.filters delete mode 100644 Crypto/Crypto_vs150.sln delete mode 100644 Crypto/Crypto_vs150.vcxproj delete mode 100644 Crypto/Crypto_vs150.vcxproj.filters delete mode 100644 Crypto/samples/genrsakey/genrsakey_vs140.vcxproj delete mode 100644 Crypto/samples/genrsakey/genrsakey_vs140.vcxproj.filters delete mode 100644 Crypto/samples/genrsakey/genrsakey_vs150.vcxproj delete mode 100644 Crypto/samples/genrsakey/genrsakey_vs150.vcxproj.filters delete mode 100644 Crypto/samples/samples_vs140.sln delete mode 100644 Crypto/samples/samples_vs150.sln delete mode 100644 Crypto/testsuite/TestSuite_vs140.vcxproj delete mode 100644 Crypto/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 Crypto/testsuite/TestSuite_vs150.vcxproj delete mode 100644 Crypto/testsuite/TestSuite_vs150.vcxproj.filters delete mode 100644 Data/Data_vs140.sln delete mode 100644 Data/Data_vs140.vcxproj delete mode 100644 Data/Data_vs140.vcxproj.filters delete mode 100644 Data/Data_vs150.sln delete mode 100644 Data/Data_vs150.vcxproj delete mode 100644 Data/Data_vs150.vcxproj.filters delete mode 100644 Data/MySQL/MySQL_vs140.sln delete mode 100644 Data/MySQL/MySQL_vs140.vcxproj delete mode 100644 Data/MySQL/MySQL_vs140.vcxproj.filters delete mode 100644 Data/MySQL/MySQL_vs150.sln delete mode 100644 Data/MySQL/MySQL_vs150.vcxproj delete mode 100644 Data/MySQL/MySQL_vs150.vcxproj.filters delete mode 100644 Data/MySQL/testsuite/TestSuite_vs140.vcxproj delete mode 100644 Data/MySQL/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 Data/MySQL/testsuite/TestSuite_vs150.vcxproj delete mode 100644 Data/MySQL/testsuite/TestSuite_vs150.vcxproj.filters delete mode 100644 Data/ODBC/ODBC_vs140.sln delete mode 100644 Data/ODBC/ODBC_vs140.vcxproj delete mode 100644 Data/ODBC/ODBC_vs140.vcxproj.filters delete mode 100644 Data/ODBC/ODBC_vs150.sln delete mode 100644 Data/ODBC/ODBC_vs150.vcxproj delete mode 100644 Data/ODBC/ODBC_vs150.vcxproj.filters delete mode 100644 Data/ODBC/testsuite/TestSuite_vs140.vcxproj delete mode 100644 Data/ODBC/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 Data/ODBC/testsuite/TestSuite_vs150.vcxproj delete mode 100644 Data/ODBC/testsuite/TestSuite_vs150.vcxproj.filters delete mode 100644 Data/PostgreSQL/PostgreSQL_vs140.sln delete mode 100644 Data/PostgreSQL/PostgreSQL_vs140.vcxproj delete mode 100644 Data/PostgreSQL/PostgreSQL_vs140.vcxproj.filters delete mode 100644 Data/PostgreSQL/PostgreSQL_vs150.sln delete mode 100644 Data/PostgreSQL/PostgreSQL_vs150.vcxproj delete mode 100644 Data/PostgreSQL/PostgreSQL_vs150.vcxproj.filters delete mode 100644 Data/PostgreSQL/testsuite/TestSuite_vs140.vcxproj delete mode 100644 Data/PostgreSQL/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 Data/PostgreSQL/testsuite/TestSuite_vs150.vcxproj delete mode 100644 Data/PostgreSQL/testsuite/TestSuite_vs150.vcxproj.filters delete mode 100644 Data/SQLite/SQLite_vs140.sln delete mode 100644 Data/SQLite/SQLite_vs140.vcxproj delete mode 100644 Data/SQLite/SQLite_vs140.vcxproj.filters delete mode 100644 Data/SQLite/SQLite_vs150.sln delete mode 100644 Data/SQLite/SQLite_vs150.vcxproj delete mode 100644 Data/SQLite/SQLite_vs150.vcxproj.filters delete mode 100644 Data/SQLite/testsuite/TestSuite_vs140.vcxproj delete mode 100644 Data/SQLite/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 Data/SQLite/testsuite/TestSuite_vs150.vcxproj delete mode 100644 Data/SQLite/testsuite/TestSuite_vs150.vcxproj.filters delete mode 100644 Data/samples/Binding/Binding_vs140.vcxproj delete mode 100644 Data/samples/Binding/Binding_vs140.vcxproj.filters delete mode 100644 Data/samples/Binding/Binding_vs150.vcxproj delete mode 100644 Data/samples/Binding/Binding_vs150.vcxproj.filters delete mode 100644 Data/samples/RecordSet/RecordSet_vs140.vcxproj delete mode 100644 Data/samples/RecordSet/RecordSet_vs140.vcxproj.filters delete mode 100644 Data/samples/RecordSet/RecordSet_vs150.vcxproj delete mode 100644 Data/samples/RecordSet/RecordSet_vs150.vcxproj.filters delete mode 100644 Data/samples/RowFormatter/RowFormatter_vs140.vcxproj delete mode 100644 Data/samples/RowFormatter/RowFormatter_vs140.vcxproj.filters delete mode 100644 Data/samples/RowFormatter/RowFormatter_vs150.vcxproj delete mode 100644 Data/samples/RowFormatter/RowFormatter_vs150.vcxproj.filters delete mode 100644 Data/samples/Tuple/Tuple_vs140.vcxproj delete mode 100644 Data/samples/Tuple/Tuple_vs140.vcxproj.filters delete mode 100644 Data/samples/Tuple/Tuple_vs150.vcxproj delete mode 100644 Data/samples/Tuple/Tuple_vs150.vcxproj.filters delete mode 100644 Data/samples/TypeHandler/TypeHandler_vs140.vcxproj delete mode 100644 Data/samples/TypeHandler/TypeHandler_vs140.vcxproj.filters delete mode 100644 Data/samples/TypeHandler/TypeHandler_vs150.vcxproj delete mode 100644 Data/samples/TypeHandler/TypeHandler_vs150.vcxproj.filters delete mode 100644 Data/samples/WebNotifier/WebNotifier_vs140.vcxproj delete mode 100644 Data/samples/WebNotifier/WebNotifier_vs140.vcxproj.filters delete mode 100644 Data/samples/WebNotifier/WebNotifier_vs150.vcxproj delete mode 100644 Data/samples/WebNotifier/WebNotifier_vs150.vcxproj.filters delete mode 100644 Data/samples/samples_vs140.sln delete mode 100644 Data/samples/samples_vs150.sln delete mode 100644 Data/testsuite/DataTest/DataTest_vs140.vcxproj delete mode 100644 Data/testsuite/DataTest/DataTest_vs140.vcxproj.filters delete mode 100644 Data/testsuite/DataTest/DataTest_vs150.vcxproj delete mode 100644 Data/testsuite/DataTest/DataTest_vs150.vcxproj.filters delete mode 100644 Data/testsuite/TestSuite_vs140.vcxproj delete mode 100644 Data/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 Data/testsuite/TestSuite_vs150.vcxproj delete mode 100644 Data/testsuite/TestSuite_vs150.vcxproj.filters delete mode 100644 Encodings/Compiler/Compiler_vs140.sln delete mode 100644 Encodings/Compiler/Compiler_vs140.vcxproj delete mode 100644 Encodings/Compiler/Compiler_vs140.vcxproj.filters delete mode 100644 Encodings/Compiler/Compiler_vs150.sln delete mode 100644 Encodings/Compiler/Compiler_vs150.vcxproj delete mode 100644 Encodings/Compiler/Compiler_vs150.vcxproj.filters delete mode 100644 Encodings/Encodings_vs140.sln delete mode 100644 Encodings/Encodings_vs140.vcxproj delete mode 100644 Encodings/Encodings_vs140.vcxproj.filters delete mode 100644 Encodings/Encodings_vs150.sln delete mode 100644 Encodings/Encodings_vs150.vcxproj delete mode 100644 Encodings/Encodings_vs150.vcxproj.filters delete mode 100644 Encodings/samples/TextConverter/TextConverter_vs140.vcxproj delete mode 100644 Encodings/samples/TextConverter/TextConverter_vs140.vcxproj.filters delete mode 100644 Encodings/samples/TextConverter/TextConverter_vs150.vcxproj delete mode 100644 Encodings/samples/TextConverter/TextConverter_vs150.vcxproj.filters delete mode 100644 Encodings/samples/samples_vs140.sln delete mode 100644 Encodings/samples/samples_vs150.sln delete mode 100644 Encodings/testsuite/TestSuite_vs140.vcxproj delete mode 100644 Encodings/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 Encodings/testsuite/TestSuite_vs150.vcxproj delete mode 100644 Encodings/testsuite/TestSuite_vs150.vcxproj.filters delete mode 100644 Foundation/Foundation_vs140.sln delete mode 100644 Foundation/Foundation_vs140.vcxproj delete mode 100644 Foundation/Foundation_vs140.vcxproj.filters delete mode 100644 Foundation/Foundation_vs150.sln delete mode 100644 Foundation/Foundation_vs150.vcxproj delete mode 100644 Foundation/Foundation_vs150.vcxproj.filters delete mode 100644 Foundation/samples/ActiveMethod/ActiveMethod_vs140.vcxproj delete mode 100644 Foundation/samples/ActiveMethod/ActiveMethod_vs140.vcxproj.filters delete mode 100644 Foundation/samples/ActiveMethod/ActiveMethod_vs150.vcxproj delete mode 100644 Foundation/samples/ActiveMethod/ActiveMethod_vs150.vcxproj.filters delete mode 100644 Foundation/samples/Activity/Activity_vs140.vcxproj delete mode 100644 Foundation/samples/Activity/Activity_vs140.vcxproj.filters delete mode 100644 Foundation/samples/Activity/Activity_vs150.vcxproj delete mode 100644 Foundation/samples/Activity/Activity_vs150.vcxproj.filters delete mode 100644 Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs140.vcxproj delete mode 100644 Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs140.vcxproj.filters delete mode 100644 Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs150.vcxproj delete mode 100644 Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs150.vcxproj.filters delete mode 100644 Foundation/samples/DateTime/DateTime_vs140.vcxproj delete mode 100644 Foundation/samples/DateTime/DateTime_vs140.vcxproj.filters delete mode 100644 Foundation/samples/DateTime/DateTime_vs150.vcxproj delete mode 100644 Foundation/samples/DateTime/DateTime_vs150.vcxproj.filters delete mode 100644 Foundation/samples/LineEndingConverter/LineEndingConverter_vs140.vcxproj delete mode 100644 Foundation/samples/LineEndingConverter/LineEndingConverter_vs140.vcxproj.filters delete mode 100644 Foundation/samples/LineEndingConverter/LineEndingConverter_vs150.vcxproj delete mode 100644 Foundation/samples/LineEndingConverter/LineEndingConverter_vs150.vcxproj.filters delete mode 100644 Foundation/samples/LogRotation/LogRotation_vs140.vcxproj delete mode 100644 Foundation/samples/LogRotation/LogRotation_vs140.vcxproj.filters delete mode 100644 Foundation/samples/LogRotation/LogRotation_vs150.vcxproj delete mode 100644 Foundation/samples/LogRotation/LogRotation_vs150.vcxproj.filters delete mode 100644 Foundation/samples/Logger/Logger_vs140.vcxproj delete mode 100644 Foundation/samples/Logger/Logger_vs140.vcxproj.filters delete mode 100644 Foundation/samples/Logger/Logger_vs150.vcxproj delete mode 100644 Foundation/samples/Logger/Logger_vs150.vcxproj.filters delete mode 100644 Foundation/samples/NotificationQueue/NotificationQueue_vs140.vcxproj delete mode 100644 Foundation/samples/NotificationQueue/NotificationQueue_vs140.vcxproj.filters delete mode 100644 Foundation/samples/NotificationQueue/NotificationQueue_vs150.vcxproj delete mode 100644 Foundation/samples/NotificationQueue/NotificationQueue_vs150.vcxproj.filters delete mode 100644 Foundation/samples/StringTokenizer/StringTokenizer_vs140.vcxproj delete mode 100644 Foundation/samples/StringTokenizer/StringTokenizer_vs140.vcxproj.filters delete mode 100644 Foundation/samples/StringTokenizer/StringTokenizer_vs150.vcxproj delete mode 100644 Foundation/samples/StringTokenizer/StringTokenizer_vs150.vcxproj.filters delete mode 100644 Foundation/samples/Timer/Timer_vs140.vcxproj delete mode 100644 Foundation/samples/Timer/Timer_vs140.vcxproj.filters delete mode 100644 Foundation/samples/Timer/Timer_vs150.vcxproj delete mode 100644 Foundation/samples/Timer/Timer_vs150.vcxproj.filters delete mode 100644 Foundation/samples/URI/URI_vs140.vcxproj delete mode 100644 Foundation/samples/URI/URI_vs140.vcxproj.filters delete mode 100644 Foundation/samples/URI/URI_vs150.vcxproj delete mode 100644 Foundation/samples/URI/URI_vs150.vcxproj.filters delete mode 100644 Foundation/samples/base64decode/base64decode_vs140.vcxproj delete mode 100644 Foundation/samples/base64decode/base64decode_vs140.vcxproj.filters delete mode 100644 Foundation/samples/base64decode/base64decode_vs150.vcxproj delete mode 100644 Foundation/samples/base64decode/base64decode_vs150.vcxproj.filters delete mode 100644 Foundation/samples/base64encode/base64encode_vs140.vcxproj delete mode 100644 Foundation/samples/base64encode/base64encode_vs140.vcxproj.filters delete mode 100644 Foundation/samples/base64encode/base64encode_vs150.vcxproj delete mode 100644 Foundation/samples/base64encode/base64encode_vs150.vcxproj.filters delete mode 100644 Foundation/samples/deflate/deflate_vs140.vcxproj delete mode 100644 Foundation/samples/deflate/deflate_vs140.vcxproj.filters delete mode 100644 Foundation/samples/deflate/deflate_vs150.vcxproj delete mode 100644 Foundation/samples/deflate/deflate_vs150.vcxproj.filters delete mode 100644 Foundation/samples/dir/dir_vs140.vcxproj delete mode 100644 Foundation/samples/dir/dir_vs140.vcxproj.filters delete mode 100644 Foundation/samples/dir/dir_vs150.vcxproj delete mode 100644 Foundation/samples/dir/dir_vs150.vcxproj.filters delete mode 100644 Foundation/samples/grep/grep_vs140.vcxproj delete mode 100644 Foundation/samples/grep/grep_vs140.vcxproj.filters delete mode 100644 Foundation/samples/grep/grep_vs150.vcxproj delete mode 100644 Foundation/samples/grep/grep_vs150.vcxproj.filters delete mode 100644 Foundation/samples/hmacmd5/hmacmd5_vs140.vcxproj delete mode 100644 Foundation/samples/hmacmd5/hmacmd5_vs140.vcxproj.filters delete mode 100644 Foundation/samples/hmacmd5/hmacmd5_vs150.vcxproj delete mode 100644 Foundation/samples/hmacmd5/hmacmd5_vs150.vcxproj.filters delete mode 100644 Foundation/samples/inflate/inflate_vs140.vcxproj delete mode 100644 Foundation/samples/inflate/inflate_vs140.vcxproj.filters delete mode 100644 Foundation/samples/inflate/inflate_vs150.vcxproj delete mode 100644 Foundation/samples/inflate/inflate_vs150.vcxproj.filters delete mode 100644 Foundation/samples/md5/md5_vs140.vcxproj delete mode 100644 Foundation/samples/md5/md5_vs140.vcxproj.filters delete mode 100644 Foundation/samples/md5/md5_vs150.vcxproj delete mode 100644 Foundation/samples/md5/md5_vs150.vcxproj.filters delete mode 100644 Foundation/samples/samples_vs140.sln delete mode 100644 Foundation/samples/samples_vs150.sln delete mode 100644 Foundation/samples/uuidgen/uuidgen_vs140.vcxproj delete mode 100644 Foundation/samples/uuidgen/uuidgen_vs140.vcxproj.filters delete mode 100644 Foundation/samples/uuidgen/uuidgen_vs150.vcxproj delete mode 100644 Foundation/samples/uuidgen/uuidgen_vs150.vcxproj.filters delete mode 100644 Foundation/testsuite/TestApp_vs140.vcxproj delete mode 100644 Foundation/testsuite/TestApp_vs140.vcxproj.filters delete mode 100644 Foundation/testsuite/TestApp_vs150.vcxproj delete mode 100644 Foundation/testsuite/TestApp_vs150.vcxproj.filters delete mode 100644 Foundation/testsuite/TestLibrary_vs140.vcxproj delete mode 100644 Foundation/testsuite/TestLibrary_vs140.vcxproj.filters delete mode 100644 Foundation/testsuite/TestLibrary_vs150.vcxproj delete mode 100644 Foundation/testsuite/TestLibrary_vs150.vcxproj.filters delete mode 100644 Foundation/testsuite/TestSuite_vs140.vcxproj delete mode 100644 Foundation/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 Foundation/testsuite/TestSuite_vs150.vcxproj delete mode 100644 Foundation/testsuite/TestSuite_vs150.vcxproj.filters delete mode 100644 JSON/JSON_vs140.sln delete mode 100644 JSON/JSON_vs140.vcxproj delete mode 100644 JSON/JSON_vs140.vcxproj.filters delete mode 100644 JSON/JSON_vs150.sln delete mode 100644 JSON/JSON_vs150.vcxproj delete mode 100644 JSON/JSON_vs150.vcxproj.filters delete mode 100644 JSON/samples/Benchmark/Benchmark_vs140.vcxproj delete mode 100644 JSON/samples/Benchmark/Benchmark_vs140.vcxproj.filters delete mode 100644 JSON/samples/Benchmark/Benchmark_vs150.vcxproj delete mode 100644 JSON/samples/Benchmark/Benchmark_vs150.vcxproj.filters delete mode 100644 JSON/samples/samples_vs140.sln delete mode 100644 JSON/samples/samples_vs150.sln delete mode 100644 JSON/testsuite/TestSuite_vs140.vcxproj delete mode 100644 JSON/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 JSON/testsuite/TestSuite_vs150.vcxproj delete mode 100644 JSON/testsuite/TestSuite_vs150.vcxproj.filters delete mode 100644 JWT/JWT_vs140.sln delete mode 100644 JWT/JWT_vs140.vcxproj delete mode 100644 JWT/JWT_vs140.vcxproj.filters delete mode 100644 JWT/JWT_vs150.sln delete mode 100644 JWT/JWT_vs150.vcxproj delete mode 100644 JWT/JWT_vs150.vcxproj.filters delete mode 100644 JWT/testsuite/TestSuite_vs140.vcxproj delete mode 100644 JWT/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 JWT/testsuite/TestSuite_vs150.vcxproj delete mode 100644 JWT/testsuite/TestSuite_vs150.vcxproj.filters delete mode 100644 MongoDB/MongoDB_vs140.sln delete mode 100644 MongoDB/MongoDB_vs140.vcxproj delete mode 100644 MongoDB/MongoDB_vs140.vcxproj.filters delete mode 100644 MongoDB/MongoDB_vs150.sln delete mode 100644 MongoDB/MongoDB_vs150.vcxproj delete mode 100644 MongoDB/MongoDB_vs150.vcxproj.filters delete mode 100644 MongoDB/samples/SQLToMongo/SQLToMongo_vs140.vcxproj delete mode 100644 MongoDB/samples/SQLToMongo/SQLToMongo_vs140.vcxproj.filters delete mode 100644 MongoDB/samples/SQLToMongo/SQLToMongo_vs150.vcxproj delete mode 100644 MongoDB/samples/SQLToMongo/SQLToMongo_vs150.vcxproj.filters delete mode 100644 MongoDB/samples/samples_vs140.sln delete mode 100644 MongoDB/samples/samples_vs150.sln delete mode 100644 MongoDB/testsuite/TestSuite_vs140.vcxproj delete mode 100644 MongoDB/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 MongoDB/testsuite/TestSuite_vs150.vcxproj delete mode 100644 MongoDB/testsuite/TestSuite_vs150.vcxproj.filters delete mode 100644 Net/Net_vs140.sln delete mode 100644 Net/Net_vs140.vcxproj delete mode 100644 Net/Net_vs140.vcxproj.filters delete mode 100644 Net/Net_vs150.sln delete mode 100644 Net/Net_vs150.vcxproj delete mode 100644 Net/Net_vs150.vcxproj.filters delete mode 100644 Net/samples/EchoServer/EchoServer_vs140.vcxproj delete mode 100644 Net/samples/EchoServer/EchoServer_vs140.vcxproj.filters delete mode 100644 Net/samples/EchoServer/EchoServer_vs150.vcxproj delete mode 100644 Net/samples/EchoServer/EchoServer_vs150.vcxproj.filters delete mode 100644 Net/samples/HTTPFormServer/HTTPFormServer_vs140.vcxproj delete mode 100644 Net/samples/HTTPFormServer/HTTPFormServer_vs140.vcxproj.filters delete mode 100644 Net/samples/HTTPFormServer/HTTPFormServer_vs150.vcxproj delete mode 100644 Net/samples/HTTPFormServer/HTTPFormServer_vs150.vcxproj.filters delete mode 100644 Net/samples/HTTPLoadTest/HTTPLoadTest_vs140.vcxproj delete mode 100644 Net/samples/HTTPLoadTest/HTTPLoadTest_vs140.vcxproj.filters delete mode 100644 Net/samples/HTTPLoadTest/HTTPLoadTest_vs150.vcxproj delete mode 100644 Net/samples/HTTPLoadTest/HTTPLoadTest_vs150.vcxproj.filters delete mode 100644 Net/samples/HTTPTimeServer/HTTPTimeServer_vs140.vcxproj delete mode 100644 Net/samples/HTTPTimeServer/HTTPTimeServer_vs140.vcxproj.filters delete mode 100644 Net/samples/HTTPTimeServer/HTTPTimeServer_vs150.vcxproj delete mode 100644 Net/samples/HTTPTimeServer/HTTPTimeServer_vs150.vcxproj.filters delete mode 100644 Net/samples/Mail/Mail_vs140.vcxproj delete mode 100644 Net/samples/Mail/Mail_vs140.vcxproj.filters delete mode 100644 Net/samples/Mail/Mail_vs150.vcxproj delete mode 100644 Net/samples/Mail/Mail_vs150.vcxproj.filters delete mode 100644 Net/samples/Ping/Ping_vs140.vcxproj delete mode 100644 Net/samples/Ping/Ping_vs140.vcxproj.filters delete mode 100644 Net/samples/Ping/Ping_vs150.vcxproj delete mode 100644 Net/samples/Ping/Ping_vs150.vcxproj.filters delete mode 100644 Net/samples/SMTPLogger/SMTPLogger_vs140.vcxproj delete mode 100644 Net/samples/SMTPLogger/SMTPLogger_vs140.vcxproj.filters delete mode 100644 Net/samples/SMTPLogger/SMTPLogger_vs150.vcxproj delete mode 100644 Net/samples/SMTPLogger/SMTPLogger_vs150.vcxproj.filters delete mode 100644 Net/samples/TimeServer/TimeServer_vs140.vcxproj delete mode 100644 Net/samples/TimeServer/TimeServer_vs140.vcxproj.filters delete mode 100644 Net/samples/TimeServer/TimeServer_vs150.vcxproj delete mode 100644 Net/samples/TimeServer/TimeServer_vs150.vcxproj.filters delete mode 100644 Net/samples/WebSocketServer/WebSocketServer_vs140.vcxproj delete mode 100644 Net/samples/WebSocketServer/WebSocketServer_vs140.vcxproj.filters delete mode 100644 Net/samples/WebSocketServer/WebSocketServer_vs150.vcxproj delete mode 100644 Net/samples/WebSocketServer/WebSocketServer_vs150.vcxproj.filters delete mode 100644 Net/samples/dict/dict_vs140.vcxproj delete mode 100644 Net/samples/dict/dict_vs140.vcxproj.filters delete mode 100644 Net/samples/dict/dict_vs150.vcxproj delete mode 100644 Net/samples/dict/dict_vs150.vcxproj.filters delete mode 100644 Net/samples/download/download_vs140.vcxproj delete mode 100644 Net/samples/download/download_vs140.vcxproj.filters delete mode 100644 Net/samples/download/download_vs150.vcxproj delete mode 100644 Net/samples/download/download_vs150.vcxproj.filters delete mode 100644 Net/samples/httpget/httpget_vs140.vcxproj delete mode 100644 Net/samples/httpget/httpget_vs140.vcxproj.filters delete mode 100644 Net/samples/httpget/httpget_vs150.vcxproj delete mode 100644 Net/samples/httpget/httpget_vs150.vcxproj.filters delete mode 100644 Net/samples/ifconfig/ifconfig_vs140.vcxproj delete mode 100644 Net/samples/ifconfig/ifconfig_vs140.vcxproj.filters delete mode 100644 Net/samples/ifconfig/ifconfig_vs150.vcxproj delete mode 100644 Net/samples/ifconfig/ifconfig_vs150.vcxproj.filters delete mode 100644 Net/samples/samples_vs140.sln delete mode 100644 Net/samples/samples_vs150.sln delete mode 100644 Net/samples/tcpserver/tcpserver_vs140.vcxproj delete mode 100644 Net/samples/tcpserver/tcpserver_vs140.vcxproj.filters delete mode 100644 Net/samples/tcpserver/tcpserver_vs150.vcxproj delete mode 100644 Net/samples/tcpserver/tcpserver_vs150.vcxproj.filters delete mode 100644 Net/testsuite/TestSuite_vs140.vcxproj delete mode 100644 Net/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 Net/testsuite/TestSuite_vs150.vcxproj delete mode 100644 Net/testsuite/TestSuite_vs150.vcxproj.filters delete mode 100644 NetSSL_OpenSSL/NetSSL_OpenSSL_vs140.sln delete mode 100644 NetSSL_OpenSSL/NetSSL_OpenSSL_vs140.vcxproj delete mode 100644 NetSSL_OpenSSL/NetSSL_OpenSSL_vs140.vcxproj.filters delete mode 100644 NetSSL_OpenSSL/NetSSL_OpenSSL_vs150.sln delete mode 100644 NetSSL_OpenSSL/NetSSL_OpenSSL_vs150.vcxproj delete mode 100644 NetSSL_OpenSSL/NetSSL_OpenSSL_vs150.vcxproj.filters delete mode 100644 NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs140.vcxproj delete mode 100644 NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs140.vcxproj.filters delete mode 100644 NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs150.vcxproj delete mode 100644 NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs150.vcxproj.filters delete mode 100644 NetSSL_OpenSSL/samples/Mail/Mail_vs140.vcxproj delete mode 100644 NetSSL_OpenSSL/samples/Mail/Mail_vs140.vcxproj.filters delete mode 100644 NetSSL_OpenSSL/samples/Mail/Mail_vs150.vcxproj delete mode 100644 NetSSL_OpenSSL/samples/Mail/Mail_vs150.vcxproj.filters delete mode 100644 NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs140.vcxproj delete mode 100644 NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs140.vcxproj.filters delete mode 100644 NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs150.vcxproj delete mode 100644 NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs150.vcxproj.filters delete mode 100644 NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_x64_vs140.vcxproj delete mode 100644 NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_x64_vs140.vcxproj.filters delete mode 100644 NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_x64_vs150.vcxproj delete mode 100644 NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_x64_vs150.vcxproj.filters delete mode 100644 NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs140.vcxproj delete mode 100644 NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs140.vcxproj.filters delete mode 100644 NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs150.vcxproj delete mode 100644 NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs150.vcxproj.filters delete mode 100644 NetSSL_OpenSSL/samples/download/download_vs140.vcxproj delete mode 100644 NetSSL_OpenSSL/samples/download/download_vs140.vcxproj.filters delete mode 100644 NetSSL_OpenSSL/samples/download/download_vs150.vcxproj delete mode 100644 NetSSL_OpenSSL/samples/download/download_vs150.vcxproj.filters delete mode 100644 NetSSL_OpenSSL/samples/samples_vs140.sln delete mode 100644 NetSSL_OpenSSL/samples/samples_vs150.sln delete mode 100644 NetSSL_OpenSSL/testsuite/TestSuite_vs140.vcxproj delete mode 100644 NetSSL_OpenSSL/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 NetSSL_OpenSSL/testsuite/TestSuite_vs150.vcxproj delete mode 100644 NetSSL_OpenSSL/testsuite/TestSuite_vs150.vcxproj.filters delete mode 100644 NetSSL_Win/NetSSL_Win_vs140.sln delete mode 100644 NetSSL_Win/NetSSL_Win_vs140.vcxproj delete mode 100644 NetSSL_Win/NetSSL_Win_vs140.vcxproj.filters delete mode 100644 NetSSL_Win/NetSSL_Win_vs150.sln delete mode 100644 NetSSL_Win/NetSSL_Win_vs150.vcxproj delete mode 100644 NetSSL_Win/NetSSL_Win_vs150.vcxproj.filters delete mode 100644 NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs140.vcxproj delete mode 100644 NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs140.vcxproj.filters delete mode 100644 NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs150.vcxproj delete mode 100644 NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs150.vcxproj.filters delete mode 100644 NetSSL_Win/samples/Mail/Mail_vs140.vcxproj delete mode 100644 NetSSL_Win/samples/Mail/Mail_vs140.vcxproj.filters delete mode 100644 NetSSL_Win/samples/Mail/Mail_vs150.vcxproj delete mode 100644 NetSSL_Win/samples/Mail/Mail_vs150.vcxproj.filters delete mode 100644 NetSSL_Win/samples/download/download_vs140.vcxproj delete mode 100644 NetSSL_Win/samples/download/download_vs140.vcxproj.filters delete mode 100644 NetSSL_Win/samples/download/download_vs150.vcxproj delete mode 100644 NetSSL_Win/samples/download/download_vs150.vcxproj.filters delete mode 100644 NetSSL_Win/samples/samples_vs140.sln delete mode 100644 NetSSL_Win/samples/samples_vs150.sln delete mode 100644 NetSSL_Win/testsuite/TestSuite_vs140.vcxproj delete mode 100644 NetSSL_Win/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 NetSSL_Win/testsuite/TestSuite_vs150.vcxproj delete mode 100644 NetSSL_Win/testsuite/TestSuite_vs150.vcxproj.filters delete mode 100644 PDF/PDF_vs140.sln delete mode 100644 PDF/PDF_vs140.vcxproj delete mode 100644 PDF/PDF_vs140.vcxproj.filters delete mode 100644 PDF/PDF_vs150.sln delete mode 100644 PDF/PDF_vs150.vcxproj delete mode 100644 PDF/PDF_vs150.vcxproj.filters delete mode 100644 PDF/samples/Image/Image_vs140.vcxproj delete mode 100644 PDF/samples/Image/Image_vs140.vcxproj.filters delete mode 100644 PDF/samples/Image/Image_vs150.vcxproj delete mode 100644 PDF/samples/Image/Image_vs150.vcxproj.filters delete mode 100644 PDF/samples/Template/Template_vs140.sln delete mode 100644 PDF/samples/Template/Template_vs140.vcxproj delete mode 100644 PDF/samples/Template/Template_vs140.vcxproj.filters delete mode 100644 PDF/samples/Template/Template_vs150.vcxproj delete mode 100644 PDF/samples/Template/Template_vs150.vcxproj.filters delete mode 100644 PDF/samples/Text/Text_vs140.vcxproj delete mode 100644 PDF/samples/Text/Text_vs140.vcxproj.filters delete mode 100644 PDF/samples/Text/Text_vs150.vcxproj delete mode 100644 PDF/samples/Text/Text_vs150.vcxproj.filters delete mode 100644 PDF/samples/samples_vs140.sln delete mode 100644 PDF/samples/samples_vs150.sln delete mode 100644 PDF/testsuite/TestSuite_vs140.vcxproj delete mode 100644 PDF/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 PDF/testsuite/TestSuite_vs150.vcxproj delete mode 100644 PDF/testsuite/TestSuite_vs150.vcxproj.filters delete mode 100644 PageCompiler/File2Page/File2Page_vs140.sln delete mode 100644 PageCompiler/File2Page/File2Page_vs140.vcxproj delete mode 100644 PageCompiler/File2Page/File2Page_vs140.vcxproj.filters delete mode 100644 PageCompiler/File2Page/File2Page_vs150.sln delete mode 100644 PageCompiler/File2Page/File2Page_vs150.vcxproj delete mode 100644 PageCompiler/File2Page/File2Page_vs150.vcxproj.filters delete mode 100644 PageCompiler/PageCompiler_vs140.sln delete mode 100644 PageCompiler/PageCompiler_vs140.vcxproj delete mode 100644 PageCompiler/PageCompiler_vs140.vcxproj.filters delete mode 100644 PageCompiler/PageCompiler_vs150.sln delete mode 100644 PageCompiler/PageCompiler_vs150.vcxproj delete mode 100644 PageCompiler/PageCompiler_vs150.vcxproj.filters delete mode 100644 PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs140.vcxproj delete mode 100644 PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs140.vcxproj.filters delete mode 100644 PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs150.vcxproj delete mode 100644 PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs150.vcxproj.filters delete mode 100644 PageCompiler/samples/samples_vs140.sln delete mode 100644 PageCompiler/samples/samples_vs150.sln delete mode 100644 PocoDoc/PocoDoc_vs140.sln delete mode 100644 PocoDoc/PocoDoc_vs140.vcxproj delete mode 100644 PocoDoc/PocoDoc_vs140.vcxproj.filters delete mode 100644 PocoDoc/PocoDoc_vs150.sln delete mode 100644 PocoDoc/PocoDoc_vs150.vcxproj delete mode 100644 PocoDoc/PocoDoc_vs150.vcxproj.filters delete mode 100644 ProGen/ProGen_vs140.sln delete mode 100644 ProGen/ProGen_vs140.vcxproj delete mode 100644 ProGen/ProGen_vs140.vcxproj.filters delete mode 100644 ProGen/ProGen_vs150.sln delete mode 100644 ProGen/ProGen_vs150.vcxproj delete mode 100644 ProGen/ProGen_vs150.vcxproj.filters delete mode 100644 Prometheus/Prometheus_vs140.sln delete mode 100644 Prometheus/Prometheus_vs140.vcxproj delete mode 100644 Prometheus/Prometheus_vs140.vcxproj.filters delete mode 100644 Prometheus/Prometheus_vs150.sln delete mode 100644 Prometheus/Prometheus_vs150.vcxproj delete mode 100644 Prometheus/Prometheus_vs150.vcxproj.filters delete mode 100644 Prometheus/samples/MetricsSample/MetricsSample_vs140.vcxproj delete mode 100644 Prometheus/samples/MetricsSample/MetricsSample_vs140.vcxproj.filters delete mode 100644 Prometheus/samples/MetricsSample/MetricsSample_vs150.vcxproj delete mode 100644 Prometheus/samples/MetricsSample/MetricsSample_vs150.vcxproj.filters delete mode 100644 Prometheus/samples/samples_vs140.sln delete mode 100644 Prometheus/samples/samples_vs150.sln delete mode 100644 Prometheus/testsuite/TestSuite_vs140.vcxproj delete mode 100644 Prometheus/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 Prometheus/testsuite/TestSuite_vs150.vcxproj delete mode 100644 Prometheus/testsuite/TestSuite_vs150.vcxproj.filters delete mode 100644 Redis/Redis_vs140.sln delete mode 100644 Redis/Redis_vs140.vcxproj delete mode 100644 Redis/Redis_vs140.vcxproj.filters delete mode 100644 Redis/Redis_vs150.sln delete mode 100644 Redis/Redis_vs150.vcxproj delete mode 100644 Redis/Redis_vs150.vcxproj.filters delete mode 100644 Redis/testsuite/TestSuite_vs140.vcxproj delete mode 100644 Redis/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 Redis/testsuite/TestSuite_vs150.vcxproj delete mode 100644 Redis/testsuite/TestSuite_vs150.vcxproj.filters delete mode 100644 SevenZip/SevenZip_vs140.sln delete mode 100644 SevenZip/SevenZip_vs140.vcxproj delete mode 100644 SevenZip/SevenZip_vs140.vcxproj.filters delete mode 100644 SevenZip/SevenZip_vs150.sln delete mode 100644 SevenZip/SevenZip_vs150.vcxproj delete mode 100644 SevenZip/SevenZip_vs150.vcxproj.filters delete mode 100644 SevenZip/samples/samples_vs140.sln delete mode 100644 SevenZip/samples/samples_vs150.sln delete mode 100644 SevenZip/samples/un7zip/un7zip_vs140.vcxproj delete mode 100644 SevenZip/samples/un7zip/un7zip_vs140.vcxproj.filters delete mode 100644 SevenZip/samples/un7zip/un7zip_vs150.vcxproj delete mode 100644 SevenZip/samples/un7zip/un7zip_vs150.vcxproj.filters delete mode 100644 Util/Util_vs140.sln delete mode 100644 Util/Util_vs140.vcxproj delete mode 100644 Util/Util_vs140.vcxproj.filters delete mode 100644 Util/Util_vs150.sln delete mode 100644 Util/Util_vs150.vcxproj delete mode 100644 Util/Util_vs150.vcxproj.filters delete mode 100644 Util/samples/SampleApp/SampleApp_vs140.vcxproj delete mode 100644 Util/samples/SampleApp/SampleApp_vs140.vcxproj.filters delete mode 100644 Util/samples/SampleApp/SampleApp_vs150.vcxproj delete mode 100644 Util/samples/SampleApp/SampleApp_vs150.vcxproj.filters delete mode 100644 Util/samples/SampleServer/SampleServer_vs140.vcxproj delete mode 100644 Util/samples/SampleServer/SampleServer_vs140.vcxproj.filters delete mode 100644 Util/samples/SampleServer/SampleServer_vs150.vcxproj delete mode 100644 Util/samples/SampleServer/SampleServer_vs150.vcxproj.filters delete mode 100644 Util/samples/Units/Units_vs140.vcxproj delete mode 100644 Util/samples/Units/Units_vs140.vcxproj.filters delete mode 100644 Util/samples/Units/Units_vs150.vcxproj delete mode 100644 Util/samples/Units/Units_vs150.vcxproj.filters delete mode 100644 Util/samples/pkill/pkill_vs140.vcxproj delete mode 100644 Util/samples/pkill/pkill_vs140.vcxproj.filters delete mode 100644 Util/samples/pkill/pkill_vs150.vcxproj delete mode 100644 Util/samples/pkill/pkill_vs150.vcxproj.filters delete mode 100644 Util/samples/samples_vs140.sln delete mode 100644 Util/samples/samples_vs150.sln delete mode 100644 Util/testsuite/TestSuite_vs140.vcxproj delete mode 100644 Util/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 Util/testsuite/TestSuite_vs150.vcxproj delete mode 100644 Util/testsuite/TestSuite_vs150.vcxproj.filters delete mode 100644 XML/XML_vs140.sln delete mode 100644 XML/XML_vs140.vcxproj delete mode 100644 XML/XML_vs140.vcxproj.filters delete mode 100644 XML/XML_vs150.sln delete mode 100644 XML/XML_vs150.vcxproj delete mode 100644 XML/XML_vs150.vcxproj.filters delete mode 100644 XML/samples/DOMParser/DOMParser_vs140.vcxproj delete mode 100644 XML/samples/DOMParser/DOMParser_vs140.vcxproj.filters delete mode 100644 XML/samples/DOMParser/DOMParser_vs150.vcxproj delete mode 100644 XML/samples/DOMParser/DOMParser_vs150.vcxproj.filters delete mode 100644 XML/samples/DOMWriter/DOMWriter_vs140.vcxproj delete mode 100644 XML/samples/DOMWriter/DOMWriter_vs140.vcxproj.filters delete mode 100644 XML/samples/DOMWriter/DOMWriter_vs150.vcxproj delete mode 100644 XML/samples/DOMWriter/DOMWriter_vs150.vcxproj.filters delete mode 100644 XML/samples/PrettyPrint/PrettyPrint_vs140.vcxproj delete mode 100644 XML/samples/PrettyPrint/PrettyPrint_vs140.vcxproj.filters delete mode 100644 XML/samples/PrettyPrint/PrettyPrint_vs150.vcxproj delete mode 100644 XML/samples/PrettyPrint/PrettyPrint_vs150.vcxproj.filters delete mode 100644 XML/samples/SAXParser/SAXParser_vs140.vcxproj delete mode 100644 XML/samples/SAXParser/SAXParser_vs140.vcxproj.filters delete mode 100644 XML/samples/SAXParser/SAXParser_vs150.vcxproj delete mode 100644 XML/samples/SAXParser/SAXParser_vs150.vcxproj.filters delete mode 100644 XML/samples/samples_vs140.sln delete mode 100644 XML/samples/samples_vs150.sln delete mode 100644 XML/testsuite/TestSuite_vs140.vcxproj delete mode 100644 XML/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 XML/testsuite/TestSuite_vs150.vcxproj delete mode 100644 XML/testsuite/TestSuite_vs150.vcxproj.filters delete mode 100644 Zip/Zip_vs140.sln delete mode 100644 Zip/Zip_vs140.vcxproj delete mode 100644 Zip/Zip_vs140.vcxproj.filters delete mode 100644 Zip/Zip_vs150.sln delete mode 100644 Zip/Zip_vs150.vcxproj delete mode 100644 Zip/Zip_vs150.vcxproj.filters delete mode 100644 Zip/samples/samples_vs140.sln delete mode 100644 Zip/samples/samples_vs150.sln delete mode 100644 Zip/samples/unzip/unzip_vs140.vcxproj delete mode 100644 Zip/samples/unzip/unzip_vs140.vcxproj.filters delete mode 100644 Zip/samples/unzip/unzip_vs150.vcxproj delete mode 100644 Zip/samples/unzip/unzip_vs150.vcxproj.filters delete mode 100644 Zip/samples/zip/zip_vs140.vcxproj delete mode 100644 Zip/samples/zip/zip_vs140.vcxproj.filters delete mode 100644 Zip/samples/zip/zip_vs150.vcxproj delete mode 100644 Zip/samples/zip/zip_vs150.vcxproj.filters delete mode 100644 Zip/testsuite/TestSuite_vs140.vcxproj delete mode 100644 Zip/testsuite/TestSuite_vs140.vcxproj.filters delete mode 100644 Zip/testsuite/TestSuite_vs150.vcxproj delete mode 100644 Zip/testsuite/TestSuite_vs150.vcxproj.filters diff --git a/ActiveRecord/ActiveRecord_vs140.sln b/ActiveRecord/ActiveRecord_vs140.sln deleted file mode 100644 index 2d4175952..000000000 --- a/ActiveRecord/ActiveRecord_vs140.sln +++ /dev/null @@ -1,144 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ActiveRecord", "ActiveRecord_vs140.vcxproj", "{CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{16B8C4E7-6F29-4910-9350-848730F9EF77}" - ProjectSection(ProjectDependencies) = postProject - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E} = {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Compiler", "Compiler\Compiler_vs140.vcxproj", "{84DD1CB5-4735-478A-B48E-5E4858F0E831}" - ProjectSection(ProjectDependencies) = postProject - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E} = {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E} - {16B8C4E7-6F29-4910-9350-848730F9EF77} = {16B8C4E7-6F29-4910-9350-848730F9EF77} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_shared|Win32.Build.0 = release_shared|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_shared|x64.Build.0 = debug_shared|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_shared|x64.ActiveCfg = release_shared|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_shared|x64.Build.0 = release_shared|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_shared|x64.Deploy.0 = release_shared|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_md|x64.Build.0 = release_static_md|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_shared|Win32.Build.0 = release_shared|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_shared|x64.Build.0 = debug_shared|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_shared|x64.ActiveCfg = release_shared|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_shared|x64.Build.0 = release_shared|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_shared|x64.Deploy.0 = release_shared|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_md|x64.Build.0 = release_static_md|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|Win32.Build.0 = release_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|x64.Build.0 = debug_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|x64.ActiveCfg = release_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|x64.Build.0 = release_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|x64.Deploy.0 = release_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|x64.Build.0 = release_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/ActiveRecord/ActiveRecord_vs140.vcxproj b/ActiveRecord/ActiveRecord_vs140.vcxproj deleted file mode 100644 index eb1d1e32e..000000000 --- a/ActiveRecord/ActiveRecord_vs140.vcxproj +++ /dev/null @@ -1,579 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - ActiveRecord - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E} - ActiveRecord - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoActiveRecordd - PocoActiveRecordmdd - PocoActiveRecordmtd - PocoActiveRecord - PocoActiveRecordmd - PocoActiveRecordmt - PocoActiveRecord64d - PocoActiveRecordmdd - PocoActiveRecordmtd - PocoActiveRecord64 - PocoActiveRecordmd - PocoActiveRecordmt - - - ..\bin\ - obj\ActiveRecord\$(Configuration)\ - true - - - ..\bin\ - obj\ActiveRecord\$(Configuration)\ - false - - - ..\lib\ - obj\ActiveRecord\$(Configuration)\ - - - ..\lib\ - obj\ActiveRecord\$(Configuration)\ - - - ..\lib\ - obj\ActiveRecord\$(Configuration)\ - - - ..\lib\ - obj\ActiveRecord\$(Configuration)\ - - - ..\bin64\ - obj64\ActiveRecord\$(Configuration)\ - true - - - ..\bin64\ - obj64\ActiveRecord\$(Configuration)\ - false - - - ..\lib64\ - obj64\ActiveRecord\$(Configuration)\ - - - ..\lib64\ - obj64\ActiveRecord\$(Configuration)\ - - - ..\lib64\ - obj64\ActiveRecord\$(Configuration)\ - - - ..\lib64\ - obj64\ActiveRecord\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoActiveRecordd.dll - true - true - ..\bin\PocoActiveRecordd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoActiveRecordd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoActiveRecord.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoActiveRecord.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoActiveRecordmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoActiveRecordmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoActiveRecordmt.lib - - - - - Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoActiveRecordmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoActiveRecordmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoActiveRecordmd.pdb - Level3 - - Default - true - - - ..\lib\PocoActiveRecordmd.lib - - - - - Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoActiveRecord64d.dll - true - true - ..\bin64\PocoActiveRecord64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoActiveRecordd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoActiveRecord64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoActiveRecord.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoActiveRecordmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoActiveRecordmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoActiveRecordmt.lib - - - - - Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoActiveRecordmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoActiveRecordmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoActiveRecordmd.lib - - - - - - - - - - - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/ActiveRecord/ActiveRecord_vs140.vcxproj.filters b/ActiveRecord/ActiveRecord_vs140.vcxproj.filters deleted file mode 100644 index 77aa7675c..000000000 --- a/ActiveRecord/ActiveRecord_vs140.vcxproj.filters +++ /dev/null @@ -1,51 +0,0 @@ - - - - - {a2961e06-9534-4945-9e33-934994da5c47} - - - {a04c32cc-eb8e-4257-a1fc-abdceac6ef39} - - - {2c6e1f7c-78bd-4a1a-8c85-581b5684a1ee} - - - - - ActiveRecord\Header Files - - - ActiveRecord\Header Files - - - ActiveRecord\Header Files - - - ActiveRecord\Header Files - - - ActiveRecord\Header Files - - - ActiveRecord\Header Files - - - - - ActiveRecord\Source Files - - - ActiveRecord\Source Files - - - ActiveRecord\Source Files - - - ActiveRecord\Source Files - - - - - - \ No newline at end of file diff --git a/ActiveRecord/ActiveRecord_vs150.sln b/ActiveRecord/ActiveRecord_vs150.sln deleted file mode 100644 index 65b27a14e..000000000 --- a/ActiveRecord/ActiveRecord_vs150.sln +++ /dev/null @@ -1,144 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ActiveRecord", "ActiveRecord_vs150.vcxproj", "{CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{16B8C4E7-6F29-4910-9350-848730F9EF77}" - ProjectSection(ProjectDependencies) = postProject - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E} = {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Compiler", "Compiler\Compiler_vs150.vcxproj", "{84DD1CB5-4735-478A-B48E-5E4858F0E831}" - ProjectSection(ProjectDependencies) = postProject - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E} = {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E} - {16B8C4E7-6F29-4910-9350-848730F9EF77} = {16B8C4E7-6F29-4910-9350-848730F9EF77} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_shared|Win32.Build.0 = release_shared|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_shared|x64.Build.0 = debug_shared|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_shared|x64.ActiveCfg = release_shared|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_shared|x64.Build.0 = release_shared|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_shared|x64.Deploy.0 = release_shared|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_md|x64.Build.0 = release_static_md|x64 - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_shared|Win32.Build.0 = release_shared|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_shared|x64.Build.0 = debug_shared|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_shared|x64.ActiveCfg = release_shared|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_shared|x64.Build.0 = release_shared|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_shared|x64.Deploy.0 = release_shared|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_md|x64.Build.0 = release_static_md|x64 - {16B8C4E7-6F29-4910-9350-848730F9EF77}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|Win32.Build.0 = release_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|x64.Build.0 = debug_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|x64.ActiveCfg = release_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|x64.Build.0 = release_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|x64.Deploy.0 = release_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|x64.Build.0 = release_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/ActiveRecord/ActiveRecord_vs150.vcxproj b/ActiveRecord/ActiveRecord_vs150.vcxproj deleted file mode 100644 index e548fa0ce..000000000 --- a/ActiveRecord/ActiveRecord_vs150.vcxproj +++ /dev/null @@ -1,579 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - ActiveRecord - {CCC0A578-E065-4CBA-BB8D-F02BB2C24E7E} - ActiveRecord - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoActiveRecordd - PocoActiveRecordmdd - PocoActiveRecordmtd - PocoActiveRecord - PocoActiveRecordmd - PocoActiveRecordmt - PocoActiveRecord64d - PocoActiveRecordmdd - PocoActiveRecordmtd - PocoActiveRecord64 - PocoActiveRecordmd - PocoActiveRecordmt - - - ..\bin\ - obj\ActiveRecord\$(Configuration)\ - true - - - ..\bin\ - obj\ActiveRecord\$(Configuration)\ - false - - - ..\lib\ - obj\ActiveRecord\$(Configuration)\ - - - ..\lib\ - obj\ActiveRecord\$(Configuration)\ - - - ..\lib\ - obj\ActiveRecord\$(Configuration)\ - - - ..\lib\ - obj\ActiveRecord\$(Configuration)\ - - - ..\bin64\ - obj64\ActiveRecord\$(Configuration)\ - true - - - ..\bin64\ - obj64\ActiveRecord\$(Configuration)\ - false - - - ..\lib64\ - obj64\ActiveRecord\$(Configuration)\ - - - ..\lib64\ - obj64\ActiveRecord\$(Configuration)\ - - - ..\lib64\ - obj64\ActiveRecord\$(Configuration)\ - - - ..\lib64\ - obj64\ActiveRecord\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoActiveRecordd.dll - true - true - ..\bin\PocoActiveRecordd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoActiveRecordd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoActiveRecord.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoActiveRecord.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoActiveRecordmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoActiveRecordmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoActiveRecordmt.lib - - - - - Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoActiveRecordmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoActiveRecordmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoActiveRecordmd.pdb - Level3 - - Default - true - - - ..\lib\PocoActiveRecordmd.lib - - - - - Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoActiveRecord64d.dll - true - true - ..\bin64\PocoActiveRecord64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoActiveRecordd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoActiveRecord64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoActiveRecord.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoActiveRecordmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoActiveRecordmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoActiveRecordmt.lib - - - - - Disabled - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoActiveRecordmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoActiveRecordmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoActiveRecordmd.lib - - - - - - - - - - - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/ActiveRecord/ActiveRecord_vs150.vcxproj.filters b/ActiveRecord/ActiveRecord_vs150.vcxproj.filters deleted file mode 100644 index f26a5395b..000000000 --- a/ActiveRecord/ActiveRecord_vs150.vcxproj.filters +++ /dev/null @@ -1,51 +0,0 @@ - - - - - {a4ef5b7c-1517-45e6-8856-e9a6c0a9193c} - - - {28638692-307b-4c80-9fed-23bcf87f7cc1} - - - {0b612e41-e6c4-48fa-9e02-ba01ee09fb19} - - - - - ActiveRecord\Header Files - - - ActiveRecord\Header Files - - - ActiveRecord\Header Files - - - ActiveRecord\Header Files - - - ActiveRecord\Header Files - - - ActiveRecord\Header Files - - - - - ActiveRecord\Source Files - - - ActiveRecord\Source Files - - - ActiveRecord\Source Files - - - ActiveRecord\Source Files - - - - - - \ No newline at end of file diff --git a/ActiveRecord/Compiler/Compiler_vs140.sln b/ActiveRecord/Compiler/Compiler_vs140.sln deleted file mode 100644 index 7eabb3a36..000000000 --- a/ActiveRecord/Compiler/Compiler_vs140.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Compiler", "Compiler_vs140.vcxproj", "{84DD1CB5-4735-478A-B48E-5E4858F0E831}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|Win32.Build.0 = release_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|x64.Build.0 = debug_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|x64.ActiveCfg = release_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|x64.Build.0 = release_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|x64.Deploy.0 = release_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|x64.Build.0 = release_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/ActiveRecord/Compiler/Compiler_vs140.vcxproj b/ActiveRecord/Compiler/Compiler_vs140.vcxproj deleted file mode 100644 index d136092fb..000000000 --- a/ActiveRecord/Compiler/Compiler_vs140.vcxproj +++ /dev/null @@ -1,622 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Compiler - {84DD1CB5-4735-478A-B48E-5E4858F0E831} - Compiler - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>16.0.33423.256 - poco-arcd - poco-arcd - poco-arcd - poco-arc - poco-arc - poco-arc - poco-arcd - poco-arcd - poco-arcd - poco-arc - poco-arc - poco-arc - - - bin\ - obj\Compiler\$(Configuration)\ - true - - - bin\ - obj\Compiler\$(Configuration)\ - false - - - bin\static_mt\ - obj\Compiler\$(Configuration)\ - true - - - bin\static_mt\ - obj\Compiler\$(Configuration)\ - false - - - bin\static_md\ - obj\Compiler\$(Configuration)\ - true - - - bin\static_md\ - obj\Compiler\$(Configuration)\ - false - - - bin64\ - obj64\Compiler\$(Configuration)\ - true - - - bin64\ - obj64\Compiler\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Compiler\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Compiler\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Compiler\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Compiler\$(Configuration)\ - false - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin\poco-arcd.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\poco-arcd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin\poco-arc.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\poco-arcd.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\poco-arcd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\poco-arc.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\poco-arcd.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\poco-arcd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\poco-arc.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin64\poco-arcd.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\poco-arcd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin64\poco-arc.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\poco-arcd.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\poco-arcd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\poco-arc.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\poco-arcd.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\poco-arcd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\poco-arc.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - - diff --git a/ActiveRecord/Compiler/Compiler_vs140.vcxproj.filters b/ActiveRecord/Compiler/Compiler_vs140.vcxproj.filters deleted file mode 100644 index 63101001d..000000000 --- a/ActiveRecord/Compiler/Compiler_vs140.vcxproj.filters +++ /dev/null @@ -1,45 +0,0 @@ - - - - - {85e35b21-0c66-4cff-acd5-ff2022495503} - - - {7873f73f-ccd9-4e23-b14b-89fb407d3116} - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/ActiveRecord/Compiler/Compiler_vs150.sln b/ActiveRecord/Compiler/Compiler_vs150.sln deleted file mode 100644 index e5c2bacb4..000000000 --- a/ActiveRecord/Compiler/Compiler_vs150.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Compiler", "Compiler_vs150.vcxproj", "{84DD1CB5-4735-478A-B48E-5E4858F0E831}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|Win32.Build.0 = release_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|x64.Build.0 = debug_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|x64.ActiveCfg = release_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|x64.Build.0 = release_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_shared|x64.Deploy.0 = release_shared|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|x64.Build.0 = release_static_md|x64 - {84DD1CB5-4735-478A-B48E-5E4858F0E831}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/ActiveRecord/Compiler/Compiler_vs150.vcxproj b/ActiveRecord/Compiler/Compiler_vs150.vcxproj deleted file mode 100644 index 260c2630d..000000000 --- a/ActiveRecord/Compiler/Compiler_vs150.vcxproj +++ /dev/null @@ -1,622 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Compiler - {84DD1CB5-4735-478A-B48E-5E4858F0E831} - Compiler - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>16.0.33423.256 - poco-arcd - poco-arcd - poco-arcd - poco-arc - poco-arc - poco-arc - poco-arcd - poco-arcd - poco-arcd - poco-arc - poco-arc - poco-arc - - - bin\ - obj\Compiler\$(Configuration)\ - true - - - bin\ - obj\Compiler\$(Configuration)\ - false - - - bin\static_mt\ - obj\Compiler\$(Configuration)\ - true - - - bin\static_mt\ - obj\Compiler\$(Configuration)\ - false - - - bin\static_md\ - obj\Compiler\$(Configuration)\ - true - - - bin\static_md\ - obj\Compiler\$(Configuration)\ - false - - - bin64\ - obj64\Compiler\$(Configuration)\ - true - - - bin64\ - obj64\Compiler\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Compiler\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Compiler\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Compiler\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Compiler\$(Configuration)\ - false - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin\poco-arcd.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\poco-arcd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin\poco-arc.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\poco-arcd.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\poco-arcd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\poco-arc.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\poco-arcd.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\poco-arcd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\poco-arc.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin64\poco-arcd.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\poco-arcd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin64\poco-arc.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\poco-arcd.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\poco-arcd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\poco-arc.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\poco-arcd.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\poco-arcd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\poco-arc.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - - diff --git a/ActiveRecord/Compiler/Compiler_vs150.vcxproj.filters b/ActiveRecord/Compiler/Compiler_vs150.vcxproj.filters deleted file mode 100644 index c912eefe5..000000000 --- a/ActiveRecord/Compiler/Compiler_vs150.vcxproj.filters +++ /dev/null @@ -1,45 +0,0 @@ - - - - - {987b75b8-6246-42f9-b155-cc32a6201bb4} - - - {09eeb624-d912-42fb-ba95-65592c67594f} - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/ActiveRecord/testsuite/TestSuite_vs140.vcxproj b/ActiveRecord/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index c000af47a..000000000 --- a/ActiveRecord/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,625 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {16B8C4E7-6F29-4910-9350-848730F9EF77} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - diff --git a/ActiveRecord/testsuite/TestSuite_vs140.vcxproj.filters b/ActiveRecord/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index b483087a7..000000000 --- a/ActiveRecord/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,48 +0,0 @@ - - - - - {58a9f709-3035-40b0-ab19-dac59d5b2ded} - - - {6a28d0c2-93b3-461e-acff-19258bb930f0} - - - {d0927c7c-75d9-409c-868d-3a8723b3f6b6} - - - {a2a04b6d-1a26-47cb-9dbd-e866eae9a318} - - - - - Source Files - - - Source Files - - - Source Files - - - Generated Source Files - - - Generated Source Files - - - - - Header Files - - - Header Files - - - Generated Header Files - - - Generated Header Files - - - \ No newline at end of file diff --git a/ActiveRecord/testsuite/TestSuite_vs150.vcxproj b/ActiveRecord/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index 41acdb86b..000000000 --- a/ActiveRecord/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,625 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {16B8C4E7-6F29-4910-9350-848730F9EF77} - TestSuite - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - diff --git a/ActiveRecord/testsuite/TestSuite_vs150.vcxproj.filters b/ActiveRecord/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index e74cbb2db..000000000 --- a/ActiveRecord/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,48 +0,0 @@ - - - - - {3dbc9d60-61e8-47e5-85f9-fd5e505964c7} - - - {c768e7cd-02a1-4c9a-b7f6-b6178daab5d0} - - - {41a53616-1df6-416e-b535-075105b526d1} - - - {39c57033-016a-4913-96cc-ebadabad2037} - - - - - Source Files - - - Source Files - - - Source Files - - - Generated Source Files - - - Generated Source Files - - - - - Header Files - - - Header Files - - - Generated Header Files - - - Generated Header Files - - - \ No newline at end of file diff --git a/ApacheConnector/ApacheConnector_vs140.sln b/ApacheConnector/ApacheConnector_vs140.sln deleted file mode 100644 index 741c17375..000000000 --- a/ApacheConnector/ApacheConnector_vs140.sln +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ApacheConnector", "ApacheConnector_vs140.vcxproj", "{9866EE28-0612-4746-BD35-3B15B0AF7267}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9866EE28-0612-4746-BD35-3B15B0AF7267}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.release_shared|Win32.Build.0 = release_shared|Win32 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.debug_shared|x64.Build.0 = debug_shared|x64 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.release_shared|x64.ActiveCfg = release_shared|x64 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.release_shared|x64.Build.0 = release_shared|x64 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.release_shared|x64.Deploy.0 = release_shared|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/ApacheConnector/ApacheConnector_vs140.vcxproj b/ApacheConnector/ApacheConnector_vs140.vcxproj deleted file mode 100644 index 99f8c1d2c..000000000 --- a/ApacheConnector/ApacheConnector_vs140.vcxproj +++ /dev/null @@ -1,252 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - - ApacheConnector - {9866EE28-0612-4746-BD35-3B15B0AF7267} - ApacheConnector - Win32Proj - - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - mod_pocod - mod_poco - mod_pocod - mod_poco - - - ..\bin\ - obj\ApacheConnector\$(Configuration)\ - true - - - ..\bin\ - obj\ApacheConnector\$(Configuration)\ - false - - - ..\bin64\ - obj64\ApacheConnector\$(Configuration)\ - true - - - ..\bin64\ - obj64\ApacheConnector\$(Configuration)\ - false - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;ApacheHandlers_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - ..\bin\mod_pocod.dll - true - true - ..\bin\mod_pocod.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\mod_pocod.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;ApacheHandlers_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - ..\bin\mod_poco.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\mod_poco.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;ApacheHandlers_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - ..\bin64\mod_poco64d.dll - true - true - ..\bin64\mod_poco64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\mod_pocod.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;ApacheHandlers_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - ..\bin64\mod_poco64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\mod_poco.lib - MachineX64 - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/ApacheConnector/ApacheConnector_vs140.vcxproj.filters b/ApacheConnector/ApacheConnector_vs140.vcxproj.filters deleted file mode 100644 index 352d96d5c..000000000 --- a/ApacheConnector/ApacheConnector_vs140.vcxproj.filters +++ /dev/null @@ -1,57 +0,0 @@ - - - - - {419721b6-82b6-4fbd-9374-ef113ad9af72} - - - {3646e19a-54e9-4d20-8dc8-713beed72f4d} - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - \ No newline at end of file diff --git a/ApacheConnector/ApacheConnector_vs150.sln b/ApacheConnector/ApacheConnector_vs150.sln deleted file mode 100644 index be62c8d67..000000000 --- a/ApacheConnector/ApacheConnector_vs150.sln +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ApacheConnector", "ApacheConnector_vs150.vcxproj", "{9866EE28-0612-4746-BD35-3B15B0AF7267}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9866EE28-0612-4746-BD35-3B15B0AF7267}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.release_shared|Win32.Build.0 = release_shared|Win32 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.debug_shared|x64.Build.0 = debug_shared|x64 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.release_shared|x64.ActiveCfg = release_shared|x64 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.release_shared|x64.Build.0 = release_shared|x64 - {9866EE28-0612-4746-BD35-3B15B0AF7267}.release_shared|x64.Deploy.0 = release_shared|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/ApacheConnector/ApacheConnector_vs150.vcxproj b/ApacheConnector/ApacheConnector_vs150.vcxproj deleted file mode 100644 index b19f522be..000000000 --- a/ApacheConnector/ApacheConnector_vs150.vcxproj +++ /dev/null @@ -1,252 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - - ApacheConnector - {9866EE28-0612-4746-BD35-3B15B0AF7267} - ApacheConnector - Win32Proj - - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - mod_pocod - mod_poco - mod_pocod - mod_poco - - - ..\bin\ - obj\ApacheConnector\$(Configuration)\ - true - - - ..\bin\ - obj\ApacheConnector\$(Configuration)\ - false - - - ..\bin64\ - obj64\ApacheConnector\$(Configuration)\ - true - - - ..\bin64\ - obj64\ApacheConnector\$(Configuration)\ - false - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;ApacheHandlers_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - ..\bin\mod_pocod.dll - true - true - ..\bin\mod_pocod.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\mod_pocod.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;ApacheHandlers_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - ..\bin\mod_poco.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\mod_poco.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;ApacheHandlers_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - ..\bin64\mod_poco64d.dll - true - true - ..\bin64\mod_poco64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\mod_pocod.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;ApacheHandlers_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - ..\bin64\mod_poco64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\mod_poco.lib - MachineX64 - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/ApacheConnector/ApacheConnector_vs150.vcxproj.filters b/ApacheConnector/ApacheConnector_vs150.vcxproj.filters deleted file mode 100644 index 26602f924..000000000 --- a/ApacheConnector/ApacheConnector_vs150.vcxproj.filters +++ /dev/null @@ -1,57 +0,0 @@ - - - - - {950fc61b-f928-41e6-9c33-00a1848c390a} - - - {802bb162-bac1-460e-a7c4-295cb5f0b0ac} - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - \ No newline at end of file diff --git a/ApacheConnector/samples/FormServer/FormServer_vs140.vcxproj b/ApacheConnector/samples/FormServer/FormServer_vs140.vcxproj deleted file mode 100644 index cbdfe58d0..000000000 --- a/ApacheConnector/samples/FormServer/FormServer_vs140.vcxproj +++ /dev/null @@ -1,219 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - - FormServer - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106} - FormServer - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - FormServerd - FormServer - FormServerd - FormServer - - - bin\ - obj\FormServer\$(Configuration)\ - true - - - bin\ - obj\FormServer\$(Configuration)\ - false - - - bin64\ - obj64\FormServer\$(Configuration)\ - true - - - bin64\ - obj64\FormServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - bin\FormServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\FormServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - bin\FormServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - bin64\FormServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\FormServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - bin64\FormServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/ApacheConnector/samples/FormServer/FormServer_vs140.vcxproj.filters b/ApacheConnector/samples/FormServer/FormServer_vs140.vcxproj.filters deleted file mode 100644 index b4f795f69..000000000 --- a/ApacheConnector/samples/FormServer/FormServer_vs140.vcxproj.filters +++ /dev/null @@ -1,17 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {912456ac-4dd9-43fd-8a5a-4a761d951d15} - - - - - Source Files - - - \ No newline at end of file diff --git a/ApacheConnector/samples/FormServer/FormServer_vs150.vcxproj b/ApacheConnector/samples/FormServer/FormServer_vs150.vcxproj deleted file mode 100644 index 7d3058e21..000000000 --- a/ApacheConnector/samples/FormServer/FormServer_vs150.vcxproj +++ /dev/null @@ -1,219 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - - FormServer - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106} - FormServer - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - FormServerd - FormServer - FormServerd - FormServer - - - bin\ - obj\FormServer\$(Configuration)\ - true - - - bin\ - obj\FormServer\$(Configuration)\ - false - - - bin64\ - obj64\FormServer\$(Configuration)\ - true - - - bin64\ - obj64\FormServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - bin\FormServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\FormServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - bin\FormServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - bin64\FormServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\FormServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - bin64\FormServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/ApacheConnector/samples/FormServer/FormServer_vs150.vcxproj.filters b/ApacheConnector/samples/FormServer/FormServer_vs150.vcxproj.filters deleted file mode 100644 index 25b7ab0f4..000000000 --- a/ApacheConnector/samples/FormServer/FormServer_vs150.vcxproj.filters +++ /dev/null @@ -1,17 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {061bb8fd-50ef-432a-abc9-b6afcec241b1} - - - - - Source Files - - - \ No newline at end of file diff --git a/ApacheConnector/samples/TimeServer/TimeServer_vs140.vcxproj b/ApacheConnector/samples/TimeServer/TimeServer_vs140.vcxproj deleted file mode 100644 index 35457b6de..000000000 --- a/ApacheConnector/samples/TimeServer/TimeServer_vs140.vcxproj +++ /dev/null @@ -1,219 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - - TimeServer - {59EDFD20-9968-30F7-9532-44C08DA58C6E} - TimeServer - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TimeServerd - TimeServer - TimeServerd - TimeServer - - - bin\ - obj\TimeServer\$(Configuration)\ - true - - - bin\ - obj\TimeServer\$(Configuration)\ - false - - - bin64\ - obj64\TimeServer\$(Configuration)\ - true - - - bin64\ - obj64\TimeServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - bin\TimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - bin\TimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - bin64\TimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - bin64\TimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/ApacheConnector/samples/TimeServer/TimeServer_vs140.vcxproj.filters b/ApacheConnector/samples/TimeServer/TimeServer_vs140.vcxproj.filters deleted file mode 100644 index a205835a8..000000000 --- a/ApacheConnector/samples/TimeServer/TimeServer_vs140.vcxproj.filters +++ /dev/null @@ -1,17 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {47b980b9-e38e-4855-9b09-25368faae55c} - - - - - Source Files - - - \ No newline at end of file diff --git a/ApacheConnector/samples/TimeServer/TimeServer_vs150.vcxproj b/ApacheConnector/samples/TimeServer/TimeServer_vs150.vcxproj deleted file mode 100644 index b5de06c19..000000000 --- a/ApacheConnector/samples/TimeServer/TimeServer_vs150.vcxproj +++ /dev/null @@ -1,219 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - - TimeServer - {59EDFD20-9968-30F7-9532-44C08DA58C6E} - TimeServer - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TimeServerd - TimeServer - TimeServerd - TimeServer - - - bin\ - obj\TimeServer\$(Configuration)\ - true - - - bin\ - obj\TimeServer\$(Configuration)\ - false - - - bin64\ - obj64\TimeServer\$(Configuration)\ - true - - - bin64\ - obj64\TimeServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - bin\TimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - bin\TimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - bin64\TimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - libapr-1.lib;libaprutil-1.lib;libhttpd.lib;%(AdditionalDependencies) - bin64\TimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/ApacheConnector/samples/TimeServer/TimeServer_vs150.vcxproj.filters b/ApacheConnector/samples/TimeServer/TimeServer_vs150.vcxproj.filters deleted file mode 100644 index 5dcd48ad5..000000000 --- a/ApacheConnector/samples/TimeServer/TimeServer_vs150.vcxproj.filters +++ /dev/null @@ -1,17 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {eb57c98c-5446-40b8-8441-6c0499720a88} - - - - - Source Files - - - \ No newline at end of file diff --git a/ApacheConnector/samples/samples_vs140.sln b/ApacheConnector/samples/samples_vs140.sln deleted file mode 100644 index a6db45318..000000000 --- a/ApacheConnector/samples/samples_vs140.sln +++ /dev/null @@ -1,43 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FormServer", "FormServer\FormServer_vs140.vcxproj", "{CD77A9BA-6E9B-39EF-801A-1C7E66B19106}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TimeServer", "TimeServer\TimeServer_vs140.vcxproj", "{59EDFD20-9968-30F7-9532-44C08DA58C6E}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.release_shared|Win32.Build.0 = release_shared|Win32 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.debug_shared|x64.Build.0 = debug_shared|x64 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.release_shared|x64.ActiveCfg = release_shared|x64 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.release_shared|x64.Build.0 = release_shared|x64 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.release_shared|x64.Deploy.0 = release_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.Build.0 = release_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.Build.0 = debug_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.ActiveCfg = release_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.Build.0 = release_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.Deploy.0 = release_shared|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/ApacheConnector/samples/samples_vs150.sln b/ApacheConnector/samples/samples_vs150.sln deleted file mode 100644 index 95b71bc7f..000000000 --- a/ApacheConnector/samples/samples_vs150.sln +++ /dev/null @@ -1,43 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FormServer", "FormServer\FormServer_vs150.vcxproj", "{CD77A9BA-6E9B-39EF-801A-1C7E66B19106}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TimeServer", "TimeServer\TimeServer_vs150.vcxproj", "{59EDFD20-9968-30F7-9532-44C08DA58C6E}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.release_shared|Win32.Build.0 = release_shared|Win32 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.debug_shared|x64.Build.0 = debug_shared|x64 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.release_shared|x64.ActiveCfg = release_shared|x64 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.release_shared|x64.Build.0 = release_shared|x64 - {CD77A9BA-6E9B-39EF-801A-1C7E66B19106}.release_shared|x64.Deploy.0 = release_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.Build.0 = release_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.Build.0 = debug_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.ActiveCfg = release_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.Build.0 = release_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.Deploy.0 = release_shared|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/CppParser/CppParser_vs140.sln b/CppParser/CppParser_vs140.sln deleted file mode 100644 index 21fb0fc83..000000000 --- a/CppParser/CppParser_vs140.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CppParser", "CppParser_vs140.vcxproj", "{C77B9D92-EC91-11DA-A4CE-005056C00008}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{C79112BD-EC91-11DA-A4CE-005056C00008}" - ProjectSection(ProjectDependencies) = postProject - {C77B9D92-EC91-11DA-A4CE-005056C00008} = {C77B9D92-EC91-11DA-A4CE-005056C00008} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_shared|Win32.Build.0 = release_shared|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_shared|x64.Build.0 = debug_shared|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_shared|x64.ActiveCfg = release_shared|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_shared|x64.Build.0 = release_shared|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_shared|x64.Deploy.0 = release_shared|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_md|x64.Build.0 = release_static_md|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_shared|Win32.Build.0 = release_shared|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_shared|x64.Build.0 = debug_shared|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_shared|x64.ActiveCfg = release_shared|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_shared|x64.Build.0 = release_shared|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_shared|x64.Deploy.0 = release_shared|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_md|x64.Build.0 = release_static_md|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/CppParser/CppParser_vs140.vcxproj b/CppParser/CppParser_vs140.vcxproj deleted file mode 100644 index e79bf8f45..000000000 --- a/CppParser/CppParser_vs140.vcxproj +++ /dev/null @@ -1,630 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - CppParser - {C77B9D92-EC91-11DA-A4CE-005056C00008} - CppParser - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoCppParserd - PocoCppParsermdd - PocoCppParsermtd - PocoCppParser - PocoCppParsermd - PocoCppParsermt - PocoCppParser64d - PocoCppParsermdd - PocoCppParsermtd - PocoCppParser64 - PocoCppParsermd - PocoCppParsermt - - - ..\bin\ - obj\CppParser\$(Configuration)\ - true - - - ..\bin\ - obj\CppParser\$(Configuration)\ - false - - - ..\lib\ - obj\CppParser\$(Configuration)\ - - - ..\lib\ - obj\CppParser\$(Configuration)\ - - - ..\lib\ - obj\CppParser\$(Configuration)\ - - - ..\lib\ - obj\CppParser\$(Configuration)\ - - - ..\bin64\ - obj64\CppParser\$(Configuration)\ - true - - - ..\bin64\ - obj64\CppParser\$(Configuration)\ - false - - - ..\lib64\ - obj64\CppParser\$(Configuration)\ - - - ..\lib64\ - obj64\CppParser\$(Configuration)\ - - - ..\lib64\ - obj64\CppParser\$(Configuration)\ - - - ..\lib64\ - obj64\CppParser\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;CppParser_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoCppParserd.dll - true - true - ..\bin\PocoCppParserd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoCppParserd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;CppParser_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoCppParser.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoCppParser.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoCppParsermtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoCppParsermtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoCppParsermt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoCppParsermdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoCppParsermdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoCppParsermd.pdb - Level3 - - Default - true - - - ..\lib\PocoCppParsermd.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;CppParser_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoCppParser64d.dll - true - true - ..\bin64\PocoCppParser64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoCppParserd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;CppParser_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoCppParser64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoCppParser.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoCppParsermtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoCppParsermtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoCppParsermt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoCppParsermdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoCppParsermdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoCppParsermd.lib - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/CppParser/CppParser_vs140.vcxproj.filters b/CppParser/CppParser_vs140.vcxproj.filters deleted file mode 100644 index 0c7dc4c14..000000000 --- a/CppParser/CppParser_vs140.vcxproj.filters +++ /dev/null @@ -1,144 +0,0 @@ - - - - - {feecc8db-2005-4073-9897-134f1a5d368a} - - - {3c5eba58-096c-4762-85a4-aaff4c2e8381} - - - {f14475b1-6e34-42e2-af85-c755f0403f00} - - - {dbdd5689-6624-4e94-8ebd-062e4a684ee9} - - - {d7f7e09b-4763-4c55-ad39-64cc1b503b0c} - - - {cfb18d98-526d-4fbb-914d-6173fe628512} - - - {708ccd1c-e0d9-4542-aedf-f66534174914} - - - {c6bd7ea6-a4e1-412b-b625-9ebcee5d8a0f} - - - {0773da68-de87-49ec-bd41-ad958eaccbd9} - - - - - CppParser\Header Files - - - CppParser\Header Files - - - CppParser\Header Files - - - CppParser\Header Files - - - CppParser\Header Files - - - Symbol Table\Header Files - - - Symbol Table\Header Files - - - Symbol Table\Header Files - - - Symbol Table\Header Files - - - Symbol Table\Header Files - - - Symbol Table\Header Files - - - Symbol Table\Header Files - - - Symbol Table\Header Files - - - Symbol Table\Header Files - - - Symbol Table\Header Files - - - Symbol Table\Header Files - - - Attributes\Header Files - - - Attributes\Header Files - - - - - CppParser\Source Files - - - CppParser\Source Files - - - CppParser\Source Files - - - CppParser\Source Files - - - Symbol Table\Source Files - - - Symbol Table\Source Files - - - Symbol Table\Source Files - - - Symbol Table\Source Files - - - Symbol Table\Source Files - - - Symbol Table\Source Files - - - Symbol Table\Source Files - - - Symbol Table\Source Files - - - Symbol Table\Source Files - - - Symbol Table\Source Files - - - Symbol Table\Source Files - - - Attributes\Source Files - - - Attributes\Source Files - - - - - - \ No newline at end of file diff --git a/CppParser/CppParser_vs150.sln b/CppParser/CppParser_vs150.sln deleted file mode 100644 index 4cae6b24d..000000000 --- a/CppParser/CppParser_vs150.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CppParser", "CppParser_vs150.vcxproj", "{C77B9D92-EC91-11DA-A4CE-005056C00008}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{C79112BD-EC91-11DA-A4CE-005056C00008}" - ProjectSection(ProjectDependencies) = postProject - {C77B9D92-EC91-11DA-A4CE-005056C00008} = {C77B9D92-EC91-11DA-A4CE-005056C00008} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_shared|Win32.Build.0 = release_shared|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_shared|x64.Build.0 = debug_shared|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_shared|x64.ActiveCfg = release_shared|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_shared|x64.Build.0 = release_shared|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_shared|x64.Deploy.0 = release_shared|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_md|x64.Build.0 = release_static_md|x64 - {C77B9D92-EC91-11DA-A4CE-005056C00008}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_shared|Win32.Build.0 = release_shared|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_shared|x64.Build.0 = debug_shared|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_shared|x64.ActiveCfg = release_shared|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_shared|x64.Build.0 = release_shared|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_shared|x64.Deploy.0 = release_shared|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_md|x64.Build.0 = release_static_md|x64 - {C79112BD-EC91-11DA-A4CE-005056C00008}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/CppParser/CppParser_vs150.vcxproj b/CppParser/CppParser_vs150.vcxproj deleted file mode 100644 index be83cb93d..000000000 --- a/CppParser/CppParser_vs150.vcxproj +++ /dev/null @@ -1,630 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - CppParser - {C77B9D92-EC91-11DA-A4CE-005056C00008} - CppParser - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PocoCppParserd - PocoCppParsermdd - PocoCppParsermtd - PocoCppParser - PocoCppParsermd - PocoCppParsermt - PocoCppParser64d - PocoCppParsermdd - PocoCppParsermtd - PocoCppParser64 - PocoCppParsermd - PocoCppParsermt - - - ..\bin\ - obj\CppParser\$(Configuration)\ - true - - - ..\bin\ - obj\CppParser\$(Configuration)\ - false - - - ..\lib\ - obj\CppParser\$(Configuration)\ - - - ..\lib\ - obj\CppParser\$(Configuration)\ - - - ..\lib\ - obj\CppParser\$(Configuration)\ - - - ..\lib\ - obj\CppParser\$(Configuration)\ - - - ..\bin64\ - obj64\CppParser\$(Configuration)\ - true - - - ..\bin64\ - obj64\CppParser\$(Configuration)\ - false - - - ..\lib64\ - obj64\CppParser\$(Configuration)\ - - - ..\lib64\ - obj64\CppParser\$(Configuration)\ - - - ..\lib64\ - obj64\CppParser\$(Configuration)\ - - - ..\lib64\ - obj64\CppParser\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;CppParser_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoCppParserd.dll - true - true - ..\bin\PocoCppParserd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoCppParserd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;CppParser_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoCppParser.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoCppParser.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoCppParsermtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoCppParsermtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoCppParsermt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoCppParsermdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoCppParsermdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoCppParsermd.pdb - Level3 - - Default - true - - - ..\lib\PocoCppParsermd.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;CppParser_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoCppParser64d.dll - true - true - ..\bin64\PocoCppParser64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoCppParserd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;CppParser_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoCppParser64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoCppParser.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoCppParsermtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoCppParsermtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoCppParsermt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoCppParsermdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoCppParsermdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoCppParsermd.lib - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/CppParser/CppParser_vs150.vcxproj.filters b/CppParser/CppParser_vs150.vcxproj.filters deleted file mode 100644 index 14d79b337..000000000 --- a/CppParser/CppParser_vs150.vcxproj.filters +++ /dev/null @@ -1,144 +0,0 @@ - - - - - {34afdcc5-7589-4311-b918-5f3f8de11bc0} - - - {c68e6a56-2efe-4efd-9862-6b64430084b3} - - - {7e21e304-8a49-41a5-a17a-5ecf0bd590dd} - - - {0581b55c-9a5b-4161-9210-2648933bbbb8} - - - {63eb5971-d4e8-40c5-918f-5fa3effca43f} - - - {26e0306e-b16f-4d63-8a98-bae3f3f6448a} - - - {5c198bd3-b0d3-44a1-a0d6-8f309c7b6e74} - - - {34b9aabd-5941-4246-9907-3ac21b1462a9} - - - {1eb42679-2a16-4bff-b2c2-c0dc2f29cdfe} - - - - - CppParser\Header Files - - - CppParser\Header Files - - - CppParser\Header Files - - - CppParser\Header Files - - - CppParser\Header Files - - - Symbol Table\Header Files - - - Symbol Table\Header Files - - - Symbol Table\Header Files - - - Symbol Table\Header Files - - - Symbol Table\Header Files - - - Symbol Table\Header Files - - - Symbol Table\Header Files - - - Symbol Table\Header Files - - - Symbol Table\Header Files - - - Symbol Table\Header Files - - - Symbol Table\Header Files - - - Attributes\Header Files - - - Attributes\Header Files - - - - - CppParser\Source Files - - - CppParser\Source Files - - - CppParser\Source Files - - - CppParser\Source Files - - - Symbol Table\Source Files - - - Symbol Table\Source Files - - - Symbol Table\Source Files - - - Symbol Table\Source Files - - - Symbol Table\Source Files - - - Symbol Table\Source Files - - - Symbol Table\Source Files - - - Symbol Table\Source Files - - - Symbol Table\Source Files - - - Symbol Table\Source Files - - - Symbol Table\Source Files - - - Attributes\Source Files - - - Attributes\Source Files - - - - - - \ No newline at end of file diff --git a/CppParser/testsuite/TestSuite_vs140.vcxproj b/CppParser/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index c5cc1cf17..000000000 --- a/CppParser/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,625 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {C79112BD-EC91-11DA-A4CE-005056C00008} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/CppParser/testsuite/TestSuite_vs140.vcxproj.filters b/CppParser/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index 35dc857ef..000000000 --- a/CppParser/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,69 +0,0 @@ - - - - - {31971155-466b-4513-a080-1e85afa0eaef} - - - {c83ce81d-7184-4886-8c1d-4ac60bf635be} - - - {6885f2a8-2e93-48f1-8a01-130c2b2c201c} - - - {f9d1e6c4-c2c6-47bc-bd0d-bc4633916a94} - - - {717aa817-9d99-4f5b-951e-d8de58ba2c5a} - - - {df01cd98-ca90-4b56-a08a-8d938977d8db} - - - {7816cc83-9050-4f40-9b5b-f4d34a52120a} - - - {c214ff0b-5ff5-4a83-bab0-45bf4bb4bcf0} - - - {d11cedc3-3c29-4e17-898b-17027f7d7fa1} - - - {192e05dc-a7df-451c-82d9-7fee37196227} - - - {738e614b-0ae9-41a5-9df0-1020be06d33d} - - - - - CppParser\Header Files - - - _Suite\Header Files - - - Attributes\Header Files - - - Attributes\Header Files - - - - - CppParser\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - Attributes\Source Files - - - Attributes\Source Files - - - \ No newline at end of file diff --git a/CppParser/testsuite/TestSuite_vs150.vcxproj b/CppParser/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index 77fa73eea..000000000 --- a/CppParser/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,625 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {C79112BD-EC91-11DA-A4CE-005056C00008} - TestSuite - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/CppParser/testsuite/TestSuite_vs150.vcxproj.filters b/CppParser/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index be4b8961e..000000000 --- a/CppParser/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,69 +0,0 @@ - - - - - {977b9e3c-d954-4302-a630-052fd24244bc} - - - {0e19a523-d57e-4b7d-93e8-ddaf398575cc} - - - {664d60cb-4d65-4257-8279-3018160e67ae} - - - {a6198187-dbe8-434e-8a33-6be40c2e3356} - - - {54a9f4d7-db12-4954-93e0-cb0deb3bdf30} - - - {d3560df5-fee9-4f11-83c4-fa215b1934cb} - - - {33b9085e-a32a-4d06-a8e4-b4b33060e6b5} - - - {aa43d073-f038-42fd-a41f-598414c1c601} - - - {050ef104-4c28-45ca-a0bb-46fe1060bb46} - - - {a6e7b693-ecc6-4de6-afc9-fe0e7f45699a} - - - {56be39c5-62e6-4c7f-8e0a-97fb3400d613} - - - - - CppParser\Header Files - - - _Suite\Header Files - - - Attributes\Header Files - - - Attributes\Header Files - - - - - CppParser\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - Attributes\Source Files - - - Attributes\Source Files - - - \ No newline at end of file diff --git a/CppUnit/CppUnit_vs140.sln b/CppUnit/CppUnit_vs140.sln deleted file mode 100644 index 29ae61323..000000000 --- a/CppUnit/CppUnit_vs140.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CppUnit", "CppUnit_vs140.vcxproj", "{138BB448-808A-4FE5-A66D-78D1F8770F59}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_shared|Win32.Build.0 = release_shared|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_shared|x64.Build.0 = debug_shared|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_shared|x64.ActiveCfg = release_shared|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_shared|x64.Build.0 = release_shared|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_shared|x64.Deploy.0 = release_shared|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_md|x64.Build.0 = release_static_md|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/CppUnit/CppUnit_vs140.vcxproj b/CppUnit/CppUnit_vs140.vcxproj deleted file mode 100644 index 9e23021a8..000000000 --- a/CppUnit/CppUnit_vs140.vcxproj +++ /dev/null @@ -1,589 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - CppUnit - {138BB448-808A-4FE5-A66D-78D1F8770F59} - CppUnit - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - CppUnitd - CppUnitmdd - CppUnitmtd - CppUnit - CppUnitmd - CppUnitmt - CppUnit64d - CppUnitmdd - CppUnitmtd - CppUnit64 - CppUnitmd - CppUnitmt - - - ..\bin\ - obj\CppUnit\$(Configuration)\ - true - - - ..\bin\ - obj\CppUnit\$(Configuration)\ - false - - - ..\lib\ - obj\CppUnit\$(Configuration)\ - - - ..\lib\ - obj\CppUnit\$(Configuration)\ - - - ..\lib\ - obj\CppUnit\$(Configuration)\ - - - ..\lib\ - obj\CppUnit\$(Configuration)\ - - - ..\bin64\ - obj64\CppUnit\$(Configuration)\ - true - - - ..\bin64\ - obj64\CppUnit\$(Configuration)\ - false - - - ..\lib64\ - obj64\CppUnit\$(Configuration)\ - - - ..\lib64\ - obj64\CppUnit\$(Configuration)\ - - - ..\lib64\ - obj64\CppUnit\$(Configuration)\ - - - ..\lib64\ - obj64\CppUnit\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;POCO_NO_AUTOMATIC_LIBS;CppUnit_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\CppUnitd.dll - true - true - ..\bin\CppUnitd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\CppUnitd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;POCO_NO_AUTOMATIC_LIBS;CppUnit_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\CppUnit.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\CppUnit.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;POCO_NO_AUTOMATIC_LIBS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\CppUnitmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\CppUnitmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;POCO_NO_AUTOMATIC_LIBS;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\CppUnitmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;POCO_NO_AUTOMATIC_LIBS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\CppUnitmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\CppUnitmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;POCO_NO_AUTOMATIC_LIBS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\CppUnitmd.pdb - Level3 - - Default - true - - - ..\lib\CppUnitmd.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;POCO_NO_AUTOMATIC_LIBS;CppUnit_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\CppUnit64d.dll - true - true - ..\bin64\CppUnit64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\CppUnitd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;POCO_NO_AUTOMATIC_LIBS;CppUnit_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\CppUnit64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\CppUnit.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;POCO_NO_AUTOMATIC_LIBS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\CppUnitmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\CppUnitmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;POCO_NO_AUTOMATIC_LIBS;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\CppUnitmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;POCO_NO_AUTOMATIC_LIBS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\CppUnitmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\CppUnitmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;POCO_NO_AUTOMATIC_LIBS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\CppUnitmd.lib - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/CppUnit/CppUnit_vs140.vcxproj.filters b/CppUnit/CppUnit_vs140.vcxproj.filters deleted file mode 100644 index 2d3c429bd..000000000 --- a/CppUnit/CppUnit_vs140.vcxproj.filters +++ /dev/null @@ -1,89 +0,0 @@ - - - - - {95496df7-fecc-4c6e-9305-3bb02672073a} - cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - - - {d51eb7c1-5ba8-4e6a-923a-72ebc4552866} - *.h - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - \ No newline at end of file diff --git a/CppUnit/CppUnit_vs150.sln b/CppUnit/CppUnit_vs150.sln deleted file mode 100644 index 5984714e0..000000000 --- a/CppUnit/CppUnit_vs150.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CppUnit", "CppUnit_vs150.vcxproj", "{138BB448-808A-4FE5-A66D-78D1F8770F59}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_shared|Win32.Build.0 = release_shared|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_shared|x64.Build.0 = debug_shared|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_shared|x64.ActiveCfg = release_shared|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_shared|x64.Build.0 = release_shared|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_shared|x64.Deploy.0 = release_shared|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_md|x64.Build.0 = release_static_md|x64 - {138BB448-808A-4FE5-A66D-78D1F8770F59}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/CppUnit/CppUnit_vs150.vcxproj b/CppUnit/CppUnit_vs150.vcxproj deleted file mode 100644 index 3e6611653..000000000 --- a/CppUnit/CppUnit_vs150.vcxproj +++ /dev/null @@ -1,589 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - CppUnit - {138BB448-808A-4FE5-A66D-78D1F8770F59} - CppUnit - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - CppUnitd - CppUnitmdd - CppUnitmtd - CppUnit - CppUnitmd - CppUnitmt - CppUnit64d - CppUnitmdd - CppUnitmtd - CppUnit64 - CppUnitmd - CppUnitmt - - - ..\bin\ - obj\CppUnit\$(Configuration)\ - true - - - ..\bin\ - obj\CppUnit\$(Configuration)\ - false - - - ..\lib\ - obj\CppUnit\$(Configuration)\ - - - ..\lib\ - obj\CppUnit\$(Configuration)\ - - - ..\lib\ - obj\CppUnit\$(Configuration)\ - - - ..\lib\ - obj\CppUnit\$(Configuration)\ - - - ..\bin64\ - obj64\CppUnit\$(Configuration)\ - true - - - ..\bin64\ - obj64\CppUnit\$(Configuration)\ - false - - - ..\lib64\ - obj64\CppUnit\$(Configuration)\ - - - ..\lib64\ - obj64\CppUnit\$(Configuration)\ - - - ..\lib64\ - obj64\CppUnit\$(Configuration)\ - - - ..\lib64\ - obj64\CppUnit\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;POCO_NO_AUTOMATIC_LIBS;CppUnit_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\CppUnitd.dll - true - true - ..\bin\CppUnitd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\CppUnitd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;POCO_NO_AUTOMATIC_LIBS;CppUnit_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\CppUnit.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\CppUnit.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;POCO_NO_AUTOMATIC_LIBS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\CppUnitmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\CppUnitmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;POCO_NO_AUTOMATIC_LIBS;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\CppUnitmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;POCO_NO_AUTOMATIC_LIBS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\CppUnitmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\CppUnitmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;POCO_NO_AUTOMATIC_LIBS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\CppUnitmd.pdb - Level3 - - Default - true - - - ..\lib\CppUnitmd.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;POCO_NO_AUTOMATIC_LIBS;CppUnit_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\CppUnit64d.dll - true - true - ..\bin64\CppUnit64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\CppUnitd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;POCO_NO_AUTOMATIC_LIBS;CppUnit_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\CppUnit64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\CppUnit.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;POCO_NO_AUTOMATIC_LIBS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\CppUnitmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\CppUnitmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;POCO_NO_AUTOMATIC_LIBS;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\CppUnitmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;POCO_NO_AUTOMATIC_LIBS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\CppUnitmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\CppUnitmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;POCO_NO_AUTOMATIC_LIBS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\CppUnitmd.lib - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/CppUnit/CppUnit_vs150.vcxproj.filters b/CppUnit/CppUnit_vs150.vcxproj.filters deleted file mode 100644 index bef9e9291..000000000 --- a/CppUnit/CppUnit_vs150.vcxproj.filters +++ /dev/null @@ -1,89 +0,0 @@ - - - - - {ba2f0d95-00f4-4df9-b5d3-473808d26494} - cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - - - {512f9256-1c31-4afb-9d45-e2d1075ed199} - *.h - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - Include Files - - - \ No newline at end of file diff --git a/Crypto/Crypto_vs140.sln b/Crypto/Crypto_vs140.sln deleted file mode 100644 index b34ccbe13..000000000 --- a/Crypto/Crypto_vs140.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Crypto", "Crypto_vs140.vcxproj", "{EEEE7259-32E9-4D56-B023-C733940AB2A0}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}" - ProjectSection(ProjectDependencies) = postProject - {EEEE7259-32E9-4D56-B023-C733940AB2A0} = {EEEE7259-32E9-4D56-B023-C733940AB2A0} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_shared|Win32.Build.0 = release_shared|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_shared|x64.Build.0 = debug_shared|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_shared|x64.ActiveCfg = release_shared|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_shared|x64.Build.0 = release_shared|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_shared|x64.Deploy.0 = release_shared|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_md|x64.Build.0 = release_static_md|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|Win32.Build.0 = release_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|x64.Build.0 = debug_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|x64.ActiveCfg = release_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|x64.Build.0 = release_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|x64.Deploy.0 = release_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|x64.Build.0 = release_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Crypto/Crypto_vs140.vcxproj b/Crypto/Crypto_vs140.vcxproj deleted file mode 100644 index 09fa0045e..000000000 --- a/Crypto/Crypto_vs140.vcxproj +++ /dev/null @@ -1,663 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Crypto - {EEEE7259-32E9-4D56-B023-C733940AB2A0} - Crypto - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoCryptod - PocoCryptomdd - PocoCryptomtd - PocoCrypto - PocoCryptomd - PocoCryptomt - PocoCrypto64d - PocoCryptomdd - PocoCryptomtd - PocoCrypto64 - PocoCryptomd - PocoCryptomt - - - ..\bin\ - obj\Crypto\$(Configuration)\ - true - - - ..\bin\ - obj\Crypto\$(Configuration)\ - false - - - ..\lib\ - obj\Crypto\$(Configuration)\ - - - ..\lib\ - obj\Crypto\$(Configuration)\ - - - ..\lib\ - obj\Crypto\$(Configuration)\ - - - ..\lib\ - obj\Crypto\$(Configuration)\ - - - ..\bin64\ - obj64\Crypto\$(Configuration)\ - true - - - ..\bin64\ - obj64\Crypto\$(Configuration)\ - false - - - ..\lib64\ - obj64\Crypto\$(Configuration)\ - - - ..\lib64\ - obj64\Crypto\$(Configuration)\ - - - ..\lib64\ - obj64\Crypto\$(Configuration)\ - - - ..\lib64\ - obj64\Crypto\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Crypto_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoCryptod.dll - true - true - ..\bin\PocoCryptod.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoCryptod.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Crypto_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoCrypto.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoCrypto.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoCryptomtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoCryptomtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoCryptomt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoCryptomdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoCryptomdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoCryptomd.pdb - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - ..\lib\PocoCryptomd.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Crypto_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoCrypto64d.dll - true - true - ..\bin64\PocoCrypto64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoCryptod.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Crypto_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoCrypto64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoCrypto.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoCryptomtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoCryptomtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoCryptomt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoCryptomdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoCryptomdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoCryptomd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Crypto/Crypto_vs140.vcxproj.filters b/Crypto/Crypto_vs140.vcxproj.filters deleted file mode 100644 index 489e410f6..000000000 --- a/Crypto/Crypto_vs140.vcxproj.filters +++ /dev/null @@ -1,213 +0,0 @@ - - - - - {60a8c7e2-2faa-4d2f-9395-a8a7b0b27799} - - - {5810f1ac-f1a0-4eec-805c-4f10c8731258} - - - {079a0514-d9e9-4c7e-814e-7bc6941f7492} - - - {d9e32eb5-0f20-4262-8c04-ce30a11b5278} - - - {4d5ddd1e-5b34-493d-b3e6-696b3950239d} - - - {52e2d122-9409-4b00-bb5d-8596e350271f} - - - {dc9887bc-80fa-4400-8ae3-798d0216e70e} - - - {9af8f56b-58e6-471c-99dd-649f82bb513d} - - - {e986c9a0-8d5f-4ece-b226-97b00f75c36b} - - - {815003c3-868c-4edb-b8fc-71239f111d12} - - - {83254184-d4b3-4e90-aaf8-6185be913f80} - - - {975ee625-4d9c-42c8-a51a-5ae6c152f3f7} - - - {3ab5ac8f-2b83-4dfc-9603-0dac69d52013} - - - {8b978dca-eb5f-4437-a1c2-4491c531c24e} - - - {0a3d66e4-a2fd-41a2-b579-95aa9bd44595} - - - {a612ef80-bf86-4cd6-912c-ba726353cc2a} - - - {c46a2637-5bab-4cf6-93c0-d09d784e65f6} - - - {e84f7326-3466-4a9e-bba3-1b0c4885717a} - - - - - Cipher\Header Files - - - Cipher\Header Files - - - Cipher\Header Files - - - Cipher\Header Files - - - Cipher\Header Files - - - Cipher\Header Files - - - Cipher\Header Files - - - RSA\Header Files - - - RSA\Header Files - - - RSA\Header Files - - - RSA\Header Files - - - Certificate\Header Files - - - Certificate\Header Files - - - CryptoCore\Header Files - - - CryptoCore\Header Files - - - CryptoCore\Header Files - - - CryptoCore\Header Files - - - CryptoCore\Header Files - - - CryptoCore\Header Files - - - CryptoCore\Header Files - - - Digest\Header Files - - - EC\Header Files - - - EC\Header Files - - - EC\Header Files - - - EC\Header Files - - - - - Cipher\Source Files - - - Cipher\Source Files - - - Cipher\Source Files - - - Cipher\Source Files - - - Cipher\Source Files - - - Cipher\Source Files - - - Cipher\Source Files - - - RSA\Source Files - - - RSA\Source Files - - - RSA\Source Files - - - RSA\Source Files - - - Certificate\Source Files - - - Certificate\Source Files - - - CryptoCore\Source Files - - - CryptoCore\Source Files - - - CryptoCore\Source Files - - - CryptoCore\Source Files - - - CryptoCore\Source Files - - - CryptoCore\Source Files - - - Digest\Source Files - - - EC\Source Files - - - EC\Source Files - - - EC\Source Files - - - EC\Source Files - - - - - - \ No newline at end of file diff --git a/Crypto/Crypto_vs150.sln b/Crypto/Crypto_vs150.sln deleted file mode 100644 index 8c1d99dcd..000000000 --- a/Crypto/Crypto_vs150.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Crypto", "Crypto_vs150.vcxproj", "{EEEE7259-32E9-4D56-B023-C733940AB2A0}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}" - ProjectSection(ProjectDependencies) = postProject - {EEEE7259-32E9-4D56-B023-C733940AB2A0} = {EEEE7259-32E9-4D56-B023-C733940AB2A0} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_shared|Win32.Build.0 = release_shared|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_shared|x64.Build.0 = debug_shared|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_shared|x64.ActiveCfg = release_shared|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_shared|x64.Build.0 = release_shared|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_shared|x64.Deploy.0 = release_shared|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_md|x64.Build.0 = release_static_md|x64 - {EEEE7259-32E9-4D56-B023-C733940AB2A0}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|Win32.Build.0 = release_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|x64.Build.0 = debug_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|x64.ActiveCfg = release_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|x64.Build.0 = release_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|x64.Deploy.0 = release_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|x64.Build.0 = release_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Crypto/Crypto_vs150.vcxproj b/Crypto/Crypto_vs150.vcxproj deleted file mode 100644 index 66fe82987..000000000 --- a/Crypto/Crypto_vs150.vcxproj +++ /dev/null @@ -1,663 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Crypto - {EEEE7259-32E9-4D56-B023-C733940AB2A0} - Crypto - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PocoCryptod - PocoCryptomdd - PocoCryptomtd - PocoCrypto - PocoCryptomd - PocoCryptomt - PocoCrypto64d - PocoCryptomdd - PocoCryptomtd - PocoCrypto64 - PocoCryptomd - PocoCryptomt - - - ..\bin\ - obj\Crypto\$(Configuration)\ - true - - - ..\bin\ - obj\Crypto\$(Configuration)\ - false - - - ..\lib\ - obj\Crypto\$(Configuration)\ - - - ..\lib\ - obj\Crypto\$(Configuration)\ - - - ..\lib\ - obj\Crypto\$(Configuration)\ - - - ..\lib\ - obj\Crypto\$(Configuration)\ - - - ..\bin64\ - obj64\Crypto\$(Configuration)\ - true - - - ..\bin64\ - obj64\Crypto\$(Configuration)\ - false - - - ..\lib64\ - obj64\Crypto\$(Configuration)\ - - - ..\lib64\ - obj64\Crypto\$(Configuration)\ - - - ..\lib64\ - obj64\Crypto\$(Configuration)\ - - - ..\lib64\ - obj64\Crypto\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Crypto_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoCryptod.dll - true - true - ..\bin\PocoCryptod.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoCryptod.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Crypto_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoCrypto.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoCrypto.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoCryptomtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoCryptomtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoCryptomt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoCryptomdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoCryptomdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoCryptomd.pdb - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - ..\lib\PocoCryptomd.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Crypto_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoCrypto64d.dll - true - true - ..\bin64\PocoCrypto64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoCryptod.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Crypto_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoCrypto64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoCrypto.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoCryptomtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoCryptomtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoCryptomt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoCryptomdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoCryptomdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoCryptomd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Crypto/Crypto_vs150.vcxproj.filters b/Crypto/Crypto_vs150.vcxproj.filters deleted file mode 100644 index 3e30674e9..000000000 --- a/Crypto/Crypto_vs150.vcxproj.filters +++ /dev/null @@ -1,213 +0,0 @@ - - - - - {75698788-03bc-4370-ab55-99d48c973dce} - - - {bcaac4d6-7340-4f39-9b36-724a1408f06c} - - - {e455849b-48cb-431b-983f-30c955a93552} - - - {b3905243-9455-4c38-a56e-1edaf52d18c3} - - - {8541c53c-aa29-4062-9029-6ba5ab950d9a} - - - {43690a3d-2085-46bd-8722-a153c2170f3e} - - - {c7c75237-17b5-443e-b48d-d276bedafb7e} - - - {ca5d30c0-a95e-413d-a182-8ee7dfed0bff} - - - {cd24b06b-7900-4c1f-b1a3-8d5b2110ef46} - - - {ef3bafde-f2e0-4779-b50a-bcb066c09583} - - - {deb5208b-9e44-47da-b191-718552850f5f} - - - {01df9f00-078a-4cca-829a-d7421dfe4a43} - - - {08b5b434-275e-46a4-a528-b6da06cc5691} - - - {d7cb049c-8340-4eda-899a-27c4d0ff3746} - - - {7e05b39f-e6ff-4225-8527-eb37bbcdfb18} - - - {3c7f4c55-1189-43b5-a9f6-5debd66906ba} - - - {c3c69023-452b-455e-902a-684735fc89c7} - - - {f3238968-0490-44f5-8031-00edec99904c} - - - - - Cipher\Header Files - - - Cipher\Header Files - - - Cipher\Header Files - - - Cipher\Header Files - - - Cipher\Header Files - - - Cipher\Header Files - - - Cipher\Header Files - - - RSA\Header Files - - - RSA\Header Files - - - RSA\Header Files - - - RSA\Header Files - - - Certificate\Header Files - - - Certificate\Header Files - - - CryptoCore\Header Files - - - CryptoCore\Header Files - - - CryptoCore\Header Files - - - CryptoCore\Header Files - - - CryptoCore\Header Files - - - CryptoCore\Header Files - - - CryptoCore\Header Files - - - Digest\Header Files - - - EC\Header Files - - - EC\Header Files - - - EC\Header Files - - - EC\Header Files - - - - - Cipher\Source Files - - - Cipher\Source Files - - - Cipher\Source Files - - - Cipher\Source Files - - - Cipher\Source Files - - - Cipher\Source Files - - - Cipher\Source Files - - - RSA\Source Files - - - RSA\Source Files - - - RSA\Source Files - - - RSA\Source Files - - - Certificate\Source Files - - - Certificate\Source Files - - - CryptoCore\Source Files - - - CryptoCore\Source Files - - - CryptoCore\Source Files - - - CryptoCore\Source Files - - - CryptoCore\Source Files - - - CryptoCore\Source Files - - - Digest\Source Files - - - EC\Source Files - - - EC\Source Files - - - EC\Source Files - - - EC\Source Files - - - - - - \ No newline at end of file diff --git a/Crypto/samples/genrsakey/genrsakey_vs140.vcxproj b/Crypto/samples/genrsakey/genrsakey_vs140.vcxproj deleted file mode 100644 index 7a95c606f..000000000 --- a/Crypto/samples/genrsakey/genrsakey_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - genrsakey - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947} - genrsakey - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - genrsakeyd - genrsakeyd - genrsakeyd - genrsakey - genrsakey - genrsakey - genrsakeyd - genrsakeyd - genrsakeyd - genrsakey - genrsakey - genrsakey - - - bin\ - obj\genrsakey\$(Configuration)\ - true - - - bin\ - obj\genrsakey\$(Configuration)\ - false - - - bin\static_mt\ - obj\genrsakey\$(Configuration)\ - true - - - bin\static_mt\ - obj\genrsakey\$(Configuration)\ - false - - - bin\static_md\ - obj\genrsakey\$(Configuration)\ - true - - - bin\static_md\ - obj\genrsakey\$(Configuration)\ - false - - - bin64\ - obj64\genrsakey\$(Configuration)\ - true - - - bin64\ - obj64\genrsakey\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\genrsakey\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\genrsakey\$(Configuration)\ - false - - - bin64\static_md\ - obj64\genrsakey\$(Configuration)\ - true - - - bin64\static_md\ - obj64\genrsakey\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\genrsakeyd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\genrsakeyd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\genrsakey.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\genrsakeyd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\genrsakeyd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\genrsakey.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\genrsakeyd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\genrsakeyd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\genrsakey.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\genrsakeyd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\genrsakeyd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\genrsakey.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\genrsakeyd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\genrsakeyd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\genrsakey.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\genrsakeyd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\genrsakeyd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\genrsakey.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Crypto/samples/genrsakey/genrsakey_vs140.vcxproj.filters b/Crypto/samples/genrsakey/genrsakey_vs140.vcxproj.filters deleted file mode 100644 index b9cf29f29..000000000 --- a/Crypto/samples/genrsakey/genrsakey_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {1992e246-f5a7-4b91-8d30-e097acbbe1dc} - - - {5ddd6c3c-9fba-4f50-a6b6-252aba14fdf5} - - - - - Source Files - - - \ No newline at end of file diff --git a/Crypto/samples/genrsakey/genrsakey_vs150.vcxproj b/Crypto/samples/genrsakey/genrsakey_vs150.vcxproj deleted file mode 100644 index 5eb698361..000000000 --- a/Crypto/samples/genrsakey/genrsakey_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - genrsakey - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947} - genrsakey - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - genrsakeyd - genrsakeyd - genrsakeyd - genrsakey - genrsakey - genrsakey - genrsakeyd - genrsakeyd - genrsakeyd - genrsakey - genrsakey - genrsakey - - - bin\ - obj\genrsakey\$(Configuration)\ - true - - - bin\ - obj\genrsakey\$(Configuration)\ - false - - - bin\static_mt\ - obj\genrsakey\$(Configuration)\ - true - - - bin\static_mt\ - obj\genrsakey\$(Configuration)\ - false - - - bin\static_md\ - obj\genrsakey\$(Configuration)\ - true - - - bin\static_md\ - obj\genrsakey\$(Configuration)\ - false - - - bin64\ - obj64\genrsakey\$(Configuration)\ - true - - - bin64\ - obj64\genrsakey\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\genrsakey\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\genrsakey\$(Configuration)\ - false - - - bin64\static_md\ - obj64\genrsakey\$(Configuration)\ - true - - - bin64\static_md\ - obj64\genrsakey\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\genrsakeyd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\genrsakeyd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\genrsakey.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\genrsakeyd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\genrsakeyd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\genrsakey.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\genrsakeyd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\genrsakeyd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\genrsakey.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\genrsakeyd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\genrsakeyd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\genrsakey.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\genrsakeyd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\genrsakeyd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\genrsakey.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\genrsakeyd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\genrsakeyd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\genrsakey.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Crypto/samples/genrsakey/genrsakey_vs150.vcxproj.filters b/Crypto/samples/genrsakey/genrsakey_vs150.vcxproj.filters deleted file mode 100644 index da96767aa..000000000 --- a/Crypto/samples/genrsakey/genrsakey_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {c22c50dc-10ca-43ae-818a-9b1f6e930703} - - - {9a0f6299-c6cc-48be-b7a7-45b146c0307f} - - - - - Source Files - - - \ No newline at end of file diff --git a/Crypto/samples/samples_vs140.sln b/Crypto/samples/samples_vs140.sln deleted file mode 100644 index afb685529..000000000 --- a/Crypto/samples/samples_vs140.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genrsakey", "genrsakey\genrsakey_vs140.vcxproj", "{D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_shared|Win32.Build.0 = release_shared|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_shared|x64.Build.0 = debug_shared|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_shared|x64.ActiveCfg = release_shared|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_shared|x64.Build.0 = release_shared|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_shared|x64.Deploy.0 = release_shared|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_md|x64.Build.0 = release_static_md|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Crypto/samples/samples_vs150.sln b/Crypto/samples/samples_vs150.sln deleted file mode 100644 index 80e8e47a9..000000000 --- a/Crypto/samples/samples_vs150.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genrsakey", "genrsakey\genrsakey_vs150.vcxproj", "{D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_shared|Win32.Build.0 = release_shared|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_shared|x64.Build.0 = debug_shared|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_shared|x64.ActiveCfg = release_shared|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_shared|x64.Build.0 = release_shared|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_shared|x64.Deploy.0 = release_shared|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_md|x64.Build.0 = release_static_md|x64 - {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Crypto/testsuite/TestSuite_vs140.vcxproj b/Crypto/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index de77af4b0..000000000 --- a/Crypto/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,641 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/Crypto/testsuite/TestSuite_vs140.vcxproj.filters b/Crypto/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index dec7fb619..000000000 --- a/Crypto/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,84 +0,0 @@ - - - - - {9dff95b8-7a0a-42a2-882d-240353eebc86} - - - {c461d935-f1d4-468f-8e89-a06090c1b7d6} - - - {dcfe4ffa-6b62-4c48-9625-6fa8d16841f6} - - - {66610ad9-d08d-4cd7-b3d2-d6d71a7d9ac5} - - - {0cfb4e9f-5fe7-42dd-96f1-3dc5e779bf88} - - - {0cd7e466-afb0-40c7-abff-08147e0e6da7} - - - {89a0f0f0-fd2a-49aa-91f2-5b766adcd945} - - - {e110d68e-1724-4d5e-8ab5-f774c2735147} - - - - - Crypto\Header Files - - - Crypto\Header Files - - - Crypto\Header Files - - - Crypto\Header Files - - - Crypto\Header Files - - - Crypto\Header Files - - - Crypto\Header Files - - - _Suite\Header Files - - - - - Crypto\Source Files - - - Crypto\Source Files - - - Crypto\Source Files - - - Crypto\Source Files - - - Crypto\Source Files - - - Crypto\Source Files - - - Crypto\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - \ No newline at end of file diff --git a/Crypto/testsuite/TestSuite_vs150.vcxproj b/Crypto/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index 1167f02c1..000000000 --- a/Crypto/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,641 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15} - TestSuite - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/Crypto/testsuite/TestSuite_vs150.vcxproj.filters b/Crypto/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index ab329fa92..000000000 --- a/Crypto/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,84 +0,0 @@ - - - - - {c36620ad-ed1f-44db-b632-628f09517b5a} - - - {93ac862f-ef66-4c96-82c6-82f03c87b786} - - - {c59358e6-8395-4e21-b952-d8f99d0805c9} - - - {f96aacb4-a5dc-4cd9-9af3-9181ca3d08e8} - - - {0f12e848-51bd-4dcb-ac5a-21cfe7a2d3f9} - - - {79f7b368-e662-4165-b04b-4a1d652b6a32} - - - {4c17d29d-4e86-4175-8704-3d1374a9e47c} - - - {d54ac5e8-d98b-4c54-a8a4-8553a21a9ac7} - - - - - Crypto\Header Files - - - Crypto\Header Files - - - Crypto\Header Files - - - Crypto\Header Files - - - Crypto\Header Files - - - Crypto\Header Files - - - Crypto\Header Files - - - _Suite\Header Files - - - - - Crypto\Source Files - - - Crypto\Source Files - - - Crypto\Source Files - - - Crypto\Source Files - - - Crypto\Source Files - - - Crypto\Source Files - - - Crypto\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - \ No newline at end of file diff --git a/Data/Data_vs140.sln b/Data/Data_vs140.sln deleted file mode 100644 index 449351a4e..000000000 --- a/Data/Data_vs140.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Data", "Data_vs140.vcxproj", "{240E83C3-368D-11DB-9FBC-00123FC423B5}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{1813A463-E349-4FEA-8A8E-4A41E41C0DC7}" - ProjectSection(ProjectDependencies) = postProject - {240E83C3-368D-11DB-9FBC-00123FC423B5} = {240E83C3-368D-11DB-9FBC-00123FC423B5} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Build.0 = release_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Build.0 = debug_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.ActiveCfg = release_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Build.0 = release_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Deploy.0 = release_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Build.0 = release_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Build.0 = release_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.Build.0 = debug_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.ActiveCfg = release_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Build.0 = release_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Deploy.0 = release_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.Build.0 = release_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Data/Data_vs140.vcxproj b/Data/Data_vs140.vcxproj deleted file mode 100644 index 8f70d5d9e..000000000 --- a/Data/Data_vs140.vcxproj +++ /dev/null @@ -1,725 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Data - {240E83C3-368D-11DB-9FBC-00123FC423B5} - Data - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>16.0.32002.118 - PocoDatad - PocoDatamdd - PocoDatamtd - PocoData - PocoDatamd - PocoDatamt - PocoData64d - PocoDatamdd - PocoDatamtd - PocoData64 - PocoDatamd - PocoDatamt - - - ..\bin\ - obj\Data\$(Configuration)\ - true - - - ..\bin\ - obj\Data\$(Configuration)\ - false - - - ..\lib\ - obj\Data\$(Configuration)\ - - - ..\lib\ - obj\Data\$(Configuration)\ - - - ..\lib\ - obj\Data\$(Configuration)\ - - - ..\lib\ - obj\Data\$(Configuration)\ - - - ..\bin64\ - obj64\Data\$(Configuration)\ - true - - - ..\bin64\ - obj64\Data\$(Configuration)\ - false - - - ..\lib64\ - obj64\Data\$(Configuration)\ - - - ..\lib64\ - obj64\Data\$(Configuration)\ - - - ..\lib64\ - obj64\Data\$(Configuration)\ - - - ..\lib64\ - obj64\Data\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoDatad.dll - true - true - ..\bin\PocoDatad.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoDatad.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoData.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoData.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoDatamtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoDatamtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoDatamt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoDatamdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoDatamdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoDatamd.pdb - Level3 - - Default - true - - - ..\lib\PocoDatamd.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - /bigobj %(AdditionalOptions) - true - - - ..\bin64\PocoData64d.dll - true - true - ..\bin64\PocoData64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoDatad.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - /bigobj %(AdditionalOptions) - true - - - ..\bin64\PocoData64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoData.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoDatamtd.pdb - Level3 - ProgramDatabase - Default - /bigobj %(AdditionalOptions) - true - - - ..\lib64\PocoDatamtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - /bigobj %(AdditionalOptions) - true - - - ..\lib64\PocoDatamt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoDatamdd.pdb - Level3 - ProgramDatabase - Default - /bigobj %(AdditionalOptions) - true - - - ..\lib64\PocoDatamdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - /bigobj %(AdditionalOptions) - true - - - ..\lib64\PocoDatamd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Data/Data_vs140.vcxproj.filters b/Data/Data_vs140.vcxproj.filters deleted file mode 100644 index 728781f8a..000000000 --- a/Data/Data_vs140.vcxproj.filters +++ /dev/null @@ -1,297 +0,0 @@ - - - - - {a918a581-0b94-4c8e-9fb9-958a05520fb3} - - - {35b035eb-d96e-4f12-ac40-fdfcffbfa511} - - - {cbe6bea8-a94c-4022-8e34-ade5cf268bda} - - - {10e6a489-5fac-49d4-8ee0-73555f49d15c} - - - {c86ed4bd-93ce-466a-932c-1baf6d70fc6b} - - - {749d2b0b-1512-4ce0-81f9-f94fc4d77c1c} - - - {3358309f-c181-457a-a176-572c9c29e54e} - - - {170fbdcf-8f02-4198-b22b-812d62cae3a0} - - - {8f4b30b1-f7dc-451e-b618-23b2587336aa} - - - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - SessionPooling\Header Files - - - SessionPooling\Header Files - - - SessionPooling\Header Files - - - SessionPooling\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - SessionPooling\Source Files - - - SessionPooling\Source Files - - - SessionPooling\Source Files - - - SessionPooling\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - - - - \ No newline at end of file diff --git a/Data/Data_vs150.sln b/Data/Data_vs150.sln deleted file mode 100644 index 1ef53be2a..000000000 --- a/Data/Data_vs150.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Data", "Data_vs150.vcxproj", "{240E83C3-368D-11DB-9FBC-00123FC423B5}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{1813A463-E349-4FEA-8A8E-4A41E41C0DC7}" - ProjectSection(ProjectDependencies) = postProject - {240E83C3-368D-11DB-9FBC-00123FC423B5} = {240E83C3-368D-11DB-9FBC-00123FC423B5} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Build.0 = release_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Build.0 = debug_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.ActiveCfg = release_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Build.0 = release_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Deploy.0 = release_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Build.0 = release_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Build.0 = release_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.Build.0 = debug_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.ActiveCfg = release_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Build.0 = release_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Deploy.0 = release_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.Build.0 = release_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Data/Data_vs150.vcxproj b/Data/Data_vs150.vcxproj deleted file mode 100644 index ac6e5ea87..000000000 --- a/Data/Data_vs150.vcxproj +++ /dev/null @@ -1,725 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Data - {240E83C3-368D-11DB-9FBC-00123FC423B5} - Data - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>16.0.32002.118 - PocoDatad - PocoDatamdd - PocoDatamtd - PocoData - PocoDatamd - PocoDatamt - PocoData64d - PocoDatamdd - PocoDatamtd - PocoData64 - PocoDatamd - PocoDatamt - - - ..\bin\ - obj\Data\$(Configuration)\ - true - - - ..\bin\ - obj\Data\$(Configuration)\ - false - - - ..\lib\ - obj\Data\$(Configuration)\ - - - ..\lib\ - obj\Data\$(Configuration)\ - - - ..\lib\ - obj\Data\$(Configuration)\ - - - ..\lib\ - obj\Data\$(Configuration)\ - - - ..\bin64\ - obj64\Data\$(Configuration)\ - true - - - ..\bin64\ - obj64\Data\$(Configuration)\ - false - - - ..\lib64\ - obj64\Data\$(Configuration)\ - - - ..\lib64\ - obj64\Data\$(Configuration)\ - - - ..\lib64\ - obj64\Data\$(Configuration)\ - - - ..\lib64\ - obj64\Data\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoDatad.dll - true - true - ..\bin\PocoDatad.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoDatad.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoData.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoData.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoDatamtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoDatamtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoDatamt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoDatamdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoDatamdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoDatamd.pdb - Level3 - - Default - true - - - ..\lib\PocoDatamd.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - /bigobj %(AdditionalOptions) - true - - - ..\bin64\PocoData64d.dll - true - true - ..\bin64\PocoData64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoDatad.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - /bigobj %(AdditionalOptions) - true - - - ..\bin64\PocoData64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoData.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoDatamtd.pdb - Level3 - ProgramDatabase - Default - /bigobj %(AdditionalOptions) - true - - - ..\lib64\PocoDatamtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - /bigobj %(AdditionalOptions) - true - - - ..\lib64\PocoDatamt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoDatamdd.pdb - Level3 - ProgramDatabase - Default - /bigobj %(AdditionalOptions) - true - - - ..\lib64\PocoDatamdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - /bigobj %(AdditionalOptions) - true - - - ..\lib64\PocoDatamd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Data/Data_vs150.vcxproj.filters b/Data/Data_vs150.vcxproj.filters deleted file mode 100644 index 59b0865a8..000000000 --- a/Data/Data_vs150.vcxproj.filters +++ /dev/null @@ -1,297 +0,0 @@ - - - - - {7b0fd170-a5ff-470c-a6f2-36ab15c21f11} - - - {1dac28cd-cf73-421b-924b-06f576cda9fb} - - - {6db26f6f-4cc3-44ce-b0f6-b1bebab18fa5} - - - {bf2ebeda-2feb-4e6b-9e99-17e58078fdef} - - - {92b1ea48-8b24-4e4a-aed4-a5cc247b6f4f} - - - {8c266092-f761-4a17-abe2-5c211f46273f} - - - {2b1ba35d-2ae9-428b-967b-2b80ec813c16} - - - {ee5a2056-14b3-4c70-a2e4-28cf7a1d8da8} - - - {e36e4188-9ff6-468c-ac65-55ef1d5a4988} - - - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - DataCore\Header Files - - - SessionPooling\Header Files - - - SessionPooling\Header Files - - - SessionPooling\Header Files - - - SessionPooling\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - DataCore\Source Files - - - SessionPooling\Source Files - - - SessionPooling\Source Files - - - SessionPooling\Source Files - - - SessionPooling\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - - - - \ No newline at end of file diff --git a/Data/MySQL/MySQL_vs140.sln b/Data/MySQL/MySQL_vs140.sln deleted file mode 100644 index a65f81edf..000000000 --- a/Data/MySQL/MySQL_vs140.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MySQL", "MySQL_vs140.vcxproj", "{73E19FDE-1570-488C-B3DB-72A60FADD408}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}" - ProjectSection(ProjectDependencies) = postProject - {73E19FDE-1570-488C-B3DB-72A60FADD408} = {73E19FDE-1570-488C-B3DB-72A60FADD408} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|Win32.Build.0 = release_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|x64.Build.0 = debug_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|x64.ActiveCfg = release_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|x64.Build.0 = release_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|x64.Deploy.0 = release_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|x64.Build.0 = release_static_md|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_shared|Win32.Build.0 = release_shared|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_shared|x64.Build.0 = debug_shared|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_shared|x64.ActiveCfg = release_shared|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_shared|x64.Build.0 = release_shared|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_shared|x64.Deploy.0 = release_shared|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_md|x64.Build.0 = release_static_md|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Data/MySQL/MySQL_vs140.vcxproj b/Data/MySQL/MySQL_vs140.vcxproj deleted file mode 100644 index 31b3f320b..000000000 --- a/Data/MySQL/MySQL_vs140.vcxproj +++ /dev/null @@ -1,602 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - MySQL - {73E19FDE-1570-488C-B3DB-72A60FADD408} - MySQL - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoDataMySQLd - PocoDataMySQLmdd - PocoDataMySQLmtd - PocoDataMySQL - PocoDataMySQLmd - PocoDataMySQLmt - PocoDataMySQL64d - PocoDataMySQLmdd - PocoDataMySQLmtd - PocoDataMySQL64 - PocoDataMySQLmd - PocoDataMySQLmt - - - ..\..\bin\ - obj\MySQL\$(Configuration)\ - true - - - ..\..\bin\ - obj\MySQL\$(Configuration)\ - false - - - ..\..\lib\ - obj\MySQL\$(Configuration)\ - - - ..\..\lib\ - obj\MySQL\$(Configuration)\ - - - ..\..\lib\ - obj\MySQL\$(Configuration)\ - - - ..\..\lib\ - obj\MySQL\$(Configuration)\ - - - ..\..\bin64\ - obj64\MySQL\$(Configuration)\ - true - - - ..\..\bin64\ - obj64\MySQL\$(Configuration)\ - false - - - ..\..\lib64\ - obj64\MySQL\$(Configuration)\ - - - ..\..\lib64\ - obj64\MySQL\$(Configuration)\ - - - ..\..\lib64\ - obj64\MySQL\$(Configuration)\ - - - ..\..\lib64\ - obj64\MySQL\$(Configuration)\ - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\..\bin\PocoDataMySQLd.dll - true - true - ..\..\bin\PocoDataMySQLd.pdb - ..\..\lib;%(AdditionalLibraryDirectories) - Console - ..\..\lib\PocoDataMySQLd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\..\bin\PocoDataMySQL.dll - true - false - ..\..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\..\lib\PocoDataMySQL.lib - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\..\lib\PocoDataMySQLmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib\PocoDataMySQLmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\..\lib\PocoDataMySQLmt.lib - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\..\lib\PocoDataMySQLmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib\PocoDataMySQLmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\..\lib\PocoDataMySQLmd.pdb - Level3 - - Default - true - - - ..\..\lib\PocoDataMySQLmd.lib - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\..\bin64\PocoDataMySQL64d.dll - true - true - ..\..\bin64\PocoDataMySQL64d.pdb - ..\..\lib64;%(AdditionalLibraryDirectories) - Console - ..\..\lib64\PocoDataMySQLd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\..\bin64\PocoDataMySQL64.dll - true - false - ..\..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\..\lib64\PocoDataMySQL.lib - MachineX64 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\..\lib64\PocoDataMySQLmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib64\PocoDataMySQLmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\..\lib64\PocoDataMySQLmt.lib - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\..\lib64\PocoDataMySQLmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib64\PocoDataMySQLmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\..\lib64\PocoDataMySQLmd.lib - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Data/MySQL/MySQL_vs140.vcxproj.filters b/Data/MySQL/MySQL_vs140.vcxproj.filters deleted file mode 100644 index ca717ec96..000000000 --- a/Data/MySQL/MySQL_vs140.vcxproj.filters +++ /dev/null @@ -1,83 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - \ No newline at end of file diff --git a/Data/MySQL/MySQL_vs150.sln b/Data/MySQL/MySQL_vs150.sln deleted file mode 100644 index 52431a723..000000000 --- a/Data/MySQL/MySQL_vs150.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MySQL", "MySQL_vs150.vcxproj", "{73E19FDE-1570-488C-B3DB-72A60FADD408}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}" - ProjectSection(ProjectDependencies) = postProject - {73E19FDE-1570-488C-B3DB-72A60FADD408} = {73E19FDE-1570-488C-B3DB-72A60FADD408} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|Win32.Build.0 = release_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|x64.Build.0 = debug_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|x64.ActiveCfg = release_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|x64.Build.0 = release_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|x64.Deploy.0 = release_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|x64.Build.0 = release_static_md|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_shared|Win32.Build.0 = release_shared|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_shared|x64.Build.0 = debug_shared|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_shared|x64.ActiveCfg = release_shared|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_shared|x64.Build.0 = release_shared|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_shared|x64.Deploy.0 = release_shared|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_md|x64.Build.0 = release_static_md|x64 - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Data/MySQL/MySQL_vs150.vcxproj b/Data/MySQL/MySQL_vs150.vcxproj deleted file mode 100644 index b5e1036b1..000000000 --- a/Data/MySQL/MySQL_vs150.vcxproj +++ /dev/null @@ -1,602 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - MySQL - {73E19FDE-1570-488C-B3DB-72A60FADD408} - MySQL - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PocoDataMySQLd - PocoDataMySQLmdd - PocoDataMySQLmtd - PocoDataMySQL - PocoDataMySQLmd - PocoDataMySQLmt - PocoDataMySQL64d - PocoDataMySQLmdd - PocoDataMySQLmtd - PocoDataMySQL64 - PocoDataMySQLmd - PocoDataMySQLmt - - - ..\..\bin\ - obj\MySQL\$(Configuration)\ - true - - - ..\..\bin\ - obj\MySQL\$(Configuration)\ - false - - - ..\..\lib\ - obj\MySQL\$(Configuration)\ - - - ..\..\lib\ - obj\MySQL\$(Configuration)\ - - - ..\..\lib\ - obj\MySQL\$(Configuration)\ - - - ..\..\lib\ - obj\MySQL\$(Configuration)\ - - - ..\..\bin64\ - obj64\MySQL\$(Configuration)\ - true - - - ..\..\bin64\ - obj64\MySQL\$(Configuration)\ - false - - - ..\..\lib64\ - obj64\MySQL\$(Configuration)\ - - - ..\..\lib64\ - obj64\MySQL\$(Configuration)\ - - - ..\..\lib64\ - obj64\MySQL\$(Configuration)\ - - - ..\..\lib64\ - obj64\MySQL\$(Configuration)\ - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\..\bin\PocoDataMySQLd.dll - true - true - ..\..\bin\PocoDataMySQLd.pdb - ..\..\lib;%(AdditionalLibraryDirectories) - Console - ..\..\lib\PocoDataMySQLd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\..\bin\PocoDataMySQL.dll - true - false - ..\..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\..\lib\PocoDataMySQL.lib - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\..\lib\PocoDataMySQLmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib\PocoDataMySQLmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\..\lib\PocoDataMySQLmt.lib - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\..\lib\PocoDataMySQLmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib\PocoDataMySQLmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\..\lib\PocoDataMySQLmd.pdb - Level3 - - Default - true - - - ..\..\lib\PocoDataMySQLmd.lib - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\..\bin64\PocoDataMySQL64d.dll - true - true - ..\..\bin64\PocoDataMySQL64d.pdb - ..\..\lib64;%(AdditionalLibraryDirectories) - Console - ..\..\lib64\PocoDataMySQLd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\..\bin64\PocoDataMySQL64.dll - true - false - ..\..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\..\lib64\PocoDataMySQL.lib - MachineX64 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\..\lib64\PocoDataMySQLmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib64\PocoDataMySQLmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\..\lib64\PocoDataMySQLmt.lib - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\..\lib64\PocoDataMySQLmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib64\PocoDataMySQLmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\..\lib64\PocoDataMySQLmd.lib - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Data/MySQL/MySQL_vs150.vcxproj.filters b/Data/MySQL/MySQL_vs150.vcxproj.filters deleted file mode 100644 index ca717ec96..000000000 --- a/Data/MySQL/MySQL_vs150.vcxproj.filters +++ /dev/null @@ -1,83 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - \ No newline at end of file diff --git a/Data/MySQL/testsuite/TestSuite_vs140.vcxproj b/Data/MySQL/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index 82e38d704..000000000 --- a/Data/MySQL/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,621 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - true - - - true - - - true - - - true - - - - - diff --git a/Data/MySQL/testsuite/TestSuite_vs140.vcxproj.filters b/Data/MySQL/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index 44448d0c9..000000000 --- a/Data/MySQL/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,54 +0,0 @@ - - - - - {c19d0596-6a79-48df-a473-2575bbc36449} - - - {48070581-a132-427a-a2a0-1e8d21601af0} - - - {d8203092-8f4e-4b76-9f8c-526ed407a3fe} - - - {57ec373b-7064-4703-bf81-603024c01130} - - - {1ba1594d-28c4-4de0-afa5-e4dfa73eaccf} - - - {438c31cb-2364-46a8-8246-f0b9eb7b7dcb} - - - {f16d5db5-b089-4544-8943-f09101694ddb} - - - {88355365-5a99-4080-9fd1-49196558115f} - - - - - MySQL\Header Files - - - MySQL\Header Files - - - _Suite\Header Files - - - - - MySQL\Source Files - - - MySQL\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - \ No newline at end of file diff --git a/Data/MySQL/testsuite/TestSuite_vs150.vcxproj b/Data/MySQL/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index 2e81f1b24..000000000 --- a/Data/MySQL/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,621 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {4D6E42AE-EB6A-47EB-A186-B8A183FABCF7} - TestSuite - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - true - - - true - - - true - - - true - - - - - diff --git a/Data/MySQL/testsuite/TestSuite_vs150.vcxproj.filters b/Data/MySQL/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index 56e60d179..000000000 --- a/Data/MySQL/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,54 +0,0 @@ - - - - - {ca46c1c1-3d3a-4d90-9c39-3fa7a012d96d} - - - {945532a5-d528-4ca9-b198-109fff7e7649} - - - {9bd83f7c-b0e5-4bf3-838d-949660cc0614} - - - {c7066076-62f2-48de-822f-c7968f2396f3} - - - {714949e8-b212-43c9-a3e1-8b1c3dda73b0} - - - {e7e32925-97a6-4b16-881e-ab8f2042c6fd} - - - {ebb548a3-d5b8-477b-8f8b-1f817d36a4dd} - - - {b11f02a9-1ba9-47ff-b7f6-63c60f24ef14} - - - - - MySQL\Header Files - - - MySQL\Header Files - - - _Suite\Header Files - - - - - MySQL\Source Files - - - MySQL\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - \ No newline at end of file diff --git a/Data/ODBC/ODBC_vs140.sln b/Data/ODBC/ODBC_vs140.sln deleted file mode 100644 index ff5b9c97a..000000000 --- a/Data/ODBC/ODBC_vs140.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ODBC", "ODBC_vs140.vcxproj", "{1B29820D-375F-11DB-837B-00123FC423B5}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{00627063-395B-4413-9099-23BDB56562FA}" - ProjectSection(ProjectDependencies) = postProject - {1B29820D-375F-11DB-837B-00123FC423B5} = {1B29820D-375F-11DB-837B-00123FC423B5} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_shared|Win32.Build.0 = release_shared|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_shared|x64.Build.0 = debug_shared|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_shared|x64.ActiveCfg = release_shared|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_shared|x64.Build.0 = release_shared|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_shared|x64.Deploy.0 = release_shared|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_md|x64.Build.0 = release_static_md|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {00627063-395B-4413-9099-23BDB56562FA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.release_shared|Win32.Build.0 = release_shared|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {00627063-395B-4413-9099-23BDB56562FA}.debug_shared|x64.Build.0 = debug_shared|x64 - {00627063-395B-4413-9099-23BDB56562FA}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {00627063-395B-4413-9099-23BDB56562FA}.release_shared|x64.ActiveCfg = release_shared|x64 - {00627063-395B-4413-9099-23BDB56562FA}.release_shared|x64.Build.0 = release_shared|x64 - {00627063-395B-4413-9099-23BDB56562FA}.release_shared|x64.Deploy.0 = release_shared|x64 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_md|x64.Build.0 = release_static_md|x64 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Data/ODBC/ODBC_vs140.vcxproj b/Data/ODBC/ODBC_vs140.vcxproj deleted file mode 100644 index b64832122..000000000 --- a/Data/ODBC/ODBC_vs140.vcxproj +++ /dev/null @@ -1,658 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - ODBC - {1B29820D-375F-11DB-837B-00123FC423B5} - ODBC - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoDataODBCd - PocoDataODBCmdd - PocoDataODBCmtd - PocoDataODBC - PocoDataODBCmd - PocoDataODBCmt - PocoDataODBC64d - PocoDataODBCmdd - PocoDataODBCmtd - PocoDataODBC64 - PocoDataODBCmd - PocoDataODBCmt - - - ..\..\bin\ - obj\ODBC\$(Configuration)\ - true - - - ..\..\bin\ - obj\ODBC\$(Configuration)\ - false - - - ..\..\lib\ - obj\ODBC\$(Configuration)\ - - - ..\..\lib\ - obj\ODBC\$(Configuration)\ - - - ..\..\lib\ - obj\ODBC\$(Configuration)\ - - - ..\..\lib\ - obj\ODBC\$(Configuration)\ - - - ..\..\bin64\ - obj64\ODBC\$(Configuration)\ - true - - - ..\..\bin64\ - obj64\ODBC\$(Configuration)\ - false - - - ..\..\lib64\ - obj64\ODBC\$(Configuration)\ - - - ..\..\lib64\ - obj64\ODBC\$(Configuration)\ - - - ..\..\lib64\ - obj64\ODBC\$(Configuration)\ - - - ..\..\lib64\ - obj64\ODBC\$(Configuration)\ - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - ..\..\bin\PocoDataODBCd.dll - true - true - ..\..\bin\PocoDataODBCd.pdb - ..\..\lib;%(AdditionalLibraryDirectories) - Console - ..\..\lib\PocoDataODBCd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - ..\..\bin\PocoDataODBC.dll - true - false - ..\..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\..\lib\PocoDataODBC.lib - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\..\lib\PocoDataODBCmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib\PocoDataODBCmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\..\lib\PocoDataODBCmt.lib - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\..\lib\PocoDataODBCmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib\PocoDataODBCmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\..\lib\PocoDataODBCmd.pdb - Level3 - - Default - true - - - odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - ..\..\lib\PocoDataODBCmd.lib - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - ..\..\bin64\PocoDataODBC64d.dll - true - true - ..\..\bin64\PocoDataODBC64d.pdb - ..\..\lib64;%(AdditionalLibraryDirectories) - Console - ..\..\lib64\PocoDataODBCd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - ..\..\bin64\PocoDataODBC64.dll - true - false - ..\..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\..\lib64\PocoDataODBC.lib - MachineX64 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\..\lib64\PocoDataODBCmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib64\PocoDataODBCmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\..\lib64\PocoDataODBCmt.lib - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\..\lib64\PocoDataODBCmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib64\PocoDataODBCmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\..\lib64\PocoDataODBCmd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Data/ODBC/ODBC_vs140.vcxproj.filters b/Data/ODBC/ODBC_vs140.vcxproj.filters deleted file mode 100644 index e0ab4d7a5..000000000 --- a/Data/ODBC/ODBC_vs140.vcxproj.filters +++ /dev/null @@ -1,129 +0,0 @@ - - - - - {50f4f13f-d848-4c21-8bbe-7bca8d108627} - - - {96b31926-914e-4d75-b75e-3111b7506df8} - - - {238af948-93f5-4111-ac6b-94e7e7d8a338} - - - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - - - - \ No newline at end of file diff --git a/Data/ODBC/ODBC_vs150.sln b/Data/ODBC/ODBC_vs150.sln deleted file mode 100644 index 30e26904e..000000000 --- a/Data/ODBC/ODBC_vs150.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ODBC", "ODBC_vs150.vcxproj", "{1B29820D-375F-11DB-837B-00123FC423B5}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{00627063-395B-4413-9099-23BDB56562FA}" - ProjectSection(ProjectDependencies) = postProject - {1B29820D-375F-11DB-837B-00123FC423B5} = {1B29820D-375F-11DB-837B-00123FC423B5} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_shared|Win32.Build.0 = release_shared|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_shared|x64.Build.0 = debug_shared|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_shared|x64.ActiveCfg = release_shared|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_shared|x64.Build.0 = release_shared|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_shared|x64.Deploy.0 = release_shared|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_md|x64.Build.0 = release_static_md|x64 - {1B29820D-375F-11DB-837B-00123FC423B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {00627063-395B-4413-9099-23BDB56562FA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.release_shared|Win32.Build.0 = release_shared|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {00627063-395B-4413-9099-23BDB56562FA}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {00627063-395B-4413-9099-23BDB56562FA}.debug_shared|x64.Build.0 = debug_shared|x64 - {00627063-395B-4413-9099-23BDB56562FA}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {00627063-395B-4413-9099-23BDB56562FA}.release_shared|x64.ActiveCfg = release_shared|x64 - {00627063-395B-4413-9099-23BDB56562FA}.release_shared|x64.Build.0 = release_shared|x64 - {00627063-395B-4413-9099-23BDB56562FA}.release_shared|x64.Deploy.0 = release_shared|x64 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {00627063-395B-4413-9099-23BDB56562FA}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_md|x64.Build.0 = release_static_md|x64 - {00627063-395B-4413-9099-23BDB56562FA}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Data/ODBC/ODBC_vs150.vcxproj b/Data/ODBC/ODBC_vs150.vcxproj deleted file mode 100644 index f80c1c58d..000000000 --- a/Data/ODBC/ODBC_vs150.vcxproj +++ /dev/null @@ -1,658 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - ODBC - {1B29820D-375F-11DB-837B-00123FC423B5} - ODBC - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PocoDataODBCd - PocoDataODBCmdd - PocoDataODBCmtd - PocoDataODBC - PocoDataODBCmd - PocoDataODBCmt - PocoDataODBC64d - PocoDataODBCmdd - PocoDataODBCmtd - PocoDataODBC64 - PocoDataODBCmd - PocoDataODBCmt - - - ..\..\bin\ - obj\ODBC\$(Configuration)\ - true - - - ..\..\bin\ - obj\ODBC\$(Configuration)\ - false - - - ..\..\lib\ - obj\ODBC\$(Configuration)\ - - - ..\..\lib\ - obj\ODBC\$(Configuration)\ - - - ..\..\lib\ - obj\ODBC\$(Configuration)\ - - - ..\..\lib\ - obj\ODBC\$(Configuration)\ - - - ..\..\bin64\ - obj64\ODBC\$(Configuration)\ - true - - - ..\..\bin64\ - obj64\ODBC\$(Configuration)\ - false - - - ..\..\lib64\ - obj64\ODBC\$(Configuration)\ - - - ..\..\lib64\ - obj64\ODBC\$(Configuration)\ - - - ..\..\lib64\ - obj64\ODBC\$(Configuration)\ - - - ..\..\lib64\ - obj64\ODBC\$(Configuration)\ - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - ..\..\bin\PocoDataODBCd.dll - true - true - ..\..\bin\PocoDataODBCd.pdb - ..\..\lib;%(AdditionalLibraryDirectories) - Console - ..\..\lib\PocoDataODBCd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - ..\..\bin\PocoDataODBC.dll - true - false - ..\..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\..\lib\PocoDataODBC.lib - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\..\lib\PocoDataODBCmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib\PocoDataODBCmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\..\lib\PocoDataODBCmt.lib - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\..\lib\PocoDataODBCmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib\PocoDataODBCmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\..\lib\PocoDataODBCmd.pdb - Level3 - - Default - true - - - odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - ..\..\lib\PocoDataODBCmd.lib - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - ..\..\bin64\PocoDataODBC64d.dll - true - true - ..\..\bin64\PocoDataODBC64d.pdb - ..\..\lib64;%(AdditionalLibraryDirectories) - Console - ..\..\lib64\PocoDataODBCd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - odbc32.lib;odbccp32.lib;%(AdditionalDependencies) - ..\..\bin64\PocoDataODBC64.dll - true - false - ..\..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\..\lib64\PocoDataODBC.lib - MachineX64 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\..\lib64\PocoDataODBCmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib64\PocoDataODBCmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\..\lib64\PocoDataODBCmt.lib - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\..\lib64\PocoDataODBCmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib64\PocoDataODBCmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\..\lib64\PocoDataODBCmd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Data/ODBC/ODBC_vs150.vcxproj.filters b/Data/ODBC/ODBC_vs150.vcxproj.filters deleted file mode 100644 index bb73fcd58..000000000 --- a/Data/ODBC/ODBC_vs150.vcxproj.filters +++ /dev/null @@ -1,129 +0,0 @@ - - - - - {7733c67d-59ee-464d-8041-316aeaad2ed7} - - - {b9790491-1b4a-4bda-b7a6-7107f479818d} - - - {e790735e-3033-49d2-9fd1-bbe554539879} - - - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - - - - \ No newline at end of file diff --git a/Data/ODBC/testsuite/TestSuite_vs140.vcxproj b/Data/ODBC/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index d4fb4adaa..000000000 --- a/Data/ODBC/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,649 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {00627063-395B-4413-9099-23BDB56562FA} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/Data/ODBC/testsuite/TestSuite_vs140.vcxproj.filters b/Data/ODBC/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index e48647b5a..000000000 --- a/Data/ODBC/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,96 +0,0 @@ - - - - - {ccdb5e6e-eb82-4b6c-b9dc-2c3e57debea9} - - - {c9545407-a1fa-4f97-8609-f6a46de9d267} - - - {9f30b3f9-9774-4aae-bc56-30907a7f8e15} - - - {cad9d554-f79a-450d-8374-51683e09163b} - - - {759a03c2-3767-49c1-aac6-84258f27e01e} - - - {96da7c52-a552-473b-ac6f-981aef9d1327} - - - {0500b0ee-7b7d-4ccb-9b07-14bde5a83ccb} - - - {e2005758-9fb8-40a3-a87d-65d3f9d75ded} - - - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - _Suite\Header Files - - - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - \ No newline at end of file diff --git a/Data/ODBC/testsuite/TestSuite_vs150.vcxproj b/Data/ODBC/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index 89fa0c354..000000000 --- a/Data/ODBC/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,649 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {00627063-395B-4413-9099-23BDB56562FA} - TestSuite - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/Data/ODBC/testsuite/TestSuite_vs150.vcxproj.filters b/Data/ODBC/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index e4457f5ec..000000000 --- a/Data/ODBC/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,96 +0,0 @@ - - - - - {29ae075d-10c6-4831-90cc-8a1b8e42c4ed} - - - {871d1501-ee35-4529-8db0-5125306fbc6f} - - - {a8b986a3-0bf0-4aa7-bf2d-e9f04e024e67} - - - {158dfd0b-cd41-4f21-b66b-2e5753f153db} - - - {96672d2d-98a4-4578-8d22-9d6603fe7783} - - - {915fde9e-9c65-48a4-9493-30a2ffd32321} - - - {53898714-92bb-44c2-ad5b-3d1ab99bce08} - - - {b9011739-f7e3-4c0e-8a7f-ed78ee154b17} - - - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - ODBC\Header Files - - - _Suite\Header Files - - - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - ODBC\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - \ No newline at end of file diff --git a/Data/PostgreSQL/PostgreSQL_vs140.sln b/Data/PostgreSQL/PostgreSQL_vs140.sln deleted file mode 100644 index 6b1e6559d..000000000 --- a/Data/PostgreSQL/PostgreSQL_vs140.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PostgreSQL", "PostgreSQL_vs140.vcxproj", "{73E19FDE-1570-488C-B3DB-72A60FADD408}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}" - ProjectSection(ProjectDependencies) = postProject - {73E19FDE-1570-488C-B3DB-72A60FADD408} = {73E19FDE-1570-488C-B3DB-72A60FADD408} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|Win32.Build.0 = release_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|x64.Build.0 = debug_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|x64.ActiveCfg = release_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|x64.Build.0 = release_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|x64.Deploy.0 = release_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|x64.Build.0 = release_static_md|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|Win32.Build.0 = release_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|x64.Build.0 = debug_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|x64.ActiveCfg = release_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|x64.Build.0 = release_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|x64.Deploy.0 = release_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|x64.Build.0 = release_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Data/PostgreSQL/PostgreSQL_vs140.vcxproj b/Data/PostgreSQL/PostgreSQL_vs140.vcxproj deleted file mode 100644 index 8e08092ac..000000000 --- a/Data/PostgreSQL/PostgreSQL_vs140.vcxproj +++ /dev/null @@ -1,606 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - PostgreSQL - {73E19FDE-1570-488C-B3DB-72A60FADD408} - PostgreSQL - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoDataPostgreSQLd - PocoDataPostgreSQLmdd - PocoDataPostgreSQLmtd - PocoDataPostgreSQL - PocoDataPostgreSQLmd - PocoDataPostgreSQLmt - PocoDataPostgreSQL64d - PocoDataPostgreSQLmdd - PocoDataPostgreSQLmtd - PocoDataPostgreSQL64 - PocoDataPostgreSQLmd - PocoDataPostgreSQLmt - - - ..\..\bin\ - obj\PostgreSQL\$(Configuration)\ - true - - - ..\..\bin\ - obj\PostgreSQL\$(Configuration)\ - false - - - ..\..\lib\ - obj\PostgreSQL\$(Configuration)\ - - - ..\..\lib\ - obj\PostgreSQL\$(Configuration)\ - - - ..\..\lib\ - obj\PostgreSQL\$(Configuration)\ - - - ..\..\lib\ - obj\PostgreSQL\$(Configuration)\ - - - ..\..\bin64\ - obj64\PostgreSQL\$(Configuration)\ - true - - - ..\..\bin64\ - obj64\PostgreSQL\$(Configuration)\ - false - - - ..\..\lib64\ - obj64\PostgreSQL\$(Configuration)\ - - - ..\..\lib64\ - obj64\PostgreSQL\$(Configuration)\ - - - ..\..\lib64\ - obj64\PostgreSQL\$(Configuration)\ - - - ..\..\lib64\ - obj64\PostgreSQL\$(Configuration)\ - - - - Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\..\bin\PocoDataPostgreSQLd.dll - true - true - ..\..\bin\PocoDataPostgreSQLd.pdb - ..\..\lib;%(AdditionalLibraryDirectories) - Console - ..\..\lib\PocoDataPostgreSQLd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\..\bin\PocoDataPostgreSQL.dll - true - false - ..\..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\..\lib\PocoDataPostgreSQL.lib - MachineX86 - - - - - Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\..\lib\PocoDataPostgreSQLmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib\PocoDataPostgreSQLmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\..\lib\PocoDataPostgreSQLmt.lib - - - - - Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\..\lib\PocoDataPostgreSQLmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib\PocoDataPostgreSQLmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\..\lib\PocoDataPostgreSQLmd.pdb - Level3 - - Default - true - - - ..\..\lib\PocoDataPostgreSQLmd.lib - - - - - Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\..\bin64\PocoDataPostgreSQL64d.dll - true - true - ..\..\bin64\PocoDataPostgreSQL64d.pdb - ..\..\lib64;%(AdditionalLibraryDirectories) - Console - ..\..\lib64\PocoDataPostgreSQLd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\..\bin64\PocoDataPostgreSQL64.dll - true - false - ..\..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\..\lib64\PocoDataPostgreSQL.lib - MachineX64 - - - - - Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\..\lib64\PocoDataPostgreSQLmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib64\PocoDataPostgreSQLmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\..\lib64\PocoDataPostgreSQLmt.lib - - - - - Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\..\lib64\PocoDataPostgreSQLmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib64\PocoDataPostgreSQLmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\..\lib64\PocoDataPostgreSQLmd.lib - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Data/PostgreSQL/PostgreSQL_vs140.vcxproj.filters b/Data/PostgreSQL/PostgreSQL_vs140.vcxproj.filters deleted file mode 100644 index c71d3e09f..000000000 --- a/Data/PostgreSQL/PostgreSQL_vs140.vcxproj.filters +++ /dev/null @@ -1,89 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - \ No newline at end of file diff --git a/Data/PostgreSQL/PostgreSQL_vs150.sln b/Data/PostgreSQL/PostgreSQL_vs150.sln deleted file mode 100644 index 3db39351e..000000000 --- a/Data/PostgreSQL/PostgreSQL_vs150.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PostgreSQL", "PostgreSQL_vs150.vcxproj", "{73E19FDE-1570-488C-B3DB-72A60FADD408}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}" - ProjectSection(ProjectDependencies) = postProject - {73E19FDE-1570-488C-B3DB-72A60FADD408} = {73E19FDE-1570-488C-B3DB-72A60FADD408} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|Win32.Build.0 = release_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|x64.Build.0 = debug_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|x64.ActiveCfg = release_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|x64.Build.0 = release_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_shared|x64.Deploy.0 = release_shared|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|x64.Build.0 = release_static_md|x64 - {73E19FDE-1570-488C-B3DB-72A60FADD408}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|Win32.Build.0 = release_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|x64.Build.0 = debug_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|x64.ActiveCfg = release_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|x64.Build.0 = release_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_shared|x64.Deploy.0 = release_shared|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|x64.Build.0 = release_static_md|x64 - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Data/PostgreSQL/PostgreSQL_vs150.vcxproj b/Data/PostgreSQL/PostgreSQL_vs150.vcxproj deleted file mode 100644 index 69b920311..000000000 --- a/Data/PostgreSQL/PostgreSQL_vs150.vcxproj +++ /dev/null @@ -1,606 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - PostgreSQL - {73E19FDE-1570-488C-B3DB-72A60FADD408} - PostgreSQL - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PocoDataPostgreSQLd - PocoDataPostgreSQLmdd - PocoDataPostgreSQLmtd - PocoDataPostgreSQL - PocoDataPostgreSQLmd - PocoDataPostgreSQLmt - PocoDataPostgreSQL64d - PocoDataPostgreSQLmdd - PocoDataPostgreSQLmtd - PocoDataPostgreSQL64 - PocoDataPostgreSQLmd - PocoDataPostgreSQLmt - - - ..\..\bin\ - obj\PostgreSQL\$(Configuration)\ - true - - - ..\..\bin\ - obj\PostgreSQL\$(Configuration)\ - false - - - ..\..\lib\ - obj\PostgreSQL\$(Configuration)\ - - - ..\..\lib\ - obj\PostgreSQL\$(Configuration)\ - - - ..\..\lib\ - obj\PostgreSQL\$(Configuration)\ - - - ..\..\lib\ - obj\PostgreSQL\$(Configuration)\ - - - ..\..\bin64\ - obj64\PostgreSQL\$(Configuration)\ - true - - - ..\..\bin64\ - obj64\PostgreSQL\$(Configuration)\ - false - - - ..\..\lib64\ - obj64\PostgreSQL\$(Configuration)\ - - - ..\..\lib64\ - obj64\PostgreSQL\$(Configuration)\ - - - ..\..\lib64\ - obj64\PostgreSQL\$(Configuration)\ - - - ..\..\lib64\ - obj64\PostgreSQL\$(Configuration)\ - - - - Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\..\bin\PocoDataPostgreSQLd.dll - true - true - ..\..\bin\PocoDataPostgreSQLd.pdb - ..\..\lib;%(AdditionalLibraryDirectories) - Console - ..\..\lib\PocoDataPostgreSQLd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\..\bin\PocoDataPostgreSQL.dll - true - false - ..\..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\..\lib\PocoDataPostgreSQL.lib - MachineX86 - - - - - Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\..\lib\PocoDataPostgreSQLmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib\PocoDataPostgreSQLmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\..\lib\PocoDataPostgreSQLmt.lib - - - - - Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\..\lib\PocoDataPostgreSQLmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib\PocoDataPostgreSQLmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\..\lib\PocoDataPostgreSQLmd.pdb - Level3 - - Default - true - - - ..\..\lib\PocoDataPostgreSQLmd.lib - - - - - Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\..\bin64\PocoDataPostgreSQL64d.dll - true - true - ..\..\bin64\PocoDataPostgreSQL64d.pdb - ..\..\lib64;%(AdditionalLibraryDirectories) - Console - ..\..\lib64\PocoDataPostgreSQLd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\..\bin64\PocoDataPostgreSQL64.dll - true - false - ..\..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\..\lib64\PocoDataPostgreSQL.lib - MachineX64 - - - - - Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\..\lib64\PocoDataPostgreSQLmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib64\PocoDataPostgreSQLmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\..\lib64\PocoDataPostgreSQLmt.lib - - - - - Disabled - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\..\lib64\PocoDataPostgreSQLmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\..\lib64\PocoDataPostgreSQLmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\..\lib64\PocoDataPostgreSQLmd.lib - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Data/PostgreSQL/PostgreSQL_vs150.vcxproj.filters b/Data/PostgreSQL/PostgreSQL_vs150.vcxproj.filters deleted file mode 100644 index c71d3e09f..000000000 --- a/Data/PostgreSQL/PostgreSQL_vs150.vcxproj.filters +++ /dev/null @@ -1,89 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {93995380-89BD-4b04-88EB-625FBE52EBFB} - h;hpp;hxx;hm;inl;inc;xsd - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - \ No newline at end of file diff --git a/Data/PostgreSQL/testsuite/TestSuite_vs140.vcxproj b/Data/PostgreSQL/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index 69e2cda44..000000000 --- a/Data/PostgreSQL/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,621 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - true - - - true - - - true - - - true - - - - - diff --git a/Data/PostgreSQL/testsuite/TestSuite_vs140.vcxproj.filters b/Data/PostgreSQL/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index ef43083b9..000000000 --- a/Data/PostgreSQL/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,54 +0,0 @@ - - - - - {c741cadb-a168-44e3-8e2e-041f1c35892e} - - - {051c499f-ff00-4216-a6c0-e2ecb18dd667} - - - {757f1d28-2188-4098-b309-019bf50e3b21} - - - {bbe51f71-518c-46a6-a010-6bc17f59120d} - - - {c40296a0-62ab-479a-b1ef-b1dd60ce86b0} - - - {09d03eb4-c4b5-41a7-9598-d7a5f08c633f} - - - {de1b43e6-d956-45ab-b6b8-4a0369a7a097} - - - {346ff4b0-168f-4d61-a5de-b15de944f259} - - - - - PostgreSQL\Header Files - - - PostgreSQL\Header Files - - - _Suite\Header Files - - - - - PostgreSQL\Source Files - - - PostgreSQL\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - \ No newline at end of file diff --git a/Data/PostgreSQL/testsuite/TestSuite_vs150.vcxproj b/Data/PostgreSQL/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index e9ac3af5d..000000000 --- a/Data/PostgreSQL/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,621 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15} - TestSuite - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - true - - - true - - - true - - - true - - - - - diff --git a/Data/PostgreSQL/testsuite/TestSuite_vs150.vcxproj.filters b/Data/PostgreSQL/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index 6d1e4c6a7..000000000 --- a/Data/PostgreSQL/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,54 +0,0 @@ - - - - - {f0fd11db-6e69-475f-9bcb-27eadd449769} - - - {d4a51ece-c71f-4092-bf6f-d525d0b2731d} - - - {0b78c95f-48c7-4368-b0d1-311189c2d121} - - - {33096ecd-1e8f-4cba-bea3-8d98680e82ce} - - - {7020fe54-a4bc-4d59-b13c-4e30b6a3bfaf} - - - {d156bed9-39a1-4b00-826f-ed16b4f86984} - - - {2c9fbf92-af16-443b-9dee-fcb0cb153887} - - - {00c61c55-c0c7-46e9-9f9d-e6afc5ed5c6f} - - - - - PostgreSQL\Header Files - - - PostgreSQL\Header Files - - - _Suite\Header Files - - - - - PostgreSQL\Source Files - - - PostgreSQL\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - \ No newline at end of file diff --git a/Data/SQLite/SQLite_vs140.sln b/Data/SQLite/SQLite_vs140.sln deleted file mode 100644 index bb63586c0..000000000 --- a/Data/SQLite/SQLite_vs140.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SQLite", "SQLite_vs140.vcxproj", "{5B889CE7-AD42-4CFE-BBC3-532B61F8329E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{45528A81-2523-48DD-AEB3-6B6BD73A2C5D}" - ProjectSection(ProjectDependencies) = postProject - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E} = {5B889CE7-AD42-4CFE-BBC3-532B61F8329E} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_shared|Win32.Build.0 = release_shared|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_shared|x64.Build.0 = debug_shared|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_shared|x64.ActiveCfg = release_shared|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_shared|x64.Build.0 = release_shared|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_shared|x64.Deploy.0 = release_shared|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_md|x64.Build.0 = release_static_md|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_shared|Win32.Build.0 = release_shared|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_shared|x64.Build.0 = debug_shared|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_shared|x64.ActiveCfg = release_shared|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_shared|x64.Build.0 = release_shared|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_shared|x64.Deploy.0 = release_shared|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_md|x64.Build.0 = release_static_md|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Data/SQLite/SQLite_vs140.vcxproj b/Data/SQLite/SQLite_vs140.vcxproj deleted file mode 100644 index ea76caf0e..000000000 --- a/Data/SQLite/SQLite_vs140.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - SQLite - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E} - SQLite - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoDataSQLited - PocoDataSQLitemdd - PocoDataSQLitemtd - PocoDataSQLite - PocoDataSQLitemd - PocoDataSQLitemt - PocoDataSQLite64d - PocoDataSQLitemdd - PocoDataSQLitemtd - PocoDataSQLite64 - PocoDataSQLitemd - PocoDataSQLitemt - - - ..\..\bin\ - obj\SQLite\$(Configuration)\ - true - - - ..\..\bin\ - obj\SQLite\$(Configuration)\ - false - - - ..\..\lib\ - obj\SQLite\$(Configuration)\ - - - ..\..\lib\ - obj\SQLite\$(Configuration)\ - - - ..\..\lib\ - obj\SQLite\$(Configuration)\ - - - ..\..\lib\ - obj\SQLite\$(Configuration)\ - - - ..\..\bin64\ - obj64\SQLite\$(Configuration)\ - true - - - ..\..\bin64\ - obj64\SQLite\$(Configuration)\ - false - - - ..\..\lib64\ - obj64\SQLite\$(Configuration)\ - - - ..\..\lib64\ - obj64\SQLite\$(Configuration)\ - - - ..\..\lib64\ - obj64\SQLite\$(Configuration)\ - - - ..\..\lib64\ - obj64\SQLite\$(Configuration)\ - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\bin\PocoDataSQLited.dll - true - true - ..\..\bin\PocoDataSQLited.pdb - ..\..\lib;%(AdditionalLibraryDirectories) - Console - ..\..\lib\PocoDataSQLited.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\bin\PocoDataSQLite.dll - true - false - ..\..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\..\lib\PocoDataSQLite.lib - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\..\lib\PocoDataSQLitemtd.pdb - Level3 - ProgramDatabase - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\lib\PocoDataSQLitemtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\lib\PocoDataSQLitemt.lib - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\..\lib\PocoDataSQLitemdd.pdb - Level3 - ProgramDatabase - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\lib\PocoDataSQLitemdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\..\lib\PocoDataSQLitemd.pdb - Level3 - - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\lib\PocoDataSQLitemd.lib - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\bin64\PocoDataSQLite64d.dll - true - true - ..\..\bin64\PocoDataSQLite64d.pdb - ..\..\lib64;%(AdditionalLibraryDirectories) - Console - ..\..\lib64\PocoDataSQLited.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\bin64\PocoDataSQLite64.dll - true - false - ..\..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\..\lib64\PocoDataSQLite.lib - MachineX64 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\..\lib64\PocoDataSQLitemtd.pdb - Level3 - ProgramDatabase - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\lib64\PocoDataSQLitemtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\lib64\PocoDataSQLitemt.lib - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\..\lib64\PocoDataSQLitemdd.pdb - Level3 - ProgramDatabase - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\lib64\PocoDataSQLitemdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\lib64\PocoDataSQLitemd.lib - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Data/SQLite/SQLite_vs140.vcxproj.filters b/Data/SQLite/SQLite_vs140.vcxproj.filters deleted file mode 100644 index dd8389372..000000000 --- a/Data/SQLite/SQLite_vs140.vcxproj.filters +++ /dev/null @@ -1,87 +0,0 @@ - - - - - {a694e144-dbd3-4317-84ce-e530c2ff3b64} - - - {138dfd83-4a5f-4a22-b677-f876f265ac96} - - - {89f5faf3-a660-4cd4-88e7-42c61fdb8ed5} - - - {f56abf0c-d16d-462c-9cff-c74e78aae13c} - - - {6b6bdf03-a2e5-4624-aa34-d43efa5f2e3d} - - - {3aac0fdf-5859-4195-a8a9-c48a9159b87f} - - - - - SQLite\Header Files - - - SQLite\Header Files - - - SQLite\Header Files - - - SQLite\Header Files - - - SQLite\Header Files - - - SQLite\Header Files - - - SQLite\Header Files - - - SQLite\Header Files - - - SQLite\Header Files - - - 3rdparty\Header Files - - - - - SQLite\Source Files - - - SQLite\Source Files - - - SQLite\Source Files - - - SQLite\Source Files - - - SQLite\Source Files - - - SQLite\Source Files - - - SQLite\Source Files - - - SQLite\Source Files - - - 3rdparty\Source Files - - - - - - \ No newline at end of file diff --git a/Data/SQLite/SQLite_vs150.sln b/Data/SQLite/SQLite_vs150.sln deleted file mode 100644 index cde9bdfcd..000000000 --- a/Data/SQLite/SQLite_vs150.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SQLite", "SQLite_vs150.vcxproj", "{5B889CE7-AD42-4CFE-BBC3-532B61F8329E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{45528A81-2523-48DD-AEB3-6B6BD73A2C5D}" - ProjectSection(ProjectDependencies) = postProject - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E} = {5B889CE7-AD42-4CFE-BBC3-532B61F8329E} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_shared|Win32.Build.0 = release_shared|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_shared|x64.Build.0 = debug_shared|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_shared|x64.ActiveCfg = release_shared|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_shared|x64.Build.0 = release_shared|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_shared|x64.Deploy.0 = release_shared|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_md|x64.Build.0 = release_static_md|x64 - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_shared|Win32.Build.0 = release_shared|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_shared|x64.Build.0 = debug_shared|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_shared|x64.ActiveCfg = release_shared|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_shared|x64.Build.0 = release_shared|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_shared|x64.Deploy.0 = release_shared|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_md|x64.Build.0 = release_static_md|x64 - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Data/SQLite/SQLite_vs150.vcxproj b/Data/SQLite/SQLite_vs150.vcxproj deleted file mode 100644 index f2f31ba9e..000000000 --- a/Data/SQLite/SQLite_vs150.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - SQLite - {5B889CE7-AD42-4CFE-BBC3-532B61F8329E} - SQLite - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PocoDataSQLited - PocoDataSQLitemdd - PocoDataSQLitemtd - PocoDataSQLite - PocoDataSQLitemd - PocoDataSQLitemt - PocoDataSQLite64d - PocoDataSQLitemdd - PocoDataSQLitemtd - PocoDataSQLite64 - PocoDataSQLitemd - PocoDataSQLitemt - - - ..\..\bin\ - obj\SQLite\$(Configuration)\ - true - - - ..\..\bin\ - obj\SQLite\$(Configuration)\ - false - - - ..\..\lib\ - obj\SQLite\$(Configuration)\ - - - ..\..\lib\ - obj\SQLite\$(Configuration)\ - - - ..\..\lib\ - obj\SQLite\$(Configuration)\ - - - ..\..\lib\ - obj\SQLite\$(Configuration)\ - - - ..\..\bin64\ - obj64\SQLite\$(Configuration)\ - true - - - ..\..\bin64\ - obj64\SQLite\$(Configuration)\ - false - - - ..\..\lib64\ - obj64\SQLite\$(Configuration)\ - - - ..\..\lib64\ - obj64\SQLite\$(Configuration)\ - - - ..\..\lib64\ - obj64\SQLite\$(Configuration)\ - - - ..\..\lib64\ - obj64\SQLite\$(Configuration)\ - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\bin\PocoDataSQLited.dll - true - true - ..\..\bin\PocoDataSQLited.pdb - ..\..\lib;%(AdditionalLibraryDirectories) - Console - ..\..\lib\PocoDataSQLited.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\bin\PocoDataSQLite.dll - true - false - ..\..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\..\lib\PocoDataSQLite.lib - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\..\lib\PocoDataSQLitemtd.pdb - Level3 - ProgramDatabase - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\lib\PocoDataSQLitemtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\lib\PocoDataSQLitemt.lib - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\..\lib\PocoDataSQLitemdd.pdb - Level3 - ProgramDatabase - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\lib\PocoDataSQLitemdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\..\lib\PocoDataSQLitemd.pdb - Level3 - - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\lib\PocoDataSQLitemd.lib - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\bin64\PocoDataSQLite64d.dll - true - true - ..\..\bin64\PocoDataSQLite64d.pdb - ..\..\lib64;%(AdditionalLibraryDirectories) - Console - ..\..\lib64\PocoDataSQLited.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\bin64\PocoDataSQLite64.dll - true - false - ..\..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\..\lib64\PocoDataSQLite.lib - MachineX64 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\..\lib64\PocoDataSQLitemtd.pdb - Level3 - ProgramDatabase - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\lib64\PocoDataSQLitemtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\lib64\PocoDataSQLitemt.lib - - - - - Disabled - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\..\lib64\PocoDataSQLitemdd.pdb - Level3 - ProgramDatabase - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\lib64\PocoDataSQLitemdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - 4996;4244;4018;%(DisableSpecificWarnings) - true - - - ..\..\lib64\PocoDataSQLitemd.lib - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Data/SQLite/SQLite_vs150.vcxproj.filters b/Data/SQLite/SQLite_vs150.vcxproj.filters deleted file mode 100644 index ca9c70513..000000000 --- a/Data/SQLite/SQLite_vs150.vcxproj.filters +++ /dev/null @@ -1,87 +0,0 @@ - - - - - {e7a11320-49e9-4081-9a65-5b2a93bc8a7a} - - - {198cc26b-67ac-4ed0-90e2-6e090ea68cd6} - - - {cf47077f-801e-4d2d-a511-20ff0d9ddd3b} - - - {bd2a35b5-1269-4c18-aed4-361f44bc1ea6} - - - {8d0c3d69-0ad5-43bb-bdce-b5ebac6aa987} - - - {90288a8c-6158-4e0f-b9ae-20f4a8611df5} - - - - - SQLite\Header Files - - - SQLite\Header Files - - - SQLite\Header Files - - - SQLite\Header Files - - - SQLite\Header Files - - - SQLite\Header Files - - - SQLite\Header Files - - - SQLite\Header Files - - - SQLite\Header Files - - - 3rdparty\Header Files - - - - - SQLite\Source Files - - - SQLite\Source Files - - - SQLite\Source Files - - - SQLite\Source Files - - - SQLite\Source Files - - - SQLite\Source Files - - - SQLite\Source Files - - - SQLite\Source Files - - - 3rdparty\Source Files - - - - - - \ No newline at end of file diff --git a/Data/SQLite/testsuite/TestSuite_vs140.vcxproj b/Data/SQLite/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index 5ecceba09..000000000 --- a/Data/SQLite/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,617 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - true - - - true - - - true - - - - - diff --git a/Data/SQLite/testsuite/TestSuite_vs140.vcxproj.filters b/Data/SQLite/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index 9a0d1810c..000000000 --- a/Data/SQLite/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,48 +0,0 @@ - - - - - {abf48516-5273-46b7-b30f-2714724fc7d8} - - - {eec7cdf9-d36f-41ef-8d14-82b1109dac08} - - - {1d003886-d13e-4880-a8f4-486e2b6147fc} - - - {bacd3cfa-61a0-4ba5-b2aa-610009392ba8} - - - {085aeab4-5298-415d-b6db-d376291a12ce} - - - {e8e60012-14a9-4269-a07f-dd6ee8d8c6a9} - - - {1053dfb9-edb8-469e-a6d0-c03a5594870b} - - - {0f9c8854-7334-4566-bfd6-d5b201b67737} - - - - - SQLite\Header Files - - - _Suite\Header Files - - - - - SQLite\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - \ No newline at end of file diff --git a/Data/SQLite/testsuite/TestSuite_vs150.vcxproj b/Data/SQLite/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index 807f79016..000000000 --- a/Data/SQLite/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,617 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {45528A81-2523-48DD-AEB3-6B6BD73A2C5D} - TestSuite - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - true - - - true - - - true - - - - - diff --git a/Data/SQLite/testsuite/TestSuite_vs150.vcxproj.filters b/Data/SQLite/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index b21b678a7..000000000 --- a/Data/SQLite/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,48 +0,0 @@ - - - - - {14835ece-9865-487e-a541-4133c3b2c328} - - - {cceec5ac-ff2a-422a-9ef9-437f94fefbf0} - - - {c231cdd0-838c-47b2-81c8-3c1dda5094f1} - - - {99c97f62-e37c-487c-82aa-3913778ba58f} - - - {fca3bc6c-a602-427d-88f0-b8cbc22e0c0a} - - - {d161c276-3433-48c4-8f2d-7691f103117a} - - - {d8416f9e-20b8-4b90-aad1-c59f29a92fbb} - - - {30e69348-7ced-48d2-9822-aa03c446b9b3} - - - - - SQLite\Header Files - - - _Suite\Header Files - - - - - SQLite\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - \ No newline at end of file diff --git a/Data/samples/Binding/Binding_vs140.vcxproj b/Data/samples/Binding/Binding_vs140.vcxproj deleted file mode 100644 index 2899ec11a..000000000 --- a/Data/samples/Binding/Binding_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Binding - {0F0DF069-83D1-378D-A949-8DF9A883B627} - Binding - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - Bindingd - Bindingd - Bindingd - Binding - Binding - Binding - Bindingd - Bindingd - Bindingd - Binding - Binding - Binding - - - bin\ - obj\Binding\$(Configuration)\ - true - - - bin\ - obj\Binding\$(Configuration)\ - false - - - bin\static_mt\ - obj\Binding\$(Configuration)\ - true - - - bin\static_mt\ - obj\Binding\$(Configuration)\ - false - - - bin\static_md\ - obj\Binding\$(Configuration)\ - true - - - bin\static_md\ - obj\Binding\$(Configuration)\ - false - - - bin64\ - obj64\Binding\$(Configuration)\ - true - - - bin64\ - obj64\Binding\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Binding\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Binding\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Binding\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Binding\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\Bindingd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Bindingd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\Binding.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Bindingd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Bindingd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Binding.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Bindingd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Bindingd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Binding.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\Bindingd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Bindingd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\Binding.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Bindingd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Bindingd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Binding.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Bindingd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Bindingd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Binding.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Data/samples/Binding/Binding_vs140.vcxproj.filters b/Data/samples/Binding/Binding_vs140.vcxproj.filters deleted file mode 100644 index a3ab1ec1b..000000000 --- a/Data/samples/Binding/Binding_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {72cd529e-3ef0-410a-84bc-3741f4c776d0} - - - {b65a6400-12c4-40a7-a39d-dac340429e6e} - - - - - Source Files - - - \ No newline at end of file diff --git a/Data/samples/Binding/Binding_vs150.vcxproj b/Data/samples/Binding/Binding_vs150.vcxproj deleted file mode 100644 index b6fe83425..000000000 --- a/Data/samples/Binding/Binding_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Binding - {0F0DF069-83D1-378D-A949-8DF9A883B627} - Binding - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - Bindingd - Bindingd - Bindingd - Binding - Binding - Binding - Bindingd - Bindingd - Bindingd - Binding - Binding - Binding - - - bin\ - obj\Binding\$(Configuration)\ - true - - - bin\ - obj\Binding\$(Configuration)\ - false - - - bin\static_mt\ - obj\Binding\$(Configuration)\ - true - - - bin\static_mt\ - obj\Binding\$(Configuration)\ - false - - - bin\static_md\ - obj\Binding\$(Configuration)\ - true - - - bin\static_md\ - obj\Binding\$(Configuration)\ - false - - - bin64\ - obj64\Binding\$(Configuration)\ - true - - - bin64\ - obj64\Binding\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Binding\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Binding\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Binding\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Binding\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\Bindingd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Bindingd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\Binding.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Bindingd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Bindingd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Binding.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Bindingd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Bindingd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Binding.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\Bindingd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Bindingd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\Binding.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Bindingd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Bindingd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Binding.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Bindingd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Bindingd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Binding.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Data/samples/Binding/Binding_vs150.vcxproj.filters b/Data/samples/Binding/Binding_vs150.vcxproj.filters deleted file mode 100644 index a8c9ae3f4..000000000 --- a/Data/samples/Binding/Binding_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {042f3201-46e3-4548-a794-058bfee07b05} - - - {5cfb3f43-3006-4e56-801f-0e86c44a4344} - - - - - Source Files - - - \ No newline at end of file diff --git a/Data/samples/RecordSet/RecordSet_vs140.vcxproj b/Data/samples/RecordSet/RecordSet_vs140.vcxproj deleted file mode 100644 index 21f05e028..000000000 --- a/Data/samples/RecordSet/RecordSet_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - RecordSet - {FEE20DCE-B9E3-30AB-A40C-B6A324997328} - RecordSet - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - RecordSetd - RecordSetd - RecordSetd - RecordSet - RecordSet - RecordSet - RecordSetd - RecordSetd - RecordSetd - RecordSet - RecordSet - RecordSet - - - bin\ - obj\RecordSet\$(Configuration)\ - true - - - bin\ - obj\RecordSet\$(Configuration)\ - false - - - bin\static_mt\ - obj\RecordSet\$(Configuration)\ - true - - - bin\static_mt\ - obj\RecordSet\$(Configuration)\ - false - - - bin\static_md\ - obj\RecordSet\$(Configuration)\ - true - - - bin\static_md\ - obj\RecordSet\$(Configuration)\ - false - - - bin64\ - obj64\RecordSet\$(Configuration)\ - true - - - bin64\ - obj64\RecordSet\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\RecordSet\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\RecordSet\$(Configuration)\ - false - - - bin64\static_md\ - obj64\RecordSet\$(Configuration)\ - true - - - bin64\static_md\ - obj64\RecordSet\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\RecordSetd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\RecordSetd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\RecordSet.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\RecordSetd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\RecordSetd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\RecordSet.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\RecordSetd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\RecordSetd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\RecordSet.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\RecordSetd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\RecordSetd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\RecordSet.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\RecordSetd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\RecordSetd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\RecordSet.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\RecordSetd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\RecordSetd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\RecordSet.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Data/samples/RecordSet/RecordSet_vs140.vcxproj.filters b/Data/samples/RecordSet/RecordSet_vs140.vcxproj.filters deleted file mode 100644 index 0d04d5c02..000000000 --- a/Data/samples/RecordSet/RecordSet_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {28281ed5-8722-4213-bc03-1bdd3f4dfc27} - - - {04b96b67-5e52-4de4-a895-f2dbc8af8fc6} - - - - - Source Files - - - \ No newline at end of file diff --git a/Data/samples/RecordSet/RecordSet_vs150.vcxproj b/Data/samples/RecordSet/RecordSet_vs150.vcxproj deleted file mode 100644 index 12e67e4a0..000000000 --- a/Data/samples/RecordSet/RecordSet_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - RecordSet - {FEE20DCE-B9E3-30AB-A40C-B6A324997328} - RecordSet - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - RecordSetd - RecordSetd - RecordSetd - RecordSet - RecordSet - RecordSet - RecordSetd - RecordSetd - RecordSetd - RecordSet - RecordSet - RecordSet - - - bin\ - obj\RecordSet\$(Configuration)\ - true - - - bin\ - obj\RecordSet\$(Configuration)\ - false - - - bin\static_mt\ - obj\RecordSet\$(Configuration)\ - true - - - bin\static_mt\ - obj\RecordSet\$(Configuration)\ - false - - - bin\static_md\ - obj\RecordSet\$(Configuration)\ - true - - - bin\static_md\ - obj\RecordSet\$(Configuration)\ - false - - - bin64\ - obj64\RecordSet\$(Configuration)\ - true - - - bin64\ - obj64\RecordSet\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\RecordSet\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\RecordSet\$(Configuration)\ - false - - - bin64\static_md\ - obj64\RecordSet\$(Configuration)\ - true - - - bin64\static_md\ - obj64\RecordSet\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\RecordSetd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\RecordSetd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\RecordSet.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\RecordSetd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\RecordSetd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\RecordSet.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\RecordSetd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\RecordSetd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\RecordSet.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\RecordSetd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\RecordSetd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\RecordSet.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\RecordSetd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\RecordSetd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\RecordSet.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\RecordSetd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\RecordSetd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\RecordSet.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Data/samples/RecordSet/RecordSet_vs150.vcxproj.filters b/Data/samples/RecordSet/RecordSet_vs150.vcxproj.filters deleted file mode 100644 index da0260921..000000000 --- a/Data/samples/RecordSet/RecordSet_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {adca51bf-0e74-4f3e-b0f9-d6aedb17c66b} - - - {2f352def-ce44-471c-9344-39dadbb6635f} - - - - - Source Files - - - \ No newline at end of file diff --git a/Data/samples/RowFormatter/RowFormatter_vs140.vcxproj b/Data/samples/RowFormatter/RowFormatter_vs140.vcxproj deleted file mode 100644 index a6993f88c..000000000 --- a/Data/samples/RowFormatter/RowFormatter_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - RowFormatter - {133C62C7-3301-3F43-9ABF-14DF094A042F} - RowFormatter - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - RowFormatterd - RowFormatterd - RowFormatterd - RowFormatter - RowFormatter - RowFormatter - RowFormatterd - RowFormatterd - RowFormatterd - RowFormatter - RowFormatter - RowFormatter - - - bin\ - obj\RowFormatter\$(Configuration)\ - true - - - bin\ - obj\RowFormatter\$(Configuration)\ - false - - - bin\static_mt\ - obj\RowFormatter\$(Configuration)\ - true - - - bin\static_mt\ - obj\RowFormatter\$(Configuration)\ - false - - - bin\static_md\ - obj\RowFormatter\$(Configuration)\ - true - - - bin\static_md\ - obj\RowFormatter\$(Configuration)\ - false - - - bin64\ - obj64\RowFormatter\$(Configuration)\ - true - - - bin64\ - obj64\RowFormatter\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\RowFormatter\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\RowFormatter\$(Configuration)\ - false - - - bin64\static_md\ - obj64\RowFormatter\$(Configuration)\ - true - - - bin64\static_md\ - obj64\RowFormatter\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\RowFormatterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\RowFormatterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\RowFormatter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\RowFormatterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\RowFormatterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\RowFormatter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\RowFormatterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\RowFormatterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\RowFormatter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\RowFormatterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\RowFormatterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\RowFormatter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\RowFormatterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\RowFormatterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\RowFormatter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\RowFormatterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\RowFormatterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\RowFormatter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Data/samples/RowFormatter/RowFormatter_vs140.vcxproj.filters b/Data/samples/RowFormatter/RowFormatter_vs140.vcxproj.filters deleted file mode 100644 index e0bbe9331..000000000 --- a/Data/samples/RowFormatter/RowFormatter_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {33080a95-452c-4fac-b182-d8730d3b6153} - - - {9cea0a30-957b-47b2-b3b4-62a887302196} - - - - - Source Files - - - \ No newline at end of file diff --git a/Data/samples/RowFormatter/RowFormatter_vs150.vcxproj b/Data/samples/RowFormatter/RowFormatter_vs150.vcxproj deleted file mode 100644 index ddfc21409..000000000 --- a/Data/samples/RowFormatter/RowFormatter_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - RowFormatter - {133C62C7-3301-3F43-9ABF-14DF094A042F} - RowFormatter - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - RowFormatterd - RowFormatterd - RowFormatterd - RowFormatter - RowFormatter - RowFormatter - RowFormatterd - RowFormatterd - RowFormatterd - RowFormatter - RowFormatter - RowFormatter - - - bin\ - obj\RowFormatter\$(Configuration)\ - true - - - bin\ - obj\RowFormatter\$(Configuration)\ - false - - - bin\static_mt\ - obj\RowFormatter\$(Configuration)\ - true - - - bin\static_mt\ - obj\RowFormatter\$(Configuration)\ - false - - - bin\static_md\ - obj\RowFormatter\$(Configuration)\ - true - - - bin\static_md\ - obj\RowFormatter\$(Configuration)\ - false - - - bin64\ - obj64\RowFormatter\$(Configuration)\ - true - - - bin64\ - obj64\RowFormatter\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\RowFormatter\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\RowFormatter\$(Configuration)\ - false - - - bin64\static_md\ - obj64\RowFormatter\$(Configuration)\ - true - - - bin64\static_md\ - obj64\RowFormatter\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\RowFormatterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\RowFormatterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\RowFormatter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\RowFormatterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\RowFormatterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\RowFormatter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\RowFormatterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\RowFormatterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\RowFormatter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\RowFormatterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\RowFormatterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\RowFormatter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\RowFormatterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\RowFormatterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\RowFormatter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\RowFormatterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\RowFormatterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\RowFormatter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Data/samples/RowFormatter/RowFormatter_vs150.vcxproj.filters b/Data/samples/RowFormatter/RowFormatter_vs150.vcxproj.filters deleted file mode 100644 index 3090bf90b..000000000 --- a/Data/samples/RowFormatter/RowFormatter_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {5c2022c4-bd85-4d2b-ab52-1a708ac5faa8} - - - {750ef921-70d2-48ac-a6cb-00ea78af89d0} - - - - - Source Files - - - \ No newline at end of file diff --git a/Data/samples/Tuple/Tuple_vs140.vcxproj b/Data/samples/Tuple/Tuple_vs140.vcxproj deleted file mode 100644 index 8e035a8de..000000000 --- a/Data/samples/Tuple/Tuple_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Tuple - {F143DA5A-221A-3737-BCBA-F5BFD977038F} - Tuple - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - Tupled - Tupled - Tupled - Tuple - Tuple - Tuple - Tupled - Tupled - Tupled - Tuple - Tuple - Tuple - - - bin\ - obj\Tuple\$(Configuration)\ - true - - - bin\ - obj\Tuple\$(Configuration)\ - false - - - bin\static_mt\ - obj\Tuple\$(Configuration)\ - true - - - bin\static_mt\ - obj\Tuple\$(Configuration)\ - false - - - bin\static_md\ - obj\Tuple\$(Configuration)\ - true - - - bin\static_md\ - obj\Tuple\$(Configuration)\ - false - - - bin64\ - obj64\Tuple\$(Configuration)\ - true - - - bin64\ - obj64\Tuple\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Tuple\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Tuple\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Tuple\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Tuple\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\Tupled.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Tupled.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\Tuple.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Tupled.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Tupled.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Tuple.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Tupled.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Tupled.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Tuple.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\Tupled.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Tupled.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\Tuple.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Tupled.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Tupled.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Tuple.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Tupled.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Tupled.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Tuple.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Data/samples/Tuple/Tuple_vs140.vcxproj.filters b/Data/samples/Tuple/Tuple_vs140.vcxproj.filters deleted file mode 100644 index 1018de122..000000000 --- a/Data/samples/Tuple/Tuple_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {868e333a-d0f4-4394-b16e-318e381bdd0c} - - - {faecbcfe-b95e-48b4-ade1-af942e35c674} - - - - - Source Files - - - \ No newline at end of file diff --git a/Data/samples/Tuple/Tuple_vs150.vcxproj b/Data/samples/Tuple/Tuple_vs150.vcxproj deleted file mode 100644 index f476c9ed5..000000000 --- a/Data/samples/Tuple/Tuple_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Tuple - {F143DA5A-221A-3737-BCBA-F5BFD977038F} - Tuple - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - Tupled - Tupled - Tupled - Tuple - Tuple - Tuple - Tupled - Tupled - Tupled - Tuple - Tuple - Tuple - - - bin\ - obj\Tuple\$(Configuration)\ - true - - - bin\ - obj\Tuple\$(Configuration)\ - false - - - bin\static_mt\ - obj\Tuple\$(Configuration)\ - true - - - bin\static_mt\ - obj\Tuple\$(Configuration)\ - false - - - bin\static_md\ - obj\Tuple\$(Configuration)\ - true - - - bin\static_md\ - obj\Tuple\$(Configuration)\ - false - - - bin64\ - obj64\Tuple\$(Configuration)\ - true - - - bin64\ - obj64\Tuple\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Tuple\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Tuple\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Tuple\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Tuple\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\Tupled.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Tupled.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\Tuple.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Tupled.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Tupled.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Tuple.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Tupled.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Tupled.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Tuple.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\Tupled.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Tupled.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\Tuple.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Tupled.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Tupled.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Tuple.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Tupled.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Tupled.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Tuple.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Data/samples/Tuple/Tuple_vs150.vcxproj.filters b/Data/samples/Tuple/Tuple_vs150.vcxproj.filters deleted file mode 100644 index f739bf6c1..000000000 --- a/Data/samples/Tuple/Tuple_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {36565224-0892-483f-bf5d-ca5bc2f045e6} - - - {c66414ff-6b91-4ff1-bcfc-0a399af4d295} - - - - - Source Files - - - \ No newline at end of file diff --git a/Data/samples/TypeHandler/TypeHandler_vs140.vcxproj b/Data/samples/TypeHandler/TypeHandler_vs140.vcxproj deleted file mode 100644 index a4fa2c355..000000000 --- a/Data/samples/TypeHandler/TypeHandler_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TypeHandler - {65A12348-CA20-324E-9F5E-7F82753C2C65} - TypeHandler - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TypeHandlerd - TypeHandlerd - TypeHandlerd - TypeHandler - TypeHandler - TypeHandler - TypeHandlerd - TypeHandlerd - TypeHandlerd - TypeHandler - TypeHandler - TypeHandler - - - bin\ - obj\TypeHandler\$(Configuration)\ - true - - - bin\ - obj\TypeHandler\$(Configuration)\ - false - - - bin\static_mt\ - obj\TypeHandler\$(Configuration)\ - true - - - bin\static_mt\ - obj\TypeHandler\$(Configuration)\ - false - - - bin\static_md\ - obj\TypeHandler\$(Configuration)\ - true - - - bin\static_md\ - obj\TypeHandler\$(Configuration)\ - false - - - bin64\ - obj64\TypeHandler\$(Configuration)\ - true - - - bin64\ - obj64\TypeHandler\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TypeHandler\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TypeHandler\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TypeHandler\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TypeHandler\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TypeHandlerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TypeHandlerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TypeHandler.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TypeHandlerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TypeHandlerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TypeHandler.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TypeHandlerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TypeHandlerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TypeHandler.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TypeHandlerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TypeHandlerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TypeHandler.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TypeHandlerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TypeHandlerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TypeHandler.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TypeHandlerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TypeHandlerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TypeHandler.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Data/samples/TypeHandler/TypeHandler_vs140.vcxproj.filters b/Data/samples/TypeHandler/TypeHandler_vs140.vcxproj.filters deleted file mode 100644 index ccf77265d..000000000 --- a/Data/samples/TypeHandler/TypeHandler_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {0ea6b45a-30c1-406f-9e48-dfcc95d04fa5} - - - {f44a22b4-cd11-4d42-a38e-eab6c868558c} - - - - - Source Files - - - \ No newline at end of file diff --git a/Data/samples/TypeHandler/TypeHandler_vs150.vcxproj b/Data/samples/TypeHandler/TypeHandler_vs150.vcxproj deleted file mode 100644 index 39600c06b..000000000 --- a/Data/samples/TypeHandler/TypeHandler_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TypeHandler - {65A12348-CA20-324E-9F5E-7F82753C2C65} - TypeHandler - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TypeHandlerd - TypeHandlerd - TypeHandlerd - TypeHandler - TypeHandler - TypeHandler - TypeHandlerd - TypeHandlerd - TypeHandlerd - TypeHandler - TypeHandler - TypeHandler - - - bin\ - obj\TypeHandler\$(Configuration)\ - true - - - bin\ - obj\TypeHandler\$(Configuration)\ - false - - - bin\static_mt\ - obj\TypeHandler\$(Configuration)\ - true - - - bin\static_mt\ - obj\TypeHandler\$(Configuration)\ - false - - - bin\static_md\ - obj\TypeHandler\$(Configuration)\ - true - - - bin\static_md\ - obj\TypeHandler\$(Configuration)\ - false - - - bin64\ - obj64\TypeHandler\$(Configuration)\ - true - - - bin64\ - obj64\TypeHandler\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TypeHandler\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TypeHandler\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TypeHandler\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TypeHandler\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TypeHandlerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TypeHandlerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TypeHandler.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TypeHandlerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TypeHandlerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TypeHandler.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TypeHandlerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TypeHandlerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TypeHandler.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TypeHandlerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TypeHandlerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TypeHandler.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TypeHandlerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TypeHandlerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TypeHandler.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TypeHandlerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TypeHandlerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TypeHandler.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Data/samples/TypeHandler/TypeHandler_vs150.vcxproj.filters b/Data/samples/TypeHandler/TypeHandler_vs150.vcxproj.filters deleted file mode 100644 index 4f0d5281a..000000000 --- a/Data/samples/TypeHandler/TypeHandler_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {1340cb72-9645-42fe-a8ea-dce807610a8a} - - - {b0d68e94-7e04-4e91-9980-366ca50f9949} - - - - - Source Files - - - \ No newline at end of file diff --git a/Data/samples/WebNotifier/WebNotifier_vs140.vcxproj b/Data/samples/WebNotifier/WebNotifier_vs140.vcxproj deleted file mode 100644 index 0e55e43d5..000000000 --- a/Data/samples/WebNotifier/WebNotifier_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - WebNotifier - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754} - WebNotifier - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - WebNotifierd - WebNotifierd - WebNotifierd - WebNotifier - WebNotifier - WebNotifier - WebNotifierd - WebNotifierd - WebNotifierd - WebNotifier - WebNotifier - WebNotifier - - - bin\ - obj\WebNotifier\$(Configuration)\ - true - - - bin\ - obj\WebNotifier\$(Configuration)\ - false - - - bin\static_mt\ - obj\WebNotifier\$(Configuration)\ - true - - - bin\static_mt\ - obj\WebNotifier\$(Configuration)\ - false - - - bin\static_md\ - obj\WebNotifier\$(Configuration)\ - true - - - bin\static_md\ - obj\WebNotifier\$(Configuration)\ - false - - - bin64\ - obj64\WebNotifier\$(Configuration)\ - true - - - bin64\ - obj64\WebNotifier\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\WebNotifier\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\WebNotifier\$(Configuration)\ - false - - - bin64\static_md\ - obj64\WebNotifier\$(Configuration)\ - true - - - bin64\static_md\ - obj64\WebNotifier\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\WebNotifierd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\WebNotifierd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\WebNotifier.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\WebNotifierd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\WebNotifierd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\WebNotifier.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\WebNotifierd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\WebNotifierd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\WebNotifier.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\WebNotifierd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\WebNotifierd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\WebNotifier.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\WebNotifierd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\WebNotifierd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\WebNotifier.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\WebNotifierd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\WebNotifierd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\WebNotifier.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Data/samples/WebNotifier/WebNotifier_vs140.vcxproj.filters b/Data/samples/WebNotifier/WebNotifier_vs140.vcxproj.filters deleted file mode 100644 index c56c844c3..000000000 --- a/Data/samples/WebNotifier/WebNotifier_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {6c826232-03c4-4fca-9920-2addbf5e98cf} - - - {b45e8f80-09c8-4d84-ab31-85e305a696eb} - - - - - Source Files - - - \ No newline at end of file diff --git a/Data/samples/WebNotifier/WebNotifier_vs150.vcxproj b/Data/samples/WebNotifier/WebNotifier_vs150.vcxproj deleted file mode 100644 index 1c7e24a72..000000000 --- a/Data/samples/WebNotifier/WebNotifier_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - WebNotifier - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754} - WebNotifier - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - WebNotifierd - WebNotifierd - WebNotifierd - WebNotifier - WebNotifier - WebNotifier - WebNotifierd - WebNotifierd - WebNotifierd - WebNotifier - WebNotifier - WebNotifier - - - bin\ - obj\WebNotifier\$(Configuration)\ - true - - - bin\ - obj\WebNotifier\$(Configuration)\ - false - - - bin\static_mt\ - obj\WebNotifier\$(Configuration)\ - true - - - bin\static_mt\ - obj\WebNotifier\$(Configuration)\ - false - - - bin\static_md\ - obj\WebNotifier\$(Configuration)\ - true - - - bin\static_md\ - obj\WebNotifier\$(Configuration)\ - false - - - bin64\ - obj64\WebNotifier\$(Configuration)\ - true - - - bin64\ - obj64\WebNotifier\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\WebNotifier\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\WebNotifier\$(Configuration)\ - false - - - bin64\static_md\ - obj64\WebNotifier\$(Configuration)\ - true - - - bin64\static_md\ - obj64\WebNotifier\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\WebNotifierd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\WebNotifierd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\WebNotifier.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\WebNotifierd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\WebNotifierd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\WebNotifier.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\WebNotifierd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\WebNotifierd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\WebNotifier.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\WebNotifierd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\WebNotifierd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\WebNotifier.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\WebNotifierd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\WebNotifierd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\WebNotifier.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\WebNotifierd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\WebNotifierd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\WebNotifier.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Data/samples/WebNotifier/WebNotifier_vs150.vcxproj.filters b/Data/samples/WebNotifier/WebNotifier_vs150.vcxproj.filters deleted file mode 100644 index 9536fd475..000000000 --- a/Data/samples/WebNotifier/WebNotifier_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {c77b948d-6665-4d34-9cbb-f0fd6adfd070} - - - {5b3b5cda-f417-4a56-9369-66e94c8b3cdd} - - - - - Source Files - - - \ No newline at end of file diff --git a/Data/samples/samples_vs140.sln b/Data/samples/samples_vs140.sln deleted file mode 100644 index 7813a4b4e..000000000 --- a/Data/samples/samples_vs140.sln +++ /dev/null @@ -1,251 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Binding", "Binding\Binding_vs140.vcxproj", "{0F0DF069-83D1-378D-A949-8DF9A883B627}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RecordSet", "RecordSet\RecordSet_vs140.vcxproj", "{FEE20DCE-B9E3-30AB-A40C-B6A324997328}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RowFormatter", "RowFormatter\RowFormatter_vs140.vcxproj", "{133C62C7-3301-3F43-9ABF-14DF094A042F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tuple", "Tuple\Tuple_vs140.vcxproj", "{F143DA5A-221A-3737-BCBA-F5BFD977038F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TypeHandler", "TypeHandler\TypeHandler_vs140.vcxproj", "{65A12348-CA20-324E-9F5E-7F82753C2C65}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebNotifier", "WebNotifier\WebNotifier_vs140.vcxproj", "{BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_shared|Win32.Build.0 = release_shared|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_shared|x64.Build.0 = debug_shared|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_shared|x64.ActiveCfg = release_shared|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_shared|x64.Build.0 = release_shared|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_shared|x64.Deploy.0 = release_shared|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_md|x64.Build.0 = release_static_md|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_shared|Win32.Build.0 = release_shared|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_shared|x64.Build.0 = debug_shared|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_shared|x64.ActiveCfg = release_shared|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_shared|x64.Build.0 = release_shared|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_shared|x64.Deploy.0 = release_shared|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_md|x64.Build.0 = release_static_md|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_shared|Win32.Build.0 = release_shared|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_shared|x64.Build.0 = debug_shared|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_shared|x64.ActiveCfg = release_shared|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_shared|x64.Build.0 = release_shared|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_shared|x64.Deploy.0 = release_shared|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_md|x64.Build.0 = release_static_md|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_shared|Win32.Build.0 = release_shared|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_shared|x64.Build.0 = debug_shared|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_shared|x64.ActiveCfg = release_shared|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_shared|x64.Build.0 = release_shared|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_shared|x64.Deploy.0 = release_shared|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_md|x64.Build.0 = release_static_md|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_shared|Win32.Build.0 = release_shared|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_shared|x64.Build.0 = debug_shared|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_shared|x64.ActiveCfg = release_shared|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_shared|x64.Build.0 = release_shared|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_shared|x64.Deploy.0 = release_shared|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_md|x64.Build.0 = release_static_md|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_shared|Win32.Build.0 = release_shared|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_shared|x64.Build.0 = debug_shared|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_shared|x64.ActiveCfg = release_shared|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_shared|x64.Build.0 = release_shared|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_shared|x64.Deploy.0 = release_shared|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_md|x64.Build.0 = release_static_md|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Data/samples/samples_vs150.sln b/Data/samples/samples_vs150.sln deleted file mode 100644 index 23b232f08..000000000 --- a/Data/samples/samples_vs150.sln +++ /dev/null @@ -1,251 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Binding", "Binding\Binding_vs150.vcxproj", "{0F0DF069-83D1-378D-A949-8DF9A883B627}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RecordSet", "RecordSet\RecordSet_vs150.vcxproj", "{FEE20DCE-B9E3-30AB-A40C-B6A324997328}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RowFormatter", "RowFormatter\RowFormatter_vs150.vcxproj", "{133C62C7-3301-3F43-9ABF-14DF094A042F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tuple", "Tuple\Tuple_vs150.vcxproj", "{F143DA5A-221A-3737-BCBA-F5BFD977038F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TypeHandler", "TypeHandler\TypeHandler_vs150.vcxproj", "{65A12348-CA20-324E-9F5E-7F82753C2C65}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebNotifier", "WebNotifier\WebNotifier_vs150.vcxproj", "{BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_shared|Win32.Build.0 = release_shared|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_shared|x64.Build.0 = debug_shared|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_shared|x64.ActiveCfg = release_shared|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_shared|x64.Build.0 = release_shared|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_shared|x64.Deploy.0 = release_shared|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_md|x64.Build.0 = release_static_md|x64 - {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_shared|Win32.Build.0 = release_shared|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_shared|x64.Build.0 = debug_shared|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_shared|x64.ActiveCfg = release_shared|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_shared|x64.Build.0 = release_shared|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_shared|x64.Deploy.0 = release_shared|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_md|x64.Build.0 = release_static_md|x64 - {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_shared|Win32.Build.0 = release_shared|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_shared|x64.Build.0 = debug_shared|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_shared|x64.ActiveCfg = release_shared|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_shared|x64.Build.0 = release_shared|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_shared|x64.Deploy.0 = release_shared|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_md|x64.Build.0 = release_static_md|x64 - {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_shared|Win32.Build.0 = release_shared|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_shared|x64.Build.0 = debug_shared|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_shared|x64.ActiveCfg = release_shared|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_shared|x64.Build.0 = release_shared|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_shared|x64.Deploy.0 = release_shared|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_md|x64.Build.0 = release_static_md|x64 - {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_shared|Win32.Build.0 = release_shared|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_shared|x64.Build.0 = debug_shared|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_shared|x64.ActiveCfg = release_shared|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_shared|x64.Build.0 = release_shared|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_shared|x64.Deploy.0 = release_shared|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_md|x64.Build.0 = release_static_md|x64 - {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_shared|Win32.Build.0 = release_shared|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_shared|x64.Build.0 = debug_shared|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_shared|x64.ActiveCfg = release_shared|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_shared|x64.Build.0 = release_shared|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_shared|x64.Deploy.0 = release_shared|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_md|x64.Build.0 = release_static_md|x64 - {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Data/testsuite/DataTest/DataTest_vs140.vcxproj b/Data/testsuite/DataTest/DataTest_vs140.vcxproj deleted file mode 100644 index 6011756e8..000000000 --- a/Data/testsuite/DataTest/DataTest_vs140.vcxproj +++ /dev/null @@ -1,582 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - 17.0 - DataTest - {240E83C3-368D-11DB-9FBC-00123FC423B5} - DataTest - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>17.0.34202.158 - PocoDataTestd - PocoDataTestmdd - PocoDataTestmtd - PocoDataTest - PocoDataTestmd - PocoDataTestmt - PocoDataTest64d - PocoDataTestmdd - PocoDataTestmtd - PocoDataTest64 - PocoDataTestmd - PocoDataTestmt - - - ..\bin\ - obj\DataTest\$(Configuration)\ - true - - - ..\bin\ - obj\DataTest\$(Configuration)\ - false - - - ..\lib\ - obj\DataTest\$(Configuration)\ - - - ..\lib\ - obj\DataTest\$(Configuration)\ - - - ..\lib\ - obj\DataTest\$(Configuration)\ - - - ..\lib\ - obj\DataTest\$(Configuration)\ - - - ..\bin64\ - obj64\DataTest\$(Configuration)\ - true - - - ..\bin64\ - obj64\DataTest\$(Configuration)\ - false - - - ..\lib64\ - obj64\DataTest\$(Configuration)\ - - - ..\lib64\ - obj64\DataTest\$(Configuration)\ - - - ..\lib64\ - obj64\DataTest\$(Configuration)\ - - - ..\lib64\ - obj64\DataTest\$(Configuration)\ - - - - Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) - true - - - ..\bin\PocoDataTestd.dll - true - true - ..\bin\PocoDataTestd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoDataTestd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) - true - - - ..\bin\PocoDataTest.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoDataTest.lib - MachineX86 - - - - - Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoDataTestmtd.pdb - Level3 - ProgramDatabase - Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) - true - - - ..\lib\PocoDataTestmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) - true - - - ..\lib\PocoDataTestmt.lib - - - - - Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoDataTestmdd.pdb - Level3 - ProgramDatabase - Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) - true - - - ..\lib\PocoDataTestmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoDataTestmd.pdb - Level3 - - Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) - true - - - ..\lib\PocoDataTestmd.lib - - - - - Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) - true - - - ..\bin64\PocoDataTest64d.dll - true - true - ..\bin64\PocoDataTest64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoDataTestd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) - true - - - ..\bin64\PocoDataTest64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoDataTest.lib - MachineX64 - - - - - Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoDataTestmtd.pdb - Level3 - ProgramDatabase - Default - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) - true - - - ..\lib64\PocoDataTestmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) - true - - - ..\lib64\PocoDataTestmt.lib - - - - - Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoDataTestmdd.pdb - Level3 - ProgramDatabase - Default - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) - true - - - ..\lib64\PocoDataTestmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) - true - - - ..\lib64\PocoDataTestmd.lib - - - - - - - - - - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Data/testsuite/DataTest/DataTest_vs140.vcxproj.filters b/Data/testsuite/DataTest/DataTest_vs140.vcxproj.filters deleted file mode 100644 index 00bc48187..000000000 --- a/Data/testsuite/DataTest/DataTest_vs140.vcxproj.filters +++ /dev/null @@ -1,32 +0,0 @@ - - - - - {1aa885d6-a396-459d-96f6-d62ede642430} - - - {3b15ecde-a0e3-4524-a130-192cc19ffa00} - - - - - Header Files - - - - - Header Files - - - Header Files - - - - - Source Files - - - - - - \ No newline at end of file diff --git a/Data/testsuite/DataTest/DataTest_vs150.vcxproj b/Data/testsuite/DataTest/DataTest_vs150.vcxproj deleted file mode 100644 index e08aa1da5..000000000 --- a/Data/testsuite/DataTest/DataTest_vs150.vcxproj +++ /dev/null @@ -1,582 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - 17.0 - DataTest - {240E83C3-368D-11DB-9FBC-00123FC423B5} - DataTest - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>17.0.34202.158 - PocoDataTestd - PocoDataTestmdd - PocoDataTestmtd - PocoDataTest - PocoDataTestmd - PocoDataTestmt - PocoDataTest64d - PocoDataTestmdd - PocoDataTestmtd - PocoDataTest64 - PocoDataTestmd - PocoDataTestmt - - - ..\bin\ - obj\DataTest\$(Configuration)\ - true - - - ..\bin\ - obj\DataTest\$(Configuration)\ - false - - - ..\lib\ - obj\DataTest\$(Configuration)\ - - - ..\lib\ - obj\DataTest\$(Configuration)\ - - - ..\lib\ - obj\DataTest\$(Configuration)\ - - - ..\lib\ - obj\DataTest\$(Configuration)\ - - - ..\bin64\ - obj64\DataTest\$(Configuration)\ - true - - - ..\bin64\ - obj64\DataTest\$(Configuration)\ - false - - - ..\lib64\ - obj64\DataTest\$(Configuration)\ - - - ..\lib64\ - obj64\DataTest\$(Configuration)\ - - - ..\lib64\ - obj64\DataTest\$(Configuration)\ - - - ..\lib64\ - obj64\DataTest\$(Configuration)\ - - - - Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) - true - - - ..\bin\PocoDataTestd.dll - true - true - ..\bin\PocoDataTestd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoDataTestd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) - true - - - ..\bin\PocoDataTest.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoDataTest.lib - MachineX86 - - - - - Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoDataTestmtd.pdb - Level3 - ProgramDatabase - Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) - true - - - ..\lib\PocoDataTestmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) - true - - - ..\lib\PocoDataTestmt.lib - - - - - Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoDataTestmdd.pdb - Level3 - ProgramDatabase - Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) - true - - - ..\lib\PocoDataTestmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoDataTestmd.pdb - Level3 - - Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) - true - - - ..\lib\PocoDataTestmd.lib - - - - - Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) - true - - - ..\bin64\PocoDataTest64d.dll - true - true - ..\bin64\PocoDataTest64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoDataTestd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) - true - - - ..\bin64\PocoDataTest64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoDataTest.lib - MachineX64 - - - - - Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoDataTestmtd.pdb - Level3 - ProgramDatabase - Default - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) - true - - - ..\lib64\PocoDataTestmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) - true - - - ..\lib64\PocoDataTestmt.lib - - - - - Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoDataTestmdd.pdb - Level3 - ProgramDatabase - Default - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) - true - - - ..\lib64\PocoDataTestmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - /Zc:__cplusplus /std:c++17%3b/bigobj %(AdditionalOptions) - true - - - ..\lib64\PocoDataTestmd.lib - - - - - - - - - - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Data/testsuite/DataTest/DataTest_vs150.vcxproj.filters b/Data/testsuite/DataTest/DataTest_vs150.vcxproj.filters deleted file mode 100644 index 6f0aea61d..000000000 --- a/Data/testsuite/DataTest/DataTest_vs150.vcxproj.filters +++ /dev/null @@ -1,32 +0,0 @@ - - - - - {6622d8cd-0202-4944-8c15-4209b6a162c2} - - - {c1db789a-4af6-4386-b74e-056e46ffc5a6} - - - - - Header Files - - - - - Header Files - - - Header Files - - - - - Source Files - - - - - - \ No newline at end of file diff --git a/Data/testsuite/TestSuite_vs140.vcxproj b/Data/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index 41c3cd014..000000000 --- a/Data/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,645 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/Data/testsuite/TestSuite_vs140.vcxproj.filters b/Data/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index 7031f7965..000000000 --- a/Data/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,108 +0,0 @@ - - - - - {e4c0f549-cba4-4f80-801e-d5ac94ed89df} - - - {47ce2bcc-5689-4c61-9d58-d275aa9ca76f} - - - {be3bcb29-d705-4963-ae11-81a121dc6525} - - - {fc619245-fcf7-4fa0-aac0-97a34e792e23} - - - {2a474e0f-24d4-4caf-a446-60f2b4e13f3c} - - - {c17054af-78cd-4dec-84bc-d032fef60bcc} - - - {3ef01987-b786-4776-8954-631a1bb29782} - - - {898a454f-75cf-4c9a-bdd7-57071f0b92aa} - - - {32d96155-d5ca-421a-b4f4-ae6d41e436b2} - - - {721e8498-b4e0-4a6f-a84f-5647ef730f22} - - - {2b16aab9-9680-438d-8bd9-cc1be339bb5c} - - - {86fa4265-93d1-40b4-ae5b-9d604eb53180} - - - {e087ed2e-94e4-47ee-9557-cdcdde3aa551} - - - {dd5e9572-9119-47e0-a425-865ea7318fdb} - - - - - DataCore\Header Files - - - _Suite\Header Files - - - TestSession\Header Files - - - TestSession\Header Files - - - TestSession\Header Files - - - TestSession\Header Files - - - TestSession\Header Files - - - TestSession\Header Files - - - SessionPooling\Header Files - - - - - DataCore\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - TestSession\Source Files - - - TestSession\Source Files - - - TestSession\Source Files - - - TestSession\Source Files - - - TestSession\Source Files - - - TestSession\Source Files - - - SessionPooling\Source Files - - - \ No newline at end of file diff --git a/Data/testsuite/TestSuite_vs150.vcxproj b/Data/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index 338009b12..000000000 --- a/Data/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,645 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7} - TestSuite - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/Data/testsuite/TestSuite_vs150.vcxproj.filters b/Data/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index 843797a79..000000000 --- a/Data/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,108 +0,0 @@ - - - - - {f7361586-6e35-42f5-95b1-b6c894ede49b} - - - {10ed3d99-c82a-4a8e-bf61-a6a0e64b423d} - - - {8057e733-beb7-4a06-a8f0-108e23972d07} - - - {052343d8-d0a5-45ee-9a7c-1b013a4bcf88} - - - {fe265f9f-bafd-4775-aa6d-a5478913aa21} - - - {2298e406-1ca5-4e33-86e1-6244f57098d3} - - - {c88093e7-a2e7-489a-a735-6167a06eda09} - - - {d46afd8a-a842-4d56-83e3-a9152678cf88} - - - {d4226e16-9f52-4f4b-bda5-04464ec1371e} - - - {e3b076cf-56ed-4003-9374-f2b61830fec2} - - - {f1e2ced1-cf08-4b10-bfc9-1e4b202bcc8d} - - - {0cf594f8-7bf3-42dc-b8aa-22fbf9c043f8} - - - {58686c14-1804-4e30-b476-7f8f2fd68ac9} - - - {e3292904-4061-490c-93c6-e09c6dd6eb29} - - - - - DataCore\Header Files - - - _Suite\Header Files - - - TestSession\Header Files - - - TestSession\Header Files - - - TestSession\Header Files - - - TestSession\Header Files - - - TestSession\Header Files - - - TestSession\Header Files - - - SessionPooling\Header Files - - - - - DataCore\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - TestSession\Source Files - - - TestSession\Source Files - - - TestSession\Source Files - - - TestSession\Source Files - - - TestSession\Source Files - - - TestSession\Source Files - - - SessionPooling\Source Files - - - \ No newline at end of file diff --git a/Encodings/Compiler/Compiler_vs140.sln b/Encodings/Compiler/Compiler_vs140.sln deleted file mode 100644 index 134d7c728..000000000 --- a/Encodings/Compiler/Compiler_vs140.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Compiler", "Compiler_vs140.vcxproj", "{0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_shared|Win32.Build.0 = release_shared|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_shared|x64.Build.0 = debug_shared|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_shared|x64.ActiveCfg = release_shared|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_shared|x64.Build.0 = release_shared|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_shared|x64.Deploy.0 = release_shared|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_md|x64.Build.0 = release_static_md|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Encodings/Compiler/Compiler_vs140.vcxproj b/Encodings/Compiler/Compiler_vs140.vcxproj deleted file mode 100644 index 156f813ef..000000000 --- a/Encodings/Compiler/Compiler_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Compiler - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710} - Compiler - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - tecd - tecd - tecd - tec - tec - tec - tecd - tecd - tecd - tec - tec - tec - - - bin\ - obj\Compiler\$(Configuration)\ - true - - - bin\ - obj\Compiler\$(Configuration)\ - false - - - bin\static_mt\ - obj\Compiler\$(Configuration)\ - true - - - bin\static_mt\ - obj\Compiler\$(Configuration)\ - false - - - bin\static_md\ - obj\Compiler\$(Configuration)\ - true - - - bin\static_md\ - obj\Compiler\$(Configuration)\ - false - - - bin64\ - obj64\Compiler\$(Configuration)\ - true - - - bin64\ - obj64\Compiler\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Compiler\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Compiler\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Compiler\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Compiler\$(Configuration)\ - false - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\tecd.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\tecd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\tec.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\tecd.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\tecd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\tec.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\tecd.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\tecd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\tec.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\tecd.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\tecd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\tec.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\tecd.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\tecd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\tec.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\tecd.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\tecd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\tec.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Encodings/Compiler/Compiler_vs140.vcxproj.filters b/Encodings/Compiler/Compiler_vs140.vcxproj.filters deleted file mode 100644 index 0afd00b4e..000000000 --- a/Encodings/Compiler/Compiler_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {ff128681-5298-4891-ab28-dd0d9d1c0c3d} - - - {1917a898-b5c1-43d3-97bc-96d76a8a27f8} - - - - - Source Files - - - \ No newline at end of file diff --git a/Encodings/Compiler/Compiler_vs150.sln b/Encodings/Compiler/Compiler_vs150.sln deleted file mode 100644 index db036c2c1..000000000 --- a/Encodings/Compiler/Compiler_vs150.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Compiler", "Compiler_vs150.vcxproj", "{0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_shared|Win32.Build.0 = release_shared|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_shared|x64.Build.0 = debug_shared|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_shared|x64.ActiveCfg = release_shared|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_shared|x64.Build.0 = release_shared|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_shared|x64.Deploy.0 = release_shared|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_md|x64.Build.0 = release_static_md|x64 - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Encodings/Compiler/Compiler_vs150.vcxproj b/Encodings/Compiler/Compiler_vs150.vcxproj deleted file mode 100644 index 9d9323a12..000000000 --- a/Encodings/Compiler/Compiler_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Compiler - {0AAD946B-C771-4ED2-BFAF-1D0DBE4A6710} - Compiler - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - tecd - tecd - tecd - tec - tec - tec - tecd - tecd - tecd - tec - tec - tec - - - bin\ - obj\Compiler\$(Configuration)\ - true - - - bin\ - obj\Compiler\$(Configuration)\ - false - - - bin\static_mt\ - obj\Compiler\$(Configuration)\ - true - - - bin\static_mt\ - obj\Compiler\$(Configuration)\ - false - - - bin\static_md\ - obj\Compiler\$(Configuration)\ - true - - - bin\static_md\ - obj\Compiler\$(Configuration)\ - false - - - bin64\ - obj64\Compiler\$(Configuration)\ - true - - - bin64\ - obj64\Compiler\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Compiler\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Compiler\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Compiler\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Compiler\$(Configuration)\ - false - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\tecd.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\tecd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\tec.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\tecd.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\tecd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\tec.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\tecd.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\tecd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\tec.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\tecd.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\tecd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\tec.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\tecd.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\tecd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\tec.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\tecd.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\tecd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\tec.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Encodings/Compiler/Compiler_vs150.vcxproj.filters b/Encodings/Compiler/Compiler_vs150.vcxproj.filters deleted file mode 100644 index 3ffe0d4b0..000000000 --- a/Encodings/Compiler/Compiler_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {17b9179e-dc3b-4a65-9c56-9a5ebbafaf73} - - - {7ecac60e-2451-4603-94eb-43fb13be34c8} - - - - - Source Files - - - \ No newline at end of file diff --git a/Encodings/Encodings_vs140.sln b/Encodings/Encodings_vs140.sln deleted file mode 100644 index 3dcec45b8..000000000 --- a/Encodings/Encodings_vs140.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Encodings", "Encodings_vs140.vcxproj", "{D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{7784E068-96B2-4DDC-BA8B-780206E06B30}" - ProjectSection(ProjectDependencies) = postProject - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E} = {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_shared|Win32.Build.0 = release_shared|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_shared|x64.Build.0 = debug_shared|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_shared|x64.ActiveCfg = release_shared|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_shared|x64.Build.0 = release_shared|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_shared|x64.Deploy.0 = release_shared|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_md|x64.Build.0 = release_static_md|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_shared|Win32.Build.0 = release_shared|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_shared|x64.Build.0 = debug_shared|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_shared|x64.ActiveCfg = release_shared|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_shared|x64.Build.0 = release_shared|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_shared|x64.Deploy.0 = release_shared|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_md|x64.Build.0 = release_static_md|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Encodings/Encodings_vs140.vcxproj b/Encodings/Encodings_vs140.vcxproj deleted file mode 100644 index 52d34aa1f..000000000 --- a/Encodings/Encodings_vs140.vcxproj +++ /dev/null @@ -1,689 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Encodings - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E} - Encodings - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoEncodingsd - PocoEncodingsmdd - PocoEncodingsmtd - PocoEncodings - PocoEncodingsmd - PocoEncodingsmt - PocoEncodings64d - PocoEncodingsmdd - PocoEncodingsmtd - PocoEncodings64 - PocoEncodingsmd - PocoEncodingsmt - - - ..\bin\ - obj\Encodings\$(Configuration)\ - true - - - ..\bin\ - obj\Encodings\$(Configuration)\ - false - - - ..\lib\ - obj\Encodings\$(Configuration)\ - - - ..\lib\ - obj\Encodings\$(Configuration)\ - - - ..\lib\ - obj\Encodings\$(Configuration)\ - - - ..\lib\ - obj\Encodings\$(Configuration)\ - - - ..\bin64\ - obj64\Encodings\$(Configuration)\ - true - - - ..\bin64\ - obj64\Encodings\$(Configuration)\ - false - - - ..\lib64\ - obj64\Encodings\$(Configuration)\ - - - ..\lib64\ - obj64\Encodings\$(Configuration)\ - - - ..\lib64\ - obj64\Encodings\$(Configuration)\ - - - ..\lib64\ - obj64\Encodings\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Encodings_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoEncodingsd.dll - true - true - ..\bin\PocoEncodingsd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoEncodingsd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Encodings_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoEncodings.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoEncodings.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoEncodingsmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoEncodingsmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoEncodingsmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoEncodingsmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoEncodingsmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoEncodingsmd.pdb - Level3 - - Default - true - - - ..\lib\PocoEncodingsmd.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Encodings_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoEncodings64d.dll - true - true - ..\bin64\PocoEncodings64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoEncodingsd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Encodings_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoEncodings64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoEncodings.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoEncodingsmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoEncodingsmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoEncodingsmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoEncodingsmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoEncodingsmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoEncodingsmd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Encodings/Encodings_vs140.vcxproj.filters b/Encodings/Encodings_vs140.vcxproj.filters deleted file mode 100644 index da98e80fd..000000000 --- a/Encodings/Encodings_vs140.vcxproj.filters +++ /dev/null @@ -1,213 +0,0 @@ - - - - - {2ac0c7b3-1706-4a76-895c-f3d4d3867af6} - - - {8e7ce3c1-f21d-42d1-9963-13ccbad20fb9} - - - {2d656b8f-d362-4626-9ffb-7c9ee3bf0d7c} - - - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - - - - \ No newline at end of file diff --git a/Encodings/Encodings_vs150.sln b/Encodings/Encodings_vs150.sln deleted file mode 100644 index e2717c4ea..000000000 --- a/Encodings/Encodings_vs150.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Encodings", "Encodings_vs150.vcxproj", "{D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{7784E068-96B2-4DDC-BA8B-780206E06B30}" - ProjectSection(ProjectDependencies) = postProject - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E} = {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_shared|Win32.Build.0 = release_shared|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_shared|x64.Build.0 = debug_shared|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_shared|x64.ActiveCfg = release_shared|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_shared|x64.Build.0 = release_shared|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_shared|x64.Deploy.0 = release_shared|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_md|x64.Build.0 = release_static_md|x64 - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_shared|Win32.Build.0 = release_shared|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_shared|x64.Build.0 = debug_shared|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_shared|x64.ActiveCfg = release_shared|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_shared|x64.Build.0 = release_shared|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_shared|x64.Deploy.0 = release_shared|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_md|x64.Build.0 = release_static_md|x64 - {7784E068-96B2-4DDC-BA8B-780206E06B30}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Encodings/Encodings_vs150.vcxproj b/Encodings/Encodings_vs150.vcxproj deleted file mode 100644 index 1bd627af6..000000000 --- a/Encodings/Encodings_vs150.vcxproj +++ /dev/null @@ -1,689 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Encodings - {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E} - Encodings - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PocoEncodingsd - PocoEncodingsmdd - PocoEncodingsmtd - PocoEncodings - PocoEncodingsmd - PocoEncodingsmt - PocoEncodings64d - PocoEncodingsmdd - PocoEncodingsmtd - PocoEncodings64 - PocoEncodingsmd - PocoEncodingsmt - - - ..\bin\ - obj\Encodings\$(Configuration)\ - true - - - ..\bin\ - obj\Encodings\$(Configuration)\ - false - - - ..\lib\ - obj\Encodings\$(Configuration)\ - - - ..\lib\ - obj\Encodings\$(Configuration)\ - - - ..\lib\ - obj\Encodings\$(Configuration)\ - - - ..\lib\ - obj\Encodings\$(Configuration)\ - - - ..\bin64\ - obj64\Encodings\$(Configuration)\ - true - - - ..\bin64\ - obj64\Encodings\$(Configuration)\ - false - - - ..\lib64\ - obj64\Encodings\$(Configuration)\ - - - ..\lib64\ - obj64\Encodings\$(Configuration)\ - - - ..\lib64\ - obj64\Encodings\$(Configuration)\ - - - ..\lib64\ - obj64\Encodings\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Encodings_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoEncodingsd.dll - true - true - ..\bin\PocoEncodingsd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoEncodingsd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Encodings_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoEncodings.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoEncodings.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoEncodingsmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoEncodingsmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoEncodingsmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoEncodingsmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoEncodingsmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoEncodingsmd.pdb - Level3 - - Default - true - - - ..\lib\PocoEncodingsmd.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Encodings_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoEncodings64d.dll - true - true - ..\bin64\PocoEncodings64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoEncodingsd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Encodings_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoEncodings64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoEncodings.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoEncodingsmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoEncodingsmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoEncodingsmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoEncodingsmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoEncodingsmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoEncodingsmd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Encodings/Encodings_vs150.vcxproj.filters b/Encodings/Encodings_vs150.vcxproj.filters deleted file mode 100644 index 756b7c2f4..000000000 --- a/Encodings/Encodings_vs150.vcxproj.filters +++ /dev/null @@ -1,213 +0,0 @@ - - - - - {059be2e2-58fd-4d6e-a62f-54b17f0b1844} - - - {273f8676-5623-4cd9-af43-21034e4198ba} - - - {2dafa9e2-18b7-42e1-acfb-befdc79fad72} - - - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - Encodings\Header Files - - - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - Encodings\Source Files - - - - - - \ No newline at end of file diff --git a/Encodings/samples/TextConverter/TextConverter_vs140.vcxproj b/Encodings/samples/TextConverter/TextConverter_vs140.vcxproj deleted file mode 100644 index 018840467..000000000 --- a/Encodings/samples/TextConverter/TextConverter_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TextConverter - {3CCF9527-B5D9-3522-84C3-C8E5381D7661} - TextConverter - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TextConverterd - TextConverterd - TextConverterd - TextConverter - TextConverter - TextConverter - TextConverterd - TextConverterd - TextConverterd - TextConverter - TextConverter - TextConverter - - - bin\ - obj\TextConverter\$(Configuration)\ - true - - - bin\ - obj\TextConverter\$(Configuration)\ - false - - - bin\static_mt\ - obj\TextConverter\$(Configuration)\ - true - - - bin\static_mt\ - obj\TextConverter\$(Configuration)\ - false - - - bin\static_md\ - obj\TextConverter\$(Configuration)\ - true - - - bin\static_md\ - obj\TextConverter\$(Configuration)\ - false - - - bin64\ - obj64\TextConverter\$(Configuration)\ - true - - - bin64\ - obj64\TextConverter\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TextConverter\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TextConverter\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TextConverter\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TextConverter\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TextConverterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TextConverterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TextConverter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TextConverterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TextConverterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TextConverter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TextConverterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TextConverterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TextConverter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TextConverterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TextConverterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TextConverter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TextConverterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TextConverterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TextConverter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TextConverterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TextConverterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TextConverter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Encodings/samples/TextConverter/TextConverter_vs140.vcxproj.filters b/Encodings/samples/TextConverter/TextConverter_vs140.vcxproj.filters deleted file mode 100644 index d4a57cf87..000000000 --- a/Encodings/samples/TextConverter/TextConverter_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {b458ffcf-82c6-47d0-9126-ba9c9dcdb24f} - - - {2295fde8-56c4-4b7b-8fce-d7a1f0dd7787} - - - - - Source Files - - - \ No newline at end of file diff --git a/Encodings/samples/TextConverter/TextConverter_vs150.vcxproj b/Encodings/samples/TextConverter/TextConverter_vs150.vcxproj deleted file mode 100644 index 46f6a1481..000000000 --- a/Encodings/samples/TextConverter/TextConverter_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TextConverter - {3CCF9527-B5D9-3522-84C3-C8E5381D7661} - TextConverter - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TextConverterd - TextConverterd - TextConverterd - TextConverter - TextConverter - TextConverter - TextConverterd - TextConverterd - TextConverterd - TextConverter - TextConverter - TextConverter - - - bin\ - obj\TextConverter\$(Configuration)\ - true - - - bin\ - obj\TextConverter\$(Configuration)\ - false - - - bin\static_mt\ - obj\TextConverter\$(Configuration)\ - true - - - bin\static_mt\ - obj\TextConverter\$(Configuration)\ - false - - - bin\static_md\ - obj\TextConverter\$(Configuration)\ - true - - - bin\static_md\ - obj\TextConverter\$(Configuration)\ - false - - - bin64\ - obj64\TextConverter\$(Configuration)\ - true - - - bin64\ - obj64\TextConverter\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TextConverter\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TextConverter\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TextConverter\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TextConverter\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TextConverterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TextConverterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TextConverter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TextConverterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TextConverterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TextConverter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TextConverterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TextConverterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TextConverter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TextConverterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TextConverterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TextConverter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TextConverterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TextConverterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TextConverter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TextConverterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TextConverterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TextConverter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Encodings/samples/TextConverter/TextConverter_vs150.vcxproj.filters b/Encodings/samples/TextConverter/TextConverter_vs150.vcxproj.filters deleted file mode 100644 index 5782ba72a..000000000 --- a/Encodings/samples/TextConverter/TextConverter_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {af7fb30f-f068-4e09-b2cd-a0f8d6e5a2f6} - - - {1beb9879-e66a-4c02-9ab8-a5436e603537} - - - - - Source Files - - - \ No newline at end of file diff --git a/Encodings/samples/samples_vs140.sln b/Encodings/samples/samples_vs140.sln deleted file mode 100644 index d39736b43..000000000 --- a/Encodings/samples/samples_vs140.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TextConverter", "TextConverter\TextConverter_vs140.vcxproj", "{3CCF9527-B5D9-3522-84C3-C8E5381D7661}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_shared|Win32.Build.0 = release_shared|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_shared|x64.Build.0 = debug_shared|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_shared|x64.ActiveCfg = release_shared|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_shared|x64.Build.0 = release_shared|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_shared|x64.Deploy.0 = release_shared|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_md|x64.Build.0 = release_static_md|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Encodings/samples/samples_vs150.sln b/Encodings/samples/samples_vs150.sln deleted file mode 100644 index 480756099..000000000 --- a/Encodings/samples/samples_vs150.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TextConverter", "TextConverter\TextConverter_vs150.vcxproj", "{3CCF9527-B5D9-3522-84C3-C8E5381D7661}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_shared|Win32.Build.0 = release_shared|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_shared|x64.Build.0 = debug_shared|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_shared|x64.ActiveCfg = release_shared|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_shared|x64.Build.0 = release_shared|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_shared|x64.Deploy.0 = release_shared|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_md|x64.Build.0 = release_static_md|x64 - {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Encodings/testsuite/TestSuite_vs140.vcxproj b/Encodings/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index ba7503803..000000000 --- a/Encodings/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,617 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {7784E068-96B2-4DDC-BA8B-780206E06B30} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - true - - - true - - - - - - - - - diff --git a/Encodings/testsuite/TestSuite_vs140.vcxproj.filters b/Encodings/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index f0a6302d7..000000000 --- a/Encodings/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,30 +0,0 @@ - - - - - {c426aaa1-b83e-4d09-8fc7-de332e64b7b0} - - - {bd1afaa6-6a6f-4923-b0d9-3cd98baeafd4} - - - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/Encodings/testsuite/TestSuite_vs150.vcxproj b/Encodings/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index 56181b1b2..000000000 --- a/Encodings/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,617 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {7784E068-96B2-4DDC-BA8B-780206E06B30} - TestSuite - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Encodings\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - true - - - true - - - - - - - - - diff --git a/Encodings/testsuite/TestSuite_vs150.vcxproj.filters b/Encodings/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index c93b99526..000000000 --- a/Encodings/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,30 +0,0 @@ - - - - - {09ae9fd4-82b5-4c5e-953d-f01948311a36} - - - {4e4cc5b6-9082-4252-a5af-45a7ec7e74fb} - - - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/Foundation/Foundation_vs140.sln b/Foundation/Foundation_vs140.sln deleted file mode 100644 index 49c62c97b..000000000 --- a/Foundation/Foundation_vs140.sln +++ /dev/null @@ -1,150 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Foundation", "Foundation_vs140.vcxproj", "{B01196CC-B693-4548-8464-2FF60499E73F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{F1EE93DF-347F-4CB3-B191-C4E63F38E972}" - ProjectSection(ProjectDependencies) = postProject - {B01196CC-B693-4548-8464-2FF60499E73F} = {B01196CC-B693-4548-8464-2FF60499E73F} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestApp", "testsuite\TestApp_vs140.vcxproj", "{6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}" - ProjectSection(ProjectDependencies) = postProject - {B01196CC-B693-4548-8464-2FF60499E73F} = {B01196CC-B693-4548-8464-2FF60499E73F} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestLibrary", "testsuite\TestLibrary_vs140.vcxproj", "{0955EB03-544B-4BD4-9C10-89CF38078F5F}" - ProjectSection(ProjectDependencies) = postProject - {B01196CC-B693-4548-8464-2FF60499E73F} = {B01196CC-B693-4548-8464-2FF60499E73F} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - debug_shared|x64 = debug_shared|x64 - debug_static_md|Win32 = debug_static_md|Win32 - debug_static_md|x64 = debug_static_md|x64 - debug_static_mt|Win32 = debug_static_mt|Win32 - debug_static_mt|x64 = debug_static_mt|x64 - release_shared|Win32 = release_shared|Win32 - release_shared|x64 = release_shared|x64 - release_static_md|Win32 = release_static_md|Win32 - release_static_md|x64 = release_static_md|x64 - release_static_mt|Win32 = release_static_mt|Win32 - release_static_mt|x64 = release_static_mt|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_shared|x64.Build.0 = debug_shared|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_shared|Win32.Build.0 = release_shared|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_shared|x64.ActiveCfg = release_shared|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_shared|x64.Build.0 = release_shared|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_md|x64.Build.0 = release_static_md|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_shared|x64.Build.0 = debug_shared|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_shared|Win32.Build.0 = release_shared|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_shared|x64.ActiveCfg = release_shared|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_shared|x64.Build.0 = release_shared|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_md|x64.Build.0 = release_static_md|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_shared|x64.Build.0 = debug_shared|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_shared|Win32.Build.0 = release_shared|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_shared|x64.ActiveCfg = release_shared|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_shared|x64.Build.0 = release_shared|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_static_md|x64.Build.0 = release_static_md|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_shared|x64.Build.0 = debug_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_static_md|Win32.ActiveCfg = debug_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_static_md|Win32.Build.0 = debug_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_static_md|x64.ActiveCfg = debug_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_static_md|x64.Build.0 = debug_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_static_mt|Win32.ActiveCfg = debug_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_static_mt|Win32.Build.0 = debug_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_static_mt|x64.ActiveCfg = debug_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_static_mt|x64.Build.0 = debug_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_shared|Win32.Build.0 = release_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_shared|x64.ActiveCfg = release_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_shared|x64.Build.0 = release_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_static_md|Win32.ActiveCfg = release_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_static_md|Win32.Build.0 = release_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_static_md|x64.ActiveCfg = release_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_static_md|x64.Build.0 = release_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_static_mt|Win32.ActiveCfg = release_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_static_mt|Win32.Build.0 = release_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_static_mt|x64.ActiveCfg = release_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_static_mt|x64.Build.0 = release_shared|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Foundation/Foundation_vs140.vcxproj b/Foundation/Foundation_vs140.vcxproj deleted file mode 100644 index 878e178e4..000000000 --- a/Foundation/Foundation_vs140.vcxproj +++ /dev/null @@ -1,1852 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Foundation - {B01196CC-B693-4548-8464-2FF60499E73F} - Foundation - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25431.1 - PocoFoundationd - PocoFoundation64d - PocoFoundationmdd - PocoFoundationmdd - PocoFoundationmtd - PocoFoundationmtd - PocoFoundation - PocoFoundation64 - PocoFoundationmd - PocoFoundationmd - PocoFoundationmt - PocoFoundationmt - - - ..\bin\ - obj\Foundation\$(Configuration)\ - true - - - true - ..\bin64\ - obj64\Foundation\$(Configuration)\ - - - ..\bin\ - obj\Foundation\$(Configuration)\ - false - - - false - ..\bin64\ - obj64\Foundation\$(Configuration)\ - - - ..\lib\ - obj\Foundation\$(Configuration)\ - - - ..\lib\ - obj\Foundation\$(Configuration)\ - - - ..\lib\ - obj\Foundation\$(Configuration)\ - - - ..\lib\ - obj\Foundation\$(Configuration)\ - - - ..\lib64\ - obj64\Foundation\$(Configuration)\ - - - ..\lib64\ - obj64\Foundation\$(Configuration)\ - - - ..\lib64\ - obj64\Foundation\$(Configuration)\ - - - ..\lib64\ - obj64\Foundation\$(Configuration)\ - - - - Disabled - .\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Foundation_EXPORTS;%(PreprocessorDefinitions) - true - false - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoFoundationd.dll - true - true - ..\bin\PocoFoundationd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoFoundationd.lib - MachineX86 - - - - - Disabled - .\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Foundation_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoFoundation64d.dll - true - true - ..\bin64\PocoFoundation64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoFoundationd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Foundation_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoFoundation.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoFoundation.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Foundation_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - - Level3 - - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoFoundation64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoFoundation.lib - - - - - Disabled - .\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - false - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoFoundationmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoFoundationmtd.lib - MachineX86 - - - - - Disabled - .\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - - ..\lib64\PocoFoundationmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoFoundationmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoFoundationmt.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - - Level3 - - - Default - true - - - ..\lib64\PocoFoundationmt.lib - - - - - Disabled - .\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - false - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoFoundationmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoFoundationmdd.lib - MachineX86 - - - - - Disabled - .\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - - ..\lib64\PocoFoundationmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoFoundationmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - $(IntDir)$(ProjectName).pdb - Level3 - - Default - true - - - - - ..\lib\PocoFoundationmd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - - $(IntDir)$(ProjectName).pdb - Level3 - - - Default - true - - - - - ..\lib64\PocoFoundationmd.lib - - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - - - - - false - false - true - true - true - true - false - false - true - true - true - true - - - - - - diff --git a/Foundation/Foundation_vs140.vcxproj.filters b/Foundation/Foundation_vs140.vcxproj.filters deleted file mode 100644 index 4989d157a..000000000 --- a/Foundation/Foundation_vs140.vcxproj.filters +++ /dev/null @@ -1,1880 +0,0 @@ - - - - - {c753fd93-71ed-481b-9a5e-8423fb365d1c} - - - {e3c3c07f-36df-41da-811b-4d8bb24de9c2} - - - {ee2a83b6-fa90-436b-b4d4-dc8ad4bf871a} - - - {e94ee398-40d3-4744-ac87-44670fc3cca4} - - - {b8f43561-6742-47f3-b063-cfd1ed044094} - - - {1294ba45-fff8-4648-970e-4a29356beea9} - - - {c630b315-9854-48a9-8b5e-513cc30de22f} - - - {128cc54c-da35-421b-9aae-8ee8710a4b48} - - - {8b9cb12f-15a5-4034-ac17-dc5a95d7daff} - - - {1889a735-bf96-4a03-9510-7f73fe91410f} - - - {7fc05b0c-b8d2-4b8e-9aa7-90bc68cec6a4} - - - {d2debcad-3917-4301-888f-5fbee55103dd} - - - {cb3a1c0e-3f59-4381-9cf4-c73694fa16c0} - - - {7ad16f51-370b-4cdf-8f47-373fd1e26297} - - - {e556d380-16e9-410c-bb67-450a43ab83cf} - - - {f12c7c88-ef89-4a68-96a0-96664c4a0f2d} - - - {8d90af25-6c9f-45fb-8af0-7463fab03c44} - - - {3b04a0e6-f311-428b-af8f-c1a7a3d9fd10} - - - {5f191b86-441f-4da7-8b2f-02513d443466} - - - {f98d18b5-dfbc-4c35-8654-bf0c3fc815e9} - - - {ed96b756-3566-40c7-bc07-b61535bcdba6} - - - {a04d9b7c-652a-4243-bf01-fb008a91c6a9} - - - {050790a7-f86f-4db4-8445-78e149b33dba} - - - {90289141-efe6-483a-87d8-deb78499134e} - - - {27a7acc1-7768-4dce-8fb6-40b249b08465} - - - {e9b28661-70f1-4533-8d55-fecd2888abe4} - - - {36aa6485-c596-4900-8e25-4cc06aa8cf49} - - - {99f3f293-20ff-47f0-8ad2-5d75a60e111f} - - - {3a9c04b2-3f1a-4ead-9080-f561de93d869} - - - {6904c90d-c347-43d8-8a6b-91f99de542a5} - - - {246e88e1-3650-4d35-9c95-d96b7b559348} - - - {65dd32ee-dd1e-49fb-aa87-579432609b7e} - - - {4ad6c3a6-eb68-4076-8f86-c2d87a444135} - - - {ce517ddf-e6d2-4a5b-98fc-1fe34287fb3e} - - - {e8a3181c-6c64-4082-b273-9b8519a39d30} - - - {1db1703f-8548-4607-bbd4-8adac7a2ae78} - - - {2d189b53-c815-48c6-a133-35ab9a24a2ff} - - - {96a98fda-9d60-4ca7-983b-537d452ee74b} - - - {40b1191f-3dc7-48bd-bfcd-715b92e476c1} - - - {967f28a4-ffc8-4a16-a40f-e9fe9aa154fa} - - - {456d180a-d652-4811-90a5-8fcaa75547d0} - - - {2ec8e8b6-f3db-4590-96d1-a3c5ff52590f} - - - {45088ff9-fe3e-4033-b55d-bea00d991803} - - - {ffe4c9b6-b7a1-4db3-b9cc-e442e83062be} - - - {6d1027ac-8839-4530-99bc-663244b4532b} - - - {aa406aec-8122-4853-9d50-99ba948709e7} - - - {3da27dee-ce06-4549-bff7-4d667520fb78} - - - {8fdba01a-1c37-4e5c-b63b-5579c08050b7} - - - {bdbeaf1c-efe1-40bc-bca4-13d185121ccd} - - - {646f2579-2e44-4305-8f9e-c1b397613e67} - - - {7466c478-b197-45c0-8cfd-84b419a25488} - - - {e9417176-ebda-4408-8dc6-37e8772432ae} - - - {67f612b3-7a55-463e-92cd-bed05e72736c} - - - {e0d4bc35-7350-45e1-8dfd-5d6ddbe9c8e8} - - - {84674850-4492-4a46-b6f3-3701612a3f23} - - - {af84acf1-fa67-4302-8180-cf002790cdff} - - - {5300bc7b-d351-427b-a3e3-2f7d0a41fc50} - - - {d339f979-c755-4abc-ac66-27bd13d66836} - - - {56685e2b-f506-44ae-8d27-d0f65e27405e} - - - {7df1fa35-122a-4152-b81f-35be1aabd290} - - - {8bd7fdba-6cdf-4cc7-8ffd-e0eef416d7b5} - - - {f19826b3-7a4b-4d64-aaa3-eb1e084a71b2} - - - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - SharedLibrary\Source Files - - - SharedLibrary\Source Files - - - SharedLibrary\Source Files - - - SharedLibrary\Source Files - - - SharedLibrary\Source Files - - - RegularExpression\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Notifications\Source Files - - - Notifications\Source Files - - - Notifications\Source Files - - - Notifications\Source Files - - - Notifications\Source Files - - - Notifications\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - UUID\Source Files - - - UUID\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - URI\Source Files - - - URI\Source Files - - - URI\Source Files - - - URI\Source Files - - - Tasks\Source Files - - - Tasks\Source Files - - - Tasks\Source Files - - - Events\Source Files - - - Hashing\Source Files - - - Hashing\Source Files - - - Dynamic\Source Files - - - Dynamic\Source Files - - - Dynamic\Source Files - - - Crypt\Source Files - - - URI\Source Files - - - URI\Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - RegularExpression\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - UUID\Header Files - - - UUID\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - URI\Header Files - - - URI\Header Files - - - URI\Header Files - - - URI\Header Files - - - Tasks\Header Files - - - Tasks\Header Files - - - Tasks\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Dynamic\Header Files - - - Dynamic\Header Files - - - Dynamic\Header Files - - - Dynamic\Header Files - - - Dynamic\Header Files - - - Crypt\Header Files - - - URI\Header Files - - - URI\Header Files - - - RegularExpression\PCRE2 Header Files - - - RegularExpression\PCRE2 Header Files - - - RegularExpression\PCRE2 Header Files - - - RegularExpression\PCRE2 Header Files - - - RegularExpression\PCRE2 Header Files - - - - - Logging\Resource Files - - - - - - Logging\Message Files - - - \ No newline at end of file diff --git a/Foundation/Foundation_vs150.sln b/Foundation/Foundation_vs150.sln deleted file mode 100644 index 021df92a7..000000000 --- a/Foundation/Foundation_vs150.sln +++ /dev/null @@ -1,150 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 14.0.25420.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Foundation", "Foundation_vs150.vcxproj", "{B01196CC-B693-4548-8464-2FF60499E73F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{F1EE93DF-347F-4CB3-B191-C4E63F38E972}" - ProjectSection(ProjectDependencies) = postProject - {B01196CC-B693-4548-8464-2FF60499E73F} = {B01196CC-B693-4548-8464-2FF60499E73F} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestApp", "testsuite\TestApp_vs150.vcxproj", "{6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}" - ProjectSection(ProjectDependencies) = postProject - {B01196CC-B693-4548-8464-2FF60499E73F} = {B01196CC-B693-4548-8464-2FF60499E73F} - EndProjectSection -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestLibrary", "testsuite\TestLibrary_vs150.vcxproj", "{0955EB03-544B-4BD4-9C10-89CF38078F5F}" - ProjectSection(ProjectDependencies) = postProject - {B01196CC-B693-4548-8464-2FF60499E73F} = {B01196CC-B693-4548-8464-2FF60499E73F} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - debug_shared|x64 = debug_shared|x64 - debug_static_md|Win32 = debug_static_md|Win32 - debug_static_md|x64 = debug_static_md|x64 - debug_static_mt|Win32 = debug_static_mt|Win32 - debug_static_mt|x64 = debug_static_mt|x64 - release_shared|Win32 = release_shared|Win32 - release_shared|x64 = release_shared|x64 - release_static_md|Win32 = release_static_md|Win32 - release_static_md|x64 = release_static_md|x64 - release_static_mt|Win32 = release_static_mt|Win32 - release_static_mt|x64 = release_static_mt|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_shared|x64.Build.0 = debug_shared|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_shared|Win32.Build.0 = release_shared|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_shared|x64.ActiveCfg = release_shared|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_shared|x64.Build.0 = release_shared|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_md|x64.Build.0 = release_static_md|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {B01196CC-B693-4548-8464-2FF60499E73F}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_shared|x64.Build.0 = debug_shared|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_shared|Win32.Build.0 = release_shared|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_shared|x64.ActiveCfg = release_shared|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_shared|x64.Build.0 = release_shared|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_md|x64.Build.0 = release_static_md|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {F1EE93DF-347F-4CB3-B191-C4E63F38E972}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_shared|x64.Build.0 = debug_shared|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_shared|Win32.Build.0 = release_shared|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_shared|x64.ActiveCfg = release_shared|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_shared|x64.Build.0 = release_shared|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_static_md|x64.Build.0 = release_static_md|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_shared|x64.Build.0 = debug_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_static_md|Win32.ActiveCfg = debug_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_static_md|Win32.Build.0 = debug_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_static_md|x64.ActiveCfg = debug_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_static_md|x64.Build.0 = debug_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_static_mt|Win32.ActiveCfg = debug_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_static_mt|Win32.Build.0 = debug_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_static_mt|x64.ActiveCfg = debug_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.debug_static_mt|x64.Build.0 = debug_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_shared|Win32.Build.0 = release_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_shared|x64.ActiveCfg = release_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_shared|x64.Build.0 = release_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_static_md|Win32.ActiveCfg = release_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_static_md|Win32.Build.0 = release_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_static_md|x64.ActiveCfg = release_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_static_md|x64.Build.0 = release_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_static_mt|Win32.ActiveCfg = release_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_static_mt|Win32.Build.0 = release_shared|Win32 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_static_mt|x64.ActiveCfg = release_shared|x64 - {0955EB03-544B-4BD4-9C10-89CF38078F5F}.release_static_mt|x64.Build.0 = release_shared|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Foundation/Foundation_vs150.vcxproj b/Foundation/Foundation_vs150.vcxproj deleted file mode 100644 index e48de4e18..000000000 --- a/Foundation/Foundation_vs150.vcxproj +++ /dev/null @@ -1,1852 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Foundation - {B01196CC-B693-4548-8464-2FF60499E73F} - Foundation - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25431.1 - PocoFoundationd - PocoFoundation64d - PocoFoundationmdd - PocoFoundationmdd - PocoFoundationmtd - PocoFoundationmtd - PocoFoundation - PocoFoundation64 - PocoFoundationmd - PocoFoundationmd - PocoFoundationmt - PocoFoundationmt - - - ..\bin\ - obj\Foundation\$(Configuration)\ - true - - - true - ..\bin64\ - obj64\Foundation\$(Configuration)\ - - - ..\bin\ - obj\Foundation\$(Configuration)\ - false - - - false - ..\bin64\ - obj64\Foundation\$(Configuration)\ - - - ..\lib\ - obj\Foundation\$(Configuration)\ - - - ..\lib\ - obj\Foundation\$(Configuration)\ - - - ..\lib\ - obj\Foundation\$(Configuration)\ - - - ..\lib\ - obj\Foundation\$(Configuration)\ - - - ..\lib64\ - obj64\Foundation\$(Configuration)\ - - - ..\lib64\ - obj64\Foundation\$(Configuration)\ - - - ..\lib64\ - obj64\Foundation\$(Configuration)\ - - - ..\lib64\ - obj64\Foundation\$(Configuration)\ - - - - Disabled - .\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Foundation_EXPORTS;%(PreprocessorDefinitions) - true - false - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoFoundationd.dll - true - true - ..\bin\PocoFoundationd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoFoundationd.lib - MachineX86 - - - - - Disabled - .\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Foundation_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoFoundation64d.dll - true - true - ..\bin64\PocoFoundation64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoFoundationd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Foundation_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoFoundation.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoFoundation.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Foundation_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - - Level3 - - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoFoundation64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoFoundation.lib - - - - - Disabled - .\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - false - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoFoundationmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoFoundationmtd.lib - MachineX86 - - - - - Disabled - .\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - - ..\lib64\PocoFoundationmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoFoundationmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoFoundationmt.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - - Level3 - - - Default - true - - - ..\lib64\PocoFoundationmt.lib - - - - - Disabled - .\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - false - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoFoundationmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoFoundationmdd.lib - MachineX86 - - - - - Disabled - .\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - - ..\lib64\PocoFoundationmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoFoundationmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - $(IntDir)$(ProjectName).pdb - Level3 - - Default - true - - - - - ..\lib\PocoFoundationmd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - - $(IntDir)$(ProjectName).pdb - Level3 - - - Default - true - - - - - ..\lib64\PocoFoundationmd.lib - - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - mc -h "%(RootDir)%(Directory)." -r "%(RootDir)%(Directory)." "%(FullPath) - - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - %(RootDir)%(Directory)\pocomsg.rc;%(RootDir)%(Directory)\pocomsg.h;%(Outputs) - - - - - false - false - true - true - true - true - false - false - true - true - true - true - - - - - - diff --git a/Foundation/Foundation_vs150.vcxproj.filters b/Foundation/Foundation_vs150.vcxproj.filters deleted file mode 100644 index a8fc29f2d..000000000 --- a/Foundation/Foundation_vs150.vcxproj.filters +++ /dev/null @@ -1,1880 +0,0 @@ - - - - - {c753fd93-71ed-481b-9a5e-8423fb365d1c} - - - {e3c3c07f-36df-41da-811b-4d8bb24de9c2} - - - {ee2a83b6-fa90-436b-b4d4-dc8ad4bf871a} - - - {e94ee398-40d3-4744-ac87-44670fc3cca4} - - - {b8f43561-6742-47f3-b063-cfd1ed044094} - - - {1294ba45-fff8-4648-970e-4a29356beea9} - - - {c630b315-9854-48a9-8b5e-513cc30de22f} - - - {128cc54c-da35-421b-9aae-8ee8710a4b48} - - - {8b9cb12f-15a5-4034-ac17-dc5a95d7daff} - - - {1889a735-bf96-4a03-9510-7f73fe91410f} - - - {7fc05b0c-b8d2-4b8e-9aa7-90bc68cec6a4} - - - {d2debcad-3917-4301-888f-5fbee55103dd} - - - {cb3a1c0e-3f59-4381-9cf4-c73694fa16c0} - - - {7ad16f51-370b-4cdf-8f47-373fd1e26297} - - - {e556d380-16e9-410c-bb67-450a43ab83cf} - - - {f12c7c88-ef89-4a68-96a0-96664c4a0f2d} - - - {8d90af25-6c9f-45fb-8af0-7463fab03c44} - - - {3b04a0e6-f311-428b-af8f-c1a7a3d9fd10} - - - {5f191b86-441f-4da7-8b2f-02513d443466} - - - {f98d18b5-dfbc-4c35-8654-bf0c3fc815e9} - - - {ed96b756-3566-40c7-bc07-b61535bcdba6} - - - {a04d9b7c-652a-4243-bf01-fb008a91c6a9} - - - {050790a7-f86f-4db4-8445-78e149b33dba} - - - {90289141-efe6-483a-87d8-deb78499134e} - - - {27a7acc1-7768-4dce-8fb6-40b249b08465} - - - {e9b28661-70f1-4533-8d55-fecd2888abe4} - - - {36aa6485-c596-4900-8e25-4cc06aa8cf49} - - - {99f3f293-20ff-47f0-8ad2-5d75a60e111f} - - - {3a9c04b2-3f1a-4ead-9080-f561de93d869} - - - {6904c90d-c347-43d8-8a6b-91f99de542a5} - - - {246e88e1-3650-4d35-9c95-d96b7b559348} - - - {65dd32ee-dd1e-49fb-aa87-579432609b7e} - - - {4ad6c3a6-eb68-4076-8f86-c2d87a444135} - - - {ce517ddf-e6d2-4a5b-98fc-1fe34287fb3e} - - - {e8a3181c-6c64-4082-b273-9b8519a39d30} - - - {1db1703f-8548-4607-bbd4-8adac7a2ae78} - - - {2d189b53-c815-48c6-a133-35ab9a24a2ff} - - - {96a98fda-9d60-4ca7-983b-537d452ee74b} - - - {40b1191f-3dc7-48bd-bfcd-715b92e476c1} - - - {967f28a4-ffc8-4a16-a40f-e9fe9aa154fa} - - - {456d180a-d652-4811-90a5-8fcaa75547d0} - - - {2ec8e8b6-f3db-4590-96d1-a3c5ff52590f} - - - {45088ff9-fe3e-4033-b55d-bea00d991803} - - - {ffe4c9b6-b7a1-4db3-b9cc-e442e83062be} - - - {6d1027ac-8839-4530-99bc-663244b4532b} - - - {aa406aec-8122-4853-9d50-99ba948709e7} - - - {3da27dee-ce06-4549-bff7-4d667520fb78} - - - {8fdba01a-1c37-4e5c-b63b-5579c08050b7} - - - {bdbeaf1c-efe1-40bc-bca4-13d185121ccd} - - - {646f2579-2e44-4305-8f9e-c1b397613e67} - - - {7466c478-b197-45c0-8cfd-84b419a25488} - - - {e9417176-ebda-4408-8dc6-37e8772432ae} - - - {67f612b3-7a55-463e-92cd-bed05e72736c} - - - {e0d4bc35-7350-45e1-8dfd-5d6ddbe9c8e8} - - - {84674850-4492-4a46-b6f3-3701612a3f23} - - - {af84acf1-fa67-4302-8180-cf002790cdff} - - - {5300bc7b-d351-427b-a3e3-2f7d0a41fc50} - - - {d339f979-c755-4abc-ac66-27bd13d66836} - - - {56685e2b-f506-44ae-8d27-d0f65e27405e} - - - {7df1fa35-122a-4152-b81f-35be1aabd290} - - - {8bd7fdba-6cdf-4cc7-8ffd-e0eef416d7b5} - - - {f19826b3-7a4b-4d64-aaa3-eb1e084a71b2} - - - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - SharedLibrary\Source Files - - - SharedLibrary\Source Files - - - SharedLibrary\Source Files - - - SharedLibrary\Source Files - - - SharedLibrary\Source Files - - - RegularExpression\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Notifications\Source Files - - - Notifications\Source Files - - - Notifications\Source Files - - - Notifications\Source Files - - - Notifications\Source Files - - - Notifications\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - UUID\Source Files - - - UUID\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - URI\Source Files - - - URI\Source Files - - - URI\Source Files - - - URI\Source Files - - - Tasks\Source Files - - - Tasks\Source Files - - - Tasks\Source Files - - - Events\Source Files - - - Hashing\Source Files - - - Hashing\Source Files - - - Dynamic\Source Files - - - Dynamic\Source Files - - - Dynamic\Source Files - - - Crypt\Source Files - - - URI\Source Files - - - URI\Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - RegularExpression\PCRE2 Source Files - - - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Streams\zlib - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - RegularExpression\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - UUID\Header Files - - - UUID\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - URI\Header Files - - - URI\Header Files - - - URI\Header Files - - - URI\Header Files - - - Tasks\Header Files - - - Tasks\Header Files - - - Tasks\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Events\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Dynamic\Header Files - - - Dynamic\Header Files - - - Dynamic\Header Files - - - Dynamic\Header Files - - - Dynamic\Header Files - - - Crypt\Header Files - - - URI\Header Files - - - URI\Header Files - - - RegularExpression\PCRE2 Header Files - - - RegularExpression\PCRE2 Header Files - - - RegularExpression\PCRE2 Header Files - - - RegularExpression\PCRE2 Header Files - - - RegularExpression\PCRE2 Header Files - - - - - Logging\Resource Files - - - - - - Logging\Message Files - - - \ No newline at end of file diff --git a/Foundation/samples/ActiveMethod/ActiveMethod_vs140.vcxproj b/Foundation/samples/ActiveMethod/ActiveMethod_vs140.vcxproj deleted file mode 100644 index 5897ccd1e..000000000 --- a/Foundation/samples/ActiveMethod/ActiveMethod_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - ActiveMethod - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F} - ActiveMethod - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - ActiveMethodd - ActiveMethodd - ActiveMethodd - ActiveMethod - ActiveMethod - ActiveMethod - ActiveMethodd - ActiveMethodd - ActiveMethodd - ActiveMethod - ActiveMethod - ActiveMethod - - - bin\ - obj\ActiveMethod\$(Configuration)\ - true - - - bin\ - obj\ActiveMethod\$(Configuration)\ - false - - - bin\static_mt\ - obj\ActiveMethod\$(Configuration)\ - true - - - bin\static_mt\ - obj\ActiveMethod\$(Configuration)\ - false - - - bin\static_md\ - obj\ActiveMethod\$(Configuration)\ - true - - - bin\static_md\ - obj\ActiveMethod\$(Configuration)\ - false - - - bin64\ - obj64\ActiveMethod\$(Configuration)\ - true - - - bin64\ - obj64\ActiveMethod\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\ActiveMethod\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\ActiveMethod\$(Configuration)\ - false - - - bin64\static_md\ - obj64\ActiveMethod\$(Configuration)\ - true - - - bin64\static_md\ - obj64\ActiveMethod\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\ActiveMethodd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\ActiveMethodd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\ActiveMethod.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\ActiveMethodd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\ActiveMethodd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\ActiveMethod.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\ActiveMethodd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\ActiveMethodd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\ActiveMethod.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\ActiveMethodd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\ActiveMethodd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\ActiveMethod.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\ActiveMethodd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\ActiveMethodd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\ActiveMethod.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\ActiveMethodd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\ActiveMethodd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\ActiveMethod.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/ActiveMethod/ActiveMethod_vs140.vcxproj.filters b/Foundation/samples/ActiveMethod/ActiveMethod_vs140.vcxproj.filters deleted file mode 100644 index de004ff14..000000000 --- a/Foundation/samples/ActiveMethod/ActiveMethod_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {e760f946-ecff-433b-940e-6f3acdd7242a} - - - {fe451661-d1f8-4dd8-9c47-2cfc173a4489} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/ActiveMethod/ActiveMethod_vs150.vcxproj b/Foundation/samples/ActiveMethod/ActiveMethod_vs150.vcxproj deleted file mode 100644 index c59dcbdde..000000000 --- a/Foundation/samples/ActiveMethod/ActiveMethod_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - ActiveMethod - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F} - ActiveMethod - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - ActiveMethodd - ActiveMethodd - ActiveMethodd - ActiveMethod - ActiveMethod - ActiveMethod - ActiveMethodd - ActiveMethodd - ActiveMethodd - ActiveMethod - ActiveMethod - ActiveMethod - - - bin\ - obj\ActiveMethod\$(Configuration)\ - true - - - bin\ - obj\ActiveMethod\$(Configuration)\ - false - - - bin\static_mt\ - obj\ActiveMethod\$(Configuration)\ - true - - - bin\static_mt\ - obj\ActiveMethod\$(Configuration)\ - false - - - bin\static_md\ - obj\ActiveMethod\$(Configuration)\ - true - - - bin\static_md\ - obj\ActiveMethod\$(Configuration)\ - false - - - bin64\ - obj64\ActiveMethod\$(Configuration)\ - true - - - bin64\ - obj64\ActiveMethod\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\ActiveMethod\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\ActiveMethod\$(Configuration)\ - false - - - bin64\static_md\ - obj64\ActiveMethod\$(Configuration)\ - true - - - bin64\static_md\ - obj64\ActiveMethod\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\ActiveMethodd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\ActiveMethodd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\ActiveMethod.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\ActiveMethodd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\ActiveMethodd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\ActiveMethod.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\ActiveMethodd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\ActiveMethodd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\ActiveMethod.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\ActiveMethodd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\ActiveMethodd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\ActiveMethod.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\ActiveMethodd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\ActiveMethodd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\ActiveMethod.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\ActiveMethodd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\ActiveMethodd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\ActiveMethod.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/ActiveMethod/ActiveMethod_vs150.vcxproj.filters b/Foundation/samples/ActiveMethod/ActiveMethod_vs150.vcxproj.filters deleted file mode 100644 index d28193515..000000000 --- a/Foundation/samples/ActiveMethod/ActiveMethod_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {b02c1226-418c-4a66-8ab0-5270773d6525} - - - {641b9a54-f767-438c-809c-a38fc15254a3} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/Activity/Activity_vs140.vcxproj b/Foundation/samples/Activity/Activity_vs140.vcxproj deleted file mode 100644 index 157227679..000000000 --- a/Foundation/samples/Activity/Activity_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Activity - {479B938E-57EA-3332-AFD3-E7285DE4EB28} - Activity - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - Activityd - Activityd - Activityd - Activity - Activity - Activity - Activityd - Activityd - Activityd - Activity - Activity - Activity - - - bin\ - obj\Activity\$(Configuration)\ - true - - - bin\ - obj\Activity\$(Configuration)\ - false - - - bin\static_mt\ - obj\Activity\$(Configuration)\ - true - - - bin\static_mt\ - obj\Activity\$(Configuration)\ - false - - - bin\static_md\ - obj\Activity\$(Configuration)\ - true - - - bin\static_md\ - obj\Activity\$(Configuration)\ - false - - - bin64\ - obj64\Activity\$(Configuration)\ - true - - - bin64\ - obj64\Activity\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Activity\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Activity\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Activity\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Activity\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Activityd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Activityd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Activity.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Activityd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Activityd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Activity.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Activityd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Activityd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Activity.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Activityd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Activityd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Activity.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Activityd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Activityd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Activity.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Activityd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Activityd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Activity.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/Activity/Activity_vs140.vcxproj.filters b/Foundation/samples/Activity/Activity_vs140.vcxproj.filters deleted file mode 100644 index 7271d1777..000000000 --- a/Foundation/samples/Activity/Activity_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {d9859c42-f935-405a-a33a-7be9299adf47} - - - {482bb2c1-807a-428b-aa88-bcf7fa5af438} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/Activity/Activity_vs150.vcxproj b/Foundation/samples/Activity/Activity_vs150.vcxproj deleted file mode 100644 index 3e677c6d2..000000000 --- a/Foundation/samples/Activity/Activity_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Activity - {479B938E-57EA-3332-AFD3-E7285DE4EB28} - Activity - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - Activityd - Activityd - Activityd - Activity - Activity - Activity - Activityd - Activityd - Activityd - Activity - Activity - Activity - - - bin\ - obj\Activity\$(Configuration)\ - true - - - bin\ - obj\Activity\$(Configuration)\ - false - - - bin\static_mt\ - obj\Activity\$(Configuration)\ - true - - - bin\static_mt\ - obj\Activity\$(Configuration)\ - false - - - bin\static_md\ - obj\Activity\$(Configuration)\ - true - - - bin\static_md\ - obj\Activity\$(Configuration)\ - false - - - bin64\ - obj64\Activity\$(Configuration)\ - true - - - bin64\ - obj64\Activity\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Activity\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Activity\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Activity\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Activity\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Activityd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Activityd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Activity.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Activityd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Activityd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Activity.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Activityd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Activityd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Activity.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Activityd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Activityd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Activity.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Activityd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Activityd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Activity.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Activityd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Activityd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Activity.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/Activity/Activity_vs150.vcxproj.filters b/Foundation/samples/Activity/Activity_vs150.vcxproj.filters deleted file mode 100644 index 1b107a9fc..000000000 --- a/Foundation/samples/Activity/Activity_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {41715e11-2a66-4eea-8470-00915b6e70d3} - - - {e6a3240e-c400-419c-9941-9ae4d4e13b5e} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs140.vcxproj b/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs140.vcxproj deleted file mode 100644 index 3fcfbf914..000000000 --- a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - BinaryReaderWriter - {A5639B95-211B-36F1-994E-F05361C18EBF} - BinaryReaderWriter - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - BinaryReaderWriterd - BinaryReaderWriterd - BinaryReaderWriterd - BinaryReaderWriter - BinaryReaderWriter - BinaryReaderWriter - BinaryReaderWriterd - BinaryReaderWriterd - BinaryReaderWriterd - BinaryReaderWriter - BinaryReaderWriter - BinaryReaderWriter - - - bin\ - obj\BinaryReaderWriter\$(Configuration)\ - true - - - bin\ - obj\BinaryReaderWriter\$(Configuration)\ - false - - - bin\static_mt\ - obj\BinaryReaderWriter\$(Configuration)\ - true - - - bin\static_mt\ - obj\BinaryReaderWriter\$(Configuration)\ - false - - - bin\static_md\ - obj\BinaryReaderWriter\$(Configuration)\ - true - - - bin\static_md\ - obj\BinaryReaderWriter\$(Configuration)\ - false - - - bin64\ - obj64\BinaryReaderWriter\$(Configuration)\ - true - - - bin64\ - obj64\BinaryReaderWriter\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\BinaryReaderWriter\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\BinaryReaderWriter\$(Configuration)\ - false - - - bin64\static_md\ - obj64\BinaryReaderWriter\$(Configuration)\ - true - - - bin64\static_md\ - obj64\BinaryReaderWriter\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\BinaryReaderWriterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\BinaryReaderWriterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\BinaryReaderWriter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\BinaryReaderWriterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\BinaryReaderWriterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\BinaryReaderWriter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\BinaryReaderWriterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\BinaryReaderWriterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\BinaryReaderWriter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\BinaryReaderWriterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\BinaryReaderWriterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\BinaryReaderWriter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\BinaryReaderWriterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\BinaryReaderWriterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\BinaryReaderWriter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\BinaryReaderWriterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\BinaryReaderWriterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\BinaryReaderWriter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs140.vcxproj.filters b/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs140.vcxproj.filters deleted file mode 100644 index b85a681e5..000000000 --- a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {fe3ac5a8-ecca-400b-b511-8ab366e9d88f} - - - {9e1cc215-714c-42f0-b11b-ed7ce6f8a4fc} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs150.vcxproj b/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs150.vcxproj deleted file mode 100644 index 9d8805e52..000000000 --- a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - BinaryReaderWriter - {A5639B95-211B-36F1-994E-F05361C18EBF} - BinaryReaderWriter - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - BinaryReaderWriterd - BinaryReaderWriterd - BinaryReaderWriterd - BinaryReaderWriter - BinaryReaderWriter - BinaryReaderWriter - BinaryReaderWriterd - BinaryReaderWriterd - BinaryReaderWriterd - BinaryReaderWriter - BinaryReaderWriter - BinaryReaderWriter - - - bin\ - obj\BinaryReaderWriter\$(Configuration)\ - true - - - bin\ - obj\BinaryReaderWriter\$(Configuration)\ - false - - - bin\static_mt\ - obj\BinaryReaderWriter\$(Configuration)\ - true - - - bin\static_mt\ - obj\BinaryReaderWriter\$(Configuration)\ - false - - - bin\static_md\ - obj\BinaryReaderWriter\$(Configuration)\ - true - - - bin\static_md\ - obj\BinaryReaderWriter\$(Configuration)\ - false - - - bin64\ - obj64\BinaryReaderWriter\$(Configuration)\ - true - - - bin64\ - obj64\BinaryReaderWriter\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\BinaryReaderWriter\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\BinaryReaderWriter\$(Configuration)\ - false - - - bin64\static_md\ - obj64\BinaryReaderWriter\$(Configuration)\ - true - - - bin64\static_md\ - obj64\BinaryReaderWriter\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\BinaryReaderWriterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\BinaryReaderWriterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\BinaryReaderWriter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\BinaryReaderWriterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\BinaryReaderWriterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\BinaryReaderWriter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\BinaryReaderWriterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\BinaryReaderWriterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\BinaryReaderWriter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\BinaryReaderWriterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\BinaryReaderWriterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\BinaryReaderWriter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\BinaryReaderWriterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\BinaryReaderWriterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\BinaryReaderWriter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\BinaryReaderWriterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\BinaryReaderWriterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\BinaryReaderWriter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs150.vcxproj.filters b/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs150.vcxproj.filters deleted file mode 100644 index f9ff570fb..000000000 --- a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {1c9aa875-d3f6-451e-9be6-2519976afa1b} - - - {c0970771-fbd7-4009-b66d-3ee00a9cbce1} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/DateTime/DateTime_vs140.vcxproj b/Foundation/samples/DateTime/DateTime_vs140.vcxproj deleted file mode 100644 index 95b444186..000000000 --- a/Foundation/samples/DateTime/DateTime_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - DateTime - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF} - DateTime - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - DateTimed - DateTimed - DateTimed - DateTime - DateTime - DateTime - DateTimed - DateTimed - DateTimed - DateTime - DateTime - DateTime - - - bin\ - obj\DateTime\$(Configuration)\ - true - - - bin\ - obj\DateTime\$(Configuration)\ - false - - - bin\static_mt\ - obj\DateTime\$(Configuration)\ - true - - - bin\static_mt\ - obj\DateTime\$(Configuration)\ - false - - - bin\static_md\ - obj\DateTime\$(Configuration)\ - true - - - bin\static_md\ - obj\DateTime\$(Configuration)\ - false - - - bin64\ - obj64\DateTime\$(Configuration)\ - true - - - bin64\ - obj64\DateTime\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\DateTime\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\DateTime\$(Configuration)\ - false - - - bin64\static_md\ - obj64\DateTime\$(Configuration)\ - true - - - bin64\static_md\ - obj64\DateTime\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\DateTimed.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\DateTimed.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\DateTime.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\DateTimed.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\DateTimed.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\DateTime.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\DateTimed.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\DateTimed.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\DateTime.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\DateTimed.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\DateTimed.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\DateTime.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\DateTimed.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\DateTimed.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\DateTime.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\DateTimed.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\DateTimed.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\DateTime.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/DateTime/DateTime_vs140.vcxproj.filters b/Foundation/samples/DateTime/DateTime_vs140.vcxproj.filters deleted file mode 100644 index 0db5d9e92..000000000 --- a/Foundation/samples/DateTime/DateTime_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {c83b561d-302a-4fc7-bcb5-3ed563e706c8} - - - {0a4c8fcf-f246-40cf-a501-a893e08ebff2} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/DateTime/DateTime_vs150.vcxproj b/Foundation/samples/DateTime/DateTime_vs150.vcxproj deleted file mode 100644 index 7e6d5e02e..000000000 --- a/Foundation/samples/DateTime/DateTime_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - DateTime - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF} - DateTime - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - DateTimed - DateTimed - DateTimed - DateTime - DateTime - DateTime - DateTimed - DateTimed - DateTimed - DateTime - DateTime - DateTime - - - bin\ - obj\DateTime\$(Configuration)\ - true - - - bin\ - obj\DateTime\$(Configuration)\ - false - - - bin\static_mt\ - obj\DateTime\$(Configuration)\ - true - - - bin\static_mt\ - obj\DateTime\$(Configuration)\ - false - - - bin\static_md\ - obj\DateTime\$(Configuration)\ - true - - - bin\static_md\ - obj\DateTime\$(Configuration)\ - false - - - bin64\ - obj64\DateTime\$(Configuration)\ - true - - - bin64\ - obj64\DateTime\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\DateTime\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\DateTime\$(Configuration)\ - false - - - bin64\static_md\ - obj64\DateTime\$(Configuration)\ - true - - - bin64\static_md\ - obj64\DateTime\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\DateTimed.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\DateTimed.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\DateTime.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\DateTimed.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\DateTimed.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\DateTime.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\DateTimed.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\DateTimed.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\DateTime.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\DateTimed.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\DateTimed.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\DateTime.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\DateTimed.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\DateTimed.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\DateTime.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\DateTimed.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\DateTimed.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\DateTime.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/DateTime/DateTime_vs150.vcxproj.filters b/Foundation/samples/DateTime/DateTime_vs150.vcxproj.filters deleted file mode 100644 index 3205d527e..000000000 --- a/Foundation/samples/DateTime/DateTime_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {711ecc30-e0b2-4bd0-a999-789ebaa06223} - - - {21f03d80-c8a6-47d6-b515-9700a03d263b} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/LineEndingConverter/LineEndingConverter_vs140.vcxproj b/Foundation/samples/LineEndingConverter/LineEndingConverter_vs140.vcxproj deleted file mode 100644 index 998a6d645..000000000 --- a/Foundation/samples/LineEndingConverter/LineEndingConverter_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - LineEndingConverter - {354BBE76-D088-3931-940C-797F514D2E40} - LineEndingConverter - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - LineEndingConverterd - LineEndingConverterd - LineEndingConverterd - LineEndingConverter - LineEndingConverter - LineEndingConverter - LineEndingConverterd - LineEndingConverterd - LineEndingConverterd - LineEndingConverter - LineEndingConverter - LineEndingConverter - - - bin\ - obj\LineEndingConverter\$(Configuration)\ - true - - - bin\ - obj\LineEndingConverter\$(Configuration)\ - false - - - bin\static_mt\ - obj\LineEndingConverter\$(Configuration)\ - true - - - bin\static_mt\ - obj\LineEndingConverter\$(Configuration)\ - false - - - bin\static_md\ - obj\LineEndingConverter\$(Configuration)\ - true - - - bin\static_md\ - obj\LineEndingConverter\$(Configuration)\ - false - - - bin64\ - obj64\LineEndingConverter\$(Configuration)\ - true - - - bin64\ - obj64\LineEndingConverter\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\LineEndingConverter\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\LineEndingConverter\$(Configuration)\ - false - - - bin64\static_md\ - obj64\LineEndingConverter\$(Configuration)\ - true - - - bin64\static_md\ - obj64\LineEndingConverter\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\LineEndingConverterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\LineEndingConverterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\LineEndingConverter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\LineEndingConverterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\LineEndingConverterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\LineEndingConverter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\LineEndingConverterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\LineEndingConverterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\LineEndingConverter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\LineEndingConverterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\LineEndingConverterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\LineEndingConverter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\LineEndingConverterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\LineEndingConverterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\LineEndingConverter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\LineEndingConverterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\LineEndingConverterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\LineEndingConverter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/LineEndingConverter/LineEndingConverter_vs140.vcxproj.filters b/Foundation/samples/LineEndingConverter/LineEndingConverter_vs140.vcxproj.filters deleted file mode 100644 index 8fd4e92d5..000000000 --- a/Foundation/samples/LineEndingConverter/LineEndingConverter_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {3d806ada-1b97-4d16-b0bf-a39973cf614f} - - - {a9092b1e-a4bb-4870-aa1c-9b0348ab1ccc} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/LineEndingConverter/LineEndingConverter_vs150.vcxproj b/Foundation/samples/LineEndingConverter/LineEndingConverter_vs150.vcxproj deleted file mode 100644 index b7558b6c6..000000000 --- a/Foundation/samples/LineEndingConverter/LineEndingConverter_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - LineEndingConverter - {354BBE76-D088-3931-940C-797F514D2E40} - LineEndingConverter - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - LineEndingConverterd - LineEndingConverterd - LineEndingConverterd - LineEndingConverter - LineEndingConverter - LineEndingConverter - LineEndingConverterd - LineEndingConverterd - LineEndingConverterd - LineEndingConverter - LineEndingConverter - LineEndingConverter - - - bin\ - obj\LineEndingConverter\$(Configuration)\ - true - - - bin\ - obj\LineEndingConverter\$(Configuration)\ - false - - - bin\static_mt\ - obj\LineEndingConverter\$(Configuration)\ - true - - - bin\static_mt\ - obj\LineEndingConverter\$(Configuration)\ - false - - - bin\static_md\ - obj\LineEndingConverter\$(Configuration)\ - true - - - bin\static_md\ - obj\LineEndingConverter\$(Configuration)\ - false - - - bin64\ - obj64\LineEndingConverter\$(Configuration)\ - true - - - bin64\ - obj64\LineEndingConverter\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\LineEndingConverter\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\LineEndingConverter\$(Configuration)\ - false - - - bin64\static_md\ - obj64\LineEndingConverter\$(Configuration)\ - true - - - bin64\static_md\ - obj64\LineEndingConverter\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\LineEndingConverterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\LineEndingConverterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\LineEndingConverter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\LineEndingConverterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\LineEndingConverterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\LineEndingConverter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\LineEndingConverterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\LineEndingConverterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\LineEndingConverter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\LineEndingConverterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\LineEndingConverterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\LineEndingConverter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\LineEndingConverterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\LineEndingConverterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\LineEndingConverter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\LineEndingConverterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\LineEndingConverterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\LineEndingConverter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/LineEndingConverter/LineEndingConverter_vs150.vcxproj.filters b/Foundation/samples/LineEndingConverter/LineEndingConverter_vs150.vcxproj.filters deleted file mode 100644 index caef29650..000000000 --- a/Foundation/samples/LineEndingConverter/LineEndingConverter_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {96ebbc9f-f273-4890-883c-1999e47b3e04} - - - {58ea7d42-0236-4dbd-94e7-9a596627de24} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/LogRotation/LogRotation_vs140.vcxproj b/Foundation/samples/LogRotation/LogRotation_vs140.vcxproj deleted file mode 100644 index ad715c913..000000000 --- a/Foundation/samples/LogRotation/LogRotation_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - LogRotation - {0382A4E1-4461-391B-A8D6-A35251CD7464} - LogRotation - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - LogRotationd - LogRotationd - LogRotationd - LogRotation - LogRotation - LogRotation - LogRotationd - LogRotationd - LogRotationd - LogRotation - LogRotation - LogRotation - - - bin\ - obj\LogRotation\$(Configuration)\ - true - - - bin\ - obj\LogRotation\$(Configuration)\ - false - - - bin\static_mt\ - obj\LogRotation\$(Configuration)\ - true - - - bin\static_mt\ - obj\LogRotation\$(Configuration)\ - false - - - bin\static_md\ - obj\LogRotation\$(Configuration)\ - true - - - bin\static_md\ - obj\LogRotation\$(Configuration)\ - false - - - bin64\ - obj64\LogRotation\$(Configuration)\ - true - - - bin64\ - obj64\LogRotation\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\LogRotation\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\LogRotation\$(Configuration)\ - false - - - bin64\static_md\ - obj64\LogRotation\$(Configuration)\ - true - - - bin64\static_md\ - obj64\LogRotation\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\LogRotationd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\LogRotationd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\LogRotation.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\LogRotationd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\LogRotationd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\LogRotation.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\LogRotationd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\LogRotationd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\LogRotation.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\LogRotationd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\LogRotationd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\LogRotation.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\LogRotationd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\LogRotationd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\LogRotation.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\LogRotationd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\LogRotationd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\LogRotation.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/LogRotation/LogRotation_vs140.vcxproj.filters b/Foundation/samples/LogRotation/LogRotation_vs140.vcxproj.filters deleted file mode 100644 index 4492b289b..000000000 --- a/Foundation/samples/LogRotation/LogRotation_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {ea6c090c-d036-4c9e-a5d4-84d68cfef1d4} - - - {c3dd7948-9229-4ac1-aafd-c12bd2e06882} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/LogRotation/LogRotation_vs150.vcxproj b/Foundation/samples/LogRotation/LogRotation_vs150.vcxproj deleted file mode 100644 index 9d4496bb1..000000000 --- a/Foundation/samples/LogRotation/LogRotation_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - LogRotation - {0382A4E1-4461-391B-A8D6-A35251CD7464} - LogRotation - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - LogRotationd - LogRotationd - LogRotationd - LogRotation - LogRotation - LogRotation - LogRotationd - LogRotationd - LogRotationd - LogRotation - LogRotation - LogRotation - - - bin\ - obj\LogRotation\$(Configuration)\ - true - - - bin\ - obj\LogRotation\$(Configuration)\ - false - - - bin\static_mt\ - obj\LogRotation\$(Configuration)\ - true - - - bin\static_mt\ - obj\LogRotation\$(Configuration)\ - false - - - bin\static_md\ - obj\LogRotation\$(Configuration)\ - true - - - bin\static_md\ - obj\LogRotation\$(Configuration)\ - false - - - bin64\ - obj64\LogRotation\$(Configuration)\ - true - - - bin64\ - obj64\LogRotation\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\LogRotation\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\LogRotation\$(Configuration)\ - false - - - bin64\static_md\ - obj64\LogRotation\$(Configuration)\ - true - - - bin64\static_md\ - obj64\LogRotation\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\LogRotationd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\LogRotationd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\LogRotation.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\LogRotationd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\LogRotationd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\LogRotation.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\LogRotationd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\LogRotationd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\LogRotation.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\LogRotationd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\LogRotationd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\LogRotation.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\LogRotationd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\LogRotationd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\LogRotation.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\LogRotationd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\LogRotationd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\LogRotation.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/LogRotation/LogRotation_vs150.vcxproj.filters b/Foundation/samples/LogRotation/LogRotation_vs150.vcxproj.filters deleted file mode 100644 index 53b781749..000000000 --- a/Foundation/samples/LogRotation/LogRotation_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {9e7e8c4b-8892-4b77-9b31-4be8ee78aac4} - - - {0c5224b2-5037-4ce1-bca4-0d2e424c99c1} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/Logger/Logger_vs140.vcxproj b/Foundation/samples/Logger/Logger_vs140.vcxproj deleted file mode 100644 index e7bbbe0fb..000000000 --- a/Foundation/samples/Logger/Logger_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Logger - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59} - Logger - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - Loggerd - Loggerd - Loggerd - Logger - Logger - Logger - Loggerd - Loggerd - Loggerd - Logger - Logger - Logger - - - bin\ - obj\Logger\$(Configuration)\ - true - - - bin\ - obj\Logger\$(Configuration)\ - false - - - bin\static_mt\ - obj\Logger\$(Configuration)\ - true - - - bin\static_mt\ - obj\Logger\$(Configuration)\ - false - - - bin\static_md\ - obj\Logger\$(Configuration)\ - true - - - bin\static_md\ - obj\Logger\$(Configuration)\ - false - - - bin64\ - obj64\Logger\$(Configuration)\ - true - - - bin64\ - obj64\Logger\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Logger\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Logger\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Logger\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Logger\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Loggerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Loggerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Logger.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Loggerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Loggerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Logger.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Loggerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Loggerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Logger.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Loggerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Loggerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Logger.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Loggerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Loggerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Logger.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Loggerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Loggerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Logger.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/Logger/Logger_vs140.vcxproj.filters b/Foundation/samples/Logger/Logger_vs140.vcxproj.filters deleted file mode 100644 index fe3bcbaf0..000000000 --- a/Foundation/samples/Logger/Logger_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {44053f8e-1fab-49b2-9162-5aafa02616d1} - - - {5bf39327-410c-4799-89b9-923243178f50} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/Logger/Logger_vs150.vcxproj b/Foundation/samples/Logger/Logger_vs150.vcxproj deleted file mode 100644 index f616db0c5..000000000 --- a/Foundation/samples/Logger/Logger_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Logger - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59} - Logger - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - Loggerd - Loggerd - Loggerd - Logger - Logger - Logger - Loggerd - Loggerd - Loggerd - Logger - Logger - Logger - - - bin\ - obj\Logger\$(Configuration)\ - true - - - bin\ - obj\Logger\$(Configuration)\ - false - - - bin\static_mt\ - obj\Logger\$(Configuration)\ - true - - - bin\static_mt\ - obj\Logger\$(Configuration)\ - false - - - bin\static_md\ - obj\Logger\$(Configuration)\ - true - - - bin\static_md\ - obj\Logger\$(Configuration)\ - false - - - bin64\ - obj64\Logger\$(Configuration)\ - true - - - bin64\ - obj64\Logger\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Logger\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Logger\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Logger\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Logger\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Loggerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Loggerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Logger.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Loggerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Loggerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Logger.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Loggerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Loggerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Logger.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Loggerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Loggerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Logger.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Loggerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Loggerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Logger.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Loggerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Loggerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Logger.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/Logger/Logger_vs150.vcxproj.filters b/Foundation/samples/Logger/Logger_vs150.vcxproj.filters deleted file mode 100644 index ed620660f..000000000 --- a/Foundation/samples/Logger/Logger_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {f49d32e6-3356-4089-9097-fc190d9e6c13} - - - {f114f230-4e93-473e-b059-b7736eb6d417} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/NotificationQueue/NotificationQueue_vs140.vcxproj b/Foundation/samples/NotificationQueue/NotificationQueue_vs140.vcxproj deleted file mode 100644 index 7c1e451fb..000000000 --- a/Foundation/samples/NotificationQueue/NotificationQueue_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - NotificationQueue - {4238E8B1-08D7-3469-8896-2A643B585A2D} - NotificationQueue - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - NotificationQueued - NotificationQueued - NotificationQueued - NotificationQueue - NotificationQueue - NotificationQueue - NotificationQueued - NotificationQueued - NotificationQueued - NotificationQueue - NotificationQueue - NotificationQueue - - - bin\ - obj\NotificationQueue\$(Configuration)\ - true - - - bin\ - obj\NotificationQueue\$(Configuration)\ - false - - - bin\static_mt\ - obj\NotificationQueue\$(Configuration)\ - true - - - bin\static_mt\ - obj\NotificationQueue\$(Configuration)\ - false - - - bin\static_md\ - obj\NotificationQueue\$(Configuration)\ - true - - - bin\static_md\ - obj\NotificationQueue\$(Configuration)\ - false - - - bin64\ - obj64\NotificationQueue\$(Configuration)\ - true - - - bin64\ - obj64\NotificationQueue\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\NotificationQueue\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\NotificationQueue\$(Configuration)\ - false - - - bin64\static_md\ - obj64\NotificationQueue\$(Configuration)\ - true - - - bin64\static_md\ - obj64\NotificationQueue\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\NotificationQueued.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\NotificationQueued.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\NotificationQueue.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\NotificationQueued.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\NotificationQueued.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\NotificationQueue.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\NotificationQueued.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\NotificationQueued.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\NotificationQueue.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\NotificationQueued.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\NotificationQueued.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\NotificationQueue.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\NotificationQueued.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\NotificationQueued.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\NotificationQueue.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\NotificationQueued.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\NotificationQueued.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\NotificationQueue.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/NotificationQueue/NotificationQueue_vs140.vcxproj.filters b/Foundation/samples/NotificationQueue/NotificationQueue_vs140.vcxproj.filters deleted file mode 100644 index 55accbe52..000000000 --- a/Foundation/samples/NotificationQueue/NotificationQueue_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {77ff3aab-77ea-4b09-aebd-aae0cd27925d} - - - {3415f0ea-1910-4bdf-b35e-64fc8e75378b} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/NotificationQueue/NotificationQueue_vs150.vcxproj b/Foundation/samples/NotificationQueue/NotificationQueue_vs150.vcxproj deleted file mode 100644 index 53288a9a4..000000000 --- a/Foundation/samples/NotificationQueue/NotificationQueue_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - NotificationQueue - {4238E8B1-08D7-3469-8896-2A643B585A2D} - NotificationQueue - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - NotificationQueued - NotificationQueued - NotificationQueued - NotificationQueue - NotificationQueue - NotificationQueue - NotificationQueued - NotificationQueued - NotificationQueued - NotificationQueue - NotificationQueue - NotificationQueue - - - bin\ - obj\NotificationQueue\$(Configuration)\ - true - - - bin\ - obj\NotificationQueue\$(Configuration)\ - false - - - bin\static_mt\ - obj\NotificationQueue\$(Configuration)\ - true - - - bin\static_mt\ - obj\NotificationQueue\$(Configuration)\ - false - - - bin\static_md\ - obj\NotificationQueue\$(Configuration)\ - true - - - bin\static_md\ - obj\NotificationQueue\$(Configuration)\ - false - - - bin64\ - obj64\NotificationQueue\$(Configuration)\ - true - - - bin64\ - obj64\NotificationQueue\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\NotificationQueue\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\NotificationQueue\$(Configuration)\ - false - - - bin64\static_md\ - obj64\NotificationQueue\$(Configuration)\ - true - - - bin64\static_md\ - obj64\NotificationQueue\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\NotificationQueued.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\NotificationQueued.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\NotificationQueue.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\NotificationQueued.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\NotificationQueued.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\NotificationQueue.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\NotificationQueued.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\NotificationQueued.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\NotificationQueue.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\NotificationQueued.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\NotificationQueued.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\NotificationQueue.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\NotificationQueued.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\NotificationQueued.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\NotificationQueue.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\NotificationQueued.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\NotificationQueued.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\NotificationQueue.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/NotificationQueue/NotificationQueue_vs150.vcxproj.filters b/Foundation/samples/NotificationQueue/NotificationQueue_vs150.vcxproj.filters deleted file mode 100644 index 7ecc331ac..000000000 --- a/Foundation/samples/NotificationQueue/NotificationQueue_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {2f7177cb-9bd6-4ba2-8391-9a9e2f134229} - - - {efb1509f-147d-48ff-8843-d928ccd0d5ed} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/StringTokenizer/StringTokenizer_vs140.vcxproj b/Foundation/samples/StringTokenizer/StringTokenizer_vs140.vcxproj deleted file mode 100644 index 88bcca0ef..000000000 --- a/Foundation/samples/StringTokenizer/StringTokenizer_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - StringTokenizer - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE} - StringTokenizer - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - StringTokenizerd - StringTokenizerd - StringTokenizerd - StringTokenizer - StringTokenizer - StringTokenizer - StringTokenizerd - StringTokenizerd - StringTokenizerd - StringTokenizer - StringTokenizer - StringTokenizer - - - bin\ - obj\StringTokenizer\$(Configuration)\ - true - - - bin\ - obj\StringTokenizer\$(Configuration)\ - false - - - bin\static_mt\ - obj\StringTokenizer\$(Configuration)\ - true - - - bin\static_mt\ - obj\StringTokenizer\$(Configuration)\ - false - - - bin\static_md\ - obj\StringTokenizer\$(Configuration)\ - true - - - bin\static_md\ - obj\StringTokenizer\$(Configuration)\ - false - - - bin64\ - obj64\StringTokenizer\$(Configuration)\ - true - - - bin64\ - obj64\StringTokenizer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\StringTokenizer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\StringTokenizer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\StringTokenizer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\StringTokenizer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\StringTokenizerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\StringTokenizerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\StringTokenizer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\StringTokenizerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\StringTokenizerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\StringTokenizer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\StringTokenizerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\StringTokenizerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\StringTokenizer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\StringTokenizerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\StringTokenizerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\StringTokenizer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\StringTokenizerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\StringTokenizerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\StringTokenizer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\StringTokenizerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\StringTokenizerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\StringTokenizer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/StringTokenizer/StringTokenizer_vs140.vcxproj.filters b/Foundation/samples/StringTokenizer/StringTokenizer_vs140.vcxproj.filters deleted file mode 100644 index 7fed87137..000000000 --- a/Foundation/samples/StringTokenizer/StringTokenizer_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {44310ac2-271b-4731-80fb-9def7d2042e6} - - - {bf63cbe4-b750-47e8-b92a-dad13d5c4077} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/StringTokenizer/StringTokenizer_vs150.vcxproj b/Foundation/samples/StringTokenizer/StringTokenizer_vs150.vcxproj deleted file mode 100644 index 246dc88f3..000000000 --- a/Foundation/samples/StringTokenizer/StringTokenizer_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - StringTokenizer - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE} - StringTokenizer - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - StringTokenizerd - StringTokenizerd - StringTokenizerd - StringTokenizer - StringTokenizer - StringTokenizer - StringTokenizerd - StringTokenizerd - StringTokenizerd - StringTokenizer - StringTokenizer - StringTokenizer - - - bin\ - obj\StringTokenizer\$(Configuration)\ - true - - - bin\ - obj\StringTokenizer\$(Configuration)\ - false - - - bin\static_mt\ - obj\StringTokenizer\$(Configuration)\ - true - - - bin\static_mt\ - obj\StringTokenizer\$(Configuration)\ - false - - - bin\static_md\ - obj\StringTokenizer\$(Configuration)\ - true - - - bin\static_md\ - obj\StringTokenizer\$(Configuration)\ - false - - - bin64\ - obj64\StringTokenizer\$(Configuration)\ - true - - - bin64\ - obj64\StringTokenizer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\StringTokenizer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\StringTokenizer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\StringTokenizer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\StringTokenizer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\StringTokenizerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\StringTokenizerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\StringTokenizer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\StringTokenizerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\StringTokenizerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\StringTokenizer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\StringTokenizerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\StringTokenizerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\StringTokenizer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\StringTokenizerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\StringTokenizerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\StringTokenizer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\StringTokenizerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\StringTokenizerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\StringTokenizer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\StringTokenizerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\StringTokenizerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\StringTokenizer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/StringTokenizer/StringTokenizer_vs150.vcxproj.filters b/Foundation/samples/StringTokenizer/StringTokenizer_vs150.vcxproj.filters deleted file mode 100644 index a3d8b46bc..000000000 --- a/Foundation/samples/StringTokenizer/StringTokenizer_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {cc0d79b8-2067-48bc-a756-e4e665a067e5} - - - {7952ca32-58b4-4fe3-a2d0-5d339f45a960} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/Timer/Timer_vs140.vcxproj b/Foundation/samples/Timer/Timer_vs140.vcxproj deleted file mode 100644 index 10844eb12..000000000 --- a/Foundation/samples/Timer/Timer_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Timer - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B} - Timer - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - Timerd - Timerd - Timerd - Timer - Timer - Timer - Timerd - Timerd - Timerd - Timer - Timer - Timer - - - bin\ - obj\Timer\$(Configuration)\ - true - - - bin\ - obj\Timer\$(Configuration)\ - false - - - bin\static_mt\ - obj\Timer\$(Configuration)\ - true - - - bin\static_mt\ - obj\Timer\$(Configuration)\ - false - - - bin\static_md\ - obj\Timer\$(Configuration)\ - true - - - bin\static_md\ - obj\Timer\$(Configuration)\ - false - - - bin64\ - obj64\Timer\$(Configuration)\ - true - - - bin64\ - obj64\Timer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Timer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Timer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Timer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Timer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Timerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Timerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Timer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Timerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Timerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Timer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Timerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Timerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Timer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Timerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Timerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Timer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Timerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Timerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Timer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Timerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Timerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Timer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/Timer/Timer_vs140.vcxproj.filters b/Foundation/samples/Timer/Timer_vs140.vcxproj.filters deleted file mode 100644 index 7efcca2c3..000000000 --- a/Foundation/samples/Timer/Timer_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {74f32a22-4b3b-45fe-826f-2dfeebb499f1} - - - {ae73511a-db8c-4ee3-879e-b97b23e249d0} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/Timer/Timer_vs150.vcxproj b/Foundation/samples/Timer/Timer_vs150.vcxproj deleted file mode 100644 index 8f8c9f19e..000000000 --- a/Foundation/samples/Timer/Timer_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Timer - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B} - Timer - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - Timerd - Timerd - Timerd - Timer - Timer - Timer - Timerd - Timerd - Timerd - Timer - Timer - Timer - - - bin\ - obj\Timer\$(Configuration)\ - true - - - bin\ - obj\Timer\$(Configuration)\ - false - - - bin\static_mt\ - obj\Timer\$(Configuration)\ - true - - - bin\static_mt\ - obj\Timer\$(Configuration)\ - false - - - bin\static_md\ - obj\Timer\$(Configuration)\ - true - - - bin\static_md\ - obj\Timer\$(Configuration)\ - false - - - bin64\ - obj64\Timer\$(Configuration)\ - true - - - bin64\ - obj64\Timer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Timer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Timer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Timer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Timer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Timerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Timerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Timer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Timerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Timerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Timer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Timerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Timerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Timer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Timerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Timerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Timer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Timerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Timerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Timer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Timerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Timerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Timer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/Timer/Timer_vs150.vcxproj.filters b/Foundation/samples/Timer/Timer_vs150.vcxproj.filters deleted file mode 100644 index f1f6a8319..000000000 --- a/Foundation/samples/Timer/Timer_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {2dceb6c9-7fe4-4d03-911a-a4f883b0e7e8} - - - {9873f4e9-b7c2-49b9-91fc-1a0c5fa33fe0} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/URI/URI_vs140.vcxproj b/Foundation/samples/URI/URI_vs140.vcxproj deleted file mode 100644 index 06cb47676..000000000 --- a/Foundation/samples/URI/URI_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - URI - {7D649DAD-3849-3E23-9BB4-802AC60E4E98} - URI - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - URId - URId - URId - URI - URI - URI - URId - URId - URId - URI - URI - URI - - - bin\ - obj\URI\$(Configuration)\ - true - - - bin\ - obj\URI\$(Configuration)\ - false - - - bin\static_mt\ - obj\URI\$(Configuration)\ - true - - - bin\static_mt\ - obj\URI\$(Configuration)\ - false - - - bin\static_md\ - obj\URI\$(Configuration)\ - true - - - bin\static_md\ - obj\URI\$(Configuration)\ - false - - - bin64\ - obj64\URI\$(Configuration)\ - true - - - bin64\ - obj64\URI\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\URI\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\URI\$(Configuration)\ - false - - - bin64\static_md\ - obj64\URI\$(Configuration)\ - true - - - bin64\static_md\ - obj64\URI\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\URId.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\URId.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\URI.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\URId.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\URId.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\URI.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\URId.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\URId.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\URI.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\URId.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\URId.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\URI.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\URId.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\URId.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\URI.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\URId.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\URId.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\URI.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/URI/URI_vs140.vcxproj.filters b/Foundation/samples/URI/URI_vs140.vcxproj.filters deleted file mode 100644 index 93a66f957..000000000 --- a/Foundation/samples/URI/URI_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {2e53b165-65ce-443e-8c7f-f89d3cd0d599} - - - {71c7d1ce-0b99-4109-8dd6-da9d172e6fec} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/URI/URI_vs150.vcxproj b/Foundation/samples/URI/URI_vs150.vcxproj deleted file mode 100644 index b128205a5..000000000 --- a/Foundation/samples/URI/URI_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - URI - {7D649DAD-3849-3E23-9BB4-802AC60E4E98} - URI - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - URId - URId - URId - URI - URI - URI - URId - URId - URId - URI - URI - URI - - - bin\ - obj\URI\$(Configuration)\ - true - - - bin\ - obj\URI\$(Configuration)\ - false - - - bin\static_mt\ - obj\URI\$(Configuration)\ - true - - - bin\static_mt\ - obj\URI\$(Configuration)\ - false - - - bin\static_md\ - obj\URI\$(Configuration)\ - true - - - bin\static_md\ - obj\URI\$(Configuration)\ - false - - - bin64\ - obj64\URI\$(Configuration)\ - true - - - bin64\ - obj64\URI\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\URI\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\URI\$(Configuration)\ - false - - - bin64\static_md\ - obj64\URI\$(Configuration)\ - true - - - bin64\static_md\ - obj64\URI\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\URId.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\URId.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\URI.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\URId.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\URId.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\URI.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\URId.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\URId.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\URI.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\URId.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\URId.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\URI.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\URId.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\URId.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\URI.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\URId.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\URId.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\URI.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/URI/URI_vs150.vcxproj.filters b/Foundation/samples/URI/URI_vs150.vcxproj.filters deleted file mode 100644 index a154535ca..000000000 --- a/Foundation/samples/URI/URI_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {9dab28c3-666e-429f-8960-f786607ae4bc} - - - {324d775f-bb69-437f-9ad7-8737bf1df962} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/base64decode/base64decode_vs140.vcxproj b/Foundation/samples/base64decode/base64decode_vs140.vcxproj deleted file mode 100644 index 371703ccc..000000000 --- a/Foundation/samples/base64decode/base64decode_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - base64decode - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8} - base64decode - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - base64decoded - base64decoded - base64decoded - base64decode - base64decode - base64decode - base64decoded - base64decoded - base64decoded - base64decode - base64decode - base64decode - - - bin\ - obj\base64decode\$(Configuration)\ - true - - - bin\ - obj\base64decode\$(Configuration)\ - false - - - bin\static_mt\ - obj\base64decode\$(Configuration)\ - true - - - bin\static_mt\ - obj\base64decode\$(Configuration)\ - false - - - bin\static_md\ - obj\base64decode\$(Configuration)\ - true - - - bin\static_md\ - obj\base64decode\$(Configuration)\ - false - - - bin64\ - obj64\base64decode\$(Configuration)\ - true - - - bin64\ - obj64\base64decode\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\base64decode\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\base64decode\$(Configuration)\ - false - - - bin64\static_md\ - obj64\base64decode\$(Configuration)\ - true - - - bin64\static_md\ - obj64\base64decode\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\base64decoded.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\base64decoded.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\base64decode.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\base64decoded.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\base64decoded.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\base64decode.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\base64decoded.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\base64decoded.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\base64decode.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\base64decoded.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\base64decoded.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\base64decode.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\base64decoded.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\base64decoded.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\base64decode.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\base64decoded.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\base64decoded.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\base64decode.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/base64decode/base64decode_vs140.vcxproj.filters b/Foundation/samples/base64decode/base64decode_vs140.vcxproj.filters deleted file mode 100644 index 327dde072..000000000 --- a/Foundation/samples/base64decode/base64decode_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {7279af11-b867-4479-8370-a9d00f4ba28e} - - - {6bcc7dd1-d8f0-478f-997c-8ab19093a3b7} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/base64decode/base64decode_vs150.vcxproj b/Foundation/samples/base64decode/base64decode_vs150.vcxproj deleted file mode 100644 index 168ff483f..000000000 --- a/Foundation/samples/base64decode/base64decode_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - base64decode - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8} - base64decode - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - base64decoded - base64decoded - base64decoded - base64decode - base64decode - base64decode - base64decoded - base64decoded - base64decoded - base64decode - base64decode - base64decode - - - bin\ - obj\base64decode\$(Configuration)\ - true - - - bin\ - obj\base64decode\$(Configuration)\ - false - - - bin\static_mt\ - obj\base64decode\$(Configuration)\ - true - - - bin\static_mt\ - obj\base64decode\$(Configuration)\ - false - - - bin\static_md\ - obj\base64decode\$(Configuration)\ - true - - - bin\static_md\ - obj\base64decode\$(Configuration)\ - false - - - bin64\ - obj64\base64decode\$(Configuration)\ - true - - - bin64\ - obj64\base64decode\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\base64decode\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\base64decode\$(Configuration)\ - false - - - bin64\static_md\ - obj64\base64decode\$(Configuration)\ - true - - - bin64\static_md\ - obj64\base64decode\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\base64decoded.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\base64decoded.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\base64decode.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\base64decoded.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\base64decoded.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\base64decode.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\base64decoded.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\base64decoded.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\base64decode.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\base64decoded.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\base64decoded.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\base64decode.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\base64decoded.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\base64decoded.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\base64decode.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\base64decoded.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\base64decoded.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\base64decode.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/base64decode/base64decode_vs150.vcxproj.filters b/Foundation/samples/base64decode/base64decode_vs150.vcxproj.filters deleted file mode 100644 index bcc8e2edf..000000000 --- a/Foundation/samples/base64decode/base64decode_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {0008d20b-2be7-491f-9fb5-5c48814839f9} - - - {a9419db9-b307-4b3f-ba53-5087aaa25d87} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/base64encode/base64encode_vs140.vcxproj b/Foundation/samples/base64encode/base64encode_vs140.vcxproj deleted file mode 100644 index 157e4dcda..000000000 --- a/Foundation/samples/base64encode/base64encode_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - base64encode - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0} - base64encode - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - base64encoded - base64encoded - base64encoded - base64encode - base64encode - base64encode - base64encoded - base64encoded - base64encoded - base64encode - base64encode - base64encode - - - bin\ - obj\base64encode\$(Configuration)\ - true - - - bin\ - obj\base64encode\$(Configuration)\ - false - - - bin\static_mt\ - obj\base64encode\$(Configuration)\ - true - - - bin\static_mt\ - obj\base64encode\$(Configuration)\ - false - - - bin\static_md\ - obj\base64encode\$(Configuration)\ - true - - - bin\static_md\ - obj\base64encode\$(Configuration)\ - false - - - bin64\ - obj64\base64encode\$(Configuration)\ - true - - - bin64\ - obj64\base64encode\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\base64encode\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\base64encode\$(Configuration)\ - false - - - bin64\static_md\ - obj64\base64encode\$(Configuration)\ - true - - - bin64\static_md\ - obj64\base64encode\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\base64encoded.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\base64encoded.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\base64encode.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\base64encoded.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\base64encoded.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\base64encode.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\base64encoded.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\base64encoded.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\base64encode.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\base64encoded.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\base64encoded.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\base64encode.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\base64encoded.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\base64encoded.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\base64encode.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\base64encoded.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\base64encoded.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\base64encode.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/base64encode/base64encode_vs140.vcxproj.filters b/Foundation/samples/base64encode/base64encode_vs140.vcxproj.filters deleted file mode 100644 index 1684f8c47..000000000 --- a/Foundation/samples/base64encode/base64encode_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {2a7169f6-f82f-4b8b-aac1-cc05dd59f97c} - - - {f21f3ceb-6f8b-4552-a9ac-18790e4a2c2f} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/base64encode/base64encode_vs150.vcxproj b/Foundation/samples/base64encode/base64encode_vs150.vcxproj deleted file mode 100644 index 2c8124a76..000000000 --- a/Foundation/samples/base64encode/base64encode_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - base64encode - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0} - base64encode - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - base64encoded - base64encoded - base64encoded - base64encode - base64encode - base64encode - base64encoded - base64encoded - base64encoded - base64encode - base64encode - base64encode - - - bin\ - obj\base64encode\$(Configuration)\ - true - - - bin\ - obj\base64encode\$(Configuration)\ - false - - - bin\static_mt\ - obj\base64encode\$(Configuration)\ - true - - - bin\static_mt\ - obj\base64encode\$(Configuration)\ - false - - - bin\static_md\ - obj\base64encode\$(Configuration)\ - true - - - bin\static_md\ - obj\base64encode\$(Configuration)\ - false - - - bin64\ - obj64\base64encode\$(Configuration)\ - true - - - bin64\ - obj64\base64encode\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\base64encode\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\base64encode\$(Configuration)\ - false - - - bin64\static_md\ - obj64\base64encode\$(Configuration)\ - true - - - bin64\static_md\ - obj64\base64encode\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\base64encoded.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\base64encoded.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\base64encode.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\base64encoded.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\base64encoded.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\base64encode.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\base64encoded.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\base64encoded.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\base64encode.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\base64encoded.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\base64encoded.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\base64encode.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\base64encoded.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\base64encoded.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\base64encode.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\base64encoded.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\base64encoded.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\base64encode.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/base64encode/base64encode_vs150.vcxproj.filters b/Foundation/samples/base64encode/base64encode_vs150.vcxproj.filters deleted file mode 100644 index 073ab1d1b..000000000 --- a/Foundation/samples/base64encode/base64encode_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {feba4133-9dc7-4573-a918-dcc2d562e835} - - - {3daf71f3-a569-4db2-acf8-89365904ad00} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/deflate/deflate_vs140.vcxproj b/Foundation/samples/deflate/deflate_vs140.vcxproj deleted file mode 100644 index 3b39fbb36..000000000 --- a/Foundation/samples/deflate/deflate_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - deflate - {6D323430-D9E1-3173-A087-7A6E084B63CD} - deflate - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - deflated - deflated - deflated - deflate - deflate - deflate - deflated - deflated - deflated - deflate - deflate - deflate - - - bin\ - obj\deflate\$(Configuration)\ - true - - - bin\ - obj\deflate\$(Configuration)\ - false - - - bin\static_mt\ - obj\deflate\$(Configuration)\ - true - - - bin\static_mt\ - obj\deflate\$(Configuration)\ - false - - - bin\static_md\ - obj\deflate\$(Configuration)\ - true - - - bin\static_md\ - obj\deflate\$(Configuration)\ - false - - - bin64\ - obj64\deflate\$(Configuration)\ - true - - - bin64\ - obj64\deflate\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\deflate\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\deflate\$(Configuration)\ - false - - - bin64\static_md\ - obj64\deflate\$(Configuration)\ - true - - - bin64\static_md\ - obj64\deflate\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\deflated.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\deflated.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\deflate.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\deflated.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\deflated.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\deflate.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\deflated.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\deflated.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\deflate.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\deflated.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\deflated.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\deflate.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\deflated.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\deflated.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\deflate.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\deflated.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\deflated.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\deflate.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/deflate/deflate_vs140.vcxproj.filters b/Foundation/samples/deflate/deflate_vs140.vcxproj.filters deleted file mode 100644 index a23d1174a..000000000 --- a/Foundation/samples/deflate/deflate_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {f6d42d68-d505-4783-937b-4d87ad261424} - - - {3a03c80a-0346-4ac2-b0f6-ddc322deda7a} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/deflate/deflate_vs150.vcxproj b/Foundation/samples/deflate/deflate_vs150.vcxproj deleted file mode 100644 index fb06631ea..000000000 --- a/Foundation/samples/deflate/deflate_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - deflate - {6D323430-D9E1-3173-A087-7A6E084B63CD} - deflate - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - deflated - deflated - deflated - deflate - deflate - deflate - deflated - deflated - deflated - deflate - deflate - deflate - - - bin\ - obj\deflate\$(Configuration)\ - true - - - bin\ - obj\deflate\$(Configuration)\ - false - - - bin\static_mt\ - obj\deflate\$(Configuration)\ - true - - - bin\static_mt\ - obj\deflate\$(Configuration)\ - false - - - bin\static_md\ - obj\deflate\$(Configuration)\ - true - - - bin\static_md\ - obj\deflate\$(Configuration)\ - false - - - bin64\ - obj64\deflate\$(Configuration)\ - true - - - bin64\ - obj64\deflate\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\deflate\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\deflate\$(Configuration)\ - false - - - bin64\static_md\ - obj64\deflate\$(Configuration)\ - true - - - bin64\static_md\ - obj64\deflate\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\deflated.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\deflated.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\deflate.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\deflated.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\deflated.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\deflate.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\deflated.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\deflated.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\deflate.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\deflated.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\deflated.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\deflate.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\deflated.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\deflated.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\deflate.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\deflated.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\deflated.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\deflate.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/deflate/deflate_vs150.vcxproj.filters b/Foundation/samples/deflate/deflate_vs150.vcxproj.filters deleted file mode 100644 index 3fe4cf3e0..000000000 --- a/Foundation/samples/deflate/deflate_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {a96d063a-15d7-423c-9e43-13c7965d62bf} - - - {b7ba7651-c1dd-4f3d-8888-64c15c71e690} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/dir/dir_vs140.vcxproj b/Foundation/samples/dir/dir_vs140.vcxproj deleted file mode 100644 index d1735726c..000000000 --- a/Foundation/samples/dir/dir_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - dir - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A} - dir - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - dird - dird - dird - dir - dir - dir - dird - dird - dird - dir - dir - dir - - - bin\ - obj\dir\$(Configuration)\ - true - - - bin\ - obj\dir\$(Configuration)\ - false - - - bin\static_mt\ - obj\dir\$(Configuration)\ - true - - - bin\static_mt\ - obj\dir\$(Configuration)\ - false - - - bin\static_md\ - obj\dir\$(Configuration)\ - true - - - bin\static_md\ - obj\dir\$(Configuration)\ - false - - - bin64\ - obj64\dir\$(Configuration)\ - true - - - bin64\ - obj64\dir\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\dir\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\dir\$(Configuration)\ - false - - - bin64\static_md\ - obj64\dir\$(Configuration)\ - true - - - bin64\static_md\ - obj64\dir\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\dird.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\dird.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\dir.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\dird.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\dird.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\dir.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\dird.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\dird.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\dir.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\dird.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\dird.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\dir.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\dird.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\dird.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\dir.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\dird.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\dird.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\dir.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/dir/dir_vs140.vcxproj.filters b/Foundation/samples/dir/dir_vs140.vcxproj.filters deleted file mode 100644 index 5907e95b6..000000000 --- a/Foundation/samples/dir/dir_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {4d002e92-34b3-4e35-b9ee-53f76bc6e5e1} - - - {30d00a0a-ff7d-4ba5-8d8c-5dc52a030749} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/dir/dir_vs150.vcxproj b/Foundation/samples/dir/dir_vs150.vcxproj deleted file mode 100644 index 8bdf3f957..000000000 --- a/Foundation/samples/dir/dir_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - dir - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A} - dir - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - dird - dird - dird - dir - dir - dir - dird - dird - dird - dir - dir - dir - - - bin\ - obj\dir\$(Configuration)\ - true - - - bin\ - obj\dir\$(Configuration)\ - false - - - bin\static_mt\ - obj\dir\$(Configuration)\ - true - - - bin\static_mt\ - obj\dir\$(Configuration)\ - false - - - bin\static_md\ - obj\dir\$(Configuration)\ - true - - - bin\static_md\ - obj\dir\$(Configuration)\ - false - - - bin64\ - obj64\dir\$(Configuration)\ - true - - - bin64\ - obj64\dir\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\dir\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\dir\$(Configuration)\ - false - - - bin64\static_md\ - obj64\dir\$(Configuration)\ - true - - - bin64\static_md\ - obj64\dir\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\dird.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\dird.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\dir.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\dird.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\dird.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\dir.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\dird.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\dird.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\dir.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\dird.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\dird.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\dir.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\dird.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\dird.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\dir.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\dird.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\dird.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\dir.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/dir/dir_vs150.vcxproj.filters b/Foundation/samples/dir/dir_vs150.vcxproj.filters deleted file mode 100644 index cfd582f77..000000000 --- a/Foundation/samples/dir/dir_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {3912837b-3234-428c-8c84-2d78d7b04960} - - - {dac0757b-6185-4d13-b599-deb7338ac3d1} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/grep/grep_vs140.vcxproj b/Foundation/samples/grep/grep_vs140.vcxproj deleted file mode 100644 index 3560fe1be..000000000 --- a/Foundation/samples/grep/grep_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - grep - {C743C479-4D47-37FE-A2EB-59CDD7A627FE} - grep - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - grepd - grepd - grepd - grep - grep - grep - grepd - grepd - grepd - grep - grep - grep - - - bin\ - obj\grep\$(Configuration)\ - true - - - bin\ - obj\grep\$(Configuration)\ - false - - - bin\static_mt\ - obj\grep\$(Configuration)\ - true - - - bin\static_mt\ - obj\grep\$(Configuration)\ - false - - - bin\static_md\ - obj\grep\$(Configuration)\ - true - - - bin\static_md\ - obj\grep\$(Configuration)\ - false - - - bin64\ - obj64\grep\$(Configuration)\ - true - - - bin64\ - obj64\grep\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\grep\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\grep\$(Configuration)\ - false - - - bin64\static_md\ - obj64\grep\$(Configuration)\ - true - - - bin64\static_md\ - obj64\grep\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\grepd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\grepd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\grep.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\grepd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\grepd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\grep.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\grepd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\grepd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\grep.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\grepd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\grepd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\grep.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\grepd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\grepd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\grep.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\grepd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\grepd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\grep.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/grep/grep_vs140.vcxproj.filters b/Foundation/samples/grep/grep_vs140.vcxproj.filters deleted file mode 100644 index 04e98fead..000000000 --- a/Foundation/samples/grep/grep_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {bfcadca5-e57a-43b4-a5a1-1a3ed76c769e} - - - {a0ac2347-733b-492d-8fdb-8acea139f8bf} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/grep/grep_vs150.vcxproj b/Foundation/samples/grep/grep_vs150.vcxproj deleted file mode 100644 index 6b1987da5..000000000 --- a/Foundation/samples/grep/grep_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - grep - {C743C479-4D47-37FE-A2EB-59CDD7A627FE} - grep - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - grepd - grepd - grepd - grep - grep - grep - grepd - grepd - grepd - grep - grep - grep - - - bin\ - obj\grep\$(Configuration)\ - true - - - bin\ - obj\grep\$(Configuration)\ - false - - - bin\static_mt\ - obj\grep\$(Configuration)\ - true - - - bin\static_mt\ - obj\grep\$(Configuration)\ - false - - - bin\static_md\ - obj\grep\$(Configuration)\ - true - - - bin\static_md\ - obj\grep\$(Configuration)\ - false - - - bin64\ - obj64\grep\$(Configuration)\ - true - - - bin64\ - obj64\grep\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\grep\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\grep\$(Configuration)\ - false - - - bin64\static_md\ - obj64\grep\$(Configuration)\ - true - - - bin64\static_md\ - obj64\grep\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\grepd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\grepd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\grep.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\grepd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\grepd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\grep.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\grepd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\grepd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\grep.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\grepd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\grepd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\grep.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\grepd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\grepd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\grep.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\grepd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\grepd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\grep.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/grep/grep_vs150.vcxproj.filters b/Foundation/samples/grep/grep_vs150.vcxproj.filters deleted file mode 100644 index dae07b1eb..000000000 --- a/Foundation/samples/grep/grep_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {cf23d89b-1a0b-4a54-9371-8215a1e94602} - - - {af345cf7-c5d1-46da-8804-c3e838c679ad} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/hmacmd5/hmacmd5_vs140.vcxproj b/Foundation/samples/hmacmd5/hmacmd5_vs140.vcxproj deleted file mode 100644 index 74e4c5124..000000000 --- a/Foundation/samples/hmacmd5/hmacmd5_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - hmacmd5 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359} - hmacmd5 - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - hmacmd5d - hmacmd5d - hmacmd5d - hmacmd5 - hmacmd5 - hmacmd5 - hmacmd5d - hmacmd5d - hmacmd5d - hmacmd5 - hmacmd5 - hmacmd5 - - - bin\ - obj\hmacmd5\$(Configuration)\ - true - - - bin\ - obj\hmacmd5\$(Configuration)\ - false - - - bin\static_mt\ - obj\hmacmd5\$(Configuration)\ - true - - - bin\static_mt\ - obj\hmacmd5\$(Configuration)\ - false - - - bin\static_md\ - obj\hmacmd5\$(Configuration)\ - true - - - bin\static_md\ - obj\hmacmd5\$(Configuration)\ - false - - - bin64\ - obj64\hmacmd5\$(Configuration)\ - true - - - bin64\ - obj64\hmacmd5\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\hmacmd5\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\hmacmd5\$(Configuration)\ - false - - - bin64\static_md\ - obj64\hmacmd5\$(Configuration)\ - true - - - bin64\static_md\ - obj64\hmacmd5\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\hmacmd5d.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\hmacmd5d.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\hmacmd5.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\hmacmd5d.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\hmacmd5d.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\hmacmd5.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\hmacmd5d.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\hmacmd5d.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\hmacmd5.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\hmacmd5d.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\hmacmd5d.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\hmacmd5.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\hmacmd5d.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\hmacmd5d.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\hmacmd5.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\hmacmd5d.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\hmacmd5d.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\hmacmd5.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/hmacmd5/hmacmd5_vs140.vcxproj.filters b/Foundation/samples/hmacmd5/hmacmd5_vs140.vcxproj.filters deleted file mode 100644 index 49d2f47f5..000000000 --- a/Foundation/samples/hmacmd5/hmacmd5_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {753a73de-a3b9-4240-aa26-ea3a6c061687} - - - {afd91282-e715-4d56-a547-7f8543677282} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/hmacmd5/hmacmd5_vs150.vcxproj b/Foundation/samples/hmacmd5/hmacmd5_vs150.vcxproj deleted file mode 100644 index 7961bfde7..000000000 --- a/Foundation/samples/hmacmd5/hmacmd5_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - hmacmd5 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359} - hmacmd5 - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - hmacmd5d - hmacmd5d - hmacmd5d - hmacmd5 - hmacmd5 - hmacmd5 - hmacmd5d - hmacmd5d - hmacmd5d - hmacmd5 - hmacmd5 - hmacmd5 - - - bin\ - obj\hmacmd5\$(Configuration)\ - true - - - bin\ - obj\hmacmd5\$(Configuration)\ - false - - - bin\static_mt\ - obj\hmacmd5\$(Configuration)\ - true - - - bin\static_mt\ - obj\hmacmd5\$(Configuration)\ - false - - - bin\static_md\ - obj\hmacmd5\$(Configuration)\ - true - - - bin\static_md\ - obj\hmacmd5\$(Configuration)\ - false - - - bin64\ - obj64\hmacmd5\$(Configuration)\ - true - - - bin64\ - obj64\hmacmd5\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\hmacmd5\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\hmacmd5\$(Configuration)\ - false - - - bin64\static_md\ - obj64\hmacmd5\$(Configuration)\ - true - - - bin64\static_md\ - obj64\hmacmd5\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\hmacmd5d.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\hmacmd5d.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\hmacmd5.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\hmacmd5d.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\hmacmd5d.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\hmacmd5.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\hmacmd5d.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\hmacmd5d.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\hmacmd5.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\hmacmd5d.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\hmacmd5d.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\hmacmd5.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\hmacmd5d.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\hmacmd5d.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\hmacmd5.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\hmacmd5d.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\hmacmd5d.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\hmacmd5.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/hmacmd5/hmacmd5_vs150.vcxproj.filters b/Foundation/samples/hmacmd5/hmacmd5_vs150.vcxproj.filters deleted file mode 100644 index 7e4227d82..000000000 --- a/Foundation/samples/hmacmd5/hmacmd5_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {a12581df-9ff4-46b0-8aec-78d18040f4b9} - - - {63c6583f-811c-4ade-a2a2-630717442967} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/inflate/inflate_vs140.vcxproj b/Foundation/samples/inflate/inflate_vs140.vcxproj deleted file mode 100644 index caf2921c4..000000000 --- a/Foundation/samples/inflate/inflate_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - inflate - {9F489D6A-175F-3754-B4E4-2B0E795D2857} - inflate - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - inflated - inflated - inflated - inflate - inflate - inflate - inflated - inflated - inflated - inflate - inflate - inflate - - - bin\ - obj\inflate\$(Configuration)\ - true - - - bin\ - obj\inflate\$(Configuration)\ - false - - - bin\static_mt\ - obj\inflate\$(Configuration)\ - true - - - bin\static_mt\ - obj\inflate\$(Configuration)\ - false - - - bin\static_md\ - obj\inflate\$(Configuration)\ - true - - - bin\static_md\ - obj\inflate\$(Configuration)\ - false - - - bin64\ - obj64\inflate\$(Configuration)\ - true - - - bin64\ - obj64\inflate\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\inflate\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\inflate\$(Configuration)\ - false - - - bin64\static_md\ - obj64\inflate\$(Configuration)\ - true - - - bin64\static_md\ - obj64\inflate\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\inflated.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\inflated.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\inflate.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\inflated.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\inflated.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\inflate.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\inflated.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\inflated.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\inflate.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\inflated.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\inflated.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\inflate.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\inflated.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\inflated.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\inflate.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\inflated.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\inflated.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\inflate.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/inflate/inflate_vs140.vcxproj.filters b/Foundation/samples/inflate/inflate_vs140.vcxproj.filters deleted file mode 100644 index 5e61ebc39..000000000 --- a/Foundation/samples/inflate/inflate_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {9583e48d-30d2-4a03-b511-72202cf13a6e} - - - {1616cdd8-ce2e-4575-806e-9de33edf4695} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/inflate/inflate_vs150.vcxproj b/Foundation/samples/inflate/inflate_vs150.vcxproj deleted file mode 100644 index 31e981ac0..000000000 --- a/Foundation/samples/inflate/inflate_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - inflate - {9F489D6A-175F-3754-B4E4-2B0E795D2857} - inflate - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - inflated - inflated - inflated - inflate - inflate - inflate - inflated - inflated - inflated - inflate - inflate - inflate - - - bin\ - obj\inflate\$(Configuration)\ - true - - - bin\ - obj\inflate\$(Configuration)\ - false - - - bin\static_mt\ - obj\inflate\$(Configuration)\ - true - - - bin\static_mt\ - obj\inflate\$(Configuration)\ - false - - - bin\static_md\ - obj\inflate\$(Configuration)\ - true - - - bin\static_md\ - obj\inflate\$(Configuration)\ - false - - - bin64\ - obj64\inflate\$(Configuration)\ - true - - - bin64\ - obj64\inflate\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\inflate\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\inflate\$(Configuration)\ - false - - - bin64\static_md\ - obj64\inflate\$(Configuration)\ - true - - - bin64\static_md\ - obj64\inflate\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\inflated.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\inflated.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\inflate.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\inflated.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\inflated.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\inflate.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\inflated.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\inflated.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\inflate.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\inflated.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\inflated.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\inflate.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\inflated.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\inflated.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\inflate.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\inflated.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\inflated.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\inflate.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/inflate/inflate_vs150.vcxproj.filters b/Foundation/samples/inflate/inflate_vs150.vcxproj.filters deleted file mode 100644 index 2d4ba0fe7..000000000 --- a/Foundation/samples/inflate/inflate_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {fd412361-ff97-4a02-b875-e817c400416f} - - - {82be6900-585f-49ab-900c-62db52b82fee} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/md5/md5_vs140.vcxproj b/Foundation/samples/md5/md5_vs140.vcxproj deleted file mode 100644 index 0a6ce6893..000000000 --- a/Foundation/samples/md5/md5_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - md5 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C} - md5 - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - md5d - md5d - md5d - md5 - md5 - md5 - md5d - md5d - md5d - md5 - md5 - md5 - - - bin\ - obj\md5\$(Configuration)\ - true - - - bin\ - obj\md5\$(Configuration)\ - false - - - bin\static_mt\ - obj\md5\$(Configuration)\ - true - - - bin\static_mt\ - obj\md5\$(Configuration)\ - false - - - bin\static_md\ - obj\md5\$(Configuration)\ - true - - - bin\static_md\ - obj\md5\$(Configuration)\ - false - - - bin64\ - obj64\md5\$(Configuration)\ - true - - - bin64\ - obj64\md5\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\md5\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\md5\$(Configuration)\ - false - - - bin64\static_md\ - obj64\md5\$(Configuration)\ - true - - - bin64\static_md\ - obj64\md5\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\md5d.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\md5d.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\md5.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\md5d.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\md5d.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\md5.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\md5d.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\md5d.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\md5.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\md5d.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\md5d.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\md5.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\md5d.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\md5d.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\md5.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\md5d.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\md5d.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\md5.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/md5/md5_vs140.vcxproj.filters b/Foundation/samples/md5/md5_vs140.vcxproj.filters deleted file mode 100644 index 8be1912fe..000000000 --- a/Foundation/samples/md5/md5_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {7e6a7d16-0511-431c-8734-42cba13ef09c} - - - {e264ee0d-8ed5-40f0-9fee-fbe996286bd4} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/md5/md5_vs150.vcxproj b/Foundation/samples/md5/md5_vs150.vcxproj deleted file mode 100644 index add8c230f..000000000 --- a/Foundation/samples/md5/md5_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - md5 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C} - md5 - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - md5d - md5d - md5d - md5 - md5 - md5 - md5d - md5d - md5d - md5 - md5 - md5 - - - bin\ - obj\md5\$(Configuration)\ - true - - - bin\ - obj\md5\$(Configuration)\ - false - - - bin\static_mt\ - obj\md5\$(Configuration)\ - true - - - bin\static_mt\ - obj\md5\$(Configuration)\ - false - - - bin\static_md\ - obj\md5\$(Configuration)\ - true - - - bin\static_md\ - obj\md5\$(Configuration)\ - false - - - bin64\ - obj64\md5\$(Configuration)\ - true - - - bin64\ - obj64\md5\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\md5\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\md5\$(Configuration)\ - false - - - bin64\static_md\ - obj64\md5\$(Configuration)\ - true - - - bin64\static_md\ - obj64\md5\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\md5d.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\md5d.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\md5.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\md5d.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\md5d.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\md5.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\md5d.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\md5d.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\md5.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\md5d.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\md5d.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\md5.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\md5d.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\md5d.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\md5.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\md5d.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\md5d.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\md5.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/md5/md5_vs150.vcxproj.filters b/Foundation/samples/md5/md5_vs150.vcxproj.filters deleted file mode 100644 index 6ea01e5e2..000000000 --- a/Foundation/samples/md5/md5_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {321de4bb-e379-422e-adda-f11de7b424d4} - - - {2021c622-03d9-4e3a-88a0-e63db948a0e7} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/samples_vs140.sln b/Foundation/samples/samples_vs140.sln deleted file mode 100644 index d215d50bf..000000000 --- a/Foundation/samples/samples_vs140.sln +++ /dev/null @@ -1,783 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ActiveMethod", "ActiveMethod\ActiveMethod_vs140.vcxproj", "{F8B51F16-52AE-3D43-B55B-BD62ED422C2F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Activity", "Activity\Activity_vs140.vcxproj", "{479B938E-57EA-3332-AFD3-E7285DE4EB28}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base64decode", "base64decode\base64decode_vs140.vcxproj", "{A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base64encode", "base64encode\base64encode_vs140.vcxproj", "{6CCDAF5F-4AD1-3F87-8052-B99952B203E0}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BinaryReaderWriter", "BinaryReaderWriter\BinaryReaderWriter_vs140.vcxproj", "{A5639B95-211B-36F1-994E-F05361C18EBF}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DateTime", "DateTime\DateTime_vs140.vcxproj", "{9549D36E-CB01-3BA4-916D-0BCEA078A8AF}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "deflate", "deflate\deflate_vs140.vcxproj", "{6D323430-D9E1-3173-A087-7A6E084B63CD}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dir", "dir\dir_vs140.vcxproj", "{39E0E21B-10A6-3D5A-9B68-70F20C05D80A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grep", "grep\grep_vs140.vcxproj", "{C743C479-4D47-37FE-A2EB-59CDD7A627FE}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hmacmd5", "hmacmd5\hmacmd5_vs140.vcxproj", "{0CC4CA42-4EEF-36C8-A426-5A047C1A2359}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "inflate", "inflate\inflate_vs140.vcxproj", "{9F489D6A-175F-3754-B4E4-2B0E795D2857}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LineEndingConverter", "LineEndingConverter\LineEndingConverter_vs140.vcxproj", "{354BBE76-D088-3931-940C-797F514D2E40}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logger", "Logger\Logger_vs140.vcxproj", "{49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LogRotation", "LogRotation\LogRotation_vs140.vcxproj", "{0382A4E1-4461-391B-A8D6-A35251CD7464}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "md5", "md5\md5_vs140.vcxproj", "{2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NotificationQueue", "NotificationQueue\NotificationQueue_vs140.vcxproj", "{4238E8B1-08D7-3469-8896-2A643B585A2D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StringTokenizer", "StringTokenizer\StringTokenizer_vs140.vcxproj", "{1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Timer", "Timer\Timer_vs140.vcxproj", "{84150D4A-0A5A-30D5-8140-24B0F61CAF9B}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "URI", "URI\URI_vs140.vcxproj", "{7D649DAD-3849-3E23-9BB4-802AC60E4E98}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uuidgen", "uuidgen\uuidgen_vs140.vcxproj", "{5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_shared|Win32.Build.0 = release_shared|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_shared|x64.Build.0 = debug_shared|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_shared|x64.ActiveCfg = release_shared|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_shared|x64.Build.0 = release_shared|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_shared|x64.Deploy.0 = release_shared|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_md|x64.Build.0 = release_static_md|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_shared|Win32.Build.0 = release_shared|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_shared|x64.Build.0 = debug_shared|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_shared|x64.ActiveCfg = release_shared|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_shared|x64.Build.0 = release_shared|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_shared|x64.Deploy.0 = release_shared|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_md|x64.Build.0 = release_static_md|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_shared|Win32.Build.0 = release_shared|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_shared|x64.Build.0 = debug_shared|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_shared|x64.ActiveCfg = release_shared|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_shared|x64.Build.0 = release_shared|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_shared|x64.Deploy.0 = release_shared|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_md|x64.Build.0 = release_static_md|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_shared|Win32.Build.0 = release_shared|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_shared|x64.Build.0 = debug_shared|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_shared|x64.ActiveCfg = release_shared|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_shared|x64.Build.0 = release_shared|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_shared|x64.Deploy.0 = release_shared|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_md|x64.Build.0 = release_static_md|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_shared|Win32.Build.0 = release_shared|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_shared|x64.Build.0 = debug_shared|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_shared|x64.ActiveCfg = release_shared|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_shared|x64.Build.0 = release_shared|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_shared|x64.Deploy.0 = release_shared|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_md|x64.Build.0 = release_static_md|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_shared|Win32.Build.0 = release_shared|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_shared|x64.Build.0 = debug_shared|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_shared|x64.ActiveCfg = release_shared|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_shared|x64.Build.0 = release_shared|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_shared|x64.Deploy.0 = release_shared|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_md|x64.Build.0 = release_static_md|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_shared|Win32.Build.0 = release_shared|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_shared|x64.Build.0 = debug_shared|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_shared|x64.ActiveCfg = release_shared|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_shared|x64.Build.0 = release_shared|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_shared|x64.Deploy.0 = release_shared|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_md|x64.Build.0 = release_static_md|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_shared|Win32.Build.0 = release_shared|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_shared|x64.Build.0 = debug_shared|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_shared|x64.ActiveCfg = release_shared|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_shared|x64.Build.0 = release_shared|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_shared|x64.Deploy.0 = release_shared|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_md|x64.Build.0 = release_static_md|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_shared|Win32.Build.0 = release_shared|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_shared|x64.Build.0 = debug_shared|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_shared|x64.ActiveCfg = release_shared|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_shared|x64.Build.0 = release_shared|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_shared|x64.Deploy.0 = release_shared|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_md|x64.Build.0 = release_static_md|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_shared|Win32.Build.0 = release_shared|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_shared|x64.Build.0 = debug_shared|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_shared|x64.ActiveCfg = release_shared|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_shared|x64.Build.0 = release_shared|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_shared|x64.Deploy.0 = release_shared|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_md|x64.Build.0 = release_static_md|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_shared|Win32.Build.0 = release_shared|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_shared|x64.Build.0 = debug_shared|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_shared|x64.ActiveCfg = release_shared|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_shared|x64.Build.0 = release_shared|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_shared|x64.Deploy.0 = release_shared|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_md|x64.Build.0 = release_static_md|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.release_shared|Win32.Build.0 = release_shared|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_shared|x64.Build.0 = debug_shared|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.release_shared|x64.ActiveCfg = release_shared|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.release_shared|x64.Build.0 = release_shared|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.release_shared|x64.Deploy.0 = release_shared|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_md|x64.Build.0 = release_static_md|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_shared|Win32.Build.0 = release_shared|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_shared|x64.Build.0 = debug_shared|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_shared|x64.ActiveCfg = release_shared|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_shared|x64.Build.0 = release_shared|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_shared|x64.Deploy.0 = release_shared|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_md|x64.Build.0 = release_static_md|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_shared|Win32.Build.0 = release_shared|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_shared|x64.Build.0 = debug_shared|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_shared|x64.ActiveCfg = release_shared|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_shared|x64.Build.0 = release_shared|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_shared|x64.Deploy.0 = release_shared|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_md|x64.Build.0 = release_static_md|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_shared|Win32.Build.0 = release_shared|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_shared|x64.Build.0 = debug_shared|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_shared|x64.ActiveCfg = release_shared|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_shared|x64.Build.0 = release_shared|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_shared|x64.Deploy.0 = release_shared|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_md|x64.Build.0 = release_static_md|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_shared|Win32.Build.0 = release_shared|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_shared|x64.Build.0 = debug_shared|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_shared|x64.ActiveCfg = release_shared|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_shared|x64.Build.0 = release_shared|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_shared|x64.Deploy.0 = release_shared|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_md|x64.Build.0 = release_static_md|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_shared|Win32.Build.0 = release_shared|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_shared|x64.Build.0 = debug_shared|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_shared|x64.ActiveCfg = release_shared|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_shared|x64.Build.0 = release_shared|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_shared|x64.Deploy.0 = release_shared|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_md|x64.Build.0 = release_static_md|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_shared|Win32.Build.0 = release_shared|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_shared|x64.Build.0 = debug_shared|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_shared|x64.ActiveCfg = release_shared|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_shared|x64.Build.0 = release_shared|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_shared|x64.Deploy.0 = release_shared|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_md|x64.Build.0 = release_static_md|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_shared|Win32.Build.0 = release_shared|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_shared|x64.Build.0 = debug_shared|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_shared|x64.ActiveCfg = release_shared|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_shared|x64.Build.0 = release_shared|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_shared|x64.Deploy.0 = release_shared|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_md|x64.Build.0 = release_static_md|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_shared|Win32.Build.0 = release_shared|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_shared|x64.Build.0 = debug_shared|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_shared|x64.ActiveCfg = release_shared|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_shared|x64.Build.0 = release_shared|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_shared|x64.Deploy.0 = release_shared|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_md|x64.Build.0 = release_static_md|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Foundation/samples/samples_vs150.sln b/Foundation/samples/samples_vs150.sln deleted file mode 100644 index d5c3be26e..000000000 --- a/Foundation/samples/samples_vs150.sln +++ /dev/null @@ -1,783 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ActiveMethod", "ActiveMethod\ActiveMethod_vs150.vcxproj", "{F8B51F16-52AE-3D43-B55B-BD62ED422C2F}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Activity", "Activity\Activity_vs150.vcxproj", "{479B938E-57EA-3332-AFD3-E7285DE4EB28}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base64decode", "base64decode\base64decode_vs150.vcxproj", "{A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "base64encode", "base64encode\base64encode_vs150.vcxproj", "{6CCDAF5F-4AD1-3F87-8052-B99952B203E0}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BinaryReaderWriter", "BinaryReaderWriter\BinaryReaderWriter_vs150.vcxproj", "{A5639B95-211B-36F1-994E-F05361C18EBF}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DateTime", "DateTime\DateTime_vs150.vcxproj", "{9549D36E-CB01-3BA4-916D-0BCEA078A8AF}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "deflate", "deflate\deflate_vs150.vcxproj", "{6D323430-D9E1-3173-A087-7A6E084B63CD}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dir", "dir\dir_vs150.vcxproj", "{39E0E21B-10A6-3D5A-9B68-70F20C05D80A}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grep", "grep\grep_vs150.vcxproj", "{C743C479-4D47-37FE-A2EB-59CDD7A627FE}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "hmacmd5", "hmacmd5\hmacmd5_vs150.vcxproj", "{0CC4CA42-4EEF-36C8-A426-5A047C1A2359}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "inflate", "inflate\inflate_vs150.vcxproj", "{9F489D6A-175F-3754-B4E4-2B0E795D2857}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LineEndingConverter", "LineEndingConverter\LineEndingConverter_vs150.vcxproj", "{354BBE76-D088-3931-940C-797F514D2E40}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Logger", "Logger\Logger_vs150.vcxproj", "{49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LogRotation", "LogRotation\LogRotation_vs150.vcxproj", "{0382A4E1-4461-391B-A8D6-A35251CD7464}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "md5", "md5\md5_vs150.vcxproj", "{2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NotificationQueue", "NotificationQueue\NotificationQueue_vs150.vcxproj", "{4238E8B1-08D7-3469-8896-2A643B585A2D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "StringTokenizer", "StringTokenizer\StringTokenizer_vs150.vcxproj", "{1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Timer", "Timer\Timer_vs150.vcxproj", "{84150D4A-0A5A-30D5-8140-24B0F61CAF9B}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "URI", "URI\URI_vs150.vcxproj", "{7D649DAD-3849-3E23-9BB4-802AC60E4E98}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uuidgen", "uuidgen\uuidgen_vs150.vcxproj", "{5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_shared|Win32.Build.0 = release_shared|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_shared|x64.Build.0 = debug_shared|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_shared|x64.ActiveCfg = release_shared|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_shared|x64.Build.0 = release_shared|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_shared|x64.Deploy.0 = release_shared|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_md|x64.Build.0 = release_static_md|x64 - {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_shared|Win32.Build.0 = release_shared|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_shared|x64.Build.0 = debug_shared|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_shared|x64.ActiveCfg = release_shared|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_shared|x64.Build.0 = release_shared|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_shared|x64.Deploy.0 = release_shared|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_md|x64.Build.0 = release_static_md|x64 - {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_shared|Win32.Build.0 = release_shared|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_shared|x64.Build.0 = debug_shared|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_shared|x64.ActiveCfg = release_shared|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_shared|x64.Build.0 = release_shared|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_shared|x64.Deploy.0 = release_shared|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_md|x64.Build.0 = release_static_md|x64 - {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_shared|Win32.Build.0 = release_shared|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_shared|x64.Build.0 = debug_shared|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_shared|x64.ActiveCfg = release_shared|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_shared|x64.Build.0 = release_shared|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_shared|x64.Deploy.0 = release_shared|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_md|x64.Build.0 = release_static_md|x64 - {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_shared|Win32.Build.0 = release_shared|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_shared|x64.Build.0 = debug_shared|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_shared|x64.ActiveCfg = release_shared|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_shared|x64.Build.0 = release_shared|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_shared|x64.Deploy.0 = release_shared|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_md|x64.Build.0 = release_static_md|x64 - {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_shared|Win32.Build.0 = release_shared|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_shared|x64.Build.0 = debug_shared|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_shared|x64.ActiveCfg = release_shared|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_shared|x64.Build.0 = release_shared|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_shared|x64.Deploy.0 = release_shared|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_md|x64.Build.0 = release_static_md|x64 - {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_shared|Win32.Build.0 = release_shared|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_shared|x64.Build.0 = debug_shared|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_shared|x64.ActiveCfg = release_shared|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_shared|x64.Build.0 = release_shared|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_shared|x64.Deploy.0 = release_shared|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_md|x64.Build.0 = release_static_md|x64 - {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_shared|Win32.Build.0 = release_shared|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_shared|x64.Build.0 = debug_shared|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_shared|x64.ActiveCfg = release_shared|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_shared|x64.Build.0 = release_shared|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_shared|x64.Deploy.0 = release_shared|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_md|x64.Build.0 = release_static_md|x64 - {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_shared|Win32.Build.0 = release_shared|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_shared|x64.Build.0 = debug_shared|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_shared|x64.ActiveCfg = release_shared|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_shared|x64.Build.0 = release_shared|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_shared|x64.Deploy.0 = release_shared|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_md|x64.Build.0 = release_static_md|x64 - {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_shared|Win32.Build.0 = release_shared|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_shared|x64.Build.0 = debug_shared|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_shared|x64.ActiveCfg = release_shared|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_shared|x64.Build.0 = release_shared|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_shared|x64.Deploy.0 = release_shared|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_md|x64.Build.0 = release_static_md|x64 - {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_shared|Win32.Build.0 = release_shared|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_shared|x64.Build.0 = debug_shared|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_shared|x64.ActiveCfg = release_shared|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_shared|x64.Build.0 = release_shared|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_shared|x64.Deploy.0 = release_shared|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_md|x64.Build.0 = release_static_md|x64 - {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.release_shared|Win32.Build.0 = release_shared|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_shared|x64.Build.0 = debug_shared|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.release_shared|x64.ActiveCfg = release_shared|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.release_shared|x64.Build.0 = release_shared|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.release_shared|x64.Deploy.0 = release_shared|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_md|x64.Build.0 = release_static_md|x64 - {354BBE76-D088-3931-940C-797F514D2E40}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_shared|Win32.Build.0 = release_shared|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_shared|x64.Build.0 = debug_shared|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_shared|x64.ActiveCfg = release_shared|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_shared|x64.Build.0 = release_shared|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_shared|x64.Deploy.0 = release_shared|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_md|x64.Build.0 = release_static_md|x64 - {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_shared|Win32.Build.0 = release_shared|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_shared|x64.Build.0 = debug_shared|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_shared|x64.ActiveCfg = release_shared|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_shared|x64.Build.0 = release_shared|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_shared|x64.Deploy.0 = release_shared|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_md|x64.Build.0 = release_static_md|x64 - {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_shared|Win32.Build.0 = release_shared|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_shared|x64.Build.0 = debug_shared|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_shared|x64.ActiveCfg = release_shared|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_shared|x64.Build.0 = release_shared|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_shared|x64.Deploy.0 = release_shared|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_md|x64.Build.0 = release_static_md|x64 - {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_shared|Win32.Build.0 = release_shared|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_shared|x64.Build.0 = debug_shared|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_shared|x64.ActiveCfg = release_shared|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_shared|x64.Build.0 = release_shared|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_shared|x64.Deploy.0 = release_shared|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_md|x64.Build.0 = release_static_md|x64 - {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_shared|Win32.Build.0 = release_shared|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_shared|x64.Build.0 = debug_shared|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_shared|x64.ActiveCfg = release_shared|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_shared|x64.Build.0 = release_shared|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_shared|x64.Deploy.0 = release_shared|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_md|x64.Build.0 = release_static_md|x64 - {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_shared|Win32.Build.0 = release_shared|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_shared|x64.Build.0 = debug_shared|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_shared|x64.ActiveCfg = release_shared|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_shared|x64.Build.0 = release_shared|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_shared|x64.Deploy.0 = release_shared|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_md|x64.Build.0 = release_static_md|x64 - {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_shared|Win32.Build.0 = release_shared|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_shared|x64.Build.0 = debug_shared|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_shared|x64.ActiveCfg = release_shared|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_shared|x64.Build.0 = release_shared|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_shared|x64.Deploy.0 = release_shared|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_md|x64.Build.0 = release_static_md|x64 - {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_shared|Win32.Build.0 = release_shared|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_shared|x64.Build.0 = debug_shared|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_shared|x64.ActiveCfg = release_shared|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_shared|x64.Build.0 = release_shared|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_shared|x64.Deploy.0 = release_shared|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_md|x64.Build.0 = release_static_md|x64 - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Foundation/samples/uuidgen/uuidgen_vs140.vcxproj b/Foundation/samples/uuidgen/uuidgen_vs140.vcxproj deleted file mode 100644 index 6c13a1d14..000000000 --- a/Foundation/samples/uuidgen/uuidgen_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - uuidgen - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862} - uuidgen - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - uuidgend - uuidgend - uuidgend - uuidgen - uuidgen - uuidgen - uuidgend - uuidgend - uuidgend - uuidgen - uuidgen - uuidgen - - - bin\ - obj\uuidgen\$(Configuration)\ - true - - - bin\ - obj\uuidgen\$(Configuration)\ - false - - - bin\static_mt\ - obj\uuidgen\$(Configuration)\ - true - - - bin\static_mt\ - obj\uuidgen\$(Configuration)\ - false - - - bin\static_md\ - obj\uuidgen\$(Configuration)\ - true - - - bin\static_md\ - obj\uuidgen\$(Configuration)\ - false - - - bin64\ - obj64\uuidgen\$(Configuration)\ - true - - - bin64\ - obj64\uuidgen\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\uuidgen\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\uuidgen\$(Configuration)\ - false - - - bin64\static_md\ - obj64\uuidgen\$(Configuration)\ - true - - - bin64\static_md\ - obj64\uuidgen\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\uuidgend.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\uuidgend.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\uuidgen.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\uuidgend.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\uuidgend.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\uuidgen.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\uuidgend.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\uuidgend.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\uuidgen.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\uuidgend.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\uuidgend.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\uuidgen.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\uuidgend.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\uuidgend.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\uuidgen.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\uuidgend.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\uuidgend.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\uuidgen.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/uuidgen/uuidgen_vs140.vcxproj.filters b/Foundation/samples/uuidgen/uuidgen_vs140.vcxproj.filters deleted file mode 100644 index c2a7e664f..000000000 --- a/Foundation/samples/uuidgen/uuidgen_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {f70c017b-277f-42af-b0ff-66fb189a14ab} - - - {7799f1fe-8fba-45e2-814c-bee6ae9a7f05} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/samples/uuidgen/uuidgen_vs150.vcxproj b/Foundation/samples/uuidgen/uuidgen_vs150.vcxproj deleted file mode 100644 index 6edf55317..000000000 --- a/Foundation/samples/uuidgen/uuidgen_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - uuidgen - {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862} - uuidgen - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - uuidgend - uuidgend - uuidgend - uuidgen - uuidgen - uuidgen - uuidgend - uuidgend - uuidgend - uuidgen - uuidgen - uuidgen - - - bin\ - obj\uuidgen\$(Configuration)\ - true - - - bin\ - obj\uuidgen\$(Configuration)\ - false - - - bin\static_mt\ - obj\uuidgen\$(Configuration)\ - true - - - bin\static_mt\ - obj\uuidgen\$(Configuration)\ - false - - - bin\static_md\ - obj\uuidgen\$(Configuration)\ - true - - - bin\static_md\ - obj\uuidgen\$(Configuration)\ - false - - - bin64\ - obj64\uuidgen\$(Configuration)\ - true - - - bin64\ - obj64\uuidgen\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\uuidgen\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\uuidgen\$(Configuration)\ - false - - - bin64\static_md\ - obj64\uuidgen\$(Configuration)\ - true - - - bin64\static_md\ - obj64\uuidgen\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\uuidgend.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\uuidgend.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\uuidgen.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\uuidgend.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\uuidgend.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\uuidgen.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\uuidgend.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\uuidgend.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\uuidgen.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\uuidgend.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\uuidgend.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\uuidgen.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\uuidgend.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\uuidgend.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\uuidgen.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\uuidgend.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\uuidgend.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\uuidgen.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Foundation/samples/uuidgen/uuidgen_vs150.vcxproj.filters b/Foundation/samples/uuidgen/uuidgen_vs150.vcxproj.filters deleted file mode 100644 index acadf5cb4..000000000 --- a/Foundation/samples/uuidgen/uuidgen_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {65159304-4af5-41ec-a539-70a0b4299195} - - - {c5e2a10c-804e-46cd-aad5-6af645957906} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/testsuite/TestApp_vs140.vcxproj b/Foundation/testsuite/TestApp_vs140.vcxproj deleted file mode 100644 index 1013fbdcd..000000000 --- a/Foundation/testsuite/TestApp_vs140.vcxproj +++ /dev/null @@ -1,622 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestApp - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A} - TestApp - Win32Proj - - - - Application - false - MultiByte - v140 - - - Application - false - MultiByte - v140 - - - Application - false - MultiByte - v140 - - - Application - false - MultiByte - v140 - - - Application - false - MultiByte - v140 - - - Application - false - MultiByte - v140 - - - Application - false - MultiByte - v140 - - - Application - false - MultiByte - v140 - - - Application - false - MultiByte - v140 - - - Application - false - MultiByte - v140 - - - Application - false - MultiByte - v140 - - - Application - false - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - bin\ - obj\TestApp\$(Configuration)\ - true - true - bin\ - obj\TestApp\$(Configuration)\ - false - false - bin\static_md\ - obj\TestApp\$(Configuration)\ - false - false - bin\static_md\ - obj\TestApp\$(Configuration)\ - true - true - bin\static_mt\ - obj\TestApp\$(Configuration)\ - true - true - bin\static_mt\ - obj\TestApp\$(Configuration)\ - false - false - TestApp - TestApp - TestAppd - TestAppd - TestAppd - TestAppd - TestAppd - TestAppd - TestApp - TestApp - TestApp - TestApp - - - bin64\ - obj64\TestApp\$(Configuration)\ - - - bin64\static_md\ - obj64\TestApp\$(Configuration)\ - - - bin64\static_mt\ - obj64\TestApp\$(Configuration)\ - - - bin64\ - obj64\TestApp\$(Configuration)\ - - - bin64\static_md\ - obj64\TestApp\$(Configuration)\ - - - bin64\static_mt\ - obj64\TestApp\$(Configuration)\ - - - - Disabled - %(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - false - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - - Level3 - ProgramDatabase - /FS - true - - - bin\TestAppd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - bin\TestAppd.pdb - Console - MachineX86 - - - - - Disabled - %(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - - Level3 - ProgramDatabase - /FS - true - - - bin64\TestAppd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - bin64\TestAppd.pdb - Console - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - %(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - - Level3 - - - /FS - true - - - bin\TestApp.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - - - Console - true - true - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - %(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - - Level3 - - - /FS - true - - - bin64\TestApp.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - - - Console - true - true - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - %(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - - Level3 - - - /FS - true - - - bin\static_md\TestApp.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - - - Console - true - true - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - %(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - - Level3 - - - /FS - true - - - bin64\static_md\TestApp.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - - - Console - true - true - - - - - Disabled - %(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - false - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - - Level3 - ProgramDatabase - /FS - true - - - bin\static_md\TestAppd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - bin\static_md\TestAppd.pdb - Console - MachineX86 - - - - - Disabled - %(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - - Level3 - ProgramDatabase - /FS - true - - - bin64\static_md\TestAppd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - bin64\static_md\TestAppd.pdb - Console - - - - - Disabled - %(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - false - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - - Level3 - ProgramDatabase - /FS - true - - - bin\static_mt\TestAppd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - bin\static_mt\TestAppd.pdb - Console - MachineX86 - - - - - Disabled - %(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - - Level3 - ProgramDatabase - /FS - true - - - bin64\static_mt\TestAppd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - bin64\static_mt\TestAppd.pdb - Console - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - %(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - - Level3 - - - /FS - true - - - bin\static_mt\TestApp.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - - - Console - true - true - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - %(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - - Level3 - - - /FS - true - - - bin64\static_mt\TestApp.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - - - Console - true - true - - - - - - - - - \ No newline at end of file diff --git a/Foundation/testsuite/TestApp_vs140.vcxproj.filters b/Foundation/testsuite/TestApp_vs140.vcxproj.filters deleted file mode 100644 index bc7566f79..000000000 --- a/Foundation/testsuite/TestApp_vs140.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {64a104ed-fb69-4821-b11c-494d063d19f5} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/testsuite/TestApp_vs150.vcxproj b/Foundation/testsuite/TestApp_vs150.vcxproj deleted file mode 100644 index 47ffba94f..000000000 --- a/Foundation/testsuite/TestApp_vs150.vcxproj +++ /dev/null @@ -1,622 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestApp - {6C41E55D-C0FC-4E01-AA8D-B7DA40E31D3A} - TestApp - Win32Proj - - - - Application - false - MultiByte - v141 - - - Application - false - MultiByte - v141 - - - Application - false - MultiByte - v141 - - - Application - false - MultiByte - v141 - - - Application - false - MultiByte - v141 - - - Application - false - MultiByte - v141 - - - Application - false - MultiByte - v141 - - - Application - false - MultiByte - v141 - - - Application - false - MultiByte - v141 - - - Application - false - MultiByte - v141 - - - Application - false - MultiByte - v141 - - - Application - false - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - bin\ - obj\TestApp\$(Configuration)\ - true - true - bin\ - obj\TestApp\$(Configuration)\ - false - false - bin\static_md\ - obj\TestApp\$(Configuration)\ - false - false - bin\static_md\ - obj\TestApp\$(Configuration)\ - true - true - bin\static_mt\ - obj\TestApp\$(Configuration)\ - true - true - bin\static_mt\ - obj\TestApp\$(Configuration)\ - false - false - TestApp - TestApp - TestAppd - TestAppd - TestAppd - TestAppd - TestAppd - TestAppd - TestApp - TestApp - TestApp - TestApp - - - bin64\ - obj64\TestApp\$(Configuration)\ - - - bin64\static_md\ - obj64\TestApp\$(Configuration)\ - - - bin64\static_mt\ - obj64\TestApp\$(Configuration)\ - - - bin64\ - obj64\TestApp\$(Configuration)\ - - - bin64\static_md\ - obj64\TestApp\$(Configuration)\ - - - bin64\static_mt\ - obj64\TestApp\$(Configuration)\ - - - - Disabled - %(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - false - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - - Level3 - ProgramDatabase - /FS - true - - - bin\TestAppd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - bin\TestAppd.pdb - Console - MachineX86 - - - - - Disabled - %(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - - Level3 - ProgramDatabase - /FS - true - - - bin64\TestAppd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - bin64\TestAppd.pdb - Console - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - %(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - - Level3 - - - /FS - true - - - bin\TestApp.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - - - Console - true - true - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - %(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - - Level3 - - - /FS - true - - - bin64\TestApp.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - - - Console - true - true - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - %(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - - Level3 - - - /FS - true - - - bin\static_md\TestApp.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - - - Console - true - true - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - %(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - - Level3 - - - /FS - true - - - bin64\static_md\TestApp.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - - - Console - true - true - - - - - Disabled - %(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - false - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - - Level3 - ProgramDatabase - /FS - true - - - bin\static_md\TestAppd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - bin\static_md\TestAppd.pdb - Console - MachineX86 - - - - - Disabled - %(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - - Level3 - ProgramDatabase - /FS - true - - - bin64\static_md\TestAppd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - bin64\static_md\TestAppd.pdb - Console - - - - - Disabled - %(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - false - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - - Level3 - ProgramDatabase - /FS - true - - - bin\static_mt\TestAppd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - bin\static_mt\TestAppd.pdb - Console - MachineX86 - - - - - Disabled - %(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - - Level3 - ProgramDatabase - /FS - true - - - bin64\static_mt\TestAppd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - bin64\static_mt\TestAppd.pdb - Console - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - %(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - - Level3 - - - /FS - true - - - bin\static_mt\TestApp.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - - - Console - true - true - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - %(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - - Level3 - - - /FS - true - - - bin64\static_mt\TestApp.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - - - Console - true - true - - - - - - - - - \ No newline at end of file diff --git a/Foundation/testsuite/TestApp_vs150.vcxproj.filters b/Foundation/testsuite/TestApp_vs150.vcxproj.filters deleted file mode 100644 index bc7566f79..000000000 --- a/Foundation/testsuite/TestApp_vs150.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {64a104ed-fb69-4821-b11c-494d063d19f5} - - - - - Source Files - - - \ No newline at end of file diff --git a/Foundation/testsuite/TestLibrary_vs140.vcxproj b/Foundation/testsuite/TestLibrary_vs140.vcxproj deleted file mode 100644 index ae3bcf7ae..000000000 --- a/Foundation/testsuite/TestLibrary_vs140.vcxproj +++ /dev/null @@ -1,237 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - - TestLibrary - {0955EB03-544B-4BD4-9C10-89CF38078F5F} - Win32Proj - - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - bin\ - obj\TestLibrary\$(Configuration)\ - true - true - true - true - bin\ - obj\TestLibrary\$(Configuration)\ - true - true - false - false - TestLibrary - TestLibrary - TestLibraryd - TestLibraryd - - - bin64\ - obj64\TestLibrary\$(Configuration)\ - - - bin64\ - obj64\TestLibrary\$(Configuration)\ - - - - Disabled - ..\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - false - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - - Level3 - ProgramDatabase - /FS - true - - - PocoFoundationd.lib;%(AdditionalDependencies) - bin\TestLibraryd.dll - ..\..\lib;%(AdditionalLibraryDirectories) - true - bin\TestLibraryd.pdb - Console - - - MachineX86 - - - - - Disabled - ..\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - - Level3 - ProgramDatabase - /FS - true - - - PocoFoundationd.lib;%(AdditionalDependencies) - bin64\TestLibraryd.dll - ..\..\lib64;%(AdditionalLibraryDirectories) - true - bin64\TestLibraryd.pdb - Console - - - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - - Level3 - - - /FS - true - - - PocoFoundation.lib;%(AdditionalDependencies) - bin\TestLibrary.dll - ..\..\lib;%(AdditionalLibraryDirectories) - false - - - Console - true - true - - - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - - Level3 - - - /FS - true - - - PocoFoundation.lib;%(AdditionalDependencies) - bin64\TestLibrary.dll - ..\..\lib64;%(AdditionalLibraryDirectories) - false - - - Console - true - true - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Foundation/testsuite/TestLibrary_vs140.vcxproj.filters b/Foundation/testsuite/TestLibrary_vs140.vcxproj.filters deleted file mode 100644 index 492683384..000000000 --- a/Foundation/testsuite/TestLibrary_vs140.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {c8906c29-86ed-4749-b34e-0f6454645796} - - - - - Source Files - - - Source Files - - - - - Header Files - - - \ No newline at end of file diff --git a/Foundation/testsuite/TestLibrary_vs150.vcxproj b/Foundation/testsuite/TestLibrary_vs150.vcxproj deleted file mode 100644 index a59f4f369..000000000 --- a/Foundation/testsuite/TestLibrary_vs150.vcxproj +++ /dev/null @@ -1,237 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - - TestLibrary - {0955EB03-544B-4BD4-9C10-89CF38078F5F} - Win32Proj - - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>10.0.30319.1 - bin\ - obj\TestLibrary\$(Configuration)\ - true - true - true - true - bin\ - obj\TestLibrary\$(Configuration)\ - true - true - false - false - TestLibrary - TestLibrary - TestLibraryd - TestLibraryd - - - bin64\ - obj64\TestLibrary\$(Configuration)\ - - - bin64\ - obj64\TestLibrary\$(Configuration)\ - - - - Disabled - ..\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - false - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - - Level3 - ProgramDatabase - /FS - true - - - PocoFoundationd.lib;%(AdditionalDependencies) - bin\TestLibraryd.dll - ..\..\lib;%(AdditionalLibraryDirectories) - true - bin\TestLibraryd.pdb - Console - - - MachineX86 - - - - - Disabled - ..\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - - Level3 - ProgramDatabase - /FS - true - - - PocoFoundationd.lib;%(AdditionalDependencies) - bin64\TestLibraryd.dll - ..\..\lib64;%(AdditionalLibraryDirectories) - true - bin64\TestLibraryd.pdb - Console - - - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - - Level3 - - - /FS - true - - - PocoFoundation.lib;%(AdditionalDependencies) - bin\TestLibrary.dll - ..\..\lib;%(AdditionalLibraryDirectories) - false - - - Console - true - true - - - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - - Level3 - - - /FS - true - - - PocoFoundation.lib;%(AdditionalDependencies) - bin64\TestLibrary.dll - ..\..\lib64;%(AdditionalLibraryDirectories) - false - - - Console - true - true - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Foundation/testsuite/TestLibrary_vs150.vcxproj.filters b/Foundation/testsuite/TestLibrary_vs150.vcxproj.filters deleted file mode 100644 index 492683384..000000000 --- a/Foundation/testsuite/TestLibrary_vs150.vcxproj.filters +++ /dev/null @@ -1,25 +0,0 @@ - - - - - {4FC737F1-C7A5-4376-A066-2A32D752A2FF} - cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx - - - {c8906c29-86ed-4749-b34e-0f6454645796} - - - - - Source Files - - - Source Files - - - - - Header Files - - - \ No newline at end of file diff --git a/Foundation/testsuite/TestSuite_vs140.vcxproj b/Foundation/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index fa71aeb29..000000000 --- a/Foundation/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,892 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {F1EE93DF-347F-4CB3-B191-C4E63F38E972} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25431.1 - TestSuited - TestSuited - TestSuited - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - true - obj64\TestSuite\$(Configuration)\ - bin64\ - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - false - obj64\TestSuite\$(Configuration)\ - bin64\ - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - true - obj64\TestSuite\$(Configuration)\ - bin64\static_mt\ - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - false - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - true - obj64\TestSuite\$(Configuration)\ - bin64\static_md\ - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - false - obj64\TestSuite\$(Configuration)\ - bin64\static_md\ - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - false - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - - Level3 - - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - false - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - - Level3 - - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - false - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - - Level3 - - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Foundation/testsuite/TestSuite_vs140.vcxproj.filters b/Foundation/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index 66a9a3775..000000000 --- a/Foundation/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,1020 +0,0 @@ - - - - - {c254fb74-2784-4c8e-95f6-53ee94db67cc} - - - {91e010f6-e5a3-4826-a89a-4f3e03bf5658} - - - {8c5576a1-ee73-4396-93ac-0d97bb8e70f5} - - - {ba8e860b-2150-4fd3-ba91-cc5f0c01d7f5} - - - {b697dce9-78d0-47fc-9150-edbff5d65141} - - - {27ce8062-3d96-4c40-8abc-f078ed554dda} - - - {b7ffe702-1f32-4f5f-9105-3bd16a6d74d6} - - - {444eb94a-2116-4352-9160-c9c30d37f5e7} - - - {c68e8fe7-9948-429a-8550-88b8d7a2244a} - - - {dde4bd48-4d67-44df-a04f-9cc80f77aed9} - - - {efd9b68d-41ac-4c1c-a557-33f577026511} - - - {210d5235-4319-43c7-9f2e-4a56538d2437} - - - {6e0ab17a-7353-4efb-a2dc-93ea8b076f64} - - - {89e09a0b-1d4f-4d0a-a897-7fa550c9f6de} - - - {4a530598-6a3a-4cc2-b112-1f01f7d8f559} - - - {7667eba3-7299-44b5-9d10-2ea6cee1bf14} - - - {bae73f4f-73bd-4907-a723-122191e7cf31} - - - {79565aa1-ce80-428e-8ae5-0c09ea8a6e8b} - - - {2e14b7b8-3eba-4b44-b405-7e1f17d5cba9} - - - {9f6ac291-c393-4ee4-8477-640c8fb9bf2d} - - - {97672239-747b-488b-b928-9ad813acca9e} - - - {75bcd396-a6a9-46eb-b6c7-02ff2a5b8fe9} - - - {d2d451ca-34d1-4100-91a5-5468d81c0321} - - - {b5897e3c-8098-4cf0-b14f-6afa51ed1a4e} - - - {14309dd8-a90d-4936-8b26-f79c95950141} - - - {1962e88b-1868-4aea-8426-0e8e0f37abd7} - - - {65f4d59b-84d2-4a7e-b978-19467bd9b1df} - - - {d86d214b-8be5-468e-9939-4512f71d4ec9} - - - {d284c337-7256-401a-9b41-cd66dc7a6af2} - - - {b75c4782-23e2-4055-8e66-4653799bddab} - - - {d5434a99-a794-4517-aaf3-076e3c75a038} - - - {ffbb35b4-0378-47f7-be31-305b1f3bd0cc} - - - {cdfebf04-d340-4f14-a195-e226878562fc} - - - {57c234d6-808f-452d-873f-6a1101933eff} - - - {3e068e8a-4f1a-4cde-9e73-d4dfdc3b9098} - - - {c6bd7cbf-5785-4a19-bdca-2b28c6438a28} - - - {954b1cfb-ebd8-491c-8e3f-22fd0c8fbc02} - - - {d89d8d4d-2e20-4064-ba17-6c39c2496e0f} - - - {771fcb8a-ff27-499f-b70a-2eac2c9ec5dd} - - - {91499529-42d3-43ad-878c-c61af9f0b539} - - - {8648890b-3da0-43d5-aafa-5a2559863534} - - - {c9b7c1aa-b8fb-4ed3-8f34-c30baf8dac76} - - - {136bfab7-9eb7-4667-8909-09cce2592fbf} - - - {11dc9d56-a46d-4803-ae71-b20ab5ea9cf3} - - - {0c6eadb5-c05f-41db-bfb7-96fe360b8dd5} - - - {e0ef7d11-b32f-4f28-ba46-e3ccfebacb8b} - - - {f7ccb0db-e058-45a9-a930-5a99cb8a9b4e} - - - {c2a64b2a-b166-4280-9190-79a80ec94685} - - - {c4233875-2d38-4b8e-a33e-4115db8d4c62} - - - {1f5aaa4e-83aa-47c6-9936-2145a0ae1c44} - - - {f9404832-7beb-4f52-a86e-6d426c1d7930} - - - {ca515afb-ab5a-4f78-b85d-7da68d72d856} - - - {f311db5d-27a1-4fcf-95e2-b234804a7301} - - - {043e1b1d-e5a5-49ca-8271-5d53359cca4e} - - - {67e6ba33-c28c-4af4-b5a0-4ff0a37064c7} - - - {9a79a304-9954-4fef-b4be-c6248f9189bf} - - - {a9306d5e-2d1f-4d3b-a683-b798f31e1759} - - - {2cf51843-7a90-47d3-84a9-67eff3cf0988} - - - {0690feaa-baa2-4895-b1b2-a947f6a42576} - - - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Notifications\Source Files - - - Notifications\Source Files - - - Notifications\Source Files - - - Notifications\Source Files - - - Notifications\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - SharedLibrary\Source Files - - - SharedLibrary\Source Files - - - SharedLibrary\Source Files - - - SharedLibrary\Source Files - - - SharedLibrary\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - UUID\Source Files - - - UUID\Source Files - - - UUID\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - URI\Source Files - - - URI\Source Files - - - URI\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Tasks\Source Files - - - Tasks\Source Files - - - Tasks\Source Files - - - Event\Source Files - - - Event\Source Files - - - Event\Source Files - - - Event\Source Files - - - Event\Source Files - - - Cache\Source Files - - - Cache\Source Files - - - Cache\Source Files - - - Cache\Source Files - - - Cache\Source Files - - - Cache\Source Files - - - Hashing\Source Files - - - Hashing\Source Files - - - Hashing\Source Files - - - Hashing\Source Files - - - Hashing\Source Files - - - Hashing\Source Files - - - Dynamic\Source Files - - - Crypt\Source Files - - - URI\Source Files - - - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - UUID\Header Files - - - UUID\Header Files - - - UUID\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - URI\Header Files - - - URI\Header Files - - - URI\Header Files - - - _Suite\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Tasks\Header Files - - - Tasks\Header Files - - - Tasks\Header Files - - - Event\Header Files - - - Event\Header Files - - - Event\Header Files - - - Event\Header Files - - - Event\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Dynamic\Header Files - - - Crypt\Header Files - - - URI\Header Files - - - \ No newline at end of file diff --git a/Foundation/testsuite/TestSuite_vs150.vcxproj b/Foundation/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index 03036de2e..000000000 --- a/Foundation/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,892 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {F1EE93DF-347F-4CB3-B191-C4E63F38E972} - TestSuite - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25431.1 - TestSuited - TestSuited - TestSuited - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - true - obj64\TestSuite\$(Configuration)\ - bin64\ - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - false - obj64\TestSuite\$(Configuration)\ - bin64\ - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - true - obj64\TestSuite\$(Configuration)\ - bin64\static_mt\ - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - false - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - true - obj64\TestSuite\$(Configuration)\ - bin64\static_md\ - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - false - obj64\TestSuite\$(Configuration)\ - bin64\static_md\ - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - false - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - - Level3 - - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - false - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - - Level3 - - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - false - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - - Level3 - - - Default - true - - - iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Foundation/testsuite/TestSuite_vs150.vcxproj.filters b/Foundation/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index d29bf4ce4..000000000 --- a/Foundation/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,1020 +0,0 @@ - - - - - {e5694d12-85d3-46d3-b8fd-8b300f349cf2} - - - {e3c87192-4574-476f-924e-60dfe0467151} - - - {3e3bd89f-ee04-44d6-a38a-fbe752c9f2cb} - - - {c861a021-21a9-4782-9e1a-800f87ec93b5} - - - {126ed329-6bbd-4f7b-bbff-190e0838fac1} - - - {366e2d8f-365c-4203-9831-fe4145fea550} - - - {8f848357-8dc8-4851-b5b0-be74d5ba3295} - - - {d21bd9ed-83ef-4e9f-a0d4-b97c3f716179} - - - {ab29de52-dce3-46e6-81dd-d4d90ffbe702} - - - {58b876f1-fcf5-4750-9083-5613617fab31} - - - {d3e6f291-9b10-46e2-a623-ef44db276bff} - - - {a1a17122-2ca4-4d6e-9768-f2cf23decd90} - - - {c522213c-d711-403e-8bbe-10c6c1d24525} - - - {3d66fce7-2dba-4cca-b3c5-26a07428d717} - - - {370a5a3a-ed69-4ff3-b3c0-0c008e1e5aa9} - - - {29dc1a2b-ab63-4199-87bc-fa242194175e} - - - {b7c57ba0-0152-40ea-9ccd-a53b6c194664} - - - {91e96a98-562c-406b-9b15-c883485e0376} - - - {13181016-c4e3-444b-8983-2867b443bfdf} - - - {9eceff8f-efce-45d9-9003-291429e84768} - - - {988725a6-cb01-4bf8-a337-d8d1efc884d0} - - - {339a29d3-c846-4494-8197-380b6130e4d0} - - - {2277a2e5-f634-421c-bcd3-c74f6552d518} - - - {16d2ddfb-51e8-4616-9181-9df02ff8c2e7} - - - {aeb54911-2c36-42c6-b446-aa08e3d028a0} - - - {d308b3ed-e14c-4e51-90b8-196bb845f6e7} - - - {36717590-643e-48c5-ab9e-6cb6f26c2484} - - - {1c1d478f-c4fd-427d-af25-4e8c341fb31e} - - - {974985be-b8d5-42ec-ad77-eb0e37f203f2} - - - {239e07fe-30be-42e0-8696-65c2e91de220} - - - {a580284c-e827-421d-9e11-c3e7b0af84e1} - - - {10acf3d9-f344-4cc8-b13d-e6945b315079} - - - {d1791ef7-595f-4ecd-9806-270c46b0d5b1} - - - {232697ee-2fa5-49bc-84de-805af0033084} - - - {3ae7a509-7cc6-4198-9a50-c4f1bc9c81d1} - - - {9d5d3aa6-bfe8-4686-a626-44ec61870b0d} - - - {c2e2f0dd-ea46-45c8-84cd-f6364626d760} - - - {d1ead473-4de6-4238-abf6-066f28e5d6db} - - - {1bafb897-cbf4-410c-b965-6c35e1f267f6} - - - {3a007882-7b16-48f6-830a-249d216efe4c} - - - {878d16a6-1d02-49d8-b7b4-4df87ef27932} - - - {b08df563-7820-478d-ba6d-029956eaec99} - - - {c6be78cd-e985-4b6f-8c45-557d3124e67a} - - - {5c1fd878-008b-4f36-a259-f711292bfe1b} - - - {930039ff-b515-45f6-808a-6ce93ec93e6a} - - - {578ae9a5-c7dc-491e-b694-23216d1bc32a} - - - {b94916f6-4bd9-4732-a22d-ab27d0a34172} - - - {e8b80b4d-0f95-4f8a-8621-7add43159fae} - - - {fa9dcc18-e509-4d0e-9275-f2104fb42b84} - - - {c8b5c83d-180a-4018-82ef-0fd6b48f72af} - - - {590ab818-f38d-4d70-8b3f-421e8669d010} - - - {7560aa3e-8534-416f-810c-5eda65a15fd1} - - - {37d8d146-d9ab-4b6d-a0a9-905899cc5dc1} - - - {12737c4c-bca6-4327-ac37-3ad4682f0305} - - - {c2afc245-7b49-4274-a040-5b3f709ea8c0} - - - {c59874db-c037-4a22-afcb-8dfb4c6e2246} - - - {5c0bf2e0-7296-42e8-bdd3-fecd8497b474} - - - {d6c0334c-0858-46e9-a857-939a3f34c968} - - - {ab424cf5-0477-4ad9-94b9-39d27562e9ce} - - - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Core\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Streams\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Crypt\Source Files - - - Notifications\Source Files - - - Notifications\Source Files - - - Notifications\Source Files - - - Notifications\Source Files - - - Notifications\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - Threading\Source Files - - - SharedLibrary\Source Files - - - SharedLibrary\Source Files - - - SharedLibrary\Source Files - - - SharedLibrary\Source Files - - - SharedLibrary\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - Filesystem\Source Files - - - UUID\Source Files - - - UUID\Source Files - - - UUID\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - DateTime\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - Text\Source Files - - - URI\Source Files - - - URI\Source Files - - - URI\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Processes\Source Files - - - Tasks\Source Files - - - Tasks\Source Files - - - Tasks\Source Files - - - Event\Source Files - - - Event\Source Files - - - Event\Source Files - - - Event\Source Files - - - Event\Source Files - - - Cache\Source Files - - - Cache\Source Files - - - Cache\Source Files - - - Cache\Source Files - - - Cache\Source Files - - - Cache\Source Files - - - Hashing\Source Files - - - Hashing\Source Files - - - Hashing\Source Files - - - Hashing\Source Files - - - Hashing\Source Files - - - Hashing\Source Files - - - Dynamic\Source Files - - - Crypt\Source Files - - - URI\Source Files - - - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Core\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Streams\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Crypt\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Notifications\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - Threading\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - SharedLibrary\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - Filesystem\Header Files - - - UUID\Header Files - - - UUID\Header Files - - - UUID\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - DateTime\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - Text\Header Files - - - URI\Header Files - - - URI\Header Files - - - URI\Header Files - - - _Suite\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Processes\Header Files - - - Tasks\Header Files - - - Tasks\Header Files - - - Tasks\Header Files - - - Event\Header Files - - - Event\Header Files - - - Event\Header Files - - - Event\Header Files - - - Event\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Cache\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Hashing\Header Files - - - Dynamic\Header Files - - - Crypt\Header Files - - - URI\Header Files - - - \ No newline at end of file diff --git a/JSON/JSON_vs140.sln b/JSON/JSON_vs140.sln deleted file mode 100644 index aaefd5a04..000000000 --- a/JSON/JSON_vs140.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JSON", "JSON_vs140.vcxproj", "{0E7FE914-0690-3EB4-9119-93A97CC97741}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{96CF3103-E49E-3F5E-A11D-6DBCDA043053}" - ProjectSection(ProjectDependencies) = postProject - {0E7FE914-0690-3EB4-9119-93A97CC97741} = {0E7FE914-0690-3EB4-9119-93A97CC97741} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_shared|Win32.Build.0 = release_shared|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_shared|x64.Build.0 = debug_shared|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_shared|x64.ActiveCfg = release_shared|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_shared|x64.Build.0 = release_shared|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_shared|x64.Deploy.0 = release_shared|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_md|x64.Build.0 = release_static_md|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.Build.0 = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.Build.0 = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.ActiveCfg = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.Build.0 = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.Deploy.0 = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.Build.0 = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/JSON/JSON_vs140.vcxproj b/JSON/JSON_vs140.vcxproj deleted file mode 100644 index 37ea1d8ec..000000000 --- a/JSON/JSON_vs140.vcxproj +++ /dev/null @@ -1,638 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - JSON - {0E7FE914-0690-3EB4-9119-93A97CC97741} - JSON - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoJSONd - PocoJSONmdd - PocoJSONmtd - PocoJSON - PocoJSONmd - PocoJSONmt - PocoJSON64d - PocoJSONmdd - PocoJSONmtd - PocoJSON64 - PocoJSONmd - PocoJSONmt - - - ..\bin\ - obj\JSON\$(Configuration)\ - true - - - ..\bin\ - obj\JSON\$(Configuration)\ - false - - - ..\lib\ - obj\JSON\$(Configuration)\ - - - ..\lib\ - obj\JSON\$(Configuration)\ - - - ..\lib\ - obj\JSON\$(Configuration)\ - - - ..\lib\ - obj\JSON\$(Configuration)\ - - - ..\bin64\ - obj64\JSON\$(Configuration)\ - true - - - ..\bin64\ - obj64\JSON\$(Configuration)\ - false - - - ..\lib64\ - obj64\JSON\$(Configuration)\ - - - ..\lib64\ - obj64\JSON\$(Configuration)\ - - - ..\lib64\ - obj64\JSON\$(Configuration)\ - - - ..\lib64\ - obj64\JSON\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;JSON_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoJSONd.dll - true - true - ..\bin\PocoJSONd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoJSONd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;JSON_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoJSON.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoJSON.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoJSONmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoJSONmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoJSONmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoJSONmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoJSONmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoJSONmd.pdb - Level3 - - Default - true - - - ..\lib\PocoJSONmd.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;JSON_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoJSON64d.dll - true - true - ..\bin64\PocoJSON64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoJSONd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;JSON_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoJSON64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoJSON.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoJSONmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoJSONmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoJSONmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoJSONmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoJSONmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoJSONmd.lib - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - CompileAsCpp - true - CompileAsCpp - true - CompileAsCpp - true - CompileAsCpp - true - CompileAsCpp - true - CompileAsCpp - true - CompileAsCpp - true - CompileAsCpp - true - CompileAsCpp - true - CompileAsCpp - true - CompileAsCpp - true - CompileAsCpp - true - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/JSON/JSON_vs140.vcxproj.filters b/JSON/JSON_vs140.vcxproj.filters deleted file mode 100644 index 2977c9694..000000000 --- a/JSON/JSON_vs140.vcxproj.filters +++ /dev/null @@ -1,99 +0,0 @@ - - - - - {29bc9600-12b2-46e1-a8b5-a39f7d13ca5c} - - - {9af596d8-de74-47f9-8714-62f079d0b479} - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - \ No newline at end of file diff --git a/JSON/JSON_vs150.sln b/JSON/JSON_vs150.sln deleted file mode 100644 index 9f564cf06..000000000 --- a/JSON/JSON_vs150.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JSON", "JSON_vs150.vcxproj", "{0E7FE914-0690-3EB4-9119-93A97CC97741}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{96CF3103-E49E-3F5E-A11D-6DBCDA043053}" - ProjectSection(ProjectDependencies) = postProject - {0E7FE914-0690-3EB4-9119-93A97CC97741} = {0E7FE914-0690-3EB4-9119-93A97CC97741} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_shared|Win32.Build.0 = release_shared|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_shared|x64.Build.0 = debug_shared|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_shared|x64.ActiveCfg = release_shared|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_shared|x64.Build.0 = release_shared|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_shared|x64.Deploy.0 = release_shared|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_md|x64.Build.0 = release_static_md|x64 - {0E7FE914-0690-3EB4-9119-93A97CC97741}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.Build.0 = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.Build.0 = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.ActiveCfg = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.Build.0 = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.Deploy.0 = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.Build.0 = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/JSON/JSON_vs150.vcxproj b/JSON/JSON_vs150.vcxproj deleted file mode 100644 index 2dc21d36c..000000000 --- a/JSON/JSON_vs150.vcxproj +++ /dev/null @@ -1,638 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - JSON - {0E7FE914-0690-3EB4-9119-93A97CC97741} - JSON - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PocoJSONd - PocoJSONmdd - PocoJSONmtd - PocoJSON - PocoJSONmd - PocoJSONmt - PocoJSON64d - PocoJSONmdd - PocoJSONmtd - PocoJSON64 - PocoJSONmd - PocoJSONmt - - - ..\bin\ - obj\JSON\$(Configuration)\ - true - - - ..\bin\ - obj\JSON\$(Configuration)\ - false - - - ..\lib\ - obj\JSON\$(Configuration)\ - - - ..\lib\ - obj\JSON\$(Configuration)\ - - - ..\lib\ - obj\JSON\$(Configuration)\ - - - ..\lib\ - obj\JSON\$(Configuration)\ - - - ..\bin64\ - obj64\JSON\$(Configuration)\ - true - - - ..\bin64\ - obj64\JSON\$(Configuration)\ - false - - - ..\lib64\ - obj64\JSON\$(Configuration)\ - - - ..\lib64\ - obj64\JSON\$(Configuration)\ - - - ..\lib64\ - obj64\JSON\$(Configuration)\ - - - ..\lib64\ - obj64\JSON\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;JSON_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoJSONd.dll - true - true - ..\bin\PocoJSONd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoJSONd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;JSON_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoJSON.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoJSON.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoJSONmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoJSONmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoJSONmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoJSONmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoJSONmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoJSONmd.pdb - Level3 - - Default - true - - - ..\lib\PocoJSONmd.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;JSON_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoJSON64d.dll - true - true - ..\bin64\PocoJSON64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoJSONd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;JSON_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoJSON64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoJSON.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoJSONmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoJSONmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoJSONmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoJSONmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoJSONmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoJSONmd.lib - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - CompileAsCpp - true - CompileAsCpp - true - CompileAsCpp - true - CompileAsCpp - true - CompileAsCpp - true - CompileAsCpp - true - CompileAsCpp - true - CompileAsCpp - true - CompileAsCpp - true - CompileAsCpp - true - CompileAsCpp - true - CompileAsCpp - true - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/JSON/JSON_vs150.vcxproj.filters b/JSON/JSON_vs150.vcxproj.filters deleted file mode 100644 index 71206d266..000000000 --- a/JSON/JSON_vs150.vcxproj.filters +++ /dev/null @@ -1,99 +0,0 @@ - - - - - {7e316805-da61-43cf-b018-0eac9f34fb95} - - - {ab453e18-7c36-4cc0-84fe-cb6cad4fc141} - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - \ No newline at end of file diff --git a/JSON/samples/Benchmark/Benchmark_vs140.vcxproj b/JSON/samples/Benchmark/Benchmark_vs140.vcxproj deleted file mode 100644 index 246b673cd..000000000 --- a/JSON/samples/Benchmark/Benchmark_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Benchmark - {D0381ECF-E750-32DA-8EEF-92D56B172D15} - Benchmark - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - Benchmarkd - Benchmarkd - Benchmarkd - Benchmark - Benchmark - Benchmark - Benchmarkd - Benchmarkd - Benchmarkd - Benchmark - Benchmark - Benchmark - - - bin\ - obj\Benchmark\$(Configuration)\ - true - - - bin\ - obj\Benchmark\$(Configuration)\ - false - - - bin\static_mt\ - obj\Benchmark\$(Configuration)\ - true - - - bin\static_mt\ - obj\Benchmark\$(Configuration)\ - false - - - bin\static_md\ - obj\Benchmark\$(Configuration)\ - true - - - bin\static_md\ - obj\Benchmark\$(Configuration)\ - false - - - bin64\ - obj64\Benchmark\$(Configuration)\ - true - - - bin64\ - obj64\Benchmark\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Benchmark\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Benchmark\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Benchmark\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Benchmark\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Benchmarkd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Benchmarkd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Benchmark.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Benchmarkd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Benchmarkd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Benchmark.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Benchmarkd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Benchmarkd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Benchmark.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Benchmarkd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Benchmarkd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Benchmark.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Benchmarkd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Benchmarkd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Benchmark.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Benchmarkd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Benchmarkd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Benchmark.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/JSON/samples/Benchmark/Benchmark_vs140.vcxproj.filters b/JSON/samples/Benchmark/Benchmark_vs140.vcxproj.filters deleted file mode 100644 index 7c3965e1c..000000000 --- a/JSON/samples/Benchmark/Benchmark_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {360acbc1-6bb7-49f7-a225-9e62d69bbcd3} - - - {89f59412-1646-4647-905e-ea0336d47780} - - - - - Source Files - - - \ No newline at end of file diff --git a/JSON/samples/Benchmark/Benchmark_vs150.vcxproj b/JSON/samples/Benchmark/Benchmark_vs150.vcxproj deleted file mode 100644 index d73786c6c..000000000 --- a/JSON/samples/Benchmark/Benchmark_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Benchmark - {D0381ECF-E750-32DA-8EEF-92D56B172D15} - Benchmark - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - Benchmarkd - Benchmarkd - Benchmarkd - Benchmark - Benchmark - Benchmark - Benchmarkd - Benchmarkd - Benchmarkd - Benchmark - Benchmark - Benchmark - - - bin\ - obj\Benchmark\$(Configuration)\ - true - - - bin\ - obj\Benchmark\$(Configuration)\ - false - - - bin\static_mt\ - obj\Benchmark\$(Configuration)\ - true - - - bin\static_mt\ - obj\Benchmark\$(Configuration)\ - false - - - bin\static_md\ - obj\Benchmark\$(Configuration)\ - true - - - bin\static_md\ - obj\Benchmark\$(Configuration)\ - false - - - bin64\ - obj64\Benchmark\$(Configuration)\ - true - - - bin64\ - obj64\Benchmark\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Benchmark\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Benchmark\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Benchmark\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Benchmark\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Benchmarkd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Benchmarkd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Benchmark.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Benchmarkd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Benchmarkd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Benchmark.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Benchmarkd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Benchmarkd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Benchmark.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Benchmarkd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Benchmarkd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Benchmark.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Benchmarkd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Benchmarkd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Benchmark.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Benchmarkd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Benchmarkd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Benchmark.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/JSON/samples/Benchmark/Benchmark_vs150.vcxproj.filters b/JSON/samples/Benchmark/Benchmark_vs150.vcxproj.filters deleted file mode 100644 index 3bfb2c944..000000000 --- a/JSON/samples/Benchmark/Benchmark_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {f9cec6c3-4a55-4796-9306-80eea0b4dba6} - - - {12afcc65-6e86-46b2-878e-ccb49418c08a} - - - - - Source Files - - - \ No newline at end of file diff --git a/JSON/samples/samples_vs140.sln b/JSON/samples/samples_vs140.sln deleted file mode 100644 index 8a889a91d..000000000 --- a/JSON/samples/samples_vs140.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Benchmark", "Benchmark\Benchmark_vs140.vcxproj", "{D0381ECF-E750-32DA-8EEF-92D56B172D15}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_shared|Win32.Build.0 = release_shared|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_shared|x64.Build.0 = debug_shared|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_shared|x64.ActiveCfg = release_shared|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_shared|x64.Build.0 = release_shared|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_shared|x64.Deploy.0 = release_shared|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_md|x64.Build.0 = release_static_md|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/JSON/samples/samples_vs150.sln b/JSON/samples/samples_vs150.sln deleted file mode 100644 index 3edd3c106..000000000 --- a/JSON/samples/samples_vs150.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Benchmark", "Benchmark\Benchmark_vs150.vcxproj", "{D0381ECF-E750-32DA-8EEF-92D56B172D15}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_shared|Win32.Build.0 = release_shared|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_shared|x64.Build.0 = debug_shared|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_shared|x64.ActiveCfg = release_shared|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_shared|x64.Build.0 = release_shared|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_shared|x64.Deploy.0 = release_shared|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_md|x64.Build.0 = release_static_md|x64 - {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/JSON/testsuite/TestSuite_vs140.vcxproj b/JSON/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index 3457c8401..000000000 --- a/JSON/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,617 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {96CF3103-E49E-3F5E-A11D-6DBCDA043053} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - true - - - true - - - - - - - - - diff --git a/JSON/testsuite/TestSuite_vs140.vcxproj.filters b/JSON/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index 71d79b275..000000000 --- a/JSON/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,30 +0,0 @@ - - - - - {f2f051e1-e5ad-4ced-bdbf-4f662c3ed61a} - - - {059f0b36-a5be-4580-a1b7-4843047d54cb} - - - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/JSON/testsuite/TestSuite_vs150.vcxproj b/JSON/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index 0f264fa1c..000000000 --- a/JSON/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,617 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {96CF3103-E49E-3F5E-A11D-6DBCDA043053} - TestSuite - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - true - - - true - - - - - - - - - diff --git a/JSON/testsuite/TestSuite_vs150.vcxproj.filters b/JSON/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index 9ac66473b..000000000 --- a/JSON/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,30 +0,0 @@ - - - - - {c771a4a5-da3c-4817-a5d1-5ebee42faac6} - - - {9e9ecb68-b4de-469b-8d3f-79da23321ebc} - - - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/JWT/JWT_vs140.sln b/JWT/JWT_vs140.sln deleted file mode 100644 index 187dcaf07..000000000 --- a/JWT/JWT_vs140.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JWT", "JWT_vs140.vcxproj", "{EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{96CF3103-E49E-3F5E-A11D-6DBCDA043053}" - ProjectSection(ProjectDependencies) = postProject - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7} = {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_shared|Win32.Build.0 = release_shared|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_shared|x64.Build.0 = debug_shared|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_shared|x64.ActiveCfg = release_shared|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_shared|x64.Build.0 = release_shared|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_shared|x64.Deploy.0 = release_shared|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_md|x64.Build.0 = release_static_md|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.Build.0 = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.Build.0 = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.ActiveCfg = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.Build.0 = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.Deploy.0 = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.Build.0 = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/JWT/JWT_vs140.vcxproj b/JWT/JWT_vs140.vcxproj deleted file mode 100644 index 39df6db25..000000000 --- a/JWT/JWT_vs140.vcxproj +++ /dev/null @@ -1,578 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - JWT - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7} - JWT - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoJWTd - PocoJWTmdd - PocoJWTmtd - PocoJWT - PocoJWTmd - PocoJWTmt - PocoJWT64d - PocoJWTmdd - PocoJWTmtd - PocoJWT64 - PocoJWTmd - PocoJWTmt - - - ..\bin\ - obj\JWT\$(Configuration)\ - true - - - ..\bin\ - obj\JWT\$(Configuration)\ - false - - - ..\lib\ - obj\JWT\$(Configuration)\ - - - ..\lib\ - obj\JWT\$(Configuration)\ - - - ..\lib\ - obj\JWT\$(Configuration)\ - - - ..\lib\ - obj\JWT\$(Configuration)\ - - - ..\bin64\ - obj64\JWT\$(Configuration)\ - true - - - ..\bin64\ - obj64\JWT\$(Configuration)\ - false - - - ..\lib64\ - obj64\JWT\$(Configuration)\ - - - ..\lib64\ - obj64\JWT\$(Configuration)\ - - - ..\lib64\ - obj64\JWT\$(Configuration)\ - - - ..\lib64\ - obj64\JWT\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;JWT_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoJWTd.dll - true - true - ..\bin\PocoJWTd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoJWTd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;JWT_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoJWT.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoJWT.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoJWTmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoJWTmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoJWTmt.lib - - - - - Disabled - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoJWTmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoJWTmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoJWTmd.pdb - Level3 - - Default - true - - - ..\lib\PocoJWTmd.lib - - - - - Disabled - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;JWT_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoJWT64d.dll - true - true - ..\bin64\PocoJWT64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoJWTd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;JWT_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoJWT64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoJWT.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoJWTmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoJWTmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoJWTmt.lib - - - - - Disabled - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoJWTmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoJWTmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoJWTmd.lib - - - - - true - - - true - - - true - - - true - - - - - - - - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/JWT/JWT_vs140.vcxproj.filters b/JWT/JWT_vs140.vcxproj.filters deleted file mode 100644 index ac6f750eb..000000000 --- a/JWT/JWT_vs140.vcxproj.filters +++ /dev/null @@ -1,45 +0,0 @@ - - - - - {ef39f29c-7a36-4b28-a4b4-5ad24264190d} - - - {e9c2fbf8-8703-4258-950e-5a95c67a63c7} - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - \ No newline at end of file diff --git a/JWT/JWT_vs150.sln b/JWT/JWT_vs150.sln deleted file mode 100644 index 07fcb98b4..000000000 --- a/JWT/JWT_vs150.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "JWT", "JWT_vs150.vcxproj", "{EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{96CF3103-E49E-3F5E-A11D-6DBCDA043053}" - ProjectSection(ProjectDependencies) = postProject - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7} = {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_shared|Win32.Build.0 = release_shared|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_shared|x64.Build.0 = debug_shared|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_shared|x64.ActiveCfg = release_shared|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_shared|x64.Build.0 = release_shared|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_shared|x64.Deploy.0 = release_shared|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_md|x64.Build.0 = release_static_md|x64 - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.Build.0 = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.Build.0 = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.ActiveCfg = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.Build.0 = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.Deploy.0 = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.Build.0 = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/JWT/JWT_vs150.vcxproj b/JWT/JWT_vs150.vcxproj deleted file mode 100644 index 4a3073999..000000000 --- a/JWT/JWT_vs150.vcxproj +++ /dev/null @@ -1,578 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - JWT - {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7} - JWT - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PocoJWTd - PocoJWTmdd - PocoJWTmtd - PocoJWT - PocoJWTmd - PocoJWTmt - PocoJWT64d - PocoJWTmdd - PocoJWTmtd - PocoJWT64 - PocoJWTmd - PocoJWTmt - - - ..\bin\ - obj\JWT\$(Configuration)\ - true - - - ..\bin\ - obj\JWT\$(Configuration)\ - false - - - ..\lib\ - obj\JWT\$(Configuration)\ - - - ..\lib\ - obj\JWT\$(Configuration)\ - - - ..\lib\ - obj\JWT\$(Configuration)\ - - - ..\lib\ - obj\JWT\$(Configuration)\ - - - ..\bin64\ - obj64\JWT\$(Configuration)\ - true - - - ..\bin64\ - obj64\JWT\$(Configuration)\ - false - - - ..\lib64\ - obj64\JWT\$(Configuration)\ - - - ..\lib64\ - obj64\JWT\$(Configuration)\ - - - ..\lib64\ - obj64\JWT\$(Configuration)\ - - - ..\lib64\ - obj64\JWT\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;JWT_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoJWTd.dll - true - true - ..\bin\PocoJWTd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoJWTd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;JWT_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoJWT.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoJWT.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoJWTmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoJWTmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoJWTmt.lib - - - - - Disabled - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoJWTmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoJWTmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoJWTmd.pdb - Level3 - - Default - true - - - ..\lib\PocoJWTmd.lib - - - - - Disabled - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;JWT_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoJWT64d.dll - true - true - ..\bin64\PocoJWT64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoJWTd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;JWT_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoJWT64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoJWT.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoJWTmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoJWTmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoJWTmt.lib - - - - - Disabled - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoJWTmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoJWTmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\JSON\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoJWTmd.lib - - - - - true - - - true - - - true - - - true - - - - - - - - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/JWT/JWT_vs150.vcxproj.filters b/JWT/JWT_vs150.vcxproj.filters deleted file mode 100644 index d19f83296..000000000 --- a/JWT/JWT_vs150.vcxproj.filters +++ /dev/null @@ -1,45 +0,0 @@ - - - - - {f1f0033d-78f8-4c9b-b915-b4b6f9a624ad} - - - {092ec38e-4501-4add-906c-318ddfc28931} - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - \ No newline at end of file diff --git a/JWT/testsuite/TestSuite_vs140.vcxproj b/JWT/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index bef392a1c..000000000 --- a/JWT/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,625 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {96CF3103-E49E-3F5E-A11D-6DBCDA043053} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - diff --git a/JWT/testsuite/TestSuite_vs140.vcxproj.filters b/JWT/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index 8d892107f..000000000 --- a/JWT/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,42 +0,0 @@ - - - - - {eb1b7e21-b218-4e18-8e2d-9236dad39bd9} - - - {7ea57deb-6fbe-446c-bd1a-aedb2ee91137} - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/JWT/testsuite/TestSuite_vs150.vcxproj b/JWT/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index c4d09c36e..000000000 --- a/JWT/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,625 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {96CF3103-E49E-3F5E-A11D-6DBCDA043053} - TestSuite - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\JSON\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - diff --git a/JWT/testsuite/TestSuite_vs150.vcxproj.filters b/JWT/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index 0caa915c3..000000000 --- a/JWT/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,42 +0,0 @@ - - - - - {4cbdd11a-9d05-40dd-aa86-1bebb0f5f188} - - - {56643939-5661-4e77-a540-a1acc496260f} - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/MongoDB/MongoDB_vs140.sln b/MongoDB/MongoDB_vs140.sln deleted file mode 100644 index 1a1786a14..000000000 --- a/MongoDB/MongoDB_vs140.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MongoDB", "MongoDB_vs140.vcxproj", "{4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{96CF3103-E49E-3F5E-A11D-6DBCDA043053}" - ProjectSection(ProjectDependencies) = postProject - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199} = {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_shared|Win32.Build.0 = release_shared|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_shared|x64.Build.0 = debug_shared|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_shared|x64.ActiveCfg = release_shared|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_shared|x64.Build.0 = release_shared|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_shared|x64.Deploy.0 = release_shared|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_md|x64.Build.0 = release_static_md|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.Build.0 = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.Build.0 = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.ActiveCfg = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.Build.0 = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.Deploy.0 = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.Build.0 = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/MongoDB/MongoDB_vs140.vcxproj b/MongoDB/MongoDB_vs140.vcxproj deleted file mode 100644 index 2452b8efa..000000000 --- a/MongoDB/MongoDB_vs140.vcxproj +++ /dev/null @@ -1,657 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - MongoDB - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199} - MongoDB - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoMongoDBd - PocoMongoDBmdd - PocoMongoDBmtd - PocoMongoDB - PocoMongoDBmd - PocoMongoDBmt - PocoMongoDB64d - PocoMongoDBmdd - PocoMongoDBmtd - PocoMongoDB64 - PocoMongoDBmd - PocoMongoDBmt - - - ..\bin\ - obj\MongoDB\$(Configuration)\ - true - - - ..\bin\ - obj\MongoDB\$(Configuration)\ - false - - - ..\lib\ - obj\MongoDB\$(Configuration)\ - - - ..\lib\ - obj\MongoDB\$(Configuration)\ - - - ..\lib\ - obj\MongoDB\$(Configuration)\ - - - ..\lib\ - obj\MongoDB\$(Configuration)\ - - - ..\bin64\ - obj64\MongoDB\$(Configuration)\ - true - - - ..\bin64\ - obj64\MongoDB\$(Configuration)\ - false - - - ..\lib64\ - obj64\MongoDB\$(Configuration)\ - - - ..\lib64\ - obj64\MongoDB\$(Configuration)\ - - - ..\lib64\ - obj64\MongoDB\$(Configuration)\ - - - ..\lib64\ - obj64\MongoDB\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;MongoDB_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoMongoDBd.dll - true - true - ..\bin\PocoMongoDBd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoMongoDBd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;MongoDB_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoMongoDB.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoMongoDB.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoMongoDBmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoMongoDBmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoMongoDBmt.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoMongoDBmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoMongoDBmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoMongoDBmd.pdb - Level3 - - Default - true - - - ..\lib\PocoMongoDBmd.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;MongoDB_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoMongoDB64d.dll - true - true - ..\bin64\PocoMongoDB64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoMongoDBd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;MongoDB_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoMongoDB64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoMongoDB.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoMongoDBmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoMongoDBmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoMongoDBmt.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoMongoDBmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoMongoDBmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoMongoDBmd.lib - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/MongoDB/MongoDB_vs140.vcxproj.filters b/MongoDB/MongoDB_vs140.vcxproj.filters deleted file mode 100644 index 61307191e..000000000 --- a/MongoDB/MongoDB_vs140.vcxproj.filters +++ /dev/null @@ -1,156 +0,0 @@ - - - - - {cf18db6f-d3b9-40c9-aacc-b8a4009f4404} - - - {78392d8d-9cab-45c1-ab93-7f7a6e630d64} - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - \ No newline at end of file diff --git a/MongoDB/MongoDB_vs150.sln b/MongoDB/MongoDB_vs150.sln deleted file mode 100644 index c81b19749..000000000 --- a/MongoDB/MongoDB_vs150.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MongoDB", "MongoDB_vs150.vcxproj", "{4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{96CF3103-E49E-3F5E-A11D-6DBCDA043053}" - ProjectSection(ProjectDependencies) = postProject - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199} = {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_shared|Win32.Build.0 = release_shared|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_shared|x64.Build.0 = debug_shared|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_shared|x64.ActiveCfg = release_shared|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_shared|x64.Build.0 = release_shared|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_shared|x64.Deploy.0 = release_shared|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_md|x64.Build.0 = release_static_md|x64 - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.Build.0 = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.Build.0 = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.ActiveCfg = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.Build.0 = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.Deploy.0 = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.Build.0 = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/MongoDB/MongoDB_vs150.vcxproj b/MongoDB/MongoDB_vs150.vcxproj deleted file mode 100644 index d5bbfb46f..000000000 --- a/MongoDB/MongoDB_vs150.vcxproj +++ /dev/null @@ -1,657 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - MongoDB - {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199} - MongoDB - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PocoMongoDBd - PocoMongoDBmdd - PocoMongoDBmtd - PocoMongoDB - PocoMongoDBmd - PocoMongoDBmt - PocoMongoDB64d - PocoMongoDBmdd - PocoMongoDBmtd - PocoMongoDB64 - PocoMongoDBmd - PocoMongoDBmt - - - ..\bin\ - obj\MongoDB\$(Configuration)\ - true - - - ..\bin\ - obj\MongoDB\$(Configuration)\ - false - - - ..\lib\ - obj\MongoDB\$(Configuration)\ - - - ..\lib\ - obj\MongoDB\$(Configuration)\ - - - ..\lib\ - obj\MongoDB\$(Configuration)\ - - - ..\lib\ - obj\MongoDB\$(Configuration)\ - - - ..\bin64\ - obj64\MongoDB\$(Configuration)\ - true - - - ..\bin64\ - obj64\MongoDB\$(Configuration)\ - false - - - ..\lib64\ - obj64\MongoDB\$(Configuration)\ - - - ..\lib64\ - obj64\MongoDB\$(Configuration)\ - - - ..\lib64\ - obj64\MongoDB\$(Configuration)\ - - - ..\lib64\ - obj64\MongoDB\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;MongoDB_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoMongoDBd.dll - true - true - ..\bin\PocoMongoDBd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoMongoDBd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;MongoDB_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoMongoDB.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoMongoDB.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoMongoDBmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoMongoDBmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoMongoDBmt.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoMongoDBmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoMongoDBmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoMongoDBmd.pdb - Level3 - - Default - true - - - ..\lib\PocoMongoDBmd.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;MongoDB_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoMongoDB64d.dll - true - true - ..\bin64\PocoMongoDB64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoMongoDBd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;MongoDB_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoMongoDB64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoMongoDB.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoMongoDBmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoMongoDBmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoMongoDBmt.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoMongoDBmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoMongoDBmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoMongoDBmd.lib - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/MongoDB/MongoDB_vs150.vcxproj.filters b/MongoDB/MongoDB_vs150.vcxproj.filters deleted file mode 100644 index b13f7d271..000000000 --- a/MongoDB/MongoDB_vs150.vcxproj.filters +++ /dev/null @@ -1,156 +0,0 @@ - - - - - {ab3034e8-4249-4268-817e-46fa5048e6f7} - - - {a996b4fe-5148-4908-bcd9-6de1bd71b79a} - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - \ No newline at end of file diff --git a/MongoDB/samples/SQLToMongo/SQLToMongo_vs140.vcxproj b/MongoDB/samples/SQLToMongo/SQLToMongo_vs140.vcxproj deleted file mode 100644 index 2a322d345..000000000 --- a/MongoDB/samples/SQLToMongo/SQLToMongo_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - SQLToMongo - {638D0833-8E84-3A67-BD00-4611F99E65AF} - SQLToMongo - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - SQLToMongod - SQLToMongod - SQLToMongod - SQLToMongo - SQLToMongo - SQLToMongo - SQLToMongod - SQLToMongod - SQLToMongod - SQLToMongo - SQLToMongo - SQLToMongo - - - bin\ - obj\SQLToMongo\$(Configuration)\ - true - - - bin\ - obj\SQLToMongo\$(Configuration)\ - false - - - bin\static_mt\ - obj\SQLToMongo\$(Configuration)\ - true - - - bin\static_mt\ - obj\SQLToMongo\$(Configuration)\ - false - - - bin\static_md\ - obj\SQLToMongo\$(Configuration)\ - true - - - bin\static_md\ - obj\SQLToMongo\$(Configuration)\ - false - - - bin64\ - obj64\SQLToMongo\$(Configuration)\ - true - - - bin64\ - obj64\SQLToMongo\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\SQLToMongo\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\SQLToMongo\$(Configuration)\ - false - - - bin64\static_md\ - obj64\SQLToMongo\$(Configuration)\ - true - - - bin64\static_md\ - obj64\SQLToMongo\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SQLToMongod.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\SQLToMongod.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SQLToMongo.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SQLToMongod.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\SQLToMongod.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SQLToMongo.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SQLToMongod.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\SQLToMongod.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SQLToMongo.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SQLToMongod.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\SQLToMongod.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SQLToMongo.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SQLToMongod.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\SQLToMongod.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SQLToMongo.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SQLToMongod.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\SQLToMongod.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SQLToMongo.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/MongoDB/samples/SQLToMongo/SQLToMongo_vs140.vcxproj.filters b/MongoDB/samples/SQLToMongo/SQLToMongo_vs140.vcxproj.filters deleted file mode 100644 index 745991f0e..000000000 --- a/MongoDB/samples/SQLToMongo/SQLToMongo_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {a7d87450-6625-4011-b9db-e6e4c69bb1bf} - - - {d66cb4b7-5cae-4668-bbc3-9443aca017ca} - - - - - Source Files - - - \ No newline at end of file diff --git a/MongoDB/samples/SQLToMongo/SQLToMongo_vs150.vcxproj b/MongoDB/samples/SQLToMongo/SQLToMongo_vs150.vcxproj deleted file mode 100644 index 182b9d531..000000000 --- a/MongoDB/samples/SQLToMongo/SQLToMongo_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - SQLToMongo - {638D0833-8E84-3A67-BD00-4611F99E65AF} - SQLToMongo - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - SQLToMongod - SQLToMongod - SQLToMongod - SQLToMongo - SQLToMongo - SQLToMongo - SQLToMongod - SQLToMongod - SQLToMongod - SQLToMongo - SQLToMongo - SQLToMongo - - - bin\ - obj\SQLToMongo\$(Configuration)\ - true - - - bin\ - obj\SQLToMongo\$(Configuration)\ - false - - - bin\static_mt\ - obj\SQLToMongo\$(Configuration)\ - true - - - bin\static_mt\ - obj\SQLToMongo\$(Configuration)\ - false - - - bin\static_md\ - obj\SQLToMongo\$(Configuration)\ - true - - - bin\static_md\ - obj\SQLToMongo\$(Configuration)\ - false - - - bin64\ - obj64\SQLToMongo\$(Configuration)\ - true - - - bin64\ - obj64\SQLToMongo\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\SQLToMongo\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\SQLToMongo\$(Configuration)\ - false - - - bin64\static_md\ - obj64\SQLToMongo\$(Configuration)\ - true - - - bin64\static_md\ - obj64\SQLToMongo\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SQLToMongod.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\SQLToMongod.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SQLToMongo.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SQLToMongod.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\SQLToMongod.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SQLToMongo.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SQLToMongod.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\SQLToMongod.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SQLToMongo.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SQLToMongod.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\SQLToMongod.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SQLToMongo.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SQLToMongod.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\SQLToMongod.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SQLToMongo.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SQLToMongod.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\SQLToMongod.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SQLToMongo.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/MongoDB/samples/SQLToMongo/SQLToMongo_vs150.vcxproj.filters b/MongoDB/samples/SQLToMongo/SQLToMongo_vs150.vcxproj.filters deleted file mode 100644 index 22189a201..000000000 --- a/MongoDB/samples/SQLToMongo/SQLToMongo_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {425a5a10-36be-4b58-95c2-cf82248cb960} - - - {709b84b5-946f-4eed-b5d4-a608b9fc91c4} - - - - - Source Files - - - \ No newline at end of file diff --git a/MongoDB/samples/samples_vs140.sln b/MongoDB/samples/samples_vs140.sln deleted file mode 100644 index 31fb145a1..000000000 --- a/MongoDB/samples/samples_vs140.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SQLToMongo", "SQLToMongo\SQLToMongo_vs140.vcxproj", "{638D0833-8E84-3A67-BD00-4611F99E65AF}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_shared|Win32.Build.0 = release_shared|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_shared|x64.Build.0 = debug_shared|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_shared|x64.ActiveCfg = release_shared|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_shared|x64.Build.0 = release_shared|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_shared|x64.Deploy.0 = release_shared|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_md|x64.Build.0 = release_static_md|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/MongoDB/samples/samples_vs150.sln b/MongoDB/samples/samples_vs150.sln deleted file mode 100644 index ff8918dd6..000000000 --- a/MongoDB/samples/samples_vs150.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SQLToMongo", "SQLToMongo\SQLToMongo_vs150.vcxproj", "{638D0833-8E84-3A67-BD00-4611F99E65AF}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_shared|Win32.Build.0 = release_shared|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_shared|x64.Build.0 = debug_shared|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_shared|x64.ActiveCfg = release_shared|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_shared|x64.Build.0 = release_shared|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_shared|x64.Deploy.0 = release_shared|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_md|x64.Build.0 = release_static_md|x64 - {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/MongoDB/testsuite/TestSuite_vs140.vcxproj b/MongoDB/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index 7be728c6d..000000000 --- a/MongoDB/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,620 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {96CF3103-E49E-3F5E-A11D-6DBCDA043053} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - true - - - true - - - true - - - - - - - - - diff --git a/MongoDB/testsuite/TestSuite_vs140.vcxproj.filters b/MongoDB/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index eec6057a2..000000000 --- a/MongoDB/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,30 +0,0 @@ - - - - - {be09a243-19b9-4588-8661-2296abae0e71} - - - {38d6f312-f0e9-4b07-82c8-764e9d1df2f9} - - - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/MongoDB/testsuite/TestSuite_vs150.vcxproj b/MongoDB/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index 976f23cac..000000000 --- a/MongoDB/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,620 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {96CF3103-E49E-3F5E-A11D-6DBCDA043053} - TestSuite - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - true - - - true - - - true - - - - - - - - - diff --git a/MongoDB/testsuite/TestSuite_vs150.vcxproj.filters b/MongoDB/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index 2b7d78418..000000000 --- a/MongoDB/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,30 +0,0 @@ - - - - - {314397e8-765c-4361-a02d-bfb8bc8f93e5} - - - {02c8c22c-547f-4a6c-bcd8-a07f948eeab7} - - - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/Net/Net_vs140.sln b/Net/Net_vs140.sln deleted file mode 100644 index 353b5d691..000000000 --- a/Net/Net_vs140.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Net", "Net_vs140.vcxproj", "{B057A1FE-09F7-465E-B8B5-E1B659051D76}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{D5EFBF27-B934-4B8D-8AE5-6EC00374819C}" - ProjectSection(ProjectDependencies) = postProject - {B057A1FE-09F7-465E-B8B5-E1B659051D76} = {B057A1FE-09F7-465E-B8B5-E1B659051D76} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_shared|Win32.Build.0 = release_shared|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_shared|x64.Build.0 = debug_shared|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_shared|x64.ActiveCfg = release_shared|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_shared|x64.Build.0 = release_shared|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_shared|x64.Deploy.0 = release_shared|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_md|x64.Build.0 = release_static_md|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_shared|Win32.Build.0 = release_shared|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_shared|x64.Build.0 = debug_shared|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_shared|x64.ActiveCfg = release_shared|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_shared|x64.Build.0 = release_shared|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_shared|x64.Deploy.0 = release_shared|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_md|x64.Build.0 = release_static_md|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Net/Net_vs140.vcxproj b/Net/Net_vs140.vcxproj deleted file mode 100644 index a4f785ca7..000000000 --- a/Net/Net_vs140.vcxproj +++ /dev/null @@ -1,1001 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Net - {B057A1FE-09F7-465E-B8B5-E1B659051D76} - Net - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>16.0.32002.118 - PocoNetd - PocoNetmdd - PocoNetmtd - PocoNet - PocoNetmd - PocoNetmt - PocoNet64d - PocoNetmdd - PocoNetmtd - PocoNet64 - PocoNetmd - PocoNetmt - - - ..\bin\ - obj\Net\$(Configuration)\ - true - - - ..\bin\ - obj\Net\$(Configuration)\ - false - - - ..\lib\ - obj\Net\$(Configuration)\ - - - ..\lib\ - obj\Net\$(Configuration)\ - - - ..\lib\ - obj\Net\$(Configuration)\ - - - ..\lib\ - obj\Net\$(Configuration)\ - - - ..\bin64\ - obj64\Net\$(Configuration)\ - true - - - ..\bin64\ - obj64\Net\$(Configuration)\ - false - - - ..\lib64\ - obj64\Net\$(Configuration)\ - - - ..\lib64\ - obj64\Net\$(Configuration)\ - - - ..\lib64\ - obj64\Net\$(Configuration)\ - - - ..\lib64\ - obj64\Net\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Net_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoNetd.dll - true - true - ..\bin\PocoNetd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoNetd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Net_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoNet.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoNet.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoNetmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoNetmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoNetmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoNetmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoNetmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoNetmd.pdb - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\lib\PocoNetmd.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Net_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoNet64d.dll - true - true - ..\bin64\PocoNet64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoNetd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Net_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoNet64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoNet.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoNetmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoNetmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoNetmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoNetmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoNetmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoNetmd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Net/Net_vs140.vcxproj.filters b/Net/Net_vs140.vcxproj.filters deleted file mode 100644 index 06c8acbf6..000000000 --- a/Net/Net_vs140.vcxproj.filters +++ /dev/null @@ -1,843 +0,0 @@ - - - - - {a4599d67-7537-4525-a2c2-adaa617fd1ae} - - - {f4edecbc-e32e-4f71-a27b-0b8031a2df58} - - - {010547e8-c997-4e0e-88c4-48be71f64aef} - - - {d63184a1-8c8c-4a14-98d9-698e0c92729f} - - - {b680f823-85fc-4343-b07c-0fa6c0c8af91} - - - {a39c7384-d3e5-4a0e-a571-a965bb4c8347} - - - {53af12e3-e99f-446f-9298-512deee5774a} - - - {713e2303-58eb-4296-9cdb-f8199e63359b} - - - {1e2d1cbc-8d4b-43f9-aa3b-45a03b688bf1} - - - {d444e9cc-7a5d-46a5-80eb-ad75e7ea2cb1} - - - {32e23ed9-31bf-4da2-bd60-8c8cc56b953d} - - - {75ba71a5-4a26-4323-a4a7-f3df2cd20c9c} - - - {c4f1e93f-0f76-4583-902c-8554743dde10} - - - {d10dac48-0416-4d6b-871e-f600700d9f70} - - - {248c7dc7-d604-4a3d-bf7f-3f086e6992a3} - - - {70b5c725-f242-45d2-879a-8986eb12a861} - - - {41080954-b6d9-4747-b66c-085ef0d0efcf} - - - {4036398d-6b93-4d3e-bbac-187de6d937c4} - - - {a5161d3a-ef62-44e4-a207-4db4d0267957} - - - {1948bb8f-aebb-4528-b9ed-4a42b4933e59} - - - {d9fa8b9d-6867-46aa-bbc8-9bce163bf20b} - - - {6a6efa2c-7f09-421d-bb3f-76fb57f768d5} - - - {8909f125-b3ae-4884-9727-dd97264cb593} - - - {e89c828a-ad9b-4595-85b7-c817996f5a8e} - - - {a0040b26-df66-4f7f-ad1e-52725066f46d} - - - {aab649a5-6940-4bce-bb17-3e45b2009443} - - - {b3b4e648-e277-47cb-b287-e4eb4f6fb47d} - - - {f88e8f9d-ead5-4502-b909-8cfd9a181b40} - - - {08f74d9a-7197-466f-a275-eac64092ecad} - - - {2596d9c2-231a-4f7b-953f-c44038b7a8d8} - - - {c1ffa27e-899e-428e-9441-c0ea0c2ab3d0} - - - {a2f89df2-d020-4f58-ba24-23722673101d} - - - {ba973217-4847-40ed-b192-fe1b329ebf09} - - - {826379f3-cf95-45cc-a992-4d28cb07adae} - - - {6416b0a9-4221-4aaa-bc62-b91a35f753ba} - - - {1eed50fd-258e-44d8-a4f8-1f664678d2db} - - - {4eefdc66-dd24-4b56-a54d-5ee07474a820} - - - {0cd71e42-1840-414c-ae90-9eaac9f6c710} - - - {3abf3caf-fd67-4c1a-9b35-3c4d093db45b} - - - {0d525550-f0e2-463e-a965-9f572acb7a64} - - - {fa129ad5-6715-4ad6-9071-a041bd812fca} - - - {558e01c9-5da7-41c8-9c42-a025d5f4fa64} - - - {3eb8c2ad-9edd-4984-8057-453515b93b46} - - - {7d050e5c-3af4-437d-a0a1-70092bfd09af} - - - {ecb32fce-afd7-46df-950a-705ba7a6e0cb} - - - {4e126f6a-f94f-4440-9661-4ca22da868be} - - - {1d23be10-2ca5-48c6-ae1e-13e3e9cd209e} - - - {3e3cd188-176a-4cd5-97cb-3627fa8e5d6a} - - - {1c85e314-1894-456e-af6a-40f1fa318d16} - - - {578b8dd3-f2da-447a-beb9-d4176b51c16f} - - - {f3582cf2-97d9-443f-b949-66df436cc305} - - - {0d5f00ba-274a-430b-a5d0-850fe1b0f0eb} - - - {f2515da8-7903-413c-99b1-25b42e694c5e} - - - {b58d6277-eafe-4ff6-80ea-874f76390617} - - - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - TCPServer\Header Files - - - TCPServer\Header Files - - - TCPServer\Header Files - - - TCPServer\Header Files - - - TCPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPClient\Header Files - - - HTTPClient\Header Files - - - HTTPClient\Header Files - - - HTTPClient\Header Files - - - HTTPClient\Header Files - - - HTML\Header Files - - - FTPClient\Header Files - - - FTPClient\Header Files - - - Reactor\Header Files - - - Reactor\Header Files - - - Reactor\Header Files - - - Reactor\Header Files - - - Reactor\Header Files - - - Reactor\Header Files - - - Reactor\Header Files - - - Reactor\Header Files - - - Mail\Header Files - - - Mail\Header Files - - - Mail\Header Files - - - Mail\Header Files - - - Mail\Header Files - - - ICMP\Header Files - - - ICMP\Header Files - - - ICMP\Header Files - - - ICMP\Header Files - - - ICMP\Header Files - - - ICMP\Header Files - - - ICMP\Header Files - - - NTP\Header Files - - - NTP\Header Files - - - NTP\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - WebSocket\Header Files - - - WebSocket\Header Files - - - OAuth\Header Files - - - OAuth\Header Files - - - UDP\Header Files - - - UDP\Header Files - - - UDP\Header Files - - - UDP\Header Files - - - UDP\Header Files - - - UDP\Header Files - - - UDP\Header Files - - - NTLM\Header Files - - - NTLM\Header Files - - - - - NetCore\Source Files - - - NetCore\Source Files - - - NetCore\Source Files - - - NetCore\Source Files - - - NetCore\Source Files - - - NetCore\Source Files - - - NetCore\Source Files - - - NetCore\Source Files - - - NetCore\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - TCPServer\Source Files - - - TCPServer\Source Files - - - TCPServer\Source Files - - - TCPServer\Source Files - - - TCPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPClient\Source Files - - - HTTPClient\Source Files - - - HTTPClient\Source Files - - - HTTPClient\Source Files - - - HTTPClient\Source Files - - - HTML\Source Files - - - FTPClient\Source Files - - - FTPClient\Source Files - - - Reactor\Source Files - - - Reactor\Source Files - - - Reactor\Source Files - - - Reactor\Source Files - - - Mail\Source Files - - - Mail\Source Files - - - Mail\Source Files - - - Mail\Source Files - - - Mail\Source Files - - - ICMP\Source Files - - - ICMP\Source Files - - - ICMP\Source Files - - - ICMP\Source Files - - - ICMP\Source Files - - - ICMP\Source Files - - - ICMP\Source Files - - - NTP\Source Files - - - NTP\Source Files - - - NTP\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - WebSocket\Source Files - - - WebSocket\Source Files - - - OAuth\Source Files - - - OAuth\Source Files - - - UDP\Source Files - - - UDP\Source Files - - - NTLM\Source Files - - - NTLM\Source Files - - - - - - \ No newline at end of file diff --git a/Net/Net_vs150.sln b/Net/Net_vs150.sln deleted file mode 100644 index b82d1f72c..000000000 --- a/Net/Net_vs150.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Net", "Net_vs150.vcxproj", "{B057A1FE-09F7-465E-B8B5-E1B659051D76}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{D5EFBF27-B934-4B8D-8AE5-6EC00374819C}" - ProjectSection(ProjectDependencies) = postProject - {B057A1FE-09F7-465E-B8B5-E1B659051D76} = {B057A1FE-09F7-465E-B8B5-E1B659051D76} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_shared|Win32.Build.0 = release_shared|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_shared|x64.Build.0 = debug_shared|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_shared|x64.ActiveCfg = release_shared|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_shared|x64.Build.0 = release_shared|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_shared|x64.Deploy.0 = release_shared|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_md|x64.Build.0 = release_static_md|x64 - {B057A1FE-09F7-465E-B8B5-E1B659051D76}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_shared|Win32.Build.0 = release_shared|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_shared|x64.Build.0 = debug_shared|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_shared|x64.ActiveCfg = release_shared|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_shared|x64.Build.0 = release_shared|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_shared|x64.Deploy.0 = release_shared|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_md|x64.Build.0 = release_static_md|x64 - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Net/Net_vs150.vcxproj b/Net/Net_vs150.vcxproj deleted file mode 100644 index e07b0899f..000000000 --- a/Net/Net_vs150.vcxproj +++ /dev/null @@ -1,787 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Net - {B057A1FE-09F7-465E-B8B5-E1B659051D76} - Net - Win32Proj - - - - StaticLibrary - v142 - MultiByte - - - StaticLibrary - v142 - MultiByte - - - StaticLibrary - v142 - MultiByte - - - StaticLibrary - v142 - MultiByte - - - DynamicLibrary - v142 - MultiByte - - - DynamicLibrary - v142 - MultiByte - - - StaticLibrary - v142 - MultiByte - - - StaticLibrary - v142 - MultiByte - - - StaticLibrary - v141 - MultiByte - - - StaticLibrary - v142 - MultiByte - - - DynamicLibrary - v141 - MultiByte - - - DynamicLibrary - v141 - MultiByte - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>16.0.32602.291 - - - ..\bin\ - obj\Net\$(Configuration)\ - true - - - ..\bin\ - obj\Net\$(Configuration)\ - false - - - ..\lib\ - obj\Net\$(Configuration)\ - - - ..\lib\ - obj\Net\$(Configuration)\ - - - ..\lib\ - obj\Net\$(Configuration)\ - - - ..\lib\ - obj\Net\$(Configuration)\ - - - ..\bin64\ - obj64\Net\$(Configuration)\ - true - Poco$(ProjectName)64d - - - ..\bin64\ - obj64\Net\$(Configuration)\ - false - Poco$(ProjectName)64 - - - ..\lib64\ - obj64\Net\$(Configuration)\ - Poco$(ProjectName)64d - - - ..\lib64\ - obj64\Net\$(Configuration)\ - Poco$(ProjectName)64 - - - ..\lib64\ - obj64\Net\$(Configuration)\ - Poco$(ProjectName)64d - - - ..\lib64\ - obj64\Net\$(Configuration)\ - Poco$(ProjectName)64 - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Net_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - /Zc:__cplusplus %(AdditionalOptions) - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoNetd.dll - true - true - ..\bin\PocoNetd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoNetd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Net_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - /Zc:__cplusplus %(AdditionalOptions) - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoNet.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoNet.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoNetmtd.pdb - Level3 - ProgramDatabase - Default - /Zc:__cplusplus %(AdditionalOptions) - - - ..\lib\PocoNetmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - /Zc:__cplusplus %(AdditionalOptions) - - - ..\lib\PocoNetmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoNetmdd.pdb - Level3 - ProgramDatabase - Default - /Zc:__cplusplus %(AdditionalOptions) - - - ..\lib\PocoNetmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoNetmd.pdb - Level3 - - Default - /Zc:__cplusplus %(AdditionalOptions) - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\lib\PocoNetmd.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Net_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - /Zc:__cplusplus %(AdditionalOptions) - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoNet64d.dll - true - true - ..\bin64\PocoNet64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoNetd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Net_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - /Zc:__cplusplus %(AdditionalOptions) - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoNet64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoNet.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoNetmtd.pdb - Level3 - ProgramDatabase - Default - /Zc:__cplusplus %(AdditionalOptions) - - - ..\lib64\PocoNetmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - /Zc:__cplusplus %(AdditionalOptions) - - - ..\lib64\PocoNetmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoNetmdd.pdb - Level3 - ProgramDatabase - Default - /Zc:__cplusplus %(AdditionalOptions) - - - ..\lib64\PocoNetmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - /Zc:__cplusplus %(AdditionalOptions) - - - ..\lib64\PocoNetmd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - - - - - - \ No newline at end of file diff --git a/Net/Net_vs150.vcxproj.filters b/Net/Net_vs150.vcxproj.filters deleted file mode 100644 index bfb44ef53..000000000 --- a/Net/Net_vs150.vcxproj.filters +++ /dev/null @@ -1,849 +0,0 @@ - - - - - {324e2aba-d5a3-4ba7-af4e-ba9f292c6a37} - - - {aba9dbd3-d67b-4697-8aca-fdc97cdd366c} - - - {08836dff-c6d9-477b-b168-b60c532f0ee9} - - - {0cd82a1b-2a05-4d20-adf9-d9b12d353864} - - - {de00d8b8-c3b3-4371-8cbc-9011f9c6a9f7} - - - {e11c4394-ab57-4925-8cbc-2b5cc19fe0bb} - - - {d5d32e15-862e-49d0-8d5e-4790c0fd61c1} - - - {a6cb9dd0-7420-474b-8dcb-7f39be76e188} - - - {b9ee303a-fc6f-4724-b994-957529558993} - - - {92ff9308-53be-42a6-a118-43f201f1eac8} - - - {8e3682da-7efc-4501-8cb7-57a028640194} - - - {cfd86d37-f07f-4d1b-83ce-d8f357858131} - - - {1734d2b3-ec07-46b8-b53e-e461a7f2736f} - - - {e92c3005-3b81-4836-b6f5-c54f5b8f102c} - - - {b52971ad-98fa-4e8d-8fc8-fd301cbeccd3} - - - {608a2e8b-63d5-475f-9504-d0a3e8ab7ae8} - - - {60f019de-2f76-491f-8272-1cc02ad9d4d3} - - - {e520f5c2-e936-44ea-852d-c509bd94fc77} - - - {ed78b909-324f-4e4e-979b-fde0cc6fc499} - - - {aeef6e56-9436-4820-a091-ca974dd0f634} - - - {cdf22eb3-5642-4fd7-9ca7-ffe31f46289e} - - - {95e9f948-f2cc-435f-ae9a-66f41505918b} - - - {94958031-602b-4f51-81f9-2ab4cf94fb07} - - - {e84440c5-49f2-40bf-9ac2-652f69281480} - - - {f6077c49-4026-4ae0-9e5a-023a1820bdad} - - - {2370ec32-3423-4cbb-b68f-be5002e2483b} - - - {c0b40d95-69cd-4a29-afcc-6fc063270802} - - - {d50e28b6-5c72-422c-a27d-6a7c290aa0e9} - - - {10308cbe-63c8-4357-bdb2-0764e4c9fb05} - - - {26584053-5a1f-4fea-89ba-f34530472b7c} - - - {89ddfa70-d078-453b-ae2e-eaa67a9ee292} - - - {67b527fd-d385-440c-bda6-5e8d3522209b} - - - {99d39ae3-0587-40d0-8d77-9439e5695158} - - - {6ba352bc-b7aa-47ba-961c-d6686634851a} - - - {975efe4a-dca1-48de-b73e-e6ceb1639847} - - - {af0b0e01-b7c3-40b8-a8e1-fc373ecc6b47} - - - {3241389b-7946-454b-85ad-09d6466adab2} - - - {7f853a1c-9bb2-4ea3-bf5e-82089c8d0dcc} - - - {8413cfa5-7aa7-4d3d-82ed-a7938f73ed52} - - - {17e4a728-7f10-4ea2-991c-7f77bfa866cb} - - - {e6fd306b-a298-4245-be9c-766b70250d08} - - - {5a940ea2-c4cd-4548-8b6e-0496e99764e4} - - - {f1697a6e-8522-40eb-8c55-c96db8935a6f} - - - {5edc5856-f993-439e-af12-1f6206e95611} - - - {c8eb0fdc-b2b5-427c-80e0-8e6baa9a4e0f} - - - {500d9a2e-e4e2-4ad3-a1eb-31fe75d64346} - - - {432b171f-f1b6-4dfd-9ce3-0a7f24da742e} - - - {8c997592-5a3b-4558-af78-9cc89274fc95} - - - {ac9c4b5c-40f1-48f9-9266-71f9c2a61a9b} - - - {bb23bb5a-76be-4fd1-9832-8fa6d3170bbf} - - - {315ea570-f40c-4aa7-b7c2-b2f55f0861f4} - - - {df9eed1e-9954-4abf-9862-86f24e553aca} - - - {fc923dd1-8c29-492a-bb0d-f62ab2ad56e6} - - - {813bc6be-03b4-4563-a160-05b7e602b376} - - - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - TCPServer\Header Files - - - TCPServer\Header Files - - - TCPServer\Header Files - - - TCPServer\Header Files - - - TCPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTTPClient\Header Files - - - HTTPClient\Header Files - - - HTTPClient\Header Files - - - HTTPClient\Header Files - - - HTTPClient\Header Files - - - HTML\Header Files - - - FTPClient\Header Files - - - FTPClient\Header Files - - - Reactor\Header Files - - - Reactor\Header Files - - - Reactor\Header Files - - - Reactor\Header Files - - - Reactor\Header Files - - - Reactor\Header Files - - - Reactor\Header Files - - - Reactor\Header Files - - - Mail\Header Files - - - Mail\Header Files - - - Mail\Header Files - - - Mail\Header Files - - - Mail\Header Files - - - ICMP\Header Files - - - ICMP\Header Files - - - ICMP\Header Files - - - ICMP\Header Files - - - ICMP\Header Files - - - ICMP\Header Files - - - ICMP\Header Files - - - NTP\Header Files - - - NTP\Header Files - - - NTP\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - Logging\Header Files - - - WebSocket\Header Files - - - WebSocket\Header Files - - - OAuth\Header Files - - - OAuth\Header Files - - - UDP\Header Files - - - UDP\Header Files - - - UDP\Header Files - - - UDP\Header Files - - - UDP\Header Files - - - UDP\Header Files - - - UDP\Header Files - - - NTLM\Header Files - - - NTLM\Header Files - - - - - NetCore\Source Files - - - NetCore\Source Files - - - NetCore\Source Files - - - NetCore\Source Files - - - NetCore\Source Files - - - NetCore\Source Files - - - NetCore\Source Files - - - NetCore\Source Files - - - NetCore\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - TCPServer\Source Files - - - TCPServer\Source Files - - - TCPServer\Source Files - - - TCPServer\Source Files - - - TCPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTTPClient\Source Files - - - HTTPClient\Source Files - - - HTTPClient\Source Files - - - HTTPClient\Source Files - - - HTTPClient\Source Files - - - HTML\Source Files - - - FTPClient\Source Files - - - FTPClient\Source Files - - - Reactor\Source Files - - - Reactor\Source Files - - - Reactor\Source Files - - - Reactor\Source Files - - - Mail\Source Files - - - Mail\Source Files - - - Mail\Source Files - - - Mail\Source Files - - - Mail\Source Files - - - ICMP\Source Files - - - ICMP\Source Files - - - ICMP\Source Files - - - ICMP\Source Files - - - ICMP\Source Files - - - ICMP\Source Files - - - ICMP\Source Files - - - NTP\Source Files - - - NTP\Source Files - - - NTP\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - Logging\Source Files - - - WebSocket\Source Files - - - WebSocket\Source Files - - - OAuth\Source Files - - - OAuth\Source Files - - - UDP\Source Files - - - UDP\Source Files - - - NTLM\Source Files - - - NTLM\Source Files - - - - - - \ No newline at end of file diff --git a/Net/samples/EchoServer/EchoServer_vs140.vcxproj b/Net/samples/EchoServer/EchoServer_vs140.vcxproj deleted file mode 100644 index 73b670ea7..000000000 --- a/Net/samples/EchoServer/EchoServer_vs140.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - EchoServer - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7} - EchoServer - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - EchoServerd - EchoServerd - EchoServerd - EchoServer - EchoServer - EchoServer - EchoServerd - EchoServerd - EchoServerd - EchoServer - EchoServer - EchoServer - - - bin\ - obj\EchoServer\$(Configuration)\ - true - - - bin\ - obj\EchoServer\$(Configuration)\ - false - - - bin\static_mt\ - obj\EchoServer\$(Configuration)\ - true - - - bin\static_mt\ - obj\EchoServer\$(Configuration)\ - false - - - bin\static_md\ - obj\EchoServer\$(Configuration)\ - true - - - bin\static_md\ - obj\EchoServer\$(Configuration)\ - false - - - bin64\ - obj64\EchoServer\$(Configuration)\ - true - - - bin64\ - obj64\EchoServer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\EchoServer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\EchoServer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\EchoServer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\EchoServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\EchoServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\EchoServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\EchoServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\EchoServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\EchoServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\EchoServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\EchoServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\EchoServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\EchoServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\EchoServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\EchoServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\EchoServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\EchoServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\EchoServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\EchoServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\EchoServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\EchoServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\EchoServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - true - - - - - diff --git a/Net/samples/EchoServer/EchoServer_vs140.vcxproj.filters b/Net/samples/EchoServer/EchoServer_vs140.vcxproj.filters deleted file mode 100644 index 7b22dd36f..000000000 --- a/Net/samples/EchoServer/EchoServer_vs140.vcxproj.filters +++ /dev/null @@ -1,21 +0,0 @@ - - - - - {41df47d1-69dc-4390-ae55-6f01d7574cbc} - - - {5c848f55-bba1-4d3f-b834-95b292dbc761} - - - - - Configuration Files - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/EchoServer/EchoServer_vs150.vcxproj b/Net/samples/EchoServer/EchoServer_vs150.vcxproj deleted file mode 100644 index 74cf108e2..000000000 --- a/Net/samples/EchoServer/EchoServer_vs150.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - EchoServer - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7} - EchoServer - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - EchoServerd - EchoServerd - EchoServerd - EchoServer - EchoServer - EchoServer - EchoServerd - EchoServerd - EchoServerd - EchoServer - EchoServer - EchoServer - - - bin\ - obj\EchoServer\$(Configuration)\ - true - - - bin\ - obj\EchoServer\$(Configuration)\ - false - - - bin\static_mt\ - obj\EchoServer\$(Configuration)\ - true - - - bin\static_mt\ - obj\EchoServer\$(Configuration)\ - false - - - bin\static_md\ - obj\EchoServer\$(Configuration)\ - true - - - bin\static_md\ - obj\EchoServer\$(Configuration)\ - false - - - bin64\ - obj64\EchoServer\$(Configuration)\ - true - - - bin64\ - obj64\EchoServer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\EchoServer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\EchoServer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\EchoServer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\EchoServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\EchoServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\EchoServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\EchoServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\EchoServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\EchoServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\EchoServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\EchoServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\EchoServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\EchoServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\EchoServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\EchoServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\EchoServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\EchoServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\EchoServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\EchoServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\EchoServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\EchoServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\EchoServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - true - - - - - diff --git a/Net/samples/EchoServer/EchoServer_vs150.vcxproj.filters b/Net/samples/EchoServer/EchoServer_vs150.vcxproj.filters deleted file mode 100644 index 6d4253e95..000000000 --- a/Net/samples/EchoServer/EchoServer_vs150.vcxproj.filters +++ /dev/null @@ -1,21 +0,0 @@ - - - - - {7183dec1-8b6d-4d9d-bc64-806088c41c31} - - - {b90a2980-c622-49c1-8a9a-971bf066f005} - - - - - Configuration Files - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/HTTPFormServer/HTTPFormServer_vs140.vcxproj b/Net/samples/HTTPFormServer/HTTPFormServer_vs140.vcxproj deleted file mode 100644 index b4109c50d..000000000 --- a/Net/samples/HTTPFormServer/HTTPFormServer_vs140.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - HTTPFormServer - {19B162EB-DDAA-37BA-AE93-7FDED89274DE} - HTTPFormServer - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - HTTPFormServerd - HTTPFormServerd - HTTPFormServerd - HTTPFormServer - HTTPFormServer - HTTPFormServer - HTTPFormServerd - HTTPFormServerd - HTTPFormServerd - HTTPFormServer - HTTPFormServer - HTTPFormServer - - - bin\ - obj\HTTPFormServer\$(Configuration)\ - true - - - bin\ - obj\HTTPFormServer\$(Configuration)\ - false - - - bin\static_mt\ - obj\HTTPFormServer\$(Configuration)\ - true - - - bin\static_mt\ - obj\HTTPFormServer\$(Configuration)\ - false - - - bin\static_md\ - obj\HTTPFormServer\$(Configuration)\ - true - - - bin\static_md\ - obj\HTTPFormServer\$(Configuration)\ - false - - - bin64\ - obj64\HTTPFormServer\$(Configuration)\ - true - - - bin64\ - obj64\HTTPFormServer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\HTTPFormServer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\HTTPFormServer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\HTTPFormServer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\HTTPFormServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPFormServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\HTTPFormServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPFormServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPFormServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\HTTPFormServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPFormServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPFormServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\HTTPFormServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPFormServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPFormServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\HTTPFormServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPFormServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPFormServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\HTTPFormServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPFormServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPFormServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\HTTPFormServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPFormServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - true - - - - - diff --git a/Net/samples/HTTPFormServer/HTTPFormServer_vs140.vcxproj.filters b/Net/samples/HTTPFormServer/HTTPFormServer_vs140.vcxproj.filters deleted file mode 100644 index e9231a838..000000000 --- a/Net/samples/HTTPFormServer/HTTPFormServer_vs140.vcxproj.filters +++ /dev/null @@ -1,21 +0,0 @@ - - - - - {da4eac42-98d8-43b4-94da-414d48001dc6} - - - {9d93cb39-23dc-4f33-8c04-7e54958983cc} - - - - - Configuration Files - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/HTTPFormServer/HTTPFormServer_vs150.vcxproj b/Net/samples/HTTPFormServer/HTTPFormServer_vs150.vcxproj deleted file mode 100644 index 09d2b735c..000000000 --- a/Net/samples/HTTPFormServer/HTTPFormServer_vs150.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - HTTPFormServer - {19B162EB-DDAA-37BA-AE93-7FDED89274DE} - HTTPFormServer - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - HTTPFormServerd - HTTPFormServerd - HTTPFormServerd - HTTPFormServer - HTTPFormServer - HTTPFormServer - HTTPFormServerd - HTTPFormServerd - HTTPFormServerd - HTTPFormServer - HTTPFormServer - HTTPFormServer - - - bin\ - obj\HTTPFormServer\$(Configuration)\ - true - - - bin\ - obj\HTTPFormServer\$(Configuration)\ - false - - - bin\static_mt\ - obj\HTTPFormServer\$(Configuration)\ - true - - - bin\static_mt\ - obj\HTTPFormServer\$(Configuration)\ - false - - - bin\static_md\ - obj\HTTPFormServer\$(Configuration)\ - true - - - bin\static_md\ - obj\HTTPFormServer\$(Configuration)\ - false - - - bin64\ - obj64\HTTPFormServer\$(Configuration)\ - true - - - bin64\ - obj64\HTTPFormServer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\HTTPFormServer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\HTTPFormServer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\HTTPFormServer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\HTTPFormServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPFormServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\HTTPFormServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPFormServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPFormServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\HTTPFormServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPFormServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPFormServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\HTTPFormServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPFormServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPFormServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\HTTPFormServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPFormServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPFormServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\HTTPFormServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPFormServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPFormServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\HTTPFormServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPFormServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - true - - - - - diff --git a/Net/samples/HTTPFormServer/HTTPFormServer_vs150.vcxproj.filters b/Net/samples/HTTPFormServer/HTTPFormServer_vs150.vcxproj.filters deleted file mode 100644 index 4f137f0e9..000000000 --- a/Net/samples/HTTPFormServer/HTTPFormServer_vs150.vcxproj.filters +++ /dev/null @@ -1,21 +0,0 @@ - - - - - {e8eb50b9-ebe4-4aaa-b6e4-c99b46dbf414} - - - {c910e501-ea60-4115-b38d-7db8774a70f0} - - - - - Configuration Files - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/HTTPLoadTest/HTTPLoadTest_vs140.vcxproj b/Net/samples/HTTPLoadTest/HTTPLoadTest_vs140.vcxproj deleted file mode 100644 index feb5e67b0..000000000 --- a/Net/samples/HTTPLoadTest/HTTPLoadTest_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - HTTPLoadTest - {A140D236-D64B-370A-A7E7-3000725D9869} - HTTPLoadTest - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - HTTPLoadTestd - HTTPLoadTestd - HTTPLoadTestd - HTTPLoadTest - HTTPLoadTest - HTTPLoadTest - HTTPLoadTestd - HTTPLoadTestd - HTTPLoadTestd - HTTPLoadTest - HTTPLoadTest - HTTPLoadTest - - - bin\ - obj\HTTPLoadTest\$(Configuration)\ - true - - - bin\ - obj\HTTPLoadTest\$(Configuration)\ - false - - - bin\static_mt\ - obj\HTTPLoadTest\$(Configuration)\ - true - - - bin\static_mt\ - obj\HTTPLoadTest\$(Configuration)\ - false - - - bin\static_md\ - obj\HTTPLoadTest\$(Configuration)\ - true - - - bin\static_md\ - obj\HTTPLoadTest\$(Configuration)\ - false - - - bin64\ - obj64\HTTPLoadTest\$(Configuration)\ - true - - - bin64\ - obj64\HTTPLoadTest\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\HTTPLoadTest\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\HTTPLoadTest\$(Configuration)\ - false - - - bin64\static_md\ - obj64\HTTPLoadTest\$(Configuration)\ - true - - - bin64\static_md\ - obj64\HTTPLoadTest\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPLoadTestd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\HTTPLoadTestd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPLoadTest.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPLoadTestd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\HTTPLoadTestd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPLoadTest.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPLoadTestd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\HTTPLoadTestd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPLoadTest.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPLoadTestd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\HTTPLoadTestd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPLoadTest.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPLoadTestd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\HTTPLoadTestd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPLoadTest.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPLoadTestd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\HTTPLoadTestd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPLoadTest.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Net/samples/HTTPLoadTest/HTTPLoadTest_vs140.vcxproj.filters b/Net/samples/HTTPLoadTest/HTTPLoadTest_vs140.vcxproj.filters deleted file mode 100644 index 230e4bf48..000000000 --- a/Net/samples/HTTPLoadTest/HTTPLoadTest_vs140.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {8ce5410d-36c1-4b72-854e-ab45dfbafd40} - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/HTTPLoadTest/HTTPLoadTest_vs150.vcxproj b/Net/samples/HTTPLoadTest/HTTPLoadTest_vs150.vcxproj deleted file mode 100644 index 8080f7b32..000000000 --- a/Net/samples/HTTPLoadTest/HTTPLoadTest_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - HTTPLoadTest - {A140D236-D64B-370A-A7E7-3000725D9869} - HTTPLoadTest - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - HTTPLoadTestd - HTTPLoadTestd - HTTPLoadTestd - HTTPLoadTest - HTTPLoadTest - HTTPLoadTest - HTTPLoadTestd - HTTPLoadTestd - HTTPLoadTestd - HTTPLoadTest - HTTPLoadTest - HTTPLoadTest - - - bin\ - obj\HTTPLoadTest\$(Configuration)\ - true - - - bin\ - obj\HTTPLoadTest\$(Configuration)\ - false - - - bin\static_mt\ - obj\HTTPLoadTest\$(Configuration)\ - true - - - bin\static_mt\ - obj\HTTPLoadTest\$(Configuration)\ - false - - - bin\static_md\ - obj\HTTPLoadTest\$(Configuration)\ - true - - - bin\static_md\ - obj\HTTPLoadTest\$(Configuration)\ - false - - - bin64\ - obj64\HTTPLoadTest\$(Configuration)\ - true - - - bin64\ - obj64\HTTPLoadTest\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\HTTPLoadTest\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\HTTPLoadTest\$(Configuration)\ - false - - - bin64\static_md\ - obj64\HTTPLoadTest\$(Configuration)\ - true - - - bin64\static_md\ - obj64\HTTPLoadTest\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPLoadTestd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\HTTPLoadTestd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPLoadTest.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPLoadTestd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\HTTPLoadTestd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPLoadTest.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPLoadTestd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\HTTPLoadTestd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPLoadTest.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPLoadTestd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\HTTPLoadTestd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPLoadTest.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPLoadTestd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\HTTPLoadTestd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPLoadTest.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPLoadTestd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\HTTPLoadTestd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPLoadTest.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Net/samples/HTTPLoadTest/HTTPLoadTest_vs150.vcxproj.filters b/Net/samples/HTTPLoadTest/HTTPLoadTest_vs150.vcxproj.filters deleted file mode 100644 index 3f6472b63..000000000 --- a/Net/samples/HTTPLoadTest/HTTPLoadTest_vs150.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {3e465dd2-908e-472d-af5d-c3a8c98086ef} - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/HTTPTimeServer/HTTPTimeServer_vs140.vcxproj b/Net/samples/HTTPTimeServer/HTTPTimeServer_vs140.vcxproj deleted file mode 100644 index 517dae9a0..000000000 --- a/Net/samples/HTTPTimeServer/HTTPTimeServer_vs140.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - HTTPTimeServer - {18A0143A-444A-38E3-838C-1ACFBE4EE18C} - HTTPTimeServer - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - HTTPTimeServerd - HTTPTimeServerd - HTTPTimeServerd - HTTPTimeServer - HTTPTimeServer - HTTPTimeServer - HTTPTimeServerd - HTTPTimeServerd - HTTPTimeServerd - HTTPTimeServer - HTTPTimeServer - HTTPTimeServer - - - bin\ - obj\HTTPTimeServer\$(Configuration)\ - true - - - bin\ - obj\HTTPTimeServer\$(Configuration)\ - false - - - bin\static_mt\ - obj\HTTPTimeServer\$(Configuration)\ - true - - - bin\static_mt\ - obj\HTTPTimeServer\$(Configuration)\ - false - - - bin\static_md\ - obj\HTTPTimeServer\$(Configuration)\ - true - - - bin\static_md\ - obj\HTTPTimeServer\$(Configuration)\ - false - - - bin64\ - obj64\HTTPTimeServer\$(Configuration)\ - true - - - bin64\ - obj64\HTTPTimeServer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\HTTPTimeServer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\HTTPTimeServer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\HTTPTimeServer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\HTTPTimeServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\HTTPTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\HTTPTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\HTTPTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\HTTPTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\HTTPTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\HTTPTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - true - - - - - diff --git a/Net/samples/HTTPTimeServer/HTTPTimeServer_vs140.vcxproj.filters b/Net/samples/HTTPTimeServer/HTTPTimeServer_vs140.vcxproj.filters deleted file mode 100644 index fe38e3c6d..000000000 --- a/Net/samples/HTTPTimeServer/HTTPTimeServer_vs140.vcxproj.filters +++ /dev/null @@ -1,21 +0,0 @@ - - - - - {69e2715c-78c1-4946-9f23-64aba2cb8ef0} - - - {1de2591d-db70-46c5-a2ba-c655670319c2} - - - - - Configuration Files - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/HTTPTimeServer/HTTPTimeServer_vs150.vcxproj b/Net/samples/HTTPTimeServer/HTTPTimeServer_vs150.vcxproj deleted file mode 100644 index 2bf35e42c..000000000 --- a/Net/samples/HTTPTimeServer/HTTPTimeServer_vs150.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - HTTPTimeServer - {18A0143A-444A-38E3-838C-1ACFBE4EE18C} - HTTPTimeServer - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - HTTPTimeServerd - HTTPTimeServerd - HTTPTimeServerd - HTTPTimeServer - HTTPTimeServer - HTTPTimeServer - HTTPTimeServerd - HTTPTimeServerd - HTTPTimeServerd - HTTPTimeServer - HTTPTimeServer - HTTPTimeServer - - - bin\ - obj\HTTPTimeServer\$(Configuration)\ - true - - - bin\ - obj\HTTPTimeServer\$(Configuration)\ - false - - - bin\static_mt\ - obj\HTTPTimeServer\$(Configuration)\ - true - - - bin\static_mt\ - obj\HTTPTimeServer\$(Configuration)\ - false - - - bin\static_md\ - obj\HTTPTimeServer\$(Configuration)\ - true - - - bin\static_md\ - obj\HTTPTimeServer\$(Configuration)\ - false - - - bin64\ - obj64\HTTPTimeServer\$(Configuration)\ - true - - - bin64\ - obj64\HTTPTimeServer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\HTTPTimeServer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\HTTPTimeServer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\HTTPTimeServer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\HTTPTimeServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\HTTPTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\HTTPTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\HTTPTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\HTTPTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\HTTPTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\HTTPTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - true - - - - - diff --git a/Net/samples/HTTPTimeServer/HTTPTimeServer_vs150.vcxproj.filters b/Net/samples/HTTPTimeServer/HTTPTimeServer_vs150.vcxproj.filters deleted file mode 100644 index c7d937f58..000000000 --- a/Net/samples/HTTPTimeServer/HTTPTimeServer_vs150.vcxproj.filters +++ /dev/null @@ -1,21 +0,0 @@ - - - - - {37758fe7-93ce-42a9-b805-3a09e83fdbb6} - - - {58a6b150-03b6-4d76-9d13-68c401493f74} - - - - - Configuration Files - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/Mail/Mail_vs140.vcxproj b/Net/samples/Mail/Mail_vs140.vcxproj deleted file mode 100644 index 5279645da..000000000 --- a/Net/samples/Mail/Mail_vs140.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Mail - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA} - Mail - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - Maild - Maild - Maild - Mail - Mail - Mail - Maild - Maild - Maild - Mail - Mail - Mail - - - bin\ - obj\Mail\$(Configuration)\ - true - - - bin\ - obj\Mail\$(Configuration)\ - false - - - bin\static_mt\ - obj\Mail\$(Configuration)\ - true - - - bin\static_mt\ - obj\Mail\$(Configuration)\ - false - - - bin\static_md\ - obj\Mail\$(Configuration)\ - true - - - bin\static_md\ - obj\Mail\$(Configuration)\ - false - - - bin64\ - obj64\Mail\$(Configuration)\ - true - - - bin64\ - obj64\Mail\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Mail\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Mail\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Mail\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Mail\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Maild.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Maild.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Mail.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Maild.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Maild.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Mail.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Maild.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Maild.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Mail.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Maild.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Maild.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Mail.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Maild.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Maild.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Mail.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Maild.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Maild.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Mail.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - - - - diff --git a/Net/samples/Mail/Mail_vs140.vcxproj.filters b/Net/samples/Mail/Mail_vs140.vcxproj.filters deleted file mode 100644 index 5624631ad..000000000 --- a/Net/samples/Mail/Mail_vs140.vcxproj.filters +++ /dev/null @@ -1,18 +0,0 @@ - - - - - {d0922d68-b9ea-4121-8abb-259c7e3f4f38} - - - - - Source Files - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/Mail/Mail_vs150.vcxproj b/Net/samples/Mail/Mail_vs150.vcxproj deleted file mode 100644 index bf3d5dd27..000000000 --- a/Net/samples/Mail/Mail_vs150.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Mail - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA} - Mail - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - Maild - Maild - Maild - Mail - Mail - Mail - Maild - Maild - Maild - Mail - Mail - Mail - - - bin\ - obj\Mail\$(Configuration)\ - true - - - bin\ - obj\Mail\$(Configuration)\ - false - - - bin\static_mt\ - obj\Mail\$(Configuration)\ - true - - - bin\static_mt\ - obj\Mail\$(Configuration)\ - false - - - bin\static_md\ - obj\Mail\$(Configuration)\ - true - - - bin\static_md\ - obj\Mail\$(Configuration)\ - false - - - bin64\ - obj64\Mail\$(Configuration)\ - true - - - bin64\ - obj64\Mail\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Mail\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Mail\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Mail\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Mail\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Maild.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Maild.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Mail.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Maild.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Maild.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Mail.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Maild.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Maild.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Mail.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Maild.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Maild.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Mail.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Maild.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Maild.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Mail.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Maild.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Maild.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Mail.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - - - - diff --git a/Net/samples/Mail/Mail_vs150.vcxproj.filters b/Net/samples/Mail/Mail_vs150.vcxproj.filters deleted file mode 100644 index 3b0905722..000000000 --- a/Net/samples/Mail/Mail_vs150.vcxproj.filters +++ /dev/null @@ -1,18 +0,0 @@ - - - - - {4b8850d2-3429-4ad7-9146-6827dd8c2339} - - - - - Source Files - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/Ping/Ping_vs140.vcxproj b/Net/samples/Ping/Ping_vs140.vcxproj deleted file mode 100644 index 4300e6880..000000000 --- a/Net/samples/Ping/Ping_vs140.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Ping - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5} - Ping - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - Pingd - Pingd - Pingd - Ping - Ping - Ping - Pingd - Pingd - Pingd - Ping - Ping - Ping - - - bin\ - obj\Ping\$(Configuration)\ - true - - - bin\ - obj\Ping\$(Configuration)\ - false - - - bin\static_mt\ - obj\Ping\$(Configuration)\ - true - - - bin\static_mt\ - obj\Ping\$(Configuration)\ - false - - - bin\static_md\ - obj\Ping\$(Configuration)\ - true - - - bin\static_md\ - obj\Ping\$(Configuration)\ - false - - - bin64\ - obj64\Ping\$(Configuration)\ - true - - - bin64\ - obj64\Ping\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Ping\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Ping\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Ping\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Ping\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Pingd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Pingd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Ping.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Pingd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Pingd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Ping.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Pingd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Pingd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Ping.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Pingd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Pingd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Ping.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Pingd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Pingd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Ping.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Pingd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Pingd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Ping.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - true - - - - - diff --git a/Net/samples/Ping/Ping_vs140.vcxproj.filters b/Net/samples/Ping/Ping_vs140.vcxproj.filters deleted file mode 100644 index 1a7a7401e..000000000 --- a/Net/samples/Ping/Ping_vs140.vcxproj.filters +++ /dev/null @@ -1,21 +0,0 @@ - - - - - {cf72bf04-8863-4d6b-a371-0b015987c3fa} - - - {2f8b5d67-718f-47a5-bafc-30211f02d8df} - - - - - Configuration Files - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/Ping/Ping_vs150.vcxproj b/Net/samples/Ping/Ping_vs150.vcxproj deleted file mode 100644 index fe3f1270f..000000000 --- a/Net/samples/Ping/Ping_vs150.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Ping - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5} - Ping - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - Pingd - Pingd - Pingd - Ping - Ping - Ping - Pingd - Pingd - Pingd - Ping - Ping - Ping - - - bin\ - obj\Ping\$(Configuration)\ - true - - - bin\ - obj\Ping\$(Configuration)\ - false - - - bin\static_mt\ - obj\Ping\$(Configuration)\ - true - - - bin\static_mt\ - obj\Ping\$(Configuration)\ - false - - - bin\static_md\ - obj\Ping\$(Configuration)\ - true - - - bin\static_md\ - obj\Ping\$(Configuration)\ - false - - - bin64\ - obj64\Ping\$(Configuration)\ - true - - - bin64\ - obj64\Ping\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Ping\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Ping\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Ping\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Ping\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Pingd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Pingd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Ping.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Pingd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Pingd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Ping.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Pingd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Pingd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Ping.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Pingd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Pingd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Ping.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Pingd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Pingd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Ping.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Pingd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Pingd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Ping.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - true - - - - - diff --git a/Net/samples/Ping/Ping_vs150.vcxproj.filters b/Net/samples/Ping/Ping_vs150.vcxproj.filters deleted file mode 100644 index aead3f3c3..000000000 --- a/Net/samples/Ping/Ping_vs150.vcxproj.filters +++ /dev/null @@ -1,21 +0,0 @@ - - - - - {e497c4a9-b5b2-4b6d-8025-15f8d3e6b3d1} - - - {64ea1d59-cf2a-4799-b9dd-5f2218ddb5d9} - - - - - Configuration Files - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/SMTPLogger/SMTPLogger_vs140.vcxproj b/Net/samples/SMTPLogger/SMTPLogger_vs140.vcxproj deleted file mode 100644 index b131d734c..000000000 --- a/Net/samples/SMTPLogger/SMTPLogger_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - SMTPLogger - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF} - SMTPLogger - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - SMTPLoggerd - SMTPLoggerd - SMTPLoggerd - SMTPLogger - SMTPLogger - SMTPLogger - SMTPLoggerd - SMTPLoggerd - SMTPLoggerd - SMTPLogger - SMTPLogger - SMTPLogger - - - bin\ - obj\SMTPLogger\$(Configuration)\ - true - - - bin\ - obj\SMTPLogger\$(Configuration)\ - false - - - bin\static_mt\ - obj\SMTPLogger\$(Configuration)\ - true - - - bin\static_mt\ - obj\SMTPLogger\$(Configuration)\ - false - - - bin\static_md\ - obj\SMTPLogger\$(Configuration)\ - true - - - bin\static_md\ - obj\SMTPLogger\$(Configuration)\ - false - - - bin64\ - obj64\SMTPLogger\$(Configuration)\ - true - - - bin64\ - obj64\SMTPLogger\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\SMTPLogger\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\SMTPLogger\$(Configuration)\ - false - - - bin64\static_md\ - obj64\SMTPLogger\$(Configuration)\ - true - - - bin64\static_md\ - obj64\SMTPLogger\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SMTPLoggerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\SMTPLoggerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SMTPLogger.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SMTPLoggerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\SMTPLoggerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SMTPLogger.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SMTPLoggerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\SMTPLoggerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SMTPLogger.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SMTPLoggerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\SMTPLoggerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SMTPLogger.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SMTPLoggerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\SMTPLoggerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SMTPLogger.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SMTPLoggerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\SMTPLoggerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SMTPLogger.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Net/samples/SMTPLogger/SMTPLogger_vs140.vcxproj.filters b/Net/samples/SMTPLogger/SMTPLogger_vs140.vcxproj.filters deleted file mode 100644 index 843963e6c..000000000 --- a/Net/samples/SMTPLogger/SMTPLogger_vs140.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {e730561f-f321-4348-852e-c34fd155f5e9} - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/SMTPLogger/SMTPLogger_vs150.vcxproj b/Net/samples/SMTPLogger/SMTPLogger_vs150.vcxproj deleted file mode 100644 index fe4837886..000000000 --- a/Net/samples/SMTPLogger/SMTPLogger_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - SMTPLogger - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF} - SMTPLogger - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - SMTPLoggerd - SMTPLoggerd - SMTPLoggerd - SMTPLogger - SMTPLogger - SMTPLogger - SMTPLoggerd - SMTPLoggerd - SMTPLoggerd - SMTPLogger - SMTPLogger - SMTPLogger - - - bin\ - obj\SMTPLogger\$(Configuration)\ - true - - - bin\ - obj\SMTPLogger\$(Configuration)\ - false - - - bin\static_mt\ - obj\SMTPLogger\$(Configuration)\ - true - - - bin\static_mt\ - obj\SMTPLogger\$(Configuration)\ - false - - - bin\static_md\ - obj\SMTPLogger\$(Configuration)\ - true - - - bin\static_md\ - obj\SMTPLogger\$(Configuration)\ - false - - - bin64\ - obj64\SMTPLogger\$(Configuration)\ - true - - - bin64\ - obj64\SMTPLogger\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\SMTPLogger\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\SMTPLogger\$(Configuration)\ - false - - - bin64\static_md\ - obj64\SMTPLogger\$(Configuration)\ - true - - - bin64\static_md\ - obj64\SMTPLogger\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SMTPLoggerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\SMTPLoggerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SMTPLogger.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SMTPLoggerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\SMTPLoggerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SMTPLogger.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SMTPLoggerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\SMTPLoggerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SMTPLogger.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SMTPLoggerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\SMTPLoggerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SMTPLogger.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SMTPLoggerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\SMTPLoggerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SMTPLogger.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SMTPLoggerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\SMTPLoggerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SMTPLogger.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Net/samples/SMTPLogger/SMTPLogger_vs150.vcxproj.filters b/Net/samples/SMTPLogger/SMTPLogger_vs150.vcxproj.filters deleted file mode 100644 index 09bae180a..000000000 --- a/Net/samples/SMTPLogger/SMTPLogger_vs150.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {5e5007da-9fb5-4daa-8991-a712f5be42b3} - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/TimeServer/TimeServer_vs140.vcxproj b/Net/samples/TimeServer/TimeServer_vs140.vcxproj deleted file mode 100644 index 805a2b408..000000000 --- a/Net/samples/TimeServer/TimeServer_vs140.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TimeServer - {59EDFD20-9968-30F7-9532-44C08DA58C6E} - TimeServer - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TimeServerd - TimeServerd - TimeServerd - TimeServer - TimeServer - TimeServer - TimeServerd - TimeServerd - TimeServerd - TimeServer - TimeServer - TimeServer - - - bin\ - obj\TimeServer\$(Configuration)\ - true - - - bin\ - obj\TimeServer\$(Configuration)\ - false - - - bin\static_mt\ - obj\TimeServer\$(Configuration)\ - true - - - bin\static_mt\ - obj\TimeServer\$(Configuration)\ - false - - - bin\static_md\ - obj\TimeServer\$(Configuration)\ - true - - - bin\static_md\ - obj\TimeServer\$(Configuration)\ - false - - - bin64\ - obj64\TimeServer\$(Configuration)\ - true - - - bin64\ - obj64\TimeServer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TimeServer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TimeServer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TimeServer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TimeServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - - - - diff --git a/Net/samples/TimeServer/TimeServer_vs140.vcxproj.filters b/Net/samples/TimeServer/TimeServer_vs140.vcxproj.filters deleted file mode 100644 index 04997a051..000000000 --- a/Net/samples/TimeServer/TimeServer_vs140.vcxproj.filters +++ /dev/null @@ -1,21 +0,0 @@ - - - - - {1c630446-b128-4a95-8f1d-fe38f5c15f52} - - - {cc63a9e2-b07b-4c95-afb8-2705ce65c871} - - - - - Source Files - - - - - Configuration Files - - - \ No newline at end of file diff --git a/Net/samples/TimeServer/TimeServer_vs150.vcxproj b/Net/samples/TimeServer/TimeServer_vs150.vcxproj deleted file mode 100644 index 482eb33bc..000000000 --- a/Net/samples/TimeServer/TimeServer_vs150.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TimeServer - {59EDFD20-9968-30F7-9532-44C08DA58C6E} - TimeServer - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TimeServerd - TimeServerd - TimeServerd - TimeServer - TimeServer - TimeServer - TimeServerd - TimeServerd - TimeServerd - TimeServer - TimeServer - TimeServer - - - bin\ - obj\TimeServer\$(Configuration)\ - true - - - bin\ - obj\TimeServer\$(Configuration)\ - false - - - bin\static_mt\ - obj\TimeServer\$(Configuration)\ - true - - - bin\static_mt\ - obj\TimeServer\$(Configuration)\ - false - - - bin\static_md\ - obj\TimeServer\$(Configuration)\ - true - - - bin\static_md\ - obj\TimeServer\$(Configuration)\ - false - - - bin64\ - obj64\TimeServer\$(Configuration)\ - true - - - bin64\ - obj64\TimeServer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TimeServer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TimeServer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TimeServer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TimeServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - - - - diff --git a/Net/samples/TimeServer/TimeServer_vs150.vcxproj.filters b/Net/samples/TimeServer/TimeServer_vs150.vcxproj.filters deleted file mode 100644 index ac81358af..000000000 --- a/Net/samples/TimeServer/TimeServer_vs150.vcxproj.filters +++ /dev/null @@ -1,21 +0,0 @@ - - - - - {9c645d55-e62d-4659-8bba-f92a21f66aaa} - - - {87ce96ca-3518-4aac-accb-b1c2102ae40f} - - - - - Source Files - - - - - Configuration Files - - - \ No newline at end of file diff --git a/Net/samples/WebSocketServer/WebSocketServer_vs140.vcxproj b/Net/samples/WebSocketServer/WebSocketServer_vs140.vcxproj deleted file mode 100644 index 8c2249850..000000000 --- a/Net/samples/WebSocketServer/WebSocketServer_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - WebSocketServer - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C} - WebSocketServer - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - WebSocketServerd - WebSocketServerd - WebSocketServerd - WebSocketServer - WebSocketServer - WebSocketServer - WebSocketServerd - WebSocketServerd - WebSocketServerd - WebSocketServer - WebSocketServer - WebSocketServer - - - bin\ - obj\WebSocketServer\$(Configuration)\ - true - - - bin\ - obj\WebSocketServer\$(Configuration)\ - false - - - bin\static_mt\ - obj\WebSocketServer\$(Configuration)\ - true - - - bin\static_mt\ - obj\WebSocketServer\$(Configuration)\ - false - - - bin\static_md\ - obj\WebSocketServer\$(Configuration)\ - true - - - bin\static_md\ - obj\WebSocketServer\$(Configuration)\ - false - - - bin64\ - obj64\WebSocketServer\$(Configuration)\ - true - - - bin64\ - obj64\WebSocketServer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\WebSocketServer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\WebSocketServer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\WebSocketServer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\WebSocketServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\WebSocketServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\WebSocketServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\WebSocketServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\WebSocketServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\WebSocketServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\WebSocketServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\WebSocketServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\WebSocketServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\WebSocketServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\WebSocketServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\WebSocketServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\WebSocketServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\WebSocketServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\WebSocketServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\WebSocketServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\WebSocketServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\WebSocketServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\WebSocketServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Net/samples/WebSocketServer/WebSocketServer_vs140.vcxproj.filters b/Net/samples/WebSocketServer/WebSocketServer_vs140.vcxproj.filters deleted file mode 100644 index 099ed55aa..000000000 --- a/Net/samples/WebSocketServer/WebSocketServer_vs140.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {8efcd462-58ec-49c0-9c5e-49915736fdef} - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/WebSocketServer/WebSocketServer_vs150.vcxproj b/Net/samples/WebSocketServer/WebSocketServer_vs150.vcxproj deleted file mode 100644 index e8b965f9c..000000000 --- a/Net/samples/WebSocketServer/WebSocketServer_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - WebSocketServer - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C} - WebSocketServer - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - WebSocketServerd - WebSocketServerd - WebSocketServerd - WebSocketServer - WebSocketServer - WebSocketServer - WebSocketServerd - WebSocketServerd - WebSocketServerd - WebSocketServer - WebSocketServer - WebSocketServer - - - bin\ - obj\WebSocketServer\$(Configuration)\ - true - - - bin\ - obj\WebSocketServer\$(Configuration)\ - false - - - bin\static_mt\ - obj\WebSocketServer\$(Configuration)\ - true - - - bin\static_mt\ - obj\WebSocketServer\$(Configuration)\ - false - - - bin\static_md\ - obj\WebSocketServer\$(Configuration)\ - true - - - bin\static_md\ - obj\WebSocketServer\$(Configuration)\ - false - - - bin64\ - obj64\WebSocketServer\$(Configuration)\ - true - - - bin64\ - obj64\WebSocketServer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\WebSocketServer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\WebSocketServer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\WebSocketServer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\WebSocketServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\WebSocketServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\WebSocketServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\WebSocketServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\WebSocketServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\WebSocketServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\WebSocketServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\WebSocketServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\WebSocketServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\WebSocketServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\WebSocketServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\WebSocketServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\WebSocketServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\WebSocketServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\WebSocketServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\WebSocketServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\WebSocketServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\WebSocketServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\WebSocketServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Net/samples/WebSocketServer/WebSocketServer_vs150.vcxproj.filters b/Net/samples/WebSocketServer/WebSocketServer_vs150.vcxproj.filters deleted file mode 100644 index 8d4eec973..000000000 --- a/Net/samples/WebSocketServer/WebSocketServer_vs150.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {697a7913-2a0e-430c-a675-8720810444ee} - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/dict/dict_vs140.vcxproj b/Net/samples/dict/dict_vs140.vcxproj deleted file mode 100644 index 857ebd95d..000000000 --- a/Net/samples/dict/dict_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - dict - {90F24341-F59F-385F-A8D6-66AB377FF033} - dict - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - dictd - dictd - dictd - dict - dict - dict - dictd - dictd - dictd - dict - dict - dict - - - bin\ - obj\dict\$(Configuration)\ - true - - - bin\ - obj\dict\$(Configuration)\ - false - - - bin\static_mt\ - obj\dict\$(Configuration)\ - true - - - bin\static_mt\ - obj\dict\$(Configuration)\ - false - - - bin\static_md\ - obj\dict\$(Configuration)\ - true - - - bin\static_md\ - obj\dict\$(Configuration)\ - false - - - bin64\ - obj64\dict\$(Configuration)\ - true - - - bin64\ - obj64\dict\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\dict\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\dict\$(Configuration)\ - false - - - bin64\static_md\ - obj64\dict\$(Configuration)\ - true - - - bin64\static_md\ - obj64\dict\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\dictd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\dictd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\dict.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\dictd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\dictd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\dict.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\dictd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\dictd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\dict.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\dictd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\dictd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\dict.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\dictd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\dictd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\dict.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\dictd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\dictd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\dict.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Net/samples/dict/dict_vs140.vcxproj.filters b/Net/samples/dict/dict_vs140.vcxproj.filters deleted file mode 100644 index 69591b261..000000000 --- a/Net/samples/dict/dict_vs140.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {f9ae9de1-30c7-4c6a-9b8a-e2f81a852eb2} - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/dict/dict_vs150.vcxproj b/Net/samples/dict/dict_vs150.vcxproj deleted file mode 100644 index 0d405598a..000000000 --- a/Net/samples/dict/dict_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - dict - {90F24341-F59F-385F-A8D6-66AB377FF033} - dict - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - dictd - dictd - dictd - dict - dict - dict - dictd - dictd - dictd - dict - dict - dict - - - bin\ - obj\dict\$(Configuration)\ - true - - - bin\ - obj\dict\$(Configuration)\ - false - - - bin\static_mt\ - obj\dict\$(Configuration)\ - true - - - bin\static_mt\ - obj\dict\$(Configuration)\ - false - - - bin\static_md\ - obj\dict\$(Configuration)\ - true - - - bin\static_md\ - obj\dict\$(Configuration)\ - false - - - bin64\ - obj64\dict\$(Configuration)\ - true - - - bin64\ - obj64\dict\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\dict\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\dict\$(Configuration)\ - false - - - bin64\static_md\ - obj64\dict\$(Configuration)\ - true - - - bin64\static_md\ - obj64\dict\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\dictd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\dictd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\dict.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\dictd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\dictd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\dict.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\dictd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\dictd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\dict.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\dictd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\dictd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\dict.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\dictd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\dictd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\dict.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\dictd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\dictd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\dict.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Net/samples/dict/dict_vs150.vcxproj.filters b/Net/samples/dict/dict_vs150.vcxproj.filters deleted file mode 100644 index 5df7f4f1f..000000000 --- a/Net/samples/dict/dict_vs150.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {f8cc32fd-2ed1-4b51-946b-c1fb2f0020a9} - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/download/download_vs140.vcxproj b/Net/samples/download/download_vs140.vcxproj deleted file mode 100644 index 2b4f328a3..000000000 --- a/Net/samples/download/download_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - download - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D} - download - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - downloadd - downloadd - downloadd - download - download - download - downloadd - downloadd - downloadd - download - download - download - - - bin\ - obj\download\$(Configuration)\ - true - - - bin\ - obj\download\$(Configuration)\ - false - - - bin\static_mt\ - obj\download\$(Configuration)\ - true - - - bin\static_mt\ - obj\download\$(Configuration)\ - false - - - bin\static_md\ - obj\download\$(Configuration)\ - true - - - bin\static_md\ - obj\download\$(Configuration)\ - false - - - bin64\ - obj64\download\$(Configuration)\ - true - - - bin64\ - obj64\download\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\download\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\download\$(Configuration)\ - false - - - bin64\static_md\ - obj64\download\$(Configuration)\ - true - - - bin64\static_md\ - obj64\download\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\downloadd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\downloadd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\download.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\downloadd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\downloadd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\download.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\downloadd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\downloadd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\download.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\downloadd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\downloadd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\download.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\downloadd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\downloadd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\download.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\downloadd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\downloadd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\download.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Net/samples/download/download_vs140.vcxproj.filters b/Net/samples/download/download_vs140.vcxproj.filters deleted file mode 100644 index 52e594f30..000000000 --- a/Net/samples/download/download_vs140.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {f49b165d-313c-4d1d-a8f7-258f9590d755} - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/download/download_vs150.vcxproj b/Net/samples/download/download_vs150.vcxproj deleted file mode 100644 index 8020c6bff..000000000 --- a/Net/samples/download/download_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - download - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D} - download - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - downloadd - downloadd - downloadd - download - download - download - downloadd - downloadd - downloadd - download - download - download - - - bin\ - obj\download\$(Configuration)\ - true - - - bin\ - obj\download\$(Configuration)\ - false - - - bin\static_mt\ - obj\download\$(Configuration)\ - true - - - bin\static_mt\ - obj\download\$(Configuration)\ - false - - - bin\static_md\ - obj\download\$(Configuration)\ - true - - - bin\static_md\ - obj\download\$(Configuration)\ - false - - - bin64\ - obj64\download\$(Configuration)\ - true - - - bin64\ - obj64\download\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\download\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\download\$(Configuration)\ - false - - - bin64\static_md\ - obj64\download\$(Configuration)\ - true - - - bin64\static_md\ - obj64\download\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\downloadd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\downloadd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\download.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\downloadd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\downloadd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\download.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\downloadd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\downloadd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\download.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\downloadd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\downloadd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\download.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\downloadd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\downloadd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\download.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\downloadd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\downloadd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\download.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Net/samples/download/download_vs150.vcxproj.filters b/Net/samples/download/download_vs150.vcxproj.filters deleted file mode 100644 index 65223dcca..000000000 --- a/Net/samples/download/download_vs150.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {23fc7432-8394-4425-8679-231d59d81318} - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/httpget/httpget_vs140.vcxproj b/Net/samples/httpget/httpget_vs140.vcxproj deleted file mode 100644 index 81d65fd61..000000000 --- a/Net/samples/httpget/httpget_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - httpget - {5A299876-BF4E-37B9-922D-4E6FC1FA9520} - httpget - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - httpgetd - httpgetd - httpgetd - httpget - httpget - httpget - httpgetd - httpgetd - httpgetd - httpget - httpget - httpget - - - bin\ - obj\httpget\$(Configuration)\ - true - - - bin\ - obj\httpget\$(Configuration)\ - false - - - bin\static_mt\ - obj\httpget\$(Configuration)\ - true - - - bin\static_mt\ - obj\httpget\$(Configuration)\ - false - - - bin\static_md\ - obj\httpget\$(Configuration)\ - true - - - bin\static_md\ - obj\httpget\$(Configuration)\ - false - - - bin64\ - obj64\httpget\$(Configuration)\ - true - - - bin64\ - obj64\httpget\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\httpget\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\httpget\$(Configuration)\ - false - - - bin64\static_md\ - obj64\httpget\$(Configuration)\ - true - - - bin64\static_md\ - obj64\httpget\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\httpgetd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\httpgetd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\httpget.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\httpgetd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\httpgetd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\httpget.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\httpgetd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\httpgetd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\httpget.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\httpgetd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\httpgetd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\httpget.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\httpgetd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\httpgetd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\httpget.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\httpgetd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\httpgetd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\httpget.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Net/samples/httpget/httpget_vs140.vcxproj.filters b/Net/samples/httpget/httpget_vs140.vcxproj.filters deleted file mode 100644 index c42842972..000000000 --- a/Net/samples/httpget/httpget_vs140.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {fa4a52a0-f0cd-4dee-9b43-c9acdad12a7b} - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/httpget/httpget_vs150.vcxproj b/Net/samples/httpget/httpget_vs150.vcxproj deleted file mode 100644 index b0f087d40..000000000 --- a/Net/samples/httpget/httpget_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - httpget - {5A299876-BF4E-37B9-922D-4E6FC1FA9520} - httpget - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - httpgetd - httpgetd - httpgetd - httpget - httpget - httpget - httpgetd - httpgetd - httpgetd - httpget - httpget - httpget - - - bin\ - obj\httpget\$(Configuration)\ - true - - - bin\ - obj\httpget\$(Configuration)\ - false - - - bin\static_mt\ - obj\httpget\$(Configuration)\ - true - - - bin\static_mt\ - obj\httpget\$(Configuration)\ - false - - - bin\static_md\ - obj\httpget\$(Configuration)\ - true - - - bin\static_md\ - obj\httpget\$(Configuration)\ - false - - - bin64\ - obj64\httpget\$(Configuration)\ - true - - - bin64\ - obj64\httpget\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\httpget\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\httpget\$(Configuration)\ - false - - - bin64\static_md\ - obj64\httpget\$(Configuration)\ - true - - - bin64\static_md\ - obj64\httpget\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\httpgetd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\httpgetd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\httpget.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\httpgetd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\httpgetd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\httpget.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\httpgetd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\httpgetd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\httpget.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\httpgetd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\httpgetd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\httpget.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\httpgetd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\httpgetd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\httpget.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\httpgetd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\httpgetd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\httpget.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Net/samples/httpget/httpget_vs150.vcxproj.filters b/Net/samples/httpget/httpget_vs150.vcxproj.filters deleted file mode 100644 index ca098b9d4..000000000 --- a/Net/samples/httpget/httpget_vs150.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {418a921a-1da3-400f-8993-f4a3fd1b9cf6} - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/ifconfig/ifconfig_vs140.vcxproj b/Net/samples/ifconfig/ifconfig_vs140.vcxproj deleted file mode 100644 index 5c25433f7..000000000 --- a/Net/samples/ifconfig/ifconfig_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - ifconfig - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3} - ifconfig - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - ifconfigd - ifconfigd - ifconfigd - ifconfig - ifconfig - ifconfig - ifconfigd - ifconfigd - ifconfigd - ifconfig - ifconfig - ifconfig - - - bin\ - obj\ifconfig\$(Configuration)\ - true - - - bin\ - obj\ifconfig\$(Configuration)\ - false - - - bin\static_mt\ - obj\ifconfig\$(Configuration)\ - true - - - bin\static_mt\ - obj\ifconfig\$(Configuration)\ - false - - - bin\static_md\ - obj\ifconfig\$(Configuration)\ - true - - - bin\static_md\ - obj\ifconfig\$(Configuration)\ - false - - - bin64\ - obj64\ifconfig\$(Configuration)\ - true - - - bin64\ - obj64\ifconfig\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\ifconfig\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\ifconfig\$(Configuration)\ - false - - - bin64\static_md\ - obj64\ifconfig\$(Configuration)\ - true - - - bin64\static_md\ - obj64\ifconfig\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\ifconfigd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\ifconfigd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\ifconfig.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\ifconfigd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\ifconfigd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\ifconfig.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\ifconfigd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\ifconfigd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\ifconfig.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\ifconfigd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\ifconfigd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\ifconfig.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\ifconfigd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\ifconfigd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\ifconfig.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\ifconfigd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\ifconfigd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\ifconfig.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Net/samples/ifconfig/ifconfig_vs140.vcxproj.filters b/Net/samples/ifconfig/ifconfig_vs140.vcxproj.filters deleted file mode 100644 index 0fd15fc47..000000000 --- a/Net/samples/ifconfig/ifconfig_vs140.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {f0398d37-d892-42fb-9723-a494dbb081d9} - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/ifconfig/ifconfig_vs150.vcxproj b/Net/samples/ifconfig/ifconfig_vs150.vcxproj deleted file mode 100644 index 9813ea996..000000000 --- a/Net/samples/ifconfig/ifconfig_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - ifconfig - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3} - ifconfig - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - ifconfigd - ifconfigd - ifconfigd - ifconfig - ifconfig - ifconfig - ifconfigd - ifconfigd - ifconfigd - ifconfig - ifconfig - ifconfig - - - bin\ - obj\ifconfig\$(Configuration)\ - true - - - bin\ - obj\ifconfig\$(Configuration)\ - false - - - bin\static_mt\ - obj\ifconfig\$(Configuration)\ - true - - - bin\static_mt\ - obj\ifconfig\$(Configuration)\ - false - - - bin\static_md\ - obj\ifconfig\$(Configuration)\ - true - - - bin\static_md\ - obj\ifconfig\$(Configuration)\ - false - - - bin64\ - obj64\ifconfig\$(Configuration)\ - true - - - bin64\ - obj64\ifconfig\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\ifconfig\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\ifconfig\$(Configuration)\ - false - - - bin64\static_md\ - obj64\ifconfig\$(Configuration)\ - true - - - bin64\static_md\ - obj64\ifconfig\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\ifconfigd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\ifconfigd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\ifconfig.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\ifconfigd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\ifconfigd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\ifconfig.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\ifconfigd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\ifconfigd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\ifconfig.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\ifconfigd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\ifconfigd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\ifconfig.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\ifconfigd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\ifconfigd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\ifconfig.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\ifconfigd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\ifconfigd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\ifconfig.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Net/samples/ifconfig/ifconfig_vs150.vcxproj.filters b/Net/samples/ifconfig/ifconfig_vs150.vcxproj.filters deleted file mode 100644 index a3e41359f..000000000 --- a/Net/samples/ifconfig/ifconfig_vs150.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {c7360a16-10f0-4162-a10e-f76493210c1b} - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/samples_vs140.sln b/Net/samples/samples_vs140.sln deleted file mode 100644 index 697896f36..000000000 --- a/Net/samples/samples_vs140.sln +++ /dev/null @@ -1,517 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dict", "dict\dict_vs140.vcxproj", "{90F24341-F59F-385F-A8D6-66AB377FF033}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_vs140.vcxproj", "{D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EchoServer", "EchoServer\EchoServer_vs140.vcxproj", "{5074CE3E-05F5-31BA-BA79-1AD54C3416F7}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPFormServer", "HTTPFormServer\HTTPFormServer_vs140.vcxproj", "{19B162EB-DDAA-37BA-AE93-7FDED89274DE}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "httpget", "httpget\httpget_vs140.vcxproj", "{5A299876-BF4E-37B9-922D-4E6FC1FA9520}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPLoadTest", "HTTPLoadTest\HTTPLoadTest_vs140.vcxproj", "{A140D236-D64B-370A-A7E7-3000725D9869}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPTimeServer", "HTTPTimeServer\HTTPTimeServer_vs140.vcxproj", "{18A0143A-444A-38E3-838C-1ACFBE4EE18C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mail", "Mail\Mail_vs140.vcxproj", "{BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ping", "Ping\Ping_vs140.vcxproj", "{154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TimeServer", "TimeServer\TimeServer_vs140.vcxproj", "{59EDFD20-9968-30F7-9532-44C08DA58C6E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebSocketServer", "WebSocketServer\WebSocketServer_vs140.vcxproj", "{0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SMTPLogger", "SMTPLogger\SMTPLogger_vs140.vcxproj", "{83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ifconfig", "ifconfig\ifconfig_vs140.vcxproj", "{BD3A18C6-22B6-3B10-913B-7A84D1845CA3}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|Win32.Build.0 = release_shared|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|x64.Build.0 = debug_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|x64.ActiveCfg = release_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|x64.Build.0 = release_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|x64.Deploy.0 = release_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|x64.Build.0 = release_static_md|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Build.0 = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Build.0 = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.ActiveCfg = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Build.0 = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Deploy.0 = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Build.0 = release_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|Win32.Build.0 = release_shared|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|x64.Build.0 = debug_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|x64.ActiveCfg = release_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|x64.Build.0 = release_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|x64.Deploy.0 = release_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|x64.Build.0 = release_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|Win32.Build.0 = release_shared|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|x64.Build.0 = debug_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|x64.ActiveCfg = release_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|x64.Build.0 = release_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|x64.Deploy.0 = release_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|x64.Build.0 = release_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|Win32.Build.0 = release_shared|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|x64.Build.0 = debug_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|x64.ActiveCfg = release_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|x64.Build.0 = release_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|x64.Deploy.0 = release_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|x64.Build.0 = release_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|Win32.Build.0 = release_shared|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|x64.Build.0 = debug_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|x64.ActiveCfg = release_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|x64.Build.0 = release_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|x64.Deploy.0 = release_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|x64.Build.0 = release_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Build.0 = release_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Build.0 = debug_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.ActiveCfg = release_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Build.0 = release_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Deploy.0 = release_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Build.0 = release_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Build.0 = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Build.0 = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.ActiveCfg = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Build.0 = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Deploy.0 = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Build.0 = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|Win32.Build.0 = release_shared|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|x64.Build.0 = debug_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|x64.ActiveCfg = release_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|x64.Build.0 = release_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|x64.Deploy.0 = release_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|x64.Build.0 = release_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.Build.0 = release_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.Build.0 = debug_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.ActiveCfg = release_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.Build.0 = release_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.Deploy.0 = release_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|x64.Build.0 = release_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|Win32.Build.0 = release_shared|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|x64.Build.0 = debug_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|x64.ActiveCfg = release_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|x64.Build.0 = release_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|x64.Deploy.0 = release_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|x64.Build.0 = release_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|Win32.Build.0 = release_shared|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|x64.Build.0 = debug_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|x64.ActiveCfg = release_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|x64.Build.0 = release_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|x64.Deploy.0 = release_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|x64.Build.0 = release_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|Win32.Build.0 = release_shared|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|x64.Build.0 = debug_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|x64.ActiveCfg = release_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|x64.Build.0 = release_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|x64.Deploy.0 = release_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|x64.Build.0 = release_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Net/samples/samples_vs150.sln b/Net/samples/samples_vs150.sln deleted file mode 100644 index f973463ae..000000000 --- a/Net/samples/samples_vs150.sln +++ /dev/null @@ -1,517 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dict", "dict\dict_vs150.vcxproj", "{90F24341-F59F-385F-A8D6-66AB377FF033}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_vs150.vcxproj", "{D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EchoServer", "EchoServer\EchoServer_vs150.vcxproj", "{5074CE3E-05F5-31BA-BA79-1AD54C3416F7}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPFormServer", "HTTPFormServer\HTTPFormServer_vs150.vcxproj", "{19B162EB-DDAA-37BA-AE93-7FDED89274DE}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "httpget", "httpget\httpget_vs150.vcxproj", "{5A299876-BF4E-37B9-922D-4E6FC1FA9520}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPLoadTest", "HTTPLoadTest\HTTPLoadTest_vs150.vcxproj", "{A140D236-D64B-370A-A7E7-3000725D9869}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPTimeServer", "HTTPTimeServer\HTTPTimeServer_vs150.vcxproj", "{18A0143A-444A-38E3-838C-1ACFBE4EE18C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mail", "Mail\Mail_vs150.vcxproj", "{BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Ping", "Ping\Ping_vs150.vcxproj", "{154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TimeServer", "TimeServer\TimeServer_vs150.vcxproj", "{59EDFD20-9968-30F7-9532-44C08DA58C6E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebSocketServer", "WebSocketServer\WebSocketServer_vs150.vcxproj", "{0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SMTPLogger", "SMTPLogger\SMTPLogger_vs150.vcxproj", "{83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ifconfig", "ifconfig\ifconfig_vs150.vcxproj", "{BD3A18C6-22B6-3B10-913B-7A84D1845CA3}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|Win32.Build.0 = release_shared|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|x64.Build.0 = debug_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|x64.ActiveCfg = release_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|x64.Build.0 = release_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|x64.Deploy.0 = release_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|x64.Build.0 = release_static_md|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Build.0 = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Build.0 = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.ActiveCfg = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Build.0 = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Deploy.0 = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Build.0 = release_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|Win32.Build.0 = release_shared|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|x64.Build.0 = debug_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|x64.ActiveCfg = release_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|x64.Build.0 = release_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|x64.Deploy.0 = release_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|x64.Build.0 = release_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|Win32.Build.0 = release_shared|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|x64.Build.0 = debug_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|x64.ActiveCfg = release_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|x64.Build.0 = release_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|x64.Deploy.0 = release_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|x64.Build.0 = release_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|Win32.Build.0 = release_shared|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|x64.Build.0 = debug_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|x64.ActiveCfg = release_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|x64.Build.0 = release_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|x64.Deploy.0 = release_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|x64.Build.0 = release_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|Win32.Build.0 = release_shared|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|x64.Build.0 = debug_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|x64.ActiveCfg = release_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|x64.Build.0 = release_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|x64.Deploy.0 = release_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|x64.Build.0 = release_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Build.0 = release_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Build.0 = debug_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.ActiveCfg = release_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Build.0 = release_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Deploy.0 = release_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Build.0 = release_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Build.0 = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Build.0 = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.ActiveCfg = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Build.0 = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Deploy.0 = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Build.0 = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|Win32.Build.0 = release_shared|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|x64.Build.0 = debug_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|x64.ActiveCfg = release_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|x64.Build.0 = release_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|x64.Deploy.0 = release_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|x64.Build.0 = release_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.Build.0 = release_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.Build.0 = debug_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.ActiveCfg = release_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.Build.0 = release_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.Deploy.0 = release_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|x64.Build.0 = release_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|Win32.Build.0 = release_shared|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|x64.Build.0 = debug_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|x64.ActiveCfg = release_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|x64.Build.0 = release_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|x64.Deploy.0 = release_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|x64.Build.0 = release_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|Win32.Build.0 = release_shared|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|x64.Build.0 = debug_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|x64.ActiveCfg = release_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|x64.Build.0 = release_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|x64.Deploy.0 = release_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|x64.Build.0 = release_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|Win32.Build.0 = release_shared|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|x64.Build.0 = debug_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|x64.ActiveCfg = release_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|x64.Build.0 = release_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|x64.Deploy.0 = release_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|x64.Build.0 = release_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Net/samples/tcpserver/tcpserver_vs140.vcxproj b/Net/samples/tcpserver/tcpserver_vs140.vcxproj deleted file mode 100644 index d026c4894..000000000 --- a/Net/samples/tcpserver/tcpserver_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - tcpserver - {62C6ABC1-F799-3071-A78E-532630841583} - tcpserver - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - tcpserverd - tcpserverd - tcpserverd - tcpserver - tcpserver - tcpserver - tcpserverd - tcpserverd - tcpserverd - tcpserver - tcpserver - tcpserver - - - bin\ - obj\tcpserver\$(Configuration)\ - true - - - bin\ - obj\tcpserver\$(Configuration)\ - false - - - bin\static_mt\ - obj\tcpserver\$(Configuration)\ - true - - - bin\static_mt\ - obj\tcpserver\$(Configuration)\ - false - - - bin\static_md\ - obj\tcpserver\$(Configuration)\ - true - - - bin\static_md\ - obj\tcpserver\$(Configuration)\ - false - - - bin64\ - obj64\tcpserver\$(Configuration)\ - true - - - bin64\ - obj64\tcpserver\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\tcpserver\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\tcpserver\$(Configuration)\ - false - - - bin64\static_md\ - obj64\tcpserver\$(Configuration)\ - true - - - bin64\static_md\ - obj64\tcpserver\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\tcpserverd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\tcpserverd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\tcpserver.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\tcpserverd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\tcpserverd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\tcpserver.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\tcpserverd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\tcpserverd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\tcpserver.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\tcpserverd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\tcpserverd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\tcpserver.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\tcpserverd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\tcpserverd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\tcpserver.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\tcpserverd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\tcpserverd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\tcpserver.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Net/samples/tcpserver/tcpserver_vs140.vcxproj.filters b/Net/samples/tcpserver/tcpserver_vs140.vcxproj.filters deleted file mode 100644 index e12365698..000000000 --- a/Net/samples/tcpserver/tcpserver_vs140.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {16b7d269-2f45-4f9d-8ec2-502eb37743f1} - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/samples/tcpserver/tcpserver_vs150.vcxproj b/Net/samples/tcpserver/tcpserver_vs150.vcxproj deleted file mode 100644 index 7a62b4fad..000000000 --- a/Net/samples/tcpserver/tcpserver_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - tcpserver - {62C6ABC1-F799-3071-A78E-532630841583} - tcpserver - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - tcpserverd - tcpserverd - tcpserverd - tcpserver - tcpserver - tcpserver - tcpserverd - tcpserverd - tcpserverd - tcpserver - tcpserver - tcpserver - - - bin\ - obj\tcpserver\$(Configuration)\ - true - - - bin\ - obj\tcpserver\$(Configuration)\ - false - - - bin\static_mt\ - obj\tcpserver\$(Configuration)\ - true - - - bin\static_mt\ - obj\tcpserver\$(Configuration)\ - false - - - bin\static_md\ - obj\tcpserver\$(Configuration)\ - true - - - bin\static_md\ - obj\tcpserver\$(Configuration)\ - false - - - bin64\ - obj64\tcpserver\$(Configuration)\ - true - - - bin64\ - obj64\tcpserver\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\tcpserver\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\tcpserver\$(Configuration)\ - false - - - bin64\static_md\ - obj64\tcpserver\$(Configuration)\ - true - - - bin64\static_md\ - obj64\tcpserver\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\tcpserverd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\tcpserverd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\tcpserver.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\tcpserverd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\tcpserverd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\tcpserver.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\tcpserverd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\tcpserverd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\tcpserver.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\tcpserverd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\tcpserverd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\tcpserver.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\tcpserverd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\tcpserverd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\tcpserver.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\tcpserverd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\tcpserverd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\tcpserver.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Net/samples/tcpserver/tcpserver_vs150.vcxproj.filters b/Net/samples/tcpserver/tcpserver_vs150.vcxproj.filters deleted file mode 100644 index 327d4acb0..000000000 --- a/Net/samples/tcpserver/tcpserver_vs150.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {c8abbad8-45fb-4fb9-91f0-7c28b9bbcfba} - - - - - Source Files - - - \ No newline at end of file diff --git a/Net/testsuite/TestSuite_vs140.vcxproj b/Net/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index 3c7b3300c..000000000 --- a/Net/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,865 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/Net/testsuite/TestSuite_vs140.vcxproj.filters b/Net/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index 5d5fb45db..000000000 --- a/Net/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,564 +0,0 @@ - - - - - {10d79a59-53e7-4f2e-8c17-58bffd232b19} - - - {1ae79375-d5f7-4e0c-9b91-31b599f44ed2} - - - {637e5f60-f066-43b7-9c99-a71a9a13013a} - - - {ebb26bb2-8967-4d3e-9bc9-d19b85e30b2f} - - - {a0509f76-2487-4dc7-9a31-c2ed2902efb3} - - - {520b1577-6e20-45be-8d56-9c821d6df932} - - - {73e09bc0-198e-4386-a1f5-02060b639061} - - - {d210b873-fd08-41e6-bbf5-6d0ee97ca185} - - - {08656c9e-8d3a-4cb5-ad6a-9b76e69751c1} - - - {35ff7e88-2b0d-45e5-9c23-46945ca67017} - - - {58582783-52fb-472a-b3f3-d88f25c5d2f1} - - - {bf016280-dbce-4c75-878c-b26ac026f805} - - - {7bc05d55-e2a5-41fe-a618-084550bd44bf} - - - {2f13e243-b0a0-42a9-a30b-e33946d09de4} - - - {aa652a63-0923-435f-9303-89cd1fc82649} - - - {c14d5b67-6e7f-4020-86bf-0428ee853f2d} - - - {ca0af04d-9279-409f-8051-0af1e880ab36} - - - {fb7a2aec-91cb-4848-a3ee-ff6a662821de} - - - {8a3f3393-9f13-4d6e-9820-8541b0436dc7} - - - {48e166a8-bf3e-4e3f-af59-4fb3d62f95ec} - - - {4a5fa0be-bae8-47ee-ac22-0aca5ea35f53} - - - {7753331c-d847-4ea8-a6c1-7a4b11f5d9d5} - - - {5653f14b-a684-449a-a282-47e7e48fc291} - - - {a337a1e0-cb0b-4cac-aaf0-e1c24b3e8b3c} - - - {51dc8670-d9cc-4d85-80d6-cfb2c34fd26a} - - - {7672744f-cc12-4ded-aab5-37cb8f44fe09} - - - {f45069b0-7836-494c-bfa1-5f7b817c6a6d} - - - {f532537e-9dd5-4cb1-9d35-44d18d3dc5a9} - - - {9ab380d8-6a72-4329-aef2-f0cc713afb78} - - - {f0e12ebe-2696-4a5a-aabd-fda28e828a8c} - - - {fbc5202f-53fa-4bf7-a8f7-e7fcb55cff02} - - - {c2a3a976-c9cb-4488-b427-abc1fd4c747a} - - - {ae78328c-62a4-4fcb-90aa-99e4c12991ca} - - - {a022a0b7-dbc0-4e24-9f13-10a71bff35d7} - - - {e7b90835-9dce-40c4-ae06-075b3fab2f84} - - - {1ae40862-3077-4de4-a32c-1eb713212f91} - - - {a0f823a1-07bc-45e0-b3d0-11e0f6162a1f} - - - {6a8842cf-2d5b-4885-9ea3-5276bf18b40e} - - - {5e9bbc8e-8d01-4a57-9054-a20689fdb5f0} - - - {bf71b144-1e43-4b83-99e1-556b60df3834} - - - {0c000f4e-a9b7-4d20-890b-1a799119d78f} - - - {ba88cbb4-ab01-4cf6-a56e-53357cea9b69} - - - {a9f87f45-9b6e-408c-8a3f-1ef70deb2a09} - - - {5c259ee2-6128-478a-bbaa-9fd49c4703b1} - - - {5beda078-0146-4e4f-ab21-8d60cf1fc672} - - - {efbcaa3b-63b7-4a79-863e-84a7b47fc0b4} - - - {d69a9ba4-1a73-496e-98c9-23fe7c8e9538} - - - {0544ba82-8c45-4a3d-bc30-8ea94874c914} - - - {a2a47c97-a5e1-4094-ba31-dd06be3b079c} - - - {e0816256-6232-4dc7-a569-9391474c01ae} - - - {920b448d-16cc-48bb-96ee-749b1327b593} - - - {b88aee14-a737-4711-8fc1-31bb89e5bdfe} - - - {4ea1c142-bf59-4d4f-b567-5ca835274c28} - - - {e48b6c74-bfb0-4d35-a2bf-cb7fb942efae} - - - {0f07977b-8792-45fd-b7a2-c2a67ed822c0} - - - {ccaf5ca6-a6c8-472a-aae0-a0fafcb77b4c} - - - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - _Suite\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - TCPServer\Header Files - - - TCPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTML\Header Files - - - HTML\Header Files - - - HTTPClient\Header Files - - - HTTPClient\Header Files - - - HTTPClient\Header Files - - - FTPClient\Header Files - - - FTPClient\Header Files - - - FTPClient\Header Files - - - Reactor\Header Files - - - Reactor\Header Files - - - Mail\Header Files - - - Mail\Header Files - - - Mail\Header Files - - - Mail\Header Files - - - Mail\Header Files - - - ICMP\Header Files - - - ICMP\Header Files - - - ICMP\Header Files - - - NTP\Header Files - - - NTP\Header Files - - - Logging\Header Files - - - WebSocket\Header Files - - - WebSocket\Header Files - - - OAuth\Header Files - - - OAuth\Header Files - - - OAuth\Header Files - - - UDP\Header Files - - - UDP\Header Files - - - - - NetCore\Source Files - - - NetCore\Source Files - - - NetCore\Source Files - - - NetCore\Source Files - - - NetCore\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - TCPServer\Source Files - - - TCPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTML\Source Files - - - HTML\Source Files - - - HTTPClient\Source Files - - - HTTPClient\Source Files - - - HTTPClient\Source Files - - - FTPClient\Source Files - - - FTPClient\Source Files - - - FTPClient\Source Files - - - Reactor\Source Files - - - Reactor\Source Files - - - Mail\Source Files - - - Mail\Source Files - - - Mail\Source Files - - - Mail\Source Files - - - Mail\Source Files - - - ICMP\Source Files - - - ICMP\Source Files - - - ICMP\Source Files - - - NTP\Source Files - - - NTP\Source Files - - - Logging\Source Files - - - WebSocket\Source Files - - - WebSocket\Source Files - - - OAuth\Source Files - - - OAuth\Source Files - - - OAuth\Source Files - - - UDP\Source Files - - - UDP\Source Files - - - \ No newline at end of file diff --git a/Net/testsuite/TestSuite_vs150.vcxproj b/Net/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index c4fe24733..000000000 --- a/Net/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,730 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {D5EFBF27-B934-4B8D-8AE5-6EC00374819C} - TestSuite - Win32Proj - - - - Application - v142 - MultiByte - - - Application - v142 - MultiByte - - - Application - v142 - MultiByte - - - Application - v142 - MultiByte - - - Application - v142 - MultiByte - - - Application - v142 - MultiByte - - - Application - v142 - MultiByte - - - Application - v142 - MultiByte - - - Application - v142 - MultiByte - - - Application - v142 - MultiByte - - - Application - v141 - MultiByte - - - Application - v141 - MultiByte - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>16.0.32602.291 - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - $(ProjectName)d - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - /Zc:__cplusplus %(AdditionalOptions) - - - CppUnitd.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - /Zc:__cplusplus %(AdditionalOptions) - - - CppUnit.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - /Zc:__cplusplus %(AdditionalOptions) - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - /Zc:__cplusplus %(AdditionalOptions) - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - /Zc:__cplusplus %(AdditionalOptions) - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - /Zc:__cplusplus %(AdditionalOptions) - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - /Zc:__cplusplus %(AdditionalOptions) - - - CppUnitd.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - /Zc:__cplusplus %(AdditionalOptions) - - - CppUnit.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - /Zc:__cplusplus %(AdditionalOptions) - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - /Zc:__cplusplus %(AdditionalOptions) - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - /Zc:__cplusplus %(AdditionalOptions) - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - /Zc:__cplusplus %(AdditionalOptions) - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Net/testsuite/TestSuite_vs150.vcxproj.filters b/Net/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index ca59260d4..000000000 --- a/Net/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,576 +0,0 @@ - - - - - {96f14e15-814c-4289-abea-e829b3d3b60d} - - - {c06a4c37-b293-43eb-bb8b-14816b1082c2} - - - {4a3b9db1-16f4-4d13-8157-3cc3a7a7d580} - - - {b2999ec8-cd74-461d-a1a2-35d796e00578} - - - {4dc23a9a-a4cd-4b30-8b66-8bcef117e052} - - - {39a278fe-fd8e-49e6-a785-4adb054f80e4} - - - {93cdb6e9-2604-44dc-8fe3-5a5eb24851a0} - - - {7ee54e59-a03a-4da5-a09f-54e6a81772bd} - - - {0c2bcd77-b533-4f82-8dd4-e3eeebb6d021} - - - {7ec5729e-cca0-43ca-88c2-9a3d09fcda02} - - - {a9adab65-db3e-4bc2-89f2-ff794b18a9ad} - - - {4023275d-3429-416e-948e-def4f98a6160} - - - {569d9a23-832d-47a0-a5cd-838612de62a2} - - - {d2b8533c-1aaa-49c0-88b8-d847ecf4a146} - - - {f9fb1f18-9c37-43ff-99db-436ee94e38d0} - - - {3208329c-2707-493f-b750-4940b78cb78a} - - - {659ed528-6cf1-4444-92ef-23aa0bbf675d} - - - {30c0386a-45af-4223-b822-1cc9d695b35b} - - - {979d2fc8-0eca-4b74-b898-d8f79d88a19d} - - - {bb1a0294-9b8f-4107-8d4a-4241e65e7418} - - - {e9a5d533-e965-4745-b51e-aafa331b5b16} - - - {6792084c-89e0-4168-84a2-d50879660267} - - - {6771c8ef-5970-48d0-b5ef-d20a4af9c7a0} - - - {d439ba84-6278-4c1c-b5c2-b09d6a143391} - - - {0d42a251-1f30-4b56-ada1-698f6d3b8732} - - - {f42f60bb-c2d7-4116-827c-fa13562d7ecc} - - - {6d42fb23-de81-499a-a9d4-0d4b1fda2130} - - - {d4ba9f84-b833-41d8-8738-25a4d5c762fa} - - - {73815ea0-843e-45ae-8fcb-8c5d5cb43def} - - - {e69138c0-5256-48f5-8245-667ed2074aee} - - - {de7024c9-967f-4548-acc9-aa9a0d4a2233} - - - {4662b1a8-f31e-49ac-86a2-43ff6f18c4ee} - - - {f5ee2a9b-28fd-4f0d-a470-b56c93817af6} - - - {be916e59-b8a8-49d5-a1d9-fe4ec09b557c} - - - {6d061e4a-a7e9-4fb8-9dcc-22c40d170167} - - - {5bc87c88-b8a1-43b9-8872-00db48dbe766} - - - {28c693e8-b038-4ae0-bb98-9d8c164bcefc} - - - {9d0c793e-4e60-4970-adb4-5aebbd9e9323} - - - {e83b0755-7b3a-40bc-9a78-de68d7f7c125} - - - {0e507ca9-1538-4170-bfe5-1f09bb5b2bec} - - - {2717e923-8f4c-4d2b-8e4f-81dca96801c6} - - - {2f1e77d0-cde4-4084-baf9-84a11226b874} - - - {667dba9d-a815-4a2e-8c69-6d59ff02fee7} - - - {1e8006ae-8f33-40c0-842b-ba5870b2d59f} - - - {6d54692c-5892-4f9a-abae-070158e64e35} - - - {4cace072-1c95-4d12-9691-301e4f9c809d} - - - {95863a72-6780-403c-b324-8ecb6a7f77a8} - - - {732e449c-3404-4b30-902c-e93c5d70c4d7} - - - {667f145c-7e55-4ea6-97ad-ac93604789ab} - - - {4924cbab-95da-462a-a689-748b407b293b} - - - {90cd5600-34dd-4d3d-aadf-e2f459418a70} - - - {078f2145-c2c7-42dd-9922-671b2ef2f89e} - - - {5c69730c-de7f-48b9-b4fb-4fa75f547eaa} - - - {c7d3eb75-2cf8-46e7-bc76-b0d62aed0b10} - - - {ed08e706-78fa-435b-863a-02177dcb5e67} - - - {1f474979-aae7-49ed-8ee3-8182a45fc581} - - - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - NetCore\Header Files - - - _Suite\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Sockets\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - Messages\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - HTTP\Header Files - - - TCPServer\Header Files - - - TCPServer\Header Files - - - HTTPServer\Header Files - - - HTTPServer\Header Files - - - HTML\Header Files - - - HTML\Header Files - - - HTTPClient\Header Files - - - HTTPClient\Header Files - - - HTTPClient\Header Files - - - FTPClient\Header Files - - - FTPClient\Header Files - - - FTPClient\Header Files - - - Reactor\Header Files - - - Reactor\Header Files - - - Reactor\Header Files - - - Reactor\Header Files - - - Mail\Header Files - - - Mail\Header Files - - - Mail\Header Files - - - Mail\Header Files - - - Mail\Header Files - - - ICMP\Header Files - - - ICMP\Header Files - - - ICMP\Header Files - - - NTP\Header Files - - - NTP\Header Files - - - Logging\Header Files - - - WebSocket\Header Files - - - WebSocket\Header Files - - - OAuth\Header Files - - - OAuth\Header Files - - - OAuth\Header Files - - - UDP\Header Files - - - UDP\Header Files - - - - - NetCore\Source Files - - - NetCore\Source Files - - - NetCore\Source Files - - - NetCore\Source Files - - - NetCore\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Sockets\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - Messages\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - HTTP\Source Files - - - TCPServer\Source Files - - - TCPServer\Source Files - - - HTTPServer\Source Files - - - HTTPServer\Source Files - - - HTML\Source Files - - - HTML\Source Files - - - HTTPClient\Source Files - - - HTTPClient\Source Files - - - HTTPClient\Source Files - - - FTPClient\Source Files - - - FTPClient\Source Files - - - FTPClient\Source Files - - - Reactor\Source Files - - - Reactor\Source Files - - - Reactor\Source Files - - - Reactor\Source Files - - - Mail\Source Files - - - Mail\Source Files - - - Mail\Source Files - - - Mail\Source Files - - - Mail\Source Files - - - ICMP\Source Files - - - ICMP\Source Files - - - ICMP\Source Files - - - NTP\Source Files - - - NTP\Source Files - - - Logging\Source Files - - - WebSocket\Source Files - - - WebSocket\Source Files - - - OAuth\Source Files - - - OAuth\Source Files - - - OAuth\Source Files - - - UDP\Source Files - - - UDP\Source Files - - - \ No newline at end of file diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs140.sln b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs140.sln deleted file mode 100644 index 7721b0a19..000000000 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs140.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetSSL_OpenSSL", "NetSSL_OpenSSL_vs140.vcxproj", "{5AECC55E-A469-11DA-8DA6-005056C00008}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{B2B88092-5BCE-4AC0-941E-88167138B4A7}" - ProjectSection(ProjectDependencies) = postProject - {5AECC55E-A469-11DA-8DA6-005056C00008} = {5AECC55E-A469-11DA-8DA6-005056C00008} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared|Win32.Build.0 = release_shared|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared|x64.Build.0 = debug_shared|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared|x64.ActiveCfg = release_shared|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared|x64.Build.0 = release_shared|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared|x64.Deploy.0 = release_shared|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_md|x64.Build.0 = release_static_md|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_shared|Win32.Build.0 = release_shared|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_shared|x64.Build.0 = debug_shared|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_shared|x64.ActiveCfg = release_shared|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_shared|x64.Build.0 = release_shared|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_shared|x64.Deploy.0 = release_shared|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_md|x64.Build.0 = release_static_md|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs140.vcxproj b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs140.vcxproj deleted file mode 100644 index 21a8ccfe5..000000000 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs140.vcxproj +++ /dev/null @@ -1,683 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - NetSSL_OpenSSL - {5AECC55E-A469-11DA-8DA6-005056C00008} - NetSSL_OpenSSL - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoNetSSLd - PocoNetSSLmdd - PocoNetSSLmtd - PocoNetSSL - PocoNetSSLmd - PocoNetSSLmt - PocoNetSSL64d - PocoNetSSLmdd - PocoNetSSLmtd - PocoNetSSL64 - PocoNetSSLmd - PocoNetSSLmt - - - ..\bin\ - obj\NetSSL_OpenSSL\$(Configuration)\ - true - - - ..\bin\ - obj\NetSSL_OpenSSL\$(Configuration)\ - false - - - ..\lib\ - obj\NetSSL_OpenSSL\$(Configuration)\ - - - ..\lib\ - obj\NetSSL_OpenSSL\$(Configuration)\ - - - ..\lib\ - obj\NetSSL_OpenSSL\$(Configuration)\ - - - ..\lib\ - obj\NetSSL_OpenSSL\$(Configuration)\ - - - ..\bin64\ - obj64\NetSSL_OpenSSL\$(Configuration)\ - true - - - ..\bin64\ - obj64\NetSSL_OpenSSL\$(Configuration)\ - false - - - ..\lib64\ - obj64\NetSSL_OpenSSL\$(Configuration)\ - - - ..\lib64\ - obj64\NetSSL_OpenSSL\$(Configuration)\ - - - ..\lib64\ - obj64\NetSSL_OpenSSL\$(Configuration)\ - - - ..\lib64\ - obj64\NetSSL_OpenSSL\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;NetSSL_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoNetSSLd.dll - true - true - ..\bin\PocoNetSSLd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoNetSSLd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;NetSSL_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoNetSSL.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoNetSSL.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoNetSSLmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoNetSSLmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoNetSSLmt.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoNetSSLmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoNetSSLmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoNetSSLmd.pdb - Level3 - - Default - true - - - Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\lib\PocoNetSSLmd.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;NetSSL_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoNetSSL64d.dll - true - true - ..\bin64\PocoNetSSL64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoNetSSLd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;NetSSL_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoNetSSL64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoNetSSL.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoNetSSLmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoNetSSLmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoNetSSLmt.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoNetSSLmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoNetSSLmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoNetSSLmd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs140.vcxproj.filters b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs140.vcxproj.filters deleted file mode 100644 index ad05a910a..000000000 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs140.vcxproj.filters +++ /dev/null @@ -1,234 +0,0 @@ - - - - - {96483e9a-1b50-4158-a142-f5b002b7cfb7} - - - {30f78015-0f34-4e3c-8cfa-3891e6fff770} - - - {4b30214a-17d0-4b49-802c-0adb22df12ec} - - - {82cc816f-cb04-4308-af59-48ad28321e0f} - - - {20e8d97d-860e-43f0-a299-2c7cb8419b27} - - - {ead13b96-dcc7-40b3-8272-923482a1b7a6} - - - {aabe8d15-cddb-468b-864f-d6766aaaaeba} - - - {8d9c4e00-5f70-433b-90fe-0970c0af3f2b} - - - {c45ddcee-359b-484d-b332-a50c0e142430} - - - {7ebf84f2-13a4-495e-bc10-b2b8399f4860} - - - {3ee151c2-5f61-4502-9bd3-445899b3368c} - - - {f293d549-4924-4c8f-9c6d-1f3e3a3b123a} - - - {3f647633-d450-42d5-85e4-925aed618fa5} - - - {b26ac41f-f190-447d-be3b-a9b84605c3b7} - - - {d3e245cd-0c38-4824-ad2e-a7bf85f63e0f} - - - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - HTTPSClient\Header Files - - - HTTPSClient\Header Files - - - HTTPSClient\Header Files - - - SSLSockets\Header Files - - - SSLSockets\Header Files - - - SSLSockets\Header Files - - - SSLSockets\Header Files - - - SSLSockets\Header Files - - - Mail\Header Files - - - FTPSClient\Header Files - - - FTPSClient\Header Files - - - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - HTTPSClient\Source Files - - - HTTPSClient\Source Files - - - HTTPSClient\Source Files - - - SSLSockets\Source Files - - - SSLSockets\Source Files - - - SSLSockets\Source Files - - - SSLSockets\Source Files - - - SSLSockets\Source Files - - - Mail\Source Files - - - FTPSClient\Source Files - - - FTPSClient\Source Files - - - - - - \ No newline at end of file diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs150.sln b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs150.sln deleted file mode 100644 index 23c6f0174..000000000 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs150.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetSSL_OpenSSL", "NetSSL_OpenSSL_vs150.vcxproj", "{5AECC55E-A469-11DA-8DA6-005056C00008}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{B2B88092-5BCE-4AC0-941E-88167138B4A7}" - ProjectSection(ProjectDependencies) = postProject - {5AECC55E-A469-11DA-8DA6-005056C00008} = {5AECC55E-A469-11DA-8DA6-005056C00008} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared|Win32.Build.0 = release_shared|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared|x64.Build.0 = debug_shared|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared|x64.ActiveCfg = release_shared|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared|x64.Build.0 = release_shared|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_shared|x64.Deploy.0 = release_shared|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_md|x64.Build.0 = release_static_md|x64 - {5AECC55E-A469-11DA-8DA6-005056C00008}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_shared|Win32.Build.0 = release_shared|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_shared|x64.Build.0 = debug_shared|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_shared|x64.ActiveCfg = release_shared|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_shared|x64.Build.0 = release_shared|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_shared|x64.Deploy.0 = release_shared|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_md|x64.Build.0 = release_static_md|x64 - {B2B88092-5BCE-4AC0-941E-88167138B4A7}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs150.vcxproj b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs150.vcxproj deleted file mode 100644 index 221585a81..000000000 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs150.vcxproj +++ /dev/null @@ -1,683 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - NetSSL_OpenSSL - {5AECC55E-A469-11DA-8DA6-005056C00008} - NetSSL_OpenSSL - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PocoNetSSLd - PocoNetSSLmdd - PocoNetSSLmtd - PocoNetSSL - PocoNetSSLmd - PocoNetSSLmt - PocoNetSSL64d - PocoNetSSLmdd - PocoNetSSLmtd - PocoNetSSL64 - PocoNetSSLmd - PocoNetSSLmt - - - ..\bin\ - obj\NetSSL_OpenSSL\$(Configuration)\ - true - - - ..\bin\ - obj\NetSSL_OpenSSL\$(Configuration)\ - false - - - ..\lib\ - obj\NetSSL_OpenSSL\$(Configuration)\ - - - ..\lib\ - obj\NetSSL_OpenSSL\$(Configuration)\ - - - ..\lib\ - obj\NetSSL_OpenSSL\$(Configuration)\ - - - ..\lib\ - obj\NetSSL_OpenSSL\$(Configuration)\ - - - ..\bin64\ - obj64\NetSSL_OpenSSL\$(Configuration)\ - true - - - ..\bin64\ - obj64\NetSSL_OpenSSL\$(Configuration)\ - false - - - ..\lib64\ - obj64\NetSSL_OpenSSL\$(Configuration)\ - - - ..\lib64\ - obj64\NetSSL_OpenSSL\$(Configuration)\ - - - ..\lib64\ - obj64\NetSSL_OpenSSL\$(Configuration)\ - - - ..\lib64\ - obj64\NetSSL_OpenSSL\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;NetSSL_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoNetSSLd.dll - true - true - ..\bin\PocoNetSSLd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoNetSSLd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;NetSSL_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoNetSSL.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoNetSSL.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoNetSSLmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoNetSSLmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoNetSSLmt.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoNetSSLmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoNetSSLmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoNetSSLmd.pdb - Level3 - - Default - true - - - Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\lib\PocoNetSSLmd.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;NetSSL_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoNetSSL64d.dll - true - true - ..\bin64\PocoNetSSL64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoNetSSLd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;NetSSL_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoNetSSL64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoNetSSL.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoNetSSLmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoNetSSLmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoNetSSLmt.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoNetSSLmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoNetSSLmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoNetSSLmd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs150.vcxproj.filters b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs150.vcxproj.filters deleted file mode 100644 index 5273b1752..000000000 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs150.vcxproj.filters +++ /dev/null @@ -1,234 +0,0 @@ - - - - - {c1fe1744-e6d9-4c5c-be8b-5b2347353ab8} - - - {2f2343c8-3c13-49ca-91ed-382baba58367} - - - {6d45d521-67ca-4546-84a5-8b8385c4a1c3} - - - {0ab4e088-578b-4b65-8da4-dd9c33b6a4e9} - - - {6ddc4761-6f7f-45e8-b0cf-0169275534a0} - - - {6816061c-9eb0-4f26-acf0-92a30bf7259b} - - - {5f9ddbfa-da6d-4d68-8da5-a72d253cdcdf} - - - {e1cbafc0-08f6-4e0d-aed0-4fb386f40f0a} - - - {3e5225b0-3762-4b81-80a2-d8d49bdb2f10} - - - {2fd53551-b4f1-44b4-9c1a-3df0edeab5b4} - - - {44b74a3e-b34b-47b9-bcfc-eff9bd98188f} - - - {eee868f5-3208-4572-b2c8-0cd20a4f2729} - - - {8be759e7-a7a4-443d-862b-71de0092bb33} - - - {9a809479-bb66-4ae6-9b51-5e4a5da04e19} - - - {e4f50cad-0f11-4c1f-b2d1-f21c58e67ccd} - - - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - HTTPSClient\Header Files - - - HTTPSClient\Header Files - - - HTTPSClient\Header Files - - - SSLSockets\Header Files - - - SSLSockets\Header Files - - - SSLSockets\Header Files - - - SSLSockets\Header Files - - - SSLSockets\Header Files - - - Mail\Header Files - - - FTPSClient\Header Files - - - FTPSClient\Header Files - - - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - HTTPSClient\Source Files - - - HTTPSClient\Source Files - - - HTTPSClient\Source Files - - - SSLSockets\Source Files - - - SSLSockets\Source Files - - - SSLSockets\Source Files - - - SSLSockets\Source Files - - - SSLSockets\Source Files - - - Mail\Source Files - - - FTPSClient\Source Files - - - FTPSClient\Source Files - - - - - - \ No newline at end of file diff --git a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs140.vcxproj b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs140.vcxproj deleted file mode 100644 index 07bc7fbd1..000000000 --- a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs140.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - HTTPSTimeServer - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9} - HTTPSTimeServer - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - HTTPSTimeServerd - HTTPSTimeServerd - HTTPSTimeServerd - HTTPSTimeServer - HTTPSTimeServer - HTTPSTimeServer - HTTPSTimeServerd - HTTPSTimeServerd - HTTPSTimeServerd - HTTPSTimeServer - HTTPSTimeServer - HTTPSTimeServer - - - bin\ - obj\HTTPSTimeServer\$(Configuration)\ - true - - - bin\ - obj\HTTPSTimeServer\$(Configuration)\ - false - - - bin\static_mt\ - obj\HTTPSTimeServer\$(Configuration)\ - true - - - bin\static_mt\ - obj\HTTPSTimeServer\$(Configuration)\ - false - - - bin\static_md\ - obj\HTTPSTimeServer\$(Configuration)\ - true - - - bin\static_md\ - obj\HTTPSTimeServer\$(Configuration)\ - false - - - bin64\ - obj64\HTTPSTimeServer\$(Configuration)\ - true - - - bin64\ - obj64\HTTPSTimeServer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\HTTPSTimeServer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\HTTPSTimeServer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\HTTPSTimeServer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\HTTPSTimeServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPSTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\HTTPSTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPSTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPSTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\HTTPSTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPSTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPSTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\HTTPSTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPSTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPSTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\HTTPSTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPSTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPSTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\HTTPSTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPSTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPSTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\HTTPSTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPSTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - true - - - - - diff --git a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs140.vcxproj.filters b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs140.vcxproj.filters deleted file mode 100644 index f240a9c4d..000000000 --- a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs140.vcxproj.filters +++ /dev/null @@ -1,21 +0,0 @@ - - - - - {73b08126-8ffb-4f36-98b2-d864f659e484} - - - {dac8d73f-ef8a-4056-97f7-fc7d378f6de3} - - - - - Configuration Files - - - - - Source Files - - - \ No newline at end of file diff --git a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs150.vcxproj b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs150.vcxproj deleted file mode 100644 index f25625a27..000000000 --- a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs150.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - HTTPSTimeServer - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9} - HTTPSTimeServer - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - HTTPSTimeServerd - HTTPSTimeServerd - HTTPSTimeServerd - HTTPSTimeServer - HTTPSTimeServer - HTTPSTimeServer - HTTPSTimeServerd - HTTPSTimeServerd - HTTPSTimeServerd - HTTPSTimeServer - HTTPSTimeServer - HTTPSTimeServer - - - bin\ - obj\HTTPSTimeServer\$(Configuration)\ - true - - - bin\ - obj\HTTPSTimeServer\$(Configuration)\ - false - - - bin\static_mt\ - obj\HTTPSTimeServer\$(Configuration)\ - true - - - bin\static_mt\ - obj\HTTPSTimeServer\$(Configuration)\ - false - - - bin\static_md\ - obj\HTTPSTimeServer\$(Configuration)\ - true - - - bin\static_md\ - obj\HTTPSTimeServer\$(Configuration)\ - false - - - bin64\ - obj64\HTTPSTimeServer\$(Configuration)\ - true - - - bin64\ - obj64\HTTPSTimeServer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\HTTPSTimeServer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\HTTPSTimeServer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\HTTPSTimeServer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\HTTPSTimeServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPSTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\HTTPSTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPSTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPSTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\HTTPSTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPSTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPSTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\HTTPSTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPSTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPSTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\HTTPSTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPSTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPSTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\HTTPSTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPSTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPSTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\HTTPSTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPSTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - true - - - - - diff --git a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs150.vcxproj.filters b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs150.vcxproj.filters deleted file mode 100644 index 81d9d841f..000000000 --- a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs150.vcxproj.filters +++ /dev/null @@ -1,21 +0,0 @@ - - - - - {92e3cb8a-819f-4f46-89df-b6cf8ea70a3f} - - - {6d60812e-db31-44ea-af3b-725d2c398743} - - - - - Configuration Files - - - - - Source Files - - - \ No newline at end of file diff --git a/NetSSL_OpenSSL/samples/Mail/Mail_vs140.vcxproj b/NetSSL_OpenSSL/samples/Mail/Mail_vs140.vcxproj deleted file mode 100644 index 93a643302..000000000 --- a/NetSSL_OpenSSL/samples/Mail/Mail_vs140.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Mail - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA} - Mail - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - Maild - Maild - Maild - Mail - Mail - Mail - Maild - Maild - Maild - Mail - Mail - Mail - - - bin\ - obj\Mail\$(Configuration)\ - true - - - bin\ - obj\Mail\$(Configuration)\ - false - - - bin\static_mt\ - obj\Mail\$(Configuration)\ - true - - - bin\static_mt\ - obj\Mail\$(Configuration)\ - false - - - bin\static_md\ - obj\Mail\$(Configuration)\ - true - - - bin\static_md\ - obj\Mail\$(Configuration)\ - false - - - bin64\ - obj64\Mail\$(Configuration)\ - true - - - bin64\ - obj64\Mail\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Mail\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Mail\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Mail\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Mail\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Maild.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Maild.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Mail.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Maild.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Maild.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Mail.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Maild.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Maild.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Mail.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Maild.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Maild.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Mail.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Maild.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Maild.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Mail.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Maild.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Maild.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Mail.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - - - - diff --git a/NetSSL_OpenSSL/samples/Mail/Mail_vs140.vcxproj.filters b/NetSSL_OpenSSL/samples/Mail/Mail_vs140.vcxproj.filters deleted file mode 100644 index 1c2277f2b..000000000 --- a/NetSSL_OpenSSL/samples/Mail/Mail_vs140.vcxproj.filters +++ /dev/null @@ -1,18 +0,0 @@ - - - - - {69600926-59ef-46a4-9f18-3b8bcad48472} - - - - - Source Files - - - - - Source Files - - - \ No newline at end of file diff --git a/NetSSL_OpenSSL/samples/Mail/Mail_vs150.vcxproj b/NetSSL_OpenSSL/samples/Mail/Mail_vs150.vcxproj deleted file mode 100644 index 06d9182ad..000000000 --- a/NetSSL_OpenSSL/samples/Mail/Mail_vs150.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Mail - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA} - Mail - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - Maild - Maild - Maild - Mail - Mail - Mail - Maild - Maild - Maild - Mail - Mail - Mail - - - bin\ - obj\Mail\$(Configuration)\ - true - - - bin\ - obj\Mail\$(Configuration)\ - false - - - bin\static_mt\ - obj\Mail\$(Configuration)\ - true - - - bin\static_mt\ - obj\Mail\$(Configuration)\ - false - - - bin\static_md\ - obj\Mail\$(Configuration)\ - true - - - bin\static_md\ - obj\Mail\$(Configuration)\ - false - - - bin64\ - obj64\Mail\$(Configuration)\ - true - - - bin64\ - obj64\Mail\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Mail\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Mail\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Mail\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Mail\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Maild.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Maild.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Mail.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Maild.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Maild.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Mail.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Maild.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Maild.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Mail.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Maild.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Maild.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Mail.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Maild.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Maild.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Mail.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Maild.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Maild.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Mail.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - - - - diff --git a/NetSSL_OpenSSL/samples/Mail/Mail_vs150.vcxproj.filters b/NetSSL_OpenSSL/samples/Mail/Mail_vs150.vcxproj.filters deleted file mode 100644 index ba1e39fe0..000000000 --- a/NetSSL_OpenSSL/samples/Mail/Mail_vs150.vcxproj.filters +++ /dev/null @@ -1,18 +0,0 @@ - - - - - {7e8cc551-8ad3-4f42-8f3b-2a66349dd595} - - - - - Source Files - - - - - Source Files - - - \ No newline at end of file diff --git a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs140.vcxproj b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs140.vcxproj deleted file mode 100644 index bd1af3919..000000000 --- a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs140.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - SetSourceIP - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB} - SetSourceIP - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>16.0.32002.118 - SetSourceIPd - SetSourceIPd - SetSourceIPd - SetSourceIP - SetSourceIP - SetSourceIP - SetSourceIPd - SetSourceIPd - SetSourceIPd - SetSourceIP - SetSourceIP - SetSourceIP - - - bin\ - obj\SetSourceIP\$(Configuration)\ - true - - - bin\ - obj\SetSourceIP\$(Configuration)\ - false - - - bin\static_mt\ - obj\SetSourceIP\$(Configuration)\ - true - - - bin\static_mt\ - obj\SetSourceIP\$(Configuration)\ - false - - - bin\static_md\ - obj\SetSourceIP\$(Configuration)\ - true - - - bin\static_md\ - obj\SetSourceIP\$(Configuration)\ - false - - - bin64\ - obj64\SetSourceIP\$(Configuration)\ - true - - - bin64\ - obj64\SetSourceIP\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\SetSourceIP\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\SetSourceIP\$(Configuration)\ - false - - - bin64\static_md\ - obj64\SetSourceIP\$(Configuration)\ - true - - - bin64\static_md\ - obj64\SetSourceIP\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SetSourceIPd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\SetSourceIPd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SetSourceIP.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SetSourceIPd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\SetSourceIPd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SetSourceIP.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SetSourceIPd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\SetSourceIPd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SetSourceIP.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SetSourceIPd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\SetSourceIPd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SetSourceIP.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SetSourceIPd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\SetSourceIPd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SetSourceIP.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SetSourceIPd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\SetSourceIPd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SetSourceIP.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - - - - diff --git a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs140.vcxproj.filters b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs140.vcxproj.filters deleted file mode 100644 index 16f958ce2..000000000 --- a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs140.vcxproj.filters +++ /dev/null @@ -1,18 +0,0 @@ - - - - - {1835e518-7985-4bee-b990-f061dad15ac4} - - - - - Source Files - - - - - Source Files - - - \ No newline at end of file diff --git a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs150.vcxproj b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs150.vcxproj deleted file mode 100644 index 0cecbe669..000000000 --- a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs150.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - SetSourceIP - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB} - SetSourceIP - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>16.0.32002.118 - SetSourceIPd - SetSourceIPd - SetSourceIPd - SetSourceIP - SetSourceIP - SetSourceIP - SetSourceIPd - SetSourceIPd - SetSourceIPd - SetSourceIP - SetSourceIP - SetSourceIP - - - bin\ - obj\SetSourceIP\$(Configuration)\ - true - - - bin\ - obj\SetSourceIP\$(Configuration)\ - false - - - bin\static_mt\ - obj\SetSourceIP\$(Configuration)\ - true - - - bin\static_mt\ - obj\SetSourceIP\$(Configuration)\ - false - - - bin\static_md\ - obj\SetSourceIP\$(Configuration)\ - true - - - bin\static_md\ - obj\SetSourceIP\$(Configuration)\ - false - - - bin64\ - obj64\SetSourceIP\$(Configuration)\ - true - - - bin64\ - obj64\SetSourceIP\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\SetSourceIP\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\SetSourceIP\$(Configuration)\ - false - - - bin64\static_md\ - obj64\SetSourceIP\$(Configuration)\ - true - - - bin64\static_md\ - obj64\SetSourceIP\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SetSourceIPd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\SetSourceIPd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SetSourceIP.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SetSourceIPd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\SetSourceIPd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SetSourceIP.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SetSourceIPd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\SetSourceIPd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SetSourceIP.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SetSourceIPd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\SetSourceIPd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SetSourceIP.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SetSourceIPd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\SetSourceIPd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SetSourceIP.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SetSourceIPd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\SetSourceIPd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SetSourceIP.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - - - - diff --git a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs150.vcxproj.filters b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs150.vcxproj.filters deleted file mode 100644 index 2ac675e3a..000000000 --- a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs150.vcxproj.filters +++ /dev/null @@ -1,18 +0,0 @@ - - - - - {ddc09387-e4cc-4106-9f37-bdf7a7a5ce08} - - - - - Source Files - - - - - Source Files - - - \ No newline at end of file diff --git a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_x64_vs140.vcxproj b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_x64_vs140.vcxproj deleted file mode 100644 index a82457f51..000000000 --- a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_x64_vs140.vcxproj +++ /dev/null @@ -1,314 +0,0 @@ - - - - - debug_shared - x64 - - - debug_static_md - x64 - - - debug_static_mt - x64 - - - release_shared - x64 - - - release_static_md - x64 - - - release_static_mt - x64 - - - - SetSourceIP - {98D14E48-2C8F-4267-B125-02EBE26EABB4} - SetSourceIP - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.23107.0 - SetSourceIPd - SetSourceIPd - SetSourceIPd - SetSourceIP - SetSourceIP - SetSourceIP - - - bin64\ - obj64\SetSourceIP\$(Configuration)\ - true - - - bin64\ - obj64\SetSourceIP\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\SetSourceIP\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\SetSourceIP\$(Configuration)\ - false - - - bin64\static_md\ - obj64\SetSourceIP\$(Configuration)\ - true - - - bin64\static_md\ - obj64\SetSourceIP\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;..\..\..\openssl\build\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SetSourceIPd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\SetSourceIPd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;..\..\..\openssl\build\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SetSourceIP.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;..\..\..\openssl\build\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SetSourceIPd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\SetSourceIPd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;..\..\..\openssl\build\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SetSourceIP.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;..\..\..\openssl\build\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SetSourceIPd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\SetSourceIPd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;..\..\..\openssl\build\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SetSourceIP.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - \ No newline at end of file diff --git a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_x64_vs140.vcxproj.filters b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_x64_vs140.vcxproj.filters deleted file mode 100644 index d2907a5cb..000000000 --- a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_x64_vs140.vcxproj.filters +++ /dev/null @@ -1,21 +0,0 @@ - - - - - {4d0d7331-8ec5-40bd-9ff8-a0050b5951df} - - - {1ee88b42-20bd-4cf9-a48e-fd75c84f690b} - - - - - Configuration Files - - - - - Source Files - - - \ No newline at end of file diff --git a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_x64_vs150.vcxproj b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_x64_vs150.vcxproj deleted file mode 100644 index 99029377c..000000000 --- a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_x64_vs150.vcxproj +++ /dev/null @@ -1,314 +0,0 @@ - - - - - debug_shared - x64 - - - debug_static_md - x64 - - - debug_static_mt - x64 - - - release_shared - x64 - - - release_static_md - x64 - - - release_static_mt - x64 - - - - SetSourceIP - {E0B9B2E7-0E19-4F39-89C5-BB610283BA42} - SetSourceIP - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.23107.0 - SetSourceIPd - SetSourceIPd - SetSourceIPd - SetSourceIP - SetSourceIP - SetSourceIP - - - bin64\ - obj64\SetSourceIP\$(Configuration)\ - true - - - bin64\ - obj64\SetSourceIP\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\SetSourceIP\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\SetSourceIP\$(Configuration)\ - false - - - bin64\static_md\ - obj64\SetSourceIP\$(Configuration)\ - true - - - bin64\static_md\ - obj64\SetSourceIP\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;..\..\..\openssl\build\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SetSourceIPd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\SetSourceIPd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;..\..\..\openssl\build\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SetSourceIP.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;..\..\..\openssl\build\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SetSourceIPd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\SetSourceIPd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;..\..\..\openssl\build\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SetSourceIP.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;..\..\..\openssl\build\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SetSourceIPd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\SetSourceIPd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;..\..\..\openssl\build\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SetSourceIP.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - \ No newline at end of file diff --git a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_x64_vs150.vcxproj.filters b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_x64_vs150.vcxproj.filters deleted file mode 100644 index d2907a5cb..000000000 --- a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_x64_vs150.vcxproj.filters +++ /dev/null @@ -1,21 +0,0 @@ - - - - - {4d0d7331-8ec5-40bd-9ff8-a0050b5951df} - - - {1ee88b42-20bd-4cf9-a48e-fd75c84f690b} - - - - - Configuration Files - - - - - Source Files - - - \ No newline at end of file diff --git a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs140.vcxproj b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs140.vcxproj deleted file mode 100644 index 977a952d8..000000000 --- a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs140.vcxproj +++ /dev/null @@ -1,613 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TwitterClient - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E} - TwitterClient - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TwitterClientd - TwitterClientd - TwitterClientd - TwitterClient - TwitterClient - TwitterClient - TwitterClientd - TwitterClientd - TwitterClientd - TwitterClient - TwitterClient - TwitterClient - - - bin\ - obj\TwitterClient\$(Configuration)\ - true - - - bin\ - obj\TwitterClient\$(Configuration)\ - false - - - bin\static_mt\ - obj\TwitterClient\$(Configuration)\ - true - - - bin\static_mt\ - obj\TwitterClient\$(Configuration)\ - false - - - bin\static_md\ - obj\TwitterClient\$(Configuration)\ - true - - - bin\static_md\ - obj\TwitterClient\$(Configuration)\ - false - - - bin64\ - obj64\TwitterClient\$(Configuration)\ - true - - - bin64\ - obj64\TwitterClient\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TwitterClient\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TwitterClient\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TwitterClient\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TwitterClient\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TwitterClientd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TwitterClientd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TwitterClient.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TwitterClientd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TwitterClientd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TwitterClient.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TwitterClientd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TwitterClientd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TwitterClient.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TwitterClientd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TwitterClientd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TwitterClient.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TwitterClientd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TwitterClientd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TwitterClient.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TwitterClientd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TwitterClientd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TwitterClient.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - true - - - - - - - - diff --git a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs140.vcxproj.filters b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs140.vcxproj.filters deleted file mode 100644 index 5893deaeb..000000000 --- a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs140.vcxproj.filters +++ /dev/null @@ -1,24 +0,0 @@ - - - - - {fa4a62ed-ca6b-466c-aa07-4b65dc0062b4} - - - {8fd1a254-33d9-4a55-a9d5-0aa8de9e96f1} - - - - - Source Files - - - Source Files - - - - - Header Files - - - \ No newline at end of file diff --git a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs150.vcxproj b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs150.vcxproj deleted file mode 100644 index 410a6ce13..000000000 --- a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs150.vcxproj +++ /dev/null @@ -1,613 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TwitterClient - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E} - TwitterClient - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TwitterClientd - TwitterClientd - TwitterClientd - TwitterClient - TwitterClient - TwitterClient - TwitterClientd - TwitterClientd - TwitterClientd - TwitterClient - TwitterClient - TwitterClient - - - bin\ - obj\TwitterClient\$(Configuration)\ - true - - - bin\ - obj\TwitterClient\$(Configuration)\ - false - - - bin\static_mt\ - obj\TwitterClient\$(Configuration)\ - true - - - bin\static_mt\ - obj\TwitterClient\$(Configuration)\ - false - - - bin\static_md\ - obj\TwitterClient\$(Configuration)\ - true - - - bin\static_md\ - obj\TwitterClient\$(Configuration)\ - false - - - bin64\ - obj64\TwitterClient\$(Configuration)\ - true - - - bin64\ - obj64\TwitterClient\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TwitterClient\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TwitterClient\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TwitterClient\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TwitterClient\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TwitterClientd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TwitterClientd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TwitterClient.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TwitterClientd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TwitterClientd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TwitterClient.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TwitterClientd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TwitterClientd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TwitterClient.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TwitterClientd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TwitterClientd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TwitterClient.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TwitterClientd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TwitterClientd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TwitterClient.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TwitterClientd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TwitterClientd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TwitterClient.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - true - - - - - - - - diff --git a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs150.vcxproj.filters b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs150.vcxproj.filters deleted file mode 100644 index fb6376786..000000000 --- a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs150.vcxproj.filters +++ /dev/null @@ -1,24 +0,0 @@ - - - - - {8ff4812e-3e15-4d97-bccc-2bdc7dd53033} - - - {441d35bf-32c2-497e-9a61-60972b036b80} - - - - - Source Files - - - Source Files - - - - - Header Files - - - \ No newline at end of file diff --git a/NetSSL_OpenSSL/samples/download/download_vs140.vcxproj b/NetSSL_OpenSSL/samples/download/download_vs140.vcxproj deleted file mode 100644 index 734a2e597..000000000 --- a/NetSSL_OpenSSL/samples/download/download_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - download - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D} - download - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - downloadd - downloadd - downloadd - download - download - download - downloadd - downloadd - downloadd - download - download - download - - - bin\ - obj\download\$(Configuration)\ - true - - - bin\ - obj\download\$(Configuration)\ - false - - - bin\static_mt\ - obj\download\$(Configuration)\ - true - - - bin\static_mt\ - obj\download\$(Configuration)\ - false - - - bin\static_md\ - obj\download\$(Configuration)\ - true - - - bin\static_md\ - obj\download\$(Configuration)\ - false - - - bin64\ - obj64\download\$(Configuration)\ - true - - - bin64\ - obj64\download\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\download\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\download\$(Configuration)\ - false - - - bin64\static_md\ - obj64\download\$(Configuration)\ - true - - - bin64\static_md\ - obj64\download\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\downloadd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\downloadd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\download.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\downloadd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\downloadd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\download.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\downloadd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\downloadd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\download.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\downloadd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\downloadd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\download.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\downloadd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\downloadd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\download.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\downloadd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\downloadd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\download.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/NetSSL_OpenSSL/samples/download/download_vs140.vcxproj.filters b/NetSSL_OpenSSL/samples/download/download_vs140.vcxproj.filters deleted file mode 100644 index 91976276a..000000000 --- a/NetSSL_OpenSSL/samples/download/download_vs140.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {63b1f006-ea6d-4803-92f7-d2052c01b231} - - - - - Source Files - - - \ No newline at end of file diff --git a/NetSSL_OpenSSL/samples/download/download_vs150.vcxproj b/NetSSL_OpenSSL/samples/download/download_vs150.vcxproj deleted file mode 100644 index 6d868b7b1..000000000 --- a/NetSSL_OpenSSL/samples/download/download_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - download - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D} - download - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - downloadd - downloadd - downloadd - download - download - download - downloadd - downloadd - downloadd - download - download - download - - - bin\ - obj\download\$(Configuration)\ - true - - - bin\ - obj\download\$(Configuration)\ - false - - - bin\static_mt\ - obj\download\$(Configuration)\ - true - - - bin\static_mt\ - obj\download\$(Configuration)\ - false - - - bin\static_md\ - obj\download\$(Configuration)\ - true - - - bin\static_md\ - obj\download\$(Configuration)\ - false - - - bin64\ - obj64\download\$(Configuration)\ - true - - - bin64\ - obj64\download\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\download\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\download\$(Configuration)\ - false - - - bin64\static_md\ - obj64\download\$(Configuration)\ - true - - - bin64\static_md\ - obj64\download\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\downloadd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\downloadd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\download.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\downloadd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\downloadd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\download.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\downloadd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\downloadd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\download.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\downloadd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\downloadd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\download.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\downloadd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\downloadd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\download.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\downloadd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\downloadd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\download.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/NetSSL_OpenSSL/samples/download/download_vs150.vcxproj.filters b/NetSSL_OpenSSL/samples/download/download_vs150.vcxproj.filters deleted file mode 100644 index 0fc505965..000000000 --- a/NetSSL_OpenSSL/samples/download/download_vs150.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {5d00d156-c81a-4d24-8c93-fb6d2077504f} - - - - - Source Files - - - \ No newline at end of file diff --git a/NetSSL_OpenSSL/samples/samples_vs140.sln b/NetSSL_OpenSSL/samples/samples_vs140.sln deleted file mode 100644 index 7525e6ba1..000000000 --- a/NetSSL_OpenSSL/samples/samples_vs140.sln +++ /dev/null @@ -1,213 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_vs140.vcxproj", "{D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPSTimeServer", "HTTPSTimeServer\HTTPSTimeServer_vs140.vcxproj", "{F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mail", "Mail\Mail_vs140.vcxproj", "{BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SetSourceIP", "SetSourceIP\SetSourceIP_vs140.vcxproj", "{1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TwitterClient", "TwitterClient\TwitterClient_vs140.vcxproj", "{CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Build.0 = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Build.0 = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.ActiveCfg = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Build.0 = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Deploy.0 = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Build.0 = release_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.Build.0 = release_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.Build.0 = debug_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.ActiveCfg = release_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.Build.0 = release_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.Deploy.0 = release_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.Build.0 = release_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Build.0 = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Build.0 = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.ActiveCfg = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Build.0 = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Deploy.0 = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Build.0 = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_shared|Win32.Build.0 = release_shared|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_shared|x64.Build.0 = debug_shared|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_shared|x64.ActiveCfg = release_shared|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_shared|x64.Build.0 = release_shared|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_shared|x64.Deploy.0 = release_shared|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_md|x64.Build.0 = release_static_md|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_shared|Win32.Build.0 = release_shared|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_shared|x64.Build.0 = debug_shared|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_shared|x64.ActiveCfg = release_shared|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_shared|x64.Build.0 = release_shared|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_shared|x64.Deploy.0 = release_shared|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_md|x64.Build.0 = release_static_md|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/NetSSL_OpenSSL/samples/samples_vs150.sln b/NetSSL_OpenSSL/samples/samples_vs150.sln deleted file mode 100644 index 57a515375..000000000 --- a/NetSSL_OpenSSL/samples/samples_vs150.sln +++ /dev/null @@ -1,213 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_vs150.vcxproj", "{D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPSTimeServer", "HTTPSTimeServer\HTTPSTimeServer_vs150.vcxproj", "{F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mail", "Mail\Mail_vs150.vcxproj", "{BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SetSourceIP", "SetSourceIP\SetSourceIP_vs150.vcxproj", "{1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TwitterClient", "TwitterClient\TwitterClient_vs150.vcxproj", "{CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Build.0 = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Build.0 = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.ActiveCfg = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Build.0 = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Deploy.0 = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Build.0 = release_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.Build.0 = release_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.Build.0 = debug_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.ActiveCfg = release_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.Build.0 = release_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.Deploy.0 = release_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.Build.0 = release_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Build.0 = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Build.0 = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.ActiveCfg = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Build.0 = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Deploy.0 = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Build.0 = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_shared|Win32.Build.0 = release_shared|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_shared|x64.Build.0 = debug_shared|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_shared|x64.ActiveCfg = release_shared|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_shared|x64.Build.0 = release_shared|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_shared|x64.Deploy.0 = release_shared|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_md|x64.Build.0 = release_static_md|x64 - {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_shared|Win32.Build.0 = release_shared|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_shared|x64.Build.0 = debug_shared|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_shared|x64.ActiveCfg = release_shared|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_shared|x64.Build.0 = release_shared|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_shared|x64.Deploy.0 = release_shared|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_md|x64.Build.0 = release_static_md|x64 - {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/NetSSL_OpenSSL/testsuite/TestSuite_vs140.vcxproj b/NetSSL_OpenSSL/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index a048fbe01..000000000 --- a/NetSSL_OpenSSL/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,665 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {B2B88092-5BCE-4AC0-941E-88167138B4A7} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/NetSSL_OpenSSL/testsuite/TestSuite_vs140.vcxproj.filters b/NetSSL_OpenSSL/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index b9f34b0b7..000000000 --- a/NetSSL_OpenSSL/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,165 +0,0 @@ - - - - - {c6547b89-6860-4137-a672-37e448c436a9} - - - {9922b686-f467-4944-916a-110e95983510} - - - {8411c793-1723-459c-85a2-5f0bfb0ea6d5} - - - {00b22986-6a4f-492f-bbb9-af93419c11e1} - - - {48742a87-7ee8-4cdd-bd1b-190cd49e1bdc} - - - {8a1d69f1-ebbb-4fb5-b4ee-e146a9409434} - - - {96ee466b-e599-47dc-81fa-09af15bd1a11} - - - {aa5e42ab-1db8-4ce6-a05b-898ecafcb072} - - - {3a31ff9a-47ff-4c1d-af72-8585cdffee41} - - - {bd8f9bdf-27d8-41d0-9153-57b60fd78dfb} - - - {0e6c338b-237e-4ba4-a4d8-d7ed4c124c09} - - - {0edcd961-107d-472d-8c2d-572dcb826bea} - - - {ec2d6581-c268-46c0-8d2b-7896cf207f49} - - - {77d8ee17-7b43-45ed-86bc-504ba591a85b} - - - {7722cdda-5ea6-4cd0-9d27-380adefc9355} - - - {d9814a6f-7743-4f28-967d-10b81f33f62c} - - - {e01d1795-a972-4ddb-8a3e-71cd7d4b1a4a} - - - {3e4f5f38-34e9-4107-8b3a-c1dcb36efbae} - - - {cbabee5b-4c50-4a71-844c-56bb47c8c1bd} - - - {d73ed15d-80a5-4323-bb9d-08e98f7594b0} - - - {999c2140-033b-479b-94cd-bec6f46ca093} - - - {8abcb35f-c8da-4c11-adf9-0632d87ecb7b} - - - {f704361d-028c-45d4-9e90-fe87a7471b67} - - - - - HTTPS\Header Files - - - _Suite\Header Files - - - TCPServer\Header Files - - - TCPServer\Header Files - - - HTTPSServer\Header Files - - - HTTPSServer\Header Files - - - HTTPSClient\Header Files - - - HTTPSClient\Header Files - - - HTTPSClient\Header Files - - - WebSocket\Header Files - - - WebSocket\Header Files - - - FTPSClient\Header Files - - - FTPSClient\Header Files - - - FTPSClient\Header Files - - - - - HTTPS\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - TCPServer\Source Files - - - TCPServer\Source Files - - - HTTPSServer\Source Files - - - HTTPSServer\Source Files - - - HTTPSClient\Source Files - - - HTTPSClient\Source Files - - - HTTPSClient\Source Files - - - WebSocket\Source Files - - - WebSocket\Source Files - - - FTPSClient\Source Files - - - FTPSClient\Source Files - - - FTPSClient\Source Files - - - \ No newline at end of file diff --git a/NetSSL_OpenSSL/testsuite/TestSuite_vs150.vcxproj b/NetSSL_OpenSSL/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index bd37f0601..000000000 --- a/NetSSL_OpenSSL/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,665 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {B2B88092-5BCE-4AC0-941E-88167138B4A7} - TestSuite - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;..\..\Crypto\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/NetSSL_OpenSSL/testsuite/TestSuite_vs150.vcxproj.filters b/NetSSL_OpenSSL/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index 33b6ff854..000000000 --- a/NetSSL_OpenSSL/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,165 +0,0 @@ - - - - - {01dc05f6-66a5-4110-9a48-e7c5183ab097} - - - {6d38d9b2-74eb-462a-91ac-acf9984929f2} - - - {761bfbd9-ea4f-4606-a78c-a70578986452} - - - {0dd1e2bd-2f57-4125-a224-67a8a337b4a8} - - - {4010adba-7b7a-43d5-88d6-1eb9fcb6b135} - - - {908da2b2-3f86-4944-b959-5c7ecddad517} - - - {b9247cc0-77eb-4553-9141-ac7894e741a9} - - - {41417e99-1541-4bd3-96da-5d0282ca819d} - - - {e40c88c1-c25c-4db0-a4da-8b719bb05a72} - - - {1dca29f6-e62d-4ef2-93e6-dfbb1fa68bb5} - - - {bbd8ae8f-0f7f-4b2e-b823-6205bef6bdc9} - - - {d0c42b60-d859-4c29-9a2f-d1a2a945de6a} - - - {121d433d-a9e5-4880-86ae-a6dcd38af9bb} - - - {65e44aaa-f448-44d0-8c3f-d64c37f7748c} - - - {f664e993-d511-45ca-91f0-e9c9cb8bf7aa} - - - {27dd46aa-5898-49e4-ad5a-2c1dd7de3e5c} - - - {32a1145e-6233-4cad-9449-ce036097c6c7} - - - {6ca77063-6539-45d2-b1cc-c2e4f03b7d17} - - - {a197d8c6-61b2-4b3b-9146-47719205e6b0} - - - {1f8fc7ac-627e-4f7a-a7b3-0200c93f0e23} - - - {88f10ec6-5da0-4c2a-88ea-16308c0bdff2} - - - {f66ad590-a092-40d6-a48d-18818240730a} - - - {b9cbc9b2-7ed3-40c5-9df5-983ce2b2e7b4} - - - - - HTTPS\Header Files - - - _Suite\Header Files - - - TCPServer\Header Files - - - TCPServer\Header Files - - - HTTPSServer\Header Files - - - HTTPSServer\Header Files - - - HTTPSClient\Header Files - - - HTTPSClient\Header Files - - - HTTPSClient\Header Files - - - WebSocket\Header Files - - - WebSocket\Header Files - - - FTPSClient\Header Files - - - FTPSClient\Header Files - - - FTPSClient\Header Files - - - - - HTTPS\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - TCPServer\Source Files - - - TCPServer\Source Files - - - HTTPSServer\Source Files - - - HTTPSServer\Source Files - - - HTTPSClient\Source Files - - - HTTPSClient\Source Files - - - HTTPSClient\Source Files - - - WebSocket\Source Files - - - WebSocket\Source Files - - - FTPSClient\Source Files - - - FTPSClient\Source Files - - - FTPSClient\Source Files - - - \ No newline at end of file diff --git a/NetSSL_Win/NetSSL_Win_vs140.sln b/NetSSL_Win/NetSSL_Win_vs140.sln deleted file mode 100644 index 278ca8d00..000000000 --- a/NetSSL_Win/NetSSL_Win_vs140.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetSSL_Win", "NetSSL_Win_vs140.vcxproj", "{A097DC74-A5FC-4A0B-804E-B18892426E77}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}" - ProjectSection(ProjectDependencies) = postProject - {A097DC74-A5FC-4A0B-804E-B18892426E77} = {A097DC74-A5FC-4A0B-804E-B18892426E77} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Win32.Build.0 = release_shared|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|x64.Build.0 = debug_shared|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|x64.ActiveCfg = release_shared|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|x64.Build.0 = release_shared|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|x64.Deploy.0 = release_shared|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|x64.Build.0 = release_static_md|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Win32.Build.0 = release_shared|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|x64.Build.0 = debug_shared|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|x64.ActiveCfg = release_shared|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|x64.Build.0 = release_shared|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|x64.Deploy.0 = release_shared|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|x64.Build.0 = release_static_md|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/NetSSL_Win/NetSSL_Win_vs140.vcxproj b/NetSSL_Win/NetSSL_Win_vs140.vcxproj deleted file mode 100644 index 7bee3ba25..000000000 --- a/NetSSL_Win/NetSSL_Win_vs140.vcxproj +++ /dev/null @@ -1,676 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - NetSSL_Win - {A097DC74-A5FC-4A0B-804E-B18892426E77} - NetSSL_Win - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoNetSSLWind - PocoNetSSLWinmdd - PocoNetSSLWinmtd - PocoNetSSLWin - PocoNetSSLWinmd - PocoNetSSLWinmt - PocoNetSSLWin64d - PocoNetSSLWinmdd - PocoNetSSLWinmtd - PocoNetSSLWin64 - PocoNetSSLWinmd - PocoNetSSLWinmt - - - ..\bin\ - obj\NetSSL_Win\$(Configuration)\ - true - - - ..\bin\ - obj\NetSSL_Win\$(Configuration)\ - false - - - ..\lib\ - obj\NetSSL_Win\$(Configuration)\ - - - ..\lib\ - obj\NetSSL_Win\$(Configuration)\ - - - ..\lib\ - obj\NetSSL_Win\$(Configuration)\ - - - ..\lib\ - obj\NetSSL_Win\$(Configuration)\ - - - ..\bin64\ - obj64\NetSSL_Win\$(Configuration)\ - true - - - ..\bin64\ - obj64\NetSSL_Win\$(Configuration)\ - false - - - ..\lib64\ - obj64\NetSSL_Win\$(Configuration)\ - - - ..\lib64\ - obj64\NetSSL_Win\$(Configuration)\ - - - ..\lib64\ - obj64\NetSSL_Win\$(Configuration)\ - - - ..\lib64\ - obj64\NetSSL_Win\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - ..\bin\PocoNetSSLWind.dll - true - true - ..\bin\PocoNetSSLWind.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoNetSSLWind.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - ..\bin\PocoNetSSLWin.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoNetSSLWin.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoNetSSLWinmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoNetSSLWinmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoNetSSLWinmt.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoNetSSLWinmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoNetSSLWinmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoNetSSLWinmd.pdb - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - ..\lib\PocoNetSSLWinmd.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - ..\bin64\PocoNetSSLWin64d.dll - true - true - ..\bin64\PocoNetSSLWin64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoNetSSLWind.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - ..\bin64\PocoNetSSLWin64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoNetSSLWin.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoNetSSLWinmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoNetSSLWinmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoNetSSLWinmt.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoNetSSLWinmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoNetSSLWinmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoNetSSLWinmd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/NetSSL_Win/NetSSL_Win_vs140.vcxproj.filters b/NetSSL_Win/NetSSL_Win_vs140.vcxproj.filters deleted file mode 100644 index 3e2c9e80e..000000000 --- a/NetSSL_Win/NetSSL_Win_vs140.vcxproj.filters +++ /dev/null @@ -1,216 +0,0 @@ - - - - - {ff2bc735-7b22-4c1d-ac70-a7e4f1f383ff} - - - {880e0f22-4e84-4479-96b9-d0676b27ccce} - - - {ba33cb25-8507-4ceb-aebd-9c6ac336dd3a} - - - {5285038e-ba0c-4d6f-9e50-5cfc05d9c637} - - - {7e669835-cd3a-4752-b179-03126bc4b059} - - - {fc111fc1-c0c7-48b5-a0fd-0e4e90d389fb} - - - {ab7b2c56-e020-4e47-8fdf-c6b798d1feb4} - - - {9e339999-7c75-4295-a742-f763e3253461} - - - {b28947de-0dcb-464f-96c2-f223c0f8db2f} - - - {bcc8620c-1502-4bda-a471-ca843bf3b713} - - - {73821349-3adb-4b96-91d6-4835d763a152} - - - {e3ad372e-7a79-496d-828c-a6ab4561ddd8} - - - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - HTTPSClient\Header Files - - - HTTPSClient\Header Files - - - HTTPSClient\Header Files - - - SSLSockets\Header Files - - - SSLSockets\Header Files - - - SSLSockets\Header Files - - - SSLSockets\Header Files - - - SSLSockets\Header Files - - - Mail\Header Files - - - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - HTTPSClient\Source Files - - - HTTPSClient\Source Files - - - HTTPSClient\Source Files - - - SSLSockets\Source Files - - - SSLSockets\Source Files - - - SSLSockets\Source Files - - - SSLSockets\Source Files - - - SSLSockets\Source Files - - - Mail\Source Files - - - - - - \ No newline at end of file diff --git a/NetSSL_Win/NetSSL_Win_vs150.sln b/NetSSL_Win/NetSSL_Win_vs150.sln deleted file mode 100644 index 7d34183b9..000000000 --- a/NetSSL_Win/NetSSL_Win_vs150.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NetSSL_Win", "NetSSL_Win_vs150.vcxproj", "{A097DC74-A5FC-4A0B-804E-B18892426E77}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}" - ProjectSection(ProjectDependencies) = postProject - {A097DC74-A5FC-4A0B-804E-B18892426E77} = {A097DC74-A5FC-4A0B-804E-B18892426E77} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Win32.Build.0 = release_shared|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|x64.Build.0 = debug_shared|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|x64.ActiveCfg = release_shared|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|x64.Build.0 = release_shared|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_shared|x64.Deploy.0 = release_shared|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|x64.Build.0 = release_static_md|x64 - {A097DC74-A5FC-4A0B-804E-B18892426E77}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Win32.Build.0 = release_shared|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|x64.Build.0 = debug_shared|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|x64.ActiveCfg = release_shared|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|x64.Build.0 = release_shared|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_shared|x64.Deploy.0 = release_shared|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|x64.Build.0 = release_static_md|x64 - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/NetSSL_Win/NetSSL_Win_vs150.vcxproj b/NetSSL_Win/NetSSL_Win_vs150.vcxproj deleted file mode 100644 index 1ec53752a..000000000 --- a/NetSSL_Win/NetSSL_Win_vs150.vcxproj +++ /dev/null @@ -1,676 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - NetSSL_Win - {A097DC74-A5FC-4A0B-804E-B18892426E77} - NetSSL_Win - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PocoNetSSLWind - PocoNetSSLWinmdd - PocoNetSSLWinmtd - PocoNetSSLWin - PocoNetSSLWinmd - PocoNetSSLWinmt - PocoNetSSLWin64d - PocoNetSSLWinmdd - PocoNetSSLWinmtd - PocoNetSSLWin64 - PocoNetSSLWinmd - PocoNetSSLWinmt - - - ..\bin\ - obj\NetSSL_Win\$(Configuration)\ - true - - - ..\bin\ - obj\NetSSL_Win\$(Configuration)\ - false - - - ..\lib\ - obj\NetSSL_Win\$(Configuration)\ - - - ..\lib\ - obj\NetSSL_Win\$(Configuration)\ - - - ..\lib\ - obj\NetSSL_Win\$(Configuration)\ - - - ..\lib\ - obj\NetSSL_Win\$(Configuration)\ - - - ..\bin64\ - obj64\NetSSL_Win\$(Configuration)\ - true - - - ..\bin64\ - obj64\NetSSL_Win\$(Configuration)\ - false - - - ..\lib64\ - obj64\NetSSL_Win\$(Configuration)\ - - - ..\lib64\ - obj64\NetSSL_Win\$(Configuration)\ - - - ..\lib64\ - obj64\NetSSL_Win\$(Configuration)\ - - - ..\lib64\ - obj64\NetSSL_Win\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - ..\bin\PocoNetSSLWind.dll - true - true - ..\bin\PocoNetSSLWind.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoNetSSLWind.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - ..\bin\PocoNetSSLWin.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoNetSSLWin.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoNetSSLWinmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoNetSSLWinmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoNetSSLWinmt.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoNetSSLWinmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoNetSSLWinmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoNetSSLWinmd.pdb - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - ..\lib\PocoNetSSLWinmd.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - ..\bin64\PocoNetSSLWin64d.dll - true - true - ..\bin64\PocoNetSSLWin64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoNetSSLWind.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;NetSSL_Win_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - ..\bin64\PocoNetSSLWin64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoNetSSLWin.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoNetSSLWinmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoNetSSLWinmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoNetSSLWinmt.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoNetSSLWinmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoNetSSLWinmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoNetSSLWinmd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/NetSSL_Win/NetSSL_Win_vs150.vcxproj.filters b/NetSSL_Win/NetSSL_Win_vs150.vcxproj.filters deleted file mode 100644 index 42d1bbd59..000000000 --- a/NetSSL_Win/NetSSL_Win_vs150.vcxproj.filters +++ /dev/null @@ -1,216 +0,0 @@ - - - - - {347c223b-7400-4314-b6cf-f3f82d30f13c} - - - {18b256a0-448c-4178-ad36-e11a82781dd6} - - - {5edeccfd-4e1e-4843-9fce-147e0fc75222} - - - {bd69cb65-6b4b-495b-9909-891f1357ef7f} - - - {5dea760d-b26b-45b2-b9aa-e4cfc5473e72} - - - {0dd407aa-7b38-4fb0-9c38-1d7cbd3dd33f} - - - {0509db75-5d53-477e-82c2-1fe8eed5dcb9} - - - {b46d9b12-0987-4789-8b53-9ab120494927} - - - {5004e0ab-0a9e-4c2d-ab12-84f7516f53c0} - - - {4e7b17ca-5d62-4927-b119-9d49595c4c6d} - - - {e16f7668-0f38-4893-b842-4780bd080468} - - - {e59633b5-2d95-4384-ac66-75ede5e85983} - - - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - SSLCore\Header Files - - - HTTPSClient\Header Files - - - HTTPSClient\Header Files - - - HTTPSClient\Header Files - - - SSLSockets\Header Files - - - SSLSockets\Header Files - - - SSLSockets\Header Files - - - SSLSockets\Header Files - - - SSLSockets\Header Files - - - Mail\Header Files - - - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - SSLCore\Source Files - - - HTTPSClient\Source Files - - - HTTPSClient\Source Files - - - HTTPSClient\Source Files - - - SSLSockets\Source Files - - - SSLSockets\Source Files - - - SSLSockets\Source Files - - - SSLSockets\Source Files - - - SSLSockets\Source Files - - - Mail\Source Files - - - - - - \ No newline at end of file diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs140.vcxproj b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs140.vcxproj deleted file mode 100644 index 8913f3157..000000000 --- a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs140.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - HTTPSTimeServer - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9} - HTTPSTimeServer - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - HTTPSTimeServerd - HTTPSTimeServerd - HTTPSTimeServerd - HTTPSTimeServer - HTTPSTimeServer - HTTPSTimeServer - HTTPSTimeServerd - HTTPSTimeServerd - HTTPSTimeServerd - HTTPSTimeServer - HTTPSTimeServer - HTTPSTimeServer - - - bin\ - obj\HTTPSTimeServer\$(Configuration)\ - true - - - bin\ - obj\HTTPSTimeServer\$(Configuration)\ - false - - - bin\static_mt\ - obj\HTTPSTimeServer\$(Configuration)\ - true - - - bin\static_mt\ - obj\HTTPSTimeServer\$(Configuration)\ - false - - - bin\static_md\ - obj\HTTPSTimeServer\$(Configuration)\ - true - - - bin\static_md\ - obj\HTTPSTimeServer\$(Configuration)\ - false - - - bin64\ - obj64\HTTPSTimeServer\$(Configuration)\ - true - - - bin64\ - obj64\HTTPSTimeServer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\HTTPSTimeServer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\HTTPSTimeServer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\HTTPSTimeServer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\HTTPSTimeServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPSTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\HTTPSTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPSTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPSTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\HTTPSTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPSTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPSTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\HTTPSTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPSTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPSTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\HTTPSTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPSTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPSTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\HTTPSTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPSTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPSTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\HTTPSTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPSTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - true - - - - - diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs140.vcxproj.filters b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs140.vcxproj.filters deleted file mode 100644 index e2b6a22a4..000000000 --- a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs140.vcxproj.filters +++ /dev/null @@ -1,21 +0,0 @@ - - - - - {193a6f73-b954-4cd9-83b9-e550cf496e41} - - - {a340ccc3-954a-4220-83dc-93e17f09810b} - - - - - Configuration Files - - - - - Source Files - - - \ No newline at end of file diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs150.vcxproj b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs150.vcxproj deleted file mode 100644 index 4da3411b5..000000000 --- a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs150.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - HTTPSTimeServer - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9} - HTTPSTimeServer - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - HTTPSTimeServerd - HTTPSTimeServerd - HTTPSTimeServerd - HTTPSTimeServer - HTTPSTimeServer - HTTPSTimeServer - HTTPSTimeServerd - HTTPSTimeServerd - HTTPSTimeServerd - HTTPSTimeServer - HTTPSTimeServer - HTTPSTimeServer - - - bin\ - obj\HTTPSTimeServer\$(Configuration)\ - true - - - bin\ - obj\HTTPSTimeServer\$(Configuration)\ - false - - - bin\static_mt\ - obj\HTTPSTimeServer\$(Configuration)\ - true - - - bin\static_mt\ - obj\HTTPSTimeServer\$(Configuration)\ - false - - - bin\static_md\ - obj\HTTPSTimeServer\$(Configuration)\ - true - - - bin\static_md\ - obj\HTTPSTimeServer\$(Configuration)\ - false - - - bin64\ - obj64\HTTPSTimeServer\$(Configuration)\ - true - - - bin64\ - obj64\HTTPSTimeServer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\HTTPSTimeServer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\HTTPSTimeServer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\HTTPSTimeServer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\HTTPSTimeServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPSTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\HTTPSTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPSTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPSTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\HTTPSTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPSTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPSTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\HTTPSTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPSTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPSTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\HTTPSTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPSTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPSTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\HTTPSTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPSTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPSTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\HTTPSTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPSTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - true - - - - - diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs150.vcxproj.filters b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs150.vcxproj.filters deleted file mode 100644 index e5e6d57f8..000000000 --- a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs150.vcxproj.filters +++ /dev/null @@ -1,21 +0,0 @@ - - - - - {901570cd-8efb-47af-84e9-50613107eab9} - - - {dcffe6e6-8942-48a0-b618-c7f4e319c61d} - - - - - Configuration Files - - - - - Source Files - - - \ No newline at end of file diff --git a/NetSSL_Win/samples/Mail/Mail_vs140.vcxproj b/NetSSL_Win/samples/Mail/Mail_vs140.vcxproj deleted file mode 100644 index 702d214b6..000000000 --- a/NetSSL_Win/samples/Mail/Mail_vs140.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Mail - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA} - Mail - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - Maild - Maild - Maild - Mail - Mail - Mail - Maild - Maild - Maild - Mail - Mail - Mail - - - bin\ - obj\Mail\$(Configuration)\ - true - - - bin\ - obj\Mail\$(Configuration)\ - false - - - bin\static_mt\ - obj\Mail\$(Configuration)\ - true - - - bin\static_mt\ - obj\Mail\$(Configuration)\ - false - - - bin\static_md\ - obj\Mail\$(Configuration)\ - true - - - bin\static_md\ - obj\Mail\$(Configuration)\ - false - - - bin64\ - obj64\Mail\$(Configuration)\ - true - - - bin64\ - obj64\Mail\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Mail\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Mail\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Mail\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Mail\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Maild.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Maild.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Mail.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Maild.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Maild.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Mail.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Maild.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Maild.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Mail.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Maild.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Maild.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Mail.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Maild.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Maild.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Mail.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Maild.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Maild.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Mail.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - - - - diff --git a/NetSSL_Win/samples/Mail/Mail_vs140.vcxproj.filters b/NetSSL_Win/samples/Mail/Mail_vs140.vcxproj.filters deleted file mode 100644 index 1dddbb6c6..000000000 --- a/NetSSL_Win/samples/Mail/Mail_vs140.vcxproj.filters +++ /dev/null @@ -1,18 +0,0 @@ - - - - - {94eb7842-6dbf-46a2-adcd-1454aed6283d} - - - - - Source Files - - - - - Source Files - - - \ No newline at end of file diff --git a/NetSSL_Win/samples/Mail/Mail_vs150.vcxproj b/NetSSL_Win/samples/Mail/Mail_vs150.vcxproj deleted file mode 100644 index 34d1c4815..000000000 --- a/NetSSL_Win/samples/Mail/Mail_vs150.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Mail - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA} - Mail - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - Maild - Maild - Maild - Mail - Mail - Mail - Maild - Maild - Maild - Mail - Mail - Mail - - - bin\ - obj\Mail\$(Configuration)\ - true - - - bin\ - obj\Mail\$(Configuration)\ - false - - - bin\static_mt\ - obj\Mail\$(Configuration)\ - true - - - bin\static_mt\ - obj\Mail\$(Configuration)\ - false - - - bin\static_md\ - obj\Mail\$(Configuration)\ - true - - - bin\static_md\ - obj\Mail\$(Configuration)\ - false - - - bin64\ - obj64\Mail\$(Configuration)\ - true - - - bin64\ - obj64\Mail\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Mail\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Mail\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Mail\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Mail\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Maild.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Maild.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\Mail.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Maild.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Maild.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\Mail.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Maild.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Maild.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\Mail.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Maild.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Maild.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\Mail.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Maild.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Maild.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\Mail.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Maild.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Maild.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\Mail.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - - - - diff --git a/NetSSL_Win/samples/Mail/Mail_vs150.vcxproj.filters b/NetSSL_Win/samples/Mail/Mail_vs150.vcxproj.filters deleted file mode 100644 index 653499ed5..000000000 --- a/NetSSL_Win/samples/Mail/Mail_vs150.vcxproj.filters +++ /dev/null @@ -1,18 +0,0 @@ - - - - - {46a45eed-2fef-4856-8655-0aec0babc222} - - - - - Source Files - - - - - Source Files - - - \ No newline at end of file diff --git a/NetSSL_Win/samples/download/download_vs140.vcxproj b/NetSSL_Win/samples/download/download_vs140.vcxproj deleted file mode 100644 index 7c9cfaea5..000000000 --- a/NetSSL_Win/samples/download/download_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - download - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D} - download - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - downloadd - downloadd - downloadd - download - download - download - downloadd - downloadd - downloadd - download - download - download - - - bin\ - obj\download\$(Configuration)\ - true - - - bin\ - obj\download\$(Configuration)\ - false - - - bin\static_mt\ - obj\download\$(Configuration)\ - true - - - bin\static_mt\ - obj\download\$(Configuration)\ - false - - - bin\static_md\ - obj\download\$(Configuration)\ - true - - - bin\static_md\ - obj\download\$(Configuration)\ - false - - - bin64\ - obj64\download\$(Configuration)\ - true - - - bin64\ - obj64\download\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\download\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\download\$(Configuration)\ - false - - - bin64\static_md\ - obj64\download\$(Configuration)\ - true - - - bin64\static_md\ - obj64\download\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\downloadd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\downloadd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\download.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\downloadd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\downloadd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\download.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\downloadd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\downloadd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\download.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\downloadd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\downloadd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\download.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\downloadd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\downloadd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\download.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\downloadd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\downloadd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\download.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/NetSSL_Win/samples/download/download_vs140.vcxproj.filters b/NetSSL_Win/samples/download/download_vs140.vcxproj.filters deleted file mode 100644 index efea82b04..000000000 --- a/NetSSL_Win/samples/download/download_vs140.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {5ab1755a-4d6b-4b9a-a947-0176e688b0a3} - - - - - Source Files - - - \ No newline at end of file diff --git a/NetSSL_Win/samples/download/download_vs150.vcxproj b/NetSSL_Win/samples/download/download_vs150.vcxproj deleted file mode 100644 index 0700b038f..000000000 --- a/NetSSL_Win/samples/download/download_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - download - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D} - download - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - downloadd - downloadd - downloadd - download - download - download - downloadd - downloadd - downloadd - download - download - download - - - bin\ - obj\download\$(Configuration)\ - true - - - bin\ - obj\download\$(Configuration)\ - false - - - bin\static_mt\ - obj\download\$(Configuration)\ - true - - - bin\static_mt\ - obj\download\$(Configuration)\ - false - - - bin\static_md\ - obj\download\$(Configuration)\ - true - - - bin\static_md\ - obj\download\$(Configuration)\ - false - - - bin64\ - obj64\download\$(Configuration)\ - true - - - bin64\ - obj64\download\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\download\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\download\$(Configuration)\ - false - - - bin64\static_md\ - obj64\download\$(Configuration)\ - true - - - bin64\static_md\ - obj64\download\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\downloadd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\downloadd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\download.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\downloadd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\downloadd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\download.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\downloadd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\downloadd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\download.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\downloadd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\downloadd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\download.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\downloadd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\downloadd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\download.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\downloadd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\downloadd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\download.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/NetSSL_Win/samples/download/download_vs150.vcxproj.filters b/NetSSL_Win/samples/download/download_vs150.vcxproj.filters deleted file mode 100644 index ffb6549c3..000000000 --- a/NetSSL_Win/samples/download/download_vs150.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {78e3369d-aadd-4b2d-83d8-dbe21ab32cf7} - - - - - Source Files - - - \ No newline at end of file diff --git a/NetSSL_Win/samples/samples_vs140.sln b/NetSSL_Win/samples/samples_vs140.sln deleted file mode 100644 index 8fddfd9e7..000000000 --- a/NetSSL_Win/samples/samples_vs140.sln +++ /dev/null @@ -1,137 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_vs140.vcxproj", "{D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPSTimeServer", "HTTPSTimeServer\HTTPSTimeServer_vs140.vcxproj", "{F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mail", "Mail\Mail_vs140.vcxproj", "{BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Build.0 = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Build.0 = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.ActiveCfg = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Build.0 = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Deploy.0 = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Build.0 = release_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.Build.0 = release_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.Build.0 = debug_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.ActiveCfg = release_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.Build.0 = release_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.Deploy.0 = release_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.Build.0 = release_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Build.0 = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Build.0 = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.ActiveCfg = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Build.0 = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Deploy.0 = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Build.0 = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/NetSSL_Win/samples/samples_vs150.sln b/NetSSL_Win/samples/samples_vs150.sln deleted file mode 100644 index 0f2070836..000000000 --- a/NetSSL_Win/samples/samples_vs150.sln +++ /dev/null @@ -1,137 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_vs150.vcxproj", "{D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPSTimeServer", "HTTPSTimeServer\HTTPSTimeServer_vs150.vcxproj", "{F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mail", "Mail\Mail_vs150.vcxproj", "{BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Build.0 = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Build.0 = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.ActiveCfg = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Build.0 = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Deploy.0 = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Build.0 = release_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.Build.0 = release_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.Build.0 = debug_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.ActiveCfg = release_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.Build.0 = release_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|x64.Deploy.0 = release_shared|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.Build.0 = release_static_md|x64 - {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Build.0 = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Build.0 = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.ActiveCfg = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Build.0 = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Deploy.0 = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Build.0 = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/NetSSL_Win/testsuite/TestSuite_vs140.vcxproj b/NetSSL_Win/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index d01e9f42b..000000000 --- a/NetSSL_Win/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,645 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/NetSSL_Win/testsuite/TestSuite_vs140.vcxproj.filters b/NetSSL_Win/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index 9c8f56efc..000000000 --- a/NetSSL_Win/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,117 +0,0 @@ - - - - - {c63880bb-c15c-49e5-a448-89aa03b812bb} - - - {bf42a564-e3c4-45ea-a763-ad9796136376} - - - {d9eaa878-aa6c-4b5c-abb4-985e2986c53a} - - - {24cd42bf-b482-40a0-9d78-cda9d1c27176} - - - {1f315248-728c-448e-bc64-df127fbb530a} - - - {896ab366-4289-4e87-9cda-586db5149399} - - - {722fe128-ed32-4652-9dec-a2e237de3ed6} - - - {bfb38ffa-5ece-4254-b928-bcc991b98565} - - - {91a7eb77-d4c4-4849-870c-bfcf50b423bb} - - - {3cdbe8ea-5159-4952-ba28-fe327b317712} - - - {3299a882-ce89-4e31-804c-d91ad0ad8106} - - - {f86d17f6-40e3-41f7-bc2c-084aef92cbc2} - - - {91e9afb2-6307-4868-8539-568f2f561ade} - - - {fbb37f8e-0738-4800-a6e9-72f413d4967b} - - - {2cf5328c-c8ac-4cc8-9217-02c8480b74b0} - - - {ac7e31d8-b87d-492a-87c5-424c3a5b0c53} - - - {774dd39a-7b95-4056-ab77-c1eb94bebbff} - - - - - HTTPS\Header Files - - - _Suite\Header Files - - - TCPServer\Header Files - - - TCPServer\Header Files - - - HTTPSServer\Header Files - - - HTTPSServer\Header Files - - - HTTPSClient\Header Files - - - HTTPSClient\Header Files - - - HTTPSClient\Header Files - - - - - HTTPS\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - TCPServer\Source Files - - - TCPServer\Source Files - - - HTTPSServer\Source Files - - - HTTPSServer\Source Files - - - HTTPSClient\Source Files - - - HTTPSClient\Source Files - - - HTTPSClient\Source Files - - - \ No newline at end of file diff --git a/NetSSL_Win/testsuite/TestSuite_vs150.vcxproj b/NetSSL_Win/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index 776e57807..000000000 --- a/NetSSL_Win/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,645 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28} - TestSuite - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/NetSSL_Win/testsuite/TestSuite_vs150.vcxproj.filters b/NetSSL_Win/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index 74998a11d..000000000 --- a/NetSSL_Win/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,117 +0,0 @@ - - - - - {ff7f7641-e729-4ff6-8338-bbd0506d363c} - - - {82977874-17cf-4f6c-be9c-2c1dbf1829c1} - - - {df0e7d31-f3a1-4768-b9d2-2c6b2c50ad11} - - - {6aff64e1-04ff-4e74-888b-04332268f304} - - - {acff2ca7-e2ef-4ef5-a1de-d92be912540f} - - - {411221fd-fce2-4d76-8acf-e607a30d829c} - - - {727d452f-4d5b-4f54-9d45-899b083e4b5a} - - - {d3bf8f9d-63a5-480c-a94c-d92824510e08} - - - {7c3d40d3-0776-4eb7-922e-50207089cc65} - - - {274c2dfc-2226-4330-ab27-3efd76aaf348} - - - {66bcca73-a0f5-4f7b-8d2b-73fbdc3bdc23} - - - {3ca1ee11-cf51-42df-a344-3814aa0af9b5} - - - {9eb35720-650e-4c94-bc94-8caa318c2702} - - - {7256f1a9-317e-4f0c-bf64-04260e6f4464} - - - {21591ed0-2e73-4783-b284-f1eb17cc7c8d} - - - {bf818e8e-30cd-4076-ad9f-2a027b10422c} - - - {f0707339-38a4-4fec-b402-6a7ad581400d} - - - - - HTTPS\Header Files - - - _Suite\Header Files - - - TCPServer\Header Files - - - TCPServer\Header Files - - - HTTPSServer\Header Files - - - HTTPSServer\Header Files - - - HTTPSClient\Header Files - - - HTTPSClient\Header Files - - - HTTPSClient\Header Files - - - - - HTTPS\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - TCPServer\Source Files - - - TCPServer\Source Files - - - HTTPSServer\Source Files - - - HTTPSServer\Source Files - - - HTTPSClient\Source Files - - - HTTPSClient\Source Files - - - HTTPSClient\Source Files - - - \ No newline at end of file diff --git a/PDF/PDF_vs140.sln b/PDF/PDF_vs140.sln deleted file mode 100644 index 51e92978a..000000000 --- a/PDF/PDF_vs140.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PDF", "PDF_vs140.vcxproj", "{E12E5C71-79A4-495A-848F-F1710111E610}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{24134877-368D-11DB-9FBC-00123FC423B5}" - ProjectSection(ProjectDependencies) = postProject - {E12E5C71-79A4-495A-848F-F1710111E610} = {E12E5C71-79A4-495A-848F-F1710111E610} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|Win32.Build.0 = release_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|x64.Build.0 = debug_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|x64.ActiveCfg = release_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|x64.Build.0 = release_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|x64.Deploy.0 = release_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|x64.Build.0 = release_static_md|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Build.0 = release_shared|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Build.0 = debug_shared|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.ActiveCfg = release_shared|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Build.0 = release_shared|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Deploy.0 = release_shared|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Build.0 = release_static_md|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PDF/PDF_vs140.vcxproj b/PDF/PDF_vs140.vcxproj deleted file mode 100644 index e92e91445..000000000 --- a/PDF/PDF_vs140.vcxproj +++ /dev/null @@ -1,917 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - PDF - {E12E5C71-79A4-495A-848F-F1710111E610} - PDF - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoPDFd - PocoPDFmdd - PocoPDFmtd - PocoPDF - PocoPDFmd - PocoPDFmt - PocoPDF64d - PocoPDFmdd - PocoPDFmtd - PocoPDF64 - PocoPDFmd - PocoPDFmt - - - ..\bin\ - obj\PDF\$(Configuration)\ - true - - - ..\bin\ - obj\PDF\$(Configuration)\ - false - - - ..\lib\ - obj\PDF\$(Configuration)\ - - - ..\lib\ - obj\PDF\$(Configuration)\ - - - ..\lib\ - obj\PDF\$(Configuration)\ - - - ..\lib\ - obj\PDF\$(Configuration)\ - - - ..\bin64\ - obj64\PDF\$(Configuration)\ - true - - - ..\bin64\ - obj64\PDF\$(Configuration)\ - false - - - ..\lib64\ - obj64\PDF\$(Configuration)\ - - - ..\lib64\ - obj64\PDF\$(Configuration)\ - - - ..\lib64\ - obj64\PDF\$(Configuration)\ - - - ..\lib64\ - obj64\PDF\$(Configuration)\ - - - - Disabled - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;PDF_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoPDFd.dll - true - true - ..\bin\PocoPDFd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoPDFd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;PDF_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoPDF.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoPDF.lib - MachineX86 - - - - - Disabled - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoPDFmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoPDFmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoPDFmt.lib - - - - - Disabled - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoPDFmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoPDFmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoPDFmd.pdb - Level3 - - Default - true - - - ..\lib\PocoPDFmd.lib - - - - - Disabled - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;PDF_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoPDF64d.dll - true - true - ..\bin64\PocoPDF64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoPDFd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;PDF_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoPDF64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoPDF.lib - MachineX64 - - - - - Disabled - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoPDFmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoPDFmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoPDFmt.lib - - - - - Disabled - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoPDFmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoPDFmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoPDFmd.lib - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/PDF/PDF_vs140.vcxproj.filters b/PDF/PDF_vs140.vcxproj.filters deleted file mode 100644 index 23087c56d..000000000 --- a/PDF/PDF_vs140.vcxproj.filters +++ /dev/null @@ -1,516 +0,0 @@ - - - - - {8dd8bab8-3982-47c4-b9d0-3d29d1aa20db} - - - {00b9a493-090a-40da-9ed9-b2faf3f52f65} - - - {46221d30-5334-4132-8432-0328cdba0527} - - - {7c79c624-d3a4-4fc5-bbb0-ddc0da33e755} - - - {3052c877-f824-49e1-8425-7e92f0db2d35} - - - {3c564a30-b485-45e5-91bb-c4ad7a0608ca} - - - {5f51231a-93f3-47b1-8122-2b66a65c11e4} - - - {5a8a7a88-e4f8-4d0b-91b4-724626edc81e} - - - {e6f1cacb-2e62-4a68-a78d-2c8d85a132e0} - - - {c790e717-000c-4808-9752-d83d12c017a9} - - - {3ae11ad1-1d7a-4b88-90b9-b343a45cfb5d} - - - {d61f4265-cbab-496b-8418-671b31940c97} - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - 3rd Party\PNG\Header Files - - - 3rd Party\PNG\Header Files - - - 3rd Party\zlib\Header Files - - - 3rd Party\zlib\Header Files - - - 3rd Party\zlib\Header Files - - - 3rd Party\zlib\Header Files - - - 3rd Party\zlib\Header Files - - - 3rd Party\zlib\Header Files - - - 3rd Party\zlib\Header Files - - - 3rd Party\zlib\Header Files - - - 3rd Party\zlib\Header Files - - - 3rd Party\zlib\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - - - - \ No newline at end of file diff --git a/PDF/PDF_vs150.sln b/PDF/PDF_vs150.sln deleted file mode 100644 index 2d3bffa95..000000000 --- a/PDF/PDF_vs150.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PDF", "PDF_vs150.vcxproj", "{E12E5C71-79A4-495A-848F-F1710111E610}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{24134877-368D-11DB-9FBC-00123FC423B5}" - ProjectSection(ProjectDependencies) = postProject - {E12E5C71-79A4-495A-848F-F1710111E610} = {E12E5C71-79A4-495A-848F-F1710111E610} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|Win32.Build.0 = release_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|x64.Build.0 = debug_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|x64.ActiveCfg = release_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|x64.Build.0 = release_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|x64.Deploy.0 = release_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|x64.Build.0 = release_static_md|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Build.0 = release_shared|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Build.0 = debug_shared|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.ActiveCfg = release_shared|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Build.0 = release_shared|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Deploy.0 = release_shared|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Build.0 = release_static_md|x64 - {24134877-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PDF/PDF_vs150.vcxproj b/PDF/PDF_vs150.vcxproj deleted file mode 100644 index 756bd710e..000000000 --- a/PDF/PDF_vs150.vcxproj +++ /dev/null @@ -1,917 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - PDF - {E12E5C71-79A4-495A-848F-F1710111E610} - PDF - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PocoPDFd - PocoPDFmdd - PocoPDFmtd - PocoPDF - PocoPDFmd - PocoPDFmt - PocoPDF64d - PocoPDFmdd - PocoPDFmtd - PocoPDF64 - PocoPDFmd - PocoPDFmt - - - ..\bin\ - obj\PDF\$(Configuration)\ - true - - - ..\bin\ - obj\PDF\$(Configuration)\ - false - - - ..\lib\ - obj\PDF\$(Configuration)\ - - - ..\lib\ - obj\PDF\$(Configuration)\ - - - ..\lib\ - obj\PDF\$(Configuration)\ - - - ..\lib\ - obj\PDF\$(Configuration)\ - - - ..\bin64\ - obj64\PDF\$(Configuration)\ - true - - - ..\bin64\ - obj64\PDF\$(Configuration)\ - false - - - ..\lib64\ - obj64\PDF\$(Configuration)\ - - - ..\lib64\ - obj64\PDF\$(Configuration)\ - - - ..\lib64\ - obj64\PDF\$(Configuration)\ - - - ..\lib64\ - obj64\PDF\$(Configuration)\ - - - - Disabled - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;PDF_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoPDFd.dll - true - true - ..\bin\PocoPDFd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoPDFd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;PDF_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoPDF.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoPDF.lib - MachineX86 - - - - - Disabled - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoPDFmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoPDFmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoPDFmt.lib - - - - - Disabled - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoPDFmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoPDFmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoPDFmd.pdb - Level3 - - Default - true - - - ..\lib\PocoPDFmd.lib - - - - - Disabled - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;PDF_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoPDF64d.dll - true - true - ..\bin64\PocoPDF64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoPDFd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;PDF_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoPDF64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoPDF.lib - MachineX64 - - - - - Disabled - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoPDFmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoPDFmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoPDFmt.lib - - - - - Disabled - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoPDFmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoPDFmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;.\include\Poco\PDF;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoPDFmd.lib - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/PDF/PDF_vs150.vcxproj.filters b/PDF/PDF_vs150.vcxproj.filters deleted file mode 100644 index 321238890..000000000 --- a/PDF/PDF_vs150.vcxproj.filters +++ /dev/null @@ -1,516 +0,0 @@ - - - - - {7a2e6f73-4644-449a-92ae-108edbbad75a} - - - {a79f6ea6-1afe-4da7-ad10-c2ccdbfe2491} - - - {8c5331c6-9b7e-4d52-b8fa-6a3b0216909c} - - - {77826969-ef40-4159-b9b7-4935be9107a2} - - - {f0004b45-f9e5-451b-951e-0253b232ea13} - - - {9fec58aa-a442-489f-ac25-cfe8b20a2189} - - - {41717449-9068-49a4-8508-b642ef3e3124} - - - {c1c20fc6-7576-4221-bcb7-6c54beadbc13} - - - {a985aff1-0749-47ce-afbd-d886c1a8c5b7} - - - {3f67ac71-2d53-4b98-b30e-1f94ace7c976} - - - {c8587ac4-8817-460c-a06b-96421541360d} - - - {f60c93a8-7514-48d1-b9c6-ee58fbc093c1} - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\PNG\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\zlib\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - 3rd Party\HARU\Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - 3rd Party\PNG\Header Files - - - 3rd Party\PNG\Header Files - - - 3rd Party\zlib\Header Files - - - 3rd Party\zlib\Header Files - - - 3rd Party\zlib\Header Files - - - 3rd Party\zlib\Header Files - - - 3rd Party\zlib\Header Files - - - 3rd Party\zlib\Header Files - - - 3rd Party\zlib\Header Files - - - 3rd Party\zlib\Header Files - - - 3rd Party\zlib\Header Files - - - 3rd Party\zlib\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - 3rd Party\HARU\Header Files - - - - - - \ No newline at end of file diff --git a/PDF/samples/Image/Image_vs140.vcxproj b/PDF/samples/Image/Image_vs140.vcxproj deleted file mode 100644 index 683df5274..000000000 --- a/PDF/samples/Image/Image_vs140.vcxproj +++ /dev/null @@ -1,603 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Image - {DA74060D-73AF-3E8F-A804-FBC960DAC393} - Image - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - Imaged - Imaged - Imaged - Image - Image - Image - Imaged - Imaged - Imaged - Image - Image - Image - - - bin\ - obj\Image\$(Configuration)\ - true - - - bin\ - obj\Image\$(Configuration)\ - false - - - bin\static_mt\ - obj\Image\$(Configuration)\ - true - - - bin\static_mt\ - obj\Image\$(Configuration)\ - false - - - bin\static_md\ - obj\Image\$(Configuration)\ - true - - - bin\static_md\ - obj\Image\$(Configuration)\ - false - - - bin64\ - obj64\Image\$(Configuration)\ - true - - - bin64\ - obj64\Image\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Image\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Image\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Image\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Image\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin\Imaged.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Imaged.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin\Image.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\Imaged.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Imaged.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\Image.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\Imaged.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Imaged.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\Image.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin64\Imaged.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Imaged.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin64\Image.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\Imaged.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Imaged.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\Image.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\Imaged.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Imaged.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\Image.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/PDF/samples/Image/Image_vs140.vcxproj.filters b/PDF/samples/Image/Image_vs140.vcxproj.filters deleted file mode 100644 index 3b5e849be..000000000 --- a/PDF/samples/Image/Image_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {4b172a74-e1ac-4140-b141-d7a18df91d9b} - - - {a5eb04af-674d-40f7-9b06-0d4c28dc69dd} - - - - - Source Files - - - \ No newline at end of file diff --git a/PDF/samples/Image/Image_vs150.vcxproj b/PDF/samples/Image/Image_vs150.vcxproj deleted file mode 100644 index ae4c0f8c7..000000000 --- a/PDF/samples/Image/Image_vs150.vcxproj +++ /dev/null @@ -1,603 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Image - {DA74060D-73AF-3E8F-A804-FBC960DAC393} - Image - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - Imaged - Imaged - Imaged - Image - Image - Image - Imaged - Imaged - Imaged - Image - Image - Image - - - bin\ - obj\Image\$(Configuration)\ - true - - - bin\ - obj\Image\$(Configuration)\ - false - - - bin\static_mt\ - obj\Image\$(Configuration)\ - true - - - bin\static_mt\ - obj\Image\$(Configuration)\ - false - - - bin\static_md\ - obj\Image\$(Configuration)\ - true - - - bin\static_md\ - obj\Image\$(Configuration)\ - false - - - bin64\ - obj64\Image\$(Configuration)\ - true - - - bin64\ - obj64\Image\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Image\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Image\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Image\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Image\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin\Imaged.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Imaged.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin\Image.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\Imaged.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Imaged.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\Image.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\Imaged.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Imaged.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\Image.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin64\Imaged.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Imaged.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin64\Image.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\Imaged.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Imaged.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\Image.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\Imaged.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Imaged.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\Image.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/PDF/samples/Image/Image_vs150.vcxproj.filters b/PDF/samples/Image/Image_vs150.vcxproj.filters deleted file mode 100644 index 64551dc0c..000000000 --- a/PDF/samples/Image/Image_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {867fafc3-34b8-4dac-8b8f-1f6ce8f60683} - - - {dfa724da-05ec-4cb8-8ea2-2caf97ea0c9f} - - - - - Source Files - - - \ No newline at end of file diff --git a/PDF/samples/Template/Template_vs140.sln b/PDF/samples/Template/Template_vs140.sln deleted file mode 100644 index 702b3fb3c..000000000 --- a/PDF/samples/Template/Template_vs140.sln +++ /dev/null @@ -1,33 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25123.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Template", "Template_vs140.vcxproj", "{C551DFAC-C81B-4C23-8FD4-7F320110D3B1}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|x86 = debug_shared|x86 - debug_static_md|x86 = debug_static_md|x86 - debug_static_mt|x86 = debug_static_mt|x86 - release_shared|x86 = release_shared|x86 - release_static_md|x86 = release_static_md|x86 - release_static_mt|x86 = release_static_mt|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C551DFAC-C81B-4C23-8FD4-7F320110D3B1}.debug_shared|x86.ActiveCfg = debug_shared|Win32 - {C551DFAC-C81B-4C23-8FD4-7F320110D3B1}.debug_shared|x86.Build.0 = debug_shared|Win32 - {C551DFAC-C81B-4C23-8FD4-7F320110D3B1}.debug_static_md|x86.ActiveCfg = debug_static_md|Win32 - {C551DFAC-C81B-4C23-8FD4-7F320110D3B1}.debug_static_md|x86.Build.0 = debug_static_md|Win32 - {C551DFAC-C81B-4C23-8FD4-7F320110D3B1}.debug_static_mt|x86.ActiveCfg = debug_static_mt|Win32 - {C551DFAC-C81B-4C23-8FD4-7F320110D3B1}.debug_static_mt|x86.Build.0 = debug_static_mt|Win32 - {C551DFAC-C81B-4C23-8FD4-7F320110D3B1}.release_shared|x86.ActiveCfg = release_shared|Win32 - {C551DFAC-C81B-4C23-8FD4-7F320110D3B1}.release_shared|x86.Build.0 = release_shared|Win32 - {C551DFAC-C81B-4C23-8FD4-7F320110D3B1}.release_static_md|x86.ActiveCfg = release_static_md|Win32 - {C551DFAC-C81B-4C23-8FD4-7F320110D3B1}.release_static_md|x86.Build.0 = release_static_md|Win32 - {C551DFAC-C81B-4C23-8FD4-7F320110D3B1}.release_static_mt|x86.ActiveCfg = release_static_mt|Win32 - {C551DFAC-C81B-4C23-8FD4-7F320110D3B1}.release_static_mt|x86.Build.0 = release_static_mt|Win32 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PDF/samples/Template/Template_vs140.vcxproj b/PDF/samples/Template/Template_vs140.vcxproj deleted file mode 100644 index da05109b5..000000000 --- a/PDF/samples/Template/Template_vs140.vcxproj +++ /dev/null @@ -1,603 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Template - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E} - Template - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - Templated - Templated - Templated - Template - Template - Template - Templated - Templated - Templated - Template - Template - Template - - - bin\ - obj\Template\$(Configuration)\ - true - - - bin\ - obj\Template\$(Configuration)\ - false - - - bin\static_mt\ - obj\Template\$(Configuration)\ - true - - - bin\static_mt\ - obj\Template\$(Configuration)\ - false - - - bin\static_md\ - obj\Template\$(Configuration)\ - true - - - bin\static_md\ - obj\Template\$(Configuration)\ - false - - - bin64\ - obj64\Template\$(Configuration)\ - true - - - bin64\ - obj64\Template\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Template\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Template\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Template\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Template\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin\Templated.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Templated.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin\Template.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\Templated.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Templated.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\Template.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\Templated.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Templated.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\Template.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin64\Templated.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Templated.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin64\Template.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\Templated.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Templated.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\Template.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\Templated.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Templated.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\Template.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/PDF/samples/Template/Template_vs140.vcxproj.filters b/PDF/samples/Template/Template_vs140.vcxproj.filters deleted file mode 100644 index fda1be060..000000000 --- a/PDF/samples/Template/Template_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {23bb2bb2-c790-4588-b05a-36d0dae48950} - - - {cb0525e2-24e1-49f0-a2dd-7642ab0071a4} - - - - - Source Files - - - \ No newline at end of file diff --git a/PDF/samples/Template/Template_vs150.vcxproj b/PDF/samples/Template/Template_vs150.vcxproj deleted file mode 100644 index c082acd57..000000000 --- a/PDF/samples/Template/Template_vs150.vcxproj +++ /dev/null @@ -1,603 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Template - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E} - Template - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - Templated - Templated - Templated - Template - Template - Template - Templated - Templated - Templated - Template - Template - Template - - - bin\ - obj\Template\$(Configuration)\ - true - - - bin\ - obj\Template\$(Configuration)\ - false - - - bin\static_mt\ - obj\Template\$(Configuration)\ - true - - - bin\static_mt\ - obj\Template\$(Configuration)\ - false - - - bin\static_md\ - obj\Template\$(Configuration)\ - true - - - bin\static_md\ - obj\Template\$(Configuration)\ - false - - - bin64\ - obj64\Template\$(Configuration)\ - true - - - bin64\ - obj64\Template\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Template\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Template\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Template\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Template\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin\Templated.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Templated.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin\Template.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\Templated.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Templated.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\Template.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\Templated.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Templated.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\Template.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin64\Templated.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Templated.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin64\Template.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\Templated.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Templated.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\Template.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\Templated.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Templated.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\Template.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/PDF/samples/Template/Template_vs150.vcxproj.filters b/PDF/samples/Template/Template_vs150.vcxproj.filters deleted file mode 100644 index fce64d011..000000000 --- a/PDF/samples/Template/Template_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {8dd72e7d-a0e4-49a9-84c9-645c33bfedc6} - - - {cdddba0b-16e7-45f6-aa9c-40d06497664c} - - - - - Source Files - - - \ No newline at end of file diff --git a/PDF/samples/Text/Text_vs140.vcxproj b/PDF/samples/Text/Text_vs140.vcxproj deleted file mode 100644 index cf4b1694b..000000000 --- a/PDF/samples/Text/Text_vs140.vcxproj +++ /dev/null @@ -1,603 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Text - {0DE18C25-1694-3598-831D-4FA48D113606} - Text - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - Textd - Textd - Textd - Text - Text - Text - Textd - Textd - Textd - Text - Text - Text - - - bin\ - obj\Text\$(Configuration)\ - true - - - bin\ - obj\Text\$(Configuration)\ - false - - - bin\static_mt\ - obj\Text\$(Configuration)\ - true - - - bin\static_mt\ - obj\Text\$(Configuration)\ - false - - - bin\static_md\ - obj\Text\$(Configuration)\ - true - - - bin\static_md\ - obj\Text\$(Configuration)\ - false - - - bin64\ - obj64\Text\$(Configuration)\ - true - - - bin64\ - obj64\Text\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Text\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Text\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Text\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Text\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin\Textd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Textd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin\Text.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\Textd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Textd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\Text.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\Textd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Textd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\Text.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin64\Textd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Textd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin64\Text.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\Textd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Textd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\Text.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\Textd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Textd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\Text.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/PDF/samples/Text/Text_vs140.vcxproj.filters b/PDF/samples/Text/Text_vs140.vcxproj.filters deleted file mode 100644 index d3f54c37d..000000000 --- a/PDF/samples/Text/Text_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {1bb7ca9c-83bf-46c8-9856-a2d360ce4b8d} - - - {f8aeb993-d0ac-425a-a934-2807338f161d} - - - - - Source Files - - - \ No newline at end of file diff --git a/PDF/samples/Text/Text_vs150.vcxproj b/PDF/samples/Text/Text_vs150.vcxproj deleted file mode 100644 index c9bf6f638..000000000 --- a/PDF/samples/Text/Text_vs150.vcxproj +++ /dev/null @@ -1,603 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Text - {0DE18C25-1694-3598-831D-4FA48D113606} - Text - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - Textd - Textd - Textd - Text - Text - Text - Textd - Textd - Textd - Text - Text - Text - - - bin\ - obj\Text\$(Configuration)\ - true - - - bin\ - obj\Text\$(Configuration)\ - false - - - bin\static_mt\ - obj\Text\$(Configuration)\ - true - - - bin\static_mt\ - obj\Text\$(Configuration)\ - false - - - bin\static_md\ - obj\Text\$(Configuration)\ - true - - - bin\static_md\ - obj\Text\$(Configuration)\ - false - - - bin64\ - obj64\Text\$(Configuration)\ - true - - - bin64\ - obj64\Text\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Text\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Text\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Text\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Text\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin\Textd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Textd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin\Text.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\Textd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Textd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\Text.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\Textd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Textd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\Text.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin64\Textd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Textd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin64\Text.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\Textd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Textd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\Text.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\Textd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Textd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\Text.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/PDF/samples/Text/Text_vs150.vcxproj.filters b/PDF/samples/Text/Text_vs150.vcxproj.filters deleted file mode 100644 index d4843b9ec..000000000 --- a/PDF/samples/Text/Text_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {6478ee36-6386-492d-aec8-c7983b869dd0} - - - {730570b8-19f9-4505-8d66-8e772b635c63} - - - - - Source Files - - - \ No newline at end of file diff --git a/PDF/samples/samples_vs140.sln b/PDF/samples/samples_vs140.sln deleted file mode 100644 index 93cc1208b..000000000 --- a/PDF/samples/samples_vs140.sln +++ /dev/null @@ -1,137 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Image", "Image\Image_vs140.vcxproj", "{DA74060D-73AF-3E8F-A804-FBC960DAC393}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Text", "Text\Text_vs140.vcxproj", "{0DE18C25-1694-3598-831D-4FA48D113606}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Template", "Template\Template_vs140.vcxproj", "{27E36FB4-BDAB-3B36-910A-1F1C26853B1E}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_shared|Win32.Build.0 = release_shared|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_shared|x64.Build.0 = debug_shared|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_shared|x64.ActiveCfg = release_shared|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_shared|x64.Build.0 = release_shared|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_shared|x64.Deploy.0 = release_shared|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_md|x64.Build.0 = release_static_md|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_shared|Win32.Build.0 = release_shared|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_shared|x64.Build.0 = debug_shared|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_shared|x64.ActiveCfg = release_shared|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_shared|x64.Build.0 = release_shared|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_shared|x64.Deploy.0 = release_shared|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_md|x64.Build.0 = release_static_md|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_shared|Win32.Build.0 = release_shared|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_shared|x64.Build.0 = debug_shared|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_shared|x64.ActiveCfg = release_shared|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_shared|x64.Build.0 = release_shared|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_shared|x64.Deploy.0 = release_shared|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_md|x64.Build.0 = release_static_md|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PDF/samples/samples_vs150.sln b/PDF/samples/samples_vs150.sln deleted file mode 100644 index 62df9ce87..000000000 --- a/PDF/samples/samples_vs150.sln +++ /dev/null @@ -1,137 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Image", "Image\Image_vs150.vcxproj", "{DA74060D-73AF-3E8F-A804-FBC960DAC393}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Text", "Text\Text_vs150.vcxproj", "{0DE18C25-1694-3598-831D-4FA48D113606}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Template", "Template\Template_vs150.vcxproj", "{27E36FB4-BDAB-3B36-910A-1F1C26853B1E}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_shared|Win32.Build.0 = release_shared|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_shared|x64.Build.0 = debug_shared|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_shared|x64.ActiveCfg = release_shared|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_shared|x64.Build.0 = release_shared|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_shared|x64.Deploy.0 = release_shared|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_md|x64.Build.0 = release_static_md|x64 - {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_shared|Win32.Build.0 = release_shared|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_shared|x64.Build.0 = debug_shared|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_shared|x64.ActiveCfg = release_shared|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_shared|x64.Build.0 = release_shared|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_shared|x64.Deploy.0 = release_shared|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_md|x64.Build.0 = release_static_md|x64 - {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_shared|Win32.Build.0 = release_shared|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_shared|x64.Build.0 = debug_shared|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_shared|x64.ActiveCfg = release_shared|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_shared|x64.Build.0 = release_shared|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_shared|x64.Deploy.0 = release_shared|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_md|x64.Build.0 = release_static_md|x64 - {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PDF/testsuite/TestSuite_vs140.vcxproj b/PDF/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index 99e0a4500..000000000 --- a/PDF/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,617 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {24134877-368D-11DB-9FBC-00123FC423B5} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - true - - - true - - - true - - - - - diff --git a/PDF/testsuite/TestSuite_vs140.vcxproj.filters b/PDF/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index 3cf465efe..000000000 --- a/PDF/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,48 +0,0 @@ - - - - - {483d746f-823e-4a9f-8b37-56fc5ac4d3d6} - - - {290552c9-7f3f-480a-9dd5-96699d0d77ed} - - - {c3e8d521-a059-49a4-95c1-6050d7503f5d} - - - {ef876b9a-23fc-41fe-8896-b400e69035ca} - - - {ceb66c36-7af2-4545-bbc2-9f6d6431a533} - - - {4d1c4667-480f-4a3e-ac3a-109efd48fcd7} - - - {c36e8ec7-b3e3-47c6-b928-178884ee9448} - - - {65d9d634-b36b-4c7d-bbc2-afe883cacba6} - - - - - PDFCore\Header Files - - - _Suite\Header Files - - - - - PDFCore\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - \ No newline at end of file diff --git a/PDF/testsuite/TestSuite_vs150.vcxproj b/PDF/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index d0234c006..000000000 --- a/PDF/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,617 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {24134877-368D-11DB-9FBC-00123FC423B5} - TestSuite - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - true - - - true - - - true - - - - - diff --git a/PDF/testsuite/TestSuite_vs150.vcxproj.filters b/PDF/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index c5a028ffc..000000000 --- a/PDF/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,48 +0,0 @@ - - - - - {833ab649-f319-4475-96f0-6f658adcccf3} - - - {22ad5fd5-a708-466f-a4e4-cf04fdb31f2f} - - - {31292872-df1d-4ea8-b3bd-26c60f7166cd} - - - {f1a7b592-9b7f-4f23-bd5a-4f2385b07c3f} - - - {0ba8cc91-b9b0-4f52-a2ca-43e72df47da7} - - - {837f846b-9cfe-44df-a5aa-4030fcd18a33} - - - {e55ec40d-3c83-4e2b-92c4-98601c0f8e7f} - - - {0b94aace-6bbc-4e4a-9dc1-19004289c111} - - - - - PDFCore\Header Files - - - _Suite\Header Files - - - - - PDFCore\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - \ No newline at end of file diff --git a/PageCompiler/File2Page/File2Page_vs140.sln b/PageCompiler/File2Page/File2Page_vs140.sln deleted file mode 100644 index 9933c71fc..000000000 --- a/PageCompiler/File2Page/File2Page_vs140.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "File2Page", "File2Page_vs140.vcxproj", "{8BD05B6C-A179-40F1-BD17-6EA813055883}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_shared|Win32.Build.0 = release_shared|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_shared|x64.Build.0 = debug_shared|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_shared|x64.ActiveCfg = release_shared|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_shared|x64.Build.0 = release_shared|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_shared|x64.Deploy.0 = release_shared|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_md|x64.Build.0 = release_static_md|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PageCompiler/File2Page/File2Page_vs140.vcxproj b/PageCompiler/File2Page/File2Page_vs140.vcxproj deleted file mode 100644 index 5ed1bb249..000000000 --- a/PageCompiler/File2Page/File2Page_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - File2Page - {8BD05B6C-A179-40F1-BD17-6EA813055883} - File2Page - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - f2cpspd - f2cpspd - f2cpspd - f2cpsp - f2cpsp - f2cpsp - f2cpspd - f2cpspd - f2cpspd - f2cpsp - f2cpsp - f2cpsp - - - bin\ - obj\File2Page\$(Configuration)\ - true - - - bin\ - obj\File2Page\$(Configuration)\ - false - - - bin\static_mt\ - obj\File2Page\$(Configuration)\ - true - - - bin\static_mt\ - obj\File2Page\$(Configuration)\ - false - - - bin\static_md\ - obj\File2Page\$(Configuration)\ - true - - - bin\static_md\ - obj\File2Page\$(Configuration)\ - false - - - bin64\ - obj64\File2Page\$(Configuration)\ - true - - - bin64\ - obj64\File2Page\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\File2Page\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\File2Page\$(Configuration)\ - false - - - bin64\static_md\ - obj64\File2Page\$(Configuration)\ - true - - - bin64\static_md\ - obj64\File2Page\$(Configuration)\ - false - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\f2cpspd.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\f2cpspd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\f2cpsp.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\f2cpspd.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\f2cpspd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\f2cpsp.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\f2cpspd.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\f2cpspd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\f2cpsp.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\f2cpspd.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\f2cpspd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\f2cpsp.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\f2cpspd.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\f2cpspd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\f2cpsp.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\f2cpspd.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\f2cpspd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\f2cpsp.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/PageCompiler/File2Page/File2Page_vs140.vcxproj.filters b/PageCompiler/File2Page/File2Page_vs140.vcxproj.filters deleted file mode 100644 index b30101224..000000000 --- a/PageCompiler/File2Page/File2Page_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {e0905f85-c90b-433c-8f92-d5588b62e88a} - - - {37f3790a-24c8-492a-ac04-17cad6c2680a} - - - - - Source Files - - - \ No newline at end of file diff --git a/PageCompiler/File2Page/File2Page_vs150.sln b/PageCompiler/File2Page/File2Page_vs150.sln deleted file mode 100644 index 12ec62679..000000000 --- a/PageCompiler/File2Page/File2Page_vs150.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "File2Page", "File2Page_vs150.vcxproj", "{8BD05B6C-A179-40F1-BD17-6EA813055883}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_shared|Win32.Build.0 = release_shared|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_shared|x64.Build.0 = debug_shared|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_shared|x64.ActiveCfg = release_shared|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_shared|x64.Build.0 = release_shared|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_shared|x64.Deploy.0 = release_shared|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_md|x64.Build.0 = release_static_md|x64 - {8BD05B6C-A179-40F1-BD17-6EA813055883}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PageCompiler/File2Page/File2Page_vs150.vcxproj b/PageCompiler/File2Page/File2Page_vs150.vcxproj deleted file mode 100644 index d3eea8bab..000000000 --- a/PageCompiler/File2Page/File2Page_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - File2Page - {8BD05B6C-A179-40F1-BD17-6EA813055883} - File2Page - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - f2cpspd - f2cpspd - f2cpspd - f2cpsp - f2cpsp - f2cpsp - f2cpspd - f2cpspd - f2cpspd - f2cpsp - f2cpsp - f2cpsp - - - bin\ - obj\File2Page\$(Configuration)\ - true - - - bin\ - obj\File2Page\$(Configuration)\ - false - - - bin\static_mt\ - obj\File2Page\$(Configuration)\ - true - - - bin\static_mt\ - obj\File2Page\$(Configuration)\ - false - - - bin\static_md\ - obj\File2Page\$(Configuration)\ - true - - - bin\static_md\ - obj\File2Page\$(Configuration)\ - false - - - bin64\ - obj64\File2Page\$(Configuration)\ - true - - - bin64\ - obj64\File2Page\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\File2Page\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\File2Page\$(Configuration)\ - false - - - bin64\static_md\ - obj64\File2Page\$(Configuration)\ - true - - - bin64\static_md\ - obj64\File2Page\$(Configuration)\ - false - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\f2cpspd.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\f2cpspd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\f2cpsp.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\f2cpspd.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\f2cpspd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\f2cpsp.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\f2cpspd.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\f2cpspd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\f2cpsp.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\f2cpspd.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\f2cpspd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\f2cpsp.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\f2cpspd.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\f2cpspd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\f2cpsp.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\f2cpspd.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\f2cpspd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\Foundation\include;..\..\XML\include;..\..\Util\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\f2cpsp.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/PageCompiler/File2Page/File2Page_vs150.vcxproj.filters b/PageCompiler/File2Page/File2Page_vs150.vcxproj.filters deleted file mode 100644 index 1306d6064..000000000 --- a/PageCompiler/File2Page/File2Page_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {7b4fbe6e-cf1c-4f12-8a97-a1e76acceb92} - - - {4bb713c8-c50a-4af4-bfa8-a39a6a160b2a} - - - - - Source Files - - - \ No newline at end of file diff --git a/PageCompiler/PageCompiler_vs140.sln b/PageCompiler/PageCompiler_vs140.sln deleted file mode 100644 index 848954981..000000000 --- a/PageCompiler/PageCompiler_vs140.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PageCompiler", "PageCompiler_vs140.vcxproj", "{E12E5C71-79A4-495A-848F-F1710111E610}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|Win32.Build.0 = release_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|x64.Build.0 = debug_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|x64.ActiveCfg = release_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|x64.Build.0 = release_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|x64.Deploy.0 = release_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|x64.Build.0 = release_static_md|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PageCompiler/PageCompiler_vs140.vcxproj b/PageCompiler/PageCompiler_vs140.vcxproj deleted file mode 100644 index ae54c6347..000000000 --- a/PageCompiler/PageCompiler_vs140.vcxproj +++ /dev/null @@ -1,632 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - PageCompiler - {E12E5C71-79A4-495A-848F-F1710111E610} - PageCompiler - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - cpspcd - cpspcd - cpspcd - cpspc - cpspc - cpspc - cpspcd - cpspcd - cpspcd - cpspc - cpspc - cpspc - - - bin\ - obj\PageCompiler\$(Configuration)\ - true - - - bin\ - obj\PageCompiler\$(Configuration)\ - false - - - bin\static_mt\ - obj\PageCompiler\$(Configuration)\ - true - - - bin\static_mt\ - obj\PageCompiler\$(Configuration)\ - false - - - bin\static_md\ - obj\PageCompiler\$(Configuration)\ - true - - - bin\static_md\ - obj\PageCompiler\$(Configuration)\ - false - - - bin64\ - obj64\PageCompiler\$(Configuration)\ - true - - - bin64\ - obj64\PageCompiler\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\PageCompiler\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\PageCompiler\$(Configuration)\ - false - - - bin64\static_md\ - obj64\PageCompiler\$(Configuration)\ - true - - - bin64\static_md\ - obj64\PageCompiler\$(Configuration)\ - false - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\cpspcd.exe - ..\lib;%(AdditionalLibraryDirectories) - true - true - bin\cpspcd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\cpspc.exe - ..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\cpspcd.exe - ..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\cpspcd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\cpspc.exe - ..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\cpspcd.exe - ..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\cpspcd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\cpspc.exe - ..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\cpspcd.exe - ..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\cpspcd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\cpspc.exe - ..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\cpspcd.exe - ..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\cpspcd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\cpspc.exe - ..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\cpspcd.exe - ..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\cpspcd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\cpspc.exe - ..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - - diff --git a/PageCompiler/PageCompiler_vs140.vcxproj.filters b/PageCompiler/PageCompiler_vs140.vcxproj.filters deleted file mode 100644 index c792af098..000000000 --- a/PageCompiler/PageCompiler_vs140.vcxproj.filters +++ /dev/null @@ -1,56 +0,0 @@ - - - - - {7c8a97d8-2816-4521-a41f-49d5f7f25c9d} - - - {5056cfc8-5dbc-4318-a938-6498dba45407} - - - {723ee3f6-6a7a-49e0-a325-e5eedab33aa1} - - - - - Configuration Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/PageCompiler/PageCompiler_vs150.sln b/PageCompiler/PageCompiler_vs150.sln deleted file mode 100644 index fe0aa2695..000000000 --- a/PageCompiler/PageCompiler_vs150.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PageCompiler", "PageCompiler_vs150.vcxproj", "{E12E5C71-79A4-495A-848F-F1710111E610}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|Win32.Build.0 = release_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|x64.Build.0 = debug_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|x64.ActiveCfg = release_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|x64.Build.0 = release_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_shared|x64.Deploy.0 = release_shared|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|x64.Build.0 = release_static_md|x64 - {E12E5C71-79A4-495A-848F-F1710111E610}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PageCompiler/PageCompiler_vs150.vcxproj b/PageCompiler/PageCompiler_vs150.vcxproj deleted file mode 100644 index ef844fb42..000000000 --- a/PageCompiler/PageCompiler_vs150.vcxproj +++ /dev/null @@ -1,632 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - PageCompiler - {E12E5C71-79A4-495A-848F-F1710111E610} - PageCompiler - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - cpspcd - cpspcd - cpspcd - cpspc - cpspc - cpspc - cpspcd - cpspcd - cpspcd - cpspc - cpspc - cpspc - - - bin\ - obj\PageCompiler\$(Configuration)\ - true - - - bin\ - obj\PageCompiler\$(Configuration)\ - false - - - bin\static_mt\ - obj\PageCompiler\$(Configuration)\ - true - - - bin\static_mt\ - obj\PageCompiler\$(Configuration)\ - false - - - bin\static_md\ - obj\PageCompiler\$(Configuration)\ - true - - - bin\static_md\ - obj\PageCompiler\$(Configuration)\ - false - - - bin64\ - obj64\PageCompiler\$(Configuration)\ - true - - - bin64\ - obj64\PageCompiler\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\PageCompiler\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\PageCompiler\$(Configuration)\ - false - - - bin64\static_md\ - obj64\PageCompiler\$(Configuration)\ - true - - - bin64\static_md\ - obj64\PageCompiler\$(Configuration)\ - false - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\cpspcd.exe - ..\lib;%(AdditionalLibraryDirectories) - true - true - bin\cpspcd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\cpspc.exe - ..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\cpspcd.exe - ..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\cpspcd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\cpspc.exe - ..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\cpspcd.exe - ..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\cpspcd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\cpspc.exe - ..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\cpspcd.exe - ..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\cpspcd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\cpspc.exe - ..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\cpspcd.exe - ..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\cpspcd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\cpspc.exe - ..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\cpspcd.exe - ..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\cpspcd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\cpspc.exe - ..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - - diff --git a/PageCompiler/PageCompiler_vs150.vcxproj.filters b/PageCompiler/PageCompiler_vs150.vcxproj.filters deleted file mode 100644 index 60b228c21..000000000 --- a/PageCompiler/PageCompiler_vs150.vcxproj.filters +++ /dev/null @@ -1,56 +0,0 @@ - - - - - {989b0345-a3f1-4d86-9fa2-07d788cb2c37} - - - {2efecb53-297d-441c-b3c8-764d3c396aed} - - - {87810cca-d164-4832-83d0-2e251d115ef4} - - - - - Configuration Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs140.vcxproj b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs140.vcxproj deleted file mode 100644 index 72004b483..000000000 --- a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs140.vcxproj +++ /dev/null @@ -1,616 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - HTTPTimeServer - {18A0143A-444A-38E3-838C-1ACFBE4EE18C} - HTTPTimeServer - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - HTTPTimeServerd - HTTPTimeServerd - HTTPTimeServerd - HTTPTimeServer - HTTPTimeServer - HTTPTimeServer - HTTPTimeServerd - HTTPTimeServerd - HTTPTimeServerd - HTTPTimeServer - HTTPTimeServer - HTTPTimeServer - - - bin\ - obj\HTTPTimeServer\$(Configuration)\ - true - - - bin\ - obj\HTTPTimeServer\$(Configuration)\ - false - - - bin\static_mt\ - obj\HTTPTimeServer\$(Configuration)\ - true - - - bin\static_mt\ - obj\HTTPTimeServer\$(Configuration)\ - false - - - bin\static_md\ - obj\HTTPTimeServer\$(Configuration)\ - true - - - bin\static_md\ - obj\HTTPTimeServer\$(Configuration)\ - false - - - bin64\ - obj64\HTTPTimeServer\$(Configuration)\ - true - - - bin64\ - obj64\HTTPTimeServer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\HTTPTimeServer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\HTTPTimeServer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\HTTPTimeServer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\HTTPTimeServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\HTTPTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\HTTPTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\HTTPTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\HTTPTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\HTTPTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\HTTPTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - true - - - true - - - - - - - - diff --git a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs140.vcxproj.filters b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs140.vcxproj.filters deleted file mode 100644 index 80ae9658a..000000000 --- a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs140.vcxproj.filters +++ /dev/null @@ -1,32 +0,0 @@ - - - - - {c47c4318-0ded-4492-9cf6-f3e570bdfa26} - - - {827d79e8-2403-4303-801f-e5af66b0f022} - - - {a665cac7-184f-4ffe-8039-9835dc8bafda} - - - - - Page Files - - - - - Source Files - - - Generated Files - - - - - Generated Files - - - \ No newline at end of file diff --git a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs150.vcxproj b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs150.vcxproj deleted file mode 100644 index 3034fb571..000000000 --- a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs150.vcxproj +++ /dev/null @@ -1,616 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - HTTPTimeServer - {18A0143A-444A-38E3-838C-1ACFBE4EE18C} - HTTPTimeServer - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - HTTPTimeServerd - HTTPTimeServerd - HTTPTimeServerd - HTTPTimeServer - HTTPTimeServer - HTTPTimeServer - HTTPTimeServerd - HTTPTimeServerd - HTTPTimeServerd - HTTPTimeServer - HTTPTimeServer - HTTPTimeServer - - - bin\ - obj\HTTPTimeServer\$(Configuration)\ - true - - - bin\ - obj\HTTPTimeServer\$(Configuration)\ - false - - - bin\static_mt\ - obj\HTTPTimeServer\$(Configuration)\ - true - - - bin\static_mt\ - obj\HTTPTimeServer\$(Configuration)\ - false - - - bin\static_md\ - obj\HTTPTimeServer\$(Configuration)\ - true - - - bin\static_md\ - obj\HTTPTimeServer\$(Configuration)\ - false - - - bin64\ - obj64\HTTPTimeServer\$(Configuration)\ - true - - - bin64\ - obj64\HTTPTimeServer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\HTTPTimeServer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\HTTPTimeServer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\HTTPTimeServer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\HTTPTimeServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\HTTPTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\HTTPTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\HTTPTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\HTTPTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPTimeServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\HTTPTimeServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\HTTPTimeServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\HTTPTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\HTTPTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\HTTPTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\HTTPTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPTimeServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\HTTPTimeServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\HTTPTimeServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - true - - - true - - - - - - - - diff --git a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs150.vcxproj.filters b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs150.vcxproj.filters deleted file mode 100644 index 6ad53aa57..000000000 --- a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs150.vcxproj.filters +++ /dev/null @@ -1,32 +0,0 @@ - - - - - {46e15fbd-3ec3-4d01-9fb2-a43f3d49b574} - - - {f154e2b2-bc20-42a2-a4f8-3ce45ca50f92} - - - {8984540a-c3ec-476f-acde-c900a0e12a31} - - - - - Page Files - - - - - Source Files - - - Generated Files - - - - - Generated Files - - - \ No newline at end of file diff --git a/PageCompiler/samples/samples_vs140.sln b/PageCompiler/samples/samples_vs140.sln deleted file mode 100644 index 61a6a0015..000000000 --- a/PageCompiler/samples/samples_vs140.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPTimeServer", "HTTPTimeServer\HTTPTimeServer_vs140.vcxproj", "{18A0143A-444A-38E3-838C-1ACFBE4EE18C}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Build.0 = release_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Build.0 = debug_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.ActiveCfg = release_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Build.0 = release_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Deploy.0 = release_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Build.0 = release_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PageCompiler/samples/samples_vs150.sln b/PageCompiler/samples/samples_vs150.sln deleted file mode 100644 index eb57fb653..000000000 --- a/PageCompiler/samples/samples_vs150.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPTimeServer", "HTTPTimeServer\HTTPTimeServer_vs150.vcxproj", "{18A0143A-444A-38E3-838C-1ACFBE4EE18C}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Build.0 = release_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Build.0 = debug_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.ActiveCfg = release_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Build.0 = release_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Deploy.0 = release_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Build.0 = release_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PocoDoc/PocoDoc_vs140.sln b/PocoDoc/PocoDoc_vs140.sln deleted file mode 100644 index 22e72f706..000000000 --- a/PocoDoc/PocoDoc_vs140.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PocoDoc", "PocoDoc_vs140.vcxproj", "{18BCF3CC-9474-4D1C-9445-F783A49D886B}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_shared|Win32.Build.0 = release_shared|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_shared|x64.Build.0 = debug_shared|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_shared|x64.ActiveCfg = release_shared|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_shared|x64.Build.0 = release_shared|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_shared|x64.Deploy.0 = release_shared|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_md|x64.Build.0 = release_static_md|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PocoDoc/PocoDoc_vs140.vcxproj b/PocoDoc/PocoDoc_vs140.vcxproj deleted file mode 100644 index 7632fdcce..000000000 --- a/PocoDoc/PocoDoc_vs140.vcxproj +++ /dev/null @@ -1,613 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - PocoDoc - {18BCF3CC-9474-4D1C-9445-F783A49D886B} - PocoDoc - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoDocd - PocoDocd - PocoDocd - PocoDoc - PocoDoc - PocoDoc - PocoDocd - PocoDocd - PocoDocd - PocoDoc - PocoDoc - PocoDoc - - - bin\ - obj\PocoDoc\$(Configuration)\ - true - - - bin\ - obj\PocoDoc\$(Configuration)\ - false - - - bin\static_mt\ - obj\PocoDoc\$(Configuration)\ - true - - - bin\static_mt\ - obj\PocoDoc\$(Configuration)\ - false - - - bin\static_md\ - obj\PocoDoc\$(Configuration)\ - true - - - bin\static_md\ - obj\PocoDoc\$(Configuration)\ - false - - - bin64\ - obj64\PocoDoc\$(Configuration)\ - true - - - bin64\ - obj64\PocoDoc\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\PocoDoc\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\PocoDoc\$(Configuration)\ - false - - - bin64\static_md\ - obj64\PocoDoc\$(Configuration)\ - true - - - bin64\static_md\ - obj64\PocoDoc\$(Configuration)\ - false - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\PocoDocd.exe - ..\lib;%(AdditionalLibraryDirectories) - true - true - bin\PocoDocd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\PocoDoc.exe - ..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\PocoDocd.exe - ..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\PocoDocd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\PocoDoc.exe - ..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\PocoDocd.exe - ..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\PocoDocd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\PocoDoc.exe - ..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\PocoDocd.exe - ..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\PocoDocd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\PocoDoc.exe - ..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\PocoDocd.exe - ..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\PocoDocd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\PocoDoc.exe - ..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\PocoDocd.exe - ..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\PocoDocd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\PocoDoc.exe - ..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - true - - - - - - - - diff --git a/PocoDoc/PocoDoc_vs140.vcxproj.filters b/PocoDoc/PocoDoc_vs140.vcxproj.filters deleted file mode 100644 index 1a153e55e..000000000 --- a/PocoDoc/PocoDoc_vs140.vcxproj.filters +++ /dev/null @@ -1,36 +0,0 @@ - - - - - {0589641c-e57c-4b90-8772-d1b43d0d494e} - - - {67a5eeab-7002-40e2-931f-29584a6f6389} - - - {eae83bb8-8525-45bb-a5bb-112c4932b19a} - - - {a4ed9288-3964-4554-b89f-5b69c82f421d} - - - {2f11e5a5-fe08-4376-bb79-25902db49f0c} - - - {8e071748-60c5-40c3-9c41-a68db2d58b54} - - - - - App\Source Files - - - DocWriter\Source Files - - - - - DocWriter\Header Files - - - \ No newline at end of file diff --git a/PocoDoc/PocoDoc_vs150.sln b/PocoDoc/PocoDoc_vs150.sln deleted file mode 100644 index abd1d1500..000000000 --- a/PocoDoc/PocoDoc_vs150.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PocoDoc", "PocoDoc_vs150.vcxproj", "{18BCF3CC-9474-4D1C-9445-F783A49D886B}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_shared|Win32.Build.0 = release_shared|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_shared|x64.Build.0 = debug_shared|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_shared|x64.ActiveCfg = release_shared|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_shared|x64.Build.0 = release_shared|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_shared|x64.Deploy.0 = release_shared|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_md|x64.Build.0 = release_static_md|x64 - {18BCF3CC-9474-4D1C-9445-F783A49D886B}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PocoDoc/PocoDoc_vs150.vcxproj b/PocoDoc/PocoDoc_vs150.vcxproj deleted file mode 100644 index 100cca1a4..000000000 --- a/PocoDoc/PocoDoc_vs150.vcxproj +++ /dev/null @@ -1,613 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - PocoDoc - {18BCF3CC-9474-4D1C-9445-F783A49D886B} - PocoDoc - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PocoDocd - PocoDocd - PocoDocd - PocoDoc - PocoDoc - PocoDoc - PocoDocd - PocoDocd - PocoDocd - PocoDoc - PocoDoc - PocoDoc - - - bin\ - obj\PocoDoc\$(Configuration)\ - true - - - bin\ - obj\PocoDoc\$(Configuration)\ - false - - - bin\static_mt\ - obj\PocoDoc\$(Configuration)\ - true - - - bin\static_mt\ - obj\PocoDoc\$(Configuration)\ - false - - - bin\static_md\ - obj\PocoDoc\$(Configuration)\ - true - - - bin\static_md\ - obj\PocoDoc\$(Configuration)\ - false - - - bin64\ - obj64\PocoDoc\$(Configuration)\ - true - - - bin64\ - obj64\PocoDoc\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\PocoDoc\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\PocoDoc\$(Configuration)\ - false - - - bin64\static_md\ - obj64\PocoDoc\$(Configuration)\ - true - - - bin64\static_md\ - obj64\PocoDoc\$(Configuration)\ - false - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\PocoDocd.exe - ..\lib;%(AdditionalLibraryDirectories) - true - true - bin\PocoDocd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\PocoDoc.exe - ..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\PocoDocd.exe - ..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\PocoDocd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\PocoDoc.exe - ..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\PocoDocd.exe - ..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\PocoDocd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\PocoDoc.exe - ..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\PocoDocd.exe - ..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\PocoDocd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\PocoDoc.exe - ..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\PocoDocd.exe - ..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\PocoDocd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\PocoDoc.exe - ..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\PocoDocd.exe - ..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\PocoDocd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;..\CppParser\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\PocoDoc.exe - ..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - true - - - - - - - - diff --git a/PocoDoc/PocoDoc_vs150.vcxproj.filters b/PocoDoc/PocoDoc_vs150.vcxproj.filters deleted file mode 100644 index c4635c2a1..000000000 --- a/PocoDoc/PocoDoc_vs150.vcxproj.filters +++ /dev/null @@ -1,36 +0,0 @@ - - - - - {c2c13f67-585a-42be-a5a3-94c36b8e25b0} - - - {6b03285f-b4ee-4747-8830-e0114ca3192d} - - - {85b69c01-e79e-45bc-aaef-c629d899c1ff} - - - {d80c4728-48f7-4868-91df-06a08402f459} - - - {664b4ac2-ee58-41c7-ab27-10e33006b373} - - - {ce02f926-6e1f-4aef-a353-be3706620579} - - - - - App\Source Files - - - DocWriter\Source Files - - - - - DocWriter\Header Files - - - \ No newline at end of file diff --git a/ProGen/ProGen_vs140.sln b/ProGen/ProGen_vs140.sln deleted file mode 100644 index 2e895bc30..000000000 --- a/ProGen/ProGen_vs140.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ProGen", "ProGen_vs140.vcxproj", "{48D690D9-6520-4F30-A298-3132548716D0}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {48D690D9-6520-4F30-A298-3132548716D0}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.release_shared|Win32.Build.0 = release_shared|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_shared|x64.Build.0 = debug_shared|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.release_shared|x64.ActiveCfg = release_shared|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.release_shared|x64.Build.0 = release_shared|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.release_shared|x64.Deploy.0 = release_shared|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_md|x64.Build.0 = release_static_md|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/ProGen/ProGen_vs140.vcxproj b/ProGen/ProGen_vs140.vcxproj deleted file mode 100644 index c581b3236..000000000 --- a/ProGen/ProGen_vs140.vcxproj +++ /dev/null @@ -1,616 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - ProGen - {48D690D9-6520-4F30-A298-3132548716D0} - ProGen - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - progend - progend - progend - progen - progen - progen - progend - progend - progend - progen - progen - progen - - - bin\ - obj\ProGen\$(Configuration)\ - true - - - bin\ - obj\ProGen\$(Configuration)\ - false - - - bin\static_mt\ - obj\ProGen\$(Configuration)\ - true - - - bin\static_mt\ - obj\ProGen\$(Configuration)\ - false - - - bin\static_md\ - obj\ProGen\$(Configuration)\ - true - - - bin\static_md\ - obj\ProGen\$(Configuration)\ - false - - - bin64\ - obj64\ProGen\$(Configuration)\ - true - - - bin64\ - obj64\ProGen\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\ProGen\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\ProGen\$(Configuration)\ - false - - - bin64\static_md\ - obj64\ProGen\$(Configuration)\ - true - - - bin64\static_md\ - obj64\ProGen\$(Configuration)\ - false - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\progend.exe - ..\lib;%(AdditionalLibraryDirectories) - true - true - bin\progend.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\progen.exe - ..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\progend.exe - ..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\progend.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\progen.exe - ..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\progend.exe - ..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\progend.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\progen.exe - ..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\progend.exe - ..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\progend.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\progen.exe - ..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\progend.exe - ..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\progend.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\progen.exe - ..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\progend.exe - ..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\progend.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\progen.exe - ..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - true - - - true - - - - - - - - diff --git a/ProGen/ProGen_vs140.vcxproj.filters b/ProGen/ProGen_vs140.vcxproj.filters deleted file mode 100644 index 270fcf090..000000000 --- a/ProGen/ProGen_vs140.vcxproj.filters +++ /dev/null @@ -1,32 +0,0 @@ - - - - - {7792026e-5efe-4f6e-9758-7f631030776d} - - - {a4ebbde1-e6b4-45dd-9161-d21cf26e6cfc} - - - {afb59c76-22bc-4c8f-b54f-8b52d9812286} - - - - - Configuration Files - - - - - Source Files - - - Source Files - - - - - Header Files - - - \ No newline at end of file diff --git a/ProGen/ProGen_vs150.sln b/ProGen/ProGen_vs150.sln deleted file mode 100644 index f1633248d..000000000 --- a/ProGen/ProGen_vs150.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ProGen", "ProGen_vs150.vcxproj", "{48D690D9-6520-4F30-A298-3132548716D0}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {48D690D9-6520-4F30-A298-3132548716D0}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.release_shared|Win32.Build.0 = release_shared|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_shared|x64.Build.0 = debug_shared|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.release_shared|x64.ActiveCfg = release_shared|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.release_shared|x64.Build.0 = release_shared|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.release_shared|x64.Deploy.0 = release_shared|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_md|x64.Build.0 = release_static_md|x64 - {48D690D9-6520-4F30-A298-3132548716D0}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/ProGen/ProGen_vs150.vcxproj b/ProGen/ProGen_vs150.vcxproj deleted file mode 100644 index 164552453..000000000 --- a/ProGen/ProGen_vs150.vcxproj +++ /dev/null @@ -1,616 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - ProGen - {48D690D9-6520-4F30-A298-3132548716D0} - ProGen - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - progend - progend - progend - progen - progen - progen - progend - progend - progend - progen - progen - progen - - - bin\ - obj\ProGen\$(Configuration)\ - true - - - bin\ - obj\ProGen\$(Configuration)\ - false - - - bin\static_mt\ - obj\ProGen\$(Configuration)\ - true - - - bin\static_mt\ - obj\ProGen\$(Configuration)\ - false - - - bin\static_md\ - obj\ProGen\$(Configuration)\ - true - - - bin\static_md\ - obj\ProGen\$(Configuration)\ - false - - - bin64\ - obj64\ProGen\$(Configuration)\ - true - - - bin64\ - obj64\ProGen\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\ProGen\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\ProGen\$(Configuration)\ - false - - - bin64\static_md\ - obj64\ProGen\$(Configuration)\ - true - - - bin64\static_md\ - obj64\ProGen\$(Configuration)\ - false - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\progend.exe - ..\lib;%(AdditionalLibraryDirectories) - true - true - bin\progend.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\progen.exe - ..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\progend.exe - ..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\progend.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\progen.exe - ..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\progend.exe - ..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\progend.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\progen.exe - ..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\progend.exe - ..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\progend.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\progen.exe - ..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\progend.exe - ..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\progend.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\progen.exe - ..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\progend.exe - ..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\progend.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\progen.exe - ..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - true - - - true - - - - - - - - diff --git a/ProGen/ProGen_vs150.vcxproj.filters b/ProGen/ProGen_vs150.vcxproj.filters deleted file mode 100644 index db91804e7..000000000 --- a/ProGen/ProGen_vs150.vcxproj.filters +++ /dev/null @@ -1,32 +0,0 @@ - - - - - {0dad5653-ad57-4501-8fda-fe7906d197e2} - - - {26a65508-d856-4c15-869a-18989a0ec680} - - - {2054be60-9feb-4470-b120-d9e43d29e309} - - - - - Configuration Files - - - - - Source Files - - - Source Files - - - - - Header Files - - - \ No newline at end of file diff --git a/Prometheus/Prometheus_vs140.sln b/Prometheus/Prometheus_vs140.sln deleted file mode 100644 index aa9cdd5a6..000000000 --- a/Prometheus/Prometheus_vs140.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Prometheus", "Prometheus_vs140.vcxproj", "{FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{04B69538-1444-4A22-A98D-3C69CD7B44DA}" - ProjectSection(ProjectDependencies) = postProject - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C} = {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_shared|Win32.Build.0 = release_shared|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_shared|x64.Build.0 = debug_shared|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_shared|x64.ActiveCfg = release_shared|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_shared|x64.Build.0 = release_shared|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_shared|x64.Deploy.0 = release_shared|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_md|x64.Build.0 = release_static_md|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_shared|Win32.Build.0 = release_shared|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_shared|x64.Build.0 = debug_shared|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_shared|x64.ActiveCfg = release_shared|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_shared|x64.Build.0 = release_shared|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_shared|x64.Deploy.0 = release_shared|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_md|x64.Build.0 = release_static_md|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Prometheus/Prometheus_vs140.vcxproj b/Prometheus/Prometheus_vs140.vcxproj deleted file mode 100644 index b8c1cec47..000000000 --- a/Prometheus/Prometheus_vs140.vcxproj +++ /dev/null @@ -1,619 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Prometheus - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C} - Prometheus - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoPrometheusd - PocoPrometheusmdd - PocoPrometheusmtd - PocoPrometheus - PocoPrometheusmd - PocoPrometheusmt - PocoPrometheus64d - PocoPrometheusmdd - PocoPrometheusmtd - PocoPrometheus64 - PocoPrometheusmd - PocoPrometheusmt - - - ..\bin\ - obj\Prometheus\$(Configuration)\ - true - - - ..\bin\ - obj\Prometheus\$(Configuration)\ - false - - - ..\lib\ - obj\Prometheus\$(Configuration)\ - - - ..\lib\ - obj\Prometheus\$(Configuration)\ - - - ..\lib\ - obj\Prometheus\$(Configuration)\ - - - ..\lib\ - obj\Prometheus\$(Configuration)\ - - - ..\bin64\ - obj64\Prometheus\$(Configuration)\ - true - - - ..\bin64\ - obj64\Prometheus\$(Configuration)\ - false - - - ..\lib64\ - obj64\Prometheus\$(Configuration)\ - - - ..\lib64\ - obj64\Prometheus\$(Configuration)\ - - - ..\lib64\ - obj64\Prometheus\$(Configuration)\ - - - ..\lib64\ - obj64\Prometheus\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Prometheus_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoPrometheusd.dll - true - true - ..\bin\PocoPrometheusd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoPrometheusd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Prometheus_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoPrometheus.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoPrometheus.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoPrometheusmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoPrometheusmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoPrometheusmt.lib - - - - - Disabled - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoPrometheusmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoPrometheusmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoPrometheusmd.pdb - Level3 - - Default - true - - - ..\lib\PocoPrometheusmd.lib - - - - - Disabled - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Prometheus_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoPrometheus64d.dll - true - true - ..\bin64\PocoPrometheus64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoPrometheusd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Prometheus_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoPrometheus64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoPrometheus.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoPrometheusmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoPrometheusmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoPrometheusmt.lib - - - - - Disabled - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoPrometheusmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoPrometheusmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoPrometheusmd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Prometheus/Prometheus_vs140.vcxproj.filters b/Prometheus/Prometheus_vs140.vcxproj.filters deleted file mode 100644 index b8ce683c7..000000000 --- a/Prometheus/Prometheus_vs140.vcxproj.filters +++ /dev/null @@ -1,117 +0,0 @@ - - - - - {ed6a131b-f3a8-4f03-91f1-49f5208f73b7} - - - {7c2a7c64-68c6-48c3-9e77-259b1dc511f6} - - - {9fabbf06-bd89-4e78-abd5-e709db2f3318} - - - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - - - - \ No newline at end of file diff --git a/Prometheus/Prometheus_vs150.sln b/Prometheus/Prometheus_vs150.sln deleted file mode 100644 index f6470ac9b..000000000 --- a/Prometheus/Prometheus_vs150.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Prometheus", "Prometheus_vs150.vcxproj", "{FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{04B69538-1444-4A22-A98D-3C69CD7B44DA}" - ProjectSection(ProjectDependencies) = postProject - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C} = {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_shared|Win32.Build.0 = release_shared|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_shared|x64.Build.0 = debug_shared|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_shared|x64.ActiveCfg = release_shared|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_shared|x64.Build.0 = release_shared|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_shared|x64.Deploy.0 = release_shared|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_md|x64.Build.0 = release_static_md|x64 - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_shared|Win32.Build.0 = release_shared|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_shared|x64.Build.0 = debug_shared|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_shared|x64.ActiveCfg = release_shared|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_shared|x64.Build.0 = release_shared|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_shared|x64.Deploy.0 = release_shared|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_md|x64.Build.0 = release_static_md|x64 - {04B69538-1444-4A22-A98D-3C69CD7B44DA}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Prometheus/Prometheus_vs150.vcxproj b/Prometheus/Prometheus_vs150.vcxproj deleted file mode 100644 index 63931976a..000000000 --- a/Prometheus/Prometheus_vs150.vcxproj +++ /dev/null @@ -1,619 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Prometheus - {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C} - Prometheus - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PocoPrometheusd - PocoPrometheusmdd - PocoPrometheusmtd - PocoPrometheus - PocoPrometheusmd - PocoPrometheusmt - PocoPrometheus64d - PocoPrometheusmdd - PocoPrometheusmtd - PocoPrometheus64 - PocoPrometheusmd - PocoPrometheusmt - - - ..\bin\ - obj\Prometheus\$(Configuration)\ - true - - - ..\bin\ - obj\Prometheus\$(Configuration)\ - false - - - ..\lib\ - obj\Prometheus\$(Configuration)\ - - - ..\lib\ - obj\Prometheus\$(Configuration)\ - - - ..\lib\ - obj\Prometheus\$(Configuration)\ - - - ..\lib\ - obj\Prometheus\$(Configuration)\ - - - ..\bin64\ - obj64\Prometheus\$(Configuration)\ - true - - - ..\bin64\ - obj64\Prometheus\$(Configuration)\ - false - - - ..\lib64\ - obj64\Prometheus\$(Configuration)\ - - - ..\lib64\ - obj64\Prometheus\$(Configuration)\ - - - ..\lib64\ - obj64\Prometheus\$(Configuration)\ - - - ..\lib64\ - obj64\Prometheus\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Prometheus_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoPrometheusd.dll - true - true - ..\bin\PocoPrometheusd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoPrometheusd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Prometheus_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoPrometheus.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoPrometheus.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoPrometheusmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoPrometheusmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoPrometheusmt.lib - - - - - Disabled - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoPrometheusmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoPrometheusmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoPrometheusmd.pdb - Level3 - - Default - true - - - ..\lib\PocoPrometheusmd.lib - - - - - Disabled - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Prometheus_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoPrometheus64d.dll - true - true - ..\bin64\PocoPrometheus64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoPrometheusd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Prometheus_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoPrometheus64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoPrometheus.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoPrometheusmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoPrometheusmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoPrometheusmt.lib - - - - - Disabled - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoPrometheusmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoPrometheusmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include; ..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoPrometheusmd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Prometheus/Prometheus_vs150.vcxproj.filters b/Prometheus/Prometheus_vs150.vcxproj.filters deleted file mode 100644 index de9a3a90e..000000000 --- a/Prometheus/Prometheus_vs150.vcxproj.filters +++ /dev/null @@ -1,117 +0,0 @@ - - - - - {240326af-19f6-4bd8-9f0c-379d8843a11a} - - - {259f15f5-0be6-4ddb-ace2-eca7f7ffff2f} - - - {97714498-6e40-4ef5-89a1-1c24d1b0b836} - - - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - Prometheus\Header Files - - - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - Prometheus\Source Files - - - - - - \ No newline at end of file diff --git a/Prometheus/samples/MetricsSample/MetricsSample_vs140.vcxproj b/Prometheus/samples/MetricsSample/MetricsSample_vs140.vcxproj deleted file mode 100644 index b66be6952..000000000 --- a/Prometheus/samples/MetricsSample/MetricsSample_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - MetricsSample - {D256BB4C-7287-3E74-BC1A-31E116A8CE36} - MetricsSample - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - MetricsSampled - MetricsSampled - MetricsSampled - MetricsSample - MetricsSample - MetricsSample - MetricsSampled - MetricsSampled - MetricsSampled - MetricsSample - MetricsSample - MetricsSample - - - bin\ - obj\MetricsSample\$(Configuration)\ - true - - - bin\ - obj\MetricsSample\$(Configuration)\ - false - - - bin\static_mt\ - obj\MetricsSample\$(Configuration)\ - true - - - bin\static_mt\ - obj\MetricsSample\$(Configuration)\ - false - - - bin\static_md\ - obj\MetricsSample\$(Configuration)\ - true - - - bin\static_md\ - obj\MetricsSample\$(Configuration)\ - false - - - bin64\ - obj64\MetricsSample\$(Configuration)\ - true - - - bin64\ - obj64\MetricsSample\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\MetricsSample\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\MetricsSample\$(Configuration)\ - false - - - bin64\static_md\ - obj64\MetricsSample\$(Configuration)\ - true - - - bin64\static_md\ - obj64\MetricsSample\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\MetricsSampled.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\MetricsSampled.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\MetricsSample.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\MetricsSampled.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\MetricsSampled.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\MetricsSample.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\MetricsSampled.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\MetricsSampled.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\MetricsSample.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\MetricsSampled.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\MetricsSampled.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\MetricsSample.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\MetricsSampled.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\MetricsSampled.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\MetricsSample.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\MetricsSampled.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\MetricsSampled.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\MetricsSample.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Prometheus/samples/MetricsSample/MetricsSample_vs140.vcxproj.filters b/Prometheus/samples/MetricsSample/MetricsSample_vs140.vcxproj.filters deleted file mode 100644 index 7dee11eda..000000000 --- a/Prometheus/samples/MetricsSample/MetricsSample_vs140.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {d576aae7-63b4-4733-ac41-46a4a2fbe5d2} - - - - - Source Files - - - \ No newline at end of file diff --git a/Prometheus/samples/MetricsSample/MetricsSample_vs150.vcxproj b/Prometheus/samples/MetricsSample/MetricsSample_vs150.vcxproj deleted file mode 100644 index b13b45f66..000000000 --- a/Prometheus/samples/MetricsSample/MetricsSample_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - MetricsSample - {D256BB4C-7287-3E74-BC1A-31E116A8CE36} - MetricsSample - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - MetricsSampled - MetricsSampled - MetricsSampled - MetricsSample - MetricsSample - MetricsSample - MetricsSampled - MetricsSampled - MetricsSampled - MetricsSample - MetricsSample - MetricsSample - - - bin\ - obj\MetricsSample\$(Configuration)\ - true - - - bin\ - obj\MetricsSample\$(Configuration)\ - false - - - bin\static_mt\ - obj\MetricsSample\$(Configuration)\ - true - - - bin\static_mt\ - obj\MetricsSample\$(Configuration)\ - false - - - bin\static_md\ - obj\MetricsSample\$(Configuration)\ - true - - - bin\static_md\ - obj\MetricsSample\$(Configuration)\ - false - - - bin64\ - obj64\MetricsSample\$(Configuration)\ - true - - - bin64\ - obj64\MetricsSample\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\MetricsSample\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\MetricsSample\$(Configuration)\ - false - - - bin64\static_md\ - obj64\MetricsSample\$(Configuration)\ - true - - - bin64\static_md\ - obj64\MetricsSample\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\MetricsSampled.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\MetricsSampled.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\MetricsSample.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\MetricsSampled.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\MetricsSampled.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\MetricsSample.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\MetricsSampled.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\MetricsSampled.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\MetricsSample.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\MetricsSampled.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\MetricsSampled.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\MetricsSample.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\MetricsSampled.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\MetricsSampled.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\MetricsSample.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\MetricsSampled.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\MetricsSampled.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\MetricsSample.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Prometheus/samples/MetricsSample/MetricsSample_vs150.vcxproj.filters b/Prometheus/samples/MetricsSample/MetricsSample_vs150.vcxproj.filters deleted file mode 100644 index acf00fb88..000000000 --- a/Prometheus/samples/MetricsSample/MetricsSample_vs150.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {07345d00-18f9-4eb0-a7e8-5d3ff8ccdcad} - - - - - Source Files - - - \ No newline at end of file diff --git a/Prometheus/samples/samples_vs140.sln b/Prometheus/samples/samples_vs140.sln deleted file mode 100644 index 4b0c57572..000000000 --- a/Prometheus/samples/samples_vs140.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MetricsSample", "MetricsSample\MetricsSample_vs140.vcxproj", "{D256BB4C-7287-3E74-BC1A-31E116A8CE36}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_shared|Win32.Build.0 = release_shared|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_shared|x64.Build.0 = debug_shared|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_shared|x64.ActiveCfg = release_shared|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_shared|x64.Build.0 = release_shared|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_shared|x64.Deploy.0 = release_shared|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_md|x64.Build.0 = release_static_md|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Prometheus/samples/samples_vs150.sln b/Prometheus/samples/samples_vs150.sln deleted file mode 100644 index 81fb84bde..000000000 --- a/Prometheus/samples/samples_vs150.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MetricsSample", "MetricsSample\MetricsSample_vs150.vcxproj", "{D256BB4C-7287-3E74-BC1A-31E116A8CE36}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_shared|Win32.Build.0 = release_shared|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_shared|x64.Build.0 = debug_shared|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_shared|x64.ActiveCfg = release_shared|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_shared|x64.Build.0 = release_shared|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_shared|x64.Deploy.0 = release_shared|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_md|x64.Build.0 = release_static_md|x64 - {D256BB4C-7287-3E74-BC1A-31E116A8CE36}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Prometheus/testsuite/TestSuite_vs140.vcxproj b/Prometheus/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index afa41b45d..000000000 --- a/Prometheus/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,637 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {04B69538-1444-4A22-A98D-3C69CD7B44DA} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/Prometheus/testsuite/TestSuite_vs140.vcxproj.filters b/Prometheus/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index dc3880ebc..000000000 --- a/Prometheus/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,60 +0,0 @@ - - - - - {34de6456-93b0-4c4f-afcf-c9e7466f1ceb} - - - {fe5cf256-684c-471c-82e8-d09ec24259c3} - - - - - Source Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Header Files - - - \ No newline at end of file diff --git a/Prometheus/testsuite/TestSuite_vs150.vcxproj b/Prometheus/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index 369878474..000000000 --- a/Prometheus/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,637 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {04B69538-1444-4A22-A98D-3C69CD7B44DA} - TestSuite - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;..\..\Prometheus\include;.\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/Prometheus/testsuite/TestSuite_vs150.vcxproj.filters b/Prometheus/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index 0c1d172ab..000000000 --- a/Prometheus/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,60 +0,0 @@ - - - - - {c8e720dc-690b-4251-b06c-483e203456c1} - - - {0c9cdb18-2727-425a-9ac7-f698a21f88f9} - - - - - Source Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Header Files - - - \ No newline at end of file diff --git a/Redis/Redis_vs140.sln b/Redis/Redis_vs140.sln deleted file mode 100644 index 42ac0ccda..000000000 --- a/Redis/Redis_vs140.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Redis", "Redis_vs140.vcxproj", "{12E39EE2-7049-312D-B390-7568D727CA25}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{96CF3103-E49E-3F5E-A11D-6DBCDA043053}" - ProjectSection(ProjectDependencies) = postProject - {12E39EE2-7049-312D-B390-7568D727CA25} = {12E39EE2-7049-312D-B390-7568D727CA25} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_shared|Win32.Build.0 = release_shared|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_shared|x64.Build.0 = debug_shared|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_shared|x64.ActiveCfg = release_shared|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_shared|x64.Build.0 = release_shared|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_shared|x64.Deploy.0 = release_shared|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_md|x64.Build.0 = release_static_md|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.Build.0 = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.Build.0 = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.ActiveCfg = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.Build.0 = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.Deploy.0 = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.Build.0 = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Redis/Redis_vs140.vcxproj b/Redis/Redis_vs140.vcxproj deleted file mode 100644 index 6f3d8f20c..000000000 --- a/Redis/Redis_vs140.vcxproj +++ /dev/null @@ -1,599 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Redis - {12E39EE2-7049-312D-B390-7568D727CA25} - Redis - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoRedisd - PocoRedismdd - PocoRedismtd - PocoRedis - PocoRedismd - PocoRedismt - PocoRedis64d - PocoRedismdd - PocoRedismtd - PocoRedis64 - PocoRedismd - PocoRedismt - - - ..\bin\ - obj\Redis\$(Configuration)\ - true - - - ..\bin\ - obj\Redis\$(Configuration)\ - false - - - ..\lib\ - obj\Redis\$(Configuration)\ - - - ..\lib\ - obj\Redis\$(Configuration)\ - - - ..\lib\ - obj\Redis\$(Configuration)\ - - - ..\lib\ - obj\Redis\$(Configuration)\ - - - ..\bin64\ - obj64\Redis\$(Configuration)\ - true - - - ..\bin64\ - obj64\Redis\$(Configuration)\ - false - - - ..\lib64\ - obj64\Redis\$(Configuration)\ - - - ..\lib64\ - obj64\Redis\$(Configuration)\ - - - ..\lib64\ - obj64\Redis\$(Configuration)\ - - - ..\lib64\ - obj64\Redis\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Redis_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoRedisd.dll - true - true - ..\bin\PocoRedisd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoRedisd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Redis_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoRedis.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoRedis.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoRedismtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoRedismtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoRedismt.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoRedismdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoRedismdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoRedismd.pdb - Level3 - - Default - true - - - ..\lib\PocoRedismd.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Redis_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoRedis64d.dll - true - true - ..\bin64\PocoRedis64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoRedisd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Redis_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoRedis64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoRedis.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoRedismtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoRedismtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoRedismt.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoRedismdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoRedismdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoRedismd.lib - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Redis/Redis_vs140.vcxproj.filters b/Redis/Redis_vs140.vcxproj.filters deleted file mode 100644 index ebc585ed8..000000000 --- a/Redis/Redis_vs140.vcxproj.filters +++ /dev/null @@ -1,78 +0,0 @@ - - - - - {a002e40a-2cc1-4178-bd62-69ddc47f3585} - - - {f83d60f6-32b8-4459-9a66-094f468aa5cf} - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - \ No newline at end of file diff --git a/Redis/Redis_vs150.sln b/Redis/Redis_vs150.sln deleted file mode 100644 index f2d8f023c..000000000 --- a/Redis/Redis_vs150.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Redis", "Redis_vs150.vcxproj", "{12E39EE2-7049-312D-B390-7568D727CA25}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{96CF3103-E49E-3F5E-A11D-6DBCDA043053}" - ProjectSection(ProjectDependencies) = postProject - {12E39EE2-7049-312D-B390-7568D727CA25} = {12E39EE2-7049-312D-B390-7568D727CA25} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_shared|Win32.Build.0 = release_shared|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_shared|x64.Build.0 = debug_shared|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_shared|x64.ActiveCfg = release_shared|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_shared|x64.Build.0 = release_shared|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_shared|x64.Deploy.0 = release_shared|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_md|x64.Build.0 = release_static_md|x64 - {12E39EE2-7049-312D-B390-7568D727CA25}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.Build.0 = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.Build.0 = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.ActiveCfg = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.Build.0 = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_shared|x64.Deploy.0 = release_shared|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.Build.0 = release_static_md|x64 - {96CF3103-E49E-3F5E-A11D-6DBCDA043053}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Redis/Redis_vs150.vcxproj b/Redis/Redis_vs150.vcxproj deleted file mode 100644 index d1f01a1db..000000000 --- a/Redis/Redis_vs150.vcxproj +++ /dev/null @@ -1,599 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Redis - {12E39EE2-7049-312D-B390-7568D727CA25} - Redis - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PocoRedisd - PocoRedismdd - PocoRedismtd - PocoRedis - PocoRedismd - PocoRedismt - PocoRedis64d - PocoRedismdd - PocoRedismtd - PocoRedis64 - PocoRedismd - PocoRedismt - - - ..\bin\ - obj\Redis\$(Configuration)\ - true - - - ..\bin\ - obj\Redis\$(Configuration)\ - false - - - ..\lib\ - obj\Redis\$(Configuration)\ - - - ..\lib\ - obj\Redis\$(Configuration)\ - - - ..\lib\ - obj\Redis\$(Configuration)\ - - - ..\lib\ - obj\Redis\$(Configuration)\ - - - ..\bin64\ - obj64\Redis\$(Configuration)\ - true - - - ..\bin64\ - obj64\Redis\$(Configuration)\ - false - - - ..\lib64\ - obj64\Redis\$(Configuration)\ - - - ..\lib64\ - obj64\Redis\$(Configuration)\ - - - ..\lib64\ - obj64\Redis\$(Configuration)\ - - - ..\lib64\ - obj64\Redis\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Redis_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoRedisd.dll - true - true - ..\bin\PocoRedisd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoRedisd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Redis_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoRedis.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoRedis.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoRedismtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoRedismtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoRedismt.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoRedismdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoRedismdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoRedismd.pdb - Level3 - - Default - true - - - ..\lib\PocoRedismd.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Redis_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoRedis64d.dll - true - true - ..\bin64\PocoRedis64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoRedisd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Redis_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoRedis64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoRedis.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoRedismtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoRedismtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoRedismt.lib - - - - - Disabled - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoRedismdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoRedismdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoRedismd.lib - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - - - - - - - - - - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Redis/Redis_vs150.vcxproj.filters b/Redis/Redis_vs150.vcxproj.filters deleted file mode 100644 index 50d3aa244..000000000 --- a/Redis/Redis_vs150.vcxproj.filters +++ /dev/null @@ -1,78 +0,0 @@ - - - - - {9a02ac42-0642-4503-b98c-861034e8e664} - - - {d3f2d5fe-51f2-48a6-8dbc-d18db8f4ed67} - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - - \ No newline at end of file diff --git a/Redis/testsuite/TestSuite_vs140.vcxproj b/Redis/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index fa6eee588..000000000 --- a/Redis/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,617 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {96CF3103-E49E-3F5E-A11D-6DBCDA043053} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - true - - - true - - - - - - - - - diff --git a/Redis/testsuite/TestSuite_vs140.vcxproj.filters b/Redis/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index 21ceea2d6..000000000 --- a/Redis/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,30 +0,0 @@ - - - - - {b2ed1f2d-6ac2-463c-8f06-b57559c5f74d} - - - {bf5bb84b-2a95-49ae-b1c3-a701d4181a33} - - - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/Redis/testsuite/TestSuite_vs150.vcxproj b/Redis/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index 048d6e23b..000000000 --- a/Redis/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,617 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {96CF3103-E49E-3F5E-A11D-6DBCDA043053} - TestSuite - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - true - - - true - - - - - - - - - diff --git a/Redis/testsuite/TestSuite_vs150.vcxproj.filters b/Redis/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index 97be267a2..000000000 --- a/Redis/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,30 +0,0 @@ - - - - - {96f8994d-b31c-40c1-8465-5ffe300c10e1} - - - {5a05e190-43cc-41d5-be65-53080d9ffde4} - - - - - Source Files - - - Source Files - - - Source Files - - - - - Header Files - - - Header Files - - - \ No newline at end of file diff --git a/SevenZip/SevenZip_vs140.sln b/SevenZip/SevenZip_vs140.sln deleted file mode 100644 index beca6f68d..000000000 --- a/SevenZip/SevenZip_vs140.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SevenZip", "SevenZip_vs140.vcxproj", "{BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_shared|Win32.Build.0 = release_shared|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_shared|x64.Build.0 = debug_shared|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_shared|x64.ActiveCfg = release_shared|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_shared|x64.Build.0 = release_shared|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_shared|x64.Deploy.0 = release_shared|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_md|x64.Build.0 = release_static_md|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/SevenZip/SevenZip_vs140.vcxproj b/SevenZip/SevenZip_vs140.vcxproj deleted file mode 100644 index 539d9a818..000000000 --- a/SevenZip/SevenZip_vs140.vcxproj +++ /dev/null @@ -1,645 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - SevenZip - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D} - SevenZip - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoSevenZipd - PocoSevenZipmdd - PocoSevenZipmtd - PocoSevenZip - PocoSevenZipmd - PocoSevenZipmt - PocoSevenZipd - PocoSevenZipmdd - PocoSevenZipmtd - PocoSevenZip - PocoSevenZipmd - PocoSevenZipmt - - - ..\bin\ - obj\SevenZip\$(Configuration)\ - true - - - ..\bin\ - obj\SevenZip\$(Configuration)\ - false - - - ..\lib\ - obj\SevenZip\$(Configuration)\ - - - ..\lib\ - obj\SevenZip\$(Configuration)\ - - - ..\lib\ - obj\SevenZip\$(Configuration)\ - - - ..\lib\ - obj\SevenZip\$(Configuration)\ - - - ..\bin64\ - obj64\SevenZip\$(Configuration)\ - true - - - ..\bin64\ - obj64\SevenZip\$(Configuration)\ - false - - - ..\lib64\ - obj64\SevenZip\$(Configuration)\ - - - ..\lib64\ - obj64\SevenZip\$(Configuration)\ - - - ..\lib64\ - obj64\SevenZip\$(Configuration)\ - - - ..\lib64\ - obj64\SevenZip\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;SevenZip_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\bin\PocoSevenZipd.dll - true - true - ..\bin\PocoSevenZipd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoSevenZipd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;SevenZip_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\bin\PocoSevenZip.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoSevenZip.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoSevenZipmtd.pdb - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib\PocoSevenZipmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib\PocoSevenZipmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoSevenZipmdd.pdb - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib\PocoSevenZipmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoSevenZipmd.pdb - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib\PocoSevenZipmd.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;SevenZip_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\bin64\PocoSevenZip64d.dll - true - true - ..\bin64\PocoSevenZip64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoSevenZipd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;SevenZip_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\bin64\PocoSevenZip64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoSevenZip.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoSevenZipmtd.pdb - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib64\PocoSevenZipmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib64\PocoSevenZipmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoSevenZipmdd.pdb - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib64\PocoSevenZipmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib64\PocoSevenZipmd.lib - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/SevenZip/SevenZip_vs140.vcxproj.filters b/SevenZip/SevenZip_vs140.vcxproj.filters deleted file mode 100644 index bac1bd3bc..000000000 --- a/SevenZip/SevenZip_vs140.vcxproj.filters +++ /dev/null @@ -1,141 +0,0 @@ - - - - - {ea7c2039-9c09-4bc4-9601-bd4891ddefef} - - - {5ce6ae2f-755e-42f4-8a63-a49fcd741119} - - - {bf0fe1a8-dcf2-4cd1-9835-0cdf90e8e403} - - - {04954e1d-9673-4f89-881a-d123571a0760} - - - {485998bc-a6d2-4ab9-96f8-e825791aca7c} - - - {671dfba1-c237-48a4-bce4-4c7f1b10942d} - - - {08763a30-3a1c-4457-8022-111ca92c4d13} - - - {7ddb2e5d-57e1-43a2-8f85-0c8756d2131b} - - - {ee54eca9-ff43-4af7-9c13-fc1eddcd5918} - - - - - Archive\Header Files - - - Archive\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - SevenZip\Header Files - - - - - Archive\Source Files - - - Archive\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - - - - \ No newline at end of file diff --git a/SevenZip/SevenZip_vs150.sln b/SevenZip/SevenZip_vs150.sln deleted file mode 100644 index ec0dc501b..000000000 --- a/SevenZip/SevenZip_vs150.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SevenZip", "SevenZip_vs150.vcxproj", "{BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_shared|Win32.Build.0 = release_shared|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_shared|x64.Build.0 = debug_shared|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_shared|x64.ActiveCfg = release_shared|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_shared|x64.Build.0 = release_shared|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_shared|x64.Deploy.0 = release_shared|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_md|x64.Build.0 = release_static_md|x64 - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/SevenZip/SevenZip_vs150.vcxproj b/SevenZip/SevenZip_vs150.vcxproj deleted file mode 100644 index 72880010d..000000000 --- a/SevenZip/SevenZip_vs150.vcxproj +++ /dev/null @@ -1,645 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - SevenZip - {BBDBC9A3-15CD-495B-9B16-D03CFBFB8D2D} - SevenZip - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PocoSevenZipd - PocoSevenZipmdd - PocoSevenZipmtd - PocoSevenZip - PocoSevenZipmd - PocoSevenZipmt - PocoSevenZipd - PocoSevenZipmdd - PocoSevenZipmtd - PocoSevenZip - PocoSevenZipmd - PocoSevenZipmt - - - ..\bin\ - obj\SevenZip\$(Configuration)\ - true - - - ..\bin\ - obj\SevenZip\$(Configuration)\ - false - - - ..\lib\ - obj\SevenZip\$(Configuration)\ - - - ..\lib\ - obj\SevenZip\$(Configuration)\ - - - ..\lib\ - obj\SevenZip\$(Configuration)\ - - - ..\lib\ - obj\SevenZip\$(Configuration)\ - - - ..\bin64\ - obj64\SevenZip\$(Configuration)\ - true - - - ..\bin64\ - obj64\SevenZip\$(Configuration)\ - false - - - ..\lib64\ - obj64\SevenZip\$(Configuration)\ - - - ..\lib64\ - obj64\SevenZip\$(Configuration)\ - - - ..\lib64\ - obj64\SevenZip\$(Configuration)\ - - - ..\lib64\ - obj64\SevenZip\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;SevenZip_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\bin\PocoSevenZipd.dll - true - true - ..\bin\PocoSevenZipd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoSevenZipd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;SevenZip_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\bin\PocoSevenZip.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoSevenZip.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoSevenZipmtd.pdb - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib\PocoSevenZipmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib\PocoSevenZipmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoSevenZipmdd.pdb - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib\PocoSevenZipmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoSevenZipmd.pdb - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib\PocoSevenZipmd.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;SevenZip_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\bin64\PocoSevenZip64d.dll - true - true - ..\bin64\PocoSevenZip64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoSevenZipd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;SevenZip_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\bin64\PocoSevenZip64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoSevenZip.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoSevenZipmtd.pdb - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib64\PocoSevenZipmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib64\PocoSevenZipmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoSevenZipmdd.pdb - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib64\PocoSevenZipmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib64\PocoSevenZipmd.lib - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/SevenZip/SevenZip_vs150.vcxproj.filters b/SevenZip/SevenZip_vs150.vcxproj.filters deleted file mode 100644 index 23b7d1189..000000000 --- a/SevenZip/SevenZip_vs150.vcxproj.filters +++ /dev/null @@ -1,141 +0,0 @@ - - - - - {18c46e88-2e60-427a-bd2f-6e5b3f00248c} - - - {34f2d8f4-6b71-41c5-87a0-6990707ad778} - - - {3ee18d0a-bfd7-4a4d-8dc4-eebad866a132} - - - {44783ab3-bd1d-4f82-9912-b65c9267df46} - - - {06ef8685-8b6e-4280-9560-a1c335dece49} - - - {3a660061-6f57-4884-a923-e9397a15ec3c} - - - {0c940514-5bd9-4fde-a090-aebdf0602f97} - - - {3d20d082-699a-439f-976a-4eb4a3a59d36} - - - {5cd51d44-2984-4cec-8505-68069fda518d} - - - - - Archive\Header Files - - - Archive\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - LZMA SDK\Header Files - - - SevenZip\Header Files - - - - - Archive\Source Files - - - Archive\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - LZMA SDK\Source Files - - - - - - \ No newline at end of file diff --git a/SevenZip/samples/samples_vs140.sln b/SevenZip/samples/samples_vs140.sln deleted file mode 100644 index bcc2726e3..000000000 --- a/SevenZip/samples/samples_vs140.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "un7zip", "un7zip\un7zip_vs140.vcxproj", "{897F888B-0819-319B-A305-67BBE1625297}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {897F888B-0819-319B-A305-67BBE1625297}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.release_shared|Win32.Build.0 = release_shared|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {897F888B-0819-319B-A305-67BBE1625297}.debug_shared|x64.Build.0 = debug_shared|x64 - {897F888B-0819-319B-A305-67BBE1625297}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {897F888B-0819-319B-A305-67BBE1625297}.release_shared|x64.ActiveCfg = release_shared|x64 - {897F888B-0819-319B-A305-67BBE1625297}.release_shared|x64.Build.0 = release_shared|x64 - {897F888B-0819-319B-A305-67BBE1625297}.release_shared|x64.Deploy.0 = release_shared|x64 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_md|x64.Build.0 = release_static_md|x64 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/SevenZip/samples/samples_vs150.sln b/SevenZip/samples/samples_vs150.sln deleted file mode 100644 index e94c7d7e0..000000000 --- a/SevenZip/samples/samples_vs150.sln +++ /dev/null @@ -1,61 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "un7zip", "un7zip\un7zip_vs150.vcxproj", "{897F888B-0819-319B-A305-67BBE1625297}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {897F888B-0819-319B-A305-67BBE1625297}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.release_shared|Win32.Build.0 = release_shared|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {897F888B-0819-319B-A305-67BBE1625297}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {897F888B-0819-319B-A305-67BBE1625297}.debug_shared|x64.Build.0 = debug_shared|x64 - {897F888B-0819-319B-A305-67BBE1625297}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {897F888B-0819-319B-A305-67BBE1625297}.release_shared|x64.ActiveCfg = release_shared|x64 - {897F888B-0819-319B-A305-67BBE1625297}.release_shared|x64.Build.0 = release_shared|x64 - {897F888B-0819-319B-A305-67BBE1625297}.release_shared|x64.Deploy.0 = release_shared|x64 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {897F888B-0819-319B-A305-67BBE1625297}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_md|x64.Build.0 = release_static_md|x64 - {897F888B-0819-319B-A305-67BBE1625297}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/SevenZip/samples/un7zip/un7zip_vs140.vcxproj b/SevenZip/samples/un7zip/un7zip_vs140.vcxproj deleted file mode 100644 index aae75711a..000000000 --- a/SevenZip/samples/un7zip/un7zip_vs140.vcxproj +++ /dev/null @@ -1,603 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - un7zip - {897F888B-0819-319B-A305-67BBE1625297} - un7zip - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - un7zipd - un7zipd - un7zipd - un7zip - un7zip - un7zip - un7zipd - un7zipd - un7zipd - un7zip - un7zip - un7zip - - - bin\ - obj\un7zip\$(Configuration)\ - true - - - bin\ - obj\un7zip\$(Configuration)\ - false - - - bin\static_mt\ - obj\un7zip\$(Configuration)\ - true - - - bin\static_mt\ - obj\un7zip\$(Configuration)\ - false - - - bin\static_md\ - obj\un7zip\$(Configuration)\ - true - - - bin\static_md\ - obj\un7zip\$(Configuration)\ - false - - - bin64\ - obj64\un7zip\$(Configuration)\ - true - - - bin64\ - obj64\un7zip\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\un7zip\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\un7zip\$(Configuration)\ - false - - - bin64\static_md\ - obj64\un7zip\$(Configuration)\ - true - - - bin64\static_md\ - obj64\un7zip\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin\un7zipd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\un7zipd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin\un7zip.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\un7zipd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\un7zipd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\un7zip.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\un7zipd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\un7zipd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\un7zip.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin64\un7zipd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\un7zipd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin64\un7zip.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\un7zipd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\un7zipd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\un7zip.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\un7zipd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\un7zipd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\un7zip.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/SevenZip/samples/un7zip/un7zip_vs140.vcxproj.filters b/SevenZip/samples/un7zip/un7zip_vs140.vcxproj.filters deleted file mode 100644 index 52ae9c0ef..000000000 --- a/SevenZip/samples/un7zip/un7zip_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {80a3be1e-f094-4ac2-9f15-d3b8df803e9b} - - - {b963a45b-d215-4149-90ff-a7d32dec1e78} - - - - - Source Files - - - \ No newline at end of file diff --git a/SevenZip/samples/un7zip/un7zip_vs150.vcxproj b/SevenZip/samples/un7zip/un7zip_vs150.vcxproj deleted file mode 100644 index 059f90e32..000000000 --- a/SevenZip/samples/un7zip/un7zip_vs150.vcxproj +++ /dev/null @@ -1,603 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - un7zip - {897F888B-0819-319B-A305-67BBE1625297} - un7zip - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - un7zipd - un7zipd - un7zipd - un7zip - un7zip - un7zip - un7zipd - un7zipd - un7zipd - un7zip - un7zip - un7zip - - - bin\ - obj\un7zip\$(Configuration)\ - true - - - bin\ - obj\un7zip\$(Configuration)\ - false - - - bin\static_mt\ - obj\un7zip\$(Configuration)\ - true - - - bin\static_mt\ - obj\un7zip\$(Configuration)\ - false - - - bin\static_md\ - obj\un7zip\$(Configuration)\ - true - - - bin\static_md\ - obj\un7zip\$(Configuration)\ - false - - - bin64\ - obj64\un7zip\$(Configuration)\ - true - - - bin64\ - obj64\un7zip\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\un7zip\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\un7zip\$(Configuration)\ - false - - - bin64\static_md\ - obj64\un7zip\$(Configuration)\ - true - - - bin64\static_md\ - obj64\un7zip\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin\un7zipd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\un7zipd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin\un7zip.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\un7zipd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\un7zipd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\un7zip.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\un7zipd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\un7zipd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\un7zip.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin64\un7zipd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\un7zipd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin64\un7zip.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\un7zipd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\un7zipd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\un7zip.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\un7zipd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\un7zipd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\SevenZip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\un7zip.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/SevenZip/samples/un7zip/un7zip_vs150.vcxproj.filters b/SevenZip/samples/un7zip/un7zip_vs150.vcxproj.filters deleted file mode 100644 index 191e93a8e..000000000 --- a/SevenZip/samples/un7zip/un7zip_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {fa113c1c-4427-4870-b4e8-c091320278ee} - - - {33e67c2d-e666-42e5-a4d6-0e1cf86a0fb6} - - - - - Source Files - - - \ No newline at end of file diff --git a/Util/Util_vs140.sln b/Util/Util_vs140.sln deleted file mode 100644 index 7a5022231..000000000 --- a/Util/Util_vs140.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Util", "Util_vs140.vcxproj", "{6FF56CDB-787A-4714-A28C-919003F9FA6C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{E40E738C-447B-40F4-A878-EBA9A2459270}" - ProjectSection(ProjectDependencies) = postProject - {6FF56CDB-787A-4714-A28C-919003F9FA6C} = {6FF56CDB-787A-4714-A28C-919003F9FA6C} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_shared|Win32.Build.0 = release_shared|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_shared|x64.Build.0 = debug_shared|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_shared|x64.ActiveCfg = release_shared|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_shared|x64.Build.0 = release_shared|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_shared|x64.Deploy.0 = release_shared|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_md|x64.Build.0 = release_static_md|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_shared|Win32.Build.0 = release_shared|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_shared|x64.Build.0 = debug_shared|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_shared|x64.ActiveCfg = release_shared|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_shared|x64.Build.0 = release_shared|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_shared|x64.Deploy.0 = release_shared|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_md|x64.Build.0 = release_static_md|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Util/Util_vs140.vcxproj b/Util/Util_vs140.vcxproj deleted file mode 100644 index 841c429fb..000000000 --- a/Util/Util_vs140.vcxproj +++ /dev/null @@ -1,687 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Util - {6FF56CDB-787A-4714-A28C-919003F9FA6C} - Util - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoUtild - PocoUtilmdd - PocoUtilmtd - PocoUtil - PocoUtilmd - PocoUtilmt - PocoUtil64d - PocoUtilmdd - PocoUtilmtd - PocoUtil64 - PocoUtilmd - PocoUtilmt - - - ..\bin\ - obj\Util\$(Configuration)\ - true - - - ..\bin\ - obj\Util\$(Configuration)\ - false - - - ..\lib\ - obj\Util\$(Configuration)\ - - - ..\lib\ - obj\Util\$(Configuration)\ - - - ..\lib\ - obj\Util\$(Configuration)\ - - - ..\lib\ - obj\Util\$(Configuration)\ - - - ..\bin64\ - obj64\Util\$(Configuration)\ - true - - - ..\bin64\ - obj64\Util\$(Configuration)\ - false - - - ..\lib64\ - obj64\Util\$(Configuration)\ - - - ..\lib64\ - obj64\Util\$(Configuration)\ - - - ..\lib64\ - obj64\Util\$(Configuration)\ - - - ..\lib64\ - obj64\Util\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Util_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoUtild.dll - true - true - ..\bin\PocoUtild.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoUtild.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Util_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoUtil.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoUtil.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoUtilmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoUtilmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoUtilmt.lib - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoUtilmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoUtilmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoUtilmd.pdb - Level3 - - Default - true - - - ..\lib\PocoUtilmd.lib - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Util_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoUtil64d.dll - true - true - ..\bin64\PocoUtil64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoUtild.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Util_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoUtil64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoUtil.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoUtilmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoUtilmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoUtilmt.lib - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoUtilmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoUtilmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoUtilmd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Util/Util_vs140.vcxproj.filters b/Util/Util_vs140.vcxproj.filters deleted file mode 100644 index f980cb726..000000000 --- a/Util/Util_vs140.vcxproj.filters +++ /dev/null @@ -1,258 +0,0 @@ - - - - - {f0d750f7-d6e4-4e2d-95fc-c0c46bceeb19} - - - {1c091353-c3a5-4759-85ea-6fcd1d6a3324} - - - {55c15672-4e6b-4ad5-a394-72468f3a32a8} - - - {0086183c-5475-45a9-8809-28857c3aa334} - - - {f1e241cc-0753-49a2-9690-64aa68867d72} - - - {174ebc72-6bac-48ab-ab9a-1a8bfbc79131} - - - {f0269039-31b2-4e2d-9d61-cd9254372a87} - - - {4f9197f9-8e08-4150-be87-b6209a8909d8} - - - {bb6ab609-30f2-4ff1-94e7-ab61280dd309} - - - {605fb2ae-5187-44d4-a7a2-e1d3f479568a} - - - {68865174-5601-402f-b000-eb895e76469e} - - - {c111b32b-fbbb-481d-8aa8-94f5a7fe733f} - - - {fdc6c2c9-dfdf-4917-80bf-f9d1c54a12a8} - - - {92de1152-2121-4d81-855a-f083a9b97b20} - - - {b344602c-5198-4ae0-ae6c-6e9c8625cb16} - - - {50dc5c42-2543-49aa-a2c9-4c264bf6514a} - - - {31623dde-858a-40e8-b9f3-6eefd9516427} - - - {681fbed2-afa8-49d6-b89d-22c0e50b8998} - - - - - Application\Header Files - - - Application\Header Files - - - Application\Header Files - - - Application\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Windows\Header Files - - - Windows\Header Files - - - Windows\Header Files - - - Util\Header Files - - - Timer\Header Files - - - Timer\Header Files - - - Timer\Header Files - - - - - Application\Source Files - - - Application\Source Files - - - Application\Source Files - - - Application\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Windows\Source Files - - - Windows\Source Files - - - Windows\Source Files - - - Timer\Source Files - - - Timer\Source Files - - - - - - \ No newline at end of file diff --git a/Util/Util_vs150.sln b/Util/Util_vs150.sln deleted file mode 100644 index 7d9142754..000000000 --- a/Util/Util_vs150.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Util", "Util_vs150.vcxproj", "{6FF56CDB-787A-4714-A28C-919003F9FA6C}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{E40E738C-447B-40F4-A878-EBA9A2459270}" - ProjectSection(ProjectDependencies) = postProject - {6FF56CDB-787A-4714-A28C-919003F9FA6C} = {6FF56CDB-787A-4714-A28C-919003F9FA6C} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_shared|Win32.Build.0 = release_shared|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_shared|x64.Build.0 = debug_shared|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_shared|x64.ActiveCfg = release_shared|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_shared|x64.Build.0 = release_shared|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_shared|x64.Deploy.0 = release_shared|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_md|x64.Build.0 = release_static_md|x64 - {6FF56CDB-787A-4714-A28C-919003F9FA6C}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_shared|Win32.Build.0 = release_shared|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_shared|x64.Build.0 = debug_shared|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_shared|x64.ActiveCfg = release_shared|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_shared|x64.Build.0 = release_shared|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_shared|x64.Deploy.0 = release_shared|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_md|x64.Build.0 = release_static_md|x64 - {E40E738C-447B-40F4-A878-EBA9A2459270}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Util/Util_vs150.vcxproj b/Util/Util_vs150.vcxproj deleted file mode 100644 index 0b395ac35..000000000 --- a/Util/Util_vs150.vcxproj +++ /dev/null @@ -1,687 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Util - {6FF56CDB-787A-4714-A28C-919003F9FA6C} - Util - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PocoUtild - PocoUtilmdd - PocoUtilmtd - PocoUtil - PocoUtilmd - PocoUtilmt - PocoUtil64d - PocoUtilmdd - PocoUtilmtd - PocoUtil64 - PocoUtilmd - PocoUtilmt - - - ..\bin\ - obj\Util\$(Configuration)\ - true - - - ..\bin\ - obj\Util\$(Configuration)\ - false - - - ..\lib\ - obj\Util\$(Configuration)\ - - - ..\lib\ - obj\Util\$(Configuration)\ - - - ..\lib\ - obj\Util\$(Configuration)\ - - - ..\lib\ - obj\Util\$(Configuration)\ - - - ..\bin64\ - obj64\Util\$(Configuration)\ - true - - - ..\bin64\ - obj64\Util\$(Configuration)\ - false - - - ..\lib64\ - obj64\Util\$(Configuration)\ - - - ..\lib64\ - obj64\Util\$(Configuration)\ - - - ..\lib64\ - obj64\Util\$(Configuration)\ - - - ..\lib64\ - obj64\Util\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Util_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoUtild.dll - true - true - ..\bin\PocoUtild.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoUtild.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Util_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoUtil.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoUtil.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoUtilmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoUtilmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoUtilmt.lib - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoUtilmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoUtilmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoUtilmd.pdb - Level3 - - Default - true - - - ..\lib\PocoUtilmd.lib - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Util_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoUtil64d.dll - true - true - ..\bin64\PocoUtil64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoUtild.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Util_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoUtil64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoUtil.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoUtilmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoUtilmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoUtilmt.lib - - - - - Disabled - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoUtilmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoUtilmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;..\XML\include;..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoUtilmd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Util/Util_vs150.vcxproj.filters b/Util/Util_vs150.vcxproj.filters deleted file mode 100644 index 0ee6e3a3a..000000000 --- a/Util/Util_vs150.vcxproj.filters +++ /dev/null @@ -1,258 +0,0 @@ - - - - - {c887566b-f547-4c21-9041-140f13331cf9} - - - {ba067fb7-c24d-4a23-9c16-0acbe3fe923d} - - - {aa706f6f-1dde-4def-ad99-8e704b2238d4} - - - {39e14e36-170f-4f0c-815e-d892878411eb} - - - {1bb9a9dc-8a54-454a-bdee-718dc4cb61ec} - - - {3f708d15-eb3c-4989-908a-a73f4ca39aac} - - - {75412291-5da4-488d-a143-592e972c43f9} - - - {b99b3171-b3d6-414e-9f51-46547165deca} - - - {a2e4da13-5d4c-4598-8595-65233933cf56} - - - {f553045b-6934-4226-9ccb-960e9eecfcae} - - - {69d5c786-502f-4262-8bfb-072d3eba17db} - - - {3875c59f-c583-4482-975d-9dadeb540d39} - - - {6b5258e0-1d6a-459d-8fa5-a9b98d017530} - - - {33c85213-46ac-4881-81b7-6e111cfcebdf} - - - {9c961690-49cd-49d1-ba22-0c4d29a21850} - - - {a385d477-738c-44bb-93e4-7aebd419f7ff} - - - {8626d173-6632-4749-9c1c-1c29ebf0c445} - - - {d81db49b-2a3b-4536-8687-9449bc900f82} - - - - - Application\Header Files - - - Application\Header Files - - - Application\Header Files - - - Application\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Windows\Header Files - - - Windows\Header Files - - - Windows\Header Files - - - Util\Header Files - - - Timer\Header Files - - - Timer\Header Files - - - Timer\Header Files - - - - - Application\Source Files - - - Application\Source Files - - - Application\Source Files - - - Application\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Windows\Source Files - - - Windows\Source Files - - - Windows\Source Files - - - Timer\Source Files - - - Timer\Source Files - - - - - - \ No newline at end of file diff --git a/Util/samples/SampleApp/SampleApp_vs140.vcxproj b/Util/samples/SampleApp/SampleApp_vs140.vcxproj deleted file mode 100644 index 572bed97e..000000000 --- a/Util/samples/SampleApp/SampleApp_vs140.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - SampleApp - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0} - SampleApp - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - SampleAppd - SampleAppd - SampleAppd - SampleApp - SampleApp - SampleApp - SampleAppd - SampleAppd - SampleAppd - SampleApp - SampleApp - SampleApp - - - bin\ - obj\SampleApp\$(Configuration)\ - true - - - bin\ - obj\SampleApp\$(Configuration)\ - false - - - bin\static_mt\ - obj\SampleApp\$(Configuration)\ - true - - - bin\static_mt\ - obj\SampleApp\$(Configuration)\ - false - - - bin\static_md\ - obj\SampleApp\$(Configuration)\ - true - - - bin\static_md\ - obj\SampleApp\$(Configuration)\ - false - - - bin64\ - obj64\SampleApp\$(Configuration)\ - true - - - bin64\ - obj64\SampleApp\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\SampleApp\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\SampleApp\$(Configuration)\ - false - - - bin64\static_md\ - obj64\SampleApp\$(Configuration)\ - true - - - bin64\static_md\ - obj64\SampleApp\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SampleAppd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\SampleAppd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SampleApp.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SampleAppd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\SampleAppd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SampleApp.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SampleAppd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\SampleAppd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SampleApp.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SampleAppd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\SampleAppd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SampleApp.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SampleAppd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\SampleAppd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SampleApp.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SampleAppd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\SampleAppd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SampleApp.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - true - - - - - diff --git a/Util/samples/SampleApp/SampleApp_vs140.vcxproj.filters b/Util/samples/SampleApp/SampleApp_vs140.vcxproj.filters deleted file mode 100644 index 60aaa917b..000000000 --- a/Util/samples/SampleApp/SampleApp_vs140.vcxproj.filters +++ /dev/null @@ -1,21 +0,0 @@ - - - - - {dc06ac71-f386-451a-b619-6077329a70a3} - - - {288c8dc3-1499-41cc-8468-731466d3420a} - - - - - Configuration Files - - - - - Source Files - - - \ No newline at end of file diff --git a/Util/samples/SampleApp/SampleApp_vs150.vcxproj b/Util/samples/SampleApp/SampleApp_vs150.vcxproj deleted file mode 100644 index 968a96c9b..000000000 --- a/Util/samples/SampleApp/SampleApp_vs150.vcxproj +++ /dev/null @@ -1,610 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - SampleApp - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0} - SampleApp - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - SampleAppd - SampleAppd - SampleAppd - SampleApp - SampleApp - SampleApp - SampleAppd - SampleAppd - SampleAppd - SampleApp - SampleApp - SampleApp - - - bin\ - obj\SampleApp\$(Configuration)\ - true - - - bin\ - obj\SampleApp\$(Configuration)\ - false - - - bin\static_mt\ - obj\SampleApp\$(Configuration)\ - true - - - bin\static_mt\ - obj\SampleApp\$(Configuration)\ - false - - - bin\static_md\ - obj\SampleApp\$(Configuration)\ - true - - - bin\static_md\ - obj\SampleApp\$(Configuration)\ - false - - - bin64\ - obj64\SampleApp\$(Configuration)\ - true - - - bin64\ - obj64\SampleApp\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\SampleApp\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\SampleApp\$(Configuration)\ - false - - - bin64\static_md\ - obj64\SampleApp\$(Configuration)\ - true - - - bin64\static_md\ - obj64\SampleApp\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SampleAppd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\SampleAppd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SampleApp.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SampleAppd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\SampleAppd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SampleApp.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SampleAppd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\SampleAppd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SampleApp.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SampleAppd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\SampleAppd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SampleApp.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SampleAppd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\SampleAppd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SampleApp.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SampleAppd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\SampleAppd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SampleApp.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - true - - - - - diff --git a/Util/samples/SampleApp/SampleApp_vs150.vcxproj.filters b/Util/samples/SampleApp/SampleApp_vs150.vcxproj.filters deleted file mode 100644 index 8cc5d177e..000000000 --- a/Util/samples/SampleApp/SampleApp_vs150.vcxproj.filters +++ /dev/null @@ -1,21 +0,0 @@ - - - - - {84e4ffbd-1b1b-4522-8887-5c9196837d40} - - - {783a2118-0d03-476a-a1e0-cafeee3b8bf6} - - - - - Configuration Files - - - - - Source Files - - - \ No newline at end of file diff --git a/Util/samples/SampleServer/SampleServer_vs140.vcxproj b/Util/samples/SampleServer/SampleServer_vs140.vcxproj deleted file mode 100644 index 0b68ee6f8..000000000 --- a/Util/samples/SampleServer/SampleServer_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - SampleServer - {F475C5DD-0558-37AF-870B-666DE931B7BA} - SampleServer - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - SampleServerd - SampleServerd - SampleServerd - SampleServer - SampleServer - SampleServer - SampleServerd - SampleServerd - SampleServerd - SampleServer - SampleServer - SampleServer - - - bin\ - obj\SampleServer\$(Configuration)\ - true - - - bin\ - obj\SampleServer\$(Configuration)\ - false - - - bin\static_mt\ - obj\SampleServer\$(Configuration)\ - true - - - bin\static_mt\ - obj\SampleServer\$(Configuration)\ - false - - - bin\static_md\ - obj\SampleServer\$(Configuration)\ - true - - - bin\static_md\ - obj\SampleServer\$(Configuration)\ - false - - - bin64\ - obj64\SampleServer\$(Configuration)\ - true - - - bin64\ - obj64\SampleServer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\SampleServer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\SampleServer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\SampleServer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\SampleServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SampleServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\SampleServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SampleServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SampleServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\SampleServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SampleServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SampleServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\SampleServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SampleServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SampleServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\SampleServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SampleServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SampleServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\SampleServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SampleServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SampleServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\SampleServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SampleServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Util/samples/SampleServer/SampleServer_vs140.vcxproj.filters b/Util/samples/SampleServer/SampleServer_vs140.vcxproj.filters deleted file mode 100644 index 8d80ab569..000000000 --- a/Util/samples/SampleServer/SampleServer_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {c43987a8-a9ae-47bd-8fa2-09132657cdc6} - - - {dbb72f70-0bbe-4eeb-a771-934eecae2a54} - - - - - Source Files - - - \ No newline at end of file diff --git a/Util/samples/SampleServer/SampleServer_vs150.vcxproj b/Util/samples/SampleServer/SampleServer_vs150.vcxproj deleted file mode 100644 index aba208cf6..000000000 --- a/Util/samples/SampleServer/SampleServer_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - SampleServer - {F475C5DD-0558-37AF-870B-666DE931B7BA} - SampleServer - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - SampleServerd - SampleServerd - SampleServerd - SampleServer - SampleServer - SampleServer - SampleServerd - SampleServerd - SampleServerd - SampleServer - SampleServer - SampleServer - - - bin\ - obj\SampleServer\$(Configuration)\ - true - - - bin\ - obj\SampleServer\$(Configuration)\ - false - - - bin\static_mt\ - obj\SampleServer\$(Configuration)\ - true - - - bin\static_mt\ - obj\SampleServer\$(Configuration)\ - false - - - bin\static_md\ - obj\SampleServer\$(Configuration)\ - true - - - bin\static_md\ - obj\SampleServer\$(Configuration)\ - false - - - bin64\ - obj64\SampleServer\$(Configuration)\ - true - - - bin64\ - obj64\SampleServer\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\SampleServer\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\SampleServer\$(Configuration)\ - false - - - bin64\static_md\ - obj64\SampleServer\$(Configuration)\ - true - - - bin64\static_md\ - obj64\SampleServer\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SampleServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\SampleServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SampleServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SampleServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\SampleServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SampleServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SampleServerd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\SampleServerd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SampleServer.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SampleServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\SampleServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SampleServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SampleServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\SampleServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SampleServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SampleServerd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\SampleServerd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SampleServer.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Util/samples/SampleServer/SampleServer_vs150.vcxproj.filters b/Util/samples/SampleServer/SampleServer_vs150.vcxproj.filters deleted file mode 100644 index 289b01bba..000000000 --- a/Util/samples/SampleServer/SampleServer_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {6a25c6a7-a0f7-484f-b9ab-74d86393bc3b} - - - {301d9153-7fe6-432c-8451-bde5619faf8e} - - - - - Source Files - - - \ No newline at end of file diff --git a/Util/samples/Units/Units_vs140.vcxproj b/Util/samples/Units/Units_vs140.vcxproj deleted file mode 100644 index 5e1ecfef9..000000000 --- a/Util/samples/Units/Units_vs140.vcxproj +++ /dev/null @@ -1,603 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Units - {A6800637-61D5-39A3-86AA-E180C73D3120} - Units - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - Unitsd - Unitsd - Unitsd - Units - Units - Units - Unitsd - Unitsd - Unitsd - Units - Units - Units - - - bin\ - obj\Units\$(Configuration)\ - true - - - bin\ - obj\Units\$(Configuration)\ - false - - - bin\static_mt\ - obj\Units\$(Configuration)\ - true - - - bin\static_mt\ - obj\Units\$(Configuration)\ - false - - - bin\static_md\ - obj\Units\$(Configuration)\ - true - - - bin\static_md\ - obj\Units\$(Configuration)\ - false - - - bin64\ - obj64\Units\$(Configuration)\ - true - - - bin64\ - obj64\Units\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Units\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Units\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Units\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Units\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin\Unitsd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Unitsd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin\Units.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\Unitsd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Unitsd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\Units.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\Unitsd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Unitsd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\Units.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin64\Unitsd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Unitsd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin64\Units.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\Unitsd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Unitsd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\Units.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\Unitsd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Unitsd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\Units.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Util/samples/Units/Units_vs140.vcxproj.filters b/Util/samples/Units/Units_vs140.vcxproj.filters deleted file mode 100644 index df62f2372..000000000 --- a/Util/samples/Units/Units_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {efdf2ba4-a4ca-45f4-8d60-a34e8b315b64} - - - {4fbad6e3-2950-4a1e-b915-063dc61f14b5} - - - - - Source Files - - - \ No newline at end of file diff --git a/Util/samples/Units/Units_vs150.vcxproj b/Util/samples/Units/Units_vs150.vcxproj deleted file mode 100644 index 6111af342..000000000 --- a/Util/samples/Units/Units_vs150.vcxproj +++ /dev/null @@ -1,603 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Units - {A6800637-61D5-39A3-86AA-E180C73D3120} - Units - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - Unitsd - Unitsd - Unitsd - Units - Units - Units - Unitsd - Unitsd - Unitsd - Units - Units - Units - - - bin\ - obj\Units\$(Configuration)\ - true - - - bin\ - obj\Units\$(Configuration)\ - false - - - bin\static_mt\ - obj\Units\$(Configuration)\ - true - - - bin\static_mt\ - obj\Units\$(Configuration)\ - false - - - bin\static_md\ - obj\Units\$(Configuration)\ - true - - - bin\static_md\ - obj\Units\$(Configuration)\ - false - - - bin64\ - obj64\Units\$(Configuration)\ - true - - - bin64\ - obj64\Units\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\Units\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\Units\$(Configuration)\ - false - - - bin64\static_md\ - obj64\Units\$(Configuration)\ - true - - - bin64\static_md\ - obj64\Units\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin\Unitsd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\Unitsd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin\Units.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\Unitsd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\Unitsd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_mt\Units.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\Unitsd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\Unitsd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin\static_md\Units.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - bin64\Unitsd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\Unitsd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - bin64\Units.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\Unitsd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\Unitsd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_mt\Units.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\Unitsd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\Unitsd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - bin64\static_md\Units.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Util/samples/Units/Units_vs150.vcxproj.filters b/Util/samples/Units/Units_vs150.vcxproj.filters deleted file mode 100644 index 93df079c1..000000000 --- a/Util/samples/Units/Units_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {2923d959-f9e3-4145-956e-4acedae2967f} - - - {43dd1564-bc48-4e0c-b6ce-e85e67de7b81} - - - - - Source Files - - - \ No newline at end of file diff --git a/Util/samples/pkill/pkill_vs140.vcxproj b/Util/samples/pkill/pkill_vs140.vcxproj deleted file mode 100644 index 27fd75c1b..000000000 --- a/Util/samples/pkill/pkill_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - pkill - {63EDD785-29E1-3073-87EB-3CE788A4A1DE} - pkill - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - pkilld - pkilld - pkilld - pkill - pkill - pkill - pkilld - pkilld - pkilld - pkill - pkill - pkill - - - bin\ - obj\pkill\$(Configuration)\ - true - - - bin\ - obj\pkill\$(Configuration)\ - false - - - bin\static_mt\ - obj\pkill\$(Configuration)\ - true - - - bin\static_mt\ - obj\pkill\$(Configuration)\ - false - - - bin\static_md\ - obj\pkill\$(Configuration)\ - true - - - bin\static_md\ - obj\pkill\$(Configuration)\ - false - - - bin64\ - obj64\pkill\$(Configuration)\ - true - - - bin64\ - obj64\pkill\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\pkill\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\pkill\$(Configuration)\ - false - - - bin64\static_md\ - obj64\pkill\$(Configuration)\ - true - - - bin64\static_md\ - obj64\pkill\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\pkilld.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\pkilld.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\pkill.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\pkilld.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\pkilld.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\pkill.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\pkilld.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\pkilld.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\pkill.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\pkilld.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\pkilld.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\pkill.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\pkilld.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\pkilld.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\pkill.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\pkilld.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\pkilld.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\pkill.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Util/samples/pkill/pkill_vs140.vcxproj.filters b/Util/samples/pkill/pkill_vs140.vcxproj.filters deleted file mode 100644 index 9cae8b68c..000000000 --- a/Util/samples/pkill/pkill_vs140.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {01de178e-0c3d-49c2-a7a3-2057e92f4e63} - - - - - Source Files - - - \ No newline at end of file diff --git a/Util/samples/pkill/pkill_vs150.vcxproj b/Util/samples/pkill/pkill_vs150.vcxproj deleted file mode 100644 index 184a4584f..000000000 --- a/Util/samples/pkill/pkill_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - pkill - {63EDD785-29E1-3073-87EB-3CE788A4A1DE} - pkill - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - pkilld - pkilld - pkilld - pkill - pkill - pkill - pkilld - pkilld - pkilld - pkill - pkill - pkill - - - bin\ - obj\pkill\$(Configuration)\ - true - - - bin\ - obj\pkill\$(Configuration)\ - false - - - bin\static_mt\ - obj\pkill\$(Configuration)\ - true - - - bin\static_mt\ - obj\pkill\$(Configuration)\ - false - - - bin\static_md\ - obj\pkill\$(Configuration)\ - true - - - bin\static_md\ - obj\pkill\$(Configuration)\ - false - - - bin64\ - obj64\pkill\$(Configuration)\ - true - - - bin64\ - obj64\pkill\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\pkill\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\pkill\$(Configuration)\ - false - - - bin64\static_md\ - obj64\pkill\$(Configuration)\ - true - - - bin64\static_md\ - obj64\pkill\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\pkilld.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\pkilld.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\pkill.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\pkilld.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\pkilld.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\pkill.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\pkilld.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\pkilld.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\pkill.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\pkilld.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\pkilld.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\pkill.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\pkilld.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\pkilld.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\pkill.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\pkilld.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\pkilld.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\pkill.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Util/samples/pkill/pkill_vs150.vcxproj.filters b/Util/samples/pkill/pkill_vs150.vcxproj.filters deleted file mode 100644 index 09931d10a..000000000 --- a/Util/samples/pkill/pkill_vs150.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {faba35c6-cfa6-47c1-8fb8-449dafcc62f9} - - - - - Source Files - - - \ No newline at end of file diff --git a/Util/samples/samples_vs140.sln b/Util/samples/samples_vs140.sln deleted file mode 100644 index e3f885ee0..000000000 --- a/Util/samples/samples_vs140.sln +++ /dev/null @@ -1,175 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pkill", "pkill\pkill_vs140.vcxproj", "{63EDD785-29E1-3073-87EB-3CE788A4A1DE}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SampleApp", "SampleApp\SampleApp_vs140.vcxproj", "{C3F12C11-469F-3FB6-8C95-8638F78FF7C0}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SampleServer", "SampleServer\SampleServer_vs140.vcxproj", "{F475C5DD-0558-37AF-870B-666DE931B7BA}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Units", "Units\Units_vs140.vcxproj", "{A6800637-61D5-39A3-86AA-E180C73D3120}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_shared|Win32.Build.0 = release_shared|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_shared|x64.Build.0 = debug_shared|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_shared|x64.ActiveCfg = release_shared|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_shared|x64.Build.0 = release_shared|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_shared|x64.Deploy.0 = release_shared|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_md|x64.Build.0 = release_static_md|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_shared|Win32.Build.0 = release_shared|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_shared|x64.Build.0 = debug_shared|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_shared|x64.ActiveCfg = release_shared|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_shared|x64.Build.0 = release_shared|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_shared|x64.Deploy.0 = release_shared|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_md|x64.Build.0 = release_static_md|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_shared|Win32.Build.0 = release_shared|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_shared|x64.Build.0 = debug_shared|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_shared|x64.ActiveCfg = release_shared|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_shared|x64.Build.0 = release_shared|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_shared|x64.Deploy.0 = release_shared|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_md|x64.Build.0 = release_static_md|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_shared|Win32.Build.0 = release_shared|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_shared|x64.Build.0 = debug_shared|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_shared|x64.ActiveCfg = release_shared|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_shared|x64.Build.0 = release_shared|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_shared|x64.Deploy.0 = release_shared|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_md|x64.Build.0 = release_static_md|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Util/samples/samples_vs150.sln b/Util/samples/samples_vs150.sln deleted file mode 100644 index 22356ff64..000000000 --- a/Util/samples/samples_vs150.sln +++ /dev/null @@ -1,175 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pkill", "pkill\pkill_vs150.vcxproj", "{63EDD785-29E1-3073-87EB-3CE788A4A1DE}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SampleApp", "SampleApp\SampleApp_vs150.vcxproj", "{C3F12C11-469F-3FB6-8C95-8638F78FF7C0}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SampleServer", "SampleServer\SampleServer_vs150.vcxproj", "{F475C5DD-0558-37AF-870B-666DE931B7BA}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Units", "Units\Units_vs150.vcxproj", "{A6800637-61D5-39A3-86AA-E180C73D3120}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_shared|Win32.Build.0 = release_shared|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_shared|x64.Build.0 = debug_shared|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_shared|x64.ActiveCfg = release_shared|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_shared|x64.Build.0 = release_shared|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_shared|x64.Deploy.0 = release_shared|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_md|x64.Build.0 = release_static_md|x64 - {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_shared|Win32.Build.0 = release_shared|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_shared|x64.Build.0 = debug_shared|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_shared|x64.ActiveCfg = release_shared|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_shared|x64.Build.0 = release_shared|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_shared|x64.Deploy.0 = release_shared|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_md|x64.Build.0 = release_static_md|x64 - {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_shared|Win32.Build.0 = release_shared|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_shared|x64.Build.0 = debug_shared|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_shared|x64.ActiveCfg = release_shared|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_shared|x64.Build.0 = release_shared|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_shared|x64.Deploy.0 = release_shared|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_md|x64.Build.0 = release_static_md|x64 - {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_shared|Win32.Build.0 = release_shared|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_shared|x64.Build.0 = debug_shared|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_shared|x64.ActiveCfg = release_shared|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_shared|x64.Build.0 = release_shared|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_shared|x64.Deploy.0 = release_shared|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_md|x64.Build.0 = release_static_md|x64 - {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Util/testsuite/TestSuite_vs140.vcxproj b/Util/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index 3415784aa..000000000 --- a/Util/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,717 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {E40E738C-447B-40F4-A878-EBA9A2459270} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/Util/testsuite/TestSuite_vs140.vcxproj.filters b/Util/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index b13277f6d..000000000 --- a/Util/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,234 +0,0 @@ - - - - - {8b8be8ce-e711-4870-8510-9d1b8c6b71c3} - - - {1d1f85c8-fe49-4842-8938-6f84048a3741} - - - {5178617c-c9a7-4d28-8ff3-fb5e03b962de} - - - {6c92e69c-aa14-4c75-a070-d856e939b493} - - - {804387c6-d4c5-47b4-ab36-43f18335d4d1} - - - {366da429-0ece-4fc0-95f8-b46329cd8345} - - - {5c2feab1-95fb-4d31-b3ee-db2385b8a866} - - - {40abcb43-5fe1-4d61-86f4-7a3d61d1b661} - - - {7dc6c883-9f05-4eee-900b-bed0a31e5040} - - - {c8044dde-2361-4a42-abc4-7c3f8a512ded} - - - {3195531e-5b81-4a48-86b3-a513d9091660} - - - {1aee29da-484f-4970-a5a6-0ed6c92bc728} - - - {bf3e93c3-4747-4b9f-8b83-6e2456ce9cfe} - - - {05e53d46-729c-41ed-968e-7f9f89a73c86} - - - {2a5320cd-a66f-4586-b3f1-0466b41211ed} - - - {327fdc7a-02a1-4fa9-825a-18cd3bb0f8fe} - - - {bd8c305e-6a61-4c0a-a9e4-a4a426f92f62} - - - {3a5487c1-0daf-4f72-a18d-cbd3ee3811a1} - - - {03466718-9d51-4f86-af8a-e7c47d28de86} - - - {e974ed15-a900-426b-9082-4dce0c450239} - - - - - _Suite\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Windows\Header Files - - - Windows\Header Files - - - Windows\Header Files - - - Windows\Header Files - - - Timer\Header Files - - - Timer\Header Files - - - - - _Suite\Source Files - - - _Driver\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Windows\Source Files - - - Windows\Source Files - - - Windows\Source Files - - - Windows\Source Files - - - Timer\Source Files - - - Timer\Source Files - - - \ No newline at end of file diff --git a/Util/testsuite/TestSuite_vs150.vcxproj b/Util/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index 2b0ddcb8b..000000000 --- a/Util/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,717 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {E40E738C-447B-40F4-A878-EBA9A2459270} - TestSuite - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\XML\include;..\..\JSON\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/Util/testsuite/TestSuite_vs150.vcxproj.filters b/Util/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index 2450e1951..000000000 --- a/Util/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,234 +0,0 @@ - - - - - {da81f2f8-95fe-481f-bdae-c18b07260dbe} - - - {0d922934-9029-46f2-b52f-b03d556b9199} - - - {4c9e5666-aa5a-4dde-8df3-ae6215201ea5} - - - {678ed976-4c4a-42db-ba53-8bfa4151d844} - - - {fdb1a500-642d-448e-b2e0-308ed49cc612} - - - {983026c8-5dcd-4fdb-bab9-d4fe65848531} - - - {a5bbd50a-d44a-4b5b-98dd-a6a79b299354} - - - {f428aa7a-49fc-45ff-b432-f9a270c6dcd4} - - - {8049e320-3b1e-4613-9f57-950c2d33ee84} - - - {a96a70d5-ee5f-4c48-a9b9-5d32b3792fb5} - - - {af642dc6-e087-440d-aab9-3264bc750e19} - - - {523c674d-b100-439b-afa2-39bff0afb9ca} - - - {c6fcae7b-2af3-4d28-909b-899d793ad3f2} - - - {c0288c1f-c003-41e7-9ee0-b8213e8cf148} - - - {a9eb6eaf-65b8-4901-a388-ff53d1c7f201} - - - {f4370438-b816-4aff-a035-f5b2333bb813} - - - {fbbf92a2-5eab-4814-9f59-debadfe825ac} - - - {88aee672-f7a5-4ecf-b53e-9fbdb811e366} - - - {132ee7bb-91a9-4203-965e-82e8a11dba66} - - - {0b28156d-e662-4140-8443-6cb9d292b9f5} - - - - - _Suite\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Configuration\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Options\Header Files - - - Windows\Header Files - - - Windows\Header Files - - - Windows\Header Files - - - Windows\Header Files - - - Timer\Header Files - - - Timer\Header Files - - - - - _Suite\Source Files - - - _Driver\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Configuration\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Options\Source Files - - - Windows\Source Files - - - Windows\Source Files - - - Windows\Source Files - - - Windows\Source Files - - - Timer\Source Files - - - Timer\Source Files - - - \ No newline at end of file diff --git a/XML/XML_vs140.sln b/XML/XML_vs140.sln deleted file mode 100644 index a0ae8f280..000000000 --- a/XML/XML_vs140.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XML", "XML_vs140.vcxproj", "{9E211743-85FE-4977-82F3-4F04B40C912D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}" - ProjectSection(ProjectDependencies) = postProject - {9E211743-85FE-4977-82F3-4F04B40C912D} = {9E211743-85FE-4977-82F3-4F04B40C912D} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_shared|Win32.Build.0 = release_shared|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_shared|x64.Build.0 = debug_shared|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_shared|x64.ActiveCfg = release_shared|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_shared|x64.Build.0 = release_shared|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_shared|x64.Deploy.0 = release_shared|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_md|x64.Build.0 = release_static_md|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_shared|Win32.Build.0 = release_shared|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_shared|x64.Build.0 = debug_shared|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_shared|x64.ActiveCfg = release_shared|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_shared|x64.Build.0 = release_shared|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_shared|x64.Deploy.0 = release_shared|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_md|x64.Build.0 = release_static_md|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/XML/XML_vs140.vcxproj b/XML/XML_vs140.vcxproj deleted file mode 100644 index 30546c249..000000000 --- a/XML/XML_vs140.vcxproj +++ /dev/null @@ -1,913 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - XML - {9E211743-85FE-4977-82F3-4F04B40C912D} - XML - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoXMLd - PocoXMLmdd - PocoXMLmtd - PocoXML - PocoXMLmd - PocoXMLmt - PocoXML64d - PocoXMLmdd - PocoXMLmtd - PocoXML64 - PocoXMLmd - PocoXMLmt - - - ..\bin\ - obj\XML\$(Configuration)\ - true - - - ..\bin\ - obj\XML\$(Configuration)\ - false - - - ..\lib\ - obj\XML\$(Configuration)\ - - - ..\lib\ - obj\XML\$(Configuration)\ - - - ..\lib\ - obj\XML\$(Configuration)\ - - - ..\lib\ - obj\XML\$(Configuration)\ - - - ..\bin64\ - obj64\XML\$(Configuration)\ - true - - - ..\bin64\ - obj64\XML\$(Configuration)\ - false - - - ..\lib64\ - obj64\XML\$(Configuration)\ - - - ..\lib64\ - obj64\XML\$(Configuration)\ - - - ..\lib64\ - obj64\XML\$(Configuration)\ - - - ..\lib64\ - obj64\XML\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoXMLd.dll - true - true - ..\bin\PocoXMLd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoXMLd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoXML.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoXML.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoXMLmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoXMLmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoXMLmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoXMLmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoXMLmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoXMLmd.pdb - Level3 - - Default - true - - - ..\lib\PocoXMLmd.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoXML64d.dll - true - true - ..\bin64\PocoXML64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoXMLd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoXML64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoXML.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoXMLmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoXMLmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoXMLmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoXMLmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoXMLmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoXMLmd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - true - true - true - true - true - true - true - true - true - true - true - true - - - true - - - true - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/XML/XML_vs140.vcxproj.filters b/XML/XML_vs140.vcxproj.filters deleted file mode 100644 index 4755c4470..000000000 --- a/XML/XML_vs140.vcxproj.filters +++ /dev/null @@ -1,540 +0,0 @@ - - - - - {6f93cdfc-920c-401f-b156-e091c62bbfbc} - - - {73f27d09-c944-4365-bbc3-f38885eeba50} - - - {944f843c-972a-4ab2-a343-f22106c51d90} - - - {420e8d24-7661-483a-baa0-7520b636b599} - - - {800448d4-aa13-43e9-ab78-c6b8b4f74e09} - - - {9750c10b-86ed-4963-a3df-ad87ab601442} - - - {2b140c74-658b-478a-ab82-245b6dcd6935} - - - {a4b63662-c99d-4b5c-9174-9f9b6c31d3c0} - - - {2aac7f03-26ef-4f9f-a05f-cc5e403f2c71} - - - {65a99437-4712-47dd-8817-e30c56d12165} - - - {9df51e1c-c1d2-4d1a-87c7-d910fe65fbfb} - - - {c64edd38-c890-46c7-8822-a0a5cd9484ff} - - - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - Expat\Header Files - - - Expat\Header Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - - - - \ No newline at end of file diff --git a/XML/XML_vs150.sln b/XML/XML_vs150.sln deleted file mode 100644 index d96e0a249..000000000 --- a/XML/XML_vs150.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "XML", "XML_vs150.vcxproj", "{9E211743-85FE-4977-82F3-4F04B40C912D}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}" - ProjectSection(ProjectDependencies) = postProject - {9E211743-85FE-4977-82F3-4F04B40C912D} = {9E211743-85FE-4977-82F3-4F04B40C912D} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_shared|Win32.Build.0 = release_shared|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_shared|x64.Build.0 = debug_shared|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_shared|x64.ActiveCfg = release_shared|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_shared|x64.Build.0 = release_shared|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_shared|x64.Deploy.0 = release_shared|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_md|x64.Build.0 = release_static_md|x64 - {9E211743-85FE-4977-82F3-4F04B40C912D}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_shared|Win32.Build.0 = release_shared|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_shared|x64.Build.0 = debug_shared|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_shared|x64.ActiveCfg = release_shared|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_shared|x64.Build.0 = release_shared|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_shared|x64.Deploy.0 = release_shared|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_md|x64.Build.0 = release_static_md|x64 - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/XML/XML_vs150.vcxproj b/XML/XML_vs150.vcxproj deleted file mode 100644 index c66cdc0de..000000000 --- a/XML/XML_vs150.vcxproj +++ /dev/null @@ -1,913 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - XML - {9E211743-85FE-4977-82F3-4F04B40C912D} - XML - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PocoXMLd - PocoXMLmdd - PocoXMLmtd - PocoXML - PocoXMLmd - PocoXMLmt - PocoXML64d - PocoXMLmdd - PocoXMLmtd - PocoXML64 - PocoXMLmd - PocoXMLmt - - - ..\bin\ - obj\XML\$(Configuration)\ - true - - - ..\bin\ - obj\XML\$(Configuration)\ - false - - - ..\lib\ - obj\XML\$(Configuration)\ - - - ..\lib\ - obj\XML\$(Configuration)\ - - - ..\lib\ - obj\XML\$(Configuration)\ - - - ..\lib\ - obj\XML\$(Configuration)\ - - - ..\bin64\ - obj64\XML\$(Configuration)\ - true - - - ..\bin64\ - obj64\XML\$(Configuration)\ - false - - - ..\lib64\ - obj64\XML\$(Configuration)\ - - - ..\lib64\ - obj64\XML\$(Configuration)\ - - - ..\lib64\ - obj64\XML\$(Configuration)\ - - - ..\lib64\ - obj64\XML\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin\PocoXMLd.dll - true - true - ..\bin\PocoXMLd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoXMLd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin\PocoXML.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoXML.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoXMLmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoXMLmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib\PocoXMLmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoXMLmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib\PocoXMLmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoXMLmd.pdb - Level3 - - Default - true - - - ..\lib\PocoXMLmd.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ..\bin64\PocoXML64d.dll - true - true - ..\bin64\PocoXML64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoXMLd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\bin64\PocoXML64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoXML.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoXMLmtd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoXMLmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoXMLmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoXMLmdd.pdb - Level3 - ProgramDatabase - Default - true - - - ..\lib64\PocoXMLmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ..\lib64\PocoXMLmd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - true - true - true - true - true - true - true - true - true - true - true - true - - - true - - - true - true - true - true - true - true - true - true - true - true - true - true - true - - - true - true - true - true - true - true - true - true - true - true - true - true - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/XML/XML_vs150.vcxproj.filters b/XML/XML_vs150.vcxproj.filters deleted file mode 100644 index 81509ca16..000000000 --- a/XML/XML_vs150.vcxproj.filters +++ /dev/null @@ -1,540 +0,0 @@ - - - - - {30a79a3d-527f-4a5a-8122-bf482dc53d85} - - - {d9ce41da-cf56-4a0e-94b7-ae659907e3ba} - - - {927d73c1-6e7a-46fa-a5f6-b2db47c3618a} - - - {e8ec1572-833a-44f5-acba-fb7afd7b163e} - - - {49e5d77a-6f56-4156-b0ed-a2778822865c} - - - {784c5fd6-2997-4eba-a2d1-70487c8f8ed8} - - - {a8b0a397-4493-4ae6-8ffc-7e6a43763570} - - - {06ab838f-5a9b-4215-8885-f4e082dff052} - - - {c8c39e29-0360-43ed-b333-eaf5ef89f711} - - - {f36036fb-47a7-4f54-ad46-4a69c0f47c1e} - - - {c559fe6b-e949-43ca-bd94-7a5b72cf75b1} - - - {9004e7b9-06af-49d5-966c-80f40473029e} - - - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - Expat\Header Files - - - Expat\Header Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - Expat\Source Files - - - - - - \ No newline at end of file diff --git a/XML/samples/DOMParser/DOMParser_vs140.vcxproj b/XML/samples/DOMParser/DOMParser_vs140.vcxproj deleted file mode 100644 index 123845da8..000000000 --- a/XML/samples/DOMParser/DOMParser_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - DOMParser - {70F2F655-67D5-32A1-A99B-D4903547DB3E} - DOMParser - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - DOMParserd - DOMParserd - DOMParserd - DOMParser - DOMParser - DOMParser - DOMParserd - DOMParserd - DOMParserd - DOMParser - DOMParser - DOMParser - - - bin\ - obj\DOMParser\$(Configuration)\ - true - - - bin\ - obj\DOMParser\$(Configuration)\ - false - - - bin\static_mt\ - obj\DOMParser\$(Configuration)\ - true - - - bin\static_mt\ - obj\DOMParser\$(Configuration)\ - false - - - bin\static_md\ - obj\DOMParser\$(Configuration)\ - true - - - bin\static_md\ - obj\DOMParser\$(Configuration)\ - false - - - bin64\ - obj64\DOMParser\$(Configuration)\ - true - - - bin64\ - obj64\DOMParser\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\DOMParser\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\DOMParser\$(Configuration)\ - false - - - bin64\static_md\ - obj64\DOMParser\$(Configuration)\ - true - - - bin64\static_md\ - obj64\DOMParser\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\DOMParserd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\DOMParserd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\DOMParser.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\DOMParserd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\DOMParserd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\DOMParser.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\DOMParserd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\DOMParserd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\DOMParser.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\DOMParserd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\DOMParserd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\DOMParser.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\DOMParserd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\DOMParserd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\DOMParser.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\DOMParserd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\DOMParserd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\DOMParser.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/XML/samples/DOMParser/DOMParser_vs140.vcxproj.filters b/XML/samples/DOMParser/DOMParser_vs140.vcxproj.filters deleted file mode 100644 index 37d7c7a0b..000000000 --- a/XML/samples/DOMParser/DOMParser_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {3a4c4243-af70-4cd8-9526-db066bd4a373} - - - {f549c4cb-c526-4fad-91c4-a4a917159c80} - - - - - Source Files - - - \ No newline at end of file diff --git a/XML/samples/DOMParser/DOMParser_vs150.vcxproj b/XML/samples/DOMParser/DOMParser_vs150.vcxproj deleted file mode 100644 index a641a1f54..000000000 --- a/XML/samples/DOMParser/DOMParser_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - DOMParser - {70F2F655-67D5-32A1-A99B-D4903547DB3E} - DOMParser - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - DOMParserd - DOMParserd - DOMParserd - DOMParser - DOMParser - DOMParser - DOMParserd - DOMParserd - DOMParserd - DOMParser - DOMParser - DOMParser - - - bin\ - obj\DOMParser\$(Configuration)\ - true - - - bin\ - obj\DOMParser\$(Configuration)\ - false - - - bin\static_mt\ - obj\DOMParser\$(Configuration)\ - true - - - bin\static_mt\ - obj\DOMParser\$(Configuration)\ - false - - - bin\static_md\ - obj\DOMParser\$(Configuration)\ - true - - - bin\static_md\ - obj\DOMParser\$(Configuration)\ - false - - - bin64\ - obj64\DOMParser\$(Configuration)\ - true - - - bin64\ - obj64\DOMParser\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\DOMParser\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\DOMParser\$(Configuration)\ - false - - - bin64\static_md\ - obj64\DOMParser\$(Configuration)\ - true - - - bin64\static_md\ - obj64\DOMParser\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\DOMParserd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\DOMParserd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\DOMParser.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\DOMParserd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\DOMParserd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\DOMParser.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\DOMParserd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\DOMParserd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\DOMParser.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\DOMParserd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\DOMParserd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\DOMParser.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\DOMParserd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\DOMParserd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\DOMParser.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\DOMParserd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\DOMParserd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\DOMParser.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/XML/samples/DOMParser/DOMParser_vs150.vcxproj.filters b/XML/samples/DOMParser/DOMParser_vs150.vcxproj.filters deleted file mode 100644 index 028c992ba..000000000 --- a/XML/samples/DOMParser/DOMParser_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {32678428-a08e-4028-bbb3-b9ce02bfa89b} - - - {c5a9cffe-5833-465a-a9d6-a913bb02f2aa} - - - - - Source Files - - - \ No newline at end of file diff --git a/XML/samples/DOMWriter/DOMWriter_vs140.vcxproj b/XML/samples/DOMWriter/DOMWriter_vs140.vcxproj deleted file mode 100644 index 3ca5e921c..000000000 --- a/XML/samples/DOMWriter/DOMWriter_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - DOMWriter - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8} - DOMWriter - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - DOMWriterd - DOMWriterd - DOMWriterd - DOMWriter - DOMWriter - DOMWriter - DOMWriterd - DOMWriterd - DOMWriterd - DOMWriter - DOMWriter - DOMWriter - - - bin\ - obj\DOMWriter\$(Configuration)\ - true - - - bin\ - obj\DOMWriter\$(Configuration)\ - false - - - bin\static_mt\ - obj\DOMWriter\$(Configuration)\ - true - - - bin\static_mt\ - obj\DOMWriter\$(Configuration)\ - false - - - bin\static_md\ - obj\DOMWriter\$(Configuration)\ - true - - - bin\static_md\ - obj\DOMWriter\$(Configuration)\ - false - - - bin64\ - obj64\DOMWriter\$(Configuration)\ - true - - - bin64\ - obj64\DOMWriter\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\DOMWriter\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\DOMWriter\$(Configuration)\ - false - - - bin64\static_md\ - obj64\DOMWriter\$(Configuration)\ - true - - - bin64\static_md\ - obj64\DOMWriter\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\DOMWriterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\DOMWriterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\DOMWriter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\DOMWriterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\DOMWriterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\DOMWriter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\DOMWriterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\DOMWriterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\DOMWriter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\DOMWriterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\DOMWriterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\DOMWriter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\DOMWriterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\DOMWriterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\DOMWriter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\DOMWriterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\DOMWriterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\DOMWriter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/XML/samples/DOMWriter/DOMWriter_vs140.vcxproj.filters b/XML/samples/DOMWriter/DOMWriter_vs140.vcxproj.filters deleted file mode 100644 index 3a5b4519d..000000000 --- a/XML/samples/DOMWriter/DOMWriter_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {12659509-4a3d-453d-a982-38829a0637ec} - - - {dd6eec45-b382-4ca6-ae87-a006eb6e5b9d} - - - - - Source Files - - - \ No newline at end of file diff --git a/XML/samples/DOMWriter/DOMWriter_vs150.vcxproj b/XML/samples/DOMWriter/DOMWriter_vs150.vcxproj deleted file mode 100644 index 978be88b0..000000000 --- a/XML/samples/DOMWriter/DOMWriter_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - DOMWriter - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8} - DOMWriter - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - DOMWriterd - DOMWriterd - DOMWriterd - DOMWriter - DOMWriter - DOMWriter - DOMWriterd - DOMWriterd - DOMWriterd - DOMWriter - DOMWriter - DOMWriter - - - bin\ - obj\DOMWriter\$(Configuration)\ - true - - - bin\ - obj\DOMWriter\$(Configuration)\ - false - - - bin\static_mt\ - obj\DOMWriter\$(Configuration)\ - true - - - bin\static_mt\ - obj\DOMWriter\$(Configuration)\ - false - - - bin\static_md\ - obj\DOMWriter\$(Configuration)\ - true - - - bin\static_md\ - obj\DOMWriter\$(Configuration)\ - false - - - bin64\ - obj64\DOMWriter\$(Configuration)\ - true - - - bin64\ - obj64\DOMWriter\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\DOMWriter\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\DOMWriter\$(Configuration)\ - false - - - bin64\static_md\ - obj64\DOMWriter\$(Configuration)\ - true - - - bin64\static_md\ - obj64\DOMWriter\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\DOMWriterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\DOMWriterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\DOMWriter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\DOMWriterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\DOMWriterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\DOMWriter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\DOMWriterd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\DOMWriterd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\DOMWriter.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\DOMWriterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\DOMWriterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\DOMWriter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\DOMWriterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\DOMWriterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\DOMWriter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\DOMWriterd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\DOMWriterd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\DOMWriter.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/XML/samples/DOMWriter/DOMWriter_vs150.vcxproj.filters b/XML/samples/DOMWriter/DOMWriter_vs150.vcxproj.filters deleted file mode 100644 index d3a1c40bd..000000000 --- a/XML/samples/DOMWriter/DOMWriter_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {c72b70da-716c-4942-9073-f0f4a435514f} - - - {9daa4585-47d6-449e-bd82-eb24ddeb8e07} - - - - - Source Files - - - \ No newline at end of file diff --git a/XML/samples/PrettyPrint/PrettyPrint_vs140.vcxproj b/XML/samples/PrettyPrint/PrettyPrint_vs140.vcxproj deleted file mode 100644 index d7bcbf96d..000000000 --- a/XML/samples/PrettyPrint/PrettyPrint_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - PrettyPrint - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082} - PrettyPrint - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PrettyPrintd - PrettyPrintd - PrettyPrintd - PrettyPrint - PrettyPrint - PrettyPrint - PrettyPrintd - PrettyPrintd - PrettyPrintd - PrettyPrint - PrettyPrint - PrettyPrint - - - bin\ - obj\PrettyPrint\$(Configuration)\ - true - - - bin\ - obj\PrettyPrint\$(Configuration)\ - false - - - bin\static_mt\ - obj\PrettyPrint\$(Configuration)\ - true - - - bin\static_mt\ - obj\PrettyPrint\$(Configuration)\ - false - - - bin\static_md\ - obj\PrettyPrint\$(Configuration)\ - true - - - bin\static_md\ - obj\PrettyPrint\$(Configuration)\ - false - - - bin64\ - obj64\PrettyPrint\$(Configuration)\ - true - - - bin64\ - obj64\PrettyPrint\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\PrettyPrint\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\PrettyPrint\$(Configuration)\ - false - - - bin64\static_md\ - obj64\PrettyPrint\$(Configuration)\ - true - - - bin64\static_md\ - obj64\PrettyPrint\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\PrettyPrintd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\PrettyPrintd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\PrettyPrint.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\PrettyPrintd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\PrettyPrintd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\PrettyPrint.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\PrettyPrintd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\PrettyPrintd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\PrettyPrint.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\PrettyPrintd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\PrettyPrintd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\PrettyPrint.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\PrettyPrintd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\PrettyPrintd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\PrettyPrint.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\PrettyPrintd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\PrettyPrintd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\PrettyPrint.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/XML/samples/PrettyPrint/PrettyPrint_vs140.vcxproj.filters b/XML/samples/PrettyPrint/PrettyPrint_vs140.vcxproj.filters deleted file mode 100644 index 3f4a3b20f..000000000 --- a/XML/samples/PrettyPrint/PrettyPrint_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {0cc200e1-fd0c-4858-970e-a06450562bfd} - - - {5b81f1df-dd4b-4d42-8ed0-c28635d21e69} - - - - - Source Files - - - \ No newline at end of file diff --git a/XML/samples/PrettyPrint/PrettyPrint_vs150.vcxproj b/XML/samples/PrettyPrint/PrettyPrint_vs150.vcxproj deleted file mode 100644 index 6f4a4a007..000000000 --- a/XML/samples/PrettyPrint/PrettyPrint_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - PrettyPrint - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082} - PrettyPrint - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PrettyPrintd - PrettyPrintd - PrettyPrintd - PrettyPrint - PrettyPrint - PrettyPrint - PrettyPrintd - PrettyPrintd - PrettyPrintd - PrettyPrint - PrettyPrint - PrettyPrint - - - bin\ - obj\PrettyPrint\$(Configuration)\ - true - - - bin\ - obj\PrettyPrint\$(Configuration)\ - false - - - bin\static_mt\ - obj\PrettyPrint\$(Configuration)\ - true - - - bin\static_mt\ - obj\PrettyPrint\$(Configuration)\ - false - - - bin\static_md\ - obj\PrettyPrint\$(Configuration)\ - true - - - bin\static_md\ - obj\PrettyPrint\$(Configuration)\ - false - - - bin64\ - obj64\PrettyPrint\$(Configuration)\ - true - - - bin64\ - obj64\PrettyPrint\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\PrettyPrint\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\PrettyPrint\$(Configuration)\ - false - - - bin64\static_md\ - obj64\PrettyPrint\$(Configuration)\ - true - - - bin64\static_md\ - obj64\PrettyPrint\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\PrettyPrintd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\PrettyPrintd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\PrettyPrint.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\PrettyPrintd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\PrettyPrintd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\PrettyPrint.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\PrettyPrintd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\PrettyPrintd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\PrettyPrint.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\PrettyPrintd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\PrettyPrintd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\PrettyPrint.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\PrettyPrintd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\PrettyPrintd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\PrettyPrint.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\PrettyPrintd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\PrettyPrintd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\PrettyPrint.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/XML/samples/PrettyPrint/PrettyPrint_vs150.vcxproj.filters b/XML/samples/PrettyPrint/PrettyPrint_vs150.vcxproj.filters deleted file mode 100644 index 1835d2a0a..000000000 --- a/XML/samples/PrettyPrint/PrettyPrint_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {9ef8df4e-8c12-4ff3-b15b-e77791d5fec2} - - - {70d80cc3-004f-4638-ae65-12f368b536ce} - - - - - Source Files - - - \ No newline at end of file diff --git a/XML/samples/SAXParser/SAXParser_vs140.vcxproj b/XML/samples/SAXParser/SAXParser_vs140.vcxproj deleted file mode 100644 index 46ff72651..000000000 --- a/XML/samples/SAXParser/SAXParser_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - SAXParser - {2A54653D-9F55-348B-8F79-A3E454563AE3} - SAXParser - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - SAXParserd - SAXParserd - SAXParserd - SAXParser - SAXParser - SAXParser - SAXParserd - SAXParserd - SAXParserd - SAXParser - SAXParser - SAXParser - - - bin\ - obj\SAXParser\$(Configuration)\ - true - - - bin\ - obj\SAXParser\$(Configuration)\ - false - - - bin\static_mt\ - obj\SAXParser\$(Configuration)\ - true - - - bin\static_mt\ - obj\SAXParser\$(Configuration)\ - false - - - bin\static_md\ - obj\SAXParser\$(Configuration)\ - true - - - bin\static_md\ - obj\SAXParser\$(Configuration)\ - false - - - bin64\ - obj64\SAXParser\$(Configuration)\ - true - - - bin64\ - obj64\SAXParser\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\SAXParser\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\SAXParser\$(Configuration)\ - false - - - bin64\static_md\ - obj64\SAXParser\$(Configuration)\ - true - - - bin64\static_md\ - obj64\SAXParser\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SAXParserd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\SAXParserd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SAXParser.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SAXParserd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\SAXParserd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SAXParser.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SAXParserd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\SAXParserd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SAXParser.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SAXParserd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\SAXParserd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SAXParser.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SAXParserd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\SAXParserd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SAXParser.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SAXParserd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\SAXParserd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SAXParser.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/XML/samples/SAXParser/SAXParser_vs140.vcxproj.filters b/XML/samples/SAXParser/SAXParser_vs140.vcxproj.filters deleted file mode 100644 index dc9b597b4..000000000 --- a/XML/samples/SAXParser/SAXParser_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {a1f5ea18-42bc-45bb-ab51-77b858443eff} - - - {e00517ee-3c7d-44df-bbba-cd4b5b3640e4} - - - - - Source Files - - - \ No newline at end of file diff --git a/XML/samples/SAXParser/SAXParser_vs150.vcxproj b/XML/samples/SAXParser/SAXParser_vs150.vcxproj deleted file mode 100644 index df2171c27..000000000 --- a/XML/samples/SAXParser/SAXParser_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - SAXParser - {2A54653D-9F55-348B-8F79-A3E454563AE3} - SAXParser - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - SAXParserd - SAXParserd - SAXParserd - SAXParser - SAXParser - SAXParser - SAXParserd - SAXParserd - SAXParserd - SAXParser - SAXParser - SAXParser - - - bin\ - obj\SAXParser\$(Configuration)\ - true - - - bin\ - obj\SAXParser\$(Configuration)\ - false - - - bin\static_mt\ - obj\SAXParser\$(Configuration)\ - true - - - bin\static_mt\ - obj\SAXParser\$(Configuration)\ - false - - - bin\static_md\ - obj\SAXParser\$(Configuration)\ - true - - - bin\static_md\ - obj\SAXParser\$(Configuration)\ - false - - - bin64\ - obj64\SAXParser\$(Configuration)\ - true - - - bin64\ - obj64\SAXParser\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\SAXParser\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\SAXParser\$(Configuration)\ - false - - - bin64\static_md\ - obj64\SAXParser\$(Configuration)\ - true - - - bin64\static_md\ - obj64\SAXParser\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SAXParserd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\SAXParserd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\SAXParser.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SAXParserd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\SAXParserd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\SAXParser.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SAXParserd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\SAXParserd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\SAXParser.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SAXParserd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\SAXParserd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\SAXParser.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SAXParserd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\SAXParserd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\SAXParser.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SAXParserd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\SAXParserd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\SAXParser.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/XML/samples/SAXParser/SAXParser_vs150.vcxproj.filters b/XML/samples/SAXParser/SAXParser_vs150.vcxproj.filters deleted file mode 100644 index c8ed922cf..000000000 --- a/XML/samples/SAXParser/SAXParser_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {d63a1f81-3f95-41e8-bec5-7f7b638120f1} - - - {970cb64b-37d9-4b75-a51e-24be8470cead} - - - - - Source Files - - - \ No newline at end of file diff --git a/XML/samples/samples_vs140.sln b/XML/samples/samples_vs140.sln deleted file mode 100644 index 0d8aa6f7d..000000000 --- a/XML/samples/samples_vs140.sln +++ /dev/null @@ -1,175 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DOMParser", "DOMParser\DOMParser_vs140.vcxproj", "{70F2F655-67D5-32A1-A99B-D4903547DB3E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DOMWriter", "DOMWriter\DOMWriter_vs140.vcxproj", "{A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PrettyPrint", "PrettyPrint\PrettyPrint_vs140.vcxproj", "{DFA97011-8DD4-3A84-A0C9-EB2101BD6082}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SAXParser", "SAXParser\SAXParser_vs140.vcxproj", "{2A54653D-9F55-348B-8F79-A3E454563AE3}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_shared|Win32.Build.0 = release_shared|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_shared|x64.Build.0 = debug_shared|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_shared|x64.ActiveCfg = release_shared|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_shared|x64.Build.0 = release_shared|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_shared|x64.Deploy.0 = release_shared|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_md|x64.Build.0 = release_static_md|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_shared|Win32.Build.0 = release_shared|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_shared|x64.Build.0 = debug_shared|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_shared|x64.ActiveCfg = release_shared|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_shared|x64.Build.0 = release_shared|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_shared|x64.Deploy.0 = release_shared|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_md|x64.Build.0 = release_static_md|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_shared|Win32.Build.0 = release_shared|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_shared|x64.Build.0 = debug_shared|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_shared|x64.ActiveCfg = release_shared|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_shared|x64.Build.0 = release_shared|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_shared|x64.Deploy.0 = release_shared|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_md|x64.Build.0 = release_static_md|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_shared|Win32.Build.0 = release_shared|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_shared|x64.Build.0 = debug_shared|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_shared|x64.ActiveCfg = release_shared|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_shared|x64.Build.0 = release_shared|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_shared|x64.Deploy.0 = release_shared|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_md|x64.Build.0 = release_static_md|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/XML/samples/samples_vs150.sln b/XML/samples/samples_vs150.sln deleted file mode 100644 index 930c1e1b8..000000000 --- a/XML/samples/samples_vs150.sln +++ /dev/null @@ -1,175 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DOMParser", "DOMParser\DOMParser_vs150.vcxproj", "{70F2F655-67D5-32A1-A99B-D4903547DB3E}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DOMWriter", "DOMWriter\DOMWriter_vs150.vcxproj", "{A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PrettyPrint", "PrettyPrint\PrettyPrint_vs150.vcxproj", "{DFA97011-8DD4-3A84-A0C9-EB2101BD6082}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SAXParser", "SAXParser\SAXParser_vs150.vcxproj", "{2A54653D-9F55-348B-8F79-A3E454563AE3}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_shared|Win32.Build.0 = release_shared|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_shared|x64.Build.0 = debug_shared|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_shared|x64.ActiveCfg = release_shared|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_shared|x64.Build.0 = release_shared|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_shared|x64.Deploy.0 = release_shared|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_md|x64.Build.0 = release_static_md|x64 - {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_shared|Win32.Build.0 = release_shared|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_shared|x64.Build.0 = debug_shared|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_shared|x64.ActiveCfg = release_shared|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_shared|x64.Build.0 = release_shared|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_shared|x64.Deploy.0 = release_shared|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_md|x64.Build.0 = release_static_md|x64 - {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_shared|Win32.Build.0 = release_shared|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_shared|x64.Build.0 = debug_shared|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_shared|x64.ActiveCfg = release_shared|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_shared|x64.Build.0 = release_shared|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_shared|x64.Deploy.0 = release_shared|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_md|x64.Build.0 = release_static_md|x64 - {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_shared|Win32.Build.0 = release_shared|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_shared|x64.Build.0 = debug_shared|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_shared|x64.ActiveCfg = release_shared|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_shared|x64.Build.0 = release_shared|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_shared|x64.Deploy.0 = release_shared|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_md|x64.Build.0 = release_static_md|x64 - {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/XML/testsuite/TestSuite_vs140.vcxproj b/XML/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index caad81af7..000000000 --- a/XML/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,693 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/XML/testsuite/TestSuite_vs140.vcxproj.filters b/XML/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index d91451093..000000000 --- a/XML/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,180 +0,0 @@ - - - - - {e0f98570-0f48-4a8a-a29c-f2a91b4b81b0} - - - {ffff091f-7973-47c2-bea9-f1733c4e99a0} - - - {3c66c114-f188-4c4e-8612-624161ad9231} - - - {eb92d3cd-cb71-40e8-b499-c7e0dab736d1} - - - {d5b1f54c-c536-4890-aa1e-53181db0d2c4} - - - {2e152286-e4e8-48f9-9a25-85c7ea1acfe5} - - - {7165c5ca-91c3-40ee-b4e5-fed7e73754fd} - - - {3b7f5805-9d65-48c5-ab08-f4ae017992f7} - - - {0c628739-145a-416a-9e49-2479eadb9b64} - - - {0d2710c3-2d26-442b-8b67-f28bd3f9f3ab} - - - {31716f87-49c7-4666-9142-69ac763187e8} - - - {13b220b6-69ac-4bf3-8175-0dd6d7b19eca} - - - {4a52c6aa-67d8-4adb-b110-125792bc0426} - - - {f2939ff7-5ecd-45ec-b798-f47afe5b2968} - - - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - _Suite\Header Files - - - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - \ No newline at end of file diff --git a/XML/testsuite/TestSuite_vs150.vcxproj b/XML/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index 7a6478ad7..000000000 --- a/XML/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,693 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45} - TestSuite - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/XML/testsuite/TestSuite_vs150.vcxproj.filters b/XML/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index 1abb6940b..000000000 --- a/XML/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,180 +0,0 @@ - - - - - {12e9a65e-9be0-4e42-b0dc-84f802ba8d64} - - - {31f89672-4086-4ed9-a9c9-a2e8e9020c17} - - - {4ae1fabb-2137-4c1f-8adf-98438cdf0d09} - - - {3bafbfea-5e99-42a9-8536-4f9ae45883f0} - - - {3b2cab60-409e-4d3b-a0a5-3d8e1bd4e9e2} - - - {1be3f5b8-ffb4-41f5-8320-7598a2c57add} - - - {d716d236-9527-4f02-88ca-ca3e8f0e10cd} - - - {a3988452-fc11-4a68-8ab6-6d18b9586245} - - - {631ff41c-a2b3-4926-a3d0-b6af020bfd3f} - - - {0c5d86d4-00c5-4a13-80fc-ca48cd546fae} - - - {b8698ed1-4daf-43bc-93c8-c8c59afd08eb} - - - {5a3f0cbe-3d39-4cd1-a3d9-55211719c6d2} - - - {f7c124ae-712f-458c-a15b-5494ad6f5969} - - - {e5cac35f-4568-4507-8f56-87454f842b8b} - - - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - XML\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - SAX\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - DOM\Header Files - - - _Suite\Header Files - - - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - XML\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - SAX\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - DOM\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - \ No newline at end of file diff --git a/Zip/Zip_vs140.sln b/Zip/Zip_vs140.sln deleted file mode 100644 index d7cbc139e..000000000 --- a/Zip/Zip_vs140.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Zip", "Zip_vs140.vcxproj", "{4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs140.vcxproj", "{9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}" - ProjectSection(ProjectDependencies) = postProject - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61} = {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_shared|Win32.Build.0 = release_shared|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_shared|x64.Build.0 = debug_shared|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_shared|x64.ActiveCfg = release_shared|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_shared|x64.Build.0 = release_shared|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_shared|x64.Deploy.0 = release_shared|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_md|x64.Build.0 = release_static_md|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_shared|Win32.Build.0 = release_shared|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_shared|x64.Build.0 = debug_shared|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_shared|x64.ActiveCfg = release_shared|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_shared|x64.Build.0 = release_shared|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_shared|x64.Deploy.0 = release_shared|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_md|x64.Build.0 = release_static_md|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Zip/Zip_vs140.vcxproj b/Zip/Zip_vs140.vcxproj deleted file mode 100644 index 387ac29f1..000000000 --- a/Zip/Zip_vs140.vcxproj +++ /dev/null @@ -1,667 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Zip - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61} - Zip - Win32Proj - - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - StaticLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - DynamicLibrary - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - PocoZipd - PocoZipmdd - PocoZipmtd - PocoZip - PocoZipmd - PocoZipmt - PocoZip64d - PocoZipmdd - PocoZipmtd - PocoZip64 - PocoZipmd - PocoZipmt - - - ..\bin\ - obj\Zip\$(Configuration)\ - true - - - ..\bin\ - obj\Zip\$(Configuration)\ - false - - - ..\lib\ - obj\Zip\$(Configuration)\ - - - ..\lib\ - obj\Zip\$(Configuration)\ - - - ..\lib\ - obj\Zip\$(Configuration)\ - - - ..\lib\ - obj\Zip\$(Configuration)\ - - - ..\bin64\ - obj64\Zip\$(Configuration)\ - true - - - ..\bin64\ - obj64\Zip\$(Configuration)\ - false - - - ..\lib64\ - obj64\Zip\$(Configuration)\ - - - ..\lib64\ - obj64\Zip\$(Configuration)\ - - - ..\lib64\ - obj64\Zip\$(Configuration)\ - - - ..\lib64\ - obj64\Zip\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Zip_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoZipd.dll - true - true - ..\bin\PocoZipd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoZipd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Zip_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoZip.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoZip.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoZipmtd.pdb - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib\PocoZipmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib\PocoZipmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoZipmdd.pdb - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib\PocoZipmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoZipmd.pdb - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\lib\PocoZipmd.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Zip_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoZip64d.dll - true - true - ..\bin64\PocoZip64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoZipd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Zip_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoZip64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoZip.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoZipmtd.pdb - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib64\PocoZipmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib64\PocoZipmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoZipmdd.pdb - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib64\PocoZipmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib64\PocoZipmd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Zip/Zip_vs140.vcxproj.filters b/Zip/Zip_vs140.vcxproj.filters deleted file mode 100644 index 6deb73350..000000000 --- a/Zip/Zip_vs140.vcxproj.filters +++ /dev/null @@ -1,165 +0,0 @@ - - - - - {2999530e-f717-4f3d-badd-0054e10303b8} - - - {538b2955-6b28-482c-9842-f048a352c53a} - - - {e035a145-47e4-4cfa-aa04-ba7bf3ce0719} - - - {b23cca60-15ce-48b3-9c4d-bde57655ab32} - - - {c427f146-41e2-4899-85a7-f8a49b10615f} - - - {9858ea5a-c580-4a63-a39e-a71a22a13926} - - - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Manipulation\Header Files - - - Manipulation\Header Files - - - Manipulation\Header Files - - - Manipulation\Header Files - - - Manipulation\Header Files - - - Manipulation\Header Files - - - Manipulation\Header Files - - - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Manipulation\Source Files - - - Manipulation\Source Files - - - Manipulation\Source Files - - - Manipulation\Source Files - - - Manipulation\Source Files - - - Manipulation\Source Files - - - Manipulation\Source Files - - - - - - \ No newline at end of file diff --git a/Zip/Zip_vs150.sln b/Zip/Zip_vs150.sln deleted file mode 100644 index a65a487ad..000000000 --- a/Zip/Zip_vs150.sln +++ /dev/null @@ -1,102 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Zip", "Zip_vs150.vcxproj", "{4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs150.vcxproj", "{9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}" - ProjectSection(ProjectDependencies) = postProject - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61} = {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61} - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_shared|Win32.Build.0 = release_shared|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_shared|x64.Build.0 = debug_shared|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_shared|x64.ActiveCfg = release_shared|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_shared|x64.Build.0 = release_shared|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_shared|x64.Deploy.0 = release_shared|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_md|x64.Build.0 = release_static_md|x64 - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_shared|Win32.Build.0 = release_shared|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_shared|x64.Build.0 = debug_shared|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_shared|x64.ActiveCfg = release_shared|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_shared|x64.Build.0 = release_shared|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_shared|x64.Deploy.0 = release_shared|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_md|x64.Build.0 = release_static_md|x64 - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Zip/Zip_vs150.vcxproj b/Zip/Zip_vs150.vcxproj deleted file mode 100644 index 32c2c531f..000000000 --- a/Zip/Zip_vs150.vcxproj +++ /dev/null @@ -1,667 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - Zip - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61} - Zip - Win32Proj - - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - StaticLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - DynamicLibrary - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PocoZipd - PocoZipmdd - PocoZipmtd - PocoZip - PocoZipmd - PocoZipmt - PocoZip64d - PocoZipmdd - PocoZipmtd - PocoZip64 - PocoZipmd - PocoZipmt - - - ..\bin\ - obj\Zip\$(Configuration)\ - true - - - ..\bin\ - obj\Zip\$(Configuration)\ - false - - - ..\lib\ - obj\Zip\$(Configuration)\ - - - ..\lib\ - obj\Zip\$(Configuration)\ - - - ..\lib\ - obj\Zip\$(Configuration)\ - - - ..\lib\ - obj\Zip\$(Configuration)\ - - - ..\bin64\ - obj64\Zip\$(Configuration)\ - true - - - ..\bin64\ - obj64\Zip\$(Configuration)\ - false - - - ..\lib64\ - obj64\Zip\$(Configuration)\ - - - ..\lib64\ - obj64\Zip\$(Configuration)\ - - - ..\lib64\ - obj64\Zip\$(Configuration)\ - - - ..\lib64\ - obj64\Zip\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Zip_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoZipd.dll - true - true - ..\bin\PocoZipd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoZipd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Zip_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoZip.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoZip.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoZipmtd.pdb - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib\PocoZipmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib\PocoZipmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoZipmdd.pdb - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib\PocoZipmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoZipmd.pdb - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\lib\PocoZipmd.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Zip_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoZip64d.dll - true - true - ..\bin64\PocoZip64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoZipd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Zip_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoZip64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoZip.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoZipmtd.pdb - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib64\PocoZipmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib64\PocoZipmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoZipmdd.pdb - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib64\PocoZipmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib64\PocoZipmd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - - - - diff --git a/Zip/Zip_vs150.vcxproj.filters b/Zip/Zip_vs150.vcxproj.filters deleted file mode 100644 index 90b155a6f..000000000 --- a/Zip/Zip_vs150.vcxproj.filters +++ /dev/null @@ -1,165 +0,0 @@ - - - - - {c09bfde0-105f-48ba-a69a-b026ee3840d2} - - - {60f6f49c-8b18-43f8-85fc-cd6ea85ce751} - - - {1cecb5ad-f346-4925-89d7-c0703a76c998} - - - {28a6c17a-c9d5-4b32-b742-bbca01df881c} - - - {c260a2fe-cdfa-4c02-a0e2-165ba6333f9b} - - - {3224ecd7-d97d-450f-9e49-535ce7d9ece8} - - - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Manipulation\Header Files - - - Manipulation\Header Files - - - Manipulation\Header Files - - - Manipulation\Header Files - - - Manipulation\Header Files - - - Manipulation\Header Files - - - Manipulation\Header Files - - - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Manipulation\Source Files - - - Manipulation\Source Files - - - Manipulation\Source Files - - - Manipulation\Source Files - - - Manipulation\Source Files - - - Manipulation\Source Files - - - Manipulation\Source Files - - - - - - \ No newline at end of file diff --git a/Zip/samples/samples_vs140.sln b/Zip/samples/samples_vs140.sln deleted file mode 100644 index 796a4428e..000000000 --- a/Zip/samples/samples_vs140.sln +++ /dev/null @@ -1,99 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zip", "zip\zip_vs140.vcxproj", "{7F3AD0E5-A150-3AE7-9041-9086C45020C0}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unzip", "unzip\unzip_vs140.vcxproj", "{9FE5275A-E14A-30C2-9C5B-AEBDE780608F}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_shared|Win32.Build.0 = release_shared|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_shared|x64.Build.0 = debug_shared|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_shared|x64.ActiveCfg = release_shared|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_shared|x64.Build.0 = release_shared|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_shared|x64.Deploy.0 = release_shared|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_md|x64.Build.0 = release_static_md|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_shared|Win32.Build.0 = release_shared|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_shared|x64.Build.0 = debug_shared|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_shared|x64.ActiveCfg = release_shared|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_shared|x64.Build.0 = release_shared|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_shared|x64.Deploy.0 = release_shared|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_md|x64.Build.0 = release_static_md|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Zip/samples/samples_vs150.sln b/Zip/samples/samples_vs150.sln deleted file mode 100644 index 97149fdfa..000000000 --- a/Zip/samples/samples_vs150.sln +++ /dev/null @@ -1,99 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zip", "zip\zip_vs150.vcxproj", "{7F3AD0E5-A150-3AE7-9041-9086C45020C0}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unzip", "unzip\unzip_vs150.vcxproj", "{9FE5275A-E14A-30C2-9C5B-AEBDE780608F}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 - debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 - debug_static_md|x64 = debug_static_md|x64 - release_static_md|x64 = release_static_md|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_shared|Win32.Build.0 = release_shared|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_shared|x64.Build.0 = debug_shared|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_shared|x64.ActiveCfg = release_shared|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_shared|x64.Build.0 = release_shared|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_shared|x64.Deploy.0 = release_shared|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_md|x64.Build.0 = release_static_md|x64 - {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_shared|Win32.Build.0 = release_shared|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_shared|x64.Build.0 = debug_shared|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_shared|x64.ActiveCfg = release_shared|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_shared|x64.Build.0 = release_shared|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_shared|x64.Deploy.0 = release_shared|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_md|x64.Build.0 = release_static_md|x64 - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_md|x64.Deploy.0 = release_static_md|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/Zip/samples/unzip/unzip_vs140.vcxproj b/Zip/samples/unzip/unzip_vs140.vcxproj deleted file mode 100644 index 7ee199214..000000000 --- a/Zip/samples/unzip/unzip_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - unzip - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F} - unzip - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - unzipd - unzipd - unzipd - unzip - unzip - unzip - unzipd - unzipd - unzipd - unzip - unzip - unzip - - - bin\ - obj\unzip\$(Configuration)\ - true - - - bin\ - obj\unzip\$(Configuration)\ - false - - - bin\static_mt\ - obj\unzip\$(Configuration)\ - true - - - bin\static_mt\ - obj\unzip\$(Configuration)\ - false - - - bin\static_md\ - obj\unzip\$(Configuration)\ - true - - - bin\static_md\ - obj\unzip\$(Configuration)\ - false - - - bin64\ - obj64\unzip\$(Configuration)\ - true - - - bin64\ - obj64\unzip\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\unzip\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\unzip\$(Configuration)\ - false - - - bin64\static_md\ - obj64\unzip\$(Configuration)\ - true - - - bin64\static_md\ - obj64\unzip\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\unzipd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\unzipd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\unzip.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\unzipd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\unzipd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\unzip.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\unzipd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\unzipd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\unzip.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\unzipd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\unzipd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\unzip.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\unzipd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\unzipd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\unzip.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\unzipd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\unzipd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\unzip.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Zip/samples/unzip/unzip_vs140.vcxproj.filters b/Zip/samples/unzip/unzip_vs140.vcxproj.filters deleted file mode 100644 index 28233ab8a..000000000 --- a/Zip/samples/unzip/unzip_vs140.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {5db0bca7-015c-41b2-9a60-0f84f30836e5} - - - {30249d6e-34d4-4914-a5d7-cbccf3b5d609} - - - - - Source Files - - - \ No newline at end of file diff --git a/Zip/samples/unzip/unzip_vs150.vcxproj b/Zip/samples/unzip/unzip_vs150.vcxproj deleted file mode 100644 index 738fe4f67..000000000 --- a/Zip/samples/unzip/unzip_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - unzip - {9FE5275A-E14A-30C2-9C5B-AEBDE780608F} - unzip - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - unzipd - unzipd - unzipd - unzip - unzip - unzip - unzipd - unzipd - unzipd - unzip - unzip - unzip - - - bin\ - obj\unzip\$(Configuration)\ - true - - - bin\ - obj\unzip\$(Configuration)\ - false - - - bin\static_mt\ - obj\unzip\$(Configuration)\ - true - - - bin\static_mt\ - obj\unzip\$(Configuration)\ - false - - - bin\static_md\ - obj\unzip\$(Configuration)\ - true - - - bin\static_md\ - obj\unzip\$(Configuration)\ - false - - - bin64\ - obj64\unzip\$(Configuration)\ - true - - - bin64\ - obj64\unzip\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\unzip\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\unzip\$(Configuration)\ - false - - - bin64\static_md\ - obj64\unzip\$(Configuration)\ - true - - - bin64\static_md\ - obj64\unzip\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\unzipd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\unzipd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\unzip.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\unzipd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\unzipd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\unzip.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\unzipd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\unzipd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\unzip.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\unzipd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\unzipd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\unzip.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\unzipd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\unzipd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\unzip.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\unzipd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\unzipd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\unzip.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Zip/samples/unzip/unzip_vs150.vcxproj.filters b/Zip/samples/unzip/unzip_vs150.vcxproj.filters deleted file mode 100644 index 70d169273..000000000 --- a/Zip/samples/unzip/unzip_vs150.vcxproj.filters +++ /dev/null @@ -1,16 +0,0 @@ - - - - - {cff9e2c9-ec05-4838-95eb-95b94e491b1b} - - - {68f0ac46-d55a-4867-aac6-485dac0c3bca} - - - - - Source Files - - - \ No newline at end of file diff --git a/Zip/samples/zip/zip_vs140.vcxproj b/Zip/samples/zip/zip_vs140.vcxproj deleted file mode 100644 index 4e4ea5da4..000000000 --- a/Zip/samples/zip/zip_vs140.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - zip - {7F3AD0E5-A150-3AE7-9041-9086C45020C0} - zip - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - zipd - zipd - zipd - zip - zip - zip - zipd - zipd - zipd - zip - zip - zip - - - bin\ - obj\zip\$(Configuration)\ - true - - - bin\ - obj\zip\$(Configuration)\ - false - - - bin\static_mt\ - obj\zip\$(Configuration)\ - true - - - bin\static_mt\ - obj\zip\$(Configuration)\ - false - - - bin\static_md\ - obj\zip\$(Configuration)\ - true - - - bin\static_md\ - obj\zip\$(Configuration)\ - false - - - bin64\ - obj64\zip\$(Configuration)\ - true - - - bin64\ - obj64\zip\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\zip\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\zip\$(Configuration)\ - false - - - bin64\static_md\ - obj64\zip\$(Configuration)\ - true - - - bin64\static_md\ - obj64\zip\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\zipd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\zipd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\zip.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\zipd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\zipd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\zip.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\zipd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\zipd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\zip.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\zipd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\zipd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\zip.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\zipd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\zipd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\zip.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\zipd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\zipd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\zip.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Zip/samples/zip/zip_vs140.vcxproj.filters b/Zip/samples/zip/zip_vs140.vcxproj.filters deleted file mode 100644 index 315b85e44..000000000 --- a/Zip/samples/zip/zip_vs140.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {cb3fe275-2965-4085-872f-12b8f5c9d88f} - - - - - Source Files - - - \ No newline at end of file diff --git a/Zip/samples/zip/zip_vs150.vcxproj b/Zip/samples/zip/zip_vs150.vcxproj deleted file mode 100644 index 54c61d101..000000000 --- a/Zip/samples/zip/zip_vs150.vcxproj +++ /dev/null @@ -1,607 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - zip - {7F3AD0E5-A150-3AE7-9041-9086C45020C0} - zip - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - zipd - zipd - zipd - zip - zip - zip - zipd - zipd - zipd - zip - zip - zip - - - bin\ - obj\zip\$(Configuration)\ - true - - - bin\ - obj\zip\$(Configuration)\ - false - - - bin\static_mt\ - obj\zip\$(Configuration)\ - true - - - bin\static_mt\ - obj\zip\$(Configuration)\ - false - - - bin\static_md\ - obj\zip\$(Configuration)\ - true - - - bin\static_md\ - obj\zip\$(Configuration)\ - false - - - bin64\ - obj64\zip\$(Configuration)\ - true - - - bin64\ - obj64\zip\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\zip\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\zip\$(Configuration)\ - false - - - bin64\static_md\ - obj64\zip\$(Configuration)\ - true - - - bin64\static_md\ - obj64\zip\$(Configuration)\ - false - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\zipd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\zipd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\zip.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\zipd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\zipd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\zip.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\zipd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\zipd.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\zip.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\zipd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\zipd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\zip.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\zipd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\zipd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\zip.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\zipd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\zipd.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\zip.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - true - - - - - diff --git a/Zip/samples/zip/zip_vs150.vcxproj.filters b/Zip/samples/zip/zip_vs150.vcxproj.filters deleted file mode 100644 index 9d459d529..000000000 --- a/Zip/samples/zip/zip_vs150.vcxproj.filters +++ /dev/null @@ -1,13 +0,0 @@ - - - - - {5848816d-6727-4c23-84b9-25afcc9965a7} - - - - - Source Files - - - \ No newline at end of file diff --git a/Zip/testsuite/TestSuite_vs140.vcxproj b/Zip/testsuite/TestSuite_vs140.vcxproj deleted file mode 100644 index 5bc358757..000000000 --- a/Zip/testsuite/TestSuite_vs140.vcxproj +++ /dev/null @@ -1,625 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7} - TestSuite - Win32Proj - - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - Application - MultiByte - v140 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>14.0.25420.1 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/Zip/testsuite/TestSuite_vs140.vcxproj.filters b/Zip/testsuite/TestSuite_vs140.vcxproj.filters deleted file mode 100644 index 80c64678f..000000000 --- a/Zip/testsuite/TestSuite_vs140.vcxproj.filters +++ /dev/null @@ -1,60 +0,0 @@ - - - - - {12f23d85-ecd6-4de3-a5a7-0c80744e0917} - - - {40d0e1d3-f115-4772-94be-23c5783d15af} - - - {adf54ba5-cc32-4883-88e0-c0f9584aa7b8} - - - {06fca63a-4199-4e69-9fc5-8b175842e03e} - - - {1b941153-2eff-437b-8c88-f7e872ef81f2} - - - {e712ad6a-970d-435c-bf71-2f7e9adb436b} - - - {63095843-aa83-4f47-bf6c-20ced2fc76b5} - - - {c6abc3f0-6e65-4ef8-b2d8-f14c0302d978} - - - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - _Suite\Header Files - - - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - \ No newline at end of file diff --git a/Zip/testsuite/TestSuite_vs150.vcxproj b/Zip/testsuite/TestSuite_vs150.vcxproj deleted file mode 100644 index fb498f7c0..000000000 --- a/Zip/testsuite/TestSuite_vs150.vcxproj +++ /dev/null @@ -1,625 +0,0 @@ - - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - - - TestSuite - {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7} - TestSuite - Win32Proj - - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - Application - MultiByte - v141 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - TestSuited - TestSuited - TestSuited - TestSuite - TestSuite - TestSuite - - - bin\ - obj\TestSuite\$(Configuration)\ - true - - - bin\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_mt\ - obj\TestSuite\$(Configuration)\ - false - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - true - - - bin\static_md\ - obj\TestSuite\$(Configuration)\ - false - - - bin64\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_mt\ - obj64\TestSuite\$(Configuration)\ - false - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - true - - - bin64\static_md\ - obj64\TestSuite\$(Configuration)\ - false - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_mt\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_mt\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuited.exe - ..\..\lib;%(AdditionalLibraryDirectories) - true - true - bin\static_md\TestSuited.pdb - Console - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin\static_md\TestSuite.exe - ..\..\lib;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX86 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_mt\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - true - - - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_mt\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - true - - - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuited.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - true - true - bin64\static_md\TestSuited.pdb - Console - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - true - - - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - bin64\static_md\TestSuite.exe - ..\..\lib64;%(AdditionalLibraryDirectories) - false - Console - true - true - MachineX64 - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - - - diff --git a/Zip/testsuite/TestSuite_vs150.vcxproj.filters b/Zip/testsuite/TestSuite_vs150.vcxproj.filters deleted file mode 100644 index ec6fb7be3..000000000 --- a/Zip/testsuite/TestSuite_vs150.vcxproj.filters +++ /dev/null @@ -1,60 +0,0 @@ - - - - - {93794108-9557-4230-934d-2d603384b0fb} - - - {03fc569a-d7d1-46e2-b995-3b573fe02354} - - - {4ee7c20b-88e6-4a0c-bc9d-766f799272dc} - - - {4cfabbc7-207d-45da-b15a-e68c733bfa12} - - - {b6e5320c-e3cc-4fd0-ad7b-921734590298} - - - {e92c92ed-d488-464d-854f-f5c3dbce6cd5} - - - {70c2454a-0f03-4abb-8bd2-0c2409007f64} - - - {491d89b8-6fb1-4c5d-b0ae-73ae4a03c0ad} - - - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - _Suite\Header Files - - - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - _Suite\Source Files - - - _Driver\Source Files - - - \ No newline at end of file From 4e352c8dbd42c9ff5b03e58dda9030357726adc0 Mon Sep 17 00:00:00 2001 From: Kari Argillander Date: Wed, 13 Dec 2023 07:39:53 +0200 Subject: [PATCH 253/395] Add old Visual Studio files to gitignore As it is plan to continue support generating old Visual Studio files a little wile it makes sense to ignore these files so they are not anymore popping peoples eyes if they use those. --- .gitignore | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.gitignore b/.gitignore index abf2185cf..bfccd1eb5 100644 --- a/.gitignore +++ b/.gitignore @@ -157,3 +157,9 @@ tags ############## package-lock.json node_modules + +# Old Visual Studio files # +########################### +*_vs1[45]0.sln +*_vs1[45]0.vcxproj +*_vs1[45]0.vcxproj.filters From 80cde9e3e6a7f415658003b134be7d3355367f4a Mon Sep 17 00:00:00 2001 From: Kari Argillander Date: Wed, 13 Dec 2023 09:21:51 +0200 Subject: [PATCH 254/395] Use vs160 & vs170 in rebuild all scripts I'm not actually sure how much these scripts are even used but let's just update these as well to support 160 and 170. --- ProGen/rebuildall32.bat | 7 ++----- ProGen/rebuildall64.bat | 7 ++----- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/ProGen/rebuildall32.bat b/ProGen/rebuildall32.bat index 1b95d28a3..ef6cd6111 100644 --- a/ProGen/rebuildall32.bat +++ b/ProGen/rebuildall32.bat @@ -9,11 +9,8 @@ mkdir ProGen\log call ProGen\progen.bat Win32 >ProGen\log\progen32.log 2>&1 rd /q /s lib bin & call buildwin 90 rebuild all both Win32 samples tests devenv > ProGen\log\90.x32.log 2>&1 -rd /q /s lib bin & call buildwin 100 rebuild all both Win32 samples tests msbuild > ProGen\log\100.x32.log 2>&1 -rd /q /s lib bin & call buildwin 110 rebuild all both Win32 samples tests msbuild > ProGen\log\110.x32.log 2>&1 -rd /q /s lib bin & call buildwin 120 rebuild all both Win32 samples tests msbuild > ProGen\log\120.x32.log 2>&1 -rd /q /s lib bin & call buildwin 140 rebuild all both Win32 samples tests msbuild > ProGen\log\140.x32.log 2>&1 -rd /q /s lib bin & call buildwin 150 rebuild all both Win32 samples tests msbuild > ProGen\log\150.x32.log 2>&1 +rd /q /s lib bin & call buildwin 160 rebuild all both Win32 samples tests msbuild > ProGen\log\140.x32.log 2>&1 +rd /q /s lib bin & call buildwin 170 rebuild all both Win32 samples tests msbuild > ProGen\log\150.x32.log 2>&1 popd :exit endlocal diff --git a/ProGen/rebuildall64.bat b/ProGen/rebuildall64.bat index 97296a3ab..e06106cf6 100644 --- a/ProGen/rebuildall64.bat +++ b/ProGen/rebuildall64.bat @@ -9,11 +9,8 @@ mkdir ProGen\log call ProGen\progen x64 >ProGen\log\progen64.log 2>&1 rd /q /s lib64 bin64 & call buildwin 90 rebuild all both x64 samples tests devenv > ProGen\log\90.x64.log 2>&1 -rd /q /s lib64 bin64 & call buildwin 100 rebuild all both x64 samples tests msbuild > ProGen\log\100.x64.log 2>&1 -rd /q /s lib64 bin64 & call buildwin 110 rebuild all both x64 samples tests msbuild > ProGen\log\110.x64.log 2>&1 -rd /q /s lib64 bin64 & call buildwin 120 rebuild all both x64 samples tests msbuild > ProGen\log\120.x64.log 2>&1 -rd /q /s lib64 bin64 & call buildwin 140 rebuild all both x64 samples tests msbuild > ProGen\log\140.x64.log 2>&1 -rd /q /s lib64 bin64 & call buildwin 150 rebuild all both x64 samples tests msbuild > ProGen\log\150.x64.log 2>&1 +rd /q /s lib64 bin64 & call buildwin 160 rebuild all both x64 samples tests msbuild > ProGen\log\140.x64.log 2>&1 +rd /q /s lib64 bin64 & call buildwin 170 rebuild all both x64 samples tests msbuild > ProGen\log\150.x64.log 2>&1 popd :exit endlocal From 86084cb7b2c5d5a34874d130fefd1a46f1a11788 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Fri, 22 Dec 2023 09:27:34 +0100 Subject: [PATCH 255/395] feat(Data::AbstractSessionImpl): add autoCommit property and tests #4261 (#4262) * fix(Data::AbstracSessionImpl): protect autocommit feature handlers #4261 * chore(CI): re-enable mysql * MySQL SessionImpl: make sure autocommit mode is on when session is openend or reset. * PostgreSQL SessionImpl: reuse autocommit flag of AbstractSessionImpl. * Github workflow: re-activated linux-gcc-make-postgres * Fixed indentation in ci.yml * Fix for DataTest SQLExecutor: use connector * Data::Session: when parser is not used and autocommit mode is off, assume any SQL statement begins a transaction. * PostgreSQL: don't use SQL parser (it currently cannot handle placeholders). * PostgreSQL: added test sessionTransactionNoAutoCommit * PostgreSQL test suite: removed reference to generic SQLExecutor * PostgreSQL: fixes for sessionTransactionNoAutoCommit. * MySQL: added test sessionPoolAndUnicode (from #2801) * Fixed #define in sql-parser * Data generic testsuite: support numbered placeholders * PostgreSQL test suite: added missing include directory to Makefile. * Attempt to fix PostgreSQL Makefiles * PostgreSQL testsuite: added include path to Makefile * PostgreSQL testsuite: added PocoDataTest library to Makefile * DataTest SQLExecutor::formatSQL: don't use string_view * PostgreSQL test suite: delegated most tests to Poco::Data::Test * Makefile: added dependencies on Data-Tests * Weaken assumptions about async in generic transaction tests * Makefile: added dependency for Prometheus samples * Fix deadlock in DataTest SQLExecutor * PostgreSQL tests SQLExecutor: cleanup * feat(Data::AbstractSessionImpl): add autoCommit property and tests #4261 * Brought MySQL backend in line with _autoCommit flag of AbstractSessionImpl. --------- Co-authored-by: Friedrich Wilckens Co-authored-by: Friedrich Wilckens --- .github/workflows/ci.yml | 96 +- .../include/Poco/Data/MySQL/SessionHandle.h | 3 + Data/MySQL/src/SessionHandle.cpp | 7 + Data/MySQL/src/SessionImpl.cpp | 18 +- Data/MySQL/testsuite/src/MySQLTest.cpp | 11 +- Data/MySQL/testsuite/src/MySQLTest.h | 1 + Data/MySQL/testsuite/src/SQLExecutor.cpp | 35 +- Data/MySQL/testsuite/src/SQLExecutor.h | 3 +- Data/PostgreSQL/Makefile | 5 +- .../Poco/Data/PostgreSQL/SessionHandle.h | 9 +- .../Poco/Data/PostgreSQL/SessionImpl.h | 2 +- Data/PostgreSQL/src/SessionHandle.cpp | 16 +- Data/PostgreSQL/src/SessionImpl.cpp | 14 +- Data/PostgreSQL/testsuite/Makefile | 5 +- .../testsuite/src/PostgreSQLTest.cpp | 10 + .../PostgreSQL/testsuite/src/PostgreSQLTest.h | 2 +- Data/PostgreSQL/testsuite/src/SQLExecutor.cpp | 1182 +---------------- Data/PostgreSQL/testsuite/src/SQLExecutor.h | 4 + Data/include/Poco/Data/AbstractSessionImpl.h | 34 +- Data/src/Statement.cpp | 13 +- .../include/Poco/Data/Test/SQLExecutor.h | 6 +- Data/testsuite/DataTest/src/SQLExecutor.cpp | 229 ++-- Data/testsuite/src/DataTest.cpp | 53 + Data/testsuite/src/SessionImpl.cpp | 16 +- Data/testsuite/src/SessionImpl.h | 5 - Foundation/include/Poco/Foundation.h | 2 +- Foundation/nonexistent.txt | 0 27 files changed, 441 insertions(+), 1340 deletions(-) create mode 100644 Foundation/nonexistent.txt diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 368495d02..f8e615bfd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -420,55 +420,55 @@ jobs: # cd cmake-build; # ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Debug -# linux-gcc-make-mysql: -# runs-on: ubuntu-22.04 -# services: -# mysql: -# image: mysql:8.1.0 -# env: -# MYSQL_ALLOW_EMPTY_PASSWORD: yes -# MYSQL_USER: pocotest -# MYSQL_PASSWORD: pocotest -# MYSQL_DATABASE: pocotest -# ports: -# - 3306:3306 -# steps: -# - uses: actions/checkout@v3 -# - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev mysql-client -# - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/PostgreSQL,Data/SQLite,Data/ODBC,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install -# - uses: ./.github/actions/retry-action -# with: -# timeout_minutes: 90 -# max_attempts: 3 -# retry_on: any -# command: >- -# sudo -s -# EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/PostgreSQL Data/ODBC Data/SQLite Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" -# ./ci/runtests.sh + linux-gcc-make-mysql: + runs-on: ubuntu-22.04 + services: + mysql: + image: mysql:8.1.0 + env: + MYSQL_ALLOW_EMPTY_PASSWORD: yes + MYSQL_USER: pocotest + MYSQL_PASSWORD: pocotest + MYSQL_DATABASE: pocotest + ports: + - 3306:3306 + steps: + - uses: actions/checkout@v3 + - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev mysql-client + - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/PostgreSQL,Data/SQLite,Data/ODBC,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + sudo -s + EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/PostgreSQL Data/ODBC Data/SQLite Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" + ./ci/runtests.sh -# TODO tests sometimes failling on testTransaction and testReconnect -# linux-gcc-make-postgres: -# runs-on: ubuntu-22.04 -# services: -# postgres: -# image: postgres:16.0 -# env: -# POSTGRES_PASSWORD: postgres -# ports: -# - 5432:5432 -# steps: -# - uses: actions/checkout@v3 -# - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev odbc-postgresql -# - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/MySQL,Data/ODBC,Data/SQLite,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install -# - uses: ./.github/actions/retry-action -# with: -# timeout_minutes: 90 -# max_attempts: 3 -# retry_on: any -# command: >- -# sudo -s -# EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/ODBC Data/MySQL Data/SQLite Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" -# ./ci/runtests.sh +# TODO tests sometimes failing on testTransaction and testReconnect + linux-gcc-make-postgres: + runs-on: ubuntu-22.04 + services: + postgres: + image: postgres:16.0 + env: + POSTGRES_PASSWORD: postgres + ports: + - 5432:5432 + steps: + - uses: actions/checkout@v3 + - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev odbc-postgresql + - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/MySQL,Data/ODBC,Data/SQLite,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + sudo -s + EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/ODBC Data/MySQL Data/SQLite Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" + ./ci/runtests.sh linux-gcc-make-redis: runs-on: ubuntu-22.04 diff --git a/Data/MySQL/include/Poco/Data/MySQL/SessionHandle.h b/Data/MySQL/include/Poco/Data/MySQL/SessionHandle.h index 4f65ae5c0..ebfb73e9c 100644 --- a/Data/MySQL/include/Poco/Data/MySQL/SessionHandle.h +++ b/Data/MySQL/include/Poco/Data/MySQL/SessionHandle.h @@ -67,6 +67,9 @@ public: void rollback(); /// Rollback transaction + void autoCommit(bool val); + /// Set autocommit mode + void reset(); /// Reset connection with dababase and clears session state, but without disconnecting diff --git a/Data/MySQL/src/SessionHandle.cpp b/Data/MySQL/src/SessionHandle.cpp index 5e9ab21b2..ce28a7cfb 100644 --- a/Data/MySQL/src/SessionHandle.cpp +++ b/Data/MySQL/src/SessionHandle.cpp @@ -181,6 +181,13 @@ void SessionHandle::rollback() } +void SessionHandle::autoCommit(bool val) +{ + if (mysql_autocommit(_pHandle, val) != 0) + throw TransactionException("Setting autocommit mode failed.", _pHandle); +} + + void SessionHandle::reset() { #if ((defined (MYSQL_VERSION_ID)) && (MYSQL_VERSION_ID >= 50700)) || ((defined (MARIADB_PACKAGE_VERSION_ID)) && (MARIADB_PACKAGE_VERSION_ID >= 30000)) diff --git a/Data/MySQL/src/SessionImpl.cpp b/Data/MySQL/src/SessionImpl.cpp index dab3ada08..0dcf40a75 100644 --- a/Data/MySQL/src/SessionImpl.cpp +++ b/Data/MySQL/src/SessionImpl.cpp @@ -173,6 +173,9 @@ void SessionImpl::open(const std::string& connect) &SessionImpl::autoCommit, &SessionImpl::isAutoCommit); + // autocommit is initially on when a session is opened + AbstractSessionImpl::setAutoCommit("", true); + _connected = true; } @@ -215,18 +218,18 @@ void SessionImpl::rollback() } -void SessionImpl::autoCommit(const std::string&, bool val) +void SessionImpl::autoCommit(const std::string& s, bool val) { - StatementExecutor ex(_handle); - ex.prepare(Poco::format("SET autocommit=%d", val ? 1 : 0)); - ex.execute(); + if (val != getAutoCommit(s)) { + _handle.autoCommit(val); + AbstractSessionImpl::setAutoCommit(s, val); + } } -bool SessionImpl::isAutoCommit(const std::string&) const +bool SessionImpl::isAutoCommit(const std::string& s) const { - int ac = 0; - return 1 == getSetting("autocommit", ac); + return AbstractSessionImpl::getAutoCommit(s); } @@ -306,6 +309,7 @@ void SessionImpl::reset() if (_connected && _reset) { _handle.reset(); + AbstractSessionImpl::setAutoCommit("", true); } } diff --git a/Data/MySQL/testsuite/src/MySQLTest.cpp b/Data/MySQL/testsuite/src/MySQLTest.cpp index 2a286d35e..3ba3b153d 100644 --- a/Data/MySQL/testsuite/src/MySQLTest.cpp +++ b/Data/MySQL/testsuite/src/MySQLTest.cpp @@ -727,6 +727,15 @@ void MySQLTest::testTupleWithNullable() } +void MySQLTest::testSessionPoolAndUnicode() +{ + if (!_pSession) fail ("Test not available."); + + recreateStringsTable(); + _pExecutor->sessionPoolAndUnicode(_dbConnString); +} + + void MySQLTest::dropTable(const std::string& tableName) { try { *_pSession << format("DROP TABLE IF EXISTS %s", tableName), now; } @@ -993,6 +1002,6 @@ CppUnit::Test* MySQLTest::suite() CppUnit_addTest(pSuite, MySQLTest, testSessionTransaction); CppUnit_addTest(pSuite, MySQLTest, testTransaction); CppUnit_addTest(pSuite, MySQLTest, testReconnect); - + CppUnit_addTest(pSuite, MySQLTest, testSessionPoolAndUnicode); return pSuite; } diff --git a/Data/MySQL/testsuite/src/MySQLTest.h b/Data/MySQL/testsuite/src/MySQLTest.h index 9a2568b3d..5a1780b0c 100644 --- a/Data/MySQL/testsuite/src/MySQLTest.h +++ b/Data/MySQL/testsuite/src/MySQLTest.h @@ -107,6 +107,7 @@ public: void testTransaction(); void testReconnect(); + void testSessionPoolAndUnicode(); void setUp(); void tearDown(); diff --git a/Data/MySQL/testsuite/src/SQLExecutor.cpp b/Data/MySQL/testsuite/src/SQLExecutor.cpp index 10594be45..3803223af 100644 --- a/Data/MySQL/testsuite/src/SQLExecutor.cpp +++ b/Data/MySQL/testsuite/src/SQLExecutor.cpp @@ -21,6 +21,7 @@ #include "Poco/Data/Time.h" #include "Poco/Data/StatementImpl.h" #include "Poco/Data/RecordSet.h" +#include "Poco/Data/SessionPool.h" #include "Poco/Data/Transaction.h" #include "Poco/Data/MySQL/Connector.h" #include "Poco/Data/MySQL/MySQLException.h" @@ -1372,7 +1373,7 @@ void SQLExecutor::timestamp() std::string firstName("Simpson"); std::string address("Springfield"); DateTime birthday(1980, 4, 1, 5, 45, 12, 354, 879); - + int count = 0; try { *_pSession << "INSERT INTO Person VALUES (?,?,?,?)", use(lastName), use(firstName), use(address), use(birthday), now; } catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } @@ -1381,14 +1382,14 @@ void SQLExecutor::timestamp() catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } assertTrue (count == 1); - + DateTime bd; assertTrue (bd != birthday); try { *_pSession << "SELECT Birthday FROM Person", into(bd), now; } catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } assertTrue (bd == birthday); - + std::cout << std::endl << RecordSet(*_pSession, "SELECT * FROM Person"); } @@ -2066,3 +2067,31 @@ void SQLExecutor::reconnect() assertTrue (count == age); assertTrue (_pSession->isConnected()); } + + +void SQLExecutor::sessionPoolAndUnicode(const std::string& connString) +{ + std::string funct = "unicode()"; + std::string text = "ěšÄřžťÄůň"; + std::string text2; + + // Test uses session from SessionPool instead of _pSession to prove session + // obtained and returned into pool is valid. + + // Min/Max 1 session - ensures that when get() is called, same session should be returned + Poco::SharedPtr sp = new Poco::Data::SessionPool(MySQL::Connector::KEY, connString, 1, 1); + + { + Poco::Data::Session session = sp->get(); + try { session << "INSERT INTO Strings VALUES (?)", use(text), now; } + catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } + catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } + } // parentheses to ensure session is returned into pool + + Poco::Data::Session session2 = sp->get(); + try { session2 << "SELECT str FROM Strings", into(text2), now; } + catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } + catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } + + assertTrue (text == text2); +} diff --git a/Data/MySQL/testsuite/src/SQLExecutor.h b/Data/MySQL/testsuite/src/SQLExecutor.h index ba300212e..511baee47 100644 --- a/Data/MySQL/testsuite/src/SQLExecutor.h +++ b/Data/MySQL/testsuite/src/SQLExecutor.h @@ -88,7 +88,7 @@ public: void longText(); #ifdef POCO_MYSQL_JSON void json(); -#endif +#endif void unsignedInts(); void floats(); void doubles(); @@ -103,6 +103,7 @@ public: void transaction(const std::string& connect); void reconnect(); + void sessionPoolAndUnicode(const std::string& connString); private: void setTransactionIsolation(Poco::Data::Session& session, Poco::UInt32 ti); diff --git a/Data/PostgreSQL/Makefile b/Data/PostgreSQL/Makefile index 2f9f8bd9d..6cd726679 100644 --- a/Data/PostgreSQL/Makefile +++ b/Data/PostgreSQL/Makefile @@ -12,10 +12,13 @@ objects = Extractor BinaryExtractor Binder SessionImpl Connector \ PostgreSQLStatementImpl PostgreSQLException \ SessionHandle StatementExecutor PostgreSQLTypes Utility + +target_includes = $(POCO_BASE)/Data/testsuite/include ifndef POCO_DATA_NO_SQL_PARSER - target_includes = $(POCO_BASE)/Data/src + target_includes += $(POCO_BASE)/Data/src endif + target = PocoDataPostgreSQL target_version = $(LIBVERSION) target_libs = PocoData PocoFoundation diff --git a/Data/PostgreSQL/include/Poco/Data/PostgreSQL/SessionHandle.h b/Data/PostgreSQL/include/Poco/Data/PostgreSQL/SessionHandle.h index 2feee7776..42fd670c6 100644 --- a/Data/PostgreSQL/include/Poco/Data/PostgreSQL/SessionHandle.h +++ b/Data/PostgreSQL/include/Poco/Data/PostgreSQL/SessionHandle.h @@ -118,7 +118,7 @@ public: bool isAutoCommit() const; /// is the connection in auto commit mode? - void setAutoCommit(bool aShouldAutoCommit = true); + void autoCommit(bool val); /// is the connection in auto commit mode? bool isAsynchronousCommit() const; @@ -193,7 +193,6 @@ private: PGconn* _pConnection; std::string _connectionString; bool _inTransaction; - bool _isAutoCommit; bool _isAsynchronousCommit; Poco::UInt32 _tranactionIsolationLevel; std::vector _preparedStatementsToBeDeallocated; @@ -306,12 +305,6 @@ inline bool SessionHandle::isTransaction() const } -inline bool SessionHandle::isAutoCommit() const -{ - return _isAutoCommit; -} - - inline bool SessionHandle::isAsynchronousCommit() const { return _isAsynchronousCommit; diff --git a/Data/PostgreSQL/include/Poco/Data/PostgreSQL/SessionImpl.h b/Data/PostgreSQL/include/Poco/Data/PostgreSQL/SessionImpl.h index ea68342db..87cfd1965 100644 --- a/Data/PostgreSQL/include/Poco/Data/PostgreSQL/SessionImpl.h +++ b/Data/PostgreSQL/include/Poco/Data/PostgreSQL/SessionImpl.h @@ -99,7 +99,7 @@ public: /// Returns true iff the transaction isolation level corresponds /// to the supplied bitmask. - void setAutoCommit(const std::string&, bool aValue); + void autoCommit(const std::string&, bool aValue); /// Sets autocommit property for the session. bool isAutoCommit(const std::string& aName = std::string()) const; diff --git a/Data/PostgreSQL/src/SessionHandle.cpp b/Data/PostgreSQL/src/SessionHandle.cpp index 270566f4c..f8d215a8a 100644 --- a/Data/PostgreSQL/src/SessionHandle.cpp +++ b/Data/PostgreSQL/src/SessionHandle.cpp @@ -36,7 +36,6 @@ const std::string SessionHandle::POSTGRESQL_SERIALIZABLE = "SERIALIZABLE"; SessionHandle::SessionHandle(): _pConnection(0), _inTransaction(false), - _isAutoCommit(true), _isAsynchronousCommit(false), _tranactionIsolationLevel(Session::TRANSACTION_READ_COMMITTED) { @@ -157,7 +156,6 @@ void SessionHandle::disconnect() _connectionString = std::string(); _inTransaction= false; - _isAutoCommit = true; _isAsynchronousCommit = false; _tranactionIsolationLevel = Session::TRANSACTION_READ_COMMITTED; } @@ -280,21 +278,13 @@ void SessionHandle::rollback() } -void SessionHandle::setAutoCommit(bool aShouldAutoCommit) +void SessionHandle::autoCommit(bool val) { // There is no PostgreSQL API call to switch autocommit (unchained) mode off. - if (aShouldAutoCommit == _isAutoCommit) + if (isTransaction()) { - return; + throw Poco::InvalidAccessException(); } - - if (aShouldAutoCommit) - { - if (isTransaction()) - commit(); // end any in process transaction - } - - _isAutoCommit = aShouldAutoCommit; } diff --git a/Data/PostgreSQL/src/SessionImpl.cpp b/Data/PostgreSQL/src/SessionImpl.cpp index 778616acc..56a22bf9d 100644 --- a/Data/PostgreSQL/src/SessionImpl.cpp +++ b/Data/PostgreSQL/src/SessionImpl.cpp @@ -60,6 +60,7 @@ SessionImpl::SessionImpl(const std::string& aConnectionString, std::size_t aLogi Poco::Data::AbstractSessionImpl(aConnectionString, aLoginTimeout), _connectorName("postgresql") { + setFeature("sqlParse", false); // the parse currently cannot handle the PostgreSQL placeholders $1, $2, etc. setProperty("handle", static_cast(&_sessionHandle)); setConnectionTimeout(CONNECTION_TIMEOUT_DEFAULT); open(); @@ -134,7 +135,7 @@ void SessionImpl::open(const std::string& aConnectionString) _sessionHandle.connect(createConnectionStringFromOptionsMap(optionsMap)); addFeature("autoCommit", - &SessionImpl::setAutoCommit, + &SessionImpl::autoCommit, &SessionImpl::isAutoCommit); addFeature("asynchronousCommit", @@ -206,15 +207,18 @@ void SessionImpl::rollback() } -void SessionImpl::setAutoCommit(const std::string&, bool aValue) +void SessionImpl::autoCommit(const std::string& s, bool val) { - _sessionHandle.setAutoCommit(aValue); + if (val != getAutoCommit(s)) { + _sessionHandle.autoCommit(val); + AbstractSessionImpl::setAutoCommit(s, val); + } } -bool SessionImpl::isAutoCommit(const std::string&) const +bool SessionImpl::isAutoCommit(const std::string& s) const { - return _sessionHandle.isAutoCommit(); + return AbstractSessionImpl::getAutoCommit(s); } diff --git a/Data/PostgreSQL/testsuite/Makefile b/Data/PostgreSQL/testsuite/Makefile index ebb9696e8..5b3754f86 100644 --- a/Data/PostgreSQL/testsuite/Makefile +++ b/Data/PostgreSQL/testsuite/Makefile @@ -14,11 +14,12 @@ SYSLIBS += -lpq -lz -lpthread -ldl objects = PostgreSQLTestSuite Driver PostgreSQLTest SQLExecutor ifndef POCO_DATA_NO_SQL_PARSER - target_includes = $(POCO_BASE)/Data/src + target_includes += $(POCO_BASE)/Data/src endif target = testrunner target_version = 1 -target_libs = PocoDataPostgreSQL PocoData PocoFoundation CppUnit +target_libs = PocoDataPostgreSQL PocoDataTest PocoData PocoFoundation CppUnit +target_includes += $(POCO_BASE)/Data/testsuite/DataTest/include include $(POCO_BASE)/build/rules/exec diff --git a/Data/PostgreSQL/testsuite/src/PostgreSQLTest.cpp b/Data/PostgreSQL/testsuite/src/PostgreSQLTest.cpp index 5ad2a649d..057384f71 100644 --- a/Data/PostgreSQL/testsuite/src/PostgreSQLTest.cpp +++ b/Data/PostgreSQL/testsuite/src/PostgreSQLTest.cpp @@ -774,6 +774,15 @@ void PostgreSQLTest::testSessionTransaction() } +void PostgreSQLTest::testSessionTransactionNoAutoCommit() +{ + if (!_pSession) fail ("Test not available."); + + recreatePersonTable(); + _pExecutor->sessionTransactionNoAutoCommit(_dbConnString); +} + + void PostgreSQLTest::testTransaction() { if (!_pSession) fail ("Test not available."); @@ -1328,6 +1337,7 @@ CppUnit::Test* PostgreSQLTest::suite() CppUnit_addTest(pSuite, PostgreSQLTest, testBinaryBLOBStmt); CppUnit_addTest(pSuite, PostgreSQLTest, testSessionTransaction); + CppUnit_addTest(pSuite, PostgreSQLTest, testSessionTransactionNoAutoCommit); CppUnit_addTest(pSuite, PostgreSQLTest, testTransaction); CppUnit_addTest(pSuite, PostgreSQLTest, testReconnect); diff --git a/Data/PostgreSQL/testsuite/src/PostgreSQLTest.h b/Data/PostgreSQL/testsuite/src/PostgreSQLTest.h index 86abfba14..be0551404 100644 --- a/Data/PostgreSQL/testsuite/src/PostgreSQLTest.h +++ b/Data/PostgreSQL/testsuite/src/PostgreSQLTest.h @@ -110,8 +110,8 @@ public: void testBinaryCLOBStmt(); void testSessionTransaction(); + void testSessionTransactionNoAutoCommit(); void testTransaction(); - void testReconnect(); void testSqlState(); diff --git a/Data/PostgreSQL/testsuite/src/SQLExecutor.cpp b/Data/PostgreSQL/testsuite/src/SQLExecutor.cpp index 12457d918..2698f3d24 100644 --- a/Data/PostgreSQL/testsuite/src/SQLExecutor.cpp +++ b/Data/PostgreSQL/testsuite/src/SQLExecutor.cpp @@ -141,7 +141,8 @@ private: SQLExecutor::SQLExecutor(const std::string& name, Poco::Data::Session* pSession): CppUnit::TestCase(name), - _pSession(pSession) + _pSession(pSession), + _dataExecutor("Poco::Data SQL Executor", pSession, nullptr, true) { } @@ -460,209 +461,43 @@ void SQLExecutor::barebonePostgreSQLTest(std::string host, std::string user, std void SQLExecutor::simpleAccess() { - std::string funct = "simpleAccess()"; - std::string lastName = "lastName"; - std::string firstName("firstName"); - std::string address("Address"); - int age = 133132; - int count = 0; - std::string result; - - count = 0; - try - { - Statement stmt(*_pSession); - stmt << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(lastName), use(firstName), use(address), use(age);//, now; - stmt.execute(); - } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - assertTrue (count == 1); - - try { *_pSession << "SELECT LastName FROM Person", into(result), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (lastName == result); - - try { *_pSession << "SELECT Age FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == age); + _dataExecutor.simpleAccess(); } void SQLExecutor::complexType() { - std::string funct = "complexType()"; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(p1), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(p2), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 2); - - Person c1; - Person c2; - try { *_pSession << "SELECT * FROM Person WHERE LastName = 'LN1'", into(c1), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (c1 == p1); + _dataExecutor.complexType(); } void SQLExecutor::simpleAccessVector() { - std::string funct = "simpleAccessVector()"; - std::vector lastNames; - std::vector firstNames; - std::vector addresses; - std::vector ages; - std::string tableName("Person"); - lastNames.push_back("LN1"); - lastNames.push_back("LN2"); - firstNames.push_back("FN1"); - firstNames.push_back("FN2"); - addresses.push_back("ADDR1"); - addresses.push_back("ADDR2"); - ages.push_back(1); - ages.push_back(2); - int count = 0; - std::string result; - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 2); - - std::vector lastNamesR; - std::vector firstNamesR; - std::vector addressesR; - std::vector agesR; - try { *_pSession << "SELECT * FROM Person", into(lastNamesR), into(firstNamesR), into(addressesR), into(agesR), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (ages == agesR); - assertTrue (lastNames == lastNamesR); - assertTrue (firstNames == firstNamesR); - assertTrue (addresses == addressesR); + _dataExecutor.simpleAccessVector(); } void SQLExecutor::complexTypeVector() { - std::string funct = "complexTypeVector()"; - std::vector people; - people.push_back(Person("LN1", "FN1", "ADDR1", 1)); - people.push_back(Person("LN2", "FN2", "ADDR2", 2)); - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 2); - - std::vector result; - try { *_pSession << "SELECT * FROM Person", into(result), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (result == people); + _dataExecutor.complexTypeVector(); } void SQLExecutor::insertVector() { - std::string funct = "insertVector()"; - std::vector str; - str.push_back("s1"); - str.push_back("s2"); - str.push_back("s3"); - str.push_back("s3"); - int count = 100; - - { - Statement stmt((*_pSession << "INSERT INTO Strings VALUES ($1)", use(str))); - try { *_pSession << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 0); - - try { stmt.execute(); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - try { *_pSession << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 4); - } - count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 4); + _dataExecutor.insertVector(); } void SQLExecutor::insertEmptyVector() { - std::string funct = "insertEmptyVector()"; - std::vector str; - - try - { - *_pSession << "INSERT INTO Strings VALUES ($1)", use(str), now; - fail("empty collections should not work"); - } - catch (Poco::Exception&) - { - } + _dataExecutor.insertEmptyVector(); } void SQLExecutor::insertSingleBulk() { - std::string funct = "insertSingleBulk()"; - int x = 0; - Statement stmt((*_pSession << "INSERT INTO Strings VALUES ($1)", use(x))); - - for (x = 0; x < 100; ++x) - { - std::size_t i = stmt.execute(); - assertTrue (i == 1); - } - - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 100); - - try { *_pSession << "SELECT SUM(str) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == ((0+99)*100/2)); + _dataExecutor.insertSingleBulk(); } @@ -691,176 +526,50 @@ void SQLExecutor::unsignedInts() void SQLExecutor::floats() { - std::string funct = "floats()"; - float data = 1.5f; - float ret = 0.0f; - - try { *_pSession << "INSERT INTO Strings VALUES ($1)", use(data), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 1); - - try { *_pSession << "SELECT str FROM Strings", into(ret), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (ret == data); + _dataExecutor.floats(); } void SQLExecutor::uuids() { - std::string funct = "uuids()"; - Poco::UUID data("264a1c6f-7af5-43a5-a593-377aff3d2d7d"); - Poco::UUID ret; - - try { *_pSession << "INSERT INTO Strings VALUES ($1)", use(data), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 1); - - try { *_pSession << "SELECT str FROM Strings", into(ret), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (ret == data); + _dataExecutor.uuids(); } void SQLExecutor::doubles() { - std::string funct = "floats()"; - double data = 1.5; - double ret = 0.0; - - try { *_pSession << "INSERT INTO Strings VALUES ($1)", use(data), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 1); - - try { *_pSession << "SELECT str FROM Strings", into(ret), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (ret == data); + _dataExecutor.doubles(); } void SQLExecutor::insertSingleBulkVec() { - std::string funct = "insertSingleBulkVec()"; - std::vector data; - - for (int x = 0; x < 100; ++x) - data.push_back(x); - - Statement stmt((*_pSession << "INSERT INTO Strings VALUES ($1)", use(data))); - stmt.execute(); - - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - assertTrue (count == 100); - try { *_pSession << "SELECT SUM(str) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == ((0+99)*100/2)); + _dataExecutor.insertSingleBulkVec(); } void SQLExecutor::limits() { - std::string funct = "limit()"; - std::vector data; - for (int x = 0; x < 100; ++x) - { - data.push_back(x); - } - - try { *_pSession << "INSERT INTO Strings VALUES ($1)", use(data), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - std::vector retData; - try { *_pSession << "SELECT * FROM Strings", into(retData), limit(50), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (retData.size() == 50); - for (int x = 0; x < 50; ++x) - { - assertTrue (data[x] == retData[x]); - } + _dataExecutor.limits(); } void SQLExecutor::limitZero() { - std::string funct = "limitZero()"; - std::vector data; - for (int x = 0; x < 100; ++x) - { - data.push_back(x); - } - - try { *_pSession << "INSERT INTO Strings VALUES ($1)", use(data), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - std::vector retData; - try { *_pSession << "SELECT * FROM Strings", into(retData), limit(0), now; }// stupid test, but at least we shouldn't crash - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (retData.size() == 0); + _dataExecutor.limitZero(); } void SQLExecutor::limitOnce() { - std::string funct = "limitOnce()"; - std::vector data; - for (int x = 0; x < 101; ++x) - { - data.push_back(x); - } - - try { *_pSession << "INSERT INTO Strings VALUES ($1)", use(data), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - std::vector retData; - Statement stmt = (*_pSession << "SELECT * FROM Strings", into(retData), limit(50), now); - assertTrue (!stmt.done()); - assertTrue (retData.size() == 50); - stmt.execute(); - assertTrue (!stmt.done()); - assertTrue (retData.size() == 100); - stmt.execute(); - assertTrue (stmt.done()); - assertTrue (retData.size() == 101); - - for (int x = 0; x < 101; ++x) - { - assertTrue (data[x] == retData[x]); - } + _dataExecutor.limitOnce(); } void SQLExecutor::limitPrepare() { + // fails: _dataExecutor.limitPrepare(); + // failed assert: "100 == stmt.execute()" std::string funct = "limitPrepare()"; std::vector data; for (int x = 0; x < 100; ++x) @@ -895,583 +604,137 @@ void SQLExecutor::limitPrepare() { assertTrue (data[x%100] == retData[x]); } + } void SQLExecutor::prepare() { - std::string funct = "prepare()"; - std::vector data; - for (int x = 0; x < 100; x += 2) - { - data.push_back(x); - } - - { - Statement stmt((*_pSession << "INSERT INTO Strings VALUES ($1)", use(data))); - } - // stmt should not have been executed when destroyed - int count = 100; - try { *_pSession << "SELECT COUNT(*) FROM Strings", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 0); + _dataExecutor.prepare(); } void SQLExecutor::setSimple() { - std::string funct = "setSimple()"; - std::set lastNames; - std::set firstNames; - std::set addresses; - std::set ages; - std::string tableName("Person"); - lastNames.insert("LN1"); - lastNames.insert("LN2"); - firstNames.insert("FN1"); - firstNames.insert("FN2"); - addresses.insert("ADDR1"); - addresses.insert("ADDR2"); - ages.insert(1); - ages.insert(2); - int count = 0; - std::string result; - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 2); - - std::set lastNamesR; - std::set firstNamesR; - std::set addressesR; - std::set agesR; - try { *_pSession << "SELECT * FROM Person", into(lastNamesR), into(firstNamesR), into(addressesR), into(agesR), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (ages == agesR); - assertTrue (lastNames == lastNamesR); - assertTrue (firstNames == firstNamesR); - assertTrue (addresses == addressesR); + _dataExecutor.setSimple(); } void SQLExecutor::setComplex() { - std::string funct = "setComplex()"; - std::set people; - people.insert(Person("LN1", "FN1", "ADDR1", 1)); - people.insert(Person("LN2", "FN2", "ADDR2", 2)); - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 2); - - std::set result; - try { *_pSession << "SELECT * FROM Person", into(result), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (result == people); + _dataExecutor.setComplex(); } void SQLExecutor::setComplexUnique() { - std::string funct = "setComplexUnique()"; - std::vector people; - Person p1("LN1", "FN1", "ADDR1", 1); - people.push_back(p1); - people.push_back(p1); - people.push_back(p1); - people.push_back(p1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.push_back(p2); - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 5); - - std::set result; - try { *_pSession << "SELECT * FROM Person", into(result), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (result.size() == 2); - assertTrue (*result.begin() == p1); - assertTrue (*++result.begin() == p2); + _dataExecutor.setComplexUnique(); } + void SQLExecutor::multiSetSimple() { - std::string funct = "multiSetSimple()"; - std::multiset lastNames; - std::multiset firstNames; - std::multiset addresses; - std::multiset ages; - std::string tableName("Person"); - lastNames.insert("LN1"); - lastNames.insert("LN2"); - firstNames.insert("FN1"); - firstNames.insert("FN2"); - addresses.insert("ADDR1"); - addresses.insert("ADDR2"); - ages.insert(1); - ages.insert(2); - int count = 0; - std::string result; - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 2); - - std::multiset lastNamesR; - std::multiset firstNamesR; - std::multiset addressesR; - std::multiset agesR; - try { *_pSession << "SELECT * FROM Person", into(lastNamesR), into(firstNamesR), into(addressesR), into(agesR), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (ages.size() == agesR.size()); - assertTrue (lastNames.size() == lastNamesR.size()); - assertTrue (firstNames.size() == firstNamesR.size()); - assertTrue (addresses.size() == addressesR.size()); + _dataExecutor.multiSetSimple(); } void SQLExecutor::multiSetComplex() { - std::string funct = "multiSetComplex()"; - std::multiset people; - Person p1("LN1", "FN1", "ADDR1", 1); - people.insert(p1); - people.insert(p1); - people.insert(p1); - people.insert(p1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(p2); - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 5); - - std::multiset result; - try { *_pSession << "SELECT * FROM Person", into(result), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (result.size() == people.size()); + _dataExecutor.multiSetComplex(); } void SQLExecutor::mapComplex() { - std::string funct = "mapComplex()"; - std::map people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN2", p2)); - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 2); - - std::map result; - try { *_pSession << "SELECT * FROM Person", into(result), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (result == people); + _dataExecutor.mapComplex(); } void SQLExecutor::mapComplexUnique() { - std::string funct = "mapComplexUnique()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN2", p2)); - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 5); - - std::map result; - try { *_pSession << "SELECT * FROM Person", into(result), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (result.size() == 2); + _dataExecutor.mapComplexUnique(); } void SQLExecutor::multiMapComplex() { - std::string funct = "multiMapComplex()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN2", p2)); - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 5); - - std::multimap result; - try { *_pSession << "SELECT * FROM Person", into(result), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (result.size() == people.size()); + _dataExecutor.multiMapComplex(); } void SQLExecutor::selectIntoSingle() { - std::string funct = "selectIntoSingle()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p2)); - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 2); - Person result; - try { *_pSession << "SELECT * FROM Person", into(result), limit(1), now; }// will return 1 object into one single result - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (result == p1); + _dataExecutor.selectIntoSingle(); } void SQLExecutor::selectIntoSingleStep() { - std::string funct = "selectIntoSingleStep()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p2)); - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 2); - Person result; - Statement stmt = (*_pSession << "SELECT * FROM Person", into(result), limit(1)); - stmt.execute(); - assertTrue (result == p1); - assertTrue (!stmt.done()); - stmt.execute(); - assertTrue (result == p2); - assertTrue (stmt.done()); + _dataExecutor.selectIntoSingleStep(); } void SQLExecutor::selectIntoSingleFail() { - std::string funct = "selectIntoSingleFail()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p2)); - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), limit(2, true), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 2); - Person result; - try - { - *_pSession << "SELECT * FROM Person", into(result), limit(1, true), now; // will fail now - fail("hardLimit is set: must fail"); - } - catch(Poco::Data::LimitException&) - { - } + _dataExecutor.selectIntoSingleFail(); } void SQLExecutor::lowerLimitOk() { - std::string funct = "lowerLimitOk()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p2)); - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 2); - Person result; - try - { - *_pSession << "SELECT * FROM Person", into(result), lowerLimit(2), now; // will return 2 objects into one single result but only room for one! - fail("Not enough space for results"); - } - catch(Poco::Exception&) - { - } + _dataExecutor.lowerLimitOk(); } void SQLExecutor::singleSelect() { - std::string funct = "singleSelect()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p2)); - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 2); - Person result; - Statement stmt = (*_pSession << "SELECT * FROM Person", into(result), limit(1)); - stmt.execute(); - assertTrue (result == p1); - assertTrue (!stmt.done()); - stmt.execute(); - assertTrue (result == p2); - assertTrue (stmt.done()); + _dataExecutor.singleSelect(); } void SQLExecutor::lowerLimitFail() { - std::string funct = "lowerLimitFail()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p2)); - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 2); - Person result; - try - { - *_pSession << "SELECT * FROM Person", into(result), lowerLimit(3), now; // will fail - fail("should fail. not enough data"); - } - catch(Poco::Exception&) - { - } + _dataExecutor.lowerLimitFail(); } void SQLExecutor::combinedLimits() { - std::string funct = "combinedLimits()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p2)); - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 2); - std::vector result; - try { *_pSession << "SELECT * FROM Person", into(result), lowerLimit(2), upperLimit(2), now; }// will return 2 objects - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (result.size() == 2); - assertTrue (result[0] == p1); - assertTrue (result[1] == p2); + _dataExecutor.combinedLimits(); } void SQLExecutor::ranges() { - std::string funct = "range()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p2)); - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 2); - std::vector result; - try { *_pSession << "SELECT * FROM Person", into(result), range(2, 2), now; }// will return 2 objects - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (result.size() == 2); - assertTrue (result[0] == p1); - assertTrue (result[1] == p2); + _dataExecutor.ranges(); } void SQLExecutor::combinedIllegalLimits() { - std::string funct = "combinedIllegalLimits()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p2)); - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 2); - Person result; - try - { - *_pSession << "SELECT * FROM Person", into(result), lowerLimit(3), upperLimit(2), now; - fail("lower > upper is not allowed"); - } - catch(LimitException&) - { - } + _dataExecutor.combinedIllegalLimits(); } void SQLExecutor::illegalRange() { - std::string funct = "illegalRange()"; - std::multimap people; - Person p1("LN1", "FN1", "ADDR1", 1); - Person p2("LN2", "FN2", "ADDR2", 2); - people.insert(std::make_pair("LN1", p1)); - people.insert(std::make_pair("LN1", p2)); - - try { *_pSession << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(people), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 2); - Person result; - try - { - *_pSession << "SELECT * FROM Person", into(result), range(3, 2), now; - fail("lower > upper is not allowed"); - } - catch(LimitException&) - { - } + _dataExecutor.illegalRange(); } void SQLExecutor::emptyDB() { - std::string funct = "emptyDB()"; - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 0); - - Person result; - Statement stmt = (*_pSession << "SELECT * FROM Person", into(result), limit(1)); - stmt.execute(); - assertTrue (result.firstName.empty()); - assertTrue (stmt.done()); + _dataExecutor.emptyDB(); } void SQLExecutor::dateTime() { + // fails because Person as defined here has a birthday but not a born column + //_dataExecutor.dateTime(); + std::string funct = "dateTime()"; std::string lastName("Bart"); std::string firstName("Simpson"); @@ -1495,11 +758,15 @@ void SQLExecutor::dateTime() assertTrue (bd == birthday); std::cout << std::endl << RecordSet(*_pSession, "SELECT * FROM Person"); + } void SQLExecutor::date() { + // fails because Person as defined here has a birthday but not a bornDate column + //_dataExecutor.date(); + std::string funct = "date()"; std::string lastName("Bart"); std::string firstName("Simpson"); @@ -1528,7 +795,9 @@ void SQLExecutor::date() void SQLExecutor::time() { - std::string funct = "date()"; + // fails because Person as defined here has a birthday but not a bornTime column + //_dataExecutor.time(); + std::string funct = "time()"; std::string lastName("Bart"); std::string firstName("Simpson"); std::string address("Springfield"); @@ -1657,51 +926,13 @@ void SQLExecutor::blobStmt() void SQLExecutor::tuples() { - typedef Tuple TupleType; - std::string funct = "tuples()"; - TupleType t(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19); - - try { *_pSession << "INSERT INTO Tuples VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20)", use(t), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - TupleType ret(-10,-11,-12,-13,-14,-15,-16,-17,-18,-19); - assertTrue (ret != t); - try { *_pSession << "SELECT * FROM Tuples", into(ret), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (ret == t); + _dataExecutor.tuples(); } void SQLExecutor::tupleVector() { - typedef Tuple TupleType; - std::string funct = "tupleVector()"; - TupleType t(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19); - Tuple - t10(10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29); - TupleType t100(100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119); - std::vector v; - v.push_back(t); - v.push_back(t10); - v.push_back(t100); - - try { *_pSession << "INSERT INTO Tuples VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20)", use(v), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - int count = 0; - try { *_pSession << "SELECT COUNT(*) FROM Tuples", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (v.size() == (std::size_t) count); - - std::vector > ret; - try { *_pSession << "SELECT * FROM Tuples", into(ret), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (ret == v); + _dataExecutor.tupleVector(); } @@ -1829,323 +1060,30 @@ void SQLExecutor::doNull() void SQLExecutor::setTransactionIsolation(Session& session, Poco::UInt32 ti) { - if (session.hasTransactionIsolation(ti)) - { - std::string funct = "setTransactionIsolation()"; - - try - { - Transaction t(session, false); - t.setIsolation(ti); - - assertTrue (ti == t.getIsolation()); - assertTrue (t.isIsolation(ti)); - - assertTrue (ti == session.getTransactionIsolation()); - assertTrue (session.isTransactionIsolation(ti)); - } - catch(Poco::Exception& e){ std::cout << funct << ':' << e.displayText() << std::endl;} - } - else - { - std::cout << "Transaction isolation not supported: "; - switch (ti) - { - case Session::TRANSACTION_READ_COMMITTED: - std::cout << "READ COMMITTED"; break; - case Session::TRANSACTION_READ_UNCOMMITTED: - std::cout << "READ UNCOMMITTED"; break; - case Session::TRANSACTION_REPEATABLE_READ: - std::cout << "REPEATABLE READ"; break; - case Session::TRANSACTION_SERIALIZABLE: - std::cout << "SERIALIZABLE"; break; - default: - std::cout << "UNKNOWN"; break; - } - std::cout << std::endl; - } + _dataExecutor.setTransactionIsolation(session, ti); } void SQLExecutor::sessionTransaction(const std::string& connect) { - if (!_pSession->canTransact()) - { - std::cout << "Session not capable of transactions." << std::endl; - return; - } + _dataExecutor.sessionTransaction("postgresql", connect); +} - Session local("postgresql", connect); - local.setFeature("autoCommit", true); - std::string funct = "transaction()"; - std::vector lastNames; - std::vector firstNames; - std::vector addresses; - std::vector ages; - std::string tableName("Person"); - lastNames.push_back("LN1"); - lastNames.push_back("LN2"); - firstNames.push_back("FN1"); - firstNames.push_back("FN2"); - addresses.push_back("ADDR1"); - addresses.push_back("ADDR2"); - ages.push_back(1); - ages.push_back(2); - int count = 0, locCount = 0; - std::string result; - bool autoCommit = _pSession->getFeature("autoCommit"); - - // autoCommit set to true is the normal mode - _pSession->setFeature("autoCommit", true); - assertTrue (!_pSession->isTransaction()); - - setTransactionIsolation((*_pSession), Session::TRANSACTION_READ_UNCOMMITTED); - setTransactionIsolation((*_pSession), Session::TRANSACTION_REPEATABLE_READ); - setTransactionIsolation((*_pSession), Session::TRANSACTION_SERIALIZABLE); - - setTransactionIsolation((*_pSession), Session::TRANSACTION_READ_COMMITTED); - - _pSession->begin(); - assertTrue (_pSession->isTransaction()); - try { (*_pSession) << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (_pSession->isTransaction()); - - local << "SELECT COUNT(*) FROM Person", into(locCount), now; - assertTrue (0 == locCount); - - try { (*_pSession) << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (2 == count); - assertTrue (_pSession->isTransaction()); - _pSession->rollback(); - assertTrue (!_pSession->isTransaction()); - - local << "SELECT COUNT(*) FROM Person", into(locCount), now; - assertTrue (0 == locCount); - - try { (*_pSession) << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (0 == count); - assertTrue (!_pSession->isTransaction()); - - _pSession->begin(); - try { (*_pSession) << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (_pSession->isTransaction()); - - local << "SELECT COUNT(*) FROM Person", into(locCount), now; - assertTrue (0 == locCount); - - _pSession->commit(); - assertTrue (!_pSession->isTransaction()); - - local << "SELECT COUNT(*) FROM Person", into(locCount), now; - assertTrue (2 == locCount); - - try { (*_pSession) << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (2 == count); - - _pSession->setFeature("autoCommit", autoCommit); // redundant but ok +void SQLExecutor::sessionTransactionNoAutoCommit(const std::string& connect) +{ + _dataExecutor.sessionTransactionNoAutoCommit("postgresql", connect); } void SQLExecutor::transaction(const std::string& connect) { - if (!_pSession->canTransact()) - { - std::cout << "Session not transaction-capable." << std::endl; - return; - } - - Session local("postgresql", connect); - local.setFeature("autoCommit", true); - - setTransactionIsolation((*_pSession), Session::TRANSACTION_READ_COMMITTED); - setTransactionIsolation(local, Session::TRANSACTION_READ_COMMITTED); - - std::string funct = "transaction()"; - std::vector lastNames; - std::vector firstNames; - std::vector addresses; - std::vector ages; - std::string tableName("Person"); - lastNames.push_back("LN1"); - lastNames.push_back("LN2"); - firstNames.push_back("FN1"); - firstNames.push_back("FN2"); - addresses.push_back("ADDR1"); - addresses.push_back("ADDR2"); - ages.push_back(1); - ages.push_back(2); - int count = 0, locCount = 0; - std::string result; - - bool autoCommit = _pSession->getFeature("autoCommit"); - - _pSession->setFeature("autoCommit", false); - _pSession->setFeature("autoCommit", true); - assertTrue (!_pSession->isTransaction()); - - _pSession->setTransactionIsolation(Session::TRANSACTION_READ_COMMITTED); - - { - Transaction trans((*_pSession)); - assertTrue (trans.isActive()); - assertTrue (_pSession->isTransaction()); - - try { (*_pSession) << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - assertTrue (_pSession->isTransaction()); - assertTrue (trans.isActive()); - - try { (*_pSession) << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (2 == count); - assertTrue (_pSession->isTransaction()); - assertTrue (trans.isActive()); - } - assertTrue (!_pSession->isTransaction()); - - try { (*_pSession) << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (0 == count); - assertTrue (!_pSession->isTransaction()); - - { - Transaction trans((*_pSession)); - try { (*_pSession) << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - local << "SELECT COUNT(*) FROM Person", into(locCount), now; - assertTrue (0 == locCount); - - assertTrue (_pSession->isTransaction()); - assertTrue (trans.isActive()); - trans.commit(); - assertTrue (!_pSession->isTransaction()); - assertTrue (!trans.isActive()); - local << "SELECT COUNT(*) FROM Person", into(locCount), now; - assertTrue (2 == locCount); - } - - try { (*_pSession) << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (2 == count); - - _pSession->begin(); - try { (*_pSession) << "DELETE FROM Person", now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - local << "SELECT COUNT(*) FROM Person", into(locCount), now; - assertTrue (2 == locCount); - - try { (*_pSession) << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (0 == count); - _pSession->commit(); - - local << "SELECT COUNT(*) FROM Person", into(locCount), now; - assertTrue (0 == locCount); - - std::string sql1 = format("INSERT INTO Person VALUES ('%s','%s','%s',%d)", lastNames[0], firstNames[0], addresses[0], ages[0]); - std::string sql2 = format("INSERT INTO Person VALUES ('%s','%s','%s',%d)", lastNames[1], firstNames[1], addresses[1], ages[1]); - std::vector sql; - sql.push_back(sql1); - sql.push_back(sql2); - - Transaction trans((*_pSession)); - - trans.execute(sql1, false); - try { (*_pSession) << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (1 == count); - trans.execute(sql2, false); - try { (*_pSession) << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (2 == count); - - local << "SELECT COUNT(*) FROM Person", into(locCount), now; - assertTrue (0 == locCount); - - trans.rollback(); - - local << "SELECT COUNT(*) FROM Person", into(locCount), now; - assertTrue (0 == locCount); - - try { (*_pSession) << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (0 == count); - - trans.execute(sql); - - local << "SELECT COUNT(*) FROM Person", into(locCount), now; - assertTrue (2 == locCount); - - try { (*_pSession) << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (2 == count); - - _pSession->setFeature("autoCommit", autoCommit); + _dataExecutor.transaction("postgresql", connect); } void SQLExecutor::reconnect() { - std::string funct = "reconnect()"; - std::string lastName = "lastName"; - std::string firstName("firstName"); - std::string address("Address"); - int age = 133132; - int count = 0; - std::string result; - - try { (*_pSession) << "INSERT INTO Person VALUES ($1,$2,$3,$4)", use(lastName), use(firstName), use(address), use(age), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - - count = 0; - try { (*_pSession) << "SELECT COUNT(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == 1); - - assertTrue (_pSession->isConnected()); - _pSession->close(); - assertTrue (!_pSession->isConnected()); - try - { - (*_pSession) << "SELECT LastName FROM Person", into(result), now; - fail ("must fail"); - } - catch(NotConnectedException&){ } - assertTrue (!_pSession->isConnected()); - - _pSession->open(); - assertTrue (_pSession->isConnected()); - try { (*_pSession) << "SELECT Age FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (count == age); - assertTrue (_pSession->isConnected()); + _dataExecutor.reconnect(); } diff --git a/Data/PostgreSQL/testsuite/src/SQLExecutor.h b/Data/PostgreSQL/testsuite/src/SQLExecutor.h index 7f6753f8e..a9be8a607 100644 --- a/Data/PostgreSQL/testsuite/src/SQLExecutor.h +++ b/Data/PostgreSQL/testsuite/src/SQLExecutor.h @@ -14,6 +14,7 @@ #include "Poco/Data/PostgreSQL/PostgreSQL.h" #include "Poco/Data/Session.h" +#include "Poco/Data/Test/SQLExecutor.h" #include @@ -97,14 +98,17 @@ public: void doNull(); void sessionTransaction(const std::string& connect); + void sessionTransactionNoAutoCommit(const std::string& connect); void transaction(const std::string& connect); + void reconnect(); private: void setTransactionIsolation(Poco::Data::Session& session, Poco::UInt32 ti); Poco::Data::Session* _pSession; + Poco::Data::Test::SQLExecutor _dataExecutor; }; diff --git a/Data/include/Poco/Data/AbstractSessionImpl.h b/Data/include/Poco/Data/AbstractSessionImpl.h index a96f64dd9..0fdfa9299 100644 --- a/Data/include/Poco/Data/AbstractSessionImpl.h +++ b/Data/include/Poco/Data/AbstractSessionImpl.h @@ -56,7 +56,8 @@ public: _bulk(false), _emptyStringIsNull(false), _forceEmptyString(false), - _sqlParse(true) + _sqlParse(true), + _autoCommit(true) /// Creates the AbstractSessionImpl. /// /// Adds "storage" property and sets the default internal storage container @@ -113,6 +114,10 @@ public: addFeature("sqlParse", &AbstractSessionImpl::setSQLParse, &AbstractSessionImpl::getSQLParse); + + addFeature("autoCommit", + &AbstractSessionImpl::setAutoCommit, + &AbstractSessionImpl::getAutoCommit); } ~AbstractSessionImpl() @@ -327,6 +332,32 @@ protected: _properties[name] = property; } + // most, if not all, back ends support the autocommit feature + // these handlers are added in this class by default, + // but an implementation can easily replace them by registering + // early its own handlers with: + // addFeature("autoCommit", setter, getter)"); + // + // these are here to be used by any back end DBMS client that + // does not provide its own autocommit get/set capabilities + + void setAutoCommit(const std::string&, bool autoCommit) + /// Enables automatic commit. When this feature is true, + /// every query is automatically commited. When false, + /// every query starts a transaction, except SELECT queries + /// (if properly detected by parser, see set/getSQLParse() and + /// Statement::checkBeginTransaction() documentation). + { + _autoCommit = autoCommit; + } + + bool getAutoCommit(const std::string& name = "") const + /// Returns the value of the automatic commit flag. + /// See setAutoCommit() documentation for more details. + { + return _autoCommit; + } + private: struct Feature { @@ -350,6 +381,7 @@ private: bool _emptyStringIsNull; bool _forceEmptyString; bool _sqlParse; + bool _autoCommit; Poco::Any _handle; }; diff --git a/Data/src/Statement.cpp b/Data/src/Statement.cpp index efb9b02cc..29c7e294d 100644 --- a/Data/src/Statement.cpp +++ b/Data/src/Statement.cpp @@ -235,11 +235,16 @@ void Statement::formatQuery() void Statement::checkBeginTransaction() { SessionImpl& session = _pImpl->session(); - if (!session.isAutocommit() && !session.isTransaction() && session.shouldParse()) - { - auto result = parse(); - if (result.isSpecified() && result.value() && !isSelect().value()) + if (!session.isTransaction() && !session.isAutocommit()) { + if (session.shouldParse()) + { + auto result = parse(); + if (result.isSpecified() && result.value() && !isSelect().value()) + session.begin(); + } else + { session.begin(); + } } } diff --git a/Data/testsuite/DataTest/include/Poco/Data/Test/SQLExecutor.h b/Data/testsuite/DataTest/include/Poco/Data/Test/SQLExecutor.h index 281dd51dc..9ef79e5e8 100644 --- a/Data/testsuite/DataTest/include/Poco/Data/Test/SQLExecutor.h +++ b/Data/testsuite/DataTest/include/Poco/Data/Test/SQLExecutor.h @@ -22,6 +22,7 @@ #include "Poco/String.h" #include "Poco/Exception.h" #include +#include namespace Poco { @@ -53,7 +54,7 @@ public: DE_BOUND }; - SQLExecutor(const std::string& name, Poco::Data::Session* pSession, Poco::Data::Session* pEncSession = 0); + SQLExecutor(const std::string& name, Poco::Data::Session* pSession, Poco::Data::Session* pEncSession = nullptr, bool numberedPlaceHolders = false); ~SQLExecutor(); template @@ -232,6 +233,9 @@ private: Poco::Data::Session* _pSession; Poco::Data::Session* _pEncSession; + bool _numberedPlaceHolders = false; + + std::string formatSQL(const std::string& s) const; }; diff --git a/Data/testsuite/DataTest/src/SQLExecutor.cpp b/Data/testsuite/DataTest/src/SQLExecutor.cpp index ed6c20cc3..7744ece24 100644 --- a/Data/testsuite/DataTest/src/SQLExecutor.cpp +++ b/Data/testsuite/DataTest/src/SQLExecutor.cpp @@ -292,10 +292,11 @@ const std::string SQLExecutor::MULTI_SELECT = "SELECT * FROM Test WHERE First = '5';"; -SQLExecutor::SQLExecutor(const std::string& name, Poco::Data::Session* pSession, Poco::Data::Session* pEncSession): +SQLExecutor::SQLExecutor(const std::string& name, Poco::Data::Session* pSession, Poco::Data::Session* pEncSession, bool numberedPlaceHolders): CppUnit::TestCase(name), _pSession(pSession), - _pEncSession(pEncSession) + _pEncSession(pEncSession), + _numberedPlaceHolders(numberedPlaceHolders) { } @@ -565,7 +566,7 @@ void SQLExecutor::simpleAccess() int count = 0; std::string result; - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastName), use(firstName), use(address), use(age), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastName), use(firstName), use(address), use(age), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -608,7 +609,7 @@ void SQLExecutor::complexType() Person p1("LN1", "FN1", "ADDR1", 1); Person p2("LN2", "FN2", "ADDR2", 2); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(p1), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(p1), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -616,7 +617,7 @@ void SQLExecutor::complexType() } - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(p2), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(p2), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -652,7 +653,7 @@ void SQLExecutor::complexTypeTuple() Person p2("LN2", "FN2", "ADDR2", 2); Tuple t(p1,p2); - try { *_pSession << "INSERT INTO Person VALUES(?,?,?,?,?,?,?,?)", use(t), now; } + try { *_pSession << formatSQL("INSERT INTO Person VALUES(?,?,?,?,?,?,?,?)"), use(t), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -691,7 +692,7 @@ void SQLExecutor::simpleAccessVector() int count = 0; std::string result; - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastNames), use(firstNames), use(addresses), use(ages), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -732,7 +733,7 @@ void SQLExecutor::complexTypeVector() people.push_back(Person("LN1", "FN1", "ADDR1", 1)); people.push_back(Person("LN2", "FN2", "ADDR2", 2)); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(people), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -768,7 +769,7 @@ void SQLExecutor::sharedPtrComplexTypeVector() people.push_back(new Person("LN1", "FN1", "ADDR1", 1)); people.push_back(new Person("LN2", "FN2", "ADDR2", 2)); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(people), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -806,7 +807,7 @@ void SQLExecutor::autoPtrComplexTypeVector() people.push_back(new RefCountedPerson("LN1", "FN1", "ADDR1", 1)); people.push_back(new RefCountedPerson("LN2", "FN2", "ADDR2", 2)); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(people), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -854,7 +855,7 @@ void SQLExecutor::insertVector() int count = 100; { - Statement stmt((session() << "INSERT INTO Strings VALUES (?)", use(str))); + Statement stmt((session() << formatSQL("INSERT INTO Strings VALUES (?)"), use(str))); try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } catch(DataException& ce) { @@ -899,7 +900,7 @@ void SQLExecutor::insertEmptyVector() try { - session() << "INSERT INTO Strings VALUES (?)", use(str), now; + session() << formatSQL("INSERT INTO Strings VALUES (?)"), use(str), now; fail("empty collections should not work", __LINE__, __FILE__); } catch (Poco::Exception&) { @@ -925,7 +926,7 @@ void SQLExecutor::simpleAccessList() int count = 0; std::string result; - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastNames), use(firstNames), use(addresses), use(ages), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -966,7 +967,7 @@ void SQLExecutor::complexTypeList() people.push_back(Person("LN1", "FN1", "ADDR1", 1)); people.push_back(Person("LN2", "FN2", "ADDR2", 2)); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(people), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -1006,7 +1007,7 @@ void SQLExecutor::insertList() int count = 100; { - Statement stmt((session() << "INSERT INTO Strings VALUES (?)", use(str))); + Statement stmt((session() << formatSQL("INSERT INTO Strings VALUES (?)"), use(str))); try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } catch(DataException& ce) { @@ -1050,7 +1051,7 @@ void SQLExecutor::insertEmptyList() try { - session() << "INSERT INTO Strings VALUES (?)", use(str), now; + session() << formatSQL("INSERT INTO Strings VALUES (?)"), use(str), now; fail("empty collections should not work"); } catch (Poco::Exception&) { @@ -1076,7 +1077,7 @@ void SQLExecutor::simpleAccessDeque() int count = 0; std::string result; - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastNames), use(firstNames), use(addresses), use(ages), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -1116,7 +1117,7 @@ void SQLExecutor::complexTypeDeque() people.push_back(Person("LN1", "FN1", "ADDR1", 1)); people.push_back(Person("LN2", "FN2", "ADDR2", 2)); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(people), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -1156,7 +1157,7 @@ void SQLExecutor::insertDeque() int count = 100; { - Statement stmt((session() << "INSERT INTO Strings VALUES (?)", use(str))); + Statement stmt((session() << formatSQL("INSERT INTO Strings VALUES (?)"), use(str))); try { session() << "SELECT COUNT(*) FROM Strings", into(count), now; } catch(DataException& ce) { @@ -1217,7 +1218,7 @@ void SQLExecutor::affectedRows(const std::string& whereClause) str.push_back("s3"); int count = 100; - Statement stmt1((session() << "INSERT INTO Strings VALUES(?)", use(str))); + Statement stmt1((session() << formatSQL("INSERT INTO Strings VALUES(?)"), use(str))); session() << "SELECT COUNT(*) FROM Strings", into(count), now; assertTrue (count == 0); assertTrue (4 == stmt1.execute()); @@ -1232,7 +1233,7 @@ void SQLExecutor::affectedRows(const std::string& whereClause) std::string sql; format(sql, "DELETE FROM Strings %s", whereClause); - Statement stmt4(session() << sql); + Statement stmt4(session() << formatSQL(sql)); assertTrue (3 == stmt4.execute()); } @@ -1240,7 +1241,7 @@ void SQLExecutor::affectedRows(const std::string& whereClause) void SQLExecutor::insertSingleBulk() { int x = 0; - Statement stmt((session() << "INSERT INTO Strings VALUES (?)", use(x))); + Statement stmt((session() << formatSQL("INSERT INTO Strings VALUES (?)"), use(x))); for (x = 0; x < 100; ++x) { @@ -1273,7 +1274,7 @@ void SQLExecutor::floats() float data = 1.5f; float ret = 0.0f; - try { session() << "INSERT INTO Strings VALUES (?)", use(data), now; } + try { session() << formatSQL("INSERT INTO Strings VALUES (?)"), use(data), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -1307,7 +1308,7 @@ void SQLExecutor::doubles() double data = 1.5; double ret = 0.0; - try { session() << "INSERT INTO Strings VALUES (?)", use(data), now; } + try { session() << formatSQL("INSERT INTO Strings VALUES (?)"), use(data), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -1341,7 +1342,7 @@ void SQLExecutor::uuids() Poco::UUID data("49cf6461-9b62-4163-9659-5472ef73153d"); Poco::UUID ret; - try { session() << "INSERT INTO Strings VALUES (?)", use(data), now; } + try { session() << formatSQL("INSERT INTO Strings VALUES (?)"), use(data), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -1377,7 +1378,7 @@ void SQLExecutor::insertSingleBulkVec() for (int x = 0; x < 100; ++x) data.push_back(x); - Statement stmt((session() << "INSERT INTO Strings VALUES (?)", use(data))); + Statement stmt((session() << formatSQL("INSERT INTO Strings VALUES (?)"), use(data))); stmt.execute(); int count = 0; @@ -1409,7 +1410,7 @@ void SQLExecutor::limits() data.push_back(x); } - try { session() << "INSERT INTO Strings VALUES (?)", use(data), now; } + try { session() << formatSQL("INSERT INTO Strings VALUES (?)"), use(data), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -1440,7 +1441,7 @@ void SQLExecutor::limitZero() data.push_back(x); } - try { session() << "INSERT INTO Strings VALUES (?)", use(data), now; } + try { session() << formatSQL("INSERT INTO Strings VALUES (?)"), use(data), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -1467,7 +1468,7 @@ void SQLExecutor::limitOnce() data.push_back(x); } - try { session() << "INSERT INTO Strings VALUES (?)", use(data), now; } + try { session() << formatSQL("INSERT INTO Strings VALUES (?)"), use(data), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -1502,7 +1503,7 @@ void SQLExecutor::limitPrepare() try { - Statement stmt = (session() << "INSERT INTO Strings VALUES (?)", use(data)); + Statement stmt = (session() << formatSQL("INSERT INTO Strings VALUES (?)"), use(data)); assertTrue (100 == stmt.execute()); } catch(DataException& ce) @@ -1561,7 +1562,7 @@ void SQLExecutor::prepare() } { - Statement stmt((session() << "INSERT INTO Strings VALUES (?)", use(data))); + Statement stmt((session() << formatSQL("INSERT INTO Strings VALUES (?)"), use(data))); } // stmt should not have been executed when destroyed @@ -1588,7 +1589,7 @@ void SQLExecutor::doBulkPerformance(Poco::UInt32 size) try { sw.start(); - session() << "INSERT INTO MiscTest (First, Third, Fourth, Fifth) VALUES (?,?,?,?)", + session() << formatSQL("INSERT INTO MiscTest (First, Third, Fourth, Fifth) VALUES (?,?,?,?)"), use(strings), use(ints), use(floats), @@ -1611,7 +1612,7 @@ void SQLExecutor::doBulkPerformance(Poco::UInt32 size) try { sw.restart(); - session() << "INSERT INTO MiscTest (First, Third, Fourth, Fifth) VALUES (?,?,?,?)", + session() << formatSQL("INSERT INTO MiscTest (First, Third, Fourth, Fifth) VALUES (?,?,?,?)"), use(strings, bulk), use(ints, bulk), use(floats, bulk), @@ -1724,7 +1725,7 @@ void SQLExecutor::setSimple() int count = 0; std::string result; - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } catch(DataException& ce) + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastNames), use(firstNames), use(addresses), use(ages), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; fail (__func__, __LINE__, __FILE__); @@ -1761,7 +1762,7 @@ void SQLExecutor::setComplex() people.insert(Person("LN1", "FN1", "ADDR1", 1)); people.insert(Person("LN2", "FN2", "ADDR2", 2)); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } catch(DataException& ce) + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(people), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; fail (__func__, __LINE__, __FILE__); @@ -1798,7 +1799,7 @@ void SQLExecutor::setComplexUnique() Person p2("LN2", "FN2", "ADDR2", 2); people.push_back(p2); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } catch(DataException& ce) + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(people), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; fail (__func__, __LINE__, __FILE__); @@ -1845,7 +1846,7 @@ void SQLExecutor::multiSetSimple() int count = 0; std::string result; - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastNames), use(firstNames), use(addresses), use(ages), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -1890,7 +1891,7 @@ void SQLExecutor::multiSetComplex() Person p2("LN2", "FN2", "ADDR2", 2); people.insert(p2); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(people), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -1927,7 +1928,7 @@ void SQLExecutor::mapComplex() people.insert(std::make_pair("LN1", p1)); people.insert(std::make_pair("LN2", p2)); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(people), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -1967,7 +1968,7 @@ void SQLExecutor::mapComplexUnique() people.insert(std::make_pair("LN1", p1)); people.insert(std::make_pair("LN2", p2)); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(people), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -2007,7 +2008,7 @@ void SQLExecutor::multiMapComplex() people.insert(std::make_pair("LN1", p1)); people.insert(std::make_pair("LN2", p2)); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(people), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -2044,7 +2045,7 @@ void SQLExecutor::selectIntoSingle() people.insert(std::make_pair("LN1", p1)); people.insert(std::make_pair("LN2", p2)); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(people), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -2080,7 +2081,7 @@ void SQLExecutor::selectIntoSingleStep() people.insert(std::make_pair("LN1", p1)); people.insert(std::make_pair("LN2", p2)); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(people), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -2116,7 +2117,7 @@ void SQLExecutor::selectIntoSingleFail() people.insert(std::make_pair("LN1", p1)); people.insert(std::make_pair("LN2", p2)); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(people), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -2151,7 +2152,7 @@ void SQLExecutor::lowerLimitOk() people.insert(std::make_pair("LN1", p1)); people.insert(std::make_pair("LN1", p2)); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(people), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -2186,7 +2187,7 @@ void SQLExecutor::singleSelect() people.insert(std::make_pair("LN1", p1)); people.insert(std::make_pair("LN1", p2)); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(people), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -2221,7 +2222,7 @@ void SQLExecutor::lowerLimitFail() people.insert(std::make_pair("LN1", p1)); people.insert(std::make_pair("LN1", p2)); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(people), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -2256,7 +2257,7 @@ void SQLExecutor::combinedLimits() people.insert(std::make_pair("LN1", p1)); people.insert(std::make_pair("LN1", p2)); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(people), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -2295,7 +2296,7 @@ void SQLExecutor::ranges() people.insert(std::make_pair("LN1", p1)); people.insert(std::make_pair("LN1", p2)); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(people), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -2333,7 +2334,7 @@ void SQLExecutor::combinedIllegalLimits() people.insert(std::make_pair("LN1", p1)); people.insert(std::make_pair("LN1", p2)); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(people), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -2368,7 +2369,7 @@ void SQLExecutor::illegalRange() people.insert(std::make_pair("LN1", p1)); people.insert(std::make_pair("LN1", p2)); - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(people), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(people), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -2423,7 +2424,7 @@ void SQLExecutor::blob(int bigSize, const std::string& blobPlaceholder) CLOB img("0123456789", 10); int count = 0; - try { session() << format("INSERT INTO Person VALUES (?,?,?,%s)", blobPlaceholder), + try { session() << formatSQL(format("INSERT INTO Person VALUES (?,?,?,%s)", blobPlaceholder)), use(lastName), use(firstName), use(address), use(img), now; } catch(DataException& ce) { @@ -2466,7 +2467,7 @@ void SQLExecutor::blob(int bigSize, const std::string& blobPlaceholder) try { - session() << format("INSERT INTO Person VALUES (?,?,?,%s)", blobPlaceholder), + session() << formatSQL(format("INSERT INTO Person VALUES (?,?,?,%s)", blobPlaceholder)), use(lastName), use(firstName), use(address), use(big), now; } catch(DataException& ce) @@ -2490,7 +2491,7 @@ void SQLExecutor::blobStmt() CLOB blob("0123456789", 10); int count = 0; - Statement ins = (session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastName), use(firstName), use(address), use(blob)); + Statement ins = (session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastName), use(firstName), use(address), use(blob)); ins.execute(); try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } catch(DataException& ce) @@ -2534,7 +2535,7 @@ void SQLExecutor::recordSet() { Statement stmt = (session() << - "INSERT INTO Person VALUES (?,?,?,?)", + formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastName), use(firstName), use(address), use(born), now); RecordSet rset(stmt); assertTrue (rset.rowCount() == 0); @@ -2557,7 +2558,7 @@ void SQLExecutor::recordSet() { Statement stmt = (session() << - "DELETE FROM Person WHERE born = ?", use(born), now); + formatSQL("DELETE FROM Person WHERE born = ?"), use(born), now); RecordSet rset(stmt); assertTrue (rset.rowCount() == 0); assertTrue (rset.affectedRowCount() == 1); @@ -2565,7 +2566,7 @@ void SQLExecutor::recordSet() { Statement stmt = (session() << - "INSERT INTO Person VALUES (?,?,?,?)", + formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastName), use(firstName), use(address), use(born), now); RecordSet rset(stmt); assertTrue (rset.rowCount() == 0); @@ -2574,7 +2575,7 @@ void SQLExecutor::recordSet() { Statement stmt = (session() << - "INSERT INTO Person VALUES (?,?,?,?)", + formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastName), use(firstName), use(address), use(born2), now); RecordSet rset(stmt); assertTrue (rset.rowCount() == 0); @@ -2620,7 +2621,7 @@ void SQLExecutor::dateTime() DateTime born(1965, 6, 18, 5, 35, 1); int count = 0; - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastName), use(firstName), use(address), use(born), now; } catch (ConnectionFailedException& ce){ std::cout << ce.displayText() << std::endl; fail (__func__, __LINE__, __FILE__); } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastName), use(firstName), use(address), use(born), now; } catch (ConnectionFailedException& ce){ std::cout << ce.displayText() << std::endl; fail (__func__, __LINE__, __FILE__); } try { session() << "SELECT COUNT(*) FROM Person", into(count), now; } catch (ConnectionFailedException& ce){ std::cout << ce.displayText() << std::endl; fail (__func__, __LINE__, __FILE__); } @@ -2647,7 +2648,7 @@ void SQLExecutor::date() Date bornDate(1965, 6, 18); int count = 0; - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastName), use(firstName), use(address), @@ -2697,7 +2698,7 @@ void SQLExecutor::time() Time bornTime (5, 35, 1); int count = 0; - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastName), use(firstName), use(address), @@ -2743,7 +2744,7 @@ void SQLExecutor::tuples() typedef Tuple TupleType; TupleType t(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19); - try { session() << "INSERT INTO Tuples VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", use(t), now; } + try { session() << formatSQL("INSERT INTO Tuples VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"), use(t), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -2775,7 +2776,7 @@ void SQLExecutor::tupleVector() v.push_back(t10); v.push_back(t100); - try { session() << "INSERT INTO Tuples VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", use(v), now; } + try { session() << formatSQL("INSERT INTO Tuples VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"), use(v), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -2812,7 +2813,7 @@ void SQLExecutor::internalExtraction() v.push_back(Tuple(3, 3.5f, "5")); v.push_back(Tuple(4, 4.5f, "6")); - try { session() << "INSERT INTO Vectors VALUES (?,?,?)", use(v), now; } + try { session() << formatSQL("INSERT INTO Vectors VALUES (?,?,?)"), use(v), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -2940,7 +2941,7 @@ void SQLExecutor::filter(const std::string& query, const std::string& intFldName v.push_back(Tuple(3, 3.5f, "5")); v.push_back(Tuple(4, 4.5f, "6")); - try { session() << "INSERT INTO Vectors VALUES (?,?,?)", use(v), now; } + try { session() << formatSQL("INSERT INTO Vectors VALUES (?,?,?)"), use(v), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -3036,7 +3037,7 @@ void SQLExecutor::internalBulkExtraction() try { - session() << "INSERT INTO Person VALUES (?,?,?,?)", + session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastName, bulk), use(firstName, bulk), use(address, bulk), @@ -3106,7 +3107,7 @@ void SQLExecutor::internalBulkExtractionUTF16() try { - session() << "INSERT INTO Person VALUES (?,?,?,?)", + session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastName, bulk), use(firstName, bulk), use(address, bulk), @@ -3157,7 +3158,7 @@ void SQLExecutor::internalStorageType() v.push_back(Tuple(3, 3.5f, "5")); v.push_back(Tuple(4, 4.5f, "6")); - try { session() << "INSERT INTO Vectors VALUES (?,?,?)", use(v), now; } + try { session() << formatSQL("INSERT INTO Vectors VALUES (?,?,?)"), use(v), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -3222,7 +3223,7 @@ void SQLExecutor::internalStorageType() void SQLExecutor::nulls() { - try { session() << "INSERT INTO NullTest (i,r,v) VALUES (?,?,?)", use(null), use(null), use(null), now; } + try { session() << formatSQL("INSERT INTO NullTest (i,r,v) VALUES (?,?,?)"), use(null), use(null), use(null), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -3254,7 +3255,7 @@ void SQLExecutor::nulls() double f = 1.5; std::string s = "123"; - try { session() << "INSERT INTO NullTest (i, r, v) VALUES (?,?,?)", use(i), use(f), use(s), now; } + try { session() << formatSQL("INSERT INTO NullTest (i, r, v) VALUES (?,?,?)"), use(i), use(f), use(s), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -3284,7 +3285,7 @@ void SQLExecutor::nulls() i = 2; f = 3.4; - try { session() << "INSERT INTO NullTest (i, r, v) VALUES (?,?,?)", use(i), use(null), use(null), now; } + try { session() << formatSQL("INSERT INTO NullTest (i, r, v) VALUES (?,?,?)"), use(i), use(null), use(null), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -3314,7 +3315,7 @@ void SQLExecutor::nulls() fail (__func__, __LINE__, __FILE__); } - try { session() << "INSERT INTO NullTest (v) VALUES (?)", bind(""), now; } + try { session() << formatSQL("INSERT INTO NullTest (v) VALUES (?)"), bind(""), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -3376,7 +3377,7 @@ void SQLExecutor::rowIterator() RecordSet rset0(session(), "SELECT * FROM Vectors"); assertTrue (rset0.begin() == rset0.end()); - try { session() << "INSERT INTO Vectors VALUES (?,?,?)", use(v), now; } + try { session() << formatSQL("INSERT INTO Vectors VALUES (?,?,?)"), use(v), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -3416,7 +3417,7 @@ void SQLExecutor::rowIterator() void SQLExecutor::stdVectorBool() { bool b = false; - try { session() << "INSERT INTO BoolTest VALUES (?)", use(b), now; } + try { session() << formatSQL("INSERT INTO BoolTest VALUES (?)"), use(b), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -3429,7 +3430,7 @@ void SQLExecutor::stdVectorBool() session() << "DELETE FROM BoolTest", now; b = true; - try { session() << "INSERT INTO BoolTest VALUES (?)", use(b), now; } + try { session() << formatSQL("INSERT INTO BoolTest VALUES (?)"), use(b), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -3447,7 +3448,7 @@ void SQLExecutor::stdVectorBool() v.push_back(false); v.push_back(true); - try { session() << "INSERT INTO BoolTest VALUES (?)", use(v), now; } + try { session() << formatSQL("INSERT INTO BoolTest VALUES (?)"), use(v), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -3465,9 +3466,9 @@ void SQLExecutor::stdVectorBool() t += *it ? 1 : 0; assertTrue (2 == t); - try { session() << "SELECT * FROM BoolTest WHERE b = ?", out(v), now; fail("must fail"); } catch (BindingException&) { } + try { session() << formatSQL("SELECT * FROM BoolTest WHERE b = ?"), out(v), now; fail("must fail"); } catch (BindingException&) { } - try { session() << "SELECT * FROM BoolTest WHERE b = ?", io(v), now; fail("must fail"); } catch (BindingException&) { } + try { session() << formatSQL("SELECT * FROM BoolTest WHERE b = ?"), io(v), now; fail("must fail"); } catch (BindingException&) { } RecordSet rset(session(), "SELECT * FROM BoolTest"); @@ -3483,7 +3484,7 @@ void SQLExecutor::asynchronous(int rowCount) Session tmp = session(); std::vector data(rowCount); - Statement stmt = (tmp << "INSERT INTO Strings VALUES(?)", use(data)); + Statement stmt = (tmp << formatSQL("INSERT INTO Strings VALUES(?)"), use(data)); Statement::Result result = stmt.executeAsync(); assertTrue (!stmt.isAsync()); result.wait(); @@ -3573,7 +3574,7 @@ void SQLExecutor::any() Session tmp = session(); - tmp << "INSERT INTO Anys VALUES (?, ?, ?)", use(i), use(f), use(s), now; + tmp << formatSQL("INSERT INTO Anys VALUES (?, ?, ?)"), use(i), use(f), use(s), now; int count = 0; tmp << "SELECT COUNT(*) FROM Anys", into(count), now; @@ -3596,7 +3597,7 @@ void SQLExecutor::dynamicAny() Var s = "42"; Session tmp = session(); - tmp << "INSERT INTO Anys VALUES (?, ?, ?)", use(i), use(f), use(s), now; + tmp << formatSQL("INSERT INTO Anys VALUES (?, ?, ?)"), use(i), use(f), use(s), now; int count = 0; tmp << "SELECT COUNT(*) FROM Anys", into(count), now; @@ -3621,7 +3622,7 @@ void SQLExecutor::multipleResults(const std::string& sql) people.push_back(Person("Simpson", "Bart", "Springfield", 10)); people.push_back(Person("Simpson", "Lisa", "Springfield", 8)); people.push_back(Person("Simpson", "Maggie", "Springfield", 3)); - session() << "INSERT INTO Person VALUES (?, ?, ?, ?)", use(people), now; + session() << formatSQL("INSERT INTO Person VALUES (?, ?, ?, ?)"), use(people), now; Person pHomer; int aHomer = 42, aLisa = 8; @@ -3856,7 +3857,7 @@ void SQLExecutor::sessionTransaction(const std::string& connector, const std::st session().setFeature("autoCommit", false); assertTrue (!session().getFeature("autoCommit")); - session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; + session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastNames), use(firstNames), use(addresses), use(ages), now; assertTrue (session().isTransaction()); Statement stmt = (local << "SELECT COUNT(*) FROM Person", into(locCount), async, now); @@ -3876,16 +3877,17 @@ void SQLExecutor::sessionTransaction(const std::string& connector, const std::st assertTrue (!session().isTransaction()); session().begin(); - session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; + session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastNames), use(firstNames), use(addresses), use(ages), now; assertTrue (session().isTransaction()); stmt = (local << "SELECT COUNT(*) FROM Person", into(locCount), async, now); + assertTrue (0 == locCount); session().commit(); assertTrue (!session().isTransaction()); - stmt.wait(); - assertTrue (2 == locCount); + // in general, no guarantee if stmt was executed before or after the commit + assertTrue (0 == locCount || 2 == locCount); session() << "SELECT count(*) FROM Person", into(count), now; assertTrue (2 == count); @@ -3900,7 +3902,7 @@ void SQLExecutor::sessionTransactionNoAutoCommit(const std::string& connector, c { bool autoCommit = session().getFeature("autoCommit"); - Session local("odbc", connect); + Session local(connector, connect); local.setFeature("autoCommit", false); assertTrue (!local.getFeature("autoCommit")); @@ -3921,7 +3923,7 @@ void SQLExecutor::sessionTransactionNoAutoCommit(const std::string& connector, c // no autoCommit session becomes transaction without explicit begin() assertTrue (!local.isTransaction()); assertTrue (!session().isTransaction()); - local << "INSERT INTO Person VALUES (?,?,?,?)", + local << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastNames), use(firstNames), use(addresses), use(ages), now; Statement stmt = (session() << "SELECT COUNT(*) FROM Person", into(count), async, now); @@ -3949,17 +3951,21 @@ void SQLExecutor::sessionTransactionNoAutoCommit(const std::string& connector, c assertTrue (!local.isTransaction()); stmt.wait(); - assertTrue (2 == count); + // in general, there is no guarantee if stmt was exeuted before or after the commit + assertTrue (2 == count || 0 == count); count = 0; stmt.reset(session()); - + session() << "SELECT COUNT(*) FROM Person", into(count), now; + assertTrue (2 == count); + count = 0; assertTrue (!local.isTransaction()); assertTrue (!session().isTransaction()); - local << "INSERT INTO Person VALUES (?,?,?,?)", + local << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastNames), use(firstNames), use(addresses), use(ages), now; stmt = (session() << "SELECT COUNT(*) FROM Person", into(count), async, now); local << "SELECT COUNT(*) FROM Person", into(locCount), now; - assertTrue (0 == count); + // no guarantee if stmt is executed or not: + assertTrue (0 == count || 2 == count); assertTrue (4 == locCount); #ifndef POCO_DATA_NO_SQL_PARSER assertTrue (local.isTransaction()); @@ -3994,7 +4000,7 @@ void SQLExecutor::transaction(const std::string& connector, const std::string& c return; } - Session local("odbc", connect); + Session local(connector, connect); local.setFeature("autoCommit", true); bool autoCommit = session().getFeature("autoCommit"); @@ -4025,7 +4031,7 @@ void SQLExecutor::transaction(const std::string& connector, const std::string& c assertTrue (trans.isActive()); assertTrue (session().isTransaction()); - session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; + session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastNames), use(firstNames), use(addresses), use(ages), now; assertTrue (session().isTransaction()); assertTrue (trans.isActive()); @@ -4039,12 +4045,12 @@ void SQLExecutor::transaction(const std::string& connector, const std::string& c session() << "SELECT count(*) FROM Person", into(count), now; assertTrue (0 == count); - assertTrue (!session().isTransaction()); + assertTrue (!(session().impl()->shouldParse() && session().isTransaction())); session().commit(); { Transaction trans(session()); - session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; + session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastNames), use(firstNames), use(addresses), use(ages), now; Statement stmt1 = (local << "SELECT COUNT(*) FROM Person", into(locCount), async, now); @@ -4270,7 +4276,7 @@ void SQLExecutor::reconnect() int count = 0; std::string result; - try { session() << "INSERT INTO Person VALUES (?,?,?,?)", use(lastName), use(firstName), use(address), use(age), now; } + try { session() << formatSQL("INSERT INTO Person VALUES (?,?,?,?)"), use(lastName), use(firstName), use(address), use(age), now; } catch(DataException& ce) { std::cout << ce.displayText() << std::endl; @@ -4319,7 +4325,7 @@ void SQLExecutor::unicode(const std::string& dbConnString) UTF16String wtext; Poco::UnicodeConverter::convert(text, wtext); - session() << "INSERT INTO UnicodeTable VALUES (?)", use(wtext), now; + session() << formatSQL("INSERT INTO UnicodeTable VALUES (?)"), use(wtext), now; wtext.clear(); text.clear(); session() << "SELECT str FROM UnicodeTable", into(wtext), now; @@ -4337,7 +4343,7 @@ void SQLExecutor::encoding(const std::string& dbConnString) std::string latinText((const char*)latinChars); std::string utf8TextIn((const char*)utf8Chars); - session(true) << "INSERT INTO Latin1Table VALUES (?)", use(utf8TextIn), now; + session(true) << formatSQL("INSERT INTO Latin1Table VALUES (?)"), use(utf8TextIn), now; std::string latinTextOut; session() << "SELECT str FROM Latin1Table", into(latinTextOut), now; @@ -4352,7 +4358,7 @@ void SQLExecutor::encoding(const std::string& dbConnString) std::string latinText2 = (const char*)latinChars2; std::string utf8TextIn2 = (const char*)utf8Chars2; - session(true) << "INSERT INTO Latin1Table VALUES (?)", use(utf8TextIn2), now; + session(true) << formatSQL("INSERT INTO Latin1Table VALUES (?)"), use(utf8TextIn2), now; std::vector textOutVec; session() << "SELECT str FROM Latin1Table", into(textOutVec), now; @@ -4378,4 +4384,27 @@ void SQLExecutor::encoding(const std::string& dbConnString) } } + +std::string SQLExecutor::formatSQL(const std::string& s) const +{ + if (!_numberedPlaceHolders) + return std::string(s); + + std::string r; + r.reserve(s.size()); + int idx = 0; + for (char c: s) + { + if (c == '?') + { + r += '$'; + r += std::to_string(++idx); + } + else + r += c; + } + return r; +} + + } } } // Poco::Data::Test diff --git a/Data/testsuite/src/DataTest.cpp b/Data/testsuite/src/DataTest.cpp index 8249379c0..8a20b419c 100644 --- a/Data/testsuite/src/DataTest.cpp +++ b/Data/testsuite/src/DataTest.cpp @@ -39,6 +39,8 @@ #include +using namespace Poco; +using namespace Poco::Data; using namespace Poco::Data::Keywords; @@ -181,6 +183,47 @@ void DataTest::testFeatures() { Session sess(SessionFactory::instance().create("test", "cs")); + // AbstractSession features + assertTrue (sess.hasFeature("bulk")); + assertTrue (!sess.getFeature("bulk")); + sess.setFeature("bulk", true); + assertTrue (sess.getFeature("bulk")); + sess.setFeature("bulk", false); + assertTrue (!sess.getFeature("bulk")); + + assertTrue (sess.hasFeature("emptyStringIsNull")); + assertTrue (!sess.getFeature("emptyStringIsNull")); + sess.setFeature("emptyStringIsNull", true); + assertTrue (sess.getFeature("emptyStringIsNull")); + sess.setFeature("emptyStringIsNull", false); + assertTrue (!sess.getFeature("emptyStringIsNull")); + + assertTrue (sess.hasFeature("forceEmptyString")); + assertTrue (!sess.getFeature("forceEmptyString")); + sess.setFeature("forceEmptyString", true); + assertTrue (sess.getFeature("forceEmptyString")); + sess.setFeature("forceEmptyString", false); + assertTrue (!sess.getFeature("forceEmptyString")); + + assertTrue (sess.hasFeature("sqlParse")); + assertTrue (sess.getFeature("sqlParse")); + sess.setFeature("sqlParse", false); + assertTrue (!sess.getFeature("sqlParse")); + sess.setFeature("sqlParse", true); + assertTrue (sess.getFeature("sqlParse")); + + assertTrue (sess.hasFeature("autoCommit")); + assertTrue (sess.getFeature("autoCommit")); + sess.setFeature("autoCommit", false); + assertTrue (!sess.getFeature("autoCommit")); + sess.setFeature("autoCommit", true); + assertTrue (sess.getFeature("autoCommit")); + + // Session implementation features + sess.setFeature("f1", true); + assertTrue (sess.getFeature("f1")); + assertTrue (sess.getFeature("f2")); + sess.setFeature("f1", true); assertTrue (sess.getFeature("f1")); assertTrue (sess.getFeature("f2")); @@ -218,6 +261,16 @@ void DataTest::testProperties() { Session sess(SessionFactory::instance().create("test", "cs")); + // AbstractSession properties + sess.setProperty("storage", "myStorage"s); + Poco::Any s1 = sess.getProperty("storage"); + assertTrue (Poco::AnyCast(s1) == "myStorage"s); + + sess.setProperty("handle", 1); + Poco::Any h1 = sess.getProperty("handle"); + assertTrue (Poco::AnyCast(h1) == 1); + + // Session implementation properties sess.setProperty("p1", 1); Poco::Any v1 = sess.getProperty("p1"); assertTrue (Poco::AnyCast(v1) == 1); diff --git a/Data/testsuite/src/SessionImpl.cpp b/Data/testsuite/src/SessionImpl.cpp index dc8a0e815..198f9960d 100644 --- a/Data/testsuite/src/SessionImpl.cpp +++ b/Data/testsuite/src/SessionImpl.cpp @@ -21,15 +21,13 @@ namespace Test { SessionImpl::SessionImpl(const std::string& init, std::size_t timeout): Poco::Data::AbstractSessionImpl(init, timeout), _f(false), - _connected(true), - _autoCommit(true) + _connected(true) { addFeature("f1", &SessionImpl::setF, &SessionImpl::getF); addFeature("f2", 0, &SessionImpl::getF); addFeature("f3", &SessionImpl::setF, 0); addFeature("throwOnHasNext", &SessionImpl::setThrowOnHasNext, &SessionImpl::getThrowOnHasNext); addFeature("connected", &SessionImpl::setConnected, &SessionImpl::getConnected); - addFeature("autoCommit", &SessionImpl::setAutoCommit, &SessionImpl::getAutoCommit); addProperty("p1", &SessionImpl::setP, &SessionImpl::getP); addProperty("p2", 0, &SessionImpl::getP); addProperty("p3", &SessionImpl::setP, &SessionImpl::getP); @@ -148,18 +146,6 @@ void SessionImpl::setConnected(const std::string&, bool value) } -bool SessionImpl::getAutoCommit(const std::string& name) const -{ - return _autoCommit; -} - - -void SessionImpl::setAutoCommit(const std::string&, bool value) -{ - _autoCommit = value; -} - - void SessionImpl::setF(const std::string&, bool value) { _f = value; diff --git a/Data/testsuite/src/SessionImpl.h b/Data/testsuite/src/SessionImpl.h index 6223e6df2..a0d695533 100644 --- a/Data/testsuite/src/SessionImpl.h +++ b/Data/testsuite/src/SessionImpl.h @@ -96,10 +96,6 @@ public: /// This is normally done by implementation /// when a database connection loss is detected. - void setAutoCommit(const std::string& name, bool value); - bool getAutoCommit(const std::string& name) const; - /// Sets/gets the autoCommit property. - void setF(const std::string& name, bool value); bool getF(const std::string& name) const; void setThrowOnHasNext(const std::string& name, bool value); @@ -112,7 +108,6 @@ private: bool _throwOnHasNext = false; Poco::Any _p; bool _connected; - bool _autoCommit = true; std::string _connectionString; }; diff --git a/Foundation/include/Poco/Foundation.h b/Foundation/include/Poco/Foundation.h index 83133af79..139a93d75 100644 --- a/Foundation/include/Poco/Foundation.h +++ b/Foundation/include/Poco/Foundation.h @@ -97,7 +97,7 @@ namespace Poco { using namespace std::literals; -} // Poco +} // namespace Poco // diff --git a/Foundation/nonexistent.txt b/Foundation/nonexistent.txt new file mode 100644 index 000000000..e69de29bb From bdf38b5bacbee34fb7d44f53cfcee83bc93fb87f Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Fri, 22 Dec 2023 16:55:29 +0100 Subject: [PATCH 256/395] Release 1.13 misc (#4371) * Add changes from 1.11.x and 1.12.x * Updated changelogs and contributors. * Update CONTRIBUTORS * Update CHANGELOG add SQLParser note * Update 99100-ReleaseNotes.page SQLParser note --------- Co-authored-by: Matej Kenda --- CHANGELOG | 181 +++++++++++++++++++++++++++++++++++- CONTRIBUTORS | 8 ++ doc/99100-ReleaseNotes.page | 152 +++++++++++++++++++++++++++++- 3 files changed, 338 insertions(+), 3 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 2ca943c7f..b6058029f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,9 +1,174 @@ This is the changelog file for the POCO C++ Libraries. -Release 1.13.0 (2023-10-XX) +Release 1.13.0 (2023-12-22) =========================== -- TODO +Highlights: + +- Support for MongoDB 5.1 and newer +- C++17 is the lowest supported standard +- Poco::Data SQLParser (experimental, optional at build and runtime) + +Breaking changes: + +- GH #4305 Remove deprecated `toJSON` functions +- GH #4304 NumericString conversions inconsistencies +- GH #4235 Minimum standards: C++17 and C11 +- GH #4230 Poco::Data fixes and improvements +- GH #3701 SocketReactor: Remove not useful handlers calls +- GH #569 SyntaxException for DateTimeParser::parse not working + +Features and enhancements + +- GH #4276 MongoDB default function deleted clang warning +- GH #4261 Move autoCommit to AbstractSessionImpl +- GH #4254 MessageHeader: provide original HTTP header values before RFC2047 decoding +- GH #4249 Separate CI ODBC tests into separate job +- GH #4217 Protect Reactor stop() and wakeUp() from reentrance +- GH #4208 Add Unix socket support on windows +- GH #4206 Improve Data::SessionPool thread safety +- GH #4205 Data CI Improvements +- GH #4198 Poco::Data fixes and improvements +- GH #4183 Return Transaction execution status and error +- GH #4181 Virtualize ServerApplication::handlePidFile() +- GH #4160 Allow row count statements in Data::Recordset +- GH #4148 SQL server stored procedures fail +- GH #4146 ODBC max field size fails with int +- GH #4129 make clean and distclean should not trigger dependencies creation +- GH #4112 Redirect build stderr to a file +- GH #4107 SQLChannel fixes and improvements +- GH #4064 Add ProcessRunner and PIDFile +- GH #4063 pthread_setname_np was not declared in this scope +- GH #3951 Poco::Data::SessionPool: avoid sessions staying idle too long +- GH #3833 DynamicStruct::toString() escaping +- GH #3808 ICMPEventArgs Statistics bugs +- GH #3740 buildwin.ps1 failed to build x64 +- GH #3713 SocketReactor improvements +- GH #3710 Thread::trySleep() assertion +- GH #3703 POSIX Thread::sleep() poor performance +- GH #3702 SocketReactor: post ErrorNotification on exception +- GH #3667 NumberFormatter: add Options enum for controlling prefix and lowercase +- GH #2967 build Poco Net failed MinGW [TIMESTAMP_REQUEST enum vs macro] +- GH #2770 Support for AF_UNIX on windows in recent windows builds. +- GH #2707 Trying to Compile with emscripten: Target architecture was not detected as supported by Double-Conversion +- GH #2578 HTTPClientSession not working with UNIX_LOCAL SocketAddress +- GH #2403 File::exists() wrong result +- GH #2331 Improve implementation of logging macros. +- GH #2282 Add Path::self() +- GH #1258 Poco::DateTimeParser::tryParse issue + +- GH #3845 Poco::XML::Node `insertAfter` API +- GH #3659 Add thread name support +- GH #2291 Visitor Pattern for Dynamic::Var + +- PR #4059 Update ICMPv4PacketImpl.h +- PR #4021 Fix compile with `-DPOCO_NET_NO_IPv6` +- PR #3885 Use map from key to count instead of multiset +- PR #3864 Remove unnecessary dup. of std::string in NumberParser::tryParseFloat +- PR #3802 ODBC: Fix DataFormatException getting Time value from SQL Server +- PR #3797 HTTPServer Applications Slow to Terminate #3796 +- PR #3787 fix(Crypto) Update method to extract friendlyName from certificate +- PR #3705 Fix/posix sleep +- PR #3664 set thread name +- PR #3657 Add lower case format for `NumberFormatter` + +- PR #4144 add visitor pattern implementation for Poco::Dynamic::Var +- PR #3476 add separate accessors and mutators for connect, send and receive tim… + +Bug fixes and improvements: + +- GH #4328 Environment::nodeId Should Throw SystemException When Node ID is 0 +- GH #4311 Canceled `Task` shouldn't start running +- GH #4310 `ActiveThread` data race +- GH #4309 `ArchiveStrategy` data race +- GH #4308 `DirectoryWatcher` data race +- GH #4307 `NotificationCenter` data race +- GH #4274 Remove VS 140, 150 Projects +- GH #4259 Progen uses wrong AdditionalOptions separator +- GH #4252 SecureSocketImpl::currentSession() always return null +- GH #4244 Poco::Data::PostgreSQL::SessionHandle::setAutoCommit(bool) should not call commit() or startTransaction() +- GH #4241 Poco::FileInputStream broken in 1.12.5 and 1.11.8. +- GH #4231 Poco::Data::PostgreSQL::SessionHandle::disconnect() leaks memory for failed connections +- GH #4207 VS170 binary names mismatch on ARM +- GH #4187 Sync 1.11.-1.12-devel(1.13) +- GH #4109 Skip reset for null Binder +- GH #4106 ODBC Binder does not retrieve proper type precision +- GH #4093 PostgreSQL get sqlcode +- GH #4028 Incompatibility with gcc 13.1 +- GH #3923 UDP Multicast : `leaveGroup()` method always throw an exception +- GH #3835 DynamicStruct::toString not wrapping empty strings +- GH #3823 Possibility of memory leak in Windows Environment nodeIdImpl? +- GH #3812 Poco::Data::Session::reconnect throw Connection in use +- GH #3704 TaskManager waits for all threads in the ThreadPool +- GH #3557 HTTPSClientSession read infinite loop on IOS +- GH #3484 Poco::MongoDB support for MongoDB 5.0? +- GH #3331 Apple Silicon ARM64 : Invalid access: Can not convert empty value. +- GH #3277 Use sendfile system call on Linux in HTTPServerResponseImpl::sendFile +- GH #3165 Can't reuse Poco::Data::Statement with a new set of bindings +- GH #2978 waitForTermination is unreliable on Linux. +- GH #2976 SharedMemoryImpl x64 size error +- GH #2965 Net fails to build with MinGW 9.20 +- GH #2634 Data race in Poco::Net::HTTPServerConnection::onServerStopped +- GH #2366 Poco::Process::launch (UNIX) - possible memory leak when launching invalid command +- GH #2332 Optimize multi-arg logger methods to only call format() if log level allows + +- PR #4353 Fix some issues found with clang-tidy +- PR #4345 Build.macos.openssl@1.1 +- PR #4339 Fix RemoteSyslogChannel setProperty value check +- PR #4333 enh(NumberFormatter): Introduce backward compatible options for formatHex functions +- PR #4321 Github Action for Android NDK +- PR #4319 Implementation of Path::self() +- PR #4317 enh(ci): Add ENABLE_COMPILER_WARNINGS to cmake +- PR #4306 3102 json lowercase hex +- PR #4275 fix(NetSSL_Win): Error during handshake: failed to read data +- PR #4270 SplitterChannel addChannel - Prevent Duplicate Channels +- PR #4256 Implement MySQL::SessionHandle::startTransaction as submitting the SQL statement 'BEGIN' +- PR #4223 Virtualize ServerApplication::handlePidFile() +- PR #4211 Improve FifoEvent, ActiveMethod, ActiveResult +- PR #4200 fixed infinite loops +- PR #4199 fix(Poco::Data): fixes and improvements #4198 +- PR #4190 CMake: Use CMAKE_INSTALL_* variables from GNUInstallDirs +- PR #4156 Allow passing raw fd's into ServerSocket +- PR #4138 add missing check when activerecord is enabled +- PR #4137 Fix platform when building for iPhoneSimulator +- PR #4103 Fix openssl session resumption, FTPS certificate validation vs hostname +- PR #4099 added new memeber SqlState to PostgreSQLException and made use of it. +- PR #4068 AutoPtr: do 'duplicate' before 'release' +- PR #4061 Adding API XML::AbstractContainerNode::insertAfterNP() +- PR #4025 EVPPKey constructor for modulus/exponent +- PR #4022 Make Binding and CopyBinding specializations final +- PR #4020 MongoDB: add missing name accessor to get database name. +- PR #4007 add sendfile method for streamsocket +- PR #4004 Mongodb op msg database commands fix +- PR #3989 Fix thread compilation issues on FreeBSD +- PR #3976 fix(devel): add missing 1.11 releases commits +- PR #3954 Complimentary to #3918 (std::*mutex wrapper) +- PR #3946 Add GNU Hurd support +- PR #3939 Solaris.build fix #3843 and #3643 +- PR #3932 Cross-compiling with ming32-w64 on Linux #3815 +- PR #3929 Fix multicast leave group +- PR #3863 testDynamicStructEmptyString always failed +- PR #3861 Do not incur insane stack limit in Foundation-ThreadPool test. +- PR #3860 Fix Aix Build +- PR #3842 hasMicrosecond is undefined +- PR #3821 chore(Net): correct spelling, remove some unused codes fix(SocketProactor): missing adding sock to read pollset fix(DialogServer): _lastCommands data race +- PR #3810 Custom rotate, archive and purge strategies for FileChannel +- PR #3749 buildwin.ps1 script error building the x64 version of Poco +- PR #3502 Add ODBC DirectExec public API +- PR #3102 Made it possible to use lowercase hex numbers, also when encoding JSON +- PR #3009 switching iPhoneSimulator arch to 64 bit + + +Release 1.12.5p2 (2023-12-04) +============================= + +- GH #4320: Integer overflow in Poco::UTF32Encoding + + +Release 1.12.5p1 (2023-11-02) +============================= + +- GH #4241: Poco::FileInputStream broken in 1.12.5 and 1.11.8 Release 1.12.5 (2023-10-25) @@ -249,6 +414,18 @@ Release 1.12.0 (2022-07-08) - GH #3665 MSVC does not properly recognize std version +Release 1.11.8p2 (2023-12-04) +============================= + +- GH #4320: Integer overflow in Poco::UTF32Encoding + + +Release 1.11.8p1 (2023-11-02) +============================= + +- GH #4241: Poco::FileInputStream broken in 1.12.5 and 1.11.8 + + Release 1.11.8 (2023-10-18) =========================== diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 7bc689d68..b27eed6ac 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -53,3 +53,11 @@ Francis Andre Kacper PiwiÅ„ski Hernan Martinez Jacky Woo +Jörg-Christian Böhme +Matej Kenda +Tomaž Beltram +Friedrich Wilckens +Pavle DragiÅ¡ić +Nino BeluÅ¡ić +Kari Argillander +Alexander B diff --git a/doc/99100-ReleaseNotes.page b/doc/99100-ReleaseNotes.page index b18eedbba..62d897906 100644 --- a/doc/99100-ReleaseNotes.page +++ b/doc/99100-ReleaseNotes.page @@ -5,8 +5,158 @@ AAAIntroduction !!Summary of Changes - - TODO + - Support for MongoDB 5.1 and newer + - C++17 is the lowest supported standard + - Poco::Data SQLParser (experimental, optional at build and runtime) +!!Breaking changes: + +- GH #4305 Remove deprecated `toJSON` functions +- GH #4304 NumericString conversions inconsistencies +- GH #4235 Minimum standards: C++17 and C11 +- GH #4230 Poco::Data fixes and improvements +- GH #3701 SocketReactor: Remove not useful handlers calls +- GH #569 SyntaxException for DateTimeParser::parse not working + +!!Features and enhancements + +- GH #4276 MongoDB default function deleted clang warning +- GH #4261 Move autoCommit to AbstractSessionImpl +- GH #4254 MessageHeader: provide original HTTP header values before RFC2047 decoding +- GH #4249 Separate CI ODBC tests into separate job +- GH #4217 Protect Reactor stop() and wakeUp() from reentrance +- GH #4208 Add Unix socket support on windows +- GH #4206 Improve Data::SessionPool thread safety +- GH #4205 Data CI Improvements +- GH #4198 Poco::Data fixes and improvements +- GH #4183 Return Transaction execution status and error +- GH #4181 Virtualize ServerApplication::handlePidFile() +- GH #4160 Allow row count statements in Data::Recordset +- GH #4148 SQL server stored procedures fail +- GH #4146 ODBC max field size fails with int +- GH #4129 make clean and distclean should not trigger dependencies creation +- GH #4112 Redirect build stderr to a file +- GH #4107 SQLChannel fixes and improvements +- GH #4064 Add ProcessRunner and PIDFile +- GH #4063 pthread_setname_np was not declared in this scope +- GH #3951 Poco::Data::SessionPool: avoid sessions staying idle too long +- GH #3833 DynamicStruct::toString() escaping +- GH #3808 ICMPEventArgs Statistics bugs +- GH #3740 buildwin.ps1 failed to build x64 +- GH #3713 SocketReactor improvements +- GH #3710 Thread::trySleep() assertion +- GH #3703 POSIX Thread::sleep() poor performance +- GH #3702 SocketReactor: post ErrorNotification on exception +- GH #3667 NumberFormatter: add Options enum for controlling prefix and lowercase +- GH #2967 build Poco Net failed MinGW [TIMESTAMP_REQUEST enum vs macro] +- GH #2770 Support for AF_UNIX on windows in recent windows builds. +- GH #2707 Trying to Compile with emscripten: Target architecture was not detected as supported by Double-Conversion +- GH #2578 HTTPClientSession not working with UNIX_LOCAL SocketAddress +- GH #2403 File::exists() wrong result +- GH #2331 Improve implementation of logging macros. +- GH #2282 Add Path::self() +- GH #1258 Poco::DateTimeParser::tryParse issue + +- GH #3845 Poco::XML::Node `insertAfter` API +- GH #3659 Add thread name support +- GH #2291 Visitor Pattern for Dynamic::Var + +- PR #4059 Update ICMPv4PacketImpl.h +- PR #4021 Fix compile with `-DPOCO_NET_NO_IPv6` +- PR #3885 Use map from key to count instead of multiset +- PR #3864 Remove unnecessary dup. of std::string in NumberParser::tryParseFloat +- PR #3802 ODBC: Fix DataFormatException getting Time value from SQL Server +- PR #3797 HTTPServer Applications Slow to Terminate #3796 +- PR #3787 fix(Crypto) Update method to extract friendlyName from certificate +- PR #3705 Fix/posix sleep +- PR #3664 set thread name +- PR #3657 Add lower case format for `NumberFormatter` + +- PR #4144 add visitor pattern implementation for Poco::Dynamic::Var +- PR #3476 add separate accessors and mutators for connect, send and receive tim… + +!!Bug fixes and improvements: + +- GH #4328 Environment::nodeId Should Throw SystemException When Node ID is 0 +- GH #4311 Canceled `Task` shouldn't start running +- GH #4310 `ActiveThread` data race +- GH #4309 `ArchiveStrategy` data race +- GH #4308 `DirectoryWatcher` data race +- GH #4307 `NotificationCenter` data race +- GH #4274 Remove VS 140, 150 Projects +- GH #4259 Progen uses wrong AdditionalOptions separator +- GH #4252 SecureSocketImpl::currentSession() always return null +- GH #4244 Poco::Data::PostgreSQL::SessionHandle::setAutoCommit(bool) should not call commit() or startTransaction() +- GH #4241 Poco::FileInputStream broken in 1.12.5 and 1.11.8. +- GH #4231 Poco::Data::PostgreSQL::SessionHandle::disconnect() leaks memory for failed connections +- GH #4207 VS170 binary names mismatch on ARM +- GH #4187 Sync 1.11.-1.12-devel(1.13) +- GH #4109 Skip reset for null Binder +- GH #4106 ODBC Binder does not retrieve proper type precision +- GH #4093 PostgreSQL get sqlcode +- GH #4028 Incompatibility with gcc 13.1 +- GH #3923 UDP Multicast : `leaveGroup()` method always throw an exception +- GH #3835 DynamicStruct::toString not wrapping empty strings +- GH #3823 Possibility of memory leak in Windows Environment nodeIdImpl? +- GH #3812 Poco::Data::Session::reconnect throw Connection in use +- GH #3704 TaskManager waits for all threads in the ThreadPool +- GH #3557 HTTPSClientSession read infinite loop on IOS +- GH #3484 Poco::MongoDB support for MongoDB 5.0? +- GH #3331 Apple Silicon ARM64 : Invalid access: Can not convert empty value. +- GH #3277 Use sendfile system call on Linux in HTTPServerResponseImpl::sendFile +- GH #3165 Can't reuse Poco::Data::Statement with a new set of bindings +- GH #2978 waitForTermination is unreliable on Linux. +- GH #2976 SharedMemoryImpl x64 size error +- GH #2965 Net fails to build with MinGW 9.20 +- GH #2634 Data race in Poco::Net::HTTPServerConnection::onServerStopped +- GH #2366 Poco::Process::launch (UNIX) - possible memory leak when launching invalid command +- GH #2332 Optimize multi-arg logger methods to only call format() if log level allows + +- PR #4353 Fix some issues found with clang-tidy +- PR #4345 Build.macos.openssl@1.1 +- PR #4339 Fix RemoteSyslogChannel setProperty value check +- PR #4333 enh(NumberFormatter): Introduce backward compatible options for formatHex functions +- PR #4321 Github Action for Android NDK +- PR #4319 Implementation of Path::self() +- PR #4317 enh(ci): Add ENABLE_COMPILER_WARNINGS to cmake +- PR #4306 3102 json lowercase hex +- PR #4275 fix(NetSSL_Win): Error during handshake: failed to read data +- PR #4270 SplitterChannel addChannel - Prevent Duplicate Channels +- PR #4256 Implement MySQL::SessionHandle::startTransaction as submitting the SQL statement 'BEGIN' +- PR #4223 Virtualize ServerApplication::handlePidFile() +- PR #4211 Improve FifoEvent, ActiveMethod, ActiveResult +- PR #4200 fixed infinite loops +- PR #4199 fix(Poco::Data): fixes and improvements #4198 +- PR #4190 CMake: Use CMAKE_INSTALL_* variables from GNUInstallDirs +- PR #4156 Allow passing raw fd's into ServerSocket +- PR #4138 add missing check when activerecord is enabled +- PR #4137 Fix platform when building for iPhoneSimulator +- PR #4103 Fix openssl session resumption, FTPS certificate validation vs hostname +- PR #4099 added new memeber SqlState to PostgreSQLException and made use of it. +- PR #4068 AutoPtr: do 'duplicate' before 'release' +- PR #4061 Adding API XML::AbstractContainerNode::insertAfterNP() +- PR #4025 EVPPKey constructor for modulus/exponent +- PR #4022 Make Binding and CopyBinding specializations final +- PR #4020 MongoDB: add missing name accessor to get database name. +- PR #4007 add sendfile method for streamsocket +- PR #4004 Mongodb op msg database commands fix +- PR #3989 Fix thread compilation issues on FreeBSD +- PR #3976 fix(devel): add missing 1.11 releases commits +- PR #3954 Complimentary to #3918 (std::*mutex wrapper) +- PR #3946 Add GNU Hurd support +- PR #3939 Solaris.build fix #3843 and #3643 +- PR #3932 Cross-compiling with ming32-w64 on Linux #3815 +- PR #3929 Fix multicast leave group +- PR #3863 testDynamicStructEmptyString always failed +- PR #3861 Do not incur insane stack limit in Foundation-ThreadPool test. +- PR #3860 Fix Aix Build +- PR #3842 hasMicrosecond is undefined +- PR #3821 chore(Net): correct spelling, remove some unused codes fix(SocketProactor): missing adding sock to read pollset fix(DialogServer): _lastCommands data race +- PR #3810 Custom rotate, archive and purge strategies for FileChannel +- PR #3749 buildwin.ps1 script error building the x64 version of Poco +- PR #3502 Add ODBC DirectExec public API +- PR #3102 Made it possible to use lowercase hex numbers, also when encoding JSON +- PR #3009 switching iPhoneSimulator arch to 64 bit !!!Release 1.12.5 From 9c7cba6d6c77b433333542592e1219a1abab6f1e Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Fri, 22 Dec 2023 20:22:33 +0100 Subject: [PATCH 257/395] backport leftover 1.12 changes --- CppParser/testsuite/src/CppParserTest.cpp | 16 ++++++++++++++++ Data/src/SessionPool.cpp | 2 ++ Foundation/include/Poco/Logger.h | 10 ++++++++++ Foundation/src/Thread_POSIX.cpp | 4 ++-- Net/include/Poco/Net/SocketReactor.h | 2 +- Net/src/HTTPDigestCredentials.cpp | 8 ++++---- Net/testsuite/src/PollSetTest.cpp | 1 - 7 files changed, 35 insertions(+), 8 deletions(-) diff --git a/CppParser/testsuite/src/CppParserTest.cpp b/CppParser/testsuite/src/CppParserTest.cpp index 35ce2d5ec..b200ca145 100644 --- a/CppParser/testsuite/src/CppParserTest.cpp +++ b/CppParser/testsuite/src/CppParserTest.cpp @@ -94,6 +94,22 @@ void CppParserTest::testExtractName() name = Symbol::extractName(decl); assertTrue (name == "func"); + decl = "std::function func"; + name = Symbol::extractName(decl); + assertTrue (name == "func"); + + decl = "std::function func"; + name = Symbol::extractName(decl); + assertTrue (name == "func"); + + decl = "std::function(std::vector)> func"; + name = Symbol::extractName(decl); + assertTrue (name == "func"); + + decl = "std::function)> func"; + name = Symbol::extractName(decl); + assertTrue (name == "func"); + decl = "const std::vector* var"; name = Symbol::extractName(decl); assertTrue (name == "var"); diff --git a/Data/src/SessionPool.cpp b/Data/src/SessionPool.cpp index ff849a8ce..eb5e8db18 100644 --- a/Data/src/SessionPool.cpp +++ b/Data/src/SessionPool.cpp @@ -317,6 +317,8 @@ void SessionPool::shutdown() if (_shutdown.exchange(true)) return; _shutdown = true; _janitorTimer.stop(); + + Poco::Mutex::ScopedLock lock(_mutex); closeAll(_idleSessions); closeAll(_activeSessions); } diff --git a/Foundation/include/Poco/Logger.h b/Foundation/include/Poco/Logger.h index bfa2fec14..84e3b985a 100644 --- a/Foundation/include/Poco/Logger.h +++ b/Foundation/include/Poco/Logger.h @@ -462,6 +462,7 @@ protected: ~Logger(); void log(const std::string& text, Message::Priority prio); + void logNPC(const std::string& text, Message::Priority prio); void log(const std::string& text, Message::Priority prio, const char* file, int line); static std::string format(const std::string& fmt, int argc, std::string argv[]); @@ -789,6 +790,15 @@ inline void Logger::log(const std::string& text, Message::Priority prio) } +inline void Logger::logNPC(const std::string& text, Message::Priority prio) +{ + if (_pChannel) + { + _pChannel->log(Message(_name, text, prio)); + } +} + + inline void Logger::log(const std::string& text, Message::Priority prio, const char* file, int line) { if (_level >= prio && _pChannel) diff --git a/Foundation/src/Thread_POSIX.cpp b/Foundation/src/Thread_POSIX.cpp index ecbca6050..211404fc9 100644 --- a/Foundation/src/Thread_POSIX.cpp +++ b/Foundation/src/Thread_POSIX.cpp @@ -262,12 +262,12 @@ void ThreadImpl::setSignalMaskImpl(uint32_t sigMask) sigset_t sset; sigemptyset(&sset); - for (int sig = 0; sig < sizeof(uint32_t) * 8; ++sig) + for (int sig = 0; sig < sizeof(uint32_t) * 8; ++sig) { if ((sigMask & (1 << sig)) != 0) sigaddset(&sset, sig); } - + pthread_sigmask(SIG_BLOCK, &sset, 0); } diff --git a/Net/include/Poco/Net/SocketReactor.h b/Net/include/Poco/Net/SocketReactor.h index aefc4dc93..653a59a4e 100644 --- a/Net/include/Poco/Net/SocketReactor.h +++ b/Net/include/Poco/Net/SocketReactor.h @@ -104,7 +104,7 @@ class Net_API SocketReactor: public Poco::Runnable /// Finally, when the SocketReactor is about to shut down (as a result /// of stop() being called), it dispatches a ShutdownNotification /// to all event handlers. This is done in the onShutdown() method - /// which can be overridded by subclasses to perform custom + /// which can be overridden by subclasses to perform custom /// shutdown processing. /// /// The SocketReactor is implemented so that it can run in its own thread. diff --git a/Net/src/HTTPDigestCredentials.cpp b/Net/src/HTTPDigestCredentials.cpp index 068dbb9f5..736538ade 100644 --- a/Net/src/HTTPDigestCredentials.cpp +++ b/Net/src/HTTPDigestCredentials.cpp @@ -334,8 +334,8 @@ void HTTPDigestCredentials::updateAuthParams(const HTTPRequest& request) ha1 = digest(engine, ha1, nonce, cnonce); } - const std::string ha2 = digest(engine, request.getMethod(), request.getURI()); - + const std::string ha2 = digest(engine, request.getMethod(), request.getURI()); + _requestAuthParams.set(NC_PARAM, nc); _requestAuthParams.set(CNONCE_PARAM, cnonce); _requestAuthParams.set(RESPONSE_PARAM, digest(engine, ha1, nonce, nc, cnonce, qop, ha2)); @@ -367,7 +367,7 @@ bool HTTPDigestCredentials::verifyAuthParams(const HTTPRequest& request, const H else if (icompare(qop, AUTH_PARAM) == 0) { const std::string& algorithm = params.get(ALGORITHM_PARAM, MD_5_ALGORITHM); - + if (!isAlgorithmSupported(algorithm)) { throw NotImplementedException("Unsupported digest algorithm", algorithm); } @@ -406,7 +406,7 @@ int HTTPDigestCredentials::updateNonceCounter(const std::string& nonce) bool HTTPDigestCredentials::isAlgorithmSupported(const std::string& algorithm) const { - bool isAlgorithmSupported = std::find_if(std::begin(SUPPORTED_ALGORITHMS), + bool isAlgorithmSupported = std::find_if(std::begin(SUPPORTED_ALGORITHMS), std::end(SUPPORTED_ALGORITHMS), [&algorithm](const std::string& supportedAlgorithm) { diff --git a/Net/testsuite/src/PollSetTest.cpp b/Net/testsuite/src/PollSetTest.cpp index dd8e0b251..5897b80f8 100644 --- a/Net/testsuite/src/PollSetTest.cpp +++ b/Net/testsuite/src/PollSetTest.cpp @@ -361,7 +361,6 @@ void PollSetTest::testPollNoServer() catch (Poco::Exception&) {} assertEqual(2, ps.poll(Timespan(1000000)).size()); - } From 48d7a3ede1ecf3227b8119b7fe5ba9a07e792d51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sat, 23 Dec 2023 09:11:37 +0100 Subject: [PATCH 258/395] doc(ReleaseNotes): fix formatting, add PR links --- CHANGELOG | 10 +- PocoDoc/src/DocWriter.cpp | 5 +- doc/99100-ReleaseNotes.page | 289 +++++++++++++++++++----------------- 3 files changed, 156 insertions(+), 148 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index b6058029f..f9e214056 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -9,7 +9,7 @@ Highlights: - C++17 is the lowest supported standard - Poco::Data SQLParser (experimental, optional at build and runtime) -Breaking changes: +Breaking Changes: - GH #4305 Remove deprecated `toJSON` functions - GH #4304 NumericString conversions inconsistencies @@ -18,7 +18,7 @@ Breaking changes: - GH #3701 SocketReactor: Remove not useful handlers calls - GH #569 SyntaxException for DateTimeParser::parse not working -Features and enhancements +Features and Enhancements - GH #4276 MongoDB default function deleted clang warning - GH #4261 Move autoCommit to AbstractSessionImpl @@ -56,11 +56,9 @@ Features and enhancements - GH #2331 Improve implementation of logging macros. - GH #2282 Add Path::self() - GH #1258 Poco::DateTimeParser::tryParse issue - - GH #3845 Poco::XML::Node `insertAfter` API - GH #3659 Add thread name support - GH #2291 Visitor Pattern for Dynamic::Var - - PR #4059 Update ICMPv4PacketImpl.h - PR #4021 Fix compile with `-DPOCO_NET_NO_IPv6` - PR #3885 Use map from key to count instead of multiset @@ -71,11 +69,10 @@ Features and enhancements - PR #3705 Fix/posix sleep - PR #3664 set thread name - PR #3657 Add lower case format for `NumberFormatter` - - PR #4144 add visitor pattern implementation for Poco::Dynamic::Var - PR #3476 add separate accessors and mutators for connect, send and receive tim… -Bug fixes and improvements: +Bug fixes and Improvements: - GH #4328 Environment::nodeId Should Throw SystemException When Node ID is 0 - GH #4311 Canceled `Task` shouldn't start running @@ -111,7 +108,6 @@ Bug fixes and improvements: - GH #2634 Data race in Poco::Net::HTTPServerConnection::onServerStopped - GH #2366 Poco::Process::launch (UNIX) - possible memory leak when launching invalid command - GH #2332 Optimize multi-arg logger methods to only call format() if log level allows - - PR #4353 Fix some issues found with clang-tidy - PR #4345 Build.macos.openssl@1.1 - PR #4339 Fix RemoteSyslogChannel setProperty value check diff --git a/PocoDoc/src/DocWriter.cpp b/PocoDoc/src/DocWriter.cpp index 76f668f90..ba84c41e5 100644 --- a/PocoDoc/src/DocWriter.cpp +++ b/PocoDoc/src/DocWriter.cpp @@ -1148,8 +1148,9 @@ void DocWriter::writeText(std::ostream& ostr, std::string::const_iterator begin, } begin = it; } - if (token == "GH") + if (token == "GH" || token == "PR") { + bool isPR = token == "PR"; std::string uri(GITHUB_POCO_URI); std::string::const_iterator it(begin); std::string spc; @@ -1171,7 +1172,7 @@ void DocWriter::writeText(std::ostream& ostr, std::string::const_iterator begin, nextToken(begin, end, n); if (!n.empty() && std::isdigit(n[0])) { - uri += "/issues/"; + uri += isPR ? "/pull/" : "/issues/"; uri += n; writeTargetLink(ostr, uri, token + " #" + n, "_blank"); nextToken(begin, end, token); diff --git a/doc/99100-ReleaseNotes.page b/doc/99100-ReleaseNotes.page index 62d897906..b3d61f73c 100644 --- a/doc/99100-ReleaseNotes.page +++ b/doc/99100-ReleaseNotes.page @@ -9,154 +9,165 @@ AAAIntroduction - C++17 is the lowest supported standard - Poco::Data SQLParser (experimental, optional at build and runtime) -!!Breaking changes: +!!Breaking Changes -- GH #4305 Remove deprecated `toJSON` functions -- GH #4304 NumericString conversions inconsistencies -- GH #4235 Minimum standards: C++17 and C11 -- GH #4230 Poco::Data fixes and improvements -- GH #3701 SocketReactor: Remove not useful handlers calls -- GH #569 SyntaxException for DateTimeParser::parse not working + - GH #4305 Remove deprecated `toJSON` functions + - GH #4304 NumericString conversions inconsistencies + - GH #4235 Minimum standards: C++17 and C11 + - GH #4230 Poco::Data fixes and improvements + - GH #3701 SocketReactor: Remove not useful handlers calls + - GH #569 SyntaxException for DateTimeParser::parse not working -!!Features and enhancements +!!Features and Enhancements -- GH #4276 MongoDB default function deleted clang warning -- GH #4261 Move autoCommit to AbstractSessionImpl -- GH #4254 MessageHeader: provide original HTTP header values before RFC2047 decoding -- GH #4249 Separate CI ODBC tests into separate job -- GH #4217 Protect Reactor stop() and wakeUp() from reentrance -- GH #4208 Add Unix socket support on windows -- GH #4206 Improve Data::SessionPool thread safety -- GH #4205 Data CI Improvements -- GH #4198 Poco::Data fixes and improvements -- GH #4183 Return Transaction execution status and error -- GH #4181 Virtualize ServerApplication::handlePidFile() -- GH #4160 Allow row count statements in Data::Recordset -- GH #4148 SQL server stored procedures fail -- GH #4146 ODBC max field size fails with int -- GH #4129 make clean and distclean should not trigger dependencies creation -- GH #4112 Redirect build stderr to a file -- GH #4107 SQLChannel fixes and improvements -- GH #4064 Add ProcessRunner and PIDFile -- GH #4063 pthread_setname_np was not declared in this scope -- GH #3951 Poco::Data::SessionPool: avoid sessions staying idle too long -- GH #3833 DynamicStruct::toString() escaping -- GH #3808 ICMPEventArgs Statistics bugs -- GH #3740 buildwin.ps1 failed to build x64 -- GH #3713 SocketReactor improvements -- GH #3710 Thread::trySleep() assertion -- GH #3703 POSIX Thread::sleep() poor performance -- GH #3702 SocketReactor: post ErrorNotification on exception -- GH #3667 NumberFormatter: add Options enum for controlling prefix and lowercase -- GH #2967 build Poco Net failed MinGW [TIMESTAMP_REQUEST enum vs macro] -- GH #2770 Support for AF_UNIX on windows in recent windows builds. -- GH #2707 Trying to Compile with emscripten: Target architecture was not detected as supported by Double-Conversion -- GH #2578 HTTPClientSession not working with UNIX_LOCAL SocketAddress -- GH #2403 File::exists() wrong result -- GH #2331 Improve implementation of logging macros. -- GH #2282 Add Path::self() -- GH #1258 Poco::DateTimeParser::tryParse issue + - GH #4276 MongoDB default function deleted clang warning + - GH #4261 Move autoCommit to AbstractSessionImpl + - GH #4254 MessageHeader: provide original HTTP header values before RFC2047 decoding + - GH #4249 Separate CI ODBC tests into separate job + - GH #4217 Protect Reactor stop() and wakeUp() from reentrance + - GH #4208 Add Unix socket support on windows + - GH #4206 Improve Data::SessionPool thread safety + - GH #4205 Data CI Improvements + - GH #4198 Poco::Data fixes and improvements + - GH #4183 Return Transaction execution status and error + - GH #4181 Virtualize ServerApplication::handlePidFile() + - GH #4160 Allow row count statements in Data::Recordset + - GH #4148 SQL server stored procedures fail + - GH #4146 ODBC max field size fails with int + - GH #4129 make clean and distclean should not trigger dependencies creation + - GH #4112 Redirect build stderr to a file + - GH #4107 SQLChannel fixes and improvements + - GH #4064 Add ProcessRunner and PIDFile + - GH #4063 pthread_setname_np was not declared in this scope + - GH #3951 Poco::Data::SessionPool: avoid sessions staying idle too long + - GH #3833 DynamicStruct::toString() escaping + - GH #3808 ICMPEventArgs Statistics bugs + - GH #3740 buildwin.ps1 failed to build x64 + - GH #3713 SocketReactor improvements + - GH #3710 Thread::trySleep() assertion + - GH #3703 POSIX Thread::sleep() poor performance + - GH #3702 SocketReactor: post ErrorNotification on exception + - GH #3667 NumberFormatter: add Options enum for controlling prefix and lowercase + - GH #2967 build Poco Net failed MinGW [TIMESTAMP_REQUEST enum vs macro] + - GH #2770 Support for AF_UNIX on windows in recent windows builds. + - GH #2707 Trying to Compile with emscripten: Target architecture was not detected as supported by Double-Conversion + - GH #2578 HTTPClientSession not working with UNIX_LOCAL SocketAddress + - GH #2403 File::exists() wrong result + - GH #2331 Improve implementation of logging macros. + - GH #2282 Add Path::self() + - GH #1258 Poco::DateTimeParser::tryParse issue + - GH #3845 Poco::XML::Node `insertAfter` API + - GH #3659 Add thread name support + - GH #2291 Visitor Pattern for Dynamic::Var + - PR #4059 Update ICMPv4PacketImpl.h + - PR #4021 Fix compile with `-DPOCO_NET_NO_IPv6` + - PR #3885 Use map from key to count instead of multiset + - PR #3864 Remove unnecessary dup. of std::string in NumberParser::tryParseFloat + - PR #3802 ODBC: Fix DataFormatException getting Time value from SQL Server + - PR #3797 HTTPServer Applications Slow to Terminate #3796 + - PR #3787 fix(Crypto) Update method to extract friendlyName from certificate + - PR #3705 Fix/posix sleep + - PR #3664 set thread name + - PR #3657 Add lower case format for `NumberFormatter` + - PR #4144 add visitor pattern implementation for Poco::Dynamic::Var + - PR #3476 add separate accessors and mutators for connect, send and receive tim… -- GH #3845 Poco::XML::Node `insertAfter` API -- GH #3659 Add thread name support -- GH #2291 Visitor Pattern for Dynamic::Var +!!Bug Fixes and Improvements -- PR #4059 Update ICMPv4PacketImpl.h -- PR #4021 Fix compile with `-DPOCO_NET_NO_IPv6` -- PR #3885 Use map from key to count instead of multiset -- PR #3864 Remove unnecessary dup. of std::string in NumberParser::tryParseFloat -- PR #3802 ODBC: Fix DataFormatException getting Time value from SQL Server -- PR #3797 HTTPServer Applications Slow to Terminate #3796 -- PR #3787 fix(Crypto) Update method to extract friendlyName from certificate -- PR #3705 Fix/posix sleep -- PR #3664 set thread name -- PR #3657 Add lower case format for `NumberFormatter` + - GH #4328 Environment::nodeId Should Throw SystemException When Node ID is 0 + - GH #4311 Canceled `Task` shouldn't start running + - GH #4310 `ActiveThread` data race + - GH #4309 `ArchiveStrategy` data race + - GH #4308 `DirectoryWatcher` data race + - GH #4307 `NotificationCenter` data race + - GH #4274 Remove VS 140, 150 Projects + - GH #4259 Progen uses wrong AdditionalOptions separator + - GH #4252 SecureSocketImpl::currentSession() always return null + - GH #4244 Poco::Data::PostgreSQL::SessionHandle::setAutoCommit(bool) should not call commit() or startTransaction() + - GH #4241 Poco::FileInputStream broken in 1.12.5 and 1.11.8. + - GH #4231 Poco::Data::PostgreSQL::SessionHandle::disconnect() leaks memory for failed connections + - GH #4207 VS170 binary names mismatch on ARM + - GH #4187 Sync 1.11.-1.12-devel(1.13) + - GH #4109 Skip reset for null Binder + - GH #4106 ODBC Binder does not retrieve proper type precision + - GH #4093 PostgreSQL get sqlcode + - GH #4028 Incompatibility with gcc 13.1 + - GH #3923 UDP Multicast : `leaveGroup()` method always throw an exception + - GH #3835 DynamicStruct::toString not wrapping empty strings + - GH #3823 Possibility of memory leak in Windows Environment nodeIdImpl? + - GH #3812 Poco::Data::Session::reconnect throw Connection in use + - GH #3704 TaskManager waits for all threads in the ThreadPool + - GH #3557 HTTPSClientSession read infinite loop on IOS + - GH #3484 Poco::MongoDB support for MongoDB 5.0? + - GH #3331 Apple Silicon ARM64 : Invalid access: Can not convert empty value. + - GH #3277 Use sendfile system call on Linux in HTTPServerResponseImpl::sendFile + - GH #3165 Can't reuse Poco::Data::Statement with a new set of bindings + - GH #2978 waitForTermination is unreliable on Linux. + - GH #2976 SharedMemoryImpl x64 size error + - GH #2965 Net fails to build with MinGW 9.20 + - GH #2634 Data race in Poco::Net::HTTPServerConnection::onServerStopped + - GH #2366 Poco::Process::launch (UNIX) - possible memory leak when launching invalid command + - GH #2332 Optimize multi-arg logger methods to only call format() if log level allows + - PR #4353 Fix some issues found with clang-tidy + - PR #4345 Build.macos.openssl@1.1 + - PR #4339 Fix RemoteSyslogChannel setProperty value check + - PR #4333 enh(NumberFormatter): Introduce backward compatible options for formatHex functions + - PR #4321 Github Action for Android NDK + - PR #4319 Implementation of Path::self() + - PR #4317 enh(ci): Add ENABLE_COMPILER_WARNINGS to cmake + - PR #4306 3102 json lowercase hex + - PR #4275 fix(NetSSL_Win): Error during handshake: failed to read data + - PR #4270 SplitterChannel addChannel - Prevent Duplicate Channels + - PR #4256 Implement MySQL::SessionHandle::startTransaction as submitting the SQL statement 'BEGIN' + - PR #4223 Virtualize ServerApplication::handlePidFile() + - PR #4211 Improve FifoEvent, ActiveMethod, ActiveResult + - PR #4200 fixed infinite loops + - PR #4199 fix(Poco::Data): fixes and improvements #4198 + - PR #4190 CMake: Use CMAKE_INSTALL_* variables from GNUInstallDirs + - PR #4156 Allow passing raw fd's into ServerSocket + - PR #4138 add missing check when activerecord is enabled + - PR #4137 Fix platform when building for iPhoneSimulator + - PR #4103 Fix openssl session resumption, FTPS certificate validation vs hostname + - PR #4099 added new memeber SqlState to PostgreSQLException and made use of it. + - PR #4068 AutoPtr: do 'duplicate' before 'release' + - PR #4061 Adding API XML::AbstractContainerNode::insertAfterNP() + - PR #4025 EVPPKey constructor for modulus/exponent + - PR #4022 Make Binding and CopyBinding specializations final + - PR #4020 MongoDB: add missing name accessor to get database name. + - PR #4007 add sendfile method for streamsocket + - PR #4004 Mongodb op msg database commands fix + - PR #3989 Fix thread compilation issues on FreeBSD + - PR #3976 fix(devel): add missing 1.11 releases commits + - PR #3954 Complimentary to #3918 (std::*mutex wrapper) + - PR #3946 Add GNU Hurd support + - PR #3939 Solaris.build fix #3843 and #3643 + - PR #3932 Cross-compiling with ming32-w64 on Linux #3815 + - PR #3929 Fix multicast leave group + - PR #3863 testDynamicStructEmptyString always failed + - PR #3861 Do not incur insane stack limit in Foundation-ThreadPool test. + - PR #3860 Fix Aix Build + - PR #3842 hasMicrosecond is undefined + - PR #3821 chore(Net): correct spelling, remove some unused codes fix(SocketProactor): missing adding sock to read pollset fix(DialogServer): _lastCommands data race + - PR #3810 Custom rotate, archive and purge strategies for FileChannel + - PR #3749 buildwin.ps1 script error building the x64 version of Poco + - PR #3502 Add ODBC DirectExec public API + - PR #3102 Made it possible to use lowercase hex numbers, also when encoding JSON + - PR #3009 switching iPhoneSimulator arch to 64 bit -- PR #4144 add visitor pattern implementation for Poco::Dynamic::Var -- PR #3476 add separate accessors and mutators for connect, send and receive tim… -!!Bug fixes and improvements: +!!!Release 1.12.5p2 -- GH #4328 Environment::nodeId Should Throw SystemException When Node ID is 0 -- GH #4311 Canceled `Task` shouldn't start running -- GH #4310 `ActiveThread` data race -- GH #4309 `ArchiveStrategy` data race -- GH #4308 `DirectoryWatcher` data race -- GH #4307 `NotificationCenter` data race -- GH #4274 Remove VS 140, 150 Projects -- GH #4259 Progen uses wrong AdditionalOptions separator -- GH #4252 SecureSocketImpl::currentSession() always return null -- GH #4244 Poco::Data::PostgreSQL::SessionHandle::setAutoCommit(bool) should not call commit() or startTransaction() -- GH #4241 Poco::FileInputStream broken in 1.12.5 and 1.11.8. -- GH #4231 Poco::Data::PostgreSQL::SessionHandle::disconnect() leaks memory for failed connections -- GH #4207 VS170 binary names mismatch on ARM -- GH #4187 Sync 1.11.-1.12-devel(1.13) -- GH #4109 Skip reset for null Binder -- GH #4106 ODBC Binder does not retrieve proper type precision -- GH #4093 PostgreSQL get sqlcode -- GH #4028 Incompatibility with gcc 13.1 -- GH #3923 UDP Multicast : `leaveGroup()` method always throw an exception -- GH #3835 DynamicStruct::toString not wrapping empty strings -- GH #3823 Possibility of memory leak in Windows Environment nodeIdImpl? -- GH #3812 Poco::Data::Session::reconnect throw Connection in use -- GH #3704 TaskManager waits for all threads in the ThreadPool -- GH #3557 HTTPSClientSession read infinite loop on IOS -- GH #3484 Poco::MongoDB support for MongoDB 5.0? -- GH #3331 Apple Silicon ARM64 : Invalid access: Can not convert empty value. -- GH #3277 Use sendfile system call on Linux in HTTPServerResponseImpl::sendFile -- GH #3165 Can't reuse Poco::Data::Statement with a new set of bindings -- GH #2978 waitForTermination is unreliable on Linux. -- GH #2976 SharedMemoryImpl x64 size error -- GH #2965 Net fails to build with MinGW 9.20 -- GH #2634 Data race in Poco::Net::HTTPServerConnection::onServerStopped -- GH #2366 Poco::Process::launch (UNIX) - possible memory leak when launching invalid command -- GH #2332 Optimize multi-arg logger methods to only call format() if log level allows +!! Summary of Changes + + - GH #4320: Integer overflow in Poco::UTF32Encoding + + +!!!Release 1.12.5p1 + +!! Summary of Changes + + - GH #4241: Poco::FileInputStream broken in 1.12.5 and 1.11.8 -- PR #4353 Fix some issues found with clang-tidy -- PR #4345 Build.macos.openssl@1.1 -- PR #4339 Fix RemoteSyslogChannel setProperty value check -- PR #4333 enh(NumberFormatter): Introduce backward compatible options for formatHex functions -- PR #4321 Github Action for Android NDK -- PR #4319 Implementation of Path::self() -- PR #4317 enh(ci): Add ENABLE_COMPILER_WARNINGS to cmake -- PR #4306 3102 json lowercase hex -- PR #4275 fix(NetSSL_Win): Error during handshake: failed to read data -- PR #4270 SplitterChannel addChannel - Prevent Duplicate Channels -- PR #4256 Implement MySQL::SessionHandle::startTransaction as submitting the SQL statement 'BEGIN' -- PR #4223 Virtualize ServerApplication::handlePidFile() -- PR #4211 Improve FifoEvent, ActiveMethod, ActiveResult -- PR #4200 fixed infinite loops -- PR #4199 fix(Poco::Data): fixes and improvements #4198 -- PR #4190 CMake: Use CMAKE_INSTALL_* variables from GNUInstallDirs -- PR #4156 Allow passing raw fd's into ServerSocket -- PR #4138 add missing check when activerecord is enabled -- PR #4137 Fix platform when building for iPhoneSimulator -- PR #4103 Fix openssl session resumption, FTPS certificate validation vs hostname -- PR #4099 added new memeber SqlState to PostgreSQLException and made use of it. -- PR #4068 AutoPtr: do 'duplicate' before 'release' -- PR #4061 Adding API XML::AbstractContainerNode::insertAfterNP() -- PR #4025 EVPPKey constructor for modulus/exponent -- PR #4022 Make Binding and CopyBinding specializations final -- PR #4020 MongoDB: add missing name accessor to get database name. -- PR #4007 add sendfile method for streamsocket -- PR #4004 Mongodb op msg database commands fix -- PR #3989 Fix thread compilation issues on FreeBSD -- PR #3976 fix(devel): add missing 1.11 releases commits -- PR #3954 Complimentary to #3918 (std::*mutex wrapper) -- PR #3946 Add GNU Hurd support -- PR #3939 Solaris.build fix #3843 and #3643 -- PR #3932 Cross-compiling with ming32-w64 on Linux #3815 -- PR #3929 Fix multicast leave group -- PR #3863 testDynamicStructEmptyString always failed -- PR #3861 Do not incur insane stack limit in Foundation-ThreadPool test. -- PR #3860 Fix Aix Build -- PR #3842 hasMicrosecond is undefined -- PR #3821 chore(Net): correct spelling, remove some unused codes fix(SocketProactor): missing adding sock to read pollset fix(DialogServer): _lastCommands data race -- PR #3810 Custom rotate, archive and purge strategies for FileChannel -- PR #3749 buildwin.ps1 script error building the x64 version of Poco -- PR #3502 Add ODBC DirectExec public API -- PR #3102 Made it possible to use lowercase hex numbers, also when encoding JSON -- PR #3009 switching iPhoneSimulator arch to 64 bit !!!Release 1.12.5 From 02683ea7f1665b1fb1fe211b0f651072a29e74db Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Thu, 4 Jan 2024 20:34:13 +0100 Subject: [PATCH 259/395] Incorporated Debian patches (#4380) * Debian: Use null as device file as console might not be there * Debian: Add GNU Hurd support * Debian: Includes not available on Hurd * Debian: Disable SHA2 test on platforms where it's broken * Debian: Set POCO_NO_FPENVIRONMENT for armel --------- Co-authored-by: Jochen Sprickerhof --- Foundation/include/Poco/Platform.h | 5 +++ Foundation/src/Clock.cpp | 8 ++-- Foundation/src/Environment_UNIX.cpp | 48 +++++++++++++++++++++ Foundation/src/Mutex_POSIX.cpp | 4 +- Foundation/testsuite/src/FileTest.cpp | 2 +- Foundation/testsuite/src/SHA2EngineTest.cpp | 12 ++++++ 6 files changed, 72 insertions(+), 7 deletions(-) diff --git a/Foundation/include/Poco/Platform.h b/Foundation/include/Poco/Platform.h index 81c483b67..7a4e7e2fb 100644 --- a/Foundation/include/Poco/Platform.h +++ b/Foundation/include/Poco/Platform.h @@ -240,6 +240,11 @@ #endif +#ifdef __SOFTFP__ +#define POCO_NO_FPENVIRONMENT +#endif + + #if defined(__clang__) #define POCO_COMPILER_CLANG #define POCO_HAVE_CXXABI_H diff --git a/Foundation/src/Clock.cpp b/Foundation/src/Clock.cpp index 87336d1c9..3ac4d0d76 100644 --- a/Foundation/src/Clock.cpp +++ b/Foundation/src/Clock.cpp @@ -15,7 +15,7 @@ #include "Poco/Clock.h" #include "Poco/Exception.h" #include "Poco/Timestamp.h" -#if defined(__MACH__) +#if defined(__APPLE__) #include #include #elif defined(POCO_OS_FAMILY_UNIX) @@ -104,7 +104,7 @@ void Clock::update() } else throw Poco::SystemException("cannot get system clock"); -#elif defined(__MACH__) +#elif defined(__APPLE__) clock_serv_t cs; mach_timespec_t ts; @@ -155,7 +155,7 @@ Clock::ClockDiff Clock::accuracy() } else throw Poco::SystemException("cannot get system clock accuracy"); -#elif defined(__MACH__) +#elif defined(__APPLE__) clock_serv_t cs; int nanosecs; @@ -204,7 +204,7 @@ bool Clock::monotonic() return true; -#elif defined(__MACH__) +#elif defined(__APPLE__) return true; diff --git a/Foundation/src/Environment_UNIX.cpp b/Foundation/src/Environment_UNIX.cpp index bb67887c0..46990dd36 100644 --- a/Foundation/src/Environment_UNIX.cpp +++ b/Foundation/src/Environment_UNIX.cpp @@ -327,6 +327,54 @@ void EnvironmentImpl::nodeIdImpl(NodeId& id) } // namespace Poco +#elif defined(__GNU__) +// +// GNU Hurd +// +#include +#include +#include +#include + + +namespace Poco { + + +void EnvironmentImpl::nodeIdImpl(NodeId& id) +{ + std::memset(&id, 0, sizeof(id)); + struct ifreq ifr; + struct ifconf ifc; + char buf[1024]; + + int sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP); + if (sock == -1) return; + + ifc.ifc_len = sizeof(buf); + ifc.ifc_buf = buf; + if (ioctl(sock, SIOCGIFCONF, &ifc) == -1) return; + + struct ifreq* it = ifc.ifc_req; + const struct ifreq* const end = it + (ifc.ifc_len / sizeof(struct ifreq)); + + for (; it != end; ++it) { + std::strcpy(ifr.ifr_name, it->ifr_name); + if (ioctl(sock, SIOCGIFFLAGS, &ifr) == 0) { + if (! (ifr.ifr_flags & IFF_LOOPBACK)) { // don't count loopback + if (ioctl(sock, SIOCGIFHWADDR, &ifr) == 0) { + std::memcpy(&id, ifr.ifr_hwaddr.sa_data, sizeof(id)); + break; + } + } + } + else return; + } +} + + +} // namespace Poco + + #elif defined(POCO_OS_FAMILY_UNIX) // // General Unix diff --git a/Foundation/src/Mutex_POSIX.cpp b/Foundation/src/Mutex_POSIX.cpp index 56132ef5d..4661d929b 100644 --- a/Foundation/src/Mutex_POSIX.cpp +++ b/Foundation/src/Mutex_POSIX.cpp @@ -56,7 +56,7 @@ MutexImpl::MutexImpl() #endif pthread_mutexattr_t attr; pthread_mutexattr_init(&attr); -#if defined(PTHREAD_MUTEX_RECURSIVE_NP) +#if defined(PTHREAD_MUTEX_RECURSIVE_NP) && !defined(__GNU__) pthread_mutexattr_settype_np(&attr, PTHREAD_MUTEX_RECURSIVE_NP); #elif !defined(POCO_VXWORKS) pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); @@ -81,7 +81,7 @@ MutexImpl::MutexImpl(bool fast) #endif pthread_mutexattr_t attr; pthread_mutexattr_init(&attr); -#if defined(PTHREAD_MUTEX_RECURSIVE_NP) +#if defined(PTHREAD_MUTEX_RECURSIVE_NP) && !defined(__GNU__) pthread_mutexattr_settype_np(&attr, fast ? PTHREAD_MUTEX_NORMAL_NP : PTHREAD_MUTEX_RECURSIVE_NP); #elif !defined(POCO_VXWORKS) pthread_mutexattr_settype(&attr, fast ? PTHREAD_MUTEX_NORMAL : PTHREAD_MUTEX_RECURSIVE); diff --git a/Foundation/testsuite/src/FileTest.cpp b/Foundation/testsuite/src/FileTest.cpp index 5b8b996eb..c1c9673fa 100644 --- a/Foundation/testsuite/src/FileTest.cpp +++ b/Foundation/testsuite/src/FileTest.cpp @@ -229,7 +229,7 @@ void FileTest::testFileAttributes3() #if POCO_OS==POCO_OS_CYGWIN File f("/dev/tty"); #else - File f("/dev/console"); + File f("/dev/null"); #endif #elif defined(POCO_OS_FAMILY_WINDOWS) File f("CON"); diff --git a/Foundation/testsuite/src/SHA2EngineTest.cpp b/Foundation/testsuite/src/SHA2EngineTest.cpp index 0ba0c64d3..838f793ac 100644 --- a/Foundation/testsuite/src/SHA2EngineTest.cpp +++ b/Foundation/testsuite/src/SHA2EngineTest.cpp @@ -34,6 +34,9 @@ SHA2EngineTest::~SHA2EngineTest() void SHA2EngineTest::testSHA224() { +#if defined(__sparc_v9__) || defined(__ppc64__) || defined(__powerpc__) || defined(__s390x__) || defined(__hppa__) + return; +#endif SHA2Engine engine(SHA2Engine::SHA_224); engine.update(""); @@ -56,6 +59,9 @@ void SHA2EngineTest::testSHA224() void SHA2EngineTest::testSHA256() { +#if defined(__sparc_v9__) || defined(__ppc64__) || defined(__powerpc__) || defined(__s390x__) || defined(__hppa__) + return; +#endif SHA2Engine engine(SHA2Engine::SHA_256); engine.update(""); @@ -78,6 +84,9 @@ void SHA2EngineTest::testSHA256() void SHA2EngineTest::testSHA384() { +#if defined(__sparc_v9__) || defined(__ppc64__) || defined(__powerpc__) || defined(__s390x__) || defined(__hppa__) + return; +#endif SHA2Engine engine(SHA2Engine::SHA_384); engine.update(""); @@ -100,6 +109,9 @@ void SHA2EngineTest::testSHA384() void SHA2EngineTest::testSHA512() { +#if defined(__sparc_v9__) || defined(__ppc64__) || defined(__powerpc__) || defined(__s390x__) || defined(__hppa__) + return; +#endif SHA2Engine engine(SHA2Engine::SHA_512); engine.update(""); From 071de054c1a391e3186017db4058fef665a28897 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Fri, 5 Jan 2024 12:59:01 +0100 Subject: [PATCH 260/395] fix(UUID): UUID parser silently ignores too long strings #4375 (#4384) --- Foundation/src/UUID.cpp | 2 +- Foundation/testsuite/src/UUIDTest.cpp | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Foundation/src/UUID.cpp b/Foundation/src/UUID.cpp index d42494bab..885708c0a 100644 --- a/Foundation/src/UUID.cpp +++ b/Foundation/src/UUID.cpp @@ -134,7 +134,7 @@ bool UUID::tryParse(const std::string& uuid) bool haveHyphens = false; if (uuid[8] == '-' && uuid[13] == '-' && uuid[18] == '-' && uuid[23] == '-') { - if (uuid.size() >= 36) + if (uuid.size() == 36) haveHyphens = true; else return false; diff --git a/Foundation/testsuite/src/UUIDTest.cpp b/Foundation/testsuite/src/UUIDTest.cpp index 5765dc064..d83dc088d 100644 --- a/Foundation/testsuite/src/UUIDTest.cpp +++ b/Foundation/testsuite/src/UUIDTest.cpp @@ -92,6 +92,15 @@ void UUIDTest::testParse() catch (Poco::SyntaxException&) { } + + try + { + uuid.parse("495cff3a-a4b3-11ee-9e54-9cb6d0f68b51AA"); + fail("invalid UUID - must throw"); + } + catch (Poco::SyntaxException&) + { + } } From 7c8d5e2881d3bd27b63e64821240fee2c4ca41ca Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Thu, 4 Jan 2024 12:36:19 +0100 Subject: [PATCH 261/395] fix(Crypto): EVP_CIPHER_CTX_init is incorrectly defined in Envelope.cpp if it is not defined already by OpenSSL. Fixed to properly use EVP_CIPHER_CTX_reset. --- Crypto/src/Envelope.cpp | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/Crypto/src/Envelope.cpp b/Crypto/src/Envelope.cpp index c74fc25da..84d96681f 100644 --- a/Crypto/src/Envelope.cpp +++ b/Crypto/src/Envelope.cpp @@ -14,12 +14,6 @@ #include "Poco/Crypto/Envelope.h" -#if OPENSSL_VERSION_NUMBER >= 0x10100000L - #if !defined(EVP_CIPHER_CTX_init) - #define EVP_CIPHER_CTX_init(a) - #endif -#endif - namespace Poco { namespace Crypto { @@ -30,8 +24,8 @@ Envelope::Envelope(int cipherNID): _pCipher(EVP_get_cipherbynid(cipherNID)), poco_check_ptr(_pCipher); poco_check_ptr(_pCtx); #if OPENSSL_VERSION_NUMBER >= 0x10100000L - if (1 != EVP_CIPHER_CTX_init(_pCtx)) - handleErrors(std::string("Envelope():EVP_CIPHER_CTX_init()")); + if (1 != EVP_CIPHER_CTX_reset(_pCtx)) + handleErrors(std::string("Envelope():EVP_CIPHER_CTX_reset()")); #else EVP_CIPHER_CTX_init(_pCtx); #endif From 38b2f2f1a365f819f72e70f9d0330854c54224bf Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Fri, 8 Dec 2023 10:36:05 +0100 Subject: [PATCH 262/395] enh(ci): Add macos sanitizers job (#4313) --- .github/workflows/ci.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f8e615bfd..4c887d336 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -273,6 +273,30 @@ jobs: PWD=`pwd` ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" + macos-clang-cmake-openssl3-tsan: + runs-on: macos-12 + steps: + - uses: actions/checkout@v3 + - run: brew install openssl@3 + - run: CXXFLAGS=-fsanitize=thread cmake -H. -Bcmake-build -DENABLE_CPPPARSER=OFF -DENABLE_DATA_ODBC=OFF -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_MONGODB=OFF -DENABLE_PDF=OFF -DENABLE_PAGECOMPILER=OFF -DENABLE_ENCODINGS=OFF -DENABLE_REDIS=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@3 && cmake --build cmake-build --target all + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + cd cmake-build && + CPPUNIT_IGNORE=" + CppUnit::TestCaller.testTrySleep, + CppUnit::TestCaller.testTimestamp, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testPollClosedServer" + PWD=`pwd` + ctest -V + # windows-2019-msvc-cmake: # runs-on: windows-2019 # env: From 7376d1406252f3349f6dbe2f9d9118beec1c8242 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Fri, 15 Dec 2023 14:07:51 +0100 Subject: [PATCH 263/395] enh(ci): macOS thread sanitizer --- .github/workflows/ci.yml | 43 ++++++++++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4c887d336..fdd32ba05 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -273,19 +273,25 @@ jobs: PWD=`pwd` ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" - macos-clang-cmake-openssl3-tsan: + macos-clang-make-openssl3-tsan: runs-on: macos-12 steps: - uses: actions/checkout@v3 - run: brew install openssl@3 - - run: CXXFLAGS=-fsanitize=thread cmake -H. -Bcmake-build -DENABLE_CPPPARSER=OFF -DENABLE_DATA_ODBC=OFF -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_MONGODB=OFF -DENABLE_PDF=OFF -DENABLE_PAGECOMPILER=OFF -DENABLE_ENCODINGS=OFF -DENABLE_REDIS=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@3 && cmake --build cmake-build --target all + - run: >- + ./configure --everything --no-prefix --no-samples --omit=CppParser,Encodings,Data/MySQL,Data/ODBC,Data/PostgreSQL,MongoDB,PageCompiler,PDF,PocoDoc,ProGen,Redis,SevenZip + --odbc-include=/usr/local/opt/unixodbc/include --odbc-lib=/usr/local/opt/unixodbc/lib + --mysql-include=/usr/local/opt/mysql-client/include --mysql-lib=/usr/local/opt/mysql-client/lib + --include-path="/usr/local/opt/openssl@3/include" --library-path="/usr/local/opt/openssl@3/lib" && + make all -s -j4 SANITIZEFLAGS=-fsanitize=thread + - uses: ./.github/actions/retry-action with: timeout_minutes: 90 max_attempts: 3 retry_on: any command: >- - cd cmake-build && + sudo -s CPPUNIT_IGNORE=" CppUnit::TestCaller.testTrySleep, CppUnit::TestCaller.testTimestamp, @@ -293,9 +299,34 @@ jobs: CppUnit::TestCaller.testAccessExpireN, CppUnit::TestCaller.testExpireN, CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testPollClosedServer" - PWD=`pwd` - ctest -V + CppUnit::TestCaller.testPollClosedServer, + CppUnit::TestCaller.testEncryptDecryptGCM" + EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" + ./ci/runtests.sh TSAN + +# macos-clang-cmake-openssl3-tsan: +# runs-on: macos-12 +# steps: +# - uses: actions/checkout@v3 +# - run: brew install openssl@3 +# - run: CXXFLAGS=-fsanitize=thread cmake -H. -Bcmake-build -DENABLE_CPPPARSER=OFF -DENABLE_DATA_ODBC=OFF -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_MONGODB=OFF -DENABLE_PDF=OFF -DENABLE_PAGECOMPILER=OFF -DENABLE_ENCODINGS=OFF -DENABLE_REDIS=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@3 && cmake --build cmake-build --target all +# - uses: ./.github/actions/retry-action +# with: +# timeout_minutes: 90 +# max_attempts: 3 +# retry_on: any +# command: >- +# cd cmake-build && +# CPPUNIT_IGNORE=" +# CppUnit::TestCaller.testTrySleep, +# CppUnit::TestCaller.testTimestamp, +# CppUnit::TestCaller.testExpireN, +# CppUnit::TestCaller.testAccessExpireN, +# CppUnit::TestCaller.testExpireN, +# CppUnit::TestCaller.testAccessExpireN, +# CppUnit::TestCaller.testPollClosedServer" +# PWD=`pwd` +# ctest -V # windows-2019-msvc-cmake: # runs-on: windows-2019 From 9a36adb979a32ea57e0268a4826408c9304d1de1 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Fri, 15 Dec 2023 16:16:28 +0100 Subject: [PATCH 264/395] enh(ci): macOS sanitize jobs for undefined and address. --- .github/workflows/ci.yml | 84 +++++++++++++++++++++++++++++----------- 1 file changed, 61 insertions(+), 23 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fdd32ba05..36880e2fc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -304,29 +304,67 @@ jobs: EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" ./ci/runtests.sh TSAN -# macos-clang-cmake-openssl3-tsan: -# runs-on: macos-12 -# steps: -# - uses: actions/checkout@v3 -# - run: brew install openssl@3 -# - run: CXXFLAGS=-fsanitize=thread cmake -H. -Bcmake-build -DENABLE_CPPPARSER=OFF -DENABLE_DATA_ODBC=OFF -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_MONGODB=OFF -DENABLE_PDF=OFF -DENABLE_PAGECOMPILER=OFF -DENABLE_ENCODINGS=OFF -DENABLE_REDIS=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@3 && cmake --build cmake-build --target all -# - uses: ./.github/actions/retry-action -# with: -# timeout_minutes: 90 -# max_attempts: 3 -# retry_on: any -# command: >- -# cd cmake-build && -# CPPUNIT_IGNORE=" -# CppUnit::TestCaller.testTrySleep, -# CppUnit::TestCaller.testTimestamp, -# CppUnit::TestCaller.testExpireN, -# CppUnit::TestCaller.testAccessExpireN, -# CppUnit::TestCaller.testExpireN, -# CppUnit::TestCaller.testAccessExpireN, -# CppUnit::TestCaller.testPollClosedServer" -# PWD=`pwd` -# ctest -V + macos-clang-make-openssl3-ubsan: + runs-on: macos-12 + steps: + - uses: actions/checkout@v3 + - run: brew install openssl@3 mysql-client unixodbc libpq + - run: >- + ./configure --everything --no-prefix --no-samples --omit=PDF + --odbc-include=/usr/local/opt/unixodbc/include --odbc-lib=/usr/local/opt/unixodbc/lib + --mysql-include=/usr/local/opt/mysql-client/include --mysql-lib=/usr/local/opt/mysql-client/lib + --include-path="/usr/local/opt/openssl@3/include" --library-path="/usr/local/opt/openssl@3/lib" && + make all -s -j4 SANITIZEFLAGS=-fsanitize=undefined + + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + sudo -s + CPPUNIT_IGNORE=" + CppUnit::TestCaller.testTrySleep, + CppUnit::TestCaller.testTimestamp, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testPollClosedServer, + CppUnit::TestCaller.testEncryptDecryptGCM" + EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" + ./ci/runtests.sh + + macos-clang-make-openssl3-asan: + runs-on: macos-12 + steps: + - uses: actions/checkout@v3 + - run: brew install openssl@3 mysql-client unixodbc libpq + - run: >- + ./configure --everything --no-prefix --no-samples --omit=PDF + --odbc-include=/usr/local/opt/unixodbc/include --odbc-lib=/usr/local/opt/unixodbc/lib + --mysql-include=/usr/local/opt/mysql-client/include --mysql-lib=/usr/local/opt/mysql-client/lib + --include-path="/usr/local/opt/openssl@3/include" --library-path="/usr/local/opt/openssl@3/lib" && + make all -s -j4 SANITIZEFLAGS=-fsanitize=address + + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + sudo -s + CPPUNIT_IGNORE=" + CppUnit::TestCaller.testTrySleep, + CppUnit::TestCaller.testTimestamp, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testPollClosedServer, + CppUnit::TestCaller.testEncryptDecryptGCM" + EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" + ./ci/runtests.sh # windows-2019-msvc-cmake: # runs-on: windows-2019 From 287befc4a36a48dda40f41e8e9d56d07dc18ae5a Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Wed, 3 Jan 2024 19:47:57 +0100 Subject: [PATCH 265/395] fix(test): lock std:cerr to prevent data race in TCP server tests (reported by clang thread sanitizer) #4313 --- Net/testsuite/src/TCPServerTest.cpp | 7 ++++++- NetSSL_OpenSSL/testsuite/src/TCPServerTest.cpp | 7 ++++++- NetSSL_Win/testsuite/src/TCPServerTest.cpp | 5 +++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Net/testsuite/src/TCPServerTest.cpp b/Net/testsuite/src/TCPServerTest.cpp index 195b4162a..8e2dc3000 100644 --- a/Net/testsuite/src/TCPServerTest.cpp +++ b/Net/testsuite/src/TCPServerTest.cpp @@ -18,6 +18,7 @@ #include "Poco/Net/StreamSocket.h" #include "Poco/Net/ServerSocket.h" #include "Poco/Thread.h" +#include "Poco/Mutex.h" #include @@ -35,6 +36,8 @@ using Poco::Thread; namespace { + static Poco::FastMutex cerrMutex; + class EchoConnection: public TCPServerConnection { public: @@ -55,8 +58,10 @@ namespace n = ss.receiveBytes(buffer, sizeof(buffer)); } } - catch (Poco::Exception& exc) + catch (const Poco::Exception& exc) { + Poco::FastMutex::ScopedLock l(cerrMutex); + std::cerr << "EchoConnection: " << exc.displayText() << std::endl; } } diff --git a/NetSSL_OpenSSL/testsuite/src/TCPServerTest.cpp b/NetSSL_OpenSSL/testsuite/src/TCPServerTest.cpp index af98055ea..0da2367d8 100644 --- a/NetSSL_OpenSSL/testsuite/src/TCPServerTest.cpp +++ b/NetSSL_OpenSSL/testsuite/src/TCPServerTest.cpp @@ -25,6 +25,7 @@ #include "Poco/Util/Application.h" #include "Poco/Util/AbstractConfiguration.h" #include "Poco/Thread.h" +#include "Poco/Mutex.h" #include @@ -46,6 +47,8 @@ using Poco::Util::Application; namespace { + static Poco::FastMutex cerrMutex; + class EchoConnection: public TCPServerConnection { public: @@ -66,8 +69,10 @@ namespace n = ss.receiveBytes(buffer, sizeof(buffer)); } } - catch (Poco::Exception& exc) + catch (const Poco::Exception& exc) { + Poco::FastMutex::ScopedLock l(cerrMutex); + std::cerr << "EchoConnection: " << exc.displayText() << std::endl; } } diff --git a/NetSSL_Win/testsuite/src/TCPServerTest.cpp b/NetSSL_Win/testsuite/src/TCPServerTest.cpp index 75cce0dd7..950a29b4f 100644 --- a/NetSSL_Win/testsuite/src/TCPServerTest.cpp +++ b/NetSSL_Win/testsuite/src/TCPServerTest.cpp @@ -23,6 +23,7 @@ #include "Poco/Util/Application.h" #include "Poco/Util/AbstractConfiguration.h" #include "Poco/Thread.h" +#include "Poco/Mutex.h" #include @@ -44,6 +45,8 @@ using Poco::Util::Application; namespace { + static Poco::FastMutex cerrMutex; + class EchoConnection: public TCPServerConnection { public: @@ -66,6 +69,8 @@ namespace } catch (Poco::Exception& exc) { + Poco::FastMutex::ScopedLock l(cerrMutex); + std::cerr << "EchoConnection: " << exc.displayText() << std::endl; } } From 0f25b4c114f23c22681a981d8aed3464530fa6b1 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Wed, 3 Jan 2024 20:13:57 +0100 Subject: [PATCH 266/395] fix(test): Use 96-bit IV with aes-256-gcm to fix (#4347): I/O error: error:1C800066:Provider routines::cipher operation failed --- .github/workflows/ci.yml | 18 ++++++------------ Crypto/testsuite/src/CryptoTest.cpp | 11 ++++------- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 36880e2fc..8ef4fd973 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -216,8 +216,7 @@ jobs: CppUnit::TestCaller.testExpireN, CppUnit::TestCaller.testAccessExpireN, CppUnit::TestCaller.testOldBSD, - CppUnit::TestCaller.testPollClosedServer, - CppUnit::TestCaller.testEncryptDecryptGCM" + CppUnit::TestCaller.testPollClosedServer" EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" ./ci/runtests.sh @@ -242,8 +241,7 @@ jobs: CppUnit::TestCaller.testAccessExpireN, CppUnit::TestCaller.testExpireN, CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testPollClosedServer, - CppUnit::TestCaller.testEncryptDecryptGCM" + CppUnit::TestCaller.testPollClosedServer" PWD=`pwd` ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" @@ -268,8 +266,7 @@ jobs: CppUnit::TestCaller.testAccessExpireN, CppUnit::TestCaller.testExpireN, CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testPollClosedServer, - CppUnit::TestCaller.testEncryptDecryptGCM" + CppUnit::TestCaller.testPollClosedServer" PWD=`pwd` ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" @@ -299,8 +296,7 @@ jobs: CppUnit::TestCaller.testAccessExpireN, CppUnit::TestCaller.testExpireN, CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testPollClosedServer, - CppUnit::TestCaller.testEncryptDecryptGCM" + CppUnit::TestCaller.testPollClosedServer" EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" ./ci/runtests.sh TSAN @@ -330,8 +326,7 @@ jobs: CppUnit::TestCaller.testAccessExpireN, CppUnit::TestCaller.testExpireN, CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testPollClosedServer, - CppUnit::TestCaller.testEncryptDecryptGCM" + CppUnit::TestCaller.testPollClosedServer" EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" ./ci/runtests.sh @@ -361,8 +356,7 @@ jobs: CppUnit::TestCaller.testAccessExpireN, CppUnit::TestCaller.testExpireN, CppUnit::TestCaller.testAccessExpireN, - CppUnit::TestCaller.testPollClosedServer, - CppUnit::TestCaller.testEncryptDecryptGCM" + CppUnit::TestCaller.testPollClosedServer" EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" ./ci/runtests.sh diff --git a/Crypto/testsuite/src/CryptoTest.cpp b/Crypto/testsuite/src/CryptoTest.cpp index 6aa9a1f8d..214395b9b 100644 --- a/Crypto/testsuite/src/CryptoTest.cpp +++ b/Crypto/testsuite/src/CryptoTest.cpp @@ -212,15 +212,12 @@ void CryptoTest::testEncryptDecryptDESECB() void CryptoTest::testEncryptDecryptGCM() { - // - // The test sometimes fails when it is running for longer time - // This conversation perhaps contains a hint: - // https://github.com/openssl/openssl/issues/21119 - // - CipherKey key("aes-256-gcm"); - CipherKey::ByteVec iv(20, 213); + // 96-bit (12 byte) IV is recommended for usage with GCM. + // https://crypto.stackexchange.com/questions/41601/aes-gcm-recommended-iv-size-why-12-bytes + + CipherKey::ByteVec iv(12, 213); key.setIV(iv); Cipher::Ptr pCipher = CipherFactory::defaultFactory().createCipher(key); From 233c1f771f4cc9d05183702b84c8431b233e7f6f Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Sun, 14 Jan 2024 22:03:37 +0100 Subject: [PATCH 267/395] mingw compile and link improvements (#4019) (#4391) * fix(platform): MinGW Compile and link errors: undefined reference to `WinMain' * fix(platform): MinGW compile UUID tests (conflicting UUID defined as GUID in rpcdce.h via windows.h) --- Foundation/src/Environment_WIN32U.cpp | 1 + .../testsuite/src/UUIDGeneratorTest.cpp | 31 +++++----- Foundation/testsuite/src/UUIDTest.cpp | 56 +++++++++---------- Util/include/Poco/Util/Application.h | 3 +- Util/testsuite/src/WinConfigurationTest.cpp | 2 +- cmake/DefinePlatformSpecifc.cmake | 4 -- 6 files changed, 45 insertions(+), 52 deletions(-) diff --git a/Foundation/src/Environment_WIN32U.cpp b/Foundation/src/Environment_WIN32U.cpp index e561f0668..f12658c1c 100644 --- a/Foundation/src/Environment_WIN32U.cpp +++ b/Foundation/src/Environment_WIN32U.cpp @@ -18,6 +18,7 @@ #include "Poco/Buffer.h" #include #include +#include #include "Poco/UnWindows.h" #include #include diff --git a/Foundation/testsuite/src/UUIDGeneratorTest.cpp b/Foundation/testsuite/src/UUIDGeneratorTest.cpp index 6c3680b30..513de8821 100644 --- a/Foundation/testsuite/src/UUIDGeneratorTest.cpp +++ b/Foundation/testsuite/src/UUIDGeneratorTest.cpp @@ -18,7 +18,6 @@ using Poco::UUIDGenerator; -using Poco::UUID; UUIDGeneratorTest::UUIDGeneratorTest(const std::string& name): CppUnit::TestCase(name) @@ -35,11 +34,11 @@ void UUIDGeneratorTest::testTimeBased() { UUIDGenerator& gen = UUIDGenerator::defaultGenerator(); - std::set uuids; + std::set uuids; for (int i = 0; i < 1000; ++i) { - UUID uuid = gen.create(); - assertTrue (uuid.version() == UUID::UUID_TIME_BASED); + Poco::UUID uuid = gen.create(); + assertTrue (uuid.version() == Poco::UUID::UUID_TIME_BASED); assertTrue (uuids.find(uuid) == uuids.end()); uuids.insert(uuid); } @@ -50,11 +49,11 @@ void UUIDGeneratorTest::testRandom() { UUIDGenerator& gen = UUIDGenerator::defaultGenerator(); - std::set uuids; + std::set uuids; for (int i = 0; i < 1000; ++i) { - UUID uuid = gen.createRandom(); - assertTrue (uuid.version() == UUID::UUID_RANDOM); + Poco::UUID uuid = gen.createRandom(); + assertTrue (uuid.version() == Poco::UUID::UUID_RANDOM); assertTrue (uuids.find(uuid) == uuids.end()); uuids.insert(uuid); } @@ -65,28 +64,28 @@ void UUIDGeneratorTest::testNameBased() { UUIDGenerator& gen = UUIDGenerator::defaultGenerator(); - UUID uuid1 = gen.createFromName(UUID::uri(), "http://www.appinf.com/uuid"); - assertTrue (uuid1.version() == UUID::UUID_NAME_BASED); + Poco::UUID uuid1 = gen.createFromName(Poco::UUID::uri(), "http://www.appinf.com/uuid"); + assertTrue (uuid1.version() == Poco::UUID::UUID_NAME_BASED); assertTrue (uuid1.variant() == 2); - UUID uuid2 = gen.createFromName(UUID::uri(), "http://www.appinf.com/uuid2"); + Poco::UUID uuid2 = gen.createFromName(Poco::UUID::uri(), "http://www.appinf.com/uuid2"); assertTrue (uuid2 != uuid1); - UUID uuid3 = gen.createFromName(UUID::dns(), "www.appinf.com"); + Poco::UUID uuid3 = gen.createFromName(Poco::UUID::dns(), "www.appinf.com"); assertTrue (uuid3 != uuid1); - UUID uuid4 = gen.createFromName(UUID::oid(), "1.3.6.1.4.1"); + Poco::UUID uuid4 = gen.createFromName(Poco::UUID::oid(), "1.3.6.1.4.1"); assertTrue (uuid4 != uuid1); - UUID uuid5 = gen.createFromName(UUID::x500(), "cn=Guenter Obiltschnig, ou=People, o=Applied Informatics, c=at"); + Poco::UUID uuid5 = gen.createFromName(Poco::UUID::x500(), "cn=Guenter Obiltschnig, ou=People, o=Applied Informatics, c=at"); assertTrue (uuid5 != uuid1); - UUID uuid6 = gen.createFromName(UUID::uri(), "http://www.appinf.com/uuid"); + Poco::UUID uuid6 = gen.createFromName(Poco::UUID::uri(), "http://www.appinf.com/uuid"); assertTrue (uuid6 == uuid1); Poco::SHA1Engine sha1; - UUID uuid7 = gen.createFromName(UUID::uri(), "http://www.appinf.com/uuid", sha1); - assertTrue (uuid7.version() == UUID::UUID_NAME_BASED_SHA1); + Poco::UUID uuid7 = gen.createFromName(Poco::UUID::uri(), "http://www.appinf.com/uuid", sha1); + assertTrue (uuid7.version() == Poco::UUID::UUID_NAME_BASED_SHA1); assertTrue (uuid7.variant() == 2); assertTrue (uuid7 != uuid1); } diff --git a/Foundation/testsuite/src/UUIDTest.cpp b/Foundation/testsuite/src/UUIDTest.cpp index d83dc088d..52ec13c5b 100644 --- a/Foundation/testsuite/src/UUIDTest.cpp +++ b/Foundation/testsuite/src/UUIDTest.cpp @@ -14,10 +14,6 @@ #include "Poco/UUID.h" #include "Poco/Exception.h" - -using Poco::UUID; - - UUIDTest::UUIDTest(const std::string& name): CppUnit::TestCase(name) { } @@ -30,7 +26,7 @@ UUIDTest::~UUIDTest() void UUIDTest::testParse() { - UUID uuid("6ba7b810-9dad-11d1-80b4-00c04fd430c8"); + Poco::UUID uuid("6ba7b810-9dad-11d1-80b4-00c04fd430c8"); assertTrue (uuid.toString() == "6ba7b810-9dad-11d1-80b4-00c04fd430c8"); uuid.parse("6BA7B810-9DAD-11D1-80B4-00C04FD430C8"); @@ -42,7 +38,7 @@ void UUIDTest::testParse() try { uuid.parse("6xA7B8109DAD11D180B400C04FD430C8"); - fail("invalid UUID - must throw"); + fail("invalid Poco::UUID - must throw"); } catch (Poco::SyntaxException&) { @@ -51,7 +47,7 @@ void UUIDTest::testParse() try { uuid.parse("6xa7b810-9dad-11d1-80b4-00c04fd430c8"); - fail("invalid UUID - must throw"); + fail("invalid Poco::UUID - must throw"); } catch (Poco::SyntaxException&) { @@ -60,7 +56,7 @@ void UUIDTest::testParse() try { uuid.parse("6ba7b810-xdad-11d1-80b4-00c04fd430c8"); - fail("invalid UUID - must throw"); + fail("invalid Poco::UUID - must throw"); } catch (Poco::SyntaxException&) { @@ -69,7 +65,7 @@ void UUIDTest::testParse() try { uuid.parse("6ba7b810-9dad-x1d1-80b4-00c04fd430c8"); - fail("invalid UUID - must throw"); + fail("invalid Poco::UUID - must throw"); } catch (Poco::SyntaxException&) { @@ -78,7 +74,7 @@ void UUIDTest::testParse() try { uuid.parse("6ba7b810-9dad-11d1-x0b4-00c04fd430c8"); - fail("invalid UUID - must throw"); + fail("invalid Poco::UUID - must throw"); } catch (Poco::SyntaxException&) { @@ -87,7 +83,7 @@ void UUIDTest::testParse() try { uuid.parse("6ba7b810-9dad-11d1-80b4-00x04fd430c8"); - fail("invalid UUID - must throw"); + fail("invalid Poco::UUID - must throw"); } catch (Poco::SyntaxException&) { @@ -96,7 +92,7 @@ void UUIDTest::testParse() try { uuid.parse("495cff3a-a4b3-11ee-9e54-9cb6d0f68b51AA"); - fail("invalid UUID - must throw"); + fail("invalid Poco::UUID - must throw"); } catch (Poco::SyntaxException&) { @@ -106,10 +102,10 @@ void UUIDTest::testParse() void UUIDTest::testBuffer() { - UUID uuid("6ba7b810-9dad-11d1-80b4-00c04fd430c8"); + Poco::UUID uuid("6ba7b810-9dad-11d1-80b4-00c04fd430c8"); char buffer[16]; uuid.copyTo(buffer); - UUID uuid2; + Poco::UUID uuid2; uuid2.copyFrom(buffer); assertTrue (uuid2.toString() == "6ba7b810-9dad-11d1-80b4-00c04fd430c8"); } @@ -117,12 +113,12 @@ void UUIDTest::testBuffer() void UUIDTest::testCompare() { - UUID null; + Poco::UUID null; assertTrue (null.isNull()); - assertTrue (UUID::null().isNull()); + assertTrue (Poco::UUID::null().isNull()); - UUID uuid1 = null; - UUID uuid2; + Poco::UUID uuid1 = null; + Poco::UUID uuid2; assertTrue (uuid1.isNull()); assertTrue (uuid1 == null); assertTrue (!(uuid1 != null)); @@ -132,7 +128,7 @@ void UUIDTest::testCompare() assertTrue (!(uuid1 < null)); assertTrue (uuid1.toString() == "00000000-0000-0000-0000-000000000000"); - uuid1 = UUID::dns(); + uuid1 = Poco::UUID::dns(); assertTrue (!uuid1.isNull()); assertTrue (uuid1 != null); assertTrue (!(uuid1 == null)); @@ -161,27 +157,27 @@ void UUIDTest::testCompare() void UUIDTest::testVersion() { - UUID uuid("db4fa7e9-9e62-4597-99e0-b1ec0b59800e"); - UUID::Version v = uuid.version(); - assertTrue (v == UUID::UUID_RANDOM); + Poco::UUID uuid("db4fa7e9-9e62-4597-99e0-b1ec0b59800e"); + Poco::UUID::Version v = uuid.version(); + assertTrue (v == Poco::UUID::UUID_RANDOM); uuid.parse("6ba7b810-9dad-11d1-80b4-00c04fd430c8"); v = uuid.version(); - assertTrue (v == UUID::UUID_TIME_BASED); + assertTrue (v == Poco::UUID::UUID_TIME_BASED); uuid.parse("d2ee4220-3625-11d9-9669-0800200c9a66"); v = uuid.version(); - assertTrue (v == UUID::UUID_TIME_BASED); + assertTrue (v == Poco::UUID::UUID_TIME_BASED); uuid.parse("360d3652-4411-4786-bbe6-b9675b548559"); v = uuid.version(); - assertTrue (v == UUID::UUID_RANDOM); + assertTrue (v == Poco::UUID::UUID_RANDOM); } void UUIDTest::testVariant() { - UUID uuid("db4fa7e9-9e62-4597-99e0-b1ec0b59800e"); + Poco::UUID uuid("db4fa7e9-9e62-4597-99e0-b1ec0b59800e"); int v = uuid.variant(); assertTrue (v == 2); @@ -201,8 +197,8 @@ void UUIDTest::testVariant() void UUIDTest::testSwap() { - UUID uuid1("db4fa7e9-9e62-4597-99e0-b1ec0b59800e"); - UUID uuid2("d2ee4220-3625-11d9-9669-0800200c9a66"); + Poco::UUID uuid1("db4fa7e9-9e62-4597-99e0-b1ec0b59800e"); + Poco::UUID uuid2("d2ee4220-3625-11d9-9669-0800200c9a66"); uuid1.swap(uuid2); assertTrue (uuid1.toString() == "d2ee4220-3625-11d9-9669-0800200c9a66"); assertTrue (uuid2.toString() == "db4fa7e9-9e62-4597-99e0-b1ec0b59800e"); @@ -210,11 +206,11 @@ void UUIDTest::testSwap() void UUIDTest::testTryParse() { - UUID uuid; + Poco::UUID uuid; assertTrue (uuid.tryParse("6BA7B810-9DAD-11D1-80B4-00C04FD430C8")); assertTrue (uuid.toString() == "6ba7b810-9dad-11d1-80b4-00c04fd430c8"); - UUID notUuid; + Poco::UUID notUuid; assertTrue (!notUuid.tryParse("not a uuid")); assertTrue (notUuid.isNull()); } diff --git a/Util/include/Poco/Util/Application.h b/Util/include/Poco/Util/Application.h index 5d4f518a5..fb0476203 100644 --- a/Util/include/Poco/Util/Application.h +++ b/Util/include/Poco/Util/Application.h @@ -504,7 +504,8 @@ inline Poco::Timespan Application::uptime() const // // Macro to implement main() // -#if defined(_WIN32) + +#if defined(_WIN32) && !defined(POCO_COMPILER_MINGW) #define POCO_APP_MAIN(App) \ int wmain(int argc, wchar_t** argv) \ { \ diff --git a/Util/testsuite/src/WinConfigurationTest.cpp b/Util/testsuite/src/WinConfigurationTest.cpp index 078520f06..6404b758c 100644 --- a/Util/testsuite/src/WinConfigurationTest.cpp +++ b/Util/testsuite/src/WinConfigurationTest.cpp @@ -15,7 +15,7 @@ #include "Poco/Util/WinRegistryKey.h" #include "Poco/Environment.h" #include "Poco/AutoPtr.h" -#include "Poco/types.h" +#include "Poco/Types.h" #undef min #undef max #include diff --git a/cmake/DefinePlatformSpecifc.cmake b/cmake/DefinePlatformSpecifc.cmake index 06a80accf..1b09993b0 100644 --- a/cmake/DefinePlatformSpecifc.cmake +++ b/cmake/DefinePlatformSpecifc.cmake @@ -49,10 +49,6 @@ else(MSVC) set(STATIC_POSTFIX "" CACHE STRING "Set static library postfix" FORCE) endif(MSVC) -if(MINGW) - add_link_options("-municode") -endif() - if (ENABLE_COMPILER_WARNINGS) message(STATUS "Enabling additional compiler warning flags.") # Additional compiler-specific warning flags From bbd07b6cb712bf7eaf7390ca6ac0c5cf922ea2a3 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Mon, 8 Jan 2024 11:19:37 +0100 Subject: [PATCH 268/395] enh(DateTimeParser): option to cleanup input string before parsing (#569). --- Foundation/include/Poco/DateTimeParser.h | 6 +++++ Foundation/src/DateTimeParser.cpp | 16 ++++++++--- .../testsuite/src/DateTimeParserTest.cpp | 27 +++++++++++++++++-- Foundation/testsuite/src/DateTimeParserTest.h | 1 + 4 files changed, 45 insertions(+), 5 deletions(-) diff --git a/Foundation/include/Poco/DateTimeParser.h b/Foundation/include/Poco/DateTimeParser.h index 5fa4d36d0..2d1882d83 100644 --- a/Foundation/include/Poco/DateTimeParser.h +++ b/Foundation/include/Poco/DateTimeParser.h @@ -59,24 +59,28 @@ class Foundation_API DateTimeParser public: static void parse(const std::string& fmt, const std::string& str, DateTime& dateTime, int& timeZoneDifferential); /// Parses a date and time in the given format from the given string. + /// Performs cleanup of the input string (trims spaces). /// Throws a SyntaxException if the string cannot be successfully parsed. /// Please see DateTimeFormatter::format() for a description of the format string. /// Class DateTimeFormat defines format strings for various standard date/time formats. static DateTime parse(const std::string& fmt, const std::string& str, int& timeZoneDifferential); /// Parses a date and time in the given format from the given string. + /// Performs cleanup of the input string (trims spaces). /// Throws a SyntaxException if the string cannot be successfully parsed. /// Please see DateTimeFormatter::format() for a description of the format string. /// Class DateTimeFormat defines format strings for various standard date/time formats. static bool tryParse(const std::string& fmt, const std::string& str, DateTime& dateTime, int& timeZoneDifferential); /// Parses a date and time in the given format from the given string. + /// Performs cleanup of the input string (trims spaces). /// Returns true if the string has been successfully parsed, false otherwise. /// Please see DateTimeFormatter::format() for a description of the format string. /// Class DateTimeFormat defines format strings for various standard date/time formats. static void parse(const std::string& str, DateTime& dateTime, int& timeZoneDifferential); /// Parses a date and time from the given dateTime string. Before parsing, the method + /// performs cleanup of the input string (trims spaces) when cleanup is true and /// examines the dateTime string for a known date/time format. /// Throws a SyntaxException if the string cannot be successfully parsed. /// Please see DateTimeFormatter::format() for a description of the format string. @@ -84,12 +88,14 @@ public: static DateTime parse(const std::string& str, int& timeZoneDifferential); /// Parses a date and time from the given dateTime string. Before parsing, the method + /// performs cleanup of the input string (trims spaces) and /// examines the dateTime string for a known date/time format. /// Please see DateTimeFormatter::format() for a description of the format string. /// Class DateTimeFormat defines format strings for various standard date/time formats. static bool tryParse(const std::string& str, DateTime& dateTime, int& timeZoneDifferential); /// Parses a date and time from the given dateTime string. Before parsing, the method + /// performs cleanup of the input string (trims spaces) and /// examines the dateTime string for a known date/time format. /// Please see DateTimeFormatter::format() for a description of the format string. /// Class DateTimeFormat defines format strings for various standard date/time formats. diff --git a/Foundation/src/DateTimeParser.cpp b/Foundation/src/DateTimeParser.cpp index 383f85c8d..9eb85f8c2 100644 --- a/Foundation/src/DateTimeParser.cpp +++ b/Foundation/src/DateTimeParser.cpp @@ -17,6 +17,7 @@ #include "Poco/DateTime.h" #include "Poco/Exception.h" #include "Poco/Ascii.h" +#include "Poco/String.h" namespace Poco { @@ -42,10 +43,17 @@ namespace Poco { { int i = 0; while (i < n && it != end && Ascii::isDigit(*it)) { var = var*10 + ((*it++) - '0'); i++; } while (i++ < n) var *= 10; } -void DateTimeParser::parse(const std::string& fmt, const std::string& str, DateTime& dateTime, int& timeZoneDifferential) +inline std::string cleanedInputString(const std::string& str) { + return Poco::trim(str); +} + +void DateTimeParser::parse(const std::string& fmt, const std::string& dtStr, DateTime& dateTime, int& timeZoneDifferential) +{ + const auto str = cleanedInputString(dtStr); + if (fmt.empty() || str.empty() || (DateTimeFormat::hasFormat(fmt) && !DateTimeFormat::isValid(str))) - throw SyntaxException("Invalid DateTimeString:" + str); + throw SyntaxException("Invalid DateTimeString:" + dtStr); int year = 0; int month = 0; @@ -223,8 +231,10 @@ DateTime DateTimeParser::parse(const std::string& str, int& timeZoneDifferential } -bool DateTimeParser::tryParse(const std::string& str, DateTime& dateTime, int& timeZoneDifferential) +bool DateTimeParser::tryParse(const std::string& dtStr, DateTime& dateTime, int& timeZoneDifferential) { + const auto str = cleanedInputString(dtStr); + if (str.length() < 4) return false; if (str[3] == ',') diff --git a/Foundation/testsuite/src/DateTimeParserTest.cpp b/Foundation/testsuite/src/DateTimeParserTest.cpp index a6d6aba3b..8bae2bd74 100644 --- a/Foundation/testsuite/src/DateTimeParserTest.cpp +++ b/Foundation/testsuite/src/DateTimeParserTest.cpp @@ -751,6 +751,28 @@ void DateTimeParserTest::testGuess() assertTrue (tzd == 0); } +void DateTimeParserTest::testCleanup() +{ + int tzd; + + DateTime dt = DateTimeParser::parse("2005-01-08T12:30:00Z", tzd); + DateTime dt2 = DateTimeParser::parse(" 2005-01-08T12:30:00Z ", tzd); + + assertTrue (dt == dt2); + + assertTrue(DateTimeParser::tryParse(" 2005-01-08T12:30:00Z ", dt, tzd)); + + dt = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00.1Z", tzd); + dt2 = DateTimeParser::parse(DateTimeFormat::ISO8601_FRAC_FORMAT, "2005-01-08T12:30:00.1Z ", tzd); + + assertTrue (dt == dt2); + + assertTrue(DateTimeParser::tryParse(DateTimeFormat::ISO8601_FRAC_FORMAT, " 2005-01-08T12:30:00Z ", dt, tzd)); + + assertFalse(DateTimeParser::tryParse(DateTimeFormat::ISO8601_FRAC_FORMAT, " ", dt, tzd)); + +} + void DateTimeParserTest::testParseMonth() { @@ -790,7 +812,7 @@ void DateTimeParserTest::testParseMonth() month = DateTimeParser::parseMonth(it, str.end()); fail("Not a valid month name - must throw"); } - catch (SyntaxException&) + catch (const SyntaxException&) { } } @@ -834,7 +856,7 @@ void DateTimeParserTest::testParseDayOfWeek() dow = DateTimeParser::parseDayOfWeek(it, str.end()); fail("Not a valid weekday name - must throw"); } - catch (SyntaxException&) + catch (const SyntaxException&) { } } @@ -877,6 +899,7 @@ CppUnit::Test* DateTimeParserTest::suite() CppUnit_addTest(pSuite, DateTimeParserTest, testSORTABLE); CppUnit_addTest(pSuite, DateTimeParserTest, testCustom); CppUnit_addTest(pSuite, DateTimeParserTest, testGuess); + CppUnit_addTest(pSuite, DateTimeParserTest, testCleanup); CppUnit_addTest(pSuite, DateTimeParserTest, testParseMonth); CppUnit_addTest(pSuite, DateTimeParserTest, testParseDayOfWeek); diff --git a/Foundation/testsuite/src/DateTimeParserTest.h b/Foundation/testsuite/src/DateTimeParserTest.h index ea0b83e90..f25416971 100644 --- a/Foundation/testsuite/src/DateTimeParserTest.h +++ b/Foundation/testsuite/src/DateTimeParserTest.h @@ -35,6 +35,7 @@ public: void testSORTABLE(); void testCustom(); void testGuess(); + void testCleanup(); void testParseMonth(); void testParseDayOfWeek(); From 64dbfab0fa3583c3025d1067540018a8093d65b3 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Tue, 16 Jan 2024 00:03:33 +0100 Subject: [PATCH 269/395] 4398 dont install cppunit (#4399) * chore(SingleSocketPoller): spelling * fix(CppUnit): do not install #4398 * fix(DataTest): do not install #4398 --- CppUnit/CMakeLists.txt | 3 --- Data/testsuite/DataTest/CMakeLists.txt | 3 --- Net/include/Poco/Net/SingleSocketPoller.h | 2 +- 3 files changed, 1 insertion(+), 7 deletions(-) diff --git a/CppUnit/CMakeLists.txt b/CppUnit/CMakeLists.txt index 8a9badec2..78b89d442 100644 --- a/CppUnit/CMakeLists.txt +++ b/CppUnit/CMakeLists.txt @@ -38,6 +38,3 @@ elseif(MINGW) PUBLIC _DLL) endif() - -POCO_INSTALL(CppUnit) -POCO_GENERATE_PACKAGE(CppUnit) diff --git a/Data/testsuite/DataTest/CMakeLists.txt b/Data/testsuite/DataTest/CMakeLists.txt index 13f93a6ec..0c04376c1 100644 --- a/Data/testsuite/DataTest/CMakeLists.txt +++ b/Data/testsuite/DataTest/CMakeLists.txt @@ -29,6 +29,3 @@ target_include_directories(DataTest $ $ ) - -POCO_INSTALL(DataTest) -POCO_GENERATE_PACKAGE(DataTest) diff --git a/Net/include/Poco/Net/SingleSocketPoller.h b/Net/include/Poco/Net/SingleSocketPoller.h index a767f368a..be200c157 100644 --- a/Net/include/Poco/Net/SingleSocketPoller.h +++ b/Net/include/Poco/Net/SingleSocketPoller.h @@ -86,7 +86,7 @@ public: } bool done() const - /// Returns tru if handler is done. + /// Returns true if handler is done. { return _reader.handlerDone(); } From 3002777115f7deab41b93a22e907cf6f1ec846c3 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Mon, 15 Jan 2024 11:16:20 +0100 Subject: [PATCH 270/395] fix(MailMessage): Compare lowercase content disposition headers when reading parts (#3650). --- Net/src/MailMessage.cpp | 6 +- Net/testsuite/src/MailMessageTest.cpp | 96 +++++++++++++-------------- Net/testsuite/src/MailMessageTest.h | 2 +- 3 files changed, 52 insertions(+), 52 deletions(-) diff --git a/Net/src/MailMessage.cpp b/Net/src/MailMessage.cpp index 113335a8a..f55cabeeb 100644 --- a/Net/src/MailMessage.cpp +++ b/Net/src/MailMessage.cpp @@ -104,9 +104,13 @@ namespace NameValueCollection::ConstIterator it = header.begin(); NameValueCollection::ConstIterator end = header.end(); bool added = false; + + static const auto lcContentDisposition = Poco::toLower(MailMessage::HEADER_CONTENT_DISPOSITION); + for (; it != end; ++it) { - if (!added && MailMessage::HEADER_CONTENT_DISPOSITION == it->first) + const auto lcHdr = Poco::toLower(it->first); + if (!added && lcContentDisposition == lcHdr) { if (it->second == "inline") _pMsg->addContent(pPS, cte); diff --git a/Net/testsuite/src/MailMessageTest.cpp b/Net/testsuite/src/MailMessageTest.cpp index 81b236a21..f21846be7 100644 --- a/Net/testsuite/src/MailMessageTest.cpp +++ b/Net/testsuite/src/MailMessageTest.cpp @@ -368,55 +368,6 @@ void MailMessageTest::testReadDefaultTransferEncoding() } -void MailMessageTest::testContentDisposition() -{ - /* - // see https://github.com/pocoproject/poco/issues/3650 - // Note "Content-disposition" casing, - // "Content-type" or "Content-transfer-encoding" do not cause problem - auto rawMessage = - "Date: Wed, 29 Jun 2022 08:25:48 GMT" "\r\n" - "Content-Type: multipart/mixed; boundary=MIME_boundary_5DBC66DE2780DE93" "\r\n" - "From: mySenderName" "\r\n" - "Subject: mySubjct" "\r\n" - "To: " "\r\n" - "Mime-Version: 1.0" "\r\n" - "\r\n" - "--MIME_boundary_5DBC66DE2780DE93" "\r\n" - "Content-Type: text/plain; charset=UTF-8" "\r\n" - "Content-Transfer-Encoding: quoted-printable" "\r\n" - "Content-Disposition: inline" "\r\n" - "\r\n" - "MyRealContent" "\r\n" - "--MIME_boundary_5DBC66DE2780DE93" "\r\n" - "Content-Type: text/plain; name=Plik" "\r\n" - "Content-Transfer-Encoding: base64" "\r\n" - "Content-disposition: attachment; filename=attachment.txt" "\r\n" - "\r\n" - "TXlBdHRhY2htZW50" "\r\n" - "--MIME_boundary_5DBC66DE2780DE93--" "\r\n" - "." "\r\n"; - - Poco::Net::MailMessage message; - //Convert raw message to message - std::istringstream is(rawMessage); - MailInputStream mis(is); - message.read(mis); - - //get raw message again: - std::ostringstream oss; - MailOutputStream mos(oss); - message.write(mos); - mos.close(); - auto plainMessage = oss.str(); - - assertEqual(rawMessage, plainMessage); - - //std::cout << plain_message <\r\n" + "\r\n" + "\r\n" + "--MIME_boundary_01234567\r\n" + "content-disposition: inline\r\n" + "Content-type: text/plain\r\n" + "\r\n" + "Hello World!\r\n" + "\r\n" + "--MIME_boundary_01234567\r\n" + "Content-DISposition: attachment; filename=sample.dat\r\n" + "content-Transfer-encodING: base64\r\n" + "Content-Type: application/octet-stream; name=sample\r\n" + "\r\n" + "VGhpcyBpcyBzb21lIGJpbmFyeSBkYXRhLiBSZWFsbHku\r\n" + "--MIME_boundary_01234567--\r\n" + ); + + MailMessage message; + MailInputStream mis(istr); + message.read(mis); + + assertTrue (message.isMultipart()); + assertTrue (message.parts().size() == 2); + assertTrue (message.get(MailMessage::HEADER_CONTENT_TYPE) == "multipart/mixed; boundary=MIME_boundary_01234567"); + + assertTrue (message.parts()[0].encoding == MailMessage::ContentTransferEncoding::ENCODING_7BIT); + assertTrue (message.parts()[0].disposition == MailMessage::ContentDisposition::CONTENT_INLINE); + assertTrue (message.parts()[0].pSource->headers().get(MailMessage::HEADER_CONTENT_TYPE) == "text/plain"); + + assertTrue (message.parts()[1].encoding == MailMessage::ContentTransferEncoding::ENCODING_BASE64); + assertTrue (message.parts()[1].disposition == MailMessage::ContentDisposition::CONTENT_ATTACHMENT); + assertTrue (message.parts()[1].pSource->filename() == "sample.dat"); + assertTrue (message.parts()[1].pSource->headers().get(MailMessage::HEADER_CONTENT_TYPE) == "application/octet-stream; name=sample"); +} + + void MailMessageTest::testReadMultiPartNoFinalBoundaryFromFile() { std::string data( @@ -758,10 +754,10 @@ CppUnit::Test* MailMessageTest::suite() CppUnit_addTest(pSuite, MailMessageTest, testWriteMultiPart); CppUnit_addTest(pSuite, MailMessageTest, testReadQP); CppUnit_addTest(pSuite, MailMessageTest, testReadDefaultTransferEncoding); - CppUnit_addTest(pSuite, MailMessageTest, testContentDisposition); CppUnit_addTest(pSuite, MailMessageTest, testRead8Bit); CppUnit_addTest(pSuite, MailMessageTest, testReadMultiPart); CppUnit_addTest(pSuite, MailMessageTest, testReadMultiPartDefaultTransferEncoding); + CppUnit_addTest(pSuite, MailMessageTest, testReadMultiPartMixedCaseHeaders); CppUnit_addTest(pSuite, MailMessageTest, testReadMultiPartNoFinalBoundaryFromFile); CppUnit_addTest(pSuite, MailMessageTest, testReadWriteMultiPart); CppUnit_addTest(pSuite, MailMessageTest, testReadWriteMultiPartStore); diff --git a/Net/testsuite/src/MailMessageTest.h b/Net/testsuite/src/MailMessageTest.h index e99fe5ef5..14124dd22 100644 --- a/Net/testsuite/src/MailMessageTest.h +++ b/Net/testsuite/src/MailMessageTest.h @@ -32,12 +32,12 @@ public: void testReadWriteMultiPart(); void testReadWriteMultiPartStore(); void testReadDefaultTransferEncoding(); - void testContentDisposition(); void testReadQP(); void testRead8Bit(); void testReadMultiPart(); void testReadMultiPartWithAttachmentNames(); void testReadMultiPartDefaultTransferEncoding(); + void testReadMultiPartMixedCaseHeaders(); void testReadMultiPartNoFinalBoundaryFromFile(); void testEncodeWord(); From 9f4b1b7df40e852577e274d382c24fbf76599482 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Tue, 16 Jan 2024 10:42:54 +0100 Subject: [PATCH 271/395] chore(cmake): CppUnit Foundation dependency documentation; fix indentation --- CMakeLists.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6695eca4b..460e5ae43 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,10 +23,10 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) # Reset output dirs for multi-config builds foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES}) - string(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG) - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/bin) - set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/lib) - set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/lib) + string(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/bin) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/lib) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_BINARY_DIR}/lib) endforeach(OUTPUTCONFIG) # Append our module directory to CMake @@ -172,7 +172,7 @@ else() endif() # Allow enabling and disabling components -option(ENABLE_FOUNDATION "Enable Foundation, required by all components except CppUnit" ON) +option(ENABLE_FOUNDATION "Enable Foundation" ON) option(ENABLE_ENCODINGS "Enable Encodings" ON) option(ENABLE_ENCODINGS_COMPILER "Enable Encodings Compiler" OFF) option(ENABLE_XML "Enable XML" ON) From b0dc9c5a822f1da7c7d43bf7fa5cf726fc5667b7 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Wed, 17 Jan 2024 09:20:20 +0100 Subject: [PATCH 272/395] fix(SocketReactorTest): deadlock test intermittently hangs #4400 (#4401) --- Net/src/SocketReactor.cpp | 4 ++-- Net/testsuite/src/SocketReactorTest.cpp | 12 +++++++----- cppignore.win | 3 +-- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Net/src/SocketReactor.cpp b/Net/src/SocketReactor.cpp index 32700ee37..2815d0789 100644 --- a/Net/src/SocketReactor.cpp +++ b/Net/src/SocketReactor.cpp @@ -27,7 +27,7 @@ namespace Poco { namespace Net { -SocketReactor::SocketReactor(): +SocketReactor::SocketReactor(): _threadAffinity(-1), _stop(false), _pReadableNotification(new ReadableNotification(this)), _pWritableNotification(new WritableNotification(this)), @@ -86,6 +86,7 @@ void SocketReactor::run() if (hasSocketHandlers()) { sm = _pollSet.poll(_params.pollTimeout); + if (_stop) break; for (const auto& s : sm) { try @@ -167,7 +168,6 @@ void SocketReactor::stop() void SocketReactor::wakeUp() { - if (_stop) return; _pollSet.wakeUp(); _event.set(); } diff --git a/Net/testsuite/src/SocketReactorTest.cpp b/Net/testsuite/src/SocketReactorTest.cpp index 2319c2618..a07576c86 100644 --- a/Net/testsuite/src/SocketReactorTest.cpp +++ b/Net/testsuite/src/SocketReactorTest.cpp @@ -416,12 +416,14 @@ namespace void onReadable(ReadableNotification* pNf) { pNf->release(); - char buffer[64]; - do + std::vector buffer; + int n = 0; + while ((n = _socket.available())) { - if (0 == _socket.receiveBytes(&buffer[0], sizeof(buffer))) - break; - } while (true); + if (n > buffer.size()) buffer.resize(n); + n = _socket.receiveBytes(&buffer[0], buffer.size()); + if (0 == n) break; + } } void onShutdown(ShutdownNotification* pNf) diff --git a/cppignore.win b/cppignore.win index c762b60ac..b72afc5d6 100644 --- a/cppignore.win +++ b/cppignore.win @@ -6,7 +6,7 @@ class CppUnit::TestCaller.testEchoIPv4Move class CppUnit::TestCaller.testPing class CppUnit::TestCaller.testBigPing class CppUnit::TestCaller.testProxy -class CppUnit::TestCaller.testProxy +class CppUnit::TestCaller.testProxy class CppUnit::TestCaller.testReuseSocket class CppUnit::TestCaller.testInterop class CppUnit::TestCaller.testFind @@ -21,4 +21,3 @@ class CppUnit::TestCaller.testServiceReturnsTrueIfStopped class CppUnit::TestCaller.testSendToReceiveFrom class CppUnit::TestCaller.testMTU class CppUnit::TestCaller.testCachedSession -class CppUnit::TestCaller.testPollClosedServer From 843ed4345e6486c1cb454301c0b9ee0920956cc9 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Wed, 17 Jan 2024 14:13:24 +0100 Subject: [PATCH 273/395] gcc/clang (-fvisibility=hidden): corrections to compile and work properly (#4394) * fix(ActiveRecord): missing ActiveRecordLib_API definitions for clang/gcc. * fix(FPEnvironment): export FPEnvironmentImpl classes (#4393, #3331) * fix(Crypto): export *Impl classes used from inlines (#4393, #3331) * fix(Dynamic): explicitly instantiate and export Dynamic::Struct for string and int (-fvisibility=hidden) (#4393, #3331) * fix(JSON): explicitly instantiate and export SharedPtr for JSON::Array and JSON::Object (-fvisibility=hidden) (#4393, #3331) * enh(CMake): Set symbol visibility to hidden (#4393, #3331) * enh(configure): user c++17 standard for iphone, Darwin and ARM-Linux. * fix(UTF): explicitly instantiate and export 16 and 32-bit strings (-fvisibility=hidden) (#4393, #3331) * fix(RecordSet): make Extraction.h internal and instantiate RecordsSet::column template functions only for supported types. (-fvisibility=hidden) (#4393, #3331) * fix(UTF): fix explicitly instantiation on Windows (-fvisibility=hidden) (#4393, #3331) * enh(CMake): Add github jobs for macOS with visibility set to hidden (#4393, #3331) * fix(CppParser): Add missing declarations for CppParser_API (#4393, #3331) * enh(CMake): Enable more options in github jobs for macOS with visibility set to hidden (#4393, #3331) * fix(MongoDB): Add missing MongoDB_API (#4393, #3331) --- .github/workflows/ci.yml | 55 ++++ .../Poco/ActiveRecord/ActiveRecordLib.h | 6 +- CMakeLists.txt | 1 + CppParser/include/Poco/CppParser/CppParser.h | 6 +- Crypto/include/Poco/Crypto/CipherKeyImpl.h | 2 +- Crypto/include/Poco/Crypto/ECKeyImpl.h | 2 +- Crypto/include/Poco/Crypto/KeyPairImpl.h | 2 +- Crypto/include/Poco/Crypto/RSAKeyImpl.h | 2 +- Data/include/Poco/Data/RecordSet.h | 86 +----- Data/src/RecordSet.cpp | 253 ++++++++++++++++++ Foundation/include/Poco/Dynamic/Struct.h | 23 +- Foundation/include/Poco/FPEnvironment_C99.h | 2 +- Foundation/include/Poco/FPEnvironment_DEC.h | 2 +- Foundation/include/Poco/FPEnvironment_QNX.h | 2 +- Foundation/include/Poco/FPEnvironment_SUN.h | 2 +- Foundation/include/Poco/UTFString.h | 14 + Foundation/src/UTF8String.cpp | 13 + Foundation/src/VarHolder.cpp | 20 ++ Foundation/testsuite/src/VarTest.cpp | 2 +- JSON/include/Poco/JSON/Array.h | 15 ++ JSON/include/Poco/JSON/Object.h | 14 + JSON/src/Array.cpp | 9 + JSON/src/Object.cpp | 10 + MongoDB/include/Poco/MongoDB/Document.h | 2 +- MongoDB/include/Poco/MongoDB/UpdateRequest.h | 2 +- build/config/ARM-Linux | 2 +- build/config/Darwin-clang-libc++ | 2 +- build/config/iPhone | 2 +- 28 files changed, 453 insertions(+), 100 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8ef4fd973..15bd1015f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -220,6 +220,36 @@ jobs: EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" ./ci/runtests.sh + macos-clang-make-visibility-hidden: + runs-on: macos-12 + steps: + - uses: actions/checkout@v3 + - run: brew install openssl@1.1 mysql-client unixodbc libpq + - run: >- + ./configure --everything --no-prefix --cflags="-fvisibility=hidden" --omit=PDF + --odbc-include=/usr/local/opt/unixodbc/include --odbc-lib=/usr/local/opt/unixodbc/lib + --mysql-include=/usr/local/opt/mysql-client/include --mysql-lib=/usr/local/opt/mysql-client/lib + --include-path="/usr/local/opt/openssl@1.1/include" --library-path="/usr/local/opt/openssl@1.1/lib" && + make all -s -j4 + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + sudo -s + CPPUNIT_IGNORE=" + CppUnit::TestCaller.testTrySleep, + CppUnit::TestCaller.testTimestamp, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testOldBSD, + CppUnit::TestCaller.testPollClosedServer" + EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" + ./ci/runtests.sh + macos-clang-cmake-openssl: runs-on: macos-12 steps: @@ -270,6 +300,31 @@ jobs: PWD=`pwd` ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" + macos-clang-cmake-openssl3-visibility-hidden: + runs-on: macos-12 + steps: + - uses: actions/checkout@v3 + - run: brew install openssl@3 mysql-client unixodbc libpq + - run: cmake -S. -Bcmake-build -DCMAKE_CXX_VISIBILITY_PRESET=hidden -DENABLE_ENCODINGS_COMPILER=ON -DENABLE_PDF=ON -DENABLE_SEVENZIP=ON -DENABLE_CPPPARSER=ON -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@3 -DMYSQL_ROOT_DIR=/usr/local/opt/mysql-client && cmake --build cmake-build --target all + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + cd cmake-build && + sudo -s + CPPUNIT_IGNORE=" + CppUnit::TestCaller.testTrySleep, + CppUnit::TestCaller.testTimestamp, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testExpireN, + CppUnit::TestCaller.testAccessExpireN, + CppUnit::TestCaller.testPollClosedServer" + PWD=`pwd` + ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" + macos-clang-make-openssl3-tsan: runs-on: macos-12 steps: diff --git a/ActiveRecord/include/Poco/ActiveRecord/ActiveRecordLib.h b/ActiveRecord/include/Poco/ActiveRecord/ActiveRecordLib.h index c737d9241..3c1f861cc 100644 --- a/ActiveRecord/include/Poco/ActiveRecord/ActiveRecordLib.h +++ b/ActiveRecord/include/Poco/ActiveRecord/ActiveRecordLib.h @@ -41,7 +41,11 @@ #if !defined(ActiveRecordLib_API) - #define ActiveRecordLib_API + #if !defined(POCO_NO_GCC_API_ATTRIBUTE) && defined (__GNUC__) && (__GNUC__ >= 4) + #define ActiveRecordLib_API __attribute__ ((visibility ("default"))) + #else + #define ActiveRecordLib_API + #endif #endif diff --git a/CMakeLists.txt b/CMakeLists.txt index 460e5ae43..522a09970 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -557,6 +557,7 @@ message(STATUS "[cmake] Build type: ${CMAKE_BUILD_TYPE}") string(TOUPPER "${CMAKE_BUILD_TYPE}" BUILD_TYPE) message(STATUS "[cmake] Build with cxx flags: ${CMAKE_CXX_FLAGS_${BUILD_TYPE}} ${CMAKE_CXX_FLAGS}") message(STATUS "[cmake] Build with c flags: ${CMAKE_C_FLAGS_${BUILD_TYPE}} ${CMAKE_C_FLAGS}") +message(STATUS "[cmake] C++ symbol visibility: ${CMAKE_CXX_VISIBILITY_PRESET}") foreach(component ${Poco_COMPONENTS}) message(STATUS "Building: ${component}") diff --git a/CppParser/include/Poco/CppParser/CppParser.h b/CppParser/include/Poco/CppParser/CppParser.h index ea7125e90..faf9fcf2f 100644 --- a/CppParser/include/Poco/CppParser/CppParser.h +++ b/CppParser/include/Poco/CppParser/CppParser.h @@ -41,7 +41,11 @@ #if !defined(CppParser_API) - #define CppParser_API + #if !defined(POCO_NO_GCC_API_ATTRIBUTE) && defined (__GNUC__) && (__GNUC__ >= 4) + #define CppParser_API __attribute__ ((visibility ("default"))) + #else + #define CppParser_API + #endif #endif diff --git a/Crypto/include/Poco/Crypto/CipherKeyImpl.h b/Crypto/include/Poco/Crypto/CipherKeyImpl.h index 75b3bdadb..839745289 100644 --- a/Crypto/include/Poco/Crypto/CipherKeyImpl.h +++ b/Crypto/include/Poco/Crypto/CipherKeyImpl.h @@ -33,7 +33,7 @@ namespace Poco { namespace Crypto { -class CipherKeyImpl: public RefCountedObject +class Crypto_API CipherKeyImpl: public RefCountedObject /// An implementation of the CipherKey class for OpenSSL's crypto library. { public: diff --git a/Crypto/include/Poco/Crypto/ECKeyImpl.h b/Crypto/include/Poco/Crypto/ECKeyImpl.h index f9c1b1d42..394cee858 100644 --- a/Crypto/include/Poco/Crypto/ECKeyImpl.h +++ b/Crypto/include/Poco/Crypto/ECKeyImpl.h @@ -40,7 +40,7 @@ class X509Certificate; class PKCS12Container; -class ECKeyImpl: public KeyPairImpl +class Crypto_API ECKeyImpl: public KeyPairImpl /// Elliptic Curve key clas implementation. { public: diff --git a/Crypto/include/Poco/Crypto/KeyPairImpl.h b/Crypto/include/Poco/Crypto/KeyPairImpl.h index 50718ce37..046c31b8b 100644 --- a/Crypto/include/Poco/Crypto/KeyPairImpl.h +++ b/Crypto/include/Poco/Crypto/KeyPairImpl.h @@ -31,7 +31,7 @@ namespace Poco { namespace Crypto { -class KeyPairImpl: public Poco::RefCountedObject +class Crypto_API KeyPairImpl: public Poco::RefCountedObject /// Class KeyPairImpl { public: diff --git a/Crypto/include/Poco/Crypto/RSAKeyImpl.h b/Crypto/include/Poco/Crypto/RSAKeyImpl.h index f0397381c..f325d958a 100644 --- a/Crypto/include/Poco/Crypto/RSAKeyImpl.h +++ b/Crypto/include/Poco/Crypto/RSAKeyImpl.h @@ -43,7 +43,7 @@ class X509Certificate; class PKCS12Container; -class RSAKeyImpl: public KeyPairImpl +class Crypto_API RSAKeyImpl: public KeyPairImpl /// class RSAKeyImpl { public: diff --git a/Data/include/Poco/Data/RecordSet.h b/Data/include/Poco/Data/RecordSet.h index 9d363d42d..35b064190 100644 --- a/Data/include/Poco/Data/RecordSet.h +++ b/Data/include/Poco/Data/RecordSet.h @@ -20,7 +20,6 @@ #include "Poco/Data/Data.h" #include "Poco/Data/Session.h" -#include "Poco/Data/Extraction.h" #include "Poco/Data/BulkExtraction.h" #include "Poco/Data/Statement.h" #include "Poco/Data/RowIterator.h" @@ -166,100 +165,23 @@ public: /// Returns the number of columns in the recordset. template - const Column& column(const std::string& name) const + const Column& column(const std::string& name) const; /// Returns the reference to the first Column with the specified name. - { - if (isBulkExtraction()) - { - using E = InternalBulkExtraction; - return columnImpl(name); - } - else - { - using E = InternalExtraction; - return columnImpl(name); - } - } template - const Column& column(std::size_t pos) const - /// Returns the reference to column at specified position. - { - if (isBulkExtraction()) - { - using E = InternalBulkExtraction; - return columnImpl(pos); - } - else - { - using E = InternalExtraction; - return columnImpl(pos); - } - } + const Column& column(std::size_t pos) const; Row& row(std::size_t pos); /// Returns reference to row at position pos. /// Rows are lazy-created and cached. template - const T& value(std::size_t col, std::size_t row, bool useFilter = true) const + const T& value(std::size_t col, std::size_t row, bool useFilter = true) const; /// Returns the reference to data value at [col, row] location. - { - if (useFilter && isFiltered() && !isAllowed(row)) - throw InvalidAccessException("Row not allowed"); - - switch (storage()) - { - case STORAGE_VECTOR: - { - using C = typename std::vector; - return column(col).value(row); - } - case STORAGE_LIST: - { - using C = typename std::list; - return column(col).value(row); - } - case STORAGE_DEQUE: - case STORAGE_UNKNOWN: - { - using C = typename std::deque; - return column(col).value(row); - } - default: - throw IllegalStateException("Invalid storage setting."); - } - } template - const T& value(const std::string& name, std::size_t row, bool useFilter = true) const + const T& value(const std::string& name, std::size_t row, bool useFilter = true) const; /// Returns the reference to data value at named column, row location. - { - if (useFilter && isFiltered() && !isAllowed(row)) - throw InvalidAccessException("Row not allowed"); - - switch (storage()) - { - case STORAGE_VECTOR: - { - using C = typename std::vector; - return column(name).value(row); - } - case STORAGE_LIST: - { - using C = typename std::list; - return column(name).value(row); - } - case STORAGE_DEQUE: - case STORAGE_UNKNOWN: - { - using C = typename std::deque; - return column(name).value(row); - } - default: - throw IllegalStateException("Invalid storage setting."); - } - } Poco::Dynamic::Var value(std::size_t col, std::size_t row, bool checkFiltering = true) const; /// Returns the data value at column, row location. diff --git a/Data/src/RecordSet.cpp b/Data/src/RecordSet.cpp index cb0987837..3fe1293ff 100644 --- a/Data/src/RecordSet.cpp +++ b/Data/src/RecordSet.cpp @@ -13,6 +13,7 @@ #include "Poco/Data/RecordSet.h" +#include "Poco/Data/Extraction.h" #include "Poco/Data/RowFilter.h" #include "Poco/Data/Date.h" #include "Poco/Data/Time.h" @@ -132,6 +133,258 @@ void RecordSet::reset(const Statement& stmt) } +template +const Column& RecordSet::column(const std::string& name) const + /// Returns the reference to the first Column with the specified name. +{ + if (isBulkExtraction()) + { + using E = InternalBulkExtraction; + return columnImpl(name); + } + else + { + using E = InternalExtraction; + return columnImpl(name); + } +} + + +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; + +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; + +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; +template Data_API const Column>& RecordSet::column>(const std::string& name) const; + + +template +const Column& RecordSet::column(std::size_t pos) const + /// Returns the reference to column at specified position. +{ + if (isBulkExtraction()) + { + using E = InternalBulkExtraction; + return columnImpl(pos); + } + else + { + using E = InternalExtraction; + return columnImpl(pos); + } +} + + +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; + +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; + +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; +template Data_API const Column>& RecordSet::column>(std::size_t pos) const; + + +template +const T& RecordSet::value(std::size_t col, std::size_t row, bool useFilter) const + /// Returns the reference to data value at [col, row] location. +{ + if (useFilter && isFiltered() && !isAllowed(row)) + throw InvalidAccessException("Row not allowed"); + + switch (storage()) + { + case STORAGE_VECTOR: + { + using C = typename std::vector; + return column(col).value(row); + } + case STORAGE_LIST: + { + using C = typename std::list; + return column(col).value(row); + } + case STORAGE_DEQUE: + case STORAGE_UNKNOWN: + { + using C = typename std::deque; + return column(col).value(row); + } + default: + throw IllegalStateException("Invalid storage setting."); + } +} + + +template Data_API const bool& RecordSet::value(std::size_t col, std::size_t row, bool useFilter) const; +template Data_API const UInt8& RecordSet::value(std::size_t col, std::size_t row, bool useFilter) const; +template Data_API const Int16& RecordSet::value(std::size_t col, std::size_t row, bool useFilter) const; +template Data_API const UInt16& RecordSet::value(std::size_t col, std::size_t row, bool useFilter) const; +template Data_API const Int32& RecordSet::value(std::size_t col, std::size_t row, bool useFilter) const; +template Data_API const UInt32& RecordSet::value(std::size_t col, std::size_t row, bool useFilter) const; +template Data_API const Int64& RecordSet::value(std::size_t col, std::size_t row, bool useFilter) const; +template Data_API const UInt64& RecordSet::value(std::size_t col, std::size_t row, bool useFilter) const; +template Data_API const float& RecordSet::value(std::size_t col, std::size_t row, bool useFilter) const; +template Data_API const double& RecordSet::value(std::size_t col, std::size_t row, bool useFilter) const; +template Data_API const std::string& RecordSet::value(std::size_t col, std::size_t row, bool useFilter) const; +template Data_API const UTF16String& RecordSet::value(std::size_t col, std::size_t row, bool useFilter) const; +template Data_API const BLOB& RecordSet::value(std::size_t col, std::size_t row, bool useFilter) const; +template Data_API const CLOB& RecordSet::value(std::size_t col, std::size_t row, bool useFilter) const; +template Data_API const Date& RecordSet::value(std::size_t col, std::size_t row, bool useFilter) const; +template Data_API const Time& RecordSet::value + + + + diff --git a/MongoDB/samples/SQLToMongo/SQLToMongo.progen b/MongoDB/samples/SQLToMongo/SQLToMongo.progen index 1543dabdb..602fdc35e 100644 --- a/MongoDB/samples/SQLToMongo/SQLToMongo.progen +++ b/MongoDB/samples/SQLToMongo/SQLToMongo.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Net\\include;..\\..\\..\\MongoDB\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/MongoDB/testsuite/TestSuite.progen b/MongoDB/testsuite/TestSuite.progen index c1bc49fed..fb74be89f 100644 --- a/MongoDB/testsuite/TestSuite.progen +++ b/MongoDB/testsuite/TestSuite.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/NEWS b/NEWS deleted file mode 100644 index 359b017e2..000000000 --- a/NEWS +++ /dev/null @@ -1,2 +0,0 @@ -As of release 1.4 this file is no longer maintained. -Please see the CHANGELOG for what's new in each release. diff --git a/Net/Net.progen b/Net/Net.progen index 1c5bbcbb9..50812acf6 100644 --- a/Net/Net.progen +++ b/Net/Net.progen @@ -12,7 +12,7 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/Net/Net_vs170.vcxproj b/Net/Net_vs170.vcxproj index 4be3ef120..331f5f6ef 100644 --- a/Net/Net_vs170.vcxproj +++ b/Net/Net_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34322.80 PocoNetA64d PocoNetmdd PocoNetmtd @@ -345,8 +345,10 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -380,8 +382,10 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -413,8 +417,10 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoNetmtd.lib @@ -440,8 +446,10 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoNetmt.lib @@ -464,8 +472,10 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoNetmdd.lib @@ -491,8 +501,10 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoNetmd.lib @@ -515,8 +527,10 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -550,8 +564,10 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -583,8 +599,10 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoNetmtd.lib @@ -610,8 +628,10 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoNetmt.lib @@ -634,8 +654,10 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoNetmdd.lib @@ -661,8 +683,10 @@ Level3 Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -686,8 +710,10 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -721,8 +747,10 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -754,8 +782,10 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoNetmtd.lib @@ -781,8 +811,10 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoNetmt.lib @@ -805,8 +837,10 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoNetmdd.lib @@ -832,8 +866,10 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoNetmd.lib @@ -962,324 +998,538 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Net/Net_vs170.vcxproj.filters b/Net/Net_vs170.vcxproj.filters index 8ba36682f..389f958ab 100644 --- a/Net/Net_vs170.vcxproj.filters +++ b/Net/Net_vs170.vcxproj.filters @@ -2,166 +2,166 @@ - {90277211-36fe-44fa-8779-bee1b27c0b33} + {807ff714-e183-4df3-9bcf-999f06de4b55} - {dde6886a-711b-4b19-8ede-16e0946b3dd3} + {3abff93d-1752-42d9-be72-717f4d2eafd3} - {225e8c7b-6770-4930-a8a6-de55b4e51c6f} + {2a34e5e5-8e51-4df1-bc1d-72bef47656bd} - {89f0837c-8470-476c-872e-2feb780c3755} + {39703b0c-6789-4197-9dfc-1b3ec95767d8} - {2adaae0b-b111-47fc-8613-a8eda7c657b8} + {e20271eb-bfc6-4aa3-b84d-e0a892da51ea} - {6b763933-275b-43db-8351-c759be910124} + {85f5b169-a46f-4033-9ede-7f21f7f41844} - {c8823488-ff33-4000-bc95-a32a4962bc5f} + {bb5e4b31-e1e6-4463-96fb-40dad19d890d} - {66abd578-d1d6-4f71-b3b6-6442be8027ea} + {5561f49c-32c1-4977-b73e-72acc18967c6} - {04a41c32-4f81-4630-8251-aebaac657dde} + {ce1eda6c-182d-42c3-bc6e-f0e5a57bd910} - {a1b32860-4beb-44c8-be19-9ce8f80a8628} + {2a3cf08f-277c-44f4-b281-53a222589521} - {f3e1e652-16e3-4251-953d-dfbe62ea3982} + {f46011ae-51b0-4c75-94f2-75ce38a9c1f8} - {eb9d676b-c46b-4256-a316-d50aa6d696db} + {8e09bf51-43af-4927-a1f8-35fde03e31f9} - {be5fbb21-ee3d-4a3b-824d-a93663d3b5b5} + {a2585b09-952a-4846-85dc-7cef5d8e6316} - {4bf59802-369d-44b5-b5e2-27de877443b7} + {ed0e694d-c54a-43db-86b1-b9cff1bca9e7} - {2d040338-7189-4832-885f-c35df5e0261e} + {e0388610-bb32-4a05-9608-201c166cbd7a} - {65ff22c9-dc2e-4dd6-806f-112e50a728a3} + {3422fb59-7aaa-4418-bbd9-e02b6b0a89bf} - {171a9cfa-0f74-4258-b1cb-e8bc2f542719} + {96093a57-1ffc-45b3-97c7-54117dadf3a8} - {700a3455-e21e-4b83-bbde-3bbf58da3ac2} + {42bcafa5-fa8b-43bb-83b2-b78856633103} - {491c59ae-0899-40d7-88e8-27b4b3bd341c} + {b6744e60-638e-49f2-82fd-a9c787d5fcb2} - {e318a0ee-2d73-454f-a372-1cb32986fcbf} + {0110954e-bf64-49bb-8ff3-3912f8a94ab0} - {7bbbe1fd-5699-4d47-aeea-5c4ae76e0ed1} + {3326cd87-4134-405b-bc9b-560b18ef8c3d} - {e1c20e0e-cf9d-4388-ae15-747c642452ee} + {c32b81d5-baff-45f9-aee4-3ce46a8491f2} - {e7c37000-31b5-4d4d-8b8e-ebb4b91e22aa} + {9aa25ee3-479c-4bbb-8211-973459fa25e7} - {303f1252-d50c-45f5-ad39-9538d48e7da8} + {6cf2a4e9-ae34-432d-9472-50d6f34fa139} - {64d4ca86-bc0e-47cd-93cb-1688b08c7dbc} + {976530a3-79ab-46b9-877f-27c280f88bf5} - {ac6da4d0-ff1d-4845-8655-c1d7bb8af706} + {85a66838-8212-4638-b218-788b24cf6214} - {59dfc623-2f30-4dee-9e7f-b9ea32311877} + {62b5a7ad-f566-4507-bcc2-65f553ac3bc2} - {e35f97d2-6c4e-4101-b8d9-2d40a6e1f8d6} + {69a92687-4570-4f08-a82c-3e201cbc0df6} - {d4f6b235-3727-43b1-a45c-97634a88bcb5} + {cf137793-887b-498a-a839-249fe20fa659} - {729c6f41-45c3-445c-9eaf-adc6fa2ab957} + {058d16f3-1c77-40f5-bed0-6ee39f6d69fc} - {1c1aa126-7035-4c6c-b4a6-6db4bb9ba7b8} + {07113e92-8e9d-4fd9-be0e-c8d1ee90b205} - {697d988f-e82e-4b9a-a763-4e20e959246e} + {a971c52d-e993-4a15-b467-0e24c9654d0a} - {5f209277-2d19-4d78-b6f6-eb69ff9d169a} + {60591c89-e2f9-4a9d-8680-2bbe7f8166c5} - {97dc13ec-7fd0-4bd0-88d7-d3f4e8b5aaf0} + {fbd4ef96-6fb6-4922-b3a6-6da9bc59fce2} - {82036806-9daf-40ea-97a9-7fa9d48d2c76} + {e3c6e815-447f-44ab-bbfc-5971bb96ff53} - {d44c2015-66b4-41bb-bab8-ce94e0642356} + {b7970e66-2cc1-4f85-bcbe-1056f64510c4} - {67442bc4-3f65-4814-8a73-98a91d70f29d} + {ec1ca999-4ce9-42e1-9462-1a85fe6d3d62} - {bd80dc76-0f7c-4c57-b1d6-1211abc0b0f1} + {c1905a95-4aaf-4a68-9951-d270e7c853fe} - {6a5f03bb-b749-40b5-86a2-8662f0ff7dfe} + {b06f281f-d37d-48c4-809a-cfd5475c3b2c} - {f535b5d2-7a50-45aa-8ce1-d427d3a7e54c} + {2fd44bbc-34d8-445a-8f31-5aec62d27fd2} - {575be2dd-dcee-4599-a534-e51c4cbab323} + {8bf4c3b6-de70-4762-b1ae-dcd299834636} - {60d2fad0-8bae-4b91-a14c-f9b782c0d8ba} + {d851eca3-7aca-47a1-a082-558984aef491} - {26842ddd-3b15-47f6-a5a0-b4044213e4b5} + {9a6adb10-3c83-4c3e-a78c-bc842c3e728c} - {db4b2298-756d-4f33-8047-e122cbf5ee67} + {96b53209-6c12-41fd-ae10-744a156a0f41} - {4f92c211-e6a2-401d-b04e-887f42165a06} + {e14d9455-731e-4228-84e8-6e421e57e5df} - {66d9c5ee-26b0-43d1-9a58-e257d9a76b59} + {bc05e2c6-07dd-46e4-911f-a83044012e0e} - {c0fc6593-fd16-4366-a83a-cae87e1fae2f} + {ab9b6b24-5d69-41bf-ae73-0d081605207b} - {08828b81-6913-4920-9f47-369439c27b3a} + {eab59ba2-b014-4aa7-aa87-69e7223c221e} - {1ba12463-f782-4a94-9113-acfe835a2b8a} + {4146679a-e4af-4d07-a76c-766c3d9b79f0} - {692613dc-6b1e-4ffb-9c28-47282f9b119f} + {f185f3d3-c3bf-4745-9d51-fd14041bcc0e} - {2df8e415-77bd-41b2-b770-ec4bfaee9e00} + {d5a327e3-3145-436a-895a-ad2cc062dbf2} - {ccae9a0d-6819-45e0-af22-a5b2ff8b429b} + {c6720f96-b33d-4936-872f-5a2576ea95c5} - {7f1a06da-5317-4803-9f4c-a13acd1e3959} + {aec6cc22-5394-4555-8474-b3f0c3b26e7f} - {d1384c8b-86bb-4d26-a6cf-06b490284056} + {7c3b8656-5cb5-4355-b2fc-936bc3c3114c} diff --git a/Net/samples/EchoServer/EchoServer.progen b/Net/samples/EchoServer/EchoServer.progen index ede2c7832..c610dc055 100644 --- a/Net/samples/EchoServer/EchoServer.progen +++ b/Net/samples/EchoServer/EchoServer.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/HTTPFormServer/HTTPFormServer.progen b/Net/samples/HTTPFormServer/HTTPFormServer.progen index ede2c7832..c610dc055 100644 --- a/Net/samples/HTTPFormServer/HTTPFormServer.progen +++ b/Net/samples/HTTPFormServer/HTTPFormServer.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/HTTPLoadTest/HTTPLoadTest.progen b/Net/samples/HTTPLoadTest/HTTPLoadTest.progen index ede2c7832..c610dc055 100644 --- a/Net/samples/HTTPLoadTest/HTTPLoadTest.progen +++ b/Net/samples/HTTPLoadTest/HTTPLoadTest.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/HTTPTimeServer/HTTPTimeServer.progen b/Net/samples/HTTPTimeServer/HTTPTimeServer.progen index ede2c7832..c610dc055 100644 --- a/Net/samples/HTTPTimeServer/HTTPTimeServer.progen +++ b/Net/samples/HTTPTimeServer/HTTPTimeServer.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/Mail/Mail.progen b/Net/samples/Mail/Mail.progen index ede2c7832..c610dc055 100644 --- a/Net/samples/Mail/Mail.progen +++ b/Net/samples/Mail/Mail.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/Ping/Ping.progen b/Net/samples/Ping/Ping.progen index ede2c7832..c610dc055 100644 --- a/Net/samples/Ping/Ping.progen +++ b/Net/samples/Ping/Ping.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/SMTPLogger/SMTPLogger.progen b/Net/samples/SMTPLogger/SMTPLogger.progen index ede2c7832..c610dc055 100644 --- a/Net/samples/SMTPLogger/SMTPLogger.progen +++ b/Net/samples/SMTPLogger/SMTPLogger.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/TimeServer/TimeServer.progen b/Net/samples/TimeServer/TimeServer.progen index ede2c7832..c610dc055 100644 --- a/Net/samples/TimeServer/TimeServer.progen +++ b/Net/samples/TimeServer/TimeServer.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/WebSocketServer/WebSocketServer.progen b/Net/samples/WebSocketServer/WebSocketServer.progen index ede2c7832..c610dc055 100644 --- a/Net/samples/WebSocketServer/WebSocketServer.progen +++ b/Net/samples/WebSocketServer/WebSocketServer.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/dict/dict.progen b/Net/samples/dict/dict.progen index ede2c7832..c610dc055 100644 --- a/Net/samples/dict/dict.progen +++ b/Net/samples/dict/dict.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/download/download.progen b/Net/samples/download/download.progen index ede2c7832..c610dc055 100644 --- a/Net/samples/download/download.progen +++ b/Net/samples/download/download.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/httpget/httpget.progen b/Net/samples/httpget/httpget.progen index ede2c7832..c610dc055 100644 --- a/Net/samples/httpget/httpget.progen +++ b/Net/samples/httpget/httpget.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/ifconfig/ifconfig.progen b/Net/samples/ifconfig/ifconfig.progen index ede2c7832..c610dc055 100644 --- a/Net/samples/ifconfig/ifconfig.progen +++ b/Net/samples/ifconfig/ifconfig.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/tcpserver/tcpserver.progen b/Net/samples/tcpserver/tcpserver.progen index 70c16504a..9ffca51c2 100644 --- a/Net/samples/tcpserver/tcpserver.progen +++ b/Net/samples/tcpserver/tcpserver.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/testsuite/TestSuite.progen b/Net/testsuite/TestSuite.progen index 205fabcee..f65485977 100644 --- a/Net/testsuite/TestSuite.progen +++ b/Net/testsuite/TestSuite.progen @@ -7,6 +7,6 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = iphlpapi.lib vc.project.linker.dependencies.Win32 = ws2_32.lib diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL.progen b/NetSSL_OpenSSL/NetSSL_OpenSSL.progen index 6e03a7bc7..507316953 100644 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL.progen +++ b/NetSSL_OpenSSL/NetSSL_OpenSSL.progen @@ -12,7 +12,7 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = NetSSL_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs170.vcxproj b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs170.vcxproj index a4745f63e..2b1ea8c42 100644 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs170.vcxproj +++ b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34322.80 PocoNetSSLA64d PocoNetSSLmdd PocoNetSSLmtd @@ -344,14 +344,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) ..\binA64\PocoNetSSLA64d.dll true true - ..\binA64\PocoNetSSLA64d.pdb + $(OutDir)$(TargetName).pdb ..\libA64;%(AdditionalLibraryDirectories) Console ..\libA64\PocoNetSSLd.lib @@ -377,7 +381,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -405,11 +413,14 @@ true true - ..\libA64\PocoNetSSLmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoNetSSLmtd.lib @@ -434,7 +445,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoNetSSLmt.lib @@ -453,11 +468,14 @@ true true - ..\libA64\PocoNetSSLmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoNetSSLmdd.lib @@ -482,7 +500,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoNetSSLmd.lib @@ -504,14 +526,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) ..\bin\PocoNetSSLd.dll true true - ..\bin\PocoNetSSLd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoNetSSLd.lib @@ -537,7 +563,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -565,11 +595,14 @@ true true - ..\lib\PocoNetSSLmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoNetSSLmtd.lib @@ -594,7 +627,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoNetSSLmt.lib @@ -613,11 +650,14 @@ true true - ..\lib\PocoNetSSLmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoNetSSLmdd.lib @@ -639,11 +679,14 @@ true true - ..\lib\PocoNetSSLmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -666,14 +709,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) ..\bin64\PocoNetSSL64d.dll true true - ..\bin64\PocoNetSSL64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoNetSSLd.lib @@ -699,7 +746,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -727,11 +778,14 @@ true true - ..\lib64\PocoNetSSLmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoNetSSLmtd.lib @@ -756,7 +810,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoNetSSLmt.lib @@ -775,11 +833,14 @@ true true - ..\lib64\PocoNetSSLmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoNetSSLmdd.lib @@ -804,7 +865,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoNetSSLmd.lib @@ -845,90 +910,148 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs170.vcxproj.filters b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs170.vcxproj.filters index b7a16784a..06fafc903 100644 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs170.vcxproj.filters +++ b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs170.vcxproj.filters @@ -2,49 +2,49 @@ - {5596c631-64ae-43f4-8414-e91e2ec4a377} + {73c9f951-b8c8-48ff-8692-75b8265a7b5f} - {435160f7-9d7c-4dcc-81b8-f7bd892ab884} + {a9b8a66c-dcf3-4818-82d3-3ffeacf236bd} - {35d27af2-9a0f-4549-9610-dc6c5c82735e} + {aa25e56e-e2ee-463a-9254-6f72d98055b7} - {4919ad01-859f-40e9-b151-de7ed20cfcb2} + {9aa19c54-dabd-40c8-824f-fb5960969e06} - {b1b92b8d-b564-4895-9df8-bbe67f097ce1} + {339923e3-8ad1-4507-86d5-14fa991a4022} - {358fe3e3-9caa-43c5-aad5-2cd51b385536} + {5fe53210-ac84-4ce4-8207-60f7fe03ee7d} - {34230bdb-d490-40ad-89ff-489a7744e82c} + {3bcd1b3f-9444-4fe2-b0c7-d7ba98084118} - {d6f4bdbf-cc94-43b2-b3e3-2d8972be20f9} + {fb203413-9bd3-4666-9e6b-17bc254946be} - {22977f45-4f7e-4339-aaf7-337622e09fb8} + {e44aced8-c356-4072-af09-27319a2201b0} - {d444b4ff-caba-4e95-b924-0599440d01a6} + {0531bd60-2aa6-40b8-9501-8c63c6d62097} - {f2ecedfb-d611-4e9a-9a4a-31021ee5c530} + {9b1c9a40-a812-4155-b623-f05ba269c986} - {af457eb3-6532-45ce-8df5-42145d636a5d} + {03349be0-1387-4a00-9d7f-b5946c882909} - {ecdea47e-3c87-48bf-984f-c320514b5e5b} + {dd130327-f2c2-431e-bb0a-d1d36bf021fe} - {1c3fa9bc-d21f-4b10-82bb-8e68f3524917} + {41fc35d3-b992-4451-a927-4b4f71c34923} - {b25ab851-6c5e-4dc7-859e-b65d6f47e1f2} + {5d30681e-7d75-4766-8f7c-4143ebdb1320} diff --git a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer.progen b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer.progen index b7b3a1b28..6c28cacf4 100644 --- a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer.progen +++ b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_OpenSSL/samples/Mail/Mail.progen b/NetSSL_OpenSSL/samples/Mail/Mail.progen index b7b3a1b28..6c28cacf4 100644 --- a/NetSSL_OpenSSL/samples/Mail/Mail.progen +++ b/NetSSL_OpenSSL/samples/Mail/Mail.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP.progen b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP.progen index b7b3a1b28..6c28cacf4 100644 --- a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP.progen +++ b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient.progen b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient.progen index 8a5572545..aab070e1a 100644 --- a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient.progen +++ b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\JSON\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_OpenSSL/samples/download/download.progen b/NetSSL_OpenSSL/samples/download/download.progen index b7b3a1b28..6c28cacf4 100644 --- a/NetSSL_OpenSSL/samples/download/download.progen +++ b/NetSSL_OpenSSL/samples/download/download.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_OpenSSL/testsuite/TestSuite.progen b/NetSSL_OpenSSL/testsuite/TestSuite.progen index adcae7daa..61b90bc37 100644 --- a/NetSSL_OpenSSL/testsuite/TestSuite.progen +++ b/NetSSL_OpenSSL/testsuite/TestSuite.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\XML\\include;..\\..\\Util\\include;..\\..\\Net\\include;..\\..\\Crypto\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_Win/NetSSL_Win.progen b/NetSSL_Win/NetSSL_Win.progen index 10824e6a8..4e149bcb0 100644 --- a/NetSSL_Win/NetSSL_Win.progen +++ b/NetSSL_Win/NetSSL_Win.progen @@ -12,7 +12,7 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib Crypt32.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_Win/NetSSL_Win_vs170.vcxproj b/NetSSL_Win/NetSSL_Win_vs170.vcxproj index 528f67752..d6b9be682 100644 --- a/NetSSL_Win/NetSSL_Win_vs170.vcxproj +++ b/NetSSL_Win/NetSSL_Win_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34322.80 PocoNetSSLWinA64d PocoNetSSLWinmdd PocoNetSSLWinmtd @@ -344,14 +344,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) ..\binA64\PocoNetSSLWinA64d.dll true true - ..\binA64\PocoNetSSLWinA64d.pdb + $(OutDir)$(TargetName).pdb ..\libA64;%(AdditionalLibraryDirectories) Console ..\libA64\PocoNetSSLWind.lib @@ -377,7 +381,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) @@ -405,11 +413,14 @@ true true - ..\libA64\PocoNetSSLWinmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoNetSSLWinmtd.lib @@ -434,7 +445,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoNetSSLWinmt.lib @@ -453,11 +468,14 @@ true true - ..\libA64\PocoNetSSLWinmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoNetSSLWinmdd.lib @@ -482,7 +500,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoNetSSLWinmd.lib @@ -504,14 +526,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) ..\bin\PocoNetSSLWind.dll true true - ..\bin\PocoNetSSLWind.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoNetSSLWind.lib @@ -537,7 +563,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) @@ -565,11 +595,14 @@ true true - ..\lib\PocoNetSSLWinmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoNetSSLWinmtd.lib @@ -594,7 +627,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoNetSSLWinmt.lib @@ -613,11 +650,14 @@ true true - ..\lib\PocoNetSSLWinmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoNetSSLWinmdd.lib @@ -639,11 +679,14 @@ true true - ..\lib\PocoNetSSLWinmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) @@ -666,14 +709,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) ..\bin64\PocoNetSSLWin64d.dll true true - ..\bin64\PocoNetSSLWin64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoNetSSLWind.lib @@ -699,7 +746,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) @@ -727,11 +778,14 @@ true true - ..\lib64\PocoNetSSLWinmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoNetSSLWinmtd.lib @@ -756,7 +810,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoNetSSLWinmt.lib @@ -775,11 +833,14 @@ true true - ..\lib64\PocoNetSSLWinmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoNetSSLWinmdd.lib @@ -804,7 +865,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoNetSSLWinmd.lib @@ -844,84 +909,138 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/NetSSL_Win/NetSSL_Win_vs170.vcxproj.filters b/NetSSL_Win/NetSSL_Win_vs170.vcxproj.filters index 69f2734f2..cdb8e5eec 100644 --- a/NetSSL_Win/NetSSL_Win_vs170.vcxproj.filters +++ b/NetSSL_Win/NetSSL_Win_vs170.vcxproj.filters @@ -2,40 +2,40 @@ - {8e2c6f4c-e36b-4525-833d-da583154fae6} + {529e4d63-2f77-4e5c-a2e5-34110a9c3dac} - {15b42d88-0b08-4bbe-aaf4-811c980cbf40} + {7aae5bb7-e02e-4b5a-a1d7-18defbb43ba6} - {8dbbbc70-e285-4d63-b23e-f66589fee2ae} + {8b3810a5-f377-4c88-86ce-91955a65c818} - {6d889d29-ead4-441c-bae5-bcab55774e50} + {42aba42b-89c4-486d-bbcc-3362d6695961} - {fa7dfc04-8c45-40fd-9ffd-103c392df211} + {24caee21-d17b-44d7-a41c-cf4c70a2b38e} - {0148faac-745f-46a3-93ef-d9077921b25b} + {0e421c8b-7fab-4427-ae5a-4fc06d5a00f7} - {3e0b562a-c18a-490e-be9b-24baef437558} + {4bf3cd72-825a-47ae-b749-34dc49f8bbf3} - {e3e960ed-29e0-4e60-a835-7a0143176c93} + {8add9720-7056-4d14-9003-e3419eb6338f} - {ddd37bb6-19fe-4b19-abd5-7b13b91735e9} + {5e798d4b-82a7-48ca-b1d2-2c2c4240add3} - {f4b31afb-c7f0-4479-91ba-3c7f7ba188c3} + {e4074053-eb34-4fc6-83ff-9fa850c71c01} - {d0a99012-8762-4749-9d80-49e85bfd08ca} + {24551290-9f10-4f62-8738-7d9f6b785866} - {a22c5080-e673-4373-a48c-51405ebce579} + {cfda1168-eeb5-41ca-81f4-7a3217b74129} diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.progen b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.progen index c63b31f35..9225aa0c3 100644 --- a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.progen +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_Win\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_Win/samples/Mail/Mail.progen b/NetSSL_Win/samples/Mail/Mail.progen index c63b31f35..9225aa0c3 100644 --- a/NetSSL_Win/samples/Mail/Mail.progen +++ b/NetSSL_Win/samples/Mail/Mail.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_Win\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_Win/samples/download/download.progen b/NetSSL_Win/samples/download/download.progen index c63b31f35..9225aa0c3 100644 --- a/NetSSL_Win/samples/download/download.progen +++ b/NetSSL_Win/samples/download/download.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_Win\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/NetSSL_Win/testsuite/TestSuite.progen b/NetSSL_Win/testsuite/TestSuite.progen index 6be09147b..f22128754 100644 --- a/NetSSL_Win/testsuite/TestSuite.progen +++ b/NetSSL_Win/testsuite/TestSuite.progen @@ -7,7 +7,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\XML\\include;..\\..\\Util\\include;..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/PDF/PDF.progen b/PDF/PDF.progen index f187804ea..12898d52a 100644 --- a/PDF/PDF.progen +++ b/PDF/PDF.progen @@ -12,6 +12,6 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = _CRT_SECURE_NO_WARNINGS;${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/PDF/PDF_vs170.vcxproj b/PDF/PDF_vs170.vcxproj index 2152f12af..b413aaff7 100644 --- a/PDF/PDF_vs170.vcxproj +++ b/PDF/PDF_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34322.80 PocoPDFA64d PocoPDFmdd PocoPDFmtd @@ -344,13 +344,17 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\binA64\PocoPDFA64d.dll true true - ..\binA64\PocoPDFA64d.pdb + $(OutDir)$(TargetName).pdb ..\libA64;%(AdditionalLibraryDirectories) Console ..\libA64\PocoPDFd.lib @@ -376,7 +380,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\binA64\PocoPDFA64.dll @@ -403,11 +411,14 @@ true true - ..\libA64\PocoPDFmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoPDFmtd.lib @@ -432,7 +443,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoPDFmt.lib @@ -451,11 +466,14 @@ true true - ..\libA64\PocoPDFmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoPDFmdd.lib @@ -480,7 +498,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoPDFmd.lib @@ -502,13 +524,17 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoPDFd.dll true true - ..\bin\PocoPDFd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoPDFd.lib @@ -534,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoPDF.dll @@ -561,11 +591,14 @@ true true - ..\lib\PocoPDFmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoPDFmtd.lib @@ -590,7 +623,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoPDFmt.lib @@ -609,11 +646,14 @@ true true - ..\lib\PocoPDFmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoPDFmdd.lib @@ -635,11 +675,14 @@ true true - ..\lib\PocoPDFmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoPDFmd.lib @@ -661,13 +704,17 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoPDF64d.dll true true - ..\bin64\PocoPDF64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoPDFd.lib @@ -693,7 +740,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoPDF64.dll @@ -720,11 +771,14 @@ true true - ..\lib64\PocoPDFmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoPDFmtd.lib @@ -749,7 +803,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoPDFmt.lib @@ -768,11 +826,14 @@ true true - ..\lib64\PocoPDFmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoPDFmdd.lib @@ -797,7 +858,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoPDFmd.lib @@ -806,303 +871,503 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/PDF/PDF_vs170.vcxproj.filters b/PDF/PDF_vs170.vcxproj.filters index 269252ee6..e7c185fb0 100644 --- a/PDF/PDF_vs170.vcxproj.filters +++ b/PDF/PDF_vs170.vcxproj.filters @@ -2,40 +2,40 @@ - {f67852f5-f6d2-42b2-968a-a439dce35a6c} + {f426c4fb-4635-4391-8169-1e078aaa22b3} - {0e1106d8-9896-4284-ab06-c09647cc564d} + {d7818ff4-830b-4e66-9746-26126f718530} - {7329e9a5-d822-455b-8445-f4bc6861af02} + {073dbf44-33de-4f4b-a13c-9e363cbfc4a5} - {1b35d64e-cf54-4915-9132-5cc651144446} + {f2fe92b5-fe93-43c9-a865-6bb64838f66e} - {0bf10ac1-6894-46ae-99c7-353d71f122b3} + {ec84f2dd-f70c-41d3-a23d-306a26e13a9f} - {7e579c96-cb80-4d08-b3bc-7462c12ffbe6} + {97e85bcc-b3d6-4d34-9b6c-c178d49915fc} - {b592faf4-a779-4253-a96e-d1b7e56d59f9} + {39714c8b-23da-48ba-aff0-f102ed25a1b6} - {49b6cf60-856c-4876-bac8-df783517647e} + {6e56df48-04b3-410f-bc28-af19f16e993c} - {d5d06994-f86c-48aa-a5a7-4ac8c5ef87ee} + {722c70fe-5922-42fd-af5e-a44ab5445860} - {270a3349-005e-46a7-b484-0ccd3f6c78a1} + {4e5d60ed-707a-4a2b-b487-dd48987f50c4} - {f13e1a87-9a44-4669-a758-de278f22e4a9} + {b0774c0b-991f-44d6-a8d5-810757dba8f2} - {874a1947-f881-4697-b410-43ed7d5c2579} + {32f3a026-d9c2-4bbe-af3c-c5e8345dd57d} diff --git a/PDF/samples/Image/Image.progen b/PDF/samples/Image/Image.progen index aa38e179b..ae20fcfeb 100644 --- a/PDF/samples/Image/Image.progen +++ b/PDF/samples/Image/Image.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\PDF\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = diff --git a/PDF/samples/Template/Template.progen b/PDF/samples/Template/Template.progen index 028bc844f..8ec52a56c 100644 --- a/PDF/samples/Template/Template.progen +++ b/PDF/samples/Template/Template.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\PDF\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = diff --git a/PDF/samples/Text/Text.progen b/PDF/samples/Text/Text.progen index aa38e179b..ae20fcfeb 100644 --- a/PDF/samples/Text/Text.progen +++ b/PDF/samples/Text/Text.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\PDF\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = diff --git a/PDF/testsuite/TestSuite.progen b/PDF/testsuite/TestSuite.progen index fbe3e7456..17f326951 100644 --- a/PDF/testsuite/TestSuite.progen +++ b/PDF/testsuite/TestSuite.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\XML\\include;..\\..\\Util\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = iphlpapi.lib diff --git a/PageCompiler/File2Page/File2Page.progen b/PageCompiler/File2Page/File2Page.progen index fd5708eca..8dd0d26ff 100644 --- a/PageCompiler/File2Page/File2Page.progen +++ b/PageCompiler/File2Page/File2Page.progen @@ -12,6 +12,6 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib vc.solution.create = true diff --git a/PageCompiler/File2Page/File2Page_vs170.vcxproj b/PageCompiler/File2Page/File2Page_vs170.vcxproj index f0f31e589..fa92b209e 100644 --- a/PageCompiler/File2Page/File2Page_vs170.vcxproj +++ b/PageCompiler/File2Page/File2Page_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34322.80 f2cpspd f2cpspd f2cpspd @@ -356,15 +356,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\f2cpspd.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\f2cpspd.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -388,7 +392,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -417,7 +425,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -425,7 +437,7 @@ ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\f2cpspd.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -449,7 +461,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -478,7 +494,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -486,7 +506,7 @@ ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\f2cpspd.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -510,11 +530,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\f2cpsp.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -539,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -547,7 +575,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\f2cpspd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -571,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -608,7 +644,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\f2cpspd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -632,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -661,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -669,7 +713,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\f2cpspd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -693,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -722,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -730,7 +782,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\f2cpspd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -754,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -783,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -791,7 +851,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\f2cpspd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -815,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -844,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -852,7 +920,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\f2cpspd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -876,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -892,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/PageCompiler/File2Page/File2Page_vs170.vcxproj.filters b/PageCompiler/File2Page/File2Page_vs170.vcxproj.filters index 0b9c22cd3..4460a4d58 100644 --- a/PageCompiler/File2Page/File2Page_vs170.vcxproj.filters +++ b/PageCompiler/File2Page/File2Page_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {c1c1b410-a8a8-4913-989c-08d3413d1773} + {5b6cb120-2052-4168-b459-5ad2e6304ec7} - {f0a29a31-2b05-4a17-9a00-66591850d4a4} + {d1a7496e-488a-46aa-bdea-f7e55762edf9} diff --git a/PageCompiler/PageCompiler.progen b/PageCompiler/PageCompiler.progen index d0193b1bf..4535e63db 100644 --- a/PageCompiler/PageCompiler.progen +++ b/PageCompiler/PageCompiler.progen @@ -12,6 +12,6 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib vc.solution.create = true diff --git a/PageCompiler/PageCompiler_vs170.vcxproj b/PageCompiler/PageCompiler_vs170.vcxproj index bb533086d..a336db198 100644 --- a/PageCompiler/PageCompiler_vs170.vcxproj +++ b/PageCompiler/PageCompiler_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34322.80 cpspcd cpspcd cpspcd @@ -356,15 +356,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\cpspcd.exe + $(OutDir)$(TargetName).exe ..\libA64;%(AdditionalLibraryDirectories) true true - binA64\cpspcd.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -388,7 +392,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -417,7 +425,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -425,7 +437,7 @@ ..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\cpspcd.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -449,7 +461,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -478,7 +494,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -486,7 +506,7 @@ ..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\cpspcd.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -510,11 +530,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\cpspc.exe + $(OutDir)$(TargetName).exe ..\libA64;%(AdditionalLibraryDirectories) false Console @@ -539,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -547,7 +575,7 @@ ..\lib;%(AdditionalLibraryDirectories) true true - bin\cpspcd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -571,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -608,7 +644,7 @@ ..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\cpspcd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -632,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -661,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -669,7 +713,7 @@ ..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\cpspcd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -693,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -722,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -730,7 +782,7 @@ ..\lib64;%(AdditionalLibraryDirectories) true true - bin64\cpspcd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -754,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -783,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -791,7 +851,7 @@ ..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\cpspcd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -815,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -844,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -852,7 +920,7 @@ ..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\cpspcd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -876,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -895,21 +967,33 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/PageCompiler/PageCompiler_vs170.vcxproj.filters b/PageCompiler/PageCompiler_vs170.vcxproj.filters index 1d34aef4e..ad87e7d87 100644 --- a/PageCompiler/PageCompiler_vs170.vcxproj.filters +++ b/PageCompiler/PageCompiler_vs170.vcxproj.filters @@ -2,13 +2,13 @@ - {a6f3a30b-ecc0-4b92-93d2-48856acefbc7} + {3373ba58-8c45-4d06-a20a-946c741b4542} - {cb151d00-691f-45bc-ab1a-1c769cd24843} + {b7244796-750d-4fd9-97a1-989fceb9da18} - {d6ddf6eb-fd4d-4b92-929e-7313ecbe097d} + {f644b45f-70db-48a7-86e3-cf91d71dc74d} diff --git a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer.progen b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer.progen index ede2c7832..c610dc055 100644 --- a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer.progen +++ b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/PocoDoc/PocoDoc.progen b/PocoDoc/PocoDoc.progen index 832c985c5..555286756 100644 --- a/PocoDoc/PocoDoc.progen +++ b/PocoDoc/PocoDoc.progen @@ -12,6 +12,6 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib vc.solution.create = true diff --git a/PocoDoc/PocoDoc_vs170.vcxproj b/PocoDoc/PocoDoc_vs170.vcxproj index 83e5e101d..673897032 100644 --- a/PocoDoc/PocoDoc_vs170.vcxproj +++ b/PocoDoc/PocoDoc_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34322.80 PocoDocd PocoDocd PocoDocd @@ -356,15 +356,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\PocoDocd.exe + $(OutDir)$(TargetName).exe ..\libA64;%(AdditionalLibraryDirectories) true true - binA64\PocoDocd.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -388,7 +392,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -417,7 +425,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -425,7 +437,7 @@ ..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\PocoDocd.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -449,7 +461,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -478,7 +494,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -486,7 +506,7 @@ ..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\PocoDocd.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -510,11 +530,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\PocoDoc.exe + $(OutDir)$(TargetName).exe ..\libA64;%(AdditionalLibraryDirectories) false Console @@ -539,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -547,7 +575,7 @@ ..\lib;%(AdditionalLibraryDirectories) true true - bin\PocoDocd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -571,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -608,7 +644,7 @@ ..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\PocoDocd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -632,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -661,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -669,7 +713,7 @@ ..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\PocoDocd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -693,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -722,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -730,7 +782,7 @@ ..\lib64;%(AdditionalLibraryDirectories) true true - bin64\PocoDocd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -754,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -783,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -791,7 +851,7 @@ ..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\PocoDocd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -815,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -844,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -852,7 +920,7 @@ ..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\PocoDocd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -876,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -892,9 +964,13 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/PocoDoc/PocoDoc_vs170.vcxproj.filters b/PocoDoc/PocoDoc_vs170.vcxproj.filters index 0449f858b..27d09a983 100644 --- a/PocoDoc/PocoDoc_vs170.vcxproj.filters +++ b/PocoDoc/PocoDoc_vs170.vcxproj.filters @@ -2,22 +2,22 @@ - {61c800c9-587b-41ba-87e3-34ff640ef172} + {2285d602-2fd1-4276-887c-7dc9d8c4751f} - {fd1b3e51-2e8d-4e8c-91d4-46db7a3844e5} + {4909c872-7e96-4974-bc68-b9ff7d28c454} - {f7dc3703-4775-424b-b4e7-6f9e4ebf156b} + {2b98b6ea-162a-4f7c-8fc6-df11e9857293} - {be953bb3-d530-4aa1-905c-15cf3dffd17f} + {0699b1a7-de87-46a2-aad5-d0fa2b2ace3f} - {9d391651-b314-43be-bade-b8568a4bc511} + {1f5e1fc4-3b23-4eed-a143-065894c933aa} - {7d5696d9-9136-4311-9ad4-5d2b1bd0bd4d} + {c9b50355-c6f5-4906-a49f-6e8ab416d3dc} diff --git a/ProGen/ProGen.progen b/ProGen/ProGen.progen index 93a3aecb4..0cb9602be 100644 --- a/ProGen/ProGen.progen +++ b/ProGen/ProGen.progen @@ -12,6 +12,6 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib vc.solution.create = true diff --git a/ProGen/ProGen_vs170.vcxproj b/ProGen/ProGen_vs170.vcxproj index 89953fc63..1cf374d64 100644 --- a/ProGen/ProGen_vs170.vcxproj +++ b/ProGen/ProGen_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34322.80 progend progend progend @@ -356,15 +356,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\progend.exe + $(OutDir)$(TargetName).exe ..\libA64;%(AdditionalLibraryDirectories) true true - binA64\progend.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -388,7 +392,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -417,7 +425,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -425,7 +437,7 @@ ..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\progend.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -449,7 +461,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -478,7 +494,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -486,7 +506,7 @@ ..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\progend.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -510,11 +530,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\progen.exe + $(OutDir)$(TargetName).exe ..\libA64;%(AdditionalLibraryDirectories) false Console @@ -539,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -547,7 +575,7 @@ ..\lib;%(AdditionalLibraryDirectories) true true - bin\progend.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -571,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -608,7 +644,7 @@ ..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\progend.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -632,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -661,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -669,7 +713,7 @@ ..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\progend.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -693,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -722,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -730,7 +782,7 @@ ..\lib64;%(AdditionalLibraryDirectories) true true - bin64\progend.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -754,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -783,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -791,7 +851,7 @@ ..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\progend.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -815,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -844,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -852,7 +920,7 @@ ..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\progend.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -876,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -895,9 +967,13 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/ProGen/ProGen_vs170.vcxproj.filters b/ProGen/ProGen_vs170.vcxproj.filters index 1875e14ed..b1b9720c0 100644 --- a/ProGen/ProGen_vs170.vcxproj.filters +++ b/ProGen/ProGen_vs170.vcxproj.filters @@ -2,13 +2,13 @@ - {c19b0653-7cd5-4342-9d01-f9a1c8d7165f} + {a1546477-6c69-498d-ba86-3a38eeafcafa} - {c982a442-d0a6-48aa-9d18-8b594fb33e87} + {9d13273d-cec3-418d-899e-198ded914263} - {e7f8ca85-51cb-4a65-92fe-32f0148210a8} + {e6a0ecf9-6f30-482d-b44d-41bf35797a3f} diff --git a/ProGen/src/ProGen.cpp b/ProGen/src/ProGen.cpp index 657d6f6ec..6909abe2a 100644 --- a/ProGen/src/ProGen.cpp +++ b/ProGen/src/ProGen.cpp @@ -601,6 +601,21 @@ protected: appendElement(pLinkElem, "TargetMachine", "MachineARM64"); } } + Poco::AutoPtr pClCompileList = pProjectDoc->getElementsByTagName("ClCompile"); + for (unsigned long i = 0; i < pClCompileList->length(); i++) + { + Poco::XML::Element* pClCompileElem = static_cast(pClCompileList->item(i)); + Poco::AutoPtr pLanguageStandard = pProjectDoc->createElement("LanguageStandard"); + Poco::AutoPtr pStandardText = pProjectDoc->createTextNode("stdcpp17"); + pLanguageStandard->appendChild(pStandardText); + pClCompileElem->appendChild(pLanguageStandard); + + pClCompileElem = static_cast(pClCompileList->item(i)); + pLanguageStandard = pProjectDoc->createElement("LanguageStandard_C"); + pStandardText = pProjectDoc->createTextNode("stdc11"); + pLanguageStandard->appendChild(pStandardText); + pClCompileElem->appendChild(pLanguageStandard); + } } void appendElement(Poco::XML::Node* pParentNode, const std::string& elemName, const std::string& text) diff --git a/Prometheus/Prometheus.progen b/Prometheus/Prometheus.progen index e24b46f91..cfe4ce225 100644 --- a/Prometheus/Prometheus.progen +++ b/Prometheus/Prometheus.progen @@ -12,6 +12,6 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/Prometheus/Prometheus_vs160.vcxproj b/Prometheus/Prometheus_vs160.vcxproj index a88388570..3cd101c95 100644 --- a/Prometheus/Prometheus_vs160.vcxproj +++ b/Prometheus/Prometheus_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 Prometheus {FAB67DE6-17E1-40F5-8FAC-A77A87DA034C} Prometheus @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34322.80 PocoPrometheusd PocoPrometheusmdd PocoPrometheusmtd @@ -239,6 +240,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true @@ -271,6 +273,7 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true @@ -302,6 +305,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true @@ -327,6 +331,7 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true @@ -350,6 +355,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true @@ -376,6 +382,7 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true @@ -398,6 +405,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true @@ -430,6 +438,7 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true @@ -461,6 +470,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true @@ -486,6 +496,7 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true @@ -509,6 +520,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true @@ -534,6 +546,7 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true diff --git a/Prometheus/Prometheus_vs160.vcxproj.filters b/Prometheus/Prometheus_vs160.vcxproj.filters index 686f883fe..1aaf386a3 100644 --- a/Prometheus/Prometheus_vs160.vcxproj.filters +++ b/Prometheus/Prometheus_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {da550d87-d4ce-43f1-9de7-95ff18bd3b61} + {a2e895c5-43ef-44fc-8843-8ce5f32490a3} - {b856d548-6ff2-43b8-8ece-28beb7105da2} + {007e1e30-599f-40f1-a03b-73d4ccc2697f} - {00c34b95-ed74-4de6-846c-f93021b9ea5f} + {4b99f8e7-b3ca-42ce-8513-51b68ad0f46a} diff --git a/Prometheus/Prometheus_vs170.vcxproj b/Prometheus/Prometheus_vs170.vcxproj index 3aecfb120..b96d34932 100644 --- a/Prometheus/Prometheus_vs170.vcxproj +++ b/Prometheus/Prometheus_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34322.80 PocoPrometheusA64d PocoPrometheusmdd PocoPrometheusmtd @@ -344,13 +344,17 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\binA64\PocoPrometheusA64d.dll true true - ..\binA64\PocoPrometheusA64d.pdb + $(OutDir)$(TargetName).pdb ..\libA64;%(AdditionalLibraryDirectories) Console ..\libA64\PocoPrometheusd.lib @@ -376,7 +380,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\binA64\PocoPrometheusA64.dll @@ -403,11 +411,14 @@ true true - ..\libA64\PocoPrometheusmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoPrometheusmtd.lib @@ -432,7 +443,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoPrometheusmt.lib @@ -451,11 +466,14 @@ true true - ..\libA64\PocoPrometheusmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoPrometheusmdd.lib @@ -480,7 +498,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoPrometheusmd.lib @@ -502,13 +524,17 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoPrometheusd.dll true true - ..\bin\PocoPrometheusd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoPrometheusd.lib @@ -534,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoPrometheus.dll @@ -561,11 +591,14 @@ true true - ..\lib\PocoPrometheusmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoPrometheusmtd.lib @@ -590,7 +623,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoPrometheusmt.lib @@ -609,11 +646,14 @@ true true - ..\lib\PocoPrometheusmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoPrometheusmdd.lib @@ -635,11 +675,14 @@ true true - ..\lib\PocoPrometheusmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoPrometheusmd.lib @@ -661,13 +704,17 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoPrometheus64d.dll true true - ..\bin64\PocoPrometheus64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoPrometheusd.lib @@ -693,7 +740,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoPrometheus64.dll @@ -720,11 +771,14 @@ true true - ..\lib64\PocoPrometheusmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoPrometheusmtd.lib @@ -749,7 +803,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoPrometheusmt.lib @@ -768,11 +826,14 @@ true true - ..\lib64\PocoPrometheusmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoPrometheusmdd.lib @@ -797,7 +858,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoPrometheusmd.lib @@ -827,42 +892,68 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Prometheus/Prometheus_vs170.vcxproj.filters b/Prometheus/Prometheus_vs170.vcxproj.filters index 2548d3690..5bcf53072 100644 --- a/Prometheus/Prometheus_vs170.vcxproj.filters +++ b/Prometheus/Prometheus_vs170.vcxproj.filters @@ -2,13 +2,13 @@ - {d9fa76ba-4879-42fe-b58d-5e9b5ea0e30e} + {5f0e8c47-e90e-48f5-b3f0-363d1969fcba} - {3de05224-2bb9-4fb1-84ba-df073562fa5f} + {316b98f5-3da2-4a16-b927-31a14c7cf767} - {b4aec395-e181-43e0-97f0-269d20432b09} + {6f6d0101-51af-4819-b50a-f55927be1957} diff --git a/Prometheus/samples/MetricsSample/MetricsSample.progen b/Prometheus/samples/MetricsSample/MetricsSample.progen index a6047e0a0..db3ccc99f 100644 --- a/Prometheus/samples/MetricsSample/MetricsSample.progen +++ b/Prometheus/samples/MetricsSample/MetricsSample.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Util\\include;..\\..\\..\\XML\\include;..\\..\\..\\JSON\\include;..\\..\\..\\Net\\include;..\\..\\..\\Prometheus\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Prometheus/testsuite/TestSuite.progen b/Prometheus/testsuite/TestSuite.progen index 21c033eab..3fd46be00 100644 --- a/Prometheus/testsuite/TestSuite.progen +++ b/Prometheus/testsuite/TestSuite.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Net\\include;..\\..\\Prometheus\\include;.\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 \ No newline at end of file +vc.project.compiler.additionalOptions = /Zc:__cplusplus \ No newline at end of file diff --git a/Redis/Redis.progen b/Redis/Redis.progen index 6f31b281c..a3300cd1f 100644 --- a/Redis/Redis.progen +++ b/Redis/Redis.progen @@ -12,6 +12,6 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/Redis/Redis_vs170.vcxproj b/Redis/Redis_vs170.vcxproj index 57c87e1fd..1ce3ece51 100644 --- a/Redis/Redis_vs170.vcxproj +++ b/Redis/Redis_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34322.80 PocoRedisA64d PocoRedismdd PocoRedismtd @@ -344,13 +344,17 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\binA64\PocoRedisA64d.dll true true - ..\binA64\PocoRedisA64d.pdb + $(OutDir)$(TargetName).pdb ..\libA64;%(AdditionalLibraryDirectories) Console ..\libA64\PocoRedisd.lib @@ -376,7 +380,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\binA64\PocoRedisA64.dll @@ -403,11 +411,14 @@ true true - ..\libA64\PocoRedismtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoRedismtd.lib @@ -432,7 +443,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoRedismt.lib @@ -451,11 +466,14 @@ true true - ..\libA64\PocoRedismdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoRedismdd.lib @@ -480,7 +498,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoRedismd.lib @@ -502,13 +524,17 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoRedisd.dll true true - ..\bin\PocoRedisd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoRedisd.lib @@ -534,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoRedis.dll @@ -561,11 +591,14 @@ true true - ..\lib\PocoRedismtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoRedismtd.lib @@ -590,7 +623,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoRedismt.lib @@ -609,11 +646,14 @@ true true - ..\lib\PocoRedismdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoRedismdd.lib @@ -635,11 +675,14 @@ true true - ..\lib\PocoRedismd.pdb + $(OutDir)$(TargetName).pdb Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoRedismd.lib @@ -661,13 +704,17 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoRedis64d.dll true true - ..\bin64\PocoRedis64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoRedisd.lib @@ -693,7 +740,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoRedis64.dll @@ -720,11 +771,14 @@ true true - ..\lib64\PocoRedismtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoRedismtd.lib @@ -749,7 +803,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoRedismt.lib @@ -768,11 +826,14 @@ true true - ..\lib64\PocoRedismdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoRedismdd.lib @@ -797,7 +858,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoRedismd.lib @@ -806,30 +871,48 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Redis/Redis_vs170.vcxproj.filters b/Redis/Redis_vs170.vcxproj.filters index 6a448d40c..d433d236c 100644 --- a/Redis/Redis_vs170.vcxproj.filters +++ b/Redis/Redis_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {939546c3-584c-4d2b-9c14-1f101e7f478b} + {ed08d752-2ac4-4a37-9ae8-c7eb7953b09c} - {87c0e63a-8969-4502-9c69-f97206bb6596} + {48880c00-e839-48c7-8e0b-f986530ce20c} diff --git a/Redis/testsuite/TestSuite.progen b/Redis/testsuite/TestSuite.progen index c1bc49fed..fb74be89f 100644 --- a/Redis/testsuite/TestSuite.progen +++ b/Redis/testsuite/TestSuite.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Net\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/SevenZip/SevenZip.progen b/SevenZip/SevenZip.progen index b262740ed..704a7a428 100644 --- a/SevenZip/SevenZip.progen +++ b/SevenZip/SevenZip.progen @@ -13,5 +13,5 @@ vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.disableWarnings = 4244;4267 -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.solution.create = true diff --git a/SevenZip/samples/un7zip/un7zip.progen b/SevenZip/samples/un7zip/un7zip.progen index 90a8dd807..be513ad17 100644 --- a/SevenZip/samples/un7zip/un7zip.progen +++ b/SevenZip/samples/un7zip/un7zip.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\SevenZip\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus diff --git a/Util/Util.progen b/Util/Util.progen index 67580f011..465e2dbdb 100644 --- a/Util/Util.progen +++ b/Util/Util.progen @@ -8,7 +8,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\Foundation\\include;..\\XML\\include;..\\JSON\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} diff --git a/Util/Util_vs170.vcxproj b/Util/Util_vs170.vcxproj index d594a0b6b..d5942e836 100644 --- a/Util/Util_vs170.vcxproj +++ b/Util/Util_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34322.80 PocoUtilA64d PocoUtilmdd PocoUtilmtd @@ -344,13 +344,17 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\binA64\PocoUtilA64d.dll true true - ..\binA64\PocoUtilA64d.pdb + $(OutDir)$(TargetName).pdb ..\libA64;%(AdditionalLibraryDirectories) Console ..\libA64\PocoUtild.lib @@ -376,7 +380,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\binA64\PocoUtilA64.dll @@ -403,11 +411,14 @@ true true - ..\libA64\PocoUtilmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoUtilmtd.lib @@ -432,7 +443,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoUtilmt.lib @@ -451,11 +466,14 @@ true true - ..\libA64\PocoUtilmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoUtilmdd.lib @@ -480,7 +498,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoUtilmd.lib @@ -502,13 +524,17 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoUtild.dll true true - ..\bin\PocoUtild.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoUtild.lib @@ -534,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoUtil.dll @@ -561,11 +591,14 @@ true true - ..\lib\PocoUtilmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoUtilmtd.lib @@ -590,7 +623,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoUtilmt.lib @@ -609,11 +646,14 @@ true true - ..\lib\PocoUtilmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoUtilmdd.lib @@ -635,11 +675,14 @@ true true - ..\lib\PocoUtilmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoUtilmd.lib @@ -661,13 +704,17 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoUtil64d.dll true true - ..\bin64\PocoUtil64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoUtild.lib @@ -693,7 +740,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoUtil64.dll @@ -720,11 +771,14 @@ true true - ..\lib64\PocoUtilmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoUtilmtd.lib @@ -749,7 +803,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoUtilmt.lib @@ -768,11 +826,14 @@ true true - ..\lib64\PocoUtilmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoUtilmdd.lib @@ -797,7 +858,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoUtilmd.lib @@ -841,96 +906,158 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Util/Util_vs170.vcxproj.filters b/Util/Util_vs170.vcxproj.filters index a4d7b4d68..9a07fa7f3 100644 --- a/Util/Util_vs170.vcxproj.filters +++ b/Util/Util_vs170.vcxproj.filters @@ -2,58 +2,58 @@ - {b8490675-eb3e-48ae-8d47-3e62ffb80c2f} + {6a1a5ec7-003a-40c5-b947-0b0873e2d6ee} - {dfbff407-74ed-440f-980f-5950d5acc80c} + {05e1ed3e-9afb-4ebf-b835-fe9bfbe194af} - {cb9715c5-2cbb-481d-9055-bf63a8150519} + {e60dae01-1e6c-4a67-9fa1-0c3c3bdf2826} - {89f286bf-4872-4f1e-8fb1-5a68ceb7b0b2} + {694c6834-669b-4356-8727-47d3298c00e5} - {ba5872d1-739f-4815-8e2f-06d9e27ac4aa} + {e7f9d0c1-ae68-4c6e-8814-81724a1662ca} - {1059ef14-1fcf-478d-ab23-c5503e42a679} + {597875d6-a827-49d3-b0e1-2313de020ef8} - {11ec7246-2e9f-46e4-af40-558cc128f9d9} + {e27da853-1946-44e4-b200-f53a773e1134} - {2d1f22a5-fa02-4d66-9a2a-12ab39eba27c} + {ee93df46-e21d-433c-b500-2c4a130af4f6} - {66810fd8-8df3-45a8-99b7-4bcf92224038} + {d27baf62-7fd5-4f21-a096-a79b10887b53} - {31314d80-c80d-4e94-adcc-118125ff9a35} + {4fbc8357-ff74-4ae2-8ba4-88d677cd35a6} - {cde63aa2-178d-4f4f-a0f3-71b9ec5d568b} + {1e296277-0844-4bcb-8913-84097f9ea347} - {b4ce461e-5b9d-4571-9cde-607d8bea3442} + {fdcd64c6-3670-475c-b6ef-24dc1b5254ef} - {8406a20a-d687-49e1-b547-f501873ee45c} + {e02e5e88-f17a-4adf-9ad0-6e951bccb754} - {ad27901a-89e3-4666-aabd-cdc836a1fc17} + {22c8acd6-e2b4-4135-834f-6559c40b8456} - {99ce5375-3565-4add-a133-233d46ee006e} + {6dd6b69f-a286-4491-9e64-e4bfd76501ed} - {7d617013-451c-4f49-9b3c-2f14336af909} + {08210efd-f79f-4982-b94c-38405588e32c} - {8db98792-b008-4859-b1b9-eeab8e0980dd} + {942eb908-d116-4aad-9854-162dbd92116f} - {e6241b6d-3b96-4355-a613-110c07c4863f} + {dcd9985c-7c22-4900-917d-a3826ca33b75} diff --git a/Util/samples/SampleApp/SampleApp.progen b/Util/samples/SampleApp/SampleApp.progen index b1d2420a5..36407c412 100644 --- a/Util/samples/SampleApp/SampleApp.progen +++ b/Util/samples/SampleApp/SampleApp.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Util/samples/SampleServer/SampleServer.progen b/Util/samples/SampleServer/SampleServer.progen index b1d2420a5..36407c412 100644 --- a/Util/samples/SampleServer/SampleServer.progen +++ b/Util/samples/SampleServer/SampleServer.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Util/samples/Units/Units.progen b/Util/samples/Units/Units.progen index 80c2d2653..bb80bca91 100644 --- a/Util/samples/Units/Units.progen +++ b/Util/samples/Units/Units.progen @@ -7,4 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Util\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus diff --git a/Util/samples/pkill/pkill.progen b/Util/samples/pkill/pkill.progen index b1d2420a5..36407c412 100644 --- a/Util/samples/pkill/pkill.progen +++ b/Util/samples/pkill/pkill.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Util/testsuite/TestSuite.progen b/Util/testsuite/TestSuite.progen index 2280fee75..c734b414d 100644 --- a/Util/testsuite/TestSuite.progen +++ b/Util/testsuite/TestSuite.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\XML\\include;..\\..\\JSON\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = iphlpapi.lib diff --git a/Util/testsuite/TestSuite_vs170.vcxproj b/Util/testsuite/TestSuite_vs170.vcxproj index 18b2f8709..b8b109c88 100644 --- a/Util/testsuite/TestSuite_vs170.vcxproj +++ b/Util/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34322.80 TestSuited TestSuited TestSuited @@ -356,15 +356,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -388,11 +392,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -417,15 +425,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -449,11 +461,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -478,15 +494,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -510,11 +530,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -539,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -547,7 +575,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -571,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -608,7 +644,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -632,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -661,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -669,7 +713,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -693,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -722,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -730,7 +782,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -754,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -783,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -791,7 +851,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -815,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -844,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -852,7 +920,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -876,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -921,87 +993,143 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Util/testsuite/TestSuite_vs170.vcxproj.filters b/Util/testsuite/TestSuite_vs170.vcxproj.filters index 9782f4318..2a33cd3da 100644 --- a/Util/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Util/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,64 +2,64 @@ - {6da2c515-b00e-4fae-b2b5-aa3588fa9ee5} + {bf120474-4445-4697-b471-7c39e2d38eda} - {363beeac-3d37-4eda-b2af-967dd3500746} + {a4f8d012-57ef-474e-9064-b8a9e0677f66} - {b6d3f832-90b4-4893-b5c5-50c92c2222da} + {7b1608c9-d746-4dd0-9cab-644082d5da39} - {6e72e80f-b934-4f32-a093-9fcdaa489717} + {cbc96e3c-3fa6-411f-838d-3a3b70bd4c61} - {24d80eaa-600a-4289-8049-251db65b6a04} + {adaeedcf-dc9f-4344-8f11-7822e4f05f68} - {c89f0423-2a46-41e7-8e44-9e0c722e1a2f} + {f1628bfe-3122-4150-8507-005bb1fe7a48} - {1ef062b8-43ea-4e20-a3b4-8100dbf5d3f5} + {a1aa1385-3f4a-4e93-a3b7-8acb6bcfca47} - {2e9a3808-48c8-4169-b04e-29635ebc21af} + {d8941f75-b04e-42af-92e5-23547495c0be} - {da024c3a-2123-4f46-a0f6-9c83ea0dd02e} + {711b44f4-7b07-4bb4-af7f-3f411eaa399d} - {00043fe8-b671-499b-b347-08ba31776766} + {05bb7ce7-8584-4ef7-9eea-9729eb085346} - {2f873f5e-88f6-4eb0-99e5-090c792c425e} + {e1b9169e-7428-4feb-bae2-66cc9f692314} - {dd6f9455-e392-4e80-b23d-b960a7c3ae7e} + {ff7d389a-f0b6-4743-ac01-ea5914efc867} - {3fbdada5-c2d5-492e-809d-e0d1a75ce544} + {d49d5ed0-1d68-4307-8a74-31618cab5b25} - {7e4998f0-fb0a-449f-8e1d-756f8e096e55} + {f4cd4c4a-54b2-4770-b9bc-c0530ffc8cdb} - {9bc91c8d-03d5-4ab3-b5c6-f45d2d73ef9c} + {941b0937-9f2e-4c77-b23c-a972c206ef70} - {eccedab4-9508-4718-b7bf-3e1e1d8bd76d} + {929ec79c-9067-4356-8107-fb26be88d136} - {d41c00e9-b185-4b54-8b48-410f9fae9fb3} + {864bc194-232f-4b00-9e63-6b305a51ae44} - {2656a8b9-839b-4c6c-ad8f-f6f08d85e6e1} + {c4b4debe-4e1b-4c83-97e1-77a99a19965d} - {74c99947-4001-4143-b46f-12fc00f1bb3e} + {d8aa3a59-3d88-43eb-96a2-95d560d02296} - {6f467c16-7a22-4a9e-ba79-6d5025cf2666} + {ad1052ce-ef60-4667-ad7b-826b3cdcb206} @@ -90,10 +90,10 @@ Configuration\Header Files - + Configuration\Header Files - + Configuration\Header Files diff --git a/XML/XML.progen b/XML/XML.progen index da5e6529f..e8b0f0645 100644 --- a/XML/XML.progen +++ b/XML/XML.progen @@ -12,6 +12,6 @@ vc.project.compiler.defines = XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/XML/XML_vs170.vcxproj b/XML/XML_vs170.vcxproj index 426d505ef..7dafeecd3 100644 --- a/XML/XML_vs170.vcxproj +++ b/XML/XML_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34322.80 PocoXMLA64d PocoXMLmdd PocoXMLmtd @@ -344,13 +344,17 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\binA64\PocoXMLA64d.dll true true - ..\binA64\PocoXMLA64d.pdb + $(OutDir)$(TargetName).pdb ..\libA64;%(AdditionalLibraryDirectories) Console ..\libA64\PocoXMLd.lib @@ -376,7 +380,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\binA64\PocoXMLA64.dll @@ -403,11 +411,14 @@ true true - ..\libA64\PocoXMLmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoXMLmtd.lib @@ -432,7 +443,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoXMLmt.lib @@ -451,11 +466,14 @@ true true - ..\libA64\PocoXMLmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoXMLmdd.lib @@ -480,7 +498,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoXMLmd.lib @@ -502,13 +524,17 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoXMLd.dll true true - ..\bin\PocoXMLd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoXMLd.lib @@ -534,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoXML.dll @@ -561,11 +591,14 @@ true true - ..\lib\PocoXMLmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoXMLmtd.lib @@ -590,7 +623,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoXMLmt.lib @@ -609,11 +646,14 @@ true true - ..\lib\PocoXMLmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoXMLmdd.lib @@ -635,11 +675,14 @@ true true - ..\lib\PocoXMLmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoXMLmd.lib @@ -661,13 +704,17 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoXML64d.dll true true - ..\bin64\PocoXML64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoXMLd.lib @@ -693,7 +740,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoXML64.dll @@ -720,11 +771,14 @@ true true - ..\lib64\PocoXMLmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoXMLmtd.lib @@ -749,7 +803,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoXMLmt.lib @@ -768,11 +826,14 @@ true true - ..\lib64\PocoXMLmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoXMLmdd.lib @@ -797,7 +858,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoXMLmd.lib @@ -896,216 +961,358 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true @@ -1127,9 +1334,13 @@ true true true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true @@ -1151,6 +1362,8 @@ true true true + stdcpp17 + stdc11 true @@ -1172,9 +1385,13 @@ true true true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/XML/XML_vs170.vcxproj.filters b/XML/XML_vs170.vcxproj.filters index e45ae3154..81978313e 100644 --- a/XML/XML_vs170.vcxproj.filters +++ b/XML/XML_vs170.vcxproj.filters @@ -2,40 +2,40 @@ - {feb3617d-329e-4cb2-81b7-f593a45bd868} + {01b91afa-ebf6-4ac8-9b98-0d68c6421a50} - {e41ab930-494b-45f0-8541-adadbd6d198b} + {b21671d7-0a08-4d01-9af9-01a120046a89} - {a5f675cc-0c1b-430f-8b9d-e7646d2d78c0} + {dfb379de-c6dc-462b-bea7-b3cb8afc0e67} - {455142d1-3044-4ed6-90ad-401072daa75a} + {67f6a500-649c-498b-8367-2c8ebea0eb99} - {41313b80-122b-49c0-bf8f-0136f157dd3b} + {fa07dc3c-aa0b-4a1c-94a4-bbb95c13081c} - {ad710bdd-0fe9-4f59-87db-86e16c2290b9} + {c42c455b-1085-4ecd-b251-d7f635d685b7} - {91ee4cd9-5574-4591-b3e4-604182e2afd0} + {815e94e8-d409-4af9-b5c3-76ad5bc4c888} - {796bed3f-d216-446a-b113-ace2e0a482ba} + {f9c0dece-6a1a-4bbb-9770-72d2b41ba798} - {b1cb98da-d465-4ce1-b42a-5e94f249cf3c} + {13676f85-7b77-4e42-b347-781fba0cd0b1} - {2f86ca57-6710-444c-8667-c3049841000e} + {7e1f7f43-19ab-4eea-8d8f-c7b220a29012} - {3e5dc539-a989-4a9c-a369-32ddc61f8abe} + {1a0c5add-b2e4-4db9-9cbe-a914bf252995} - {da060f69-71ca-4905-9a5c-37e527417b1c} + {740021f0-b269-4cd7-9f74-81a03e30bd11} diff --git a/XML/samples/DOMParser/DOMParser.progen b/XML/samples/DOMParser/DOMParser.progen index 299a2da6e..cd5b15cf0 100644 --- a/XML/samples/DOMParser/DOMParser.progen +++ b/XML/samples/DOMParser/DOMParser.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/XML/samples/DOMParser/DOMParser_vs170.vcxproj b/XML/samples/DOMParser/DOMParser_vs170.vcxproj index 4d33387c1..5c7e5d7b4 100644 --- a/XML/samples/DOMParser/DOMParser_vs170.vcxproj +++ b/XML/samples/DOMParser/DOMParser_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 DOMParser {70F2F655-67D5-32A1-A99B-D4903547DB3E} DOMParser @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34322.80 + DOMParserd + DOMParserd + DOMParserd + DOMParser + DOMParser + DOMParser DOMParserd DOMParserd DOMParserd @@ -171,6 +250,36 @@ DOMParser DOMParser + + binA64\ + objA64\DOMParser\$(Configuration)\ + true + + + binA64\ + objA64\DOMParser\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\DOMParser\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\DOMParser\$(Configuration)\ + false + + + binA64\static_md\ + objA64\DOMParser\$(Configuration)\ + true + + + binA64\static_md\ + objA64\DOMParser\$(Configuration)\ + false + bin\ obj\DOMParser\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\DOMParser\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\DOMParser.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\DOMParserd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\DOMParser.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\DOMParserd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\DOMParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\DOMParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\DOMParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\DOMParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\DOMParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\DOMParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/XML/samples/DOMParser/DOMParser_vs170.vcxproj.filters b/XML/samples/DOMParser/DOMParser_vs170.vcxproj.filters index a4b900710..6731b18de 100644 --- a/XML/samples/DOMParser/DOMParser_vs170.vcxproj.filters +++ b/XML/samples/DOMParser/DOMParser_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {b084966b-1ad2-4ccf-bbe5-efe179f83df9} + {8a08200a-1a12-4da5-a4cb-d6adf507aba0} - {06049f87-a968-4fc6-a990-d21962913391} + {d2160a53-12e9-4ffd-ad35-0d25d4bf92b1} diff --git a/XML/samples/DOMWriter/DOMWriter.progen b/XML/samples/DOMWriter/DOMWriter.progen index 299a2da6e..cd5b15cf0 100644 --- a/XML/samples/DOMWriter/DOMWriter.progen +++ b/XML/samples/DOMWriter/DOMWriter.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/XML/samples/DOMWriter/DOMWriter_vs170.vcxproj b/XML/samples/DOMWriter/DOMWriter_vs170.vcxproj index 3eb1e1a37..d9c5f386b 100644 --- a/XML/samples/DOMWriter/DOMWriter_vs170.vcxproj +++ b/XML/samples/DOMWriter/DOMWriter_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 DOMWriter {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8} DOMWriter @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34322.80 + DOMWriterd + DOMWriterd + DOMWriterd + DOMWriter + DOMWriter + DOMWriter DOMWriterd DOMWriterd DOMWriterd @@ -171,6 +250,36 @@ DOMWriter DOMWriter + + binA64\ + objA64\DOMWriter\$(Configuration)\ + true + + + binA64\ + objA64\DOMWriter\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\DOMWriter\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\DOMWriter\$(Configuration)\ + false + + + binA64\static_md\ + objA64\DOMWriter\$(Configuration)\ + true + + + binA64\static_md\ + objA64\DOMWriter\$(Configuration)\ + false + bin\ obj\DOMWriter\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\DOMWriter\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\DOMWriter.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\DOMWriterd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\DOMWriter.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\DOMWriterd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\DOMWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\DOMWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\DOMWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\DOMWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\DOMWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\DOMWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/XML/samples/DOMWriter/DOMWriter_vs170.vcxproj.filters b/XML/samples/DOMWriter/DOMWriter_vs170.vcxproj.filters index 30c4e0ea8..1f07e8c83 100644 --- a/XML/samples/DOMWriter/DOMWriter_vs170.vcxproj.filters +++ b/XML/samples/DOMWriter/DOMWriter_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {e01f4712-0b85-4fa6-9ba1-152c87a9dd29} + {60a029ee-84d0-4105-9e6e-d95555057208} - {5388bcc0-ea86-4b35-8764-874f3eb21963} + {c072432c-7405-4762-aa49-4eab4b357375} diff --git a/XML/samples/PrettyPrint/PrettyPrint.progen b/XML/samples/PrettyPrint/PrettyPrint.progen index 299a2da6e..cd5b15cf0 100644 --- a/XML/samples/PrettyPrint/PrettyPrint.progen +++ b/XML/samples/PrettyPrint/PrettyPrint.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/XML/samples/SAXParser/SAXParser.progen b/XML/samples/SAXParser/SAXParser.progen index 299a2da6e..cd5b15cf0 100644 --- a/XML/samples/SAXParser/SAXParser.progen +++ b/XML/samples/SAXParser/SAXParser.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/XML/samples/SAXParser/SAXParser_vs170.vcxproj b/XML/samples/SAXParser/SAXParser_vs170.vcxproj index d40401fa5..466f72605 100644 --- a/XML/samples/SAXParser/SAXParser_vs170.vcxproj +++ b/XML/samples/SAXParser/SAXParser_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 SAXParser {2A54653D-9F55-348B-8F79-A3E454563AE3} SAXParser @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34322.80 + SAXParserd + SAXParserd + SAXParserd + SAXParser + SAXParser + SAXParser SAXParserd SAXParserd SAXParserd @@ -171,6 +250,36 @@ SAXParser SAXParser + + binA64\ + objA64\SAXParser\$(Configuration)\ + true + + + binA64\ + objA64\SAXParser\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\SAXParser\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\SAXParser\$(Configuration)\ + false + + + binA64\static_md\ + objA64\SAXParser\$(Configuration)\ + true + + + binA64\static_md\ + objA64\SAXParser\$(Configuration)\ + false + bin\ obj\SAXParser\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\SAXParser\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\SAXParser.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\SAXParserd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\SAXParser.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\SAXParserd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\SAXParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\SAXParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\SAXParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\SAXParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\SAXParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\SAXParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/XML/samples/SAXParser/SAXParser_vs170.vcxproj.filters b/XML/samples/SAXParser/SAXParser_vs170.vcxproj.filters index 34e4e43a3..5d4bdb707 100644 --- a/XML/samples/SAXParser/SAXParser_vs170.vcxproj.filters +++ b/XML/samples/SAXParser/SAXParser_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {98229444-1ff8-449c-bda1-8f6c0a9a9beb} + {f72f6939-cdf6-4d4b-8201-9f02e0055e05} - {897b1590-82e5-4f34-8ba3-7ebc82ed8879} + {dd54e283-1535-4069-a9d9-34be10276285} diff --git a/XML/samples/samples_vs170.sln b/XML/samples/samples_vs170.sln index f8ba4b079..d32cc1f93 100644 --- a/XML/samples/samples_vs170.sln +++ b/XML/samples/samples_vs170.sln @@ -10,6 +10,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SAXParser", "SAXParser\SAXP EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|ARM64 = debug_shared|ARM64 + release_shared|ARM64 = release_shared|ARM64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 + release_static_mt|ARM64 = release_static_mt|ARM64 + debug_static_md|ARM64 = debug_static_md|ARM64 + release_static_md|ARM64 = release_static_md|ARM64 debug_shared|Win32 = debug_shared|Win32 release_shared|Win32 = release_shared|Win32 debug_static_mt|Win32 = debug_static_mt|Win32 @@ -24,6 +30,24 @@ Global release_static_md|x64 = release_static_md|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_shared|Win32.Build.0 = debug_shared|Win32 {70F2F655-67D5-32A1-A99B-D4903547DB3E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -60,6 +84,24 @@ Global {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_md|x64.ActiveCfg = release_static_md|x64 {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_md|x64.Build.0 = release_static_md|x64 {70F2F655-67D5-32A1-A99B-D4903547DB3E}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_shared|Win32.Build.0 = debug_shared|Win32 {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -96,6 +138,24 @@ Global {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_md|x64.ActiveCfg = release_static_md|x64 {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_md|x64.Build.0 = release_static_md|x64 {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_shared|Win32.Build.0 = debug_shared|Win32 {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -132,6 +192,24 @@ Global {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_md|x64.ActiveCfg = release_static_md|x64 {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_md|x64.Build.0 = release_static_md|x64 {DFA97011-8DD4-3A84-A0C9-EB2101BD6082}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {2A54653D-9F55-348B-8F79-A3E454563AE3}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_shared|Win32.Build.0 = debug_shared|Win32 {2A54653D-9F55-348B-8F79-A3E454563AE3}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 diff --git a/XML/testsuite/TestSuite.progen b/XML/testsuite/TestSuite.progen index 99ba45b05..09d789f80 100644 --- a/XML/testsuite/TestSuite.progen +++ b/XML/testsuite/TestSuite.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = iphlpapi.lib diff --git a/Zip/Zip.progen b/Zip/Zip.progen index c3cddae59..fbcba85bf 100644 --- a/Zip/Zip.progen +++ b/Zip/Zip.progen @@ -13,7 +13,7 @@ vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.disableWarnings = 4244;4267 -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/Zip/Zip_vs170.vcxproj b/Zip/Zip_vs170.vcxproj index b0d0ea11e..af0765c63 100644 --- a/Zip/Zip_vs170.vcxproj +++ b/Zip/Zip_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34322.80 PocoZipA64d PocoZipmdd PocoZipmtd @@ -344,15 +344,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) ..\binA64\PocoZipA64d.dll true true - ..\binA64\PocoZipA64d.pdb + $(OutDir)$(TargetName).pdb ..\libA64;%(AdditionalLibraryDirectories) Console ..\libA64\PocoZipd.lib @@ -378,8 +382,12 @@ Level3 Default + $(OutDir)$(TargetName).pdb 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -407,12 +415,15 @@ true true - ..\libA64\PocoZipmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoZipmtd.lib @@ -437,8 +448,12 @@ Level3 Default + $(OutDir)$(TargetName).pdb 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoZipmt.lib @@ -457,12 +472,15 @@ true true - ..\libA64\PocoZipmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoZipmdd.lib @@ -487,8 +505,12 @@ Level3 Default + $(OutDir)$(TargetName).pdb 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\libA64\PocoZipmd.lib @@ -510,15 +532,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) ..\bin\PocoZipd.dll true true - ..\bin\PocoZipd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoZipd.lib @@ -544,8 +570,12 @@ Level3 Default + $(OutDir)$(TargetName).pdb 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -573,12 +603,15 @@ true true - ..\lib\PocoZipmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoZipmtd.lib @@ -603,8 +636,12 @@ Level3 Default + $(OutDir)$(TargetName).pdb 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoZipmt.lib @@ -623,12 +660,15 @@ true true - ..\lib\PocoZipmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoZipmdd.lib @@ -650,12 +690,15 @@ true true - ..\lib\PocoZipmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -678,15 +721,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) ..\bin64\PocoZip64d.dll true true - ..\bin64\PocoZip64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoZipd.lib @@ -712,8 +759,12 @@ Level3 Default + $(OutDir)$(TargetName).pdb 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -741,12 +792,15 @@ true true - ..\lib64\PocoZipmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoZipmtd.lib @@ -771,8 +825,12 @@ Level3 Default + $(OutDir)$(TargetName).pdb 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoZipmt.lib @@ -791,12 +849,15 @@ true true - ..\lib64\PocoZipmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoZipmdd.lib @@ -821,8 +882,12 @@ Level3 Default + $(OutDir)$(TargetName).pdb 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoZipmd.lib @@ -856,69 +921,113 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Zip/Zip_vs170.vcxproj.filters b/Zip/Zip_vs170.vcxproj.filters index 5b4ba506f..5b761c9f0 100644 --- a/Zip/Zip_vs170.vcxproj.filters +++ b/Zip/Zip_vs170.vcxproj.filters @@ -2,22 +2,22 @@ - {1132c396-4c68-4f9c-a114-dc58e197eb75} + {b93d89ba-f62a-4cec-b531-d1ebbb43cf72} - {35246ee0-7a15-4c85-acb7-ec7ea4739eb1} + {dd3162fa-9348-4495-871f-9ce5a78be181} - {6066923c-48b9-45a3-924e-b6756cfb26ea} + {b5c6e1af-a887-4a12-847b-aac19cad216f} - {e42e0200-5517-4ee4-8258-a7af55d8568a} + {fee1c853-3a9a-4ad7-9eb8-4e0959442ebd} - {845786c4-d8e0-4b43-a0a6-14e30b863a08} + {347bae64-89a9-4e25-8672-d0eb5ce7b967} - {9e91e8a0-d142-4101-81d4-28bb0fdfcfc6} + {a83f3972-4019-4d5f-b8d8-3404d84478aa} diff --git a/Zip/samples/unzip/unzip.progen b/Zip/samples/unzip/unzip.progen index 32577f864..2df44952a 100644 --- a/Zip/samples/unzip/unzip.progen +++ b/Zip/samples/unzip/unzip.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Zip\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Zip/samples/zip/zip.progen b/Zip/samples/zip/zip.progen index 32577f864..2df44952a 100644 --- a/Zip/samples/zip/zip.progen +++ b/Zip/samples/zip/zip.progen @@ -7,5 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Zip\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Zip/testsuite/TestSuite.progen b/Zip/testsuite/TestSuite.progen index 1617f52d8..132ab0546 100644 --- a/Zip/testsuite/TestSuite.progen +++ b/Zip/testsuite/TestSuite.progen @@ -7,6 +7,6 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include -vc.project.compiler.additionalOptions = /Zc:__cplusplus /std:c++17 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = iphlpapi.lib diff --git a/build/config/AIX-GCC b/build/config/AIX-GCC index d039e8ac8..285db360a 100644 --- a/build/config/AIX-GCC +++ b/build/config/AIX-GCC @@ -20,7 +20,7 @@ CXX = ${CROSS_COMPILE}g++ LINK = $(CXX) LIB = $(CROSS_COMPILE)ar -cr -X32_64 RANLIB = $(CROSS_COMPILE)ranlib -## Please note: AIX does NOT have library versioning per se (there is no 'SONAME' capability). +## Please note: AIX does NOT have library versioning per se (there is no 'SONAME' capability). SHLIB = $(CXX) $(LDFLAGS) -shared -Wl,-bexpfull -o $@ SHLIBLN = $(POCO_BASE)/build/script/shlibln STRIP = $(CROSS_COMPILE)strip -X32_64 @@ -32,7 +32,7 @@ MKDIR = mkdir -p LDFLAGS += -Wl,-bbigtoc ## http://www.ibm.com/developerworks/aix/library/au-gnu.html: -## > "/Using -brtl, the AIX linker will look for libraries with both the .a and +## > "/Using -brtl, the AIX linker will look for libraries with both the .a and ## > .so extensions, such as libfoo.a and libfoo.so. ## > Without -brtl, the AIX linker looks only for libfoo.a # @@ -47,7 +47,7 @@ SHAREDLIBLINKEXT = .a CFLAGS = $(SANITIZEFLAGS) -std=c11 CFLAGS32 = -maix32 CFLAGS64 = -maix64 -CXXFLAGS = $(SANITIZEFLAGS) -std=c++14 -Wno-sign-compare +CXXFLAGS = $(SANITIZEFLAGS) -std=c++17 -Wno-sign-compare CXXFLAGS32 = -maix32 CXXFLAGS64 = -maix64 SHLIBFLAGS = -Wl,-bh:5 -Wl,-bnoipath -Wl,-blibpath:/usr/lib:/lib -Wl,-blibsuff:so -Wl,-bautoexp -Wl,-bnoentry -Wl,-bM:SRE @@ -58,7 +58,7 @@ LINKFLAGS32 = -maix32 LINKFLAGS64 = -maix64 STATICOPT_CC = STATICOPT_CXX = -STATICOPT_LINK = +STATICOPT_LINK = SHAREDOPT_CC = -fPIC SHAREDOPT_CXX = -fPIC SHAREDOPT_LINK = diff --git a/build/config/AppleTV b/build/config/AppleTV index 8f916a3e7..d686c147e 100644 --- a/build/config/AppleTV +++ b/build/config/AppleTV @@ -66,7 +66,7 @@ SHAREDLIBLINKEXT = .dylib CFLAGS = $(OSFLAGS) -std=gnu99 CFLAGS32 = CFLAGS64 = -CXXFLAGS = $(OSFLAGS) -std=c++11 -stdlib=libc++ -Wall -Wno-sign-compare +CXXFLAGS = $(OSFLAGS) -std=c++17 -stdlib=libc++ -Wall -Wno-sign-compare CXXFLAGS32 = CXXFLAGS64 = LINKFLAGS = $(OSFLAGS) -stdlib=libc++ diff --git a/build/config/BeagleBoard b/build/config/BeagleBoard index c3e6784fc..eb43943e0 100644 --- a/build/config/BeagleBoard +++ b/build/config/BeagleBoard @@ -38,7 +38,7 @@ SHAREDLIBLINKEXT = .so # # Compiler and Linker Flags # -CFLAGS = -std=c99 -mfpu=neon -mfloat-abi=softfp -march=armv7-a +CFLAGS = -std=c11 -mfpu=neon -mfloat-abi=softfp -march=armv7-a CFLAGS32 = CFLAGS64 = CXXFLAGS = -mfpu=neon -mfloat-abi=softfp -march=armv7-a diff --git a/build/config/ELDK b/build/config/ELDK index de0ffaa15..0594d1dd4 100644 --- a/build/config/ELDK +++ b/build/config/ELDK @@ -38,7 +38,7 @@ SHAREDLIBLINKEXT = .so # # Compiler and Linker Flags # -CFLAGS = -std=c99 -Isrc +CFLAGS = -std=c11 -Isrc CFLAGS32 = CFLAGS64 = CXXFLAGS = diff --git a/build/config/Linux-SolarisStudio b/build/config/Linux-SolarisStudio index e50c865d1..bf2f035fc 100644 --- a/build/config/Linux-SolarisStudio +++ b/build/config/Linux-SolarisStudio @@ -39,10 +39,10 @@ SHAREDLIBLINKEXT = .so CFLAGS = -mt CFLAGS32 = CFLAGS64 = -CXXFLAGS = -mt -std=c++03 -erroff=hidevf +CXXFLAGS = -mt -std=c++17 -erroff=hidevf CXXFLAGS32 = CXXFLAGS64 = -LINKFLAGS = -mt -std=c++03 +LINKFLAGS = -mt -std=c++17 LINKFLAGS32 = LINKFLAGS64 = STATICOPT_CC = diff --git a/build/config/Linux-clang b/build/config/Linux-clang index 43ac30d71..d84617dd8 100644 --- a/build/config/Linux-clang +++ b/build/config/Linux-clang @@ -10,6 +10,10 @@ # LINKMODE ?= SHARED +ARCHFLAGS ?= -arch $(POCO_HOST_OSARCH) +SANITIZEFLAGS ?= +OSFLAGS ?= + # # Define Tools # @@ -36,13 +40,13 @@ SHAREDLIBLINKEXT = .so # # Compiler and Linker Flags # -CFLAGS = -std=c99 -CFLAGS32 = -CFLAGS64 = -CXXFLAGS = -Wall -Wno-sign-compare -CXXFLAGS32 = -CXXFLAGS64 = -LINKFLAGS = +CFLAGS = $(ARCHFLAGS) $(OSFLAGS) $(SANITIZEFLAGS) -std=c11 +CFLAGS32 = $(ARCHFLAGS) $(OSFLAGS) $(SANITIZEFLAGS) +CFLAGS64 = $(ARCHFLAGS) $(OSFLAGS) $(SANITIZEFLAGS) +CXXFLAGS = $(ARCHFLAGS) $(OSFLAGS) $(SANITIZEFLAGS) -std=c++17 -Wall -Wno-sign-compare +CXXFLAGS32 = $(ARCHFLAGS) $(OSFLAGS) $(SANITIZEFLAGS) +CXXFLAGS64 = $(ARCHFLAGS) $(OSFLAGS) $(SANITIZEFLAGS) +LINKFLAGS = $(ARCHFLAGS) $(OSFLAGS) $(SANITIZEFLAGS) LINKFLAGS32 = LINKFLAGS64 = STATICOPT_CC = diff --git a/build/config/PPC-Linux b/build/config/PPC-Linux index 338050741..fd2f82c9d 100644 --- a/build/config/PPC-Linux +++ b/build/config/PPC-Linux @@ -38,7 +38,7 @@ SHAREDLIBLINKEXT = .so # # Compiler and Linker Flags # -CFLAGS = -std=c99 -Isrc +CFLAGS = -std=c11 -Isrc CFLAGS32 = CFLAGS64 = CXXFLAGS = diff --git a/build/config/SmartOS-gcc b/build/config/SmartOS-gcc index cea8bfef9..349733dd8 100644 --- a/build/config/SmartOS-gcc +++ b/build/config/SmartOS-gcc @@ -36,7 +36,7 @@ SHAREDLIBLINKEXT = .so # # Compiler and Linker Flags # -CFLAGS = -std=gnu99 +CFLAGS = -std=c11 CFLAGS32 = CFLAGS64 = CXXFLAGS = -Wall -Wno-sign-compare diff --git a/build/config/WatchOS b/build/config/WatchOS index c64865ae0..e0cb3235e 100644 --- a/build/config/WatchOS +++ b/build/config/WatchOS @@ -66,7 +66,7 @@ SHAREDLIBLINKEXT = .dylib CFLAGS = $(OSFLAGS) CFLAGS32 = CFLAGS64 = -CXXFLAGS = $(OSFLAGS) -std=c++11 -stdlib=libc++ -Wall -Wno-sign-compare +CXXFLAGS = $(OSFLAGS) -std=c++17 -stdlib=libc++ -Wall -Wno-sign-compare CXXFLAGS32 = CXXFLAGS64 = LINKFLAGS = $(OSFLAGS) -stdlib=libc++ diff --git a/build/config/Yocto b/build/config/Yocto index f066e8974..af8025229 100644 --- a/build/config/Yocto +++ b/build/config/Yocto @@ -39,7 +39,7 @@ SHAREDLIBLINKEXT = .so # # Compiler and Linker Flags # -CFLAGS = -std=c99 +CFLAGS = -std=c11 CFLAGS32 = CFLAGS64 = CXXFLAGS = -Wall -Wno-sign-compare diff --git a/build_vs140.cmd b/build_vs140.cmd deleted file mode 100644 index abe604d88..000000000 --- a/build_vs140.cmd +++ /dev/null @@ -1,2 +0,0 @@ -@echo off -buildwin 140 build shared both Win32 samples tests diff --git a/build_vs150.cmd b/build_vs150.cmd deleted file mode 100644 index 4bc4a3180..000000000 --- a/build_vs150.cmd +++ /dev/null @@ -1,2 +0,0 @@ -@echo off -buildwin 150 build shared both Win32 samples tests diff --git a/buildwin.ps1 b/buildwin.ps1 index 6025f3244..9ff172a0b 100644 --- a/buildwin.ps1 +++ b/buildwin.ps1 @@ -4,7 +4,7 @@ # Usage: # ------ # buildwin.ps1 [-poco_base dir] -# [-vs 140 | 150 | 160| 170] +# [-vs 160| 170] # [-action build | rebuild | clean] # [-linkmode shared | static_mt | static_md | all] # [-config release | debug | both] @@ -26,8 +26,8 @@ Param [string] $poco_base = $([System.Environment]::GetEnvironmentVariable('POCO_BASE')), [Parameter()] - [ValidateSet(140, 150, 160, 170)] - [int] $vs = 140, + [ValidateSet(160, 170)] + [int] $vs = 170, [Parameter()] [ValidateSet('build', 'rebuild', 'clean')] @@ -73,7 +73,7 @@ Param function Add-VSCOMNTOOLS([int] $vsver) { - if ($vsver -ge 150) + if ($vsver -ge 160) { $vssetup= $([Environment]::GetFolderPath("MyDocuments")) $vssetup= Join-Path $vssetup "WindowsPowerShell" @@ -83,10 +83,6 @@ function Add-VSCOMNTOOLS([int] $vsver) { Install-Module VSSetup -Scope CurrentUser -Force } - if ($vsver -eq 150) - { - $range='[15.0,16.0)' - } if ($vsver -eq 160) { $range='[16.0,17.0)' @@ -110,14 +106,6 @@ function Add-VSCOMNTOOLS([int] $vsver) } $vscomntools = $installationPath.psobject.properties.Value; - if ($vsver -eq 150) - { - set-item -force -path "ENV:VS150COMNTOOLS" -value "$vscomntools\Common7\Tools\" - Write-Host "`n----------------------------------------" -ForegroundColor Yellow - Write-Host "VS150COMNTOOLS=$env:VS150COMNTOOLS" -ForegroundColor Yellow - Write-Host "----------------------------------------" -ForegroundColor Yellow - Write-Host "" - } if ($vsver -eq 160) { set-item -force -path "ENV:VS160COMNTOOLS" -value "$vscomntools\Common7\Tools\" @@ -144,7 +132,7 @@ function Add-Env-Var([string] $lib, [string] $var) $libvar = Get-Content "Env:${lib}_$var" if (-not $envvar.Contains($libvar)) { - $envvar = $envvar + ";$libvar" + $envvar = $envvar + ";$libvar" Set-Content "Env:${var}" $envvar } } @@ -154,11 +142,7 @@ function Set-Environment { if ($poco_base -eq '') { $script:poco_base = Get-Location } - switch ( $vs ) - { - 140 { } - default { Add-VSCOMNTOOLS $vs } - } + Add-VSCOMNTOOLS $vs if (-Not $Env:PATH.Contains("$Env:POCO_BASE\bin64;$Env:POCO_BASE\bin;")) { $Env:PATH = "$Env:POCO_BASE\bin64;$Env:POCO_BASE\bin;$Env:PATH" } @@ -191,11 +175,7 @@ function Set-Environment if ($platform -eq 'x64') { $CommandArg = "amd64" } elseif ($platform -eq 'ARM64') { $CommandArg = "ARM64" } else { $CommandArg = "x86" } - if ($vs -eq 150) - { - $Command = Resolve-Path "$($vsdir)\..\..\VC\Auxiliary\Build\vcvarsall.bat" - $script:msbuild_exe = Resolve-Path "$($vsdir)\..\..\MSBuild\15.0\Bin\MSBuild.exe" - } else { + if ($vs -eq 160) { $Command = Resolve-Path "$($vsdir)\..\..\VC\Auxiliary\Build\vcvarsall.bat" @@ -213,7 +193,7 @@ function Set-Environment $Command = Resolve-Path "$($vsdir)\..\..\VC\vcvarsall.bat" $script:msbuild_exe = "MSBuild.exe" } - }} + } $tempFile = [IO.Path]::GetTempFileName() cmd /c " `"$Command`" $CommandArg && set > `"$tempFile`" " @@ -234,7 +214,7 @@ function Process-Input Write-Host 'Usage:' Write-Host '------' Write-Host 'buildwin.ps1 [-poco_base ]' - Write-Host ' [-vs 140 | 150 | 160 | 170]' + Write-Host ' [-vs 160 | 170]' Write-Host ' [-action build | rebuild | clean]' Write-Host ' [-linkmode shared | static_mt | static_md | all]' Write-Host ' [-config release | debug | both]' @@ -562,9 +542,7 @@ function Build { Process-Input - if ($vs -lt 100) { $extension = 'vcproj' } - else { $extension = 'vcxproj' } - + $extension = 'vcxproj' BuildComponents $extension "lib" BuildComponents $extension "test" BuildComponents $extension "sample" diff --git a/doc/00200-GettingStarted.page b/doc/00200-GettingStarted.page index 7732b8743..fba509ff6 100644 --- a/doc/00200-GettingStarted.page +++ b/doc/00200-GettingStarted.page @@ -168,11 +168,21 @@ system. This requires Windows PowerShell. Usage: - C:\%POCO_BASE%\openssl\build.ps1 [-openssl_release 1.0.0 | 1.1.0] - [-vs_version 150 | 140 | 120 | 110 | 100 | 90] - [-config release | debug | both] - [-platform Win32 | x64] - [-library shared | static] + C:\%POCO_BASE%\openssl\buildwin.ps1 [-poco_base dir] + [-vs 160| 170] + [-action build | rebuild | clean] + [-linkmode shared | static_mt | static_md | all] + [-config release | debug | both] + [-platform Win32 | x64 | ARM64 | WEC2013] + [-samples] + [-tests] + [-omit "Lib1X,LibY,LibZ,..."] + [-components "Lib1X,LibY,LibZ,..."] + [-tool msbuild | devenv] + [-useenv env | noenv] + [-verbosity minimal | quiet | normal | detailed | diagnostic] + [-openssl_base dir] + [-mysql_base dir] ---- Example: Building OpenSSL 1.1.0, DLL release build for x64 with Visual Studio 2015: diff --git a/progen.ps1 b/progen.ps1 index 94831359c..4832923d2 100644 --- a/progen.ps1 +++ b/progen.ps1 @@ -4,7 +4,7 @@ # Usage: # ------ # progen.ps1 [-poco_base dir] -# [-vs 140 | 150 | 160| 170] +# [-vs 160| 170] # [-omit "Lib1X,LibY,LibZ,..."] # [-components "Lib1X,LibY,LibZ,..."] # [-platform Win32 | x64 | ARM64 | WEC2013] @@ -19,7 +19,7 @@ Param [string] $poco_base = $([System.Environment]::GetEnvironmentVariable('POCO_BASE')), [Parameter()] - [ValidateSet(140, 150, 160, 170)] + [ValidateSet(160, 170)] [int] $vs = 170, [string] $omit, @@ -44,7 +44,7 @@ function ProcessInput Write-Host 'Usage:' Write-Host '------' Write-Host 'progen.ps1 [-poco_base ]' - Write-Host ' [-vs 140 | 150 | 160 | 170]' + Write-Host ' [-vs 160 | 170]' Write-Host ' [-omit "Lib1X,LibY,LibZ,..."]' Write-Host ' [-components "Lib1X,LibY,LibZ,..."]' Write-Host ' [-samples]' From 5bdbab6c5c9d696555297f08574a6d51d761fbef Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Thu, 1 Feb 2024 09:53:06 +0100 Subject: [PATCH 288/395] enh(SQLite): SQLite FTS5 #4367 (#4433) --- Data/SQLite/CMakeLists.txt | 4 + Data/SQLite/src/sqlite3.c | 14576 +++++++++++++++++++++++------------ Data/SQLite/src/sqlite3.h | 345 +- 3 files changed, 10018 insertions(+), 4907 deletions(-) diff --git a/Data/SQLite/CMakeLists.txt b/Data/SQLite/CMakeLists.txt index e62fcf23d..263acc1ad 100644 --- a/Data/SQLite/CMakeLists.txt +++ b/Data/SQLite/CMakeLists.txt @@ -58,6 +58,10 @@ else() SQLITE_OMIT_TCL_VARIABLE SQLITE_OMIT_DEPRECATED ) + option(ENABLE_DATA_SQLITE_FTS5 "Enable SQLite FTS5 Extension" OFF) + if(ENABLE_DATA_SQLITE_FTS5) + target_compile_definitions(DataSQLite PRIVATE SQLITE_ENABLE_FTS5) + endif() endif() POCO_INSTALL(DataSQLite) diff --git a/Data/SQLite/src/sqlite3.c b/Data/SQLite/src/sqlite3.c index 1884b0823..139ee46a6 100644 --- a/Data/SQLite/src/sqlite3.c +++ b/Data/SQLite/src/sqlite3.c @@ -1,6 +1,6 @@ /****************************************************************************** ** This file is an amalgamation of many separate C source files from SQLite -** version 3.43.1. By combining all the individual C code files into this +** version 3.45.1. By combining all the individual C code files into this ** single large file, the entire code can be compiled as a single translation ** unit. This allows many compilers to do optimizations that would not be ** possible if the files were compiled separately. Performance improvements @@ -18,7 +18,7 @@ ** separate file. This file contains only code for the core SQLite library. ** ** The content in this amalgamation comes from Fossil check-in -** d3a40c05c49e1a49264912b1a05bc2143ac. +** e876e51a0ed5c5b3126f52e532044363a014. */ #define SQLITE_CORE 1 #define SQLITE_AMALGAMATION 1 @@ -459,9 +459,9 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.43.1" -#define SQLITE_VERSION_NUMBER 3043001 -#define SQLITE_SOURCE_ID "2023-09-11 12:01:27 2d3a40c05c49e1a49264912b1a05bc2143ac0e7c3df588276ce80a4cbc9bd1b0" +#define SQLITE_VERSION "3.45.1" +#define SQLITE_VERSION_NUMBER 3045001 +#define SQLITE_SOURCE_ID "2024-01-30 16:01:20 e876e51a0ed5c5b3126f52e532044363a014bc594cfefa87ffb5b82257cc467a" /* ** CAPI3REF: Run-Time Library Version Numbers @@ -2440,7 +2440,7 @@ struct sqlite3_mem_methods { ** is stored in each sorted record and the required column values loaded ** from the database as records are returned in sorted order. The default ** value for this option is to never use this optimization. Specifying a -** negative value for this option restores the default behaviour. +** negative value for this option restores the default behavior. ** This option is only available if SQLite is compiled with the ** [SQLITE_ENABLE_SORTER_REFERENCES] compile-time option. ** @@ -2615,7 +2615,7 @@ struct sqlite3_mem_methods { ** database handle, SQLite checks if this will mean that there are now no ** connections at all to the database. If so, it performs a checkpoint ** operation before closing the connection. This option may be used to -** override this behaviour. The first parameter passed to this operation +** override this behavior. The first parameter passed to this operation ** is an integer - positive to disable checkpoints-on-close, or zero (the ** default) to enable them, and negative to leave the setting unchanged. ** The second parameter is a pointer to an integer @@ -4267,14 +4267,17 @@ SQLITE_API void sqlite3_free_filename(sqlite3_filename); ** ** ** ^The sqlite3_errmsg() and sqlite3_errmsg16() return English-language -** text that describes the error, as either UTF-8 or UTF-16 respectively. +** text that describes the error, as either UTF-8 or UTF-16 respectively, +** or NULL if no error message is available. +** (See how SQLite handles [invalid UTF] for exceptions to this rule.) ** ^(Memory to hold the error message string is managed internally. ** The application does not need to worry about freeing the result. ** However, the error string might be overwritten or deallocated by ** subsequent calls to other SQLite interface functions.)^ ** -** ^The sqlite3_errstr() interface returns the English-language text -** that describes the [result code], as UTF-8. +** ^The sqlite3_errstr(E) interface returns the English-language text +** that describes the [result code] E, as UTF-8, or NULL if E is not an +** result code for which a text error message is available. ** ^(Memory to hold the error message string is managed internally ** and must not be freed by the application)^. ** @@ -5638,6 +5641,7 @@ SQLITE_API int sqlite3_finalize(sqlite3_stmt *pStmt); */ SQLITE_API int sqlite3_reset(sqlite3_stmt *pStmt); + /* ** CAPI3REF: Create Or Redefine SQL Functions ** KEYWORDS: {function creation routines} @@ -5884,13 +5888,27 @@ SQLITE_API int sqlite3_create_window_function( ** ** ** [[SQLITE_SUBTYPE]]
      SQLITE_SUBTYPE
      -** The SQLITE_SUBTYPE flag indicates to SQLite that a function may call +** The SQLITE_SUBTYPE flag indicates to SQLite that a function might call ** [sqlite3_value_subtype()] to inspect the sub-types of its arguments. -** Specifying this flag makes no difference for scalar or aggregate user -** functions. However, if it is not specified for a user-defined window -** function, then any sub-types belonging to arguments passed to the window -** function may be discarded before the window function is called (i.e. -** sqlite3_value_subtype() will always return 0). +** This flag instructs SQLite to omit some corner-case optimizations that +** might disrupt the operation of the [sqlite3_value_subtype()] function, +** causing it to return zero rather than the correct subtype(). +** SQL functions that invokes [sqlite3_value_subtype()] should have this +** property. If the SQLITE_SUBTYPE property is omitted, then the return +** value from [sqlite3_value_subtype()] might sometimes be zero even though +** a non-zero subtype was specified by the function argument expression. +** +** [[SQLITE_RESULT_SUBTYPE]]
      SQLITE_RESULT_SUBTYPE
      +** The SQLITE_RESULT_SUBTYPE flag indicates to SQLite that a function might call +** [sqlite3_result_subtype()] to cause a sub-type to be associated with its +** result. +** Every function that invokes [sqlite3_result_subtype()] should have this +** property. If it does not, then the call to [sqlite3_result_subtype()] +** might become a no-op if the function is used as term in an +** [expression index]. On the other hand, SQL functions that never invoke +** [sqlite3_result_subtype()] should avoid setting this property, as the +** purpose of this property is to disable certain optimizations that are +** incompatible with subtypes. **
      ** */ @@ -5898,6 +5916,7 @@ SQLITE_API int sqlite3_create_window_function( #define SQLITE_DIRECTONLY 0x000080000 #define SQLITE_SUBTYPE 0x000100000 #define SQLITE_INNOCUOUS 0x000200000 +#define SQLITE_RESULT_SUBTYPE 0x001000000 /* ** CAPI3REF: Deprecated Functions @@ -6094,6 +6113,12 @@ SQLITE_API int sqlite3_value_encoding(sqlite3_value*); ** information can be used to pass a limited amount of context from ** one SQL function to another. Use the [sqlite3_result_subtype()] ** routine to set the subtype for the return value of an SQL function. +** +** Every [application-defined SQL function] that invoke this interface +** should include the [SQLITE_SUBTYPE] property in the text +** encoding argument when the function is [sqlite3_create_function|registered]. +** If the [SQLITE_SUBTYPE] property is omitted, then sqlite3_value_subtype() +** might return zero instead of the upstream subtype in some corner cases. */ SQLITE_API unsigned int sqlite3_value_subtype(sqlite3_value*); @@ -6192,48 +6217,56 @@ SQLITE_API sqlite3 *sqlite3_context_db_handle(sqlite3_context*); ** METHOD: sqlite3_context ** ** These functions may be used by (non-aggregate) SQL functions to -** associate metadata with argument values. If the same value is passed to -** multiple invocations of the same SQL function during query execution, under -** some circumstances the associated metadata may be preserved. An example -** of where this might be useful is in a regular-expression matching -** function. The compiled version of the regular expression can be stored as -** metadata associated with the pattern string. +** associate auxiliary data with argument values. If the same argument +** value is passed to multiple invocations of the same SQL function during +** query execution, under some circumstances the associated auxiliary data +** might be preserved. An example of where this might be useful is in a +** regular-expression matching function. The compiled version of the regular +** expression can be stored as auxiliary data associated with the pattern string. ** Then as long as the pattern string remains the same, ** the compiled regular expression can be reused on multiple ** invocations of the same function. ** -** ^The sqlite3_get_auxdata(C,N) interface returns a pointer to the metadata +** ^The sqlite3_get_auxdata(C,N) interface returns a pointer to the auxiliary data ** associated by the sqlite3_set_auxdata(C,N,P,X) function with the Nth argument ** value to the application-defined function. ^N is zero for the left-most -** function argument. ^If there is no metadata +** function argument. ^If there is no auxiliary data ** associated with the function argument, the sqlite3_get_auxdata(C,N) interface ** returns a NULL pointer. ** -** ^The sqlite3_set_auxdata(C,N,P,X) interface saves P as metadata for the N-th -** argument of the application-defined function. ^Subsequent +** ^The sqlite3_set_auxdata(C,N,P,X) interface saves P as auxiliary data for the +** N-th argument of the application-defined function. ^Subsequent ** calls to sqlite3_get_auxdata(C,N) return P from the most recent -** sqlite3_set_auxdata(C,N,P,X) call if the metadata is still valid or -** NULL if the metadata has been discarded. +** sqlite3_set_auxdata(C,N,P,X) call if the auxiliary data is still valid or +** NULL if the auxiliary data has been discarded. ** ^After each call to sqlite3_set_auxdata(C,N,P,X) where X is not NULL, ** SQLite will invoke the destructor function X with parameter P exactly -** once, when the metadata is discarded. -** SQLite is free to discard the metadata at any time, including:
        +** once, when the auxiliary data is discarded. +** SQLite is free to discard the auxiliary data at any time, including:
          **
        • ^(when the corresponding function parameter changes)^, or **
        • ^(when [sqlite3_reset()] or [sqlite3_finalize()] is called for the ** SQL statement)^, or **
        • ^(when sqlite3_set_auxdata() is invoked again on the same ** parameter)^, or **
        • ^(during the original sqlite3_set_auxdata() call when a memory -** allocation error occurs.)^
        +** allocation error occurs.)^ +**
      • ^(during the original sqlite3_set_auxdata() call if the function +** is evaluated during query planning instead of during query execution, +** as sometimes happens with [SQLITE_ENABLE_STAT4].)^
      ** -** Note the last bullet in particular. The destructor X in +** Note the last two bullets in particular. The destructor X in ** sqlite3_set_auxdata(C,N,P,X) might be called immediately, before the ** sqlite3_set_auxdata() interface even returns. Hence sqlite3_set_auxdata() ** should be called near the end of the function implementation and the ** function implementation should not make any use of P after -** sqlite3_set_auxdata() has been called. +** sqlite3_set_auxdata() has been called. Furthermore, a call to +** sqlite3_get_auxdata() that occurs immediately after a corresponding call +** to sqlite3_set_auxdata() might still return NULL if an out-of-memory +** condition occurred during the sqlite3_set_auxdata() call or if the +** function is being evaluated during query planning rather than during +** query execution. ** -** ^(In practice, metadata is preserved between function calls for +** ^(In practice, auxiliary data is preserved between function calls for ** function parameters that are compile-time constants, including literal ** values and [parameters] and expressions composed from the same.)^ ** @@ -6243,10 +6276,67 @@ SQLITE_API sqlite3 *sqlite3_context_db_handle(sqlite3_context*); ** ** These routines must be called from the same thread in which ** the SQL function is running. +** +** See also: [sqlite3_get_clientdata()] and [sqlite3_set_clientdata()]. */ SQLITE_API void *sqlite3_get_auxdata(sqlite3_context*, int N); SQLITE_API void sqlite3_set_auxdata(sqlite3_context*, int N, void*, void (*)(void*)); +/* +** CAPI3REF: Database Connection Client Data +** METHOD: sqlite3 +** +** These functions are used to associate one or more named pointers +** with a [database connection]. +** A call to sqlite3_set_clientdata(D,N,P,X) causes the pointer P +** to be attached to [database connection] D using name N. Subsequent +** calls to sqlite3_get_clientdata(D,N) will return a copy of pointer P +** or a NULL pointer if there were no prior calls to +** sqlite3_set_clientdata() with the same values of D and N. +** Names are compared using strcmp() and are thus case sensitive. +** +** If P and X are both non-NULL, then the destructor X is invoked with +** argument P on the first of the following occurrences: +**
        +**
      • An out-of-memory error occurs during the call to +** sqlite3_set_clientdata() which attempts to register pointer P. +**
      • A subsequent call to sqlite3_set_clientdata(D,N,P,X) is made +** with the same D and N parameters. +**
      • The database connection closes. SQLite does not make any guarantees +** about the order in which destructors are called, only that all +** destructors will be called exactly once at some point during the +** database connection closing process. +**
      +** +** SQLite does not do anything with client data other than invoke +** destructors on the client data at the appropriate time. The intended +** use for client data is to provide a mechanism for wrapper libraries +** to store additional information about an SQLite database connection. +** +** There is no limit (other than available memory) on the number of different +** client data pointers (with different names) that can be attached to a +** single database connection. However, the implementation is optimized +** for the case of having only one or two different client data names. +** Applications and wrapper libraries are discouraged from using more than +** one client data name each. +** +** There is no way to enumerate the client data pointers +** associated with a database connection. The N parameter can be thought +** of as a secret key such that only code that knows the secret key is able +** to access the associated data. +** +** Security Warning: These interfaces should not be exposed in scripting +** languages or in other circumstances where it might be possible for an +** an attacker to invoke them. Any agent that can invoke these interfaces +** can probably also take control of the process. +** +** Database connection client data is only available for SQLite +** version 3.44.0 ([dateof:3.44.0]) and later. +** +** See also: [sqlite3_set_auxdata()] and [sqlite3_get_auxdata()]. +*/ +SQLITE_API void *sqlite3_get_clientdata(sqlite3*,const char*); +SQLITE_API int sqlite3_set_clientdata(sqlite3*, const char*, void*, void(*)(void*)); /* ** CAPI3REF: Constants Defining Special Destructor Behavior @@ -6448,6 +6538,20 @@ SQLITE_API int sqlite3_result_zeroblob64(sqlite3_context*, sqlite3_uint64 n); ** higher order bits are discarded. ** The number of subtype bytes preserved by SQLite might increase ** in future releases of SQLite. +** +** Every [application-defined SQL function] that invokes this interface +** should include the [SQLITE_RESULT_SUBTYPE] property in its +** text encoding argument when the SQL function is +** [sqlite3_create_function|registered]. If the [SQLITE_RESULT_SUBTYPE] +** property is omitted from the function that invokes sqlite3_result_subtype(), +** then in some cases the sqlite3_result_subtype() might fail to set +** the result subtype. +** +** If SQLite is compiled with -DSQLITE_STRICT_SUBTYPE=1, then any +** SQL function that invokes the sqlite3_result_subtype() interface +** and that does not have the SQLITE_RESULT_SUBTYPE property will raise +** an error. Future versions of SQLite might enable -DSQLITE_STRICT_SUBTYPE=1 +** by default. */ SQLITE_API void sqlite3_result_subtype(sqlite3_context*,unsigned int); @@ -6879,7 +6983,7 @@ SQLITE_API int sqlite3_db_readonly(sqlite3 *db, const char *zDbName); SQLITE_API int sqlite3_txn_state(sqlite3*,const char *zSchema); /* -** CAPI3REF: Allowed return values from [sqlite3_txn_state()] +** CAPI3REF: Allowed return values from sqlite3_txn_state() ** KEYWORDS: {transaction state} ** ** These constants define the current transaction state of a database file. @@ -7011,7 +7115,7 @@ SQLITE_API void *sqlite3_rollback_hook(sqlite3*, void(*)(void *), void*); ** ^Each call to the sqlite3_autovacuum_pages() interface overrides all ** previous invocations for that database connection. ^If the callback ** argument (C) to sqlite3_autovacuum_pages(D,C,P,X) is a NULL pointer, -** then the autovacuum steps callback is cancelled. The return value +** then the autovacuum steps callback is canceled. The return value ** from sqlite3_autovacuum_pages() is normally SQLITE_OK, but might ** be some other error code if something goes wrong. The current ** implementation will only return SQLITE_OK or SQLITE_MISUSE, but other @@ -7530,6 +7634,10 @@ struct sqlite3_module { /* The methods above are in versions 1 and 2 of the sqlite_module object. ** Those below are for version 3 and greater. */ int (*xShadowName)(const char*); + /* The methods above are in versions 1 through 3 of the sqlite_module object. + ** Those below are for version 4 and greater. */ + int (*xIntegrity)(sqlite3_vtab *pVTab, const char *zSchema, + const char *zTabName, int mFlags, char **pzErr); }; /* @@ -8017,7 +8125,7 @@ SQLITE_API int sqlite3_blob_reopen(sqlite3_blob *, sqlite3_int64); ** code is returned and the transaction rolled back. ** ** Calling this function with an argument that is not a NULL pointer or an -** open blob handle results in undefined behaviour. ^Calling this routine +** open blob handle results in undefined behavior. ^Calling this routine ** with a null pointer (such as would be returned by a failed call to ** [sqlite3_blob_open()]) is a harmless no-op. ^Otherwise, if this function ** is passed a valid open blob handle, the values returned by the @@ -8244,9 +8352,11 @@ SQLITE_API int sqlite3_vfs_unregister(sqlite3_vfs*); ** ** ^(Some systems (for example, Windows 95) do not support the operation ** implemented by sqlite3_mutex_try(). On those systems, sqlite3_mutex_try() -** will always return SQLITE_BUSY. The SQLite core only ever uses -** sqlite3_mutex_try() as an optimization so this is acceptable -** behavior.)^ +** will always return SQLITE_BUSY. In most cases the SQLite core only uses +** sqlite3_mutex_try() as an optimization, so this is acceptable +** behavior. The exceptions are unix builds that set the +** SQLITE_ENABLE_SETLK_TIMEOUT build option. In that case a working +** sqlite3_mutex_try() is required.)^ ** ** ^The sqlite3_mutex_leave() routine exits a mutex that was ** previously entered by the same thread. The behavior @@ -8497,6 +8607,7 @@ SQLITE_API int sqlite3_test_control(int op, ...); #define SQLITE_TESTCTRL_PRNG_SAVE 5 #define SQLITE_TESTCTRL_PRNG_RESTORE 6 #define SQLITE_TESTCTRL_PRNG_RESET 7 /* NOT USED */ +#define SQLITE_TESTCTRL_FK_NO_ACTION 7 #define SQLITE_TESTCTRL_BITVEC_TEST 8 #define SQLITE_TESTCTRL_FAULT_INSTALL 9 #define SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS 10 @@ -8504,6 +8615,7 @@ SQLITE_API int sqlite3_test_control(int op, ...); #define SQLITE_TESTCTRL_ASSERT 12 #define SQLITE_TESTCTRL_ALWAYS 13 #define SQLITE_TESTCTRL_RESERVE 14 /* NOT USED */ +#define SQLITE_TESTCTRL_JSON_SELFCHECK 14 #define SQLITE_TESTCTRL_OPTIMIZATIONS 15 #define SQLITE_TESTCTRL_ISKEYWORD 16 /* NOT USED */ #define SQLITE_TESTCTRL_SCRATCHMALLOC 17 /* NOT USED */ @@ -9558,8 +9670,8 @@ SQLITE_API int sqlite3_backup_pagecount(sqlite3_backup *p); ** blocked connection already has a registered unlock-notify callback, ** then the new callback replaces the old.)^ ^If sqlite3_unlock_notify() is ** called with a NULL pointer as its second argument, then any existing -** unlock-notify callback is cancelled. ^The blocked connections -** unlock-notify callback may also be cancelled by closing the blocked +** unlock-notify callback is canceled. ^The blocked connections +** unlock-notify callback may also be canceled by closing the blocked ** connection using [sqlite3_close()]. ** ** The unlock-notify callback is not reentrant. If an application invokes @@ -10862,6 +10974,13 @@ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_recover(sqlite3 *db, const c ** SQLITE_SERIALIZE_NOCOPY bit is set but no contiguous copy ** of the database exists. ** +** After the call, if the SQLITE_SERIALIZE_NOCOPY bit had been set, +** the returned buffer content will remain accessible and unchanged +** until either the next write operation on the connection or when +** the connection is closed, and applications must not modify the +** buffer. If the bit had been clear, the returned buffer will not +** be accessed by SQLite after the call. +** ** A call to sqlite3_serialize(D,S,P,F) might return NULL even if the ** SQLITE_SERIALIZE_NOCOPY bit is omitted from argument F if a memory ** allocation error occurs. @@ -10910,6 +11029,9 @@ SQLITE_API unsigned char *sqlite3_serialize( ** SQLite will try to increase the buffer size using sqlite3_realloc64() ** if writes on the database cause it to grow larger than M bytes. ** +** Applications must not modify the buffer P or invalidate it before +** the database connection D is closed. +** ** The sqlite3_deserialize() interface will fail with SQLITE_BUSY if the ** database is currently in a read transaction or is involved in a backup ** operation. @@ -10918,6 +11040,13 @@ SQLITE_API unsigned char *sqlite3_serialize( ** S argument to sqlite3_deserialize(D,S,P,N,M,F) is "temp" then the ** function returns SQLITE_ERROR. ** +** The deserialized database should not be in [WAL mode]. If the database +** is in WAL mode, then any attempt to use the database file will result +** in an [SQLITE_CANTOPEN] error. The application can set the +** [file format version numbers] (bytes 18 and 19) of the input database P +** to 0x01 prior to invoking sqlite3_deserialize(D,S,P,N,M,F) to force the +** database file into rollback mode and work around this limitation. +** ** If sqlite3_deserialize(D,S,P,N,M,F) fails for any reason and if the ** SQLITE_DESERIALIZE_FREEONCLOSE bit is set in argument F, then ** [sqlite3_free()] is invoked on argument P prior to returning. @@ -11990,6 +12119,18 @@ SQLITE_API int sqlite3changeset_concat( ); +/* +** CAPI3REF: Upgrade the Schema of a Changeset/Patchset +*/ +SQLITE_API int sqlite3changeset_upgrade( + sqlite3 *db, + const char *zDb, + int nIn, const void *pIn, /* Input changeset */ + int *pnOut, void **ppOut /* OUT: Inverse of input */ +); + + + /* ** CAPI3REF: Changegroup Handle ** @@ -12036,6 +12177,38 @@ typedef struct sqlite3_changegroup sqlite3_changegroup; */ SQLITE_API int sqlite3changegroup_new(sqlite3_changegroup **pp); +/* +** CAPI3REF: Add a Schema to a Changegroup +** METHOD: sqlite3_changegroup_schema +** +** This method may be used to optionally enforce the rule that the changesets +** added to the changegroup handle must match the schema of database zDb +** ("main", "temp", or the name of an attached database). If +** sqlite3changegroup_add() is called to add a changeset that is not compatible +** with the configured schema, SQLITE_SCHEMA is returned and the changegroup +** object is left in an undefined state. +** +** A changeset schema is considered compatible with the database schema in +** the same way as for sqlite3changeset_apply(). Specifically, for each +** table in the changeset, there exists a database table with: +** +**
        +**
      • The name identified by the changeset, and +**
      • at least as many columns as recorded in the changeset, and +**
      • the primary key columns in the same position as recorded in +** the changeset. +**
      +** +** The output of the changegroup object always has the same schema as the +** database nominated using this function. In cases where changesets passed +** to sqlite3changegroup_add() have fewer columns than the corresponding table +** in the database schema, these are filled in using the default column +** values from the database schema. This makes it possible to combined +** changesets that have different numbers of columns for a single table +** within a changegroup, provided that they are otherwise compatible. +*/ +SQLITE_API int sqlite3changegroup_schema(sqlite3_changegroup*, sqlite3*, const char *zDb); + /* ** CAPI3REF: Add A Changeset To A Changegroup ** METHOD: sqlite3_changegroup @@ -12104,13 +12277,18 @@ SQLITE_API int sqlite3changegroup_new(sqlite3_changegroup **pp); ** If the new changeset contains changes to a table that is already present ** in the changegroup, then the number of columns and the position of the ** primary key columns for the table must be consistent. If this is not the -** case, this function fails with SQLITE_SCHEMA. If the input changeset -** appears to be corrupt and the corruption is detected, SQLITE_CORRUPT is -** returned. Or, if an out-of-memory condition occurs during processing, this -** function returns SQLITE_NOMEM. In all cases, if an error occurs the state -** of the final contents of the changegroup is undefined. +** case, this function fails with SQLITE_SCHEMA. Except, if the changegroup +** object has been configured with a database schema using the +** sqlite3changegroup_schema() API, then it is possible to combine changesets +** with different numbers of columns for a single table, provided that +** they are otherwise compatible. ** -** If no error occurs, SQLITE_OK is returned. +** If the input changeset appears to be corrupt and the corruption is +** detected, SQLITE_CORRUPT is returned. Or, if an out-of-memory condition +** occurs during processing, this function returns SQLITE_NOMEM. +** +** In all cases, if an error occurs the state of the final contents of the +** changegroup is undefined. If no error occurs, SQLITE_OK is returned. */ SQLITE_API int sqlite3changegroup_add(sqlite3_changegroup*, int nData, void *pData); @@ -12375,10 +12553,17 @@ SQLITE_API int sqlite3changeset_apply_v2( **
    16. an insert change if all fields of the conflicting row match ** the row being inserted. ** +** +**
      SQLITE_CHANGESETAPPLY_FKNOACTION
      +** If this flag it set, then all foreign key constraints in the target +** database behave as if they were declared with "ON UPDATE NO ACTION ON +** DELETE NO ACTION", even if they are actually CASCADE, RESTRICT, SET NULL +** or SET DEFAULT. */ #define SQLITE_CHANGESETAPPLY_NOSAVEPOINT 0x0001 #define SQLITE_CHANGESETAPPLY_INVERT 0x0002 #define SQLITE_CHANGESETAPPLY_IGNORENOOP 0x0004 +#define SQLITE_CHANGESETAPPLY_FKNOACTION 0x0008 /* ** CAPI3REF: Constants Passed To The Conflict Handler @@ -12944,8 +13129,11 @@ struct Fts5PhraseIter { ** created with the "columnsize=0" option. ** ** xColumnText: -** This function attempts to retrieve the text of column iCol of the -** current document. If successful, (*pz) is set to point to a buffer +** If parameter iCol is less than zero, or greater than or equal to the +** number of columns in the table, SQLITE_RANGE is returned. +** +** Otherwise, this function attempts to retrieve the text of column iCol of +** the current document. If successful, (*pz) is set to point to a buffer ** containing the text in utf-8 encoding, (*pn) is set to the size in bytes ** (not characters) of the buffer and SQLITE_OK is returned. Otherwise, ** if an error occurs, an SQLite error code is returned and the final values @@ -12955,8 +13143,10 @@ struct Fts5PhraseIter { ** Returns the number of phrases in the current query expression. ** ** xPhraseSize: -** Returns the number of tokens in phrase iPhrase of the query. Phrases -** are numbered starting from zero. +** If parameter iCol is less than zero, or greater than or equal to the +** number of phrases in the current query, as returned by xPhraseCount, +** 0 is returned. Otherwise, this function returns the number of tokens in +** phrase iPhrase of the query. Phrases are numbered starting from zero. ** ** xInstCount: ** Set *pnInst to the total number of occurrences of all phrases within @@ -12972,12 +13162,13 @@ struct Fts5PhraseIter { ** Query for the details of phrase match iIdx within the current row. ** Phrase matches are numbered starting from zero, so the iIdx argument ** should be greater than or equal to zero and smaller than the value -** output by xInstCount(). +** output by xInstCount(). If iIdx is less than zero or greater than +** or equal to the value returned by xInstCount(), SQLITE_RANGE is returned. ** -** Usually, output parameter *piPhrase is set to the phrase number, *piCol +** Otherwise, output parameter *piPhrase is set to the phrase number, *piCol ** to the column in which it occurs and *piOff the token offset of the -** first token of the phrase. Returns SQLITE_OK if successful, or an error -** code (i.e. SQLITE_NOMEM) if an error occurs. +** first token of the phrase. SQLITE_OK is returned if successful, or an +** error code (i.e. SQLITE_NOMEM) if an error occurs. ** ** This API can be quite slow if used with an FTS5 table created with the ** "detail=none" or "detail=column" option. @@ -13003,6 +13194,10 @@ struct Fts5PhraseIter { ** Invoking Api.xUserData() returns a copy of the pointer passed as ** the third argument to pUserData. ** +** If parameter iPhrase is less than zero, or greater than or equal to +** the number of phrases in the query, as returned by xPhraseCount(), +** this function returns SQLITE_RANGE. +** ** If the callback function returns any value other than SQLITE_OK, the ** query is abandoned and the xQueryPhrase function returns immediately. ** If the returned value is SQLITE_DONE, xQueryPhrase returns SQLITE_OK. @@ -13117,9 +13312,42 @@ struct Fts5PhraseIter { ** ** xPhraseNextColumn() ** See xPhraseFirstColumn above. +** +** xQueryToken(pFts5, iPhrase, iToken, ppToken, pnToken) +** This is used to access token iToken of phrase iPhrase of the current +** query. Before returning, output parameter *ppToken is set to point +** to a buffer containing the requested token, and *pnToken to the +** size of this buffer in bytes. +** +** If iPhrase or iToken are less than zero, or if iPhrase is greater than +** or equal to the number of phrases in the query as reported by +** xPhraseCount(), or if iToken is equal to or greater than the number of +** tokens in the phrase, SQLITE_RANGE is returned and *ppToken and *pnToken + are both zeroed. +** +** The output text is not a copy of the query text that specified the +** token. It is the output of the tokenizer module. For tokendata=1 +** tables, this includes any embedded 0x00 and trailing data. +** +** xInstToken(pFts5, iIdx, iToken, ppToken, pnToken) +** This is used to access token iToken of phrase hit iIdx within the +** current row. If iIdx is less than zero or greater than or equal to the +** value returned by xInstCount(), SQLITE_RANGE is returned. Otherwise, +** output variable (*ppToken) is set to point to a buffer containing the +** matching document token, and (*pnToken) to the size of that buffer in +** bytes. This API is not available if the specified token matches a +** prefix query term. In that case both output variables are always set +** to 0. +** +** The output text is not a copy of the document text that was tokenized. +** It is the output of the tokenizer module. For tokendata=1 tables, this +** includes any embedded 0x00 and trailing data. +** +** This API can be quite slow if used with an FTS5 table created with the +** "detail=none" or "detail=column" option. */ struct Fts5ExtensionApi { - int iVersion; /* Currently always set to 2 */ + int iVersion; /* Currently always set to 3 */ void *(*xUserData)(Fts5Context*); @@ -13154,6 +13382,13 @@ struct Fts5ExtensionApi { int (*xPhraseFirstColumn)(Fts5Context*, int iPhrase, Fts5PhraseIter*, int*); void (*xPhraseNextColumn)(Fts5Context*, Fts5PhraseIter*, int *piCol); + + /* Below this point are iVersion>=3 only */ + int (*xQueryToken)(Fts5Context*, + int iPhrase, int iToken, + const char **ppToken, int *pnToken + ); + int (*xInstToken)(Fts5Context*, int iIdx, int iToken, const char**, int*); }; /* @@ -13640,7 +13875,7 @@ struct fts5_api { ** max_page_count macro. */ #ifndef SQLITE_MAX_PAGE_COUNT -# define SQLITE_MAX_PAGE_COUNT 1073741823 +# define SQLITE_MAX_PAGE_COUNT 0xfffffffe /* 4294967294 */ #endif /* @@ -13769,6 +14004,29 @@ struct fts5_api { # endif #endif +/* +** Enable SQLITE_USE_SEH by default on MSVC builds. Only omit +** SEH support if the -DSQLITE_OMIT_SEH option is given. +*/ +#if defined(_MSC_VER) && !defined(SQLITE_OMIT_SEH) +# define SQLITE_USE_SEH 1 +#else +# undef SQLITE_USE_SEH +#endif + +/* +** Enable SQLITE_DIRECT_OVERFLOW_READ, unless the build explicitly +** disables it using -DSQLITE_DIRECT_OVERFLOW_READ=0 +*/ +#if defined(SQLITE_DIRECT_OVERFLOW_READ) && SQLITE_DIRECT_OVERFLOW_READ+1==1 + /* Disable if -DSQLITE_DIRECT_OVERFLOW_READ=0 */ +# undef SQLITE_DIRECT_OVERFLOW_READ +#else + /* In all other cases, enable */ +# define SQLITE_DIRECT_OVERFLOW_READ 1 +#endif + + /* ** The SQLITE_THREADSAFE macro must be defined as 0, 1, or 2. ** 0 means mutexes are permanently disable and the library is never @@ -14662,16 +14920,33 @@ typedef INT16_TYPE LogEst; ** using C-preprocessor macros. If that is unsuccessful, or if ** -DSQLITE_BYTEORDER=0 is set, then byte-order is determined ** at run-time. +** +** If you are building SQLite on some obscure platform for which the +** following ifdef magic does not work, you can always include either: +** +** -DSQLITE_BYTEORDER=1234 +** +** or +** +** -DSQLITE_BYTEORDER=4321 +** +** to cause the build to work for little-endian or big-endian processors, +** respectively. */ -#ifndef SQLITE_BYTEORDER -# if defined(i386) || defined(__i386__) || defined(_M_IX86) || \ +#ifndef SQLITE_BYTEORDER /* Replicate changes at tag-20230904a */ +# if defined(__BYTE_ORDER__) && __BYTE_ORDER__==__ORDER_BIG_ENDIAN__ +# define SQLITE_BYTEORDER 4321 +# elif defined(__BYTE_ORDER__) && __BYTE_ORDER__==__ORDER_LITTLE_ENDIAN__ +# define SQLITE_BYTEORDER 1234 +# elif defined(__BIG_ENDIAN__) && __BIG_ENDIAN__==1 +# define SQLITE_BYTEORDER 4321 +# elif defined(i386) || defined(__i386__) || defined(_M_IX86) || \ defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || \ defined(_M_AMD64) || defined(_M_ARM) || defined(__x86) || \ defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64) -# define SQLITE_BYTEORDER 1234 -# elif defined(sparc) || defined(__ppc__) || \ - defined(__ARMEB__) || defined(__AARCH64EB__) -# define SQLITE_BYTEORDER 4321 +# define SQLITE_BYTEORDER 1234 +# elif defined(sparc) || defined(__ARMEB__) || defined(__AARCH64EB__) +# define SQLITE_BYTEORDER 4321 # else # define SQLITE_BYTEORDER 0 # endif @@ -14995,6 +15270,7 @@ typedef struct Column Column; typedef struct Cte Cte; typedef struct CteUse CteUse; typedef struct Db Db; +typedef struct DbClientData DbClientData; typedef struct DbFixer DbFixer; typedef struct Schema Schema; typedef struct Expr Expr; @@ -15633,7 +15909,7 @@ SQLITE_PRIVATE sqlite3_file *sqlite3PagerJrnlFile(Pager*); SQLITE_PRIVATE const char *sqlite3PagerJournalname(Pager*); SQLITE_PRIVATE void *sqlite3PagerTempSpace(Pager*); SQLITE_PRIVATE int sqlite3PagerIsMemdb(Pager*); -SQLITE_PRIVATE void sqlite3PagerCacheStat(Pager *, int, int, int *); +SQLITE_PRIVATE void sqlite3PagerCacheStat(Pager *, int, int, u64*); SQLITE_PRIVATE void sqlite3PagerClearCache(Pager*); SQLITE_PRIVATE int sqlite3SectorSize(sqlite3_file *); @@ -16220,6 +16496,7 @@ typedef struct VdbeOpList VdbeOpList; #define P4_INT64 (-13) /* P4 is a 64-bit signed integer */ #define P4_INTARRAY (-14) /* P4 is a vector of 32-bit integers */ #define P4_FUNCCTX (-15) /* P4 is a pointer to an sqlite3_context object */ +#define P4_TABLEREF (-16) /* Like P4_TABLE, but reference counted */ /* Error message codes for OP_Halt */ #define P5_ConstraintNotNull 1 @@ -16435,19 +16712,22 @@ typedef struct VdbeOpList VdbeOpList; #define OP_VCreate 171 #define OP_VDestroy 172 #define OP_VOpen 173 -#define OP_VInitIn 174 /* synopsis: r[P2]=ValueList(P1,P3) */ -#define OP_VColumn 175 /* synopsis: r[P3]=vcolumn(P2) */ -#define OP_VRename 176 -#define OP_Pagecount 177 -#define OP_MaxPgcnt 178 -#define OP_ClrSubtype 179 /* synopsis: r[P1].subtype = 0 */ -#define OP_FilterAdd 180 /* synopsis: filter(P1) += key(P3@P4) */ -#define OP_Trace 181 -#define OP_CursorHint 182 -#define OP_ReleaseReg 183 /* synopsis: release r[P1@P2] mask P3 */ -#define OP_Noop 184 -#define OP_Explain 185 -#define OP_Abortable 186 +#define OP_VCheck 174 +#define OP_VInitIn 175 /* synopsis: r[P2]=ValueList(P1,P3) */ +#define OP_VColumn 176 /* synopsis: r[P3]=vcolumn(P2) */ +#define OP_VRename 177 +#define OP_Pagecount 178 +#define OP_MaxPgcnt 179 +#define OP_ClrSubtype 180 /* synopsis: r[P1].subtype = 0 */ +#define OP_GetSubtype 181 /* synopsis: r[P2] = r[P1].subtype */ +#define OP_SetSubtype 182 /* synopsis: r[P2].subtype = r[P1] */ +#define OP_FilterAdd 183 /* synopsis: filter(P1) += key(P3@P4) */ +#define OP_Trace 184 +#define OP_CursorHint 185 +#define OP_ReleaseReg 186 /* synopsis: release r[P1@P2] mask P3 */ +#define OP_Noop 187 +#define OP_Explain 188 +#define OP_Abortable 189 /* Properties such as "out2" or "jump" that are specified in ** comments following the "case" for each opcode in the vdbe.c @@ -16482,9 +16762,9 @@ typedef struct VdbeOpList VdbeOpList; /* 144 */ 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,\ /* 152 */ 0x00, 0x10, 0x00, 0x00, 0x06, 0x10, 0x00, 0x04,\ /* 160 */ 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\ -/* 168 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x50, 0x40,\ -/* 176 */ 0x00, 0x10, 0x10, 0x02, 0x00, 0x00, 0x00, 0x00,\ -/* 184 */ 0x00, 0x00, 0x00,} +/* 168 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x10, 0x50,\ +/* 176 */ 0x40, 0x00, 0x10, 0x10, 0x02, 0x12, 0x12, 0x00,\ +/* 184 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,} /* The resolve3P2Values() routine is able to run faster if it knows ** the value of the largest JUMP opcode. The smaller the maximum @@ -17393,6 +17673,7 @@ struct sqlite3 { i64 nDeferredCons; /* Net deferred constraints this transaction. */ i64 nDeferredImmCons; /* Net deferred immediate constraints */ int *pnBytesFreed; /* If not NULL, increment this in DbFree() */ + DbClientData *pDbData; /* sqlite3_set_clientdata() content */ #ifdef SQLITE_ENABLE_UNLOCK_NOTIFY /* The following variables are all protected by the STATIC_MAIN ** mutex, not by sqlite3.mutex. They are used by code in notify.c. @@ -17475,6 +17756,7 @@ struct sqlite3 { /* the count using a callback. */ #define SQLITE_CorruptRdOnly HI(0x00002) /* Prohibit writes due to error */ #define SQLITE_ReadUncommit HI(0x00004) /* READ UNCOMMITTED in shared-cache */ +#define SQLITE_FkNoAction HI(0x00008) /* Treat all FK as NO ACTION */ /* Flags used only if debugging */ #ifdef SQLITE_DEBUG @@ -17643,14 +17925,15 @@ struct FuncDestructor { #define SQLITE_FUNC_SLOCHNG 0x2000 /* "Slow Change". Value constant during a ** single query - might change over time */ #define SQLITE_FUNC_TEST 0x4000 /* Built-in testing functions */ -/* 0x8000 -- available for reuse */ +#define SQLITE_FUNC_RUNONLY 0x8000 /* Cannot be used by valueFromFunction */ #define SQLITE_FUNC_WINDOW 0x00010000 /* Built-in window-only function */ #define SQLITE_FUNC_INTERNAL 0x00040000 /* For use by NestedParse() only */ #define SQLITE_FUNC_DIRECT 0x00080000 /* Not for use in TRIGGERs or VIEWs */ -#define SQLITE_FUNC_SUBTYPE 0x00100000 /* Result likely to have sub-type */ +/* SQLITE_SUBTYPE 0x00100000 // Consumer of subtypes */ #define SQLITE_FUNC_UNSAFE 0x00200000 /* Function has side effects */ #define SQLITE_FUNC_INLINE 0x00400000 /* Functions implemented in-line */ #define SQLITE_FUNC_BUILTIN 0x00800000 /* This is a built-in function */ +/* SQLITE_RESULT_SUBTYPE 0x01000000 // Generator of subtypes */ #define SQLITE_FUNC_ANYORDER 0x08000000 /* count/min/max aggregate */ /* Identifier numbers for each in-line function */ @@ -17742,10 +18025,11 @@ struct FuncDestructor { #define MFUNCTION(zName, nArg, xPtr, xFunc) \ {nArg, SQLITE_FUNC_BUILTIN|SQLITE_FUNC_CONSTANT|SQLITE_UTF8, \ xPtr, 0, xFunc, 0, 0, 0, #zName, {0} } -#define JFUNCTION(zName, nArg, iArg, xFunc) \ - {nArg, SQLITE_FUNC_BUILTIN|SQLITE_DETERMINISTIC|\ - SQLITE_FUNC_CONSTANT|SQLITE_UTF8, \ - SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, 0, #zName, {0} } +#define JFUNCTION(zName, nArg, bUseCache, bWS, bRS, bJsonB, iArg, xFunc) \ + {nArg, SQLITE_FUNC_BUILTIN|SQLITE_DETERMINISTIC|SQLITE_FUNC_CONSTANT|\ + SQLITE_UTF8|((bUseCache)*SQLITE_FUNC_RUNONLY)|\ + ((bRS)*SQLITE_SUBTYPE)|((bWS)*SQLITE_RESULT_SUBTYPE), \ + SQLITE_INT_TO_PTR(iArg|((bJsonB)*JSON_BLOB)),0,xFunc,0, 0, 0, #zName, {0} } #define INLINE_FUNC(zName, nArg, iArg, mFlags) \ {nArg, SQLITE_FUNC_BUILTIN|\ SQLITE_UTF8|SQLITE_FUNC_INLINE|SQLITE_FUNC_CONSTANT|(mFlags), \ @@ -18380,6 +18664,7 @@ struct Index { unsigned isCovering:1; /* True if this is a covering index */ unsigned noSkipScan:1; /* Do not try to use skip-scan if true */ unsigned hasStat1:1; /* aiRowLogEst values come from sqlite_stat1 */ + unsigned bLowQual:1; /* sqlite_stat1 says this is a low-quality index */ unsigned bNoQuery:1; /* Do not use this index to optimize queries */ unsigned bAscKeyBug:1; /* True if the bba7b69f9849b5bf bug applies */ unsigned bHasVCol:1; /* Index references one or more VIRTUAL columns */ @@ -18490,6 +18775,10 @@ struct AggInfo { FuncDef *pFunc; /* The aggregate function implementation */ int iDistinct; /* Ephemeral table used to enforce DISTINCT */ int iDistAddr; /* Address of OP_OpenEphemeral */ + int iOBTab; /* Ephemeral table to implement ORDER BY */ + u8 bOBPayload; /* iOBTab has payload columns separate from key */ + u8 bOBUnique; /* Enforce uniqueness on iOBTab keys */ + u8 bUseSubtype; /* Transfer subtype info through sorter */ } *aFunc; int nFunc; /* Number of entries in aFunc[] */ u32 selId; /* Select to which this AggInfo belongs */ @@ -18674,7 +18963,7 @@ struct Expr { #define EP_Reduced 0x004000 /* Expr struct EXPR_REDUCEDSIZE bytes only */ #define EP_Win 0x008000 /* Contains window functions */ #define EP_TokenOnly 0x010000 /* Expr struct EXPR_TOKENONLYSIZE bytes only */ - /* 0x020000 // Available for reuse */ +#define EP_FullSize 0x020000 /* Expr structure must remain full sized */ #define EP_IfNullRow 0x040000 /* The TK_IF_NULL_ROW opcode */ #define EP_Unlikely 0x080000 /* unlikely() or likelihood() function */ #define EP_ConstFunc 0x100000 /* A SQLITE_FUNC_CONSTANT or _SLOCHNG function */ @@ -18704,6 +18993,7 @@ struct Expr { #define ExprClearProperty(E,P) (E)->flags&=~(P) #define ExprAlwaysTrue(E) (((E)->flags&(EP_OuterON|EP_IsTrue))==EP_IsTrue) #define ExprAlwaysFalse(E) (((E)->flags&(EP_OuterON|EP_IsFalse))==EP_IsFalse) +#define ExprIsFullSize(E) (((E)->flags&(EP_Reduced|EP_TokenOnly))==0) /* Macros used to ensure that the correct members of unions are accessed ** in Expr. @@ -18821,6 +19111,7 @@ struct ExprList { #define ENAME_NAME 0 /* The AS clause of a result set */ #define ENAME_SPAN 1 /* Complete text of the result set expression */ #define ENAME_TAB 2 /* "DB.TABLE.NAME" for the result set */ +#define ENAME_ROWID 3 /* "DB.TABLE._rowid_" for * expansion of rowid */ /* ** An instance of this structure can hold a simple list of identifiers, @@ -19021,6 +19312,7 @@ struct NameContext { int nRef; /* Number of names resolved by this context */ int nNcErr; /* Number of errors encountered while resolving names */ int ncFlags; /* Zero or more NC_* flags defined below */ + u32 nNestedSelect; /* Number of nested selects using this NC */ Select *pWinSelect; /* SELECT statement for any window functions */ }; @@ -19429,6 +19721,7 @@ struct Parse { int *aLabel; /* Space to hold the labels */ ExprList *pConstExpr;/* Constant expressions */ IndexedExpr *pIdxEpr;/* List of expressions used by active indexes */ + IndexedExpr *pIdxPartExpr; /* Exprs constrained by index WHERE clauses */ Token constraintName;/* Name of the constraint currently being parsed */ yDbMask writeMask; /* Start a write transaction on these databases */ yDbMask cookieMask; /* Bitmask of schema verified databases */ @@ -19700,6 +19993,7 @@ struct Returning { int iRetCur; /* Transient table holding RETURNING results */ int nRetCol; /* Number of in pReturnEL after expansion */ int iRetReg; /* Register array for holding a row of RETURNING */ + char zName[40]; /* Name of trigger: "sqlite_returning_%p" */ }; /* @@ -19735,6 +20029,9 @@ struct sqlite3_str { ** ** 3. Make a (read-only) copy of a read-only RCStr string using ** sqlite3RCStrRef(). +** +** "String" is in the name, but an RCStr object can also be used to hold +** binary data. */ struct RCStr { u64 nRCRef; /* Number of references */ @@ -19793,6 +20090,9 @@ struct Sqlite3Config { u8 bSmallMalloc; /* Avoid large memory allocations if true */ u8 bExtraSchemaChecks; /* Verify type,name,tbl_name in schema */ u8 bUseLongDouble; /* Make use of long double */ +#ifdef SQLITE_DEBUG + u8 bJsonSelfcheck; /* Double-check JSON parsing */ +#endif int mxStrlen; /* Maximum string length */ int neverCorrupt; /* Database is always well-formed */ int szLookaside; /* Default lookaside buffer size */ @@ -20000,6 +20300,16 @@ struct CteUse { }; +/* Client data associated with sqlite3_set_clientdata() and +** sqlite3_get_clientdata(). +*/ +struct DbClientData { + DbClientData *pNext; /* Next in a linked list */ + void *pData; /* The data */ + void (*xDestructor)(void*); /* Destructor. Might be NULL */ + char zName[1]; /* Name of this client data. MUST BE LAST */ +}; + #ifdef SQLITE_DEBUG /* ** An instance of the TreeView object is used for printing the content of @@ -20404,9 +20714,12 @@ SQLITE_PRIVATE void sqlite3PExprAddSelect(Parse*, Expr*, Select*); SQLITE_PRIVATE Expr *sqlite3ExprAnd(Parse*,Expr*, Expr*); SQLITE_PRIVATE Expr *sqlite3ExprSimplifiedAndOr(Expr*); SQLITE_PRIVATE Expr *sqlite3ExprFunction(Parse*,ExprList*, const Token*, int); +SQLITE_PRIVATE void sqlite3ExprAddFunctionOrderBy(Parse*,Expr*,ExprList*); +SQLITE_PRIVATE void sqlite3ExprOrderByAggregateError(Parse*,Expr*); SQLITE_PRIVATE void sqlite3ExprFunctionUsable(Parse*,const Expr*,const FuncDef*); SQLITE_PRIVATE void sqlite3ExprAssignVarNumber(Parse*, Expr*, u32); SQLITE_PRIVATE void sqlite3ExprDelete(sqlite3*, Expr*); +SQLITE_PRIVATE void sqlite3ExprDeleteGeneric(sqlite3*,void*); SQLITE_PRIVATE void sqlite3ExprDeferredDelete(Parse*, Expr*); SQLITE_PRIVATE void sqlite3ExprUnmapAndDelete(Parse*, Expr*); SQLITE_PRIVATE ExprList *sqlite3ExprListAppend(Parse*,ExprList*,Expr*); @@ -20416,6 +20729,7 @@ SQLITE_PRIVATE void sqlite3ExprListSetSortOrder(ExprList*,int,int); SQLITE_PRIVATE void sqlite3ExprListSetName(Parse*,ExprList*,const Token*,int); SQLITE_PRIVATE void sqlite3ExprListSetSpan(Parse*,ExprList*,const char*,const char*); SQLITE_PRIVATE void sqlite3ExprListDelete(sqlite3*, ExprList*); +SQLITE_PRIVATE void sqlite3ExprListDeleteGeneric(sqlite3*,void*); SQLITE_PRIVATE u32 sqlite3ExprListFlags(const ExprList*); SQLITE_PRIVATE int sqlite3IndexHasDuplicateRootPage(Index*); SQLITE_PRIVATE int sqlite3Init(sqlite3*, char**); @@ -20506,6 +20820,7 @@ SQLITE_PRIVATE int sqlite3DbMaskAllZero(yDbMask); SQLITE_PRIVATE void sqlite3DropTable(Parse*, SrcList*, int, int); SQLITE_PRIVATE void sqlite3CodeDropTable(Parse*, Table*, int, int); SQLITE_PRIVATE void sqlite3DeleteTable(sqlite3*, Table*); +SQLITE_PRIVATE void sqlite3DeleteTableGeneric(sqlite3*, void*); SQLITE_PRIVATE void sqlite3FreeIndex(sqlite3*, Index*); #ifndef SQLITE_OMIT_AUTOINCREMENT SQLITE_PRIVATE void sqlite3AutoincrementBegin(Parse *pParse); @@ -20542,6 +20857,7 @@ SQLITE_PRIVATE int sqlite3Select(Parse*, Select*, SelectDest*); SQLITE_PRIVATE Select *sqlite3SelectNew(Parse*,ExprList*,SrcList*,Expr*,ExprList*, Expr*,ExprList*,u32,Expr*); SQLITE_PRIVATE void sqlite3SelectDelete(sqlite3*, Select*); +SQLITE_PRIVATE void sqlite3SelectDeleteGeneric(sqlite3*,void*); SQLITE_PRIVATE Table *sqlite3SrcListLookup(Parse*, SrcList*); SQLITE_PRIVATE int sqlite3IsReadOnly(Parse*, Table*, Trigger*); SQLITE_PRIVATE void sqlite3OpenTable(Parse*, int iCur, int iDb, Table*, int); @@ -20640,6 +20956,7 @@ SQLITE_PRIVATE int sqlite3ExprIsInteger(const Expr*, int*); SQLITE_PRIVATE int sqlite3ExprCanBeNull(const Expr*); SQLITE_PRIVATE int sqlite3ExprNeedsNoAffinityChange(const Expr*, char); SQLITE_PRIVATE int sqlite3IsRowid(const char*); +SQLITE_PRIVATE const char *sqlite3RowidAlias(Table *pTab); SQLITE_PRIVATE void sqlite3GenerateRowDelete( Parse*,Table*,Trigger*,int,int,int,i16,u8,u8,u8,int); SQLITE_PRIVATE void sqlite3GenerateRowIndexDelete(Parse*, Table*, int, int, int*, int); @@ -20767,6 +21084,7 @@ SQLITE_PRIVATE int sqlite3Utf16ByteLen(const void *pData, int nChar); #endif SQLITE_PRIVATE int sqlite3Utf8CharLen(const char *pData, int nByte); SQLITE_PRIVATE u32 sqlite3Utf8Read(const u8**); +SQLITE_PRIVATE int sqlite3Utf8ReadLimited(const u8*, int, u32*); SQLITE_PRIVATE LogEst sqlite3LogEst(u64); SQLITE_PRIVATE LogEst sqlite3LogEstAdd(LogEst,LogEst); SQLITE_PRIVATE LogEst sqlite3LogEstFromDouble(double); @@ -20911,7 +21229,8 @@ SQLITE_PRIVATE int sqlite3MatchEName( const struct ExprList_item*, const char*, const char*, - const char* + const char*, + int* ); SQLITE_PRIVATE Bitmask sqlite3ExprColUsed(Expr*); SQLITE_PRIVATE u8 sqlite3StrIHash(const char*); @@ -20968,7 +21287,7 @@ SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int); SQLITE_PRIVATE int sqlite3OpenTempDatabase(Parse *); SQLITE_PRIVATE char *sqlite3RCStrRef(char*); -SQLITE_PRIVATE void sqlite3RCStrUnref(char*); +SQLITE_PRIVATE void sqlite3RCStrUnref(void*); SQLITE_PRIVATE char *sqlite3RCStrNew(u64); SQLITE_PRIVATE char *sqlite3RCStrResize(char*,u64); @@ -21112,6 +21431,7 @@ SQLITE_PRIVATE Cte *sqlite3CteNew(Parse*,Token*,ExprList*,Select*,u8); SQLITE_PRIVATE void sqlite3CteDelete(sqlite3*,Cte*); SQLITE_PRIVATE With *sqlite3WithAdd(Parse*,With*,Cte*); SQLITE_PRIVATE void sqlite3WithDelete(sqlite3*,With*); +SQLITE_PRIVATE void sqlite3WithDeleteGeneric(sqlite3*,void*); SQLITE_PRIVATE With *sqlite3WithPush(Parse*, With*, u8); #else # define sqlite3CteNew(P,T,E,S) ((void*)0) @@ -21804,6 +22124,9 @@ static const char * const sqlite3azCompileOpt[] = { #ifdef SQLITE_EXPLAIN_ESTIMATED_ROWS "EXPLAIN_ESTIMATED_ROWS", #endif +#ifdef SQLITE_EXTRA_AUTOEXT + "EXTRA_AUTOEXT=" CTIMEOPT_VAL(SQLITE_EXTRA_AUTOEXT), +#endif #ifdef SQLITE_EXTRA_IFNULLROW "EXTRA_IFNULLROW", #endif @@ -22085,6 +22408,9 @@ static const char * const sqlite3azCompileOpt[] = { #ifdef SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS "OMIT_SCHEMA_VERSION_PRAGMAS", #endif +#ifdef SQLITE_OMIT_SEH + "OMIT_SEH", +#endif #ifdef SQLITE_OMIT_SHARED_CACHE "OMIT_SHARED_CACHE", #endif @@ -22483,6 +22809,9 @@ SQLITE_PRIVATE SQLITE_WSD struct Sqlite3Config sqlite3Config = { 0, /* bSmallMalloc */ 1, /* bExtraSchemaChecks */ sizeof(LONGDOUBLE_TYPE)>8, /* bUseLongDouble */ +#ifdef SQLITE_DEBUG + 0, /* bJsonSelfcheck */ +#endif 0x7ffffffe, /* mxStrlen */ 0, /* neverCorrupt */ SQLITE_DEFAULT_LOOKASIDE, /* szLookaside, nLookaside */ @@ -23735,7 +24064,7 @@ SQLITE_API int sqlite3_db_status( case SQLITE_DBSTATUS_CACHE_MISS: case SQLITE_DBSTATUS_CACHE_WRITE:{ int i; - int nRet = 0; + u64 nRet = 0; assert( SQLITE_DBSTATUS_CACHE_MISS==SQLITE_DBSTATUS_CACHE_HIT+1 ); assert( SQLITE_DBSTATUS_CACHE_WRITE==SQLITE_DBSTATUS_CACHE_HIT+2 ); @@ -23748,7 +24077,7 @@ SQLITE_API int sqlite3_db_status( *pHighwater = 0; /* IMP: R-42420-56072 */ /* IMP: R-54100-20147 */ /* IMP: R-29431-39229 */ - *pCurrent = nRet; + *pCurrent = (int)nRet & 0x7fffffff; break; } @@ -24817,6 +25146,12 @@ static int isDate( } computeJD(p); if( p->isError || !validJulianDay(p->iJD) ) return 1; + if( argc==1 && p->validYMD && p->D>28 ){ + /* Make sure a YYYY-MM-DD is normalized. + ** Example: 2023-02-31 -> 2023-03-03 */ + assert( p->validJD ); + p->validYMD = 0; + } return 0; } @@ -25044,13 +25379,16 @@ static void strftimeFunc( computeJD(&x); computeYMD_HMS(&x); for(i=j=0; zFmt[i]; i++){ + char cf; if( zFmt[i]!='%' ) continue; if( j12 ) h -= 12; + if( h==0 ) h = 12; + sqlite3_str_appendf(&sRes, cf=='I' ? "%02d" : "%2d", h); break; } case 'W': /* Fall thru */ @@ -25072,7 +25423,7 @@ static void strftimeFunc( y.D = 1; computeJD(&y); nDay = (int)((x.iJD-y.iJD+43200000)/86400000); - if( zFmt[i]=='W' ){ + if( cf=='W' ){ int wd; /* 0=Monday, 1=Tuesday, ... 6=Sunday */ wd = (int)(((x.iJD+43200000)/86400000)%7); sqlite3_str_appendf(&sRes,"%02d",(nDay+7-wd)/7); @@ -25093,6 +25444,19 @@ static void strftimeFunc( sqlite3_str_appendf(&sRes,"%02d",x.m); break; } + case 'p': /* Fall thru */ + case 'P': { + if( x.h>=12 ){ + sqlite3_str_append(&sRes, cf=='p' ? "PM" : "pm", 2); + }else{ + sqlite3_str_append(&sRes, cf=='p' ? "AM" : "am", 2); + } + break; + } + case 'R': { + sqlite3_str_appendf(&sRes, "%02d:%02d", x.h, x.m); + break; + } case 's': { if( x.useSubsec ){ sqlite3_str_appendf(&sRes,"%.3f", @@ -25107,9 +25471,15 @@ static void strftimeFunc( sqlite3_str_appendf(&sRes,"%02d",(int)x.s); break; } + case 'T': { + sqlite3_str_appendf(&sRes,"%02d:%02d:%02d", x.h, x.m, (int)x.s); + break; + } + case 'u': /* Fall thru */ case 'w': { - sqlite3_str_appendchar(&sRes, 1, - (char)(((x.iJD+129600000)/86400000) % 7) + '0'); + char c = (char)(((x.iJD+129600000)/86400000) % 7) + '0'; + if( c=='0' && cf=='u' ) c = '7'; + sqlite3_str_appendchar(&sRes, 1, c); break; } case 'Y': { @@ -28198,7 +28568,7 @@ static void checkMutexFree(sqlite3_mutex *p){ assert( SQLITE_MUTEX_FAST<2 ); assert( SQLITE_MUTEX_WARNONCONTENTION<2 ); -#if SQLITE_ENABLE_API_ARMOR +#ifdef SQLITE_ENABLE_API_ARMOR if( ((CheckMutex*)p)->iType<2 ) #endif { @@ -28870,7 +29240,7 @@ static sqlite3_mutex *pthreadMutexAlloc(int iType){ */ static void pthreadMutexFree(sqlite3_mutex *p){ assert( p->nRef==0 ); -#if SQLITE_ENABLE_API_ARMOR +#ifdef SQLITE_ENABLE_API_ARMOR if( p->id==SQLITE_MUTEX_FAST || p->id==SQLITE_MUTEX_RECURSIVE ) #endif { @@ -29223,7 +29593,7 @@ SQLITE_PRIVATE void sqlite3MemoryBarrier(void){ SQLITE_MEMORY_BARRIER; #elif defined(__GNUC__) __sync_synchronize(); -#elif MSVC_VERSION>=1300 +#elif MSVC_VERSION>=1400 _ReadWriteBarrier(); #elif defined(MemoryBarrier) MemoryBarrier(); @@ -30434,7 +30804,7 @@ SQLITE_PRIVATE int sqlite3ApiExit(sqlite3* db, int rc){ if( db->mallocFailed || rc ){ return apiHandleError(db, rc); } - return rc & db->errMask; + return 0; } /************** End of malloc.c **********************************************/ @@ -31810,7 +32180,7 @@ SQLITE_API void sqlite3_str_appendf(StrAccum *p, const char *zFormat, ...){ /***************************************************************************** -** Reference counted string storage +** Reference counted string/blob storage *****************************************************************************/ /* @@ -31830,7 +32200,7 @@ SQLITE_PRIVATE char *sqlite3RCStrRef(char *z){ ** Decrease the reference count by one. Free the string when the ** reference count reaches zero. */ -SQLITE_PRIVATE void sqlite3RCStrUnref(char *z){ +SQLITE_PRIVATE void sqlite3RCStrUnref(void *z){ RCStr *p = (RCStr*)z; assert( p!=0 ); p--; @@ -32293,6 +32663,7 @@ SQLITE_PRIVATE void sqlite3TreeViewWindow(TreeView *pView, const Window *pWin, u sqlite3TreeViewItem(pView, "FILTER", 1); sqlite3TreeViewExpr(pView, pWin->pFilter, 0); sqlite3TreeViewPop(&pView); + if( pWin->eFrmType==TK_FILTER ) return; } sqlite3TreeViewPush(&pView, more); if( pWin->zName ){ @@ -32302,7 +32673,7 @@ SQLITE_PRIVATE void sqlite3TreeViewWindow(TreeView *pView, const Window *pWin, u } if( pWin->zBase ) nElement++; if( pWin->pOrderBy ) nElement++; - if( pWin->eFrmType ) nElement++; + if( pWin->eFrmType!=0 && pWin->eFrmType!=TK_FILTER ) nElement++; if( pWin->eExclude ) nElement++; if( pWin->zBase ){ sqlite3TreeViewPush(&pView, (--nElement)>0); @@ -32315,7 +32686,7 @@ SQLITE_PRIVATE void sqlite3TreeViewWindow(TreeView *pView, const Window *pWin, u if( pWin->pOrderBy ){ sqlite3TreeViewExprList(pView, pWin->pOrderBy, (--nElement)>0, "ORDER-BY"); } - if( pWin->eFrmType ){ + if( pWin->eFrmType!=0 && pWin->eFrmType!=TK_FILTER ){ char zBuf[30]; const char *zFrmType = "ROWS"; if( pWin->eFrmType==TK_RANGE ) zFrmType = "RANGE"; @@ -32563,7 +32934,7 @@ SQLITE_PRIVATE void sqlite3TreeViewExpr(TreeView *pView, const Expr *pExpr, u8 m assert( ExprUseXList(pExpr) ); pFarg = pExpr->x.pList; #ifndef SQLITE_OMIT_WINDOWFUNC - pWin = ExprHasProperty(pExpr, EP_WinFunc) ? pExpr->y.pWin : 0; + pWin = IsWindowFunc(pExpr) ? pExpr->y.pWin : 0; #else pWin = 0; #endif @@ -32589,7 +32960,13 @@ SQLITE_PRIVATE void sqlite3TreeViewExpr(TreeView *pView, const Expr *pExpr, u8 m sqlite3TreeViewLine(pView, "FUNCTION %Q%s", pExpr->u.zToken, zFlgs); } if( pFarg ){ - sqlite3TreeViewExprList(pView, pFarg, pWin!=0, 0); + sqlite3TreeViewExprList(pView, pFarg, pWin!=0 || pExpr->pLeft, 0); + if( pExpr->pLeft ){ + Expr *pOB = pExpr->pLeft; + assert( pOB->op==TK_ORDER ); + assert( ExprUseXList(pOB) ); + sqlite3TreeViewExprList(pView, pOB->x.pList, pWin!=0, "ORDERBY"); + } } #ifndef SQLITE_OMIT_WINDOWFUNC if( pWin ){ @@ -32598,6 +32975,10 @@ SQLITE_PRIVATE void sqlite3TreeViewExpr(TreeView *pView, const Expr *pExpr, u8 m #endif break; } + case TK_ORDER: { + sqlite3TreeViewExprList(pView, pExpr->x.pList, 0, "ORDERBY"); + break; + } #ifndef SQLITE_OMIT_SUBQUERY case TK_EXISTS: { assert( ExprUseXSelect(pExpr) ); @@ -32651,7 +33032,7 @@ SQLITE_PRIVATE void sqlite3TreeViewExpr(TreeView *pView, const Expr *pExpr, u8 m assert( pExpr->x.pList->nExpr==2 ); pY = pExpr->x.pList->a[0].pExpr; pZ = pExpr->x.pList->a[1].pExpr; - sqlite3TreeViewLine(pView, "BETWEEN"); + sqlite3TreeViewLine(pView, "BETWEEN%s", zFlgs); sqlite3TreeViewExpr(pView, pX, 1); sqlite3TreeViewExpr(pView, pY, 1); sqlite3TreeViewExpr(pView, pZ, 0); @@ -33786,7 +34167,38 @@ SQLITE_PRIVATE u32 sqlite3Utf8Read( return c; } - +/* +** Read a single UTF8 character out of buffer z[], but reading no +** more than n characters from the buffer. z[] is not zero-terminated. +** +** Return the number of bytes used to construct the character. +** +** Invalid UTF8 might generate a strange result. No effort is made +** to detect invalid UTF8. +** +** At most 4 bytes will be read out of z[]. The return value will always +** be between 1 and 4. +*/ +SQLITE_PRIVATE int sqlite3Utf8ReadLimited( + const u8 *z, + int n, + u32 *piOut +){ + u32 c; + int i = 1; + assert( n>0 ); + c = z[0]; + if( c>=0xc0 ){ + c = sqlite3Utf8Trans1[c-0xc0]; + if( n>4 ) n = 4; + while( irc = SQLITE_INTERRUPT; } #ifndef SQLITE_OMIT_PROGRESS_CALLBACK - if( db->xProgress && (++p->nProgressSteps)>=db->nProgressOps ){ - if( db->xProgress(db->pProgressArg) ){ - p->nErr++; - p->rc = SQLITE_INTERRUPT; + if( db->xProgress ){ + if( p->rc==SQLITE_INTERRUPT ){ + p->nProgressSteps = 0; + }else if( (++p->nProgressSteps)>=db->nProgressOps ){ + if( db->xProgress(db->pProgressArg) ){ + p->nErr++; + p->rc = SQLITE_INTERRUPT; + } + p->nProgressSteps = 0; } - p->nProgressSteps = 0; } #endif } @@ -35185,29 +35601,29 @@ SQLITE_PRIVATE void sqlite3FpDecode(FpDecode *p, double r, int iRound, int mxRou double rr[2]; rr[0] = r; rr[1] = 0.0; - if( rr[0]>1.84e+19 ){ - while( rr[0]>1.84e+119 ){ + if( rr[0]>9.223372036854774784e+18 ){ + while( rr[0]>9.223372036854774784e+118 ){ exp += 100; dekkerMul2(rr, 1.0e-100, -1.99918998026028836196e-117); } - while( rr[0]>1.84e+29 ){ + while( rr[0]>9.223372036854774784e+28 ){ exp += 10; dekkerMul2(rr, 1.0e-10, -3.6432197315497741579e-27); } - while( rr[0]>1.84e+19 ){ + while( rr[0]>9.223372036854774784e+18 ){ exp += 1; dekkerMul2(rr, 1.0e-01, -5.5511151231257827021e-18); } }else{ - while( rr[0]<1.84e-82 ){ + while( rr[0]<9.223372036854774784e-83 ){ exp -= 100; dekkerMul2(rr, 1.0e+100, -1.5902891109759918046e+83); } - while( rr[0]<1.84e+08 ){ + while( rr[0]<9.223372036854774784e+07 ){ exp -= 10; dekkerMul2(rr, 1.0e+10, 0.0); } - while( rr[0]<1.84e+18 ){ + while( rr[0]<9.22337203685477478e+17 ){ exp -= 1; dekkerMul2(rr, 1.0e+01, 0.0); } @@ -35523,121 +35939,32 @@ SQLITE_PRIVATE u8 sqlite3GetVarint(const unsigned char *p, u64 *v){ ** this function assumes the single-byte case has already been handled. */ SQLITE_PRIVATE u8 sqlite3GetVarint32(const unsigned char *p, u32 *v){ - u32 a,b; + u64 v64; + u8 n; - /* The 1-byte case. Overwhelmingly the most common. Handled inline - ** by the getVarin32() macro */ - a = *p; - /* a: p0 (unmasked) */ -#ifndef getVarint32 - if (!(a&0x80)) - { - /* Values between 0 and 127 */ - *v = a; - return 1; - } -#endif + /* Assume that the single-byte case has already been handled by + ** the getVarint32() macro */ + assert( (p[0] & 0x80)!=0 ); - /* The 2-byte case */ - p++; - b = *p; - /* b: p1 (unmasked) */ - if (!(b&0x80)) - { - /* Values between 128 and 16383 */ - a &= 0x7f; - a = a<<7; - *v = a | b; + if( (p[1] & 0x80)==0 ){ + /* This is the two-byte case */ + *v = ((p[0]&0x7f)<<7) | p[1]; return 2; } - - /* The 3-byte case */ - p++; - a = a<<14; - a |= *p; - /* a: p0<<14 | p2 (unmasked) */ - if (!(a&0x80)) - { - /* Values between 16384 and 2097151 */ - a &= (0x7f<<14)|(0x7f); - b &= 0x7f; - b = b<<7; - *v = a | b; + if( (p[2] & 0x80)==0 ){ + /* This is the three-byte case */ + *v = ((p[0]&0x7f)<<14) | ((p[1]&0x7f)<<7) | p[2]; return 3; } - - /* A 32-bit varint is used to store size information in btrees. - ** Objects are rarely larger than 2MiB limit of a 3-byte varint. - ** A 3-byte varint is sufficient, for example, to record the size - ** of a 1048569-byte BLOB or string. - ** - ** We only unroll the first 1-, 2-, and 3- byte cases. The very - ** rare larger cases can be handled by the slower 64-bit varint - ** routine. - */ -#if 1 - { - u64 v64; - u8 n; - - n = sqlite3GetVarint(p-2, &v64); - assert( n>3 && n<=9 ); - if( (v64 & SQLITE_MAX_U32)!=v64 ){ - *v = 0xffffffff; - }else{ - *v = (u32)v64; - } - return n; - } - -#else - /* For following code (kept for historical record only) shows an - ** unrolling for the 3- and 4-byte varint cases. This code is - ** slightly faster, but it is also larger and much harder to test. - */ - p++; - b = b<<14; - b |= *p; - /* b: p1<<14 | p3 (unmasked) */ - if (!(b&0x80)) - { - /* Values between 2097152 and 268435455 */ - b &= (0x7f<<14)|(0x7f); - a &= (0x7f<<14)|(0x7f); - a = a<<7; - *v = a | b; - return 4; - } - - p++; - a = a<<14; - a |= *p; - /* a: p0<<28 | p2<<14 | p4 (unmasked) */ - if (!(a&0x80)) - { - /* Values between 268435456 and 34359738367 */ - a &= SLOT_4_2_0; - b &= SLOT_4_2_0; - b = b<<7; - *v = a | b; - return 5; - } - - /* We can only reach this point when reading a corrupt database - ** file. In that case we are not in any hurry. Use the (relatively - ** slow) general-purpose sqlite3GetVarint() routine to extract the - ** value. */ - { - u64 v64; - u8 n; - - p -= 4; - n = sqlite3GetVarint(p, &v64); - assert( n>5 && n<=9 ); + /* four or more bytes */ + n = sqlite3GetVarint(p, &v64); + assert( n>3 && n<=9 ); + if( (v64 & SQLITE_MAX_U32)!=v64 ){ + *v = 0xffffffff; + }else{ *v = (u32)v64; - return n; } -#endif + return n; } /* @@ -36633,19 +36960,22 @@ SQLITE_PRIVATE const char *sqlite3OpcodeName(int i){ /* 171 */ "VCreate" OpHelp(""), /* 172 */ "VDestroy" OpHelp(""), /* 173 */ "VOpen" OpHelp(""), - /* 174 */ "VInitIn" OpHelp("r[P2]=ValueList(P1,P3)"), - /* 175 */ "VColumn" OpHelp("r[P3]=vcolumn(P2)"), - /* 176 */ "VRename" OpHelp(""), - /* 177 */ "Pagecount" OpHelp(""), - /* 178 */ "MaxPgcnt" OpHelp(""), - /* 179 */ "ClrSubtype" OpHelp("r[P1].subtype = 0"), - /* 180 */ "FilterAdd" OpHelp("filter(P1) += key(P3@P4)"), - /* 181 */ "Trace" OpHelp(""), - /* 182 */ "CursorHint" OpHelp(""), - /* 183 */ "ReleaseReg" OpHelp("release r[P1@P2] mask P3"), - /* 184 */ "Noop" OpHelp(""), - /* 185 */ "Explain" OpHelp(""), - /* 186 */ "Abortable" OpHelp(""), + /* 174 */ "VCheck" OpHelp(""), + /* 175 */ "VInitIn" OpHelp("r[P2]=ValueList(P1,P3)"), + /* 176 */ "VColumn" OpHelp("r[P3]=vcolumn(P2)"), + /* 177 */ "VRename" OpHelp(""), + /* 178 */ "Pagecount" OpHelp(""), + /* 179 */ "MaxPgcnt" OpHelp(""), + /* 180 */ "ClrSubtype" OpHelp("r[P1].subtype = 0"), + /* 181 */ "GetSubtype" OpHelp("r[P2] = r[P1].subtype"), + /* 182 */ "SetSubtype" OpHelp("r[P2].subtype = r[P1]"), + /* 183 */ "FilterAdd" OpHelp("filter(P1) += key(P3@P4)"), + /* 184 */ "Trace" OpHelp(""), + /* 185 */ "CursorHint" OpHelp(""), + /* 186 */ "ReleaseReg" OpHelp("release r[P1@P2] mask P3"), + /* 187 */ "Noop" OpHelp(""), + /* 188 */ "Explain" OpHelp(""), + /* 189 */ "Abortable" OpHelp(""), }; return azName[i]; } @@ -40787,9 +41117,6 @@ static int afpUnlock(sqlite3_file *id, int eFileLock) { unixInodeInfo *pInode; afpLockingContext *context = (afpLockingContext *) pFile->lockingContext; int skipShared = 0; -#ifdef SQLITE_TEST - int h = pFile->h; -#endif assert( pFile ); OSTRACE(("UNLOCK %d %d was %d(%d,%d) pid=%d (afp)\n", pFile->h, eFileLock, @@ -40805,9 +41132,6 @@ static int afpUnlock(sqlite3_file *id, int eFileLock) { assert( pInode->nShared!=0 ); if( pFile->eFileLock>SHARED_LOCK ){ assert( pInode->eFileLock==pFile->eFileLock ); - SimulateIOErrorBenign(1); - SimulateIOError( h=(-1) ) - SimulateIOErrorBenign(0); #ifdef SQLITE_DEBUG /* When reducing a lock such that other processes can start @@ -40856,9 +41180,6 @@ static int afpUnlock(sqlite3_file *id, int eFileLock) { unsigned long long sharedLockByte = SHARED_FIRST+pInode->sharedByte; pInode->nShared--; if( pInode->nShared==0 ){ - SimulateIOErrorBenign(1); - SimulateIOError( h=(-1) ) - SimulateIOErrorBenign(0); if( !skipShared ){ rc = afpSetLock(context->dbPath, pFile, sharedLockByte, 1, 0); } @@ -41700,7 +42021,13 @@ static int unixFileControl(sqlite3_file *id, int op, void *pArg){ #ifdef SQLITE_ENABLE_SETLK_TIMEOUT case SQLITE_FCNTL_LOCK_TIMEOUT: { int iOld = pFile->iBusyTimeout; +#if SQLITE_ENABLE_SETLK_TIMEOUT==1 pFile->iBusyTimeout = *(int*)pArg; +#elif SQLITE_ENABLE_SETLK_TIMEOUT==2 + pFile->iBusyTimeout = !!(*(int*)pArg); +#else +# error "SQLITE_ENABLE_SETLK_TIMEOUT must be set to 1 or 2" +#endif *(int*)pArg = iOld; return SQLITE_OK; } @@ -41953,6 +42280,25 @@ static int unixGetpagesize(void){ ** Either unixShmNode.pShmMutex must be held or unixShmNode.nRef==0 and ** unixMutexHeld() is true when reading or writing any other field ** in this structure. +** +** aLock[SQLITE_SHM_NLOCK]: +** This array records the various locks held by clients on each of the +** SQLITE_SHM_NLOCK slots. If the aLock[] entry is set to 0, then no +** locks are held by the process on this slot. If it is set to -1, then +** some client holds an EXCLUSIVE lock on the locking slot. If the aLock[] +** value is set to a positive value, then it is the number of shared +** locks currently held on the slot. +** +** aMutex[SQLITE_SHM_NLOCK]: +** Normally, when SQLITE_ENABLE_SETLK_TIMEOUT is not defined, mutex +** pShmMutex is used to protect the aLock[] array and the right to +** call fcntl() on unixShmNode.hShm to obtain or release locks. +** +** If SQLITE_ENABLE_SETLK_TIMEOUT is defined though, we use an array +** of mutexes - one for each locking slot. To read or write locking +** slot aLock[iSlot], the caller must hold the corresponding mutex +** aMutex[iSlot]. Similarly, to call fcntl() to obtain or release a +** lock corresponding to slot iSlot, mutex aMutex[iSlot] must be held. */ struct unixShmNode { unixInodeInfo *pInode; /* unixInodeInfo that owns this SHM node */ @@ -41966,10 +42312,11 @@ struct unixShmNode { char **apRegion; /* Array of mapped shared-memory regions */ int nRef; /* Number of unixShm objects pointing to this */ unixShm *pFirst; /* All unixShm objects pointing to this */ +#ifdef SQLITE_ENABLE_SETLK_TIMEOUT + sqlite3_mutex *aMutex[SQLITE_SHM_NLOCK]; +#endif int aLock[SQLITE_SHM_NLOCK]; /* # shared locks on slot, -1==excl lock */ #ifdef SQLITE_DEBUG - u8 exclMask; /* Mask of exclusive locks held */ - u8 sharedMask; /* Mask of shared locks held */ u8 nextShmId; /* Next available unixShm.id value */ #endif }; @@ -42052,16 +42399,35 @@ static int unixShmSystemLock( struct flock f; /* The posix advisory locking structure */ int rc = SQLITE_OK; /* Result code form fcntl() */ - /* Access to the unixShmNode object is serialized by the caller */ pShmNode = pFile->pInode->pShmNode; - assert( pShmNode->nRef==0 || sqlite3_mutex_held(pShmNode->pShmMutex) ); - assert( pShmNode->nRef>0 || unixMutexHeld() ); + + /* Assert that the parameters are within expected range and that the + ** correct mutex or mutexes are held. */ + assert( pShmNode->nRef>=0 ); + assert( (ofst==UNIX_SHM_DMS && n==1) + || (ofst>=UNIX_SHM_BASE && ofst+n<=(UNIX_SHM_BASE+SQLITE_SHM_NLOCK)) + ); + if( ofst==UNIX_SHM_DMS ){ + assert( pShmNode->nRef>0 || unixMutexHeld() ); + assert( pShmNode->nRef==0 || sqlite3_mutex_held(pShmNode->pShmMutex) ); + }else{ +#ifdef SQLITE_ENABLE_SETLK_TIMEOUT + int ii; + for(ii=ofst-UNIX_SHM_BASE; iiaMutex[ii]) ); + } +#else + assert( sqlite3_mutex_held(pShmNode->pShmMutex) ); + assert( pShmNode->nRef>0 ); +#endif + } /* Shared locks never span more than one byte */ assert( n==1 || lockType!=F_RDLCK ); /* Locks are within range */ assert( n>=1 && n<=SQLITE_SHM_NLOCK ); + assert( ofst>=UNIX_SHM_BASE && ofst<=(UNIX_SHM_DMS+SQLITE_SHM_NLOCK) ); if( pShmNode->hShm>=0 ){ int res; @@ -42072,7 +42438,7 @@ static int unixShmSystemLock( f.l_len = n; res = osSetPosixAdvisoryLock(pShmNode->hShm, &f, pFile); if( res==-1 ){ -#ifdef SQLITE_ENABLE_SETLK_TIMEOUT +#if defined(SQLITE_ENABLE_SETLK_TIMEOUT) && SQLITE_ENABLE_SETLK_TIMEOUT==1 rc = (pFile->iBusyTimeout ? SQLITE_BUSY_TIMEOUT : SQLITE_BUSY); #else rc = SQLITE_BUSY; @@ -42080,39 +42446,28 @@ static int unixShmSystemLock( } } - /* Update the global lock state and do debug tracing */ + /* Do debug tracing */ #ifdef SQLITE_DEBUG - { u16 mask; OSTRACE(("SHM-LOCK ")); - mask = ofst>31 ? 0xffff : (1<<(ofst+n)) - (1<exclMask &= ~mask; - pShmNode->sharedMask &= ~mask; + OSTRACE(("unlock %d..%d ok\n", ofst, ofst+n-1)); }else if( lockType==F_RDLCK ){ - OSTRACE(("read-lock %d ok", ofst)); - pShmNode->exclMask &= ~mask; - pShmNode->sharedMask |= mask; + OSTRACE(("read-lock %d..%d ok\n", ofst, ofst+n-1)); }else{ assert( lockType==F_WRLCK ); - OSTRACE(("write-lock %d ok", ofst)); - pShmNode->exclMask |= mask; - pShmNode->sharedMask &= ~mask; + OSTRACE(("write-lock %d..%d ok\n", ofst, ofst+n-1)); } }else{ if( lockType==F_UNLCK ){ - OSTRACE(("unlock %d failed", ofst)); + OSTRACE(("unlock %d..%d failed\n", ofst, ofst+n-1)); }else if( lockType==F_RDLCK ){ - OSTRACE(("read-lock failed")); + OSTRACE(("read-lock %d..%d failed\n", ofst, ofst+n-1)); }else{ assert( lockType==F_WRLCK ); - OSTRACE(("write-lock %d failed", ofst)); + OSTRACE(("write-lock %d..%d failed\n", ofst, ofst+n-1)); } } - OSTRACE((" - afterwards %03x,%03x\n", - pShmNode->sharedMask, pShmNode->exclMask)); - } #endif return rc; @@ -42149,6 +42504,11 @@ static void unixShmPurge(unixFile *pFd){ int i; assert( p->pInode==pFd->pInode ); sqlite3_mutex_free(p->pShmMutex); +#ifdef SQLITE_ENABLE_SETLK_TIMEOUT + for(i=0; iaMutex[i]); + } +#endif for(i=0; inRegion; i+=nShmPerMap){ if( p->hShm>=0 ){ osMunmap(p->apRegion[i], p->szRegion); @@ -42208,7 +42568,20 @@ static int unixLockSharedMemory(unixFile *pDbFd, unixShmNode *pShmNode){ pShmNode->isUnlocked = 1; rc = SQLITE_READONLY_CANTINIT; }else{ +#ifdef SQLITE_ENABLE_SETLK_TIMEOUT + /* Do not use a blocking lock here. If the lock cannot be obtained + ** immediately, it means some other connection is truncating the + ** *-shm file. And after it has done so, it will not release its + ** lock, but only downgrade it to a shared lock. So no point in + ** blocking here. The call below to obtain the shared DMS lock may + ** use a blocking lock. */ + int iSaveTimeout = pDbFd->iBusyTimeout; + pDbFd->iBusyTimeout = 0; +#endif rc = unixShmSystemLock(pDbFd, F_WRLCK, UNIX_SHM_DMS, 1); +#ifdef SQLITE_ENABLE_SETLK_TIMEOUT + pDbFd->iBusyTimeout = iSaveTimeout; +#endif /* The first connection to attach must truncate the -shm file. We ** truncate to 3 bytes (an arbitrary small number, less than the ** -shm header size) rather than 0 as a system debugging aid, to @@ -42329,6 +42702,18 @@ static int unixOpenSharedMemory(unixFile *pDbFd){ rc = SQLITE_NOMEM_BKPT; goto shm_open_err; } +#ifdef SQLITE_ENABLE_SETLK_TIMEOUT + { + int ii; + for(ii=0; iiaMutex[ii] = sqlite3_mutex_alloc(SQLITE_MUTEX_FAST); + if( pShmNode->aMutex[ii]==0 ){ + rc = SQLITE_NOMEM_BKPT; + goto shm_open_err; + } + } + } +#endif } if( pInode->bProcessLock==0 ){ @@ -42550,9 +42935,11 @@ shmpage_out: */ #ifdef SQLITE_DEBUG static int assertLockingArrayOk(unixShmNode *pShmNode){ +#ifdef SQLITE_ENABLE_SETLK_TIMEOUT + return 1; +#else unixShm *pX; int aLock[SQLITE_SHM_NLOCK]; - assert( sqlite3_mutex_held(pShmNode->pShmMutex) ); memset(aLock, 0, sizeof(aLock)); for(pX=pShmNode->pFirst; pX; pX=pX->pNext){ @@ -42570,13 +42957,14 @@ static int assertLockingArrayOk(unixShmNode *pShmNode){ assert( 0==memcmp(pShmNode->aLock, aLock, sizeof(aLock)) ); return (memcmp(pShmNode->aLock, aLock, sizeof(aLock))==0); +#endif } #endif /* ** Change the lock state for a shared-memory segment. ** -** Note that the relationship between SHAREd and EXCLUSIVE locks is a little +** Note that the relationship between SHARED and EXCLUSIVE locks is a little ** different here than in posix. In xShmLock(), one can go from unlocked ** to shared and back or from unlocked to exclusive and back. But one may ** not go from shared to exclusive or from exclusive to shared. @@ -42591,7 +42979,7 @@ static int unixShmLock( unixShm *p; /* The shared memory being locked */ unixShmNode *pShmNode; /* The underlying file iNode */ int rc = SQLITE_OK; /* Result code */ - u16 mask; /* Mask of locks to take or release */ + u16 mask = (1<<(ofst+n)) - (1<pShm; @@ -42626,88 +43014,151 @@ static int unixShmLock( ** It is not permitted to block on the RECOVER lock. */ #ifdef SQLITE_ENABLE_SETLK_TIMEOUT - assert( (flags & SQLITE_SHM_UNLOCK) || pDbFd->iBusyTimeout==0 || ( - (ofst!=2) /* not RECOVER */ - && (ofst!=1 || (p->exclMask|p->sharedMask)==0) - && (ofst!=0 || (p->exclMask|p->sharedMask)<3) - && (ofst<3 || (p->exclMask|p->sharedMask)<(1<exclMask|p->sharedMask); + assert( (flags & SQLITE_SHM_UNLOCK) || pDbFd->iBusyTimeout==0 || ( + (ofst!=2) /* not RECOVER */ + && (ofst!=1 || lockMask==0 || lockMask==2) + && (ofst!=0 || lockMask<3) + && (ofst<3 || lockMask<(1<1 || mask==(1<pShmMutex); - assert( assertLockingArrayOk(pShmNode) ); - if( flags & SQLITE_SHM_UNLOCK ){ - if( (p->exclMask|p->sharedMask) & mask ){ - int ii; - int bUnlock = 1; + /* Check if there is any work to do. There are three cases: + ** + ** a) An unlock operation where there are locks to unlock, + ** b) An shared lock where the requested lock is not already held + ** c) An exclusive lock where the requested lock is not already held + ** + ** The SQLite core never requests an exclusive lock that it already holds. + ** This is assert()ed below. + */ + assert( flags!=(SQLITE_SHM_EXCLUSIVE|SQLITE_SHM_LOCK) + || 0==(p->exclMask & mask) + ); + if( ((flags & SQLITE_SHM_UNLOCK) && ((p->exclMask|p->sharedMask) & mask)) + || (flags==(SQLITE_SHM_SHARED|SQLITE_SHM_LOCK) && 0==(p->sharedMask & mask)) + || (flags==(SQLITE_SHM_EXCLUSIVE|SQLITE_SHM_LOCK)) + ){ - for(ii=ofst; ii((p->sharedMask & (1<aMutex[iMutex]); + if( rc!=SQLITE_OK ) goto leave_shmnode_mutexes; + }else{ + sqlite3_mutex_enter(pShmNode->aMutex[iMutex]); } + } +#else + sqlite3_mutex_enter(pShmNode->pShmMutex); +#endif - if( bUnlock ){ - rc = unixShmSystemLock(pDbFd, F_UNLCK, ofst+UNIX_SHM_BASE, n); + if( ALWAYS(rc==SQLITE_OK) ){ + if( flags & SQLITE_SHM_UNLOCK ){ + /* Case (a) - unlock. */ + int bUnlock = 1; + assert( (p->exclMask & p->sharedMask)==0 ); + assert( !(flags & SQLITE_SHM_EXCLUSIVE) || (p->exclMask & mask)==mask ); + assert( !(flags & SQLITE_SHM_SHARED) || (p->sharedMask & mask)==mask ); + + /* If this is a SHARED lock being unlocked, it is possible that other + ** clients within this process are holding the same SHARED lock. In + ** this case, set bUnlock to 0 so that the posix lock is not removed + ** from the file-descriptor below. */ + if( flags & SQLITE_SHM_SHARED ){ + assert( n==1 ); + assert( aLock[ofst]>=1 ); + if( aLock[ofst]>1 ){ + bUnlock = 0; + aLock[ofst]--; + p->sharedMask &= ~mask; + } + } + + if( bUnlock ){ + rc = unixShmSystemLock(pDbFd, F_UNLCK, ofst+UNIX_SHM_BASE, n); + if( rc==SQLITE_OK ){ + memset(&aLock[ofst], 0, sizeof(int)*n); + p->sharedMask &= ~mask; + p->exclMask &= ~mask; + } + } + }else if( flags & SQLITE_SHM_SHARED ){ + /* Case (b) - a shared lock. */ + + if( aLock[ofst]<0 ){ + /* An exclusive lock is held by some other connection. BUSY. */ + rc = SQLITE_BUSY; + }else if( aLock[ofst]==0 ){ + rc = unixShmSystemLock(pDbFd, F_RDLCK, ofst+UNIX_SHM_BASE, n); + } + + /* Get the local shared locks */ if( rc==SQLITE_OK ){ - memset(&aLock[ofst], 0, sizeof(int)*n); + p->sharedMask |= mask; + aLock[ofst]++; } - }else if( ALWAYS(p->sharedMask & (1<1 ); - aLock[ofst]--; - } + }else{ + /* Case (c) - an exclusive lock. */ + int ii; - /* Undo the local locks */ - if( rc==SQLITE_OK ){ - p->exclMask &= ~mask; - p->sharedMask &= ~mask; - } - } - }else if( flags & SQLITE_SHM_SHARED ){ - assert( n==1 ); - assert( (p->exclMask & (1<sharedMask & mask)==0 ){ - if( aLock[ofst]<0 ){ - rc = SQLITE_BUSY; - }else if( aLock[ofst]==0 ){ - rc = unixShmSystemLock(pDbFd, F_RDLCK, ofst+UNIX_SHM_BASE, n); - } - - /* Get the local shared locks */ - if( rc==SQLITE_OK ){ - p->sharedMask |= mask; - aLock[ofst]++; - } - } - }else{ - /* Make sure no sibling connections hold locks that will block this - ** lock. If any do, return SQLITE_BUSY right away. */ - int ii; - for(ii=ofst; iisharedMask & mask)==0 ); - if( ALWAYS((p->exclMask & (1<sharedMask & mask)==0 ); - p->exclMask |= mask; + assert( (p->exclMask & mask)==0 ); + + /* Make sure no sibling connections hold locks that will block this + ** lock. If any do, return SQLITE_BUSY right away. */ for(ii=ofst; iiexclMask |= mask; + for(ii=ofst; ii=ofst; iMutex--){ + sqlite3_mutex_leave(pShmNode->aMutex[iMutex]); + } +#else + sqlite3_mutex_leave(pShmNode->pShmMutex); +#endif } - assert( assertLockingArrayOk(pShmNode) ); - sqlite3_mutex_leave(pShmNode->pShmMutex); + OSTRACE(("SHM-LOCK shmid-%d, pid-%d got %03x,%03x\n", p->id, osGetpid(0), p->sharedMask, p->exclMask)); return rc; @@ -42957,11 +43408,16 @@ static int unixFetch(sqlite3_file *fd, i64 iOff, int nAmt, void **pp){ #if SQLITE_MAX_MMAP_SIZE>0 if( pFd->mmapSizeMax>0 ){ + /* Ensure that there is always at least a 256 byte buffer of addressable + ** memory following the returned page. If the database is corrupt, + ** SQLite may overread the page slightly (in practice only a few bytes, + ** but 256 is safe, round, number). */ + const int nEofBuffer = 256; if( pFd->pMapRegion==0 ){ int rc = unixMapfile(pFd, -1); if( rc!=SQLITE_OK ) return rc; } - if( pFd->mmapSize >= iOff+nAmt ){ + if( pFd->mmapSize >= (iOff+nAmt+nEofBuffer) ){ *pp = &((u8 *)pFd->pMapRegion)[iOff]; pFd->nFetchOut++; } @@ -50314,6 +50770,11 @@ static int winFetch(sqlite3_file *fd, i64 iOff, int nAmt, void **pp){ #if SQLITE_MAX_MMAP_SIZE>0 if( pFd->mmapSizeMax>0 ){ + /* Ensure that there is always at least a 256 byte buffer of addressable + ** memory following the returned page. If the database is corrupt, + ** SQLite may overread the page slightly (in practice only a few bytes, + ** but 256 is safe, round, number). */ + const int nEofBuffer = 256; if( pFd->pMapRegion==0 ){ int rc = winMapfile(pFd, -1); if( rc!=SQLITE_OK ){ @@ -50322,7 +50783,7 @@ static int winFetch(sqlite3_file *fd, i64 iOff, int nAmt, void **pp){ return rc; } } - if( pFd->mmapSize >= iOff+nAmt ){ + if( pFd->mmapSize >= (iOff+nAmt+nEofBuffer) ){ assert( pFd->pMapRegion!=0 ); *pp = &((u8 *)pFd->pMapRegion)[iOff]; pFd->nFetchOut++; @@ -56925,7 +57386,7 @@ struct Pager { char *zJournal; /* Name of the journal file */ int (*xBusyHandler)(void*); /* Function to call when busy */ void *pBusyHandlerArg; /* Context argument for xBusyHandler */ - int aStat[4]; /* Total cache hits, misses, writes, spills */ + u32 aStat[4]; /* Total cache hits, misses, writes, spills */ #ifdef SQLITE_TEST int nRead; /* Database pages read */ #endif @@ -57055,9 +57516,8 @@ SQLITE_PRIVATE int sqlite3PagerDirectReadOk(Pager *pPager, Pgno pgno){ #ifndef SQLITE_OMIT_WAL if( pPager->pWal ){ u32 iRead = 0; - int rc; - rc = sqlite3WalFindFrame(pPager->pWal, pgno, &iRead); - return (rc==SQLITE_OK && iRead==0); + (void)sqlite3WalFindFrame(pPager->pWal, pgno, &iRead); + return iRead==0; } #endif return 1; @@ -57729,9 +58189,32 @@ static int writeJournalHdr(Pager *pPager){ memset(zHeader, 0, sizeof(aJournalMagic)+4); } + + /* The random check-hash initializer */ - sqlite3_randomness(sizeof(pPager->cksumInit), &pPager->cksumInit); + if( pPager->journalMode!=PAGER_JOURNALMODE_MEMORY ){ + sqlite3_randomness(sizeof(pPager->cksumInit), &pPager->cksumInit); + } +#ifdef SQLITE_DEBUG + else{ + /* The Pager.cksumInit variable is usually randomized above to protect + ** against there being existing records in the journal file. This is + ** dangerous, as following a crash they may be mistaken for records + ** written by the current transaction and rolled back into the database + ** file, causing corruption. The following assert statements verify + ** that this is not required in "journal_mode=memory" mode, as in that + ** case the journal file is always 0 bytes in size at this point. + ** It is advantageous to avoid the sqlite3_randomness() call if possible + ** as it takes the global PRNG mutex. */ + i64 sz = 0; + sqlite3OsFileSize(pPager->jfd, &sz); + assert( sz==0 ); + assert( pPager->journalOff==journalHdrOffset(pPager) ); + assert( sqlite3JournalIsInMemory(pPager->jfd) ); + } +#endif put32bits(&zHeader[sizeof(aJournalMagic)+4], pPager->cksumInit); + /* The initial database size */ put32bits(&zHeader[sizeof(aJournalMagic)+8], pPager->dbOrigSize); /* The assumed sector size for this process */ @@ -58375,6 +58858,9 @@ static int pager_end_transaction(Pager *pPager, int hasSuper, int bCommit){ return (rc==SQLITE_OK?rc2:rc); } +/* Forward reference */ +static int pager_playback(Pager *pPager, int isHot); + /* ** Execute a rollback if a transaction is active and unlock the ** database file. @@ -58403,6 +58889,21 @@ static void pagerUnlockAndRollback(Pager *pPager){ assert( pPager->eState==PAGER_READER ); pager_end_transaction(pPager, 0, 0); } + }else if( pPager->eState==PAGER_ERROR + && pPager->journalMode==PAGER_JOURNALMODE_MEMORY + && isOpen(pPager->jfd) + ){ + /* Special case for a ROLLBACK due to I/O error with an in-memory + ** journal: We have to rollback immediately, before the journal is + ** closed, because once it is closed, all content is forgotten. */ + int errCode = pPager->errCode; + u8 eLock = pPager->eLock; + pPager->eState = PAGER_OPEN; + pPager->errCode = SQLITE_OK; + pPager->eLock = EXCLUSIVE_LOCK; + pager_playback(pPager, 1); + pPager->errCode = errCode; + pPager->eLock = eLock; } pager_unlock(pPager); } @@ -61258,10 +61759,13 @@ act_like_temp_file: */ SQLITE_API sqlite3_file *sqlite3_database_file_object(const char *zName){ Pager *pPager; + const char *p; while( zName[-1]!=0 || zName[-2]!=0 || zName[-3]!=0 || zName[-4]!=0 ){ zName--; } - pPager = *(Pager**)(zName - 4 - sizeof(Pager*)); + p = zName - 4 - sizeof(Pager*); + assert( EIGHT_BYTE_ALIGNMENT(p) ); + pPager = *(Pager**)p; return pPager->fd; } @@ -61895,8 +62399,20 @@ SQLITE_PRIVATE int sqlite3PagerGet( DbPage **ppPage, /* Write a pointer to the page here */ int flags /* PAGER_GET_XXX flags */ ){ - /* printf("PAGE %u\n", pgno); fflush(stdout); */ +#if 0 /* Trace page fetch by setting to 1 */ + int rc; + printf("PAGE %u\n", pgno); + fflush(stdout); + rc = pPager->xGet(pPager, pgno, ppPage, flags); + if( rc ){ + printf("PAGE %u failed with 0x%02x\n", pgno, rc); + fflush(stdout); + } + return rc; +#else + /* Normal, high-speed version of sqlite3PagerGet() */ return pPager->xGet(pPager, pgno, ppPage, flags); +#endif } /* @@ -62772,6 +63288,13 @@ SQLITE_PRIVATE int sqlite3PagerCommitPhaseOne( rc = sqlite3OsFileControl(fd, SQLITE_FCNTL_BEGIN_ATOMIC_WRITE, 0); if( rc==SQLITE_OK ){ rc = pager_write_pagelist(pPager, pList); + if( rc==SQLITE_OK && pPager->dbSize>pPager->dbFileSize ){ + char *pTmp = pPager->pTmpSpace; + int szPage = (int)pPager->pageSize; + memset(pTmp, 0, szPage); + rc = sqlite3OsWrite(pPager->fd, pTmp, szPage, + ((i64)pPager->dbSize*pPager->pageSize)-szPage); + } if( rc==SQLITE_OK ){ rc = sqlite3OsFileControl(fd, SQLITE_FCNTL_COMMIT_ATOMIC_WRITE, 0); } @@ -63006,11 +63529,11 @@ SQLITE_PRIVATE int *sqlite3PagerStats(Pager *pPager){ a[3] = pPager->eState==PAGER_OPEN ? -1 : (int) pPager->dbSize; a[4] = pPager->eState; a[5] = pPager->errCode; - a[6] = pPager->aStat[PAGER_STAT_HIT]; - a[7] = pPager->aStat[PAGER_STAT_MISS]; + a[6] = (int)pPager->aStat[PAGER_STAT_HIT] & 0x7fffffff; + a[7] = (int)pPager->aStat[PAGER_STAT_MISS] & 0x7fffffff; a[8] = 0; /* Used to be pPager->nOvfl */ a[9] = pPager->nRead; - a[10] = pPager->aStat[PAGER_STAT_WRITE]; + a[10] = (int)pPager->aStat[PAGER_STAT_WRITE] & 0x7fffffff; return a; } #endif @@ -63026,7 +63549,7 @@ SQLITE_PRIVATE int *sqlite3PagerStats(Pager *pPager){ ** reset parameter is non-zero, the cache hit or miss count is zeroed before ** returning. */ -SQLITE_PRIVATE void sqlite3PagerCacheStat(Pager *pPager, int eStat, int reset, int *pnVal){ +SQLITE_PRIVATE void sqlite3PagerCacheStat(Pager *pPager, int eStat, int reset, u64 *pnVal){ assert( eStat==SQLITE_DBSTATUS_CACHE_HIT || eStat==SQLITE_DBSTATUS_CACHE_MISS @@ -63583,7 +64106,7 @@ SQLITE_PRIVATE int sqlite3PagerSetJournalMode(Pager *pPager, int eMode){ } assert( state==pPager->eState ); } - }else if( eMode==PAGER_JOURNALMODE_OFF ){ + }else if( eMode==PAGER_JOURNALMODE_OFF || eMode==PAGER_JOURNALMODE_MEMORY ){ sqlite3OsClose(pPager->jfd); } } @@ -63966,7 +64489,7 @@ SQLITE_PRIVATE int sqlite3PagerWalFramesize(Pager *pPager){ } #endif -#ifdef SQLITE_USE_SEH +#if defined(SQLITE_USE_SEH) && !defined(SQLITE_OMIT_WAL) SQLITE_PRIVATE int sqlite3PagerWalSystemErrno(Pager *pPager){ return sqlite3WalSystemErrno(pPager->pWal); } @@ -65982,6 +66505,19 @@ static int walIteratorInit(Wal *pWal, u32 nBackfill, WalIterator **pp){ } #ifdef SQLITE_ENABLE_SETLK_TIMEOUT + + +/* +** Attempt to enable blocking locks that block for nMs ms. Return 1 if +** blocking locks are successfully enabled, or 0 otherwise. +*/ +static int walEnableBlockingMs(Wal *pWal, int nMs){ + int rc = sqlite3OsFileControl( + pWal->pDbFd, SQLITE_FCNTL_LOCK_TIMEOUT, (void*)&nMs + ); + return (rc==SQLITE_OK); +} + /* ** Attempt to enable blocking locks. Blocking locks are enabled only if (a) ** they are supported by the VFS, and (b) the database handle is configured @@ -65993,11 +66529,7 @@ static int walEnableBlocking(Wal *pWal){ if( pWal->db ){ int tmout = pWal->db->busyTimeout; if( tmout ){ - int rc; - rc = sqlite3OsFileControl( - pWal->pDbFd, SQLITE_FCNTL_LOCK_TIMEOUT, (void*)&tmout - ); - res = (rc==SQLITE_OK); + res = walEnableBlockingMs(pWal, tmout); } } return res; @@ -66046,20 +66578,10 @@ SQLITE_PRIVATE void sqlite3WalDb(Wal *pWal, sqlite3 *db){ pWal->db = db; } -/* -** Take an exclusive WRITE lock. Blocking if so configured. -*/ -static int walLockWriter(Wal *pWal){ - int rc; - walEnableBlocking(pWal); - rc = walLockExclusive(pWal, WAL_WRITE_LOCK, 1); - walDisableBlocking(pWal); - return rc; -} #else # define walEnableBlocking(x) 0 # define walDisableBlocking(x) -# define walLockWriter(pWal) walLockExclusive((pWal), WAL_WRITE_LOCK, 1) +# define walEnableBlockingMs(pWal, ms) 0 # define sqlite3WalDb(pWal, db) #endif /* ifdef SQLITE_ENABLE_SETLK_TIMEOUT */ @@ -66660,7 +67182,9 @@ static int walIndexReadHdr(Wal *pWal, int *pChanged){ } }else{ int bWriteLock = pWal->writeLock; - if( bWriteLock || SQLITE_OK==(rc = walLockWriter(pWal)) ){ + if( bWriteLock + || SQLITE_OK==(rc = walLockExclusive(pWal, WAL_WRITE_LOCK, 1)) + ){ pWal->writeLock = 1; if( SQLITE_OK==(rc = walIndexPage(pWal, 0, &page0)) ){ badHdr = walIndexTryHdr(pWal, pChanged); @@ -66668,7 +67192,8 @@ static int walIndexReadHdr(Wal *pWal, int *pChanged){ /* If the wal-index header is still malformed even while holding ** a WRITE lock, it can only mean that the header is corrupted and ** needs to be reconstructed. So run recovery to do exactly that. - */ + ** Disable blocking locks first. */ + walDisableBlocking(pWal); rc = walIndexRecover(pWal); *pChanged = 1; } @@ -66878,6 +67403,37 @@ static int walBeginShmUnreliable(Wal *pWal, int *pChanged){ return rc; } +/* +** The final argument passed to walTryBeginRead() is of type (int*). The +** caller should invoke walTryBeginRead as follows: +** +** int cnt = 0; +** do { +** rc = walTryBeginRead(..., &cnt); +** }while( rc==WAL_RETRY ); +** +** The final value of "cnt" is of no use to the caller. It is used by +** the implementation of walTryBeginRead() as follows: +** +** + Each time walTryBeginRead() is called, it is incremented. Once +** it reaches WAL_RETRY_PROTOCOL_LIMIT - indicating that walTryBeginRead() +** has many times been invoked and failed with WAL_RETRY - walTryBeginRead() +** returns SQLITE_PROTOCOL. +** +** + If SQLITE_ENABLE_SETLK_TIMEOUT is defined and walTryBeginRead() failed +** because a blocking lock timed out (SQLITE_BUSY_TIMEOUT from the OS +** layer), the WAL_RETRY_BLOCKED_MASK bit is set in "cnt". In this case +** the next invocation of walTryBeginRead() may omit an expected call to +** sqlite3OsSleep(). There has already been a delay when the previous call +** waited on a lock. +*/ +#define WAL_RETRY_PROTOCOL_LIMIT 100 +#ifdef SQLITE_ENABLE_SETLK_TIMEOUT +# define WAL_RETRY_BLOCKED_MASK 0x10000000 +#else +# define WAL_RETRY_BLOCKED_MASK 0 +#endif + /* ** Attempt to start a read transaction. This might fail due to a race or ** other transient condition. When that happens, it returns WAL_RETRY to @@ -66928,13 +67484,16 @@ static int walBeginShmUnreliable(Wal *pWal, int *pChanged){ ** so it takes care to hold an exclusive lock on the corresponding ** WAL_READ_LOCK() while changing values. */ -static int walTryBeginRead(Wal *pWal, int *pChanged, int useWal, int cnt){ +static int walTryBeginRead(Wal *pWal, int *pChanged, int useWal, int *pCnt){ volatile WalCkptInfo *pInfo; /* Checkpoint information in wal-index */ u32 mxReadMark; /* Largest aReadMark[] value */ int mxI; /* Index of largest aReadMark[] value */ int i; /* Loop counter */ int rc = SQLITE_OK; /* Return code */ u32 mxFrame; /* Wal frame to lock to */ +#ifdef SQLITE_ENABLE_SETLK_TIMEOUT + int nBlockTmout = 0; +#endif assert( pWal->readLock<0 ); /* Not currently locked */ @@ -66958,14 +67517,34 @@ static int walTryBeginRead(Wal *pWal, int *pChanged, int useWal, int cnt){ ** so that on the 100th (and last) RETRY we delay for 323 milliseconds. ** The total delay time before giving up is less than 10 seconds. */ - if( cnt>5 ){ + (*pCnt)++; + if( *pCnt>5 ){ int nDelay = 1; /* Pause time in microseconds */ - if( cnt>100 ){ + int cnt = (*pCnt & ~WAL_RETRY_BLOCKED_MASK); + if( cnt>WAL_RETRY_PROTOCOL_LIMIT ){ VVA_ONLY( pWal->lockError = 1; ) return SQLITE_PROTOCOL; } - if( cnt>=10 ) nDelay = (cnt-9)*(cnt-9)*39; + if( *pCnt>=10 ) nDelay = (cnt-9)*(cnt-9)*39; +#ifdef SQLITE_ENABLE_SETLK_TIMEOUT + /* In SQLITE_ENABLE_SETLK_TIMEOUT builds, configure the file-descriptor + ** to block for locks for approximately nDelay us. This affects three + ** locks: (a) the shared lock taken on the DMS slot in os_unix.c (if + ** using os_unix.c), (b) the WRITER lock taken in walIndexReadHdr() if the + ** first attempted read fails, and (c) the shared lock taken on the + ** read-mark. + ** + ** If the previous call failed due to an SQLITE_BUSY_TIMEOUT error, + ** then sleep for the minimum of 1us. The previous call already provided + ** an extra delay while it was blocking on the lock. + */ + nBlockTmout = (nDelay+998) / 1000; + if( !useWal && walEnableBlockingMs(pWal, nBlockTmout) ){ + if( *pCnt & WAL_RETRY_BLOCKED_MASK ) nDelay = 1; + } +#endif sqlite3OsSleep(pWal->pVfs, nDelay); + *pCnt &= ~WAL_RETRY_BLOCKED_MASK; } if( !useWal ){ @@ -66973,6 +67552,13 @@ static int walTryBeginRead(Wal *pWal, int *pChanged, int useWal, int cnt){ if( pWal->bShmUnreliable==0 ){ rc = walIndexReadHdr(pWal, pChanged); } +#ifdef SQLITE_ENABLE_SETLK_TIMEOUT + walDisableBlocking(pWal); + if( rc==SQLITE_BUSY_TIMEOUT ){ + rc = SQLITE_BUSY; + *pCnt |= WAL_RETRY_BLOCKED_MASK; + } +#endif if( rc==SQLITE_BUSY ){ /* If there is not a recovery running in another thread or process ** then convert BUSY errors to WAL_RETRY. If recovery is known to @@ -67087,9 +67673,19 @@ static int walTryBeginRead(Wal *pWal, int *pChanged, int useWal, int cnt){ return rc==SQLITE_BUSY ? WAL_RETRY : SQLITE_READONLY_CANTINIT; } + (void)walEnableBlockingMs(pWal, nBlockTmout); rc = walLockShared(pWal, WAL_READ_LOCK(mxI)); + walDisableBlocking(pWal); if( rc ){ - return rc==SQLITE_BUSY ? WAL_RETRY : rc; +#ifdef SQLITE_ENABLE_SETLK_TIMEOUT + if( rc==SQLITE_BUSY_TIMEOUT ){ + *pCnt |= WAL_RETRY_BLOCKED_MASK; + } +#else + assert( rc!=SQLITE_BUSY_TIMEOUT ); +#endif + assert( (rc&0xFF)!=SQLITE_BUSY||rc==SQLITE_BUSY||rc==SQLITE_BUSY_TIMEOUT ); + return (rc&0xFF)==SQLITE_BUSY ? WAL_RETRY : rc; } /* Now that the read-lock has been obtained, check that neither the ** value in the aReadMark[] array or the contents of the wal-index @@ -67277,7 +67873,7 @@ static int walBeginReadTransaction(Wal *pWal, int *pChanged){ #endif do{ - rc = walTryBeginRead(pWal, pChanged, 0, ++cnt); + rc = walTryBeginRead(pWal, pChanged, 0, &cnt); }while( rc==WAL_RETRY ); testcase( (rc&0xff)==SQLITE_BUSY ); testcase( (rc&0xff)==SQLITE_IOERR ); @@ -67458,6 +68054,7 @@ static int walFindFrame( iRead = iFrame; } if( (nCollide--)==0 ){ + *piRead = 0; return SQLITE_CORRUPT_BKPT; } iKey = walNextHash(iKey); @@ -67761,7 +68358,7 @@ static int walRestartLog(Wal *pWal){ cnt = 0; do{ int notUsed; - rc = walTryBeginRead(pWal, ¬Used, 1, ++cnt); + rc = walTryBeginRead(pWal, ¬Used, 1, &cnt); }while( rc==WAL_RETRY ); assert( (rc&0xff)!=SQLITE_BUSY ); /* BUSY not possible when useWal==1 */ testcase( (rc&0xff)==SQLITE_IOERR ); @@ -68182,10 +68779,9 @@ SQLITE_PRIVATE int sqlite3WalCheckpoint( if( pWal->readOnly ) return SQLITE_READONLY; WALTRACE(("WAL%p: checkpoint begins\n", pWal)); - /* Enable blocking locks, if possible. If blocking locks are successfully - ** enabled, set xBusy2=0 so that the busy-handler is never invoked. */ + /* Enable blocking locks, if possible. */ sqlite3WalDb(pWal, db); - (void)walEnableBlocking(pWal); + if( xBusy2 ) (void)walEnableBlocking(pWal); /* IMPLEMENTATION-OF: R-62028-47212 All calls obtain an exclusive ** "checkpoint" lock on the database file. @@ -68226,9 +68822,14 @@ SQLITE_PRIVATE int sqlite3WalCheckpoint( /* Read the wal-index header. */ SEH_TRY { if( rc==SQLITE_OK ){ + /* For a passive checkpoint, do not re-enable blocking locks after + ** reading the wal-index header. A passive checkpoint should not block + ** or invoke the busy handler. The only lock such a checkpoint may + ** attempt to obtain is a lock on a read-slot, and it should give up + ** immediately and do a partial checkpoint if it cannot obtain it. */ walDisableBlocking(pWal); rc = walIndexReadHdr(pWal, &isChanged); - (void)walEnableBlocking(pWal); + if( eMode2!=SQLITE_CHECKPOINT_PASSIVE ) (void)walEnableBlocking(pWal); if( isChanged && pWal->pDbFd->pMethods->iVersion>=3 ){ sqlite3OsUnfetch(pWal->pDbFd, 0, 0); } @@ -68565,7 +69166,7 @@ SQLITE_PRIVATE sqlite3_file *sqlite3WalFile(Wal *pWal){ ** 22 1 Min embedded payload fraction (must be 32) ** 23 1 Min leaf payload fraction (must be 32) ** 24 4 File change counter -** 28 4 Reserved for future use +** 28 4 The size of the database in pages ** 32 4 First freelist page ** 36 4 Number of freelist pages in the file ** 40 60 15 4-byte meta values passed to higher layers @@ -69196,7 +69797,7 @@ struct IntegrityCk { BtShared *pBt; /* The tree being checked out */ Pager *pPager; /* The associated pager. Also accessible by pBt->pPager */ u8 *aPgRef; /* 1 bit per page in the db (see above) */ - Pgno nPage; /* Number of pages in the database */ + Pgno nCkPage; /* Pages in the database. 0 for partial check */ int mxErr; /* Stop accumulating errors when this reaches zero */ int nErr; /* Number of messages written to zErrMsg so far */ int rc; /* SQLITE_OK, SQLITE_NOMEM, or SQLITE_INTERRUPT */ @@ -69529,7 +70130,6 @@ SQLITE_PRIVATE void sqlite3BtreeLeaveCursor(BtCursor *pCur){ /************** End of btmutex.c *********************************************/ /************** Begin file btree.c *******************************************/ - /* ** 2004 April 6 ** @@ -74693,7 +75293,6 @@ static int accessPayload( assert( aWrite>=pBufStart ); /* due to (6) */ memcpy(aSave, aWrite, 4); rc = sqlite3OsRead(fd, aWrite, a+4, (i64)pBt->pageSize*(nextPage-1)); - if( rc && nextPage>pBt->nPage ) rc = SQLITE_CORRUPT_BKPT; nextPage = get4byte(aWrite); memcpy(aWrite, aSave, 4); }else @@ -75813,7 +76412,10 @@ static SQLITE_NOINLINE int btreePrevious(BtCursor *pCur){ } pPage = pCur->pPage; - assert( pPage->isInit ); + if( sqlite3FaultSim(412) ) pPage->isInit = 0; + if( !pPage->isInit ){ + return SQLITE_CORRUPT_BKPT; + } if( !pPage->leaf ){ int idx = pCur->ix; rc = moveToChild(pCur, get4byte(findCell(pPage, idx))); @@ -77024,9 +77626,10 @@ static int rebuildPage( int k; /* Current slot in pCArray->apEnd[] */ u8 *pSrcEnd; /* Current pCArray->apEnd[k] value */ + assert( nCell>0 ); assert( i(u32)usableSize) ){ j = 0; } + if( j>(u32)usableSize ){ j = 0; } memcpy(&pTmp[j], &aData[j], usableSize - j); for(k=0; ALWAYS(kixNx[k]<=i; k++){} @@ -77330,6 +77933,7 @@ static int editPage( return SQLITE_OK; editpage_fail: /* Unable to edit this page. Rebuild it from scratch instead. */ + if( nNew<1 ) return SQLITE_CORRUPT_BKPT; populateCellCache(pCArray, iNew, nNew); return rebuildPage(pCArray, iNew, nNew, pPg); } @@ -79989,7 +80593,8 @@ static void checkAppendMsg( ** corresponds to page iPg is already set. */ static int getPageReferenced(IntegrityCk *pCheck, Pgno iPg){ - assert( iPg<=pCheck->nPage && sizeof(pCheck->aPgRef[0])==1 ); + assert( pCheck->aPgRef!=0 ); + assert( iPg<=pCheck->nCkPage && sizeof(pCheck->aPgRef[0])==1 ); return (pCheck->aPgRef[iPg/8] & (1 << (iPg & 0x07))); } @@ -79997,7 +80602,8 @@ static int getPageReferenced(IntegrityCk *pCheck, Pgno iPg){ ** Set the bit in the IntegrityCk.aPgRef[] array that corresponds to page iPg. */ static void setPageReferenced(IntegrityCk *pCheck, Pgno iPg){ - assert( iPg<=pCheck->nPage && sizeof(pCheck->aPgRef[0])==1 ); + assert( pCheck->aPgRef!=0 ); + assert( iPg<=pCheck->nCkPage && sizeof(pCheck->aPgRef[0])==1 ); pCheck->aPgRef[iPg/8] |= (1 << (iPg & 0x07)); } @@ -80011,7 +80617,7 @@ static void setPageReferenced(IntegrityCk *pCheck, Pgno iPg){ ** Also check that the page number is in bounds. */ static int checkRef(IntegrityCk *pCheck, Pgno iPage){ - if( iPage>pCheck->nPage || iPage==0 ){ + if( iPage>pCheck->nCkPage || iPage==0 ){ checkAppendMsg(pCheck, "invalid page number %u", iPage); return 1; } @@ -80238,6 +80844,7 @@ static int checkTreePage( if( (rc = btreeGetPage(pBt, iPage, &pPage, 0))!=0 ){ checkAppendMsg(pCheck, "unable to get the page. error code=%d", rc); + if( rc==SQLITE_IOERR_NOMEM ) pCheck->rc = SQLITE_NOMEM; goto end_of_check; } @@ -80508,15 +81115,15 @@ SQLITE_PRIVATE int sqlite3BtreeIntegrityCheck( sCheck.db = db; sCheck.pBt = pBt; sCheck.pPager = pBt->pPager; - sCheck.nPage = btreePagecount(sCheck.pBt); + sCheck.nCkPage = btreePagecount(sCheck.pBt); sCheck.mxErr = mxErr; sqlite3StrAccumInit(&sCheck.errMsg, 0, zErr, sizeof(zErr), SQLITE_MAX_LENGTH); sCheck.errMsg.printfFlags = SQLITE_PRINTF_INTERNAL; - if( sCheck.nPage==0 ){ + if( sCheck.nCkPage==0 ){ goto integrity_ck_cleanup; } - sCheck.aPgRef = sqlite3MallocZero((sCheck.nPage / 8)+ 1); + sCheck.aPgRef = sqlite3MallocZero((sCheck.nCkPage / 8)+ 1); if( !sCheck.aPgRef ){ checkOom(&sCheck); goto integrity_ck_cleanup; @@ -80528,7 +81135,7 @@ SQLITE_PRIVATE int sqlite3BtreeIntegrityCheck( } i = PENDING_BYTE_PAGE(pBt); - if( i<=sCheck.nPage ) setPageReferenced(&sCheck, i); + if( i<=sCheck.nCkPage ) setPageReferenced(&sCheck, i); /* Check the integrity of the freelist */ @@ -80579,7 +81186,7 @@ SQLITE_PRIVATE int sqlite3BtreeIntegrityCheck( /* Make sure every page in the file is referenced */ if( !bPartial ){ - for(i=1; i<=sCheck.nPage && sCheck.mxErr; i++){ + for(i=1; i<=sCheck.nCkPage && sCheck.mxErr; i++){ #ifdef SQLITE_OMIT_AUTOVACUUM if( getPageReferenced(&sCheck, i)==0 ){ checkAppendMsg(&sCheck, "Page %u: never used", i); @@ -82020,7 +82627,7 @@ SQLITE_PRIVATE void sqlite3VdbeMemZeroTerminateIfAble(Mem *pMem){ pMem->flags |= MEM_Term; return; } - if( pMem->xDel==(void(*)(void*))sqlite3RCStrUnref ){ + if( pMem->xDel==sqlite3RCStrUnref ){ /* Blindly assume that all RCStr objects are zero-terminated */ pMem->flags |= MEM_Term; return; @@ -83199,7 +83806,7 @@ static int valueFromFunction( #endif assert( pFunc ); if( (pFunc->funcFlags & (SQLITE_FUNC_CONSTANT|SQLITE_FUNC_SLOCHNG))==0 - || (pFunc->funcFlags & SQLITE_FUNC_NEEDCOLL) + || (pFunc->funcFlags & (SQLITE_FUNC_NEEDCOLL|SQLITE_FUNC_RUNONLY))!=0 ){ return SQLITE_OK; } @@ -83400,6 +84007,7 @@ static int valueFromExpr( if( pVal ){ pVal->flags = MEM_Int; pVal->u.i = pExpr->u.zToken[4]==0; + sqlite3ValueApplyAffinity(pVal, affinity, enc); } } @@ -83922,10 +84530,11 @@ static int growOpArray(Vdbe *v, int nOp){ ** sqlite3CantopenError(lineno) */ static void test_addop_breakpoint(int pc, Op *pOp){ - static int n = 0; + static u64 n = 0; (void)pc; (void)pOp; n++; + if( n==LARGEST_UINT64 ) abort(); /* so that n is used, preventing a warning */ } #endif @@ -84713,6 +85322,10 @@ SQLITE_PRIVATE void sqlite3VdbeNoJumpsOutsideSubrtn( int iDest = pOp->p2; /* Jump destination */ if( iDest==0 ) continue; if( pOp->opcode==OP_Gosub ) continue; + if( pOp->p3==20230325 && pOp->opcode==OP_NotNull ){ + /* This is a deliberately taken illegal branch. tag-20230325-2 */ + continue; + } if( iDest<0 ){ int j = ADDR(iDest); assert( j>=0 ); @@ -85106,6 +85719,10 @@ static void freeP4(sqlite3 *db, int p4type, void *p4){ if( db->pnBytesFreed==0 ) sqlite3VtabUnlock((VTable *)p4); break; } + case P4_TABLEREF: { + if( db->pnBytesFreed==0 ) sqlite3DeleteTable(db, (Table*)p4); + break; + } } } @@ -85233,7 +85850,7 @@ static void SQLITE_NOINLINE vdbeChangeP4Full( int n ){ if( pOp->p4type ){ - freeP4(p->db, pOp->p4type, pOp->p4.p); + assert( pOp->p4type > P4_FREE_IF_LE ); pOp->p4type = 0; pOp->p4.p = 0; } @@ -88172,20 +88789,33 @@ SQLITE_PRIVATE SQLITE_NOINLINE int sqlite3BlobCompare(const Mem *pB1, const Mem return n1 - n2; } +/* The following two functions are used only within testcase() to prove +** test coverage. These functions do no exist for production builds. +** We must use separate SQLITE_NOINLINE functions here, since otherwise +** optimizer code movement causes gcov to become very confused. +*/ +#if defined(SQLITE_COVERAGE_TEST) || defined(SQLITE_DEBUG) +static int SQLITE_NOINLINE doubleLt(double a, double b){ return a8 ){ + if( sqlite3IsNaN(r) ){ + /* SQLite considers NaN to be a NULL. And all integer values are greater + ** than NULL */ + return 1; + } + if( sqlite3Config.bUseLongDouble ){ LONGDOUBLE_TYPE x = (LONGDOUBLE_TYPE)i; testcase( xr ); testcase( x==r ); - if( xr ) return +1; /*NO_TEST*/ /* work around bugs in gcov */ - return 0; /*NO_TEST*/ /* work around bugs in gcov */ + return (xr); }else{ i64 y; double s; @@ -88195,9 +88825,10 @@ SQLITE_PRIVATE int sqlite3IntFloatCompare(i64 i, double r){ if( iy ) return +1; s = (double)i; - if( sr ) return +1; - return 0; + testcase( doubleLt(s,r) ); + testcase( doubleLt(r,s) ); + testcase( doubleEq(r,s) ); + return (sr); } } @@ -89342,7 +89973,15 @@ SQLITE_API int sqlite3_clear_bindings(sqlite3_stmt *pStmt){ int rc = SQLITE_OK; Vdbe *p = (Vdbe*)pStmt; #if SQLITE_THREADSAFE - sqlite3_mutex *mutex = ((Vdbe*)pStmt)->db->mutex; + sqlite3_mutex *mutex; +#endif +#ifdef SQLITE_ENABLE_API_ARMOR + if( pStmt==0 ){ + return SQLITE_MISUSE_BKPT; + } +#endif +#if SQLITE_THREADSAFE + mutex = p->db->mutex; #endif sqlite3_mutex_enter(mutex); for(i=0; inVar; i++){ @@ -89565,7 +90204,7 @@ SQLITE_API void sqlite3_value_free(sqlite3_value *pOld){ ** is too big or if an OOM occurs. ** ** The invokeValueDestructor(P,X) routine invokes destructor function X() -** on value P is not going to be used and need to be destroyed. +** on value P if P is not going to be used and need to be destroyed. */ static void setResultStrOrError( sqlite3_context *pCtx, /* Function context */ @@ -89595,7 +90234,7 @@ static void setResultStrOrError( static int invokeValueDestructor( const void *p, /* Value to destroy */ void (*xDel)(void*), /* The destructor */ - sqlite3_context *pCtx /* Set a SQLITE_TOOBIG error if no NULL */ + sqlite3_context *pCtx /* Set a SQLITE_TOOBIG error if not NULL */ ){ assert( xDel!=SQLITE_DYNAMIC ); if( xDel==0 ){ @@ -89605,7 +90244,14 @@ static int invokeValueDestructor( }else{ xDel((void*)p); } +#ifdef SQLITE_ENABLE_API_ARMOR + if( pCtx!=0 ){ + sqlite3_result_error_toobig(pCtx); + } +#else + assert( pCtx!=0 ); sqlite3_result_error_toobig(pCtx); +#endif return SQLITE_TOOBIG; } SQLITE_API void sqlite3_result_blob( @@ -89614,6 +90260,12 @@ SQLITE_API void sqlite3_result_blob( int n, void (*xDel)(void *) ){ +#ifdef SQLITE_ENABLE_API_ARMOR + if( pCtx==0 || n<0 ){ + invokeValueDestructor(z, xDel, pCtx); + return; + } +#endif assert( n>=0 ); assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); setResultStrOrError(pCtx, z, n, 0, xDel); @@ -89624,8 +90276,14 @@ SQLITE_API void sqlite3_result_blob64( sqlite3_uint64 n, void (*xDel)(void *) ){ - assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); assert( xDel!=SQLITE_DYNAMIC ); +#ifdef SQLITE_ENABLE_API_ARMOR + if( pCtx==0 ){ + invokeValueDestructor(z, xDel, 0); + return; + } +#endif + assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); if( n>0x7fffffff ){ (void)invokeValueDestructor(z, xDel, pCtx); }else{ @@ -89633,30 +90291,48 @@ SQLITE_API void sqlite3_result_blob64( } } SQLITE_API void sqlite3_result_double(sqlite3_context *pCtx, double rVal){ +#ifdef SQLITE_ENABLE_API_ARMOR + if( pCtx==0 ) return; +#endif assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); sqlite3VdbeMemSetDouble(pCtx->pOut, rVal); } SQLITE_API void sqlite3_result_error(sqlite3_context *pCtx, const char *z, int n){ +#ifdef SQLITE_ENABLE_API_ARMOR + if( pCtx==0 ) return; +#endif assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); pCtx->isError = SQLITE_ERROR; sqlite3VdbeMemSetStr(pCtx->pOut, z, n, SQLITE_UTF8, SQLITE_TRANSIENT); } #ifndef SQLITE_OMIT_UTF16 SQLITE_API void sqlite3_result_error16(sqlite3_context *pCtx, const void *z, int n){ +#ifdef SQLITE_ENABLE_API_ARMOR + if( pCtx==0 ) return; +#endif assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); pCtx->isError = SQLITE_ERROR; sqlite3VdbeMemSetStr(pCtx->pOut, z, n, SQLITE_UTF16NATIVE, SQLITE_TRANSIENT); } #endif SQLITE_API void sqlite3_result_int(sqlite3_context *pCtx, int iVal){ +#ifdef SQLITE_ENABLE_API_ARMOR + if( pCtx==0 ) return; +#endif assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); sqlite3VdbeMemSetInt64(pCtx->pOut, (i64)iVal); } SQLITE_API void sqlite3_result_int64(sqlite3_context *pCtx, i64 iVal){ +#ifdef SQLITE_ENABLE_API_ARMOR + if( pCtx==0 ) return; +#endif assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); sqlite3VdbeMemSetInt64(pCtx->pOut, iVal); } SQLITE_API void sqlite3_result_null(sqlite3_context *pCtx){ +#ifdef SQLITE_ENABLE_API_ARMOR + if( pCtx==0 ) return; +#endif assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); sqlite3VdbeMemSetNull(pCtx->pOut); } @@ -89666,14 +90342,37 @@ SQLITE_API void sqlite3_result_pointer( const char *zPType, void (*xDestructor)(void*) ){ - Mem *pOut = pCtx->pOut; + Mem *pOut; +#ifdef SQLITE_ENABLE_API_ARMOR + if( pCtx==0 ){ + invokeValueDestructor(pPtr, xDestructor, 0); + return; + } +#endif + pOut = pCtx->pOut; assert( sqlite3_mutex_held(pOut->db->mutex) ); sqlite3VdbeMemRelease(pOut); pOut->flags = MEM_Null; sqlite3VdbeMemSetPointer(pOut, pPtr, zPType, xDestructor); } SQLITE_API void sqlite3_result_subtype(sqlite3_context *pCtx, unsigned int eSubtype){ - Mem *pOut = pCtx->pOut; + Mem *pOut; +#ifdef SQLITE_ENABLE_API_ARMOR + if( pCtx==0 ) return; +#endif +#if defined(SQLITE_STRICT_SUBTYPE) && SQLITE_STRICT_SUBTYPE+0!=0 + if( pCtx->pFunc!=0 + && (pCtx->pFunc->funcFlags & SQLITE_RESULT_SUBTYPE)==0 + ){ + char zErr[200]; + sqlite3_snprintf(sizeof(zErr), zErr, + "misuse of sqlite3_result_subtype() by %s()", + pCtx->pFunc->zName); + sqlite3_result_error(pCtx, zErr, -1); + return; + } +#endif /* SQLITE_STRICT_SUBTYPE */ + pOut = pCtx->pOut; assert( sqlite3_mutex_held(pOut->db->mutex) ); pOut->eSubtype = eSubtype & 0xff; pOut->flags |= MEM_Subtype; @@ -89684,6 +90383,12 @@ SQLITE_API void sqlite3_result_text( int n, void (*xDel)(void *) ){ +#ifdef SQLITE_ENABLE_API_ARMOR + if( pCtx==0 ){ + invokeValueDestructor(z, xDel, 0); + return; + } +#endif assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); setResultStrOrError(pCtx, z, n, SQLITE_UTF8, xDel); } @@ -89694,6 +90399,12 @@ SQLITE_API void sqlite3_result_text64( void (*xDel)(void *), unsigned char enc ){ +#ifdef SQLITE_ENABLE_API_ARMOR + if( pCtx==0 ){ + invokeValueDestructor(z, xDel, 0); + return; + } +#endif assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); assert( xDel!=SQLITE_DYNAMIC ); if( enc!=SQLITE_UTF8 ){ @@ -89737,7 +90448,16 @@ SQLITE_API void sqlite3_result_text16le( } #endif /* SQLITE_OMIT_UTF16 */ SQLITE_API void sqlite3_result_value(sqlite3_context *pCtx, sqlite3_value *pValue){ - Mem *pOut = pCtx->pOut; + Mem *pOut; + +#ifdef SQLITE_ENABLE_API_ARMOR + if( pCtx==0 ) return; + if( pValue==0 ){ + sqlite3_result_null(pCtx); + return; + } +#endif + pOut = pCtx->pOut; assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); sqlite3VdbeMemCopy(pOut, pValue); sqlite3VdbeChangeEncoding(pOut, pCtx->enc); @@ -89749,7 +90469,12 @@ SQLITE_API void sqlite3_result_zeroblob(sqlite3_context *pCtx, int n){ sqlite3_result_zeroblob64(pCtx, n>0 ? n : 0); } SQLITE_API int sqlite3_result_zeroblob64(sqlite3_context *pCtx, u64 n){ - Mem *pOut = pCtx->pOut; + Mem *pOut; + +#ifdef SQLITE_ENABLE_API_ARMOR + if( pCtx==0 ) return SQLITE_MISUSE_BKPT; +#endif + pOut = pCtx->pOut; assert( sqlite3_mutex_held(pOut->db->mutex) ); if( n>(u64)pOut->db->aLimit[SQLITE_LIMIT_LENGTH] ){ sqlite3_result_error_toobig(pCtx); @@ -89763,6 +90488,9 @@ SQLITE_API int sqlite3_result_zeroblob64(sqlite3_context *pCtx, u64 n){ #endif } SQLITE_API void sqlite3_result_error_code(sqlite3_context *pCtx, int errCode){ +#ifdef SQLITE_ENABLE_API_ARMOR + if( pCtx==0 ) return; +#endif pCtx->isError = errCode ? errCode : -1; #ifdef SQLITE_DEBUG if( pCtx->pVdbe ) pCtx->pVdbe->rcApp = errCode; @@ -89775,6 +90503,9 @@ SQLITE_API void sqlite3_result_error_code(sqlite3_context *pCtx, int errCode){ /* Force an SQLITE_TOOBIG error. */ SQLITE_API void sqlite3_result_error_toobig(sqlite3_context *pCtx){ +#ifdef SQLITE_ENABLE_API_ARMOR + if( pCtx==0 ) return; +#endif assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); pCtx->isError = SQLITE_TOOBIG; sqlite3VdbeMemSetStr(pCtx->pOut, "string or blob too big", -1, @@ -89783,6 +90514,9 @@ SQLITE_API void sqlite3_result_error_toobig(sqlite3_context *pCtx){ /* An SQLITE_NOMEM error. */ SQLITE_API void sqlite3_result_error_nomem(sqlite3_context *pCtx){ +#ifdef SQLITE_ENABLE_API_ARMOR + if( pCtx==0 ) return; +#endif assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); sqlite3VdbeMemSetNull(pCtx->pOut); pCtx->isError = SQLITE_NOMEM_BKPT; @@ -90035,6 +90769,9 @@ SQLITE_API int sqlite3_step(sqlite3_stmt *pStmt){ ** pointer to it. */ SQLITE_API void *sqlite3_user_data(sqlite3_context *p){ +#ifdef SQLITE_ENABLE_API_ARMOR + if( p==0 ) return 0; +#endif assert( p && p->pFunc ); return p->pFunc->pUserData; } @@ -90050,7 +90787,11 @@ SQLITE_API void *sqlite3_user_data(sqlite3_context *p){ ** application defined function. */ SQLITE_API sqlite3 *sqlite3_context_db_handle(sqlite3_context *p){ +#ifdef SQLITE_ENABLE_API_ARMOR + if( p==0 ) return 0; +#else assert( p && p->pOut ); +#endif return p->pOut->db; } @@ -90069,7 +90810,11 @@ SQLITE_API sqlite3 *sqlite3_context_db_handle(sqlite3_context *p){ ** value, as a signal to the xUpdate routine that the column is unchanged. */ SQLITE_API int sqlite3_vtab_nochange(sqlite3_context *p){ +#ifdef SQLITE_ENABLE_API_ARMOR + if( p==0 ) return 0; +#else assert( p ); +#endif return sqlite3_value_nochange(p->pOut); } @@ -90097,7 +90842,7 @@ static int valueFromValueList( ValueList *pRhs; *ppOut = 0; - if( pVal==0 ) return SQLITE_MISUSE; + if( pVal==0 ) return SQLITE_MISUSE_BKPT; if( (pVal->flags & MEM_Dyn)==0 || pVal->xDel!=sqlite3VdbeValueListFree ){ return SQLITE_ERROR; }else{ @@ -90228,6 +90973,9 @@ SQLITE_API void *sqlite3_aggregate_context(sqlite3_context *p, int nByte){ SQLITE_API void *sqlite3_get_auxdata(sqlite3_context *pCtx, int iArg){ AuxData *pAuxData; +#ifdef SQLITE_ENABLE_API_ARMOR + if( pCtx==0 ) return 0; +#endif assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); #if SQLITE_ENABLE_STAT4 if( pCtx->pVdbe==0 ) return 0; @@ -90260,8 +91008,12 @@ SQLITE_API void sqlite3_set_auxdata( void (*xDelete)(void*) ){ AuxData *pAuxData; - Vdbe *pVdbe = pCtx->pVdbe; + Vdbe *pVdbe; +#ifdef SQLITE_ENABLE_API_ARMOR + if( pCtx==0 ) return; +#endif + pVdbe= pCtx->pVdbe; assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) ); #ifdef SQLITE_ENABLE_STAT4 if( pVdbe==0 ) goto failed; @@ -90698,7 +91450,7 @@ static int vdbeUnbind(Vdbe *p, unsigned int i){ } sqlite3_mutex_enter(p->db->mutex); if( p->eVdbeState!=VDBE_READY_STATE ){ - sqlite3Error(p->db, SQLITE_MISUSE); + sqlite3Error(p->db, SQLITE_MISUSE_BKPT); sqlite3_mutex_leave(p->db->mutex); sqlite3_log(SQLITE_MISUSE, "bind on a busy prepared statement: [%s]", p->zSql); @@ -90927,6 +91679,9 @@ SQLITE_API int sqlite3_bind_zeroblob(sqlite3_stmt *pStmt, int i, int n){ SQLITE_API int sqlite3_bind_zeroblob64(sqlite3_stmt *pStmt, int i, sqlite3_uint64 n){ int rc; Vdbe *p = (Vdbe *)pStmt; +#ifdef SQLITE_ENABLE_API_ARMOR + if( p==0 ) return SQLITE_MISUSE_BKPT; +#endif sqlite3_mutex_enter(p->db->mutex); if( n>(u64)p->db->aLimit[SQLITE_LIMIT_LENGTH] ){ rc = SQLITE_TOOBIG; @@ -91053,6 +91808,9 @@ SQLITE_API int sqlite3_stmt_isexplain(sqlite3_stmt *pStmt){ SQLITE_API int sqlite3_stmt_explain(sqlite3_stmt *pStmt, int eMode){ Vdbe *v = (Vdbe*)pStmt; int rc; +#ifdef SQLITE_ENABLE_API_ARMOR + if( pStmt==0 ) return SQLITE_MISUSE_BKPT; +#endif sqlite3_mutex_enter(v->db->mutex); if( ((int)v->explain)==eMode ){ rc = SQLITE_OK; @@ -91219,10 +91977,16 @@ static UnpackedRecord *vdbeUnpackRecord( ** a field of the row currently being updated or deleted. */ SQLITE_API int sqlite3_preupdate_old(sqlite3 *db, int iIdx, sqlite3_value **ppValue){ - PreUpdate *p = db->pPreUpdate; + PreUpdate *p; Mem *pMem; int rc = SQLITE_OK; +#ifdef SQLITE_ENABLE_API_ARMOR + if( db==0 || ppValue==0 ){ + return SQLITE_MISUSE_BKPT; + } +#endif + p = db->pPreUpdate; /* Test that this call is being made from within an SQLITE_DELETE or ** SQLITE_UPDATE pre-update callback, and that iIdx is within range. */ if( !p || p->op==SQLITE_INSERT ){ @@ -91283,7 +92047,12 @@ SQLITE_API int sqlite3_preupdate_old(sqlite3 *db, int iIdx, sqlite3_value **ppVa ** the number of columns in the row being updated, deleted or inserted. */ SQLITE_API int sqlite3_preupdate_count(sqlite3 *db){ - PreUpdate *p = db->pPreUpdate; + PreUpdate *p; +#ifdef SQLITE_ENABLE_API_ARMOR + p = db!=0 ? db->pPreUpdate : 0; +#else + p = db->pPreUpdate; +#endif return (p ? p->keyinfo.nKeyField : 0); } #endif /* SQLITE_ENABLE_PREUPDATE_HOOK */ @@ -91301,7 +92070,12 @@ SQLITE_API int sqlite3_preupdate_count(sqlite3 *db){ ** or SET DEFAULT action is considered a trigger. */ SQLITE_API int sqlite3_preupdate_depth(sqlite3 *db){ - PreUpdate *p = db->pPreUpdate; + PreUpdate *p; +#ifdef SQLITE_ENABLE_API_ARMOR + p = db!=0 ? db->pPreUpdate : 0; +#else + p = db->pPreUpdate; +#endif return (p ? p->v->nFrame : 0); } #endif /* SQLITE_ENABLE_PREUPDATE_HOOK */ @@ -91312,7 +92086,12 @@ SQLITE_API int sqlite3_preupdate_depth(sqlite3 *db){ ** only. */ SQLITE_API int sqlite3_preupdate_blobwrite(sqlite3 *db){ - PreUpdate *p = db->pPreUpdate; + PreUpdate *p; +#ifdef SQLITE_ENABLE_API_ARMOR + p = db!=0 ? db->pPreUpdate : 0; +#else + p = db->pPreUpdate; +#endif return (p ? p->iBlobWrite : -1); } #endif @@ -91323,10 +92102,16 @@ SQLITE_API int sqlite3_preupdate_blobwrite(sqlite3 *db){ ** a field of the row currently being updated or inserted. */ SQLITE_API int sqlite3_preupdate_new(sqlite3 *db, int iIdx, sqlite3_value **ppValue){ - PreUpdate *p = db->pPreUpdate; + PreUpdate *p; int rc = SQLITE_OK; Mem *pMem; +#ifdef SQLITE_ENABLE_API_ARMOR + if( db==0 || ppValue==0 ){ + return SQLITE_MISUSE_BKPT; + } +#endif + p = db->pPreUpdate; if( !p || p->op==SQLITE_DELETE ){ rc = SQLITE_MISUSE_BKPT; goto preupdate_new_out; @@ -91405,11 +92190,20 @@ SQLITE_API int sqlite3_stmt_scanstatus_v2( void *pOut /* OUT: Write the answer here */ ){ Vdbe *p = (Vdbe*)pStmt; - VdbeOp *aOp = p->aOp; - int nOp = p->nOp; + VdbeOp *aOp; + int nOp; ScanStatus *pScan = 0; int idx; +#ifdef SQLITE_ENABLE_API_ARMOR + if( p==0 || pOut==0 + || iScanStatusOpSQLITE_SCANSTAT_NCYCLE ){ + return 1; + } +#endif + aOp = p->aOp; + nOp = p->nOp; if( p->pFrame ){ VdbeFrame *pFrame; for(pFrame=p->pFrame; pFrame->pParent; pFrame=pFrame->pParent); @@ -91556,7 +92350,7 @@ SQLITE_API int sqlite3_stmt_scanstatus( SQLITE_API void sqlite3_stmt_scanstatus_reset(sqlite3_stmt *pStmt){ Vdbe *p = (Vdbe*)pStmt; int ii; - for(ii=0; iinOp; ii++){ + for(ii=0; p!=0 && iinOp; ii++){ Op *pOp = &p->aOp[ii]; pOp->nExec = 0; pOp->nCycle = 0; @@ -91895,11 +92689,12 @@ SQLITE_API int sqlite3_found_count = 0; ** sqlite3CantopenError(lineno) */ static void test_trace_breakpoint(int pc, Op *pOp, Vdbe *v){ - static int n = 0; + static u64 n = 0; (void)pc; (void)pOp; (void)v; n++; + if( n==LARGEST_UINT64 ) abort(); /* So that n is used, preventing a warning */ } #endif @@ -92525,11 +93320,11 @@ static SQLITE_NOINLINE int vdbeColumnFromOverflow( sqlite3RCStrRef(pBuf); if( t&1 ){ rc = sqlite3VdbeMemSetStr(pDest, pBuf, len, encoding, - (void(*)(void*))sqlite3RCStrUnref); + sqlite3RCStrUnref); pDest->flags |= MEM_Term; }else{ rc = sqlite3VdbeMemSetStr(pDest, pBuf, len, 0, - (void(*)(void*))sqlite3RCStrUnref); + sqlite3RCStrUnref); } }else{ rc = sqlite3VdbeMemFromBtree(pC->uc.pCursor, iOffset, len, pDest); @@ -93796,7 +94591,7 @@ case OP_AddImm: { /* in1 */ pIn1 = &aMem[pOp->p1]; memAboutToChange(p, pIn1); sqlite3VdbeMemIntegerify(pIn1); - pIn1->u.i += pOp->p2; + *(u64*)&pIn1->u.i += (u64)pOp->p2; break; } @@ -95404,7 +96199,6 @@ case OP_MakeRecord: { /* NULL value. No change in zPayload */ }else{ u64 v; - u32 i; if( serial_type==7 ){ assert( sizeof(v)==sizeof(pRec->u.r) ); memcpy(&v, &pRec->u.r, sizeof(v)); @@ -95412,12 +96206,17 @@ case OP_MakeRecord: { }else{ v = pRec->u.i; } - len = i = sqlite3SmallTypeSizes[serial_type]; - assert( i>0 ); - while( 1 /*exit-by-break*/ ){ - zPayload[--i] = (u8)(v&0xFF); - if( i==0 ) break; - v >>= 8; + len = sqlite3SmallTypeSizes[serial_type]; + assert( len>=1 && len<=8 && len!=5 && len!=7 ); + switch( len ){ + default: zPayload[7] = (u8)(v&0xff); v >>= 8; + zPayload[6] = (u8)(v&0xff); v >>= 8; + case 6: zPayload[5] = (u8)(v&0xff); v >>= 8; + zPayload[4] = (u8)(v&0xff); v >>= 8; + case 4: zPayload[3] = (u8)(v&0xff); v >>= 8; + case 3: zPayload[2] = (u8)(v&0xff); v >>= 8; + case 2: zPayload[1] = (u8)(v&0xff); v >>= 8; + case 1: zPayload[0] = (u8)(v&0xff); } zPayload += len; } @@ -97534,8 +98333,13 @@ case OP_RowCell: { ** the "primary" delete. The others are all on OPFLAG_FORDELETE ** cursors or else are marked with the AUXDELETE flag. ** -** If the OPFLAG_NCHANGE flag of P2 (NB: P2 not P5) is set, then the row -** change count is incremented (otherwise not). +** If the OPFLAG_NCHANGE (0x01) flag of P2 (NB: P2 not P5) is set, then +** the row change count is incremented (otherwise not). +** +** If the OPFLAG_ISNOOP (0x40) flag of P2 (not P5!) is set, then the +** pre-update-hook for deletes is run, but the btree is otherwise unchanged. +** This happens when the OP_Delete is to be shortly followed by an OP_Insert +** with the same key, causing the btree entry to be overwritten. ** ** P1 must not be pseudo-table. It has to be a real table with ** multiple rows. @@ -98660,13 +99464,41 @@ case OP_CreateBtree: { /* out2 */ /* Opcode: SqlExec * * * P4 * ** ** Run the SQL statement or statements specified in the P4 string. +** Disable Auth and Trace callbacks while those statements are running if +** P1 is true. */ case OP_SqlExec: { + char *zErr; +#ifndef SQLITE_OMIT_AUTHORIZATION + sqlite3_xauth xAuth; +#endif + u8 mTrace; + sqlite3VdbeIncrWriteCounter(p, 0); db->nSqlExec++; - rc = sqlite3_exec(db, pOp->p4.z, 0, 0, 0); + zErr = 0; +#ifndef SQLITE_OMIT_AUTHORIZATION + xAuth = db->xAuth; +#endif + mTrace = db->mTrace; + if( pOp->p1 ){ +#ifndef SQLITE_OMIT_AUTHORIZATION + db->xAuth = 0; +#endif + db->mTrace = 0; + } + rc = sqlite3_exec(db, pOp->p4.z, 0, 0, &zErr); db->nSqlExec--; - if( rc ) goto abort_due_to_error; +#ifndef SQLITE_OMIT_AUTHORIZATION + db->xAuth = xAuth; +#endif + db->mTrace = mTrace; + if( zErr || rc ){ + sqlite3VdbeError(p, "%s", zErr); + sqlite3_free(zErr); + if( rc==SQLITE_NOMEM ) goto no_mem; + goto abort_due_to_error; + } break; } @@ -99887,6 +100719,52 @@ case OP_VOpen: { /* ncycle */ } #endif /* SQLITE_OMIT_VIRTUALTABLE */ +#ifndef SQLITE_OMIT_VIRTUALTABLE +/* Opcode: VCheck P1 P2 P3 P4 * +** +** P4 is a pointer to a Table object that is a virtual table in schema P1 +** that supports the xIntegrity() method. This opcode runs the xIntegrity() +** method for that virtual table, using P3 as the integer argument. If +** an error is reported back, the table name is prepended to the error +** message and that message is stored in P2. If no errors are seen, +** register P2 is set to NULL. +*/ +case OP_VCheck: { /* out2 */ + Table *pTab; + sqlite3_vtab *pVtab; + const sqlite3_module *pModule; + char *zErr = 0; + + pOut = &aMem[pOp->p2]; + sqlite3VdbeMemSetNull(pOut); /* Innocent until proven guilty */ + assert( pOp->p4type==P4_TABLEREF ); + pTab = pOp->p4.pTab; + assert( pTab!=0 ); + assert( pTab->nTabRef>0 ); + assert( IsVirtual(pTab) ); + if( pTab->u.vtab.p==0 ) break; + pVtab = pTab->u.vtab.p->pVtab; + assert( pVtab!=0 ); + pModule = pVtab->pModule; + assert( pModule!=0 ); + assert( pModule->iVersion>=4 ); + assert( pModule->xIntegrity!=0 ); + sqlite3VtabLock(pTab->u.vtab.p); + assert( pOp->p1>=0 && pOp->p1nDb ); + rc = pModule->xIntegrity(pVtab, db->aDb[pOp->p1].zDbSName, pTab->zName, + pOp->p3, &zErr); + sqlite3VtabUnlock(pTab->u.vtab.p); + if( rc ){ + sqlite3_free(zErr); + goto abort_due_to_error; + } + if( zErr ){ + sqlite3VdbeMemSetStr(pOut, zErr, -1, SQLITE_UTF8, sqlite3_free); + } + break; +} +#endif /* SQLITE_OMIT_VIRTUALTABLE */ + #ifndef SQLITE_OMIT_VIRTUALTABLE /* Opcode: VInitIn P1 P2 P3 * * ** Synopsis: r[P2]=ValueList(P1,P3) @@ -100000,6 +100878,7 @@ case OP_VColumn: { /* ncycle */ const sqlite3_module *pModule; Mem *pDest; sqlite3_context sContext; + FuncDef nullFunc; VdbeCursor *pCur = p->apCsr[pOp->p1]; assert( pCur!=0 ); @@ -100017,6 +100896,9 @@ case OP_VColumn: { /* ncycle */ memset(&sContext, 0, sizeof(sContext)); sContext.pOut = pDest; sContext.enc = encoding; + nullFunc.pUserData = 0; + nullFunc.funcFlags = SQLITE_RESULT_SUBTYPE; + sContext.pFunc = &nullFunc; assert( pOp->p5==OPFLAG_NOCHNG || pOp->p5==0 ); if( pOp->p5 & OPFLAG_NOCHNG ){ sqlite3VdbeMemSetNull(pDest); @@ -100349,6 +101231,42 @@ case OP_ClrSubtype: { /* in1 */ break; } +/* Opcode: GetSubtype P1 P2 * * * +** Synopsis: r[P2] = r[P1].subtype +** +** Extract the subtype value from register P1 and write that subtype +** into register P2. If P1 has no subtype, then P1 gets a NULL. +*/ +case OP_GetSubtype: { /* in1 out2 */ + pIn1 = &aMem[pOp->p1]; + pOut = &aMem[pOp->p2]; + if( pIn1->flags & MEM_Subtype ){ + sqlite3VdbeMemSetInt64(pOut, pIn1->eSubtype); + }else{ + sqlite3VdbeMemSetNull(pOut); + } + break; +} + +/* Opcode: SetSubtype P1 P2 * * * +** Synopsis: r[P2].subtype = r[P1] +** +** Set the subtype value of register P2 to the integer from register P1. +** If P1 is NULL, clear the subtype from p2. +*/ +case OP_SetSubtype: { /* in1 out2 */ + pIn1 = &aMem[pOp->p1]; + pOut = &aMem[pOp->p2]; + if( pIn1->flags & MEM_Null ){ + pOut->flags &= ~MEM_Subtype; + }else{ + assert( pIn1->flags & MEM_Int ); + pOut->flags |= MEM_Subtype; + pOut->eSubtype = (u8)(pIn1->u.i & 0xff); + } + break; +} + /* Opcode: FilterAdd P1 * P3 P4 * ** Synopsis: filter(P1) += key(P3@P4) ** @@ -100833,8 +101751,7 @@ static int blobSeekToRow(Incrblob *p, sqlite3_int64 iRow, char **pzErr){ /* Set the value of register r[1] in the SQL statement to integer iRow. ** This is done directly as a performance optimization */ - v->aMem[1].flags = MEM_Int; - v->aMem[1].u.i = iRow; + sqlite3VdbeMemSetInt64(&v->aMem[1], iRow); /* If the statement has been run before (and is paused at the OP_ResultRow) ** then back it up to the point where it does the OP_NotExists. This could @@ -100917,7 +101834,7 @@ SQLITE_API int sqlite3_blob_open( #endif *ppBlob = 0; #ifdef SQLITE_ENABLE_API_ARMOR - if( !sqlite3SafetyCheckOk(db) || zTable==0 ){ + if( !sqlite3SafetyCheckOk(db) || zTable==0 || zColumn==0 ){ return SQLITE_MISUSE_BKPT; } #endif @@ -101479,7 +102396,7 @@ struct SorterFile { struct SorterList { SorterRecord *pList; /* Linked list of records */ u8 *aMemory; /* If non-NULL, bulk memory to hold pList */ - int szPMA; /* Size of pList as PMA in bytes */ + i64 szPMA; /* Size of pList as PMA in bytes */ }; /* @@ -101588,10 +102505,10 @@ typedef int (*SorterCompare)(SortSubtask*,int*,const void*,int,const void*,int); struct SortSubtask { SQLiteThread *pThread; /* Background thread, if any */ int bDone; /* Set if thread is finished but not joined */ + int nPMA; /* Number of PMAs currently in file */ VdbeSorter *pSorter; /* Sorter that owns this sub-task */ UnpackedRecord *pUnpacked; /* Space to unpack a record */ SorterList list; /* List for thread to write to a PMA */ - int nPMA; /* Number of PMAs currently in file */ SorterCompare xCompare; /* Compare function to use */ SorterFile file; /* Temp file for level-0 PMAs */ SorterFile file2; /* Space for other PMAs */ @@ -103065,8 +103982,8 @@ SQLITE_PRIVATE int sqlite3VdbeSorterWrite( int rc = SQLITE_OK; /* Return Code */ SorterRecord *pNew; /* New list element */ int bFlush; /* True to flush contents of memory to PMA */ - int nReq; /* Bytes of memory required */ - int nPMA; /* Bytes of PMA space required */ + i64 nReq; /* Bytes of memory required */ + i64 nPMA; /* Bytes of PMA space required */ int t; /* serial type of first record field */ assert( pCsr->eCurType==CURTYPE_SORTER ); @@ -104490,7 +105407,8 @@ static sqlite3_module bytecodevtabModule = { /* xSavepoint */ 0, /* xRelease */ 0, /* xRollbackTo */ 0, - /* xShadowName */ 0 + /* xShadowName */ 0, + /* xIntegrity */ 0 }; @@ -105319,21 +106237,36 @@ static void resolveAlias( } /* -** Subqueries stores the original database, table and column names for their -** result sets in ExprList.a[].zSpan, in the form "DATABASE.TABLE.COLUMN". -** Check to see if the zSpan given to this routine matches the zDb, zTab, -** and zCol. If any of zDb, zTab, and zCol are NULL then those fields will -** match anything. +** Subqueries store the original database, table and column names for their +** result sets in ExprList.a[].zSpan, in the form "DATABASE.TABLE.COLUMN", +** and mark the expression-list item by setting ExprList.a[].fg.eEName +** to ENAME_TAB. +** +** Check to see if the zSpan/eEName of the expression-list item passed to this +** routine matches the zDb, zTab, and zCol. If any of zDb, zTab, and zCol are +** NULL then those fields will match anything. Return true if there is a match, +** or false otherwise. +** +** SF_NestedFrom subqueries also store an entry for the implicit rowid (or +** _rowid_, or oid) column by setting ExprList.a[].fg.eEName to ENAME_ROWID, +** and setting zSpan to "DATABASE.TABLE.". This type of pItem +** argument matches if zCol is a rowid alias. If it is not NULL, (*pbRowid) +** is set to 1 if there is this kind of match. */ SQLITE_PRIVATE int sqlite3MatchEName( const struct ExprList_item *pItem, const char *zCol, const char *zTab, - const char *zDb + const char *zDb, + int *pbRowid ){ int n; const char *zSpan; - if( pItem->fg.eEName!=ENAME_TAB ) return 0; + int eEName = pItem->fg.eEName; + if( eEName!=ENAME_TAB && (eEName!=ENAME_ROWID || NEVER(pbRowid==0)) ){ + return 0; + } + assert( pbRowid==0 || *pbRowid==0 ); zSpan = pItem->zEName; for(n=0; ALWAYS(zSpan[n]) && zSpan[n]!='.'; n++){} if( zDb && (sqlite3StrNICmp(zSpan, zDb, n)!=0 || zDb[n]!=0) ){ @@ -105345,9 +106278,11 @@ SQLITE_PRIVATE int sqlite3MatchEName( return 0; } zSpan += n+1; - if( zCol && sqlite3StrICmp(zSpan, zCol)!=0 ){ - return 0; + if( zCol ){ + if( eEName==ENAME_TAB && sqlite3StrICmp(zSpan, zCol)!=0 ) return 0; + if( eEName==ENAME_ROWID && sqlite3IsRowid(zCol)==0 ) return 0; } + if( eEName==ENAME_ROWID ) *pbRowid = 1; return 1; } @@ -105380,6 +106315,7 @@ SQLITE_PRIVATE Bitmask sqlite3ExprColUsed(Expr *pExpr){ assert( ExprUseYTab(pExpr) ); pExTab = pExpr->y.pTab; assert( pExTab!=0 ); + assert( n < pExTab->nCol ); if( (pExTab->tabFlags & TF_HasGenerated)!=0 && (pExTab->aCol[n].colFlags & COLFLAG_GENERATED)!=0 ){ @@ -105480,7 +106416,7 @@ static int lookupName( ){ int i, j; /* Loop counters */ int cnt = 0; /* Number of matching column names */ - int cntTab = 0; /* Number of matching table names */ + int cntTab = 0; /* Number of potential "rowid" matches */ int nSubquery = 0; /* How many levels of subquery */ sqlite3 *db = pParse->db; /* The database connection */ SrcItem *pItem; /* Use for looping over pSrcList items */ @@ -105557,39 +106493,49 @@ static int lookupName( assert( pEList!=0 ); assert( pEList->nExpr==pTab->nCol ); for(j=0; jnExpr; j++){ - if( !sqlite3MatchEName(&pEList->a[j], zCol, zTab, zDb) ){ + int bRowid = 0; /* True if possible rowid match */ + if( !sqlite3MatchEName(&pEList->a[j], zCol, zTab, zDb, &bRowid) ){ continue; } - if( cnt>0 ){ - if( pItem->fg.isUsing==0 - || sqlite3IdListIndex(pItem->u3.pUsing, zCol)<0 - ){ - /* Two or more tables have the same column name which is - ** not joined by USING. This is an error. Signal as much - ** by clearing pFJMatch and letting cnt go above 1. */ - sqlite3ExprListDelete(db, pFJMatch); - pFJMatch = 0; - }else - if( (pItem->fg.jointype & JT_RIGHT)==0 ){ - /* An INNER or LEFT JOIN. Use the left-most table */ - continue; - }else - if( (pItem->fg.jointype & JT_LEFT)==0 ){ - /* A RIGHT JOIN. Use the right-most table */ - cnt = 0; - sqlite3ExprListDelete(db, pFJMatch); - pFJMatch = 0; - }else{ - /* For a FULL JOIN, we must construct a coalesce() func */ - extendFJMatch(pParse, &pFJMatch, pMatch, pExpr->iColumn); + if( bRowid==0 ){ + if( cnt>0 ){ + if( pItem->fg.isUsing==0 + || sqlite3IdListIndex(pItem->u3.pUsing, zCol)<0 + ){ + /* Two or more tables have the same column name which is + ** not joined by USING. This is an error. Signal as much + ** by clearing pFJMatch and letting cnt go above 1. */ + sqlite3ExprListDelete(db, pFJMatch); + pFJMatch = 0; + }else + if( (pItem->fg.jointype & JT_RIGHT)==0 ){ + /* An INNER or LEFT JOIN. Use the left-most table */ + continue; + }else + if( (pItem->fg.jointype & JT_LEFT)==0 ){ + /* A RIGHT JOIN. Use the right-most table */ + cnt = 0; + sqlite3ExprListDelete(db, pFJMatch); + pFJMatch = 0; + }else{ + /* For a FULL JOIN, we must construct a coalesce() func */ + extendFJMatch(pParse, &pFJMatch, pMatch, pExpr->iColumn); + } } + cnt++; + hit = 1; + }else if( cnt>0 ){ + /* This is a potential rowid match, but there has already been + ** a real match found. So this can be ignored. */ + continue; } - cnt++; - cntTab = 2; + cntTab++; pMatch = pItem; pExpr->iColumn = j; pEList->a[j].fg.bUsed = 1; - hit = 1; + + /* rowid cannot be part of a USING clause - assert() this. */ + assert( bRowid==0 || pEList->a[j].fg.bUsingTerm==0 ); if( pEList->a[j].fg.bUsingTerm ) break; } if( hit || zTab==0 ) continue; @@ -105784,10 +106730,10 @@ static int lookupName( && pMatch && (pNC->ncFlags & (NC_IdxExpr|NC_GenCol))==0 && sqlite3IsRowid(zCol) - && ALWAYS(VisibleRowid(pMatch->pTab)) + && ALWAYS(VisibleRowid(pMatch->pTab) || pMatch->fg.isNestedFrom) ){ cnt = 1; - pExpr->iColumn = -1; + if( pMatch->fg.isNestedFrom==0 ) pExpr->iColumn = -1; pExpr->affExpr = SQLITE_AFF_INTEGER; } @@ -105946,6 +106892,7 @@ static int lookupName( sqlite3RecordErrorOffsetOfExpr(pParse->db, pExpr); pParse->checkSchema = 1; pTopNC->nNcErr++; + eNewExprOp = TK_NULL; } assert( pFJMatch==0 ); @@ -105972,7 +106919,7 @@ static int lookupName( ** If a generated column is referenced, set bits for every column ** of the table. */ - if( pExpr->iColumn>=0 && pMatch!=0 ){ + if( pExpr->iColumn>=0 && cnt==1 && pMatch!=0 ){ pMatch->colUsed |= sqlite3ExprColUsed(pExpr); } @@ -106240,6 +107187,7 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ Window *pWin = (IsWindowFunc(pExpr) ? pExpr->y.pWin : 0); #endif assert( !ExprHasProperty(pExpr, EP_xIsSelect|EP_IntValue) ); + assert( pExpr->pLeft==0 || pExpr->pLeft->op==TK_ORDER ); zId = pExpr->u.zToken; pDef = sqlite3FindFunction(pParse->db, zId, n, enc, 0); if( pDef==0 ){ @@ -106381,6 +107329,10 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ pNC->nNcErr++; } #endif + else if( is_agg==0 && pExpr->pLeft ){ + sqlite3ExprOrderByAggregateError(pParse, pExpr); + pNC->nNcErr++; + } if( is_agg ){ /* Window functions may not be arguments of aggregate functions. ** Or arguments of other window functions. But aggregate functions @@ -106399,6 +107351,11 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ #endif sqlite3WalkExprList(pWalker, pList); if( is_agg ){ + if( pExpr->pLeft ){ + assert( pExpr->pLeft->op==TK_ORDER ); + assert( ExprUseXList(pExpr->pLeft) ); + sqlite3WalkExprList(pWalker, pExpr->pLeft->x.pList); + } #ifndef SQLITE_OMIT_WINDOWFUNC if( pWin ){ Select *pSel = pNC->pWinSelect; @@ -106427,11 +107384,12 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ while( pNC2 && sqlite3ReferencesSrcList(pParse, pExpr, pNC2->pSrcList)==0 ){ - pExpr->op2++; + pExpr->op2 += (1 + pNC2->nNestedSelect); pNC2 = pNC2->pNext; } assert( pDef!=0 || IN_RENAME_OBJECT ); if( pNC2 && pDef ){ + pExpr->op2 += pNC2->nNestedSelect; assert( SQLITE_FUNC_MINMAX==NC_MinMaxAgg ); assert( SQLITE_FUNC_ANYORDER==NC_OrderAgg ); testcase( (pDef->funcFlags & SQLITE_FUNC_MINMAX)!=0 ); @@ -106962,10 +107920,8 @@ static int resolveSelectStep(Walker *pWalker, Select *p){ while( p ){ assert( (p->selFlags & SF_Expanded)!=0 ); assert( (p->selFlags & SF_Resolved)==0 ); - assert( db->suppressErr==0 ); /* SF_Resolved not set if errors suppressed */ p->selFlags |= SF_Resolved; - /* Resolve the expressions in the LIMIT and OFFSET clauses. These ** are not allowed to refer to any names, so pass an empty NameContext. */ @@ -106992,6 +107948,7 @@ static int resolveSelectStep(Walker *pWalker, Select *p){ /* Recursively resolve names in all subqueries in the FROM clause */ + if( pOuterNC ) pOuterNC->nNestedSelect++; for(i=0; ipSrc->nSrc; i++){ SrcItem *pItem = &p->pSrc->a[i]; if( pItem->pSelect && (pItem->pSelect->selFlags & SF_Resolved)==0 ){ @@ -107016,6 +107973,9 @@ static int resolveSelectStep(Walker *pWalker, Select *p){ } } } + if( pOuterNC && ALWAYS(pOuterNC->nNestedSelect>0) ){ + pOuterNC->nNestedSelect--; + } /* Set up the local name-context to pass to sqlite3ResolveExprNames() to ** resolve the result-set expression list. @@ -107971,6 +108931,7 @@ SQLITE_PRIVATE Expr *sqlite3ExprForVectorField( */ pRet = sqlite3PExpr(pParse, TK_SELECT_COLUMN, 0, 0); if( pRet ){ + ExprSetProperty(pRet, EP_FullSize); pRet->iTable = nField; pRet->iColumn = iField; pRet->pLeft = pVector; @@ -108561,6 +109522,67 @@ SQLITE_PRIVATE Expr *sqlite3ExprFunction( return pNew; } +/* +** Report an error when attempting to use an ORDER BY clause within +** the arguments of a non-aggregate function. +*/ +SQLITE_PRIVATE void sqlite3ExprOrderByAggregateError(Parse *pParse, Expr *p){ + sqlite3ErrorMsg(pParse, + "ORDER BY may not be used with non-aggregate %#T()", p + ); +} + +/* +** Attach an ORDER BY clause to a function call. +** +** functionname( arguments ORDER BY sortlist ) +** \_____________________/ \______/ +** pExpr pOrderBy +** +** The ORDER BY clause is inserted into a new Expr node of type TK_ORDER +** and added to the Expr.pLeft field of the parent TK_FUNCTION node. +*/ +SQLITE_PRIVATE void sqlite3ExprAddFunctionOrderBy( + Parse *pParse, /* Parsing context */ + Expr *pExpr, /* The function call to which ORDER BY is to be added */ + ExprList *pOrderBy /* The ORDER BY clause to add */ +){ + Expr *pOB; + sqlite3 *db = pParse->db; + if( NEVER(pOrderBy==0) ){ + assert( db->mallocFailed ); + return; + } + if( pExpr==0 ){ + assert( db->mallocFailed ); + sqlite3ExprListDelete(db, pOrderBy); + return; + } + assert( pExpr->op==TK_FUNCTION ); + assert( pExpr->pLeft==0 ); + assert( ExprUseXList(pExpr) ); + if( pExpr->x.pList==0 || NEVER(pExpr->x.pList->nExpr==0) ){ + /* Ignore ORDER BY on zero-argument aggregates */ + sqlite3ParserAddCleanup(pParse, sqlite3ExprListDeleteGeneric, pOrderBy); + return; + } + if( IsWindowFunc(pExpr) ){ + sqlite3ExprOrderByAggregateError(pParse, pExpr); + sqlite3ExprListDelete(db, pOrderBy); + return; + } + + pOB = sqlite3ExprAlloc(db, TK_ORDER, 0, 0); + if( pOB==0 ){ + sqlite3ExprListDelete(db, pOrderBy); + return; + } + pOB->x.pList = pOrderBy; + assert( ExprUseXList(pOB) ); + pExpr->pLeft = pOB; + ExprSetProperty(pOB, EP_FullSize); +} + /* ** Check to see if a function is usable according to current access ** rules: @@ -108722,6 +109744,9 @@ static SQLITE_NOINLINE void sqlite3ExprDeleteNN(sqlite3 *db, Expr *p){ SQLITE_PRIVATE void sqlite3ExprDelete(sqlite3 *db, Expr *p){ if( p ) sqlite3ExprDeleteNN(db, p); } +SQLITE_PRIVATE void sqlite3ExprDeleteGeneric(sqlite3 *db, void *p){ + if( ALWAYS(p) ) sqlite3ExprDeleteNN(db, (Expr*)p); +} /* ** Clear both elements of an OnOrUsing object @@ -108747,9 +109772,7 @@ SQLITE_PRIVATE void sqlite3ClearOnOrUsing(sqlite3 *db, OnOrUsing *p){ ** pExpr to the pParse->pConstExpr list with a register number of 0. */ SQLITE_PRIVATE void sqlite3ExprDeferredDelete(Parse *pParse, Expr *pExpr){ - sqlite3ParserAddCleanup(pParse, - (void(*)(sqlite3*,void*))sqlite3ExprDelete, - pExpr); + sqlite3ParserAddCleanup(pParse, sqlite3ExprDeleteGeneric, pExpr); } /* Invoke sqlite3RenameExprUnmap() and sqlite3ExprDelete() on the @@ -108814,11 +109837,7 @@ static int dupedExprStructSize(const Expr *p, int flags){ assert( flags==EXPRDUP_REDUCE || flags==0 ); /* Only one flag value allowed */ assert( EXPR_FULLSIZE<=0xfff ); assert( (0xfff & (EP_Reduced|EP_TokenOnly))==0 ); - if( 0==flags || p->op==TK_SELECT_COLUMN -#ifndef SQLITE_OMIT_WINDOWFUNC - || ExprHasProperty(p, EP_WinFunc) -#endif - ){ + if( 0==flags || ExprHasProperty(p, EP_FullSize) ){ nSize = EXPR_FULLSIZE; }else{ assert( !ExprHasProperty(p, EP_TokenOnly|EP_Reduced) ); @@ -108849,56 +109868,93 @@ static int dupedExprNodeSize(const Expr *p, int flags){ /* ** Return the number of bytes required to create a duplicate of the -** expression passed as the first argument. The second argument is a -** mask containing EXPRDUP_XXX flags. +** expression passed as the first argument. ** ** The value returned includes space to create a copy of the Expr struct ** itself and the buffer referred to by Expr.u.zToken, if any. ** -** If the EXPRDUP_REDUCE flag is set, then the return value includes -** space to duplicate all Expr nodes in the tree formed by Expr.pLeft -** and Expr.pRight variables (but not for any structures pointed to or -** descended from the Expr.x.pList or Expr.x.pSelect variables). +** The return value includes space to duplicate all Expr nodes in the +** tree formed by Expr.pLeft and Expr.pRight, but not any other +** substructure such as Expr.x.pList, Expr.x.pSelect, and Expr.y.pWin. */ -static int dupedExprSize(const Expr *p, int flags){ - int nByte = 0; - if( p ){ - nByte = dupedExprNodeSize(p, flags); - if( flags&EXPRDUP_REDUCE ){ - nByte += dupedExprSize(p->pLeft, flags) + dupedExprSize(p->pRight, flags); - } - } +static int dupedExprSize(const Expr *p){ + int nByte; + assert( p!=0 ); + nByte = dupedExprNodeSize(p, EXPRDUP_REDUCE); + if( p->pLeft ) nByte += dupedExprSize(p->pLeft); + if( p->pRight ) nByte += dupedExprSize(p->pRight); + assert( nByte==ROUND8(nByte) ); return nByte; } /* -** This function is similar to sqlite3ExprDup(), except that if pzBuffer -** is not NULL then *pzBuffer is assumed to point to a buffer large enough -** to store the copy of expression p, the copies of p->u.zToken -** (if applicable), and the copies of the p->pLeft and p->pRight expressions, -** if any. Before returning, *pzBuffer is set to the first byte past the -** portion of the buffer copied into by this function. +** An EdupBuf is a memory allocation used to stored multiple Expr objects +** together with their Expr.zToken content. This is used to help implement +** compression while doing sqlite3ExprDup(). The top-level Expr does the +** allocation for itself and many of its decendents, then passes an instance +** of the structure down into exprDup() so that they decendents can have +** access to that memory. */ -static Expr *exprDup(sqlite3 *db, const Expr *p, int dupFlags, u8 **pzBuffer){ +typedef struct EdupBuf EdupBuf; +struct EdupBuf { + u8 *zAlloc; /* Memory space available for storage */ +#ifdef SQLITE_DEBUG + u8 *zEnd; /* First byte past the end of memory */ +#endif +}; + +/* +** This function is similar to sqlite3ExprDup(), except that if pEdupBuf +** is not NULL then it points to memory that can be used to store a copy +** of the input Expr p together with its p->u.zToken (if any). pEdupBuf +** is updated with the new buffer tail prior to returning. +*/ +static Expr *exprDup( + sqlite3 *db, /* Database connection (for memory allocation) */ + const Expr *p, /* Expr tree to be duplicated */ + int dupFlags, /* EXPRDUP_REDUCE for compression. 0 if not */ + EdupBuf *pEdupBuf /* Preallocated storage space, or NULL */ +){ Expr *pNew; /* Value to return */ - u8 *zAlloc; /* Memory space from which to build Expr object */ + EdupBuf sEdupBuf; /* Memory space from which to build Expr object */ u32 staticFlag; /* EP_Static if space not obtained from malloc */ + int nToken = -1; /* Space needed for p->u.zToken. -1 means unknown */ assert( db!=0 ); assert( p ); assert( dupFlags==0 || dupFlags==EXPRDUP_REDUCE ); - assert( pzBuffer==0 || dupFlags==EXPRDUP_REDUCE ); + assert( pEdupBuf==0 || dupFlags==EXPRDUP_REDUCE ); /* Figure out where to write the new Expr structure. */ - if( pzBuffer ){ - zAlloc = *pzBuffer; + if( pEdupBuf ){ + sEdupBuf.zAlloc = pEdupBuf->zAlloc; +#ifdef SQLITE_DEBUG + sEdupBuf.zEnd = pEdupBuf->zEnd; +#endif staticFlag = EP_Static; - assert( zAlloc!=0 ); + assert( sEdupBuf.zAlloc!=0 ); + assert( dupFlags==EXPRDUP_REDUCE ); }else{ - zAlloc = sqlite3DbMallocRawNN(db, dupedExprSize(p, dupFlags)); + int nAlloc; + if( dupFlags ){ + nAlloc = dupedExprSize(p); + }else if( !ExprHasProperty(p, EP_IntValue) && p->u.zToken ){ + nToken = sqlite3Strlen30NN(p->u.zToken)+1; + nAlloc = ROUND8(EXPR_FULLSIZE + nToken); + }else{ + nToken = 0; + nAlloc = ROUND8(EXPR_FULLSIZE); + } + assert( nAlloc==ROUND8(nAlloc) ); + sEdupBuf.zAlloc = sqlite3DbMallocRawNN(db, nAlloc); +#ifdef SQLITE_DEBUG + sEdupBuf.zEnd = sEdupBuf.zAlloc ? sEdupBuf.zAlloc+nAlloc : 0; +#endif + staticFlag = 0; } - pNew = (Expr *)zAlloc; + pNew = (Expr *)sEdupBuf.zAlloc; + assert( EIGHT_BYTE_ALIGNMENT(pNew) ); if( pNew ){ /* Set nNewSize to the size allocated for the structure pointed to @@ -108907,22 +109963,27 @@ static Expr *exprDup(sqlite3 *db, const Expr *p, int dupFlags, u8 **pzBuffer){ ** by the copy of the p->u.zToken string (if any). */ const unsigned nStructSize = dupedExprStructSize(p, dupFlags); - const int nNewSize = nStructSize & 0xfff; - int nToken; - if( !ExprHasProperty(p, EP_IntValue) && p->u.zToken ){ - nToken = sqlite3Strlen30(p->u.zToken) + 1; - }else{ - nToken = 0; + int nNewSize = nStructSize & 0xfff; + if( nToken<0 ){ + if( !ExprHasProperty(p, EP_IntValue) && p->u.zToken ){ + nToken = sqlite3Strlen30(p->u.zToken) + 1; + }else{ + nToken = 0; + } } if( dupFlags ){ + assert( (int)(sEdupBuf.zEnd - sEdupBuf.zAlloc) >= nNewSize+nToken ); assert( ExprHasProperty(p, EP_Reduced)==0 ); - memcpy(zAlloc, p, nNewSize); + memcpy(sEdupBuf.zAlloc, p, nNewSize); }else{ u32 nSize = (u32)exprStructSize(p); - memcpy(zAlloc, p, nSize); + assert( (int)(sEdupBuf.zEnd - sEdupBuf.zAlloc) >= + (int)EXPR_FULLSIZE+nToken ); + memcpy(sEdupBuf.zAlloc, p, nSize); if( nSizeu.zToken string, if any. */ - if( nToken ){ - char *zToken = pNew->u.zToken = (char*)&zAlloc[nNewSize]; + assert( nToken>=0 ); + if( nToken>0 ){ + char *zToken = pNew->u.zToken = (char*)&sEdupBuf.zAlloc[nNewSize]; memcpy(zToken, p->u.zToken, nToken); + nNewSize += nToken; } + sEdupBuf.zAlloc += ROUND8(nNewSize); + + if( ((p->flags|pNew->flags)&(EP_TokenOnly|EP_Leaf))==0 ){ - if( 0==((p->flags|pNew->flags) & (EP_TokenOnly|EP_Leaf)) ){ /* Fill in the pNew->x.pSelect or pNew->x.pList member. */ if( ExprUseXSelect(p) ){ pNew->x.pSelect = sqlite3SelectDup(db, p->x.pSelect, dupFlags); }else{ - pNew->x.pList = sqlite3ExprListDup(db, p->x.pList, dupFlags); + pNew->x.pList = sqlite3ExprListDup(db, p->x.pList, + p->op!=TK_ORDER ? dupFlags : 0); } - } - /* Fill in pNew->pLeft and pNew->pRight. */ - if( ExprHasProperty(pNew, EP_Reduced|EP_TokenOnly|EP_WinFunc) ){ - zAlloc += dupedExprNodeSize(p, dupFlags); - if( !ExprHasProperty(pNew, EP_TokenOnly|EP_Leaf) ){ - pNew->pLeft = p->pLeft ? - exprDup(db, p->pLeft, EXPRDUP_REDUCE, &zAlloc) : 0; - pNew->pRight = p->pRight ? - exprDup(db, p->pRight, EXPRDUP_REDUCE, &zAlloc) : 0; - } #ifndef SQLITE_OMIT_WINDOWFUNC if( ExprHasProperty(p, EP_WinFunc) ){ pNew->y.pWin = sqlite3WindowDup(db, pNew, p->y.pWin); assert( ExprHasProperty(pNew, EP_WinFunc) ); } #endif /* SQLITE_OMIT_WINDOWFUNC */ - if( pzBuffer ){ - *pzBuffer = zAlloc; - } - }else{ - if( !ExprHasProperty(p, EP_TokenOnly|EP_Leaf) ){ - if( pNew->op==TK_SELECT_COLUMN ){ + + /* Fill in pNew->pLeft and pNew->pRight. */ + if( dupFlags ){ + if( p->op==TK_SELECT_COLUMN ){ pNew->pLeft = p->pLeft; - assert( p->pRight==0 || p->pRight==p->pLeft - || ExprHasProperty(p->pLeft, EP_Subquery) ); + assert( p->pRight==0 + || p->pRight==p->pLeft + || ExprHasProperty(p->pLeft, EP_Subquery) ); + }else{ + pNew->pLeft = p->pLeft ? + exprDup(db, p->pLeft, EXPRDUP_REDUCE, &sEdupBuf) : 0; + } + pNew->pRight = p->pRight ? + exprDup(db, p->pRight, EXPRDUP_REDUCE, &sEdupBuf) : 0; + }else{ + if( p->op==TK_SELECT_COLUMN ){ + pNew->pLeft = p->pLeft; + assert( p->pRight==0 + || p->pRight==p->pLeft + || ExprHasProperty(p->pLeft, EP_Subquery) ); }else{ pNew->pLeft = sqlite3ExprDup(db, p->pLeft, 0); } @@ -108980,6 +110047,8 @@ static Expr *exprDup(sqlite3 *db, const Expr *p, int dupFlags, u8 **pzBuffer){ } } } + if( pEdupBuf ) memcpy(pEdupBuf, &sEdupBuf, sizeof(sEdupBuf)); + assert( sEdupBuf.zAlloc <= sEdupBuf.zEnd ); return pNew; } @@ -109244,11 +110313,7 @@ SQLITE_PRIVATE Select *sqlite3SelectDup(sqlite3 *db, const Select *p, int flags) ** initially NULL, then create a new expression list. ** ** The pList argument must be either NULL or a pointer to an ExprList -** obtained from a prior call to sqlite3ExprListAppend(). This routine -** may not be used with an ExprList obtained from sqlite3ExprListDup(). -** Reason: This routine assumes that the number of slots in pList->a[] -** is a power of two. That is true for sqlite3ExprListAppend() returns -** but is not necessarily true from the return value of sqlite3ExprListDup(). +** obtained from a prior call to sqlite3ExprListAppend(). ** ** If a memory allocation error occurs, the entire list is freed and ** NULL is returned. If non-NULL is returned, then it is guaranteed @@ -109513,6 +110578,9 @@ static SQLITE_NOINLINE void exprListDeleteNN(sqlite3 *db, ExprList *pList){ SQLITE_PRIVATE void sqlite3ExprListDelete(sqlite3 *db, ExprList *pList){ if( pList ) exprListDeleteNN(db, pList); } +SQLITE_PRIVATE void sqlite3ExprListDeleteGeneric(sqlite3 *db, void *pList){ + if( ALWAYS(pList) ) exprListDeleteNN(db, (ExprList*)pList); +} /* ** Return the bitwise-OR of all Expr.flags fields in the given @@ -110012,9 +111080,10 @@ SQLITE_PRIVATE int sqlite3ExprCanBeNull(const Expr *p){ case TK_COLUMN: assert( ExprUseYTab(p) ); return ExprHasProperty(p, EP_CanBeNull) || - p->y.pTab==0 || /* Reference to column of index on expression */ + NEVER(p->y.pTab==0) || /* Reference to column of index on expr */ (p->iColumn>=0 && p->y.pTab->aCol!=0 /* Possible due to prior error */ + && ALWAYS(p->iColumny.pTab->nCol) && p->y.pTab->aCol[p->iColumn].notNull==0); default: return 1; @@ -110074,6 +111143,27 @@ SQLITE_PRIVATE int sqlite3IsRowid(const char *z){ return 0; } +/* +** Return a pointer to a buffer containing a usable rowid alias for table +** pTab. An alias is usable if there is not an explicit user-defined column +** of the same name. +*/ +SQLITE_PRIVATE const char *sqlite3RowidAlias(Table *pTab){ + const char *azOpt[] = {"_ROWID_", "ROWID", "OID"}; + int ii; + assert( VisibleRowid(pTab) ); + for(ii=0; iinCol; iCol++){ + if( sqlite3_stricmp(azOpt[ii], pTab->aCol[iCol].zCnName)==0 ) break; + } + if( iCol==pTab->nCol ){ + return azOpt[ii]; + } + } + return 0; +} + /* ** pX is the RHS of an IN operator. If pX is a SELECT statement ** that can be simplified to a direct table access, then return @@ -111611,6 +112701,41 @@ static SQLITE_NOINLINE int sqlite3IndexedExprLookup( } +/* +** Expresion pExpr is guaranteed to be a TK_COLUMN or equivalent. This +** function checks the Parse.pIdxPartExpr list to see if this column +** can be replaced with a constant value. If so, it generates code to +** put the constant value in a register (ideally, but not necessarily, +** register iTarget) and returns the register number. +** +** Or, if the TK_COLUMN cannot be replaced by a constant, zero is +** returned. +*/ +static int exprPartidxExprLookup(Parse *pParse, Expr *pExpr, int iTarget){ + IndexedExpr *p; + for(p=pParse->pIdxPartExpr; p; p=p->pIENext){ + if( pExpr->iColumn==p->iIdxCol && pExpr->iTable==p->iDataCur ){ + Vdbe *v = pParse->pVdbe; + int addr = 0; + int ret; + + if( p->bMaybeNullRow ){ + addr = sqlite3VdbeAddOp1(v, OP_IfNullRow, p->iIdxCur); + } + ret = sqlite3ExprCodeTarget(pParse, p->pExpr, iTarget); + sqlite3VdbeAddOp4(pParse->pVdbe, OP_Affinity, ret, 1, 0, + (const char*)&p->aff, 1); + if( addr ){ + sqlite3VdbeJumpHere(v, addr); + sqlite3VdbeChangeP3(v, addr, ret); + } + return ret; + } + } + return 0; +} + + /* ** Generate code into the current Vdbe to evaluate the given ** expression. Attempt to store the results in register "target". @@ -111647,6 +112772,7 @@ expr_code_doover: assert( !ExprHasVVAProperty(pExpr,EP_Immutable) ); op = pExpr->op; } + assert( op!=TK_ORDER ); switch( op ){ case TK_AGG_COLUMN: { AggInfo *pAggInfo = pExpr->pAggInfo; @@ -111660,7 +112786,7 @@ expr_code_doover: #ifdef SQLITE_VDBE_COVERAGE /* Verify that the OP_Null above is exercised by tests ** tag-20230325-2 */ - sqlite3VdbeAddOp2(v, OP_NotNull, target, 1); + sqlite3VdbeAddOp3(v, OP_NotNull, target, 1, 20230325); VdbeCoverageNeverTaken(v); #endif break; @@ -111768,6 +112894,11 @@ expr_code_doover: iTab = pParse->iSelfTab - 1; } } + else if( pParse->pIdxPartExpr + && 0!=(r1 = exprPartidxExprLookup(pParse, pExpr, target)) + ){ + return r1; + } assert( ExprUseYTab(pExpr) ); assert( pExpr->y.pTab!=0 ); iReg = sqlite3ExprCodeGetColumn(pParse, pExpr->y.pTab, @@ -112428,7 +113559,7 @@ expr_code_doover: ** once. If no functions are involved, then factor the code out and put it at ** the end of the prepared statement in the initialization section. ** -** If regDest>=0 then the result is always stored in that register and the +** If regDest>0 then the result is always stored in that register and the ** result is not reusable. If regDest<0 then this routine is free to ** store the value wherever it wants. The register where the expression ** is stored is returned. When regDest<0, two identical expressions might @@ -112443,6 +113574,7 @@ SQLITE_PRIVATE int sqlite3ExprCodeRunJustOnce( ){ ExprList *p; assert( ConstFactorOk(pParse) ); + assert( regDest!=0 ); p = pParse->pConstExpr; if( regDest<0 && p ){ struct ExprList_item *pItem; @@ -112533,8 +113665,10 @@ SQLITE_PRIVATE void sqlite3ExprCode(Parse *pParse, Expr *pExpr, int target){ inReg = sqlite3ExprCodeTarget(pParse, pExpr, target); if( inReg!=target ){ u8 op; - if( ALWAYS(pExpr) - && (ExprHasProperty(pExpr,EP_Subquery) || pExpr->op==TK_REGISTER) + Expr *pX = sqlite3ExprSkipCollateAndLikely(pExpr); + testcase( pX!=pExpr ); + if( ALWAYS(pX) + && (ExprHasProperty(pX,EP_Subquery) || pX->op==TK_REGISTER) ){ op = OP_Copy; }else{ @@ -113254,8 +114388,8 @@ SQLITE_PRIVATE int sqlite3ExprListCompare(const ExprList *pA, const ExprList *pB */ SQLITE_PRIVATE int sqlite3ExprCompareSkip(Expr *pA,Expr *pB, int iTab){ return sqlite3ExprCompare(0, - sqlite3ExprSkipCollateAndLikely(pA), - sqlite3ExprSkipCollateAndLikely(pB), + sqlite3ExprSkipCollate(pA), + sqlite3ExprSkipCollate(pB), iTab); } @@ -113727,6 +114861,12 @@ SQLITE_PRIVATE int sqlite3ReferencesSrcList(Parse *pParse, Expr *pExpr, SrcList assert( pExpr->op==TK_AGG_FUNCTION ); assert( ExprUseXList(pExpr) ); sqlite3WalkExprList(&w, pExpr->x.pList); + if( pExpr->pLeft ){ + assert( pExpr->pLeft->op==TK_ORDER ); + assert( ExprUseXList(pExpr->pLeft) ); + assert( pExpr->pLeft->x.pList!=0 ); + sqlite3WalkExprList(&w, pExpr->pLeft->x.pList); + } #ifndef SQLITE_OMIT_WINDOWFUNC if( ExprHasProperty(pExpr, EP_WinFunc) ){ sqlite3WalkExpr(&w, pExpr->y.pWin->pFilter); @@ -113974,13 +115114,14 @@ static int analyzeAggregate(Walker *pWalker, Expr *pExpr){ case TK_AGG_FUNCTION: { if( (pNC->ncFlags & NC_InAggFunc)==0 && pWalker->walkerDepth==pExpr->op2 + && pExpr->pAggInfo==0 ){ /* Check to see if pExpr is a duplicate of another aggregate ** function that is already in the pAggInfo structure */ struct AggInfo_func *pItem = pAggInfo->aFunc; for(i=0; inFunc; i++, pItem++){ - if( pItem->pFExpr==pExpr ) break; + if( NEVER(pItem->pFExpr==pExpr) ) break; if( sqlite3ExprCompare(0, pItem->pFExpr, pExpr, -1)==0 ){ break; } @@ -113991,14 +115132,44 @@ static int analyzeAggregate(Walker *pWalker, Expr *pExpr){ u8 enc = ENC(pParse->db); i = addAggInfoFunc(pParse->db, pAggInfo); if( i>=0 ){ + int nArg; assert( !ExprHasProperty(pExpr, EP_xIsSelect) ); pItem = &pAggInfo->aFunc[i]; pItem->pFExpr = pExpr; assert( ExprUseUToken(pExpr) ); + nArg = pExpr->x.pList ? pExpr->x.pList->nExpr : 0; pItem->pFunc = sqlite3FindFunction(pParse->db, - pExpr->u.zToken, - pExpr->x.pList ? pExpr->x.pList->nExpr : 0, enc, 0); - if( pExpr->flags & EP_Distinct ){ + pExpr->u.zToken, nArg, enc, 0); + assert( pItem->bOBUnique==0 ); + if( pExpr->pLeft + && (pItem->pFunc->funcFlags & SQLITE_FUNC_NEEDCOLL)==0 + ){ + /* The NEEDCOLL test above causes any ORDER BY clause on + ** aggregate min() or max() to be ignored. */ + ExprList *pOBList; + assert( nArg>0 ); + assert( pExpr->pLeft->op==TK_ORDER ); + assert( ExprUseXList(pExpr->pLeft) ); + pItem->iOBTab = pParse->nTab++; + pOBList = pExpr->pLeft->x.pList; + assert( pOBList->nExpr>0 ); + assert( pItem->bOBUnique==0 ); + if( pOBList->nExpr==1 + && nArg==1 + && sqlite3ExprCompare(0,pOBList->a[0].pExpr, + pExpr->x.pList->a[0].pExpr,0)==0 + ){ + pItem->bOBPayload = 0; + pItem->bOBUnique = ExprHasProperty(pExpr, EP_Distinct); + }else{ + pItem->bOBPayload = 1; + } + pItem->bUseSubtype = + (pItem->pFunc->funcFlags & SQLITE_SUBTYPE)!=0; + }else{ + pItem->iOBTab = -1; + } + if( ExprHasProperty(pExpr, EP_Distinct) && !pItem->bOBUnique ){ pItem->iDistinct = pParse->nTab++; }else{ pItem->iDistinct = -1; @@ -114634,14 +115805,19 @@ SQLITE_PRIVATE void sqlite3AlterFinishAddColumn(Parse *pParse, Token *pColDef){ /* Verify that constraints are still satisfied */ if( pNew->pCheck!=0 || (pCol->notNull && (pCol->colFlags & COLFLAG_GENERATED)!=0) + || (pTab->tabFlags & TF_Strict)!=0 ){ sqlite3NestedParse(pParse, "SELECT CASE WHEN quick_check GLOB 'CHECK*'" " THEN raise(ABORT,'CHECK constraint failed')" + " WHEN quick_check GLOB 'non-* value in*'" + " THEN raise(ABORT,'type mismatch on DEFAULT')" " ELSE raise(ABORT,'NOT NULL constraint failed')" " END" " FROM pragma_quick_check(%Q,%Q)" - " WHERE quick_check GLOB 'CHECK*' OR quick_check GLOB 'NULL*'", + " WHERE quick_check GLOB 'CHECK*'" + " OR quick_check GLOB 'NULL*'" + " OR quick_check GLOB 'non-* value in*'", zTab, zDb ); } @@ -116756,9 +117932,9 @@ static void openStatTable( typedef struct StatAccum StatAccum; typedef struct StatSample StatSample; struct StatSample { - tRowcnt *anEq; /* sqlite_stat4.nEq */ tRowcnt *anDLt; /* sqlite_stat4.nDLt */ #ifdef SQLITE_ENABLE_STAT4 + tRowcnt *anEq; /* sqlite_stat4.nEq */ tRowcnt *anLt; /* sqlite_stat4.nLt */ union { i64 iRowid; /* Rowid in main table of the key */ @@ -116916,9 +118092,9 @@ static void statInit( /* Allocate the space required for the StatAccum object */ n = sizeof(*p) - + sizeof(tRowcnt)*nColUp /* StatAccum.anEq */ - + sizeof(tRowcnt)*nColUp; /* StatAccum.anDLt */ + + sizeof(tRowcnt)*nColUp; /* StatAccum.anDLt */ #ifdef SQLITE_ENABLE_STAT4 + n += sizeof(tRowcnt)*nColUp; /* StatAccum.anEq */ if( mxSample ){ n += sizeof(tRowcnt)*nColUp /* StatAccum.anLt */ + sizeof(StatSample)*(nCol+mxSample) /* StatAccum.aBest[], a[] */ @@ -116939,9 +118115,9 @@ static void statInit( p->nKeyCol = nKeyCol; p->nSkipAhead = 0; p->current.anDLt = (tRowcnt*)&p[1]; - p->current.anEq = &p->current.anDLt[nColUp]; #ifdef SQLITE_ENABLE_STAT4 + p->current.anEq = &p->current.anDLt[nColUp]; p->mxSample = p->nLimit==0 ? mxSample : 0; if( mxSample ){ u8 *pSpace; /* Allocated space not yet assigned */ @@ -117208,7 +118384,9 @@ static void statPush( if( p->nRow==0 ){ /* This is the first call to this function. Do initialization. */ +#ifdef SQLITE_ENABLE_STAT4 for(i=0; inCol; i++) p->current.anEq[i] = 1; +#endif }else{ /* Second and subsequent calls get processed here */ #ifdef SQLITE_ENABLE_STAT4 @@ -117217,15 +118395,17 @@ static void statPush( /* Update anDLt[], anLt[] and anEq[] to reflect the values that apply ** to the current row of the index. */ +#ifdef SQLITE_ENABLE_STAT4 for(i=0; icurrent.anEq[i]++; } +#endif for(i=iChng; inCol; i++){ p->current.anDLt[i]++; #ifdef SQLITE_ENABLE_STAT4 if( p->mxSample ) p->current.anLt[i] += p->current.anEq[i]; -#endif p->current.anEq[i] = 1; +#endif } } @@ -117359,7 +118539,9 @@ static void statGet( u64 iVal = (p->nRow + nDistinct - 1) / nDistinct; if( iVal==2 && p->nRow*10 <= nDistinct*11 ) iVal = 1; sqlite3_str_appendf(&sStat, " %llu", iVal); +#ifdef SQLITE_ENABLE_STAT4 assert( p->current.anEq[i] ); +#endif } sqlite3ResultStrAccum(context, &sStat); } @@ -118048,6 +119230,16 @@ static void decodeIntArray( while( z[0]!=0 && z[0]!=' ' ) z++; while( z[0]==' ' ) z++; } + + /* Set the bLowQual flag if the peak number of rows obtained + ** from a full equality match is so large that a full table scan + ** seems likely to be faster than using the index. + */ + if( aLog[0] > 66 /* Index has more than 100 rows */ + && aLog[0] <= aLog[nOut-1] /* And only a single value seen */ + ){ + pIndex->bLowQual = 1; + } } } @@ -119620,19 +120812,14 @@ SQLITE_PRIVATE void sqlite3FinishCoding(Parse *pParse){ */ if( pParse->pAinc ) sqlite3AutoincrementBegin(pParse); - /* Code constant expressions that where factored out of inner loops. - ** - ** The pConstExpr list might also contain expressions that we simply - ** want to keep around until the Parse object is deleted. Such - ** expressions have iConstExprReg==0. Do not generate code for - ** those expressions, of course. + /* Code constant expressions that were factored out of inner loops. */ if( pParse->pConstExpr ){ ExprList *pEL = pParse->pConstExpr; pParse->okConstFactor = 0; for(i=0; inExpr; i++){ - int iReg = pEL->a[i].u.iConstExprReg; - sqlite3ExprCode(pParse, pEL->a[i].pExpr, iReg); + assert( pEL->a[i].u.iConstExprReg>0 ); + sqlite3ExprCode(pParse, pEL->a[i].pExpr, pEL->a[i].u.iConstExprReg); } } @@ -120099,7 +121286,7 @@ SQLITE_PRIVATE void sqlite3ColumnSetExpr( */ SQLITE_PRIVATE Expr *sqlite3ColumnExpr(Table *pTab, Column *pCol){ if( pCol->iDflt==0 ) return 0; - if( NEVER(!IsOrdinaryTable(pTab)) ) return 0; + if( !IsOrdinaryTable(pTab) ) return 0; if( NEVER(pTab->u.tab.pDfltList==0) ) return 0; if( NEVER(pTab->u.tab.pDfltList->nExpriDflt) ) return 0; return pTab->u.tab.pDfltList->a[pCol->iDflt-1].pExpr; @@ -120252,6 +121439,9 @@ SQLITE_PRIVATE void sqlite3DeleteTable(sqlite3 *db, Table *pTable){ if( db->pnBytesFreed==0 && (--pTable->nTabRef)>0 ) return; deleteTable(db, pTable); } +SQLITE_PRIVATE void sqlite3DeleteTableGeneric(sqlite3 *db, void *pTable){ + sqlite3DeleteTable(db, (Table*)pTable); +} /* @@ -120786,20 +121976,14 @@ SQLITE_PRIVATE void sqlite3ColumnPropertiesFromName(Table *pTab, Column *pCol){ } #endif -/* -** Name of the special TEMP trigger used to implement RETURNING. The -** name begins with "sqlite_" so that it is guaranteed not to collide -** with any application-generated triggers. -*/ -#define RETURNING_TRIGGER_NAME "sqlite_returning" - /* ** Clean up the data structures associated with the RETURNING clause. */ -static void sqlite3DeleteReturning(sqlite3 *db, Returning *pRet){ +static void sqlite3DeleteReturning(sqlite3 *db, void *pArg){ + Returning *pRet = (Returning*)pArg; Hash *pHash; pHash = &(db->aDb[1].pSchema->trigHash); - sqlite3HashInsert(pHash, RETURNING_TRIGGER_NAME, 0); + sqlite3HashInsert(pHash, pRet->zName, 0); sqlite3ExprListDelete(db, pRet->pReturnEL); sqlite3DbFree(db, pRet); } @@ -120838,11 +122022,12 @@ SQLITE_PRIVATE void sqlite3AddReturning(Parse *pParse, ExprList *pList){ pParse->u1.pReturning = pRet; pRet->pParse = pParse; pRet->pReturnEL = pList; - sqlite3ParserAddCleanup(pParse, - (void(*)(sqlite3*,void*))sqlite3DeleteReturning, pRet); + sqlite3ParserAddCleanup(pParse, sqlite3DeleteReturning, pRet); testcase( pParse->earlyCleanup ); if( db->mallocFailed ) return; - pRet->retTrig.zName = RETURNING_TRIGGER_NAME; + sqlite3_snprintf(sizeof(pRet->zName), pRet->zName, + "sqlite_returning_%p", pParse); + pRet->retTrig.zName = pRet->zName; pRet->retTrig.op = TK_RETURNING; pRet->retTrig.tr_tm = TRIGGER_AFTER; pRet->retTrig.bReturning = 1; @@ -120853,9 +122038,9 @@ SQLITE_PRIVATE void sqlite3AddReturning(Parse *pParse, ExprList *pList){ pRet->retTStep.pTrig = &pRet->retTrig; pRet->retTStep.pExprList = pList; pHash = &(db->aDb[1].pSchema->trigHash); - assert( sqlite3HashFind(pHash, RETURNING_TRIGGER_NAME)==0 + assert( sqlite3HashFind(pHash, pRet->zName)==0 || pParse->nErr || pParse->ifNotExists ); - if( sqlite3HashInsert(pHash, RETURNING_TRIGGER_NAME, &pRet->retTrig) + if( sqlite3HashInsert(pHash, pRet->zName, &pRet->retTrig) ==&pRet->retTrig ){ sqlite3OomFault(db); } @@ -121036,7 +122221,8 @@ SQLITE_PRIVATE char sqlite3AffinityType(const char *zIn, Column *pCol){ assert( zIn!=0 ); while( zIn[0] ){ - h = (h<<8) + sqlite3UpperToLower[(*zIn)&0xff]; + u8 x = *(u8*)zIn; + h = (h<<8) + sqlite3UpperToLower[x]; zIn++; if( h==(('c'<<24)+('h'<<16)+('a'<<8)+'r') ){ /* CHAR */ aff = SQLITE_AFF_TEXT; @@ -122299,6 +123485,17 @@ SQLITE_PRIVATE void sqlite3EndTable( /* Reparse everything to update our internal data structures */ sqlite3VdbeAddParseSchemaOp(v, iDb, sqlite3MPrintf(db, "tbl_name='%q' AND type!='trigger'", p->zName),0); + + /* Test for cycles in generated columns and illegal expressions + ** in CHECK constraints and in DEFAULT clauses. */ + if( p->tabFlags & TF_HasGenerated ){ + sqlite3VdbeAddOp4(v, OP_SqlExec, 1, 0, 0, + sqlite3MPrintf(db, "SELECT*FROM\"%w\".\"%w\"", + db->aDb[iDb].zDbSName, p->zName), P4_DYNAMIC); + } + sqlite3VdbeAddOp4(v, OP_SqlExec, 1, 0, 0, + sqlite3MPrintf(db, "PRAGMA \"%w\".integrity_check(%Q)", + db->aDb[iDb].zDbSName, p->zName), P4_DYNAMIC); } /* Add the table to the in-memory representation of the database. @@ -124890,7 +126087,7 @@ SQLITE_PRIVATE void sqlite3Reindex(Parse *pParse, Token *pName1, Token *pName2){ if( iDb<0 ) return; z = sqlite3NameFromToken(db, pObjName); if( z==0 ) return; - zDb = db->aDb[iDb].zDbSName; + zDb = pName2->n ? db->aDb[iDb].zDbSName : 0; pTab = sqlite3FindTable(db, z, zDb); if( pTab ){ reindexTable(pParse, pTab, 0); @@ -124900,6 +126097,7 @@ SQLITE_PRIVATE void sqlite3Reindex(Parse *pParse, Token *pName1, Token *pName2){ pIndex = sqlite3FindIndex(db, z, zDb); sqlite3DbFree(db, z); if( pIndex ){ + iDb = sqlite3SchemaToIndex(db, pIndex->pTable->pSchema); sqlite3BeginWriteOperation(pParse, 0, iDb); sqlite3RefillIndex(pParse, pIndex, -1); return; @@ -125065,6 +126263,9 @@ SQLITE_PRIVATE void sqlite3WithDelete(sqlite3 *db, With *pWith){ sqlite3DbFree(db, pWith); } } +SQLITE_PRIVATE void sqlite3WithDeleteGeneric(sqlite3 *db, void *pWith){ + sqlite3WithDelete(db, (With*)pWith); +} #endif /* !defined(SQLITE_OMIT_CTE) */ /************** End of build.c ***********************************************/ @@ -127901,7 +129102,8 @@ static void hexFunc( *(z++) = hexdigits[c&0xf]; } *z = 0; - sqlite3_result_text(context, zHex, n*2, sqlite3_free); + sqlite3_result_text64(context, zHex, (u64)(z-zHex), + sqlite3_free, SQLITE_UTF8); } } @@ -128195,6 +129397,81 @@ static void trimFunc( sqlite3_result_text(context, (char*)zIn, nIn, SQLITE_TRANSIENT); } +/* The core implementation of the CONCAT(...) and CONCAT_WS(SEP,...) +** functions. +** +** Return a string value that is the concatenation of all non-null +** entries in argv[]. Use zSep as the separator. +*/ +static void concatFuncCore( + sqlite3_context *context, + int argc, + sqlite3_value **argv, + int nSep, + const char *zSep +){ + i64 j, k, n = 0; + int i; + char *z; + for(i=0; i0 ){ + const char *v = (const char*)sqlite3_value_text(argv[i]); + if( v!=0 ){ + if( j>0 && nSep>0 ){ + memcpy(&z[j], zSep, nSep); + j += nSep; + } + memcpy(&z[j], v, k); + j += k; + } + } + } + z[j] = 0; + assert( j<=n ); + sqlite3_result_text64(context, z, j, sqlite3_free, SQLITE_UTF8); +} + +/* +** The CONCAT(...) function. Generate a string result that is the +** concatentation of all non-null arguments. +*/ +static void concatFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + concatFuncCore(context, argc, argv, 0, ""); +} + +/* +** The CONCAT_WS(separator, ...) function. +** +** Generate a string that is the concatenation of 2nd through the Nth +** argument. Use the first argument (which must be non-NULL) as the +** separator. +*/ +static void concatwsFunc( + sqlite3_context *context, + int argc, + sqlite3_value **argv +){ + int nSep = sqlite3_value_bytes(argv[0]); + const char *zSep = (const char*)sqlite3_value_text(argv[0]); + if( zSep==0 ) return; + concatFuncCore(context, argc-1, argv+1, nSep, zSep); +} + #ifdef SQLITE_ENABLE_UNKNOWN_SQL_FUNCTION /* @@ -128616,6 +129893,7 @@ static void minMaxFinalize(sqlite3_context *context){ /* ** group_concat(EXPR, ?SEPARATOR?) +** string_agg(EXPR, SEPARATOR) ** ** The SEPARATOR goes before the EXPR string. This is tragic. The ** groupConcatInverse() implementation would have been easier if the @@ -129206,6 +130484,11 @@ SQLITE_PRIVATE void sqlite3RegisterBuiltinFunctions(void){ FUNCTION(hex, 1, 0, 0, hexFunc ), FUNCTION(unhex, 1, 0, 0, unhexFunc ), FUNCTION(unhex, 2, 0, 0, unhexFunc ), + FUNCTION(concat, -1, 0, 0, concatFunc ), + FUNCTION(concat, 0, 0, 0, 0 ), + FUNCTION(concat_ws, -1, 0, 0, concatwsFunc ), + FUNCTION(concat_ws, 0, 0, 0, 0 ), + FUNCTION(concat_ws, 1, 0, 0, 0 ), INLINE_FUNC(ifnull, 2, INLINEFUNC_coalesce, 0 ), VFUNCTION(random, 0, 0, 0, randomFunc ), VFUNCTION(randomblob, 1, 0, 0, randomBlob ), @@ -129235,6 +130518,8 @@ SQLITE_PRIVATE void sqlite3RegisterBuiltinFunctions(void){ groupConcatFinalize, groupConcatValue, groupConcatInverse, 0), WAGGREGATE(group_concat, 2, 0, 0, groupConcatStep, groupConcatFinalize, groupConcatValue, groupConcatInverse, 0), + WAGGREGATE(string_agg, 2, 0, 0, groupConcatStep, + groupConcatFinalize, groupConcatValue, groupConcatInverse, 0), LIKEFUNC(glob, 2, &globInfo, SQLITE_FUNC_LIKE|SQLITE_FUNC_CASE), #ifdef SQLITE_CASE_SENSITIVE_LIKE @@ -130177,6 +131462,7 @@ static int isSetNullAction(Parse *pParse, FKey *pFKey){ if( (p==pFKey->apTrigger[0] && pFKey->aAction[0]==OE_SetNull) || (p==pFKey->apTrigger[1] && pFKey->aAction[1]==OE_SetNull) ){ + assert( (pTop->db->flags & SQLITE_FkNoAction)==0 ); return 1; } } @@ -130371,6 +131657,8 @@ SQLITE_PRIVATE void sqlite3FkCheck( } if( regOld!=0 ){ int eAction = pFKey->aAction[aChange!=0]; + if( (db->flags & SQLITE_FkNoAction) ) eAction = OE_None; + fkScanChildren(pParse, pSrc, pTab, pIdx, pFKey, aiCol, regOld, 1); /* If this is a deferred FK constraint, or a CASCADE or SET NULL ** action applies, then any foreign key violations caused by @@ -130486,7 +131774,11 @@ SQLITE_PRIVATE int sqlite3FkRequired( /* Check if any parent key columns are being modified. */ for(p=sqlite3FkReferences(pTab); p; p=p->pNextTo){ if( fkParentIsModified(pTab, p, aChange, chngRowid) ){ - if( p->aAction[1]!=OE_None ) return 2; + if( (pParse->db->flags & SQLITE_FkNoAction)==0 + && p->aAction[1]!=OE_None + ){ + return 2; + } bHaveFK = 1; } } @@ -130536,6 +131828,7 @@ static Trigger *fkActionTrigger( int iAction = (pChanges!=0); /* 1 for UPDATE, 0 for DELETE */ action = pFKey->aAction[iAction]; + if( (db->flags & SQLITE_FkNoAction) ) action = OE_None; if( action==OE_Restrict && (db->flags & SQLITE_DeferFKs) ){ return 0; } @@ -134491,6 +135784,9 @@ struct sqlite3_api_routines { int (*is_interrupted)(sqlite3*); /* Version 3.43.0 and later */ int (*stmt_explain)(sqlite3_stmt*,int); + /* Version 3.44.0 and later */ + void *(*get_clientdata)(sqlite3*,const char*); + int (*set_clientdata)(sqlite3*, const char*, void*, void(*)(void*)); }; /* @@ -134821,6 +136117,9 @@ typedef int (*sqlite3_loadext_entry)( #define sqlite3_is_interrupted sqlite3_api->is_interrupted /* Version 3.43.0 and later */ #define sqlite3_stmt_explain sqlite3_api->stmt_explain +/* Version 3.44.0 and later */ +#define sqlite3_get_clientdata sqlite3_api->get_clientdata +#define sqlite3_set_clientdata sqlite3_api->set_clientdata #endif /* !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) */ #if !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) @@ -135339,7 +136638,10 @@ static const sqlite3_api_routines sqlite3Apis = { /* Version 3.41.0 and later */ sqlite3_is_interrupted, /* Version 3.43.0 and later */ - sqlite3_stmt_explain + sqlite3_stmt_explain, + /* Version 3.44.0 and later */ + sqlite3_get_clientdata, + sqlite3_set_clientdata }; /* True if x is the directory separator character @@ -135555,6 +136857,9 @@ SQLITE_PRIVATE void sqlite3CloseExtensions(sqlite3 *db){ ** default so as not to open security holes in older applications. */ SQLITE_API int sqlite3_enable_load_extension(sqlite3 *db, int onoff){ +#ifdef SQLITE_ENABLE_API_ARMOR + if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT; +#endif sqlite3_mutex_enter(db->mutex); if( onoff ){ db->flags |= SQLITE_LoadExtension|SQLITE_LoadExtFunc; @@ -135604,6 +136909,9 @@ SQLITE_API int sqlite3_auto_extension( void (*xInit)(void) ){ int rc = SQLITE_OK; +#ifdef SQLITE_ENABLE_API_ARMOR + if( xInit==0 ) return SQLITE_MISUSE_BKPT; +#endif #ifndef SQLITE_OMIT_AUTOINIT rc = sqlite3_initialize(); if( rc ){ @@ -135656,6 +136964,9 @@ SQLITE_API int sqlite3_cancel_auto_extension( int i; int n = 0; wsdAutoextInit; +#ifdef SQLITE_ENABLE_API_ARMOR + if( xInit==0 ) return 0; +#endif sqlite3_mutex_enter(mutex); for(i=(int)wsdAutoext.nExt-1; i>=0; i--){ if( wsdAutoext.aExt[i]==xInit ){ @@ -137525,7 +138836,11 @@ SQLITE_PRIVATE void sqlite3Pragma( #endif if( sqlite3GetBoolean(zRight, 0) ){ - db->flags |= mask; + if( (mask & SQLITE_WriteSchema)==0 + || (db->flags & SQLITE_Defensive)==0 + ){ + db->flags |= mask; + } }else{ db->flags &= ~mask; if( mask==SQLITE_DeferFKs ) db->nDeferredImmCons = 0; @@ -138158,8 +139473,32 @@ SQLITE_PRIVATE void sqlite3Pragma( int r2; /* Previous key for WITHOUT ROWID tables */ int mxCol; /* Maximum non-virtual column number */ - if( !IsOrdinaryTable(pTab) ) continue; if( pObjTab && pObjTab!=pTab ) continue; + if( !IsOrdinaryTable(pTab) ){ +#ifndef SQLITE_OMIT_VIRTUALTABLE + sqlite3_vtab *pVTab; + int a1; + if( !IsVirtual(pTab) ) continue; + if( pTab->nCol<=0 ){ + const char *zMod = pTab->u.vtab.azArg[0]; + if( sqlite3HashFind(&db->aModule, zMod)==0 ) continue; + } + sqlite3ViewGetColumnNames(pParse, pTab); + if( pTab->u.vtab.p==0 ) continue; + pVTab = pTab->u.vtab.p->pVtab; + if( NEVER(pVTab==0) ) continue; + if( NEVER(pVTab->pModule==0) ) continue; + if( pVTab->pModule->iVersion<4 ) continue; + if( pVTab->pModule->xIntegrity==0 ) continue; + sqlite3VdbeAddOp3(v, OP_VCheck, i, 3, isQuick); + pTab->nTabRef++; + sqlite3VdbeAppendP4(v, pTab, P4_TABLEREF); + a1 = sqlite3VdbeAddOp1(v, OP_IsNull, 3); VdbeCoverage(v); + integrityCheckResultRow(v); + sqlite3VdbeJumpHere(v, a1); +#endif + continue; + } if( isQuick || HasRowid(pTab) ){ pPk = 0; r2 = 0; @@ -139285,7 +140624,8 @@ static const sqlite3_module pragmaVtabModule = { 0, /* xSavepoint */ 0, /* xRelease */ 0, /* xRollbackTo */ - 0 /* xShadowName */ + 0, /* xShadowName */ + 0 /* xIntegrity */ }; /* @@ -139909,8 +141249,6 @@ SQLITE_PRIVATE void sqlite3ParseObjectReset(Parse *pParse){ db->lookaside.sz = db->lookaside.bDisable ? 0 : db->lookaside.szTrue; assert( pParse->db->pParse==pParse ); db->pParse = pParse->pOuterParse; - pParse->db = 0; - pParse->disableLookaside = 0; } /* @@ -140181,6 +141519,7 @@ static int sqlite3LockAndPrepare( assert( (rc&db->errMask)==rc ); db->busyHandler.nBusy = 0; sqlite3_mutex_leave(db->mutex); + assert( rc==SQLITE_OK || (*ppStmt)==0 ); return rc; } @@ -140578,6 +141917,9 @@ SQLITE_PRIVATE Select *sqlite3SelectNew( SQLITE_PRIVATE void sqlite3SelectDelete(sqlite3 *db, Select *p){ if( OK_IF_ALWAYS_TRUE(p) ) clearSelect(db, p, 1); } +SQLITE_PRIVATE void sqlite3SelectDeleteGeneric(sqlite3 *db, void *p){ + if( ALWAYS(p) ) clearSelect(db, (Select*)p, 1); +} /* ** Return a pointer to the right-most SELECT statement in a compound. @@ -140848,6 +142190,7 @@ static void unsetJoinExpr(Expr *p, int iTable, int nullable){ } if( p->op==TK_FUNCTION ){ assert( ExprUseXList(p) ); + assert( p->pLeft==0 ); if( p->x.pList ){ int i; for(i=0; ix.pList->nExpr; i++){ @@ -142712,7 +144055,8 @@ SQLITE_PRIVATE void sqlite3SubqueryColumnTypes( NameContext sNC; assert( pSelect!=0 ); - assert( (pSelect->selFlags & SF_Resolved)!=0 ); + testcase( (pSelect->selFlags & SF_Resolved)==0 ); + assert( (pSelect->selFlags & SF_Resolved)!=0 || IN_RENAME_OBJECT ); assert( pTab->nCol==pSelect->pEList->nExpr || pParse->nErr>0 ); assert( aff==SQLITE_AFF_NONE || aff==SQLITE_AFF_BLOB ); if( db->mallocFailed || IN_RENAME_OBJECT ) return; @@ -143596,9 +144940,7 @@ multi_select_end: pDest->iSdst = dest.iSdst; pDest->nSdst = dest.nSdst; if( pDelete ){ - sqlite3ParserAddCleanup(pParse, - (void(*)(sqlite3*,void*))sqlite3SelectDelete, - pDelete); + sqlite3ParserAddCleanup(pParse, sqlite3SelectDeleteGeneric, pDelete); } return rc; } @@ -144149,8 +145491,7 @@ static int multiSelectOrderBy( /* Make arrangements to free the 2nd and subsequent arms of the compound ** after the parse has finished */ if( pSplit->pPrior ){ - sqlite3ParserAddCleanup(pParse, - (void(*)(sqlite3*,void*))sqlite3SelectDelete, pSplit->pPrior); + sqlite3ParserAddCleanup(pParse, sqlite3SelectDeleteGeneric, pSplit->pPrior); } pSplit->pPrior = pPrior; pPrior->pNext = pSplit; @@ -144971,9 +146312,7 @@ static int flattenSubquery( Table *pTabToDel = pSubitem->pTab; if( pTabToDel->nTabRef==1 ){ Parse *pToplevel = sqlite3ParseToplevel(pParse); - sqlite3ParserAddCleanup(pToplevel, - (void(*)(sqlite3*,void*))sqlite3DeleteTable, - pTabToDel); + sqlite3ParserAddCleanup(pToplevel, sqlite3DeleteTableGeneric, pTabToDel); testcase( pToplevel->earlyCleanup ); }else{ pTabToDel->nTabRef--; @@ -146020,8 +147359,7 @@ static struct Cte *searchWith( SQLITE_PRIVATE With *sqlite3WithPush(Parse *pParse, With *pWith, u8 bFree){ if( pWith ){ if( bFree ){ - pWith = (With*)sqlite3ParserAddCleanup(pParse, - (void(*)(sqlite3*,void*))sqlite3WithDelete, + pWith = (With*)sqlite3ParserAddCleanup(pParse, sqlite3WithDeleteGeneric, pWith); if( pWith==0 ) return 0; } @@ -146508,6 +147846,7 @@ static int selectExpander(Walker *pWalker, Select *p){ char *zTName = 0; /* text of name of TABLE */ int iErrOfst; if( pE->op==TK_DOT ){ + assert( (selFlags & SF_NestedFrom)==0 ); assert( pE->pLeft!=0 ); assert( !ExprHasProperty(pE->pLeft, EP_IntValue) ); zTName = pE->pLeft->u.zToken; @@ -146518,6 +147857,7 @@ static int selectExpander(Walker *pWalker, Select *p){ iErrOfst = pE->w.iOfst; } for(i=0, pFrom=pTabList->a; inSrc; i++, pFrom++){ + int nAdd; /* Number of cols including rowid */ Table *pTab = pFrom->pTab; /* Table for this data source */ ExprList *pNestedFrom; /* Result-set of a nested FROM clause */ char *zTabName; /* AS name for this data source */ @@ -146535,6 +147875,7 @@ static int selectExpander(Walker *pWalker, Select *p){ pNestedFrom = pFrom->pSelect->pEList; assert( pNestedFrom!=0 ); assert( pNestedFrom->nExpr==pTab->nCol ); + assert( VisibleRowid(pTab)==0 ); }else{ if( zTName && sqlite3StrICmp(zTName, zTabName)!=0 ){ continue; @@ -146565,33 +147906,48 @@ static int selectExpander(Walker *pWalker, Select *p){ }else{ pUsing = 0; } - for(j=0; jnCol; j++){ - char *zName = pTab->aCol[j].zCnName; + + nAdd = pTab->nCol + (VisibleRowid(pTab) && (selFlags&SF_NestedFrom)); + for(j=0; ja[j], 0, zTName, 0)==0 - ){ - continue; - } + if( j==pTab->nCol ){ + zName = sqlite3RowidAlias(pTab); + if( zName==0 ) continue; + }else{ + zName = pTab->aCol[j].zCnName; - /* If a column is marked as 'hidden', omit it from the expanded - ** result-set list unless the SELECT has the SF_IncludeHidden - ** bit set. - */ - if( (p->selFlags & SF_IncludeHidden)==0 - && IsHiddenColumn(&pTab->aCol[j]) - ){ - continue; - } - if( (pTab->aCol[j].colFlags & COLFLAG_NOEXPAND)!=0 - && zTName==0 - && (selFlags & (SF_NestedFrom))==0 - ){ - continue; + /* If pTab is actually an SF_NestedFrom sub-select, do not + ** expand any ENAME_ROWID columns. */ + if( pNestedFrom && pNestedFrom->a[j].fg.eEName==ENAME_ROWID ){ + continue; + } + + if( zTName + && pNestedFrom + && sqlite3MatchEName(&pNestedFrom->a[j], 0, zTName, 0, 0)==0 + ){ + continue; + } + + /* If a column is marked as 'hidden', omit it from the expanded + ** result-set list unless the SELECT has the SF_IncludeHidden + ** bit set. + */ + if( (p->selFlags & SF_IncludeHidden)==0 + && IsHiddenColumn(&pTab->aCol[j]) + ){ + continue; + } + if( (pTab->aCol[j].colFlags & COLFLAG_NOEXPAND)!=0 + && zTName==0 + && (selFlags & (SF_NestedFrom))==0 + ){ + continue; + } } + assert( zName ); tableSeen = 1; if( i>0 && zTName==0 && (selFlags & SF_NestedFrom)==0 ){ @@ -146641,11 +147997,11 @@ static int selectExpander(Walker *pWalker, Select *p){ zSchemaName, zTabName, zName); testcase( pX->zEName==0 ); } - pX->fg.eEName = ENAME_TAB; + pX->fg.eEName = (j==pTab->nCol ? ENAME_ROWID : ENAME_TAB); if( (pFrom->fg.isUsing && sqlite3IdListIndex(pFrom->u3.pUsing, zName)>=0) || (pUsing && sqlite3IdListIndex(pUsing, zName)>=0) - || (pTab->aCol[j].colFlags & COLFLAG_NOEXPAND)!=0 + || (jnCol && (pTab->aCol[j].colFlags & COLFLAG_NOEXPAND)) ){ pX->fg.bNoExpand = 1; } @@ -146747,10 +148103,11 @@ static void selectAddSubqueryTypeInfo(Walker *pWalker, Select *p){ SrcList *pTabList; SrcItem *pFrom; - assert( p->selFlags & SF_Resolved ); if( p->selFlags & SF_HasTypeInfo ) return; p->selFlags |= SF_HasTypeInfo; pParse = pWalker->pParse; + testcase( (p->selFlags & SF_Resolved)==0 ); + assert( (p->selFlags & SF_Resolved) || IN_RENAME_OBJECT ); pTabList = p->pSrc; for(i=0, pFrom=pTabList->a; inSrc; i++, pFrom++){ Table *pTab = pFrom->pTab; @@ -146866,8 +148223,14 @@ static void analyzeAggFuncArgs( pNC->ncFlags |= NC_InAggFunc; for(i=0; inFunc; i++){ Expr *pExpr = pAggInfo->aFunc[i].pFExpr; + assert( pExpr->op==TK_FUNCTION || pExpr->op==TK_AGG_FUNCTION ); assert( ExprUseXList(pExpr) ); sqlite3ExprAnalyzeAggList(pNC, pExpr->x.pList); + if( pExpr->pLeft ){ + assert( pExpr->pLeft->op==TK_ORDER ); + assert( ExprUseXList(pExpr->pLeft) ); + sqlite3ExprAnalyzeAggList(pNC, pExpr->pLeft->x.pList); + } #ifndef SQLITE_OMIT_WINDOWFUNC assert( !IsWindowFunc(pExpr) ); if( ExprHasProperty(pExpr, EP_WinFunc) ){ @@ -147022,6 +148385,36 @@ static void resetAccumulator(Parse *pParse, AggInfo *pAggInfo){ pFunc->pFunc->zName)); } } + if( pFunc->iOBTab>=0 ){ + ExprList *pOBList; + KeyInfo *pKeyInfo; + int nExtra = 0; + assert( pFunc->pFExpr->pLeft!=0 ); + assert( pFunc->pFExpr->pLeft->op==TK_ORDER ); + assert( ExprUseXList(pFunc->pFExpr->pLeft) ); + assert( pFunc->pFunc!=0 ); + pOBList = pFunc->pFExpr->pLeft->x.pList; + if( !pFunc->bOBUnique ){ + nExtra++; /* One extra column for the OP_Sequence */ + } + if( pFunc->bOBPayload ){ + /* extra columns for the function arguments */ + assert( ExprUseXList(pFunc->pFExpr) ); + nExtra += pFunc->pFExpr->x.pList->nExpr; + } + if( pFunc->bUseSubtype ){ + nExtra += pFunc->pFExpr->x.pList->nExpr; + } + pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pOBList, 0, nExtra); + if( !pFunc->bOBUnique && pParse->nErr==0 ){ + pKeyInfo->nKeyField++; + } + sqlite3VdbeAddOp4(v, OP_OpenEphemeral, + pFunc->iOBTab, pOBList->nExpr+nExtra, 0, + (char*)pKeyInfo, P4_KEYINFO); + ExplainQueryPlan((pParse, 0, "USE TEMP B-TREE FOR %s(ORDER BY)", + pFunc->pFunc->zName)); + } } } @@ -147037,13 +148430,56 @@ static void finalizeAggFunctions(Parse *pParse, AggInfo *pAggInfo){ ExprList *pList; assert( ExprUseXList(pF->pFExpr) ); pList = pF->pFExpr->x.pList; + if( pF->iOBTab>=0 ){ + /* For an ORDER BY aggregate, calls to OP_AggStep were deferred. Inputs + ** were stored in emphermal table pF->iOBTab. Here, we extract those + ** inputs (in ORDER BY order) and make all calls to OP_AggStep + ** before doing the OP_AggFinal call. */ + int iTop; /* Start of loop for extracting columns */ + int nArg; /* Number of columns to extract */ + int nKey; /* Key columns to be skipped */ + int regAgg; /* Extract into this array */ + int j; /* Loop counter */ + + assert( pF->pFunc!=0 ); + nArg = pList->nExpr; + regAgg = sqlite3GetTempRange(pParse, nArg); + + if( pF->bOBPayload==0 ){ + nKey = 0; + }else{ + assert( pF->pFExpr->pLeft!=0 ); + assert( ExprUseXList(pF->pFExpr->pLeft) ); + assert( pF->pFExpr->pLeft->x.pList!=0 ); + nKey = pF->pFExpr->pLeft->x.pList->nExpr; + if( ALWAYS(!pF->bOBUnique) ) nKey++; + } + iTop = sqlite3VdbeAddOp1(v, OP_Rewind, pF->iOBTab); VdbeCoverage(v); + for(j=nArg-1; j>=0; j--){ + sqlite3VdbeAddOp3(v, OP_Column, pF->iOBTab, nKey+j, regAgg+j); + } + if( pF->bUseSubtype ){ + int regSubtype = sqlite3GetTempReg(pParse); + int iBaseCol = nKey + nArg + (pF->bOBPayload==0 && pF->bOBUnique==0); + for(j=nArg-1; j>=0; j--){ + sqlite3VdbeAddOp3(v, OP_Column, pF->iOBTab, iBaseCol+j, regSubtype); + sqlite3VdbeAddOp2(v, OP_SetSubtype, regSubtype, regAgg+j); + } + sqlite3ReleaseTempReg(pParse, regSubtype); + } + sqlite3VdbeAddOp3(v, OP_AggStep, 0, regAgg, AggInfoFuncReg(pAggInfo,i)); + sqlite3VdbeAppendP4(v, pF->pFunc, P4_FUNCDEF); + sqlite3VdbeChangeP5(v, (u8)nArg); + sqlite3VdbeAddOp2(v, OP_Next, pF->iOBTab, iTop+1); VdbeCoverage(v); + sqlite3VdbeJumpHere(v, iTop); + sqlite3ReleaseTempRange(pParse, regAgg, nArg); + } sqlite3VdbeAddOp2(v, OP_AggFinal, AggInfoFuncReg(pAggInfo,i), pList ? pList->nExpr : 0); sqlite3VdbeAppendP4(v, pF->pFunc, P4_FUNCDEF); } } - /* ** Generate code that will update the accumulator memory cells for an ** aggregate based on the current cursor position. @@ -147052,6 +148488,13 @@ static void finalizeAggFunctions(Parse *pParse, AggInfo *pAggInfo){ ** in pAggInfo, then only populate the pAggInfo->nAccumulator accumulator ** registers if register regAcc contains 0. The caller will take care ** of setting and clearing regAcc. +** +** For an ORDER BY aggregate, the actual accumulator memory cell update +** is deferred until after all input rows have been received, so that they +** can be run in the requested order. In that case, instead of invoking +** OP_AggStep to update the accumulator, just add the arguments that would +** have been passed into OP_AggStep into the sorting ephemeral table +** (along with the appropriate sort key). */ static void updateAccumulator( Parse *pParse, @@ -147073,9 +148516,12 @@ static void updateAccumulator( int nArg; int addrNext = 0; int regAgg; + int regAggSz = 0; + int regDistinct = 0; ExprList *pList; assert( ExprUseXList(pF->pFExpr) ); assert( !IsWindowFunc(pF->pFExpr) ); + assert( pF->pFunc!=0 ); pList = pF->pFExpr->x.pList; if( ExprHasProperty(pF->pFExpr, EP_WinFunc) ){ Expr *pFilter = pF->pFExpr->y.pWin->pFilter; @@ -147099,9 +148545,55 @@ static void updateAccumulator( addrNext = sqlite3VdbeMakeLabel(pParse); sqlite3ExprIfFalse(pParse, pFilter, addrNext, SQLITE_JUMPIFNULL); } - if( pList ){ + if( pF->iOBTab>=0 ){ + /* Instead of invoking AggStep, we must push the arguments that would + ** have been passed to AggStep onto the sorting table. */ + int jj; /* Registered used so far in building the record */ + ExprList *pOBList; /* The ORDER BY clause */ + assert( pList!=0 ); + nArg = pList->nExpr; + assert( nArg>0 ); + assert( pF->pFExpr->pLeft!=0 ); + assert( pF->pFExpr->pLeft->op==TK_ORDER ); + assert( ExprUseXList(pF->pFExpr->pLeft) ); + pOBList = pF->pFExpr->pLeft->x.pList; + assert( pOBList!=0 ); + assert( pOBList->nExpr>0 ); + regAggSz = pOBList->nExpr; + if( !pF->bOBUnique ){ + regAggSz++; /* One register for OP_Sequence */ + } + if( pF->bOBPayload ){ + regAggSz += nArg; + } + if( pF->bUseSubtype ){ + regAggSz += nArg; + } + regAggSz++; /* One extra register to hold result of MakeRecord */ + regAgg = sqlite3GetTempRange(pParse, regAggSz); + regDistinct = regAgg; + sqlite3ExprCodeExprList(pParse, pOBList, regAgg, 0, SQLITE_ECEL_DUP); + jj = pOBList->nExpr; + if( !pF->bOBUnique ){ + sqlite3VdbeAddOp2(v, OP_Sequence, pF->iOBTab, regAgg+jj); + jj++; + } + if( pF->bOBPayload ){ + regDistinct = regAgg+jj; + sqlite3ExprCodeExprList(pParse, pList, regDistinct, 0, SQLITE_ECEL_DUP); + jj += nArg; + } + if( pF->bUseSubtype ){ + int kk; + int regBase = pF->bOBPayload ? regDistinct : regAgg; + for(kk=0; kknExpr; regAgg = sqlite3GetTempRange(pParse, nArg); + regDistinct = regAgg; sqlite3ExprCodeExprList(pParse, pList, regAgg, 0, SQLITE_ECEL_DUP); }else{ nArg = 0; @@ -147112,26 +148604,37 @@ static void updateAccumulator( addrNext = sqlite3VdbeMakeLabel(pParse); } pF->iDistinct = codeDistinct(pParse, eDistinctType, - pF->iDistinct, addrNext, pList, regAgg); + pF->iDistinct, addrNext, pList, regDistinct); } - if( pF->pFunc->funcFlags & SQLITE_FUNC_NEEDCOLL ){ - CollSeq *pColl = 0; - struct ExprList_item *pItem; - int j; - assert( pList!=0 ); /* pList!=0 if pF->pFunc has NEEDCOLL */ - for(j=0, pItem=pList->a; !pColl && jpExpr); + if( pF->iOBTab>=0 ){ + /* Insert a new record into the ORDER BY table */ + sqlite3VdbeAddOp3(v, OP_MakeRecord, regAgg, regAggSz-1, + regAgg+regAggSz-1); + sqlite3VdbeAddOp4Int(v, OP_IdxInsert, pF->iOBTab, regAgg+regAggSz-1, + regAgg, regAggSz-1); + sqlite3ReleaseTempRange(pParse, regAgg, regAggSz); + }else{ + /* Invoke the AggStep function */ + if( pF->pFunc->funcFlags & SQLITE_FUNC_NEEDCOLL ){ + CollSeq *pColl = 0; + struct ExprList_item *pItem; + int j; + assert( pList!=0 ); /* pList!=0 if pF->pFunc has NEEDCOLL */ + for(j=0, pItem=pList->a; !pColl && jpExpr); + } + if( !pColl ){ + pColl = pParse->db->pDfltColl; + } + if( regHit==0 && pAggInfo->nAccumulator ) regHit = ++pParse->nMem; + sqlite3VdbeAddOp4(v, OP_CollSeq, regHit, 0, 0, + (char *)pColl, P4_COLLSEQ); } - if( !pColl ){ - pColl = pParse->db->pDfltColl; - } - if( regHit==0 && pAggInfo->nAccumulator ) regHit = ++pParse->nMem; - sqlite3VdbeAddOp4(v, OP_CollSeq, regHit, 0, 0, (char *)pColl, P4_COLLSEQ); + sqlite3VdbeAddOp3(v, OP_AggStep, 0, regAgg, AggInfoFuncReg(pAggInfo,i)); + sqlite3VdbeAppendP4(v, pF->pFunc, P4_FUNCDEF); + sqlite3VdbeChangeP5(v, (u8)nArg); + sqlite3ReleaseTempRange(pParse, regAgg, nArg); } - sqlite3VdbeAddOp3(v, OP_AggStep, 0, regAgg, AggInfoFuncReg(pAggInfo,i)); - sqlite3VdbeAppendP4(v, pF->pFunc, P4_FUNCDEF); - sqlite3VdbeChangeP5(v, (u8)nArg); - sqlite3ReleaseTempRange(pParse, regAgg, nArg); if( addrNext ){ sqlite3VdbeResolveLabel(v, addrNext); } @@ -147290,7 +148793,8 @@ static SrcItem *isSelfJoinView( /* ** Deallocate a single AggInfo object */ -static void agginfoFree(sqlite3 *db, AggInfo *p){ +static void agginfoFree(sqlite3 *db, void *pArg){ + AggInfo *p = (AggInfo*)pArg; sqlite3DbFree(db, p->aCol); sqlite3DbFree(db, p->aFunc); sqlite3DbFreeNN(db, p); @@ -147364,7 +148868,7 @@ static int countOfViewOptimization(Parse *pParse, Select *p){ pSub->selFlags |= SF_Aggregate; pSub->selFlags &= ~SF_Compound; pSub->nSelectRow = 0; - sqlite3ExprListDelete(db, pSub->pEList); + sqlite3ParserAddCleanup(pParse, sqlite3ExprListDeleteGeneric, pSub->pEList); pTerm = pPrior ? sqlite3ExprDup(db, pCount, 0) : pCount; pSub->pEList = sqlite3ExprListAppend(pParse, 0, pTerm); pTerm = sqlite3PExpr(pParse, TK_SELECT, 0, 0); @@ -147544,9 +149048,8 @@ SQLITE_PRIVATE int sqlite3Select( sqlite3TreeViewExprList(0, p->pOrderBy, 0, "ORDERBY"); } #endif - sqlite3ParserAddCleanup(pParse, - (void(*)(sqlite3*,void*))sqlite3ExprListDelete, - p->pOrderBy); + sqlite3ParserAddCleanup(pParse, sqlite3ExprListDeleteGeneric, + p->pOrderBy); testcase( pParse->earlyCleanup ); p->pOrderBy = 0; } @@ -147652,6 +149155,7 @@ SQLITE_PRIVATE int sqlite3Select( TREETRACE(0x1000,pParse,p, ("LEFT-JOIN simplifies to JOIN on term %d\n",i)); pItem->fg.jointype &= ~(JT_LEFT|JT_OUTER); + unsetJoinExpr(p->pWhere, pItem->iCursor, 0); } } if( pItem->fg.jointype & JT_LTORJ ){ @@ -147666,17 +149170,15 @@ SQLITE_PRIVATE int sqlite3Select( TREETRACE(0x1000,pParse,p, ("RIGHT-JOIN simplifies to JOIN on term %d\n",j)); pI2->fg.jointype &= ~(JT_RIGHT|JT_OUTER); + unsetJoinExpr(p->pWhere, pI2->iCursor, 1); } } } - for(j=pTabList->nSrc-1; j>=i; j--){ + for(j=pTabList->nSrc-1; j>=0; j--){ pTabList->a[j].fg.jointype &= ~JT_LTORJ; if( pTabList->a[j].fg.jointype & JT_RIGHT ) break; } } - assert( pItem->iCursor>=0 ); - unsetJoinExpr(p->pWhere, pItem->iCursor, - pTabList->a[0].fg.jointype & JT_LTORJ); } /* No further action if this term of the FROM clause is not a subquery */ @@ -147739,9 +149241,8 @@ SQLITE_PRIVATE int sqlite3Select( ){ TREETRACE(0x800,pParse,p, ("omit superfluous ORDER BY on %r FROM-clause subquery\n",i+1)); - sqlite3ParserAddCleanup(pParse, - (void(*)(sqlite3*,void*))sqlite3ExprListDelete, - pSub->pOrderBy); + sqlite3ParserAddCleanup(pParse, sqlite3ExprListDeleteGeneric, + pSub->pOrderBy); pSub->pOrderBy = 0; } @@ -148270,8 +149771,7 @@ SQLITE_PRIVATE int sqlite3Select( */ pAggInfo = sqlite3DbMallocZero(db, sizeof(*pAggInfo) ); if( pAggInfo ){ - sqlite3ParserAddCleanup(pParse, - (void(*)(sqlite3*,void*))agginfoFree, pAggInfo); + sqlite3ParserAddCleanup(pParse, agginfoFree, pAggInfo); testcase( pParse->earlyCleanup ); } if( db->mallocFailed ){ @@ -149192,6 +150692,10 @@ SQLITE_PRIVATE void sqlite3BeginTrigger( sqlite3ErrorMsg(pParse, "cannot create triggers on virtual tables"); goto trigger_orphan_error; } + if( (pTab->tabFlags & TF_Shadow)!=0 && sqlite3ReadOnlyShadowTables(db) ){ + sqlite3ErrorMsg(pParse, "cannot create triggers on shadow tables"); + goto trigger_orphan_error; + } /* Check that the trigger name is not reserved and that no trigger of the ** specified name exists */ @@ -149975,10 +151479,17 @@ static void codeReturningTrigger( SrcList sFrom; assert( v!=0 ); - assert( pParse->bReturning ); + if( !pParse->bReturning ){ + /* This RETURNING trigger must be for a different statement as + ** this statement lacks a RETURNING clause. */ + return; + } assert( db->pParse==pParse ); pReturning = pParse->u1.pReturning; - assert( pTrigger == &(pReturning->retTrig) ); + if( pTrigger != &(pReturning->retTrig) ){ + /* This RETURNING trigger is for a different statement */ + return; + } memset(&sSelect, 0, sizeof(sSelect)); memset(&sFrom, 0, sizeof(sFrom)); sSelect.pEList = sqlite3ExprListDup(db, pReturning->pReturnEL, 0); @@ -152909,7 +154420,6 @@ SQLITE_PRIVATE void sqlite3VtabUnlockList(sqlite3 *db){ if( p ){ db->pDisconnect = 0; - sqlite3ExpirePreparedStatements(db, 0); do { VTable *pNext = p->pNext; sqlite3VtabUnlock(p); @@ -153415,7 +154925,7 @@ SQLITE_API int sqlite3_declare_vtab(sqlite3 *db, const char *zCreateTable){ sqlite3_mutex_enter(db->mutex); pCtx = db->pVtabCtx; if( !pCtx || pCtx->bDeclared ){ - sqlite3Error(db, SQLITE_MISUSE); + sqlite3Error(db, SQLITE_MISUSE_BKPT); sqlite3_mutex_leave(db->mutex); return SQLITE_MISUSE_BKPT; } @@ -154475,7 +155985,7 @@ SQLITE_PRIVATE Bitmask sqlite3WhereGetMask(WhereMaskSet*,int); #ifdef WHERETRACE_ENABLED SQLITE_PRIVATE void sqlite3WhereClausePrint(WhereClause *pWC); SQLITE_PRIVATE void sqlite3WhereTermPrint(WhereTerm *pTerm, int iTerm); -SQLITE_PRIVATE void sqlite3WhereLoopPrint(WhereLoop *p, WhereClause *pWC); +SQLITE_PRIVATE void sqlite3WhereLoopPrint(const WhereLoop *p, const WhereClause *pWC); #endif SQLITE_PRIVATE WhereTerm *sqlite3WhereFindTerm( WhereClause *pWC, /* The WHERE clause to be searched */ @@ -154606,7 +156116,7 @@ SQLITE_PRIVATE void sqlite3WhereTabFuncArgs(Parse*, SrcItem*, WhereClause*); #define WHERE_BLOOMFILTER 0x00400000 /* Consider using a Bloom-filter */ #define WHERE_SELFCULL 0x00800000 /* nOut reduced by extra WHERE terms */ #define WHERE_OMIT_OFFSET 0x01000000 /* Set offset counter to zero */ -#define WHERE_VIEWSCAN 0x02000000 /* A full-scan of a VIEW or subquery */ + /* 0x02000000 -- available for reuse */ #define WHERE_EXPRIDX 0x04000000 /* Uses an index-on-expressions */ #endif /* !defined(SQLITE_WHEREINT_H) */ @@ -159937,12 +161447,22 @@ static void translateColumnToCopy( for(; iStartp1!=iTabCur ) continue; if( pOp->opcode==OP_Column ){ +#ifdef SQLITE_DEBUG + if( pParse->db->flags & SQLITE_VdbeAddopTrace ){ + printf("TRANSLATE OP_Column to OP_Copy at %d\n", iStart); + } +#endif pOp->opcode = OP_Copy; pOp->p1 = pOp->p2 + iRegister; pOp->p2 = pOp->p3; pOp->p3 = 0; pOp->p5 = 2; /* Cause the MEM_Subtype flag to be cleared */ }else if( pOp->opcode==OP_Rowid ){ +#ifdef SQLITE_DEBUG + if( pParse->db->flags & SQLITE_VdbeAddopTrace ){ + printf("TRANSLATE OP_Rowid to OP_Sequence at %d\n", iStart); + } +#endif pOp->opcode = OP_Sequence; pOp->p1 = iAutoidxCur; #ifdef SQLITE_ALLOW_ROWID_IN_VIEW @@ -160401,13 +161921,17 @@ static SQLITE_NOINLINE void sqlite3ConstructBloomFilter( WhereLoop *pLoop = pLevel->pWLoop; /* The loop being coded */ int iCur; /* Cursor for table getting the filter */ IndexedExpr *saved_pIdxEpr; /* saved copy of Parse.pIdxEpr */ + IndexedExpr *saved_pIdxPartExpr; /* saved copy of Parse.pIdxPartExpr */ saved_pIdxEpr = pParse->pIdxEpr; + saved_pIdxPartExpr = pParse->pIdxPartExpr; pParse->pIdxEpr = 0; + pParse->pIdxPartExpr = 0; assert( pLoop!=0 ); assert( v!=0 ); assert( pLoop->wsFlags & WHERE_BLOOMFILTER ); + assert( (pLoop->wsFlags & WHERE_IDX_ONLY)==0 ); addrOnce = sqlite3VdbeAddOp0(v, OP_Once); VdbeCoverage(v); do{ @@ -160497,6 +162021,7 @@ static SQLITE_NOINLINE void sqlite3ConstructBloomFilter( }while( iLevel < pWInfo->nLevel ); sqlite3VdbeJumpHere(v, addrOnce); pParse->pIdxEpr = saved_pIdxEpr; + pParse->pIdxPartExpr = saved_pIdxPartExpr; } @@ -161264,7 +162789,8 @@ static int whereRangeScanEst( ** sample, then assume they are 4x more selective. This brings ** the estimated selectivity more in line with what it would be ** if estimated without the use of STAT4 tables. */ - if( iLwrIdx==iUprIdx ) nNew -= 20; assert( 20==sqlite3LogEst(4) ); + if( iLwrIdx==iUprIdx ){ nNew -= 20; } + assert( 20==sqlite3LogEst(4) ); }else{ nNew = 10; assert( 10==sqlite3LogEst(2) ); } @@ -161488,17 +163014,34 @@ SQLITE_PRIVATE void sqlite3WhereClausePrint(WhereClause *pWC){ #ifdef WHERETRACE_ENABLED /* ** Print a WhereLoop object for debugging purposes +** +** Format example: +** +** .--- Position in WHERE clause rSetup, rRun, nOut ---. +** | | +** | .--- selfMask nTerm ------. | +** | | | | +** | | .-- prereq Idx wsFlags----. | | +** | | | Name | | | +** | | | __|__ nEq ---. ___|__ | __|__ +** | / \ / \ / \ | / \ / \ / \ +** 1.002.001 t2.t2xy 2 f 010241 N 2 cost 0,56,31 */ -SQLITE_PRIVATE void sqlite3WhereLoopPrint(WhereLoop *p, WhereClause *pWC){ - WhereInfo *pWInfo = pWC->pWInfo; - int nb = 1+(pWInfo->pTabList->nSrc+3)/4; - SrcItem *pItem = pWInfo->pTabList->a + p->iTab; - Table *pTab = pItem->pTab; - Bitmask mAll = (((Bitmask)1)<<(nb*4)) - 1; - sqlite3DebugPrintf("%c%2d.%0*llx.%0*llx", p->cId, - p->iTab, nb, p->maskSelf, nb, p->prereq & mAll); - sqlite3DebugPrintf(" %12s", - pItem->zAlias ? pItem->zAlias : pTab->zName); +SQLITE_PRIVATE void sqlite3WhereLoopPrint(const WhereLoop *p, const WhereClause *pWC){ + if( pWC ){ + WhereInfo *pWInfo = pWC->pWInfo; + int nb = 1+(pWInfo->pTabList->nSrc+3)/4; + SrcItem *pItem = pWInfo->pTabList->a + p->iTab; + Table *pTab = pItem->pTab; + Bitmask mAll = (((Bitmask)1)<<(nb*4)) - 1; + sqlite3DebugPrintf("%c%2d.%0*llx.%0*llx", p->cId, + p->iTab, nb, p->maskSelf, nb, p->prereq & mAll); + sqlite3DebugPrintf(" %12s", + pItem->zAlias ? pItem->zAlias : pTab->zName); + }else{ + sqlite3DebugPrintf("%c%2d.%03llx.%03llx %c%d", + p->cId, p->iTab, p->maskSelf, p->prereq & 0xfff, p->cId, p->iTab); + } if( (p->wsFlags & WHERE_VIRTUALTABLE)==0 ){ const char *zName; if( p->u.btree.pIndex && (zName = p->u.btree.pIndex->zName)!=0 ){ @@ -161535,6 +163078,15 @@ SQLITE_PRIVATE void sqlite3WhereLoopPrint(WhereLoop *p, WhereClause *pWC){ } } } +SQLITE_PRIVATE void sqlite3ShowWhereLoop(const WhereLoop *p){ + if( p ) sqlite3WhereLoopPrint(p, 0); +} +SQLITE_PRIVATE void sqlite3ShowWhereLoopList(const WhereLoop *p){ + while( p ){ + sqlite3ShowWhereLoop(p); + p = p->pNextLoop; + } +} #endif /* @@ -161647,46 +163199,60 @@ static void whereInfoFree(sqlite3 *db, WhereInfo *pWInfo){ } /* -** Return TRUE if all of the following are true: +** Return TRUE if X is a proper subset of Y but is of equal or less cost. +** In other words, return true if all constraints of X are also part of Y +** and Y has additional constraints that might speed the search that X lacks +** but the cost of running X is not more than the cost of running Y. ** -** (1) X has the same or lower cost, or returns the same or fewer rows, -** than Y. -** (2) X uses fewer WHERE clause terms than Y -** (3) Every WHERE clause term used by X is also used by Y -** (4) X skips at least as many columns as Y -** (5) If X is a covering index, than Y is too +** In other words, return true if the cost relationwship between X and Y +** is inverted and needs to be adjusted. ** -** Conditions (2) and (3) mean that X is a "proper subset" of Y. -** If X is a proper subset of Y then Y is a better choice and ought -** to have a lower cost. This routine returns TRUE when that cost -** relationship is inverted and needs to be adjusted. Constraint (4) -** was added because if X uses skip-scan less than Y it still might -** deserve a lower cost even if it is a proper subset of Y. Constraint (5) -** was added because a covering index probably deserves to have a lower cost -** than a non-covering index even if it is a proper subset. +** Case 1: +** +** (1a) X and Y use the same index. +** (1b) X has fewer == terms than Y +** (1c) Neither X nor Y use skip-scan +** (1d) X does not have a a greater cost than Y +** +** Case 2: +** +** (2a) X has the same or lower cost, or returns the same or fewer rows, +** than Y. +** (2b) X uses fewer WHERE clause terms than Y +** (2c) Every WHERE clause term used by X is also used by Y +** (2d) X skips at least as many columns as Y +** (2e) If X is a covering index, than Y is too */ static int whereLoopCheaperProperSubset( const WhereLoop *pX, /* First WhereLoop to compare */ const WhereLoop *pY /* Compare against this WhereLoop */ ){ int i, j; - if( pX->nLTerm-pX->nSkip >= pY->nLTerm-pY->nSkip ){ - return 0; /* X is not a subset of Y */ + if( pX->rRun>pY->rRun && pX->nOut>pY->nOut ) return 0; /* (1d) and (2a) */ + assert( (pX->wsFlags & WHERE_VIRTUALTABLE)==0 ); + assert( (pY->wsFlags & WHERE_VIRTUALTABLE)==0 ); + if( pX->u.btree.nEq < pY->u.btree.nEq /* (1b) */ + && pX->u.btree.pIndex==pY->u.btree.pIndex /* (1a) */ + && pX->nSkip==0 && pY->nSkip==0 /* (1c) */ + ){ + return 1; /* Case 1 is true */ } - if( pX->rRun>pY->rRun && pX->nOut>pY->nOut ) return 0; - if( pY->nSkip > pX->nSkip ) return 0; + if( pX->nLTerm-pX->nSkip >= pY->nLTerm-pY->nSkip ){ + return 0; /* (2b) */ + } + if( pY->nSkip > pX->nSkip ) return 0; /* (2d) */ for(i=pX->nLTerm-1; i>=0; i--){ if( pX->aLTerm[i]==0 ) continue; for(j=pY->nLTerm-1; j>=0; j--){ if( pY->aLTerm[j]==pX->aLTerm[i] ) break; } - if( j<0 ) return 0; /* X not a subset of Y since term X[i] not used by Y */ + if( j<0 ) return 0; /* (2c) */ } if( (pX->wsFlags&WHERE_IDX_ONLY)!=0 && (pY->wsFlags&WHERE_IDX_ONLY)==0 ){ - return 0; /* Constraint (5) */ + return 0; /* (2e) */ } - return 1; /* All conditions meet */ + return 1; /* Case 2 is true */ } /* @@ -162176,7 +163742,10 @@ static int whereLoopAddBtreeIndex( assert( pNew->u.btree.nBtm==0 ); opMask = WO_EQ|WO_IN|WO_GT|WO_GE|WO_LT|WO_LE|WO_ISNULL|WO_IS; } - if( pProbe->bUnordered ) opMask &= ~(WO_GT|WO_GE|WO_LT|WO_LE); + if( pProbe->bUnordered || pProbe->bLowQual ){ + if( pProbe->bUnordered ) opMask &= ~(WO_GT|WO_GE|WO_LT|WO_LE); + if( pProbe->bLowQual ) opMask &= ~(WO_EQ|WO_IN|WO_IS); + } assert( pNew->u.btree.nEqnColumn ); assert( pNew->u.btree.nEqnKeyCol @@ -162756,6 +164325,100 @@ static SQLITE_NOINLINE u32 whereIsCoveringIndex( return rc; } +/* +** This is an sqlite3ParserAddCleanup() callback that is invoked to +** free the Parse->pIdxEpr list when the Parse object is destroyed. +*/ +static void whereIndexedExprCleanup(sqlite3 *db, void *pObject){ + IndexedExpr **pp = (IndexedExpr**)pObject; + while( *pp!=0 ){ + IndexedExpr *p = *pp; + *pp = p->pIENext; + sqlite3ExprDelete(db, p->pExpr); + sqlite3DbFreeNN(db, p); + } +} + +/* +** This function is called for a partial index - one with a WHERE clause - in +** two scenarios. In both cases, it determines whether or not the WHERE +** clause on the index implies that a column of the table may be safely +** replaced by a constant expression. For example, in the following +** SELECT: +** +** CREATE INDEX i1 ON t1(b, c) WHERE a=; +** SELECT a, b, c FROM t1 WHERE a= AND b=?; +** +** The "a" in the select-list may be replaced by , iff: +** +** (a) is a constant expression, and +** (b) The (a=) comparison uses the BINARY collation sequence, and +** (c) Column "a" has an affinity other than NONE or BLOB. +** +** If argument pItem is NULL, then pMask must not be NULL. In this case this +** function is being called as part of determining whether or not pIdx +** is a covering index. This function clears any bits in (*pMask) +** corresponding to columns that may be replaced by constants as described +** above. +** +** Otherwise, if pItem is not NULL, then this function is being called +** as part of coding a loop that uses index pIdx. In this case, add entries +** to the Parse.pIdxPartExpr list for each column that can be replaced +** by a constant. +*/ +static void wherePartIdxExpr( + Parse *pParse, /* Parse context */ + Index *pIdx, /* Partial index being processed */ + Expr *pPart, /* WHERE clause being processed */ + Bitmask *pMask, /* Mask to clear bits in */ + int iIdxCur, /* Cursor number for index */ + SrcItem *pItem /* The FROM clause entry for the table */ +){ + assert( pItem==0 || (pItem->fg.jointype & JT_RIGHT)==0 ); + assert( (pItem==0 || pMask==0) && (pMask!=0 || pItem!=0) ); + + if( pPart->op==TK_AND ){ + wherePartIdxExpr(pParse, pIdx, pPart->pRight, pMask, iIdxCur, pItem); + pPart = pPart->pLeft; + } + + if( (pPart->op==TK_EQ || pPart->op==TK_IS) ){ + Expr *pLeft = pPart->pLeft; + Expr *pRight = pPart->pRight; + u8 aff; + + if( pLeft->op!=TK_COLUMN ) return; + if( !sqlite3ExprIsConstant(pRight) ) return; + if( !sqlite3IsBinary(sqlite3ExprCompareCollSeq(pParse, pPart)) ) return; + if( pLeft->iColumn<0 ) return; + aff = pIdx->pTable->aCol[pLeft->iColumn].affinity; + if( aff>=SQLITE_AFF_TEXT ){ + if( pItem ){ + sqlite3 *db = pParse->db; + IndexedExpr *p = (IndexedExpr*)sqlite3DbMallocRaw(db, sizeof(*p)); + if( p ){ + int bNullRow = (pItem->fg.jointype&(JT_LEFT|JT_LTORJ))!=0; + p->pExpr = sqlite3ExprDup(db, pRight, 0); + p->iDataCur = pItem->iCursor; + p->iIdxCur = iIdxCur; + p->iIdxCol = pLeft->iColumn; + p->bMaybeNullRow = bNullRow; + p->pIENext = pParse->pIdxPartExpr; + p->aff = aff; + pParse->pIdxPartExpr = p; + if( p->pIENext==0 ){ + void *pArg = (void*)&pParse->pIdxPartExpr; + sqlite3ParserAddCleanup(pParse, whereIndexedExprCleanup, pArg); + } + } + }else if( pLeft->iColumn<(BMS-1) ){ + *pMask &= ~((Bitmask)1 << pLeft->iColumn); + } + } + } +} + + /* ** Add all WhereLoop objects for a single table of the join where the table ** is identified by pBuilder->pNew->iTab. That table is guaranteed to be @@ -162959,9 +164622,6 @@ static int whereLoopAddBtree( #else pNew->rRun = rSize + 16; #endif - if( IsView(pTab) || (pTab->tabFlags & TF_Ephemeral)!=0 ){ - pNew->wsFlags |= WHERE_VIEWSCAN; - } ApplyCostMultiplier(pNew->rRun, pTab->costMult); whereLoopOutputAdjust(pWC, pNew, rSize); rc = whereLoopInsert(pBuilder, pNew); @@ -162974,6 +164634,11 @@ static int whereLoopAddBtree( pNew->wsFlags = WHERE_IDX_ONLY | WHERE_INDEXED; }else{ m = pSrc->colUsed & pProbe->colNotIdxed; + if( pProbe->pPartIdxWhere ){ + wherePartIdxExpr( + pWInfo->pParse, pProbe, pProbe->pPartIdxWhere, &m, 0, 0 + ); + } pNew->wsFlags = WHERE_INDEXED; if( m==TOPBIT || (pProbe->bHasExpr && !pProbe->bHasVCol && m!=0) ){ u32 isCov = whereIsCoveringIndex(pWInfo, pProbe, pSrc->iCursor); @@ -163356,7 +165021,7 @@ SQLITE_API int sqlite3_vtab_rhs_value( sqlite3_value *pVal = 0; int rc = SQLITE_OK; if( iCons<0 || iCons>=pIdxInfo->nConstraint ){ - rc = SQLITE_MISUSE; /* EV: R-30545-25046 */ + rc = SQLITE_MISUSE_BKPT; /* EV: R-30545-25046 */ }else{ if( pH->aRhs[iCons]==0 ){ WhereTerm *pTerm = &pH->pWC->a[pIdxInfo->aConstraint[iCons].iTermOffset]; @@ -164380,14 +166045,6 @@ static int wherePathSolver(WhereInfo *pWInfo, LogEst nRowEst){ rUnsorted -= 2; /* TUNING: Slight bias in favor of no-sort plans */ } - /* TUNING: A full-scan of a VIEW or subquery in the outer loop - ** is not so bad. */ - if( iLoop==0 && (pWLoop->wsFlags & WHERE_VIEWSCAN)!=0 && nLoop>1 ){ - rCost += -10; - nOut += -30; - WHERETRACE(0x80,("VIEWSCAN cost reduction for %c\n",pWLoop->cId)); - } - /* Check to see if pWLoop should be added to the set of ** mxChoice best-so-far paths. ** @@ -164937,20 +166594,6 @@ static SQLITE_NOINLINE void whereCheckIfBloomFilterIsUseful( } } -/* -** This is an sqlite3ParserAddCleanup() callback that is invoked to -** free the Parse->pIdxEpr list when the Parse object is destroyed. -*/ -static void whereIndexedExprCleanup(sqlite3 *db, void *pObject){ - Parse *pParse = (Parse*)pObject; - while( pParse->pIdxEpr!=0 ){ - IndexedExpr *p = pParse->pIdxEpr; - pParse->pIdxEpr = p->pIENext; - sqlite3ExprDelete(db, p->pExpr); - sqlite3DbFreeNN(db, p); - } -} - /* ** The index pIdx is used by a query and contains one or more expressions. ** In other words pIdx is an index on an expression. iIdxCur is the cursor @@ -164990,6 +166633,20 @@ static SQLITE_NOINLINE void whereAddIndexedExpr( continue; } if( sqlite3ExprIsConstant(pExpr) ) continue; + if( pExpr->op==TK_FUNCTION ){ + /* Functions that might set a subtype should not be replaced by the + ** value taken from an expression index since the index omits the + ** subtype. https://sqlite.org/forum/forumpost/68d284c86b082c3e */ + int n; + FuncDef *pDef; + sqlite3 *db = pParse->db; + assert( ExprUseXList(pExpr) ); + n = pExpr->x.pList ? pExpr->x.pList->nExpr : 0; + pDef = sqlite3FindFunction(db, pExpr->u.zToken, n, ENC(db), 0); + if( pDef==0 || (pDef->funcFlags & SQLITE_RESULT_SUBTYPE)!=0 ){ + continue; + } + } p = sqlite3DbMallocRaw(pParse->db, sizeof(IndexedExpr)); if( p==0 ) break; p->pIENext = pParse->pIdxEpr; @@ -165012,7 +166669,8 @@ static SQLITE_NOINLINE void whereAddIndexedExpr( #endif pParse->pIdxEpr = p; if( p->pIENext==0 ){ - sqlite3ParserAddCleanup(pParse, whereIndexedExprCleanup, pParse); + void *pArg = (void*)&pParse->pIdxEpr; + sqlite3ParserAddCleanup(pParse, whereIndexedExprCleanup, pArg); } } } @@ -165167,7 +166825,10 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( /* An ORDER/GROUP BY clause of more than 63 terms cannot be optimized */ testcase( pOrderBy && pOrderBy->nExpr==BMS-1 ); - if( pOrderBy && pOrderBy->nExpr>=BMS ) pOrderBy = 0; + if( pOrderBy && pOrderBy->nExpr>=BMS ){ + pOrderBy = 0; + wctrlFlags &= ~WHERE_WANT_DISTINCT; + } /* The number of tables in the FROM clause is limited by the number of ** bits in a Bitmask @@ -165192,7 +166853,10 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( ** field (type Bitmask) it must be aligned on an 8-byte boundary on ** some architectures. Hence the ROUND8() below. */ - nByteWInfo = ROUND8P(sizeof(WhereInfo)+(nTabList-1)*sizeof(WhereLevel)); + nByteWInfo = ROUND8P(sizeof(WhereInfo)); + if( nTabList>1 ){ + nByteWInfo = ROUND8P(nByteWInfo + (nTabList-1)*sizeof(WhereLevel)); + } pWInfo = sqlite3DbMallocRawNN(db, nByteWInfo + sizeof(WhereLoop)); if( db->mallocFailed ){ sqlite3DbFree(db, pWInfo); @@ -165402,6 +167066,16 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( wherePathSolver(pWInfo, pWInfo->nRowOut+1); if( db->mallocFailed ) goto whereBeginError; } + + /* TUNING: Assume that a DISTINCT clause on a subquery reduces + ** the output size by a factor of 8 (LogEst -30). + */ + if( (pWInfo->wctrlFlags & WHERE_WANT_DISTINCT)!=0 ){ + WHERETRACE(0x0080,("nRowOut reduced from %d to %d due to DISTINCT\n", + pWInfo->nRowOut, pWInfo->nRowOut-30)); + pWInfo->nRowOut -= 30; + } + } assert( pWInfo->pTabList!=0 ); if( pWInfo->pOrderBy==0 && (db->flags & SQLITE_ReverseOrder)!=0 ){ @@ -165614,6 +167288,11 @@ SQLITE_PRIVATE WhereInfo *sqlite3WhereBegin( if( pIx->bHasExpr && OptimizationEnabled(db, SQLITE_IndexedExpr) ){ whereAddIndexedExpr(pParse, pIx, iIndexCur, pTabItem); } + if( pIx->pPartIdxWhere && (pTabItem->fg.jointype & JT_RIGHT)==0 ){ + wherePartIdxExpr( + pParse, pIx, pIx->pPartIdxWhere, 0, iIndexCur, pTabItem + ); + } } pLevel->iIdxCur = iIndexCur; assert( pIx!=0 ); @@ -165739,6 +167418,11 @@ whereBeginError: pParse->nQueryLoop = pWInfo->savedNQueryLoop; whereInfoFree(db, pWInfo); } +#ifdef WHERETRACE_ENABLED + /* Prevent harmless compiler warnings about debugging routines + ** being declared but never used */ + sqlite3ShowWhereLoopList(0); +#endif /* WHERETRACE_ENABLED */ return 0; } @@ -167156,7 +168840,7 @@ SQLITE_PRIVATE int sqlite3WindowRewrite(Parse *pParse, Select *p){ assert( ExprUseXList(pWin->pOwner) ); assert( pWin->pWFunc!=0 ); pArgs = pWin->pOwner->x.pList; - if( pWin->pWFunc->funcFlags & SQLITE_FUNC_SUBTYPE ){ + if( pWin->pWFunc->funcFlags & SQLITE_SUBTYPE ){ selectWindowRewriteEList(pParse, pMWin, pSrc, pArgs, pTab, &pSublist); pWin->iArgCol = (pSublist ? pSublist->nExpr : 0); pWin->bExprArgs = 1; @@ -167430,8 +169114,9 @@ SQLITE_PRIVATE void sqlite3WindowAttach(Parse *pParse, Expr *p, Window *pWin){ if( p ){ assert( p->op==TK_FUNCTION ); assert( pWin ); + assert( ExprIsFullSize(p) ); p->y.pWin = pWin; - ExprSetProperty(p, EP_WinFunc); + ExprSetProperty(p, EP_WinFunc|EP_FullSize); pWin->pOwner = p; if( (p->flags & EP_Distinct) && pWin->eFrmType!=TK_FILTER ){ sqlite3ErrorMsg(pParse, @@ -169733,18 +171418,18 @@ typedef union { #define sqlite3ParserCTX_FETCH Parse *pParse=yypParser->pParse; #define sqlite3ParserCTX_STORE yypParser->pParse=pParse; #define YYFALLBACK 1 -#define YYNSTATE 575 -#define YYNRULE 403 -#define YYNRULE_WITH_ACTION 338 +#define YYNSTATE 579 +#define YYNRULE 405 +#define YYNRULE_WITH_ACTION 340 #define YYNTOKEN 185 -#define YY_MAX_SHIFT 574 -#define YY_MIN_SHIFTREDUCE 833 -#define YY_MAX_SHIFTREDUCE 1235 -#define YY_ERROR_ACTION 1236 -#define YY_ACCEPT_ACTION 1237 -#define YY_NO_ACTION 1238 -#define YY_MIN_REDUCE 1239 -#define YY_MAX_REDUCE 1641 +#define YY_MAX_SHIFT 578 +#define YY_MIN_SHIFTREDUCE 838 +#define YY_MAX_SHIFTREDUCE 1242 +#define YY_ERROR_ACTION 1243 +#define YY_ACCEPT_ACTION 1244 +#define YY_NO_ACTION 1245 +#define YY_MIN_REDUCE 1246 +#define YY_MAX_REDUCE 1650 /************* End control #defines *******************************************/ #define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0]))) @@ -169811,218 +171496,218 @@ typedef union { ** yy_default[] Default action for each state. ** *********** Begin parsing tables **********************************************/ -#define YY_ACTTAB_COUNT (2096) +#define YY_ACTTAB_COUNT (2100) static const YYACTIONTYPE yy_action[] = { - /* 0 */ 568, 208, 568, 118, 115, 229, 568, 118, 115, 229, - /* 10 */ 568, 1310, 377, 1289, 408, 562, 562, 562, 568, 409, - /* 20 */ 378, 1310, 1272, 41, 41, 41, 41, 208, 1520, 71, - /* 30 */ 71, 969, 419, 41, 41, 491, 303, 279, 303, 970, - /* 40 */ 397, 71, 71, 125, 126, 80, 1210, 1210, 1047, 1050, - /* 50 */ 1037, 1037, 123, 123, 124, 124, 124, 124, 476, 409, - /* 60 */ 1237, 1, 1, 574, 2, 1241, 550, 118, 115, 229, - /* 70 */ 317, 480, 146, 480, 524, 118, 115, 229, 529, 1323, - /* 80 */ 417, 523, 142, 125, 126, 80, 1210, 1210, 1047, 1050, - /* 90 */ 1037, 1037, 123, 123, 124, 124, 124, 124, 118, 115, - /* 100 */ 229, 327, 122, 122, 122, 122, 121, 121, 120, 120, - /* 110 */ 120, 119, 116, 444, 284, 284, 284, 284, 442, 442, - /* 120 */ 442, 1559, 376, 1561, 1186, 375, 1157, 565, 1157, 565, - /* 130 */ 409, 1559, 537, 259, 226, 444, 101, 145, 449, 316, - /* 140 */ 559, 240, 122, 122, 122, 122, 121, 121, 120, 120, - /* 150 */ 120, 119, 116, 444, 125, 126, 80, 1210, 1210, 1047, - /* 160 */ 1050, 1037, 1037, 123, 123, 124, 124, 124, 124, 142, - /* 170 */ 294, 1186, 339, 448, 120, 120, 120, 119, 116, 444, - /* 180 */ 127, 1186, 1187, 1186, 148, 441, 440, 568, 119, 116, - /* 190 */ 444, 124, 124, 124, 124, 117, 122, 122, 122, 122, - /* 200 */ 121, 121, 120, 120, 120, 119, 116, 444, 454, 113, - /* 210 */ 13, 13, 546, 122, 122, 122, 122, 121, 121, 120, - /* 220 */ 120, 120, 119, 116, 444, 422, 316, 559, 1186, 1187, - /* 230 */ 1186, 149, 1218, 409, 1218, 124, 124, 124, 124, 122, - /* 240 */ 122, 122, 122, 121, 121, 120, 120, 120, 119, 116, - /* 250 */ 444, 465, 342, 1034, 1034, 1048, 1051, 125, 126, 80, - /* 260 */ 1210, 1210, 1047, 1050, 1037, 1037, 123, 123, 124, 124, - /* 270 */ 124, 124, 1275, 522, 222, 1186, 568, 409, 224, 514, - /* 280 */ 175, 82, 83, 122, 122, 122, 122, 121, 121, 120, - /* 290 */ 120, 120, 119, 116, 444, 1005, 16, 16, 1186, 133, - /* 300 */ 133, 125, 126, 80, 1210, 1210, 1047, 1050, 1037, 1037, - /* 310 */ 123, 123, 124, 124, 124, 124, 122, 122, 122, 122, - /* 320 */ 121, 121, 120, 120, 120, 119, 116, 444, 1038, 546, - /* 330 */ 1186, 373, 1186, 1187, 1186, 252, 1429, 399, 504, 501, - /* 340 */ 500, 111, 560, 566, 4, 924, 924, 433, 499, 340, - /* 350 */ 460, 328, 360, 394, 1231, 1186, 1187, 1186, 563, 568, - /* 360 */ 122, 122, 122, 122, 121, 121, 120, 120, 120, 119, - /* 370 */ 116, 444, 284, 284, 369, 1572, 1598, 441, 440, 154, - /* 380 */ 409, 445, 71, 71, 1282, 565, 1215, 1186, 1187, 1186, - /* 390 */ 85, 1217, 271, 557, 543, 515, 515, 568, 98, 1216, - /* 400 */ 6, 1274, 472, 142, 125, 126, 80, 1210, 1210, 1047, - /* 410 */ 1050, 1037, 1037, 123, 123, 124, 124, 124, 124, 550, - /* 420 */ 13, 13, 1024, 507, 1218, 1186, 1218, 549, 109, 109, - /* 430 */ 222, 568, 1232, 175, 568, 427, 110, 197, 445, 569, - /* 440 */ 445, 430, 1546, 1014, 325, 551, 1186, 270, 287, 368, - /* 450 */ 510, 363, 509, 257, 71, 71, 543, 71, 71, 359, - /* 460 */ 316, 559, 1604, 122, 122, 122, 122, 121, 121, 120, - /* 470 */ 120, 120, 119, 116, 444, 1014, 1014, 1016, 1017, 27, - /* 480 */ 284, 284, 1186, 1187, 1186, 1152, 568, 1603, 409, 899, - /* 490 */ 190, 550, 356, 565, 550, 935, 533, 517, 1152, 516, - /* 500 */ 413, 1152, 552, 1186, 1187, 1186, 568, 544, 544, 51, - /* 510 */ 51, 214, 125, 126, 80, 1210, 1210, 1047, 1050, 1037, - /* 520 */ 1037, 123, 123, 124, 124, 124, 124, 1186, 474, 135, - /* 530 */ 135, 409, 284, 284, 1484, 505, 121, 121, 120, 120, - /* 540 */ 120, 119, 116, 444, 1005, 565, 518, 217, 541, 541, - /* 550 */ 316, 559, 142, 6, 532, 125, 126, 80, 1210, 1210, - /* 560 */ 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, 124, - /* 570 */ 1548, 122, 122, 122, 122, 121, 121, 120, 120, 120, - /* 580 */ 119, 116, 444, 485, 1186, 1187, 1186, 482, 281, 1263, - /* 590 */ 955, 252, 1186, 373, 504, 501, 500, 1186, 340, 570, - /* 600 */ 1186, 570, 409, 292, 499, 955, 874, 191, 480, 316, - /* 610 */ 559, 384, 290, 380, 122, 122, 122, 122, 121, 121, - /* 620 */ 120, 120, 120, 119, 116, 444, 125, 126, 80, 1210, - /* 630 */ 1210, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, - /* 640 */ 124, 409, 394, 1132, 1186, 867, 100, 284, 284, 1186, - /* 650 */ 1187, 1186, 373, 1089, 1186, 1187, 1186, 1186, 1187, 1186, - /* 660 */ 565, 455, 32, 373, 233, 125, 126, 80, 1210, 1210, - /* 670 */ 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, 124, - /* 680 */ 1428, 957, 568, 228, 956, 122, 122, 122, 122, 121, - /* 690 */ 121, 120, 120, 120, 119, 116, 444, 1152, 228, 1186, - /* 700 */ 157, 1186, 1187, 1186, 1547, 13, 13, 301, 955, 1226, - /* 710 */ 1152, 153, 409, 1152, 373, 1575, 1170, 5, 369, 1572, - /* 720 */ 429, 1232, 3, 955, 122, 122, 122, 122, 121, 121, - /* 730 */ 120, 120, 120, 119, 116, 444, 125, 126, 80, 1210, - /* 740 */ 1210, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, - /* 750 */ 124, 409, 208, 567, 1186, 1025, 1186, 1187, 1186, 1186, - /* 760 */ 388, 850, 155, 1546, 286, 402, 1094, 1094, 488, 568, - /* 770 */ 465, 342, 1315, 1315, 1546, 125, 126, 80, 1210, 1210, - /* 780 */ 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, 124, - /* 790 */ 129, 568, 13, 13, 374, 122, 122, 122, 122, 121, - /* 800 */ 121, 120, 120, 120, 119, 116, 444, 302, 568, 453, - /* 810 */ 528, 1186, 1187, 1186, 13, 13, 1186, 1187, 1186, 1293, - /* 820 */ 463, 1263, 409, 1313, 1313, 1546, 1010, 453, 452, 200, - /* 830 */ 299, 71, 71, 1261, 122, 122, 122, 122, 121, 121, - /* 840 */ 120, 120, 120, 119, 116, 444, 125, 126, 80, 1210, - /* 850 */ 1210, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, - /* 860 */ 124, 409, 227, 1069, 1152, 284, 284, 419, 312, 278, - /* 870 */ 278, 285, 285, 1415, 406, 405, 382, 1152, 565, 568, - /* 880 */ 1152, 1189, 565, 1592, 565, 125, 126, 80, 1210, 1210, - /* 890 */ 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, 124, - /* 900 */ 453, 1476, 13, 13, 1530, 122, 122, 122, 122, 121, - /* 910 */ 121, 120, 120, 120, 119, 116, 444, 201, 568, 354, - /* 920 */ 1578, 574, 2, 1241, 838, 839, 840, 1554, 317, 1205, - /* 930 */ 146, 6, 409, 255, 254, 253, 206, 1323, 9, 1189, - /* 940 */ 262, 71, 71, 424, 122, 122, 122, 122, 121, 121, - /* 950 */ 120, 120, 120, 119, 116, 444, 125, 126, 80, 1210, - /* 960 */ 1210, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, - /* 970 */ 124, 568, 284, 284, 568, 1206, 409, 573, 313, 1241, - /* 980 */ 349, 1292, 352, 419, 317, 565, 146, 491, 525, 1635, - /* 990 */ 395, 371, 491, 1323, 70, 70, 1291, 71, 71, 240, - /* 1000 */ 1321, 104, 80, 1210, 1210, 1047, 1050, 1037, 1037, 123, - /* 1010 */ 123, 124, 124, 124, 124, 122, 122, 122, 122, 121, - /* 1020 */ 121, 120, 120, 120, 119, 116, 444, 1110, 284, 284, - /* 1030 */ 428, 448, 1519, 1206, 439, 284, 284, 1483, 1348, 311, - /* 1040 */ 474, 565, 1111, 969, 491, 491, 217, 1259, 565, 1532, - /* 1050 */ 568, 970, 207, 568, 1024, 240, 383, 1112, 519, 122, - /* 1060 */ 122, 122, 122, 121, 121, 120, 120, 120, 119, 116, - /* 1070 */ 444, 1015, 107, 71, 71, 1014, 13, 13, 910, 568, - /* 1080 */ 1489, 568, 284, 284, 97, 526, 491, 448, 911, 1322, - /* 1090 */ 1318, 545, 409, 284, 284, 565, 151, 209, 1489, 1491, - /* 1100 */ 262, 450, 55, 55, 56, 56, 565, 1014, 1014, 1016, - /* 1110 */ 443, 332, 409, 527, 12, 295, 125, 126, 80, 1210, - /* 1120 */ 1210, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, - /* 1130 */ 124, 347, 409, 862, 1528, 1206, 125, 126, 80, 1210, - /* 1140 */ 1210, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, - /* 1150 */ 124, 1133, 1633, 474, 1633, 371, 125, 114, 80, 1210, - /* 1160 */ 1210, 1047, 1050, 1037, 1037, 123, 123, 124, 124, 124, - /* 1170 */ 124, 1489, 329, 474, 331, 122, 122, 122, 122, 121, - /* 1180 */ 121, 120, 120, 120, 119, 116, 444, 203, 1415, 568, - /* 1190 */ 1290, 862, 464, 1206, 436, 122, 122, 122, 122, 121, - /* 1200 */ 121, 120, 120, 120, 119, 116, 444, 553, 1133, 1634, - /* 1210 */ 539, 1634, 15, 15, 890, 122, 122, 122, 122, 121, - /* 1220 */ 121, 120, 120, 120, 119, 116, 444, 568, 298, 538, - /* 1230 */ 1131, 1415, 1552, 1553, 1327, 409, 6, 6, 1163, 1264, - /* 1240 */ 415, 320, 284, 284, 1415, 508, 565, 525, 300, 457, - /* 1250 */ 43, 43, 568, 891, 12, 565, 330, 478, 425, 407, - /* 1260 */ 126, 80, 1210, 1210, 1047, 1050, 1037, 1037, 123, 123, - /* 1270 */ 124, 124, 124, 124, 568, 57, 57, 288, 1186, 1415, - /* 1280 */ 496, 458, 392, 392, 391, 273, 389, 1131, 1551, 847, - /* 1290 */ 1163, 407, 6, 568, 321, 1152, 470, 44, 44, 1550, - /* 1300 */ 1110, 426, 234, 6, 323, 256, 540, 256, 1152, 431, - /* 1310 */ 568, 1152, 322, 17, 487, 1111, 58, 58, 122, 122, - /* 1320 */ 122, 122, 121, 121, 120, 120, 120, 119, 116, 444, - /* 1330 */ 1112, 216, 481, 59, 59, 1186, 1187, 1186, 111, 560, - /* 1340 */ 324, 4, 236, 456, 526, 568, 237, 456, 568, 437, - /* 1350 */ 168, 556, 420, 141, 479, 563, 568, 293, 568, 1091, - /* 1360 */ 568, 293, 568, 1091, 531, 568, 870, 8, 60, 60, - /* 1370 */ 235, 61, 61, 568, 414, 568, 414, 568, 445, 62, - /* 1380 */ 62, 45, 45, 46, 46, 47, 47, 199, 49, 49, - /* 1390 */ 557, 568, 359, 568, 100, 486, 50, 50, 63, 63, - /* 1400 */ 64, 64, 561, 415, 535, 410, 568, 1024, 568, 534, - /* 1410 */ 316, 559, 316, 559, 65, 65, 14, 14, 568, 1024, - /* 1420 */ 568, 512, 930, 870, 1015, 109, 109, 929, 1014, 66, - /* 1430 */ 66, 131, 131, 110, 451, 445, 569, 445, 416, 177, - /* 1440 */ 1014, 132, 132, 67, 67, 568, 467, 568, 930, 471, - /* 1450 */ 1360, 283, 226, 929, 315, 1359, 407, 568, 459, 407, - /* 1460 */ 1014, 1014, 1016, 239, 407, 86, 213, 1346, 52, 52, - /* 1470 */ 68, 68, 1014, 1014, 1016, 1017, 27, 1577, 1174, 447, - /* 1480 */ 69, 69, 288, 97, 108, 1535, 106, 392, 392, 391, - /* 1490 */ 273, 389, 568, 877, 847, 881, 568, 111, 560, 466, - /* 1500 */ 4, 568, 152, 30, 38, 568, 1128, 234, 396, 323, - /* 1510 */ 111, 560, 527, 4, 563, 53, 53, 322, 568, 163, - /* 1520 */ 163, 568, 337, 468, 164, 164, 333, 563, 76, 76, - /* 1530 */ 568, 289, 1508, 568, 31, 1507, 568, 445, 338, 483, - /* 1540 */ 100, 54, 54, 344, 72, 72, 296, 236, 1076, 557, - /* 1550 */ 445, 877, 1356, 134, 134, 168, 73, 73, 141, 161, - /* 1560 */ 161, 1566, 557, 535, 568, 319, 568, 348, 536, 1007, - /* 1570 */ 473, 261, 261, 889, 888, 235, 535, 568, 1024, 568, - /* 1580 */ 475, 534, 261, 367, 109, 109, 521, 136, 136, 130, - /* 1590 */ 130, 1024, 110, 366, 445, 569, 445, 109, 109, 1014, - /* 1600 */ 162, 162, 156, 156, 568, 110, 1076, 445, 569, 445, - /* 1610 */ 410, 351, 1014, 568, 353, 316, 559, 568, 343, 568, - /* 1620 */ 100, 497, 357, 258, 100, 896, 897, 140, 140, 355, - /* 1630 */ 1306, 1014, 1014, 1016, 1017, 27, 139, 139, 362, 451, - /* 1640 */ 137, 137, 138, 138, 1014, 1014, 1016, 1017, 27, 1174, - /* 1650 */ 447, 568, 372, 288, 111, 560, 1018, 4, 392, 392, - /* 1660 */ 391, 273, 389, 568, 1137, 847, 568, 1072, 568, 258, - /* 1670 */ 492, 563, 568, 211, 75, 75, 555, 960, 234, 261, - /* 1680 */ 323, 111, 560, 927, 4, 113, 77, 77, 322, 74, - /* 1690 */ 74, 42, 42, 1369, 445, 48, 48, 1414, 563, 972, - /* 1700 */ 973, 1088, 1087, 1088, 1087, 860, 557, 150, 928, 1342, - /* 1710 */ 113, 1354, 554, 1419, 1018, 1271, 1262, 1250, 236, 1249, - /* 1720 */ 1251, 445, 1585, 1339, 308, 276, 168, 309, 11, 141, - /* 1730 */ 393, 310, 232, 557, 1401, 1024, 335, 291, 1396, 219, - /* 1740 */ 336, 109, 109, 934, 297, 1406, 235, 341, 477, 110, - /* 1750 */ 502, 445, 569, 445, 1389, 1405, 1014, 400, 1289, 365, - /* 1760 */ 223, 1480, 1024, 1479, 1351, 1352, 1350, 1349, 109, 109, - /* 1770 */ 204, 1588, 1226, 558, 265, 218, 110, 205, 445, 569, - /* 1780 */ 445, 410, 387, 1014, 1527, 179, 316, 559, 1014, 1014, - /* 1790 */ 1016, 1017, 27, 230, 1525, 1223, 79, 560, 85, 4, - /* 1800 */ 418, 215, 548, 81, 84, 188, 1402, 173, 181, 461, - /* 1810 */ 451, 35, 462, 563, 183, 1014, 1014, 1016, 1017, 27, - /* 1820 */ 184, 1485, 185, 186, 495, 242, 98, 398, 1408, 36, - /* 1830 */ 1407, 484, 91, 469, 401, 1410, 445, 192, 1474, 246, - /* 1840 */ 1496, 490, 346, 277, 248, 196, 493, 511, 557, 350, - /* 1850 */ 1252, 249, 250, 403, 1309, 1308, 111, 560, 432, 4, - /* 1860 */ 1307, 1300, 93, 1602, 881, 1601, 224, 404, 434, 520, - /* 1870 */ 263, 435, 1571, 563, 1279, 1278, 364, 1024, 306, 1277, - /* 1880 */ 264, 1600, 1557, 109, 109, 370, 1299, 307, 1556, 438, - /* 1890 */ 128, 110, 1374, 445, 569, 445, 445, 546, 1014, 10, - /* 1900 */ 1461, 105, 381, 1373, 34, 571, 99, 1332, 557, 314, - /* 1910 */ 1180, 530, 272, 274, 379, 210, 1331, 547, 385, 386, - /* 1920 */ 275, 572, 1247, 1242, 411, 412, 1512, 165, 178, 1513, - /* 1930 */ 1014, 1014, 1016, 1017, 27, 1511, 1510, 1024, 78, 147, - /* 1940 */ 166, 220, 221, 109, 109, 834, 304, 167, 446, 212, - /* 1950 */ 318, 110, 231, 445, 569, 445, 144, 1086, 1014, 1084, - /* 1960 */ 326, 180, 169, 1205, 182, 334, 238, 913, 241, 1100, - /* 1970 */ 187, 170, 171, 421, 87, 88, 423, 189, 89, 90, - /* 1980 */ 172, 1103, 243, 1099, 244, 158, 18, 245, 345, 247, - /* 1990 */ 1014, 1014, 1016, 1017, 27, 261, 1092, 193, 1220, 489, - /* 2000 */ 194, 37, 366, 849, 494, 251, 195, 506, 92, 19, - /* 2010 */ 498, 358, 20, 503, 879, 361, 94, 892, 305, 159, - /* 2020 */ 513, 39, 95, 1168, 160, 1053, 964, 1139, 96, 174, - /* 2030 */ 1138, 225, 280, 282, 198, 958, 113, 1158, 1154, 260, - /* 2040 */ 21, 22, 23, 1156, 1162, 1161, 1143, 24, 33, 25, - /* 2050 */ 202, 542, 26, 100, 1067, 102, 1054, 103, 7, 1052, - /* 2060 */ 1056, 1109, 1057, 1108, 266, 267, 28, 40, 390, 1019, - /* 2070 */ 861, 112, 29, 564, 1176, 1175, 268, 176, 143, 923, - /* 2080 */ 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, - /* 2090 */ 1238, 1238, 1238, 1238, 269, 1593, + /* 0 */ 572, 210, 572, 119, 116, 231, 572, 119, 116, 231, + /* 10 */ 572, 1317, 379, 1296, 410, 566, 566, 566, 572, 411, + /* 20 */ 380, 1317, 1279, 42, 42, 42, 42, 210, 1529, 72, + /* 30 */ 72, 974, 421, 42, 42, 495, 305, 281, 305, 975, + /* 40 */ 399, 72, 72, 126, 127, 81, 1217, 1217, 1054, 1057, + /* 50 */ 1044, 1044, 124, 124, 125, 125, 125, 125, 480, 411, + /* 60 */ 1244, 1, 1, 578, 2, 1248, 554, 119, 116, 231, + /* 70 */ 319, 484, 147, 484, 528, 119, 116, 231, 533, 1330, + /* 80 */ 419, 527, 143, 126, 127, 81, 1217, 1217, 1054, 1057, + /* 90 */ 1044, 1044, 124, 124, 125, 125, 125, 125, 119, 116, + /* 100 */ 231, 329, 123, 123, 123, 123, 122, 122, 121, 121, + /* 110 */ 121, 120, 117, 448, 286, 286, 286, 286, 446, 446, + /* 120 */ 446, 1568, 378, 1570, 1193, 377, 1164, 569, 1164, 569, + /* 130 */ 411, 1568, 541, 261, 228, 448, 102, 146, 453, 318, + /* 140 */ 563, 242, 123, 123, 123, 123, 122, 122, 121, 121, + /* 150 */ 121, 120, 117, 448, 126, 127, 81, 1217, 1217, 1054, + /* 160 */ 1057, 1044, 1044, 124, 124, 125, 125, 125, 125, 143, + /* 170 */ 296, 1193, 341, 452, 121, 121, 121, 120, 117, 448, + /* 180 */ 128, 1193, 1194, 1193, 149, 445, 444, 572, 120, 117, + /* 190 */ 448, 125, 125, 125, 125, 118, 123, 123, 123, 123, + /* 200 */ 122, 122, 121, 121, 121, 120, 117, 448, 458, 114, + /* 210 */ 13, 13, 550, 123, 123, 123, 123, 122, 122, 121, + /* 220 */ 121, 121, 120, 117, 448, 424, 318, 563, 1193, 1194, + /* 230 */ 1193, 150, 1225, 411, 1225, 125, 125, 125, 125, 123, + /* 240 */ 123, 123, 123, 122, 122, 121, 121, 121, 120, 117, + /* 250 */ 448, 469, 344, 1041, 1041, 1055, 1058, 126, 127, 81, + /* 260 */ 1217, 1217, 1054, 1057, 1044, 1044, 124, 124, 125, 125, + /* 270 */ 125, 125, 1282, 526, 224, 1193, 572, 411, 226, 519, + /* 280 */ 177, 83, 84, 123, 123, 123, 123, 122, 122, 121, + /* 290 */ 121, 121, 120, 117, 448, 1010, 16, 16, 1193, 134, + /* 300 */ 134, 126, 127, 81, 1217, 1217, 1054, 1057, 1044, 1044, + /* 310 */ 124, 124, 125, 125, 125, 125, 123, 123, 123, 123, + /* 320 */ 122, 122, 121, 121, 121, 120, 117, 448, 1045, 550, + /* 330 */ 1193, 375, 1193, 1194, 1193, 254, 1438, 401, 508, 505, + /* 340 */ 504, 112, 564, 570, 4, 929, 929, 435, 503, 342, + /* 350 */ 464, 330, 362, 396, 1238, 1193, 1194, 1193, 567, 572, + /* 360 */ 123, 123, 123, 123, 122, 122, 121, 121, 121, 120, + /* 370 */ 117, 448, 286, 286, 371, 1581, 1607, 445, 444, 155, + /* 380 */ 411, 449, 72, 72, 1289, 569, 1222, 1193, 1194, 1193, + /* 390 */ 86, 1224, 273, 561, 547, 520, 520, 572, 99, 1223, + /* 400 */ 6, 1281, 476, 143, 126, 127, 81, 1217, 1217, 1054, + /* 410 */ 1057, 1044, 1044, 124, 124, 125, 125, 125, 125, 554, + /* 420 */ 13, 13, 1031, 511, 1225, 1193, 1225, 553, 110, 110, + /* 430 */ 224, 572, 1239, 177, 572, 429, 111, 199, 449, 573, + /* 440 */ 449, 432, 1555, 1019, 327, 555, 1193, 272, 289, 370, + /* 450 */ 514, 365, 513, 259, 72, 72, 547, 72, 72, 361, + /* 460 */ 318, 563, 1613, 123, 123, 123, 123, 122, 122, 121, + /* 470 */ 121, 121, 120, 117, 448, 1019, 1019, 1021, 1022, 28, + /* 480 */ 286, 286, 1193, 1194, 1193, 1159, 572, 1612, 411, 904, + /* 490 */ 192, 554, 358, 569, 554, 940, 537, 521, 1159, 437, + /* 500 */ 415, 1159, 556, 1193, 1194, 1193, 572, 548, 548, 52, + /* 510 */ 52, 216, 126, 127, 81, 1217, 1217, 1054, 1057, 1044, + /* 520 */ 1044, 124, 124, 125, 125, 125, 125, 1193, 478, 136, + /* 530 */ 136, 411, 286, 286, 1493, 509, 122, 122, 121, 121, + /* 540 */ 121, 120, 117, 448, 1010, 569, 522, 219, 545, 545, + /* 550 */ 318, 563, 143, 6, 536, 126, 127, 81, 1217, 1217, + /* 560 */ 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, 125, + /* 570 */ 1557, 123, 123, 123, 123, 122, 122, 121, 121, 121, + /* 580 */ 120, 117, 448, 489, 1193, 1194, 1193, 486, 283, 1270, + /* 590 */ 960, 254, 1193, 375, 508, 505, 504, 1193, 342, 574, + /* 600 */ 1193, 574, 411, 294, 503, 960, 879, 193, 484, 318, + /* 610 */ 563, 386, 292, 382, 123, 123, 123, 123, 122, 122, + /* 620 */ 121, 121, 121, 120, 117, 448, 126, 127, 81, 1217, + /* 630 */ 1217, 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, + /* 640 */ 125, 411, 396, 1139, 1193, 872, 101, 286, 286, 1193, + /* 650 */ 1194, 1193, 375, 1096, 1193, 1194, 1193, 1193, 1194, 1193, + /* 660 */ 569, 459, 33, 375, 235, 126, 127, 81, 1217, 1217, + /* 670 */ 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, 125, + /* 680 */ 1437, 962, 572, 230, 961, 123, 123, 123, 123, 122, + /* 690 */ 122, 121, 121, 121, 120, 117, 448, 1159, 230, 1193, + /* 700 */ 158, 1193, 1194, 1193, 1556, 13, 13, 303, 960, 1233, + /* 710 */ 1159, 154, 411, 1159, 375, 1584, 1177, 5, 371, 1581, + /* 720 */ 431, 1239, 3, 960, 123, 123, 123, 123, 122, 122, + /* 730 */ 121, 121, 121, 120, 117, 448, 126, 127, 81, 1217, + /* 740 */ 1217, 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, + /* 750 */ 125, 411, 210, 571, 1193, 1032, 1193, 1194, 1193, 1193, + /* 760 */ 390, 855, 156, 1555, 376, 404, 1101, 1101, 492, 572, + /* 770 */ 469, 344, 1322, 1322, 1555, 126, 127, 81, 1217, 1217, + /* 780 */ 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, 125, + /* 790 */ 130, 572, 13, 13, 532, 123, 123, 123, 123, 122, + /* 800 */ 122, 121, 121, 121, 120, 117, 448, 304, 572, 457, + /* 810 */ 229, 1193, 1194, 1193, 13, 13, 1193, 1194, 1193, 1300, + /* 820 */ 467, 1270, 411, 1320, 1320, 1555, 1015, 457, 456, 436, + /* 830 */ 301, 72, 72, 1268, 123, 123, 123, 123, 122, 122, + /* 840 */ 121, 121, 121, 120, 117, 448, 126, 127, 81, 1217, + /* 850 */ 1217, 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, + /* 860 */ 125, 411, 384, 1076, 1159, 286, 286, 421, 314, 280, + /* 870 */ 280, 287, 287, 461, 408, 407, 1539, 1159, 569, 572, + /* 880 */ 1159, 1196, 569, 409, 569, 126, 127, 81, 1217, 1217, + /* 890 */ 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, 125, + /* 900 */ 457, 1485, 13, 13, 1541, 123, 123, 123, 123, 122, + /* 910 */ 122, 121, 121, 121, 120, 117, 448, 202, 572, 462, + /* 920 */ 1587, 578, 2, 1248, 843, 844, 845, 1563, 319, 409, + /* 930 */ 147, 6, 411, 257, 256, 255, 208, 1330, 9, 1196, + /* 940 */ 264, 72, 72, 1436, 123, 123, 123, 123, 122, 122, + /* 950 */ 121, 121, 121, 120, 117, 448, 126, 127, 81, 1217, + /* 960 */ 1217, 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, + /* 970 */ 125, 572, 286, 286, 572, 1213, 411, 577, 315, 1248, + /* 980 */ 421, 371, 1581, 356, 319, 569, 147, 495, 529, 1644, + /* 990 */ 397, 935, 495, 1330, 71, 71, 934, 72, 72, 242, + /* 1000 */ 1328, 105, 81, 1217, 1217, 1054, 1057, 1044, 1044, 124, + /* 1010 */ 124, 125, 125, 125, 125, 123, 123, 123, 123, 122, + /* 1020 */ 122, 121, 121, 121, 120, 117, 448, 1117, 286, 286, + /* 1030 */ 1422, 452, 1528, 1213, 443, 286, 286, 1492, 1355, 313, + /* 1040 */ 478, 569, 1118, 454, 351, 495, 354, 1266, 569, 209, + /* 1050 */ 572, 418, 179, 572, 1031, 242, 385, 1119, 523, 123, + /* 1060 */ 123, 123, 123, 122, 122, 121, 121, 121, 120, 117, + /* 1070 */ 448, 1020, 108, 72, 72, 1019, 13, 13, 915, 572, + /* 1080 */ 1498, 572, 286, 286, 98, 530, 1537, 452, 916, 1334, + /* 1090 */ 1329, 203, 411, 286, 286, 569, 152, 211, 1498, 1500, + /* 1100 */ 426, 569, 56, 56, 57, 57, 569, 1019, 1019, 1021, + /* 1110 */ 447, 572, 411, 531, 12, 297, 126, 127, 81, 1217, + /* 1120 */ 1217, 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, + /* 1130 */ 125, 572, 411, 867, 15, 15, 126, 127, 81, 1217, + /* 1140 */ 1217, 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, + /* 1150 */ 125, 373, 529, 264, 44, 44, 126, 115, 81, 1217, + /* 1160 */ 1217, 1054, 1057, 1044, 1044, 124, 124, 125, 125, 125, + /* 1170 */ 125, 1498, 478, 1271, 417, 123, 123, 123, 123, 122, + /* 1180 */ 122, 121, 121, 121, 120, 117, 448, 205, 1213, 495, + /* 1190 */ 430, 867, 468, 322, 495, 123, 123, 123, 123, 122, + /* 1200 */ 122, 121, 121, 121, 120, 117, 448, 572, 557, 1140, + /* 1210 */ 1642, 1422, 1642, 543, 572, 123, 123, 123, 123, 122, + /* 1220 */ 122, 121, 121, 121, 120, 117, 448, 572, 1422, 572, + /* 1230 */ 13, 13, 542, 323, 1325, 411, 334, 58, 58, 349, + /* 1240 */ 1422, 1170, 326, 286, 286, 549, 1213, 300, 895, 530, + /* 1250 */ 45, 45, 59, 59, 1140, 1643, 569, 1643, 565, 417, + /* 1260 */ 127, 81, 1217, 1217, 1054, 1057, 1044, 1044, 124, 124, + /* 1270 */ 125, 125, 125, 125, 1367, 373, 500, 290, 1193, 512, + /* 1280 */ 1366, 427, 394, 394, 393, 275, 391, 896, 1138, 852, + /* 1290 */ 478, 258, 1422, 1170, 463, 1159, 12, 331, 428, 333, + /* 1300 */ 1117, 460, 236, 258, 325, 460, 544, 1544, 1159, 1098, + /* 1310 */ 491, 1159, 324, 1098, 440, 1118, 335, 516, 123, 123, + /* 1320 */ 123, 123, 122, 122, 121, 121, 121, 120, 117, 448, + /* 1330 */ 1119, 318, 563, 1138, 572, 1193, 1194, 1193, 112, 564, + /* 1340 */ 201, 4, 238, 433, 935, 490, 285, 228, 1517, 934, + /* 1350 */ 170, 560, 572, 142, 1516, 567, 572, 60, 60, 572, + /* 1360 */ 416, 572, 441, 572, 535, 302, 875, 8, 487, 572, + /* 1370 */ 237, 572, 416, 572, 485, 61, 61, 572, 449, 62, + /* 1380 */ 62, 332, 63, 63, 46, 46, 47, 47, 361, 572, + /* 1390 */ 561, 572, 48, 48, 50, 50, 51, 51, 572, 295, + /* 1400 */ 64, 64, 482, 295, 539, 412, 471, 1031, 572, 538, + /* 1410 */ 318, 563, 65, 65, 66, 66, 409, 475, 572, 1031, + /* 1420 */ 572, 14, 14, 875, 1020, 110, 110, 409, 1019, 572, + /* 1430 */ 474, 67, 67, 111, 455, 449, 573, 449, 98, 317, + /* 1440 */ 1019, 132, 132, 133, 133, 572, 1561, 572, 974, 409, + /* 1450 */ 6, 1562, 68, 68, 1560, 6, 975, 572, 6, 1559, + /* 1460 */ 1019, 1019, 1021, 6, 346, 218, 101, 531, 53, 53, + /* 1470 */ 69, 69, 1019, 1019, 1021, 1022, 28, 1586, 1181, 451, + /* 1480 */ 70, 70, 290, 87, 215, 31, 1363, 394, 394, 393, + /* 1490 */ 275, 391, 350, 109, 852, 107, 572, 112, 564, 483, + /* 1500 */ 4, 1212, 572, 239, 153, 572, 39, 236, 1299, 325, + /* 1510 */ 112, 564, 1298, 4, 567, 572, 32, 324, 572, 54, + /* 1520 */ 54, 572, 1135, 353, 398, 165, 165, 567, 166, 166, + /* 1530 */ 572, 291, 355, 572, 17, 357, 572, 449, 77, 77, + /* 1540 */ 1313, 55, 55, 1297, 73, 73, 572, 238, 470, 561, + /* 1550 */ 449, 472, 364, 135, 135, 170, 74, 74, 142, 163, + /* 1560 */ 163, 374, 561, 539, 572, 321, 572, 886, 540, 137, + /* 1570 */ 137, 339, 1353, 422, 298, 237, 539, 572, 1031, 572, + /* 1580 */ 340, 538, 101, 369, 110, 110, 162, 131, 131, 164, + /* 1590 */ 164, 1031, 111, 368, 449, 573, 449, 110, 110, 1019, + /* 1600 */ 157, 157, 141, 141, 572, 111, 572, 449, 573, 449, + /* 1610 */ 412, 288, 1019, 572, 882, 318, 563, 572, 219, 572, + /* 1620 */ 241, 1012, 477, 263, 263, 894, 893, 140, 140, 138, + /* 1630 */ 138, 1019, 1019, 1021, 1022, 28, 139, 139, 525, 455, + /* 1640 */ 76, 76, 78, 78, 1019, 1019, 1021, 1022, 28, 1181, + /* 1650 */ 451, 572, 1083, 290, 112, 564, 1575, 4, 394, 394, + /* 1660 */ 393, 275, 391, 572, 1023, 852, 572, 479, 345, 263, + /* 1670 */ 101, 567, 882, 1376, 75, 75, 1421, 501, 236, 260, + /* 1680 */ 325, 112, 564, 359, 4, 101, 43, 43, 324, 49, + /* 1690 */ 49, 901, 902, 161, 449, 101, 977, 978, 567, 1079, + /* 1700 */ 1349, 260, 965, 932, 263, 114, 561, 1095, 517, 1095, + /* 1710 */ 1083, 1094, 865, 1094, 151, 933, 1144, 114, 238, 1361, + /* 1720 */ 558, 449, 1023, 559, 1426, 1278, 170, 1269, 1257, 142, + /* 1730 */ 1601, 1256, 1258, 561, 1594, 1031, 496, 278, 213, 1346, + /* 1740 */ 310, 110, 110, 939, 311, 312, 237, 11, 234, 111, + /* 1750 */ 221, 449, 573, 449, 293, 395, 1019, 1408, 337, 1403, + /* 1760 */ 1396, 338, 1031, 299, 343, 1413, 1412, 481, 110, 110, + /* 1770 */ 506, 402, 225, 1296, 206, 367, 111, 1358, 449, 573, + /* 1780 */ 449, 412, 1359, 1019, 1489, 1488, 318, 563, 1019, 1019, + /* 1790 */ 1021, 1022, 28, 562, 207, 220, 80, 564, 389, 4, + /* 1800 */ 1597, 1357, 552, 1356, 1233, 181, 267, 232, 1536, 1534, + /* 1810 */ 455, 1230, 420, 567, 82, 1019, 1019, 1021, 1022, 28, + /* 1820 */ 86, 217, 85, 1494, 190, 175, 183, 465, 185, 466, + /* 1830 */ 36, 1409, 186, 187, 188, 499, 449, 244, 37, 99, + /* 1840 */ 400, 1415, 1414, 488, 1417, 194, 473, 403, 561, 1483, + /* 1850 */ 248, 92, 1505, 494, 198, 279, 112, 564, 250, 4, + /* 1860 */ 348, 497, 405, 352, 1259, 251, 252, 515, 1316, 434, + /* 1870 */ 1315, 1314, 94, 567, 1307, 886, 1306, 1031, 226, 406, + /* 1880 */ 1611, 1610, 438, 110, 110, 1580, 1286, 524, 439, 308, + /* 1890 */ 266, 111, 1285, 449, 573, 449, 449, 309, 1019, 366, + /* 1900 */ 1284, 1609, 265, 1566, 1565, 442, 372, 1381, 561, 129, + /* 1910 */ 550, 1380, 10, 1470, 383, 106, 316, 551, 100, 35, + /* 1920 */ 534, 575, 212, 1339, 381, 387, 1187, 1338, 274, 276, + /* 1930 */ 1019, 1019, 1021, 1022, 28, 277, 413, 1031, 576, 1254, + /* 1940 */ 388, 1521, 1249, 110, 110, 167, 1522, 168, 148, 1520, + /* 1950 */ 1519, 111, 306, 449, 573, 449, 222, 223, 1019, 839, + /* 1960 */ 169, 79, 450, 214, 414, 233, 320, 145, 1093, 1091, + /* 1970 */ 328, 182, 171, 1212, 918, 184, 240, 336, 243, 1107, + /* 1980 */ 189, 172, 173, 423, 425, 88, 180, 191, 89, 90, + /* 1990 */ 1019, 1019, 1021, 1022, 28, 91, 174, 1110, 245, 1106, + /* 2000 */ 246, 159, 18, 247, 347, 1099, 263, 195, 1227, 493, + /* 2010 */ 249, 196, 38, 854, 498, 368, 253, 360, 897, 197, + /* 2020 */ 502, 93, 19, 20, 507, 884, 363, 510, 95, 307, + /* 2030 */ 160, 96, 518, 97, 1175, 1060, 1146, 40, 21, 227, + /* 2040 */ 176, 1145, 282, 284, 969, 200, 963, 114, 262, 1165, + /* 2050 */ 22, 23, 24, 1161, 1169, 25, 1163, 1150, 34, 26, + /* 2060 */ 1168, 546, 27, 204, 101, 103, 104, 1074, 7, 1061, + /* 2070 */ 1059, 1063, 1116, 1064, 1115, 268, 269, 29, 41, 270, + /* 2080 */ 1024, 866, 113, 30, 568, 392, 1183, 144, 178, 1182, + /* 2090 */ 271, 928, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1602, }; static const YYCODETYPE yy_lookahead[] = { /* 0 */ 193, 193, 193, 274, 275, 276, 193, 274, 275, 276, @@ -170101,7 +171786,7 @@ static const YYCODETYPE yy_lookahead[] = { /* 730 */ 108, 109, 110, 111, 112, 113, 43, 44, 45, 46, /* 740 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, /* 750 */ 57, 19, 193, 193, 59, 23, 116, 117, 118, 59, - /* 760 */ 201, 21, 241, 304, 22, 206, 127, 128, 129, 193, + /* 760 */ 201, 21, 241, 304, 193, 206, 127, 128, 129, 193, /* 770 */ 128, 129, 235, 236, 304, 43, 44, 45, 46, 47, /* 780 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, /* 790 */ 22, 193, 216, 217, 193, 102, 103, 104, 105, 106, @@ -170112,129 +171797,129 @@ static const YYCODETYPE yy_lookahead[] = { /* 840 */ 108, 109, 110, 111, 112, 113, 43, 44, 45, 46, /* 850 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, /* 860 */ 57, 19, 193, 123, 76, 239, 240, 193, 253, 239, - /* 870 */ 240, 239, 240, 193, 106, 107, 193, 89, 252, 193, - /* 880 */ 92, 59, 252, 141, 252, 43, 44, 45, 46, 47, + /* 870 */ 240, 239, 240, 244, 106, 107, 193, 89, 252, 193, + /* 880 */ 92, 59, 252, 254, 252, 43, 44, 45, 46, 47, /* 890 */ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, /* 900 */ 284, 161, 216, 217, 193, 102, 103, 104, 105, 106, - /* 910 */ 107, 108, 109, 110, 111, 112, 113, 231, 193, 16, - /* 920 */ 187, 188, 189, 190, 7, 8, 9, 309, 195, 25, + /* 910 */ 107, 108, 109, 110, 111, 112, 113, 231, 193, 244, + /* 920 */ 187, 188, 189, 190, 7, 8, 9, 309, 195, 254, /* 930 */ 197, 313, 19, 127, 128, 129, 262, 204, 22, 117, - /* 940 */ 24, 216, 217, 263, 102, 103, 104, 105, 106, 107, + /* 940 */ 24, 216, 217, 273, 102, 103, 104, 105, 106, 107, /* 950 */ 108, 109, 110, 111, 112, 113, 43, 44, 45, 46, /* 960 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, /* 970 */ 57, 193, 239, 240, 193, 59, 19, 188, 253, 190, - /* 980 */ 77, 226, 79, 193, 195, 252, 197, 193, 19, 301, - /* 990 */ 302, 193, 193, 204, 216, 217, 226, 216, 217, 266, + /* 980 */ 193, 311, 312, 16, 195, 252, 197, 193, 19, 301, + /* 990 */ 302, 135, 193, 204, 216, 217, 140, 216, 217, 266, /* 1000 */ 204, 159, 45, 46, 47, 48, 49, 50, 51, 52, /* 1010 */ 53, 54, 55, 56, 57, 102, 103, 104, 105, 106, /* 1020 */ 107, 108, 109, 110, 111, 112, 113, 12, 239, 240, - /* 1030 */ 232, 298, 238, 117, 253, 239, 240, 238, 259, 260, - /* 1040 */ 193, 252, 27, 31, 193, 193, 142, 204, 252, 193, - /* 1050 */ 193, 39, 262, 193, 100, 266, 278, 42, 204, 102, + /* 1030 */ 193, 298, 238, 117, 253, 239, 240, 238, 259, 260, + /* 1040 */ 193, 252, 27, 193, 77, 193, 79, 204, 252, 262, + /* 1050 */ 193, 299, 300, 193, 100, 266, 278, 42, 204, 102, /* 1060 */ 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, /* 1070 */ 113, 117, 159, 216, 217, 121, 216, 217, 63, 193, - /* 1080 */ 193, 193, 239, 240, 115, 116, 193, 298, 73, 238, + /* 1080 */ 193, 193, 239, 240, 115, 116, 193, 298, 73, 240, /* 1090 */ 238, 231, 19, 239, 240, 252, 22, 24, 211, 212, - /* 1100 */ 24, 193, 216, 217, 216, 217, 252, 153, 154, 155, - /* 1110 */ 253, 16, 19, 144, 213, 268, 43, 44, 45, 46, + /* 1100 */ 263, 252, 216, 217, 216, 217, 252, 153, 154, 155, + /* 1110 */ 253, 193, 19, 144, 213, 268, 43, 44, 45, 46, /* 1120 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - /* 1130 */ 57, 238, 19, 59, 193, 59, 43, 44, 45, 46, + /* 1130 */ 57, 193, 19, 59, 216, 217, 43, 44, 45, 46, /* 1140 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - /* 1150 */ 57, 22, 23, 193, 25, 193, 43, 44, 45, 46, + /* 1150 */ 57, 193, 19, 24, 216, 217, 43, 44, 45, 46, /* 1160 */ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - /* 1170 */ 57, 284, 77, 193, 79, 102, 103, 104, 105, 106, - /* 1180 */ 107, 108, 109, 110, 111, 112, 113, 286, 193, 193, - /* 1190 */ 193, 117, 291, 117, 232, 102, 103, 104, 105, 106, - /* 1200 */ 107, 108, 109, 110, 111, 112, 113, 204, 22, 23, - /* 1210 */ 66, 25, 216, 217, 35, 102, 103, 104, 105, 106, - /* 1220 */ 107, 108, 109, 110, 111, 112, 113, 193, 268, 85, - /* 1230 */ 101, 193, 309, 309, 240, 19, 313, 313, 94, 208, - /* 1240 */ 209, 193, 239, 240, 193, 66, 252, 19, 268, 244, - /* 1250 */ 216, 217, 193, 74, 213, 252, 161, 19, 263, 254, + /* 1170 */ 57, 284, 193, 208, 209, 102, 103, 104, 105, 106, + /* 1180 */ 107, 108, 109, 110, 111, 112, 113, 286, 59, 193, + /* 1190 */ 232, 117, 291, 193, 193, 102, 103, 104, 105, 106, + /* 1200 */ 107, 108, 109, 110, 111, 112, 113, 193, 204, 22, + /* 1210 */ 23, 193, 25, 66, 193, 102, 103, 104, 105, 106, + /* 1220 */ 107, 108, 109, 110, 111, 112, 113, 193, 193, 193, + /* 1230 */ 216, 217, 85, 193, 238, 19, 16, 216, 217, 238, + /* 1240 */ 193, 94, 193, 239, 240, 231, 117, 268, 35, 116, + /* 1250 */ 216, 217, 216, 217, 22, 23, 252, 25, 208, 209, /* 1260 */ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - /* 1270 */ 54, 55, 56, 57, 193, 216, 217, 5, 59, 193, - /* 1280 */ 19, 244, 10, 11, 12, 13, 14, 101, 309, 17, - /* 1290 */ 146, 254, 313, 193, 193, 76, 115, 216, 217, 309, - /* 1300 */ 12, 263, 30, 313, 32, 46, 87, 46, 89, 130, - /* 1310 */ 193, 92, 40, 22, 263, 27, 216, 217, 102, 103, + /* 1270 */ 54, 55, 56, 57, 193, 193, 19, 5, 59, 66, + /* 1280 */ 193, 263, 10, 11, 12, 13, 14, 74, 101, 17, + /* 1290 */ 193, 46, 193, 146, 193, 76, 213, 77, 263, 79, + /* 1300 */ 12, 260, 30, 46, 32, 264, 87, 193, 89, 29, + /* 1310 */ 263, 92, 40, 33, 232, 27, 193, 108, 102, 103, /* 1320 */ 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - /* 1330 */ 42, 150, 291, 216, 217, 116, 117, 118, 19, 20, - /* 1340 */ 193, 22, 70, 260, 116, 193, 24, 264, 193, 263, - /* 1350 */ 78, 63, 61, 81, 116, 36, 193, 260, 193, 29, - /* 1360 */ 193, 264, 193, 33, 145, 193, 59, 48, 216, 217, - /* 1370 */ 98, 216, 217, 193, 115, 193, 115, 193, 59, 216, - /* 1380 */ 217, 216, 217, 216, 217, 216, 217, 255, 216, 217, - /* 1390 */ 71, 193, 131, 193, 25, 65, 216, 217, 216, 217, - /* 1400 */ 216, 217, 208, 209, 85, 133, 193, 100, 193, 90, - /* 1410 */ 138, 139, 138, 139, 216, 217, 216, 217, 193, 100, - /* 1420 */ 193, 108, 135, 116, 117, 106, 107, 140, 121, 216, - /* 1430 */ 217, 216, 217, 114, 162, 116, 117, 118, 299, 300, - /* 1440 */ 121, 216, 217, 216, 217, 193, 244, 193, 135, 244, - /* 1450 */ 193, 256, 257, 140, 244, 193, 254, 193, 193, 254, - /* 1460 */ 153, 154, 155, 141, 254, 149, 150, 258, 216, 217, + /* 1330 */ 42, 138, 139, 101, 193, 116, 117, 118, 19, 20, + /* 1340 */ 255, 22, 70, 130, 135, 65, 256, 257, 193, 140, + /* 1350 */ 78, 63, 193, 81, 193, 36, 193, 216, 217, 193, + /* 1360 */ 115, 193, 263, 193, 145, 268, 59, 48, 193, 193, + /* 1370 */ 98, 193, 115, 193, 291, 216, 217, 193, 59, 216, + /* 1380 */ 217, 161, 216, 217, 216, 217, 216, 217, 131, 193, + /* 1390 */ 71, 193, 216, 217, 216, 217, 216, 217, 193, 260, + /* 1400 */ 216, 217, 19, 264, 85, 133, 244, 100, 193, 90, + /* 1410 */ 138, 139, 216, 217, 216, 217, 254, 244, 193, 100, + /* 1420 */ 193, 216, 217, 116, 117, 106, 107, 254, 121, 193, + /* 1430 */ 115, 216, 217, 114, 162, 116, 117, 118, 115, 244, + /* 1440 */ 121, 216, 217, 216, 217, 193, 309, 193, 31, 254, + /* 1450 */ 313, 309, 216, 217, 309, 313, 39, 193, 313, 309, + /* 1460 */ 153, 154, 155, 313, 193, 150, 25, 144, 216, 217, /* 1470 */ 216, 217, 153, 154, 155, 156, 157, 0, 1, 2, - /* 1480 */ 216, 217, 5, 115, 158, 193, 160, 10, 11, 12, - /* 1490 */ 13, 14, 193, 59, 17, 126, 193, 19, 20, 129, - /* 1500 */ 22, 193, 22, 22, 24, 193, 23, 30, 25, 32, - /* 1510 */ 19, 20, 144, 22, 36, 216, 217, 40, 193, 216, - /* 1520 */ 217, 193, 152, 129, 216, 217, 193, 36, 216, 217, - /* 1530 */ 193, 99, 193, 193, 53, 193, 193, 59, 23, 193, - /* 1540 */ 25, 216, 217, 193, 216, 217, 152, 70, 59, 71, - /* 1550 */ 59, 117, 193, 216, 217, 78, 216, 217, 81, 216, - /* 1560 */ 217, 318, 71, 85, 193, 133, 193, 193, 90, 23, - /* 1570 */ 23, 25, 25, 120, 121, 98, 85, 193, 100, 193, - /* 1580 */ 23, 90, 25, 121, 106, 107, 19, 216, 217, 216, + /* 1480 */ 216, 217, 5, 149, 150, 22, 193, 10, 11, 12, + /* 1490 */ 13, 14, 193, 158, 17, 160, 193, 19, 20, 116, + /* 1500 */ 22, 25, 193, 24, 22, 193, 24, 30, 226, 32, + /* 1510 */ 19, 20, 226, 22, 36, 193, 53, 40, 193, 216, + /* 1520 */ 217, 193, 23, 193, 25, 216, 217, 36, 216, 217, + /* 1530 */ 193, 99, 193, 193, 22, 193, 193, 59, 216, 217, + /* 1540 */ 193, 216, 217, 193, 216, 217, 193, 70, 129, 71, + /* 1550 */ 59, 129, 193, 216, 217, 78, 216, 217, 81, 216, + /* 1560 */ 217, 193, 71, 85, 193, 133, 193, 126, 90, 216, + /* 1570 */ 217, 152, 258, 61, 152, 98, 85, 193, 100, 193, + /* 1580 */ 23, 90, 25, 121, 106, 107, 23, 216, 217, 216, /* 1590 */ 217, 100, 114, 131, 116, 117, 118, 106, 107, 121, - /* 1600 */ 216, 217, 216, 217, 193, 114, 117, 116, 117, 118, - /* 1610 */ 133, 193, 121, 193, 193, 138, 139, 193, 23, 193, - /* 1620 */ 25, 23, 23, 25, 25, 7, 8, 216, 217, 193, - /* 1630 */ 193, 153, 154, 155, 156, 157, 216, 217, 193, 162, + /* 1600 */ 216, 217, 216, 217, 193, 114, 193, 116, 117, 118, + /* 1610 */ 133, 22, 121, 193, 59, 138, 139, 193, 142, 193, + /* 1620 */ 141, 23, 23, 25, 25, 120, 121, 216, 217, 216, + /* 1630 */ 217, 153, 154, 155, 156, 157, 216, 217, 19, 162, /* 1640 */ 216, 217, 216, 217, 153, 154, 155, 156, 157, 1, - /* 1650 */ 2, 193, 193, 5, 19, 20, 59, 22, 10, 11, - /* 1660 */ 12, 13, 14, 193, 97, 17, 193, 23, 193, 25, - /* 1670 */ 288, 36, 193, 242, 216, 217, 236, 23, 30, 25, + /* 1650 */ 2, 193, 59, 5, 19, 20, 318, 22, 10, 11, + /* 1660 */ 12, 13, 14, 193, 59, 17, 193, 23, 23, 25, + /* 1670 */ 25, 36, 117, 193, 216, 217, 193, 23, 30, 25, /* 1680 */ 32, 19, 20, 23, 22, 25, 216, 217, 40, 216, - /* 1690 */ 217, 216, 217, 193, 59, 216, 217, 193, 36, 83, - /* 1700 */ 84, 153, 153, 155, 155, 23, 71, 25, 23, 193, - /* 1710 */ 25, 193, 193, 193, 117, 193, 193, 193, 70, 193, - /* 1720 */ 193, 59, 193, 255, 255, 287, 78, 255, 243, 81, - /* 1730 */ 191, 255, 297, 71, 271, 100, 293, 245, 267, 214, - /* 1740 */ 246, 106, 107, 108, 246, 271, 98, 245, 293, 114, - /* 1750 */ 220, 116, 117, 118, 267, 271, 121, 271, 225, 219, - /* 1760 */ 229, 219, 100, 219, 259, 259, 259, 259, 106, 107, - /* 1770 */ 249, 196, 60, 280, 141, 243, 114, 249, 116, 117, - /* 1780 */ 118, 133, 245, 121, 200, 297, 138, 139, 153, 154, - /* 1790 */ 155, 156, 157, 297, 200, 38, 19, 20, 151, 22, - /* 1800 */ 200, 150, 140, 294, 294, 22, 272, 43, 234, 18, - /* 1810 */ 162, 270, 200, 36, 237, 153, 154, 155, 156, 157, - /* 1820 */ 237, 283, 237, 237, 18, 199, 149, 246, 272, 270, - /* 1830 */ 272, 200, 158, 246, 246, 234, 59, 234, 246, 199, - /* 1840 */ 290, 62, 289, 200, 199, 22, 221, 115, 71, 200, - /* 1850 */ 200, 199, 199, 221, 218, 218, 19, 20, 64, 22, - /* 1860 */ 218, 227, 22, 224, 126, 224, 165, 221, 24, 305, - /* 1870 */ 200, 113, 312, 36, 218, 220, 218, 100, 282, 218, - /* 1880 */ 91, 218, 317, 106, 107, 221, 227, 282, 317, 82, - /* 1890 */ 148, 114, 265, 116, 117, 118, 59, 145, 121, 22, - /* 1900 */ 277, 158, 200, 265, 25, 202, 147, 250, 71, 279, - /* 1910 */ 13, 146, 194, 194, 249, 248, 250, 140, 247, 246, - /* 1920 */ 6, 192, 192, 192, 303, 303, 213, 207, 300, 213, - /* 1930 */ 153, 154, 155, 156, 157, 213, 213, 100, 213, 222, - /* 1940 */ 207, 214, 214, 106, 107, 4, 222, 207, 3, 22, - /* 1950 */ 163, 114, 15, 116, 117, 118, 16, 23, 121, 23, - /* 1960 */ 139, 151, 130, 25, 142, 16, 24, 20, 144, 1, - /* 1970 */ 142, 130, 130, 61, 53, 53, 37, 151, 53, 53, - /* 1980 */ 130, 116, 34, 1, 141, 5, 22, 115, 161, 141, - /* 1990 */ 153, 154, 155, 156, 157, 25, 68, 68, 75, 41, - /* 2000 */ 115, 24, 131, 20, 19, 125, 22, 96, 22, 22, - /* 2010 */ 67, 23, 22, 67, 59, 24, 22, 28, 67, 23, - /* 2020 */ 22, 22, 149, 23, 23, 23, 116, 23, 25, 37, - /* 2030 */ 97, 141, 23, 23, 22, 143, 25, 75, 88, 34, - /* 2040 */ 34, 34, 34, 86, 75, 93, 23, 34, 22, 34, - /* 2050 */ 25, 24, 34, 25, 23, 142, 23, 142, 44, 23, - /* 2060 */ 23, 23, 11, 23, 25, 22, 22, 22, 15, 23, - /* 2070 */ 23, 22, 22, 25, 1, 1, 141, 25, 23, 135, - /* 2080 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2090 */ 319, 319, 319, 319, 141, 141, 319, 319, 319, 319, + /* 1690 */ 217, 7, 8, 23, 59, 25, 83, 84, 36, 23, + /* 1700 */ 193, 25, 23, 23, 25, 25, 71, 153, 145, 155, + /* 1710 */ 117, 153, 23, 155, 25, 23, 97, 25, 70, 193, + /* 1720 */ 193, 59, 117, 236, 193, 193, 78, 193, 193, 81, + /* 1730 */ 141, 193, 193, 71, 193, 100, 288, 287, 242, 255, + /* 1740 */ 255, 106, 107, 108, 255, 255, 98, 243, 297, 114, + /* 1750 */ 214, 116, 117, 118, 245, 191, 121, 271, 293, 267, + /* 1760 */ 267, 246, 100, 246, 245, 271, 271, 293, 106, 107, + /* 1770 */ 220, 271, 229, 225, 249, 219, 114, 259, 116, 117, + /* 1780 */ 118, 133, 259, 121, 219, 219, 138, 139, 153, 154, + /* 1790 */ 155, 156, 157, 280, 249, 243, 19, 20, 245, 22, + /* 1800 */ 196, 259, 140, 259, 60, 297, 141, 297, 200, 200, + /* 1810 */ 162, 38, 200, 36, 294, 153, 154, 155, 156, 157, + /* 1820 */ 151, 150, 294, 283, 22, 43, 234, 18, 237, 200, + /* 1830 */ 270, 272, 237, 237, 237, 18, 59, 199, 270, 149, + /* 1840 */ 246, 272, 272, 200, 234, 234, 246, 246, 71, 246, + /* 1850 */ 199, 158, 290, 62, 22, 200, 19, 20, 199, 22, + /* 1860 */ 289, 221, 221, 200, 200, 199, 199, 115, 218, 64, + /* 1870 */ 218, 218, 22, 36, 227, 126, 227, 100, 165, 221, + /* 1880 */ 224, 224, 24, 106, 107, 312, 218, 305, 113, 282, + /* 1890 */ 91, 114, 220, 116, 117, 118, 59, 282, 121, 218, + /* 1900 */ 218, 218, 200, 317, 317, 82, 221, 265, 71, 148, + /* 1910 */ 145, 265, 22, 277, 200, 158, 279, 140, 147, 25, + /* 1920 */ 146, 202, 248, 250, 249, 247, 13, 250, 194, 194, + /* 1930 */ 153, 154, 155, 156, 157, 6, 303, 100, 192, 192, + /* 1940 */ 246, 213, 192, 106, 107, 207, 213, 207, 222, 213, + /* 1950 */ 213, 114, 222, 116, 117, 118, 214, 214, 121, 4, + /* 1960 */ 207, 213, 3, 22, 303, 15, 163, 16, 23, 23, + /* 1970 */ 139, 151, 130, 25, 20, 142, 24, 16, 144, 1, + /* 1980 */ 142, 130, 130, 61, 37, 53, 300, 151, 53, 53, + /* 1990 */ 153, 154, 155, 156, 157, 53, 130, 116, 34, 1, + /* 2000 */ 141, 5, 22, 115, 161, 68, 25, 68, 75, 41, + /* 2010 */ 141, 115, 24, 20, 19, 131, 125, 23, 28, 22, + /* 2020 */ 67, 22, 22, 22, 67, 59, 24, 96, 22, 67, + /* 2030 */ 23, 149, 22, 25, 23, 23, 23, 22, 34, 141, + /* 2040 */ 37, 97, 23, 23, 116, 22, 143, 25, 34, 75, + /* 2050 */ 34, 34, 34, 88, 75, 34, 86, 23, 22, 34, + /* 2060 */ 93, 24, 34, 25, 25, 142, 142, 23, 44, 23, + /* 2070 */ 23, 23, 23, 11, 23, 25, 22, 22, 22, 141, + /* 2080 */ 23, 23, 22, 22, 25, 15, 1, 23, 25, 1, + /* 2090 */ 141, 135, 319, 319, 319, 319, 319, 319, 319, 141, /* 2100 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, /* 2110 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, /* 2120 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, @@ -170253,176 +171938,177 @@ static const YYCODETYPE yy_lookahead[] = { /* 2250 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, /* 2260 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, /* 2270 */ 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, - /* 2280 */ 319, + /* 2280 */ 319, 319, 319, 319, 319, }; -#define YY_SHIFT_COUNT (574) +#define YY_SHIFT_COUNT (578) #define YY_SHIFT_MIN (0) -#define YY_SHIFT_MAX (2074) +#define YY_SHIFT_MAX (2088) static const unsigned short int yy_shift_ofst[] = { /* 0 */ 1648, 1477, 1272, 322, 322, 1, 1319, 1478, 1491, 1837, /* 10 */ 1837, 1837, 471, 0, 0, 214, 1093, 1837, 1837, 1837, /* 20 */ 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, - /* 30 */ 271, 271, 1219, 1219, 216, 88, 1, 1, 1, 1, - /* 40 */ 1, 40, 111, 258, 361, 469, 512, 583, 622, 693, - /* 50 */ 732, 803, 842, 913, 1073, 1093, 1093, 1093, 1093, 1093, + /* 30 */ 1837, 271, 271, 1219, 1219, 216, 88, 1, 1, 1, + /* 40 */ 1, 1, 40, 111, 258, 361, 469, 512, 583, 622, + /* 50 */ 693, 732, 803, 842, 913, 1073, 1093, 1093, 1093, 1093, /* 60 */ 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, 1093, - /* 70 */ 1093, 1093, 1093, 1113, 1093, 1216, 957, 957, 1635, 1662, - /* 80 */ 1777, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, + /* 70 */ 1093, 1093, 1093, 1093, 1113, 1093, 1216, 957, 957, 1635, + /* 80 */ 1662, 1777, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, /* 90 */ 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, /* 100 */ 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, /* 110 */ 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, /* 120 */ 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, 1837, - /* 130 */ 137, 181, 181, 181, 181, 181, 181, 181, 94, 430, - /* 140 */ 66, 65, 112, 366, 533, 533, 740, 1261, 533, 533, - /* 150 */ 79, 79, 533, 412, 412, 412, 77, 412, 123, 113, - /* 160 */ 113, 22, 22, 2096, 2096, 328, 328, 328, 239, 468, - /* 170 */ 468, 468, 468, 1015, 1015, 409, 366, 1129, 1186, 533, - /* 180 */ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, - /* 190 */ 533, 533, 533, 533, 533, 533, 533, 533, 533, 969, - /* 200 */ 621, 621, 533, 642, 788, 788, 1228, 1228, 822, 822, - /* 210 */ 67, 1274, 2096, 2096, 2096, 2096, 2096, 2096, 2096, 1307, - /* 220 */ 954, 954, 585, 472, 640, 387, 695, 538, 541, 700, - /* 230 */ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, - /* 240 */ 222, 533, 533, 533, 533, 533, 533, 533, 533, 533, - /* 250 */ 533, 533, 533, 1179, 1179, 1179, 533, 533, 533, 565, - /* 260 */ 533, 533, 533, 916, 1144, 533, 533, 1288, 533, 533, - /* 270 */ 533, 533, 533, 533, 533, 533, 639, 1330, 209, 1076, - /* 280 */ 1076, 1076, 1076, 580, 209, 209, 1313, 768, 917, 649, - /* 290 */ 1181, 1316, 405, 1316, 1238, 249, 1181, 1181, 249, 1181, - /* 300 */ 405, 1238, 1369, 464, 1259, 1012, 1012, 1012, 1368, 1368, - /* 310 */ 1368, 1368, 184, 184, 1326, 904, 1287, 1480, 1712, 1712, - /* 320 */ 1633, 1633, 1757, 1757, 1633, 1647, 1651, 1783, 1764, 1791, - /* 330 */ 1791, 1791, 1791, 1633, 1806, 1677, 1651, 1651, 1677, 1783, - /* 340 */ 1764, 1677, 1764, 1677, 1633, 1806, 1674, 1779, 1633, 1806, - /* 350 */ 1823, 1633, 1806, 1633, 1806, 1823, 1732, 1732, 1732, 1794, - /* 360 */ 1840, 1840, 1823, 1732, 1738, 1732, 1794, 1732, 1732, 1701, - /* 370 */ 1844, 1758, 1758, 1823, 1633, 1789, 1789, 1807, 1807, 1742, - /* 380 */ 1752, 1877, 1633, 1743, 1742, 1759, 1765, 1677, 1879, 1897, - /* 390 */ 1897, 1914, 1914, 1914, 2096, 2096, 2096, 2096, 2096, 2096, - /* 400 */ 2096, 2096, 2096, 2096, 2096, 2096, 2096, 2096, 2096, 207, - /* 410 */ 1095, 331, 620, 903, 806, 1074, 1483, 1432, 1481, 1322, - /* 420 */ 1370, 1394, 1515, 1291, 1546, 1547, 1557, 1595, 1598, 1599, - /* 430 */ 1434, 1453, 1618, 1462, 1567, 1489, 1644, 1654, 1616, 1660, - /* 440 */ 1548, 1549, 1682, 1685, 1597, 742, 1941, 1945, 1927, 1787, - /* 450 */ 1937, 1940, 1934, 1936, 1821, 1810, 1832, 1938, 1938, 1942, - /* 460 */ 1822, 1947, 1824, 1949, 1968, 1828, 1841, 1938, 1842, 1912, - /* 470 */ 1939, 1938, 1826, 1921, 1922, 1925, 1926, 1850, 1865, 1948, - /* 480 */ 1843, 1982, 1980, 1964, 1872, 1827, 1928, 1970, 1929, 1923, - /* 490 */ 1958, 1848, 1885, 1977, 1983, 1985, 1871, 1880, 1984, 1943, - /* 500 */ 1986, 1987, 1988, 1990, 1946, 1955, 1991, 1911, 1989, 1994, - /* 510 */ 1951, 1992, 1996, 1873, 1998, 2000, 2001, 2002, 2003, 2004, - /* 520 */ 1999, 1933, 1890, 2009, 2010, 1910, 2005, 2012, 1892, 2011, - /* 530 */ 2006, 2007, 2008, 2013, 1950, 1962, 1957, 2014, 1969, 1952, - /* 540 */ 2015, 2023, 2026, 2027, 2025, 2028, 2018, 1913, 1915, 2031, - /* 550 */ 2011, 2033, 2036, 2037, 2038, 2039, 2040, 2043, 2051, 2044, - /* 560 */ 2045, 2046, 2047, 2049, 2050, 2048, 1944, 1935, 1953, 1954, - /* 570 */ 2052, 2055, 2053, 2073, 2074, + /* 130 */ 1837, 137, 181, 181, 181, 181, 181, 181, 181, 94, + /* 140 */ 430, 66, 65, 112, 366, 533, 533, 740, 1257, 533, + /* 150 */ 533, 79, 79, 533, 412, 412, 412, 77, 412, 123, + /* 160 */ 113, 113, 113, 22, 22, 2100, 2100, 328, 328, 328, + /* 170 */ 239, 468, 468, 468, 468, 1015, 1015, 409, 366, 1187, + /* 180 */ 1232, 533, 533, 533, 533, 533, 533, 533, 533, 533, + /* 190 */ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, + /* 200 */ 533, 969, 621, 621, 533, 642, 788, 788, 1133, 1133, + /* 210 */ 822, 822, 67, 1193, 2100, 2100, 2100, 2100, 2100, 2100, + /* 220 */ 2100, 1307, 954, 954, 585, 472, 640, 387, 695, 538, + /* 230 */ 541, 700, 533, 533, 533, 533, 533, 533, 533, 533, + /* 240 */ 533, 533, 222, 533, 533, 533, 533, 533, 533, 533, + /* 250 */ 533, 533, 533, 533, 533, 1213, 1213, 1213, 533, 533, + /* 260 */ 533, 565, 533, 533, 533, 916, 1147, 533, 533, 1288, + /* 270 */ 533, 533, 533, 533, 533, 533, 533, 533, 639, 1280, + /* 280 */ 209, 1129, 1129, 1129, 1129, 580, 209, 209, 1209, 768, + /* 290 */ 917, 649, 1315, 1334, 405, 1334, 1383, 249, 1315, 1315, + /* 300 */ 249, 1315, 405, 1383, 1441, 464, 1245, 1417, 1417, 1417, + /* 310 */ 1323, 1323, 1323, 1323, 184, 184, 1335, 1476, 856, 1482, + /* 320 */ 1744, 1744, 1665, 1665, 1773, 1773, 1665, 1669, 1671, 1802, + /* 330 */ 1782, 1809, 1809, 1809, 1809, 1665, 1817, 1690, 1671, 1671, + /* 340 */ 1690, 1802, 1782, 1690, 1782, 1690, 1665, 1817, 1693, 1791, + /* 350 */ 1665, 1817, 1832, 1665, 1817, 1665, 1817, 1832, 1752, 1752, + /* 360 */ 1752, 1805, 1850, 1850, 1832, 1752, 1749, 1752, 1805, 1752, + /* 370 */ 1752, 1713, 1858, 1775, 1775, 1832, 1665, 1799, 1799, 1823, + /* 380 */ 1823, 1761, 1765, 1890, 1665, 1757, 1761, 1771, 1774, 1690, + /* 390 */ 1894, 1913, 1913, 1929, 1929, 1929, 2100, 2100, 2100, 2100, + /* 400 */ 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100, 2100, + /* 410 */ 2100, 207, 1220, 331, 620, 967, 806, 1074, 1499, 1432, + /* 420 */ 1463, 1479, 1419, 1422, 1557, 1512, 1598, 1599, 1644, 1645, + /* 430 */ 1654, 1660, 1555, 1505, 1684, 1462, 1670, 1563, 1619, 1593, + /* 440 */ 1676, 1679, 1613, 1680, 1554, 1558, 1689, 1692, 1605, 1589, + /* 450 */ 1955, 1959, 1941, 1803, 1950, 1951, 1945, 1946, 1831, 1820, + /* 460 */ 1842, 1948, 1948, 1952, 1833, 1954, 1834, 1961, 1978, 1838, + /* 470 */ 1851, 1948, 1852, 1922, 1947, 1948, 1836, 1932, 1935, 1936, + /* 480 */ 1942, 1866, 1881, 1964, 1859, 1998, 1996, 1980, 1888, 1843, + /* 490 */ 1937, 1981, 1939, 1933, 1968, 1869, 1896, 1988, 1993, 1995, + /* 500 */ 1884, 1891, 1997, 1953, 1999, 2000, 1994, 2001, 1957, 1966, + /* 510 */ 2002, 1931, 1990, 2006, 1962, 2003, 2007, 2004, 1882, 2010, + /* 520 */ 2011, 2012, 2008, 2013, 2015, 1944, 1898, 2019, 2020, 1928, + /* 530 */ 2014, 2023, 1903, 2022, 2016, 2017, 2018, 2021, 1965, 1974, + /* 540 */ 1970, 2024, 1979, 1967, 2025, 2034, 2036, 2037, 2038, 2039, + /* 550 */ 2028, 1923, 1924, 2044, 2022, 2046, 2047, 2048, 2049, 2050, + /* 560 */ 2051, 2054, 2062, 2055, 2056, 2057, 2058, 2060, 2061, 2059, + /* 570 */ 1956, 1938, 1949, 1958, 2063, 2064, 2070, 2085, 2088, }; -#define YY_REDUCE_COUNT (408) +#define YY_REDUCE_COUNT (410) #define YY_REDUCE_MIN (-271) -#define YY_REDUCE_MAX (1740) +#define YY_REDUCE_MAX (1753) static const short yy_reduce_ofst[] = { /* 0 */ -125, 733, 789, 241, 293, -123, -193, -191, -183, -187, /* 10 */ 166, 238, 133, -207, -199, -267, -176, -6, 204, 489, - /* 20 */ 576, -175, 598, 686, 615, 725, 860, 778, 781, 857, - /* 30 */ 616, 887, 87, 240, -192, 408, 626, 796, 843, 854, - /* 40 */ 1003, -271, -271, -271, -271, -271, -271, -271, -271, -271, + /* 20 */ 576, 598, -175, 686, 860, 615, 725, 1014, 778, 781, + /* 30 */ 857, 616, 887, 87, 240, -192, 408, 626, 796, 843, + /* 40 */ 854, 1004, -271, -271, -271, -271, -271, -271, -271, -271, /* 50 */ -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, /* 60 */ -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, - /* 70 */ -271, -271, -271, -271, -271, -271, -271, -271, 80, 83, - /* 80 */ 313, 886, 888, 996, 1034, 1059, 1081, 1100, 1117, 1152, - /* 90 */ 1155, 1163, 1165, 1167, 1169, 1172, 1180, 1182, 1184, 1198, - /* 100 */ 1200, 1213, 1215, 1225, 1227, 1252, 1254, 1264, 1299, 1303, - /* 110 */ 1308, 1312, 1325, 1328, 1337, 1340, 1343, 1371, 1373, 1384, - /* 120 */ 1386, 1411, 1420, 1424, 1426, 1458, 1470, 1473, 1475, 1479, - /* 130 */ -271, -271, -271, -271, -271, -271, -271, -271, -271, -271, - /* 140 */ -271, 138, 459, 396, -158, 470, 302, -212, 521, 201, - /* 150 */ -195, -92, 559, 630, 632, 630, -271, 632, 901, 63, - /* 160 */ 407, -271, -271, -271, -271, 161, 161, 161, 251, 335, - /* 170 */ 847, 960, 980, 537, 588, 618, 628, 688, 688, -166, - /* 180 */ -161, 674, 790, 794, 799, 851, 852, -122, 680, -120, - /* 190 */ 995, 1038, 415, 1051, 893, 798, 962, 400, 1086, 779, - /* 200 */ 923, 924, 263, 1041, 979, 990, 1083, 1097, 1031, 1194, - /* 210 */ 362, 994, 1139, 1005, 1037, 1202, 1205, 1195, 1210, -194, - /* 220 */ 56, 185, -135, 232, 522, 560, 601, 617, 669, 683, - /* 230 */ 711, 856, 908, 941, 1048, 1101, 1147, 1257, 1262, 1265, - /* 240 */ 392, 1292, 1333, 1339, 1342, 1346, 1350, 1359, 1374, 1418, - /* 250 */ 1421, 1436, 1437, 593, 755, 770, 997, 1445, 1459, 1209, - /* 260 */ 1500, 1504, 1516, 1132, 1243, 1518, 1519, 1440, 1520, 560, - /* 270 */ 1522, 1523, 1524, 1526, 1527, 1529, 1382, 1438, 1431, 1468, - /* 280 */ 1469, 1472, 1476, 1209, 1431, 1431, 1485, 1525, 1539, 1435, - /* 290 */ 1463, 1471, 1492, 1487, 1443, 1494, 1474, 1484, 1498, 1486, - /* 300 */ 1502, 1455, 1530, 1531, 1533, 1540, 1542, 1544, 1505, 1506, - /* 310 */ 1507, 1508, 1521, 1528, 1493, 1537, 1532, 1575, 1488, 1496, - /* 320 */ 1584, 1594, 1509, 1510, 1600, 1538, 1534, 1541, 1574, 1577, - /* 330 */ 1583, 1585, 1586, 1612, 1626, 1581, 1556, 1558, 1587, 1559, - /* 340 */ 1601, 1588, 1603, 1592, 1631, 1640, 1550, 1553, 1643, 1645, - /* 350 */ 1625, 1649, 1652, 1650, 1653, 1632, 1636, 1637, 1642, 1634, - /* 360 */ 1639, 1641, 1646, 1656, 1655, 1658, 1659, 1661, 1663, 1560, - /* 370 */ 1564, 1596, 1605, 1664, 1670, 1565, 1571, 1627, 1638, 1657, - /* 380 */ 1665, 1623, 1702, 1630, 1666, 1667, 1671, 1673, 1703, 1718, - /* 390 */ 1719, 1729, 1730, 1731, 1621, 1622, 1628, 1720, 1713, 1716, - /* 400 */ 1722, 1723, 1733, 1717, 1724, 1727, 1728, 1725, 1740, + /* 70 */ -271, -271, -271, -271, -271, -271, -271, -271, -271, 80, + /* 80 */ 83, 313, 886, 888, 918, 938, 1021, 1034, 1036, 1141, + /* 90 */ 1159, 1163, 1166, 1168, 1170, 1176, 1178, 1180, 1184, 1196, + /* 100 */ 1198, 1205, 1215, 1225, 1227, 1236, 1252, 1254, 1264, 1303, + /* 110 */ 1309, 1312, 1322, 1325, 1328, 1337, 1340, 1343, 1353, 1371, + /* 120 */ 1373, 1384, 1386, 1411, 1413, 1420, 1424, 1426, 1458, 1470, + /* 130 */ 1473, -271, -271, -271, -271, -271, -271, -271, -271, -271, + /* 140 */ -271, -271, 138, 459, 396, -158, 470, 302, -212, 521, + /* 150 */ 201, -195, -92, 559, 630, 632, 630, -271, 632, 901, + /* 160 */ 63, 407, 670, -271, -271, -271, -271, 161, 161, 161, + /* 170 */ 251, 335, 847, 979, 1097, 537, 588, 618, 628, 688, + /* 180 */ 688, -166, -161, 674, 787, 794, 799, 852, 996, -122, + /* 190 */ 837, -120, 1018, 1035, 415, 1047, 1001, 958, 1082, 400, + /* 200 */ 1099, 779, 1137, 1142, 263, 1083, 1145, 1150, 1041, 1139, + /* 210 */ 965, 1050, 362, 849, 752, 629, 675, 1162, 1173, 1090, + /* 220 */ 1195, -194, 56, 185, -135, 232, 522, 560, 571, 601, + /* 230 */ 617, 669, 683, 711, 850, 893, 1000, 1040, 1049, 1081, + /* 240 */ 1087, 1101, 392, 1114, 1123, 1155, 1161, 1175, 1271, 1293, + /* 250 */ 1299, 1330, 1339, 1342, 1347, 593, 1282, 1286, 1350, 1359, + /* 260 */ 1368, 1314, 1480, 1483, 1507, 1085, 1338, 1526, 1527, 1487, + /* 270 */ 1531, 560, 1532, 1534, 1535, 1538, 1539, 1541, 1448, 1450, + /* 280 */ 1496, 1484, 1485, 1489, 1490, 1314, 1496, 1496, 1504, 1536, + /* 290 */ 1564, 1451, 1486, 1492, 1509, 1493, 1465, 1515, 1494, 1495, + /* 300 */ 1517, 1500, 1519, 1474, 1550, 1543, 1548, 1556, 1565, 1566, + /* 310 */ 1518, 1523, 1542, 1544, 1525, 1545, 1513, 1553, 1552, 1604, + /* 320 */ 1508, 1510, 1608, 1609, 1520, 1528, 1612, 1540, 1559, 1560, + /* 330 */ 1592, 1591, 1595, 1596, 1597, 1629, 1638, 1594, 1569, 1570, + /* 340 */ 1600, 1568, 1610, 1601, 1611, 1603, 1643, 1651, 1562, 1571, + /* 350 */ 1655, 1659, 1640, 1663, 1666, 1664, 1667, 1641, 1650, 1652, + /* 360 */ 1653, 1647, 1656, 1657, 1658, 1668, 1672, 1681, 1649, 1682, + /* 370 */ 1683, 1573, 1582, 1607, 1615, 1685, 1702, 1586, 1587, 1642, + /* 380 */ 1646, 1673, 1675, 1636, 1714, 1637, 1677, 1674, 1678, 1694, + /* 390 */ 1719, 1734, 1735, 1746, 1747, 1750, 1633, 1661, 1686, 1738, + /* 400 */ 1728, 1733, 1736, 1737, 1740, 1726, 1730, 1742, 1743, 1748, + /* 410 */ 1753, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 1639, 1639, 1639, 1469, 1236, 1347, 1236, 1236, 1236, 1469, - /* 10 */ 1469, 1469, 1236, 1377, 1377, 1522, 1269, 1236, 1236, 1236, - /* 20 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1468, 1236, 1236, - /* 30 */ 1236, 1236, 1555, 1555, 1236, 1236, 1236, 1236, 1236, 1236, - /* 40 */ 1236, 1236, 1386, 1236, 1393, 1236, 1236, 1236, 1236, 1236, - /* 50 */ 1470, 1471, 1236, 1236, 1236, 1521, 1523, 1486, 1400, 1399, - /* 60 */ 1398, 1397, 1504, 1365, 1391, 1384, 1388, 1465, 1466, 1464, - /* 70 */ 1617, 1471, 1470, 1236, 1387, 1433, 1449, 1432, 1236, 1236, - /* 80 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, - /* 90 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, - /* 100 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, - /* 110 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, - /* 120 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, - /* 130 */ 1441, 1448, 1447, 1446, 1455, 1445, 1442, 1435, 1434, 1436, - /* 140 */ 1437, 1236, 1236, 1260, 1236, 1236, 1257, 1311, 1236, 1236, - /* 150 */ 1236, 1236, 1236, 1541, 1540, 1236, 1438, 1236, 1269, 1427, - /* 160 */ 1426, 1452, 1439, 1451, 1450, 1529, 1591, 1590, 1487, 1236, - /* 170 */ 1236, 1236, 1236, 1236, 1236, 1555, 1236, 1236, 1236, 1236, - /* 180 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, - /* 190 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1367, - /* 200 */ 1555, 1555, 1236, 1269, 1555, 1555, 1368, 1368, 1265, 1265, - /* 210 */ 1371, 1236, 1536, 1338, 1338, 1338, 1338, 1347, 1338, 1236, - /* 220 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, - /* 230 */ 1236, 1236, 1236, 1236, 1526, 1524, 1236, 1236, 1236, 1236, - /* 240 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, - /* 250 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, - /* 260 */ 1236, 1236, 1236, 1343, 1236, 1236, 1236, 1236, 1236, 1236, - /* 270 */ 1236, 1236, 1236, 1236, 1236, 1584, 1236, 1499, 1325, 1343, - /* 280 */ 1343, 1343, 1343, 1345, 1326, 1324, 1337, 1270, 1243, 1631, - /* 290 */ 1403, 1392, 1344, 1392, 1628, 1390, 1403, 1403, 1390, 1403, - /* 300 */ 1344, 1628, 1286, 1606, 1281, 1377, 1377, 1377, 1367, 1367, - /* 310 */ 1367, 1367, 1371, 1371, 1467, 1344, 1337, 1236, 1631, 1631, - /* 320 */ 1353, 1353, 1630, 1630, 1353, 1487, 1614, 1412, 1314, 1320, - /* 330 */ 1320, 1320, 1320, 1353, 1254, 1390, 1614, 1614, 1390, 1412, - /* 340 */ 1314, 1390, 1314, 1390, 1353, 1254, 1503, 1625, 1353, 1254, - /* 350 */ 1477, 1353, 1254, 1353, 1254, 1477, 1312, 1312, 1312, 1301, - /* 360 */ 1236, 1236, 1477, 1312, 1286, 1312, 1301, 1312, 1312, 1573, - /* 370 */ 1236, 1481, 1481, 1477, 1353, 1565, 1565, 1380, 1380, 1385, - /* 380 */ 1371, 1472, 1353, 1236, 1385, 1383, 1381, 1390, 1304, 1587, - /* 390 */ 1587, 1583, 1583, 1583, 1636, 1636, 1536, 1599, 1269, 1269, - /* 400 */ 1269, 1269, 1599, 1288, 1288, 1270, 1270, 1269, 1599, 1236, - /* 410 */ 1236, 1236, 1236, 1236, 1236, 1594, 1236, 1531, 1488, 1357, - /* 420 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, - /* 430 */ 1236, 1236, 1236, 1236, 1542, 1236, 1236, 1236, 1236, 1236, - /* 440 */ 1236, 1236, 1236, 1236, 1236, 1417, 1236, 1239, 1533, 1236, - /* 450 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1394, 1395, 1358, - /* 460 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1409, 1236, 1236, - /* 470 */ 1236, 1404, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, - /* 480 */ 1627, 1236, 1236, 1236, 1236, 1236, 1236, 1502, 1501, 1236, - /* 490 */ 1236, 1355, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, - /* 500 */ 1236, 1236, 1236, 1236, 1236, 1284, 1236, 1236, 1236, 1236, - /* 510 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, - /* 520 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1382, - /* 530 */ 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, - /* 540 */ 1236, 1236, 1236, 1236, 1570, 1372, 1236, 1236, 1236, 1236, - /* 550 */ 1618, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, 1236, - /* 560 */ 1236, 1236, 1236, 1236, 1236, 1610, 1328, 1418, 1236, 1421, - /* 570 */ 1258, 1236, 1248, 1236, 1236, + /* 0 */ 1648, 1648, 1648, 1478, 1243, 1354, 1243, 1243, 1243, 1478, + /* 10 */ 1478, 1478, 1243, 1384, 1384, 1531, 1276, 1243, 1243, 1243, + /* 20 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1477, 1243, + /* 30 */ 1243, 1243, 1243, 1564, 1564, 1243, 1243, 1243, 1243, 1243, + /* 40 */ 1243, 1243, 1243, 1393, 1243, 1400, 1243, 1243, 1243, 1243, + /* 50 */ 1243, 1479, 1480, 1243, 1243, 1243, 1530, 1532, 1495, 1407, + /* 60 */ 1406, 1405, 1404, 1513, 1372, 1398, 1391, 1395, 1474, 1475, + /* 70 */ 1473, 1626, 1480, 1479, 1243, 1394, 1442, 1458, 1441, 1243, + /* 80 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, + /* 90 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, + /* 100 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, + /* 110 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, + /* 120 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, + /* 130 */ 1243, 1450, 1457, 1456, 1455, 1464, 1454, 1451, 1444, 1443, + /* 140 */ 1445, 1446, 1243, 1243, 1267, 1243, 1243, 1264, 1318, 1243, + /* 150 */ 1243, 1243, 1243, 1243, 1550, 1549, 1243, 1447, 1243, 1276, + /* 160 */ 1435, 1434, 1433, 1461, 1448, 1460, 1459, 1538, 1600, 1599, + /* 170 */ 1496, 1243, 1243, 1243, 1243, 1243, 1243, 1564, 1243, 1243, + /* 180 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, + /* 190 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, + /* 200 */ 1243, 1374, 1564, 1564, 1243, 1276, 1564, 1564, 1375, 1375, + /* 210 */ 1272, 1272, 1378, 1243, 1545, 1345, 1345, 1345, 1345, 1354, + /* 220 */ 1345, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, + /* 230 */ 1243, 1243, 1243, 1243, 1243, 1243, 1535, 1533, 1243, 1243, + /* 240 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, + /* 250 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, + /* 260 */ 1243, 1243, 1243, 1243, 1243, 1350, 1243, 1243, 1243, 1243, + /* 270 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1593, 1243, 1508, + /* 280 */ 1332, 1350, 1350, 1350, 1350, 1352, 1333, 1331, 1344, 1277, + /* 290 */ 1250, 1640, 1410, 1399, 1351, 1399, 1637, 1397, 1410, 1410, + /* 300 */ 1397, 1410, 1351, 1637, 1293, 1615, 1288, 1384, 1384, 1384, + /* 310 */ 1374, 1374, 1374, 1374, 1378, 1378, 1476, 1351, 1344, 1243, + /* 320 */ 1640, 1640, 1360, 1360, 1639, 1639, 1360, 1496, 1623, 1419, + /* 330 */ 1321, 1327, 1327, 1327, 1327, 1360, 1261, 1397, 1623, 1623, + /* 340 */ 1397, 1419, 1321, 1397, 1321, 1397, 1360, 1261, 1512, 1634, + /* 350 */ 1360, 1261, 1486, 1360, 1261, 1360, 1261, 1486, 1319, 1319, + /* 360 */ 1319, 1308, 1243, 1243, 1486, 1319, 1293, 1319, 1308, 1319, + /* 370 */ 1319, 1582, 1243, 1490, 1490, 1486, 1360, 1574, 1574, 1387, + /* 380 */ 1387, 1392, 1378, 1481, 1360, 1243, 1392, 1390, 1388, 1397, + /* 390 */ 1311, 1596, 1596, 1592, 1592, 1592, 1645, 1645, 1545, 1608, + /* 400 */ 1276, 1276, 1276, 1276, 1608, 1295, 1295, 1277, 1277, 1276, + /* 410 */ 1608, 1243, 1243, 1243, 1243, 1243, 1243, 1603, 1243, 1540, + /* 420 */ 1497, 1364, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, + /* 430 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1551, 1243, + /* 440 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1424, + /* 450 */ 1243, 1246, 1542, 1243, 1243, 1243, 1243, 1243, 1243, 1243, + /* 460 */ 1243, 1401, 1402, 1365, 1243, 1243, 1243, 1243, 1243, 1243, + /* 470 */ 1243, 1416, 1243, 1243, 1243, 1411, 1243, 1243, 1243, 1243, + /* 480 */ 1243, 1243, 1243, 1243, 1636, 1243, 1243, 1243, 1243, 1243, + /* 490 */ 1243, 1511, 1510, 1243, 1243, 1362, 1243, 1243, 1243, 1243, + /* 500 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1291, + /* 510 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, + /* 520 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, + /* 530 */ 1243, 1243, 1243, 1389, 1243, 1243, 1243, 1243, 1243, 1243, + /* 540 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1579, 1379, + /* 550 */ 1243, 1243, 1243, 1243, 1627, 1243, 1243, 1243, 1243, 1243, + /* 560 */ 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1619, + /* 570 */ 1335, 1425, 1243, 1428, 1265, 1243, 1255, 1243, 1243, }; /********** End of lemon-generated parsing tables *****************************/ @@ -171229,221 +172915,223 @@ static const char *const yyRuleName[] = { /* 185 */ "expr ::= expr COLLATE ID|STRING", /* 186 */ "expr ::= CAST LP expr AS typetoken RP", /* 187 */ "expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP", - /* 188 */ "expr ::= ID|INDEXED|JOIN_KW LP STAR RP", - /* 189 */ "expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over", - /* 190 */ "expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over", - /* 191 */ "term ::= CTIME_KW", - /* 192 */ "expr ::= LP nexprlist COMMA expr RP", - /* 193 */ "expr ::= expr AND expr", - /* 194 */ "expr ::= expr OR expr", - /* 195 */ "expr ::= expr LT|GT|GE|LE expr", - /* 196 */ "expr ::= expr EQ|NE expr", - /* 197 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr", - /* 198 */ "expr ::= expr PLUS|MINUS expr", - /* 199 */ "expr ::= expr STAR|SLASH|REM expr", - /* 200 */ "expr ::= expr CONCAT expr", - /* 201 */ "likeop ::= NOT LIKE_KW|MATCH", - /* 202 */ "expr ::= expr likeop expr", - /* 203 */ "expr ::= expr likeop expr ESCAPE expr", - /* 204 */ "expr ::= expr ISNULL|NOTNULL", - /* 205 */ "expr ::= expr NOT NULL", - /* 206 */ "expr ::= expr IS expr", - /* 207 */ "expr ::= expr IS NOT expr", - /* 208 */ "expr ::= expr IS NOT DISTINCT FROM expr", - /* 209 */ "expr ::= expr IS DISTINCT FROM expr", - /* 210 */ "expr ::= NOT expr", - /* 211 */ "expr ::= BITNOT expr", - /* 212 */ "expr ::= PLUS|MINUS expr", - /* 213 */ "expr ::= expr PTR expr", - /* 214 */ "between_op ::= BETWEEN", - /* 215 */ "between_op ::= NOT BETWEEN", - /* 216 */ "expr ::= expr between_op expr AND expr", - /* 217 */ "in_op ::= IN", - /* 218 */ "in_op ::= NOT IN", - /* 219 */ "expr ::= expr in_op LP exprlist RP", - /* 220 */ "expr ::= LP select RP", - /* 221 */ "expr ::= expr in_op LP select RP", - /* 222 */ "expr ::= expr in_op nm dbnm paren_exprlist", - /* 223 */ "expr ::= EXISTS LP select RP", - /* 224 */ "expr ::= CASE case_operand case_exprlist case_else END", - /* 225 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", - /* 226 */ "case_exprlist ::= WHEN expr THEN expr", - /* 227 */ "case_else ::= ELSE expr", - /* 228 */ "case_else ::=", - /* 229 */ "case_operand ::=", - /* 230 */ "exprlist ::=", - /* 231 */ "nexprlist ::= nexprlist COMMA expr", - /* 232 */ "nexprlist ::= expr", - /* 233 */ "paren_exprlist ::=", - /* 234 */ "paren_exprlist ::= LP exprlist RP", - /* 235 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt", - /* 236 */ "uniqueflag ::= UNIQUE", - /* 237 */ "uniqueflag ::=", - /* 238 */ "eidlist_opt ::=", - /* 239 */ "eidlist_opt ::= LP eidlist RP", - /* 240 */ "eidlist ::= eidlist COMMA nm collate sortorder", - /* 241 */ "eidlist ::= nm collate sortorder", - /* 242 */ "collate ::=", - /* 243 */ "collate ::= COLLATE ID|STRING", - /* 244 */ "cmd ::= DROP INDEX ifexists fullname", - /* 245 */ "cmd ::= VACUUM vinto", - /* 246 */ "cmd ::= VACUUM nm vinto", - /* 247 */ "vinto ::= INTO expr", - /* 248 */ "vinto ::=", - /* 249 */ "cmd ::= PRAGMA nm dbnm", - /* 250 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", - /* 251 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", - /* 252 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", - /* 253 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP", - /* 254 */ "plus_num ::= PLUS INTEGER|FLOAT", - /* 255 */ "minus_num ::= MINUS INTEGER|FLOAT", - /* 256 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END", - /* 257 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", - /* 258 */ "trigger_time ::= BEFORE|AFTER", - /* 259 */ "trigger_time ::= INSTEAD OF", - /* 260 */ "trigger_time ::=", - /* 261 */ "trigger_event ::= DELETE|INSERT", - /* 262 */ "trigger_event ::= UPDATE", - /* 263 */ "trigger_event ::= UPDATE OF idlist", - /* 264 */ "when_clause ::=", - /* 265 */ "when_clause ::= WHEN expr", - /* 266 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", - /* 267 */ "trigger_cmd_list ::= trigger_cmd SEMI", - /* 268 */ "trnm ::= nm DOT nm", - /* 269 */ "tridxby ::= INDEXED BY nm", - /* 270 */ "tridxby ::= NOT INDEXED", - /* 271 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt", - /* 272 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt", - /* 273 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt", - /* 274 */ "trigger_cmd ::= scanpt select scanpt", - /* 275 */ "expr ::= RAISE LP IGNORE RP", - /* 276 */ "expr ::= RAISE LP raisetype COMMA nm RP", - /* 277 */ "raisetype ::= ROLLBACK", - /* 278 */ "raisetype ::= ABORT", - /* 279 */ "raisetype ::= FAIL", - /* 280 */ "cmd ::= DROP TRIGGER ifexists fullname", - /* 281 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", - /* 282 */ "cmd ::= DETACH database_kw_opt expr", - /* 283 */ "key_opt ::=", - /* 284 */ "key_opt ::= KEY expr", - /* 285 */ "cmd ::= REINDEX", - /* 286 */ "cmd ::= REINDEX nm dbnm", - /* 287 */ "cmd ::= ANALYZE", - /* 288 */ "cmd ::= ANALYZE nm dbnm", - /* 289 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", - /* 290 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist", - /* 291 */ "cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm", - /* 292 */ "add_column_fullname ::= fullname", - /* 293 */ "cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm", - /* 294 */ "cmd ::= create_vtab", - /* 295 */ "cmd ::= create_vtab LP vtabarglist RP", - /* 296 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm", - /* 297 */ "vtabarg ::=", - /* 298 */ "vtabargtoken ::= ANY", - /* 299 */ "vtabargtoken ::= lp anylist RP", - /* 300 */ "lp ::= LP", - /* 301 */ "with ::= WITH wqlist", - /* 302 */ "with ::= WITH RECURSIVE wqlist", - /* 303 */ "wqas ::= AS", - /* 304 */ "wqas ::= AS MATERIALIZED", - /* 305 */ "wqas ::= AS NOT MATERIALIZED", - /* 306 */ "wqitem ::= nm eidlist_opt wqas LP select RP", - /* 307 */ "wqlist ::= wqitem", - /* 308 */ "wqlist ::= wqlist COMMA wqitem", - /* 309 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn", - /* 310 */ "windowdefn ::= nm AS LP window RP", - /* 311 */ "window ::= PARTITION BY nexprlist orderby_opt frame_opt", - /* 312 */ "window ::= nm PARTITION BY nexprlist orderby_opt frame_opt", - /* 313 */ "window ::= ORDER BY sortlist frame_opt", - /* 314 */ "window ::= nm ORDER BY sortlist frame_opt", - /* 315 */ "window ::= nm frame_opt", - /* 316 */ "frame_opt ::=", - /* 317 */ "frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt", - /* 318 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt", - /* 319 */ "range_or_rows ::= RANGE|ROWS|GROUPS", - /* 320 */ "frame_bound_s ::= frame_bound", - /* 321 */ "frame_bound_s ::= UNBOUNDED PRECEDING", - /* 322 */ "frame_bound_e ::= frame_bound", - /* 323 */ "frame_bound_e ::= UNBOUNDED FOLLOWING", - /* 324 */ "frame_bound ::= expr PRECEDING|FOLLOWING", - /* 325 */ "frame_bound ::= CURRENT ROW", - /* 326 */ "frame_exclude_opt ::=", - /* 327 */ "frame_exclude_opt ::= EXCLUDE frame_exclude", - /* 328 */ "frame_exclude ::= NO OTHERS", - /* 329 */ "frame_exclude ::= CURRENT ROW", - /* 330 */ "frame_exclude ::= GROUP|TIES", - /* 331 */ "window_clause ::= WINDOW windowdefn_list", - /* 332 */ "filter_over ::= filter_clause over_clause", - /* 333 */ "filter_over ::= over_clause", - /* 334 */ "filter_over ::= filter_clause", - /* 335 */ "over_clause ::= OVER LP window RP", - /* 336 */ "over_clause ::= OVER nm", - /* 337 */ "filter_clause ::= FILTER LP WHERE expr RP", - /* 338 */ "input ::= cmdlist", - /* 339 */ "cmdlist ::= cmdlist ecmd", - /* 340 */ "cmdlist ::= ecmd", - /* 341 */ "ecmd ::= SEMI", - /* 342 */ "ecmd ::= cmdx SEMI", - /* 343 */ "ecmd ::= explain cmdx SEMI", - /* 344 */ "trans_opt ::=", - /* 345 */ "trans_opt ::= TRANSACTION", - /* 346 */ "trans_opt ::= TRANSACTION nm", - /* 347 */ "savepoint_opt ::= SAVEPOINT", - /* 348 */ "savepoint_opt ::=", - /* 349 */ "cmd ::= create_table create_table_args", - /* 350 */ "table_option_set ::= table_option", - /* 351 */ "columnlist ::= columnlist COMMA columnname carglist", - /* 352 */ "columnlist ::= columnname carglist", - /* 353 */ "nm ::= ID|INDEXED|JOIN_KW", - /* 354 */ "nm ::= STRING", - /* 355 */ "typetoken ::= typename", - /* 356 */ "typename ::= ID|STRING", - /* 357 */ "signed ::= plus_num", - /* 358 */ "signed ::= minus_num", - /* 359 */ "carglist ::= carglist ccons", - /* 360 */ "carglist ::=", - /* 361 */ "ccons ::= NULL onconf", - /* 362 */ "ccons ::= GENERATED ALWAYS AS generated", - /* 363 */ "ccons ::= AS generated", - /* 364 */ "conslist_opt ::= COMMA conslist", - /* 365 */ "conslist ::= conslist tconscomma tcons", - /* 366 */ "conslist ::= tcons", - /* 367 */ "tconscomma ::=", - /* 368 */ "defer_subclause_opt ::= defer_subclause", - /* 369 */ "resolvetype ::= raisetype", - /* 370 */ "selectnowith ::= oneselect", - /* 371 */ "oneselect ::= values", - /* 372 */ "sclp ::= selcollist COMMA", - /* 373 */ "as ::= ID|STRING", - /* 374 */ "indexed_opt ::= indexed_by", - /* 375 */ "returning ::=", - /* 376 */ "expr ::= term", - /* 377 */ "likeop ::= LIKE_KW|MATCH", - /* 378 */ "case_operand ::= expr", - /* 379 */ "exprlist ::= nexprlist", - /* 380 */ "nmnum ::= plus_num", - /* 381 */ "nmnum ::= nm", - /* 382 */ "nmnum ::= ON", - /* 383 */ "nmnum ::= DELETE", - /* 384 */ "nmnum ::= DEFAULT", - /* 385 */ "plus_num ::= INTEGER|FLOAT", - /* 386 */ "foreach_clause ::=", - /* 387 */ "foreach_clause ::= FOR EACH ROW", - /* 388 */ "trnm ::= nm", - /* 389 */ "tridxby ::=", - /* 390 */ "database_kw_opt ::= DATABASE", - /* 391 */ "database_kw_opt ::=", - /* 392 */ "kwcolumn_opt ::=", - /* 393 */ "kwcolumn_opt ::= COLUMNKW", - /* 394 */ "vtabarglist ::= vtabarg", - /* 395 */ "vtabarglist ::= vtabarglist COMMA vtabarg", - /* 396 */ "vtabarg ::= vtabarg vtabargtoken", - /* 397 */ "anylist ::=", - /* 398 */ "anylist ::= anylist LP anylist RP", - /* 399 */ "anylist ::= anylist ANY", - /* 400 */ "with ::=", - /* 401 */ "windowdefn_list ::= windowdefn", - /* 402 */ "window ::= frame_opt", + /* 188 */ "expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP", + /* 189 */ "expr ::= ID|INDEXED|JOIN_KW LP STAR RP", + /* 190 */ "expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over", + /* 191 */ "expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over", + /* 192 */ "expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over", + /* 193 */ "term ::= CTIME_KW", + /* 194 */ "expr ::= LP nexprlist COMMA expr RP", + /* 195 */ "expr ::= expr AND expr", + /* 196 */ "expr ::= expr OR expr", + /* 197 */ "expr ::= expr LT|GT|GE|LE expr", + /* 198 */ "expr ::= expr EQ|NE expr", + /* 199 */ "expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr", + /* 200 */ "expr ::= expr PLUS|MINUS expr", + /* 201 */ "expr ::= expr STAR|SLASH|REM expr", + /* 202 */ "expr ::= expr CONCAT expr", + /* 203 */ "likeop ::= NOT LIKE_KW|MATCH", + /* 204 */ "expr ::= expr likeop expr", + /* 205 */ "expr ::= expr likeop expr ESCAPE expr", + /* 206 */ "expr ::= expr ISNULL|NOTNULL", + /* 207 */ "expr ::= expr NOT NULL", + /* 208 */ "expr ::= expr IS expr", + /* 209 */ "expr ::= expr IS NOT expr", + /* 210 */ "expr ::= expr IS NOT DISTINCT FROM expr", + /* 211 */ "expr ::= expr IS DISTINCT FROM expr", + /* 212 */ "expr ::= NOT expr", + /* 213 */ "expr ::= BITNOT expr", + /* 214 */ "expr ::= PLUS|MINUS expr", + /* 215 */ "expr ::= expr PTR expr", + /* 216 */ "between_op ::= BETWEEN", + /* 217 */ "between_op ::= NOT BETWEEN", + /* 218 */ "expr ::= expr between_op expr AND expr", + /* 219 */ "in_op ::= IN", + /* 220 */ "in_op ::= NOT IN", + /* 221 */ "expr ::= expr in_op LP exprlist RP", + /* 222 */ "expr ::= LP select RP", + /* 223 */ "expr ::= expr in_op LP select RP", + /* 224 */ "expr ::= expr in_op nm dbnm paren_exprlist", + /* 225 */ "expr ::= EXISTS LP select RP", + /* 226 */ "expr ::= CASE case_operand case_exprlist case_else END", + /* 227 */ "case_exprlist ::= case_exprlist WHEN expr THEN expr", + /* 228 */ "case_exprlist ::= WHEN expr THEN expr", + /* 229 */ "case_else ::= ELSE expr", + /* 230 */ "case_else ::=", + /* 231 */ "case_operand ::=", + /* 232 */ "exprlist ::=", + /* 233 */ "nexprlist ::= nexprlist COMMA expr", + /* 234 */ "nexprlist ::= expr", + /* 235 */ "paren_exprlist ::=", + /* 236 */ "paren_exprlist ::= LP exprlist RP", + /* 237 */ "cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt", + /* 238 */ "uniqueflag ::= UNIQUE", + /* 239 */ "uniqueflag ::=", + /* 240 */ "eidlist_opt ::=", + /* 241 */ "eidlist_opt ::= LP eidlist RP", + /* 242 */ "eidlist ::= eidlist COMMA nm collate sortorder", + /* 243 */ "eidlist ::= nm collate sortorder", + /* 244 */ "collate ::=", + /* 245 */ "collate ::= COLLATE ID|STRING", + /* 246 */ "cmd ::= DROP INDEX ifexists fullname", + /* 247 */ "cmd ::= VACUUM vinto", + /* 248 */ "cmd ::= VACUUM nm vinto", + /* 249 */ "vinto ::= INTO expr", + /* 250 */ "vinto ::=", + /* 251 */ "cmd ::= PRAGMA nm dbnm", + /* 252 */ "cmd ::= PRAGMA nm dbnm EQ nmnum", + /* 253 */ "cmd ::= PRAGMA nm dbnm LP nmnum RP", + /* 254 */ "cmd ::= PRAGMA nm dbnm EQ minus_num", + /* 255 */ "cmd ::= PRAGMA nm dbnm LP minus_num RP", + /* 256 */ "plus_num ::= PLUS INTEGER|FLOAT", + /* 257 */ "minus_num ::= MINUS INTEGER|FLOAT", + /* 258 */ "cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END", + /* 259 */ "trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause", + /* 260 */ "trigger_time ::= BEFORE|AFTER", + /* 261 */ "trigger_time ::= INSTEAD OF", + /* 262 */ "trigger_time ::=", + /* 263 */ "trigger_event ::= DELETE|INSERT", + /* 264 */ "trigger_event ::= UPDATE", + /* 265 */ "trigger_event ::= UPDATE OF idlist", + /* 266 */ "when_clause ::=", + /* 267 */ "when_clause ::= WHEN expr", + /* 268 */ "trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI", + /* 269 */ "trigger_cmd_list ::= trigger_cmd SEMI", + /* 270 */ "trnm ::= nm DOT nm", + /* 271 */ "tridxby ::= INDEXED BY nm", + /* 272 */ "tridxby ::= NOT INDEXED", + /* 273 */ "trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt", + /* 274 */ "trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt", + /* 275 */ "trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt", + /* 276 */ "trigger_cmd ::= scanpt select scanpt", + /* 277 */ "expr ::= RAISE LP IGNORE RP", + /* 278 */ "expr ::= RAISE LP raisetype COMMA nm RP", + /* 279 */ "raisetype ::= ROLLBACK", + /* 280 */ "raisetype ::= ABORT", + /* 281 */ "raisetype ::= FAIL", + /* 282 */ "cmd ::= DROP TRIGGER ifexists fullname", + /* 283 */ "cmd ::= ATTACH database_kw_opt expr AS expr key_opt", + /* 284 */ "cmd ::= DETACH database_kw_opt expr", + /* 285 */ "key_opt ::=", + /* 286 */ "key_opt ::= KEY expr", + /* 287 */ "cmd ::= REINDEX", + /* 288 */ "cmd ::= REINDEX nm dbnm", + /* 289 */ "cmd ::= ANALYZE", + /* 290 */ "cmd ::= ANALYZE nm dbnm", + /* 291 */ "cmd ::= ALTER TABLE fullname RENAME TO nm", + /* 292 */ "cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist", + /* 293 */ "cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm", + /* 294 */ "add_column_fullname ::= fullname", + /* 295 */ "cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm", + /* 296 */ "cmd ::= create_vtab", + /* 297 */ "cmd ::= create_vtab LP vtabarglist RP", + /* 298 */ "create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm", + /* 299 */ "vtabarg ::=", + /* 300 */ "vtabargtoken ::= ANY", + /* 301 */ "vtabargtoken ::= lp anylist RP", + /* 302 */ "lp ::= LP", + /* 303 */ "with ::= WITH wqlist", + /* 304 */ "with ::= WITH RECURSIVE wqlist", + /* 305 */ "wqas ::= AS", + /* 306 */ "wqas ::= AS MATERIALIZED", + /* 307 */ "wqas ::= AS NOT MATERIALIZED", + /* 308 */ "wqitem ::= nm eidlist_opt wqas LP select RP", + /* 309 */ "wqlist ::= wqitem", + /* 310 */ "wqlist ::= wqlist COMMA wqitem", + /* 311 */ "windowdefn_list ::= windowdefn_list COMMA windowdefn", + /* 312 */ "windowdefn ::= nm AS LP window RP", + /* 313 */ "window ::= PARTITION BY nexprlist orderby_opt frame_opt", + /* 314 */ "window ::= nm PARTITION BY nexprlist orderby_opt frame_opt", + /* 315 */ "window ::= ORDER BY sortlist frame_opt", + /* 316 */ "window ::= nm ORDER BY sortlist frame_opt", + /* 317 */ "window ::= nm frame_opt", + /* 318 */ "frame_opt ::=", + /* 319 */ "frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt", + /* 320 */ "frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt", + /* 321 */ "range_or_rows ::= RANGE|ROWS|GROUPS", + /* 322 */ "frame_bound_s ::= frame_bound", + /* 323 */ "frame_bound_s ::= UNBOUNDED PRECEDING", + /* 324 */ "frame_bound_e ::= frame_bound", + /* 325 */ "frame_bound_e ::= UNBOUNDED FOLLOWING", + /* 326 */ "frame_bound ::= expr PRECEDING|FOLLOWING", + /* 327 */ "frame_bound ::= CURRENT ROW", + /* 328 */ "frame_exclude_opt ::=", + /* 329 */ "frame_exclude_opt ::= EXCLUDE frame_exclude", + /* 330 */ "frame_exclude ::= NO OTHERS", + /* 331 */ "frame_exclude ::= CURRENT ROW", + /* 332 */ "frame_exclude ::= GROUP|TIES", + /* 333 */ "window_clause ::= WINDOW windowdefn_list", + /* 334 */ "filter_over ::= filter_clause over_clause", + /* 335 */ "filter_over ::= over_clause", + /* 336 */ "filter_over ::= filter_clause", + /* 337 */ "over_clause ::= OVER LP window RP", + /* 338 */ "over_clause ::= OVER nm", + /* 339 */ "filter_clause ::= FILTER LP WHERE expr RP", + /* 340 */ "input ::= cmdlist", + /* 341 */ "cmdlist ::= cmdlist ecmd", + /* 342 */ "cmdlist ::= ecmd", + /* 343 */ "ecmd ::= SEMI", + /* 344 */ "ecmd ::= cmdx SEMI", + /* 345 */ "ecmd ::= explain cmdx SEMI", + /* 346 */ "trans_opt ::=", + /* 347 */ "trans_opt ::= TRANSACTION", + /* 348 */ "trans_opt ::= TRANSACTION nm", + /* 349 */ "savepoint_opt ::= SAVEPOINT", + /* 350 */ "savepoint_opt ::=", + /* 351 */ "cmd ::= create_table create_table_args", + /* 352 */ "table_option_set ::= table_option", + /* 353 */ "columnlist ::= columnlist COMMA columnname carglist", + /* 354 */ "columnlist ::= columnname carglist", + /* 355 */ "nm ::= ID|INDEXED|JOIN_KW", + /* 356 */ "nm ::= STRING", + /* 357 */ "typetoken ::= typename", + /* 358 */ "typename ::= ID|STRING", + /* 359 */ "signed ::= plus_num", + /* 360 */ "signed ::= minus_num", + /* 361 */ "carglist ::= carglist ccons", + /* 362 */ "carglist ::=", + /* 363 */ "ccons ::= NULL onconf", + /* 364 */ "ccons ::= GENERATED ALWAYS AS generated", + /* 365 */ "ccons ::= AS generated", + /* 366 */ "conslist_opt ::= COMMA conslist", + /* 367 */ "conslist ::= conslist tconscomma tcons", + /* 368 */ "conslist ::= tcons", + /* 369 */ "tconscomma ::=", + /* 370 */ "defer_subclause_opt ::= defer_subclause", + /* 371 */ "resolvetype ::= raisetype", + /* 372 */ "selectnowith ::= oneselect", + /* 373 */ "oneselect ::= values", + /* 374 */ "sclp ::= selcollist COMMA", + /* 375 */ "as ::= ID|STRING", + /* 376 */ "indexed_opt ::= indexed_by", + /* 377 */ "returning ::=", + /* 378 */ "expr ::= term", + /* 379 */ "likeop ::= LIKE_KW|MATCH", + /* 380 */ "case_operand ::= expr", + /* 381 */ "exprlist ::= nexprlist", + /* 382 */ "nmnum ::= plus_num", + /* 383 */ "nmnum ::= nm", + /* 384 */ "nmnum ::= ON", + /* 385 */ "nmnum ::= DELETE", + /* 386 */ "nmnum ::= DEFAULT", + /* 387 */ "plus_num ::= INTEGER|FLOAT", + /* 388 */ "foreach_clause ::=", + /* 389 */ "foreach_clause ::= FOR EACH ROW", + /* 390 */ "trnm ::= nm", + /* 391 */ "tridxby ::=", + /* 392 */ "database_kw_opt ::= DATABASE", + /* 393 */ "database_kw_opt ::=", + /* 394 */ "kwcolumn_opt ::=", + /* 395 */ "kwcolumn_opt ::= COLUMNKW", + /* 396 */ "vtabarglist ::= vtabarg", + /* 397 */ "vtabarglist ::= vtabarglist COMMA vtabarg", + /* 398 */ "vtabarg ::= vtabarg vtabargtoken", + /* 399 */ "anylist ::=", + /* 400 */ "anylist ::= anylist LP anylist RP", + /* 401 */ "anylist ::= anylist ANY", + /* 402 */ "with ::=", + /* 403 */ "windowdefn_list ::= windowdefn", + /* 404 */ "window ::= frame_opt", }; #endif /* NDEBUG */ @@ -172138,221 +173826,223 @@ static const YYCODETYPE yyRuleInfoLhs[] = { 217, /* (185) expr ::= expr COLLATE ID|STRING */ 217, /* (186) expr ::= CAST LP expr AS typetoken RP */ 217, /* (187) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ - 217, /* (188) expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ - 217, /* (189) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ - 217, /* (190) expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ - 216, /* (191) term ::= CTIME_KW */ - 217, /* (192) expr ::= LP nexprlist COMMA expr RP */ - 217, /* (193) expr ::= expr AND expr */ - 217, /* (194) expr ::= expr OR expr */ - 217, /* (195) expr ::= expr LT|GT|GE|LE expr */ - 217, /* (196) expr ::= expr EQ|NE expr */ - 217, /* (197) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ - 217, /* (198) expr ::= expr PLUS|MINUS expr */ - 217, /* (199) expr ::= expr STAR|SLASH|REM expr */ - 217, /* (200) expr ::= expr CONCAT expr */ - 274, /* (201) likeop ::= NOT LIKE_KW|MATCH */ - 217, /* (202) expr ::= expr likeop expr */ - 217, /* (203) expr ::= expr likeop expr ESCAPE expr */ - 217, /* (204) expr ::= expr ISNULL|NOTNULL */ - 217, /* (205) expr ::= expr NOT NULL */ - 217, /* (206) expr ::= expr IS expr */ - 217, /* (207) expr ::= expr IS NOT expr */ - 217, /* (208) expr ::= expr IS NOT DISTINCT FROM expr */ - 217, /* (209) expr ::= expr IS DISTINCT FROM expr */ - 217, /* (210) expr ::= NOT expr */ - 217, /* (211) expr ::= BITNOT expr */ - 217, /* (212) expr ::= PLUS|MINUS expr */ - 217, /* (213) expr ::= expr PTR expr */ - 275, /* (214) between_op ::= BETWEEN */ - 275, /* (215) between_op ::= NOT BETWEEN */ - 217, /* (216) expr ::= expr between_op expr AND expr */ - 276, /* (217) in_op ::= IN */ - 276, /* (218) in_op ::= NOT IN */ - 217, /* (219) expr ::= expr in_op LP exprlist RP */ - 217, /* (220) expr ::= LP select RP */ - 217, /* (221) expr ::= expr in_op LP select RP */ - 217, /* (222) expr ::= expr in_op nm dbnm paren_exprlist */ - 217, /* (223) expr ::= EXISTS LP select RP */ - 217, /* (224) expr ::= CASE case_operand case_exprlist case_else END */ - 279, /* (225) case_exprlist ::= case_exprlist WHEN expr THEN expr */ - 279, /* (226) case_exprlist ::= WHEN expr THEN expr */ - 280, /* (227) case_else ::= ELSE expr */ - 280, /* (228) case_else ::= */ - 278, /* (229) case_operand ::= */ - 261, /* (230) exprlist ::= */ - 253, /* (231) nexprlist ::= nexprlist COMMA expr */ - 253, /* (232) nexprlist ::= expr */ - 277, /* (233) paren_exprlist ::= */ - 277, /* (234) paren_exprlist ::= LP exprlist RP */ - 190, /* (235) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ - 281, /* (236) uniqueflag ::= UNIQUE */ - 281, /* (237) uniqueflag ::= */ - 221, /* (238) eidlist_opt ::= */ - 221, /* (239) eidlist_opt ::= LP eidlist RP */ - 232, /* (240) eidlist ::= eidlist COMMA nm collate sortorder */ - 232, /* (241) eidlist ::= nm collate sortorder */ - 282, /* (242) collate ::= */ - 282, /* (243) collate ::= COLLATE ID|STRING */ - 190, /* (244) cmd ::= DROP INDEX ifexists fullname */ - 190, /* (245) cmd ::= VACUUM vinto */ - 190, /* (246) cmd ::= VACUUM nm vinto */ - 283, /* (247) vinto ::= INTO expr */ - 283, /* (248) vinto ::= */ - 190, /* (249) cmd ::= PRAGMA nm dbnm */ - 190, /* (250) cmd ::= PRAGMA nm dbnm EQ nmnum */ - 190, /* (251) cmd ::= PRAGMA nm dbnm LP nmnum RP */ - 190, /* (252) cmd ::= PRAGMA nm dbnm EQ minus_num */ - 190, /* (253) cmd ::= PRAGMA nm dbnm LP minus_num RP */ - 211, /* (254) plus_num ::= PLUS INTEGER|FLOAT */ - 212, /* (255) minus_num ::= MINUS INTEGER|FLOAT */ - 190, /* (256) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ - 285, /* (257) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ - 287, /* (258) trigger_time ::= BEFORE|AFTER */ - 287, /* (259) trigger_time ::= INSTEAD OF */ - 287, /* (260) trigger_time ::= */ - 288, /* (261) trigger_event ::= DELETE|INSERT */ - 288, /* (262) trigger_event ::= UPDATE */ - 288, /* (263) trigger_event ::= UPDATE OF idlist */ - 290, /* (264) when_clause ::= */ - 290, /* (265) when_clause ::= WHEN expr */ - 286, /* (266) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ - 286, /* (267) trigger_cmd_list ::= trigger_cmd SEMI */ - 292, /* (268) trnm ::= nm DOT nm */ - 293, /* (269) tridxby ::= INDEXED BY nm */ - 293, /* (270) tridxby ::= NOT INDEXED */ - 291, /* (271) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ - 291, /* (272) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ - 291, /* (273) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ - 291, /* (274) trigger_cmd ::= scanpt select scanpt */ - 217, /* (275) expr ::= RAISE LP IGNORE RP */ - 217, /* (276) expr ::= RAISE LP raisetype COMMA nm RP */ - 236, /* (277) raisetype ::= ROLLBACK */ - 236, /* (278) raisetype ::= ABORT */ - 236, /* (279) raisetype ::= FAIL */ - 190, /* (280) cmd ::= DROP TRIGGER ifexists fullname */ - 190, /* (281) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ - 190, /* (282) cmd ::= DETACH database_kw_opt expr */ - 295, /* (283) key_opt ::= */ - 295, /* (284) key_opt ::= KEY expr */ - 190, /* (285) cmd ::= REINDEX */ - 190, /* (286) cmd ::= REINDEX nm dbnm */ - 190, /* (287) cmd ::= ANALYZE */ - 190, /* (288) cmd ::= ANALYZE nm dbnm */ - 190, /* (289) cmd ::= ALTER TABLE fullname RENAME TO nm */ - 190, /* (290) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ - 190, /* (291) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ - 296, /* (292) add_column_fullname ::= fullname */ - 190, /* (293) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ - 190, /* (294) cmd ::= create_vtab */ - 190, /* (295) cmd ::= create_vtab LP vtabarglist RP */ - 298, /* (296) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ - 300, /* (297) vtabarg ::= */ - 301, /* (298) vtabargtoken ::= ANY */ - 301, /* (299) vtabargtoken ::= lp anylist RP */ - 302, /* (300) lp ::= LP */ - 266, /* (301) with ::= WITH wqlist */ - 266, /* (302) with ::= WITH RECURSIVE wqlist */ - 305, /* (303) wqas ::= AS */ - 305, /* (304) wqas ::= AS MATERIALIZED */ - 305, /* (305) wqas ::= AS NOT MATERIALIZED */ - 304, /* (306) wqitem ::= nm eidlist_opt wqas LP select RP */ - 241, /* (307) wqlist ::= wqitem */ - 241, /* (308) wqlist ::= wqlist COMMA wqitem */ - 306, /* (309) windowdefn_list ::= windowdefn_list COMMA windowdefn */ - 307, /* (310) windowdefn ::= nm AS LP window RP */ - 308, /* (311) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ - 308, /* (312) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ - 308, /* (313) window ::= ORDER BY sortlist frame_opt */ - 308, /* (314) window ::= nm ORDER BY sortlist frame_opt */ - 308, /* (315) window ::= nm frame_opt */ - 309, /* (316) frame_opt ::= */ - 309, /* (317) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ - 309, /* (318) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ - 313, /* (319) range_or_rows ::= RANGE|ROWS|GROUPS */ - 315, /* (320) frame_bound_s ::= frame_bound */ - 315, /* (321) frame_bound_s ::= UNBOUNDED PRECEDING */ - 316, /* (322) frame_bound_e ::= frame_bound */ - 316, /* (323) frame_bound_e ::= UNBOUNDED FOLLOWING */ - 314, /* (324) frame_bound ::= expr PRECEDING|FOLLOWING */ - 314, /* (325) frame_bound ::= CURRENT ROW */ - 317, /* (326) frame_exclude_opt ::= */ - 317, /* (327) frame_exclude_opt ::= EXCLUDE frame_exclude */ - 318, /* (328) frame_exclude ::= NO OTHERS */ - 318, /* (329) frame_exclude ::= CURRENT ROW */ - 318, /* (330) frame_exclude ::= GROUP|TIES */ - 251, /* (331) window_clause ::= WINDOW windowdefn_list */ - 273, /* (332) filter_over ::= filter_clause over_clause */ - 273, /* (333) filter_over ::= over_clause */ - 273, /* (334) filter_over ::= filter_clause */ - 312, /* (335) over_clause ::= OVER LP window RP */ - 312, /* (336) over_clause ::= OVER nm */ - 311, /* (337) filter_clause ::= FILTER LP WHERE expr RP */ - 185, /* (338) input ::= cmdlist */ - 186, /* (339) cmdlist ::= cmdlist ecmd */ - 186, /* (340) cmdlist ::= ecmd */ - 187, /* (341) ecmd ::= SEMI */ - 187, /* (342) ecmd ::= cmdx SEMI */ - 187, /* (343) ecmd ::= explain cmdx SEMI */ - 192, /* (344) trans_opt ::= */ - 192, /* (345) trans_opt ::= TRANSACTION */ - 192, /* (346) trans_opt ::= TRANSACTION nm */ - 194, /* (347) savepoint_opt ::= SAVEPOINT */ - 194, /* (348) savepoint_opt ::= */ - 190, /* (349) cmd ::= create_table create_table_args */ - 203, /* (350) table_option_set ::= table_option */ - 201, /* (351) columnlist ::= columnlist COMMA columnname carglist */ - 201, /* (352) columnlist ::= columnname carglist */ - 193, /* (353) nm ::= ID|INDEXED|JOIN_KW */ - 193, /* (354) nm ::= STRING */ - 208, /* (355) typetoken ::= typename */ - 209, /* (356) typename ::= ID|STRING */ - 210, /* (357) signed ::= plus_num */ - 210, /* (358) signed ::= minus_num */ - 207, /* (359) carglist ::= carglist ccons */ - 207, /* (360) carglist ::= */ - 215, /* (361) ccons ::= NULL onconf */ - 215, /* (362) ccons ::= GENERATED ALWAYS AS generated */ - 215, /* (363) ccons ::= AS generated */ - 202, /* (364) conslist_opt ::= COMMA conslist */ - 228, /* (365) conslist ::= conslist tconscomma tcons */ - 228, /* (366) conslist ::= tcons */ - 229, /* (367) tconscomma ::= */ - 233, /* (368) defer_subclause_opt ::= defer_subclause */ - 235, /* (369) resolvetype ::= raisetype */ - 239, /* (370) selectnowith ::= oneselect */ - 240, /* (371) oneselect ::= values */ - 254, /* (372) sclp ::= selcollist COMMA */ - 255, /* (373) as ::= ID|STRING */ - 264, /* (374) indexed_opt ::= indexed_by */ - 272, /* (375) returning ::= */ - 217, /* (376) expr ::= term */ - 274, /* (377) likeop ::= LIKE_KW|MATCH */ - 278, /* (378) case_operand ::= expr */ - 261, /* (379) exprlist ::= nexprlist */ - 284, /* (380) nmnum ::= plus_num */ - 284, /* (381) nmnum ::= nm */ - 284, /* (382) nmnum ::= ON */ - 284, /* (383) nmnum ::= DELETE */ - 284, /* (384) nmnum ::= DEFAULT */ - 211, /* (385) plus_num ::= INTEGER|FLOAT */ - 289, /* (386) foreach_clause ::= */ - 289, /* (387) foreach_clause ::= FOR EACH ROW */ - 292, /* (388) trnm ::= nm */ - 293, /* (389) tridxby ::= */ - 294, /* (390) database_kw_opt ::= DATABASE */ - 294, /* (391) database_kw_opt ::= */ - 297, /* (392) kwcolumn_opt ::= */ - 297, /* (393) kwcolumn_opt ::= COLUMNKW */ - 299, /* (394) vtabarglist ::= vtabarg */ - 299, /* (395) vtabarglist ::= vtabarglist COMMA vtabarg */ - 300, /* (396) vtabarg ::= vtabarg vtabargtoken */ - 303, /* (397) anylist ::= */ - 303, /* (398) anylist ::= anylist LP anylist RP */ - 303, /* (399) anylist ::= anylist ANY */ - 266, /* (400) with ::= */ - 306, /* (401) windowdefn_list ::= windowdefn */ - 308, /* (402) window ::= frame_opt */ + 217, /* (188) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ + 217, /* (189) expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ + 217, /* (190) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ + 217, /* (191) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ + 217, /* (192) expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ + 216, /* (193) term ::= CTIME_KW */ + 217, /* (194) expr ::= LP nexprlist COMMA expr RP */ + 217, /* (195) expr ::= expr AND expr */ + 217, /* (196) expr ::= expr OR expr */ + 217, /* (197) expr ::= expr LT|GT|GE|LE expr */ + 217, /* (198) expr ::= expr EQ|NE expr */ + 217, /* (199) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ + 217, /* (200) expr ::= expr PLUS|MINUS expr */ + 217, /* (201) expr ::= expr STAR|SLASH|REM expr */ + 217, /* (202) expr ::= expr CONCAT expr */ + 274, /* (203) likeop ::= NOT LIKE_KW|MATCH */ + 217, /* (204) expr ::= expr likeop expr */ + 217, /* (205) expr ::= expr likeop expr ESCAPE expr */ + 217, /* (206) expr ::= expr ISNULL|NOTNULL */ + 217, /* (207) expr ::= expr NOT NULL */ + 217, /* (208) expr ::= expr IS expr */ + 217, /* (209) expr ::= expr IS NOT expr */ + 217, /* (210) expr ::= expr IS NOT DISTINCT FROM expr */ + 217, /* (211) expr ::= expr IS DISTINCT FROM expr */ + 217, /* (212) expr ::= NOT expr */ + 217, /* (213) expr ::= BITNOT expr */ + 217, /* (214) expr ::= PLUS|MINUS expr */ + 217, /* (215) expr ::= expr PTR expr */ + 275, /* (216) between_op ::= BETWEEN */ + 275, /* (217) between_op ::= NOT BETWEEN */ + 217, /* (218) expr ::= expr between_op expr AND expr */ + 276, /* (219) in_op ::= IN */ + 276, /* (220) in_op ::= NOT IN */ + 217, /* (221) expr ::= expr in_op LP exprlist RP */ + 217, /* (222) expr ::= LP select RP */ + 217, /* (223) expr ::= expr in_op LP select RP */ + 217, /* (224) expr ::= expr in_op nm dbnm paren_exprlist */ + 217, /* (225) expr ::= EXISTS LP select RP */ + 217, /* (226) expr ::= CASE case_operand case_exprlist case_else END */ + 279, /* (227) case_exprlist ::= case_exprlist WHEN expr THEN expr */ + 279, /* (228) case_exprlist ::= WHEN expr THEN expr */ + 280, /* (229) case_else ::= ELSE expr */ + 280, /* (230) case_else ::= */ + 278, /* (231) case_operand ::= */ + 261, /* (232) exprlist ::= */ + 253, /* (233) nexprlist ::= nexprlist COMMA expr */ + 253, /* (234) nexprlist ::= expr */ + 277, /* (235) paren_exprlist ::= */ + 277, /* (236) paren_exprlist ::= LP exprlist RP */ + 190, /* (237) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ + 281, /* (238) uniqueflag ::= UNIQUE */ + 281, /* (239) uniqueflag ::= */ + 221, /* (240) eidlist_opt ::= */ + 221, /* (241) eidlist_opt ::= LP eidlist RP */ + 232, /* (242) eidlist ::= eidlist COMMA nm collate sortorder */ + 232, /* (243) eidlist ::= nm collate sortorder */ + 282, /* (244) collate ::= */ + 282, /* (245) collate ::= COLLATE ID|STRING */ + 190, /* (246) cmd ::= DROP INDEX ifexists fullname */ + 190, /* (247) cmd ::= VACUUM vinto */ + 190, /* (248) cmd ::= VACUUM nm vinto */ + 283, /* (249) vinto ::= INTO expr */ + 283, /* (250) vinto ::= */ + 190, /* (251) cmd ::= PRAGMA nm dbnm */ + 190, /* (252) cmd ::= PRAGMA nm dbnm EQ nmnum */ + 190, /* (253) cmd ::= PRAGMA nm dbnm LP nmnum RP */ + 190, /* (254) cmd ::= PRAGMA nm dbnm EQ minus_num */ + 190, /* (255) cmd ::= PRAGMA nm dbnm LP minus_num RP */ + 211, /* (256) plus_num ::= PLUS INTEGER|FLOAT */ + 212, /* (257) minus_num ::= MINUS INTEGER|FLOAT */ + 190, /* (258) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ + 285, /* (259) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ + 287, /* (260) trigger_time ::= BEFORE|AFTER */ + 287, /* (261) trigger_time ::= INSTEAD OF */ + 287, /* (262) trigger_time ::= */ + 288, /* (263) trigger_event ::= DELETE|INSERT */ + 288, /* (264) trigger_event ::= UPDATE */ + 288, /* (265) trigger_event ::= UPDATE OF idlist */ + 290, /* (266) when_clause ::= */ + 290, /* (267) when_clause ::= WHEN expr */ + 286, /* (268) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ + 286, /* (269) trigger_cmd_list ::= trigger_cmd SEMI */ + 292, /* (270) trnm ::= nm DOT nm */ + 293, /* (271) tridxby ::= INDEXED BY nm */ + 293, /* (272) tridxby ::= NOT INDEXED */ + 291, /* (273) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ + 291, /* (274) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ + 291, /* (275) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ + 291, /* (276) trigger_cmd ::= scanpt select scanpt */ + 217, /* (277) expr ::= RAISE LP IGNORE RP */ + 217, /* (278) expr ::= RAISE LP raisetype COMMA nm RP */ + 236, /* (279) raisetype ::= ROLLBACK */ + 236, /* (280) raisetype ::= ABORT */ + 236, /* (281) raisetype ::= FAIL */ + 190, /* (282) cmd ::= DROP TRIGGER ifexists fullname */ + 190, /* (283) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ + 190, /* (284) cmd ::= DETACH database_kw_opt expr */ + 295, /* (285) key_opt ::= */ + 295, /* (286) key_opt ::= KEY expr */ + 190, /* (287) cmd ::= REINDEX */ + 190, /* (288) cmd ::= REINDEX nm dbnm */ + 190, /* (289) cmd ::= ANALYZE */ + 190, /* (290) cmd ::= ANALYZE nm dbnm */ + 190, /* (291) cmd ::= ALTER TABLE fullname RENAME TO nm */ + 190, /* (292) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ + 190, /* (293) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ + 296, /* (294) add_column_fullname ::= fullname */ + 190, /* (295) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ + 190, /* (296) cmd ::= create_vtab */ + 190, /* (297) cmd ::= create_vtab LP vtabarglist RP */ + 298, /* (298) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ + 300, /* (299) vtabarg ::= */ + 301, /* (300) vtabargtoken ::= ANY */ + 301, /* (301) vtabargtoken ::= lp anylist RP */ + 302, /* (302) lp ::= LP */ + 266, /* (303) with ::= WITH wqlist */ + 266, /* (304) with ::= WITH RECURSIVE wqlist */ + 305, /* (305) wqas ::= AS */ + 305, /* (306) wqas ::= AS MATERIALIZED */ + 305, /* (307) wqas ::= AS NOT MATERIALIZED */ + 304, /* (308) wqitem ::= nm eidlist_opt wqas LP select RP */ + 241, /* (309) wqlist ::= wqitem */ + 241, /* (310) wqlist ::= wqlist COMMA wqitem */ + 306, /* (311) windowdefn_list ::= windowdefn_list COMMA windowdefn */ + 307, /* (312) windowdefn ::= nm AS LP window RP */ + 308, /* (313) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ + 308, /* (314) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ + 308, /* (315) window ::= ORDER BY sortlist frame_opt */ + 308, /* (316) window ::= nm ORDER BY sortlist frame_opt */ + 308, /* (317) window ::= nm frame_opt */ + 309, /* (318) frame_opt ::= */ + 309, /* (319) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ + 309, /* (320) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ + 313, /* (321) range_or_rows ::= RANGE|ROWS|GROUPS */ + 315, /* (322) frame_bound_s ::= frame_bound */ + 315, /* (323) frame_bound_s ::= UNBOUNDED PRECEDING */ + 316, /* (324) frame_bound_e ::= frame_bound */ + 316, /* (325) frame_bound_e ::= UNBOUNDED FOLLOWING */ + 314, /* (326) frame_bound ::= expr PRECEDING|FOLLOWING */ + 314, /* (327) frame_bound ::= CURRENT ROW */ + 317, /* (328) frame_exclude_opt ::= */ + 317, /* (329) frame_exclude_opt ::= EXCLUDE frame_exclude */ + 318, /* (330) frame_exclude ::= NO OTHERS */ + 318, /* (331) frame_exclude ::= CURRENT ROW */ + 318, /* (332) frame_exclude ::= GROUP|TIES */ + 251, /* (333) window_clause ::= WINDOW windowdefn_list */ + 273, /* (334) filter_over ::= filter_clause over_clause */ + 273, /* (335) filter_over ::= over_clause */ + 273, /* (336) filter_over ::= filter_clause */ + 312, /* (337) over_clause ::= OVER LP window RP */ + 312, /* (338) over_clause ::= OVER nm */ + 311, /* (339) filter_clause ::= FILTER LP WHERE expr RP */ + 185, /* (340) input ::= cmdlist */ + 186, /* (341) cmdlist ::= cmdlist ecmd */ + 186, /* (342) cmdlist ::= ecmd */ + 187, /* (343) ecmd ::= SEMI */ + 187, /* (344) ecmd ::= cmdx SEMI */ + 187, /* (345) ecmd ::= explain cmdx SEMI */ + 192, /* (346) trans_opt ::= */ + 192, /* (347) trans_opt ::= TRANSACTION */ + 192, /* (348) trans_opt ::= TRANSACTION nm */ + 194, /* (349) savepoint_opt ::= SAVEPOINT */ + 194, /* (350) savepoint_opt ::= */ + 190, /* (351) cmd ::= create_table create_table_args */ + 203, /* (352) table_option_set ::= table_option */ + 201, /* (353) columnlist ::= columnlist COMMA columnname carglist */ + 201, /* (354) columnlist ::= columnname carglist */ + 193, /* (355) nm ::= ID|INDEXED|JOIN_KW */ + 193, /* (356) nm ::= STRING */ + 208, /* (357) typetoken ::= typename */ + 209, /* (358) typename ::= ID|STRING */ + 210, /* (359) signed ::= plus_num */ + 210, /* (360) signed ::= minus_num */ + 207, /* (361) carglist ::= carglist ccons */ + 207, /* (362) carglist ::= */ + 215, /* (363) ccons ::= NULL onconf */ + 215, /* (364) ccons ::= GENERATED ALWAYS AS generated */ + 215, /* (365) ccons ::= AS generated */ + 202, /* (366) conslist_opt ::= COMMA conslist */ + 228, /* (367) conslist ::= conslist tconscomma tcons */ + 228, /* (368) conslist ::= tcons */ + 229, /* (369) tconscomma ::= */ + 233, /* (370) defer_subclause_opt ::= defer_subclause */ + 235, /* (371) resolvetype ::= raisetype */ + 239, /* (372) selectnowith ::= oneselect */ + 240, /* (373) oneselect ::= values */ + 254, /* (374) sclp ::= selcollist COMMA */ + 255, /* (375) as ::= ID|STRING */ + 264, /* (376) indexed_opt ::= indexed_by */ + 272, /* (377) returning ::= */ + 217, /* (378) expr ::= term */ + 274, /* (379) likeop ::= LIKE_KW|MATCH */ + 278, /* (380) case_operand ::= expr */ + 261, /* (381) exprlist ::= nexprlist */ + 284, /* (382) nmnum ::= plus_num */ + 284, /* (383) nmnum ::= nm */ + 284, /* (384) nmnum ::= ON */ + 284, /* (385) nmnum ::= DELETE */ + 284, /* (386) nmnum ::= DEFAULT */ + 211, /* (387) plus_num ::= INTEGER|FLOAT */ + 289, /* (388) foreach_clause ::= */ + 289, /* (389) foreach_clause ::= FOR EACH ROW */ + 292, /* (390) trnm ::= nm */ + 293, /* (391) tridxby ::= */ + 294, /* (392) database_kw_opt ::= DATABASE */ + 294, /* (393) database_kw_opt ::= */ + 297, /* (394) kwcolumn_opt ::= */ + 297, /* (395) kwcolumn_opt ::= COLUMNKW */ + 299, /* (396) vtabarglist ::= vtabarg */ + 299, /* (397) vtabarglist ::= vtabarglist COMMA vtabarg */ + 300, /* (398) vtabarg ::= vtabarg vtabargtoken */ + 303, /* (399) anylist ::= */ + 303, /* (400) anylist ::= anylist LP anylist RP */ + 303, /* (401) anylist ::= anylist ANY */ + 266, /* (402) with ::= */ + 306, /* (403) windowdefn_list ::= windowdefn */ + 308, /* (404) window ::= frame_opt */ }; /* For rule J, yyRuleInfoNRhs[J] contains the negative of the number @@ -172546,221 +174236,223 @@ static const signed char yyRuleInfoNRhs[] = { -3, /* (185) expr ::= expr COLLATE ID|STRING */ -6, /* (186) expr ::= CAST LP expr AS typetoken RP */ -5, /* (187) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP */ - -4, /* (188) expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ - -6, /* (189) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ - -5, /* (190) expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ - -1, /* (191) term ::= CTIME_KW */ - -5, /* (192) expr ::= LP nexprlist COMMA expr RP */ - -3, /* (193) expr ::= expr AND expr */ - -3, /* (194) expr ::= expr OR expr */ - -3, /* (195) expr ::= expr LT|GT|GE|LE expr */ - -3, /* (196) expr ::= expr EQ|NE expr */ - -3, /* (197) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ - -3, /* (198) expr ::= expr PLUS|MINUS expr */ - -3, /* (199) expr ::= expr STAR|SLASH|REM expr */ - -3, /* (200) expr ::= expr CONCAT expr */ - -2, /* (201) likeop ::= NOT LIKE_KW|MATCH */ - -3, /* (202) expr ::= expr likeop expr */ - -5, /* (203) expr ::= expr likeop expr ESCAPE expr */ - -2, /* (204) expr ::= expr ISNULL|NOTNULL */ - -3, /* (205) expr ::= expr NOT NULL */ - -3, /* (206) expr ::= expr IS expr */ - -4, /* (207) expr ::= expr IS NOT expr */ - -6, /* (208) expr ::= expr IS NOT DISTINCT FROM expr */ - -5, /* (209) expr ::= expr IS DISTINCT FROM expr */ - -2, /* (210) expr ::= NOT expr */ - -2, /* (211) expr ::= BITNOT expr */ - -2, /* (212) expr ::= PLUS|MINUS expr */ - -3, /* (213) expr ::= expr PTR expr */ - -1, /* (214) between_op ::= BETWEEN */ - -2, /* (215) between_op ::= NOT BETWEEN */ - -5, /* (216) expr ::= expr between_op expr AND expr */ - -1, /* (217) in_op ::= IN */ - -2, /* (218) in_op ::= NOT IN */ - -5, /* (219) expr ::= expr in_op LP exprlist RP */ - -3, /* (220) expr ::= LP select RP */ - -5, /* (221) expr ::= expr in_op LP select RP */ - -5, /* (222) expr ::= expr in_op nm dbnm paren_exprlist */ - -4, /* (223) expr ::= EXISTS LP select RP */ - -5, /* (224) expr ::= CASE case_operand case_exprlist case_else END */ - -5, /* (225) case_exprlist ::= case_exprlist WHEN expr THEN expr */ - -4, /* (226) case_exprlist ::= WHEN expr THEN expr */ - -2, /* (227) case_else ::= ELSE expr */ - 0, /* (228) case_else ::= */ - 0, /* (229) case_operand ::= */ - 0, /* (230) exprlist ::= */ - -3, /* (231) nexprlist ::= nexprlist COMMA expr */ - -1, /* (232) nexprlist ::= expr */ - 0, /* (233) paren_exprlist ::= */ - -3, /* (234) paren_exprlist ::= LP exprlist RP */ - -12, /* (235) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ - -1, /* (236) uniqueflag ::= UNIQUE */ - 0, /* (237) uniqueflag ::= */ - 0, /* (238) eidlist_opt ::= */ - -3, /* (239) eidlist_opt ::= LP eidlist RP */ - -5, /* (240) eidlist ::= eidlist COMMA nm collate sortorder */ - -3, /* (241) eidlist ::= nm collate sortorder */ - 0, /* (242) collate ::= */ - -2, /* (243) collate ::= COLLATE ID|STRING */ - -4, /* (244) cmd ::= DROP INDEX ifexists fullname */ - -2, /* (245) cmd ::= VACUUM vinto */ - -3, /* (246) cmd ::= VACUUM nm vinto */ - -2, /* (247) vinto ::= INTO expr */ - 0, /* (248) vinto ::= */ - -3, /* (249) cmd ::= PRAGMA nm dbnm */ - -5, /* (250) cmd ::= PRAGMA nm dbnm EQ nmnum */ - -6, /* (251) cmd ::= PRAGMA nm dbnm LP nmnum RP */ - -5, /* (252) cmd ::= PRAGMA nm dbnm EQ minus_num */ - -6, /* (253) cmd ::= PRAGMA nm dbnm LP minus_num RP */ - -2, /* (254) plus_num ::= PLUS INTEGER|FLOAT */ - -2, /* (255) minus_num ::= MINUS INTEGER|FLOAT */ - -5, /* (256) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ - -11, /* (257) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ - -1, /* (258) trigger_time ::= BEFORE|AFTER */ - -2, /* (259) trigger_time ::= INSTEAD OF */ - 0, /* (260) trigger_time ::= */ - -1, /* (261) trigger_event ::= DELETE|INSERT */ - -1, /* (262) trigger_event ::= UPDATE */ - -3, /* (263) trigger_event ::= UPDATE OF idlist */ - 0, /* (264) when_clause ::= */ - -2, /* (265) when_clause ::= WHEN expr */ - -3, /* (266) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ - -2, /* (267) trigger_cmd_list ::= trigger_cmd SEMI */ - -3, /* (268) trnm ::= nm DOT nm */ - -3, /* (269) tridxby ::= INDEXED BY nm */ - -2, /* (270) tridxby ::= NOT INDEXED */ - -9, /* (271) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ - -8, /* (272) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ - -6, /* (273) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ - -3, /* (274) trigger_cmd ::= scanpt select scanpt */ - -4, /* (275) expr ::= RAISE LP IGNORE RP */ - -6, /* (276) expr ::= RAISE LP raisetype COMMA nm RP */ - -1, /* (277) raisetype ::= ROLLBACK */ - -1, /* (278) raisetype ::= ABORT */ - -1, /* (279) raisetype ::= FAIL */ - -4, /* (280) cmd ::= DROP TRIGGER ifexists fullname */ - -6, /* (281) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ - -3, /* (282) cmd ::= DETACH database_kw_opt expr */ - 0, /* (283) key_opt ::= */ - -2, /* (284) key_opt ::= KEY expr */ - -1, /* (285) cmd ::= REINDEX */ - -3, /* (286) cmd ::= REINDEX nm dbnm */ - -1, /* (287) cmd ::= ANALYZE */ - -3, /* (288) cmd ::= ANALYZE nm dbnm */ - -6, /* (289) cmd ::= ALTER TABLE fullname RENAME TO nm */ - -7, /* (290) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ - -6, /* (291) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ - -1, /* (292) add_column_fullname ::= fullname */ - -8, /* (293) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ - -1, /* (294) cmd ::= create_vtab */ - -4, /* (295) cmd ::= create_vtab LP vtabarglist RP */ - -8, /* (296) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ - 0, /* (297) vtabarg ::= */ - -1, /* (298) vtabargtoken ::= ANY */ - -3, /* (299) vtabargtoken ::= lp anylist RP */ - -1, /* (300) lp ::= LP */ - -2, /* (301) with ::= WITH wqlist */ - -3, /* (302) with ::= WITH RECURSIVE wqlist */ - -1, /* (303) wqas ::= AS */ - -2, /* (304) wqas ::= AS MATERIALIZED */ - -3, /* (305) wqas ::= AS NOT MATERIALIZED */ - -6, /* (306) wqitem ::= nm eidlist_opt wqas LP select RP */ - -1, /* (307) wqlist ::= wqitem */ - -3, /* (308) wqlist ::= wqlist COMMA wqitem */ - -3, /* (309) windowdefn_list ::= windowdefn_list COMMA windowdefn */ - -5, /* (310) windowdefn ::= nm AS LP window RP */ - -5, /* (311) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ - -6, /* (312) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ - -4, /* (313) window ::= ORDER BY sortlist frame_opt */ - -5, /* (314) window ::= nm ORDER BY sortlist frame_opt */ - -2, /* (315) window ::= nm frame_opt */ - 0, /* (316) frame_opt ::= */ - -3, /* (317) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ - -6, /* (318) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ - -1, /* (319) range_or_rows ::= RANGE|ROWS|GROUPS */ - -1, /* (320) frame_bound_s ::= frame_bound */ - -2, /* (321) frame_bound_s ::= UNBOUNDED PRECEDING */ - -1, /* (322) frame_bound_e ::= frame_bound */ - -2, /* (323) frame_bound_e ::= UNBOUNDED FOLLOWING */ - -2, /* (324) frame_bound ::= expr PRECEDING|FOLLOWING */ - -2, /* (325) frame_bound ::= CURRENT ROW */ - 0, /* (326) frame_exclude_opt ::= */ - -2, /* (327) frame_exclude_opt ::= EXCLUDE frame_exclude */ - -2, /* (328) frame_exclude ::= NO OTHERS */ - -2, /* (329) frame_exclude ::= CURRENT ROW */ - -1, /* (330) frame_exclude ::= GROUP|TIES */ - -2, /* (331) window_clause ::= WINDOW windowdefn_list */ - -2, /* (332) filter_over ::= filter_clause over_clause */ - -1, /* (333) filter_over ::= over_clause */ - -1, /* (334) filter_over ::= filter_clause */ - -4, /* (335) over_clause ::= OVER LP window RP */ - -2, /* (336) over_clause ::= OVER nm */ - -5, /* (337) filter_clause ::= FILTER LP WHERE expr RP */ - -1, /* (338) input ::= cmdlist */ - -2, /* (339) cmdlist ::= cmdlist ecmd */ - -1, /* (340) cmdlist ::= ecmd */ - -1, /* (341) ecmd ::= SEMI */ - -2, /* (342) ecmd ::= cmdx SEMI */ - -3, /* (343) ecmd ::= explain cmdx SEMI */ - 0, /* (344) trans_opt ::= */ - -1, /* (345) trans_opt ::= TRANSACTION */ - -2, /* (346) trans_opt ::= TRANSACTION nm */ - -1, /* (347) savepoint_opt ::= SAVEPOINT */ - 0, /* (348) savepoint_opt ::= */ - -2, /* (349) cmd ::= create_table create_table_args */ - -1, /* (350) table_option_set ::= table_option */ - -4, /* (351) columnlist ::= columnlist COMMA columnname carglist */ - -2, /* (352) columnlist ::= columnname carglist */ - -1, /* (353) nm ::= ID|INDEXED|JOIN_KW */ - -1, /* (354) nm ::= STRING */ - -1, /* (355) typetoken ::= typename */ - -1, /* (356) typename ::= ID|STRING */ - -1, /* (357) signed ::= plus_num */ - -1, /* (358) signed ::= minus_num */ - -2, /* (359) carglist ::= carglist ccons */ - 0, /* (360) carglist ::= */ - -2, /* (361) ccons ::= NULL onconf */ - -4, /* (362) ccons ::= GENERATED ALWAYS AS generated */ - -2, /* (363) ccons ::= AS generated */ - -2, /* (364) conslist_opt ::= COMMA conslist */ - -3, /* (365) conslist ::= conslist tconscomma tcons */ - -1, /* (366) conslist ::= tcons */ - 0, /* (367) tconscomma ::= */ - -1, /* (368) defer_subclause_opt ::= defer_subclause */ - -1, /* (369) resolvetype ::= raisetype */ - -1, /* (370) selectnowith ::= oneselect */ - -1, /* (371) oneselect ::= values */ - -2, /* (372) sclp ::= selcollist COMMA */ - -1, /* (373) as ::= ID|STRING */ - -1, /* (374) indexed_opt ::= indexed_by */ - 0, /* (375) returning ::= */ - -1, /* (376) expr ::= term */ - -1, /* (377) likeop ::= LIKE_KW|MATCH */ - -1, /* (378) case_operand ::= expr */ - -1, /* (379) exprlist ::= nexprlist */ - -1, /* (380) nmnum ::= plus_num */ - -1, /* (381) nmnum ::= nm */ - -1, /* (382) nmnum ::= ON */ - -1, /* (383) nmnum ::= DELETE */ - -1, /* (384) nmnum ::= DEFAULT */ - -1, /* (385) plus_num ::= INTEGER|FLOAT */ - 0, /* (386) foreach_clause ::= */ - -3, /* (387) foreach_clause ::= FOR EACH ROW */ - -1, /* (388) trnm ::= nm */ - 0, /* (389) tridxby ::= */ - -1, /* (390) database_kw_opt ::= DATABASE */ - 0, /* (391) database_kw_opt ::= */ - 0, /* (392) kwcolumn_opt ::= */ - -1, /* (393) kwcolumn_opt ::= COLUMNKW */ - -1, /* (394) vtabarglist ::= vtabarg */ - -3, /* (395) vtabarglist ::= vtabarglist COMMA vtabarg */ - -2, /* (396) vtabarg ::= vtabarg vtabargtoken */ - 0, /* (397) anylist ::= */ - -4, /* (398) anylist ::= anylist LP anylist RP */ - -2, /* (399) anylist ::= anylist ANY */ - 0, /* (400) with ::= */ - -1, /* (401) windowdefn_list ::= windowdefn */ - -1, /* (402) window ::= frame_opt */ + -8, /* (188) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ + -4, /* (189) expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ + -6, /* (190) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ + -9, /* (191) expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ + -5, /* (192) expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ + -1, /* (193) term ::= CTIME_KW */ + -5, /* (194) expr ::= LP nexprlist COMMA expr RP */ + -3, /* (195) expr ::= expr AND expr */ + -3, /* (196) expr ::= expr OR expr */ + -3, /* (197) expr ::= expr LT|GT|GE|LE expr */ + -3, /* (198) expr ::= expr EQ|NE expr */ + -3, /* (199) expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ + -3, /* (200) expr ::= expr PLUS|MINUS expr */ + -3, /* (201) expr ::= expr STAR|SLASH|REM expr */ + -3, /* (202) expr ::= expr CONCAT expr */ + -2, /* (203) likeop ::= NOT LIKE_KW|MATCH */ + -3, /* (204) expr ::= expr likeop expr */ + -5, /* (205) expr ::= expr likeop expr ESCAPE expr */ + -2, /* (206) expr ::= expr ISNULL|NOTNULL */ + -3, /* (207) expr ::= expr NOT NULL */ + -3, /* (208) expr ::= expr IS expr */ + -4, /* (209) expr ::= expr IS NOT expr */ + -6, /* (210) expr ::= expr IS NOT DISTINCT FROM expr */ + -5, /* (211) expr ::= expr IS DISTINCT FROM expr */ + -2, /* (212) expr ::= NOT expr */ + -2, /* (213) expr ::= BITNOT expr */ + -2, /* (214) expr ::= PLUS|MINUS expr */ + -3, /* (215) expr ::= expr PTR expr */ + -1, /* (216) between_op ::= BETWEEN */ + -2, /* (217) between_op ::= NOT BETWEEN */ + -5, /* (218) expr ::= expr between_op expr AND expr */ + -1, /* (219) in_op ::= IN */ + -2, /* (220) in_op ::= NOT IN */ + -5, /* (221) expr ::= expr in_op LP exprlist RP */ + -3, /* (222) expr ::= LP select RP */ + -5, /* (223) expr ::= expr in_op LP select RP */ + -5, /* (224) expr ::= expr in_op nm dbnm paren_exprlist */ + -4, /* (225) expr ::= EXISTS LP select RP */ + -5, /* (226) expr ::= CASE case_operand case_exprlist case_else END */ + -5, /* (227) case_exprlist ::= case_exprlist WHEN expr THEN expr */ + -4, /* (228) case_exprlist ::= WHEN expr THEN expr */ + -2, /* (229) case_else ::= ELSE expr */ + 0, /* (230) case_else ::= */ + 0, /* (231) case_operand ::= */ + 0, /* (232) exprlist ::= */ + -3, /* (233) nexprlist ::= nexprlist COMMA expr */ + -1, /* (234) nexprlist ::= expr */ + 0, /* (235) paren_exprlist ::= */ + -3, /* (236) paren_exprlist ::= LP exprlist RP */ + -12, /* (237) cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ + -1, /* (238) uniqueflag ::= UNIQUE */ + 0, /* (239) uniqueflag ::= */ + 0, /* (240) eidlist_opt ::= */ + -3, /* (241) eidlist_opt ::= LP eidlist RP */ + -5, /* (242) eidlist ::= eidlist COMMA nm collate sortorder */ + -3, /* (243) eidlist ::= nm collate sortorder */ + 0, /* (244) collate ::= */ + -2, /* (245) collate ::= COLLATE ID|STRING */ + -4, /* (246) cmd ::= DROP INDEX ifexists fullname */ + -2, /* (247) cmd ::= VACUUM vinto */ + -3, /* (248) cmd ::= VACUUM nm vinto */ + -2, /* (249) vinto ::= INTO expr */ + 0, /* (250) vinto ::= */ + -3, /* (251) cmd ::= PRAGMA nm dbnm */ + -5, /* (252) cmd ::= PRAGMA nm dbnm EQ nmnum */ + -6, /* (253) cmd ::= PRAGMA nm dbnm LP nmnum RP */ + -5, /* (254) cmd ::= PRAGMA nm dbnm EQ minus_num */ + -6, /* (255) cmd ::= PRAGMA nm dbnm LP minus_num RP */ + -2, /* (256) plus_num ::= PLUS INTEGER|FLOAT */ + -2, /* (257) minus_num ::= MINUS INTEGER|FLOAT */ + -5, /* (258) cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ + -11, /* (259) trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ + -1, /* (260) trigger_time ::= BEFORE|AFTER */ + -2, /* (261) trigger_time ::= INSTEAD OF */ + 0, /* (262) trigger_time ::= */ + -1, /* (263) trigger_event ::= DELETE|INSERT */ + -1, /* (264) trigger_event ::= UPDATE */ + -3, /* (265) trigger_event ::= UPDATE OF idlist */ + 0, /* (266) when_clause ::= */ + -2, /* (267) when_clause ::= WHEN expr */ + -3, /* (268) trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ + -2, /* (269) trigger_cmd_list ::= trigger_cmd SEMI */ + -3, /* (270) trnm ::= nm DOT nm */ + -3, /* (271) tridxby ::= INDEXED BY nm */ + -2, /* (272) tridxby ::= NOT INDEXED */ + -9, /* (273) trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ + -8, /* (274) trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ + -6, /* (275) trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ + -3, /* (276) trigger_cmd ::= scanpt select scanpt */ + -4, /* (277) expr ::= RAISE LP IGNORE RP */ + -6, /* (278) expr ::= RAISE LP raisetype COMMA nm RP */ + -1, /* (279) raisetype ::= ROLLBACK */ + -1, /* (280) raisetype ::= ABORT */ + -1, /* (281) raisetype ::= FAIL */ + -4, /* (282) cmd ::= DROP TRIGGER ifexists fullname */ + -6, /* (283) cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ + -3, /* (284) cmd ::= DETACH database_kw_opt expr */ + 0, /* (285) key_opt ::= */ + -2, /* (286) key_opt ::= KEY expr */ + -1, /* (287) cmd ::= REINDEX */ + -3, /* (288) cmd ::= REINDEX nm dbnm */ + -1, /* (289) cmd ::= ANALYZE */ + -3, /* (290) cmd ::= ANALYZE nm dbnm */ + -6, /* (291) cmd ::= ALTER TABLE fullname RENAME TO nm */ + -7, /* (292) cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ + -6, /* (293) cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ + -1, /* (294) add_column_fullname ::= fullname */ + -8, /* (295) cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ + -1, /* (296) cmd ::= create_vtab */ + -4, /* (297) cmd ::= create_vtab LP vtabarglist RP */ + -8, /* (298) create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ + 0, /* (299) vtabarg ::= */ + -1, /* (300) vtabargtoken ::= ANY */ + -3, /* (301) vtabargtoken ::= lp anylist RP */ + -1, /* (302) lp ::= LP */ + -2, /* (303) with ::= WITH wqlist */ + -3, /* (304) with ::= WITH RECURSIVE wqlist */ + -1, /* (305) wqas ::= AS */ + -2, /* (306) wqas ::= AS MATERIALIZED */ + -3, /* (307) wqas ::= AS NOT MATERIALIZED */ + -6, /* (308) wqitem ::= nm eidlist_opt wqas LP select RP */ + -1, /* (309) wqlist ::= wqitem */ + -3, /* (310) wqlist ::= wqlist COMMA wqitem */ + -3, /* (311) windowdefn_list ::= windowdefn_list COMMA windowdefn */ + -5, /* (312) windowdefn ::= nm AS LP window RP */ + -5, /* (313) window ::= PARTITION BY nexprlist orderby_opt frame_opt */ + -6, /* (314) window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ + -4, /* (315) window ::= ORDER BY sortlist frame_opt */ + -5, /* (316) window ::= nm ORDER BY sortlist frame_opt */ + -2, /* (317) window ::= nm frame_opt */ + 0, /* (318) frame_opt ::= */ + -3, /* (319) frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ + -6, /* (320) frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ + -1, /* (321) range_or_rows ::= RANGE|ROWS|GROUPS */ + -1, /* (322) frame_bound_s ::= frame_bound */ + -2, /* (323) frame_bound_s ::= UNBOUNDED PRECEDING */ + -1, /* (324) frame_bound_e ::= frame_bound */ + -2, /* (325) frame_bound_e ::= UNBOUNDED FOLLOWING */ + -2, /* (326) frame_bound ::= expr PRECEDING|FOLLOWING */ + -2, /* (327) frame_bound ::= CURRENT ROW */ + 0, /* (328) frame_exclude_opt ::= */ + -2, /* (329) frame_exclude_opt ::= EXCLUDE frame_exclude */ + -2, /* (330) frame_exclude ::= NO OTHERS */ + -2, /* (331) frame_exclude ::= CURRENT ROW */ + -1, /* (332) frame_exclude ::= GROUP|TIES */ + -2, /* (333) window_clause ::= WINDOW windowdefn_list */ + -2, /* (334) filter_over ::= filter_clause over_clause */ + -1, /* (335) filter_over ::= over_clause */ + -1, /* (336) filter_over ::= filter_clause */ + -4, /* (337) over_clause ::= OVER LP window RP */ + -2, /* (338) over_clause ::= OVER nm */ + -5, /* (339) filter_clause ::= FILTER LP WHERE expr RP */ + -1, /* (340) input ::= cmdlist */ + -2, /* (341) cmdlist ::= cmdlist ecmd */ + -1, /* (342) cmdlist ::= ecmd */ + -1, /* (343) ecmd ::= SEMI */ + -2, /* (344) ecmd ::= cmdx SEMI */ + -3, /* (345) ecmd ::= explain cmdx SEMI */ + 0, /* (346) trans_opt ::= */ + -1, /* (347) trans_opt ::= TRANSACTION */ + -2, /* (348) trans_opt ::= TRANSACTION nm */ + -1, /* (349) savepoint_opt ::= SAVEPOINT */ + 0, /* (350) savepoint_opt ::= */ + -2, /* (351) cmd ::= create_table create_table_args */ + -1, /* (352) table_option_set ::= table_option */ + -4, /* (353) columnlist ::= columnlist COMMA columnname carglist */ + -2, /* (354) columnlist ::= columnname carglist */ + -1, /* (355) nm ::= ID|INDEXED|JOIN_KW */ + -1, /* (356) nm ::= STRING */ + -1, /* (357) typetoken ::= typename */ + -1, /* (358) typename ::= ID|STRING */ + -1, /* (359) signed ::= plus_num */ + -1, /* (360) signed ::= minus_num */ + -2, /* (361) carglist ::= carglist ccons */ + 0, /* (362) carglist ::= */ + -2, /* (363) ccons ::= NULL onconf */ + -4, /* (364) ccons ::= GENERATED ALWAYS AS generated */ + -2, /* (365) ccons ::= AS generated */ + -2, /* (366) conslist_opt ::= COMMA conslist */ + -3, /* (367) conslist ::= conslist tconscomma tcons */ + -1, /* (368) conslist ::= tcons */ + 0, /* (369) tconscomma ::= */ + -1, /* (370) defer_subclause_opt ::= defer_subclause */ + -1, /* (371) resolvetype ::= raisetype */ + -1, /* (372) selectnowith ::= oneselect */ + -1, /* (373) oneselect ::= values */ + -2, /* (374) sclp ::= selcollist COMMA */ + -1, /* (375) as ::= ID|STRING */ + -1, /* (376) indexed_opt ::= indexed_by */ + 0, /* (377) returning ::= */ + -1, /* (378) expr ::= term */ + -1, /* (379) likeop ::= LIKE_KW|MATCH */ + -1, /* (380) case_operand ::= expr */ + -1, /* (381) exprlist ::= nexprlist */ + -1, /* (382) nmnum ::= plus_num */ + -1, /* (383) nmnum ::= nm */ + -1, /* (384) nmnum ::= ON */ + -1, /* (385) nmnum ::= DELETE */ + -1, /* (386) nmnum ::= DEFAULT */ + -1, /* (387) plus_num ::= INTEGER|FLOAT */ + 0, /* (388) foreach_clause ::= */ + -3, /* (389) foreach_clause ::= FOR EACH ROW */ + -1, /* (390) trnm ::= nm */ + 0, /* (391) tridxby ::= */ + -1, /* (392) database_kw_opt ::= DATABASE */ + 0, /* (393) database_kw_opt ::= */ + 0, /* (394) kwcolumn_opt ::= */ + -1, /* (395) kwcolumn_opt ::= COLUMNKW */ + -1, /* (396) vtabarglist ::= vtabarg */ + -3, /* (397) vtabarglist ::= vtabarglist COMMA vtabarg */ + -2, /* (398) vtabarg ::= vtabarg vtabargtoken */ + 0, /* (399) anylist ::= */ + -4, /* (400) anylist ::= anylist LP anylist RP */ + -2, /* (401) anylist ::= anylist ANY */ + 0, /* (402) with ::= */ + -1, /* (403) windowdefn_list ::= windowdefn */ + -1, /* (404) window ::= frame_opt */ }; static void yy_accept(yyParser*); /* Forward Declaration */ @@ -172820,7 +174512,7 @@ static YYACTIONTYPE yy_reduce( case 5: /* transtype ::= DEFERRED */ case 6: /* transtype ::= IMMEDIATE */ yytestcase(yyruleno==6); case 7: /* transtype ::= EXCLUSIVE */ yytestcase(yyruleno==7); - case 319: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==319); + case 321: /* range_or_rows ::= RANGE|ROWS|GROUPS */ yytestcase(yyruleno==321); {yymsp[0].minor.yy394 = yymsp[0].major; /*A-overwrites-X*/} break; case 8: /* cmd ::= COMMIT|END trans_opt */ @@ -172857,7 +174549,7 @@ static YYACTIONTYPE yy_reduce( case 72: /* defer_subclause_opt ::= */ yytestcase(yyruleno==72); case 81: /* ifexists ::= */ yytestcase(yyruleno==81); case 98: /* distinct ::= */ yytestcase(yyruleno==98); - case 242: /* collate ::= */ yytestcase(yyruleno==242); + case 244: /* collate ::= */ yytestcase(yyruleno==244); {yymsp[1].minor.yy394 = 0;} break; case 16: /* ifnotexists ::= IF NOT EXISTS */ @@ -173041,9 +174733,9 @@ static YYACTIONTYPE yy_reduce( break; case 63: /* init_deferred_pred_opt ::= INITIALLY DEFERRED */ case 80: /* ifexists ::= IF EXISTS */ yytestcase(yyruleno==80); - case 215: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==215); - case 218: /* in_op ::= NOT IN */ yytestcase(yyruleno==218); - case 243: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==243); + case 217: /* between_op ::= NOT BETWEEN */ yytestcase(yyruleno==217); + case 220: /* in_op ::= NOT IN */ yytestcase(yyruleno==220); + case 245: /* collate ::= COLLATE ID|STRING */ yytestcase(yyruleno==245); {yymsp[-1].minor.yy394 = 1;} break; case 64: /* init_deferred_pred_opt ::= INITIALLY IMMEDIATE */ @@ -173192,9 +174884,9 @@ static YYACTIONTYPE yy_reduce( case 99: /* sclp ::= */ case 132: /* orderby_opt ::= */ yytestcase(yyruleno==132); case 142: /* groupby_opt ::= */ yytestcase(yyruleno==142); - case 230: /* exprlist ::= */ yytestcase(yyruleno==230); - case 233: /* paren_exprlist ::= */ yytestcase(yyruleno==233); - case 238: /* eidlist_opt ::= */ yytestcase(yyruleno==238); + case 232: /* exprlist ::= */ yytestcase(yyruleno==232); + case 235: /* paren_exprlist ::= */ yytestcase(yyruleno==235); + case 240: /* eidlist_opt ::= */ yytestcase(yyruleno==240); {yymsp[1].minor.yy322 = 0;} break; case 100: /* selcollist ::= sclp scanpt expr scanpt as */ @@ -173223,8 +174915,8 @@ static YYACTIONTYPE yy_reduce( break; case 103: /* as ::= AS nm */ case 115: /* dbnm ::= DOT nm */ yytestcase(yyruleno==115); - case 254: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==254); - case 255: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==255); + case 256: /* plus_num ::= PLUS INTEGER|FLOAT */ yytestcase(yyruleno==256); + case 257: /* minus_num ::= MINUS INTEGER|FLOAT */ yytestcase(yyruleno==257); {yymsp[-1].minor.yy0 = yymsp[0].minor.yy0;} break; case 105: /* from ::= */ @@ -173396,16 +175088,16 @@ static YYACTIONTYPE yy_reduce( case 146: /* limit_opt ::= */ yytestcase(yyruleno==146); case 151: /* where_opt ::= */ yytestcase(yyruleno==151); case 153: /* where_opt_ret ::= */ yytestcase(yyruleno==153); - case 228: /* case_else ::= */ yytestcase(yyruleno==228); - case 229: /* case_operand ::= */ yytestcase(yyruleno==229); - case 248: /* vinto ::= */ yytestcase(yyruleno==248); + case 230: /* case_else ::= */ yytestcase(yyruleno==230); + case 231: /* case_operand ::= */ yytestcase(yyruleno==231); + case 250: /* vinto ::= */ yytestcase(yyruleno==250); {yymsp[1].minor.yy528 = 0;} break; case 145: /* having_opt ::= HAVING expr */ case 152: /* where_opt ::= WHERE expr */ yytestcase(yyruleno==152); case 154: /* where_opt_ret ::= WHERE expr */ yytestcase(yyruleno==154); - case 227: /* case_else ::= ELSE expr */ yytestcase(yyruleno==227); - case 247: /* vinto ::= INTO expr */ yytestcase(yyruleno==247); + case 229: /* case_else ::= ELSE expr */ yytestcase(yyruleno==229); + case 249: /* vinto ::= INTO expr */ yytestcase(yyruleno==249); {yymsp[-1].minor.yy528 = yymsp[0].minor.yy528;} break; case 147: /* limit_opt ::= LIMIT expr */ @@ -173591,33 +175283,48 @@ static YYACTIONTYPE yy_reduce( } yymsp[-4].minor.yy528 = yylhsminor.yy528; break; - case 188: /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ + case 188: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP */ +{ + yylhsminor.yy528 = sqlite3ExprFunction(pParse, yymsp[-4].minor.yy322, &yymsp[-7].minor.yy0, yymsp[-5].minor.yy394); + sqlite3ExprAddFunctionOrderBy(pParse, yylhsminor.yy528, yymsp[-1].minor.yy322); +} + yymsp[-7].minor.yy528 = yylhsminor.yy528; + break; + case 189: /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP */ { yylhsminor.yy528 = sqlite3ExprFunction(pParse, 0, &yymsp[-3].minor.yy0, 0); } yymsp[-3].minor.yy528 = yylhsminor.yy528; break; - case 189: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ + case 190: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist RP filter_over */ { yylhsminor.yy528 = sqlite3ExprFunction(pParse, yymsp[-2].minor.yy322, &yymsp[-5].minor.yy0, yymsp[-3].minor.yy394); sqlite3WindowAttach(pParse, yylhsminor.yy528, yymsp[0].minor.yy41); } yymsp[-5].minor.yy528 = yylhsminor.yy528; break; - case 190: /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ + case 191: /* expr ::= ID|INDEXED|JOIN_KW LP distinct exprlist ORDER BY sortlist RP filter_over */ +{ + yylhsminor.yy528 = sqlite3ExprFunction(pParse, yymsp[-5].minor.yy322, &yymsp[-8].minor.yy0, yymsp[-6].minor.yy394); + sqlite3WindowAttach(pParse, yylhsminor.yy528, yymsp[0].minor.yy41); + sqlite3ExprAddFunctionOrderBy(pParse, yylhsminor.yy528, yymsp[-2].minor.yy322); +} + yymsp[-8].minor.yy528 = yylhsminor.yy528; + break; + case 192: /* expr ::= ID|INDEXED|JOIN_KW LP STAR RP filter_over */ { yylhsminor.yy528 = sqlite3ExprFunction(pParse, 0, &yymsp[-4].minor.yy0, 0); sqlite3WindowAttach(pParse, yylhsminor.yy528, yymsp[0].minor.yy41); } yymsp[-4].minor.yy528 = yylhsminor.yy528; break; - case 191: /* term ::= CTIME_KW */ + case 193: /* term ::= CTIME_KW */ { yylhsminor.yy528 = sqlite3ExprFunction(pParse, 0, &yymsp[0].minor.yy0, 0); } yymsp[0].minor.yy528 = yylhsminor.yy528; break; - case 192: /* expr ::= LP nexprlist COMMA expr RP */ + case 194: /* expr ::= LP nexprlist COMMA expr RP */ { ExprList *pList = sqlite3ExprListAppend(pParse, yymsp[-3].minor.yy322, yymsp[-1].minor.yy528); yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_VECTOR, 0, 0); @@ -173631,22 +175338,22 @@ static YYACTIONTYPE yy_reduce( } } break; - case 193: /* expr ::= expr AND expr */ + case 195: /* expr ::= expr AND expr */ {yymsp[-2].minor.yy528=sqlite3ExprAnd(pParse,yymsp[-2].minor.yy528,yymsp[0].minor.yy528);} break; - case 194: /* expr ::= expr OR expr */ - case 195: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==195); - case 196: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==196); - case 197: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==197); - case 198: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==198); - case 199: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==199); - case 200: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==200); + case 196: /* expr ::= expr OR expr */ + case 197: /* expr ::= expr LT|GT|GE|LE expr */ yytestcase(yyruleno==197); + case 198: /* expr ::= expr EQ|NE expr */ yytestcase(yyruleno==198); + case 199: /* expr ::= expr BITAND|BITOR|LSHIFT|RSHIFT expr */ yytestcase(yyruleno==199); + case 200: /* expr ::= expr PLUS|MINUS expr */ yytestcase(yyruleno==200); + case 201: /* expr ::= expr STAR|SLASH|REM expr */ yytestcase(yyruleno==201); + case 202: /* expr ::= expr CONCAT expr */ yytestcase(yyruleno==202); {yymsp[-2].minor.yy528=sqlite3PExpr(pParse,yymsp[-1].major,yymsp[-2].minor.yy528,yymsp[0].minor.yy528);} break; - case 201: /* likeop ::= NOT LIKE_KW|MATCH */ + case 203: /* likeop ::= NOT LIKE_KW|MATCH */ {yymsp[-1].minor.yy0=yymsp[0].minor.yy0; yymsp[-1].minor.yy0.n|=0x80000000; /*yymsp[-1].minor.yy0-overwrite-yymsp[0].minor.yy0*/} break; - case 202: /* expr ::= expr likeop expr */ + case 204: /* expr ::= expr likeop expr */ { ExprList *pList; int bNot = yymsp[-1].minor.yy0.n & 0x80000000; @@ -173658,7 +175365,7 @@ static YYACTIONTYPE yy_reduce( if( yymsp[-2].minor.yy528 ) yymsp[-2].minor.yy528->flags |= EP_InfixFunc; } break; - case 203: /* expr ::= expr likeop expr ESCAPE expr */ + case 205: /* expr ::= expr likeop expr ESCAPE expr */ { ExprList *pList; int bNot = yymsp[-3].minor.yy0.n & 0x80000000; @@ -173671,47 +175378,47 @@ static YYACTIONTYPE yy_reduce( if( yymsp[-4].minor.yy528 ) yymsp[-4].minor.yy528->flags |= EP_InfixFunc; } break; - case 204: /* expr ::= expr ISNULL|NOTNULL */ + case 206: /* expr ::= expr ISNULL|NOTNULL */ {yymsp[-1].minor.yy528 = sqlite3PExpr(pParse,yymsp[0].major,yymsp[-1].minor.yy528,0);} break; - case 205: /* expr ::= expr NOT NULL */ + case 207: /* expr ::= expr NOT NULL */ {yymsp[-2].minor.yy528 = sqlite3PExpr(pParse,TK_NOTNULL,yymsp[-2].minor.yy528,0);} break; - case 206: /* expr ::= expr IS expr */ + case 208: /* expr ::= expr IS expr */ { yymsp[-2].minor.yy528 = sqlite3PExpr(pParse,TK_IS,yymsp[-2].minor.yy528,yymsp[0].minor.yy528); binaryToUnaryIfNull(pParse, yymsp[0].minor.yy528, yymsp[-2].minor.yy528, TK_ISNULL); } break; - case 207: /* expr ::= expr IS NOT expr */ + case 209: /* expr ::= expr IS NOT expr */ { yymsp[-3].minor.yy528 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-3].minor.yy528,yymsp[0].minor.yy528); binaryToUnaryIfNull(pParse, yymsp[0].minor.yy528, yymsp[-3].minor.yy528, TK_NOTNULL); } break; - case 208: /* expr ::= expr IS NOT DISTINCT FROM expr */ + case 210: /* expr ::= expr IS NOT DISTINCT FROM expr */ { yymsp[-5].minor.yy528 = sqlite3PExpr(pParse,TK_IS,yymsp[-5].minor.yy528,yymsp[0].minor.yy528); binaryToUnaryIfNull(pParse, yymsp[0].minor.yy528, yymsp[-5].minor.yy528, TK_ISNULL); } break; - case 209: /* expr ::= expr IS DISTINCT FROM expr */ + case 211: /* expr ::= expr IS DISTINCT FROM expr */ { yymsp[-4].minor.yy528 = sqlite3PExpr(pParse,TK_ISNOT,yymsp[-4].minor.yy528,yymsp[0].minor.yy528); binaryToUnaryIfNull(pParse, yymsp[0].minor.yy528, yymsp[-4].minor.yy528, TK_NOTNULL); } break; - case 210: /* expr ::= NOT expr */ - case 211: /* expr ::= BITNOT expr */ yytestcase(yyruleno==211); + case 212: /* expr ::= NOT expr */ + case 213: /* expr ::= BITNOT expr */ yytestcase(yyruleno==213); {yymsp[-1].minor.yy528 = sqlite3PExpr(pParse, yymsp[-1].major, yymsp[0].minor.yy528, 0);/*A-overwrites-B*/} break; - case 212: /* expr ::= PLUS|MINUS expr */ + case 214: /* expr ::= PLUS|MINUS expr */ { yymsp[-1].minor.yy528 = sqlite3PExpr(pParse, yymsp[-1].major==TK_PLUS ? TK_UPLUS : TK_UMINUS, yymsp[0].minor.yy528, 0); /*A-overwrites-B*/ } break; - case 213: /* expr ::= expr PTR expr */ + case 215: /* expr ::= expr PTR expr */ { ExprList *pList = sqlite3ExprListAppend(pParse, 0, yymsp[-2].minor.yy528); pList = sqlite3ExprListAppend(pParse, pList, yymsp[0].minor.yy528); @@ -173719,11 +175426,11 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy528 = yylhsminor.yy528; break; - case 214: /* between_op ::= BETWEEN */ - case 217: /* in_op ::= IN */ yytestcase(yyruleno==217); + case 216: /* between_op ::= BETWEEN */ + case 219: /* in_op ::= IN */ yytestcase(yyruleno==219); {yymsp[0].minor.yy394 = 0;} break; - case 216: /* expr ::= expr between_op expr AND expr */ + case 218: /* expr ::= expr between_op expr AND expr */ { ExprList *pList = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy528); pList = sqlite3ExprListAppend(pParse,pList, yymsp[0].minor.yy528); @@ -173736,7 +175443,7 @@ static YYACTIONTYPE yy_reduce( if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0); } break; - case 219: /* expr ::= expr in_op LP exprlist RP */ + case 221: /* expr ::= expr in_op LP exprlist RP */ { if( yymsp[-1].minor.yy322==0 ){ /* Expressions of the form @@ -173782,20 +175489,20 @@ static YYACTIONTYPE yy_reduce( } } break; - case 220: /* expr ::= LP select RP */ + case 222: /* expr ::= LP select RP */ { yymsp[-2].minor.yy528 = sqlite3PExpr(pParse, TK_SELECT, 0, 0); sqlite3PExprAddSelect(pParse, yymsp[-2].minor.yy528, yymsp[-1].minor.yy47); } break; - case 221: /* expr ::= expr in_op LP select RP */ + case 223: /* expr ::= expr in_op LP select RP */ { yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_IN, yymsp[-4].minor.yy528, 0); sqlite3PExprAddSelect(pParse, yymsp[-4].minor.yy528, yymsp[-1].minor.yy47); if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0); } break; - case 222: /* expr ::= expr in_op nm dbnm paren_exprlist */ + case 224: /* expr ::= expr in_op nm dbnm paren_exprlist */ { SrcList *pSrc = sqlite3SrcListAppend(pParse, 0,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy0); Select *pSelect = sqlite3SelectNew(pParse, 0,pSrc,0,0,0,0,0,0); @@ -173805,14 +175512,14 @@ static YYACTIONTYPE yy_reduce( if( yymsp[-3].minor.yy394 ) yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_NOT, yymsp[-4].minor.yy528, 0); } break; - case 223: /* expr ::= EXISTS LP select RP */ + case 225: /* expr ::= EXISTS LP select RP */ { Expr *p; p = yymsp[-3].minor.yy528 = sqlite3PExpr(pParse, TK_EXISTS, 0, 0); sqlite3PExprAddSelect(pParse, p, yymsp[-1].minor.yy47); } break; - case 224: /* expr ::= CASE case_operand case_exprlist case_else END */ + case 226: /* expr ::= CASE case_operand case_exprlist case_else END */ { yymsp[-4].minor.yy528 = sqlite3PExpr(pParse, TK_CASE, yymsp[-3].minor.yy528, 0); if( yymsp[-4].minor.yy528 ){ @@ -173824,29 +175531,29 @@ static YYACTIONTYPE yy_reduce( } } break; - case 225: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ + case 227: /* case_exprlist ::= case_exprlist WHEN expr THEN expr */ { yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[-2].minor.yy528); yymsp[-4].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-4].minor.yy322, yymsp[0].minor.yy528); } break; - case 226: /* case_exprlist ::= WHEN expr THEN expr */ + case 228: /* case_exprlist ::= WHEN expr THEN expr */ { yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,0, yymsp[-2].minor.yy528); yymsp[-3].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-3].minor.yy322, yymsp[0].minor.yy528); } break; - case 231: /* nexprlist ::= nexprlist COMMA expr */ + case 233: /* nexprlist ::= nexprlist COMMA expr */ {yymsp[-2].minor.yy322 = sqlite3ExprListAppend(pParse,yymsp[-2].minor.yy322,yymsp[0].minor.yy528);} break; - case 232: /* nexprlist ::= expr */ + case 234: /* nexprlist ::= expr */ {yymsp[0].minor.yy322 = sqlite3ExprListAppend(pParse,0,yymsp[0].minor.yy528); /*A-overwrites-Y*/} break; - case 234: /* paren_exprlist ::= LP exprlist RP */ - case 239: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==239); + case 236: /* paren_exprlist ::= LP exprlist RP */ + case 241: /* eidlist_opt ::= LP eidlist RP */ yytestcase(yyruleno==241); {yymsp[-2].minor.yy322 = yymsp[-1].minor.yy322;} break; - case 235: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ + case 237: /* cmd ::= createkw uniqueflag INDEX ifnotexists nm dbnm ON nm LP sortlist RP where_opt */ { sqlite3CreateIndex(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, sqlite3SrcListAppend(pParse,0,&yymsp[-4].minor.yy0,0), yymsp[-2].minor.yy322, yymsp[-10].minor.yy394, @@ -173856,48 +175563,48 @@ static YYACTIONTYPE yy_reduce( } } break; - case 236: /* uniqueflag ::= UNIQUE */ - case 278: /* raisetype ::= ABORT */ yytestcase(yyruleno==278); + case 238: /* uniqueflag ::= UNIQUE */ + case 280: /* raisetype ::= ABORT */ yytestcase(yyruleno==280); {yymsp[0].minor.yy394 = OE_Abort;} break; - case 237: /* uniqueflag ::= */ + case 239: /* uniqueflag ::= */ {yymsp[1].minor.yy394 = OE_None;} break; - case 240: /* eidlist ::= eidlist COMMA nm collate sortorder */ + case 242: /* eidlist ::= eidlist COMMA nm collate sortorder */ { yymsp[-4].minor.yy322 = parserAddExprIdListTerm(pParse, yymsp[-4].minor.yy322, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy394, yymsp[0].minor.yy394); } break; - case 241: /* eidlist ::= nm collate sortorder */ + case 243: /* eidlist ::= nm collate sortorder */ { yymsp[-2].minor.yy322 = parserAddExprIdListTerm(pParse, 0, &yymsp[-2].minor.yy0, yymsp[-1].minor.yy394, yymsp[0].minor.yy394); /*A-overwrites-Y*/ } break; - case 244: /* cmd ::= DROP INDEX ifexists fullname */ + case 246: /* cmd ::= DROP INDEX ifexists fullname */ {sqlite3DropIndex(pParse, yymsp[0].minor.yy131, yymsp[-1].minor.yy394);} break; - case 245: /* cmd ::= VACUUM vinto */ + case 247: /* cmd ::= VACUUM vinto */ {sqlite3Vacuum(pParse,0,yymsp[0].minor.yy528);} break; - case 246: /* cmd ::= VACUUM nm vinto */ + case 248: /* cmd ::= VACUUM nm vinto */ {sqlite3Vacuum(pParse,&yymsp[-1].minor.yy0,yymsp[0].minor.yy528);} break; - case 249: /* cmd ::= PRAGMA nm dbnm */ + case 251: /* cmd ::= PRAGMA nm dbnm */ {sqlite3Pragma(pParse,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy0,0,0);} break; - case 250: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ + case 252: /* cmd ::= PRAGMA nm dbnm EQ nmnum */ {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,0);} break; - case 251: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ + case 253: /* cmd ::= PRAGMA nm dbnm LP nmnum RP */ {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,0);} break; - case 252: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ + case 254: /* cmd ::= PRAGMA nm dbnm EQ minus_num */ {sqlite3Pragma(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0,1);} break; - case 253: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ + case 255: /* cmd ::= PRAGMA nm dbnm LP minus_num RP */ {sqlite3Pragma(pParse,&yymsp[-4].minor.yy0,&yymsp[-3].minor.yy0,&yymsp[-1].minor.yy0,1);} break; - case 256: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ + case 258: /* cmd ::= createkw trigger_decl BEGIN trigger_cmd_list END */ { Token all; all.z = yymsp[-3].minor.yy0.z; @@ -173905,50 +175612,50 @@ static YYACTIONTYPE yy_reduce( sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy33, &all); } break; - case 257: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ + case 259: /* trigger_decl ::= temp TRIGGER ifnotexists nm dbnm trigger_time trigger_event ON fullname foreach_clause when_clause */ { sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy0, &yymsp[-6].minor.yy0, yymsp[-5].minor.yy394, yymsp[-4].minor.yy180.a, yymsp[-4].minor.yy180.b, yymsp[-2].minor.yy131, yymsp[0].minor.yy528, yymsp[-10].minor.yy394, yymsp[-8].minor.yy394); yymsp[-10].minor.yy0 = (yymsp[-6].minor.yy0.n==0?yymsp[-7].minor.yy0:yymsp[-6].minor.yy0); /*A-overwrites-T*/ } break; - case 258: /* trigger_time ::= BEFORE|AFTER */ + case 260: /* trigger_time ::= BEFORE|AFTER */ { yymsp[0].minor.yy394 = yymsp[0].major; /*A-overwrites-X*/ } break; - case 259: /* trigger_time ::= INSTEAD OF */ + case 261: /* trigger_time ::= INSTEAD OF */ { yymsp[-1].minor.yy394 = TK_INSTEAD;} break; - case 260: /* trigger_time ::= */ + case 262: /* trigger_time ::= */ { yymsp[1].minor.yy394 = TK_BEFORE; } break; - case 261: /* trigger_event ::= DELETE|INSERT */ - case 262: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==262); + case 263: /* trigger_event ::= DELETE|INSERT */ + case 264: /* trigger_event ::= UPDATE */ yytestcase(yyruleno==264); {yymsp[0].minor.yy180.a = yymsp[0].major; /*A-overwrites-X*/ yymsp[0].minor.yy180.b = 0;} break; - case 263: /* trigger_event ::= UPDATE OF idlist */ + case 265: /* trigger_event ::= UPDATE OF idlist */ {yymsp[-2].minor.yy180.a = TK_UPDATE; yymsp[-2].minor.yy180.b = yymsp[0].minor.yy254;} break; - case 264: /* when_clause ::= */ - case 283: /* key_opt ::= */ yytestcase(yyruleno==283); + case 266: /* when_clause ::= */ + case 285: /* key_opt ::= */ yytestcase(yyruleno==285); { yymsp[1].minor.yy528 = 0; } break; - case 265: /* when_clause ::= WHEN expr */ - case 284: /* key_opt ::= KEY expr */ yytestcase(yyruleno==284); + case 267: /* when_clause ::= WHEN expr */ + case 286: /* key_opt ::= KEY expr */ yytestcase(yyruleno==286); { yymsp[-1].minor.yy528 = yymsp[0].minor.yy528; } break; - case 266: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ + case 268: /* trigger_cmd_list ::= trigger_cmd_list trigger_cmd SEMI */ { assert( yymsp[-2].minor.yy33!=0 ); yymsp[-2].minor.yy33->pLast->pNext = yymsp[-1].minor.yy33; yymsp[-2].minor.yy33->pLast = yymsp[-1].minor.yy33; } break; - case 267: /* trigger_cmd_list ::= trigger_cmd SEMI */ + case 269: /* trigger_cmd_list ::= trigger_cmd SEMI */ { assert( yymsp[-1].minor.yy33!=0 ); yymsp[-1].minor.yy33->pLast = yymsp[-1].minor.yy33; } break; - case 268: /* trnm ::= nm DOT nm */ + case 270: /* trnm ::= nm DOT nm */ { yymsp[-2].minor.yy0 = yymsp[0].minor.yy0; sqlite3ErrorMsg(pParse, @@ -173956,39 +175663,39 @@ static YYACTIONTYPE yy_reduce( "statements within triggers"); } break; - case 269: /* tridxby ::= INDEXED BY nm */ + case 271: /* tridxby ::= INDEXED BY nm */ { sqlite3ErrorMsg(pParse, "the INDEXED BY clause is not allowed on UPDATE or DELETE statements " "within triggers"); } break; - case 270: /* tridxby ::= NOT INDEXED */ + case 272: /* tridxby ::= NOT INDEXED */ { sqlite3ErrorMsg(pParse, "the NOT INDEXED clause is not allowed on UPDATE or DELETE statements " "within triggers"); } break; - case 271: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ + case 273: /* trigger_cmd ::= UPDATE orconf trnm tridxby SET setlist from where_opt scanpt */ {yylhsminor.yy33 = sqlite3TriggerUpdateStep(pParse, &yymsp[-6].minor.yy0, yymsp[-2].minor.yy131, yymsp[-3].minor.yy322, yymsp[-1].minor.yy528, yymsp[-7].minor.yy394, yymsp[-8].minor.yy0.z, yymsp[0].minor.yy522);} yymsp[-8].minor.yy33 = yylhsminor.yy33; break; - case 272: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ + case 274: /* trigger_cmd ::= scanpt insert_cmd INTO trnm idlist_opt select upsert scanpt */ { yylhsminor.yy33 = sqlite3TriggerInsertStep(pParse,&yymsp[-4].minor.yy0,yymsp[-3].minor.yy254,yymsp[-2].minor.yy47,yymsp[-6].minor.yy394,yymsp[-1].minor.yy444,yymsp[-7].minor.yy522,yymsp[0].minor.yy522);/*yylhsminor.yy33-overwrites-yymsp[-6].minor.yy394*/ } yymsp[-7].minor.yy33 = yylhsminor.yy33; break; - case 273: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ + case 275: /* trigger_cmd ::= DELETE FROM trnm tridxby where_opt scanpt */ {yylhsminor.yy33 = sqlite3TriggerDeleteStep(pParse, &yymsp[-3].minor.yy0, yymsp[-1].minor.yy528, yymsp[-5].minor.yy0.z, yymsp[0].minor.yy522);} yymsp[-5].minor.yy33 = yylhsminor.yy33; break; - case 274: /* trigger_cmd ::= scanpt select scanpt */ + case 276: /* trigger_cmd ::= scanpt select scanpt */ {yylhsminor.yy33 = sqlite3TriggerSelectStep(pParse->db, yymsp[-1].minor.yy47, yymsp[-2].minor.yy522, yymsp[0].minor.yy522); /*yylhsminor.yy33-overwrites-yymsp[-1].minor.yy47*/} yymsp[-2].minor.yy33 = yylhsminor.yy33; break; - case 275: /* expr ::= RAISE LP IGNORE RP */ + case 277: /* expr ::= RAISE LP IGNORE RP */ { yymsp[-3].minor.yy528 = sqlite3PExpr(pParse, TK_RAISE, 0, 0); if( yymsp[-3].minor.yy528 ){ @@ -173996,7 +175703,7 @@ static YYACTIONTYPE yy_reduce( } } break; - case 276: /* expr ::= RAISE LP raisetype COMMA nm RP */ + case 278: /* expr ::= RAISE LP raisetype COMMA nm RP */ { yymsp[-5].minor.yy528 = sqlite3ExprAlloc(pParse->db, TK_RAISE, &yymsp[-1].minor.yy0, 1); if( yymsp[-5].minor.yy528 ) { @@ -174004,114 +175711,114 @@ static YYACTIONTYPE yy_reduce( } } break; - case 277: /* raisetype ::= ROLLBACK */ + case 279: /* raisetype ::= ROLLBACK */ {yymsp[0].minor.yy394 = OE_Rollback;} break; - case 279: /* raisetype ::= FAIL */ + case 281: /* raisetype ::= FAIL */ {yymsp[0].minor.yy394 = OE_Fail;} break; - case 280: /* cmd ::= DROP TRIGGER ifexists fullname */ + case 282: /* cmd ::= DROP TRIGGER ifexists fullname */ { sqlite3DropTrigger(pParse,yymsp[0].minor.yy131,yymsp[-1].minor.yy394); } break; - case 281: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ + case 283: /* cmd ::= ATTACH database_kw_opt expr AS expr key_opt */ { sqlite3Attach(pParse, yymsp[-3].minor.yy528, yymsp[-1].minor.yy528, yymsp[0].minor.yy528); } break; - case 282: /* cmd ::= DETACH database_kw_opt expr */ + case 284: /* cmd ::= DETACH database_kw_opt expr */ { sqlite3Detach(pParse, yymsp[0].minor.yy528); } break; - case 285: /* cmd ::= REINDEX */ + case 287: /* cmd ::= REINDEX */ {sqlite3Reindex(pParse, 0, 0);} break; - case 286: /* cmd ::= REINDEX nm dbnm */ + case 288: /* cmd ::= REINDEX nm dbnm */ {sqlite3Reindex(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} break; - case 287: /* cmd ::= ANALYZE */ + case 289: /* cmd ::= ANALYZE */ {sqlite3Analyze(pParse, 0, 0);} break; - case 288: /* cmd ::= ANALYZE nm dbnm */ + case 290: /* cmd ::= ANALYZE nm dbnm */ {sqlite3Analyze(pParse, &yymsp[-1].minor.yy0, &yymsp[0].minor.yy0);} break; - case 289: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ + case 291: /* cmd ::= ALTER TABLE fullname RENAME TO nm */ { sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy131,&yymsp[0].minor.yy0); } break; - case 290: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ + case 292: /* cmd ::= ALTER TABLE add_column_fullname ADD kwcolumn_opt columnname carglist */ { yymsp[-1].minor.yy0.n = (int)(pParse->sLastToken.z-yymsp[-1].minor.yy0.z) + pParse->sLastToken.n; sqlite3AlterFinishAddColumn(pParse, &yymsp[-1].minor.yy0); } break; - case 291: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ + case 293: /* cmd ::= ALTER TABLE fullname DROP kwcolumn_opt nm */ { sqlite3AlterDropColumn(pParse, yymsp[-3].minor.yy131, &yymsp[0].minor.yy0); } break; - case 292: /* add_column_fullname ::= fullname */ + case 294: /* add_column_fullname ::= fullname */ { disableLookaside(pParse); sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy131); } break; - case 293: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ + case 295: /* cmd ::= ALTER TABLE fullname RENAME kwcolumn_opt nm TO nm */ { sqlite3AlterRenameColumn(pParse, yymsp[-5].minor.yy131, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0); } break; - case 294: /* cmd ::= create_vtab */ + case 296: /* cmd ::= create_vtab */ {sqlite3VtabFinishParse(pParse,0);} break; - case 295: /* cmd ::= create_vtab LP vtabarglist RP */ + case 297: /* cmd ::= create_vtab LP vtabarglist RP */ {sqlite3VtabFinishParse(pParse,&yymsp[0].minor.yy0);} break; - case 296: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ + case 298: /* create_vtab ::= createkw VIRTUAL TABLE ifnotexists nm dbnm USING nm */ { sqlite3VtabBeginParse(pParse, &yymsp[-3].minor.yy0, &yymsp[-2].minor.yy0, &yymsp[0].minor.yy0, yymsp[-4].minor.yy394); } break; - case 297: /* vtabarg ::= */ + case 299: /* vtabarg ::= */ {sqlite3VtabArgInit(pParse);} break; - case 298: /* vtabargtoken ::= ANY */ - case 299: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==299); - case 300: /* lp ::= LP */ yytestcase(yyruleno==300); + case 300: /* vtabargtoken ::= ANY */ + case 301: /* vtabargtoken ::= lp anylist RP */ yytestcase(yyruleno==301); + case 302: /* lp ::= LP */ yytestcase(yyruleno==302); {sqlite3VtabArgExtend(pParse,&yymsp[0].minor.yy0);} break; - case 301: /* with ::= WITH wqlist */ - case 302: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==302); + case 303: /* with ::= WITH wqlist */ + case 304: /* with ::= WITH RECURSIVE wqlist */ yytestcase(yyruleno==304); { sqlite3WithPush(pParse, yymsp[0].minor.yy521, 1); } break; - case 303: /* wqas ::= AS */ + case 305: /* wqas ::= AS */ {yymsp[0].minor.yy516 = M10d_Any;} break; - case 304: /* wqas ::= AS MATERIALIZED */ + case 306: /* wqas ::= AS MATERIALIZED */ {yymsp[-1].minor.yy516 = M10d_Yes;} break; - case 305: /* wqas ::= AS NOT MATERIALIZED */ + case 307: /* wqas ::= AS NOT MATERIALIZED */ {yymsp[-2].minor.yy516 = M10d_No;} break; - case 306: /* wqitem ::= nm eidlist_opt wqas LP select RP */ + case 308: /* wqitem ::= nm eidlist_opt wqas LP select RP */ { yymsp[-5].minor.yy385 = sqlite3CteNew(pParse, &yymsp[-5].minor.yy0, yymsp[-4].minor.yy322, yymsp[-1].minor.yy47, yymsp[-3].minor.yy516); /*A-overwrites-X*/ } break; - case 307: /* wqlist ::= wqitem */ + case 309: /* wqlist ::= wqitem */ { yymsp[0].minor.yy521 = sqlite3WithAdd(pParse, 0, yymsp[0].minor.yy385); /*A-overwrites-X*/ } break; - case 308: /* wqlist ::= wqlist COMMA wqitem */ + case 310: /* wqlist ::= wqlist COMMA wqitem */ { yymsp[-2].minor.yy521 = sqlite3WithAdd(pParse, yymsp[-2].minor.yy521, yymsp[0].minor.yy385); } break; - case 309: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ + case 311: /* windowdefn_list ::= windowdefn_list COMMA windowdefn */ { assert( yymsp[0].minor.yy41!=0 ); sqlite3WindowChain(pParse, yymsp[0].minor.yy41, yymsp[-2].minor.yy41); @@ -174120,7 +175827,7 @@ static YYACTIONTYPE yy_reduce( } yymsp[-2].minor.yy41 = yylhsminor.yy41; break; - case 310: /* windowdefn ::= nm AS LP window RP */ + case 312: /* windowdefn ::= nm AS LP window RP */ { if( ALWAYS(yymsp[-1].minor.yy41) ){ yymsp[-1].minor.yy41->zName = sqlite3DbStrNDup(pParse->db, yymsp[-4].minor.yy0.z, yymsp[-4].minor.yy0.n); @@ -174129,83 +175836,83 @@ static YYACTIONTYPE yy_reduce( } yymsp[-4].minor.yy41 = yylhsminor.yy41; break; - case 311: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ + case 313: /* window ::= PARTITION BY nexprlist orderby_opt frame_opt */ { yymsp[-4].minor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, yymsp[-2].minor.yy322, yymsp[-1].minor.yy322, 0); } break; - case 312: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ + case 314: /* window ::= nm PARTITION BY nexprlist orderby_opt frame_opt */ { yylhsminor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, yymsp[-2].minor.yy322, yymsp[-1].minor.yy322, &yymsp[-5].minor.yy0); } yymsp[-5].minor.yy41 = yylhsminor.yy41; break; - case 313: /* window ::= ORDER BY sortlist frame_opt */ + case 315: /* window ::= ORDER BY sortlist frame_opt */ { yymsp[-3].minor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, 0, yymsp[-1].minor.yy322, 0); } break; - case 314: /* window ::= nm ORDER BY sortlist frame_opt */ + case 316: /* window ::= nm ORDER BY sortlist frame_opt */ { yylhsminor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, 0, yymsp[-1].minor.yy322, &yymsp[-4].minor.yy0); } yymsp[-4].minor.yy41 = yylhsminor.yy41; break; - case 315: /* window ::= nm frame_opt */ + case 317: /* window ::= nm frame_opt */ { yylhsminor.yy41 = sqlite3WindowAssemble(pParse, yymsp[0].minor.yy41, 0, 0, &yymsp[-1].minor.yy0); } yymsp[-1].minor.yy41 = yylhsminor.yy41; break; - case 316: /* frame_opt ::= */ + case 318: /* frame_opt ::= */ { yymsp[1].minor.yy41 = sqlite3WindowAlloc(pParse, 0, TK_UNBOUNDED, 0, TK_CURRENT, 0, 0); } break; - case 317: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ + case 319: /* frame_opt ::= range_or_rows frame_bound_s frame_exclude_opt */ { yylhsminor.yy41 = sqlite3WindowAlloc(pParse, yymsp[-2].minor.yy394, yymsp[-1].minor.yy595.eType, yymsp[-1].minor.yy595.pExpr, TK_CURRENT, 0, yymsp[0].minor.yy516); } yymsp[-2].minor.yy41 = yylhsminor.yy41; break; - case 318: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ + case 320: /* frame_opt ::= range_or_rows BETWEEN frame_bound_s AND frame_bound_e frame_exclude_opt */ { yylhsminor.yy41 = sqlite3WindowAlloc(pParse, yymsp[-5].minor.yy394, yymsp[-3].minor.yy595.eType, yymsp[-3].minor.yy595.pExpr, yymsp[-1].minor.yy595.eType, yymsp[-1].minor.yy595.pExpr, yymsp[0].minor.yy516); } yymsp[-5].minor.yy41 = yylhsminor.yy41; break; - case 320: /* frame_bound_s ::= frame_bound */ - case 322: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==322); + case 322: /* frame_bound_s ::= frame_bound */ + case 324: /* frame_bound_e ::= frame_bound */ yytestcase(yyruleno==324); {yylhsminor.yy595 = yymsp[0].minor.yy595;} yymsp[0].minor.yy595 = yylhsminor.yy595; break; - case 321: /* frame_bound_s ::= UNBOUNDED PRECEDING */ - case 323: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==323); - case 325: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==325); + case 323: /* frame_bound_s ::= UNBOUNDED PRECEDING */ + case 325: /* frame_bound_e ::= UNBOUNDED FOLLOWING */ yytestcase(yyruleno==325); + case 327: /* frame_bound ::= CURRENT ROW */ yytestcase(yyruleno==327); {yylhsminor.yy595.eType = yymsp[-1].major; yylhsminor.yy595.pExpr = 0;} yymsp[-1].minor.yy595 = yylhsminor.yy595; break; - case 324: /* frame_bound ::= expr PRECEDING|FOLLOWING */ + case 326: /* frame_bound ::= expr PRECEDING|FOLLOWING */ {yylhsminor.yy595.eType = yymsp[0].major; yylhsminor.yy595.pExpr = yymsp[-1].minor.yy528;} yymsp[-1].minor.yy595 = yylhsminor.yy595; break; - case 326: /* frame_exclude_opt ::= */ + case 328: /* frame_exclude_opt ::= */ {yymsp[1].minor.yy516 = 0;} break; - case 327: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ + case 329: /* frame_exclude_opt ::= EXCLUDE frame_exclude */ {yymsp[-1].minor.yy516 = yymsp[0].minor.yy516;} break; - case 328: /* frame_exclude ::= NO OTHERS */ - case 329: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==329); + case 330: /* frame_exclude ::= NO OTHERS */ + case 331: /* frame_exclude ::= CURRENT ROW */ yytestcase(yyruleno==331); {yymsp[-1].minor.yy516 = yymsp[-1].major; /*A-overwrites-X*/} break; - case 330: /* frame_exclude ::= GROUP|TIES */ + case 332: /* frame_exclude ::= GROUP|TIES */ {yymsp[0].minor.yy516 = yymsp[0].major; /*A-overwrites-X*/} break; - case 331: /* window_clause ::= WINDOW windowdefn_list */ + case 333: /* window_clause ::= WINDOW windowdefn_list */ { yymsp[-1].minor.yy41 = yymsp[0].minor.yy41; } break; - case 332: /* filter_over ::= filter_clause over_clause */ + case 334: /* filter_over ::= filter_clause over_clause */ { if( yymsp[0].minor.yy41 ){ yymsp[0].minor.yy41->pFilter = yymsp[-1].minor.yy528; @@ -174216,13 +175923,13 @@ static YYACTIONTYPE yy_reduce( } yymsp[-1].minor.yy41 = yylhsminor.yy41; break; - case 333: /* filter_over ::= over_clause */ + case 335: /* filter_over ::= over_clause */ { yylhsminor.yy41 = yymsp[0].minor.yy41; } yymsp[0].minor.yy41 = yylhsminor.yy41; break; - case 334: /* filter_over ::= filter_clause */ + case 336: /* filter_over ::= filter_clause */ { yylhsminor.yy41 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); if( yylhsminor.yy41 ){ @@ -174234,13 +175941,13 @@ static YYACTIONTYPE yy_reduce( } yymsp[0].minor.yy41 = yylhsminor.yy41; break; - case 335: /* over_clause ::= OVER LP window RP */ + case 337: /* over_clause ::= OVER LP window RP */ { yymsp[-3].minor.yy41 = yymsp[-1].minor.yy41; assert( yymsp[-3].minor.yy41!=0 ); } break; - case 336: /* over_clause ::= OVER nm */ + case 338: /* over_clause ::= OVER nm */ { yymsp[-1].minor.yy41 = (Window*)sqlite3DbMallocZero(pParse->db, sizeof(Window)); if( yymsp[-1].minor.yy41 ){ @@ -174248,75 +175955,75 @@ static YYACTIONTYPE yy_reduce( } } break; - case 337: /* filter_clause ::= FILTER LP WHERE expr RP */ + case 339: /* filter_clause ::= FILTER LP WHERE expr RP */ { yymsp[-4].minor.yy528 = yymsp[-1].minor.yy528; } break; default: - /* (338) input ::= cmdlist */ yytestcase(yyruleno==338); - /* (339) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==339); - /* (340) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=340); - /* (341) ecmd ::= SEMI */ yytestcase(yyruleno==341); - /* (342) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==342); - /* (343) ecmd ::= explain cmdx SEMI (NEVER REDUCES) */ assert(yyruleno!=343); - /* (344) trans_opt ::= */ yytestcase(yyruleno==344); - /* (345) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==345); - /* (346) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==346); - /* (347) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==347); - /* (348) savepoint_opt ::= */ yytestcase(yyruleno==348); - /* (349) cmd ::= create_table create_table_args */ yytestcase(yyruleno==349); - /* (350) table_option_set ::= table_option (OPTIMIZED OUT) */ assert(yyruleno!=350); - /* (351) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==351); - /* (352) columnlist ::= columnname carglist */ yytestcase(yyruleno==352); - /* (353) nm ::= ID|INDEXED|JOIN_KW */ yytestcase(yyruleno==353); - /* (354) nm ::= STRING */ yytestcase(yyruleno==354); - /* (355) typetoken ::= typename */ yytestcase(yyruleno==355); - /* (356) typename ::= ID|STRING */ yytestcase(yyruleno==356); - /* (357) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=357); - /* (358) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=358); - /* (359) carglist ::= carglist ccons */ yytestcase(yyruleno==359); - /* (360) carglist ::= */ yytestcase(yyruleno==360); - /* (361) ccons ::= NULL onconf */ yytestcase(yyruleno==361); - /* (362) ccons ::= GENERATED ALWAYS AS generated */ yytestcase(yyruleno==362); - /* (363) ccons ::= AS generated */ yytestcase(yyruleno==363); - /* (364) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==364); - /* (365) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==365); - /* (366) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=366); - /* (367) tconscomma ::= */ yytestcase(yyruleno==367); - /* (368) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=368); - /* (369) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=369); - /* (370) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=370); - /* (371) oneselect ::= values */ yytestcase(yyruleno==371); - /* (372) sclp ::= selcollist COMMA */ yytestcase(yyruleno==372); - /* (373) as ::= ID|STRING */ yytestcase(yyruleno==373); - /* (374) indexed_opt ::= indexed_by (OPTIMIZED OUT) */ assert(yyruleno!=374); - /* (375) returning ::= */ yytestcase(yyruleno==375); - /* (376) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=376); - /* (377) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==377); - /* (378) case_operand ::= expr */ yytestcase(yyruleno==378); - /* (379) exprlist ::= nexprlist */ yytestcase(yyruleno==379); - /* (380) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=380); - /* (381) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=381); - /* (382) nmnum ::= ON */ yytestcase(yyruleno==382); - /* (383) nmnum ::= DELETE */ yytestcase(yyruleno==383); - /* (384) nmnum ::= DEFAULT */ yytestcase(yyruleno==384); - /* (385) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==385); - /* (386) foreach_clause ::= */ yytestcase(yyruleno==386); - /* (387) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==387); - /* (388) trnm ::= nm */ yytestcase(yyruleno==388); - /* (389) tridxby ::= */ yytestcase(yyruleno==389); - /* (390) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==390); - /* (391) database_kw_opt ::= */ yytestcase(yyruleno==391); - /* (392) kwcolumn_opt ::= */ yytestcase(yyruleno==392); - /* (393) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==393); - /* (394) vtabarglist ::= vtabarg */ yytestcase(yyruleno==394); - /* (395) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==395); - /* (396) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==396); - /* (397) anylist ::= */ yytestcase(yyruleno==397); - /* (398) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==398); - /* (399) anylist ::= anylist ANY */ yytestcase(yyruleno==399); - /* (400) with ::= */ yytestcase(yyruleno==400); - /* (401) windowdefn_list ::= windowdefn (OPTIMIZED OUT) */ assert(yyruleno!=401); - /* (402) window ::= frame_opt (OPTIMIZED OUT) */ assert(yyruleno!=402); + /* (340) input ::= cmdlist */ yytestcase(yyruleno==340); + /* (341) cmdlist ::= cmdlist ecmd */ yytestcase(yyruleno==341); + /* (342) cmdlist ::= ecmd (OPTIMIZED OUT) */ assert(yyruleno!=342); + /* (343) ecmd ::= SEMI */ yytestcase(yyruleno==343); + /* (344) ecmd ::= cmdx SEMI */ yytestcase(yyruleno==344); + /* (345) ecmd ::= explain cmdx SEMI (NEVER REDUCES) */ assert(yyruleno!=345); + /* (346) trans_opt ::= */ yytestcase(yyruleno==346); + /* (347) trans_opt ::= TRANSACTION */ yytestcase(yyruleno==347); + /* (348) trans_opt ::= TRANSACTION nm */ yytestcase(yyruleno==348); + /* (349) savepoint_opt ::= SAVEPOINT */ yytestcase(yyruleno==349); + /* (350) savepoint_opt ::= */ yytestcase(yyruleno==350); + /* (351) cmd ::= create_table create_table_args */ yytestcase(yyruleno==351); + /* (352) table_option_set ::= table_option (OPTIMIZED OUT) */ assert(yyruleno!=352); + /* (353) columnlist ::= columnlist COMMA columnname carglist */ yytestcase(yyruleno==353); + /* (354) columnlist ::= columnname carglist */ yytestcase(yyruleno==354); + /* (355) nm ::= ID|INDEXED|JOIN_KW */ yytestcase(yyruleno==355); + /* (356) nm ::= STRING */ yytestcase(yyruleno==356); + /* (357) typetoken ::= typename */ yytestcase(yyruleno==357); + /* (358) typename ::= ID|STRING */ yytestcase(yyruleno==358); + /* (359) signed ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=359); + /* (360) signed ::= minus_num (OPTIMIZED OUT) */ assert(yyruleno!=360); + /* (361) carglist ::= carglist ccons */ yytestcase(yyruleno==361); + /* (362) carglist ::= */ yytestcase(yyruleno==362); + /* (363) ccons ::= NULL onconf */ yytestcase(yyruleno==363); + /* (364) ccons ::= GENERATED ALWAYS AS generated */ yytestcase(yyruleno==364); + /* (365) ccons ::= AS generated */ yytestcase(yyruleno==365); + /* (366) conslist_opt ::= COMMA conslist */ yytestcase(yyruleno==366); + /* (367) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==367); + /* (368) conslist ::= tcons (OPTIMIZED OUT) */ assert(yyruleno!=368); + /* (369) tconscomma ::= */ yytestcase(yyruleno==369); + /* (370) defer_subclause_opt ::= defer_subclause (OPTIMIZED OUT) */ assert(yyruleno!=370); + /* (371) resolvetype ::= raisetype (OPTIMIZED OUT) */ assert(yyruleno!=371); + /* (372) selectnowith ::= oneselect (OPTIMIZED OUT) */ assert(yyruleno!=372); + /* (373) oneselect ::= values */ yytestcase(yyruleno==373); + /* (374) sclp ::= selcollist COMMA */ yytestcase(yyruleno==374); + /* (375) as ::= ID|STRING */ yytestcase(yyruleno==375); + /* (376) indexed_opt ::= indexed_by (OPTIMIZED OUT) */ assert(yyruleno!=376); + /* (377) returning ::= */ yytestcase(yyruleno==377); + /* (378) expr ::= term (OPTIMIZED OUT) */ assert(yyruleno!=378); + /* (379) likeop ::= LIKE_KW|MATCH */ yytestcase(yyruleno==379); + /* (380) case_operand ::= expr */ yytestcase(yyruleno==380); + /* (381) exprlist ::= nexprlist */ yytestcase(yyruleno==381); + /* (382) nmnum ::= plus_num (OPTIMIZED OUT) */ assert(yyruleno!=382); + /* (383) nmnum ::= nm (OPTIMIZED OUT) */ assert(yyruleno!=383); + /* (384) nmnum ::= ON */ yytestcase(yyruleno==384); + /* (385) nmnum ::= DELETE */ yytestcase(yyruleno==385); + /* (386) nmnum ::= DEFAULT */ yytestcase(yyruleno==386); + /* (387) plus_num ::= INTEGER|FLOAT */ yytestcase(yyruleno==387); + /* (388) foreach_clause ::= */ yytestcase(yyruleno==388); + /* (389) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==389); + /* (390) trnm ::= nm */ yytestcase(yyruleno==390); + /* (391) tridxby ::= */ yytestcase(yyruleno==391); + /* (392) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==392); + /* (393) database_kw_opt ::= */ yytestcase(yyruleno==393); + /* (394) kwcolumn_opt ::= */ yytestcase(yyruleno==394); + /* (395) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==395); + /* (396) vtabarglist ::= vtabarg */ yytestcase(yyruleno==396); + /* (397) vtabarglist ::= vtabarglist COMMA vtabarg */ yytestcase(yyruleno==397); + /* (398) vtabarg ::= vtabarg vtabargtoken */ yytestcase(yyruleno==398); + /* (399) anylist ::= */ yytestcase(yyruleno==399); + /* (400) anylist ::= anylist LP anylist RP */ yytestcase(yyruleno==400); + /* (401) anylist ::= anylist ANY */ yytestcase(yyruleno==401); + /* (402) with ::= */ yytestcase(yyruleno==402); + /* (403) windowdefn_list ::= windowdefn (OPTIMIZED OUT) */ assert(yyruleno!=403); + /* (404) window ::= frame_opt (OPTIMIZED OUT) */ assert(yyruleno!=404); break; /********** End reduce actions ************************************************/ }; @@ -176440,7 +178147,9 @@ SQLITE_PRIVATE int sqlite3Fts5Init(sqlite3*); #ifdef SQLITE_ENABLE_STMTVTAB SQLITE_PRIVATE int sqlite3StmtVtabInit(sqlite3*); #endif - +#ifdef SQLITE_EXTRA_AUTOEXT +int SQLITE_EXTRA_AUTOEXT(sqlite3*); +#endif /* ** An array of pointers to extension initializer functions for ** built-in extensions. @@ -176474,6 +178183,9 @@ static int (*const sqlite3BuiltinExtensions[])(sqlite3*) = { #ifdef SQLITE_ENABLE_BYTECODE_VTAB sqlite3VdbeBytecodeVtabInit, #endif +#ifdef SQLITE_EXTRA_AUTOEXT + SQLITE_EXTRA_AUTOEXT, +#endif }; #ifndef SQLITE_AMALGAMATION @@ -176547,6 +178259,32 @@ SQLITE_API char *sqlite3_temp_directory = 0; */ SQLITE_API char *sqlite3_data_directory = 0; +/* +** Determine whether or not high-precision (long double) floating point +** math works correctly on CPU currently running. +*/ +static SQLITE_NOINLINE int hasHighPrecisionDouble(int rc){ + if( sizeof(LONGDOUBLE_TYPE)<=8 ){ + /* If the size of "long double" is not more than 8, then + ** high-precision math is not possible. */ + return 0; + }else{ + /* Just because sizeof(long double)>8 does not mean that the underlying + ** hardware actually supports high-precision floating point. For example, + ** clearing the 0x100 bit in the floating-point control word on Intel + ** processors will make long double work like double, even though long + ** double takes up more space. The only way to determine if long double + ** actually works is to run an experiment. */ + LONGDOUBLE_TYPE a, b, c; + rc++; + a = 1.0+rc*0.1; + b = 1.0e+18+rc*25.0; + c = a+b; + return b!=c; + } +} + + /* ** Initialize SQLite. ** @@ -176742,6 +178480,12 @@ SQLITE_API int sqlite3_initialize(void){ } #endif + /* Experimentally determine if high-precision floating point is + ** available. */ +#ifndef SQLITE_OMIT_WSD + sqlite3Config.bUseLongDouble = hasHighPrecisionDouble(rc); +#endif + return rc; } @@ -177312,6 +179056,10 @@ SQLITE_API int sqlite3_db_cacheflush(sqlite3 *db){ SQLITE_API int sqlite3_db_config(sqlite3 *db, int op, ...){ va_list ap; int rc; + +#ifdef SQLITE_ENABLE_API_ARMOR + if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT; +#endif sqlite3_mutex_enter(db->mutex); va_start(ap, op); switch( op ){ @@ -177641,6 +179389,14 @@ static int sqlite3Close(sqlite3 *db, int forceZombie){ } #endif + while( db->pDbData ){ + DbClientData *p = db->pDbData; + db->pDbData = p->pNext; + assert( p->pData!=0 ); + if( p->xDestructor ) p->xDestructor(p->pData); + sqlite3_free(p); + } + /* Convert the connection into a zombie and then close it. */ db->eOpenState = SQLITE_STATE_ZOMBIE; @@ -178258,7 +180014,7 @@ SQLITE_PRIVATE int sqlite3CreateFunc( assert( SQLITE_FUNC_CONSTANT==SQLITE_DETERMINISTIC ); assert( SQLITE_FUNC_DIRECT==SQLITE_DIRECTONLY ); extraFlags = enc & (SQLITE_DETERMINISTIC|SQLITE_DIRECTONLY| - SQLITE_SUBTYPE|SQLITE_INNOCUOUS); + SQLITE_SUBTYPE|SQLITE_INNOCUOUS|SQLITE_RESULT_SUBTYPE); enc &= (SQLITE_FUNC_ENCMASK|SQLITE_ANY); /* The SQLITE_INNOCUOUS flag is the same bit as SQLITE_FUNC_UNSAFE. But @@ -178715,6 +180471,12 @@ SQLITE_API void *sqlite3_preupdate_hook( void *pArg /* First callback argument */ ){ void *pRet; + +#ifdef SQLITE_ENABLE_API_ARMOR + if( db==0 ){ + return 0; + } +#endif sqlite3_mutex_enter(db->mutex); pRet = db->pPreUpdateArg; db->xPreUpdateCallback = xCallback; @@ -178861,7 +180623,7 @@ SQLITE_API int sqlite3_wal_checkpoint_v2( if( eModeSQLITE_CHECKPOINT_TRUNCATE ){ /* EVIDENCE-OF: R-03996-12088 The M parameter must be a valid checkpoint ** mode: */ - return SQLITE_MISUSE; + return SQLITE_MISUSE_BKPT; } sqlite3_mutex_enter(db->mutex); @@ -180098,6 +181860,69 @@ SQLITE_API int sqlite3_collation_needed16( } #endif /* SQLITE_OMIT_UTF16 */ +/* +** Find existing client data. +*/ +SQLITE_API void *sqlite3_get_clientdata(sqlite3 *db, const char *zName){ + DbClientData *p; + sqlite3_mutex_enter(db->mutex); + for(p=db->pDbData; p; p=p->pNext){ + if( strcmp(p->zName, zName)==0 ){ + void *pResult = p->pData; + sqlite3_mutex_leave(db->mutex); + return pResult; + } + } + sqlite3_mutex_leave(db->mutex); + return 0; +} + +/* +** Add new client data to a database connection. +*/ +SQLITE_API int sqlite3_set_clientdata( + sqlite3 *db, /* Attach client data to this connection */ + const char *zName, /* Name of the client data */ + void *pData, /* The client data itself */ + void (*xDestructor)(void*) /* Destructor */ +){ + DbClientData *p, **pp; + sqlite3_mutex_enter(db->mutex); + pp = &db->pDbData; + for(p=db->pDbData; p && strcmp(p->zName,zName); p=p->pNext){ + pp = &p->pNext; + } + if( p ){ + assert( p->pData!=0 ); + if( p->xDestructor ) p->xDestructor(p->pData); + if( pData==0 ){ + *pp = p->pNext; + sqlite3_free(p); + sqlite3_mutex_leave(db->mutex); + return SQLITE_OK; + } + }else if( pData==0 ){ + sqlite3_mutex_leave(db->mutex); + return SQLITE_OK; + }else{ + size_t n = strlen(zName); + p = sqlite3_malloc64( sizeof(DbClientData)+n+1 ); + if( p==0 ){ + if( xDestructor ) xDestructor(pData); + sqlite3_mutex_leave(db->mutex); + return SQLITE_NOMEM; + } + memcpy(p->zName, zName, n+1); + p->pNext = db->pDbData; + db->pDbData = p; + } + p->pData = pData; + p->xDestructor = xDestructor; + sqlite3_mutex_leave(db->mutex); + return SQLITE_OK; +} + + #ifndef SQLITE_OMIT_DEPRECATED /* ** This function is now an anachronism. It used to be used to recover from a @@ -180447,6 +182272,28 @@ SQLITE_API int sqlite3_test_control(int op, ...){ } #endif + /* sqlite3_test_control(SQLITE_TESTCTRL_FK_NO_ACTION, sqlite3 *db, int b); + ** + ** If b is true, then activate the SQLITE_FkNoAction setting. If b is + ** false then clearn that setting. If the SQLITE_FkNoAction setting is + ** abled, all foreign key ON DELETE and ON UPDATE actions behave as if + ** they were NO ACTION, regardless of how they are defined. + ** + ** NB: One must usually run "PRAGMA writable_schema=RESET" after + ** using this test-control, before it will take full effect. failing + ** to reset the schema can result in some unexpected behavior. + */ + case SQLITE_TESTCTRL_FK_NO_ACTION: { + sqlite3 *db = va_arg(ap, sqlite3*); + int b = va_arg(ap, int); + if( b ){ + db->flags |= SQLITE_FkNoAction; + }else{ + db->flags &= ~SQLITE_FkNoAction; + } + break; + } + /* ** sqlite3_test_control(BITVEC_TEST, size, program) ** @@ -180871,11 +182718,11 @@ SQLITE_API int sqlite3_test_control(int op, ...){ ** X<0 Make no changes to the bUseLongDouble. Just report value. ** X==0 Disable bUseLongDouble ** X==1 Enable bUseLongDouble - ** X==2 Set bUseLongDouble to its default value for this platform + ** X>=2 Set bUseLongDouble to its default value for this platform */ case SQLITE_TESTCTRL_USELONGDOUBLE: { int b = va_arg(ap, int); - if( b==2 ) b = sizeof(LONGDOUBLE_TYPE)>8; + if( b>=2 ) b = hasHighPrecisionDouble(b); if( b>=0 ) sqlite3Config.bUseLongDouble = b>0; rc = sqlite3Config.bUseLongDouble!=0; break; @@ -180912,6 +182759,28 @@ SQLITE_API int sqlite3_test_control(int op, ...){ break; } #endif + + /* sqlite3_test_control(SQLITE_TESTCTRL_JSON_SELFCHECK, &onOff); + ** + ** Activate or deactivate validation of JSONB that is generated from + ** text. Off by default, as the validation is slow. Validation is + ** only available if compiled using SQLITE_DEBUG. + ** + ** If onOff is initially 1, then turn it on. If onOff is initially + ** off, turn it off. If onOff is initially -1, then change onOff + ** to be the current setting. + */ + case SQLITE_TESTCTRL_JSON_SELFCHECK: { +#if defined(SQLITE_DEBUG) && !defined(SQLITE_OMIT_WSD) + int *pOnOff = va_arg(ap, int*); + if( *pOnOff<0 ){ + *pOnOff = sqlite3Config.bJsonSelfcheck; + }else{ + sqlite3Config.bJsonSelfcheck = (u8)((*pOnOff)&0xff); + } +#endif + break; + } } va_end(ap); #endif /* SQLITE_UNTESTABLE */ @@ -181289,7 +183158,7 @@ SQLITE_API int sqlite3_compileoption_used(const char *zOptName){ int nOpt; const char **azCompileOpt; -#if SQLITE_ENABLE_API_ARMOR +#ifdef SQLITE_ENABLE_API_ARMOR if( zOptName==0 ){ (void)SQLITE_MISUSE_BKPT; return 0; @@ -181484,6 +183353,9 @@ SQLITE_API int sqlite3_unlock_notify( ){ int rc = SQLITE_OK; +#ifdef SQLITE_ENABLE_API_ARMOR + if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT; +#endif sqlite3_mutex_enter(db->mutex); enterMutex(); @@ -182505,6 +184377,7 @@ struct Fts3Table { int nPgsz; /* Page size for host database */ char *zSegmentsTbl; /* Name of %_segments table */ sqlite3_blob *pSegments; /* Blob handle open on %_segments table */ + int iSavepoint; /* ** The following array of hash tables is used to buffer pending index @@ -182892,6 +184765,8 @@ SQLITE_PRIVATE int sqlite3FtsUnicodeIsdiacritic(int); SQLITE_PRIVATE int sqlite3Fts3ExprIterate(Fts3Expr*, int (*x)(Fts3Expr*,int,void*), void*); +SQLITE_PRIVATE int sqlite3Fts3IntegrityCheck(Fts3Table *p, int *pbOk); + #endif /* !SQLITE_CORE || SQLITE_ENABLE_FTS3 */ #endif /* _FTSINT_H */ @@ -183248,6 +185123,7 @@ static void fts3DeclareVtab(int *pRc, Fts3Table *p){ zLanguageid = (p->zLanguageid ? p->zLanguageid : "__langid"); sqlite3_vtab_config(p->db, SQLITE_VTAB_CONSTRAINT_SUPPORT, 1); + sqlite3_vtab_config(p->db, SQLITE_VTAB_INNOCUOUS); /* Create a list of user columns for the virtual table */ zCols = sqlite3_mprintf("%Q, ", p->azColumn[0]); @@ -186497,6 +188373,8 @@ static int fts3RenameMethod( rc = sqlite3Fts3PendingTermsFlush(p); } + p->bIgnoreSavepoint = 1; + if( p->zContentTbl==0 ){ fts3DbExec(&rc, db, "ALTER TABLE %Q.'%q_content' RENAME TO '%q_content';", @@ -186524,6 +188402,8 @@ static int fts3RenameMethod( "ALTER TABLE %Q.'%q_segdir' RENAME TO '%q_segdir';", p->zDb, p->zName, zName ); + + p->bIgnoreSavepoint = 0; return rc; } @@ -186534,12 +188414,28 @@ static int fts3RenameMethod( */ static int fts3SavepointMethod(sqlite3_vtab *pVtab, int iSavepoint){ int rc = SQLITE_OK; - UNUSED_PARAMETER(iSavepoint); - assert( ((Fts3Table *)pVtab)->inTransaction ); - assert( ((Fts3Table *)pVtab)->mxSavepoint <= iSavepoint ); - TESTONLY( ((Fts3Table *)pVtab)->mxSavepoint = iSavepoint ); - if( ((Fts3Table *)pVtab)->bIgnoreSavepoint==0 ){ - rc = fts3SyncMethod(pVtab); + Fts3Table *pTab = (Fts3Table*)pVtab; + assert( pTab->inTransaction ); + assert( pTab->mxSavepoint<=iSavepoint ); + TESTONLY( pTab->mxSavepoint = iSavepoint ); + + if( pTab->bIgnoreSavepoint==0 ){ + if( fts3HashCount(&pTab->aIndex[0].hPending)>0 ){ + char *zSql = sqlite3_mprintf("INSERT INTO %Q.%Q(%Q) VALUES('flush')", + pTab->zDb, pTab->zName, pTab->zName + ); + if( zSql ){ + pTab->bIgnoreSavepoint = 1; + rc = sqlite3_exec(pTab->db, zSql, 0, 0, 0); + pTab->bIgnoreSavepoint = 0; + sqlite3_free(zSql); + }else{ + rc = SQLITE_NOMEM; + } + } + if( rc==SQLITE_OK ){ + pTab->iSavepoint = iSavepoint+1; + } } return rc; } @@ -186550,12 +188446,11 @@ static int fts3SavepointMethod(sqlite3_vtab *pVtab, int iSavepoint){ ** This is a no-op. */ static int fts3ReleaseMethod(sqlite3_vtab *pVtab, int iSavepoint){ - TESTONLY( Fts3Table *p = (Fts3Table*)pVtab ); - UNUSED_PARAMETER(iSavepoint); - UNUSED_PARAMETER(pVtab); - assert( p->inTransaction ); - assert( p->mxSavepoint >= iSavepoint ); - TESTONLY( p->mxSavepoint = iSavepoint-1 ); + Fts3Table *pTab = (Fts3Table*)pVtab; + assert( pTab->inTransaction ); + assert( pTab->mxSavepoint >= iSavepoint ); + TESTONLY( pTab->mxSavepoint = iSavepoint-1 ); + pTab->iSavepoint = iSavepoint; return SQLITE_OK; } @@ -186565,11 +188460,13 @@ static int fts3ReleaseMethod(sqlite3_vtab *pVtab, int iSavepoint){ ** Discard the contents of the pending terms table. */ static int fts3RollbackToMethod(sqlite3_vtab *pVtab, int iSavepoint){ - Fts3Table *p = (Fts3Table*)pVtab; + Fts3Table *pTab = (Fts3Table*)pVtab; UNUSED_PARAMETER(iSavepoint); - assert( p->inTransaction ); - TESTONLY( p->mxSavepoint = iSavepoint ); - sqlite3Fts3PendingTermsClear(p); + assert( pTab->inTransaction ); + TESTONLY( pTab->mxSavepoint = iSavepoint ); + if( (iSavepoint+1)<=pTab->iSavepoint ){ + sqlite3Fts3PendingTermsClear(pTab); + } return SQLITE_OK; } @@ -186588,8 +188485,40 @@ static int fts3ShadowName(const char *zName){ return 0; } +/* +** Implementation of the xIntegrity() method on the FTS3/FTS4 virtual +** table. +*/ +static int fts3IntegrityMethod( + sqlite3_vtab *pVtab, /* The virtual table to be checked */ + const char *zSchema, /* Name of schema in which pVtab lives */ + const char *zTabname, /* Name of the pVTab table */ + int isQuick, /* True if this is a quick_check */ + char **pzErr /* Write error message here */ +){ + Fts3Table *p = (Fts3Table*)pVtab; + int rc; + int bOk = 0; + + UNUSED_PARAMETER(isQuick); + rc = sqlite3Fts3IntegrityCheck(p, &bOk); + assert( rc!=SQLITE_CORRUPT_VTAB || bOk==0 ); + if( rc!=SQLITE_OK && rc!=SQLITE_CORRUPT_VTAB ){ + *pzErr = sqlite3_mprintf("unable to validate the inverted index for" + " FTS%d table %s.%s: %s", + p->bFts4 ? 4 : 3, zSchema, zTabname, sqlite3_errstr(rc)); + }else if( bOk==0 ){ + *pzErr = sqlite3_mprintf("malformed inverted index for FTS%d table %s.%s", + p->bFts4 ? 4 : 3, zSchema, zTabname); + } + sqlite3Fts3SegmentsClose(p); + return SQLITE_OK; +} + + + static const sqlite3_module fts3Module = { - /* iVersion */ 3, + /* iVersion */ 4, /* xCreate */ fts3CreateMethod, /* xConnect */ fts3ConnectMethod, /* xBestIndex */ fts3BestIndexMethod, @@ -186613,6 +188542,7 @@ static const sqlite3_module fts3Module = { /* xRelease */ fts3ReleaseMethod, /* xRollbackTo */ fts3RollbackToMethod, /* xShadowName */ fts3ShadowName, + /* xIntegrity */ fts3IntegrityMethod, }; /* @@ -189288,7 +191218,8 @@ SQLITE_PRIVATE int sqlite3Fts3InitAux(sqlite3 *db){ 0, /* xSavepoint */ 0, /* xRelease */ 0, /* xRollbackTo */ - 0 /* xShadowName */ + 0, /* xShadowName */ + 0 /* xIntegrity */ }; int rc; /* Return code */ @@ -192854,7 +194785,8 @@ SQLITE_PRIVATE int sqlite3Fts3InitTok(sqlite3 *db, Fts3Hash *pHash, void(*xDestr 0, /* xSavepoint */ 0, /* xRelease */ 0, /* xRollbackTo */ - 0 /* xShadowName */ + 0, /* xShadowName */ + 0 /* xIntegrity */ }; int rc; /* Return code */ @@ -196195,7 +198127,6 @@ SQLITE_PRIVATE int sqlite3Fts3PendingTermsFlush(Fts3Table *p){ rc = fts3SegmentMerge(p, p->iPrevLangid, i, FTS3_SEGCURSOR_PENDING); if( rc==SQLITE_DONE ) rc = SQLITE_OK; } - sqlite3Fts3PendingTermsClear(p); /* Determine the auto-incr-merge setting if unknown. If enabled, ** estimate the number of leaf blocks of content to be written @@ -196217,6 +198148,10 @@ SQLITE_PRIVATE int sqlite3Fts3PendingTermsFlush(Fts3Table *p){ rc = sqlite3_reset(pStmt); } } + + if( rc==SQLITE_OK ){ + sqlite3Fts3PendingTermsClear(p); + } return rc; } @@ -196848,6 +198783,8 @@ static int fts3AppendToNode( blobGrowBuffer(pPrev, nTerm, &rc); if( rc!=SQLITE_OK ) return rc; + assert( pPrev!=0 ); + assert( pPrev->a!=0 ); nPrefix = fts3PrefixCompress(pPrev->a, pPrev->n, zTerm, nTerm); nSuffix = nTerm - nPrefix; @@ -196904,9 +198841,13 @@ static int fts3IncrmergeAppend( nSpace += sqlite3Fts3VarintLen(nDoclist) + nDoclist; /* If the current block is not empty, and if adding this term/doclist - ** to the current block would make it larger than Fts3Table.nNodeSize - ** bytes, write this block out to the database. */ - if( pLeaf->block.n>0 && (pLeaf->block.n + nSpace)>p->nNodeSize ){ + ** to the current block would make it larger than Fts3Table.nNodeSize bytes, + ** and if there is still room for another leaf page, write this block out to + ** the database. */ + if( pLeaf->block.n>0 + && (pLeaf->block.n + nSpace)>p->nNodeSize + && pLeaf->iBlock < (pWriter->iStart + pWriter->nLeafEst) + ){ rc = fts3WriteSegment(p, pLeaf->iBlock, pLeaf->block.a, pLeaf->block.n); pWriter->nWork++; @@ -197238,7 +199179,7 @@ static int fts3IncrmergeLoad( rc = sqlite3Fts3ReadBlock(p, reader.iChild, &aBlock, &nBlock,0); blobGrowBuffer(&pNode->block, MAX(nBlock, p->nNodeSize)+FTS3_NODE_PADDING, &rc - ); + ); if( rc==SQLITE_OK ){ memcpy(pNode->block.a, aBlock, nBlock); pNode->block.n = nBlock; @@ -198155,7 +200096,7 @@ static u64 fts3ChecksumIndex( ** If an error occurs (e.g. an OOM or IO error), return an SQLite error ** code. The final value of *pbOk is undefined in this case. */ -static int fts3IntegrityCheck(Fts3Table *p, int *pbOk){ +SQLITE_PRIVATE int sqlite3Fts3IntegrityCheck(Fts3Table *p, int *pbOk){ int rc = SQLITE_OK; /* Return code */ u64 cksum1 = 0; /* Checksum based on FTS index contents */ u64 cksum2 = 0; /* Checksum based on %_content contents */ @@ -198233,7 +200174,7 @@ static int fts3IntegrityCheck(Fts3Table *p, int *pbOk){ sqlite3_finalize(pStmt); } - *pbOk = (cksum1==cksum2); + *pbOk = (rc==SQLITE_OK && cksum1==cksum2); return rc; } @@ -198273,7 +200214,7 @@ static int fts3DoIntegrityCheck( ){ int rc; int bOk = 0; - rc = fts3IntegrityCheck(p, &bOk); + rc = sqlite3Fts3IntegrityCheck(p, &bOk); if( rc==SQLITE_OK && bOk==0 ) rc = FTS_CORRUPT_VTAB; return rc; } @@ -198303,8 +200244,11 @@ static int fts3SpecialInsert(Fts3Table *p, sqlite3_value *pVal){ rc = fts3DoIncrmerge(p, &zVal[6]); }else if( nVal>10 && 0==sqlite3_strnicmp(zVal, "automerge=", 10) ){ rc = fts3DoAutoincrmerge(p, &zVal[10]); + }else if( nVal==5 && 0==sqlite3_strnicmp(zVal, "flush", 5) ){ + rc = sqlite3Fts3PendingTermsFlush(p); + } #if defined(SQLITE_DEBUG) || defined(SQLITE_TEST) - }else{ + else{ int v; if( nVal>9 && 0==sqlite3_strnicmp(zVal, "nodesize=", 9) ){ v = atoi(&zVal[9]); @@ -198322,8 +200266,8 @@ static int fts3SpecialInsert(Fts3Table *p, sqlite3_value *pVal){ if( v>=4 && v<=FTS3_MERGE_COUNT && (v&1)==0 ) p->nMergeCount = v; rc = SQLITE_OK; } -#endif } +#endif return rc; } @@ -201244,24 +203188,145 @@ SQLITE_PRIVATE int sqlite3FtsUnicodeFold(int c, int eRemoveDiacritic){ ** ****************************************************************************** ** -** This SQLite JSON functions. +** SQLite JSON functions. ** ** This file began as an extension in ext/misc/json1.c in 2015. That ** extension proved so useful that it has now been moved into the core. ** -** For the time being, all JSON is stored as pure text. (We might add -** a JSONB type in the future which stores a binary encoding of JSON in -** a BLOB, but there is no support for JSONB in the current implementation. -** This implementation parses JSON text at 250 MB/s, so it is hard to see -** how JSONB might improve on that.) +** The original design stored all JSON as pure text, canonical RFC-8259. +** Support for JSON-5 extensions was added with version 3.42.0 (2023-05-16). +** All generated JSON text still conforms strictly to RFC-8259, but text +** with JSON-5 extensions is accepted as input. +** +** Beginning with version 3.45.0 (circa 2024-01-01), these routines also +** accept BLOB values that have JSON encoded using a binary representation +** called "JSONB". The name JSONB comes from PostgreSQL, however the on-disk +** format SQLite JSONB is completely different and incompatible with +** PostgreSQL JSONB. +** +** Decoding and interpreting JSONB is still O(N) where N is the size of +** the input, the same as text JSON. However, the constant of proportionality +** for JSONB is much smaller due to faster parsing. The size of each +** element in JSONB is encoded in its header, so there is no need to search +** for delimiters using persnickety syntax rules. JSONB seems to be about +** 3x faster than text JSON as a result. JSONB is also tends to be slightly +** smaller than text JSON, by 5% or 10%, but there are corner cases where +** JSONB can be slightly larger. So you are not far mistaken to say that +** a JSONB blob is the same size as the equivalent RFC-8259 text. +** +** +** THE JSONB ENCODING: +** +** Every JSON element is encoded in JSONB as a header and a payload. +** The header is between 1 and 9 bytes in size. The payload is zero +** or more bytes. +** +** The lower 4 bits of the first byte of the header determines the +** element type: +** +** 0: NULL +** 1: TRUE +** 2: FALSE +** 3: INT -- RFC-8259 integer literal +** 4: INT5 -- JSON5 integer literal +** 5: FLOAT -- RFC-8259 floating point literal +** 6: FLOAT5 -- JSON5 floating point literal +** 7: TEXT -- Text literal acceptable to both SQL and JSON +** 8: TEXTJ -- Text containing RFC-8259 escapes +** 9: TEXT5 -- Text containing JSON5 and/or RFC-8259 escapes +** 10: TEXTRAW -- Text containing unescaped syntax characters +** 11: ARRAY +** 12: OBJECT +** +** The other three possible values (13-15) are reserved for future +** enhancements. +** +** The upper 4 bits of the first byte determine the size of the header +** and sometimes also the size of the payload. If X is the first byte +** of the element and if X>>4 is between 0 and 11, then the payload +** will be that many bytes in size and the header is exactly one byte +** in size. Other four values for X>>4 (12-15) indicate that the header +** is more than one byte in size and that the payload size is determined +** by the remainder of the header, interpreted as a unsigned big-endian +** integer. +** +** Value of X>>4 Size integer Total header size +** ------------- -------------------- ----------------- +** 12 1 byte (0-255) 2 +** 13 2 byte (0-65535) 3 +** 14 4 byte (0-4294967295) 5 +** 15 8 byte (0-1.8e19) 9 +** +** The payload size need not be expressed in its minimal form. For example, +** if the payload size is 10, the size can be expressed in any of 5 different +** ways: (1) (X>>4)==10, (2) (X>>4)==12 following by on 0x0a byte, +** (3) (X>>4)==13 followed by 0x00 and 0x0a, (4) (X>>4)==14 followed by +** 0x00 0x00 0x00 0x0a, or (5) (X>>4)==15 followed by 7 bytes of 0x00 and +** a single byte of 0x0a. The shorter forms are preferred, of course, but +** sometimes when generating JSONB, the payload size is not known in advance +** and it is convenient to reserve sufficient header space to cover the +** largest possible payload size and then come back later and patch up +** the size when it becomes known, resulting in a non-minimal encoding. +** +** The value (X>>4)==15 is not actually used in the current implementation +** (as SQLite is currently unable handle BLOBs larger than about 2GB) +** but is included in the design to allow for future enhancements. +** +** The payload follows the header. NULL, TRUE, and FALSE have no payload and +** their payload size must always be zero. The payload for INT, INT5, +** FLOAT, FLOAT5, TEXT, TEXTJ, TEXT5, and TEXTROW is text. Note that the +** "..." or '...' delimiters are omitted from the various text encodings. +** The payload for ARRAY and OBJECT is a list of additional elements that +** are the content for the array or object. The payload for an OBJECT +** must be an even number of elements. The first element of each pair is +** the label and must be of type TEXT, TEXTJ, TEXT5, or TEXTRAW. +** +** A valid JSONB blob consists of a single element, as described above. +** Usually this will be an ARRAY or OBJECT element which has many more +** elements as its content. But the overall blob is just a single element. +** +** Input validation for JSONB blobs simply checks that the element type +** code is between 0 and 12 and that the total size of the element +** (header plus payload) is the same as the size of the BLOB. If those +** checks are true, the BLOB is assumed to be JSONB and processing continues. +** Errors are only raised if some other miscoding is discovered during +** processing. +** +** Additional information can be found in the doc/jsonb.md file of the +** canonical SQLite source tree. */ #ifndef SQLITE_OMIT_JSON /* #include "sqliteInt.h" */ +/* JSONB element types +*/ +#define JSONB_NULL 0 /* "null" */ +#define JSONB_TRUE 1 /* "true" */ +#define JSONB_FALSE 2 /* "false" */ +#define JSONB_INT 3 /* integer acceptable to JSON and SQL */ +#define JSONB_INT5 4 /* integer in 0x000 notation */ +#define JSONB_FLOAT 5 /* float acceptable to JSON and SQL */ +#define JSONB_FLOAT5 6 /* float with JSON5 extensions */ +#define JSONB_TEXT 7 /* Text compatible with both JSON and SQL */ +#define JSONB_TEXTJ 8 /* Text with JSON escapes */ +#define JSONB_TEXT5 9 /* Text with JSON-5 escape */ +#define JSONB_TEXTRAW 10 /* SQL text that needs escaping for JSON */ +#define JSONB_ARRAY 11 /* An array */ +#define JSONB_OBJECT 12 /* An object */ + +/* Human-readable names for the JSONB values. The index for each +** string must correspond to the JSONB_* integer above. +*/ +static const char * const jsonbType[] = { + "null", "true", "false", "integer", "integer", + "real", "real", "text", "text", "text", + "text", "array", "object", "", "", "", "" +}; + /* ** Growing our own isspace() routine this way is twice as fast as ** the library isspace() function, resulting in a 7% overall performance -** increase for the parser. (Ubuntu14.10 gcc 4.8.4 x64 with -Os). +** increase for the text-JSON parser. (Ubuntu14.10 gcc 4.8.4 x64 with -Os). */ static const char jsonIsSpace[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, @@ -201282,11 +203347,19 @@ static const char jsonIsSpace[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; -#define fast_isspace(x) (jsonIsSpace[(unsigned char)x]) +#define jsonIsspace(x) (jsonIsSpace[(unsigned char)x]) /* -** Characters that are special to JSON. Control charaters, -** '"' and '\\'. +** The set of all space characters recognized by jsonIsspace(). +** Useful as the second argument to strspn(). +*/ +static const char jsonSpaces[] = "\011\012\015\040"; + +/* +** Characters that are special to JSON. Control characters, +** '"' and '\\' and '\''. Actually, '\'' is not special to +** canonical JSON, but it is special in JSON-5, so we include +** it in the set of special characters. */ static const char jsonIsOk[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -201308,22 +203381,49 @@ static const char jsonIsOk[256] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; - -#if !defined(SQLITE_DEBUG) && !defined(SQLITE_COVERAGE_TEST) -# define VVA(X) -#else -# define VVA(X) X -#endif - /* Objects */ +typedef struct JsonCache JsonCache; typedef struct JsonString JsonString; -typedef struct JsonNode JsonNode; typedef struct JsonParse JsonParse; -typedef struct JsonCleanup JsonCleanup; + +/* +** Magic number used for the JSON parse cache in sqlite3_get_auxdata() +*/ +#define JSON_CACHE_ID (-429938) /* Cache entry */ +#define JSON_CACHE_SIZE 4 /* Max number of cache entries */ + +/* +** jsonUnescapeOneChar() returns this invalid code point if it encounters +** a syntax error. +*/ +#define JSON_INVALID_CHAR 0x99999 + +/* A cache mapping JSON text into JSONB blobs. +** +** Each cache entry is a JsonParse object with the following restrictions: +** +** * The bReadOnly flag must be set +** +** * The aBlob[] array must be owned by the JsonParse object. In other +** words, nBlobAlloc must be non-zero. +** +** * eEdit and delta must be zero. +** +** * zJson must be an RCStr. In other words bJsonIsRCStr must be true. +*/ +struct JsonCache { + sqlite3 *db; /* Database connection */ + int nUsed; /* Number of active entries in the cache */ + JsonParse *a[JSON_CACHE_SIZE]; /* One line for each cache entry */ +}; /* An instance of this object represents a JSON string ** under construction. Really, this is a generic string accumulator ** that can be and is used to create strings other than JSON. +** +** If the generated string is longer than will fit into the zSpace[] buffer, +** then it will be an RCStr string. This aids with caching of large +** JSON strings. */ struct JsonString { sqlite3_context *pCtx; /* Function context - put error messages here */ @@ -201331,121 +203431,75 @@ struct JsonString { u64 nAlloc; /* Bytes of storage available in zBuf[] */ u64 nUsed; /* Bytes of zBuf[] currently used */ u8 bStatic; /* True if zBuf is static space */ - u8 bErr; /* True if an error has been encountered */ + u8 eErr; /* True if an error has been encountered */ char zSpace[100]; /* Initial static space */ }; -/* A deferred cleanup task. A list of JsonCleanup objects might be -** run when the JsonParse object is destroyed. -*/ -struct JsonCleanup { - JsonCleanup *pJCNext; /* Next in a list */ - void (*xOp)(void*); /* Routine to run */ - void *pArg; /* Argument to xOp() */ -}; +/* Allowed values for JsonString.eErr */ +#define JSTRING_OOM 0x01 /* Out of memory */ +#define JSTRING_MALFORMED 0x02 /* Malformed JSONB */ +#define JSTRING_ERR 0x04 /* Error already sent to sqlite3_result */ -/* JSON type values +/* The "subtype" set for text JSON values passed through using +** sqlite3_result_subtype() and sqlite3_value_subtype(). */ -#define JSON_SUBST 0 /* Special edit node. Uses u.iPrev */ -#define JSON_NULL 1 -#define JSON_TRUE 2 -#define JSON_FALSE 3 -#define JSON_INT 4 -#define JSON_REAL 5 -#define JSON_STRING 6 -#define JSON_ARRAY 7 -#define JSON_OBJECT 8 - -/* The "subtype" set for JSON values */ #define JSON_SUBTYPE 74 /* Ascii for "J" */ /* -** Names of the various JSON types: +** Bit values for the flags passed into various SQL function implementations +** via the sqlite3_user_data() value. */ -static const char * const jsonType[] = { - "subst", - "null", "true", "false", "integer", "real", "text", "array", "object" -}; - -/* Bit values for the JsonNode.jnFlag field -*/ -#define JNODE_RAW 0x01 /* Content is raw, not JSON encoded */ -#define JNODE_ESCAPE 0x02 /* Content is text with \ escapes */ -#define JNODE_REMOVE 0x04 /* Do not output */ -#define JNODE_REPLACE 0x08 /* Target of a JSON_SUBST node */ -#define JNODE_APPEND 0x10 /* More ARRAY/OBJECT entries at u.iAppend */ -#define JNODE_LABEL 0x20 /* Is a label of an object */ -#define JNODE_JSON5 0x40 /* Node contains JSON5 enhancements */ +#define JSON_JSON 0x01 /* Result is always JSON */ +#define JSON_SQL 0x02 /* Result is always SQL */ +#define JSON_ABPATH 0x03 /* Allow abbreviated JSON path specs */ +#define JSON_ISSET 0x04 /* json_set(), not json_insert() */ +#define JSON_BLOB 0x08 /* Use the BLOB output format */ -/* A single node of parsed JSON. An array of these nodes describes -** a parse of JSON + edits. +/* A parsed JSON value. Lifecycle: ** -** Use the json_parse() SQL function (available when compiled with -** -DSQLITE_DEBUG) to see a dump of complete JsonParse objects, including -** a complete listing and decoding of the array of JsonNodes. -*/ -struct JsonNode { - u8 eType; /* One of the JSON_ type values */ - u8 jnFlags; /* JNODE flags */ - u8 eU; /* Which union element to use */ - u32 n; /* Bytes of content for INT, REAL or STRING - ** Number of sub-nodes for ARRAY and OBJECT - ** Node that SUBST applies to */ - union { - const char *zJContent; /* 1: Content for INT, REAL, and STRING */ - u32 iAppend; /* 2: More terms for ARRAY and OBJECT */ - u32 iKey; /* 3: Key for ARRAY objects in json_tree() */ - u32 iPrev; /* 4: Previous SUBST node, or 0 */ - } u; -}; - - -/* A parsed and possibly edited JSON string. Lifecycle: +** 1. JSON comes in and is parsed into a JSONB value in aBlob. The +** original text is stored in zJson. This step is skipped if the +** input is JSONB instead of text JSON. ** -** 1. JSON comes in and is parsed into an array aNode[]. The original -** JSON text is stored in zJson. +** 2. The aBlob[] array is searched using the JSON path notation, if needed. ** -** 2. Zero or more changes are made (via json_remove() or json_replace() -** or similar) to the aNode[] array. +** 3. Zero or more changes are made to aBlob[] (via json_remove() or +** json_replace() or json_patch() or similar). ** -** 3. A new, edited and mimified JSON string is generated from aNode -** and stored in zAlt. The JsonParse object always owns zAlt. -** -** Step 1 always happens. Step 2 and 3 may or may not happen, depending -** on the operation. -** -** aNode[].u.zJContent entries typically point into zJson. Hence zJson -** must remain valid for the lifespan of the parse. For edits, -** aNode[].u.zJContent might point to malloced space other than zJson. -** Entries in pClup are responsible for freeing that extra malloced space. -** -** When walking the parse tree in aNode[], edits are ignored if useMod is -** false. +** 4. New JSON text is generated from the aBlob[] for output. This step +** is skipped if the function is one of the jsonb_* functions that +** returns JSONB instead of text JSON. */ struct JsonParse { - u32 nNode; /* Number of slots of aNode[] used */ - u32 nAlloc; /* Number of slots of aNode[] allocated */ - JsonNode *aNode; /* Array of nodes containing the parse */ - char *zJson; /* Original JSON string (before edits) */ - char *zAlt; /* Revised and/or mimified JSON */ - u32 *aUp; /* Index of parent of each node */ - JsonCleanup *pClup;/* Cleanup operations prior to freeing this object */ + u8 *aBlob; /* JSONB representation of JSON value */ + u32 nBlob; /* Bytes of aBlob[] actually used */ + u32 nBlobAlloc; /* Bytes allocated to aBlob[]. 0 if aBlob is external */ + char *zJson; /* Json text used for parsing */ + sqlite3 *db; /* The database connection to which this object belongs */ + int nJson; /* Length of the zJson string in bytes */ + u32 nJPRef; /* Number of references to this object */ + u32 iErr; /* Error location in zJson[] */ u16 iDepth; /* Nesting depth */ u8 nErr; /* Number of errors seen */ u8 oom; /* Set to true if out of memory */ u8 bJsonIsRCStr; /* True if zJson is an RCStr */ u8 hasNonstd; /* True if input uses non-standard features like JSON5 */ - u8 useMod; /* Actually use the edits contain inside aNode */ - u8 hasMod; /* aNode contains edits from the original zJson */ - u32 nJPRef; /* Number of references to this object */ - int nJson; /* Length of the zJson string in bytes */ - int nAlt; /* Length of alternative JSON string zAlt, in bytes */ - u32 iErr; /* Error location in zJson[] */ - u32 iSubst; /* Last JSON_SUBST entry in aNode[] */ - u32 iHold; /* Age of this entry in the cache for LRU replacement */ + u8 bReadOnly; /* Do not modify. */ + /* Search and edit information. See jsonLookupStep() */ + u8 eEdit; /* Edit operation to apply */ + int delta; /* Size change due to the edit */ + u32 nIns; /* Number of bytes to insert */ + u32 iLabel; /* Location of label if search landed on an object value */ + u8 *aIns; /* Content to be inserted */ }; +/* Allowed values for JsonParse.eEdit */ +#define JEDIT_DEL 1 /* Delete if exists */ +#define JEDIT_REPL 2 /* Overwrite if exists */ +#define JEDIT_INS 3 /* Insert if not exists */ +#define JEDIT_SET 4 /* Insert or overwrite */ + /* ** Maximum nesting depth of JSON for this implementation. ** @@ -201453,15 +203507,151 @@ struct JsonParse { ** descent parser. A depth of 1000 is far deeper than any sane JSON ** should go. Historical note: This limit was 2000 prior to version 3.42.0 */ -#define JSON_MAX_DEPTH 1000 +#ifndef SQLITE_JSON_MAX_DEPTH +# define JSON_MAX_DEPTH 1000 +#else +# define JSON_MAX_DEPTH SQLITE_JSON_MAX_DEPTH +#endif + +/* +** Allowed values for the flgs argument to jsonParseFuncArg(); +*/ +#define JSON_EDITABLE 0x01 /* Generate a writable JsonParse object */ +#define JSON_KEEPERROR 0x02 /* Return non-NULL even if there is an error */ + +/************************************************************************** +** Forward references +**************************************************************************/ +static void jsonReturnStringAsBlob(JsonString*); +static int jsonFuncArgMightBeBinary(sqlite3_value *pJson); +static u32 jsonTranslateBlobToText(const JsonParse*,u32,JsonString*); +static void jsonReturnParse(sqlite3_context*,JsonParse*); +static JsonParse *jsonParseFuncArg(sqlite3_context*,sqlite3_value*,u32); +static void jsonParseFree(JsonParse*); +static u32 jsonbPayloadSize(const JsonParse*, u32, u32*); +static u32 jsonUnescapeOneChar(const char*, u32, u32*); + +/************************************************************************** +** Utility routines for dealing with JsonCache objects +**************************************************************************/ + +/* +** Free a JsonCache object. +*/ +static void jsonCacheDelete(JsonCache *p){ + int i; + for(i=0; inUsed; i++){ + jsonParseFree(p->a[i]); + } + sqlite3DbFree(p->db, p); +} +static void jsonCacheDeleteGeneric(void *p){ + jsonCacheDelete((JsonCache*)p); +} + +/* +** Insert a new entry into the cache. If the cache is full, expel +** the least recently used entry. Return SQLITE_OK on success or a +** result code otherwise. +** +** Cache entries are stored in age order, oldest first. +*/ +static int jsonCacheInsert( + sqlite3_context *ctx, /* The SQL statement context holding the cache */ + JsonParse *pParse /* The parse object to be added to the cache */ +){ + JsonCache *p; + + assert( pParse->zJson!=0 ); + assert( pParse->bJsonIsRCStr ); + assert( pParse->delta==0 ); + p = sqlite3_get_auxdata(ctx, JSON_CACHE_ID); + if( p==0 ){ + sqlite3 *db = sqlite3_context_db_handle(ctx); + p = sqlite3DbMallocZero(db, sizeof(*p)); + if( p==0 ) return SQLITE_NOMEM; + p->db = db; + sqlite3_set_auxdata(ctx, JSON_CACHE_ID, p, jsonCacheDeleteGeneric); + p = sqlite3_get_auxdata(ctx, JSON_CACHE_ID); + if( p==0 ) return SQLITE_NOMEM; + } + if( p->nUsed >= JSON_CACHE_SIZE ){ + jsonParseFree(p->a[0]); + memmove(p->a, &p->a[1], (JSON_CACHE_SIZE-1)*sizeof(p->a[0])); + p->nUsed = JSON_CACHE_SIZE-1; + } + assert( pParse->nBlobAlloc>0 ); + pParse->eEdit = 0; + pParse->nJPRef++; + pParse->bReadOnly = 1; + p->a[p->nUsed] = pParse; + p->nUsed++; + return SQLITE_OK; +} + +/* +** Search for a cached translation the json text supplied by pArg. Return +** the JsonParse object if found. Return NULL if not found. +** +** When a match if found, the matching entry is moved to become the +** most-recently used entry if it isn't so already. +** +** The JsonParse object returned still belongs to the Cache and might +** be deleted at any moment. If the caller whants the JsonParse to +** linger, it needs to increment the nPJRef reference counter. +*/ +static JsonParse *jsonCacheSearch( + sqlite3_context *ctx, /* The SQL statement context holding the cache */ + sqlite3_value *pArg /* Function argument containing SQL text */ +){ + JsonCache *p; + int i; + const char *zJson; + int nJson; + + if( sqlite3_value_type(pArg)!=SQLITE_TEXT ){ + return 0; + } + zJson = (const char*)sqlite3_value_text(pArg); + if( zJson==0 ) return 0; + nJson = sqlite3_value_bytes(pArg); + + p = sqlite3_get_auxdata(ctx, JSON_CACHE_ID); + if( p==0 ){ + return 0; + } + for(i=0; inUsed; i++){ + if( p->a[i]->zJson==zJson ) break; + } + if( i>=p->nUsed ){ + for(i=0; inUsed; i++){ + if( p->a[i]->nJson!=nJson ) continue; + if( memcmp(p->a[i]->zJson, zJson, nJson)==0 ) break; + } + } + if( inUsed ){ + if( inUsed-1 ){ + /* Make the matching entry the most recently used entry */ + JsonParse *tmp = p->a[i]; + memmove(&p->a[i], &p->a[i+1], (p->nUsed-i-1)*sizeof(tmp)); + p->a[p->nUsed-1] = tmp; + i = p->nUsed - 1; + } + assert( p->a[i]->delta==0 ); + return p->a[i]; + }else{ + return 0; + } +} /************************************************************************** ** Utility routines for dealing with JsonString objects **************************************************************************/ -/* Set the JsonString object to an empty string +/* Turn uninitialized bulk memory into a valid JsonString object +** holding a zero-length string. */ -static void jsonZero(JsonString *p){ +static void jsonStringZero(JsonString *p){ p->zBuf = p->zSpace; p->nAlloc = sizeof(p->zSpace); p->nUsed = 0; @@ -201470,39 +203660,39 @@ static void jsonZero(JsonString *p){ /* Initialize the JsonString object */ -static void jsonInit(JsonString *p, sqlite3_context *pCtx){ +static void jsonStringInit(JsonString *p, sqlite3_context *pCtx){ p->pCtx = pCtx; - p->bErr = 0; - jsonZero(p); + p->eErr = 0; + jsonStringZero(p); } /* Free all allocated memory and reset the JsonString object back to its ** initial state. */ -static void jsonReset(JsonString *p){ +static void jsonStringReset(JsonString *p){ if( !p->bStatic ) sqlite3RCStrUnref(p->zBuf); - jsonZero(p); + jsonStringZero(p); } /* Report an out-of-memory (OOM) condition */ -static void jsonOom(JsonString *p){ - p->bErr = 1; - sqlite3_result_error_nomem(p->pCtx); - jsonReset(p); +static void jsonStringOom(JsonString *p){ + p->eErr |= JSTRING_OOM; + if( p->pCtx ) sqlite3_result_error_nomem(p->pCtx); + jsonStringReset(p); } /* Enlarge pJson->zBuf so that it can hold at least N more bytes. ** Return zero on success. Return non-zero on an OOM error */ -static int jsonGrow(JsonString *p, u32 N){ +static int jsonStringGrow(JsonString *p, u32 N){ u64 nTotal = NnAlloc ? p->nAlloc*2 : p->nAlloc+N+10; char *zNew; if( p->bStatic ){ - if( p->bErr ) return 1; + if( p->eErr ) return 1; zNew = sqlite3RCStrNew(nTotal); if( zNew==0 ){ - jsonOom(p); + jsonStringOom(p); return SQLITE_NOMEM; } memcpy(zNew, p->zBuf, (size_t)p->nUsed); @@ -201511,8 +203701,8 @@ static int jsonGrow(JsonString *p, u32 N){ }else{ p->zBuf = sqlite3RCStrResize(p->zBuf, nTotal); if( p->zBuf==0 ){ - p->bErr = 1; - jsonZero(p); + p->eErr |= JSTRING_OOM; + jsonStringZero(p); return SQLITE_NOMEM; } } @@ -201522,20 +203712,20 @@ static int jsonGrow(JsonString *p, u32 N){ /* Append N bytes from zIn onto the end of the JsonString string. */ -static SQLITE_NOINLINE void jsonAppendExpand( +static SQLITE_NOINLINE void jsonStringExpandAndAppend( JsonString *p, const char *zIn, u32 N ){ assert( N>0 ); - if( jsonGrow(p,N) ) return; + if( jsonStringGrow(p,N) ) return; memcpy(p->zBuf+p->nUsed, zIn, N); p->nUsed += N; } static void jsonAppendRaw(JsonString *p, const char *zIn, u32 N){ if( N==0 ) return; if( N+p->nUsed >= p->nAlloc ){ - jsonAppendExpand(p,zIn,N); + jsonStringExpandAndAppend(p,zIn,N); }else{ memcpy(p->zBuf+p->nUsed, zIn, N); p->nUsed += N; @@ -201544,7 +203734,7 @@ static void jsonAppendRaw(JsonString *p, const char *zIn, u32 N){ static void jsonAppendRawNZ(JsonString *p, const char *zIn, u32 N){ assert( N>0 ); if( N+p->nUsed >= p->nAlloc ){ - jsonAppendExpand(p,zIn,N); + jsonStringExpandAndAppend(p,zIn,N); }else{ memcpy(p->zBuf+p->nUsed, zIn, N); p->nUsed += N; @@ -201556,7 +203746,7 @@ static void jsonAppendRawNZ(JsonString *p, const char *zIn, u32 N){ */ static void jsonPrintf(int N, JsonString *p, const char *zFormat, ...){ va_list ap; - if( (p->nUsed + N >= p->nAlloc) && jsonGrow(p, N) ) return; + if( (p->nUsed + N >= p->nAlloc) && jsonStringGrow(p, N) ) return; va_start(ap, zFormat); sqlite3_vsnprintf(N, p->zBuf+p->nUsed, zFormat, ap); va_end(ap); @@ -201566,7 +203756,7 @@ static void jsonPrintf(int N, JsonString *p, const char *zFormat, ...){ /* Append a single character */ static SQLITE_NOINLINE void jsonAppendCharExpand(JsonString *p, char c){ - if( jsonGrow(p,1) ) return; + if( jsonStringGrow(p,1) ) return; p->zBuf[p->nUsed++] = c; } static void jsonAppendChar(JsonString *p, char c){ @@ -201577,24 +203767,27 @@ static void jsonAppendChar(JsonString *p, char c){ } } -/* Try to force the string to be a zero-terminated RCStr string. +/* Remove a single character from the end of the string +*/ +static void jsonStringTrimOneChar(JsonString *p){ + if( p->eErr==0 ){ + assert( p->nUsed>0 ); + p->nUsed--; + } +} + + +/* Make sure there is a zero terminator on p->zBuf[] ** ** Return true on success. Return false if an OOM prevents this ** from happening. */ -static int jsonForceRCStr(JsonString *p){ +static int jsonStringTerminate(JsonString *p){ jsonAppendChar(p, 0); - if( p->bErr ) return 0; - p->nUsed--; - if( p->bStatic==0 ) return 1; - p->nAlloc = 0; - p->nUsed++; - jsonGrow(p, p->nUsed); - p->nUsed--; - return p->bStatic==0; + jsonStringTrimOneChar(p); + return p->eErr==0; } - /* Append a comma separator to the output buffer, if the previous ** character is not '[' or '{'. */ @@ -201607,21 +203800,66 @@ static void jsonAppendSeparator(JsonString *p){ } /* Append the N-byte string in zIn to the end of the JsonString string -** under construction. Enclose the string in "..." and escape -** any double-quotes or backslash characters contained within the +** under construction. Enclose the string in double-quotes ("...") and +** escape any double-quotes or backslash characters contained within the ** string. +** +** This routine is a high-runner. There is a measurable performance +** increase associated with unwinding the jsonIsOk[] loop. */ static void jsonAppendString(JsonString *p, const char *zIn, u32 N){ - u32 i; - if( zIn==0 || ((N+p->nUsed+2 >= p->nAlloc) && jsonGrow(p,N+2)!=0) ) return; + u32 k; + u8 c; + const u8 *z = (const u8*)zIn; + if( z==0 ) return; + if( (N+p->nUsed+2 >= p->nAlloc) && jsonStringGrow(p,N+2)!=0 ) return; p->zBuf[p->nUsed++] = '"'; - for(i=0; izBuf[p->nUsed++] = c; - }else if( c=='"' || c=='\\' ){ + while( 1 /*exit-by-break*/ ){ + k = 0; + /* The following while() is the 4-way unwound equivalent of + ** + ** while( k=N ){ + while( k=N ){ + if( k>0 ){ + memcpy(&p->zBuf[p->nUsed], z, k); + p->nUsed += k; + } + break; + } + if( k>0 ){ + memcpy(&p->zBuf[p->nUsed], z, k); + p->nUsed += k; + z += k; + N -= k; + } + c = z[0]; + if( c=='"' || c=='\\' ){ json_simple_escape: - if( (p->nUsed+N+3-i > p->nAlloc) && jsonGrow(p,N+3-i)!=0 ) return; + if( (p->nUsed+N+3 > p->nAlloc) && jsonStringGrow(p,N+3)!=0 ) return; p->zBuf[p->nUsed++] = '\\'; p->zBuf[p->nUsed++] = c; }else if( c=='\'' ){ @@ -201642,7 +203880,7 @@ static void jsonAppendString(JsonString *p, const char *zIn, u32 N){ c = aSpecial[c]; goto json_simple_escape; } - if( (p->nUsed+N+7+i > p->nAlloc) && jsonGrow(p,N+7-i)!=0 ) return; + if( (p->nUsed+N+7 > p->nAlloc) && jsonStringGrow(p,N+7)!=0 ) return; p->zBuf[p->nUsed++] = '\\'; p->zBuf[p->nUsed++] = 'u'; p->zBuf[p->nUsed++] = '0'; @@ -201650,140 +203888,18 @@ static void jsonAppendString(JsonString *p, const char *zIn, u32 N){ p->zBuf[p->nUsed++] = "0123456789abcdef"[c>>4]; p->zBuf[p->nUsed++] = "0123456789abcdef"[c&0xf]; } + z++; + N--; } p->zBuf[p->nUsed++] = '"'; assert( p->nUsednAlloc ); } /* -** The zIn[0..N] string is a JSON5 string literal. Append to p a translation -** of the string literal that standard JSON and that omits all JSON5 -** features. +** Append an sqlite3_value (such as a function parameter) to the JSON +** string under construction in p. */ -static void jsonAppendNormalizedString(JsonString *p, const char *zIn, u32 N){ - u32 i; - jsonAppendChar(p, '"'); - zIn++; - N -= 2; - while( N>0 ){ - for(i=0; i0 ){ - jsonAppendRawNZ(p, zIn, i); - zIn += i; - N -= i; - if( N==0 ) break; - } - assert( zIn[0]=='\\' ); - switch( (u8)zIn[1] ){ - case '\'': - jsonAppendChar(p, '\''); - break; - case 'v': - jsonAppendRawNZ(p, "\\u0009", 6); - break; - case 'x': - jsonAppendRawNZ(p, "\\u00", 4); - jsonAppendRawNZ(p, &zIn[2], 2); - zIn += 2; - N -= 2; - break; - case '0': - jsonAppendRawNZ(p, "\\u0000", 6); - break; - case '\r': - if( zIn[2]=='\n' ){ - zIn++; - N--; - } - break; - case '\n': - break; - case 0xe2: - assert( N>=4 ); - assert( 0x80==(u8)zIn[2] ); - assert( 0xa8==(u8)zIn[3] || 0xa9==(u8)zIn[3] ); - zIn += 2; - N -= 2; - break; - default: - jsonAppendRawNZ(p, zIn, 2); - break; - } - zIn += 2; - N -= 2; - } - jsonAppendChar(p, '"'); -} - -/* -** The zIn[0..N] string is a JSON5 integer literal. Append to p a translation -** of the string literal that standard JSON and that omits all JSON5 -** features. -*/ -static void jsonAppendNormalizedInt(JsonString *p, const char *zIn, u32 N){ - if( zIn[0]=='+' ){ - zIn++; - N--; - }else if( zIn[0]=='-' ){ - jsonAppendChar(p, '-'); - zIn++; - N--; - } - if( zIn[0]=='0' && (zIn[1]=='x' || zIn[1]=='X') ){ - sqlite3_int64 i = 0; - int rc = sqlite3DecOrHexToI64(zIn, &i); - if( rc<=1 ){ - jsonPrintf(100,p,"%lld",i); - }else{ - assert( rc==2 ); - jsonAppendRawNZ(p, "9.0e999", 7); - } - return; - } - assert( N>0 ); - jsonAppendRawNZ(p, zIn, N); -} - -/* -** The zIn[0..N] string is a JSON5 real literal. Append to p a translation -** of the string literal that standard JSON and that omits all JSON5 -** features. -*/ -static void jsonAppendNormalizedReal(JsonString *p, const char *zIn, u32 N){ - u32 i; - if( zIn[0]=='+' ){ - zIn++; - N--; - }else if( zIn[0]=='-' ){ - jsonAppendChar(p, '-'); - zIn++; - N--; - } - if( zIn[0]=='.' ){ - jsonAppendChar(p, '0'); - } - for(i=0; i0 ){ - jsonAppendRawNZ(p, zIn, N); - } -} - - - -/* -** Append a function parameter value to the JSON string under -** construction. -*/ -static void jsonAppendValue( +static void jsonAppendSqlValue( JsonString *p, /* Append to this JSON string */ sqlite3_value *pValue /* Value to append */ ){ @@ -201813,290 +203929,127 @@ static void jsonAppendValue( break; } default: { - if( p->bErr==0 ){ + if( jsonFuncArgMightBeBinary(pValue) ){ + JsonParse px; + memset(&px, 0, sizeof(px)); + px.aBlob = (u8*)sqlite3_value_blob(pValue); + px.nBlob = sqlite3_value_bytes(pValue); + jsonTranslateBlobToText(&px, 0, p); + }else if( p->eErr==0 ){ sqlite3_result_error(p->pCtx, "JSON cannot hold BLOB values", -1); - p->bErr = 2; - jsonReset(p); + p->eErr = JSTRING_ERR; + jsonStringReset(p); } break; } } } - -/* Make the JSON in p the result of the SQL function. +/* Make the text in p (which is probably a generated JSON text string) +** the result of the SQL function. ** -** The JSON string is reset. +** The JsonString is reset. +** +** If pParse and ctx are both non-NULL, then the SQL string in p is +** loaded into the zJson field of the pParse object as a RCStr and the +** pParse is added to the cache. */ -static void jsonResult(JsonString *p){ - if( p->bErr==0 ){ - if( p->bStatic ){ +static void jsonReturnString( + JsonString *p, /* String to return */ + JsonParse *pParse, /* JSONB source or NULL */ + sqlite3_context *ctx /* Where to cache */ +){ + assert( (pParse!=0)==(ctx!=0) ); + assert( ctx==0 || ctx==p->pCtx ); + if( p->eErr==0 ){ + int flags = SQLITE_PTR_TO_INT(sqlite3_user_data(p->pCtx)); + if( flags & JSON_BLOB ){ + jsonReturnStringAsBlob(p); + }else if( p->bStatic ){ sqlite3_result_text64(p->pCtx, p->zBuf, p->nUsed, SQLITE_TRANSIENT, SQLITE_UTF8); - }else if( jsonForceRCStr(p) ){ - sqlite3RCStrRef(p->zBuf); - sqlite3_result_text64(p->pCtx, p->zBuf, p->nUsed, - (void(*)(void*))sqlite3RCStrUnref, + }else if( jsonStringTerminate(p) ){ + if( pParse && pParse->bJsonIsRCStr==0 && pParse->nBlobAlloc>0 ){ + int rc; + pParse->zJson = sqlite3RCStrRef(p->zBuf); + pParse->nJson = p->nUsed; + pParse->bJsonIsRCStr = 1; + rc = jsonCacheInsert(ctx, pParse); + if( rc==SQLITE_NOMEM ){ + sqlite3_result_error_nomem(ctx); + jsonStringReset(p); + return; + } + } + sqlite3_result_text64(p->pCtx, sqlite3RCStrRef(p->zBuf), p->nUsed, + sqlite3RCStrUnref, SQLITE_UTF8); + }else{ + sqlite3_result_error_nomem(p->pCtx); } - } - if( p->bErr==1 ){ + }else if( p->eErr & JSTRING_OOM ){ sqlite3_result_error_nomem(p->pCtx); + }else if( p->eErr & JSTRING_MALFORMED ){ + sqlite3_result_error(p->pCtx, "malformed JSON", -1); } - jsonReset(p); + jsonStringReset(p); } /************************************************************************** -** Utility routines for dealing with JsonNode and JsonParse objects +** Utility routines for dealing with JsonParse objects **************************************************************************/ -/* -** Return the number of consecutive JsonNode slots need to represent -** the parsed JSON at pNode. The minimum answer is 1. For ARRAY and -** OBJECT types, the number might be larger. -** -** Appended elements are not counted. The value returned is the number -** by which the JsonNode counter should increment in order to go to the -** next peer value. -*/ -static u32 jsonNodeSize(JsonNode *pNode){ - return pNode->eType>=JSON_ARRAY ? pNode->n+1 : 1; -} - /* ** Reclaim all memory allocated by a JsonParse object. But do not ** delete the JsonParse object itself. */ static void jsonParseReset(JsonParse *pParse){ - while( pParse->pClup ){ - JsonCleanup *pTask = pParse->pClup; - pParse->pClup = pTask->pJCNext; - pTask->xOp(pTask->pArg); - sqlite3_free(pTask); - } assert( pParse->nJPRef<=1 ); - if( pParse->aNode ){ - sqlite3_free(pParse->aNode); - pParse->aNode = 0; - } - pParse->nNode = 0; - pParse->nAlloc = 0; - if( pParse->aUp ){ - sqlite3_free(pParse->aUp); - pParse->aUp = 0; - } if( pParse->bJsonIsRCStr ){ sqlite3RCStrUnref(pParse->zJson); pParse->zJson = 0; + pParse->nJson = 0; pParse->bJsonIsRCStr = 0; } - if( pParse->zAlt ){ - sqlite3RCStrUnref(pParse->zAlt); - pParse->zAlt = 0; + if( pParse->nBlobAlloc ){ + sqlite3DbFree(pParse->db, pParse->aBlob); + pParse->aBlob = 0; + pParse->nBlob = 0; + pParse->nBlobAlloc = 0; } } /* -** Free a JsonParse object that was obtained from sqlite3_malloc(). -** -** Note that destroying JsonParse might call sqlite3RCStrUnref() to -** destroy the zJson value. The RCStr object might recursively invoke -** JsonParse to destroy this pParse object again. Take care to ensure -** that this recursive destructor sequence terminates harmlessly. +** Decrement the reference count on the JsonParse object. When the +** count reaches zero, free the object. */ static void jsonParseFree(JsonParse *pParse){ - if( pParse->nJPRef>1 ){ - pParse->nJPRef--; - }else{ - jsonParseReset(pParse); - sqlite3_free(pParse); - } -} - -/* -** Add a cleanup task to the JsonParse object. -** -** If an OOM occurs, the cleanup operation happens immediately -** and this function returns SQLITE_NOMEM. -*/ -static int jsonParseAddCleanup( - JsonParse *pParse, /* Add the cleanup task to this parser */ - void(*xOp)(void*), /* The cleanup task */ - void *pArg /* Argument to the cleanup */ -){ - JsonCleanup *pTask = sqlite3_malloc64( sizeof(*pTask) ); - if( pTask==0 ){ - pParse->oom = 1; - xOp(pArg); - return SQLITE_ERROR; - } - pTask->pJCNext = pParse->pClup; - pParse->pClup = pTask; - pTask->xOp = xOp; - pTask->pArg = pArg; - return SQLITE_OK; -} - -/* -** Convert the JsonNode pNode into a pure JSON string and -** append to pOut. Subsubstructure is also included. Return -** the number of JsonNode objects that are encoded. -*/ -static void jsonRenderNode( - JsonParse *pParse, /* the complete parse of the JSON */ - JsonNode *pNode, /* The node to render */ - JsonString *pOut /* Write JSON here */ -){ - assert( pNode!=0 ); - while( (pNode->jnFlags & JNODE_REPLACE)!=0 && pParse->useMod ){ - u32 idx = (u32)(pNode - pParse->aNode); - u32 i = pParse->iSubst; - while( 1 /*exit-by-break*/ ){ - assert( inNode ); - assert( pParse->aNode[i].eType==JSON_SUBST ); - assert( pParse->aNode[i].eU==4 ); - assert( pParse->aNode[i].u.iPrevaNode[i].n==idx ){ - pNode = &pParse->aNode[i+1]; - break; - } - i = pParse->aNode[i].u.iPrev; - } - } - switch( pNode->eType ){ - default: { - assert( pNode->eType==JSON_NULL ); - jsonAppendRawNZ(pOut, "null", 4); - break; - } - case JSON_TRUE: { - jsonAppendRawNZ(pOut, "true", 4); - break; - } - case JSON_FALSE: { - jsonAppendRawNZ(pOut, "false", 5); - break; - } - case JSON_STRING: { - assert( pNode->eU==1 ); - if( pNode->jnFlags & JNODE_RAW ){ - if( pNode->jnFlags & JNODE_LABEL ){ - jsonAppendChar(pOut, '"'); - jsonAppendRaw(pOut, pNode->u.zJContent, pNode->n); - jsonAppendChar(pOut, '"'); - }else{ - jsonAppendString(pOut, pNode->u.zJContent, pNode->n); - } - }else if( pNode->jnFlags & JNODE_JSON5 ){ - jsonAppendNormalizedString(pOut, pNode->u.zJContent, pNode->n); - }else{ - assert( pNode->n>0 ); - jsonAppendRawNZ(pOut, pNode->u.zJContent, pNode->n); - } - break; - } - case JSON_REAL: { - assert( pNode->eU==1 ); - if( pNode->jnFlags & JNODE_JSON5 ){ - jsonAppendNormalizedReal(pOut, pNode->u.zJContent, pNode->n); - }else{ - assert( pNode->n>0 ); - jsonAppendRawNZ(pOut, pNode->u.zJContent, pNode->n); - } - break; - } - case JSON_INT: { - assert( pNode->eU==1 ); - if( pNode->jnFlags & JNODE_JSON5 ){ - jsonAppendNormalizedInt(pOut, pNode->u.zJContent, pNode->n); - }else{ - assert( pNode->n>0 ); - jsonAppendRawNZ(pOut, pNode->u.zJContent, pNode->n); - } - break; - } - case JSON_ARRAY: { - u32 j = 1; - jsonAppendChar(pOut, '['); - for(;;){ - while( j<=pNode->n ){ - if( (pNode[j].jnFlags & JNODE_REMOVE)==0 || pParse->useMod==0 ){ - jsonAppendSeparator(pOut); - jsonRenderNode(pParse, &pNode[j], pOut); - } - j += jsonNodeSize(&pNode[j]); - } - if( (pNode->jnFlags & JNODE_APPEND)==0 ) break; - if( pParse->useMod==0 ) break; - assert( pNode->eU==2 ); - pNode = &pParse->aNode[pNode->u.iAppend]; - j = 1; - } - jsonAppendChar(pOut, ']'); - break; - } - case JSON_OBJECT: { - u32 j = 1; - jsonAppendChar(pOut, '{'); - for(;;){ - while( j<=pNode->n ){ - if( (pNode[j+1].jnFlags & JNODE_REMOVE)==0 || pParse->useMod==0 ){ - jsonAppendSeparator(pOut); - jsonRenderNode(pParse, &pNode[j], pOut); - jsonAppendChar(pOut, ':'); - jsonRenderNode(pParse, &pNode[j+1], pOut); - } - j += 1 + jsonNodeSize(&pNode[j+1]); - } - if( (pNode->jnFlags & JNODE_APPEND)==0 ) break; - if( pParse->useMod==0 ) break; - assert( pNode->eU==2 ); - pNode = &pParse->aNode[pNode->u.iAppend]; - j = 1; - } - jsonAppendChar(pOut, '}'); - break; + if( pParse ){ + if( pParse->nJPRef>1 ){ + pParse->nJPRef--; + }else{ + jsonParseReset(pParse); + sqlite3DbFree(pParse->db, pParse); } } } -/* -** Return a JsonNode and all its descendants as a JSON string. -*/ -static void jsonReturnJson( - JsonParse *pParse, /* The complete JSON */ - JsonNode *pNode, /* Node to return */ - sqlite3_context *pCtx, /* Return value for this function */ - int bGenerateAlt /* Also store the rendered text in zAlt */ -){ - JsonString s; - if( pParse->oom ){ - sqlite3_result_error_nomem(pCtx); - return; - } - if( pParse->nErr==0 ){ - jsonInit(&s, pCtx); - jsonRenderNode(pParse, pNode, &s); - if( bGenerateAlt && pParse->zAlt==0 && jsonForceRCStr(&s) ){ - pParse->zAlt = sqlite3RCStrRef(s.zBuf); - pParse->nAlt = s.nUsed; - } - jsonResult(&s); - sqlite3_result_subtype(pCtx, JSON_SUBTYPE); - } -} +/************************************************************************** +** Utility routines for the JSON text parser +**************************************************************************/ /* ** Translate a single byte of Hex into an integer. -** This routine only works if h really is a valid hexadecimal -** character: 0..9a..fA..F +** This routine only gives a correct answer if h really is a valid hexadecimal +** character: 0..9a..fA..F. But unlike sqlite3HexToInt(), it does not +** assert() if the digit is not hex. */ static u8 jsonHexToInt(int h){ - assert( (h>='0' && h<='9') || (h>='a' && h<='f') || (h>='A' && h<='F') ); +#ifdef SQLITE_ASCII + h += 9*(1&(h>>6)); +#endif #ifdef SQLITE_EBCDIC h += 9*(1&~(h>>4)); -#else - h += 9*(1&(h>>6)); #endif return (u8)(h & 0xf); } @@ -202106,10 +204059,6 @@ static u8 jsonHexToInt(int h){ */ static u32 jsonHexToInt4(const char *z){ u32 v; - assert( sqlite3Isxdigit(z[0]) ); - assert( sqlite3Isxdigit(z[1]) ); - assert( sqlite3Isxdigit(z[2]) ); - assert( sqlite3Isxdigit(z[3]) ); v = (jsonHexToInt(z[0])<<12) + (jsonHexToInt(z[1])<<8) + (jsonHexToInt(z[2])<<4) @@ -202117,281 +204066,6 @@ static u32 jsonHexToInt4(const char *z){ return v; } -/* -** Make the JsonNode the return value of the function. -*/ -static void jsonReturn( - JsonParse *pParse, /* Complete JSON parse tree */ - JsonNode *pNode, /* Node to return */ - sqlite3_context *pCtx /* Return value for this function */ -){ - switch( pNode->eType ){ - default: { - assert( pNode->eType==JSON_NULL ); - sqlite3_result_null(pCtx); - break; - } - case JSON_TRUE: { - sqlite3_result_int(pCtx, 1); - break; - } - case JSON_FALSE: { - sqlite3_result_int(pCtx, 0); - break; - } - case JSON_INT: { - sqlite3_int64 i = 0; - int rc; - int bNeg = 0; - const char *z; - - assert( pNode->eU==1 ); - z = pNode->u.zJContent; - if( z[0]=='-' ){ z++; bNeg = 1; } - else if( z[0]=='+' ){ z++; } - rc = sqlite3DecOrHexToI64(z, &i); - if( rc<=1 ){ - sqlite3_result_int64(pCtx, bNeg ? -i : i); - }else if( rc==3 && bNeg ){ - sqlite3_result_int64(pCtx, SMALLEST_INT64); - }else{ - goto to_double; - } - break; - } - case JSON_REAL: { - double r; - const char *z; - assert( pNode->eU==1 ); - to_double: - z = pNode->u.zJContent; - sqlite3AtoF(z, &r, sqlite3Strlen30(z), SQLITE_UTF8); - sqlite3_result_double(pCtx, r); - break; - } - case JSON_STRING: { - if( pNode->jnFlags & JNODE_RAW ){ - assert( pNode->eU==1 ); - sqlite3_result_text(pCtx, pNode->u.zJContent, pNode->n, - SQLITE_TRANSIENT); - }else if( (pNode->jnFlags & JNODE_ESCAPE)==0 ){ - /* JSON formatted without any backslash-escapes */ - assert( pNode->eU==1 ); - sqlite3_result_text(pCtx, pNode->u.zJContent+1, pNode->n-2, - SQLITE_TRANSIENT); - }else{ - /* Translate JSON formatted string into raw text */ - u32 i; - u32 n = pNode->n; - const char *z; - char *zOut; - u32 j; - u32 nOut = n; - assert( pNode->eU==1 ); - z = pNode->u.zJContent; - zOut = sqlite3_malloc( nOut+1 ); - if( zOut==0 ){ - sqlite3_result_error_nomem(pCtx); - break; - } - for(i=1, j=0; i>6)); - zOut[j++] = 0x80 | (v&0x3f); - }else{ - u32 vlo; - if( (v&0xfc00)==0xd800 - && i>18); - zOut[j++] = 0x80 | ((v>>12)&0x3f); - zOut[j++] = 0x80 | ((v>>6)&0x3f); - zOut[j++] = 0x80 | (v&0x3f); - }else{ - zOut[j++] = 0xe0 | (v>>12); - zOut[j++] = 0x80 | ((v>>6)&0x3f); - zOut[j++] = 0x80 | (v&0x3f); - } - } - continue; - }else if( c=='b' ){ - c = '\b'; - }else if( c=='f' ){ - c = '\f'; - }else if( c=='n' ){ - c = '\n'; - }else if( c=='r' ){ - c = '\r'; - }else if( c=='t' ){ - c = '\t'; - }else if( c=='v' ){ - c = '\v'; - }else if( c=='\'' || c=='"' || c=='/' || c=='\\' ){ - /* pass through unchanged */ - }else if( c=='0' ){ - c = 0; - }else if( c=='x' ){ - c = (jsonHexToInt(z[i+1])<<4) | jsonHexToInt(z[i+2]); - i += 2; - }else if( c=='\r' && z[i+1]=='\n' ){ - i++; - continue; - }else if( 0xe2==(u8)c ){ - assert( 0x80==(u8)z[i+1] ); - assert( 0xa8==(u8)z[i+2] || 0xa9==(u8)z[i+2] ); - i += 2; - continue; - }else{ - continue; - } - } /* end if( c=='\\' ) */ - zOut[j++] = c; - } /* end for() */ - zOut[j] = 0; - sqlite3_result_text(pCtx, zOut, j, sqlite3_free); - } - break; - } - case JSON_ARRAY: - case JSON_OBJECT: { - jsonReturnJson(pParse, pNode, pCtx, 0); - break; - } - } -} - -/* Forward reference */ -static int jsonParseAddNode(JsonParse*,u32,u32,const char*); - -/* -** A macro to hint to the compiler that a function should not be -** inlined. -*/ -#if defined(__GNUC__) -# define JSON_NOINLINE __attribute__((noinline)) -#elif defined(_MSC_VER) && _MSC_VER>=1310 -# define JSON_NOINLINE __declspec(noinline) -#else -# define JSON_NOINLINE -#endif - - -/* -** Add a single node to pParse->aNode after first expanding the -** size of the aNode array. Return the index of the new node. -** -** If an OOM error occurs, set pParse->oom and return -1. -*/ -static JSON_NOINLINE int jsonParseAddNodeExpand( - JsonParse *pParse, /* Append the node to this object */ - u32 eType, /* Node type */ - u32 n, /* Content size or sub-node count */ - const char *zContent /* Content */ -){ - u32 nNew; - JsonNode *pNew; - assert( pParse->nNode>=pParse->nAlloc ); - if( pParse->oom ) return -1; - nNew = pParse->nAlloc*2 + 10; - pNew = sqlite3_realloc64(pParse->aNode, sizeof(JsonNode)*nNew); - if( pNew==0 ){ - pParse->oom = 1; - return -1; - } - pParse->nAlloc = sqlite3_msize(pNew)/sizeof(JsonNode); - pParse->aNode = pNew; - assert( pParse->nNodenAlloc ); - return jsonParseAddNode(pParse, eType, n, zContent); -} - -/* -** Create a new JsonNode instance based on the arguments and append that -** instance to the JsonParse. Return the index in pParse->aNode[] of the -** new node, or -1 if a memory allocation fails. -*/ -static int jsonParseAddNode( - JsonParse *pParse, /* Append the node to this object */ - u32 eType, /* Node type */ - u32 n, /* Content size or sub-node count */ - const char *zContent /* Content */ -){ - JsonNode *p; - assert( pParse->aNode!=0 || pParse->nNode>=pParse->nAlloc ); - if( pParse->nNode>=pParse->nAlloc ){ - return jsonParseAddNodeExpand(pParse, eType, n, zContent); - } - assert( pParse->aNode!=0 ); - p = &pParse->aNode[pParse->nNode]; - assert( p!=0 ); - p->eType = (u8)(eType & 0xff); - p->jnFlags = (u8)(eType >> 8); - VVA( p->eU = zContent ? 1 : 0 ); - p->n = n; - p->u.zJContent = zContent; - return pParse->nNode++; -} - -/* -** Add an array of new nodes to the current pParse->aNode array. -** Return the index of the first node added. -** -** If an OOM error occurs, set pParse->oom. -*/ -static void jsonParseAddNodeArray( - JsonParse *pParse, /* Append the node to this object */ - JsonNode *aNode, /* Array of nodes to add */ - u32 nNode /* Number of elements in aNew */ -){ - assert( aNode!=0 ); - assert( nNode>=1 ); - if( pParse->nNode + nNode > pParse->nAlloc ){ - u32 nNew = pParse->nNode + nNode; - JsonNode *aNew = sqlite3_realloc64(pParse->aNode, nNew*sizeof(JsonNode)); - if( aNew==0 ){ - pParse->oom = 1; - return; - } - pParse->nAlloc = sqlite3_msize(aNew)/sizeof(JsonNode); - pParse->aNode = aNew; - } - memcpy(&pParse->aNode[pParse->nNode], aNode, nNode*sizeof(JsonNode)); - pParse->nNode += nNode; -} - -/* -** Add a new JSON_SUBST node. The node immediately following -** this new node will be the substitute content for iNode. -*/ -static int jsonParseAddSubstNode( - JsonParse *pParse, /* Add the JSON_SUBST here */ - u32 iNode /* References this node */ -){ - int idx = jsonParseAddNode(pParse, JSON_SUBST, iNode, 0); - if( pParse->oom ) return -1; - pParse->aNode[iNode].jnFlags |= JNODE_REPLACE; - pParse->aNode[idx].eU = 4; - pParse->aNode[idx].u.iPrev = pParse->iSubst; - pParse->iSubst = idx; - pParse->hasMod = 1; - pParse->useMod = 1; - return idx; -} - /* ** Return true if z[] begins with 2 (or more) hexadecimal digits */ @@ -202545,63 +204219,500 @@ static const struct NanInfName { char *zMatch; char *zRepl; } aNanInfName[] = { - { 'i', 'I', 3, JSON_REAL, 7, "inf", "9.0e999" }, - { 'i', 'I', 8, JSON_REAL, 7, "infinity", "9.0e999" }, - { 'n', 'N', 3, JSON_NULL, 4, "NaN", "null" }, - { 'q', 'Q', 4, JSON_NULL, 4, "QNaN", "null" }, - { 's', 'S', 4, JSON_NULL, 4, "SNaN", "null" }, + { 'i', 'I', 3, JSONB_FLOAT, 7, "inf", "9.0e999" }, + { 'i', 'I', 8, JSONB_FLOAT, 7, "infinity", "9.0e999" }, + { 'n', 'N', 3, JSONB_NULL, 4, "NaN", "null" }, + { 'q', 'Q', 4, JSONB_NULL, 4, "QNaN", "null" }, + { 's', 'S', 4, JSONB_NULL, 4, "SNaN", "null" }, }; + /* -** Parse a single JSON value which begins at pParse->zJson[i]. Return the -** index of the first character past the end of the value parsed. +** Report the wrong number of arguments for json_insert(), json_replace() +** or json_set(). +*/ +static void jsonWrongNumArgs( + sqlite3_context *pCtx, + const char *zFuncName +){ + char *zMsg = sqlite3_mprintf("json_%s() needs an odd number of arguments", + zFuncName); + sqlite3_result_error(pCtx, zMsg, -1); + sqlite3_free(zMsg); +} + +/**************************************************************************** +** Utility routines for dealing with the binary BLOB representation of JSON +****************************************************************************/ + +/* +** Expand pParse->aBlob so that it holds at least N bytes. ** -** Special return values: +** Return the number of errors. +*/ +static int jsonBlobExpand(JsonParse *pParse, u32 N){ + u8 *aNew; + u32 t; + assert( N>pParse->nBlobAlloc ); + if( pParse->nBlobAlloc==0 ){ + t = 100; + }else{ + t = pParse->nBlobAlloc*2; + } + if( tdb, pParse->aBlob, t); + if( aNew==0 ){ pParse->oom = 1; return 1; } + pParse->aBlob = aNew; + pParse->nBlobAlloc = t; + return 0; +} + +/* +** If pParse->aBlob is not previously editable (because it is taken +** from sqlite3_value_blob(), as indicated by the fact that +** pParse->nBlobAlloc==0 and pParse->nBlob>0) then make it editable +** by making a copy into space obtained from malloc. +** +** Return true on success. Return false on OOM. +*/ +static int jsonBlobMakeEditable(JsonParse *pParse, u32 nExtra){ + u8 *aOld; + u32 nSize; + assert( !pParse->bReadOnly ); + if( pParse->oom ) return 0; + if( pParse->nBlobAlloc>0 ) return 1; + aOld = pParse->aBlob; + nSize = pParse->nBlob + nExtra; + pParse->aBlob = 0; + if( jsonBlobExpand(pParse, nSize) ){ + return 0; + } + assert( pParse->nBlobAlloc >= pParse->nBlob + nExtra ); + memcpy(pParse->aBlob, aOld, pParse->nBlob); + return 1; +} + +/* Expand pParse->aBlob and append one bytes. +*/ +static SQLITE_NOINLINE void jsonBlobExpandAndAppendOneByte( + JsonParse *pParse, + u8 c +){ + jsonBlobExpand(pParse, pParse->nBlob+1); + if( pParse->oom==0 ){ + assert( pParse->nBlob+1<=pParse->nBlobAlloc ); + pParse->aBlob[pParse->nBlob++] = c; + } +} + +/* Append a single character. +*/ +static void jsonBlobAppendOneByte(JsonParse *pParse, u8 c){ + if( pParse->nBlob >= pParse->nBlobAlloc ){ + jsonBlobExpandAndAppendOneByte(pParse, c); + }else{ + pParse->aBlob[pParse->nBlob++] = c; + } +} + +/* Slow version of jsonBlobAppendNode() that first resizes the +** pParse->aBlob structure. +*/ +static void jsonBlobAppendNode(JsonParse*,u8,u32,const void*); +static SQLITE_NOINLINE void jsonBlobExpandAndAppendNode( + JsonParse *pParse, + u8 eType, + u32 szPayload, + const void *aPayload +){ + if( jsonBlobExpand(pParse, pParse->nBlob+szPayload+9) ) return; + jsonBlobAppendNode(pParse, eType, szPayload, aPayload); +} + + +/* Append an node type byte together with the payload size and +** possibly also the payload. +** +** If aPayload is not NULL, then it is a pointer to the payload which +** is also appended. If aPayload is NULL, the pParse->aBlob[] array +** is resized (if necessary) so that it is big enough to hold the +** payload, but the payload is not appended and pParse->nBlob is left +** pointing to where the first byte of payload will eventually be. +*/ +static void jsonBlobAppendNode( + JsonParse *pParse, /* The JsonParse object under construction */ + u8 eType, /* Node type. One of JSONB_* */ + u32 szPayload, /* Number of bytes of payload */ + const void *aPayload /* The payload. Might be NULL */ +){ + u8 *a; + if( pParse->nBlob+szPayload+9 > pParse->nBlobAlloc ){ + jsonBlobExpandAndAppendNode(pParse,eType,szPayload,aPayload); + return; + } + assert( pParse->aBlob!=0 ); + a = &pParse->aBlob[pParse->nBlob]; + if( szPayload<=11 ){ + a[0] = eType | (szPayload<<4); + pParse->nBlob += 1; + }else if( szPayload<=0xff ){ + a[0] = eType | 0xc0; + a[1] = szPayload & 0xff; + pParse->nBlob += 2; + }else if( szPayload<=0xffff ){ + a[0] = eType | 0xd0; + a[1] = (szPayload >> 8) & 0xff; + a[2] = szPayload & 0xff; + pParse->nBlob += 3; + }else{ + a[0] = eType | 0xe0; + a[1] = (szPayload >> 24) & 0xff; + a[2] = (szPayload >> 16) & 0xff; + a[3] = (szPayload >> 8) & 0xff; + a[4] = szPayload & 0xff; + pParse->nBlob += 5; + } + if( aPayload ){ + pParse->nBlob += szPayload; + memcpy(&pParse->aBlob[pParse->nBlob-szPayload], aPayload, szPayload); + } +} + +/* Change the payload size for the node at index i to be szPayload. +*/ +static int jsonBlobChangePayloadSize( + JsonParse *pParse, + u32 i, + u32 szPayload +){ + u8 *a; + u8 szType; + u8 nExtra; + u8 nNeeded; + int delta; + if( pParse->oom ) return 0; + a = &pParse->aBlob[i]; + szType = a[0]>>4; + if( szType<=11 ){ + nExtra = 0; + }else if( szType==12 ){ + nExtra = 1; + }else if( szType==13 ){ + nExtra = 2; + }else{ + nExtra = 4; + } + if( szPayload<=11 ){ + nNeeded = 0; + }else if( szPayload<=0xff ){ + nNeeded = 1; + }else if( szPayload<=0xffff ){ + nNeeded = 2; + }else{ + nNeeded = 4; + } + delta = nNeeded - nExtra; + if( delta ){ + u32 newSize = pParse->nBlob + delta; + if( delta>0 ){ + if( newSize>pParse->nBlobAlloc && jsonBlobExpand(pParse, newSize) ){ + return 0; /* OOM error. Error state recorded in pParse->oom. */ + } + a = &pParse->aBlob[i]; + memmove(&a[1+delta], &a[1], pParse->nBlob - (i+1)); + }else{ + memmove(&a[1], &a[1-delta], pParse->nBlob - (i+1-delta)); + } + pParse->nBlob = newSize; + } + if( nNeeded==0 ){ + a[0] = (a[0] & 0x0f) | (szPayload<<4); + }else if( nNeeded==1 ){ + a[0] = (a[0] & 0x0f) | 0xc0; + a[1] = szPayload & 0xff; + }else if( nNeeded==2 ){ + a[0] = (a[0] & 0x0f) | 0xd0; + a[1] = (szPayload >> 8) & 0xff; + a[2] = szPayload & 0xff; + }else{ + a[0] = (a[0] & 0x0f) | 0xe0; + a[1] = (szPayload >> 24) & 0xff; + a[2] = (szPayload >> 16) & 0xff; + a[3] = (szPayload >> 8) & 0xff; + a[4] = szPayload & 0xff; + } + return delta; +} + +/* +** If z[0] is 'u' and is followed by exactly 4 hexadecimal character, +** then set *pOp to JSONB_TEXTJ and return true. If not, do not make +** any changes to *pOp and return false. +*/ +static int jsonIs4HexB(const char *z, int *pOp){ + if( z[0]!='u' ) return 0; + if( !jsonIs4Hex(&z[1]) ) return 0; + *pOp = JSONB_TEXTJ; + return 1; +} + +/* +** Check a single element of the JSONB in pParse for validity. +** +** The element to be checked starts at offset i and must end at on the +** last byte before iEnd. +** +** Return 0 if everything is correct. Return the 1-based byte offset of the +** error if a problem is detected. (In other words, if the error is at offset +** 0, return 1). +*/ +static u32 jsonbValidityCheck( + const JsonParse *pParse, /* Input JSONB. Only aBlob and nBlob are used */ + u32 i, /* Start of element as pParse->aBlob[i] */ + u32 iEnd, /* One more than the last byte of the element */ + u32 iDepth /* Current nesting depth */ +){ + u32 n, sz, j, k; + const u8 *z; + u8 x; + if( iDepth>JSON_MAX_DEPTH ) return i+1; + sz = 0; + n = jsonbPayloadSize(pParse, i, &sz); + if( NEVER(n==0) ) return i+1; /* Checked by caller */ + if( NEVER(i+n+sz!=iEnd) ) return i+1; /* Checked by caller */ + z = pParse->aBlob; + x = z[i] & 0x0f; + switch( x ){ + case JSONB_NULL: + case JSONB_TRUE: + case JSONB_FALSE: { + return n+sz==1 ? 0 : i+1; + } + case JSONB_INT: { + if( sz<1 ) return i+1; + j = i+n; + if( z[j]=='-' ){ + j++; + if( sz<2 ) return i+1; + } + k = i+n+sz; + while( jk ) return j+1; + if( z[j+1]!='.' && z[j+1]!='e' && z[j+1]!='E' ) return j+1; + j++; + } + for(; j0 ) return j+1; + if( x==JSONB_FLOAT && (j==k-1 || !sqlite3Isdigit(z[j+1])) ){ + return j+1; + } + seen = 1; + continue; + } + if( z[j]=='e' || z[j]=='E' ){ + if( seen==2 ) return j+1; + if( j==k-1 ) return j+1; + if( z[j+1]=='+' || z[j+1]=='-' ){ + j++; + if( j==k-1 ) return j+1; + } + seen = 2; + continue; + } + return j+1; + } + if( seen==0 ) return i+1; + return 0; + } + case JSONB_TEXT: { + j = i+n; + k = j+sz; + while( j=k ){ + return j+1; + }else if( strchr("\"\\/bfnrt",z[j+1])!=0 ){ + j++; + }else if( z[j+1]=='u' ){ + if( j+5>=k ) return j+1; + if( !jsonIs4Hex((const char*)&z[j+2]) ) return j+1; + j++; + }else if( x!=JSONB_TEXT5 ){ + return j+1; + }else{ + u32 c = 0; + u32 szC = jsonUnescapeOneChar((const char*)&z[j], k-j, &c); + if( c==JSON_INVALID_CHAR ) return j+1; + j += szC - 1; + } + } + j++; + } + return 0; + } + case JSONB_TEXTRAW: { + return 0; + } + case JSONB_ARRAY: { + u32 sub; + j = i+n; + k = j+sz; + while( jk ) return j+1; + sub = jsonbValidityCheck(pParse, j, j+n+sz, iDepth+1); + if( sub ) return sub; + j += n + sz; + } + assert( j==k ); + return 0; + } + case JSONB_OBJECT: { + u32 cnt = 0; + u32 sub; + j = i+n; + k = j+sz; + while( jk ) return j+1; + if( (cnt & 1)==0 ){ + x = z[j] & 0x0f; + if( xJSONB_TEXTRAW ) return j+1; + } + sub = jsonbValidityCheck(pParse, j, j+n+sz, iDepth+1); + if( sub ) return sub; + cnt++; + j += n + sz; + } + assert( j==k ); + if( (cnt & 1)!=0 ) return j+1; + return 0; + } + default: { + return i+1; + } + } +} + +/* +** Translate a single element of JSON text at pParse->zJson[i] into +** its equivalent binary JSONB representation. Append the translation into +** pParse->aBlob[] beginning at pParse->nBlob. The size of +** pParse->aBlob[] is increased as necessary. +** +** Return the index of the first character past the end of the element parsed, +** or one of the following special result codes: ** ** 0 End of input -** -1 Syntax error -** -2 '}' seen -** -3 ']' seen -** -4 ',' seen -** -5 ':' seen +** -1 Syntax error or OOM +** -2 '}' seen \ +** -3 ']' seen \___ For these returns, pParse->iErr is set to +** -4 ',' seen / the index in zJson[] of the seen character +** -5 ':' seen / */ -static int jsonParseValue(JsonParse *pParse, u32 i){ +static int jsonTranslateTextToBlob(JsonParse *pParse, u32 i){ char c; u32 j; - int iThis; + u32 iThis, iStart; int x; - JsonNode *pNode; + u8 t; const char *z = pParse->zJson; json_parse_restart: switch( (u8)z[i] ){ case '{': { /* Parse object */ - iThis = jsonParseAddNode(pParse, JSON_OBJECT, 0, 0); - if( iThis<0 ) return -1; + iThis = pParse->nBlob; + jsonBlobAppendNode(pParse, JSONB_OBJECT, pParse->nJson-i, 0); if( ++pParse->iDepth > JSON_MAX_DEPTH ){ pParse->iErr = i; return -1; } + iStart = pParse->nBlob; for(j=i+1;;j++){ - u32 nNode = pParse->nNode; - x = jsonParseValue(pParse, j); + u32 iBlob = pParse->nBlob; + x = jsonTranslateTextToBlob(pParse, j); if( x<=0 ){ + int op; if( x==(-2) ){ j = pParse->iErr; - if( pParse->nNode!=(u32)iThis+1 ) pParse->hasNonstd = 1; + if( pParse->nBlob!=(u32)iStart ) pParse->hasNonstd = 1; break; } j += json5Whitespace(&z[j]); + op = JSONB_TEXT; if( sqlite3JsonId1(z[j]) - || (z[j]=='\\' && z[j+1]=='u' && jsonIs4Hex(&z[j+2])) + || (z[j]=='\\' && jsonIs4HexB(&z[j+1], &op)) ){ int k = j+1; while( (sqlite3JsonId2(z[k]) && json5Whitespace(&z[k])==0) - || (z[k]=='\\' && z[k+1]=='u' && jsonIs4Hex(&z[k+2])) + || (z[k]=='\\' && jsonIs4HexB(&z[k+1], &op)) ){ k++; } - jsonParseAddNode(pParse, JSON_STRING | (JNODE_RAW<<8), k-j, &z[j]); + assert( iBlob==pParse->nBlob ); + jsonBlobAppendNode(pParse, op, k-j, &z[j]); pParse->hasNonstd = 1; x = k; }else{ @@ -202610,24 +204721,24 @@ json_parse_restart: } } if( pParse->oom ) return -1; - pNode = &pParse->aNode[nNode]; - if( pNode->eType!=JSON_STRING ){ + t = pParse->aBlob[iBlob] & 0x0f; + if( tJSONB_TEXTRAW ){ pParse->iErr = j; return -1; } - pNode->jnFlags |= JNODE_LABEL; j = x; if( z[j]==':' ){ j++; }else{ - if( fast_isspace(z[j]) ){ - do{ j++; }while( fast_isspace(z[j]) ); + if( jsonIsspace(z[j]) ){ + /* strspn() is not helpful here */ + do{ j++; }while( jsonIsspace(z[j]) ); if( z[j]==':' ){ j++; goto parse_object_value; } } - x = jsonParseValue(pParse, j); + x = jsonTranslateTextToBlob(pParse, j); if( x!=(-5) ){ if( x!=(-1) ) pParse->iErr = j; return -1; @@ -202635,7 +204746,7 @@ json_parse_restart: j = pParse->iErr+1; } parse_object_value: - x = jsonParseValue(pParse, j); + x = jsonTranslateTextToBlob(pParse, j); if( x<=0 ){ if( x!=(-1) ) pParse->iErr = j; return -1; @@ -202646,15 +204757,15 @@ json_parse_restart: }else if( z[j]=='}' ){ break; }else{ - if( fast_isspace(z[j]) ){ - do{ j++; }while( fast_isspace(z[j]) ); + if( jsonIsspace(z[j]) ){ + j += 1 + (u32)strspn(&z[j+1], jsonSpaces); if( z[j]==',' ){ continue; }else if( z[j]=='}' ){ break; } } - x = jsonParseValue(pParse, j); + x = jsonTranslateTextToBlob(pParse, j); if( x==(-4) ){ j = pParse->iErr; continue; @@ -202667,25 +204778,26 @@ json_parse_restart: pParse->iErr = j; return -1; } - pParse->aNode[iThis].n = pParse->nNode - (u32)iThis - 1; + jsonBlobChangePayloadSize(pParse, iThis, pParse->nBlob - iStart); pParse->iDepth--; return j+1; } case '[': { /* Parse array */ - iThis = jsonParseAddNode(pParse, JSON_ARRAY, 0, 0); - if( iThis<0 ) return -1; + iThis = pParse->nBlob; + jsonBlobAppendNode(pParse, JSONB_ARRAY, pParse->nJson - i, 0); + iStart = pParse->nBlob; + if( pParse->oom ) return -1; if( ++pParse->iDepth > JSON_MAX_DEPTH ){ pParse->iErr = i; return -1; } - memset(&pParse->aNode[iThis].u, 0, sizeof(pParse->aNode[iThis].u)); for(j=i+1;;j++){ - x = jsonParseValue(pParse, j); + x = jsonTranslateTextToBlob(pParse, j); if( x<=0 ){ if( x==(-3) ){ j = pParse->iErr; - if( pParse->nNode!=(u32)iThis+1 ) pParse->hasNonstd = 1; + if( pParse->nBlob!=iStart ) pParse->hasNonstd = 1; break; } if( x!=(-1) ) pParse->iErr = j; @@ -202697,15 +204809,15 @@ json_parse_restart: }else if( z[j]==']' ){ break; }else{ - if( fast_isspace(z[j]) ){ - do{ j++; }while( fast_isspace(z[j]) ); + if( jsonIsspace(z[j]) ){ + j += 1 + (u32)strspn(&z[j+1], jsonSpaces); if( z[j]==',' ){ continue; }else if( z[j]==']' ){ break; } } - x = jsonParseValue(pParse, j); + x = jsonTranslateTextToBlob(pParse, j); if( x==(-4) ){ j = pParse->iErr; continue; @@ -202718,23 +204830,33 @@ json_parse_restart: pParse->iErr = j; return -1; } - pParse->aNode[iThis].n = pParse->nNode - (u32)iThis - 1; + jsonBlobChangePayloadSize(pParse, iThis, pParse->nBlob - iStart); pParse->iDepth--; return j+1; } case '\'': { - u8 jnFlags; + u8 opcode; char cDelim; pParse->hasNonstd = 1; - jnFlags = JNODE_JSON5; + opcode = JSONB_TEXT; goto parse_string; case '"': /* Parse string */ - jnFlags = 0; + opcode = JSONB_TEXT; parse_string: cDelim = z[i]; - for(j=i+1; 1; j++){ - if( jsonIsOk[(unsigned char)z[j]] ) continue; + j = i+1; + while( 1 /*exit-by-break*/ ){ + if( jsonIsOk[(u8)z[j]] ){ + if( !jsonIsOk[(u8)z[j+1]] ){ + j += 1; + }else if( !jsonIsOk[(u8)z[j+2]] ){ + j += 2; + }else{ + j += 3; + continue; + } + } c = z[j]; if( c==cDelim ){ break; @@ -202743,16 +204865,16 @@ json_parse_restart: if( c=='"' || c=='\\' || c=='/' || c=='b' || c=='f' || c=='n' || c=='r' || c=='t' || (c=='u' && jsonIs4Hex(&z[j+1])) ){ - jnFlags |= JNODE_ESCAPE; + if( opcode==JSONB_TEXT ) opcode = JSONB_TEXTJ; }else if( c=='\'' || c=='0' || c=='v' || c=='\n' || (0xe2==(u8)c && 0x80==(u8)z[j+1] && (0xa8==(u8)z[j+2] || 0xa9==(u8)z[j+2])) || (c=='x' && jsonIs2Hex(&z[j+1])) ){ - jnFlags |= (JNODE_ESCAPE|JNODE_JSON5); + opcode = JSONB_TEXT5; pParse->hasNonstd = 1; }else if( c=='\r' ){ if( z[j+1]=='\n' ) j++; - jnFlags |= (JNODE_ESCAPE|JNODE_JSON5); + opcode = JSONB_TEXT5; pParse->hasNonstd = 1; }else{ pParse->iErr = j; @@ -202762,14 +204884,17 @@ json_parse_restart: /* Control characters are not allowed in strings */ pParse->iErr = j; return -1; + }else if( c=='"' ){ + opcode = JSONB_TEXT5; } + j++; } - jsonParseAddNode(pParse, JSON_STRING | (jnFlags<<8), j+1-i, &z[i]); + jsonBlobAppendNode(pParse, opcode, j-1-i, &z[i+1]); return j+1; } case 't': { if( strncmp(z+i,"true",4)==0 && !sqlite3Isalnum(z[i+4]) ){ - jsonParseAddNode(pParse, JSON_TRUE, 0, 0); + jsonBlobAppendOneByte(pParse, JSONB_TRUE); return i+4; } pParse->iErr = i; @@ -202777,23 +204902,22 @@ json_parse_restart: } case 'f': { if( strncmp(z+i,"false",5)==0 && !sqlite3Isalnum(z[i+5]) ){ - jsonParseAddNode(pParse, JSON_FALSE, 0, 0); + jsonBlobAppendOneByte(pParse, JSONB_FALSE); return i+5; } pParse->iErr = i; return -1; } case '+': { - u8 seenDP, seenE, jnFlags; + u8 seenE; pParse->hasNonstd = 1; - jnFlags = JNODE_JSON5; + t = 0x00; /* Bit 0x01: JSON5. Bit 0x02: FLOAT */ goto parse_number; case '.': if( sqlite3Isdigit(z[i+1]) ){ pParse->hasNonstd = 1; - jnFlags = JNODE_JSON5; + t = 0x03; /* Bit 0x01: JSON5. Bit 0x02: FLOAT */ seenE = 0; - seenDP = JSON_REAL; goto parse_number_2; } pParse->iErr = i; @@ -202810,9 +204934,8 @@ json_parse_restart: case '8': case '9': /* Parse number */ - jnFlags = 0; + t = 0x00; /* Bit 0x01: JSON5. Bit 0x02: FLOAT */ parse_number: - seenDP = JSON_INT; seenE = 0; assert( '-' < '0' ); assert( '+' < '0' ); @@ -202822,9 +204945,9 @@ json_parse_restart: if( c<='0' ){ if( c=='0' ){ if( (z[i+1]=='x' || z[i+1]=='X') && sqlite3Isxdigit(z[i+2]) ){ - assert( seenDP==JSON_INT ); + assert( t==0x00 ); pParse->hasNonstd = 1; - jnFlags |= JNODE_JSON5; + t = 0x01; for(j=i+3; sqlite3Isxdigit(z[j]); j++){} goto parse_number_finish; }else if( sqlite3Isdigit(z[i+1]) ){ @@ -202841,15 +204964,15 @@ json_parse_restart: ){ pParse->hasNonstd = 1; if( z[i]=='-' ){ - jsonParseAddNode(pParse, JSON_REAL, 8, "-9.0e999"); + jsonBlobAppendNode(pParse, JSONB_FLOAT, 6, "-9e999"); }else{ - jsonParseAddNode(pParse, JSON_REAL, 7, "9.0e999"); + jsonBlobAppendNode(pParse, JSONB_FLOAT, 5, "9e999"); } return i + (sqlite3StrNICmp(&z[i+4],"inity",5)==0 ? 9 : 4); } if( z[i+1]=='.' ){ pParse->hasNonstd = 1; - jnFlags |= JNODE_JSON5; + t |= 0x01; goto parse_number_2; } pParse->iErr = i; @@ -202861,30 +204984,31 @@ json_parse_restart: return -1; }else if( (z[i+2]=='x' || z[i+2]=='X') && sqlite3Isxdigit(z[i+3]) ){ pParse->hasNonstd = 1; - jnFlags |= JNODE_JSON5; + t |= 0x01; for(j=i+4; sqlite3Isxdigit(z[j]); j++){} goto parse_number_finish; } } } } + parse_number_2: for(j=i+1;; j++){ c = z[j]; if( sqlite3Isdigit(c) ) continue; if( c=='.' ){ - if( seenDP==JSON_REAL ){ + if( (t & 0x02)!=0 ){ pParse->iErr = j; return -1; } - seenDP = JSON_REAL; + t |= 0x02; continue; } if( c=='e' || c=='E' ){ if( z[j-1]<'0' ){ if( ALWAYS(z[j-1]=='.') && ALWAYS(j-2>=i) && sqlite3Isdigit(z[j-2]) ){ pParse->hasNonstd = 1; - jnFlags |= JNODE_JSON5; + t |= 0x01; }else{ pParse->iErr = j; return -1; @@ -202894,7 +205018,7 @@ json_parse_restart: pParse->iErr = j; return -1; } - seenDP = JSON_REAL; + t |= 0x02; seenE = 1; c = z[j+1]; if( c=='+' || c=='-' ){ @@ -202912,14 +205036,18 @@ json_parse_restart: if( z[j-1]<'0' ){ if( ALWAYS(z[j-1]=='.') && ALWAYS(j-2>=i) && sqlite3Isdigit(z[j-2]) ){ pParse->hasNonstd = 1; - jnFlags |= JNODE_JSON5; + t |= 0x01; }else{ pParse->iErr = j; return -1; } } parse_number_finish: - jsonParseAddNode(pParse, seenDP | (jnFlags<<8), j - i, &z[i]); + assert( JSONB_INT+0x01==JSONB_INT5 ); + assert( JSONB_FLOAT+0x01==JSONB_FLOAT5 ); + assert( JSONB_INT+0x02==JSONB_FLOAT ); + if( z[i]=='+' ) i++; + jsonBlobAppendNode(pParse, JSONB_INT+t, j-i, &z[i]); return j; } case '}': { @@ -202945,9 +205073,7 @@ json_parse_restart: case 0x0a: case 0x0d: case 0x20: { - do{ - i++; - }while( fast_isspace(z[i]) ); + i += 1 + (u32)strspn(&z[i+1], jsonSpaces); goto json_parse_restart; } case 0x0b: @@ -202969,7 +205095,7 @@ json_parse_restart: } case 'n': { if( strncmp(z+i,"null",4)==0 && !sqlite3Isalnum(z[i+4]) ){ - jsonParseAddNode(pParse, JSON_NULL, 0, 0); + jsonBlobAppendOneByte(pParse, JSONB_NULL); return i+4; } /* fall-through into the default case that checks for NaN */ @@ -202985,8 +205111,11 @@ json_parse_restart: continue; } if( sqlite3Isalnum(z[i+nn]) ) continue; - jsonParseAddNode(pParse, aNanInfName[k].eType, - aNanInfName[k].nRepl, aNanInfName[k].zRepl); + if( aNanInfName[k].eType==JSONB_FLOAT ){ + jsonBlobAppendNode(pParse, JSONB_FLOAT, 5, "9e999"); + }else{ + jsonBlobAppendOneByte(pParse, JSONB_NULL); + } pParse->hasNonstd = 1; return i + nn; } @@ -202996,6 +205125,7 @@ json_parse_restart: } /* End switch(z[i]) */ } + /* ** Parse a complete JSON string. Return 0 on success or non-zero if there ** are any errors. If an error occurs, free all memory held by pParse, @@ -203004,20 +205134,26 @@ json_parse_restart: ** pParse must be initialized to an empty parse object prior to calling ** this routine. */ -static int jsonParse( +static int jsonConvertTextToBlob( JsonParse *pParse, /* Initialize and fill this JsonParse object */ sqlite3_context *pCtx /* Report errors here */ ){ int i; const char *zJson = pParse->zJson; - i = jsonParseValue(pParse, 0); + i = jsonTranslateTextToBlob(pParse, 0); if( pParse->oom ) i = -1; if( i>0 ){ +#ifdef SQLITE_DEBUG assert( pParse->iDepth==0 ); - while( fast_isspace(zJson[i]) ) i++; + if( sqlite3Config.bJsonSelfcheck ){ + assert( jsonbValidityCheck(pParse, 0, pParse->nBlob, 0)==0 ); + } +#endif + while( jsonIsspace(zJson[i]) ) i++; if( zJson[i] ){ i += json5Whitespace(&zJson[i]); if( zJson[i] ){ + if( pCtx ) sqlite3_result_error(pCtx, "malformed JSON", -1); jsonParseReset(pParse); return 1; } @@ -203038,248 +205174,715 @@ static int jsonParse( return 0; } - -/* Mark node i of pParse as being a child of iParent. Call recursively -** to fill in all the descendants of node i. +/* +** The input string pStr is a well-formed JSON text string. Convert +** this into the JSONB format and make it the return value of the +** SQL function. */ -static void jsonParseFillInParentage(JsonParse *pParse, u32 i, u32 iParent){ - JsonNode *pNode = &pParse->aNode[i]; - u32 j; - pParse->aUp[i] = iParent; - switch( pNode->eType ){ - case JSON_ARRAY: { - for(j=1; j<=pNode->n; j += jsonNodeSize(pNode+j)){ - jsonParseFillInParentage(pParse, i+j, i); - } - break; - } - case JSON_OBJECT: { - for(j=1; j<=pNode->n; j += jsonNodeSize(pNode+j+1)+1){ - pParse->aUp[i+j] = i; - jsonParseFillInParentage(pParse, i+j+1, i); - } - break; - } - default: { - break; - } +static void jsonReturnStringAsBlob(JsonString *pStr){ + JsonParse px; + memset(&px, 0, sizeof(px)); + jsonStringTerminate(pStr); + px.zJson = pStr->zBuf; + px.nJson = pStr->nUsed; + px.db = sqlite3_context_db_handle(pStr->pCtx); + (void)jsonTranslateTextToBlob(&px, 0); + if( px.oom ){ + sqlite3DbFree(px.db, px.aBlob); + sqlite3_result_error_nomem(pStr->pCtx); + }else{ + assert( px.nBlobAlloc>0 ); + assert( !px.bReadOnly ); + sqlite3_result_blob(pStr->pCtx, px.aBlob, px.nBlob, SQLITE_DYNAMIC); } } -/* -** Compute the parentage of all nodes in a completed parse. +/* The byte at index i is a node type-code. This routine +** determines the payload size for that node and writes that +** payload size in to *pSz. It returns the offset from i to the +** beginning of the payload. Return 0 on error. */ -static int jsonParseFindParents(JsonParse *pParse){ - u32 *aUp; - assert( pParse->aUp==0 ); - aUp = pParse->aUp = sqlite3_malloc64( sizeof(u32)*pParse->nNode ); - if( aUp==0 ){ - pParse->oom = 1; - return SQLITE_NOMEM; - } - jsonParseFillInParentage(pParse, 0, 0); - return SQLITE_OK; -} - -/* -** Magic number used for the JSON parse cache in sqlite3_get_auxdata() -*/ -#define JSON_CACHE_ID (-429938) /* First cache entry */ -#define JSON_CACHE_SZ 4 /* Max number of cache entries */ - -/* -** Obtain a complete parse of the JSON found in the pJson argument -** -** Use the sqlite3_get_auxdata() cache to find a preexisting parse -** if it is available. If the cache is not available or if it -** is no longer valid, parse the JSON again and return the new parse. -** Also register the new parse so that it will be available for -** future sqlite3_get_auxdata() calls. -** -** If an error occurs and pErrCtx!=0 then report the error on pErrCtx -** and return NULL. -** -** The returned pointer (if it is not NULL) is owned by the cache in -** most cases, not the caller. The caller does NOT need to invoke -** jsonParseFree(), in most cases. -** -** Except, if an error occurs and pErrCtx==0 then return the JsonParse -** object with JsonParse.nErr non-zero and the caller will own the JsonParse -** object. In that case, it will be the responsibility of the caller to -** invoke jsonParseFree(). To summarize: -** -** pErrCtx!=0 || p->nErr==0 ==> Return value p is owned by the -** cache. Call does not need to -** free it. -** -** pErrCtx==0 && p->nErr!=0 ==> Return value is owned by the caller -** and so the caller must free it. -*/ -static JsonParse *jsonParseCached( - sqlite3_context *pCtx, /* Context to use for cache search */ - sqlite3_value *pJson, /* Function param containing JSON text */ - sqlite3_context *pErrCtx, /* Write parse errors here if not NULL */ - int bUnedited /* No prior edits allowed */ -){ - char *zJson = (char*)sqlite3_value_text(pJson); - int nJson = sqlite3_value_bytes(pJson); - JsonParse *p; - JsonParse *pMatch = 0; - int iKey; - int iMinKey = 0; - u32 iMinHold = 0xffffffff; - u32 iMaxHold = 0; - int bJsonRCStr; - - if( zJson==0 ) return 0; - for(iKey=0; iKeynJson==nJson - && (p->hasMod==0 || bUnedited==0) - && (p->zJson==zJson || memcmp(p->zJson,zJson,nJson)==0) - ){ - p->nErr = 0; - p->useMod = 0; - pMatch = p; - }else - if( pMatch==0 - && p->zAlt!=0 - && bUnedited==0 - && p->nAlt==nJson - && memcmp(p->zAlt, zJson, nJson)==0 - ){ - p->nErr = 0; - p->useMod = 1; - pMatch = p; - }else if( p->iHoldiHold; - iMinKey = iKey; - } - if( p->iHold>iMaxHold ){ - iMaxHold = p->iHold; - } - } - if( pMatch ){ - /* The input JSON text was found in the cache. Use the preexisting - ** parse of this JSON */ - pMatch->nErr = 0; - pMatch->iHold = iMaxHold+1; - assert( pMatch->nJPRef>0 ); /* pMatch is owned by the cache */ - return pMatch; - } - - /* The input JSON was not found anywhere in the cache. We will need - ** to parse it ourselves and generate a new JsonParse object. - */ - bJsonRCStr = sqlite3ValueIsOfClass(pJson,(void(*)(void*))sqlite3RCStrUnref); - p = sqlite3_malloc64( sizeof(*p) + (bJsonRCStr ? 0 : nJson+1) ); - if( p==0 ){ - sqlite3_result_error_nomem(pCtx); +static u32 jsonbPayloadSize(const JsonParse *pParse, u32 i, u32 *pSz){ + u8 x; + u32 sz; + u32 n; + if( NEVER(i>pParse->nBlob) ){ + *pSz = 0; return 0; } - memset(p, 0, sizeof(*p)); - if( bJsonRCStr ){ - p->zJson = sqlite3RCStrRef(zJson); - p->bJsonIsRCStr = 1; - }else{ - p->zJson = (char*)&p[1]; - memcpy(p->zJson, zJson, nJson+1); - } - p->nJPRef = 1; - if( jsonParse(p, pErrCtx) ){ - if( pErrCtx==0 ){ - p->nErr = 1; - assert( p->nJPRef==1 ); /* Caller will own the new JsonParse object p */ - return p; - } - jsonParseFree(p); - return 0; - } - p->nJson = nJson; - p->iHold = iMaxHold+1; - /* Transfer ownership of the new JsonParse to the cache */ - sqlite3_set_auxdata(pCtx, JSON_CACHE_ID+iMinKey, p, - (void(*)(void*))jsonParseFree); - return (JsonParse*)sqlite3_get_auxdata(pCtx, JSON_CACHE_ID+iMinKey); -} - -/* -** Compare the OBJECT label at pNode against zKey,nKey. Return true on -** a match. -*/ -static int jsonLabelCompare(const JsonNode *pNode, const char *zKey, u32 nKey){ - assert( pNode->eU==1 ); - if( pNode->jnFlags & JNODE_RAW ){ - if( pNode->n!=nKey ) return 0; - return strncmp(pNode->u.zJContent, zKey, nKey)==0; - }else{ - if( pNode->n!=nKey+2 ) return 0; - return strncmp(pNode->u.zJContent+1, zKey, nKey)==0; - } -} -static int jsonSameLabel(const JsonNode *p1, const JsonNode *p2){ - if( p1->jnFlags & JNODE_RAW ){ - return jsonLabelCompare(p2, p1->u.zJContent, p1->n); - }else if( p2->jnFlags & JNODE_RAW ){ - return jsonLabelCompare(p1, p2->u.zJContent, p2->n); - }else{ - return p1->n==p2->n && strncmp(p1->u.zJContent,p2->u.zJContent,p1->n)==0; - } -} - -/* forward declaration */ -static JsonNode *jsonLookupAppend(JsonParse*,const char*,int*,const char**); - -/* -** Search along zPath to find the node specified. Return a pointer -** to that node, or NULL if zPath is malformed or if there is no such -** node. -** -** If pApnd!=0, then try to append new nodes to complete zPath if it is -** possible to do so and if no existing node corresponds to zPath. If -** new nodes are appended *pApnd is set to 1. -*/ -static JsonNode *jsonLookupStep( - JsonParse *pParse, /* The JSON to search */ - u32 iRoot, /* Begin the search at this node */ - const char *zPath, /* The path to search */ - int *pApnd, /* Append nodes to complete path if not NULL */ - const char **pzErr /* Make *pzErr point to any syntax error in zPath */ -){ - u32 i, j, nKey; - const char *zKey; - JsonNode *pRoot; - if( pParse->oom ) return 0; - pRoot = &pParse->aNode[iRoot]; - if( pRoot->jnFlags & (JNODE_REPLACE|JNODE_REMOVE) && pParse->useMod ){ - while( (pRoot->jnFlags & JNODE_REPLACE)!=0 ){ - u32 idx = (u32)(pRoot - pParse->aNode); - i = pParse->iSubst; - while( 1 /*exit-by-break*/ ){ - assert( inNode ); - assert( pParse->aNode[i].eType==JSON_SUBST ); - assert( pParse->aNode[i].eU==4 ); - assert( pParse->aNode[i].u.iPrevaNode[i].n==idx ){ - pRoot = &pParse->aNode[i+1]; - iRoot = i+1; - break; - } - i = pParse->aNode[i].u.iPrev; - } - } - if( pRoot->jnFlags & JNODE_REMOVE ){ + x = pParse->aBlob[i]>>4; + if( x<=11 ){ + sz = x; + n = 1; + }else if( x==12 ){ + if( i+1>=pParse->nBlob ){ + *pSz = 0; return 0; } + sz = pParse->aBlob[i+1]; + n = 2; + }else if( x==13 ){ + if( i+2>=pParse->nBlob ){ + *pSz = 0; + return 0; + } + sz = (pParse->aBlob[i+1]<<8) + pParse->aBlob[i+2]; + n = 3; + }else if( x==14 ){ + if( i+4>=pParse->nBlob ){ + *pSz = 0; + return 0; + } + sz = ((u32)pParse->aBlob[i+1]<<24) + (pParse->aBlob[i+2]<<16) + + (pParse->aBlob[i+3]<<8) + pParse->aBlob[i+4]; + n = 5; + }else{ + if( i+8>=pParse->nBlob + || pParse->aBlob[i+1]!=0 + || pParse->aBlob[i+2]!=0 + || pParse->aBlob[i+3]!=0 + || pParse->aBlob[i+4]!=0 + ){ + *pSz = 0; + return 0; + } + sz = (pParse->aBlob[i+5]<<24) + (pParse->aBlob[i+6]<<16) + + (pParse->aBlob[i+7]<<8) + pParse->aBlob[i+8]; + n = 9; + } + if( (i64)i+sz+n > pParse->nBlob + && (i64)i+sz+n > pParse->nBlob-pParse->delta + ){ + sz = 0; + n = 0; + } + *pSz = sz; + return n; +} + + +/* +** Translate the binary JSONB representation of JSON beginning at +** pParse->aBlob[i] into a JSON text string. Append the JSON +** text onto the end of pOut. Return the index in pParse->aBlob[] +** of the first byte past the end of the element that is translated. +** +** If an error is detected in the BLOB input, the pOut->eErr flag +** might get set to JSTRING_MALFORMED. But not all BLOB input errors +** are detected. So a malformed JSONB input might either result +** in an error, or in incorrect JSON. +** +** The pOut->eErr JSTRING_OOM flag is set on a OOM. +*/ +static u32 jsonTranslateBlobToText( + const JsonParse *pParse, /* the complete parse of the JSON */ + u32 i, /* Start rendering at this index */ + JsonString *pOut /* Write JSON here */ +){ + u32 sz, n, j, iEnd; + + n = jsonbPayloadSize(pParse, i, &sz); + if( n==0 ){ + pOut->eErr |= JSTRING_MALFORMED; + return pParse->nBlob+1; + } + switch( pParse->aBlob[i] & 0x0f ){ + case JSONB_NULL: { + jsonAppendRawNZ(pOut, "null", 4); + return i+1; + } + case JSONB_TRUE: { + jsonAppendRawNZ(pOut, "true", 4); + return i+1; + } + case JSONB_FALSE: { + jsonAppendRawNZ(pOut, "false", 5); + return i+1; + } + case JSONB_INT: + case JSONB_FLOAT: { + if( sz==0 ) goto malformed_jsonb; + jsonAppendRaw(pOut, (const char*)&pParse->aBlob[i+n], sz); + break; + } + case JSONB_INT5: { /* Integer literal in hexadecimal notation */ + u32 k = 2; + sqlite3_uint64 u = 0; + const char *zIn = (const char*)&pParse->aBlob[i+n]; + int bOverflow = 0; + if( sz==0 ) goto malformed_jsonb; + if( zIn[0]=='-' ){ + jsonAppendChar(pOut, '-'); + k++; + }else if( zIn[0]=='+' ){ + k++; + } + for(; keErr |= JSTRING_MALFORMED; + break; + }else if( (u>>60)!=0 ){ + bOverflow = 1; + }else{ + u = u*16 + sqlite3HexToInt(zIn[k]); + } + } + jsonPrintf(100,pOut,bOverflow?"9.0e999":"%llu", u); + break; + } + case JSONB_FLOAT5: { /* Float literal missing digits beside "." */ + u32 k = 0; + const char *zIn = (const char*)&pParse->aBlob[i+n]; + if( sz==0 ) goto malformed_jsonb; + if( zIn[0]=='-' ){ + jsonAppendChar(pOut, '-'); + k++; + } + if( zIn[k]=='.' ){ + jsonAppendChar(pOut, '0'); + } + for(; kaBlob[i+n], sz); + jsonAppendChar(pOut, '"'); + break; + } + case JSONB_TEXT5: { + const char *zIn; + u32 k; + u32 sz2 = sz; + zIn = (const char*)&pParse->aBlob[i+n]; + jsonAppendChar(pOut, '"'); + while( sz2>0 ){ + for(k=0; k0 ){ + jsonAppendRawNZ(pOut, zIn, k); + if( k>=sz2 ){ + break; + } + zIn += k; + sz2 -= k; + } + if( zIn[0]=='"' ){ + jsonAppendRawNZ(pOut, "\\\"", 2); + zIn++; + sz2--; + continue; + } + assert( zIn[0]=='\\' ); + assert( sz2>=1 ); + if( sz2<2 ){ + pOut->eErr |= JSTRING_MALFORMED; + break; + } + switch( (u8)zIn[1] ){ + case '\'': + jsonAppendChar(pOut, '\''); + break; + case 'v': + jsonAppendRawNZ(pOut, "\\u0009", 6); + break; + case 'x': + if( sz2<4 ){ + pOut->eErr |= JSTRING_MALFORMED; + sz2 = 2; + break; + } + jsonAppendRawNZ(pOut, "\\u00", 4); + jsonAppendRawNZ(pOut, &zIn[2], 2); + zIn += 2; + sz2 -= 2; + break; + case '0': + jsonAppendRawNZ(pOut, "\\u0000", 6); + break; + case '\r': + if( sz2>2 && zIn[2]=='\n' ){ + zIn++; + sz2--; + } + break; + case '\n': + break; + case 0xe2: + /* '\' followed by either U+2028 or U+2029 is ignored as + ** whitespace. Not that in UTF8, U+2028 is 0xe2 0x80 0x29. + ** U+2029 is the same except for the last byte */ + if( sz2<4 + || 0x80!=(u8)zIn[2] + || (0xa8!=(u8)zIn[3] && 0xa9!=(u8)zIn[3]) + ){ + pOut->eErr |= JSTRING_MALFORMED; + sz2 = 2; + break; + } + zIn += 2; + sz2 -= 2; + break; + default: + jsonAppendRawNZ(pOut, zIn, 2); + break; + } + assert( sz2>=2 ); + zIn += 2; + sz2 -= 2; + } + jsonAppendChar(pOut, '"'); + break; + } + case JSONB_TEXTRAW: { + jsonAppendString(pOut, (const char*)&pParse->aBlob[i+n], sz); + break; + } + case JSONB_ARRAY: { + jsonAppendChar(pOut, '['); + j = i+n; + iEnd = j+sz; + while( jeErr==0 ){ + j = jsonTranslateBlobToText(pParse, j, pOut); + jsonAppendChar(pOut, ','); + } + if( j>iEnd ) pOut->eErr |= JSTRING_MALFORMED; + if( sz>0 ) jsonStringTrimOneChar(pOut); + jsonAppendChar(pOut, ']'); + break; + } + case JSONB_OBJECT: { + int x = 0; + jsonAppendChar(pOut, '{'); + j = i+n; + iEnd = j+sz; + while( jeErr==0 ){ + j = jsonTranslateBlobToText(pParse, j, pOut); + jsonAppendChar(pOut, (x++ & 1) ? ',' : ':'); + } + if( (x & 1)!=0 || j>iEnd ) pOut->eErr |= JSTRING_MALFORMED; + if( sz>0 ) jsonStringTrimOneChar(pOut); + jsonAppendChar(pOut, '}'); + break; + } + + default: { + malformed_jsonb: + pOut->eErr |= JSTRING_MALFORMED; + break; + } + } + return i+n+sz; +} + +/* Return true if the input pJson +** +** For performance reasons, this routine does not do a detailed check of the +** input BLOB to ensure that it is well-formed. Hence, false positives are +** possible. False negatives should never occur, however. +*/ +static int jsonFuncArgMightBeBinary(sqlite3_value *pJson){ + u32 sz, n; + const u8 *aBlob; + int nBlob; + JsonParse s; + if( sqlite3_value_type(pJson)!=SQLITE_BLOB ) return 0; + aBlob = sqlite3_value_blob(pJson); + nBlob = sqlite3_value_bytes(pJson); + if( nBlob<1 ) return 0; + if( NEVER(aBlob==0) || (aBlob[0] & 0x0f)>JSONB_OBJECT ) return 0; + memset(&s, 0, sizeof(s)); + s.aBlob = (u8*)aBlob; + s.nBlob = nBlob; + n = jsonbPayloadSize(&s, 0, &sz); + if( n==0 ) return 0; + if( sz+n!=(u32)nBlob ) return 0; + if( (aBlob[0] & 0x0f)<=JSONB_FALSE && sz>0 ) return 0; + return sz+n==(u32)nBlob; +} + +/* +** Given that a JSONB_ARRAY object starts at offset i, return +** the number of entries in that array. +*/ +static u32 jsonbArrayCount(JsonParse *pParse, u32 iRoot){ + u32 n, sz, i, iEnd; + u32 k = 0; + n = jsonbPayloadSize(pParse, iRoot, &sz); + iEnd = iRoot+n+sz; + for(i=iRoot+n; n>0 && idelta. +*/ +static void jsonAfterEditSizeAdjust(JsonParse *pParse, u32 iRoot){ + u32 sz = 0; + u32 nBlob; + assert( pParse->delta!=0 ); + assert( pParse->nBlobAlloc >= pParse->nBlob ); + nBlob = pParse->nBlob; + pParse->nBlob = pParse->nBlobAlloc; + (void)jsonbPayloadSize(pParse, iRoot, &sz); + pParse->nBlob = nBlob; + sz += pParse->delta; + pParse->delta += jsonBlobChangePayloadSize(pParse, iRoot, sz); +} + +/* +** Modify the JSONB blob at pParse->aBlob by removing nDel bytes of +** content beginning at iDel, and replacing them with nIns bytes of +** content given by aIns. +** +** nDel may be zero, in which case no bytes are removed. But iDel is +** still important as new bytes will be insert beginning at iDel. +** +** aIns may be zero, in which case space is created to hold nIns bytes +** beginning at iDel, but that space is uninitialized. +** +** Set pParse->oom if an OOM occurs. +*/ +static void jsonBlobEdit( + JsonParse *pParse, /* The JSONB to be modified is in pParse->aBlob */ + u32 iDel, /* First byte to be removed */ + u32 nDel, /* Number of bytes to remove */ + const u8 *aIns, /* Content to insert */ + u32 nIns /* Bytes of content to insert */ +){ + i64 d = (i64)nIns - (i64)nDel; + if( d!=0 ){ + if( pParse->nBlob + d > pParse->nBlobAlloc ){ + jsonBlobExpand(pParse, pParse->nBlob+d); + if( pParse->oom ) return; + } + memmove(&pParse->aBlob[iDel+nIns], + &pParse->aBlob[iDel+nDel], + pParse->nBlob - (iDel+nDel)); + pParse->nBlob += d; + pParse->delta += d; + } + if( nIns && aIns ) memcpy(&pParse->aBlob[iDel], aIns, nIns); +} + +/* +** Return the number of escaped newlines to be ignored. +** An escaped newline is a one of the following byte sequences: +** +** 0x5c 0x0a +** 0x5c 0x0d +** 0x5c 0x0d 0x0a +** 0x5c 0xe2 0x80 0xa8 +** 0x5c 0xe2 0x80 0xa9 +*/ +static u32 jsonBytesToBypass(const char *z, u32 n){ + u32 i = 0; + while( i+10 ); + assert( z[0]=='\\' ); + if( n<2 ){ + *piOut = JSON_INVALID_CHAR; + return n; + } + switch( (u8)z[1] ){ + case 'u': { + u32 v, vlo; + if( n<6 ){ + *piOut = JSON_INVALID_CHAR; + return n; + } + v = jsonHexToInt4(&z[2]); + if( (v & 0xfc00)==0xd800 + && n>=12 + && z[6]=='\\' + && z[7]=='u' + && ((vlo = jsonHexToInt4(&z[8]))&0xfc00)==0xdc00 + ){ + *piOut = ((v&0x3ff)<<10) + (vlo&0x3ff) + 0x10000; + return 12; + }else{ + *piOut = v; + return 6; + } + } + case 'b': { *piOut = '\b'; return 2; } + case 'f': { *piOut = '\f'; return 2; } + case 'n': { *piOut = '\n'; return 2; } + case 'r': { *piOut = '\r'; return 2; } + case 't': { *piOut = '\t'; return 2; } + case 'v': { *piOut = '\v'; return 2; } + case '0': { *piOut = 0; return 2; } + case '\'': + case '"': + case '/': + case '\\':{ *piOut = z[1]; return 2; } + case 'x': { + if( n<4 ){ + *piOut = JSON_INVALID_CHAR; + return n; + } + *piOut = (jsonHexToInt(z[2])<<4) | jsonHexToInt(z[3]); + return 4; + } + case 0xe2: + case '\r': + case '\n': { + u32 nSkip = jsonBytesToBypass(z, n); + if( nSkip==0 ){ + *piOut = JSON_INVALID_CHAR; + return n; + }else if( nSkip==n ){ + *piOut = 0; + return n; + }else if( z[nSkip]=='\\' ){ + return nSkip + jsonUnescapeOneChar(&z[nSkip], n-nSkip, piOut); + }else{ + int sz = sqlite3Utf8ReadLimited((u8*)&z[nSkip], n-nSkip, piOut); + return nSkip + sz; + } + } + default: { + *piOut = JSON_INVALID_CHAR; + return 2; + } + } +} + + +/* +** Compare two object labels. Return 1 if they are equal and +** 0 if they differ. +** +** In this version, we know that one or the other or both of the +** two comparands contains an escape sequence. +*/ +static SQLITE_NOINLINE int jsonLabelCompareEscaped( + const char *zLeft, /* The left label */ + u32 nLeft, /* Size of the left label in bytes */ + int rawLeft, /* True if zLeft contains no escapes */ + const char *zRight, /* The right label */ + u32 nRight, /* Size of the right label in bytes */ + int rawRight /* True if zRight is escape-free */ +){ + u32 cLeft, cRight; + assert( rawLeft==0 || rawRight==0 ); + while( 1 /*exit-by-return*/ ){ + if( nLeft==0 ){ + cLeft = 0; + }else if( rawLeft || zLeft[0]!='\\' ){ + cLeft = ((u8*)zLeft)[0]; + if( cLeft>=0xc0 ){ + int sz = sqlite3Utf8ReadLimited((u8*)zLeft, nLeft, &cLeft); + zLeft += sz; + nLeft -= sz; + }else{ + zLeft++; + nLeft--; + } + }else{ + u32 n = jsonUnescapeOneChar(zLeft, nLeft, &cLeft); + zLeft += n; + assert( n<=nLeft ); + nLeft -= n; + } + if( nRight==0 ){ + cRight = 0; + }else if( rawRight || zRight[0]!='\\' ){ + cRight = ((u8*)zRight)[0]; + if( cRight>=0xc0 ){ + int sz = sqlite3Utf8ReadLimited((u8*)zRight, nRight, &cRight); + zRight += sz; + nRight -= sz; + }else{ + zRight++; + nRight--; + } + }else{ + u32 n = jsonUnescapeOneChar(zRight, nRight, &cRight); + zRight += n; + assert( n<=nRight ); + nRight -= n; + } + if( cLeft!=cRight ) return 0; + if( cLeft==0 ) return 1; + } +} + +/* +** Compare two object labels. Return 1 if they are equal and +** 0 if they differ. Return -1 if an OOM occurs. +*/ +static int jsonLabelCompare( + const char *zLeft, /* The left label */ + u32 nLeft, /* Size of the left label in bytes */ + int rawLeft, /* True if zLeft contains no escapes */ + const char *zRight, /* The right label */ + u32 nRight, /* Size of the right label in bytes */ + int rawRight /* True if zRight is escape-free */ +){ + if( rawLeft && rawRight ){ + /* Simpliest case: Neither label contains escapes. A simple + ** memcmp() is sufficient. */ + if( nLeft!=nRight ) return 0; + return memcmp(zLeft, zRight, nLeft)==0; + }else{ + return jsonLabelCompareEscaped(zLeft, nLeft, rawLeft, + zRight, nRight, rawRight); + } +} + +/* +** Error returns from jsonLookupStep() +*/ +#define JSON_LOOKUP_ERROR 0xffffffff +#define JSON_LOOKUP_NOTFOUND 0xfffffffe +#define JSON_LOOKUP_PATHERROR 0xfffffffd +#define JSON_LOOKUP_ISERROR(x) ((x)>=JSON_LOOKUP_PATHERROR) + +/* Forward declaration */ +static u32 jsonLookupStep(JsonParse*,u32,const char*,u32); + + +/* This helper routine for jsonLookupStep() populates pIns with +** binary data that is to be inserted into pParse. +** +** In the common case, pIns just points to pParse->aIns and pParse->nIns. +** But if the zPath of the original edit operation includes path elements +** that go deeper, additional substructure must be created. +** +** For example: +** +** json_insert('{}', '$.a.b.c', 123); +** +** The search stops at '$.a' But additional substructure must be +** created for the ".b.c" part of the patch so that the final result +** is: {"a":{"b":{"c"::123}}}. This routine populates pIns with +** the binary equivalent of {"b":{"c":123}} so that it can be inserted. +** +** The caller is responsible for resetting pIns when it has finished +** using the substructure. +*/ +static u32 jsonCreateEditSubstructure( + JsonParse *pParse, /* The original JSONB that is being edited */ + JsonParse *pIns, /* Populate this with the blob data to insert */ + const char *zTail /* Tail of the path that determins substructure */ +){ + static const u8 emptyObject[] = { JSONB_ARRAY, JSONB_OBJECT }; + int rc; + memset(pIns, 0, sizeof(*pIns)); + pIns->db = pParse->db; + if( zTail[0]==0 ){ + /* No substructure. Just insert what is given in pParse. */ + pIns->aBlob = pParse->aIns; + pIns->nBlob = pParse->nIns; + rc = 0; + }else{ + /* Construct the binary substructure */ + pIns->nBlob = 1; + pIns->aBlob = (u8*)&emptyObject[zTail[0]=='.']; + pIns->eEdit = pParse->eEdit; + pIns->nIns = pParse->nIns; + pIns->aIns = pParse->aIns; + rc = jsonLookupStep(pIns, 0, zTail, 0); + pParse->oom |= pIns->oom; + } + return rc; /* Error code only */ +} + +/* +** Search along zPath to find the Json element specified. Return an +** index into pParse->aBlob[] for the start of that element's value. +** +** If the value found by this routine is the value half of label/value pair +** within an object, then set pPath->iLabel to the start of the corresponding +** label, before returning. +** +** Return one of the JSON_LOOKUP error codes if problems are seen. +** +** This routine will also modify the blob. If pParse->eEdit is one of +** JEDIT_DEL, JEDIT_REPL, JEDIT_INS, or JEDIT_SET, then changes might be +** made to the selected value. If an edit is performed, then the return +** value does not necessarily point to the select element. If an edit +** is performed, the return value is only useful for detecting error +** conditions. +*/ +static u32 jsonLookupStep( + JsonParse *pParse, /* The JSON to search */ + u32 iRoot, /* Begin the search at this element of aBlob[] */ + const char *zPath, /* The path to search */ + u32 iLabel /* Label if iRoot is a value of in an object */ +){ + u32 i, j, k, nKey, sz, n, iEnd, rc; + const char *zKey; + u8 x; + + if( zPath[0]==0 ){ + if( pParse->eEdit && jsonBlobMakeEditable(pParse, pParse->nIns) ){ + n = jsonbPayloadSize(pParse, iRoot, &sz); + sz += n; + if( pParse->eEdit==JEDIT_DEL ){ + if( iLabel>0 ){ + sz += iRoot - iLabel; + iRoot = iLabel; + } + jsonBlobEdit(pParse, iRoot, sz, 0, 0); + }else if( pParse->eEdit==JEDIT_INS ){ + /* Already exists, so json_insert() is a no-op */ + }else{ + /* json_set() or json_replace() */ + jsonBlobEdit(pParse, iRoot, sz, pParse->aIns, pParse->nIns); + } + } + pParse->iLabel = iLabel; + return iRoot; } - if( zPath[0]==0 ) return pRoot; if( zPath[0]=='.' ){ - if( pRoot->eType!=JSON_OBJECT ) return 0; + int rawKey = 1; + x = pParse->aBlob[iRoot]; zPath++; if( zPath[0]=='"' ){ zKey = zPath + 1; @@ -203288,250 +205891,704 @@ static JsonNode *jsonLookupStep( if( zPath[i] ){ i++; }else{ - *pzErr = zPath; - return 0; + return JSON_LOOKUP_PATHERROR; } testcase( nKey==0 ); + rawKey = memchr(zKey, '\\', nKey)==0; }else{ zKey = zPath; for(i=0; zPath[i] && zPath[i]!='.' && zPath[i]!='['; i++){} nKey = i; if( nKey==0 ){ - *pzErr = zPath; - return 0; + return JSON_LOOKUP_PATHERROR; } } - j = 1; - for(;;){ - while( j<=pRoot->n ){ - if( jsonLabelCompare(pRoot+j, zKey, nKey) ){ - return jsonLookupStep(pParse, iRoot+j+1, &zPath[i], pApnd, pzErr); + if( (x & 0x0f)!=JSONB_OBJECT ) return JSON_LOOKUP_NOTFOUND; + n = jsonbPayloadSize(pParse, iRoot, &sz); + j = iRoot + n; /* j is the index of a label */ + iEnd = j+sz; + while( jaBlob[j] & 0x0f; + if( xJSONB_TEXTRAW ) return JSON_LOOKUP_ERROR; + n = jsonbPayloadSize(pParse, j, &sz); + if( n==0 ) return JSON_LOOKUP_ERROR; + k = j+n; /* k is the index of the label text */ + if( k+sz>=iEnd ) return JSON_LOOKUP_ERROR; + zLabel = (const char*)&pParse->aBlob[k]; + rawLabel = x==JSONB_TEXT || x==JSONB_TEXTRAW; + if( jsonLabelCompare(zKey, nKey, rawKey, zLabel, sz, rawLabel) ){ + u32 v = k+sz; /* v is the index of the value */ + if( ((pParse->aBlob[v])&0x0f)>JSONB_OBJECT ) return JSON_LOOKUP_ERROR; + n = jsonbPayloadSize(pParse, v, &sz); + if( n==0 || v+n+sz>iEnd ) return JSON_LOOKUP_ERROR; + assert( j>0 ); + rc = jsonLookupStep(pParse, v, &zPath[i], j); + if( pParse->delta ) jsonAfterEditSizeAdjust(pParse, iRoot); + return rc; + } + j = k+sz; + if( ((pParse->aBlob[j])&0x0f)>JSONB_OBJECT ) return JSON_LOOKUP_ERROR; + n = jsonbPayloadSize(pParse, j, &sz); + if( n==0 ) return JSON_LOOKUP_ERROR; + j += n+sz; + } + if( j>iEnd ) return JSON_LOOKUP_ERROR; + if( pParse->eEdit>=JEDIT_INS ){ + u32 nIns; /* Total bytes to insert (label+value) */ + JsonParse v; /* BLOB encoding of the value to be inserted */ + JsonParse ix; /* Header of the label to be inserted */ + testcase( pParse->eEdit==JEDIT_INS ); + testcase( pParse->eEdit==JEDIT_SET ); + memset(&ix, 0, sizeof(ix)); + ix.db = pParse->db; + jsonBlobAppendNode(&ix, rawKey?JSONB_TEXTRAW:JSONB_TEXT5, nKey, 0); + pParse->oom |= ix.oom; + rc = jsonCreateEditSubstructure(pParse, &v, &zPath[i]); + if( !JSON_LOOKUP_ISERROR(rc) + && jsonBlobMakeEditable(pParse, ix.nBlob+nKey+v.nBlob) + ){ + assert( !pParse->oom ); + nIns = ix.nBlob + nKey + v.nBlob; + jsonBlobEdit(pParse, j, 0, 0, nIns); + if( !pParse->oom ){ + assert( pParse->aBlob!=0 ); /* Because pParse->oom!=0 */ + assert( ix.aBlob!=0 ); /* Because pPasre->oom!=0 */ + memcpy(&pParse->aBlob[j], ix.aBlob, ix.nBlob); + k = j + ix.nBlob; + memcpy(&pParse->aBlob[k], zKey, nKey); + k += nKey; + memcpy(&pParse->aBlob[k], v.aBlob, v.nBlob); + if( ALWAYS(pParse->delta) ) jsonAfterEditSizeAdjust(pParse, iRoot); } - j++; - j += jsonNodeSize(&pRoot[j]); } - if( (pRoot->jnFlags & JNODE_APPEND)==0 ) break; - if( pParse->useMod==0 ) break; - assert( pRoot->eU==2 ); - iRoot = pRoot->u.iAppend; - pRoot = &pParse->aNode[iRoot]; - j = 1; - } - if( pApnd ){ - u32 iStart, iLabel; - JsonNode *pNode; - assert( pParse->useMod ); - iStart = jsonParseAddNode(pParse, JSON_OBJECT, 2, 0); - iLabel = jsonParseAddNode(pParse, JSON_STRING, nKey, zKey); - zPath += i; - pNode = jsonLookupAppend(pParse, zPath, pApnd, pzErr); - if( pParse->oom ) return 0; - if( pNode ){ - pRoot = &pParse->aNode[iRoot]; - assert( pRoot->eU==0 ); - pRoot->u.iAppend = iStart; - pRoot->jnFlags |= JNODE_APPEND; - VVA( pRoot->eU = 2 ); - pParse->aNode[iLabel].jnFlags |= JNODE_RAW; - } - return pNode; + jsonParseReset(&v); + jsonParseReset(&ix); + return rc; } }else if( zPath[0]=='[' ){ - i = 0; - j = 1; - while( sqlite3Isdigit(zPath[j]) ){ - i = i*10 + zPath[j] - '0'; - j++; + x = pParse->aBlob[iRoot] & 0x0f; + if( x!=JSONB_ARRAY ) return JSON_LOOKUP_NOTFOUND; + n = jsonbPayloadSize(pParse, iRoot, &sz); + k = 0; + i = 1; + while( sqlite3Isdigit(zPath[i]) ){ + k = k*10 + zPath[i] - '0'; + i++; } - if( j<2 || zPath[j]!=']' ){ + if( i<2 || zPath[i]!=']' ){ if( zPath[1]=='#' ){ - JsonNode *pBase = pRoot; - int iBase = iRoot; - if( pRoot->eType!=JSON_ARRAY ) return 0; - for(;;){ - while( j<=pBase->n ){ - if( (pBase[j].jnFlags & JNODE_REMOVE)==0 || pParse->useMod==0 ) i++; - j += jsonNodeSize(&pBase[j]); - } - if( (pBase->jnFlags & JNODE_APPEND)==0 ) break; - if( pParse->useMod==0 ) break; - assert( pBase->eU==2 ); - iBase = pBase->u.iAppend; - pBase = &pParse->aNode[iBase]; - j = 1; - } - j = 2; + k = jsonbArrayCount(pParse, iRoot); + i = 2; if( zPath[2]=='-' && sqlite3Isdigit(zPath[3]) ){ - unsigned int x = 0; - j = 3; + unsigned int nn = 0; + i = 3; do{ - x = x*10 + zPath[j] - '0'; - j++; - }while( sqlite3Isdigit(zPath[j]) ); - if( x>i ) return 0; - i -= x; + nn = nn*10 + zPath[i] - '0'; + i++; + }while( sqlite3Isdigit(zPath[i]) ); + if( nn>k ) return JSON_LOOKUP_NOTFOUND; + k -= nn; } - if( zPath[j]!=']' ){ - *pzErr = zPath; - return 0; + if( zPath[i]!=']' ){ + return JSON_LOOKUP_PATHERROR; } }else{ - *pzErr = zPath; - return 0; + return JSON_LOOKUP_PATHERROR; } } - if( pRoot->eType!=JSON_ARRAY ) return 0; - zPath += j + 1; - j = 1; - for(;;){ - while( j<=pRoot->n - && (i>0 || ((pRoot[j].jnFlags & JNODE_REMOVE)!=0 && pParse->useMod)) + j = iRoot+n; + iEnd = j+sz; + while( jdelta ) jsonAfterEditSizeAdjust(pParse, iRoot); + return rc; + } + k--; + n = jsonbPayloadSize(pParse, j, &sz); + if( n==0 ) return JSON_LOOKUP_ERROR; + j += n+sz; + } + if( j>iEnd ) return JSON_LOOKUP_ERROR; + if( k>0 ) return JSON_LOOKUP_NOTFOUND; + if( pParse->eEdit>=JEDIT_INS ){ + JsonParse v; + testcase( pParse->eEdit==JEDIT_INS ); + testcase( pParse->eEdit==JEDIT_SET ); + rc = jsonCreateEditSubstructure(pParse, &v, &zPath[i+1]); + if( !JSON_LOOKUP_ISERROR(rc) + && jsonBlobMakeEditable(pParse, v.nBlob) ){ - if( (pRoot[j].jnFlags & JNODE_REMOVE)==0 || pParse->useMod==0 ) i--; - j += jsonNodeSize(&pRoot[j]); + assert( !pParse->oom ); + jsonBlobEdit(pParse, j, 0, v.aBlob, v.nBlob); } - if( (pRoot->jnFlags & JNODE_APPEND)==0 ) break; - if( pParse->useMod==0 ) break; - assert( pRoot->eU==2 ); - iRoot = pRoot->u.iAppend; - pRoot = &pParse->aNode[iRoot]; - j = 1; - } - if( j<=pRoot->n ){ - return jsonLookupStep(pParse, iRoot+j, zPath, pApnd, pzErr); - } - if( i==0 && pApnd ){ - u32 iStart; - JsonNode *pNode; - assert( pParse->useMod ); - iStart = jsonParseAddNode(pParse, JSON_ARRAY, 1, 0); - pNode = jsonLookupAppend(pParse, zPath, pApnd, pzErr); - if( pParse->oom ) return 0; - if( pNode ){ - pRoot = &pParse->aNode[iRoot]; - assert( pRoot->eU==0 ); - pRoot->u.iAppend = iStart; - pRoot->jnFlags |= JNODE_APPEND; - VVA( pRoot->eU = 2 ); - } - return pNode; + jsonParseReset(&v); + if( pParse->delta ) jsonAfterEditSizeAdjust(pParse, iRoot); + return rc; } }else{ - *pzErr = zPath; + return JSON_LOOKUP_PATHERROR; } - return 0; + return JSON_LOOKUP_NOTFOUND; } /* -** Append content to pParse that will complete zPath. Return a pointer -** to the inserted node, or return NULL if the append fails. +** Convert a JSON BLOB into text and make that text the return value +** of an SQL function. */ -static JsonNode *jsonLookupAppend( - JsonParse *pParse, /* Append content to the JSON parse */ - const char *zPath, /* Description of content to append */ - int *pApnd, /* Set this flag to 1 */ - const char **pzErr /* Make this point to any syntax error */ +static void jsonReturnTextJsonFromBlob( + sqlite3_context *ctx, + const u8 *aBlob, + u32 nBlob ){ - *pApnd = 1; - if( zPath[0]==0 ){ - jsonParseAddNode(pParse, JSON_NULL, 0, 0); - return pParse->oom ? 0 : &pParse->aNode[pParse->nNode-1]; + JsonParse x; + JsonString s; + + if( NEVER(aBlob==0) ) return; + memset(&x, 0, sizeof(x)); + x.aBlob = (u8*)aBlob; + x.nBlob = nBlob; + jsonStringInit(&s, ctx); + jsonTranslateBlobToText(&x, 0, &s); + jsonReturnString(&s, 0, 0); +} + + +/* +** Return the value of the BLOB node at index i. +** +** If the value is a primitive, return it as an SQL value. +** If the value is an array or object, return it as either +** JSON text or the BLOB encoding, depending on the JSON_B flag +** on the userdata. +*/ +static void jsonReturnFromBlob( + JsonParse *pParse, /* Complete JSON parse tree */ + u32 i, /* Index of the node */ + sqlite3_context *pCtx, /* Return value for this function */ + int textOnly /* return text JSON. Disregard user-data */ +){ + u32 n, sz; + int rc; + sqlite3 *db = sqlite3_context_db_handle(pCtx); + + n = jsonbPayloadSize(pParse, i, &sz); + if( n==0 ){ + sqlite3_result_error(pCtx, "malformed JSON", -1); + return; } - if( zPath[0]=='.' ){ - jsonParseAddNode(pParse, JSON_OBJECT, 0, 0); - }else if( strncmp(zPath,"[0]",3)==0 ){ - jsonParseAddNode(pParse, JSON_ARRAY, 0, 0); + switch( pParse->aBlob[i] & 0x0f ){ + case JSONB_NULL: { + if( sz ) goto returnfromblob_malformed; + sqlite3_result_null(pCtx); + break; + } + case JSONB_TRUE: { + if( sz ) goto returnfromblob_malformed; + sqlite3_result_int(pCtx, 1); + break; + } + case JSONB_FALSE: { + if( sz ) goto returnfromblob_malformed; + sqlite3_result_int(pCtx, 0); + break; + } + case JSONB_INT5: + case JSONB_INT: { + sqlite3_int64 iRes = 0; + char *z; + int bNeg = 0; + char x; + if( sz==0 ) goto returnfromblob_malformed; + x = (char)pParse->aBlob[i+n]; + if( x=='-' ){ + if( sz<2 ) goto returnfromblob_malformed; + n++; + sz--; + bNeg = 1; + } + z = sqlite3DbStrNDup(db, (const char*)&pParse->aBlob[i+n], (int)sz); + if( z==0 ) goto returnfromblob_oom; + rc = sqlite3DecOrHexToI64(z, &iRes); + sqlite3DbFree(db, z); + if( rc==0 ){ + sqlite3_result_int64(pCtx, bNeg ? -iRes : iRes); + }else if( rc==3 && bNeg ){ + sqlite3_result_int64(pCtx, SMALLEST_INT64); + }else if( rc==1 ){ + goto returnfromblob_malformed; + }else{ + if( bNeg ){ n--; sz++; } + goto to_double; + } + break; + } + case JSONB_FLOAT5: + case JSONB_FLOAT: { + double r; + char *z; + if( sz==0 ) goto returnfromblob_malformed; + to_double: + z = sqlite3DbStrNDup(db, (const char*)&pParse->aBlob[i+n], (int)sz); + if( z==0 ) goto returnfromblob_oom; + rc = sqlite3AtoF(z, &r, sqlite3Strlen30(z), SQLITE_UTF8); + sqlite3DbFree(db, z); + if( rc<=0 ) goto returnfromblob_malformed; + sqlite3_result_double(pCtx, r); + break; + } + case JSONB_TEXTRAW: + case JSONB_TEXT: { + sqlite3_result_text(pCtx, (char*)&pParse->aBlob[i+n], sz, + SQLITE_TRANSIENT); + break; + } + case JSONB_TEXT5: + case JSONB_TEXTJ: { + /* Translate JSON formatted string into raw text */ + u32 iIn, iOut; + const char *z; + char *zOut; + u32 nOut = sz; + z = (const char*)&pParse->aBlob[i+n]; + zOut = sqlite3DbMallocRaw(db, nOut+1); + if( zOut==0 ) goto returnfromblob_oom; + for(iIn=iOut=0; iIn=2 ); + zOut[iOut++] = (char)(0xc0 | (v>>6)); + zOut[iOut++] = 0x80 | (v&0x3f); + }else if( v<0x10000 ){ + assert( szEscape>=3 ); + zOut[iOut++] = 0xe0 | (v>>12); + zOut[iOut++] = 0x80 | ((v>>6)&0x3f); + zOut[iOut++] = 0x80 | (v&0x3f); + }else if( v==JSON_INVALID_CHAR ){ + /* Silently ignore illegal unicode */ + }else{ + assert( szEscape>=4 ); + zOut[iOut++] = 0xf0 | (v>>18); + zOut[iOut++] = 0x80 | ((v>>12)&0x3f); + zOut[iOut++] = 0x80 | ((v>>6)&0x3f); + zOut[iOut++] = 0x80 | (v&0x3f); + } + iIn += szEscape - 1; + }else{ + zOut[iOut++] = c; + } + } /* end for() */ + assert( iOut<=nOut ); + zOut[iOut] = 0; + sqlite3_result_text(pCtx, zOut, iOut, SQLITE_DYNAMIC); + break; + } + case JSONB_ARRAY: + case JSONB_OBJECT: { + int flags = textOnly ? 0 : SQLITE_PTR_TO_INT(sqlite3_user_data(pCtx)); + if( flags & JSON_BLOB ){ + sqlite3_result_blob(pCtx, &pParse->aBlob[i], sz+n, SQLITE_TRANSIENT); + }else{ + jsonReturnTextJsonFromBlob(pCtx, &pParse->aBlob[i], sz+n); + } + break; + } + default: { + goto returnfromblob_malformed; + } + } + return; + +returnfromblob_oom: + sqlite3_result_error_nomem(pCtx); + return; + +returnfromblob_malformed: + sqlite3_result_error(pCtx, "malformed JSON", -1); + return; +} + +/* +** pArg is a function argument that might be an SQL value or a JSON +** value. Figure out what it is and encode it as a JSONB blob. +** Return the results in pParse. +** +** pParse is uninitialized upon entry. This routine will handle the +** initialization of pParse. The result will be contained in +** pParse->aBlob and pParse->nBlob. pParse->aBlob might be dynamically +** allocated (if pParse->nBlobAlloc is greater than zero) in which case +** the caller is responsible for freeing the space allocated to pParse->aBlob +** when it has finished with it. Or pParse->aBlob might be a static string +** or a value obtained from sqlite3_value_blob(pArg). +** +** If the argument is a BLOB that is clearly not a JSONB, then this +** function might set an error message in ctx and return non-zero. +** It might also set an error message and return non-zero on an OOM error. +*/ +static int jsonFunctionArgToBlob( + sqlite3_context *ctx, + sqlite3_value *pArg, + JsonParse *pParse +){ + int eType = sqlite3_value_type(pArg); + static u8 aNull[] = { 0x00 }; + memset(pParse, 0, sizeof(pParse[0])); + pParse->db = sqlite3_context_db_handle(ctx); + switch( eType ){ + default: { + pParse->aBlob = aNull; + pParse->nBlob = 1; + return 0; + } + case SQLITE_BLOB: { + if( jsonFuncArgMightBeBinary(pArg) ){ + pParse->aBlob = (u8*)sqlite3_value_blob(pArg); + pParse->nBlob = sqlite3_value_bytes(pArg); + }else{ + sqlite3_result_error(ctx, "JSON cannot hold BLOB values", -1); + return 1; + } + break; + } + case SQLITE_TEXT: { + const char *zJson = (const char*)sqlite3_value_text(pArg); + int nJson = sqlite3_value_bytes(pArg); + if( zJson==0 ) return 1; + if( sqlite3_value_subtype(pArg)==JSON_SUBTYPE ){ + pParse->zJson = (char*)zJson; + pParse->nJson = nJson; + if( jsonConvertTextToBlob(pParse, ctx) ){ + sqlite3_result_error(ctx, "malformed JSON", -1); + sqlite3DbFree(pParse->db, pParse->aBlob); + memset(pParse, 0, sizeof(pParse[0])); + return 1; + } + }else{ + jsonBlobAppendNode(pParse, JSONB_TEXTRAW, nJson, zJson); + } + break; + } + case SQLITE_FLOAT: { + double r = sqlite3_value_double(pArg); + if( NEVER(sqlite3IsNaN(r)) ){ + jsonBlobAppendNode(pParse, JSONB_NULL, 0, 0); + }else{ + int n = sqlite3_value_bytes(pArg); + const char *z = (const char*)sqlite3_value_text(pArg); + if( z==0 ) return 1; + if( z[0]=='I' ){ + jsonBlobAppendNode(pParse, JSONB_FLOAT, 5, "9e999"); + }else if( z[0]=='-' && z[1]=='I' ){ + jsonBlobAppendNode(pParse, JSONB_FLOAT, 6, "-9e999"); + }else{ + jsonBlobAppendNode(pParse, JSONB_FLOAT, n, z); + } + } + break; + } + case SQLITE_INTEGER: { + int n = sqlite3_value_bytes(pArg); + const char *z = (const char*)sqlite3_value_text(pArg); + if( z==0 ) return 1; + jsonBlobAppendNode(pParse, JSONB_INT, n, z); + break; + } + } + if( pParse->oom ){ + sqlite3_result_error_nomem(ctx); + return 1; }else{ return 0; } - if( pParse->oom ) return 0; - return jsonLookupStep(pParse, pParse->nNode-1, zPath, pApnd, pzErr); } /* -** Return the text of a syntax error message on a JSON path. Space is -** obtained from sqlite3_malloc(). -*/ -static char *jsonPathSyntaxError(const char *zErr){ - return sqlite3_mprintf("JSON path error near '%q'", zErr); -} - -/* -** Do a node lookup using zPath. Return a pointer to the node on success. -** Return NULL if not found or if there is an error. +** Generate a bad path error. ** -** On an error, write an error message into pCtx and increment the -** pParse->nErr counter. -** -** If pApnd!=NULL then try to append missing nodes and set *pApnd = 1 if -** nodes are appended. +** If ctx is not NULL then push the error message into ctx and return NULL. +** If ctx is NULL, then return the text of the error message. */ -static JsonNode *jsonLookup( - JsonParse *pParse, /* The JSON to search */ - const char *zPath, /* The path to search */ - int *pApnd, /* Append nodes to complete path if not NULL */ - sqlite3_context *pCtx /* Report errors here, if not NULL */ +static char *jsonBadPathError( + sqlite3_context *ctx, /* The function call containing the error */ + const char *zPath /* The path with the problem */ ){ - const char *zErr = 0; - JsonNode *pNode = 0; - char *zMsg; - - if( zPath==0 ) return 0; - if( zPath[0]!='$' ){ - zErr = zPath; - goto lookup_err; - } - zPath++; - pNode = jsonLookupStep(pParse, 0, zPath, pApnd, &zErr); - if( zErr==0 ) return pNode; - -lookup_err: - pParse->nErr++; - assert( zErr!=0 && pCtx!=0 ); - zMsg = jsonPathSyntaxError(zErr); + char *zMsg = sqlite3_mprintf("bad JSON path: %Q", zPath); + if( ctx==0 ) return zMsg; if( zMsg ){ - sqlite3_result_error(pCtx, zMsg, -1); + sqlite3_result_error(ctx, zMsg, -1); sqlite3_free(zMsg); }else{ - sqlite3_result_error_nomem(pCtx); + sqlite3_result_error_nomem(ctx); } return 0; } - -/* -** Report the wrong number of arguments for json_insert(), json_replace() -** or json_set(). +/* argv[0] is a BLOB that seems likely to be a JSONB. Subsequent +** arguments come in parse where each pair contains a JSON path and +** content to insert or set at that patch. Do the updates +** and return the result. +** +** The specific operation is determined by eEdit, which can be one +** of JEDIT_INS, JEDIT_REPL, or JEDIT_SET. */ -static void jsonWrongNumArgs( - sqlite3_context *pCtx, - const char *zFuncName +static void jsonInsertIntoBlob( + sqlite3_context *ctx, + int argc, + sqlite3_value **argv, + int eEdit /* JEDIT_INS, JEDIT_REPL, or JEDIT_SET */ ){ - char *zMsg = sqlite3_mprintf("json_%s() needs an odd number of arguments", - zFuncName); - sqlite3_result_error(pCtx, zMsg, -1); - sqlite3_free(zMsg); + int i; + u32 rc = 0; + const char *zPath = 0; + int flgs; + JsonParse *p; + JsonParse ax; + + assert( (argc&1)==1 ); + flgs = argc==1 ? 0 : JSON_EDITABLE; + p = jsonParseFuncArg(ctx, argv[0], flgs); + if( p==0 ) return; + for(i=1; inBlob, ax.aBlob, ax.nBlob); + } + rc = 0; + }else{ + p->eEdit = eEdit; + p->nIns = ax.nBlob; + p->aIns = ax.aBlob; + p->delta = 0; + rc = jsonLookupStep(p, 0, zPath+1, 0); + } + jsonParseReset(&ax); + if( rc==JSON_LOOKUP_NOTFOUND ) continue; + if( JSON_LOOKUP_ISERROR(rc) ) goto jsonInsertIntoBlob_patherror; + } + jsonReturnParse(ctx, p); + jsonParseFree(p); + return; + +jsonInsertIntoBlob_patherror: + jsonParseFree(p); + if( rc==JSON_LOOKUP_ERROR ){ + sqlite3_result_error(ctx, "malformed JSON", -1); + }else{ + jsonBadPathError(ctx, zPath); + } + return; } /* -** Mark all NULL entries in the Object passed in as JNODE_REMOVE. +** If pArg is a blob that seems like a JSONB blob, then initialize +** p to point to that JSONB and return TRUE. If pArg does not seem like +** a JSONB blob, then return FALSE; +** +** This routine is only called if it is already known that pArg is a +** blob. The only open question is whether or not the blob appears +** to be a JSONB blob. */ -static void jsonRemoveAllNulls(JsonNode *pNode){ - int i, n; - assert( pNode->eType==JSON_OBJECT ); - n = pNode->n; - for(i=2; i<=n; i += jsonNodeSize(&pNode[i])+1){ - switch( pNode[i].eType ){ - case JSON_NULL: - pNode[i].jnFlags |= JNODE_REMOVE; - break; - case JSON_OBJECT: - jsonRemoveAllNulls(&pNode[i]); - break; +static int jsonArgIsJsonb(sqlite3_value *pArg, JsonParse *p){ + u32 n, sz = 0; + p->aBlob = (u8*)sqlite3_value_blob(pArg); + p->nBlob = (u32)sqlite3_value_bytes(pArg); + if( p->nBlob==0 ){ + p->aBlob = 0; + return 0; + } + if( NEVER(p->aBlob==0) ){ + return 0; + } + if( (p->aBlob[0] & 0x0f)<=JSONB_OBJECT + && (n = jsonbPayloadSize(p, 0, &sz))>0 + && sz+n==p->nBlob + && ((p->aBlob[0] & 0x0f)>JSONB_FALSE || sz==0) + ){ + return 1; + } + p->aBlob = 0; + p->nBlob = 0; + return 0; +} + +/* +** Generate a JsonParse object, containing valid JSONB in aBlob and nBlob, +** from the SQL function argument pArg. Return a pointer to the new +** JsonParse object. +** +** Ownership of the new JsonParse object is passed to the caller. The +** caller should invoke jsonParseFree() on the return value when it +** has finished using it. +** +** If any errors are detected, an appropriate error messages is set +** using sqlite3_result_error() or the equivalent and this routine +** returns NULL. This routine also returns NULL if the pArg argument +** is an SQL NULL value, but no error message is set in that case. This +** is so that SQL functions that are given NULL arguments will return +** a NULL value. +*/ +static JsonParse *jsonParseFuncArg( + sqlite3_context *ctx, + sqlite3_value *pArg, + u32 flgs +){ + int eType; /* Datatype of pArg */ + JsonParse *p = 0; /* Value to be returned */ + JsonParse *pFromCache = 0; /* Value taken from cache */ + sqlite3 *db; /* The database connection */ + + assert( ctx!=0 ); + eType = sqlite3_value_type(pArg); + if( eType==SQLITE_NULL ){ + return 0; + } + pFromCache = jsonCacheSearch(ctx, pArg); + if( pFromCache ){ + pFromCache->nJPRef++; + if( (flgs & JSON_EDITABLE)==0 ){ + return pFromCache; } } + db = sqlite3_context_db_handle(ctx); +rebuild_from_cache: + p = sqlite3DbMallocZero(db, sizeof(*p)); + if( p==0 ) goto json_pfa_oom; + memset(p, 0, sizeof(*p)); + p->db = db; + p->nJPRef = 1; + if( pFromCache!=0 ){ + u32 nBlob = pFromCache->nBlob; + p->aBlob = sqlite3DbMallocRaw(db, nBlob); + if( p->aBlob==0 ) goto json_pfa_oom; + memcpy(p->aBlob, pFromCache->aBlob, nBlob); + p->nBlobAlloc = p->nBlob = nBlob; + p->hasNonstd = pFromCache->hasNonstd; + jsonParseFree(pFromCache); + return p; + } + if( eType==SQLITE_BLOB ){ + if( jsonArgIsJsonb(pArg,p) ){ + if( (flgs & JSON_EDITABLE)!=0 && jsonBlobMakeEditable(p, 0)==0 ){ + goto json_pfa_oom; + } + return p; + } + /* If the blob is not valid JSONB, fall through into trying to cast + ** the blob into text which is then interpreted as JSON. (tag-20240123-a) + ** + ** This goes against all historical documentation about how the SQLite + ** JSON functions were suppose to work. From the beginning, blob was + ** reserved for expansion and a blob value should have raised an error. + ** But it did not, due to a bug. And many applications came to depend + ** upon this buggy behavior, espeically when using the CLI and reading + ** JSON text using readfile(), which returns a blob. For this reason + ** we will continue to support the bug moving forward. + ** See for example https://sqlite.org/forum/forumpost/012136abd5292b8d + */ + } + p->zJson = (char*)sqlite3_value_text(pArg); + p->nJson = sqlite3_value_bytes(pArg); + if( p->nJson==0 ) goto json_pfa_malformed; + if( NEVER(p->zJson==0) ) goto json_pfa_oom; + if( jsonConvertTextToBlob(p, (flgs & JSON_KEEPERROR) ? 0 : ctx) ){ + if( flgs & JSON_KEEPERROR ){ + p->nErr = 1; + return p; + }else{ + jsonParseFree(p); + return 0; + } + }else{ + int isRCStr = sqlite3ValueIsOfClass(pArg, sqlite3RCStrUnref); + int rc; + if( !isRCStr ){ + char *zNew = sqlite3RCStrNew( p->nJson ); + if( zNew==0 ) goto json_pfa_oom; + memcpy(zNew, p->zJson, p->nJson); + p->zJson = zNew; + p->zJson[p->nJson] = 0; + }else{ + sqlite3RCStrRef(p->zJson); + } + p->bJsonIsRCStr = 1; + rc = jsonCacheInsert(ctx, p); + if( rc==SQLITE_NOMEM ) goto json_pfa_oom; + if( flgs & JSON_EDITABLE ){ + pFromCache = p; + p = 0; + goto rebuild_from_cache; + } + } + return p; + +json_pfa_malformed: + if( flgs & JSON_KEEPERROR ){ + p->nErr = 1; + return p; + }else{ + jsonParseFree(p); + sqlite3_result_error(ctx, "malformed JSON", -1); + return 0; + } + +json_pfa_oom: + jsonParseFree(pFromCache); + jsonParseFree(p); + sqlite3_result_error_nomem(ctx); + return 0; } +/* +** Make the return value of a JSON function either the raw JSONB blob +** or make it JSON text, depending on whether the JSON_BLOB flag is +** set on the function. +*/ +static void jsonReturnParse( + sqlite3_context *ctx, + JsonParse *p +){ + int flgs; + if( p->oom ){ + sqlite3_result_error_nomem(ctx); + return; + } + flgs = SQLITE_PTR_TO_INT(sqlite3_user_data(ctx)); + if( flgs & JSON_BLOB ){ + if( p->nBlobAlloc>0 && !p->bReadOnly ){ + sqlite3_result_blob(ctx, p->aBlob, p->nBlob, SQLITE_DYNAMIC); + p->nBlobAlloc = 0; + }else{ + sqlite3_result_blob(ctx, p->aBlob, p->nBlob, SQLITE_TRANSIENT); + } + }else{ + JsonString s; + jsonStringInit(&s, ctx); + p->delta = 0; + jsonTranslateBlobToText(p, 0, &s); + jsonReturnString(&s, p, ctx); + sqlite3_result_subtype(ctx, JSON_SUBTYPE); + } +} /**************************************************************************** ** SQL functions used for testing and debugging @@ -203539,63 +206596,124 @@ static void jsonRemoveAllNulls(JsonNode *pNode){ #if SQLITE_DEBUG /* -** Print N node entries. +** Decode JSONB bytes in aBlob[] starting at iStart through but not +** including iEnd. Indent the +** content by nIndent spaces. */ -static void jsonDebugPrintNodeEntries( - JsonNode *aNode, /* First node entry to print */ - int N /* Number of node entries to print */ +static void jsonDebugPrintBlob( + JsonParse *pParse, /* JSON content */ + u32 iStart, /* Start rendering here */ + u32 iEnd, /* Do not render this byte or any byte after this one */ + int nIndent, /* Indent by this many spaces */ + sqlite3_str *pOut /* Generate output into this sqlite3_str object */ ){ - int i; - for(i=0; iaBlob[iStart] & 0x0f; + u32 savedNBlob = pParse->nBlob; + sqlite3_str_appendf(pOut, "%5d:%*s", iStart, nIndent, ""); + if( pParse->nBlobAlloc>pParse->nBlob ){ + pParse->nBlob = pParse->nBlobAlloc; } - printf("node %4u: %-7s n=%-5d", i, zType, aNode[i].n); - if( (aNode[i].jnFlags & ~JNODE_LABEL)!=0 ){ - u8 f = aNode[i].jnFlags; - if( f & JNODE_RAW ) printf(" RAW"); - if( f & JNODE_ESCAPE ) printf(" ESCAPE"); - if( f & JNODE_REMOVE ) printf(" REMOVE"); - if( f & JNODE_REPLACE ) printf(" REPLACE"); - if( f & JNODE_APPEND ) printf(" APPEND"); - if( f & JNODE_JSON5 ) printf(" JSON5"); + nn = n = jsonbPayloadSize(pParse, iStart, &sz); + if( nn==0 ) nn = 1; + if( sz>0 && xaBlob[iStart+i]); } + if( n==0 ){ + sqlite3_str_appendf(pOut, " ERROR invalid node size\n"); + iStart = n==0 ? iStart+1 : iEnd; + continue; + } + pParse->nBlob = savedNBlob; + if( iStart+n+sz>iEnd ){ + iEnd = iStart+n+sz; + if( iEnd>pParse->nBlob ){ + if( pParse->nBlobAlloc>0 && iEnd>pParse->nBlobAlloc ){ + iEnd = pParse->nBlobAlloc; + }else{ + iEnd = pParse->nBlob; + } + } + } + sqlite3_str_appendall(pOut," <-- "); + switch( x ){ + case JSONB_NULL: sqlite3_str_appendall(pOut,"null"); break; + case JSONB_TRUE: sqlite3_str_appendall(pOut,"true"); break; + case JSONB_FALSE: sqlite3_str_appendall(pOut,"false"); break; + case JSONB_INT: sqlite3_str_appendall(pOut,"int"); break; + case JSONB_INT5: sqlite3_str_appendall(pOut,"int5"); break; + case JSONB_FLOAT: sqlite3_str_appendall(pOut,"float"); break; + case JSONB_FLOAT5: sqlite3_str_appendall(pOut,"float5"); break; + case JSONB_TEXT: sqlite3_str_appendall(pOut,"text"); break; + case JSONB_TEXTJ: sqlite3_str_appendall(pOut,"textj"); break; + case JSONB_TEXT5: sqlite3_str_appendall(pOut,"text5"); break; + case JSONB_TEXTRAW: sqlite3_str_appendall(pOut,"textraw"); break; + case JSONB_ARRAY: { + sqlite3_str_appendf(pOut,"array, %u bytes\n", sz); + jsonDebugPrintBlob(pParse, iStart+n, iStart+n+sz, nIndent+2, pOut); + showContent = 0; + break; + } + case JSONB_OBJECT: { + sqlite3_str_appendf(pOut, "object, %u bytes\n", sz); + jsonDebugPrintBlob(pParse, iStart+n, iStart+n+sz, nIndent+2, pOut); + showContent = 0; + break; + } + default: { + sqlite3_str_appendall(pOut, "ERROR: unknown node type\n"); + showContent = 0; + break; + } + } + if( showContent ){ + if( sz==0 && x<=JSONB_FALSE ){ + sqlite3_str_append(pOut, "\n", 1); + }else{ + u32 i; + sqlite3_str_appendall(pOut, ": \""); + for(i=iStart+n; iaBlob[i]; + if( c<0x20 || c>=0x7f ) c = '.'; + sqlite3_str_append(pOut, (char*)&c, 1); + } + sqlite3_str_append(pOut, "\"\n", 2); + } + } + iStart += n + sz; } } +static void jsonShowParse(JsonParse *pParse){ + sqlite3_str out; + char zBuf[1000]; + if( pParse==0 ){ + printf("NULL pointer\n"); + return; + }else{ + printf("nBlobAlloc = %u\n", pParse->nBlobAlloc); + printf("nBlob = %u\n", pParse->nBlob); + printf("delta = %d\n", pParse->delta); + if( pParse->nBlob==0 ) return; + printf("content (bytes 0..%u):\n", pParse->nBlob-1); + } + sqlite3StrAccumInit(&out, 0, zBuf, sizeof(zBuf), 1000000); + jsonDebugPrintBlob(pParse, 0, pParse->nBlob, 0, &out); + printf("%s", sqlite3_str_value(&out)); + sqlite3_str_reset(&out); +} #endif /* SQLITE_DEBUG */ - -#if 0 /* 1 for debugging. 0 normally. Requires -DSQLITE_DEBUG too */ -static void jsonDebugPrintParse(JsonParse *p){ - jsonDebugPrintNodeEntries(p->aNode, p->nNode); -} -static void jsonDebugPrintNode(JsonNode *pNode){ - jsonDebugPrintNodeEntries(pNode, jsonNodeSize(pNode)); -} -#else - /* The usual case */ -# define jsonDebugPrintNode(X) -# define jsonDebugPrintParse(X) -#endif - #ifdef SQLITE_DEBUG /* ** SQL function: json_parse(JSON) ** -** Parse JSON using jsonParseCached(). Then print a dump of that -** parse on standard output. Return the mimified JSON result, just -** like the json() function. +** Parse JSON using jsonParseFuncArg(). Return text that is a +** human-readable dump of the binary JSONB for the input parameter. */ static void jsonParseFunc( sqlite3_context *ctx, @@ -203603,38 +206721,19 @@ static void jsonParseFunc( sqlite3_value **argv ){ JsonParse *p; /* The parse */ + sqlite3_str out; - assert( argc==1 ); - p = jsonParseCached(ctx, argv[0], ctx, 0); + assert( argc>=1 ); + sqlite3StrAccumInit(&out, 0, 0, 0, 1000000); + p = jsonParseFuncArg(ctx, argv[0], 0); if( p==0 ) return; - printf("nNode = %u\n", p->nNode); - printf("nAlloc = %u\n", p->nAlloc); - printf("nJson = %d\n", p->nJson); - printf("nAlt = %d\n", p->nAlt); - printf("nErr = %u\n", p->nErr); - printf("oom = %u\n", p->oom); - printf("hasNonstd = %u\n", p->hasNonstd); - printf("useMod = %u\n", p->useMod); - printf("hasMod = %u\n", p->hasMod); - printf("nJPRef = %u\n", p->nJPRef); - printf("iSubst = %u\n", p->iSubst); - printf("iHold = %u\n", p->iHold); - jsonDebugPrintNodeEntries(p->aNode, p->nNode); - jsonReturnJson(p, p->aNode, ctx, 1); -} - -/* -** The json_test1(JSON) function return true (1) if the input is JSON -** text generated by another json function. It returns (0) if the input -** is not known to be JSON. -*/ -static void jsonTest1Func( - sqlite3_context *ctx, - int argc, - sqlite3_value **argv -){ - UNUSED_PARAMETER(argc); - sqlite3_result_int(ctx, sqlite3_value_subtype(argv[0])==JSON_SUBTYPE); + if( argc==1 ){ + jsonDebugPrintBlob(p, 0, p->nBlob, 0, &out); + sqlite3_result_text64(ctx, out.zText, out.nChar, SQLITE_DYNAMIC, SQLITE_UTF8); + }else{ + jsonShowParse(p); + } + jsonParseFree(p); } #endif /* SQLITE_DEBUG */ @@ -203643,7 +206742,7 @@ static void jsonTest1Func( ****************************************************************************/ /* -** Implementation of the json_QUOTE(VALUE) function. Return a JSON value +** Implementation of the json_quote(VALUE) function. Return a JSON value ** corresponding to the SQL value input. Mostly this means putting ** double-quotes around strings and returning the unquoted string "null" ** when given a NULL input. @@ -203656,9 +206755,9 @@ static void jsonQuoteFunc( JsonString jx; UNUSED_PARAMETER(argc); - jsonInit(&jx, ctx); - jsonAppendValue(&jx, argv[0]); - jsonResult(&jx); + jsonStringInit(&jx, ctx); + jsonAppendSqlValue(&jx, argv[0]); + jsonReturnString(&jx, 0, 0); sqlite3_result_subtype(ctx, JSON_SUBTYPE); } @@ -203675,18 +206774,17 @@ static void jsonArrayFunc( int i; JsonString jx; - jsonInit(&jx, ctx); + jsonStringInit(&jx, ctx); jsonAppendChar(&jx, '['); for(i=0; inNode ); if( argc==2 ){ const char *zPath = (const char*)sqlite3_value_text(argv[1]); - pNode = jsonLookup(p, zPath, 0, ctx); - }else{ - pNode = p->aNode; - } - if( pNode==0 ){ - return; - } - if( pNode->eType==JSON_ARRAY ){ - while( 1 /*exit-by-break*/ ){ - i = 1; - while( i<=pNode->n ){ - if( (pNode[i].jnFlags & JNODE_REMOVE)==0 ) n++; - i += jsonNodeSize(&pNode[i]); - } - if( (pNode->jnFlags & JNODE_APPEND)==0 ) break; - if( p->useMod==0 ) break; - assert( pNode->eU==2 ); - pNode = &p->aNode[pNode->u.iAppend]; + if( zPath==0 ){ + jsonParseFree(p); + return; } + i = jsonLookupStep(p, 0, zPath[0]=='$' ? zPath+1 : "@", 0); + if( JSON_LOOKUP_ISERROR(i) ){ + if( i==JSON_LOOKUP_NOTFOUND ){ + /* no-op */ + }else if( i==JSON_LOOKUP_PATHERROR ){ + jsonBadPathError(ctx, zPath); + }else{ + sqlite3_result_error(ctx, "malformed JSON", -1); + } + eErr = 1; + i = 0; + } + }else{ + i = 0; } - sqlite3_result_int64(ctx, n); + if( (p->aBlob[i] & 0x0f)==JSONB_ARRAY ){ + cnt = jsonbArrayCount(p, i); + } + if( !eErr ) sqlite3_result_int64(ctx, cnt); + jsonParseFree(p); } -/* -** Bit values for the flags passed into jsonExtractFunc() or -** jsonSetFunc() via the user-data value. -*/ -#define JSON_JSON 0x01 /* Result is always JSON */ -#define JSON_SQL 0x02 /* Result is always SQL */ -#define JSON_ABPATH 0x03 /* Allow abbreviated JSON path specs */ -#define JSON_ISSET 0x04 /* json_set(), not json_insert() */ +/* True if the string is all digits */ +static int jsonAllDigits(const char *z, int n){ + int i; + for(i=0; i and ->> operators accept abbreviated PATH arguments. This - ** is mostly for compatibility with PostgreSQL, but also for - ** convenience. - ** - ** NUMBER ==> $[NUMBER] // PG compatible - ** LABEL ==> $.LABEL // PG compatible - ** [NUMBER] ==> $[NUMBER] // Not PG. Purely for convenience - */ - jsonInit(&jx, ctx); - if( sqlite3Isdigit(zPath[0]) ){ - jsonAppendRawNZ(&jx, "$[", 2); - jsonAppendRaw(&jx, zPath, (int)strlen(zPath)); - jsonAppendRawNZ(&jx, "]", 2); - }else{ - jsonAppendRawNZ(&jx, "$.", 1 + (zPath[0]!='[')); - jsonAppendRaw(&jx, zPath, (int)strlen(zPath)); - jsonAppendChar(&jx, 0); - } - pNode = jx.bErr ? 0 : jsonLookup(p, jx.zBuf, 0, ctx); - jsonReset(&jx); - }else{ - pNode = jsonLookup(p, zPath, 0, ctx); - } - if( pNode ){ - if( flags & JSON_JSON ){ - jsonReturnJson(p, pNode, ctx, 0); - }else{ - jsonReturn(p, pNode, ctx); - sqlite3_result_subtype(ctx, 0); - } - } - }else{ - pNode = jsonLookup(p, zPath, 0, ctx); - if( p->nErr==0 && pNode ) jsonReturn(p, pNode, ctx); - } - }else{ - /* Two or more PATH arguments results in a JSON array with each - ** element of the array being the value selected by one of the PATHs */ - int i; - jsonInit(&jx, ctx); + flags = SQLITE_PTR_TO_INT(sqlite3_user_data(ctx)); + jsonStringInit(&jx, ctx); + if( argc>2 ){ jsonAppendChar(&jx, '['); - for(i=1; inErr ) break; - jsonAppendSeparator(&jx); - if( pNode ){ - jsonRenderNode(p, pNode, &jx); + } + for(i=1; i and ->> operators accept abbreviated PATH arguments. This + ** is mostly for compatibility with PostgreSQL, but also for + ** convenience. + ** + ** NUMBER ==> $[NUMBER] // PG compatible + ** LABEL ==> $.LABEL // PG compatible + ** [NUMBER] ==> $[NUMBER] // Not PG. Purely for convenience + */ + jsonStringInit(&jx, ctx); + if( jsonAllDigits(zPath, nPath) ){ + jsonAppendRawNZ(&jx, "[", 1); + jsonAppendRaw(&jx, zPath, nPath); + jsonAppendRawNZ(&jx, "]", 2); + }else if( jsonAllAlphanum(zPath, nPath) ){ + jsonAppendRawNZ(&jx, ".", 1); + jsonAppendRaw(&jx, zPath, nPath); + }else if( zPath[0]=='[' && nPath>=3 && zPath[nPath-1]==']' ){ + jsonAppendRaw(&jx, zPath, nPath); }else{ + jsonAppendRawNZ(&jx, ".\"", 2); + jsonAppendRaw(&jx, zPath, nPath); + jsonAppendRawNZ(&jx, "\"", 1); + } + jsonStringTerminate(&jx); + j = jsonLookupStep(p, 0, jx.zBuf, 0); + jsonStringReset(&jx); + }else{ + jsonBadPathError(ctx, zPath); + goto json_extract_error; + } + if( jnBlob ){ + if( argc==2 ){ + if( flags & JSON_JSON ){ + jsonStringInit(&jx, ctx); + jsonTranslateBlobToText(p, j, &jx); + jsonReturnString(&jx, 0, 0); + jsonStringReset(&jx); + assert( (flags & JSON_BLOB)==0 ); + sqlite3_result_subtype(ctx, JSON_SUBTYPE); + }else{ + jsonReturnFromBlob(p, j, ctx, 0); + if( (flags & (JSON_SQL|JSON_BLOB))==0 + && (p->aBlob[j]&0x0f)>=JSONB_ARRAY + ){ + sqlite3_result_subtype(ctx, JSON_SUBTYPE); + } + } + }else{ + jsonAppendSeparator(&jx); + jsonTranslateBlobToText(p, j, &jx); + } + }else if( j==JSON_LOOKUP_NOTFOUND ){ + if( argc==2 ){ + goto json_extract_error; /* Return NULL if not found */ + }else{ + jsonAppendSeparator(&jx); jsonAppendRawNZ(&jx, "null", 4); } + }else if( j==JSON_LOOKUP_ERROR ){ + sqlite3_result_error(ctx, "malformed JSON", -1); + goto json_extract_error; + }else{ + jsonBadPathError(ctx, zPath); + goto json_extract_error; } - if( i==argc ){ - jsonAppendChar(&jx, ']'); - jsonResult(&jx); + } + if( argc>2 ){ + jsonAppendChar(&jx, ']'); + jsonReturnString(&jx, 0, 0); + if( (flags & JSON_BLOB)==0 ){ sqlite3_result_subtype(ctx, JSON_SUBTYPE); } - jsonReset(&jx); } +json_extract_error: + jsonStringReset(&jx); + jsonParseFree(p); + return; } -/* This is the RFC 7396 MergePatch algorithm. +/* +** Return codes for jsonMergePatch() */ -static JsonNode *jsonMergePatch( - JsonParse *pParse, /* The JSON parser that contains the TARGET */ - u32 iTarget, /* Node of the TARGET in pParse */ - JsonNode *pPatch /* The PATCH */ +#define JSON_MERGE_OK 0 /* Success */ +#define JSON_MERGE_BADTARGET 1 /* Malformed TARGET blob */ +#define JSON_MERGE_BADPATCH 2 /* Malformed PATCH blob */ +#define JSON_MERGE_OOM 3 /* Out-of-memory condition */ + +/* +** RFC-7396 MergePatch for two JSONB blobs. +** +** pTarget is the target. pPatch is the patch. The target is updated +** in place. The patch is read-only. +** +** The original RFC-7396 algorithm is this: +** +** define MergePatch(Target, Patch): +** if Patch is an Object: +** if Target is not an Object: +** Target = {} # Ignore the contents and set it to an empty Object +** for each Name/Value pair in Patch: +** if Value is null: +** if Name exists in Target: +** remove the Name/Value pair from Target +** else: +** Target[Name] = MergePatch(Target[Name], Value) +** return Target +** else: +** return Patch +** +** Here is an equivalent algorithm restructured to show the actual +** implementation: +** +** 01 define MergePatch(Target, Patch): +** 02 if Patch is not an Object: +** 03 return Patch +** 04 else: // if Patch is an Object +** 05 if Target is not an Object: +** 06 Target = {} +** 07 for each Name/Value pair in Patch: +** 08 if Name exists in Target: +** 09 if Value is null: +** 10 remove the Name/Value pair from Target +** 11 else +** 12 Target[name] = MergePatch(Target[Name], Value) +** 13 else if Value is not NULL: +** 14 if Value is not an Object: +** 15 Target[name] = Value +** 16 else: +** 17 Target[name] = MergePatch('{}',value) +** 18 return Target +** | +** ^---- Line numbers referenced in comments in the implementation +*/ +static int jsonMergePatch( + JsonParse *pTarget, /* The JSON parser that contains the TARGET */ + u32 iTarget, /* Index of TARGET in pTarget->aBlob[] */ + const JsonParse *pPatch, /* The PATCH */ + u32 iPatch /* Index of PATCH in pPatch->aBlob[] */ ){ - u32 i, j; - u32 iRoot; - JsonNode *pTarget; - if( pPatch->eType!=JSON_OBJECT ){ - return pPatch; + u8 x; /* Type of a single node */ + u32 n, sz=0; /* Return values from jsonbPayloadSize() */ + u32 iTCursor; /* Cursor position while scanning the target object */ + u32 iTStart; /* First label in the target object */ + u32 iTEndBE; /* Original first byte past end of target, before edit */ + u32 iTEnd; /* Current first byte past end of target */ + u8 eTLabel; /* Node type of the target label */ + u32 iTLabel = 0; /* Index of the label */ + u32 nTLabel = 0; /* Header size in bytes for the target label */ + u32 szTLabel = 0; /* Size of the target label payload */ + u32 iTValue = 0; /* Index of the target value */ + u32 nTValue = 0; /* Header size of the target value */ + u32 szTValue = 0; /* Payload size for the target value */ + + u32 iPCursor; /* Cursor position while scanning the patch */ + u32 iPEnd; /* First byte past the end of the patch */ + u8 ePLabel; /* Node type of the patch label */ + u32 iPLabel; /* Start of patch label */ + u32 nPLabel; /* Size of header on the patch label */ + u32 szPLabel; /* Payload size of the patch label */ + u32 iPValue; /* Start of patch value */ + u32 nPValue; /* Header size for the patch value */ + u32 szPValue; /* Payload size of the patch value */ + + assert( iTarget>=0 && iTargetnBlob ); + assert( iPatch>=0 && iPatchnBlob ); + x = pPatch->aBlob[iPatch] & 0x0f; + if( x!=JSONB_OBJECT ){ /* Algorithm line 02 */ + u32 szPatch; /* Total size of the patch, header+payload */ + u32 szTarget; /* Total size of the target, header+payload */ + n = jsonbPayloadSize(pPatch, iPatch, &sz); + szPatch = n+sz; + sz = 0; + n = jsonbPayloadSize(pTarget, iTarget, &sz); + szTarget = n+sz; + jsonBlobEdit(pTarget, iTarget, szTarget, pPatch->aBlob+iPatch, szPatch); + return pTarget->oom ? JSON_MERGE_OOM : JSON_MERGE_OK; /* Line 03 */ } - assert( iTargetnNode ); - pTarget = &pParse->aNode[iTarget]; - assert( (pPatch->jnFlags & JNODE_APPEND)==0 ); - if( pTarget->eType!=JSON_OBJECT ){ - jsonRemoveAllNulls(pPatch); - return pPatch; + x = pTarget->aBlob[iTarget] & 0x0f; + if( x!=JSONB_OBJECT ){ /* Algorithm line 05 */ + n = jsonbPayloadSize(pTarget, iTarget, &sz); + jsonBlobEdit(pTarget, iTarget+n, sz, 0, 0); + x = pTarget->aBlob[iTarget]; + pTarget->aBlob[iTarget] = (x & 0xf0) | JSONB_OBJECT; } - iRoot = iTarget; - for(i=1; in; i += jsonNodeSize(&pPatch[i+1])+1){ - u32 nKey; - const char *zKey; - assert( pPatch[i].eType==JSON_STRING ); - assert( pPatch[i].jnFlags & JNODE_LABEL ); - assert( pPatch[i].eU==1 ); - nKey = pPatch[i].n; - zKey = pPatch[i].u.zJContent; - for(j=1; jn; j += jsonNodeSize(&pTarget[j+1])+1 ){ - assert( pTarget[j].eType==JSON_STRING ); - assert( pTarget[j].jnFlags & JNODE_LABEL ); - if( jsonSameLabel(&pPatch[i], &pTarget[j]) ){ - if( pTarget[j+1].jnFlags & (JNODE_REMOVE|JNODE_REPLACE) ) break; - if( pPatch[i+1].eType==JSON_NULL ){ - pTarget[j+1].jnFlags |= JNODE_REMOVE; - }else{ - JsonNode *pNew = jsonMergePatch(pParse, iTarget+j+1, &pPatch[i+1]); - if( pNew==0 ) return 0; - if( pNew!=&pParse->aNode[iTarget+j+1] ){ - jsonParseAddSubstNode(pParse, iTarget+j+1); - jsonParseAddNodeArray(pParse, pNew, jsonNodeSize(pNew)); - } - pTarget = &pParse->aNode[iTarget]; - } - break; + n = jsonbPayloadSize(pPatch, iPatch, &sz); + if( NEVER(n==0) ) return JSON_MERGE_BADPATCH; + iPCursor = iPatch+n; + iPEnd = iPCursor+sz; + n = jsonbPayloadSize(pTarget, iTarget, &sz); + if( NEVER(n==0) ) return JSON_MERGE_BADTARGET; + iTStart = iTarget+n; + iTEndBE = iTStart+sz; + + while( iPCursoraBlob[iPCursor] & 0x0f; + if( ePLabelJSONB_TEXTRAW ){ + return JSON_MERGE_BADPATCH; + } + nPLabel = jsonbPayloadSize(pPatch, iPCursor, &szPLabel); + if( nPLabel==0 ) return JSON_MERGE_BADPATCH; + iPValue = iPCursor + nPLabel + szPLabel; + if( iPValue>=iPEnd ) return JSON_MERGE_BADPATCH; + nPValue = jsonbPayloadSize(pPatch, iPValue, &szPValue); + if( nPValue==0 ) return JSON_MERGE_BADPATCH; + iPCursor = iPValue + nPValue + szPValue; + if( iPCursor>iPEnd ) return JSON_MERGE_BADPATCH; + + iTCursor = iTStart; + iTEnd = iTEndBE + pTarget->delta; + while( iTCursoraBlob[iTCursor] & 0x0f; + if( eTLabelJSONB_TEXTRAW ){ + return JSON_MERGE_BADTARGET; + } + nTLabel = jsonbPayloadSize(pTarget, iTCursor, &szTLabel); + if( nTLabel==0 ) return JSON_MERGE_BADTARGET; + iTValue = iTLabel + nTLabel + szTLabel; + if( iTValue>=iTEnd ) return JSON_MERGE_BADTARGET; + nTValue = jsonbPayloadSize(pTarget, iTValue, &szTValue); + if( nTValue==0 ) return JSON_MERGE_BADTARGET; + if( iTValue + nTValue + szTValue > iTEnd ) return JSON_MERGE_BADTARGET; + isEqual = jsonLabelCompare( + (const char*)&pPatch->aBlob[iPLabel+nPLabel], + szPLabel, + (ePLabel==JSONB_TEXT || ePLabel==JSONB_TEXTRAW), + (const char*)&pTarget->aBlob[iTLabel+nTLabel], + szTLabel, + (eTLabel==JSONB_TEXT || eTLabel==JSONB_TEXTRAW)); + if( isEqual ) break; + iTCursor = iTValue + nTValue + szTValue; + } + x = pPatch->aBlob[iPValue] & 0x0f; + if( iTCursoroom) ) return JSON_MERGE_OOM; + }else{ + /* Algorithm line 12 */ + int rc, savedDelta = pTarget->delta; + pTarget->delta = 0; + rc = jsonMergePatch(pTarget, iTValue, pPatch, iPValue); + if( rc ) return rc; + pTarget->delta += savedDelta; + } + }else if( x>0 ){ /* Algorithm line 13 */ + /* No match and patch value is not NULL */ + u32 szNew = szPLabel+nPLabel; + if( (pPatch->aBlob[iPValue] & 0x0f)!=JSONB_OBJECT ){ /* Line 14 */ + jsonBlobEdit(pTarget, iTEnd, 0, 0, szPValue+nPValue+szNew); + if( pTarget->oom ) return JSON_MERGE_OOM; + memcpy(&pTarget->aBlob[iTEnd], &pPatch->aBlob[iPLabel], szNew); + memcpy(&pTarget->aBlob[iTEnd+szNew], + &pPatch->aBlob[iPValue], szPValue+nPValue); + }else{ + int rc, savedDelta; + jsonBlobEdit(pTarget, iTEnd, 0, 0, szNew+1); + if( pTarget->oom ) return JSON_MERGE_OOM; + memcpy(&pTarget->aBlob[iTEnd], &pPatch->aBlob[iPLabel], szNew); + pTarget->aBlob[iTEnd+szNew] = 0x00; + savedDelta = pTarget->delta; + pTarget->delta = 0; + rc = jsonMergePatch(pTarget, iTEnd+szNew,pPatch,iPValue); + if( rc ) return rc; + pTarget->delta += savedDelta; } } - if( j>=pTarget->n && pPatch[i+1].eType!=JSON_NULL ){ - int iStart; - JsonNode *pApnd; - u32 nApnd; - iStart = jsonParseAddNode(pParse, JSON_OBJECT, 0, 0); - jsonParseAddNode(pParse, JSON_STRING, nKey, zKey); - pApnd = &pPatch[i+1]; - if( pApnd->eType==JSON_OBJECT ) jsonRemoveAllNulls(pApnd); - nApnd = jsonNodeSize(pApnd); - jsonParseAddNodeArray(pParse, pApnd, jsonNodeSize(pApnd)); - if( pParse->oom ) return 0; - pParse->aNode[iStart].n = 1+nApnd; - pParse->aNode[iRoot].jnFlags |= JNODE_APPEND; - pParse->aNode[iRoot].u.iAppend = iStart; - VVA( pParse->aNode[iRoot].eU = 2 ); - iRoot = iStart; - pTarget = &pParse->aNode[iTarget]; - } } - return pTarget; + if( pTarget->delta ) jsonAfterEditSizeAdjust(pTarget, iTarget); + return pTarget->oom ? JSON_MERGE_OOM : JSON_MERGE_OK; } + /* ** Implementation of the json_mergepatch(JSON1,JSON2) function. Return a JSON ** object that is the result of running the RFC 7396 MergePatch() algorithm @@ -203922,28 +207182,27 @@ static void jsonPatchFunc( int argc, sqlite3_value **argv ){ - JsonParse *pX; /* The JSON that is being patched */ - JsonParse *pY; /* The patch */ - JsonNode *pResult; /* The result of the merge */ + JsonParse *pTarget; /* The TARGET */ + JsonParse *pPatch; /* The PATCH */ + int rc; /* Result code */ UNUSED_PARAMETER(argc); - pX = jsonParseCached(ctx, argv[0], ctx, 1); - if( pX==0 ) return; - assert( pX->hasMod==0 ); - pX->hasMod = 1; - pY = jsonParseCached(ctx, argv[1], ctx, 1); - if( pY==0 ) return; - pX->useMod = 1; - pY->useMod = 1; - pResult = jsonMergePatch(pX, 0, pY->aNode); - assert( pResult!=0 || pX->oom ); - if( pResult && pX->oom==0 ){ - jsonDebugPrintParse(pX); - jsonDebugPrintNode(pResult); - jsonReturnJson(pX, pResult, ctx, 0); - }else{ - sqlite3_result_error_nomem(ctx); + assert( argc==2 ); + pTarget = jsonParseFuncArg(ctx, argv[0], JSON_EDITABLE); + if( pTarget==0 ) return; + pPatch = jsonParseFuncArg(ctx, argv[1], 0); + if( pPatch ){ + rc = jsonMergePatch(pTarget, 0, pPatch, 0); + if( rc==JSON_MERGE_OK ){ + jsonReturnParse(ctx, pTarget); + }else if( rc==JSON_MERGE_OOM ){ + sqlite3_result_error_nomem(ctx); + }else{ + sqlite3_result_error(ctx, "malformed JSON", -1); + } + jsonParseFree(pPatch); } + jsonParseFree(pTarget); } @@ -203967,23 +207226,23 @@ static void jsonObjectFunc( "of arguments", -1); return; } - jsonInit(&jx, ctx); + jsonStringInit(&jx, ctx); jsonAppendChar(&jx, '{'); for(i=0; i1); - if( pParse==0 ) return; - for(i=1; i<(u32)argc; i++){ + p = jsonParseFuncArg(ctx, argv[0], argc>1 ? JSON_EDITABLE : 0); + if( p==0 ) return; + for(i=1; inErr ) goto remove_done; - if( pNode ){ - pNode->jnFlags |= JNODE_REMOVE; - pParse->hasMod = 1; - pParse->useMod = 1; + if( zPath==0 ){ + goto json_remove_done; } - } - if( (pParse->aNode[0].jnFlags & JNODE_REMOVE)==0 ){ - jsonReturnJson(pParse, pParse->aNode, ctx, 1); - } -remove_done: - jsonDebugPrintParse(p); -} - -/* -** Substitute the value at iNode with the pValue parameter. -*/ -static void jsonReplaceNode( - sqlite3_context *pCtx, - JsonParse *p, - int iNode, - sqlite3_value *pValue -){ - int idx = jsonParseAddSubstNode(p, iNode); - if( idx<=0 ){ - assert( p->oom ); - return; - } - switch( sqlite3_value_type(pValue) ){ - case SQLITE_NULL: { - jsonParseAddNode(p, JSON_NULL, 0, 0); - break; + if( zPath[0]!='$' ){ + goto json_remove_patherror; } - case SQLITE_FLOAT: { - char *z = sqlite3_mprintf("%!0.15g", sqlite3_value_double(pValue)); - int n; - if( z==0 ){ - p->oom = 1; - break; - } - n = sqlite3Strlen30(z); - jsonParseAddNode(p, JSON_REAL, n, z); - jsonParseAddCleanup(p, sqlite3_free, z); - break; + if( zPath[1]==0 ){ + /* json_remove(j,'$') returns NULL */ + goto json_remove_done; } - case SQLITE_INTEGER: { - char *z = sqlite3_mprintf("%lld", sqlite3_value_int64(pValue)); - int n; - if( z==0 ){ - p->oom = 1; - break; - } - n = sqlite3Strlen30(z); - jsonParseAddNode(p, JSON_INT, n, z); - jsonParseAddCleanup(p, sqlite3_free, z); - - break; - } - case SQLITE_TEXT: { - const char *z = (const char*)sqlite3_value_text(pValue); - u32 n = (u32)sqlite3_value_bytes(pValue); - if( z==0 ){ - p->oom = 1; - break; - } - if( sqlite3_value_subtype(pValue)!=JSON_SUBTYPE ){ - char *zCopy = sqlite3DbStrDup(0, z); - int k; - if( zCopy ){ - jsonParseAddCleanup(p, sqlite3_free, zCopy); - }else{ - p->oom = 1; - sqlite3_result_error_nomem(pCtx); - } - k = jsonParseAddNode(p, JSON_STRING, n, zCopy); - assert( k>0 || p->oom ); - if( p->oom==0 ) p->aNode[k].jnFlags |= JNODE_RAW; + p->eEdit = JEDIT_DEL; + p->delta = 0; + rc = jsonLookupStep(p, 0, zPath+1, 0); + if( JSON_LOOKUP_ISERROR(rc) ){ + if( rc==JSON_LOOKUP_NOTFOUND ){ + continue; /* No-op */ + }else if( rc==JSON_LOOKUP_PATHERROR ){ + jsonBadPathError(ctx, zPath); }else{ - JsonParse *pPatch = jsonParseCached(pCtx, pValue, pCtx, 1); - if( pPatch==0 ){ - p->oom = 1; - break; - } - jsonParseAddNodeArray(p, pPatch->aNode, pPatch->nNode); - /* The nodes copied out of pPatch and into p likely contain - ** u.zJContent pointers into pPatch->zJson. So preserve the - ** content of pPatch until p is destroyed. */ - assert( pPatch->nJPRef>=1 ); - pPatch->nJPRef++; - jsonParseAddCleanup(p, (void(*)(void*))jsonParseFree, pPatch); + sqlite3_result_error(ctx, "malformed JSON", -1); } - break; - } - default: { - jsonParseAddNode(p, JSON_NULL, 0, 0); - sqlite3_result_error(pCtx, "JSON cannot hold BLOB values", -1); - p->nErr++; - break; + goto json_remove_done; } } + jsonReturnParse(ctx, p); + jsonParseFree(p); + return; + +json_remove_patherror: + jsonBadPathError(ctx, zPath); + +json_remove_done: + jsonParseFree(p); + return; } /* @@ -204124,30 +207315,12 @@ static void jsonReplaceFunc( int argc, sqlite3_value **argv ){ - JsonParse *pParse; /* The parse */ - JsonNode *pNode; - const char *zPath; - u32 i; - if( argc<1 ) return; if( (argc&1)==0 ) { jsonWrongNumArgs(ctx, "replace"); return; } - pParse = jsonParseCached(ctx, argv[0], ctx, argc>1); - if( pParse==0 ) return; - for(i=1; i<(u32)argc; i+=2){ - zPath = (const char*)sqlite3_value_text(argv[i]); - pParse->useMod = 1; - pNode = jsonLookup(pParse, zPath, 0, ctx); - if( pParse->nErr ) goto replace_err; - if( pNode ){ - jsonReplaceNode(ctx, pParse, (u32)(pNode - pParse->aNode), argv[i+1]); - } - } - jsonReturnJson(pParse, pParse->aNode, ctx, 1); -replace_err: - jsonDebugPrintParse(pParse); + jsonInsertIntoBlob(ctx, argc, argv, JEDIT_REPL); } @@ -204168,39 +207341,16 @@ static void jsonSetFunc( int argc, sqlite3_value **argv ){ - JsonParse *pParse; /* The parse */ - JsonNode *pNode; - const char *zPath; - u32 i; - int bApnd; - int bIsSet = sqlite3_user_data(ctx)!=0; + + int flags = SQLITE_PTR_TO_INT(sqlite3_user_data(ctx)); + int bIsSet = (flags&JSON_ISSET)!=0; if( argc<1 ) return; if( (argc&1)==0 ) { jsonWrongNumArgs(ctx, bIsSet ? "set" : "insert"); return; } - pParse = jsonParseCached(ctx, argv[0], ctx, argc>1); - if( pParse==0 ) return; - for(i=1; i<(u32)argc; i+=2){ - zPath = (const char*)sqlite3_value_text(argv[i]); - bApnd = 0; - pParse->useMod = 1; - pNode = jsonLookup(pParse, zPath, &bApnd, ctx); - if( pParse->oom ){ - sqlite3_result_error_nomem(ctx); - goto jsonSetDone; - }else if( pParse->nErr ){ - goto jsonSetDone; - }else if( pNode && (bApnd || bIsSet) ){ - jsonReplaceNode(ctx, pParse, (u32)(pNode - pParse->aNode), argv[i+1]); - } - } - jsonDebugPrintParse(pParse); - jsonReturnJson(pParse, pParse->aNode, ctx, 1); - -jsonSetDone: - /* no cleanup required */; + jsonInsertIntoBlob(ctx, argc, argv, bIsSet ? JEDIT_SET : JEDIT_INS); } /* @@ -204216,27 +207366,93 @@ static void jsonTypeFunc( sqlite3_value **argv ){ JsonParse *p; /* The parse */ - const char *zPath; - JsonNode *pNode; + const char *zPath = 0; + u32 i; - p = jsonParseCached(ctx, argv[0], ctx, 0); + p = jsonParseFuncArg(ctx, argv[0], 0); if( p==0 ) return; if( argc==2 ){ zPath = (const char*)sqlite3_value_text(argv[1]); - pNode = jsonLookup(p, zPath, 0, ctx); + if( zPath==0 ) goto json_type_done; + if( zPath[0]!='$' ){ + jsonBadPathError(ctx, zPath); + goto json_type_done; + } + i = jsonLookupStep(p, 0, zPath+1, 0); + if( JSON_LOOKUP_ISERROR(i) ){ + if( i==JSON_LOOKUP_NOTFOUND ){ + /* no-op */ + }else if( i==JSON_LOOKUP_PATHERROR ){ + jsonBadPathError(ctx, zPath); + }else{ + sqlite3_result_error(ctx, "malformed JSON", -1); + } + goto json_type_done; + } }else{ - pNode = p->aNode; - } - if( pNode ){ - sqlite3_result_text(ctx, jsonType[pNode->eType], -1, SQLITE_STATIC); + i = 0; } + sqlite3_result_text(ctx, jsonbType[p->aBlob[i]&0x0f], -1, SQLITE_STATIC); +json_type_done: + jsonParseFree(p); } /* ** json_valid(JSON) +** json_valid(JSON, FLAGS) ** -** Return 1 if JSON is a well-formed canonical JSON string according -** to RFC-7159. Return 0 otherwise. +** Check the JSON argument to see if it is well-formed. The FLAGS argument +** encodes the various constraints on what is meant by "well-formed": +** +** 0x01 Canonical RFC-8259 JSON text +** 0x02 JSON text with optional JSON-5 extensions +** 0x04 Superficially appears to be JSONB +** 0x08 Strictly well-formed JSONB +** +** If the FLAGS argument is omitted, it defaults to 1. Useful values for +** FLAGS include: +** +** 1 Strict canonical JSON text +** 2 JSON text perhaps with JSON-5 extensions +** 4 Superficially appears to be JSONB +** 5 Canonical JSON text or superficial JSONB +** 6 JSON-5 text or superficial JSONB +** 8 Strict JSONB +** 9 Canonical JSON text or strict JSONB +** 10 JSON-5 text or strict JSONB +** +** Other flag combinations are redundant. For example, every canonical +** JSON text is also well-formed JSON-5 text, so FLAG values 2 and 3 +** are the same. Similarly, any input that passes a strict JSONB validation +** will also pass the superficial validation so 12 through 15 are the same +** as 8 through 11 respectively. +** +** This routine runs in linear time to validate text and when doing strict +** JSONB validation. Superficial JSONB validation is constant time, +** assuming the BLOB is already in memory. The performance advantage +** of superficial JSONB validation is why that option is provided. +** Application developers can choose to do fast superficial validation or +** slower strict validation, according to their specific needs. +** +** Only the lower four bits of the FLAGS argument are currently used. +** Higher bits are reserved for future expansion. To facilitate +** compatibility, the current implementation raises an error if any bit +** in FLAGS is set other than the lower four bits. +** +** The original circa 2015 implementation of the JSON routines in +** SQLite only supported canonical RFC-8259 JSON text and the json_valid() +** function only accepted one argument. That is why the default value +** for the FLAGS argument is 1, since FLAGS=1 causes this routine to only +** recognize canonical RFC-8259 JSON text as valid. The extra FLAGS +** argument was added when the JSON routines were extended to support +** JSON5-like extensions and binary JSONB stored in BLOBs. +** +** Return Values: +** +** * Raise an error if FLAGS is outside the range of 1 to 15. +** * Return NULL if the input is NULL +** * Return 1 if the input is well-formed. +** * Return 0 if the input is not well-formed. */ static void jsonValidFunc( sqlite3_context *ctx, @@ -204244,79 +207460,128 @@ static void jsonValidFunc( sqlite3_value **argv ){ JsonParse *p; /* The parse */ - UNUSED_PARAMETER(argc); - if( sqlite3_value_type(argv[0])==SQLITE_NULL ){ + u8 flags = 1; + u8 res = 0; + if( argc==2 ){ + i64 f = sqlite3_value_int64(argv[1]); + if( f<1 || f>15 ){ + sqlite3_result_error(ctx, "FLAGS parameter to json_valid() must be" + " between 1 and 15", -1); + return; + } + flags = f & 0x0f; + } + switch( sqlite3_value_type(argv[0]) ){ + case SQLITE_NULL: { #ifdef SQLITE_LEGACY_JSON_VALID - /* Incorrect legacy behavior was to return FALSE for a NULL input */ - sqlite3_result_int(ctx, 0); + /* Incorrect legacy behavior was to return FALSE for a NULL input */ + sqlite3_result_int(ctx, 0); #endif - return; - } - p = jsonParseCached(ctx, argv[0], 0, 0); - if( p==0 || p->oom ){ - sqlite3_result_error_nomem(ctx); - sqlite3_free(p); - }else{ - sqlite3_result_int(ctx, p->nErr==0 && (p->hasNonstd==0 || p->useMod)); - if( p->nErr ) jsonParseFree(p); + return; + } + case SQLITE_BLOB: { + if( jsonFuncArgMightBeBinary(argv[0]) ){ + if( flags & 0x04 ){ + /* Superficial checking only - accomplished by the + ** jsonFuncArgMightBeBinary() call above. */ + res = 1; + }else if( flags & 0x08 ){ + /* Strict checking. Check by translating BLOB->TEXT->BLOB. If + ** no errors occur, call that a "strict check". */ + JsonParse px; + u32 iErr; + memset(&px, 0, sizeof(px)); + px.aBlob = (u8*)sqlite3_value_blob(argv[0]); + px.nBlob = sqlite3_value_bytes(argv[0]); + iErr = jsonbValidityCheck(&px, 0, px.nBlob, 1); + res = iErr==0; + } + break; + } + /* Fall through into interpreting the input as text. See note + ** above at tag-20240123-a. */ + /* no break */ deliberate_fall_through + } + default: { + JsonParse px; + if( (flags & 0x3)==0 ) break; + memset(&px, 0, sizeof(px)); + + p = jsonParseFuncArg(ctx, argv[0], JSON_KEEPERROR); + if( p ){ + if( p->oom ){ + sqlite3_result_error_nomem(ctx); + }else if( p->nErr ){ + /* no-op */ + }else if( (flags & 0x02)!=0 || p->hasNonstd==0 ){ + res = 1; + } + jsonParseFree(p); + }else{ + sqlite3_result_error_nomem(ctx); + } + break; + } } + sqlite3_result_int(ctx, res); } /* ** json_error_position(JSON) ** -** If the argument is not an interpretable JSON string, then return the 1-based -** character position at which the parser first recognized that the input -** was in error. The left-most character is 1. If the string is valid -** JSON, then return 0. +** If the argument is NULL, return NULL ** -** Note that json_valid() is only true for strictly conforming canonical JSON. -** But this routine returns zero if the input contains extension. Thus: +** If the argument is BLOB, do a full validity check and return non-zero +** if the check fails. The return value is the approximate 1-based offset +** to the byte of the element that contains the first error. ** -** (1) If the input X is strictly conforming canonical JSON: -** -** json_valid(X) returns true -** json_error_position(X) returns 0 -** -** (2) If the input X is JSON but it includes extension (such as JSON5) that -** are not part of RFC-8259: -** -** json_valid(X) returns false -** json_error_position(X) return 0 -** -** (3) If the input X cannot be interpreted as JSON even taking extensions -** into account: -** -** json_valid(X) return false -** json_error_position(X) returns 1 or more +** Otherwise interpret the argument is TEXT (even if it is numeric) and +** return the 1-based character position for where the parser first recognized +** that the input was not valid JSON, or return 0 if the input text looks +** ok. JSON-5 extensions are accepted. */ static void jsonErrorFunc( sqlite3_context *ctx, int argc, sqlite3_value **argv ){ - JsonParse *p; /* The parse */ + i64 iErrPos = 0; /* Error position to be returned */ + JsonParse s; + + assert( argc==1 ); UNUSED_PARAMETER(argc); - if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; - p = jsonParseCached(ctx, argv[0], 0, 0); - if( p==0 || p->oom ){ - sqlite3_result_error_nomem(ctx); - sqlite3_free(p); - }else if( p->nErr==0 ){ - sqlite3_result_int(ctx, 0); + memset(&s, 0, sizeof(s)); + s.db = sqlite3_context_db_handle(ctx); + if( jsonFuncArgMightBeBinary(argv[0]) ){ + s.aBlob = (u8*)sqlite3_value_blob(argv[0]); + s.nBlob = sqlite3_value_bytes(argv[0]); + iErrPos = (i64)jsonbValidityCheck(&s, 0, s.nBlob, 1); }else{ - int n = 1; - u32 i; - const char *z = (const char*)sqlite3_value_text(argv[0]); - for(i=0; iiErr && ALWAYS(z[i]); i++){ - if( (z[i]&0xc0)!=0x80 ) n++; + s.zJson = (char*)sqlite3_value_text(argv[0]); + if( s.zJson==0 ) return; /* NULL input or OOM */ + s.nJson = sqlite3_value_bytes(argv[0]); + if( jsonConvertTextToBlob(&s,0) ){ + if( s.oom ){ + iErrPos = -1; + }else{ + /* Convert byte-offset s.iErr into a character offset */ + u32 k; + assert( s.zJson!=0 ); /* Because s.oom is false */ + for(k=0; kzBuf==0 ){ - jsonInit(pStr, ctx); + jsonStringInit(pStr, ctx); jsonAppendChar(pStr, '['); }else if( pStr->nUsed>1 ){ jsonAppendChar(pStr, ','); } pStr->pCtx = ctx; - jsonAppendValue(pStr, argv[0]); + jsonAppendSqlValue(pStr, argv[0]); } } static void jsonArrayCompute(sqlite3_context *ctx, int isFinal){ JsonString *pStr; pStr = (JsonString*)sqlite3_aggregate_context(ctx, 0); if( pStr ){ + int flags; pStr->pCtx = ctx; jsonAppendChar(pStr, ']'); - if( pStr->bErr ){ - if( pStr->bErr==1 ) sqlite3_result_error_nomem(ctx); - assert( pStr->bStatic ); + flags = SQLITE_PTR_TO_INT(sqlite3_user_data(ctx)); + if( pStr->eErr ){ + jsonReturnString(pStr, 0, 0); + return; + }else if( flags & JSON_BLOB ){ + jsonReturnStringAsBlob(pStr); + if( isFinal ){ + if( !pStr->bStatic ) sqlite3RCStrUnref(pStr->zBuf); + }else{ + jsonStringTrimOneChar(pStr); + } + return; }else if( isFinal ){ sqlite3_result_text(ctx, pStr->zBuf, (int)pStr->nUsed, pStr->bStatic ? SQLITE_TRANSIENT : - (void(*)(void*))sqlite3RCStrUnref); + sqlite3RCStrUnref); pStr->bStatic = 1; }else{ sqlite3_result_text(ctx, pStr->zBuf, (int)pStr->nUsed, SQLITE_TRANSIENT); - pStr->nUsed--; + jsonStringTrimOneChar(pStr); } }else{ sqlite3_result_text(ctx, "[]", 2, SQLITE_STATIC); @@ -204441,35 +207716,46 @@ static void jsonObjectStep( pStr = (JsonString*)sqlite3_aggregate_context(ctx, sizeof(*pStr)); if( pStr ){ if( pStr->zBuf==0 ){ - jsonInit(pStr, ctx); + jsonStringInit(pStr, ctx); jsonAppendChar(pStr, '{'); }else if( pStr->nUsed>1 ){ jsonAppendChar(pStr, ','); } pStr->pCtx = ctx; z = (const char*)sqlite3_value_text(argv[0]); - n = (u32)sqlite3_value_bytes(argv[0]); + n = sqlite3Strlen30(z); jsonAppendString(pStr, z, n); jsonAppendChar(pStr, ':'); - jsonAppendValue(pStr, argv[1]); + jsonAppendSqlValue(pStr, argv[1]); } } static void jsonObjectCompute(sqlite3_context *ctx, int isFinal){ JsonString *pStr; pStr = (JsonString*)sqlite3_aggregate_context(ctx, 0); if( pStr ){ + int flags; jsonAppendChar(pStr, '}'); - if( pStr->bErr ){ - if( pStr->bErr==1 ) sqlite3_result_error_nomem(ctx); - assert( pStr->bStatic ); + pStr->pCtx = ctx; + flags = SQLITE_PTR_TO_INT(sqlite3_user_data(ctx)); + if( pStr->eErr ){ + jsonReturnString(pStr, 0, 0); + return; + }else if( flags & JSON_BLOB ){ + jsonReturnStringAsBlob(pStr); + if( isFinal ){ + if( !pStr->bStatic ) sqlite3RCStrUnref(pStr->zBuf); + }else{ + jsonStringTrimOneChar(pStr); + } + return; }else if( isFinal ){ sqlite3_result_text(ctx, pStr->zBuf, (int)pStr->nUsed, pStr->bStatic ? SQLITE_TRANSIENT : - (void(*)(void*))sqlite3RCStrUnref); + sqlite3RCStrUnref); pStr->bStatic = 1; }else{ sqlite3_result_text(ctx, pStr->zBuf, (int)pStr->nUsed, SQLITE_TRANSIENT); - pStr->nUsed--; + jsonStringTrimOneChar(pStr); } }else{ sqlite3_result_text(ctx, "{}", 2, SQLITE_STATIC); @@ -204489,19 +207775,37 @@ static void jsonObjectFinal(sqlite3_context *ctx){ /**************************************************************************** ** The json_each virtual table ****************************************************************************/ +typedef struct JsonParent JsonParent; +struct JsonParent { + u32 iHead; /* Start of object or array */ + u32 iValue; /* Start of the value */ + u32 iEnd; /* First byte past the end */ + u32 nPath; /* Length of path */ + i64 iKey; /* Key for JSONB_ARRAY */ +}; + typedef struct JsonEachCursor JsonEachCursor; struct JsonEachCursor { sqlite3_vtab_cursor base; /* Base class - must be first */ u32 iRowid; /* The rowid */ - u32 iBegin; /* The first node of the scan */ - u32 i; /* Index in sParse.aNode[] of current row */ + u32 i; /* Index in sParse.aBlob[] of current row */ u32 iEnd; /* EOF when i equals or exceeds this value */ - u8 eType; /* Type of top-level element */ + u32 nRoot; /* Size of the root path in bytes */ + u8 eType; /* Type of the container for element i */ u8 bRecursive; /* True for json_tree(). False for json_each() */ - char *zJson; /* Input JSON */ - char *zRoot; /* Path by which to filter zJson */ + u32 nParent; /* Current nesting depth */ + u32 nParentAlloc; /* Space allocated for aParent[] */ + JsonParent *aParent; /* Parent elements of i */ + sqlite3 *db; /* Database connection */ + JsonString path; /* Current path */ JsonParse sParse; /* Parse of the input JSON */ }; +typedef struct JsonEachConnection JsonEachConnection; +struct JsonEachConnection { + sqlite3_vtab base; /* Base class - must be first */ + sqlite3 *db; /* Database connection */ +}; + /* Constructor for the json_each virtual table */ static int jsonEachConnect( @@ -204511,7 +207815,7 @@ static int jsonEachConnect( sqlite3_vtab **ppVtab, char **pzErr ){ - sqlite3_vtab *pNew; + JsonEachConnection *pNew; int rc; /* Column numbers */ @@ -204537,28 +207841,32 @@ static int jsonEachConnect( "CREATE TABLE x(key,value,type,atom,id,parent,fullkey,path," "json HIDDEN,root HIDDEN)"); if( rc==SQLITE_OK ){ - pNew = *ppVtab = sqlite3_malloc( sizeof(*pNew) ); + pNew = (JsonEachConnection*)sqlite3DbMallocZero(db, sizeof(*pNew)); + *ppVtab = (sqlite3_vtab*)pNew; if( pNew==0 ) return SQLITE_NOMEM; - memset(pNew, 0, sizeof(*pNew)); sqlite3_vtab_config(db, SQLITE_VTAB_INNOCUOUS); + pNew->db = db; } return rc; } /* destructor for json_each virtual table */ static int jsonEachDisconnect(sqlite3_vtab *pVtab){ - sqlite3_free(pVtab); + JsonEachConnection *p = (JsonEachConnection*)pVtab; + sqlite3DbFree(p->db, pVtab); return SQLITE_OK; } /* constructor for a JsonEachCursor object for json_each(). */ static int jsonEachOpenEach(sqlite3_vtab *p, sqlite3_vtab_cursor **ppCursor){ + JsonEachConnection *pVtab = (JsonEachConnection*)p; JsonEachCursor *pCur; UNUSED_PARAMETER(p); - pCur = sqlite3_malloc( sizeof(*pCur) ); + pCur = sqlite3DbMallocZero(pVtab->db, sizeof(*pCur)); if( pCur==0 ) return SQLITE_NOMEM; - memset(pCur, 0, sizeof(*pCur)); + pCur->db = pVtab->db; + jsonStringZero(&pCur->path); *ppCursor = &pCur->base; return SQLITE_OK; } @@ -204576,21 +207884,24 @@ static int jsonEachOpenTree(sqlite3_vtab *p, sqlite3_vtab_cursor **ppCursor){ /* Reset a JsonEachCursor back to its original state. Free any memory ** held. */ static void jsonEachCursorReset(JsonEachCursor *p){ - sqlite3_free(p->zRoot); jsonParseReset(&p->sParse); + jsonStringReset(&p->path); + sqlite3DbFree(p->db, p->aParent); p->iRowid = 0; p->i = 0; + p->aParent = 0; + p->nParent = 0; + p->nParentAlloc = 0; p->iEnd = 0; p->eType = 0; - p->zJson = 0; - p->zRoot = 0; } /* Destructor for a jsonEachCursor object */ static int jsonEachClose(sqlite3_vtab_cursor *cur){ JsonEachCursor *p = (JsonEachCursor*)cur; jsonEachCursorReset(p); - sqlite3_free(cur); + + sqlite3DbFree(p->db, cur); return SQLITE_OK; } @@ -204601,200 +207912,230 @@ static int jsonEachEof(sqlite3_vtab_cursor *cur){ return p->i >= p->iEnd; } -/* Advance the cursor to the next element for json_tree() */ -static int jsonEachNext(sqlite3_vtab_cursor *cur){ - JsonEachCursor *p = (JsonEachCursor*)cur; - if( p->bRecursive ){ - if( p->sParse.aNode[p->i].jnFlags & JNODE_LABEL ) p->i++; - p->i++; - p->iRowid++; - if( p->iiEnd ){ - u32 iUp = p->sParse.aUp[p->i]; - JsonNode *pUp = &p->sParse.aNode[iUp]; - p->eType = pUp->eType; - if( pUp->eType==JSON_ARRAY ){ - assert( pUp->eU==0 || pUp->eU==3 ); - testcase( pUp->eU==3 ); - VVA( pUp->eU = 3 ); - if( iUp==p->i-1 ){ - pUp->u.iKey = 0; - }else{ - pUp->u.iKey++; +/* +** If the cursor is currently pointing at the label of a object entry, +** then return the index of the value. For all other cases, return the +** current pointer position, which is the value. +*/ +static int jsonSkipLabel(JsonEachCursor *p){ + if( p->eType==JSONB_OBJECT ){ + u32 sz = 0; + u32 n = jsonbPayloadSize(&p->sParse, p->i, &sz); + return p->i + n + sz; + }else{ + return p->i; + } +} + +/* +** Append the path name for the current element. +*/ +static void jsonAppendPathName(JsonEachCursor *p){ + assert( p->nParent>0 ); + assert( p->eType==JSONB_ARRAY || p->eType==JSONB_OBJECT ); + if( p->eType==JSONB_ARRAY ){ + jsonPrintf(30, &p->path, "[%lld]", p->aParent[p->nParent-1].iKey); + }else{ + u32 n, sz = 0, k, i; + const char *z; + int needQuote = 0; + n = jsonbPayloadSize(&p->sParse, p->i, &sz); + k = p->i + n; + z = (const char*)&p->sParse.aBlob[k]; + if( sz==0 || !sqlite3Isalpha(z[0]) ){ + needQuote = 1; + }else{ + for(i=0; ipath,".\"%.*s\"", sz, z); + }else{ + jsonPrintf(sz+2,&p->path,".%.*s", sz, z); + } + } +} + +/* Advance the cursor to the next element for json_tree() */ +static int jsonEachNext(sqlite3_vtab_cursor *cur){ + JsonEachCursor *p = (JsonEachCursor*)cur; + int rc = SQLITE_OK; + if( p->bRecursive ){ + u8 x; + u8 levelChange = 0; + u32 n, sz = 0; + u32 i = jsonSkipLabel(p); + x = p->sParse.aBlob[i] & 0x0f; + n = jsonbPayloadSize(&p->sParse, i, &sz); + if( x==JSONB_OBJECT || x==JSONB_ARRAY ){ + JsonParent *pParent; + if( p->nParent>=p->nParentAlloc ){ + JsonParent *pNew; + u64 nNew; + nNew = p->nParentAlloc*2 + 3; + pNew = sqlite3DbRealloc(p->db, p->aParent, sizeof(JsonParent)*nNew); + if( pNew==0 ) return SQLITE_NOMEM; + p->nParentAlloc = (u32)nNew; + p->aParent = pNew; + } + levelChange = 1; + pParent = &p->aParent[p->nParent]; + pParent->iHead = p->i; + pParent->iValue = i; + pParent->iEnd = i + n + sz; + pParent->iKey = -1; + pParent->nPath = (u32)p->path.nUsed; + if( p->eType && p->nParent ){ + jsonAppendPathName(p); + if( p->path.eErr ) rc = SQLITE_NOMEM; + } + p->nParent++; + p->i = i + n; + }else{ + p->i = i + n + sz; + } + while( p->nParent>0 && p->i >= p->aParent[p->nParent-1].iEnd ){ + p->nParent--; + p->path.nUsed = p->aParent[p->nParent].nPath; + levelChange = 1; + } + if( levelChange ){ + if( p->nParent>0 ){ + JsonParent *pParent = &p->aParent[p->nParent-1]; + u32 iVal = pParent->iValue; + p->eType = p->sParse.aBlob[iVal] & 0x0f; + }else{ + p->eType = 0; + } + } }else{ - switch( p->eType ){ - case JSON_ARRAY: { - p->i += jsonNodeSize(&p->sParse.aNode[p->i]); - p->iRowid++; - break; - } - case JSON_OBJECT: { - p->i += 1 + jsonNodeSize(&p->sParse.aNode[p->i+1]); - p->iRowid++; - break; - } - default: { - p->i = p->iEnd; - break; + u32 n, sz = 0; + u32 i = jsonSkipLabel(p); + n = jsonbPayloadSize(&p->sParse, i, &sz); + p->i = i + n + sz; + } + if( p->eType==JSONB_ARRAY && p->nParent ){ + p->aParent[p->nParent-1].iKey++; + } + p->iRowid++; + return rc; +} + +/* Length of the path for rowid==0 in bRecursive mode. +*/ +static int jsonEachPathLength(JsonEachCursor *p){ + u32 n = p->path.nUsed; + char *z = p->path.zBuf; + if( p->iRowid==0 && p->bRecursive && n>=2 ){ + while( n>1 ){ + n--; + if( z[n]=='[' || z[n]=='.' ){ + u32 x, sz = 0; + char cSaved = z[n]; + z[n] = 0; + assert( p->sParse.eEdit==0 ); + x = jsonLookupStep(&p->sParse, 0, z+1, 0); + z[n] = cSaved; + if( JSON_LOOKUP_ISERROR(x) ) continue; + if( x + jsonbPayloadSize(&p->sParse, x, &sz) == p->i ) break; } } } - return SQLITE_OK; -} - -/* Append an object label to the JSON Path being constructed -** in pStr. -*/ -static void jsonAppendObjectPathElement( - JsonString *pStr, - JsonNode *pNode -){ - int jj, nn; - const char *z; - assert( pNode->eType==JSON_STRING ); - assert( pNode->jnFlags & JNODE_LABEL ); - assert( pNode->eU==1 ); - z = pNode->u.zJContent; - nn = pNode->n; - if( (pNode->jnFlags & JNODE_RAW)==0 ){ - assert( nn>=2 ); - assert( z[0]=='"' || z[0]=='\'' ); - assert( z[nn-1]=='"' || z[0]=='\'' ); - if( nn>2 && sqlite3Isalpha(z[1]) ){ - for(jj=2; jjsParse.aUp[i]; - jsonEachComputePath(p, pStr, iUp); - pNode = &p->sParse.aNode[i]; - pUp = &p->sParse.aNode[iUp]; - if( pUp->eType==JSON_ARRAY ){ - assert( pUp->eU==3 || (pUp->eU==0 && pUp->u.iKey==0) ); - testcase( pUp->eU==0 ); - jsonPrintf(30, pStr, "[%d]", pUp->u.iKey); - }else{ - assert( pUp->eType==JSON_OBJECT ); - if( (pNode->jnFlags & JNODE_LABEL)==0 ) pNode--; - jsonAppendObjectPathElement(pStr, pNode); - } + return n; } /* Return the value of a column */ static int jsonEachColumn( sqlite3_vtab_cursor *cur, /* The cursor */ sqlite3_context *ctx, /* First argument to sqlite3_result_...() */ - int i /* Which column to return */ + int iColumn /* Which column to return */ ){ JsonEachCursor *p = (JsonEachCursor*)cur; - JsonNode *pThis = &p->sParse.aNode[p->i]; - switch( i ){ + switch( iColumn ){ case JEACH_KEY: { - if( p->i==0 ) break; - if( p->eType==JSON_OBJECT ){ - jsonReturn(&p->sParse, pThis, ctx); - }else if( p->eType==JSON_ARRAY ){ - u32 iKey; - if( p->bRecursive ){ - if( p->iRowid==0 ) break; - assert( p->sParse.aNode[p->sParse.aUp[p->i]].eU==3 ); - iKey = p->sParse.aNode[p->sParse.aUp[p->i]].u.iKey; + if( p->nParent==0 ){ + u32 n, j; + if( p->nRoot==1 ) break; + j = jsonEachPathLength(p); + n = p->nRoot - j; + if( n==0 ){ + break; + }else if( p->path.zBuf[j]=='[' ){ + i64 x; + sqlite3Atoi64(&p->path.zBuf[j+1], &x, n-1, SQLITE_UTF8); + sqlite3_result_int64(ctx, x); + }else if( p->path.zBuf[j+1]=='"' ){ + sqlite3_result_text(ctx, &p->path.zBuf[j+2], n-3, SQLITE_TRANSIENT); }else{ - iKey = p->iRowid; + sqlite3_result_text(ctx, &p->path.zBuf[j+1], n-1, SQLITE_TRANSIENT); } - sqlite3_result_int64(ctx, (sqlite3_int64)iKey); + break; + } + if( p->eType==JSONB_OBJECT ){ + jsonReturnFromBlob(&p->sParse, p->i, ctx, 1); + }else{ + assert( p->eType==JSONB_ARRAY ); + sqlite3_result_int64(ctx, p->aParent[p->nParent-1].iKey); } break; } case JEACH_VALUE: { - if( pThis->jnFlags & JNODE_LABEL ) pThis++; - jsonReturn(&p->sParse, pThis, ctx); + u32 i = jsonSkipLabel(p); + jsonReturnFromBlob(&p->sParse, i, ctx, 1); break; } case JEACH_TYPE: { - if( pThis->jnFlags & JNODE_LABEL ) pThis++; - sqlite3_result_text(ctx, jsonType[pThis->eType], -1, SQLITE_STATIC); + u32 i = jsonSkipLabel(p); + u8 eType = p->sParse.aBlob[i] & 0x0f; + sqlite3_result_text(ctx, jsonbType[eType], -1, SQLITE_STATIC); break; } case JEACH_ATOM: { - if( pThis->jnFlags & JNODE_LABEL ) pThis++; - if( pThis->eType>=JSON_ARRAY ) break; - jsonReturn(&p->sParse, pThis, ctx); + u32 i = jsonSkipLabel(p); + if( (p->sParse.aBlob[i] & 0x0f)sParse, i, ctx, 1); + } break; } case JEACH_ID: { - sqlite3_result_int64(ctx, - (sqlite3_int64)p->i + ((pThis->jnFlags & JNODE_LABEL)!=0)); + sqlite3_result_int64(ctx, (sqlite3_int64)p->i); break; } case JEACH_PARENT: { - if( p->i>p->iBegin && p->bRecursive ){ - sqlite3_result_int64(ctx, (sqlite3_int64)p->sParse.aUp[p->i]); + if( p->nParent>0 && p->bRecursive ){ + sqlite3_result_int64(ctx, p->aParent[p->nParent-1].iHead); } break; } case JEACH_FULLKEY: { - JsonString x; - jsonInit(&x, ctx); - if( p->bRecursive ){ - jsonEachComputePath(p, &x, p->i); - }else{ - if( p->zRoot ){ - jsonAppendRaw(&x, p->zRoot, (int)strlen(p->zRoot)); - }else{ - jsonAppendChar(&x, '$'); - } - if( p->eType==JSON_ARRAY ){ - jsonPrintf(30, &x, "[%d]", p->iRowid); - }else if( p->eType==JSON_OBJECT ){ - jsonAppendObjectPathElement(&x, pThis); - } - } - jsonResult(&x); + u64 nBase = p->path.nUsed; + if( p->nParent ) jsonAppendPathName(p); + sqlite3_result_text64(ctx, p->path.zBuf, p->path.nUsed, + SQLITE_TRANSIENT, SQLITE_UTF8); + p->path.nUsed = nBase; break; } case JEACH_PATH: { - if( p->bRecursive ){ - JsonString x; - jsonInit(&x, ctx); - jsonEachComputePath(p, &x, p->sParse.aUp[p->i]); - jsonResult(&x); - break; - } - /* For json_each() path and root are the same so fall through - ** into the root case */ - /* no break */ deliberate_fall_through + u32 n = jsonEachPathLength(p); + sqlite3_result_text64(ctx, p->path.zBuf, n, + SQLITE_TRANSIENT, SQLITE_UTF8); + break; } default: { - const char *zRoot = p->zRoot; - if( zRoot==0 ) zRoot = "$"; - sqlite3_result_text(ctx, zRoot, -1, SQLITE_STATIC); + sqlite3_result_text(ctx, p->path.zBuf, p->nRoot, SQLITE_STATIC); break; } case JEACH_JSON: { - assert( i==JEACH_JSON ); - sqlite3_result_text(ctx, p->sParse.zJson, -1, SQLITE_STATIC); + if( p->sParse.zJson==0 ){ + sqlite3_result_blob(ctx, p->sParse.aBlob, p->sParse.nBlob, + SQLITE_STATIC); + }else{ + sqlite3_result_text(ctx, p->sParse.zJson, -1, SQLITE_STATIC); + } break; } } @@ -204885,86 +208226,97 @@ static int jsonEachFilter( int argc, sqlite3_value **argv ){ JsonEachCursor *p = (JsonEachCursor*)cur; - const char *z; const char *zRoot = 0; - sqlite3_int64 n; + u32 i, n, sz; UNUSED_PARAMETER(idxStr); UNUSED_PARAMETER(argc); jsonEachCursorReset(p); if( idxNum==0 ) return SQLITE_OK; - z = (const char*)sqlite3_value_text(argv[0]); - if( z==0 ) return SQLITE_OK; memset(&p->sParse, 0, sizeof(p->sParse)); p->sParse.nJPRef = 1; - if( sqlite3ValueIsOfClass(argv[0], (void(*)(void*))sqlite3RCStrUnref) ){ - p->sParse.zJson = sqlite3RCStrRef((char*)z); + p->sParse.db = p->db; + if( jsonFuncArgMightBeBinary(argv[0]) ){ + p->sParse.nBlob = sqlite3_value_bytes(argv[0]); + p->sParse.aBlob = (u8*)sqlite3_value_blob(argv[0]); }else{ - n = sqlite3_value_bytes(argv[0]); - p->sParse.zJson = sqlite3RCStrNew( n+1 ); - if( p->sParse.zJson==0 ) return SQLITE_NOMEM; - memcpy(p->sParse.zJson, z, (size_t)n+1); - } - p->sParse.bJsonIsRCStr = 1; - p->zJson = p->sParse.zJson; - if( jsonParse(&p->sParse, 0) ){ - int rc = SQLITE_NOMEM; - if( p->sParse.oom==0 ){ - sqlite3_free(cur->pVtab->zErrMsg); - cur->pVtab->zErrMsg = sqlite3_mprintf("malformed JSON"); - if( cur->pVtab->zErrMsg ) rc = SQLITE_ERROR; + p->sParse.zJson = (char*)sqlite3_value_text(argv[0]); + p->sParse.nJson = sqlite3_value_bytes(argv[0]); + if( p->sParse.zJson==0 ){ + p->i = p->iEnd = 0; + return SQLITE_OK; } - jsonEachCursorReset(p); - return rc; - }else if( p->bRecursive && jsonParseFindParents(&p->sParse) ){ - jsonEachCursorReset(p); - return SQLITE_NOMEM; - }else{ - JsonNode *pNode = 0; - if( idxNum==3 ){ - const char *zErr = 0; - zRoot = (const char*)sqlite3_value_text(argv[1]); - if( zRoot==0 ) return SQLITE_OK; - n = sqlite3_value_bytes(argv[1]); - p->zRoot = sqlite3_malloc64( n+1 ); - if( p->zRoot==0 ) return SQLITE_NOMEM; - memcpy(p->zRoot, zRoot, (size_t)n+1); - if( zRoot[0]!='$' ){ - zErr = zRoot; - }else{ - pNode = jsonLookupStep(&p->sParse, 0, p->zRoot+1, 0, &zErr); + if( jsonConvertTextToBlob(&p->sParse, 0) ){ + if( p->sParse.oom ){ + return SQLITE_NOMEM; } - if( zErr ){ + goto json_each_malformed_input; + } + } + if( idxNum==3 ){ + zRoot = (const char*)sqlite3_value_text(argv[1]); + if( zRoot==0 ) return SQLITE_OK; + if( zRoot[0]!='$' ){ + sqlite3_free(cur->pVtab->zErrMsg); + cur->pVtab->zErrMsg = jsonBadPathError(0, zRoot); + jsonEachCursorReset(p); + return cur->pVtab->zErrMsg ? SQLITE_ERROR : SQLITE_NOMEM; + } + p->nRoot = sqlite3Strlen30(zRoot); + if( zRoot[1]==0 ){ + i = p->i = 0; + p->eType = 0; + }else{ + i = jsonLookupStep(&p->sParse, 0, zRoot+1, 0); + if( JSON_LOOKUP_ISERROR(i) ){ + if( i==JSON_LOOKUP_NOTFOUND ){ + p->i = 0; + p->eType = 0; + p->iEnd = 0; + return SQLITE_OK; + } sqlite3_free(cur->pVtab->zErrMsg); - cur->pVtab->zErrMsg = jsonPathSyntaxError(zErr); + cur->pVtab->zErrMsg = jsonBadPathError(0, zRoot); jsonEachCursorReset(p); return cur->pVtab->zErrMsg ? SQLITE_ERROR : SQLITE_NOMEM; - }else if( pNode==0 ){ - return SQLITE_OK; } - }else{ - pNode = p->sParse.aNode; - } - p->iBegin = p->i = (int)(pNode - p->sParse.aNode); - p->eType = pNode->eType; - if( p->eType>=JSON_ARRAY ){ - assert( pNode->eU==0 ); - VVA( pNode->eU = 3 ); - pNode->u.iKey = 0; - p->iEnd = p->i + pNode->n + 1; - if( p->bRecursive ){ - p->eType = p->sParse.aNode[p->sParse.aUp[p->i]].eType; - if( p->i>0 && (p->sParse.aNode[p->i-1].jnFlags & JNODE_LABEL)!=0 ){ - p->i--; - } + if( p->sParse.iLabel ){ + p->i = p->sParse.iLabel; + p->eType = JSONB_OBJECT; }else{ - p->i++; + p->i = i; + p->eType = JSONB_ARRAY; } - }else{ - p->iEnd = p->i+1; } + jsonAppendRaw(&p->path, zRoot, p->nRoot); + }else{ + i = p->i = 0; + p->eType = 0; + p->nRoot = 1; + jsonAppendRaw(&p->path, "$", 1); + } + p->nParent = 0; + n = jsonbPayloadSize(&p->sParse, i, &sz); + p->iEnd = i+n+sz; + if( (p->sParse.aBlob[i] & 0x0f)>=JSONB_ARRAY && !p->bRecursive ){ + p->i = i + n; + p->eType = p->sParse.aBlob[i] & 0x0f; + p->aParent = sqlite3DbMallocZero(p->db, sizeof(JsonParent)); + if( p->aParent==0 ) return SQLITE_NOMEM; + p->nParent = 1; + p->nParentAlloc = 1; + p->aParent[0].iKey = 0; + p->aParent[0].iEnd = p->iEnd; + p->aParent[0].iHead = p->i; + p->aParent[0].iValue = i; } return SQLITE_OK; + +json_each_malformed_input: + sqlite3_free(cur->pVtab->zErrMsg); + cur->pVtab->zErrMsg = sqlite3_mprintf("malformed JSON"); + jsonEachCursorReset(p); + return cur->pVtab->zErrMsg ? SQLITE_ERROR : SQLITE_NOMEM; } /* The methods of the json_each virtual table */ @@ -204992,7 +208344,8 @@ static sqlite3_module jsonEachModule = { 0, /* xSavepoint */ 0, /* xRelease */ 0, /* xRollbackTo */ - 0 /* xShadowName */ + 0, /* xShadowName */ + 0 /* xIntegrity */ }; /* The methods of the json_tree virtual table. */ @@ -205020,7 +208373,8 @@ static sqlite3_module jsonTreeModule = { 0, /* xSavepoint */ 0, /* xRelease */ 0, /* xRollbackTo */ - 0 /* xShadowName */ + 0, /* xShadowName */ + 0 /* xIntegrity */ }; #endif /* SQLITE_OMIT_VIRTUALTABLE */ #endif /* !defined(SQLITE_OMIT_JSON) */ @@ -205031,34 +208385,57 @@ static sqlite3_module jsonTreeModule = { SQLITE_PRIVATE void sqlite3RegisterJsonFunctions(void){ #ifndef SQLITE_OMIT_JSON static FuncDef aJsonFunc[] = { - JFUNCTION(json, 1, 0, jsonRemoveFunc), - JFUNCTION(json_array, -1, 0, jsonArrayFunc), - JFUNCTION(json_array_length, 1, 0, jsonArrayLengthFunc), - JFUNCTION(json_array_length, 2, 0, jsonArrayLengthFunc), - JFUNCTION(json_error_position,1, 0, jsonErrorFunc), - JFUNCTION(json_extract, -1, 0, jsonExtractFunc), - JFUNCTION(->, 2, JSON_JSON, jsonExtractFunc), - JFUNCTION(->>, 2, JSON_SQL, jsonExtractFunc), - JFUNCTION(json_insert, -1, 0, jsonSetFunc), - JFUNCTION(json_object, -1, 0, jsonObjectFunc), - JFUNCTION(json_patch, 2, 0, jsonPatchFunc), - JFUNCTION(json_quote, 1, 0, jsonQuoteFunc), - JFUNCTION(json_remove, -1, 0, jsonRemoveFunc), - JFUNCTION(json_replace, -1, 0, jsonReplaceFunc), - JFUNCTION(json_set, -1, JSON_ISSET, jsonSetFunc), - JFUNCTION(json_type, 1, 0, jsonTypeFunc), - JFUNCTION(json_type, 2, 0, jsonTypeFunc), - JFUNCTION(json_valid, 1, 0, jsonValidFunc), + /* sqlite3_result_subtype() ----, ,--- sqlite3_value_subtype() */ + /* | | */ + /* Uses cache ------, | | ,---- Returns JSONB */ + /* | | | | */ + /* Number of arguments ---, | | | | ,--- Flags */ + /* | | | | | | */ + JFUNCTION(json, 1,1,1, 0,0,0, jsonRemoveFunc), + JFUNCTION(jsonb, 1,1,0, 0,1,0, jsonRemoveFunc), + JFUNCTION(json_array, -1,0,1, 1,0,0, jsonArrayFunc), + JFUNCTION(jsonb_array, -1,0,1, 1,1,0, jsonArrayFunc), + JFUNCTION(json_array_length, 1,1,0, 0,0,0, jsonArrayLengthFunc), + JFUNCTION(json_array_length, 2,1,0, 0,0,0, jsonArrayLengthFunc), + JFUNCTION(json_error_position,1,1,0, 0,0,0, jsonErrorFunc), + JFUNCTION(json_extract, -1,1,1, 0,0,0, jsonExtractFunc), + JFUNCTION(jsonb_extract, -1,1,0, 0,1,0, jsonExtractFunc), + JFUNCTION(->, 2,1,1, 0,0,JSON_JSON, jsonExtractFunc), + JFUNCTION(->>, 2,1,0, 0,0,JSON_SQL, jsonExtractFunc), + JFUNCTION(json_insert, -1,1,1, 1,0,0, jsonSetFunc), + JFUNCTION(jsonb_insert, -1,1,0, 1,1,0, jsonSetFunc), + JFUNCTION(json_object, -1,0,1, 1,0,0, jsonObjectFunc), + JFUNCTION(jsonb_object, -1,0,1, 1,1,0, jsonObjectFunc), + JFUNCTION(json_patch, 2,1,1, 0,0,0, jsonPatchFunc), + JFUNCTION(jsonb_patch, 2,1,0, 0,1,0, jsonPatchFunc), + JFUNCTION(json_quote, 1,0,1, 1,0,0, jsonQuoteFunc), + JFUNCTION(json_remove, -1,1,1, 0,0,0, jsonRemoveFunc), + JFUNCTION(jsonb_remove, -1,1,0, 0,1,0, jsonRemoveFunc), + JFUNCTION(json_replace, -1,1,1, 1,0,0, jsonReplaceFunc), + JFUNCTION(jsonb_replace, -1,1,0, 1,1,0, jsonReplaceFunc), + JFUNCTION(json_set, -1,1,1, 1,0,JSON_ISSET, jsonSetFunc), + JFUNCTION(jsonb_set, -1,1,0, 1,1,JSON_ISSET, jsonSetFunc), + JFUNCTION(json_type, 1,1,0, 0,0,0, jsonTypeFunc), + JFUNCTION(json_type, 2,1,0, 0,0,0, jsonTypeFunc), + JFUNCTION(json_valid, 1,1,0, 0,0,0, jsonValidFunc), + JFUNCTION(json_valid, 2,1,0, 0,0,0, jsonValidFunc), #if SQLITE_DEBUG - JFUNCTION(json_parse, 1, 0, jsonParseFunc), - JFUNCTION(json_test1, 1, 0, jsonTest1Func), + JFUNCTION(json_parse, 1,1,0, 0,0,0, jsonParseFunc), #endif WAGGREGATE(json_group_array, 1, 0, 0, jsonArrayStep, jsonArrayFinal, jsonArrayValue, jsonGroupInverse, - SQLITE_SUBTYPE|SQLITE_UTF8|SQLITE_DETERMINISTIC), + SQLITE_SUBTYPE|SQLITE_RESULT_SUBTYPE|SQLITE_UTF8| + SQLITE_DETERMINISTIC), + WAGGREGATE(jsonb_group_array, 1, JSON_BLOB, 0, + jsonArrayStep, jsonArrayFinal, jsonArrayValue, jsonGroupInverse, + SQLITE_SUBTYPE|SQLITE_RESULT_SUBTYPE|SQLITE_UTF8|SQLITE_DETERMINISTIC), WAGGREGATE(json_group_object, 2, 0, 0, jsonObjectStep, jsonObjectFinal, jsonObjectValue, jsonGroupInverse, - SQLITE_SUBTYPE|SQLITE_UTF8|SQLITE_DETERMINISTIC) + SQLITE_SUBTYPE|SQLITE_RESULT_SUBTYPE|SQLITE_UTF8|SQLITE_DETERMINISTIC), + WAGGREGATE(jsonb_group_object,2, JSON_BLOB, 0, + jsonObjectStep, jsonObjectFinal, jsonObjectValue, jsonGroupInverse, + SQLITE_SUBTYPE|SQLITE_RESULT_SUBTYPE|SQLITE_UTF8| + SQLITE_DETERMINISTIC) }; sqlite3InsertBuiltinFuncs(aJsonFunc, ArraySize(aJsonFunc)); #endif @@ -205255,6 +208632,7 @@ struct Rtree { int iDepth; /* Current depth of the r-tree structure */ char *zDb; /* Name of database containing r-tree table */ char *zName; /* Name of r-tree table */ + char *zNodeName; /* Name of the %_node table */ u32 nBusy; /* Current number of users of this structure */ i64 nRowEst; /* Estimated number of rows in this table */ u32 nCursor; /* Number of open cursors */ @@ -205267,7 +208645,6 @@ struct Rtree { ** headed by the node (leaf nodes have RtreeNode.iNode==0). */ RtreeNode *pDeleted; - int iReinsertHeight; /* Height of sub-trees Reinsert() has run on */ /* Blob I/O on xxx_node */ sqlite3_blob *pNodeBlob; @@ -205564,15 +208941,20 @@ struct RtreeMatchArg { ** -DSQLITE_RUNTIME_BYTEORDER=1 is set, then byte-order is determined ** at run-time. */ -#ifndef SQLITE_BYTEORDER -# if defined(i386) || defined(__i386__) || defined(_M_IX86) || \ +#ifndef SQLITE_BYTEORDER /* Replicate changes at tag-20230904a */ +# if defined(__BYTE_ORDER__) && __BYTE_ORDER__==__ORDER_BIG_ENDIAN__ +# define SQLITE_BYTEORDER 4321 +# elif defined(__BYTE_ORDER__) && __BYTE_ORDER__==__ORDER_LITTLE_ENDIAN__ +# define SQLITE_BYTEORDER 1234 +# elif defined(__BIG_ENDIAN__) && __BIG_ENDIAN__==1 +# define SQLITE_BYTEORDER 4321 +# elif defined(i386) || defined(__i386__) || defined(_M_IX86) || \ defined(__x86_64) || defined(__x86_64__) || defined(_M_X64) || \ defined(_M_AMD64) || defined(_M_ARM) || defined(__x86) || \ defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64) -# define SQLITE_BYTEORDER 1234 -# elif defined(sparc) || defined(__ppc__) || \ - defined(__ARMEB__) || defined(__AARCH64EB__) -# define SQLITE_BYTEORDER 4321 +# define SQLITE_BYTEORDER 1234 +# elif defined(sparc) || defined(__ARMEB__) || defined(__AARCH64EB__) +# define SQLITE_BYTEORDER 4321 # else # define SQLITE_BYTEORDER 0 # endif @@ -205801,7 +209183,7 @@ static int nodeAcquire( ** increase its reference count and return it. */ if( (pNode = nodeHashLookup(pRtree, iNode))!=0 ){ - if( pParent && pParent!=pNode->pParent ){ + if( pParent && ALWAYS(pParent!=pNode->pParent) ){ RTREE_IS_CORRUPT(pRtree); return SQLITE_CORRUPT_VTAB; } @@ -205821,11 +209203,9 @@ static int nodeAcquire( } } if( pRtree->pNodeBlob==0 ){ - char *zTab = sqlite3_mprintf("%s_node", pRtree->zName); - if( zTab==0 ) return SQLITE_NOMEM; - rc = sqlite3_blob_open(pRtree->db, pRtree->zDb, zTab, "data", iNode, 0, + rc = sqlite3_blob_open(pRtree->db, pRtree->zDb, pRtree->zNodeName, + "data", iNode, 0, &pRtree->pNodeBlob); - sqlite3_free(zTab); } if( rc ){ nodeBlobReset(pRtree); @@ -207166,8 +210546,12 @@ static int rtreeBestIndex(sqlite3_vtab *tab, sqlite3_index_info *pIdxInfo){ pIdxInfo->idxNum = 2; pIdxInfo->needToFreeIdxStr = 1; - if( iIdx>0 && 0==(pIdxInfo->idxStr = sqlite3_mprintf("%s", zIdxStr)) ){ - return SQLITE_NOMEM; + if( iIdx>0 ){ + pIdxInfo->idxStr = sqlite3_malloc( iIdx+1 ); + if( pIdxInfo->idxStr==0 ){ + return SQLITE_NOMEM; + } + memcpy(pIdxInfo->idxStr, zIdxStr, iIdx+1); } nRow = pRtree->nRowEst >> (iIdx/2); @@ -207246,31 +210630,22 @@ static void cellUnion(Rtree *pRtree, RtreeCell *p1, RtreeCell *p2){ */ static int cellContains(Rtree *pRtree, RtreeCell *p1, RtreeCell *p2){ int ii; - int isInt = (pRtree->eCoordType==RTREE_COORD_INT32); - for(ii=0; iinDim2; ii+=2){ - RtreeCoord *a1 = &p1->aCoord[ii]; - RtreeCoord *a2 = &p2->aCoord[ii]; - if( (!isInt && (a2[0].fa1[1].f)) - || ( isInt && (a2[0].ia1[1].i)) - ){ - return 0; + if( pRtree->eCoordType==RTREE_COORD_INT32 ){ + for(ii=0; iinDim2; ii+=2){ + RtreeCoord *a1 = &p1->aCoord[ii]; + RtreeCoord *a2 = &p2->aCoord[ii]; + if( a2[0].ia1[1].i ) return 0; + } + }else{ + for(ii=0; iinDim2; ii+=2){ + RtreeCoord *a1 = &p1->aCoord[ii]; + RtreeCoord *a2 = &p2->aCoord[ii]; + if( a2[0].fa1[1].f ) return 0; } } return 1; } -/* -** Return the amount cell p would grow by if it were unioned with pCell. -*/ -static RtreeDValue cellGrowth(Rtree *pRtree, RtreeCell *p, RtreeCell *pCell){ - RtreeDValue area; - RtreeCell cell; - memcpy(&cell, p, sizeof(RtreeCell)); - area = cellArea(pRtree, &cell); - cellUnion(pRtree, &cell, pCell); - return (cellArea(pRtree, &cell)-area); -} - static RtreeDValue cellOverlap( Rtree *pRtree, RtreeCell *p, @@ -207317,38 +210692,52 @@ static int ChooseLeaf( for(ii=0; rc==SQLITE_OK && ii<(pRtree->iDepth-iHeight); ii++){ int iCell; sqlite3_int64 iBest = 0; - + int bFound = 0; RtreeDValue fMinGrowth = RTREE_ZERO; RtreeDValue fMinArea = RTREE_ZERO; - int nCell = NCELL(pNode); - RtreeCell cell; RtreeNode *pChild = 0; - RtreeCell *aCell = 0; - - /* Select the child node which will be enlarged the least if pCell - ** is inserted into it. Resolve ties by choosing the entry with - ** the smallest area. + /* First check to see if there is are any cells in pNode that completely + ** contains pCell. If two or more cells in pNode completely contain pCell + ** then pick the smallest. */ for(iCell=0; iCell1 ){ - int iLeft = 0; - int iRight = 0; - - int nLeft = nIdx/2; - int nRight = nIdx-nLeft; - int *aLeft = aIdx; - int *aRight = &aIdx[nLeft]; - - SortByDistance(aLeft, nLeft, aDistance, aSpare); - SortByDistance(aRight, nRight, aDistance, aSpare); - - memcpy(aSpare, aLeft, sizeof(int)*nLeft); - aLeft = aSpare; - - while( iLeftnDim; iDim++){ - aCenterCoord[iDim] += DCOORD(aCell[ii].aCoord[iDim*2]); - aCenterCoord[iDim] += DCOORD(aCell[ii].aCoord[iDim*2+1]); - } - } - for(iDim=0; iDimnDim; iDim++){ - aCenterCoord[iDim] = (aCenterCoord[iDim]/(nCell*(RtreeDValue)2)); - } - - for(ii=0; iinDim; iDim++){ - RtreeDValue coord = (DCOORD(aCell[ii].aCoord[iDim*2+1]) - - DCOORD(aCell[ii].aCoord[iDim*2])); - aDistance[ii] += (coord-aCenterCoord[iDim])*(coord-aCenterCoord[iDim]); - } - } - - SortByDistance(aOrder, nCell, aDistance, aSpare); - nodeZero(pRtree, pNode); - - for(ii=0; rc==SQLITE_OK && ii<(nCell-(RTREE_MINCELLS(pRtree)+1)); ii++){ - RtreeCell *p = &aCell[aOrder[ii]]; - nodeInsertCell(pRtree, pNode, p); - if( p->iRowid==pCell->iRowid ){ - if( iHeight==0 ){ - rc = rowidWrite(pRtree, p->iRowid, pNode->iNode); - }else{ - rc = parentWrite(pRtree, p->iRowid, pNode->iNode); - } - } - } - if( rc==SQLITE_OK ){ - rc = fixBoundingBox(pRtree, pNode); - } - for(; rc==SQLITE_OK && iiiNode currently contains - ** the height of the sub-tree headed by the cell. - */ - RtreeNode *pInsert; - RtreeCell *p = &aCell[aOrder[ii]]; - rc = ChooseLeaf(pRtree, p, iHeight, &pInsert); - if( rc==SQLITE_OK ){ - int rc2; - rc = rtreeInsertCell(pRtree, pInsert, p, iHeight); - rc2 = nodeRelease(pRtree, pInsert); - if( rc==SQLITE_OK ){ - rc = rc2; - } - } - } - - sqlite3_free(aCell); - return rc; -} - /* ** Insert cell pCell into node pNode. Node pNode is the head of a ** subtree iHeight high (leaf nodes have iHeight==0). @@ -208097,12 +211314,7 @@ static int rtreeInsertCell( } } if( nodeInsertCell(pRtree, pNode, pCell) ){ - if( iHeight<=pRtree->iReinsertHeight || pNode->iNode==1){ - rc = SplitNode(pRtree, pNode, pCell, iHeight); - }else{ - pRtree->iReinsertHeight = iHeight; - rc = Reinsert(pRtree, pNode, pCell, iHeight); - } + rc = SplitNode(pRtree, pNode, pCell, iHeight); }else{ rc = AdjustTree(pRtree, pNode, pCell); if( ALWAYS(rc==SQLITE_OK) ){ @@ -208445,7 +211657,6 @@ static int rtreeUpdate( } if( rc==SQLITE_OK ){ int rc2; - pRtree->iReinsertHeight = -1; rc = rtreeInsertCell(pRtree, pLeaf, &cell, 0); rc2 = nodeRelease(pRtree, pLeaf); if( rc==SQLITE_OK ){ @@ -208586,8 +211797,11 @@ static int rtreeShadowName(const char *zName){ return 0; } +/* Forward declaration */ +static int rtreeIntegrity(sqlite3_vtab*, const char*, const char*, int, char**); + static sqlite3_module rtreeModule = { - 3, /* iVersion */ + 4, /* iVersion */ rtreeCreate, /* xCreate - create a table */ rtreeConnect, /* xConnect - connect to an existing table */ rtreeBestIndex, /* xBestIndex - Determine search strategy */ @@ -208610,7 +211824,8 @@ static sqlite3_module rtreeModule = { rtreeSavepoint, /* xSavepoint */ 0, /* xRelease */ 0, /* xRollbackTo */ - rtreeShadowName /* xShadowName */ + rtreeShadowName, /* xShadowName */ + rtreeIntegrity /* xIntegrity */ }; static int rtreeSqlInit( @@ -208703,7 +211918,7 @@ static int rtreeSqlInit( } sqlite3_free(zSql); } - if( pRtree->nAux ){ + if( pRtree->nAux && rc!=SQLITE_NOMEM ){ pRtree->zReadAuxSql = sqlite3_mprintf( "SELECT * FROM \"%w\".\"%w_rowid\" WHERE rowid=?1", zDb, zPrefix); @@ -208866,22 +212081,27 @@ static int rtreeInit( } sqlite3_vtab_config(db, SQLITE_VTAB_CONSTRAINT_SUPPORT, 1); + sqlite3_vtab_config(db, SQLITE_VTAB_INNOCUOUS); + /* Allocate the sqlite3_vtab structure */ nDb = (int)strlen(argv[1]); nName = (int)strlen(argv[2]); - pRtree = (Rtree *)sqlite3_malloc64(sizeof(Rtree)+nDb+nName+2); + pRtree = (Rtree *)sqlite3_malloc64(sizeof(Rtree)+nDb+nName*2+8); if( !pRtree ){ return SQLITE_NOMEM; } - memset(pRtree, 0, sizeof(Rtree)+nDb+nName+2); + memset(pRtree, 0, sizeof(Rtree)+nDb+nName*2+8); pRtree->nBusy = 1; pRtree->base.pModule = &rtreeModule; pRtree->zDb = (char *)&pRtree[1]; pRtree->zName = &pRtree->zDb[nDb+1]; + pRtree->zNodeName = &pRtree->zName[nName+1]; pRtree->eCoordType = (u8)eCoordType; memcpy(pRtree->zDb, argv[1], nDb); memcpy(pRtree->zName, argv[2], nName); + memcpy(pRtree->zNodeName, argv[2], nName); + memcpy(&pRtree->zNodeName[nName], "_node", 6); /* Create/Connect to the underlying relational database schema. If @@ -209378,7 +212598,6 @@ static int rtreeCheckTable( ){ RtreeCheck check; /* Common context for various routines */ sqlite3_stmt *pStmt = 0; /* Used to find column count of rtree table */ - int bEnd = 0; /* True if transaction should be closed */ int nAux = 0; /* Number of extra columns. */ /* Initialize the context object */ @@ -209387,24 +212606,14 @@ static int rtreeCheckTable( check.zDb = zDb; check.zTab = zTab; - /* If there is not already an open transaction, open one now. This is - ** to ensure that the queries run as part of this integrity-check operate - ** on a consistent snapshot. */ - if( sqlite3_get_autocommit(db) ){ - check.rc = sqlite3_exec(db, "BEGIN", 0, 0, 0); - bEnd = 1; - } - /* Find the number of auxiliary columns */ - if( check.rc==SQLITE_OK ){ - pStmt = rtreeCheckPrepare(&check, "SELECT * FROM %Q.'%q_rowid'", zDb, zTab); - if( pStmt ){ - nAux = sqlite3_column_count(pStmt) - 2; - sqlite3_finalize(pStmt); - }else - if( check.rc!=SQLITE_NOMEM ){ - check.rc = SQLITE_OK; - } + pStmt = rtreeCheckPrepare(&check, "SELECT * FROM %Q.'%q_rowid'", zDb, zTab); + if( pStmt ){ + nAux = sqlite3_column_count(pStmt) - 2; + sqlite3_finalize(pStmt); + }else + if( check.rc!=SQLITE_NOMEM ){ + check.rc = SQLITE_OK; } /* Find number of dimensions in the rtree table. */ @@ -209435,15 +212644,35 @@ static int rtreeCheckTable( sqlite3_finalize(check.aCheckMapping[0]); sqlite3_finalize(check.aCheckMapping[1]); - /* If one was opened, close the transaction */ - if( bEnd ){ - int rc = sqlite3_exec(db, "END", 0, 0, 0); - if( check.rc==SQLITE_OK ) check.rc = rc; - } *pzReport = check.zReport; return check.rc; } +/* +** Implementation of the xIntegrity method for Rtree. +*/ +static int rtreeIntegrity( + sqlite3_vtab *pVtab, /* The virtual table to check */ + const char *zSchema, /* Schema in which the virtual table lives */ + const char *zName, /* Name of the virtual table */ + int isQuick, /* True for a quick_check */ + char **pzErr /* Write results here */ +){ + Rtree *pRtree = (Rtree*)pVtab; + int rc; + assert( pzErr!=0 && *pzErr==0 ); + UNUSED_PARAMETER(zSchema); + UNUSED_PARAMETER(zName); + UNUSED_PARAMETER(isQuick); + rc = rtreeCheckTable(pRtree->db, pRtree->zDb, pRtree->zName, pzErr); + if( rc==SQLITE_OK && *pzErr ){ + *pzErr = sqlite3_mprintf("In RTree %s.%s:\n%z", + pRtree->zDb, pRtree->zName, *pzErr); + if( (*pzErr)==0 ) rc = SQLITE_NOMEM; + } + return rc; +} + /* ** Usage: ** @@ -210765,24 +213994,28 @@ static int geopolyInit( (void)pAux; sqlite3_vtab_config(db, SQLITE_VTAB_CONSTRAINT_SUPPORT, 1); + sqlite3_vtab_config(db, SQLITE_VTAB_INNOCUOUS); /* Allocate the sqlite3_vtab structure */ nDb = strlen(argv[1]); nName = strlen(argv[2]); - pRtree = (Rtree *)sqlite3_malloc64(sizeof(Rtree)+nDb+nName+2); + pRtree = (Rtree *)sqlite3_malloc64(sizeof(Rtree)+nDb+nName*2+8); if( !pRtree ){ return SQLITE_NOMEM; } - memset(pRtree, 0, sizeof(Rtree)+nDb+nName+2); + memset(pRtree, 0, sizeof(Rtree)+nDb+nName*2+8); pRtree->nBusy = 1; pRtree->base.pModule = &rtreeModule; pRtree->zDb = (char *)&pRtree[1]; pRtree->zName = &pRtree->zDb[nDb+1]; + pRtree->zNodeName = &pRtree->zName[nName+1]; pRtree->eCoordType = RTREE_COORD_REAL32; pRtree->nDim = 2; pRtree->nDim2 = 4; memcpy(pRtree->zDb, argv[1], nDb); memcpy(pRtree->zName, argv[2], nName); + memcpy(pRtree->zNodeName, argv[2], nName); + memcpy(&pRtree->zNodeName[nName], "_node", 6); /* Create/Connect to the underlying relational database schema. If @@ -211196,7 +214429,6 @@ static int geopolyUpdate( } if( rc==SQLITE_OK ){ int rc2; - pRtree->iReinsertHeight = -1; rc = rtreeInsertCell(pRtree, pLeaf, &cell, 0); rc2 = nodeRelease(pRtree, pLeaf); if( rc==SQLITE_OK ){ @@ -211293,7 +214525,8 @@ static sqlite3_module geopolyModule = { rtreeSavepoint, /* xSavepoint */ 0, /* xRelease */ 0, /* xRollbackTo */ - rtreeShadowName /* xShadowName */ + rtreeShadowName, /* xShadowName */ + rtreeIntegrity /* xIntegrity */ }; static int sqlite3_geopoly_init(sqlite3 *db){ @@ -219307,7 +222540,8 @@ SQLITE_PRIVATE int sqlite3DbstatRegister(sqlite3 *db){ 0, /* xSavepoint */ 0, /* xRelease */ 0, /* xRollbackTo */ - 0 /* xShadowName */ + 0, /* xShadowName */ + 0 /* xIntegrity */ }; return sqlite3_create_module(db, "dbstat", &dbstat_module, 0); } @@ -219744,7 +222978,8 @@ SQLITE_PRIVATE int sqlite3DbpageRegister(sqlite3 *db){ 0, /* xSavepoint */ 0, /* xRelease */ 0, /* xRollbackTo */ - 0 /* xShadowName */ + 0, /* xShadowName */ + 0 /* xIntegrity */ }; return sqlite3_create_module(db, "sqlite_dbpage", &dbpage_module, 0); } @@ -219875,6 +223110,18 @@ struct sqlite3_changeset_iter { ** The data associated with each hash-table entry is a structure containing ** a subset of the initial values that the modified row contained at the ** start of the session. Or no initial values if the row was inserted. +** +** pDfltStmt: +** This is only used by the sqlite3changegroup_xxx() APIs, not by +** regular sqlite3_session objects. It is a SELECT statement that +** selects the default value for each table column. For example, +** if the table is +** +** CREATE TABLE xx(a DEFAULT 1, b, c DEFAULT 'abc') +** +** then this variable is the compiled version of: +** +** SELECT 1, NULL, 'abc' */ struct SessionTable { SessionTable *pNext; @@ -219883,10 +223130,12 @@ struct SessionTable { int bStat1; /* True if this is sqlite_stat1 */ int bRowid; /* True if this table uses rowid for PK */ const char **azCol; /* Column names */ + const char **azDflt; /* Default value expressions */ u8 *abPK; /* Array of primary key flags */ int nEntry; /* Total number of entries in hash table */ int nChange; /* Size of apChange[] array */ SessionChange **apChange; /* Hash table buckets */ + sqlite3_stmt *pDfltStmt; }; /* @@ -220055,6 +223304,7 @@ struct SessionTable { struct SessionChange { u8 op; /* One of UPDATE, DELETE, INSERT */ u8 bIndirect; /* True if this change is "indirect" */ + u16 nRecordField; /* Number of fields in aRecord[] */ int nMaxSize; /* Max size of eventual changeset record */ int nRecord; /* Number of bytes in buffer aRecord[] */ u8 *aRecord; /* Buffer containing old.* record */ @@ -220080,7 +223330,7 @@ static int sessionVarintLen(int iVal){ ** Read a varint value from aBuf[] into *piVal. Return the number of ** bytes read. */ -static int sessionVarintGet(u8 *aBuf, int *piVal){ +static int sessionVarintGet(const u8 *aBuf, int *piVal){ return getVarint32(aBuf, *piVal); } @@ -220343,9 +223593,11 @@ static int sessionPreupdateHash( ** Return the number of bytes of space occupied by the value (including ** the type byte). */ -static int sessionSerialLen(u8 *a){ - int e = *a; +static int sessionSerialLen(const u8 *a){ + int e; int n; + assert( a!=0 ); + e = *a; if( e==0 || e==0xFF ) return 1; if( e==SQLITE_NULL ) return 1; if( e==SQLITE_INTEGER || e==SQLITE_FLOAT ) return 9; @@ -220750,13 +224002,14 @@ static int sessionGrowHash( ** ** For example, if the table is declared as: ** -** CREATE TABLE tbl1(w, x, y, z, PRIMARY KEY(w, z)); +** CREATE TABLE tbl1(w, x DEFAULT 'abc', y, z, PRIMARY KEY(w, z)); ** -** Then the four output variables are populated as follows: +** Then the five output variables are populated as follows: ** ** *pnCol = 4 ** *pzTab = "tbl1" ** *pazCol = {"w", "x", "y", "z"} +** *pazDflt = {NULL, 'abc', NULL, NULL} ** *pabPK = {1, 0, 0, 1} ** ** All returned buffers are part of the same single allocation, which must @@ -220770,6 +224023,7 @@ static int sessionTableInfo( int *pnCol, /* OUT: number of columns */ const char **pzTab, /* OUT: Copy of zThis */ const char ***pazCol, /* OUT: Array of column names for table */ + const char ***pazDflt, /* OUT: Array of default value expressions */ u8 **pabPK, /* OUT: Array of booleans - true for PK col */ int *pbRowid /* OUT: True if only PK is a rowid */ ){ @@ -220782,11 +224036,18 @@ static int sessionTableInfo( int i; u8 *pAlloc = 0; char **azCol = 0; + char **azDflt = 0; u8 *abPK = 0; int bRowid = 0; /* Set to true to use rowid as PK */ assert( pazCol && pabPK ); + *pazCol = 0; + *pabPK = 0; + *pnCol = 0; + if( pzTab ) *pzTab = 0; + if( pazDflt ) *pazDflt = 0; + nThis = sqlite3Strlen30(zThis); if( nThis==12 && 0==sqlite3_stricmp("sqlite_stat1", zThis) ){ rc = sqlite3_table_column_metadata(db, zDb, zThis, 0, 0, 0, 0, 0, 0); @@ -220800,39 +224061,28 @@ static int sessionTableInfo( }else if( rc==SQLITE_ERROR ){ zPragma = sqlite3_mprintf(""); }else{ - *pazCol = 0; - *pabPK = 0; - *pnCol = 0; - if( pzTab ) *pzTab = 0; return rc; } }else{ zPragma = sqlite3_mprintf("PRAGMA '%q'.table_info('%q')", zDb, zThis); } if( !zPragma ){ - *pazCol = 0; - *pabPK = 0; - *pnCol = 0; - if( pzTab ) *pzTab = 0; return SQLITE_NOMEM; } rc = sqlite3_prepare_v2(db, zPragma, -1, &pStmt, 0); sqlite3_free(zPragma); if( rc!=SQLITE_OK ){ - *pazCol = 0; - *pabPK = 0; - *pnCol = 0; - if( pzTab ) *pzTab = 0; return rc; } nByte = nThis + 1; bRowid = (pbRowid!=0); while( SQLITE_ROW==sqlite3_step(pStmt) ){ - nByte += sqlite3_column_bytes(pStmt, 1); + nByte += sqlite3_column_bytes(pStmt, 1); /* name */ + nByte += sqlite3_column_bytes(pStmt, 4); /* dflt_value */ nDbCol++; - if( sqlite3_column_int(pStmt, 5) ) bRowid = 0; + if( sqlite3_column_int(pStmt, 5) ) bRowid = 0; /* pk */ } if( nDbCol==0 ) bRowid = 0; nDbCol += bRowid; @@ -220840,15 +224090,18 @@ static int sessionTableInfo( rc = sqlite3_reset(pStmt); if( rc==SQLITE_OK ){ - nByte += nDbCol * (sizeof(const char *) + sizeof(u8) + 1); + nByte += nDbCol * (sizeof(const char *)*2 + sizeof(u8) + 1 + 1); pAlloc = sessionMalloc64(pSession, nByte); if( pAlloc==0 ){ rc = SQLITE_NOMEM; + }else{ + memset(pAlloc, 0, nByte); } } if( rc==SQLITE_OK ){ azCol = (char **)pAlloc; - pAlloc = (u8 *)&azCol[nDbCol]; + azDflt = (char**)&azCol[nDbCol]; + pAlloc = (u8 *)&azDflt[nDbCol]; abPK = (u8 *)pAlloc; pAlloc = &abPK[nDbCol]; if( pzTab ){ @@ -220868,11 +224121,21 @@ static int sessionTableInfo( } while( SQLITE_ROW==sqlite3_step(pStmt) ){ int nName = sqlite3_column_bytes(pStmt, 1); + int nDflt = sqlite3_column_bytes(pStmt, 4); const unsigned char *zName = sqlite3_column_text(pStmt, 1); + const unsigned char *zDflt = sqlite3_column_text(pStmt, 4); + if( zName==0 ) break; memcpy(pAlloc, zName, nName+1); azCol[i] = (char *)pAlloc; pAlloc += nName+1; + if( zDflt ){ + memcpy(pAlloc, zDflt, nDflt+1); + azDflt[i] = (char *)pAlloc; + pAlloc += nDflt+1; + }else{ + azDflt[i] = 0; + } abPK[i] = sqlite3_column_int(pStmt, 5); i++; } @@ -220883,14 +224146,11 @@ static int sessionTableInfo( ** free any allocation made. An error code will be returned in this case. */ if( rc==SQLITE_OK ){ - *pazCol = (const char **)azCol; + *pazCol = (const char**)azCol; + if( pazDflt ) *pazDflt = (const char**)azDflt; *pabPK = abPK; *pnCol = nDbCol; }else{ - *pazCol = 0; - *pabPK = 0; - *pnCol = 0; - if( pzTab ) *pzTab = 0; sessionFree(pSession, azCol); } if( pbRowid ) *pbRowid = bRowid; @@ -220899,10 +224159,9 @@ static int sessionTableInfo( } /* -** This function is only called from within a pre-update handler for a -** write to table pTab, part of session pSession. If this is the first -** write to this table, initalize the SessionTable.nCol, azCol[] and -** abPK[] arrays accordingly. +** This function is called to initialize the SessionTable.nCol, azCol[] +** abPK[] and azDflt[] members of SessionTable object pTab. If these +** fields are already initilialized, this function is a no-op. ** ** If an error occurs, an error code is stored in sqlite3_session.rc and ** non-zero returned. Or, if no error occurs but the table has no primary @@ -220910,15 +224169,22 @@ static int sessionTableInfo( ** indicate that updates on this table should be ignored. SessionTable.abPK ** is set to NULL in this case. */ -static int sessionInitTable(sqlite3_session *pSession, SessionTable *pTab){ +static int sessionInitTable( + sqlite3_session *pSession, /* Optional session handle */ + SessionTable *pTab, /* Table object to initialize */ + sqlite3 *db, /* Database handle to read schema from */ + const char *zDb /* Name of db - "main", "temp" etc. */ +){ + int rc = SQLITE_OK; + if( pTab->nCol==0 ){ u8 *abPK; assert( pTab->azCol==0 || pTab->abPK==0 ); - pSession->rc = sessionTableInfo(pSession, pSession->db, pSession->zDb, - pTab->zName, &pTab->nCol, 0, &pTab->azCol, &abPK, - (pSession->bImplicitPK ? &pTab->bRowid : 0) + rc = sessionTableInfo(pSession, db, zDb, + pTab->zName, &pTab->nCol, 0, &pTab->azCol, &pTab->azDflt, &abPK, + ((pSession==0 || pSession->bImplicitPK) ? &pTab->bRowid : 0) ); - if( pSession->rc==SQLITE_OK ){ + if( rc==SQLITE_OK ){ int i; for(i=0; inCol; i++){ if( abPK[i] ){ @@ -220930,14 +224196,321 @@ static int sessionInitTable(sqlite3_session *pSession, SessionTable *pTab){ pTab->bStat1 = 1; } - if( pSession->bEnableSize ){ + if( pSession && pSession->bEnableSize ){ pSession->nMaxChangesetSize += ( 1 + sessionVarintLen(pTab->nCol) + pTab->nCol + strlen(pTab->zName)+1 ); } } } - return (pSession->rc || pTab->abPK==0); + + if( pSession ){ + pSession->rc = rc; + return (rc || pTab->abPK==0); + } + return rc; +} + +/* +** Re-initialize table object pTab. +*/ +static int sessionReinitTable(sqlite3_session *pSession, SessionTable *pTab){ + int nCol = 0; + const char **azCol = 0; + const char **azDflt = 0; + u8 *abPK = 0; + int bRowid = 0; + + assert( pSession->rc==SQLITE_OK ); + + pSession->rc = sessionTableInfo(pSession, pSession->db, pSession->zDb, + pTab->zName, &nCol, 0, &azCol, &azDflt, &abPK, + (pSession->bImplicitPK ? &bRowid : 0) + ); + if( pSession->rc==SQLITE_OK ){ + if( pTab->nCol>nCol || pTab->bRowid!=bRowid ){ + pSession->rc = SQLITE_SCHEMA; + }else{ + int ii; + int nOldCol = pTab->nCol; + for(ii=0; iinCol ){ + if( pTab->abPK[ii]!=abPK[ii] ){ + pSession->rc = SQLITE_SCHEMA; + } + }else if( abPK[ii] ){ + pSession->rc = SQLITE_SCHEMA; + } + } + + if( pSession->rc==SQLITE_OK ){ + const char **a = pTab->azCol; + pTab->azCol = azCol; + pTab->nCol = nCol; + pTab->azDflt = azDflt; + pTab->abPK = abPK; + azCol = a; + } + if( pSession->bEnableSize ){ + pSession->nMaxChangesetSize += (nCol - nOldCol); + pSession->nMaxChangesetSize += sessionVarintLen(nCol); + pSession->nMaxChangesetSize -= sessionVarintLen(nOldCol); + } + } + } + + sqlite3_free((char*)azCol); + return pSession->rc; +} + +/* +** Session-change object (*pp) contains an old.* record with fewer than +** nCol fields. This function updates it with the default values for +** the missing fields. +*/ +static void sessionUpdateOneChange( + sqlite3_session *pSession, /* For memory accounting */ + int *pRc, /* IN/OUT: Error code */ + SessionChange **pp, /* IN/OUT: Change object to update */ + int nCol, /* Number of columns now in table */ + sqlite3_stmt *pDflt /* SELECT */ +){ + SessionChange *pOld = *pp; + + while( pOld->nRecordFieldnRecordField; + int eType = sqlite3_column_type(pDflt, iField); + switch( eType ){ + case SQLITE_NULL: + nIncr = 1; + break; + case SQLITE_INTEGER: + case SQLITE_FLOAT: + nIncr = 9; + break; + default: { + int n = sqlite3_column_bytes(pDflt, iField); + nIncr = 1 + sessionVarintLen(n) + n; + assert( eType==SQLITE_TEXT || eType==SQLITE_BLOB ); + break; + } + } + + nByte = nIncr + (sizeof(SessionChange) + pOld->nRecord); + pNew = sessionMalloc64(pSession, nByte); + if( pNew==0 ){ + *pRc = SQLITE_NOMEM; + return; + }else{ + memcpy(pNew, pOld, sizeof(SessionChange)); + pNew->aRecord = (u8*)&pNew[1]; + memcpy(pNew->aRecord, pOld->aRecord, pOld->nRecord); + pNew->aRecord[pNew->nRecord++] = (u8)eType; + switch( eType ){ + case SQLITE_INTEGER: { + i64 iVal = sqlite3_column_int64(pDflt, iField); + sessionPutI64(&pNew->aRecord[pNew->nRecord], iVal); + pNew->nRecord += 8; + break; + } + + case SQLITE_FLOAT: { + double rVal = sqlite3_column_double(pDflt, iField); + i64 iVal = 0; + memcpy(&iVal, &rVal, sizeof(rVal)); + sessionPutI64(&pNew->aRecord[pNew->nRecord], iVal); + pNew->nRecord += 8; + break; + } + + case SQLITE_TEXT: { + int n = sqlite3_column_bytes(pDflt, iField); + const char *z = (const char*)sqlite3_column_text(pDflt, iField); + pNew->nRecord += sessionVarintPut(&pNew->aRecord[pNew->nRecord], n); + memcpy(&pNew->aRecord[pNew->nRecord], z, n); + pNew->nRecord += n; + break; + } + + case SQLITE_BLOB: { + int n = sqlite3_column_bytes(pDflt, iField); + const u8 *z = (const u8*)sqlite3_column_blob(pDflt, iField); + pNew->nRecord += sessionVarintPut(&pNew->aRecord[pNew->nRecord], n); + memcpy(&pNew->aRecord[pNew->nRecord], z, n); + pNew->nRecord += n; + break; + } + + default: + assert( eType==SQLITE_NULL ); + break; + } + + sessionFree(pSession, pOld); + *pp = pOld = pNew; + pNew->nRecordField++; + pNew->nMaxSize += nIncr; + if( pSession ){ + pSession->nMaxChangesetSize += nIncr; + } + } + } +} + +/* +** Ensure that there is room in the buffer to append nByte bytes of data. +** If not, use sqlite3_realloc() to grow the buffer so that there is. +** +** If successful, return zero. Otherwise, if an OOM condition is encountered, +** set *pRc to SQLITE_NOMEM and return non-zero. +*/ +static int sessionBufferGrow(SessionBuffer *p, i64 nByte, int *pRc){ +#define SESSION_MAX_BUFFER_SZ (0x7FFFFF00 - 1) + i64 nReq = p->nBuf + nByte; + if( *pRc==SQLITE_OK && nReq>p->nAlloc ){ + u8 *aNew; + i64 nNew = p->nAlloc ? p->nAlloc : 128; + + do { + nNew = nNew*2; + }while( nNewSESSION_MAX_BUFFER_SZ ){ + nNew = SESSION_MAX_BUFFER_SZ; + if( nNewaBuf, nNew); + if( 0==aNew ){ + *pRc = SQLITE_NOMEM; + }else{ + p->aBuf = aNew; + p->nAlloc = nNew; + } + } + return (*pRc!=SQLITE_OK); +} + + +/* +** This function is a no-op if *pRc is other than SQLITE_OK when it is +** called. Otherwise, append a string to the buffer. All bytes in the string +** up to (but not including) the nul-terminator are written to the buffer. +** +** If an OOM condition is encountered, set *pRc to SQLITE_NOMEM before +** returning. +*/ +static void sessionAppendStr( + SessionBuffer *p, + const char *zStr, + int *pRc +){ + int nStr = sqlite3Strlen30(zStr); + if( 0==sessionBufferGrow(p, nStr+1, pRc) ){ + memcpy(&p->aBuf[p->nBuf], zStr, nStr); + p->nBuf += nStr; + p->aBuf[p->nBuf] = 0x00; + } +} + +/* +** Format a string using printf() style formatting and then append it to the +** buffer using sessionAppendString(). +*/ +static void sessionAppendPrintf( + SessionBuffer *p, /* Buffer to append to */ + int *pRc, + const char *zFmt, + ... +){ + if( *pRc==SQLITE_OK ){ + char *zApp = 0; + va_list ap; + va_start(ap, zFmt); + zApp = sqlite3_vmprintf(zFmt, ap); + if( zApp==0 ){ + *pRc = SQLITE_NOMEM; + }else{ + sessionAppendStr(p, zApp, pRc); + } + va_end(ap); + sqlite3_free(zApp); + } +} + +/* +** Prepare a statement against database handle db that SELECTs a single +** row containing the default values for each column in table pTab. For +** example, if pTab is declared as: +** +** CREATE TABLE pTab(a PRIMARY KEY, b DEFAULT 123, c DEFAULT 'abcd'); +** +** Then this function prepares and returns the SQL statement: +** +** SELECT NULL, 123, 'abcd'; +*/ +static int sessionPrepareDfltStmt( + sqlite3 *db, /* Database handle */ + SessionTable *pTab, /* Table to prepare statement for */ + sqlite3_stmt **ppStmt /* OUT: Statement handle */ +){ + SessionBuffer sql = {0,0,0}; + int rc = SQLITE_OK; + const char *zSep = " "; + int ii = 0; + + *ppStmt = 0; + sessionAppendPrintf(&sql, &rc, "SELECT"); + for(ii=0; iinCol; ii++){ + const char *zDflt = pTab->azDflt[ii] ? pTab->azDflt[ii] : "NULL"; + sessionAppendPrintf(&sql, &rc, "%s%s", zSep, zDflt); + zSep = ", "; + } + if( rc==SQLITE_OK ){ + rc = sqlite3_prepare_v2(db, (const char*)sql.aBuf, -1, ppStmt, 0); + } + sqlite3_free(sql.aBuf); + + return rc; +} + +/* +** Table pTab has one or more existing change-records with old.* records +** with fewer than pTab->nCol columns. This function updates all such +** change-records with the default values for the missing columns. +*/ +static int sessionUpdateChanges(sqlite3_session *pSession, SessionTable *pTab){ + sqlite3_stmt *pStmt = 0; + int rc = pSession->rc; + + rc = sessionPrepareDfltStmt(pSession->db, pTab, &pStmt); + if( rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pStmt) ){ + int ii = 0; + SessionChange **pp = 0; + for(ii=0; iinChange; ii++){ + for(pp=&pTab->apChange[ii]; *pp; pp=&((*pp)->pNext)){ + if( (*pp)->nRecordField!=pTab->nCol ){ + sessionUpdateOneChange(pSession, &rc, pp, pTab->nCol, pStmt); + } + } + } + } + + pSession->rc = rc; + rc = sqlite3_finalize(pStmt); + if( pSession->rc==SQLITE_OK ) pSession->rc = rc; + return pSession->rc; } /* @@ -221100,16 +224673,22 @@ static void sessionPreupdateOneChange( int iHash; int bNull = 0; int rc = SQLITE_OK; + int nExpect = 0; SessionStat1Ctx stat1 = {{0,0,0,0,0},0}; if( pSession->rc ) return; /* Load table details if required */ - if( sessionInitTable(pSession, pTab) ) return; + if( sessionInitTable(pSession, pTab, pSession->db, pSession->zDb) ) return; /* Check the number of columns in this xPreUpdate call matches the ** number of columns in the table. */ - if( (pTab->nCol-pTab->bRowid)!=pSession->hook.xCount(pSession->hook.pCtx) ){ + nExpect = pSession->hook.xCount(pSession->hook.pCtx); + if( (pTab->nCol-pTab->bRowid)nCol-pTab->bRowid)!=nExpect ){ pSession->rc = SQLITE_SCHEMA; return; } @@ -221186,7 +224765,7 @@ static void sessionPreupdateOneChange( } /* Allocate the change object */ - pC = (SessionChange *)sessionMalloc64(pSession, nByte); + pC = (SessionChange*)sessionMalloc64(pSession, nByte); if( !pC ){ rc = SQLITE_NOMEM; goto error_out; @@ -221219,6 +224798,7 @@ static void sessionPreupdateOneChange( if( pSession->bIndirect || pSession->hook.xDepth(pSession->hook.pCtx) ){ pC->bIndirect = 1; } + pC->nRecordField = pTab->nCol; pC->nRecord = nByte; pC->op = op; pC->pNext = pTab->apChange[iHash]; @@ -221598,7 +225178,7 @@ SQLITE_API int sqlite3session_diff( /* Locate and if necessary initialize the target table object */ rc = sessionFindTable(pSession, zTbl, &pTo); if( pTo==0 ) goto diff_out; - if( sessionInitTable(pSession, pTo) ){ + if( sessionInitTable(pSession, pTo, pSession->db, pSession->zDb) ){ rc = pSession->rc; goto diff_out; } @@ -221611,7 +225191,7 @@ SQLITE_API int sqlite3session_diff( int bRowid = 0; u8 *abPK; const char **azCol = 0; - rc = sessionTableInfo(0, db, zFrom, zTbl, &nCol, 0, &azCol, &abPK, + rc = sessionTableInfo(0, db, zFrom, zTbl, &nCol, 0, &azCol, 0, &abPK, pSession->bImplicitPK ? &bRowid : 0 ); if( rc==SQLITE_OK ){ @@ -221726,6 +225306,7 @@ static void sessionDeleteTable(sqlite3_session *pSession, SessionTable *pList){ sessionFree(pSession, p); } } + sqlite3_finalize(pTab->pDfltStmt); sessionFree(pSession, (char*)pTab->azCol); /* cast works around VC++ bug */ sessionFree(pSession, pTab->apChange); sessionFree(pSession, pTab); @@ -221758,9 +225339,7 @@ SQLITE_API void sqlite3session_delete(sqlite3_session *pSession){ ** associated hash-tables. */ sessionDeleteTable(pSession, pSession->pTable); - /* Assert that all allocations have been freed and then free the - ** session object itself. */ - assert( pSession->nMalloc==0 ); + /* Free the session object. */ sqlite3_free(pSession); } @@ -221831,48 +225410,6 @@ SQLITE_API int sqlite3session_attach( return rc; } -/* -** Ensure that there is room in the buffer to append nByte bytes of data. -** If not, use sqlite3_realloc() to grow the buffer so that there is. -** -** If successful, return zero. Otherwise, if an OOM condition is encountered, -** set *pRc to SQLITE_NOMEM and return non-zero. -*/ -static int sessionBufferGrow(SessionBuffer *p, i64 nByte, int *pRc){ -#define SESSION_MAX_BUFFER_SZ (0x7FFFFF00 - 1) - i64 nReq = p->nBuf + nByte; - if( *pRc==SQLITE_OK && nReq>p->nAlloc ){ - u8 *aNew; - i64 nNew = p->nAlloc ? p->nAlloc : 128; - - do { - nNew = nNew*2; - }while( nNewSESSION_MAX_BUFFER_SZ ){ - nNew = SESSION_MAX_BUFFER_SZ; - if( nNewaBuf, nNew); - if( 0==aNew ){ - *pRc = SQLITE_NOMEM; - }else{ - p->aBuf = aNew; - p->nAlloc = nNew; - } - } - return (*pRc!=SQLITE_OK); -} - /* ** Append the value passed as the second argument to the buffer passed ** as the first. @@ -221941,27 +225478,6 @@ static void sessionAppendBlob( } } -/* -** This function is a no-op if *pRc is other than SQLITE_OK when it is -** called. Otherwise, append a string to the buffer. All bytes in the string -** up to (but not including) the nul-terminator are written to the buffer. -** -** If an OOM condition is encountered, set *pRc to SQLITE_NOMEM before -** returning. -*/ -static void sessionAppendStr( - SessionBuffer *p, - const char *zStr, - int *pRc -){ - int nStr = sqlite3Strlen30(zStr); - if( 0==sessionBufferGrow(p, nStr+1, pRc) ){ - memcpy(&p->aBuf[p->nBuf], zStr, nStr); - p->nBuf += nStr; - p->aBuf[p->nBuf] = 0x00; - } -} - /* ** This function is a no-op if *pRc is other than SQLITE_OK when it is ** called. Otherwise, append the string representation of integer iVal @@ -221980,27 +225496,6 @@ static void sessionAppendInteger( sessionAppendStr(p, aBuf, pRc); } -static void sessionAppendPrintf( - SessionBuffer *p, /* Buffer to append to */ - int *pRc, - const char *zFmt, - ... -){ - if( *pRc==SQLITE_OK ){ - char *zApp = 0; - va_list ap; - va_start(ap, zFmt); - zApp = sqlite3_vmprintf(zFmt, ap); - if( zApp==0 ){ - *pRc = SQLITE_NOMEM; - }else{ - sessionAppendStr(p, zApp, pRc); - } - va_end(ap); - sqlite3_free(zApp); - } -} - /* ** This function is a no-op if *pRc is other than SQLITE_OK when it is ** called. Otherwise, append the string zStr enclosed in quotes (") and @@ -222491,26 +225986,16 @@ static int sessionGenerateChangeset( for(pTab=pSession->pTable; rc==SQLITE_OK && pTab; pTab=pTab->pNext){ if( pTab->nEntry ){ const char *zName = pTab->zName; - int nCol = 0; /* Number of columns in table */ - u8 *abPK = 0; /* Primary key array */ - const char **azCol = 0; /* Table columns */ int i; /* Used to iterate through hash buckets */ sqlite3_stmt *pSel = 0; /* SELECT statement to query table pTab */ int nRewind = buf.nBuf; /* Initial size of write buffer */ int nNoop; /* Size of buffer after writing tbl header */ - int bRowid = 0; + int nOldCol = pTab->nCol; /* Check the table schema is still Ok. */ - rc = sessionTableInfo( - 0, db, pSession->zDb, zName, &nCol, 0, &azCol, &abPK, - (pSession->bImplicitPK ? &bRowid : 0) - ); - if( rc==SQLITE_OK && ( - pTab->nCol!=nCol - || pTab->bRowid!=bRowid - || memcmp(abPK, pTab->abPK, nCol) - )){ - rc = SQLITE_SCHEMA; + rc = sessionReinitTable(pSession, pTab); + if( rc==SQLITE_OK && pTab->nCol!=nOldCol ){ + rc = sessionUpdateChanges(pSession, pTab); } /* Write a table header */ @@ -222518,8 +226003,8 @@ static int sessionGenerateChangeset( /* Build and compile a statement to execute: */ if( rc==SQLITE_OK ){ - rc = sessionSelectStmt( - db, 0, pSession->zDb, zName, bRowid, nCol, azCol, abPK, &pSel + rc = sessionSelectStmt(db, 0, pSession->zDb, + zName, pTab->bRowid, pTab->nCol, pTab->azCol, pTab->abPK, &pSel ); } @@ -222528,22 +226013,22 @@ static int sessionGenerateChangeset( SessionChange *p; /* Used to iterate through changes */ for(p=pTab->apChange[i]; rc==SQLITE_OK && p; p=p->pNext){ - rc = sessionSelectBind(pSel, nCol, abPK, p); + rc = sessionSelectBind(pSel, pTab->nCol, pTab->abPK, p); if( rc!=SQLITE_OK ) continue; if( sqlite3_step(pSel)==SQLITE_ROW ){ if( p->op==SQLITE_INSERT ){ int iCol; sessionAppendByte(&buf, SQLITE_INSERT, &rc); sessionAppendByte(&buf, p->bIndirect, &rc); - for(iCol=0; iColnCol; iCol++){ sessionAppendCol(&buf, pSel, iCol, &rc); } }else{ - assert( abPK!=0 ); /* Because sessionSelectStmt() returned ok */ - rc = sessionAppendUpdate(&buf, bPatchset, pSel, p, abPK); + assert( pTab->abPK!=0 ); + rc = sessionAppendUpdate(&buf, bPatchset, pSel, p, pTab->abPK); } }else if( p->op!=SQLITE_INSERT ){ - rc = sessionAppendDelete(&buf, bPatchset, p, nCol, abPK); + rc = sessionAppendDelete(&buf, bPatchset, p, pTab->nCol,pTab->abPK); } if( rc==SQLITE_OK ){ rc = sqlite3_reset(pSel); @@ -222568,7 +226053,6 @@ static int sessionGenerateChangeset( if( buf.nBuf==nNoop ){ buf.nBuf = nRewind; } - sqlite3_free((char*)azCol); /* cast works around VC++ bug */ } } @@ -224697,7 +228181,7 @@ static int sessionChangesetApply( sqlite3changeset_pk(pIter, &abPK, 0); rc = sessionTableInfo(0, db, "main", zNew, - &sApply.nCol, &zTab, &sApply.azCol, &sApply.abPK, &sApply.bRowid + &sApply.nCol, &zTab, &sApply.azCol, 0, &sApply.abPK, &sApply.bRowid ); if( rc!=SQLITE_OK ) break; for(i=0; iflags & SQLITE_FkNoAction; + + if( flags & SQLITE_CHANGESETAPPLY_FKNOACTION ){ + db->flags |= ((u64)SQLITE_FkNoAction); + db->aDb[0].pSchema->schema_cookie -= 32; + } + if( rc==SQLITE_OK ){ rc = sessionChangesetApply( db, pIter, xFilter, xConflict, pCtx, ppRebase, pnRebase, flags ); } + + if( (flags & SQLITE_CHANGESETAPPLY_FKNOACTION) && savedFlag==0 ){ + assert( db->flags & SQLITE_FkNoAction ); + db->flags &= ~((u64)SQLITE_FkNoAction); + db->aDb[0].pSchema->schema_cookie -= 32; + } return rc; } @@ -224921,6 +228418,9 @@ struct sqlite3_changegroup { int rc; /* Error code */ int bPatch; /* True to accumulate patchsets */ SessionTable *pList; /* List of tables in current patch */ + + sqlite3 *db; /* Configured by changegroup_schema() */ + char *zDb; /* Configured by changegroup_schema() */ }; /* @@ -224941,6 +228441,7 @@ static int sessionChangeMerge( ){ SessionChange *pNew = 0; int rc = SQLITE_OK; + assert( aRec!=0 ); if( !pExist ){ pNew = (SessionChange *)sqlite3_malloc64(sizeof(SessionChange) + nRec); @@ -225106,6 +228607,114 @@ static int sessionChangeMerge( return rc; } +/* +** Check if a changeset entry with nCol columns and the PK array passed +** as the final argument to this function is compatible with SessionTable +** pTab. If so, return 1. Otherwise, if they are incompatible in some way, +** return 0. +*/ +static int sessionChangesetCheckCompat( + SessionTable *pTab, + int nCol, + u8 *abPK +){ + if( pTab->azCol && nColnCol ){ + int ii; + for(ii=0; iinCol; ii++){ + u8 bPK = (ii < nCol) ? abPK[ii] : 0; + if( pTab->abPK[ii]!=bPK ) return 0; + } + return 1; + } + return (pTab->nCol==nCol && 0==memcmp(abPK, pTab->abPK, nCol)); +} + +static int sessionChangesetExtendRecord( + sqlite3_changegroup *pGrp, + SessionTable *pTab, + int nCol, + int op, + const u8 *aRec, + int nRec, + SessionBuffer *pOut +){ + int rc = SQLITE_OK; + int ii = 0; + + assert( pTab->azCol ); + assert( nColnCol ); + + pOut->nBuf = 0; + if( op==SQLITE_INSERT || (op==SQLITE_DELETE && pGrp->bPatch==0) ){ + /* Append the missing default column values to the record. */ + sessionAppendBlob(pOut, aRec, nRec, &rc); + if( rc==SQLITE_OK && pTab->pDfltStmt==0 ){ + rc = sessionPrepareDfltStmt(pGrp->db, pTab, &pTab->pDfltStmt); + } + for(ii=nCol; rc==SQLITE_OK && iinCol; ii++){ + int eType = sqlite3_column_type(pTab->pDfltStmt, ii); + sessionAppendByte(pOut, eType, &rc); + switch( eType ){ + case SQLITE_FLOAT: + case SQLITE_INTEGER: { + i64 iVal; + if( eType==SQLITE_INTEGER ){ + iVal = sqlite3_column_int64(pTab->pDfltStmt, ii); + }else{ + double rVal = sqlite3_column_int64(pTab->pDfltStmt, ii); + memcpy(&iVal, &rVal, sizeof(i64)); + } + if( SQLITE_OK==sessionBufferGrow(pOut, 8, &rc) ){ + sessionPutI64(&pOut->aBuf[pOut->nBuf], iVal); + } + break; + } + + case SQLITE_BLOB: + case SQLITE_TEXT: { + int n = sqlite3_column_bytes(pTab->pDfltStmt, ii); + sessionAppendVarint(pOut, n, &rc); + if( eType==SQLITE_TEXT ){ + const u8 *z = (const u8*)sqlite3_column_text(pTab->pDfltStmt, ii); + sessionAppendBlob(pOut, z, n, &rc); + }else{ + const u8 *z = (const u8*)sqlite3_column_blob(pTab->pDfltStmt, ii); + sessionAppendBlob(pOut, z, n, &rc); + } + break; + } + + default: + assert( eType==SQLITE_NULL ); + break; + } + } + }else if( op==SQLITE_UPDATE ){ + /* Append missing "undefined" entries to the old.* record. And, if this + ** is an UPDATE, to the new.* record as well. */ + int iOff = 0; + if( pGrp->bPatch==0 ){ + for(ii=0; iinCol-nCol); ii++){ + sessionAppendByte(pOut, 0x00, &rc); + } + } + + sessionAppendBlob(pOut, &aRec[iOff], nRec-iOff, &rc); + for(ii=0; ii<(pTab->nCol-nCol); ii++){ + sessionAppendByte(pOut, 0x00, &rc); + } + }else{ + assert( op==SQLITE_DELETE && pGrp->bPatch ); + sessionAppendBlob(pOut, aRec, nRec, &rc); + } + + return rc; +} + /* ** Add all changes in the changeset traversed by the iterator passed as ** the first argument to the changegroup hash tables. @@ -225119,6 +228728,7 @@ static int sessionChangesetToHash( int nRec; int rc = SQLITE_OK; SessionTable *pTab = 0; + SessionBuffer rec = {0, 0, 0}; while( SQLITE_ROW==sessionChangesetNext(pIter, &aRec, &nRec, 0) ){ const char *zNew; @@ -225130,6 +228740,9 @@ static int sessionChangesetToHash( SessionChange *pExist = 0; SessionChange **pp; + /* Ensure that only changesets, or only patchsets, but not a mixture + ** of both, are being combined. It is an error to try to combine a + ** changeset and a patchset. */ if( pGrp->pList==0 ){ pGrp->bPatch = pIter->bPatchset; }else if( pIter->bPatchset!=pGrp->bPatch ){ @@ -225162,18 +228775,38 @@ static int sessionChangesetToHash( pTab->zName = (char*)&pTab->abPK[nCol]; memcpy(pTab->zName, zNew, nNew+1); + if( pGrp->db ){ + pTab->nCol = 0; + rc = sessionInitTable(0, pTab, pGrp->db, pGrp->zDb); + if( rc ){ + assert( pTab->azCol==0 ); + sqlite3_free(pTab); + break; + } + } + /* The new object must be linked on to the end of the list, not ** simply added to the start of it. This is to ensure that the ** tables within the output of sqlite3changegroup_output() are in ** the right order. */ for(ppTab=&pGrp->pList; *ppTab; ppTab=&(*ppTab)->pNext); *ppTab = pTab; - }else if( pTab->nCol!=nCol || memcmp(pTab->abPK, abPK, nCol) ){ + } + + if( !sessionChangesetCheckCompat(pTab, nCol, abPK) ){ rc = SQLITE_SCHEMA; break; } } + if( nColnCol ){ + assert( pGrp->db ); + rc = sessionChangesetExtendRecord(pGrp, pTab, nCol, op, aRec, nRec, &rec); + if( rc ) break; + aRec = rec.aBuf; + nRec = rec.nBuf; + } + if( sessionGrowHash(0, pIter->bPatchset, pTab) ){ rc = SQLITE_NOMEM; break; @@ -225211,6 +228844,7 @@ static int sessionChangesetToHash( } } + sqlite3_free(rec.aBuf); if( rc==SQLITE_OK ) rc = pIter->rc; return rc; } @@ -225297,6 +228931,31 @@ SQLITE_API int sqlite3changegroup_new(sqlite3_changegroup **pp){ return rc; } +/* +** Provide a database schema to the changegroup object. +*/ +SQLITE_API int sqlite3changegroup_schema( + sqlite3_changegroup *pGrp, + sqlite3 *db, + const char *zDb +){ + int rc = SQLITE_OK; + + if( pGrp->pList || pGrp->db ){ + /* Cannot add a schema after one or more calls to sqlite3changegroup_add(), + ** or after sqlite3changegroup_schema() has already been called. */ + rc = SQLITE_MISUSE; + }else{ + pGrp->zDb = sqlite3_mprintf("%s", zDb); + if( pGrp->zDb==0 ){ + rc = SQLITE_NOMEM; + }else{ + pGrp->db = db; + } + } + return rc; +} + /* ** Add the changeset currently stored in buffer pData, size nData bytes, ** to changeset-group p. @@ -225360,6 +229019,7 @@ SQLITE_API int sqlite3changegroup_output_strm( */ SQLITE_API void sqlite3changegroup_delete(sqlite3_changegroup *pGrp){ if( pGrp ){ + sqlite3_free(pGrp->zDb); sessionDeleteTable(0, pGrp->pList); sqlite3_free(pGrp); } @@ -225892,8 +229552,11 @@ struct Fts5PhraseIter { ** created with the "columnsize=0" option. ** ** xColumnText: -** This function attempts to retrieve the text of column iCol of the -** current document. If successful, (*pz) is set to point to a buffer +** If parameter iCol is less than zero, or greater than or equal to the +** number of columns in the table, SQLITE_RANGE is returned. +** +** Otherwise, this function attempts to retrieve the text of column iCol of +** the current document. If successful, (*pz) is set to point to a buffer ** containing the text in utf-8 encoding, (*pn) is set to the size in bytes ** (not characters) of the buffer and SQLITE_OK is returned. Otherwise, ** if an error occurs, an SQLite error code is returned and the final values @@ -225903,8 +229566,10 @@ struct Fts5PhraseIter { ** Returns the number of phrases in the current query expression. ** ** xPhraseSize: -** Returns the number of tokens in phrase iPhrase of the query. Phrases -** are numbered starting from zero. +** If parameter iCol is less than zero, or greater than or equal to the +** number of phrases in the current query, as returned by xPhraseCount, +** 0 is returned. Otherwise, this function returns the number of tokens in +** phrase iPhrase of the query. Phrases are numbered starting from zero. ** ** xInstCount: ** Set *pnInst to the total number of occurrences of all phrases within @@ -225920,12 +229585,13 @@ struct Fts5PhraseIter { ** Query for the details of phrase match iIdx within the current row. ** Phrase matches are numbered starting from zero, so the iIdx argument ** should be greater than or equal to zero and smaller than the value -** output by xInstCount(). +** output by xInstCount(). If iIdx is less than zero or greater than +** or equal to the value returned by xInstCount(), SQLITE_RANGE is returned. ** -** Usually, output parameter *piPhrase is set to the phrase number, *piCol +** Otherwise, output parameter *piPhrase is set to the phrase number, *piCol ** to the column in which it occurs and *piOff the token offset of the -** first token of the phrase. Returns SQLITE_OK if successful, or an error -** code (i.e. SQLITE_NOMEM) if an error occurs. +** first token of the phrase. SQLITE_OK is returned if successful, or an +** error code (i.e. SQLITE_NOMEM) if an error occurs. ** ** This API can be quite slow if used with an FTS5 table created with the ** "detail=none" or "detail=column" option. @@ -225951,6 +229617,10 @@ struct Fts5PhraseIter { ** Invoking Api.xUserData() returns a copy of the pointer passed as ** the third argument to pUserData. ** +** If parameter iPhrase is less than zero, or greater than or equal to +** the number of phrases in the query, as returned by xPhraseCount(), +** this function returns SQLITE_RANGE. +** ** If the callback function returns any value other than SQLITE_OK, the ** query is abandoned and the xQueryPhrase function returns immediately. ** If the returned value is SQLITE_DONE, xQueryPhrase returns SQLITE_OK. @@ -226065,9 +229735,42 @@ struct Fts5PhraseIter { ** ** xPhraseNextColumn() ** See xPhraseFirstColumn above. +** +** xQueryToken(pFts5, iPhrase, iToken, ppToken, pnToken) +** This is used to access token iToken of phrase iPhrase of the current +** query. Before returning, output parameter *ppToken is set to point +** to a buffer containing the requested token, and *pnToken to the +** size of this buffer in bytes. +** +** If iPhrase or iToken are less than zero, or if iPhrase is greater than +** or equal to the number of phrases in the query as reported by +** xPhraseCount(), or if iToken is equal to or greater than the number of +** tokens in the phrase, SQLITE_RANGE is returned and *ppToken and *pnToken + are both zeroed. +** +** The output text is not a copy of the query text that specified the +** token. It is the output of the tokenizer module. For tokendata=1 +** tables, this includes any embedded 0x00 and trailing data. +** +** xInstToken(pFts5, iIdx, iToken, ppToken, pnToken) +** This is used to access token iToken of phrase hit iIdx within the +** current row. If iIdx is less than zero or greater than or equal to the +** value returned by xInstCount(), SQLITE_RANGE is returned. Otherwise, +** output variable (*ppToken) is set to point to a buffer containing the +** matching document token, and (*pnToken) to the size of that buffer in +** bytes. This API is not available if the specified token matches a +** prefix query term. In that case both output variables are always set +** to 0. +** +** The output text is not a copy of the document text that was tokenized. +** It is the output of the tokenizer module. For tokendata=1 tables, this +** includes any embedded 0x00 and trailing data. +** +** This API can be quite slow if used with an FTS5 table created with the +** "detail=none" or "detail=column" option. */ struct Fts5ExtensionApi { - int iVersion; /* Currently always set to 2 */ + int iVersion; /* Currently always set to 3 */ void *(*xUserData)(Fts5Context*); @@ -226102,6 +229805,13 @@ struct Fts5ExtensionApi { int (*xPhraseFirstColumn)(Fts5Context*, int iPhrase, Fts5PhraseIter*, int*); void (*xPhraseNextColumn)(Fts5Context*, Fts5PhraseIter*, int *piCol); + + /* Below this point are iVersion>=3 only */ + int (*xQueryToken)(Fts5Context*, + int iPhrase, int iToken, + const char **ppToken, int *pnToken + ); + int (*xInstToken)(Fts5Context*, int iIdx, int iToken, const char**, int*); }; /* @@ -226576,6 +230286,7 @@ struct Fts5Config { char *zContent; /* content table */ char *zContentRowid; /* "content_rowid=" option value */ int bColumnsize; /* "columnsize=" option value (dflt==1) */ + int bTokendata; /* "tokendata=" option value (dflt==0) */ int eDetail; /* FTS5_DETAIL_XXX value */ char *zContentExprlist; Fts5Tokenizer *pTok; @@ -226764,17 +230475,19 @@ struct Fts5IndexIter { /* ** Values used as part of the flags argument passed to IndexQuery(). */ -#define FTS5INDEX_QUERY_PREFIX 0x0001 /* Prefix query */ -#define FTS5INDEX_QUERY_DESC 0x0002 /* Docs in descending rowid order */ -#define FTS5INDEX_QUERY_TEST_NOIDX 0x0004 /* Do not use prefix index */ -#define FTS5INDEX_QUERY_SCAN 0x0008 /* Scan query (fts5vocab) */ +#define FTS5INDEX_QUERY_PREFIX 0x0001 /* Prefix query */ +#define FTS5INDEX_QUERY_DESC 0x0002 /* Docs in descending rowid order */ +#define FTS5INDEX_QUERY_TEST_NOIDX 0x0004 /* Do not use prefix index */ +#define FTS5INDEX_QUERY_SCAN 0x0008 /* Scan query (fts5vocab) */ /* The following are used internally by the fts5_index.c module. They are ** defined here only to make it easier to avoid clashes with the flags ** above. */ -#define FTS5INDEX_QUERY_SKIPEMPTY 0x0010 -#define FTS5INDEX_QUERY_NOOUTPUT 0x0020 -#define FTS5INDEX_QUERY_SKIPHASH 0x0040 +#define FTS5INDEX_QUERY_SKIPEMPTY 0x0010 +#define FTS5INDEX_QUERY_NOOUTPUT 0x0020 +#define FTS5INDEX_QUERY_SKIPHASH 0x0040 +#define FTS5INDEX_QUERY_NOTOKENDATA 0x0080 +#define FTS5INDEX_QUERY_SCANONETERM 0x0100 /* ** Create/destroy an Fts5Index object. @@ -226843,6 +230556,10 @@ static void *sqlite3Fts5StructureRef(Fts5Index*); static void sqlite3Fts5StructureRelease(void*); static int sqlite3Fts5StructureTest(Fts5Index*, void*); +/* +** Used by xInstToken(): +*/ +static int sqlite3Fts5IterToken(Fts5IndexIter*, i64, int, int, const char**, int*); /* ** Insert or remove data to or from the index. Each time a document is @@ -226920,6 +230637,13 @@ static int sqlite3Fts5IndexLoadConfig(Fts5Index *p); static int sqlite3Fts5IndexGetOrigin(Fts5Index *p, i64 *piOrigin); static int sqlite3Fts5IndexContentlessDelete(Fts5Index *p, i64 iOrigin, i64 iRowid); +static void sqlite3Fts5IndexIterClearTokendata(Fts5IndexIter*); + +/* Used to populate hash tables for xInstToken in detail=none/column mode. */ +static int sqlite3Fts5IndexIterWriteTokendata( + Fts5IndexIter*, const char*, int, i64 iRowid, int iCol, int iOff +); + /* ** End of interface to code in fts5_index.c. **************************************************************************/ @@ -227025,6 +230749,7 @@ static void sqlite3Fts5HashScanNext(Fts5Hash*); static int sqlite3Fts5HashScanEof(Fts5Hash*); static void sqlite3Fts5HashScanEntry(Fts5Hash *, const char **pzTerm, /* OUT: term (nul-terminated) */ + int *pnTerm, /* OUT: Size of term in bytes */ const u8 **ppDoclist, /* OUT: pointer to doclist */ int *pnDoclist /* OUT: size of doclist in bytes */ ); @@ -227151,6 +230876,10 @@ static int sqlite3Fts5ExprClonePhrase(Fts5Expr*, int, Fts5Expr**); static int sqlite3Fts5ExprPhraseCollist(Fts5Expr *, int, const u8 **, int *); +static int sqlite3Fts5ExprQueryToken(Fts5Expr*, int, int, const char**, int*); +static int sqlite3Fts5ExprInstToken(Fts5Expr*, i64, int, int, int, int, const char**, int*); +static void sqlite3Fts5ExprClearTokens(Fts5Expr*); + /******************************************* ** The fts5_expr.c API above this point is used by the other hand-written ** C code in this module. The interfaces below this point are called by @@ -228865,15 +232594,19 @@ static int fts5CInstIterInit( */ typedef struct HighlightContext HighlightContext; struct HighlightContext { - CInstIter iter; /* Coalesced Instance Iterator */ - int iPos; /* Current token offset in zIn[] */ + /* Constant parameters to fts5HighlightCb() */ int iRangeStart; /* First token to include */ int iRangeEnd; /* If non-zero, last token to include */ const char *zOpen; /* Opening highlight */ const char *zClose; /* Closing highlight */ const char *zIn; /* Input text */ int nIn; /* Size of input text in bytes */ - int iOff; /* Current offset within zIn[] */ + + /* Variables modified by fts5HighlightCb() */ + CInstIter iter; /* Coalesced Instance Iterator */ + int iPos; /* Current token offset in zIn[] */ + int iOff; /* Have copied up to this offset in zIn[] */ + int bOpen; /* True if highlight is open */ char *zOut; /* Output value */ }; @@ -228906,8 +232639,8 @@ static int fts5HighlightCb( int tflags, /* Mask of FTS5_TOKEN_* flags */ const char *pToken, /* Buffer containing token */ int nToken, /* Size of token in bytes */ - int iStartOff, /* Start offset of token */ - int iEndOff /* End offset of token */ + int iStartOff, /* Start byte offset of token */ + int iEndOff /* End byte offset of token */ ){ HighlightContext *p = (HighlightContext*)pContext; int rc = SQLITE_OK; @@ -228923,30 +232656,55 @@ static int fts5HighlightCb( if( p->iRangeStart && iPos==p->iRangeStart ) p->iOff = iStartOff; } - if( iPos==p->iter.iStart ){ + /* If the parenthesis is open, and this token is not part of the current + ** phrase, and the starting byte offset of this token is past the point + ** that has currently been copied into the output buffer, close the + ** parenthesis. */ + if( p->bOpen + && (iPos<=p->iter.iStart || p->iter.iStart<0) + && iStartOff>p->iOff + ){ + fts5HighlightAppend(&rc, p, p->zClose, -1); + p->bOpen = 0; + } + + /* If this is the start of a new phrase, and the highlight is not open: + ** + ** * copy text from the input up to the start of the phrase, and + ** * open the highlight. + */ + if( iPos==p->iter.iStart && p->bOpen==0 ){ fts5HighlightAppend(&rc, p, &p->zIn[p->iOff], iStartOff - p->iOff); fts5HighlightAppend(&rc, p, p->zOpen, -1); p->iOff = iStartOff; + p->bOpen = 1; } if( iPos==p->iter.iEnd ){ - if( p->iRangeEnd>=0 && p->iter.iStartiRangeStart ){ + if( p->bOpen==0 ){ + assert( p->iRangeEnd>=0 ); fts5HighlightAppend(&rc, p, p->zOpen, -1); + p->bOpen = 1; } fts5HighlightAppend(&rc, p, &p->zIn[p->iOff], iEndOff - p->iOff); - fts5HighlightAppend(&rc, p, p->zClose, -1); p->iOff = iEndOff; + if( rc==SQLITE_OK ){ rc = fts5CInstIterNext(&p->iter); } } - if( p->iRangeEnd>=0 && iPos==p->iRangeEnd ){ + if( iPos==p->iRangeEnd ){ + if( p->bOpen ){ + if( p->iter.iStart>=0 && iPos>=p->iter.iStart ){ + fts5HighlightAppend(&rc, p, &p->zIn[p->iOff], iEndOff - p->iOff); + p->iOff = iEndOff; + } + fts5HighlightAppend(&rc, p, p->zClose, -1); + p->bOpen = 0; + } fts5HighlightAppend(&rc, p, &p->zIn[p->iOff], iEndOff - p->iOff); p->iOff = iEndOff; - if( iPos>=p->iter.iStart && iPositer.iEnd ){ - fts5HighlightAppend(&rc, p, p->zClose, -1); - } } return rc; @@ -228978,8 +232736,10 @@ static void fts5HighlightFunction( ctx.zClose = (const char*)sqlite3_value_text(apVal[2]); ctx.iRangeEnd = -1; rc = pApi->xColumnText(pFts, iCol, &ctx.zIn, &ctx.nIn); - - if( ctx.zIn ){ + if( rc==SQLITE_RANGE ){ + sqlite3_result_text(pCtx, "", -1, SQLITE_STATIC); + rc = SQLITE_OK; + }else if( ctx.zIn ){ if( rc==SQLITE_OK ){ rc = fts5CInstIterInit(pApi, pFts, iCol, &ctx.iter); } @@ -228987,6 +232747,9 @@ static void fts5HighlightFunction( if( rc==SQLITE_OK ){ rc = pApi->xTokenize(pFts, ctx.zIn, ctx.nIn, (void*)&ctx,fts5HighlightCb); } + if( ctx.bOpen ){ + fts5HighlightAppend(&rc, &ctx, ctx.zClose, -1); + } fts5HighlightAppend(&rc, &ctx, &ctx.zIn[ctx.iOff], ctx.nIn - ctx.iOff); if( rc==SQLITE_OK ){ @@ -229265,6 +233028,9 @@ static void fts5SnippetFunction( if( rc==SQLITE_OK ){ rc = pApi->xTokenize(pFts, ctx.zIn, ctx.nIn, (void*)&ctx,fts5HighlightCb); } + if( ctx.bOpen ){ + fts5HighlightAppend(&rc, &ctx, ctx.zClose, -1); + } if( ctx.iRangeEnd>=(nColSize-1) ){ fts5HighlightAppend(&rc, &ctx, &ctx.zIn[ctx.iOff], ctx.nIn - ctx.iOff); }else{ @@ -229540,6 +233306,7 @@ static void sqlite3Fts5BufferAppendBlob( ){ if( nData ){ if( fts5BufferGrow(pRc, pBuf, nData) ) return; + assert( pBuf->p!=0 ); memcpy(&pBuf->p[pBuf->n], pData, nData); pBuf->n += nData; } @@ -229641,6 +233408,7 @@ static int sqlite3Fts5PoslistNext64( i64 *piOff /* IN/OUT: Current offset */ ){ int i = *pi; + assert( a!=0 || i==0 ); if( i>=n ){ /* EOF */ *piOff = -1; @@ -229648,6 +233416,7 @@ static int sqlite3Fts5PoslistNext64( }else{ i64 iOff = *piOff; u32 iVal; + assert( a!=0 ); fts5FastGetVarint32(a, i, iVal); if( iVal<=1 ){ if( iVal==0 ){ @@ -230279,6 +234048,16 @@ static int fts5ConfigParseSpecial( return rc; } + if( sqlite3_strnicmp("tokendata", zCmd, nCmd)==0 ){ + if( (zArg[0]!='0' && zArg[0]!='1') || zArg[1]!='\0' ){ + *pzErr = sqlite3_mprintf("malformed tokendata=... directive"); + rc = SQLITE_ERROR; + }else{ + pConfig->bTokendata = (zArg[0]=='1'); + } + return rc; + } + *pzErr = sqlite3_mprintf("unrecognized option: \"%.*s\"", nCmd, zCmd); return SQLITE_ERROR; } @@ -231012,7 +234791,9 @@ struct Fts5ExprNode { struct Fts5ExprTerm { u8 bPrefix; /* True for a prefix term */ u8 bFirst; /* True if token must be first in column */ - char *zTerm; /* nul-terminated term */ + char *pTerm; /* Term data */ + int nQueryTerm; /* Effective size of term in bytes */ + int nFullTerm; /* Size of term in bytes incl. tokendata */ Fts5IndexIter *pIter; /* Iterator for this term */ Fts5ExprTerm *pSynonym; /* Pointer to first in list of synonyms */ }; @@ -231879,7 +235660,7 @@ static int fts5ExprNearInitAll( p->pIter = 0; } rc = sqlite3Fts5IndexQuery( - pExpr->pIndex, p->zTerm, (int)strlen(p->zTerm), + pExpr->pIndex, p->pTerm, p->nQueryTerm, (pTerm->bPrefix ? FTS5INDEX_QUERY_PREFIX : 0) | (pExpr->bDesc ? FTS5INDEX_QUERY_DESC : 0), pNear->pColset, @@ -232516,7 +236297,7 @@ static void fts5ExprPhraseFree(Fts5ExprPhrase *pPhrase){ Fts5ExprTerm *pSyn; Fts5ExprTerm *pNext; Fts5ExprTerm *pTerm = &pPhrase->aTerm[i]; - sqlite3_free(pTerm->zTerm); + sqlite3_free(pTerm->pTerm); sqlite3Fts5IterClose(pTerm->pIter); for(pSyn=pTerm->pSynonym; pSyn; pSyn=pNext){ pNext = pSyn->pSynonym; @@ -232614,6 +236395,7 @@ static Fts5ExprNearset *sqlite3Fts5ParseNearset( typedef struct TokenCtx TokenCtx; struct TokenCtx { Fts5ExprPhrase *pPhrase; + Fts5Config *pConfig; int rc; }; @@ -232647,8 +236429,12 @@ static int fts5ParseTokenize( rc = SQLITE_NOMEM; }else{ memset(pSyn, 0, (size_t)nByte); - pSyn->zTerm = ((char*)pSyn) + sizeof(Fts5ExprTerm) + sizeof(Fts5Buffer); - memcpy(pSyn->zTerm, pToken, nToken); + pSyn->pTerm = ((char*)pSyn) + sizeof(Fts5ExprTerm) + sizeof(Fts5Buffer); + pSyn->nFullTerm = pSyn->nQueryTerm = nToken; + if( pCtx->pConfig->bTokendata ){ + pSyn->nQueryTerm = (int)strlen(pSyn->pTerm); + } + memcpy(pSyn->pTerm, pToken, nToken); pSyn->pSynonym = pPhrase->aTerm[pPhrase->nTerm-1].pSynonym; pPhrase->aTerm[pPhrase->nTerm-1].pSynonym = pSyn; } @@ -232673,7 +236459,11 @@ static int fts5ParseTokenize( if( rc==SQLITE_OK ){ pTerm = &pPhrase->aTerm[pPhrase->nTerm++]; memset(pTerm, 0, sizeof(Fts5ExprTerm)); - pTerm->zTerm = sqlite3Fts5Strndup(&rc, pToken, nToken); + pTerm->pTerm = sqlite3Fts5Strndup(&rc, pToken, nToken); + pTerm->nFullTerm = pTerm->nQueryTerm = nToken; + if( pCtx->pConfig->bTokendata && rc==SQLITE_OK ){ + pTerm->nQueryTerm = (int)strlen(pTerm->pTerm); + } } } @@ -232740,6 +236530,7 @@ static Fts5ExprPhrase *sqlite3Fts5ParseTerm( memset(&sCtx, 0, sizeof(TokenCtx)); sCtx.pPhrase = pAppend; + sCtx.pConfig = pConfig; rc = fts5ParseStringFromToken(pToken, &z); if( rc==SQLITE_OK ){ @@ -232787,12 +236578,15 @@ static int sqlite3Fts5ExprClonePhrase( Fts5Expr **ppNew ){ int rc = SQLITE_OK; /* Return code */ - Fts5ExprPhrase *pOrig; /* The phrase extracted from pExpr */ + Fts5ExprPhrase *pOrig = 0; /* The phrase extracted from pExpr */ Fts5Expr *pNew = 0; /* Expression to return via *ppNew */ - TokenCtx sCtx = {0,0}; /* Context object for fts5ParseTokenize */ - - pOrig = pExpr->apExprPhrase[iPhrase]; - pNew = (Fts5Expr*)sqlite3Fts5MallocZero(&rc, sizeof(Fts5Expr)); + TokenCtx sCtx = {0,0,0}; /* Context object for fts5ParseTokenize */ + if( iPhrase<0 || iPhrase>=pExpr->nPhrase ){ + rc = SQLITE_RANGE; + }else{ + pOrig = pExpr->apExprPhrase[iPhrase]; + pNew = (Fts5Expr*)sqlite3Fts5MallocZero(&rc, sizeof(Fts5Expr)); + } if( rc==SQLITE_OK ){ pNew->apExprPhrase = (Fts5ExprPhrase**)sqlite3Fts5MallocZero(&rc, sizeof(Fts5ExprPhrase*)); @@ -232805,7 +236599,7 @@ static int sqlite3Fts5ExprClonePhrase( pNew->pRoot->pNear = (Fts5ExprNearset*)sqlite3Fts5MallocZero(&rc, sizeof(Fts5ExprNearset) + sizeof(Fts5ExprPhrase*)); } - if( rc==SQLITE_OK ){ + if( rc==SQLITE_OK && ALWAYS(pOrig!=0) ){ Fts5Colset *pColsetOrig = pOrig->pNode->pNear->pColset; if( pColsetOrig ){ sqlite3_int64 nByte; @@ -232819,26 +236613,27 @@ static int sqlite3Fts5ExprClonePhrase( } } - if( pOrig->nTerm ){ - int i; /* Used to iterate through phrase terms */ - for(i=0; rc==SQLITE_OK && inTerm; i++){ - int tflags = 0; - Fts5ExprTerm *p; - for(p=&pOrig->aTerm[i]; p && rc==SQLITE_OK; p=p->pSynonym){ - const char *zTerm = p->zTerm; - rc = fts5ParseTokenize((void*)&sCtx, tflags, zTerm, (int)strlen(zTerm), - 0, 0); - tflags = FTS5_TOKEN_COLOCATED; - } - if( rc==SQLITE_OK ){ - sCtx.pPhrase->aTerm[i].bPrefix = pOrig->aTerm[i].bPrefix; - sCtx.pPhrase->aTerm[i].bFirst = pOrig->aTerm[i].bFirst; + if( rc==SQLITE_OK ){ + if( pOrig->nTerm ){ + int i; /* Used to iterate through phrase terms */ + sCtx.pConfig = pExpr->pConfig; + for(i=0; rc==SQLITE_OK && inTerm; i++){ + int tflags = 0; + Fts5ExprTerm *p; + for(p=&pOrig->aTerm[i]; p && rc==SQLITE_OK; p=p->pSynonym){ + rc = fts5ParseTokenize((void*)&sCtx,tflags,p->pTerm,p->nFullTerm,0,0); + tflags = FTS5_TOKEN_COLOCATED; + } + if( rc==SQLITE_OK ){ + sCtx.pPhrase->aTerm[i].bPrefix = pOrig->aTerm[i].bPrefix; + sCtx.pPhrase->aTerm[i].bFirst = pOrig->aTerm[i].bFirst; + } } + }else{ + /* This happens when parsing a token or quoted phrase that contains + ** no token characters at all. (e.g ... MATCH '""'). */ + sCtx.pPhrase = sqlite3Fts5MallocZero(&rc, sizeof(Fts5ExprPhrase)); } - }else{ - /* This happens when parsing a token or quoted phrase that contains - ** no token characters at all. (e.g ... MATCH '""'). */ - sCtx.pPhrase = sqlite3Fts5MallocZero(&rc, sizeof(Fts5ExprPhrase)); } if( rc==SQLITE_OK && ALWAYS(sCtx.pPhrase) ){ @@ -233208,11 +237003,13 @@ static Fts5ExprNode *fts5ParsePhraseToAnd( if( parseGrowPhraseArray(pParse) ){ fts5ExprPhraseFree(pPhrase); }else{ + Fts5ExprTerm *p = &pNear->apPhrase[0]->aTerm[ii]; + Fts5ExprTerm *pTo = &pPhrase->aTerm[0]; pParse->apPhrase[pParse->nPhrase++] = pPhrase; pPhrase->nTerm = 1; - pPhrase->aTerm[0].zTerm = sqlite3Fts5Strndup( - &pParse->rc, pNear->apPhrase[0]->aTerm[ii].zTerm, -1 - ); + pTo->pTerm = sqlite3Fts5Strndup(&pParse->rc, p->pTerm, p->nFullTerm); + pTo->nQueryTerm = p->nQueryTerm; + pTo->nFullTerm = p->nFullTerm; pRet->apChild[ii] = sqlite3Fts5ParseNode(pParse, FTS5_STRING, 0, 0, sqlite3Fts5ParseNearset(pParse, 0, pPhrase) ); @@ -233397,16 +237194,17 @@ static char *fts5ExprTermPrint(Fts5ExprTerm *pTerm){ /* Determine the maximum amount of space required. */ for(p=pTerm; p; p=p->pSynonym){ - nByte += (int)strlen(pTerm->zTerm) * 2 + 3 + 2; + nByte += pTerm->nQueryTerm * 2 + 3 + 2; } zQuoted = sqlite3_malloc64(nByte); if( zQuoted ){ int i = 0; for(p=pTerm; p; p=p->pSynonym){ - char *zIn = p->zTerm; + char *zIn = p->pTerm; + char *zEnd = &zIn[p->nQueryTerm]; zQuoted[i++] = '"'; - while( *zIn ){ + while( zInnTerm; iTerm++){ - char *zTerm = pPhrase->aTerm[iTerm].zTerm; - zRet = fts5PrintfAppend(zRet, "%s%s", iTerm==0?"":" ", zTerm); + Fts5ExprTerm *p = &pPhrase->aTerm[iTerm]; + zRet = fts5PrintfAppend(zRet, "%s%.*s", iTerm==0?"":" ", + p->nQueryTerm, p->pTerm + ); if( pPhrase->aTerm[iTerm].bPrefix ){ zRet = fts5PrintfAppend(zRet, "*"); } @@ -233886,6 +237686,17 @@ static int fts5ExprColsetTest(Fts5Colset *pColset, int iCol){ return 0; } +/* +** pToken is a buffer nToken bytes in size that may or may not contain +** an embedded 0x00 byte. If it does, return the number of bytes in +** the buffer before the 0x00. If it does not, return nToken. +*/ +static int fts5QueryTerm(const char *pToken, int nToken){ + int ii; + for(ii=0; iipExpr; int i; + int nQuery = nToken; + i64 iRowid = pExpr->pRoot->iRowid; UNUSED_PARAM2(iUnused1, iUnused2); - if( nToken>FTS5_MAX_TOKEN_SIZE ) nToken = FTS5_MAX_TOKEN_SIZE; + if( nQuery>FTS5_MAX_TOKEN_SIZE ) nQuery = FTS5_MAX_TOKEN_SIZE; + if( pExpr->pConfig->bTokendata ){ + nQuery = fts5QueryTerm(pToken, nQuery); + } if( (tflags & FTS5_TOKEN_COLOCATED)==0 ) p->iOff++; for(i=0; inPhrase; i++){ - Fts5ExprTerm *pTerm; + Fts5ExprTerm *pT; if( p->aPopulator[i].bOk==0 ) continue; - for(pTerm=&pExpr->apExprPhrase[i]->aTerm[0]; pTerm; pTerm=pTerm->pSynonym){ - int nTerm = (int)strlen(pTerm->zTerm); - if( (nTerm==nToken || (nTermbPrefix)) - && memcmp(pTerm->zTerm, pToken, nTerm)==0 + for(pT=&pExpr->apExprPhrase[i]->aTerm[0]; pT; pT=pT->pSynonym){ + if( (pT->nQueryTerm==nQuery || (pT->nQueryTermbPrefix)) + && memcmp(pT->pTerm, pToken, pT->nQueryTerm)==0 ){ int rc = sqlite3Fts5PoslistWriterAppend( &pExpr->apExprPhrase[i]->poslist, &p->aPopulator[i].writer, p->iOff ); + if( rc==SQLITE_OK && pExpr->pConfig->bTokendata && !pT->bPrefix ){ + int iCol = p->iOff>>32; + int iTokOff = p->iOff & 0x7FFFFFFF; + rc = sqlite3Fts5IndexIterWriteTokendata( + pT->pIter, pToken, nToken, iRowid, iCol, iTokOff + ); + } if( rc ) return rc; break; } @@ -234048,6 +237870,83 @@ static int sqlite3Fts5ExprPhraseCollist( return rc; } +/* +** Does the work of the fts5_api.xQueryToken() API method. +*/ +static int sqlite3Fts5ExprQueryToken( + Fts5Expr *pExpr, + int iPhrase, + int iToken, + const char **ppOut, + int *pnOut +){ + Fts5ExprPhrase *pPhrase = 0; + + if( iPhrase<0 || iPhrase>=pExpr->nPhrase ){ + return SQLITE_RANGE; + } + pPhrase = pExpr->apExprPhrase[iPhrase]; + if( iToken<0 || iToken>=pPhrase->nTerm ){ + return SQLITE_RANGE; + } + + *ppOut = pPhrase->aTerm[iToken].pTerm; + *pnOut = pPhrase->aTerm[iToken].nFullTerm; + return SQLITE_OK; +} + +/* +** Does the work of the fts5_api.xInstToken() API method. +*/ +static int sqlite3Fts5ExprInstToken( + Fts5Expr *pExpr, + i64 iRowid, + int iPhrase, + int iCol, + int iOff, + int iToken, + const char **ppOut, + int *pnOut +){ + Fts5ExprPhrase *pPhrase = 0; + Fts5ExprTerm *pTerm = 0; + int rc = SQLITE_OK; + + if( iPhrase<0 || iPhrase>=pExpr->nPhrase ){ + return SQLITE_RANGE; + } + pPhrase = pExpr->apExprPhrase[iPhrase]; + if( iToken<0 || iToken>=pPhrase->nTerm ){ + return SQLITE_RANGE; + } + pTerm = &pPhrase->aTerm[iToken]; + if( pTerm->bPrefix==0 ){ + if( pExpr->pConfig->bTokendata ){ + rc = sqlite3Fts5IterToken( + pTerm->pIter, iRowid, iCol, iOff+iToken, ppOut, pnOut + ); + }else{ + *ppOut = pTerm->pTerm; + *pnOut = pTerm->nFullTerm; + } + } + return rc; +} + +/* +** Clear the token mappings for all Fts5IndexIter objects mannaged by +** the expression passed as the only argument. +*/ +static void sqlite3Fts5ExprClearTokens(Fts5Expr *pExpr){ + int ii; + for(ii=0; iinPhrase; ii++){ + Fts5ExprTerm *pT; + for(pT=&pExpr->apExprPhrase[ii]->aTerm[0]; pT; pT=pT->pSynonym){ + sqlite3Fts5IndexIterClearTokendata(pT->pIter); + } + } +} + /* ** 2014 August 11 ** @@ -234086,10 +237985,15 @@ struct Fts5Hash { /* ** Each entry in the hash table is represented by an object of the -** following type. Each object, its key (a nul-terminated string) and -** its current data are stored in a single memory allocation. The -** key immediately follows the object in memory. The position list -** data immediately follows the key data in memory. +** following type. Each object, its key, and its current data are stored +** in a single memory allocation. The key immediately follows the object +** in memory. The position list data immediately follows the key data +** in memory. +** +** The key is Fts5HashEntry.nKey bytes in size. It consists of a single +** byte identifying the index (either the main term index or a prefix-index), +** followed by the term data. For example: "0token". There is no +** nul-terminator - in this case nKey=6. ** ** The data that follows the key is in a similar, but not identical format ** to the doclist data stored in the database. It is: @@ -234224,8 +238128,7 @@ static int fts5HashResize(Fts5Hash *pHash){ unsigned int iHash; Fts5HashEntry *p = apOld[i]; apOld[i] = p->pHashNext; - iHash = fts5HashKey(nNew, (u8*)fts5EntryKey(p), - (int)strlen(fts5EntryKey(p))); + iHash = fts5HashKey(nNew, (u8*)fts5EntryKey(p), p->nKey); p->pHashNext = apNew[iHash]; apNew[iHash] = p; } @@ -234309,7 +238212,7 @@ static int sqlite3Fts5HashWrite( for(p=pHash->aSlot[iHash]; p; p=p->pHashNext){ char *zKey = fts5EntryKey(p); if( zKey[0]==bByte - && p->nKey==nToken + && p->nKey==nToken+1 && memcmp(&zKey[1], pToken, nToken)==0 ){ break; @@ -234339,9 +238242,9 @@ static int sqlite3Fts5HashWrite( zKey[0] = bByte; memcpy(&zKey[1], pToken, nToken); assert( iHash==fts5HashKey(pHash->nSlot, (u8*)zKey, nToken+1) ); - p->nKey = nToken; + p->nKey = nToken+1; zKey[nToken+1] = '\0'; - p->nData = nToken+1 + 1 + sizeof(Fts5HashEntry); + p->nData = nToken+1 + sizeof(Fts5HashEntry); p->pHashNext = pHash->aSlot[iHash]; pHash->aSlot[iHash] = p; pHash->nEntry++; @@ -234458,12 +238361,17 @@ static Fts5HashEntry *fts5HashEntryMerge( *ppOut = p1; p1 = 0; }else{ - int i = 0; char *zKey1 = fts5EntryKey(p1); char *zKey2 = fts5EntryKey(p2); - while( zKey1[i]==zKey2[i] ) i++; + int nMin = MIN(p1->nKey, p2->nKey); - if( ((u8)zKey1[i])>((u8)zKey2[i]) ){ + int cmp = memcmp(zKey1, zKey2, nMin); + if( cmp==0 ){ + cmp = p1->nKey - p2->nKey; + } + assert( cmp!=0 ); + + if( cmp>0 ){ /* p2 is smaller */ *ppOut = p2; ppOut = &p2->pScanNext; @@ -234482,10 +238390,8 @@ static Fts5HashEntry *fts5HashEntryMerge( } /* -** Extract all tokens from hash table iHash and link them into a list -** in sorted order. The hash table is cleared before returning. It is -** the responsibility of the caller to free the elements of the returned -** list. +** Link all tokens from hash table iHash into a list in sorted order. The +** tokens are not removed from the hash table. */ static int fts5HashEntrySort( Fts5Hash *pHash, @@ -234507,7 +238413,7 @@ static int fts5HashEntrySort( Fts5HashEntry *pIter; for(pIter=pHash->aSlot[iSlot]; pIter; pIter=pIter->pHashNext){ if( pTerm==0 - || (pIter->nKey+1>=nTerm && 0==memcmp(fts5EntryKey(pIter), pTerm, nTerm)) + || (pIter->nKey>=nTerm && 0==memcmp(fts5EntryKey(pIter), pTerm, nTerm)) ){ Fts5HashEntry *pEntry = pIter; pEntry->pScanNext = 0; @@ -234546,12 +238452,11 @@ static int sqlite3Fts5HashQuery( for(p=pHash->aSlot[iHash]; p; p=p->pHashNext){ zKey = fts5EntryKey(p); - assert( p->nKey+1==(int)strlen(zKey) ); - if( nTerm==p->nKey+1 && memcmp(zKey, pTerm, nTerm)==0 ) break; + if( nTerm==p->nKey && memcmp(zKey, pTerm, nTerm)==0 ) break; } if( p ){ - int nHashPre = sizeof(Fts5HashEntry) + nTerm + 1; + int nHashPre = sizeof(Fts5HashEntry) + nTerm; int nList = p->nData - nHashPre; u8 *pRet = (u8*)(*ppOut = sqlite3_malloc64(nPre + nList + 10)); if( pRet ){ @@ -234612,19 +238517,22 @@ static int sqlite3Fts5HashScanEof(Fts5Hash *p){ static void sqlite3Fts5HashScanEntry( Fts5Hash *pHash, const char **pzTerm, /* OUT: term (nul-terminated) */ + int *pnTerm, /* OUT: Size of term in bytes */ const u8 **ppDoclist, /* OUT: pointer to doclist */ int *pnDoclist /* OUT: size of doclist in bytes */ ){ Fts5HashEntry *p; if( (p = pHash->pScan) ){ char *zKey = fts5EntryKey(p); - int nTerm = (int)strlen(zKey); + int nTerm = p->nKey; fts5HashAddPoslistSize(pHash, p, 0); *pzTerm = zKey; - *ppDoclist = (const u8*)&zKey[nTerm+1]; - *pnDoclist = p->nData - (sizeof(Fts5HashEntry) + nTerm + 1); + *pnTerm = nTerm; + *ppDoclist = (const u8*)&zKey[nTerm]; + *pnDoclist = p->nData - (sizeof(Fts5HashEntry) + nTerm); }else{ *pzTerm = 0; + *pnTerm = 0; *ppDoclist = 0; *pnDoclist = 0; } @@ -234955,6 +238863,9 @@ typedef struct Fts5SegWriter Fts5SegWriter; typedef struct Fts5Structure Fts5Structure; typedef struct Fts5StructureLevel Fts5StructureLevel; typedef struct Fts5StructureSegment Fts5StructureSegment; +typedef struct Fts5TokenDataIter Fts5TokenDataIter; +typedef struct Fts5TokenDataMap Fts5TokenDataMap; +typedef struct Fts5TombstoneArray Fts5TombstoneArray; struct Fts5Data { u8 *p; /* Pointer to buffer containing record */ @@ -234989,6 +238900,7 @@ struct Fts5Index { /* Error state. */ int rc; /* Current error code */ + int flushRc; /* State used by the fts5DataXXX() functions. */ sqlite3_blob *pReader; /* RO incr-blob open on %_data table */ @@ -234997,6 +238909,7 @@ struct Fts5Index { sqlite3_stmt *pIdxWriter; /* "INSERT ... %_idx VALUES(?,?,?,?)" */ sqlite3_stmt *pIdxDeleter; /* "DELETE FROM %_idx WHERE segid=?" */ sqlite3_stmt *pIdxSelect; + sqlite3_stmt *pIdxNextSelect; int nRead; /* Total number of blocks read */ sqlite3_stmt *pDeleteFromIdx; @@ -235150,8 +239063,7 @@ struct Fts5SegIter { Fts5Data *pLeaf; /* Current leaf data */ Fts5Data *pNextLeaf; /* Leaf page (iLeafPgno+1) */ i64 iLeafOffset; /* Byte offset within current leaf */ - Fts5Data **apTombstone; /* Array of tombstone pages */ - int nTombstone; + Fts5TombstoneArray *pTombArray; /* Array of tombstone pages */ /* Next method */ void (*xNext)(Fts5Index*, Fts5SegIter*, int*); @@ -235178,6 +239090,15 @@ struct Fts5SegIter { u8 bDel; /* True if the delete flag is set */ }; +/* +** Array of tombstone pages. Reference counted. +*/ +struct Fts5TombstoneArray { + int nRef; /* Number of pointers to this object */ + int nTombstone; + Fts5Data *apTombstone[1]; /* Array of tombstone pages */ +}; + /* ** Argument is a pointer to an Fts5Data structure that contains a ** leaf page. @@ -235222,9 +239143,16 @@ struct Fts5SegIter { ** poslist: ** Used by sqlite3Fts5IterPoslist() when the poslist needs to be buffered. ** There is no way to tell if this is populated or not. +** +** pColset: +** If not NULL, points to an object containing a set of column indices. +** Only matches that occur in one of these columns will be returned. +** The Fts5Iter does not own the Fts5Colset object, and so it is not +** freed when the iterator is closed - it is owned by the upper layer. */ struct Fts5Iter { Fts5IndexIter base; /* Base class containing output vars */ + Fts5TokenDataIter *pTokenDataIter; Fts5Index *pIndex; /* Index that owns this iterator */ Fts5Buffer poslist; /* Buffer containing current poslist */ @@ -235242,7 +239170,6 @@ struct Fts5Iter { Fts5SegIter aSeg[1]; /* Array of segment iterators */ }; - /* ** An instance of the following type is used to iterate through the contents ** of a doclist-index record. @@ -236160,9 +240087,9 @@ static int fts5DlidxLvlNext(Fts5DlidxLvl *pLvl){ } if( iOffnn ){ - i64 iVal; + u64 iVal; pLvl->iLeafPgno += (iOff - pLvl->iOff) + 1; - iOff += fts5GetVarint(&pData->p[iOff], (u64*)&iVal); + iOff += fts5GetVarint(&pData->p[iOff], &iVal); pLvl->iRowid += iVal; pLvl->iOff = iOff; }else{ @@ -236541,18 +240468,20 @@ static void fts5SegIterSetNext(Fts5Index *p, Fts5SegIter *pIter){ } /* -** Allocate a tombstone hash page array (pIter->apTombstone) for the -** iterator passed as the second argument. If an OOM error occurs, leave -** an error in the Fts5Index object. +** Allocate a tombstone hash page array object (pIter->pTombArray) for +** the iterator passed as the second argument. If an OOM error occurs, +** leave an error in the Fts5Index object. */ static void fts5SegIterAllocTombstone(Fts5Index *p, Fts5SegIter *pIter){ const int nTomb = pIter->pSeg->nPgTombstone; if( nTomb>0 ){ - Fts5Data **apTomb = 0; - apTomb = (Fts5Data**)sqlite3Fts5MallocZero(&p->rc, sizeof(Fts5Data)*nTomb); - if( apTomb ){ - pIter->apTombstone = apTomb; - pIter->nTombstone = nTomb; + int nByte = nTomb * sizeof(Fts5Data*) + sizeof(Fts5TombstoneArray); + Fts5TombstoneArray *pNew; + pNew = (Fts5TombstoneArray*)sqlite3Fts5MallocZero(&p->rc, nByte); + if( pNew ){ + pNew->nTombstone = nTomb; + pNew->nRef = 1; + pIter->pTombArray = pNew; } } } @@ -236809,15 +240738,16 @@ static void fts5SegIterNext_None( }else{ const u8 *pList = 0; const char *zTerm = 0; + int nTerm = 0; int nList; sqlite3Fts5HashScanNext(p->pHash); - sqlite3Fts5HashScanEntry(p->pHash, &zTerm, &pList, &nList); + sqlite3Fts5HashScanEntry(p->pHash, &zTerm, &nTerm, &pList, &nList); if( pList==0 ) goto next_none_eof; pIter->pLeaf->p = (u8*)pList; pIter->pLeaf->nn = nList; pIter->pLeaf->szLeaf = nList; pIter->iEndofDoclist = nList; - sqlite3Fts5BufferSet(&p->rc,&pIter->term, (int)strlen(zTerm), (u8*)zTerm); + sqlite3Fts5BufferSet(&p->rc,&pIter->term, nTerm, (u8*)zTerm); pIter->iLeafOffset = fts5GetVarint(pList, (u64*)&pIter->iRowid); } @@ -236883,11 +240813,12 @@ static void fts5SegIterNext( }else if( pIter->pSeg==0 ){ const u8 *pList = 0; const char *zTerm = 0; + int nTerm = 0; int nList = 0; assert( (pIter->flags & FTS5_SEGITER_ONETERM) || pbNewTerm ); if( 0==(pIter->flags & FTS5_SEGITER_ONETERM) ){ sqlite3Fts5HashScanNext(p->pHash); - sqlite3Fts5HashScanEntry(p->pHash, &zTerm, &pList, &nList); + sqlite3Fts5HashScanEntry(p->pHash, &zTerm, &nTerm, &pList, &nList); } if( pList==0 ){ fts5DataRelease(pIter->pLeaf); @@ -236897,8 +240828,7 @@ static void fts5SegIterNext( pIter->pLeaf->nn = nList; pIter->pLeaf->szLeaf = nList; pIter->iEndofDoclist = nList+1; - sqlite3Fts5BufferSet(&p->rc, &pIter->term, (int)strlen(zTerm), - (u8*)zTerm); + sqlite3Fts5BufferSet(&p->rc, &pIter->term, nTerm, (u8*)zTerm); pIter->iLeafOffset = fts5GetVarint(pList, (u64*)&pIter->iRowid); *pbNewTerm = 1; } @@ -237284,7 +241214,7 @@ static void fts5SegIterSeekInit( fts5LeafSeek(p, bGe, pIter, pTerm, nTerm); } - if( p->rc==SQLITE_OK && bGe==0 ){ + if( p->rc==SQLITE_OK && (bGe==0 || (flags & FTS5INDEX_QUERY_SCANONETERM)) ){ pIter->flags |= FTS5_SEGITER_ONETERM; if( pIter->pLeaf ){ if( flags & FTS5INDEX_QUERY_DESC ){ @@ -237300,7 +241230,9 @@ static void fts5SegIterSeekInit( } fts5SegIterSetNext(p, pIter); - fts5SegIterAllocTombstone(p, pIter); + if( 0==(flags & FTS5INDEX_QUERY_SCANONETERM) ){ + fts5SegIterAllocTombstone(p, pIter); + } /* Either: ** @@ -237317,6 +241249,79 @@ static void fts5SegIterSeekInit( ); } + +/* +** SQL used by fts5SegIterNextInit() to find the page to open. +*/ +static sqlite3_stmt *fts5IdxNextStmt(Fts5Index *p){ + if( p->pIdxNextSelect==0 ){ + Fts5Config *pConfig = p->pConfig; + fts5IndexPrepareStmt(p, &p->pIdxNextSelect, sqlite3_mprintf( + "SELECT pgno FROM '%q'.'%q_idx' WHERE " + "segid=? AND term>? ORDER BY term ASC LIMIT 1", + pConfig->zDb, pConfig->zName + )); + + } + return p->pIdxNextSelect; +} + +/* +** This is similar to fts5SegIterSeekInit(), except that it initializes +** the segment iterator to point to the first term following the page +** with pToken/nToken on it. +*/ +static void fts5SegIterNextInit( + Fts5Index *p, + const char *pTerm, int nTerm, + Fts5StructureSegment *pSeg, /* Description of segment */ + Fts5SegIter *pIter /* Object to populate */ +){ + int iPg = -1; /* Page of segment to open */ + int bDlidx = 0; + sqlite3_stmt *pSel = 0; /* SELECT to find iPg */ + + pSel = fts5IdxNextStmt(p); + if( pSel ){ + assert( p->rc==SQLITE_OK ); + sqlite3_bind_int(pSel, 1, pSeg->iSegid); + sqlite3_bind_blob(pSel, 2, pTerm, nTerm, SQLITE_STATIC); + + if( sqlite3_step(pSel)==SQLITE_ROW ){ + i64 val = sqlite3_column_int64(pSel, 0); + iPg = (int)(val>>1); + bDlidx = (val & 0x0001); + } + p->rc = sqlite3_reset(pSel); + sqlite3_bind_null(pSel, 2); + if( p->rc ) return; + } + + memset(pIter, 0, sizeof(*pIter)); + pIter->pSeg = pSeg; + pIter->flags |= FTS5_SEGITER_ONETERM; + if( iPg>=0 ){ + pIter->iLeafPgno = iPg - 1; + fts5SegIterNextPage(p, pIter); + fts5SegIterSetNext(p, pIter); + } + if( pIter->pLeaf ){ + const u8 *a = pIter->pLeaf->p; + int iTermOff = 0; + + pIter->iPgidxOff = pIter->pLeaf->szLeaf; + pIter->iPgidxOff += fts5GetVarint32(&a[pIter->iPgidxOff], iTermOff); + pIter->iLeafOffset = iTermOff; + fts5SegIterLoadTerm(p, pIter, 0); + fts5SegIterLoadNPos(p, pIter); + if( bDlidx ) fts5SegIterLoadDlidx(p, pIter); + + assert( p->rc!=SQLITE_OK || + fts5BufferCompareBlob(&pIter->term, (const u8*)pTerm, nTerm)>0 + ); + } +} + /* ** Initialize the object pIter to point to term pTerm/nTerm within the ** in-memory hash table. If there is no such term in the hash-table, the @@ -237343,14 +241348,21 @@ static void fts5SegIterHashInit( const u8 *pList = 0; p->rc = sqlite3Fts5HashScanInit(p->pHash, (const char*)pTerm, nTerm); - sqlite3Fts5HashScanEntry(p->pHash, (const char**)&z, &pList, &nList); - n = (z ? (int)strlen((const char*)z) : 0); + sqlite3Fts5HashScanEntry(p->pHash, (const char**)&z, &n, &pList, &nList); if( pList ){ pLeaf = fts5IdxMalloc(p, sizeof(Fts5Data)); if( pLeaf ){ pLeaf->p = (u8*)pList; } } + + /* The call to sqlite3Fts5HashScanInit() causes the hash table to + ** fill the size field of all existing position lists. This means they + ** can no longer be appended to. Since the only scenario in which they + ** can be appended to is if the previous operation on this table was + ** a DELETE, by clearing the Fts5Index.bDelete flag we can avoid this + ** possibility altogether. */ + p->bDelete = 0; }else{ p->rc = sqlite3Fts5HashQuery(p->pHash, sizeof(Fts5Data), (const char*)pTerm, nTerm, (void**)&pLeaf, &nList @@ -237395,6 +241407,23 @@ static void fts5IndexFreeArray(Fts5Data **ap, int n){ } } +/* +** Decrement the ref-count of the object passed as the only argument. If it +** reaches 0, free it and its contents. +*/ +static void fts5TombstoneArrayDelete(Fts5TombstoneArray *p){ + if( p ){ + p->nRef--; + if( p->nRef<=0 ){ + int ii; + for(ii=0; iinTombstone; ii++){ + fts5DataRelease(p->apTombstone[ii]); + } + sqlite3_free(p); + } + } +} + /* ** Zero the iterator passed as the only argument. */ @@ -237402,7 +241431,7 @@ static void fts5SegIterClear(Fts5SegIter *pIter){ fts5BufferFree(&pIter->term); fts5DataRelease(pIter->pLeaf); fts5DataRelease(pIter->pNextLeaf); - fts5IndexFreeArray(pIter->apTombstone, pIter->nTombstone); + fts5TombstoneArrayDelete(pIter->pTombArray); fts5DlidxIterFree(pIter->pDlidx); sqlite3_free(pIter->aRowidOffset); memset(pIter, 0, sizeof(Fts5SegIter)); @@ -237536,7 +241565,6 @@ static int fts5MultiIterDoCompare(Fts5Iter *pIter, int iOut){ assert_nc( i2!=0 ); pRes->bTermEq = 1; if( p1->iRowid==p2->iRowid ){ - p1->bDel = p2->bDel; return i2; } res = ((p1->iRowid > p2->iRowid)==pIter->bRev) ? -1 : +1; @@ -237648,7 +241676,6 @@ static void fts5SegIterNextFrom( }while( p->rc==SQLITE_OK ); } - /* ** Free the iterator object passed as the second argument. */ @@ -237793,24 +241820,25 @@ static int fts5IndexTombstoneQuery( static int fts5MultiIterIsDeleted(Fts5Iter *pIter){ int iFirst = pIter->aFirst[1].iFirst; Fts5SegIter *pSeg = &pIter->aSeg[iFirst]; + Fts5TombstoneArray *pArray = pSeg->pTombArray; - if( pSeg->pLeaf && pSeg->nTombstone ){ + if( pSeg->pLeaf && pArray ){ /* Figure out which page the rowid might be present on. */ - int iPg = ((u64)pSeg->iRowid) % pSeg->nTombstone; + int iPg = ((u64)pSeg->iRowid) % pArray->nTombstone; assert( iPg>=0 ); /* If tombstone hash page iPg has not yet been loaded from the ** database, load it now. */ - if( pSeg->apTombstone[iPg]==0 ){ - pSeg->apTombstone[iPg] = fts5DataRead(pIter->pIndex, + if( pArray->apTombstone[iPg]==0 ){ + pArray->apTombstone[iPg] = fts5DataRead(pIter->pIndex, FTS5_TOMBSTONE_ROWID(pSeg->pSeg->iSegid, iPg) ); - if( pSeg->apTombstone[iPg]==0 ) return 0; + if( pArray->apTombstone[iPg]==0 ) return 0; } return fts5IndexTombstoneQuery( - pSeg->apTombstone[iPg], - pSeg->nTombstone, + pArray->apTombstone[iPg], + pArray->nTombstone, pSeg->iRowid ); } @@ -237904,7 +241932,7 @@ static Fts5Iter *fts5MultiIterAlloc( int nSeg ){ Fts5Iter *pNew; - int nSlot; /* Power of two >= nSeg */ + i64 nSlot; /* Power of two >= nSeg */ for(nSlot=2; nSlotnSeg-1; iIter>0; iIter--){ + int iEq; + if( (iEq = fts5MultiIterDoCompare(pIter, iIter)) ){ + Fts5SegIter *pSeg = &pIter->aSeg[iEq]; + if( p->rc==SQLITE_OK ) pSeg->xNext(p, pSeg, 0); + fts5MultiIterAdvanced(p, pIter, iEq, iIter); + } + } + fts5MultiIterSetEof(pIter); + fts5AssertMultiIterSetup(p, pIter); + + if( (pIter->bSkipEmpty && fts5MultiIterIsEmpty(p, pIter)) + || fts5MultiIterIsDeleted(pIter) + ){ + fts5MultiIterNext(p, pIter, 0, 0); + }else if( pIter->base.bEof==0 ){ + Fts5SegIter *pSeg = &pIter->aSeg[pIter->aFirst[1].iFirst]; + pIter->xSetOutputs(pIter, pSeg); + } +} /* ** Allocate a new Fts5Iter object. @@ -238430,31 +242484,12 @@ static void fts5MultiIterNew( assert( iIter==nSeg ); } - /* If the above was successful, each component iterators now points + /* If the above was successful, each component iterator now points ** to the first entry in its segment. In this case initialize the ** aFirst[] array. Or, if an error has occurred, free the iterator ** object and set the output variable to NULL. */ if( p->rc==SQLITE_OK ){ - for(iIter=pNew->nSeg-1; iIter>0; iIter--){ - int iEq; - if( (iEq = fts5MultiIterDoCompare(pNew, iIter)) ){ - Fts5SegIter *pSeg = &pNew->aSeg[iEq]; - if( p->rc==SQLITE_OK ) pSeg->xNext(p, pSeg, 0); - fts5MultiIterAdvanced(p, pNew, iEq, iIter); - } - } - fts5MultiIterSetEof(pNew); - fts5AssertMultiIterSetup(p, pNew); - - if( (pNew->bSkipEmpty && fts5MultiIterIsEmpty(p, pNew)) - || fts5MultiIterIsDeleted(pNew) - ){ - fts5MultiIterNext(p, pNew, 0, 0); - }else if( pNew->base.bEof==0 ){ - Fts5SegIter *pSeg = &pNew->aSeg[pNew->aFirst[1].iFirst]; - pNew->xSetOutputs(pNew, pSeg); - } - + fts5MultiIterFinishSetup(p, pNew); }else{ fts5MultiIterFree(pNew); *ppOut = 0; @@ -238479,7 +242514,6 @@ static void fts5MultiIterNew2( pNew = fts5MultiIterAlloc(p, 2); if( pNew ){ Fts5SegIter *pIter = &pNew->aSeg[1]; - pIter->flags = FTS5_SEGITER_ONETERM; if( pData->szLeaf>0 ){ pIter->pLeaf = pData; @@ -238627,6 +242661,7 @@ static void fts5IndexDiscardData(Fts5Index *p){ sqlite3Fts5HashClear(p->pHash); p->nPendingData = 0; p->nPendingRow = 0; + p->flushRc = SQLITE_OK; } p->nContentlessDelete = 0; } @@ -238842,7 +242877,7 @@ static void fts5WriteDlidxAppend( } if( pDlidx->bPrevValid ){ - iVal = iRowid - pDlidx->iPrev; + iVal = (u64)iRowid - (u64)pDlidx->iPrev; }else{ i64 iPgno = (i==0 ? pWriter->writer.pgno : pDlidx[-1].pgno); assert( pDlidx->buf.n==0 ); @@ -239029,7 +243064,7 @@ static void fts5WriteAppendPoslistData( const u8 *a = aData; int n = nData; - assert( p->pConfig->pgsz>0 ); + assert( p->pConfig->pgsz>0 || p->rc!=SQLITE_OK ); while( p->rc==SQLITE_OK && (pPage->buf.n + pPage->pgidx.n + n)>=p->pConfig->pgsz ){ @@ -239680,7 +243715,6 @@ static void fts5DoSecureDelete( int iPgIdx = pSeg->pLeaf->szLeaf; u64 iDelta = 0; - u64 iNextDelta = 0; int iNextOff = 0; int iOff = 0; int nIdx = 0; @@ -239688,8 +243722,6 @@ static void fts5DoSecureDelete( int bLastInDoclist = 0; int iIdx = 0; int iStart = 0; - int iKeyOff = 0; - int iPrevKeyOff = 0; int iDelKeyOff = 0; /* Offset of deleted key, if any */ nIdx = nPg-iPgIdx; @@ -239714,10 +243746,21 @@ static void fts5DoSecureDelete( ** This block sets the following variables: ** ** iStart: + ** The offset of the first byte of the rowid or delta-rowid + ** value for the doclist entry being removed. + ** ** iDelta: + ** The value of the rowid or delta-rowid value for the doclist + ** entry being removed. + ** + ** iNextOff: + ** The offset of the next entry following the position list + ** for the one being removed. If the position list for this + ** entry overflows onto the next leaf page, this value will be + ** greater than pLeaf->szLeaf. */ { - int iSOP; + int iSOP; /* Start-Of-Position-list */ if( pSeg->iLeafPgno==pSeg->iTermLeafPgno ){ iStart = pSeg->iTermLeafOffset; }else{ @@ -239753,47 +243796,81 @@ static void fts5DoSecureDelete( } iOff = iStart; + + /* If the position-list for the entry being removed flows over past + ** the end of this page, delete the portion of the position-list on the + ** next page and beyond. + ** + ** Set variable bLastInDoclist to true if this entry happens + ** to be the last rowid in the doclist for its term. */ if( iNextOff>=iPgIdx ){ int pgno = pSeg->iLeafPgno+1; fts5SecureDeleteOverflow(p, pSeg->pSeg, pgno, &bLastInDoclist); iNextOff = iPgIdx; - }else{ - /* Set bLastInDoclist to true if the entry being removed is the last - ** in its doclist. */ - for(iIdx=0, iKeyOff=0; iIdxbDel==0 ){ + if( iNextOff!=iPgIdx ){ + /* Loop through the page-footer. If iNextOff (offset of the + ** entry following the one we are removing) is equal to the + ** offset of a key on this page, then the entry is the last + ** in its doclist. */ + int iKeyOff = 0; + for(iIdx=0; iIdxbDel ){ + iOff += sqlite3Fts5PutVarint(&aPg[iOff], iDelta); + aPg[iOff++] = 0x01; + }else if( bLastInDoclist==0 ){ if( iNextOff!=iPgIdx ){ + u64 iNextDelta = 0; iNextOff += fts5GetVarint(&aPg[iNextOff], &iNextDelta); iOff += sqlite3Fts5PutVarint(&aPg[iOff], iDelta + iNextDelta); } }else if( - iStart==pSeg->iTermLeafOffset && pSeg->iLeafPgno==pSeg->iTermLeafPgno + pSeg->iLeafPgno==pSeg->iTermLeafPgno + && iStart==pSeg->iTermLeafOffset ){ /* The entry being removed was the only position list in its ** doclist. Therefore the term needs to be removed as well. */ int iKey = 0; - for(iIdx=0, iKeyOff=0; iIdx(u32)iStart ) break; iKeyOff += iVal; } + assert_nc( iKey>=1 ); + /* Set iDelKeyOff to the value of the footer entry to remove from + ** the page. */ iDelKeyOff = iOff = iKeyOff; + if( iNextOff!=iPgIdx ){ + /* This is the only position-list associated with the term, and there + ** is another term following it on this page. So the subsequent term + ** needs to be moved to replace the term associated with the entry + ** being removed. */ int nPrefix = 0; int nSuffix = 0; int nPrefix2 = 0; @@ -239872,6 +243949,15 @@ static void fts5DoSecureDelete( } } + /* Assuming no error has occurred, this block does final edits to the + ** leaf page before writing it back to disk. Input variables are: + ** + ** nPg: Total initial size of leaf page. + ** iPgIdx: Initial offset of page footer. + ** + ** iOff: Offset to move data to + ** iNextOff: Offset to move data from + */ if( p->rc==SQLITE_OK ){ const int nMove = nPg - iNextOff; /* Number of bytes to move */ int nShift = iNextOff - iOff; /* Distance to move them */ @@ -239914,10 +244000,10 @@ static void fts5FlushSecureDelete( Fts5Index *p, Fts5Structure *pStruct, const char *zTerm, + int nTerm, i64 iRowid ){ const int f = FTS5INDEX_QUERY_SKIPHASH; - int nTerm = (int)strlen(zTerm); Fts5Iter *pIter = 0; /* Used to find term instance */ fts5MultiIterNew(p, pStruct, f, 0, (const u8*)zTerm, nTerm, -1, 0, &pIter); @@ -239991,8 +244077,7 @@ static void fts5FlushOneHash(Fts5Index *p){ int nDoclist; /* Size of doclist in bytes */ /* Get the term and doclist for this entry. */ - sqlite3Fts5HashScanEntry(pHash, &zTerm, &pDoclist, &nDoclist); - nTerm = (int)strlen(zTerm); + sqlite3Fts5HashScanEntry(pHash, &zTerm, &nTerm, &pDoclist, &nDoclist); if( bSecureDelete==0 ){ fts5WriteAppendTerm(p, &writer, nTerm, (const u8*)zTerm); if( p->rc!=SQLITE_OK ) break; @@ -240022,7 +244107,7 @@ static void fts5FlushOneHash(Fts5Index *p){ if( bSecureDelete ){ if( eDetail==FTS5_DETAIL_NONE ){ if( iOffrc!=SQLITE_OK || pDoclist[iOff]==0x01 ){ iOff++; continue; @@ -240072,10 +244157,16 @@ static void fts5FlushOneHash(Fts5Index *p){ fts5WriteFlushLeaf(p, &writer); } }else{ - int bDummy; - int nPos; - int nCopy = fts5GetPoslistSize(&pDoclist[iOff], &nPos, &bDummy); - nCopy += nPos; + int bDel = 0; + int nPos = 0; + int nCopy = fts5GetPoslistSize(&pDoclist[iOff], &nPos, &bDel); + if( bDel && bSecureDelete ){ + fts5BufferAppendVarint(&p->rc, pBuf, nPos*2); + iOff += nCopy; + nCopy = nPos; + }else{ + nCopy += nPos; + } if( (pBuf->n + pPgidx->n + nCopy) <= pgsz ){ /* The entire poslist will fit on the current leaf. So copy ** it in one go. */ @@ -240113,7 +244204,6 @@ static void fts5FlushOneHash(Fts5Index *p){ assert( pBuf->n<=pBuf->nSpace ); if( p->rc==SQLITE_OK ) sqlite3Fts5HashScanNext(pHash); } - sqlite3Fts5HashClear(pHash); fts5WriteFinish(p, &writer, &pgnoLast); assert( p->rc!=SQLITE_OK || bSecureDelete || pgnoLast>0 ); @@ -240146,7 +244236,6 @@ static void fts5FlushOneHash(Fts5Index *p){ fts5IndexCrisismerge(p, &pStruct); fts5StructureWrite(p, pStruct); fts5StructureRelease(pStruct); - p->nContentlessDelete = 0; } /* @@ -240154,11 +244243,21 @@ static void fts5FlushOneHash(Fts5Index *p){ */ static void fts5IndexFlush(Fts5Index *p){ /* Unless it is empty, flush the hash table to disk */ + if( p->flushRc ){ + p->rc = p->flushRc; + return; + } if( p->nPendingData || p->nContentlessDelete ){ assert( p->pHash ); fts5FlushOneHash(p); - p->nPendingData = 0; - p->nPendingRow = 0; + if( p->rc==SQLITE_OK ){ + sqlite3Fts5HashClear(p->pHash); + p->nPendingData = 0; + p->nPendingRow = 0; + p->nContentlessDelete = 0; + }else if( p->nPendingData || p->nContentlessDelete ){ + p->flushRc = p->rc; + } } } @@ -240236,8 +244335,9 @@ static int sqlite3Fts5IndexOptimize(Fts5Index *p){ assert( p->rc==SQLITE_OK ); fts5IndexFlush(p); - assert( p->nContentlessDelete==0 ); + assert( p->rc!=SQLITE_OK || p->nContentlessDelete==0 ); pStruct = fts5StructureRead(p); + assert( p->rc!=SQLITE_OK || pStruct!=0 ); fts5StructureInvalidate(p); if( pStruct ){ @@ -240643,7 +244743,7 @@ static void fts5SetupPrefixIter( u8 *pToken, /* Buffer containing prefix to match */ int nToken, /* Size of buffer pToken in bytes */ Fts5Colset *pColset, /* Restrict matches to these columns */ - Fts5Iter **ppIter /* OUT: New iterator */ + Fts5Iter **ppIter /* OUT: New iterator */ ){ Fts5Structure *pStruct; Fts5Buffer *aBuf; @@ -240664,8 +244764,9 @@ static void fts5SetupPrefixIter( aBuf = (Fts5Buffer*)fts5IdxMalloc(p, sizeof(Fts5Buffer)*nBuf); pStruct = fts5StructureRead(p); + assert( p->rc!=SQLITE_OK || (aBuf && pStruct) ); - if( aBuf && pStruct ){ + if( p->rc==SQLITE_OK ){ const int flags = FTS5INDEX_QUERY_SCAN | FTS5INDEX_QUERY_SKIPEMPTY | FTS5INDEX_QUERY_NOOUTPUT; @@ -240677,6 +244778,12 @@ static void fts5SetupPrefixIter( int bNewTerm = 1; memset(&doclist, 0, sizeof(doclist)); + + /* If iIdx is non-zero, then it is the number of a prefix-index for + ** prefixes 1 character longer than the prefix being queried for. That + ** index contains all the doclists required, except for the one + ** corresponding to the prefix itself. That one is extracted from the + ** main term index here. */ if( iIdx!=0 ){ int dummy = 0; const int f2 = FTS5INDEX_QUERY_SKIPEMPTY|FTS5INDEX_QUERY_NOOUTPUT; @@ -240700,6 +244807,7 @@ static void fts5SetupPrefixIter( pToken[0] = FTS5_MAIN_PREFIX + iIdx; fts5MultiIterNew(p, pStruct, flags, pColset, pToken, nToken, -1, 0, &p1); fts5IterSetOutputCb(&p->rc, p1); + for( /* no-op */ ; fts5MultiIterEof(p, p1)==0; fts5MultiIterNext2(p, p1, &bNewTerm) @@ -240715,7 +244823,6 @@ static void fts5SetupPrefixIter( } if( p1->base.nData==0 ) continue; - if( p1->base.iRowid<=iLastRowid && doclist.n>0 ){ for(i=0; p->rc==SQLITE_OK && doclist.n; i++){ int i1 = i*nMerge; @@ -240754,7 +244861,7 @@ static void fts5SetupPrefixIter( } fts5MultiIterFree(p1); - pData = fts5IdxMalloc(p, sizeof(Fts5Data)+doclist.n+FTS5_DATA_ZERO_PADDING); + pData = fts5IdxMalloc(p, sizeof(*pData)+doclist.n+FTS5_DATA_ZERO_PADDING); if( pData ){ pData->p = (u8*)&pData[1]; pData->nn = pData->szLeaf = doclist.n; @@ -240897,6 +245004,7 @@ static int sqlite3Fts5IndexClose(Fts5Index *p){ sqlite3_finalize(p->pIdxWriter); sqlite3_finalize(p->pIdxDeleter); sqlite3_finalize(p->pIdxSelect); + sqlite3_finalize(p->pIdxNextSelect); sqlite3_finalize(p->pDataVersion); sqlite3_finalize(p->pDeleteFromIdx); sqlite3Fts5HashFree(p->pHash); @@ -240992,6 +245100,454 @@ static int sqlite3Fts5IndexWrite( return rc; } +/* +** pToken points to a buffer of size nToken bytes containing a search +** term, including the index number at the start, used on a tokendata=1 +** table. This function returns true if the term in buffer pBuf matches +** token pToken/nToken. +*/ +static int fts5IsTokendataPrefix( + Fts5Buffer *pBuf, + const u8 *pToken, + int nToken +){ + return ( + pBuf->n>=nToken + && 0==memcmp(pBuf->p, pToken, nToken) + && (pBuf->n==nToken || pBuf->p[nToken]==0x00) + ); +} + +/* +** Ensure the segment-iterator passed as the only argument points to EOF. +*/ +static void fts5SegIterSetEOF(Fts5SegIter *pSeg){ + fts5DataRelease(pSeg->pLeaf); + pSeg->pLeaf = 0; +} + +/* +** Usually, a tokendata=1 iterator (struct Fts5TokenDataIter) accumulates an +** array of these for each row it visits. Or, for an iterator used by an +** "ORDER BY rank" query, it accumulates an array of these for the entire +** query. +** +** Each instance in the array indicates the iterator (and therefore term) +** associated with position iPos of rowid iRowid. This is used by the +** xInstToken() API. +*/ +struct Fts5TokenDataMap { + i64 iRowid; /* Row this token is located in */ + i64 iPos; /* Position of token */ + int iIter; /* Iterator token was read from */ +}; + +/* +** An object used to supplement Fts5Iter for tokendata=1 iterators. +*/ +struct Fts5TokenDataIter { + int nIter; + int nIterAlloc; + + int nMap; + int nMapAlloc; + Fts5TokenDataMap *aMap; + + Fts5PoslistReader *aPoslistReader; + int *aPoslistToIter; + Fts5Iter *apIter[1]; +}; + +/* +** This function appends iterator pAppend to Fts5TokenDataIter pIn and +** returns the result. +*/ +static Fts5TokenDataIter *fts5AppendTokendataIter( + Fts5Index *p, /* Index object (for error code) */ + Fts5TokenDataIter *pIn, /* Current Fts5TokenDataIter struct */ + Fts5Iter *pAppend /* Append this iterator */ +){ + Fts5TokenDataIter *pRet = pIn; + + if( p->rc==SQLITE_OK ){ + if( pIn==0 || pIn->nIter==pIn->nIterAlloc ){ + int nAlloc = pIn ? pIn->nIterAlloc*2 : 16; + int nByte = nAlloc * sizeof(Fts5Iter*) + sizeof(Fts5TokenDataIter); + Fts5TokenDataIter *pNew = (Fts5TokenDataIter*)sqlite3_realloc(pIn, nByte); + + if( pNew==0 ){ + p->rc = SQLITE_NOMEM; + }else{ + if( pIn==0 ) memset(pNew, 0, nByte); + pRet = pNew; + pNew->nIterAlloc = nAlloc; + } + } + } + if( p->rc ){ + sqlite3Fts5IterClose((Fts5IndexIter*)pAppend); + }else{ + pRet->apIter[pRet->nIter++] = pAppend; + } + assert( pRet==0 || pRet->nIter<=pRet->nIterAlloc ); + + return pRet; +} + +/* +** Delete an Fts5TokenDataIter structure and its contents. +*/ +static void fts5TokendataIterDelete(Fts5TokenDataIter *pSet){ + if( pSet ){ + int ii; + for(ii=0; iinIter; ii++){ + fts5MultiIterFree(pSet->apIter[ii]); + } + sqlite3_free(pSet->aPoslistReader); + sqlite3_free(pSet->aMap); + sqlite3_free(pSet); + } +} + +/* +** Append a mapping to the token-map belonging to object pT. +*/ +static void fts5TokendataIterAppendMap( + Fts5Index *p, + Fts5TokenDataIter *pT, + int iIter, + i64 iRowid, + i64 iPos +){ + if( p->rc==SQLITE_OK ){ + if( pT->nMap==pT->nMapAlloc ){ + int nNew = pT->nMapAlloc ? pT->nMapAlloc*2 : 64; + int nByte = nNew * sizeof(Fts5TokenDataMap); + Fts5TokenDataMap *aNew; + + aNew = (Fts5TokenDataMap*)sqlite3_realloc(pT->aMap, nByte); + if( aNew==0 ){ + p->rc = SQLITE_NOMEM; + return; + } + + pT->aMap = aNew; + pT->nMapAlloc = nNew; + } + + pT->aMap[pT->nMap].iRowid = iRowid; + pT->aMap[pT->nMap].iPos = iPos; + pT->aMap[pT->nMap].iIter = iIter; + pT->nMap++; + } +} + +/* +** The iterator passed as the only argument must be a tokendata=1 iterator +** (pIter->pTokenDataIter!=0). This function sets the iterator output +** variables (pIter->base.*) according to the contents of the current +** row. +*/ +static void fts5IterSetOutputsTokendata(Fts5Iter *pIter){ + int ii; + int nHit = 0; + i64 iRowid = SMALLEST_INT64; + int iMin = 0; + + Fts5TokenDataIter *pT = pIter->pTokenDataIter; + + pIter->base.nData = 0; + pIter->base.pData = 0; + + for(ii=0; iinIter; ii++){ + Fts5Iter *p = pT->apIter[ii]; + if( p->base.bEof==0 ){ + if( nHit==0 || p->base.iRowidbase.iRowid; + nHit = 1; + pIter->base.pData = p->base.pData; + pIter->base.nData = p->base.nData; + iMin = ii; + }else if( p->base.iRowid==iRowid ){ + nHit++; + } + } + } + + if( nHit==0 ){ + pIter->base.bEof = 1; + }else{ + int eDetail = pIter->pIndex->pConfig->eDetail; + pIter->base.bEof = 0; + pIter->base.iRowid = iRowid; + + if( nHit==1 && eDetail==FTS5_DETAIL_FULL ){ + fts5TokendataIterAppendMap(pIter->pIndex, pT, iMin, iRowid, -1); + }else + if( nHit>1 && eDetail!=FTS5_DETAIL_NONE ){ + int nReader = 0; + int nByte = 0; + i64 iPrev = 0; + + /* Allocate array of iterators if they are not already allocated. */ + if( pT->aPoslistReader==0 ){ + pT->aPoslistReader = (Fts5PoslistReader*)sqlite3Fts5MallocZero( + &pIter->pIndex->rc, + pT->nIter * (sizeof(Fts5PoslistReader) + sizeof(int)) + ); + if( pT->aPoslistReader==0 ) return; + pT->aPoslistToIter = (int*)&pT->aPoslistReader[pT->nIter]; + } + + /* Populate an iterator for each poslist that will be merged */ + for(ii=0; iinIter; ii++){ + Fts5Iter *p = pT->apIter[ii]; + if( iRowid==p->base.iRowid ){ + pT->aPoslistToIter[nReader] = ii; + sqlite3Fts5PoslistReaderInit( + p->base.pData, p->base.nData, &pT->aPoslistReader[nReader++] + ); + nByte += p->base.nData; + } + } + + /* Ensure the output buffer is large enough */ + if( fts5BufferGrow(&pIter->pIndex->rc, &pIter->poslist, nByte+nHit*10) ){ + return; + } + + /* Ensure the token-mapping is large enough */ + if( eDetail==FTS5_DETAIL_FULL && pT->nMapAlloc<(pT->nMap + nByte) ){ + int nNew = (pT->nMapAlloc + nByte) * 2; + Fts5TokenDataMap *aNew = (Fts5TokenDataMap*)sqlite3_realloc( + pT->aMap, nNew*sizeof(Fts5TokenDataMap) + ); + if( aNew==0 ){ + pIter->pIndex->rc = SQLITE_NOMEM; + return; + } + pT->aMap = aNew; + pT->nMapAlloc = nNew; + } + + pIter->poslist.n = 0; + + while( 1 ){ + i64 iMinPos = LARGEST_INT64; + + /* Find smallest position */ + iMin = 0; + for(ii=0; iiaPoslistReader[ii]; + if( pReader->bEof==0 ){ + if( pReader->iPosiPos; + iMin = ii; + } + } + } + + /* If all readers were at EOF, break out of the loop. */ + if( iMinPos==LARGEST_INT64 ) break; + + sqlite3Fts5PoslistSafeAppend(&pIter->poslist, &iPrev, iMinPos); + sqlite3Fts5PoslistReaderNext(&pT->aPoslistReader[iMin]); + + if( eDetail==FTS5_DETAIL_FULL ){ + pT->aMap[pT->nMap].iPos = iMinPos; + pT->aMap[pT->nMap].iIter = pT->aPoslistToIter[iMin]; + pT->aMap[pT->nMap].iRowid = iRowid; + pT->nMap++; + } + } + + pIter->base.pData = pIter->poslist.p; + pIter->base.nData = pIter->poslist.n; + } + } +} + +/* +** The iterator passed as the only argument must be a tokendata=1 iterator +** (pIter->pTokenDataIter!=0). This function advances the iterator. If +** argument bFrom is false, then the iterator is advanced to the next +** entry. Or, if bFrom is true, it is advanced to the first entry with +** a rowid of iFrom or greater. +*/ +static void fts5TokendataIterNext(Fts5Iter *pIter, int bFrom, i64 iFrom){ + int ii; + Fts5TokenDataIter *pT = pIter->pTokenDataIter; + + for(ii=0; iinIter; ii++){ + Fts5Iter *p = pT->apIter[ii]; + if( p->base.bEof==0 + && (p->base.iRowid==pIter->base.iRowid || (bFrom && p->base.iRowidpIndex, p, bFrom, iFrom); + while( bFrom && p->base.bEof==0 + && p->base.iRowidpIndex->rc==SQLITE_OK + ){ + fts5MultiIterNext(p->pIndex, p, 0, 0); + } + } + } + + fts5IterSetOutputsTokendata(pIter); +} + +/* +** If the segment-iterator passed as the first argument is at EOF, then +** set pIter->term to a copy of buffer pTerm. +*/ +static void fts5TokendataSetTermIfEof(Fts5Iter *pIter, Fts5Buffer *pTerm){ + if( pIter && pIter->aSeg[0].pLeaf==0 ){ + fts5BufferSet(&pIter->pIndex->rc, &pIter->aSeg[0].term, pTerm->n, pTerm->p); + } +} + +/* +** This function sets up an iterator to use for a non-prefix query on a +** tokendata=1 table. +*/ +static Fts5Iter *fts5SetupTokendataIter( + Fts5Index *p, /* FTS index to query */ + const u8 *pToken, /* Buffer containing query term */ + int nToken, /* Size of buffer pToken in bytes */ + Fts5Colset *pColset /* Colset to filter on */ +){ + Fts5Iter *pRet = 0; + Fts5TokenDataIter *pSet = 0; + Fts5Structure *pStruct = 0; + const int flags = FTS5INDEX_QUERY_SCANONETERM | FTS5INDEX_QUERY_SCAN; + + Fts5Buffer bSeek = {0, 0, 0}; + Fts5Buffer *pSmall = 0; + + fts5IndexFlush(p); + pStruct = fts5StructureRead(p); + + while( p->rc==SQLITE_OK ){ + Fts5Iter *pPrev = pSet ? pSet->apIter[pSet->nIter-1] : 0; + Fts5Iter *pNew = 0; + Fts5SegIter *pNewIter = 0; + Fts5SegIter *pPrevIter = 0; + + int iLvl, iSeg, ii; + + pNew = fts5MultiIterAlloc(p, pStruct->nSegment); + if( pSmall ){ + fts5BufferSet(&p->rc, &bSeek, pSmall->n, pSmall->p); + fts5BufferAppendBlob(&p->rc, &bSeek, 1, (const u8*)"\0"); + }else{ + fts5BufferSet(&p->rc, &bSeek, nToken, pToken); + } + if( p->rc ){ + sqlite3Fts5IterClose((Fts5IndexIter*)pNew); + break; + } + + pNewIter = &pNew->aSeg[0]; + pPrevIter = (pPrev ? &pPrev->aSeg[0] : 0); + for(iLvl=0; iLvlnLevel; iLvl++){ + for(iSeg=pStruct->aLevel[iLvl].nSeg-1; iSeg>=0; iSeg--){ + Fts5StructureSegment *pSeg = &pStruct->aLevel[iLvl].aSeg[iSeg]; + int bDone = 0; + + if( pPrevIter ){ + if( fts5BufferCompare(pSmall, &pPrevIter->term) ){ + memcpy(pNewIter, pPrevIter, sizeof(Fts5SegIter)); + memset(pPrevIter, 0, sizeof(Fts5SegIter)); + bDone = 1; + }else if( pPrevIter->iEndofDoclist>pPrevIter->pLeaf->szLeaf ){ + fts5SegIterNextInit(p,(const char*)bSeek.p,bSeek.n-1,pSeg,pNewIter); + bDone = 1; + } + } + + if( bDone==0 ){ + fts5SegIterSeekInit(p, bSeek.p, bSeek.n, flags, pSeg, pNewIter); + } + + if( pPrevIter ){ + if( pPrevIter->pTombArray ){ + pNewIter->pTombArray = pPrevIter->pTombArray; + pNewIter->pTombArray->nRef++; + } + }else{ + fts5SegIterAllocTombstone(p, pNewIter); + } + + pNewIter++; + if( pPrevIter ) pPrevIter++; + if( p->rc ) break; + } + } + fts5TokendataSetTermIfEof(pPrev, pSmall); + + pNew->bSkipEmpty = 1; + pNew->pColset = pColset; + fts5IterSetOutputCb(&p->rc, pNew); + + /* Loop through all segments in the new iterator. Find the smallest + ** term that any segment-iterator points to. Iterator pNew will be + ** used for this term. Also, set any iterator that points to a term that + ** does not match pToken/nToken to point to EOF */ + pSmall = 0; + for(ii=0; iinSeg; ii++){ + Fts5SegIter *pII = &pNew->aSeg[ii]; + if( 0==fts5IsTokendataPrefix(&pII->term, pToken, nToken) ){ + fts5SegIterSetEOF(pII); + } + if( pII->pLeaf && (!pSmall || fts5BufferCompare(pSmall, &pII->term)>0) ){ + pSmall = &pII->term; + } + } + + /* If pSmall is still NULL at this point, then the new iterator does + ** not point to any terms that match the query. So delete it and break + ** out of the loop - all required iterators have been collected. */ + if( pSmall==0 ){ + sqlite3Fts5IterClose((Fts5IndexIter*)pNew); + break; + } + + /* Append this iterator to the set and continue. */ + pSet = fts5AppendTokendataIter(p, pSet, pNew); + } + + if( p->rc==SQLITE_OK && pSet ){ + int ii; + for(ii=0; iinIter; ii++){ + Fts5Iter *pIter = pSet->apIter[ii]; + int iSeg; + for(iSeg=0; iSegnSeg; iSeg++){ + pIter->aSeg[iSeg].flags |= FTS5_SEGITER_ONETERM; + } + fts5MultiIterFinishSetup(p, pIter); + } + } + + if( p->rc==SQLITE_OK ){ + pRet = fts5MultiIterAlloc(p, 0); + } + if( pRet ){ + pRet->pTokenDataIter = pSet; + if( pSet ){ + fts5IterSetOutputsTokendata(pRet); + }else{ + pRet->base.bEof = 1; + } + }else{ + fts5TokendataIterDelete(pSet); + } + + fts5StructureRelease(pStruct); + fts5BufferFree(&bSeek); + return pRet; +} + + /* ** Open a new iterator to iterate though all rowid that match the ** specified token or token prefix. @@ -241013,8 +245569,13 @@ static int sqlite3Fts5IndexQuery( if( sqlite3Fts5BufferSize(&p->rc, &buf, nToken+1)==0 ){ int iIdx = 0; /* Index to search */ int iPrefixIdx = 0; /* +1 prefix index */ + int bTokendata = pConfig->bTokendata; if( nToken>0 ) memcpy(&buf.p[1], pToken, nToken); + if( flags & (FTS5INDEX_QUERY_NOTOKENDATA|FTS5INDEX_QUERY_SCAN) ){ + bTokendata = 0; + } + /* Figure out which index to search and set iIdx accordingly. If this ** is a prefix query for which there is no prefix index, set iIdx to ** greater than pConfig->nPrefix to indicate that the query will be @@ -241040,7 +245601,10 @@ static int sqlite3Fts5IndexQuery( } } - if( iIdx<=pConfig->nPrefix ){ + if( bTokendata && iIdx==0 ){ + buf.p[0] = '0'; + pRet = fts5SetupTokendataIter(p, buf.p, nToken+1, pColset); + }else if( iIdx<=pConfig->nPrefix ){ /* Straight index lookup */ Fts5Structure *pStruct = fts5StructureRead(p); buf.p[0] = (u8)(FTS5_MAIN_PREFIX + iIdx); @@ -241087,7 +245651,11 @@ static int sqlite3Fts5IndexQuery( static int sqlite3Fts5IterNext(Fts5IndexIter *pIndexIter){ Fts5Iter *pIter = (Fts5Iter*)pIndexIter; assert( pIter->pIndex->rc==SQLITE_OK ); - fts5MultiIterNext(pIter->pIndex, pIter, 0, 0); + if( pIter->pTokenDataIter ){ + fts5TokendataIterNext(pIter, 0, 0); + }else{ + fts5MultiIterNext(pIter->pIndex, pIter, 0, 0); + } return fts5IndexReturn(pIter->pIndex); } @@ -241120,7 +245688,11 @@ static int sqlite3Fts5IterNextScan(Fts5IndexIter *pIndexIter){ */ static int sqlite3Fts5IterNextFrom(Fts5IndexIter *pIndexIter, i64 iMatch){ Fts5Iter *pIter = (Fts5Iter*)pIndexIter; - fts5MultiIterNextFrom(pIter->pIndex, pIter, iMatch); + if( pIter->pTokenDataIter ){ + fts5TokendataIterNext(pIter, 1, iMatch); + }else{ + fts5MultiIterNextFrom(pIter->pIndex, pIter, iMatch); + } return fts5IndexReturn(pIter->pIndex); } @@ -241135,6 +245707,99 @@ static const char *sqlite3Fts5IterTerm(Fts5IndexIter *pIndexIter, int *pn){ return (z ? &z[1] : 0); } +/* +** This is used by xInstToken() to access the token at offset iOff, column +** iCol of row iRowid. The token is returned via output variables *ppOut +** and *pnOut. The iterator passed as the first argument must be a tokendata=1 +** iterator (pIter->pTokenDataIter!=0). +*/ +static int sqlite3Fts5IterToken( + Fts5IndexIter *pIndexIter, + i64 iRowid, + int iCol, + int iOff, + const char **ppOut, int *pnOut +){ + Fts5Iter *pIter = (Fts5Iter*)pIndexIter; + Fts5TokenDataIter *pT = pIter->pTokenDataIter; + Fts5TokenDataMap *aMap = pT->aMap; + i64 iPos = (((i64)iCol)<<32) + iOff; + + int i1 = 0; + int i2 = pT->nMap; + int iTest = 0; + + while( i2>i1 ){ + iTest = (i1 + i2) / 2; + + if( aMap[iTest].iRowidiRowid ){ + i2 = iTest; + }else{ + if( aMap[iTest].iPosiPos ){ + i2 = iTest; + }else{ + break; + } + } + } + + if( i2>i1 ){ + Fts5Iter *pMap = pT->apIter[aMap[iTest].iIter]; + *ppOut = (const char*)pMap->aSeg[0].term.p+1; + *pnOut = pMap->aSeg[0].term.n-1; + } + + return SQLITE_OK; +} + +/* +** Clear any existing entries from the token-map associated with the +** iterator passed as the only argument. +*/ +static void sqlite3Fts5IndexIterClearTokendata(Fts5IndexIter *pIndexIter){ + Fts5Iter *pIter = (Fts5Iter*)pIndexIter; + if( pIter && pIter->pTokenDataIter ){ + pIter->pTokenDataIter->nMap = 0; + } +} + +/* +** Set a token-mapping for the iterator passed as the first argument. This +** is used in detail=column or detail=none mode when a token is requested +** using the xInstToken() API. In this case the caller tokenizers the +** current row and configures the token-mapping via multiple calls to this +** function. +*/ +static int sqlite3Fts5IndexIterWriteTokendata( + Fts5IndexIter *pIndexIter, + const char *pToken, int nToken, + i64 iRowid, int iCol, int iOff +){ + Fts5Iter *pIter = (Fts5Iter*)pIndexIter; + Fts5TokenDataIter *pT = pIter->pTokenDataIter; + Fts5Index *p = pIter->pIndex; + int ii; + + assert( p->pConfig->eDetail!=FTS5_DETAIL_FULL ); + assert( pIter->pTokenDataIter ); + + for(ii=0; iinIter; ii++){ + Fts5Buffer *pTerm = &pT->apIter[ii]->aSeg[0].term; + if( nToken==pTerm->n-1 && memcmp(pToken, pTerm->p+1, nToken)==0 ) break; + } + if( iinIter ){ + fts5TokendataIterAppendMap(p, pT, ii, iRowid, (((i64)iCol)<<32) + iOff); + } + return fts5IndexReturn(p); +} + /* ** Close an iterator opened by an earlier call to sqlite3Fts5IndexQuery(). */ @@ -241142,6 +245807,7 @@ static void sqlite3Fts5IterClose(Fts5IndexIter *pIndexIter){ if( pIndexIter ){ Fts5Iter *pIter = (Fts5Iter*)pIndexIter; Fts5Index *pIndex = pIter->pIndex; + fts5TokendataIterDelete(pIter->pTokenDataIter); fts5MultiIterFree(pIter); sqlite3Fts5IndexCloseReader(pIndex); } @@ -241649,7 +246315,9 @@ static int fts5QueryCksum( int eDetail = p->pConfig->eDetail; u64 cksum = *pCksum; Fts5IndexIter *pIter = 0; - int rc = sqlite3Fts5IndexQuery(p, z, n, flags, 0, &pIter); + int rc = sqlite3Fts5IndexQuery( + p, z, n, (flags | FTS5INDEX_QUERY_NOTOKENDATA), 0, &pIter + ); while( rc==SQLITE_OK && ALWAYS(pIter!=0) && 0==sqlite3Fts5IterEof(pIter) ){ i64 rowid = pIter->iRowid; @@ -241816,7 +246484,7 @@ static void fts5IndexIntegrityCheckEmpty( } static void fts5IntegrityCheckPgidx(Fts5Index *p, Fts5Data *pLeaf){ - int iTermOff = 0; + i64 iTermOff = 0; int ii; Fts5Buffer buf1 = {0,0,0}; @@ -241825,7 +246493,7 @@ static void fts5IntegrityCheckPgidx(Fts5Index *p, Fts5Data *pLeaf){ ii = pLeaf->szLeaf; while( iinn && p->rc==SQLITE_OK ){ int res; - int iOff; + i64 iOff; int nIncr; ii += fts5GetVarint32(&pLeaf->p[ii], nIncr); @@ -242347,6 +247015,24 @@ static void fts5DecodeRowidList( } #endif /* SQLITE_TEST || SQLITE_FTS5_DEBUG */ +#if defined(SQLITE_TEST) || defined(SQLITE_FTS5_DEBUG) +static void fts5BufferAppendTerm(int *pRc, Fts5Buffer *pBuf, Fts5Buffer *pTerm){ + int ii; + fts5BufferGrow(pRc, pBuf, pTerm->n*2 + 1); + if( *pRc==SQLITE_OK ){ + for(ii=0; iin; ii++){ + if( pTerm->p[ii]==0x00 ){ + pBuf->p[pBuf->n++] = '\\'; + pBuf->p[pBuf->n++] = '0'; + }else{ + pBuf->p[pBuf->n++] = pTerm->p[ii]; + } + } + pBuf->p[pBuf->n] = 0x00; + } +} +#endif /* SQLITE_TEST || SQLITE_FTS5_DEBUG */ + #if defined(SQLITE_TEST) || defined(SQLITE_FTS5_DEBUG) /* ** The implementation of user-defined scalar function fts5_decode(). @@ -242454,9 +247140,8 @@ static void fts5DecodeFunction( iOff += fts5GetVarint32(&a[iOff], nAppend); term.n = nKeep; fts5BufferAppendBlob(&rc, &term, nAppend, &a[iOff]); - sqlite3Fts5BufferAppendPrintf( - &rc, &s, " term=%.*s", term.n, (const char*)term.p - ); + sqlite3Fts5BufferAppendPrintf(&rc, &s, " term="); + fts5BufferAppendTerm(&rc, &s, &term); iOff += nAppend; /* Figure out where the doclist for this term ends */ @@ -242564,9 +247249,8 @@ static void fts5DecodeFunction( fts5BufferAppendBlob(&rc, &term, nByte, &a[iOff]); iOff += nByte; - sqlite3Fts5BufferAppendPrintf( - &rc, &s, " term=%.*s", term.n, (const char*)term.p - ); + sqlite3Fts5BufferAppendPrintf(&rc, &s, " term="); + fts5BufferAppendTerm(&rc, &s, &term); iOff += fts5DecodeDoclist(&rc, &s, &a[iOff], iEnd-iOff); } @@ -242900,7 +247584,8 @@ static int sqlite3Fts5IndexInit(sqlite3 *db){ 0, /* xSavepoint */ 0, /* xRelease */ 0, /* xRollbackTo */ - 0 /* xShadowName */ + 0, /* xShadowName */ + 0 /* xIntegrity */ }; rc = sqlite3_create_module(db, "fts5_structure", &fts5structure_module, 0); } @@ -243039,6 +247724,8 @@ struct Fts5FullTable { Fts5Storage *pStorage; /* Document store */ Fts5Global *pGlobal; /* Global (connection wide) data */ Fts5Cursor *pSortCsr; /* Sort data from this cursor */ + int iSavepoint; /* Successful xSavepoint()+1 */ + #ifdef SQLITE_DEBUG struct Fts5TransactionState ts; #endif @@ -243327,6 +248014,13 @@ static int fts5InitVtab( pConfig->pzErrmsg = 0; } + if( rc==SQLITE_OK && pConfig->eContent==FTS5_CONTENT_NORMAL ){ + rc = sqlite3_vtab_config(db, SQLITE_VTAB_CONSTRAINT_SUPPORT, (int)1); + } + if( rc==SQLITE_OK ){ + rc = sqlite3_vtab_config(db, SQLITE_VTAB_INNOCUOUS); + } + if( rc!=SQLITE_OK ){ fts5FreeVtab(pTab); pTab = 0; @@ -243569,12 +248263,15 @@ static int fts5BestIndexMethod(sqlite3_vtab *pVTab, sqlite3_index_info *pInfo){ } idxStr[iIdxStr] = '\0'; - /* Set idxFlags flags for the ORDER BY clause */ + /* Set idxFlags flags for the ORDER BY clause + ** + ** Note that tokendata=1 tables cannot currently handle "ORDER BY rowid DESC". + */ if( pInfo->nOrderBy==1 ){ int iSort = pInfo->aOrderBy[0].iColumn; if( iSort==(pConfig->nCol+1) && bSeenMatch ){ idxFlags |= FTS5_BI_ORDER_RANK; - }else if( iSort==-1 ){ + }else if( iSort==-1 && (!pInfo->aOrderBy[0].desc || !pConfig->bTokendata) ){ idxFlags |= FTS5_BI_ORDER_ROWID; } if( BitFlagTest(idxFlags, FTS5_BI_ORDER_RANK|FTS5_BI_ORDER_ROWID) ){ @@ -243826,6 +248523,16 @@ static int fts5NextMethod(sqlite3_vtab_cursor *pCursor){ ); assert( !CsrFlagTest(pCsr, FTS5CSR_EOF) ); + /* If this cursor uses FTS5_PLAN_MATCH and this is a tokendata=1 table, + ** clear any token mappings accumulated at the fts5_index.c level. In + ** other cases, specifically FTS5_PLAN_SOURCE and FTS5_PLAN_SORTED_MATCH, + ** we need to retain the mappings for the entire query. */ + if( pCsr->ePlan==FTS5_PLAN_MATCH + && ((Fts5Table*)pCursor->pVtab)->pConfig->bTokendata + ){ + sqlite3Fts5ExprClearTokens(pCsr->pExpr); + } + if( pCsr->ePlan<3 ){ int bSkip = 0; if( (rc = fts5CursorReseek(pCsr, &bSkip)) || bSkip ) return rc; @@ -244251,6 +248958,9 @@ static int fts5FilterMethod( pCsr->iFirstRowid = fts5GetRowidLimit(pRowidGe, SMALLEST_INT64); } + rc = sqlite3Fts5IndexLoadConfig(pTab->p.pIndex); + if( rc!=SQLITE_OK ) goto filter_out; + if( pTab->pSortCsr ){ /* If pSortCsr is non-NULL, then this call is being made as part of ** processing for a "... MATCH ORDER BY rank" query (ePlan is @@ -244273,6 +248983,7 @@ static int fts5FilterMethod( pCsr->pExpr = pTab->pSortCsr->pExpr; rc = fts5CursorFirst(pTab, pCsr, bDesc); }else if( pCsr->pExpr ){ + assert( rc==SQLITE_OK ); rc = fts5CursorParseRank(pConfig, pCsr, pRank); if( rc==SQLITE_OK ){ if( bOrderByRank ){ @@ -244444,6 +249155,7 @@ static int fts5SpecialInsert( Fts5Config *pConfig = pTab->p.pConfig; int rc = SQLITE_OK; int bError = 0; + int bLoadConfig = 0; if( 0==sqlite3_stricmp("delete-all", zCmd) ){ if( pConfig->eContent==FTS5_CONTENT_NORMAL ){ @@ -244455,6 +249167,7 @@ static int fts5SpecialInsert( }else{ rc = sqlite3Fts5StorageDeleteAll(pTab->pStorage); } + bLoadConfig = 1; }else if( 0==sqlite3_stricmp("rebuild", zCmd) ){ if( pConfig->eContent==FTS5_CONTENT_NONE ){ fts5SetVtabError(pTab, @@ -244464,6 +249177,7 @@ static int fts5SpecialInsert( }else{ rc = sqlite3Fts5StorageRebuild(pTab->pStorage); } + bLoadConfig = 1; }else if( 0==sqlite3_stricmp("optimize", zCmd) ){ rc = sqlite3Fts5StorageOptimize(pTab->pStorage); }else if( 0==sqlite3_stricmp("merge", zCmd) ){ @@ -244476,8 +249190,13 @@ static int fts5SpecialInsert( }else if( 0==sqlite3_stricmp("prefix-index", zCmd) ){ pConfig->bPrefixIndex = sqlite3_value_int(pVal); #endif + }else if( 0==sqlite3_stricmp("flush", zCmd) ){ + rc = sqlite3Fts5FlushToDisk(&pTab->p); }else{ - rc = sqlite3Fts5IndexLoadConfig(pTab->p.pIndex); + rc = sqlite3Fts5FlushToDisk(&pTab->p); + if( rc==SQLITE_OK ){ + rc = sqlite3Fts5IndexLoadConfig(pTab->p.pIndex); + } if( rc==SQLITE_OK ){ rc = sqlite3Fts5ConfigSetValue(pTab->p.pConfig, zCmd, pVal, &bError); } @@ -244489,6 +249208,12 @@ static int fts5SpecialInsert( } } } + + if( rc==SQLITE_OK && bLoadConfig ){ + pTab->p.pConfig->iCookie--; + rc = sqlite3Fts5IndexLoadConfig(pTab->p.pIndex); + } + return rc; } @@ -244607,7 +249332,7 @@ static int fts5UpdateMethod( assert( nArg!=1 || eType0==SQLITE_INTEGER ); /* Filter out attempts to run UPDATE or DELETE on contentless tables. - ** This is not suported. Except - DELETE is supported if the CREATE + ** This is not suported. Except - they are both supported if the CREATE ** VIRTUAL TABLE statement contained "contentless_delete=1". */ if( eType0==SQLITE_INTEGER && pConfig->eContent==FTS5_CONTENT_NONE @@ -244636,7 +249361,8 @@ static int fts5UpdateMethod( } else if( eType0!=SQLITE_INTEGER ){ - /* If this is a REPLACE, first remove the current entry (if any) */ + /* An INSERT statement. If the conflict-mode is REPLACE, first remove + ** the current entry (if any). */ if( eConflict==SQLITE_REPLACE && eType1==SQLITE_INTEGER ){ i64 iNew = sqlite3_value_int64(apVal[1]); /* Rowid to delete */ rc = sqlite3Fts5StorageDelete(pTab->pStorage, iNew, 0); @@ -244795,7 +249521,10 @@ static int fts5ApiColumnText( ){ int rc = SQLITE_OK; Fts5Cursor *pCsr = (Fts5Cursor*)pCtx; - if( fts5IsContentless((Fts5FullTable*)(pCsr->base.pVtab)) + Fts5Table *pTab = (Fts5Table*)(pCsr->base.pVtab); + if( iCol<0 || iCol>=pTab->pConfig->nCol ){ + rc = SQLITE_RANGE; + }else if( fts5IsContentless((Fts5FullTable*)(pCsr->base.pVtab)) || pCsr->ePlan==FTS5_PLAN_SPECIAL ){ *pz = 0; @@ -244820,8 +249549,9 @@ static int fts5CsrPoslist( int rc = SQLITE_OK; int bLive = (pCsr->pSorter==0); - if( CsrFlagTest(pCsr, FTS5CSR_REQUIRE_POSLIST) ){ - + if( iPhrase<0 || iPhrase>=sqlite3Fts5ExprPhraseCount(pCsr->pExpr) ){ + rc = SQLITE_RANGE; + }else if( CsrFlagTest(pCsr, FTS5CSR_REQUIRE_POSLIST) ){ if( pConfig->eDetail!=FTS5_DETAIL_FULL ){ Fts5PoslistPopulator *aPopulator; int i; @@ -244845,15 +249575,21 @@ static int fts5CsrPoslist( CsrFlagClear(pCsr, FTS5CSR_REQUIRE_POSLIST); } - if( pCsr->pSorter && pConfig->eDetail==FTS5_DETAIL_FULL ){ - Fts5Sorter *pSorter = pCsr->pSorter; - int i1 = (iPhrase==0 ? 0 : pSorter->aIdx[iPhrase-1]); - *pn = pSorter->aIdx[iPhrase] - i1; - *pa = &pSorter->aPoslist[i1]; + if( rc==SQLITE_OK ){ + if( pCsr->pSorter && pConfig->eDetail==FTS5_DETAIL_FULL ){ + Fts5Sorter *pSorter = pCsr->pSorter; + int i1 = (iPhrase==0 ? 0 : pSorter->aIdx[iPhrase-1]); + *pn = pSorter->aIdx[iPhrase] - i1; + *pa = &pSorter->aPoslist[i1]; + }else{ + *pn = sqlite3Fts5ExprPoslist(pCsr->pExpr, iPhrase, pa); + } }else{ - *pn = sqlite3Fts5ExprPoslist(pCsr->pExpr, iPhrase, pa); + *pa = 0; + *pn = 0; } + return rc; } @@ -244960,12 +249696,6 @@ static int fts5ApiInst( ){ if( iIdx<0 || iIdx>=pCsr->nInstCount ){ rc = SQLITE_RANGE; -#if 0 - }else if( fts5IsOffsetless((Fts5Table*)pCsr->base.pVtab) ){ - *piPhrase = pCsr->aInst[iIdx*3]; - *piCol = pCsr->aInst[iIdx*3 + 2]; - *piOff = -1; -#endif }else{ *piPhrase = pCsr->aInst[iIdx*3]; *piCol = pCsr->aInst[iIdx*3 + 1]; @@ -245220,13 +249950,56 @@ static int fts5ApiPhraseFirstColumn( return rc; } +/* +** xQueryToken() API implemenetation. +*/ +static int fts5ApiQueryToken( + Fts5Context* pCtx, + int iPhrase, + int iToken, + const char **ppOut, + int *pnOut +){ + Fts5Cursor *pCsr = (Fts5Cursor*)pCtx; + return sqlite3Fts5ExprQueryToken(pCsr->pExpr, iPhrase, iToken, ppOut, pnOut); +} + +/* +** xInstToken() API implemenetation. +*/ +static int fts5ApiInstToken( + Fts5Context *pCtx, + int iIdx, + int iToken, + const char **ppOut, int *pnOut +){ + Fts5Cursor *pCsr = (Fts5Cursor*)pCtx; + int rc = SQLITE_OK; + if( CsrFlagTest(pCsr, FTS5CSR_REQUIRE_INST)==0 + || SQLITE_OK==(rc = fts5CacheInstArray(pCsr)) + ){ + if( iIdx<0 || iIdx>=pCsr->nInstCount ){ + rc = SQLITE_RANGE; + }else{ + int iPhrase = pCsr->aInst[iIdx*3]; + int iCol = pCsr->aInst[iIdx*3 + 1]; + int iOff = pCsr->aInst[iIdx*3 + 2]; + i64 iRowid = fts5CursorRowid(pCsr); + rc = sqlite3Fts5ExprInstToken( + pCsr->pExpr, iRowid, iPhrase, iCol, iOff, iToken, ppOut, pnOut + ); + } + } + return rc; +} + static int fts5ApiQueryPhrase(Fts5Context*, int, void*, int(*)(const Fts5ExtensionApi*, Fts5Context*, void*) ); static const Fts5ExtensionApi sFts5Api = { - 2, /* iVersion */ + 3, /* iVersion */ fts5ApiUserData, fts5ApiColumnCount, fts5ApiRowCount, @@ -245246,6 +250019,8 @@ static const Fts5ExtensionApi sFts5Api = { fts5ApiPhraseNext, fts5ApiPhraseFirstColumn, fts5ApiPhraseNextColumn, + fts5ApiQueryToken, + fts5ApiInstToken }; /* @@ -245510,8 +250285,10 @@ static int fts5RenameMethod( sqlite3_vtab *pVtab, /* Virtual table handle */ const char *zName /* New name of table */ ){ + int rc; Fts5FullTable *pTab = (Fts5FullTable*)pVtab; - return sqlite3Fts5StorageRename(pTab->pStorage, zName); + rc = sqlite3Fts5StorageRename(pTab->pStorage, zName); + return rc; } static int sqlite3Fts5FlushToDisk(Fts5Table *pTab){ @@ -245525,9 +250302,15 @@ static int sqlite3Fts5FlushToDisk(Fts5Table *pTab){ ** Flush the contents of the pending-terms table to disk. */ static int fts5SavepointMethod(sqlite3_vtab *pVtab, int iSavepoint){ - UNUSED_PARAM(iSavepoint); /* Call below is a no-op for NDEBUG builds */ - fts5CheckTransactionState((Fts5FullTable*)pVtab, FTS5_SAVEPOINT, iSavepoint); - return sqlite3Fts5FlushToDisk((Fts5Table*)pVtab); + Fts5FullTable *pTab = (Fts5FullTable*)pVtab; + int rc = SQLITE_OK; + + fts5CheckTransactionState(pTab, FTS5_SAVEPOINT, iSavepoint); + rc = sqlite3Fts5FlushToDisk((Fts5Table*)pVtab); + if( rc==SQLITE_OK ){ + pTab->iSavepoint = iSavepoint+1; + } + return rc; } /* @@ -245536,9 +250319,16 @@ static int fts5SavepointMethod(sqlite3_vtab *pVtab, int iSavepoint){ ** This is a no-op. */ static int fts5ReleaseMethod(sqlite3_vtab *pVtab, int iSavepoint){ - UNUSED_PARAM(iSavepoint); /* Call below is a no-op for NDEBUG builds */ - fts5CheckTransactionState((Fts5FullTable*)pVtab, FTS5_RELEASE, iSavepoint); - return sqlite3Fts5FlushToDisk((Fts5Table*)pVtab); + Fts5FullTable *pTab = (Fts5FullTable*)pVtab; + int rc = SQLITE_OK; + fts5CheckTransactionState(pTab, FTS5_RELEASE, iSavepoint); + if( (iSavepoint+1)iSavepoint ){ + rc = sqlite3Fts5FlushToDisk(&pTab->p); + if( rc==SQLITE_OK ){ + pTab->iSavepoint = iSavepoint; + } + } + return rc; } /* @@ -245548,11 +250338,14 @@ static int fts5ReleaseMethod(sqlite3_vtab *pVtab, int iSavepoint){ */ static int fts5RollbackToMethod(sqlite3_vtab *pVtab, int iSavepoint){ Fts5FullTable *pTab = (Fts5FullTable*)pVtab; - UNUSED_PARAM(iSavepoint); /* Call below is a no-op for NDEBUG builds */ + int rc = SQLITE_OK; fts5CheckTransactionState(pTab, FTS5_ROLLBACKTO, iSavepoint); fts5TripCursors(pTab); - pTab->p.pConfig->pgsz = 0; - return sqlite3Fts5StorageRollback(pTab->pStorage); + if( (iSavepoint+1)<=pTab->iSavepoint ){ + pTab->p.pConfig->pgsz = 0; + rc = sqlite3Fts5StorageRollback(pTab->pStorage); + } + return rc; } /* @@ -245754,7 +250547,7 @@ static void fts5SourceIdFunc( ){ assert( nArg==0 ); UNUSED_PARAM2(nArg, apUnused); - sqlite3_result_text(pCtx, "fts5: 2023-09-11 12:01:27 2d3a40c05c49e1a49264912b1a05bc2143ac0e7c3df588276ce80a4cbc9bd1b0", -1, SQLITE_TRANSIENT); + sqlite3_result_text(pCtx, "fts5: 2024-01-30 16:01:20 e876e51a0ed5c5b3126f52e532044363a014bc594cfefa87ffb5b82257cc467a", -1, SQLITE_TRANSIENT); } /* @@ -245772,9 +250565,40 @@ static int fts5ShadowName(const char *zName){ return 0; } +/* +** Run an integrity check on the FTS5 data structures. Return a string +** if anything is found amiss. Return a NULL pointer if everything is +** OK. +*/ +static int fts5IntegrityMethod( + sqlite3_vtab *pVtab, /* the FTS5 virtual table to check */ + const char *zSchema, /* Name of schema in which this table lives */ + const char *zTabname, /* Name of the table itself */ + int isQuick, /* True if this is a quick-check */ + char **pzErr /* Write error message here */ +){ + Fts5FullTable *pTab = (Fts5FullTable*)pVtab; + int rc; + + assert( pzErr!=0 && *pzErr==0 ); + UNUSED_PARAM(isQuick); + rc = sqlite3Fts5StorageIntegrity(pTab->pStorage, 0); + if( (rc&0xff)==SQLITE_CORRUPT ){ + *pzErr = sqlite3_mprintf("malformed inverted index for FTS5 table %s.%s", + zSchema, zTabname); + }else if( rc!=SQLITE_OK ){ + *pzErr = sqlite3_mprintf("unable to validate the inverted index for" + " FTS5 table %s.%s: %s", + zSchema, zTabname, sqlite3_errstr(rc)); + } + sqlite3Fts5IndexCloseReader(pTab->p.pIndex); + + return SQLITE_OK; +} + static int fts5Init(sqlite3 *db){ static const sqlite3_module fts5Mod = { - /* iVersion */ 3, + /* iVersion */ 4, /* xCreate */ fts5CreateMethod, /* xConnect */ fts5ConnectMethod, /* xBestIndex */ fts5BestIndexMethod, @@ -245797,7 +250621,8 @@ static int fts5Init(sqlite3 *db){ /* xSavepoint */ fts5SavepointMethod, /* xRelease */ fts5ReleaseMethod, /* xRollbackTo */ fts5RollbackToMethod, - /* xShadowName */ fts5ShadowName + /* xShadowName */ fts5ShadowName, + /* xIntegrity */ fts5IntegrityMethod }; int rc; @@ -246563,7 +251388,7 @@ static int sqlite3Fts5StorageRebuild(Fts5Storage *p){ } if( rc==SQLITE_OK ){ - rc = fts5StorageGetStmt(p, FTS5_STMT_SCAN, &pScan, 0); + rc = fts5StorageGetStmt(p, FTS5_STMT_SCAN, &pScan, pConfig->pzErrmsg); } while( rc==SQLITE_OK && SQLITE_ROW==sqlite3_step(pScan) ){ @@ -247074,7 +251899,9 @@ static int sqlite3Fts5StorageSync(Fts5Storage *p){ i64 iLastRowid = sqlite3_last_insert_rowid(p->pConfig->db); if( p->bTotalsValid ){ rc = fts5StorageSaveTotals(p); - p->bTotalsValid = 0; + if( rc==SQLITE_OK ){ + p->bTotalsValid = 0; + } } if( rc==SQLITE_OK ){ rc = sqlite3Fts5IndexSync(p->pIndex); @@ -247348,6 +252175,12 @@ static const unsigned char sqlite3Utf8Trans1[] = { #endif /* ifndef SQLITE_AMALGAMATION */ +#define FTS5_SKIP_UTF8(zIn) { \ + if( ((unsigned char)(*(zIn++)))>=0xc0 ){ \ + while( (((unsigned char)*zIn) & 0xc0)==0x80 ){ zIn++; } \ + } \ +} + typedef struct Unicode61Tokenizer Unicode61Tokenizer; struct Unicode61Tokenizer { unsigned char aTokenChar[128]; /* ASCII range token characters */ @@ -248383,6 +253216,7 @@ static int fts5PorterTokenize( typedef struct TrigramTokenizer TrigramTokenizer; struct TrigramTokenizer { int bFold; /* True to fold to lower-case */ + int iFoldParam; /* Parameter to pass to Fts5UnicodeFold() */ }; /* @@ -248409,6 +253243,7 @@ static int fts5TriCreate( }else{ int i; pNew->bFold = 1; + pNew->iFoldParam = 0; for(i=0; rc==SQLITE_OK && ibFold = (zArg[0]=='0'); } + }else if( 0==sqlite3_stricmp(azArg[i], "remove_diacritics") ){ + if( (zArg[0]!='0' && zArg[0]!='1' && zArg[0]!='2') || zArg[1] ){ + rc = SQLITE_ERROR; + }else{ + pNew->iFoldParam = (zArg[0]!='0') ? 2 : 0; + } }else{ rc = SQLITE_ERROR; } } + + if( pNew->iFoldParam!=0 && pNew->bFold==0 ){ + rc = SQLITE_ERROR; + } + if( rc!=SQLITE_OK ){ fts5TriDelete((Fts5Tokenizer*)pNew); pNew = 0; @@ -248443,40 +253289,62 @@ static int fts5TriTokenize( TrigramTokenizer *p = (TrigramTokenizer*)pTok; int rc = SQLITE_OK; char aBuf[32]; + char *zOut = aBuf; + int ii; const unsigned char *zIn = (const unsigned char*)pText; const unsigned char *zEof = &zIn[nText]; u32 iCode; + int aStart[3]; /* Input offset of each character in aBuf[] */ UNUSED_PARAM(unusedFlags); - while( 1 ){ - char *zOut = aBuf; - int iStart = zIn - (const unsigned char*)pText; - const unsigned char *zNext; - READ_UTF8(zIn, zEof, iCode); - if( iCode==0 ) break; - zNext = zIn; - if( zInbFold ) iCode = sqlite3Fts5UnicodeFold(iCode, 0); - WRITE_UTF8(zOut, iCode); + /* Populate aBuf[] with the characters for the first trigram. */ + for(ii=0; ii<3; ii++){ + do { + aStart[ii] = zIn - (const unsigned char*)pText; + READ_UTF8(zIn, zEof, iCode); + if( iCode==0 ) return SQLITE_OK; + if( p->bFold ) iCode = sqlite3Fts5UnicodeFold(iCode, p->iFoldParam); + }while( iCode==0 ); + WRITE_UTF8(zOut, iCode); + } + + /* At the start of each iteration of this loop: + ** + ** aBuf: Contains 3 characters. The 3 characters of the next trigram. + ** zOut: Points to the byte following the last character in aBuf. + ** aStart[3]: Contains the byte offset in the input text corresponding + ** to the start of each of the three characters in the buffer. + */ + assert( zIn<=zEof ); + while( 1 ){ + int iNext; /* Start of character following current tri */ + const char *z1; + + /* Read characters from the input up until the first non-diacritic */ + do { + iNext = zIn - (const unsigned char*)pText; READ_UTF8(zIn, zEof, iCode); if( iCode==0 ) break; - }else{ - break; - } - if( zInbFold ) iCode = sqlite3Fts5UnicodeFold(iCode, 0); - WRITE_UTF8(zOut, iCode); - READ_UTF8(zIn, zEof, iCode); - if( iCode==0 ) break; - if( p->bFold ) iCode = sqlite3Fts5UnicodeFold(iCode, 0); - WRITE_UTF8(zOut, iCode); - }else{ - break; - } - rc = xToken(pCtx, 0, aBuf, zOut-aBuf, iStart, iStart + zOut-aBuf); - if( rc!=SQLITE_OK ) break; - zIn = zNext; + if( p->bFold ) iCode = sqlite3Fts5UnicodeFold(iCode, p->iFoldParam); + }while( iCode==0 ); + + /* Pass the current trigram back to fts5 */ + rc = xToken(pCtx, 0, aBuf, zOut-aBuf, aStart[0], iNext); + if( iCode==0 || rc!=SQLITE_OK ) break; + + /* Remove the first character from buffer aBuf[]. Append the character + ** with codepoint iCode. */ + z1 = aBuf; + FTS5_SKIP_UTF8(z1); + memmove(aBuf, z1, zOut - z1); + zOut -= (z1 - aBuf); + WRITE_UTF8(zOut, iCode); + + /* Update the aStart[] array */ + aStart[0] = aStart[1]; + aStart[1] = aStart[2]; + aStart[2] = iNext; } return rc; @@ -248499,7 +253367,9 @@ static int sqlite3Fts5TokenizerPattern( ){ if( xCreate==fts5TriCreate ){ TrigramTokenizer *p = (TrigramTokenizer*)pTok; - return p->bFold ? FTS5_PATTERN_LIKE : FTS5_PATTERN_GLOB; + if( p->iFoldParam==0 ){ + return p->bFold ? FTS5_PATTERN_LIKE : FTS5_PATTERN_GLOB; + } } return FTS5_PATTERN_NONE; } @@ -250288,7 +255158,7 @@ static int fts5VocabFilterMethod( if( pEq ){ zTerm = (const char *)sqlite3_value_text(pEq); nTerm = sqlite3_value_bytes(pEq); - f = 0; + f = FTS5INDEX_QUERY_NOTOKENDATA; }else{ if( pGe ){ zTerm = (const char *)sqlite3_value_text(pGe); @@ -250442,7 +255312,8 @@ static int sqlite3Fts5VocabInit(Fts5Global *pGlobal, sqlite3 *db){ /* xSavepoint */ 0, /* xRelease */ 0, /* xRollbackTo */ 0, - /* xShadowName */ 0 + /* xShadowName */ 0, + /* xIntegrity */ 0 }; void *p = (void*)pGlobal; @@ -250771,6 +255642,7 @@ static sqlite3_module stmtModule = { 0, /* xRelease */ 0, /* xRollbackTo */ 0, /* xShadowName */ + 0 /* xIntegrity */ }; #endif /* SQLITE_OMIT_VIRTUALTABLE */ diff --git a/Data/SQLite/src/sqlite3.h b/Data/SQLite/src/sqlite3.h index b9d069298..4fdfde004 100644 --- a/Data/SQLite/src/sqlite3.h +++ b/Data/SQLite/src/sqlite3.h @@ -146,9 +146,9 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.43.1" -#define SQLITE_VERSION_NUMBER 3043001 -#define SQLITE_SOURCE_ID "2023-09-11 12:01:27 2d3a40c05c49e1a49264912b1a05bc2143ac0e7c3df588276ce80a4cbc9bd1b0" +#define SQLITE_VERSION "3.45.1" +#define SQLITE_VERSION_NUMBER 3045001 +#define SQLITE_SOURCE_ID "2024-01-30 16:01:20 e876e51a0ed5c5b3126f52e532044363a014bc594cfefa87ffb5b82257cc467a" /* ** CAPI3REF: Run-Time Library Version Numbers @@ -2127,7 +2127,7 @@ struct sqlite3_mem_methods { ** is stored in each sorted record and the required column values loaded ** from the database as records are returned in sorted order. The default ** value for this option is to never use this optimization. Specifying a -** negative value for this option restores the default behaviour. +** negative value for this option restores the default behavior. ** This option is only available if SQLite is compiled with the ** [SQLITE_ENABLE_SORTER_REFERENCES] compile-time option. ** @@ -2302,7 +2302,7 @@ struct sqlite3_mem_methods { ** database handle, SQLite checks if this will mean that there are now no ** connections at all to the database. If so, it performs a checkpoint ** operation before closing the connection. This option may be used to -** override this behaviour. The first parameter passed to this operation +** override this behavior. The first parameter passed to this operation ** is an integer - positive to disable checkpoints-on-close, or zero (the ** default) to enable them, and negative to leave the setting unchanged. ** The second parameter is a pointer to an integer @@ -3954,14 +3954,17 @@ SQLITE_API void sqlite3_free_filename(sqlite3_filename); ** ** ** ^The sqlite3_errmsg() and sqlite3_errmsg16() return English-language -** text that describes the error, as either UTF-8 or UTF-16 respectively. +** text that describes the error, as either UTF-8 or UTF-16 respectively, +** or NULL if no error message is available. +** (See how SQLite handles [invalid UTF] for exceptions to this rule.) ** ^(Memory to hold the error message string is managed internally. ** The application does not need to worry about freeing the result. ** However, the error string might be overwritten or deallocated by ** subsequent calls to other SQLite interface functions.)^ ** -** ^The sqlite3_errstr() interface returns the English-language text -** that describes the [result code], as UTF-8. +** ^The sqlite3_errstr(E) interface returns the English-language text +** that describes the [result code] E, as UTF-8, or NULL if E is not an +** result code for which a text error message is available. ** ^(Memory to hold the error message string is managed internally ** and must not be freed by the application)^. ** @@ -5325,6 +5328,7 @@ SQLITE_API int sqlite3_finalize(sqlite3_stmt *pStmt); */ SQLITE_API int sqlite3_reset(sqlite3_stmt *pStmt); + /* ** CAPI3REF: Create Or Redefine SQL Functions ** KEYWORDS: {function creation routines} @@ -5571,13 +5575,27 @@ SQLITE_API int sqlite3_create_window_function( **
      ** ** [[SQLITE_SUBTYPE]]
      SQLITE_SUBTYPE
      -** The SQLITE_SUBTYPE flag indicates to SQLite that a function may call +** The SQLITE_SUBTYPE flag indicates to SQLite that a function might call ** [sqlite3_value_subtype()] to inspect the sub-types of its arguments. -** Specifying this flag makes no difference for scalar or aggregate user -** functions. However, if it is not specified for a user-defined window -** function, then any sub-types belonging to arguments passed to the window -** function may be discarded before the window function is called (i.e. -** sqlite3_value_subtype() will always return 0). +** This flag instructs SQLite to omit some corner-case optimizations that +** might disrupt the operation of the [sqlite3_value_subtype()] function, +** causing it to return zero rather than the correct subtype(). +** SQL functions that invokes [sqlite3_value_subtype()] should have this +** property. If the SQLITE_SUBTYPE property is omitted, then the return +** value from [sqlite3_value_subtype()] might sometimes be zero even though +** a non-zero subtype was specified by the function argument expression. +** +** [[SQLITE_RESULT_SUBTYPE]]
      SQLITE_RESULT_SUBTYPE
      +** The SQLITE_RESULT_SUBTYPE flag indicates to SQLite that a function might call +** [sqlite3_result_subtype()] to cause a sub-type to be associated with its +** result. +** Every function that invokes [sqlite3_result_subtype()] should have this +** property. If it does not, then the call to [sqlite3_result_subtype()] +** might become a no-op if the function is used as term in an +** [expression index]. On the other hand, SQL functions that never invoke +** [sqlite3_result_subtype()] should avoid setting this property, as the +** purpose of this property is to disable certain optimizations that are +** incompatible with subtypes. **
      ** */ @@ -5585,6 +5603,7 @@ SQLITE_API int sqlite3_create_window_function( #define SQLITE_DIRECTONLY 0x000080000 #define SQLITE_SUBTYPE 0x000100000 #define SQLITE_INNOCUOUS 0x000200000 +#define SQLITE_RESULT_SUBTYPE 0x001000000 /* ** CAPI3REF: Deprecated Functions @@ -5781,6 +5800,12 @@ SQLITE_API int sqlite3_value_encoding(sqlite3_value*); ** information can be used to pass a limited amount of context from ** one SQL function to another. Use the [sqlite3_result_subtype()] ** routine to set the subtype for the return value of an SQL function. +** +** Every [application-defined SQL function] that invoke this interface +** should include the [SQLITE_SUBTYPE] property in the text +** encoding argument when the function is [sqlite3_create_function|registered]. +** If the [SQLITE_SUBTYPE] property is omitted, then sqlite3_value_subtype() +** might return zero instead of the upstream subtype in some corner cases. */ SQLITE_API unsigned int sqlite3_value_subtype(sqlite3_value*); @@ -5879,48 +5904,56 @@ SQLITE_API sqlite3 *sqlite3_context_db_handle(sqlite3_context*); ** METHOD: sqlite3_context ** ** These functions may be used by (non-aggregate) SQL functions to -** associate metadata with argument values. If the same value is passed to -** multiple invocations of the same SQL function during query execution, under -** some circumstances the associated metadata may be preserved. An example -** of where this might be useful is in a regular-expression matching -** function. The compiled version of the regular expression can be stored as -** metadata associated with the pattern string. +** associate auxiliary data with argument values. If the same argument +** value is passed to multiple invocations of the same SQL function during +** query execution, under some circumstances the associated auxiliary data +** might be preserved. An example of where this might be useful is in a +** regular-expression matching function. The compiled version of the regular +** expression can be stored as auxiliary data associated with the pattern string. ** Then as long as the pattern string remains the same, ** the compiled regular expression can be reused on multiple ** invocations of the same function. ** -** ^The sqlite3_get_auxdata(C,N) interface returns a pointer to the metadata +** ^The sqlite3_get_auxdata(C,N) interface returns a pointer to the auxiliary data ** associated by the sqlite3_set_auxdata(C,N,P,X) function with the Nth argument ** value to the application-defined function. ^N is zero for the left-most -** function argument. ^If there is no metadata +** function argument. ^If there is no auxiliary data ** associated with the function argument, the sqlite3_get_auxdata(C,N) interface ** returns a NULL pointer. ** -** ^The sqlite3_set_auxdata(C,N,P,X) interface saves P as metadata for the N-th -** argument of the application-defined function. ^Subsequent +** ^The sqlite3_set_auxdata(C,N,P,X) interface saves P as auxiliary data for the +** N-th argument of the application-defined function. ^Subsequent ** calls to sqlite3_get_auxdata(C,N) return P from the most recent -** sqlite3_set_auxdata(C,N,P,X) call if the metadata is still valid or -** NULL if the metadata has been discarded. +** sqlite3_set_auxdata(C,N,P,X) call if the auxiliary data is still valid or +** NULL if the auxiliary data has been discarded. ** ^After each call to sqlite3_set_auxdata(C,N,P,X) where X is not NULL, ** SQLite will invoke the destructor function X with parameter P exactly -** once, when the metadata is discarded. -** SQLite is free to discard the metadata at any time, including:
        +** once, when the auxiliary data is discarded. +** SQLite is free to discard the auxiliary data at any time, including:
          **
        • ^(when the corresponding function parameter changes)^, or **
        • ^(when [sqlite3_reset()] or [sqlite3_finalize()] is called for the ** SQL statement)^, or **
        • ^(when sqlite3_set_auxdata() is invoked again on the same ** parameter)^, or **
        • ^(during the original sqlite3_set_auxdata() call when a memory -** allocation error occurs.)^
        +** allocation error occurs.)^ +**
      • ^(during the original sqlite3_set_auxdata() call if the function +** is evaluated during query planning instead of during query execution, +** as sometimes happens with [SQLITE_ENABLE_STAT4].)^
      ** -** Note the last bullet in particular. The destructor X in +** Note the last two bullets in particular. The destructor X in ** sqlite3_set_auxdata(C,N,P,X) might be called immediately, before the ** sqlite3_set_auxdata() interface even returns. Hence sqlite3_set_auxdata() ** should be called near the end of the function implementation and the ** function implementation should not make any use of P after -** sqlite3_set_auxdata() has been called. +** sqlite3_set_auxdata() has been called. Furthermore, a call to +** sqlite3_get_auxdata() that occurs immediately after a corresponding call +** to sqlite3_set_auxdata() might still return NULL if an out-of-memory +** condition occurred during the sqlite3_set_auxdata() call or if the +** function is being evaluated during query planning rather than during +** query execution. ** -** ^(In practice, metadata is preserved between function calls for +** ^(In practice, auxiliary data is preserved between function calls for ** function parameters that are compile-time constants, including literal ** values and [parameters] and expressions composed from the same.)^ ** @@ -5930,10 +5963,67 @@ SQLITE_API sqlite3 *sqlite3_context_db_handle(sqlite3_context*); ** ** These routines must be called from the same thread in which ** the SQL function is running. +** +** See also: [sqlite3_get_clientdata()] and [sqlite3_set_clientdata()]. */ SQLITE_API void *sqlite3_get_auxdata(sqlite3_context*, int N); SQLITE_API void sqlite3_set_auxdata(sqlite3_context*, int N, void*, void (*)(void*)); +/* +** CAPI3REF: Database Connection Client Data +** METHOD: sqlite3 +** +** These functions are used to associate one or more named pointers +** with a [database connection]. +** A call to sqlite3_set_clientdata(D,N,P,X) causes the pointer P +** to be attached to [database connection] D using name N. Subsequent +** calls to sqlite3_get_clientdata(D,N) will return a copy of pointer P +** or a NULL pointer if there were no prior calls to +** sqlite3_set_clientdata() with the same values of D and N. +** Names are compared using strcmp() and are thus case sensitive. +** +** If P and X are both non-NULL, then the destructor X is invoked with +** argument P on the first of the following occurrences: +**
        +**
      • An out-of-memory error occurs during the call to +** sqlite3_set_clientdata() which attempts to register pointer P. +**
      • A subsequent call to sqlite3_set_clientdata(D,N,P,X) is made +** with the same D and N parameters. +**
      • The database connection closes. SQLite does not make any guarantees +** about the order in which destructors are called, only that all +** destructors will be called exactly once at some point during the +** database connection closing process. +**
      +** +** SQLite does not do anything with client data other than invoke +** destructors on the client data at the appropriate time. The intended +** use for client data is to provide a mechanism for wrapper libraries +** to store additional information about an SQLite database connection. +** +** There is no limit (other than available memory) on the number of different +** client data pointers (with different names) that can be attached to a +** single database connection. However, the implementation is optimized +** for the case of having only one or two different client data names. +** Applications and wrapper libraries are discouraged from using more than +** one client data name each. +** +** There is no way to enumerate the client data pointers +** associated with a database connection. The N parameter can be thought +** of as a secret key such that only code that knows the secret key is able +** to access the associated data. +** +** Security Warning: These interfaces should not be exposed in scripting +** languages or in other circumstances where it might be possible for an +** an attacker to invoke them. Any agent that can invoke these interfaces +** can probably also take control of the process. +** +** Database connection client data is only available for SQLite +** version 3.44.0 ([dateof:3.44.0]) and later. +** +** See also: [sqlite3_set_auxdata()] and [sqlite3_get_auxdata()]. +*/ +SQLITE_API void *sqlite3_get_clientdata(sqlite3*,const char*); +SQLITE_API int sqlite3_set_clientdata(sqlite3*, const char*, void*, void(*)(void*)); /* ** CAPI3REF: Constants Defining Special Destructor Behavior @@ -6135,6 +6225,20 @@ SQLITE_API int sqlite3_result_zeroblob64(sqlite3_context*, sqlite3_uint64 n); ** higher order bits are discarded. ** The number of subtype bytes preserved by SQLite might increase ** in future releases of SQLite. +** +** Every [application-defined SQL function] that invokes this interface +** should include the [SQLITE_RESULT_SUBTYPE] property in its +** text encoding argument when the SQL function is +** [sqlite3_create_function|registered]. If the [SQLITE_RESULT_SUBTYPE] +** property is omitted from the function that invokes sqlite3_result_subtype(), +** then in some cases the sqlite3_result_subtype() might fail to set +** the result subtype. +** +** If SQLite is compiled with -DSQLITE_STRICT_SUBTYPE=1, then any +** SQL function that invokes the sqlite3_result_subtype() interface +** and that does not have the SQLITE_RESULT_SUBTYPE property will raise +** an error. Future versions of SQLite might enable -DSQLITE_STRICT_SUBTYPE=1 +** by default. */ SQLITE_API void sqlite3_result_subtype(sqlite3_context*,unsigned int); @@ -6566,7 +6670,7 @@ SQLITE_API int sqlite3_db_readonly(sqlite3 *db, const char *zDbName); SQLITE_API int sqlite3_txn_state(sqlite3*,const char *zSchema); /* -** CAPI3REF: Allowed return values from [sqlite3_txn_state()] +** CAPI3REF: Allowed return values from sqlite3_txn_state() ** KEYWORDS: {transaction state} ** ** These constants define the current transaction state of a database file. @@ -6698,7 +6802,7 @@ SQLITE_API void *sqlite3_rollback_hook(sqlite3*, void(*)(void *), void*); ** ^Each call to the sqlite3_autovacuum_pages() interface overrides all ** previous invocations for that database connection. ^If the callback ** argument (C) to sqlite3_autovacuum_pages(D,C,P,X) is a NULL pointer, -** then the autovacuum steps callback is cancelled. The return value +** then the autovacuum steps callback is canceled. The return value ** from sqlite3_autovacuum_pages() is normally SQLITE_OK, but might ** be some other error code if something goes wrong. The current ** implementation will only return SQLITE_OK or SQLITE_MISUSE, but other @@ -7217,6 +7321,10 @@ struct sqlite3_module { /* The methods above are in versions 1 and 2 of the sqlite_module object. ** Those below are for version 3 and greater. */ int (*xShadowName)(const char*); + /* The methods above are in versions 1 through 3 of the sqlite_module object. + ** Those below are for version 4 and greater. */ + int (*xIntegrity)(sqlite3_vtab *pVTab, const char *zSchema, + const char *zTabName, int mFlags, char **pzErr); }; /* @@ -7704,7 +7812,7 @@ SQLITE_API int sqlite3_blob_reopen(sqlite3_blob *, sqlite3_int64); ** code is returned and the transaction rolled back. ** ** Calling this function with an argument that is not a NULL pointer or an -** open blob handle results in undefined behaviour. ^Calling this routine +** open blob handle results in undefined behavior. ^Calling this routine ** with a null pointer (such as would be returned by a failed call to ** [sqlite3_blob_open()]) is a harmless no-op. ^Otherwise, if this function ** is passed a valid open blob handle, the values returned by the @@ -7931,9 +8039,11 @@ SQLITE_API int sqlite3_vfs_unregister(sqlite3_vfs*); ** ** ^(Some systems (for example, Windows 95) do not support the operation ** implemented by sqlite3_mutex_try(). On those systems, sqlite3_mutex_try() -** will always return SQLITE_BUSY. The SQLite core only ever uses -** sqlite3_mutex_try() as an optimization so this is acceptable -** behavior.)^ +** will always return SQLITE_BUSY. In most cases the SQLite core only uses +** sqlite3_mutex_try() as an optimization, so this is acceptable +** behavior. The exceptions are unix builds that set the +** SQLITE_ENABLE_SETLK_TIMEOUT build option. In that case a working +** sqlite3_mutex_try() is required.)^ ** ** ^The sqlite3_mutex_leave() routine exits a mutex that was ** previously entered by the same thread. The behavior @@ -8184,6 +8294,7 @@ SQLITE_API int sqlite3_test_control(int op, ...); #define SQLITE_TESTCTRL_PRNG_SAVE 5 #define SQLITE_TESTCTRL_PRNG_RESTORE 6 #define SQLITE_TESTCTRL_PRNG_RESET 7 /* NOT USED */ +#define SQLITE_TESTCTRL_FK_NO_ACTION 7 #define SQLITE_TESTCTRL_BITVEC_TEST 8 #define SQLITE_TESTCTRL_FAULT_INSTALL 9 #define SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS 10 @@ -8191,6 +8302,7 @@ SQLITE_API int sqlite3_test_control(int op, ...); #define SQLITE_TESTCTRL_ASSERT 12 #define SQLITE_TESTCTRL_ALWAYS 13 #define SQLITE_TESTCTRL_RESERVE 14 /* NOT USED */ +#define SQLITE_TESTCTRL_JSON_SELFCHECK 14 #define SQLITE_TESTCTRL_OPTIMIZATIONS 15 #define SQLITE_TESTCTRL_ISKEYWORD 16 /* NOT USED */ #define SQLITE_TESTCTRL_SCRATCHMALLOC 17 /* NOT USED */ @@ -9245,8 +9357,8 @@ SQLITE_API int sqlite3_backup_pagecount(sqlite3_backup *p); ** blocked connection already has a registered unlock-notify callback, ** then the new callback replaces the old.)^ ^If sqlite3_unlock_notify() is ** called with a NULL pointer as its second argument, then any existing -** unlock-notify callback is cancelled. ^The blocked connections -** unlock-notify callback may also be cancelled by closing the blocked +** unlock-notify callback is canceled. ^The blocked connections +** unlock-notify callback may also be canceled by closing the blocked ** connection using [sqlite3_close()]. ** ** The unlock-notify callback is not reentrant. If an application invokes @@ -10549,6 +10661,13 @@ SQLITE_API SQLITE_EXPERIMENTAL int sqlite3_snapshot_recover(sqlite3 *db, const c ** SQLITE_SERIALIZE_NOCOPY bit is set but no contiguous copy ** of the database exists. ** +** After the call, if the SQLITE_SERIALIZE_NOCOPY bit had been set, +** the returned buffer content will remain accessible and unchanged +** until either the next write operation on the connection or when +** the connection is closed, and applications must not modify the +** buffer. If the bit had been clear, the returned buffer will not +** be accessed by SQLite after the call. +** ** A call to sqlite3_serialize(D,S,P,F) might return NULL even if the ** SQLITE_SERIALIZE_NOCOPY bit is omitted from argument F if a memory ** allocation error occurs. @@ -10597,6 +10716,9 @@ SQLITE_API unsigned char *sqlite3_serialize( ** SQLite will try to increase the buffer size using sqlite3_realloc64() ** if writes on the database cause it to grow larger than M bytes. ** +** Applications must not modify the buffer P or invalidate it before +** the database connection D is closed. +** ** The sqlite3_deserialize() interface will fail with SQLITE_BUSY if the ** database is currently in a read transaction or is involved in a backup ** operation. @@ -10605,6 +10727,13 @@ SQLITE_API unsigned char *sqlite3_serialize( ** S argument to sqlite3_deserialize(D,S,P,N,M,F) is "temp" then the ** function returns SQLITE_ERROR. ** +** The deserialized database should not be in [WAL mode]. If the database +** is in WAL mode, then any attempt to use the database file will result +** in an [SQLITE_CANTOPEN] error. The application can set the +** [file format version numbers] (bytes 18 and 19) of the input database P +** to 0x01 prior to invoking sqlite3_deserialize(D,S,P,N,M,F) to force the +** database file into rollback mode and work around this limitation. +** ** If sqlite3_deserialize(D,S,P,N,M,F) fails for any reason and if the ** SQLITE_DESERIALIZE_FREEONCLOSE bit is set in argument F, then ** [sqlite3_free()] is invoked on argument P prior to returning. @@ -11677,6 +11806,18 @@ SQLITE_API int sqlite3changeset_concat( ); +/* +** CAPI3REF: Upgrade the Schema of a Changeset/Patchset +*/ +SQLITE_API int sqlite3changeset_upgrade( + sqlite3 *db, + const char *zDb, + int nIn, const void *pIn, /* Input changeset */ + int *pnOut, void **ppOut /* OUT: Inverse of input */ +); + + + /* ** CAPI3REF: Changegroup Handle ** @@ -11723,6 +11864,38 @@ typedef struct sqlite3_changegroup sqlite3_changegroup; */ SQLITE_API int sqlite3changegroup_new(sqlite3_changegroup **pp); +/* +** CAPI3REF: Add a Schema to a Changegroup +** METHOD: sqlite3_changegroup_schema +** +** This method may be used to optionally enforce the rule that the changesets +** added to the changegroup handle must match the schema of database zDb +** ("main", "temp", or the name of an attached database). If +** sqlite3changegroup_add() is called to add a changeset that is not compatible +** with the configured schema, SQLITE_SCHEMA is returned and the changegroup +** object is left in an undefined state. +** +** A changeset schema is considered compatible with the database schema in +** the same way as for sqlite3changeset_apply(). Specifically, for each +** table in the changeset, there exists a database table with: +** +**
        +**
      • The name identified by the changeset, and +**
      • at least as many columns as recorded in the changeset, and +**
      • the primary key columns in the same position as recorded in +** the changeset. +**
      +** +** The output of the changegroup object always has the same schema as the +** database nominated using this function. In cases where changesets passed +** to sqlite3changegroup_add() have fewer columns than the corresponding table +** in the database schema, these are filled in using the default column +** values from the database schema. This makes it possible to combined +** changesets that have different numbers of columns for a single table +** within a changegroup, provided that they are otherwise compatible. +*/ +SQLITE_API int sqlite3changegroup_schema(sqlite3_changegroup*, sqlite3*, const char *zDb); + /* ** CAPI3REF: Add A Changeset To A Changegroup ** METHOD: sqlite3_changegroup @@ -11791,13 +11964,18 @@ SQLITE_API int sqlite3changegroup_new(sqlite3_changegroup **pp); ** If the new changeset contains changes to a table that is already present ** in the changegroup, then the number of columns and the position of the ** primary key columns for the table must be consistent. If this is not the -** case, this function fails with SQLITE_SCHEMA. If the input changeset -** appears to be corrupt and the corruption is detected, SQLITE_CORRUPT is -** returned. Or, if an out-of-memory condition occurs during processing, this -** function returns SQLITE_NOMEM. In all cases, if an error occurs the state -** of the final contents of the changegroup is undefined. +** case, this function fails with SQLITE_SCHEMA. Except, if the changegroup +** object has been configured with a database schema using the +** sqlite3changegroup_schema() API, then it is possible to combine changesets +** with different numbers of columns for a single table, provided that +** they are otherwise compatible. ** -** If no error occurs, SQLITE_OK is returned. +** If the input changeset appears to be corrupt and the corruption is +** detected, SQLITE_CORRUPT is returned. Or, if an out-of-memory condition +** occurs during processing, this function returns SQLITE_NOMEM. +** +** In all cases, if an error occurs the state of the final contents of the +** changegroup is undefined. If no error occurs, SQLITE_OK is returned. */ SQLITE_API int sqlite3changegroup_add(sqlite3_changegroup*, int nData, void *pData); @@ -12062,10 +12240,17 @@ SQLITE_API int sqlite3changeset_apply_v2( **
    17. an insert change if all fields of the conflicting row match ** the row being inserted. ** +** +**
      SQLITE_CHANGESETAPPLY_FKNOACTION
      +** If this flag it set, then all foreign key constraints in the target +** database behave as if they were declared with "ON UPDATE NO ACTION ON +** DELETE NO ACTION", even if they are actually CASCADE, RESTRICT, SET NULL +** or SET DEFAULT. */ #define SQLITE_CHANGESETAPPLY_NOSAVEPOINT 0x0001 #define SQLITE_CHANGESETAPPLY_INVERT 0x0002 #define SQLITE_CHANGESETAPPLY_IGNORENOOP 0x0004 +#define SQLITE_CHANGESETAPPLY_FKNOACTION 0x0008 /* ** CAPI3REF: Constants Passed To The Conflict Handler @@ -12631,8 +12816,11 @@ struct Fts5PhraseIter { ** created with the "columnsize=0" option. ** ** xColumnText: -** This function attempts to retrieve the text of column iCol of the -** current document. If successful, (*pz) is set to point to a buffer +** If parameter iCol is less than zero, or greater than or equal to the +** number of columns in the table, SQLITE_RANGE is returned. +** +** Otherwise, this function attempts to retrieve the text of column iCol of +** the current document. If successful, (*pz) is set to point to a buffer ** containing the text in utf-8 encoding, (*pn) is set to the size in bytes ** (not characters) of the buffer and SQLITE_OK is returned. Otherwise, ** if an error occurs, an SQLite error code is returned and the final values @@ -12642,8 +12830,10 @@ struct Fts5PhraseIter { ** Returns the number of phrases in the current query expression. ** ** xPhraseSize: -** Returns the number of tokens in phrase iPhrase of the query. Phrases -** are numbered starting from zero. +** If parameter iCol is less than zero, or greater than or equal to the +** number of phrases in the current query, as returned by xPhraseCount, +** 0 is returned. Otherwise, this function returns the number of tokens in +** phrase iPhrase of the query. Phrases are numbered starting from zero. ** ** xInstCount: ** Set *pnInst to the total number of occurrences of all phrases within @@ -12659,12 +12849,13 @@ struct Fts5PhraseIter { ** Query for the details of phrase match iIdx within the current row. ** Phrase matches are numbered starting from zero, so the iIdx argument ** should be greater than or equal to zero and smaller than the value -** output by xInstCount(). +** output by xInstCount(). If iIdx is less than zero or greater than +** or equal to the value returned by xInstCount(), SQLITE_RANGE is returned. ** -** Usually, output parameter *piPhrase is set to the phrase number, *piCol +** Otherwise, output parameter *piPhrase is set to the phrase number, *piCol ** to the column in which it occurs and *piOff the token offset of the -** first token of the phrase. Returns SQLITE_OK if successful, or an error -** code (i.e. SQLITE_NOMEM) if an error occurs. +** first token of the phrase. SQLITE_OK is returned if successful, or an +** error code (i.e. SQLITE_NOMEM) if an error occurs. ** ** This API can be quite slow if used with an FTS5 table created with the ** "detail=none" or "detail=column" option. @@ -12690,6 +12881,10 @@ struct Fts5PhraseIter { ** Invoking Api.xUserData() returns a copy of the pointer passed as ** the third argument to pUserData. ** +** If parameter iPhrase is less than zero, or greater than or equal to +** the number of phrases in the query, as returned by xPhraseCount(), +** this function returns SQLITE_RANGE. +** ** If the callback function returns any value other than SQLITE_OK, the ** query is abandoned and the xQueryPhrase function returns immediately. ** If the returned value is SQLITE_DONE, xQueryPhrase returns SQLITE_OK. @@ -12804,9 +12999,42 @@ struct Fts5PhraseIter { ** ** xPhraseNextColumn() ** See xPhraseFirstColumn above. +** +** xQueryToken(pFts5, iPhrase, iToken, ppToken, pnToken) +** This is used to access token iToken of phrase iPhrase of the current +** query. Before returning, output parameter *ppToken is set to point +** to a buffer containing the requested token, and *pnToken to the +** size of this buffer in bytes. +** +** If iPhrase or iToken are less than zero, or if iPhrase is greater than +** or equal to the number of phrases in the query as reported by +** xPhraseCount(), or if iToken is equal to or greater than the number of +** tokens in the phrase, SQLITE_RANGE is returned and *ppToken and *pnToken + are both zeroed. +** +** The output text is not a copy of the query text that specified the +** token. It is the output of the tokenizer module. For tokendata=1 +** tables, this includes any embedded 0x00 and trailing data. +** +** xInstToken(pFts5, iIdx, iToken, ppToken, pnToken) +** This is used to access token iToken of phrase hit iIdx within the +** current row. If iIdx is less than zero or greater than or equal to the +** value returned by xInstCount(), SQLITE_RANGE is returned. Otherwise, +** output variable (*ppToken) is set to point to a buffer containing the +** matching document token, and (*pnToken) to the size of that buffer in +** bytes. This API is not available if the specified token matches a +** prefix query term. In that case both output variables are always set +** to 0. +** +** The output text is not a copy of the document text that was tokenized. +** It is the output of the tokenizer module. For tokendata=1 tables, this +** includes any embedded 0x00 and trailing data. +** +** This API can be quite slow if used with an FTS5 table created with the +** "detail=none" or "detail=column" option. */ struct Fts5ExtensionApi { - int iVersion; /* Currently always set to 2 */ + int iVersion; /* Currently always set to 3 */ void *(*xUserData)(Fts5Context*); @@ -12841,6 +13069,13 @@ struct Fts5ExtensionApi { int (*xPhraseFirstColumn)(Fts5Context*, int iPhrase, Fts5PhraseIter*, int*); void (*xPhraseNextColumn)(Fts5Context*, Fts5PhraseIter*, int *piCol); + + /* Below this point are iVersion>=3 only */ + int (*xQueryToken)(Fts5Context*, + int iPhrase, int iToken, + const char **ppToken, int *pnToken + ); + int (*xInstToken)(Fts5Context*, int iIdx, int iToken, const char**, int*); }; /* From 9aec79719b15f0fd9d47b9fe6e3ad252dbbdb48f Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Thu, 25 Jan 2024 18:15:15 +0100 Subject: [PATCH 289/395] fix(logs): synchronise log file rotation and compression. --- Foundation/include/Poco/ArchiveStrategy.h | 15 ++ Foundation/src/ArchiveStrategy.cpp | 139 ++++++++++++++----- Foundation/src/FileChannel.cpp | 13 +- Foundation/src/PurgeStrategy.cpp | 9 ++ Foundation/testsuite/src/FileChannelTest.cpp | 63 +++++++++ Foundation/testsuite/src/FileChannelTest.h | 1 + 6 files changed, 204 insertions(+), 36 deletions(-) diff --git a/Foundation/include/Poco/ArchiveStrategy.h b/Foundation/include/Poco/ArchiveStrategy.h index f78127986..d4c498568 100644 --- a/Foundation/include/Poco/ArchiveStrategy.h +++ b/Foundation/include/Poco/ArchiveStrategy.h @@ -23,6 +23,8 @@ #include "Poco/File.h" #include "Poco/DateTimeFormatter.h" #include "Poco/NumberFormatter.h" +#include "Poco/Mutex.h" +#include "Poco/Condition.h" #include @@ -51,6 +53,8 @@ public: /// and creates and returns a new log file. /// The given LogFile object is deleted. + void close(); + void compress(bool flag = true); /// Enables or disables compression of archived files. @@ -58,10 +62,21 @@ protected: void moveFile(const std::string& oldName, const std::string& newName); bool exists(const std::string& name); + Poco::FastMutex _rotateMutex; + + // Log rotation must wait until all of the compression tasks complete + int _compressingCount; + Poco::Condition _compressingComplete; + private: + + friend class ArchiveCompressor; + ArchiveStrategy(const ArchiveStrategy&); ArchiveStrategy& operator = (const ArchiveStrategy&); + void compressFile(const std::string& path); + std::atomic _compress; std::atomic _pCompressor; }; diff --git a/Foundation/src/ArchiveStrategy.cpp b/Foundation/src/ArchiveStrategy.cpp index bab2bfa0a..76bd22d67 100644 --- a/Foundation/src/ArchiveStrategy.cpp +++ b/Foundation/src/ArchiveStrategy.cpp @@ -24,6 +24,7 @@ #include "Poco/Void.h" #include "Poco/FileStream.h" +#include namespace Poco { @@ -45,35 +46,18 @@ public: { } - ActiveMethod> compress; + struct ArchiveToCompress + { + ArchiveStrategy* as; + std::string path; + }; + + ActiveMethod> compress; protected: - void compressImpl(const std::string& path) + void compressImpl(const ArchiveToCompress& ac) { - std::string gzPath(path); - gzPath.append(".gz"); - FileInputStream istr(path); - FileOutputStream ostr(gzPath); - try - { - DeflatingOutputStream deflater(ostr, DeflatingStreamBuf::STREAM_GZIP); - StreamCopier::copyStream(istr, deflater); - if (!deflater.good() || !ostr.good()) throw WriteFileException(gzPath); - deflater.close(); - ostr.close(); - istr.close(); - } - catch (Poco::Exception&) - { - // deflating failed - remove gz file and leave uncompressed log file - ostr.close(); - Poco::File gzf(gzPath); - gzf.remove(); - return; - } - File f(path); - f.remove(); - return; + ac.as->compressFile(ac.path); } }; @@ -82,17 +66,41 @@ protected: // ArchiveStrategy // +// Prefix that is added to the file being compressed to be skipped by the +// purge strategy. +static const std::string compressFilePrefix ( ".~" ); + ArchiveStrategy::ArchiveStrategy(): + _compressingCount(0), _compress(false), - _pCompressor(0) + _pCompressor(nullptr) { } ArchiveStrategy::~ArchiveStrategy() { + try + { + close(); + } + catch(...) + { + poco_unexpected(); + } +} + + +void ArchiveStrategy::close() +{ + FastMutex::ScopedLock l(_rotateMutex); + + while (_compressingCount > 0) + _compressingComplete.wait(_rotateMutex, 1000); + delete _pCompressor; + _pCompressor = nullptr; } @@ -105,7 +113,7 @@ void ArchiveStrategy::compress(bool flag) void ArchiveStrategy::moveFile(const std::string& oldPath, const std::string& newPath) { bool compressed = false; - Path p(oldPath); + const Path p(oldPath); File f(oldPath); if (!f.exists()) { @@ -115,15 +123,23 @@ void ArchiveStrategy::moveFile(const std::string& oldPath, const std::string& ne std::string mvPath(newPath); if (_compress || compressed) mvPath.append(".gz"); + if (!_compress || compressed) { f.renameTo(mvPath); } else { - f.renameTo(newPath); - if (!_pCompressor) _pCompressor = new ArchiveCompressor; - _pCompressor.load()->compress(newPath); + _compressingCount++; + Path logdir { newPath }; + logdir.makeParent(); + const auto logfile { Path(newPath).getFileName() }; + const auto compressPath = logdir.append(compressFilePrefix + logfile).toString(); + f.renameTo(compressPath); + if (!_pCompressor) + _pCompressor = new ArchiveCompressor; + + _pCompressor.load()->compress( {this, compressPath} ); } } @@ -146,6 +162,62 @@ bool ArchiveStrategy::exists(const std::string& name) } +void ArchiveStrategy::compressFile(const std::string& path) +{ + FastMutex::ScopedLock l(_rotateMutex); + + Path logdir { path }; + logdir.makeParent(); + + auto removeFilePrefix = [&logdir](const std::string& path, const std::string& prefix) -> std::string + { + auto fname { Path(path).getFileName() }; + const std::string_view fprefix(fname.data(), prefix.size()); + if (fprefix == prefix) + return Path(logdir, fname.substr(prefix.size())).toString(); + + return path; + }; + + File f(path); + std::string gzPath(path); + gzPath.append(".gz"); + FileInputStream istr(path); + FileOutputStream ostr(gzPath); + try + { + DeflatingOutputStream deflater(ostr, DeflatingStreamBuf::STREAM_GZIP); + StreamCopier::copyStream(istr, deflater); + if (!deflater.good() || !ostr.good()) + throw WriteFileException(gzPath); + + deflater.close(); + ostr.close(); + istr.close(); + + // Remove temporary prefix and set modification time to + // the time of the uncompressed file for purge strategy to work correctly + File zf(gzPath); + zf.renameTo(removeFilePrefix(gzPath, compressFilePrefix)); + zf.setLastModified(f.getLastModified()); + } + catch (const Poco::Exception&) + { + // deflating failed - remove gz file and leave uncompressed log file + ostr.close(); + Poco::File gzf(gzPath); + gzf.remove(); + + f.renameTo(removeFilePrefix(path, compressFilePrefix)); + } + f.remove(); + + _compressingCount--; + if (_compressingCount < 1) + _compressingComplete.broadcast(); +} + + // // ArchiveByNumberStrategy // @@ -169,6 +241,11 @@ LogFile* ArchiveByNumberStrategy::open(LogFile* pFile) LogFile* ArchiveByNumberStrategy::archive(LogFile* pFile) { + FastMutex::ScopedLock l(_rotateMutex); + + while (_compressingCount > 0) + _compressingComplete.wait(_rotateMutex, 1000); + std::string basePath = pFile->path(); delete pFile; int n = -1; diff --git a/Foundation/src/FileChannel.cpp b/Foundation/src/FileChannel.cpp index 3b57d1013..1e5cbcf46 100644 --- a/Foundation/src/FileChannel.cpp +++ b/Foundation/src/FileChannel.cpp @@ -44,7 +44,7 @@ FileChannel::FileChannel(): _compress(false), _flush(true), _rotateOnOpen(false), - _pFile(0), + _pFile(nullptr), _pRotateStrategy(new NullRotateStrategy()), _pArchiveStrategy(new ArchiveByNumberStrategy), _pPurgeStrategy(new NullPurgeStrategy()) @@ -58,7 +58,7 @@ FileChannel::FileChannel(const std::string& path): _compress(false), _flush(true), _rotateOnOpen(false), - _pFile(0), + _pFile(nullptr), _pRotateStrategy(new NullRotateStrategy()), _pArchiveStrategy(new ArchiveByNumberStrategy), _pPurgeStrategy(new NullPurgeStrategy()) @@ -111,8 +111,11 @@ void FileChannel::close() { FastMutex::ScopedLock lock(_mutex); + if (_pFile != nullptr) + _pArchiveStrategy->close(); + delete _pFile; - _pFile = 0; + _pFile = nullptr; } @@ -298,7 +301,7 @@ void FileChannel::setRotation(const std::string& rotation) ArchiveStrategy* FileChannel::createArchiveStrategy(const std::string& archive, const std::string& times) const { - ArchiveStrategy* pStrategy = 0; + ArchiveStrategy* pStrategy = nullptr; if (archive == "number") { pStrategy = new ArchiveByNumberStrategy; @@ -328,7 +331,7 @@ void FileChannel::setArchiveStrategy(ArchiveStrategy* strategy) void FileChannel::setArchive(const std::string& archive) { - ArchiveStrategy* pStrategy = 0; + ArchiveStrategy* pStrategy = nullptr; if (archive == "number") { pStrategy = new ArchiveByNumberStrategy; diff --git a/Foundation/src/PurgeStrategy.cpp b/Foundation/src/PurgeStrategy.cpp index ad9e87f3d..9be905a84 100644 --- a/Foundation/src/PurgeStrategy.cpp +++ b/Foundation/src/PurgeStrategy.cpp @@ -16,6 +16,7 @@ #include "Poco/Path.h" #include "Poco/DirectoryIterator.h" #include "Poco/Timestamp.h" +#include namespace Poco { @@ -126,6 +127,14 @@ void PurgeByCountStrategy::purge(const std::string& path) { std::vector files; list(path, files); + + // Order files in ascending name order. Files with largest + // sequence number will be deleted in case that multiple files + // have the same modification time. + std::sort (files.begin(), files.end(), + [](const Poco::File& a, const Poco::File& b) { return a.path() < b.path(); } + ); + while (files.size() > _count) { std::vector::iterator it = files.begin(); diff --git a/Foundation/testsuite/src/FileChannelTest.cpp b/Foundation/testsuite/src/FileChannelTest.cpp index 3cf23228f..9b855bddb 100644 --- a/Foundation/testsuite/src/FileChannelTest.cpp +++ b/Foundation/testsuite/src/FileChannelTest.cpp @@ -30,6 +30,7 @@ #include "Poco/ArchiveStrategy.h" #include "Poco/PurgeStrategy.h" #include +#include using Poco::FileChannel; @@ -559,6 +560,67 @@ void FileChannelTest::testCompress() } +void FileChannelTest::testCompressedRotation() +{ + static const uint32_t MAX_ROLLOVER_TIMES = 8; + static const uint32_t LONG_MESSAGE_LENGTH = 1024; + static const uint32_t LONG_MAX_FILESIZE = 1024; + + std::vector longMessage(LONG_MESSAGE_LENGTH, '&'); + longMessage.push_back(0); + + Poco::Path logsPath(Poco::Path::current(), "logs"); + Poco::File logsDir(logsPath.toString()); + if (logsDir.exists()) + logsDir.remove(true); + + logsDir.createDirectory(); + logsPath.append("test.log"); + + Poco::AutoPtr fileChannel = new Poco::FileChannel("ABC"); + fileChannel->setProperty(Poco::FileChannel::PROP_PATH, logsPath.toString()); + fileChannel->setProperty(Poco::FileChannel::PROP_FLUSH, "false"); + fileChannel->setProperty(Poco::FileChannel::PROP_ROTATION, "1 M"); + fileChannel->setProperty(Poco::FileChannel::PROP_PURGECOUNT, "5"); + fileChannel->setProperty(Poco::FileChannel::PROP_ARCHIVE, "number"); + fileChannel->setProperty(Poco::FileChannel::PROP_TIMES, "local"); + fileChannel->setProperty(Poco::FileChannel::PROP_COMPRESS, "true"); + + fileChannel->open(); + + std::string text(longMessage.begin(), longMessage.end()); + + for (uint32_t i = 1; i <= MAX_ROLLOVER_TIMES; ++i) + { + for (uint32_t j = 0; j < LONG_MAX_FILESIZE; ++j) + { + Poco::Message message("ABC", text, Poco::Message::PRIO_INFORMATION); + fileChannel->log(message); + } + } + + fileChannel->close(); + + std::vector files; + logsDir.list(files); + std::sort(files.begin(), files.end()); + + for (const auto& f: files) + std::cout << "log file: " << f << std::endl; + + assertEqual(5+1+1, files.size()); // 5+1 rotated files, current file + assertEqual("test.log", files[0]); + assertEqual("test.log.0.gz", files[1]); + assertEqual("test.log.1.gz", files[2]); + assertEqual("test.log.2.gz", files[3]); + assertEqual("test.log.3.gz", files[4]); + assertEqual("test.log.4.gz", files[5]); + assertEqual("test.log.5.gz", files[6]); + + logsDir.remove(true); +} + + void FileChannelTest::purgeAge(const std::string& pa) { std::string name = filename(); @@ -898,6 +960,7 @@ CppUnit::Test* FileChannelTest::suite() CppUnit_addTest(pSuite, FileChannelTest, testArchive); CppUnit_addTest(pSuite, FileChannelTest, testArchiveByStrategy); CppUnit_addTest(pSuite, FileChannelTest, testCompress); + CppUnit_addTest(pSuite, FileChannelTest, testCompressedRotation); CppUnit_addLongTest(pSuite, FileChannelTest, testPurgeAge); CppUnit_addTest(pSuite, FileChannelTest, testPurgeCount); CppUnit_addTest(pSuite, FileChannelTest, testWrongPurgeOption); diff --git a/Foundation/testsuite/src/FileChannelTest.h b/Foundation/testsuite/src/FileChannelTest.h index 327659dcf..20aa31f85 100644 --- a/Foundation/testsuite/src/FileChannelTest.h +++ b/Foundation/testsuite/src/FileChannelTest.h @@ -45,6 +45,7 @@ public: void testArchive(); void testArchiveByStrategy(); void testCompress(); + void testCompressedRotation(); void testPurgeAge(); void testPurgeCount(); void testWrongPurgeOption(); From 69fd7c39e72b6ccbced1e0b5e6d4465ad7b9fb43 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Sun, 4 Feb 2024 01:00:16 +0100 Subject: [PATCH 290/395] feat(build): add arm cross-compile and CI #4437 (#4438) --- .github/workflows/ci.yml | 7 ++++ build/config/X-Linux-gcc-arm | 74 ++++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 build/config/X-Linux-gcc-arm diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 15bd1015f..a143b35d4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,6 +44,13 @@ jobs: add-to-path: true - run: cmake -S$GITHUB_WORKSPACE -B$HOME/android-build -DANDROID_ABI=armeabi-v7a -DANDROID_PLATFORM=android-21 -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake && cmake --build $HOME/android-build --target all + linux-gcc-make-armv7l: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - run: sudo apt -y update && sudo apt -y install g++-arm-linux-gnueabihf + - run: ./configure --config=X-Linux-gcc-arm --everything --omit=ApacheConnector,CppParser,Crypto,Data/MySQL,Data/PostgreSQL,Data/ODBC,JWT,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,SevenZip && make all -s -j4 + linux-gcc-make: runs-on: ubuntu-22.04 steps: diff --git a/build/config/X-Linux-gcc-arm b/build/config/X-Linux-gcc-arm new file mode 100644 index 000000000..833b0d5fa --- /dev/null +++ b/build/config/X-Linux-gcc-arm @@ -0,0 +1,74 @@ +# +# X-Debian-Stretch-RPi +# +# Make settings for Raspberry Pi (2 or newer) Raspbian Stretch +# +# + +# +# General Settings +# +LINKMODE ?= SHARED +TOOL ?= arm-linux-gnueabihf +POCO_TARGET_OSNAME = Linux +POCO_TARGET_OSARCH ?= armv7l +ARCHFLAGS ?= -march=armv7-a -mfloat-abi=hard -mfpu=neon-vfpv4 + +# +# Define Tools +# +CC = $(TOOL)-gcc +CXX = $(TOOL)-g++ +LINK = $(CXX) +LIB = $(TOOL)-ar -cr +RANLIB = $(TOOL)-ranlib +SHLIB = $(CXX) -shared -Wl,-soname,$(notdir $@) -o $@ +SHLIBLN = $(POCO_BASE)/build/script/shlibln +STRIP = $(TOOL)-strip +DEP = $(POCO_BASE)/build/script/makedepend.gcc +SHELL = sh +RM = rm -rf +CP = cp +MKDIR = mkdir -p + +# +# Extension for Shared Libraries +# +SHAREDLIBEXT = .so.$(target_version) +SHAREDLIBLINKEXT = .so + +# +# Compiler and Linker Flags +# +CFLAGS = -std=c11 $(ARCHFLAGS) +CFLAGS32 = +CFLAGS64 = +CXXFLAGS = -std=c++17 -Wall -Wno-sign-compare -Wno-psabi $(ARCHFLAGS) +CXXFLAGS32 = +CXXFLAGS64 = +LINKFLAGS = +LINKFLAGS32 = +LINKFLAGS64 = +STATICOPT_CC = +STATICOPT_CXX = +STATICOPT_LINK = -static +SHAREDOPT_CC = -fPIC +SHAREDOPT_CXX = -fPIC +SHAREDOPT_LINK = -Wl,-rpath,$(LIBPATH) +DEBUGOPT_CC = -g -D_DEBUG +DEBUGOPT_CXX = -g -D_DEBUG +DEBUGOPT_LINK = -g +RELEASEOPT_CC = -O2 -DNDEBUG +RELEASEOPT_CXX = -O2 -DNDEBUG +RELEASEOPT_LINK = -O2 + +# +# System Specific Flags +# +SYSFLAGS = -D_XOPEN_SOURCE=600 -D_REENTRANT -D_THREAD_SAFE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -DPOCO_HAVE_FD_EPOLL \ + -DPOCO_HAVE_ADDRINFO -DPOCO_HAVE_LIBRESOLV + +# +# System Specific Libraries +# +SYSLIBS = -lpthread -ldl -lrt From 695f813eb6ece1fd64cdd2e6d55fd1688160483b Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Mon, 5 Feb 2024 13:40:13 +0100 Subject: [PATCH 291/395] Release 1.13.1: Update release notes, changelog, contributors, version files. (#4440) --- CHANGELOG | 43 ++++++++++++++++++++++++++ CONTRIBUTORS | 1 + DLLVersion.rc | 6 ++-- Foundation/include/Poco/Version.h | 2 +- VERSION | 2 +- doc/99100-ReleaseNotes.page | 43 ++++++++++++++++++++++++++ gh-cli-for-release-notes.sh | 51 +++++++++++++++++++++++++++++++ libversion | 2 +- 8 files changed, 144 insertions(+), 6 deletions(-) create mode 100755 gh-cli-for-release-notes.sh diff --git a/CHANGELOG b/CHANGELOG index f9e214056..a937ee620 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,48 @@ This is the changelog file for the POCO C++ Libraries. +Release 1.13.1 (2024-02-05) +=========================== + +Summary of Changes: + +This is a bugfix release. + +Features and enhancements: + +- GH #4367 `SQLite` `FTS5` (full text search) +- GH #4335 Implement patches that Debian/Ubuntu applies when preparing deb packages +- GH #4216 Replace C string literals (const char*) with C++ std::string literals for std::string parameters. +- GH #3890 Get rid of SingletonHolder +- GH #2450 Why does it take the ThreadPool 10+ seconds to shutdown when there is nothing running. +- GH #2443 FileChannel doesn't flush to disk on unix until close +- GH #4437 Add arm cross-compile config and CI +- PR #4422 enh(File): Linux, macOS: microsecond precision for file times +- PR #4390 enh(DateTimeParser): option to cleanup input string before parsing (#569) + +Bug fixes and improvements: + +- GH #4425 Unit tests: optional testing of deprecated functionality +- GH #4421 Multiple calls to initializeSSL/uninitializeSSL cause assert failure during certificate validation +- GH #4411 NULL pointer: strategy when setting rotation never in FileChannel +- GH #4404 qnx build error: 'prctl' was not declared in this scope +- GH #4400 SocketReactor deadlock test intermittently hangs +- GH #4398 Can not install CppUnit target +- GH #4393 iOS ARM64 : Invalid access: Can not convert empty value. +- GH #4392 Environment_WIN32U nodeIdImpl access violation in 1.13.0 +- GH #4375 UUID parser silently ignores too long strings +- GH #4347 github check job on macOS: testEncryptDecryptGCM occasionally fails +- GH #4313 Add macos sanitizer CI jobs +- GH #4019 MSYS2/mingw cmake linking problem +- GH #4018 cmake MSYS2 compile error for poco/net project +- GH #3908 JWT token unitest fail with POCO_NO_SOO on vs 2019 +- GH #3650 MailMessage::read() chokes on "Content-disposition" +- GH #3331 Apple Silicon ARM64 : Invalid access: Can not convert empty value. +- GH #3213 NetSSL_Win\src\SecureSocketImpl.cpp CertFreeCertificateContext on nullptr +- GH #661 Automatic Lib Init (NetworkInitializer) is not working on MinGW +- PR #4427 enh(tests): Ability to enable/disable testing of deprecated functionality +- PR #4381 fix(Crypto): Compile error if EVP_CIPHER_CTX_init not defined. + + Release 1.13.0 (2023-12-22) =========================== diff --git a/CONTRIBUTORS b/CONTRIBUTORS index b27eed6ac..78cc77beb 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -61,3 +61,4 @@ Pavle Dragišić Nino Belušić Kari Argillander Alexander B +Andrew Auclair diff --git a/DLLVersion.rc b/DLLVersion.rc index 67a982fc3..132e03b6d 100644 --- a/DLLVersion.rc +++ b/DLLVersion.rc @@ -4,8 +4,8 @@ #include "winres.h" -#define POCO_VERSION 1,13,0,0 -#define POCO_VERSION_STR "1.13.0" +#define POCO_VERSION 1,13,1,0 +#define POCO_VERSION_STR "1.13.1" VS_VERSION_INFO VERSIONINFO FILEVERSION POCO_VERSION @@ -28,7 +28,7 @@ BEGIN VALUE "FileDescription", "This file is part of the POCO C++ Libraries." VALUE "FileVersion", POCO_VERSION_STR VALUE "InternalName", "POCO" - VALUE "LegalCopyright", "Copyright (C) 2004-2022, Applied Informatics Software Engineering GmbH and Contributors." + VALUE "LegalCopyright", "Copyright (C) 2004-2024, Applied Informatics Software Engineering GmbH and Contributors." VALUE "ProductName", "POCO C++ Libraries - https://pocoproject.org" VALUE "ProductVersion", POCO_VERSION_STR END diff --git a/Foundation/include/Poco/Version.h b/Foundation/include/Poco/Version.h index fadbafacf..4d9eb570c 100644 --- a/Foundation/include/Poco/Version.h +++ b/Foundation/include/Poco/Version.h @@ -36,6 +36,6 @@ // Bx: beta releases // -#define POCO_VERSION 0x010D0000 +#define POCO_VERSION 0x010D0100 #endif // Foundation_Version_INCLUDED diff --git a/VERSION b/VERSION index feaae22ba..b50dd27dd 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.13.0 +1.13.1 diff --git a/doc/99100-ReleaseNotes.page b/doc/99100-ReleaseNotes.page index b3d61f73c..fa6285291 100644 --- a/doc/99100-ReleaseNotes.page +++ b/doc/99100-ReleaseNotes.page @@ -1,6 +1,49 @@ POCO C++ Libraries Release Notes AAAIntroduction + +!!!Release 1.13.1 + +!!Summary of Changes + + This is a bugfix release. + +!!Features and enhancements + + - GH #4367 `SQLite` `FTS5` (full text search) + - GH #4335 Implement patches that Debian/Ubuntu applies when preparing deb packages + - GH #4216 Replace C string literals (const char*) with C++ std::string literals for std::string parameters. + - GH #3890 Get rid of SingletonHolder + - GH #2450 Why does it take the ThreadPool 10+ seconds to shutdown when there is nothing running. + - GH #2443 FileChannel doesn't flush to disk on unix until close + - GH #4437 Add arm cross-compile config and CI + - PR #4422 enh(File): Linux, macOS: microsecond precision for file times + - PR #4390 enh(DateTimeParser): option to cleanup input string before parsing (#569) + +!!Bug fixes and improvements + + - GH #4425 Unit tests: optional testing of deprecated functionality + - GH #4421 Multiple calls to initializeSSL/uninitializeSSL cause assert failure during certificate validation + - GH #4411 NULL pointer: strategy when setting rotation never in FileChannel + - GH #4404 qnx build error: 'prctl' was not declared in this scope + - GH #4400 SocketReactor deadlock test intermittently hangs + - GH #4398 Can not install CppUnit target + - GH #4393 iOS ARM64 : Invalid access: Can not convert empty value. + - GH #4392 Environment_WIN32U nodeIdImpl access violation in 1.13.0 + - GH #4375 UUID parser silently ignores too long strings + - GH #4347 github check job on macOS: testEncryptDecryptGCM occasionally fails + - GH #4313 Add macos sanitizer CI jobs + - GH #4019 MSYS2/mingw cmake linking problem + - GH #4018 cmake MSYS2 compile error for poco/net project + - GH #3908 JWT token unitest fail with POCO_NO_SOO on vs 2019 + - GH #3650 MailMessage::read() chokes on "Content-disposition" + - GH #3331 Apple Silicon ARM64 : Invalid access: Can not convert empty value. + - GH #3213 NetSSL_Win\src\SecureSocketImpl.cpp CertFreeCertificateContext on nullptr + - GH #661 Automatic Lib Init (NetworkInitializer) is not working on MinGW + - PR #4427 enh(tests): Ability to enable/disable testing of deprecated functionality + - PR #4381 fix(Crypto): Compile error if EVP_CIPHER_CTX_init not defined. + + !!!Release 1.13.0 !!Summary of Changes diff --git a/gh-cli-for-release-notes.sh b/gh-cli-for-release-notes.sh new file mode 100755 index 000000000..95091fa26 --- /dev/null +++ b/gh-cli-for-release-notes.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env bash + +# +# Helper script to prepare changelog for a release. +# +# It filters GitHub issues and pull requests for the specified milestone and +# prints a list on standard output. The generated list needs to be reviewed by +# a maintainer before including it to the CHANGELOG. +# +# It uses GitHub CLI from https://github.com/cli/cli +# +# Usage: gh-cli-release-notes.sh +# + +if [[ $# -eq 0 ]] ; then + echo 'Usage: gh-cli-release-notes.sh ' + exit 1 +fi + + +MILESTONE=$1 + +echo +echo "${MILESTONE} ($(date "+%Y-%m-%d"))" +echo =========================== +echo +echo "Summary of Changes:" +echo +echo "Breaking changes:" +echo + +gh issue list -S 'milestone:"'"${MILESTONE}"'" label:breaking' -s all -L 500 --json number,title --jq '.[] | "- GH #\(.number) \(.title)"' +gh pr list -S 'milestone:"'"${MILESTONE}"'" label:breaking' -s all -L 500 --json number,title --jq '.[] | "- PR #\(.number) \(.title)"' + +echo +echo "Features and enhancements:" +echo + +gh issue list -S 'milestone:"'"${MILESTONE}"'" -label:breaking label:enhancement' -s all -L 500 --json number,title --jq '.[] | "- GH #\(.number) \(.title)"' +gh issue list -S 'milestone:"'"${MILESTONE}"'" -label:breaking -label:enhancement label:feature' -s all -L 500 --json number,title --jq '.[] | "- GH #\(.number) \(.title)"' +gh pr list -S 'milestone:"'"${MILESTONE}"'" -label:breaking label:enhancement' -s all -L 500 --json number,title --jq '.[] | "- PR #\(.number) \(.title)"' +gh pr list -S 'milestone:"'"${MILESTONE}"'" -label:breaking -label:enhancement label:feature' -s all -L 500 --json number,title --jq '.[] | "- PR #\(.number) \(.title)"' + +echo +echo "Bug fixes and improvements:" +echo + +gh issue list -S 'milestone:"'"${MILESTONE}"'" -label:breaking -label:enhancement -label:feature' -s all -L 500 --json number,title --jq '.[] | "- GH #\(.number) \(.title)"' +gh pr list -S 'milestone:"'"${MILESTONE}"'" -label:breaking -label:enhancement -label:feature' -s all -L 500 --json number,title --jq '.[] | "- PR #\(.number) \(.title)"' + +echo diff --git a/libversion b/libversion index 29d6383b5..398050c62 100644 --- a/libversion +++ b/libversion @@ -1 +1 @@ -100 +101 From ad07839db90b8d7239cb355e2fc4df93ae971981 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Mon, 5 Feb 2024 19:04:21 +0100 Subject: [PATCH 292/395] fix(CppParser): Documentation generation (some minor fixes, WiP) #4441 --- PocoDoc/cfg/mkdoc-poco.xml | 5 ++++- PocoDoc/src/DocWriter.cpp | 2 -- release/script/mkrelease | 1 - 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/PocoDoc/cfg/mkdoc-poco.xml b/PocoDoc/cfg/mkdoc-poco.xml index 31669d789..e74b2081d 100644 --- a/PocoDoc/cfg/mkdoc-poco.xml +++ b/PocoDoc/cfg/mkdoc-poco.xml @@ -7,6 +7,7 @@ ${PocoBuild}/*/include/Poco/*/*/*.h ${PocoBuild}/*/include/Poco/*/*.h ${PocoBuild}/*/*/include/Poco/*/*/*.h + ${PocoBuild}/Data/src/sql-parser/*.h *_*.h, @@ -31,12 +32,14 @@ g++ ${Includes}, + -I${PocoBase}/Data/src, + -I/usr/local/ssl/include, -I/usr/local/mysql/include, -I/usr/include/mysql, -D_DEBUG, -E, -C, - -DPOCO_NO_WINDOWS_H, + -DPOCO_NO_WINDOWS_H, -DPOCO_NO_GCC_API_ATTRIBUTE, -xc++ diff --git a/PocoDoc/src/DocWriter.cpp b/PocoDoc/src/DocWriter.cpp index ba84c41e5..335f155ea 100644 --- a/PocoDoc/src/DocWriter.cpp +++ b/PocoDoc/src/DocWriter.cpp @@ -2359,7 +2359,6 @@ void DocWriter::writeTOC(std::ostream& ostr, const TOC& toc) { ostr << "
      " << std::endl; ostr << "
      • " << tr("TOC") << std::endl; - int lastLevel = 0; std::vector levelStack; levelStack.push_back(0); for (TOC::const_iterator it = toc.begin(); it != toc.end(); ++it) @@ -2384,7 +2383,6 @@ void DocWriter::writeTOC(std::ostream& ostr, const TOC& toc) ostr << "
      • " << std::endl; } ostr << "
      • id << "\">" << htmlize(it->title) << "" << std::endl; - lastLevel = level; } while (!levelStack.empty()) { diff --git a/release/script/mkrelease b/release/script/mkrelease index a9f46a190..37a702695 100755 --- a/release/script/mkrelease +++ b/release/script/mkrelease @@ -85,7 +85,6 @@ mkdir -p ${target}/cmake # echo ${version} "(`date +%Y-%m-%d`)" >${target}/VERSION cp ${POCO_BASE}/LICENSE ${target} -cp ${POCO_BASE}/NEWS ${target} cp ${POCO_BASE}/README ${target} cp ${POCO_BASE}/CHANGELOG ${target} cp ${POCO_BASE}/CONTRIBUTORS ${target} From 568b0fca8e00ca72d309aaee54d94a6f3beb2cfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 5 Feb 2024 21:05:12 +0100 Subject: [PATCH 293/395] feat(CppParser): C++11 attributes support --- CppParser/include/Poco/CppParser/Attributes.h | 4 +-- CppParser/include/Poco/CppParser/CppToken.h | 8 +++-- CppParser/include/Poco/CppParser/Decl.h | 2 +- CppParser/include/Poco/CppParser/Enum.h | 4 +-- CppParser/include/Poco/CppParser/Function.h | 4 +-- CppParser/include/Poco/CppParser/NameSpace.h | 8 ++--- CppParser/include/Poco/CppParser/Parser.h | 5 +-- CppParser/include/Poco/CppParser/Struct.h | 14 ++++---- CppParser/include/Poco/CppParser/Symbol.h | 14 ++++++++ CppParser/src/CppToken.cpp | 20 ++++++++--- CppParser/src/Parser.cpp | 35 +++++++++++++++++-- CppParser/src/Symbol.cpp | 6 ++++ 12 files changed, 94 insertions(+), 30 deletions(-) diff --git a/CppParser/include/Poco/CppParser/Attributes.h b/CppParser/include/Poco/CppParser/Attributes.h index 3c1519b2d..e127ad55b 100644 --- a/CppParser/include/Poco/CppParser/Attributes.h +++ b/CppParser/include/Poco/CppParser/Attributes.h @@ -32,8 +32,8 @@ class CppParser_API Attributes /// name and values are strings. { public: - typedef std::map AttrMap; - typedef AttrMap::const_iterator Iterator; + using AttrMap = std::map; + using Iterator = AttrMap::const_iterator; Attributes(); /// Creates the Attributes object. diff --git a/CppParser/include/Poco/CppParser/CppToken.h b/CppParser/include/Poco/CppParser/CppToken.h index 0aef06298..5338d4c8c 100644 --- a/CppParser/include/Poco/CppParser/CppToken.h +++ b/CppParser/include/Poco/CppParser/CppToken.h @@ -46,6 +46,8 @@ public: { OP_OPENBRACKET = 1, // [ OP_CLOSBRACKET, // ] + OP_DBL_OPENBRACKET, // [[ + OP_DBL_CLOSBRACKET, // ]] OP_OPENPARENT, // ( OP_CLOSPARENT, // ) OP_OPENBRACE, // { @@ -101,7 +103,7 @@ public: int asInteger() const; private: - typedef std::map OpMap; + using OpMap = std::map; OpMap _opMap; }; @@ -112,7 +114,7 @@ class CppParser_API IdentifierToken: public CppToken public: enum Keywords { - KW_ALIGNAS = 1, + KW_ALIGNAS = 100, // Note: start with 100 to avoid overlapping definitions with operators KW_ALIGNOF, KW_AND, KW_AND_EQ, @@ -206,7 +208,7 @@ public: int asInteger() const; private: - typedef std::map KWMap; + using KWMap = std::map; KWMap _kwMap; }; diff --git a/CppParser/include/Poco/CppParser/Decl.h b/CppParser/include/Poco/CppParser/Decl.h index c67e3069f..d8b89d1ea 100644 --- a/CppParser/include/Poco/CppParser/Decl.h +++ b/CppParser/include/Poco/CppParser/Decl.h @@ -28,7 +28,7 @@ namespace CppParser { class CppParser_API Decl: public Symbol /// This class represents a simple declaration in a C++ source file. - /// It is a base class for Function, TypeDef or Variable. + /// It is a base class for Function, TypeDef, Using or Variable. { public: Decl(const std::string& decl, NameSpace* pNameSpace); diff --git a/CppParser/include/Poco/CppParser/Enum.h b/CppParser/include/Poco/CppParser/Enum.h index 6063d4c02..046a2117e 100644 --- a/CppParser/include/Poco/CppParser/Enum.h +++ b/CppParser/include/Poco/CppParser/Enum.h @@ -37,8 +37,8 @@ class CppParser_API Enum: public Symbol /// a collection of EnumValues. { public: - typedef std::vector Values; - typedef Values::const_iterator Iterator; + using Values = std::vector; + using Iterator = Values::const_iterator; enum Flags { diff --git a/CppParser/include/Poco/CppParser/Function.h b/CppParser/include/Poco/CppParser/Function.h index e060f61ee..b26e26e90 100644 --- a/CppParser/include/Poco/CppParser/Function.h +++ b/CppParser/include/Poco/CppParser/Function.h @@ -49,8 +49,8 @@ public: FN_DELETE = 1024 /// The function has been deleted. }; - typedef std::vector Parameters; - typedef Parameters::const_iterator Iterator; + using Parameters = std::vector; + using Iterator = Parameters::const_iterator; Function(const std::string& decl, NameSpace* pNameSpace); /// Creates the Function. diff --git a/CppParser/include/Poco/CppParser/NameSpace.h b/CppParser/include/Poco/CppParser/NameSpace.h index 9f5b3dab5..f3c0c56b9 100644 --- a/CppParser/include/Poco/CppParser/NameSpace.h +++ b/CppParser/include/Poco/CppParser/NameSpace.h @@ -33,10 +33,10 @@ class CppParser_API NameSpace: public Symbol /// This class represents a namespace. { public: - typedef std::multimap SymbolTable; - typedef SymbolTable::const_iterator Iterator; - typedef std::map AliasMap; - typedef std::vector NameSpaceVec; + using SymbolTable = std::multimap; + using Iterator = SymbolTable::const_iterator; + using AliasMap = std::map; + using NameSpaceVec = std::vector; NameSpace(); /// Creates the NameSpace. diff --git a/CppParser/include/Poco/CppParser/Parser.h b/CppParser/include/Poco/CppParser/Parser.h index 060551b8c..098cbc6da 100644 --- a/CppParser/include/Poco/CppParser/Parser.h +++ b/CppParser/include/Poco/CppParser/Parser.h @@ -73,7 +73,7 @@ protected: const Poco::Token* parseExtern(const Poco::Token* pNext); const Poco::Token* parseTypeDef(const Poco::Token* pNext); const Poco::Token* parseUsing(const Poco::Token* pNext); - const Poco::Token* parseFunc(const Poco::Token* pNext, std::string& decl); + const Poco::Token* parseFunc(const Poco::Token* pNext, const std::string& attrs, std::string& decl); const Poco::Token* parseParameters(const Poco::Token* pNext, Function* pFunc); const Poco::Token* parseBlock(const Poco::Token* pNext); const Poco::Token* parseEnum(const Poco::Token* pNext); @@ -82,6 +82,7 @@ protected: const Poco::Token* parseClassMembers(const Poco::Token* pNext, Struct* pClass); const Poco::Token* parseAccess(const Poco::Token* pNext); const Poco::Token* parseIdentifier(const Poco::Token* pNext, std::string& id); + const Poco::Token* parseAttributes(const Poco::Token* pNext, std::string& attrs); void addSymbol(Symbol* pSymbol, int lineNumber, bool addGST = true); void pushNameSpace(NameSpace* pNameSpace, int lineNumber, bool addGST = true); @@ -102,7 +103,7 @@ protected: const Poco::Token* nextToken(); private: - typedef std::vector NSStack; + using NSStack = std::vector; NameSpace::SymbolTable& _gst; Poco::CountingInputStream _istr; diff --git a/CppParser/include/Poco/CppParser/Struct.h b/CppParser/include/Poco/CppParser/Struct.h index 2a5a17019..6983cab40 100644 --- a/CppParser/include/Poco/CppParser/Struct.h +++ b/CppParser/include/Poco/CppParser/Struct.h @@ -51,13 +51,13 @@ public: Struct* pClass; }; - typedef std::vector BaseClasses; - typedef BaseClasses::const_iterator BaseIterator; - typedef std::vector StructVec; - typedef StructVec::const_iterator DerivedIterator; - typedef std::vector Functions; - typedef std::set FunctionSet; - typedef std::set StructSet; + using BaseClasses = std::vector; + using BaseIterator = BaseClasses::const_iterator; + using StructVec = std::vector; + using DerivedIterator = StructVec::const_iterator; + using Functions = std::vector; + using FunctionSet = std::set; + using StructSet = std::set; Struct(const std::string& decl, bool isClass, NameSpace* pNameSpace); /// Creates the Struct. diff --git a/CppParser/include/Poco/CppParser/Symbol.h b/CppParser/include/Poco/CppParser/Symbol.h index 8bae391f3..035eef647 100644 --- a/CppParser/include/Poco/CppParser/Symbol.h +++ b/CppParser/include/Poco/CppParser/Symbol.h @@ -85,6 +85,13 @@ public: Access getAccess() const; /// Returns the symbol's access. + void setAttributeList(const std::string& attrs); + /// Sets the C++11 attribute list, e.g. "[[noreturn]]". + + const std::string& getAttributeList() const; + /// Returns the C++11 attribute list, or an empty string + /// if the symbol does not have one. + void setDocumentation(const std::string& text); /// Sets the symbol's documentation. @@ -169,6 +176,7 @@ private: std::string _package; std::string _library; Attributes _attrs; + std::string _attributeList; static int _nextId; }; @@ -189,6 +197,12 @@ inline const std::string& Symbol::name() const } +inline const std::string& Symbol::getAttributeList() const +{ + return _attributeList; +} + + inline const std::string& Symbol::getDocumentation() const { return _documentation; diff --git a/CppParser/src/CppToken.cpp b/CppParser/src/CppToken.cpp index 9cd9e98b2..7bb6c7b89 100644 --- a/CppParser/src/CppToken.cpp +++ b/CppParser/src/CppToken.cpp @@ -49,9 +49,11 @@ void CppToken::syntaxError(const std::string& expected, const std::string& actua OperatorToken::OperatorToken() { - int i = 1; + int i = OP_OPENBRACKET; _opMap["["] = i++; _opMap["]"] = i++; + _opMap["[["] = i++; + _opMap["]]"] = i++; _opMap["("] = i++; _opMap[")"] = i++; _opMap["{"] = i++; @@ -159,13 +161,23 @@ void OperatorToken::finish(std::istream& istr) case ')': case '{': case '}': - case '[': - case ']': case ';': case '?': case '~': case ',': break; + case '[': + if (next == '[') + { + _value += (char) istr.get(); + } + break; + case ']': + if (next == ']') + { + _value += (char) istr.get(); + } + break; case '.': if (next == '.') { @@ -231,7 +243,7 @@ int OperatorToken::asInteger() const IdentifierToken::IdentifierToken() { - int i = 1; + int i = KW_ALIGNAS; _kwMap["alignas"] = i++; _kwMap["alignof"] = i++; _kwMap["and"] = i++; diff --git a/CppParser/src/Parser.cpp b/CppParser/src/Parser.cpp index 1da09fabd..61cc3e82b 100644 --- a/CppParser/src/Parser.cpp +++ b/CppParser/src/Parser.cpp @@ -39,6 +39,7 @@ using Poco::NumberFormatter; using Poco::SyntaxException; using Poco::icompare; using Poco::trimInPlace; +using namespace std::string_literals; namespace Poco { @@ -117,6 +118,8 @@ inline void Parser::append(std::string& decl, const std::string& token) token != "," && token != "[" && token != "]" && + token != "[[" && + token != "]]" && last != '~' && last != ':' && last != '(' && @@ -380,7 +383,7 @@ const Token* Parser::parseClassMembers(const Token* pNext, Struct* /*pClass*/) poco_assert (isOperator(pNext, OperatorToken::OP_OPENBRACE)); pNext = next(); - while (pNext->is(Token::IDENTIFIER_TOKEN) || pNext->is(Token::KEYWORD_TOKEN) || isOperator(pNext, OperatorToken::OP_COMPL) || isOperator(pNext, OperatorToken::OP_DBL_COLON)) + while (pNext->is(Token::IDENTIFIER_TOKEN) || pNext->is(Token::KEYWORD_TOKEN) || isOperator(pNext, OperatorToken::OP_COMPL) || isOperator(pNext, OperatorToken::OP_DBL_COLON) || isOperator(pNext, OperatorToken::OP_DBL_OPENBRACKET)) { switch (pNext->asInteger()) { @@ -575,6 +578,11 @@ const Token* Parser::parseVarFunc(const Token* pNext) const Token* Parser::parseVarFunc(const Token* pNext, std::string& decl) { _pCurrentSymbol = 0; + std::string attrs; + if (isOperator(pNext, OperatorToken::OP_DBL_OPENBRACKET)) + { + pNext = parseAttributes(pNext, attrs); + } if (isKeyword(pNext, IdentifierToken::KW_EXTERN)) { pNext = parseExtern(pNext); @@ -596,6 +604,7 @@ const Token* Parser::parseVarFunc(const Token* pNext, std::string& decl) if (!currentNameSpace()->lookup(name)) { Variable* pVar = new Variable(decl, currentNameSpace()); + pVar->setAttributeList(attrs); addSymbol(pVar, static_cast(_istr.getCurrentLineNumber())); } pNext = next(); @@ -611,7 +620,7 @@ const Token* Parser::parseVarFunc(const Token* pNext, std::string& decl) pNext = next(); expectOperator(pNext, OperatorToken::OP_OPENPARENT, "("); } - pNext = parseFunc(pNext, decl); + pNext = parseFunc(pNext, attrs, decl); } } _pCurrentSymbol = 0; @@ -641,7 +650,7 @@ const Token* Parser::parseExtern(const Token* pNext) } -const Token* Parser::parseFunc(const Token* pNext, std::string& decl) +const Token* Parser::parseFunc(const Token* pNext, const std::string& attrs, std::string& decl) { poco_assert (isOperator(pNext, OperatorToken::OP_OPENPARENT)); @@ -651,6 +660,7 @@ const Token* Parser::parseFunc(const Token* pNext, std::string& decl) if (name.find(':') == std::string::npos) { pFunc = new Function(decl, currentNameSpace()); + pFunc->setAttributeList(attrs); addSymbol(pFunc, line); } pNext = parseParameters(pNext, pFunc); @@ -909,6 +919,25 @@ const Token* Parser::parseIdentifier(const Token* pNext, std::string& id) } +const Poco::Token* Parser::parseAttributes(const Poco::Token* pNext, std::string& attrs) +{ + poco_assert (isOperator(pNext, OperatorToken::OP_DBL_OPENBRACKET)); + append(attrs, pNext); + pNext = next(); + while (pNext && !isOperator(pNext, OperatorToken::OP_DBL_CLOSBRACKET)) + { + append(attrs, pNext); + pNext = next(); + } + if (pNext) + { + append(attrs, pNext); + pNext = next(); + } + return pNext; +} + + void Parser::addSymbol(Symbol* pSymbol, int lineNumber, bool addGST) { pSymbol->setLineNumber(lineNumber); diff --git a/CppParser/src/Symbol.cpp b/CppParser/src/Symbol.cpp index 3a9ecf326..50c436b14 100644 --- a/CppParser/src/Symbol.cpp +++ b/CppParser/src/Symbol.cpp @@ -59,6 +59,12 @@ void Symbol::setAccess(Access access) } +void Symbol::setAttributeList(const std::string& attrs) +{ + _attributeList = attrs; +} + + void Symbol::setDocumentation(const std::string& text) { _documentation = text; From ba2c6cf83994dc2039b2039b22fb0f713be0000f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 5 Feb 2024 21:05:30 +0100 Subject: [PATCH 294/395] feat(PocoDoc): C++11 attributes support --- PocoDoc/src/DocWriter.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/PocoDoc/src/DocWriter.cpp b/PocoDoc/src/DocWriter.cpp index 335f155ea..bc8a04fc7 100644 --- a/PocoDoc/src/DocWriter.cpp +++ b/PocoDoc/src/DocWriter.cpp @@ -1979,6 +1979,12 @@ void DocWriter::writeFunction(std::ostream& ostr, const Function* pFunc) writeIcon(ostr, "inline"); ostr << "\n"; ostr << "

        "; + + const std::string& attrs = pFunc->getAttributeList(); + if (!attrs.empty()) + { + ostr << "" << htmlize(attrs) << "
        "; + } const std::string& decl = pFunc->declaration(); writeDecl(ostr, decl); if (!std::isalnum(decl[decl.length() - 1])) @@ -2016,7 +2022,7 @@ void DocWriter::writeFunction(std::ostream& ostr, const Function* pFunc) ostr << " = 0"; ostr << ";

        \n"; - if (pFunc->attrs().has("deprecated")) + if (pFunc->attrs().has("deprecated") || pFunc->getAttributeList().compare(0, 12, "[[deprecated") == 0) { writeDeprecated(ostr, "function"); } From 3bb76f51add33cd2a94cc3b8c3511aeb2933f296 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Tue, 6 Feb 2024 09:58:30 +0100 Subject: [PATCH 295/395] fix(CppParser): parsing of function template parameters and namespace imports --- CppParser/src/Parser.cpp | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/CppParser/src/Parser.cpp b/CppParser/src/Parser.cpp index 61cc3e82b..f7f711dae 100644 --- a/CppParser/src/Parser.cpp +++ b/CppParser/src/Parser.cpp @@ -216,6 +216,18 @@ const Token* Parser::parseNameSpace(const Token* pNext) _access = Symbol::ACC_PUBLIC; std::string name = pNext->tokenString(); pNext = next(); + + if (isOperator(pNext, OperatorToken::OP_ASSIGN)) + { + pNext = next(); + while (!isOperator(pNext, OperatorToken::OP_SEMICOLON) && !isEOF(pNext)) + { + pNext = next(); + } + if (!isEOF(pNext)) pNext = next(); + return pNext; + } + expectOperator(pNext, OperatorToken::OP_OPENBRACE, "{"); std::string fullName = currentNameSpace()->fullName(); @@ -591,11 +603,18 @@ const Token* Parser::parseVarFunc(const Token* pNext, std::string& decl) { append(decl, pNext); pNext = next(); - bool isOp = false; - while (!isOperator(pNext, OperatorToken::OP_SEMICOLON) && !isOperator(pNext, OperatorToken::OP_OPENPARENT) && !isEOF(pNext)) + bool isOperatorKeyword = false; + int tmplDepth = 0; + while (!isOperator(pNext, OperatorToken::OP_SEMICOLON) && !(tmplDepth == 0 && isOperator(pNext, OperatorToken::OP_OPENPARENT)) && !isEOF(pNext)) { + if (!isOperatorKeyword && isOperator(pNext, OperatorToken::OP_LT)) + tmplDepth++; + else if (!isOperatorKeyword && isOperator(pNext, OperatorToken::OP_GT) && tmplDepth > 0) + tmplDepth--; + else if (!isOperatorKeyword && isOperator(pNext, OperatorToken::OP_SHR) && tmplDepth > 1) + tmplDepth -= 2; append(decl, pNext); - isOp = isKeyword(pNext, IdentifierToken::KW_OPERATOR); + isOperatorKeyword = isKeyword(pNext, IdentifierToken::KW_OPERATOR); pNext = next(); } if (isOperator(pNext, OperatorToken::OP_SEMICOLON)) @@ -611,7 +630,7 @@ const Token* Parser::parseVarFunc(const Token* pNext, std::string& decl) } else if (isOperator(pNext, OperatorToken::OP_OPENPARENT)) { - if (isOp) + if (isOperatorKeyword) { decl += " ("; pNext = next(); From 7ffdcf97d448bb4ff4d1d4c2a2afbcbe22eb8e4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Tue, 6 Feb 2024 09:59:38 +0100 Subject: [PATCH 296/395] fix: make headers parseable by CppParser/PocoDoc --- Foundation/include/Poco/Any.h | 2 + Foundation/include/Poco/Dynamic/VarVisitor.h | 47 +++++++++++++------ Foundation/include/Poco/MemoryPool.h | 2 + PocoDoc/cfg/mkdoc-poco.xml | 1 + .../include/Poco/Prometheus/AtomicFloat.h | 2 +- XML/include/Poco/XML/XMLStreamParser.h | 10 +++- 6 files changed, 47 insertions(+), 17 deletions(-) diff --git a/Foundation/include/Poco/Any.h b/Foundation/include/Poco/Any.h index 9927776a1..42b8da0a9 100644 --- a/Foundation/include/Poco/Any.h +++ b/Foundation/include/Poco/Any.h @@ -40,6 +40,7 @@ template class VarHolderImpl; } +#ifndef POCO_DOC template struct TypeSizeLE: std::integral_constant{}; @@ -48,6 +49,7 @@ struct TypeSizeLE: template struct TypeSizeGT: std::integral_constant S)>{}; +#endif template diff --git a/Foundation/include/Poco/Dynamic/VarVisitor.h b/Foundation/include/Poco/Dynamic/VarVisitor.h index e800369a5..b3b3d1ce2 100644 --- a/Foundation/include/Poco/Dynamic/VarVisitor.h +++ b/Foundation/include/Poco/Dynamic/VarVisitor.h @@ -1,6 +1,3 @@ -#ifndef Foundation_VarVisitor_INCLUDED -#define Foundation_VarVisitor_INCLUDED - // // VarVisitor.h // @@ -17,18 +14,28 @@ // +#ifndef Foundation_VarVisitor_INCLUDED +#define Foundation_VarVisitor_INCLUDED + + #include "Poco/Dynamic/Var.h" #include #include + namespace Poco { namespace Details { + +#ifndef POCO_DOC + + struct TypeInfoHash { inline std::size_t operator()(std::type_info const& t) const { return t.hash_code(); } }; + struct EqualRef { template @@ -38,20 +45,28 @@ struct EqualRef } }; -using TypeInfoRef = std::reference_wrapper; +using TypeInfoRef = std::reference_wrapper; using HandlerCaller = std::function; + template -using HandlerPointer = void (*)(const T &); +using HandlerPointer = void (*)(const T&); + template using Handler = std::function; -} // Details + +#endif // POCO_DOC + + +} // Details + namespace Dynamic { + class Foundation_API Visitor /// VarVisitor class. { @@ -62,10 +77,10 @@ class Foundation_API Visitor public: template - bool addHandler(const Details::Handler &f) - /// Add handler for specific type T which holds in Var - /// This method is more safe, because it saves copy of handler : lambda or std::function - /// Returns true if handler was added + bool addHandler(const Details::Handler& f) + /// Add handler for specific type T which holds in Var. + /// This method is more safe, because it saves copy of handler : lambda or std::function. + /// Returns true if handler was added. { auto result = _handlers.emplace(std::ref(typeid(T)), Details::HandlerCaller([handler = f](const Poco::Dynamic::Var& x) @@ -77,9 +92,9 @@ public: template bool addHandler(Details::HandlerPointer f) - /// Add handler for specific type T which holds in Var - /// This method is less safe, because it saves only copy of function pointer - /// Returns true if handler was added + /// Add handler for specific type T which holds in Var. + /// This method is less safe, because it saves only copy of function pointer. + /// Returns true if handler was added. { auto result = _handlers.emplace(std::ref(typeid(T)), Details::HandlerCaller([handlerPointer = f](const Poco::Dynamic::Var& x) @@ -90,10 +105,12 @@ public: } bool visit(const Poco::Dynamic::Var& x) const; - /// Find handler for holded type and if it exists call handler - /// Returns true if hanler was found othrewise returns false + /// Find handler for held type and if it exists call handler. + /// Returns true if hanlder was found othrewise returns false. }; + } } // namespace Poco::Dynamic + #endif // Foundation_VarVisitor_INCLUDED diff --git a/Foundation/include/Poco/MemoryPool.h b/Foundation/include/Poco/MemoryPool.h index b3f424ea4..a68f2dc2f 100644 --- a/Foundation/include/Poco/MemoryPool.h +++ b/Foundation/include/Poco/MemoryPool.h @@ -229,6 +229,7 @@ private: _memory.next = next; } +#ifndef POCO_DOC union /// Memory block storage. /// @@ -242,6 +243,7 @@ private: char buffer[sizeof(T)]; Block* next; } _memory; +#endif private: Block(const Block&); diff --git a/PocoDoc/cfg/mkdoc-poco.xml b/PocoDoc/cfg/mkdoc-poco.xml index e74b2081d..8c729cb55 100644 --- a/PocoDoc/cfg/mkdoc-poco.xml +++ b/PocoDoc/cfg/mkdoc-poco.xml @@ -41,6 +41,7 @@ -C, -DPOCO_NO_WINDOWS_H, -DPOCO_NO_GCC_API_ATTRIBUTE, + -DPOCO_DOC, -xc++ diff --git a/Prometheus/include/Poco/Prometheus/AtomicFloat.h b/Prometheus/include/Poco/Prometheus/AtomicFloat.h index 4e8f9f85f..07c2b19b1 100644 --- a/Prometheus/include/Poco/Prometheus/AtomicFloat.h +++ b/Prometheus/include/Poco/Prometheus/AtomicFloat.h @@ -32,7 +32,7 @@ class AtomicFloat { public: AtomicFloat(): - _value{0} + _value(0.0) { } diff --git a/XML/include/Poco/XML/XMLStreamParser.h b/XML/include/Poco/XML/XMLStreamParser.h index 782f7ffb2..05b8f0469 100644 --- a/XML/include/Poco/XML/XMLStreamParser.h +++ b/XML/include/Poco/XML/XMLStreamParser.h @@ -280,6 +280,7 @@ private: EventType nextBody(); void handleError(); +#ifndef POCO_DOC // If _size is 0, then data is std::istream. Otherwise, it is a buffer. union { @@ -287,6 +288,13 @@ private: const void* buf; } _data; +#endif + + enum ParserState + { + state_next, + state_peek + }; std::size_t _size; const std::string _inputName; @@ -294,7 +302,7 @@ private: XML_Parser _parser; std::size_t _depth; bool _accumulateContent; // Whether we are accumulating character content. - enum { state_next, state_peek } _parserState; + ParserState _parserState; EventType _currentEvent; EventType _queue; QName _qname; From 37c7fe29214fed20c5a515c41f0cd9feaf3d6845 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Tue, 6 Feb 2024 10:04:59 +0100 Subject: [PATCH 297/395] fix(PocoDoc): add -DPOCO_DOC --- PocoDoc/cfg/mkdocumentation.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/PocoDoc/cfg/mkdocumentation.xml b/PocoDoc/cfg/mkdocumentation.xml index 5c72451a8..74553a98c 100644 --- a/PocoDoc/cfg/mkdocumentation.xml +++ b/PocoDoc/cfg/mkdocumentation.xml @@ -37,7 +37,8 @@ -D_DEBUG, -E, -C, - -DPOCO_NO_GCC_API_ATTRIBUTE + -DPOCO_NO_GCC_API_ATTRIBUTE, + -DPOCO_DOC true From 6d7b7edfcf1a0932ee3a823c26881cb3c94fcb30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Tue, 6 Feb 2024 10:44:14 +0100 Subject: [PATCH 298/395] fix(PocoDoc): postgres headers not found --- PocoDoc/cfg/mkdoc-poco.xml | 1 + PocoDoc/cfg/mkdocumentation.xml | 1 + 2 files changed, 2 insertions(+) diff --git a/PocoDoc/cfg/mkdoc-poco.xml b/PocoDoc/cfg/mkdoc-poco.xml index 8c729cb55..1045e172e 100644 --- a/PocoDoc/cfg/mkdoc-poco.xml +++ b/PocoDoc/cfg/mkdoc-poco.xml @@ -36,6 +36,7 @@ -I/usr/local/ssl/include, -I/usr/local/mysql/include, -I/usr/include/mysql, + -I/usr/include/postgres, -D_DEBUG, -E, -C, diff --git a/PocoDoc/cfg/mkdocumentation.xml b/PocoDoc/cfg/mkdocumentation.xml index 74553a98c..9f47963d1 100644 --- a/PocoDoc/cfg/mkdocumentation.xml +++ b/PocoDoc/cfg/mkdocumentation.xml @@ -34,6 +34,7 @@ ${Includes}, -I/usr/local/mysql/include, -I/usr/include/mysql, + -I/usr/include/postgres, -D_DEBUG, -E, -C, From 86f79a0607adc3339040e8a53c803f8dbd97c437 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Tue, 6 Feb 2024 12:04:31 +0100 Subject: [PATCH 299/395] fix(PocoDoc): libpq include path --- PocoDoc/cfg/mkdoc-poco.xml | 2 +- PocoDoc/cfg/mkdocumentation.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/PocoDoc/cfg/mkdoc-poco.xml b/PocoDoc/cfg/mkdoc-poco.xml index 1045e172e..841c4aae3 100644 --- a/PocoDoc/cfg/mkdoc-poco.xml +++ b/PocoDoc/cfg/mkdoc-poco.xml @@ -36,7 +36,7 @@ -I/usr/local/ssl/include, -I/usr/local/mysql/include, -I/usr/include/mysql, - -I/usr/include/postgres, + -I/usr/include/postgresql, -D_DEBUG, -E, -C, diff --git a/PocoDoc/cfg/mkdocumentation.xml b/PocoDoc/cfg/mkdocumentation.xml index 9f47963d1..7bc1bcb51 100644 --- a/PocoDoc/cfg/mkdocumentation.xml +++ b/PocoDoc/cfg/mkdocumentation.xml @@ -34,7 +34,7 @@ ${Includes}, -I/usr/local/mysql/include, -I/usr/include/mysql, - -I/usr/include/postgres, + -I/usr/include/postgresql, -D_DEBUG, -E, -C, From fddf3d45d9a7ddf16aa27c59297209bf958ac201 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 5 Feb 2024 21:09:08 +0100 Subject: [PATCH 300/395] chore(doc): Changelog and release notes formatting --- CHANGELOG | 4 ++-- doc/99100-ReleaseNotes.page | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index a937ee620..35ff1453e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -7,7 +7,7 @@ Summary of Changes: This is a bugfix release. -Features and enhancements: +Features and Enhancements: - GH #4367 `SQLite` `FTS5` (full text search) - GH #4335 Implement patches that Debian/Ubuntu applies when preparing deb packages @@ -19,7 +19,7 @@ Features and enhancements: - PR #4422 enh(File): Linux, macOS: microsecond precision for file times - PR #4390 enh(DateTimeParser): option to cleanup input string before parsing (#569) -Bug fixes and improvements: +Bug Fixes and Improvements: - GH #4425 Unit tests: optional testing of deprecated functionality - GH #4421 Multiple calls to initializeSSL/uninitializeSSL cause assert failure during certificate validation diff --git a/doc/99100-ReleaseNotes.page b/doc/99100-ReleaseNotes.page index fa6285291..1984b3f85 100644 --- a/doc/99100-ReleaseNotes.page +++ b/doc/99100-ReleaseNotes.page @@ -6,9 +6,9 @@ AAAIntroduction !!Summary of Changes - This is a bugfix release. +This is a bugfix release. -!!Features and enhancements +!!Features and Enhancements - GH #4367 `SQLite` `FTS5` (full text search) - GH #4335 Implement patches that Debian/Ubuntu applies when preparing deb packages @@ -20,7 +20,7 @@ AAAIntroduction - PR #4422 enh(File): Linux, macOS: microsecond precision for file times - PR #4390 enh(DateTimeParser): option to cleanup input string before parsing (#569) -!!Bug fixes and improvements +!!Bug Fixes and Improvements - GH #4425 Unit tests: optional testing of deprecated functionality - GH #4421 Multiple calls to initializeSSL/uninitializeSSL cause assert failure during certificate validation From 0c1819446560959fa12dc6dfea19ae5bc4b06ea4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Tue, 6 Feb 2024 20:05:46 +0100 Subject: [PATCH 301/395] fix(XML): #4443: Upgrade libexpat to 2.6.0 --- XML/CMakeLists.txt | 2 +- XML/Makefile | 2 +- XML/XML.progen | 2 +- XML/XML_vs160.vcxproj | 24 +- XML/XML_vs170.vcxproj | 36 +-- XML/include/Poco/XML/expat.h | 28 +- XML/src/internal.h | 8 +- XML/src/siphash.h | 10 +- XML/src/xmlparse.cpp | 580 +++++++++++++++++++++-------------- XML/src/xmlrole.c | 4 +- XML/src/xmlrole.h | 6 +- XML/src/xmltok.c | 27 +- XML/src/xmltok.h | 8 +- XML/src/xmltok_impl.c | 2 +- 14 files changed, 436 insertions(+), 303 deletions(-) diff --git a/XML/CMakeLists.txt b/XML/CMakeLists.txt index a51d906c3..448e5017a 100644 --- a/XML/CMakeLists.txt +++ b/XML/CMakeLists.txt @@ -58,7 +58,7 @@ else() target_compile_definitions(XML PUBLIC XML_STATIC) endif() target_compile_definitions(XML - PUBLIC XML_DTD + PUBLIC XML_DTD XML_GE PRIVATE XML_NS HAVE_EXPAT_CONFIG_H) endif() diff --git a/XML/Makefile b/XML/Makefile index 508bc4ddd..ea328d918 100644 --- a/XML/Makefile +++ b/XML/Makefile @@ -6,7 +6,7 @@ include $(POCO_BASE)/build/rules/global -COMMONFLAGS += -DXML_NS -DXML_DTD -DHAVE_EXPAT_CONFIG_H -DEXPAT_POCO +COMMONFLAGS += -DXML_NS -DXML_DTD -DXML_GE -DHAVE_EXPAT_CONFIG_H -DEXPAT_POCO objects = AbstractContainerNode AbstractNode Attr AttrMap Attributes \ AttributesImpl CDATASection CharacterData ChildNodesList Comment \ diff --git a/XML/XML.progen b/XML/XML.progen index e8b0f0645..c1ba4e046 100644 --- a/XML/XML.progen +++ b/XML/XML.progen @@ -8,7 +8,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\Foundation\\include -vc.project.compiler.defines = XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H +vc.project.compiler.defines = XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} diff --git a/XML/XML_vs160.vcxproj b/XML/XML_vs160.vcxproj index e37dec131..ce0edaec5 100644 --- a/XML/XML_vs160.vcxproj +++ b/XML/XML_vs160.vcxproj @@ -227,7 +227,7 @@ Disabled .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -260,7 +260,7 @@ Speed true .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL false @@ -289,7 +289,7 @@ Disabled .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebug @@ -316,7 +316,7 @@ Speed true .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) true MultiThreaded false @@ -337,7 +337,7 @@ Disabled .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -364,7 +364,7 @@ Speed true .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) true MultiThreadedDLL false @@ -386,7 +386,7 @@ Disabled .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -419,7 +419,7 @@ Speed true .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL false @@ -448,7 +448,7 @@ Disabled .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebug @@ -475,7 +475,7 @@ Speed true .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) true MultiThreaded false @@ -496,7 +496,7 @@ Disabled .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -523,7 +523,7 @@ Speed true .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) true MultiThreadedDLL false diff --git a/XML/XML_vs170.vcxproj b/XML/XML_vs170.vcxproj index 7dafeecd3..508472784 100644 --- a/XML/XML_vs170.vcxproj +++ b/XML/XML_vs170.vcxproj @@ -332,7 +332,7 @@ Disabled .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -369,7 +369,7 @@ Speed true .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL false @@ -402,7 +402,7 @@ Disabled .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebug @@ -432,7 +432,7 @@ Speed true .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) true MultiThreaded false @@ -457,7 +457,7 @@ Disabled .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -487,7 +487,7 @@ Speed true .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) true MultiThreadedDLL false @@ -512,7 +512,7 @@ Disabled .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -549,7 +549,7 @@ Speed true .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL false @@ -582,7 +582,7 @@ Disabled .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebug @@ -612,7 +612,7 @@ Speed true .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) true MultiThreaded false @@ -637,7 +637,7 @@ Disabled .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -667,7 +667,7 @@ Speed true .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) true MultiThreadedDLL false @@ -692,7 +692,7 @@ Disabled .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -729,7 +729,7 @@ Speed true .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;_USRDLL;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;XML_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL false @@ -762,7 +762,7 @@ Disabled .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebug @@ -792,7 +792,7 @@ Speed true .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) true MultiThreaded false @@ -817,7 +817,7 @@ Disabled .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -847,7 +847,7 @@ Speed true .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;XML_STATIC;XML_NS;XML_DTD;XML_GE;HAVE_EXPAT_CONFIG_H;%(PreprocessorDefinitions) true MultiThreadedDLL false diff --git a/XML/include/Poco/XML/expat.h b/XML/include/Poco/XML/expat.h index 1c83563cb..95464b0dd 100644 --- a/XML/include/Poco/XML/expat.h +++ b/XML/include/Poco/XML/expat.h @@ -11,11 +11,13 @@ Copyright (c) 2000-2005 Fred L. Drake, Jr. Copyright (c) 2001-2002 Greg Stein Copyright (c) 2002-2016 Karl Waclawek - Copyright (c) 2016-2022 Sebastian Pipping + Copyright (c) 2016-2024 Sebastian Pipping Copyright (c) 2016 Cristian Rodríguez Copyright (c) 2016 Thomas Beutlich Copyright (c) 2017 Rhodri James Copyright (c) 2022 Thijs Schreijer + Copyright (c) 2023 Hanno Böck + Copyright (c) 2023 Sony Corporation / Snild Dolkow Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -269,7 +271,7 @@ XML_ParserCreate_MM(const XML_Char *encoding, const XML_Memory_Handling_Suite *memsuite, const XML_Char *namespaceSeparator); -/* Prepare a parser object to be re-used. This is particularly +/* Prepare a parser object to be reused. This is particularly valuable when memory allocation overhead is disproportionately high, such as when a large number of small documnents need to be parsed. All handlers are cleared from the parser, except for the @@ -951,7 +953,7 @@ XMLPARSEAPI(XML_Index) XML_GetCurrentByteIndex(XML_Parser parser); XMLPARSEAPI(int) XML_GetCurrentByteCount(XML_Parser parser); -/* If XML_CONTEXT_BYTES is defined, returns the input buffer, sets +/* If XML_CONTEXT_BYTES is >=1, returns the input buffer, sets the integer pointed to by offset to the offset within this buffer of the current parse position, and sets the integer pointed to by size to the size of this buffer (the number of input bytes). Otherwise @@ -1025,7 +1027,9 @@ enum XML_FeatureEnum { XML_FEATURE_ATTR_INFO, /* Added in Expat 2.4.0. */ XML_FEATURE_BILLION_LAUGHS_ATTACK_PROTECTION_MAXIMUM_AMPLIFICATION_DEFAULT, - XML_FEATURE_BILLION_LAUGHS_ATTACK_PROTECTION_ACTIVATION_THRESHOLD_DEFAULT + XML_FEATURE_BILLION_LAUGHS_ATTACK_PROTECTION_ACTIVATION_THRESHOLD_DEFAULT, + /* Added in Expat 2.6.0. */ + XML_FEATURE_GE /* Additional features must be added to the end of this enum. */ }; @@ -1038,23 +1042,29 @@ typedef struct { XMLPARSEAPI(const XML_Feature *) XML_GetFeatureList(void); -#ifdef XML_DTD -/* Added in Expat 2.4.0. */ +#if XML_GE == 1 +/* Added in Expat 2.4.0 for XML_DTD defined and + * added in Expat 2.6.0 for XML_GE == 1. */ XMLPARSEAPI(XML_Bool) XML_SetBillionLaughsAttackProtectionMaximumAmplification( XML_Parser parser, float maximumAmplificationFactor); -/* Added in Expat 2.4.0. */ +/* Added in Expat 2.4.0 for XML_DTD defined and + * added in Expat 2.6.0 for XML_GE == 1. */ XMLPARSEAPI(XML_Bool) XML_SetBillionLaughsAttackProtectionActivationThreshold( XML_Parser parser, unsigned long long activationThresholdBytes); #endif +/* Added in Expat 2.6.0. */ +XMLPARSEAPI(XML_Bool) +XML_SetReparseDeferralEnabled(XML_Parser parser, XML_Bool enabled); + /* Expat follows the semantic versioning convention. - See http://semver.org. + See https://semver.org */ #define XML_MAJOR_VERSION 2 -#define XML_MINOR_VERSION 5 +#define XML_MINOR_VERSION 6 #define XML_MICRO_VERSION 0 #ifdef __cplusplus diff --git a/XML/src/internal.h b/XML/src/internal.h index eeeb76d03..a82c68b4b 100644 --- a/XML/src/internal.h +++ b/XML/src/internal.h @@ -28,9 +28,10 @@ Copyright (c) 2002-2003 Fred L. Drake, Jr. Copyright (c) 2002-2006 Karl Waclawek Copyright (c) 2003 Greg Stein - Copyright (c) 2016-2022 Sebastian Pipping + Copyright (c) 2016-2023 Sebastian Pipping Copyright (c) 2018 Yury Gribov Copyright (c) 2019 David Loffredo + Copyright (c) 2023 Sony Corporation / Snild Dolkow Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -154,12 +155,15 @@ extern "C" { void _INTERNAL_trim_to_complete_utf8_characters(const char *from, const char **fromLimRef); -#if defined(XML_DTD) +#if XML_GE == 1 unsigned long long testingAccountingGetCountBytesDirect(XML_Parser parser); unsigned long long testingAccountingGetCountBytesIndirect(XML_Parser parser); const char *unsignedCharToPrintable(unsigned char c); #endif +extern XML_Bool g_reparseDeferralEnabledDefault; // written ONLY in runtests.c +extern unsigned int g_parseAttempts; // used for testing only + #ifdef __cplusplus } #endif diff --git a/XML/src/siphash.h b/XML/src/siphash.h index 303283ad2..a1ed99e68 100644 --- a/XML/src/siphash.h +++ b/XML/src/siphash.h @@ -106,7 +106,7 @@ * if this code is included and compiled as C++; related GCC warning is: * warning: use of C++11 long long integer constant [-Wlong-long] */ -#define _SIP_ULL(high, low) ((((uint64_t)high) << 32) | (low)) +#define SIP_ULL(high, low) ((((uint64_t)high) << 32) | (low)) #define SIP_ROTL(x, b) (uint64_t)(((x) << (b)) | ((x) >> (64 - (b)))) @@ -190,10 +190,10 @@ sip_round(struct siphash *H, const int rounds) { static struct siphash * sip24_init(struct siphash *H, const struct sipkey *key) { - H->v0 = _SIP_ULL(0x736f6d65U, 0x70736575U) ^ key->k[0]; - H->v1 = _SIP_ULL(0x646f7261U, 0x6e646f6dU) ^ key->k[1]; - H->v2 = _SIP_ULL(0x6c796765U, 0x6e657261U) ^ key->k[0]; - H->v3 = _SIP_ULL(0x74656462U, 0x79746573U) ^ key->k[1]; + H->v0 = SIP_ULL(0x736f6d65U, 0x70736575U) ^ key->k[0]; + H->v1 = SIP_ULL(0x646f7261U, 0x6e646f6dU) ^ key->k[1]; + H->v2 = SIP_ULL(0x6c796765U, 0x6e657261U) ^ key->k[0]; + H->v3 = SIP_ULL(0x74656462U, 0x79746573U) ^ key->k[1]; H->p = H->buf; H->c = 0; diff --git a/XML/src/xmlparse.cpp b/XML/src/xmlparse.cpp index 47a94d30e..8791b8efe 100644 --- a/XML/src/xmlparse.cpp +++ b/XML/src/xmlparse.cpp @@ -1,4 +1,4 @@ -/* 5ab094ffadd6edfc94c3eee53af44a86951f9f1f0933ada3114bbce2bfb02c99 (2.5.0+) +/* 628e24d4966bedbd4800f6ed128d06d29703765b4bce12d3b7f099f90f842fc9 (2.6.0+) __ __ _ ___\ \/ /_ __ __ _| |_ / _ \\ /| '_ \ / _` | __| @@ -13,7 +13,7 @@ Copyright (c) 2002-2016 Karl Waclawek Copyright (c) 2005-2009 Steven Solie Copyright (c) 2016 Eric Rahm - Copyright (c) 2016-2022 Sebastian Pipping + Copyright (c) 2016-2024 Sebastian Pipping Copyright (c) 2016 Gaurav Copyright (c) 2016 Thomas Beutlich Copyright (c) 2016 Gustavo Grieco @@ -32,10 +32,13 @@ Copyright (c) 2019 David Loffredo Copyright (c) 2019-2020 Ben Wagner Copyright (c) 2019 Vadim Zeitlin - Copyright (c) 2021 Dong-hee Na + Copyright (c) 2021 Donghee Na Copyright (c) 2022 Samanta Navarro Copyright (c) 2022 Jeffrey Walton Copyright (c) 2022 Jann Horn + Copyright (c) 2022 Sean McBride + Copyright (c) 2023 Owain Davies + Copyright (c) 2023 Sony Corporation / Snild Dolkow Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -58,8 +61,27 @@ USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#if ! defined(_GNU_SOURCE) -# define _GNU_SOURCE 1 /* syscall prototype */ +#define XML_BUILDING_EXPAT 1 + +#include "expat_config.h" + +#if ! defined(XML_GE) || (1 - XML_GE - 1 == 2) || (XML_GE < 0) || (XML_GE > 1) +# error XML_GE (for general entities) must be defined, non-empty, either 1 or 0 (0 to disable, 1 to enable; 1 is a common default) +#endif + +#if defined(XML_DTD) && XML_GE == 0 +# error Either undefine XML_DTD or define XML_GE to 1. +#endif + +#if ! defined(XML_CONTEXT_BYTES) || (1 - XML_CONTEXT_BYTES - 1 == 2) \ + || (XML_CONTEXT_BYTES + 0 < 0) +# error XML_CONTEXT_BYTES must be defined, non-empty and >=0 (0 to disable, >=1 to enable; 1024 is a common default) +#endif + +#if defined(HAVE_SYSCALL_GETRANDOM) +# if ! defined(_GNU_SOURCE) +# define _GNU_SOURCE 1 /* syscall prototype */ +# endif #endif #ifdef _WIN32 @@ -69,10 +91,7 @@ # endif #endif -#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) -#define _CRT_SECURE_NO_WARNINGS -#endif - +#include #include #include /* memset(), memcpy() */ #include @@ -97,8 +116,6 @@ # include #endif -#define XML_BUILDING_EXPAT 1 - #ifdef EXPAT_WIN32 # include "winconfig.h" #endif @@ -140,8 +157,8 @@ Your options include: \ * Linux >=3.17 + glibc >=2.25 (getrandom): HAVE_GETRANDOM, \ * Linux >=3.17 + glibc (including <2.25) (syscall SYS_getrandom): HAVE_SYSCALL_GETRANDOM, \ - * BSD / macOS >=10.7 (arc4random_buf): HAVE_ARC4RANDOM_BUF, \ - * BSD / macOS (including <10.7) (arc4random): HAVE_ARC4RANDOM, \ + * BSD / macOS >=10.7 / glibc >=2.36 (arc4random_buf): HAVE_ARC4RANDOM_BUF, \ + * BSD / macOS (including <10.7) / glibc >=2.36 (arc4random): HAVE_ARC4RANDOM, \ * libbsd (arc4random_buf): HAVE_ARC4RANDOM_BUF + HAVE_LIBBSD, \ * libbsd (arc4random): HAVE_ARC4RANDOM + HAVE_LIBBSD, \ * Linux (including <3.17) / BSD / macOS (including <10.7) / Solaris >=8 (/dev/urandom): XML_DEV_URANDOM, \ @@ -205,6 +222,8 @@ typedef char ICHAR; /* Do safe (NULL-aware) pointer arithmetic */ #define EXPAT_SAFE_PTR_DIFF(p, q) (((p) && (q)) ? ((p) - (q)) : 0) +#define EXPAT_MIN(a, b) (((a) < (b)) ? (a) : (b)) + #include "internal.h" #include "xmltok.h" #include "xmlrole.h" @@ -288,7 +307,7 @@ typedef struct { XML_Parse()/XML_ParseBuffer(), the buffer is re-allocated to contain the 'raw' name as well. - A parser re-uses these structures, maintaining a list of allocated + A parser reuses these structures, maintaining a list of allocated TAG objects in a free list. */ typedef struct tag { @@ -417,12 +436,12 @@ enum XML_Account { XML_ACCOUNT_NONE /* i.e. do not account, was accounted already */ }; -#ifdef XML_DTD +#if XML_GE == 1 typedef unsigned long long XmlBigCount; typedef struct accounting { XmlBigCount countBytesDirect; XmlBigCount countBytesIndirect; - int debugLevel; + unsigned long debugLevel; float maximumAmplificationFactor; // >=1.0 unsigned long long activationThresholdBytes; } ACCOUNTING; @@ -431,9 +450,9 @@ typedef struct entity_stats { unsigned int countEverOpened; unsigned int currentDepth; unsigned int maximumDepthSeen; - int debugLevel; + unsigned long debugLevel; } ENTITY_STATS; -#endif /* XML_DTD */ +#endif /* XML_GE == 1 */ typedef enum XML_Error PTRCALL Processor(XML_Parser parser, const char *start, const char *end, const char **endPtr); @@ -473,41 +492,47 @@ static enum XML_Error doContent(XML_Parser parser, int startTagLevel, const ENCODING *enc, const char *start, const char *end, const char **endPtr, XML_Bool haveMore, enum XML_Account account); -static enum XML_Error doCdataSection(XML_Parser parser, const ENCODING *, +static enum XML_Error doCdataSection(XML_Parser parser, const ENCODING *enc, const char **startPtr, const char *end, const char **nextPtr, XML_Bool haveMore, enum XML_Account account); #ifdef XML_DTD -static enum XML_Error doIgnoreSection(XML_Parser parser, const ENCODING *, +static enum XML_Error doIgnoreSection(XML_Parser parser, const ENCODING *enc, const char **startPtr, const char *end, const char **nextPtr, XML_Bool haveMore); #endif /* XML_DTD */ static void freeBindings(XML_Parser parser, BINDING *bindings); -static enum XML_Error storeAtts(XML_Parser parser, const ENCODING *, - const char *s, TAG_NAME *tagNamePtr, +static enum XML_Error storeAtts(XML_Parser parser, const ENCODING *enc, + const char *attStr, TAG_NAME *tagNamePtr, BINDING **bindingsPtr, enum XML_Account account); static enum XML_Error addBinding(XML_Parser parser, PREFIX *prefix, const ATTRIBUTE_ID *attId, const XML_Char *uri, BINDING **bindingsPtr); -static int defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *, XML_Bool isCdata, - XML_Bool isId, const XML_Char *dfltValue, - XML_Parser parser); -static enum XML_Error storeAttributeValue(XML_Parser parser, const ENCODING *, - XML_Bool isCdata, const char *, - const char *, STRING_POOL *, +static int defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *attId, + XML_Bool isCdata, XML_Bool isId, + const XML_Char *value, XML_Parser parser); +static enum XML_Error storeAttributeValue(XML_Parser parser, + const ENCODING *enc, XML_Bool isCdata, + const char *ptr, const char *end, + STRING_POOL *pool, enum XML_Account account); -static enum XML_Error appendAttributeValue(XML_Parser parser, const ENCODING *, - XML_Bool isCdata, const char *, - const char *, STRING_POOL *, +static enum XML_Error appendAttributeValue(XML_Parser parser, + const ENCODING *enc, + XML_Bool isCdata, const char *ptr, + const char *end, STRING_POOL *pool, enum XML_Account account); static ATTRIBUTE_ID *getAttributeId(XML_Parser parser, const ENCODING *enc, const char *start, const char *end); -static int setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *); +static int setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *elementType); +#if XML_GE == 1 static enum XML_Error storeEntityValue(XML_Parser parser, const ENCODING *enc, const char *start, const char *end, enum XML_Account account); +#else +static enum XML_Error storeSelfEntityValue(XML_Parser parser, ENTITY *entity); +#endif static int reportProcessingInstruction(XML_Parser parser, const ENCODING *enc, const char *start, const char *end); static int reportComment(XML_Parser parser, const ENCODING *enc, @@ -527,21 +552,22 @@ static void dtdDestroy(DTD *p, XML_Bool isDocEntity, const XML_Memory_Handling_Suite *ms); static int dtdCopy(XML_Parser oldParser, DTD *newDtd, const DTD *oldDtd, const XML_Memory_Handling_Suite *ms); -static int copyEntityTable(XML_Parser oldParser, HASH_TABLE *, STRING_POOL *, - const HASH_TABLE *); +static int copyEntityTable(XML_Parser oldParser, HASH_TABLE *newTable, + STRING_POOL *newPool, const HASH_TABLE *oldTable); static NAMED *lookup(XML_Parser parser, HASH_TABLE *table, KEY name, size_t createSize); -static void FASTCALL hashTableInit(HASH_TABLE *, +static void FASTCALL hashTableInit(HASH_TABLE *table, const XML_Memory_Handling_Suite *ms); -static void FASTCALL hashTableClear(HASH_TABLE *); -static void FASTCALL hashTableDestroy(HASH_TABLE *); -static void FASTCALL hashTableIterInit(HASH_TABLE_ITER *, const HASH_TABLE *); -static NAMED *FASTCALL hashTableIterNext(HASH_TABLE_ITER *); +static void FASTCALL hashTableClear(HASH_TABLE *table); +static void FASTCALL hashTableDestroy(HASH_TABLE *table); +static void FASTCALL hashTableIterInit(HASH_TABLE_ITER *iter, + const HASH_TABLE *table); +static NAMED *FASTCALL hashTableIterNext(HASH_TABLE_ITER *iter); -static void FASTCALL poolInit(STRING_POOL *, +static void FASTCALL poolInit(STRING_POOL *pool, const XML_Memory_Handling_Suite *ms); -static void FASTCALL poolClear(STRING_POOL *); -static void FASTCALL poolDestroy(STRING_POOL *); +static void FASTCALL poolClear(STRING_POOL *pool); +static void FASTCALL poolDestroy(STRING_POOL *pool); static XML_Char *poolAppend(STRING_POOL *pool, const ENCODING *enc, const char *ptr, const char *end); static XML_Char *poolStoreString(STRING_POOL *pool, const ENCODING *enc, @@ -571,7 +597,7 @@ static XML_Parser parserCreate(const XML_Char *encodingName, static void parserInit(XML_Parser parser, const XML_Char *encodingName); -#ifdef XML_DTD +#if XML_GE == 1 static float accountingGetCurrentAmplification(XML_Parser rootParser); static void accountingReportStats(XML_Parser originParser, const char *epilog); static void accountingOnAbort(XML_Parser originParser); @@ -594,13 +620,12 @@ static void entityTrackingOnClose(XML_Parser parser, ENTITY *entity, static XML_Parser getRootParserOf(XML_Parser parser, unsigned int *outLevelDiff); -#endif /* XML_DTD */ +#endif /* XML_GE == 1 */ static unsigned long getDebugLevel(const char *variableName, unsigned long defaultDebugLevel); #define poolStart(pool) ((pool)->start) -#define poolEnd(pool) ((pool)->ptr) #define poolLength(pool) ((pool)->ptr - (pool)->start) #define poolChop(pool) ((void)--(pool->ptr)) #define poolLastChar(pool) (((pool)->ptr)[-1]) @@ -611,21 +636,35 @@ static unsigned long getDebugLevel(const char *variableName, ? 0 \ : ((*((pool)->ptr)++ = c), 1)) +XML_Bool g_reparseDeferralEnabledDefault = XML_TRUE; // write ONLY in runtests.c +unsigned int g_parseAttempts = 0; // used for testing only + struct XML_ParserStruct { /* The first member must be m_userData so that the XML_GetUserData macro works. */ void *m_userData; void *m_handlerArg; - char *m_buffer; + + // How the four parse buffer pointers below relate in time and space: + // + // m_buffer <= m_bufferPtr <= m_bufferEnd <= m_bufferLim + // | | | | + // <--parsed-->| | | + // <---parsing--->| | + // <--unoccupied-->| + // <---------total-malloced/realloced-------->| + + char *m_buffer; // malloc/realloc base pointer of parse buffer const XML_Memory_Handling_Suite m_mem; - /* first character to be parsed */ - const char *m_bufferPtr; - /* past last character to be parsed */ - char *m_bufferEnd; - /* allocated end of m_buffer */ - const char *m_bufferLim; + const char *m_bufferPtr; // first character to be parsed + char *m_bufferEnd; // past last character to be parsed + const char *m_bufferLim; // allocated end of m_buffer + XML_Index m_parseEndByteIndex; const char *m_parseEndPtr; + size_t m_partialTokenBytesBefore; /* used in heuristic to avoid O(n^2) */ + XML_Bool m_reparseDeferralEnabled; + int m_lastBufferRequestSize; XML_Char *m_dataBuf; XML_Char *m_dataBufEnd; XML_StartElementHandler m_startElementHandler; @@ -712,7 +751,7 @@ struct XML_ParserStruct { enum XML_ParamEntityParsing m_paramEntityParsing; #endif unsigned long m_hash_secret_salt; -#ifdef XML_DTD +#if XML_GE == 1 ACCOUNTING m_accounting; ENTITY_STATS m_entity_stats; #endif @@ -968,6 +1007,47 @@ get_hash_secret_salt(XML_Parser parser) { return parser->m_hash_secret_salt; } +static enum XML_Error +callProcessor(XML_Parser parser, const char *start, const char *end, + const char **endPtr) { + const size_t have_now = EXPAT_SAFE_PTR_DIFF(end, start); + + if (parser->m_reparseDeferralEnabled + && ! parser->m_parsingStatus.finalBuffer) { + // Heuristic: don't try to parse a partial token again until the amount of + // available data has increased significantly. + const size_t had_before = parser->m_partialTokenBytesBefore; + // ...but *do* try anyway if we're close to causing a reallocation. + size_t available_buffer + = EXPAT_SAFE_PTR_DIFF(parser->m_bufferPtr, parser->m_buffer); +#if XML_CONTEXT_BYTES > 0 + available_buffer -= EXPAT_MIN(available_buffer, XML_CONTEXT_BYTES); +#endif + available_buffer + += EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_bufferEnd); + // m_lastBufferRequestSize is never assigned a value < 0, so the cast is ok + const bool enough + = (have_now >= 2 * had_before) + || ((size_t)parser->m_lastBufferRequestSize > available_buffer); + + if (! enough) { + *endPtr = start; // callers may expect this to be set + return XML_ERROR_NONE; + } + } + g_parseAttempts += 1; + const enum XML_Error ret = parser->m_processor(parser, start, end, endPtr); + if (ret == XML_ERROR_NONE) { + // if we consumed nothing, remember what we had on this parse attempt. + if (*endPtr == start) { + parser->m_partialTokenBytesBefore = have_now; + } else { + parser->m_partialTokenBytesBefore = 0; + } + } + return ret; +} + static XML_Bool /* only valid for root parser */ startParsing(XML_Parser parser) { /* hash functions must be initialized before setContext() is called */ @@ -1149,6 +1229,9 @@ parserInit(XML_Parser parser, const XML_Char *encodingName) { parser->m_bufferEnd = parser->m_buffer; parser->m_parseEndByteIndex = 0; parser->m_parseEndPtr = NULL; + parser->m_partialTokenBytesBefore = 0; + parser->m_reparseDeferralEnabled = g_reparseDeferralEnabledDefault; + parser->m_lastBufferRequestSize = 0; parser->m_declElementType = NULL; parser->m_declAttributeId = NULL; parser->m_declEntity = NULL; @@ -1183,7 +1266,7 @@ parserInit(XML_Parser parser, const XML_Char *encodingName) { #endif parser->m_hash_secret_salt = 0; -#ifdef XML_DTD +#if XML_GE == 1 memset(&parser->m_accounting, 0, sizeof(ACCOUNTING)); parser->m_accounting.debugLevel = getDebugLevel("EXPAT_ACCOUNTING_DEBUG", 0u); parser->m_accounting.maximumAmplificationFactor @@ -1318,6 +1401,7 @@ XML_ExternalEntityParserCreate(XML_Parser oldParser, const XML_Char *context, to worry which hash secrets each table has. */ unsigned long oldhash_secret_salt; + XML_Bool oldReparseDeferralEnabled; /* Validate the oldParser parameter before we pull everything out of it */ if (oldParser == NULL) @@ -1362,6 +1446,7 @@ XML_ExternalEntityParserCreate(XML_Parser oldParser, const XML_Char *context, to worry which hash secrets each table has. */ oldhash_secret_salt = parser->m_hash_secret_salt; + oldReparseDeferralEnabled = parser->m_reparseDeferralEnabled; #ifdef XML_DTD if (! context) @@ -1414,6 +1499,7 @@ XML_ExternalEntityParserCreate(XML_Parser oldParser, const XML_Char *context, parser->m_defaultExpandInternalEntities = oldDefaultExpandInternalEntities; parser->m_ns_triplets = oldns_triplets; parser->m_hash_secret_salt = oldhash_secret_salt; + parser->m_reparseDeferralEnabled = oldReparseDeferralEnabled; parser->m_parentParser = oldParser; #ifdef XML_DTD parser->m_paramEntityParsing = oldParamEntityParsing; @@ -1868,55 +1954,8 @@ XML_Parse(XML_Parser parser, const char *s, int len, int isFinal) { parser->m_parsingStatus.parsing = XML_PARSING; } - if (len == 0) { - parser->m_parsingStatus.finalBuffer = (XML_Bool)isFinal; - if (! isFinal) - return XML_STATUS_OK; - parser->m_positionPtr = parser->m_bufferPtr; - parser->m_parseEndPtr = parser->m_bufferEnd; - - /* If data are left over from last buffer, and we now know that these - data are the final chunk of input, then we have to check them again - to detect errors based on that fact. - */ - parser->m_errorCode - = parser->m_processor(parser, parser->m_bufferPtr, - parser->m_parseEndPtr, &parser->m_bufferPtr); - - if (parser->m_errorCode == XML_ERROR_NONE) { - switch (parser->m_parsingStatus.parsing) { - case XML_SUSPENDED: - /* It is hard to be certain, but it seems that this case - * cannot occur. This code is cleaning up a previous parse - * with no new data (since len == 0). Changing the parsing - * state requires getting to execute a handler function, and - * there doesn't seem to be an opportunity for that while in - * this circumstance. - * - * Given the uncertainty, we retain the code but exclude it - * from coverage tests. - * - * LCOV_EXCL_START - */ - XmlUpdatePosition(parser->m_encoding, parser->m_positionPtr, - parser->m_bufferPtr, &parser->m_position); - parser->m_positionPtr = parser->m_bufferPtr; - return XML_STATUS_SUSPENDED; - /* LCOV_EXCL_STOP */ - case XML_INITIALIZED: - case XML_PARSING: - parser->m_parsingStatus.parsing = XML_FINISHED; - /* fall through */ - default: - return XML_STATUS_OK; - } - } - parser->m_eventEndPtr = parser->m_eventPtr; - parser->m_processor = errorProcessor; - return XML_STATUS_ERROR; - } -#ifndef XML_CONTEXT_BYTES - else if (parser->m_bufferPtr == parser->m_bufferEnd) { +#if XML_CONTEXT_BYTES == 0 + if (parser->m_bufferPtr == parser->m_bufferEnd) { const char *end; int nLeftOver; enum XML_Status result; @@ -1927,12 +1966,15 @@ XML_Parse(XML_Parser parser, const char *s, int len, int isFinal) { parser->m_processor = errorProcessor; return XML_STATUS_ERROR; } + // though this isn't a buffer request, we assume that `len` is the app's + // preferred buffer fill size, and therefore save it here. + parser->m_lastBufferRequestSize = len; parser->m_parseEndByteIndex += len; parser->m_positionPtr = s; parser->m_parsingStatus.finalBuffer = (XML_Bool)isFinal; parser->m_errorCode - = parser->m_processor(parser, s, parser->m_parseEndPtr = s + len, &end); + = callProcessor(parser, s, parser->m_parseEndPtr = s + len, &end); if (parser->m_errorCode != XML_ERROR_NONE) { parser->m_eventEndPtr = parser->m_eventPtr; @@ -1959,23 +2001,25 @@ XML_Parse(XML_Parser parser, const char *s, int len, int isFinal) { &parser->m_position); nLeftOver = s + len - end; if (nLeftOver) { - if (parser->m_buffer == NULL - || nLeftOver > parser->m_bufferLim - parser->m_buffer) { - /* avoid _signed_ integer overflow */ - char *temp = NULL; - const int bytesToAllocate = (int)((unsigned)len * 2U); - if (bytesToAllocate > 0) { - temp = (char *)REALLOC(parser, parser->m_buffer, bytesToAllocate); - } - if (temp == NULL) { - parser->m_errorCode = XML_ERROR_NO_MEMORY; - parser->m_eventPtr = parser->m_eventEndPtr = NULL; - parser->m_processor = errorProcessor; - return XML_STATUS_ERROR; - } - parser->m_buffer = temp; - parser->m_bufferLim = parser->m_buffer + bytesToAllocate; + // Back up and restore the parsing status to avoid XML_ERROR_SUSPENDED + // (and XML_ERROR_FINISHED) from XML_GetBuffer. + const enum XML_Parsing originalStatus = parser->m_parsingStatus.parsing; + parser->m_parsingStatus.parsing = XML_PARSING; + void *const temp = XML_GetBuffer(parser, nLeftOver); + parser->m_parsingStatus.parsing = originalStatus; + // GetBuffer may have overwritten this, but we want to remember what the + // app requested, not how many bytes were left over after parsing. + parser->m_lastBufferRequestSize = len; + if (temp == NULL) { + // NOTE: parser->m_errorCode has already been set by XML_GetBuffer(). + parser->m_eventPtr = parser->m_eventEndPtr = NULL; + parser->m_processor = errorProcessor; + return XML_STATUS_ERROR; } + // Since we know that the buffer was empty and XML_CONTEXT_BYTES is 0, we + // don't have any data to preserve, and can copy straight into the start + // of the buffer rather than the GetBuffer return pointer (which may be + // pointing further into the allocated buffer). memcpy(parser->m_buffer, end, nLeftOver); } parser->m_bufferPtr = parser->m_buffer; @@ -1986,16 +2030,15 @@ XML_Parse(XML_Parser parser, const char *s, int len, int isFinal) { parser->m_eventEndPtr = parser->m_bufferPtr; return result; } -#endif /* not defined XML_CONTEXT_BYTES */ - else { - void *buff = XML_GetBuffer(parser, len); - if (buff == NULL) - return XML_STATUS_ERROR; - else { - memcpy(buff, s, len); - return XML_ParseBuffer(parser, len, isFinal); - } +#endif /* XML_CONTEXT_BYTES == 0 */ + void *buff = XML_GetBuffer(parser, len); + if (buff == NULL) + return XML_STATUS_ERROR; + if (len > 0) { + assert(s != NULL); // make sure s==NULL && len!=0 was rejected above + memcpy(buff, s, len); } + return XML_ParseBuffer(parser, len, isFinal); } enum XML_Status XMLCALL @@ -2035,8 +2078,8 @@ XML_ParseBuffer(XML_Parser parser, int len, int isFinal) { parser->m_parseEndByteIndex += len; parser->m_parsingStatus.finalBuffer = (XML_Bool)isFinal; - parser->m_errorCode = parser->m_processor( - parser, start, parser->m_parseEndPtr, &parser->m_bufferPtr); + parser->m_errorCode = callProcessor(parser, start, parser->m_parseEndPtr, + &parser->m_bufferPtr); if (parser->m_errorCode != XML_ERROR_NONE) { parser->m_eventEndPtr = parser->m_eventPtr; @@ -2081,10 +2124,14 @@ XML_GetBuffer(XML_Parser parser, int len) { default:; } - if (len > EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_bufferEnd)) { -#ifdef XML_CONTEXT_BYTES + // whether or not the request succeeds, `len` seems to be the app's preferred + // buffer fill size; remember it. + parser->m_lastBufferRequestSize = len; + if (len > EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_bufferEnd) + || parser->m_buffer == NULL) { +#if XML_CONTEXT_BYTES > 0 int keep; -#endif /* defined XML_CONTEXT_BYTES */ +#endif /* XML_CONTEXT_BYTES > 0 */ /* Do not invoke signed arithmetic overflow: */ int neededSize = (int)((unsigned)len + (unsigned)EXPAT_SAFE_PTR_DIFF( @@ -2093,7 +2140,7 @@ XML_GetBuffer(XML_Parser parser, int len) { parser->m_errorCode = XML_ERROR_NO_MEMORY; return NULL; } -#ifdef XML_CONTEXT_BYTES +#if XML_CONTEXT_BYTES > 0 keep = (int)EXPAT_SAFE_PTR_DIFF(parser->m_bufferPtr, parser->m_buffer); if (keep > XML_CONTEXT_BYTES) keep = XML_CONTEXT_BYTES; @@ -2103,10 +2150,11 @@ XML_GetBuffer(XML_Parser parser, int len) { return NULL; } neededSize += keep; -#endif /* defined XML_CONTEXT_BYTES */ - if (neededSize - <= EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_buffer)) { -#ifdef XML_CONTEXT_BYTES +#endif /* XML_CONTEXT_BYTES > 0 */ + if (parser->m_buffer && parser->m_bufferPtr + && neededSize + <= EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_buffer)) { +#if XML_CONTEXT_BYTES > 0 if (keep < EXPAT_SAFE_PTR_DIFF(parser->m_bufferPtr, parser->m_buffer)) { int offset = (int)EXPAT_SAFE_PTR_DIFF(parser->m_bufferPtr, parser->m_buffer) @@ -2119,19 +2167,17 @@ XML_GetBuffer(XML_Parser parser, int len) { parser->m_bufferPtr -= offset; } #else - if (parser->m_buffer && parser->m_bufferPtr) { - memmove(parser->m_buffer, parser->m_bufferPtr, - EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr)); - parser->m_bufferEnd - = parser->m_buffer - + EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr); - parser->m_bufferPtr = parser->m_buffer; - } -#endif /* not defined XML_CONTEXT_BYTES */ + memmove(parser->m_buffer, parser->m_bufferPtr, + EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr)); + parser->m_bufferEnd + = parser->m_buffer + + EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr); + parser->m_bufferPtr = parser->m_buffer; +#endif /* XML_CONTEXT_BYTES > 0 */ } else { char *newBuf; int bufferSize - = (int)EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_bufferPtr); + = (int)EXPAT_SAFE_PTR_DIFF(parser->m_bufferLim, parser->m_buffer); if (bufferSize == 0) bufferSize = INIT_BUFFER_SIZE; do { @@ -2148,7 +2194,7 @@ XML_GetBuffer(XML_Parser parser, int len) { return NULL; } parser->m_bufferLim = newBuf + bufferSize; -#ifdef XML_CONTEXT_BYTES +#if XML_CONTEXT_BYTES > 0 if (parser->m_bufferPtr) { memcpy(newBuf, &parser->m_bufferPtr[-keep], EXPAT_SAFE_PTR_DIFF(parser->m_bufferEnd, parser->m_bufferPtr) @@ -2178,7 +2224,7 @@ XML_GetBuffer(XML_Parser parser, int len) { parser->m_bufferEnd = newBuf; } parser->m_bufferPtr = parser->m_buffer = newBuf; -#endif /* not defined XML_CONTEXT_BYTES */ +#endif /* XML_CONTEXT_BYTES > 0 */ } parser->m_eventPtr = parser->m_eventEndPtr = NULL; parser->m_positionPtr = NULL; @@ -2228,7 +2274,7 @@ XML_ResumeParser(XML_Parser parser) { } parser->m_parsingStatus.parsing = XML_PARSING; - parser->m_errorCode = parser->m_processor( + parser->m_errorCode = callProcessor( parser, parser->m_bufferPtr, parser->m_parseEndPtr, &parser->m_bufferPtr); if (parser->m_errorCode != XML_ERROR_NONE) { @@ -2292,7 +2338,7 @@ XML_GetCurrentByteCount(XML_Parser parser) { const char *XMLCALL XML_GetInputContext(XML_Parser parser, int *offset, int *size) { -#ifdef XML_CONTEXT_BYTES +#if XML_CONTEXT_BYTES > 0 if (parser == NULL) return NULL; if (parser->m_eventPtr && parser->m_buffer) { @@ -2306,7 +2352,7 @@ XML_GetInputContext(XML_Parser parser, int *offset, int *size) { (void)parser; (void)offset; (void)size; -#endif /* defined XML_CONTEXT_BYTES */ +#endif /* XML_CONTEXT_BYTES > 0 */ return (const char *)0; } @@ -2526,7 +2572,7 @@ XML_GetFeatureList(void) { #ifdef XML_DTD {XML_FEATURE_DTD, XML_L("XML_DTD"), 0}, #endif -#ifdef XML_CONTEXT_BYTES +#if XML_CONTEXT_BYTES > 0 {XML_FEATURE_CONTEXT_BYTES, XML_L("XML_CONTEXT_BYTES"), XML_CONTEXT_BYTES}, #endif @@ -2542,8 +2588,9 @@ XML_GetFeatureList(void) { #ifdef XML_ATTR_INFO {XML_FEATURE_ATTR_INFO, XML_L("XML_ATTR_INFO"), 0}, #endif -#ifdef XML_DTD - /* Added in Expat 2.4.0. */ +#if XML_GE == 1 + /* Added in Expat 2.4.0 for XML_DTD defined and + * added in Expat 2.6.0 for XML_GE == 1. */ {XML_FEATURE_BILLION_LAUGHS_ATTACK_PROTECTION_MAXIMUM_AMPLIFICATION_DEFAULT, XML_L("XML_BLAP_MAX_AMP"), (long int) @@ -2551,13 +2598,15 @@ XML_GetFeatureList(void) { {XML_FEATURE_BILLION_LAUGHS_ATTACK_PROTECTION_ACTIVATION_THRESHOLD_DEFAULT, XML_L("XML_BLAP_ACT_THRES"), EXPAT_BILLION_LAUGHS_ATTACK_PROTECTION_ACTIVATION_THRESHOLD_DEFAULT}, + /* Added in Expat 2.6.0. */ + {XML_FEATURE_GE, XML_L("XML_GE"), 0}, #endif {XML_FEATURE_END, NULL, 0}}; return features; } -#ifdef XML_DTD +#if XML_GE == 1 XML_Bool XMLCALL XML_SetBillionLaughsAttackProtectionMaximumAmplification( XML_Parser parser, float maximumAmplificationFactor) { @@ -2579,7 +2628,16 @@ XML_SetBillionLaughsAttackProtectionActivationThreshold( parser->m_accounting.activationThresholdBytes = activationThresholdBytes; return XML_TRUE; } -#endif /* XML_DTD */ +#endif /* XML_GE == 1 */ + +XML_Bool XMLCALL +XML_SetReparseDeferralEnabled(XML_Parser parser, XML_Bool enabled) { + if (parser != NULL && (enabled == XML_TRUE || enabled == XML_FALSE)) { + parser->m_reparseDeferralEnabled = enabled; + return XML_TRUE; + } + return XML_FALSE; +} /* Initially tag->rawName always points into the parse buffer; for those TAG instances opened while the current parse buffer was @@ -2601,7 +2659,7 @@ storeRawNames(XML_Parser parser) { */ if (tag->rawName == rawNameBuf) break; - /* For re-use purposes we need to ensure that the + /* For reuse purposes we need to ensure that the size of tag->buf is a multiple of sizeof(XML_Char). */ rawNameLen = ROUND_UP(tag->rawNameLength, sizeof(XML_Char)); @@ -2665,13 +2723,13 @@ externalEntityInitProcessor2(XML_Parser parser, const char *start, int tok = XmlContentTok(parser->m_encoding, start, end, &next); switch (tok) { case XML_TOK_BOM: -#ifdef XML_DTD +#if XML_GE == 1 if (! accountingDiffTolerated(parser, tok, start, next, __LINE__, XML_ACCOUNT_DIRECT)) { accountingOnAbort(parser); return XML_ERROR_AMPLIFICATION_LIMIT_BREACH; } -#endif /* XML_DTD */ +#endif /* XML_GE == 1 */ /* If we are at the end of the buffer, this would cause the next stage, i.e. externalEntityInitProcessor3, to pass control directly to @@ -2785,7 +2843,7 @@ doContent(XML_Parser parser, int startTagLevel, const ENCODING *enc, for (;;) { const char *next = s; /* XmlContentTok doesn't always set the last arg */ int tok = XmlContentTok(enc, s, end, &next); -#ifdef XML_DTD +#if XML_GE == 1 const char *accountAfter = ((tok == XML_TOK_TRAILING_RSQB) || (tok == XML_TOK_TRAILING_CR)) ? (haveMore ? s /* i.e. 0 bytes */ : end) @@ -2851,14 +2909,14 @@ doContent(XML_Parser parser, int startTagLevel, const ENCODING *enc, XML_Char ch = (XML_Char)XmlPredefinedEntityName( enc, s + enc->minBytesPerChar, next - enc->minBytesPerChar); if (ch) { -#ifdef XML_DTD +#if XML_GE == 1 /* NOTE: We are replacing 4-6 characters original input for 1 character * so there is no amplification and hence recording without * protection. */ accountingDiffTolerated(parser, tok, (char *)&ch, ((char *)&ch) + sizeof(XML_Char), __LINE__, XML_ACCOUNT_ENTITY_EXPANSION); -#endif /* XML_DTD */ +#endif /* XML_GE == 1 */ if (parser->m_characterDataHandler) parser->m_characterDataHandler(parser->m_handlerArg, &ch, 1); else if (parser->m_defaultHandler) @@ -3059,13 +3117,13 @@ doContent(XML_Parser parser, int startTagLevel, const ENCODING *enc, if (parser->m_ns && localPart) { /* localPart and prefix may have been overwritten in tag->name.str, since this points to the binding->uri - buffer which gets re-used; so we have to add them again + buffer which gets reused; so we have to add them again */ uri = (XML_Char *)tag->name.str + tag->name.uriLen; /* don't need to check for space - already done in storeAtts() */ while (*localPart) *uri++ = *localPart++; - prefix = (XML_Char *)tag->name.prefix; + prefix = tag->name.prefix; if (parser->m_ns_triplets && prefix) { *uri++ = parser->m_namespaceSeparator; while (*prefix) @@ -3132,7 +3190,7 @@ doContent(XML_Parser parser, int startTagLevel, const ENCODING *enc, However, now we have a start/endCdataSectionHandler, so it seems easier to let the user deal with this. */ - else if (0 && parser->m_characterDataHandler) + else if ((0) && parser->m_characterDataHandler) parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf, 0); /* END disabled code */ @@ -3161,8 +3219,8 @@ doContent(XML_Parser parser, int startTagLevel, const ENCODING *enc, (int)(dataPtr - (ICHAR *)parser->m_dataBuf)); } else parser->m_characterDataHandler( - parser->m_handlerArg, (XML_Char *)s, - (int)((XML_Char *)end - (XML_Char *)s)); + parser->m_handlerArg, (const XML_Char *)s, + (int)((const XML_Char *)end - (const XML_Char *)s)); } else if (parser->m_defaultHandler) reportDefault(parser, enc, s, end); /* We are at the end of the final buffer, should we check for @@ -3195,8 +3253,8 @@ doContent(XML_Parser parser, int startTagLevel, const ENCODING *enc, *eventPP = s; } } else - charDataHandler(parser->m_handlerArg, (XML_Char *)s, - (int)((XML_Char *)next - (XML_Char *)s)); + charDataHandler(parser->m_handlerArg, (const XML_Char *)s, + (int)((const XML_Char *)next - (const XML_Char *)s)); } else if (parser->m_defaultHandler) reportDefault(parser, enc, s, next); } break; @@ -4060,7 +4118,7 @@ doCdataSection(XML_Parser parser, const ENCODING *enc, const char **startPtr, for (;;) { const char *next = s; /* in case of XML_TOK_NONE or XML_TOK_PARTIAL */ int tok = XmlCdataSectionTok(enc, s, end, &next); -#ifdef XML_DTD +#if XML_GE == 1 if (! accountingDiffTolerated(parser, tok, s, next, __LINE__, account)) { accountingOnAbort(parser); return XML_ERROR_AMPLIFICATION_LIMIT_BREACH; @@ -4075,7 +4133,7 @@ doCdataSection(XML_Parser parser, const ENCODING *enc, const char **startPtr, parser->m_endCdataSectionHandler(parser->m_handlerArg); /* BEGIN disabled code */ /* see comment under XML_TOK_CDATA_SECT_OPEN */ - else if (0 && parser->m_characterDataHandler) + else if ((0) && parser->m_characterDataHandler) parser->m_characterDataHandler(parser->m_handlerArg, parser->m_dataBuf, 0); /* END disabled code */ @@ -4111,8 +4169,8 @@ doCdataSection(XML_Parser parser, const ENCODING *enc, const char **startPtr, *eventPP = s; } } else - charDataHandler(parser->m_handlerArg, (XML_Char *)s, - (int)((XML_Char *)next - (XML_Char *)s)); + charDataHandler(parser->m_handlerArg, (const XML_Char *)s, + (int)((const XML_Char *)next - (const XML_Char *)s)); } else if (parser->m_defaultHandler) reportDefault(parser, enc, s, next); } break; @@ -4212,7 +4270,7 @@ doIgnoreSection(XML_Parser parser, const ENCODING *enc, const char **startPtr, *eventPP = s; *startPtr = NULL; tok = XmlIgnoreSectionTok(enc, s, end, &next); -# ifdef XML_DTD +# if XML_GE == 1 if (! accountingDiffTolerated(parser, tok, s, next, __LINE__, XML_ACCOUNT_DIRECT)) { accountingOnAbort(parser); @@ -4304,7 +4362,7 @@ processXmlDecl(XML_Parser parser, int isGeneralTextEntity, const char *s, const XML_Char *storedversion = NULL; int standalone = -1; -#ifdef XML_DTD +#if XML_GE == 1 if (! accountingDiffTolerated(parser, XML_TOK_XML_DECL, s, next, __LINE__, XML_ACCOUNT_DIRECT)) { accountingOnAbort(parser); @@ -4502,16 +4560,16 @@ entityValueInitProcessor(XML_Parser parser, const char *s, const char *end, parser->m_processor = entityValueProcessor; return entityValueProcessor(parser, next, end, nextPtr); } - /* If we are at the end of the buffer, this would cause XmlPrologTok to - return XML_TOK_NONE on the next call, which would then cause the - function to exit with *nextPtr set to s - that is what we want for other - tokens, but not for the BOM - we would rather like to skip it; - then, when this routine is entered the next time, XmlPrologTok will - return XML_TOK_INVALID, since the BOM is still in the buffer + /* XmlPrologTok has now set the encoding based on the BOM it found, and we + must move s and nextPtr forward to consume the BOM. + + If we didn't, and got XML_TOK_NONE from the next XmlPrologTok call, we + would leave the BOM in the buffer and return. On the next call to this + function, our XmlPrologTok call would return XML_TOK_INVALID, since it + is not valid to have multiple BOMs. */ - else if (tok == XML_TOK_BOM && next == end - && ! parser->m_parsingStatus.finalBuffer) { -# ifdef XML_DTD + else if (tok == XML_TOK_BOM) { +# if XML_GE == 1 if (! accountingDiffTolerated(parser, tok, s, next, __LINE__, XML_ACCOUNT_DIRECT)) { accountingOnAbort(parser); @@ -4520,7 +4578,7 @@ entityValueInitProcessor(XML_Parser parser, const char *s, const char *end, # endif *nextPtr = next; - return XML_ERROR_NONE; + s = next; } /* If we get this token, we have the start of what might be a normal tag, but not a declaration (i.e. it doesn't begin with @@ -4727,11 +4785,13 @@ doProlog(XML_Parser parser, const ENCODING *enc, const char *s, const char *end, } } role = XmlTokenRole(&parser->m_prologState, tok, s, next, enc); -#ifdef XML_DTD +#if XML_GE == 1 switch (role) { case XML_ROLE_INSTANCE_START: // bytes accounted in contentProcessor case XML_ROLE_XML_DECL: // bytes accounted in processXmlDecl - case XML_ROLE_TEXT_DECL: // bytes accounted in processXmlDecl +# ifdef XML_DTD + case XML_ROLE_TEXT_DECL: // bytes accounted in processXmlDecl +# endif break; default: if (! accountingDiffTolerated(parser, tok, s, next, __LINE__, account)) { @@ -5049,6 +5109,9 @@ doProlog(XML_Parser parser, const ENCODING *enc, const char *s, const char *end, break; case XML_ROLE_ENTITY_VALUE: if (dtd->keepProcessing) { +#if XML_GE == 1 + // This will store the given replacement text in + // parser->m_declEntity->textPtr. enum XML_Error result = storeEntityValue(parser, enc, s + enc->minBytesPerChar, next - enc->minBytesPerChar, XML_ACCOUNT_NONE); @@ -5069,6 +5132,25 @@ doProlog(XML_Parser parser, const ENCODING *enc, const char *s, const char *end, poolDiscard(&dtd->entityValuePool); if (result != XML_ERROR_NONE) return result; +#else + // This will store "&entity123;" in parser->m_declEntity->textPtr + // to end up as "&entity123;" in the handler. + if (parser->m_declEntity != NULL) { + const enum XML_Error result + = storeSelfEntityValue(parser, parser->m_declEntity); + if (result != XML_ERROR_NONE) + return result; + + if (parser->m_entityDeclHandler) { + *eventEndPP = s; + parser->m_entityDeclHandler( + parser->m_handlerArg, parser->m_declEntity->name, + parser->m_declEntity->is_param, parser->m_declEntity->textPtr, + parser->m_declEntity->textLen, parser->m_curBase, 0, 0, 0); + handleDefault = XML_FALSE; + } + } +#endif } break; case XML_ROLE_DOCTYPE_SYSTEM_ID: @@ -5127,6 +5209,16 @@ doProlog(XML_Parser parser, const ENCODING *enc, const char *s, const char *end, } break; case XML_ROLE_ENTITY_COMPLETE: +#if XML_GE == 0 + // This will store "&entity123;" in entity->textPtr + // to end up as "&entity123;" in the handler. + if (parser->m_declEntity != NULL) { + const enum XML_Error result + = storeSelfEntityValue(parser, parser->m_declEntity); + if (result != XML_ERROR_NONE) + return result; + } +#endif if (dtd->keepProcessing && parser->m_declEntity && parser->m_entityDeclHandler) { *eventEndPP = s; @@ -5668,7 +5760,7 @@ epilogProcessor(XML_Parser parser, const char *s, const char *end, for (;;) { const char *next = NULL; int tok = XmlPrologTok(parser->m_encoding, s, end, &next); -#ifdef XML_DTD +#if XML_GE == 1 if (! accountingDiffTolerated(parser, tok, s, next, __LINE__, XML_ACCOUNT_DIRECT)) { accountingOnAbort(parser); @@ -5748,7 +5840,7 @@ processInternalEntity(XML_Parser parser, ENTITY *entity, XML_Bool betweenDecl) { return XML_ERROR_NO_MEMORY; } entity->open = XML_TRUE; -#ifdef XML_DTD +#if XML_GE == 1 entityTrackingOnOpen(parser, entity, __LINE__); #endif entity->processed = 0; @@ -5781,10 +5873,10 @@ processInternalEntity(XML_Parser parser, ENTITY *entity, XML_Bool betweenDecl) { if (textEnd != next && parser->m_parsingStatus.parsing == XML_SUSPENDED) { entity->processed = (int)(next - textStart); parser->m_processor = internalEntityProcessor; - } else { -#ifdef XML_DTD + } else if (parser->m_openInternalEntities->entity == entity) { +#if XML_GE == 1 entityTrackingOnClose(parser, entity, __LINE__); -#endif /* XML_DTD */ +#endif /* XML_GE == 1 */ entity->open = XML_FALSE; parser->m_openInternalEntities = openEntity->next; /* put openEntity back in list of free instances */ @@ -5833,7 +5925,7 @@ internalEntityProcessor(XML_Parser parser, const char *s, const char *end, return result; } -#ifdef XML_DTD +#if XML_GE == 1 entityTrackingOnClose(parser, entity, __LINE__); #endif entity->open = XML_FALSE; @@ -5912,7 +6004,7 @@ appendAttributeValue(XML_Parser parser, const ENCODING *enc, XML_Bool isCdata, const char *next = ptr; /* XmlAttributeValueTok doesn't always set the last arg */ int tok = XmlAttributeValueTok(enc, ptr, end, &next); -#ifdef XML_DTD +#if XML_GE == 1 if (! accountingDiffTolerated(parser, tok, ptr, next, __LINE__, account)) { accountingOnAbort(parser); return XML_ERROR_AMPLIFICATION_LIMIT_BREACH; @@ -5977,14 +6069,14 @@ appendAttributeValue(XML_Parser parser, const ENCODING *enc, XML_Bool isCdata, XML_Char ch = (XML_Char)XmlPredefinedEntityName( enc, ptr + enc->minBytesPerChar, next - enc->minBytesPerChar); if (ch) { -#ifdef XML_DTD +#if XML_GE == 1 /* NOTE: We are replacing 4-6 characters original input for 1 character * so there is no amplification and hence recording without * protection. */ accountingDiffTolerated(parser, tok, (char *)&ch, ((char *)&ch) + sizeof(XML_Char), __LINE__, XML_ACCOUNT_ENTITY_EXPANSION); -#endif /* XML_DTD */ +#endif /* XML_GE == 1 */ if (! poolAppendChar(pool, ch)) return XML_ERROR_NO_MEMORY; break; @@ -6062,14 +6154,14 @@ appendAttributeValue(XML_Parser parser, const ENCODING *enc, XML_Bool isCdata, enum XML_Error result; const XML_Char *textEnd = entity->textPtr + entity->textLen; entity->open = XML_TRUE; -#ifdef XML_DTD +#if XML_GE == 1 entityTrackingOnOpen(parser, entity, __LINE__); #endif result = appendAttributeValue(parser, parser->m_internalEncoding, isCdata, (const char *)entity->textPtr, (const char *)textEnd, pool, XML_ACCOUNT_ENTITY_EXPANSION); -#ifdef XML_DTD +#if XML_GE == 1 entityTrackingOnClose(parser, entity, __LINE__); #endif entity->open = XML_FALSE; @@ -6099,6 +6191,7 @@ appendAttributeValue(XML_Parser parser, const ENCODING *enc, XML_Bool isCdata, /* not reached */ } +#if XML_GE == 1 static enum XML_Error storeEntityValue(XML_Parser parser, const ENCODING *enc, const char *entityTextPtr, const char *entityTextEnd, @@ -6106,12 +6199,12 @@ storeEntityValue(XML_Parser parser, const ENCODING *enc, DTD *const dtd = parser->m_dtd; /* save one level of indirection */ STRING_POOL *pool = &(dtd->entityValuePool); enum XML_Error result = XML_ERROR_NONE; -#ifdef XML_DTD +# ifdef XML_DTD int oldInEntityValue = parser->m_prologState.inEntityValue; parser->m_prologState.inEntityValue = 1; -#else +# else UNUSED_P(account); -#endif /* XML_DTD */ +# endif /* XML_DTD */ /* never return Null for the value argument in EntityDeclHandler, since this would indicate an external entity; therefore we have to make sure that entityValuePool.start is not null */ @@ -6125,18 +6218,16 @@ storeEntityValue(XML_Parser parser, const ENCODING *enc, = entityTextPtr; /* XmlEntityValueTok doesn't always set the last arg */ int tok = XmlEntityValueTok(enc, entityTextPtr, entityTextEnd, &next); -#ifdef XML_DTD if (! accountingDiffTolerated(parser, tok, entityTextPtr, next, __LINE__, account)) { accountingOnAbort(parser); result = XML_ERROR_AMPLIFICATION_LIMIT_BREACH; goto endEntityValue; } -#endif switch (tok) { case XML_TOK_PARAM_ENTITY_REF: -#ifdef XML_DTD +# ifdef XML_DTD if (parser->m_isParamEntity || enc != parser->m_encoding) { const XML_Char *name; ENTITY *entity; @@ -6198,7 +6289,7 @@ storeEntityValue(XML_Parser parser, const ENCODING *enc, } break; } -#endif /* XML_DTD */ +# endif /* XML_DTD */ /* In the internal subset, PE references are not legal within markup declarations, e.g entity values in this case. */ parser->m_eventPtr = entityTextPtr; @@ -6279,12 +6370,38 @@ storeEntityValue(XML_Parser parser, const ENCODING *enc, entityTextPtr = next; } endEntityValue: -#ifdef XML_DTD +# ifdef XML_DTD parser->m_prologState.inEntityValue = oldInEntityValue; -#endif /* XML_DTD */ +# endif /* XML_DTD */ return result; } +#else /* XML_GE == 0 */ + +static enum XML_Error +storeSelfEntityValue(XML_Parser parser, ENTITY *entity) { + // This will store "&entity123;" in entity->textPtr + // to end up as "&entity123;" in the handler. + const char *const entity_start = "&"; + const char *const entity_end = ";"; + + STRING_POOL *const pool = &(parser->m_dtd->entityValuePool); + if (! poolAppendString(pool, entity_start) + || ! poolAppendString(pool, entity->name) + || ! poolAppendString(pool, entity_end)) { + poolDiscard(pool); + return XML_ERROR_NO_MEMORY; + } + + entity->textPtr = poolStart(pool); + entity->textLen = (int)(poolLength(pool)); + poolFinish(pool); + + return XML_ERROR_NONE; +} + +#endif /* XML_GE == 0 */ + static void FASTCALL normalizeLines(XML_Char *s) { XML_Char *p; @@ -6395,8 +6512,9 @@ reportDefault(XML_Parser parser, const ENCODING *enc, const char *s, } while ((convert_res != XML_CONVERT_COMPLETED) && (convert_res != XML_CONVERT_INPUT_INCOMPLETE)); } else - parser->m_defaultHandler(parser->m_handlerArg, (XML_Char *)s, - (int)((XML_Char *)end - (XML_Char *)s)); + parser->m_defaultHandler( + parser->m_handlerArg, (const XML_Char *)s, + (int)((const XML_Char *)end - (const XML_Char *)s)); } static int @@ -6500,7 +6618,7 @@ getAttributeId(XML_Parser parser, const ENCODING *enc, const char *start, name = poolStoreString(&dtd->pool, enc, start, end); if (! name) return NULL; - /* skip quotation mark - its storage will be re-used (like in name[-1]) */ + /* skip quotation mark - its storage will be reused (like in name[-1]) */ ++name; id = (ATTRIBUTE_ID *)lookup(parser, &dtd->attributeIds, name, sizeof(ATTRIBUTE_ID)); @@ -6650,6 +6768,10 @@ getContext(XML_Parser parser) { static XML_Bool setContext(XML_Parser parser, const XML_Char *context) { + if (context == NULL) { + return XML_FALSE; + } + DTD *const dtd = parser->m_dtd; /* save one level of indirection */ const XML_Char *s = context; @@ -6731,7 +6853,7 @@ normalizePublicId(XML_Char *publicId) { static DTD * dtdCreate(const XML_Memory_Handling_Suite *ms) { - DTD *p = (DTD *)ms->malloc_fcn(sizeof(DTD)); + DTD *p = (DTD*) ms->malloc_fcn(sizeof(DTD)); if (p == NULL) return p; poolInit(&(p->pool), ms); @@ -6904,8 +7026,8 @@ dtdCopy(XML_Parser oldParser, DTD *newDtd, const DTD *oldDtd, if (! newE) return 0; if (oldE->nDefaultAtts) { - newE->defaultAtts = (DEFAULT_ATTRIBUTE *) - ms->malloc_fcn(oldE->nDefaultAtts * sizeof(DEFAULT_ATTRIBUTE)); + newE->defaultAtts + = (DEFAULT_ATTRIBUTE*) ms->malloc_fcn(oldE->nDefaultAtts * sizeof(DEFAULT_ATTRIBUTE)); if (! newE->defaultAtts) { return 0; } @@ -7067,7 +7189,7 @@ lookup(XML_Parser parser, HASH_TABLE *table, KEY name, size_t createSize) { /* table->size is a power of 2 */ table->size = (size_t)1 << INIT_POWER; tsize = table->size * sizeof(NAMED *); - table->v = (NAMED **)table->mem->malloc_fcn(tsize); + table->v = (NAMED**) table->mem->malloc_fcn(tsize); if (! table->v) { table->size = 0; return NULL; @@ -7107,7 +7229,7 @@ lookup(XML_Parser parser, HASH_TABLE *table, KEY name, size_t createSize) { } size_t tsize = newSize * sizeof(NAMED *); - NAMED **newV = (NAMED **)table->mem->malloc_fcn(tsize); + NAMED **newV = (NAMED**) table->mem->malloc_fcn(tsize); if (! newV) return NULL; memset(newV, 0, tsize); @@ -7136,7 +7258,7 @@ lookup(XML_Parser parser, HASH_TABLE *table, KEY name, size_t createSize) { } } } - table->v[i] = (NAMED *)table->mem->malloc_fcn(createSize); + table->v[i] = (NAMED*) table->mem->malloc_fcn(createSize); if (! table->v[i]) return NULL; memset(table->v[i], 0, createSize); @@ -7240,7 +7362,7 @@ poolAppend(STRING_POOL *pool, const ENCODING *enc, const char *ptr, return NULL; for (;;) { const enum XML_Convert_Result convert_res = XmlConvert( - enc, &ptr, end, (ICHAR **)&(pool->ptr), (ICHAR *)pool->end); + enc, &ptr, end, (ICHAR **)&(pool->ptr), (const ICHAR *)pool->end); if ((convert_res == XML_CONVERT_COMPLETED) || (convert_res == XML_CONVERT_INPUT_INCOMPLETE)) break; @@ -7424,7 +7546,7 @@ poolGrow(STRING_POOL *pool) { if (bytesToAllocate == 0) return XML_FALSE; - tem = (BLOCK *)pool->mem->malloc_fcn(bytesToAllocate); + tem = (BLOCK*) pool->mem->malloc_fcn(bytesToAllocate); if (! tem) return XML_FALSE; tem->size = blockSize; @@ -7671,7 +7793,7 @@ copyString(const XML_Char *s, const XML_Memory_Handling_Suite *memsuite) { return result; } -#ifdef XML_DTD +#if XML_GE == 1 static float accountingGetCurrentAmplification(XML_Parser rootParser) { @@ -7692,7 +7814,7 @@ accountingReportStats(XML_Parser originParser, const char *epilog) { const XML_Parser rootParser = getRootParserOf(originParser, NULL); assert(! rootParser->m_parentParser); - if (rootParser->m_accounting.debugLevel < 1) { + if (rootParser->m_accounting.debugLevel == 0u) { return; } @@ -7729,7 +7851,7 @@ accountingReportDiff(XML_Parser rootParser, /* Note: Performance is of no concern here */ const char *walker = before; - if ((rootParser->m_accounting.debugLevel >= 3) + if ((rootParser->m_accounting.debugLevel >= 3u) || (after - before) <= (ptrdiff_t)(contextLength + ellipsisLength + contextLength)) { for (; walker < after; walker++) { @@ -7794,7 +7916,7 @@ accountingDiffTolerated(XML_Parser originParser, int tok, const char *before, || (amplificationFactor <= rootParser->m_accounting.maximumAmplificationFactor); - if (rootParser->m_accounting.debugLevel >= 2) { + if (rootParser->m_accounting.debugLevel >= 2u) { accountingReportStats(rootParser, ""); accountingReportDiff(rootParser, levelsAwayFromRootParser, before, after, bytesMore, source_line, account); @@ -7821,7 +7943,7 @@ static void entityTrackingReportStats(XML_Parser rootParser, ENTITY *entity, const char *action, int sourceLine) { assert(! rootParser->m_parentParser); - if (rootParser->m_entity_stats.debugLevel < 1) + if (rootParser->m_entity_stats.debugLevel == 0u) return; # if defined(XML_UNICODE) @@ -8402,7 +8524,7 @@ unsignedCharToPrintable(unsigned char c) { assert(0); /* never gets here */ } -#endif /* XML_DTD */ +#endif /* XML_GE == 1 */ static unsigned long getDebugLevel(const char *variableName, unsigned long defaultDebugLevel) { @@ -8413,9 +8535,9 @@ getDebugLevel(const char *variableName, unsigned long defaultDebugLevel) { const char *const value = valueOrNull; errno = 0; - char *afterValue = (char *)value; + char *afterValue = NULL; unsigned long debugLevel = strtoul(value, &afterValue, 10); - if ((errno != 0) || (afterValue[0] != '\0')) { + if ((errno != 0) || (afterValue == value) || (afterValue[0] != '\0')) { errno = 0; return defaultDebugLevel; } diff --git a/XML/src/xmlrole.c b/XML/src/xmlrole.c index 1c88fd0bf..ea4dd8541 100644 --- a/XML/src/xmlrole.c +++ b/XML/src/xmlrole.c @@ -12,10 +12,10 @@ Copyright (c) 2002-2006 Karl Waclawek Copyright (c) 2002-2003 Fred L. Drake, Jr. Copyright (c) 2005-2009 Steven Solie - Copyright (c) 2016-2021 Sebastian Pipping + Copyright (c) 2016-2023 Sebastian Pipping Copyright (c) 2017 Rhodri James Copyright (c) 2019 David Loffredo - Copyright (c) 2021 Dong-hee Na + Copyright (c) 2021 Donghee Na Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining diff --git a/XML/src/xmlrole.h b/XML/src/xmlrole.h index d6e1fa150..a7904274c 100644 --- a/XML/src/xmlrole.h +++ b/XML/src/xmlrole.h @@ -10,7 +10,7 @@ Copyright (c) 2000 Clark Cooper Copyright (c) 2002 Karl Waclawek Copyright (c) 2002 Fred L. Drake, Jr. - Copyright (c) 2017 Sebastian Pipping + Copyright (c) 2017-2024 Sebastian Pipping Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -127,9 +127,9 @@ typedef struct prolog_state { #endif /* XML_DTD */ } PROLOG_STATE; -void XmlPrologStateInit(PROLOG_STATE *); +void XmlPrologStateInit(PROLOG_STATE *state); #ifdef XML_DTD -void XmlPrologStateInitExternalEntity(PROLOG_STATE *); +void XmlPrologStateInitExternalEntity(PROLOG_STATE *state); #endif /* XML_DTD */ #define XmlTokenRole(state, tok, ptr, end, enc) \ diff --git a/XML/src/xmltok.c b/XML/src/xmltok.c index 7e194dd64..a44b57ffb 100644 --- a/XML/src/xmltok.c +++ b/XML/src/xmltok.c @@ -12,7 +12,7 @@ Copyright (c) 2002 Greg Stein Copyright (c) 2002-2016 Karl Waclawek Copyright (c) 2005-2009 Steven Solie - Copyright (c) 2016-2022 Sebastian Pipping + Copyright (c) 2016-2024 Sebastian Pipping Copyright (c) 2016 Pascal Cuoq Copyright (c) 2016 Don Lewis Copyright (c) 2017 Rhodri James @@ -20,8 +20,10 @@ Copyright (c) 2017 Benbuck Nason Copyright (c) 2017 José Gutiérrez de la Concha Copyright (c) 2019 David Loffredo - Copyright (c) 2021 Dong-hee Na + Copyright (c) 2021 Donghee Na Copyright (c) 2022 Martin Ettl + Copyright (c) 2022 Sean McBride + Copyright (c) 2023 Hanno Böck Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -76,7 +78,7 @@ #define VTABLE VTABLE1, PREFIX(toUtf8), PREFIX(toUtf16) #define UCS2_GET_NAMING(pages, hi, lo) \ - (namingBitmap[(pages[hi] << 3) + ((lo) >> 5)] & (1u << ((lo)&0x1F))) + (namingBitmap[(pages[hi] << 3) + ((lo) >> 5)] & (1u << ((lo) & 0x1F))) /* A 2 byte UTF-8 representation splits the characters 11 bits between the bottom 5 and 6 bits of the bytes. We need 8 bits to index into @@ -100,7 +102,7 @@ & (1u << (((byte)[2]) & 0x1F))) /* Detection of invalid UTF-8 sequences is based on Table 3.1B - of Unicode 3.2: http://www.unicode.org/unicode/reports/tr28/ + of Unicode 3.2: https://www.unicode.org/unicode/reports/tr28/ with the additional restriction of not allowing the Unicode code points 0xFFFF and 0xFFFE (sequences EF,BF,BF and EF,BF,BE). Implementation details: @@ -225,7 +227,7 @@ struct normal_encoding { /* isNmstrt2 */ NULL, /* isNmstrt3 */ NULL, /* isNmstrt4 */ NULL, \ /* isInvalid2 */ NULL, /* isInvalid3 */ NULL, /* isInvalid4 */ NULL -static int FASTCALL checkCharRefNumber(int); +static int FASTCALL checkCharRefNumber(int result); #include "xmltok_impl.h" #include "ascii.h" @@ -243,7 +245,7 @@ static int FASTCALL checkCharRefNumber(int); #endif #define SB_BYTE_TYPE(enc, p) \ - (((struct normal_encoding *)(enc))->type[(unsigned char)*(p)]) + (((const struct normal_encoding *)(enc))->type[(unsigned char)*(p)]) #ifdef XML_MIN_SIZE static int PTRFASTCALL @@ -407,7 +409,7 @@ utf8_toUtf16(const ENCODING *enc, const char **fromP, const char *fromLim, unsigned short *to = *toP; const char *from = *fromP; while (from < fromLim && to < toLim) { - switch (((struct normal_encoding *)enc)->type[(unsigned char)*from]) { + switch (SB_BYTE_TYPE(enc, from)) { case BT_LEAD2: if (fromLim - from < 2) { res = XML_CONVERT_INPUT_INCOMPLETE; @@ -715,31 +717,26 @@ unicode_byte_type(char hi, char lo) { return res; \ } -#define SET2(ptr, ch) (((ptr)[0] = ((ch)&0xff)), ((ptr)[1] = ((ch) >> 8))) #define GET_LO(ptr) ((unsigned char)(ptr)[0]) #define GET_HI(ptr) ((unsigned char)(ptr)[1]) DEFINE_UTF16_TO_UTF8(little2_) DEFINE_UTF16_TO_UTF16(little2_) -#undef SET2 #undef GET_LO #undef GET_HI -#define SET2(ptr, ch) (((ptr)[0] = ((ch) >> 8)), ((ptr)[1] = ((ch)&0xFF))) #define GET_LO(ptr) ((unsigned char)(ptr)[1]) #define GET_HI(ptr) ((unsigned char)(ptr)[0]) DEFINE_UTF16_TO_UTF8(big2_) DEFINE_UTF16_TO_UTF16(big2_) -#undef SET2 #undef GET_LO #undef GET_HI #define LITTLE2_BYTE_TYPE(enc, p) \ - ((p)[1] == 0 ? ((struct normal_encoding *)(enc))->type[(unsigned char)*(p)] \ - : unicode_byte_type((p)[1], (p)[0])) + ((p)[1] == 0 ? SB_BYTE_TYPE(enc, p) : unicode_byte_type((p)[1], (p)[0])) #define LITTLE2_BYTE_TO_ASCII(p) ((p)[1] == 0 ? (p)[0] : -1) #define LITTLE2_CHAR_MATCHES(p, c) ((p)[1] == 0 && (p)[0] == (c)) #define LITTLE2_IS_NAME_CHAR_MINBPC(p) \ @@ -872,9 +869,7 @@ static const struct normal_encoding internal_little2_encoding #endif #define BIG2_BYTE_TYPE(enc, p) \ - ((p)[0] == 0 \ - ? ((struct normal_encoding *)(enc))->type[(unsigned char)(p)[1]] \ - : unicode_byte_type((p)[0], (p)[1])) + ((p)[0] == 0 ? SB_BYTE_TYPE(enc, p + 1) : unicode_byte_type((p)[0], (p)[1])) #define BIG2_BYTE_TO_ASCII(p) ((p)[0] == 0 ? (p)[1] : -1) #define BIG2_CHAR_MATCHES(p, c) ((p)[0] == 0 && (p)[1] == (c)) #define BIG2_IS_NAME_CHAR_MINBPC(p) \ diff --git a/XML/src/xmltok.h b/XML/src/xmltok.h index 6f630c2f9..c51fce1ec 100644 --- a/XML/src/xmltok.h +++ b/XML/src/xmltok.h @@ -10,7 +10,7 @@ Copyright (c) 2000 Clark Cooper Copyright (c) 2002 Fred L. Drake, Jr. Copyright (c) 2002-2005 Karl Waclawek - Copyright (c) 2016-2017 Sebastian Pipping + Copyright (c) 2016-2024 Sebastian Pipping Copyright (c) 2017 Rhodri James Licensed under the MIT license: @@ -289,7 +289,8 @@ int XmlParseXmlDecl(int isGeneralTextEntity, const ENCODING *enc, const char **encodingNamePtr, const ENCODING **namedEncodingPtr, int *standalonePtr); -int XmlInitEncoding(INIT_ENCODING *, const ENCODING **, const char *name); +int XmlInitEncoding(INIT_ENCODING *p, const ENCODING **encPtr, + const char *name); const ENCODING *XmlGetUtf8InternalEncoding(void); const ENCODING *XmlGetUtf16InternalEncoding(void); int FASTCALL XmlUtf8Encode(int charNumber, char *buf); @@ -307,7 +308,8 @@ int XmlParseXmlDeclNS(int isGeneralTextEntity, const ENCODING *enc, const char **encodingNamePtr, const ENCODING **namedEncodingPtr, int *standalonePtr); -int XmlInitEncodingNS(INIT_ENCODING *, const ENCODING **, const char *name); +int XmlInitEncodingNS(INIT_ENCODING *p, const ENCODING **encPtr, + const char *name); const ENCODING *XmlGetUtf8InternalEncodingNS(void); const ENCODING *XmlGetUtf16InternalEncodingNS(void); ENCODING *XmlInitUnknownEncodingNS(void *mem, int *table, CONVERTER convert, diff --git a/XML/src/xmltok_impl.c b/XML/src/xmltok_impl.c index 1971d74bf..239a2d06c 100644 --- a/XML/src/xmltok_impl.c +++ b/XML/src/xmltok_impl.c @@ -126,7 +126,7 @@ # endif # define HAS_CHARS(enc, ptr, end, count) \ - ((end) - (ptr) >= ((count)*MINBPC(enc))) + ((end) - (ptr) >= ((count) * MINBPC(enc))) # define HAS_CHAR(enc, ptr, end) HAS_CHARS(enc, ptr, end, 1) From 3261ebbd42f5d153efadd598ee0a24d181d9fb39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Tue, 6 Feb 2024 21:45:36 +0100 Subject: [PATCH 302/395] doc: updated changelog --- CHANGELOG | 1 + doc/99100-ReleaseNotes.page | 1 + 2 files changed, 2 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 35ff1453e..943e1086a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -21,6 +21,7 @@ Features and Enhancements: Bug Fixes and Improvements: +- GH #4443 Upgrade libexpat to 2.6.0 - GH #4425 Unit tests: optional testing of deprecated functionality - GH #4421 Multiple calls to initializeSSL/uninitializeSSL cause assert failure during certificate validation - GH #4411 NULL pointer: strategy when setting rotation never in FileChannel diff --git a/doc/99100-ReleaseNotes.page b/doc/99100-ReleaseNotes.page index 1984b3f85..0b17412c6 100644 --- a/doc/99100-ReleaseNotes.page +++ b/doc/99100-ReleaseNotes.page @@ -22,6 +22,7 @@ This is a bugfix release. !!Bug Fixes and Improvements + - GH #4443 Upgrade libexpat to 2.6.0 - GH #4425 Unit tests: optional testing of deprecated functionality - GH #4421 Multiple calls to initializeSSL/uninitializeSSL cause assert failure during certificate validation - GH #4411 NULL pointer: strategy when setting rotation never in FileChannel From ee39b611f203e954c8f33a5ea929f94259132f89 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Tue, 13 Feb 2024 14:04:23 +0100 Subject: [PATCH 303/395] fix(SQLParser): move to Data dir; add extradirs, remove vs 140,150 build scripts generation --- ActiveRecord/ActiveRecord.progen | 2 +- ActiveRecord/ActiveRecord_vs160.vcxproj | 24 +++---- ActiveRecord/ActiveRecord_vs170.vcxproj | 36 +++++----- ActiveRecord/CMakeLists.txt | 3 +- ActiveRecord/testsuite/TestSuite.progen | 2 +- .../testsuite/TestSuite_vs160.vcxproj | 24 +++---- .../testsuite/TestSuite_vs170.vcxproj | 36 +++++----- CppParser/testsuite/src/CppParserTest.cpp | 2 +- Data/CMakeLists.txt | 7 +- Data/Data_VS90.vcproj | 70 +++++++++---------- Data/Data_vs160.vcxproj | 70 +++++++++---------- Data/Data_vs160.vcxproj.filters | 70 +++++++++---------- Data/Data_vs170.vcxproj | 70 +++++++++---------- Data/Data_vs170.vcxproj.filters | 70 +++++++++---------- Data/Makefile | 2 +- Data/MySQL/CMakeLists.txt | 3 +- Data/MySQL/Makefile | 2 +- Data/MySQL/MySQL_VS90.vcproj | 12 ++-- Data/MySQL/MySQL_vs160.vcxproj | 24 +++---- Data/MySQL/MySQL_vs170.vcxproj | 36 +++++----- Data/MySQL/testsuite/Makefile | 2 +- Data/MySQL/testsuite/TestSuite_VS90.vcproj | 12 ++-- Data/MySQL/testsuite/TestSuite_vs160.vcxproj | 24 +++---- Data/MySQL/testsuite/TestSuite_vs170.vcxproj | 36 +++++----- Data/ODBC/CMakeLists.txt | 3 +- Data/ODBC/Makefile | 2 +- Data/ODBC/ODBC.progen | 2 +- Data/ODBC/ODBC_VS90.vcproj | 12 ++-- Data/ODBC/ODBC_vs160.vcxproj | 24 +++---- Data/ODBC/ODBC_vs170.vcxproj | 36 +++++----- Data/ODBC/testsuite/Makefile | 3 +- Data/ODBC/testsuite/TestSuite.progen | 2 +- Data/ODBC/testsuite/TestSuite_VS90.vcproj | 12 ++-- Data/ODBC/testsuite/TestSuite_vs160.vcxproj | 24 +++---- Data/ODBC/testsuite/TestSuite_vs170.vcxproj | 36 +++++----- Data/PostgreSQL/CMakeLists.txt | 4 +- Data/PostgreSQL/Makefile | 2 +- Data/PostgreSQL/PostgreSQL_VS90.vcproj | 12 ++-- Data/PostgreSQL/PostgreSQL_vs160.vcxproj | 24 +++---- Data/PostgreSQL/PostgreSQL_vs170.vcxproj | 36 +++++----- Data/PostgreSQL/testsuite/Makefile | 2 +- .../testsuite/TestSuite_VS90.vcproj | 12 ++-- .../testsuite/TestSuite_vs160.vcxproj | 24 +++---- .../testsuite/TestSuite_vs170.vcxproj | 36 +++++----- Data/{src/sql-parser => SQLParser}/LICENSE | 0 Data/{src/sql-parser => SQLParser}/Makefile | 0 Data/{src/sql-parser => SQLParser}/README.md | 0 .../benchmark/README.md | 0 .../benchmark/benchmark.cpp | 0 .../benchmark/benchmark_utils.cpp | 0 .../benchmark/benchmark_utils.h | 0 .../benchmark/parser_benchmark.cpp | 0 .../benchmark/queries.cpp | 0 .../benchmark/queries.h | 0 .../src/SQLParser.cpp | 0 .../sql-parser => SQLParser}/src/SQLParser.h | 0 .../src/SQLParserResult.cpp | 0 .../src/SQLParserResult.h | 0 .../src/parser/.gitignore | 0 .../src/parser/Makefile | 0 .../src/parser/bison_parser.cpp | 0 .../src/parser/bison_parser.h | 0 .../src/parser/bison_parser.y | 0 .../src/parser/flex_lexer.cpp | 0 .../src/parser/flex_lexer.h | 0 .../src/parser/flex_lexer.l | 0 .../src/parser/keywordlist_generator.py | 0 .../src/parser/parser_typedef.h | 0 .../src/parser/sql_keywords.txt | 0 .../src/sql/AlterStatement.h | 0 .../src/sql/ColumnType.h | 2 +- .../src/sql/CreateStatement.cpp | 0 .../src/sql/CreateStatement.h | 0 .../src/sql/DeleteStatement.h | 0 .../src/sql/DropStatement.h | 0 .../src/sql/ExecuteStatement.h | 0 .../src/sql/ExportStatement.h | 0 .../sql-parser => SQLParser}/src/sql/Expr.cpp | 0 .../sql-parser => SQLParser}/src/sql/Expr.h | 0 .../src/sql/ImportStatement.h | 0 .../src/sql/InsertStatement.h | 0 .../src/sql/PrepareStatement.cpp | 0 .../src/sql/PrepareStatement.h | 0 .../src/sql/SQLStatement.cpp | 0 .../src/sql/SQLStatement.h | 2 +- .../src/sql/SelectStatement.h | 0 .../src/sql/ShowStatement.h | 0 .../sql-parser => SQLParser}/src/sql/Table.h | 0 .../src/sql/TransactionStatement.h | 0 .../src/sql/UpdateStatement.h | 0 .../src/sql/statements.cpp | 0 .../src/sql/statements.h | 0 .../src/sqlparser_win.h | 0 .../src/util/sqlhelper.cpp | 0 .../src/util/sqlhelper.h | 0 .../test/auto_query_file_test.cpp | 0 .../test/prepare_tests.cpp | 0 .../test/queries/queries-bad.sql | 0 .../test/queries/queries-good.sql | 0 .../test/queries/tpc-h-01.sql | 0 .../test/queries/tpc-h-02.sql | 0 .../test/queries/tpc-h-03.sql | 0 .../test/queries/tpc-h-04.sql | 0 .../test/queries/tpc-h-05.sql | 0 .../test/queries/tpc-h-06.sql | 0 .../test/queries/tpc-h-07.sql | 0 .../test/queries/tpc-h-08.sql | 0 .../test/queries/tpc-h-09.sql | 0 .../test/queries/tpc-h-10.sql | 0 .../test/queries/tpc-h-11.sql | 0 .../test/queries/tpc-h-12.sql | 0 .../test/queries/tpc-h-13.sql | 0 .../test/queries/tpc-h-14.sql | 0 .../test/queries/tpc-h-15.sql | 0 .../test/queries/tpc-h-16.sql | 0 .../test/queries/tpc-h-17.sql | 0 .../test/queries/tpc-h-18.sql | 0 .../test/queries/tpc-h-19.sql | 0 .../test/queries/tpc-h-20.sql | 0 .../test/queries/tpc-h-21.sql | 0 .../test/queries/tpc-h-22.sql | 0 .../test/select_tests.cpp | 0 .../test/sql_asserts.h | 0 .../test/sql_parser.cpp | 0 .../test/sql_tests.cpp | 0 .../sql-parser => SQLParser}/test/test.sh | 0 .../test/thirdparty/microtest/microtest.h | 0 .../test/tpc_h_tests.cpp | 0 Data/SQLite/CMakeLists.txt | 2 + Data/SQLite/Makefile | 2 +- Data/SQLite/SQLite.progen | 2 +- Data/SQLite/SQLite_VS90.vcproj | 12 ++-- Data/SQLite/SQLite_vs160.vcxproj | 24 +++---- Data/SQLite/SQLite_vs170.vcxproj | 36 +++++----- Data/SQLite/testsuite/Makefile | 2 +- Data/SQLite/testsuite/TestSuite.progen | 2 +- Data/SQLite/testsuite/TestSuite_VS90.vcproj | 12 ++-- Data/SQLite/testsuite/TestSuite_vs160.vcxproj | 24 +++---- Data/SQLite/testsuite/TestSuite_vs170.vcxproj | 36 +++++----- Data/extradirs | 1 + Data/include/Poco/Data/SQLParser.h | 6 +- Data/include/Poco/Data/Statement.h | 2 +- Data/samples/Binding/Binding.progen | 2 +- Data/samples/Binding/Binding_vs160.vcxproj | 24 +++---- Data/samples/Binding/Binding_vs170.vcxproj | 36 +++++----- Data/samples/RecordSet/RecordSet.progen | 2 +- .../samples/RecordSet/RecordSet_vs160.vcxproj | 24 +++---- .../samples/RecordSet/RecordSet_vs170.vcxproj | 36 +++++----- Data/samples/RowFormatter/RowFormatter.progen | 2 +- .../RowFormatter/RowFormatter_vs160.vcxproj | 24 +++---- .../RowFormatter/RowFormatter_vs170.vcxproj | 36 +++++----- Data/samples/Tuple/Tuple.progen | 2 +- Data/samples/Tuple/Tuple_vs160.vcxproj | 24 +++---- Data/samples/Tuple/Tuple_vs170.vcxproj | 36 +++++----- Data/samples/TypeHandler/TypeHandler.progen | 2 +- .../TypeHandler/TypeHandler_vs160.vcxproj | 24 +++---- .../TypeHandler/TypeHandler_vs170.vcxproj | 36 +++++----- Data/samples/WebNotifier/WebNotifier.progen | 2 +- .../WebNotifier/WebNotifier_vs160.vcxproj | 24 +++---- .../WebNotifier/WebNotifier_vs170.vcxproj | 36 +++++----- .../testsuite/DataTest/DataTest_vs160.vcxproj | 24 +++---- .../testsuite/DataTest/DataTest_vs170.vcxproj | 36 +++++----- Data/testsuite/DataTest/Makefile | 2 +- Data/testsuite/Makefile-testrunner | 2 +- PocoDoc/cfg/mkdoc-poco.xml | 2 +- build/rules/compile | 2 +- release/script/mkrelease | 18 ----- 167 files changed, 780 insertions(+), 792 deletions(-) rename Data/{src/sql-parser => SQLParser}/LICENSE (100%) rename Data/{src/sql-parser => SQLParser}/Makefile (100%) rename Data/{src/sql-parser => SQLParser}/README.md (100%) rename Data/{src/sql-parser => SQLParser}/benchmark/README.md (100%) rename Data/{src/sql-parser => SQLParser}/benchmark/benchmark.cpp (100%) rename Data/{src/sql-parser => SQLParser}/benchmark/benchmark_utils.cpp (100%) rename Data/{src/sql-parser => SQLParser}/benchmark/benchmark_utils.h (100%) rename Data/{src/sql-parser => SQLParser}/benchmark/parser_benchmark.cpp (100%) rename Data/{src/sql-parser => SQLParser}/benchmark/queries.cpp (100%) rename Data/{src/sql-parser => SQLParser}/benchmark/queries.h (100%) rename Data/{src/sql-parser => SQLParser}/src/SQLParser.cpp (100%) rename Data/{src/sql-parser => SQLParser}/src/SQLParser.h (100%) rename Data/{src/sql-parser => SQLParser}/src/SQLParserResult.cpp (100%) rename Data/{src/sql-parser => SQLParser}/src/SQLParserResult.h (100%) rename Data/{src/sql-parser => SQLParser}/src/parser/.gitignore (100%) rename Data/{src/sql-parser => SQLParser}/src/parser/Makefile (100%) rename Data/{src/sql-parser => SQLParser}/src/parser/bison_parser.cpp (100%) rename Data/{src/sql-parser => SQLParser}/src/parser/bison_parser.h (100%) rename Data/{src/sql-parser => SQLParser}/src/parser/bison_parser.y (100%) rename Data/{src/sql-parser => SQLParser}/src/parser/flex_lexer.cpp (100%) rename Data/{src/sql-parser => SQLParser}/src/parser/flex_lexer.h (100%) rename Data/{src/sql-parser => SQLParser}/src/parser/flex_lexer.l (100%) rename Data/{src/sql-parser => SQLParser}/src/parser/keywordlist_generator.py (100%) rename Data/{src/sql-parser => SQLParser}/src/parser/parser_typedef.h (100%) rename Data/{src/sql-parser => SQLParser}/src/parser/sql_keywords.txt (100%) rename Data/{src/sql-parser => SQLParser}/src/sql/AlterStatement.h (100%) rename Data/{src/sql-parser => SQLParser}/src/sql/ColumnType.h (95%) rename Data/{src/sql-parser => SQLParser}/src/sql/CreateStatement.cpp (100%) rename Data/{src/sql-parser => SQLParser}/src/sql/CreateStatement.h (100%) rename Data/{src/sql-parser => SQLParser}/src/sql/DeleteStatement.h (100%) rename Data/{src/sql-parser => SQLParser}/src/sql/DropStatement.h (100%) rename Data/{src/sql-parser => SQLParser}/src/sql/ExecuteStatement.h (100%) rename Data/{src/sql-parser => SQLParser}/src/sql/ExportStatement.h (100%) rename Data/{src/sql-parser => SQLParser}/src/sql/Expr.cpp (100%) rename Data/{src/sql-parser => SQLParser}/src/sql/Expr.h (100%) rename Data/{src/sql-parser => SQLParser}/src/sql/ImportStatement.h (100%) rename Data/{src/sql-parser => SQLParser}/src/sql/InsertStatement.h (100%) rename Data/{src/sql-parser => SQLParser}/src/sql/PrepareStatement.cpp (100%) rename Data/{src/sql-parser => SQLParser}/src/sql/PrepareStatement.h (100%) rename Data/{src/sql-parser => SQLParser}/src/sql/SQLStatement.cpp (100%) rename Data/{src/sql-parser => SQLParser}/src/sql/SQLStatement.h (95%) rename Data/{src/sql-parser => SQLParser}/src/sql/SelectStatement.h (100%) rename Data/{src/sql-parser => SQLParser}/src/sql/ShowStatement.h (100%) rename Data/{src/sql-parser => SQLParser}/src/sql/Table.h (100%) rename Data/{src/sql-parser => SQLParser}/src/sql/TransactionStatement.h (100%) rename Data/{src/sql-parser => SQLParser}/src/sql/UpdateStatement.h (100%) rename Data/{src/sql-parser => SQLParser}/src/sql/statements.cpp (100%) rename Data/{src/sql-parser => SQLParser}/src/sql/statements.h (100%) rename Data/{src/sql-parser => SQLParser}/src/sqlparser_win.h (100%) rename Data/{src/sql-parser => SQLParser}/src/util/sqlhelper.cpp (100%) rename Data/{src/sql-parser => SQLParser}/src/util/sqlhelper.h (100%) rename Data/{src/sql-parser => SQLParser}/test/auto_query_file_test.cpp (100%) rename Data/{src/sql-parser => SQLParser}/test/prepare_tests.cpp (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/queries-bad.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/queries-good.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-01.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-02.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-03.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-04.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-05.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-06.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-07.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-08.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-09.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-10.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-11.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-12.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-13.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-14.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-15.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-16.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-17.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-18.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-19.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-20.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-21.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/queries/tpc-h-22.sql (100%) rename Data/{src/sql-parser => SQLParser}/test/select_tests.cpp (100%) rename Data/{src/sql-parser => SQLParser}/test/sql_asserts.h (100%) rename Data/{src/sql-parser => SQLParser}/test/sql_parser.cpp (100%) rename Data/{src/sql-parser => SQLParser}/test/sql_tests.cpp (100%) rename Data/{src/sql-parser => SQLParser}/test/test.sh (100%) rename Data/{src/sql-parser => SQLParser}/test/thirdparty/microtest/microtest.h (100%) rename Data/{src/sql-parser => SQLParser}/test/tpc_h_tests.cpp (100%) create mode 100644 Data/extradirs diff --git a/ActiveRecord/ActiveRecord.progen b/ActiveRecord/ActiveRecord.progen index 3862b7c1a..3b67b77e8 100644 --- a/ActiveRecord/ActiveRecord.progen +++ b/ActiveRecord/ActiveRecord.progen @@ -7,7 +7,7 @@ vc.project.outdir = ${vc.project.pocobase} vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\Foundation\\include;..\\Data\\include;..\\Data\\src +vc.project.compiler.include = ..\\Foundation\\include;..\\Data\\include;..\\Data\\SQLParser;..\\Data\\SQLParser\\src vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}Lib_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} diff --git a/ActiveRecord/ActiveRecord_vs160.vcxproj b/ActiveRecord/ActiveRecord_vs160.vcxproj index 1ee839cb0..a3fafa612 100644 --- a/ActiveRecord/ActiveRecord_vs160.vcxproj +++ b/ActiveRecord/ActiveRecord_vs160.vcxproj @@ -227,7 +227,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -260,7 +260,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -289,7 +289,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -316,7 +316,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -337,7 +337,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -364,7 +364,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -386,7 +386,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -419,7 +419,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -448,7 +448,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -475,7 +475,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -496,7 +496,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -523,7 +523,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/ActiveRecord/ActiveRecord_vs170.vcxproj b/ActiveRecord/ActiveRecord_vs170.vcxproj index 6637aae27..d6034de72 100644 --- a/ActiveRecord/ActiveRecord_vs170.vcxproj +++ b/ActiveRecord/ActiveRecord_vs170.vcxproj @@ -331,7 +331,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -367,7 +367,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -399,7 +399,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -428,7 +428,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -452,7 +452,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -481,7 +481,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -505,7 +505,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -541,7 +541,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -573,7 +573,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -602,7 +602,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -626,7 +626,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -655,7 +655,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -679,7 +679,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -715,7 +715,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -747,7 +747,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -776,7 +776,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -800,7 +800,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -829,7 +829,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/ActiveRecord/CMakeLists.txt b/ActiveRecord/CMakeLists.txt index ad39171e7..b77a83696 100644 --- a/ActiveRecord/CMakeLists.txt +++ b/ActiveRecord/CMakeLists.txt @@ -26,7 +26,8 @@ target_include_directories(ActiveRecord PUBLIC $ $ - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../Data/SQLParser + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../Data/SQLParser/src ) POCO_INSTALL(ActiveRecord) diff --git a/ActiveRecord/testsuite/TestSuite.progen b/ActiveRecord/testsuite/TestSuite.progen index a13c41243..b57b484db 100644 --- a/ActiveRecord/testsuite/TestSuite.progen +++ b/ActiveRecord/testsuite/TestSuite.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj -vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Data\\include;..\\..\\Data\\src; \ +vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Data\\include;..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src; \ ..\\..\\Data\\SQLite\\include;..\\..\\ActiveRecord\\include;.\\include diff --git a/ActiveRecord/testsuite/TestSuite_vs160.vcxproj b/ActiveRecord/testsuite/TestSuite_vs160.vcxproj index 08cacbce7..d87dc9871 100644 --- a/ActiveRecord/testsuite/TestSuite_vs160.vcxproj +++ b/ActiveRecord/testsuite/TestSuite_vs160.vcxproj @@ -235,7 +235,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -268,7 +268,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -296,7 +296,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -329,7 +329,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -357,7 +357,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -390,7 +390,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -418,7 +418,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -451,7 +451,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -479,7 +479,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -512,7 +512,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -540,7 +540,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -573,7 +573,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/ActiveRecord/testsuite/TestSuite_vs170.vcxproj b/ActiveRecord/testsuite/TestSuite_vs170.vcxproj index 7fae30584..baadba6fc 100644 --- a/ActiveRecord/testsuite/TestSuite_vs170.vcxproj +++ b/ActiveRecord/testsuite/TestSuite_vs170.vcxproj @@ -343,7 +343,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -379,7 +379,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -410,7 +410,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -446,7 +446,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -477,7 +477,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -513,7 +513,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -544,7 +544,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -580,7 +580,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -611,7 +611,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -647,7 +647,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -678,7 +678,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -714,7 +714,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -745,7 +745,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -781,7 +781,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -812,7 +812,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -848,7 +848,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -879,7 +879,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -915,7 +915,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/CppParser/testsuite/src/CppParserTest.cpp b/CppParser/testsuite/src/CppParserTest.cpp index b200ca145..c63f4c60a 100644 --- a/CppParser/testsuite/src/CppParserTest.cpp +++ b/CppParser/testsuite/src/CppParserTest.cpp @@ -33,7 +33,7 @@ std::string options("/I \"C:\\Program Files\\Microsoft Visual Studio 8\\VC\\INCL "/D \"_WINDOWS\", " "/D \"_MBCS\", " "/C, /P, /TP"); -std::string path("C:\\Program Files\\Microsoft Visual Studio 8\\Common7\\IDE;C:\\Program Files\\Microsoft Visual Studio 8\\VC\\BIN;C:\\Program Files\\Microsoft Visual Studio 8\\Common7\\Tools;;C:\\Program Files\\Microsoft Visual Studio 8\\Common7\\Tools\\bin"); +std::string path("C:\\Program Files\\Microsoft Visual Studio 8\\Common7\\IDE;C:\\Program Files\\Microsoft Visual Studio 8\\VC\\BIN;C:\\Program Files\\Microsoft Visual Studio 8\\Common7\\Tools;C:\\Program Files\\Microsoft Visual Studio 8\\Common7\\Tools\\bin"); CppParserTest::CppParserTest(const std::string& name): CppUnit::TestCase(name) diff --git a/Data/CMakeLists.txt b/Data/CMakeLists.txt index d795073c3..64249f75e 100644 --- a/Data/CMakeLists.txt +++ b/Data/CMakeLists.txt @@ -2,8 +2,8 @@ file(GLOB SRCS_G "src/*.cpp") POCO_SOURCES_AUTO(SRCS ${SRCS_G}) if (NOT POCO_DATA_NO_SQL_PARSER) - file(GLOB_RECURSE SRCS_PARSER "src/sql-parser/src/*.cpp") - LIST(REMOVE_ITEM SRCS_PARSER "${CMAKE_CURRENT_SOURCE_DIR}/src/sql-parser/src/parser/conflict_test.cpp") + file(GLOB_RECURSE SRCS_PARSER "SQLParser/src/*.cpp") + LIST(REMOVE_ITEM SRCS_PARSER "${CMAKE_CURRENT_SOURCE_DIR}/SQLParser/src/parser/conflict_test.cpp") POCO_SOURCES_AUTO(SRCS ${SRCS_PARSER}) endif() @@ -43,7 +43,8 @@ target_include_directories(Data $ $ $ - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/SQLParser + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/SQLParser/src ) POCO_INSTALL(Data) diff --git a/Data/Data_VS90.vcproj b/Data/Data_VS90.vcproj index 7ee4df50e..d873ec40e 100644 --- a/Data/Data_VS90.vcproj +++ b/Data/Data_VS90.vcproj @@ -872,15 +872,15 @@ Name="Header Files" > @@ -888,11 +888,11 @@ Name="Source Files" > @@ -903,15 +903,15 @@ Name="Header Files" > @@ -919,11 +919,11 @@ Name="Source Files" > @@ -935,75 +935,75 @@ Name="Header Files" > @@ -1011,23 +1011,23 @@ Name="Source Files" > @@ -1039,7 +1039,7 @@ Name="Header Files" > @@ -1047,7 +1047,7 @@ Name="Source Files" > diff --git a/Data/Data_vs160.vcxproj b/Data/Data_vs160.vcxproj index 276468518..2bbd24b7f 100644 --- a/Data/Data_vs160.vcxproj +++ b/Data/Data_vs160.vcxproj @@ -606,31 +606,31 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -723,34 +723,34 @@ true - + true - + true - + true - + true - + true - + true - + true - + true - + true - + true diff --git a/Data/Data_vs160.vcxproj.filters b/Data/Data_vs160.vcxproj.filters index 16ff21640..7b4064455 100644 --- a/Data/Data_vs160.vcxproj.filters +++ b/Data/Data_vs160.vcxproj.filters @@ -219,79 +219,79 @@ SessionPooling\Header Files - + SQLParser\Header Files - + SQLParser\Header Files - + SQLParser\Header Files - + SQLParser\parser\Header Files - + SQLParser\parser\Header Files - + SQLParser\parser\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\util\Header Files @@ -407,34 +407,34 @@ SessionPooling\Source Files - + SQLParser\Source Files - + SQLParser\Source Files - + SQLParser\parser\Source Files - + SQLParser\parser\Source Files - + SQLParser\sql\Source Files - + SQLParser\sql\Source Files - + SQLParser\sql\Source Files - + SQLParser\sql\Source Files - + SQLParser\sql\Source Files - + SQLParser\util\Source Files diff --git a/Data/Data_vs170.vcxproj b/Data/Data_vs170.vcxproj index 9f5a2d888..4db9f9293 100644 --- a/Data/Data_vs170.vcxproj +++ b/Data/Data_vs170.vcxproj @@ -921,31 +921,31 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1098,52 +1098,52 @@ stdcpp17 stdc11 - + true stdcpp17 stdc11 - + true stdcpp17 stdc11 - + true stdcpp17 stdc11 - + true stdcpp17 stdc11 - + true stdcpp17 stdc11 - + true stdcpp17 stdc11 - + true stdcpp17 stdc11 - + true stdcpp17 stdc11 - + true stdcpp17 stdc11 - + true stdcpp17 stdc11 diff --git a/Data/Data_vs170.vcxproj.filters b/Data/Data_vs170.vcxproj.filters index 274357ea5..0c8d1f19d 100644 --- a/Data/Data_vs170.vcxproj.filters +++ b/Data/Data_vs170.vcxproj.filters @@ -219,79 +219,79 @@ SessionPooling\Header Files - + SQLParser\Header Files - + SQLParser\Header Files - + SQLParser\Header Files - + SQLParser\parser\Header Files - + SQLParser\parser\Header Files - + SQLParser\parser\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\sql\Header Files - + SQLParser\util\Header Files @@ -407,34 +407,34 @@ SessionPooling\Source Files - + SQLParser\Source Files - + SQLParser\Source Files - + SQLParser\parser\Source Files - + SQLParser\parser\Source Files - + SQLParser\sql\Source Files - + SQLParser\sql\Source Files - + SQLParser\sql\Source Files - + SQLParser\sql\Source Files - + SQLParser\sql\Source Files - + SQLParser\util\Source Files diff --git a/Data/Makefile b/Data/Makefile index ba47e0276..a01ca61e2 100644 --- a/Data/Makefile +++ b/Data/Makefile @@ -20,7 +20,7 @@ ifndef POCO_DATA_NO_SQL_PARSER bison_parser flex_lexer \ CreateStatement PrepareStatement SQLStatement \ Expr statements sqlhelper - target_includes = $(POCO_BASE)/Data/src + target_includes += $(POCO_BASE)/Data/SQLParser $(POCO_BASE)/Data/SQLParser/src endif target = PocoData diff --git a/Data/MySQL/CMakeLists.txt b/Data/MySQL/CMakeLists.txt index ce411cfea..dc417632f 100644 --- a/Data/MySQL/CMakeLists.txt +++ b/Data/MySQL/CMakeLists.txt @@ -26,7 +26,8 @@ target_include_directories(DataMySQL PUBLIC $ $ - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../SQLParser + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../SQLParser/src ) target_compile_definitions(DataMySQL PUBLIC THREADSAFE NO_TCL) diff --git a/Data/MySQL/Makefile b/Data/MySQL/Makefile index b199db03c..31f6868ec 100644 --- a/Data/MySQL/Makefile +++ b/Data/MySQL/Makefile @@ -16,7 +16,7 @@ objects = Binder Extractor SessionImpl Connector \ SessionHandle StatementExecutor Utility ifndef POCO_DATA_NO_SQL_PARSER - target_includes = $(POCO_BASE)/Data/src + target_includes += $(POCO_BASE)/Data/SQLParser $(POCO_BASE)/Data/SQLParser/src endif target = PocoDataMySQL diff --git a/Data/MySQL/MySQL_VS90.vcproj b/Data/MySQL/MySQL_VS90.vcproj index 5399c652d..75e5dc140 100644 --- a/Data/MySQL/MySQL_VS90.vcproj +++ b/Data/MySQL/MySQL_VS90.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;..\..\mysql\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS" StringPooling="true" MinimalRebuild="true" @@ -136,7 +136,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;..\..\mysql\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS" StringPooling="true" RuntimeLibrary="2" @@ -224,7 +224,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;..\..\mysql\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__" StringPooling="true" MinimalRebuild="true" @@ -302,7 +302,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;..\..\mysql\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__" StringPooling="true" RuntimeLibrary="0" @@ -373,7 +373,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;..\..\mysql\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__" StringPooling="true" MinimalRebuild="true" @@ -451,7 +451,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;..\..\mysql\include" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__" StringPooling="true" RuntimeLibrary="2" diff --git a/Data/MySQL/MySQL_vs160.vcxproj b/Data/MySQL/MySQL_vs160.vcxproj index a316b4941..917d6ddc5 100644 --- a/Data/MySQL/MySQL_vs160.vcxproj +++ b/Data/MySQL/MySQL_vs160.vcxproj @@ -227,7 +227,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -260,7 +260,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -289,7 +289,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -316,7 +316,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreaded @@ -337,7 +337,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -364,7 +364,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -386,7 +386,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -419,7 +419,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -448,7 +448,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -475,7 +475,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreaded @@ -496,7 +496,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -523,7 +523,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/MySQL/MySQL_vs170.vcxproj b/Data/MySQL/MySQL_vs170.vcxproj index 146c91962..c22e865c3 100644 --- a/Data/MySQL/MySQL_vs170.vcxproj +++ b/Data/MySQL/MySQL_vs170.vcxproj @@ -331,7 +331,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -367,7 +367,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -399,7 +399,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -428,7 +428,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreaded @@ -452,7 +452,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -481,7 +481,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -505,7 +505,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -541,7 +541,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -573,7 +573,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -602,7 +602,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreaded @@ -626,7 +626,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -655,7 +655,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -679,7 +679,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -715,7 +715,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -747,7 +747,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -776,7 +776,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreaded @@ -800,7 +800,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -829,7 +829,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/MySQL/testsuite/Makefile b/Data/MySQL/testsuite/Makefile index a8c59defc..f07a04328 100644 --- a/Data/MySQL/testsuite/Makefile +++ b/Data/MySQL/testsuite/Makefile @@ -14,7 +14,7 @@ SYSLIBS += -lmysqlclient -lz -lpthread -ldl objects = MySQLTestSuite Driver MySQLTest SQLExecutor ifndef POCO_DATA_NO_SQL_PARSER - target_includes = $(POCO_BASE)/Data/src + target_includes += $(POCO_BASE)/Data/SQLParser $(POCO_BASE)/Data/SQLParser/src endif target = testrunner diff --git a/Data/MySQL/testsuite/TestSuite_VS90.vcproj b/Data/MySQL/testsuite/TestSuite_VS90.vcproj index 84d1c7f37..bcbdc3e83 100644 --- a/Data/MySQL/testsuite/TestSuite_VS90.vcproj +++ b/Data/MySQL/testsuite/TestSuite_VS90.vcproj @@ -32,7 +32,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -268,7 +268,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -296,7 +296,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -329,7 +329,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -357,7 +357,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -390,7 +390,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -418,7 +418,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -451,7 +451,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -479,7 +479,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -512,7 +512,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -540,7 +540,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -573,7 +573,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/MySQL/testsuite/TestSuite_vs170.vcxproj b/Data/MySQL/testsuite/TestSuite_vs170.vcxproj index 7a876ee85..083638b4e 100644 --- a/Data/MySQL/testsuite/TestSuite_vs170.vcxproj +++ b/Data/MySQL/testsuite/TestSuite_vs170.vcxproj @@ -343,7 +343,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -377,7 +377,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -406,7 +406,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -440,7 +440,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -469,7 +469,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -503,7 +503,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -532,7 +532,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -566,7 +566,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -595,7 +595,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -629,7 +629,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -658,7 +658,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -692,7 +692,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -721,7 +721,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -755,7 +755,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -784,7 +784,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -818,7 +818,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -847,7 +847,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -881,7 +881,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/ODBC/CMakeLists.txt b/Data/ODBC/CMakeLists.txt index 764f6a501..38d5b2d2a 100644 --- a/Data/ODBC/CMakeLists.txt +++ b/Data/ODBC/CMakeLists.txt @@ -26,7 +26,8 @@ target_include_directories(DataODBC PUBLIC $ $ - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../SQLParser + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../SQLParser/src ) target_compile_definitions(DataODBC PUBLIC THREADSAFE) diff --git a/Data/ODBC/Makefile b/Data/ODBC/Makefile index 9be4700cf..3e4980154 100644 --- a/Data/ODBC/Makefile +++ b/Data/ODBC/Makefile @@ -14,7 +14,7 @@ objects = Binder ConnectionHandle Connector EnvironmentHandle \ target_includes = $(POCO_BASE)/Data/testsuite/include ifndef POCO_DATA_NO_SQL_PARSER - target_includes += $(POCO_BASE)/Data/src + target_includes += $(POCO_BASE)/Data/SQLParser $(POCO_BASE)/Data/SQLParser/src endif target = PocoDataODBC diff --git a/Data/ODBC/ODBC.progen b/Data/ODBC/ODBC.progen index 05f759a12..d1b55ed2c 100644 --- a/Data/ODBC/ODBC.progen +++ b/Data/ODBC/ODBC.progen @@ -7,7 +7,7 @@ vc.project.outdir = ${vc.project.pocobase} vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Data\\include;..\\..\\Data\\src +vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Data\\include;..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src vc.project.compiler.defines = THREADSAFE vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} diff --git a/Data/ODBC/ODBC_VS90.vcproj b/Data/ODBC/ODBC_VS90.vcproj index 656632804..820474a74 100644 --- a/Data/ODBC/ODBC_VS90.vcproj +++ b/Data/ODBC/ODBC_VS90.vcproj @@ -42,7 +42,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS" StringPooling="true" MinimalRebuild="true" @@ -134,7 +134,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS" StringPooling="true" RuntimeLibrary="2" @@ -221,7 +221,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE" StringPooling="true" MinimalRebuild="true" @@ -298,7 +298,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE" StringPooling="true" RuntimeLibrary="0" @@ -368,7 +368,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE" StringPooling="true" MinimalRebuild="true" @@ -445,7 +445,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE" StringPooling="true" RuntimeLibrary="2" diff --git a/Data/ODBC/ODBC_vs160.vcxproj b/Data/ODBC/ODBC_vs160.vcxproj index 9a398a943..21922adb1 100644 --- a/Data/ODBC/ODBC_vs160.vcxproj +++ b/Data/ODBC/ODBC_vs160.vcxproj @@ -227,7 +227,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -261,7 +261,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -291,7 +291,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -318,7 +318,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreaded @@ -339,7 +339,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -366,7 +366,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -389,7 +389,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -423,7 +423,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -453,7 +453,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -480,7 +480,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreaded @@ -501,7 +501,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -528,7 +528,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/ODBC/ODBC_vs170.vcxproj b/Data/ODBC/ODBC_vs170.vcxproj index 45ad082c3..bfd3495dd 100644 --- a/Data/ODBC/ODBC_vs170.vcxproj +++ b/Data/ODBC/ODBC_vs170.vcxproj @@ -331,7 +331,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -368,7 +368,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -401,7 +401,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -430,7 +430,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreaded @@ -454,7 +454,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -483,7 +483,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -507,7 +507,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -544,7 +544,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -577,7 +577,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -606,7 +606,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreaded @@ -630,7 +630,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -659,7 +659,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -684,7 +684,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -721,7 +721,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -754,7 +754,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -783,7 +783,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreaded @@ -807,7 +807,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -836,7 +836,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/ODBC/testsuite/Makefile b/Data/ODBC/testsuite/Makefile index b17f82c86..2a311ad4b 100644 --- a/Data/ODBC/testsuite/Makefile +++ b/Data/ODBC/testsuite/Makefile @@ -36,8 +36,7 @@ ifeq ($(POCO_CONFIG),MinGW) endif ifndef POCO_DATA_NO_SQL_PARSER - target_includes += $(POCO_BASE)/Data/src -endif + target_includes += $(POCO_BASE)/Data/SQLParser $(POCO_BASE)/Data/SQLParser/src target = testrunner target_version = 1 diff --git a/Data/ODBC/testsuite/TestSuite.progen b/Data/ODBC/testsuite/TestSuite.progen index ad611e51d..2c2d3e34e 100644 --- a/Data/ODBC/testsuite/TestSuite.progen +++ b/Data/ODBC/testsuite/TestSuite.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj -vc.project.compiler.include = ..\\..\\..\\CppUnit\\include;..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\testsuite\\DataTest\\include +vc.project.compiler.include = ..\\..\\..\\CppUnit\\include;..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src;..\\..\\..\\Data\\testsuite\\DataTest\\include vc.project.linker.dependencies = odbc32.lib odbccp32.lib iphlpapi.lib diff --git a/Data/ODBC/testsuite/TestSuite_VS90.vcproj b/Data/ODBC/testsuite/TestSuite_VS90.vcproj index 40f218e0f..5eca7e5fd 100644 --- a/Data/ODBC/testsuite/TestSuite_VS90.vcproj +++ b/Data/ODBC/testsuite/TestSuite_VS90.vcproj @@ -32,7 +32,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -268,7 +268,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -296,7 +296,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -329,7 +329,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -357,7 +357,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -390,7 +390,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -418,7 +418,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -451,7 +451,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -479,7 +479,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -512,7 +512,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -540,7 +540,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -573,7 +573,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/ODBC/testsuite/TestSuite_vs170.vcxproj b/Data/ODBC/testsuite/TestSuite_vs170.vcxproj index e08e2efe2..7a23c7c28 100644 --- a/Data/ODBC/testsuite/TestSuite_vs170.vcxproj +++ b/Data/ODBC/testsuite/TestSuite_vs170.vcxproj @@ -343,7 +343,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -379,7 +379,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -410,7 +410,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -446,7 +446,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -477,7 +477,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -513,7 +513,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -544,7 +544,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -580,7 +580,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -611,7 +611,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -647,7 +647,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -678,7 +678,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -714,7 +714,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -745,7 +745,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -781,7 +781,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -812,7 +812,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -848,7 +848,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -879,7 +879,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -915,7 +915,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/PostgreSQL/CMakeLists.txt b/Data/PostgreSQL/CMakeLists.txt index d02c2f106..721580886 100644 --- a/Data/PostgreSQL/CMakeLists.txt +++ b/Data/PostgreSQL/CMakeLists.txt @@ -26,8 +26,8 @@ target_include_directories(DataPostgreSQL PUBLIC $ $ - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/src + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../Data/SQLParser + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../Data/SQLParser/src ) POCO_INSTALL(DataPostgreSQL) diff --git a/Data/PostgreSQL/Makefile b/Data/PostgreSQL/Makefile index 6cd726679..bf2539d6f 100644 --- a/Data/PostgreSQL/Makefile +++ b/Data/PostgreSQL/Makefile @@ -15,7 +15,7 @@ objects = Extractor BinaryExtractor Binder SessionImpl Connector \ target_includes = $(POCO_BASE)/Data/testsuite/include ifndef POCO_DATA_NO_SQL_PARSER - target_includes += $(POCO_BASE)/Data/src + target_includes += $(POCO_BASE)/Data/SQLParser $(POCO_BASE)/Data/SQLParser/src endif diff --git a/Data/PostgreSQL/PostgreSQL_VS90.vcproj b/Data/PostgreSQL/PostgreSQL_VS90.vcproj index 59e2aca3f..78686f6f7 100644 --- a/Data/PostgreSQL/PostgreSQL_VS90.vcproj +++ b/Data/PostgreSQL/PostgreSQL_VS90.vcproj @@ -43,7 +43,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" + AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS" StringPooling="true" MinimalRebuild="true" @@ -136,7 +136,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" + AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS" StringPooling="true" RuntimeLibrary="2" @@ -224,7 +224,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" + AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;" StringPooling="true" MinimalRebuild="true" @@ -302,7 +302,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" + AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;" StringPooling="true" RuntimeLibrary="0" @@ -373,7 +373,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" + AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;" StringPooling="true" MinimalRebuild="true" @@ -451,7 +451,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" + AdditionalIncludeDirectories=".\include;..\..\postgresql\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;" StringPooling="true" RuntimeLibrary="2" diff --git a/Data/PostgreSQL/PostgreSQL_vs160.vcxproj b/Data/PostgreSQL/PostgreSQL_vs160.vcxproj index b181f8cc3..bcb42a61d 100644 --- a/Data/PostgreSQL/PostgreSQL_vs160.vcxproj +++ b/Data/PostgreSQL/PostgreSQL_vs160.vcxproj @@ -227,7 +227,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -260,7 +260,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -289,7 +289,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -316,7 +316,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -337,7 +337,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -364,7 +364,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -386,7 +386,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -419,7 +419,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -448,7 +448,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -475,7 +475,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -496,7 +496,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -523,7 +523,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/PostgreSQL/PostgreSQL_vs170.vcxproj b/Data/PostgreSQL/PostgreSQL_vs170.vcxproj index 30417e18b..464a4d53b 100644 --- a/Data/PostgreSQL/PostgreSQL_vs170.vcxproj +++ b/Data/PostgreSQL/PostgreSQL_vs170.vcxproj @@ -331,7 +331,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -367,7 +367,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -399,7 +399,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -428,7 +428,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -452,7 +452,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -481,7 +481,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -505,7 +505,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -541,7 +541,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -573,7 +573,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -602,7 +602,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -626,7 +626,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -655,7 +655,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -679,7 +679,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -715,7 +715,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -747,7 +747,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -776,7 +776,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -800,7 +800,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -829,7 +829,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/PostgreSQL/testsuite/Makefile b/Data/PostgreSQL/testsuite/Makefile index 5b3754f86..989842919 100644 --- a/Data/PostgreSQL/testsuite/Makefile +++ b/Data/PostgreSQL/testsuite/Makefile @@ -14,7 +14,7 @@ SYSLIBS += -lpq -lz -lpthread -ldl objects = PostgreSQLTestSuite Driver PostgreSQLTest SQLExecutor ifndef POCO_DATA_NO_SQL_PARSER - target_includes += $(POCO_BASE)/Data/src + target_includes += $(POCO_BASE)/Data/SQLParser $(POCO_BASE)/Data/SQLParser/src endif target = testrunner diff --git a/Data/PostgreSQL/testsuite/TestSuite_VS90.vcproj b/Data/PostgreSQL/testsuite/TestSuite_VS90.vcproj index 205430f49..8d146be7e 100644 --- a/Data/PostgreSQL/testsuite/TestSuite_VS90.vcproj +++ b/Data/PostgreSQL/testsuite/TestSuite_VS90.vcproj @@ -32,7 +32,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -268,7 +268,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -296,7 +296,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -329,7 +329,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreaded @@ -357,7 +357,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -390,7 +390,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -418,7 +418,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -451,7 +451,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -479,7 +479,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -512,7 +512,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreaded @@ -540,7 +540,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -573,7 +573,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj b/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj index cad20efca..1aed740d9 100644 --- a/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj +++ b/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj @@ -343,7 +343,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -377,7 +377,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -406,7 +406,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -440,7 +440,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreaded @@ -469,7 +469,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -503,7 +503,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -532,7 +532,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -566,7 +566,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -595,7 +595,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -629,7 +629,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreaded @@ -658,7 +658,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -692,7 +692,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -721,7 +721,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -755,7 +755,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -784,7 +784,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -818,7 +818,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreaded @@ -847,7 +847,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -881,7 +881,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/src/sql-parser/LICENSE b/Data/SQLParser/LICENSE similarity index 100% rename from Data/src/sql-parser/LICENSE rename to Data/SQLParser/LICENSE diff --git a/Data/src/sql-parser/Makefile b/Data/SQLParser/Makefile similarity index 100% rename from Data/src/sql-parser/Makefile rename to Data/SQLParser/Makefile diff --git a/Data/src/sql-parser/README.md b/Data/SQLParser/README.md similarity index 100% rename from Data/src/sql-parser/README.md rename to Data/SQLParser/README.md diff --git a/Data/src/sql-parser/benchmark/README.md b/Data/SQLParser/benchmark/README.md similarity index 100% rename from Data/src/sql-parser/benchmark/README.md rename to Data/SQLParser/benchmark/README.md diff --git a/Data/src/sql-parser/benchmark/benchmark.cpp b/Data/SQLParser/benchmark/benchmark.cpp similarity index 100% rename from Data/src/sql-parser/benchmark/benchmark.cpp rename to Data/SQLParser/benchmark/benchmark.cpp diff --git a/Data/src/sql-parser/benchmark/benchmark_utils.cpp b/Data/SQLParser/benchmark/benchmark_utils.cpp similarity index 100% rename from Data/src/sql-parser/benchmark/benchmark_utils.cpp rename to Data/SQLParser/benchmark/benchmark_utils.cpp diff --git a/Data/src/sql-parser/benchmark/benchmark_utils.h b/Data/SQLParser/benchmark/benchmark_utils.h similarity index 100% rename from Data/src/sql-parser/benchmark/benchmark_utils.h rename to Data/SQLParser/benchmark/benchmark_utils.h diff --git a/Data/src/sql-parser/benchmark/parser_benchmark.cpp b/Data/SQLParser/benchmark/parser_benchmark.cpp similarity index 100% rename from Data/src/sql-parser/benchmark/parser_benchmark.cpp rename to Data/SQLParser/benchmark/parser_benchmark.cpp diff --git a/Data/src/sql-parser/benchmark/queries.cpp b/Data/SQLParser/benchmark/queries.cpp similarity index 100% rename from Data/src/sql-parser/benchmark/queries.cpp rename to Data/SQLParser/benchmark/queries.cpp diff --git a/Data/src/sql-parser/benchmark/queries.h b/Data/SQLParser/benchmark/queries.h similarity index 100% rename from Data/src/sql-parser/benchmark/queries.h rename to Data/SQLParser/benchmark/queries.h diff --git a/Data/src/sql-parser/src/SQLParser.cpp b/Data/SQLParser/src/SQLParser.cpp similarity index 100% rename from Data/src/sql-parser/src/SQLParser.cpp rename to Data/SQLParser/src/SQLParser.cpp diff --git a/Data/src/sql-parser/src/SQLParser.h b/Data/SQLParser/src/SQLParser.h similarity index 100% rename from Data/src/sql-parser/src/SQLParser.h rename to Data/SQLParser/src/SQLParser.h diff --git a/Data/src/sql-parser/src/SQLParserResult.cpp b/Data/SQLParser/src/SQLParserResult.cpp similarity index 100% rename from Data/src/sql-parser/src/SQLParserResult.cpp rename to Data/SQLParser/src/SQLParserResult.cpp diff --git a/Data/src/sql-parser/src/SQLParserResult.h b/Data/SQLParser/src/SQLParserResult.h similarity index 100% rename from Data/src/sql-parser/src/SQLParserResult.h rename to Data/SQLParser/src/SQLParserResult.h diff --git a/Data/src/sql-parser/src/parser/.gitignore b/Data/SQLParser/src/parser/.gitignore similarity index 100% rename from Data/src/sql-parser/src/parser/.gitignore rename to Data/SQLParser/src/parser/.gitignore diff --git a/Data/src/sql-parser/src/parser/Makefile b/Data/SQLParser/src/parser/Makefile similarity index 100% rename from Data/src/sql-parser/src/parser/Makefile rename to Data/SQLParser/src/parser/Makefile diff --git a/Data/src/sql-parser/src/parser/bison_parser.cpp b/Data/SQLParser/src/parser/bison_parser.cpp similarity index 100% rename from Data/src/sql-parser/src/parser/bison_parser.cpp rename to Data/SQLParser/src/parser/bison_parser.cpp diff --git a/Data/src/sql-parser/src/parser/bison_parser.h b/Data/SQLParser/src/parser/bison_parser.h similarity index 100% rename from Data/src/sql-parser/src/parser/bison_parser.h rename to Data/SQLParser/src/parser/bison_parser.h diff --git a/Data/src/sql-parser/src/parser/bison_parser.y b/Data/SQLParser/src/parser/bison_parser.y similarity index 100% rename from Data/src/sql-parser/src/parser/bison_parser.y rename to Data/SQLParser/src/parser/bison_parser.y diff --git a/Data/src/sql-parser/src/parser/flex_lexer.cpp b/Data/SQLParser/src/parser/flex_lexer.cpp similarity index 100% rename from Data/src/sql-parser/src/parser/flex_lexer.cpp rename to Data/SQLParser/src/parser/flex_lexer.cpp diff --git a/Data/src/sql-parser/src/parser/flex_lexer.h b/Data/SQLParser/src/parser/flex_lexer.h similarity index 100% rename from Data/src/sql-parser/src/parser/flex_lexer.h rename to Data/SQLParser/src/parser/flex_lexer.h diff --git a/Data/src/sql-parser/src/parser/flex_lexer.l b/Data/SQLParser/src/parser/flex_lexer.l similarity index 100% rename from Data/src/sql-parser/src/parser/flex_lexer.l rename to Data/SQLParser/src/parser/flex_lexer.l diff --git a/Data/src/sql-parser/src/parser/keywordlist_generator.py b/Data/SQLParser/src/parser/keywordlist_generator.py similarity index 100% rename from Data/src/sql-parser/src/parser/keywordlist_generator.py rename to Data/SQLParser/src/parser/keywordlist_generator.py diff --git a/Data/src/sql-parser/src/parser/parser_typedef.h b/Data/SQLParser/src/parser/parser_typedef.h similarity index 100% rename from Data/src/sql-parser/src/parser/parser_typedef.h rename to Data/SQLParser/src/parser/parser_typedef.h diff --git a/Data/src/sql-parser/src/parser/sql_keywords.txt b/Data/SQLParser/src/parser/sql_keywords.txt similarity index 100% rename from Data/src/sql-parser/src/parser/sql_keywords.txt rename to Data/SQLParser/src/parser/sql_keywords.txt diff --git a/Data/src/sql-parser/src/sql/AlterStatement.h b/Data/SQLParser/src/sql/AlterStatement.h similarity index 100% rename from Data/src/sql-parser/src/sql/AlterStatement.h rename to Data/SQLParser/src/sql/AlterStatement.h diff --git a/Data/src/sql-parser/src/sql/ColumnType.h b/Data/SQLParser/src/sql/ColumnType.h similarity index 95% rename from Data/src/sql-parser/src/sql/ColumnType.h rename to Data/SQLParser/src/sql/ColumnType.h index 6eb9ed470..d756e2462 100644 --- a/Data/src/sql-parser/src/sql/ColumnType.h +++ b/Data/SQLParser/src/sql/ColumnType.h @@ -1,7 +1,7 @@ #ifndef SQLPARSER_COLUMN_TYPE_H #define SQLPARSER_COLUMN_TYPE_H -#include"sql-parser/src/sqlparser_win.h" +#include"sqlparser_win.h" #include namespace hsql { diff --git a/Data/src/sql-parser/src/sql/CreateStatement.cpp b/Data/SQLParser/src/sql/CreateStatement.cpp similarity index 100% rename from Data/src/sql-parser/src/sql/CreateStatement.cpp rename to Data/SQLParser/src/sql/CreateStatement.cpp diff --git a/Data/src/sql-parser/src/sql/CreateStatement.h b/Data/SQLParser/src/sql/CreateStatement.h similarity index 100% rename from Data/src/sql-parser/src/sql/CreateStatement.h rename to Data/SQLParser/src/sql/CreateStatement.h diff --git a/Data/src/sql-parser/src/sql/DeleteStatement.h b/Data/SQLParser/src/sql/DeleteStatement.h similarity index 100% rename from Data/src/sql-parser/src/sql/DeleteStatement.h rename to Data/SQLParser/src/sql/DeleteStatement.h diff --git a/Data/src/sql-parser/src/sql/DropStatement.h b/Data/SQLParser/src/sql/DropStatement.h similarity index 100% rename from Data/src/sql-parser/src/sql/DropStatement.h rename to Data/SQLParser/src/sql/DropStatement.h diff --git a/Data/src/sql-parser/src/sql/ExecuteStatement.h b/Data/SQLParser/src/sql/ExecuteStatement.h similarity index 100% rename from Data/src/sql-parser/src/sql/ExecuteStatement.h rename to Data/SQLParser/src/sql/ExecuteStatement.h diff --git a/Data/src/sql-parser/src/sql/ExportStatement.h b/Data/SQLParser/src/sql/ExportStatement.h similarity index 100% rename from Data/src/sql-parser/src/sql/ExportStatement.h rename to Data/SQLParser/src/sql/ExportStatement.h diff --git a/Data/src/sql-parser/src/sql/Expr.cpp b/Data/SQLParser/src/sql/Expr.cpp similarity index 100% rename from Data/src/sql-parser/src/sql/Expr.cpp rename to Data/SQLParser/src/sql/Expr.cpp diff --git a/Data/src/sql-parser/src/sql/Expr.h b/Data/SQLParser/src/sql/Expr.h similarity index 100% rename from Data/src/sql-parser/src/sql/Expr.h rename to Data/SQLParser/src/sql/Expr.h diff --git a/Data/src/sql-parser/src/sql/ImportStatement.h b/Data/SQLParser/src/sql/ImportStatement.h similarity index 100% rename from Data/src/sql-parser/src/sql/ImportStatement.h rename to Data/SQLParser/src/sql/ImportStatement.h diff --git a/Data/src/sql-parser/src/sql/InsertStatement.h b/Data/SQLParser/src/sql/InsertStatement.h similarity index 100% rename from Data/src/sql-parser/src/sql/InsertStatement.h rename to Data/SQLParser/src/sql/InsertStatement.h diff --git a/Data/src/sql-parser/src/sql/PrepareStatement.cpp b/Data/SQLParser/src/sql/PrepareStatement.cpp similarity index 100% rename from Data/src/sql-parser/src/sql/PrepareStatement.cpp rename to Data/SQLParser/src/sql/PrepareStatement.cpp diff --git a/Data/src/sql-parser/src/sql/PrepareStatement.h b/Data/SQLParser/src/sql/PrepareStatement.h similarity index 100% rename from Data/src/sql-parser/src/sql/PrepareStatement.h rename to Data/SQLParser/src/sql/PrepareStatement.h diff --git a/Data/src/sql-parser/src/sql/SQLStatement.cpp b/Data/SQLParser/src/sql/SQLStatement.cpp similarity index 100% rename from Data/src/sql-parser/src/sql/SQLStatement.cpp rename to Data/SQLParser/src/sql/SQLStatement.cpp diff --git a/Data/src/sql-parser/src/sql/SQLStatement.h b/Data/SQLParser/src/sql/SQLStatement.h similarity index 95% rename from Data/src/sql-parser/src/sql/SQLStatement.h rename to Data/SQLParser/src/sql/SQLStatement.h index b0763f83e..c0aa1e472 100644 --- a/Data/src/sql-parser/src/sql/SQLStatement.h +++ b/Data/SQLParser/src/sql/SQLStatement.h @@ -2,7 +2,7 @@ #define SQLPARSER_SQLSTATEMENT_H #include -#include "sql-parser/src/sqlparser_win.h" +#include "sqlparser_win.h" #include "Expr.h" namespace hsql { diff --git a/Data/src/sql-parser/src/sql/SelectStatement.h b/Data/SQLParser/src/sql/SelectStatement.h similarity index 100% rename from Data/src/sql-parser/src/sql/SelectStatement.h rename to Data/SQLParser/src/sql/SelectStatement.h diff --git a/Data/src/sql-parser/src/sql/ShowStatement.h b/Data/SQLParser/src/sql/ShowStatement.h similarity index 100% rename from Data/src/sql-parser/src/sql/ShowStatement.h rename to Data/SQLParser/src/sql/ShowStatement.h diff --git a/Data/src/sql-parser/src/sql/Table.h b/Data/SQLParser/src/sql/Table.h similarity index 100% rename from Data/src/sql-parser/src/sql/Table.h rename to Data/SQLParser/src/sql/Table.h diff --git a/Data/src/sql-parser/src/sql/TransactionStatement.h b/Data/SQLParser/src/sql/TransactionStatement.h similarity index 100% rename from Data/src/sql-parser/src/sql/TransactionStatement.h rename to Data/SQLParser/src/sql/TransactionStatement.h diff --git a/Data/src/sql-parser/src/sql/UpdateStatement.h b/Data/SQLParser/src/sql/UpdateStatement.h similarity index 100% rename from Data/src/sql-parser/src/sql/UpdateStatement.h rename to Data/SQLParser/src/sql/UpdateStatement.h diff --git a/Data/src/sql-parser/src/sql/statements.cpp b/Data/SQLParser/src/sql/statements.cpp similarity index 100% rename from Data/src/sql-parser/src/sql/statements.cpp rename to Data/SQLParser/src/sql/statements.cpp diff --git a/Data/src/sql-parser/src/sql/statements.h b/Data/SQLParser/src/sql/statements.h similarity index 100% rename from Data/src/sql-parser/src/sql/statements.h rename to Data/SQLParser/src/sql/statements.h diff --git a/Data/src/sql-parser/src/sqlparser_win.h b/Data/SQLParser/src/sqlparser_win.h similarity index 100% rename from Data/src/sql-parser/src/sqlparser_win.h rename to Data/SQLParser/src/sqlparser_win.h diff --git a/Data/src/sql-parser/src/util/sqlhelper.cpp b/Data/SQLParser/src/util/sqlhelper.cpp similarity index 100% rename from Data/src/sql-parser/src/util/sqlhelper.cpp rename to Data/SQLParser/src/util/sqlhelper.cpp diff --git a/Data/src/sql-parser/src/util/sqlhelper.h b/Data/SQLParser/src/util/sqlhelper.h similarity index 100% rename from Data/src/sql-parser/src/util/sqlhelper.h rename to Data/SQLParser/src/util/sqlhelper.h diff --git a/Data/src/sql-parser/test/auto_query_file_test.cpp b/Data/SQLParser/test/auto_query_file_test.cpp similarity index 100% rename from Data/src/sql-parser/test/auto_query_file_test.cpp rename to Data/SQLParser/test/auto_query_file_test.cpp diff --git a/Data/src/sql-parser/test/prepare_tests.cpp b/Data/SQLParser/test/prepare_tests.cpp similarity index 100% rename from Data/src/sql-parser/test/prepare_tests.cpp rename to Data/SQLParser/test/prepare_tests.cpp diff --git a/Data/src/sql-parser/test/queries/queries-bad.sql b/Data/SQLParser/test/queries/queries-bad.sql similarity index 100% rename from Data/src/sql-parser/test/queries/queries-bad.sql rename to Data/SQLParser/test/queries/queries-bad.sql diff --git a/Data/src/sql-parser/test/queries/queries-good.sql b/Data/SQLParser/test/queries/queries-good.sql similarity index 100% rename from Data/src/sql-parser/test/queries/queries-good.sql rename to Data/SQLParser/test/queries/queries-good.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-01.sql b/Data/SQLParser/test/queries/tpc-h-01.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-01.sql rename to Data/SQLParser/test/queries/tpc-h-01.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-02.sql b/Data/SQLParser/test/queries/tpc-h-02.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-02.sql rename to Data/SQLParser/test/queries/tpc-h-02.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-03.sql b/Data/SQLParser/test/queries/tpc-h-03.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-03.sql rename to Data/SQLParser/test/queries/tpc-h-03.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-04.sql b/Data/SQLParser/test/queries/tpc-h-04.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-04.sql rename to Data/SQLParser/test/queries/tpc-h-04.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-05.sql b/Data/SQLParser/test/queries/tpc-h-05.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-05.sql rename to Data/SQLParser/test/queries/tpc-h-05.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-06.sql b/Data/SQLParser/test/queries/tpc-h-06.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-06.sql rename to Data/SQLParser/test/queries/tpc-h-06.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-07.sql b/Data/SQLParser/test/queries/tpc-h-07.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-07.sql rename to Data/SQLParser/test/queries/tpc-h-07.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-08.sql b/Data/SQLParser/test/queries/tpc-h-08.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-08.sql rename to Data/SQLParser/test/queries/tpc-h-08.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-09.sql b/Data/SQLParser/test/queries/tpc-h-09.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-09.sql rename to Data/SQLParser/test/queries/tpc-h-09.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-10.sql b/Data/SQLParser/test/queries/tpc-h-10.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-10.sql rename to Data/SQLParser/test/queries/tpc-h-10.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-11.sql b/Data/SQLParser/test/queries/tpc-h-11.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-11.sql rename to Data/SQLParser/test/queries/tpc-h-11.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-12.sql b/Data/SQLParser/test/queries/tpc-h-12.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-12.sql rename to Data/SQLParser/test/queries/tpc-h-12.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-13.sql b/Data/SQLParser/test/queries/tpc-h-13.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-13.sql rename to Data/SQLParser/test/queries/tpc-h-13.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-14.sql b/Data/SQLParser/test/queries/tpc-h-14.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-14.sql rename to Data/SQLParser/test/queries/tpc-h-14.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-15.sql b/Data/SQLParser/test/queries/tpc-h-15.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-15.sql rename to Data/SQLParser/test/queries/tpc-h-15.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-16.sql b/Data/SQLParser/test/queries/tpc-h-16.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-16.sql rename to Data/SQLParser/test/queries/tpc-h-16.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-17.sql b/Data/SQLParser/test/queries/tpc-h-17.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-17.sql rename to Data/SQLParser/test/queries/tpc-h-17.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-18.sql b/Data/SQLParser/test/queries/tpc-h-18.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-18.sql rename to Data/SQLParser/test/queries/tpc-h-18.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-19.sql b/Data/SQLParser/test/queries/tpc-h-19.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-19.sql rename to Data/SQLParser/test/queries/tpc-h-19.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-20.sql b/Data/SQLParser/test/queries/tpc-h-20.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-20.sql rename to Data/SQLParser/test/queries/tpc-h-20.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-21.sql b/Data/SQLParser/test/queries/tpc-h-21.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-21.sql rename to Data/SQLParser/test/queries/tpc-h-21.sql diff --git a/Data/src/sql-parser/test/queries/tpc-h-22.sql b/Data/SQLParser/test/queries/tpc-h-22.sql similarity index 100% rename from Data/src/sql-parser/test/queries/tpc-h-22.sql rename to Data/SQLParser/test/queries/tpc-h-22.sql diff --git a/Data/src/sql-parser/test/select_tests.cpp b/Data/SQLParser/test/select_tests.cpp similarity index 100% rename from Data/src/sql-parser/test/select_tests.cpp rename to Data/SQLParser/test/select_tests.cpp diff --git a/Data/src/sql-parser/test/sql_asserts.h b/Data/SQLParser/test/sql_asserts.h similarity index 100% rename from Data/src/sql-parser/test/sql_asserts.h rename to Data/SQLParser/test/sql_asserts.h diff --git a/Data/src/sql-parser/test/sql_parser.cpp b/Data/SQLParser/test/sql_parser.cpp similarity index 100% rename from Data/src/sql-parser/test/sql_parser.cpp rename to Data/SQLParser/test/sql_parser.cpp diff --git a/Data/src/sql-parser/test/sql_tests.cpp b/Data/SQLParser/test/sql_tests.cpp similarity index 100% rename from Data/src/sql-parser/test/sql_tests.cpp rename to Data/SQLParser/test/sql_tests.cpp diff --git a/Data/src/sql-parser/test/test.sh b/Data/SQLParser/test/test.sh similarity index 100% rename from Data/src/sql-parser/test/test.sh rename to Data/SQLParser/test/test.sh diff --git a/Data/src/sql-parser/test/thirdparty/microtest/microtest.h b/Data/SQLParser/test/thirdparty/microtest/microtest.h similarity index 100% rename from Data/src/sql-parser/test/thirdparty/microtest/microtest.h rename to Data/SQLParser/test/thirdparty/microtest/microtest.h diff --git a/Data/src/sql-parser/test/tpc_h_tests.cpp b/Data/SQLParser/test/tpc_h_tests.cpp similarity index 100% rename from Data/src/sql-parser/test/tpc_h_tests.cpp rename to Data/SQLParser/test/tpc_h_tests.cpp diff --git a/Data/SQLite/CMakeLists.txt b/Data/SQLite/CMakeLists.txt index 263acc1ad..e6a008742 100644 --- a/Data/SQLite/CMakeLists.txt +++ b/Data/SQLite/CMakeLists.txt @@ -40,6 +40,8 @@ target_include_directories(DataSQLite $ $ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../SQLParser + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../SQLParser/src ) if(POCO_UNBUNDLED) diff --git a/Data/SQLite/Makefile b/Data/SQLite/Makefile index c6a67219d..de563d7dd 100644 --- a/Data/SQLite/Makefile +++ b/Data/SQLite/Makefile @@ -22,7 +22,7 @@ else endif ifndef POCO_DATA_NO_SQL_PARSER - target_includes = $(POCO_BASE)/Data/src + target_includes += $(POCO_BASE)/Data/SQLParser $(POCO_BASE)/Data/SQLParser/src endif target = PocoDataSQLite diff --git a/Data/SQLite/SQLite.progen b/Data/SQLite/SQLite.progen index aae7329fa..5d14b0d5b 100644 --- a/Data/SQLite/SQLite.progen +++ b/Data/SQLite/SQLite.progen @@ -7,7 +7,7 @@ vc.project.outdir = ${vc.project.pocobase} vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Data\\include;..\\..\\Data\\src +vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Data\\include;..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src vc.project.compiler.defines = SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} diff --git a/Data/SQLite/SQLite_VS90.vcproj b/Data/SQLite/SQLite_VS90.vcproj index 10d03ec23..0f7bd0856 100644 --- a/Data/SQLite/SQLite_VS90.vcproj +++ b/Data/SQLite/SQLite_VS90.vcproj @@ -42,7 +42,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS" StringPooling="true" MinimalRebuild="true" @@ -134,7 +134,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS" StringPooling="true" RuntimeLibrary="2" @@ -221,7 +221,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED" StringPooling="true" MinimalRebuild="true" @@ -298,7 +298,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED" StringPooling="true" RuntimeLibrary="0" @@ -368,7 +368,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED" StringPooling="true" MinimalRebuild="true" @@ -445,7 +445,7 @@ EnableIntrinsicFunctions="true" FavorSizeOrSpeed="1" OmitFramePointers="true" - AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src" + AdditionalIncludeDirectories=".\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src" PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED" StringPooling="true" RuntimeLibrary="2" diff --git a/Data/SQLite/SQLite_vs160.vcxproj b/Data/SQLite/SQLite_vs160.vcxproj index a3451a702..3d4e0b826 100644 --- a/Data/SQLite/SQLite_vs160.vcxproj +++ b/Data/SQLite/SQLite_vs160.vcxproj @@ -227,7 +227,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -261,7 +261,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -291,7 +291,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -319,7 +319,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreaded @@ -341,7 +341,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -369,7 +369,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -392,7 +392,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -426,7 +426,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -456,7 +456,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -484,7 +484,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreaded @@ -506,7 +506,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -534,7 +534,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/SQLite/SQLite_vs170.vcxproj b/Data/SQLite/SQLite_vs170.vcxproj index d4c542876..ea143bb80 100644 --- a/Data/SQLite/SQLite_vs170.vcxproj +++ b/Data/SQLite/SQLite_vs170.vcxproj @@ -331,7 +331,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -368,7 +368,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -401,7 +401,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -431,7 +431,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreaded @@ -456,7 +456,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -486,7 +486,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -511,7 +511,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -548,7 +548,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -581,7 +581,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -611,7 +611,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreaded @@ -636,7 +636,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -666,7 +666,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -691,7 +691,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -728,7 +728,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -761,7 +761,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -791,7 +791,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreaded @@ -816,7 +816,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -846,7 +846,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/SQLite/testsuite/Makefile b/Data/SQLite/testsuite/Makefile index 5f8fcad7c..58ab790a1 100644 --- a/Data/SQLite/testsuite/Makefile +++ b/Data/SQLite/testsuite/Makefile @@ -10,7 +10,7 @@ objects = SQLiteTestSuite Driver \ SQLiteTest ifndef POCO_DATA_NO_SQL_PARSER - target_includes = $(POCO_BASE)/Data/src + target_includes = $(POCO_BASE)/Data/SQLParser $(POCO_BASE)/Data/SQLParser/src endif target = testrunner diff --git a/Data/SQLite/testsuite/TestSuite.progen b/Data/SQLite/testsuite/TestSuite.progen index c0784b935..43c1986d4 100644 --- a/Data/SQLite/testsuite/TestSuite.progen +++ b/Data/SQLite/testsuite/TestSuite.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj -vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src vc.project.linker.dependencies = iphlpapi.lib diff --git a/Data/SQLite/testsuite/TestSuite_VS90.vcproj b/Data/SQLite/testsuite/TestSuite_VS90.vcproj index af17fce99..76508a1c0 100644 --- a/Data/SQLite/testsuite/TestSuite_VS90.vcproj +++ b/Data/SQLite/testsuite/TestSuite_VS90.vcproj @@ -32,7 +32,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -268,7 +268,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -296,7 +296,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -329,7 +329,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -357,7 +357,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -390,7 +390,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -418,7 +418,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -451,7 +451,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -479,7 +479,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -512,7 +512,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -540,7 +540,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -573,7 +573,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/SQLite/testsuite/TestSuite_vs170.vcxproj b/Data/SQLite/testsuite/TestSuite_vs170.vcxproj index b9f742330..401b89f37 100644 --- a/Data/SQLite/testsuite/TestSuite_vs170.vcxproj +++ b/Data/SQLite/testsuite/TestSuite_vs170.vcxproj @@ -343,7 +343,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -379,7 +379,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -410,7 +410,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -446,7 +446,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -477,7 +477,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -513,7 +513,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -544,7 +544,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -580,7 +580,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -611,7 +611,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -647,7 +647,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -678,7 +678,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -714,7 +714,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -745,7 +745,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -781,7 +781,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -812,7 +812,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -848,7 +848,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -879,7 +879,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -915,7 +915,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/extradirs b/Data/extradirs new file mode 100644 index 000000000..e27d52a22 --- /dev/null +++ b/Data/extradirs @@ -0,0 +1 @@ +SQLParser diff --git a/Data/include/Poco/Data/SQLParser.h b/Data/include/Poco/Data/SQLParser.h index f86729d6b..5d4fd42d6 100644 --- a/Data/include/Poco/Data/SQLParser.h +++ b/Data/include/Poco/Data/SQLParser.h @@ -23,9 +23,9 @@ #ifndef POCO_DATA_NO_SQL_PARSER -#include "sql-parser/src/SQLParser.h" -#include "sql-parser/src/SQLParserResult.h" -#include "sql-parser/src/util/sqlhelper.h" +#include "src/SQLParser.h" +#include "SQLParserResult.h" +#include "util/sqlhelper.h" namespace Poco { diff --git a/Data/include/Poco/Data/Statement.h b/Data/include/Poco/Data/Statement.h index 7aeba69b3..1b300e91f 100644 --- a/Data/include/Poco/Data/Statement.h +++ b/Data/include/Poco/Data/Statement.h @@ -24,7 +24,7 @@ #include "Poco/Data/Range.h" #include "Poco/Data/Bulk.h" #include "Poco/Data/Row.h" -#include "Poco/Data/SQLParser.h" +#include "SQLParser.h" #include "Poco/Data/SimpleRowFormatter.h" #include "Poco/SharedPtr.h" #include "Poco/Mutex.h" diff --git a/Data/samples/Binding/Binding.progen b/Data/samples/Binding/Binding.progen index a3dd5dfdd..3d17f1e88 100644 --- a/Data/samples/Binding/Binding.progen +++ b/Data/samples/Binding/Binding.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src;..\\..\\..\\Data\\SQLite\\include vc.project.linker.dependencies = iphlpapi.lib diff --git a/Data/samples/Binding/Binding_vs160.vcxproj b/Data/samples/Binding/Binding_vs160.vcxproj index feb0a75d4..5f63a84fe 100644 --- a/Data/samples/Binding/Binding_vs160.vcxproj +++ b/Data/samples/Binding/Binding_vs160.vcxproj @@ -235,7 +235,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -268,7 +268,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -296,7 +296,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -329,7 +329,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -357,7 +357,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -390,7 +390,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -418,7 +418,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -451,7 +451,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -479,7 +479,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -512,7 +512,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -540,7 +540,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -573,7 +573,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/samples/Binding/Binding_vs170.vcxproj b/Data/samples/Binding/Binding_vs170.vcxproj index 9a6fd0337..bd6a2d007 100644 --- a/Data/samples/Binding/Binding_vs170.vcxproj +++ b/Data/samples/Binding/Binding_vs170.vcxproj @@ -343,7 +343,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -379,7 +379,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -410,7 +410,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -446,7 +446,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -477,7 +477,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -513,7 +513,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -544,7 +544,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -580,7 +580,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -611,7 +611,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -647,7 +647,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -678,7 +678,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -714,7 +714,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -745,7 +745,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -781,7 +781,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -812,7 +812,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -848,7 +848,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -879,7 +879,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -915,7 +915,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/samples/RecordSet/RecordSet.progen b/Data/samples/RecordSet/RecordSet.progen index a3dd5dfdd..3d17f1e88 100644 --- a/Data/samples/RecordSet/RecordSet.progen +++ b/Data/samples/RecordSet/RecordSet.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src;..\\..\\..\\Data\\SQLite\\include vc.project.linker.dependencies = iphlpapi.lib diff --git a/Data/samples/RecordSet/RecordSet_vs160.vcxproj b/Data/samples/RecordSet/RecordSet_vs160.vcxproj index 05a06154c..ef1dca08e 100644 --- a/Data/samples/RecordSet/RecordSet_vs160.vcxproj +++ b/Data/samples/RecordSet/RecordSet_vs160.vcxproj @@ -235,7 +235,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -268,7 +268,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -296,7 +296,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -329,7 +329,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -357,7 +357,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -390,7 +390,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -418,7 +418,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -451,7 +451,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -479,7 +479,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -512,7 +512,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -540,7 +540,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -573,7 +573,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/samples/RecordSet/RecordSet_vs170.vcxproj b/Data/samples/RecordSet/RecordSet_vs170.vcxproj index 580f58f9c..08f11314a 100644 --- a/Data/samples/RecordSet/RecordSet_vs170.vcxproj +++ b/Data/samples/RecordSet/RecordSet_vs170.vcxproj @@ -343,7 +343,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -379,7 +379,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -410,7 +410,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -446,7 +446,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -477,7 +477,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -513,7 +513,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -544,7 +544,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -580,7 +580,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -611,7 +611,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -647,7 +647,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -678,7 +678,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -714,7 +714,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -745,7 +745,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -781,7 +781,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -812,7 +812,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -848,7 +848,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -879,7 +879,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -915,7 +915,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/samples/RowFormatter/RowFormatter.progen b/Data/samples/RowFormatter/RowFormatter.progen index a3dd5dfdd..3d17f1e88 100644 --- a/Data/samples/RowFormatter/RowFormatter.progen +++ b/Data/samples/RowFormatter/RowFormatter.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src;..\\..\\..\\Data\\SQLite\\include vc.project.linker.dependencies = iphlpapi.lib diff --git a/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj b/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj index 687b4b249..5e6ad3f2f 100644 --- a/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj +++ b/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj @@ -235,7 +235,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -268,7 +268,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -296,7 +296,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -329,7 +329,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -357,7 +357,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -390,7 +390,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -418,7 +418,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -451,7 +451,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -479,7 +479,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -512,7 +512,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -540,7 +540,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -573,7 +573,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj b/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj index 2517ce024..42112adae 100644 --- a/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj +++ b/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj @@ -343,7 +343,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -379,7 +379,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -410,7 +410,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -446,7 +446,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -477,7 +477,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -513,7 +513,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -544,7 +544,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -580,7 +580,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -611,7 +611,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -647,7 +647,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -678,7 +678,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -714,7 +714,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -745,7 +745,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -781,7 +781,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -812,7 +812,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -848,7 +848,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -879,7 +879,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -915,7 +915,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/samples/Tuple/Tuple.progen b/Data/samples/Tuple/Tuple.progen index a3dd5dfdd..3d17f1e88 100644 --- a/Data/samples/Tuple/Tuple.progen +++ b/Data/samples/Tuple/Tuple.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src;..\\..\\..\\Data\\SQLite\\include vc.project.linker.dependencies = iphlpapi.lib diff --git a/Data/samples/Tuple/Tuple_vs160.vcxproj b/Data/samples/Tuple/Tuple_vs160.vcxproj index ddf3aa8c3..55ddb33b4 100644 --- a/Data/samples/Tuple/Tuple_vs160.vcxproj +++ b/Data/samples/Tuple/Tuple_vs160.vcxproj @@ -235,7 +235,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -268,7 +268,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -296,7 +296,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -329,7 +329,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -357,7 +357,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -390,7 +390,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -418,7 +418,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -451,7 +451,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -479,7 +479,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -512,7 +512,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -540,7 +540,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -573,7 +573,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/samples/Tuple/Tuple_vs170.vcxproj b/Data/samples/Tuple/Tuple_vs170.vcxproj index 91ec3a2a3..32c4718ef 100644 --- a/Data/samples/Tuple/Tuple_vs170.vcxproj +++ b/Data/samples/Tuple/Tuple_vs170.vcxproj @@ -343,7 +343,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -379,7 +379,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -410,7 +410,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -446,7 +446,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -477,7 +477,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -513,7 +513,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -544,7 +544,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -580,7 +580,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -611,7 +611,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -647,7 +647,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -678,7 +678,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -714,7 +714,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -745,7 +745,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -781,7 +781,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -812,7 +812,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -848,7 +848,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -879,7 +879,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -915,7 +915,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/samples/TypeHandler/TypeHandler.progen b/Data/samples/TypeHandler/TypeHandler.progen index 96965a6ce..ca2cc01c4 100644 --- a/Data/samples/TypeHandler/TypeHandler.progen +++ b/Data/samples/TypeHandler/TypeHandler.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src;..\\..\\..\\Data\\SQLite\\include vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj b/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj index 13e837f9d..5be4b88ae 100644 --- a/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj +++ b/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj @@ -235,7 +235,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -268,7 +268,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -296,7 +296,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -329,7 +329,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -357,7 +357,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -390,7 +390,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -418,7 +418,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -451,7 +451,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -479,7 +479,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -512,7 +512,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -540,7 +540,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -573,7 +573,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj b/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj index bbb95405c..c618031dc 100644 --- a/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj +++ b/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj @@ -343,7 +343,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -379,7 +379,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -410,7 +410,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -446,7 +446,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -477,7 +477,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -513,7 +513,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -544,7 +544,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -580,7 +580,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -611,7 +611,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -647,7 +647,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -678,7 +678,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -714,7 +714,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -745,7 +745,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -781,7 +781,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -812,7 +812,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -848,7 +848,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -879,7 +879,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -915,7 +915,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/samples/WebNotifier/WebNotifier.progen b/Data/samples/WebNotifier/WebNotifier.progen index 7d8738bb1..d3a2dbca0 100644 --- a/Data/samples/WebNotifier/WebNotifier.progen +++ b/Data/samples/WebNotifier/WebNotifier.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\src;..\\..\\..\\Data\\SQLite\\include;..\\..\\..\\Net\\include +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src;..\\..\\..\\Data\\SQLite\\include;..\\..\\..\\Net\\include vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib diff --git a/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj b/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj index ae6764c50..33e4a1dc0 100644 --- a/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj +++ b/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj @@ -235,7 +235,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -268,7 +268,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -296,7 +296,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -329,7 +329,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -357,7 +357,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -390,7 +390,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -418,7 +418,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -451,7 +451,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -479,7 +479,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -512,7 +512,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -540,7 +540,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -573,7 +573,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj b/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj index 79b166193..4fd1fc901 100644 --- a/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj +++ b/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj @@ -343,7 +343,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -379,7 +379,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -410,7 +410,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -446,7 +446,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -477,7 +477,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -513,7 +513,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -544,7 +544,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -580,7 +580,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -611,7 +611,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -647,7 +647,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -678,7 +678,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -714,7 +714,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -745,7 +745,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -781,7 +781,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -812,7 +812,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -848,7 +848,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -879,7 +879,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -915,7 +915,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/testsuite/DataTest/DataTest_vs160.vcxproj b/Data/testsuite/DataTest/DataTest_vs160.vcxproj index 47ab9627b..496803f71 100644 --- a/Data/testsuite/DataTest/DataTest_vs160.vcxproj +++ b/Data/testsuite/DataTest/DataTest_vs160.vcxproj @@ -227,7 +227,7 @@ Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -261,7 +261,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -291,7 +291,7 @@ Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -319,7 +319,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -341,7 +341,7 @@ Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -369,7 +369,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -392,7 +392,7 @@ Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -426,7 +426,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -456,7 +456,7 @@ Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -484,7 +484,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -506,7 +506,7 @@ Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -534,7 +534,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/testsuite/DataTest/DataTest_vs170.vcxproj b/Data/testsuite/DataTest/DataTest_vs170.vcxproj index 7f9b4389c..4a0bf04d6 100644 --- a/Data/testsuite/DataTest/DataTest_vs170.vcxproj +++ b/Data/testsuite/DataTest/DataTest_vs170.vcxproj @@ -331,7 +331,7 @@ Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -368,7 +368,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -401,7 +401,7 @@ Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -431,7 +431,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -456,7 +456,7 @@ Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -486,7 +486,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -511,7 +511,7 @@ Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -548,7 +548,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -581,7 +581,7 @@ Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -611,7 +611,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -636,7 +636,7 @@ Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -666,7 +666,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -691,7 +691,7 @@ Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -728,7 +728,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -761,7 +761,7 @@ Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -791,7 +791,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -816,7 +816,7 @@ Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -846,7 +846,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/testsuite/DataTest/Makefile b/Data/testsuite/DataTest/Makefile index 61a309c7b..e84fc2454 100644 --- a/Data/testsuite/DataTest/Makefile +++ b/Data/testsuite/DataTest/Makefile @@ -11,6 +11,6 @@ objects = SQLExecutor target = PocoDataTest target_version = 1 target_libs = PocoData PocoFoundation CppUnit -target_includes = $(POCO_BASE)/Data/src $(POCO_BASE)/Data/testsuite/DataTest/include +target_includes = $(POCO_BASE)/Data/SQLParser $(POCO_BASE)/Data/SQLParser/src $(POCO_BASE)/Data/testsuite/DataTest/include include $(POCO_BASE)/build/rules/lib diff --git a/Data/testsuite/Makefile-testrunner b/Data/testsuite/Makefile-testrunner index 9964afe64..4907edc38 100644 --- a/Data/testsuite/Makefile-testrunner +++ b/Data/testsuite/Makefile-testrunner @@ -21,7 +21,7 @@ objects = DataTestSuite Driver \ target_includes = $(POCO_BASE)/Data/testsuite/include ifndef POCO_DATA_NO_SQL_PARSER objects += SQLParserTest - target_includes += $(POCO_BASE)/Data/src + target_includes += $(POCO_BASE)/Data/SQLParser $(POCO_BASE)/Data/SQLParser/src endif target = testrunner diff --git a/PocoDoc/cfg/mkdoc-poco.xml b/PocoDoc/cfg/mkdoc-poco.xml index 841c4aae3..790ab37c4 100644 --- a/PocoDoc/cfg/mkdoc-poco.xml +++ b/PocoDoc/cfg/mkdoc-poco.xml @@ -7,7 +7,7 @@ ${PocoBuild}/*/include/Poco/*/*/*.h ${PocoBuild}/*/include/Poco/*/*.h ${PocoBuild}/*/*/include/Poco/*/*/*.h - ${PocoBuild}/Data/src/sql-parser/*.h + ${PocoBuild}/Data/SQLParser/*.h *_*.h, diff --git a/build/rules/compile b/build/rules/compile index 5f2b41261..9dbebaa5c 100644 --- a/build/rules/compile +++ b/build/rules/compile @@ -109,7 +109,7 @@ ifndef POCO_DATA_NO_SQL_PARSER # SQL parser sources -SQLDIR = src/sql-parser/src +SQLDIR = SQLParser/src SQLPARSERDIR = $(SQLDIR)/parser SQLSQLDIR = $(SQLDIR)/sql SQLUTILDIR = $(SQLDIR)/util diff --git a/release/script/mkrelease b/release/script/mkrelease index 37a702695..3062b55a2 100755 --- a/release/script/mkrelease +++ b/release/script/mkrelease @@ -395,24 +395,6 @@ distclean: ENDOFSCRIPT -# -# Create Visual Studio 14 build script -# -cat >${target}/build_vs140.cmd <<'ENDOFSCRIPT' -@echo off -buildwin 140 build shared both Win32 samples -ENDOFSCRIPT - - -# -# Create Visual Studio 15 build script -# -cat >${target}/build_vs150.cmd <<'ENDOFSCRIPT' -@echo off -buildwin 150 build shared both Win32 samples -ENDOFSCRIPT - - # # Create Visual Studio 16 build script # From 55fc2d0111f0217c058ef1136d7375238c13e734 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Tue, 13 Feb 2024 14:22:34 +0100 Subject: [PATCH 304/395] fix(ActiveRecord): Makefile #4453 --- ActiveRecord/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ActiveRecord/Makefile b/ActiveRecord/Makefile index 80902c360..02797b518 100644 --- a/ActiveRecord/Makefile +++ b/ActiveRecord/Makefile @@ -9,7 +9,7 @@ include $(POCO_BASE)/build/rules/global objects = Context ActiveRecord IDTraits StatementPlaceholderProvider ifndef POCO_DATA_NO_SQL_PARSER - target_includes = $(POCO_BASE)/Data/src + target_includes += $(POCO_BASE)/Data/SQLParser $(POCO_BASE)/Data/SQLParser/src endif target = PocoActiveRecord From 0088334536a3613ef782ba62adf16e263ca529dd Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Tue, 13 Feb 2024 17:18:00 +0100 Subject: [PATCH 305/395] fix(Data): Make SQLParser internal --- Data/include/Poco/Data/Statement.h | 117 ++-------------------------- Data/src/Statement.cpp | 119 ++++++++++++++++++++++++++++- 2 files changed, 122 insertions(+), 114 deletions(-) diff --git a/Data/include/Poco/Data/Statement.h b/Data/include/Poco/Data/Statement.h index 1b300e91f..e39edc268 100644 --- a/Data/include/Poco/Data/Statement.h +++ b/Data/include/Poco/Data/Statement.h @@ -24,7 +24,6 @@ #include "Poco/Data/Range.h" #include "Poco/Data/Bulk.h" #include "Poco/Data/Row.h" -#include "SQLParser.h" #include "Poco/Data/SimpleRowFormatter.h" #include "Poco/SharedPtr.h" #include "Poco/Mutex.h" @@ -35,9 +34,14 @@ #include +namespace hsql { + class SQLParserResult; +} + namespace Poco { namespace Data { +namespace Parser = hsql; // namespace Poco::Data::Parser class AbstractBinding; class AbstractExtraction; @@ -537,10 +541,10 @@ private: #ifndef POCO_DATA_NO_SQL_PARSER - bool isType(Parser::StatementType type) const; + bool isType(unsigned int type) const; /// Returns true if the statement is of the argument type. - bool hasType(Parser::StatementType type) const; + bool hasType(unsigned int type) const; /// Returns true if the statement is of the argument type. Poco::SharedPtr _pParseResult; @@ -568,113 +572,6 @@ inline std::size_t Statement::subTotalRowCount(int dataSet) const } -inline const std::string& Statement::parseError() -{ -#ifdef POCO_DATA_NO_SQL_PARSER - static std::string empty; - return empty; -#else - return _parseError; -#endif -} - - -inline Optional Statement::isSelect() const -{ -#ifndef POCO_DATA_NO_SQL_PARSER - if (_pImpl->session().shouldParse()) - return isType(Parser::StatementType::kStmtSelect); - else return Optional(); -#else - return Optional(); -#endif -} - - -inline Optional Statement::isInsert() const -{ -#ifndef POCO_DATA_NO_SQL_PARSER - if (_pImpl->session().shouldParse()) - return isType(Parser::StatementType::kStmtInsert); - else return Optional(); -#else - return Optional(); -#endif -} - - -inline Optional Statement::isUpdate() const -{ -#ifndef POCO_DATA_NO_SQL_PARSER - if (_pImpl->session().shouldParse()) - return isType(Parser::StatementType::kStmtUpdate); - else return Optional(); -#else - return Optional(); -#endif -} - - -inline Optional Statement::isDelete() const -{ -#ifndef POCO_DATA_NO_SQL_PARSER - if (_pImpl->session().shouldParse()) - return isType(Parser::StatementType::kStmtDelete); - else return Optional(); -#else - return Optional(); -#endif -} - - -inline Optional Statement::hasSelect() const -{ -#ifndef POCO_DATA_NO_SQL_PARSER - if (_pImpl->session().shouldParse()) - return hasType(Parser::StatementType::kStmtSelect); - else return Optional(); -#else - return Optional(); -#endif -} - - -inline Optional Statement::hasInsert() const -{ -#ifndef POCO_DATA_NO_SQL_PARSER - if (_pImpl->session().shouldParse()) - return hasType(Parser::StatementType::kStmtInsert); - else return Optional(); -#else - return Optional(); -#endif -} - - -inline Optional Statement::hasUpdate() const -{ -#ifndef POCO_DATA_NO_SQL_PARSER - if (_pImpl->session().shouldParse()) - return hasType(Parser::StatementType::kStmtUpdate); - else return Optional(); -#else - return Optional(); -#endif -} - - -inline Optional Statement::hasDelete() const -{ -#ifndef POCO_DATA_NO_SQL_PARSER - if (_pImpl->session().shouldParse()) - return hasType(Parser::StatementType::kStmtDelete); - else return Optional(); -#else - return Optional(); -#endif -} - - namespace Keywords { diff --git a/Data/src/Statement.cpp b/Data/src/Statement.cpp index 29c7e294d..0790e1c19 100644 --- a/Data/src/Statement.cpp +++ b/Data/src/Statement.cpp @@ -12,6 +12,7 @@ // +#include "SQLParser.h" #include "Poco/Data/Statement.h" #include "Poco/Data/DataException.h" #include "Poco/Data/Extraction.h" @@ -193,14 +194,15 @@ Optional Statement::parse() #ifndef POCO_DATA_NO_SQL_PARSER -bool Statement::isType(Parser::StatementType type) const +bool Statement::isType(unsigned int type) const { + const auto st = static_cast(type); std::size_t sz = _pParseResult->size(); if (sz) { for (int i = 0; i < sz; ++i) { - if (_pParseResult->getStatement(i)->type() != type) + if (_pParseResult->getStatement(i)->type() != st) return false; } return true; @@ -209,19 +211,128 @@ bool Statement::isType(Parser::StatementType type) const } -bool Statement::hasType(Parser::StatementType type) const +bool Statement::hasType(unsigned int type) const { + const auto st = static_cast(type); for (int i = 0; i < _pParseResult->size(); ++i) { - if (_pParseResult->getStatement(i)->type() == type) + if (_pParseResult->getStatement(i)->type() == st) return true; } return false; } + #endif // POCO_DATA_NO_SQL_PARSER +const std::string& Statement::parseError() +{ +#ifdef POCO_DATA_NO_SQL_PARSER + static std::string empty; + return empty; +#else + return _parseError; +#endif +} + + +Optional Statement::isSelect() const +{ +#ifndef POCO_DATA_NO_SQL_PARSER + if (_pImpl->session().shouldParse()) + return isType(Parser::StatementType::kStmtSelect); + else return Optional(); +#else + return Optional(); +#endif +} + + +Optional Statement::isInsert() const +{ +#ifndef POCO_DATA_NO_SQL_PARSER + if (_pImpl->session().shouldParse()) + return isType(Parser::StatementType::kStmtInsert); + else return Optional(); +#else + return Optional(); +#endif +} + + +Optional Statement::isUpdate() const +{ +#ifndef POCO_DATA_NO_SQL_PARSER + if (_pImpl->session().shouldParse()) + return isType(Parser::StatementType::kStmtUpdate); + else return Optional(); +#else + return Optional(); +#endif +} + + +Optional Statement::isDelete() const +{ +#ifndef POCO_DATA_NO_SQL_PARSER + if (_pImpl->session().shouldParse()) + return isType(Parser::StatementType::kStmtDelete); + else return Optional(); +#else + return Optional(); +#endif +} + + +Optional Statement::hasSelect() const +{ +#ifndef POCO_DATA_NO_SQL_PARSER + if (_pImpl->session().shouldParse()) + return hasType(Parser::StatementType::kStmtSelect); + else return Optional(); +#else + return Optional(); +#endif +} + + +Optional Statement::hasInsert() const +{ +#ifndef POCO_DATA_NO_SQL_PARSER + if (_pImpl->session().shouldParse()) + return hasType(Parser::StatementType::kStmtInsert); + else return Optional(); +#else + return Optional(); +#endif +} + + +Optional Statement::hasUpdate() const +{ +#ifndef POCO_DATA_NO_SQL_PARSER + if (_pImpl->session().shouldParse()) + return hasType(Parser::StatementType::kStmtUpdate); + else return Optional(); +#else + return Optional(); +#endif +} + + +Optional Statement::hasDelete() const +{ +#ifndef POCO_DATA_NO_SQL_PARSER + if (_pImpl->session().shouldParse()) + return hasType(Parser::StatementType::kStmtDelete); + else return Optional(); +#else + return Optional(); +#endif +} + + void Statement::formatQuery() { if (_arguments.size()) From b82fca8337fe9a57d8e780607578041be12b282b Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Tue, 13 Feb 2024 20:30:36 +0100 Subject: [PATCH 306/395] fix(build): ODBC Makefile and Data libs CmakeLists #4453 --- Data/CMakeLists.txt | 4 ++-- Data/MySQL/CMakeLists.txt | 2 -- Data/ODBC/CMakeLists.txt | 2 -- Data/ODBC/testsuite/Makefile | 1 + Data/PostgreSQL/CMakeLists.txt | 2 -- Data/SQLite/CMakeLists.txt | 2 -- 6 files changed, 3 insertions(+), 10 deletions(-) diff --git a/Data/CMakeLists.txt b/Data/CMakeLists.txt index 64249f75e..f1ff52645 100644 --- a/Data/CMakeLists.txt +++ b/Data/CMakeLists.txt @@ -42,9 +42,9 @@ target_include_directories(Data PUBLIC $ $ + $ + $ $ - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/SQLParser - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/SQLParser/src ) POCO_INSTALL(Data) diff --git a/Data/MySQL/CMakeLists.txt b/Data/MySQL/CMakeLists.txt index dc417632f..0ea8701a8 100644 --- a/Data/MySQL/CMakeLists.txt +++ b/Data/MySQL/CMakeLists.txt @@ -26,8 +26,6 @@ target_include_directories(DataMySQL PUBLIC $ $ - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../SQLParser - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../SQLParser/src ) target_compile_definitions(DataMySQL PUBLIC THREADSAFE NO_TCL) diff --git a/Data/ODBC/CMakeLists.txt b/Data/ODBC/CMakeLists.txt index 38d5b2d2a..8b1028520 100644 --- a/Data/ODBC/CMakeLists.txt +++ b/Data/ODBC/CMakeLists.txt @@ -26,8 +26,6 @@ target_include_directories(DataODBC PUBLIC $ $ - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../SQLParser - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../SQLParser/src ) target_compile_definitions(DataODBC PUBLIC THREADSAFE) diff --git a/Data/ODBC/testsuite/Makefile b/Data/ODBC/testsuite/Makefile index 2a311ad4b..d935264f9 100644 --- a/Data/ODBC/testsuite/Makefile +++ b/Data/ODBC/testsuite/Makefile @@ -37,6 +37,7 @@ endif ifndef POCO_DATA_NO_SQL_PARSER target_includes += $(POCO_BASE)/Data/SQLParser $(POCO_BASE)/Data/SQLParser/src +endif target = testrunner target_version = 1 diff --git a/Data/PostgreSQL/CMakeLists.txt b/Data/PostgreSQL/CMakeLists.txt index 721580886..fcd6a2c4d 100644 --- a/Data/PostgreSQL/CMakeLists.txt +++ b/Data/PostgreSQL/CMakeLists.txt @@ -26,8 +26,6 @@ target_include_directories(DataPostgreSQL PUBLIC $ $ - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../Data/SQLParser - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../Data/SQLParser/src ) POCO_INSTALL(DataPostgreSQL) diff --git a/Data/SQLite/CMakeLists.txt b/Data/SQLite/CMakeLists.txt index e6a008742..263acc1ad 100644 --- a/Data/SQLite/CMakeLists.txt +++ b/Data/SQLite/CMakeLists.txt @@ -40,8 +40,6 @@ target_include_directories(DataSQLite $ $ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../SQLParser - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../SQLParser/src ) if(POCO_UNBUNDLED) From c990b9f890a10c8c428dc9f0f08d5a61d17a5711 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Tue, 13 Feb 2024 23:20:14 +0100 Subject: [PATCH 307/395] fix(build): Data libs CMakeLists #4453 --- Data/CMakeLists.txt | 18 ++++++++++++++---- Data/testsuite/CMakeLists.txt | 7 +++++++ 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/Data/CMakeLists.txt b/Data/CMakeLists.txt index f1ff52645..87f0ee58a 100644 --- a/Data/CMakeLists.txt +++ b/Data/CMakeLists.txt @@ -38,14 +38,24 @@ if (NOT POCO_DATA_NO_SQL_PARSER) target_compile_definitions(Data PUBLIC -DSQLParser_EXPORTS) endif() target_link_libraries(Data PUBLIC Poco::Foundation) -target_include_directories(Data + +if(NOT POCO_DATA_NO_SQL_PARSER) + target_include_directories(Data + PUBLIC + $ + $ + $ + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/SQLParser/src + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/SQLParser + ) +else() + target_include_directories(Data PUBLIC $ $ - $ - $ $ -) + ) +endif() POCO_INSTALL(Data) POCO_GENERATE_PACKAGE(Data) diff --git a/Data/testsuite/CMakeLists.txt b/Data/testsuite/CMakeLists.txt index af3119ef1..79d6e7353 100644 --- a/Data/testsuite/CMakeLists.txt +++ b/Data/testsuite/CMakeLists.txt @@ -28,4 +28,11 @@ else() endif() target_link_libraries(Data-testrunner PUBLIC Poco::DataTest Poco::Data CppUnit) +if(NOT POCO_DATA_NO_SQL_PARSER) + target_include_directories(Data-testrunner + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../SQLParser/src + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../SQLParser + ) +endif() + add_subdirectory(DataTest) From 499a7d35f92d0d488ad2b2a50913f751b3ab9368 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Tue, 13 Feb 2024 23:32:16 +0100 Subject: [PATCH 308/395] fix(build): regenerate VS projects #4453 --- ActiveRecord/ActiveRecord.progen | 2 +- ActiveRecord/ActiveRecord_vs160.vcxproj | 58 +- .../ActiveRecord_vs160.vcxproj.filters | 6 +- ActiveRecord/ActiveRecord_vs170.vcxproj | 36 +- .../ActiveRecord_vs170.vcxproj.filters | 6 +- ActiveRecord/Compiler/Compiler_vs160.vcxproj | 39 +- .../Compiler/Compiler_vs160.vcxproj.filters | 4 +- .../Compiler/Compiler_vs170.vcxproj.filters | 4 +- ActiveRecord/testsuite/TestSuite.progen | 2 +- CppParser/CppParser_vs160.vcxproj | 63 +- CppParser/CppParser_vs160.vcxproj.filters | 18 +- CppParser/CppParser_vs170.vcxproj.filters | 18 +- CppUnit/CppUnit_vs160.vcxproj | 153 ++- CppUnit/CppUnit_vs160.vcxproj.filters | 4 +- CppUnit/CppUnit_vs170.vcxproj.filters | 4 +- Crypto/Crypto_vs160.vcxproj | 77 +- Crypto/Crypto_vs160.vcxproj.filters | 36 +- Crypto/Crypto_vs170.vcxproj.filters | 36 +- Data/Data.progen | 5 +- Data/Data_VS90.vcproj | 70 +- Data/Data_vs160.vcxproj | 348 ++++-- Data/Data_vs160.vcxproj.filters | 42 +- Data/Data_vs170.vcxproj | 136 +-- Data/Data_vs170.vcxproj.filters | 42 +- Data/MySQL/MySQL.progen | 2 +- Data/MySQL/MySQL_vs160.vcxproj | 70 +- Data/MySQL/MySQL_vs170.vcxproj | 36 +- Data/MySQL/testsuite/TestSuite.progen | 2 +- Data/ODBC/ODBC.progen | 2 +- Data/ODBC/ODBC_vs160.vcxproj | 82 +- Data/ODBC/ODBC_vs160.vcxproj.filters | 6 +- Data/ODBC/ODBC_vs170.vcxproj | 36 +- Data/ODBC/ODBC_vs170.vcxproj.filters | 6 +- Data/ODBC/testsuite/TestSuite.progen | 2 +- Data/PostgreSQL/PostgreSQL.progen | 2 +- Data/PostgreSQL/PostgreSQL_vs160.vcxproj | 72 +- Data/PostgreSQL/PostgreSQL_vs170.vcxproj | 36 +- Data/PostgreSQL/testsuite/TestSuite.progen | 2 +- Data/SQLite/SQLite.progen | 2 +- Data/SQLite/SQLite_vs160.vcxproj | 68 +- Data/SQLite/SQLite_vs160.vcxproj.filters | 12 +- Data/SQLite/SQLite_vs170.vcxproj | 36 +- Data/SQLite/SQLite_vs170.vcxproj.filters | 12 +- Data/SQLite/testsuite/TestSuite.progen | 2 +- Data/testsuite/DataTest/DataTest.progen | 6 +- Data/testsuite/TestSuite.progen | 5 +- Data/testsuite/TestSuite_vs170.vcxproj | 36 +- .../testsuite/TestSuite_vs170.vcxproj.filters | 34 +- Encodings/Encodings_vs160.vcxproj | 93 +- Encodings/Encodings_vs160.vcxproj.filters | 6 +- Encodings/Encodings_vs170.vcxproj.filters | 6 +- JSON/JSON_vs160.vcxproj | 67 +- JSON/JSON_vs160.vcxproj.filters | 4 +- JSON/JSON_vs170.vcxproj.filters | 4 +- JWT/JWT_vs160.vcxproj | 49 +- JWT/JWT_vs160.vcxproj.filters | 4 +- JWT/JWT_vs170.vcxproj.filters | 4 +- MongoDB/MongoDB_vs160.vcxproj | 131 ++- MongoDB/MongoDB_vs160.vcxproj.filters | 10 +- MongoDB/MongoDB_vs170.vcxproj.filters | 4 +- Net/Net_vs160.vcxproj | 1037 ++++++++++++----- Net/Net_vs160.vcxproj.filters | 108 +- Net/Net_vs170.vcxproj.filters | 108 +- NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj | 99 +- .../NetSSL_OpenSSL_vs160.vcxproj.filters | 30 +- .../NetSSL_OpenSSL_vs170.vcxproj.filters | 30 +- NetSSL_Win/NetSSL_Win_vs160.vcxproj | 95 +- NetSSL_Win/NetSSL_Win_vs160.vcxproj.filters | 24 +- NetSSL_Win/NetSSL_Win_vs170.vcxproj.filters | 24 +- PDF/PDF_vs160.vcxproj | 241 +++- PDF/PDF_vs160.vcxproj.filters | 24 +- PDF/PDF_vs170.vcxproj.filters | 24 +- .../File2Page/File2Page_vs160.vcxproj | 43 +- .../File2Page/File2Page_vs160.vcxproj.filters | 4 +- .../File2Page/File2Page_vs170.vcxproj.filters | 4 +- PageCompiler/PageCompiler_vs160.vcxproj | 53 +- .../PageCompiler_vs160.vcxproj.filters | 6 +- .../PageCompiler_vs170.vcxproj.filters | 6 +- PocoDoc/PocoDoc_vs160.vcxproj | 45 +- PocoDoc/PocoDoc_vs160.vcxproj.filters | 12 +- PocoDoc/PocoDoc_vs170.vcxproj.filters | 12 +- ProGen/ProGen_vs160.vcxproj | 45 +- ProGen/ProGen_vs160.vcxproj.filters | 6 +- ProGen/ProGen_vs170.vcxproj.filters | 6 +- ProGen/src/ProGen.cpp | 31 +- Prometheus/Prometheus_vs160.vcxproj | 50 + Prometheus/Prometheus_vs160.vcxproj.filters | 6 +- Prometheus/Prometheus_vs170.vcxproj.filters | 6 +- Redis/Redis_vs160.vcxproj | 59 +- Redis/Redis_vs160.vcxproj.filters | 4 +- Redis/Redis_vs170.vcxproj.filters | 4 +- Util/Util_vs160.vcxproj | 103 +- Util/Util_vs160.vcxproj.filters | 36 +- Util/Util_vs170.vcxproj.filters | 36 +- XML/XML_vs160.vcxproj | 193 ++- XML/XML_vs160.vcxproj.filters | 24 +- XML/XML_vs170.vcxproj.filters | 24 +- Zip/Zip_vs160.vcxproj | 663 +---------- Zip/Zip_vs160.vcxproj.filters | 164 +-- Zip/Zip_vs170.vcxproj.filters | 12 +- 100 files changed, 3574 insertions(+), 2087 deletions(-) diff --git a/ActiveRecord/ActiveRecord.progen b/ActiveRecord/ActiveRecord.progen index 3b67b77e8..e824c8096 100644 --- a/ActiveRecord/ActiveRecord.progen +++ b/ActiveRecord/ActiveRecord.progen @@ -7,7 +7,7 @@ vc.project.outdir = ${vc.project.pocobase} vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\Foundation\\include;..\\Data\\include;..\\Data\\SQLParser;..\\Data\\SQLParser\\src +vc.project.compiler.include = ..\\Foundation\\include;..\\Data\\include; vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}Lib_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} diff --git a/ActiveRecord/ActiveRecord_vs160.vcxproj b/ActiveRecord/ActiveRecord_vs160.vcxproj index a3fafa612..ef9e1381c 100644 --- a/ActiveRecord/ActiveRecord_vs160.vcxproj +++ b/ActiveRecord/ActiveRecord_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34322.80 PocoActiveRecordd PocoActiveRecordmdd PocoActiveRecordmtd @@ -227,7 +227,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -241,6 +241,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\bin\PocoActiveRecordd.dll @@ -260,7 +262,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -273,6 +275,8 @@ Default true + stdcpp17 + stdc11 ..\bin\PocoActiveRecord.dll @@ -289,7 +293,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -304,6 +308,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\lib\PocoActiveRecordmtd.lib @@ -316,7 +322,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -329,6 +335,8 @@ Default true + stdcpp17 + stdc11 ..\lib\PocoActiveRecordmt.lib @@ -337,7 +345,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -352,6 +360,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\lib\PocoActiveRecordmdd.lib @@ -364,7 +374,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -378,6 +388,8 @@ Default true + stdcpp17 + stdc11 ..\lib\PocoActiveRecordmd.lib @@ -386,7 +398,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -400,6 +412,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\bin64\PocoActiveRecord64d.dll @@ -419,7 +433,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -432,6 +446,8 @@ Default true + stdcpp17 + stdc11 ..\bin64\PocoActiveRecord64.dll @@ -448,7 +464,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -463,6 +479,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\lib64\PocoActiveRecordmtd.lib @@ -475,7 +493,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -488,6 +506,8 @@ Default true + stdcpp17 + stdc11 ..\lib64\PocoActiveRecordmt.lib @@ -496,7 +516,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -511,6 +531,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\lib64\PocoActiveRecordmdd.lib @@ -523,7 +545,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -536,6 +558,8 @@ Default true + stdcpp17 + stdc11 ..\lib64\PocoActiveRecordmd.lib @@ -552,15 +576,23 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/ActiveRecord/ActiveRecord_vs160.vcxproj.filters b/ActiveRecord/ActiveRecord_vs160.vcxproj.filters index 41f6102fd..510f26c9b 100644 --- a/ActiveRecord/ActiveRecord_vs160.vcxproj.filters +++ b/ActiveRecord/ActiveRecord_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {ebe820d0-5937-490c-8ddc-7dde87f658aa} + {21ea7671-1c32-4a3f-b9f7-6170960ef1ac} - {2d5b0e12-b750-4803-ad74-c9756c2abc98} + {0da9c9e9-91ad-4a2d-bc9d-04cb5b7062ae} - {4a459f4f-d116-4642-ad0c-0966c895a8a2} + {fd4fcc95-c1a1-4535-bc22-58f09ebe8669} diff --git a/ActiveRecord/ActiveRecord_vs170.vcxproj b/ActiveRecord/ActiveRecord_vs170.vcxproj index d6034de72..eb94f51f2 100644 --- a/ActiveRecord/ActiveRecord_vs170.vcxproj +++ b/ActiveRecord/ActiveRecord_vs170.vcxproj @@ -331,7 +331,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -367,7 +367,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -399,7 +399,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -428,7 +428,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -452,7 +452,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -481,7 +481,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -505,7 +505,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -541,7 +541,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -573,7 +573,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -602,7 +602,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -626,7 +626,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -655,7 +655,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -679,7 +679,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -715,7 +715,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;ActiveRecordLib_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -747,7 +747,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -776,7 +776,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -800,7 +800,7 @@ Disabled - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -829,7 +829,7 @@ true Speed true - .\include;..\Foundation\include;..\Data\include;..\Data\SQLParser;..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\Foundation\include;..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/ActiveRecord/ActiveRecord_vs170.vcxproj.filters b/ActiveRecord/ActiveRecord_vs170.vcxproj.filters index 73cd1f48a..f7c416d5f 100644 --- a/ActiveRecord/ActiveRecord_vs170.vcxproj.filters +++ b/ActiveRecord/ActiveRecord_vs170.vcxproj.filters @@ -2,13 +2,13 @@ - {2abfaee0-49a0-4b66-9ad7-04a203cfc8cb} + {432c214a-0240-4551-855e-81f76d8d4e8a} - {70b1a521-93e8-4228-ae59-baa5f0e57675} + {1ecf12a7-37ea-4377-af01-5d99e9bb31bb} - {6b444098-e516-439f-aaf8-266510aa8702} + {14c6f1ce-7977-42bb-a83d-deee9c09a926} diff --git a/ActiveRecord/Compiler/Compiler_vs160.vcxproj b/ActiveRecord/Compiler/Compiler_vs160.vcxproj index ed4c5cad5..3c52b17e3 100644 --- a/ActiveRecord/Compiler/Compiler_vs160.vcxproj +++ b/ActiveRecord/Compiler/Compiler_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 Compiler {84DD1CB5-4735-478A-B48E-5E4858F0E831} Compiler @@ -157,7 +158,7 @@ - <_ProjectFileVersion>16.0.33423.256 + <_ProjectFileVersion>17.0.34322.80 poco-arcd poco-arcd poco-arcd @@ -248,6 +249,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 bin\poco-arcd.exe @@ -279,6 +282,8 @@ Default true + stdcpp17 + stdc11 bin\poco-arc.exe @@ -307,6 +312,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -339,6 +346,8 @@ Default true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -368,6 +377,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -400,6 +411,8 @@ Default true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -429,6 +442,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 bin64\poco-arcd.exe @@ -460,6 +475,8 @@ Default true + stdcpp17 + stdc11 bin64\poco-arc.exe @@ -488,6 +505,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -520,6 +539,8 @@ Default true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -549,6 +570,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -581,6 +604,8 @@ Default true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -596,18 +621,28 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/ActiveRecord/Compiler/Compiler_vs160.vcxproj.filters b/ActiveRecord/Compiler/Compiler_vs160.vcxproj.filters index efd400830..ae3992292 100644 --- a/ActiveRecord/Compiler/Compiler_vs160.vcxproj.filters +++ b/ActiveRecord/Compiler/Compiler_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {7d3940f9-2bc3-4ee8-9b7f-9be99cfc6fe0} + {29e1ed49-5f12-41fa-94f4-8fe6b3ee5954} - {132066fc-e0fc-494b-9d73-30f03c1b4912} + {ba5400bd-3c95-43bb-8daa-39bff07be443} diff --git a/ActiveRecord/Compiler/Compiler_vs170.vcxproj.filters b/ActiveRecord/Compiler/Compiler_vs170.vcxproj.filters index bda25bf21..dfac12b35 100644 --- a/ActiveRecord/Compiler/Compiler_vs170.vcxproj.filters +++ b/ActiveRecord/Compiler/Compiler_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {7f2913e1-102b-4ce6-a4b2-f99c8e3a38cd} + {780c9034-0153-453b-8791-d4659eb8554d} - {9edf2033-52b6-4c16-a062-2b35e3cefb3c} + {c0be2d0e-ae4e-4573-9dcf-dc5821858595} diff --git a/ActiveRecord/testsuite/TestSuite.progen b/ActiveRecord/testsuite/TestSuite.progen index b57b484db..69af87464 100644 --- a/ActiveRecord/testsuite/TestSuite.progen +++ b/ActiveRecord/testsuite/TestSuite.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj -vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Data\\include;..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src; \ +vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Data\\include; \ ..\\..\\Data\\SQLite\\include;..\\..\\ActiveRecord\\include;.\\include diff --git a/CppParser/CppParser_vs160.vcxproj b/CppParser/CppParser_vs160.vcxproj index 76807cef5..f753b86d2 100644 --- a/CppParser/CppParser_vs160.vcxproj +++ b/CppParser/CppParser_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 CppParser {C77B9D92-EC91-11DA-A4CE-005056C00008} CppParser @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34322.80 PocoCppParserd PocoCppParsermdd PocoCppParsermtd @@ -240,6 +241,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\bin\PocoCppParserd.dll @@ -272,6 +275,8 @@ Default true + stdcpp17 + stdc11 ..\bin\PocoCppParser.dll @@ -303,6 +308,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\lib\PocoCppParsermtd.lib @@ -328,6 +335,8 @@ Default true + stdcpp17 + stdc11 ..\lib\PocoCppParsermt.lib @@ -351,6 +360,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\lib\PocoCppParsermdd.lib @@ -377,6 +388,8 @@ Default true + stdcpp17 + stdc11 ..\lib\PocoCppParsermd.lib @@ -399,6 +412,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\bin64\PocoCppParser64d.dll @@ -431,6 +446,8 @@ Default true + stdcpp17 + stdc11 ..\bin64\PocoCppParser64.dll @@ -462,6 +479,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\lib64\PocoCppParsermtd.lib @@ -487,6 +506,8 @@ Default true + stdcpp17 + stdc11 ..\lib64\PocoCppParsermt.lib @@ -510,6 +531,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\lib64\PocoCppParsermdd.lib @@ -535,6 +558,8 @@ Default true + stdcpp17 + stdc11 ..\lib64\PocoCppParsermd.lib @@ -563,54 +588,88 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/CppParser/CppParser_vs160.vcxproj.filters b/CppParser/CppParser_vs160.vcxproj.filters index 91fb4de8d..23993cca8 100644 --- a/CppParser/CppParser_vs160.vcxproj.filters +++ b/CppParser/CppParser_vs160.vcxproj.filters @@ -2,31 +2,31 @@ - {f00d417c-35a7-4c23-ac96-10cb1b6e360b} + {da4186ae-05f3-4abf-9fa2-2386db3876cc} - {2081dcfc-4317-46dd-922b-3da669f141f6} + {4e9b5445-27e0-4fd0-824a-d6355c6724bc} - {11263d64-db92-41af-8537-7bcffd7c48a4} + {b5f7d3f9-a74b-4b59-b455-0d59c6200a98} - {bae4eb2d-e9b4-484f-8e4e-584806b66076} + {eacfeb40-f333-426c-a5a5-c9ab85d209ea} - {e2fe452f-bb77-4c66-935f-b986e86a2c16} + {f3023194-357d-4e15-a227-3099ba997037} - {8f17481b-d798-4186-afd7-9f7e862d9b90} + {a1919762-b8ac-4d28-903d-511854a1a7b1} - {4e9a5cac-8f55-4bfa-a56e-44c33051691d} + {9106be0a-6821-40f4-b460-437e72cbadfe} - {b0800513-9635-4560-891a-ad916ebbe18d} + {906e5fe8-c28f-4c31-9dee-f3f9bcbcde35} - {dd4d9b6c-d070-462f-8408-9a7b3a8c93d3} + {0f617a7a-cf68-4dbd-8de3-7a89a99756e5} diff --git a/CppParser/CppParser_vs170.vcxproj.filters b/CppParser/CppParser_vs170.vcxproj.filters index cd9562122..dad5daabb 100644 --- a/CppParser/CppParser_vs170.vcxproj.filters +++ b/CppParser/CppParser_vs170.vcxproj.filters @@ -2,31 +2,31 @@ - {22a4c008-4a23-452a-a12a-0f6595ae1200} + {04fc4f1d-2274-4331-b73a-983236125a2f} - {2e3628cf-e59b-487e-97d3-46b28b5da8bb} + {48da727d-3925-4adb-8128-8e371873b418} - {0ecc68a2-22c2-49af-a1fa-5a79c770e52c} + {5f42528e-6e34-4c9d-98f4-c561a87e3b98} - {975cd316-19e5-4786-aef8-112ead31879b} + {72e542a3-5ed5-4549-a8f0-84b07832a5d8} - {7f74c210-2a9e-45b7-9fb1-748934d57b22} + {5a1e3cc6-6a35-4b0f-b6d1-987a4516b114} - {f605c7cb-1238-4ceb-a104-d0d0e63dd7b3} + {abed0e17-015a-49f0-acdf-9c68f3a5f7ea} - {315aef06-cd6e-4d01-8d73-5e1dbff488fd} + {206c3f3b-04d2-4444-ab00-5a291ae2500d} - {f5c52f93-e8ca-4de7-b0ce-c7fb7a0ad50f} + {703de990-b5f5-404b-beaa-82c6f1cf3b03} - {2bf7e8a4-f378-436f-b321-4b7ec8b9fe1d} + {a3ca1499-f56c-41b3-bb6d-962492907f62} diff --git a/CppUnit/CppUnit_vs160.vcxproj b/CppUnit/CppUnit_vs160.vcxproj index 7eeafbc10..be3b587e5 100644 --- a/CppUnit/CppUnit_vs160.vcxproj +++ b/CppUnit/CppUnit_vs160.vcxproj @@ -1,5 +1,5 @@ - - + + debug_shared @@ -51,12 +51,13 @@ + 17.0 CppUnit {138BB448-808A-4FE5-A66D-78D1F8770F59} CppUnit Win32Proj - + StaticLibrary MultiByte @@ -117,47 +118,47 @@ MultiByte v142 - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34322.80 CppUnitd CppUnitmdd CppUnitmtd @@ -235,11 +236,13 @@ true true true - + Level3 ProgramDatabase Default true + stdcpp17 + stdc11 ..\bin\CppUnitd.dll @@ -267,11 +270,13 @@ true true true - + Level3 - + Default true + stdcpp17 + stdc11 ..\bin\CppUnit.dll @@ -297,12 +302,14 @@ true true true - + ..\lib\CppUnitmtd.pdb Level3 ProgramDatabase Default true + stdcpp17 + stdc11 ..\lib\CppUnitmtd.lib @@ -323,11 +330,13 @@ true true true - + Level3 - + Default true + stdcpp17 + stdc11 ..\lib\CppUnitmt.lib @@ -345,12 +354,14 @@ true true true - + ..\lib\CppUnitmdd.pdb Level3 ProgramDatabase Default true + stdcpp17 + stdc11 ..\lib\CppUnitmdd.lib @@ -371,12 +382,14 @@ true true true - + ..\lib\CppUnitmd.pdb Level3 - + Default true + stdcpp17 + stdc11 ..\lib\CppUnitmd.lib @@ -394,11 +407,13 @@ true true true - + Level3 ProgramDatabase Default true + stdcpp17 + stdc11 ..\bin64\CppUnit64d.dll @@ -426,11 +441,13 @@ true true true - + Level3 - + Default true + stdcpp17 + stdc11 ..\bin64\CppUnit64.dll @@ -456,12 +473,14 @@ true true true - + ..\lib64\CppUnitmtd.pdb Level3 ProgramDatabase Default true + stdcpp17 + stdc11 ..\lib64\CppUnitmtd.lib @@ -482,11 +501,13 @@ true true true - + Level3 - + Default true + stdcpp17 + stdc11 ..\lib64\CppUnitmt.lib @@ -504,12 +525,14 @@ true true true - + ..\lib64\CppUnitmdd.pdb Level3 ProgramDatabase Default true + stdcpp17 + stdc11 ..\lib64\CppUnitmdd.lib @@ -530,11 +553,13 @@ true true true - + Level3 - + Default true + stdcpp17 + stdc11 ..\lib64\CppUnitmd.lib @@ -543,47 +568,63 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - \ No newline at end of file + + + diff --git a/CppUnit/CppUnit_vs160.vcxproj.filters b/CppUnit/CppUnit_vs160.vcxproj.filters index 008efd977..42f46648b 100644 --- a/CppUnit/CppUnit_vs160.vcxproj.filters +++ b/CppUnit/CppUnit_vs160.vcxproj.filters @@ -2,11 +2,11 @@ - {3abf74aa-bef5-4a86-8520-bb9054dcd773} + {963448fa-022d-4c44-9361-96ba38e785ba} cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - {438273e9-4ad5-423c-a179-b6d52bc048d0} + {c9d5e2ec-2012-46bb-b312-d85c687d338a} *.h diff --git a/CppUnit/CppUnit_vs170.vcxproj.filters b/CppUnit/CppUnit_vs170.vcxproj.filters index f6e5b32f1..f8d4549ec 100644 --- a/CppUnit/CppUnit_vs170.vcxproj.filters +++ b/CppUnit/CppUnit_vs170.vcxproj.filters @@ -2,11 +2,11 @@ - {c81826ae-391d-40d2-ad57-7d8ed59ba862} + {7b3be91a-acf5-44e5-a39b-e503d6ed15c1} cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - {6baa3333-3a56-45c4-a3a4-6774d2121132} + {d207b5fb-1df4-4147-a39c-38e5ca4cf7d1} *.h diff --git a/Crypto/Crypto_vs160.vcxproj b/Crypto/Crypto_vs160.vcxproj index 833edebbb..60d002781 100644 --- a/Crypto/Crypto_vs160.vcxproj +++ b/Crypto/Crypto_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 Crypto {EEEE7259-32E9-4D56-B023-C733940AB2A0} Crypto @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34322.80 PocoCryptod PocoCryptomdd PocoCryptomtd @@ -240,6 +241,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -273,6 +276,8 @@ Default true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -305,6 +310,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\lib\PocoCryptomtd.lib @@ -330,6 +337,8 @@ Default true + stdcpp17 + stdc11 ..\lib\PocoCryptomt.lib @@ -353,6 +362,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\lib\PocoCryptomdd.lib @@ -379,6 +390,8 @@ Default true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) @@ -402,6 +415,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -435,6 +450,8 @@ Default true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -467,6 +484,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\lib64\PocoCryptomtd.lib @@ -492,6 +511,8 @@ Default true + stdcpp17 + stdc11 ..\lib64\PocoCryptomt.lib @@ -515,6 +536,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\lib64\PocoCryptomdd.lib @@ -540,6 +563,8 @@ Default true + stdcpp17 + stdc11 ..\lib64\PocoCryptomd.lib @@ -575,75 +600,123 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Crypto/Crypto_vs160.vcxproj.filters b/Crypto/Crypto_vs160.vcxproj.filters index f50401387..67f495c53 100644 --- a/Crypto/Crypto_vs160.vcxproj.filters +++ b/Crypto/Crypto_vs160.vcxproj.filters @@ -2,58 +2,58 @@ - {3e947499-e07e-49ae-9368-67ebdce7e2d9} + {7e010cae-f020-472a-9415-8e2543ef6627} - {56cd8b79-7799-4706-be30-2f2551da9b06} + {05818654-8d93-468d-8d69-b11c10c0b9ef} - {ba015481-3cdc-4b4e-979f-73af16c9f113} + {19e6289b-8a3c-44f3-ae04-d62f6f3f1b5c} - {29330975-8f63-4932-ae8b-2fc823bb5729} + {ce38da17-a330-495e-9f3e-1b13265936e2} - {0de2d2fa-d52e-4b93-8429-1cc40ac5d89c} + {5822cad2-ab82-412d-abf8-6a3d01487a69} - {73da9949-c7b1-450e-bfca-78e4fbaf01d0} + {7cb7227e-5207-4603-8e22-7bfabcb92419} - {56b61611-cae5-4a96-bec3-89dce21181c0} + {3fe6235b-ca65-4006-bd43-af0ec04bd7f1} - {7c16cc60-1306-47e1-aebf-18a33bbc40d3} + {2918c4ac-4fed-4cf6-b543-ffc4dcfa4b82} - {15ccacc4-e673-4461-979f-862c147d2d0b} + {9e75a9b3-e8d3-48e8-ba2f-58d7bd2a6a9d} - {26ce3381-5dc3-4241-8d27-09e14c4043b6} + {4824d8a4-40bf-4a78-86db-73b06e2deb5e} - {9c578c8e-c65f-4088-9ca6-7609d2e7ebc0} + {07188323-9cd6-44c4-86df-adaa06f7056b} - {418ebbbe-2a7d-4015-adf8-2e86566935a2} + {7c066cff-b417-440f-a723-d0f884234e31} - {0a5aa58f-8179-480c-8805-7b64cb7c282a} + {4131f2ad-b79f-468f-829c-cc6e694b9b09} - {66cbfe0e-ff30-42fe-9736-9fe8afad9463} + {67dfe23d-8945-4c6b-bc99-5c26d1c9e9fb} - {5ef84937-9e64-4f4a-af40-1118ac399fdc} + {96be4aeb-3299-4fb1-a7dd-d788584523b4} - {59903614-4362-40ca-90f9-61958a40bf02} + {6102403a-212b-497e-a639-ad4bbc94103d} - {6f907377-ea23-41d7-8008-63bf458c1a99} + {7f4dc99b-5489-41b5-bc75-5f720932de65} - {e724e3f7-8adc-4738-8be3-fb6edbd76351} + {49649e1a-09cf-45d1-92a9-a3aa6abe43b4} diff --git a/Crypto/Crypto_vs170.vcxproj.filters b/Crypto/Crypto_vs170.vcxproj.filters index 8dd164639..f19c718f4 100644 --- a/Crypto/Crypto_vs170.vcxproj.filters +++ b/Crypto/Crypto_vs170.vcxproj.filters @@ -2,58 +2,58 @@ - {e4c49a27-04d0-4ddc-8795-f17c70e2b7e7} + {3aae1caa-ecff-4053-a81d-977e521e5c87} - {c152364e-4636-4536-9d1f-ceb02dffa264} + {7510a388-fc23-42a7-a7c2-2a3d242c4211} - {9510091e-4f8d-499b-92a6-be553d45316b} + {50900110-d23e-4374-90fd-36e48e4dad99} - {fbfd0876-4670-4def-a529-7cf8923c2961} + {9c32ff7b-5d5d-46a5-922a-5f128ea342dd} - {5b21093d-d3b4-4291-b47f-ece9f024ddd8} + {4fa8cb3b-5503-4f61-acb1-57a11d94e1c5} - {d9423ed6-d9b6-4ecb-b6b8-9322d6c3f995} + {a71b5463-8361-4c0e-bd16-fbfbd4921d2b} - {129cbfa3-8e47-4cdd-a614-6df3e4fb0408} + {6bf61ee7-c315-4e69-a6ab-bfe72f4c1c4c} - {572de956-2613-47de-9629-80a415067e58} + {0b2114f5-7795-4ede-b999-bf08d948e997} - {4b330ecf-7831-4b3f-8e7b-f3b028ba97b0} + {20af4346-6482-44f6-b813-ac75a0ed1820} - {b213e21e-b970-4e41-897f-af8f064c1926} + {2f05d665-ed8c-4bda-b51e-a4c53c266f4e} - {912e16ae-3f1e-4087-8ada-0b1a7d45f6c4} + {d0dac58b-8d74-47b3-80bc-f53c4f42648d} - {dddf49b9-d285-46ad-9aed-0bd977e67caf} + {09b4b347-f640-43f1-a5d8-a6b994207d6f} - {1eb34481-278c-49c3-a4e8-6e6733e0a06d} + {50c81c4e-471d-4104-a199-1b31e2f32df2} - {b181d31d-7aa8-4436-9353-a420cca61fbf} + {317f8dd4-bb89-4cf3-8128-3ff84add12e2} - {12de2d74-9477-43ae-b3d8-4a94001b6eb1} + {f2c312ee-ce71-4529-b3d8-a180bfa87baa} - {c0df7136-ad12-4fdc-bda1-73a46c627a4c} + {d67ab044-b6f3-4600-a233-0f78eb68f451} - {b6cdd172-33a7-448b-85e5-c9982b77c53e} + {149a748e-cdab-4694-ae93-cc8d0f7b6cf0} - {384218a8-372e-47a7-b7f2-2ce7f7be1860} + {27a7c180-9724-416f-a98f-c7ba2fc44b38} diff --git a/Data/Data.progen b/Data/Data.progen index 353b1af13..2333d1f8c 100644 --- a/Data/Data.progen +++ b/Data/Data.progen @@ -8,10 +8,7 @@ vc.project.outdir = ${vc.project.pocobase} vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -# TODO, for now we can just send cpp std via AdditionalOptions (see below) -#vc.project.compiler.std.cpp=stdcpp17 -#vc.project.compiler.std.c=stdc11 -vc.project.compiler.include = .\\src;..\\Foundation\\include +vc.project.compiler.include = .\\SQLParser;.\\SQLParser\\src;..\\Foundation\\include vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS;SQLParser_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} diff --git a/Data/Data_VS90.vcproj b/Data/Data_VS90.vcproj index d873ec40e..233d67d0a 100644 --- a/Data/Data_VS90.vcproj +++ b/Data/Data_VS90.vcproj @@ -872,15 +872,15 @@ Name="Header Files" > @@ -888,11 +888,11 @@ Name="Source Files" > @@ -903,15 +903,15 @@ Name="Header Files" > @@ -919,11 +919,11 @@ Name="Source Files" > @@ -935,75 +935,75 @@ Name="Header Files" > @@ -1011,23 +1011,23 @@ Name="Source Files" > @@ -1039,7 +1039,7 @@ Name="Header Files" > @@ -1047,7 +1047,7 @@ Name="Source Files" > diff --git a/Data/Data_vs160.vcxproj b/Data/Data_vs160.vcxproj index 2bbd24b7f..54f12edf7 100644 --- a/Data/Data_vs160.vcxproj +++ b/Data/Data_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34322.80 PocoDatad PocoDatamdd PocoDatamtd @@ -227,7 +227,7 @@ Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -240,8 +240,10 @@ Level3 ProgramDatabase Default - /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) + /bigobj /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoDatad.dll @@ -261,7 +263,7 @@ true Speed true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -273,8 +275,10 @@ Level3 Default - /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) + /bigobj /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoData.dll @@ -291,7 +295,7 @@ Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -305,8 +309,10 @@ Level3 ProgramDatabase Default - /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) + /bigobj /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoDatamtd.lib @@ -319,7 +325,7 @@ true Speed true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -331,8 +337,10 @@ Level3 Default - /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) + /bigobj /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoDatamt.lib @@ -341,7 +349,7 @@ Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -355,8 +363,10 @@ Level3 ProgramDatabase Default - /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) + /bigobj /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoDatamdd.lib @@ -369,7 +379,7 @@ true Speed true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -382,8 +392,10 @@ Level3 Default - /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) + /bigobj /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoDatamd.lib @@ -392,7 +404,7 @@ Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -405,8 +417,10 @@ Level3 ProgramDatabase Default - /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) + /bigobj /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoData64d.dll @@ -426,7 +440,7 @@ true Speed true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -438,8 +452,10 @@ Level3 Default - /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) + /bigobj /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoData64.dll @@ -456,7 +472,7 @@ Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -470,8 +486,10 @@ Level3 ProgramDatabase Default - /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) + /bigobj /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoDatamtd.lib @@ -484,7 +502,7 @@ true Speed true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -496,8 +514,10 @@ Level3 Default - /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) + /bigobj /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoDatamt.lib @@ -506,7 +526,7 @@ Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -520,8 +540,10 @@ Level3 ProgramDatabase Default - /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) + /bigobj /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoDatamdd.lib @@ -534,7 +556,7 @@ true Speed true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -546,8 +568,10 @@ Level3 Default - /bigobj /std:c++17 /Zc:__cplusplus %(AdditionalOptions) + /bigobj /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoDatamd.lib @@ -633,146 +657,240 @@ - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Data/Data_vs160.vcxproj.filters b/Data/Data_vs160.vcxproj.filters index 7b4064455..db6cccf15 100644 --- a/Data/Data_vs160.vcxproj.filters +++ b/Data/Data_vs160.vcxproj.filters @@ -2,67 +2,67 @@ - {288b7ac9-80e7-4977-a381-cadf008ebcdf} + {f67496db-5e4d-4de1-8a40-22d8a971e70f} - {12c9cc3b-7826-4d45-92e1-dfaf991fa840} + {37d63788-6e99-4bc2-ac7d-df3d21fdeb84} - {9b0e3fe8-e8ce-4391-9560-884f347aa865} + {cab3a63a-af79-4ada-ab81-6a4053f3a571} - {2e63a473-b289-4e92-92cc-e16be11c82d2} + {6f73da86-3251-4ad2-832e-8e00591dbdf0} - {18ea13a6-df50-4dc9-a7fe-926a890660ae} + {464c1180-2454-428e-bc2c-8ff90408a770} - {66c345c5-e7e4-4f9f-b52f-7413988b0d27} + {22e18c41-d9e4-480d-b23b-35c27bccce72} - {0c5d9d8e-0633-457a-91ed-1c3aeea54844} + {5dd49dbc-28da-4f15-86ad-8a6ae9024d27} - {9adf59bc-ea95-4087-bc16-555f8005d8b5} + {85cd8433-468c-4307-9688-26de2fd333d5} - {fe968685-92e8-4ee7-b34c-3b0d38738b4d} + {83340844-8264-4418-873b-72233686c996} - {e19f63d7-be47-4527-b461-2fad09893743} + {5ff3ad8a-0759-40ef-9b8b-77e8257986ff} - {53b9df29-8e80-48a8-820d-1090106ca8b7} + {ee380eb8-ed0b-4479-a464-0ae71875e979} - {400e13b9-2f0b-47d7-9cef-98085da073bb} + {6357bcb3-22ce-4257-911d-026fa251d22b} - {5b82d281-dcdc-4347-b738-349ae56de5ed} + {77a5e5cf-089a-4e1f-ba28-1b7435afc70d} - {a4f1e56c-3574-4ab4-a763-a2ecdb55085a} + {68edda08-bb81-4420-bc73-7d1d7ed4aedb} - {bd87f7db-3601-4147-9364-b8f2a7405480} + {14d3b337-a039-4384-996d-832688c38750} - {d71eb285-47d3-47af-97a9-eedcdc0a8293} + {fb2d5165-8bce-4130-9875-76d78fbe6077} - {de71c098-5b96-428d-b141-1c732e265a84} + {117a3df6-f433-4bfb-9d06-91c2eef96d17} - {f726cbf2-abf6-4b07-9db2-c68d87d7f66d} + {c9eddd0e-0d4a-43b8-8d64-ac42a5071b75} - {04cbb57c-8da3-490b-b7b9-08fc95bb8b1f} + {fffffe76-6e5a-4c56-8490-7b6572aeb408} - {de7a4819-b822-4c31-9668-ba871e59ba73} + {575753d6-b376-4dc1-ab7a-08f2194ff1a1} - {a983f5f7-627c-43e2-ad22-62bdc4eade93} + {92c18071-c3bf-4f6d-90fd-69cfd09579a5} diff --git a/Data/Data_vs170.vcxproj b/Data/Data_vs170.vcxproj index 4db9f9293..0cc1814d6 100644 --- a/Data/Data_vs170.vcxproj +++ b/Data/Data_vs170.vcxproj @@ -331,7 +331,7 @@ Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -368,7 +368,7 @@ true Speed true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -401,7 +401,7 @@ Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -431,7 +431,7 @@ true Speed true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -456,7 +456,7 @@ Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -486,7 +486,7 @@ true Speed true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -511,7 +511,7 @@ Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -548,7 +548,7 @@ true Speed true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -581,7 +581,7 @@ Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -611,7 +611,7 @@ true Speed true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -636,7 +636,7 @@ Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -666,7 +666,7 @@ true Speed true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -691,7 +691,7 @@ Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -728,7 +728,7 @@ true Speed true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;Data_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -761,7 +761,7 @@ Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -791,7 +791,7 @@ true Speed true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -816,7 +816,7 @@ Disabled - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -846,7 +846,7 @@ true Speed true - .\include;.\src;..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;.\SQLParser;.\SQLParser\src;..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -948,6 +948,56 @@ + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + true stdcpp17 @@ -1098,56 +1148,6 @@ stdcpp17 stdc11 - - true - stdcpp17 - stdc11 - - - true - stdcpp17 - stdc11 - - - true - stdcpp17 - stdc11 - - - true - stdcpp17 - stdc11 - - - true - stdcpp17 - stdc11 - - - true - stdcpp17 - stdc11 - - - true - stdcpp17 - stdc11 - - - true - stdcpp17 - stdc11 - - - true - stdcpp17 - stdc11 - - - true - stdcpp17 - stdc11 - true stdcpp17 diff --git a/Data/Data_vs170.vcxproj.filters b/Data/Data_vs170.vcxproj.filters index 0c8d1f19d..b49c64254 100644 --- a/Data/Data_vs170.vcxproj.filters +++ b/Data/Data_vs170.vcxproj.filters @@ -2,67 +2,67 @@ - {ed293173-38e4-456c-8b1b-fbb4edb534a2} + {c111f2b8-0fe5-45cf-bcf5-6717f913f4d1} - {09512048-b662-4412-9d66-9278f5127b64} + {a429278e-282a-48ad-a6e9-4673ad994ef6} - {e5a0ae46-4dcb-44ee-ad87-6c29296fdb75} + {34cb5ff3-8959-4b44-b06a-6a371e903043} - {3ab0b097-7c41-423d-a520-9955c13afd07} + {56b9dadb-359a-44e8-af9d-67dd5d8cadd2} - {fb8ac504-99e9-4c9f-acf9-cd7e199ccbb8} + {d775c737-421f-45a3-ba6e-a47034ca0c93} - {96d47a24-bbc7-4503-98f1-722cb7e6c525} + {c282924f-b59d-4fee-b202-c6c567572666} - {722167c1-e2c8-4893-bf49-f06a56e4475a} + {fcca3d29-3bf5-47f1-be8a-2fe1a0773a9e} - {0fd0e46c-2c11-4305-bf67-4e39819f3600} + {ce5fcae6-0135-4453-9d16-acf8ce133fff} - {52fb64cd-2a53-461c-8056-ee3178aac103} + {51152c9c-3e67-47f2-965d-4f8b5528df0f} - {7ba52d24-1fb2-465f-8937-71c5f1c2aeef} + {6886ee17-8a9c-4cf4-820f-cd96ed915c74} - {8d74d8c7-dae7-4a18-858f-09bcf7f09f1b} + {4c76e1c2-dbd6-4090-9c9f-d09fcc8521c4} - {8f9442dc-d276-42ed-829a-3112f876419b} + {85d4c9a3-827b-450b-a4f0-56db8cf5da12} - {57e26b75-95c1-4d32-8239-7a303d573048} + {903ed189-9ddf-44c6-b600-ea212371ea3c} - {f7ab1f90-c32d-4108-9cba-3a380c12af48} + {b2f5f062-3106-4301-8e49-7b242ae66efe} - {70937b86-7f9e-42eb-a1cb-532959b076b3} + {2dda7dbb-8a31-4869-87d3-374c7effd007} - {426b95e7-0f6b-4a2e-8227-5d1f2a96c38b} + {574a99ce-a7ea-4221-bdcb-318456d50f0e} - {59e3d7d8-f310-4e86-a84e-9e5648e238f8} + {e07a89d7-c43c-425f-8bb0-eec2ef4c5763} - {8b87b125-d1e5-4037-85fa-2edd7d77e940} + {c9455486-7d6c-4732-a11f-513a24cb954e} - {307ff9fb-35fa-4c93-a388-e4072672006d} + {6d03dc65-89e5-4dac-a6be-0ad2e761adc1} - {7137d8b1-eeb5-4fee-b080-d7c87dc42a43} + {2fc9ede0-fc29-4e59-ba50-a587575c2cc2} - {55caa527-40a5-4ee1-a9f2-58b13550166f} + {b5c53c80-25ce-4a87-8634-2808040e62ab} diff --git a/Data/MySQL/MySQL.progen b/Data/MySQL/MySQL.progen index 278d9fef7..1eea490ae 100644 --- a/Data/MySQL/MySQL.progen +++ b/Data/MySQL/MySQL.progen @@ -8,7 +8,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ${vc.project.pocobase}\\Foundation\\include; \ - ${vc.project.pocobase}\\Data\\include;${vc.project.pocobase}\\Data\\src;${vc.project.pocobase}\\mysql\\include + ${vc.project.pocobase}\\Data\\include;${vc.project.pocobase}\\mysql\\include vc.project.compiler.defines = THREADSAFE;__LCC__ vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} diff --git a/Data/MySQL/MySQL_vs160.vcxproj b/Data/MySQL/MySQL_vs160.vcxproj index 917d6ddc5..13cd86d03 100644 --- a/Data/MySQL/MySQL_vs160.vcxproj +++ b/Data/MySQL/MySQL_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34322.80 PocoDataMySQLd PocoDataMySQLmdd PocoDataMySQLmtd @@ -227,7 +227,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -241,6 +241,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\..\bin\PocoDataMySQLd.dll @@ -260,7 +262,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -273,6 +275,8 @@ Default true + stdcpp17 + stdc11 ..\..\bin\PocoDataMySQL.dll @@ -289,7 +293,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -304,6 +308,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\..\lib\PocoDataMySQLmtd.lib @@ -316,7 +322,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreaded @@ -329,6 +335,8 @@ Default true + stdcpp17 + stdc11 ..\..\lib\PocoDataMySQLmt.lib @@ -337,7 +345,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -352,6 +360,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\..\lib\PocoDataMySQLmdd.lib @@ -364,7 +374,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -378,6 +388,8 @@ Default true + stdcpp17 + stdc11 ..\..\lib\PocoDataMySQLmd.lib @@ -386,7 +398,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -400,6 +412,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\..\bin64\PocoDataMySQL64d.dll @@ -419,7 +433,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -432,6 +446,8 @@ Default true + stdcpp17 + stdc11 ..\..\bin64\PocoDataMySQL64.dll @@ -448,7 +464,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -463,6 +479,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\..\lib64\PocoDataMySQLmtd.lib @@ -475,7 +493,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreaded @@ -488,6 +506,8 @@ Default true + stdcpp17 + stdc11 ..\..\lib64\PocoDataMySQLmt.lib @@ -496,7 +516,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -511,6 +531,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\..\lib64\PocoDataMySQLmdd.lib @@ -523,7 +545,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -536,6 +558,8 @@ Default true + stdcpp17 + stdc11 ..\..\lib64\PocoDataMySQLmd.lib @@ -544,33 +568,53 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Data/MySQL/MySQL_vs170.vcxproj b/Data/MySQL/MySQL_vs170.vcxproj index c22e865c3..8bd706e34 100644 --- a/Data/MySQL/MySQL_vs170.vcxproj +++ b/Data/MySQL/MySQL_vs170.vcxproj @@ -331,7 +331,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -367,7 +367,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -399,7 +399,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -428,7 +428,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreaded @@ -452,7 +452,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -481,7 +481,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -505,7 +505,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -541,7 +541,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -573,7 +573,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -602,7 +602,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreaded @@ -626,7 +626,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -655,7 +655,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -679,7 +679,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -715,7 +715,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;__LCC__;MySQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -747,7 +747,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -776,7 +776,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreaded @@ -800,7 +800,7 @@ Disabled - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true EnableFastChecks @@ -829,7 +829,7 @@ true Speed true - .\include;..\..\Foundation\include; ..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;..\..\mysql\include;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include; ..\..\Data\include;..\..\mysql\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;__LCC__;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/MySQL/testsuite/TestSuite.progen b/Data/MySQL/testsuite/TestSuite.progen index bce2d53ac..a4fc8c077 100644 --- a/Data/MySQL/testsuite/TestSuite.progen +++ b/Data/MySQL/testsuite/TestSuite.progen @@ -8,5 +8,5 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj mysql = ${vc.project.pocobase}\\mysql vc.project.compiler.include = ${mysql}\\include;${vc.project.pocobase}\\Foundation\\include; \ - ${vc.project.pocobase}\\Data\\include;${vc.project.pocobase}\\Data\\src + ${vc.project.pocobase}\\Data\\include vc.project.linker.dependencies.Win32 = iphlpapi.lib diff --git a/Data/ODBC/ODBC.progen b/Data/ODBC/ODBC.progen index d1b55ed2c..c4f142f67 100644 --- a/Data/ODBC/ODBC.progen +++ b/Data/ODBC/ODBC.progen @@ -7,7 +7,7 @@ vc.project.outdir = ${vc.project.pocobase} vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Data\\include;..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src +vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Data\\include vc.project.compiler.defines = THREADSAFE vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} diff --git a/Data/ODBC/ODBC_vs160.vcxproj b/Data/ODBC/ODBC_vs160.vcxproj index 21922adb1..43d79709b 100644 --- a/Data/ODBC/ODBC_vs160.vcxproj +++ b/Data/ODBC/ODBC_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34322.80 PocoDataODBCd PocoDataODBCmdd PocoDataODBCmtd @@ -227,7 +227,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -241,6 +241,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 odbc32.lib;odbccp32.lib;%(AdditionalDependencies) @@ -261,7 +263,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -274,6 +276,8 @@ Default true + stdcpp17 + stdc11 odbc32.lib;odbccp32.lib;%(AdditionalDependencies) @@ -291,7 +295,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -306,6 +310,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\..\lib\PocoDataODBCmtd.lib @@ -318,7 +324,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreaded @@ -331,6 +337,8 @@ Default true + stdcpp17 + stdc11 ..\..\lib\PocoDataODBCmt.lib @@ -339,7 +347,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -354,6 +362,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\..\lib\PocoDataODBCmdd.lib @@ -366,7 +376,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -380,6 +390,8 @@ Default true + stdcpp17 + stdc11 odbc32.lib;odbccp32.lib;%(AdditionalDependencies) @@ -389,7 +401,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -403,6 +415,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 odbc32.lib;odbccp32.lib;%(AdditionalDependencies) @@ -423,7 +437,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -436,6 +450,8 @@ Default true + stdcpp17 + stdc11 odbc32.lib;odbccp32.lib;%(AdditionalDependencies) @@ -453,7 +469,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -468,6 +484,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\..\lib64\PocoDataODBCmtd.lib @@ -480,7 +498,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreaded @@ -493,6 +511,8 @@ Default true + stdcpp17 + stdc11 ..\..\lib64\PocoDataODBCmt.lib @@ -501,7 +521,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -516,6 +536,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\..\lib64\PocoDataODBCmdd.lib @@ -528,7 +550,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -541,6 +563,8 @@ Default true + stdcpp17 + stdc11 ..\..\lib64\PocoDataODBCmd.lib @@ -571,42 +595,68 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true @@ -622,6 +672,8 @@ true true true + stdcpp17 + stdc11 true @@ -637,9 +689,13 @@ true true true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Data/ODBC/ODBC_vs160.vcxproj.filters b/Data/ODBC/ODBC_vs160.vcxproj.filters index a12b9ed91..e37c36630 100644 --- a/Data/ODBC/ODBC_vs160.vcxproj.filters +++ b/Data/ODBC/ODBC_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {85a70ddf-ffdf-43ff-9d15-7314f24f8119} + {5ddd7ed9-06dd-459c-9bcc-cc4eca9a296c} - {84609c69-4c6b-454f-8d3f-6e76ffe07259} + {902075d0-3792-4698-b78e-b45f13fc3cf0} - {c0f252a5-5fdd-4d18-82d2-c1bf39392bac} + {093cfbf6-c56b-4757-ad24-26d820002cbe} diff --git a/Data/ODBC/ODBC_vs170.vcxproj b/Data/ODBC/ODBC_vs170.vcxproj index bfd3495dd..4e215a5e9 100644 --- a/Data/ODBC/ODBC_vs170.vcxproj +++ b/Data/ODBC/ODBC_vs170.vcxproj @@ -331,7 +331,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -368,7 +368,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -401,7 +401,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -430,7 +430,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreaded @@ -454,7 +454,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -483,7 +483,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -507,7 +507,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -544,7 +544,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -577,7 +577,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -606,7 +606,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreaded @@ -630,7 +630,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -659,7 +659,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -684,7 +684,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -721,7 +721,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;THREADSAFE;ODBC_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -754,7 +754,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -783,7 +783,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreaded @@ -807,7 +807,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true EnableFastChecks @@ -836,7 +836,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;THREADSAFE;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/ODBC/ODBC_vs170.vcxproj.filters b/Data/ODBC/ODBC_vs170.vcxproj.filters index 2a6a08180..5de0c0fe3 100644 --- a/Data/ODBC/ODBC_vs170.vcxproj.filters +++ b/Data/ODBC/ODBC_vs170.vcxproj.filters @@ -2,13 +2,13 @@ - {e7e58a10-6d53-4be9-a342-62628c6feb5f} + {ed003841-e8ed-440a-a5b3-5a9b10309562} - {efd7c933-a42d-4f50-9f6a-c8444bf44c93} + {1b16d4be-a98c-4712-b31e-2aefeb5cf438} - {398266a3-c6d5-4987-8910-a35da55d401e} + {9a908646-f5af-43bf-b294-2628e33b38cd} diff --git a/Data/ODBC/testsuite/TestSuite.progen b/Data/ODBC/testsuite/TestSuite.progen index 2c2d3e34e..66b339f1d 100644 --- a/Data/ODBC/testsuite/TestSuite.progen +++ b/Data/ODBC/testsuite/TestSuite.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj -vc.project.compiler.include = ..\\..\\..\\CppUnit\\include;..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src;..\\..\\..\\Data\\testsuite\\DataTest\\include +vc.project.compiler.include = ..\\..\\..\\CppUnit\\include;..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\testsuite\\DataTest\\include vc.project.linker.dependencies = odbc32.lib odbccp32.lib iphlpapi.lib diff --git a/Data/PostgreSQL/PostgreSQL.progen b/Data/PostgreSQL/PostgreSQL.progen index 02eec0eaa..9a124e9df 100644 --- a/Data/PostgreSQL/PostgreSQL.progen +++ b/Data/PostgreSQL/PostgreSQL.progen @@ -8,7 +8,7 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ${vc.project.pocobase}\\postgresql\\include; \ - ${vc.project.pocobase}\\Foundation\\include;${vc.project.pocobase}\\Data\\include;${vc.project.pocobase}\\Data\\src + ${vc.project.pocobase}\\Foundation\\include;${vc.project.pocobase}\\Data\\include vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} diff --git a/Data/PostgreSQL/PostgreSQL_vs160.vcxproj b/Data/PostgreSQL/PostgreSQL_vs160.vcxproj index bcb42a61d..fd8d0c061 100644 --- a/Data/PostgreSQL/PostgreSQL_vs160.vcxproj +++ b/Data/PostgreSQL/PostgreSQL_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34322.80 PocoDataPostgreSQLd PocoDataPostgreSQLmdd PocoDataPostgreSQLmtd @@ -227,7 +227,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -241,6 +241,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\..\bin\PocoDataPostgreSQLd.dll @@ -260,7 +262,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -273,6 +275,8 @@ Default true + stdcpp17 + stdc11 ..\..\bin\PocoDataPostgreSQL.dll @@ -289,7 +293,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -304,6 +308,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\..\lib\PocoDataPostgreSQLmtd.lib @@ -316,7 +322,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -329,6 +335,8 @@ Default true + stdcpp17 + stdc11 ..\..\lib\PocoDataPostgreSQLmt.lib @@ -337,7 +345,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -352,6 +360,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\..\lib\PocoDataPostgreSQLmdd.lib @@ -364,7 +374,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -378,6 +388,8 @@ Default true + stdcpp17 + stdc11 ..\..\lib\PocoDataPostgreSQLmd.lib @@ -386,7 +398,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -400,6 +412,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\..\bin64\PocoDataPostgreSQL64d.dll @@ -419,7 +433,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -432,6 +446,8 @@ Default true + stdcpp17 + stdc11 ..\..\bin64\PocoDataPostgreSQL64.dll @@ -448,7 +464,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -463,6 +479,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\..\lib64\PocoDataPostgreSQLmtd.lib @@ -475,7 +493,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -488,6 +506,8 @@ Default true + stdcpp17 + stdc11 ..\..\lib64\PocoDataPostgreSQLmt.lib @@ -496,7 +516,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -511,6 +531,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\..\lib64\PocoDataPostgreSQLmdd.lib @@ -523,7 +545,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -536,6 +558,8 @@ Default true + stdcpp17 + stdc11 ..\..\lib64\PocoDataPostgreSQLmd.lib @@ -544,36 +568,58 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Data/PostgreSQL/PostgreSQL_vs170.vcxproj b/Data/PostgreSQL/PostgreSQL_vs170.vcxproj index 464a4d53b..69299df54 100644 --- a/Data/PostgreSQL/PostgreSQL_vs170.vcxproj +++ b/Data/PostgreSQL/PostgreSQL_vs170.vcxproj @@ -331,7 +331,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -367,7 +367,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -399,7 +399,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -428,7 +428,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -452,7 +452,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -481,7 +481,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -505,7 +505,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -541,7 +541,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -573,7 +573,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -602,7 +602,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -626,7 +626,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -655,7 +655,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -679,7 +679,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -715,7 +715,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;PostgreSQL_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -747,7 +747,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -776,7 +776,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -800,7 +800,7 @@ Disabled - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -829,7 +829,7 @@ true Speed true - .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\postgresql\include; ..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/PostgreSQL/testsuite/TestSuite.progen b/Data/PostgreSQL/testsuite/TestSuite.progen index 3e02e5225..cc4c94765 100644 --- a/Data/PostgreSQL/testsuite/TestSuite.progen +++ b/Data/PostgreSQL/testsuite/TestSuite.progen @@ -8,7 +8,7 @@ vc.project.configurations = debug_shared, release_shared, debug_static_mt, relea vc.project.prototype = TestSuite_vs90.vcproj postgresql = ${vc.project.pocobase}\\postgresql vc.project.compiler.include = ${postgresql}\\include;${vc.project.pocobase}\\Foundation\\include; \ - ${vc.project.pocobase}\\Data\\include;${vc.project.pocobase}\\Data\\src + ${vc.project.pocobase}\\Data\\include vc.project.compiler.defines = _CRT_SECURE_NO_WARNINGS vc.project.linker.dependencies = iphlpapi.lib vc.project.linker.dependencies.debug_shared = diff --git a/Data/SQLite/SQLite.progen b/Data/SQLite/SQLite.progen index 5d14b0d5b..48d7f5f4d 100644 --- a/Data/SQLite/SQLite.progen +++ b/Data/SQLite/SQLite.progen @@ -7,7 +7,7 @@ vc.project.outdir = ${vc.project.pocobase} vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Data\\include;..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src +vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Data\\include vc.project.compiler.defines = SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} diff --git a/Data/SQLite/SQLite_vs160.vcxproj b/Data/SQLite/SQLite_vs160.vcxproj index 3d4e0b826..48433d4c1 100644 --- a/Data/SQLite/SQLite_vs160.vcxproj +++ b/Data/SQLite/SQLite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34322.80 PocoDataSQLited PocoDataSQLitemdd PocoDataSQLitemtd @@ -227,7 +227,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -242,6 +242,8 @@ Default 4996;4244;4018;%(DisableSpecificWarnings) true + stdcpp17 + stdc11 ..\..\bin\PocoDataSQLited.dll @@ -261,7 +263,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -275,6 +277,8 @@ Default 4996;4244;4018;%(DisableSpecificWarnings) true + stdcpp17 + stdc11 ..\..\bin\PocoDataSQLite.dll @@ -291,7 +295,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -307,6 +311,8 @@ Default 4996;4244;4018;%(DisableSpecificWarnings) true + stdcpp17 + stdc11 ..\..\lib\PocoDataSQLitemtd.lib @@ -319,7 +325,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreaded @@ -333,6 +339,8 @@ Default 4996;4244;4018;%(DisableSpecificWarnings) true + stdcpp17 + stdc11 ..\..\lib\PocoDataSQLitemt.lib @@ -341,7 +349,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -357,6 +365,8 @@ Default 4996;4244;4018;%(DisableSpecificWarnings) true + stdcpp17 + stdc11 ..\..\lib\PocoDataSQLitemdd.lib @@ -369,7 +379,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -384,6 +394,8 @@ Default 4996;4244;4018;%(DisableSpecificWarnings) true + stdcpp17 + stdc11 ..\..\lib\PocoDataSQLitemd.lib @@ -392,7 +404,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -407,6 +419,8 @@ Default 4996;4244;4018;%(DisableSpecificWarnings) true + stdcpp17 + stdc11 ..\..\bin64\PocoDataSQLite64d.dll @@ -426,7 +440,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -440,6 +454,8 @@ Default 4996;4244;4018;%(DisableSpecificWarnings) true + stdcpp17 + stdc11 ..\..\bin64\PocoDataSQLite64.dll @@ -456,7 +472,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -472,6 +488,8 @@ Default 4996;4244;4018;%(DisableSpecificWarnings) true + stdcpp17 + stdc11 ..\..\lib64\PocoDataSQLitemtd.lib @@ -484,7 +502,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreaded @@ -498,6 +516,8 @@ Default 4996;4244;4018;%(DisableSpecificWarnings) true + stdcpp17 + stdc11 ..\..\lib64\PocoDataSQLitemt.lib @@ -506,7 +526,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -522,6 +542,8 @@ Default 4996;4244;4018;%(DisableSpecificWarnings) true + stdcpp17 + stdc11 ..\..\lib64\PocoDataSQLitemdd.lib @@ -534,7 +556,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -548,6 +570,8 @@ Default 4996;4244;4018;%(DisableSpecificWarnings) true + stdcpp17 + stdc11 ..\..\lib64\PocoDataSQLitemd.lib @@ -568,30 +592,48 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Data/SQLite/SQLite_vs160.vcxproj.filters b/Data/SQLite/SQLite_vs160.vcxproj.filters index 8e7f78c26..dbdc3405b 100644 --- a/Data/SQLite/SQLite_vs160.vcxproj.filters +++ b/Data/SQLite/SQLite_vs160.vcxproj.filters @@ -2,22 +2,22 @@ - {a9c4986e-093e-45c6-9d8e-bb77226b4b7b} + {35ac7a5f-3122-4b02-ba58-890ce6bffd47} - {0e4f061e-d880-4496-bb90-ea6ef99d7b4d} + {feea0252-6fc3-440f-b06d-da54042b86e3} - {aa4f801f-fcaf-44b5-bcb0-3516ffe084ce} + {890e89e4-3c52-4f35-a521-fd5e1c2a12bf} - {54e5ea14-8781-4939-a457-4457a136be3a} + {17d87956-cc8c-491c-846b-95f69c0b995f} - {975d7fb2-b6c5-46c2-8f4f-56629285cfc6} + {4e7eadc1-8dc4-41c8-a9a2-b618af8cfca0} - {71124ce4-c134-4836-a5e8-ecdf3e3a5bfa} + {29293288-da79-409b-8b4f-bcee1bf2e1b3} diff --git a/Data/SQLite/SQLite_vs170.vcxproj b/Data/SQLite/SQLite_vs170.vcxproj index ea143bb80..d81239abd 100644 --- a/Data/SQLite/SQLite_vs170.vcxproj +++ b/Data/SQLite/SQLite_vs170.vcxproj @@ -331,7 +331,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -368,7 +368,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -401,7 +401,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -431,7 +431,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreaded @@ -456,7 +456,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -486,7 +486,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -511,7 +511,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -548,7 +548,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -581,7 +581,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -611,7 +611,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreaded @@ -636,7 +636,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -666,7 +666,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -691,7 +691,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -728,7 +728,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;SQLite_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -761,7 +761,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -791,7 +791,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreaded @@ -816,7 +816,7 @@ Disabled - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true EnableFastChecks @@ -846,7 +846,7 @@ true Speed true - .\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + .\include;..\..\Foundation\include;..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;SQLITE_THREADSAFE=1;SQLITE_ENABLE_FTS3;SQLITE_ENABLE_FTS3_PARENTHESIS;SQLITE_OMIT_UTF16;SQLITE_OMIT_PROGRESS_CALLBACK;SQLITE_OMIT_COMPLETE;SQLITE_OMIT_TCL_VARIABLE;SQLITE_OMIT_DEPRECATED;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/SQLite/SQLite_vs170.vcxproj.filters b/Data/SQLite/SQLite_vs170.vcxproj.filters index 30cb72dd6..6a4ab8b3e 100644 --- a/Data/SQLite/SQLite_vs170.vcxproj.filters +++ b/Data/SQLite/SQLite_vs170.vcxproj.filters @@ -2,22 +2,22 @@ - {1bad0647-a4aa-4822-a8ea-93f788ff7be1} + {cd53f9bd-a54e-471b-baca-7dc9c716d85e} - {b81dd631-b740-450c-8fda-ba9c8d87c466} + {e55c2057-b0a9-40c5-bdab-2a4f4dee0ed4} - {d8fc7394-be23-4595-962f-53b9acdda727} + {00217a54-1806-4de4-8266-1cfbd2981e70} - {52dda208-a7cf-4967-a74f-88b1e0e30026} + {429811b8-9994-460a-af2b-b615a938fa8d} - {f8e8c0dd-45d7-4f06-8814-ccec0b5d03c6} + {beefb226-4ea2-4e1a-a948-8c03473ce75a} - {4aa8c8c7-825e-46aa-8e36-59985cef50b2} + {a3482cc4-c21d-40bd-9f65-e1678f03aeb9} diff --git a/Data/SQLite/testsuite/TestSuite.progen b/Data/SQLite/testsuite/TestSuite.progen index 43c1986d4..a156305a6 100644 --- a/Data/SQLite/testsuite/TestSuite.progen +++ b/Data/SQLite/testsuite/TestSuite.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj -vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include vc.project.linker.dependencies = iphlpapi.lib diff --git a/Data/testsuite/DataTest/DataTest.progen b/Data/testsuite/DataTest/DataTest.progen index a59d85262..4afcf6f09 100644 --- a/Data/testsuite/DataTest/DataTest.progen +++ b/Data/testsuite/DataTest/DataTest.progen @@ -8,10 +8,8 @@ vc.project.outdir = ${vc.project.pocobase} vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj -# TODO, for now we can just send cpp std via AdditionalOptions (see below) -#vc.project.compiler.std.cpp=stdcpp17 -#vc.project.compiler.std.c=stdc11 -vc.project.compiler.include = .\\src;${vc.project.pocobase}\\CppUnit\\include;${vc.project.pocobase}\\Data\\include;${vc.project.pocobase}\\Data\\src;${vc.project.pocobase}\\Foundation\\include +vc.project.compiler.include = ${vc.project.pocobase}\\SQLParser;${vc.project.pocobase}\\SQLParser\\src;${vc.project.pocobase}\\CppUnit\\include;\ +${vc.project.pocobase}\\Data\\include;${vc.project.pocobase}\\Data\\src;${vc.project.pocobase}\\Foundation\\include vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS;SQLParser_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} diff --git a/Data/testsuite/TestSuite.progen b/Data/testsuite/TestSuite.progen index bea49bc18..e5e1533da 100644 --- a/Data/testsuite/TestSuite.progen +++ b/Data/testsuite/TestSuite.progen @@ -6,9 +6,6 @@ vc.project.pocobase = ..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj -# TODO, for now we can just send cpp std via AdditionalOptions (see below) -#vc.project.compiler.std.cpp=stdcpp17 -#vc.project.compiler.std.c=stdc11 vc.project.compiler.additionalOptions = /Zc:__cplusplus -vc.project.compiler.include = ..\\src;..\\..\\Foundation\\include +vc.project.compiler.include = ..\\SqlParser;..\\SqlParser\\src;..\\..\\Foundation\\include vc.project.linker.dependencies.Win32 = iphlpapi.lib diff --git a/Data/testsuite/TestSuite_vs170.vcxproj b/Data/testsuite/TestSuite_vs170.vcxproj index 84b9b1a53..498f42277 100644 --- a/Data/testsuite/TestSuite_vs170.vcxproj +++ b/Data/testsuite/TestSuite_vs170.vcxproj @@ -343,7 +343,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -380,7 +380,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -412,7 +412,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -449,7 +449,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -481,7 +481,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -518,7 +518,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -550,7 +550,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -587,7 +587,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -619,7 +619,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -656,7 +656,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -688,7 +688,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -725,7 +725,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -757,7 +757,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -794,7 +794,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -826,7 +826,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -863,7 +863,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -895,7 +895,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -932,7 +932,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/testsuite/TestSuite_vs170.vcxproj.filters b/Data/testsuite/TestSuite_vs170.vcxproj.filters index b4898c2c6..9c98b1403 100644 --- a/Data/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Data/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,55 +2,55 @@ - {eb163d66-4f6f-42de-a04e-52e38dfb9225} + {2d95d7a3-3de5-4536-b35d-73126427acde} - {b463247e-94f4-43c7-872f-7668fbd733b8} + {1be5b99c-df18-4cf6-864c-4dfff3baace1} - {da33cba1-cbb5-4ba3-ab34-85e43ab42f82} + {dac6e4c4-bf63-44b7-a361-e52b028d8729} - {ef265d31-0949-467d-973a-c1f09e433897} + {41739753-7509-4581-bc29-dcbd1d2c2b6d} - {3d13feb6-806a-4eb4-8b46-c355dc1cc571} + {a4d172ec-3e50-4146-8ba6-91b5527eefd0} - {da4e4535-7278-4c9e-b4c0-d056f7e33f27} + {d252092c-e433-431a-9237-88a3f9a0aa92} - {16b4ea46-09ae-4c53-9037-2a7cd06b5296} + {8a7ff23d-a28d-4dd0-afd9-f60b5b8f337a} - {fe4a83c2-964c-4298-99f0-404b648ff97f} + {867d2910-998f-4057-82b4-b65bbcb1b6b9} - {6b1d9cf8-1073-4412-8255-037c48829507} + {5693e2c5-1245-4cbe-953d-57f8e396d0d1} - {8194cc84-8a37-4dd6-94c7-7c469eeb4aa6} + {9b5cdfa0-e245-4da8-b190-6699d839b8b7} - {1cdf3a0d-7bf6-44fd-b651-3e1a4311c6d6} + {9fe6fa0d-437f-4bda-af9a-bcab22e9070e} - {3b4ca634-cf77-419c-8f6b-a7923d3ce3eb} + {1437295f-7705-4bd6-bc74-50811f065598} - {58df62f8-9bfe-4849-9e2e-6888973db2c5} + {5a8b7cd1-b39c-497c-a84f-092ce8a2a7a9} - {06862e3d-b7dc-42fb-a498-cf483fd5235a} + {8f9d6234-d59f-45c5-9272-ee297d9529c6} - {c5a9408f-0a19-400c-a269-129ab41fea51} + {4339971d-89a1-42e5-8572-3c8be078b693} - {f27b7199-f2fa-48be-b1a6-9bf7294ca2d9} + {06452f5d-7f36-4d95-b1de-2c35381751ef} - {9ab4a54c-2ad7-48f7-b476-dee9bb5a27d8} + {12079bde-b58f-46ef-8b78-e9479341c660} diff --git a/Encodings/Encodings_vs160.vcxproj b/Encodings/Encodings_vs160.vcxproj index 8af93886f..6697c495c 100644 --- a/Encodings/Encodings_vs160.vcxproj +++ b/Encodings/Encodings_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 Encodings {D7AAB91A-9AB8-457D-A329-02D1FA47CB7E} Encodings @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34322.80 PocoEncodingsd PocoEncodingsmdd PocoEncodingsmtd @@ -240,6 +241,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\bin\PocoEncodingsd.dll @@ -272,6 +275,8 @@ Default true + stdcpp17 + stdc11 ..\bin\PocoEncodings.dll @@ -303,6 +308,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\lib\PocoEncodingsmtd.lib @@ -328,6 +335,8 @@ Default true + stdcpp17 + stdc11 ..\lib\PocoEncodingsmt.lib @@ -351,6 +360,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\lib\PocoEncodingsmdd.lib @@ -377,6 +388,8 @@ Default true + stdcpp17 + stdc11 ..\lib\PocoEncodingsmd.lib @@ -399,6 +412,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\bin64\PocoEncodings64d.dll @@ -431,6 +446,8 @@ Default true + stdcpp17 + stdc11 ..\bin64\PocoEncodings64.dll @@ -462,6 +479,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\lib64\PocoEncodingsmtd.lib @@ -487,6 +506,8 @@ Default true + stdcpp17 + stdc11 ..\lib64\PocoEncodingsmt.lib @@ -510,6 +531,8 @@ ProgramDatabase Default true + stdcpp17 + stdc11 ..\lib64\PocoEncodingsmdd.lib @@ -535,6 +558,8 @@ Default true + stdcpp17 + stdc11 ..\lib64\PocoEncodingsmd.lib @@ -577,99 +602,163 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Encodings/Encodings_vs160.vcxproj.filters b/Encodings/Encodings_vs160.vcxproj.filters index 19648d734..f12138c59 100644 --- a/Encodings/Encodings_vs160.vcxproj.filters +++ b/Encodings/Encodings_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {55103894-3f7d-468d-8f72-02dfb1f682c4} + {c15768fc-708f-4d0b-a555-4fe5482bc8d4} - {8309e362-b466-4aaf-8e25-bdb584f77382} + {1272131b-56f1-445c-b440-264342815032} - {fbc64e7d-d8ff-43a9-86e1-9193e72d9317} + {a53c22e2-a622-4e4f-9470-7580a30f9415} diff --git a/Encodings/Encodings_vs170.vcxproj.filters b/Encodings/Encodings_vs170.vcxproj.filters index fda1ba6bf..c72befa1f 100644 --- a/Encodings/Encodings_vs170.vcxproj.filters +++ b/Encodings/Encodings_vs170.vcxproj.filters @@ -2,13 +2,13 @@ - {faa93394-b756-435b-9a06-0fed19badbbe} + {5e7cb9a9-a1d1-4be0-825e-5167afe689d7} - {e0d05a7d-2c4d-4f65-85b4-4314086035bf} + {5c9c20dc-87cd-4647-a4ec-cc24e3a1bb11} - {0cc01621-1367-4f74-a521-6bf563c6665a} + {72db566e-b1f8-4622-a480-2ffc9b6c6065} diff --git a/JSON/JSON_vs160.vcxproj b/JSON/JSON_vs160.vcxproj index 82899590c..5a33ed50f 100644 --- a/JSON/JSON_vs160.vcxproj +++ b/JSON/JSON_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 JSON {0E7FE914-0690-3EB4-9119-93A97CC97741} JSON @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34322.80 PocoJSONd PocoJSONmdd PocoJSONmtd @@ -239,7 +240,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoJSONd.dll @@ -271,7 +275,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoJSON.dll @@ -302,7 +309,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoJSONmtd.lib @@ -327,7 +337,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoJSONmt.lib @@ -350,7 +363,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoJSONmdd.lib @@ -376,7 +392,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoJSONmd.lib @@ -398,7 +417,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoJSON64d.dll @@ -430,7 +452,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoJSON64.dll @@ -461,7 +486,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoJSONmtd.lib @@ -486,7 +514,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoJSONmt.lib @@ -509,7 +540,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoJSONmdd.lib @@ -534,7 +568,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoJSONmd.lib @@ -543,24 +580,38 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true @@ -588,21 +639,33 @@ true CompileAsCpp true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/JSON/JSON_vs160.vcxproj.filters b/JSON/JSON_vs160.vcxproj.filters index 208c9ad92..93237343e 100644 --- a/JSON/JSON_vs160.vcxproj.filters +++ b/JSON/JSON_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {e44965d4-fac6-44c5-bd9f-9d53afa5ec72} + {71bcfd62-4793-41c9-8c35-416c2154e8e5} - {7215ea24-3f21-439f-9919-0366bb01330a} + {9a161e20-adcc-49d6-8149-d8bae41992e0} diff --git a/JSON/JSON_vs170.vcxproj.filters b/JSON/JSON_vs170.vcxproj.filters index de3ef1a5d..21d18d54c 100644 --- a/JSON/JSON_vs170.vcxproj.filters +++ b/JSON/JSON_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {b4ca54b7-8995-4245-84eb-fd8649736ca6} + {0d04a5d6-9439-4b50-8b1a-23f14b10b711} - {798deb3f-247e-47f5-ac92-86dd30aaf7a7} + {5618c8ec-9722-4d59-88be-6e79c2061801} diff --git a/JWT/JWT_vs160.vcxproj b/JWT/JWT_vs160.vcxproj index 69601edca..e7413cdd4 100644 --- a/JWT/JWT_vs160.vcxproj +++ b/JWT/JWT_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 JWT {EFE871AE-A00F-4EB5-B816-FA316EAB9DA7} JWT @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34322.80 PocoJWTd PocoJWTmdd PocoJWTmtd @@ -239,7 +240,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoJWTd.dll @@ -271,7 +275,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoJWT.dll @@ -302,7 +309,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoJWTmtd.lib @@ -327,7 +337,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoJWTmt.lib @@ -350,7 +363,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoJWTmdd.lib @@ -376,7 +392,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoJWTmd.lib @@ -398,7 +417,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoJWT64d.dll @@ -430,7 +452,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoJWT64.dll @@ -461,7 +486,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoJWTmtd.lib @@ -486,7 +514,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoJWTmt.lib @@ -509,7 +540,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoJWTmdd.lib @@ -534,7 +568,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoJWTmd.lib @@ -543,15 +580,23 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/JWT/JWT_vs160.vcxproj.filters b/JWT/JWT_vs160.vcxproj.filters index 4c76c14dc..a8eb3d5ef 100644 --- a/JWT/JWT_vs160.vcxproj.filters +++ b/JWT/JWT_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {a66b4ed5-2cd4-4fc0-8ae0-7c8c7b37ff46} + {d85fe858-540b-457d-8e5e-f6a160ed7ab9} - {2493b33c-6121-4b51-b04e-b578582dea8f} + {72ad21f5-ade9-4f75-85ac-6326ff62a53f} diff --git a/JWT/JWT_vs170.vcxproj.filters b/JWT/JWT_vs170.vcxproj.filters index 2d5bd5d83..3581087c2 100644 --- a/JWT/JWT_vs170.vcxproj.filters +++ b/JWT/JWT_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {99ea761a-eb19-49af-aa37-f0c29265845c} + {17f40ad0-87a9-4097-8694-dd74cdb883e4} - {98e7b8ac-808a-458d-83af-ad5de88c01d2} + {e25da310-5bc0-48a8-b315-523b046ef71b} diff --git a/MongoDB/MongoDB_vs160.vcxproj b/MongoDB/MongoDB_vs160.vcxproj index 8a6dfb77c..e9c59eec7 100644 --- a/MongoDB/MongoDB_vs160.vcxproj +++ b/MongoDB/MongoDB_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 MongoDB {4FF2F34B-7F37-3ACD-AFBC-F21D6D426199} MongoDB @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34322.80 PocoMongoDBd PocoMongoDBmdd PocoMongoDBmtd @@ -239,7 +240,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoMongoDBd.dll @@ -271,7 +275,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoMongoDB.dll @@ -302,7 +309,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoMongoDBmtd.lib @@ -327,7 +337,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoMongoDBmt.lib @@ -350,7 +363,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoMongoDBmdd.lib @@ -376,7 +392,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoMongoDBmd.lib @@ -398,7 +417,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoMongoDB64d.dll @@ -430,7 +452,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoMongoDB64.dll @@ -461,7 +486,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoMongoDBmtd.lib @@ -486,7 +514,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoMongoDBmt.lib @@ -509,7 +540,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoMongoDBmdd.lib @@ -534,7 +568,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoMongoDBmd.lib @@ -543,72 +580,118 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true - - - true - - - true - - - true - - - true - - - true - - - true - - - true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 @@ -637,8 +720,6 @@ - - diff --git a/MongoDB/MongoDB_vs160.vcxproj.filters b/MongoDB/MongoDB_vs160.vcxproj.filters index 286317dd7..975fd79cb 100644 --- a/MongoDB/MongoDB_vs160.vcxproj.filters +++ b/MongoDB/MongoDB_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {79291374-e43c-410c-9abb-27856b414425} + {fee64320-b7d4-4848-af58-024236e8152a} - {b5f2e9d3-009b-4027-b9c2-043999b8ec92} + {55eff4b2-68f6-4297-898b-ee3a0106701c} @@ -54,6 +54,12 @@ Source Files + + Source Files + + + Source Files + Source Files diff --git a/MongoDB/MongoDB_vs170.vcxproj.filters b/MongoDB/MongoDB_vs170.vcxproj.filters index f615f265d..021eb9909 100644 --- a/MongoDB/MongoDB_vs170.vcxproj.filters +++ b/MongoDB/MongoDB_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {f5a4eaef-7b91-4fcd-a0cc-abf16751ee24} + {e687701a-4324-4099-a863-e409f4b92b3e} - {e77da2cc-d3b2-48dc-b148-9b2de0c25acc} + {8488969c-4d96-49be-bc25-4263be678ebc} diff --git a/Net/Net_vs160.vcxproj b/Net/Net_vs160.vcxproj index d38ca5890..da3cd636e 100644 --- a/Net/Net_vs160.vcxproj +++ b/Net/Net_vs160.vcxproj @@ -1,5 +1,5 @@ - - + + debug_shared @@ -51,115 +51,126 @@ + 17.0 Net {B057A1FE-09F7-465E-B8B5-E1B659051D76} Net Win32Proj - 10.0 - + StaticLibrary - v142 MultiByte + v142 StaticLibrary - v142 MultiByte + v142 StaticLibrary - v142 MultiByte + v142 StaticLibrary - v142 MultiByte + v142 DynamicLibrary - v142 MultiByte + v142 DynamicLibrary - v142 MultiByte + v142 StaticLibrary - v142 MultiByte + v142 StaticLibrary - v142 MultiByte + v142 StaticLibrary - v142 MultiByte + v142 StaticLibrary - v142 MultiByte + v142 DynamicLibrary - v142 MultiByte + v142 DynamicLibrary - v142 MultiByte + v142 - - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - <_ProjectFileVersion>16.0.32602.291 + <_ProjectFileVersion>17.0.34322.80 + PocoNetd + PocoNetmdd + PocoNetmtd + PocoNet + PocoNetmd + PocoNetmt + PocoNet64d + PocoNetmdd + PocoNetmtd + PocoNet64 + PocoNetmd + PocoNetmt ..\bin\ @@ -191,7 +202,6 @@ ..\bin64\ obj64\Net\$(Configuration)\ true - Poco$(ProjectName)64d ..\bin64\ @@ -201,7 +211,6 @@ ..\lib64\ obj64\Net\$(Configuration)\ - Poco$(ProjectName)64d ..\lib64\ @@ -210,7 +219,6 @@ ..\lib64\ obj64\Net\$(Configuration)\ - Poco$(ProjectName)64d ..\lib64\ @@ -228,11 +236,14 @@ true true true - + Level3 ProgramDatabase Default /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -261,11 +272,14 @@ true true true - + Level3 - + Default /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -292,12 +306,15 @@ true true true - + ..\lib\PocoNetmtd.pdb Level3 ProgramDatabase Default /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 ..\lib\PocoNetmtd.lib @@ -318,11 +335,14 @@ true true true - + Level3 - + Default /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 ..\lib\PocoNetmt.lib @@ -340,12 +360,15 @@ true true true - + ..\lib\PocoNetmdd.pdb Level3 ProgramDatabase Default /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 ..\lib\PocoNetmdd.lib @@ -366,12 +389,15 @@ true true true - + ..\lib\PocoNetmd.pdb Level3 - + Default /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -390,11 +416,14 @@ true true true - + Level3 ProgramDatabase Default /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -423,11 +452,14 @@ true true true - + Level3 - + Default /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -454,12 +486,15 @@ true true true - + ..\lib64\PocoNetmtd.pdb Level3 ProgramDatabase Default /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 ..\lib64\PocoNetmtd.lib @@ -480,11 +515,14 @@ true true true - + Level3 - + Default /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 ..\lib64\PocoNetmt.lib @@ -502,12 +540,15 @@ true true true - + ..\lib64\PocoNetmdd.pdb Level3 ProgramDatabase Default /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 ..\lib64\PocoNetmdd.lib @@ -528,244 +569,675 @@ true true true - + Level3 - + Default /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 ..\lib64\PocoNetmd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + @@ -779,7 +1251,6 @@ true - - - - \ No newline at end of file + + + diff --git a/Net/Net_vs160.vcxproj.filters b/Net/Net_vs160.vcxproj.filters index 81b1dddee..874e08170 100644 --- a/Net/Net_vs160.vcxproj.filters +++ b/Net/Net_vs160.vcxproj.filters @@ -2,166 +2,166 @@ - {f06d3212-fc62-4709-bd3c-095c79001249} + {1fcf95cc-188a-41b8-b24e-794397285fa5} - {af806f33-c17e-4d85-babf-da17a499bd65} + {2d882d99-e40a-4396-9cce-4f8aaf342e1e} - {e057e5ff-35f6-4380-ab7a-cbbefd0da9cb} + {eb1dcb08-be2b-41fd-96e4-acb942c6b460} - {5563ebfe-5bac-419b-8894-4a66e06e1f4f} + {b2d363d9-43eb-4ba1-8f72-875e7bab5a05} - {7dedb440-dfed-4bc6-8fea-5c9f117c3808} + {9aa6756c-2b5a-4ea2-9633-a5c9cba8c8b4} - {d9805cd8-c8cf-448c-a017-7c55912e1b41} + {0da8dac7-4b24-4bc2-b5b2-d1553f8e7ecf} - {1c467b86-e839-465d-9623-a58c17f63f0d} + {942984c9-ebfb-4502-962c-e3f3d9ea58b9} - {1f28a347-0b31-41d0-85c5-0bee09d6d93c} + {06a33e9b-deb2-4d14-90b7-9d9666b0a272} - {07d498fd-94fb-4f5f-b152-56778b28c6eb} + {32a3e3bf-c789-4a0b-9f73-18aedb8fcfcf} - {4a1afd42-7315-4316-9dd5-7e8dd04da6e8} + {78ce2f83-3c7d-4176-a2df-5013a0a4536c} - {e03a720b-ab2d-4581-96ff-bd9880c2683f} + {48900136-77ed-415f-80cb-300f3ce80003} - {a0d686c9-9cb1-48c4-916c-1c4748d1c338} + {25c7566e-a315-4156-aa84-b8a8893f08f2} - {a7c09398-1351-415c-805c-c9042cd050aa} + {d1e068f9-546d-4fb4-892a-263881b22596} - {80c1c233-4275-4b11-99b7-09c236b67c59} + {ba666f1f-8ad2-48de-ac58-3f5880b21714} - {d9b0235d-2b80-488f-922f-f6e03db98e84} + {53795782-82d9-42ea-acf2-a08119553b06} - {d4605b22-8a3d-49e6-a706-87bdfbfb2704} + {eb3bd24c-7aa0-4042-b39b-38d5f01bdc26} - {4d91b6a0-8fcf-4494-8916-8b9508111954} + {65f48f86-912c-4488-97f8-4b32ccab8c79} - {41684471-d7fc-407b-8012-00fb92d90eae} + {1a37f639-f157-47c9-b9e0-c183d8357de4} - {cd73de9e-039d-40c8-bb20-51d3313eadfd} + {625137c0-82a0-47ca-8a55-3eecc61bea1f} - {bcc591d8-e663-40d9-8486-a64224ff6dc7} + {11d91a05-5e11-40f5-b5c8-ad3df84635fb} - {8a93a1a5-d2d3-44e7-bd58-e0d7cfe588aa} + {bdccdf62-dce5-4c46-9f80-4596b114dac0} - {47466b38-df77-458e-a23e-e0f2a6f595fc} + {fd75ab60-4cbf-4e43-a00f-8c8cdea685ee} - {55fa85f4-bf7c-48b1-97fd-515c5cd91b5a} + {b7f79795-fbb2-439c-8def-64a7e46bb178} - {d8a5c58a-e68e-4388-b67c-f66434b953dd} + {0e97c997-43f7-4a8b-8d53-5b0d52e7eb41} - {3ac122e8-9cca-4173-a62f-7790e5eb1a88} + {a79f4ef5-ac12-4b7c-9c4a-2d73304bdda9} - {a522f42b-9a2d-4a85-96da-a7577ab68981} + {e16e91d6-4224-484d-95c9-2ad57ca40b79} - {1dda1c74-3efc-4107-ba68-8e69b61bb10e} + {78a9eae0-54b2-449c-81dd-9fd5a16cd1e2} - {c5b0f415-f89a-4a16-b07b-7076ccefdf9d} + {84903cb4-9a9a-4255-bd80-49422998b2c8} - {6fd9d706-01b7-416e-ac7c-5997e052616d} + {47b04c1d-6327-4cc8-840f-3eb9072b2a12} - {53d75179-b04d-459e-a6ec-da60f1e71447} + {ce3da7d9-0751-42cb-be8f-57c11d6fbfc4} - {ea5a77e8-33ce-4075-8624-3d3310f49a95} + {9753e648-5ee9-4146-b77f-0e459591324d} - {7c0617c9-c950-45c2-aba1-0b84a3614792} + {0a93dffd-8c4a-4edb-abb8-a524b9cb40dd} - {39906fc4-02c7-4c8e-9247-06dbc0a391db} + {21410110-b4d6-4520-a6c4-e4bbf960ec04} - {c1be6a77-9aa7-4cd7-b865-7f6f2c0b656f} + {11fbb0f9-2587-4c5b-a898-507e0897d3da} - {86338a33-45fb-40d5-aa59-5163ab671cb9} + {8b1825fa-f807-4a18-92bc-9660c33680fb} - {44c6df98-6750-41ab-ba28-8ca03a558812} + {6116ecaa-8f26-48db-8c24-53d7b8d36b40} - {3c91096b-e7a3-4642-b307-74488aea9ba3} + {b0fd619d-3464-4781-a280-f857f8041ac0} - {38ad1945-f32d-4508-bf73-d9bf2fe10c0e} + {a6fea55d-728d-4a7a-b633-a51157180418} - {47018146-c9ca-4247-a1ff-1e6fb593529f} + {2d28d83b-b58b-41be-832b-e530fdf971e7} - {e8002af3-b8e2-4c07-b346-7a9e65aba60d} + {046f821c-907e-4a8f-a03c-3bfd7872448c} - {64a18bfc-e244-4657-a70c-9c2964bfb74f} + {3923d4a4-5c4c-4a2e-adf0-7ec7eef2dd03} - {fcb6ce80-0f9b-40fb-9a1b-df5fdd4b636b} + {656a3621-b2f5-45b1-b775-faa1a3b67fc9} - {f226bdc0-29fd-451e-ba41-f3f239ee78f7} + {0546832e-b113-458f-9db9-3db9e82fbb41} - {f03d8270-228d-4c30-a6d4-1e7ca0bcdbf0} + {d49b1cd1-508e-4479-ab85-a5ff79a4a8c7} - {46032695-fc6e-4cbd-8426-991a5d36729c} + {b610e037-00fd-4b22-b123-edbd7381029c} - {871f91e0-6027-4a8e-8c5f-8119745e01e0} + {015e1e81-4e41-49e3-98c0-fbdbd8b5cbd2} - {b7e70f4f-7148-4ee1-9466-6ba6cb8d0df1} + {f68ec3df-519c-4f17-ba65-94eb081a3828} - {aeadc00a-2263-47f9-9200-b7ce3da8696c} + {a567ae0c-641a-4a56-8161-f8404caab345} - {7ef2a491-cb68-46af-8727-25ce34dfc75e} + {61c54ff0-49c4-4fb9-9f7c-1f2f3e8bb753} - {0e9eca9c-18bc-4dee-8488-2a5a69390aa2} + {17cd6d4d-6687-40ca-9dac-d36110efcf64} - {0be52802-0903-4bbb-bbd4-9a96bd2b8696} + {2cf2bb9e-c4f6-4aec-8404-a792b1c5674f} - {91c08360-748f-4064-a5b3-51b5e75e533f} + {f5f349da-4441-4f01-9e2c-ee774168e0e3} - {463bba10-3193-4504-a03a-ec82af13e19d} + {0ea8ee82-a76c-4cfd-ad4e-4d570efc8b09} - {b8b0be99-dcda-4b16-bdda-29f96f5d23a9} + {0cfa6ff4-ffbf-4b4a-ba62-6451832772f3} diff --git a/Net/Net_vs170.vcxproj.filters b/Net/Net_vs170.vcxproj.filters index 389f958ab..e5c3c662d 100644 --- a/Net/Net_vs170.vcxproj.filters +++ b/Net/Net_vs170.vcxproj.filters @@ -2,166 +2,166 @@ - {807ff714-e183-4df3-9bcf-999f06de4b55} + {0f393581-fb6c-4d73-b811-19733a904d02} - {3abff93d-1752-42d9-be72-717f4d2eafd3} + {7d92a679-da95-4691-83af-f94a72380c8a} - {2a34e5e5-8e51-4df1-bc1d-72bef47656bd} + {fe6b7b86-3e2e-4ab6-afbf-f8f10456df57} - {39703b0c-6789-4197-9dfc-1b3ec95767d8} + {30fce044-fc3f-4bd9-824c-f412e5558e5b} - {e20271eb-bfc6-4aa3-b84d-e0a892da51ea} + {172b7d94-dc82-4905-8663-8e9206a6d123} - {85f5b169-a46f-4033-9ede-7f21f7f41844} + {4d5c961f-3a8f-42ed-9956-21935625c1d2} - {bb5e4b31-e1e6-4463-96fb-40dad19d890d} + {7eab4806-80e3-409b-8348-2c80be0f3524} - {5561f49c-32c1-4977-b73e-72acc18967c6} + {834ec475-9213-4b7d-b2bf-4766f4246d2c} - {ce1eda6c-182d-42c3-bc6e-f0e5a57bd910} + {cb796d62-dee6-45af-a7c0-5909769eaa5d} - {2a3cf08f-277c-44f4-b281-53a222589521} + {ec0de0ea-eaa7-4f65-8dc6-333ce7fb145c} - {f46011ae-51b0-4c75-94f2-75ce38a9c1f8} + {8323a82c-63f3-4049-b0b7-5e188fed5779} - {8e09bf51-43af-4927-a1f8-35fde03e31f9} + {c03b3059-5722-4ba7-9415-a316eb0b3461} - {a2585b09-952a-4846-85dc-7cef5d8e6316} + {d7e6310c-244d-4193-b178-9eff441ffaa5} - {ed0e694d-c54a-43db-86b1-b9cff1bca9e7} + {ce6e9655-8a4e-4aae-abda-e2ef4938355b} - {e0388610-bb32-4a05-9608-201c166cbd7a} + {ca423d03-073b-42e3-9363-0a065c086b43} - {3422fb59-7aaa-4418-bbd9-e02b6b0a89bf} + {c08c3294-ddc0-4fbc-9ec1-909766304402} - {96093a57-1ffc-45b3-97c7-54117dadf3a8} + {2c77b3b7-677f-4aef-9956-fce03b43fbba} - {42bcafa5-fa8b-43bb-83b2-b78856633103} + {d23f849f-cfb6-4747-aadb-1f6937fcf6ab} - {b6744e60-638e-49f2-82fd-a9c787d5fcb2} + {59c3213c-7398-4922-9786-0e45428cf090} - {0110954e-bf64-49bb-8ff3-3912f8a94ab0} + {57768490-3ad9-4baf-8323-04f5b0b37e1d} - {3326cd87-4134-405b-bc9b-560b18ef8c3d} + {29e894e3-a5c2-4ac0-9462-0f3cbf09a07e} - {c32b81d5-baff-45f9-aee4-3ce46a8491f2} + {88b9a471-6e74-4a30-8ddc-c6843a804fe9} - {9aa25ee3-479c-4bbb-8211-973459fa25e7} + {7bbd272c-91a7-4640-ab2b-5576d0aba1da} - {6cf2a4e9-ae34-432d-9472-50d6f34fa139} + {5b35ce48-7d42-4819-bb14-016c8cd08c1e} - {976530a3-79ab-46b9-877f-27c280f88bf5} + {c548a957-d077-4b1c-b52d-5faa7c116ff1} - {85a66838-8212-4638-b218-788b24cf6214} + {c7db860a-5743-4ec6-8a7a-8ebb4808d4b1} - {62b5a7ad-f566-4507-bcc2-65f553ac3bc2} + {2920f992-d22c-4802-8dfd-8f2a79506722} - {69a92687-4570-4f08-a82c-3e201cbc0df6} + {eadc8668-bfec-4b9a-b92c-1ce73161cf95} - {cf137793-887b-498a-a839-249fe20fa659} + {65e64bf1-3b11-4100-8ea8-2fe84d56c3b8} - {058d16f3-1c77-40f5-bed0-6ee39f6d69fc} + {d5462cff-09df-4808-92bc-54810b8900ae} - {07113e92-8e9d-4fd9-be0e-c8d1ee90b205} + {19667b40-77aa-487f-98e3-2bbee4bf3a48} - {a971c52d-e993-4a15-b467-0e24c9654d0a} + {bd35580c-2467-4381-872d-2efe9bb8722d} - {60591c89-e2f9-4a9d-8680-2bbe7f8166c5} + {24745bd5-81e6-4bb4-b1c6-97bfb3e30ed2} - {fbd4ef96-6fb6-4922-b3a6-6da9bc59fce2} + {06069587-0dde-4d10-bea7-5358b9ffbf97} - {e3c6e815-447f-44ab-bbfc-5971bb96ff53} + {8135fb8b-ef54-41ce-872b-ec34c1984051} - {b7970e66-2cc1-4f85-bcbe-1056f64510c4} + {b5d41b85-1f85-4256-b92e-98d010bef2ac} - {ec1ca999-4ce9-42e1-9462-1a85fe6d3d62} + {f85def03-7da6-4ce8-a11c-47e14067e360} - {c1905a95-4aaf-4a68-9951-d270e7c853fe} + {0f89a979-ac8f-4fd1-b8b6-427b7f2bd4e3} - {b06f281f-d37d-48c4-809a-cfd5475c3b2c} + {854476b2-23e2-43a1-af94-c5710c97bf51} - {2fd44bbc-34d8-445a-8f31-5aec62d27fd2} + {f35fa359-4531-479e-bf41-827bcfed2589} - {8bf4c3b6-de70-4762-b1ae-dcd299834636} + {202f25d8-c8d9-433d-a7a0-18239240101f} - {d851eca3-7aca-47a1-a082-558984aef491} + {8fe2f58d-56bc-4869-9eab-dd65dd0a14ca} - {9a6adb10-3c83-4c3e-a78c-bc842c3e728c} + {f22d77b3-7de7-45d6-9c82-c06f9673b44e} - {96b53209-6c12-41fd-ae10-744a156a0f41} + {9a20a6bc-9f47-4bcb-8b0a-39f524bc8e65} - {e14d9455-731e-4228-84e8-6e421e57e5df} + {1dd41c32-d00e-4c55-8645-c356aca4023b} - {bc05e2c6-07dd-46e4-911f-a83044012e0e} + {9c2d7a98-8398-42fc-a345-5278661dfb5b} - {ab9b6b24-5d69-41bf-ae73-0d081605207b} + {e1146a66-2ef9-4f82-8b0e-e80f2d8c91f9} - {eab59ba2-b014-4aa7-aa87-69e7223c221e} + {13a18171-b410-4c2f-9233-b70f7116faf3} - {4146679a-e4af-4d07-a76c-766c3d9b79f0} + {72cfa271-ffc8-49c9-b46c-34a920c74554} - {f185f3d3-c3bf-4745-9d51-fd14041bcc0e} + {a28c4870-c13c-4494-a100-21eca36e176e} - {d5a327e3-3145-436a-895a-ad2cc062dbf2} + {3eb5680d-25b9-45ee-a927-e0b32e712052} - {c6720f96-b33d-4936-872f-5a2576ea95c5} + {eb39586c-e344-404f-915f-5d65c6e433c7} - {aec6cc22-5394-4555-8474-b3f0c3b26e7f} + {579659c3-dd76-4375-ade8-423ead925e9e} - {7c3b8656-5cb5-4355-b2fc-936bc3c3114c} + {e3865012-ad03-49c4-b49e-0a3a653deaba} diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj index 6ec2e8038..a22ac92f9 100644 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj +++ b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 NetSSL_OpenSSL {5AECC55E-A469-11DA-8DA6-005056C00008} NetSSL_OpenSSL @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34322.80 PocoNetSSLd PocoNetSSLmdd PocoNetSSLmtd @@ -239,7 +240,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -272,7 +276,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -304,7 +311,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoNetSSLmtd.lib @@ -329,7 +339,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoNetSSLmt.lib @@ -352,7 +365,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoNetSSLmdd.lib @@ -378,7 +394,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -401,7 +420,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -434,7 +456,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -466,7 +491,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoNetSSLmtd.lib @@ -491,7 +519,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoNetSSLmt.lib @@ -514,7 +545,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoNetSSLmdd.lib @@ -539,7 +573,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoNetSSLmd.lib @@ -580,90 +617,148 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj.filters b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj.filters index 76bbaa439..924ded6f0 100644 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj.filters +++ b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj.filters @@ -2,49 +2,49 @@ - {a907450a-b497-4e1f-a21c-94a99e197c2d} + {610a5f1f-68a0-4ddf-9c35-77b28ef15e4e} - {93918e37-d134-42d7-b345-2e60ab41e1f9} + {a4341a68-e0f2-48e7-a66e-4f79874c865e} - {0a1bfd58-52a7-4c7d-b55d-4ed2d505056b} + {78cc6d1b-cb4c-4ce3-96e7-fc116d1a7ec7} - {9d771387-7041-4c75-acd4-3ba1a7ee1159} + {0c6e82d8-164a-4809-a20d-94577dc9a882} - {10a12d98-5377-4052-816a-c0b51bedcff2} + {07e9ff52-1e92-4eaf-8de1-d243188d6f63} - {15231b28-83ac-4cf7-9fd5-21e3332f7850} + {f8deb043-cdef-44f0-af20-b75b9c8a2928} - {c9510bba-ee39-4c5b-ab65-f5e007511540} + {8eb83285-e5ba-4416-9c64-67bc91b07bf1} - {313c058b-29ad-47dd-92ca-549a23920413} + {f7ff56d9-9a95-45e4-bba7-52da3d1c558c} - {0fa5153c-28be-4dbc-893f-d9d12147e0f4} + {b5e2ec2a-940a-4681-8a1a-d5053f39aba9} - {1c539a87-3151-4667-a766-db7a0eac4f0d} + {7ed7663a-a345-4f93-b172-8c8152c5e368} - {42493a3a-e40e-4ec0-829f-1b79acbe5156} + {5488d710-d058-4286-aeee-3540354d2111} - {e4e19c42-5e42-4e8e-a19d-bf13dcabdeb1} + {29c556b6-89e5-44b6-8dcc-b34867db82e5} - {ec69f65f-615a-4c71-86b4-9f2a78c07ecf} + {c8fd3ca2-0dbc-4f0d-a9d0-e86ebd762cf9} - {c710847c-203f-4940-901b-942d666967f6} + {ed41ca52-3fb1-447f-a239-5c1abf0fc108} - {24844a06-9949-446f-99cb-bdeed264e2cb} + {d9459a9e-473c-4960-b902-fc4e5c0e6c8c} diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs170.vcxproj.filters b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs170.vcxproj.filters index 06fafc903..6e51be8dd 100644 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs170.vcxproj.filters +++ b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs170.vcxproj.filters @@ -2,49 +2,49 @@ - {73c9f951-b8c8-48ff-8692-75b8265a7b5f} + {80af7578-186a-472c-9dcf-2c2b869bd712} - {a9b8a66c-dcf3-4818-82d3-3ffeacf236bd} + {0275fcb3-6879-4e36-ba4d-18a2338f6799} - {aa25e56e-e2ee-463a-9254-6f72d98055b7} + {dd7dab3b-e2ad-4953-8b75-b828b460ecbc} - {9aa19c54-dabd-40c8-824f-fb5960969e06} + {e3fda0f9-4ace-4eea-ab85-036841e3b0cf} - {339923e3-8ad1-4507-86d5-14fa991a4022} + {d47af968-78e6-4fe4-b8f1-46869242b2a3} - {5fe53210-ac84-4ce4-8207-60f7fe03ee7d} + {3fad2a6f-d754-4a75-bbf9-5b2ec3f036cb} - {3bcd1b3f-9444-4fe2-b0c7-d7ba98084118} + {e1c12303-0459-4ffb-99a8-c0afb1c0b752} - {fb203413-9bd3-4666-9e6b-17bc254946be} + {a1c8a207-f17d-4519-8704-d45e70769064} - {e44aced8-c356-4072-af09-27319a2201b0} + {cab77a5e-f306-40bb-85a3-a20f0824f76b} - {0531bd60-2aa6-40b8-9501-8c63c6d62097} + {a7b6f111-b005-4b35-9c9e-35a3108237b3} - {9b1c9a40-a812-4155-b623-f05ba269c986} + {a7f480c0-5b2c-4100-b4b4-85fbb054cd00} - {03349be0-1387-4a00-9d7f-b5946c882909} + {8923e8f4-edb2-4e1f-a73b-441c6eec3ff7} - {dd130327-f2c2-431e-bb0a-d1d36bf021fe} + {c20480f2-2707-47de-ba34-77ee87349631} - {41fc35d3-b992-4451-a927-4b4f71c34923} + {52583bc6-77ed-4a85-9e76-91620d06c817} - {5d30681e-7d75-4766-8f7c-4143ebdb1320} + {daa86ff8-3c83-4b0f-9a0f-5985b5728dc8} diff --git a/NetSSL_Win/NetSSL_Win_vs160.vcxproj b/NetSSL_Win/NetSSL_Win_vs160.vcxproj index 944b11b4b..1b43b7382 100644 --- a/NetSSL_Win/NetSSL_Win_vs160.vcxproj +++ b/NetSSL_Win/NetSSL_Win_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 NetSSL_Win {A097DC74-A5FC-4A0B-804E-B18892426E77} NetSSL_Win @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34322.80 PocoNetSSLWind PocoNetSSLWinmdd PocoNetSSLWinmtd @@ -239,7 +240,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) @@ -272,7 +276,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) @@ -304,7 +311,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoNetSSLWinmtd.lib @@ -329,7 +339,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoNetSSLWinmt.lib @@ -352,7 +365,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoNetSSLWinmdd.lib @@ -378,7 +394,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) @@ -401,7 +420,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) @@ -434,7 +456,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) @@ -466,7 +491,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoNetSSLWinmtd.lib @@ -491,7 +519,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoNetSSLWinmt.lib @@ -514,7 +545,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoNetSSLWinmdd.lib @@ -539,7 +573,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoNetSSLWinmd.lib @@ -579,84 +616,138 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/NetSSL_Win/NetSSL_Win_vs160.vcxproj.filters b/NetSSL_Win/NetSSL_Win_vs160.vcxproj.filters index d9c4138e1..2a8408ad7 100644 --- a/NetSSL_Win/NetSSL_Win_vs160.vcxproj.filters +++ b/NetSSL_Win/NetSSL_Win_vs160.vcxproj.filters @@ -2,40 +2,40 @@ - {5d488fad-ffca-4cf2-904e-1a2b478d294f} + {110f2918-a919-4da4-b31e-be4a87a446bb} - {dc5e9153-908d-48db-9ee2-714ee8fd5d8c} + {4ad1c5e4-3a8d-4f43-9bf8-8e7855a24eb5} - {e5cbc2f6-8bde-48d0-9105-e3989ec8222e} + {2e3e1710-5bcd-43c8-b61d-3fd8cdcc7ffd} - {41fb1be1-c990-4ab2-b592-85f1c131310e} + {05123d85-0b35-4f00-a833-613c65ef3345} - {bdae5611-47e0-4130-b981-72b2ceaa1747} + {5d92651a-32fd-49db-a974-32d8e0eac658} - {898155d0-76ef-4702-a3ac-54ef6ac50726} + {dfb8aff5-cad3-485c-9038-e98a6075f897} - {61e2c669-1275-434f-8aad-37829260a70b} + {5ac52222-408c-47d7-af2f-ba6e86528d52} - {4a0aea66-ddd1-4d4e-8b5e-14359b38ac1d} + {88113371-e28c-41e6-8a58-530901f0237c} - {45a7079d-1b11-4ddc-8a85-779d650c70c9} + {cc9fe2fc-c263-4242-b689-c0fbd4868ce2} - {f8e95b18-cf2b-466c-bae9-475332aa5f22} + {072785e7-95b8-4476-9083-0b344fee7383} - {004f955a-e4aa-4d63-87f3-d86b036f4486} + {4f786d5b-5e84-4331-9cda-1a0c84e5a2ad} - {365a7e8c-51f6-4711-96ff-a76b0950f560} + {054c947a-5999-42bf-8e65-378b2bb60b97} diff --git a/NetSSL_Win/NetSSL_Win_vs170.vcxproj.filters b/NetSSL_Win/NetSSL_Win_vs170.vcxproj.filters index cdb8e5eec..1ff0dfa09 100644 --- a/NetSSL_Win/NetSSL_Win_vs170.vcxproj.filters +++ b/NetSSL_Win/NetSSL_Win_vs170.vcxproj.filters @@ -2,40 +2,40 @@ - {529e4d63-2f77-4e5c-a2e5-34110a9c3dac} + {8a998ff6-6c22-4d3c-b39f-5c7bcc09178c} - {7aae5bb7-e02e-4b5a-a1d7-18defbb43ba6} + {34d33975-775a-4c13-8451-19253770f411} - {8b3810a5-f377-4c88-86ce-91955a65c818} + {5dab4ef6-a180-401d-b68d-a493d6c5519f} - {42aba42b-89c4-486d-bbcc-3362d6695961} + {1fb69e99-1e3a-49c1-8fca-35798bc29c5b} - {24caee21-d17b-44d7-a41c-cf4c70a2b38e} + {6fa1198b-3274-4afa-9233-4180ffa9582c} - {0e421c8b-7fab-4427-ae5a-4fc06d5a00f7} + {989e713c-afe3-47ef-aa35-bb679393d50e} - {4bf3cd72-825a-47ae-b749-34dc49f8bbf3} + {1683739c-ddaf-4658-a2ce-68c957770d5d} - {8add9720-7056-4d14-9003-e3419eb6338f} + {fe0f17eb-579e-487f-843d-0b8d27b64c8f} - {5e798d4b-82a7-48ca-b1d2-2c2c4240add3} + {0b55c232-02e6-4a66-ba8c-2e6f2bf3dbb1} - {e4074053-eb34-4fc6-83ff-9fa850c71c01} + {8938a3ec-7f33-4aec-ae63-cadb4df3be2f} - {24551290-9f10-4f62-8738-7d9f6b785866} + {64e2befe-afce-460f-8051-afab0a6bec59} - {cfda1168-eeb5-41ca-81f4-7a3217b74129} + {964d44a7-ee89-4ef7-a77f-60171636c9e3} diff --git a/PDF/PDF_vs160.vcxproj b/PDF/PDF_vs160.vcxproj index 7d126f598..7609208de 100644 --- a/PDF/PDF_vs160.vcxproj +++ b/PDF/PDF_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 PDF {E12E5C71-79A4-495A-848F-F1710111E610} PDF @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34322.80 PocoPDFd PocoPDFmdd PocoPDFmtd @@ -239,7 +240,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoPDFd.dll @@ -271,7 +275,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoPDF.dll @@ -302,7 +309,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoPDFmtd.lib @@ -327,7 +337,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoPDFmt.lib @@ -350,7 +363,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoPDFmdd.lib @@ -376,7 +392,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoPDFmd.lib @@ -398,7 +417,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoPDF64d.dll @@ -430,7 +452,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoPDF64.dll @@ -461,7 +486,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoPDFmtd.lib @@ -486,7 +514,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoPDFmt.lib @@ -509,7 +540,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoPDFmdd.lib @@ -534,7 +568,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoPDFmd.lib @@ -543,303 +580,503 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/PDF/PDF_vs160.vcxproj.filters b/PDF/PDF_vs160.vcxproj.filters index 50d096596..1ccf3fb27 100644 --- a/PDF/PDF_vs160.vcxproj.filters +++ b/PDF/PDF_vs160.vcxproj.filters @@ -2,40 +2,40 @@ - {e2c8ba69-4863-48f2-8a19-aeeaabe1f73f} + {2147d344-a273-4bec-a159-0533956dde98} - {2ae1d009-ec5d-4dbf-9519-f70505107e28} + {7bbb94a4-1fda-4900-b501-d4ed9a2533c5} - {99a0788e-8d76-4b22-b906-318faa14b222} + {f59ba8c9-f4a3-4fc1-ae94-91c32e70199f} - {f3fd66f0-d008-443f-9f84-2078f032e311} + {d7e3b737-c89a-4dfc-8fdb-900ab29633e2} - {832359ea-3125-432a-ac77-e326e8009a76} + {d93d1e92-430f-4f77-ac02-96ebaef9335c} - {108f07f7-e402-4fe2-a0ae-0b9f1342df06} + {71386b80-87ef-4c50-bd32-b3679c240b9d} - {98bd96eb-bbeb-4ad0-a595-c54c02748a71} + {79bdf3d1-4ff2-4f60-9ce8-b15eaf7ee48f} - {795f2adf-7af4-4748-b904-b5feca769dbe} + {46f3823b-7efa-4c76-a8c5-956a21022fa9} - {960f2e61-e7c3-45b4-bf6f-c5c2d6737ab4} + {628858eb-1e62-414d-925f-a7e699179c31} - {dd2d135f-e2ba-4605-94e1-384f84bddc00} + {52347645-b512-4309-9366-78215b12fe50} - {ed314e88-1f61-4e78-8485-4f02c2b70146} + {71f70366-43fe-442d-867e-59d2ca1bc3f8} - {744c66d2-2b02-4e00-8e4b-6297ad25a3f9} + {7293dc84-2119-4e8a-8adf-9304c9ab65a3} diff --git a/PDF/PDF_vs170.vcxproj.filters b/PDF/PDF_vs170.vcxproj.filters index e7c185fb0..2a9c9233b 100644 --- a/PDF/PDF_vs170.vcxproj.filters +++ b/PDF/PDF_vs170.vcxproj.filters @@ -2,40 +2,40 @@ - {f426c4fb-4635-4391-8169-1e078aaa22b3} + {8b0ee6f7-72d5-44ea-80af-b431596d2806} - {d7818ff4-830b-4e66-9746-26126f718530} + {584e97fb-0883-44ff-ac92-0672a0485bb5} - {073dbf44-33de-4f4b-a13c-9e363cbfc4a5} + {041e037e-22da-4ea3-abf2-8a88bda70ed6} - {f2fe92b5-fe93-43c9-a865-6bb64838f66e} + {21479540-b703-4e9f-8a6d-3e34692dd351} - {ec84f2dd-f70c-41d3-a23d-306a26e13a9f} + {8a2c9fc5-7c5c-410f-a29a-ebafcc2e33e1} - {97e85bcc-b3d6-4d34-9b6c-c178d49915fc} + {0721ec2f-61e0-46f1-bf17-53306309840a} - {39714c8b-23da-48ba-aff0-f102ed25a1b6} + {099081cd-0596-467c-a1cb-ded50e74698a} - {6e56df48-04b3-410f-bc28-af19f16e993c} + {d8554d0b-1f5a-4366-8248-e7b86032ce64} - {722c70fe-5922-42fd-af5e-a44ab5445860} + {58ea1706-127b-4a81-94a9-0b550e833bae} - {4e5d60ed-707a-4a2b-b487-dd48987f50c4} + {302b069a-c690-41c3-a0ab-e4c2dbaf8053} - {b0774c0b-991f-44d6-a8d5-810757dba8f2} + {114ed72e-b981-4900-a7a0-c3d22b6aaaf2} - {32f3a026-d9c2-4bbe-af3c-c5e8345dd57d} + {fe75b6b6-c069-4e06-af69-2f7d6e9bec21} diff --git a/PageCompiler/File2Page/File2Page_vs160.vcxproj b/PageCompiler/File2Page/File2Page_vs160.vcxproj index bbb584574..754ffc316 100644 --- a/PageCompiler/File2Page/File2Page_vs160.vcxproj +++ b/PageCompiler/File2Page/File2Page_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 File2Page {8BD05B6C-A179-40F1-BD17-6EA813055883} File2Page @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34322.80 f2cpspd f2cpspd f2cpspd @@ -247,7 +248,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -279,7 +283,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +315,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -340,7 +350,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +382,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -401,7 +417,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +449,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -462,7 +484,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +516,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -523,7 +551,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +583,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -584,7 +618,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +637,8 @@ true + stdcpp17 + stdc11 diff --git a/PageCompiler/File2Page/File2Page_vs160.vcxproj.filters b/PageCompiler/File2Page/File2Page_vs160.vcxproj.filters index 0be3ef59a..7a5799a0e 100644 --- a/PageCompiler/File2Page/File2Page_vs160.vcxproj.filters +++ b/PageCompiler/File2Page/File2Page_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {22b8ca10-cbc0-497d-9176-e489aef58b8e} + {f168d4ca-1dba-44c3-9812-e35699e2ac79} - {59092698-1958-4bd6-9d1f-d58738b7504c} + {e653b149-9805-4b33-96c6-113afad23d91} diff --git a/PageCompiler/File2Page/File2Page_vs170.vcxproj.filters b/PageCompiler/File2Page/File2Page_vs170.vcxproj.filters index 4460a4d58..3bf35e99a 100644 --- a/PageCompiler/File2Page/File2Page_vs170.vcxproj.filters +++ b/PageCompiler/File2Page/File2Page_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {5b6cb120-2052-4168-b459-5ad2e6304ec7} + {4d670046-8040-4f17-9e30-03c088a1f050} - {d1a7496e-488a-46aa-bdea-f7e55762edf9} + {e6d9313e-e10d-4518-96c4-2f94f8c82d53} diff --git a/PageCompiler/PageCompiler_vs160.vcxproj b/PageCompiler/PageCompiler_vs160.vcxproj index 6bb3fc8d3..969fe74df 100644 --- a/PageCompiler/PageCompiler_vs160.vcxproj +++ b/PageCompiler/PageCompiler_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 PageCompiler {E12E5C71-79A4-495A-848F-F1710111E610} PageCompiler @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34322.80 cpspcd cpspcd cpspcd @@ -247,7 +248,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -279,7 +283,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +315,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -340,7 +350,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +382,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -401,7 +417,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +449,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -462,7 +484,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +516,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -523,7 +551,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +583,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -584,7 +618,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -603,21 +640,33 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/PageCompiler/PageCompiler_vs160.vcxproj.filters b/PageCompiler/PageCompiler_vs160.vcxproj.filters index 96d5abe0a..387ebe664 100644 --- a/PageCompiler/PageCompiler_vs160.vcxproj.filters +++ b/PageCompiler/PageCompiler_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {c0107822-7eca-40f6-a013-62cc72581a6a} + {167d3bcb-c3da-4f93-9998-3e377bce6340} - {6977db9b-fb08-4fae-8783-722e7c6ab1f6} + {8fa00271-a742-47e5-b050-695a2c4f7036} - {2f85e702-81d2-4f6d-90ac-a4801dab2b21} + {eadf2f27-aab0-4d04-9eac-30b8e0d31e68} diff --git a/PageCompiler/PageCompiler_vs170.vcxproj.filters b/PageCompiler/PageCompiler_vs170.vcxproj.filters index ad87e7d87..d33b18cdd 100644 --- a/PageCompiler/PageCompiler_vs170.vcxproj.filters +++ b/PageCompiler/PageCompiler_vs170.vcxproj.filters @@ -2,13 +2,13 @@ - {3373ba58-8c45-4d06-a20a-946c741b4542} + {103c577e-1024-4356-877a-36eb70613768} - {b7244796-750d-4fd9-97a1-989fceb9da18} + {d1492508-83e0-482f-9a79-49539e1a7fe8} - {f644b45f-70db-48a7-86e3-cf91d71dc74d} + {78a8528f-97de-4d4e-a65a-1e1f72c3893a} diff --git a/PocoDoc/PocoDoc_vs160.vcxproj b/PocoDoc/PocoDoc_vs160.vcxproj index c559a1816..1be817c05 100644 --- a/PocoDoc/PocoDoc_vs160.vcxproj +++ b/PocoDoc/PocoDoc_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 PocoDoc {18BCF3CC-9474-4D1C-9445-F783A49D886B} PocoDoc @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34322.80 PocoDocd PocoDocd PocoDocd @@ -247,7 +248,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -279,7 +283,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +315,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -340,7 +350,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +382,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -401,7 +417,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +449,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -462,7 +484,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +516,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -523,7 +551,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +583,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -584,7 +618,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,9 +637,13 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/PocoDoc/PocoDoc_vs160.vcxproj.filters b/PocoDoc/PocoDoc_vs160.vcxproj.filters index 69039c5f7..720348182 100644 --- a/PocoDoc/PocoDoc_vs160.vcxproj.filters +++ b/PocoDoc/PocoDoc_vs160.vcxproj.filters @@ -2,22 +2,22 @@ - {01b5e332-6094-415c-acd2-590898991b45} + {4dfb2677-ba00-4697-bb9d-1f1c9da62e9f} - {0a0a99ea-e9fc-49e8-a288-c93ed5b1c3fb} + {d4bc48cf-7c38-4274-ad03-0bd815230453} - {e4c40212-d02d-4daa-a363-77e603be3a27} + {8dd6fbfa-e929-4dd1-a48c-527992622805} - {9be358e6-e617-489b-92f6-637843ac9d59} + {7b2eec2f-7b1f-4028-9cd5-6d91816235cf} - {03e8b590-102d-4b91-bd0a-3bb62b77d04f} + {f7c73656-f588-48b7-999e-748ba112fc04} - {ff475b96-688b-49be-b8cf-5b65d5d92f71} + {0908252d-c28d-4e2e-ad58-7723ccad1ed2} diff --git a/PocoDoc/PocoDoc_vs170.vcxproj.filters b/PocoDoc/PocoDoc_vs170.vcxproj.filters index 27d09a983..266a11fab 100644 --- a/PocoDoc/PocoDoc_vs170.vcxproj.filters +++ b/PocoDoc/PocoDoc_vs170.vcxproj.filters @@ -2,22 +2,22 @@ - {2285d602-2fd1-4276-887c-7dc9d8c4751f} + {4bc1a488-a8d2-485d-b2d9-4a5fd70cf548} - {4909c872-7e96-4974-bc68-b9ff7d28c454} + {200221dd-1061-4fb9-a144-d24b2455f9c9} - {2b98b6ea-162a-4f7c-8fc6-df11e9857293} + {1da7b280-7485-46f3-aaf7-2414f4b7b8d0} - {0699b1a7-de87-46a2-aad5-d0fa2b2ace3f} + {897337fb-f9a0-4575-90a8-842df1d65186} - {1f5e1fc4-3b23-4eed-a143-065894c933aa} + {8a417062-b6db-4c71-95e4-d8151b42ac9e} - {c9b50355-c6f5-4906-a49f-6e8ab416d3dc} + {f753423c-d64a-4dba-920d-7ec1d9ccfb4b} diff --git a/ProGen/ProGen_vs160.vcxproj b/ProGen/ProGen_vs160.vcxproj index 860850d65..a2c10361c 100644 --- a/ProGen/ProGen_vs160.vcxproj +++ b/ProGen/ProGen_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 ProGen {48D690D9-6520-4F30-A298-3132548716D0} ProGen @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34322.80 progend progend progend @@ -247,7 +248,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -279,7 +283,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +315,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -340,7 +350,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +382,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -401,7 +417,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +449,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -462,7 +484,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +516,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -523,7 +551,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +583,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -584,7 +618,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -603,9 +640,13 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/ProGen/ProGen_vs160.vcxproj.filters b/ProGen/ProGen_vs160.vcxproj.filters index d7fedb5bf..1464664b1 100644 --- a/ProGen/ProGen_vs160.vcxproj.filters +++ b/ProGen/ProGen_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {c3e335a9-d2d8-4e8d-b0ff-bc9f31fa23dc} + {b2b1626e-a4dc-422c-9d34-8106dc77de45} - {b1b5faf1-7bdf-4a7d-b2f5-885b8ab95bc2} + {7eeb2e56-ed12-4e76-8700-dda28d87b3d6} - {ea128d09-a049-4ff5-afdf-07159f7556a5} + {70071a2f-404a-460b-ad62-a548a237d312} diff --git a/ProGen/ProGen_vs170.vcxproj.filters b/ProGen/ProGen_vs170.vcxproj.filters index b1b9720c0..cd0431579 100644 --- a/ProGen/ProGen_vs170.vcxproj.filters +++ b/ProGen/ProGen_vs170.vcxproj.filters @@ -2,13 +2,13 @@ - {a1546477-6c69-498d-ba86-3a38eeafcafa} + {b4c3627d-4f8f-4220-afe9-a97bdef310bc} - {9d13273d-cec3-418d-899e-198ded914263} + {265452f8-f250-4108-8f40-f075d121082f} - {e6a0ecf9-6f30-482d-b44d-41bf35797a3f} + {f276f34d-49d8-4807-823c-6c6020b75a57} diff --git a/ProGen/src/ProGen.cpp b/ProGen/src/ProGen.cpp index 6909abe2a..8ddf3e3db 100644 --- a/ProGen/src/ProGen.cpp +++ b/ProGen/src/ProGen.cpp @@ -580,15 +580,36 @@ protected: void fix2019Project(Poco::AutoPtr pProjectDoc, const std::set& configSet, const std::string& platform, const Poco::Util::AbstractConfiguration& projectProps, const Poco::Util::AbstractConfiguration& templateProps) { fix20XXProject(pProjectDoc, configSet, platform, projectProps, templateProps, "v142"); + Poco::AutoPtr pLinkList = pProjectDoc->getElementsByTagName("Link"); + for (unsigned long i = 0; i < pLinkList->length(); i++) + { + Poco::XML::Element* pLinkElem = static_cast(pLinkList->item(i)); + Poco::XML::Element* pItemDefinitionGroupElem = static_cast(pLinkElem->parentNode()); + Poco::XML::XMLString condition = pItemDefinitionGroupElem->getAttribute("Condition"); + if (Poco::endsWith(condition, Poco::XML::XMLString("ARM64'"))) + { + appendElement(pLinkElem, "TargetMachine", "MachineARM64"); + } + } + Poco::AutoPtr pClCompileList = pProjectDoc->getElementsByTagName("ClCompile"); + for (unsigned long i = 0; i < pClCompileList->length(); i++) + { + Poco::XML::Element* pClCompileElem = static_cast(pClCompileList->item(i)); + Poco::AutoPtr pLanguageStandard = pProjectDoc->createElement("LanguageStandard"); + Poco::AutoPtr pStandardText = pProjectDoc->createTextNode("stdcpp17"); + pLanguageStandard->appendChild(pStandardText); + pClCompileElem->appendChild(pLanguageStandard); + + pClCompileElem = static_cast(pClCompileList->item(i)); + pLanguageStandard = pProjectDoc->createElement("LanguageStandard_C"); + pStandardText = pProjectDoc->createTextNode("stdc11"); + pLanguageStandard->appendChild(pStandardText); + pClCompileElem->appendChild(pLanguageStandard); + } } void fix2022Project(Poco::AutoPtr pProjectDoc, const std::set& configSet, const std::string& platform, const Poco::Util::AbstractConfiguration& projectProps, const Poco::Util::AbstractConfiguration& templateProps) { - // TODO: handle standards - // in template: - // LanguageStandard="${vc.project.compiler.std.cpp}" - // LanguageStandard_C="${vc.project.compiler.std.c}" - // for now, we're getting by through AdditionalOptions for C++ fix20XXProject(pProjectDoc, configSet, platform, projectProps, templateProps, "v143"); Poco::AutoPtr pLinkList = pProjectDoc->getElementsByTagName("Link"); for (unsigned long i = 0; i < pLinkList->length(); i++) diff --git a/Prometheus/Prometheus_vs160.vcxproj b/Prometheus/Prometheus_vs160.vcxproj index 3cd101c95..c6e94ed63 100644 --- a/Prometheus/Prometheus_vs160.vcxproj +++ b/Prometheus/Prometheus_vs160.vcxproj @@ -242,6 +242,8 @@ Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoPrometheusd.dll @@ -275,6 +277,8 @@ Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoPrometheus.dll @@ -307,6 +311,8 @@ Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoPrometheusmtd.lib @@ -333,6 +339,8 @@ Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoPrometheusmt.lib @@ -357,6 +365,8 @@ Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoPrometheusmdd.lib @@ -384,6 +394,8 @@ Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoPrometheusmd.lib @@ -407,6 +419,8 @@ Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoPrometheus64d.dll @@ -440,6 +454,8 @@ Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoPrometheus64.dll @@ -472,6 +488,8 @@ Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoPrometheusmtd.lib @@ -498,6 +516,8 @@ Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoPrometheusmt.lib @@ -522,6 +542,8 @@ Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoPrometheusmdd.lib @@ -548,6 +570,8 @@ Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoPrometheusmd.lib @@ -577,42 +601,68 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Prometheus/Prometheus_vs160.vcxproj.filters b/Prometheus/Prometheus_vs160.vcxproj.filters index 1aaf386a3..18c4207f8 100644 --- a/Prometheus/Prometheus_vs160.vcxproj.filters +++ b/Prometheus/Prometheus_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {a2e895c5-43ef-44fc-8843-8ce5f32490a3} + {53e83ccc-827e-4896-bbeb-c4af93f56f6a} - {007e1e30-599f-40f1-a03b-73d4ccc2697f} + {f39563e8-4f70-48b9-b6e7-8ef510013de5} - {4b99f8e7-b3ca-42ce-8513-51b68ad0f46a} + {37abdb5e-2411-4f75-8542-aecd474db03e} diff --git a/Prometheus/Prometheus_vs170.vcxproj.filters b/Prometheus/Prometheus_vs170.vcxproj.filters index 5bcf53072..610535c6e 100644 --- a/Prometheus/Prometheus_vs170.vcxproj.filters +++ b/Prometheus/Prometheus_vs170.vcxproj.filters @@ -2,13 +2,13 @@ - {5f0e8c47-e90e-48f5-b3f0-363d1969fcba} + {d305b0c7-712f-42b3-8ec3-327ca5750233} - {316b98f5-3da2-4a16-b927-31a14c7cf767} + {d57dd874-479d-4fbe-bda8-92e240800515} - {6f6d0101-51af-4819-b50a-f55927be1957} + {bed725cd-dd21-4ed5-950f-4bf9e21d8af6} diff --git a/Redis/Redis_vs160.vcxproj b/Redis/Redis_vs160.vcxproj index 305101af7..3daebe2d2 100644 --- a/Redis/Redis_vs160.vcxproj +++ b/Redis/Redis_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 Redis {12E39EE2-7049-312D-B390-7568D727CA25} Redis @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34322.80 PocoRedisd PocoRedismdd PocoRedismtd @@ -239,7 +240,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoRedisd.dll @@ -271,7 +275,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoRedis.dll @@ -302,7 +309,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoRedismtd.lib @@ -327,7 +337,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoRedismt.lib @@ -350,7 +363,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoRedismdd.lib @@ -376,7 +392,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoRedismd.lib @@ -398,7 +417,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoRedis64d.dll @@ -430,7 +452,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoRedis64.dll @@ -461,7 +486,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoRedismtd.lib @@ -486,7 +514,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoRedismt.lib @@ -509,7 +540,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoRedismdd.lib @@ -534,7 +568,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoRedismd.lib @@ -543,30 +580,48 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Redis/Redis_vs160.vcxproj.filters b/Redis/Redis_vs160.vcxproj.filters index c7aeffb33..aedae3e09 100644 --- a/Redis/Redis_vs160.vcxproj.filters +++ b/Redis/Redis_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {c838acd1-df13-44f5-899c-c048ac989bbd} + {7f4a1497-cef9-4ebe-a134-1dd9e43e76ca} - {75ebd299-687a-4804-b0bd-c2b38d539af3} + {24533806-0e15-49b2-9cdf-ea0148d2c4e0} diff --git a/Redis/Redis_vs170.vcxproj.filters b/Redis/Redis_vs170.vcxproj.filters index d433d236c..b6b354b65 100644 --- a/Redis/Redis_vs170.vcxproj.filters +++ b/Redis/Redis_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {ed08d752-2ac4-4a37-9ae8-c7eb7953b09c} + {07150746-2836-426e-a3b4-cde4cabf3d83} - {48880c00-e839-48c7-8e0b-f986530ce20c} + {d7af6162-3f3c-4ffa-9d99-65691d86f4fa} diff --git a/Util/Util_vs160.vcxproj b/Util/Util_vs160.vcxproj index 8df3c5599..00482cb4c 100644 --- a/Util/Util_vs160.vcxproj +++ b/Util/Util_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 Util {6FF56CDB-787A-4714-A28C-919003F9FA6C} Util @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34322.80 PocoUtild PocoUtilmdd PocoUtilmtd @@ -239,7 +240,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoUtild.dll @@ -271,7 +275,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoUtil.dll @@ -302,7 +309,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoUtilmtd.lib @@ -327,7 +337,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoUtilmt.lib @@ -350,7 +363,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoUtilmdd.lib @@ -376,7 +392,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoUtilmd.lib @@ -398,7 +417,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoUtil64d.dll @@ -430,7 +452,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoUtil64.dll @@ -461,7 +486,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoUtilmtd.lib @@ -486,7 +514,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoUtilmt.lib @@ -509,7 +540,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoUtilmdd.lib @@ -534,7 +568,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoUtilmd.lib @@ -578,96 +615,158 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Util/Util_vs160.vcxproj.filters b/Util/Util_vs160.vcxproj.filters index 30e637553..1d553f449 100644 --- a/Util/Util_vs160.vcxproj.filters +++ b/Util/Util_vs160.vcxproj.filters @@ -2,58 +2,58 @@ - {73be1d46-40be-4ebd-89be-73b4915f9588} + {cf9ff27f-c608-4221-acd5-9ec8f6d06b47} - {23e7b4b4-32f6-45bb-aeaf-aacbe2d7a19a} + {cd925d5a-2a4a-4eb0-abc0-1bd7e0ed765b} - {c190a5a2-2e88-4810-a309-e0574878f233} + {d257b037-83f7-47cd-bd76-52b28e204d3b} - {48997186-98e1-4804-93db-f3f8dd59257b} + {0096a0e0-fb96-43a9-94d9-61c3f27f6625} - {7d8521f9-fe59-46f9-b56e-1e5e2a2deb82} + {ddc4db4d-2f52-414e-99df-6db934c4c5a5} - {833e08f9-7f52-4f8a-86fe-6a67255476f1} + {4322c805-411f-4104-b9b4-5021762902c0} - {4458d4b8-0eb6-46ae-a92a-d86628dc2d63} + {3ba7445e-abc9-43dc-bed5-127db1a57c27} - {c5285fd4-76c7-40bb-9242-5c0211ad4d57} + {5e8e6197-e0d6-49c6-a9b7-0b592ed6daba} - {e9ad10ed-b7f8-4536-96f3-09f5db57ea3d} + {e22e3615-cc6e-41fc-81cf-e87af424ad3c} - {1a6b7d18-60e6-4766-8674-278a02d552c8} + {3921c885-89a3-4c9c-92c1-113d817266f3} - {afccb3c3-5bf0-4d98-af22-bc4aad0d979b} + {156dc5e3-c9a1-4c00-b513-3cb5bed8029b} - {5bc9b5b6-ed82-48ee-85ec-3959108a78d7} + {958fb7eb-d810-42dd-bfe9-dd8d076d78f0} - {c5e0e0d0-68ca-48e2-9f52-abd41d287359} + {23284305-4dff-4522-8279-df7cf02afd93} - {9a78cc94-c8fb-4c68-87f9-7860f90702bd} + {65499a05-965b-4707-a3b9-6a4dca022258} - {d508f3ba-b9dd-4fc3-95d8-410976dc8bfb} + {cc40a606-35a0-443a-b148-1fec1663b42b} - {4becd24d-4c2b-4ad7-a800-3cae02af7504} + {5357cbb6-94d0-4a6a-8276-23c156504c7a} - {5f654520-9b40-4f75-8e19-2ec25800d900} + {9db539ab-6e8e-4248-acb7-3aa71f648bb2} - {8622d8f8-7fd0-4094-8b44-318652fa1ddd} + {16c9957b-edc6-4791-b7fc-4defc5f92143} diff --git a/Util/Util_vs170.vcxproj.filters b/Util/Util_vs170.vcxproj.filters index 9a07fa7f3..95006b56c 100644 --- a/Util/Util_vs170.vcxproj.filters +++ b/Util/Util_vs170.vcxproj.filters @@ -2,58 +2,58 @@ - {6a1a5ec7-003a-40c5-b947-0b0873e2d6ee} + {31dea0da-1610-476c-9b7d-3472427b4641} - {05e1ed3e-9afb-4ebf-b835-fe9bfbe194af} + {1060f661-3e5a-4ae6-af77-5c998f2a04ca} - {e60dae01-1e6c-4a67-9fa1-0c3c3bdf2826} + {d3d7ed03-475c-4029-a086-9dc659f6676d} - {694c6834-669b-4356-8727-47d3298c00e5} + {b621ef20-0803-4f8d-85e6-78fe62c6f2da} - {e7f9d0c1-ae68-4c6e-8814-81724a1662ca} + {f240bd4e-9bc6-4160-8413-b20219dba320} - {597875d6-a827-49d3-b0e1-2313de020ef8} + {b6592213-0f27-4f53-b6a4-45f8b7d294cb} - {e27da853-1946-44e4-b200-f53a773e1134} + {ae25771c-adbc-4915-9929-49aed8c75203} - {ee93df46-e21d-433c-b500-2c4a130af4f6} + {76b34b02-bc40-459d-a93f-4d9e4f6a1cd0} - {d27baf62-7fd5-4f21-a096-a79b10887b53} + {882878f4-c179-4e84-9027-909a2ae1ffd2} - {4fbc8357-ff74-4ae2-8ba4-88d677cd35a6} + {a49cd00b-d063-4906-974a-a1323df809de} - {1e296277-0844-4bcb-8913-84097f9ea347} + {38fd5a99-3c0d-46b1-809a-82b419ead9d4} - {fdcd64c6-3670-475c-b6ef-24dc1b5254ef} + {187e3570-fcfa-4503-b6c3-a71d7d02c5a3} - {e02e5e88-f17a-4adf-9ad0-6e951bccb754} + {090c93e6-0af2-4c44-afce-afffc03c105a} - {22c8acd6-e2b4-4135-834f-6559c40b8456} + {a4f42f66-6386-49d2-b550-7cec7a63bf97} - {6dd6b69f-a286-4491-9e64-e4bfd76501ed} + {7307faa2-93c9-489b-9705-08ed7384550c} - {08210efd-f79f-4982-b94c-38405588e32c} + {aa55825e-edb4-47fd-9569-28a741f031b1} - {942eb908-d116-4aad-9854-162dbd92116f} + {f63f6046-0783-4d9b-883f-47f596f96872} - {dcd9985c-7c22-4900-917d-a3826ca33b75} + {0acefac5-7909-4be8-9a8b-e569d49e3084} diff --git a/XML/XML_vs160.vcxproj b/XML/XML_vs160.vcxproj index ce0edaec5..7b2902d49 100644 --- a/XML/XML_vs160.vcxproj +++ b/XML/XML_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 XML {9E211743-85FE-4977-82F3-4F04B40C912D} XML @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34322.80 PocoXMLd PocoXMLmdd PocoXMLmtd @@ -239,7 +240,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoXMLd.dll @@ -271,7 +275,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin\PocoXML.dll @@ -302,7 +309,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoXMLmtd.lib @@ -327,7 +337,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoXMLmt.lib @@ -350,7 +363,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoXMLmdd.lib @@ -376,7 +392,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib\PocoXMLmd.lib @@ -398,7 +417,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoXML64d.dll @@ -430,7 +452,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\bin64\PocoXML64.dll @@ -461,7 +486,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoXMLmtd.lib @@ -486,7 +514,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoXMLmt.lib @@ -509,7 +540,10 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoXMLmdd.lib @@ -534,7 +568,10 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ..\lib64\PocoXMLmd.lib @@ -633,216 +670,358 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true @@ -858,9 +1037,13 @@ true true true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true @@ -876,6 +1059,8 @@ true true true + stdcpp17 + stdc11 true @@ -891,9 +1076,13 @@ true true true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/XML/XML_vs160.vcxproj.filters b/XML/XML_vs160.vcxproj.filters index d7bcfcdff..d73b5ebe9 100644 --- a/XML/XML_vs160.vcxproj.filters +++ b/XML/XML_vs160.vcxproj.filters @@ -2,40 +2,40 @@ - {433d0fe7-25ac-4eae-9fce-d4c585cc4fc0} + {6a8bdbbe-442a-457d-ab07-46014587f83b} - {774efa02-3244-44e4-a4e8-84ac6123fd43} + {3c2890c2-f54d-4866-97a4-c28b560be0a2} - {1e6c8027-8fc3-43a3-9d01-261dcfda999c} + {3043f1fb-3883-4bff-8ce5-f51310aee8c7} - {50f3c0fb-8844-41e2-9a22-a55a88bf1f26} + {3e76e647-6cf5-4ca8-b565-6cb6a444629f} - {3e7fc746-30fa-4328-96b2-f97dcf4370e0} + {10630328-fa99-4dcc-82c7-ffca37620761} - {e22185b7-0aa5-43dc-9a2b-ceb41f74d051} + {74569b02-679d-49f8-a9d3-ce79613a9368} - {334c227f-0fa4-4923-9b4a-b6f870ddbbdd} + {30946367-448b-4f50-a0d6-2ddbca08aabd} - {a0fe306c-3abf-4f39-a45a-dcbc624315ee} + {360baa69-a63b-4ae9-a908-3b728fa2b4dc} - {e8a1745d-3932-4f15-b214-04aaced8f534} + {0158f4c2-36f6-4542-9116-e9b69b4af966} - {73e4e2f8-e169-4435-9838-6ba4e5a31d56} + {d2f6b655-b0d0-45a4-aa35-4819871302c4} - {6e251cd3-3e87-4df5-b091-841119173edf} + {de3b38e4-3064-407d-8787-7e594f0f03a8} - {f73f68ef-4e04-46af-b2c3-7593d0b8b315} + {3184fa9b-36fc-4352-ad47-7c7d99409a7b} diff --git a/XML/XML_vs170.vcxproj.filters b/XML/XML_vs170.vcxproj.filters index 81978313e..6127e56af 100644 --- a/XML/XML_vs170.vcxproj.filters +++ b/XML/XML_vs170.vcxproj.filters @@ -2,40 +2,40 @@ - {01b91afa-ebf6-4ac8-9b98-0d68c6421a50} + {96b51512-3a64-46af-ab78-a51faa1cd6df} - {b21671d7-0a08-4d01-9af9-01a120046a89} + {b9ec7b17-e73d-426e-a76d-eebc7666da78} - {dfb379de-c6dc-462b-bea7-b3cb8afc0e67} + {9231605d-1428-4e8e-9b05-576974d29681} - {67f6a500-649c-498b-8367-2c8ebea0eb99} + {4a70c9bd-4202-4927-9611-5aec7641a968} - {fa07dc3c-aa0b-4a1c-94a4-bbb95c13081c} + {cac5dc2f-6bea-4219-9ad0-5746260dd79d} - {c42c455b-1085-4ecd-b251-d7f635d685b7} + {aa92d9ae-49a3-40c8-b6b7-e68295c52ff7} - {815e94e8-d409-4af9-b5c3-76ad5bc4c888} + {b26d1bf0-b484-46d1-886b-06d025bc83fe} - {f9c0dece-6a1a-4bbb-9770-72d2b41ba798} + {796b42b1-952a-4783-8c3a-a0559e181c3a} - {13676f85-7b77-4e42-b347-781fba0cd0b1} + {fc023bda-543a-4828-81a1-d9c1a694badc} - {7e1f7f43-19ab-4eea-8d8f-c7b220a29012} + {3e03ea7d-3bab-4a12-bfe4-91d9ef4b5901} - {1a0c5add-b2e4-4db9-9cbe-a914bf252995} + {7cd33215-14dd-4c36-bb74-0bf0092392e5} - {740021f0-b269-4cd7-9f74-81a03e30bd11} + {d3571ff7-2366-434e-bc0f-20bf9079fc7b} diff --git a/Zip/Zip_vs160.vcxproj b/Zip/Zip_vs160.vcxproj index 8fe7bb28c..d9b2be0bf 100644 --- a/Zip/Zip_vs160.vcxproj +++ b/Zip/Zip_vs160.vcxproj @@ -1,667 +1,16 @@ - - - - debug_shared - Win32 - - - debug_shared - x64 - - - debug_static_md - Win32 - - - debug_static_md - x64 - - - debug_static_mt - Win32 - - - debug_static_mt - x64 - - - release_shared - Win32 - - - release_shared - x64 - - - release_static_md - Win32 - - - release_static_md - x64 - - - release_static_mt - Win32 - - - release_static_mt - x64 - - + + - Zip - {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61} - Zip - Win32Proj + 17.0 - - StaticLibrary - MultiByte - v142 - - - StaticLibrary - MultiByte - v142 - - - StaticLibrary - MultiByte - v142 - - - StaticLibrary - MultiByte - v142 - - - DynamicLibrary - MultiByte - v142 - - - DynamicLibrary - MultiByte - v142 - - - StaticLibrary - MultiByte - v142 - - - StaticLibrary - MultiByte - v142 - - - StaticLibrary - MultiByte - v142 - - - StaticLibrary - MultiByte - v142 - - - DynamicLibrary - MultiByte - v142 - - - DynamicLibrary - MultiByte - v142 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_ProjectFileVersion>15.0.28307.799 - PocoZipd - PocoZipmdd - PocoZipmtd - PocoZip - PocoZipmd - PocoZipmt - PocoZip64d - PocoZipmdd - PocoZipmtd - PocoZip64 - PocoZipmd - PocoZipmt - - - ..\bin\ - obj\Zip\$(Configuration)\ - true - - - ..\bin\ - obj\Zip\$(Configuration)\ - false - - - ..\lib\ - obj\Zip\$(Configuration)\ - - - ..\lib\ - obj\Zip\$(Configuration)\ - - - ..\lib\ - obj\Zip\$(Configuration)\ - - - ..\lib\ - obj\Zip\$(Configuration)\ - - - ..\bin64\ - obj64\Zip\$(Configuration)\ - true - - - ..\bin64\ - obj64\Zip\$(Configuration)\ - false - - - ..\lib64\ - obj64\Zip\$(Configuration)\ - - - ..\lib64\ - obj64\Zip\$(Configuration)\ - - - ..\lib64\ - obj64\Zip\$(Configuration)\ - - - ..\lib64\ - obj64\Zip\$(Configuration)\ - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Zip_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoZipd.dll - true - true - ..\bin\PocoZipd.pdb - ..\lib;%(AdditionalLibraryDirectories) - Console - ..\lib\PocoZipd.lib - MachineX86 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Zip_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin\PocoZip.dll - true - false - ..\lib;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib\PocoZip.lib - MachineX86 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib\PocoZipmtd.pdb - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib\PocoZipmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib\PocoZipmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib\PocoZipmdd.pdb - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib\PocoZipmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - ..\lib\PocoZipmd.pdb - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\lib\PocoZipmd.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;_USRDLL;Zip_EXPORTS;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoZip64d.dll - true - true - ..\bin64\PocoZip64d.pdb - ..\lib64;%(AdditionalLibraryDirectories) - Console - ..\lib64\PocoZipd.lib - MachineX64 - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;_USRDLL;Zip_EXPORTS;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - ..\bin64\PocoZip64.dll - true - false - ..\lib64;%(AdditionalLibraryDirectories) - Console - true - true - ..\lib64\PocoZip.lib - MachineX64 - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebug - true - true - true - true - - ..\lib64\PocoZipmtd.pdb - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib64\PocoZipmtd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreaded - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib64\PocoZipmt.lib - - - - - Disabled - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - EnableFastChecks - MultiThreadedDebugDLL - true - true - true - true - - ..\lib64\PocoZipmdd.pdb - Level3 - ProgramDatabase - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib64\PocoZipmdd.lib - - - - - MaxSpeed - OnlyExplicitInline - true - Speed - true - .\include;..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) - true - MultiThreadedDLL - false - true - true - true - - Level3 - - Default - 4244;4267;%(DisableSpecificWarnings) - true - - - ..\lib64\PocoZipmd.lib - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - true - - - - - true - true - true - true - true - true - true - true - - + + + diff --git a/Zip/Zip_vs160.vcxproj.filters b/Zip/Zip_vs160.vcxproj.filters index 1a907db9a..0b07de1b2 100644 --- a/Zip/Zip_vs160.vcxproj.filters +++ b/Zip/Zip_vs160.vcxproj.filters @@ -1,165 +1,3 @@  - - - - {b0ee098a-884b-4980-bbe8-be7f2ef7ae2d} - - - {1faaed9a-b145-4633-bb8c-bbb900292d14} - - - {b9795618-b76e-4c7a-94ff-ef204823bed4} - - - {62757a14-b297-42db-a8ce-cf620c0e9994} - - - {c7a04108-1936-4204-9137-492df31cc453} - - - {8cda9793-979c-4b2d-b665-7b9b41a777c7} - - - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Zip\Header Files - - - Manipulation\Header Files - - - Manipulation\Header Files - - - Manipulation\Header Files - - - Manipulation\Header Files - - - Manipulation\Header Files - - - Manipulation\Header Files - - - Manipulation\Header Files - - - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Zip\Source Files - - - Manipulation\Source Files - - - Manipulation\Source Files - - - Manipulation\Source Files - - - Manipulation\Source Files - - - Manipulation\Source Files - - - Manipulation\Source Files - - - Manipulation\Source Files - - - - - + \ No newline at end of file diff --git a/Zip/Zip_vs170.vcxproj.filters b/Zip/Zip_vs170.vcxproj.filters index 5b761c9f0..4dd0b077a 100644 --- a/Zip/Zip_vs170.vcxproj.filters +++ b/Zip/Zip_vs170.vcxproj.filters @@ -2,22 +2,22 @@ - {b93d89ba-f62a-4cec-b531-d1ebbb43cf72} + {690a8469-95ed-462d-972f-79391d782dcc} - {dd3162fa-9348-4495-871f-9ce5a78be181} + {c3628cbf-b2f9-4ea7-8503-ba643b4e855f} - {b5c6e1af-a887-4a12-847b-aac19cad216f} + {59b6e61c-93ab-4dbd-aa27-56fbb3960e30} - {fee1c853-3a9a-4ad7-9eb8-4e0959442ebd} + {0a8e2b79-875a-42c4-8879-933845e48657} - {347bae64-89a9-4e25-8672-d0eb5ce7b967} + {2947c209-69d5-4657-ad85-67745de8389f} - {a83f3972-4019-4d5f-b8d8-3404d84478aa} + {891520ba-8a6a-4469-ab40-d2838d46a3f7} From 5e5e9297a603b4d7183df736afef0bf20d2d1f89 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Wed, 14 Feb 2024 09:45:20 +0100 Subject: [PATCH 309/395] fix(CppUnit): remove Foundation dependency --- CppUnit/Makefile | 1 - CppUnit/cmake/CppUnitConfig.cmake | 3 --- CppUnit/dependencies | 1 - Makefile | 2 +- 4 files changed, 1 insertion(+), 6 deletions(-) delete mode 100644 CppUnit/cmake/CppUnitConfig.cmake delete mode 100644 CppUnit/dependencies diff --git a/CppUnit/Makefile b/CppUnit/Makefile index 4890fe667..00c277e46 100644 --- a/CppUnit/Makefile +++ b/CppUnit/Makefile @@ -11,6 +11,5 @@ objects = CppUnitException TestDecorator TestResult TestSuite \ target = CppUnit target_version = 1 -target_libs = PocoFoundation include $(POCO_BASE)/build/rules/lib diff --git a/CppUnit/cmake/CppUnitConfig.cmake b/CppUnit/cmake/CppUnitConfig.cmake deleted file mode 100644 index f78f247b0..000000000 --- a/CppUnit/cmake/CppUnitConfig.cmake +++ /dev/null @@ -1,3 +0,0 @@ -include(CMakeFindDependencyMacro) -find_dependency(PocoFoundation) -include("${CMAKE_CURRENT_LIST_DIR}/PocoDataTargets.cmake") diff --git a/CppUnit/dependencies b/CppUnit/dependencies deleted file mode 100644 index 2e8175e4e..000000000 --- a/CppUnit/dependencies +++ /dev/null @@ -1 +0,0 @@ -Foundation diff --git a/Makefile b/Makefile index 35e4cb357..dd714a4fa 100644 --- a/Makefile +++ b/Makefile @@ -81,7 +81,7 @@ all: libexecs tests samples INSTALLDIR = $(DESTDIR)$(POCO_PREFIX) COMPONENTS = Foundation Encodings XML JSON Util Net Crypto NetSSL_OpenSSL Data Data/SQLite Data/ODBC Data/MySQL Data/PostgreSQL ActiveRecord ActiveRecord/Compiler Zip PageCompiler PageCompiler/File2Page JWT CppParser PDF MongoDB Redis Prometheus -cppunit: Foundation-libexec +cppunit: $(MAKE) -C $(POCO_BASE)/CppUnit CppUnit-clean: From e622b51d6ba3ca531e9484c1c9f8d5abe813e37f Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Wed, 14 Feb 2024 09:53:29 +0100 Subject: [PATCH 310/395] fix(SQLParser): remove leftover unnecessary includes --- ActiveRecord/CMakeLists.txt | 2 -- Data/MySQL/Makefile | 4 ---- Data/ODBC/Makefile | 3 --- Data/PostgreSQL/Makefile | 4 ---- 4 files changed, 13 deletions(-) diff --git a/ActiveRecord/CMakeLists.txt b/ActiveRecord/CMakeLists.txt index b77a83696..5ba836762 100644 --- a/ActiveRecord/CMakeLists.txt +++ b/ActiveRecord/CMakeLists.txt @@ -26,8 +26,6 @@ target_include_directories(ActiveRecord PUBLIC $ $ - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../Data/SQLParser - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../Data/SQLParser/src ) POCO_INSTALL(ActiveRecord) diff --git a/Data/MySQL/Makefile b/Data/MySQL/Makefile index 31f6868ec..915f387b7 100644 --- a/Data/MySQL/Makefile +++ b/Data/MySQL/Makefile @@ -15,10 +15,6 @@ objects = Binder Extractor SessionImpl Connector \ MySQLStatementImpl ResultMetadata MySQLException \ SessionHandle StatementExecutor Utility -ifndef POCO_DATA_NO_SQL_PARSER - target_includes += $(POCO_BASE)/Data/SQLParser $(POCO_BASE)/Data/SQLParser/src -endif - target = PocoDataMySQL target_version = $(LIBVERSION) target_libs = PocoData PocoFoundation diff --git a/Data/ODBC/Makefile b/Data/ODBC/Makefile index 3e4980154..b826a79df 100644 --- a/Data/ODBC/Makefile +++ b/Data/ODBC/Makefile @@ -13,9 +13,6 @@ objects = Binder ConnectionHandle Connector EnvironmentHandle \ Parameter Preparator SessionImpl TypeInfo Unicode Utility target_includes = $(POCO_BASE)/Data/testsuite/include -ifndef POCO_DATA_NO_SQL_PARSER - target_includes += $(POCO_BASE)/Data/SQLParser $(POCO_BASE)/Data/SQLParser/src -endif target = PocoDataODBC target_version = $(LIBVERSION) diff --git a/Data/PostgreSQL/Makefile b/Data/PostgreSQL/Makefile index bf2539d6f..622d8c056 100644 --- a/Data/PostgreSQL/Makefile +++ b/Data/PostgreSQL/Makefile @@ -14,10 +14,6 @@ objects = Extractor BinaryExtractor Binder SessionImpl Connector \ target_includes = $(POCO_BASE)/Data/testsuite/include -ifndef POCO_DATA_NO_SQL_PARSER - target_includes += $(POCO_BASE)/Data/SQLParser $(POCO_BASE)/Data/SQLParser/src -endif - target = PocoDataPostgreSQL target_version = $(LIBVERSION) From 1a29ecde02ff0fadf280fbaefd58a3c54629883b Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Wed, 14 Feb 2024 10:20:42 +0100 Subject: [PATCH 311/395] fix(SQLParser): remove fwd header #4453 --- Data/include/Poco/Data/SQLParser.h | 42 ---------------------------- Data/testsuite/src/SQLParserTest.cpp | 16 ++++++++--- 2 files changed, 12 insertions(+), 46 deletions(-) delete mode 100644 Data/include/Poco/Data/SQLParser.h diff --git a/Data/include/Poco/Data/SQLParser.h b/Data/include/Poco/Data/SQLParser.h deleted file mode 100644 index 5d4fd42d6..000000000 --- a/Data/include/Poco/Data/SQLParser.h +++ /dev/null @@ -1,42 +0,0 @@ -// -// SQLParser.h -// -// Library: Data -// Package: SQLParser -// Module: SQLParser -// -// Forward header for the SQLParser class. -// -// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#ifndef Data_SQLParser_INCLUDED -#define Data_SQLParser_INCLUDED - -#include "Poco/Config.h" - - -#ifndef POCO_DATA_NO_SQL_PARSER - - -#include "src/SQLParser.h" -#include "SQLParserResult.h" -#include "util/sqlhelper.h" - - -namespace Poco { -namespace Data { - - namespace Parser = hsql; // namespace Poco::Data::Parser - -} } // namespace Poco::Data - - -#endif // POCO_DATA_NO_SQL_PARSER - - -#endif // Data_SQLParser_INCLUDED diff --git a/Data/testsuite/src/SQLParserTest.cpp b/Data/testsuite/src/SQLParserTest.cpp index 8914826a8..49416ad20 100644 --- a/Data/testsuite/src/SQLParserTest.cpp +++ b/Data/testsuite/src/SQLParserTest.cpp @@ -9,13 +9,21 @@ #include "SQLParserTest.h" -#include "CppUnit/TestCaller.h" -#include "CppUnit/TestSuite.h" -#include #ifndef POCO_DATA_NO_SQL_PARSER -#include "Poco/Data/SQLParser.h" +#include "CppUnit/TestCaller.h" +#include "CppUnit/TestSuite.h" +#include +#include "SQLParser.h" + + +namespace Poco { +namespace Data { + +namespace Parser = hsql; // namespace Poco::Data::Parser + +}} using namespace Poco::Data::Parser; From 2190a8a9013b5730c7caa7f631b962f2b69fe157 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Wed, 14 Feb 2024 10:31:12 +0100 Subject: [PATCH 312/395] fix(PocoDoc): remove SQLParser from include list --- PocoDoc/cfg/mkdoc-poco.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/PocoDoc/cfg/mkdoc-poco.xml b/PocoDoc/cfg/mkdoc-poco.xml index 790ab37c4..0c22fdca0 100644 --- a/PocoDoc/cfg/mkdoc-poco.xml +++ b/PocoDoc/cfg/mkdoc-poco.xml @@ -7,7 +7,6 @@ ${PocoBuild}/*/include/Poco/*/*/*.h ${PocoBuild}/*/include/Poco/*/*.h ${PocoBuild}/*/*/include/Poco/*/*/*.h - ${PocoBuild}/Data/SQLParser/*.h *_*.h, From a92ab6d41dae6504b535cddaf671dcd18db85893 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Wed, 14 Feb 2024 10:41:09 +0100 Subject: [PATCH 313/395] fix(mkrelease): remove 140,150 vs projects --- release/script/mkrelease | 2 -- 1 file changed, 2 deletions(-) diff --git a/release/script/mkrelease b/release/script/mkrelease index 3062b55a2..309061c73 100755 --- a/release/script/mkrelease +++ b/release/script/mkrelease @@ -417,8 +417,6 @@ ENDOFSCRIPT # Fix line endings # if [ "$lineEndConv" != "" ] ; then - $lineEndConv ${target}/build_vs140.cmd - $lineEndConv ${target}/build_vs150.cmd $lineEndConv ${target}/build_vs160.cmd $lineEndConv ${target}/build_vs170.cmd $lineEndConv ${target}/Makefile From d6dfa257e14f7ddcf7a901215263953a61277501 Mon Sep 17 00:00:00 2001 From: topazus <77263945+topazus@users.noreply.github.com> Date: Thu, 15 Feb 2024 23:54:13 +0800 Subject: [PATCH 314/395] Fix detection of odbc and apache2 for Fedora (#4461) --- cmake/FindApache2.cmake | 1 + cmake/FindODBC.cmake | 1 + 2 files changed, 2 insertions(+) diff --git a/cmake/FindApache2.cmake b/cmake/FindApache2.cmake index adc31fb71..52c8eb6a3 100644 --- a/cmake/FindApache2.cmake +++ b/cmake/FindApache2.cmake @@ -26,6 +26,7 @@ find_path(APACHE2_INCLUDE_DIR httpd.h ${APACHE2_ROOT_INCLUDE_DIRS} PATHS ${PC_APACHE2_INCLUDE_DIRS} + /usr/include/httpd /usr/local/include/apache2 /usr/include/apache2 ) diff --git a/cmake/FindODBC.cmake b/cmake/FindODBC.cmake index d572d93bb..3c59fd380 100644 --- a/cmake/FindODBC.cmake +++ b/cmake/FindODBC.cmake @@ -36,6 +36,7 @@ find_path(ODBC_INCLUDE_DIR PATHS ${PC_ODBC_INCLUDE_DIRS} /usr/include + /usr/include/libiodbc /usr/local/include /usr/local/odbc/include /usr/local/iodbc/include From 2fe694e4d30e9daeb84f3c7367fff14cf12ef915 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Thu, 15 Feb 2024 15:07:56 +0100 Subject: [PATCH 315/395] fix(SQLParser): Disable SQL parsing by default #4462 --- .github/workflows/ci.yml | 26 ++++++++++++++++ Data/include/Poco/Data/AbstractSessionImpl.h | 14 ++++++++- Data/include/Poco/Data/Statement.h | 32 ++++++++++++++------ Data/src/Statement.cpp | 2 ++ configure | 5 ++- 5 files changed, 65 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a143b35d4..eb48354ba 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -725,3 +725,29 @@ jobs: sudo -s EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/MySQL Data/PostgreSQL Data/SQLite Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" ./ci/runtests.sh + + linux-gcc-make-sqlite-no-sqlparser: + runs-on: ubuntu-22.04 + services: + mysql: + image: mysql:8.1.0 + env: + MYSQL_ALLOW_EMPTY_PASSWORD: yes + MYSQL_USER: pocotest + MYSQL_PASSWORD: pocotest + MYSQL_DATABASE: pocotest + ports: + - 3306:3306 + steps: + - uses: actions/checkout@v3 + - run: sudo apt -y update + - run: ./configure --everything --no-samples --no-sqlparser --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/PostgreSQL,Data/MySQL,Data/ODBC,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install + - uses: ./.github/actions/retry-action + with: + timeout_minutes: 90 + max_attempts: 3 + retry_on: any + command: >- + sudo -s + EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/PostgreSQL Data/ODBC Data/MySQL Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" + ./ci/runtests.sh diff --git a/Data/include/Poco/Data/AbstractSessionImpl.h b/Data/include/Poco/Data/AbstractSessionImpl.h index 0fdfa9299..572a80d70 100644 --- a/Data/include/Poco/Data/AbstractSessionImpl.h +++ b/Data/include/Poco/Data/AbstractSessionImpl.h @@ -56,7 +56,7 @@ public: _bulk(false), _emptyStringIsNull(false), _forceEmptyString(false), - _sqlParse(true), + _sqlParse(false), _autoCommit(true) /// Creates the AbstractSessionImpl. /// @@ -90,6 +90,18 @@ public: /// While these features can not both be true at the same time, they can both be false, /// resulting in default underlying database behavior. /// + /// Adds "sqlParse" feature and sets it to false; this property enables parsing of the SQL queries, + /// to help the Data framework to determine whether to start a transaction automatically in + /// non-autocomit mode (ie. not to start transaction if all the queries in an SQL statement are SELECTs). + /// Note that the property is not a bullet-proof way to ensure this behavior, because not all SQL dialects + /// are supported by the parser. When enabled, the parsing has performance cost, but it is otherwise + /// non-intrusive, ie. on parse failure Statement only internally records parsing errors, but does not throw. + /// See Poco::Data::Statement documentation for more information. + /// This property has no effect when Poco::Data library is compiled with POCO_DATA_NO_SQL_PARSER. + /// + /// Adds "autoCommit" feature and sets it to true. This property enables automatic commit. + /// Setting this feature to true renders the `sqlParse` property meaningless, because every query + /// is automatically commited. { addProperty("storage", &AbstractSessionImpl::setStorage, diff --git a/Data/include/Poco/Data/Statement.h b/Data/include/Poco/Data/Statement.h index e39edc268..c3a4164b8 100644 --- a/Data/include/Poco/Data/Statement.h +++ b/Data/include/Poco/Data/Statement.h @@ -33,16 +33,23 @@ #include "Poco/Optional.h" #include +#ifndef POCO_DATA_NO_SQL_PARSER namespace hsql { class SQLParserResult; } +#endif // POCO_DATA_NO_SQL_PARSER + namespace Poco { namespace Data { +#ifndef POCO_DATA_NO_SQL_PARSER + namespace Parser = hsql; // namespace Poco::Data::Parser +#endif // POCO_DATA_NO_SQL_PARSER + class AbstractBinding; class AbstractExtraction; class Session; @@ -311,6 +318,8 @@ public: Optional statementsCount() const; /// Returns the total number of SQL statements held in the accummulated SQL statement. + /// + /// For Poco::Data builds with POCO_DATA_NO_SQL_PARSER, it always returns unspecified. Optional parse(); /// Parses the SQL statement and returns true if successful. @@ -319,42 +328,44 @@ public: /// keywords not supported by the parser. Parsing failures are silent in terms of /// throwing exceptions or logging, but it is possible to get error information by /// calling parseError(). + /// + /// For Poco::Data builds with POCO_DATA_NO_SQL_PARSER, it always returns unspecified. const std::string& parseError(); /// Returns the SQL statement parse error message, if any. - /// For Poco::Data builds without SQLParser, it always returns empty string. + /// For Poco::Data builds with POCO_DATA_NO_SQL_PARSER, it always returns an empty string. Optional isSelect() const; /// Returns true if the statement consists only of SELECT statement(s). - /// For Poco::Data builds without SQLParser, it always returns unspecified. + /// For Poco::Data builds with POCO_DATA_NO_SQL_PARSER, it always returns unspecified. Optional isInsert() const; /// Returns true if the statement consists only of INSERT statement(s). - /// For Poco::Data builds without SQLParser, it always returns unspecified. + /// For Poco::Data builds with POCO_DATA_NO_SQL_PARSER, it always returns unspecified. Optional isUpdate() const; /// Returns true if the statement consists only of UPDATE statement(s). - /// For Poco::Data builds without SQLParser, it always returns unspecified. + /// For Poco::Data builds with POCO_DATA_NO_SQL_PARSER, it always returns unspecified. Optional isDelete() const; /// Returns true if the statement consists only of DELETE statement(s). - /// For Poco::Data builds without SQLParser, it always returns unspecified. + /// For Poco::Data builds with POCO_DATA_NO_SQL_PARSER, it always returns unspecified. Optional hasSelect() const; /// Returns true if the statement contains a SELECT statement. - /// For Poco::Data builds without SQLParser, it always returns unspecified. + /// For Poco::Data builds with POCO_DATA_NO_SQL_PARSER, it always returns unspecified. Optional hasInsert() const; /// Returns true if the statement contains an INSERT statement. - /// For Poco::Data builds without SQLParser, it always returns unspecified. + /// For Poco::Data builds with POCO_DATA_NO_SQL_PARSER, it always returns unspecified. Optional hasUpdate() const; /// Returns true if the statement contains an UPDATE statement. - /// For Poco::Data builds without SQLParser, it always returns unspecified. + /// For Poco::Data builds with POCO_DATA_NO_SQL_PARSER, it always returns unspecified. Optional hasDelete() const; /// Returns true if the statement contains a DELETE statement. - /// For Poco::Data builds without SQLParser, it always returns unspecified. + /// For Poco::Data builds with POCO_DATA_NO_SQL_PARSER, it always returns unspecified. std::size_t execute(bool reset = true); /// Executes the statement synchronously or asynchronously. @@ -549,7 +560,8 @@ private: Poco::SharedPtr _pParseResult; std::string _parseError; -#endif // POCO_DATA_NO_SQL_PARSER + +#endif // POCO_DATA_NO_SQL_PARSER StatementImpl::Ptr _pImpl; diff --git a/Data/src/Statement.cpp b/Data/src/Statement.cpp index 0790e1c19..0546b0524 100644 --- a/Data/src/Statement.cpp +++ b/Data/src/Statement.cpp @@ -12,7 +12,9 @@ // +#ifndef POCO_DATA_NO_SQL_PARSER #include "SQLParser.h" +#endif #include "Poco/Data/Statement.h" #include "Poco/Data/DataException.h" #include "Poco/Data/Extraction.h" diff --git a/configure b/configure index b9d020d56..1ceeebeee 100755 --- a/configure +++ b/configure @@ -79,9 +79,8 @@ $(ls -C "$base"/build/config/) Disables small object optimization. --no-sqlparser - Compile with POCO_DATA_NO_SQL_PARSER - SQLParser is not enabled by default for c++14 and below, - so this option only has meaning for c++17 and above. + Compile with -DPOCO_DATA_NO_SQL_PARSER + Disables compilation of the SQLParser. --sqlite-fts= Compile with -DPOCO_DATA_SQLITE_FTS. From 137cd3218303c6ee03cc1783eebcb65da8529af6 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Thu, 15 Feb 2024 16:50:42 +0100 Subject: [PATCH 316/395] fix(test): Disable SQL parsing by default #4462 --- Data/testsuite/src/DataTest.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Data/testsuite/src/DataTest.cpp b/Data/testsuite/src/DataTest.cpp index 8a20b419c..fef722b54 100644 --- a/Data/testsuite/src/DataTest.cpp +++ b/Data/testsuite/src/DataTest.cpp @@ -206,11 +206,11 @@ void DataTest::testFeatures() assertTrue (!sess.getFeature("forceEmptyString")); assertTrue (sess.hasFeature("sqlParse")); - assertTrue (sess.getFeature("sqlParse")); - sess.setFeature("sqlParse", false); - assertTrue (!sess.getFeature("sqlParse")); + assertFalse (sess.getFeature("sqlParse")); sess.setFeature("sqlParse", true); assertTrue (sess.getFeature("sqlParse")); + sess.setFeature("sqlParse", false); + assertFalse (sess.getFeature("sqlParse")); assertTrue (sess.hasFeature("autoCommit")); assertTrue (sess.getFeature("autoCommit")); @@ -1498,6 +1498,10 @@ void DataTest::testSQLParse() sess.setFeature("autoCommit", false); assertTrue (!sess.getFeature("autoCommit")); + assertFalse (sess.getFeature("sqlParse")); + sess.setFeature("sqlParse", true); + assertTrue (sess.getFeature("sqlParse")); + Statement stmt = (sess << "SELECT %s%c%s,%d,%u,%f,%s FROM Person WHERE Name LIKE 'Simp%%'", "'",'a',"'",-1, 1u, 1.5, "42", now); From a64e6cf2f65c8a69a2a178323882934c9ef88870 Mon Sep 17 00:00:00 2001 From: Friedrich Wilckens Date: Thu, 15 Feb 2024 12:02:57 -0800 Subject: [PATCH 317/395] Fixed transaction handling in MySQL test when SQL parser is switched off --- Data/MySQL/testsuite/src/SQLExecutor.cpp | 25 ++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/Data/MySQL/testsuite/src/SQLExecutor.cpp b/Data/MySQL/testsuite/src/SQLExecutor.cpp index 3803223af..6e822cf50 100644 --- a/Data/MySQL/testsuite/src/SQLExecutor.cpp +++ b/Data/MySQL/testsuite/src/SQLExecutor.cpp @@ -1850,9 +1850,11 @@ void SQLExecutor::sessionTransaction(const std::string& connect) catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } assertTrue (0 == count); - assertTrue (!_pSession->isTransaction()); - _pSession->begin(); + if (_pSession->impl()->shouldParse()) { + assertTrue (!_pSession->isTransaction()); + _pSession->begin(); + } try { (*_pSession) << "INSERT INTO Person VALUES (?,?,?,?)", use(lastNames), use(firstNames), use(addresses), use(ages), now; } catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } @@ -1936,11 +1938,13 @@ void SQLExecutor::transaction(const std::string& connect) } assertTrue (!_pSession->isTransaction()); - try { (*_pSession) << "SELECT count(*) FROM Person", into(count), now; } - catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } - catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } - assertTrue (0 == count); - assertTrue (!_pSession->isTransaction()); + if (_pSession->impl()->shouldParse()) { + try { (*_pSession) << "SELECT count(*) FROM Person", into(count), now; } + catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } + catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } + assertTrue (0 == count); + assertTrue (!_pSession->isTransaction()); + } { Transaction trans((*_pSession)); @@ -1965,7 +1969,8 @@ void SQLExecutor::transaction(const std::string& connect) catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } assertTrue (2 == count); - _pSession->begin(); + if (_pSession->impl()->shouldParse()) + _pSession->begin(); try { (*_pSession) << "DELETE FROM Person", now; } catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } @@ -1988,6 +1993,8 @@ void SQLExecutor::transaction(const std::string& connect) sql.push_back(sql1); sql.push_back(sql2); + assertTrue (!_pSession->isTransaction()); + Transaction trans((*_pSession)); trans.execute(sql1, false); @@ -2038,6 +2045,8 @@ void SQLExecutor::reconnect() int count = 0; std::string result; + _pSession->setFeature("autoCommit", true); + try { (*_pSession) << "INSERT INTO Person VALUES (?,?,?,?)", use(lastName), use(firstName), use(address), use(age), now; } catch(ConnectionException& ce){ std::cout << ce.displayText() << std::endl; fail (funct); } catch(StatementException& se){ std::cout << se.displayText() << std::endl; fail (funct); } From 30a0a06bac99b6d35ca867a93201199808ba8b6d Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Mon, 12 Feb 2024 20:27:17 +0100 Subject: [PATCH 318/395] chore(ParallelSocketAcceptor): remove unnecessary include and using from header --- Net/include/Poco/Net/ParallelSocketAcceptor.h | 9 --------- 1 file changed, 9 deletions(-) diff --git a/Net/include/Poco/Net/ParallelSocketAcceptor.h b/Net/include/Poco/Net/ParallelSocketAcceptor.h index ee6a140f3..97da2013f 100644 --- a/Net/include/Poco/Net/ParallelSocketAcceptor.h +++ b/Net/include/Poco/Net/ParallelSocketAcceptor.h @@ -22,19 +22,10 @@ #include "Poco/Net/StreamSocket.h" #include "Poco/Net/ServerSocket.h" #include "Poco/Environment.h" -#include "Poco/NObserver.h" #include "Poco/SharedPtr.h" #include -using Poco::Net::Socket; -using Poco::Net::SocketReactor; -using Poco::Net::ServerSocket; -using Poco::Net::StreamSocket; -using Poco::NObserver; -using Poco::AutoPtr; - - namespace Poco { namespace Net { From 88be66972a07968f027b68860add1d43aa5f135c Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Fri, 16 Feb 2024 09:34:19 +0100 Subject: [PATCH 319/395] AsyncObserver (#4444) * feat(AsyncObserver): Improve NotificationCenter speed and usability #4414 * fix(Notification): add missing header * feat(Any): add checkers for holding nullptr #4447 * feat(NotificationCenter): g++ build and refactoring #4414 * fix(Observer): compile errors on some compilers #4414 * fix(NotificationCenter): compile errors #4414 * chore(ParallelSocketAcceptor): remove unnecessary include and using from header * feat(AsyncNotificationCenter): add #4414 * test(AsyncNotificationCenter): add mixed observer types to the test #4414 * fix(AsyncNotificationCenter): hangs on program exit #4414 * fix(dev): friend not honored, temporarily make private members public * fix(AsyncNotificationCenter); remove default #4414 --- Foundation/Foundation_vs160.vcxproj | 4 + Foundation/Foundation_vs160.vcxproj.filters | 9 + Foundation/Foundation_vs170.vcxproj | 3 + Foundation/Foundation_vs170.vcxproj.filters | 9 + Foundation/Makefile | 2 +- Foundation/include/Poco/AbstractObserver.h | 32 +++- Foundation/include/Poco/Any.h | 60 ++++-- .../include/Poco/AsyncNotificationCenter.h | 77 ++++++++ Foundation/include/Poco/AsyncObserver.h | 177 ++++++++++++++++++ Foundation/include/Poco/Bugcheck.h | 42 +---- Foundation/include/Poco/NObserver.h | 98 ++++++---- Foundation/include/Poco/Notification.h | 4 +- Foundation/include/Poco/NotificationCenter.h | 25 ++- Foundation/include/Poco/Observer.h | 19 +- Foundation/include/Poco/RunnableAdapter.h | 2 +- Foundation/src/AsyncNotificationCenter.cpp | 106 +++++++++++ Foundation/src/Notification.cpp | 5 +- Foundation/src/NotificationCenter.cpp | 44 ++++- Foundation/testsuite/src/AnyTest.cpp | 106 +++++++++++ Foundation/testsuite/src/AnyTest.h | 7 + Foundation/testsuite/src/FIFOEventTest.cpp | 4 +- .../testsuite/src/NotificationCenterTest.cpp | 152 +++++++++++++-- .../testsuite/src/NotificationCenterTest.h | 26 ++- Foundation/testsuite/src/VarTest.cpp | 8 +- 24 files changed, 882 insertions(+), 139 deletions(-) create mode 100644 Foundation/include/Poco/AsyncNotificationCenter.h create mode 100644 Foundation/include/Poco/AsyncObserver.h create mode 100644 Foundation/src/AsyncNotificationCenter.cpp diff --git a/Foundation/Foundation_vs160.vcxproj b/Foundation/Foundation_vs160.vcxproj index 791df8391..cbd30972b 100644 --- a/Foundation/Foundation_vs160.vcxproj +++ b/Foundation/Foundation_vs160.vcxproj @@ -577,6 +577,7 @@ + @@ -1493,6 +1494,7 @@ + @@ -1502,6 +1504,8 @@ + + diff --git a/Foundation/Foundation_vs160.vcxproj.filters b/Foundation/Foundation_vs160.vcxproj.filters index 2698f3fbb..a1ab1d931 100644 --- a/Foundation/Foundation_vs160.vcxproj.filters +++ b/Foundation/Foundation_vs160.vcxproj.filters @@ -573,6 +573,9 @@ Notifications\Source Files + + Notifications\Source Files + Notifications\Source Files @@ -1448,6 +1451,12 @@ Notifications\Header Files + + Notifications\Header Files + + + Notifications\Header Files + Notifications\Header Files diff --git a/Foundation/Foundation_vs170.vcxproj b/Foundation/Foundation_vs170.vcxproj index 49ca0eb15..cb7ca5930 100644 --- a/Foundation/Foundation_vs170.vcxproj +++ b/Foundation/Foundation_vs170.vcxproj @@ -878,6 +878,7 @@ + @@ -2109,6 +2110,8 @@ + + diff --git a/Foundation/Foundation_vs170.vcxproj.filters b/Foundation/Foundation_vs170.vcxproj.filters index f06337f92..f1d9f94b6 100644 --- a/Foundation/Foundation_vs170.vcxproj.filters +++ b/Foundation/Foundation_vs170.vcxproj.filters @@ -579,6 +579,9 @@ Notifications\Source Files + + Notifications\Source Files + Notifications\Source Files @@ -1447,6 +1450,12 @@ Notifications\Header Files + + Notifications\Header Files + + + Notifications\Header Files + Notifications\Header Files diff --git a/Foundation/Makefile b/Foundation/Makefile index 96e0100e5..2cf81af21 100644 --- a/Foundation/Makefile +++ b/Foundation/Makefile @@ -6,7 +6,7 @@ include $(POCO_BASE)/build/rules/global -objects = ArchiveStrategy Ascii ASCIIEncoding AsyncChannel ActiveThreadPool\ +objects = ArchiveStrategy Ascii ASCIIEncoding AsyncChannel AsyncNotificationCenter ActiveThreadPool\ Base32Decoder Base32Encoder Base64Decoder Base64Encoder \ BinaryReader BinaryWriter Bugcheck ByteOrder Channel Checksum Clock Configurable ConsoleChannel \ Condition CountingStream DateTime LocalDateTime DateTimeFormat DateTimeFormatter DateTimeParser \ diff --git a/Foundation/include/Poco/AbstractObserver.h b/Foundation/include/Poco/AbstractObserver.h index 7606878be..0b6a60397 100755 --- a/Foundation/include/Poco/AbstractObserver.h +++ b/Foundation/include/Poco/AbstractObserver.h @@ -37,12 +37,42 @@ public: AbstractObserver& operator = (const AbstractObserver& observer); virtual void notify(Notification* pNf) const = 0; + virtual bool equals(const AbstractObserver& observer) const = 0; - virtual bool accepts(Notification* pNf, const char* pName = 0) const = 0; + + [[deprecated("use `Poco::Any accepts(Notification*)` instead")]] + virtual bool accepts(Notification* pNf, const char* pName) const = 0; + + virtual bool accepts(const Notification::Ptr& pNf) const = 0; + virtual AbstractObserver* clone() const = 0; + + virtual void start(); + /// No-op. + /// This method can be implemented by inheriting classes which require + /// explicit start in order to begin processing notifications. + virtual void disable() = 0; + + virtual int backlog() const; + /// Returns number of queued messages that this Observer has. + /// For non-active (synchronous) observers, always returns zero. }; +// +// inlines +// + +inline void AbstractObserver::start() +{ +} + + +inline int AbstractObserver::backlog() const +{ + return 0; +} + } // namespace Poco diff --git a/Foundation/include/Poco/Any.h b/Foundation/include/Poco/Any.h index 42b8da0a9..4415984f1 100644 --- a/Foundation/include/Poco/Any.h +++ b/Foundation/include/Poco/Any.h @@ -24,13 +24,12 @@ #include -#define poco_any_assert(cond) do { if (!(cond)) std::abort(); } while (0) - - namespace Poco { class Any; +using namespace std::string_literals; + namespace Dynamic { class Var; @@ -409,12 +408,12 @@ ValueType* AnyCast(Any* operand) /// to the stored value. /// /// Example Usage: - /// MyType* pTmp = AnyCast(pAny). - /// Will return NULL if the cast fails, i.e. types don't match. + /// MyType* pTmp = AnyCast(pAny). + /// Returns nullptr if the types don't match. { return operand && operand->type() == typeid(ValueType) ? &static_cast*>(operand->content())->_held - : 0; + : nullptr; } @@ -424,8 +423,8 @@ const ValueType* AnyCast(const Any* operand) /// to the stored value. /// /// Example Usage: - /// const MyType* pTmp = AnyCast(pAny). - /// Will return NULL if the cast fails, i.e. types don't match. + /// const MyType* pTmp = AnyCast(pAny). + /// Returns nullptr if the types don't match. { return AnyCast(const_cast(operand)); } @@ -442,18 +441,19 @@ ValueType AnyCast(Any& operand) /// Some compilers will accept this code although a copy is returned. Use the RefAnyCast in /// these cases. { - typedef typename TypeWrapper::TYPE NonRef; + using NonRef = typename TypeWrapper::TYPE; NonRef* result = AnyCast(&operand); if (!result) { - std::string s = "RefAnyCast: Failed to convert between Any types "; + std::string s(__func__); + s.append(": Failed to convert between Any types "s); if (operand.content()) { s.append(1, '('); - s.append(operand.content()->type().name()); + s.append(Poco::demangle(operand.content()->type().name())); s.append(" => "); - s.append(typeid(ValueType).name()); + s.append(Poco::demangle()); s.append(1, ')'); } throw BadCastException(s); @@ -473,7 +473,7 @@ ValueType AnyCast(const Any& operand) /// Some compilers will accept this code although a copy is returned. Use the RefAnyCast in /// these cases. { - typedef typename TypeWrapper::TYPE NonRef; + using NonRef = typename TypeWrapper::TYPE; return AnyCast(const_cast(operand)); } @@ -489,13 +489,14 @@ const ValueType& RefAnyCast(const Any & operand) ValueType* result = AnyCast(const_cast(&operand)); if (!result) { - std::string s = "RefAnyCast: Failed to convert between Any types "; + std::string s(__func__); + s.append(": Failed to convert between Any types "s); if (operand.content()) { s.append(1, '('); - s.append(operand.content()->type().name()); + s.append(Poco::demangle(operand.content()->type().name())); s.append(" => "); - s.append(typeid(ValueType).name()); + s.append(Poco::demangle()); s.append(1, ')'); } throw BadCastException(s); @@ -514,13 +515,14 @@ ValueType& RefAnyCast(Any& operand) ValueType* result = AnyCast(&operand); if (!result) { - std::string s = "RefAnyCast: Failed to convert between Any types "; + std::string s(__func__); + s.append(": Failed to convert between Any types "s); if (operand.content()) { s.append(1, '('); - s.append(operand.content()->type().name()); + s.append(Poco::demangle(operand.content()->type().name())); s.append(" => "); - s.append(typeid(ValueType).name()); + s.append(Poco::demangle()); s.append(1, ')'); } throw BadCastException(s); @@ -553,6 +555,26 @@ const ValueType* UnsafeAnyCast(const Any* operand) } +template +bool AnyHoldsNullPtr(const Any& any) + /// Returns true if any holds a null pointer. + /// Fails to compile if `ValueType` is not a pointer. +{ + poco_static_assert_ptr(ValueType); + return (AnyCast(any) == nullptr); +} + + +template +bool AnyHoldsNullPtr(const Any* pAny) + /// Returns true if the Any pointed to holds a null pointer. + /// Returns false if `pAny` is a null pointer. +{ + if (!pAny) return false; + return (AnyHoldsNullPtr(*pAny)); +} + + } // namespace Poco diff --git a/Foundation/include/Poco/AsyncNotificationCenter.h b/Foundation/include/Poco/AsyncNotificationCenter.h new file mode 100644 index 000000000..7bf8ded1b --- /dev/null +++ b/Foundation/include/Poco/AsyncNotificationCenter.h @@ -0,0 +1,77 @@ +// +// AsyncNotificationCenter.h +// +// Library: Foundation +// Package: Notifications +// Module: AsyncNotificationCenter +// +// Definition of the AsyncNotificationCenter class. +// +// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. +// Aleph ONE Software Engineering d.o.o., +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef Foundation_AsyncNotificationCenter_INCLUDED +#define Foundation_AsyncNotificationCenter_INCLUDED + + +#include "Poco/Foundation.h" +#include "Poco/NotificationCenter.h" +#include "Poco/Thread.h" +#include "Poco/Stopwatch.h" +#include "Poco/Debugger.h" +#include "Poco/ErrorHandler.h" +#include "Poco/Format.h" +#include "Poco/RunnableAdapter.h" +#include "Poco/NotificationQueue.h" + + +namespace Poco { + + +class Foundation_API AsyncNotificationCenter: public NotificationCenter + /// AsyncNotificationCenter decouples posting of notifications + /// from notifying subscribers by calling observers' notification + /// handler in a dedicated thread. +{ +public: + AsyncNotificationCenter(); + /// Creates the AsyncNotificationCenter and starts the notifying thread. + + ~AsyncNotificationCenter(); + /// Stops the notifying thread and destroys the AsyncNotificationCenter. + + AsyncNotificationCenter& operator = (const AsyncNotificationCenter&) = delete; + AsyncNotificationCenter(const AsyncNotificationCenter&) = delete; + AsyncNotificationCenter& operator = (AsyncNotificationCenter&&) = delete; + AsyncNotificationCenter(AsyncNotificationCenter&&) = delete; + + virtual void postNotification(Notification::Ptr pNotification); + /// Enqueues notification into the notification queue. + + virtual int backlog() const; + /// Returns the numbner of notifications in the notification queue. + +private: + void start(); + void stop(); + void dequeue(); + + using Adapter = RunnableAdapter; + + Thread _thread; + NotificationQueue _nq; + Adapter _ra; + std::atomic _started; + std::atomic _done; +}; + + +} // namespace Poco + + +#endif // Foundation_AsyncNotificationCenter_INCLUDED diff --git a/Foundation/include/Poco/AsyncObserver.h b/Foundation/include/Poco/AsyncObserver.h new file mode 100644 index 000000000..221ee54b2 --- /dev/null +++ b/Foundation/include/Poco/AsyncObserver.h @@ -0,0 +1,177 @@ +// +// AsyncObserver.h +// +// Library: Foundation +// Package: Notifications +// Module: AsyncObserver +// +// Definition of the AsyncObserver class template. +// +// Copyright (c) 2006, Applied Informatics Software Engineering GmbH. +// Aleph ONE Software Engineering d.o.o., +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef Foundation_AsyncObserver_INCLUDED +#define Foundation_AsyncObserver_INCLUDED + + +#include "Poco/Foundation.h" +#include "Poco/NObserver.h" +#include "Poco/Thread.h" +#include "Poco/Stopwatch.h" +#include "Poco/Debugger.h" +#include "Poco/ErrorHandler.h" +#include "Poco/Format.h" +#include "Poco/RunnableAdapter.h" +#include "Poco/NotificationQueue.h" + + +namespace Poco { + + +template +class AsyncObserver: public NObserver + /// AsyncObserver notifies subscribers in a dedicated thread (as opposed + /// to (N)Observer classes, which notify subscribers synchronously). + /// In order to become active and process notifications, the start() + /// method must be called. + /// + /// This class is meant to be used with the NotificationCenter only. + /// Notification processing thread can be started only once, and copying + /// should be done before `start()` is called. +{ +public: + using Type = AsyncObserver; + using Matcher = typename NObserver::Matcher; + using Handler = typename NObserver::Handler; + using NotificationPtr = typename NObserver::NotificationPtr; + + AsyncObserver() = delete; + + AsyncObserver(C& object, Handler handler, Matcher matcher = nullptr): + NObserver(object, handler, matcher), + _ra(*this, &AsyncObserver::dequeue), + _started(false), + _done(false) + { + } + + AsyncObserver(const AsyncObserver& observer): + NObserver(observer), + _ra(*this, &AsyncObserver::dequeue), + _started(false), + _done(false) + { + poco_assert(observer._nq.size() == 0); + } + + ~AsyncObserver() + { + disable(); + } + + AsyncObserver& operator = (const AsyncObserver& observer) + { + if (&observer != this) + { + poco_assert(observer._nq.size() == 0); + setObject(observer._pObject); + setHandler(observer._handler); + setMatcher(observer._matcher); + _started = false; + _done =false; + } + return *this; + } + + virtual void notify(Notification* pNf) const + { + _nq.enqueueNotification(NotificationPtr(static_cast(pNf), true)); + } + + virtual AbstractObserver* clone() const + { + return new AsyncObserver(*this); + } + + virtual void start() + { + Poco::ScopedLock l(this->mutex()); + if (_started) + { + throw Poco::InvalidAccessException( + Poco::format("thread already started %s", poco_src_loc)); + } + + _thread.start(_ra); + Poco::Stopwatch sw; + sw.start(); + while (!_started) + { + if (sw.elapsedSeconds() > 5) + throw Poco::TimeoutException(poco_src_loc); + Thread::sleep(100); + } + } + + virtual void disable() + { + if (!_started.exchange(false)) return; + _nq.wakeUpAll(); + while (!_done) Thread::sleep(100); + _thread.join(); + NObserver::disable(); + } + + virtual int backlog() const + { + return _nq.size(); + } + +private: + void dequeue() + { + Notification::Ptr pNf; + _started = true; + _done = false; + while ((pNf = _nq.waitDequeueNotification())) + { + try + { + this->handle(pNf.unsafeCast()); + } + catch (Poco::Exception& ex) + { + Poco::ErrorHandler::handle(ex); + } + catch (std::exception& ex) + { + Poco::ErrorHandler::handle(ex); + } + catch (...) + { + Poco::ErrorHandler::handle(); + } + } + _done = true; + _started = false; + } + + using Adapter = RunnableAdapter>; + + Thread _thread; + mutable NotificationQueue _nq; + Adapter _ra; + std::atomic _started; + std::atomic _done; +}; + + +} // namespace Poco + + +#endif // Foundation_AsyncObserver_INCLUDED diff --git a/Foundation/include/Poco/Bugcheck.h b/Foundation/include/Poco/Bugcheck.h index 6e1e4aae7..4be0c9e36 100644 --- a/Foundation/include/Poco/Bugcheck.h +++ b/Foundation/include/Poco/Bugcheck.h @@ -165,42 +165,16 @@ protected: #endif -// -// poco_static_assert -// -// The following was ported from -// +#define poco_static_assert(B) static_assert(B) -template -struct POCO_STATIC_ASSERTION_FAILURE; - - -template <> -struct POCO_STATIC_ASSERTION_FAILURE -{ - enum - { - value = 1 - }; -}; - - -template -struct poco_static_assert_test -{ -}; - - -#if defined(__GNUC__) && (__GNUC__ == 3) && ((__GNUC_MINOR__ == 3) || (__GNUC_MINOR__ == 4)) -#define poco_static_assert(B) \ - typedef char POCO_JOIN(poco_static_assert_typedef_, __LINE__) \ - [POCO_STATIC_ASSERTION_FAILURE<(bool) (B)>::value] -#else -#define poco_static_assert(B) \ - typedef poco_static_assert_test)> \ - POCO_JOIN(poco_static_assert_typedef_, __LINE__) POCO_UNUSED -#endif +#define poco_static_assert_ptr(T) \ + static_assert(std::is_pointer_v || \ + std::is_same_v || \ + std::is_member_pointer_v || \ + std::is_member_function_pointer_v || \ + std::is_member_object_pointer_v, \ + "not a pointer") #endif // Foundation_Bugcheck_INCLUDED diff --git a/Foundation/include/Poco/NObserver.h b/Foundation/include/Poco/NObserver.h index 95b61fabd..a348c9151 100755 --- a/Foundation/include/Poco/NObserver.h +++ b/Foundation/include/Poco/NObserver.h @@ -3,7 +3,7 @@ // // Library: Foundation // Package: Notifications -// Module: NotificationCenter +// Module: NObserver // // Definition of the NObserver class template. // @@ -37,25 +37,39 @@ class NObserver: public AbstractObserver /// to use this template class. /// /// This class template is quite similar to the Observer class - /// template. The only difference is that the NObserver - /// expects the callback function to accept a const AutoPtr& - /// instead of a plain pointer as argument, thus simplifying memory - /// management. + /// template. The differences are: + /// + /// - NObserver expects the callback function to accept a const AutoPtr& + /// instead of a plain pointer as argument, thus simplifying memory + /// management. + /// + /// - In addition to dispatching notifications based on the Notification runtime + /// type, NObserver can also notify subscribers based on the Notification name. + /// To enable this functionality, a matcher function must be provided. + /// Null matcher means no matching is performed and all notificiations + /// of the type subscribed to are dispatched. { public: - typedef AutoPtr NotificationPtr; - typedef void (C::*Callback)(const NotificationPtr&); + using Type = NObserver; + using NotificationPtr = AutoPtr; + using Callback = void (C::*)(const NotificationPtr&); + using Handler = Callback; + using Matcher = bool (C::*)(const std::string&) const; - NObserver(C& object, Callback method): + NObserver() = delete; + + NObserver(C& object, Handler method, Matcher matcher = nullptr): _pObject(&object), - _method(method) + _handler(method), + _matcher(matcher) { } NObserver(const NObserver& observer): AbstractObserver(observer), _pObject(observer._pObject), - _method(observer._method) + _handler(observer._handler), + _matcher(observer._matcher) { } @@ -68,54 +82,72 @@ public: if (&observer != this) { _pObject = observer._pObject; - _method = observer._method; + _handler = observer._handler; + _matcher = observer._matcher; } return *this; } - void notify(Notification* pNf) const + virtual void notify(Notification* pNf) const { - Poco::Mutex::ScopedLock lock(_mutex); - - if (_pObject) - { - N* pCastNf = dynamic_cast(pNf); - if (pCastNf) - { - NotificationPtr ptr(pCastNf, true); - (_pObject->*_method)(ptr); - } - } + handle(NotificationPtr(static_cast(pNf), true)); } - bool equals(const AbstractObserver& abstractObserver) const + virtual bool equals(const AbstractObserver& abstractObserver) const { const NObserver* pObs = dynamic_cast(&abstractObserver); - return pObs && pObs->_pObject == _pObject && pObs->_method == _method; + return pObs && pObs->_pObject == _pObject && pObs->_handler == _handler && pObs->_matcher == _matcher; } - bool accepts(Notification* pNf, const char* pName = 0) const + [[deprecated("use `bool accepts(const Notification::Ptr&)` instead")]] + virtual bool accepts(Notification* pNf, const char* pName) const { - return dynamic_cast(pNf) && (!pName || pNf->name() == pName); + return (!pName || pNf->name() == pName) && dynamic_cast(pNf) != nullptr; } - AbstractObserver* clone() const + virtual bool accepts(const Notification::Ptr& pNf) const + { + return (match(pNf) && (pNf.template cast() != nullptr)); + } + + virtual AbstractObserver* clone() const { return new NObserver(*this); } - void disable() + virtual void disable() { Poco::Mutex::ScopedLock lock(_mutex); - _pObject = 0; + _pObject = nullptr; + } + +protected: + + void handle(const NotificationPtr& ptr) const + { + Mutex::ScopedLock lock(_mutex); + + if (_pObject) + (_pObject->*_handler)(ptr); + } + + bool match(const Notification::Ptr& ptr) const + { + Mutex::ScopedLock l(_mutex); + + return _pObject && (!_matcher || (_pObject->*_matcher)(ptr->name())); + } + + Mutex& mutex() const + { + return _mutex; } private: - NObserver(); - C* _pObject; - Callback _method; + Callback _handler; + Matcher _matcher; mutable Poco::Mutex _mutex; }; diff --git a/Foundation/include/Poco/Notification.h b/Foundation/include/Poco/Notification.h index 4226ebf7d..9d84287c2 100644 --- a/Foundation/include/Poco/Notification.h +++ b/Foundation/include/Poco/Notification.h @@ -22,6 +22,7 @@ #include "Poco/Mutex.h" #include "Poco/RefCountedObject.h" #include "Poco/AutoPtr.h" +#include namespace Poco { @@ -37,7 +38,7 @@ class Foundation_API Notification: public RefCountedObject public: using Ptr = AutoPtr; - Notification(); + Notification(const std::string& name = ""s); /// Creates the notification. virtual std::string name() const; @@ -46,6 +47,7 @@ public: protected: virtual ~Notification(); + std::unique_ptr _pName; }; diff --git a/Foundation/include/Poco/NotificationCenter.h b/Foundation/include/Poco/NotificationCenter.h index dd77972b2..33964baa5 100644 --- a/Foundation/include/Poco/NotificationCenter.h +++ b/Foundation/include/Poco/NotificationCenter.h @@ -79,10 +79,11 @@ class Foundation_API NotificationCenter /// } { public: + NotificationCenter(); /// Creates the NotificationCenter. - ~NotificationCenter(); + virtual ~NotificationCenter(); /// Destroys the NotificationCenter. void addObserver(const AbstractObserver& observer); @@ -99,7 +100,7 @@ public: bool hasObserver(const AbstractObserver& observer) const; /// Returns true if the observer is registered with this NotificationCenter. - void postNotification(Notification::Ptr pNotification); + virtual void postNotification(Notification::Ptr pNotification); /// Posts a notification to the NotificationCenter. /// The NotificationCenter then delivers the notification /// to all interested observers. @@ -120,13 +121,29 @@ public: std::size_t countObservers() const; /// Returns the number of registered observers. + virtual int backlog() const; + /// Returns the sum of queued notifications + /// for all observers (applies only to asynchronous observers, + /// regular observers post notifications syncronously and + /// never have a backlog). + static NotificationCenter& defaultCenter(); /// Returns a reference to the default /// NotificationCenter. +protected: + using AbstractObserverPtr = SharedPtr; + using ObserverList = std::vector; + + Mutex& mutex() + { + return _mutex; + } + + ObserverList observersToNotify(const Notification::Ptr& pNotification) const; + void notifyObservers(Notification::Ptr& pNotification); + private: - typedef SharedPtr AbstractObserverPtr; - typedef std::vector ObserverList; ObserverList _observers; mutable Mutex _mutex; diff --git a/Foundation/include/Poco/Observer.h b/Foundation/include/Poco/Observer.h index e7bc67413..2f231cbc4 100755 --- a/Foundation/include/Poco/Observer.h +++ b/Foundation/include/Poco/Observer.h @@ -74,15 +74,10 @@ public: void notify(Notification* pNf) const { Poco::Mutex::ScopedLock lock(_mutex); - if (_pObject) { - N* pCastNf = dynamic_cast(pNf); - if (pCastNf) - { - pCastNf->duplicate(); - (_pObject->*_method)(pCastNf); - } + pNf->duplicate(); + (_pObject->*_method)(static_cast(pNf)); } } @@ -92,9 +87,15 @@ public: return pObs && pObs->_pObject == _pObject && pObs->_method == _method; } - bool accepts(Notification* pNf, const char* pName = 0) const + [[deprecated("use `bool accepts(const Notification::Ptr&)` instead")]] + bool accepts(Notification* pNf, const char* pName) const { - return dynamic_cast(pNf) && (!pName || pNf->name() == pName); + return (!pName || pNf->name() == pName) && (dynamic_cast(pNf) != nullptr); + } + + bool accepts(const Notification::Ptr& pNf) const + { + return (pNf.cast() != nullptr); } AbstractObserver* clone() const diff --git a/Foundation/include/Poco/RunnableAdapter.h b/Foundation/include/Poco/RunnableAdapter.h index 0fa16ef8b..e3480486d 100644 --- a/Foundation/include/Poco/RunnableAdapter.h +++ b/Foundation/include/Poco/RunnableAdapter.h @@ -32,7 +32,7 @@ class RunnableAdapter: public Runnable /// Usage: /// RunnableAdapter ra(myObject, &MyObject::doSomething)); /// Thread thr; - /// thr.Start(ra); + /// thr.start(ra); /// /// For using a freestanding or static member function as a thread /// target, please see the ThreadTarget class. diff --git a/Foundation/src/AsyncNotificationCenter.cpp b/Foundation/src/AsyncNotificationCenter.cpp new file mode 100644 index 000000000..61fbb9113 --- /dev/null +++ b/Foundation/src/AsyncNotificationCenter.cpp @@ -0,0 +1,106 @@ +// +// AsyncNotificationCenter.cpp +// +// Library: Foundation +// Package: Notifications +// Module: AsyncNotificationCenter +// +// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. +// Aleph ONE Software Engineering d.o.o., +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/AsyncNotificationCenter.h" + + +namespace Poco { + + +AsyncNotificationCenter::AsyncNotificationCenter(): _ra(*this, &AsyncNotificationCenter::dequeue), + _started(false), + _done(false) +{ + start(); +} + + +AsyncNotificationCenter::~AsyncNotificationCenter() +{ + stop(); +} + + +void AsyncNotificationCenter::postNotification(Notification::Ptr pNotification) +{ + _nq.enqueueNotification(pNotification); +} + + +int AsyncNotificationCenter::backlog() const +{ + return _nq.size(); +} + + +void AsyncNotificationCenter::start() +{ + Poco::ScopedLock l(mutex()); + if (_started) + { + throw Poco::InvalidAccessException( + Poco::format("thread already started %s", poco_src_loc)); + } + _thread.start(_ra); + Poco::Stopwatch sw; + sw.start(); + while (!_started) + { + if (sw.elapsedSeconds() > 5) + throw Poco::TimeoutException(poco_src_loc); + Thread::sleep(100); + } +} + + +void AsyncNotificationCenter::stop() +{ + if (!_started.exchange(false)) return; + _nq.wakeUpAll(); + while (!_done) Thread::sleep(100); + _thread.join(); +} + + +void AsyncNotificationCenter::dequeue() +{ + Notification::Ptr pNf; + _started = true; + _done = false; + while ((pNf = _nq.waitDequeueNotification())) + { + try + { + notifyObservers(pNf); + } + catch (Poco::Exception& ex) + { + Poco::ErrorHandler::handle(ex); + } + catch (std::exception& ex) + { + Poco::ErrorHandler::handle(ex); + } + catch (...) + { + Poco::ErrorHandler::handle(); + } + } + _done = true; + _started = false; +} + + +} // namespace Poco diff --git a/Foundation/src/Notification.cpp b/Foundation/src/Notification.cpp index b2d6b489a..54a41ce8d 100644 --- a/Foundation/src/Notification.cpp +++ b/Foundation/src/Notification.cpp @@ -19,7 +19,8 @@ namespace Poco { -Notification::Notification() +Notification::Notification(const std::string& name): + _pName(name.empty() ? nullptr : new std::string(name)) { } @@ -31,7 +32,7 @@ Notification::~Notification() std::string Notification::name() const { - return typeid(*this).name(); + return _pName ? *_pName : typeid(*this).name(); } diff --git a/Foundation/src/NotificationCenter.cpp b/Foundation/src/NotificationCenter.cpp index ea235ef56..465cb8060 100644 --- a/Foundation/src/NotificationCenter.cpp +++ b/Foundation/src/NotificationCenter.cpp @@ -47,6 +47,7 @@ void NotificationCenter::addObserver(const AbstractObserver& observer) { Mutex::ScopedLock lock(_mutex); _observers.push_back(observer.clone()); + _observers.back()->start(); } @@ -75,17 +76,34 @@ bool NotificationCenter::hasObserver(const AbstractObserver& observer) const } +NotificationCenter::ObserverList NotificationCenter::observersToNotify(const Notification::Ptr& pNotification) const +{ + ObserverList ret; + ScopedLock lock(_mutex); + for (auto& o : _observers) + { + if (o->accepts(pNotification)) + ret.push_back(o); + } + return ret; +} + + void NotificationCenter::postNotification(Notification::Ptr pNotification) { poco_check_ptr (pNotification); - ScopedLockWithUnlock lock(_mutex); - ObserverList observersToNotify(_observers); - lock.unlock(); - for (auto& p: observersToNotify) - { + notifyObservers(pNotification); +} + + +void NotificationCenter::notifyObservers(Notification::Ptr& pNotification) +{ + poco_check_ptr (pNotification); + + ObserverList observers = observersToNotify(pNotification); + for (auto& p: observers) p->notify(pNotification); - } } @@ -105,6 +123,20 @@ std::size_t NotificationCenter::countObservers() const } +int NotificationCenter::backlog() const +{ + int cnt = 0; + + ScopedLockWithUnlock lock(_mutex); + ObserverList observersToCount(_observers); + lock.unlock(); + for (auto& p : observersToCount) + cnt += p->backlog(); + + return cnt; +} + + NotificationCenter& NotificationCenter::defaultCenter() { static NotificationCenter nc; diff --git a/Foundation/testsuite/src/AnyTest.cpp b/Foundation/testsuite/src/AnyTest.cpp index 6a9d95c73..ad404a7ba 100644 --- a/Foundation/testsuite/src/AnyTest.cpp +++ b/Foundation/testsuite/src/AnyTest.cpp @@ -334,6 +334,111 @@ void AnyTest::testAnyInt() } +class A +{ +public: + void f() {} + int m; +}; + + +void AnyTest::testAnyPointer() +{ + int i = 13; + + Any a = &i; + assertTrue (a.type() == typeid(int*)); + assertFalse (AnyHoldsNullPtr(a)); + assertFalse (AnyHoldsNullPtr(&a)); + int* p = AnyCast(&i); + assertTrue (*p == 13); + Any b = a; + assertTrue (b.type() == typeid(int*)); + int* cpyI = AnyCast(b); + assertTrue (*cpyI == *p); + *cpyI = 20; + assertTrue (*cpyI == *p); + std::string* s = AnyCast(&a); + assertTrue (s == NULL); + assertTrue (AnyCast(&a) == nullptr); + + int* POCO_UNUSED tmp = AnyCast(a); + const Any c = a; + tmp = AnyCast(a); + + Any nullPtr(nullptr); + assertFalse (AnyHoldsNullPtr(nullptr)); + assertFalse (AnyHoldsNullPtr(0)); + assertTrue (AnyHoldsNullPtr(nullPtr)); + assertTrue (AnyHoldsNullPtr(&nullPtr)); + try + { + AnyHoldsNullPtr(nullPtr); + fail ("AnyCast must fail", __LINE__, __FILE__); + } + catch(const Poco::BadCastException&) {} + nullPtr = &i; + try + { + assertFalse (AnyHoldsNullPtr(nullPtr)); + fail ("AnyCast must fail", __LINE__, __FILE__); + } + catch(const Poco::BadCastException&) {} + assertFalse (AnyHoldsNullPtr(nullPtr)); + + void* voidPtr = nullptr; + Any nullVoidPtr(voidPtr); + assertTrue (AnyHoldsNullPtr(nullVoidPtr)); + try + { + AnyHoldsNullPtr(voidPtr); + fail ("AnyCast must fail", __LINE__, __FILE__); + } + catch(const Poco::BadCastException&) {} + + using FP = void (AnyTest::*)(); + FP fp = nullptr; + Any funcPtr(fp); + assertTrue (AnyHoldsNullPtr(funcPtr)); + try + { + AnyHoldsNullPtr(voidPtr); + fail ("AnyCast must fail", __LINE__, __FILE__); + } + catch(const Poco::BadCastException&) {} + funcPtr = &AnyTest::testAnyPointer; + assertFalse (AnyHoldsNullPtr(funcPtr)); + + using OP = decltype(&AnyTest::_dummyObject); + OP op = nullptr; + Any objPtr(op); + assertTrue (AnyHoldsNullPtr(objPtr)); + objPtr = &AnyTest::_dummyObject; + try + { + AnyHoldsNullPtr(funcPtr); + fail ("AnyCast must fail", __LINE__, __FILE__); + } + catch(const Poco::BadCastException&) {} + + assertFalse (AnyHoldsNullPtr(objPtr)); + + using MP = decltype(&AnyTest::_dummy); + MP mp = nullptr; + Any memPtr(mp); + assertTrue (AnyHoldsNullPtr(memPtr)); + memPtr = &AnyTest::_dummy; + try + { + AnyHoldsNullPtr(objPtr); + fail ("AnyCast must fail", __LINE__, __FILE__); + } + catch(const Poco::BadCastException&) {} + + assertFalse (AnyHoldsNullPtr(memPtr)); +} + + void AnyTest::testAnyComplexType() { SomeClass str(13,std::string("hello")); @@ -456,6 +561,7 @@ CppUnit::Test* AnyTest::suite() CppUnit_addTest(pSuite, AnyTest, testAnySwap); CppUnit_addTest(pSuite, AnyTest, testAnyEmptyCopy); CppUnit_addTest(pSuite, AnyTest, testAnyCastToReference); + CppUnit_addTest(pSuite, AnyTest, testAnyPointer); CppUnit_addTest(pSuite, AnyTest, testAnyInt); CppUnit_addTest(pSuite, AnyTest, testAnyComplexType); CppUnit_addTest(pSuite, AnyTest, testAnyVector); diff --git a/Foundation/testsuite/src/AnyTest.h b/Foundation/testsuite/src/AnyTest.h index c76c25066..e3780fa55 100644 --- a/Foundation/testsuite/src/AnyTest.h +++ b/Foundation/testsuite/src/AnyTest.h @@ -20,6 +20,8 @@ class AnyTest: public CppUnit::TestCase { public: + class Dummy{}; + AnyTest(const std::string& name); ~AnyTest(); @@ -33,6 +35,7 @@ public: void testAnyEmptyCopy(); void testAnyCastToReference(); + void testAnyPointer(); void testAnyInt(); void testAnyComplexType(); void testAnyVector(); @@ -42,6 +45,10 @@ public: void setUp(); void tearDown(); static CppUnit::Test* suite(); + +private: + int _dummy = 0; + Dummy _dummyObject; }; diff --git a/Foundation/testsuite/src/FIFOEventTest.cpp b/Foundation/testsuite/src/FIFOEventTest.cpp index 570dc75c1..d2c77511e 100644 --- a/Foundation/testsuite/src/FIFOEventTest.cpp +++ b/Foundation/testsuite/src/FIFOEventTest.cpp @@ -377,7 +377,7 @@ void FIFOEventTest::testAsyncNotifyBenchmark() assertTrue (vresult[i].data() == (i*2)); } sw.stop(); - times.push_back(sw.elapsed()/1000); + times.push_back(static_cast(sw.elapsed()/1000)); vresult.clear(); } @@ -451,7 +451,7 @@ void FIFOEventTest::onAsyncBench(const void* pSender, int& i) int FIFOEventTest::getCount() const { - return _count; + return static_cast(_count.load()); } diff --git a/Foundation/testsuite/src/NotificationCenterTest.cpp b/Foundation/testsuite/src/NotificationCenterTest.cpp index ad4c33727..018c3d44d 100644 --- a/Foundation/testsuite/src/NotificationCenterTest.cpp +++ b/Foundation/testsuite/src/NotificationCenterTest.cpp @@ -12,24 +12,40 @@ #include "CppUnit/TestCaller.h" #include "CppUnit/TestSuite.h" #include "Poco/NotificationCenter.h" +#include "Poco/AsyncNotificationCenter.h" #include "Poco/Observer.h" #include "Poco/NObserver.h" +#include "Poco/AsyncObserver.h" #include "Poco/AutoPtr.h" using Poco::NotificationCenter; +using Poco::AsyncNotificationCenter; using Poco::Observer; using Poco::NObserver; +using Poco::AsyncObserver; using Poco::Notification; using Poco::AutoPtr; class TestNotification: public Notification { +public: + TestNotification() + {} + + TestNotification(const std::string& name): + Notification(name) + {} }; -NotificationCenterTest::NotificationCenterTest(const std::string& name): CppUnit::TestCase(name) +NotificationCenterTest::NotificationCenterTest(const std::string& name): + CppUnit::TestCase(name), + _handle1Done(false), + _handleAuto1Done(false), + _handleAsync1Done(false), + _handleAsync2Done(false) { } @@ -39,14 +55,14 @@ NotificationCenterTest::~NotificationCenterTest() } -void NotificationCenterTest::test1() +void NotificationCenterTest::testNotificationCenter1() { NotificationCenter nc; nc.postNotification(new Notification); } -void NotificationCenterTest::test2() +void NotificationCenterTest::testNotificationCenter2() { NotificationCenter nc; Observer o(*this, &NotificationCenterTest::handle1); @@ -64,7 +80,7 @@ void NotificationCenterTest::test2() } -void NotificationCenterTest::test3() +void NotificationCenterTest::testNotificationCenter3() { NotificationCenter nc; Observer o1(*this, &NotificationCenterTest::handle1); @@ -88,7 +104,7 @@ void NotificationCenterTest::test3() } -void NotificationCenterTest::test4() +void NotificationCenterTest::testNotificationCenter4() { NotificationCenter nc; Observer o1(*this, &NotificationCenterTest::handle1); @@ -119,7 +135,7 @@ void NotificationCenterTest::test4() } -void NotificationCenterTest::test5() +void NotificationCenterTest::testNotificationCenter5() { NotificationCenter nc; nc.addObserver(Observer(*this, &NotificationCenterTest::handle1)); @@ -137,7 +153,7 @@ void NotificationCenterTest::test5() } -void NotificationCenterTest::testAuto() +void NotificationCenterTest::testNotificationCenterAuto() { NotificationCenter nc; nc.addObserver(NObserver(*this, &NotificationCenterTest::handleAuto)); @@ -148,7 +164,59 @@ void NotificationCenterTest::testAuto() } -void NotificationCenterTest::testDefaultCenter() +void NotificationCenterTest::testAsyncObserver() +{ + using ObserverT = AsyncObserver::Type; + + NotificationCenter nc; + + nc.addObserver(ObserverT(*this, &NotificationCenterTest::handleAsync1, &NotificationCenterTest::matchAsync)); + nc.addObserver(ObserverT(*this, &NotificationCenterTest::handleAsync2, &NotificationCenterTest::matchAsync)); + + nc.postNotification(new TestNotification("asyncNotification")); + nc.postNotification(new TestNotification("anotherNotification")); + nc.postNotification(new Notification); + + while (!_handleAsync1Done || !_handleAsync2Done) + Poco::Thread::sleep(100); + + nc.removeObserver(ObserverT(*this, &NotificationCenterTest::handleAsync1, &NotificationCenterTest::matchAsync)); + nc.removeObserver(ObserverT(*this, &NotificationCenterTest::handleAsync2, &NotificationCenterTest::matchAsync)); + + Poco::Mutex::ScopedLock l(_mutex); + assertTrue(_set.size() == 2); + assertTrue(_set.find("handleAsync1") != _set.end()); + assertTrue(_set.find("handleAsync2") != _set.end()); +} + + +void NotificationCenterTest::testAsyncNotificationCenter() +{ + using ObserverT = AsyncObserver::Type; + + AsyncNotificationCenter nc; + + nc.addObserver(ObserverT(*this, &NotificationCenterTest::handleAsync1, &NotificationCenterTest::matchAsync)); + nc.addObserver(ObserverT(*this, &NotificationCenterTest::handleAsync2, &NotificationCenterTest::matchAsync)); + + nc.postNotification(new TestNotification("asyncNotification")); + nc.postNotification(new TestNotification("anotherNotification")); + nc.postNotification(new Notification); + + while (!_handleAsync1Done || !_handleAsync2Done) + Poco::Thread::sleep(100); + + nc.removeObserver(ObserverT(*this, &NotificationCenterTest::handleAsync1, &NotificationCenterTest::matchAsync)); + nc.removeObserver(ObserverT(*this, &NotificationCenterTest::handleAsync2, &NotificationCenterTest::matchAsync)); + + Poco::Mutex::ScopedLock l(_mutex); + assertTrue(_set.size() == 2); + assertTrue(_set.find("handleAsync1") != _set.end()); + assertTrue(_set.find("handleAsync2") != _set.end()); +} + + +void NotificationCenterTest::testDefaultNotificationCenter() { NotificationCenter& nc = NotificationCenter::defaultCenter(); nc.addObserver(Observer(*this, &NotificationCenterTest::handle1)); @@ -159,11 +227,38 @@ void NotificationCenterTest::testDefaultCenter() } +void NotificationCenterTest::testMixedObservers() +{ + using AObserverT = AsyncObserver::Type; + + AsyncNotificationCenter nc; + nc.addObserver(Observer(*this, &NotificationCenterTest::handle1)); + nc.addObserver(NObserver(*this, &NotificationCenterTest::handleAuto)); + nc.addObserver(AObserverT(*this, &NotificationCenterTest::handleAsync1, &NotificationCenterTest::matchAsync)); + nc.postNotification(new Notification); + nc.postNotification(new TestNotification("asyncNotification")); + + while (!_handle1Done || !_handleAuto1Done || !_handleAsync1Done) + Poco::Thread::sleep(100); + + nc.removeObserver(AObserverT(*this, &NotificationCenterTest::handleAsync1, &NotificationCenterTest::matchAsync)); + nc.removeObserver(NObserver(*this, &NotificationCenterTest::handleAuto)); + nc.removeObserver(Observer(*this, &NotificationCenterTest::handle1)); + Poco::Mutex::ScopedLock l(_mutex); + assertTrue (_set.size() == 3); + assertTrue (_set.find("handle1") != _set.end()); + assertTrue (_set.find("handleAuto") != _set.end()); + assertTrue (_set.find("handleAsync1") != _set.end()); +} + + void NotificationCenterTest::handle1(Poco::Notification* pNf) { + Poco::Mutex::ScopedLock l(_mutex); poco_check_ptr (pNf); AutoPtr nf = pNf; _set.insert("handle1"); + _handle1Done = true; } @@ -193,7 +288,31 @@ void NotificationCenterTest::handleTest(TestNotification* pNf) void NotificationCenterTest::handleAuto(const AutoPtr& pNf) { + Poco::Mutex::ScopedLock l(_mutex); _set.insert("handleAuto"); + _handleAuto1Done = true; +} + + +void NotificationCenterTest::handleAsync1(const AutoPtr& pNf) +{ + Poco::Mutex::ScopedLock l(_mutex); + _set.insert("handleAsync1"); + _handleAsync1Done = true; +} + + +void NotificationCenterTest::handleAsync2(const AutoPtr& pNf) +{ + Poco::Mutex::ScopedLock l(_mutex); + _set.insert("handleAsync2"); + _handleAsync2Done = true; +} + + +bool NotificationCenterTest::matchAsync(const std::string& name) const +{ + return name.find("asyncNotification") == 0; } @@ -212,13 +331,16 @@ CppUnit::Test* NotificationCenterTest::suite() { CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("NotificationCenterTest"); - CppUnit_addTest(pSuite, NotificationCenterTest, test1); - CppUnit_addTest(pSuite, NotificationCenterTest, test2); - CppUnit_addTest(pSuite, NotificationCenterTest, test3); - CppUnit_addTest(pSuite, NotificationCenterTest, test4); - CppUnit_addTest(pSuite, NotificationCenterTest, test5); - CppUnit_addTest(pSuite, NotificationCenterTest, testAuto); - CppUnit_addTest(pSuite, NotificationCenterTest, testDefaultCenter); + CppUnit_addTest(pSuite, NotificationCenterTest, testNotificationCenter1); + CppUnit_addTest(pSuite, NotificationCenterTest, testNotificationCenter2); + CppUnit_addTest(pSuite, NotificationCenterTest, testNotificationCenter3); + CppUnit_addTest(pSuite, NotificationCenterTest, testNotificationCenter4); + CppUnit_addTest(pSuite, NotificationCenterTest, testNotificationCenter5); + CppUnit_addTest(pSuite, NotificationCenterTest, testNotificationCenterAuto); + CppUnit_addTest(pSuite, NotificationCenterTest, testAsyncObserver); + CppUnit_addTest(pSuite, NotificationCenterTest, testAsyncNotificationCenter); + CppUnit_addTest(pSuite, NotificationCenterTest, testDefaultNotificationCenter); + CppUnit_addTest(pSuite, NotificationCenterTest, testMixedObservers); return pSuite; } diff --git a/Foundation/testsuite/src/NotificationCenterTest.h b/Foundation/testsuite/src/NotificationCenterTest.h index 3f21b27da..080c30796 100644 --- a/Foundation/testsuite/src/NotificationCenterTest.h +++ b/Foundation/testsuite/src/NotificationCenterTest.h @@ -18,6 +18,7 @@ #include "CppUnit/TestCase.h" #include "Poco/Notification.h" #include "Poco/AutoPtr.h" +#include "Poco/Mutex.h" #include @@ -30,13 +31,16 @@ public: NotificationCenterTest(const std::string& name); ~NotificationCenterTest(); - void test1(); - void test2(); - void test3(); - void test4(); - void test5(); - void testAuto(); - void testDefaultCenter(); + void testNotificationCenter1(); + void testNotificationCenter2(); + void testNotificationCenter3(); + void testNotificationCenter4(); + void testNotificationCenter5(); + void testNotificationCenterAuto(); + void testAsyncObserver(); + void testAsyncNotificationCenter(); + void testDefaultNotificationCenter(); + void testMixedObservers(); void setUp(); void tearDown(); @@ -49,9 +53,17 @@ protected: void handle3(Poco::Notification* pNf); void handleTest(TestNotification* pNf); void handleAuto(const Poco::AutoPtr& pNf); + void handleAsync1(const Poco::AutoPtr& pNf); + void handleAsync2(const Poco::AutoPtr& pNf); + bool matchAsync(const std::string& name) const; private: std::set _set; + std::atomic _handle1Done; + std::atomic _handleAuto1Done; + std::atomic _handleAsync1Done; + std::atomic _handleAsync2Done; + Poco::Mutex _mutex; }; diff --git a/Foundation/testsuite/src/VarTest.cpp b/Foundation/testsuite/src/VarTest.cpp index b9616f94c..f3e883070 100644 --- a/Foundation/testsuite/src/VarTest.cpp +++ b/Foundation/testsuite/src/VarTest.cpp @@ -1997,12 +1997,12 @@ void VarTest::testLimitsFloat() { if (std::numeric_limits::max() != std::numeric_limits::max()) { - double iMin = -1 * std::numeric_limits::max(); + constexpr double iMin = -1 * std::numeric_limits::max(); Var da = iMin * 10; try { float POCO_UNUSED f; f = da; fail("must throw", __LINE__, __FILE__); } catch (RangeException&) {} - double iMax = std::numeric_limits::max(); + constexpr double iMax = std::numeric_limits::max(); da = iMax * 10; try { float POCO_UNUSED f; f = da; fail("must throw", __LINE__, __FILE__); } catch (RangeException&) {} @@ -2027,13 +2027,13 @@ void VarTest::testLimitsFloat() float f = 0.f; try { f = anyInt.convert(); fail("must throw", __LINE__, __FILE__); } catch (Poco::RangeException&) {} - i = f; + i = static_cast(f); assertTrue (0 == i); double d = 0.; try { d = anyInt.convert(); fail("must throw", __LINE__, __FILE__); } catch (Poco::RangeException&) {} - i = d; + i = static_cast(d); assertTrue (0 == i); } From 8460105d5aa8d65c5ac46055be3a93ff00256438 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Mon, 19 Feb 2024 10:52:33 +0100 Subject: [PATCH 320/395] fix(Any): nullptr_t usage #4465 --- Foundation/include/Poco/Bugcheck.h | 2 +- Foundation/testsuite/src/AnyTest.cpp | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Foundation/include/Poco/Bugcheck.h b/Foundation/include/Poco/Bugcheck.h index 4be0c9e36..01fe8646c 100644 --- a/Foundation/include/Poco/Bugcheck.h +++ b/Foundation/include/Poco/Bugcheck.h @@ -170,7 +170,7 @@ protected: #define poco_static_assert_ptr(T) \ static_assert(std::is_pointer_v || \ - std::is_same_v || \ + std::is_same_v || \ std::is_member_pointer_v || \ std::is_member_function_pointer_v || \ std::is_member_object_pointer_v, \ diff --git a/Foundation/testsuite/src/AnyTest.cpp b/Foundation/testsuite/src/AnyTest.cpp index ad404a7ba..e13e4841b 100644 --- a/Foundation/testsuite/src/AnyTest.cpp +++ b/Foundation/testsuite/src/AnyTest.cpp @@ -360,17 +360,17 @@ void AnyTest::testAnyPointer() assertTrue (*cpyI == *p); std::string* s = AnyCast(&a); assertTrue (s == NULL); - assertTrue (AnyCast(&a) == nullptr); + assertTrue (AnyCast(&a) == nullptr); int* POCO_UNUSED tmp = AnyCast(a); const Any c = a; tmp = AnyCast(a); Any nullPtr(nullptr); - assertFalse (AnyHoldsNullPtr(nullptr)); + assertFalse (AnyHoldsNullPtr(nullptr)); assertFalse (AnyHoldsNullPtr(0)); - assertTrue (AnyHoldsNullPtr(nullPtr)); - assertTrue (AnyHoldsNullPtr(&nullPtr)); + assertTrue (AnyHoldsNullPtr(nullPtr)); + assertTrue (AnyHoldsNullPtr(&nullPtr)); try { AnyHoldsNullPtr(nullPtr); @@ -380,7 +380,7 @@ void AnyTest::testAnyPointer() nullPtr = &i; try { - assertFalse (AnyHoldsNullPtr(nullPtr)); + assertFalse (AnyHoldsNullPtr(nullPtr)); fail ("AnyCast must fail", __LINE__, __FILE__); } catch(const Poco::BadCastException&) {} @@ -391,7 +391,7 @@ void AnyTest::testAnyPointer() assertTrue (AnyHoldsNullPtr(nullVoidPtr)); try { - AnyHoldsNullPtr(voidPtr); + AnyHoldsNullPtr(voidPtr); fail ("AnyCast must fail", __LINE__, __FILE__); } catch(const Poco::BadCastException&) {} From c59601d304efecdaf52ecf6d694b21eedf4290a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sun, 18 Feb 2024 18:58:30 +0100 Subject: [PATCH 321/395] fix(mkrelease) exclude *_vs90.sln and *.progen files --- release/script/mkrelease | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/release/script/mkrelease b/release/script/mkrelease index 309061c73..d44f9fdd3 100755 --- a/release/script/mkrelease +++ b/release/script/mkrelease @@ -163,6 +163,13 @@ done chmod -R +w ${target} +# +# Remove VS90 and progen +# +find ${target} -name '*.progen' -exec rm {} \; +find ${target} -iname '*_vs90.sln' -exec rm {} \; + + # # Generate Makefile # From 2738e5b989bc7f43b0c5f912f2297c5e6b368942 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sun, 18 Feb 2024 19:41:19 +0100 Subject: [PATCH 322/395] fix(mkrelease): include buildwin.ps1 --- release/script/mkrelease | 1 + 1 file changed, 1 insertion(+) diff --git a/release/script/mkrelease b/release/script/mkrelease index d44f9fdd3..1e8868c75 100755 --- a/release/script/mkrelease +++ b/release/script/mkrelease @@ -111,6 +111,7 @@ cp ${POCO_BASE}/build/config/* ${target}/build/config cp ${POCO_BASE}/build/rules/* ${target}/build/rules cp ${POCO_BASE}/build/script/* ${target}/build/script cp ${POCO_BASE}/buildwin.cmd ${target} +cp ${POCO_BASE}/buildwin.ps1 ${target} cp ${POCO_BASE}/configure ${target} cp ${POCO_BASE}/libversion ${target} From 7119feaef01325f27b5c0d117d1845ab458ba556 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sun, 18 Feb 2024 19:41:41 +0100 Subject: [PATCH 323/395] ci: add cipackages.yml to test release packages --- .github/workflows/cipackages.yml | 67 ++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/cipackages.yml diff --git a/.github/workflows/cipackages.yml b/.github/workflows/cipackages.yml new file mode 100644 index 000000000..34e7342ff --- /dev/null +++ b/.github/workflows/cipackages.yml @@ -0,0 +1,67 @@ +name: Build release packages and perform basic sanity tests + +on: + push: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + mkrelease_win: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v3 + - + name: Install packages + run: sudo apt-get update && sudo apt-get -y install dos2unix + - + name: Build release package + run: | + export POCO_BASE=`pwd` + export PATH=$POCO_BASE/release/script:$PATH + mkrel -c unix2dos + mkrel -c unix2dos all + - + name: Copy artifacts + uses: actions/upload-artifact@v4 + with: + name: windows-archives + path: releases/poco*.zip + overwrite: true + retention-days: 1 + + mkrelease: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v3 + - + name: Build release package + run: | + export POCO_BASE=`pwd` + export PATH=$POCO_BASE/release/script:$PATH + mkrel + mkrel all + - + name: Copy artifacts + uses: actions/upload-artifact@v4 + with: + name: posix-archives + path: releases/poco*.tar.gz + overwrite: true + retention-days: 1 + + linux-gcc-make-mkrelease: + runs-on: ubuntu-22.04 + steps: + - uses: actions/download-artifact@v4 + with: + name: posix-archives + - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev redis-server libmysqlclient-dev + - run: rm poco-*-all.tar.gz + - run: mkdir poco && cd poco && tar --strip-components 1 xfz ../poco-*.tar.gz + - run: cd poco && ./configure --everything && make all -s -j`nproc` From 141b63559a9813660224977b2fe349cbc463dde9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sun, 18 Feb 2024 19:46:54 +0100 Subject: [PATCH 324/395] fix cipackages.yml --- .github/workflows/cipackages.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/cipackages.yml b/.github/workflows/cipackages.yml index 34e7342ff..30d524f68 100644 --- a/.github/workflows/cipackages.yml +++ b/.github/workflows/cipackages.yml @@ -57,6 +57,7 @@ jobs: linux-gcc-make-mkrelease: runs-on: ubuntu-22.04 + needs: mkrelease steps: - uses: actions/download-artifact@v4 with: From f46626ad3a86a92939f98ac3f66d6cc3a1f69771 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sun, 18 Feb 2024 19:50:58 +0100 Subject: [PATCH 325/395] fix cipackages.yml --- .github/workflows/cipackages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cipackages.yml b/.github/workflows/cipackages.yml index 30d524f68..3fa716c73 100644 --- a/.github/workflows/cipackages.yml +++ b/.github/workflows/cipackages.yml @@ -64,5 +64,5 @@ jobs: name: posix-archives - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev redis-server libmysqlclient-dev - run: rm poco-*-all.tar.gz - - run: mkdir poco && cd poco && tar --strip-components 1 xfz ../poco-*.tar.gz + - run: mkdir poco && cd poco && tar --strip-components=1 xfz ../poco-*.tar.gz - run: cd poco && ./configure --everything && make all -s -j`nproc` From 759282cfc13a46f10f752a4eb5dcaaa100b32a93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sun, 18 Feb 2024 19:59:18 +0100 Subject: [PATCH 326/395] fix cipackages.yml --- .github/workflows/cipackages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cipackages.yml b/.github/workflows/cipackages.yml index 3fa716c73..7c5b40cf9 100644 --- a/.github/workflows/cipackages.yml +++ b/.github/workflows/cipackages.yml @@ -64,5 +64,5 @@ jobs: name: posix-archives - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev redis-server libmysqlclient-dev - run: rm poco-*-all.tar.gz - - run: mkdir poco && cd poco && tar --strip-components=1 xfz ../poco-*.tar.gz + - run: mkdir poco && cd poco && tar xfz ../poco-*.tar.gz --strip-components=1 - run: cd poco && ./configure --everything && make all -s -j`nproc` From ee76a7a157f6109f9951c4c9009dbc1b5a695f48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sun, 18 Feb 2024 20:09:38 +0100 Subject: [PATCH 327/395] packages-qa.yml --- .../{cipackages.yml => packages-qa.yml} | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) rename .github/workflows/{cipackages.yml => packages-qa.yml} (54%) diff --git a/.github/workflows/cipackages.yml b/.github/workflows/packages-qa.yml similarity index 54% rename from .github/workflows/cipackages.yml rename to .github/workflows/packages-qa.yml index 7c5b40cf9..baec444a0 100644 --- a/.github/workflows/cipackages.yml +++ b/.github/workflows/packages-qa.yml @@ -1,7 +1,7 @@ name: Build release packages and perform basic sanity tests on: - push: + workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} @@ -66,3 +66,37 @@ jobs: - run: rm poco-*-all.tar.gz - run: mkdir poco && cd poco && tar xfz ../poco-*.tar.gz --strip-components=1 - run: cd poco && ./configure --everything && make all -s -j`nproc` + + linux-gcc-make-mkrelease-all: + runs-on: ubuntu-22.04 + needs: mkrelease + steps: + - uses: actions/download-artifact@v4 + with: + name: posix-archives + - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev redis-server libmysqlclient-dev + - run: mkdir poco && cd poco && tar xfz ../poco-*-all.tar.gz --strip-components=1 + - run: cd poco && ./configure --everything && make all -s -j`nproc` + + linux-gcc-cmake-mkrelease: + runs-on: ubuntu-22.04 + needs: mkrelease + steps: + - uses: actions/download-artifact@v4 + with: + name: posix-archives + - run: sudo apt -y update && sudo apt -y install cmake ninja-build libssl-dev unixodbc-dev libmysqlclient-dev + - run: rm poco-*-all.tar.gz + - run: mkdir poco && cd poco && tar xfz ../poco-*.tar.gz --strip-components=1 + - run: cmake -Spoco -Bcmake-build -GNinja -DENABLE_PDF=OFF -DENABLE_TESTS=ON && cmake --build cmake-build --target all + + linux-gcc-cmake-mkrelease-all: + runs-on: ubuntu-22.04 + needs: mkrelease + steps: + - uses: actions/download-artifact@v4 + with: + name: posix-archives + - run: sudo apt -y update && sudo apt -y install cmake ninja-build libssl-dev unixodbc-dev libmysqlclient-dev + - run: mkdir poco && cd poco && tar xfz ../poco-*-all.tar.gz --strip-components=1 + - run: cmake -Spoco -Bcmake-build -GNinja -DENABLE_PDF=OFF -DENABLE_TESTS=ON && cmake --build cmake-build --target all From ddfd4c10ee235669a9bc6f2e481a9b82a5b13bbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sun, 18 Feb 2024 20:14:09 +0100 Subject: [PATCH 328/395] fix packages-qa.yml --- .github/workflows/packages-qa.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/packages-qa.yml b/.github/workflows/packages-qa.yml index baec444a0..266f92725 100644 --- a/.github/workflows/packages-qa.yml +++ b/.github/workflows/packages-qa.yml @@ -1,7 +1,7 @@ -name: Build release packages and perform basic sanity tests +name: Release Packages QA on: - workflow_dispatch: + push: concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} From 3f1b1c8ee8f0d7b35da4e10d949ef9c19a7ed282 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Sun, 18 Feb 2024 20:28:01 +0100 Subject: [PATCH 329/395] dependencies, DataTest --- Data/extradirs | 1 + Zip/samples/dependencies | 2 ++ 2 files changed, 3 insertions(+) create mode 100644 Zip/samples/dependencies diff --git a/Data/extradirs b/Data/extradirs index e27d52a22..e15babe2b 100644 --- a/Data/extradirs +++ b/Data/extradirs @@ -1 +1,2 @@ SQLParser +testsuite/DataTest diff --git a/Zip/samples/dependencies b/Zip/samples/dependencies new file mode 100644 index 000000000..39b39bdad --- /dev/null +++ b/Zip/samples/dependencies @@ -0,0 +1,2 @@ +Foundation +Util From 640600c1475f9e1163c04f53dcc0d72d1f0daf7e Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Mon, 19 Feb 2024 09:58:05 +0100 Subject: [PATCH 330/395] fix(DataTest): move to Data directory --- .vscode/c_cpp_properties.json | 2 +- Data/CMakeLists.txt | 1 + Data/Data.progen | 2 +- Data/{testsuite => }/DataTest/CMakeLists.txt | 1 - Data/{testsuite => }/DataTest/DataTest.progen | 0 .../DataTest/DataTest_VS90.vcproj | 0 .../DataTest/DataTest_vs160.vcxproj | 0 .../DataTest/DataTest_vs160.vcxproj.filters | 0 .../DataTest/DataTest_vs170.vcxproj | 0 .../DataTest/DataTest_vs170.vcxproj.filters | 0 Data/{testsuite => }/DataTest/Makefile | 2 +- .../DataTest/cmake/PocoDataTestConfig.cmake | 0 Data/{testsuite => }/DataTest/dependencies | 0 .../include/Poco/Data/Test/DataTest.h | 0 .../include/Poco/Data/Test/SQLExecutor.h | 0 .../DataTest/src/SQLExecutor.cpp | 0 Data/MySQL/testsuite/CMakeLists.txt | 2 +- Data/ODBC/testsuite/CMakeLists.txt | 2 +- Data/ODBC/testsuite/Makefile | 2 +- Data/ODBC/testsuite/TestSuite.progen | 2 +- Data/ODBC/testsuite/TestSuite_vs160.vcxproj | 24 ++++++------- Data/ODBC/testsuite/TestSuite_vs170.vcxproj | 36 +++++++++---------- Data/PostgreSQL/testsuite/CMakeLists.txt | 2 +- Data/PostgreSQL/testsuite/Makefile | 2 +- Data/SQLite/testsuite/CMakeLists.txt | 4 +-- Data/dependencies | 1 + Data/extradirs | 2 +- Data/testsuite/CMakeLists.txt | 2 -- Data/testsuite/Makefile | 2 +- Makefile | 2 +- buildwin.ps1 | 2 +- progen.ps1 | 4 +-- 32 files changed, 49 insertions(+), 50 deletions(-) rename Data/{testsuite => }/DataTest/CMakeLists.txt (95%) rename Data/{testsuite => }/DataTest/DataTest.progen (100%) rename Data/{testsuite => }/DataTest/DataTest_VS90.vcproj (100%) rename Data/{testsuite => }/DataTest/DataTest_vs160.vcxproj (100%) rename Data/{testsuite => }/DataTest/DataTest_vs160.vcxproj.filters (100%) rename Data/{testsuite => }/DataTest/DataTest_vs170.vcxproj (100%) rename Data/{testsuite => }/DataTest/DataTest_vs170.vcxproj.filters (100%) rename Data/{testsuite => }/DataTest/Makefile (84%) rename Data/{testsuite => }/DataTest/cmake/PocoDataTestConfig.cmake (100%) rename Data/{testsuite => }/DataTest/dependencies (100%) rename Data/{testsuite => }/DataTest/include/Poco/Data/Test/DataTest.h (100%) rename Data/{testsuite => }/DataTest/include/Poco/Data/Test/SQLExecutor.h (100%) rename Data/{testsuite => }/DataTest/src/SQLExecutor.cpp (100%) diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index b7c6a74e5..50187f009 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -24,7 +24,7 @@ "${POCO_BASE}/MongoDB/include", "${POCO_BASE}/ApacheConnector/include", "${POCO_BASE}/Data/src", - "${POCO_BASE}/Data/testsuite/DataTest/include" + "${POCO_BASE}/Data/DataTest/include" ] }, "configurations": [ diff --git a/Data/CMakeLists.txt b/Data/CMakeLists.txt index 87f0ee58a..95e5019b3 100644 --- a/Data/CMakeLists.txt +++ b/Data/CMakeLists.txt @@ -61,6 +61,7 @@ POCO_INSTALL(Data) POCO_GENERATE_PACKAGE(Data) if(ENABLE_TESTS) + add_subdirectory(DataTest) add_subdirectory(testsuite) endif() diff --git a/Data/Data.progen b/Data/Data.progen index 2333d1f8c..0701b376c 100644 --- a/Data/Data.progen +++ b/Data/Data.progen @@ -15,4 +15,4 @@ vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.additionalOptions = /bigobj /Zc:__cplusplus vc.solution.create = true -vc.solution.include = testsuite\\TestSuite,testsuite\\DataTest\\DataTest +vc.solution.include = testsuite\\TestSuite,DataTest\\DataTest diff --git a/Data/testsuite/DataTest/CMakeLists.txt b/Data/DataTest/CMakeLists.txt similarity index 95% rename from Data/testsuite/DataTest/CMakeLists.txt rename to Data/DataTest/CMakeLists.txt index 0c04376c1..10a44858d 100644 --- a/Data/testsuite/DataTest/CMakeLists.txt +++ b/Data/DataTest/CMakeLists.txt @@ -25,7 +25,6 @@ target_link_libraries(DataTest PUBLIC Poco::Data CppUnit) target_include_directories(DataTest PUBLIC $ - $ $ $ ) diff --git a/Data/testsuite/DataTest/DataTest.progen b/Data/DataTest/DataTest.progen similarity index 100% rename from Data/testsuite/DataTest/DataTest.progen rename to Data/DataTest/DataTest.progen diff --git a/Data/testsuite/DataTest/DataTest_VS90.vcproj b/Data/DataTest/DataTest_VS90.vcproj similarity index 100% rename from Data/testsuite/DataTest/DataTest_VS90.vcproj rename to Data/DataTest/DataTest_VS90.vcproj diff --git a/Data/testsuite/DataTest/DataTest_vs160.vcxproj b/Data/DataTest/DataTest_vs160.vcxproj similarity index 100% rename from Data/testsuite/DataTest/DataTest_vs160.vcxproj rename to Data/DataTest/DataTest_vs160.vcxproj diff --git a/Data/testsuite/DataTest/DataTest_vs160.vcxproj.filters b/Data/DataTest/DataTest_vs160.vcxproj.filters similarity index 100% rename from Data/testsuite/DataTest/DataTest_vs160.vcxproj.filters rename to Data/DataTest/DataTest_vs160.vcxproj.filters diff --git a/Data/testsuite/DataTest/DataTest_vs170.vcxproj b/Data/DataTest/DataTest_vs170.vcxproj similarity index 100% rename from Data/testsuite/DataTest/DataTest_vs170.vcxproj rename to Data/DataTest/DataTest_vs170.vcxproj diff --git a/Data/testsuite/DataTest/DataTest_vs170.vcxproj.filters b/Data/DataTest/DataTest_vs170.vcxproj.filters similarity index 100% rename from Data/testsuite/DataTest/DataTest_vs170.vcxproj.filters rename to Data/DataTest/DataTest_vs170.vcxproj.filters diff --git a/Data/testsuite/DataTest/Makefile b/Data/DataTest/Makefile similarity index 84% rename from Data/testsuite/DataTest/Makefile rename to Data/DataTest/Makefile index e84fc2454..28ba19b27 100644 --- a/Data/testsuite/DataTest/Makefile +++ b/Data/DataTest/Makefile @@ -11,6 +11,6 @@ objects = SQLExecutor target = PocoDataTest target_version = 1 target_libs = PocoData PocoFoundation CppUnit -target_includes = $(POCO_BASE)/Data/SQLParser $(POCO_BASE)/Data/SQLParser/src $(POCO_BASE)/Data/testsuite/DataTest/include +target_includes = $(POCO_BASE)/Data/SQLParser $(POCO_BASE)/Data/SQLParser/src $(POCO_BASE)/Data/DataTest/include include $(POCO_BASE)/build/rules/lib diff --git a/Data/testsuite/DataTest/cmake/PocoDataTestConfig.cmake b/Data/DataTest/cmake/PocoDataTestConfig.cmake similarity index 100% rename from Data/testsuite/DataTest/cmake/PocoDataTestConfig.cmake rename to Data/DataTest/cmake/PocoDataTestConfig.cmake diff --git a/Data/testsuite/DataTest/dependencies b/Data/DataTest/dependencies similarity index 100% rename from Data/testsuite/DataTest/dependencies rename to Data/DataTest/dependencies diff --git a/Data/testsuite/DataTest/include/Poco/Data/Test/DataTest.h b/Data/DataTest/include/Poco/Data/Test/DataTest.h similarity index 100% rename from Data/testsuite/DataTest/include/Poco/Data/Test/DataTest.h rename to Data/DataTest/include/Poco/Data/Test/DataTest.h diff --git a/Data/testsuite/DataTest/include/Poco/Data/Test/SQLExecutor.h b/Data/DataTest/include/Poco/Data/Test/SQLExecutor.h similarity index 100% rename from Data/testsuite/DataTest/include/Poco/Data/Test/SQLExecutor.h rename to Data/DataTest/include/Poco/Data/Test/SQLExecutor.h diff --git a/Data/testsuite/DataTest/src/SQLExecutor.cpp b/Data/DataTest/src/SQLExecutor.cpp similarity index 100% rename from Data/testsuite/DataTest/src/SQLExecutor.cpp rename to Data/DataTest/src/SQLExecutor.cpp diff --git a/Data/MySQL/testsuite/CMakeLists.txt b/Data/MySQL/testsuite/CMakeLists.txt index 6b979517e..c63586143 100644 --- a/Data/MySQL/testsuite/CMakeLists.txt +++ b/Data/MySQL/testsuite/CMakeLists.txt @@ -26,4 +26,4 @@ else() set_tests_properties(DataMySQL PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) endif() target_link_libraries(DataMySQL-testrunner PUBLIC Poco::DataMySQL Poco::DataTest CppUnit) -target_include_directories(DataMySQL-testrunner PUBLIC ${CMAKE_SOURCE_DIR}/Data/testsuite/DataTest/include/) +target_include_directories(DataMySQL-testrunner PUBLIC ${CMAKE_SOURCE_DIR}/Data/DataTest/include/) diff --git a/Data/ODBC/testsuite/CMakeLists.txt b/Data/ODBC/testsuite/CMakeLists.txt index 80d0af09f..aab06fef9 100644 --- a/Data/ODBC/testsuite/CMakeLists.txt +++ b/Data/ODBC/testsuite/CMakeLists.txt @@ -27,4 +27,4 @@ else() endif() target_link_libraries(DataODBC-testrunner PUBLIC Poco::DataTest Poco::DataODBC Poco::Data CppUnit) -target_include_directories(DataODBC-testrunner PUBLIC ${CMAKE_SOURCE_DIR}/Data/testsuite/DataTest/include/) +target_include_directories(DataODBC-testrunner PUBLIC ${CMAKE_SOURCE_DIR}/Data/DataTest/include/) diff --git a/Data/ODBC/testsuite/Makefile b/Data/ODBC/testsuite/Makefile index d935264f9..5c3fac557 100644 --- a/Data/ODBC/testsuite/Makefile +++ b/Data/ODBC/testsuite/Makefile @@ -42,6 +42,6 @@ endif target = testrunner target_version = 1 target_libs = PocoDataODBC PocoDataTest PocoData PocoFoundation CppUnit -target_includes += $(POCO_BASE)/Data/testsuite/DataTest/include +target_includes += $(POCO_BASE)/Data/DataTest/include include $(POCO_BASE)/build/rules/exec diff --git a/Data/ODBC/testsuite/TestSuite.progen b/Data/ODBC/testsuite/TestSuite.progen index 66b339f1d..109665568 100644 --- a/Data/ODBC/testsuite/TestSuite.progen +++ b/Data/ODBC/testsuite/TestSuite.progen @@ -6,5 +6,5 @@ vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj -vc.project.compiler.include = ..\\..\\..\\CppUnit\\include;..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\testsuite\\DataTest\\include +vc.project.compiler.include = ..\\..\\..\\CppUnit\\include;..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\DataTest\\include vc.project.linker.dependencies = odbc32.lib odbccp32.lib iphlpapi.lib diff --git a/Data/ODBC/testsuite/TestSuite_vs160.vcxproj b/Data/ODBC/testsuite/TestSuite_vs160.vcxproj index daad0580d..b59cccc74 100644 --- a/Data/ODBC/testsuite/TestSuite_vs160.vcxproj +++ b/Data/ODBC/testsuite/TestSuite_vs160.vcxproj @@ -235,7 +235,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -268,7 +268,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -296,7 +296,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -329,7 +329,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -357,7 +357,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -390,7 +390,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -418,7 +418,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -451,7 +451,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -479,7 +479,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -512,7 +512,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -540,7 +540,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -573,7 +573,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/ODBC/testsuite/TestSuite_vs170.vcxproj b/Data/ODBC/testsuite/TestSuite_vs170.vcxproj index 7a23c7c28..ea4315f5b 100644 --- a/Data/ODBC/testsuite/TestSuite_vs170.vcxproj +++ b/Data/ODBC/testsuite/TestSuite_vs170.vcxproj @@ -343,7 +343,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -379,7 +379,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -410,7 +410,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -446,7 +446,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -477,7 +477,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -513,7 +513,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -544,7 +544,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -580,7 +580,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -611,7 +611,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -647,7 +647,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -678,7 +678,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -714,7 +714,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -745,7 +745,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -781,7 +781,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -812,7 +812,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -848,7 +848,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -879,7 +879,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -915,7 +915,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\testsuite\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/Data/PostgreSQL/testsuite/CMakeLists.txt b/Data/PostgreSQL/testsuite/CMakeLists.txt index f97bb9c7c..2cf63e505 100644 --- a/Data/PostgreSQL/testsuite/CMakeLists.txt +++ b/Data/PostgreSQL/testsuite/CMakeLists.txt @@ -18,4 +18,4 @@ add_test( ) set_tests_properties(DataPostgreSQL PROPERTIES ENVIRONMENT POCO_BASE=${CMAKE_SOURCE_DIR}) target_link_libraries(DataPostgreSQL-testrunner PUBLIC Poco::DataPostgreSQL Poco::DataTest CppUnit) -target_include_directories(DataPostgreSQL-testrunner PUBLIC ${CMAKE_SOURCE_DIR}/Data/testsuite/DataTest/include/) +target_include_directories(DataPostgreSQL-testrunner PUBLIC ${CMAKE_SOURCE_DIR}/Data/DataTest/include/) diff --git a/Data/PostgreSQL/testsuite/Makefile b/Data/PostgreSQL/testsuite/Makefile index 989842919..e4190d664 100644 --- a/Data/PostgreSQL/testsuite/Makefile +++ b/Data/PostgreSQL/testsuite/Makefile @@ -20,6 +20,6 @@ endif target = testrunner target_version = 1 target_libs = PocoDataPostgreSQL PocoDataTest PocoData PocoFoundation CppUnit -target_includes += $(POCO_BASE)/Data/testsuite/DataTest/include +target_includes += $(POCO_BASE)/Data/DataTest/include include $(POCO_BASE)/build/rules/exec diff --git a/Data/SQLite/testsuite/CMakeLists.txt b/Data/SQLite/testsuite/CMakeLists.txt index c8d1785e8..219d0fa5c 100644 --- a/Data/SQLite/testsuite/CMakeLists.txt +++ b/Data/SQLite/testsuite/CMakeLists.txt @@ -4,7 +4,7 @@ POCO_SOURCES_AUTO(TEST_SRCS ${SRCS_G}) # Headers file(GLOB_RECURSE HDRS_G "src/*.h") -file(GLOB HDRS_E ${CMAKE_SOURCE_DIR}/Data/testsuite/DataTest/include/*.h) +file(GLOB HDRS_E ${CMAKE_SOURCE_DIR}/Data/DataTest/include/*.h) POCO_HEADERS_AUTO(TEST_SRCS ${HDRS_E}) POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF @@ -28,4 +28,4 @@ else() endif() target_link_libraries(DataSQLite-testrunner PUBLIC Poco::DataSQLite Poco::DataTest CppUnit) -target_include_directories(DataSQLite-testrunner PUBLIC ${CMAKE_SOURCE_DIR}/Data/testsuite/DataTest/include/) +target_include_directories(DataSQLite-testrunner PUBLIC ${CMAKE_SOURCE_DIR}/Data/DataTest/include/) diff --git a/Data/dependencies b/Data/dependencies index 2e8175e4e..aa770fb02 100644 --- a/Data/dependencies +++ b/Data/dependencies @@ -1 +1,2 @@ Foundation +DataTest diff --git a/Data/extradirs b/Data/extradirs index e15babe2b..a8169c377 100644 --- a/Data/extradirs +++ b/Data/extradirs @@ -1,2 +1,2 @@ SQLParser -testsuite/DataTest +DataTest diff --git a/Data/testsuite/CMakeLists.txt b/Data/testsuite/CMakeLists.txt index 79d6e7353..05ba576bb 100644 --- a/Data/testsuite/CMakeLists.txt +++ b/Data/testsuite/CMakeLists.txt @@ -34,5 +34,3 @@ if(NOT POCO_DATA_NO_SQL_PARSER) PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../SQLParser ) endif() - -add_subdirectory(DataTest) diff --git a/Data/testsuite/Makefile b/Data/testsuite/Makefile index f5397e1b7..f8d9bd1ba 100644 --- a/Data/testsuite/Makefile +++ b/Data/testsuite/Makefile @@ -8,4 +8,4 @@ clean distclean all: projects projects: $(MAKE) -f Makefile-testrunner $(MAKECMDGOALS) - $(MAKE) -C DataTest $(MAKECMDGOALS) + $(MAKE) -C ../DataTest $(MAKECMDGOALS) diff --git a/Makefile b/Makefile index dd714a4fa..f1aa06c40 100644 --- a/Makefile +++ b/Makefile @@ -247,7 +247,7 @@ Data-libexec: Foundation-libexec $(MAKE) -C $(POCO_BASE)/Data DataTest-libexec: Data-libexec - $(MAKE) -C $(POCO_BASE)/Data/testsuite/DataTest + $(MAKE) -C $(POCO_BASE)/Data/DataTest Data-tests: Data-libexec DataTest-libexec cppunit $(MAKE) -C $(POCO_BASE)/Data/testsuite diff --git a/buildwin.ps1 b/buildwin.ps1 index 9ff172a0b..80462a778 100644 --- a/buildwin.ps1 +++ b/buildwin.ps1 @@ -505,7 +505,7 @@ function BuildComponents([string] $extension, [string] $type) } elseif ($component -eq "Data") # special case for Data, which needs DataTest lib { - $vsTestProject = "$poco_base\$componentDir\testsuite\DataTest\DataTest$($suffix).$($extension)" + $vsTestProject = "$poco_base\$componentDir\DataTest\DataTest$($suffix).$($extension)" Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" Write-Host "| Building $vsTestProject" Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" diff --git a/progen.ps1 b/progen.ps1 index 4832923d2..7547de652 100644 --- a/progen.ps1 +++ b/progen.ps1 @@ -169,9 +169,9 @@ function InvokeProgenComponents([string] $type) if ($component -eq "Data") # special case for Data { - $componentTestProgenPath = "$poco_base\$componentDir\testsuite\DataTest\DataTest.progen" + $componentTestProgenPath = "$poco_base\$componentDir\DataTest\DataTest.progen" Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" - Write-Host "| Running Progen for $componentDir\testsuite\DataTest" + Write-Host "| Running Progen for $componentDir\DataTest" Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" InvokeProcess $progenPath "/tool=vs$vs $componentTestProgenPath" } From a7020dc0e74cf3bbd8ead608b18587eb658ac5b6 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Mon, 19 Feb 2024 11:09:20 +0100 Subject: [PATCH 331/395] fix(DataTest): fix paths and regenerate VS projects --- Data/DataTest/DataTest.progen | 2 +- Data/DataTest/DataTest_VS90.vcproj | 44 +-- Data/DataTest/DataTest_vs160.vcxproj | 139 ++++++---- Data/DataTest/DataTest_vs160.vcxproj.filters | 15 +- Data/DataTest/DataTest_vs170.vcxproj | 251 +++++++++-------- Data/DataTest/DataTest_vs170.vcxproj.filters | 15 +- Data/Data_vs170.sln | 276 +++++++++---------- 7 files changed, 368 insertions(+), 374 deletions(-) diff --git a/Data/DataTest/DataTest.progen b/Data/DataTest/DataTest.progen index 4afcf6f09..9f101c6a6 100644 --- a/Data/DataTest/DataTest.progen +++ b/Data/DataTest/DataTest.progen @@ -3,7 +3,7 @@ vc.project.name = DataTest vc.project.target = Poco${vc.project.name} vc.project.prototype = DataTest_vs90.vcproj vc.project.type = library -vc.project.pocobase = ..\\..\\.. +vc.project.pocobase = ..\\.. vc.project.outdir = ${vc.project.pocobase} vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md diff --git a/Data/DataTest/DataTest_VS90.vcproj b/Data/DataTest/DataTest_VS90.vcproj index 580faa040..8571af679 100644 --- a/Data/DataTest/DataTest_VS90.vcproj +++ b/Data/DataTest/DataTest_VS90.vcproj @@ -42,7 +42,7 @@ Name="VCCLCompilerTool" AdditionalOptions="" Optimization="0" - AdditionalIncludeDirectories=".\include;..\..\include;..\..\..\Foundation\include" + AdditionalIncludeDirectories=".\include;..\include;..\..\Foundation\include" PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS" StringPooling="true" MinimalRebuild="true" @@ -72,14 +72,14 @@ Name="VCLinkerTool" AdditionalOptions="" AdditionalDependencies="" - OutputFile="..\..\..\bin\PocoDataTestd.dll" + OutputFile="..\..\bin\PocoDataTestd.dll" LinkIncremental="2" SuppressStartupBanner="true" - AdditionalLibraryDirectories="..\..\..\lib" + AdditionalLibraryDirectories="..\..\lib" GenerateDebugInformation="true" - ProgramDatabaseFile="..\..\..\bin\PocoDataTestd.pdb" + ProgramDatabaseFile="..\..\bin\PocoDataTestd.pdb" SubSystem="1" - ImportLibrary="..\..\..\lib\PocoDataTestd.lib" + ImportLibrary="..\..\lib\PocoDataTestd.lib" TargetMachine="1" /> @@ -514,7 +514,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoDataTestd PocoDataTestmdd PocoDataTestmtd @@ -173,61 +173,61 @@ PocoDataTestmt - ..\..\..\bin\ + ..\..\bin\ obj\DataTest\$(Configuration)\ true - ..\..\..\bin\ + ..\..\bin\ obj\DataTest\$(Configuration)\ false - ..\..\..\lib\ + ..\..\lib\ obj\DataTest\$(Configuration)\ - ..\..\..\lib\ + ..\..\lib\ obj\DataTest\$(Configuration)\ - ..\..\..\lib\ + ..\..\lib\ obj\DataTest\$(Configuration)\ - ..\..\..\lib\ + ..\..\lib\ obj\DataTest\$(Configuration)\ - ..\..\..\bin64\ + ..\..\bin64\ obj64\DataTest\$(Configuration)\ true - ..\..\..\bin64\ + ..\..\bin64\ obj64\DataTest\$(Configuration)\ false - ..\..\..\lib64\ + ..\..\lib64\ obj64\DataTest\$(Configuration)\ - ..\..\..\lib64\ + ..\..\lib64\ obj64\DataTest\$(Configuration)\ - ..\..\..\lib64\ + ..\..\lib64\ obj64\DataTest\$(Configuration)\ - ..\..\..\lib64\ + ..\..\lib64\ obj64\DataTest\$(Configuration)\ Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -242,15 +242,17 @@ Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - ..\..\..\bin\PocoDataTestd.dll + ..\..\bin\PocoDataTestd.dll true true - ..\..\..\bin\PocoDataTestd.pdb - ..\..\..\lib;%(AdditionalLibraryDirectories) + ..\..\bin\PocoDataTestd.pdb + ..\..\lib;%(AdditionalLibraryDirectories) Console - ..\..\..\lib\PocoDataTestd.lib + ..\..\lib\PocoDataTestd.lib MachineX86 @@ -261,7 +263,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -275,23 +277,25 @@ Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - ..\..\..\bin\PocoDataTest.dll + ..\..\bin\PocoDataTest.dll true false - ..\..\..\lib;%(AdditionalLibraryDirectories) + ..\..\lib;%(AdditionalLibraryDirectories) Console true true - ..\..\..\lib\PocoDataTest.lib + ..\..\lib\PocoDataTest.lib MachineX86 Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -301,15 +305,17 @@ true true - ..\..\..\lib\PocoDataTestmtd.pdb + ..\..\lib\PocoDataTestmtd.pdb Level3 ProgramDatabase Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - ..\..\..\lib\PocoDataTestmtd.lib + ..\..\lib\PocoDataTestmtd.lib @@ -319,7 +325,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -333,15 +339,17 @@ Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - ..\..\..\lib\PocoDataTestmt.lib + ..\..\lib\PocoDataTestmt.lib Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -351,15 +359,17 @@ true true - ..\..\..\lib\PocoDataTestmdd.pdb + ..\..\lib\PocoDataTestmdd.pdb Level3 ProgramDatabase Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - ..\..\..\lib\PocoDataTestmdd.lib + ..\..\lib\PocoDataTestmdd.lib @@ -369,7 +379,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -378,21 +388,23 @@ true true - ..\..\..\lib\PocoDataTestmd.pdb + ..\..\lib\PocoDataTestmd.pdb Level3 Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - ..\..\..\lib\PocoDataTestmd.lib + ..\..\lib\PocoDataTestmd.lib Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -407,15 +419,17 @@ Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - ..\..\..\bin64\PocoDataTest64d.dll + ..\..\bin64\PocoDataTest64d.dll true true - ..\..\..\bin64\PocoDataTest64d.pdb - ..\..\..\lib64;%(AdditionalLibraryDirectories) + ..\..\bin64\PocoDataTest64d.pdb + ..\..\lib64;%(AdditionalLibraryDirectories) Console - ..\..\..\lib64\PocoDataTestd.lib + ..\..\lib64\PocoDataTestd.lib MachineX64 @@ -426,7 +440,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -440,23 +454,25 @@ Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - ..\..\..\bin64\PocoDataTest64.dll + ..\..\bin64\PocoDataTest64.dll true false - ..\..\..\lib64;%(AdditionalLibraryDirectories) + ..\..\lib64;%(AdditionalLibraryDirectories) Console true true - ..\..\..\lib64\PocoDataTest.lib + ..\..\lib64\PocoDataTest.lib MachineX64 Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -466,15 +482,17 @@ true true - ..\..\..\lib64\PocoDataTestmtd.pdb + ..\..\lib64\PocoDataTestmtd.pdb Level3 ProgramDatabase Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - ..\..\..\lib64\PocoDataTestmtd.lib + ..\..\lib64\PocoDataTestmtd.lib @@ -484,7 +502,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -498,15 +516,17 @@ Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - ..\..\..\lib64\PocoDataTestmt.lib + ..\..\lib64\PocoDataTestmt.lib Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -516,15 +536,17 @@ true true - ..\..\..\lib64\PocoDataTestmdd.pdb + ..\..\lib64\PocoDataTestmdd.pdb Level3 ProgramDatabase Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - ..\..\..\lib64\PocoDataTestmdd.lib + ..\..\lib64\PocoDataTestmdd.lib @@ -534,7 +556,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -548,25 +570,26 @@ Default /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - ..\..\..\lib64\PocoDataTestmd.lib + ..\..\lib64\PocoDataTestmd.lib - - - - - + + true + stdcpp17 + stdc11 - + true true true diff --git a/Data/DataTest/DataTest_vs160.vcxproj.filters b/Data/DataTest/DataTest_vs160.vcxproj.filters index c0d5a1ed5..2154c6986 100644 --- a/Data/DataTest/DataTest_vs160.vcxproj.filters +++ b/Data/DataTest/DataTest_vs160.vcxproj.filters @@ -2,22 +2,17 @@ - {f760d849-e52d-44e3-84ac-c11bf255e05a} + {bfaeab8a-6993-43f5-8480-8f3203553063} - {3abd9539-27ca-465e-bab6-f75ab22329ae} + {ea7b7225-45df-4878-813b-4e01cdf3fe31} - - Header Files - - - - + Header Files - + Header Files @@ -27,6 +22,6 @@ - + \ No newline at end of file diff --git a/Data/DataTest/DataTest_vs170.vcxproj b/Data/DataTest/DataTest_vs170.vcxproj index 4a0bf04d6..d6060dd09 100644 --- a/Data/DataTest/DataTest_vs170.vcxproj +++ b/Data/DataTest/DataTest_vs170.vcxproj @@ -1,4 +1,4 @@ - + @@ -77,11 +77,11 @@ 17.0 DataTest - {240E83C3-368D-11DB-9FBC-00123FC423B5} + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3} DataTest Win32Proj - + StaticLibrary MultiByte @@ -172,65 +172,65 @@ MultiByte v143 - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoDataTestA64d PocoDataTestmdd PocoDataTestmtd @@ -251,87 +251,87 @@ PocoDataTestmt - ..\..\..\binA64\ + ..\..\binA64\ objA64\DataTest\$(Configuration)\ true - ..\..\..\binA64\ + ..\..\binA64\ objA64\DataTest\$(Configuration)\ false - ..\..\..\libA64\ + ..\..\libA64\ objA64\DataTest\$(Configuration)\ - ..\..\..\libA64\ + ..\..\libA64\ objA64\DataTest\$(Configuration)\ - ..\..\..\libA64\ + ..\..\libA64\ objA64\DataTest\$(Configuration)\ - ..\..\..\libA64\ + ..\..\libA64\ objA64\DataTest\$(Configuration)\ - ..\..\..\bin\ + ..\..\bin\ obj\DataTest\$(Configuration)\ true - ..\..\..\bin\ + ..\..\bin\ obj\DataTest\$(Configuration)\ false - ..\..\..\lib\ + ..\..\lib\ obj\DataTest\$(Configuration)\ - ..\..\..\lib\ + ..\..\lib\ obj\DataTest\$(Configuration)\ - ..\..\..\lib\ + ..\..\lib\ obj\DataTest\$(Configuration)\ - ..\..\..\lib\ + ..\..\lib\ obj\DataTest\$(Configuration)\ - ..\..\..\bin64\ + ..\..\bin64\ obj64\DataTest\$(Configuration)\ true - ..\..\..\bin64\ + ..\..\bin64\ obj64\DataTest\$(Configuration)\ false - ..\..\..\lib64\ + ..\..\lib64\ obj64\DataTest\$(Configuration)\ - ..\..\..\lib64\ + ..\..\lib64\ obj64\DataTest\$(Configuration)\ - ..\..\..\lib64\ + ..\..\lib64\ obj64\DataTest\$(Configuration)\ - ..\..\..\lib64\ + ..\..\lib64\ obj64\DataTest\$(Configuration)\ Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -340,7 +340,7 @@ true true true - + Level3 ProgramDatabase Default @@ -351,13 +351,13 @@ stdc11 - ..\..\..\binA64\PocoDataTestA64d.dll + ..\..\binA64\PocoDataTestA64d.dll true true $(OutDir)$(TargetName).pdb - ..\..\..\libA64;%(AdditionalLibraryDirectories) + ..\..\libA64;%(AdditionalLibraryDirectories) Console - ..\..\..\libA64\PocoDataTestd.lib + ..\..\libA64\PocoDataTestd.lib MachineARM64 @@ -368,7 +368,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -376,9 +376,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -387,21 +387,21 @@ stdc11 - ..\..\..\binA64\PocoDataTestA64.dll + ..\..\binA64\PocoDataTestA64.dll true false - ..\..\..\libA64;%(AdditionalLibraryDirectories) + ..\..\libA64;%(AdditionalLibraryDirectories) Console true true - ..\..\..\libA64\PocoDataTest.lib + ..\..\libA64\PocoDataTest.lib MachineARM64 Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -410,7 +410,7 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase @@ -421,7 +421,7 @@ stdc11 - ..\..\..\libA64\PocoDataTestmtd.lib + ..\..\libA64\PocoDataTestmtd.lib @@ -431,7 +431,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -439,9 +439,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -450,13 +450,13 @@ stdc11 - ..\..\..\libA64\PocoDataTestmt.lib + ..\..\libA64\PocoDataTestmt.lib Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -465,7 +465,7 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase @@ -476,7 +476,7 @@ stdc11 - ..\..\..\libA64\PocoDataTestmdd.lib + ..\..\libA64\PocoDataTestmdd.lib @@ -486,7 +486,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -494,9 +494,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -505,13 +505,13 @@ stdc11 - ..\..\..\libA64\PocoDataTestmd.lib + ..\..\libA64\PocoDataTestmd.lib Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -520,7 +520,7 @@ true true true - + Level3 ProgramDatabase Default @@ -531,13 +531,13 @@ stdc11 - ..\..\..\bin\PocoDataTestd.dll + ..\..\bin\PocoDataTestd.dll true true $(OutDir)$(TargetName).pdb - ..\..\..\lib;%(AdditionalLibraryDirectories) + ..\..\lib;%(AdditionalLibraryDirectories) Console - ..\..\..\lib\PocoDataTestd.lib + ..\..\lib\PocoDataTestd.lib MachineX86 @@ -548,7 +548,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -556,9 +556,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -567,21 +567,21 @@ stdc11 - ..\..\..\bin\PocoDataTest.dll + ..\..\bin\PocoDataTest.dll true false - ..\..\..\lib;%(AdditionalLibraryDirectories) + ..\..\lib;%(AdditionalLibraryDirectories) Console true true - ..\..\..\lib\PocoDataTest.lib + ..\..\lib\PocoDataTest.lib MachineX86 Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -590,7 +590,7 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase @@ -601,7 +601,7 @@ stdc11 - ..\..\..\lib\PocoDataTestmtd.lib + ..\..\lib\PocoDataTestmtd.lib @@ -611,7 +611,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -619,9 +619,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -630,13 +630,13 @@ stdc11 - ..\..\..\lib\PocoDataTestmt.lib + ..\..\lib\PocoDataTestmt.lib Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -645,7 +645,7 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase @@ -656,7 +656,7 @@ stdc11 - ..\..\..\lib\PocoDataTestmdd.lib + ..\..\lib\PocoDataTestmdd.lib @@ -666,7 +666,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -674,10 +674,10 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 - + Default /Zc:__cplusplus %(AdditionalOptions) true @@ -685,13 +685,13 @@ stdc11 - ..\..\..\lib\PocoDataTestmd.lib + ..\..\lib\PocoDataTestmd.lib Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true EnableFastChecks @@ -700,7 +700,7 @@ true true true - + Level3 ProgramDatabase Default @@ -711,13 +711,13 @@ stdc11 - ..\..\..\bin64\PocoDataTest64d.dll + ..\..\bin64\PocoDataTest64d.dll true true $(OutDir)$(TargetName).pdb - ..\..\..\lib64;%(AdditionalLibraryDirectories) + ..\..\lib64;%(AdditionalLibraryDirectories) Console - ..\..\..\lib64\PocoDataTestd.lib + ..\..\lib64\PocoDataTestd.lib MachineX64 @@ -728,7 +728,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;_USRDLL;DataTest_EXPORTS;SQLParser_EXPORTS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -736,9 +736,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -747,21 +747,21 @@ stdc11 - ..\..\..\bin64\PocoDataTest64.dll + ..\..\bin64\PocoDataTest64.dll true false - ..\..\..\lib64;%(AdditionalLibraryDirectories) + ..\..\lib64;%(AdditionalLibraryDirectories) Console true true - ..\..\..\lib64\PocoDataTest.lib + ..\..\lib64\PocoDataTest.lib MachineX64 Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -770,7 +770,7 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase @@ -781,7 +781,7 @@ stdc11 - ..\..\..\lib64\PocoDataTestmtd.lib + ..\..\lib64\PocoDataTestmtd.lib @@ -791,7 +791,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -799,9 +799,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -810,13 +810,13 @@ stdc11 - ..\..\..\lib64\PocoDataTestmt.lib + ..\..\lib64\PocoDataTestmt.lib Disabled - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -825,7 +825,7 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase @@ -836,7 +836,7 @@ stdc11 - ..\..\..\lib64\PocoDataTestmdd.lib + ..\..\lib64\PocoDataTestmdd.lib @@ -846,7 +846,7 @@ true Speed true - .\include;.\src;..\..\..\CppUnit\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + .\include;..\..\SQLParser;..\..\SQLParser\src;..\..\CppUnit\include;..\..\Data\include;..\..\Data\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -854,9 +854,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -865,15 +865,12 @@ stdc11 - ..\..\..\lib64\PocoDataTestmd.lib + ..\..\lib64\PocoDataTestmd.lib - - - - - + + @@ -883,7 +880,7 @@ - + true true true @@ -898,6 +895,6 @@ true - - - + + + \ No newline at end of file diff --git a/Data/DataTest/DataTest_vs170.vcxproj.filters b/Data/DataTest/DataTest_vs170.vcxproj.filters index f76472c5d..01b99e293 100644 --- a/Data/DataTest/DataTest_vs170.vcxproj.filters +++ b/Data/DataTest/DataTest_vs170.vcxproj.filters @@ -2,22 +2,17 @@ - {6dd648e2-e024-4d90-a270-c8ba55e39c02} + {36d78e00-e4f2-41ae-bcb6-d7d39d78bf92} - {69ef55f2-d63a-4a3b-841b-aaed5af20d13} + {80b2c411-135b-4310-8fbe-edd927cc0cf9} - - Header Files - - - - + Header Files - + Header Files @@ -27,6 +22,6 @@ - + \ No newline at end of file diff --git a/Data/Data_vs170.sln b/Data/Data_vs170.sln index 128d7c690..2d47a8471 100644 --- a/Data/Data_vs170.sln +++ b/Data/Data_vs170.sln @@ -1,5 +1,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 +VisualStudioVersion = 17.9.34607.119 +MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Data", "Data_vs170.vcxproj", "{240E83C3-368D-11DB-9FBC-00123FC423B5}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs170.vcxproj", "{1813A463-E349-4FEA-8A8E-4A41E41C0DC7}" @@ -7,7 +9,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\Test {240E83C3-368D-11DB-9FBC-00123FC423B5} = {240E83C3-368D-11DB-9FBC-00123FC423B5} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DataTest", "testsuite\DataTest\DataTest_vs170.vcxproj", "{240E83C3-368D-11DB-9FBC-00123FC423B5}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DataTest", "DataTest\DataTest_vs170.vcxproj", "{989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}" ProjectSection(ProjectDependencies) = postProject {240E83C3-368D-11DB-9FBC-00123FC423B5} = {240E83C3-368D-11DB-9FBC-00123FC423B5} {1813A463-E349-4FEA-8A8E-4A41E41C0DC7} = {1813A463-E349-4FEA-8A8E-4A41E41C0DC7} @@ -16,187 +18,169 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution debug_shared|ARM64 = debug_shared|ARM64 - release_shared|ARM64 = release_shared|ARM64 - debug_static_mt|ARM64 = debug_static_mt|ARM64 - release_static_mt|ARM64 = release_static_mt|ARM64 - debug_static_md|ARM64 = debug_static_md|ARM64 - release_static_md|ARM64 = release_static_md|ARM64 debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 + debug_static_md|ARM64 = debug_static_md|ARM64 + debug_static_md|Win32 = debug_static_md|Win32 debug_static_md|x64 = debug_static_md|x64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 + debug_static_mt|Win32 = debug_static_mt|Win32 + debug_static_mt|x64 = debug_static_mt|x64 + release_shared|ARM64 = release_shared|ARM64 + release_shared|Win32 = release_shared|Win32 + release_shared|x64 = release_shared|x64 + release_static_md|ARM64 = release_static_md|ARM64 + release_static_md|Win32 = release_static_md|Win32 release_static_md|x64 = release_static_md|x64 + release_static_mt|ARM64 = release_static_mt|ARM64 + release_static_mt|Win32 = release_static_mt|Win32 + release_static_mt|x64 = release_static_mt|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.Build.0 = release_shared|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Build.0 = release_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Build.0 = debug_shared|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.ActiveCfg = release_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Build.0 = release_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Deploy.0 = release_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Build.0 = release_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.ActiveCfg = release_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Build.0 = release_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Deploy.0 = release_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Build.0 = release_static_md|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|ARM64.Build.0 = release_shared|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.Build.0 = debug_shared|Win32 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Build.0 = release_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.ActiveCfg = debug_shared|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.Build.0 = debug_shared|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.ActiveCfg = release_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Build.0 = release_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Deploy.0 = release_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.Build.0 = debug_static_md|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Build.0 = release_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.ActiveCfg = release_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Build.0 = release_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Deploy.0 = release_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.ActiveCfg = release_static_md|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.Build.0 = release_static_md|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.Build.0 = release_shared|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Build.0 = release_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Build.0 = debug_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.ActiveCfg = release_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Build.0 = release_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Deploy.0 = release_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Build.0 = release_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_shared|x64.Build.0 = debug_shared|x64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_shared|Win32.Build.0 = release_shared|Win32 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_shared|x64.ActiveCfg = release_shared|x64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_shared|x64.Build.0 = release_shared|x64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_md|x64.Build.0 = release_static_md|x64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_mt|x64.Build.0 = release_static_mt|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From 4b782b0958c307972046280bd1e50a3e8b055a2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 19 Feb 2024 12:03:45 +0100 Subject: [PATCH 332/395] chore(Data): add dependencies to DataTest --- Data/ODBC/testsuite/Makefile | 1 - Data/ODBC/testsuite/dependencies | 1 + Data/PostgreSQL/testsuite/Makefile | 1 - Data/PostgreSQL/testsuite/dependencies | 1 + components | 1 + release/script/mkrelease | 11 ++++++++++- release/spec/all.release | 1 + 7 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 Data/ODBC/testsuite/dependencies create mode 100644 Data/PostgreSQL/testsuite/dependencies diff --git a/Data/ODBC/testsuite/Makefile b/Data/ODBC/testsuite/Makefile index 5c3fac557..bcc54fbfa 100644 --- a/Data/ODBC/testsuite/Makefile +++ b/Data/ODBC/testsuite/Makefile @@ -42,6 +42,5 @@ endif target = testrunner target_version = 1 target_libs = PocoDataODBC PocoDataTest PocoData PocoFoundation CppUnit -target_includes += $(POCO_BASE)/Data/DataTest/include include $(POCO_BASE)/build/rules/exec diff --git a/Data/ODBC/testsuite/dependencies b/Data/ODBC/testsuite/dependencies new file mode 100644 index 000000000..3fae56a64 --- /dev/null +++ b/Data/ODBC/testsuite/dependencies @@ -0,0 +1 @@ +Data/DataTest diff --git a/Data/PostgreSQL/testsuite/Makefile b/Data/PostgreSQL/testsuite/Makefile index e4190d664..1c0d5817a 100644 --- a/Data/PostgreSQL/testsuite/Makefile +++ b/Data/PostgreSQL/testsuite/Makefile @@ -20,6 +20,5 @@ endif target = testrunner target_version = 1 target_libs = PocoDataPostgreSQL PocoDataTest PocoData PocoFoundation CppUnit -target_includes += $(POCO_BASE)/Data/DataTest/include include $(POCO_BASE)/build/rules/exec diff --git a/Data/PostgreSQL/testsuite/dependencies b/Data/PostgreSQL/testsuite/dependencies new file mode 100644 index 000000000..3fae56a64 --- /dev/null +++ b/Data/PostgreSQL/testsuite/dependencies @@ -0,0 +1 @@ +Data/DataTest diff --git a/components b/components index c8f4d61ac..811018f99 100644 --- a/components +++ b/components @@ -13,6 +13,7 @@ Data/SQLite Data/ODBC Data/MySQL Data/PostgreSQL +Data/DataTest Zip PageCompiler PageCompiler/File2Page diff --git a/release/script/mkrelease b/release/script/mkrelease index 1e8868c75..fe3f9c7fa 100755 --- a/release/script/mkrelease +++ b/release/script/mkrelease @@ -348,9 +348,18 @@ ${comp}-libexec: $dependencies ENDOFSCRIPT if [ -d "${POCO_BASE}/${comp}/testsuite" ] ; then + tdependencies="" + if [ -f "${POCO_BASE}/${comp}/testsuite/dependencies" ] ; then + for dep in `cat "${POCO_BASE}/${comp}/testsuite/dependencies"` ; + do + # get rid of surrounding whitespace (trailing \r on Cygwin) + read dep <<< ${dep} + tdependencies="$tdependencies ${dep}-libexec" + done + fi cat >>${target}/Makefile < Date: Mon, 19 Feb 2024 12:48:30 +0100 Subject: [PATCH 333/395] fix(Data): dependencies --- Data/dependencies | 1 - 1 file changed, 1 deletion(-) diff --git a/Data/dependencies b/Data/dependencies index aa770fb02..2e8175e4e 100644 --- a/Data/dependencies +++ b/Data/dependencies @@ -1,2 +1 @@ Foundation -DataTest From c2b41ef657ead12324a20d712b925e95924a573e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 19 Feb 2024 13:07:39 +0100 Subject: [PATCH 334/395] ci: packages-qa Windows tests --- .github/workflows/packages-qa.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/packages-qa.yml b/.github/workflows/packages-qa.yml index 266f92725..7b877ff35 100644 --- a/.github/workflows/packages-qa.yml +++ b/.github/workflows/packages-qa.yml @@ -100,3 +100,14 @@ jobs: - run: sudo apt -y update && sudo apt -y install cmake ninja-build libssl-dev unixodbc-dev libmysqlclient-dev - run: mkdir poco && cd poco && tar xfz ../poco-*-all.tar.gz --strip-components=1 - run: cmake -Spoco -Bcmake-build -GNinja -DENABLE_PDF=OFF -DENABLE_TESTS=ON && cmake --build cmake-build --target all + + windows-2022-msvc-buildwin-x64-mkrelease-all: + runs-on: windows-2022 + steps: + - uses: actions/download-artifact@v4 + with: + name: windows-archives + - run: | + 7z x poco-*.zip + cd poco-*-all + .\buildwin.ps1 -poco_base . -vs 170 -action build -linkmode all -config release -platform x64 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" From c0fb438d927d833e6e7538b15bef03295b5d23d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 19 Feb 2024 13:09:24 +0100 Subject: [PATCH 335/395] ci: packages-qa Windows tests --- .github/workflows/packages-qa.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/packages-qa.yml b/.github/workflows/packages-qa.yml index 7b877ff35..b3d7b6999 100644 --- a/.github/workflows/packages-qa.yml +++ b/.github/workflows/packages-qa.yml @@ -103,6 +103,7 @@ jobs: windows-2022-msvc-buildwin-x64-mkrelease-all: runs-on: windows-2022 + needs: mkrelease_win steps: - uses: actions/download-artifact@v4 with: From 15f637a8ce6249fca02ae522db507a7acb9d2595 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 19 Feb 2024 13:15:12 +0100 Subject: [PATCH 336/395] ci: packages-qa Windows cmake --- .github/workflows/packages-qa.yml | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/.github/workflows/packages-qa.yml b/.github/workflows/packages-qa.yml index b3d7b6999..77e845a55 100644 --- a/.github/workflows/packages-qa.yml +++ b/.github/workflows/packages-qa.yml @@ -109,6 +109,33 @@ jobs: with: name: windows-archives - run: | - 7z x poco-*.zip + 7z x poco-*-all.zip cd poco-*-all .\buildwin.ps1 -poco_base . -vs 170 -action build -linkmode all -config release -platform x64 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" + + windows-2022-msvc-buildwin-x64-mkrelease: + runs-on: windows-2022 + needs: mkrelease_win + steps: + - uses: actions/download-artifact@v4 + with: + name: windows-archives + - run: | + rm poco-*-all.zip + 7z x poco-*.zip + cd poco-* + .\buildwin.ps1 -poco_base . -vs 170 -action build -linkmode all -config release -platform x64 -samples -tests + + windows-2022-msvc-cmake-mkrelease-all: + runs-on: windows-2022 + needs: mkrelease_win + steps: + - uses: actions/download-artifact@v4 + with: + name: windows-archives + - run: | + 7z x poco-*-all.zip + cd poco-*-all + cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON + cmake --build cmake-build --config Release + From 009d91fe23d2df44dd8e37c848753a54f62d9ea3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 19 Feb 2024 13:25:36 +0100 Subject: [PATCH 337/395] ci: packages-qa Windows cmake --- .github/workflows/packages-qa.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/packages-qa.yml b/.github/workflows/packages-qa.yml index 77e845a55..c92ddb355 100644 --- a/.github/workflows/packages-qa.yml +++ b/.github/workflows/packages-qa.yml @@ -139,3 +139,16 @@ jobs: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON cmake --build cmake-build --config Release + windows-2022-msvc-cmake-mkrelease: + runs-on: windows-2022 + needs: mkrelease_win + steps: + - uses: actions/download-artifact@v4 + with: + name: windows-archives + - run: | + rm poco-*-all.zip + 7z x poco-*.zip + cd poco-* + cmake -S. -Bcmake-build -DENABLE_TESTS=ON + cmake --build cmake-build --config Release From 56e340c0d880da8d684fcd7de36d70193701fb0b Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Mon, 5 Feb 2024 17:35:01 +0100 Subject: [PATCH 338/395] Update CONTRIBUTORS --- CONTRIBUTORS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 78cc77beb..15b077a09 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -62,3 +62,5 @@ Nino Belušić Kari Argillander Alexander B Andrew Auclair +Jochen Sprickerhof +Jesse Hoogervorst From 8f1a9d25885e260bb29652540304f3294c41fc3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 19 Feb 2024 19:07:03 +0100 Subject: [PATCH 339/395] fix(ProGen): vs160 templates --- .../vs160/Win32/executable/debug_shared-Win32.template | 5 ++++- .../vs160/Win32/executable/debug_shared-x64.template | 5 ++++- .../vs160/Win32/executable/debug_static_md-Win32.template | 5 ++++- .../vs160/Win32/executable/debug_static_md-x64.template | 5 ++++- .../vs160/Win32/executable/debug_static_mt-Win32.template | 5 ++++- .../vs160/Win32/executable/debug_static_mt-x64.template | 5 ++++- .../vs160/Win32/executable/release_shared-Win32.template | 3 +++ .../vs160/Win32/executable/release_shared-x64.template | 3 +++ .../vs160/Win32/executable/release_static_md-Win32.template | 3 +++ .../vs160/Win32/executable/release_static_md-x64.template | 3 +++ .../vs160/Win32/executable/release_static_mt-Win32.template | 3 +++ .../vs160/Win32/executable/release_static_mt-x64.template | 3 +++ .../vs160/Win32/library/debug_shared-Win32.template | 5 ++++- .../templates/vs160/Win32/library/debug_shared-x64.template | 5 ++++- .../vs160/Win32/library/debug_static_md-Win32.template | 3 +++ .../vs160/Win32/library/debug_static_md-x64.template | 3 +++ .../vs160/Win32/library/debug_static_mt-Win32.template | 3 +++ .../vs160/Win32/library/debug_static_mt-x64.template | 3 +++ .../vs160/Win32/library/release_shared-Win32.template | 3 +++ .../vs160/Win32/library/release_shared-x64.template | 3 +++ .../vs160/Win32/library/release_static_md-Win32.template | 3 +++ .../vs160/Win32/library/release_static_md-x64.template | 3 +++ .../vs160/Win32/library/release_static_mt-Win32.template | 3 +++ .../vs160/Win32/library/release_static_mt-x64.template | 3 +++ .../templates/vs160/Win32/plugin/debug_shared-Win32.template | 5 ++++- .../templates/vs160/Win32/plugin/debug_shared-x64.template | 5 ++++- .../vs160/Win32/plugin/release_shared-Win32.template | 3 +++ .../templates/vs160/Win32/plugin/release_shared-x64.template | 3 +++ .../vs160/Win32/testsuite/debug_shared-Win32.template | 5 ++++- .../vs160/Win32/testsuite/debug_shared-x64.template | 5 ++++- .../vs160/Win32/testsuite/debug_static_md-Win32.template | 5 ++++- .../vs160/Win32/testsuite/debug_static_md-x64.template | 5 ++++- .../vs160/Win32/testsuite/debug_static_mt-Win32.template | 5 ++++- .../vs160/Win32/testsuite/debug_static_mt-x64.template | 5 ++++- .../vs160/Win32/testsuite/release_shared-Win32.template | 3 +++ .../vs160/Win32/testsuite/release_shared-x64.template | 3 +++ .../vs160/Win32/testsuite/release_static_md-Win32.template | 3 +++ .../vs160/Win32/testsuite/release_static_md-x64.template | 3 +++ .../vs160/Win32/testsuite/release_static_mt-Win32.template | 3 +++ .../vs160/Win32/testsuite/release_static_mt-x64.template | 3 +++ 40 files changed, 136 insertions(+), 16 deletions(-) diff --git a/ProGen/templates/vs160/Win32/executable/debug_shared-Win32.template b/ProGen/templates/vs160/Win32/executable/debug_shared-Win32.template index 801cc8067..f0cbc374c 100644 --- a/ProGen/templates/vs160/Win32/executable/debug_shared-Win32.template +++ b/ProGen/templates/vs160/Win32/executable/debug_shared-Win32.template @@ -37,6 +37,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +60,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib;${configuration.linker.libraries}" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="1" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs160/Win32/executable/debug_shared-x64.template b/ProGen/templates/vs160/Win32/executable/debug_shared-x64.template index 44f8b2f54..3269b7d49 100644 --- a/ProGen/templates/vs160/Win32/executable/debug_shared-x64.template +++ b/ProGen/templates/vs160/Win32/executable/debug_shared-x64.template @@ -37,6 +37,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +60,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib64;${configuration.linker.libraries}" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin64\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="17" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs160/Win32/executable/debug_static_md-Win32.template b/ProGen/templates/vs160/Win32/executable/debug_static_md-Win32.template index 2654e35af..4cbbc03c1 100644 --- a/ProGen/templates/vs160/Win32/executable/debug_static_md-Win32.template +++ b/ProGen/templates/vs160/Win32/executable/debug_static_md-Win32.template @@ -37,6 +37,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +60,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib;${configuration.linker.libraries}" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin\static_md\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="1" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs160/Win32/executable/debug_static_md-x64.template b/ProGen/templates/vs160/Win32/executable/debug_static_md-x64.template index 644ff2a42..eea5e259c 100644 --- a/ProGen/templates/vs160/Win32/executable/debug_static_md-x64.template +++ b/ProGen/templates/vs160/Win32/executable/debug_static_md-x64.template @@ -37,6 +37,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +60,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib64;${configuration.linker.libraries}" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin64\static_md\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="17" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs160/Win32/executable/debug_static_mt-Win32.template b/ProGen/templates/vs160/Win32/executable/debug_static_mt-Win32.template index 0884c8f07..0eed84cbf 100644 --- a/ProGen/templates/vs160/Win32/executable/debug_static_mt-Win32.template +++ b/ProGen/templates/vs160/Win32/executable/debug_static_mt-Win32.template @@ -37,6 +37,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +60,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib;${configuration.linker.libraries}" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin\static_mt\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="1" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs160/Win32/executable/debug_static_mt-x64.template b/ProGen/templates/vs160/Win32/executable/debug_static_mt-x64.template index b52d79a78..c09aa9775 100644 --- a/ProGen/templates/vs160/Win32/executable/debug_static_mt-x64.template +++ b/ProGen/templates/vs160/Win32/executable/debug_static_mt-x64.template @@ -37,6 +37,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +60,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib64;${configuration.linker.libraries}" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin64\static_mt\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="17" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs160/Win32/executable/release_shared-Win32.template b/ProGen/templates/vs160/Win32/executable/release_shared-Win32.template index 6a8dccbbd..83c779a50 100644 --- a/ProGen/templates/vs160/Win32/executable/release_shared-Win32.template +++ b/ProGen/templates/vs160/Win32/executable/release_shared-Win32.template @@ -40,6 +40,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/executable/release_shared-x64.template b/ProGen/templates/vs160/Win32/executable/release_shared-x64.template index 369c69169..6afe64a20 100644 --- a/ProGen/templates/vs160/Win32/executable/release_shared-x64.template +++ b/ProGen/templates/vs160/Win32/executable/release_shared-x64.template @@ -40,6 +40,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/executable/release_static_md-Win32.template b/ProGen/templates/vs160/Win32/executable/release_static_md-Win32.template index d9dd10406..04586914d 100644 --- a/ProGen/templates/vs160/Win32/executable/release_static_md-Win32.template +++ b/ProGen/templates/vs160/Win32/executable/release_static_md-Win32.template @@ -40,6 +40,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/executable/release_static_md-x64.template b/ProGen/templates/vs160/Win32/executable/release_static_md-x64.template index 5992c40cf..9591713e2 100644 --- a/ProGen/templates/vs160/Win32/executable/release_static_md-x64.template +++ b/ProGen/templates/vs160/Win32/executable/release_static_md-x64.template @@ -40,6 +40,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/executable/release_static_mt-Win32.template b/ProGen/templates/vs160/Win32/executable/release_static_mt-Win32.template index 5477c2b8c..c43771347 100644 --- a/ProGen/templates/vs160/Win32/executable/release_static_mt-Win32.template +++ b/ProGen/templates/vs160/Win32/executable/release_static_mt-Win32.template @@ -40,6 +40,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/executable/release_static_mt-x64.template b/ProGen/templates/vs160/Win32/executable/release_static_mt-x64.template index f04f3a998..8c7889cb0 100644 --- a/ProGen/templates/vs160/Win32/executable/release_static_mt-x64.template +++ b/ProGen/templates/vs160/Win32/executable/release_static_mt-x64.template @@ -40,6 +40,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/library/debug_shared-Win32.template b/ProGen/templates/vs160/Win32/library/debug_shared-Win32.template index 5d547438b..1e6ef2e2d 100644 --- a/ProGen/templates/vs160/Win32/library/debug_shared-Win32.template +++ b/ProGen/templates/vs160/Win32/library/debug_shared-Win32.template @@ -37,6 +37,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -56,7 +59,7 @@ LinkIncremental="2" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="${project.outdir}\bin\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" AdditionalLibraryDirectories="${project.pocobase}\lib" SubSystem="1" ImportLibrary="${project.outdir}\lib\${project.target}d.lib" diff --git a/ProGen/templates/vs160/Win32/library/debug_shared-x64.template b/ProGen/templates/vs160/Win32/library/debug_shared-x64.template index f2257dda0..587c848b9 100644 --- a/ProGen/templates/vs160/Win32/library/debug_shared-x64.template +++ b/ProGen/templates/vs160/Win32/library/debug_shared-x64.template @@ -37,6 +37,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -56,7 +59,7 @@ LinkIncremental="2" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="${project.outdir}\bin64\${project.target}64d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" AdditionalLibraryDirectories="${project.pocobase}\lib64" SubSystem="1" ImportLibrary="${project.outdir}\lib64\${project.target}d.lib" diff --git a/ProGen/templates/vs160/Win32/library/debug_static_md-Win32.template b/ProGen/templates/vs160/Win32/library/debug_static_md-Win32.template index e4db26930..be12f08aa 100644 --- a/ProGen/templates/vs160/Win32/library/debug_static_md-Win32.template +++ b/ProGen/templates/vs160/Win32/library/debug_static_md-Win32.template @@ -38,6 +38,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/library/debug_static_md-x64.template b/ProGen/templates/vs160/Win32/library/debug_static_md-x64.template index 8cdfbae91..6aa1d4336 100644 --- a/ProGen/templates/vs160/Win32/library/debug_static_md-x64.template +++ b/ProGen/templates/vs160/Win32/library/debug_static_md-x64.template @@ -38,6 +38,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/library/debug_static_mt-Win32.template b/ProGen/templates/vs160/Win32/library/debug_static_mt-Win32.template index 486a9c7a3..02b3e5774 100644 --- a/ProGen/templates/vs160/Win32/library/debug_static_mt-Win32.template +++ b/ProGen/templates/vs160/Win32/library/debug_static_mt-Win32.template @@ -38,6 +38,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/library/debug_static_mt-x64.template b/ProGen/templates/vs160/Win32/library/debug_static_mt-x64.template index b02b7a56f..9900351b9 100644 --- a/ProGen/templates/vs160/Win32/library/debug_static_mt-x64.template +++ b/ProGen/templates/vs160/Win32/library/debug_static_mt-x64.template @@ -38,6 +38,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/library/release_shared-Win32.template b/ProGen/templates/vs160/Win32/library/release_shared-Win32.template index 51211d8e5..afdf988d2 100644 --- a/ProGen/templates/vs160/Win32/library/release_shared-Win32.template +++ b/ProGen/templates/vs160/Win32/library/release_shared-Win32.template @@ -40,6 +40,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/library/release_shared-x64.template b/ProGen/templates/vs160/Win32/library/release_shared-x64.template index 598a27939..d0f231df5 100644 --- a/ProGen/templates/vs160/Win32/library/release_shared-x64.template +++ b/ProGen/templates/vs160/Win32/library/release_shared-x64.template @@ -40,6 +40,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/library/release_static_md-Win32.template b/ProGen/templates/vs160/Win32/library/release_static_md-Win32.template index 59c197fe0..f77d914c2 100644 --- a/ProGen/templates/vs160/Win32/library/release_static_md-Win32.template +++ b/ProGen/templates/vs160/Win32/library/release_static_md-Win32.template @@ -41,6 +41,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/library/release_static_md-x64.template b/ProGen/templates/vs160/Win32/library/release_static_md-x64.template index dbc15deec..91596d53f 100644 --- a/ProGen/templates/vs160/Win32/library/release_static_md-x64.template +++ b/ProGen/templates/vs160/Win32/library/release_static_md-x64.template @@ -40,6 +40,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/library/release_static_mt-Win32.template b/ProGen/templates/vs160/Win32/library/release_static_mt-Win32.template index bc35acb96..c7ee3da27 100644 --- a/ProGen/templates/vs160/Win32/library/release_static_mt-Win32.template +++ b/ProGen/templates/vs160/Win32/library/release_static_mt-Win32.template @@ -40,6 +40,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/library/release_static_mt-x64.template b/ProGen/templates/vs160/Win32/library/release_static_mt-x64.template index acebfc406..167881543 100644 --- a/ProGen/templates/vs160/Win32/library/release_static_mt-x64.template +++ b/ProGen/templates/vs160/Win32/library/release_static_mt-x64.template @@ -40,6 +40,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/plugin/debug_shared-Win32.template b/ProGen/templates/vs160/Win32/plugin/debug_shared-Win32.template index d238a563d..4e2541a71 100644 --- a/ProGen/templates/vs160/Win32/plugin/debug_shared-Win32.template +++ b/ProGen/templates/vs160/Win32/plugin/debug_shared-Win32.template @@ -37,6 +37,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -56,7 +59,7 @@ LinkIncremental="2" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="${project.outdir}\bin\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" AdditionalLibraryDirectories="${project.pocobase}\lib" SubSystem="1" TargetMachine="1" diff --git a/ProGen/templates/vs160/Win32/plugin/debug_shared-x64.template b/ProGen/templates/vs160/Win32/plugin/debug_shared-x64.template index 6778cf133..1ae6b0e05 100644 --- a/ProGen/templates/vs160/Win32/plugin/debug_shared-x64.template +++ b/ProGen/templates/vs160/Win32/plugin/debug_shared-x64.template @@ -37,6 +37,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -56,7 +59,7 @@ LinkIncremental="2" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="${project.outdir}\bin64\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" AdditionalLibraryDirectories="${project.pocobase}\lib64" SubSystem="1" TargetMachine="17" diff --git a/ProGen/templates/vs160/Win32/plugin/release_shared-Win32.template b/ProGen/templates/vs160/Win32/plugin/release_shared-Win32.template index 862c9c6af..4c3250275 100644 --- a/ProGen/templates/vs160/Win32/plugin/release_shared-Win32.template +++ b/ProGen/templates/vs160/Win32/plugin/release_shared-Win32.template @@ -40,6 +40,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/plugin/release_shared-x64.template b/ProGen/templates/vs160/Win32/plugin/release_shared-x64.template index 65d659177..286237b32 100644 --- a/ProGen/templates/vs160/Win32/plugin/release_shared-x64.template +++ b/ProGen/templates/vs160/Win32/plugin/release_shared-x64.template @@ -40,6 +40,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/testsuite/debug_shared-Win32.template b/ProGen/templates/vs160/Win32/testsuite/debug_shared-Win32.template index 908b44c3f..9d82b2d58 100644 --- a/ProGen/templates/vs160/Win32/testsuite/debug_shared-Win32.template +++ b/ProGen/templates/vs160/Win32/testsuite/debug_shared-Win32.template @@ -37,6 +37,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +60,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="1" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs160/Win32/testsuite/debug_shared-x64.template b/ProGen/templates/vs160/Win32/testsuite/debug_shared-x64.template index 56255cbf4..6badd1a14 100644 --- a/ProGen/templates/vs160/Win32/testsuite/debug_shared-x64.template +++ b/ProGen/templates/vs160/Win32/testsuite/debug_shared-x64.template @@ -37,6 +37,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +60,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib64" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin64\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="17" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs160/Win32/testsuite/debug_static_md-Win32.template b/ProGen/templates/vs160/Win32/testsuite/debug_static_md-Win32.template index f9d422527..c31cf435a 100644 --- a/ProGen/templates/vs160/Win32/testsuite/debug_static_md-Win32.template +++ b/ProGen/templates/vs160/Win32/testsuite/debug_static_md-Win32.template @@ -37,6 +37,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +60,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin\static_md\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="1" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs160/Win32/testsuite/debug_static_md-x64.template b/ProGen/templates/vs160/Win32/testsuite/debug_static_md-x64.template index f8a3aa416..8ec7c04b4 100644 --- a/ProGen/templates/vs160/Win32/testsuite/debug_static_md-x64.template +++ b/ProGen/templates/vs160/Win32/testsuite/debug_static_md-x64.template @@ -37,6 +37,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +60,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib64" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin64\static_md\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="17" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs160/Win32/testsuite/debug_static_mt-Win32.template b/ProGen/templates/vs160/Win32/testsuite/debug_static_mt-Win32.template index 83d67eca3..ec9d6244c 100644 --- a/ProGen/templates/vs160/Win32/testsuite/debug_static_mt-Win32.template +++ b/ProGen/templates/vs160/Win32/testsuite/debug_static_mt-Win32.template @@ -37,6 +37,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +60,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin\static_mt\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="1" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs160/Win32/testsuite/debug_static_mt-x64.template b/ProGen/templates/vs160/Win32/testsuite/debug_static_mt-x64.template index 2769034f9..032e87005 100644 --- a/ProGen/templates/vs160/Win32/testsuite/debug_static_mt-x64.template +++ b/ProGen/templates/vs160/Win32/testsuite/debug_static_mt-x64.template @@ -37,6 +37,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="3" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> @@ -57,7 +60,7 @@ AdditionalLibraryDirectories="${project.pocobase}\lib64" SuppressStartupBanner="true" GenerateDebugInformation="true" - ProgramDatabaseFile="bin64\static_mt\${project.target}d.pdb" + ProgramDatabaseFile="$(OutDir)$(TargetName).pdb" SubSystem="1" TargetMachine="17" AdditionalOptions="${configuration.linker.additionalOptions}" diff --git a/ProGen/templates/vs160/Win32/testsuite/release_shared-Win32.template b/ProGen/templates/vs160/Win32/testsuite/release_shared-Win32.template index c467ca9d0..daf4781cb 100644 --- a/ProGen/templates/vs160/Win32/testsuite/release_shared-Win32.template +++ b/ProGen/templates/vs160/Win32/testsuite/release_shared-Win32.template @@ -40,6 +40,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/testsuite/release_shared-x64.template b/ProGen/templates/vs160/Win32/testsuite/release_shared-x64.template index 64f778e24..a100e0fa7 100644 --- a/ProGen/templates/vs160/Win32/testsuite/release_shared-x64.template +++ b/ProGen/templates/vs160/Win32/testsuite/release_shared-x64.template @@ -40,6 +40,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/testsuite/release_static_md-Win32.template b/ProGen/templates/vs160/Win32/testsuite/release_static_md-Win32.template index 6a8013d56..4308e6bcc 100644 --- a/ProGen/templates/vs160/Win32/testsuite/release_static_md-Win32.template +++ b/ProGen/templates/vs160/Win32/testsuite/release_static_md-Win32.template @@ -40,6 +40,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/testsuite/release_static_md-x64.template b/ProGen/templates/vs160/Win32/testsuite/release_static_md-x64.template index e58ce0734..53444e6a3 100644 --- a/ProGen/templates/vs160/Win32/testsuite/release_static_md-x64.template +++ b/ProGen/templates/vs160/Win32/testsuite/release_static_md-x64.template @@ -40,6 +40,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/testsuite/release_static_mt-Win32.template b/ProGen/templates/vs160/Win32/testsuite/release_static_mt-Win32.template index 3e4baa030..1583ff998 100644 --- a/ProGen/templates/vs160/Win32/testsuite/release_static_mt-Win32.template +++ b/ProGen/templates/vs160/Win32/testsuite/release_static_mt-Win32.template @@ -40,6 +40,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> diff --git a/ProGen/templates/vs160/Win32/testsuite/release_static_mt-x64.template b/ProGen/templates/vs160/Win32/testsuite/release_static_mt-x64.template index 75d4bcb9d..123fb0728 100644 --- a/ProGen/templates/vs160/Win32/testsuite/release_static_mt-x64.template +++ b/ProGen/templates/vs160/Win32/testsuite/release_static_mt-x64.template @@ -40,6 +40,9 @@ Detect64BitPortabilityProblems="false" DebugInformationFormat="0" CompileAs="0" + ProgramDatabaseFileName="$(OutDir)$(TargetName).pdb" + LanguageStandard="${vc.project.compiler.std.cpp}" + LanguageStandard_C="${vc.project.compiler.std.c}" DisableSpecificWarnings="${configuration.compiler.disableWarnings}" AdditionalOptions="${configuration.compiler.additionalOptions}" /> From a772b26faee34b7116cb49c0d763d7a3428aa88d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 19 Feb 2024 19:07:58 +0100 Subject: [PATCH 340/395] chore(ProGen): remove vs140 and vs150 support --- .../executable/debug_shared-Win32.template | 86 ----------------- .../executable/debug_shared-x64.template | 86 ----------------- .../executable/debug_static_md-Win32.template | 86 ----------------- .../executable/debug_static_md-x64.template | 86 ----------------- .../executable/debug_static_mt-Win32.template | 86 ----------------- .../executable/debug_static_mt-x64.template | 86 ----------------- .../vs140/Win32/executable/project.properties | 12 --- .../vs140/Win32/executable/project.template | 29 ------ .../executable/release_shared-Win32.template | 89 ------------------ .../executable/release_shared-x64.template | 89 ------------------ .../release_static_md-Win32.template | 89 ------------------ .../executable/release_static_md-x64.template | 89 ------------------ .../release_static_mt-Win32.template | 89 ------------------ .../executable/release_static_mt-x64.template | 89 ------------------ .../Win32/library/debug_shared-Win32.template | 87 ------------------ .../Win32/library/debug_shared-x64.template | 87 ------------------ .../library/debug_static_md-Win32.template | 72 --------------- .../library/debug_static_md-x64.template | 73 --------------- .../library/debug_static_mt-Win32.template | 72 --------------- .../library/debug_static_mt-x64.template | 73 --------------- .../vs140/Win32/library/project.properties | 14 --- .../vs140/Win32/library/project.template | 29 ------ .../library/release_shared-Win32.template | 91 ------------------ .../Win32/library/release_shared-x64.template | 92 ------------------- .../library/release_static_md-Win32.template | 76 --------------- .../library/release_static_md-x64.template | 75 --------------- .../library/release_static_mt-Win32.template | 74 --------------- .../library/release_static_mt-x64.template | 75 --------------- .../Win32/plugin/debug_shared-Win32.template | 86 ----------------- .../Win32/plugin/debug_shared-x64.template | 86 ----------------- .../vs140/Win32/plugin/project.properties | 8 -- .../vs140/Win32/plugin/project.template | 29 ------ .../plugin/release_shared-Win32.template | 90 ------------------ .../Win32/plugin/release_shared-x64.template | 91 ------------------ .../testsuite/debug_shared-Win32.template | 86 ----------------- .../Win32/testsuite/debug_shared-x64.template | 86 ----------------- .../testsuite/debug_static_md-Win32.template | 86 ----------------- .../testsuite/debug_static_md-x64.template | 86 ----------------- .../testsuite/debug_static_mt-Win32.template | 86 ----------------- .../testsuite/debug_static_mt-x64.template | 86 ----------------- .../vs140/Win32/testsuite/project.properties | 13 --- .../vs140/Win32/testsuite/project.template | 29 ------ .../testsuite/release_shared-Win32.template | 89 ------------------ .../testsuite/release_shared-x64.template | 89 ------------------ .../release_static_md-Win32.template | 89 ------------------ .../testsuite/release_static_md-x64.template | 89 ------------------ .../release_static_mt-Win32.template | 89 ------------------ .../testsuite/release_static_mt-x64.template | 89 ------------------ .../executable/debug_shared-Win32.template | 86 ----------------- .../executable/debug_shared-x64.template | 86 ----------------- .../executable/debug_static_md-Win32.template | 86 ----------------- .../executable/debug_static_md-x64.template | 86 ----------------- .../executable/debug_static_mt-Win32.template | 86 ----------------- .../executable/debug_static_mt-x64.template | 86 ----------------- .../vs150/Win32/executable/project.properties | 12 --- .../vs150/Win32/executable/project.template | 29 ------ .../executable/release_shared-Win32.template | 89 ------------------ .../executable/release_shared-x64.template | 89 ------------------ .../release_static_md-Win32.template | 89 ------------------ .../executable/release_static_md-x64.template | 89 ------------------ .../release_static_mt-Win32.template | 89 ------------------ .../executable/release_static_mt-x64.template | 89 ------------------ .../Win32/library/debug_shared-Win32.template | 87 ------------------ .../Win32/library/debug_shared-x64.template | 87 ------------------ .../library/debug_static_md-Win32.template | 72 --------------- .../library/debug_static_md-x64.template | 73 --------------- .../library/debug_static_mt-Win32.template | 72 --------------- .../library/debug_static_mt-x64.template | 73 --------------- .../vs150/Win32/library/project.properties | 14 --- .../vs150/Win32/library/project.template | 29 ------ .../library/release_shared-Win32.template | 91 ------------------ .../Win32/library/release_shared-x64.template | 92 ------------------- .../library/release_static_md-Win32.template | 76 --------------- .../library/release_static_md-x64.template | 75 --------------- .../library/release_static_mt-Win32.template | 74 --------------- .../library/release_static_mt-x64.template | 75 --------------- .../Win32/plugin/debug_shared-Win32.template | 86 ----------------- .../Win32/plugin/debug_shared-x64.template | 86 ----------------- .../vs150/Win32/plugin/project.properties | 8 -- .../vs150/Win32/plugin/project.template | 29 ------ .../plugin/release_shared-Win32.template | 90 ------------------ .../Win32/plugin/release_shared-x64.template | 91 ------------------ .../testsuite/debug_shared-Win32.template | 86 ----------------- .../Win32/testsuite/debug_shared-x64.template | 86 ----------------- .../testsuite/debug_static_md-Win32.template | 86 ----------------- .../testsuite/debug_static_md-x64.template | 86 ----------------- .../testsuite/debug_static_mt-Win32.template | 86 ----------------- .../testsuite/debug_static_mt-x64.template | 86 ----------------- .../vs150/Win32/testsuite/project.properties | 13 --- .../vs150/Win32/testsuite/project.template | 29 ------ .../testsuite/release_shared-Win32.template | 89 ------------------ .../testsuite/release_shared-x64.template | 89 ------------------ .../release_static_md-Win32.template | 89 ------------------ .../testsuite/release_static_md-x64.template | 89 ------------------ .../release_static_mt-Win32.template | 89 ------------------ .../testsuite/release_static_mt-x64.template | 89 ------------------ 96 files changed, 7126 deletions(-) delete mode 100644 ProGen/templates/vs140/Win32/executable/debug_shared-Win32.template delete mode 100644 ProGen/templates/vs140/Win32/executable/debug_shared-x64.template delete mode 100644 ProGen/templates/vs140/Win32/executable/debug_static_md-Win32.template delete mode 100644 ProGen/templates/vs140/Win32/executable/debug_static_md-x64.template delete mode 100644 ProGen/templates/vs140/Win32/executable/debug_static_mt-Win32.template delete mode 100644 ProGen/templates/vs140/Win32/executable/debug_static_mt-x64.template delete mode 100644 ProGen/templates/vs140/Win32/executable/project.properties delete mode 100644 ProGen/templates/vs140/Win32/executable/project.template delete mode 100644 ProGen/templates/vs140/Win32/executable/release_shared-Win32.template delete mode 100644 ProGen/templates/vs140/Win32/executable/release_shared-x64.template delete mode 100644 ProGen/templates/vs140/Win32/executable/release_static_md-Win32.template delete mode 100644 ProGen/templates/vs140/Win32/executable/release_static_md-x64.template delete mode 100644 ProGen/templates/vs140/Win32/executable/release_static_mt-Win32.template delete mode 100644 ProGen/templates/vs140/Win32/executable/release_static_mt-x64.template delete mode 100644 ProGen/templates/vs140/Win32/library/debug_shared-Win32.template delete mode 100644 ProGen/templates/vs140/Win32/library/debug_shared-x64.template delete mode 100644 ProGen/templates/vs140/Win32/library/debug_static_md-Win32.template delete mode 100644 ProGen/templates/vs140/Win32/library/debug_static_md-x64.template delete mode 100644 ProGen/templates/vs140/Win32/library/debug_static_mt-Win32.template delete mode 100644 ProGen/templates/vs140/Win32/library/debug_static_mt-x64.template delete mode 100644 ProGen/templates/vs140/Win32/library/project.properties delete mode 100644 ProGen/templates/vs140/Win32/library/project.template delete mode 100644 ProGen/templates/vs140/Win32/library/release_shared-Win32.template delete mode 100644 ProGen/templates/vs140/Win32/library/release_shared-x64.template delete mode 100644 ProGen/templates/vs140/Win32/library/release_static_md-Win32.template delete mode 100644 ProGen/templates/vs140/Win32/library/release_static_md-x64.template delete mode 100644 ProGen/templates/vs140/Win32/library/release_static_mt-Win32.template delete mode 100644 ProGen/templates/vs140/Win32/library/release_static_mt-x64.template delete mode 100644 ProGen/templates/vs140/Win32/plugin/debug_shared-Win32.template delete mode 100644 ProGen/templates/vs140/Win32/plugin/debug_shared-x64.template delete mode 100644 ProGen/templates/vs140/Win32/plugin/project.properties delete mode 100644 ProGen/templates/vs140/Win32/plugin/project.template delete mode 100644 ProGen/templates/vs140/Win32/plugin/release_shared-Win32.template delete mode 100644 ProGen/templates/vs140/Win32/plugin/release_shared-x64.template delete mode 100644 ProGen/templates/vs140/Win32/testsuite/debug_shared-Win32.template delete mode 100644 ProGen/templates/vs140/Win32/testsuite/debug_shared-x64.template delete mode 100644 ProGen/templates/vs140/Win32/testsuite/debug_static_md-Win32.template delete mode 100644 ProGen/templates/vs140/Win32/testsuite/debug_static_md-x64.template delete mode 100644 ProGen/templates/vs140/Win32/testsuite/debug_static_mt-Win32.template delete mode 100644 ProGen/templates/vs140/Win32/testsuite/debug_static_mt-x64.template delete mode 100644 ProGen/templates/vs140/Win32/testsuite/project.properties delete mode 100644 ProGen/templates/vs140/Win32/testsuite/project.template delete mode 100644 ProGen/templates/vs140/Win32/testsuite/release_shared-Win32.template delete mode 100644 ProGen/templates/vs140/Win32/testsuite/release_shared-x64.template delete mode 100644 ProGen/templates/vs140/Win32/testsuite/release_static_md-Win32.template delete mode 100644 ProGen/templates/vs140/Win32/testsuite/release_static_md-x64.template delete mode 100644 ProGen/templates/vs140/Win32/testsuite/release_static_mt-Win32.template delete mode 100644 ProGen/templates/vs140/Win32/testsuite/release_static_mt-x64.template delete mode 100644 ProGen/templates/vs150/Win32/executable/debug_shared-Win32.template delete mode 100644 ProGen/templates/vs150/Win32/executable/debug_shared-x64.template delete mode 100644 ProGen/templates/vs150/Win32/executable/debug_static_md-Win32.template delete mode 100644 ProGen/templates/vs150/Win32/executable/debug_static_md-x64.template delete mode 100644 ProGen/templates/vs150/Win32/executable/debug_static_mt-Win32.template delete mode 100644 ProGen/templates/vs150/Win32/executable/debug_static_mt-x64.template delete mode 100644 ProGen/templates/vs150/Win32/executable/project.properties delete mode 100644 ProGen/templates/vs150/Win32/executable/project.template delete mode 100644 ProGen/templates/vs150/Win32/executable/release_shared-Win32.template delete mode 100644 ProGen/templates/vs150/Win32/executable/release_shared-x64.template delete mode 100644 ProGen/templates/vs150/Win32/executable/release_static_md-Win32.template delete mode 100644 ProGen/templates/vs150/Win32/executable/release_static_md-x64.template delete mode 100644 ProGen/templates/vs150/Win32/executable/release_static_mt-Win32.template delete mode 100644 ProGen/templates/vs150/Win32/executable/release_static_mt-x64.template delete mode 100644 ProGen/templates/vs150/Win32/library/debug_shared-Win32.template delete mode 100644 ProGen/templates/vs150/Win32/library/debug_shared-x64.template delete mode 100644 ProGen/templates/vs150/Win32/library/debug_static_md-Win32.template delete mode 100644 ProGen/templates/vs150/Win32/library/debug_static_md-x64.template delete mode 100644 ProGen/templates/vs150/Win32/library/debug_static_mt-Win32.template delete mode 100644 ProGen/templates/vs150/Win32/library/debug_static_mt-x64.template delete mode 100644 ProGen/templates/vs150/Win32/library/project.properties delete mode 100644 ProGen/templates/vs150/Win32/library/project.template delete mode 100644 ProGen/templates/vs150/Win32/library/release_shared-Win32.template delete mode 100644 ProGen/templates/vs150/Win32/library/release_shared-x64.template delete mode 100644 ProGen/templates/vs150/Win32/library/release_static_md-Win32.template delete mode 100644 ProGen/templates/vs150/Win32/library/release_static_md-x64.template delete mode 100644 ProGen/templates/vs150/Win32/library/release_static_mt-Win32.template delete mode 100644 ProGen/templates/vs150/Win32/library/release_static_mt-x64.template delete mode 100644 ProGen/templates/vs150/Win32/plugin/debug_shared-Win32.template delete mode 100644 ProGen/templates/vs150/Win32/plugin/debug_shared-x64.template delete mode 100644 ProGen/templates/vs150/Win32/plugin/project.properties delete mode 100644 ProGen/templates/vs150/Win32/plugin/project.template delete mode 100644 ProGen/templates/vs150/Win32/plugin/release_shared-Win32.template delete mode 100644 ProGen/templates/vs150/Win32/plugin/release_shared-x64.template delete mode 100644 ProGen/templates/vs150/Win32/testsuite/debug_shared-Win32.template delete mode 100644 ProGen/templates/vs150/Win32/testsuite/debug_shared-x64.template delete mode 100644 ProGen/templates/vs150/Win32/testsuite/debug_static_md-Win32.template delete mode 100644 ProGen/templates/vs150/Win32/testsuite/debug_static_md-x64.template delete mode 100644 ProGen/templates/vs150/Win32/testsuite/debug_static_mt-Win32.template delete mode 100644 ProGen/templates/vs150/Win32/testsuite/debug_static_mt-x64.template delete mode 100644 ProGen/templates/vs150/Win32/testsuite/project.properties delete mode 100644 ProGen/templates/vs150/Win32/testsuite/project.template delete mode 100644 ProGen/templates/vs150/Win32/testsuite/release_shared-Win32.template delete mode 100644 ProGen/templates/vs150/Win32/testsuite/release_shared-x64.template delete mode 100644 ProGen/templates/vs150/Win32/testsuite/release_static_md-Win32.template delete mode 100644 ProGen/templates/vs150/Win32/testsuite/release_static_md-x64.template delete mode 100644 ProGen/templates/vs150/Win32/testsuite/release_static_mt-Win32.template delete mode 100644 ProGen/templates/vs150/Win32/testsuite/release_static_mt-x64.template diff --git a/ProGen/templates/vs140/Win32/executable/debug_shared-Win32.template b/ProGen/templates/vs140/Win32/executable/debug_shared-Win32.template deleted file mode 100644 index 801cc8067..000000000 --- a/ProGen/templates/vs140/Win32/executable/debug_shared-Win32.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/executable/debug_shared-x64.template b/ProGen/templates/vs140/Win32/executable/debug_shared-x64.template deleted file mode 100644 index 44f8b2f54..000000000 --- a/ProGen/templates/vs140/Win32/executable/debug_shared-x64.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/executable/debug_static_md-Win32.template b/ProGen/templates/vs140/Win32/executable/debug_static_md-Win32.template deleted file mode 100644 index 2654e35af..000000000 --- a/ProGen/templates/vs140/Win32/executable/debug_static_md-Win32.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/executable/debug_static_md-x64.template b/ProGen/templates/vs140/Win32/executable/debug_static_md-x64.template deleted file mode 100644 index 644ff2a42..000000000 --- a/ProGen/templates/vs140/Win32/executable/debug_static_md-x64.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/executable/debug_static_mt-Win32.template b/ProGen/templates/vs140/Win32/executable/debug_static_mt-Win32.template deleted file mode 100644 index 0884c8f07..000000000 --- a/ProGen/templates/vs140/Win32/executable/debug_static_mt-Win32.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/executable/debug_static_mt-x64.template b/ProGen/templates/vs140/Win32/executable/debug_static_mt-x64.template deleted file mode 100644 index b52d79a78..000000000 --- a/ProGen/templates/vs140/Win32/executable/debug_static_mt-x64.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/executable/project.properties b/ProGen/templates/vs140/Win32/executable/project.properties deleted file mode 100644 index 1b6f7a562..000000000 --- a/ProGen/templates/vs140/Win32/executable/project.properties +++ /dev/null @@ -1,12 +0,0 @@ -project.suffix = _vs140.vcproj -project.targetSuffix.debug_shared = d -project.targetSuffix.release_shared = -project.targetSuffix.debug_static_md = d -project.targetSuffix.release_static_md = -project.targetSuffix.debug_static_mt = d -project.targetSuffix.release_static_mt = -project.postprocess = upgrade2008to2015 -project.finalSuffix = _vs140.vcxproj -project.architectures = Win32, x64 -project.targetArchitecture.Win32 = IA32 -project.targetArchitecture.x64 = AMD64 \ No newline at end of file diff --git a/ProGen/templates/vs140/Win32/executable/project.template b/ProGen/templates/vs140/Win32/executable/project.template deleted file mode 100644 index 1445a20cb..000000000 --- a/ProGen/templates/vs140/Win32/executable/project.template +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/executable/release_shared-Win32.template b/ProGen/templates/vs140/Win32/executable/release_shared-Win32.template deleted file mode 100644 index 6a8dccbbd..000000000 --- a/ProGen/templates/vs140/Win32/executable/release_shared-Win32.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/executable/release_shared-x64.template b/ProGen/templates/vs140/Win32/executable/release_shared-x64.template deleted file mode 100644 index 369c69169..000000000 --- a/ProGen/templates/vs140/Win32/executable/release_shared-x64.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/executable/release_static_md-Win32.template b/ProGen/templates/vs140/Win32/executable/release_static_md-Win32.template deleted file mode 100644 index d9dd10406..000000000 --- a/ProGen/templates/vs140/Win32/executable/release_static_md-Win32.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/executable/release_static_md-x64.template b/ProGen/templates/vs140/Win32/executable/release_static_md-x64.template deleted file mode 100644 index 5992c40cf..000000000 --- a/ProGen/templates/vs140/Win32/executable/release_static_md-x64.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/executable/release_static_mt-Win32.template b/ProGen/templates/vs140/Win32/executable/release_static_mt-Win32.template deleted file mode 100644 index 5477c2b8c..000000000 --- a/ProGen/templates/vs140/Win32/executable/release_static_mt-Win32.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/executable/release_static_mt-x64.template b/ProGen/templates/vs140/Win32/executable/release_static_mt-x64.template deleted file mode 100644 index f04f3a998..000000000 --- a/ProGen/templates/vs140/Win32/executable/release_static_mt-x64.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/library/debug_shared-Win32.template b/ProGen/templates/vs140/Win32/library/debug_shared-Win32.template deleted file mode 100644 index 5d547438b..000000000 --- a/ProGen/templates/vs140/Win32/library/debug_shared-Win32.template +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/library/debug_shared-x64.template b/ProGen/templates/vs140/Win32/library/debug_shared-x64.template deleted file mode 100644 index f2257dda0..000000000 --- a/ProGen/templates/vs140/Win32/library/debug_shared-x64.template +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/library/debug_static_md-Win32.template b/ProGen/templates/vs140/Win32/library/debug_static_md-Win32.template deleted file mode 100644 index e4db26930..000000000 --- a/ProGen/templates/vs140/Win32/library/debug_static_md-Win32.template +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/library/debug_static_md-x64.template b/ProGen/templates/vs140/Win32/library/debug_static_md-x64.template deleted file mode 100644 index 8cdfbae91..000000000 --- a/ProGen/templates/vs140/Win32/library/debug_static_md-x64.template +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/library/debug_static_mt-Win32.template b/ProGen/templates/vs140/Win32/library/debug_static_mt-Win32.template deleted file mode 100644 index 486a9c7a3..000000000 --- a/ProGen/templates/vs140/Win32/library/debug_static_mt-Win32.template +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/library/debug_static_mt-x64.template b/ProGen/templates/vs140/Win32/library/debug_static_mt-x64.template deleted file mode 100644 index b02b7a56f..000000000 --- a/ProGen/templates/vs140/Win32/library/debug_static_mt-x64.template +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/library/project.properties b/ProGen/templates/vs140/Win32/library/project.properties deleted file mode 100644 index 568d6a441..000000000 --- a/ProGen/templates/vs140/Win32/library/project.properties +++ /dev/null @@ -1,14 +0,0 @@ -project.suffix = _vs140.vcproj -project.targetSuffix.debug_shared = d -project.targetSuffix.release_shared = -project.targetSuffix.debug_shared.x64 = 64d -project.targetSuffix.release_shared.x64 = 64 -project.targetSuffix.debug_static_md = mdd -project.targetSuffix.release_static_md = md -project.targetSuffix.debug_static_mt = mtd -project.targetSuffix.release_static_mt = mt -project.postprocess = upgrade2008to2015 -project.finalSuffix = _vs140.vcxproj -project.architectures = Win32, x64 -project.targetArchitecture.Win32 = IA32 -project.targetArchitecture.x64 = AMD64 \ No newline at end of file diff --git a/ProGen/templates/vs140/Win32/library/project.template b/ProGen/templates/vs140/Win32/library/project.template deleted file mode 100644 index 1445a20cb..000000000 --- a/ProGen/templates/vs140/Win32/library/project.template +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/library/release_shared-Win32.template b/ProGen/templates/vs140/Win32/library/release_shared-Win32.template deleted file mode 100644 index 51211d8e5..000000000 --- a/ProGen/templates/vs140/Win32/library/release_shared-Win32.template +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/library/release_shared-x64.template b/ProGen/templates/vs140/Win32/library/release_shared-x64.template deleted file mode 100644 index 598a27939..000000000 --- a/ProGen/templates/vs140/Win32/library/release_shared-x64.template +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/library/release_static_md-Win32.template b/ProGen/templates/vs140/Win32/library/release_static_md-Win32.template deleted file mode 100644 index 59c197fe0..000000000 --- a/ProGen/templates/vs140/Win32/library/release_static_md-Win32.template +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/library/release_static_md-x64.template b/ProGen/templates/vs140/Win32/library/release_static_md-x64.template deleted file mode 100644 index dbc15deec..000000000 --- a/ProGen/templates/vs140/Win32/library/release_static_md-x64.template +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/library/release_static_mt-Win32.template b/ProGen/templates/vs140/Win32/library/release_static_mt-Win32.template deleted file mode 100644 index bc35acb96..000000000 --- a/ProGen/templates/vs140/Win32/library/release_static_mt-Win32.template +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/library/release_static_mt-x64.template b/ProGen/templates/vs140/Win32/library/release_static_mt-x64.template deleted file mode 100644 index acebfc406..000000000 --- a/ProGen/templates/vs140/Win32/library/release_static_mt-x64.template +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/plugin/debug_shared-Win32.template b/ProGen/templates/vs140/Win32/plugin/debug_shared-Win32.template deleted file mode 100644 index d238a563d..000000000 --- a/ProGen/templates/vs140/Win32/plugin/debug_shared-Win32.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/plugin/debug_shared-x64.template b/ProGen/templates/vs140/Win32/plugin/debug_shared-x64.template deleted file mode 100644 index 6778cf133..000000000 --- a/ProGen/templates/vs140/Win32/plugin/debug_shared-x64.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/plugin/project.properties b/ProGen/templates/vs140/Win32/plugin/project.properties deleted file mode 100644 index 02aa549ce..000000000 --- a/ProGen/templates/vs140/Win32/plugin/project.properties +++ /dev/null @@ -1,8 +0,0 @@ -project.suffix = _vs140.vcproj -project.targetSuffix.debug_shared = d -project.targetSuffix.release_shared = -project.postprocess = upgrade2008to2015 -project.finalSuffix = _vs140.vcxproj -project.architectures = Win32, x64 -project.targetArchitecture.Win32 = IA32 -project.targetArchitecture.x64 = AMD64 \ No newline at end of file diff --git a/ProGen/templates/vs140/Win32/plugin/project.template b/ProGen/templates/vs140/Win32/plugin/project.template deleted file mode 100644 index 1445a20cb..000000000 --- a/ProGen/templates/vs140/Win32/plugin/project.template +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/plugin/release_shared-Win32.template b/ProGen/templates/vs140/Win32/plugin/release_shared-Win32.template deleted file mode 100644 index 862c9c6af..000000000 --- a/ProGen/templates/vs140/Win32/plugin/release_shared-Win32.template +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/plugin/release_shared-x64.template b/ProGen/templates/vs140/Win32/plugin/release_shared-x64.template deleted file mode 100644 index 65d659177..000000000 --- a/ProGen/templates/vs140/Win32/plugin/release_shared-x64.template +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/testsuite/debug_shared-Win32.template b/ProGen/templates/vs140/Win32/testsuite/debug_shared-Win32.template deleted file mode 100644 index 908b44c3f..000000000 --- a/ProGen/templates/vs140/Win32/testsuite/debug_shared-Win32.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/testsuite/debug_shared-x64.template b/ProGen/templates/vs140/Win32/testsuite/debug_shared-x64.template deleted file mode 100644 index 56255cbf4..000000000 --- a/ProGen/templates/vs140/Win32/testsuite/debug_shared-x64.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/testsuite/debug_static_md-Win32.template b/ProGen/templates/vs140/Win32/testsuite/debug_static_md-Win32.template deleted file mode 100644 index f9d422527..000000000 --- a/ProGen/templates/vs140/Win32/testsuite/debug_static_md-Win32.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/testsuite/debug_static_md-x64.template b/ProGen/templates/vs140/Win32/testsuite/debug_static_md-x64.template deleted file mode 100644 index f8a3aa416..000000000 --- a/ProGen/templates/vs140/Win32/testsuite/debug_static_md-x64.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/testsuite/debug_static_mt-Win32.template b/ProGen/templates/vs140/Win32/testsuite/debug_static_mt-Win32.template deleted file mode 100644 index 83d67eca3..000000000 --- a/ProGen/templates/vs140/Win32/testsuite/debug_static_mt-Win32.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/testsuite/debug_static_mt-x64.template b/ProGen/templates/vs140/Win32/testsuite/debug_static_mt-x64.template deleted file mode 100644 index 2769034f9..000000000 --- a/ProGen/templates/vs140/Win32/testsuite/debug_static_mt-x64.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/testsuite/project.properties b/ProGen/templates/vs140/Win32/testsuite/project.properties deleted file mode 100644 index a601070b6..000000000 --- a/ProGen/templates/vs140/Win32/testsuite/project.properties +++ /dev/null @@ -1,13 +0,0 @@ -project.suffix = _vs140.vcproj -project.targetSuffix.debug_shared = d -project.targetSuffix.release_shared = -project.targetSuffix.debug_static_md = d -project.targetSuffix.release_static_md = -project.targetSuffix.debug_static_mt = d -project.targetSuffix.release_static_mt = -project.postprocess = upgrade2008to2015 -project.finalSuffix = _vs140.vcxproj -project.replaceSourceFiles = .\\src\\WinDriver.cpp > .\\src\\Driver.cpp -project.architectures = Win32, x64 -project.targetArchitecture.Win32 = IA32 -project.targetArchitecture.x64 = AMD64 \ No newline at end of file diff --git a/ProGen/templates/vs140/Win32/testsuite/project.template b/ProGen/templates/vs140/Win32/testsuite/project.template deleted file mode 100644 index 1445a20cb..000000000 --- a/ProGen/templates/vs140/Win32/testsuite/project.template +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/testsuite/release_shared-Win32.template b/ProGen/templates/vs140/Win32/testsuite/release_shared-Win32.template deleted file mode 100644 index c467ca9d0..000000000 --- a/ProGen/templates/vs140/Win32/testsuite/release_shared-Win32.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/testsuite/release_shared-x64.template b/ProGen/templates/vs140/Win32/testsuite/release_shared-x64.template deleted file mode 100644 index 64f778e24..000000000 --- a/ProGen/templates/vs140/Win32/testsuite/release_shared-x64.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/testsuite/release_static_md-Win32.template b/ProGen/templates/vs140/Win32/testsuite/release_static_md-Win32.template deleted file mode 100644 index 6a8013d56..000000000 --- a/ProGen/templates/vs140/Win32/testsuite/release_static_md-Win32.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/testsuite/release_static_md-x64.template b/ProGen/templates/vs140/Win32/testsuite/release_static_md-x64.template deleted file mode 100644 index e58ce0734..000000000 --- a/ProGen/templates/vs140/Win32/testsuite/release_static_md-x64.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/testsuite/release_static_mt-Win32.template b/ProGen/templates/vs140/Win32/testsuite/release_static_mt-Win32.template deleted file mode 100644 index 3e4baa030..000000000 --- a/ProGen/templates/vs140/Win32/testsuite/release_static_mt-Win32.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs140/Win32/testsuite/release_static_mt-x64.template b/ProGen/templates/vs140/Win32/testsuite/release_static_mt-x64.template deleted file mode 100644 index 75d4bcb9d..000000000 --- a/ProGen/templates/vs140/Win32/testsuite/release_static_mt-x64.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/executable/debug_shared-Win32.template b/ProGen/templates/vs150/Win32/executable/debug_shared-Win32.template deleted file mode 100644 index 801cc8067..000000000 --- a/ProGen/templates/vs150/Win32/executable/debug_shared-Win32.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/executable/debug_shared-x64.template b/ProGen/templates/vs150/Win32/executable/debug_shared-x64.template deleted file mode 100644 index 44f8b2f54..000000000 --- a/ProGen/templates/vs150/Win32/executable/debug_shared-x64.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/executable/debug_static_md-Win32.template b/ProGen/templates/vs150/Win32/executable/debug_static_md-Win32.template deleted file mode 100644 index 2654e35af..000000000 --- a/ProGen/templates/vs150/Win32/executable/debug_static_md-Win32.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/executable/debug_static_md-x64.template b/ProGen/templates/vs150/Win32/executable/debug_static_md-x64.template deleted file mode 100644 index 644ff2a42..000000000 --- a/ProGen/templates/vs150/Win32/executable/debug_static_md-x64.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/executable/debug_static_mt-Win32.template b/ProGen/templates/vs150/Win32/executable/debug_static_mt-Win32.template deleted file mode 100644 index 0884c8f07..000000000 --- a/ProGen/templates/vs150/Win32/executable/debug_static_mt-Win32.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/executable/debug_static_mt-x64.template b/ProGen/templates/vs150/Win32/executable/debug_static_mt-x64.template deleted file mode 100644 index b52d79a78..000000000 --- a/ProGen/templates/vs150/Win32/executable/debug_static_mt-x64.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/executable/project.properties b/ProGen/templates/vs150/Win32/executable/project.properties deleted file mode 100644 index 946f3e99c..000000000 --- a/ProGen/templates/vs150/Win32/executable/project.properties +++ /dev/null @@ -1,12 +0,0 @@ -project.suffix = _vs150.vcproj -project.targetSuffix.debug_shared = d -project.targetSuffix.release_shared = -project.targetSuffix.debug_static_md = d -project.targetSuffix.release_static_md = -project.targetSuffix.debug_static_mt = d -project.targetSuffix.release_static_mt = -project.postprocess = upgrade2008to2017 -project.finalSuffix = _vs150.vcxproj -project.architectures = Win32, x64 -project.targetArchitecture.Win32 = IA32 -project.targetArchitecture.x64 = AMD64 \ No newline at end of file diff --git a/ProGen/templates/vs150/Win32/executable/project.template b/ProGen/templates/vs150/Win32/executable/project.template deleted file mode 100644 index 1445a20cb..000000000 --- a/ProGen/templates/vs150/Win32/executable/project.template +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/executable/release_shared-Win32.template b/ProGen/templates/vs150/Win32/executable/release_shared-Win32.template deleted file mode 100644 index 6a8dccbbd..000000000 --- a/ProGen/templates/vs150/Win32/executable/release_shared-Win32.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/executable/release_shared-x64.template b/ProGen/templates/vs150/Win32/executable/release_shared-x64.template deleted file mode 100644 index 369c69169..000000000 --- a/ProGen/templates/vs150/Win32/executable/release_shared-x64.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/executable/release_static_md-Win32.template b/ProGen/templates/vs150/Win32/executable/release_static_md-Win32.template deleted file mode 100644 index d9dd10406..000000000 --- a/ProGen/templates/vs150/Win32/executable/release_static_md-Win32.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/executable/release_static_md-x64.template b/ProGen/templates/vs150/Win32/executable/release_static_md-x64.template deleted file mode 100644 index 5992c40cf..000000000 --- a/ProGen/templates/vs150/Win32/executable/release_static_md-x64.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/executable/release_static_mt-Win32.template b/ProGen/templates/vs150/Win32/executable/release_static_mt-Win32.template deleted file mode 100644 index 5477c2b8c..000000000 --- a/ProGen/templates/vs150/Win32/executable/release_static_mt-Win32.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/executable/release_static_mt-x64.template b/ProGen/templates/vs150/Win32/executable/release_static_mt-x64.template deleted file mode 100644 index f04f3a998..000000000 --- a/ProGen/templates/vs150/Win32/executable/release_static_mt-x64.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/library/debug_shared-Win32.template b/ProGen/templates/vs150/Win32/library/debug_shared-Win32.template deleted file mode 100644 index 5d547438b..000000000 --- a/ProGen/templates/vs150/Win32/library/debug_shared-Win32.template +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/library/debug_shared-x64.template b/ProGen/templates/vs150/Win32/library/debug_shared-x64.template deleted file mode 100644 index f2257dda0..000000000 --- a/ProGen/templates/vs150/Win32/library/debug_shared-x64.template +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/library/debug_static_md-Win32.template b/ProGen/templates/vs150/Win32/library/debug_static_md-Win32.template deleted file mode 100644 index e4db26930..000000000 --- a/ProGen/templates/vs150/Win32/library/debug_static_md-Win32.template +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/library/debug_static_md-x64.template b/ProGen/templates/vs150/Win32/library/debug_static_md-x64.template deleted file mode 100644 index 8cdfbae91..000000000 --- a/ProGen/templates/vs150/Win32/library/debug_static_md-x64.template +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/library/debug_static_mt-Win32.template b/ProGen/templates/vs150/Win32/library/debug_static_mt-Win32.template deleted file mode 100644 index 486a9c7a3..000000000 --- a/ProGen/templates/vs150/Win32/library/debug_static_mt-Win32.template +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/library/debug_static_mt-x64.template b/ProGen/templates/vs150/Win32/library/debug_static_mt-x64.template deleted file mode 100644 index b02b7a56f..000000000 --- a/ProGen/templates/vs150/Win32/library/debug_static_mt-x64.template +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/library/project.properties b/ProGen/templates/vs150/Win32/library/project.properties deleted file mode 100644 index f012cf5d8..000000000 --- a/ProGen/templates/vs150/Win32/library/project.properties +++ /dev/null @@ -1,14 +0,0 @@ -project.suffix = _vs150.vcproj -project.targetSuffix.debug_shared = d -project.targetSuffix.release_shared = -project.targetSuffix.debug_shared.x64 = 64d -project.targetSuffix.release_shared.x64 = 64 -project.targetSuffix.debug_static_md = mdd -project.targetSuffix.release_static_md = md -project.targetSuffix.debug_static_mt = mtd -project.targetSuffix.release_static_mt = mt -project.postprocess = upgrade2008to2017 -project.finalSuffix = _vs150.vcxproj -project.architectures = Win32, x64 -project.targetArchitecture.Win32 = IA32 -project.targetArchitecture.x64 = AMD64 \ No newline at end of file diff --git a/ProGen/templates/vs150/Win32/library/project.template b/ProGen/templates/vs150/Win32/library/project.template deleted file mode 100644 index 1445a20cb..000000000 --- a/ProGen/templates/vs150/Win32/library/project.template +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/library/release_shared-Win32.template b/ProGen/templates/vs150/Win32/library/release_shared-Win32.template deleted file mode 100644 index 51211d8e5..000000000 --- a/ProGen/templates/vs150/Win32/library/release_shared-Win32.template +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/library/release_shared-x64.template b/ProGen/templates/vs150/Win32/library/release_shared-x64.template deleted file mode 100644 index 598a27939..000000000 --- a/ProGen/templates/vs150/Win32/library/release_shared-x64.template +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/library/release_static_md-Win32.template b/ProGen/templates/vs150/Win32/library/release_static_md-Win32.template deleted file mode 100644 index 59c197fe0..000000000 --- a/ProGen/templates/vs150/Win32/library/release_static_md-Win32.template +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/library/release_static_md-x64.template b/ProGen/templates/vs150/Win32/library/release_static_md-x64.template deleted file mode 100644 index dbc15deec..000000000 --- a/ProGen/templates/vs150/Win32/library/release_static_md-x64.template +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/library/release_static_mt-Win32.template b/ProGen/templates/vs150/Win32/library/release_static_mt-Win32.template deleted file mode 100644 index bc35acb96..000000000 --- a/ProGen/templates/vs150/Win32/library/release_static_mt-Win32.template +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/library/release_static_mt-x64.template b/ProGen/templates/vs150/Win32/library/release_static_mt-x64.template deleted file mode 100644 index acebfc406..000000000 --- a/ProGen/templates/vs150/Win32/library/release_static_mt-x64.template +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/plugin/debug_shared-Win32.template b/ProGen/templates/vs150/Win32/plugin/debug_shared-Win32.template deleted file mode 100644 index d238a563d..000000000 --- a/ProGen/templates/vs150/Win32/plugin/debug_shared-Win32.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/plugin/debug_shared-x64.template b/ProGen/templates/vs150/Win32/plugin/debug_shared-x64.template deleted file mode 100644 index 6778cf133..000000000 --- a/ProGen/templates/vs150/Win32/plugin/debug_shared-x64.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/plugin/project.properties b/ProGen/templates/vs150/Win32/plugin/project.properties deleted file mode 100644 index c314898d7..000000000 --- a/ProGen/templates/vs150/Win32/plugin/project.properties +++ /dev/null @@ -1,8 +0,0 @@ -project.suffix = _vs150.vcproj -project.targetSuffix.debug_shared = d -project.targetSuffix.release_shared = -project.postprocess = upgrade2008to2017 -project.finalSuffix = _vs150.vcxproj -project.architectures = Win32, x64 -project.targetArchitecture.Win32 = IA32 -project.targetArchitecture.x64 = AMD64 \ No newline at end of file diff --git a/ProGen/templates/vs150/Win32/plugin/project.template b/ProGen/templates/vs150/Win32/plugin/project.template deleted file mode 100644 index 1445a20cb..000000000 --- a/ProGen/templates/vs150/Win32/plugin/project.template +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/plugin/release_shared-Win32.template b/ProGen/templates/vs150/Win32/plugin/release_shared-Win32.template deleted file mode 100644 index 862c9c6af..000000000 --- a/ProGen/templates/vs150/Win32/plugin/release_shared-Win32.template +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/plugin/release_shared-x64.template b/ProGen/templates/vs150/Win32/plugin/release_shared-x64.template deleted file mode 100644 index 65d659177..000000000 --- a/ProGen/templates/vs150/Win32/plugin/release_shared-x64.template +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/testsuite/debug_shared-Win32.template b/ProGen/templates/vs150/Win32/testsuite/debug_shared-Win32.template deleted file mode 100644 index 908b44c3f..000000000 --- a/ProGen/templates/vs150/Win32/testsuite/debug_shared-Win32.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/testsuite/debug_shared-x64.template b/ProGen/templates/vs150/Win32/testsuite/debug_shared-x64.template deleted file mode 100644 index 56255cbf4..000000000 --- a/ProGen/templates/vs150/Win32/testsuite/debug_shared-x64.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/testsuite/debug_static_md-Win32.template b/ProGen/templates/vs150/Win32/testsuite/debug_static_md-Win32.template deleted file mode 100644 index f9d422527..000000000 --- a/ProGen/templates/vs150/Win32/testsuite/debug_static_md-Win32.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/testsuite/debug_static_md-x64.template b/ProGen/templates/vs150/Win32/testsuite/debug_static_md-x64.template deleted file mode 100644 index f8a3aa416..000000000 --- a/ProGen/templates/vs150/Win32/testsuite/debug_static_md-x64.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/testsuite/debug_static_mt-Win32.template b/ProGen/templates/vs150/Win32/testsuite/debug_static_mt-Win32.template deleted file mode 100644 index 83d67eca3..000000000 --- a/ProGen/templates/vs150/Win32/testsuite/debug_static_mt-Win32.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/testsuite/debug_static_mt-x64.template b/ProGen/templates/vs150/Win32/testsuite/debug_static_mt-x64.template deleted file mode 100644 index 2769034f9..000000000 --- a/ProGen/templates/vs150/Win32/testsuite/debug_static_mt-x64.template +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/testsuite/project.properties b/ProGen/templates/vs150/Win32/testsuite/project.properties deleted file mode 100644 index a954389c0..000000000 --- a/ProGen/templates/vs150/Win32/testsuite/project.properties +++ /dev/null @@ -1,13 +0,0 @@ -project.suffix = _vs150.vcproj -project.targetSuffix.debug_shared = d -project.targetSuffix.release_shared = -project.targetSuffix.debug_static_md = d -project.targetSuffix.release_static_md = -project.targetSuffix.debug_static_mt = d -project.targetSuffix.release_static_mt = -project.postprocess = upgrade2008to2017 -project.finalSuffix = _vs150.vcxproj -project.replaceSourceFiles = .\\src\\WinDriver.cpp > .\\src\\Driver.cpp -project.architectures = Win32, x64 -project.targetArchitecture.Win32 = IA32 -project.targetArchitecture.x64 = AMD64 \ No newline at end of file diff --git a/ProGen/templates/vs150/Win32/testsuite/project.template b/ProGen/templates/vs150/Win32/testsuite/project.template deleted file mode 100644 index 1445a20cb..000000000 --- a/ProGen/templates/vs150/Win32/testsuite/project.template +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/testsuite/release_shared-Win32.template b/ProGen/templates/vs150/Win32/testsuite/release_shared-Win32.template deleted file mode 100644 index c467ca9d0..000000000 --- a/ProGen/templates/vs150/Win32/testsuite/release_shared-Win32.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/testsuite/release_shared-x64.template b/ProGen/templates/vs150/Win32/testsuite/release_shared-x64.template deleted file mode 100644 index 64f778e24..000000000 --- a/ProGen/templates/vs150/Win32/testsuite/release_shared-x64.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/testsuite/release_static_md-Win32.template b/ProGen/templates/vs150/Win32/testsuite/release_static_md-Win32.template deleted file mode 100644 index 6a8013d56..000000000 --- a/ProGen/templates/vs150/Win32/testsuite/release_static_md-Win32.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/testsuite/release_static_md-x64.template b/ProGen/templates/vs150/Win32/testsuite/release_static_md-x64.template deleted file mode 100644 index e58ce0734..000000000 --- a/ProGen/templates/vs150/Win32/testsuite/release_static_md-x64.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/testsuite/release_static_mt-Win32.template b/ProGen/templates/vs150/Win32/testsuite/release_static_mt-Win32.template deleted file mode 100644 index 3e4baa030..000000000 --- a/ProGen/templates/vs150/Win32/testsuite/release_static_mt-Win32.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/ProGen/templates/vs150/Win32/testsuite/release_static_mt-x64.template b/ProGen/templates/vs150/Win32/testsuite/release_static_mt-x64.template deleted file mode 100644 index 75d4bcb9d..000000000 --- a/ProGen/templates/vs150/Win32/testsuite/release_static_mt-x64.template +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - - - - - - - - - - From 58b370bec07abc6e8381c90918a340cf138ffbdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 19 Feb 2024 19:08:44 +0100 Subject: [PATCH 341/395] chore(ProGen): remove support for VS versions < 160 --- ProGen/src/ProGen.cpp | 144 ++---------------------------------------- 1 file changed, 4 insertions(+), 140 deletions(-) diff --git a/ProGen/src/ProGen.cpp b/ProGen/src/ProGen.cpp index 8ddf3e3db..6c9bdd1fe 100644 --- a/ProGen/src/ProGen.cpp +++ b/ProGen/src/ProGen.cpp @@ -151,10 +151,10 @@ protected: helpFormatter.setHeader( "\n" "The POCO C++ Libraries Visual Studio Project File Generator.\n" - "Copyright (c) 2010-2022 by Applied Informatics Software Engineering GmbH.\n" + "Copyright (c) 2010-2024 by Applied Informatics Software Engineering GmbH.\n" "All rights reserved.\n\n" "This program generates project and solution files " - "for Visual Studio 2010 - 2022 from global project " + "for Visual Studio 2019 - 2022 from global project " "templates and project-specific property files." ); helpFormatter.setFooter( @@ -315,17 +315,7 @@ protected: solutionFile.setWriteable(true); } Poco::FileOutputStream solutionStream(solutionPath.toString()); - if (tool == "vs140") - { - solutionStream << "Microsoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 14\r\n"; - generateSolution80(solutionStream, solutionPath, solutionGUID, projectConfig, templateProps, platform, tool); - } - else if (tool == "vs150") - { - solutionStream << "Microsoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio 15\r\n"; - generateSolution80(solutionStream, solutionPath, solutionGUID, projectConfig, templateProps, platform, tool); - } - else if (tool == "vs160") + if (tool == "vs160") { solutionStream << "Microsoft Visual Studio Solution File, Format Version 12.00\r\n# Visual Studio Version 16\r\n"; generateSolution80(solutionStream, solutionPath, solutionGUID, projectConfig, templateProps, platform, tool); @@ -498,58 +488,6 @@ protected: } } - void fix2012Project(Poco::AutoPtr pProjectDoc, const std::set& configSet, const std::string& platform, const Poco::Util::AbstractConfiguration& projectProps, const Poco::Util::AbstractConfiguration& templateProps) - { - fix2010Project(pProjectDoc, configSet, platform, projectProps, templateProps); - Poco::AutoPtr pConfigurationTypeList = pProjectDoc->getElementsByTagName("ConfigurationType"); - for (unsigned long i = 0; i < pConfigurationTypeList->length(); i++) - { - Poco::XML::Element* pConfigurationTypeElem = static_cast(pConfigurationTypeList->item(i)); - removeElement(pConfigurationTypeElem->parentNode(), "PlatformToolset"); - appendElement(pConfigurationTypeElem->parentNode(), "PlatformToolset", "v110"); - } - } - - void fixWEC2013Project(Poco::AutoPtr pProjectDoc, const std::set& configSet, const std::string& platform, const Poco::Util::AbstractConfiguration& projectProps, const Poco::Util::AbstractConfiguration& templateProps) - { - fix2010Project(pProjectDoc, configSet, platform, projectProps, templateProps); - Poco::AutoPtr pConfigurationTypeList = pProjectDoc->getElementsByTagName("ConfigurationType"); - for (unsigned long i = 0; i < pConfigurationTypeList->length(); i++) - { - Poco::XML::Element* pConfigurationTypeElem = static_cast(pConfigurationTypeList->item(i)); - removeElement(pConfigurationTypeElem->parentNode(), "PlatformToolset"); - appendElement(pConfigurationTypeElem->parentNode(), "PlatformToolset", "CE800"); - } - Poco::XML::Node* pGlobals = pProjectDoc->getNodeByPath("//PropertyGroup[@Label='Globals']"); - if (pGlobals) - { - removeElement(pGlobals, "RootNamespace"); - removeElement(pGlobals, "Keyword"); - appendElement(pGlobals, "DefaultLanguage", "en-US"); - appendElement(pGlobals, "MinimumVisualStudioVersion", "11.0"); - appendElement(pGlobals, "EnableRedirectPlatform", "true"); - appendElement(pGlobals, "RedirectPlatformValue", platform); - appendElement(pGlobals, "PlatformToolset", "CE800"); - } - Poco::AutoPtr pLinkList = pProjectDoc->getElementsByTagName("Link"); - for (int i = 0; i < pLinkList->length(); i++) - { - Poco::XML::Element* pLink = static_cast(pLinkList->item(i)); - removeElement(pLink, "SubSystem"); - removeElement(pLink, "TargetMachine"); - removeElement(pLink, "StackReserveSize"); - removeElement(pLink, "StackCommitSize"); - removeElement(pLink, "RandomizedBaseAddress"); - appendElement(pLink, "SubSystem", "WindowsCE"); - std::string entry = projectProps.getString("configuration.linker.entry", ""); - if (!entry.empty()) - { - removeElement(pLink, "EntryPointSymbol"); - appendElement(pLink, "EntryPointSymbol", entry); - } - } - } - void fix20XXProject(Poco::AutoPtr pProjectDoc, const std::set& configSet, const std::string& platform, const Poco::Util::AbstractConfiguration& projectProps, const Poco::Util::AbstractConfiguration& templateProps, const std::string& platformToolset) { fix2010Project(pProjectDoc, configSet, platform, projectProps, templateProps); @@ -562,21 +500,6 @@ protected: } } - void fix2013Project(Poco::AutoPtr pProjectDoc, const std::set& configSet, const std::string& platform, const Poco::Util::AbstractConfiguration& projectProps, const Poco::Util::AbstractConfiguration& templateProps) - { - fix20XXProject(pProjectDoc, configSet, platform, projectProps, templateProps, "v120"); - } - - void fix2015Project(Poco::AutoPtr pProjectDoc, const std::set& configSet, const std::string& platform, const Poco::Util::AbstractConfiguration& projectProps, const Poco::Util::AbstractConfiguration& templateProps) - { - fix20XXProject(pProjectDoc, configSet, platform, projectProps, templateProps, "v140"); - } - - void fix2017Project(Poco::AutoPtr pProjectDoc, const std::set& configSet, const std::string& platform, const Poco::Util::AbstractConfiguration& projectProps, const Poco::Util::AbstractConfiguration& templateProps) - { - fix20XXProject(pProjectDoc, configSet, platform, projectProps, templateProps, "v141"); - } - void fix2019Project(Poco::AutoPtr pProjectDoc, const std::set& configSet, const std::string& platform, const Poco::Util::AbstractConfiguration& projectProps, const Poco::Util::AbstractConfiguration& templateProps) { fix20XXProject(pProjectDoc, configSet, platform, projectProps, templateProps, "v142"); @@ -847,66 +770,7 @@ protected: } Poco::ProcessHandle ph = Poco::Process::launch(tool, args); ph.wait(); - if (config().getBool("progen.postprocess." + postprocess + ".fix2010ProjectFile", false)) - { - if (projectFile.exists()) - { - logger().information("Fixing Visual Studio 2010 project file: " + vcxprojPath.toString()); - Poco::AutoPtr pProjectDoc = domParser.parse(vcxprojPath.toString()); - fix2010Project(pProjectDoc, configSet, pTemplateProps->getString("project.platform", platform), *pProps, *pTemplateProps); - writeProject(pProjectDoc, vcxprojPath.toString()); - } - } - if (config().getBool("progen.postprocess." + postprocess + ".fix2012ProjectFile", false)) - { - if (projectFile.exists()) - { - logger().information("Fixing Visual Studio 2012 project file: " + vcxprojPath.toString()); - Poco::AutoPtr pProjectDoc = domParser.parse(vcxprojPath.toString()); - fix2012Project(pProjectDoc, configSet, pTemplateProps->getString("project.platform", platform), *pProps, *pTemplateProps); - writeProject(pProjectDoc, vcxprojPath.toString()); - } - } - if (config().getBool("progen.postprocess." + postprocess + ".fixWEC2013ProjectFile", false)) - { - if (projectFile.exists()) - { - logger().information("Fixing Visual Studio 2012 (WEC2013) project file: " + vcxprojPath.toString()); - Poco::AutoPtr pProjectDoc = domParser.parse(vcxprojPath.toString()); - fixWEC2013Project(pProjectDoc, configSet, pTemplateProps->getString("project.platform", platform), *pProps, *pTemplateProps); - writeProject(pProjectDoc, vcxprojPath.toString()); - } - } - if (config().getBool("progen.postprocess." + postprocess + ".fix2013ProjectFile", false)) - { - if (projectFile.exists()) - { - logger().information("Fixing Visual Studio 2013 project file: " + vcxprojPath.toString()); - Poco::AutoPtr pProjectDoc = domParser.parse(vcxprojPath.toString()); - fix2013Project(pProjectDoc, configSet, pTemplateProps->getString("project.platform", platform), *pProps, *pTemplateProps); - writeProject(pProjectDoc, vcxprojPath.toString()); - } - } - if (config().getBool("progen.postprocess." + postprocess + ".fix2015ProjectFile", false)) - { - if (projectFile.exists()) - { - logger().information("Fixing Visual Studio 2015 project file: " + vcxprojPath.toString()); - Poco::AutoPtr pProjectDoc = domParser.parse(vcxprojPath.toString()); - fix2015Project(pProjectDoc, configSet, pTemplateProps->getString("project.platform", platform), *pProps, *pTemplateProps); - writeProject(pProjectDoc, vcxprojPath.toString()); - } - } - if (config().getBool("progen.postprocess." + postprocess + ".fix2017ProjectFile", false)) - { - if (projectFile.exists()) - { - logger().information("Fixing Visual Studio 2017 project file: " + vcxprojPath.toString()); - Poco::AutoPtr pProjectDoc = domParser.parse(vcxprojPath.toString()); - fix2017Project(pProjectDoc, configSet, pTemplateProps->getString("project.platform", platform), *pProps, *pTemplateProps); - writeProject(pProjectDoc, vcxprojPath.toString()); - } - } + if (config().getBool("progen.postprocess." + postprocess + ".fix2019ProjectFile", false)) { if (projectFile.exists()) From 37e17092ffe55ccbb59de317f8129d868bee1815 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 19 Feb 2024 19:09:14 +0100 Subject: [PATCH 342/395] chore: fix vs project files --- ActiveRecord/ActiveRecord_vs160.vcxproj | 23 +- .../ActiveRecord_vs160.vcxproj.filters | 6 +- ActiveRecord/Compiler/Compiler_vs160.vcxproj | 26 +- .../Compiler/Compiler_vs160.vcxproj.filters | 4 +- .../testsuite/TestSuite_vs160.vcxproj | 84 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 8 +- CppParser/CppParser_vs160.vcxproj | 23 +- CppParser/CppParser_vs160.vcxproj.filters | 18 +- CppParser/testsuite/TestSuite_vs160.vcxproj | 63 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 22 +- CppUnit/CppUnit_vs160.vcxproj | 23 +- CppUnit/CppUnit_vs160.vcxproj.filters | 4 +- Crypto/Crypto_vs160.vcxproj | 23 +- Crypto/Crypto_vs160.vcxproj.filters | 36 +- .../samples/genrsakey/genrsakey_vs160.vcxproj | 55 +- .../genrsakey/genrsakey_vs160.vcxproj.filters | 4 +- Crypto/testsuite/TestSuite_vs160.vcxproj | 71 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 16 +- Data/DataTest/DataTest_vs160.vcxproj | 21 +- Data/DataTest/DataTest_vs160.vcxproj.filters | 4 +- Data/Data_vs160.sln | 2 +- Data/Data_vs160.vcxproj | 23 +- Data/Data_vs160.vcxproj.filters | 42 +- Data/MySQL/MySQL_vs160.vcxproj | 23 +- Data/MySQL/testsuite/TestSuite_vs160.vcxproj | 82 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 16 +- Data/ODBC/ODBC_vs160.vcxproj | 23 +- Data/ODBC/ODBC_vs160.vcxproj.filters | 6 +- Data/ODBC/testsuite/TestSuite_vs160.vcxproj | 96 ++- .../testsuite/TestSuite_vs160.vcxproj.filters | 16 +- Data/PostgreSQL/PostgreSQL_vs160.vcxproj | 23 +- .../testsuite/TestSuite_vs160.vcxproj | 82 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 16 +- Data/SQLite/SQLite_vs160.vcxproj | 23 +- Data/SQLite/SQLite_vs160.vcxproj.filters | 12 +- Data/SQLite/testsuite/TestSuite_vs160.vcxproj | 80 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 16 +- Data/samples/Binding/Binding_vs160.vcxproj | 76 +- .../Binding/Binding_vs160.vcxproj.filters | 4 +- .../samples/RecordSet/RecordSet_vs160.vcxproj | 76 +- .../RecordSet/RecordSet_vs160.vcxproj.filters | 4 +- .../RowFormatter/RowFormatter_vs160.vcxproj | 76 +- .../RowFormatter_vs160.vcxproj.filters | 4 +- Data/samples/Tuple/Tuple_vs160.vcxproj | 76 +- .../samples/Tuple/Tuple_vs160.vcxproj.filters | 4 +- .../TypeHandler/TypeHandler_vs160.vcxproj | 76 +- .../TypeHandler_vs160.vcxproj.filters | 4 +- .../WebNotifier/WebNotifier_vs160.vcxproj | 76 +- .../WebNotifier_vs160.vcxproj.filters | 4 +- Data/testsuite/TestSuite_vs160.vcxproj | 120 ++- .../testsuite/TestSuite_vs160.vcxproj.filters | 34 +- Encodings/Encodings_vs160.vcxproj | 23 +- Encodings/Encodings_vs160.vcxproj.filters | 6 +- .../TextConverter/TextConverter_vs160.vcxproj | 55 +- .../TextConverter_vs160.vcxproj.filters | 4 +- Encodings/testsuite/TestSuite_vs160.vcxproj | 59 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 4 +- Foundation/Foundation_vs160.vcxproj | 15 +- Foundation/Foundation_vs160.vcxproj.filters | 2 + Foundation/testsuite/TestApp_vs160.vcxproj | 84 +- .../testsuite/TestLibrary_vs160.vcxproj | 4 + Foundation/testsuite/TestSuite_vs160.vcxproj | 16 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 12 + .../testsuite/TestSuite_vs170.vcxproj.filters | 8 +- JSON/JSON_vs160.vcxproj | 23 +- JSON/JSON_vs160.vcxproj.filters | 4 +- .../samples/Benchmark/Benchmark_vs160.vcxproj | 67 +- .../Benchmark/Benchmark_vs160.vcxproj.filters | 4 +- JSON/testsuite/TestSuite_vs160.vcxproj | 71 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 4 +- JWT/JWT_vs160.vcxproj | 23 +- JWT/JWT_vs160.vcxproj.filters | 4 +- JWT/testsuite/TestSuite_vs160.vcxproj | 75 +- JWT/testsuite/TestSuite_vs160.vcxproj.filters | 4 +- MongoDB/MongoDB_vs160.vcxproj | 23 +- MongoDB/MongoDB_vs160.vcxproj.filters | 4 +- .../SQLToMongo/SQLToMongo_vs160.vcxproj | 67 +- .../SQLToMongo_vs160.vcxproj.filters | 4 +- MongoDB/testsuite/TestSuite_vs160.vcxproj | 74 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 4 +- Net/Net_vs160.vcxproj | 23 +- Net/Net_vs160.vcxproj.filters | 108 +-- .../EchoServer/EchoServer_vs160.vcxproj | 67 +- .../EchoServer_vs160.vcxproj.filters | 4 +- .../HTTPFormServer_vs160.vcxproj | 67 +- .../HTTPFormServer_vs160.vcxproj.filters | 4 +- .../HTTPLoadTest/HTTPLoadTest_vs160.vcxproj | 67 +- .../HTTPLoadTest_vs160.vcxproj.filters | 2 +- .../HTTPTimeServer_vs160.vcxproj | 67 +- .../HTTPTimeServer_vs160.vcxproj.filters | 4 +- Net/samples/Mail/Mail_vs160.vcxproj | 67 +- Net/samples/Mail/Mail_vs160.vcxproj.filters | 2 +- Net/samples/Ping/Ping_vs160.vcxproj | 67 +- Net/samples/Ping/Ping_vs160.vcxproj.filters | 4 +- .../SMTPLogger/SMTPLogger_vs160.vcxproj | 67 +- .../SMTPLogger_vs160.vcxproj.filters | 2 +- .../TimeServer/TimeServer_vs160.vcxproj | 67 +- .../TimeServer_vs160.vcxproj.filters | 4 +- .../WebSocketServer_vs160.vcxproj | 67 +- .../WebSocketServer_vs160.vcxproj.filters | 2 +- Net/samples/dict/dict_vs160.vcxproj | 67 +- Net/samples/dict/dict_vs160.vcxproj.filters | 2 +- Net/samples/download/download_vs160.vcxproj | 67 +- .../download/download_vs160.vcxproj.filters | 2 +- Net/samples/httpget/httpget_vs160.vcxproj | 67 +- .../httpget/httpget_vs160.vcxproj.filters | 2 +- Net/samples/ifconfig/ifconfig_vs160.vcxproj | 67 +- .../ifconfig/ifconfig_vs160.vcxproj.filters | 2 +- Net/samples/tcpserver/tcpserver_vs160.vcxproj | 67 +- .../tcpserver/tcpserver_vs160.vcxproj.filters | 2 +- Net/testsuite/TestSuite_vs160.vcxproj | 717 ++++++++++++----- Net/testsuite/TestSuite_vs160.vcxproj.filters | 112 +-- NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj | 23 +- .../NetSSL_OpenSSL_vs160.vcxproj.filters | 30 +- .../HTTPSTimeServer_vs160.vcxproj | 67 +- .../HTTPSTimeServer_vs160.vcxproj.filters | 4 +- .../samples/Mail/Mail_vs160.vcxproj | 67 +- .../samples/Mail/Mail_vs160.vcxproj.filters | 2 +- .../SetSourceIP/SetSourceIP_vs160.vcxproj | 67 +- .../SetSourceIP_vs160.vcxproj.filters | 2 +- .../TwitterClient/TwitterClient_vs160.vcxproj | 69 +- .../TwitterClient_vs160.vcxproj.filters | 4 +- .../samples/download/download_vs160.vcxproj | 67 +- .../download/download_vs160.vcxproj.filters | 2 +- .../testsuite/TestSuite_vs160.vcxproj | 95 ++- .../testsuite/TestSuite_vs160.vcxproj.filters | 46 +- NetSSL_Win/NetSSL_Win_vs160.vcxproj | 23 +- NetSSL_Win/NetSSL_Win_vs160.vcxproj.filters | 24 +- .../HTTPSTimeServer_vs160.vcxproj | 67 +- .../HTTPSTimeServer_vs160.vcxproj.filters | 4 +- NetSSL_Win/samples/Mail/Mail_vs160.vcxproj | 67 +- .../samples/Mail/Mail_vs160.vcxproj.filters | 2 +- .../samples/download/download_vs160.vcxproj | 67 +- .../download/download_vs160.vcxproj.filters | 2 +- NetSSL_Win/testsuite/TestSuite_vs160.vcxproj | 85 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 34 +- PDF/PDF_vs160.vcxproj | 23 +- PDF/PDF_vs160.vcxproj.filters | 24 +- PDF/samples/Image/Image_vs160.vcxproj | 67 +- PDF/samples/Image/Image_vs160.vcxproj.filters | 4 +- PDF/samples/Template/Template_vs160.vcxproj | 67 +- .../Template/Template_vs160.vcxproj.filters | 4 +- PDF/samples/Text/Text_vs160.vcxproj | 67 +- PDF/samples/Text/Text_vs160.vcxproj.filters | 4 +- PDF/testsuite/TestSuite_vs160.vcxproj | 71 +- PDF/testsuite/TestSuite_vs160.vcxproj.filters | 16 +- .../File2Page/File2Page_vs160.vcxproj | 26 +- .../File2Page/File2Page_vs160.vcxproj.filters | 4 +- PageCompiler/PageCompiler_vs160.vcxproj | 26 +- .../PageCompiler_vs160.vcxproj.filters | 6 +- .../HTTPTimeServer_vs160.vcxproj | 69 +- .../HTTPTimeServer_vs160.vcxproj.filters | 6 +- PocoDoc/PocoDoc_vs160.vcxproj | 26 +- PocoDoc/PocoDoc_vs160.vcxproj.filters | 12 +- ProGen/ProGen_vs160.vcxproj | 26 +- ProGen/ProGen_vs160.vcxproj.filters | 6 +- ProGen/progen.properties | 12 - Prometheus/Prometheus_vs160.vcxproj | 23 +- Prometheus/Prometheus_vs160.vcxproj.filters | 6 +- .../MetricsSample/MetricsSample_vs160.vcxproj | 67 +- .../MetricsSample_vs160.vcxproj.filters | 2 +- Prometheus/testsuite/TestSuite_vs160.vcxproj | 81 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 4 +- Redis/Redis_vs160.vcxproj | 23 +- Redis/Redis_vs160.vcxproj.filters | 4 +- Redis/testsuite/TestSuite_vs160.vcxproj | 71 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 4 +- Util/Util_vs160.vcxproj | 23 +- Util/Util_vs160.vcxproj.filters | 36 +- .../samples/SampleApp/SampleApp_vs160.vcxproj | 67 +- .../SampleApp/SampleApp_vs160.vcxproj.filters | 4 +- .../SampleServer/SampleServer_vs160.vcxproj | 67 +- .../SampleServer_vs160.vcxproj.filters | 4 +- Util/samples/Units/Units_vs160.vcxproj | 67 +- .../samples/Units/Units_vs160.vcxproj.filters | 4 +- Util/samples/pkill/pkill_vs160.vcxproj | 67 +- .../samples/pkill/pkill_vs160.vcxproj.filters | 2 +- Util/testsuite/TestSuite_vs160.vcxproj | 123 ++- .../testsuite/TestSuite_vs160.vcxproj.filters | 42 +- XML/XML_vs160.vcxproj | 23 +- XML/XML_vs160.vcxproj.filters | 24 +- XML/samples/DOMParser/DOMParser_vs160.vcxproj | 67 +- .../DOMParser/DOMParser_vs160.vcxproj.filters | 4 +- XML/samples/DOMWriter/DOMWriter_vs160.vcxproj | 67 +- .../DOMWriter/DOMWriter_vs160.vcxproj.filters | 4 +- .../PrettyPrint/PrettyPrint_vs160.vcxproj | 67 +- .../PrettyPrint_vs160.vcxproj.filters | 4 +- XML/samples/SAXParser/SAXParser_vs160.vcxproj | 67 +- .../SAXParser/SAXParser_vs160.vcxproj.filters | 4 +- XML/testsuite/TestSuite_vs160.vcxproj | 109 ++- XML/testsuite/TestSuite_vs160.vcxproj.filters | 28 +- Zip/Zip_vs160.vcxproj | 747 +++++++++++++++++- Zip/Zip_vs160.vcxproj.filters | 164 +++- Zip/samples/unzip/unzip_vs160.vcxproj | 67 +- Zip/samples/unzip/unzip_vs160.vcxproj.filters | 4 +- Zip/samples/zip/zip_vs160.vcxproj | 67 +- Zip/samples/zip/zip_vs160.vcxproj.filters | 2 +- Zip/testsuite/TestSuite_vs160.vcxproj | 75 +- Zip/testsuite/TestSuite_vs160.vcxproj.filters | 16 +- 199 files changed, 6650 insertions(+), 1669 deletions(-) diff --git a/ActiveRecord/ActiveRecord_vs160.vcxproj b/ActiveRecord/ActiveRecord_vs160.vcxproj index ef9e1381c..b48b0ab56 100644 --- a/ActiveRecord/ActiveRecord_vs160.vcxproj +++ b/ActiveRecord/ActiveRecord_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoActiveRecordd PocoActiveRecordmdd PocoActiveRecordmtd @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -248,7 +249,7 @@ ..\bin\PocoActiveRecordd.dll true true - ..\bin\PocoActiveRecordd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoActiveRecordd.lib @@ -274,6 +275,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -303,7 +305,7 @@ true true - ..\lib\PocoActiveRecordmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -334,6 +336,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -355,7 +358,7 @@ true true - ..\lib\PocoActiveRecordmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -383,7 +386,7 @@ true true - ..\lib\PocoActiveRecordmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -411,6 +414,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -419,7 +423,7 @@ ..\bin64\PocoActiveRecord64d.dll true true - ..\bin64\PocoActiveRecord64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoActiveRecordd.lib @@ -445,6 +449,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -474,7 +479,7 @@ true true - ..\lib64\PocoActiveRecordmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -505,6 +510,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -526,7 +532,7 @@ true true - ..\lib64\PocoActiveRecordmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -557,6 +563,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 diff --git a/ActiveRecord/ActiveRecord_vs160.vcxproj.filters b/ActiveRecord/ActiveRecord_vs160.vcxproj.filters index 510f26c9b..a0727ce46 100644 --- a/ActiveRecord/ActiveRecord_vs160.vcxproj.filters +++ b/ActiveRecord/ActiveRecord_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {21ea7671-1c32-4a3f-b9f7-6170960ef1ac} + {e1ff1256-5ffb-4edf-b636-f0ae436cd880} - {0da9c9e9-91ad-4a2d-bc9d-04cb5b7062ae} + {878bb6cf-d0f0-43f3-80be-a6c49e7fcdc0} - {fd4fcc95-c1a1-4535-bc22-58f09ebe8669} + {4ee94537-e10b-4905-9e08-83a9aa0c19ac} diff --git a/ActiveRecord/Compiler/Compiler_vs160.vcxproj b/ActiveRecord/Compiler/Compiler_vs160.vcxproj index 3c52b17e3..849f62648 100644 --- a/ActiveRecord/Compiler/Compiler_vs160.vcxproj +++ b/ActiveRecord/Compiler/Compiler_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 poco-arcd poco-arcd poco-arcd @@ -248,6 +248,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -257,7 +258,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\poco-arcd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -281,6 +282,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -311,6 +313,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -321,7 +324,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\poco-arcd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -345,6 +348,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -376,6 +380,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -386,7 +391,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\poco-arcd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -410,6 +415,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -441,6 +447,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -450,7 +457,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\poco-arcd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -474,6 +481,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -504,6 +512,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -514,7 +523,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\poco-arcd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -538,6 +547,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -569,6 +579,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -579,7 +590,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\poco-arcd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -603,6 +614,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 diff --git a/ActiveRecord/Compiler/Compiler_vs160.vcxproj.filters b/ActiveRecord/Compiler/Compiler_vs160.vcxproj.filters index ae3992292..c3542c2c1 100644 --- a/ActiveRecord/Compiler/Compiler_vs160.vcxproj.filters +++ b/ActiveRecord/Compiler/Compiler_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {29e1ed49-5f12-41fa-94f4-8fe6b3ee5954} + {53cccc79-2fa5-454a-8962-a80b8e772eaa} - {ba5400bd-3c95-43bb-8daa-39bff07be443} + {809ee132-09bd-4dad-8c59-e88977d7f12c} diff --git a/ActiveRecord/testsuite/TestSuite_vs160.vcxproj b/ActiveRecord/testsuite/TestSuite_vs160.vcxproj index d87dc9871..138634585 100644 --- a/ActiveRecord/testsuite/TestSuite_vs160.vcxproj +++ b/ActiveRecord/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34511.75 TestSuited TestSuited TestSuited @@ -235,7 +235,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -248,7 +248,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;%(AdditionalDependencies) @@ -256,7 +259,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -268,7 +271,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -280,7 +283,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;%(AdditionalDependencies) @@ -296,7 +302,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -309,7 +315,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -317,7 +326,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -329,7 +338,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -341,7 +350,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -357,7 +369,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -370,7 +382,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -378,7 +393,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -390,7 +405,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -402,7 +417,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -418,7 +436,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -431,7 +449,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;%(AdditionalDependencies) @@ -439,7 +460,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -451,7 +472,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -463,7 +484,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;%(AdditionalDependencies) @@ -479,7 +503,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -492,7 +516,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -500,7 +527,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -512,7 +539,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -524,7 +551,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -540,7 +570,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -553,7 +583,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -561,7 +594,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -573,7 +606,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -585,7 +618,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -601,18 +637,28 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/ActiveRecord/testsuite/TestSuite_vs160.vcxproj.filters b/ActiveRecord/testsuite/TestSuite_vs160.vcxproj.filters index 5fd6a8de3..98361806d 100644 --- a/ActiveRecord/testsuite/TestSuite_vs160.vcxproj.filters +++ b/ActiveRecord/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,16 +2,16 @@ - {029152e5-3d3c-4359-8e19-e3339dfb916f} + {18d9df2e-b44e-46a1-89f9-1f2f0d2e816f} - {81913cce-c711-403e-8bcf-9bea3ce7162b} + {5bf0e9d1-a181-47a6-828b-209f7d33b194} - {a659828c-15fc-4d14-b7c1-b96b779ad220} + {b59d4ea7-d1c4-42f0-ac59-f4419cbaabdf} - {321ae715-2a94-4ecb-8368-473b38ae89eb} + {680e519d-37d6-412a-aacc-21c82caa59d3} diff --git a/CppParser/CppParser_vs160.vcxproj b/CppParser/CppParser_vs160.vcxproj index f753b86d2..49aa7b2ad 100644 --- a/CppParser/CppParser_vs160.vcxproj +++ b/CppParser/CppParser_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoCppParserd PocoCppParsermdd PocoCppParsermtd @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -248,7 +249,7 @@ ..\bin\PocoCppParserd.dll true true - ..\bin\PocoCppParserd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoCppParserd.lib @@ -274,6 +275,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -303,7 +305,7 @@ true true - ..\lib\PocoCppParsermtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -334,6 +336,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -355,7 +358,7 @@ true true - ..\lib\PocoCppParsermdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -383,7 +386,7 @@ true true - ..\lib\PocoCppParsermd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -411,6 +414,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -419,7 +423,7 @@ ..\bin64\PocoCppParser64d.dll true true - ..\bin64\PocoCppParser64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoCppParserd.lib @@ -445,6 +449,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -474,7 +479,7 @@ true true - ..\lib64\PocoCppParsermtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -505,6 +510,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -526,7 +532,7 @@ true true - ..\lib64\PocoCppParsermdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -557,6 +563,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 diff --git a/CppParser/CppParser_vs160.vcxproj.filters b/CppParser/CppParser_vs160.vcxproj.filters index 23993cca8..095f79d79 100644 --- a/CppParser/CppParser_vs160.vcxproj.filters +++ b/CppParser/CppParser_vs160.vcxproj.filters @@ -2,31 +2,31 @@ - {da4186ae-05f3-4abf-9fa2-2386db3876cc} + {78ecda8b-38b1-4bed-932f-02ebe18f2b52} - {4e9b5445-27e0-4fd0-824a-d6355c6724bc} + {b38335e1-d932-4eec-ba2a-4a50fb8eef30} - {b5f7d3f9-a74b-4b59-b455-0d59c6200a98} + {2415ef0b-be5f-4f5e-a150-f6e13a8d2a02} - {eacfeb40-f333-426c-a5a5-c9ab85d209ea} + {0d1aa205-1f5e-48d3-8f67-71125f193a0c} - {f3023194-357d-4e15-a227-3099ba997037} + {406ad7af-4bef-4dbb-acc7-9abc8d0977cc} - {a1919762-b8ac-4d28-903d-511854a1a7b1} + {41388393-2d90-46aa-90de-24d4186cc3af} - {9106be0a-6821-40f4-b460-437e72cbadfe} + {8afc7c3a-be7c-460c-9d74-8af0fab90754} - {906e5fe8-c28f-4c31-9dee-f3f9bcbcde35} + {36ac1f5a-6d4c-46e6-be3e-16cadb0a20dc} - {0f617a7a-cf68-4dbd-8de3-7a89a99756e5} + {e31474cf-8e07-4bbe-8bb1-d3a4a6156cfe} diff --git a/CppParser/testsuite/TestSuite_vs160.vcxproj b/CppParser/testsuite/TestSuite_vs160.vcxproj index ed1b42075..d03e10138 100644 --- a/CppParser/testsuite/TestSuite_vs160.vcxproj +++ b/CppParser/testsuite/TestSuite_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TestSuite {C79112BD-EC91-11DA-A4CE-005056C00008} TestSuite @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 TestSuited TestSuited TestSuited @@ -247,7 +248,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +259,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +283,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +315,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +326,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +350,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +382,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +393,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +417,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +449,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +460,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +484,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +516,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +527,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +551,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +583,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +594,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +618,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -606,18 +643,28 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/CppParser/testsuite/TestSuite_vs160.vcxproj.filters b/CppParser/testsuite/TestSuite_vs160.vcxproj.filters index f48b8e691..17cb47b9f 100644 --- a/CppParser/testsuite/TestSuite_vs160.vcxproj.filters +++ b/CppParser/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,37 +2,37 @@ - {7e82e351-8c9c-404d-b62f-7ff0b1cbded6} + {b7eb186c-6d98-44ea-88d9-7ba64f2c2cbd} - {ba027956-cf2a-4462-81ba-6b97179f19ed} + {cac83a53-c5c1-49a5-ab07-1f5d017b8373} - {e5bfb176-2c0f-4abb-bd50-0a2ca6f6dda7} + {327f4385-9f15-4f53-9dc8-de2f33c439ba} - {24575ba0-d4a4-4d3e-96a7-4c65b822e026} + {2d41c3cf-92ca-492a-a07c-dc9cbd0b4d3a} - {62668e54-1a2e-48be-bb05-d70c64db290c} + {dd772fd7-0956-4f15-ac7c-e8fe40f3795e} - {cad5eb58-8ba7-47e7-83d6-fd28eff818c8} + {bd3f5103-bafb-46cb-a7be-f7c309546832} - {651bef21-f8c1-40eb-9ce9-a1b40de62613} + {59eb86f0-e471-45e2-87da-5da5830e3876} - {b6451503-ecc0-4709-a4fd-7d2fed9ee23b} + {118b9dc2-cd9e-4a7a-9ffd-087058609b65} - {04d750cf-e74e-409e-959f-e7b4fab071a0} + {20a55dfe-ea8e-4f16-8768-3805893a4f02} - {d2e4aabd-17a8-46ad-ae3a-bb914a60f0eb} + {e01c68ae-0ee9-497d-9bc3-5b6ca974a267} - {a3613dea-1d13-44dd-9a59-df545a649c07} + {c733f92c-ef7d-4467-8011-a7001a719bec} diff --git a/CppUnit/CppUnit_vs160.vcxproj b/CppUnit/CppUnit_vs160.vcxproj index be3b587e5..e64bd703b 100644 --- a/CppUnit/CppUnit_vs160.vcxproj +++ b/CppUnit/CppUnit_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 CppUnitd CppUnitmdd CppUnitmtd @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -248,7 +249,7 @@ ..\bin\CppUnitd.dll true true - ..\bin\CppUnitd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\CppUnitd.lib @@ -274,6 +275,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -303,7 +305,7 @@ true true - ..\lib\CppUnitmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -334,6 +336,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -355,7 +358,7 @@ true true - ..\lib\CppUnitmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -383,7 +386,7 @@ true true - ..\lib\CppUnitmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -411,6 +414,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -419,7 +423,7 @@ ..\bin64\CppUnit64d.dll true true - ..\bin64\CppUnit64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\CppUnitd.lib @@ -445,6 +449,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -474,7 +479,7 @@ true true - ..\lib64\CppUnitmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -505,6 +510,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -526,7 +532,7 @@ true true - ..\lib64\CppUnitmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -557,6 +563,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 diff --git a/CppUnit/CppUnit_vs160.vcxproj.filters b/CppUnit/CppUnit_vs160.vcxproj.filters index 42f46648b..c8054ab99 100644 --- a/CppUnit/CppUnit_vs160.vcxproj.filters +++ b/CppUnit/CppUnit_vs160.vcxproj.filters @@ -2,11 +2,11 @@ - {963448fa-022d-4c44-9361-96ba38e785ba} + {f9027807-6f7f-40c0-a1cd-9416954a6f21} cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - {c9d5e2ec-2012-46bb-b312-d85c687d338a} + {600d9ce8-b49c-402b-b4d8-f975f907ebcf} *.h diff --git a/Crypto/Crypto_vs160.vcxproj b/Crypto/Crypto_vs160.vcxproj index 60d002781..df5276d6a 100644 --- a/Crypto/Crypto_vs160.vcxproj +++ b/Crypto/Crypto_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoCryptod PocoCryptomdd PocoCryptomtd @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -249,7 +250,7 @@ ..\bin\PocoCryptod.dll true true - ..\bin\PocoCryptod.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoCryptod.lib @@ -275,6 +276,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -305,7 +307,7 @@ true true - ..\lib\PocoCryptomtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -336,6 +338,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -357,7 +360,7 @@ true true - ..\lib\PocoCryptomdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -385,7 +388,7 @@ true true - ..\lib\PocoCryptomd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -414,6 +417,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -423,7 +427,7 @@ ..\bin64\PocoCrypto64d.dll true true - ..\bin64\PocoCrypto64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoCryptod.lib @@ -449,6 +453,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -479,7 +484,7 @@ true true - ..\lib64\PocoCryptomtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -510,6 +515,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -531,7 +537,7 @@ true true - ..\lib64\PocoCryptomdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -562,6 +568,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 diff --git a/Crypto/Crypto_vs160.vcxproj.filters b/Crypto/Crypto_vs160.vcxproj.filters index 67f495c53..66b23d62e 100644 --- a/Crypto/Crypto_vs160.vcxproj.filters +++ b/Crypto/Crypto_vs160.vcxproj.filters @@ -2,58 +2,58 @@ - {7e010cae-f020-472a-9415-8e2543ef6627} + {1b341421-b0a6-41ba-b9e7-23a78d22e64e} - {05818654-8d93-468d-8d69-b11c10c0b9ef} + {3410e096-721e-4bbb-95a9-c3399e4bc916} - {19e6289b-8a3c-44f3-ae04-d62f6f3f1b5c} + {fe6936eb-e9ca-4766-aaa4-844dc49f49f9} - {ce38da17-a330-495e-9f3e-1b13265936e2} + {0c0e5ba2-303f-47bd-8050-60d8624ad54b} - {5822cad2-ab82-412d-abf8-6a3d01487a69} + {deac82b6-db04-432c-9529-e509ba29ce3c} - {7cb7227e-5207-4603-8e22-7bfabcb92419} + {73b6588c-1b71-4876-8688-3fef4d5d50f5} - {3fe6235b-ca65-4006-bd43-af0ec04bd7f1} + {a176bed7-cbc3-43b5-9bad-5d141f68bcad} - {2918c4ac-4fed-4cf6-b543-ffc4dcfa4b82} + {a3119f32-061e-49cb-8add-e43f347dca70} - {9e75a9b3-e8d3-48e8-ba2f-58d7bd2a6a9d} + {c2343031-10e4-42c1-9588-5f9a5465fcff} - {4824d8a4-40bf-4a78-86db-73b06e2deb5e} + {f60a6df2-2e50-4bd6-aa93-a10781df4a63} - {07188323-9cd6-44c4-86df-adaa06f7056b} + {bd3c3a14-025d-473f-ab7d-caa706137c9c} - {7c066cff-b417-440f-a723-d0f884234e31} + {16e91055-e1a0-43ec-b101-278c3cc10e01} - {4131f2ad-b79f-468f-829c-cc6e694b9b09} + {0c9aa960-60a9-4878-8944-397b68d63fbd} - {67dfe23d-8945-4c6b-bc99-5c26d1c9e9fb} + {3001a9e0-0691-4be4-acac-14c6e7e44c60} - {96be4aeb-3299-4fb1-a7dd-d788584523b4} + {de5ddc8e-00be-40a3-823f-f1a0392c609c} - {6102403a-212b-497e-a639-ad4bbc94103d} + {b0fec04d-de08-48ec-ac41-87a5ddebfb09} - {7f4dc99b-5489-41b5-bc75-5f720932de65} + {d204272f-6c1d-4190-81e1-bc53453ef186} - {49649e1a-09cf-45d1-92a9-a3aa6abe43b4} + {169dabef-3127-4621-a773-c1cf094f877c} diff --git a/Crypto/samples/genrsakey/genrsakey_vs160.vcxproj b/Crypto/samples/genrsakey/genrsakey_vs160.vcxproj index cda9cf1ea..228a38fa0 100644 --- a/Crypto/samples/genrsakey/genrsakey_vs160.vcxproj +++ b/Crypto/samples/genrsakey/genrsakey_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 genrsakey {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947} genrsakey @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 genrsakeyd genrsakeyd genrsakeyd @@ -247,7 +248,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +259,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\genrsakeyd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +283,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +315,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +326,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\genrsakeyd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +350,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +382,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +393,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\genrsakeyd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +417,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +449,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +460,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\genrsakeyd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +484,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +516,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +527,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\genrsakeyd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +551,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +583,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +594,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\genrsakeyd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +618,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +637,8 @@ true + stdcpp17 + stdc11 diff --git a/Crypto/samples/genrsakey/genrsakey_vs160.vcxproj.filters b/Crypto/samples/genrsakey/genrsakey_vs160.vcxproj.filters index 5dedbac13..59fff5064 100644 --- a/Crypto/samples/genrsakey/genrsakey_vs160.vcxproj.filters +++ b/Crypto/samples/genrsakey/genrsakey_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {314634df-6e17-459f-8cb0-043b9c63008d} + {57c66ce0-14be-41b6-9ac1-70ff5c861a0d} - {0bd5873e-700a-4d59-95f2-89c45d00cb85} + {957962bc-87ba-4593-8c97-67ce38990384} diff --git a/Crypto/testsuite/TestSuite_vs160.vcxproj b/Crypto/testsuite/TestSuite_vs160.vcxproj index 4ff3fed0a..11d991987 100644 --- a/Crypto/testsuite/TestSuite_vs160.vcxproj +++ b/Crypto/testsuite/TestSuite_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TestSuite {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15} TestSuite @@ -157,7 +158,7 @@ - <_ProjectFileVersion>16.0.32629.160 + <_ProjectFileVersion>17.0.34511.75 TestSuited TestSuited TestSuited @@ -247,7 +248,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +259,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +283,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +315,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) @@ -316,7 +326,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +350,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) @@ -369,7 +382,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +393,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +417,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +449,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +460,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +484,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +516,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) @@ -499,7 +527,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +551,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) @@ -552,7 +583,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +594,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +618,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -610,30 +647,48 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Crypto/testsuite/TestSuite_vs160.vcxproj.filters b/Crypto/testsuite/TestSuite_vs160.vcxproj.filters index 9319e7674..f8d229305 100644 --- a/Crypto/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Crypto/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,28 +2,28 @@ - {8e27cadf-c720-479f-92da-b1e97f437438} + {1c8c4bc2-2664-41f8-a5ce-337f1754dd6d} - {91a5793c-8b68-45d0-b350-877dd6cf2c02} + {507a694a-3f97-4615-b518-71a96c0f8af1} - {a14e5add-e33d-424b-be23-0b8371e22609} + {0805e26c-6eac-4d28-9535-56b09fffdac3} - {f231f366-be62-4292-ab26-f91a41191403} + {96c9803e-6512-48db-a9f6-2fc1d2b344de} - {ec44c7f3-b2a1-4b59-9081-8e61ddef1c44} + {a884018a-76b4-44f4-a199-87c08d34040f} - {728bece6-f76d-483c-a028-52f91599a7e7} + {20122988-a0fc-42a9-89e7-5c9b0783a76f} - {57064194-c6d7-414b-9f0d-a1707f6e0c8d} + {e50bf5e7-1e0f-49cd-896c-32a553a84d75} - {60671a47-3546-4b5d-b1e9-275110dd36ca} + {aa64f38d-2dfb-48b3-8495-904c8ace997d} diff --git a/Data/DataTest/DataTest_vs160.vcxproj b/Data/DataTest/DataTest_vs160.vcxproj index 0e29cd996..190616b18 100644 --- a/Data/DataTest/DataTest_vs160.vcxproj +++ b/Data/DataTest/DataTest_vs160.vcxproj @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -249,7 +250,7 @@ ..\..\bin\PocoDataTestd.dll true true - ..\..\bin\PocoDataTestd.pdb + $(OutDir)$(TargetName).pdb ..\..\lib;%(AdditionalLibraryDirectories) Console ..\..\lib\PocoDataTestd.lib @@ -275,6 +276,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -305,7 +307,7 @@ true true - ..\..\lib\PocoDataTestmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -337,6 +339,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -359,7 +362,7 @@ true true - ..\..\lib\PocoDataTestmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -388,7 +391,7 @@ true true - ..\..\lib\PocoDataTestmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -417,6 +420,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -426,7 +430,7 @@ ..\..\bin64\PocoDataTest64d.dll true true - ..\..\bin64\PocoDataTest64d.pdb + $(OutDir)$(TargetName).pdb ..\..\lib64;%(AdditionalLibraryDirectories) Console ..\..\lib64\PocoDataTestd.lib @@ -452,6 +456,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -482,7 +487,7 @@ true true - ..\..\lib64\PocoDataTestmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -514,6 +519,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -536,7 +542,7 @@ true true - ..\..\lib64\PocoDataTestmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -568,6 +574,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 diff --git a/Data/DataTest/DataTest_vs160.vcxproj.filters b/Data/DataTest/DataTest_vs160.vcxproj.filters index 2154c6986..6a41fa9f1 100644 --- a/Data/DataTest/DataTest_vs160.vcxproj.filters +++ b/Data/DataTest/DataTest_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {bfaeab8a-6993-43f5-8480-8f3203553063} + {3d0da798-3bb5-48a5-ae71-60141f2d3277} - {ea7b7225-45df-4878-813b-4e01cdf3fe31} + {ea627452-9089-42dc-b0ae-54afbbeb03d0} diff --git a/Data/Data_vs160.sln b/Data/Data_vs160.sln index 6c7016e50..2deb7e15f 100644 --- a/Data/Data_vs160.sln +++ b/Data/Data_vs160.sln @@ -7,7 +7,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\Test {240E83C3-368D-11DB-9FBC-00123FC423B5} = {240E83C3-368D-11DB-9FBC-00123FC423B5} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DataTest", "testsuite\DataTest\DataTest_vs160.vcxproj", "{240E83C3-368D-11DB-9FBC-00123FC423B5}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DataTest", "DataTest\DataTest_vs160.vcxproj", "{240E83C3-368D-11DB-9FBC-00123FC423B5}" ProjectSection(ProjectDependencies) = postProject {240E83C3-368D-11DB-9FBC-00123FC423B5} = {240E83C3-368D-11DB-9FBC-00123FC423B5} {1813A463-E349-4FEA-8A8E-4A41E41C0DC7} = {1813A463-E349-4FEA-8A8E-4A41E41C0DC7} diff --git a/Data/Data_vs160.vcxproj b/Data/Data_vs160.vcxproj index 54f12edf7..873d052d9 100644 --- a/Data/Data_vs160.vcxproj +++ b/Data/Data_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoDatad PocoDatamdd PocoDatamtd @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /bigobj /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -249,7 +250,7 @@ ..\bin\PocoDatad.dll true true - ..\bin\PocoDatad.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoDatad.lib @@ -275,6 +276,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /bigobj /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -305,7 +307,7 @@ true true - ..\lib\PocoDatamtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -337,6 +339,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /bigobj /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -359,7 +362,7 @@ true true - ..\lib\PocoDatamdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -388,7 +391,7 @@ true true - ..\lib\PocoDatamd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -417,6 +420,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /bigobj /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -426,7 +430,7 @@ ..\bin64\PocoData64d.dll true true - ..\bin64\PocoData64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoDatad.lib @@ -452,6 +456,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /bigobj /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -482,7 +487,7 @@ true true - ..\lib64\PocoDatamtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -514,6 +519,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /bigobj /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -536,7 +542,7 @@ true true - ..\lib64\PocoDatamdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -568,6 +574,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /bigobj /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 diff --git a/Data/Data_vs160.vcxproj.filters b/Data/Data_vs160.vcxproj.filters index db6cccf15..5b887e994 100644 --- a/Data/Data_vs160.vcxproj.filters +++ b/Data/Data_vs160.vcxproj.filters @@ -2,67 +2,67 @@ - {f67496db-5e4d-4de1-8a40-22d8a971e70f} + {cb2cff8d-df03-460e-a8e8-5f75df6de03e} - {37d63788-6e99-4bc2-ac7d-df3d21fdeb84} + {39dacf38-8a48-41b9-b90d-741f627fb1d0} - {cab3a63a-af79-4ada-ab81-6a4053f3a571} + {21eb13dd-d633-4c58-8172-e0046ad24c31} - {6f73da86-3251-4ad2-832e-8e00591dbdf0} + {8fb3827f-33be-4daf-8c14-ebed3bea96e5} - {464c1180-2454-428e-bc2c-8ff90408a770} + {b39da8b5-3345-4522-8fcd-56ea15c0741f} - {22e18c41-d9e4-480d-b23b-35c27bccce72} + {540b4b42-d82d-4005-9abd-f4a5bd346235} - {5dd49dbc-28da-4f15-86ad-8a6ae9024d27} + {33e2aebf-4bf2-4651-a6fb-4597ee963a73} - {85cd8433-468c-4307-9688-26de2fd333d5} + {6d62c21e-e848-4c39-9199-2f5e594b546c} - {83340844-8264-4418-873b-72233686c996} + {1e38adcb-f0b8-4ef7-abd2-4eb14baa1297} - {5ff3ad8a-0759-40ef-9b8b-77e8257986ff} + {23886b0c-0b0f-4c73-8d1a-ae976d5e83bb} - {ee380eb8-ed0b-4479-a464-0ae71875e979} + {f22290d4-2b0b-46db-ac61-446e3a361a9a} - {6357bcb3-22ce-4257-911d-026fa251d22b} + {92ca4fbe-77c6-4945-915f-fa8f8d71102e} - {77a5e5cf-089a-4e1f-ba28-1b7435afc70d} + {62e6a21d-b3a0-43b8-90b8-5a3d1a578da9} - {68edda08-bb81-4420-bc73-7d1d7ed4aedb} + {85432299-06a5-4a73-a5f6-77381c344d85} - {14d3b337-a039-4384-996d-832688c38750} + {40d59c41-5827-4244-a4b6-88c639f6cffe} - {fb2d5165-8bce-4130-9875-76d78fbe6077} + {0e840ec2-9c51-4a6f-93d5-9546cb005cdb} - {117a3df6-f433-4bfb-9d06-91c2eef96d17} + {202c598f-56ed-463d-a534-871d3c7eadb6} - {c9eddd0e-0d4a-43b8-8d64-ac42a5071b75} + {d5f36096-6a9a-4641-8292-a5858bb1f1d5} - {fffffe76-6e5a-4c56-8490-7b6572aeb408} + {490544d2-114b-41e4-836f-e0a902a40642} - {575753d6-b376-4dc1-ab7a-08f2194ff1a1} + {6067c6e1-a29d-41f2-bfe9-14ae03d2d7aa} - {92c18071-c3bf-4f6d-90fd-69cfd09579a5} + {50f23d3b-3f56-41fa-b043-002d8c64b3b5} diff --git a/Data/MySQL/MySQL_vs160.vcxproj b/Data/MySQL/MySQL_vs160.vcxproj index 13cd86d03..c22547481 100644 --- a/Data/MySQL/MySQL_vs160.vcxproj +++ b/Data/MySQL/MySQL_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoDataMySQLd PocoDataMySQLmdd PocoDataMySQLmtd @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -248,7 +249,7 @@ ..\..\bin\PocoDataMySQLd.dll true true - ..\..\bin\PocoDataMySQLd.pdb + $(OutDir)$(TargetName).pdb ..\..\lib;%(AdditionalLibraryDirectories) Console ..\..\lib\PocoDataMySQLd.lib @@ -274,6 +275,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -303,7 +305,7 @@ true true - ..\..\lib\PocoDataMySQLmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -334,6 +336,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -355,7 +358,7 @@ true true - ..\..\lib\PocoDataMySQLmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -383,7 +386,7 @@ true true - ..\..\lib\PocoDataMySQLmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -411,6 +414,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -419,7 +423,7 @@ ..\..\bin64\PocoDataMySQL64d.dll true true - ..\..\bin64\PocoDataMySQL64d.pdb + $(OutDir)$(TargetName).pdb ..\..\lib64;%(AdditionalLibraryDirectories) Console ..\..\lib64\PocoDataMySQLd.lib @@ -445,6 +449,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -474,7 +479,7 @@ true true - ..\..\lib64\PocoDataMySQLmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -505,6 +510,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -526,7 +532,7 @@ true true - ..\..\lib64\PocoDataMySQLmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -557,6 +563,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 diff --git a/Data/MySQL/testsuite/TestSuite_vs160.vcxproj b/Data/MySQL/testsuite/TestSuite_vs160.vcxproj index 875383611..607396d8f 100644 --- a/Data/MySQL/testsuite/TestSuite_vs160.vcxproj +++ b/Data/MySQL/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34511.75 TestSuited TestSuited TestSuited @@ -235,7 +235,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -248,7 +248,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -256,7 +259,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -268,7 +271,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -280,7 +283,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -296,7 +302,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -309,7 +315,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -317,7 +326,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -329,7 +338,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -341,7 +350,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -357,7 +369,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -370,7 +382,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -378,7 +393,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -390,7 +405,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -402,7 +417,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -418,7 +436,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -431,7 +449,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -439,7 +460,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -451,7 +472,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -463,7 +484,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -479,7 +503,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -492,7 +516,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -500,7 +527,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -512,7 +539,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -524,7 +551,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -540,7 +570,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -553,7 +583,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -561,7 +594,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -573,7 +606,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -585,7 +618,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -606,15 +642,23 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Data/MySQL/testsuite/TestSuite_vs160.vcxproj.filters b/Data/MySQL/testsuite/TestSuite_vs160.vcxproj.filters index 2d17d0b26..33a59fa97 100644 --- a/Data/MySQL/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Data/MySQL/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,28 +2,28 @@ - {a02c2fb6-9366-4fe2-9022-6dca2b18e75f} + {924ec557-1753-4799-8cbe-7476a5c6999e} - {a83a2532-d02e-435a-8b10-3738ecdd189b} + {97dd25a6-a0be-4f11-b2ca-2a0b10c1a351} - {2786a6f3-0adf-4c57-905c-14985d7426df} + {f37345d3-ebb6-4297-a469-386dfe2c1fa1} - {36db8336-1c50-4a71-a096-dd712a0ce2b5} + {77a30e71-b38c-4bf3-8f28-f011cc06cb06} - {461c5b13-8706-427a-9a06-051ae968b0f0} + {e51ffe32-6130-4da7-98d2-8a29d8c2246b} - {bf188fdd-ea10-43f8-8b4b-3ade1fea8915} + {aaa4bd68-f97f-4928-9740-3a601a4c5940} - {5e83eb1b-5e35-4c81-ab54-bb516861d7c2} + {b4712375-ae85-470c-a63d-327b37c16b71} - {5af4c889-5733-42fe-b991-4675f5412663} + {8254a402-3a54-49c2-83ed-7b7ab307d980} diff --git a/Data/ODBC/ODBC_vs160.vcxproj b/Data/ODBC/ODBC_vs160.vcxproj index 43d79709b..76778d6e4 100644 --- a/Data/ODBC/ODBC_vs160.vcxproj +++ b/Data/ODBC/ODBC_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoDataODBCd PocoDataODBCmdd PocoDataODBCmtd @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -249,7 +250,7 @@ ..\..\bin\PocoDataODBCd.dll true true - ..\..\bin\PocoDataODBCd.pdb + $(OutDir)$(TargetName).pdb ..\..\lib;%(AdditionalLibraryDirectories) Console ..\..\lib\PocoDataODBCd.lib @@ -275,6 +276,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -305,7 +307,7 @@ true true - ..\..\lib\PocoDataODBCmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -336,6 +338,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -357,7 +360,7 @@ true true - ..\..\lib\PocoDataODBCmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -385,7 +388,7 @@ true true - ..\..\lib\PocoDataODBCmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -414,6 +417,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -423,7 +427,7 @@ ..\..\bin64\PocoDataODBC64d.dll true true - ..\..\bin64\PocoDataODBC64d.pdb + $(OutDir)$(TargetName).pdb ..\..\lib64;%(AdditionalLibraryDirectories) Console ..\..\lib64\PocoDataODBCd.lib @@ -449,6 +453,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -479,7 +484,7 @@ true true - ..\..\lib64\PocoDataODBCmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -510,6 +515,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -531,7 +537,7 @@ true true - ..\..\lib64\PocoDataODBCmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -562,6 +568,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 diff --git a/Data/ODBC/ODBC_vs160.vcxproj.filters b/Data/ODBC/ODBC_vs160.vcxproj.filters index e37c36630..56e4c624f 100644 --- a/Data/ODBC/ODBC_vs160.vcxproj.filters +++ b/Data/ODBC/ODBC_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {5ddd7ed9-06dd-459c-9bcc-cc4eca9a296c} + {8b004104-3ffd-4dc8-8ac0-4ae84e742459} - {902075d0-3792-4698-b78e-b45f13fc3cf0} + {37f249ab-fbe6-4178-9a6b-165b109834b4} - {093cfbf6-c56b-4757-ad24-26d820002cbe} + {1320226b-aa76-40c8-88ee-737825fa5f8d} diff --git a/Data/ODBC/testsuite/TestSuite_vs160.vcxproj b/Data/ODBC/testsuite/TestSuite_vs160.vcxproj index b59cccc74..23fd5587a 100644 --- a/Data/ODBC/testsuite/TestSuite_vs160.vcxproj +++ b/Data/ODBC/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34511.75 TestSuited TestSuited TestSuited @@ -235,7 +235,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -248,7 +248,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -256,7 +259,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -268,7 +271,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -280,7 +283,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -296,7 +302,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -309,7 +315,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -317,7 +326,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -329,7 +338,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -341,7 +350,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -357,7 +369,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -370,7 +382,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -378,7 +393,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -390,7 +405,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -402,7 +417,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -418,7 +436,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -431,7 +449,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -439,7 +460,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -451,7 +472,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -463,7 +484,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -479,7 +503,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -492,7 +516,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -500,7 +527,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -512,7 +539,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -524,7 +551,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -540,7 +570,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -553,7 +583,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -561,7 +594,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -573,7 +606,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -585,7 +618,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;odbc32.lib;odbccp32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -613,36 +649,58 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Data/ODBC/testsuite/TestSuite_vs160.vcxproj.filters b/Data/ODBC/testsuite/TestSuite_vs160.vcxproj.filters index e59733f1c..6f786c73c 100644 --- a/Data/ODBC/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Data/ODBC/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,28 +2,28 @@ - {b4e5b39e-6fb7-4804-a8f7-a9cebd0a1685} + {48efde3e-262d-4a9f-a880-85060871285d} - {06029882-af09-469c-b1fe-eecbfa099a4b} + {e1d04e08-1065-4d23-9ed3-08e0f7326fb4} - {0785c132-47d0-4eb6-ba16-e7ffbb041334} + {99f9a720-5b72-4ca1-9bb3-383414de1651} - {91928e83-625d-4c82-bce5-428c1ac4981b} + {8740d7a4-5d7e-4921-a24e-ae4ae1214918} - {44df0f18-94c4-4cdf-ac97-a7fa2f047b70} + {2e457954-e262-47b4-8c7d-b2d453de1d5d} - {57eef758-9d73-4dd4-8dfa-29fafdffc274} + {b7934d67-65aa-4c86-9932-113feec23869} - {5147873f-6883-4ef3-8498-dac75690f01c} + {94642818-83b0-4347-a2e1-c2015c8d2850} - {f3320cfe-a54b-483e-b1ac-02d825870e31} + {d3f9ac9e-ef3c-4fcc-9e32-e1dc36b22432} diff --git a/Data/PostgreSQL/PostgreSQL_vs160.vcxproj b/Data/PostgreSQL/PostgreSQL_vs160.vcxproj index fd8d0c061..fde08f4d4 100644 --- a/Data/PostgreSQL/PostgreSQL_vs160.vcxproj +++ b/Data/PostgreSQL/PostgreSQL_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoDataPostgreSQLd PocoDataPostgreSQLmdd PocoDataPostgreSQLmtd @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -248,7 +249,7 @@ ..\..\bin\PocoDataPostgreSQLd.dll true true - ..\..\bin\PocoDataPostgreSQLd.pdb + $(OutDir)$(TargetName).pdb ..\..\lib;%(AdditionalLibraryDirectories) Console ..\..\lib\PocoDataPostgreSQLd.lib @@ -274,6 +275,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -303,7 +305,7 @@ true true - ..\..\lib\PocoDataPostgreSQLmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -334,6 +336,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -355,7 +358,7 @@ true true - ..\..\lib\PocoDataPostgreSQLmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -383,7 +386,7 @@ true true - ..\..\lib\PocoDataPostgreSQLmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -411,6 +414,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -419,7 +423,7 @@ ..\..\bin64\PocoDataPostgreSQL64d.dll true true - ..\..\bin64\PocoDataPostgreSQL64d.pdb + $(OutDir)$(TargetName).pdb ..\..\lib64;%(AdditionalLibraryDirectories) Console ..\..\lib64\PocoDataPostgreSQLd.lib @@ -445,6 +449,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -474,7 +479,7 @@ true true - ..\..\lib64\PocoDataPostgreSQLmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -505,6 +510,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -526,7 +532,7 @@ true true - ..\..\lib64\PocoDataPostgreSQLmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -557,6 +563,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 diff --git a/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj b/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj index 3031449e4..899989a04 100644 --- a/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj +++ b/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34511.75 TestSuited TestSuited TestSuited @@ -235,7 +235,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -248,7 +248,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -256,7 +259,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -268,7 +271,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -280,7 +283,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -296,7 +302,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -309,7 +315,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -317,7 +326,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -329,7 +338,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreaded @@ -341,7 +350,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -357,7 +369,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -370,7 +382,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -378,7 +393,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -390,7 +405,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -402,7 +417,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -418,7 +436,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -431,7 +449,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -439,7 +460,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -451,7 +472,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -463,7 +484,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -479,7 +503,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -492,7 +516,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -500,7 +527,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -512,7 +539,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreaded @@ -524,7 +551,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -540,7 +570,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -553,7 +583,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -561,7 +594,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -573,7 +606,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -585,7 +618,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -606,15 +642,23 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj.filters b/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj.filters index 6465e68b9..950145186 100644 --- a/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,28 +2,28 @@ - {40b7b518-0729-407f-aaa8-d729ff794b7c} + {a15667a0-1722-49f7-9028-3c5af817f80e} - {74b86b6a-a134-45a7-a82a-6e689b0c15c1} + {c010c8ca-541a-4f25-8c8f-69be6a00d7d3} - {3b2fde8a-8897-49f9-9861-e9cc8eb2804b} + {dfafa03d-5c73-406e-b7ab-d6095d97164b} - {81f98471-1fb0-4b94-aafd-9f3e92d361a2} + {114b0949-48ab-4ecd-88a5-71ba581ed275} - {51fecf06-b911-4446-b43e-20c2b50d303a} + {79b8207a-fa47-4422-a6e1-be62752f430a} - {ce4c1258-75b8-4fdb-89d0-69de8121d7d4} + {df66b67c-1082-49d8-aa77-9652854e79ce} - {84217615-5ac7-4350-a9cd-2ec20457397d} + {30018351-b2f8-45c4-b081-9855cf69a73d} - {24455166-46c9-4af9-b9b2-05ff5c55c9c2} + {9ca506c9-d65c-4ec0-b544-96a7f2e1ff11} diff --git a/Data/SQLite/SQLite_vs160.vcxproj b/Data/SQLite/SQLite_vs160.vcxproj index 48433d4c1..47c5029a1 100644 --- a/Data/SQLite/SQLite_vs160.vcxproj +++ b/Data/SQLite/SQLite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoDataSQLited PocoDataSQLitemdd PocoDataSQLitemtd @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) true stdcpp17 @@ -249,7 +250,7 @@ ..\..\bin\PocoDataSQLited.dll true true - ..\..\bin\PocoDataSQLited.pdb + $(OutDir)$(TargetName).pdb ..\..\lib;%(AdditionalLibraryDirectories) Console ..\..\lib\PocoDataSQLited.lib @@ -275,6 +276,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) true stdcpp17 @@ -305,7 +307,7 @@ true true - ..\..\lib\PocoDataSQLitemtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -337,6 +339,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) true stdcpp17 @@ -359,7 +362,7 @@ true true - ..\..\lib\PocoDataSQLitemdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -388,7 +391,7 @@ true true - ..\..\lib\PocoDataSQLitemd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -417,6 +420,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) true stdcpp17 @@ -426,7 +430,7 @@ ..\..\bin64\PocoDataSQLite64d.dll true true - ..\..\bin64\PocoDataSQLite64d.pdb + $(OutDir)$(TargetName).pdb ..\..\lib64;%(AdditionalLibraryDirectories) Console ..\..\lib64\PocoDataSQLited.lib @@ -452,6 +456,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) true stdcpp17 @@ -482,7 +487,7 @@ true true - ..\..\lib64\PocoDataSQLitemtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -514,6 +519,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) true stdcpp17 @@ -536,7 +542,7 @@ true true - ..\..\lib64\PocoDataSQLitemdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -568,6 +574,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) true stdcpp17 diff --git a/Data/SQLite/SQLite_vs160.vcxproj.filters b/Data/SQLite/SQLite_vs160.vcxproj.filters index dbdc3405b..c229d3628 100644 --- a/Data/SQLite/SQLite_vs160.vcxproj.filters +++ b/Data/SQLite/SQLite_vs160.vcxproj.filters @@ -2,22 +2,22 @@ - {35ac7a5f-3122-4b02-ba58-890ce6bffd47} + {fd9f7cd4-cb33-4153-9bfb-100f86c6fdc7} - {feea0252-6fc3-440f-b06d-da54042b86e3} + {ff6535b5-a1e2-451f-82c2-bbfe316ddb2a} - {890e89e4-3c52-4f35-a521-fd5e1c2a12bf} + {d7b22751-409b-4cb7-ab78-c89745c2a70a} - {17d87956-cc8c-491c-846b-95f69c0b995f} + {0ee9caef-0389-4cd4-85f0-1a6f20f6c6a1} - {4e7eadc1-8dc4-41c8-a9a2-b618af8cfca0} + {e0cc3d83-d99c-49cb-8cfd-c8002fe1ddc8} - {29293288-da79-409b-8b4f-bcee1bf2e1b3} + {be54820d-54b5-411d-9c18-1451dba024d7} diff --git a/Data/SQLite/testsuite/TestSuite_vs160.vcxproj b/Data/SQLite/testsuite/TestSuite_vs160.vcxproj index 169994aae..3b2ab061c 100644 --- a/Data/SQLite/testsuite/TestSuite_vs160.vcxproj +++ b/Data/SQLite/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34511.75 TestSuited TestSuited TestSuited @@ -235,7 +235,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -248,7 +248,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -256,7 +259,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -268,7 +271,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -280,7 +283,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -296,7 +302,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -309,7 +315,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -317,7 +326,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -329,7 +338,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -341,7 +350,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -357,7 +369,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -370,7 +382,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -378,7 +393,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -390,7 +405,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -402,7 +417,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -418,7 +436,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -431,7 +449,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -439,7 +460,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -451,7 +472,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -463,7 +484,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -479,7 +503,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -492,7 +516,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -500,7 +527,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -512,7 +539,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -524,7 +551,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -540,7 +570,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -553,7 +583,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -561,7 +594,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -573,7 +606,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -585,7 +618,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -605,12 +641,18 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Data/SQLite/testsuite/TestSuite_vs160.vcxproj.filters b/Data/SQLite/testsuite/TestSuite_vs160.vcxproj.filters index a3c185284..f58478d28 100644 --- a/Data/SQLite/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Data/SQLite/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,28 +2,28 @@ - {577e2c77-7603-417a-91b8-b65480a47cff} + {b947611c-9004-493c-967a-caa6ef15244e} - {93630c8c-e68d-457c-8383-f709db929d93} + {b389e350-8391-47f5-bbe8-c424caed3a2b} - {9989beae-c400-4843-8f3a-52ab7b928d0c} + {9fe973fd-eb8c-4fab-ad5f-f4486f206bd4} - {313dbe1c-d8df-4c5b-9abb-ab9e28300048} + {cd5d0eff-85db-448b-85cf-ff5f3d1335bd} - {9b336120-a676-4408-b349-b2e7cb4f4e4b} + {c074c52b-4f61-4b3b-aafa-abdb99ad6835} - {ba9a1b30-2f4d-4f92-8839-83d69be829d9} + {649c53dc-ceb0-46c9-af3d-59a860a9fb47} - {0be222c2-f6b0-4ff0-9f79-6f7bc32e926a} + {58088a5d-56bd-4f0d-9dc1-cd96d01f8b50} - {36ce391f-e038-4ac9-b71f-54d0c459d468} + {45b69f8d-ba6c-4a41-8398-3492c99da64a} diff --git a/Data/samples/Binding/Binding_vs160.vcxproj b/Data/samples/Binding/Binding_vs160.vcxproj index 5f63a84fe..ecf0398ca 100644 --- a/Data/samples/Binding/Binding_vs160.vcxproj +++ b/Data/samples/Binding/Binding_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34511.75 Bindingd Bindingd Bindingd @@ -235,7 +235,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -248,7 +248,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;%(AdditionalDependencies) @@ -256,7 +259,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Bindingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -268,7 +271,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -280,7 +283,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;%(AdditionalDependencies) @@ -296,7 +302,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -309,7 +315,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -317,7 +326,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Bindingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -329,7 +338,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -341,7 +350,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -357,7 +369,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -370,7 +382,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -378,7 +393,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Bindingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -390,7 +405,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -402,7 +417,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -418,7 +436,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -431,7 +449,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;%(AdditionalDependencies) @@ -439,7 +460,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Bindingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -451,7 +472,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -463,7 +484,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;%(AdditionalDependencies) @@ -479,7 +503,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -492,7 +516,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -500,7 +527,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Bindingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -512,7 +539,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -524,7 +551,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -540,7 +570,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -553,7 +583,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -561,7 +594,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Bindingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -573,7 +606,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -585,7 +618,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -601,6 +637,8 @@ true + stdcpp17 + stdc11 diff --git a/Data/samples/Binding/Binding_vs160.vcxproj.filters b/Data/samples/Binding/Binding_vs160.vcxproj.filters index 00c8052ed..26d7f21fe 100644 --- a/Data/samples/Binding/Binding_vs160.vcxproj.filters +++ b/Data/samples/Binding/Binding_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {7a189050-2048-4632-ba6c-46b07a479ed3} + {7db63845-ddd9-4c1d-b0a4-2c8a8c496dee} - {e103ec6c-2a14-4472-a070-ced6e1be4255} + {a37b40b7-6e79-4d5a-8e48-8e89fc812af3} diff --git a/Data/samples/RecordSet/RecordSet_vs160.vcxproj b/Data/samples/RecordSet/RecordSet_vs160.vcxproj index ef1dca08e..5b8fdcb4f 100644 --- a/Data/samples/RecordSet/RecordSet_vs160.vcxproj +++ b/Data/samples/RecordSet/RecordSet_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34511.75 RecordSetd RecordSetd RecordSetd @@ -235,7 +235,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -248,7 +248,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;%(AdditionalDependencies) @@ -256,7 +259,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\RecordSetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -268,7 +271,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -280,7 +283,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;%(AdditionalDependencies) @@ -296,7 +302,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -309,7 +315,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -317,7 +326,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\RecordSetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -329,7 +338,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -341,7 +350,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -357,7 +369,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -370,7 +382,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -378,7 +393,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\RecordSetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -390,7 +405,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -402,7 +417,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -418,7 +436,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -431,7 +449,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;%(AdditionalDependencies) @@ -439,7 +460,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\RecordSetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -451,7 +472,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -463,7 +484,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;%(AdditionalDependencies) @@ -479,7 +503,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -492,7 +516,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -500,7 +527,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\RecordSetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -512,7 +539,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -524,7 +551,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -540,7 +570,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -553,7 +583,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -561,7 +594,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\RecordSetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -573,7 +606,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -585,7 +618,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -601,6 +637,8 @@ true + stdcpp17 + stdc11 diff --git a/Data/samples/RecordSet/RecordSet_vs160.vcxproj.filters b/Data/samples/RecordSet/RecordSet_vs160.vcxproj.filters index dddae643b..d74037756 100644 --- a/Data/samples/RecordSet/RecordSet_vs160.vcxproj.filters +++ b/Data/samples/RecordSet/RecordSet_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {c6b24ce7-3335-43c1-bbe3-d7f06940eb31} + {7f718ae4-4fd1-4a5f-9391-b91c85ffa2f5} - {2750a7d3-75d7-423d-98cb-602f1e544742} + {f755562f-6ac5-45f7-ae41-291b683aa88a} diff --git a/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj b/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj index 5e6ad3f2f..c6ae0576a 100644 --- a/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj +++ b/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34511.75 RowFormatterd RowFormatterd RowFormatterd @@ -235,7 +235,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -248,7 +248,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;%(AdditionalDependencies) @@ -256,7 +259,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\RowFormatterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -268,7 +271,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -280,7 +283,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;%(AdditionalDependencies) @@ -296,7 +302,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -309,7 +315,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -317,7 +326,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\RowFormatterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -329,7 +338,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -341,7 +350,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -357,7 +369,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -370,7 +382,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -378,7 +393,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\RowFormatterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -390,7 +405,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -402,7 +417,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -418,7 +436,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -431,7 +449,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;%(AdditionalDependencies) @@ -439,7 +460,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\RowFormatterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -451,7 +472,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -463,7 +484,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;%(AdditionalDependencies) @@ -479,7 +503,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -492,7 +516,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -500,7 +527,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\RowFormatterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -512,7 +539,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -524,7 +551,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -540,7 +570,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -553,7 +583,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -561,7 +594,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\RowFormatterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -573,7 +606,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -585,7 +618,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -601,6 +637,8 @@ true + stdcpp17 + stdc11 diff --git a/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj.filters b/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj.filters index 9840118b6..566c8c7ab 100644 --- a/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj.filters +++ b/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {376dbfba-c2f2-4580-b415-12d8f0d2be28} + {e8fd3902-0f2e-4d24-8875-5b11fe24c9ad} - {f57ec78e-c922-47ba-9d73-3fa18a9612fe} + {8156dfb2-7719-4cd6-bd37-6199d5212f10} diff --git a/Data/samples/Tuple/Tuple_vs160.vcxproj b/Data/samples/Tuple/Tuple_vs160.vcxproj index 55ddb33b4..5b4048752 100644 --- a/Data/samples/Tuple/Tuple_vs160.vcxproj +++ b/Data/samples/Tuple/Tuple_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34511.75 Tupled Tupled Tupled @@ -235,7 +235,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -248,7 +248,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;%(AdditionalDependencies) @@ -256,7 +259,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Tupled.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -268,7 +271,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -280,7 +283,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;%(AdditionalDependencies) @@ -296,7 +302,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -309,7 +315,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -317,7 +326,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Tupled.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -329,7 +338,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -341,7 +350,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -357,7 +369,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -370,7 +382,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -378,7 +393,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Tupled.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -390,7 +405,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -402,7 +417,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -418,7 +436,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -431,7 +449,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;%(AdditionalDependencies) @@ -439,7 +460,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Tupled.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -451,7 +472,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -463,7 +484,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;%(AdditionalDependencies) @@ -479,7 +503,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -492,7 +516,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -500,7 +527,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Tupled.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -512,7 +539,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -524,7 +551,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -540,7 +570,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -553,7 +583,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -561,7 +594,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Tupled.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -573,7 +606,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -585,7 +618,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -601,6 +637,8 @@ true + stdcpp17 + stdc11 diff --git a/Data/samples/Tuple/Tuple_vs160.vcxproj.filters b/Data/samples/Tuple/Tuple_vs160.vcxproj.filters index 4d056f77d..1a9d7e620 100644 --- a/Data/samples/Tuple/Tuple_vs160.vcxproj.filters +++ b/Data/samples/Tuple/Tuple_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {daced653-361b-4687-9b08-af29969dc023} + {eeca3f66-a5ab-47b5-b81c-5a44a5755bd3} - {3f70b07e-c518-4105-b9d7-5c2d93c622ea} + {2cf46c17-bed9-41a6-b881-e9f675c62755} diff --git a/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj b/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj index 5be4b88ae..484d3a5e4 100644 --- a/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj +++ b/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34511.75 TypeHandlerd TypeHandlerd TypeHandlerd @@ -235,7 +235,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -248,7 +248,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -256,7 +259,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TypeHandlerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -268,7 +271,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -280,7 +283,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -296,7 +302,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -309,7 +315,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -317,7 +326,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TypeHandlerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -329,7 +338,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -341,7 +350,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -357,7 +369,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -370,7 +382,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -378,7 +393,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TypeHandlerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -390,7 +405,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -402,7 +417,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -418,7 +436,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -431,7 +449,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -439,7 +460,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TypeHandlerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -451,7 +472,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -463,7 +484,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -479,7 +503,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -492,7 +516,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -500,7 +527,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TypeHandlerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -512,7 +539,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -524,7 +551,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -540,7 +570,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -553,7 +583,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -561,7 +594,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TypeHandlerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -573,7 +606,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -585,7 +618,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -601,6 +637,8 @@ true + stdcpp17 + stdc11 diff --git a/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj.filters b/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj.filters index 9740ce41c..75c2f9f43 100644 --- a/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj.filters +++ b/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {69d64388-00f7-43b5-b051-7ae49f6d85d0} + {468a4d19-1e0e-469a-baac-389509a364a5} - {b50f674a-512d-41ff-8e82-2523bedf9781} + {c36a0c8d-a274-4923-9454-07ca18b37d2f} diff --git a/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj b/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj index 33e4a1dc0..58c398994 100644 --- a/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj +++ b/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34511.75 WebNotifierd WebNotifierd WebNotifierd @@ -235,7 +235,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -248,7 +248,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -256,7 +259,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\WebNotifierd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -268,7 +271,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -280,7 +283,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -296,7 +302,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -309,7 +315,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -317,7 +326,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\WebNotifierd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -329,7 +338,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -341,7 +350,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -357,7 +369,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -370,7 +382,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -378,7 +393,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\WebNotifierd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -390,7 +405,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -402,7 +417,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -418,7 +436,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -431,7 +449,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -439,7 +460,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\WebNotifierd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -451,7 +472,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -463,7 +484,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -479,7 +503,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -492,7 +516,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -500,7 +527,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\WebNotifierd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -512,7 +539,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -524,7 +551,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -540,7 +570,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -553,7 +583,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -561,7 +594,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\WebNotifierd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -573,7 +606,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -585,7 +618,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -601,6 +637,8 @@ true + stdcpp17 + stdc11 diff --git a/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj.filters b/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj.filters index 2b3f977dc..208b412fa 100644 --- a/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj.filters +++ b/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {f529f90f-8157-4358-ba52-bd499007d7dd} + {7801ba72-87aa-4baf-b29b-d48867a82522} - {394800ac-0f2f-46d6-9e16-06ddd9a9072a} + {c9a95d09-32e7-4f73-84ef-26cacd824aab} diff --git a/Data/testsuite/TestSuite_vs160.vcxproj b/Data/testsuite/TestSuite_vs160.vcxproj index 1deb4bcc0..723e4adf8 100644 --- a/Data/testsuite/TestSuite_vs160.vcxproj +++ b/Data/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34511.75 TestSuited TestSuited TestSuited @@ -235,7 +235,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -248,8 +248,11 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -257,7 +260,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -269,7 +272,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -281,8 +284,11 @@ Level3 Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -298,7 +304,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -311,8 +317,11 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -320,7 +329,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -332,7 +341,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -344,8 +353,11 @@ Level3 Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -361,7 +373,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -374,8 +386,11 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -383,7 +398,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -395,7 +410,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -407,8 +422,11 @@ Level3 Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -424,7 +442,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -437,8 +455,11 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -446,7 +467,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -458,7 +479,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -470,8 +491,11 @@ Level3 Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -487,7 +511,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -500,8 +524,11 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -509,7 +536,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -521,7 +548,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -533,8 +560,11 @@ Level3 Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -550,7 +580,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -563,8 +593,11 @@ Level3 ProgramDatabase Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -572,7 +605,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +617,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\SqlParser;..\SqlParser\src;..\..\Foundation\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -596,8 +629,11 @@ Level3 Default - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -625,36 +661,58 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Data/testsuite/TestSuite_vs160.vcxproj.filters b/Data/testsuite/TestSuite_vs160.vcxproj.filters index 8f84e6038..c6fde03c1 100644 --- a/Data/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Data/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,55 +2,55 @@ - {efd284a0-836e-4ec5-839a-b0ce012b452c} + {dfd921ee-f44a-4469-bd36-16e73a4782eb} - {9d2c02b3-1a4c-4f82-b246-094be9675fb7} + {44f79575-87b7-457c-b17f-5c95658db37e} - {7419925d-2910-46ef-b66d-75be7083f76e} + {d4ccd324-3061-4bfe-99f5-5d59560d0b79} - {7de21299-9fde-466e-9ce5-07fd9eca02b6} + {be3313fc-81dc-4ac7-99f8-34af544d5b8d} - {307e2d27-9ce4-4917-8065-d6b291d81880} + {5cbc6e2e-d7e9-4259-9099-df738908f69f} - {f17dd1ac-48fc-4a78-974f-0617bb547a84} + {678c9607-0589-4909-926b-acfbd4ee993e} - {4500fec7-05ca-4079-b954-0fc6b926bf80} + {b4eba29e-60d4-4c15-a067-54f08f43bcee} - {0afe4a91-71c0-4750-a29f-f8aee0a2ed3d} + {952418c0-8de9-4baa-9153-39e52c0bde8c} - {408adb2a-a0ba-406c-af0f-ba35c79de465} + {8ae57633-9c90-49ca-9573-0414c03dadf3} - {6a11898f-7e83-4885-91f7-b8666ec0bfae} + {1b49dc10-5b24-413e-bbe6-e9b20ece7cb6} - {4c3df67f-20f5-41cd-a9a5-69838ddb5623} + {6a34879c-4503-407b-b114-4fce615298a3} - {bda62c82-7799-4e32-aa59-794187c9254c} + {4b4d8d5c-4bf4-48de-8382-fa995ceed795} - {569ea43a-87d8-4662-87f9-e86ecdd62c85} + {5e2fdca1-603b-43ba-8fb9-13d339bb4a13} - {16747406-0a06-4a3e-be49-740d0436d7b6} + {8f88f0b0-1765-44e6-8bb1-da8933cf1561} - {79a12ac6-a42c-44a9-9cce-5863936607d5} + {f4c50fd9-392e-451f-bc9d-68888d5eab85} - {07db900c-1cf4-45af-8977-fa95c862e73f} + {f59b0b24-007a-4a91-9b10-3183563e1c3d} - {6037cc1b-d9ba-465c-9b57-fef469e15a68} + {129e1247-b096-45d4-87fa-077f3f6433df} diff --git a/Encodings/Encodings_vs160.vcxproj b/Encodings/Encodings_vs160.vcxproj index 6697c495c..914fee669 100644 --- a/Encodings/Encodings_vs160.vcxproj +++ b/Encodings/Encodings_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoEncodingsd PocoEncodingsmdd PocoEncodingsmtd @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -248,7 +249,7 @@ ..\bin\PocoEncodingsd.dll true true - ..\bin\PocoEncodingsd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoEncodingsd.lib @@ -274,6 +275,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -303,7 +305,7 @@ true true - ..\lib\PocoEncodingsmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -334,6 +336,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -355,7 +358,7 @@ true true - ..\lib\PocoEncodingsmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -383,7 +386,7 @@ true true - ..\lib\PocoEncodingsmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -411,6 +414,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -419,7 +423,7 @@ ..\bin64\PocoEncodings64d.dll true true - ..\bin64\PocoEncodings64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoEncodingsd.lib @@ -445,6 +449,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -474,7 +479,7 @@ true true - ..\lib64\PocoEncodingsmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -505,6 +510,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 @@ -526,7 +532,7 @@ true true - ..\lib64\PocoEncodingsmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -557,6 +563,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb true stdcpp17 stdc11 diff --git a/Encodings/Encodings_vs160.vcxproj.filters b/Encodings/Encodings_vs160.vcxproj.filters index f12138c59..d0bb7b973 100644 --- a/Encodings/Encodings_vs160.vcxproj.filters +++ b/Encodings/Encodings_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {c15768fc-708f-4d0b-a555-4fe5482bc8d4} + {d2eaf225-f3a3-445f-b77a-7ec8123b1ba5} - {1272131b-56f1-445c-b440-264342815032} + {91086300-388f-4f27-b8c0-b06c8137482a} - {a53c22e2-a622-4e4f-9470-7580a30f9415} + {a414b00d-415e-4006-80f3-0830a8901a9d} diff --git a/Encodings/samples/TextConverter/TextConverter_vs160.vcxproj b/Encodings/samples/TextConverter/TextConverter_vs160.vcxproj index 4fee0f51e..ddd7d6256 100644 --- a/Encodings/samples/TextConverter/TextConverter_vs160.vcxproj +++ b/Encodings/samples/TextConverter/TextConverter_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TextConverter {3CCF9527-B5D9-3522-84C3-C8E5381D7661} TextConverter @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 TextConverterd TextConverterd TextConverterd @@ -247,7 +248,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +259,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TextConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +283,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +315,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +326,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TextConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +350,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +382,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +393,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TextConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +417,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +449,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +460,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TextConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +484,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +516,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +527,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TextConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +551,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +583,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +594,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TextConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +618,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +637,8 @@ true + stdcpp17 + stdc11 diff --git a/Encodings/samples/TextConverter/TextConverter_vs160.vcxproj.filters b/Encodings/samples/TextConverter/TextConverter_vs160.vcxproj.filters index 0aa7627db..d13cf76fd 100644 --- a/Encodings/samples/TextConverter/TextConverter_vs160.vcxproj.filters +++ b/Encodings/samples/TextConverter/TextConverter_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {27d300e2-17bc-416a-a753-93eb0d3938a9} + {cc73a153-ea12-498d-9bf1-8cff466daca3} - {fabfae72-dc55-423e-8e30-20c9befe2770} + {c1d83b77-89fb-4666-be38-457ed90f6865} diff --git a/Encodings/testsuite/TestSuite_vs160.vcxproj b/Encodings/testsuite/TestSuite_vs160.vcxproj index 47c767595..1469a3c15 100644 --- a/Encodings/testsuite/TestSuite_vs160.vcxproj +++ b/Encodings/testsuite/TestSuite_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TestSuite {7784E068-96B2-4DDC-BA8B-780206E06B30} TestSuite @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 TestSuited TestSuited TestSuited @@ -247,7 +248,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;%(AdditionalDependencies) @@ -255,7 +259,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +283,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;%(AdditionalDependencies) @@ -308,7 +315,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -316,7 +326,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +350,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -369,7 +382,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -377,7 +393,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +417,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -430,7 +449,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;%(AdditionalDependencies) @@ -438,7 +460,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +484,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;%(AdditionalDependencies) @@ -491,7 +516,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -499,7 +527,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +551,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -552,7 +583,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -560,7 +594,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +618,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -600,12 +637,18 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Encodings/testsuite/TestSuite_vs160.vcxproj.filters b/Encodings/testsuite/TestSuite_vs160.vcxproj.filters index 902b52069..9d2e324e0 100644 --- a/Encodings/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Encodings/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {8943871c-0d0d-4893-8a8a-04422b5e8431} + {abc004ad-578b-4f51-ac60-c071f04c4028} - {ac2ef9f4-1883-48b7-9470-6669029937a4} + {294b52e1-6341-4ca4-bd72-1c4f835531d3} diff --git a/Foundation/Foundation_vs160.vcxproj b/Foundation/Foundation_vs160.vcxproj index cbd30972b..c24e413ec 100644 --- a/Foundation/Foundation_vs160.vcxproj +++ b/Foundation/Foundation_vs160.vcxproj @@ -55,6 +55,7 @@ {B01196CC-B693-4548-8464-2FF60499E73F} Foundation Win32Proj + 10.0 @@ -241,6 +242,7 @@ ProgramDatabase Default true + stdcpp17 iphlpapi.lib;%(AdditionalDependencies) @@ -273,6 +275,7 @@ Default true /Zc:__cplusplus %(AdditionalOptions) + stdcpp17 iphlpapi.lib;%(AdditionalDependencies) @@ -305,6 +308,7 @@ Default true + stdcpp17 iphlpapi.lib;%(AdditionalDependencies) @@ -342,6 +346,7 @@ Default true /Zc:__cplusplus %(AdditionalOptions) + stdcpp17 iphlpapi.lib;%(AdditionalDependencies) @@ -374,6 +379,7 @@ ProgramDatabase Default true + stdcpp17 ..\lib\PocoFoundationmtd.lib @@ -400,6 +406,7 @@ Default true /Zc:__cplusplus %(AdditionalOptions) + stdcpp17 ..\lib64\PocoFoundationmtd.lib @@ -425,6 +432,7 @@ Default true + stdcpp17 ..\lib\PocoFoundationmt.lib @@ -454,6 +462,7 @@ Default true /Zc:__cplusplus %(AdditionalOptions) + stdcpp17 ..\lib64\PocoFoundationmt.lib @@ -478,6 +487,7 @@ ProgramDatabase Default true + stdcpp17 ..\lib\PocoFoundationmdd.lib @@ -504,6 +514,7 @@ Default true /Zc:__cplusplus %(AdditionalOptions) + stdcpp17 ..\lib64\PocoFoundationmdd.lib @@ -530,6 +541,7 @@ Default true + stdcpp17 @@ -562,6 +574,7 @@ Default true /Zc:__cplusplus %(AdditionalOptions) + stdcpp17 @@ -1859,4 +1872,4 @@ - + \ No newline at end of file diff --git a/Foundation/Foundation_vs160.vcxproj.filters b/Foundation/Foundation_vs160.vcxproj.filters index a1ab1d931..95d845826 100644 --- a/Foundation/Foundation_vs160.vcxproj.filters +++ b/Foundation/Foundation_vs160.vcxproj.filters @@ -924,6 +924,8 @@ RegularExpression\PCRE2 Source Files + + diff --git a/Foundation/testsuite/TestApp_vs160.vcxproj b/Foundation/testsuite/TestApp_vs160.vcxproj index 941f7dbdf..4bf91150c 100644 --- a/Foundation/testsuite/TestApp_vs160.vcxproj +++ b/Foundation/testsuite/TestApp_vs160.vcxproj @@ -248,7 +248,7 @@ Disabled - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) false EnableFastChecks @@ -263,10 +263,12 @@ ProgramDatabase /FS true + stdcpp17 + ws2_32.lib;iphlpapi.lib;PocoFoundationd.lib;%(AdditionalDependencies) bin\TestAppd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) + ..\..\lib;%(AdditionalLibraryDirectories) true bin\TestAppd.pdb Console @@ -276,7 +278,7 @@ Disabled - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL @@ -288,12 +290,14 @@ Level3 ProgramDatabase - /FS /Zc:__cplusplus + /FS true + stdcpp17 + ws2_32.lib;iphlpapi.lib;PocoFoundationd.lib;%(AdditionalDependencies) bin64\TestAppd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) + ..\..\lib64;%(AdditionalLibraryDirectories) true bin64\TestAppd.pdb Console @@ -306,7 +310,7 @@ true Speed true - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -321,10 +325,12 @@ /FS true + stdcpp17 + ws2_32.lib;iphlpapi.lib;PocoFoundation.lib;%(AdditionalDependencies) bin\TestApp.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) + ..\..\lib;%(AdditionalLibraryDirectories) false @@ -341,7 +347,7 @@ true Speed true - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -354,12 +360,14 @@ Level3 - /FS /Zc:__cplusplus + /FS true + stdcpp17 + ws2_32.lib;iphlpapi.lib;PocoFoundation.lib;%(AdditionalDependencies) bin64\TestApp.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) + ..\..\lib64;%(AdditionalLibraryDirectories) false @@ -375,7 +383,7 @@ true Speed true - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -390,10 +398,12 @@ /FS true + stdcpp17 + PocoFoundationmd.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin\static_md\TestApp.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) + ..\..\lib;%(AdditionalLibraryDirectories) false @@ -410,7 +420,7 @@ true Speed true - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -423,12 +433,14 @@ Level3 - /FS /Zc:__cplusplus + /FS true + stdcpp17 + PocoFoundationmd.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin64\static_md\TestApp.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) + ..\..\lib64;%(AdditionalLibraryDirectories) false @@ -440,7 +452,7 @@ Disabled - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) false EnableFastChecks @@ -455,10 +467,12 @@ ProgramDatabase /FS true + stdcpp17 + PocoFoundationmdd.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin\static_md\TestAppd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) + ..\..\lib;%(AdditionalLibraryDirectories) true bin\static_md\TestAppd.pdb Console @@ -468,7 +482,7 @@ Disabled - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebugDLL @@ -480,12 +494,14 @@ Level3 ProgramDatabase - /FS /Zc:__cplusplus + /FS true + stdcpp17 + PocoFoundationmdd.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin64\static_md\TestAppd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) + ..\..\lib64;%(AdditionalLibraryDirectories) true bin64\static_md\TestAppd.pdb Console @@ -494,7 +510,7 @@ Disabled - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) false EnableFastChecks @@ -509,10 +525,12 @@ ProgramDatabase /FS true + stdcpp17 + PocoFoundationmtd.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin\static_mt\TestAppd.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) + ..\..\lib;%(AdditionalLibraryDirectories) true bin\static_mt\TestAppd.pdb Console @@ -522,7 +540,7 @@ Disabled - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) EnableFastChecks MultiThreadedDebug @@ -534,12 +552,14 @@ Level3 ProgramDatabase - /FS /Zc:__cplusplus + /FS true + stdcpp17 + PocoFoundationmtd.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin64\static_mt\TestAppd.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) + ..\..\lib64;%(AdditionalLibraryDirectories) true bin64\static_mt\TestAppd.pdb Console @@ -552,7 +572,7 @@ true Speed true - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -567,10 +587,12 @@ /FS true + stdcpp17 + PocoFoundationmt.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin\static_mt\TestApp.exe - ..\..\..\lib;%(AdditionalLibraryDirectories) + ..\..\lib;%(AdditionalLibraryDirectories) false @@ -587,7 +609,7 @@ true Speed true - %(AdditionalIncludeDirectories) + ..\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -600,12 +622,14 @@ Level3 - /FS /Zc:__cplusplus + /FS true + stdcpp17 + PocoFoundationmt.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin64\static_mt\TestApp.exe - ..\..\..\lib64;%(AdditionalLibraryDirectories) + ..\..\lib64;%(AdditionalLibraryDirectories) false diff --git a/Foundation/testsuite/TestLibrary_vs160.vcxproj b/Foundation/testsuite/TestLibrary_vs160.vcxproj index 72e46c978..82d91aa85 100644 --- a/Foundation/testsuite/TestLibrary_vs160.vcxproj +++ b/Foundation/testsuite/TestLibrary_vs160.vcxproj @@ -107,6 +107,7 @@ ProgramDatabase /FS true + stdcpp17 PocoFoundationd.lib;%(AdditionalDependencies) @@ -138,6 +139,7 @@ ProgramDatabase /FS /Zc:__cplusplus true + stdcpp17 PocoFoundationd.lib;%(AdditionalDependencies) @@ -172,6 +174,7 @@ /FS true + stdcpp17 PocoFoundation.lib;%(AdditionalDependencies) @@ -210,6 +213,7 @@ /FS /Zc:__cplusplus true + stdcpp17 PocoFoundation.lib;%(AdditionalDependencies) diff --git a/Foundation/testsuite/TestSuite_vs160.vcxproj b/Foundation/testsuite/TestSuite_vs160.vcxproj index ed453e07a..1da0e5e61 100644 --- a/Foundation/testsuite/TestSuite_vs160.vcxproj +++ b/Foundation/testsuite/TestSuite_vs160.vcxproj @@ -250,6 +250,7 @@ ProgramDatabase Default true + stdcpp17 iphlpapi.lib;%(AdditionalDependencies) @@ -281,6 +282,7 @@ Default true /Zc:__cplusplus %(AdditionalOptions) + stdcpp17 iphlpapi.lib;%(AdditionalDependencies) @@ -312,6 +314,7 @@ Default true + stdcpp17 iphlpapi.lib;%(AdditionalDependencies) @@ -347,6 +350,7 @@ Default true /Zc:__cplusplus %(AdditionalOptions) + stdcpp17 iphlpapi.lib;%(AdditionalDependencies) @@ -376,6 +380,7 @@ ProgramDatabase Default true + stdcpp17 iphlpapi.lib;%(AdditionalDependencies) @@ -407,6 +412,7 @@ Default true /Zc:__cplusplus %(AdditionalOptions) + stdcpp17 iphlpapi.lib;%(AdditionalDependencies) @@ -438,6 +444,7 @@ Default true + stdcpp17 iphlpapi.lib;%(AdditionalDependencies) @@ -473,6 +480,7 @@ Default true /Zc:__cplusplus %(AdditionalOptions) + stdcpp17 iphlpapi.lib;%(AdditionalDependencies) @@ -502,6 +510,7 @@ ProgramDatabase Default true + stdcpp17 iphlpapi.lib;%(AdditionalDependencies) @@ -533,6 +542,7 @@ Default true /Zc:__cplusplus %(AdditionalOptions) + stdcpp17 iphlpapi.lib;%(AdditionalDependencies) @@ -564,6 +574,7 @@ Default true + stdcpp17 iphlpapi.lib;%(AdditionalDependencies) @@ -599,6 +610,7 @@ Default true /Zc:__cplusplus %(AdditionalOptions) + stdcpp17 iphlpapi.lib;%(AdditionalDependencies) @@ -694,6 +706,7 @@ + @@ -836,6 +849,7 @@ + @@ -896,4 +910,4 @@ - + \ No newline at end of file diff --git a/Foundation/testsuite/TestSuite_vs160.vcxproj.filters b/Foundation/testsuite/TestSuite_vs160.vcxproj.filters index e2946e043..0c534981e 100644 --- a/Foundation/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Foundation/testsuite/TestSuite_vs160.vcxproj.filters @@ -519,6 +519,9 @@ Processes\Source Files + + Processes\Source Files + Processes\Source Files @@ -597,6 +600,9 @@ URI\Source Files + + Threading\Source Files + @@ -938,6 +944,9 @@ Processes\Header Files + + Processes\Header Files + Processes\Header Files @@ -1016,5 +1025,8 @@ URI\Header Files + + Threading\Header Files + \ No newline at end of file diff --git a/Foundation/testsuite/TestSuite_vs170.vcxproj.filters b/Foundation/testsuite/TestSuite_vs170.vcxproj.filters index 1ab7bf822..0c534981e 100644 --- a/Foundation/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Foundation/testsuite/TestSuite_vs170.vcxproj.filters @@ -600,7 +600,9 @@ URI\Source Files - + + Threading\Source Files + @@ -1023,6 +1025,8 @@ URI\Header Files - + + Threading\Header Files + \ No newline at end of file diff --git a/JSON/JSON_vs160.vcxproj b/JSON/JSON_vs160.vcxproj index 5a33ed50f..1f0fcc61d 100644 --- a/JSON/JSON_vs160.vcxproj +++ b/JSON/JSON_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoJSONd PocoJSONmdd PocoJSONmtd @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -249,7 +250,7 @@ ..\bin\PocoJSONd.dll true true - ..\bin\PocoJSONd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoJSONd.lib @@ -275,6 +276,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -305,7 +307,7 @@ true true - ..\lib\PocoJSONmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -337,6 +339,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -359,7 +362,7 @@ true true - ..\lib\PocoJSONmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -388,7 +391,7 @@ true true - ..\lib\PocoJSONmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -417,6 +420,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -426,7 +430,7 @@ ..\bin64\PocoJSON64d.dll true true - ..\bin64\PocoJSON64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoJSONd.lib @@ -452,6 +456,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -482,7 +487,7 @@ true true - ..\lib64\PocoJSONmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -514,6 +519,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -536,7 +542,7 @@ true true - ..\lib64\PocoJSONmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -568,6 +574,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 diff --git a/JSON/JSON_vs160.vcxproj.filters b/JSON/JSON_vs160.vcxproj.filters index 93237343e..4125cf988 100644 --- a/JSON/JSON_vs160.vcxproj.filters +++ b/JSON/JSON_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {71bcfd62-4793-41c9-8c35-416c2154e8e5} + {b0a7b744-1519-42d8-a7ce-bb056ad2a88f} - {9a161e20-adcc-49d6-8149-d8bae41992e0} + {4e840e51-0586-4a15-9c80-43205763676d} diff --git a/JSON/samples/Benchmark/Benchmark_vs160.vcxproj b/JSON/samples/Benchmark/Benchmark_vs160.vcxproj index 23afe5b15..f4b9ccf20 100644 --- a/JSON/samples/Benchmark/Benchmark_vs160.vcxproj +++ b/JSON/samples/Benchmark/Benchmark_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 Benchmark {D0381ECF-E750-32DA-8EEF-92D56B172D15} Benchmark @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 Benchmarkd Benchmarkd Benchmarkd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Benchmarkd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Benchmarkd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Benchmarkd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Benchmarkd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Benchmarkd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Benchmarkd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/JSON/samples/Benchmark/Benchmark_vs160.vcxproj.filters b/JSON/samples/Benchmark/Benchmark_vs160.vcxproj.filters index d3b85d37b..6395a7744 100644 --- a/JSON/samples/Benchmark/Benchmark_vs160.vcxproj.filters +++ b/JSON/samples/Benchmark/Benchmark_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {15a951d2-6f56-4286-a100-d644a3f4ec7d} + {397eac41-b7ab-47e1-b57b-fb5bb3521473} - {56b22f3d-dae2-4ee9-ac4f-2469cc77c4b3} + {2f8635d8-04c4-4b32-8134-bb18911b1818} diff --git a/JSON/testsuite/TestSuite_vs160.vcxproj b/JSON/testsuite/TestSuite_vs160.vcxproj index 90d85f7e3..cfda8d46f 100644 --- a/JSON/testsuite/TestSuite_vs160.vcxproj +++ b/JSON/testsuite/TestSuite_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TestSuite {96CF3103-E49E-3F5E-A11D-6DBCDA043053} TestSuite @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 TestSuited TestSuited TestSuited @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,12 +649,18 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/JSON/testsuite/TestSuite_vs160.vcxproj.filters b/JSON/testsuite/TestSuite_vs160.vcxproj.filters index 63c1fe867..55697fba7 100644 --- a/JSON/testsuite/TestSuite_vs160.vcxproj.filters +++ b/JSON/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {126d7684-49e5-4909-a9dc-1176033b6d11} + {10f69dac-042c-43a9-9cf4-3f123b37d2a1} - {280da5fe-ea4b-44f6-b932-648f1825cc2f} + {4ffee813-d2e4-4d56-afa3-a14a68fd514e} diff --git a/JWT/JWT_vs160.vcxproj b/JWT/JWT_vs160.vcxproj index e7413cdd4..4283486a3 100644 --- a/JWT/JWT_vs160.vcxproj +++ b/JWT/JWT_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoJWTd PocoJWTmdd PocoJWTmtd @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -249,7 +250,7 @@ ..\bin\PocoJWTd.dll true true - ..\bin\PocoJWTd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoJWTd.lib @@ -275,6 +276,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -305,7 +307,7 @@ true true - ..\lib\PocoJWTmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -337,6 +339,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -359,7 +362,7 @@ true true - ..\lib\PocoJWTmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -388,7 +391,7 @@ true true - ..\lib\PocoJWTmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -417,6 +420,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -426,7 +430,7 @@ ..\bin64\PocoJWT64d.dll true true - ..\bin64\PocoJWT64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoJWTd.lib @@ -452,6 +456,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -482,7 +487,7 @@ true true - ..\lib64\PocoJWTmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -514,6 +519,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -536,7 +542,7 @@ true true - ..\lib64\PocoJWTmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -568,6 +574,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 diff --git a/JWT/JWT_vs160.vcxproj.filters b/JWT/JWT_vs160.vcxproj.filters index a8eb3d5ef..37d07f4f6 100644 --- a/JWT/JWT_vs160.vcxproj.filters +++ b/JWT/JWT_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {d85fe858-540b-457d-8e5e-f6a160ed7ab9} + {044d5f6d-92c1-4b43-afba-6aee1bf81417} - {72ad21f5-ade9-4f75-85ac-6326ff62a53f} + {a6c59773-f3e7-4d29-82f9-ba5b1b8e55ad} diff --git a/JWT/testsuite/TestSuite_vs160.vcxproj b/JWT/testsuite/TestSuite_vs160.vcxproj index 82568be68..e5372ba86 100644 --- a/JWT/testsuite/TestSuite_vs160.vcxproj +++ b/JWT/testsuite/TestSuite_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TestSuite {96CF3103-E49E-3F5E-A11D-6DBCDA043053} TestSuite @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 TestSuited TestSuited TestSuited @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,18 +649,28 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/JWT/testsuite/TestSuite_vs160.vcxproj.filters b/JWT/testsuite/TestSuite_vs160.vcxproj.filters index 2c3162e03..71aaac4e5 100644 --- a/JWT/testsuite/TestSuite_vs160.vcxproj.filters +++ b/JWT/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {3838ccc8-cb0d-4de8-b2cf-e5ed5039620b} + {3265aff2-ccb6-4d32-82f0-e03249251271} - {8af36a88-0470-457c-8a12-a3eb989cac3c} + {9165f827-bdbc-407e-bdca-a4c1e6001e3c} diff --git a/MongoDB/MongoDB_vs160.vcxproj b/MongoDB/MongoDB_vs160.vcxproj index e9c59eec7..fe418938a 100644 --- a/MongoDB/MongoDB_vs160.vcxproj +++ b/MongoDB/MongoDB_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoMongoDBd PocoMongoDBmdd PocoMongoDBmtd @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -249,7 +250,7 @@ ..\bin\PocoMongoDBd.dll true true - ..\bin\PocoMongoDBd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoMongoDBd.lib @@ -275,6 +276,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -305,7 +307,7 @@ true true - ..\lib\PocoMongoDBmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -337,6 +339,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -359,7 +362,7 @@ true true - ..\lib\PocoMongoDBmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -388,7 +391,7 @@ true true - ..\lib\PocoMongoDBmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -417,6 +420,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -426,7 +430,7 @@ ..\bin64\PocoMongoDB64d.dll true true - ..\bin64\PocoMongoDB64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoMongoDBd.lib @@ -452,6 +456,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -482,7 +487,7 @@ true true - ..\lib64\PocoMongoDBmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -514,6 +519,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -536,7 +542,7 @@ true true - ..\lib64\PocoMongoDBmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -568,6 +574,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 diff --git a/MongoDB/MongoDB_vs160.vcxproj.filters b/MongoDB/MongoDB_vs160.vcxproj.filters index 975fd79cb..5603a8d69 100644 --- a/MongoDB/MongoDB_vs160.vcxproj.filters +++ b/MongoDB/MongoDB_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {fee64320-b7d4-4848-af58-024236e8152a} + {f0921de7-217a-49ae-b2cb-69837f059462} - {55eff4b2-68f6-4297-898b-ee3a0106701c} + {36075a44-87d3-470d-91b2-cc3024a1dd2c} diff --git a/MongoDB/samples/SQLToMongo/SQLToMongo_vs160.vcxproj b/MongoDB/samples/SQLToMongo/SQLToMongo_vs160.vcxproj index 208f1857b..fc0aa1726 100644 --- a/MongoDB/samples/SQLToMongo/SQLToMongo_vs160.vcxproj +++ b/MongoDB/samples/SQLToMongo/SQLToMongo_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 SQLToMongo {638D0833-8E84-3A67-BD00-4611F99E65AF} SQLToMongo @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 SQLToMongod SQLToMongod SQLToMongod @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\SQLToMongod.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\SQLToMongod.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\SQLToMongod.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\SQLToMongod.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\SQLToMongod.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\SQLToMongod.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/MongoDB/samples/SQLToMongo/SQLToMongo_vs160.vcxproj.filters b/MongoDB/samples/SQLToMongo/SQLToMongo_vs160.vcxproj.filters index 8b6acd75a..81d18b37b 100644 --- a/MongoDB/samples/SQLToMongo/SQLToMongo_vs160.vcxproj.filters +++ b/MongoDB/samples/SQLToMongo/SQLToMongo_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {79ec692d-0727-4988-ac67-64d180094ea6} + {c05166b4-d886-4e70-98d1-59664effbfa7} - {2a4d5d19-dcde-4aec-9537-7fe6f77c9381} + {13a64cd0-fac1-4a78-8bd6-2d88d9b4e61c} diff --git a/MongoDB/testsuite/TestSuite_vs160.vcxproj b/MongoDB/testsuite/TestSuite_vs160.vcxproj index 4ffc58d61..adcc23ef5 100644 --- a/MongoDB/testsuite/TestSuite_vs160.vcxproj +++ b/MongoDB/testsuite/TestSuite_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TestSuite {96CF3103-E49E-3F5E-A11D-6DBCDA043053} TestSuite @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 TestSuited TestSuited TestSuited @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,15 +649,18 @@ true + stdcpp17 + stdc11 true - - - true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/MongoDB/testsuite/TestSuite_vs160.vcxproj.filters b/MongoDB/testsuite/TestSuite_vs160.vcxproj.filters index 9bb473050..477e20591 100644 --- a/MongoDB/testsuite/TestSuite_vs160.vcxproj.filters +++ b/MongoDB/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {069413b5-4c2d-4dc8-a59d-769df94f4119} + {9b2d31e1-9118-4042-b864-90c6fed19a68} - {66d016d4-8f2a-453b-b5bf-483f32dee7e8} + {8b58dc5c-f28a-4321-be77-5683a050cfdd} diff --git a/Net/Net_vs160.vcxproj b/Net/Net_vs160.vcxproj index da3cd636e..775500d31 100644 --- a/Net/Net_vs160.vcxproj +++ b/Net/Net_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoNetd PocoNetmdd PocoNetmtd @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -250,7 +251,7 @@ ..\bin\PocoNetd.dll true true - ..\bin\PocoNetd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoNetd.lib @@ -276,6 +277,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -307,7 +309,7 @@ true true - ..\lib\PocoNetmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -339,6 +341,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -361,7 +364,7 @@ true true - ..\lib\PocoNetmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -390,7 +393,7 @@ true true - ..\lib\PocoNetmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -420,6 +423,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -430,7 +434,7 @@ ..\bin64\PocoNet64d.dll true true - ..\bin64\PocoNet64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoNetd.lib @@ -456,6 +460,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -487,7 +492,7 @@ true true - ..\lib64\PocoNetmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -519,6 +524,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -541,7 +547,7 @@ true true - ..\lib64\PocoNetmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -573,6 +579,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 diff --git a/Net/Net_vs160.vcxproj.filters b/Net/Net_vs160.vcxproj.filters index 874e08170..355ed2863 100644 --- a/Net/Net_vs160.vcxproj.filters +++ b/Net/Net_vs160.vcxproj.filters @@ -2,166 +2,166 @@ - {1fcf95cc-188a-41b8-b24e-794397285fa5} + {6586007c-ca3f-4f39-b0e7-4693fc952fab} - {2d882d99-e40a-4396-9cce-4f8aaf342e1e} + {547b1423-5e32-4001-a630-af236d1d3655} - {eb1dcb08-be2b-41fd-96e4-acb942c6b460} + {2c3ec25b-78cb-491f-8bf2-c01f8b82e119} - {b2d363d9-43eb-4ba1-8f72-875e7bab5a05} + {30e726ad-65cf-4ab0-8e9e-37711c75ea45} - {9aa6756c-2b5a-4ea2-9633-a5c9cba8c8b4} + {c946519a-2221-4333-b74f-3996d0902258} - {0da8dac7-4b24-4bc2-b5b2-d1553f8e7ecf} + {23e8dc14-00b0-4539-a047-95ebd609683d} - {942984c9-ebfb-4502-962c-e3f3d9ea58b9} + {1b750747-fb28-4f7b-bfcb-4db73b0d76ed} - {06a33e9b-deb2-4d14-90b7-9d9666b0a272} + {7c21e22f-fd5b-4ef3-807c-4693d84ff0db} - {32a3e3bf-c789-4a0b-9f73-18aedb8fcfcf} + {bd0ccfa7-6333-4efd-8c76-62da58325c47} - {78ce2f83-3c7d-4176-a2df-5013a0a4536c} + {b00ba381-9922-433e-b2dd-24830cd52443} - {48900136-77ed-415f-80cb-300f3ce80003} + {ef4fa3dc-d7f9-4b99-864f-2d91e4a4eaa0} - {25c7566e-a315-4156-aa84-b8a8893f08f2} + {2284cb87-011e-47d4-a999-c45acfbe8787} - {d1e068f9-546d-4fb4-892a-263881b22596} + {d0b198a4-0654-4118-bcb6-9ebb86e6cb83} - {ba666f1f-8ad2-48de-ac58-3f5880b21714} + {266c8f68-8372-4046-88db-917e0f291b2d} - {53795782-82d9-42ea-acf2-a08119553b06} + {93264c0a-e4c9-4f3e-8bad-f93932a9a760} - {eb3bd24c-7aa0-4042-b39b-38d5f01bdc26} + {fa927c98-db31-42a0-ad56-8a57a9e77e4e} - {65f48f86-912c-4488-97f8-4b32ccab8c79} + {468cba2a-2b1d-43b1-8a43-e6de730fd8b2} - {1a37f639-f157-47c9-b9e0-c183d8357de4} + {d1be417b-1f0c-40c0-ac02-dabd8d1f1219} - {625137c0-82a0-47ca-8a55-3eecc61bea1f} + {93895a4f-fd23-47c0-8dfa-5768a938dc6c} - {11d91a05-5e11-40f5-b5c8-ad3df84635fb} + {6eac7515-7fb4-4bdd-9a78-da0f74fb832e} - {bdccdf62-dce5-4c46-9f80-4596b114dac0} + {5fb12433-84f9-4197-b8e2-89fa79a235c1} - {fd75ab60-4cbf-4e43-a00f-8c8cdea685ee} + {3ed299f7-ad22-4b0a-8f56-d55e915f22b6} - {b7f79795-fbb2-439c-8def-64a7e46bb178} + {a8e7f394-c278-4af4-950c-4afcf29abf80} - {0e97c997-43f7-4a8b-8d53-5b0d52e7eb41} + {f193812c-3e8a-4be5-ae11-e9a0795f3be4} - {a79f4ef5-ac12-4b7c-9c4a-2d73304bdda9} + {0246692c-4842-4999-b34b-69b01408b6c4} - {e16e91d6-4224-484d-95c9-2ad57ca40b79} + {703afbda-41f3-4f00-a7c2-b6e9c9aca1b4} - {78a9eae0-54b2-449c-81dd-9fd5a16cd1e2} + {0a90ed52-3eaa-41a0-912c-9657558be145} - {84903cb4-9a9a-4255-bd80-49422998b2c8} + {da54b91d-e830-479c-b9c4-a4351c5318fe} - {47b04c1d-6327-4cc8-840f-3eb9072b2a12} + {31dd5b2d-90d2-4b81-a25d-56b09fe975d3} - {ce3da7d9-0751-42cb-be8f-57c11d6fbfc4} + {0a262473-922a-4008-8af3-e7a08410574e} - {9753e648-5ee9-4146-b77f-0e459591324d} + {29164446-693d-4311-82cd-f562ae4c7c85} - {0a93dffd-8c4a-4edb-abb8-a524b9cb40dd} + {38968f5a-123d-41bc-b946-9f70c4234101} - {21410110-b4d6-4520-a6c4-e4bbf960ec04} + {c02b32a6-3d5e-47a9-978c-aeb8d2e4a6b2} - {11fbb0f9-2587-4c5b-a898-507e0897d3da} + {b215a7b1-023a-4e6e-bc96-9efcd29450fc} - {8b1825fa-f807-4a18-92bc-9660c33680fb} + {31ecbbc8-2926-48c0-8c6a-4d999a215c71} - {6116ecaa-8f26-48db-8c24-53d7b8d36b40} + {05af34dc-aead-4fa3-b2fe-3af120f3315b} - {b0fd619d-3464-4781-a280-f857f8041ac0} + {d2774370-b567-456c-96e6-bd112abd5f92} - {a6fea55d-728d-4a7a-b633-a51157180418} + {bfec6508-1e91-4988-a4f7-0319076f79ef} - {2d28d83b-b58b-41be-832b-e530fdf971e7} + {35922673-1923-4fce-a598-106d22fadae6} - {046f821c-907e-4a8f-a03c-3bfd7872448c} + {c79ecd0c-401c-4f03-a374-8bee20bc5749} - {3923d4a4-5c4c-4a2e-adf0-7ec7eef2dd03} + {a4967cc4-a1cc-4447-b008-71f7545c57f9} - {656a3621-b2f5-45b1-b775-faa1a3b67fc9} + {f4cb442a-c76e-4af4-b848-cf889f1da3c7} - {0546832e-b113-458f-9db9-3db9e82fbb41} + {ed6c0de8-11ad-4bd6-a8be-698fccd9058d} - {d49b1cd1-508e-4479-ab85-a5ff79a4a8c7} + {cf1cf3f6-5cad-4813-ac18-07234e1e7d21} - {b610e037-00fd-4b22-b123-edbd7381029c} + {2ca60ef4-2aec-4590-8f8f-96b888d14700} - {015e1e81-4e41-49e3-98c0-fbdbd8b5cbd2} + {a1455a31-9406-46f8-9178-2ffcb70e9a85} - {f68ec3df-519c-4f17-ba65-94eb081a3828} + {46da8814-e0d8-4281-9ef3-9ebbdebc2205} - {a567ae0c-641a-4a56-8161-f8404caab345} + {688005cc-583b-43d9-99b8-c72729046ab3} - {61c54ff0-49c4-4fb9-9f7c-1f2f3e8bb753} + {d1477907-8069-4477-8700-0236b48f972a} - {17cd6d4d-6687-40ca-9dac-d36110efcf64} + {07a6fba2-ca4e-4e26-839d-a9000190b95c} - {2cf2bb9e-c4f6-4aec-8404-a792b1c5674f} + {7496c44f-1b9a-4b4a-aab5-121f27d8d173} - {f5f349da-4441-4f01-9e2c-ee774168e0e3} + {61e1e9d1-e066-4553-a24f-73b81c6c68ef} - {0ea8ee82-a76c-4cfd-ad4e-4d570efc8b09} + {a0624a14-a94b-4a04-beef-04c407cc3854} - {0cfa6ff4-ffbf-4b4a-ba62-6451832772f3} + {de8dae17-8c06-4b5b-aa00-46c9ded50bec} diff --git a/Net/samples/EchoServer/EchoServer_vs160.vcxproj b/Net/samples/EchoServer/EchoServer_vs160.vcxproj index 105bdf17c..694330c41 100644 --- a/Net/samples/EchoServer/EchoServer_vs160.vcxproj +++ b/Net/samples/EchoServer/EchoServer_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 EchoServer {5074CE3E-05F5-31BA-BA79-1AD54C3416F7} EchoServer @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 EchoServerd EchoServerd EchoServerd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\EchoServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\EchoServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\EchoServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\EchoServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\EchoServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\EchoServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -603,6 +652,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/EchoServer/EchoServer_vs160.vcxproj.filters b/Net/samples/EchoServer/EchoServer_vs160.vcxproj.filters index f90036036..821f76d7a 100644 --- a/Net/samples/EchoServer/EchoServer_vs160.vcxproj.filters +++ b/Net/samples/EchoServer/EchoServer_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {08698060-b275-4025-82ff-e5239bbec8e5} + {f8ec6c33-55b8-4c41-abea-1331fa246eba} - {0e8d9ff7-97c3-4f74-88a7-d388fc75c624} + {854255f5-31d9-4821-a308-2fc436fadd12} diff --git a/Net/samples/HTTPFormServer/HTTPFormServer_vs160.vcxproj b/Net/samples/HTTPFormServer/HTTPFormServer_vs160.vcxproj index 1fa269802..b04a9c1d0 100644 --- a/Net/samples/HTTPFormServer/HTTPFormServer_vs160.vcxproj +++ b/Net/samples/HTTPFormServer/HTTPFormServer_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 HTTPFormServer {19B162EB-DDAA-37BA-AE93-7FDED89274DE} HTTPFormServer @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 HTTPFormServerd HTTPFormServerd HTTPFormServerd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\HTTPFormServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\HTTPFormServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\HTTPFormServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\HTTPFormServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\HTTPFormServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\HTTPFormServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -603,6 +652,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/HTTPFormServer/HTTPFormServer_vs160.vcxproj.filters b/Net/samples/HTTPFormServer/HTTPFormServer_vs160.vcxproj.filters index 4e0fd1928..06282f1bf 100644 --- a/Net/samples/HTTPFormServer/HTTPFormServer_vs160.vcxproj.filters +++ b/Net/samples/HTTPFormServer/HTTPFormServer_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {93702a97-3813-4a02-8c2c-7bf1f81dd0ee} + {28d9ec32-2303-45cd-9b82-99d8e82d114a} - {bd44615c-d51b-49f7-8253-0593838cdf70} + {7b664366-4efd-4f61-8e9a-d3402e5f9151} diff --git a/Net/samples/HTTPLoadTest/HTTPLoadTest_vs160.vcxproj b/Net/samples/HTTPLoadTest/HTTPLoadTest_vs160.vcxproj index 056f88a0a..188b66305 100644 --- a/Net/samples/HTTPLoadTest/HTTPLoadTest_vs160.vcxproj +++ b/Net/samples/HTTPLoadTest/HTTPLoadTest_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 HTTPLoadTest {A140D236-D64B-370A-A7E7-3000725D9869} HTTPLoadTest @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 HTTPLoadTestd HTTPLoadTestd HTTPLoadTestd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\HTTPLoadTestd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\HTTPLoadTestd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\HTTPLoadTestd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\HTTPLoadTestd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\HTTPLoadTestd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\HTTPLoadTestd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/HTTPLoadTest/HTTPLoadTest_vs160.vcxproj.filters b/Net/samples/HTTPLoadTest/HTTPLoadTest_vs160.vcxproj.filters index b87e8e1c0..fca88fd57 100644 --- a/Net/samples/HTTPLoadTest/HTTPLoadTest_vs160.vcxproj.filters +++ b/Net/samples/HTTPLoadTest/HTTPLoadTest_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {2dfa4964-0aca-4fa7-bb80-44d442b196ce} + {03b3bbaf-68d9-4642-b816-5aecd2346517} diff --git a/Net/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj b/Net/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj index 4f9d430a6..339b8a6c0 100644 --- a/Net/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj +++ b/Net/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 HTTPTimeServer {18A0143A-444A-38E3-838C-1ACFBE4EE18C} HTTPTimeServer @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 HTTPTimeServerd HTTPTimeServerd HTTPTimeServerd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -603,6 +652,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj.filters b/Net/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj.filters index e57f8f012..5ca7aef49 100644 --- a/Net/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj.filters +++ b/Net/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {aad7f6cc-6d6c-4c52-885e-ed66f29b8c3d} + {f15659cc-e7e0-4f06-84e4-d2e78640f40a} - {9a60f0db-16ac-4654-b235-e7edab7b9027} + {fdd11454-e1d0-4044-a596-7998c65f4581} diff --git a/Net/samples/Mail/Mail_vs160.vcxproj b/Net/samples/Mail/Mail_vs160.vcxproj index a0651aec1..5764ddf29 100644 --- a/Net/samples/Mail/Mail_vs160.vcxproj +++ b/Net/samples/Mail/Mail_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 Mail {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA} Mail @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 Maild Maild Maild @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/Mail/Mail_vs160.vcxproj.filters b/Net/samples/Mail/Mail_vs160.vcxproj.filters index f7eeb4519..9ae8fa154 100644 --- a/Net/samples/Mail/Mail_vs160.vcxproj.filters +++ b/Net/samples/Mail/Mail_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {6f539781-c6d9-4fa9-80f6-55102aa077c4} + {32ea00e5-48d2-4cf3-873a-cb3473cb873f} diff --git a/Net/samples/Ping/Ping_vs160.vcxproj b/Net/samples/Ping/Ping_vs160.vcxproj index 88bbda835..99c9e0759 100644 --- a/Net/samples/Ping/Ping_vs160.vcxproj +++ b/Net/samples/Ping/Ping_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 Ping {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5} Ping @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 Pingd Pingd Pingd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Pingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Pingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Pingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Pingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Pingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Pingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -603,6 +652,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/Ping/Ping_vs160.vcxproj.filters b/Net/samples/Ping/Ping_vs160.vcxproj.filters index 19d80ad3d..f96f94dc4 100644 --- a/Net/samples/Ping/Ping_vs160.vcxproj.filters +++ b/Net/samples/Ping/Ping_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {036f25a1-997e-4ff8-a1e6-10f34393ab84} + {9e79747a-4765-4a08-8a8c-a807b440a4bd} - {77b52943-6e46-4bc3-9c37-fe25ca2352bd} + {4debcd31-cc79-4aad-a363-5ab92c651b86} diff --git a/Net/samples/SMTPLogger/SMTPLogger_vs160.vcxproj b/Net/samples/SMTPLogger/SMTPLogger_vs160.vcxproj index 8397142fd..ad2a5b584 100644 --- a/Net/samples/SMTPLogger/SMTPLogger_vs160.vcxproj +++ b/Net/samples/SMTPLogger/SMTPLogger_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 SMTPLogger {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF} SMTPLogger @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 SMTPLoggerd SMTPLoggerd SMTPLoggerd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\SMTPLoggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\SMTPLoggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\SMTPLoggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\SMTPLoggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\SMTPLoggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\SMTPLoggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/SMTPLogger/SMTPLogger_vs160.vcxproj.filters b/Net/samples/SMTPLogger/SMTPLogger_vs160.vcxproj.filters index f28cc84cf..e429d2202 100644 --- a/Net/samples/SMTPLogger/SMTPLogger_vs160.vcxproj.filters +++ b/Net/samples/SMTPLogger/SMTPLogger_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {4bb40fa4-84f8-4b8f-9ebf-f3fc44fe548c} + {31dd20ff-dada-4133-83ea-18077e42ad51} diff --git a/Net/samples/TimeServer/TimeServer_vs160.vcxproj b/Net/samples/TimeServer/TimeServer_vs160.vcxproj index dd54bdedb..71390573d 100644 --- a/Net/samples/TimeServer/TimeServer_vs160.vcxproj +++ b/Net/samples/TimeServer/TimeServer_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TimeServer {59EDFD20-9968-30F7-9532-44C08DA58C6E} TimeServer @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 TimeServerd TimeServerd TimeServerd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/TimeServer/TimeServer_vs160.vcxproj.filters b/Net/samples/TimeServer/TimeServer_vs160.vcxproj.filters index 73d67e6df..ecc57f901 100644 --- a/Net/samples/TimeServer/TimeServer_vs160.vcxproj.filters +++ b/Net/samples/TimeServer/TimeServer_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {10c8bf4e-a3e8-433e-bdb0-9484a1b89a50} + {d0dfb7c6-c519-4fac-ae8d-e755125276ce} - {1e050e87-6535-4f44-b7cc-150fdcdfcdff} + {5494fc19-b6f8-4590-a41e-e26a9314f302} diff --git a/Net/samples/WebSocketServer/WebSocketServer_vs160.vcxproj b/Net/samples/WebSocketServer/WebSocketServer_vs160.vcxproj index 32453da47..f1d9e83ce 100644 --- a/Net/samples/WebSocketServer/WebSocketServer_vs160.vcxproj +++ b/Net/samples/WebSocketServer/WebSocketServer_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 WebSocketServer {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C} WebSocketServer @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 WebSocketServerd WebSocketServerd WebSocketServerd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\WebSocketServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\WebSocketServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\WebSocketServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\WebSocketServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\WebSocketServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\WebSocketServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/WebSocketServer/WebSocketServer_vs160.vcxproj.filters b/Net/samples/WebSocketServer/WebSocketServer_vs160.vcxproj.filters index a51fe339d..7bdb3f034 100644 --- a/Net/samples/WebSocketServer/WebSocketServer_vs160.vcxproj.filters +++ b/Net/samples/WebSocketServer/WebSocketServer_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {74be8a0e-683c-418b-ab29-0b52b83dc5d3} + {16bc7bb6-cdcb-4cbd-83da-1e265fb8bc61} diff --git a/Net/samples/dict/dict_vs160.vcxproj b/Net/samples/dict/dict_vs160.vcxproj index 63dabfa59..f0b438c6b 100644 --- a/Net/samples/dict/dict_vs160.vcxproj +++ b/Net/samples/dict/dict_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 dict {90F24341-F59F-385F-A8D6-66AB377FF033} dict @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 dictd dictd dictd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\dictd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\dictd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\dictd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\dictd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\dictd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\dictd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/dict/dict_vs160.vcxproj.filters b/Net/samples/dict/dict_vs160.vcxproj.filters index bf2121cd7..022307233 100644 --- a/Net/samples/dict/dict_vs160.vcxproj.filters +++ b/Net/samples/dict/dict_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {103c9662-6e01-4c44-9a5a-db9c6fd207ba} + {9b62a9a4-e309-4c35-b45d-2437a9930f07} diff --git a/Net/samples/download/download_vs160.vcxproj b/Net/samples/download/download_vs160.vcxproj index 041b7e1a9..b4e2a8240 100644 --- a/Net/samples/download/download_vs160.vcxproj +++ b/Net/samples/download/download_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 download {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D} download @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 downloadd downloadd downloadd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/download/download_vs160.vcxproj.filters b/Net/samples/download/download_vs160.vcxproj.filters index 2f419fa74..7ecb89d82 100644 --- a/Net/samples/download/download_vs160.vcxproj.filters +++ b/Net/samples/download/download_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {84edd3dc-0a56-40cf-8dda-4619b8809c14} + {9f42ff18-153a-47b2-855d-138b270b1c04} diff --git a/Net/samples/httpget/httpget_vs160.vcxproj b/Net/samples/httpget/httpget_vs160.vcxproj index 00989bcee..3a5aada23 100644 --- a/Net/samples/httpget/httpget_vs160.vcxproj +++ b/Net/samples/httpget/httpget_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 httpget {5A299876-BF4E-37B9-922D-4E6FC1FA9520} httpget @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 httpgetd httpgetd httpgetd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\httpgetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\httpgetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\httpgetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\httpgetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\httpgetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\httpgetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/httpget/httpget_vs160.vcxproj.filters b/Net/samples/httpget/httpget_vs160.vcxproj.filters index d46e99856..96549e8f0 100644 --- a/Net/samples/httpget/httpget_vs160.vcxproj.filters +++ b/Net/samples/httpget/httpget_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {95b1c904-a9cf-4cf5-956b-d2caddbc2acf} + {64725bc7-615b-47a3-bf78-af641c1f330c} diff --git a/Net/samples/ifconfig/ifconfig_vs160.vcxproj b/Net/samples/ifconfig/ifconfig_vs160.vcxproj index 640713eb6..a530add4b 100644 --- a/Net/samples/ifconfig/ifconfig_vs160.vcxproj +++ b/Net/samples/ifconfig/ifconfig_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 ifconfig {BD3A18C6-22B6-3B10-913B-7A84D1845CA3} ifconfig @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 ifconfigd ifconfigd ifconfigd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\ifconfigd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\ifconfigd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\ifconfigd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\ifconfigd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\ifconfigd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\ifconfigd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/ifconfig/ifconfig_vs160.vcxproj.filters b/Net/samples/ifconfig/ifconfig_vs160.vcxproj.filters index 687f024f6..a5ca393af 100644 --- a/Net/samples/ifconfig/ifconfig_vs160.vcxproj.filters +++ b/Net/samples/ifconfig/ifconfig_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {03678eab-5223-41af-bbc6-76b5098b6a05} + {accc2194-d9ba-4f85-a4eb-f0eb38519788} diff --git a/Net/samples/tcpserver/tcpserver_vs160.vcxproj b/Net/samples/tcpserver/tcpserver_vs160.vcxproj index 85fc3c4a4..a192f4a47 100644 --- a/Net/samples/tcpserver/tcpserver_vs160.vcxproj +++ b/Net/samples/tcpserver/tcpserver_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 tcpserver {62C6ABC1-F799-3071-A78E-532630841583} tcpserver @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 tcpserverd tcpserverd tcpserverd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\tcpserverd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\tcpserverd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\tcpserverd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\tcpserverd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\tcpserverd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\tcpserverd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/tcpserver/tcpserver_vs160.vcxproj.filters b/Net/samples/tcpserver/tcpserver_vs160.vcxproj.filters index dc472082a..97f1d2288 100644 --- a/Net/samples/tcpserver/tcpserver_vs160.vcxproj.filters +++ b/Net/samples/tcpserver/tcpserver_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {24c54622-f801-4963-877d-c72dd9add036} + {164d520e-cdd7-413e-b2f9-c579844a159e} diff --git a/Net/testsuite/TestSuite_vs160.vcxproj b/Net/testsuite/TestSuite_vs160.vcxproj index 5db41bb88..f81c42c9d 100644 --- a/Net/testsuite/TestSuite_vs160.vcxproj +++ b/Net/testsuite/TestSuite_vs160.vcxproj @@ -1,5 +1,5 @@ - - + + debug_shared @@ -51,115 +51,126 @@ + 17.0 TestSuite {D5EFBF27-B934-4B8D-8AE5-6EC00374819C} TestSuite Win32Proj - 10.0 - + Application - v142 MultiByte + v142 Application - v142 MultiByte + v142 Application - v142 MultiByte + v142 Application - v142 MultiByte + v142 Application - v142 MultiByte + v142 Application - v142 MultiByte + v142 Application - v142 MultiByte + v142 Application - v142 MultiByte + v142 Application - v142 MultiByte + v142 Application - v142 MultiByte + v142 Application - v142 MultiByte + v142 Application - v142 MultiByte + v142 - - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - <_ProjectFileVersion>16.0.32602.291 + <_ProjectFileVersion>17.0.34511.75 + TestSuited + TestSuited + TestSuited + TestSuite + TestSuite + TestSuite + TestSuited + TestSuited + TestSuited + TestSuite + TestSuite + TestSuite bin\ @@ -195,7 +206,6 @@ bin64\ obj64\TestSuite\$(Configuration)\ true - $(ProjectName)d bin64\ @@ -206,7 +216,6 @@ bin64\static_mt\ obj64\TestSuite\$(Configuration)\ true - $(ProjectName)d bin64\static_mt\ @@ -217,7 +226,6 @@ bin64\static_md\ obj64\TestSuite\$(Configuration)\ true - $(ProjectName)d bin64\static_md\ @@ -236,11 +244,15 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -248,7 +260,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -268,11 +280,15 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -297,11 +313,15 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -309,7 +329,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -329,11 +349,15 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -358,11 +382,15 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -370,7 +398,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -390,11 +418,15 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -419,11 +451,15 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -431,7 +467,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -451,11 +487,15 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -480,11 +520,15 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -492,7 +536,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -512,11 +556,15 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -541,11 +589,15 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -553,7 +605,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -573,11 +625,15 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -591,143 +647,410 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + - - - - \ No newline at end of file + + + diff --git a/Net/testsuite/TestSuite_vs160.vcxproj.filters b/Net/testsuite/TestSuite_vs160.vcxproj.filters index fe97098c4..b58d733ca 100644 --- a/Net/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Net/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,172 +2,172 @@ - {5dbf52e2-36b3-4227-bdfc-313e4c904adc} + {bd6cfc50-4c83-49ae-abf8-bec79ce2054b} - {58ab66cd-dbbe-4e72-93f8-6efefe8f3995} + {9eeb4f90-1340-4764-b570-51072e4d1f5f} - {b6a24e46-eb3d-4436-b7b6-4fe5873d4fd0} + {f2ac3b65-63f7-4bde-9b02-3f7eac34753f} - {eee07f06-f40a-4d2b-90ee-28f693cc0dff} + {7afa4bbb-97da-4b01-8878-b2202dd2e114} - {f31edf18-4407-4e08-aa97-8dc117ef9c91} + {171910d5-caaf-4017-a6b9-90d5ddc76992} - {aae585db-82e2-4111-8b20-e7b35a96c904} + {35f72121-8e88-4440-bbe0-f0dc1b6595aa} - {6d1f01b7-6aa6-4297-a304-1b2564620b53} + {b81b7070-3c7e-494f-9f72-c9900e6fda58} - {97a2650f-435a-4293-bfde-6fdae1251e05} + {8206dc89-e9ac-454a-ae42-ae2199b27367} - {544c7b99-bea0-409e-970e-5cd4d7cb8b78} + {0a3f1ad0-860b-40d6-96d7-148ad8f81dc6} - {cd90a289-8d18-40ee-8a7e-85184fe5cf1c} + {33400132-1345-4b89-8b6c-7225ef34e9cb} - {fc005db9-81d8-4b28-98d3-bbd6acc497b3} + {19de33b0-9aeb-4007-8025-76380bf94a17} - {9a67a4bf-571c-41cc-a611-de9d6cc397f3} + {87a51413-9ae6-4def-b166-03b3a21a7b77} - {3cd09893-9446-4981-8413-9f70611e6f72} + {04a68fc1-cf40-43f5-83bf-099697c63412} - {f6d55c6d-3b92-47de-8f77-ad154548ec09} + {a14a3a81-13af-47ad-8e9d-9c9685675e23} - {ce179bde-8991-45ea-86b7-e229230cdebb} + {a26f1a12-cfc1-4586-8385-274d377fe7cc} - {fbc550e6-b854-4257-be7b-cf4f02cc31ae} + {d5f8fc72-a230-49f6-8f33-5d2064f5894d} - {89ffa61e-c01e-4c15-9da8-58fb4fe362f1} + {e2e9b50a-5928-4b0c-b7bb-a4eaa7e890d9} - {0a9fd4be-af13-49b1-b892-205c93523ead} + {63a73f18-2a88-40fc-bb4b-de6205d2dc2f} - {2e2f50ee-e05e-4b6e-b591-ad83996d2dfb} + {3ef1f3b4-2c07-410e-96e1-905b5d887aa5} - {09e946ef-06a5-44c9-a73f-de3b695bbc72} + {02430fad-49f1-477c-ba36-666e2398a8db} - {4ef2273d-2d80-442b-bdbe-5dd047fae2c7} + {7fb352ae-6469-4d38-87ec-2af60b59ca68} - {2207492d-3e67-45f6-944f-0be8c7efbd15} + {acd61cd0-993f-4754-b7c8-ad706875c043} - {0a8f6c27-4102-45ac-b91e-d0e5fdaa1a6d} + {aff555ac-1c12-43c8-94d0-aab38980b73f} - {aab2565e-5ffe-49a2-b625-9e618ca84ad7} + {8a10a99a-e50d-4e02-9391-7c017e29f834} - {c77e3731-e407-407c-af72-320628244900} + {8c1dbf0a-279e-4f62-9448-ee4ed3cc3033} - {d11ef2a6-c79a-4fb0-9833-f21b21bc3ebd} + {cdd3594a-b19f-459e-a6fe-4bb72f6ad528} - {898d6c2d-db0c-46dc-9ce6-201dee10b76f} + {187849b2-f4ab-4ae5-ae47-b7204fb9d02a} - {880bbec3-2850-4a37-8047-b2679330e5ec} + {744f2cee-7d79-4795-b9e2-c4d1b33b4967} - {12cf9be6-71df-48ed-98a5-c3aea1c5b269} + {a1353eab-1073-4f64-9fb0-31193a1c11ed} - {135927d4-fa42-49f1-8dec-0ec71eaca427} + {caf2d5b1-60ba-46cd-bd7d-5311c3446782} - {62676cf3-e39f-400b-a1d7-52881e8105c0} + {5e1486e3-6a43-4161-b03f-ee66e5f82052} - {3511a634-fa99-4892-b4e2-7547c842d934} + {2be4b99c-9437-4ab5-8add-517f3f0757cd} - {04d2b390-eb35-4a00-8d91-866e807e7086} + {ac8bae8a-9cf6-4b4d-a817-5c52329a6bb8} - {69bf1aea-2f85-4cec-be08-1e5977368372} + {28d53b0f-f515-4b6d-8c07-dc4fdf5e8c64} - {46cbecec-83dc-4625-8091-61403d9ac93e} + {04b20043-9298-44cb-8e5b-8ed139f2a4e3} - {457a32db-452d-4687-af86-1706d713f84d} + {f6e81063-804a-419e-9175-eaaa0925069a} - {7000fb97-acce-4573-882e-a64413896e0d} + {5c32bf49-64f6-4ec8-a125-980e380db694} - {fa99694a-a128-4713-ad97-54430747efae} + {6e3bde09-5b1f-477b-9ebe-92b8ed2ba3ee} - {683b8298-1187-4b29-8d68-2eb626c4b626} + {edf6bbad-ae9f-481f-8415-6c6cd2f939a8} - {603d6d0c-4fc3-4919-95df-ba61733b8a55} + {ef90cb36-2fc3-4cd0-bb99-b484d3f1550b} - {a3dc0316-7858-4aa7-a509-e2b45144546a} + {136e5a16-7c71-42c3-af00-15e1d7150958} - {7c386d3e-213f-44ba-a4c9-2e8efbb18b11} + {325faf4e-e692-4baf-9f51-5dd81410a3cf} - {a116cee8-ebbc-4d58-9c9e-f4c6907e5d67} + {a9617814-8f8f-4aee-8253-d3c670329ae9} - {d51c8ca0-f358-4f10-9545-755d6fe64863} + {473f8ff9-b334-4236-934f-c726b0a6d3d6} - {a6d4b915-5f2f-46be-bea9-a38c80446035} + {5ac568d9-2b93-428f-887e-96bae19fd76d} - {55342d23-3ff9-4215-b7b5-f9df4427fc83} + {7a9efbf7-f295-4a07-87cc-3d5a033eda87} - {62bf02c3-14b1-4846-b20c-03cd34209c14} + {9b814585-1fd5-46a0-8a7c-4c6ba533867f} - {72e0e2b0-e862-4f3c-911b-b75701e2af0e} + {1b8670e8-95ea-4ff1-a929-4e28c2f5bedf} - {ccafe570-fb71-4f94-b264-559d438441a6} + {020d7a36-fb31-4c94-9f02-013675840060} - {7356f94b-bbd2-420b-82bb-531102b60423} + {247a28fd-1e50-4bf0-92c5-27b115dd0fe7} - {60fe25d9-e477-480c-8482-53d4e5dc741e} + {3b8eb65d-dc40-4ccd-92e9-71ee885ba75d} - {836ab19d-2c5c-4a5a-b12a-345b5be436ca} + {a9c4e89e-4ec6-4b27-a654-59a6d827f53a} - {ad8b86e3-5082-48ee-997e-c324ab280ab2} + {161f52c5-6610-47a0-9306-ff11019755d6} - {62b25f88-b27d-4512-aab3-a751400e70d7} + {0aa3aad0-6193-48ff-bccc-bb0a07de43e1} - {240bfb70-e011-4cb4-a0cc-84d54c20e4a0} + {b52ab757-ff3f-4d5f-9d49-08e0001fab7f} - {9cfe2823-6f90-4154-9e97-9bf7495b2479} + {54eea72d-400a-4259-bffa-4b6a711cf94a} diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj index a22ac92f9..0f2856232 100644 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj +++ b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoNetSSLd PocoNetSSLmdd PocoNetSSLmtd @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -250,7 +251,7 @@ ..\bin\PocoNetSSLd.dll true true - ..\bin\PocoNetSSLd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoNetSSLd.lib @@ -276,6 +277,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -307,7 +309,7 @@ true true - ..\lib\PocoNetSSLmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -339,6 +341,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -361,7 +364,7 @@ true true - ..\lib\PocoNetSSLmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -390,7 +393,7 @@ true true - ..\lib\PocoNetSSLmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -420,6 +423,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -430,7 +434,7 @@ ..\bin64\PocoNetSSL64d.dll true true - ..\bin64\PocoNetSSL64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoNetSSLd.lib @@ -456,6 +460,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -487,7 +492,7 @@ true true - ..\lib64\PocoNetSSLmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -519,6 +524,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -541,7 +547,7 @@ true true - ..\lib64\PocoNetSSLmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -573,6 +579,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj.filters b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj.filters index 924ded6f0..febc1f127 100644 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj.filters +++ b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj.filters @@ -2,49 +2,49 @@ - {610a5f1f-68a0-4ddf-9c35-77b28ef15e4e} + {c88f461e-3fd2-45f7-8dba-99979cfc5868} - {a4341a68-e0f2-48e7-a66e-4f79874c865e} + {702acf59-13fb-4f42-a78b-ff48bab51b4b} - {78cc6d1b-cb4c-4ce3-96e7-fc116d1a7ec7} + {efa5519e-352e-4842-98a8-ab7a1d6dccf3} - {0c6e82d8-164a-4809-a20d-94577dc9a882} + {25872691-1f49-43f7-9782-8d5357ffcdb3} - {07e9ff52-1e92-4eaf-8de1-d243188d6f63} + {9d63a04f-f366-4d71-b22f-7d3c50cc550c} - {f8deb043-cdef-44f0-af20-b75b9c8a2928} + {f80f7bf8-ae75-4b0b-a69b-d44900ad4803} - {8eb83285-e5ba-4416-9c64-67bc91b07bf1} + {4690d3bd-eb2a-47b4-b58b-8cb6497eb68c} - {f7ff56d9-9a95-45e4-bba7-52da3d1c558c} + {94bda176-50ca-4a66-8a55-64d37564ce08} - {b5e2ec2a-940a-4681-8a1a-d5053f39aba9} + {c04a7709-b33e-41de-8958-237671ae71a7} - {7ed7663a-a345-4f93-b172-8c8152c5e368} + {a7d858c5-e876-4f74-8872-b551fcf19bb9} - {5488d710-d058-4286-aeee-3540354d2111} + {42f35ca9-4d18-42f2-af75-f08b5718fee0} - {29c556b6-89e5-44b6-8dcc-b34867db82e5} + {be9b24a1-0de5-4dc1-bfb7-9e8eee817b50} - {c8fd3ca2-0dbc-4f0d-a9d0-e86ebd762cf9} + {8d183fb7-56e9-442e-b56e-ad574b390aaf} - {ed41ca52-3fb1-447f-a239-5c1abf0fc108} + {0728d812-2a21-4dde-a3c4-f6a59d625b6c} - {d9459a9e-473c-4960-b902-fc4e5c0e6c8c} + {063f6698-a66d-42ce-a613-83de51813130} diff --git a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj index 8879dbd30..e763ef0d7 100644 --- a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj +++ b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 HTTPSTimeServer {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9} HTTPSTimeServer @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 HTTPSTimeServerd HTTPSTimeServerd HTTPSTimeServerd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -603,6 +652,8 @@ true + stdcpp17 + stdc11 diff --git a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj.filters b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj.filters index 78daa8c67..e8aaba676 100644 --- a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj.filters +++ b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {81c11934-c632-46a9-83f2-a2e0b105dbc4} + {51840113-cbdf-45cf-a6ad-a06b0e75cb00} - {d8d9b072-d4fc-4a2e-940f-37df6aec18a9} + {3f00c4d1-dddb-47b1-bb5d-a8b5a9f28d8f} diff --git a/NetSSL_OpenSSL/samples/Mail/Mail_vs160.vcxproj b/NetSSL_OpenSSL/samples/Mail/Mail_vs160.vcxproj index 92a637655..ef83d66a4 100644 --- a/NetSSL_OpenSSL/samples/Mail/Mail_vs160.vcxproj +++ b/NetSSL_OpenSSL/samples/Mail/Mail_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 Mail {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA} Mail @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 Maild Maild Maild @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/NetSSL_OpenSSL/samples/Mail/Mail_vs160.vcxproj.filters b/NetSSL_OpenSSL/samples/Mail/Mail_vs160.vcxproj.filters index 20ae06260..152eeb896 100644 --- a/NetSSL_OpenSSL/samples/Mail/Mail_vs160.vcxproj.filters +++ b/NetSSL_OpenSSL/samples/Mail/Mail_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {b3d2a6cc-b0c8-4c36-acdb-d2c6d2317691} + {878ccd69-9cfe-4edb-a43e-d2960cc5ab09} diff --git a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs160.vcxproj b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs160.vcxproj index 356bc71d6..81ec57dc6 100644 --- a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs160.vcxproj +++ b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 SetSourceIP {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB} SetSourceIP @@ -157,7 +158,7 @@ - <_ProjectFileVersion>16.0.32002.118 + <_ProjectFileVersion>17.0.34511.75 SetSourceIPd SetSourceIPd SetSourceIPd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\SetSourceIPd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\SetSourceIPd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\SetSourceIPd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\SetSourceIPd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\SetSourceIPd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\SetSourceIPd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs160.vcxproj.filters b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs160.vcxproj.filters index 4d1c00ad3..8adc0ecbd 100644 --- a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs160.vcxproj.filters +++ b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {6d40089a-6d66-4e43-9309-9ed0420c5ec1} + {a83bddae-4e20-463d-8b40-b9571cc1a311} diff --git a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs160.vcxproj b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs160.vcxproj index bebba45d2..99403b4ef 100644 --- a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs160.vcxproj +++ b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TwitterClient {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E} TwitterClient @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 TwitterClientd TwitterClientd TwitterClientd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TwitterClientd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TwitterClientd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TwitterClientd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TwitterClientd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TwitterClientd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TwitterClientd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,9 +649,13 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs160.vcxproj.filters b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs160.vcxproj.filters index f5d0726a5..724e9d584 100644 --- a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs160.vcxproj.filters +++ b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {80f69e4a-48f7-41a7-a17b-700dbea80635} + {7d622e8f-1a53-4a2a-a1a3-df26e9873cc5} - {0d48008f-1af9-4b71-ae18-21e3ff3aa1ed} + {fafd3475-6a46-42c7-a36d-4220d9394845} diff --git a/NetSSL_OpenSSL/samples/download/download_vs160.vcxproj b/NetSSL_OpenSSL/samples/download/download_vs160.vcxproj index 1114752c0..9ac00db3a 100644 --- a/NetSSL_OpenSSL/samples/download/download_vs160.vcxproj +++ b/NetSSL_OpenSSL/samples/download/download_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 download {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D} download @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 downloadd downloadd downloadd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/NetSSL_OpenSSL/samples/download/download_vs160.vcxproj.filters b/NetSSL_OpenSSL/samples/download/download_vs160.vcxproj.filters index 0ab8de76e..875179bd4 100644 --- a/NetSSL_OpenSSL/samples/download/download_vs160.vcxproj.filters +++ b/NetSSL_OpenSSL/samples/download/download_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {9c59f576-6036-469d-aad0-b854ce3b5e72} + {2187b503-aa52-4294-a53d-fc099c0e2928} diff --git a/NetSSL_OpenSSL/testsuite/TestSuite_vs160.vcxproj b/NetSSL_OpenSSL/testsuite/TestSuite_vs160.vcxproj index c556a0011..0aa7fa64d 100644 --- a/NetSSL_OpenSSL/testsuite/TestSuite_vs160.vcxproj +++ b/NetSSL_OpenSSL/testsuite/TestSuite_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TestSuite {B2B88092-5BCE-4AC0-941E-88167138B4A7} TestSuite @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 TestSuited TestSuited TestSuited @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -616,48 +665,78 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/NetSSL_OpenSSL/testsuite/TestSuite_vs160.vcxproj.filters b/NetSSL_OpenSSL/testsuite/TestSuite_vs160.vcxproj.filters index d0338ead6..2e0e6f688 100644 --- a/NetSSL_OpenSSL/testsuite/TestSuite_vs160.vcxproj.filters +++ b/NetSSL_OpenSSL/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,73 +2,73 @@ - {3d8c275d-898d-4ba7-82a8-15956f876dd6} + {a1ac25db-b5dd-44b9-9b26-6c55ea17d081} - {dfdeb6fb-7755-4bc8-aad2-f0c57d4cd444} + {9df4683d-4fc6-48a6-b729-c77fd58608bb} - {d105f4d4-8c6e-4f81-9e52-edbe585a6198} + {27369ed3-bc4e-4497-9de3-657a79e63898} - {a961dcb0-a773-4fd8-bf76-47143c6e7bdd} + {cc8d4f23-e9b3-474e-867d-af059102f42b} - {13197bee-9e15-436e-9e9e-57a492a491ec} + {0f77d0ad-8565-483c-b12e-c20316869b87} - {8003e38f-00bd-4ed8-bab2-61897a705707} + {ba7e9e7b-9e27-4bf0-8ae7-a99c6354fbc9} - {45f6628f-f268-4b55-8045-9f4a460b495b} + {d86f3270-ac71-47e0-bf70-4ed08ac4b926} - {db6f4d23-4457-4d18-a456-fffcff8008bf} + {1b776f70-fea0-48ef-9f31-ecccc4ae1c5d} - {c4b2b6c1-5035-4c36-879c-f2a029c82dd5} + {16da7cc0-8451-45b5-860b-b5af4a171693} - {5b55cd6b-f15b-4980-be1c-7e00756867c2} + {741a19d1-6d5b-407c-807c-a6962ed5f099} - {e6e773be-05b7-4469-b8c0-0d1c02ef1af3} + {5ead36bb-340a-4676-abbf-64493186569e} - {6a0e39b3-eb47-4c43-a7be-aa4ff14c68a5} + {bbc719e1-f1fc-4b82-b417-9f3427efa585} - {bf42b915-19db-4692-b49d-3896e573a7d1} + {53e5cdaf-2449-4c6c-b069-764fe950bc67} - {354f8da0-26b7-4d36-b915-a67561235b2d} + {5228f4dd-5b1b-4aac-8aae-11a56f0c912c} - {62f97349-a37a-403a-9d32-886672a6f9ac} + {8fcbc164-f8d9-4b68-8e06-18a613614ef5} - {f1a8189c-ed81-48f3-b1c6-bec5d6678f95} + {e864b7e8-df0f-4618-83fe-0f4a562896c1} - {77d7e4a1-0101-42c7-8735-cf7c3f033264} + {e6918819-4f66-42f2-8b00-2e2da48bdaa8} - {4a241e53-67d0-4462-99fa-6236a8685ef5} + {f5c56f04-07e7-443d-af48-80dfcca3a43d} - {dc8e5a3d-06bc-42e6-89aa-acc155aecb60} + {175f1249-6424-4aa5-826c-72e99f4d51b1} - {e95e2b01-d2b6-42c2-9fe3-9ff0ec26fbb6} + {87a73253-6b5d-49fb-9c8d-fe5a1b322f9f} - {3cc4affd-a6a0-41e4-a88d-68f8dcba1332} + {d0abc311-0d45-4579-9250-3cb241bc3cbe} - {407782c2-dffa-44cc-8f49-384014f68fec} + {53ec564a-9461-40aa-8611-7032bc6a2b46} - {93fa4aa6-9241-4d80-9000-9c9aa10ca383} + {bd9dc45a-244d-48ef-bc5b-729146d60d36} diff --git a/NetSSL_Win/NetSSL_Win_vs160.vcxproj b/NetSSL_Win/NetSSL_Win_vs160.vcxproj index 1b43b7382..196bccd61 100644 --- a/NetSSL_Win/NetSSL_Win_vs160.vcxproj +++ b/NetSSL_Win/NetSSL_Win_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoNetSSLWind PocoNetSSLWinmdd PocoNetSSLWinmtd @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -250,7 +251,7 @@ ..\bin\PocoNetSSLWind.dll true true - ..\bin\PocoNetSSLWind.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoNetSSLWind.lib @@ -276,6 +277,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -307,7 +309,7 @@ true true - ..\lib\PocoNetSSLWinmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -339,6 +341,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -361,7 +364,7 @@ true true - ..\lib\PocoNetSSLWinmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -390,7 +393,7 @@ true true - ..\lib\PocoNetSSLWinmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -420,6 +423,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -430,7 +434,7 @@ ..\bin64\PocoNetSSLWin64d.dll true true - ..\bin64\PocoNetSSLWin64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoNetSSLWind.lib @@ -456,6 +460,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -487,7 +492,7 @@ true true - ..\lib64\PocoNetSSLWinmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -519,6 +524,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -541,7 +547,7 @@ true true - ..\lib64\PocoNetSSLWinmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -573,6 +579,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 diff --git a/NetSSL_Win/NetSSL_Win_vs160.vcxproj.filters b/NetSSL_Win/NetSSL_Win_vs160.vcxproj.filters index 2a8408ad7..7c313f3b8 100644 --- a/NetSSL_Win/NetSSL_Win_vs160.vcxproj.filters +++ b/NetSSL_Win/NetSSL_Win_vs160.vcxproj.filters @@ -2,40 +2,40 @@ - {110f2918-a919-4da4-b31e-be4a87a446bb} + {f6522852-815f-496c-b2b4-714f5ff49464} - {4ad1c5e4-3a8d-4f43-9bf8-8e7855a24eb5} + {1e943eab-c90b-4912-9fff-18c9b8bd1d11} - {2e3e1710-5bcd-43c8-b61d-3fd8cdcc7ffd} + {c83db41f-e1d0-484a-81da-a4cd5c71b932} - {05123d85-0b35-4f00-a833-613c65ef3345} + {b712f7c3-049f-4c87-b2eb-7a714d3aff96} - {5d92651a-32fd-49db-a974-32d8e0eac658} + {ce4ded16-81ac-4db0-92a3-c043f5b71d59} - {dfb8aff5-cad3-485c-9038-e98a6075f897} + {048afc24-4781-4915-9136-e3c2a43d11c2} - {5ac52222-408c-47d7-af2f-ba6e86528d52} + {c1c7c423-914e-467c-a6ef-0f4b76a16017} - {88113371-e28c-41e6-8a58-530901f0237c} + {4d78eb26-f0a1-438c-8bb1-bfdcf7eaeb28} - {cc9fe2fc-c263-4242-b689-c0fbd4868ce2} + {07b6760d-a3f7-4702-adfa-b5e2107bbdc2} - {072785e7-95b8-4476-9083-0b344fee7383} + {e8a6f0e3-98b2-45e5-b261-132b36bf2e32} - {4f786d5b-5e84-4331-9cda-1a0c84e5a2ad} + {72711317-b304-49a5-9f97-d75292cf5d5f} - {054c947a-5999-42bf-8e65-378b2bb60b97} + {50bd574d-073f-4882-8180-a1ea461f90cc} diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj index 6316131d4..02eac4066 100644 --- a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 HTTPSTimeServer {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9} HTTPSTimeServer @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 HTTPSTimeServerd HTTPSTimeServerd HTTPSTimeServerd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -603,6 +652,8 @@ true + stdcpp17 + stdc11 diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj.filters b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj.filters index 0db50b4f1..54b83677a 100644 --- a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj.filters +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {5e1c09df-f3d2-4e18-9834-0fbcc211c63d} + {9c9fbd04-8173-407d-bfd0-82413bc01144} - {1f602723-7928-4d66-a96c-b0333ac51632} + {211cccb8-5ea0-4db2-8fc9-2572b87dd2b7} diff --git a/NetSSL_Win/samples/Mail/Mail_vs160.vcxproj b/NetSSL_Win/samples/Mail/Mail_vs160.vcxproj index aafbf672a..3e9bed6eb 100644 --- a/NetSSL_Win/samples/Mail/Mail_vs160.vcxproj +++ b/NetSSL_Win/samples/Mail/Mail_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 Mail {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA} Mail @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 Maild Maild Maild @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/NetSSL_Win/samples/Mail/Mail_vs160.vcxproj.filters b/NetSSL_Win/samples/Mail/Mail_vs160.vcxproj.filters index 7c8289a34..7ac3b59da 100644 --- a/NetSSL_Win/samples/Mail/Mail_vs160.vcxproj.filters +++ b/NetSSL_Win/samples/Mail/Mail_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {47d9dc6c-8a5c-4b70-93b3-1ae163428f57} + {7908210f-4028-4f14-a1b5-e70baa5868f4} diff --git a/NetSSL_Win/samples/download/download_vs160.vcxproj b/NetSSL_Win/samples/download/download_vs160.vcxproj index 4913048f5..f4d4909e8 100644 --- a/NetSSL_Win/samples/download/download_vs160.vcxproj +++ b/NetSSL_Win/samples/download/download_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 download {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D} download @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 downloadd downloadd downloadd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/NetSSL_Win/samples/download/download_vs160.vcxproj.filters b/NetSSL_Win/samples/download/download_vs160.vcxproj.filters index 7884fd15e..3ac1cf24f 100644 --- a/NetSSL_Win/samples/download/download_vs160.vcxproj.filters +++ b/NetSSL_Win/samples/download/download_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {b74d9a03-8da6-40bf-9e5d-1310c6c890e2} + {7971158a-bd8f-4dfa-a2f6-07e8502ae206} diff --git a/NetSSL_Win/testsuite/TestSuite_vs160.vcxproj b/NetSSL_Win/testsuite/TestSuite_vs160.vcxproj index 5d0f4de72..657ea14a4 100644 --- a/NetSSL_Win/testsuite/TestSuite_vs160.vcxproj +++ b/NetSSL_Win/testsuite/TestSuite_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TestSuite {25E8E5AB-7B9C-4A2F-A0F6-12B6C5B11F28} TestSuite @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 TestSuited TestSuited TestSuited @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -611,33 +660,53 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/NetSSL_Win/testsuite/TestSuite_vs160.vcxproj.filters b/NetSSL_Win/testsuite/TestSuite_vs160.vcxproj.filters index fc4b284dc..8b115fc9e 100644 --- a/NetSSL_Win/testsuite/TestSuite_vs160.vcxproj.filters +++ b/NetSSL_Win/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,55 +2,55 @@ - {ec80efe5-1f55-4bf9-ae6d-567b6480f4ed} + {5bbc574f-1e40-457b-9147-4d5190be7a67} - {630dccf6-5ba2-421e-89bc-9d1c17a2ac0a} + {39b28a9c-9c5d-488f-afca-ba8378d91ebb} - {25716621-4447-4c41-89b4-e31e8212f4f5} + {5747cc99-1e37-4212-b062-2e35b2d86d32} - {866a5575-b00b-46b7-9f65-7980dc2dc2ed} + {6d385ce5-4d18-4eb1-8c70-02ff584f82d7} - {49c62ee8-e0b8-4356-ae6d-985265d5bf71} + {f790aa4b-1a92-4291-b9d0-5814581664f2} - {ff4761db-b564-41fc-978d-6f34559bf283} + {ff4e0b1f-4e6f-49cc-841a-2c5153cf8937} - {dfc62472-356e-4ce3-94c1-ace9071e4390} + {305f8a8f-fae9-4a53-8cfb-2ab154c26ae3} - {379534fa-69e9-4cdc-858e-84c52c2f68e7} + {4eabc15f-0e66-4027-badb-df9b8edcc1f4} - {0a9372cd-9ae8-49af-b669-0fd009663be7} + {95e3dc6d-1380-4648-b71e-b6a360eadc2f} - {e6400a85-b3cc-4d0b-a486-3374052abcb7} + {f876807e-3906-4402-ac49-665602b3535b} - {3799451b-1d85-42fc-89c2-29e250d67abd} + {d55971e5-9d4b-417a-923a-e866e5c87c50} - {1e7fbebf-f30c-4845-9c9a-1ccf53f1a4e1} + {de2d8efa-32a4-4e5e-b251-2afc64f742ab} - {03038b61-cb8b-400a-b5db-8b52d39f6d9a} + {74cf951a-6dac-40bf-85ce-8ba9b1297038} - {e747c14a-28cd-4762-9d56-e3a68cd22bf5} + {74f4afef-32a6-442d-9af6-7d177e728295} - {3cee36e1-8366-4735-bd11-91cb54334c09} + {dc24ce9a-5c56-418c-b0a2-325cbea4358d} - {40ffd984-c895-4ac5-847b-807ca5a95061} + {d2ca1a89-c28f-4782-9d0f-471054d566ad} - {da569380-bd40-4e8d-a949-49fda76dc2af} + {cac69af8-54f4-4b0a-a58c-a15a553f2e58} diff --git a/PDF/PDF_vs160.vcxproj b/PDF/PDF_vs160.vcxproj index 7609208de..901667e7e 100644 --- a/PDF/PDF_vs160.vcxproj +++ b/PDF/PDF_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoPDFd PocoPDFmdd PocoPDFmtd @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -249,7 +250,7 @@ ..\bin\PocoPDFd.dll true true - ..\bin\PocoPDFd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoPDFd.lib @@ -275,6 +276,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -305,7 +307,7 @@ true true - ..\lib\PocoPDFmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -337,6 +339,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -359,7 +362,7 @@ true true - ..\lib\PocoPDFmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -388,7 +391,7 @@ true true - ..\lib\PocoPDFmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -417,6 +420,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -426,7 +430,7 @@ ..\bin64\PocoPDF64d.dll true true - ..\bin64\PocoPDF64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoPDFd.lib @@ -452,6 +456,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -482,7 +487,7 @@ true true - ..\lib64\PocoPDFmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -514,6 +519,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -536,7 +542,7 @@ true true - ..\lib64\PocoPDFmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -568,6 +574,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 diff --git a/PDF/PDF_vs160.vcxproj.filters b/PDF/PDF_vs160.vcxproj.filters index 1ccf3fb27..1729cc400 100644 --- a/PDF/PDF_vs160.vcxproj.filters +++ b/PDF/PDF_vs160.vcxproj.filters @@ -2,40 +2,40 @@ - {2147d344-a273-4bec-a159-0533956dde98} + {95899e94-7d3b-4dd3-81c8-20bfb7e67f5e} - {7bbb94a4-1fda-4900-b501-d4ed9a2533c5} + {f7ec7438-b34c-45b1-acf6-cf1611e34f16} - {f59ba8c9-f4a3-4fc1-ae94-91c32e70199f} + {17bd22b0-9a73-4b82-9072-2fa06005c32e} - {d7e3b737-c89a-4dfc-8fdb-900ab29633e2} + {bfeefb6f-ad48-449c-a62b-87b264be946c} - {d93d1e92-430f-4f77-ac02-96ebaef9335c} + {04103cdc-cb31-4bb5-a4ab-0b8ab5a66519} - {71386b80-87ef-4c50-bd32-b3679c240b9d} + {fff2b78a-ef20-43e3-bbe9-ef5aec277f4d} - {79bdf3d1-4ff2-4f60-9ce8-b15eaf7ee48f} + {f9eee22e-d9bb-45e6-96ba-07131b2adf9b} - {46f3823b-7efa-4c76-a8c5-956a21022fa9} + {99d02157-7f2d-449f-862e-5eed9a9637d9} - {628858eb-1e62-414d-925f-a7e699179c31} + {e9699116-6dfc-4c22-baa3-bee8029486b6} - {52347645-b512-4309-9366-78215b12fe50} + {d2fabe1e-96c8-4616-a20b-df0eb291864f} - {71f70366-43fe-442d-867e-59d2ca1bc3f8} + {81314ec9-d427-4499-9ab0-824f34e1685c} - {7293dc84-2119-4e8a-8adf-9304c9ab65a3} + {1b0effa7-2377-4ee4-9d78-3b1149969ca9} diff --git a/PDF/samples/Image/Image_vs160.vcxproj b/PDF/samples/Image/Image_vs160.vcxproj index 644742175..1fbcd437a 100644 --- a/PDF/samples/Image/Image_vs160.vcxproj +++ b/PDF/samples/Image/Image_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 Image {DA74060D-73AF-3E8F-A804-FBC960DAC393} Image @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 Imaged Imaged Imaged @@ -247,14 +248,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin\Imaged.exe ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Imaged.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -278,7 +283,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin\Image.exe @@ -306,7 +315,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -314,7 +327,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Imaged.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -338,7 +351,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -367,7 +384,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -375,7 +396,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Imaged.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -399,7 +420,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -428,14 +453,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin64\Imaged.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Imaged.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -459,7 +488,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin64\Image.exe @@ -487,7 +520,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -495,7 +532,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Imaged.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -519,7 +556,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -548,7 +589,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -556,7 +601,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Imaged.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -580,7 +625,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -596,6 +645,8 @@ true + stdcpp17 + stdc11 diff --git a/PDF/samples/Image/Image_vs160.vcxproj.filters b/PDF/samples/Image/Image_vs160.vcxproj.filters index 2fe1714a4..fbb37ef7e 100644 --- a/PDF/samples/Image/Image_vs160.vcxproj.filters +++ b/PDF/samples/Image/Image_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {ff34dd33-f75d-49c7-929b-8bca945d1968} + {1c84ccb3-628a-4553-be36-231031a60cd3} - {11bd6bb9-49a4-4d7c-8c62-8377a358058f} + {b2fc49c5-5c5a-4ac0-a098-d0873fc56d28} diff --git a/PDF/samples/Template/Template_vs160.vcxproj b/PDF/samples/Template/Template_vs160.vcxproj index 0a1f00273..46a3cba5f 100644 --- a/PDF/samples/Template/Template_vs160.vcxproj +++ b/PDF/samples/Template/Template_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 Template {27E36FB4-BDAB-3B36-910A-1F1C26853B1E} Template @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 Templated Templated Templated @@ -247,14 +248,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin\Templated.exe ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Templated.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -278,7 +283,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin\Template.exe @@ -306,7 +315,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -314,7 +327,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Templated.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -338,7 +351,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -367,7 +384,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -375,7 +396,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Templated.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -399,7 +420,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -428,14 +453,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin64\Templated.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Templated.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -459,7 +488,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin64\Template.exe @@ -487,7 +520,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -495,7 +532,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Templated.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -519,7 +556,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -548,7 +589,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -556,7 +601,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Templated.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -580,7 +625,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -596,6 +645,8 @@ true + stdcpp17 + stdc11 diff --git a/PDF/samples/Template/Template_vs160.vcxproj.filters b/PDF/samples/Template/Template_vs160.vcxproj.filters index 5931b349f..625ff68e2 100644 --- a/PDF/samples/Template/Template_vs160.vcxproj.filters +++ b/PDF/samples/Template/Template_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {ee76c12b-997f-42cd-ac88-61a110725044} + {24a96f60-aa27-45e7-bbdd-1c9cf07e400a} - {ab980590-5cae-4445-8761-adf0dc380160} + {cb33c6bc-1d52-4bdc-8cd1-fce60150b1d8} diff --git a/PDF/samples/Text/Text_vs160.vcxproj b/PDF/samples/Text/Text_vs160.vcxproj index 4c3a0fcb3..23ebcf875 100644 --- a/PDF/samples/Text/Text_vs160.vcxproj +++ b/PDF/samples/Text/Text_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 Text {0DE18C25-1694-3598-831D-4FA48D113606} Text @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 Textd Textd Textd @@ -247,14 +248,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin\Textd.exe ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Textd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -278,7 +283,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin\Text.exe @@ -306,7 +315,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -314,7 +327,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Textd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -338,7 +351,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -367,7 +384,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -375,7 +396,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Textd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -399,7 +420,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -428,14 +453,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin64\Textd.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Textd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -459,7 +488,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin64\Text.exe @@ -487,7 +520,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -495,7 +532,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Textd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -519,7 +556,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -548,7 +589,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -556,7 +601,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Textd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -580,7 +625,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -596,6 +645,8 @@ true + stdcpp17 + stdc11 diff --git a/PDF/samples/Text/Text_vs160.vcxproj.filters b/PDF/samples/Text/Text_vs160.vcxproj.filters index 9f7f1fa82..228d43823 100644 --- a/PDF/samples/Text/Text_vs160.vcxproj.filters +++ b/PDF/samples/Text/Text_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {9c204088-86b4-41b6-aa34-d155fde8ce3f} + {f41d8664-445a-4a2a-accd-3510536632f8} - {1b30b6d0-d2f8-4198-b5d5-eb42fc76fad0} + {a32900dd-d4ae-4ef9-af17-b7a74eae2284} diff --git a/PDF/testsuite/TestSuite_vs160.vcxproj b/PDF/testsuite/TestSuite_vs160.vcxproj index 8b4193e59..c75bb0d2a 100644 --- a/PDF/testsuite/TestSuite_vs160.vcxproj +++ b/PDF/testsuite/TestSuite_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TestSuite {24134877-368D-11DB-9FBC-00123FC423B5} TestSuite @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 TestSuited TestSuited TestSuited @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -604,12 +653,18 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/PDF/testsuite/TestSuite_vs160.vcxproj.filters b/PDF/testsuite/TestSuite_vs160.vcxproj.filters index 25ae33a4f..d930d2e53 100644 --- a/PDF/testsuite/TestSuite_vs160.vcxproj.filters +++ b/PDF/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,28 +2,28 @@ - {005dbd0b-c448-4e02-8e01-e860062754f7} + {7dd830c8-af6f-47a1-893c-700c55ed9651} - {193bf563-70e1-471f-af9b-88cff7948dea} + {88fa2af2-7dd8-4246-9c46-7329ac9fd854} - {2226abf3-8545-4ec2-8528-b1a33de60254} + {0548b40a-d25a-4264-b105-3ca84b5480fe} - {c3311742-fe16-420b-928b-9da8a6a653e6} + {8dbfdb1f-7018-42fb-805e-80431ae8f76a} - {68b6f542-9968-4c78-a19c-020ee97c72ca} + {19b9559a-8201-4c01-85c8-c1588bebea93} - {8774740e-52a7-4153-8f0f-52bf54ea1b4e} + {31e09b0c-3d95-407e-9403-5280e0e97abb} - {35922b97-9673-4d48-a98a-b05a427fc1f5} + {13faee22-dfb9-4d9a-9efc-a8b818006bfc} - {8c4d9e8d-43c6-4c94-b0cf-d461dee8a525} + {1cf41998-c9f6-468a-9e01-d1c48d83fb40} diff --git a/PageCompiler/File2Page/File2Page_vs160.vcxproj b/PageCompiler/File2Page/File2Page_vs160.vcxproj index 754ffc316..a0dd8d61d 100644 --- a/PageCompiler/File2Page/File2Page_vs160.vcxproj +++ b/PageCompiler/File2Page/File2Page_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 f2cpspd f2cpspd f2cpspd @@ -248,6 +248,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -259,7 +260,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\f2cpspd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -283,6 +284,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -315,6 +317,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -326,7 +329,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\f2cpspd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -350,6 +353,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -382,6 +386,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -393,7 +398,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\f2cpspd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -417,6 +422,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -449,6 +455,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -460,7 +467,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\f2cpspd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -484,6 +491,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -516,6 +524,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -527,7 +536,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\f2cpspd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -551,6 +560,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -583,6 +593,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -594,7 +605,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\f2cpspd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -618,6 +629,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 diff --git a/PageCompiler/File2Page/File2Page_vs160.vcxproj.filters b/PageCompiler/File2Page/File2Page_vs160.vcxproj.filters index 7a5799a0e..1e4421bae 100644 --- a/PageCompiler/File2Page/File2Page_vs160.vcxproj.filters +++ b/PageCompiler/File2Page/File2Page_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {f168d4ca-1dba-44c3-9812-e35699e2ac79} + {0b919fc7-d15e-486b-b980-1e5ca63fa7d1} - {e653b149-9805-4b33-96c6-113afad23d91} + {9476fc2e-02bf-41dd-8370-bbf2441eb488} diff --git a/PageCompiler/PageCompiler_vs160.vcxproj b/PageCompiler/PageCompiler_vs160.vcxproj index 969fe74df..ff504e39b 100644 --- a/PageCompiler/PageCompiler_vs160.vcxproj +++ b/PageCompiler/PageCompiler_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 cpspcd cpspcd cpspcd @@ -248,6 +248,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -259,7 +260,7 @@ ..\lib;%(AdditionalLibraryDirectories) true true - bin\cpspcd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -283,6 +284,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -315,6 +317,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -326,7 +329,7 @@ ..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\cpspcd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -350,6 +353,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -382,6 +386,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -393,7 +398,7 @@ ..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\cpspcd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -417,6 +422,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -449,6 +455,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -460,7 +467,7 @@ ..\lib64;%(AdditionalLibraryDirectories) true true - bin64\cpspcd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -484,6 +491,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -516,6 +524,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -527,7 +536,7 @@ ..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\cpspcd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -551,6 +560,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -583,6 +593,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -594,7 +605,7 @@ ..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\cpspcd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -618,6 +629,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 diff --git a/PageCompiler/PageCompiler_vs160.vcxproj.filters b/PageCompiler/PageCompiler_vs160.vcxproj.filters index 387ebe664..40f8133d6 100644 --- a/PageCompiler/PageCompiler_vs160.vcxproj.filters +++ b/PageCompiler/PageCompiler_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {167d3bcb-c3da-4f93-9998-3e377bce6340} + {11a28caa-b960-49c1-b7f8-d916a21d1c46} - {8fa00271-a742-47e5-b050-695a2c4f7036} + {d58f87ea-d435-4d09-9685-8405ceefaf25} - {eadf2f27-aab0-4d04-9eac-30b8e0d31e68} + {dcd4e5f7-a1ad-412c-9b69-da01e91595fc} diff --git a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj index d98a10044..a7707f708 100644 --- a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj +++ b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 HTTPTimeServer {18A0143A-444A-38E3-838C-1ACFBE4EE18C} HTTPTimeServer @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 HTTPTimeServerd HTTPTimeServerd HTTPTimeServerd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -603,9 +652,13 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj.filters b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj.filters index d4345b60f..953072f2c 100644 --- a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj.filters +++ b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {1ca22637-3345-4f0c-a31c-d33fd821d31f} + {beddb1c5-42cf-406c-b799-f25409919fe7} - {d2087543-d968-4674-a7b1-3fe905ec3a48} + {144d5a4a-fe08-4be4-b51e-530625c0a75c} - {5dc6bce6-3864-45d7-a4da-405394ebb443} + {0e8e6e27-e948-4160-b81f-42204222040d} diff --git a/PocoDoc/PocoDoc_vs160.vcxproj b/PocoDoc/PocoDoc_vs160.vcxproj index 1be817c05..d8e139c76 100644 --- a/PocoDoc/PocoDoc_vs160.vcxproj +++ b/PocoDoc/PocoDoc_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoDocd PocoDocd PocoDocd @@ -248,6 +248,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -259,7 +260,7 @@ ..\lib;%(AdditionalLibraryDirectories) true true - bin\PocoDocd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -283,6 +284,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -315,6 +317,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -326,7 +329,7 @@ ..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\PocoDocd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -350,6 +353,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -382,6 +386,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -393,7 +398,7 @@ ..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\PocoDocd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -417,6 +422,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -449,6 +455,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -460,7 +467,7 @@ ..\lib64;%(AdditionalLibraryDirectories) true true - bin64\PocoDocd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -484,6 +491,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -516,6 +524,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -527,7 +536,7 @@ ..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\PocoDocd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -551,6 +560,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -583,6 +593,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -594,7 +605,7 @@ ..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\PocoDocd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -618,6 +629,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 diff --git a/PocoDoc/PocoDoc_vs160.vcxproj.filters b/PocoDoc/PocoDoc_vs160.vcxproj.filters index 720348182..a1a633baf 100644 --- a/PocoDoc/PocoDoc_vs160.vcxproj.filters +++ b/PocoDoc/PocoDoc_vs160.vcxproj.filters @@ -2,22 +2,22 @@ - {4dfb2677-ba00-4697-bb9d-1f1c9da62e9f} + {5f491131-b33f-40d6-96c4-35259f22da39} - {d4bc48cf-7c38-4274-ad03-0bd815230453} + {e4f2b341-9852-4454-bcaa-369bee25628e} - {8dd6fbfa-e929-4dd1-a48c-527992622805} + {00f8ce84-e77c-4e09-87e5-8b229e4aae94} - {7b2eec2f-7b1f-4028-9cd5-6d91816235cf} + {2073ed53-535a-492c-8931-3664e8fb8b14} - {f7c73656-f588-48b7-999e-748ba112fc04} + {c42c7353-6ee9-4e4f-be28-2358124d8ef3} - {0908252d-c28d-4e2e-ad58-7723ccad1ed2} + {1076ec8e-bda4-40d1-b039-c198fea3ad85} diff --git a/ProGen/ProGen_vs160.vcxproj b/ProGen/ProGen_vs160.vcxproj index a2c10361c..f39178f98 100644 --- a/ProGen/ProGen_vs160.vcxproj +++ b/ProGen/ProGen_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 progend progend progend @@ -248,6 +248,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -259,7 +260,7 @@ ..\lib;%(AdditionalLibraryDirectories) true true - bin\progend.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -283,6 +284,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -315,6 +317,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -326,7 +329,7 @@ ..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\progend.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -350,6 +353,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -382,6 +386,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -393,7 +398,7 @@ ..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\progend.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -417,6 +422,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -449,6 +455,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -460,7 +467,7 @@ ..\lib64;%(AdditionalLibraryDirectories) true true - bin64\progend.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -484,6 +491,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -516,6 +524,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -527,7 +536,7 @@ ..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\progend.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -551,6 +560,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -583,6 +593,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -594,7 +605,7 @@ ..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\progend.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -618,6 +629,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 diff --git a/ProGen/ProGen_vs160.vcxproj.filters b/ProGen/ProGen_vs160.vcxproj.filters index 1464664b1..f1ba0719c 100644 --- a/ProGen/ProGen_vs160.vcxproj.filters +++ b/ProGen/ProGen_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {b2b1626e-a4dc-422c-9d34-8106dc77de45} + {c99f102d-4371-4257-87e7-96a1ba279185} - {7eeb2e56-ed12-4e76-8700-dda28d87b3d6} + {3ef0a18c-0bcc-4127-8c1c-b67b82e4fc66} - {70071a2f-404a-460b-ad62-a548a237d312} + {214c5997-19fa-4637-8272-7cb257fcf05e} diff --git a/ProGen/progen.properties b/ProGen/progen.properties index f2420ee6a..902368572 100644 --- a/ProGen/progen.properties +++ b/ProGen/progen.properties @@ -7,18 +7,6 @@ progen.libsuffix.release_static_md = md.lib progen.libsuffix.release_static_mt = mt.lib progen.project.guidFromName.namespaceUUID = F4193868-E4EB-4090-9A01-344E7233004B -progen.postprocess.upgrade2008to2015.tool = ${system.env.VS170COMNTOOLS}\\..\\IDE\\DevEnv.exe -progen.postprocess.upgrade2008to2015.args = %;/Upgrade -progen.postprocess.upgrade2008to2015.deleteOriginalFile = true -progen.postprocess.upgrade2008to2015.deleteFiles = Backup;_UpgradeReport_Files;UpgradeLog.XML;UpgradeLog.htm -progen.postprocess.upgrade2008to2015.fix2015ProjectFile = true - -progen.postprocess.upgrade2008to2017.tool = ${system.env.VS170COMNTOOLS}\\..\\IDE\\DevEnv.exe -progen.postprocess.upgrade2008to2017.args = %;/Upgrade -progen.postprocess.upgrade2008to2017.deleteOriginalFile = true -progen.postprocess.upgrade2008to2017.deleteFiles = Backup;_UpgradeReport_Files;UpgradeLog.XML;UpgradeLog.htm -progen.postprocess.upgrade2008to2017.fix2017ProjectFile = true - progen.postprocess.upgrade2008to2019.tool = ${system.env.VS170COMNTOOLS}\\..\\IDE\\DevEnv.exe progen.postprocess.upgrade2008to2019.args = %;/Upgrade progen.postprocess.upgrade2008to2019.deleteOriginalFile = true diff --git a/Prometheus/Prometheus_vs160.vcxproj b/Prometheus/Prometheus_vs160.vcxproj index c6e94ed63..9b649ef4a 100644 --- a/Prometheus/Prometheus_vs160.vcxproj +++ b/Prometheus/Prometheus_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoPrometheusd PocoPrometheusmdd PocoPrometheusmtd @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -249,7 +250,7 @@ ..\bin\PocoPrometheusd.dll true true - ..\bin\PocoPrometheusd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoPrometheusd.lib @@ -275,6 +276,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -305,7 +307,7 @@ true true - ..\lib\PocoPrometheusmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -337,6 +339,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -359,7 +362,7 @@ true true - ..\lib\PocoPrometheusmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -388,7 +391,7 @@ true true - ..\lib\PocoPrometheusmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -417,6 +420,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -426,7 +430,7 @@ ..\bin64\PocoPrometheus64d.dll true true - ..\bin64\PocoPrometheus64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoPrometheusd.lib @@ -452,6 +456,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -482,7 +487,7 @@ true true - ..\lib64\PocoPrometheusmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -514,6 +519,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -536,7 +542,7 @@ true true - ..\lib64\PocoPrometheusmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -568,6 +574,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 diff --git a/Prometheus/Prometheus_vs160.vcxproj.filters b/Prometheus/Prometheus_vs160.vcxproj.filters index 18c4207f8..e59b9cacc 100644 --- a/Prometheus/Prometheus_vs160.vcxproj.filters +++ b/Prometheus/Prometheus_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {53e83ccc-827e-4896-bbeb-c4af93f56f6a} + {12c6fec0-ab44-4c7b-9568-92394d034826} - {f39563e8-4f70-48b9-b6e7-8ef510013de5} + {5d71064f-72b9-4387-8cae-547281618dbc} - {37abdb5e-2411-4f75-8542-aecd474db03e} + {629aaf51-a641-473b-8550-ef93abef9b2b} diff --git a/Prometheus/samples/MetricsSample/MetricsSample_vs160.vcxproj b/Prometheus/samples/MetricsSample/MetricsSample_vs160.vcxproj index 3cabed807..ec8c6740e 100644 --- a/Prometheus/samples/MetricsSample/MetricsSample_vs160.vcxproj +++ b/Prometheus/samples/MetricsSample/MetricsSample_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 MetricsSample {D256BB4C-7287-3E74-BC1A-31E116A8CE36} MetricsSample @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 MetricsSampled MetricsSampled MetricsSampled @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\MetricsSampled.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\MetricsSampled.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\MetricsSampled.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\MetricsSampled.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\MetricsSampled.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\MetricsSampled.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Prometheus/samples/MetricsSample/MetricsSample_vs160.vcxproj.filters b/Prometheus/samples/MetricsSample/MetricsSample_vs160.vcxproj.filters index 8ebc73526..e986332f5 100644 --- a/Prometheus/samples/MetricsSample/MetricsSample_vs160.vcxproj.filters +++ b/Prometheus/samples/MetricsSample/MetricsSample_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {4c4ad498-7925-4d71-bfc9-00925f826ceb} + {869cd671-8e9d-4a4c-8728-a469c992f507} diff --git a/Prometheus/testsuite/TestSuite_vs160.vcxproj b/Prometheus/testsuite/TestSuite_vs160.vcxproj index 8769c281a..73a0202c0 100644 --- a/Prometheus/testsuite/TestSuite_vs160.vcxproj +++ b/Prometheus/testsuite/TestSuite_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TestSuite {04B69538-1444-4A22-A98D-3C69CD7B44DA} TestSuite @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 TestSuited TestSuited TestSuited @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -609,27 +658,43 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Prometheus/testsuite/TestSuite_vs160.vcxproj.filters b/Prometheus/testsuite/TestSuite_vs160.vcxproj.filters index 0a40ee0af..ed1cb3ae4 100644 --- a/Prometheus/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Prometheus/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {8340b52f-a1ad-427f-8353-b2eb9fea9dc7} + {573502a6-8940-494b-994f-10c51bfcc24f} - {5643a2e1-b7fd-464e-8cdb-6fe4c774b149} + {b6d546aa-3bd8-4c85-9082-6fefa82574e7} diff --git a/Redis/Redis_vs160.vcxproj b/Redis/Redis_vs160.vcxproj index 3daebe2d2..33fc80a73 100644 --- a/Redis/Redis_vs160.vcxproj +++ b/Redis/Redis_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoRedisd PocoRedismdd PocoRedismtd @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -249,7 +250,7 @@ ..\bin\PocoRedisd.dll true true - ..\bin\PocoRedisd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoRedisd.lib @@ -275,6 +276,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -305,7 +307,7 @@ true true - ..\lib\PocoRedismtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -337,6 +339,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -359,7 +362,7 @@ true true - ..\lib\PocoRedismdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -388,7 +391,7 @@ true true - ..\lib\PocoRedismd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -417,6 +420,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -426,7 +430,7 @@ ..\bin64\PocoRedis64d.dll true true - ..\bin64\PocoRedis64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoRedisd.lib @@ -452,6 +456,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -482,7 +487,7 @@ true true - ..\lib64\PocoRedismtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -514,6 +519,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -536,7 +542,7 @@ true true - ..\lib64\PocoRedismdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -568,6 +574,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 diff --git a/Redis/Redis_vs160.vcxproj.filters b/Redis/Redis_vs160.vcxproj.filters index aedae3e09..9c0cade40 100644 --- a/Redis/Redis_vs160.vcxproj.filters +++ b/Redis/Redis_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {7f4a1497-cef9-4ebe-a134-1dd9e43e76ca} + {e1cadf5d-7549-4121-8082-54a0c9e04e58} - {24533806-0e15-49b2-9cdf-ea0148d2c4e0} + {60094115-1f6d-424e-8638-f076fd287563} diff --git a/Redis/testsuite/TestSuite_vs160.vcxproj b/Redis/testsuite/TestSuite_vs160.vcxproj index 670a6d7d5..8e7f57f2d 100644 --- a/Redis/testsuite/TestSuite_vs160.vcxproj +++ b/Redis/testsuite/TestSuite_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TestSuite {96CF3103-E49E-3F5E-A11D-6DBCDA043053} TestSuite @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 TestSuited TestSuited TestSuited @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,12 +649,18 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Redis/testsuite/TestSuite_vs160.vcxproj.filters b/Redis/testsuite/TestSuite_vs160.vcxproj.filters index 8c4f7c9a2..a094825d0 100644 --- a/Redis/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Redis/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {f2f344d4-ca3f-4479-a681-fa39d85010ac} + {f882b2f7-b115-4a69-91c5-72dc0764f265} - {1afc5d23-a1d2-430a-aeb8-4a58d447af6c} + {df501ea3-b827-4fdb-b70c-99f6becd5ee1} diff --git a/Util/Util_vs160.vcxproj b/Util/Util_vs160.vcxproj index 00482cb4c..8b082ef9b 100644 --- a/Util/Util_vs160.vcxproj +++ b/Util/Util_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoUtild PocoUtilmdd PocoUtilmtd @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -249,7 +250,7 @@ ..\bin\PocoUtild.dll true true - ..\bin\PocoUtild.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoUtild.lib @@ -275,6 +276,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -305,7 +307,7 @@ true true - ..\lib\PocoUtilmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -337,6 +339,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -359,7 +362,7 @@ true true - ..\lib\PocoUtilmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -388,7 +391,7 @@ true true - ..\lib\PocoUtilmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -417,6 +420,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -426,7 +430,7 @@ ..\bin64\PocoUtil64d.dll true true - ..\bin64\PocoUtil64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoUtild.lib @@ -452,6 +456,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -482,7 +487,7 @@ true true - ..\lib64\PocoUtilmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -514,6 +519,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -536,7 +542,7 @@ true true - ..\lib64\PocoUtilmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -568,6 +574,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 diff --git a/Util/Util_vs160.vcxproj.filters b/Util/Util_vs160.vcxproj.filters index 1d553f449..b3205c2c6 100644 --- a/Util/Util_vs160.vcxproj.filters +++ b/Util/Util_vs160.vcxproj.filters @@ -2,58 +2,58 @@ - {cf9ff27f-c608-4221-acd5-9ec8f6d06b47} + {f8121bb3-6f75-498c-85da-718a79ce90ee} - {cd925d5a-2a4a-4eb0-abc0-1bd7e0ed765b} + {65a332b2-c845-41c4-bfd8-8ce06c4c568f} - {d257b037-83f7-47cd-bd76-52b28e204d3b} + {dae2e368-3475-43aa-8135-fd972a5b92ae} - {0096a0e0-fb96-43a9-94d9-61c3f27f6625} + {2ce7d858-e098-4373-979e-79dae051ab1e} - {ddc4db4d-2f52-414e-99df-6db934c4c5a5} + {f245cb82-df33-4dd2-b80d-1b691d1703ea} - {4322c805-411f-4104-b9b4-5021762902c0} + {c3e17d03-03d4-4b10-a230-92a50a552be9} - {3ba7445e-abc9-43dc-bed5-127db1a57c27} + {34b4d4a2-e74c-4a12-8b3d-163f645057ad} - {5e8e6197-e0d6-49c6-a9b7-0b592ed6daba} + {0772a5ee-784e-45e7-8613-ae45abfd3ebd} - {e22e3615-cc6e-41fc-81cf-e87af424ad3c} + {026e070e-8104-4f8c-9b07-f4683ad3d00f} - {3921c885-89a3-4c9c-92c1-113d817266f3} + {9b012c9a-ac3c-4624-b0ac-0d4c9b4ef32d} - {156dc5e3-c9a1-4c00-b513-3cb5bed8029b} + {bc7ed6ee-59c2-45f6-a15d-56169cdf3f0a} - {958fb7eb-d810-42dd-bfe9-dd8d076d78f0} + {c960bfe7-9652-426c-8939-6ca27b7ca749} - {23284305-4dff-4522-8279-df7cf02afd93} + {235093b4-a2f9-47d9-9015-9480442b9eb7} - {65499a05-965b-4707-a3b9-6a4dca022258} + {720c9317-0291-4cb9-9149-31c43026e178} - {cc40a606-35a0-443a-b148-1fec1663b42b} + {b5f0131b-be85-4157-a232-903072a735e3} - {5357cbb6-94d0-4a6a-8276-23c156504c7a} + {0f0c16d7-30de-4d57-8df6-6061b3bfd1b7} - {9db539ab-6e8e-4248-acb7-3aa71f648bb2} + {fba5ea82-98af-4f0d-aabc-ecff078f7cb1} - {16c9957b-edc6-4791-b7fc-4defc5f92143} + {e9a2d44b-72b5-40ec-8b84-ae077b834ffc} diff --git a/Util/samples/SampleApp/SampleApp_vs160.vcxproj b/Util/samples/SampleApp/SampleApp_vs160.vcxproj index acc0edeb8..b6a32838d 100644 --- a/Util/samples/SampleApp/SampleApp_vs160.vcxproj +++ b/Util/samples/SampleApp/SampleApp_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 SampleApp {C3F12C11-469F-3FB6-8C95-8638F78FF7C0} SampleApp @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 SampleAppd SampleAppd SampleAppd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\SampleAppd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\SampleAppd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\SampleAppd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\SampleAppd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\SampleAppd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\SampleAppd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -603,6 +652,8 @@ true + stdcpp17 + stdc11 diff --git a/Util/samples/SampleApp/SampleApp_vs160.vcxproj.filters b/Util/samples/SampleApp/SampleApp_vs160.vcxproj.filters index e98dbca22..4d44295a7 100644 --- a/Util/samples/SampleApp/SampleApp_vs160.vcxproj.filters +++ b/Util/samples/SampleApp/SampleApp_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {4be78db7-1972-47c3-9066-d886df79e3b6} + {23798da7-950a-4a28-b214-023250268588} - {5dafb5ef-e6ef-4e14-a838-50fe784e9548} + {6c04f5a4-8f91-41b8-886e-74038a4cafd7} diff --git a/Util/samples/SampleServer/SampleServer_vs160.vcxproj b/Util/samples/SampleServer/SampleServer_vs160.vcxproj index 9f752c925..08dc4038c 100644 --- a/Util/samples/SampleServer/SampleServer_vs160.vcxproj +++ b/Util/samples/SampleServer/SampleServer_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 SampleServer {F475C5DD-0558-37AF-870B-666DE931B7BA} SampleServer @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 SampleServerd SampleServerd SampleServerd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\SampleServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\SampleServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\SampleServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\SampleServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\SampleServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\SampleServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Util/samples/SampleServer/SampleServer_vs160.vcxproj.filters b/Util/samples/SampleServer/SampleServer_vs160.vcxproj.filters index c540c66f1..b0381ae32 100644 --- a/Util/samples/SampleServer/SampleServer_vs160.vcxproj.filters +++ b/Util/samples/SampleServer/SampleServer_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {a314dfe1-5026-42cc-896c-1503457403d4} + {8a3aec76-5187-493b-975c-1d8c3dbb1e28} - {6f24b934-f101-4dc7-ac04-8762797a5087} + {6bdf0621-31aa-44d7-8ae6-26b6805ec65e} diff --git a/Util/samples/Units/Units_vs160.vcxproj b/Util/samples/Units/Units_vs160.vcxproj index 8968d2a73..a260190ec 100644 --- a/Util/samples/Units/Units_vs160.vcxproj +++ b/Util/samples/Units/Units_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 Units {A6800637-61D5-39A3-86AA-E180C73D3120} Units @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 Unitsd Unitsd Unitsd @@ -247,14 +248,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin\Unitsd.exe ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Unitsd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -278,7 +283,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin\Units.exe @@ -306,7 +315,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -314,7 +327,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Unitsd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -338,7 +351,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -367,7 +384,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -375,7 +396,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Unitsd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -399,7 +420,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -428,14 +453,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin64\Unitsd.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Unitsd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -459,7 +488,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin64\Units.exe @@ -487,7 +520,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -495,7 +532,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Unitsd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -519,7 +556,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -548,7 +589,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -556,7 +601,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Unitsd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -580,7 +625,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -596,6 +645,8 @@ true + stdcpp17 + stdc11 diff --git a/Util/samples/Units/Units_vs160.vcxproj.filters b/Util/samples/Units/Units_vs160.vcxproj.filters index 18bb3c4ef..0a5c83ef1 100644 --- a/Util/samples/Units/Units_vs160.vcxproj.filters +++ b/Util/samples/Units/Units_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {fa8f83af-70a0-4ca4-b266-ed6e00f4a77f} + {85e1d920-5b52-477a-ac11-5b1b809a810d} - {832a853d-feba-4e41-b800-d6eceb056f2a} + {5808a610-3907-4e3c-8c2d-047c97597a1e} diff --git a/Util/samples/pkill/pkill_vs160.vcxproj b/Util/samples/pkill/pkill_vs160.vcxproj index ab0ae2ee6..1eb0f0b54 100644 --- a/Util/samples/pkill/pkill_vs160.vcxproj +++ b/Util/samples/pkill/pkill_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 pkill {63EDD785-29E1-3073-87EB-3CE788A4A1DE} pkill @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 pkilld pkilld pkilld @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\pkilld.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\pkilld.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\pkilld.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\pkilld.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\pkilld.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\pkilld.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Util/samples/pkill/pkill_vs160.vcxproj.filters b/Util/samples/pkill/pkill_vs160.vcxproj.filters index 0f7fee55f..3e3cbb279 100644 --- a/Util/samples/pkill/pkill_vs160.vcxproj.filters +++ b/Util/samples/pkill/pkill_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {87a97507-bb1e-4589-89b2-d33132295429} + {5f039c9d-77de-4930-a95d-629204a004b2} diff --git a/Util/testsuite/TestSuite_vs160.vcxproj b/Util/testsuite/TestSuite_vs160.vcxproj index 2c7bddd40..4f151642e 100644 --- a/Util/testsuite/TestSuite_vs160.vcxproj +++ b/Util/testsuite/TestSuite_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TestSuite {E40E738C-447B-40F4-A878-EBA9A2459270} TestSuite @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 TestSuited TestSuited TestSuited @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -607,7 +656,7 @@ - + @@ -629,87 +678,143 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Util/testsuite/TestSuite_vs160.vcxproj.filters b/Util/testsuite/TestSuite_vs160.vcxproj.filters index d9480d4ba..b78723a12 100644 --- a/Util/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Util/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,64 +2,64 @@ - {41b409fc-c3af-4703-b6b3-16b118e802c1} + {c1ee02ad-da9b-4036-af39-1bc7042dc874} - {3fb3512b-be8a-449e-88d9-11b18ce3f067} + {ec934c54-ea5c-4602-ab1a-49fdaca86177} - {bde1fd0d-73a3-4a38-857e-c427f6e9e10f} + {f544f580-41a2-4683-afb5-ee89baa2c59c} - {0f0f8abb-33fd-4d77-a01e-79f13bc6882b} + {b123401d-583d-4316-9254-f0685663921d} - {839d13eb-b569-45e6-8b8e-4c5c9b1cc8f2} + {b5b8e68c-983d-434b-8aca-48255c23c43e} - {eeae5702-b1e5-49d0-a976-675c5196f85f} + {3bc8e1bc-a8eb-4440-8c42-a61d9496f028} - {6c15e223-446b-41a2-a2fc-7867b142ce9f} + {8aecfe88-4bbd-41ca-9f5a-798f6512017f} - {1d46d19e-f91f-484d-affe-cbe99bed5aff} + {3a93d505-81df-4399-9b2b-87b89dee897e} - {1b500f87-2fde-46a7-96ee-8e757c8b65b4} + {49f0c744-b769-4dc6-b0ce-f6232912e8ea} - {7a1801e9-aad9-40d5-8ce4-26eb644af77b} + {c30dd81d-2e47-472e-bac2-40831d2ea6ca} - {66608c74-ae8a-4c7d-beb8-f9df6886d03c} + {7befe4ef-023e-4bab-9231-ac7387b5dc8c} - {f7a6dbe0-61f1-4887-b067-fc93b3ac5b49} + {5d2a883d-6b3f-4113-88d3-6785a09c1394} - {182fa9a9-1419-4fad-a5d5-e99ef1c5d690} + {77252e88-b20d-425f-b979-26e26a0f748e} - {eaedc473-6889-46d3-9347-fabf6d6b5cd6} + {e01d67d5-3851-4f0a-a33d-e6517eabb187} - {d8101317-8019-4095-a2b4-5793f18c35b6} + {082d5d34-3713-42a5-85e7-00bdbd703aa4} - {54431814-307d-4630-97a2-d006168e1d54} + {ba4cbf83-181a-4799-9142-3c193a644ed7} - {b539543b-bae2-4843-97e3-1f89936836ed} + {5b6e196d-c0d2-4d14-bb1a-706728ff39b4} - {871a82da-4d77-413c-a436-14d96dcd67f3} + {eee84383-b9f3-4247-98ca-18c5c0b88e63} - {d0ff1421-e99b-4e31-9e66-e4484328988e} + {b4cc23e6-e9d5-4e24-88be-c82f8243d9f8} - {490d5dbc-b8b8-4882-aa57-b159cc1e19cf} + {cf6c42c2-dd23-4aba-bcc2-d2ad4f0e3adf} @@ -90,7 +90,7 @@ Configuration\Header Files - + Configuration\Header Files diff --git a/XML/XML_vs160.vcxproj b/XML/XML_vs160.vcxproj index 7b2902d49..acd9c4d93 100644 --- a/XML/XML_vs160.vcxproj +++ b/XML/XML_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34511.75 PocoXMLd PocoXMLmdd PocoXMLmtd @@ -240,6 +240,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -249,7 +250,7 @@ ..\bin\PocoXMLd.dll true true - ..\bin\PocoXMLd.pdb + $(OutDir)$(TargetName).pdb ..\lib;%(AdditionalLibraryDirectories) Console ..\lib\PocoXMLd.lib @@ -275,6 +276,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -305,7 +307,7 @@ true true - ..\lib\PocoXMLmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -337,6 +339,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -359,7 +362,7 @@ true true - ..\lib\PocoXMLmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -388,7 +391,7 @@ true true - ..\lib\PocoXMLmd.pdb + $(OutDir)$(TargetName).pdb Level3 Default @@ -417,6 +420,7 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -426,7 +430,7 @@ ..\bin64\PocoXML64d.dll true true - ..\bin64\PocoXML64d.pdb + $(OutDir)$(TargetName).pdb ..\lib64;%(AdditionalLibraryDirectories) Console ..\lib64\PocoXMLd.lib @@ -452,6 +456,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -482,7 +487,7 @@ true true - ..\lib64\PocoXMLmtd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -514,6 +519,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 @@ -536,7 +542,7 @@ true true - ..\lib64\PocoXMLmdd.pdb + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase Default @@ -568,6 +574,7 @@ Level3 Default + $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 diff --git a/XML/XML_vs160.vcxproj.filters b/XML/XML_vs160.vcxproj.filters index d73b5ebe9..8d66e0505 100644 --- a/XML/XML_vs160.vcxproj.filters +++ b/XML/XML_vs160.vcxproj.filters @@ -2,40 +2,40 @@ - {6a8bdbbe-442a-457d-ab07-46014587f83b} + {cb81f37b-a7e0-430b-946a-9e88ccba5c39} - {3c2890c2-f54d-4866-97a4-c28b560be0a2} + {b8055a37-ef43-4284-9612-b88fe0f2cdbf} - {3043f1fb-3883-4bff-8ce5-f51310aee8c7} + {75ffcd0a-6058-4cda-889d-da7add0b0737} - {3e76e647-6cf5-4ca8-b565-6cb6a444629f} + {2b1457b4-7256-4387-bea1-a42c225220ef} - {10630328-fa99-4dcc-82c7-ffca37620761} + {febad31a-f868-4c80-b299-68e3f81fa9e8} - {74569b02-679d-49f8-a9d3-ce79613a9368} + {1b2d92d4-0629-417b-9abf-524dea4b8995} - {30946367-448b-4f50-a0d6-2ddbca08aabd} + {4a364df2-d1d6-417d-8d34-699ac77df096} - {360baa69-a63b-4ae9-a908-3b728fa2b4dc} + {d36d45e8-7df0-478e-b5fb-2a9f3c9ef9c5} - {0158f4c2-36f6-4542-9116-e9b69b4af966} + {4a903e42-0a5d-4ee8-b822-2c140f277302} - {d2f6b655-b0d0-45a4-aa35-4819871302c4} + {85d8ec5f-636a-44db-af9f-67f1ba21288b} - {de3b38e4-3064-407d-8787-7e594f0f03a8} + {dde613c6-833a-4b1e-9a9f-018dcde301c8} - {3184fa9b-36fc-4352-ad47-7c7d99409a7b} + {1fbfd2fa-5781-4c04-8ee0-049f1a1482d8} diff --git a/XML/samples/DOMParser/DOMParser_vs160.vcxproj b/XML/samples/DOMParser/DOMParser_vs160.vcxproj index 8c204244b..b77218387 100644 --- a/XML/samples/DOMParser/DOMParser_vs160.vcxproj +++ b/XML/samples/DOMParser/DOMParser_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 DOMParser {70F2F655-67D5-32A1-A99B-D4903547DB3E} DOMParser @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 DOMParserd DOMParserd DOMParserd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\DOMParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\DOMParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\DOMParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\DOMParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\DOMParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\DOMParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/XML/samples/DOMParser/DOMParser_vs160.vcxproj.filters b/XML/samples/DOMParser/DOMParser_vs160.vcxproj.filters index 2b224c6c0..01b1143de 100644 --- a/XML/samples/DOMParser/DOMParser_vs160.vcxproj.filters +++ b/XML/samples/DOMParser/DOMParser_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {6fb19291-e325-4a3e-b4d8-e721f0843068} + {c54b5d98-2a82-4b09-97df-44222288a4f9} - {0ce85481-6273-40c1-9ce4-0dbb64ed960a} + {be5a21b0-9e92-4ec7-9a0b-4af48bc0facd} diff --git a/XML/samples/DOMWriter/DOMWriter_vs160.vcxproj b/XML/samples/DOMWriter/DOMWriter_vs160.vcxproj index b51d8a9e8..50aaa5f84 100644 --- a/XML/samples/DOMWriter/DOMWriter_vs160.vcxproj +++ b/XML/samples/DOMWriter/DOMWriter_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 DOMWriter {A3CBDFA6-6261-3C04-B1FD-51AA20763BB8} DOMWriter @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 DOMWriterd DOMWriterd DOMWriterd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\DOMWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\DOMWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\DOMWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\DOMWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\DOMWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\DOMWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/XML/samples/DOMWriter/DOMWriter_vs160.vcxproj.filters b/XML/samples/DOMWriter/DOMWriter_vs160.vcxproj.filters index 35358e381..d916101f9 100644 --- a/XML/samples/DOMWriter/DOMWriter_vs160.vcxproj.filters +++ b/XML/samples/DOMWriter/DOMWriter_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {f5110b99-87e0-4258-90f1-42de230e9b6f} + {acae5be3-4b12-447a-9d8e-9f162f2b16f7} - {96a1650b-46bd-49ba-b2e7-c6e1ed4459bf} + {9fcc108e-736d-44d6-8336-56d4bc9f05c7} diff --git a/XML/samples/PrettyPrint/PrettyPrint_vs160.vcxproj b/XML/samples/PrettyPrint/PrettyPrint_vs160.vcxproj index 84e9a067e..1ae244dbd 100644 --- a/XML/samples/PrettyPrint/PrettyPrint_vs160.vcxproj +++ b/XML/samples/PrettyPrint/PrettyPrint_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 PrettyPrint {DFA97011-8DD4-3A84-A0C9-EB2101BD6082} PrettyPrint @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 PrettyPrintd PrettyPrintd PrettyPrintd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\PrettyPrintd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\PrettyPrintd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\PrettyPrintd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\PrettyPrintd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\PrettyPrintd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\PrettyPrintd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/XML/samples/PrettyPrint/PrettyPrint_vs160.vcxproj.filters b/XML/samples/PrettyPrint/PrettyPrint_vs160.vcxproj.filters index 1f2161e40..ef3d194f0 100644 --- a/XML/samples/PrettyPrint/PrettyPrint_vs160.vcxproj.filters +++ b/XML/samples/PrettyPrint/PrettyPrint_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {785ed0bb-035e-40e8-8577-c15bd3c39e46} + {7147e155-1dfc-40d2-a78c-c57cea83bf1c} - {06fce7eb-9c1d-4fe1-8679-57d0dc719b6c} + {84845345-4844-4653-971e-4aa97a764ce1} diff --git a/XML/samples/SAXParser/SAXParser_vs160.vcxproj b/XML/samples/SAXParser/SAXParser_vs160.vcxproj index 0763de975..a2abf5095 100644 --- a/XML/samples/SAXParser/SAXParser_vs160.vcxproj +++ b/XML/samples/SAXParser/SAXParser_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 SAXParser {2A54653D-9F55-348B-8F79-A3E454563AE3} SAXParser @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 SAXParserd SAXParserd SAXParserd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\SAXParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\SAXParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\SAXParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\SAXParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\SAXParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\SAXParserd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/XML/samples/SAXParser/SAXParser_vs160.vcxproj.filters b/XML/samples/SAXParser/SAXParser_vs160.vcxproj.filters index 712d1bd58..2672d8746 100644 --- a/XML/samples/SAXParser/SAXParser_vs160.vcxproj.filters +++ b/XML/samples/SAXParser/SAXParser_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {e8c73c59-04b6-46e9-88f0-aeca655f1d31} + {92991b2e-54de-4ad4-9379-943106ab1274} - {0a6fdd85-fd24-48d0-840b-d827d7b0ee91} + {aa175918-d7ab-45ad-9883-d47929ddcadc} diff --git a/XML/testsuite/TestSuite_vs160.vcxproj b/XML/testsuite/TestSuite_vs160.vcxproj index 34ac7ea6e..9bd26dc23 100644 --- a/XML/testsuite/TestSuite_vs160.vcxproj +++ b/XML/testsuite/TestSuite_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TestSuite {C9ACF028-17A1-44C2-8C09-DFD3BD9E7D45} TestSuite @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 TestSuited TestSuited TestSuited @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -623,69 +672,113 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/XML/testsuite/TestSuite_vs160.vcxproj.filters b/XML/testsuite/TestSuite_vs160.vcxproj.filters index 819e5a8c2..7c405efe2 100644 --- a/XML/testsuite/TestSuite_vs160.vcxproj.filters +++ b/XML/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,46 +2,46 @@ - {090985c4-d8cd-48bb-85f7-91a098e06299} + {f06175ff-5f8b-4d11-9361-d5731f8af56d} - {a955d4a3-b63d-44f1-a1f8-36fe3fd3931c} + {e9154a8b-8069-416a-ad22-07587b584353} - {39eb7904-bdd2-420a-a22d-3f92fd958847} + {e3a59658-9bbe-46a6-9833-b7e5130b604e} - {8b55d89f-b749-47e7-90cc-77af1dfd17b7} + {86e296c7-e286-4084-a11f-6472be34efd8} - {7cdb77d9-9d68-4da3-a583-20bd8b1178ad} + {25135764-20e3-48cd-a30f-ebdcf10fc3e5} - {eac7dbb8-60bf-4c8b-85ee-3b9b18042faa} + {921420a5-fdd6-4f9e-abf5-8c840f9b2f80} - {57991cd7-31e0-4f79-b6c2-a1e8b7e235d3} + {12daa3a3-1660-40fe-82c6-683fde1180e3} - {bdae7d18-160f-4ff6-a360-4fc48fe160af} + {808e8303-33e3-4c0d-98ac-532d386290a2} - {8134b06c-7e0d-40ab-aa01-3dbda417de8f} + {bdc45c2a-39e7-4a16-8eb5-54764c7ef42f} - {123f3967-9ee3-4243-aa83-d2874d65ef4b} + {d9ea0431-ff51-482a-868d-9b998b43b0ee} - {eabee412-0d01-4ae6-bfbe-646177193d2a} + {6566e7d1-a361-4f29-8257-d089fba073a7} - {ea096f4a-6e0f-482a-9caf-e00595d3cb40} + {e830d081-9e40-472e-9502-4a4bbd62a7d6} - {fcd6636f-768f-47a3-b33c-a3edcfbea432} + {d8f08009-0a23-4def-a1e5-089fb4cc4e66} - {1da4dc2d-5376-48cc-9cc0-b755636ad484} + {d53aece3-454a-4e15-9dd9-c9affe6981a7} diff --git a/Zip/Zip_vs160.vcxproj b/Zip/Zip_vs160.vcxproj index d9b2be0bf..8f721f720 100644 --- a/Zip/Zip_vs160.vcxproj +++ b/Zip/Zip_vs160.vcxproj @@ -1,16 +1,755 @@ - + + + debug_shared + Win32 + + + debug_shared + x64 + + + debug_static_md + Win32 + + + debug_static_md + x64 + + + debug_static_mt + Win32 + + + debug_static_mt + x64 + + + release_shared + Win32 + + + release_shared + x64 + + + release_static_md + Win32 + + + release_static_md + x64 + + + release_static_mt + Win32 + + + release_static_mt + x64 + + 17.0 + Zip + {4AC75EAD-BFCF-41E6-AB1F-0DA203CC7C61} + Zip + Win32Proj + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + DynamicLibrary + MultiByte + v142 + + + DynamicLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + DynamicLibrary + MultiByte + v142 + + + DynamicLibrary + MultiByte + v142 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + <_ProjectFileVersion>17.0.34511.75 + PocoZipd + PocoZipmdd + PocoZipmtd + PocoZip + PocoZipmd + PocoZipmt + PocoZip64d + PocoZipmdd + PocoZipmtd + PocoZip64 + PocoZipmd + PocoZipmt + + + ..\bin\ + obj\Zip\$(Configuration)\ + true + + + ..\bin\ + obj\Zip\$(Configuration)\ + false + + + ..\lib\ + obj\Zip\$(Configuration)\ + + + ..\lib\ + obj\Zip\$(Configuration)\ + + + ..\lib\ + obj\Zip\$(Configuration)\ + + + ..\lib\ + obj\Zip\$(Configuration)\ + + + ..\bin64\ + obj64\Zip\$(Configuration)\ + true + + + ..\bin64\ + obj64\Zip\$(Configuration)\ + false + + + ..\lib64\ + obj64\Zip\$(Configuration)\ + + + ..\lib64\ + obj64\Zip\$(Configuration)\ + + + ..\lib64\ + obj64\Zip\$(Configuration)\ + + + ..\lib64\ + obj64\Zip\$(Configuration)\ + + + + Disabled + .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;Zip_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\bin\PocoZipd.dll + true + true + $(OutDir)$(TargetName).pdb + ..\lib;%(AdditionalLibraryDirectories) + Console + ..\lib\PocoZipd.lib + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;Zip_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\bin\PocoZip.dll + true + false + ..\lib;%(AdditionalLibraryDirectories) + Console + true + true + ..\lib\PocoZip.lib + MachineX86 + + + + + Disabled + .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ..\lib\PocoZipmtd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ..\lib\PocoZipmt.lib + + + + + Disabled + .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ..\lib\PocoZipmdd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + + Default + 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\lib\PocoZipmd.lib + + + + + Disabled + .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;Zip_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\bin64\PocoZip64d.dll + true + true + $(OutDir)$(TargetName).pdb + ..\lib64;%(AdditionalLibraryDirectories) + Console + ..\lib64\PocoZipd.lib + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;Zip_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\bin64\PocoZip64.dll + true + false + ..\lib64;%(AdditionalLibraryDirectories) + Console + true + true + ..\lib64\PocoZip.lib + MachineX64 + + + + + Disabled + .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ..\lib64\PocoZipmtd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ..\lib64\PocoZipmt.lib + + + + + Disabled + .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ..\lib64\PocoZipmdd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + 4244;4267;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ..\lib64\PocoZipmd.lib + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + + + true + true + true + true + true + true + true + true + + diff --git a/Zip/Zip_vs160.vcxproj.filters b/Zip/Zip_vs160.vcxproj.filters index 0b07de1b2..c4a0164e0 100644 --- a/Zip/Zip_vs160.vcxproj.filters +++ b/Zip/Zip_vs160.vcxproj.filters @@ -1,3 +1,165 @@  - + + + + {e6984a0b-7d61-4787-9157-e5a19e0ecd86} + + + {ab34883f-872a-4f92-9c9f-7d15bc7a0056} + + + {85f70d16-1966-4cbe-9708-38a37e0e0c90} + + + {f576f3e7-304d-4c81-89d0-db620bf7f12a} + + + {773e9e06-f07b-48fb-99bf-13983ae753b2} + + + {03439319-0a8b-4b1d-bf7e-fd3124613a80} + + + + + Zip\Header Files + + + Zip\Header Files + + + Zip\Header Files + + + Zip\Header Files + + + Zip\Header Files + + + Zip\Header Files + + + Zip\Header Files + + + Zip\Header Files + + + Zip\Header Files + + + Zip\Header Files + + + Zip\Header Files + + + Zip\Header Files + + + Zip\Header Files + + + Zip\Header Files + + + Zip\Header Files + + + Zip\Header Files + + + Manipulation\Header Files + + + Manipulation\Header Files + + + Manipulation\Header Files + + + Manipulation\Header Files + + + Manipulation\Header Files + + + Manipulation\Header Files + + + Manipulation\Header Files + + + + + Zip\Source Files + + + Zip\Source Files + + + Zip\Source Files + + + Zip\Source Files + + + Zip\Source Files + + + Zip\Source Files + + + Zip\Source Files + + + Zip\Source Files + + + Zip\Source Files + + + Zip\Source Files + + + Zip\Source Files + + + Zip\Source Files + + + Zip\Source Files + + + Zip\Source Files + + + Zip\Source Files + + + Manipulation\Source Files + + + Manipulation\Source Files + + + Manipulation\Source Files + + + Manipulation\Source Files + + + Manipulation\Source Files + + + Manipulation\Source Files + + + Manipulation\Source Files + + + + + \ No newline at end of file diff --git a/Zip/samples/unzip/unzip_vs160.vcxproj b/Zip/samples/unzip/unzip_vs160.vcxproj index 04d366542..979139ba0 100644 --- a/Zip/samples/unzip/unzip_vs160.vcxproj +++ b/Zip/samples/unzip/unzip_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 unzip {9FE5275A-E14A-30C2-9C5B-AEBDE780608F} unzip @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 unzipd unzipd unzipd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\unzipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\unzipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\unzipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\unzipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\unzipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\unzipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Zip/samples/unzip/unzip_vs160.vcxproj.filters b/Zip/samples/unzip/unzip_vs160.vcxproj.filters index 0b25309df..004f290d2 100644 --- a/Zip/samples/unzip/unzip_vs160.vcxproj.filters +++ b/Zip/samples/unzip/unzip_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {fa4c8e47-73f1-4d90-be78-4a12402b7e9c} + {5dafba7e-63be-4000-acfd-03e528326e50} - {02c62c80-59e1-454a-9ea5-ecd4f79426c3} + {d03f80c1-5292-48af-a984-80161672a93a} diff --git a/Zip/samples/zip/zip_vs160.vcxproj b/Zip/samples/zip/zip_vs160.vcxproj index a17bd3c6f..a64f8c5b3 100644 --- a/Zip/samples/zip/zip_vs160.vcxproj +++ b/Zip/samples/zip/zip_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 zip {7F3AD0E5-A150-3AE7-9041-9086C45020C0} zip @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 zipd zipd zipd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\zipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\zipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\zipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\zipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\zipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\zipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Zip/samples/zip/zip_vs160.vcxproj.filters b/Zip/samples/zip/zip_vs160.vcxproj.filters index 8385ed8ef..da7bcc530 100644 --- a/Zip/samples/zip/zip_vs160.vcxproj.filters +++ b/Zip/samples/zip/zip_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {ef07e594-917a-49c8-98d6-ddc60a5f3e88} + {e6ac32d4-902b-49a8-8d1b-c332142dd44c} diff --git a/Zip/testsuite/TestSuite_vs160.vcxproj b/Zip/testsuite/TestSuite_vs160.vcxproj index 20dbd0fc4..4304aeb12 100644 --- a/Zip/testsuite/TestSuite_vs160.vcxproj +++ b/Zip/testsuite/TestSuite_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 TestSuite {9665FC3C-DB71-4C6C-AAEE-AAFD73CB31E7} TestSuite @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 TestSuited TestSuited TestSuited @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -606,18 +655,28 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Zip/testsuite/TestSuite_vs160.vcxproj.filters b/Zip/testsuite/TestSuite_vs160.vcxproj.filters index 68d542a72..6fb10e6f9 100644 --- a/Zip/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Zip/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,28 +2,28 @@ - {b0ac6b27-e3b2-4642-a13d-ef6587fff71b} + {7936c8e0-12af-451d-9a14-b532b681c080} - {77c9b048-46bf-4847-9c2c-41b6249d36d0} + {eaf69858-1fe3-400b-ab2c-9c3df327938b} - {1bc4e660-20e4-47bf-b4d7-652b84d241a9} + {0b96f029-fea6-45c0-8e61-c34cb7957b98} - {52b69cf8-32a3-48ee-9e52-95f1b792a6e7} + {5168582c-2347-490b-bb96-a09405d34609} - {2ff7d8bf-81e7-4d34-9660-3860aaf6b85c} + {de54f02b-997f-4295-a6aa-87edb08e7eab} - {c4f780c2-25f6-4a18-ba90-1a1c1d3a1df4} + {44f1bc18-16e3-4b1e-8c81-35aec752c305} - {b889bac0-8059-4074-88fc-a8bebb4b580a} + {2c394f46-0a18-4511-b796-1b3a82368df5} - {ed317dac-3b80-4c0b-90bb-caebf7f948ad} + {5b58fc19-f1cf-49aa-963e-c66b74e162e8} From 98b32b27aea88b857b39db3ef38a38642bdf9734 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Mon, 19 Feb 2024 19:51:07 +0100 Subject: [PATCH 343/395] Update CHANGELOG, CONTRIBUTORS, release notes --- CHANGELOG | 17 +++++++++++++++++ CONTRIBUTORS | 1 + doc/99100-ReleaseNotes.page | 15 +++++++++++++++ gh-cli-for-release-notes.sh | 6 +++--- 4 files changed, 36 insertions(+), 3 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 943e1086a..813c862c1 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,22 @@ This is the changelog file for the POCO C++ Libraries. + +Release 1.13.2 (2024-02-19) +=========================== + +Summary of Changes: + +This is a bugfix release. + +Breaking Changes: + +- GH #4378 [Data] Unconditionally includes of SQLParser.h + +Bug fixes and Improvements: + +- GH #4462 Disable SQL parsing by default + + Release 1.13.1 (2024-02-05) =========================== diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 15b077a09..3b226c004 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -64,3 +64,4 @@ Alexander B Andrew Auclair Jochen Sprickerhof Jesse Hoogervorst +Aron Budea diff --git a/doc/99100-ReleaseNotes.page b/doc/99100-ReleaseNotes.page index 0b17412c6..25f9f5667 100644 --- a/doc/99100-ReleaseNotes.page +++ b/doc/99100-ReleaseNotes.page @@ -2,6 +2,21 @@ POCO C++ Libraries Release Notes AAAIntroduction +!!!Release 1.13.2 + +!!Summary of Changes + +This is a bugfix release. + +!!Breaking Changes + + - GH #4378 [Data] Unconditionally includes of SQLParser.h + +!!Bug fixes and Improvements + + - GH #4462 Disable SQL parsing by default + + !!!Release 1.13.1 !!Summary of Changes diff --git a/gh-cli-for-release-notes.sh b/gh-cli-for-release-notes.sh index 95091fa26..565f345ef 100755 --- a/gh-cli-for-release-notes.sh +++ b/gh-cli-for-release-notes.sh @@ -26,14 +26,14 @@ echo =========================== echo echo "Summary of Changes:" echo -echo "Breaking changes:" +echo "Breaking Changes:" echo gh issue list -S 'milestone:"'"${MILESTONE}"'" label:breaking' -s all -L 500 --json number,title --jq '.[] | "- GH #\(.number) \(.title)"' gh pr list -S 'milestone:"'"${MILESTONE}"'" label:breaking' -s all -L 500 --json number,title --jq '.[] | "- PR #\(.number) \(.title)"' echo -echo "Features and enhancements:" +echo "Features and Enhancements:" echo gh issue list -S 'milestone:"'"${MILESTONE}"'" -label:breaking label:enhancement' -s all -L 500 --json number,title --jq '.[] | "- GH #\(.number) \(.title)"' @@ -42,7 +42,7 @@ gh pr list -S 'milestone:"'"${MILESTONE}"'" -label:breaking label:enhancement gh pr list -S 'milestone:"'"${MILESTONE}"'" -label:breaking -label:enhancement label:feature' -s all -L 500 --json number,title --jq '.[] | "- PR #\(.number) \(.title)"' echo -echo "Bug fixes and improvements:" +echo "Bug Fixes and Improvements:" echo gh issue list -S 'milestone:"'"${MILESTONE}"'" -label:breaking -label:enhancement -label:feature' -s all -L 500 --json number,title --jq '.[] | "- GH #\(.number) \(.title)"' From 32350685459131c634acb39a9cdfe98c45f1a338 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Tue, 27 Feb 2024 11:55:38 +0100 Subject: [PATCH 344/395] chore(tcpserver): regenerate vs170 project and add to solution --- Net/samples/samples_vs170.sln | 668 +++++++++--------- Net/samples/tcpserver/tcpserver_vs170.vcxproj | 382 +++++++++- .../tcpserver/tcpserver_vs170.vcxproj.filters | 2 +- 3 files changed, 723 insertions(+), 329 deletions(-) diff --git a/Net/samples/samples_vs170.sln b/Net/samples/samples_vs170.sln index 44ed6f028..24b63bde7 100644 --- a/Net/samples/samples_vs170.sln +++ b/Net/samples/samples_vs170.sln @@ -1,5 +1,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 +VisualStudioVersion = 17.9.34607.119 +MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dict", "dict\dict_vs170.vcxproj", "{90F24341-F59F-385F-A8D6-66AB377FF033}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_vs170.vcxproj", "{D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}" @@ -26,490 +28,516 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SMTPLogger", "SMTPLogger\SM EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ifconfig", "ifconfig\ifconfig_vs170.vcxproj", "{BD3A18C6-22B6-3B10-913B-7A84D1845CA3}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcpserver", "tcpserver\tcpserver_vs170.vcxproj", "{62C6ABC1-F799-3071-A78E-532630841583}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution debug_shared|Win32 = debug_shared|Win32 - release_shared|Win32 = release_shared|Win32 - debug_static_mt|Win32 = debug_static_mt|Win32 - release_static_mt|Win32 = release_static_mt|Win32 - debug_static_md|Win32 = debug_static_md|Win32 - release_static_md|Win32 = release_static_md|Win32 debug_shared|x64 = debug_shared|x64 - release_shared|x64 = release_shared|x64 - debug_static_mt|x64 = debug_static_mt|x64 - release_static_mt|x64 = release_static_mt|x64 + debug_static_md|Win32 = debug_static_md|Win32 debug_static_md|x64 = debug_static_md|x64 + debug_static_mt|Win32 = debug_static_mt|Win32 + debug_static_mt|x64 = debug_static_mt|x64 + release_shared|Win32 = release_shared|Win32 + release_shared|x64 = release_shared|x64 + release_static_md|Win32 = release_static_md|Win32 release_static_md|x64 = release_static_md|x64 + release_static_mt|Win32 = release_static_mt|Win32 + release_static_mt|x64 = release_static_mt|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|Win32.Build.0 = debug_shared|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|Win32.Build.0 = release_shared|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|x64.ActiveCfg = debug_shared|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|x64.Build.0 = debug_shared|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|x64.ActiveCfg = release_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|x64.Build.0 = release_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|x64.Deploy.0 = release_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|x64.Build.0 = debug_static_md|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|Win32.Build.0 = release_shared|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|x64.ActiveCfg = release_shared|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|x64.Build.0 = release_shared|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|x64.Deploy.0 = release_shared|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|x64.ActiveCfg = release_static_md|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|x64.Build.0 = release_static_md|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Build.0 = debug_shared|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Build.0 = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.ActiveCfg = debug_shared|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Build.0 = debug_shared|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.ActiveCfg = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Build.0 = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Deploy.0 = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Build.0 = debug_static_md|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Build.0 = release_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.ActiveCfg = release_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Build.0 = release_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Deploy.0 = release_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.ActiveCfg = release_static_md|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Build.0 = release_static_md|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|Win32.Build.0 = debug_shared|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|Win32.Build.0 = release_shared|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|x64.ActiveCfg = debug_shared|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|x64.Build.0 = debug_shared|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|x64.ActiveCfg = release_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|x64.Build.0 = release_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|x64.Deploy.0 = release_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|x64.Build.0 = debug_static_md|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|Win32.Build.0 = release_shared|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|x64.ActiveCfg = release_shared|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|x64.Build.0 = release_shared|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|x64.Deploy.0 = release_shared|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|x64.ActiveCfg = release_static_md|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|x64.Build.0 = release_static_md|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|Win32.Build.0 = debug_shared|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|Win32.Build.0 = release_shared|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|x64.ActiveCfg = debug_shared|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|x64.Build.0 = debug_shared|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|x64.ActiveCfg = release_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|x64.Build.0 = release_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|x64.Deploy.0 = release_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|x64.Build.0 = debug_static_md|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|Win32.Build.0 = release_shared|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|x64.ActiveCfg = release_shared|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|x64.Build.0 = release_shared|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|x64.Deploy.0 = release_shared|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|x64.ActiveCfg = release_static_md|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|x64.Build.0 = release_static_md|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|Win32.Build.0 = debug_shared|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|Win32.Build.0 = release_shared|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|x64.ActiveCfg = debug_shared|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|x64.Build.0 = debug_shared|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|x64.ActiveCfg = release_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|x64.Build.0 = release_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|x64.Deploy.0 = release_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|x64.Build.0 = debug_static_md|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|Win32.Build.0 = release_shared|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|x64.ActiveCfg = release_shared|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|x64.Build.0 = release_shared|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|x64.Deploy.0 = release_shared|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|x64.ActiveCfg = release_static_md|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|x64.Build.0 = release_static_md|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|Win32.Build.0 = debug_shared|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|Win32.Build.0 = release_shared|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|x64.ActiveCfg = debug_shared|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|x64.Build.0 = debug_shared|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|x64.ActiveCfg = release_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|x64.Build.0 = release_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|x64.Deploy.0 = release_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|x64.Build.0 = debug_static_md|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|Win32.Build.0 = release_shared|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|x64.ActiveCfg = release_shared|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|x64.Build.0 = release_shared|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|x64.Deploy.0 = release_shared|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|x64.ActiveCfg = release_static_md|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|x64.Build.0 = release_static_md|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Build.0 = debug_shared|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Build.0 = release_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.ActiveCfg = debug_shared|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Build.0 = debug_shared|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.ActiveCfg = release_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Build.0 = release_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Deploy.0 = release_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Build.0 = debug_static_md|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Build.0 = release_shared|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.ActiveCfg = release_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Build.0 = release_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Deploy.0 = release_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.ActiveCfg = release_static_md|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Build.0 = release_static_md|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Build.0 = debug_shared|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Build.0 = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.ActiveCfg = debug_shared|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Build.0 = debug_shared|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.ActiveCfg = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Build.0 = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Deploy.0 = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Build.0 = debug_static_md|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Build.0 = release_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.ActiveCfg = release_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Build.0 = release_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Deploy.0 = release_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.ActiveCfg = release_static_md|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Build.0 = release_static_md|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|Win32.Build.0 = release_shared|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|x64.Build.0 = debug_shared|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|x64.ActiveCfg = release_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|x64.Build.0 = release_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|x64.Deploy.0 = release_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|Win32.Build.0 = release_shared|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|x64.ActiveCfg = release_shared|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|x64.Build.0 = release_shared|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|x64.Deploy.0 = release_shared|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|x64.Build.0 = release_static_md|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|Win32.Build.0 = debug_shared|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.Build.0 = release_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.ActiveCfg = debug_shared|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.Build.0 = debug_shared|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.ActiveCfg = release_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.Build.0 = release_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.Deploy.0 = release_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|x64.Build.0 = debug_static_md|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.Build.0 = release_shared|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.ActiveCfg = release_shared|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.Build.0 = release_shared|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.Deploy.0 = release_shared|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|x64.ActiveCfg = release_static_md|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|x64.Build.0 = release_static_md|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|Win32.Build.0 = debug_shared|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|Win32.Build.0 = release_shared|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|x64.ActiveCfg = debug_shared|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|x64.Build.0 = debug_shared|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|x64.ActiveCfg = release_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|x64.Build.0 = release_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|x64.Deploy.0 = release_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|x64.Build.0 = debug_static_md|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|Win32.Build.0 = release_shared|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|x64.ActiveCfg = release_shared|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|x64.Build.0 = release_shared|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|x64.Deploy.0 = release_shared|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|x64.ActiveCfg = release_static_md|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|x64.Build.0 = release_static_md|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|Win32.Build.0 = debug_shared|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|Win32.Build.0 = release_shared|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|x64.ActiveCfg = debug_shared|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|x64.Build.0 = debug_shared|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|x64.ActiveCfg = release_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|x64.Build.0 = release_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|x64.Deploy.0 = release_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|x64.Build.0 = debug_static_md|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|Win32.Build.0 = release_shared|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|x64.ActiveCfg = release_shared|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|x64.Build.0 = release_shared|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|x64.Deploy.0 = release_shared|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|x64.ActiveCfg = release_static_md|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|x64.Build.0 = release_static_md|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|Win32.Build.0 = debug_shared|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|Win32.Build.0 = release_shared|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|x64.ActiveCfg = debug_shared|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|x64.Build.0 = debug_shared|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|x64.ActiveCfg = release_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|x64.Build.0 = release_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|x64.Deploy.0 = release_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|x64.Build.0 = debug_static_md|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|Win32.Build.0 = release_shared|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|x64.ActiveCfg = release_shared|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|x64.Build.0 = release_shared|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|x64.Deploy.0 = release_shared|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|x64.ActiveCfg = release_static_md|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|x64.Build.0 = release_static_md|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {62C6ABC1-F799-3071-A78E-532630841583}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {62C6ABC1-F799-3071-A78E-532630841583}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {62C6ABC1-F799-3071-A78E-532630841583}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {62C6ABC1-F799-3071-A78E-532630841583}.debug_shared|x64.Build.0 = debug_shared|x64 + {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {62C6ABC1-F799-3071-A78E-532630841583}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {62C6ABC1-F799-3071-A78E-532630841583}.release_shared|Win32.Build.0 = release_shared|Win32 + {62C6ABC1-F799-3071-A78E-532630841583}.release_shared|x64.ActiveCfg = release_shared|x64 + {62C6ABC1-F799-3071-A78E-532630841583}.release_shared|x64.Build.0 = release_shared|x64 + {62C6ABC1-F799-3071-A78E-532630841583}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {62C6ABC1-F799-3071-A78E-532630841583}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {62C6ABC1-F799-3071-A78E-532630841583}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {62C6ABC1-F799-3071-A78E-532630841583}.release_static_md|x64.Build.0 = release_static_md|x64 + {62C6ABC1-F799-3071-A78E-532630841583}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {62C6ABC1-F799-3071-A78E-532630841583}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {62C6ABC1-F799-3071-A78E-532630841583}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {62C6ABC1-F799-3071-A78E-532630841583}.release_static_mt|x64.Build.0 = release_static_mt|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Net/samples/tcpserver/tcpserver_vs170.vcxproj b/Net/samples/tcpserver/tcpserver_vs170.vcxproj index d220ce3f8..5357f02c3 100644 --- a/Net/samples/tcpserver/tcpserver_vs170.vcxproj +++ b/Net/samples/tcpserver/tcpserver_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 tcpserver {62C6ABC1-F799-3071-A78E-532630841583} tcpserver @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34511.75 + tcpserverd + tcpserverd + tcpserverd + tcpserver + tcpserver + tcpserver tcpserverd tcpserverd tcpserverd @@ -171,6 +250,36 @@ tcpserver tcpserver + + binA64\ + objA64\tcpserver\$(Configuration)\ + true + + + binA64\ + objA64\tcpserver\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\tcpserver\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\tcpserver\$(Configuration)\ + false + + + binA64\static_md\ + objA64\tcpserver\$(Configuration)\ + true + + + binA64\static_md\ + objA64\tcpserver\$(Configuration)\ + false + bin\ obj\tcpserver\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\tcpserver\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\tcpserver.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\tcpserverd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\tcpserver.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\tcpserverd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\tcpserverd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\tcpserverd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\tcpserverd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\tcpserverd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\tcpserverd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\tcpserverd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/tcpserver/tcpserver_vs170.vcxproj.filters b/Net/samples/tcpserver/tcpserver_vs170.vcxproj.filters index a7f60d206..8dbb3450b 100644 --- a/Net/samples/tcpserver/tcpserver_vs170.vcxproj.filters +++ b/Net/samples/tcpserver/tcpserver_vs170.vcxproj.filters @@ -2,7 +2,7 @@ - {68a6b28f-b573-40ca-889d-5123c0859063} + {d9c28a52-bf05-42ec-abc1-d0135b494ce1} From 6b3aab0624955807e8fba168fb0423fbe449610b Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Tue, 27 Feb 2024 12:16:10 +0100 Subject: [PATCH 345/395] chore(tcpclient): create sample --- Net/samples/samples_vs170.sln | 215 ++++ Net/samples/tcpclient/CMakeLists.txt | 2 + Net/samples/tcpclient/Makefile | 15 + Net/samples/tcpclient/src/tcpclient.cpp | 52 + Net/samples/tcpclient/tcpclient.progen | 11 + Net/samples/tcpclient/tcpclient_vs160.vcxproj | 658 ++++++++++++ .../tcpclient/tcpclient_vs160.vcxproj.filters | 13 + Net/samples/tcpclient/tcpclient_vs170.vcxproj | 973 ++++++++++++++++++ .../tcpclient/tcpclient_vs170.vcxproj.filters | 13 + Net/samples/tcpclient/tcpclient_vs90.vcproj | 445 ++++++++ 10 files changed, 2397 insertions(+) create mode 100644 Net/samples/tcpclient/CMakeLists.txt create mode 100644 Net/samples/tcpclient/Makefile create mode 100644 Net/samples/tcpclient/src/tcpclient.cpp create mode 100644 Net/samples/tcpclient/tcpclient.progen create mode 100644 Net/samples/tcpclient/tcpclient_vs160.vcxproj create mode 100644 Net/samples/tcpclient/tcpclient_vs160.vcxproj.filters create mode 100644 Net/samples/tcpclient/tcpclient_vs170.vcxproj create mode 100644 Net/samples/tcpclient/tcpclient_vs170.vcxproj.filters create mode 100644 Net/samples/tcpclient/tcpclient_vs90.vcproj diff --git a/Net/samples/samples_vs170.sln b/Net/samples/samples_vs170.sln index 24b63bde7..476a7a123 100644 --- a/Net/samples/samples_vs170.sln +++ b/Net/samples/samples_vs170.sln @@ -30,516 +30,731 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ifconfig", "ifconfig\ifconf EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcpserver", "tcpserver\tcpserver_vs170.vcxproj", "{62C6ABC1-F799-3071-A78E-532630841583}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcpclient", "tcpclient\tcpclient_vs170.vcxproj", "{E288BEB9-F0C7-3D6C-A300-F7A889DA6497}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|ARM64 = debug_shared|ARM64 debug_shared|Win32 = debug_shared|Win32 debug_shared|x64 = debug_shared|x64 + debug_static_md|ARM64 = debug_static_md|ARM64 debug_static_md|Win32 = debug_static_md|Win32 debug_static_md|x64 = debug_static_md|x64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 debug_static_mt|Win32 = debug_static_mt|Win32 debug_static_mt|x64 = debug_static_mt|x64 + release_shared|ARM64 = release_shared|ARM64 release_shared|Win32 = release_shared|Win32 release_shared|x64 = release_shared|x64 + release_static_md|ARM64 = release_static_md|ARM64 release_static_md|Win32 = release_static_md|Win32 release_static_md|x64 = release_static_md|x64 + release_static_mt|ARM64 = release_static_mt|ARM64 release_static_mt|Win32 = release_static_mt|Win32 release_static_mt|x64 = release_static_mt|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|ARM64.Build.0 = debug_shared|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|Win32.Build.0 = debug_shared|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|x64.ActiveCfg = debug_shared|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|x64.Build.0 = debug_shared|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|x64.Build.0 = debug_static_md|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|ARM64.ActiveCfg = release_shared|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|ARM64.Build.0 = release_shared|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|Win32.ActiveCfg = release_shared|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|Win32.Build.0 = release_shared|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|Win32.Deploy.0 = release_shared|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|x64.ActiveCfg = release_shared|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|x64.Build.0 = release_shared|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|x64.Deploy.0 = release_shared|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|ARM64.Build.0 = release_static_md|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|Win32.Build.0 = release_static_md|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|x64.ActiveCfg = release_static_md|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|x64.Build.0 = release_static_md|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|x64.Build.0 = release_static_mt|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|ARM64.Build.0 = debug_shared|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Build.0 = debug_shared|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.ActiveCfg = debug_shared|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Build.0 = debug_shared|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Build.0 = debug_static_md|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|ARM64.ActiveCfg = release_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|ARM64.Build.0 = release_shared|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.ActiveCfg = release_shared|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Build.0 = release_shared|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Deploy.0 = release_shared|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.ActiveCfg = release_shared|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Build.0 = release_shared|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Deploy.0 = release_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|ARM64.Build.0 = release_static_md|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Build.0 = release_static_md|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.ActiveCfg = release_static_md|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Build.0 = release_static_md|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Build.0 = release_static_mt|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|ARM64.Build.0 = debug_shared|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|Win32.Build.0 = debug_shared|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|x64.ActiveCfg = debug_shared|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|x64.Build.0 = debug_shared|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|x64.Build.0 = debug_static_md|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|ARM64.ActiveCfg = release_shared|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|ARM64.Build.0 = release_shared|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|Win32.ActiveCfg = release_shared|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|Win32.Build.0 = release_shared|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|Win32.Deploy.0 = release_shared|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|x64.ActiveCfg = release_shared|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|x64.Build.0 = release_shared|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|x64.Deploy.0 = release_shared|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|ARM64.Build.0 = release_static_md|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|Win32.Build.0 = release_static_md|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|x64.ActiveCfg = release_static_md|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|x64.Build.0 = release_static_md|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|x64.Build.0 = release_static_mt|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|ARM64.Build.0 = debug_shared|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|Win32.Build.0 = debug_shared|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|x64.ActiveCfg = debug_shared|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|x64.Build.0 = debug_shared|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|x64.Build.0 = debug_static_md|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|ARM64.ActiveCfg = release_shared|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|ARM64.Build.0 = release_shared|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|Win32.ActiveCfg = release_shared|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|Win32.Build.0 = release_shared|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|Win32.Deploy.0 = release_shared|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|x64.ActiveCfg = release_shared|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|x64.Build.0 = release_shared|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|x64.Deploy.0 = release_shared|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|ARM64.Build.0 = release_static_md|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|Win32.Build.0 = release_static_md|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|x64.ActiveCfg = release_static_md|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|x64.Build.0 = release_static_md|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|x64.Build.0 = release_static_mt|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|ARM64.Build.0 = debug_shared|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|Win32.Build.0 = debug_shared|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|x64.ActiveCfg = debug_shared|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|x64.Build.0 = debug_shared|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|x64.Build.0 = debug_static_md|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|ARM64.ActiveCfg = release_shared|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|ARM64.Build.0 = release_shared|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|Win32.ActiveCfg = release_shared|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|Win32.Build.0 = release_shared|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|Win32.Deploy.0 = release_shared|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|x64.ActiveCfg = release_shared|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|x64.Build.0 = release_shared|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|x64.Deploy.0 = release_shared|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|ARM64.Build.0 = release_static_md|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|Win32.Build.0 = release_static_md|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|x64.ActiveCfg = release_static_md|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|x64.Build.0 = release_static_md|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|x64.Build.0 = release_static_mt|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|ARM64.Build.0 = debug_shared|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|Win32.Build.0 = debug_shared|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|x64.ActiveCfg = debug_shared|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|x64.Build.0 = debug_shared|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|x64.Build.0 = debug_static_md|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|ARM64.ActiveCfg = release_shared|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|ARM64.Build.0 = release_shared|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|Win32.ActiveCfg = release_shared|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|Win32.Build.0 = release_shared|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|Win32.Deploy.0 = release_shared|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|x64.ActiveCfg = release_shared|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|x64.Build.0 = release_shared|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|x64.Deploy.0 = release_shared|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|ARM64.Build.0 = release_static_md|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|Win32.Build.0 = release_static_md|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|x64.ActiveCfg = release_static_md|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|x64.Build.0 = release_static_md|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|x64.Build.0 = release_static_mt|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|ARM64.Build.0 = debug_shared|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Build.0 = debug_shared|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.ActiveCfg = debug_shared|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Build.0 = debug_shared|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Build.0 = debug_static_md|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|ARM64.ActiveCfg = release_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|ARM64.Build.0 = release_shared|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.ActiveCfg = release_shared|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Build.0 = release_shared|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Deploy.0 = release_shared|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.ActiveCfg = release_shared|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Build.0 = release_shared|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Deploy.0 = release_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|ARM64.Build.0 = release_static_md|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Build.0 = release_static_md|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.ActiveCfg = release_static_md|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Build.0 = release_static_md|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Build.0 = release_static_mt|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|ARM64.Build.0 = debug_shared|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Build.0 = debug_shared|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.ActiveCfg = debug_shared|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Build.0 = debug_shared|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Build.0 = debug_static_md|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|ARM64.ActiveCfg = release_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|ARM64.Build.0 = release_shared|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.ActiveCfg = release_shared|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Build.0 = release_shared|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Deploy.0 = release_shared|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.ActiveCfg = release_shared|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Build.0 = release_shared|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Deploy.0 = release_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|ARM64.Build.0 = release_static_md|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Build.0 = release_static_md|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.ActiveCfg = release_static_md|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Build.0 = release_static_md|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Build.0 = release_static_mt|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|ARM64.Build.0 = debug_shared|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|x64.Build.0 = debug_shared|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|ARM64.ActiveCfg = release_shared|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|ARM64.Build.0 = release_shared|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|Win32.Build.0 = release_shared|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|x64.ActiveCfg = release_shared|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|x64.Build.0 = release_shared|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|x64.Deploy.0 = release_shared|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|ARM64.Build.0 = release_static_md|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|x64.Build.0 = release_static_md|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|ARM64.Build.0 = debug_shared|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|Win32.Build.0 = debug_shared|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.ActiveCfg = debug_shared|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.Build.0 = debug_shared|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|x64.Build.0 = debug_static_md|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|ARM64.ActiveCfg = release_shared|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|ARM64.Build.0 = release_shared|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.ActiveCfg = release_shared|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.Build.0 = release_shared|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.Deploy.0 = release_shared|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.ActiveCfg = release_shared|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.Build.0 = release_shared|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.Deploy.0 = release_shared|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|ARM64.Build.0 = release_static_md|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|Win32.Build.0 = release_static_md|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|x64.ActiveCfg = release_static_md|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|x64.Build.0 = release_static_md|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|x64.Build.0 = release_static_mt|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|ARM64.Build.0 = debug_shared|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|Win32.Build.0 = debug_shared|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|x64.ActiveCfg = debug_shared|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|x64.Build.0 = debug_shared|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|x64.Build.0 = debug_static_md|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|ARM64.ActiveCfg = release_shared|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|ARM64.Build.0 = release_shared|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|Win32.ActiveCfg = release_shared|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|Win32.Build.0 = release_shared|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|Win32.Deploy.0 = release_shared|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|x64.ActiveCfg = release_shared|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|x64.Build.0 = release_shared|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|x64.Deploy.0 = release_shared|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|ARM64.Build.0 = release_static_md|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|Win32.Build.0 = release_static_md|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|x64.ActiveCfg = release_static_md|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|x64.Build.0 = release_static_md|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|x64.Build.0 = release_static_mt|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|ARM64.Build.0 = debug_shared|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|Win32.Build.0 = debug_shared|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|x64.ActiveCfg = debug_shared|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|x64.Build.0 = debug_shared|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|x64.Build.0 = debug_static_md|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|ARM64.ActiveCfg = release_shared|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|ARM64.Build.0 = release_shared|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|Win32.ActiveCfg = release_shared|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|Win32.Build.0 = release_shared|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|Win32.Deploy.0 = release_shared|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|x64.ActiveCfg = release_shared|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|x64.Build.0 = release_shared|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|x64.Deploy.0 = release_shared|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|ARM64.Build.0 = release_static_md|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|Win32.Build.0 = release_static_md|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|x64.ActiveCfg = release_static_md|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|x64.Build.0 = release_static_md|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|x64.Build.0 = release_static_mt|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|ARM64.Build.0 = debug_shared|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|Win32.Build.0 = debug_shared|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|x64.ActiveCfg = debug_shared|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|x64.Build.0 = debug_shared|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|x64.Build.0 = debug_static_md|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|ARM64.ActiveCfg = release_shared|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|ARM64.Build.0 = release_shared|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|Win32.ActiveCfg = release_shared|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|Win32.Build.0 = release_shared|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|Win32.Deploy.0 = release_shared|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|x64.ActiveCfg = release_shared|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|x64.Build.0 = release_shared|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|x64.Deploy.0 = release_shared|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|ARM64.Build.0 = release_static_md|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|Win32.Build.0 = release_static_md|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|x64.ActiveCfg = release_static_md|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|x64.Build.0 = release_static_md|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|x64.Build.0 = release_static_mt|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {62C6ABC1-F799-3071-A78E-532630841583}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {62C6ABC1-F799-3071-A78E-532630841583}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 {62C6ABC1-F799-3071-A78E-532630841583}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {62C6ABC1-F799-3071-A78E-532630841583}.debug_shared|Win32.Build.0 = debug_shared|Win32 {62C6ABC1-F799-3071-A78E-532630841583}.debug_shared|x64.ActiveCfg = debug_shared|x64 {62C6ABC1-F799-3071-A78E-532630841583}.debug_shared|x64.Build.0 = debug_shared|x64 + {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {62C6ABC1-F799-3071-A78E-532630841583}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {62C6ABC1-F799-3071-A78E-532630841583}.release_shared|ARM64.Build.0 = release_shared|ARM64 {62C6ABC1-F799-3071-A78E-532630841583}.release_shared|Win32.ActiveCfg = release_shared|Win32 {62C6ABC1-F799-3071-A78E-532630841583}.release_shared|Win32.Build.0 = release_shared|Win32 {62C6ABC1-F799-3071-A78E-532630841583}.release_shared|x64.ActiveCfg = release_shared|x64 {62C6ABC1-F799-3071-A78E-532630841583}.release_shared|x64.Build.0 = release_shared|x64 + {62C6ABC1-F799-3071-A78E-532630841583}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {62C6ABC1-F799-3071-A78E-532630841583}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 {62C6ABC1-F799-3071-A78E-532630841583}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 {62C6ABC1-F799-3071-A78E-532630841583}.release_static_md|Win32.Build.0 = release_static_md|Win32 {62C6ABC1-F799-3071-A78E-532630841583}.release_static_md|x64.ActiveCfg = release_static_md|x64 {62C6ABC1-F799-3071-A78E-532630841583}.release_static_md|x64.Build.0 = release_static_md|x64 + {62C6ABC1-F799-3071-A78E-532630841583}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {62C6ABC1-F799-3071-A78E-532630841583}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 {62C6ABC1-F799-3071-A78E-532630841583}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {62C6ABC1-F799-3071-A78E-532630841583}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {62C6ABC1-F799-3071-A78E-532630841583}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {62C6ABC1-F799-3071-A78E-532630841583}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_shared|x64.Build.0 = debug_shared|x64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_shared|Win32.Build.0 = release_shared|Win32 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_shared|x64.ActiveCfg = release_shared|x64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_shared|x64.Build.0 = release_shared|x64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_md|x64.Build.0 = release_static_md|x64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_mt|x64.Build.0 = release_static_mt|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {97E90728-E529-432A-A271-B40079F7ACE2} + EndGlobalSection EndGlobal diff --git a/Net/samples/tcpclient/CMakeLists.txt b/Net/samples/tcpclient/CMakeLists.txt new file mode 100644 index 000000000..3220c5b43 --- /dev/null +++ b/Net/samples/tcpclient/CMakeLists.txt @@ -0,0 +1,2 @@ +add_executable(tcpclient src/tcpclient.cpp) +target_link_libraries(tcpclient PUBLIC Poco::Net) diff --git a/Net/samples/tcpclient/Makefile b/Net/samples/tcpclient/Makefile new file mode 100644 index 000000000..2e6bd8d15 --- /dev/null +++ b/Net/samples/tcpclient/Makefile @@ -0,0 +1,15 @@ +# +# Makefile +# +# Makefile for Poco tcpclient +# + +include $(POCO_BASE)/build/rules/global + +objects = tcpclient + +target = tcpclient +target_version = 1 +target_libs = PocoNet PocoFoundation + +include $(POCO_BASE)/build/rules/exec diff --git a/Net/samples/tcpclient/src/tcpclient.cpp b/Net/samples/tcpclient/src/tcpclient.cpp new file mode 100644 index 000000000..0ec4dbd4b --- /dev/null +++ b/Net/samples/tcpclient/src/tcpclient.cpp @@ -0,0 +1,52 @@ +// +// tcpclient.cpp +// +// This sample demonstrates the StreamSocket and SocketStream classes. +// +// Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/StreamSocket.h" +#include "Poco/Net/SocketAddress.h" +#include "Poco/Path.h" +#include "Poco/Exception.h" +#include + + +using Poco::Net::StreamSocket; +using Poco::Net::SocketAddress; +using Poco::Path; +using Poco::Exception; + + +int main(int argc, char** argv) +{ + if (argc != 3) + { + Path p(argv[0]); + std::cout << "usage: " << p.getBaseName() << " IP:PORT DATA" << std::endl; + std::cout << " sends DATA to IP:PORT" << std::endl; + return 1; + } + std::string addr(argv[1]); + std::string str(argv[2]); + + try + { + SocketAddress sa(addr); + StreamSocket sock(sa); + + sock.sendBytes(str.data(), static_cast(str.length())); + } + catch (Exception& exc) + { + std::cerr << exc.displayText() << std::endl; + return 1; + } + + return 0; +} diff --git a/Net/samples/tcpclient/tcpclient.progen b/Net/samples/tcpclient/tcpclient.progen new file mode 100644 index 000000000..9ffca51c2 --- /dev/null +++ b/Net/samples/tcpclient/tcpclient.progen @@ -0,0 +1,11 @@ +vc.project.guid = ${vc.project.guidFromName} +vc.project.name = ${vc.project.baseName} +vc.project.target = ${vc.project.name} +vc.project.type = executable +vc.project.pocobase = ..\\..\\.. +vc.project.platforms = Win32 +vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md +vc.project.prototype = ${vc.project.name}_vs90.vcproj +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Net\\include +vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Net/samples/tcpclient/tcpclient_vs160.vcxproj b/Net/samples/tcpclient/tcpclient_vs160.vcxproj new file mode 100644 index 000000000..d6d9f1c6c --- /dev/null +++ b/Net/samples/tcpclient/tcpclient_vs160.vcxproj @@ -0,0 +1,658 @@ + + + + + debug_shared + Win32 + + + debug_shared + x64 + + + debug_static_md + Win32 + + + debug_static_md + x64 + + + debug_static_mt + Win32 + + + debug_static_mt + x64 + + + release_shared + Win32 + + + release_shared + x64 + + + release_static_md + Win32 + + + release_static_md + x64 + + + release_static_mt + Win32 + + + release_static_mt + x64 + + + + 17.0 + tcpclient + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497} + tcpclient + Win32Proj + + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>17.0.34511.75 + tcpclientd + tcpclientd + tcpclientd + tcpclient + tcpclient + tcpclient + tcpclientd + tcpclientd + tcpclientd + tcpclient + tcpclient + tcpclient + + + bin\ + obj\tcpclient\$(Configuration)\ + true + + + bin\ + obj\tcpclient\$(Configuration)\ + false + + + bin\static_mt\ + obj\tcpclient\$(Configuration)\ + true + + + bin\static_mt\ + obj\tcpclient\$(Configuration)\ + false + + + bin\static_md\ + obj\tcpclient\$(Configuration)\ + true + + + bin\static_md\ + obj\tcpclient\$(Configuration)\ + false + + + bin64\ + obj64\tcpclient\$(Configuration)\ + true + + + bin64\ + obj64\tcpclient\$(Configuration)\ + false + + + bin64\static_mt\ + obj64\tcpclient\$(Configuration)\ + true + + + bin64\static_mt\ + obj64\tcpclient\$(Configuration)\ + false + + + bin64\static_md\ + obj64\tcpclient\$(Configuration)\ + true + + + bin64\static_md\ + obj64\tcpclient\$(Configuration)\ + false + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\tcpclientd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\tcpclient.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\tcpclientd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\tcpclient.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\tcpclientd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\tcpclient.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\tcpclientd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\tcpclient.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\tcpclientd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\tcpclient.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\tcpclientd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\tcpclient.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + true + stdcpp17 + stdc11 + + + + + diff --git a/Net/samples/tcpclient/tcpclient_vs160.vcxproj.filters b/Net/samples/tcpclient/tcpclient_vs160.vcxproj.filters new file mode 100644 index 000000000..c8691cfdb --- /dev/null +++ b/Net/samples/tcpclient/tcpclient_vs160.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {87c78361-daea-4728-a565-b99fa7bc529a} + + + + + Source Files + + + \ No newline at end of file diff --git a/Net/samples/tcpclient/tcpclient_vs170.vcxproj b/Net/samples/tcpclient/tcpclient_vs170.vcxproj new file mode 100644 index 000000000..f76834d2f --- /dev/null +++ b/Net/samples/tcpclient/tcpclient_vs170.vcxproj @@ -0,0 +1,973 @@ + + + + + debug_shared + ARM64 + + + debug_shared + Win32 + + + debug_shared + x64 + + + debug_static_md + ARM64 + + + debug_static_md + Win32 + + + debug_static_md + x64 + + + debug_static_mt + ARM64 + + + debug_static_mt + Win32 + + + debug_static_mt + x64 + + + release_shared + ARM64 + + + release_shared + Win32 + + + release_shared + x64 + + + release_static_md + ARM64 + + + release_static_md + Win32 + + + release_static_md + x64 + + + release_static_mt + ARM64 + + + release_static_mt + Win32 + + + release_static_mt + x64 + + + + 17.0 + tcpclient + {E288BEB9-F0C7-3D6C-A300-F7A889DA6497} + tcpclient + Win32Proj + + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>17.0.34511.75 + tcpclientd + tcpclientd + tcpclientd + tcpclient + tcpclient + tcpclient + tcpclientd + tcpclientd + tcpclientd + tcpclient + tcpclient + tcpclient + tcpclientd + tcpclientd + tcpclientd + tcpclient + tcpclient + tcpclient + + + binA64\ + objA64\tcpclient\$(Configuration)\ + true + + + binA64\ + objA64\tcpclient\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\tcpclient\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\tcpclient\$(Configuration)\ + false + + + binA64\static_md\ + objA64\tcpclient\$(Configuration)\ + true + + + binA64\static_md\ + objA64\tcpclient\$(Configuration)\ + false + + + bin\ + obj\tcpclient\$(Configuration)\ + true + + + bin\ + obj\tcpclient\$(Configuration)\ + false + + + bin\static_mt\ + obj\tcpclient\$(Configuration)\ + true + + + bin\static_mt\ + obj\tcpclient\$(Configuration)\ + false + + + bin\static_md\ + obj\tcpclient\$(Configuration)\ + true + + + bin\static_md\ + obj\tcpclient\$(Configuration)\ + false + + + bin64\ + obj64\tcpclient\$(Configuration)\ + true + + + bin64\ + obj64\tcpclient\$(Configuration)\ + false + + + bin64\static_mt\ + obj64\tcpclient\$(Configuration)\ + true + + + bin64\static_mt\ + obj64\tcpclient\$(Configuration)\ + false + + + bin64\static_md\ + obj64\tcpclient\$(Configuration)\ + true + + + bin64\static_md\ + obj64\tcpclient\$(Configuration)\ + false + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\tcpclient.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\tcpclientd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\tcpclient.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\tcpclientd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\tcpclientd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\tcpclient.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\tcpclientd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\tcpclient.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\tcpclientd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\tcpclient.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\tcpclientd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\tcpclient.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\tcpclientd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\tcpclient.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\tcpclientd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\tcpclient.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + true + stdcpp17 + stdc11 + + + + + diff --git a/Net/samples/tcpclient/tcpclient_vs170.vcxproj.filters b/Net/samples/tcpclient/tcpclient_vs170.vcxproj.filters new file mode 100644 index 000000000..5409a5f1a --- /dev/null +++ b/Net/samples/tcpclient/tcpclient_vs170.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {ad6a19f8-964e-4e1d-8f8f-54747985384c} + + + + + Source Files + + + \ No newline at end of file diff --git a/Net/samples/tcpclient/tcpclient_vs90.vcproj b/Net/samples/tcpclient/tcpclient_vs90.vcproj new file mode 100644 index 000000000..0784287cc --- /dev/null +++ b/Net/samples/tcpclient/tcpclient_vs90.vcproj @@ -0,0 +1,445 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 8119259c896c08d3939cad84542ab66e84d510fa Mon Sep 17 00:00:00 2001 From: Pavle Dragisic Date: Wed, 28 Feb 2024 12:23:42 +0100 Subject: [PATCH 346/395] Add copyStreamRange to StreamCopier (#4474) * feat(Foundation): StreamCopier copyStreamRange #4413 * chore(ci): disable instalation of unused databases in odbc job --------- Co-authored-by: Pavle Co-authored-by: Alex Fabijanic --- .github/workflows/ci.yml | 44 +++--- Foundation/include/Poco/StreamCopier.h | 144 ++++++++++++++++++ Foundation/src/StreamCopier.cpp | 124 ++++----------- Foundation/testsuite/src/StreamCopierTest.cpp | 140 +++++++++++++++++ Foundation/testsuite/src/StreamCopierTest.h | 4 + 5 files changed, 342 insertions(+), 114 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eb48354ba..a4b97c867 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -660,27 +660,27 @@ jobs: linux-gcc-make-odbc: runs-on: ubuntu-22.04 services: - mysql: - image: mysql:8.1.0 - env: - MYSQL_ALLOW_EMPTY_PASSWORD: yes - MYSQL_USER: pocotest - MYSQL_PASSWORD: pocotest - MYSQL_DATABASE: pocotest - ports: - - 3306:3306 - postgres: - image: postgres:16.0 - env: - POSTGRES_PASSWORD: postgres - ports: - - 5432:5432 - oracle: - image: container-registry.oracle.com/database/express:21.3.0-xe - env: - ORACLE_PWD: poco - ports: - - 1521:1521 + #mysql: + # image: mysql:8.1.0 + # env: + # MYSQL_ALLOW_EMPTY_PASSWORD: yes + # MYSQL_USER: pocotest + # MYSQL_PASSWORD: pocotest + # MYSQL_DATABASE: pocotest + # ports: + # - 3306:3306 + #postgres: + # image: postgres:16.0 + # env: + # POSTGRES_PASSWORD: postgres + # ports: + # - 5432:5432 + #oracle: + # image: container-registry.oracle.com/database/express:21.3.0-xe + # env: + # ORACLE_PWD: poco + # ports: + # - 1521:1521 sqlserver: image: mcr.microsoft.com/mssql/server:2022-latest env: @@ -691,7 +691,7 @@ jobs: - 1433:1433 steps: - uses: actions/checkout@v3 - - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev mysql-client alien libaio1 gnupg2 curl #odbc-postgresql + - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev alien libaio1 gnupg2 curl # libmysqlclient-dev mysql-client odbc-postgresql - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/MySQL,Data/PostgreSQL,Data/SQLite,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install # - name: Setup MySQL ODBC connector # run: | diff --git a/Foundation/include/Poco/StreamCopier.h b/Foundation/include/Poco/StreamCopier.h index fda660c43..3908cbb41 100644 --- a/Foundation/include/Poco/StreamCopier.h +++ b/Foundation/include/Poco/StreamCopier.h @@ -19,6 +19,7 @@ #include "Poco/Foundation.h" +#include "Poco/Buffer.h" #include #include #include @@ -47,6 +48,21 @@ public: /// integer is used to count the number of bytes copied. #endif + static std::streamsize copyStreamRange(std::istream& istr, std::ostream& ostr, std::streampos rangeStart, std::streamsize rangeLength, std::size_t bufferSize = 8192); + /// Writes range of bytes readable from istr to ostr, using an internal buffer. + /// + /// Returns the number of bytes copied. + +#if defined(POCO_HAVE_INT64) + static Poco::UInt64 copyStreamRange64(std::istream& istr, std::ostream& ostr, std::streampos rangeStart, std::streamsize rangeLength, std::size_t bufferSize = 8192); + /// Writes range of bytes readable from istr to ostr, using an internal buffer. + /// + /// Returns the number of bytes copied as a 64-bit unsigned integer. + /// + /// Note: the only difference to copyStreamRange() is that a 64-bit unsigned + /// integer is used to count the number of bytes copied. +#endif + static std::streamsize copyStreamUnbuffered(std::istream& istr, std::ostream& ostr); /// Writes all bytes readable from istr to ostr. /// @@ -62,6 +78,21 @@ public: /// integer is used to count the number of bytes copied. #endif +static std::streamsize copyStreamRangeUnbuffered(std::istream& istr, std::ostream& ostr, std::streampos rangeStart, std::streamsize rangeLength); + /// Writes range of bytes readable from istr to ostr. + /// + /// Returns the number of bytes copied. + +#if defined(POCO_HAVE_INT64) + static Poco::UInt64 copyStreamRangeUnbuffered64(std::istream& istr, std::ostream& ostr, std::streampos rangeStart, std::streamsize rangeLength); + /// Writes range of bytes readable from istr to ostr. + /// + /// Returns the number of bytes copied as a 64-bit unsigned integer. + /// + /// Note: the only difference to copyStreamRangeUnbuffered() is that a 64-bit unsigned + /// integer is used to count the number of bytes copied. +#endif + static std::streamsize copyToString(std::istream& istr, std::string& str, std::size_t bufferSize = 8192); /// Appends all bytes readable from istr to the given string, using an internal buffer. /// @@ -76,6 +107,119 @@ public: /// Note: the only difference to copyToString() is that a 64-bit unsigned /// integer is used to count the number of bytes copied. #endif + +private: + template + static T copyStreamImpl(std::istream& istr, std::ostream& ostr, std::size_t bufferSize) + { + poco_assert (bufferSize > 0); + + Buffer buffer(bufferSize); + T len = 0; + istr.read(buffer.begin(), bufferSize); + std::streamsize n = istr.gcount(); + while (n > 0) + { + len += n; + ostr.write(buffer.begin(), n); + if (istr && ostr) + { + istr.read(buffer.begin(), bufferSize); + n = istr.gcount(); + } + else n = 0; + } + return len; + } + + template + static T copyStreamRangeImpl(std::istream& istr, std::ostream& ostr, std::streampos rangeStart, std::streamsize rangeLength, std::size_t bufferSize) + { + poco_assert (bufferSize > 0); + + if (bufferSize > rangeLength) + bufferSize = rangeLength; + + Buffer buffer(bufferSize); + T len = 0; + if (istr) + { + istr.seekg(rangeStart); + istr.read(buffer.begin(), bufferSize); + std::streamsize n = istr.gcount(); + while (n > 0) + { + len += n; + ostr.write(buffer.begin(), n); + if ((len < rangeLength) && istr && ostr) + { + if (bufferSize > (rangeLength - len)) + bufferSize = rangeLength - len; + istr.read(buffer.begin(), bufferSize); + n = istr.gcount(); + } + else n = 0; + } + } + return len; + } + + template + static T copyToStringImpl(std::istream& istr, std::string& str, std::size_t bufferSize) + { + poco_assert (bufferSize > 0); + + Buffer buffer(bufferSize); + T len = 0; + istr.read(buffer.begin(), bufferSize); + std::streamsize n = istr.gcount(); + while (n > 0) + { + len += n; + str.append(buffer.begin(), static_cast(n)); + if (istr) + { + istr.read(buffer.begin(), bufferSize); + n = istr.gcount(); + } + else n = 0; + } + return len; + } + + template + static T copyStreamUnbufferedImpl(std::istream& istr, std::ostream& ostr) + { + char c = 0; + T len = 0; + istr.get(c); + while (istr && ostr) + { + ++len; + ostr.put(c); + istr.get(c); + } + return len; + } + + template + static T copyStreamRangeUnbufferedImpl(std::istream& istr, std::ostream& ostr, std::streampos rangeStart, std::streamsize rangeLength) + { + T len = 0; + char c = 0; + if (istr) + { + istr.seekg(rangeStart); + istr.get(c); + while (istr && ostr && (len < rangeLength)) + { + ostr.put(c); + ++len; + istr.get(c); + } + } + return len; + } }; diff --git a/Foundation/src/StreamCopier.cpp b/Foundation/src/StreamCopier.cpp index 6f34cc233..b87dfcfb9 100644 --- a/Foundation/src/StreamCopier.cpp +++ b/Foundation/src/StreamCopier.cpp @@ -13,7 +13,6 @@ #include "Poco/StreamCopier.h" -#include "Poco/Buffer.h" namespace Poco { @@ -21,128 +20,69 @@ namespace Poco { std::streamsize StreamCopier::copyStream(std::istream& istr, std::ostream& ostr, std::size_t bufferSize) { - poco_assert (bufferSize > 0); - - Buffer buffer(bufferSize); - std::streamsize len = 0; - istr.read(buffer.begin(), bufferSize); - std::streamsize n = istr.gcount(); - while (n > 0) - { - len += n; - ostr.write(buffer.begin(), n); - if (istr && ostr) - { - istr.read(buffer.begin(), bufferSize); - n = istr.gcount(); - } - else n = 0; - } - return len; + return copyStreamImpl(istr, ostr, bufferSize); } #if defined(POCO_HAVE_INT64) Poco::UInt64 StreamCopier::copyStream64(std::istream& istr, std::ostream& ostr, std::size_t bufferSize) { - poco_assert (bufferSize > 0); + return copyStreamImpl(istr, ostr, bufferSize); +} +#endif - Buffer buffer(bufferSize); - Poco::UInt64 len = 0; - istr.read(buffer.begin(), bufferSize); - std::streamsize n = istr.gcount(); - while (n > 0) - { - len += n; - ostr.write(buffer.begin(), n); - if (istr && ostr) - { - istr.read(buffer.begin(), bufferSize); - n = istr.gcount(); - } - else n = 0; - } - return len; + +std::streamsize StreamCopier::copyStreamRange(std::istream& istr, std::ostream& ostr, std::streampos rangeStart, std::streamsize rangeLength, std::size_t bufferSize) +{ + return copyStreamRangeImpl(istr, ostr, rangeStart, rangeLength, bufferSize); +} + + +#if defined(POCO_HAVE_INT64) +Poco::UInt64 StreamCopier::copyStreamRange64(std::istream& istr, std::ostream& ostr, std::streampos rangeStart, std::streamsize rangeLength, std::size_t bufferSize) +{ + return copyStreamRangeImpl(istr, ostr, rangeStart, rangeLength, bufferSize); } #endif std::streamsize StreamCopier::copyToString(std::istream& istr, std::string& str, std::size_t bufferSize) { - poco_assert (bufferSize > 0); - - Buffer buffer(bufferSize); - std::streamsize len = 0; - istr.read(buffer.begin(), bufferSize); - std::streamsize n = istr.gcount(); - while (n > 0) - { - len += n; - str.append(buffer.begin(), static_cast(n)); - if (istr) - { - istr.read(buffer.begin(), bufferSize); - n = istr.gcount(); - } - else n = 0; - } - return len; + return copyToStringImpl(istr, str, bufferSize); } #if defined(POCO_HAVE_INT64) Poco::UInt64 StreamCopier::copyToString64(std::istream& istr, std::string& str, std::size_t bufferSize) { - poco_assert (bufferSize > 0); - - Buffer buffer(bufferSize); - Poco::UInt64 len = 0; - istr.read(buffer.begin(), bufferSize); - std::streamsize n = istr.gcount(); - while (n > 0) - { - len += n; - str.append(buffer.begin(), static_cast(n)); - if (istr) - { - istr.read(buffer.begin(), bufferSize); - n = istr.gcount(); - } - else n = 0; - } - return len; + return copyToStringImpl(istr, str, bufferSize); } #endif std::streamsize StreamCopier::copyStreamUnbuffered(std::istream& istr, std::ostream& ostr) { - char c = 0; - std::streamsize len = 0; - istr.get(c); - while (istr && ostr) - { - ++len; - ostr.put(c); - istr.get(c); - } - return len; + return copyStreamUnbufferedImpl(istr, ostr); } #if defined(POCO_HAVE_INT64) Poco::UInt64 StreamCopier::copyStreamUnbuffered64(std::istream& istr, std::ostream& ostr) { - char c = 0; - Poco::UInt64 len = 0; - istr.get(c); - while (istr && ostr) - { - ++len; - ostr.put(c); - istr.get(c); - } - return len; + return copyStreamUnbufferedImpl(istr, ostr); +} +#endif + +std::streamsize StreamCopier::copyStreamRangeUnbuffered(std::istream& istr, std::ostream& ostr, std::streampos rangeStart, std::streamsize rangeLength) +{ + return copyStreamRangeUnbufferedImpl(istr, ostr, rangeStart, rangeLength); +} + + +#if defined(POCO_HAVE_INT64) +Poco::UInt64 StreamCopier::copyStreamRangeUnbuffered64(std::istream& istr, std::ostream& ostr, std::streampos rangeStart, std::streamsize rangeLength) +{ + return copyStreamRangeUnbufferedImpl(istr, ostr, rangeStart, rangeLength); } #endif diff --git a/Foundation/testsuite/src/StreamCopierTest.cpp b/Foundation/testsuite/src/StreamCopierTest.cpp index 790e60014..c277d5469 100644 --- a/Foundation/testsuite/src/StreamCopierTest.cpp +++ b/Foundation/testsuite/src/StreamCopierTest.cpp @@ -93,6 +93,74 @@ void StreamCopierTest::testCopyToString() } +void StreamCopierTest::testBufferedCopyRange() +{ + { + std::string src; + for (int i = 0; i < 512; ++i) src += char(i % 256); + std::istringstream istr(src); + std::ostringstream ostr; + std::streampos rangeStart = 100; + std::streamsize rangeLength = 20; + std::string subSrc = src.substr(100, 20); + std::streamsize n = StreamCopier::copyStreamRange(istr, ostr, rangeStart, rangeLength); + assertTrue (ostr.str() == subSrc); + assertTrue (n == subSrc.size()); + } + { + std::string src; + for (int i = 0; i < 512; ++i) src += char(i % 256); + std::istringstream istr(src); + std::ostringstream ostr; + std::streampos rangeStart = 100; + std::streamsize rangeLength = 20; + std::string subSrc = src.substr(100, 20); + std::streamsize n = StreamCopier::copyStreamRange(istr, ostr, rangeStart, rangeLength, 100); + assertTrue (ostr.str() == subSrc); + assertTrue (n == subSrc.size()); + } + { + std::string src; + for (int i = 0; i < 512; ++i) src += char(i % 256); + std::istringstream istr(src); + std::ostringstream ostr; + std::streampos rangeStart = 100; + std::streamsize rangeLength = 150; + std::string subSrc = src.substr(100, 150); + std::streamsize n = StreamCopier::copyStreamRange(istr, ostr, rangeStart, rangeLength, 100); + assertTrue (ostr.str() == subSrc); + assertTrue (n == subSrc.size()); + } + { + std::string src; + for (int i = 0; i < 512; ++i) src += char(i % 256); + std::istringstream istr(src); + std::ostringstream ostr; + std::streampos rangeStart = 100; + std::streamsize rangeLength = 128; + std::string subSrc = src.substr(100, 128); + std::streamsize n = StreamCopier::copyStreamRange(istr, ostr, rangeStart, rangeLength, 128); + assertTrue (ostr.str() == subSrc); + assertTrue (n == subSrc.size()); + } +} + + +void StreamCopierTest::testUnbufferedCopyRange() +{ + std::string src; + for (int i = 0; i < 255; ++i) src += char(i); + std::istringstream istr(src); + std::ostringstream ostr; + std::streampos rangeStart = 100; + std::streamsize rangeLength = 20; + std::string subSrc = src.substr(100, 20); + std::streamsize n = StreamCopier::copyStreamRangeUnbuffered(istr, ostr, rangeStart, rangeLength); + assertTrue (ostr.str() == subSrc); + assertTrue (n == subSrc.size()); +} + + #if defined(POCO_HAVE_INT64) void StreamCopierTest::testBufferedCopy64() { @@ -157,6 +225,74 @@ void StreamCopierTest::testCopyToString64() assertTrue (src == dest); assertTrue (n == src.size()); } + + +void StreamCopierTest::testBufferedCopyRange64() +{ + { + std::string src; + for (int i = 0; i < 512; ++i) src += char(i % 256); + std::istringstream istr(src); + std::ostringstream ostr; + std::streampos rangeStart = 100; + std::streamsize rangeLength = 20; + std::string subSrc = src.substr(100, 20); + Poco::UInt64 n = StreamCopier::copyStreamRange64(istr, ostr, rangeStart, rangeLength); + assertTrue (ostr.str() == subSrc); + assertTrue (n == subSrc.size()); + } + { + std::string src; + for (int i = 0; i < 512; ++i) src += char(i % 256); + std::istringstream istr(src); + std::ostringstream ostr; + std::streampos rangeStart = 100; + std::streamsize rangeLength = 20; + std::string subSrc = src.substr(100, 20); + Poco::UInt64 n = StreamCopier::copyStreamRange64(istr, ostr, rangeStart, rangeLength, 100); + assertTrue (ostr.str() == subSrc); + assertTrue (n == subSrc.size()); + } + { + std::string src; + for (int i = 0; i < 512; ++i) src += char(i % 256); + std::istringstream istr(src); + std::ostringstream ostr; + std::streampos rangeStart = 100; + std::streamsize rangeLength = 150; + std::string subSrc = src.substr(100, 150); + Poco::UInt64 n = StreamCopier::copyStreamRange64(istr, ostr, rangeStart, rangeLength, 100); + assertTrue (ostr.str() == subSrc); + assertTrue (n == subSrc.size()); + } + { + std::string src; + for (int i = 0; i < 512; ++i) src += char(i % 256); + std::istringstream istr(src); + std::ostringstream ostr; + std::streampos rangeStart = 100; + std::streamsize rangeLength = 128; + std::string subSrc = src.substr(100, 128); + Poco::UInt64 n = StreamCopier::copyStreamRange64(istr, ostr, rangeStart, rangeLength, 128); + assertTrue (ostr.str() == subSrc); + assertTrue (n == subSrc.size()); + } +} + + +void StreamCopierTest::testUnbufferedCopyRange64() +{ + std::string src; + for (int i = 0; i < 255; ++i) src += char(i); + std::istringstream istr(src); + std::ostringstream ostr; + std::streampos rangeStart = 100; + std::streamsize rangeLength = 20; + std::string subSrc = src.substr(100, 20); + Poco::UInt64 n = StreamCopier::copyStreamRangeUnbuffered64(istr, ostr, rangeStart, rangeLength); + assertTrue (ostr.str() == subSrc); + assertTrue (n == subSrc.size()); +} #endif @@ -177,11 +313,15 @@ CppUnit::Test* StreamCopierTest::suite() CppUnit_addTest(pSuite, StreamCopierTest, testBufferedCopy); CppUnit_addTest(pSuite, StreamCopierTest, testUnbufferedCopy); CppUnit_addTest(pSuite, StreamCopierTest, testCopyToString); + CppUnit_addTest(pSuite, StreamCopierTest, testBufferedCopyRange); + CppUnit_addTest(pSuite, StreamCopierTest, testUnbufferedCopyRange); #if defined(POCO_HAVE_INT64) CppUnit_addTest(pSuite, StreamCopierTest, testBufferedCopy64); CppUnit_addTest(pSuite, StreamCopierTest, testUnbufferedCopy64); CppUnit_addTest(pSuite, StreamCopierTest, testCopyToString64); + CppUnit_addTest(pSuite, StreamCopierTest, testBufferedCopyRange64); + CppUnit_addTest(pSuite, StreamCopierTest, testUnbufferedCopyRange64); #endif return pSuite; diff --git a/Foundation/testsuite/src/StreamCopierTest.h b/Foundation/testsuite/src/StreamCopierTest.h index 0346d6dd5..fae9c2eb9 100644 --- a/Foundation/testsuite/src/StreamCopierTest.h +++ b/Foundation/testsuite/src/StreamCopierTest.h @@ -27,10 +27,14 @@ public: void testBufferedCopy(); void testUnbufferedCopy(); void testCopyToString(); + void testBufferedCopyRange(); + void testUnbufferedCopyRange(); #if defined(POCO_HAVE_INT64) void testBufferedCopy64(); void testUnbufferedCopy64(); void testCopyToString64(); + void testBufferedCopyRange64(); + void testUnbufferedCopyRange64(); #endif void setUp(); From c624b2787849a92e5bcb4eb9ec67e6e363bbadad Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Wed, 28 Feb 2024 14:24:00 +0100 Subject: [PATCH 347/395] fix(HostEntry): preserve order of addresses and aliases (fixes #3807) --- Net/include/Poco/Net/HostEntry.h | 7 ------- Net/src/HostEntry.cpp | 13 +++++++++++++ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Net/include/Poco/Net/HostEntry.h b/Net/include/Poco/Net/HostEntry.h index f194ca659..e3dfab53e 100644 --- a/Net/include/Poco/Net/HostEntry.h +++ b/Net/include/Poco/Net/HostEntry.h @@ -76,13 +76,6 @@ public: /// for the host. private: - template - void removeDuplicates(C& list) - { - std::sort(list.begin(), list.end()); - auto last = std::unique(list.begin(), list.end()); - list.erase(last, list.end()); - } std::string _name; AliasList _aliases; diff --git a/Net/src/HostEntry.cpp b/Net/src/HostEntry.cpp index 79a1d7cae..b045d264f 100644 --- a/Net/src/HostEntry.cpp +++ b/Net/src/HostEntry.cpp @@ -15,12 +15,25 @@ #include "Poco/Net/HostEntry.h" #include "Poco/Exception.h" #include +#include namespace Poco { namespace Net { +template +void removeDuplicates(std::vector& list) +{ + std::set uniqueValues; + // Remove duplicates and preserve order + list.erase( + std::remove_if(list.begin(), list.end(), [&uniqueValues](const T& value) { return !uniqueValues.insert(value).second; }), + list.end() + ); +} + + HostEntry::HostEntry() { } From 4ab7194e75de4fe69668bcf97fe96c7271cb69c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Tue, 5 Mar 2024 16:09:15 +0100 Subject: [PATCH 348/395] chore(XML): #4477: Upgrade bundled libexpat to 2.6.1 --- XML/include/Poco/XML/expat.h | 5 +++-- XML/src/internal.h | 17 ++++++++++++----- XML/src/xmlparse.cpp | 22 +++++++++++++++------- 3 files changed, 30 insertions(+), 14 deletions(-) diff --git a/XML/include/Poco/XML/expat.h b/XML/include/Poco/XML/expat.h index 95464b0dd..6dfc45448 100644 --- a/XML/include/Poco/XML/expat.h +++ b/XML/include/Poco/XML/expat.h @@ -18,6 +18,7 @@ Copyright (c) 2022 Thijs Schreijer Copyright (c) 2023 Hanno Böck Copyright (c) 2023 Sony Corporation / Snild Dolkow + Copyright (c) 2024 Taichi Haradaguchi <20001722@ymail.ne.jp> Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -1042,7 +1043,7 @@ typedef struct { XMLPARSEAPI(const XML_Feature *) XML_GetFeatureList(void); -#if XML_GE == 1 +#if defined(XML_DTD) || (defined(XML_GE) && XML_GE == 1) /* Added in Expat 2.4.0 for XML_DTD defined and * added in Expat 2.6.0 for XML_GE == 1. */ XMLPARSEAPI(XML_Bool) @@ -1065,7 +1066,7 @@ XML_SetReparseDeferralEnabled(XML_Parser parser, XML_Bool enabled); */ #define XML_MAJOR_VERSION 2 #define XML_MINOR_VERSION 6 -#define XML_MICRO_VERSION 0 +#define XML_MICRO_VERSION 1 #ifdef __cplusplus } diff --git a/XML/src/internal.h b/XML/src/internal.h index a82c68b4b..a27eb20bc 100644 --- a/XML/src/internal.h +++ b/XML/src/internal.h @@ -28,10 +28,11 @@ Copyright (c) 2002-2003 Fred L. Drake, Jr. Copyright (c) 2002-2006 Karl Waclawek Copyright (c) 2003 Greg Stein - Copyright (c) 2016-2023 Sebastian Pipping + Copyright (c) 2016-2024 Sebastian Pipping Copyright (c) 2018 Yury Gribov Copyright (c) 2019 David Loffredo - Copyright (c) 2023 Sony Corporation / Snild Dolkow + Copyright (c) 2023-2024 Sony Corporation / Snild Dolkow + Copyright (c) 2024 Taichi Haradaguchi <20001722@ymail.ne.jp> Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -155,14 +156,20 @@ extern "C" { void _INTERNAL_trim_to_complete_utf8_characters(const char *from, const char **fromLimRef); -#if XML_GE == 1 +#if defined(XML_GE) && XML_GE == 1 unsigned long long testingAccountingGetCountBytesDirect(XML_Parser parser); unsigned long long testingAccountingGetCountBytesIndirect(XML_Parser parser); const char *unsignedCharToPrintable(unsigned char c); #endif -extern XML_Bool g_reparseDeferralEnabledDefault; // written ONLY in runtests.c -extern unsigned int g_parseAttempts; // used for testing only +extern +#if ! defined(XML_TESTING) + const +#endif + XML_Bool g_reparseDeferralEnabledDefault; // written ONLY in runtests.c +#if defined(XML_TESTING) +extern unsigned int g_bytesScanned; // used for testing only +#endif #ifdef __cplusplus } diff --git a/XML/src/xmlparse.cpp b/XML/src/xmlparse.cpp index 8791b8efe..728418b7a 100644 --- a/XML/src/xmlparse.cpp +++ b/XML/src/xmlparse.cpp @@ -1,4 +1,4 @@ -/* 628e24d4966bedbd4800f6ed128d06d29703765b4bce12d3b7f099f90f842fc9 (2.6.0+) +/* dd2a9703e301882afe16d198a82689ab225277057f5eab9d079d8606eab736b4 (2.6.1+) __ __ _ ___\ \/ /_ __ __ _| |_ / _ \\ /| '_ \ / _` | __| @@ -38,7 +38,7 @@ Copyright (c) 2022 Jann Horn Copyright (c) 2022 Sean McBride Copyright (c) 2023 Owain Davies - Copyright (c) 2023 Sony Corporation / Snild Dolkow + Copyright (c) 2023-2024 Sony Corporation / Snild Dolkow Licensed under the MIT license: Permission is hereby granted, free of charge, to any person obtaining @@ -217,7 +217,7 @@ typedef char ICHAR; #endif /* Round up n to be a multiple of sz, where sz is a power of 2. */ -#define ROUND_UP(n, sz) (((n) + ((sz)-1)) & ~((sz)-1)) +#define ROUND_UP(n, sz) (((n) + ((sz) - 1)) & ~((sz) - 1)) /* Do safe (NULL-aware) pointer arithmetic */ #define EXPAT_SAFE_PTR_DIFF(p, q) (((p) && (q)) ? ((p) - (q)) : 0) @@ -255,7 +255,7 @@ static void copy_salt_to_sipkey(XML_Parser parser, struct sipkey *key); it odd, since odd numbers are always relative prime to a power of 2. */ #define SECOND_HASH(hash, mask, power) \ - ((((hash) & ~(mask)) >> ((power)-1)) & ((mask) >> 2)) + ((((hash) & ~(mask)) >> ((power) - 1)) & ((mask) >> 2)) #define PROBE_STEP(hash, mask, power) \ ((unsigned char)((SECOND_HASH(hash, mask, power)) | 1)) @@ -636,8 +636,14 @@ static unsigned long getDebugLevel(const char *variableName, ? 0 \ : ((*((pool)->ptr)++ = c), 1)) -XML_Bool g_reparseDeferralEnabledDefault = XML_TRUE; // write ONLY in runtests.c -unsigned int g_parseAttempts = 0; // used for testing only +#if ! defined(XML_TESTING) +const +#endif + XML_Bool g_reparseDeferralEnabledDefault + = XML_TRUE; // write ONLY in runtests.c +#if defined(XML_TESTING) +unsigned int g_bytesScanned = 0; // used for testing only +#endif struct XML_ParserStruct { /* The first member must be m_userData so that the XML_GetUserData @@ -1035,7 +1041,9 @@ callProcessor(XML_Parser parser, const char *start, const char *end, return XML_ERROR_NONE; } } - g_parseAttempts += 1; +#if defined(XML_TESTING) + g_bytesScanned += (unsigned)have_now; +#endif const enum XML_Error ret = parser->m_processor(parser, start, end, endPtr); if (ret == XML_ERROR_NONE) { // if we consumed nothing, remember what we had on this parse attempt. From 562600aae37f89bb43357f704e99926fd6a523f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nino=20Belu=C5=A1i=C4=87?= <86965206+cunj123@users.noreply.github.com> Date: Tue, 5 Mar 2024 16:31:56 +0100 Subject: [PATCH 349/395] chore(ci): bump action versions #4480 (#4481) --- .github/actions/retry-action/action.yml | 6 +- .github/actions/retry-action/package.json | 2 +- .github/workflows/ci.yml | 314 +++++++++++----------- 3 files changed, 161 insertions(+), 161 deletions(-) diff --git a/.github/actions/retry-action/action.yml b/.github/actions/retry-action/action.yml index 5db8b6234..74b649439 100644 --- a/.github/actions/retry-action/action.yml +++ b/.github/actions/retry-action/action.yml @@ -1,5 +1,5 @@ name: Retry Step -description: 'Retry a step on failure or timeout' +description: "Retry a step on failure or timeout" inputs: timeout_minutes: description: Minutes to wait before attempt times out. Must only specify either minutes or seconds @@ -50,5 +50,5 @@ outputs: exit_error: description: The final error returned by the command runs: - using: 'node16' - main: 'dist/index.js' \ No newline at end of file + using: "node20" + main: "dist/index.js" diff --git a/.github/actions/retry-action/package.json b/.github/actions/retry-action/package.json index f1c309fba..10f8caf93 100644 --- a/.github/actions/retry-action/package.json +++ b/.github/actions/retry-action/package.json @@ -35,7 +35,7 @@ "@types/babel-generator": "^6.25.7", "@types/jest": "^28.1.6", "@types/milliseconds": "0.0.30", - "@types/node": "^16.11.7", + "@types/node": "^20.11.24", "@typescript-eslint/eslint-plugin": "^5.32.0", "@typescript-eslint/parser": "^5.32.0", "@vercel/ncc": "^0.38.1", diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a4b97c867..7bc6deb07 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,29 +15,29 @@ concurrency: jobs: android-arm64-v8a-ndk-latest-cmake: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - - uses: nttld/setup-ndk@v1 - with: - ndk-version: r25c - add-to-path: true - - run: cmake -S$GITHUB_WORKSPACE -B$HOME/android-build -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-21 -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake && cmake --build $HOME/android-build --target all + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + - uses: nttld/setup-ndk@v1 + with: + ndk-version: r25c + add-to-path: true + - run: cmake -S$GITHUB_WORKSPACE -B$HOME/android-build -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-21 -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_LATEST_HOME/build/cmake/android.toolchain.cmake && cmake --build $HOME/android-build --target all android-arm64-v8a-ndk-cmake: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - - uses: nttld/setup-ndk@v1 - with: - ndk-version: r25c - add-to-path: true - - run: cmake -S$GITHUB_WORKSPACE -B$HOME/android-build -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-21 -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake && cmake --build $HOME/android-build --target all + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + - uses: nttld/setup-ndk@v1 + with: + ndk-version: r25c + add-to-path: true + - run: cmake -S$GITHUB_WORKSPACE -B$HOME/android-build -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-21 -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK_HOME/build/cmake/android.toolchain.cmake && cmake --build $HOME/android-build --target all android-armeabi-v7a-ndk-cmake: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: nttld/setup-ndk@v1 with: ndk-version: r25c @@ -47,14 +47,14 @@ jobs: linux-gcc-make-armv7l: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: sudo apt -y update && sudo apt -y install g++-arm-linux-gnueabihf - run: ./configure --config=X-Linux-gcc-arm --everything --omit=ApacheConnector,CppParser,Crypto,Data/MySQL,Data/PostgreSQL,Data/ODBC,JWT,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,SevenZip && make all -s -j4 linux-gcc-make: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev redis-server libmysqlclient-dev - run: ./configure --everything --omit=PDF && make all -s -j4 && sudo make install - uses: ./.github/actions/retry-action @@ -70,7 +70,7 @@ jobs: linux-gcc-make-cxx20: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev redis-server libmysqlclient-dev - run: ./configure --config=Linux-c++20 --everything --omit=PDF && make all -s -j4 && sudo make install - uses: ./.github/actions/retry-action @@ -86,7 +86,7 @@ jobs: linux-gcc-make-asan: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server - run: ./configure --everything --no-samples --omit=PDF && make all -s -j4 SANITIZEFLAGS=-fsanitize=address && sudo make install - uses: ./.github/actions/retry-action @@ -102,7 +102,7 @@ jobs: linux-gcc-make-asan-no-soo: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server - run: ./configure --everything --no-samples --omit=PDF --no-soo && make all -s -j4 SANITIZEFLAGS=-fsanitize=address && sudo make install - uses: ./.github/actions/retry-action @@ -118,7 +118,7 @@ jobs: linux-gcc-make-ubsan: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server - run: ./configure --everything --no-samples --omit=PDF && make all -s -j4 SANITIZEFLAGS=-fsanitize=undefined && sudo make install - uses: ./.github/actions/retry-action @@ -134,7 +134,7 @@ jobs: linux-gcc-make-tsan: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server - run: ./configure --everything --no-samples --omit=CppParser,Encodings,Data/MySQL,Data/ODBC,Data/PostgreSQL,MongoDB,PageCompiler,PDF,PocoDoc,ProGen,Redis,SevenZip && make all -s -j4 SANITIZEFLAGS=-fsanitize=thread && sudo make install - uses: ./.github/actions/retry-action @@ -149,7 +149,7 @@ jobs: linux-gcc-cmake: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: sudo apt -y update && sudo apt -y install cmake ninja-build libssl-dev unixodbc-dev libmysqlclient-dev redis-server - run: cmake -S. -Bcmake-build -GNinja -DENABLE_PDF=OFF -DENABLE_TESTS=ON && cmake --build cmake-build --target all - uses: ./.github/actions/retry-action @@ -166,25 +166,25 @@ jobs: linux-emscripten-cmake: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: sudo apt -y update && sudo apt -y install cmake ninja-build emscripten - run: emcmake cmake -H. -B cmake-build -DENABLE_ACTIVERECORD_COMPILER=OFF -DENABLE_PAGECOMPILER=OFF -DENABLE_PAGECOMPILER_FILE2PAGE=off && emmake cmake --build cmake-build --target all -j4 -# TODO: How to run unit tests in emscripten? -# - uses: ./.github/actions/retry-action -# with: -# timeout_minutes: 90 -# max_attempts: 3 -# retry_on: any -# command: >- -# cd cmake-build && -# sudo -s -# PWD=`pwd` -# ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)" + # TODO: How to run unit tests in emscripten? + # - uses: ./.github/actions/retry-action + # with: + # timeout_minutes: 90 + # max_attempts: 3 + # retry_on: any + # command: >- + # cd cmake-build && + # sudo -s + # PWD=`pwd` + # ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)" linux-gcc-make-cross-armhf: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: >- sudo apt-get -y update && sudo apt-get -y install crossbuild-essential-armhf @@ -200,7 +200,7 @@ jobs: macos-clang-make: runs-on: macos-12 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: brew install openssl@1.1 mysql-client unixodbc libpq - run: >- ./configure --everything --no-prefix --omit=PDF @@ -230,7 +230,7 @@ jobs: macos-clang-make-visibility-hidden: runs-on: macos-12 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: brew install openssl@1.1 mysql-client unixodbc libpq - run: >- ./configure --everything --no-prefix --cflags="-fvisibility=hidden" --omit=PDF @@ -260,7 +260,7 @@ jobs: macos-clang-cmake-openssl: runs-on: macos-12 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: brew install openssl@1.1 mysql-client unixodbc libpq - run: cmake -S. -Bcmake-build -DENABLE_PDF=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@1.1 -DMYSQL_ROOT_DIR=/usr/local/opt/mysql-client && cmake --build cmake-build --target all - uses: ./.github/actions/retry-action @@ -285,7 +285,7 @@ jobs: macos-clang-cmake-openssl3: runs-on: macos-12 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: brew install openssl@3 mysql-client unixodbc libpq - run: cmake -S. -Bcmake-build -DENABLE_PDF=OFF -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@3 -DMYSQL_ROOT_DIR=/usr/local/opt/mysql-client && cmake --build cmake-build --target all - uses: ./.github/actions/retry-action @@ -310,7 +310,7 @@ jobs: macos-clang-cmake-openssl3-visibility-hidden: runs-on: macos-12 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: brew install openssl@3 mysql-client unixodbc libpq - run: cmake -S. -Bcmake-build -DCMAKE_CXX_VISIBILITY_PRESET=hidden -DENABLE_ENCODINGS_COMPILER=ON -DENABLE_PDF=ON -DENABLE_SEVENZIP=ON -DENABLE_CPPPARSER=ON -DENABLE_TESTS=ON -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl@3 -DMYSQL_ROOT_DIR=/usr/local/opt/mysql-client && cmake --build cmake-build --target all - uses: ./.github/actions/retry-action @@ -335,7 +335,7 @@ jobs: macos-clang-make-openssl3-tsan: runs-on: macos-12 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: brew install openssl@3 - run: >- ./configure --everything --no-prefix --no-samples --omit=CppParser,Encodings,Data/MySQL,Data/ODBC,Data/PostgreSQL,MongoDB,PageCompiler,PDF,PocoDoc,ProGen,Redis,SevenZip @@ -365,7 +365,7 @@ jobs: macos-clang-make-openssl3-ubsan: runs-on: macos-12 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: brew install openssl@3 mysql-client unixodbc libpq - run: >- ./configure --everything --no-prefix --no-samples --omit=PDF @@ -395,7 +395,7 @@ jobs: macos-clang-make-openssl3-asan: runs-on: macos-12 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: brew install openssl@3 mysql-client unixodbc libpq - run: >- ./configure --everything --no-prefix --no-samples --omit=PDF @@ -422,63 +422,63 @@ jobs: EXCLUDE_TESTS="Redis Data/MySQL Data/ODBC Data/PostgreSQL MongoDB PDF" ./ci/runtests.sh -# windows-2019-msvc-cmake: -# runs-on: windows-2019 -# env: -# CPPUNIT_IGNORE: >- -# class CppUnit::TestCaller.testFind, -# class CppUnit::TestCaller.testSendToReceiveFrom, -# class CppUnit::TestCaller.testPing, -# class CppUnit::TestCaller.testBigPing, -# class CppUnit::TestCaller.testMTU, -# class CppUnit::TestCaller.testProxy, -# class CppUnit::TestCaller.testProxy, -# class CppUnit::TestCaller.testPollClosedServer -# steps: -# - uses: actions/checkout@v3 -# - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON -# - run: cmake --build cmake-build --config Release -# - uses: ./.github/actions/retry-action -# with: -# timeout_minutes: 90 -# max_attempts: 3 -# retry_on: any -# command: >- -# cd cmake-build; -# ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Release + # windows-2019-msvc-cmake: + # runs-on: windows-2019 + # env: + # CPPUNIT_IGNORE: >- + # class CppUnit::TestCaller.testFind, + # class CppUnit::TestCaller.testSendToReceiveFrom, + # class CppUnit::TestCaller.testPing, + # class CppUnit::TestCaller.testBigPing, + # class CppUnit::TestCaller.testMTU, + # class CppUnit::TestCaller.testProxy, + # class CppUnit::TestCaller.testProxy, + # class CppUnit::TestCaller.testPollClosedServer + # steps: + # - uses: actions/checkout@v4 + # - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON + # - run: cmake --build cmake-build --config Release + # - uses: ./.github/actions/retry-action + # with: + # timeout_minutes: 90 + # max_attempts: 3 + # retry_on: any + # command: >- + # cd cmake-build; + # ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Release -# windows-2019-msvc-buildwin-x64: -# runs-on: windows-2019 -# env: -# CPPUNIT_IGNORE: >- -# class CppUnit::TestCaller.testFind, -# class CppUnit::TestCaller.testSendToReceiveFrom, -# class CppUnit::TestCaller.testPing, -# class CppUnit::TestCaller.testBigPing, -# class CppUnit::TestCaller.testMTU, -# class CppUnit::TestCaller.testProxy, -# class CppUnit::TestCaller.testProxy -# steps: -# - uses: actions/checkout@v3 -# - uses: ./.github/actions/retry-action -# with: -# timeout_minutes: 90 -# max_attempts: 3 -# retry_on: any -# command: .\buildwin.ps1 -poco_base . -vs 160 -action build -linkmode all -config release -platform x64 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" + # windows-2019-msvc-buildwin-x64: + # runs-on: windows-2019 + # env: + # CPPUNIT_IGNORE: >- + # class CppUnit::TestCaller.testFind, + # class CppUnit::TestCaller.testSendToReceiveFrom, + # class CppUnit::TestCaller.testPing, + # class CppUnit::TestCaller.testBigPing, + # class CppUnit::TestCaller.testMTU, + # class CppUnit::TestCaller.testProxy, + # class CppUnit::TestCaller.testProxy + # steps: + # - uses: actions/checkout@v4 + # - uses: ./.github/actions/retry-action + # with: + # timeout_minutes: 90 + # max_attempts: 3 + # retry_on: any + # command: .\buildwin.ps1 -poco_base . -vs 160 -action build -linkmode all -config release -platform x64 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" -# windows-2019-msvc-buildwin-win32: -# runs-on: windows-2019 -# env: -# CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy -# steps: -# - uses: actions/checkout@v3 -# - uses: ./.github/actions/retry-action -# with: -# timeout_minutes: 90 -# max_attempts: 3 -# retry_on: any -# command: .\buildwin.ps1 -poco_base . -vs 160 -action build -linkmode all -config release -platform Win32 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" + # windows-2019-msvc-buildwin-win32: + # runs-on: windows-2019 + # env: + # CPPUNIT_IGNORE: class CppUnit::TestCaller.testFind,class CppUnit::TestCaller.testSendToReceiveFrom,class CppUnit::TestCaller.testPing,class CppUnit::TestCaller.testBigPing,class CppUnit::TestCaller.testMTU,class CppUnit::TestCaller.testProxy,class CppUnit::TestCaller.testProxy + # steps: + # - uses: actions/checkout@v4 + # - uses: ./.github/actions/retry-action + # with: + # timeout_minutes: 90 + # max_attempts: 3 + # retry_on: any + # command: .\buildwin.ps1 -poco_base . -vs 160 -action build -linkmode all -config release -platform Win32 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" windows-2022-msvc-buildwin-x64: runs-on: windows-2022 @@ -492,7 +492,7 @@ jobs: class CppUnit::TestCaller.testProxy, class CppUnit::TestCaller.testProxy steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: ./.github/actions/retry-action with: timeout_minutes: 90 @@ -500,25 +500,25 @@ jobs: retry_on: any command: .\buildwin.ps1 -poco_base . -vs 170 -action build -linkmode all -config release -platform x64 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" -# windows-2022-msvc-buildwin-win32: -# runs-on: windows-2022 -# env: -# CPPUNIT_IGNORE: >- -# class CppUnit::TestCaller.testFind, -# class CppUnit::TestCaller.testSendToReceiveFrom, -# class CppUnit::TestCaller.testPing, -# class CppUnit::TestCaller.testBigPing, -# class CppUnit::TestCaller.testMTU, -# class CppUnit::TestCaller.testProxy, -# class CppUnit::TestCaller.testProxy -# steps: -# - uses: actions/checkout@v3 -# - uses: ./.github/actions/retry-action -# with: -# timeout_minutes: 90 -# max_attempts: 3 -# retry_on: any -# command: .\buildwin.ps1 -poco_base . -vs 170 -action build -linkmode all -config release -platform Win32 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" + # windows-2022-msvc-buildwin-win32: + # runs-on: windows-2022 + # env: + # CPPUNIT_IGNORE: >- + # class CppUnit::TestCaller.testFind, + # class CppUnit::TestCaller.testSendToReceiveFrom, + # class CppUnit::TestCaller.testPing, + # class CppUnit::TestCaller.testBigPing, + # class CppUnit::TestCaller.testMTU, + # class CppUnit::TestCaller.testProxy, + # class CppUnit::TestCaller.testProxy + # steps: + # - uses: actions/checkout@v4 + # - uses: ./.github/actions/retry-action + # with: + # timeout_minutes: 90 + # max_attempts: 3 + # retry_on: any + # command: .\buildwin.ps1 -poco_base . -vs 170 -action build -linkmode all -config release -platform Win32 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" windows-2022-msvc-cmake: runs-on: windows-2022 @@ -532,7 +532,7 @@ jobs: class CppUnit::TestCaller.testProxy, class CppUnit::TestCaller.testProxy steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: cmake -S. -Bcmake-build -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON - run: cmake --build cmake-build --config Release - uses: ./.github/actions/retry-action @@ -544,30 +544,30 @@ jobs: cd cmake-build; ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Release -# missing asan dll path -# windows-2022-msvc-cmake-asan: -# runs-on: windows-2022 -# env: -# CPPUNIT_IGNORE: >- -# class CppUnit::TestCaller.testFind, -# class CppUnit::TestCaller.testSendToReceiveFrom, -# class CppUnit::TestCaller.testPing, -# class CppUnit::TestCaller.testBigPing, -# class CppUnit::TestCaller.testMTU, -# class CppUnit::TestCaller.testProxy, -# class CppUnit::TestCaller.testProxy -# steps: -# - uses: actions/checkout@v3 -# - run: cmake -S. -Bcmake-build -DPOCO_SANITIZE_ASAN=ON -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON -# - run: cmake --build cmake-build --config Debug -# - uses: ./.github/actions/retry-action -# with: -# timeout_minutes: 90 -# max_attempts: 3 -# retry_on: any -# command: >- -# cd cmake-build; -# ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Debug + # missing asan dll path + # windows-2022-msvc-cmake-asan: + # runs-on: windows-2022 + # env: + # CPPUNIT_IGNORE: >- + # class CppUnit::TestCaller.testFind, + # class CppUnit::TestCaller.testSendToReceiveFrom, + # class CppUnit::TestCaller.testPing, + # class CppUnit::TestCaller.testBigPing, + # class CppUnit::TestCaller.testMTU, + # class CppUnit::TestCaller.testProxy, + # class CppUnit::TestCaller.testProxy + # steps: + # - uses: actions/checkout@v4 + # - run: cmake -S. -Bcmake-build -DPOCO_SANITIZE_ASAN=ON -DENABLE_NETSSL_WIN=ON -DENABLE_NETSSL=OFF -DENABLE_CRYPTO=OFF -DENABLE_JWT=OFF -DENABLE_DATA=ON -DENABLE_DATA_ODBC=ON -DENABLE_DATA_MYSQL=OFF -DENABLE_DATA_POSTGRESQL=OFF -DENABLE_TESTS=ON + # - run: cmake --build cmake-build --config Debug + # - uses: ./.github/actions/retry-action + # with: + # timeout_minutes: 90 + # max_attempts: 3 + # retry_on: any + # command: >- + # cd cmake-build; + # ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(Redis)|(MongoDB)" -C Debug linux-gcc-make-mysql: runs-on: ubuntu-22.04 @@ -582,7 +582,7 @@ jobs: ports: - 3306:3306 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev mysql-client - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/PostgreSQL,Data/SQLite,Data/ODBC,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install - uses: ./.github/actions/retry-action @@ -595,7 +595,7 @@ jobs: EXCLUDE_TESTS="ActiveRecord ApacheConnector CppParser CppUnit Crypto Data Data/PostgreSQL Data/ODBC Data/SQLite Encodings Foundation JSON JWT MongoDB Net NetSSL_OpenSSL NetSSL_Win PDF PageCompiler PocoDoc ProGen Prometheus Redis SevenZip Util XML Zip" ./ci/runtests.sh -# TODO tests sometimes failing on testTransaction and testReconnect + # TODO tests sometimes failing on testTransaction and testReconnect linux-gcc-make-postgres: runs-on: ubuntu-22.04 services: @@ -606,7 +606,7 @@ jobs: ports: - 5432:5432 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev odbc-postgresql - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/MySQL,Data/ODBC,Data/SQLite,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install - uses: ./.github/actions/retry-action @@ -622,7 +622,7 @@ jobs: linux-gcc-make-redis: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev - run: | curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg @@ -643,7 +643,7 @@ jobs: linux-gcc-make-mongodb: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: supercharge/mongodb-github-action@1.10.0 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/ODBC,Data/MySQL,Data/SQLite,Data/PostgreSQL,Encodings,JSON,JWT,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install @@ -690,7 +690,7 @@ jobs: ports: - 1433:1433 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev alien libaio1 gnupg2 curl # libmysqlclient-dev mysql-client odbc-postgresql - run: ./configure --everything --no-samples --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/MySQL,Data/PostgreSQL,Data/SQLite,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install # - name: Setup MySQL ODBC connector @@ -712,10 +712,10 @@ jobs: # sudo /usr/lib/oracle/21/client64/bin/odbc_update_ini.sh / "/usr/lib/oracle/21/client64/lib" "" "" "/etc/odbc.ini" - name: Setup SQL Server ODBC connector run: | - curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc - curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list - sudo apt-get update - sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 + curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc + curl https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list + sudo apt-get update + sudo ACCEPT_EULA=Y apt-get install -y msodbcsql18 - uses: ./.github/actions/retry-action with: timeout_minutes: 90 @@ -739,7 +739,7 @@ jobs: ports: - 3306:3306 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: sudo apt -y update - run: ./configure --everything --no-samples --no-sqlparser --omit=ActiveRecord,ApacheConnector,CppParser,Crypto,Data/PostgreSQL,Data/MySQL,Data/ODBC,Encodings,JSON,JWT,MongoDB,Net,NetSSL_OpenSSL,NetSSL_Win,PDF,PageCompiler,PocoDoc,ProGen,Prometheus,Redis,SevenZip,Util,XML,Zip && make all -s -j4 && sudo make install - uses: ./.github/actions/retry-action From bf164a85a424250b3b6942530df7f52545322bcd Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Sat, 9 Mar 2024 12:00:15 +0100 Subject: [PATCH 350/395] LogFile uses FileOutputStream instead of custom platform implementations (#4431) (#4484) --- Foundation/include/Poco/FileStream.h | 3 + Foundation/include/Poco/FileStream_POSIX.h | 3 + Foundation/include/Poco/FileStream_WIN32.h | 3 + Foundation/include/Poco/LogFile.h | 46 ++------ Foundation/include/Poco/LogFile_STD.h | 53 --------- Foundation/include/Poco/LogFile_WIN32U.h | 54 --------- Foundation/src/FileChannel.cpp | 4 +- Foundation/src/FileStream.cpp | 10 +- Foundation/src/FileStream_POSIX.cpp | 11 ++ Foundation/src/FileStream_WIN32.cpp | 11 ++ Foundation/src/LogFile.cpp | 91 +++++++++++++-- Foundation/src/LogFile_STD.cpp | 86 -------------- Foundation/src/LogFile_WIN32U.cpp | 127 --------------------- 13 files changed, 133 insertions(+), 369 deletions(-) delete mode 100644 Foundation/include/Poco/LogFile_STD.h delete mode 100644 Foundation/include/Poco/LogFile_WIN32U.h delete mode 100644 Foundation/src/LogFile_STD.cpp delete mode 100644 Foundation/src/LogFile_WIN32U.cpp diff --git a/Foundation/include/Poco/FileStream.h b/Foundation/include/Poco/FileStream.h index 768364bbd..abe47b163 100644 --- a/Foundation/include/Poco/FileStream.h +++ b/Foundation/include/Poco/FileStream.h @@ -72,6 +72,9 @@ public: Poco::UInt64 size() const; /// Returns file size + void flushToDisk(); + /// Forces buffered data to be written to the disk + protected: FileStreamBuf _buf; }; diff --git a/Foundation/include/Poco/FileStream_POSIX.h b/Foundation/include/Poco/FileStream_POSIX.h index 8e7ef8fb2..5788d3f3f 100644 --- a/Foundation/include/Poco/FileStream_POSIX.h +++ b/Foundation/include/Poco/FileStream_POSIX.h @@ -52,6 +52,9 @@ public: std::streampos seekpos(std::streampos pos, std::ios::openmode mode = std::ios::in | std::ios::out); /// Change to specified position, according to mode. + void flushToDisk(); + /// Forces buffered data to be written to the disk + NativeHandle nativeHandle() const; /// Returns native file descriptor handle diff --git a/Foundation/include/Poco/FileStream_WIN32.h b/Foundation/include/Poco/FileStream_WIN32.h index d26f1ffed..09f787c9b 100644 --- a/Foundation/include/Poco/FileStream_WIN32.h +++ b/Foundation/include/Poco/FileStream_WIN32.h @@ -51,6 +51,9 @@ public: std::streampos seekpos(std::streampos pos, std::ios::openmode mode = std::ios::in | std::ios::out); /// change to specified position, according to mode + void flushToDisk(); + /// Forces buffered data to be written to the disk + NativeHandle nativeHandle() const; /// Returns native file descriptor handle diff --git a/Foundation/include/Poco/LogFile.h b/Foundation/include/Poco/LogFile.h index 3e1ec21f4..cbd200b22 100644 --- a/Foundation/include/Poco/LogFile.h +++ b/Foundation/include/Poco/LogFile.h @@ -17,21 +17,14 @@ #ifndef Foundation_LogFile_INCLUDED #define Foundation_LogFile_INCLUDED - #include "Poco/Foundation.h" - - -#if defined(POCO_OS_FAMILY_WINDOWS) -#include "Poco/LogFile_WIN32U.h" -#else -#include "Poco/LogFile_STD.h" -#endif - +#include "Poco/Timestamp.h" +#include "Poco/FileStream.h" namespace Poco { -class Foundation_API LogFile: public LogFileImpl +class Foundation_API LogFile /// This class is used by FileChannel to work /// with a log file. { @@ -55,36 +48,15 @@ public: const std::string& path() const; /// Returns the path given in the constructor. + +private: + std::string _path; + mutable Poco::FileOutputStream _str; + Timestamp _creationDate; + UInt64 _size; }; -// -// inlines -// -inline void LogFile::write(const std::string& text, bool flush) -{ - writeImpl(text, flush); -} - - -inline UInt64 LogFile::size() const -{ - return sizeImpl(); -} - - -inline Timestamp LogFile::creationDate() const -{ - return creationDateImpl(); -} - - -inline const std::string& LogFile::path() const -{ - return pathImpl(); -} - - } // namespace Poco diff --git a/Foundation/include/Poco/LogFile_STD.h b/Foundation/include/Poco/LogFile_STD.h deleted file mode 100644 index a178cb0ba..000000000 --- a/Foundation/include/Poco/LogFile_STD.h +++ /dev/null @@ -1,53 +0,0 @@ -// -// LogFile_STD.h -// -// Library: Foundation -// Package: Logging -// Module: LogFile -// -// Definition of the LogFileImpl class using iostreams. -// -// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#ifndef Foundation_LogFile_STD_INCLUDED -#define Foundation_LogFile_STD_INCLUDED - - -#include "Poco/Foundation.h" -#include "Poco/Timestamp.h" -#include "Poco/FileStream.h" - - -namespace Poco { - - -class Foundation_API LogFileImpl - /// The implementation of LogFile for non-Windows platforms. - /// The native filesystem APIs are used for - /// total control over locking behavior. -{ -public: - LogFileImpl(const std::string& path); - ~LogFileImpl(); - void writeImpl(const std::string& text, bool flush); - UInt64 sizeImpl() const; - Timestamp creationDateImpl() const; - const std::string& pathImpl() const; - -private: - std::string _path; - mutable Poco::FileOutputStream _str; - Timestamp _creationDate; - UInt64 _size; -}; - - -} // namespace Poco - - -#endif // Foundation_LogFile_STD_INCLUDED diff --git a/Foundation/include/Poco/LogFile_WIN32U.h b/Foundation/include/Poco/LogFile_WIN32U.h deleted file mode 100644 index ed558a7da..000000000 --- a/Foundation/include/Poco/LogFile_WIN32U.h +++ /dev/null @@ -1,54 +0,0 @@ -// -// LogFile_WIN32U.h -// -// Library: Foundation -// Package: Logging -// Module: LogFile -// -// Definition of the LogFileImpl class using the Windows file APIs. -// -// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#ifndef Foundation_LogFile_WIN32U_INCLUDED -#define Foundation_LogFile_WIN32U_INCLUDED - - -#include "Poco/Foundation.h" -#include "Poco/Timestamp.h" -#include "Poco/UnWindows.h" - - -namespace Poco { - - -class Foundation_API LogFileImpl - /// The implementation of LogFile for Windows. - /// The native filesystem APIs are used for - /// total control over locking behavior. -{ -public: - LogFileImpl(const std::string& path); - ~LogFileImpl(); - void writeImpl(const std::string& text, bool flush); - UInt64 sizeImpl() const; - Timestamp creationDateImpl() const; - const std::string& pathImpl() const; - -private: - void createFile(); - - std::string _path; - HANDLE _hFile; - Timestamp _creationDate; -}; - - -} // namespace Poco - - -#endif // Foundation_LogFile_WIN32U_INCLUDED diff --git a/Foundation/src/FileChannel.cpp b/Foundation/src/FileChannel.cpp index 1e5cbcf46..81ae42471 100644 --- a/Foundation/src/FileChannel.cpp +++ b/Foundation/src/FileChannel.cpp @@ -42,7 +42,7 @@ const std::string FileChannel::PROP_ROTATEONOPEN = "rotateOnOpen"; FileChannel::FileChannel(): _times("utc"), _compress(false), - _flush(true), + _flush(false), _rotateOnOpen(false), _pFile(nullptr), _pRotateStrategy(new NullRotateStrategy()), @@ -56,7 +56,7 @@ FileChannel::FileChannel(const std::string& path): _path(path), _times("utc"), _compress(false), - _flush(true), + _flush(false), _rotateOnOpen(false), _pFile(nullptr), _pRotateStrategy(new NullRotateStrategy()), diff --git a/Foundation/src/FileStream.cpp b/Foundation/src/FileStream.cpp index 28b49eb24..54dd62c3f 100644 --- a/Foundation/src/FileStream.cpp +++ b/Foundation/src/FileStream.cpp @@ -56,10 +56,18 @@ FileIOS::NativeHandle FileIOS::nativeHandle() const } -Poco::UInt64 FileIOS::size() const { +Poco::UInt64 FileIOS::size() const +{ return _buf.size(); } + +void FileIOS::flushToDisk() +{ + _buf.flushToDisk(); +} + + FileInputStream::FileInputStream(): std::istream(&_buf) { diff --git a/Foundation/src/FileStream_POSIX.cpp b/Foundation/src/FileStream_POSIX.cpp index fb4b96707..c62d9c6d9 100644 --- a/Foundation/src/FileStream_POSIX.cpp +++ b/Foundation/src/FileStream_POSIX.cpp @@ -169,6 +169,17 @@ std::streampos FileStreamBuf::seekpos(std::streampos pos, std::ios::openmode mod } +void FileStreamBuf::flushToDisk() +{ + if (getMode() & std::ios::out) + { + sync(); + if (fsync(_fd) != 0) + File::handleLastError(_path); + } +} + + FileStreamBuf::NativeHandle FileStreamBuf::nativeHandle() const { return _fd; diff --git a/Foundation/src/FileStream_WIN32.cpp b/Foundation/src/FileStream_WIN32.cpp index 5e1986c99..e79c54706 100644 --- a/Foundation/src/FileStream_WIN32.cpp +++ b/Foundation/src/FileStream_WIN32.cpp @@ -199,6 +199,17 @@ std::streampos FileStreamBuf::seekpos(std::streampos pos, std::ios::openmode mod } +void FileStreamBuf::flushToDisk() +{ + if (getMode() & std::ios::out) + { + sync(); + if (FlushFileBuffers(_handle) == 0) + File::handleLastError(_path); + } +} + + FileStreamBuf::NativeHandle FileStreamBuf::nativeHandle() const { return _handle; diff --git a/Foundation/src/LogFile.cpp b/Foundation/src/LogFile.cpp index 5380110fd..be3b12a60 100644 --- a/Foundation/src/LogFile.cpp +++ b/Foundation/src/LogFile.cpp @@ -13,20 +13,34 @@ #include "Poco/LogFile.h" - - -#if defined(POCO_OS_FAMILY_WINDOWS) -#include "LogFile_WIN32U.cpp" -#else -#include "LogFile_STD.cpp" -#endif - +#include "Poco/File.h" +#include "Poco/Exception.h" namespace Poco { -LogFile::LogFile(const std::string& path): LogFileImpl(path) +LogFile::LogFile(const std::string& path): + _path(path), + _str(_path, std::ios::app), + _size(static_cast(_str.tellp())) { + // There seems to be a strange "optimization" in the Windows NTFS + // filesystem that causes it to reuse directory entries of deleted + // files. Example: + // 1. create a file named "test.dat" + // note the file's creation date + // 2. delete the file "test.dat" + // 3. wait a few seconds + // 4. create a file named "test.dat" + // the new file will have the same creation + // date as the old one. + // We work around this bug by taking the file's + // modification date as a reference when the + // file is empty. + if (_size == 0) + _creationDate = File(path).getLastModified(); + else + _creationDate = File(path).created(); } @@ -35,4 +49,63 @@ LogFile::~LogFile() } +void LogFile::write(const std::string& text, bool flush) +{ + std::streampos pos = _str.tellp(); + +#if defined(POCO_OS_FAMILY_WINDOWS) + // Replace \n with \r\n + std::string logText; + logText.reserve(text.size() + 16); // keep some reserve for \n -> \r\n + char prevChar = 0; + for (char c: text) + { + if (c == '\n' && prevChar != '\r') + logText += POCO_DEFAULT_NEWLINE_CHARS; + else + logText += c; + + prevChar = c; + } + _str << logText; +#else + _str << text; +#endif + + _str << POCO_DEFAULT_NEWLINE_CHARS; + + if (flush) + _str.flushToDisk(); + else + _str.flush(); + + if (!_str.good()) + { + _str.clear(); + _str.seekp(pos); + throw WriteFileException(_path); + } + + _size = static_cast(_str.tellp()); +} + + +UInt64 LogFile::size() const +{ + return _size; +} + + +Timestamp LogFile::creationDate() const +{ + return _creationDate; +} + + +const std::string& LogFile::path() const +{ + return _path; +} + + } // namespace Poco diff --git a/Foundation/src/LogFile_STD.cpp b/Foundation/src/LogFile_STD.cpp deleted file mode 100644 index e5c658742..000000000 --- a/Foundation/src/LogFile_STD.cpp +++ /dev/null @@ -1,86 +0,0 @@ -// -// LogFile_STD.cpp -// -// Library: Foundation -// Package: Logging -// Module: LogFile -// -// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "Poco/LogFile_STD.h" -#include "Poco/File.h" -#include "Poco/Exception.h" - -#include - -namespace Poco { - - -LogFileImpl::LogFileImpl(const std::string& path): - _path(path), - _str(_path, std::ios::app), - _size(static_cast(_str.tellp())) -{ - if (_size == 0) - _creationDate = File(path).getLastModified(); - else - _creationDate = File(path).created(); -} - - -LogFileImpl::~LogFileImpl() -{ -} - - -void LogFileImpl::writeImpl(const std::string& text, bool flush) -{ - std::streampos pos = _str.tellp(); - - _str << text << '\n'; - - // Flush the stream buffer to file to match the implementation on Windows - _str.flush(); - - if (!_str.good()) - { - _str.clear(); - _str.seekp(pos); - throw WriteFileException(_path); - } - - if (flush) - { - // Sync the file to disk as it is done on Windows - if (fsync(_str.nativeHandle()) != 0) - throw WriteFileException(_path); - } - - _size = static_cast(_str.tellp()); -} - - -UInt64 LogFileImpl::sizeImpl() const -{ - return _size; -} - - -Timestamp LogFileImpl::creationDateImpl() const -{ - return _creationDate; -} - - -const std::string& LogFileImpl::pathImpl() const -{ - return _path; -} - - -} // namespace Poco diff --git a/Foundation/src/LogFile_WIN32U.cpp b/Foundation/src/LogFile_WIN32U.cpp deleted file mode 100644 index 293031072..000000000 --- a/Foundation/src/LogFile_WIN32U.cpp +++ /dev/null @@ -1,127 +0,0 @@ -// -// LogFile_WIN32U.cpp -// -// Library: Foundation -// Package: Logging -// Module: LogFile -// -// Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH. -// and Contributors. -// -// SPDX-License-Identifier: BSL-1.0 -// - - -#include "Poco/LogFile_WIN32U.h" -#include "Poco/File.h" -#include "Poco/Exception.h" -#include "Poco/UnicodeConverter.h" - -// TODO: LogStream shall use FileOutputStream for all implementations (see LogStream_STD) -// TODO: Implement flushToDisk function in FileOutputStream. - -namespace Poco { - - -LogFileImpl::LogFileImpl(const std::string& path): _path(path), _hFile(INVALID_HANDLE_VALUE) -{ - File file(path); - if (file.exists()) - { - if (0 == sizeImpl()) - _creationDate = file.getLastModified(); - else - _creationDate = file.created(); - } -} - - -LogFileImpl::~LogFileImpl() -{ - CloseHandle(_hFile); -} - - -void LogFileImpl::writeImpl(const std::string& text, bool flush) -{ - if (INVALID_HANDLE_VALUE == _hFile) createFile(); - - std::string logText; - logText.reserve(text.size() + 16); // keep some reserve for \n -> \r\n and terminating \r\n - for (char c: text) - { - if (c == '\n') - logText += "\r\n"; - else - logText += c; - } - logText += "\r\n"; - - DWORD bytesWritten; - BOOL res = WriteFile(_hFile, logText.data(), static_cast(logText.size()), &bytesWritten, NULL); - if (!res) throw WriteFileException(_path); - if (flush) - { - res = FlushFileBuffers(_hFile); - if (!res) throw WriteFileException(_path); - } -} - - -UInt64 LogFileImpl::sizeImpl() const -{ - if (INVALID_HANDLE_VALUE == _hFile) - { - File file(_path); - if (file.exists()) return file.getSize(); - else return 0; - } - - LARGE_INTEGER li; - li.HighPart = 0; - li.LowPart = SetFilePointer(_hFile, 0, &li.HighPart, FILE_CURRENT); - return li.QuadPart; -} - - -Timestamp LogFileImpl::creationDateImpl() const -{ - return _creationDate; -} - - -const std::string& LogFileImpl::pathImpl() const -{ - return _path; -} - - -void LogFileImpl::createFile() -{ - std::wstring upath; - FileImpl::convertPath(_path, upath); - - _hFile = CreateFileW(upath.c_str(), GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); - if (_hFile == INVALID_HANDLE_VALUE) throw OpenFileException(_path); - SetFilePointer(_hFile, 0, 0, FILE_END); - // There seems to be a strange "optimization" in the Windows NTFS - // filesystem that causes it to reuse directory entries of deleted - // files. Example: - // 1. create a file named "test.dat" - // note the file's creation date - // 2. delete the file "test.dat" - // 3. wait a few seconds - // 4. create a file named "test.dat" - // the new file will have the same creation - // date as the old one. - // We work around this bug by taking the file's - // modification date as a reference when the - // file is empty. - if (sizeImpl() == 0) - _creationDate = File(_path).getLastModified(); - else - _creationDate = File(_path).created(); -} - - -} // namespace Poco From 072ee8ff9e894f1c574332f47ebce8dc788137eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Mon, 11 Mar 2024 10:06:23 +0800 Subject: [PATCH 351/395] enh(Poco::Util::Timer): Add idle() method to check if timer has any tasks scheduled #4488 --- Util/include/Poco/Util/Timer.h | 12 ++++++++++++ Util/testsuite/src/TimerTest.cpp | 23 +++++++++++++++++++++++ Util/testsuite/src/TimerTest.h | 1 + 3 files changed, 36 insertions(+) diff --git a/Util/include/Poco/Util/Timer.h b/Util/include/Poco/Util/Timer.h index d41a88ead..b6bd14a85 100644 --- a/Util/include/Poco/Util/Timer.h +++ b/Util/include/Poco/Util/Timer.h @@ -159,6 +159,9 @@ public: /// If task execution takes longer than the given interval, /// further executions are delayed. + bool idle() const; + /// Returns true if the task queue is empty, otherwise false. + template static TimerTask::Ptr func(const Fn& fn) /// Helper function template to use a functor or lambda @@ -188,6 +191,15 @@ private: }; +// +// inlines +// +inline bool Timer::idle() const +{ + return _queue.empty(); +} + + } } // namespace Poco::Util diff --git a/Util/testsuite/src/TimerTest.cpp b/Util/testsuite/src/TimerTest.cpp index b5551bdb3..f3ba220f4 100644 --- a/Util/testsuite/src/TimerTest.cpp +++ b/Util/testsuite/src/TimerTest.cpp @@ -314,6 +314,28 @@ void TimerTest::testFunc() } +void TimerTest::testIdle() +{ + Timer timer; + + assertTrue (timer.idle()); + + Timestamp time; + time += 1000000; + + TimerTask::Ptr pTask = new TimerTaskAdapter(*this, &TimerTest::onTimer); + + timer.schedule(pTask, time); + + assertFalse (timer.idle()); + + _event.wait(); + assertTrue (pTask->lastExecution() >= time); + + assertTrue (timer.idle()); +} + + void TimerTest::setUp() { } @@ -346,6 +368,7 @@ CppUnit::Test* TimerTest::suite() CppUnit_addTest(pSuite, TimerTest, testCancelAllWaitStop); CppUnit_addTest(pSuite, TimerTest, testMultiCancelAllWaitStop); CppUnit_addTest(pSuite, TimerTest, testFunc); + CppUnit_addTest(pSuite, TimerTest, testIdle); return pSuite; } diff --git a/Util/testsuite/src/TimerTest.h b/Util/testsuite/src/TimerTest.h index b88366fd7..825c5b9b4 100644 --- a/Util/testsuite/src/TimerTest.h +++ b/Util/testsuite/src/TimerTest.h @@ -37,6 +37,7 @@ public: void testCancelAllWaitStop(); void testMultiCancelAllWaitStop(); void testFunc(); + void testIdle(); void setUp(); void tearDown(); From 0c333cbe88572770cc1caad91d746bc90f17b4fb Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Mon, 11 Mar 2024 10:26:51 +0100 Subject: [PATCH 352/395] DateTimeFormat RFC1036 Sunday name is short (should be long) #4486 (#4487) --- Foundation/src/DateTimeFormat.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Foundation/src/DateTimeFormat.cpp b/Foundation/src/DateTimeFormat.cpp index da25d6e8c..27057143a 100644 --- a/Foundation/src/DateTimeFormat.cpp +++ b/Foundation/src/DateTimeFormat.cpp @@ -67,7 +67,7 @@ const std::string DateTimeFormat::RFC850_REGEX( const std::string DateTimeFormat::RFC1036_FORMAT("%W, %e %b %y %H:%M:%S %Z"); const std::string DateTimeFormat::RFC1036_REGEX( - "(((Monday)|(Tuesday)|(Wednesday)|(Thursday)|(Friday)|(Saturday)|(Sun)), *)?" + "(((Monday)|(Tuesday)|(Wednesday)|(Thursday)|(Friday)|(Saturday)|(Sunday)), *)?" "\\d\\d? +" "((Jan)|(Feb)|(Mar)|(Apr)|(May)|(Jun)|(Jul)|(Aug)|(Sep)|(Oct)|(Nov)|(Dec)) +" "\\d\\d(\\d\\d)? +\\d\\d:\\d\\d(:\\d\\d)? " From a5b3c84874628f04bf33da353b7016afa6434933 Mon Sep 17 00:00:00 2001 From: Nicolau Leal Werneck Date: Mon, 11 Mar 2024 10:27:28 +0100 Subject: [PATCH 353/395] Documentation fixes on DatagramSocket.h and Socket.h (#4489) * Update DatagramSocket.h `connect cannot()` -> `connect() cannot` * Update Socket.h typo on `setReceiveTiemout` --- Net/include/Poco/Net/DatagramSocket.h | 6 +++--- Net/include/Poco/Net/Socket.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Net/include/Poco/Net/DatagramSocket.h b/Net/include/Poco/Net/DatagramSocket.h index cd5fa113e..8c3d69aaf 100644 --- a/Net/include/Poco/Net/DatagramSocket.h +++ b/Net/include/Poco/Net/DatagramSocket.h @@ -129,7 +129,7 @@ public: /// If reuseAddress is true, sets the SO_REUSEADDR /// socket option. /// - /// Calls to connect cannot() come before calls to bind(). + /// Calls to connect() cannot come before calls to bind(). void bind(const SocketAddress& address, bool reuseAddress, bool reusePort); /// Bind a local address to the socket. @@ -143,7 +143,7 @@ public: /// If reusePort is true, sets the SO_REUSEPORT /// socket option. /// - /// Calls to connect cannot() come before calls to bind(). + /// Calls to connect() cannot come before calls to bind(). void bind6(const SocketAddress& address, bool reuseAddress, bool reusePort, bool ipV6Only = false); /// Bind a local address to the socket. @@ -160,7 +160,7 @@ public: /// Sets the IPV6_V6ONLY socket option in accordance with /// the supplied ipV6Only value. /// - /// Calls to connect cannot() come before calls to bind(). + /// Calls to connect() cannot come before calls to bind(). int sendBytes(const void* buffer, int length, int flags = 0); /// Sends the contents of the given buffer through diff --git a/Net/include/Poco/Net/Socket.h b/Net/include/Poco/Net/Socket.h index 331657aeb..281715041 100644 --- a/Net/include/Poco/Net/Socket.h +++ b/Net/include/Poco/Net/Socket.h @@ -216,7 +216,7 @@ public: /// as the system is free to adjust the value. void setReceiveTimeout(const Poco::Timespan& timeout); - /// Sets the send timeout for the socket. + /// Sets the receive timeout for the socket. /// /// On systems that do not support SO_RCVTIMEO, a /// workaround using poll() is provided. From e078dbb84eedac63c9953af9d55052a7548ce885 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Wed, 20 Mar 2024 12:32:48 -0500 Subject: [PATCH 354/395] fix(URI): don't lowercase host part if it's a Unix domain socket #4468 --- Foundation/src/URI.cpp | 3 ++- Foundation/testsuite/src/URITest.cpp | 9 +++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Foundation/src/URI.cpp b/Foundation/src/URI.cpp index e64629fb2..bc7582b48 100644 --- a/Foundation/src/URI.cpp +++ b/Foundation/src/URI.cpp @@ -857,7 +857,8 @@ void URI::parseHostAndPort(std::string::const_iterator& it, const std::string::c } else _port = 0; _host = host; - toLowerInPlace(_host); + if (_host.size() && _host[0] != '%') + toLowerInPlace(_host); } diff --git a/Foundation/testsuite/src/URITest.cpp b/Foundation/testsuite/src/URITest.cpp index e835b377b..4008bdbee 100644 --- a/Foundation/testsuite/src/URITest.cpp +++ b/Foundation/testsuite/src/URITest.cpp @@ -798,6 +798,15 @@ void URITest::testOther() assertTrue (uri.getRawFragment() == "foo%2Fbar"); assertTrue (uri.toString() == "http://google.com/search?q=hello+world#foo%2Fbar"); assertTrue (uri.getPathEtc() == "/search?q=hello+world#foo%2Fbar"); + + uri = "http://ServerSocket.com/index.html"; + assertTrue (uri.toString() == "http://serversocket.com/index.html"); + + uri = "http+unix://%2Ftmp%2FServerSocket/index.html"; + assertTrue (uri.toString() == "http+unix://%2Ftmp%2FServerSocket/index.html"); + std::string decoded; + uri.decode("http+unix://%2Ftmp%2FServerSocket/index.html", decoded); + assertTrue (decoded == "http+unix:///tmp/ServerSocket/index.html"); } From 03c2fa3eea16d2716f596bdb0393a5036b819980 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Wed, 20 Mar 2024 22:03:29 +0100 Subject: [PATCH 355/395] Tune Linux ASLR when running sanitizer, use macOS 14 with some jobs (#4504) * ci(github): Use newer macOS versions (latest and macos-14 on M1) * Tune address space layout randomization when running thread/address sanitizer --- .github/workflows/ci.yml | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7bc6deb07..e737844a8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -87,6 +87,14 @@ jobs: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 + # ASLR (https://en.wikipedia.org/wiki/Address_space_layout_randomization) + # causes sanitizer to fail. + # vm.mmap_rnd_bits needs to be set to 28 to make it work. + # (https://github.com/google/sanitizers/issues/1716) + - run: sysctl vm.legacy_va_layout + - run: sysctl kernel.randomize_va_space + - run: sudo sysctl vm.mmap_rnd_bits + - run: sudo sysctl -w vm.mmap_rnd_bits=28 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server - run: ./configure --everything --no-samples --omit=PDF && make all -s -j4 SANITIZEFLAGS=-fsanitize=address && sudo make install - uses: ./.github/actions/retry-action @@ -103,6 +111,14 @@ jobs: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 + # ASLR (https://en.wikipedia.org/wiki/Address_space_layout_randomization) + # causes sanitizer to fail. + # vm.mmap_rnd_bits needs to be set to 28 to make it work. + # (https://github.com/google/sanitizers/issues/1716) + - run: sysctl vm.legacy_va_layout + - run: sysctl kernel.randomize_va_space + - run: sudo sysctl vm.mmap_rnd_bits + - run: sudo sysctl -w vm.mmap_rnd_bits=28 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server - run: ./configure --everything --no-samples --omit=PDF --no-soo && make all -s -j4 SANITIZEFLAGS=-fsanitize=address && sudo make install - uses: ./.github/actions/retry-action @@ -135,6 +151,14 @@ jobs: runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 + # ASLR (https://en.wikipedia.org/wiki/Address_space_layout_randomization) + # causes sanitizer to fail. + # vm.mmap_rnd_bits needs to be set to 28 to make it work. + # (https://github.com/google/sanitizers/issues/1716) + - run: sysctl vm.legacy_va_layout + - run: sysctl kernel.randomize_va_space + - run: sudo sysctl vm.mmap_rnd_bits + - run: sudo sysctl -w vm.mmap_rnd_bits=28 - run: sudo apt -y update && sudo apt -y install libssl-dev unixodbc-dev libmysqlclient-dev redis-server - run: ./configure --everything --no-samples --omit=CppParser,Encodings,Data/MySQL,Data/ODBC,Data/PostgreSQL,MongoDB,PageCompiler,PDF,PocoDoc,ProGen,Redis,SevenZip && make all -s -j4 SANITIZEFLAGS=-fsanitize=thread && sudo make install - uses: ./.github/actions/retry-action @@ -143,8 +167,7 @@ jobs: max_attempts: 3 retry_on: any command: >- - sudo -s - ./ci/runtests.sh TSAN + sudo -s ./ci/runtests.sh TSAN linux-gcc-cmake: runs-on: ubuntu-22.04 @@ -228,6 +251,7 @@ jobs: ./ci/runtests.sh macos-clang-make-visibility-hidden: + # macos-12 runs on Intel CPU runs-on: macos-12 steps: - uses: actions/checkout@v4 @@ -258,7 +282,8 @@ jobs: ./ci/runtests.sh macos-clang-cmake-openssl: - runs-on: macos-12 + # macos-14 runs on Apple Silicon + runs-on: macos-14 steps: - uses: actions/checkout@v4 - run: brew install openssl@1.1 mysql-client unixodbc libpq @@ -283,7 +308,7 @@ jobs: ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" macos-clang-cmake-openssl3: - runs-on: macos-12 + runs-on: macos-14 steps: - uses: actions/checkout@v4 - run: brew install openssl@3 mysql-client unixodbc libpq @@ -308,7 +333,7 @@ jobs: ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" macos-clang-cmake-openssl3-visibility-hidden: - runs-on: macos-12 + runs-on: macos-14 steps: - uses: actions/checkout@v4 - run: brew install openssl@3 mysql-client unixodbc libpq @@ -333,7 +358,7 @@ jobs: ctest --output-on-failure -E "(DataMySQL)|(DataODBC)|(PostgreSQL)|(MongoDB)|(Redis)" macos-clang-make-openssl3-tsan: - runs-on: macos-12 + runs-on: macos-14 steps: - uses: actions/checkout@v4 - run: brew install openssl@3 From 480f992aa447078522ccb6f57d67c61f350ce06b Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Thu, 21 Mar 2024 14:03:23 -0500 Subject: [PATCH 356/395] fix(ODBC): Unicode wrappers do not check for null length pointers #4505 --- Data/ODBC/src/ConnectionHandle.cpp | 4 +- Data/ODBC/src/SessionImpl.cpp | 2 +- Data/ODBC/src/Unicode_UNIXODBC.cpp | 110 +++++++++++++++++++++++++---- Data/ODBC/src/Unicode_WIN32.cpp | 67 ++++++++++++++---- 4 files changed, 151 insertions(+), 32 deletions(-) diff --git a/Data/ODBC/src/ConnectionHandle.cpp b/Data/ODBC/src/ConnectionHandle.cpp index 4d1ce7cbb..a313b5419 100644 --- a/Data/ODBC/src/ConnectionHandle.cpp +++ b/Data/ODBC/src/ConnectionHandle.cpp @@ -97,7 +97,7 @@ void ConnectionHandle::setTimeouts(SQLULEN loginTimeout, SQLULEN timeout) { try { - setTimeout(timeout); + setTimeout(static_cast(timeout)); } catch(const NotSupportedException&) {} } @@ -145,7 +145,7 @@ bool ConnectionHandle::connect(const std::string& connectString, SQLULEN loginTi // for Oracle) flat out refuse to set login timeout and return error - that's why these calls // are wrapped in try/catch and silently ignore errors. if (getTimeout() != timeout) - setTimeout(timeout); + setTimeout(static_cast(timeout)); if (getLoginTimeout() != loginTimeout) setLoginTimeout(loginTimeout); } diff --git a/Data/ODBC/src/SessionImpl.cpp b/Data/ODBC/src/SessionImpl.cpp index dac7d082e..222a41b8f 100644 --- a/Data/ODBC/src/SessionImpl.cpp +++ b/Data/ODBC/src/SessionImpl.cpp @@ -248,7 +248,7 @@ inline Poco::Any SessionImpl::getCursorUse(const std::string&) const void SessionImpl::setConnectionTimeout(std::size_t timeout) { SQLULEN value = static_cast(timeout); - _db.setTimeout(value); + _db.setTimeout(static_cast(value)); } diff --git a/Data/ODBC/src/Unicode_UNIXODBC.cpp b/Data/ODBC/src/Unicode_UNIXODBC.cpp index 1f671fed5..f5810b0c7 100644 --- a/Data/ODBC/src/Unicode_UNIXODBC.cpp +++ b/Data/ODBC/src/Unicode_UNIXODBC.cpp @@ -14,6 +14,7 @@ #include "Poco/Data/ODBC/ODBC.h" #include "Poco/Data/ODBC/Unicode_UNIXODBC.h" +#include "Poco/Data/ODBC/Utility.h" #include "Poco/TextConverter.h" #include "Poco/UTF8Encoding.h" #include "Poco/UTF16Encoding.h" @@ -73,6 +74,12 @@ SQLRETURN SQLColAttribute(SQLHSTMT hstmt, SQLSMALLINT* pcbCharAttr, NumAttrPtrType pNumAttr) { + SQLSMALLINT cbCharAttr = 0; + if (!pcbCharAttr) pcbCharAttr = &cbCharAttr; + + SQLSMALLINT cbCharAttr; + if (!pcbCharAttr) pcbCharAttr = &cbCharAttr; + if (isString(pCharAttr, cbCharAttrMax)) { Buffer buffer(stringLength(pCharAttr, cbCharAttrMax)); @@ -85,7 +92,9 @@ SQLRETURN SQLColAttribute(SQLHSTMT hstmt, pcbCharAttr, pNumAttr); - makeUTF8(buffer, *pcbCharAttr, pCharAttr, cbCharAttrMax); + if (!Utility::isError(rc)) + makeUTF8(buffer, *pcbCharAttr, pCharAttr, cbCharAttrMax); + return rc; } @@ -107,6 +116,11 @@ SQLRETURN SQLColAttributes(SQLHSTMT hstmt, SQLSMALLINT* pcbDesc, SQLLEN* pfDesc) { + SQLSMALLINT cbDesc = 0; + if (!pcbDesc) pcbDesc = &cbDesc; + SQLLEN fDesc = 0; + if (!pfDesc) pfDesc = &fDesc; + return SQLColAttribute(hstmt, icol, fDescType, @@ -151,6 +165,17 @@ SQLRETURN SQLDescribeCol(SQLHSTMT hstmt, SQLSMALLINT* pibScale, SQLSMALLINT* pfNullable) { + SQLSMALLINT cbColName = 0; + if (!pcbColName) pcbColName = &cbColName; + SQLSMALLINT fSqlType = 0; + if (!pfSqlType) pfSqlType = &fSqlType; + SQLULEN cbColDef = 0; + if (!pcbColDef) pcbColDef = &cbColDef; + SQLSMALLINT ibScale = 0; + if (!pibScale) pibScale = &ibScale; + SQLSMALLINT fNullable = 0; + if (!pfNullable) pfNullable = &fNullable; + Buffer buffer(cbColNameMax); SQLRETURN rc = SQLDescribeColW(hstmt, icol, @@ -162,7 +187,9 @@ SQLRETURN SQLDescribeCol(SQLHSTMT hstmt, pibScale, pfNullable); - makeUTF8(buffer, *pcbColName * sizeof(SQLWCHAR), szColName, cbColNameMax); + if (!Utility::isError(rc)) + makeUTF8(buffer, *pcbColName * sizeof(SQLWCHAR), szColName, cbColNameMax); + return rc; } @@ -198,6 +225,9 @@ SQLRETURN SQLGetConnectAttr(SQLHDBC hdbc, SQLINTEGER cbValueMax, SQLINTEGER* pcbValue) { + SQLINTEGER cbValue = 0; + if (!pcbValue) pcbValue = &cbValue; + if (isString(rgbValue, cbValueMax)) { Buffer buffer(stringLength(rgbValue, cbValueMax)); @@ -208,7 +238,8 @@ SQLRETURN SQLGetConnectAttr(SQLHDBC hdbc, (SQLINTEGER) buffer.sizeBytes(), pcbValue); - makeUTF8(buffer, *pcbValue, rgbValue, cbValueMax); + if (!Utility::isError(rc)) + makeUTF8(buffer, *pcbValue, rgbValue, cbValueMax); return rc; } @@ -263,6 +294,9 @@ SQLRETURN SQLGetDescField(SQLHDESC hdesc, SQLINTEGER cbValueMax, SQLINTEGER* pcbValue) { + SQLINTEGER cbValue = 0; + if (!pcbValue) pcbValue = &cbValue; + if (isString(rgbValue, cbValueMax)) { Buffer buffer(stringLength(rgbValue, cbValueMax)); @@ -274,7 +308,8 @@ SQLRETURN SQLGetDescField(SQLHDESC hdesc, (SQLINTEGER) buffer.sizeBytes(), pcbValue); - makeUTF8(buffer, *pcbValue, rgbValue, cbValueMax); + if (!Utility::isError(rc)) + makeUTF8(buffer, *pcbValue, rgbValue, cbValueMax); return rc; } @@ -312,6 +347,9 @@ SQLRETURN SQLGetDiagField(SQLSMALLINT fHandleType, SQLSMALLINT cbDiagInfoMax, SQLSMALLINT* pcbDiagInfo) { + SQLSMALLINT cbDiagInfo = 0; + if (!pcbDiagInfo) pcbDiagInfo = &cbDiagInfo; + if (isString(rgbDiagInfo, cbDiagInfoMax)) { Buffer buffer(stringLength(rgbDiagInfo, cbDiagInfoMax)); @@ -324,7 +362,8 @@ SQLRETURN SQLGetDiagField(SQLSMALLINT fHandleType, (SQLSMALLINT) buffer.sizeBytes(), pcbDiagInfo); - makeUTF8(buffer, *pcbDiagInfo, rgbDiagInfo, cbDiagInfoMax); + if (!Utility::isError(rc)) + makeUTF8(buffer, *pcbDiagInfo, rgbDiagInfo, cbDiagInfoMax); return rc; } @@ -348,6 +387,11 @@ SQLRETURN SQLGetDiagRec(SQLSMALLINT fHandleType, SQLSMALLINT cbErrorMsgMax, SQLSMALLINT* pcbErrorMsg) { + SQLINTEGER fNativeError = 0; + if (!pfNativeError) pfNativeError = &fNativeError; + SQLSMALLINT cbErrorMsg = 0; + if (!pcbErrorMsg) pcbErrorMsg = &cbErrorMsg; + const SQLINTEGER stateLen = SQL_SQLSTATE_SIZE + 1; Buffer bufState(stateLen); Buffer bufErr(cbErrorMsgMax); @@ -361,8 +405,11 @@ SQLRETURN SQLGetDiagRec(SQLSMALLINT fHandleType, (SQLSMALLINT) bufErr.size(), pcbErrorMsg); - makeUTF8(bufState, stateLen * sizeof(SQLWCHAR), szSqlState, stateLen); - makeUTF8(bufErr, *pcbErrorMsg * sizeof(SQLWCHAR), szErrorMsg, cbErrorMsgMax); + if (!Utility::isError(rc)) + { + makeUTF8(bufState, stateLen * sizeof(SQLWCHAR), szSqlState, stateLen); + makeUTF8(bufErr, *pcbErrorMsg * sizeof(SQLWCHAR), szErrorMsg, cbErrorMsgMax); + } return rc; } @@ -433,6 +480,9 @@ SQLRETURN SQLGetStmtAttr(SQLHSTMT hstmt, SQLINTEGER cbValueMax, SQLINTEGER* pcbValue) { + SQLINTEGER cbValue = 0; + if (!pcbValue) pcbValue = &cbValue; + if (isString(rgbValue, cbValueMax)) { Buffer buffer(stringLength(rgbValue, cbValueMax)); @@ -476,6 +526,9 @@ SQLRETURN SQLGetInfo(SQLHDBC hdbc, SQLSMALLINT cbInfoValueMax, SQLSMALLINT* pcbInfoValue) { + SQLSMALLINT cbInfoValue = 0; + if (!pcbInfoValue) pcbInfoValue = &cbInfoValue; + if (cbInfoValueMax) { Buffer buffer(cbInfoValueMax); @@ -486,7 +539,8 @@ SQLRETURN SQLGetInfo(SQLHDBC hdbc, (SQLSMALLINT) buffer.sizeBytes(), pcbInfoValue); - makeUTF8(buffer, *pcbInfoValue, rgbInfoValue, cbInfoValueMax); + if (!Utility::isError(rc)) + makeUTF8(buffer, *pcbInfoValue, rgbInfoValue, cbInfoValueMax); return rc; } @@ -561,6 +615,10 @@ SQLRETURN SQLDataSources(SQLHENV henv, SQLSMALLINT cbDescMax, SQLSMALLINT* pcbDesc) { + SQLSMALLINT cbDSN = 0, cbDesc = 0; + if (!pcbDSN) pcbDSN = &cbDSN; + if (!pcbDesc) pcbDesc = &cbDesc; + Buffer bufDSN(cbDSNMax); Buffer bufDesc(cbDescMax); @@ -573,8 +631,11 @@ SQLRETURN SQLDataSources(SQLHENV henv, (SQLSMALLINT) bufDesc.size(), pcbDesc); - makeUTF8(bufDSN, *pcbDSN * sizeof(SQLWCHAR), szDSN, cbDSNMax); - makeUTF8(bufDesc, *pcbDesc * sizeof(SQLWCHAR), szDesc, cbDescMax); + if (!Utility::isError(rc)) + { + makeUTF8(bufDSN, *pcbDSN * sizeof(SQLWCHAR), szDSN, cbDSNMax); + makeUTF8(bufDesc, *pcbDesc * sizeof(SQLWCHAR), szDesc, cbDescMax); + } return rc; } @@ -589,6 +650,9 @@ SQLRETURN SQLDriverConnect(SQLHDBC hdbc, SQLSMALLINT* pcbConnStrOut, SQLUSMALLINT fDriverCompletion) { + SQLSMALLINT cbConnStrOut = 0; + if (!pcbConnStrOut) pcbConnStrOut = &cbConnStrOut; + SQLSMALLINT len = cbConnStrIn; if (SQL_NTS == len) len = (SQLSMALLINT) std::strlen((const char*) szConnStrIn) + 1; @@ -606,7 +670,8 @@ SQLRETURN SQLDriverConnect(SQLHDBC hdbc, pcbConnStrOut, fDriverCompletion); - makeUTF8(out, *pcbConnStrOut * sizeof(SQLWCHAR), pcbConnStrOut, cbConnStrOutMax); + if (!Utility::isError(rc)) + makeUTF8(out, *pcbConnStrOut * sizeof(SQLWCHAR), pcbConnStrOut, cbConnStrOutMax); return rc; } @@ -619,6 +684,9 @@ SQLRETURN SQLBrowseConnect(SQLHDBC hdbc, SQLSMALLINT cbConnStrOutMax, SQLSMALLINT* pcbConnStrOut) { + SQLSMALLINT cbConnStrOut = 0; + if (!pcbConnStrOut) pcbConnStrOut = &cbConnStrOut; + std::string str; makeUTF16(szConnStrIn, cbConnStrIn, str); @@ -631,7 +699,8 @@ SQLRETURN SQLBrowseConnect(SQLHDBC hdbc, (SQLSMALLINT) bufConnStrOut.size(), pcbConnStrOut); - makeUTF8(bufConnStrOut, *pcbConnStrOut * sizeof(SQLWCHAR), szConnStrOut, cbConnStrOutMax); + if (!Utility::isError(rc)) + makeUTF8(bufConnStrOut, *pcbConnStrOut * sizeof(SQLWCHAR), szConnStrOut, cbConnStrOutMax); return rc; } @@ -676,6 +745,9 @@ SQLRETURN SQLNativeSql(SQLHDBC hdbc, SQLINTEGER cbSqlStrMax, SQLINTEGER* pcbSqlStr) { + SQLINTEGER cbSqlStr = 0; + if (!pcbSqlStr) pcbSqlStr = &cbSqlStr; + std::string str; makeUTF16(szSqlStrIn, cbSqlStrIn, str); @@ -688,7 +760,8 @@ SQLRETURN SQLNativeSql(SQLHDBC hdbc, (SQLINTEGER) bufSQLOut.size(), pcbSqlStr); - makeUTF8(bufSQLOut, *pcbSqlStr * sizeof(SQLWCHAR), szSqlStr, cbSqlStrMax); + if (!Utility::isError(rc)) + makeUTF8(bufSQLOut, *pcbSqlStr * sizeof(SQLWCHAR), szSqlStr, cbSqlStrMax); return rc; } @@ -753,6 +826,10 @@ SQLRETURN SQLDrivers(SQLHENV henv, SQLSMALLINT cbDrvrAttrMax, SQLSMALLINT* pcbDrvrAttr) { + SQLSMALLINT cbDriverDesc = 0, cbDrvrAttr = 0; + if (!pcbDriverDesc) pcbDriverDesc = &cbDriverDesc; + if (!pcbDrvrAttr) pcbDrvrAttr = &cbDrvrAttr; + Buffer bufDriverDesc(cbDriverDescMax); Buffer bufDriverAttr(cbDrvrAttrMax); @@ -765,8 +842,11 @@ SQLRETURN SQLDrivers(SQLHENV henv, (SQLSMALLINT) bufDriverAttr.size(), pcbDrvrAttr); - makeUTF8(bufDriverDesc, *pcbDriverDesc * sizeof(SQLWCHAR), szDriverDesc, cbDriverDescMax); - makeUTF8(bufDriverAttr, *pcbDrvrAttr * sizeof(SQLWCHAR), szDriverAttributes, cbDrvrAttrMax); + if (!Utility::isError(rc)) + { + makeUTF8(bufDriverDesc, *pcbDriverDesc * sizeof(SQLWCHAR), szDriverDesc, cbDriverDescMax); + makeUTF8(bufDriverAttr, *pcbDrvrAttr * sizeof(SQLWCHAR), szDriverAttributes, cbDrvrAttrMax); + } return rc; } diff --git a/Data/ODBC/src/Unicode_WIN32.cpp b/Data/ODBC/src/Unicode_WIN32.cpp index ed472115a..cbc57331a 100644 --- a/Data/ODBC/src/Unicode_WIN32.cpp +++ b/Data/ODBC/src/Unicode_WIN32.cpp @@ -49,7 +49,9 @@ SQLRETURN SQLColAttribute(SQLHSTMT hstmt, pcbCharAttr, pNumAttr); - makeUTF8(buffer, *pcbCharAttr, pCharAttr, cbCharAttrMax); + if (!Utility::isError(rc)) + makeUTF8(buffer, *pcbCharAttr, pCharAttr, cbCharAttrMax); + return rc; } @@ -129,7 +131,9 @@ SQLRETURN SQLDescribeCol(SQLHSTMT hstmt, pibScale, pfNullable); - makeUTF8(buffer, *pcbColName * sizeof(wchar_t), szColName, cbColNameMax); + if (!Utility::isError(rc)) + makeUTF8(buffer, *pcbColName * sizeof(wchar_t), szColName, cbColNameMax); + return rc; } @@ -167,6 +171,9 @@ SQLRETURN SQLGetConnectAttr(SQLHDBC hdbc, SQLINTEGER cbValueMax, SQLINTEGER* pcbValue) { + SQLINTEGER cbValue = 0; + if (!pcbValue) pcbValue = &cbValue; + if (isString(rgbValue, cbValueMax)) { Buffer buffer(stringLength(rgbValue, cbValueMax)); @@ -177,7 +184,9 @@ SQLRETURN SQLGetConnectAttr(SQLHDBC hdbc, (SQLINTEGER) buffer.sizeBytes(), pcbValue); - makeUTF8(buffer, *pcbValue, rgbValue, cbValueMax); + if (!Utility::isError(rc)) + makeUTF8(buffer, *pcbValue, rgbValue, cbValueMax); + return rc; } @@ -234,6 +243,9 @@ SQLRETURN SQLGetDescField(SQLHDESC hdesc, SQLINTEGER cbValueMax, SQLINTEGER* pcbValue) { + SQLINTEGER cbValue = 0; + if (!pcbValue) pcbValue = &cbValue; + if (isString(rgbValue, cbValueMax)) { Buffer buffer(stringLength(rgbValue, cbValueMax)); @@ -245,7 +257,9 @@ SQLRETURN SQLGetDescField(SQLHDESC hdesc, (SQLINTEGER) buffer.sizeBytes(), pcbValue); - makeUTF8(buffer, *pcbValue, rgbValue, cbValueMax); + if (!Utility::isError(rc)) + makeUTF8(buffer, *pcbValue, rgbValue, cbValueMax); + return rc; } @@ -294,7 +308,8 @@ SQLRETURN SQLGetDiagField(SQLSMALLINT fHandleType, (SQLSMALLINT) buffer.sizeBytes(), pcbDiagInfo); - makeUTF8(buffer, *pcbDiagInfo, rgbDiagInfo, cbDiagInfoMax); + if (!Utility::isError(rc)) + makeUTF8(buffer, *pcbDiagInfo, rgbDiagInfo, cbDiagInfoMax); return rc; } @@ -317,6 +332,12 @@ SQLRETURN SQLGetDiagRec(SQLSMALLINT fHandleType, SQLSMALLINT cbErrorMsgMax, SQLSMALLINT* pcbErrorMsg) { + SQLINTEGER nativeError = 0; + SQLSMALLINT cbErrorMsg = 0; + + if (!pfNativeError) pfNativeError = &nativeError; + if (!pcbErrorMsg) pcbErrorMsg = &cbErrorMsg; + const SQLINTEGER stateLen = SQL_SQLSTATE_SIZE + 1; Buffer bufState(stateLen); Buffer bufErr(cbErrorMsgMax); @@ -330,8 +351,11 @@ SQLRETURN SQLGetDiagRec(SQLSMALLINT fHandleType, (SQLSMALLINT) bufErr.size(), pcbErrorMsg); - makeUTF8(bufState, stateLen * sizeof(wchar_t), szSqlState, stateLen); - makeUTF8(bufErr, *pcbErrorMsg * sizeof(wchar_t), szErrorMsg, cbErrorMsgMax); + if (!Utility::isError(rc)) + { + makeUTF8(bufState, stateLen * sizeof(wchar_t), szSqlState, stateLen); + makeUTF8(bufErr, *pcbErrorMsg * sizeof(wchar_t), szErrorMsg, cbErrorMsgMax); + } return rc; } @@ -410,6 +434,9 @@ SQLRETURN SQLGetStmtAttr(SQLHSTMT hstmt, SQLINTEGER cbValueMax, SQLINTEGER* pcbValue) { + SQLINTEGER cbValue = 0; + if (!pcbValue) pcbValue = &cbValue; + if (isString(rgbValue, cbValueMax)) { Buffer buffer(stringLength(rgbValue, cbValueMax)); @@ -457,6 +484,9 @@ SQLRETURN SQLGetInfo(SQLHDBC hdbc, SQLSMALLINT cbInfoValueMax, SQLSMALLINT* pcbInfoValue) { + SQLSMALLINT cbValue = 0; + if (!pcbInfoValue) pcbInfoValue = &cbValue; + if (cbInfoValueMax) { Buffer buffer(cbInfoValueMax); @@ -467,7 +497,8 @@ SQLRETURN SQLGetInfo(SQLHDBC hdbc, (SQLSMALLINT) buffer.sizeBytes(), pcbInfoValue); - makeUTF8(buffer, *pcbInfoValue, rgbInfoValue, cbInfoValueMax); + if (!Utility::isError(rc)) + makeUTF8(buffer, *pcbInfoValue, rgbInfoValue, cbInfoValueMax); return rc; } @@ -558,8 +589,11 @@ SQLRETURN SQLDataSources(SQLHENV henv, (SQLSMALLINT) bufDesc.size(), pcbDesc); - makeUTF8(bufDSN, *pcbDSN * sizeof(wchar_t), szDSN, cbDSNMax); - makeUTF8(bufDesc, *pcbDesc * sizeof(wchar_t), szDesc, cbDescMax); + if (!Utility::isError(rc)) + { + makeUTF8(bufDSN, *pcbDSN * sizeof(wchar_t), szDSN, cbDSNMax); + makeUTF8(bufDesc, *pcbDesc * sizeof(wchar_t), szDesc, cbDescMax); + } return rc; } @@ -617,7 +651,8 @@ SQLRETURN SQLBrowseConnect(SQLHDBC hdbc, (SQLSMALLINT) bufConnStrOut.size(), pcbConnStrOut); - makeUTF8(bufConnStrOut, *pcbConnStrOut * sizeof(wchar_t), szConnStrOut, cbConnStrOutMax); + if (!Utility::isError(rc)) + makeUTF8(bufConnStrOut, *pcbConnStrOut * sizeof(wchar_t), szConnStrOut, cbConnStrOutMax); return rc; } @@ -674,7 +709,8 @@ SQLRETURN SQLNativeSql(SQLHDBC hdbc, (SQLINTEGER) bufSQLOut.size(), pcbSqlStr); - makeUTF8(bufSQLOut, *pcbSqlStr * sizeof(wchar_t), szSqlStr, cbSqlStrMax); + if (!Utility::isError(rc)) + makeUTF8(bufSQLOut, *pcbSqlStr * sizeof(wchar_t), szSqlStr, cbSqlStrMax); return rc; } @@ -751,8 +787,11 @@ SQLRETURN SQLDrivers(SQLHENV henv, (SQLSMALLINT) bufDriverAttr.size(), pcbDrvrAttr); - makeUTF8(bufDriverDesc, *pcbDriverDesc * sizeof(wchar_t), szDriverDesc, cbDriverDescMax); - makeUTF8(bufDriverAttr, *pcbDrvrAttr * sizeof(wchar_t), szDriverAttributes, cbDrvrAttrMax); + if (!Utility::isError(rc)) + { + makeUTF8(bufDriverDesc, *pcbDriverDesc * sizeof(wchar_t), szDriverDesc, cbDriverDescMax); + makeUTF8(bufDriverAttr, *pcbDrvrAttr * sizeof(wchar_t), szDriverAttributes, cbDrvrAttrMax); + } return rc; } From 77eb14eebd012ee3790d232f70d12205e6bf6f90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Fri, 22 Mar 2024 08:34:55 +0100 Subject: [PATCH 357/395] fix(XML): Upgrade bundled libexpat to 2.6.2 #4496 --- XML/include/Poco/XML/expat.h | 2 +- XML/src/xmlparse.cpp | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/XML/include/Poco/XML/expat.h b/XML/include/Poco/XML/expat.h index 6dfc45448..c2770be38 100644 --- a/XML/include/Poco/XML/expat.h +++ b/XML/include/Poco/XML/expat.h @@ -1066,7 +1066,7 @@ XML_SetReparseDeferralEnabled(XML_Parser parser, XML_Bool enabled); */ #define XML_MAJOR_VERSION 2 #define XML_MINOR_VERSION 6 -#define XML_MICRO_VERSION 1 +#define XML_MICRO_VERSION 2 #ifdef __cplusplus } diff --git a/XML/src/xmlparse.cpp b/XML/src/xmlparse.cpp index 728418b7a..e9cf7a46a 100644 --- a/XML/src/xmlparse.cpp +++ b/XML/src/xmlparse.cpp @@ -1,4 +1,4 @@ -/* dd2a9703e301882afe16d198a82689ab225277057f5eab9d079d8606eab736b4 (2.6.1+) +/* 2a14271ad4d35e82bde8ba210b4edb7998794bcbae54deab114046a300f9639a (2.6.2+) __ __ _ ___\ \/ /_ __ __ _| |_ / _ \\ /| '_ \ / _` | __| @@ -6258,7 +6258,7 @@ storeEntityValue(XML_Parser parser, const ENCODING *enc, dtd->keepProcessing = dtd->standalone; goto endEntityValue; } - if (entity->open) { + if (entity->open || (entity == parser->m_declEntity)) { if (enc == parser->m_encoding) parser->m_eventPtr = entityTextPtr; result = XML_ERROR_RECURSIVE_ENTITY_REF; @@ -7805,6 +7805,8 @@ copyString(const XML_Char *s, const XML_Memory_Handling_Suite *memsuite) { static float accountingGetCurrentAmplification(XML_Parser rootParser) { + // 1.........1.........12 => 22 + const size_t lenOfShortestInclude = sizeof("") - 1; const XmlBigCount countBytesOutput = rootParser->m_accounting.countBytesDirect + rootParser->m_accounting.countBytesIndirect; @@ -7812,7 +7814,9 @@ accountingGetCurrentAmplification(XML_Parser rootParser) { = rootParser->m_accounting.countBytesDirect ? (countBytesOutput / (float)(rootParser->m_accounting.countBytesDirect)) - : 1.0f; + : ((lenOfShortestInclude + + rootParser->m_accounting.countBytesIndirect) + / (float)lenOfShortestInclude); assert(! rootParser->m_parentParser); return amplificationFactor; } From 5fec3deeb9fdc1c683438a04a02f6c6c6261f2a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Fri, 22 Mar 2024 08:53:14 +0100 Subject: [PATCH 358/395] fix(Foundation): Poco::BasicMemoryStreamBuf is missing seekpos() #4492 --- Foundation/include/Poco/MemoryStream.h | 6 ++++++ Foundation/testsuite/src/MemoryStreamTest.cpp | 14 ++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/Foundation/include/Poco/MemoryStream.h b/Foundation/include/Poco/MemoryStream.h index 1db3a2c23..a53730767 100644 --- a/Foundation/include/Poco/MemoryStream.h +++ b/Foundation/include/Poco/MemoryStream.h @@ -140,6 +140,12 @@ public: return newoff; } + + virtual pos_type seekpos(pos_type pos, std::ios_base::openmode which = std::ios_base::in | std::ios_base::out) + { + const off_type off = pos; + return seekoff(off, std::ios::beg, which); + } virtual int sync() { diff --git a/Foundation/testsuite/src/MemoryStreamTest.cpp b/Foundation/testsuite/src/MemoryStreamTest.cpp index f3c6ff30c..529f4c7f1 100644 --- a/Foundation/testsuite/src/MemoryStreamTest.cpp +++ b/Foundation/testsuite/src/MemoryStreamTest.cpp @@ -143,6 +143,14 @@ void MemoryStreamTest::testInputSeek() assertTrue (istr.good()); assertTrue (9 == istr.tellg()); + + istr.seekg(5); + assertTrue (istr.good()); + assertTrue (5 == istr.tellg()); + istr >> c; + assertTrue (c == '6'); + + { Poco::MemoryInputStream istr2(buffer.begin(), buffer.size()); istr2.seekg(10, std::ios_base::beg); @@ -337,6 +345,12 @@ void MemoryStreamTest::testOutputSeek() assertTrue (ostr.good()); assertTrue (9 == ostr.tellp()); + + ostr.seekp(5); + assertTrue (ostr.good()); + assertTrue (5 == ostr.tellp()); + + { Poco::MemoryOutputStream ostr2(buffer.begin(), buffer.size()); ostr2.seekp(10, std::ios_base::beg); From 482c066307457becc6e67923bf64fdd9f3fdea32 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Wed, 27 Mar 2024 00:29:58 +0100 Subject: [PATCH 359/395] fix(SecureSocket): Refactor detection of timeout when reading, writing and handshaking (#4510) * fix(SecureSocket): Refactor detection of timeout when reading, writing or handshaking. (#3725) * enh(SecureSocket): some trivial C++17 modernisation changes. * chore: indentation and compiler warning --------- Co-authored-by: Alex Fabijanic --- Net/src/SocketImpl.cpp | 10 +- .../include/Poco/Net/SecureStreamSocket.h | 2 +- .../include/Poco/Net/SecureStreamSocketImpl.h | 36 ++--- NetSSL_OpenSSL/src/SecureSocketImpl.cpp | 148 ++++++++++-------- .../testsuite/src/HTTPSStreamFactoryTest.cpp | 2 +- .../testsuite/src/WebSocketTest.cpp | 54 ++++++- NetSSL_OpenSSL/testsuite/src/WebSocketTest.h | 7 +- 7 files changed, 159 insertions(+), 100 deletions(-) diff --git a/Net/src/SocketImpl.cpp b/Net/src/SocketImpl.cpp index 68310f930..34cad7d07 100644 --- a/Net/src/SocketImpl.cpp +++ b/Net/src/SocketImpl.cpp @@ -147,7 +147,7 @@ SocketImpl* SocketImpl::acceptConnection(SocketAddress& clientAddr) return new StreamSocketImpl(sd); } error(); // will throw - return 0; + return nullptr; } @@ -527,7 +527,7 @@ int SocketImpl::sendTo(const SocketBufVec& buffers, const SocketAddress& address msgHdr.msg_namelen = address.length(); msgHdr.msg_iov = const_cast(&buffers[0]); msgHdr.msg_iovlen = buffers.size(); - msgHdr.msg_control = 0; + msgHdr.msg_control = nullptr; msgHdr.msg_controllen = 0; msgHdr.msg_flags = flags; rc = sendmsg(_sockfd, &msgHdr, flags); @@ -613,7 +613,7 @@ int SocketImpl::receiveFrom(SocketBufVec& buffers, struct sockaddr** pSA, poco_s msgHdr.msg_namelen = **ppSALen; msgHdr.msg_iov = &buffers[0]; msgHdr.msg_iovlen = buffers.size(); - msgHdr.msg_control = 0; + msgHdr.msg_control = nullptr; msgHdr.msg_controllen = 0; msgHdr.msg_flags = flags; rc = recvmsg(_sockfd, &msgHdr, flags); @@ -652,7 +652,7 @@ int SocketImpl::available() if (result && (type() == SOCKET_TYPE_DATAGRAM)) { std::vector buf(result); - result = recvfrom(sockfd(), &buf[0], result, MSG_PEEK, NULL, NULL); + result = recvfrom(sockfd(), &buf[0], result, MSG_PEEK, nullptr, nullptr); } #endif return result; @@ -1114,7 +1114,7 @@ void SocketImpl::setReusePort(bool flag) int value = flag ? 1 : 0; setOption(SOL_SOCKET, SO_REUSEPORT, value); } - catch (IOException&) + catch (const IOException&) { // ignore error, since not all implementations // support SO_REUSEPORT, even if the macro diff --git a/NetSSL_OpenSSL/include/Poco/Net/SecureStreamSocket.h b/NetSSL_OpenSSL/include/Poco/Net/SecureStreamSocket.h index 016757bea..4e228b6a4 100644 --- a/NetSSL_OpenSSL/include/Poco/Net/SecureStreamSocket.h +++ b/NetSSL_OpenSSL/include/Poco/Net/SecureStreamSocket.h @@ -132,7 +132,7 @@ public: /// a SecureStreamSocketImpl, otherwise an InvalidArgumentException /// will be thrown. - virtual ~SecureStreamSocket(); + ~SecureStreamSocket() override; /// Destroys the StreamSocket. SecureStreamSocket& operator = (const Socket& socket); diff --git a/NetSSL_OpenSSL/include/Poco/Net/SecureStreamSocketImpl.h b/NetSSL_OpenSSL/include/Poco/Net/SecureStreamSocketImpl.h index 8114b036f..1327a67cd 100644 --- a/NetSSL_OpenSSL/include/Poco/Net/SecureStreamSocketImpl.h +++ b/NetSSL_OpenSSL/include/Poco/Net/SecureStreamSocketImpl.h @@ -39,12 +39,12 @@ public: SecureStreamSocketImpl(StreamSocketImpl* pStreamSocket, Context::Ptr pContext); /// Creates the SecureStreamSocketImpl. - SocketImpl* acceptConnection(SocketAddress& clientAddr); + SocketImpl* acceptConnection(SocketAddress& clientAddr) override; /// Not supported by a SecureStreamSocket. /// /// Throws a Poco::InvalidAccessException. - void connect(const SocketAddress& address); + void connect(const SocketAddress& address) override; /// Initializes the socket and establishes a connection to /// the TCP server at the given address. /// @@ -52,57 +52,57 @@ public: /// connection is established. Instead, incoming and outgoing /// packets are restricted to the specified address. - void connect(const SocketAddress& address, const Poco::Timespan& timeout); + void connect(const SocketAddress& address, const Poco::Timespan& timeout) override; /// Initializes the socket, sets the socket timeout and /// establishes a connection to the TCP server at the given address. - void connectNB(const SocketAddress& address); + void connectNB(const SocketAddress& address) override; /// Initializes the socket and establishes a connection to /// the TCP server at the given address. Prior to opening the /// connection the socket is set to nonblocking mode. - void bind(const SocketAddress& address, bool reuseAddress = false); + void bind(const SocketAddress& address, bool reuseAddress = false) override; /// Not supported by a SecureStreamSocket. /// /// Throws a Poco::InvalidAccessException. - void listen(int backlog = 64); + void listen(int backlog = 64) override; /// Not supported by a SecureStreamSocket. /// /// Throws a Poco::InvalidAccessException. - void close(); + void close() override; /// Close the socket. - int sendBytes(const void* buffer, int length, int flags = 0); + int sendBytes(const void* buffer, int length, int flags = 0) override; /// Sends the contents of the given buffer through /// the socket. Any specified flags are ignored. /// /// Returns the number of bytes sent, which may be /// less than the number of bytes specified. - int receiveBytes(void* buffer, int length, int flags = 0); + int receiveBytes(void* buffer, int length, int flags = 0) override; /// Receives data from the socket and stores it /// in buffer. Up to length bytes are received. /// /// Returns the number of bytes received. - int sendTo(const void* buffer, int length, const SocketAddress& address, int flags = 0); + int sendTo(const void* buffer, int length, const SocketAddress& address, int flags = 0) override; /// Not supported by a SecureStreamSocket. /// /// Throws a Poco::InvalidAccessException. - int receiveFrom(void* buffer, int length, SocketAddress& address, int flags = 0); + int receiveFrom(void* buffer, int length, SocketAddress& address, int flags = 0) override; /// Not supported by a SecureStreamSocket. /// /// Throws a Poco::InvalidAccessException. - void sendUrgent(unsigned char data); + void sendUrgent(unsigned char data) override; /// Not supported by a SecureStreamSocket. /// /// Throws a Poco::InvalidAccessException. - int available(); + int available() override; /// Returns the number of bytes available that can be read /// without causing the socket to block. /// @@ -110,26 +110,26 @@ public: /// can be read from the currently buffered SSL record, /// before a new record is read from the underlying socket. - void shutdownReceive(); + void shutdownReceive() override; /// Shuts down the receiving part of the socket connection. /// /// Since SSL does not support a half shutdown, this does /// nothing. - void shutdownSend(); + void shutdownSend() override; /// Shuts down the receiving part of the socket connection. /// /// Since SSL does not support a half shutdown, this does /// nothing. - void shutdown(); + void shutdown() override; /// Shuts down the SSL connection. void abort(); /// Aborts the connection by closing the underlying /// TCP connection. No orderly SSL shutdown is performed. - bool secure() const; + bool secure() const override; /// Returns true iff the socket's connection is secure /// (using SSL or TLS). @@ -203,7 +203,7 @@ protected: void connectSSL(); /// Performs a SSL client-side handshake on an already connected TCP socket. - ~SecureStreamSocketImpl(); + ~SecureStreamSocketImpl() override; /// Destroys the SecureStreamSocketImpl. static int lastError(); diff --git a/NetSSL_OpenSSL/src/SecureSocketImpl.cpp b/NetSSL_OpenSSL/src/SecureSocketImpl.cpp index 911c0dea0..55c163f14 100644 --- a/NetSSL_OpenSSL/src/SecureSocketImpl.cpp +++ b/NetSSL_OpenSSL/src/SecureSocketImpl.cpp @@ -22,10 +22,7 @@ #include "Poco/Net/SecureStreamSocketImpl.h" #include "Poco/Net/StreamSocketImpl.h" #include "Poco/Net/StreamSocket.h" -#include "Poco/Net/NetException.h" -#include "Poco/Net/DNS.h" #include "Poco/NumberFormatter.h" -#include "Poco/NumberParser.h" #include "Poco/Format.h" #include #include @@ -38,16 +35,12 @@ using Poco::NumberFormatter; using Poco::Timespan; -// workaround for C++-incompatible macro -#define POCO_BIO_set_nbio_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,1,(void*)((n)?"a":NULL)) - - namespace Poco { namespace Net { SecureSocketImpl::SecureSocketImpl(Poco::AutoPtr pSocketImpl, Context::Ptr pContext): - _pSSL(0), + _pSSL(nullptr), _pSocket(pSocketImpl), _pContext(pContext), _needHandshake(false) @@ -86,14 +79,14 @@ void SecureSocketImpl::acceptSSL() { poco_assert (!_pSSL); - BIO* pBIO = BIO_new(BIO_s_socket()); + BIO* pBIO = ::BIO_new(BIO_s_socket()); if (!pBIO) throw SSLException("Cannot create BIO object"); BIO_set_fd(pBIO, static_cast(_pSocket->sockfd()), BIO_NOCLOSE); - _pSSL = SSL_new(_pContext->sslContext()); + _pSSL = ::SSL_new(_pContext->sslContext()); if (!_pSSL) { - BIO_free(pBIO); + ::BIO_free(pBIO); throw SSLException("Cannot create SSL object"); } @@ -105,15 +98,15 @@ void SecureSocketImpl::acceptSSL() * tickets. */ if (1 != SSL_set_num_tickets(_pSSL, 0)) { - BIO_free(pBIO); + ::BIO_free(pBIO); throw SSLException("Cannot create SSL object"); } //Otherwise we can perform two-way shutdown. Client must call SSL_read() before the final SSL_shutdown(). #endif - SSL_set_bio(_pSSL, pBIO, pBIO); - SSL_set_accept_state(_pSSL); - SSL_set_ex_data(_pSSL, SSLManager::instance().socketIndex(), this); + ::SSL_set_bio(_pSSL, pBIO, pBIO); + ::SSL_set_accept_state(_pSSL); + ::SSL_set_ex_data(_pSSL, SSLManager::instance().socketIndex(), this); _needHandshake = true; } @@ -162,18 +155,18 @@ void SecureSocketImpl::connectSSL(bool performHandshake) poco_assert (!_pSSL); poco_assert (_pSocket->initialized()); - BIO* pBIO = BIO_new(BIO_s_socket()); + ::BIO* pBIO = ::BIO_new(BIO_s_socket()); if (!pBIO) throw SSLException("Cannot create SSL BIO object"); BIO_set_fd(pBIO, static_cast(_pSocket->sockfd()), BIO_NOCLOSE); - _pSSL = SSL_new(_pContext->sslContext()); + _pSSL = ::SSL_new(_pContext->sslContext()); if (!_pSSL) { - BIO_free(pBIO); + ::BIO_free(pBIO); throw SSLException("Cannot create SSL object"); } - SSL_set_bio(_pSSL, pBIO, pBIO); - SSL_set_ex_data(_pSSL, SSLManager::instance().socketIndex(), this); + ::SSL_set_bio(_pSSL, pBIO, pBIO); + ::SSL_set_ex_data(_pSSL, SSLManager::instance().socketIndex(), this); if (!_peerHostName.empty()) { @@ -189,27 +182,27 @@ void SecureSocketImpl::connectSSL(bool performHandshake) if (_pSession && _pSession->isResumable()) { - SSL_set_session(_pSSL, _pSession->sslSession()); + ::SSL_set_session(_pSSL, _pSession->sslSession()); } try { if (performHandshake && _pSocket->getBlocking()) { - int ret = SSL_connect(_pSSL); + int ret = ::SSL_connect(_pSSL); handleError(ret); verifyPeerCertificate(); } else { - SSL_set_connect_state(_pSSL); + ::SSL_set_connect_state(_pSSL); _needHandshake = true; } } catch (...) { - SSL_free(_pSSL); - _pSSL = 0; + ::SSL_free(_pSSL); + _pSSL = nullptr; throw; } } @@ -259,11 +252,11 @@ void SecureSocketImpl::shutdown() { if (_pSSL) { - // Don't shut down the socket more than once. - int shutdownState = SSL_get_shutdown(_pSSL); - bool shutdownSent = (shutdownState & SSL_SENT_SHUTDOWN) == SSL_SENT_SHUTDOWN; - if (!shutdownSent) - { + // Don't shut down the socket more than once. + int shutdownState = ::SSL_get_shutdown(_pSSL); + bool shutdownSent = (shutdownState & SSL_SENT_SHUTDOWN) == SSL_SENT_SHUTDOWN; + if (!shutdownSent) + { // A proper clean shutdown would require us to // retry the shutdown if we get a zero return // value, until SSL_shutdown() returns 1. @@ -274,7 +267,7 @@ void SecureSocketImpl::shutdown() #if OPENSSL_VERSION_NUMBER >= 0x30000000L int rc = 0; if (!_bidirectShutdown) - rc = SSL_shutdown(_pSSL); + rc = ::SSL_shutdown(_pSSL); else { Poco::Timespan recvTimeout = _pSocket->getReceiveTimeout(); @@ -282,11 +275,11 @@ void SecureSocketImpl::shutdown() Poco::Timestamp tsNow; do { - rc = SSL_shutdown(_pSSL); + rc = ::SSL_shutdown(_pSSL); if (rc == 1) break; if (rc < 0) { - int err = SSL_get_error(_pSSL, rc); + int err = ::SSL_get_error(_pSSL, rc); if (err == SSL_ERROR_WANT_READ) _pSocket->poll(pollTimeout, Poco::Net::Socket::SELECT_READ); else if (err == SSL_ERROR_WANT_WRITE) @@ -294,7 +287,7 @@ void SecureSocketImpl::shutdown() else { int socketError = SocketImpl::lastError(); - long lastError = ERR_get_error(); + long lastError = ::ERR_get_error(); if ((err == SSL_ERROR_SSL) && (socketError == 0) && (lastError == 0x0A000123)) rc = 0; break; @@ -304,7 +297,7 @@ void SecureSocketImpl::shutdown() } while (!tsNow.isElapsed(recvTimeout.totalMicroseconds())); } #else - int rc = SSL_shutdown(_pSSL); + int rc = ::SSL_shutdown(_pSSL); #endif if (rc < 0) handleError(rc); if (_pSocket->getBlocking()) @@ -361,11 +354,17 @@ int SecureSocketImpl::sendBytes(const void* buffer, int length, int flags) else return rc; } - do + const auto sendTimeout = _pSocket->getSendTimeout(); + Poco::Timestamp tsStart; + while (true) { - rc = SSL_write(_pSSL, buffer, length); - } - while (mustRetry(rc)); + rc = ::SSL_write(_pSSL, buffer, length); + if (!mustRetry(rc)) + break; + + if (tsStart.isElapsed(sendTimeout.totalMicroseconds())) + throw Poco::TimeoutException(); + }; if (rc <= 0) { rc = handleError(rc); @@ -389,11 +388,18 @@ int SecureSocketImpl::receiveBytes(void* buffer, int length, int flags) else return rc; } - do + + const auto recvTimeout = _pSocket->getReceiveTimeout(); + Poco::Timestamp tsStart; + while (true) { - rc = SSL_read(_pSSL, buffer, length); - } - while (mustRetry(rc)); + rc = ::SSL_read(_pSSL, buffer, length); + if (!mustRetry(rc)) + break; + + if (tsStart.isElapsed(recvTimeout.totalMicroseconds())) + throw Poco::TimeoutException(); + }; _bidirectShutdown = false; if (rc <= 0) { @@ -407,7 +413,7 @@ int SecureSocketImpl::available() const { poco_check_ptr (_pSSL); - return SSL_pending(_pSSL); + return ::SSL_pending(_pSSL); } @@ -417,11 +423,17 @@ int SecureSocketImpl::completeHandshake() poco_check_ptr (_pSSL); int rc; - do + const auto recvTimeout = _pSocket->getReceiveTimeout(); + Poco::Timestamp tsStart; + while (true) { - rc = SSL_do_handshake(_pSSL); - } - while (mustRetry(rc)); + rc = ::SSL_do_handshake(_pSSL); + if (!mustRetry(rc)) + break; + + if (tsStart.isElapsed(recvTimeout.totalMicroseconds())) + throw Poco::TimeoutException(); + }; if (rc <= 0) { return handleError(rc); @@ -460,7 +472,7 @@ long SecureSocketImpl::verifyPeerCertificateImpl(const std::string& hostName) return X509_V_OK; } - X509* pCert = SSL_get_peer_certificate(_pSSL); + ::X509* pCert = ::SSL_get_peer_certificate(_pSSL); if (pCert) { X509Certificate cert(pCert); @@ -477,7 +489,7 @@ bool SecureSocketImpl::isLocalHost(const std::string& hostName) SocketAddress addr(hostName, 0); return addr.host().isLoopback(); } - catch (Poco::Exception&) + catch (const Poco::Exception&) { return false; } @@ -487,9 +499,9 @@ bool SecureSocketImpl::isLocalHost(const std::string& hostName) X509* SecureSocketImpl::peerCertificate() const { if (_pSSL) - return SSL_get_peer_certificate(_pSSL); + return ::SSL_get_peer_certificate(_pSSL); else - return 0; + return nullptr; } @@ -497,26 +509,24 @@ bool SecureSocketImpl::mustRetry(int rc) { if (rc <= 0) { - int sslError = SSL_get_error(_pSSL, rc); + static const Poco::Timespan pollTimeout(0, 100000); + + int sslError = ::SSL_get_error(_pSSL, rc); int socketError = _pSocket->lastError(); switch (sslError) { case SSL_ERROR_WANT_READ: if (_pSocket->getBlocking()) { - if (_pSocket->poll(_pSocket->getReceiveTimeout(), Poco::Net::Socket::SELECT_READ)) - return true; - else - throw Poco::TimeoutException(); + _pSocket->poll(pollTimeout, Poco::Net::Socket::SELECT_READ); + return true; } break; case SSL_ERROR_WANT_WRITE: if (_pSocket->getBlocking()) { - if (_pSocket->poll(_pSocket->getSendTimeout(), Poco::Net::Socket::SELECT_WRITE)) - return true; - else - throw Poco::TimeoutException(); + _pSocket->poll(pollTimeout, Poco::Net::Socket::SELECT_WRITE); + return true; } break; case SSL_ERROR_SYSCALL: @@ -533,7 +543,7 @@ int SecureSocketImpl::handleError(int rc) { if (rc > 0) return rc; - int sslError = SSL_get_error(_pSSL, rc); + int sslError = ::SSL_get_error(_pSSL, rc); int socketError = SocketImpl::lastError(); switch (sslError) @@ -569,12 +579,12 @@ int SecureSocketImpl::handleError(int rc) // fallthrough default: { - long lastError = ERR_get_error(); + long lastError = ::ERR_get_error(); std::string msg; if (lastError) { char buffer[256]; - ERR_error_string_n(lastError, buffer, sizeof(buffer)); + ::ERR_error_string_n(lastError, buffer, sizeof(buffer)); msg = buffer; } // SSL_GET_ERROR(3ossl): @@ -627,9 +637,9 @@ void SecureSocketImpl::reset() close(); if (_pSSL) { - SSL_set_ex_data(_pSSL, SSLManager::instance().socketIndex(), nullptr); - SSL_free(_pSSL); - _pSSL = 0; + ::SSL_set_ex_data(_pSSL, SSLManager::instance().socketIndex(), nullptr); + ::SSL_free(_pSSL); + _pSSL = nullptr; } } @@ -655,7 +665,7 @@ void SecureSocketImpl::useSession(Session::Ptr pSession) bool SecureSocketImpl::sessionWasReused() { if (_pSSL) - return SSL_session_reused(_pSSL) != 0; + return ::SSL_session_reused(_pSSL) != 0; else return false; } @@ -663,7 +673,7 @@ bool SecureSocketImpl::sessionWasReused() int SecureSocketImpl::onSessionCreated(SSL* pSSL, SSL_SESSION* pSession) { - void* pEx = SSL_get_ex_data(pSSL, SSLManager::instance().socketIndex()); + void* pEx = ::SSL_get_ex_data(pSSL, SSLManager::instance().socketIndex()); if (pEx) { SecureSocketImpl* pThis = reinterpret_cast(pEx); diff --git a/NetSSL_OpenSSL/testsuite/src/HTTPSStreamFactoryTest.cpp b/NetSSL_OpenSSL/testsuite/src/HTTPSStreamFactoryTest.cpp index ab2003c50..b707febcf 100644 --- a/NetSSL_OpenSSL/testsuite/src/HTTPSStreamFactoryTest.cpp +++ b/NetSSL_OpenSSL/testsuite/src/HTTPSStreamFactoryTest.cpp @@ -103,7 +103,7 @@ void HTTPSStreamFactoryTest::testError() uri.setPort(server.port()); try { - std::istream* pStr = factory.open(uri); + factory.open(uri); fail("not found - must throw"); } catch (HTTPException& exc) diff --git a/NetSSL_OpenSSL/testsuite/src/WebSocketTest.cpp b/NetSSL_OpenSSL/testsuite/src/WebSocketTest.cpp index eeb47c423..284c33297 100644 --- a/NetSSL_OpenSSL/testsuite/src/WebSocketTest.cpp +++ b/NetSSL_OpenSSL/testsuite/src/WebSocketTest.cpp @@ -23,7 +23,6 @@ #include "Poco/Net/SecureServerSocket.h" #include "Poco/Net/NetException.h" #include "Poco/Thread.h" -#include using Poco::Net::HTTPSClientSession; using Poco::Net::HTTPRequest; @@ -55,13 +54,14 @@ namespace do { n = ws.receiveFrame(pBuffer.get(), static_cast(_bufSize), flags); + Poco::Thread::current()->sleep(handleDelay.totalMilliseconds()); if (n == 0) break; ws.sendFrame(pBuffer.get(), n, flags); } while ((flags & WebSocket::FRAME_OP_BITMASK) != WebSocket::FRAME_OP_CLOSE); } - catch (WebSocketException& exc) + catch (const WebSocketException& exc) { switch (exc.code()) { @@ -79,10 +79,17 @@ namespace } } + public: + + static Poco::Timespan handleDelay; + private: std::size_t _bufSize; }; + Poco::Timespan WebSocketRequestHandler::handleDelay {0}; + + class WebSocketRequestHandlerFactory: public Poco::Net::HTTPRequestHandlerFactory { public: @@ -90,7 +97,7 @@ namespace { } - Poco::Net::HTTPRequestHandler* createRequestHandler(const HTTPServerRequest& request) + Poco::Net::HTTPRequestHandler* createRequestHandler(const HTTPServerRequest& request) override { return new WebSocketRequestHandler(_bufSize); } @@ -111,6 +118,46 @@ WebSocketTest::~WebSocketTest() } +void WebSocketTest::testWebSocketTimeout() +{ + Poco::Net::SecureServerSocket ss(0); + Poco::Net::HTTPServer server(new WebSocketRequestHandlerFactory, ss, new Poco::Net::HTTPServerParams); + server.start(); + + Poco::Thread::sleep(200); + + HTTPSClientSession cs("127.0.0.1", ss.address().port()); + HTTPRequest request(HTTPRequest::HTTP_GET, "/ws"); + HTTPResponse response; + WebSocket ws(cs, request, response); + ws.setSendTimeout( Poco::Timespan(2, 0)); + ws.setReceiveTimeout( Poco::Timespan(2, 0)); + + Poco::Timestamp sendStart; + char buffer[1024] = {}; + int flags; + try + { + // Server will take long to process and cause WS timeout + WebSocketRequestHandler::handleDelay.assign(3, 0); + + std::string payload("x"); + ws.sendFrame(payload.data(), (int) payload.size()); + ws.receiveFrame(buffer, sizeof(buffer), flags); + + failmsg("Data exchange shall time out."); + } + catch (const Poco::TimeoutException& te) + { + assertTrue(sendStart.elapsed() < Poco::Timespan(4, 0).totalMicroseconds()); + } + + ws.shutdown(); + ws.receiveFrame(buffer, sizeof(buffer), flags); + server.stop(); +} + + void WebSocketTest::testWebSocket() { Poco::Net::SecureServerSocket ss(0); @@ -227,6 +274,7 @@ CppUnit::Test* WebSocketTest::suite() CppUnit::TestSuite* pSuite = new CppUnit::TestSuite("WebSocketTest"); CppUnit_addTest(pSuite, WebSocketTest, testWebSocket); + CppUnit_addTest(pSuite, WebSocketTest, testWebSocketTimeout); CppUnit_addTest(pSuite, WebSocketTest, testWebSocketLarge); return pSuite; diff --git a/NetSSL_OpenSSL/testsuite/src/WebSocketTest.h b/NetSSL_OpenSSL/testsuite/src/WebSocketTest.h index 87d943da7..f8ea9131c 100644 --- a/NetSSL_OpenSSL/testsuite/src/WebSocketTest.h +++ b/NetSSL_OpenSSL/testsuite/src/WebSocketTest.h @@ -22,13 +22,14 @@ class WebSocketTest: public CppUnit::TestCase { public: WebSocketTest(const std::string& name); - ~WebSocketTest(); + ~WebSocketTest() override; + void testWebSocketTimeout(); void testWebSocket(); void testWebSocketLarge(); - void setUp(); - void tearDown(); + void setUp() override; + void tearDown() override; static CppUnit::Test* suite(); From 6bff0307d370f0652061cb31e627c5d594814e3b Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Tue, 26 Mar 2024 17:10:58 +0100 Subject: [PATCH 360/395] test(WebSocket): simple ping/pong WebSocket client and server. (#2631) --- NetSSL_OpenSSL/testsuite/CMakeLists.txt | 15 ++ .../testsuite/ping/websocket-client.cpp | 101 +++++++++++ .../testsuite/ping/websocket-server.cpp | 162 ++++++++++++++++++ 3 files changed, 278 insertions(+) create mode 100644 NetSSL_OpenSSL/testsuite/ping/websocket-client.cpp create mode 100644 NetSSL_OpenSSL/testsuite/ping/websocket-server.cpp diff --git a/NetSSL_OpenSSL/testsuite/CMakeLists.txt b/NetSSL_OpenSSL/testsuite/CMakeLists.txt index 9f8e916f5..c984f89bd 100644 --- a/NetSSL_OpenSSL/testsuite/CMakeLists.txt +++ b/NetSSL_OpenSSL/testsuite/CMakeLists.txt @@ -11,6 +11,10 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF ) add_executable(NetSSL-testrunner ${TEST_SRCS}) + +add_executable(NetSSL-server ping/websocket-server.cpp) +add_executable(NetSSL-client ping/websocket-client.cpp) + if(ANDROID) add_test( NAME NetSSL @@ -32,5 +36,16 @@ else() COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/dhparams.pem ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/testrunner.xml ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/NetSSL-testrunner.xml ) + + add_custom_command( + TARGET NetSSL-server POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/testrunner.xml ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/NetSSL-server.xml + ) + add_custom_command( + TARGET NetSSL-client POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/testrunner.xml ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/NetSSL-client.xml + ) endif() target_link_libraries(NetSSL-testrunner PUBLIC Poco::NetSSL Poco::Util Poco::XML CppUnit) +target_link_libraries(NetSSL-server PUBLIC Poco::NetSSL Poco::Util) +target_link_libraries(NetSSL-client PUBLIC Poco::NetSSL Poco::Util) diff --git a/NetSSL_OpenSSL/testsuite/ping/websocket-client.cpp b/NetSSL_OpenSSL/testsuite/ping/websocket-client.cpp new file mode 100644 index 000000000..7d1268570 --- /dev/null +++ b/NetSSL_OpenSSL/testsuite/ping/websocket-client.cpp @@ -0,0 +1,101 @@ +// +// websocket-client.cpp +// +// Copyright (c) 2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/HTTPRequest.h" +#include "Poco/Net/HTTPResponse.h" +#include "Poco/Net/WebSocket.h" +#include "Poco/Net/HTTPSClientSession.h" +#include "Poco/Util/Application.h" + +using Poco::Net::HTTPSClientSession; +using Poco::Net::HTTPRequest; +using Poco::Net::HTTPResponse; +using Poco::Net::WebSocket; + +class PingClientApp: public Poco::Util::Application +{ +public: + PingClientApp() + { + Poco::Net::initializeSSL(); + } + + ~PingClientApp() override + { + Poco::Net::uninitializeSSL(); + } + + int main(const std::vector& args) override + { + if (args.size() != 2) + { + std::cout << "Usage: " << this->commandName() << " hostname port" << std::endl; + return 1; + } + std::cout << "Connecting to: " << args[0] << ":" << args[1] << std::endl; + int port = std::stoi(args[1]); + + HTTPSClientSession cs(args[0], port); + HTTPRequest request(HTTPRequest::HTTP_GET, "/ws"); + HTTPResponse response; + WebSocket ws(cs, request, response); + + char buffer[1024] = {}; + int flags; + + const std::string payload("PING!"); + + while (true) + { + std::cout << "Sending: " << payload << std::endl; + ws.sendFrame(payload.data(), (int) payload.size()); + int n = ws.receiveFrame(buffer, sizeof(buffer), flags); + std::string response(buffer, n); + std::cout << "Received: " << response << std::endl; + Poco::Thread::current()->sleep(1000); + } + + ws.shutdown(); + ws.receiveFrame(buffer, sizeof(buffer), flags); + + return 0; + } + + void setup(int argc, char** argv) + { + init(argc, argv); + } + +protected: + void initialize(Poco::Util::Application& self) override + { + loadConfiguration(); // load default configuration files, if present + Poco::Util::Application::initialize(self); + } + +}; + +int main(int argc, char** argv) +{ + PingClientApp app; + try + { + app.setup(argc, argv); + return app.run(); + } + catch (Poco::Exception& exc) + { + std::cout << exc.displayText() << std::endl; + return 1; + } + +} + + diff --git a/NetSSL_OpenSSL/testsuite/ping/websocket-server.cpp b/NetSSL_OpenSSL/testsuite/ping/websocket-server.cpp new file mode 100644 index 000000000..e5b22031a --- /dev/null +++ b/NetSSL_OpenSSL/testsuite/ping/websocket-server.cpp @@ -0,0 +1,162 @@ +// +// websocket-server.cpp +// +// Copyright (c) 2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/WebSocket.h" +#include "Poco/Net/HTTPSClientSession.h" +#include "Poco/Net/HTTPServer.h" +#include "Poco/Net/HTTPServerParams.h" +#include "Poco/Net/HTTPRequestHandler.h" +#include "Poco/Net/HTTPRequestHandlerFactory.h" +#include "Poco/Net/HTTPServerRequest.h" +#include "Poco/Net/HTTPServerResponse.h" +#include "Poco/Net/SecureServerSocket.h" +#include "Poco/Net/NetException.h" +#include "Poco/Thread.h" +#include "Poco/Util/Application.h" + +using Poco::Net::HTTPResponse; +using Poco::Net::HTTPServerRequest; +using Poco::Net::HTTPServerResponse; +using Poco::Net::WebSocket; +using Poco::Net::WebSocketException; + + +namespace +{ + class WebSocketRequestHandler: public Poco::Net::HTTPRequestHandler + { + public: + WebSocketRequestHandler(std::size_t bufSize = 1024): _bufSize(bufSize) + { + } + + void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response) override + { + try + { + WebSocket ws(request, response); + std::unique_ptr pBuffer(new char[_bufSize]); + static const std::string pong("PONG!"); + int flags; + int n; + do + { + n = ws.receiveFrame(pBuffer.get(), static_cast(_bufSize), flags); + if (n == 0) + break; + + std::string message(pBuffer.get(), n); + std::cout << "Received: " << message << " from " << request.clientAddress().toString() << std::endl; + ws.sendFrame(pong.c_str(), pong.size(), flags); + std::cout << "Replied: " << pong << std::endl; + } + while ((flags & WebSocket::FRAME_OP_BITMASK) != WebSocket::FRAME_OP_CLOSE); + } + catch (const WebSocketException& exc) + { + switch (exc.code()) + { + case WebSocket::WS_ERR_HANDSHAKE_UNSUPPORTED_VERSION: + response.set("Sec-WebSocket-Version", WebSocket::WEBSOCKET_VERSION); + // fallthrough + case WebSocket::WS_ERR_NO_HANDSHAKE: + case WebSocket::WS_ERR_HANDSHAKE_NO_VERSION: + case WebSocket::WS_ERR_HANDSHAKE_NO_KEY: + response.setStatusAndReason(HTTPResponse::HTTP_BAD_REQUEST); + response.setContentLength(0); + response.send(); + break; + } + } + } + + private: + std::size_t _bufSize; + }; + + class WebSocketRequestHandlerFactory: public Poco::Net::HTTPRequestHandlerFactory + { + public: + WebSocketRequestHandlerFactory(std::size_t bufSize = 1024): _bufSize(bufSize) + { + } + + Poco::Net::HTTPRequestHandler* createRequestHandler(const HTTPServerRequest& request) override + { + return new WebSocketRequestHandler(_bufSize); + } + + private: + std::size_t _bufSize; + }; +} + + +class PingServerApp: public Poco::Util::Application +{ +public: + PingServerApp() + { + Poco::Net::initializeSSL(); + } + + ~PingServerApp() override + { + Poco::Net::uninitializeSSL(); + } + + int main(const std::vector& args) override + { + std::cout << "Starting server" << std::endl; + + Poco::Net::SecureServerSocket ss(0); + Poco::Net::HTTPServer server(new WebSocketRequestHandlerFactory, ss, new Poco::Net::HTTPServerParams); + + server.start(); + + Poco::Thread::sleep(200); + + std::cout << "Listening: " << ss.address().toString() << std::endl; + std::cout << "Serving requests. Press a key to stop." << std::endl; + std::cin.get(); + + server.stop(); + + return 0; + } + + void setup(int argc, char** argv) + { + init(argc, argv); + } + +protected: + void initialize(Poco::Util::Application& self) override + { + loadConfiguration(); // load default configuration files, if present + Poco::Util::Application::initialize(self); + } + +}; + +int main(int argc, char** argv) +{ + PingServerApp app; + try + { + app.setup(argc, argv); + return app.run(); + } + catch (Poco::Exception& exc) + { + std::cout << exc.displayText() << std::endl; + return 1; + } +} From aabe113c8e081e35f1a7c89095e4504a106d7ac4 Mon Sep 17 00:00:00 2001 From: Andrew Auclair Date: Thu, 28 Mar 2024 14:38:10 -0400 Subject: [PATCH 361/395] CMake CACHE PATH (#4490) Use CACHE PATH for CMAKE_LIBRARY_OUTPUT_DIRECTORY, CMAKE_ARCHIVE_OUTPUT_DIRECTORY and CMAKE_RUNTIME_OUTPUT_DIRECTORY. --- CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f56179162..2931c9f80 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,10 +16,10 @@ set(RELEASE_NAME "Unstable-trunk") # top of the build tree rather than in hard-to-find leaf # directories. This simplifies manual testing and the use of the build # tree rather than installed Boost libraries. -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib CACHE PATH "Library output") +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib CACHE PATH "Archive output") # Windows DLLs are "runtime" for CMake. Output them to "bin" like the Visual Studio projects do. -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin CACHE PATH "Runtime output") # Reset output dirs for multi-config builds foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES}) From 47c4f073e61f1130328e5689d91ff534461cc6c7 Mon Sep 17 00:00:00 2001 From: Andrew Auclair Date: Thu, 28 Mar 2024 14:43:14 -0400 Subject: [PATCH 362/395] Moving operator<< and operator>> overloads into the Poco::Net namespace. (#4491) --- Net/include/Poco/Net/IPAddress.h | 5 ++--- Net/include/Poco/Net/SocketAddress.h | 6 +++--- Net/src/IPAddress.cpp | 7 ++++--- Net/src/SocketAddress.cpp | 8 +++++--- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/Net/include/Poco/Net/IPAddress.h b/Net/include/Poco/Net/IPAddress.h index 5c7550230..f7baa54da 100644 --- a/Net/include/Poco/Net/IPAddress.h +++ b/Net/include/Poco/Net/IPAddress.h @@ -474,12 +474,11 @@ inline void IPAddress::newIPv6(unsigned prefix) #endif // POCO_HAVE_IPv6 -} } // namespace Poco::Net - - Net_API Poco::BinaryWriter& operator << (Poco::BinaryWriter& writer, const Poco::Net::IPAddress& value); Net_API Poco::BinaryReader& operator >> (Poco::BinaryReader& reader, Poco::Net::IPAddress& value); Net_API std::ostream& operator << (std::ostream& ostr, const Poco::Net::IPAddress& addr); +} } // namespace Poco::Net + #endif // Net_IPAddress_INCLUDED diff --git a/Net/include/Poco/Net/SocketAddress.h b/Net/include/Poco/Net/SocketAddress.h index 622ed06bf..8792f539f 100644 --- a/Net/include/Poco/Net/SocketAddress.h +++ b/Net/include/Poco/Net/SocketAddress.h @@ -316,12 +316,12 @@ inline bool SocketAddress::operator != (const SocketAddress& socketAddress) cons } -} } // namespace Poco::Net - - Net_API Poco::BinaryWriter& operator << (Poco::BinaryWriter& writer, const Poco::Net::SocketAddress& value); Net_API Poco::BinaryReader& operator >> (Poco::BinaryReader& reader, Poco::Net::SocketAddress& value); Net_API std::ostream& operator << (std::ostream& ostr, const Poco::Net::SocketAddress& address); +} } // namespace Poco::Net + + #endif // Net_SocketAddress_INCLUDED diff --git a/Net/src/IPAddress.cpp b/Net/src/IPAddress.cpp index df1745a09..32b3185d8 100644 --- a/Net/src/IPAddress.cpp +++ b/Net/src/IPAddress.cpp @@ -674,9 +674,6 @@ std::vector IPAddress::toBytes() const } -} } // namespace Poco::Net - - Poco::BinaryWriter& operator << (Poco::BinaryWriter& writer, const Poco::Net::IPAddress& value) { writer << static_cast(value.length()); @@ -701,3 +698,7 @@ std::ostream& operator << (std::ostream& ostr, const Poco::Net::IPAddress& addr) ostr << addr.toString(); return ostr; } + + +} } // namespace Poco::Net + diff --git a/Net/src/SocketAddress.cpp b/Net/src/SocketAddress.cpp index 3c9955b06..3313e483b 100644 --- a/Net/src/SocketAddress.cpp +++ b/Net/src/SocketAddress.cpp @@ -433,9 +433,6 @@ Poco::UInt16 SocketAddress::resolveService(const std::string& service) } -} } // namespace Poco::Net - - Poco::BinaryWriter& operator << (Poco::BinaryWriter& writer, const Poco::Net::SocketAddress& value) { writer << value.host(); @@ -460,3 +457,8 @@ std::ostream& operator << (std::ostream& ostr, const Poco::Net::SocketAddress& a ostr << address.toString(); return ostr; } + + +} } // namespace Poco::Net + + From fa8dd55c8cd73181b2deb59f3a0c3294d2cdc391 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Fri, 29 Mar 2024 08:26:38 +0100 Subject: [PATCH 363/395] fix(Data/MySQL): replace deprecated mysql_stmt_bind_param() with mysql_stmt_bind_named_param() --- Data/MySQL/src/StatementExecutor.cpp | 4 ++-- Data/MySQL/testsuite/src/SQLExecutor.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Data/MySQL/src/StatementExecutor.cpp b/Data/MySQL/src/StatementExecutor.cpp index b7e8dbcd8..26a3b333a 100644 --- a/Data/MySQL/src/StatementExecutor.cpp +++ b/Data/MySQL/src/StatementExecutor.cpp @@ -80,8 +80,8 @@ void StatementExecutor::bindParams(MYSQL_BIND* params, std::size_t count) if (count == 0) return; - if (mysql_stmt_bind_param(_pHandle, params) != 0) - throw StatementException("mysql_stmt_bind_param() error ", _pHandle, _query); + if (mysql_stmt_bind_named_param(_pHandle, params, count, nullptr) != 0) + throw StatementException("mysql_stmt_bind_named_param() error ", _pHandle, _query); } diff --git a/Data/MySQL/testsuite/src/SQLExecutor.cpp b/Data/MySQL/testsuite/src/SQLExecutor.cpp index 6e822cf50..084dedec8 100644 --- a/Data/MySQL/testsuite/src/SQLExecutor.cpp +++ b/Data/MySQL/testsuite/src/SQLExecutor.cpp @@ -205,7 +205,7 @@ void SQLExecutor::bareboneMySQLTest(const char* host, const char* user, const ch bind_param[4].buffer = &fifth; bind_param[4].buffer_type = MYSQL_TYPE_FLOAT; - rc = mysql_stmt_bind_param(hstmt, bind_param); + rc = mysql_stmt_bind_named_param(hstmt, bind_param, 5, nullptr); assertTrue (rc == 0); rc = mysql_stmt_execute(hstmt); From 24cd658021fe231998ec919b651cb1316dc6ca48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Fri, 29 Mar 2024 09:18:22 +0100 Subject: [PATCH 364/395] chore(Data/SQLite): Upgrade bundled SQLite to 3.45.2 #4515 --- Data/SQLite/src/sqlite3.c | 295 +++++++++++++++++++++++++++----------- Data/SQLite/src/sqlite3.h | 8 +- 2 files changed, 218 insertions(+), 85 deletions(-) diff --git a/Data/SQLite/src/sqlite3.c b/Data/SQLite/src/sqlite3.c index 139ee46a6..55ca30940 100644 --- a/Data/SQLite/src/sqlite3.c +++ b/Data/SQLite/src/sqlite3.c @@ -1,6 +1,6 @@ /****************************************************************************** ** This file is an amalgamation of many separate C source files from SQLite -** version 3.45.1. By combining all the individual C code files into this +** version 3.45.2. By combining all the individual C code files into this ** single large file, the entire code can be compiled as a single translation ** unit. This allows many compilers to do optimizations that would not be ** possible if the files were compiled separately. Performance improvements @@ -18,7 +18,7 @@ ** separate file. This file contains only code for the core SQLite library. ** ** The content in this amalgamation comes from Fossil check-in -** e876e51a0ed5c5b3126f52e532044363a014. +** d8cd6d49b46a395b13955387d05e9e1a2a47. */ #define SQLITE_CORE 1 #define SQLITE_AMALGAMATION 1 @@ -459,9 +459,9 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.45.1" -#define SQLITE_VERSION_NUMBER 3045001 -#define SQLITE_SOURCE_ID "2024-01-30 16:01:20 e876e51a0ed5c5b3126f52e532044363a014bc594cfefa87ffb5b82257cc467a" +#define SQLITE_VERSION "3.45.2" +#define SQLITE_VERSION_NUMBER 3045002 +#define SQLITE_SOURCE_ID "2024-03-12 11:06:23 d8cd6d49b46a395b13955387d05e9e1a2a47e54fb99f3c9b59835bbefad6af77" /* ** CAPI3REF: Run-Time Library Version Numbers @@ -733,6 +733,8 @@ typedef int (*sqlite3_callback)(void*,int,char**, char**); ** the 1st parameter to sqlite3_exec() while sqlite3_exec() is running. **
      • The application must not modify the SQL statement text passed into ** the 2nd parameter of sqlite3_exec() while sqlite3_exec() is running. +**
      • The application must not dereference the arrays or string pointers +** passed as the 3rd and 4th callback parameters after it returns. **
      */ SQLITE_API int sqlite3_exec( @@ -15097,6 +15099,7 @@ SQLITE_PRIVATE u32 sqlite3TreeTrace; ** 0x00010000 Beginning of DELETE/INSERT/UPDATE processing ** 0x00020000 Transform DISTINCT into GROUP BY ** 0x00040000 SELECT tree dump after all code has been generated +** 0x00080000 NOT NULL strength reduction */ /* @@ -19346,6 +19349,7 @@ struct NameContext { #define NC_InAggFunc 0x020000 /* True if analyzing arguments to an agg func */ #define NC_FromDDL 0x040000 /* SQL text comes from sqlite_schema */ #define NC_NoSelect 0x080000 /* Do not descend into sub-selects */ +#define NC_Where 0x100000 /* Processing WHERE clause of a SELECT */ #define NC_OrderAgg 0x8000000 /* Has an aggregate other than count/min/max */ /* @@ -19369,6 +19373,7 @@ struct Upsert { Expr *pUpsertWhere; /* WHERE clause for the ON CONFLICT UPDATE */ Upsert *pNextUpsert; /* Next ON CONFLICT clause in the list */ u8 isDoUpdate; /* True for DO UPDATE. False for DO NOTHING */ + u8 isDup; /* True if 2nd or later with same pUpsertIdx */ /* Above this point is the parse tree for the ON CONFLICT clauses. ** The next group of fields stores intermediate data. */ void *pToFree; /* Free memory when deleting the Upsert object */ @@ -21444,7 +21449,7 @@ SQLITE_PRIVATE With *sqlite3WithPush(Parse*, With*, u8); SQLITE_PRIVATE Upsert *sqlite3UpsertNew(sqlite3*,ExprList*,Expr*,ExprList*,Expr*,Upsert*); SQLITE_PRIVATE void sqlite3UpsertDelete(sqlite3*,Upsert*); SQLITE_PRIVATE Upsert *sqlite3UpsertDup(sqlite3*,Upsert*); -SQLITE_PRIVATE int sqlite3UpsertAnalyzeTarget(Parse*,SrcList*,Upsert*); +SQLITE_PRIVATE int sqlite3UpsertAnalyzeTarget(Parse*,SrcList*,Upsert*,Upsert*); SQLITE_PRIVATE void sqlite3UpsertDoUpdate(Parse*,Upsert*,Table*,Index*,int); SQLITE_PRIVATE Upsert *sqlite3UpsertOfIndex(Upsert*,Index*); SQLITE_PRIVATE int sqlite3UpsertNextIsIPK(Upsert*); @@ -31309,6 +31314,7 @@ SQLITE_API void sqlite3_str_vappendf( if( xtype==etFLOAT ){ iRound = -precision; }else if( xtype==etGENERIC ){ + if( precision==0 ) precision = 1; iRound = precision; }else{ iRound = precision+1; @@ -35199,6 +35205,9 @@ do_atof_calc: u64 s2; rr[0] = (double)s; s2 = (u64)rr[0]; +#if defined(_MSC_VER) && _MSC_VER<1700 + if( s2==0x8000000000000000LL ){ s2 = 2*(u64)(0.5*rr[0]); } +#endif rr[1] = s>=s2 ? (double)(s - s2) : -(double)(s2 - s); if( e>0 ){ while( e>=100 ){ @@ -35641,7 +35650,7 @@ SQLITE_PRIVATE void sqlite3FpDecode(FpDecode *p, double r, int iRound, int mxRou assert( p->n>0 ); assert( p->nzBuf) ); p->iDP = p->n + exp; - if( iRound<0 ){ + if( iRound<=0 ){ iRound = p->iDP - iRound; if( iRound==0 && p->zBuf[i+1]>='5' ){ iRound = 1; @@ -53262,6 +53271,14 @@ SQLITE_API unsigned char *sqlite3_serialize( pOut = 0; }else{ sz = sqlite3_column_int64(pStmt, 0)*szPage; + if( sz==0 ){ + sqlite3_reset(pStmt); + sqlite3_exec(db, "BEGIN IMMEDIATE; COMMIT;", 0, 0, 0); + rc = sqlite3_step(pStmt); + if( rc==SQLITE_ROW ){ + sz = sqlite3_column_int64(pStmt, 0)*szPage; + } + } if( piSize ) *piSize = sz; if( mFlags & SQLITE_SERIALIZE_NOCOPY ){ pOut = 0; @@ -77088,7 +77105,10 @@ static int fillInCell( n = nHeader + nPayload; testcase( n==3 ); testcase( n==4 ); - if( n<4 ) n = 4; + if( n<4 ){ + n = 4; + pPayload[nPayload] = 0; + } *pnSize = n; assert( nSrc<=nPayload ); testcase( nSrcpBt->nPreformatSize; - if( szNew<4 ) szNew = 4; + if( szNew<4 ){ + szNew = 4; + newCell[3] = 0; + } if( ISAUTOVACUUM(p->pBt) && szNew>pPage->maxLocal ){ CellInfo info; pPage->xParseCell(pPage, newCell, &info); @@ -88379,6 +88402,23 @@ static void serialGet( pMem->flags = IsNaN(x) ? MEM_Null : MEM_Real; } } +static int serialGet7( + const unsigned char *buf, /* Buffer to deserialize from */ + Mem *pMem /* Memory cell to write value into */ +){ + u64 x = FOUR_BYTE_UINT(buf); + u32 y = FOUR_BYTE_UINT(buf+4); + x = (x<<32) + y; + assert( sizeof(x)==8 && sizeof(pMem->u.r)==8 ); + swapMixedEndianFloat(x); + memcpy(&pMem->u.r, &x, sizeof(x)); + if( IsNaN(x) ){ + pMem->flags = MEM_Null; + return 1; + } + pMem->flags = MEM_Real; + return 0; +} SQLITE_PRIVATE void sqlite3VdbeSerialGet( const unsigned char *buf, /* Buffer to deserialize from */ u32 serial_type, /* Serial type to deserialize */ @@ -89058,7 +89098,7 @@ SQLITE_PRIVATE int sqlite3VdbeRecordCompareWithSkip( }else if( serial_type==0 ){ rc = -1; }else if( serial_type==7 ){ - sqlite3VdbeSerialGet(&aKey1[d1], serial_type, &mem1); + serialGet7(&aKey1[d1], &mem1); rc = -sqlite3IntFloatCompare(pRhs->u.i, mem1.u.r); }else{ i64 lhs = vdbeRecordDecodeInt(serial_type, &aKey1[d1]); @@ -89083,14 +89123,18 @@ SQLITE_PRIVATE int sqlite3VdbeRecordCompareWithSkip( }else if( serial_type==0 ){ rc = -1; }else{ - sqlite3VdbeSerialGet(&aKey1[d1], serial_type, &mem1); if( serial_type==7 ){ - if( mem1.u.ru.r ){ + if( serialGet7(&aKey1[d1], &mem1) ){ + rc = -1; /* mem1 is a NaN */ + }else if( mem1.u.ru.r ){ rc = -1; }else if( mem1.u.r>pRhs->u.r ){ rc = +1; + }else{ + assert( rc==0 ); } }else{ + sqlite3VdbeSerialGet(&aKey1[d1], serial_type, &mem1); rc = sqlite3IntFloatCompare(mem1.u.i, pRhs->u.r); } } @@ -89160,7 +89204,14 @@ SQLITE_PRIVATE int sqlite3VdbeRecordCompareWithSkip( /* RHS is null */ else{ serial_type = aKey1[idx1]; - rc = (serial_type!=0 && serial_type!=10); + if( serial_type==0 + || serial_type==10 + || (serial_type==7 && serialGet7(&aKey1[d1], &mem1)!=0) + ){ + assert( rc==0 ); + }else{ + rc = 1; + } } if( rc!=0 ){ @@ -94858,7 +94909,9 @@ case OP_Ge: { /* same as TK_GE, jump, in1, in3 */ } } }else if( affinity==SQLITE_AFF_TEXT && ((flags1 | flags3) & MEM_Str)!=0 ){ - if( (flags1 & MEM_Str)==0 && (flags1&(MEM_Int|MEM_Real|MEM_IntReal))!=0 ){ + if( (flags1 & MEM_Str)!=0 ){ + pIn1->flags &= ~(MEM_Int|MEM_Real|MEM_IntReal); + }else if( (flags1&(MEM_Int|MEM_Real|MEM_IntReal))!=0 ){ testcase( pIn1->flags & MEM_Int ); testcase( pIn1->flags & MEM_Real ); testcase( pIn1->flags & MEM_IntReal ); @@ -94867,7 +94920,9 @@ case OP_Ge: { /* same as TK_GE, jump, in1, in3 */ flags1 = (pIn1->flags & ~MEM_TypeMask) | (flags1 & MEM_TypeMask); if( NEVER(pIn1==pIn3) ) flags3 = flags1 | MEM_Str; } - if( (flags3 & MEM_Str)==0 && (flags3&(MEM_Int|MEM_Real|MEM_IntReal))!=0 ){ + if( (flags3 & MEM_Str)!=0 ){ + pIn3->flags &= ~(MEM_Int|MEM_Real|MEM_IntReal); + }else if( (flags3&(MEM_Int|MEM_Real|MEM_IntReal))!=0 ){ testcase( pIn3->flags & MEM_Int ); testcase( pIn3->flags & MEM_Real ); testcase( pIn3->flags & MEM_IntReal ); @@ -106212,6 +106267,8 @@ static void resolveAlias( assert( iCol>=0 && iColnExpr ); pOrig = pEList->a[iCol].pExpr; assert( pOrig!=0 ); + assert( !ExprHasProperty(pExpr, EP_Reduced|EP_TokenOnly) ); + if( pExpr->pAggInfo ) return; db = pParse->db; pDup = sqlite3ExprDup(db, pOrig, 0); if( db->mallocFailed ){ @@ -107097,6 +107154,19 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ ** resolved. This prevents "column" from being counted as having been ** referenced, which might prevent a SELECT from being erroneously ** marked as correlated. + ** + ** 2024-03-28: Beware of aggregates. A bare column of aggregated table + ** can still evaluate to NULL even though it is marked as NOT NULL. + ** Example: + ** + ** CREATE TABLE t1(a INT NOT NULL); + ** SELECT a, a IS NULL, a IS NOT NULL, count(*) FROM t1; + ** + ** The "a IS NULL" and "a IS NOT NULL" expressions cannot be optimized + ** here because at the time this case is hit, we do not yet know whether + ** or not t1 is being aggregated. We have to assume the worst and omit + ** the optimization. The only time it is safe to apply this optimization + ** is within the WHERE clause. */ case TK_NOTNULL: case TK_ISNULL: { @@ -107107,19 +107177,36 @@ static int resolveExprStep(Walker *pWalker, Expr *pExpr){ anRef[i] = p->nRef; } sqlite3WalkExpr(pWalker, pExpr->pLeft); - if( 0==sqlite3ExprCanBeNull(pExpr->pLeft) && !IN_RENAME_OBJECT ){ - testcase( ExprHasProperty(pExpr, EP_OuterON) ); - assert( !ExprHasProperty(pExpr, EP_IntValue) ); - pExpr->u.iValue = (pExpr->op==TK_NOTNULL); - pExpr->flags |= EP_IntValue; - pExpr->op = TK_INTEGER; - - for(i=0, p=pNC; p && ipNext, i++){ - p->nRef = anRef[i]; - } - sqlite3ExprDelete(pParse->db, pExpr->pLeft); - pExpr->pLeft = 0; + if( IN_RENAME_OBJECT ) return WRC_Prune; + if( sqlite3ExprCanBeNull(pExpr->pLeft) ){ + /* The expression can be NULL. So the optimization does not apply */ + return WRC_Prune; } + + for(i=0, p=pNC; p; p=p->pNext, i++){ + if( (p->ncFlags & NC_Where)==0 ){ + return WRC_Prune; /* Not in a WHERE clause. Unsafe to optimize. */ + } + } + testcase( ExprHasProperty(pExpr, EP_OuterON) ); + assert( !ExprHasProperty(pExpr, EP_IntValue) ); +#if TREETRACE_ENABLED + if( sqlite3TreeTrace & 0x80000 ){ + sqlite3DebugPrintf( + "NOT NULL strength reduction converts the following to %d:\n", + pExpr->op==TK_NOTNULL + ); + sqlite3ShowExpr(pExpr); + } +#endif /* TREETRACE_ENABLED */ + pExpr->u.iValue = (pExpr->op==TK_NOTNULL); + pExpr->flags |= EP_IntValue; + pExpr->op = TK_INTEGER; + for(i=0, p=pNC; p && ipNext, i++){ + p->nRef = anRef[i]; + } + sqlite3ExprDelete(pParse->db, pExpr->pLeft); + pExpr->pLeft = 0; return WRC_Prune; } @@ -108019,7 +108106,9 @@ static int resolveSelectStep(Walker *pWalker, Select *p){ } if( sqlite3ResolveExprNames(&sNC, p->pHaving) ) return WRC_Abort; } + sNC.ncFlags |= NC_Where; if( sqlite3ResolveExprNames(&sNC, p->pWhere) ) return WRC_Abort; + sNC.ncFlags &= ~NC_Where; /* Resolve names in table-valued-function arguments */ for(i=0; ipSrc->nSrc; i++){ @@ -128947,13 +129036,13 @@ SQLITE_PRIVATE void sqlite3QuoteValue(StrAccum *pStr, sqlite3_value *pValue){ double r1, r2; const char *zVal; r1 = sqlite3_value_double(pValue); - sqlite3_str_appendf(pStr, "%!.15g", r1); + sqlite3_str_appendf(pStr, "%!0.15g", r1); zVal = sqlite3_str_value(pStr); if( zVal ){ sqlite3AtoF(zVal, &r2, pStr->nChar, SQLITE_UTF8); if( r1!=r2 ){ sqlite3_str_reset(pStr); - sqlite3_str_appendf(pStr, "%!.20e", r1); + sqlite3_str_appendf(pStr, "%!0.20e", r1); } } break; @@ -129255,7 +129344,7 @@ static void replaceFunc( } if( zPattern[0]==0 ){ assert( sqlite3_value_type(argv[1])!=SQLITE_NULL ); - sqlite3_result_value(context, argv[0]); + sqlite3_result_text(context, (const char*)zStr, nStr, SQLITE_TRANSIENT); return; } nPattern = sqlite3_value_bytes(argv[1]); @@ -133175,7 +133264,7 @@ SQLITE_PRIVATE void sqlite3Insert( pNx->iDataCur = iDataCur; pNx->iIdxCur = iIdxCur; if( pNx->pUpsertTarget ){ - if( sqlite3UpsertAnalyzeTarget(pParse, pTabList, pNx) ){ + if( sqlite3UpsertAnalyzeTarget(pParse, pTabList, pNx, pUpsert) ){ goto insert_cleanup; } } @@ -139474,31 +139563,7 @@ SQLITE_PRIVATE void sqlite3Pragma( int mxCol; /* Maximum non-virtual column number */ if( pObjTab && pObjTab!=pTab ) continue; - if( !IsOrdinaryTable(pTab) ){ -#ifndef SQLITE_OMIT_VIRTUALTABLE - sqlite3_vtab *pVTab; - int a1; - if( !IsVirtual(pTab) ) continue; - if( pTab->nCol<=0 ){ - const char *zMod = pTab->u.vtab.azArg[0]; - if( sqlite3HashFind(&db->aModule, zMod)==0 ) continue; - } - sqlite3ViewGetColumnNames(pParse, pTab); - if( pTab->u.vtab.p==0 ) continue; - pVTab = pTab->u.vtab.p->pVtab; - if( NEVER(pVTab==0) ) continue; - if( NEVER(pVTab->pModule==0) ) continue; - if( pVTab->pModule->iVersion<4 ) continue; - if( pVTab->pModule->xIntegrity==0 ) continue; - sqlite3VdbeAddOp3(v, OP_VCheck, i, 3, isQuick); - pTab->nTabRef++; - sqlite3VdbeAppendP4(v, pTab, P4_TABLEREF); - a1 = sqlite3VdbeAddOp1(v, OP_IsNull, 3); VdbeCoverage(v); - integrityCheckResultRow(v); - sqlite3VdbeJumpHere(v, a1); -#endif - continue; - } + if( !IsOrdinaryTable(pTab) ) continue; if( isQuick || HasRowid(pTab) ){ pPk = 0; r2 = 0; @@ -139633,6 +139698,7 @@ SQLITE_PRIVATE void sqlite3Pragma( ** is REAL, we have to load the actual data using OP_Column ** to reliably determine if the value is a NULL. */ sqlite3VdbeAddOp3(v, OP_Column, p1, p3, 3); + sqlite3ColumnDefault(v, pTab, j, 3); jmp3 = sqlite3VdbeAddOp2(v, OP_NotNull, 3, labelOk); VdbeCoverage(v); } @@ -139823,6 +139889,38 @@ SQLITE_PRIVATE void sqlite3Pragma( } } } + +#ifndef SQLITE_OMIT_VIRTUALTABLE + /* Second pass to invoke the xIntegrity method on all virtual + ** tables. + */ + for(x=sqliteHashFirst(pTbls); x; x=sqliteHashNext(x)){ + Table *pTab = sqliteHashData(x); + sqlite3_vtab *pVTab; + int a1; + if( pObjTab && pObjTab!=pTab ) continue; + if( IsOrdinaryTable(pTab) ) continue; + if( !IsVirtual(pTab) ) continue; + if( pTab->nCol<=0 ){ + const char *zMod = pTab->u.vtab.azArg[0]; + if( sqlite3HashFind(&db->aModule, zMod)==0 ) continue; + } + sqlite3ViewGetColumnNames(pParse, pTab); + if( pTab->u.vtab.p==0 ) continue; + pVTab = pTab->u.vtab.p->pVtab; + if( NEVER(pVTab==0) ) continue; + if( NEVER(pVTab->pModule==0) ) continue; + if( pVTab->pModule->iVersion<4 ) continue; + if( pVTab->pModule->xIntegrity==0 ) continue; + sqlite3VdbeAddOp3(v, OP_VCheck, i, 3, isQuick); + pTab->nTabRef++; + sqlite3VdbeAppendP4(v, pTab, P4_TABLEREF); + a1 = sqlite3VdbeAddOp1(v, OP_IsNull, 3); VdbeCoverage(v); + integrityCheckResultRow(v); + sqlite3VdbeJumpHere(v, a1); + continue; + } +#endif } { static const int iLn = VDBE_OFFSET_LINENO(2); @@ -153460,7 +153558,8 @@ SQLITE_PRIVATE Upsert *sqlite3UpsertNew( SQLITE_PRIVATE int sqlite3UpsertAnalyzeTarget( Parse *pParse, /* The parsing context */ SrcList *pTabList, /* Table into which we are inserting */ - Upsert *pUpsert /* The ON CONFLICT clauses */ + Upsert *pUpsert, /* The ON CONFLICT clauses */ + Upsert *pAll /* Complete list of all ON CONFLICT clauses */ ){ Table *pTab; /* That table into which we are inserting */ int rc; /* Result code */ @@ -153563,6 +153662,14 @@ SQLITE_PRIVATE int sqlite3UpsertAnalyzeTarget( continue; } pUpsert->pUpsertIdx = pIdx; + if( sqlite3UpsertOfIndex(pAll,pIdx)!=pUpsert ){ + /* Really this should be an error. The isDup ON CONFLICT clause will + ** never fire. But this problem was not discovered until three years + ** after multi-CONFLICT upsert was added, and so we silently ignore + ** the problem to prevent breaking applications that might actually + ** have redundant ON CONFLICT clauses. */ + pUpsert->isDup = 1; + } break; } if( pUpsert->pUpsertIdx==0 ){ @@ -153589,9 +153696,13 @@ SQLITE_PRIVATE int sqlite3UpsertNextIsIPK(Upsert *pUpsert){ Upsert *pNext; if( NEVER(pUpsert==0) ) return 0; pNext = pUpsert->pNextUpsert; - if( pNext==0 ) return 1; - if( pNext->pUpsertTarget==0 ) return 1; - if( pNext->pUpsertIdx==0 ) return 1; + while( 1 /*exit-by-return*/ ){ + if( pNext==0 ) return 1; + if( pNext->pUpsertTarget==0 ) return 1; + if( pNext->pUpsertIdx==0 ) return 1; + if( !pNext->isDup ) return 0; + pNext = pNext->pNextUpsert; + } return 0; } @@ -204785,6 +204896,7 @@ json_parse_restart: case '[': { /* Parse array */ iThis = pParse->nBlob; + assert( i<=(u32)pParse->nJson ); jsonBlobAppendNode(pParse, JSONB_ARRAY, pParse->nJson - i, 0); iStart = pParse->nBlob; if( pParse->oom ) return -1; @@ -205183,6 +205295,10 @@ static void jsonReturnStringAsBlob(JsonString *pStr){ JsonParse px; memset(&px, 0, sizeof(px)); jsonStringTerminate(pStr); + if( pStr->eErr ){ + sqlite3_result_error_nomem(pStr->pCtx); + return; + } px.zJson = pStr->zBuf; px.nJson = pStr->nUsed; px.db = sqlite3_context_db_handle(pStr->pCtx); @@ -206508,8 +206624,9 @@ rebuild_from_cache: } p->zJson = (char*)sqlite3_value_text(pArg); p->nJson = sqlite3_value_bytes(pArg); + if( db->mallocFailed ) goto json_pfa_oom; if( p->nJson==0 ) goto json_pfa_malformed; - if( NEVER(p->zJson==0) ) goto json_pfa_oom; + assert( p->zJson!=0 ); if( jsonConvertTextToBlob(p, (flgs & JSON_KEEPERROR) ? 0 : ctx) ){ if( flgs & JSON_KEEPERROR ){ p->nErr = 1; @@ -206675,10 +206792,10 @@ static void jsonDebugPrintBlob( if( sz==0 && x<=JSONB_FALSE ){ sqlite3_str_append(pOut, "\n", 1); }else{ - u32 i; + u32 j; sqlite3_str_appendall(pOut, ": \""); - for(i=iStart+n; iaBlob[i]; + for(j=iStart+n; jaBlob[j]; if( c<0x20 || c>=0x7f ) c = '.'; sqlite3_str_append(pOut, (char*)&c, 1); } @@ -208086,6 +208203,9 @@ static int jsonEachColumn( case JEACH_VALUE: { u32 i = jsonSkipLabel(p); jsonReturnFromBlob(&p->sParse, i, ctx, 1); + if( (p->sParse.aBlob[i] & 0x0f)>=JSONB_ARRAY ){ + sqlite3_result_subtype(ctx, JSON_SUBTYPE); + } break; } case JEACH_TYPE: { @@ -208132,9 +208252,9 @@ static int jsonEachColumn( case JEACH_JSON: { if( p->sParse.zJson==0 ){ sqlite3_result_blob(ctx, p->sParse.aBlob, p->sParse.nBlob, - SQLITE_STATIC); + SQLITE_TRANSIENT); }else{ - sqlite3_result_text(ctx, p->sParse.zJson, -1, SQLITE_STATIC); + sqlite3_result_text(ctx, p->sParse.zJson, -1, SQLITE_TRANSIENT); } break; } @@ -209160,11 +209280,9 @@ static RtreeNode *nodeNew(Rtree *pRtree, RtreeNode *pParent){ ** Clear the Rtree.pNodeBlob object */ static void nodeBlobReset(Rtree *pRtree){ - if( pRtree->pNodeBlob && pRtree->inWrTrans==0 && pRtree->nCursor==0 ){ - sqlite3_blob *pBlob = pRtree->pNodeBlob; - pRtree->pNodeBlob = 0; - sqlite3_blob_close(pBlob); - } + sqlite3_blob *pBlob = pRtree->pNodeBlob; + pRtree->pNodeBlob = 0; + sqlite3_blob_close(pBlob); } /* @@ -209208,7 +209326,6 @@ static int nodeAcquire( &pRtree->pNodeBlob); } if( rc ){ - nodeBlobReset(pRtree); *ppNode = 0; /* If unable to open an sqlite3_blob on the desired row, that can only ** be because the shadow tables hold erroneous data. */ @@ -209268,6 +209385,7 @@ static int nodeAcquire( } *ppNode = pNode; }else{ + nodeBlobReset(pRtree); if( pNode ){ pRtree->nNodeRef--; sqlite3_free(pNode); @@ -209412,6 +209530,7 @@ static void nodeGetCoord( int iCoord, /* Which coordinate to extract */ RtreeCoord *pCoord /* OUT: Space to write result to */ ){ + assert( iCellzData[12 + pRtree->nBytesPerCell*iCell + 4*iCoord], pCoord); } @@ -209601,7 +209720,9 @@ static int rtreeClose(sqlite3_vtab_cursor *cur){ sqlite3_finalize(pCsr->pReadAux); sqlite3_free(pCsr); pRtree->nCursor--; - nodeBlobReset(pRtree); + if( pRtree->nCursor==0 && pRtree->inWrTrans==0 ){ + nodeBlobReset(pRtree); + } return SQLITE_OK; } @@ -210186,7 +210307,11 @@ static int rtreeRowid(sqlite3_vtab_cursor *pVtabCursor, sqlite_int64 *pRowid){ int rc = SQLITE_OK; RtreeNode *pNode = rtreeNodeOfFirstSearchPoint(pCsr, &rc); if( rc==SQLITE_OK && ALWAYS(p) ){ - *pRowid = nodeGetRowid(RTREE_OF_CURSOR(pCsr), pNode, p->iCell); + if( p->iCell>=NCELL(pNode) ){ + rc = SQLITE_ABORT; + }else{ + *pRowid = nodeGetRowid(RTREE_OF_CURSOR(pCsr), pNode, p->iCell); + } } return rc; } @@ -210204,6 +210329,7 @@ static int rtreeColumn(sqlite3_vtab_cursor *cur, sqlite3_context *ctx, int i){ if( rc ) return rc; if( NEVER(p==0) ) return SQLITE_OK; + if( p->iCell>=NCELL(pNode) ) return SQLITE_ABORT; if( i==0 ){ sqlite3_result_int64(ctx, nodeGetRowid(pRtree, pNode, p->iCell)); }else if( i<=pRtree->nDim2 ){ @@ -211685,8 +211811,7 @@ constraint: */ static int rtreeBeginTransaction(sqlite3_vtab *pVtab){ Rtree *pRtree = (Rtree *)pVtab; - assert( pRtree->inWrTrans==0 ); - pRtree->inWrTrans++; + pRtree->inWrTrans = 1; return SQLITE_OK; } @@ -211700,6 +211825,9 @@ static int rtreeEndTransaction(sqlite3_vtab *pVtab){ nodeBlobReset(pRtree); return SQLITE_OK; } +static int rtreeRollback(sqlite3_vtab *pVtab){ + return rtreeEndTransaction(pVtab); +} /* ** The xRename method for rtree module virtual tables. @@ -211818,7 +211946,7 @@ static sqlite3_module rtreeModule = { rtreeBeginTransaction, /* xBegin - begin transaction */ rtreeEndTransaction, /* xSync - sync transaction */ rtreeEndTransaction, /* xCommit - commit transaction */ - rtreeEndTransaction, /* xRollback - rollback transaction */ + rtreeRollback, /* xRollback - rollback transaction */ 0, /* xFindFunction - function overloading */ rtreeRename, /* xRename - rename the table */ rtreeSavepoint, /* xSavepoint */ @@ -245377,23 +245505,26 @@ static void fts5IterSetOutputsTokendata(Fts5Iter *pIter){ static void fts5TokendataIterNext(Fts5Iter *pIter, int bFrom, i64 iFrom){ int ii; Fts5TokenDataIter *pT = pIter->pTokenDataIter; + Fts5Index *pIndex = pIter->pIndex; for(ii=0; iinIter; ii++){ Fts5Iter *p = pT->apIter[ii]; if( p->base.bEof==0 && (p->base.iRowid==pIter->base.iRowid || (bFrom && p->base.iRowidpIndex, p, bFrom, iFrom); + fts5MultiIterNext(pIndex, p, bFrom, iFrom); while( bFrom && p->base.bEof==0 && p->base.iRowidpIndex->rc==SQLITE_OK + && pIndex->rc==SQLITE_OK ){ - fts5MultiIterNext(p->pIndex, p, 0, 0); + fts5MultiIterNext(pIndex, p, 0, 0); } } } - fts5IterSetOutputsTokendata(pIter); + if( pIndex->rc==SQLITE_OK ){ + fts5IterSetOutputsTokendata(pIter); + } } /* @@ -250547,7 +250678,7 @@ static void fts5SourceIdFunc( ){ assert( nArg==0 ); UNUSED_PARAM2(nArg, apUnused); - sqlite3_result_text(pCtx, "fts5: 2024-01-30 16:01:20 e876e51a0ed5c5b3126f52e532044363a014bc594cfefa87ffb5b82257cc467a", -1, SQLITE_TRANSIENT); + sqlite3_result_text(pCtx, "fts5: 2024-03-12 11:06:23 d8cd6d49b46a395b13955387d05e9e1a2a47e54fb99f3c9b59835bbefad6af77", -1, SQLITE_TRANSIENT); } /* diff --git a/Data/SQLite/src/sqlite3.h b/Data/SQLite/src/sqlite3.h index 4fdfde004..c9fc77fb8 100644 --- a/Data/SQLite/src/sqlite3.h +++ b/Data/SQLite/src/sqlite3.h @@ -146,9 +146,9 @@ extern "C" { ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ -#define SQLITE_VERSION "3.45.1" -#define SQLITE_VERSION_NUMBER 3045001 -#define SQLITE_SOURCE_ID "2024-01-30 16:01:20 e876e51a0ed5c5b3126f52e532044363a014bc594cfefa87ffb5b82257cc467a" +#define SQLITE_VERSION "3.45.2" +#define SQLITE_VERSION_NUMBER 3045002 +#define SQLITE_SOURCE_ID "2024-03-12 11:06:23 d8cd6d49b46a395b13955387d05e9e1a2a47e54fb99f3c9b59835bbefad6af77" /* ** CAPI3REF: Run-Time Library Version Numbers @@ -420,6 +420,8 @@ typedef int (*sqlite3_callback)(void*,int,char**, char**); ** the 1st parameter to sqlite3_exec() while sqlite3_exec() is running. **
    18. The application must not modify the SQL statement text passed into ** the 2nd parameter of sqlite3_exec() while sqlite3_exec() is running. +**
    19. The application must not dereference the arrays or string pointers +** passed as the 3rd and 4th callback parameters after it returns. ** */ SQLITE_API int sqlite3_exec( From 3d7fbbf314157ac0cac751d900824a680e30ccdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Fri, 29 Mar 2024 10:24:30 +0100 Subject: [PATCH 365/395] fix(cmake): typo in CMakeLists.txt --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2931c9f80..e7b9d15b7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -424,8 +424,8 @@ if(EXISTS ${PROJECT_SOURCE_DIR}/Data/MySQL AND ENABLE_DATA_MYSQL) list(APPEND Poco_COMPONENTS "Data/MySQL") endif() -if(EXISTS ${PROJECT_SOURCE_DIR}/Data/PostgresSQL AND ENABLE_DATA_POSTGRESQL) - list(APPEND Poco_COMPONENTS "Data/PostgresSQL") +if(EXISTS ${PROJECT_SOURCE_DIR}/Data/PostgreSQL AND ENABLE_DATA_POSTGRESQL) + list(APPEND Poco_COMPONENTS "Data/PostgreSQL") endif() if(EXISTS ${PROJECT_SOURCE_DIR}/ActiveRecord AND ENABLE_ACTIVERECORD) From 7efa7b7edce5715a986b7aeaeaeb8e2ed638fab1 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Fri, 29 Mar 2024 11:23:21 +0100 Subject: [PATCH 366/395] fix(NetSSL test): add missing includes. --- NetSSL_OpenSSL/testsuite/ping/websocket-client.cpp | 2 ++ NetSSL_OpenSSL/testsuite/ping/websocket-server.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/NetSSL_OpenSSL/testsuite/ping/websocket-client.cpp b/NetSSL_OpenSSL/testsuite/ping/websocket-client.cpp index 7d1268570..543a619c4 100644 --- a/NetSSL_OpenSSL/testsuite/ping/websocket-client.cpp +++ b/NetSSL_OpenSSL/testsuite/ping/websocket-client.cpp @@ -14,6 +14,8 @@ #include "Poco/Net/HTTPSClientSession.h" #include "Poco/Util/Application.h" +#include + using Poco::Net::HTTPSClientSession; using Poco::Net::HTTPRequest; using Poco::Net::HTTPResponse; diff --git a/NetSSL_OpenSSL/testsuite/ping/websocket-server.cpp b/NetSSL_OpenSSL/testsuite/ping/websocket-server.cpp index e5b22031a..5606cd272 100644 --- a/NetSSL_OpenSSL/testsuite/ping/websocket-server.cpp +++ b/NetSSL_OpenSSL/testsuite/ping/websocket-server.cpp @@ -21,6 +21,8 @@ #include "Poco/Thread.h" #include "Poco/Util/Application.h" +#include + using Poco::Net::HTTPResponse; using Poco::Net::HTTPServerRequest; using Poco::Net::HTTPServerResponse; From a4c7fc6d035c31780d7cab60fe72d507fc4405dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Fri, 29 Mar 2024 11:36:42 +0100 Subject: [PATCH 367/395] fix(Data/MySQL): preserve backwards-compatibility with pre 8.3 --- Data/MySQL/src/StatementExecutor.cpp | 5 +++++ Data/MySQL/testsuite/src/SQLExecutor.cpp | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/Data/MySQL/src/StatementExecutor.cpp b/Data/MySQL/src/StatementExecutor.cpp index 26a3b333a..28d7b2f4d 100644 --- a/Data/MySQL/src/StatementExecutor.cpp +++ b/Data/MySQL/src/StatementExecutor.cpp @@ -80,8 +80,13 @@ void StatementExecutor::bindParams(MYSQL_BIND* params, std::size_t count) if (count == 0) return; +#if LIBMYSQL_VERSION_ID >= 80300 if (mysql_stmt_bind_named_param(_pHandle, params, count, nullptr) != 0) throw StatementException("mysql_stmt_bind_named_param() error ", _pHandle, _query); +#else + if (mysql_stmt_bind_param(_pHandle, params) != 0) + throw StatementException("mysql_stmt_bind_param() error ", _pHandle, _query); +#endif } diff --git a/Data/MySQL/testsuite/src/SQLExecutor.cpp b/Data/MySQL/testsuite/src/SQLExecutor.cpp index 084dedec8..9d5f0a3ac 100644 --- a/Data/MySQL/testsuite/src/SQLExecutor.cpp +++ b/Data/MySQL/testsuite/src/SQLExecutor.cpp @@ -205,7 +205,12 @@ void SQLExecutor::bareboneMySQLTest(const char* host, const char* user, const ch bind_param[4].buffer = &fifth; bind_param[4].buffer_type = MYSQL_TYPE_FLOAT; +#if LIBMYSQL_VERSION_ID >= 80300 rc = mysql_stmt_bind_named_param(hstmt, bind_param, 5, nullptr); +#else + rc = mysql_stmt_bind_param(hstmt, bind_param); +#endif + assertTrue (rc == 0); rc = mysql_stmt_execute(hstmt); From 78c9dd18791a2300595cb05771562264522afc50 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Fri, 29 Mar 2024 08:54:28 -0500 Subject: [PATCH 368/395] fix(CI): cmake can't find files --- NetSSL_OpenSSL/testsuite/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/NetSSL_OpenSSL/testsuite/CMakeLists.txt b/NetSSL_OpenSSL/testsuite/CMakeLists.txt index c984f89bd..4dc36ee87 100644 --- a/NetSSL_OpenSSL/testsuite/CMakeLists.txt +++ b/NetSSL_OpenSSL/testsuite/CMakeLists.txt @@ -12,8 +12,8 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF add_executable(NetSSL-testrunner ${TEST_SRCS}) -add_executable(NetSSL-server ping/websocket-server.cpp) -add_executable(NetSSL-client ping/websocket-client.cpp) +add_executable(NetSSL-server ${CMAKE_CURRENT_SOURCE_DIR}/ping/websocket-server.cpp) +add_executable(NetSSL-client ${CMAKE_CURRENT_SOURCE_DIR}/ping/websocket-client.cpp) if(ANDROID) add_test( From 47a4db37e5114c6a2a96d18cd9cc544f93e92cde Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Fri, 29 Mar 2024 15:34:17 +0100 Subject: [PATCH 369/395] fix(CI): cmake: add simple client and server only when source files exist. --- NetSSL_OpenSSL/testsuite/CMakeLists.txt | 29 ++++++++++++++++--------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/NetSSL_OpenSSL/testsuite/CMakeLists.txt b/NetSSL_OpenSSL/testsuite/CMakeLists.txt index 4dc36ee87..f66372c20 100644 --- a/NetSSL_OpenSSL/testsuite/CMakeLists.txt +++ b/NetSSL_OpenSSL/testsuite/CMakeLists.txt @@ -12,9 +12,6 @@ POCO_SOURCES_AUTO_PLAT(TEST_SRCS OFF add_executable(NetSSL-testrunner ${TEST_SRCS}) -add_executable(NetSSL-server ${CMAKE_CURRENT_SOURCE_DIR}/ping/websocket-server.cpp) -add_executable(NetSSL-client ${CMAKE_CURRENT_SOURCE_DIR}/ping/websocket-client.cpp) - if(ANDROID) add_test( NAME NetSSL @@ -36,16 +33,28 @@ else() COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/dhparams.pem ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/testrunner.xml ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/NetSSL-testrunner.xml ) +endif() +target_link_libraries(NetSSL-testrunner PUBLIC Poco::NetSSL Poco::Util Poco::XML CppUnit) - add_custom_command( - TARGET NetSSL-server POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/testrunner.xml ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/NetSSL-server.xml - ) + +if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/ping/websocket-server.cpp) + add_executable(NetSSL-server ping/websocket-server.cpp) + target_link_libraries(NetSSL-server PUBLIC Poco::NetSSL Poco::Util) + if (NOT ANDROID) + add_custom_command( + TARGET NetSSL-server POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/testrunner.xml ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/NetSSL-server.xml + ) + endif() +endif() + +if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/ping/websocket-client.cpp) + add_executable(NetSSL-client ping/websocket-client.cpp) + target_link_libraries(NetSSL-client PUBLIC Poco::NetSSL Poco::Util) + if (NOT ANDROID) add_custom_command( TARGET NetSSL-client POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/testrunner.xml ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/NetSSL-client.xml ) + endif() endif() -target_link_libraries(NetSSL-testrunner PUBLIC Poco::NetSSL Poco::Util Poco::XML CppUnit) -target_link_libraries(NetSSL-server PUBLIC Poco::NetSSL Poco::Util) -target_link_libraries(NetSSL-client PUBLIC Poco::NetSSL Poco::Util) From 8d3de8a5ed71448547f1f9c4183fce29ecdf87e9 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Fri, 29 Mar 2024 09:03:22 +0100 Subject: [PATCH 370/395] fix(SecureSocket): Reset does not close socket, it is closed in dtor. (#4415) --- NetSSL_OpenSSL/src/SecureSocketImpl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/NetSSL_OpenSSL/src/SecureSocketImpl.cpp b/NetSSL_OpenSSL/src/SecureSocketImpl.cpp index 55c163f14..d82c834bd 100644 --- a/NetSSL_OpenSSL/src/SecureSocketImpl.cpp +++ b/NetSSL_OpenSSL/src/SecureSocketImpl.cpp @@ -54,6 +54,7 @@ SecureSocketImpl::~SecureSocketImpl() { try { + close(); reset(); } catch (...) @@ -634,7 +635,6 @@ void SecureSocketImpl::setPeerHostName(const std::string& peerHostName) void SecureSocketImpl::reset() { - close(); if (_pSSL) { ::SSL_set_ex_data(_pSSL, SSLManager::instance().socketIndex(), nullptr); From ece360393fb866e49b4fb3aa576c37b827cb7bb2 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Tue, 2 Apr 2024 11:53:42 -0500 Subject: [PATCH 371/395] 4435 secure sock thread (#4512) * fix(SecureSocket): Refactor detection of timeout when reading, writing or handshaking. (#3725) * enh(SecureSocket): some trivial C++17 modernisation changes. * chore: indentation and compiler warning * fix(SecureSocketImpl): not thread-safe (1st attempt) #4435 * fix(SecureSocketImpl): silence CodeQL cpp/certificate-not-checked --------- Co-authored-by: Matej Kenda --- .../include/Poco/Net/SecureSocketImpl.h | 7 ++- NetSSL_OpenSSL/src/SecureSocketImpl.cpp | 43 ++++++++++++++++--- 2 files changed, 43 insertions(+), 7 deletions(-) diff --git a/NetSSL_OpenSSL/include/Poco/Net/SecureSocketImpl.h b/NetSSL_OpenSSL/include/Poco/Net/SecureSocketImpl.h index c8eedb638..38b7ea502 100644 --- a/NetSSL_OpenSSL/include/Poco/Net/SecureSocketImpl.h +++ b/NetSSL_OpenSSL/include/Poco/Net/SecureSocketImpl.h @@ -284,16 +284,21 @@ protected: /// Callback to handle new session data sent by server. private: + using MutexT = Poco::FastMutex; + using LockT = MutexT::ScopedLock; + using UnLockT = Poco::ScopedLockWithUnlock; + SecureSocketImpl(const SecureSocketImpl&); SecureSocketImpl& operator = (const SecureSocketImpl&); - SSL* _pSSL; + std::atomic _pSSL; Poco::AutoPtr _pSocket; Context::Ptr _pContext; bool _needHandshake; std::string _peerHostName; Session::Ptr _pSession; bool _bidirectShutdown = true; + mutable MutexT _mutex; friend class SecureStreamSocketImpl; friend class Context; diff --git a/NetSSL_OpenSSL/src/SecureSocketImpl.cpp b/NetSSL_OpenSSL/src/SecureSocketImpl.cpp index d82c834bd..2963d7f9e 100644 --- a/NetSSL_OpenSSL/src/SecureSocketImpl.cpp +++ b/NetSSL_OpenSSL/src/SecureSocketImpl.cpp @@ -80,6 +80,8 @@ void SecureSocketImpl::acceptSSL() { poco_assert (!_pSSL); + LockT l(_mutex); + BIO* pBIO = ::BIO_new(BIO_s_socket()); if (!pBIO) throw SSLException("Cannot create BIO object"); BIO_set_fd(pBIO, static_cast(_pSocket->sockfd()), BIO_NOCLOSE); @@ -156,6 +158,8 @@ void SecureSocketImpl::connectSSL(bool performHandshake) poco_assert (!_pSSL); poco_assert (_pSocket->initialized()); + LockT l(_mutex); + ::BIO* pBIO = ::BIO_new(BIO_s_socket()); if (!pBIO) throw SSLException("Cannot create SSL BIO object"); BIO_set_fd(pBIO, static_cast(_pSocket->sockfd()), BIO_NOCLOSE); @@ -253,6 +257,8 @@ void SecureSocketImpl::shutdown() { if (_pSSL) { + UnLockT l(_mutex); + // Don't shut down the socket more than once. int shutdownState = ::SSL_get_shutdown(_pSSL); bool shutdownSent = (shutdownState & SSL_SENT_SHUTDOWN) == SSL_SENT_SHUTDOWN; @@ -301,6 +307,9 @@ void SecureSocketImpl::shutdown() int rc = ::SSL_shutdown(_pSSL); #endif if (rc < 0) handleError(rc); + + l.unlock(); + if (_pSocket->getBlocking()) { _pSocket->shutdown(); @@ -345,6 +354,9 @@ int SecureSocketImpl::sendBytes(const void* buffer, int length, int flags) poco_check_ptr (_pSSL); int rc; + + LockT l(_mutex); + if (_needHandshake) { rc = completeHandshake(); @@ -381,6 +393,9 @@ int SecureSocketImpl::receiveBytes(void* buffer, int length, int flags) poco_check_ptr (_pSSL); int rc; + + LockT l(_mutex); + if (_needHandshake) { rc = completeHandshake(); @@ -414,6 +429,8 @@ int SecureSocketImpl::available() const { poco_check_ptr (_pSSL); + LockT l(_mutex); + return ::SSL_pending(_pSSL); } @@ -468,7 +485,7 @@ long SecureSocketImpl::verifyPeerCertificateImpl(const std::string& hostName) { Context::VerificationMode mode = _pContext->verificationMode(); if (mode == Context::VERIFY_NONE || !_pContext->extendedCertificateVerificationEnabled() || - (mode != Context::VERIFY_STRICT && isLocalHost(hostName))) + (mode != Context::VERIFY_STRICT && isLocalHost(hostName))) { return X509_V_OK; } @@ -499,10 +516,19 @@ bool SecureSocketImpl::isLocalHost(const std::string& hostName) X509* SecureSocketImpl::peerCertificate() const { + LockT l(_mutex); + + X509* pCert = nullptr; + if (_pSSL) - return ::SSL_get_peer_certificate(_pSSL); - else - return nullptr; + { + pCert = ::SSL_get_peer_certificate(_pSSL); + if (X509_V_OK != SSL_get_verify_result(_pSSL)) + throw CertificateValidationException("SecureSocketImpl::peerCertificate(): " + "Certificate verification error " + Utility::getLastError()); + } + + return pCert; } @@ -637,6 +663,8 @@ void SecureSocketImpl::reset() { if (_pSSL) { + LockT l(_mutex); + ::SSL_set_ex_data(_pSSL, SSLManager::instance().socketIndex(), nullptr); ::SSL_free(_pSSL); _pSSL = nullptr; @@ -665,9 +693,12 @@ void SecureSocketImpl::useSession(Session::Ptr pSession) bool SecureSocketImpl::sessionWasReused() { if (_pSSL) + { + LockT l(_mutex); return ::SSL_session_reused(_pSSL) != 0; - else - return false; + } + + return false; } From 3496e4747511a00e816a1134780fdad7f535fce6 Mon Sep 17 00:00:00 2001 From: zhuzeitou Date: Wed, 3 Apr 2024 01:03:41 +0800 Subject: [PATCH 372/395] Optimize Net module for Android (#4517) * epoll is available on Android * is introduced in android-24 --- Net/include/Poco/Net/Net.h | 2 +- Net/src/NetworkInterface.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Net/include/Poco/Net/Net.h b/Net/include/Poco/Net/Net.h index 98780164d..3934b972c 100644 --- a/Net/include/Poco/Net/Net.h +++ b/Net/include/Poco/Net/Net.h @@ -134,7 +134,7 @@ POCO_NET_FORCE_SYMBOL(pocoNetworkInitializer) #endif -#if (POCO_OS == POCO_OS_LINUX) || (POCO_OS == POCO_OS_WINDOWS_NT) +#if (POCO_OS == POCO_OS_LINUX) || (POCO_OS == POCO_OS_WINDOWS_NT) || (POCO_OS == POCO_OS_ANDROID) #define POCO_HAVE_FD_EPOLL 1 #endif diff --git a/Net/src/NetworkInterface.cpp b/Net/src/NetworkInterface.cpp index 0002c316d..bb8940b22 100644 --- a/Net/src/NetworkInterface.cpp +++ b/Net/src/NetworkInterface.cpp @@ -1486,7 +1486,7 @@ NetworkInterface::Map NetworkInterface::map(bool ipOnly, bool upOnly) #include -#if POCO_OS != POCO_OS_ANDROID // Android doesn't have +#if POCO_OS != POCO_OS_ANDROID || __ANDROID_API__ >= 24 // old Android doesn't have #include #endif #include @@ -1521,7 +1521,7 @@ static NetworkInterface::Type fromNative(unsigned arphrd) } } -#if (POCO_OS != POCO_OS_ANDROID) && !defined(POCO_EMSCRIPTEN) +#if (POCO_OS != POCO_OS_ANDROID || __ANDROID_API__ >= 24) && !defined(POCO_EMSCRIPTEN) void setInterfaceParams(struct ifaddrs* iface, NetworkInterfaceImpl& impl) { @@ -1580,7 +1580,7 @@ void setInterfaceParams(struct ifaddrs* iface, NetworkInterfaceImpl& impl) NetworkInterface::Map NetworkInterface::map(bool ipOnly, bool upOnly) { -#if (POCO_OS != POCO_OS_ANDROID) && !defined(POCO_EMSCRIPTEN) +#if (POCO_OS != POCO_OS_ANDROID || __ANDROID_API__ >= 24) && !defined(POCO_EMSCRIPTEN) FastMutex::ScopedLock lock(_mutex); Map result; unsigned ifIndex = 0; From 0818febed3c78a77fd6c53129a791af5d7aecd63 Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Tue, 2 Apr 2024 16:36:06 -0500 Subject: [PATCH 373/395] 3857 os tid (#4519) * fix(Thread_POSIX): Thread_POSIX.cpp shouldn't convert thread IDs to long #3857; FreeBSD build errors fixes * chore(StreamTokenizerTest): fix warnings * fix(build): FreeBSD config * fix(ThreadTest): some tests checking nothing; temporatily comment FreeBSD threadStackSize test (segfaults on pthread_join) * fix(Thread_POSIX): handle emscripten in currentOsTidImpl * chore: fix emscripten define * chore: fix some clang warnings; add sanitizer flag to FreeBSD linux compat build config --- .gitignore | 4 + Foundation/include/Poco/Thread.h | 5 +- Foundation/src/Latin9Encoding.cpp | 23 +- Foundation/src/Thread_POSIX.cpp | 27 +- Foundation/src/Windows1250Encoding.cpp | 153 ++++++------ Foundation/src/Windows1251Encoding.cpp | 233 +++++++++--------- Foundation/src/Windows1252Encoding.cpp | 61 ++--- .../testsuite/src/StreamTokenizerTest.cpp | 8 +- Foundation/testsuite/src/ThreadTest.cpp | 39 +-- build/config/FreeBSD | 15 +- build/config/FreeBSD-Linux-compat | 15 +- 11 files changed, 309 insertions(+), 274 deletions(-) diff --git a/.gitignore b/.gitignore index bfccd1eb5..d5b8c13fe 100644 --- a/.gitignore +++ b/.gitignore @@ -163,3 +163,7 @@ node_modules *_vs1[45]0.sln *_vs1[45]0.vcxproj *_vs1[45]0.vcxproj.filters + +# Debug files # +############## +*.core diff --git a/Foundation/include/Poco/Thread.h b/Foundation/include/Poco/Thread.h index 56f45e561..00d3da09e 100644 --- a/Foundation/include/Poco/Thread.h +++ b/Foundation/include/Poco/Thread.h @@ -72,7 +72,7 @@ public: Thread(uint32_t sigMask = 0); /// Creates a thread. Call start() to start it. - /// + /// /// The optional sigMask parameter specifies which signals should be blocked. /// To block a specific signal, set the corresponding bit in the sigMask. /// Multiple bits can be set in the mask to block multiple signals if needed. @@ -81,7 +81,7 @@ public: Thread(const std::string& name, uint32_t sigMask = 0); /// Creates a named thread. Call start() to start it. - /// + /// /// The optional sigMask parameter specifies which signals should be blocked. /// To block a specific signal, set the corresponding bit in the sigMask. /// Multiple bits can be set in the mask to block multiple signals if needed. @@ -243,6 +243,7 @@ public: static long currentOsTid(); /// Returns the operating system specific thread ID for the current thread. + /// On error, or if the platform does not support this functionality, it returns zero. bool setAffinity(int coreId); /// Sets the thread affinity to the coreID. diff --git a/Foundation/src/Latin9Encoding.cpp b/Foundation/src/Latin9Encoding.cpp index 3f403540a..bb33b48db 100644 --- a/Foundation/src/Latin9Encoding.cpp +++ b/Foundation/src/Latin9Encoding.cpp @@ -97,17 +97,20 @@ int Latin9Encoding::convert(int ch, unsigned char* bytes, int length) const *bytes = ch; return 1; } - else switch (ch) + else { - case 0x0152: if (bytes && length >= 1) *bytes = 0xbc; return 1; - case 0x0153: if (bytes && length >= 1) *bytes = 0xbd; return 1; - case 0x0160: if (bytes && length >= 1) *bytes = 0xa6; return 1; - case 0x0161: if (bytes && length >= 1) *bytes = 0xa8; return 1; - case 0x017d: if (bytes && length >= 1) *bytes = 0xb4; return 1; - case 0x017e: if (bytes && length >= 1) *bytes = 0xb8; return 1; - case 0x0178: if (bytes && length >= 1) *bytes = 0xbe; return 1; - case 0x20ac: if (bytes && length >= 1) *bytes = 0xa4; return 1; - default: return 0; + switch (ch) + { + case 0x0152: if (bytes && length >= 1) *bytes = 0xbc; return 1; + case 0x0153: if (bytes && length >= 1) *bytes = 0xbd; return 1; + case 0x0160: if (bytes && length >= 1) *bytes = 0xa6; return 1; + case 0x0161: if (bytes && length >= 1) *bytes = 0xa8; return 1; + case 0x017d: if (bytes && length >= 1) *bytes = 0xb4; return 1; + case 0x017e: if (bytes && length >= 1) *bytes = 0xb8; return 1; + case 0x0178: if (bytes && length >= 1) *bytes = 0xbe; return 1; + case 0x20ac: if (bytes && length >= 1) *bytes = 0xa4; return 1; + default: return 0; + } } } diff --git a/Foundation/src/Thread_POSIX.cpp b/Foundation/src/Thread_POSIX.cpp index cfbe29872..56686fc1a 100644 --- a/Foundation/src/Thread_POSIX.cpp +++ b/Foundation/src/Thread_POSIX.cpp @@ -22,6 +22,7 @@ #include "Poco/Format.h" #include "Poco/Error.h" #include +#include #if POCO_OS == POCO_OS_FREE_BSD # include @@ -38,7 +39,7 @@ # include #endif -#if POCO_OS == POCO_OS_LINUX || POCO_OS == POCO_OS_ANDROID || POCO_OS == POCO_OS_FREE_BSD +#if POCO_OS == POCO_OS_LINUX || POCO_OS == POCO_OS_ANDROID # include #endif @@ -89,7 +90,7 @@ namespace /// Sets thread name. Support for this feature varies /// on platforms. Any errors are ignored. { -#if ((POCO_OS == POCO_OS_FREE_BSD) && (__FreeBSD_version < 1300000)) +#if (POCO_OS == POCO_OS_FREE_BSD) pthread_setname_np(pthread_self(), truncName(threadName).c_str()); #elif (POCO_OS == POCO_OS_MAC_OS_X) #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED @@ -107,7 +108,7 @@ namespace std::string getThreadName() { char name[POCO_MAX_THREAD_NAME_LEN + 1]{'\0'}; -#if ((POCO_OS == POCO_OS_FREE_BSD) && (__FreeBSD_version < 1300000)) +#if (POCO_OS == POCO_OS_FREE_BSD) pthread_getname_np(pthread_self(), name, POCO_MAX_THREAD_NAME_LEN + 1); #elif (POCO_OS == POCO_OS_MAC_OS_X) #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED @@ -353,8 +354,10 @@ void ThreadImpl::joinImpl() { int errorCode; if ((errorCode = pthread_join(_pData->thread, nullptr))) + { throw SystemException(Poco::format("cannot join thread (%s)", Error::getMessage(errorCode))); + } _pData->joined = true; } } @@ -389,21 +392,15 @@ ThreadImpl::TIDImpl ThreadImpl::currentTidImpl() long ThreadImpl::currentOsTidImpl() { -#if defined(POCO_EMSCRIPTEN) - return ::pthread_self(); -#elif POCO_OS == POCO_OS_LINUX - return ::syscall(SYS_gettid); + long id = 0; +#if (POCO_OS == POCO_OS_LINUX) && !defined(POCO_EMSCRIPTEN) + id = ::syscall(SYS_gettid); #elif POCO_OS == POCO_OS_MAC_OS_X - return ::pthread_mach_thread_np(::pthread_self()); + id = ::pthread_mach_thread_np(::pthread_self()); #elif POCO_OS == POCO_OS_FREE_BSD - long id; - if(thr_self(&id) < 0) { - return 0; - } - return id; -#else - return ::pthread_self(); + if (0 != thr_self(&id)) id = 0; #endif + return id; } diff --git a/Foundation/src/Windows1250Encoding.cpp b/Foundation/src/Windows1250Encoding.cpp index 764d9e897..03c8d8ed6 100644 --- a/Foundation/src/Windows1250Encoding.cpp +++ b/Foundation/src/Windows1250Encoding.cpp @@ -98,82 +98,85 @@ int Windows1250Encoding::convert(int ch, unsigned char* bytes, int length) const *bytes = (unsigned char) ch; return 1; } - else switch(ch) + else { - case 0x20ac: if (bytes && length >= 1) *bytes = 0x80; return 1; - case 0x201a: if (bytes && length >= 1) *bytes = 0x82; return 1; - case 0x201e: if (bytes && length >= 1) *bytes = 0x84; return 1; - case 0x2026: if (bytes && length >= 1) *bytes = 0x85; return 1; - case 0x2020: if (bytes && length >= 1) *bytes = 0x86; return 1; - case 0x2021: if (bytes && length >= 1) *bytes = 0x87; return 1; - case 0x2030: if (bytes && length >= 1) *bytes = 0x89; return 1; - case 0x0160: if (bytes && length >= 1) *bytes = 0x8a; return 1; - case 0x2039: if (bytes && length >= 1) *bytes = 0x8b; return 1; - case 0x015a: if (bytes && length >= 1) *bytes = 0x8c; return 1; - case 0x0164: if (bytes && length >= 1) *bytes = 0x8d; return 1; - case 0x017d: if (bytes && length >= 1) *bytes = 0x8e; return 1; - case 0x0179: if (bytes && length >= 1) *bytes = 0x8f; return 1; - case 0x2018: if (bytes && length >= 1) *bytes = 0x91; return 1; - case 0x2019: if (bytes && length >= 1) *bytes = 0x92; return 1; - case 0x201c: if (bytes && length >= 1) *bytes = 0x93; return 1; - case 0x201d: if (bytes && length >= 1) *bytes = 0x94; return 1; - case 0x2022: if (bytes && length >= 1) *bytes = 0x95; return 1; - case 0x2013: if (bytes && length >= 1) *bytes = 0x96; return 1; - case 0x2014: if (bytes && length >= 1) *bytes = 0x97; return 1; - case 0x2122: if (bytes && length >= 1) *bytes = 0x99; return 1; - case 0x0161: if (bytes && length >= 1) *bytes = 0x9a; return 1; - case 0x203a: if (bytes && length >= 1) *bytes = 0x9b; return 1; - case 0x015b: if (bytes && length >= 1) *bytes = 0x9c; return 1; - case 0x0165: if (bytes && length >= 1) *bytes = 0x9d; return 1; - case 0x017e: if (bytes && length >= 1) *bytes = 0x9e; return 1; - case 0x017a: if (bytes && length >= 1) *bytes = 0x9f; return 1; - case 0x02c7: if (bytes && length >= 1) *bytes = 0xa1; return 1; - case 0x02d8: if (bytes && length >= 1) *bytes = 0xa2; return 1; - case 0x0141: if (bytes && length >= 1) *bytes = 0xa3; return 1; - case 0x0104: if (bytes && length >= 1) *bytes = 0xa5; return 1; - case 0x015e: if (bytes && length >= 1) *bytes = 0xaa; return 1; - case 0x017b: if (bytes && length >= 1) *bytes = 0xaf; return 1; - case 0x02db: if (bytes && length >= 1) *bytes = 0xb2; return 1; - case 0x0142: if (bytes && length >= 1) *bytes = 0xb3; return 1; - case 0x0105: if (bytes && length >= 1) *bytes = 0xb9; return 1; - case 0x015f: if (bytes && length >= 1) *bytes = 0xba; return 1; - case 0x013d: if (bytes && length >= 1) *bytes = 0xbc; return 1; - case 0x02dd: if (bytes && length >= 1) *bytes = 0xbd; return 1; - case 0x013e: if (bytes && length >= 1) *bytes = 0xbe; return 1; - case 0x017c: if (bytes && length >= 1) *bytes = 0xbf; return 1; - case 0x0154: if (bytes && length >= 1) *bytes = 0xc0; return 1; - case 0x0102: if (bytes && length >= 1) *bytes = 0xc3; return 1; - case 0x0139: if (bytes && length >= 1) *bytes = 0xc5; return 1; - case 0x0106: if (bytes && length >= 1) *bytes = 0xc6; return 1; - case 0x010c: if (bytes && length >= 1) *bytes = 0xc8; return 1; - case 0x0118: if (bytes && length >= 1) *bytes = 0xca; return 1; - case 0x011a: if (bytes && length >= 1) *bytes = 0xcc; return 1; - case 0x010e: if (bytes && length >= 1) *bytes = 0xcf; return 1; - case 0x0110: if (bytes && length >= 1) *bytes = 0xd0; return 1; - case 0x0143: if (bytes && length >= 1) *bytes = 0xd1; return 1; - case 0x0147: if (bytes && length >= 1) *bytes = 0xd2; return 1; - case 0x0150: if (bytes && length >= 1) *bytes = 0xd5; return 1; - case 0x0158: if (bytes && length >= 1) *bytes = 0xd8; return 1; - case 0x016e: if (bytes && length >= 1) *bytes = 0xd9; return 1; - case 0x0170: if (bytes && length >= 1) *bytes = 0xdb; return 1; - case 0x0162: if (bytes && length >= 1) *bytes = 0xde; return 1; - case 0x0155: if (bytes && length >= 1) *bytes = 0xe0; return 1; - case 0x0103: if (bytes && length >= 1) *bytes = 0xe3; return 1; - case 0x013a: if (bytes && length >= 1) *bytes = 0xe5; return 1; - case 0x0107: if (bytes && length >= 1) *bytes = 0xe6; return 1; - case 0x010d: if (bytes && length >= 1) *bytes = 0xe8; return 1; - case 0x0119: if (bytes && length >= 1) *bytes = 0xea; return 1; - case 0x011b: if (bytes && length >= 1) *bytes = 0xec; return 1; - case 0x010f: if (bytes && length >= 1) *bytes = 0xef; return 1; - case 0x0111: if (bytes && length >= 1) *bytes = 0xf0; return 1; - case 0x0144: if (bytes && length >= 1) *bytes = 0xf1; return 1; - case 0x0148: if (bytes && length >= 1) *bytes = 0xf2; return 1; - case 0x0151: if (bytes && length >= 1) *bytes = 0xf5; return 1; - case 0x0159: if (bytes && length >= 1) *bytes = 0xf8; return 1; - case 0x016f: if (bytes && length >= 1) *bytes = 0xf9; return 1; - case 0x0171: if (bytes && length >= 1) *bytes = 0xfb; return 1; - case 0x0163: if (bytes && length >= 1) *bytes = 0xfe; return 1; - default: return 0; + switch(ch) + { + case 0x20ac: if (bytes && length >= 1) *bytes = 0x80; return 1; + case 0x201a: if (bytes && length >= 1) *bytes = 0x82; return 1; + case 0x201e: if (bytes && length >= 1) *bytes = 0x84; return 1; + case 0x2026: if (bytes && length >= 1) *bytes = 0x85; return 1; + case 0x2020: if (bytes && length >= 1) *bytes = 0x86; return 1; + case 0x2021: if (bytes && length >= 1) *bytes = 0x87; return 1; + case 0x2030: if (bytes && length >= 1) *bytes = 0x89; return 1; + case 0x0160: if (bytes && length >= 1) *bytes = 0x8a; return 1; + case 0x2039: if (bytes && length >= 1) *bytes = 0x8b; return 1; + case 0x015a: if (bytes && length >= 1) *bytes = 0x8c; return 1; + case 0x0164: if (bytes && length >= 1) *bytes = 0x8d; return 1; + case 0x017d: if (bytes && length >= 1) *bytes = 0x8e; return 1; + case 0x0179: if (bytes && length >= 1) *bytes = 0x8f; return 1; + case 0x2018: if (bytes && length >= 1) *bytes = 0x91; return 1; + case 0x2019: if (bytes && length >= 1) *bytes = 0x92; return 1; + case 0x201c: if (bytes && length >= 1) *bytes = 0x93; return 1; + case 0x201d: if (bytes && length >= 1) *bytes = 0x94; return 1; + case 0x2022: if (bytes && length >= 1) *bytes = 0x95; return 1; + case 0x2013: if (bytes && length >= 1) *bytes = 0x96; return 1; + case 0x2014: if (bytes && length >= 1) *bytes = 0x97; return 1; + case 0x2122: if (bytes && length >= 1) *bytes = 0x99; return 1; + case 0x0161: if (bytes && length >= 1) *bytes = 0x9a; return 1; + case 0x203a: if (bytes && length >= 1) *bytes = 0x9b; return 1; + case 0x015b: if (bytes && length >= 1) *bytes = 0x9c; return 1; + case 0x0165: if (bytes && length >= 1) *bytes = 0x9d; return 1; + case 0x017e: if (bytes && length >= 1) *bytes = 0x9e; return 1; + case 0x017a: if (bytes && length >= 1) *bytes = 0x9f; return 1; + case 0x02c7: if (bytes && length >= 1) *bytes = 0xa1; return 1; + case 0x02d8: if (bytes && length >= 1) *bytes = 0xa2; return 1; + case 0x0141: if (bytes && length >= 1) *bytes = 0xa3; return 1; + case 0x0104: if (bytes && length >= 1) *bytes = 0xa5; return 1; + case 0x015e: if (bytes && length >= 1) *bytes = 0xaa; return 1; + case 0x017b: if (bytes && length >= 1) *bytes = 0xaf; return 1; + case 0x02db: if (bytes && length >= 1) *bytes = 0xb2; return 1; + case 0x0142: if (bytes && length >= 1) *bytes = 0xb3; return 1; + case 0x0105: if (bytes && length >= 1) *bytes = 0xb9; return 1; + case 0x015f: if (bytes && length >= 1) *bytes = 0xba; return 1; + case 0x013d: if (bytes && length >= 1) *bytes = 0xbc; return 1; + case 0x02dd: if (bytes && length >= 1) *bytes = 0xbd; return 1; + case 0x013e: if (bytes && length >= 1) *bytes = 0xbe; return 1; + case 0x017c: if (bytes && length >= 1) *bytes = 0xbf; return 1; + case 0x0154: if (bytes && length >= 1) *bytes = 0xc0; return 1; + case 0x0102: if (bytes && length >= 1) *bytes = 0xc3; return 1; + case 0x0139: if (bytes && length >= 1) *bytes = 0xc5; return 1; + case 0x0106: if (bytes && length >= 1) *bytes = 0xc6; return 1; + case 0x010c: if (bytes && length >= 1) *bytes = 0xc8; return 1; + case 0x0118: if (bytes && length >= 1) *bytes = 0xca; return 1; + case 0x011a: if (bytes && length >= 1) *bytes = 0xcc; return 1; + case 0x010e: if (bytes && length >= 1) *bytes = 0xcf; return 1; + case 0x0110: if (bytes && length >= 1) *bytes = 0xd0; return 1; + case 0x0143: if (bytes && length >= 1) *bytes = 0xd1; return 1; + case 0x0147: if (bytes && length >= 1) *bytes = 0xd2; return 1; + case 0x0150: if (bytes && length >= 1) *bytes = 0xd5; return 1; + case 0x0158: if (bytes && length >= 1) *bytes = 0xd8; return 1; + case 0x016e: if (bytes && length >= 1) *bytes = 0xd9; return 1; + case 0x0170: if (bytes && length >= 1) *bytes = 0xdb; return 1; + case 0x0162: if (bytes && length >= 1) *bytes = 0xde; return 1; + case 0x0155: if (bytes && length >= 1) *bytes = 0xe0; return 1; + case 0x0103: if (bytes && length >= 1) *bytes = 0xe3; return 1; + case 0x013a: if (bytes && length >= 1) *bytes = 0xe5; return 1; + case 0x0107: if (bytes && length >= 1) *bytes = 0xe6; return 1; + case 0x010d: if (bytes && length >= 1) *bytes = 0xe8; return 1; + case 0x0119: if (bytes && length >= 1) *bytes = 0xea; return 1; + case 0x011b: if (bytes && length >= 1) *bytes = 0xec; return 1; + case 0x010f: if (bytes && length >= 1) *bytes = 0xef; return 1; + case 0x0111: if (bytes && length >= 1) *bytes = 0xf0; return 1; + case 0x0144: if (bytes && length >= 1) *bytes = 0xf1; return 1; + case 0x0148: if (bytes && length >= 1) *bytes = 0xf2; return 1; + case 0x0151: if (bytes && length >= 1) *bytes = 0xf5; return 1; + case 0x0159: if (bytes && length >= 1) *bytes = 0xf8; return 1; + case 0x016f: if (bytes && length >= 1) *bytes = 0xf9; return 1; + case 0x0171: if (bytes && length >= 1) *bytes = 0xfb; return 1; + case 0x0163: if (bytes && length >= 1) *bytes = 0xfe; return 1; + default: return 0; + } } } diff --git a/Foundation/src/Windows1251Encoding.cpp b/Foundation/src/Windows1251Encoding.cpp index 0da8ce065..f0bfd5260 100644 --- a/Foundation/src/Windows1251Encoding.cpp +++ b/Foundation/src/Windows1251Encoding.cpp @@ -98,122 +98,125 @@ int Windows1251Encoding::convert(int ch, unsigned char* bytes, int length) const *bytes = (unsigned char) ch; return 1; } - else switch(ch) + else { - case 0x0402: if (bytes && length >= 1) *bytes = 0x80; return 1; - case 0x0403: if (bytes && length >= 1) *bytes = 0x81; return 1; - case 0x201a: if (bytes && length >= 1) *bytes = 0x82; return 1; - case 0x0453: if (bytes && length >= 1) *bytes = 0x83; return 1; - case 0x201e: if (bytes && length >= 1) *bytes = 0x84; return 1; - case 0x2026: if (bytes && length >= 1) *bytes = 0x85; return 1; - case 0x2020: if (bytes && length >= 1) *bytes = 0x86; return 1; - case 0x2021: if (bytes && length >= 1) *bytes = 0x87; return 1; - case 0x20ac: if (bytes && length >= 1) *bytes = 0x88; return 1; - case 0x2030: if (bytes && length >= 1) *bytes = 0x89; return 1; - case 0x0409: if (bytes && length >= 1) *bytes = 0x8a; return 1; - case 0x2039: if (bytes && length >= 1) *bytes = 0x8b; return 1; - case 0x040a: if (bytes && length >= 1) *bytes = 0x8c; return 1; - case 0x040c: if (bytes && length >= 1) *bytes = 0x8d; return 1; - case 0x040b: if (bytes && length >= 1) *bytes = 0x8e; return 1; - case 0x040f: if (bytes && length >= 1) *bytes = 0x8f; return 1; - case 0x0452: if (bytes && length >= 1) *bytes = 0x90; return 1; - case 0x2018: if (bytes && length >= 1) *bytes = 0x91; return 1; - case 0x2019: if (bytes && length >= 1) *bytes = 0x92; return 1; - case 0x201c: if (bytes && length >= 1) *bytes = 0x93; return 1; - case 0x201d: if (bytes && length >= 1) *bytes = 0x94; return 1; - case 0x2022: if (bytes && length >= 1) *bytes = 0x95; return 1; - case 0x2013: if (bytes && length >= 1) *bytes = 0x96; return 1; - case 0x2014: if (bytes && length >= 1) *bytes = 0x97; return 1; - case 0xfffe: if (bytes && length >= 1) *bytes = 0x98; return 1; - case 0x2122: if (bytes && length >= 1) *bytes = 0x99; return 1; - case 0x0459: if (bytes && length >= 1) *bytes = 0x9a; return 1; - case 0x203a: if (bytes && length >= 1) *bytes = 0x9b; return 1; - case 0x045a: if (bytes && length >= 1) *bytes = 0x9c; return 1; - case 0x045c: if (bytes && length >= 1) *bytes = 0x9d; return 1; - case 0x045b: if (bytes && length >= 1) *bytes = 0x9e; return 1; - case 0x045f: if (bytes && length >= 1) *bytes = 0x9f; return 1; - case 0x040e: if (bytes && length >= 1) *bytes = 0xa1; return 1; - case 0x045e: if (bytes && length >= 1) *bytes = 0xa2; return 1; - case 0x0408: if (bytes && length >= 1) *bytes = 0xa3; return 1; - case 0x0490: if (bytes && length >= 1) *bytes = 0xa5; return 1; - case 0x0401: if (bytes && length >= 1) *bytes = 0xa8; return 1; - case 0x0404: if (bytes && length >= 1) *bytes = 0xaa; return 1; - case 0x0407: if (bytes && length >= 1) *bytes = 0xaf; return 1; - case 0x0406: if (bytes && length >= 1) *bytes = 0xb2; return 1; - case 0x0456: if (bytes && length >= 1) *bytes = 0xb3; return 1; - case 0x0491: if (bytes && length >= 1) *bytes = 0xb4; return 1; - case 0x0451: if (bytes && length >= 1) *bytes = 0xb8; return 1; - case 0x2116: if (bytes && length >= 1) *bytes = 0xb9; return 1; - case 0x0454: if (bytes && length >= 1) *bytes = 0xba; return 1; - case 0x0458: if (bytes && length >= 1) *bytes = 0xbc; return 1; - case 0x0405: if (bytes && length >= 1) *bytes = 0xbd; return 1; - case 0x0455: if (bytes && length >= 1) *bytes = 0xbe; return 1; - case 0x0457: if (bytes && length >= 1) *bytes = 0xbf; return 1; - case 0x0410: if (bytes && length >= 1) *bytes = 0xc0; return 1; - case 0x0411: if (bytes && length >= 1) *bytes = 0xc1; return 1; - case 0x0412: if (bytes && length >= 1) *bytes = 0xc2; return 1; - case 0x0413: if (bytes && length >= 1) *bytes = 0xc3; return 1; - case 0x0414: if (bytes && length >= 1) *bytes = 0xc4; return 1; - case 0x0415: if (bytes && length >= 1) *bytes = 0xc5; return 1; - case 0x0416: if (bytes && length >= 1) *bytes = 0xc6; return 1; - case 0x0417: if (bytes && length >= 1) *bytes = 0xc7; return 1; - case 0x0418: if (bytes && length >= 1) *bytes = 0xc8; return 1; - case 0x0419: if (bytes && length >= 1) *bytes = 0xc9; return 1; - case 0x041a: if (bytes && length >= 1) *bytes = 0xca; return 1; - case 0x041b: if (bytes && length >= 1) *bytes = 0xcb; return 1; - case 0x041c: if (bytes && length >= 1) *bytes = 0xcc; return 1; - case 0x041d: if (bytes && length >= 1) *bytes = 0xcd; return 1; - case 0x041e: if (bytes && length >= 1) *bytes = 0xce; return 1; - case 0x041f: if (bytes && length >= 1) *bytes = 0xcf; return 1; - case 0x0420: if (bytes && length >= 1) *bytes = 0xd0; return 1; - case 0x0421: if (bytes && length >= 1) *bytes = 0xd1; return 1; - case 0x0422: if (bytes && length >= 1) *bytes = 0xd2; return 1; - case 0x0423: if (bytes && length >= 1) *bytes = 0xd3; return 1; - case 0x0424: if (bytes && length >= 1) *bytes = 0xd4; return 1; - case 0x0425: if (bytes && length >= 1) *bytes = 0xd5; return 1; - case 0x0426: if (bytes && length >= 1) *bytes = 0xd6; return 1; - case 0x0427: if (bytes && length >= 1) *bytes = 0xd7; return 1; - case 0x0428: if (bytes && length >= 1) *bytes = 0xd8; return 1; - case 0x0429: if (bytes && length >= 1) *bytes = 0xd9; return 1; - case 0x042a: if (bytes && length >= 1) *bytes = 0xda; return 1; - case 0x042b: if (bytes && length >= 1) *bytes = 0xdb; return 1; - case 0x042c: if (bytes && length >= 1) *bytes = 0xdc; return 1; - case 0x042d: if (bytes && length >= 1) *bytes = 0xdd; return 1; - case 0x042e: if (bytes && length >= 1) *bytes = 0xde; return 1; - case 0x042f: if (bytes && length >= 1) *bytes = 0xdf; return 1; - case 0x0430: if (bytes && length >= 1) *bytes = 0xe0; return 1; - case 0x0431: if (bytes && length >= 1) *bytes = 0xe1; return 1; - case 0x0432: if (bytes && length >= 1) *bytes = 0xe2; return 1; - case 0x0433: if (bytes && length >= 1) *bytes = 0xe3; return 1; - case 0x0434: if (bytes && length >= 1) *bytes = 0xe4; return 1; - case 0x0435: if (bytes && length >= 1) *bytes = 0xe5; return 1; - case 0x0436: if (bytes && length >= 1) *bytes = 0xe6; return 1; - case 0x0437: if (bytes && length >= 1) *bytes = 0xe7; return 1; - case 0x0438: if (bytes && length >= 1) *bytes = 0xe8; return 1; - case 0x0439: if (bytes && length >= 1) *bytes = 0xe9; return 1; - case 0x043a: if (bytes && length >= 1) *bytes = 0xea; return 1; - case 0x043b: if (bytes && length >= 1) *bytes = 0xeb; return 1; - case 0x043c: if (bytes && length >= 1) *bytes = 0xec; return 1; - case 0x043d: if (bytes && length >= 1) *bytes = 0xed; return 1; - case 0x043e: if (bytes && length >= 1) *bytes = 0xee; return 1; - case 0x043f: if (bytes && length >= 1) *bytes = 0xef; return 1; - case 0x0440: if (bytes && length >= 1) *bytes = 0xf0; return 1; - case 0x0441: if (bytes && length >= 1) *bytes = 0xf1; return 1; - case 0x0442: if (bytes && length >= 1) *bytes = 0xf2; return 1; - case 0x0443: if (bytes && length >= 1) *bytes = 0xf3; return 1; - case 0x0444: if (bytes && length >= 1) *bytes = 0xf4; return 1; - case 0x0445: if (bytes && length >= 1) *bytes = 0xf5; return 1; - case 0x0446: if (bytes && length >= 1) *bytes = 0xf6; return 1; - case 0x0447: if (bytes && length >= 1) *bytes = 0xf7; return 1; - case 0x0448: if (bytes && length >= 1) *bytes = 0xf8; return 1; - case 0x0449: if (bytes && length >= 1) *bytes = 0xf9; return 1; - case 0x044a: if (bytes && length >= 1) *bytes = 0xfa; return 1; - case 0x044b: if (bytes && length >= 1) *bytes = 0xfb; return 1; - case 0x044c: if (bytes && length >= 1) *bytes = 0xfc; return 1; - case 0x044d: if (bytes && length >= 1) *bytes = 0xfd; return 1; - case 0x044e: if (bytes && length >= 1) *bytes = 0xfe; return 1; - case 0x044f: if (bytes && length >= 1) *bytes = 0xff; return 1; - default: return 0; + switch(ch) + { + case 0x0402: if (bytes && length >= 1) *bytes = 0x80; return 1; + case 0x0403: if (bytes && length >= 1) *bytes = 0x81; return 1; + case 0x201a: if (bytes && length >= 1) *bytes = 0x82; return 1; + case 0x0453: if (bytes && length >= 1) *bytes = 0x83; return 1; + case 0x201e: if (bytes && length >= 1) *bytes = 0x84; return 1; + case 0x2026: if (bytes && length >= 1) *bytes = 0x85; return 1; + case 0x2020: if (bytes && length >= 1) *bytes = 0x86; return 1; + case 0x2021: if (bytes && length >= 1) *bytes = 0x87; return 1; + case 0x20ac: if (bytes && length >= 1) *bytes = 0x88; return 1; + case 0x2030: if (bytes && length >= 1) *bytes = 0x89; return 1; + case 0x0409: if (bytes && length >= 1) *bytes = 0x8a; return 1; + case 0x2039: if (bytes && length >= 1) *bytes = 0x8b; return 1; + case 0x040a: if (bytes && length >= 1) *bytes = 0x8c; return 1; + case 0x040c: if (bytes && length >= 1) *bytes = 0x8d; return 1; + case 0x040b: if (bytes && length >= 1) *bytes = 0x8e; return 1; + case 0x040f: if (bytes && length >= 1) *bytes = 0x8f; return 1; + case 0x0452: if (bytes && length >= 1) *bytes = 0x90; return 1; + case 0x2018: if (bytes && length >= 1) *bytes = 0x91; return 1; + case 0x2019: if (bytes && length >= 1) *bytes = 0x92; return 1; + case 0x201c: if (bytes && length >= 1) *bytes = 0x93; return 1; + case 0x201d: if (bytes && length >= 1) *bytes = 0x94; return 1; + case 0x2022: if (bytes && length >= 1) *bytes = 0x95; return 1; + case 0x2013: if (bytes && length >= 1) *bytes = 0x96; return 1; + case 0x2014: if (bytes && length >= 1) *bytes = 0x97; return 1; + case 0xfffe: if (bytes && length >= 1) *bytes = 0x98; return 1; + case 0x2122: if (bytes && length >= 1) *bytes = 0x99; return 1; + case 0x0459: if (bytes && length >= 1) *bytes = 0x9a; return 1; + case 0x203a: if (bytes && length >= 1) *bytes = 0x9b; return 1; + case 0x045a: if (bytes && length >= 1) *bytes = 0x9c; return 1; + case 0x045c: if (bytes && length >= 1) *bytes = 0x9d; return 1; + case 0x045b: if (bytes && length >= 1) *bytes = 0x9e; return 1; + case 0x045f: if (bytes && length >= 1) *bytes = 0x9f; return 1; + case 0x040e: if (bytes && length >= 1) *bytes = 0xa1; return 1; + case 0x045e: if (bytes && length >= 1) *bytes = 0xa2; return 1; + case 0x0408: if (bytes && length >= 1) *bytes = 0xa3; return 1; + case 0x0490: if (bytes && length >= 1) *bytes = 0xa5; return 1; + case 0x0401: if (bytes && length >= 1) *bytes = 0xa8; return 1; + case 0x0404: if (bytes && length >= 1) *bytes = 0xaa; return 1; + case 0x0407: if (bytes && length >= 1) *bytes = 0xaf; return 1; + case 0x0406: if (bytes && length >= 1) *bytes = 0xb2; return 1; + case 0x0456: if (bytes && length >= 1) *bytes = 0xb3; return 1; + case 0x0491: if (bytes && length >= 1) *bytes = 0xb4; return 1; + case 0x0451: if (bytes && length >= 1) *bytes = 0xb8; return 1; + case 0x2116: if (bytes && length >= 1) *bytes = 0xb9; return 1; + case 0x0454: if (bytes && length >= 1) *bytes = 0xba; return 1; + case 0x0458: if (bytes && length >= 1) *bytes = 0xbc; return 1; + case 0x0405: if (bytes && length >= 1) *bytes = 0xbd; return 1; + case 0x0455: if (bytes && length >= 1) *bytes = 0xbe; return 1; + case 0x0457: if (bytes && length >= 1) *bytes = 0xbf; return 1; + case 0x0410: if (bytes && length >= 1) *bytes = 0xc0; return 1; + case 0x0411: if (bytes && length >= 1) *bytes = 0xc1; return 1; + case 0x0412: if (bytes && length >= 1) *bytes = 0xc2; return 1; + case 0x0413: if (bytes && length >= 1) *bytes = 0xc3; return 1; + case 0x0414: if (bytes && length >= 1) *bytes = 0xc4; return 1; + case 0x0415: if (bytes && length >= 1) *bytes = 0xc5; return 1; + case 0x0416: if (bytes && length >= 1) *bytes = 0xc6; return 1; + case 0x0417: if (bytes && length >= 1) *bytes = 0xc7; return 1; + case 0x0418: if (bytes && length >= 1) *bytes = 0xc8; return 1; + case 0x0419: if (bytes && length >= 1) *bytes = 0xc9; return 1; + case 0x041a: if (bytes && length >= 1) *bytes = 0xca; return 1; + case 0x041b: if (bytes && length >= 1) *bytes = 0xcb; return 1; + case 0x041c: if (bytes && length >= 1) *bytes = 0xcc; return 1; + case 0x041d: if (bytes && length >= 1) *bytes = 0xcd; return 1; + case 0x041e: if (bytes && length >= 1) *bytes = 0xce; return 1; + case 0x041f: if (bytes && length >= 1) *bytes = 0xcf; return 1; + case 0x0420: if (bytes && length >= 1) *bytes = 0xd0; return 1; + case 0x0421: if (bytes && length >= 1) *bytes = 0xd1; return 1; + case 0x0422: if (bytes && length >= 1) *bytes = 0xd2; return 1; + case 0x0423: if (bytes && length >= 1) *bytes = 0xd3; return 1; + case 0x0424: if (bytes && length >= 1) *bytes = 0xd4; return 1; + case 0x0425: if (bytes && length >= 1) *bytes = 0xd5; return 1; + case 0x0426: if (bytes && length >= 1) *bytes = 0xd6; return 1; + case 0x0427: if (bytes && length >= 1) *bytes = 0xd7; return 1; + case 0x0428: if (bytes && length >= 1) *bytes = 0xd8; return 1; + case 0x0429: if (bytes && length >= 1) *bytes = 0xd9; return 1; + case 0x042a: if (bytes && length >= 1) *bytes = 0xda; return 1; + case 0x042b: if (bytes && length >= 1) *bytes = 0xdb; return 1; + case 0x042c: if (bytes && length >= 1) *bytes = 0xdc; return 1; + case 0x042d: if (bytes && length >= 1) *bytes = 0xdd; return 1; + case 0x042e: if (bytes && length >= 1) *bytes = 0xde; return 1; + case 0x042f: if (bytes && length >= 1) *bytes = 0xdf; return 1; + case 0x0430: if (bytes && length >= 1) *bytes = 0xe0; return 1; + case 0x0431: if (bytes && length >= 1) *bytes = 0xe1; return 1; + case 0x0432: if (bytes && length >= 1) *bytes = 0xe2; return 1; + case 0x0433: if (bytes && length >= 1) *bytes = 0xe3; return 1; + case 0x0434: if (bytes && length >= 1) *bytes = 0xe4; return 1; + case 0x0435: if (bytes && length >= 1) *bytes = 0xe5; return 1; + case 0x0436: if (bytes && length >= 1) *bytes = 0xe6; return 1; + case 0x0437: if (bytes && length >= 1) *bytes = 0xe7; return 1; + case 0x0438: if (bytes && length >= 1) *bytes = 0xe8; return 1; + case 0x0439: if (bytes && length >= 1) *bytes = 0xe9; return 1; + case 0x043a: if (bytes && length >= 1) *bytes = 0xea; return 1; + case 0x043b: if (bytes && length >= 1) *bytes = 0xeb; return 1; + case 0x043c: if (bytes && length >= 1) *bytes = 0xec; return 1; + case 0x043d: if (bytes && length >= 1) *bytes = 0xed; return 1; + case 0x043e: if (bytes && length >= 1) *bytes = 0xee; return 1; + case 0x043f: if (bytes && length >= 1) *bytes = 0xef; return 1; + case 0x0440: if (bytes && length >= 1) *bytes = 0xf0; return 1; + case 0x0441: if (bytes && length >= 1) *bytes = 0xf1; return 1; + case 0x0442: if (bytes && length >= 1) *bytes = 0xf2; return 1; + case 0x0443: if (bytes && length >= 1) *bytes = 0xf3; return 1; + case 0x0444: if (bytes && length >= 1) *bytes = 0xf4; return 1; + case 0x0445: if (bytes && length >= 1) *bytes = 0xf5; return 1; + case 0x0446: if (bytes && length >= 1) *bytes = 0xf6; return 1; + case 0x0447: if (bytes && length >= 1) *bytes = 0xf7; return 1; + case 0x0448: if (bytes && length >= 1) *bytes = 0xf8; return 1; + case 0x0449: if (bytes && length >= 1) *bytes = 0xf9; return 1; + case 0x044a: if (bytes && length >= 1) *bytes = 0xfa; return 1; + case 0x044b: if (bytes && length >= 1) *bytes = 0xfb; return 1; + case 0x044c: if (bytes && length >= 1) *bytes = 0xfc; return 1; + case 0x044d: if (bytes && length >= 1) *bytes = 0xfd; return 1; + case 0x044e: if (bytes && length >= 1) *bytes = 0xfe; return 1; + case 0x044f: if (bytes && length >= 1) *bytes = 0xff; return 1; + default: return 0; + } } } diff --git a/Foundation/src/Windows1252Encoding.cpp b/Foundation/src/Windows1252Encoding.cpp index 1c51cf074..206a1836a 100644 --- a/Foundation/src/Windows1252Encoding.cpp +++ b/Foundation/src/Windows1252Encoding.cpp @@ -99,36 +99,39 @@ int Windows1252Encoding::convert(int ch, unsigned char* bytes, int length) const *bytes = ch; return 1; } - else switch (ch) + else { - case 0x20ac: if (bytes && length >= 1) *bytes = 0x80; return 1; - case 0x201a: if (bytes && length >= 1) *bytes = 0x82; return 1; - case 0x0192: if (bytes && length >= 1) *bytes = 0x83; return 1; - case 0x201e: if (bytes && length >= 1) *bytes = 0x84; return 1; - case 0x2026: if (bytes && length >= 1) *bytes = 0x85; return 1; - case 0x2020: if (bytes && length >= 1) *bytes = 0x86; return 1; - case 0x2021: if (bytes && length >= 1) *bytes = 0x87; return 1; - case 0x02c6: if (bytes && length >= 1) *bytes = 0x88; return 1; - case 0x2030: if (bytes && length >= 1) *bytes = 0x89; return 1; - case 0x0160: if (bytes && length >= 1) *bytes = 0x8a; return 1; - case 0x2039: if (bytes && length >= 1) *bytes = 0x8b; return 1; - case 0x0152: if (bytes && length >= 1) *bytes = 0x8c; return 1; - case 0x017d: if (bytes && length >= 1) *bytes = 0x8e; return 1; - case 0x2018: if (bytes && length >= 1) *bytes = 0x91; return 1; - case 0x2019: if (bytes && length >= 1) *bytes = 0x92; return 1; - case 0x201c: if (bytes && length >= 1) *bytes = 0x93; return 1; - case 0x201d: if (bytes && length >= 1) *bytes = 0x94; return 1; - case 0x2022: if (bytes && length >= 1) *bytes = 0x95; return 1; - case 0x2013: if (bytes && length >= 1) *bytes = 0x96; return 1; - case 0x2014: if (bytes && length >= 1) *bytes = 0x97; return 1; - case 0x02dc: if (bytes && length >= 1) *bytes = 0x98; return 1; - case 0x2122: if (bytes && length >= 1) *bytes = 0x99; return 1; - case 0x0161: if (bytes && length >= 1) *bytes = 0x9a; return 1; - case 0x203a: if (bytes && length >= 1) *bytes = 0x9b; return 1; - case 0x0153: if (bytes && length >= 1) *bytes = 0x9c; return 1; - case 0x017e: if (bytes && length >= 1) *bytes = 0x9e; return 1; - case 0x0178: if (bytes && length >= 1) *bytes = 0x9f; return 1; - default: return 0; + switch (ch) + { + case 0x20ac: if (bytes && length >= 1) *bytes = 0x80; return 1; + case 0x201a: if (bytes && length >= 1) *bytes = 0x82; return 1; + case 0x0192: if (bytes && length >= 1) *bytes = 0x83; return 1; + case 0x201e: if (bytes && length >= 1) *bytes = 0x84; return 1; + case 0x2026: if (bytes && length >= 1) *bytes = 0x85; return 1; + case 0x2020: if (bytes && length >= 1) *bytes = 0x86; return 1; + case 0x2021: if (bytes && length >= 1) *bytes = 0x87; return 1; + case 0x02c6: if (bytes && length >= 1) *bytes = 0x88; return 1; + case 0x2030: if (bytes && length >= 1) *bytes = 0x89; return 1; + case 0x0160: if (bytes && length >= 1) *bytes = 0x8a; return 1; + case 0x2039: if (bytes && length >= 1) *bytes = 0x8b; return 1; + case 0x0152: if (bytes && length >= 1) *bytes = 0x8c; return 1; + case 0x017d: if (bytes && length >= 1) *bytes = 0x8e; return 1; + case 0x2018: if (bytes && length >= 1) *bytes = 0x91; return 1; + case 0x2019: if (bytes && length >= 1) *bytes = 0x92; return 1; + case 0x201c: if (bytes && length >= 1) *bytes = 0x93; return 1; + case 0x201d: if (bytes && length >= 1) *bytes = 0x94; return 1; + case 0x2022: if (bytes && length >= 1) *bytes = 0x95; return 1; + case 0x2013: if (bytes && length >= 1) *bytes = 0x96; return 1; + case 0x2014: if (bytes && length >= 1) *bytes = 0x97; return 1; + case 0x02dc: if (bytes && length >= 1) *bytes = 0x98; return 1; + case 0x2122: if (bytes && length >= 1) *bytes = 0x99; return 1; + case 0x0161: if (bytes && length >= 1) *bytes = 0x9a; return 1; + case 0x203a: if (bytes && length >= 1) *bytes = 0x9b; return 1; + case 0x0153: if (bytes && length >= 1) *bytes = 0x9c; return 1; + case 0x017e: if (bytes && length >= 1) *bytes = 0x9e; return 1; + case 0x0178: if (bytes && length >= 1) *bytes = 0x9f; return 1; + default: return 0; + } } } diff --git a/Foundation/testsuite/src/StreamTokenizerTest.cpp b/Foundation/testsuite/src/StreamTokenizerTest.cpp index d794da58e..00d90bff1 100644 --- a/Foundation/testsuite/src/StreamTokenizerTest.cpp +++ b/Foundation/testsuite/src/StreamTokenizerTest.cpp @@ -43,7 +43,7 @@ public: bool start(char c, std::istream& istr) { - if (c != -1 && Ascii::isAlpha(c)) + if ((int)c != -1 && Ascii::isAlpha(c)) { _value = c; return true; @@ -54,7 +54,7 @@ public: void finish(std::istream& istr) { int c = istr.peek(); - while (c != -1 && Ascii::isAlphaNumeric(c)) + while ((int)c != -1 && Ascii::isAlphaNumeric(c)) { istr.get(); _value += c; @@ -82,7 +82,7 @@ public: bool start(char c, std::istream& istr) { - if (c != -1 && Ascii::isDigit(c)) + if ((int)c != -1 && Ascii::isDigit(c)) { _value = c; return true; @@ -93,7 +93,7 @@ public: void finish(std::istream& istr) { int c = istr.peek(); - while (c != -1 && Ascii::isDigit(c)) + while ((int)c != -1 && Ascii::isDigit(c)) { istr.get(); _value += c; diff --git a/Foundation/testsuite/src/ThreadTest.cpp b/Foundation/testsuite/src/ThreadTest.cpp index 9b05b9b41..4c94964f3 100644 --- a/Foundation/testsuite/src/ThreadTest.cpp +++ b/Foundation/testsuite/src/ThreadTest.cpp @@ -371,10 +371,11 @@ void ThreadTest::testThreadFunction() assertTrue (!thread.isRunning()); - int tmp = MyRunnable::_staticVar; + MyRunnable::_staticVar = 0; + int tmp = 1; thread.start(freeFunc, &tmp); thread.join(); - assertTrue (tmp * 2 == MyRunnable::_staticVar); + assertTrue (tmp == MyRunnable::_staticVar); assertTrue (!thread.isRunning()); @@ -432,15 +433,16 @@ void ThreadTest::testThreadStackSize() assertTrue (0 == thread.getStackSize()); thread.setStackSize(stackSize); assertTrue (stackSize <= thread.getStackSize()); - int tmp = MyRunnable::_staticVar; + MyRunnable::_staticVar = 0; + int tmp = 1; thread.start(freeFunc, &tmp); thread.join(); - assertTrue (tmp * 2 == MyRunnable::_staticVar); + assertTrue (1 == MyRunnable::_staticVar); stackSize = 1; thread.setStackSize(stackSize); -#if !defined(POCO_OS_FAMILY_BSD) // on BSD family, stack size is rounded +#if defined(POCO_OS_FAMILY_BSD) // on BSD family, stack size is rounded #ifdef PTHREAD_STACK_MIN assertTrue (PTHREAD_STACK_MIN == thread.getStackSize()); #else @@ -448,17 +450,22 @@ void ThreadTest::testThreadStackSize() #endif #endif - tmp = MyRunnable::_staticVar; - thread.start(freeFunc, &tmp); - thread.join(); - assertTrue (tmp * 2 == MyRunnable::_staticVar); - - thread.setStackSize(0); - assertTrue (0 == thread.getStackSize()); - tmp = MyRunnable::_staticVar; - thread.start(freeFunc, &tmp); - thread.join(); - assertTrue (tmp * 2 == MyRunnable::_staticVar); +// disabled on FreeBSD; segfaults due to stack overflow, +// possibly happens on other BSD OSes) +#if (POCO_OS == POCO_OS_FREE_BSD) + { + int tmp = MyRunnable::_staticVar; + thread.start(freeFunc, &tmp); + thread.join(); + assertTrue (tmp * 2 == MyRunnable::_staticVar); + thread.setStackSize(0); + assertTrue (0 == thread.getStackSize()); + tmp = MyRunnable::_staticVar; + thread.start(freeFunc, &tmp); + thread.join(); + assertTrue (tmp * 2 == MyRunnable::_staticVar); + } +#endif } diff --git a/build/config/FreeBSD b/build/config/FreeBSD index c851bf3a6..8777783f6 100644 --- a/build/config/FreeBSD +++ b/build/config/FreeBSD @@ -1,7 +1,7 @@ # # FreeBSD # -# Make settings for FreeBSD 12.x/clang +# Make settings for FreeBSD/clang # # @@ -9,6 +9,13 @@ # LINKMODE ?= SHARED +# arm sanitizers available in >=13.3 and >=14.1 +SANITIZEFLAGS ?= +# sanitize flags: +# -fsanitize=address +# -fsanitize=undefined +# -fsanitize=thread + # # Define Tools # @@ -35,13 +42,13 @@ SHAREDLIBLINKEXT = .so # # Compiler and Linker Flags # -CFLAGS = +CFLAGS = $(SANITIZEFLAGS) -std=c11 CFLAGS32 = CFLAGS64 = -CXXFLAGS = +CXXFLAGS = $(SANITIZEFLAGS) -std=c++17 -Wall CXXFLAGS32 = CXXFLAGS64 = -LINKFLAGS = +LINKFLAGS = $(SANITIZEFLAGS) LINKFLAGS32 = LINKFLAGS64 = STATICOPT_CC = diff --git a/build/config/FreeBSD-Linux-compat b/build/config/FreeBSD-Linux-compat index 6c09650da..52f919029 100644 --- a/build/config/FreeBSD-Linux-compat +++ b/build/config/FreeBSD-Linux-compat @@ -1,5 +1,5 @@ # -# FreeBSD-Linux-Compat +# FreeBSD-Linux-compat # # Make settings for FreeBSD Linux Compatibility Mode (linux_base_fc10) # @@ -10,6 +10,13 @@ # LINKMODE ?= SHARED +# arm sanitizers available in >=13.3 and >=14.1 +SANITIZEFLAGS ?= +# sanitize flags: +# -fsanitize=address +# -fsanitize=undefined +# -fsanitize=thread + # # Define Tools # @@ -36,13 +43,13 @@ SHAREDLIBLINKEXT = .so # # Compiler and Linker Flags # -CFLAGS = +CFLAGS = $(SANITIZEFLAGS) -std=c11 CFLAGS32 = CFLAGS64 = -CXXFLAGS = -Wall -Wno-sign-compare +CXXFLAGS = $(SANITIZEFLAGS) -std=c++17 -Wall -Wno-sign-compare CXXFLAGS32 = CXXFLAGS64 = -LINKFLAGS = +LINKFLAGS = $(SANITIZEFLAGS) LINKFLAGS32 = LINKFLAGS64 = STATICOPT_CC = From e428c4b46c46481ffb687cd722776598f698b184 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Wed, 3 Apr 2024 07:01:34 +0200 Subject: [PATCH 374/395] fix(ActiveRecord): Error between Poco::ActiveRecord and Poco::Data::PostgreSQL #4450 --- ActiveRecord/include/Poco/ActiveRecord/ActiveRecord.h | 9 +++++---- ActiveRecord/src/Context.cpp | 5 ++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/ActiveRecord/include/Poco/ActiveRecord/ActiveRecord.h b/ActiveRecord/include/Poco/ActiveRecord/ActiveRecord.h index c8d2860f7..be932c572 100644 --- a/ActiveRecord/include/Poco/ActiveRecord/ActiveRecord.h +++ b/ActiveRecord/include/Poco/ActiveRecord/ActiveRecord.h @@ -240,23 +240,24 @@ template IDType ActiveRecord::lastInsertID(Poco::Data::Session& session) { using namespace Poco::Data::Keywords; + using namespace std::string_literals; IDType id; - if (session.connector() == "sqlite") + if (Poco::icompare(session.connector(), "sqlite"s) == 0) { session << "SELECT last_insert_rowid()", into(id), now; } - else if (session.connector() == "PostgreSQL") + else if (Poco::icompare(session.connector(), "postgresql"s) == 0) { session - << "SELECT currval('id_seq')", + << "SELECT lastval()", into(id), now; } - else if (session.connector() == "MySQL") + else if (Poco::icompare(session.connector(), "mysql"s) == 0) { session << "SELECT LAST_INSERT_ID()", diff --git a/ActiveRecord/src/Context.cpp b/ActiveRecord/src/Context.cpp index 499ba090e..d3231a337 100644 --- a/ActiveRecord/src/Context.cpp +++ b/ActiveRecord/src/Context.cpp @@ -15,6 +15,9 @@ #include "Poco/ActiveRecord/Context.h" +using namespace std::string_literals; + + namespace Poco { namespace ActiveRecord { @@ -33,7 +36,7 @@ Context::Context(const std::string& connector, const std::string& connectionStri StatementPlaceholderProvider::Ptr Context::statementPlaceholderProvider() const { - if (_session.connector() == "postgresql") + if (Poco::icompare(_session.connector(), "postgresql"s) == 0) return std::make_unique(); else return std::make_unique(); From a25cdac549a66654c0ef32f86fc757f3ad7f3e55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Wed, 3 Apr 2024 07:09:37 +0200 Subject: [PATCH 375/395] fix(Process): CloseHandle() on an null/invalid handle will throw an exception in the debugger --- Foundation/src/Process_WIN32U.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/Foundation/src/Process_WIN32U.cpp b/Foundation/src/Process_WIN32U.cpp index ffbf6cdc2..57f1a8072 100644 --- a/Foundation/src/Process_WIN32U.cpp +++ b/Foundation/src/Process_WIN32U.cpp @@ -280,7 +280,11 @@ ProcessHandleImpl* ProcessImpl::launchImpl(const std::string& command, const Arg { startupInfo.hStdInput = 0; } - if (options & PROCESS_CLOSE_STDIN) CloseHandle(GetStdHandle(STD_INPUT_HANDLE)); + if (options & PROCESS_CLOSE_STDIN) + { + HANDLE hStdIn = GetStdHandle(STD_INPUT_HANDLE); + if (hStdIn) CloseHandle(hStdIn); + } // outPipe may be the same as errPipe, so we duplicate first and close later. if (outPipe) @@ -312,9 +316,17 @@ ProcessHandleImpl* ProcessImpl::launchImpl(const std::string& command, const Arg startupInfo.hStdError = 0; } if (outPipe) outPipe->close(Pipe::CLOSE_WRITE); - if (options & PROCESS_CLOSE_STDOUT) CloseHandle(GetStdHandle(STD_OUTPUT_HANDLE)); + if (options & PROCESS_CLOSE_STDOUT) + { + HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); + if (hStdOut) CloseHandle(hStdOut); + } if (errPipe) errPipe->close(Pipe::CLOSE_WRITE); - if (options & PROCESS_CLOSE_STDERR) CloseHandle(GetStdHandle(STD_ERROR_HANDLE)); + if (options & PROCESS_CLOSE_STDERR) + { + HANDLE hStdErr = GetStdHandle(STD_ERROR_HANDLE); + if (hStdErr) CloseHandle(hStdErr); + } if (mustInheritHandles) { From 4892d97f51e7b1e9e8a90a147985b3659f8ad97b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Wed, 3 Apr 2024 07:12:03 +0200 Subject: [PATCH 376/395] fix(BinaryWriter): warning due to implicit cast --- Foundation/src/BinaryWriter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Foundation/src/BinaryWriter.cpp b/Foundation/src/BinaryWriter.cpp index 4362edf30..ea389ac11 100644 --- a/Foundation/src/BinaryWriter.cpp +++ b/Foundation/src/BinaryWriter.cpp @@ -336,7 +336,7 @@ void BinaryWriter::writeRaw(const char* buffer, std::streamsize length) void BinaryWriter::writeCString(const char* cString, std::streamsize maxLength) { - const std::size_t len = ::strnlen(cString, maxLength); + const std::size_t len = ::strnlen(cString, static_cast(maxLength)); writeRaw(cString, len); static const char zero = '\0'; _ostr.write(&zero, sizeof(zero)); From cbdaa1f369038460e3bb235ec56a8e69aa88b680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Wed, 3 Apr 2024 07:21:30 +0200 Subject: [PATCH 377/395] style --- Foundation/src/Thread_POSIX.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Foundation/src/Thread_POSIX.cpp b/Foundation/src/Thread_POSIX.cpp index 56686fc1a..11fdc1376 100644 --- a/Foundation/src/Thread_POSIX.cpp +++ b/Foundation/src/Thread_POSIX.cpp @@ -24,12 +24,14 @@ #include #include + #if POCO_OS == POCO_OS_FREE_BSD # include # include # include #endif + #if defined(__sun) && defined(__SVR4) # if !defined(__EXTENSIONS__) # define __EXTENSIONS__ @@ -39,6 +41,7 @@ # include #endif + #if POCO_OS == POCO_OS_LINUX || POCO_OS == POCO_OS_ANDROID # include #endif @@ -77,6 +80,7 @@ namespace } #endif + namespace { std::string truncName(const std::string& name, int nameSize = POCO_MAX_THREAD_NAME_LEN) @@ -147,6 +151,7 @@ ThreadImpl::~ThreadImpl() } } + void ThreadImpl::setNameImpl(const std::string& threadName) { std::string realName = threadName; @@ -390,6 +395,7 @@ ThreadImpl::TIDImpl ThreadImpl::currentTidImpl() return pthread_self(); } + long ThreadImpl::currentOsTidImpl() { long id = 0; From 401bec5010888aa748981df5c0bb8e84d63da211 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Wed, 3 Apr 2024 07:26:23 +0200 Subject: [PATCH 378/395] style --- Net/include/Poco/Net/HostEntry.h | 1 - 1 file changed, 1 deletion(-) diff --git a/Net/include/Poco/Net/HostEntry.h b/Net/include/Poco/Net/HostEntry.h index e3dfab53e..a0fdcc6ad 100644 --- a/Net/include/Poco/Net/HostEntry.h +++ b/Net/include/Poco/Net/HostEntry.h @@ -76,7 +76,6 @@ public: /// for the host. private: - std::string _name; AliasList _aliases; AddressList _addresses; From 68d12fdd525b59bb6f02edb81aee3e008ab75cc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Wed, 3 Apr 2024 07:51:55 +0200 Subject: [PATCH 379/395] fix(NetSSL): SecureSocketImpl::peerCertificate() should just return certificate, not verify it --- NetSSL_OpenSSL/src/SecureSocketImpl.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/NetSSL_OpenSSL/src/SecureSocketImpl.cpp b/NetSSL_OpenSSL/src/SecureSocketImpl.cpp index 2963d7f9e..8fb3c7f7d 100644 --- a/NetSSL_OpenSSL/src/SecureSocketImpl.cpp +++ b/NetSSL_OpenSSL/src/SecureSocketImpl.cpp @@ -521,14 +521,9 @@ X509* SecureSocketImpl::peerCertificate() const X509* pCert = nullptr; if (_pSSL) - { - pCert = ::SSL_get_peer_certificate(_pSSL); - if (X509_V_OK != SSL_get_verify_result(_pSSL)) - throw CertificateValidationException("SecureSocketImpl::peerCertificate(): " - "Certificate verification error " + Utility::getLastError()); - } - - return pCert; + return ::SSL_get_peer_certificate(_pSSL); + else + return nullptr; } From 01d55ae85e1ca737db7937d959c25ebc8cce3407 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Wed, 3 Apr 2024 08:40:12 +0200 Subject: [PATCH 380/395] chore(PageCompiler): copyright date --- PageCompiler/PageCompiler.make | 2 ++ PageCompiler/src/PageCompiler.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/PageCompiler/PageCompiler.make b/PageCompiler/PageCompiler.make index a109b320d..77251a9b0 100644 --- a/PageCompiler/PageCompiler.make +++ b/PageCompiler/PageCompiler.make @@ -8,6 +8,7 @@ # a Makefile. # +ifndef PAGE_COMPILER ifneq (,$(findstring debug,$(DEFAULT_TARGET) $(MAKECMDGOALS))) ifneq (,$(findstring static,$(DEFAULT_TARGET) $(MAKECMDGOALS))) PAGE_COMPILER = $(POCO_BASE)/PageCompiler/$(POCO_HOST_BINDIR)/static/cpspcd @@ -21,3 +22,4 @@ else PAGE_COMPILER = $(POCO_BASE)/PageCompiler/$(POCO_HOST_BINDIR)/cpspc endif endif +endif diff --git a/PageCompiler/src/PageCompiler.cpp b/PageCompiler/src/PageCompiler.cpp index 67d7b57ff..82133bd60 100644 --- a/PageCompiler/src/PageCompiler.cpp +++ b/PageCompiler/src/PageCompiler.cpp @@ -216,7 +216,7 @@ protected: helpFormatter.setHeader( "\n" "The POCO C++ Server Page Compiler.\n" - "Copyright (c) 2008-2023 by Applied Informatics Software Engineering GmbH.\n" + "Copyright (c) 2008-2024 by Applied Informatics Software Engineering GmbH.\n" "All rights reserved.\n\n" "This program compiles web pages containing embedded C++ code " "into a C++ class that can be used with the HTTP server " From 7fc2c4ba6a94bc5348e04a237e948bd449499654 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Wed, 3 Apr 2024 08:41:27 +0200 Subject: [PATCH 381/395] feat(ProGen): vcpkg support --- ProGen/src/ProGen.cpp | 44 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/ProGen/src/ProGen.cpp b/ProGen/src/ProGen.cpp index 6c9bdd1fe..def54f02e 100644 --- a/ProGen/src/ProGen.cpp +++ b/ProGen/src/ProGen.cpp @@ -488,6 +488,45 @@ protected: } } + void addVcpkgProperties(Poco::AutoPtr pProjectDoc, const std::set& configSet, const std::string& platform, const Poco::Util::AbstractConfiguration& projectProps, const Poco::Util::AbstractConfiguration& templateProps) + { + Poco::XML::Node* pInsertAfterNode = nullptr; + Poco::AutoPtr pPropertyGroups = pProjectDoc->getElementsByTagName("PropertyGroup"); + if (pPropertyGroups->length() > 0) + { + pInsertAfterNode = pPropertyGroups->item(pPropertyGroups->length() - 1); + } + Poco::AutoPtr pPropertyGroupElem = pProjectDoc->createElement("PropertyGroup"); + pPropertyGroupElem->setAttribute("Label", "Vcpkg"); + appendElement(pPropertyGroupElem, "VcpkgEnableManifest", "true"); + pProjectDoc->documentElement()->insertAfterNP(pPropertyGroupElem, pInsertAfterNode); + pInsertAfterNode = pPropertyGroupElem; + + Poco::StringTokenizer archTok(templateProps.getString("project.architectures"), ";,", Poco::StringTokenizer::TOK_TRIM | Poco::StringTokenizer::TOK_IGNORE_EMPTY); + std::set archs(archTok.begin(), archTok.end()); + + for (const auto& config: configSet) + { + for (const auto& arch: archs) + { + Poco::AutoPtr pPropertyGroupElem = pProjectDoc->createElement("PropertyGroup"); + pPropertyGroupElem->setAttribute("Label", "Vcpkg"); + pPropertyGroupElem->setAttribute("Condition", Poco::format("'$(Configuration)|$(Platform)'=='%s|%s'", config, arch)); + appendElement(pPropertyGroupElem, "VcpkgConfiguration", config.find("debug") == 0 ? "Debug" : "Release"); + if (config.find("_static") != std::string::npos) + { + appendElement(pPropertyGroupElem, "VcpkgUseStatic", "true"); + } + if (config.find("_static_md") != std::string::npos) + { + appendElement(pPropertyGroupElem, "VcpkgUseMD", "true"); + } + pProjectDoc->documentElement()->insertAfterNP(pPropertyGroupElem, pInsertAfterNode); + pInsertAfterNode = pPropertyGroupElem; + } + } + } + void fix20XXProject(Poco::AutoPtr pProjectDoc, const std::set& configSet, const std::string& platform, const Poco::Util::AbstractConfiguration& projectProps, const Poco::Util::AbstractConfiguration& templateProps, const std::string& platformToolset) { fix2010Project(pProjectDoc, configSet, platform, projectProps, templateProps); @@ -498,6 +537,10 @@ protected: removeElement(pConfigurationTypeElem->parentNode(), "PlatformToolset"); appendElement(pConfigurationTypeElem->parentNode(), "PlatformToolset", platformToolset); } + if (projectProps.getBool("project.vcpkg", false)) + { + addVcpkgProperties(pProjectDoc, configSet, platform, projectProps, templateProps); + } } void fix2019Project(Poco::AutoPtr pProjectDoc, const std::set& configSet, const std::string& platform, const Poco::Util::AbstractConfiguration& projectProps, const Poco::Util::AbstractConfiguration& templateProps) @@ -625,6 +668,7 @@ protected: pProps->setString("project.pocobase", projectConfig.getString("vc.project.pocobase", "..")); pProps->setString("project.platform", pTemplateProps->getString("project.platform", platform)); pProps->setString("project.targetPlatform", pTemplateProps->getString("project.targetPlatform", "WINDOWS_NT")); + pProps->setBool("project.vcpkg", projectConfig.getBool("vc.project.vcpkg", false)); expandAttributes(pProjectDoc->documentElement(), *pProps); Poco::XML::Node* pFilesElement = pPrototypeDoc->getNodeByPath("//Files"); From 04ef2698b149f1aa66f91da557be4244ee28677b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Wed, 3 Apr 2024 08:42:20 +0200 Subject: [PATCH 382/395] chore(build): vcpkg dependencies --- Crypto/vcpkg-configuration.json | 14 ++++++++++++++ Crypto/vcpkg.json | 5 +++++ Data/MySQL/vcpkg-configuration.json | 14 ++++++++++++++ Data/MySQL/vcpkg.json | 5 +++++ Data/PostgreSQL/vcpkg-configuration.json | 14 ++++++++++++++ Data/PostgreSQL/vcpkg.json | 5 +++++ JWT/vcpkg-configuration.json | 14 ++++++++++++++ JWT/vcpkg.json | 5 +++++ NetSSL_OpenSSL/vcpkg-configuration.json | 14 ++++++++++++++ NetSSL_OpenSSL/vcpkg.json | 5 +++++ 10 files changed, 95 insertions(+) create mode 100644 Crypto/vcpkg-configuration.json create mode 100644 Crypto/vcpkg.json create mode 100644 Data/MySQL/vcpkg-configuration.json create mode 100644 Data/MySQL/vcpkg.json create mode 100644 Data/PostgreSQL/vcpkg-configuration.json create mode 100644 Data/PostgreSQL/vcpkg.json create mode 100644 JWT/vcpkg-configuration.json create mode 100644 JWT/vcpkg.json create mode 100644 NetSSL_OpenSSL/vcpkg-configuration.json create mode 100644 NetSSL_OpenSSL/vcpkg.json diff --git a/Crypto/vcpkg-configuration.json b/Crypto/vcpkg-configuration.json new file mode 100644 index 000000000..c540ec736 --- /dev/null +++ b/Crypto/vcpkg-configuration.json @@ -0,0 +1,14 @@ +{ + "default-registry": { + "kind": "git", + "baseline": "000d1bda1ffa95a73e0b40334fa4103d6f4d3d48", + "repository": "https://github.com/microsoft/vcpkg" + }, + "registries": [ + { + "kind": "artifact", + "location": "https://github.com/microsoft/vcpkg-ce-catalog/archive/refs/heads/main.zip", + "name": "microsoft" + } + ] +} diff --git a/Crypto/vcpkg.json b/Crypto/vcpkg.json new file mode 100644 index 000000000..3ed9a36b2 --- /dev/null +++ b/Crypto/vcpkg.json @@ -0,0 +1,5 @@ +{ + "dependencies": [ + "openssl" + ] +} diff --git a/Data/MySQL/vcpkg-configuration.json b/Data/MySQL/vcpkg-configuration.json new file mode 100644 index 000000000..c540ec736 --- /dev/null +++ b/Data/MySQL/vcpkg-configuration.json @@ -0,0 +1,14 @@ +{ + "default-registry": { + "kind": "git", + "baseline": "000d1bda1ffa95a73e0b40334fa4103d6f4d3d48", + "repository": "https://github.com/microsoft/vcpkg" + }, + "registries": [ + { + "kind": "artifact", + "location": "https://github.com/microsoft/vcpkg-ce-catalog/archive/refs/heads/main.zip", + "name": "microsoft" + } + ] +} diff --git a/Data/MySQL/vcpkg.json b/Data/MySQL/vcpkg.json new file mode 100644 index 000000000..b96758599 --- /dev/null +++ b/Data/MySQL/vcpkg.json @@ -0,0 +1,5 @@ +{ + "dependencies": [ + "libmariadb" + ] +} diff --git a/Data/PostgreSQL/vcpkg-configuration.json b/Data/PostgreSQL/vcpkg-configuration.json new file mode 100644 index 000000000..c540ec736 --- /dev/null +++ b/Data/PostgreSQL/vcpkg-configuration.json @@ -0,0 +1,14 @@ +{ + "default-registry": { + "kind": "git", + "baseline": "000d1bda1ffa95a73e0b40334fa4103d6f4d3d48", + "repository": "https://github.com/microsoft/vcpkg" + }, + "registries": [ + { + "kind": "artifact", + "location": "https://github.com/microsoft/vcpkg-ce-catalog/archive/refs/heads/main.zip", + "name": "microsoft" + } + ] +} diff --git a/Data/PostgreSQL/vcpkg.json b/Data/PostgreSQL/vcpkg.json new file mode 100644 index 000000000..e15e58b8f --- /dev/null +++ b/Data/PostgreSQL/vcpkg.json @@ -0,0 +1,5 @@ +{ + "dependencies": [ + "libpq" + ] +} diff --git a/JWT/vcpkg-configuration.json b/JWT/vcpkg-configuration.json new file mode 100644 index 000000000..c540ec736 --- /dev/null +++ b/JWT/vcpkg-configuration.json @@ -0,0 +1,14 @@ +{ + "default-registry": { + "kind": "git", + "baseline": "000d1bda1ffa95a73e0b40334fa4103d6f4d3d48", + "repository": "https://github.com/microsoft/vcpkg" + }, + "registries": [ + { + "kind": "artifact", + "location": "https://github.com/microsoft/vcpkg-ce-catalog/archive/refs/heads/main.zip", + "name": "microsoft" + } + ] +} diff --git a/JWT/vcpkg.json b/JWT/vcpkg.json new file mode 100644 index 000000000..3ed9a36b2 --- /dev/null +++ b/JWT/vcpkg.json @@ -0,0 +1,5 @@ +{ + "dependencies": [ + "openssl" + ] +} diff --git a/NetSSL_OpenSSL/vcpkg-configuration.json b/NetSSL_OpenSSL/vcpkg-configuration.json new file mode 100644 index 000000000..c540ec736 --- /dev/null +++ b/NetSSL_OpenSSL/vcpkg-configuration.json @@ -0,0 +1,14 @@ +{ + "default-registry": { + "kind": "git", + "baseline": "000d1bda1ffa95a73e0b40334fa4103d6f4d3d48", + "repository": "https://github.com/microsoft/vcpkg" + }, + "registries": [ + { + "kind": "artifact", + "location": "https://github.com/microsoft/vcpkg-ce-catalog/archive/refs/heads/main.zip", + "name": "microsoft" + } + ] +} diff --git a/NetSSL_OpenSSL/vcpkg.json b/NetSSL_OpenSSL/vcpkg.json new file mode 100644 index 000000000..3ed9a36b2 --- /dev/null +++ b/NetSSL_OpenSSL/vcpkg.json @@ -0,0 +1,5 @@ +{ + "dependencies": [ + "openssl" + ] +} From f46e496fdcd834ec98c2b43dc422e2189c2a83cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Wed, 3 Apr 2024 09:01:34 +0200 Subject: [PATCH 383/395] fix(build): Foundation VS project files --- Foundation/Foundation_vs160.vcxproj | 1 - Foundation/Foundation_vs170.vcxproj | 18 ++++++++++ Foundation/testsuite/TestApp_vs160.vcxproj | 24 ++++++------- Foundation/testsuite/TestApp_vs170.vcxproj | 36 +++++++++---------- .../testsuite/TestLibrary_vs160.vcxproj | 4 +-- .../testsuite/TestLibrary_vs170.vcxproj | 12 +++---- Foundation/testsuite/TestSuite_vs170.vcxproj | 18 ++++++++++ 7 files changed, 74 insertions(+), 39 deletions(-) diff --git a/Foundation/Foundation_vs160.vcxproj b/Foundation/Foundation_vs160.vcxproj index c24e413ec..f1a28048f 100644 --- a/Foundation/Foundation_vs160.vcxproj +++ b/Foundation/Foundation_vs160.vcxproj @@ -1507,7 +1507,6 @@ - diff --git a/Foundation/Foundation_vs170.vcxproj b/Foundation/Foundation_vs170.vcxproj index cb7ca5930..3ecff85c5 100644 --- a/Foundation/Foundation_vs170.vcxproj +++ b/Foundation/Foundation_vs170.vcxproj @@ -342,6 +342,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -375,6 +376,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -408,6 +410,7 @@ $(OutDir)$(TargetName).pdb stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -442,6 +445,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -480,6 +484,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -518,6 +523,7 @@ $(OutDir)$(TargetName).pdb stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -552,6 +558,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) ..\lib\PocoFoundationmtd.lib @@ -579,6 +586,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) ..\lib64\PocoFoundationmtd.lib @@ -605,6 +613,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) $(OutDir)$(TargetName).lib @@ -632,6 +641,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) ..\lib\PocoFoundationmt.lib @@ -662,6 +672,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) ..\lib64\PocoFoundationmt.lib @@ -691,6 +702,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) $(OutDir)$(TargetName).lib @@ -717,6 +729,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) ..\lib\PocoFoundationmdd.lib @@ -744,6 +757,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) ..\lib64\PocoFoundationmdd.lib @@ -770,6 +784,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) $(OutDir)$(TargetName).lib @@ -798,6 +813,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) @@ -831,6 +847,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) @@ -863,6 +880,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) diff --git a/Foundation/testsuite/TestApp_vs160.vcxproj b/Foundation/testsuite/TestApp_vs160.vcxproj index 4bf91150c..3dbcd1cae 100644 --- a/Foundation/testsuite/TestApp_vs160.vcxproj +++ b/Foundation/testsuite/TestApp_vs160.vcxproj @@ -261,7 +261,7 @@ Level3 ProgramDatabase - /FS + /FS /Zc:__cplusplus true stdcpp17 @@ -290,7 +290,7 @@ Level3 ProgramDatabase - /FS + /FS /Zc:__cplusplus true stdcpp17 @@ -323,7 +323,7 @@ Level3 - /FS + /FS /Zc:__cplusplus true stdcpp17 @@ -360,7 +360,7 @@ Level3 - /FS + /FS /Zc:__cplusplus true stdcpp17 @@ -396,7 +396,7 @@ Level3 - /FS + /FS /Zc:__cplusplus true stdcpp17 @@ -433,7 +433,7 @@ Level3 - /FS + /FS /Zc:__cplusplus true stdcpp17 @@ -465,7 +465,7 @@ Level3 ProgramDatabase - /FS + /FS /Zc:__cplusplus true stdcpp17 @@ -494,7 +494,7 @@ Level3 ProgramDatabase - /FS + /FS /Zc:__cplusplus true stdcpp17 @@ -523,7 +523,7 @@ Level3 ProgramDatabase - /FS + /FS /Zc:__cplusplus true stdcpp17 @@ -552,7 +552,7 @@ Level3 ProgramDatabase - /FS + /FS /Zc:__cplusplus true stdcpp17 @@ -585,7 +585,7 @@ Level3 - /FS + /FS /Zc:__cplusplus true stdcpp17 @@ -622,7 +622,7 @@ Level3 - /FS + /FS /Zc:__cplusplus true stdcpp17 diff --git a/Foundation/testsuite/TestApp_vs170.vcxproj b/Foundation/testsuite/TestApp_vs170.vcxproj index 7f5bd8cb0..31fb134cc 100644 --- a/Foundation/testsuite/TestApp_vs170.vcxproj +++ b/Foundation/testsuite/TestApp_vs170.vcxproj @@ -357,7 +357,7 @@ Level3 ProgramDatabase - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -387,7 +387,7 @@ Level3 ProgramDatabase - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -416,7 +416,7 @@ Level3 ProgramDatabase - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -450,7 +450,7 @@ Level3 - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -488,7 +488,7 @@ Level3 - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -525,7 +525,7 @@ Level3 - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -562,7 +562,7 @@ Level3 - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -600,7 +600,7 @@ Level3 - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -637,7 +637,7 @@ Level3 - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -670,7 +670,7 @@ Level3 ProgramDatabase - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -700,7 +700,7 @@ Level3 ProgramDatabase - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -729,7 +729,7 @@ Level3 ProgramDatabase - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -759,7 +759,7 @@ Level3 ProgramDatabase - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -789,7 +789,7 @@ Level3 ProgramDatabase - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -818,7 +818,7 @@ Level3 ProgramDatabase - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -852,7 +852,7 @@ Level3 - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -890,7 +890,7 @@ Level3 - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -927,7 +927,7 @@ Level3 - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 diff --git a/Foundation/testsuite/TestLibrary_vs160.vcxproj b/Foundation/testsuite/TestLibrary_vs160.vcxproj index 82d91aa85..33d727c07 100644 --- a/Foundation/testsuite/TestLibrary_vs160.vcxproj +++ b/Foundation/testsuite/TestLibrary_vs160.vcxproj @@ -105,7 +105,7 @@ Level3 ProgramDatabase - /FS + /FS /Zc:__cplusplus true stdcpp17 @@ -172,7 +172,7 @@ Level3 - /FS + /FS /Zc:__cplusplus true stdcpp17 diff --git a/Foundation/testsuite/TestLibrary_vs170.vcxproj b/Foundation/testsuite/TestLibrary_vs170.vcxproj index c717b7139..dca240786 100644 --- a/Foundation/testsuite/TestLibrary_vs170.vcxproj +++ b/Foundation/testsuite/TestLibrary_vs170.vcxproj @@ -135,7 +135,7 @@ Level3 ProgramDatabase - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -168,7 +168,7 @@ Level3 ProgramDatabase - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -200,7 +200,7 @@ Level3 ProgramDatabase - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -236,7 +236,7 @@ Level3 - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -276,7 +276,7 @@ Level3 - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 @@ -315,7 +315,7 @@ Level3 - /FS + /FS /Zc:__cplusplus true stdcpp17 stdc11 diff --git a/Foundation/testsuite/TestSuite_vs170.vcxproj b/Foundation/testsuite/TestSuite_vs170.vcxproj index 58bbfe6a9..d91f6c533 100644 --- a/Foundation/testsuite/TestSuite_vs170.vcxproj +++ b/Foundation/testsuite/TestSuite_vs170.vcxproj @@ -354,6 +354,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -386,6 +387,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -418,6 +420,7 @@ $(OutDir)$(TargetName).pdb stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -451,6 +454,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -487,6 +491,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -523,6 +528,7 @@ stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -555,6 +561,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -587,6 +594,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -619,6 +627,7 @@ $(OutDir)$(TargetName).pdb stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -652,6 +661,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -688,6 +698,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -724,6 +735,7 @@ stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -756,6 +768,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -788,6 +801,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -820,6 +834,7 @@ $(OutDir)$(TargetName).pdb stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -853,6 +868,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -889,6 +905,7 @@ true stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) @@ -925,6 +942,7 @@ stdcpp17 stdc11 + /Zc:__cplusplus %(AdditionalOptions) iphlpapi.lib;%(AdditionalDependencies) From cd22900a373c61adfde60b12fb4558307728ecd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Wed, 3 Apr 2024 09:20:14 +0200 Subject: [PATCH 384/395] enh(build): vcpkg support, cleanup/consistency --- Crypto/CMakeLists.txt | 3 +- Crypto/Crypto.progen | 2 + Crypto/include/Poco/Crypto/Crypto.h | 68 ------------------- Crypto/samples/genrsakey/genrsakey.progen | 2 + Crypto/testsuite/TestSuite.progen | 8 ++- Crypto/testsuite/src/CryptoTestSuite.cpp | 2 +- Data/MySQL/MySQL.progen | 2 + Data/MySQL/testsuite/TestSuite.progen | 10 ++- Data/ODBC/ODBC.progen | 1 + Data/ODBC/testsuite/TestSuite.progen | 1 + Data/PostgreSQL/PostgreSQL.progen | 2 + Data/PostgreSQL/testsuite/TestSuite.progen | 14 ++-- Data/SQLite/SQLite.progen | 1 + Data/SQLite/testsuite/TestSuite.progen | 1 + Data/samples/Binding/Binding.progen | 1 + Data/samples/RecordSet/RecordSet.progen | 1 + Data/samples/RowFormatter/RowFormatter.progen | 1 + Data/samples/Tuple/Tuple.progen | 1 + Data/samples/TypeHandler/TypeHandler.progen | 1 + Data/samples/WebNotifier/WebNotifier.progen | 1 + Data/testsuite/TestSuite_NO_SQL_PARSER.progen | 1 + Foundation/include/Poco/Config.h | 27 -------- JWT/JWT.progen | 1 + JWT/testsuite/TestSuite.progen | 1 + NetSSL_OpenSSL/CMakeLists.txt | 2 +- NetSSL_OpenSSL/NetSSL_OpenSSL.progen | 1 + .../HTTPSTimeServer/HTTPSTimeServer.progen | 1 + NetSSL_OpenSSL/samples/Mail/Mail.progen | 1 + .../samples/SetSourceIP/SetSourceIP.progen | 1 + .../TwitterClient/TwitterClient.progen | 1 + .../samples/download/download.progen | 1 + NetSSL_OpenSSL/testsuite/TestSuite.progen | 1 + .../testsuite/src/WebSocketTest.cpp | 1 + 33 files changed, 55 insertions(+), 108 deletions(-) diff --git a/Crypto/CMakeLists.txt b/Crypto/CMakeLists.txt index 5a69cf83e..d804f45c2 100644 --- a/Crypto/CMakeLists.txt +++ b/Crypto/CMakeLists.txt @@ -30,8 +30,7 @@ target_include_directories(Crypto ${CMAKE_CURRENT_SOURCE_DIR}/src ) -if(MSVC AND POCO_DISABLE_INTERNAL_OPENSSL) - target_compile_definitions(Crypto PUBLIC POCO_EXTERNAL_OPENSSL) +if(MSVC) if(OPENSSL_USE_STATIC_LIBS) target_link_libraries(Crypto PUBLIC ws2_32.lib Crypt32.lib) endif() diff --git a/Crypto/Crypto.progen b/Crypto/Crypto.progen index f3492c130..55b4ae4a1 100644 --- a/Crypto/Crypto.progen +++ b/Crypto/Crypto.progen @@ -5,6 +5,7 @@ vc.project.type = library vc.project.pocobase = .. vc.project.outdir = ${vc.project.pocobase} vc.project.platforms = Win32 +vc.project.vcpkg = true vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ${vc.project.pocobase}\\Foundation\\include @@ -12,6 +13,7 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/Crypto/include/Poco/Crypto/Crypto.h b/Crypto/include/Poco/Crypto/Crypto.h index 7b857cf31..7b842c85e 100644 --- a/Crypto/include/Poco/Crypto/Crypto.h +++ b/Crypto/include/Poco/Crypto/Crypto.h @@ -20,10 +20,6 @@ #define Crypto_Crypto_INCLUDED -#define POCO_EXTERNAL_OPENSSL_DEFAULT 1 -#define POCO_EXTERNAL_OPENSSL_SLPRO 2 - - // // Temporarily suppress deprecation warnings coming // from OpenSSL 3.0, until we have updated our code. @@ -104,70 +100,6 @@ enum RSAPaddingMode // #if defined(_MSC_VER) #if !defined(POCO_NO_AUTOMATIC_LIBS) - #if defined(POCO_INTERNAL_OPENSSL_MSVC_VER) - #if defined(POCO_EXTERNAL_OPENSSL) - #pragma message("External OpenSSL defined but internal headers used - possible mismatch!") - #endif // POCO_EXTERNAL_OPENSSL - #if !defined(_DEBUG) - #define POCO_DEBUG_SUFFIX "" - #if !defined (_DLL) - #define POCO_STATIC_SUFFIX "mt" - #else // _DLL - #define POCO_STATIC_SUFFIX "" - #endif - #else // _DEBUG - #define POCO_DEBUG_SUFFIX "d" - #if !defined (_DLL) - #define POCO_STATIC_SUFFIX "mt" - #else // _DLL - #define POCO_STATIC_SUFFIX "" - #endif - #endif - #pragma comment(lib, "libcrypto" POCO_STATIC_SUFFIX POCO_DEBUG_SUFFIX ".lib") - #pragma comment(lib, "libssl" POCO_STATIC_SUFFIX POCO_DEBUG_SUFFIX ".lib") - #if !defined(_WIN64) && !defined (_DLL) && \ - (POCO_INTERNAL_OPENSSL_MSVC_VER == 120) && \ - (POCO_MSVC_VERSION < POCO_INTERNAL_OPENSSL_MSVC_VER) - #pragma comment(lib, "libPreVS2013CRT" POCO_STATIC_SUFFIX POCO_DEBUG_SUFFIX ".lib") - #endif - #if !defined (_DLL) && (POCO_MSVS_VERSION >= 2015) - #pragma comment(lib, "legacy_stdio_definitions.lib") - #pragma comment(lib, "legacy_stdio_wide_specifiers.lib") - #endif - #elif defined(POCO_EXTERNAL_OPENSSL) - #if POCO_EXTERNAL_OPENSSL == POCO_EXTERNAL_OPENSSL_SLPRO - #if defined(POCO_DLL) - #if OPENSSL_VERSION_PREREQ(1,1) - #pragma comment(lib, "libcrypto.lib") - #pragma comment(lib, "libssl.lib") - #else - #pragma comment(lib, "libeay32.lib") - #pragma comment(lib, "ssleay32.lib") - #endif - #else - #if OPENSSL_VERSION_PREREQ(1,1) - #if defined(_WIN64) - #pragma comment(lib, "libcrypto64" POCO_LIB_SUFFIX) - #pragma comment(lib, "libssl64" POCO_LIB_SUFFIX) - #else - #pragma comment(lib, "libcrypto32" POCO_LIB_SUFFIX) - #pragma comment(lib, "libssl32" POCO_LIB_SUFFIX) - #endif - #else - #pragma comment(lib, "libeay32" POCO_LIB_SUFFIX) - #pragma comment(lib, "ssleay32" POCO_LIB_SUFFIX) - #endif - #endif - #elif POCO_EXTERNAL_OPENSSL == POCO_EXTERNAL_OPENSSL_DEFAULT - #if OPENSSL_VERSION_PREREQ(1,1) - #pragma comment(lib, "libcrypto.lib") - #pragma comment(lib, "libssl.lib") - #else - #pragma comment(lib, "libeay32.lib") - #pragma comment(lib, "ssleay32.lib") - #endif - #endif - #endif // POCO_INTERNAL_OPENSSL_MSVC_VER #if !defined(Crypto_EXPORTS) #pragma comment(lib, "PocoCrypto" POCO_LIB_SUFFIX) #endif diff --git a/Crypto/samples/genrsakey/genrsakey.progen b/Crypto/samples/genrsakey/genrsakey.progen index 6b42329a8..c24c6e0fe 100644 --- a/Crypto/samples/genrsakey/genrsakey.progen +++ b/Crypto/samples/genrsakey/genrsakey.progen @@ -4,9 +4,11 @@ vc.project.target = ${vc.project.name} vc.project.type = executable vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 +vc.project.vcpkg = true vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Crypto\\include +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = diff --git a/Crypto/testsuite/TestSuite.progen b/Crypto/testsuite/TestSuite.progen index 242a68ec1..6a5470dc0 100644 --- a/Crypto/testsuite/TestSuite.progen +++ b/Crypto/testsuite/TestSuite.progen @@ -4,14 +4,18 @@ vc.project.target = TestSuite vc.project.type = testsuite vc.project.pocobase = ..\\.. vc.project.platforms = Win32 +vc.project.vcpkg = true vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ${vc.project.pocobase}\\Foundation\\include vc.project.compiler.defines = _CRT_SECURE_NO_WARNINGS +vc.project.compiler.defines.release_shared = OPENSSL_REQUIRE_APPLINK +vc.project.compiler.defines.debug_shared = OPENSSL_REQUIRE_APPLINK +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = -vc.project.linker.dependencies.debug_static_md = -vc.project.linker.dependencies.release_static_md = +vc.project.linker.dependencies.debug_static_md = Crypt32.lib +vc.project.linker.dependencies.release_static_md = Crypt32.lib vc.project.linker.dependencies.debug_static_mt = Crypt32.lib vc.project.linker.dependencies.release_static_mt = Crypt32.lib diff --git a/Crypto/testsuite/src/CryptoTestSuite.cpp b/Crypto/testsuite/src/CryptoTestSuite.cpp index 0e3a16636..3435b3ed5 100644 --- a/Crypto/testsuite/src/CryptoTestSuite.cpp +++ b/Crypto/testsuite/src/CryptoTestSuite.cpp @@ -11,7 +11,7 @@ #include "Poco/Platform.h" // see https://www.openssl.org/docs/faq.html // and https://github.com/openssl/openssl/blob/master/doc/man3/OPENSSL_Applink.pod -#if defined(POCO_OS_FAMILY_WINDOWS) +#if defined(POCO_OS_FAMILY_WINDOWS) && defined(OPENSSL_REQUIRE_APPLINK) #include "openssl/applink.c" #endif #include "CryptoTestSuite.h" diff --git a/Data/MySQL/MySQL.progen b/Data/MySQL/MySQL.progen index 1eea490ae..1c8c107c6 100644 --- a/Data/MySQL/MySQL.progen +++ b/Data/MySQL/MySQL.progen @@ -5,6 +5,7 @@ vc.project.type = library vc.project.pocobase = ..\\.. vc.project.outdir = ${vc.project.pocobase} vc.project.platforms = Win32 +vc.project.vcpkg = true vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ${vc.project.pocobase}\\Foundation\\include; \ @@ -13,6 +14,7 @@ vc.project.compiler.defines = THREADSAFE;__LCC__ vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/Data/MySQL/testsuite/TestSuite.progen b/Data/MySQL/testsuite/TestSuite.progen index a4fc8c077..db36ec693 100644 --- a/Data/MySQL/testsuite/TestSuite.progen +++ b/Data/MySQL/testsuite/TestSuite.progen @@ -4,9 +4,17 @@ vc.project.target = TestSuite vc.project.type = testsuite vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 +vc.project.vcpkg = true vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj mysql = ${vc.project.pocobase}\\mysql vc.project.compiler.include = ${mysql}\\include;${vc.project.pocobase}\\Foundation\\include; \ ${vc.project.pocobase}\\Data\\include -vc.project.linker.dependencies.Win32 = iphlpapi.lib +vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.debug_shared = +vc.project.linker.dependencies.release_shared = +vc.project.linker.dependencies.debug_static_md = Crypt32.lib Secur32.lib shlwapi.lib +vc.project.linker.dependencies.release_static_md = Crypt32.lib Secur32.lib shlwapi.lib +vc.project.linker.dependencies.debug_static_mt = Crypt32.lib Secur32.lib shlwapi.lib +vc.project.linker.dependencies.release_static_mt = Crypt32.lib Secur32.lib shlwapi.lib diff --git a/Data/ODBC/ODBC.progen b/Data/ODBC/ODBC.progen index c4f142f67..c8b2b3628 100644 --- a/Data/ODBC/ODBC.progen +++ b/Data/ODBC/ODBC.progen @@ -12,6 +12,7 @@ vc.project.compiler.defines = THREADSAFE vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = odbc32.lib odbccp32.lib vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/Data/ODBC/testsuite/TestSuite.progen b/Data/ODBC/testsuite/TestSuite.progen index 109665568..91879ce41 100644 --- a/Data/ODBC/testsuite/TestSuite.progen +++ b/Data/ODBC/testsuite/TestSuite.progen @@ -7,4 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\CppUnit\\include;..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\DataTest\\include +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = odbc32.lib odbccp32.lib iphlpapi.lib diff --git a/Data/PostgreSQL/PostgreSQL.progen b/Data/PostgreSQL/PostgreSQL.progen index 9a124e9df..b1d64a4b7 100644 --- a/Data/PostgreSQL/PostgreSQL.progen +++ b/Data/PostgreSQL/PostgreSQL.progen @@ -5,6 +5,7 @@ vc.project.type = library vc.project.pocobase = ..\\.. vc.project.outdir = ${vc.project.pocobase} vc.project.platforms = Win32 +vc.project.vcpkg = true vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ${vc.project.pocobase}\\postgresql\\include; \ @@ -13,6 +14,7 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/Data/PostgreSQL/testsuite/TestSuite.progen b/Data/PostgreSQL/testsuite/TestSuite.progen index cc4c94765..293ee5124 100644 --- a/Data/PostgreSQL/testsuite/TestSuite.progen +++ b/Data/PostgreSQL/testsuite/TestSuite.progen @@ -4,16 +4,18 @@ vc.project.target = TestSuite vc.project.type = testsuite vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 +vc.project.vcpkg = true vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj postgresql = ${vc.project.pocobase}\\postgresql vc.project.compiler.include = ${postgresql}\\include;${vc.project.pocobase}\\Foundation\\include; \ - ${vc.project.pocobase}\\Data\\include + ${vc.project.pocobase}\\Data\\include;..\\..\\..\\Data\\DataTest\\include vc.project.compiler.defines = _CRT_SECURE_NO_WARNINGS -vc.project.linker.dependencies = iphlpapi.lib +vc.project.compiler.additionalOptions = /Zc:__cplusplus +vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib wldap32.lib vc.project.linker.dependencies.debug_shared = vc.project.linker.dependencies.release_shared = -vc.project.linker.dependencies.debug_static_md = -vc.project.linker.dependencies.release_static_md = -vc.project.linker.dependencies.debug_static_mt = -vc.project.linker.dependencies.release_static_mt = +vc.project.linker.dependencies.debug_static_md = Crypt32.lib Secur32.lib +vc.project.linker.dependencies.release_static_md = Crypt32.lib Secur32.lib +vc.project.linker.dependencies.debug_static_mt = Crypt32.lib Secur32.lib +vc.project.linker.dependencies.release_static_mt = Crypt32.lib Secur32.lib diff --git a/Data/SQLite/SQLite.progen b/Data/SQLite/SQLite.progen index 48d7f5f4d..eed02321f 100644 --- a/Data/SQLite/SQLite.progen +++ b/Data/SQLite/SQLite.progen @@ -13,5 +13,6 @@ vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.disableWarnings = 4996;4244;4018 +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/Data/SQLite/testsuite/TestSuite.progen b/Data/SQLite/testsuite/TestSuite.progen index a156305a6..19c65fd01 100644 --- a/Data/SQLite/testsuite/TestSuite.progen +++ b/Data/SQLite/testsuite/TestSuite.progen @@ -7,4 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = iphlpapi.lib diff --git a/Data/samples/Binding/Binding.progen b/Data/samples/Binding/Binding.progen index 3d17f1e88..6781302a2 100644 --- a/Data/samples/Binding/Binding.progen +++ b/Data/samples/Binding/Binding.progen @@ -7,4 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src;..\\..\\..\\Data\\SQLite\\include +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = iphlpapi.lib diff --git a/Data/samples/RecordSet/RecordSet.progen b/Data/samples/RecordSet/RecordSet.progen index 3d17f1e88..6781302a2 100644 --- a/Data/samples/RecordSet/RecordSet.progen +++ b/Data/samples/RecordSet/RecordSet.progen @@ -7,4 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src;..\\..\\..\\Data\\SQLite\\include +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = iphlpapi.lib diff --git a/Data/samples/RowFormatter/RowFormatter.progen b/Data/samples/RowFormatter/RowFormatter.progen index 3d17f1e88..6781302a2 100644 --- a/Data/samples/RowFormatter/RowFormatter.progen +++ b/Data/samples/RowFormatter/RowFormatter.progen @@ -7,4 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src;..\\..\\..\\Data\\SQLite\\include +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = iphlpapi.lib diff --git a/Data/samples/Tuple/Tuple.progen b/Data/samples/Tuple/Tuple.progen index 3d17f1e88..6781302a2 100644 --- a/Data/samples/Tuple/Tuple.progen +++ b/Data/samples/Tuple/Tuple.progen @@ -7,4 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src;..\\..\\..\\Data\\SQLite\\include +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = iphlpapi.lib diff --git a/Data/samples/TypeHandler/TypeHandler.progen b/Data/samples/TypeHandler/TypeHandler.progen index ca2cc01c4..92d852fb2 100644 --- a/Data/samples/TypeHandler/TypeHandler.progen +++ b/Data/samples/TypeHandler/TypeHandler.progen @@ -7,4 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src;..\\..\\..\\Data\\SQLite\\include +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Data/samples/WebNotifier/WebNotifier.progen b/Data/samples/WebNotifier/WebNotifier.progen index d3a2dbca0..7cd65de84 100644 --- a/Data/samples/WebNotifier/WebNotifier.progen +++ b/Data/samples/WebNotifier/WebNotifier.progen @@ -7,4 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Data\\include;..\\..\\..\\Data\\SQLParser;..\\Data\\SQLParser\\src;..\\..\\..\\Data\\SQLite\\include;..\\..\\..\\Net\\include +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib diff --git a/Data/testsuite/TestSuite_NO_SQL_PARSER.progen b/Data/testsuite/TestSuite_NO_SQL_PARSER.progen index 069754a66..d5d307e47 100644 --- a/Data/testsuite/TestSuite_NO_SQL_PARSER.progen +++ b/Data/testsuite/TestSuite_NO_SQL_PARSER.progen @@ -7,4 +7,5 @@ vc.project.pocobase = ..\\.. vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.compiler.include = ..\\src;..\\..\\Foundation\\include +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = iphlpapi.lib diff --git a/Foundation/include/Poco/Config.h b/Foundation/include/Poco/Config.h index 66a50fdd1..cd01069d7 100644 --- a/Foundation/include/Poco/Config.h +++ b/Foundation/include/Poco/Config.h @@ -171,33 +171,6 @@ // #define POCO_LOG_DEBUG -// OpenSSL on Windows -// -// Poco has its own OpenSSL build system. -// See -// for details. -// -// These options are Windows only. -// -// To disable the use of Poco-provided OpenSSL binaries, -// define POCO_EXTERNAL_OPENSSL. -// -// Possible values: -// POCO_EXTERNAL_OPENSSL_SLPRO: -// Automatically link OpenSSL libraries from OpenSSL Windows installer provided -// by Shining Light Productions -// The (global) library search path must be set accordingly. -// POCO_EXTERNAL_OPENSSL_DEFAULT: -// Automatically link OpenSSL libraries from standard OpenSSL Windows build. -// The (global) library search path must be set accordingly. -// empty or other value: -// Do not link any OpenSSL libraries automatically. You will have to edit the -// Visual C++ project files for Crypto and NetSSL_OpenSSL. -#if !defined(POCO_EXTERNAL_OPENSSL) && defined(POCO_EXTERNAL_OPENSSL_SLPRO) - #define POCO_EXTERNAL_OPENSSL POCO_EXTERNAL_OPENSSL_SLPRO -#endif - - // Define to prevent changing the suffix for shared libraries // to "d.so", "d.dll", etc. for _DEBUG builds in Poco::SharedLibrary. // #define POCO_NO_SHARED_LIBRARY_DEBUG_SUFFIX diff --git a/JWT/JWT.progen b/JWT/JWT.progen index 70f081e9e..ce1e8627d 100644 --- a/JWT/JWT.progen +++ b/JWT/JWT.progen @@ -5,6 +5,7 @@ vc.project.type = library vc.project.pocobase = .. vc.project.outdir = ${vc.project.pocobase} vc.project.platforms = Win32 +vc.project.vcpkg = true vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\Foundation\\include;..\\JSON\\include;..\\Crypto\\include diff --git a/JWT/testsuite/TestSuite.progen b/JWT/testsuite/TestSuite.progen index 72c40da85..83b5dc510 100644 --- a/JWT/testsuite/TestSuite.progen +++ b/JWT/testsuite/TestSuite.progen @@ -4,6 +4,7 @@ vc.project.target = TestSuite vc.project.type = testsuite vc.project.pocobase = ..\\.. vc.project.platforms = Win32 +vc.project.vcpkg = true vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\JSON\\include;..\\..\\Crypto\\include diff --git a/NetSSL_OpenSSL/CMakeLists.txt b/NetSSL_OpenSSL/CMakeLists.txt index eb7f56227..b83fe9fa1 100644 --- a/NetSSL_OpenSSL/CMakeLists.txt +++ b/NetSSL_OpenSSL/CMakeLists.txt @@ -29,7 +29,7 @@ target_include_directories(NetSSL PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src ) -if(MSVC AND POCO_DISABLE_INTERNAL_OPENSSL AND OPENSSL_USE_STATIC_LIBS) +if(MSVC AND OPENSSL_USE_STATIC_LIBS) target_link_libraries(NetSSL PUBLIC ws2_32.lib Crypt32.lib) endif() diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL.progen b/NetSSL_OpenSSL/NetSSL_OpenSSL.progen index 507316953..b6fb1f104 100644 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL.progen +++ b/NetSSL_OpenSSL/NetSSL_OpenSSL.progen @@ -5,6 +5,7 @@ vc.project.type = library vc.project.pocobase = .. vc.project.outdir = ${vc.project.pocobase} vc.project.platforms = Win32 +vc.project.vcpkg = true vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\Foundation\\include;..\\Net\\include;..\\Util\\include;..\\Crypto\\include diff --git a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer.progen b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer.progen index 6c28cacf4..6d768e64a 100644 --- a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer.progen +++ b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer.progen @@ -4,6 +4,7 @@ vc.project.target = ${vc.project.name} vc.project.type = executable vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 +vc.project.vcpkg = true vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include diff --git a/NetSSL_OpenSSL/samples/Mail/Mail.progen b/NetSSL_OpenSSL/samples/Mail/Mail.progen index 6c28cacf4..6d768e64a 100644 --- a/NetSSL_OpenSSL/samples/Mail/Mail.progen +++ b/NetSSL_OpenSSL/samples/Mail/Mail.progen @@ -4,6 +4,7 @@ vc.project.target = ${vc.project.name} vc.project.type = executable vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 +vc.project.vcpkg = true vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include diff --git a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP.progen b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP.progen index 6c28cacf4..6d768e64a 100644 --- a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP.progen +++ b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP.progen @@ -4,6 +4,7 @@ vc.project.target = ${vc.project.name} vc.project.type = executable vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 +vc.project.vcpkg = true vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include diff --git a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient.progen b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient.progen index aab070e1a..6e3d94148 100644 --- a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient.progen +++ b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient.progen @@ -4,6 +4,7 @@ vc.project.target = ${vc.project.name} vc.project.type = executable vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 +vc.project.vcpkg = true vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\JSON\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include diff --git a/NetSSL_OpenSSL/samples/download/download.progen b/NetSSL_OpenSSL/samples/download/download.progen index 6c28cacf4..6d768e64a 100644 --- a/NetSSL_OpenSSL/samples/download/download.progen +++ b/NetSSL_OpenSSL/samples/download/download.progen @@ -4,6 +4,7 @@ vc.project.target = ${vc.project.name} vc.project.type = executable vc.project.pocobase = ..\\..\\.. vc.project.platforms = Win32 +vc.project.vcpkg = true vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\NetSSL_OpenSSL\\include;..\\..\\..\\Crypto\\include diff --git a/NetSSL_OpenSSL/testsuite/TestSuite.progen b/NetSSL_OpenSSL/testsuite/TestSuite.progen index 61b90bc37..82305fe94 100644 --- a/NetSSL_OpenSSL/testsuite/TestSuite.progen +++ b/NetSSL_OpenSSL/testsuite/TestSuite.progen @@ -4,6 +4,7 @@ vc.project.target = TestSuite vc.project.type = testsuite vc.project.pocobase = ..\\.. vc.project.platforms = Win32 +vc.project.vcpkg = true vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\XML\\include;..\\..\\Util\\include;..\\..\\Net\\include;..\\..\\Crypto\\include diff --git a/NetSSL_OpenSSL/testsuite/src/WebSocketTest.cpp b/NetSSL_OpenSSL/testsuite/src/WebSocketTest.cpp index 284c33297..bf37e4256 100644 --- a/NetSSL_OpenSSL/testsuite/src/WebSocketTest.cpp +++ b/NetSSL_OpenSSL/testsuite/src/WebSocketTest.cpp @@ -24,6 +24,7 @@ #include "Poco/Net/NetException.h" #include "Poco/Thread.h" + using Poco::Net::HTTPSClientSession; using Poco::Net::HTTPRequest; using Poco::Net::HTTPResponse; From f0e222450c8db50e5c88eb9231e3cd18655bc66a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Wed, 3 Apr 2024 09:39:36 +0200 Subject: [PATCH 385/395] enh(build): progen.ps1 improvements --- progen.ps1 | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/progen.ps1 b/progen.ps1 index 7547de652..715ec3858 100644 --- a/progen.ps1 +++ b/progen.ps1 @@ -113,7 +113,12 @@ function InvokeProgenSamples Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" $sampleProgenPath = "$($poco_base)\$($componentDir)\samples\$($sampleName)\$($_)" } - InvokeProcess $progenPath "/tool=vs$vs $sampleProgenPath" + if (Test-Path -Path $sampleProgenPath) { + InvokeProcess $progenPath "/tool=vs$vs $sampleProgenPath" + } + else { + Write-Host "NOTICE: No .progen file for $sampleName" + } } } @@ -161,19 +166,27 @@ function InvokeProgenComponents([string] $type) InvokeProcess $progenPath "/tool=vs$vs $componentProgenPath" } ElseIf ($tests -and ($type -eq "test")) { - $componentTestProgenPath = "$poco_base\$componentDir\testsuite\TestSuite.Progen" - Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" - Write-Host "| Running Progen for $componentDir\testsuite" - Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" - InvokeProcess $progenPath "/tool=vs$vs $componentTestProgenPath" + if (Test-Path -Path "$poco_base\$componentDir\testsuite") { + $componentTestProgenPath = "$poco_base\$componentDir\testsuite\TestSuite.Progen" + if (Test-Path -Path $componentTestProgenPath) { + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + Write-Host "| Running Progen for $componentDir\testsuite" + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + InvokeProcess $progenPath "/tool=vs$vs $componentTestProgenPath" - if ($component -eq "Data") # special case for Data - { - $componentTestProgenPath = "$poco_base\$componentDir\DataTest\DataTest.progen" - Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" - Write-Host "| Running Progen for $componentDir\DataTest" - Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" - InvokeProcess $progenPath "/tool=vs$vs $componentTestProgenPath" + if ($component -eq "Data") # special case for Data + { + $componentTestProgenPath = "$poco_base\$componentDir\DataTest\DataTest.progen" + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + Write-Host "| Running Progen for $componentDir\DataTest" + Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" + InvokeProcess $progenPath "/tool=vs$vs $componentTestProgenPath" + + } + } + Else { + Write-Host "NOTICE: Missing .progen file for $componentDir\testsuite" + } } } ElseIf ($samples -and ($type -eq "sample")) { From c8bb5b8cac193ae16762f98331678a655b3185ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Wed, 3 Apr 2024 12:33:13 +0200 Subject: [PATCH 386/395] chore(build): re-generated VS project files --- .gitignore | 2 + ActiveRecord/ActiveRecord_vs160.vcxproj | 2 +- .../ActiveRecord_vs160.vcxproj.filters | 6 +- ActiveRecord/ActiveRecord_vs170.vcxproj | 2 +- .../ActiveRecord_vs170.vcxproj.filters | 6 +- ActiveRecord/Compiler/Compiler_vs160.vcxproj | 2 +- .../Compiler/Compiler_vs160.vcxproj.filters | 4 +- ActiveRecord/Compiler/Compiler_vs170.vcxproj | 2 +- .../Compiler/Compiler_vs170.vcxproj.filters | 4 +- .../testsuite/TestSuite_vs160.vcxproj | 2 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 8 +- .../testsuite/TestSuite_vs170.vcxproj | 38 +- .../testsuite/TestSuite_vs170.vcxproj.filters | 8 +- CppParser/CppParser_vs160.vcxproj | 2 +- CppParser/CppParser_vs160.vcxproj.filters | 18 +- CppParser/CppParser_vs170.vcxproj | 2 +- CppParser/CppParser_vs170.vcxproj.filters | 18 +- CppParser/testsuite/TestSuite_vs160.vcxproj | 2 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 22 +- CppParser/testsuite/TestSuite_vs170.vcxproj | 96 +- .../testsuite/TestSuite_vs170.vcxproj.filters | 22 +- CppUnit/CppUnit_vs160.vcxproj | 2 +- CppUnit/CppUnit_vs160.vcxproj.filters | 4 +- CppUnit/CppUnit_vs170.vcxproj | 2 +- CppUnit/CppUnit_vs170.vcxproj.filters | 4 +- Crypto/Crypto_vs160.vcxproj | 65 +- Crypto/Crypto_vs160.vcxproj.filters | 36 +- Crypto/Crypto_vs170.vcxproj | 95 +- Crypto/Crypto_vs170.vcxproj.filters | 36 +- .../samples/genrsakey/genrsakey_vs160.vcxproj | 65 +- .../genrsakey/genrsakey_vs160.vcxproj.filters | 4 +- .../samples/genrsakey/genrsakey_vs170.vcxproj | 457 ++++++- .../genrsakey/genrsakey_vs170.vcxproj.filters | 4 +- Crypto/samples/samples_vs170.sln | 24 + Crypto/testsuite/TestSuite_vs160.vcxproj | 81 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 16 +- Crypto/testsuite/TestSuite_vs170.vcxproj | 224 +++- .../testsuite/TestSuite_vs170.vcxproj.filters | 16 +- Data/DataTest/DataTest_vs160.vcxproj | 2 +- Data/DataTest/DataTest_vs160.vcxproj.filters | 4 +- Data/DataTest/DataTest_vs170.vcxproj | 114 +- Data/DataTest/DataTest_vs170.vcxproj.filters | 4 +- Data/Data_vs160.vcxproj | 2 +- Data/Data_vs160.vcxproj.filters | 42 +- Data/Data_vs170.sln | 276 ++-- Data/Data_vs170.vcxproj | 2 +- Data/Data_vs170.vcxproj.filters | 42 +- Data/MySQL/MySQL_vs160.vcxproj | 65 +- Data/MySQL/MySQL_vs170.vcxproj | 95 +- Data/MySQL/testsuite/TestSuite_vs160.vcxproj | 89 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 16 +- Data/MySQL/testsuite/TestSuite_vs170.vcxproj | 211 +++- .../testsuite/TestSuite_vs170.vcxproj.filters | 16 +- Data/ODBC/ODBC_vs160.vcxproj | 14 +- Data/ODBC/ODBC_vs160.vcxproj.filters | 6 +- Data/ODBC/ODBC_vs170.vcxproj | 20 +- Data/ODBC/ODBC_vs170.vcxproj.filters | 6 +- Data/ODBC/testsuite/TestSuite_vs160.vcxproj | 14 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 16 +- Data/ODBC/testsuite/TestSuite_vs170.vcxproj | 56 +- .../testsuite/TestSuite_vs170.vcxproj.filters | 16 +- Data/PostgreSQL/PostgreSQL_vs160.vcxproj | 65 +- Data/PostgreSQL/PostgreSQL_vs170.vcxproj | 95 +- .../testsuite/TestSuite_vs160.vcxproj | 113 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 16 +- .../testsuite/TestSuite_vs170.vcxproj | 211 +++- .../testsuite/TestSuite_vs170.vcxproj.filters | 16 +- Data/SQLite/SQLite_vs160.vcxproj | 14 +- Data/SQLite/SQLite_vs160.vcxproj.filters | 12 +- Data/SQLite/SQLite_vs170.vcxproj | 20 +- Data/SQLite/SQLite_vs170.vcxproj.filters | 12 +- Data/SQLite/testsuite/TestSuite_vs160.vcxproj | 14 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 16 +- Data/SQLite/testsuite/TestSuite_vs170.vcxproj | 56 +- .../testsuite/TestSuite_vs170.vcxproj.filters | 16 +- Data/samples/Binding/Binding_vs160.vcxproj | 14 +- .../Binding/Binding_vs160.vcxproj.filters | 4 +- Data/samples/Binding/Binding_vs170.vcxproj | 56 +- .../Binding/Binding_vs170.vcxproj.filters | 4 +- .../samples/RecordSet/RecordSet_vs160.vcxproj | 14 +- .../RecordSet/RecordSet_vs160.vcxproj.filters | 4 +- .../samples/RecordSet/RecordSet_vs170.vcxproj | 56 +- .../RecordSet/RecordSet_vs170.vcxproj.filters | 4 +- .../RowFormatter/RowFormatter_vs160.vcxproj | 14 +- .../RowFormatter_vs160.vcxproj.filters | 4 +- .../RowFormatter/RowFormatter_vs170.vcxproj | 56 +- .../RowFormatter_vs170.vcxproj.filters | 4 +- Data/samples/Tuple/Tuple_vs160.vcxproj | 14 +- .../samples/Tuple/Tuple_vs160.vcxproj.filters | 4 +- Data/samples/Tuple/Tuple_vs170.vcxproj | 56 +- .../samples/Tuple/Tuple_vs170.vcxproj.filters | 4 +- .../TypeHandler/TypeHandler_vs160.vcxproj | 14 +- .../TypeHandler_vs160.vcxproj.filters | 4 +- .../TypeHandler/TypeHandler_vs170.vcxproj | 56 +- .../TypeHandler_vs170.vcxproj.filters | 4 +- .../WebNotifier/WebNotifier_vs160.vcxproj | 14 +- .../WebNotifier_vs160.vcxproj.filters | 4 +- .../WebNotifier/WebNotifier_vs170.vcxproj | 56 +- .../WebNotifier_vs170.vcxproj.filters | 4 +- Data/samples/samples_vs170.sln | 114 ++ Data/testsuite/TestSuite_vs160.vcxproj | 2 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 34 +- Data/testsuite/TestSuite_vs170.vcxproj | 2 +- .../testsuite/TestSuite_vs170.vcxproj.filters | 34 +- Encodings/Encodings_vs160.vcxproj | 2 +- Encodings/Encodings_vs160.vcxproj.filters | 6 +- Encodings/Encodings_vs170.vcxproj | 2 +- Encodings/Encodings_vs170.vcxproj.filters | 6 +- .../TextConverter/TextConverter_vs160.vcxproj | 2 +- .../TextConverter_vs160.vcxproj.filters | 4 +- .../TextConverter/TextConverter_vs170.vcxproj | 364 +++++- .../TextConverter_vs170.vcxproj.filters | 4 +- Encodings/samples/samples_vs170.sln | 24 + Encodings/testsuite/TestSuite_vs160.vcxproj | 2 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 4 +- Encodings/testsuite/TestSuite_vs170.vcxproj | 92 +- .../testsuite/TestSuite_vs170.vcxproj.filters | 4 +- .../ActiveMethod/ActiveMethod_vs160.vcxproj | 55 +- .../ActiveMethod_vs160.vcxproj.filters | 4 +- .../ActiveMethod/ActiveMethod_vs170.vcxproj | 364 +++++- .../ActiveMethod_vs170.vcxproj.filters | 4 +- .../samples/Activity/Activity_vs160.vcxproj | 55 +- .../Activity/Activity_vs160.vcxproj.filters | 4 +- .../samples/Activity/Activity_vs170.vcxproj | 364 +++++- .../Activity/Activity_vs170.vcxproj.filters | 4 +- .../BinaryReaderWriter_vs160.vcxproj | 67 +- .../BinaryReaderWriter_vs160.vcxproj.filters | 4 +- .../BinaryReaderWriter_vs170.vcxproj | 382 +++++- .../BinaryReaderWriter_vs170.vcxproj.filters | 4 +- .../samples/DateTime/DateTime_vs160.vcxproj | 67 +- .../DateTime/DateTime_vs160.vcxproj.filters | 4 +- .../samples/DateTime/DateTime_vs170.vcxproj | 382 +++++- .../DateTime/DateTime_vs170.vcxproj.filters | 4 +- .../LineEndingConverter_vs160.vcxproj | 67 +- .../LineEndingConverter_vs160.vcxproj.filters | 4 +- .../LineEndingConverter_vs170.vcxproj | 382 +++++- .../LineEndingConverter_vs170.vcxproj.filters | 4 +- .../LogRotation/LogRotation_vs160.vcxproj | 67 +- .../LogRotation_vs160.vcxproj.filters | 4 +- .../LogRotation/LogRotation_vs170.vcxproj | 382 +++++- .../LogRotation_vs170.vcxproj.filters | 4 +- .../samples/Logger/Logger_vs160.vcxproj | 67 +- .../Logger/Logger_vs160.vcxproj.filters | 4 +- .../samples/Logger/Logger_vs170.vcxproj | 382 +++++- .../Logger/Logger_vs170.vcxproj.filters | 4 +- .../NotificationQueue_vs160.vcxproj | 67 +- .../NotificationQueue_vs160.vcxproj.filters | 4 +- .../NotificationQueue_vs170.vcxproj | 382 +++++- .../NotificationQueue_vs170.vcxproj.filters | 4 +- .../StringTokenizer_vs160.vcxproj | 67 +- .../StringTokenizer_vs160.vcxproj.filters | 4 +- .../StringTokenizer_vs170.vcxproj | 382 +++++- .../StringTokenizer_vs170.vcxproj.filters | 4 +- Foundation/samples/Timer/Timer_vs160.vcxproj | 67 +- .../samples/Timer/Timer_vs160.vcxproj.filters | 4 +- Foundation/samples/Timer/Timer_vs170.vcxproj | 382 +++++- .../samples/Timer/Timer_vs170.vcxproj.filters | 4 +- Foundation/samples/URI/URI_vs160.vcxproj | 67 +- .../samples/URI/URI_vs160.vcxproj.filters | 4 +- Foundation/samples/URI/URI_vs170.vcxproj | 382 +++++- .../samples/URI/URI_vs170.vcxproj.filters | 4 +- .../base64decode/base64decode_vs160.vcxproj | 67 +- .../base64decode_vs160.vcxproj.filters | 4 +- .../base64decode/base64decode_vs170.vcxproj | 382 +++++- .../base64decode_vs170.vcxproj.filters | 4 +- .../base64encode/base64encode_vs160.vcxproj | 67 +- .../base64encode_vs160.vcxproj.filters | 4 +- .../base64encode/base64encode_vs170.vcxproj | 382 +++++- .../base64encode_vs170.vcxproj.filters | 4 +- .../samples/deflate/deflate_vs160.vcxproj | 67 +- .../deflate/deflate_vs160.vcxproj.filters | 4 +- .../samples/deflate/deflate_vs170.vcxproj | 382 +++++- .../deflate/deflate_vs170.vcxproj.filters | 4 +- Foundation/samples/dir/dir_vs160.vcxproj | 67 +- .../samples/dir/dir_vs160.vcxproj.filters | 4 +- Foundation/samples/dir/dir_vs170.vcxproj | 382 +++++- .../samples/dir/dir_vs170.vcxproj.filters | 4 +- Foundation/samples/grep/grep_vs160.vcxproj | 67 +- .../samples/grep/grep_vs160.vcxproj.filters | 4 +- Foundation/samples/grep/grep_vs170.vcxproj | 382 +++++- .../samples/grep/grep_vs170.vcxproj.filters | 4 +- .../samples/hmacmd5/hmacmd5_vs160.vcxproj | 67 +- .../hmacmd5/hmacmd5_vs160.vcxproj.filters | 4 +- .../samples/hmacmd5/hmacmd5_vs170.vcxproj | 382 +++++- .../hmacmd5/hmacmd5_vs170.vcxproj.filters | 4 +- .../samples/inflate/inflate_vs160.vcxproj | 67 +- .../inflate/inflate_vs160.vcxproj.filters | 4 +- .../samples/inflate/inflate_vs170.vcxproj | 382 +++++- .../inflate/inflate_vs170.vcxproj.filters | 4 +- Foundation/samples/md5/md5_vs160.vcxproj | 67 +- .../samples/md5/md5_vs160.vcxproj.filters | 4 +- Foundation/samples/md5/md5_vs170.vcxproj | 382 +++++- .../samples/md5/md5_vs170.vcxproj.filters | 4 +- Foundation/samples/samples_vs170.sln | 366 ++++++ .../samples/uuidgen/uuidgen_vs160.vcxproj | 67 +- .../uuidgen/uuidgen_vs160.vcxproj.filters | 4 +- .../samples/uuidgen/uuidgen_vs170.vcxproj | 382 +++++- .../uuidgen/uuidgen_vs170.vcxproj.filters | 4 +- JSON/JSON_vs160.vcxproj | 2 +- JSON/JSON_vs160.vcxproj.filters | 4 +- JSON/JSON_vs170.vcxproj | 2 +- JSON/JSON_vs170.vcxproj.filters | 4 +- .../samples/Benchmark/Benchmark_vs160.vcxproj | 2 +- .../Benchmark/Benchmark_vs160.vcxproj.filters | 4 +- .../samples/Benchmark/Benchmark_vs170.vcxproj | 2 +- .../Benchmark/Benchmark_vs170.vcxproj.filters | 4 +- JSON/samples/samples_vs170.sln | 24 + JSON/testsuite/TestSuite_vs160.vcxproj | 2 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 4 +- JSON/testsuite/TestSuite_vs170.vcxproj | 184 +-- .../testsuite/TestSuite_vs170.vcxproj.filters | 4 +- JWT/JWT_vs160.vcxproj | 53 +- JWT/JWT_vs160.vcxproj.filters | 4 +- JWT/JWT_vs170.vcxproj | 77 +- JWT/JWT_vs170.vcxproj.filters | 4 +- JWT/testsuite/TestSuite_vs160.vcxproj | 53 +- JWT/testsuite/TestSuite_vs160.vcxproj.filters | 4 +- JWT/testsuite/TestSuite_vs170.vcxproj | 189 ++- JWT/testsuite/TestSuite_vs170.vcxproj.filters | 4 +- MongoDB/MongoDB_vs160.vcxproj | 2 +- MongoDB/MongoDB_vs160.vcxproj.filters | 4 +- MongoDB/MongoDB_vs170.vcxproj | 2 +- MongoDB/MongoDB_vs170.vcxproj.filters | 4 +- .../SQLToMongo/SQLToMongo_vs160.vcxproj | 2 +- .../SQLToMongo_vs160.vcxproj.filters | 4 +- .../SQLToMongo/SQLToMongo_vs170.vcxproj | 382 +++++- .../SQLToMongo_vs170.vcxproj.filters | 4 +- MongoDB/samples/samples_vs170.sln | 24 + MongoDB/testsuite/TestSuite_vs160.vcxproj | 2 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 4 +- MongoDB/testsuite/TestSuite_vs170.vcxproj | 113 +- .../testsuite/TestSuite_vs170.vcxproj.filters | 4 +- Net/Net_vs160.vcxproj | 2 +- Net/Net_vs160.vcxproj.filters | 108 +- Net/Net_vs170.vcxproj | 2 +- Net/Net_vs170.vcxproj.filters | 108 +- .../EchoServer/EchoServer_vs160.vcxproj | 2 +- .../EchoServer_vs160.vcxproj.filters | 4 +- .../EchoServer/EchoServer_vs170.vcxproj | 382 +++++- .../EchoServer_vs170.vcxproj.filters | 4 +- .../HTTPFormServer_vs160.vcxproj | 2 +- .../HTTPFormServer_vs160.vcxproj.filters | 4 +- .../HTTPFormServer_vs170.vcxproj | 382 +++++- .../HTTPFormServer_vs170.vcxproj.filters | 4 +- .../HTTPLoadTest/HTTPLoadTest_vs160.vcxproj | 2 +- .../HTTPLoadTest_vs160.vcxproj.filters | 2 +- .../HTTPLoadTest/HTTPLoadTest_vs170.vcxproj | 382 +++++- .../HTTPLoadTest_vs170.vcxproj.filters | 2 +- .../HTTPTimeServer_vs160.vcxproj | 2 +- .../HTTPTimeServer_vs160.vcxproj.filters | 4 +- .../HTTPTimeServer_vs170.vcxproj | 382 +++++- .../HTTPTimeServer_vs170.vcxproj.filters | 4 +- Net/samples/Mail/Mail_vs160.vcxproj | 2 +- Net/samples/Mail/Mail_vs160.vcxproj.filters | 2 +- Net/samples/Mail/Mail_vs170.vcxproj | 382 +++++- Net/samples/Mail/Mail_vs170.vcxproj.filters | 2 +- Net/samples/Ping/Ping_vs160.vcxproj | 2 +- Net/samples/Ping/Ping_vs160.vcxproj.filters | 4 +- Net/samples/Ping/Ping_vs170.vcxproj | 382 +++++- Net/samples/Ping/Ping_vs170.vcxproj.filters | 4 +- .../SMTPLogger/SMTPLogger_vs160.vcxproj | 2 +- .../SMTPLogger_vs160.vcxproj.filters | 2 +- .../SMTPLogger/SMTPLogger_vs170.vcxproj | 382 +++++- .../SMTPLogger_vs170.vcxproj.filters | 2 +- .../TimeServer/TimeServer_vs160.vcxproj | 2 +- .../TimeServer_vs160.vcxproj.filters | 4 +- .../TimeServer/TimeServer_vs170.vcxproj | 382 +++++- .../TimeServer_vs170.vcxproj.filters | 4 +- .../WebSocketServer_vs160.vcxproj | 2 +- .../WebSocketServer_vs160.vcxproj.filters | 2 +- .../WebSocketServer_vs170.vcxproj | 382 +++++- .../WebSocketServer_vs170.vcxproj.filters | 2 +- Net/samples/dict/dict_vs160.vcxproj | 2 +- Net/samples/dict/dict_vs160.vcxproj.filters | 2 +- Net/samples/dict/dict_vs170.vcxproj | 382 +++++- Net/samples/dict/dict_vs170.vcxproj.filters | 2 +- Net/samples/download/download_vs160.vcxproj | 2 +- .../download/download_vs160.vcxproj.filters | 2 +- Net/samples/download/download_vs170.vcxproj | 382 +++++- .../download/download_vs170.vcxproj.filters | 2 +- Net/samples/httpget/httpget_vs160.vcxproj | 2 +- .../httpget/httpget_vs160.vcxproj.filters | 2 +- Net/samples/httpget/httpget_vs170.vcxproj | 382 +++++- .../httpget/httpget_vs170.vcxproj.filters | 2 +- Net/samples/ifconfig/ifconfig_vs160.vcxproj | 2 +- .../ifconfig/ifconfig_vs160.vcxproj.filters | 2 +- Net/samples/ifconfig/ifconfig_vs170.vcxproj | 382 +++++- .../ifconfig/ifconfig_vs170.vcxproj.filters | 2 +- Net/samples/samples_vs170.sln | 1121 ++++++++--------- Net/samples/tcpclient/tcpclient_vs160.vcxproj | 2 +- .../tcpclient/tcpclient_vs160.vcxproj.filters | 2 +- Net/samples/tcpclient/tcpclient_vs170.vcxproj | 2 +- .../tcpclient/tcpclient_vs170.vcxproj.filters | 2 +- Net/samples/tcpserver/tcpserver_vs160.vcxproj | 2 +- .../tcpserver/tcpserver_vs160.vcxproj.filters | 2 +- Net/samples/tcpserver/tcpserver_vs170.vcxproj | 2 +- .../tcpserver/tcpserver_vs170.vcxproj.filters | 2 +- Net/testsuite/TestSuite_vs160.vcxproj | 2 +- Net/testsuite/TestSuite_vs160.vcxproj.filters | 112 +- Net/testsuite/TestSuite_vs170.vcxproj | 208 ++- Net/testsuite/TestSuite_vs170.vcxproj.filters | 112 +- NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj | 53 +- .../NetSSL_OpenSSL_vs160.vcxproj.filters | 30 +- NetSSL_OpenSSL/NetSSL_OpenSSL_vs170.vcxproj | 77 +- .../NetSSL_OpenSSL_vs170.vcxproj.filters | 30 +- .../HTTPSTimeServer_vs160.vcxproj | 53 +- .../HTTPSTimeServer_vs160.vcxproj.filters | 4 +- .../HTTPSTimeServer_vs170.vcxproj | 457 ++++++- .../HTTPSTimeServer_vs170.vcxproj.filters | 4 +- .../samples/Mail/Mail_vs160.vcxproj | 53 +- .../samples/Mail/Mail_vs160.vcxproj.filters | 2 +- .../samples/Mail/Mail_vs170.vcxproj | 457 ++++++- .../samples/Mail/Mail_vs170.vcxproj.filters | 2 +- .../SetSourceIP/SetSourceIP_vs160.vcxproj | 53 +- .../SetSourceIP_vs160.vcxproj.filters | 2 +- .../SetSourceIP/SetSourceIP_vs170.vcxproj | 457 ++++++- .../SetSourceIP_vs170.vcxproj.filters | 2 +- .../TwitterClient/TwitterClient_vs160.vcxproj | 53 +- .../TwitterClient_vs160.vcxproj.filters | 4 +- .../TwitterClient/TwitterClient_vs170.vcxproj | 459 ++++++- .../TwitterClient_vs170.vcxproj.filters | 4 +- .../samples/download/download_vs160.vcxproj | 53 +- .../download/download_vs160.vcxproj.filters | 2 +- .../samples/download/download_vs170.vcxproj | 457 ++++++- .../download/download_vs170.vcxproj.filters | 2 +- NetSSL_OpenSSL/samples/samples_vs170.sln | 96 ++ .../testsuite/TestSuite_vs160.vcxproj | 53 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 46 +- .../testsuite/TestSuite_vs170.vcxproj | 209 ++- .../testsuite/TestSuite_vs170.vcxproj.filters | 46 +- NetSSL_Win/NetSSL_Win_vs160.vcxproj | 2 +- NetSSL_Win/NetSSL_Win_vs160.vcxproj.filters | 24 +- NetSSL_Win/NetSSL_Win_vs170.vcxproj | 2 +- NetSSL_Win/NetSSL_Win_vs170.vcxproj.filters | 24 +- .../HTTPSTimeServer_vs160.vcxproj | 2 +- .../HTTPSTimeServer_vs160.vcxproj.filters | 4 +- .../HTTPSTimeServer_vs170.vcxproj | 382 +++++- .../HTTPSTimeServer_vs170.vcxproj.filters | 4 +- NetSSL_Win/samples/Mail/Mail_vs160.vcxproj | 2 +- .../samples/Mail/Mail_vs160.vcxproj.filters | 2 +- NetSSL_Win/samples/Mail/Mail_vs170.vcxproj | 382 +++++- .../samples/Mail/Mail_vs170.vcxproj.filters | 2 +- .../samples/download/download_vs160.vcxproj | 2 +- .../download/download_vs160.vcxproj.filters | 2 +- .../samples/download/download_vs170.vcxproj | 382 +++++- .../download/download_vs170.vcxproj.filters | 2 +- NetSSL_Win/samples/samples_vs170.sln | 60 + NetSSL_Win/testsuite/TestSuite_vs160.vcxproj | 2 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 34 +- NetSSL_Win/testsuite/TestSuite_vs170.vcxproj | 124 +- .../testsuite/TestSuite_vs170.vcxproj.filters | 34 +- PDF/PDF_vs160.vcxproj | 2 +- PDF/PDF_vs160.vcxproj.filters | 24 +- PDF/PDF_vs170.vcxproj | 2 +- PDF/PDF_vs170.vcxproj.filters | 24 +- PDF/samples/Image/Image_vs160.vcxproj | 2 +- PDF/samples/Image/Image_vs160.vcxproj.filters | 4 +- PDF/samples/Image/Image_vs170.vcxproj | 380 +++++- PDF/samples/Image/Image_vs170.vcxproj.filters | 4 +- PDF/samples/Template/Template_vs160.vcxproj | 2 +- .../Template/Template_vs160.vcxproj.filters | 4 +- PDF/samples/Template/Template_vs170.vcxproj | 380 +++++- .../Template/Template_vs170.vcxproj.filters | 4 +- PDF/samples/Text/Text_vs160.vcxproj | 2 +- PDF/samples/Text/Text_vs160.vcxproj.filters | 4 +- PDF/samples/Text/Text_vs170.vcxproj | 380 +++++- PDF/samples/Text/Text_vs170.vcxproj.filters | 4 +- PDF/samples/samples_vs170.sln | 60 + PDF/testsuite/TestSuite_vs160.vcxproj | 2 +- PDF/testsuite/TestSuite_vs160.vcxproj.filters | 16 +- PDF/testsuite/TestSuite_vs170.vcxproj | 110 +- PDF/testsuite/TestSuite_vs170.vcxproj.filters | 16 +- .../File2Page/File2Page_vs160.vcxproj | 2 +- .../File2Page/File2Page_vs160.vcxproj.filters | 4 +- .../File2Page/File2Page_vs170.vcxproj | 2 +- .../File2Page/File2Page_vs170.vcxproj.filters | 4 +- PageCompiler/PageCompiler_vs160.vcxproj | 2 +- .../PageCompiler_vs160.vcxproj.filters | 6 +- PageCompiler/PageCompiler_vs170.vcxproj | 2 +- .../PageCompiler_vs170.vcxproj.filters | 6 +- .../HTTPTimeServer_vs160.vcxproj | 2 +- .../HTTPTimeServer_vs160.vcxproj.filters | 6 +- .../HTTPTimeServer_vs170.vcxproj | 384 +++++- .../HTTPTimeServer_vs170.vcxproj.filters | 6 +- PageCompiler/samples/samples_vs170.sln | 24 + PocoDoc/PocoDoc_vs160.vcxproj | 2 +- PocoDoc/PocoDoc_vs160.vcxproj.filters | 12 +- PocoDoc/PocoDoc_vs170.vcxproj | 2 +- PocoDoc/PocoDoc_vs170.vcxproj.filters | 12 +- ProGen/ProGen_vs160.vcxproj | 2 +- ProGen/ProGen_vs160.vcxproj.filters | 6 +- ProGen/ProGen_vs170.vcxproj | 2 +- ProGen/ProGen_vs170.vcxproj.filters | 6 +- Prometheus/Prometheus_vs160.vcxproj | 2 +- Prometheus/Prometheus_vs160.vcxproj.filters | 6 +- Prometheus/Prometheus_vs170.vcxproj | 2 +- Prometheus/Prometheus_vs170.vcxproj.filters | 6 +- .../MetricsSample/MetricsSample_vs160.vcxproj | 2 +- .../MetricsSample_vs160.vcxproj.filters | 2 +- .../MetricsSample/MetricsSample_vs170.vcxproj | 382 +++++- .../MetricsSample_vs170.vcxproj.filters | 2 +- Prometheus/testsuite/TestSuite_vs160.vcxproj | 2 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 4 +- Prometheus/testsuite/TestSuite_vs170.vcxproj | 120 +- .../testsuite/TestSuite_vs170.vcxproj.filters | 4 +- Redis/Redis_vs160.vcxproj | 2 +- Redis/Redis_vs160.vcxproj.filters | 4 +- Redis/Redis_vs170.vcxproj | 2 +- Redis/Redis_vs170.vcxproj.filters | 4 +- Redis/testsuite/TestSuite_vs160.vcxproj | 2 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 4 +- Redis/testsuite/TestSuite_vs170.vcxproj | 110 +- .../testsuite/TestSuite_vs170.vcxproj.filters | 4 +- Util/Util_vs160.vcxproj | 2 +- Util/Util_vs160.vcxproj.filters | 36 +- Util/Util_vs170.vcxproj | 2 +- Util/Util_vs170.vcxproj.filters | 36 +- .../samples/SampleApp/SampleApp_vs160.vcxproj | 2 +- .../SampleApp/SampleApp_vs160.vcxproj.filters | 4 +- .../samples/SampleApp/SampleApp_vs170.vcxproj | 382 +++++- .../SampleApp/SampleApp_vs170.vcxproj.filters | 4 +- .../SampleServer/SampleServer_vs160.vcxproj | 2 +- .../SampleServer_vs160.vcxproj.filters | 4 +- .../SampleServer/SampleServer_vs170.vcxproj | 382 +++++- .../SampleServer_vs170.vcxproj.filters | 4 +- Util/samples/Units/Units_vs160.vcxproj | 2 +- .../samples/Units/Units_vs160.vcxproj.filters | 4 +- Util/samples/Units/Units_vs170.vcxproj | 380 +++++- .../samples/Units/Units_vs170.vcxproj.filters | 4 +- Util/samples/pkill/pkill_vs160.vcxproj | 2 +- .../samples/pkill/pkill_vs160.vcxproj.filters | 2 +- Util/samples/pkill/pkill_vs170.vcxproj | 382 +++++- .../samples/pkill/pkill_vs170.vcxproj.filters | 2 +- Util/samples/samples_vs170.sln | 78 ++ Util/testsuite/TestSuite_vs160.vcxproj | 2 +- .../testsuite/TestSuite_vs160.vcxproj.filters | 40 +- Util/testsuite/TestSuite_vs170.vcxproj | 2 +- .../testsuite/TestSuite_vs170.vcxproj.filters | 40 +- XML/XML_vs160.vcxproj | 2 +- XML/XML_vs160.vcxproj.filters | 24 +- XML/XML_vs170.vcxproj | 2 +- XML/XML_vs170.vcxproj.filters | 24 +- XML/samples/DOMParser/DOMParser_vs160.vcxproj | 2 +- .../DOMParser/DOMParser_vs160.vcxproj.filters | 4 +- XML/samples/DOMParser/DOMParser_vs170.vcxproj | 2 +- .../DOMParser/DOMParser_vs170.vcxproj.filters | 4 +- XML/samples/DOMWriter/DOMWriter_vs160.vcxproj | 2 +- .../DOMWriter/DOMWriter_vs160.vcxproj.filters | 4 +- XML/samples/DOMWriter/DOMWriter_vs170.vcxproj | 2 +- .../DOMWriter/DOMWriter_vs170.vcxproj.filters | 4 +- .../PrettyPrint/PrettyPrint_vs160.vcxproj | 2 +- .../PrettyPrint_vs160.vcxproj.filters | 4 +- .../PrettyPrint/PrettyPrint_vs170.vcxproj | 382 +++++- .../PrettyPrint_vs170.vcxproj.filters | 4 +- XML/samples/SAXParser/SAXParser_vs160.vcxproj | 2 +- .../SAXParser/SAXParser_vs160.vcxproj.filters | 4 +- XML/samples/SAXParser/SAXParser_vs170.vcxproj | 2 +- .../SAXParser/SAXParser_vs170.vcxproj.filters | 4 +- XML/testsuite/TestSuite_vs160.vcxproj | 2 +- XML/testsuite/TestSuite_vs160.vcxproj.filters | 28 +- XML/testsuite/TestSuite_vs170.vcxproj | 148 ++- XML/testsuite/TestSuite_vs170.vcxproj.filters | 28 +- Zip/Zip_vs160.vcxproj | 2 +- Zip/Zip_vs160.vcxproj.filters | 12 +- Zip/Zip_vs170.vcxproj | 2 +- Zip/Zip_vs170.vcxproj.filters | 12 +- Zip/samples/samples_vs170.sln | 42 + Zip/samples/unzip/unzip_vs160.vcxproj | 2 +- Zip/samples/unzip/unzip_vs160.vcxproj.filters | 4 +- Zip/samples/unzip/unzip_vs170.vcxproj | 382 +++++- Zip/samples/unzip/unzip_vs170.vcxproj.filters | 4 +- Zip/samples/zip/zip_vs160.vcxproj | 2 +- Zip/samples/zip/zip_vs160.vcxproj.filters | 2 +- Zip/samples/zip/zip_vs170.vcxproj | 382 +++++- Zip/samples/zip/zip_vs170.vcxproj.filters | 2 +- Zip/testsuite/TestSuite_vs160.vcxproj | 2 +- Zip/testsuite/TestSuite_vs160.vcxproj.filters | 16 +- Zip/testsuite/TestSuite_vs170.vcxproj | 114 +- Zip/testsuite/TestSuite_vs170.vcxproj.filters | 16 +- progen.ps1 | 2 +- 480 files changed, 29404 insertions(+), 3221 deletions(-) diff --git a/.gitignore b/.gitignore index d5b8c13fe..152101e6f 100644 --- a/.gitignore +++ b/.gitignore @@ -131,6 +131,8 @@ lib/ lib64/ pocomsg.h **/UpgradeLog*.XML +.vs/ +vcpkg_installed/ # Eclipse generated files # ########################### diff --git a/ActiveRecord/ActiveRecord_vs160.vcxproj b/ActiveRecord/ActiveRecord_vs160.vcxproj index b48b0ab56..ad3ffec68 100644 --- a/ActiveRecord/ActiveRecord_vs160.vcxproj +++ b/ActiveRecord/ActiveRecord_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoActiveRecordd PocoActiveRecordmdd PocoActiveRecordmtd diff --git a/ActiveRecord/ActiveRecord_vs160.vcxproj.filters b/ActiveRecord/ActiveRecord_vs160.vcxproj.filters index a0727ce46..05f5ed1e1 100644 --- a/ActiveRecord/ActiveRecord_vs160.vcxproj.filters +++ b/ActiveRecord/ActiveRecord_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {e1ff1256-5ffb-4edf-b636-f0ae436cd880} + {28e9724f-5a4c-4c6c-9ff9-c03dd3fab312} - {878bb6cf-d0f0-43f3-80be-a6c49e7fcdc0} + {f3dbcbad-f18a-41fe-ad06-4f4b13ab7051} - {4ee94537-e10b-4905-9e08-83a9aa0c19ac} + {682e7890-682a-4823-9887-8a9bae670c6e} diff --git a/ActiveRecord/ActiveRecord_vs170.vcxproj b/ActiveRecord/ActiveRecord_vs170.vcxproj index eb94f51f2..18795793d 100644 --- a/ActiveRecord/ActiveRecord_vs170.vcxproj +++ b/ActiveRecord/ActiveRecord_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoActiveRecordA64d PocoActiveRecordmdd PocoActiveRecordmtd diff --git a/ActiveRecord/ActiveRecord_vs170.vcxproj.filters b/ActiveRecord/ActiveRecord_vs170.vcxproj.filters index f7c416d5f..39e31dd3f 100644 --- a/ActiveRecord/ActiveRecord_vs170.vcxproj.filters +++ b/ActiveRecord/ActiveRecord_vs170.vcxproj.filters @@ -2,13 +2,13 @@ - {432c214a-0240-4551-855e-81f76d8d4e8a} + {38b6790a-2ce1-4c5b-a80a-78d45abd59b8} - {1ecf12a7-37ea-4377-af01-5d99e9bb31bb} + {e51d8828-dc56-4f93-8c93-4a621baddefb} - {14c6f1ce-7977-42bb-a83d-deee9c09a926} + {3a7e31e2-021a-440c-a405-c3d59c6736c5} diff --git a/ActiveRecord/Compiler/Compiler_vs160.vcxproj b/ActiveRecord/Compiler/Compiler_vs160.vcxproj index 849f62648..09d9a3b1b 100644 --- a/ActiveRecord/Compiler/Compiler_vs160.vcxproj +++ b/ActiveRecord/Compiler/Compiler_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 poco-arcd poco-arcd poco-arcd diff --git a/ActiveRecord/Compiler/Compiler_vs160.vcxproj.filters b/ActiveRecord/Compiler/Compiler_vs160.vcxproj.filters index c3542c2c1..0cca15a97 100644 --- a/ActiveRecord/Compiler/Compiler_vs160.vcxproj.filters +++ b/ActiveRecord/Compiler/Compiler_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {53cccc79-2fa5-454a-8962-a80b8e772eaa} + {33844d19-e50e-4703-9837-046a25d0996e} - {809ee132-09bd-4dad-8c59-e88977d7f12c} + {4920a70b-4aba-4747-9fef-eb2a648f96d0} diff --git a/ActiveRecord/Compiler/Compiler_vs170.vcxproj b/ActiveRecord/Compiler/Compiler_vs170.vcxproj index 6601a94d2..23bcef99d 100644 --- a/ActiveRecord/Compiler/Compiler_vs170.vcxproj +++ b/ActiveRecord/Compiler/Compiler_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 poco-arcd poco-arcd poco-arcd diff --git a/ActiveRecord/Compiler/Compiler_vs170.vcxproj.filters b/ActiveRecord/Compiler/Compiler_vs170.vcxproj.filters index dfac12b35..715cd109a 100644 --- a/ActiveRecord/Compiler/Compiler_vs170.vcxproj.filters +++ b/ActiveRecord/Compiler/Compiler_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {780c9034-0153-453b-8791-d4659eb8554d} + {cc7f6445-2867-4c10-8ea1-bbd8dde5b5d9} - {c0be2d0e-ae4e-4573-9dcf-dc5821858595} + {bdfa9b3c-2ffd-4d92-82c5-13b69572aa19} diff --git a/ActiveRecord/testsuite/TestSuite_vs160.vcxproj b/ActiveRecord/testsuite/TestSuite_vs160.vcxproj index 138634585..1d8725e69 100644 --- a/ActiveRecord/testsuite/TestSuite_vs160.vcxproj +++ b/ActiveRecord/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited diff --git a/ActiveRecord/testsuite/TestSuite_vs160.vcxproj.filters b/ActiveRecord/testsuite/TestSuite_vs160.vcxproj.filters index 98361806d..4c213ea71 100644 --- a/ActiveRecord/testsuite/TestSuite_vs160.vcxproj.filters +++ b/ActiveRecord/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,16 +2,16 @@ - {18d9df2e-b44e-46a1-89f9-1f2f0d2e816f} + {81c689e6-8edf-4f29-bcb5-e048a0c0ced9} - {5bf0e9d1-a181-47a6-828b-209f7d33b194} + {ec1ee6d2-7001-4990-880c-c02962bdd5ae} - {b59d4ea7-d1c4-42f0-ac59-f4419cbaabdf} + {1515aae1-a238-472d-ae2e-34e5b90340aa} - {680e519d-37d6-412a-aacc-21c82caa59d3} + {a0fc37c9-ef00-428f-a9f1-35833cc33f29} diff --git a/ActiveRecord/testsuite/TestSuite_vs170.vcxproj b/ActiveRecord/testsuite/TestSuite_vs170.vcxproj index baadba6fc..b33b1a540 100644 --- a/ActiveRecord/testsuite/TestSuite_vs170.vcxproj +++ b/ActiveRecord/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -343,7 +343,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -379,7 +379,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -410,7 +410,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -446,7 +446,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -477,7 +477,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -513,7 +513,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -544,7 +544,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -580,7 +580,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -611,7 +611,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -647,7 +647,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -678,7 +678,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\CppUnit\WinTestRunner\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -714,7 +714,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -745,7 +745,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -781,7 +781,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -812,7 +812,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -848,7 +848,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -879,7 +879,7 @@ Disabled - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -915,7 +915,7 @@ true Speed true - ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include;..\..\Data\SQLParser;..\..\Data\SQLParser\src; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) + ..\include;..\..\CppUnit\include;..\..\Foundation\include;..\..\Data\include; ..\..\Data\SQLite\include;..\..\ActiveRecord\include;.\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL diff --git a/ActiveRecord/testsuite/TestSuite_vs170.vcxproj.filters b/ActiveRecord/testsuite/TestSuite_vs170.vcxproj.filters index 395638527..8c5eb7fa4 100644 --- a/ActiveRecord/testsuite/TestSuite_vs170.vcxproj.filters +++ b/ActiveRecord/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,16 +2,16 @@ - {40b247c9-e15e-4d60-abc1-cf9c1cb2f66e} + {7dc89208-ffe0-4fc2-96f5-9b97b5ef6b9b} - {1a029e91-d286-42b9-8a58-c4a09641a8ae} + {5e4e7407-aec2-4328-80e7-767857b9c04b} - {73651c18-d9ec-4a46-b4d9-3f28ae384bb3} + {50b15fea-3e6c-485d-9c0e-7195b9a7562c} - {8382d412-0a64-4d8c-ad1e-befe17f70b65} + {7a2340a3-18c9-4d7a-a990-1eedfcc31155} diff --git a/CppParser/CppParser_vs160.vcxproj b/CppParser/CppParser_vs160.vcxproj index 49aa7b2ad..a150e8255 100644 --- a/CppParser/CppParser_vs160.vcxproj +++ b/CppParser/CppParser_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoCppParserd PocoCppParsermdd PocoCppParsermtd diff --git a/CppParser/CppParser_vs160.vcxproj.filters b/CppParser/CppParser_vs160.vcxproj.filters index 095f79d79..46f31a69a 100644 --- a/CppParser/CppParser_vs160.vcxproj.filters +++ b/CppParser/CppParser_vs160.vcxproj.filters @@ -2,31 +2,31 @@ - {78ecda8b-38b1-4bed-932f-02ebe18f2b52} + {8e447b1c-2c09-423b-9f6e-a776cbec81db} - {b38335e1-d932-4eec-ba2a-4a50fb8eef30} + {39d2f587-62d6-49f5-8fd3-1d30c9b229e5} - {2415ef0b-be5f-4f5e-a150-f6e13a8d2a02} + {621de0cf-6ba8-40e5-b209-bdae1ed2f142} - {0d1aa205-1f5e-48d3-8f67-71125f193a0c} + {0e1a79b8-dd30-4cfb-b5cb-339454948441} - {406ad7af-4bef-4dbb-acc7-9abc8d0977cc} + {31248b34-4de9-4f86-a1ca-1fd97618b14e} - {41388393-2d90-46aa-90de-24d4186cc3af} + {017e9405-7dae-4319-a54f-22de1c10d19c} - {8afc7c3a-be7c-460c-9d74-8af0fab90754} + {d985e344-b941-49b2-b4af-38762aee5528} - {36ac1f5a-6d4c-46e6-be3e-16cadb0a20dc} + {32f5d7e4-e715-416a-92f5-dd62329c66b1} - {e31474cf-8e07-4bbe-8bb1-d3a4a6156cfe} + {7590f4dd-13ef-4643-86a0-2a984d3c8605} diff --git a/CppParser/CppParser_vs170.vcxproj b/CppParser/CppParser_vs170.vcxproj index 398da6b04..7ecce738e 100644 --- a/CppParser/CppParser_vs170.vcxproj +++ b/CppParser/CppParser_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoCppParserA64d PocoCppParsermdd PocoCppParsermtd diff --git a/CppParser/CppParser_vs170.vcxproj.filters b/CppParser/CppParser_vs170.vcxproj.filters index dad5daabb..9cedb1f24 100644 --- a/CppParser/CppParser_vs170.vcxproj.filters +++ b/CppParser/CppParser_vs170.vcxproj.filters @@ -2,31 +2,31 @@ - {04fc4f1d-2274-4331-b73a-983236125a2f} + {2855eb69-3412-4632-bbfe-c529e25b9a60} - {48da727d-3925-4adb-8128-8e371873b418} + {d346bb37-4149-4d15-a08c-c9dd082a76cf} - {5f42528e-6e34-4c9d-98f4-c561a87e3b98} + {62e81251-cabf-4af9-a4fa-4d5ada518df2} - {72e542a3-5ed5-4549-a8f0-84b07832a5d8} + {cf14ea5f-e033-4329-8c27-ff9f94052203} - {5a1e3cc6-6a35-4b0f-b6d1-987a4516b114} + {f729a32d-88f8-40b5-9fae-5191a339fd09} - {abed0e17-015a-49f0-acdf-9c68f3a5f7ea} + {6d6bab31-fde4-48cb-8067-914f694ddf1c} - {206c3f3b-04d2-4444-ab00-5a291ae2500d} + {6dbdfa1b-e613-46ac-9762-78a2c82d9ffa} - {703de990-b5f5-404b-beaa-82c6f1cf3b03} + {bf5d3cbd-273b-470f-9c80-e14d547e295c} - {a3ca1499-f56c-41b3-bb6d-962492907f62} + {7a43d2ca-5a0c-4d74-9d14-a977f4865217} diff --git a/CppParser/testsuite/TestSuite_vs160.vcxproj b/CppParser/testsuite/TestSuite_vs160.vcxproj index d03e10138..f3eb6426e 100644 --- a/CppParser/testsuite/TestSuite_vs160.vcxproj +++ b/CppParser/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited diff --git a/CppParser/testsuite/TestSuite_vs160.vcxproj.filters b/CppParser/testsuite/TestSuite_vs160.vcxproj.filters index 17cb47b9f..674f99b68 100644 --- a/CppParser/testsuite/TestSuite_vs160.vcxproj.filters +++ b/CppParser/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,37 +2,37 @@ - {b7eb186c-6d98-44ea-88d9-7ba64f2c2cbd} + {5003418c-560d-453e-8e66-25a768044b14} - {cac83a53-c5c1-49a5-ab07-1f5d017b8373} + {e1f4af4d-2440-47b0-9abc-2cc33b0e83b7} - {327f4385-9f15-4f53-9dc8-de2f33c439ba} + {1430e6a6-1f2b-498d-ab50-e27cd3458edf} - {2d41c3cf-92ca-492a-a07c-dc9cbd0b4d3a} + {4173eeaf-ffdb-4b62-ac26-19068b4a6b99} - {dd772fd7-0956-4f15-ac7c-e8fe40f3795e} + {9745b5fa-205b-405b-8728-05452952456f} - {bd3f5103-bafb-46cb-a7be-f7c309546832} + {d5f86c12-35cf-4982-94aa-ffda3fa939ff} - {59eb86f0-e471-45e2-87da-5da5830e3876} + {4b628cb7-03ee-48da-86e7-363e48d75e98} - {118b9dc2-cd9e-4a7a-9ffd-087058609b65} + {df7e0d54-ba17-47f0-b9c1-5d2d37365609} - {20a55dfe-ea8e-4f16-8768-3805893a4f02} + {cd9a23cd-0ec4-4dbd-a865-3d6b4b36b25e} - {e01c68ae-0ee9-497d-9bc3-5b6ca974a267} + {7640da57-270c-48fc-ab91-307af75ab2f7} - {c733f92c-ef7d-4467-8011-a7001a719bec} + {47b03bd2-ffdf-4257-ac06-cec285aced28} diff --git a/CppParser/testsuite/TestSuite_vs170.vcxproj b/CppParser/testsuite/TestSuite_vs170.vcxproj index 8ddceef30..188ee15fb 100644 --- a/CppParser/testsuite/TestSuite_vs170.vcxproj +++ b/CppParser/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -356,15 +356,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -388,11 +391,14 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -417,15 +423,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -449,11 +458,14 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -478,15 +490,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -510,11 +525,14 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -539,7 +557,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -547,7 +568,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -571,7 +592,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,7 +624,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -608,7 +635,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -632,7 +659,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -661,7 +691,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -669,7 +702,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -693,7 +726,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -722,7 +758,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -730,7 +769,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -754,7 +793,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -783,7 +825,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -791,7 +836,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -815,7 +860,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -844,7 +892,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -852,7 +903,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -876,7 +927,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -898,18 +952,28 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/CppParser/testsuite/TestSuite_vs170.vcxproj.filters b/CppParser/testsuite/TestSuite_vs170.vcxproj.filters index f1ab44ce5..35eb6cc4c 100644 --- a/CppParser/testsuite/TestSuite_vs170.vcxproj.filters +++ b/CppParser/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,37 +2,37 @@ - {32b5b8b3-f611-46b3-897a-4550a2515f92} + {2edfd808-9a8f-4b9b-aa06-076bc2ba7e9b} - {58743500-0848-494f-a502-b68f27b3256c} + {1ffe7454-e29f-4ba4-a589-ca39c7c9c047} - {a1f073e1-dc90-4eab-945f-182686ed6128} + {c1c27e02-6852-482b-b3b7-ee08f73ac9ba} - {bfc413dd-7df1-44ab-b7b3-b41c2cbaecca} + {393626be-ca82-488e-a48a-48261d4ab280} - {bc042bae-b97a-4782-8493-849b8e686ade} + {967b8f5c-5765-45cd-b49c-73b24484f064} - {50afe903-da52-4eba-b6d3-e9e9616dad86} + {d4cd3768-7b09-4965-95df-9b2c07519f77} - {0240b864-f514-4091-acda-d84086cac637} + {54ddbf44-fd1c-4285-9aa2-995c7c574297} - {061dd92e-31b4-44ff-907e-4a7d7bdb6ab3} + {579baa8b-8350-4890-be2f-e785b7989f55} - {c4f20879-a8ef-4a7f-adc3-987a0924f24e} + {bb8df629-f40e-45ba-9d56-3e27139f07dc} - {c1031026-be95-4244-9610-21ee3abcd573} + {c32e58a9-303c-485e-b899-14fba45063ff} - {2c59e42b-60d9-4375-9501-4f8a179dbebc} + {5fb13178-4b60-4a71-abe1-ddea2d94cc7e} diff --git a/CppUnit/CppUnit_vs160.vcxproj b/CppUnit/CppUnit_vs160.vcxproj index e64bd703b..4d8d488c6 100644 --- a/CppUnit/CppUnit_vs160.vcxproj +++ b/CppUnit/CppUnit_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 CppUnitd CppUnitmdd CppUnitmtd diff --git a/CppUnit/CppUnit_vs160.vcxproj.filters b/CppUnit/CppUnit_vs160.vcxproj.filters index c8054ab99..ea17c6c57 100644 --- a/CppUnit/CppUnit_vs160.vcxproj.filters +++ b/CppUnit/CppUnit_vs160.vcxproj.filters @@ -2,11 +2,11 @@ - {f9027807-6f7f-40c0-a1cd-9416954a6f21} + {d26d49c5-abe0-4fa7-9212-01a9f91404f9} cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - {600d9ce8-b49c-402b-b4d8-f975f907ebcf} + {7314a021-5b19-417e-b039-2767327077e0} *.h diff --git a/CppUnit/CppUnit_vs170.vcxproj b/CppUnit/CppUnit_vs170.vcxproj index ac2aa93eb..39aae5352 100644 --- a/CppUnit/CppUnit_vs170.vcxproj +++ b/CppUnit/CppUnit_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 CppUnitA64d CppUnitmdd CppUnitmtd diff --git a/CppUnit/CppUnit_vs170.vcxproj.filters b/CppUnit/CppUnit_vs170.vcxproj.filters index f8d4549ec..5721767f9 100644 --- a/CppUnit/CppUnit_vs170.vcxproj.filters +++ b/CppUnit/CppUnit_vs170.vcxproj.filters @@ -2,11 +2,11 @@ - {7b3be91a-acf5-44e5-a39b-e503d6ed15c1} + {8d6cbac2-5575-4090-8ee0-a6a7d2782231} cpp;c;cxx;rc;def;r;odl;idl;hpj;bat - {d207b5fb-1df4-4147-a39c-38e5ca4cf7d1} + {77346dfd-097e-4acc-bcb5-7c44c0c69f8a} *.h diff --git a/Crypto/Crypto_vs160.vcxproj b/Crypto/Crypto_vs160.vcxproj index df5276d6a..74bac1921 100644 --- a/Crypto/Crypto_vs160.vcxproj +++ b/Crypto/Crypto_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoCryptod PocoCryptomdd PocoCryptomtd @@ -224,6 +224,57 @@ ..\lib64\ obj64\Crypto\$(Configuration)\ + + true + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + Disabled @@ -241,6 +292,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -277,6 +329,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -311,6 +364,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -339,6 +393,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -364,6 +419,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -392,6 +448,7 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -418,6 +475,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -454,6 +512,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -488,6 +547,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -516,6 +576,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -541,6 +602,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -569,6 +631,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Crypto/Crypto_vs160.vcxproj.filters b/Crypto/Crypto_vs160.vcxproj.filters index 66b23d62e..6512d0f1b 100644 --- a/Crypto/Crypto_vs160.vcxproj.filters +++ b/Crypto/Crypto_vs160.vcxproj.filters @@ -2,58 +2,58 @@ - {1b341421-b0a6-41ba-b9e7-23a78d22e64e} + {a91f07bc-ca03-4f8c-8db5-a6d27c90c583} - {3410e096-721e-4bbb-95a9-c3399e4bc916} + {944ca446-b1c9-4d0e-8e1d-342305925d77} - {fe6936eb-e9ca-4766-aaa4-844dc49f49f9} + {fd1860dc-1a07-4bc9-913b-ab9f75e29b98} - {0c0e5ba2-303f-47bd-8050-60d8624ad54b} + {ed59fda0-ba3d-476f-8bb3-888ef4fdf3a5} - {deac82b6-db04-432c-9529-e509ba29ce3c} + {06cd83f3-f104-4df6-9afc-82ee1133842b} - {73b6588c-1b71-4876-8688-3fef4d5d50f5} + {507397c4-6ea6-48ea-b1a8-fc67a472e682} - {a176bed7-cbc3-43b5-9bad-5d141f68bcad} + {96290761-551c-450d-9c40-0ad606d841c0} - {a3119f32-061e-49cb-8add-e43f347dca70} + {a35346d7-41b5-4457-b628-185b3889e957} - {c2343031-10e4-42c1-9588-5f9a5465fcff} + {d3385b52-894f-43a4-98c7-43f6863af9a4} - {f60a6df2-2e50-4bd6-aa93-a10781df4a63} + {7e9c7be2-f096-4a9d-aa38-4fb9d02367e2} - {bd3c3a14-025d-473f-ab7d-caa706137c9c} + {07023853-f234-43fc-80a9-8b6b442f154a} - {16e91055-e1a0-43ec-b101-278c3cc10e01} + {ec9c6040-51f0-4756-bf05-7ed4af3dd874} - {0c9aa960-60a9-4878-8944-397b68d63fbd} + {3283a946-98a0-4c74-8243-87dcf33b3029} - {3001a9e0-0691-4be4-acac-14c6e7e44c60} + {651a0fb2-f8ea-4784-9fa1-d24775e657f9} - {de5ddc8e-00be-40a3-823f-f1a0392c609c} + {23c0a476-c1d4-42e9-984b-c3ddad2225b9} - {b0fec04d-de08-48ec-ac41-87a5ddebfb09} + {0978c184-dda0-4325-ac4b-6c36fcd57c26} - {d204272f-6c1d-4190-81e1-bc53453ef186} + {db81741a-9afa-4e69-a690-175b29385c2e} - {169dabef-3127-4621-a773-c1cf094f877c} + {0e505bee-7a85-449c-9d9a-d70fce01004b} diff --git a/Crypto/Crypto_vs170.vcxproj b/Crypto/Crypto_vs170.vcxproj index e84fc6059..2d85884a7 100644 --- a/Crypto/Crypto_vs170.vcxproj +++ b/Crypto/Crypto_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoCryptoA64d PocoCryptomdd PocoCryptomtd @@ -328,6 +328,81 @@ ..\lib64\ obj64\Crypto\$(Configuration)\ + + true + + + Debug + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + + + Release + true + Disabled @@ -345,6 +420,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -381,6 +457,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -415,6 +492,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -443,6 +521,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -468,6 +547,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -496,6 +576,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -521,6 +602,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -557,6 +639,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -591,6 +674,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -619,6 +703,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -644,6 +729,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -672,6 +758,7 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -698,6 +785,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -734,6 +822,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -768,6 +857,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -796,6 +886,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -821,6 +912,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -849,6 +941,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Crypto/Crypto_vs170.vcxproj.filters b/Crypto/Crypto_vs170.vcxproj.filters index f19c718f4..45f480e87 100644 --- a/Crypto/Crypto_vs170.vcxproj.filters +++ b/Crypto/Crypto_vs170.vcxproj.filters @@ -2,58 +2,58 @@ - {3aae1caa-ecff-4053-a81d-977e521e5c87} + {c0d5dbcc-aa3a-4a9f-ace3-312f44552df7} - {7510a388-fc23-42a7-a7c2-2a3d242c4211} + {fa977baa-99e0-4736-a6c0-0a7d23a6410d} - {50900110-d23e-4374-90fd-36e48e4dad99} + {64bffeac-1b12-444c-8a98-2c3ab7afca86} - {9c32ff7b-5d5d-46a5-922a-5f128ea342dd} + {2217be8b-7217-450e-850a-4e3cd41a6d17} - {4fa8cb3b-5503-4f61-acb1-57a11d94e1c5} + {b0099283-5145-4cd9-9dd6-8c894dd1e0bc} - {a71b5463-8361-4c0e-bd16-fbfbd4921d2b} + {4b89f81f-5842-41f7-8550-6b2444e42c21} - {6bf61ee7-c315-4e69-a6ab-bfe72f4c1c4c} + {487598dd-1537-4592-902f-ce62c702de55} - {0b2114f5-7795-4ede-b999-bf08d948e997} + {30f74beb-7f7c-4d4a-9997-9419df1ad0cc} - {20af4346-6482-44f6-b813-ac75a0ed1820} + {fe0681a4-a27c-4ec5-8a91-95e16da5e2fb} - {2f05d665-ed8c-4bda-b51e-a4c53c266f4e} + {9dfe8ba5-b357-4387-ae11-1a9dcd93dde6} - {d0dac58b-8d74-47b3-80bc-f53c4f42648d} + {50855057-f60e-4ea6-8cfe-599803e9f87f} - {09b4b347-f640-43f1-a5d8-a6b994207d6f} + {f1f40084-8b19-40b0-ab0e-5dac38d1f84d} - {50c81c4e-471d-4104-a199-1b31e2f32df2} + {9ee15162-ecd6-4b3f-9440-5b0fef8c7ee2} - {317f8dd4-bb89-4cf3-8128-3ff84add12e2} + {a3d3ac1f-6ab5-40fd-94d5-87223c2616db} - {f2c312ee-ce71-4529-b3d8-a180bfa87baa} + {161574f0-2211-4d00-9470-e3dd2ec14a0f} - {d67ab044-b6f3-4600-a233-0f78eb68f451} + {1cbb0712-1cc0-4019-a00a-0029703cb638} - {149a748e-cdab-4694-ae93-cc8d0f7b6cf0} + {331329bb-c3ad-44e0-8e5b-fde7ac41ce8e} - {27a7c180-9724-416f-a98f-c7ba2fc44b38} + {9bb09b1d-edb6-4f2c-9aad-dcd811b1d7dc} diff --git a/Crypto/samples/genrsakey/genrsakey_vs160.vcxproj b/Crypto/samples/genrsakey/genrsakey_vs160.vcxproj index 228a38fa0..fa9ebe610 100644 --- a/Crypto/samples/genrsakey/genrsakey_vs160.vcxproj +++ b/Crypto/samples/genrsakey/genrsakey_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 genrsakeyd genrsakeyd genrsakeyd @@ -232,6 +232,57 @@ obj64\genrsakey\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + Disabled @@ -249,6 +300,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -284,6 +336,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -316,6 +369,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -351,6 +405,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -383,6 +438,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -418,6 +474,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -450,6 +507,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -485,6 +543,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -517,6 +576,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -552,6 +612,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -584,6 +645,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -619,6 +681,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Crypto/samples/genrsakey/genrsakey_vs160.vcxproj.filters b/Crypto/samples/genrsakey/genrsakey_vs160.vcxproj.filters index 59fff5064..2869136fd 100644 --- a/Crypto/samples/genrsakey/genrsakey_vs160.vcxproj.filters +++ b/Crypto/samples/genrsakey/genrsakey_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {57c66ce0-14be-41b6-9ac1-70ff5c861a0d} + {f57fb09b-9f09-4079-82d7-0072b8dab8a1} - {957962bc-87ba-4593-8c97-67ce38990384} + {6dc64734-b287-4235-8123-27b2e91f3b1f} diff --git a/Crypto/samples/genrsakey/genrsakey_vs170.vcxproj b/Crypto/samples/genrsakey/genrsakey_vs170.vcxproj index 41e3f2682..9dc86a05d 100644 --- a/Crypto/samples/genrsakey/genrsakey_vs170.vcxproj +++ b/Crypto/samples/genrsakey/genrsakey_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 genrsakey {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947} genrsakey @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + genrsakeyd + genrsakeyd + genrsakeyd + genrsakey + genrsakey + genrsakey genrsakeyd genrsakeyd genrsakeyd @@ -171,6 +250,36 @@ genrsakey genrsakey + + binA64\ + objA64\genrsakey\$(Configuration)\ + true + + + binA64\ + objA64\genrsakey\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\genrsakey\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\genrsakey\$(Configuration)\ + false + + + binA64\static_md\ + objA64\genrsakey\$(Configuration)\ + true + + + binA64\static_md\ + objA64\genrsakey\$(Configuration)\ + false + bin\ obj\genrsakey\$(Configuration)\ @@ -231,6 +340,288 @@ obj64\genrsakey\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + + + Release + true + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\genrsakey.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\genrsakeyd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\genrsakey.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\genrsakeyd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +638,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +650,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\genrsakeyd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +674,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +707,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +719,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\genrsakeyd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +743,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +776,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +788,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\genrsakeyd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +812,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +845,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +857,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\genrsakeyd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +881,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +914,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +926,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\genrsakeyd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +950,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +983,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +995,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\genrsakeyd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +1019,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +1039,8 @@ true + stdcpp17 + stdc11 diff --git a/Crypto/samples/genrsakey/genrsakey_vs170.vcxproj.filters b/Crypto/samples/genrsakey/genrsakey_vs170.vcxproj.filters index 3998bf9be..41eabb307 100644 --- a/Crypto/samples/genrsakey/genrsakey_vs170.vcxproj.filters +++ b/Crypto/samples/genrsakey/genrsakey_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {23a8923d-3376-47f4-9a6f-19a3a66382c3} + {1531831f-28f9-455f-ab90-e050b16cfff6} - {8fc78ac1-efab-4a1b-8e59-1b68d96f306a} + {60650128-542a-433d-a6bb-489468ee4e36} diff --git a/Crypto/samples/samples_vs170.sln b/Crypto/samples/samples_vs170.sln index a28401cf8..f569191f6 100644 --- a/Crypto/samples/samples_vs170.sln +++ b/Crypto/samples/samples_vs170.sln @@ -4,6 +4,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genrsakey", "genrsakey\genr EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|ARM64 = debug_shared|ARM64 + release_shared|ARM64 = release_shared|ARM64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 + release_static_mt|ARM64 = release_static_mt|ARM64 + debug_static_md|ARM64 = debug_static_md|ARM64 + release_static_md|ARM64 = release_static_md|ARM64 debug_shared|Win32 = debug_shared|Win32 release_shared|Win32 = release_shared|Win32 debug_static_mt|Win32 = debug_static_mt|Win32 @@ -18,6 +24,24 @@ Global release_static_md|x64 = release_static_md|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_shared|Win32.Build.0 = debug_shared|Win32 {D6BE1AD9-4CB6-3184-8DF8-5210AE7D6947}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 diff --git a/Crypto/testsuite/TestSuite_vs160.vcxproj b/Crypto/testsuite/TestSuite_vs160.vcxproj index 11d991987..7645c1b54 100644 --- a/Crypto/testsuite/TestSuite_vs160.vcxproj +++ b/Crypto/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -232,11 +232,62 @@ obj64\TestSuite\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + Disabled ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;OPENSSL_REQUIRE_APPLINK;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -249,6 +300,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -272,7 +324,7 @@ Speed true ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;OPENSSL_REQUIRE_APPLINK;%(PreprocessorDefinitions) true MultiThreadedDLL false @@ -284,6 +336,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -316,6 +369,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -351,6 +405,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -383,12 +438,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) bin\static_md\TestSuited.exe ..\..\lib;%(AdditionalLibraryDirectories) true @@ -418,12 +474,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) bin\static_md\TestSuite.exe ..\..\lib;%(AdditionalLibraryDirectories) false @@ -437,7 +494,7 @@ Disabled ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;OPENSSL_REQUIRE_APPLINK;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -450,6 +507,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -473,7 +531,7 @@ Speed true ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;OPENSSL_REQUIRE_APPLINK;%(PreprocessorDefinitions) true MultiThreadedDLL false @@ -485,6 +543,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -517,6 +576,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -552,6 +612,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -584,12 +645,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) bin64\static_md\TestSuited.exe ..\..\lib64;%(AdditionalLibraryDirectories) true @@ -619,12 +681,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) bin64\static_md\TestSuite.exe ..\..\lib64;%(AdditionalLibraryDirectories) false diff --git a/Crypto/testsuite/TestSuite_vs160.vcxproj.filters b/Crypto/testsuite/TestSuite_vs160.vcxproj.filters index f8d229305..570b65e65 100644 --- a/Crypto/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Crypto/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,28 +2,28 @@ - {1c8c4bc2-2664-41f8-a5ce-337f1754dd6d} + {2c6f961e-2379-4dec-a138-28f33709766f} - {507a694a-3f97-4615-b518-71a96c0f8af1} + {85164b54-7835-4fa8-94bf-418bebcdc1cb} - {0805e26c-6eac-4d28-9535-56b09fffdac3} + {2bc6f159-97d0-4e75-b73c-1fe61e343ba3} - {96c9803e-6512-48db-a9f6-2fc1d2b344de} + {f327cab2-a3a1-44ca-b832-a956f19a8361} - {a884018a-76b4-44f4-a199-87c08d34040f} + {c17a92da-e921-47a7-bbe2-06bfa5cd12a0} - {20122988-a0fc-42a9-89e7-5c9b0783a76f} + {7773d5b1-54e6-43b9-a157-0203837c70dd} - {e50bf5e7-1e0f-49cd-896c-32a553a84d75} + {f18ff7d9-b005-499d-ada4-0581a194f562} - {aa64f38d-2dfb-48b3-8495-904c8ace997d} + {3a55d0a3-8fd3-4509-9fbc-169c7d42e081} diff --git a/Crypto/testsuite/TestSuite_vs170.vcxproj b/Crypto/testsuite/TestSuite_vs170.vcxproj index 0cb17b77c..43ffeb642 100644 --- a/Crypto/testsuite/TestSuite_vs170.vcxproj +++ b/Crypto/testsuite/TestSuite_vs170.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -75,6 +75,7 @@ + 17.0 TestSuite {C1B1BB96-5198-48EB-AB48-9A0A0B54FB15} TestSuite @@ -229,7 +230,7 @@ - <_ProjectFileVersion>16.0.32629.160 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -339,11 +340,86 @@ obj64\TestSuite\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + + + Release + true + Disabled ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;OPENSSL_REQUIRE_APPLINK;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -355,15 +431,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -376,7 +456,7 @@ Speed true ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;OPENSSL_REQUIRE_APPLINK;%(PreprocessorDefinitions) true MultiThreadedDLL false @@ -387,11 +467,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -416,15 +500,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -448,11 +536,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -477,15 +569,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuited.exe + CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -509,11 +605,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuite.exe + CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -526,7 +626,7 @@ Disabled ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;OPENSSL_REQUIRE_APPLINK;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -538,7 +638,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -546,7 +650,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -559,7 +663,7 @@ Speed true ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;OPENSSL_REQUIRE_APPLINK;%(PreprocessorDefinitions) true MultiThreadedDLL false @@ -570,7 +674,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -599,7 +707,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) @@ -607,7 +719,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -631,7 +743,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) @@ -660,15 +776,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) bin\static_md\TestSuited.exe ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -692,10 +812,14 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) bin\static_md\TestSuite.exe ..\..\lib;%(AdditionalLibraryDirectories) false @@ -709,7 +833,7 @@ Disabled ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;OPENSSL_REQUIRE_APPLINK;%(PreprocessorDefinitions) true EnableFastChecks MultiThreadedDebugDLL @@ -721,7 +845,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -729,7 +857,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -742,7 +870,7 @@ Speed true ..\include;..\..\CppUnit\include;..\..\Foundation\include;%(AdditionalIncludeDirectories) - WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;OPENSSL_REQUIRE_APPLINK;%(PreprocessorDefinitions) true MultiThreadedDLL false @@ -753,7 +881,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -782,7 +914,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) @@ -790,7 +926,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -814,7 +950,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) @@ -843,15 +983,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) bin64\static_md\TestSuited.exe ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -875,10 +1019,14 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;%(AdditionalDependencies) bin64\static_md\TestSuite.exe ..\..\lib64;%(AdditionalLibraryDirectories) false @@ -901,30 +1049,48 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Crypto/testsuite/TestSuite_vs170.vcxproj.filters b/Crypto/testsuite/TestSuite_vs170.vcxproj.filters index ffa5b9bc9..2040d1df4 100644 --- a/Crypto/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Crypto/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,28 +2,28 @@ - {acf5407e-78f8-481f-aede-24ca7504422d} + {a98fadf7-034a-4e23-8354-bc2799b5f330} - {ed75d974-1e6e-4d97-83fb-7111122dba8b} + {54748727-bdf0-4e02-ae13-1cc7183ed394} - {0271bc10-a0c8-408a-8b2b-64e557c63f32} + {3f6808d2-5e67-4d4b-b2c8-69313cbace0d} - {30319608-5ad4-43c1-af6e-84729e9e9aa6} + {a7dace45-a378-43fd-b014-30377546e466} - {aa5fc0e5-cee3-4f44-8a6a-7f64fbbda341} + {a43532d4-6ea3-4091-b804-8be57efd47c8} - {d2e3ae91-4bc3-4259-ab5d-9bc19d47d37c} + {61e78897-f2ab-4604-892d-7ad94bf0b7b8} - {9e497b70-abc5-4962-8853-36eb7d61b4ba} + {dd9ac2e7-9f23-45e9-a664-14e8f6b077b0} - {d16fc517-f3ee-4181-acac-c11efb90d9e8} + {3ef00e5e-bc0e-4728-bf3a-c107875f9037} diff --git a/Data/DataTest/DataTest_vs160.vcxproj b/Data/DataTest/DataTest_vs160.vcxproj index 190616b18..fae676f2a 100644 --- a/Data/DataTest/DataTest_vs160.vcxproj +++ b/Data/DataTest/DataTest_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoDataTestd PocoDataTestmdd PocoDataTestmtd diff --git a/Data/DataTest/DataTest_vs160.vcxproj.filters b/Data/DataTest/DataTest_vs160.vcxproj.filters index 6a41fa9f1..e5a4bfe7c 100644 --- a/Data/DataTest/DataTest_vs160.vcxproj.filters +++ b/Data/DataTest/DataTest_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {3d0da798-3bb5-48a5-ae71-60141f2d3277} + {8d9a4482-80ee-4508-8c18-9ee12221523b} - {ea627452-9089-42dc-b0ae-54afbbeb03d0} + {7c9c33b5-8f07-4ab1-b37a-b1849384cf3c} diff --git a/Data/DataTest/DataTest_vs170.vcxproj b/Data/DataTest/DataTest_vs170.vcxproj index d6060dd09..9a5b71589 100644 --- a/Data/DataTest/DataTest_vs170.vcxproj +++ b/Data/DataTest/DataTest_vs170.vcxproj @@ -1,4 +1,4 @@ - + @@ -77,11 +77,11 @@ 17.0 DataTest - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3} + {240E83C3-368D-11DB-9FBC-00123FC423B5} DataTest Win32Proj - + StaticLibrary MultiByte @@ -172,65 +172,65 @@ MultiByte v143 - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoDataTestA64d PocoDataTestmdd PocoDataTestmtd @@ -340,7 +340,7 @@ true true true - + Level3 ProgramDatabase Default @@ -376,9 +376,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -410,7 +410,7 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase @@ -439,9 +439,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -465,7 +465,7 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase @@ -494,9 +494,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -520,7 +520,7 @@ true true true - + Level3 ProgramDatabase Default @@ -556,9 +556,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -590,7 +590,7 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase @@ -619,9 +619,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -645,7 +645,7 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase @@ -674,10 +674,10 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 - + Default /Zc:__cplusplus %(AdditionalOptions) true @@ -700,7 +700,7 @@ true true true - + Level3 ProgramDatabase Default @@ -736,9 +736,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -770,7 +770,7 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase @@ -799,9 +799,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -825,7 +825,7 @@ true true true - + $(OutDir)$(TargetName).pdb Level3 ProgramDatabase @@ -854,9 +854,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -869,8 +869,8 @@ - - + + @@ -895,6 +895,6 @@ true - - - \ No newline at end of file + + + diff --git a/Data/DataTest/DataTest_vs170.vcxproj.filters b/Data/DataTest/DataTest_vs170.vcxproj.filters index 01b99e293..6debb9652 100644 --- a/Data/DataTest/DataTest_vs170.vcxproj.filters +++ b/Data/DataTest/DataTest_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {36d78e00-e4f2-41ae-bcb6-d7d39d78bf92} + {422bbf81-665a-45b8-bd32-73251a6783a1} - {80b2c411-135b-4310-8fbe-edd927cc0cf9} + {8351a3e7-3a32-4af5-ba6e-22ee2badf83f} diff --git a/Data/Data_vs160.vcxproj b/Data/Data_vs160.vcxproj index 873d052d9..1201bee99 100644 --- a/Data/Data_vs160.vcxproj +++ b/Data/Data_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoDatad PocoDatamdd PocoDatamtd diff --git a/Data/Data_vs160.vcxproj.filters b/Data/Data_vs160.vcxproj.filters index 5b887e994..ecb0ba345 100644 --- a/Data/Data_vs160.vcxproj.filters +++ b/Data/Data_vs160.vcxproj.filters @@ -2,67 +2,67 @@ - {cb2cff8d-df03-460e-a8e8-5f75df6de03e} + {528aa50f-2040-4550-bb1a-e8714fa9e397} - {39dacf38-8a48-41b9-b90d-741f627fb1d0} + {ad859e9e-0eb9-43f8-a8f5-46e40630bbe7} - {21eb13dd-d633-4c58-8172-e0046ad24c31} + {1b17b706-c5c0-4dc1-bf63-f7ef7f4d6f69} - {8fb3827f-33be-4daf-8c14-ebed3bea96e5} + {c162007a-cc64-4388-903d-1e86428c2449} - {b39da8b5-3345-4522-8fcd-56ea15c0741f} + {8f0285fa-4c51-4941-a970-f720c50fa100} - {540b4b42-d82d-4005-9abd-f4a5bd346235} + {9374e43a-a816-4530-b3fc-b8236fb88302} - {33e2aebf-4bf2-4651-a6fb-4597ee963a73} + {518bce3c-a0a1-4715-a630-34d968495d85} - {6d62c21e-e848-4c39-9199-2f5e594b546c} + {c029af04-a280-487f-904b-702940f02cda} - {1e38adcb-f0b8-4ef7-abd2-4eb14baa1297} + {31d2afcb-32c4-446a-9078-79d84555ea13} - {23886b0c-0b0f-4c73-8d1a-ae976d5e83bb} + {545b20d2-411f-446c-93e3-478851e03ee5} - {f22290d4-2b0b-46db-ac61-446e3a361a9a} + {d2329333-2f82-4149-9aac-134d30277a1d} - {92ca4fbe-77c6-4945-915f-fa8f8d71102e} + {36da5f1b-3021-41e5-8af2-f8b2df8a7a10} - {62e6a21d-b3a0-43b8-90b8-5a3d1a578da9} + {efc50c45-ad85-488f-99fb-d06b2d6b2e7e} - {85432299-06a5-4a73-a5f6-77381c344d85} + {8a7eafa2-d108-44b4-8469-21f58dc0e7df} - {40d59c41-5827-4244-a4b6-88c639f6cffe} + {80a2415c-de8f-4b17-9c32-cc544b83184e} - {0e840ec2-9c51-4a6f-93d5-9546cb005cdb} + {b8f31c65-0883-476e-a46d-37cfd728ddf6} - {202c598f-56ed-463d-a534-871d3c7eadb6} + {fed9d069-6ac9-4d17-a1b2-ad65815281ac} - {d5f36096-6a9a-4641-8292-a5858bb1f1d5} + {10ce6ab5-17db-47d2-b757-bdc9309dce35} - {490544d2-114b-41e4-836f-e0a902a40642} + {4581a021-1fd2-4433-9efa-ed26fcd86446} - {6067c6e1-a29d-41f2-bfe9-14ae03d2d7aa} + {349c54c3-6280-4a4c-9945-b477a5c1c1c9} - {50f23d3b-3f56-41fa-b043-002d8c64b3b5} + {6ac96d97-b274-4012-9746-c1d76d9853cb} diff --git a/Data/Data_vs170.sln b/Data/Data_vs170.sln index 2d47a8471..6bb60c326 100644 --- a/Data/Data_vs170.sln +++ b/Data/Data_vs170.sln @@ -1,7 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 -VisualStudioVersion = 17.9.34607.119 -MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Data", "Data_vs170.vcxproj", "{240E83C3-368D-11DB-9FBC-00123FC423B5}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\TestSuite_vs170.vcxproj", "{1813A463-E349-4FEA-8A8E-4A41E41C0DC7}" @@ -9,7 +7,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TestSuite", "testsuite\Test {240E83C3-368D-11DB-9FBC-00123FC423B5} = {240E83C3-368D-11DB-9FBC-00123FC423B5} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DataTest", "DataTest\DataTest_vs170.vcxproj", "{989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DataTest", "DataTest\DataTest_vs170.vcxproj", "{240E83C3-368D-11DB-9FBC-00123FC423B5}" ProjectSection(ProjectDependencies) = postProject {240E83C3-368D-11DB-9FBC-00123FC423B5} = {240E83C3-368D-11DB-9FBC-00123FC423B5} {1813A463-E349-4FEA-8A8E-4A41E41C0DC7} = {1813A463-E349-4FEA-8A8E-4A41E41C0DC7} @@ -18,169 +16,187 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution debug_shared|ARM64 = debug_shared|ARM64 - debug_shared|Win32 = debug_shared|Win32 - debug_shared|x64 = debug_shared|x64 - debug_static_md|ARM64 = debug_static_md|ARM64 - debug_static_md|Win32 = debug_static_md|Win32 - debug_static_md|x64 = debug_static_md|x64 - debug_static_mt|ARM64 = debug_static_mt|ARM64 - debug_static_mt|Win32 = debug_static_mt|Win32 - debug_static_mt|x64 = debug_static_mt|x64 release_shared|ARM64 = release_shared|ARM64 - release_shared|Win32 = release_shared|Win32 - release_shared|x64 = release_shared|x64 - release_static_md|ARM64 = release_static_md|ARM64 - release_static_md|Win32 = release_static_md|Win32 - release_static_md|x64 = release_static_md|x64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 release_static_mt|ARM64 = release_static_mt|ARM64 + debug_static_md|ARM64 = debug_static_md|ARM64 + release_static_md|ARM64 = release_static_md|ARM64 + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + debug_shared|x64 = debug_shared|x64 + release_shared|x64 = release_shared|x64 + debug_static_mt|x64 = debug_static_mt|x64 release_static_mt|x64 = release_static_mt|x64 + debug_static_md|x64 = debug_static_md|x64 + release_static_md|x64 = release_static_md|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Build.0 = debug_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.Build.0 = release_shared|ARM64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Build.0 = release_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.ActiveCfg = release_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Build.0 = release_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Deploy.0 = release_shared|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Build.0 = release_static_md|x64 - {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Build.0 = release_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Build.0 = debug_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.ActiveCfg = release_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Build.0 = release_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Deploy.0 = release_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Build.0 = release_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.Build.0 = debug_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|ARM64.Build.0 = release_shared|ARM64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Build.0 = release_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.ActiveCfg = release_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Build.0 = release_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Deploy.0 = release_shared|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.Build.0 = release_static_md|x64 - {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Build.0 = release_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.Build.0 = debug_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.ActiveCfg = release_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Build.0 = release_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_shared|x64.Deploy.0 = release_shared|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.Build.0 = release_static_mt|x64 {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_shared|x64.Build.0 = debug_shared|x64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_shared|ARM64.Build.0 = release_shared|ARM64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_shared|Win32.Build.0 = release_shared|Win32 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_shared|x64.ActiveCfg = release_shared|x64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_shared|x64.Build.0 = release_shared|x64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_md|x64.Build.0 = release_static_md|x64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {989B2F6B-2F8A-43DA-A9F2-A675EC341AD3}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.Build.0 = release_static_md|x64 + {1813A463-E349-4FEA-8A8E-4A41E41C0DC7}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Build.0 = release_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Build.0 = debug_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.ActiveCfg = release_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Build.0 = release_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_shared|x64.Deploy.0 = release_shared|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Build.0 = release_static_md|x64 + {240E83C3-368D-11DB-9FBC-00123FC423B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Data/Data_vs170.vcxproj b/Data/Data_vs170.vcxproj index 0cc1814d6..57940d43a 100644 --- a/Data/Data_vs170.vcxproj +++ b/Data/Data_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoDataA64d PocoDatamdd PocoDatamtd diff --git a/Data/Data_vs170.vcxproj.filters b/Data/Data_vs170.vcxproj.filters index b49c64254..519029a35 100644 --- a/Data/Data_vs170.vcxproj.filters +++ b/Data/Data_vs170.vcxproj.filters @@ -2,67 +2,67 @@ - {c111f2b8-0fe5-45cf-bcf5-6717f913f4d1} + {a99a8840-8abb-4ead-b884-e9448b217938} - {a429278e-282a-48ad-a6e9-4673ad994ef6} + {07ed166c-bff5-472f-ae5a-0bbf4bca23a5} - {34cb5ff3-8959-4b44-b06a-6a371e903043} + {0a3369a4-0535-4016-a241-3f8a35f9dde1} - {56b9dadb-359a-44e8-af9d-67dd5d8cadd2} + {4720c5de-1df4-4868-97b0-85dadbf54ae0} - {d775c737-421f-45a3-ba6e-a47034ca0c93} + {3d34c960-25c4-415d-9fdc-47a26158cd3b} - {c282924f-b59d-4fee-b202-c6c567572666} + {3ecd6aa2-6f21-45a2-b228-585e93a5ee54} - {fcca3d29-3bf5-47f1-be8a-2fe1a0773a9e} + {693a3aab-c204-4bfc-99c7-835095ad71c2} - {ce5fcae6-0135-4453-9d16-acf8ce133fff} + {c444424e-b19c-4470-9e6d-d762b4afd387} - {51152c9c-3e67-47f2-965d-4f8b5528df0f} + {7f620fc7-4c53-4d38-9a13-949a0bfe6a0d} - {6886ee17-8a9c-4cf4-820f-cd96ed915c74} + {2a8d714e-2399-415e-8997-ec2e0cb32857} - {4c76e1c2-dbd6-4090-9c9f-d09fcc8521c4} + {fbb9a005-c715-4a69-8beb-78ba9e6dd66e} - {85d4c9a3-827b-450b-a4f0-56db8cf5da12} + {5e3877cb-2d0e-4bdf-a442-3e0b01a8f636} - {903ed189-9ddf-44c6-b600-ea212371ea3c} + {7ee7ed4e-9d9d-4ee8-a78f-85afdba1cb56} - {b2f5f062-3106-4301-8e49-7b242ae66efe} + {a0f79fdf-3eba-4b6f-aa28-f5674b3958f0} - {2dda7dbb-8a31-4869-87d3-374c7effd007} + {e6b4b310-43aa-4cb7-9b76-99fe989f8b3b} - {574a99ce-a7ea-4221-bdcb-318456d50f0e} + {166811fe-bbdd-48d6-8d0d-2b65790ca667} - {e07a89d7-c43c-425f-8bb0-eec2ef4c5763} + {86ae6af4-a272-46df-ba81-3efd821de785} - {c9455486-7d6c-4732-a11f-513a24cb954e} + {19fcc5b0-d962-4d7d-8143-5b23fd56e47d} - {6d03dc65-89e5-4dac-a6be-0ad2e761adc1} + {e5daf827-3d59-4831-a6d6-32561c72816d} - {2fc9ede0-fc29-4e59-ba50-a587575c2cc2} + {6b600afe-6a9f-41c5-9d4b-026152a0235f} - {b5c53c80-25ce-4a87-8634-2808040e62ab} + {b0f57e4a-5a7f-4c32-9f16-e29c3a73be40} diff --git a/Data/MySQL/MySQL_vs160.vcxproj b/Data/MySQL/MySQL_vs160.vcxproj index c22547481..d12fc175f 100644 --- a/Data/MySQL/MySQL_vs160.vcxproj +++ b/Data/MySQL/MySQL_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoDataMySQLd PocoDataMySQLmdd PocoDataMySQLmtd @@ -224,6 +224,57 @@ ..\..\lib64\ obj64\MySQL\$(Configuration)\ + + true + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + Disabled @@ -241,6 +292,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -276,6 +328,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -309,6 +362,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -337,6 +391,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -362,6 +417,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -390,6 +446,7 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -415,6 +472,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -450,6 +508,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -483,6 +542,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -511,6 +571,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -536,6 +597,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -564,6 +626,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/MySQL/MySQL_vs170.vcxproj b/Data/MySQL/MySQL_vs170.vcxproj index 8bd706e34..1b7ae7f12 100644 --- a/Data/MySQL/MySQL_vs170.vcxproj +++ b/Data/MySQL/MySQL_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoDataMySQLA64d PocoDataMySQLmdd PocoDataMySQLmtd @@ -328,6 +328,81 @@ ..\..\lib64\ obj64\MySQL\$(Configuration)\ + + true + + + Debug + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + + + Release + true + Disabled @@ -345,6 +420,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -380,6 +456,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -413,6 +490,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -441,6 +519,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -466,6 +545,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -494,6 +574,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -519,6 +600,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -554,6 +636,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -587,6 +670,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -615,6 +699,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -640,6 +725,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -668,6 +754,7 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -693,6 +780,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -728,6 +816,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -761,6 +850,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -789,6 +879,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -814,6 +905,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -842,6 +934,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/MySQL/testsuite/TestSuite_vs160.vcxproj b/Data/MySQL/testsuite/TestSuite_vs160.vcxproj index 607396d8f..5d88c7fc7 100644 --- a/Data/MySQL/testsuite/TestSuite_vs160.vcxproj +++ b/Data/MySQL/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -232,6 +232,57 @@ obj64\TestSuite\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + Disabled @@ -249,12 +300,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin\TestSuited.exe ..\..\..\lib;%(AdditionalLibraryDirectories) true @@ -284,12 +336,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin\TestSuite.exe ..\..\..\lib;%(AdditionalLibraryDirectories) false @@ -316,12 +369,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;Secur32.lib;shlwapi.lib;%(AdditionalDependencies) bin\static_mt\TestSuited.exe ..\..\..\lib;%(AdditionalLibraryDirectories) true @@ -351,12 +405,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;Secur32.lib;shlwapi.lib;%(AdditionalDependencies) bin\static_mt\TestSuite.exe ..\..\..\lib;%(AdditionalLibraryDirectories) false @@ -383,12 +438,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;Secur32.lib;shlwapi.lib;%(AdditionalDependencies) bin\static_md\TestSuited.exe ..\..\..\lib;%(AdditionalLibraryDirectories) true @@ -418,12 +474,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;Secur32.lib;shlwapi.lib;%(AdditionalDependencies) bin\static_md\TestSuite.exe ..\..\..\lib;%(AdditionalLibraryDirectories) false @@ -450,12 +507,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin64\TestSuited.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) true @@ -485,12 +543,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin64\TestSuite.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) false @@ -517,12 +576,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;Secur32.lib;shlwapi.lib;%(AdditionalDependencies) bin64\static_mt\TestSuited.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) true @@ -552,12 +612,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;Secur32.lib;shlwapi.lib;%(AdditionalDependencies) bin64\static_mt\TestSuite.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) false @@ -584,12 +645,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;Secur32.lib;shlwapi.lib;%(AdditionalDependencies) bin64\static_md\TestSuited.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) true @@ -619,12 +681,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;Secur32.lib;shlwapi.lib;%(AdditionalDependencies) bin64\static_md\TestSuite.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) false diff --git a/Data/MySQL/testsuite/TestSuite_vs160.vcxproj.filters b/Data/MySQL/testsuite/TestSuite_vs160.vcxproj.filters index 33a59fa97..5b354478e 100644 --- a/Data/MySQL/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Data/MySQL/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,28 +2,28 @@ - {924ec557-1753-4799-8cbe-7476a5c6999e} + {14c66b5a-ab53-4d53-9ffe-18324bcb628a} - {97dd25a6-a0be-4f11-b2ca-2a0b10c1a351} + {92a03466-d750-491c-8476-bab5483a804f} - {f37345d3-ebb6-4297-a469-386dfe2c1fa1} + {457eac21-75e5-4456-8153-5beb16850262} - {77a30e71-b38c-4bf3-8f28-f011cc06cb06} + {c5c3d0fc-2e5f-40fd-8386-95bf90d94017} - {e51ffe32-6130-4da7-98d2-8a29d8c2246b} + {61c02f1a-a4de-4369-b198-f441cc9447d3} - {aaa4bd68-f97f-4928-9740-3a601a4c5940} + {c4ca809e-2f74-487e-8378-79dbe7785266} - {b4712375-ae85-470c-a63d-327b37c16b71} + {dc4553b5-029e-4bbc-86cf-1d40dd66b4da} - {8254a402-3a54-49c2-83ed-7b7ab307d980} + {680e9f0e-4a00-4581-bbe8-43c0dc3dd58a} diff --git a/Data/MySQL/testsuite/TestSuite_vs170.vcxproj b/Data/MySQL/testsuite/TestSuite_vs170.vcxproj index 083638b4e..45c10a325 100644 --- a/Data/MySQL/testsuite/TestSuite_vs170.vcxproj +++ b/Data/MySQL/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -340,10 +340,85 @@ obj64\TestSuite\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + + + Release + true + Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -357,10 +432,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) true @@ -377,7 +455,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -390,10 +468,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) false @@ -406,7 +487,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -420,10 +501,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;Secur32.lib;shlwapi.lib;%(AdditionalDependencies) $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) true @@ -440,7 +524,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -453,10 +537,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;Secur32.lib;shlwapi.lib;%(AdditionalDependencies) $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) false @@ -469,7 +556,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -483,10 +570,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;Secur32.lib;shlwapi.lib;%(AdditionalDependencies) $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) true @@ -503,7 +593,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -516,10 +606,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;Secur32.lib;shlwapi.lib;%(AdditionalDependencies) $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) false @@ -532,7 +625,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -546,10 +639,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin\TestSuited.exe ..\..\..\lib;%(AdditionalLibraryDirectories) true @@ -566,7 +662,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -579,10 +675,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin\TestSuite.exe ..\..\..\lib;%(AdditionalLibraryDirectories) false @@ -595,7 +694,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -609,10 +708,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;Secur32.lib;shlwapi.lib;%(AdditionalDependencies) bin\static_mt\TestSuited.exe ..\..\..\lib;%(AdditionalLibraryDirectories) true @@ -629,7 +731,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -642,10 +744,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;Secur32.lib;shlwapi.lib;%(AdditionalDependencies) bin\static_mt\TestSuite.exe ..\..\..\lib;%(AdditionalLibraryDirectories) false @@ -658,7 +763,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -672,10 +777,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;Secur32.lib;shlwapi.lib;%(AdditionalDependencies) bin\static_md\TestSuited.exe ..\..\..\lib;%(AdditionalLibraryDirectories) true @@ -692,7 +800,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -705,10 +813,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;Secur32.lib;shlwapi.lib;%(AdditionalDependencies) bin\static_md\TestSuite.exe ..\..\..\lib;%(AdditionalLibraryDirectories) false @@ -721,7 +832,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -735,10 +846,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin64\TestSuited.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) true @@ -755,7 +869,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -768,10 +882,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) bin64\TestSuite.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) false @@ -784,7 +901,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -798,10 +915,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;Secur32.lib;shlwapi.lib;%(AdditionalDependencies) bin64\static_mt\TestSuited.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) true @@ -818,7 +938,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -831,10 +951,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;Secur32.lib;shlwapi.lib;%(AdditionalDependencies) bin64\static_mt\TestSuite.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) false @@ -847,7 +970,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -861,10 +984,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;Secur32.lib;shlwapi.lib;%(AdditionalDependencies) bin64\static_md\TestSuited.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) true @@ -881,7 +1007,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\mysql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -894,10 +1020,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;Crypt32.lib;Secur32.lib;shlwapi.lib;%(AdditionalDependencies) bin64\static_md\TestSuite.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) false @@ -915,15 +1044,23 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Data/MySQL/testsuite/TestSuite_vs170.vcxproj.filters b/Data/MySQL/testsuite/TestSuite_vs170.vcxproj.filters index d9b8002a8..b8a995740 100644 --- a/Data/MySQL/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Data/MySQL/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,28 +2,28 @@ - {70e207d1-df25-48bb-876d-ef409138f1b3} + {664bd330-d1f8-479b-9d71-1b5a7096b0e9} - {3fb6fff1-8b74-414a-b207-21b52d944f4a} + {e64103c0-0017-4fea-9424-e638c8b81e0c} - {1f7bf169-8c4a-4916-a4b6-cedca1de05a7} + {8f179844-b08d-41a8-84f1-8ce0ea9a01e7} - {5a5a5709-5023-48fb-b5ef-04f278c3a373} + {51e2a560-6a7b-4f40-af4a-be8af21cace8} - {655df9d6-25b9-40f6-a676-774a9b7a68ed} + {291e8cfb-d81b-4052-9902-589ba1fb135c} - {fb215f7b-16a4-4636-8be4-8ad05620a751} + {d5ed438c-61c4-4b46-b5de-841eb6887ac8} - {1884265a-eeaa-40ce-a482-88db43b1a781} + {a07307a6-944b-4c0f-87d0-e49ece1657ad} - {2d93157c-bbe0-4314-b051-48ed6db6ca30} + {3f663ed8-7dfa-4342-9ea6-ad7e5fc3041d} diff --git a/Data/ODBC/ODBC_vs160.vcxproj b/Data/ODBC/ODBC_vs160.vcxproj index 76778d6e4..26e6baf75 100644 --- a/Data/ODBC/ODBC_vs160.vcxproj +++ b/Data/ODBC/ODBC_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoDataODBCd PocoDataODBCmdd PocoDataODBCmtd @@ -241,6 +241,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -277,6 +278,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -311,6 +313,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -339,6 +342,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -364,6 +368,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -392,6 +397,7 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -418,6 +424,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -454,6 +461,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -488,6 +496,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -516,6 +525,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -541,6 +551,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -569,6 +580,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/ODBC/ODBC_vs160.vcxproj.filters b/Data/ODBC/ODBC_vs160.vcxproj.filters index 56e4c624f..9d9dece57 100644 --- a/Data/ODBC/ODBC_vs160.vcxproj.filters +++ b/Data/ODBC/ODBC_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {8b004104-3ffd-4dc8-8ac0-4ae84e742459} + {cfbbf1e4-d74b-4019-bc8a-c4b29aca049b} - {37f249ab-fbe6-4178-9a6b-165b109834b4} + {d4e95464-1748-420b-aa8c-bcfd20538d62} - {1320226b-aa76-40c8-88ee-737825fa5f8d} + {8ad20958-b280-4e25-859b-74cf1d2e5cb0} diff --git a/Data/ODBC/ODBC_vs170.vcxproj b/Data/ODBC/ODBC_vs170.vcxproj index 4e215a5e9..7a9fd6731 100644 --- a/Data/ODBC/ODBC_vs170.vcxproj +++ b/Data/ODBC/ODBC_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoDataODBCA64d PocoDataODBCmdd PocoDataODBCmtd @@ -345,6 +345,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -381,6 +382,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -415,6 +417,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -443,6 +446,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -468,6 +472,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -496,6 +501,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -521,6 +527,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -557,6 +564,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -591,6 +599,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -619,6 +628,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -644,6 +654,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -672,6 +683,7 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -698,6 +710,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -734,6 +747,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -768,6 +782,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -796,6 +811,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -821,6 +837,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -849,6 +866,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/ODBC/ODBC_vs170.vcxproj.filters b/Data/ODBC/ODBC_vs170.vcxproj.filters index 5de0c0fe3..787aa3173 100644 --- a/Data/ODBC/ODBC_vs170.vcxproj.filters +++ b/Data/ODBC/ODBC_vs170.vcxproj.filters @@ -2,13 +2,13 @@ - {ed003841-e8ed-440a-a5b3-5a9b10309562} + {edf57ccf-6ef9-4542-8dde-961d0bb47177} - {1b16d4be-a98c-4712-b31e-2aefeb5cf438} + {a31bdc60-61d6-4f00-834e-968a18cc9e31} - {9a908646-f5af-43bf-b294-2628e33b38cd} + {624e1ed4-cc1f-4761-a826-a11146b225ea} diff --git a/Data/ODBC/testsuite/TestSuite_vs160.vcxproj b/Data/ODBC/testsuite/TestSuite_vs160.vcxproj index 23fd5587a..3983cb445 100644 --- a/Data/ODBC/testsuite/TestSuite_vs160.vcxproj +++ b/Data/ODBC/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -249,6 +249,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -284,6 +285,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -316,6 +318,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -351,6 +354,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -383,6 +387,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -418,6 +423,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -450,6 +456,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -485,6 +492,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -517,6 +525,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -552,6 +561,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -584,6 +594,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -619,6 +630,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/ODBC/testsuite/TestSuite_vs160.vcxproj.filters b/Data/ODBC/testsuite/TestSuite_vs160.vcxproj.filters index 6f786c73c..2c79ebb97 100644 --- a/Data/ODBC/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Data/ODBC/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,28 +2,28 @@ - {48efde3e-262d-4a9f-a880-85060871285d} + {6231ff02-116a-4458-ae7c-6951d1fa2234} - {e1d04e08-1065-4d23-9ed3-08e0f7326fb4} + {4db122f9-a654-4ded-903b-206d78c701fa} - {99f9a720-5b72-4ca1-9bb3-383414de1651} + {1432fc35-50ea-46f6-9277-359f0b3e3c05} - {8740d7a4-5d7e-4921-a24e-ae4ae1214918} + {ab345c97-be2b-4db7-b97b-12c3b38b3e20} - {2e457954-e262-47b4-8c7d-b2d453de1d5d} + {c7f07218-629b-4d8a-b889-61152509fe5b} - {b7934d67-65aa-4c86-9932-113feec23869} + {b21ab6fd-1d23-453b-a265-cfd510c8f67d} - {94642818-83b0-4347-a2e1-c2015c8d2850} + {c4f4b732-2bcc-44be-aae6-6e6c6e092b1f} - {d3f9ac9e-ef3c-4fcc-9e32-e1dc36b22432} + {01d96315-3586-4f53-b4ab-dbfc1abc6c0f} diff --git a/Data/ODBC/testsuite/TestSuite_vs170.vcxproj b/Data/ODBC/testsuite/TestSuite_vs170.vcxproj index ea4315f5b..800b795f8 100644 --- a/Data/ODBC/testsuite/TestSuite_vs170.vcxproj +++ b/Data/ODBC/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -343,7 +343,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -357,6 +357,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -379,7 +380,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -392,6 +393,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -410,7 +412,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -424,6 +426,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -446,7 +449,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -459,6 +462,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -477,7 +481,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -491,6 +495,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -513,7 +518,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -526,6 +531,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -544,7 +550,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -558,6 +564,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -580,7 +587,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -593,6 +600,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -611,7 +619,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -625,6 +633,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -647,7 +656,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -660,6 +669,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -678,7 +688,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -692,6 +702,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -714,7 +725,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -727,6 +738,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -745,7 +757,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -759,6 +771,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -781,7 +794,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -794,6 +807,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -812,7 +826,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -826,6 +840,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -848,7 +863,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -861,6 +876,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -879,7 +895,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -893,6 +909,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -915,7 +932,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -928,6 +945,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/ODBC/testsuite/TestSuite_vs170.vcxproj.filters b/Data/ODBC/testsuite/TestSuite_vs170.vcxproj.filters index d299a0b1f..89cdb9733 100644 --- a/Data/ODBC/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Data/ODBC/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,28 +2,28 @@ - {c7e9a1ea-73f4-4226-b310-b265201e0be9} + {a8b918ab-888a-4604-a744-45e858bb30a3} - {2348173e-2e62-4809-99ea-676ebb4198c0} + {bca6241c-81c0-486c-ad73-821cba6704a2} - {8926ceae-a008-4b2d-accb-ff1e4f4a1b77} + {580f7a0f-c8b6-4dea-bf4d-a1125a2339a9} - {30658ecd-cf47-42ec-8568-5acc3a624a78} + {dafd2c33-0632-4d23-ac55-c36948dd438a} - {5192786d-b801-40d6-a989-f7fdc825f525} + {26b3c73f-fd3b-4424-b8a3-458028caf6c6} - {4a23e42f-ef34-4ab0-b282-21cf3de054b9} + {2af50042-f532-4332-a2d2-f2eb7ac07c5d} - {90adb98e-9140-4322-88ba-3ed19efe888c} + {43a0227f-ede2-486b-9dd9-f8b61a23c772} - {099c216f-5416-41a0-b28d-fb3156debbcd} + {8bb50cee-2db9-4ac2-bc30-5e1dfc18b685} diff --git a/Data/PostgreSQL/PostgreSQL_vs160.vcxproj b/Data/PostgreSQL/PostgreSQL_vs160.vcxproj index fde08f4d4..081e3d1ff 100644 --- a/Data/PostgreSQL/PostgreSQL_vs160.vcxproj +++ b/Data/PostgreSQL/PostgreSQL_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoDataPostgreSQLd PocoDataPostgreSQLmdd PocoDataPostgreSQLmtd @@ -224,6 +224,57 @@ ..\..\lib64\ obj64\PostgreSQL\$(Configuration)\ + + true + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + Disabled @@ -241,6 +292,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -276,6 +328,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -309,6 +362,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -337,6 +391,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -362,6 +417,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -390,6 +446,7 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -415,6 +472,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -450,6 +508,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -483,6 +542,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -511,6 +571,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -536,6 +597,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -564,6 +626,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/PostgreSQL/PostgreSQL_vs170.vcxproj b/Data/PostgreSQL/PostgreSQL_vs170.vcxproj index 69299df54..2da07dce7 100644 --- a/Data/PostgreSQL/PostgreSQL_vs170.vcxproj +++ b/Data/PostgreSQL/PostgreSQL_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoDataPostgreSQLA64d PocoDataPostgreSQLmdd PocoDataPostgreSQLmtd @@ -328,6 +328,81 @@ ..\..\lib64\ obj64\PostgreSQL\$(Configuration)\ + + true + + + Debug + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + + + Release + true + Disabled @@ -345,6 +420,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -380,6 +456,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -413,6 +490,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -441,6 +519,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -466,6 +545,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -494,6 +574,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -519,6 +600,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -554,6 +636,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -587,6 +670,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -615,6 +699,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -640,6 +725,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -668,6 +754,7 @@ Level3 Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -693,6 +780,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -728,6 +816,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -761,6 +850,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -789,6 +879,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -814,6 +905,7 @@ Level3 ProgramDatabase Default + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -842,6 +934,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj b/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj index 899989a04..053d5fc2b 100644 --- a/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj +++ b/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -232,10 +232,61 @@ obj64\TestSuite\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -249,12 +300,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitd.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;%(AdditionalDependencies) bin\TestSuited.exe ..\..\..\lib;%(AdditionalLibraryDirectories) true @@ -271,7 +323,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -284,12 +336,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnit.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;%(AdditionalDependencies) bin\TestSuite.exe ..\..\..\lib;%(AdditionalLibraryDirectories) false @@ -302,7 +355,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -316,12 +369,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;Crypt32.lib;Secur32.lib;%(AdditionalDependencies) bin\static_mt\TestSuited.exe ..\..\..\lib;%(AdditionalLibraryDirectories) true @@ -338,7 +392,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreaded @@ -351,12 +405,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;Crypt32.lib;Secur32.lib;%(AdditionalDependencies) bin\static_mt\TestSuite.exe ..\..\..\lib;%(AdditionalLibraryDirectories) false @@ -369,7 +424,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -383,12 +438,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;Crypt32.lib;Secur32.lib;%(AdditionalDependencies) bin\static_md\TestSuited.exe ..\..\..\lib;%(AdditionalLibraryDirectories) true @@ -405,7 +461,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -418,12 +474,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;Crypt32.lib;Secur32.lib;%(AdditionalDependencies) bin\static_md\TestSuite.exe ..\..\..\lib;%(AdditionalLibraryDirectories) false @@ -436,7 +493,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -450,12 +507,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitd.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;%(AdditionalDependencies) bin64\TestSuited.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) true @@ -472,7 +530,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -485,12 +543,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnit.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;%(AdditionalDependencies) bin64\TestSuite.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) false @@ -503,7 +562,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -517,12 +576,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;Crypt32.lib;Secur32.lib;%(AdditionalDependencies) bin64\static_mt\TestSuited.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) true @@ -539,7 +599,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreaded @@ -552,12 +612,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;Crypt32.lib;Secur32.lib;%(AdditionalDependencies) bin64\static_mt\TestSuite.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) false @@ -570,7 +631,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -584,12 +645,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;Crypt32.lib;Secur32.lib;%(AdditionalDependencies) bin64\static_md\TestSuited.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) true @@ -606,7 +668,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -619,12 +681,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;Crypt32.lib;Secur32.lib;%(AdditionalDependencies) bin64\static_md\TestSuite.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) false diff --git a/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj.filters b/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj.filters index 950145186..d805c815e 100644 --- a/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Data/PostgreSQL/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,28 +2,28 @@ - {a15667a0-1722-49f7-9028-3c5af817f80e} + {00925bd0-9dad-4b34-a9b9-32ba690bf808} - {c010c8ca-541a-4f25-8c8f-69be6a00d7d3} + {86d38b5e-2970-4d0a-9d75-d5d66657853f} - {dfafa03d-5c73-406e-b7ab-d6095d97164b} + {ea0df2f9-f36a-43d2-9e85-8f5913a4c606} - {114b0949-48ab-4ecd-88a5-71ba581ed275} + {4c4c817b-521a-4be8-8e41-97fdd7221f7e} - {79b8207a-fa47-4422-a6e1-be62752f430a} + {9dc61371-c417-428b-abed-fc89072618d1} - {df66b67c-1082-49d8-aa77-9652854e79ce} + {0c74542d-c7ca-4069-a6a0-04c662a91595} - {30018351-b2f8-45c4-b081-9855cf69a73d} + {50241849-45b6-4e3d-b91a-e53e5a26b688} - {9ca506c9-d65c-4ec0-b544-96a7f2e1ff11} + {a113dc89-a280-4db4-b505-6c3aa137fd8b} diff --git a/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj b/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj index 1aed740d9..48dab921d 100644 --- a/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj +++ b/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -340,10 +340,85 @@ obj64\TestSuite\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + + + Release + true + Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -357,10 +432,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitd.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;%(AdditionalDependencies) $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) true @@ -377,7 +455,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -390,10 +468,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnit.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;%(AdditionalDependencies) $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) false @@ -406,7 +487,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -420,10 +501,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;Crypt32.lib;Secur32.lib;%(AdditionalDependencies) $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) true @@ -440,7 +524,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreaded @@ -453,10 +537,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;Crypt32.lib;Secur32.lib;%(AdditionalDependencies) $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) false @@ -469,7 +556,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -483,10 +570,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;Crypt32.lib;Secur32.lib;%(AdditionalDependencies) $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) true @@ -503,7 +593,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -516,10 +606,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;Crypt32.lib;Secur32.lib;%(AdditionalDependencies) $(OutDir)$(TargetName).exe ..\..\..\libA64;%(AdditionalLibraryDirectories) false @@ -532,7 +625,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -546,10 +639,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitd.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;%(AdditionalDependencies) bin\TestSuited.exe ..\..\..\lib;%(AdditionalLibraryDirectories) true @@ -566,7 +662,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -579,10 +675,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnit.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;%(AdditionalDependencies) bin\TestSuite.exe ..\..\..\lib;%(AdditionalLibraryDirectories) false @@ -595,7 +694,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -609,10 +708,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;Crypt32.lib;Secur32.lib;%(AdditionalDependencies) bin\static_mt\TestSuited.exe ..\..\..\lib;%(AdditionalLibraryDirectories) true @@ -629,7 +731,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreaded @@ -642,10 +744,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;Crypt32.lib;Secur32.lib;%(AdditionalDependencies) bin\static_mt\TestSuite.exe ..\..\..\lib;%(AdditionalLibraryDirectories) false @@ -658,7 +763,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -672,10 +777,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;Crypt32.lib;Secur32.lib;%(AdditionalDependencies) bin\static_md\TestSuited.exe ..\..\..\lib;%(AdditionalLibraryDirectories) true @@ -692,7 +800,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -705,10 +813,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;Crypt32.lib;Secur32.lib;%(AdditionalDependencies) bin\static_md\TestSuite.exe ..\..\..\lib;%(AdditionalLibraryDirectories) false @@ -721,7 +832,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -735,10 +846,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitd.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;%(AdditionalDependencies) bin64\TestSuited.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) true @@ -755,7 +869,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -768,10 +882,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnit.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;%(AdditionalDependencies) bin64\TestSuite.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) false @@ -784,7 +901,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -798,10 +915,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;Crypt32.lib;Secur32.lib;%(AdditionalDependencies) bin64\static_mt\TestSuited.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) true @@ -818,7 +938,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreaded @@ -831,10 +951,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;Crypt32.lib;Secur32.lib;%(AdditionalDependencies) bin64\static_mt\TestSuite.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) false @@ -847,7 +970,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true EnableFastChecks @@ -861,10 +984,13 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;Crypt32.lib;Secur32.lib;%(AdditionalDependencies) bin64\static_md\TestSuited.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) true @@ -881,7 +1007,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\postgresql\include;..\..\..\Foundation\include; ..\..\..\Data\include;..\..\..\Data\DataTest\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -894,10 +1020,13 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 - CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) + CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;wldap32.lib;Crypt32.lib;Secur32.lib;%(AdditionalDependencies) bin64\static_md\TestSuite.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) false @@ -915,15 +1044,23 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj.filters b/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj.filters index 5303c4ea6..93e0e0ad2 100644 --- a/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Data/PostgreSQL/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,28 +2,28 @@ - {1426fa27-35d9-4513-9f66-3537ff2d94b1} + {f6a6e4eb-409c-41d2-b4f7-a9011c2666d5} - {e4285a23-6fb3-43b1-889a-f81db867e93f} + {4408516c-8afa-4b61-9653-3b9e0fa70511} - {d3c8e624-61b1-4faa-af37-a0f9fd08317a} + {ce232ce4-d90a-4c52-8d42-e9192537a9d9} - {27f4b44e-ac77-4131-837e-5af866de11f0} + {15250e56-9492-42c8-b8e7-5bec93698660} - {1a05011d-353f-46d1-9945-9b5fe29aa160} + {8676f138-fe29-47e8-b46b-8d03c77d7095} - {d0b4c31a-b0ce-497c-bf78-831d6886c8f7} + {9172a560-d3f8-48ec-aa04-bf76c823f6dc} - {37f759f0-f214-4e79-a169-5636af2ddf90} + {6b95aafd-9e40-4294-81f6-20f2ebad343e} - {c54bd706-4bc9-4fa0-b5eb-8a8c12540b09} + {85ceacef-00a7-4835-9318-fe0df3162d16} diff --git a/Data/SQLite/SQLite_vs160.vcxproj b/Data/SQLite/SQLite_vs160.vcxproj index 47c5029a1..003ebb665 100644 --- a/Data/SQLite/SQLite_vs160.vcxproj +++ b/Data/SQLite/SQLite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoDataSQLited PocoDataSQLitemdd PocoDataSQLitemtd @@ -242,6 +242,7 @@ Default $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -278,6 +279,7 @@ Default $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -312,6 +314,7 @@ ProgramDatabase Default 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -341,6 +344,7 @@ Default $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -367,6 +371,7 @@ ProgramDatabase Default 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -396,6 +401,7 @@ Default 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -422,6 +428,7 @@ Default $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -458,6 +465,7 @@ Default $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -492,6 +500,7 @@ ProgramDatabase Default 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -521,6 +530,7 @@ Default $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -547,6 +557,7 @@ ProgramDatabase Default 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -576,6 +587,7 @@ Default $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/SQLite/SQLite_vs160.vcxproj.filters b/Data/SQLite/SQLite_vs160.vcxproj.filters index c229d3628..9d68ba51f 100644 --- a/Data/SQLite/SQLite_vs160.vcxproj.filters +++ b/Data/SQLite/SQLite_vs160.vcxproj.filters @@ -2,22 +2,22 @@ - {fd9f7cd4-cb33-4153-9bfb-100f86c6fdc7} + {08f657c8-6a2c-4a05-9cb8-0a24df22511f} - {ff6535b5-a1e2-451f-82c2-bbfe316ddb2a} + {137e5445-13e9-4d0e-88ca-b51c2a78b87f} - {d7b22751-409b-4cb7-ab78-c89745c2a70a} + {5ca955a1-b2cf-4690-aab9-5e8d1ab6b763} - {0ee9caef-0389-4cd4-85f0-1a6f20f6c6a1} + {5c4ae9d1-7bd9-4987-8827-56c88c89d82d} - {e0cc3d83-d99c-49cb-8cfd-c8002fe1ddc8} + {62d12f40-dd7c-4f3d-b128-b1a896b55544} - {be54820d-54b5-411d-9c18-1451dba024d7} + {34619493-0c10-4820-a64c-1a7b24284750} diff --git a/Data/SQLite/SQLite_vs170.vcxproj b/Data/SQLite/SQLite_vs170.vcxproj index d81239abd..5c07da8ef 100644 --- a/Data/SQLite/SQLite_vs170.vcxproj +++ b/Data/SQLite/SQLite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoDataSQLiteA64d PocoDataSQLitemdd PocoDataSQLitemtd @@ -346,6 +346,7 @@ Default $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -382,6 +383,7 @@ Default $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -416,6 +418,7 @@ ProgramDatabase Default 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -445,6 +448,7 @@ Default $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -471,6 +475,7 @@ ProgramDatabase Default 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -500,6 +505,7 @@ Default $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -526,6 +532,7 @@ Default $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -562,6 +569,7 @@ Default $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -596,6 +604,7 @@ ProgramDatabase Default 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -625,6 +634,7 @@ Default $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -651,6 +661,7 @@ ProgramDatabase Default 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -680,6 +691,7 @@ Default 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -706,6 +718,7 @@ Default $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -742,6 +755,7 @@ Default $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -776,6 +790,7 @@ ProgramDatabase Default 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -805,6 +820,7 @@ Default $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -831,6 +847,7 @@ ProgramDatabase Default 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -860,6 +877,7 @@ Default $(OutDir)$(TargetName).pdb 4996;4244;4018;%(DisableSpecificWarnings) + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/SQLite/SQLite_vs170.vcxproj.filters b/Data/SQLite/SQLite_vs170.vcxproj.filters index 6a4ab8b3e..4764bc27e 100644 --- a/Data/SQLite/SQLite_vs170.vcxproj.filters +++ b/Data/SQLite/SQLite_vs170.vcxproj.filters @@ -2,22 +2,22 @@ - {cd53f9bd-a54e-471b-baca-7dc9c716d85e} + {c43e4fe6-e999-4710-abf9-c3ac71054bdf} - {e55c2057-b0a9-40c5-bdab-2a4f4dee0ed4} + {256a7282-f781-469b-82ef-898c04defe77} - {00217a54-1806-4de4-8266-1cfbd2981e70} + {1dec9834-f18c-4dfe-8e14-d35b73b83636} - {429811b8-9994-460a-af2b-b615a938fa8d} + {3a52346c-b114-4989-9c9d-55627fabbe24} - {beefb226-4ea2-4e1a-a948-8c03473ce75a} + {faae9992-6c0f-4ac6-9af2-2e3a2bb39def} - {a3482cc4-c21d-40bd-9f65-e1678f03aeb9} + {e9f5da58-ed7a-4e9d-8731-751b30b0f2a8} diff --git a/Data/SQLite/testsuite/TestSuite_vs160.vcxproj b/Data/SQLite/testsuite/TestSuite_vs160.vcxproj index 3b2ab061c..eceb262ee 100644 --- a/Data/SQLite/testsuite/TestSuite_vs160.vcxproj +++ b/Data/SQLite/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -249,6 +249,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -284,6 +285,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -316,6 +318,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -351,6 +354,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -383,6 +387,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -418,6 +423,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -450,6 +456,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -485,6 +492,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -517,6 +525,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -552,6 +561,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -584,6 +594,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -619,6 +630,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/SQLite/testsuite/TestSuite_vs160.vcxproj.filters b/Data/SQLite/testsuite/TestSuite_vs160.vcxproj.filters index f58478d28..e3c7d51be 100644 --- a/Data/SQLite/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Data/SQLite/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,28 +2,28 @@ - {b947611c-9004-493c-967a-caa6ef15244e} + {be84b1b3-4722-4c46-b587-8f4093ea284e} - {b389e350-8391-47f5-bbe8-c424caed3a2b} + {a65c75ae-329d-4231-8daa-9c406de872ab} - {9fe973fd-eb8c-4fab-ad5f-f4486f206bd4} + {adc85427-a0ff-4fe7-af3a-942db760a32b} - {cd5d0eff-85db-448b-85cf-ff5f3d1335bd} + {e865c3ab-caa4-4ed7-8526-b5579ac8a1b4} - {c074c52b-4f61-4b3b-aafa-abdb99ad6835} + {467582d1-c100-4e33-bd24-e67b9712eb1c} - {649c53dc-ceb0-46c9-af3d-59a860a9fb47} + {a9552fc7-8423-47f2-b666-4804a4665a46} - {58088a5d-56bd-4f0d-9dc1-cd96d01f8b50} + {a29e53fe-53f1-4da5-9057-ee5ce724db47} - {45b69f8d-ba6c-4a41-8398-3492c99da64a} + {907303fb-5516-4d43-b6e4-46cfc0dfbd3c} diff --git a/Data/SQLite/testsuite/TestSuite_vs170.vcxproj b/Data/SQLite/testsuite/TestSuite_vs170.vcxproj index 401b89f37..0572a4d56 100644 --- a/Data/SQLite/testsuite/TestSuite_vs170.vcxproj +++ b/Data/SQLite/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -343,7 +343,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -357,6 +357,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -379,7 +380,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -392,6 +393,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -410,7 +412,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -424,6 +426,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -446,7 +449,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -459,6 +462,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -477,7 +481,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -491,6 +495,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -513,7 +518,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -526,6 +531,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -544,7 +550,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -558,6 +564,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -580,7 +587,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -593,6 +600,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -611,7 +619,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -625,6 +633,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -647,7 +656,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -660,6 +669,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -678,7 +688,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\CppUnit\WinTestRunner\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -692,6 +702,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -714,7 +725,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -727,6 +738,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -745,7 +757,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true EnableFastChecks @@ -759,6 +771,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -781,7 +794,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -794,6 +807,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -812,7 +826,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -826,6 +840,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -848,7 +863,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -861,6 +876,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -879,7 +895,7 @@ Disabled - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -893,6 +909,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -915,7 +932,7 @@ true Speed true - ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;%(AdditionalIncludeDirectories) + ..\include;..\..\..\CppUnit\include;..\..\..\Foundation\include;..\..\..\Data\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0600;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -928,6 +945,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/SQLite/testsuite/TestSuite_vs170.vcxproj.filters b/Data/SQLite/testsuite/TestSuite_vs170.vcxproj.filters index 8bba61b52..66161fed3 100644 --- a/Data/SQLite/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Data/SQLite/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,28 +2,28 @@ - {62bc9434-578c-424b-af4b-838e351397f5} + {f9de83b8-90f8-4bf4-bd0e-544527dfc5e1} - {d11aa317-b999-454c-84af-0caae02b36f8} + {48afcb8c-269e-4261-866d-45c705ebcba7} - {de477f36-0385-4527-afe6-2c344f867014} + {40382a5a-4092-4733-b49e-995ab59d05fa} - {8f537ccd-f8fc-4079-8c37-5f0ac2c26436} + {78ac3e3f-a8a8-40b3-aa8f-d05b7b3b9939} - {836839b8-70df-4bf6-9130-447077a74d5c} + {18c1cf1d-55ac-48e9-bdd1-1756592adc53} - {c4807f6c-ac72-45f0-9230-4181bb2da4b5} + {765ca7fa-70fc-46c3-9511-3c1194c5b750} - {0503a1f8-53ab-4ddd-920c-bd3770f0b307} + {c2d6f86a-4fb9-4fa3-aa3c-7f381e95539d} - {6228e845-e29c-44cd-9347-0314b081373d} + {05aff675-5651-4f19-b1cd-febac4f9e20b} diff --git a/Data/samples/Binding/Binding_vs160.vcxproj b/Data/samples/Binding/Binding_vs160.vcxproj index ecf0398ca..ff28fda51 100644 --- a/Data/samples/Binding/Binding_vs160.vcxproj +++ b/Data/samples/Binding/Binding_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 Bindingd Bindingd Bindingd @@ -249,6 +249,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -284,6 +285,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -316,6 +318,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -351,6 +354,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -383,6 +387,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -418,6 +423,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -450,6 +456,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -485,6 +492,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -517,6 +525,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -552,6 +561,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -584,6 +594,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -619,6 +630,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/samples/Binding/Binding_vs160.vcxproj.filters b/Data/samples/Binding/Binding_vs160.vcxproj.filters index 26d7f21fe..3827081da 100644 --- a/Data/samples/Binding/Binding_vs160.vcxproj.filters +++ b/Data/samples/Binding/Binding_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {7db63845-ddd9-4c1d-b0a4-2c8a8c496dee} + {9cb3beb1-ba5d-41b4-b730-c13f1962f63d} - {a37b40b7-6e79-4d5a-8e48-8e89fc812af3} + {0654e8c9-1119-494e-8354-f4127baa4a06} diff --git a/Data/samples/Binding/Binding_vs170.vcxproj b/Data/samples/Binding/Binding_vs170.vcxproj index bd6a2d007..da63c08b3 100644 --- a/Data/samples/Binding/Binding_vs170.vcxproj +++ b/Data/samples/Binding/Binding_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 Bindingd Bindingd Bindingd @@ -343,7 +343,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -357,6 +357,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -379,7 +380,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -392,6 +393,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -410,7 +412,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -424,6 +426,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -446,7 +449,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -459,6 +462,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -477,7 +481,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -491,6 +495,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -513,7 +518,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -526,6 +531,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -544,7 +550,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -558,6 +564,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -580,7 +587,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -593,6 +600,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -611,7 +619,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -625,6 +633,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -647,7 +656,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -660,6 +669,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -678,7 +688,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -692,6 +702,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -714,7 +725,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -727,6 +738,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -745,7 +757,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -759,6 +771,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -781,7 +794,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -794,6 +807,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -812,7 +826,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -826,6 +840,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -848,7 +863,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -861,6 +876,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -879,7 +895,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -893,6 +909,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -915,7 +932,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -928,6 +945,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/samples/Binding/Binding_vs170.vcxproj.filters b/Data/samples/Binding/Binding_vs170.vcxproj.filters index 66f7774f7..0e132bd94 100644 --- a/Data/samples/Binding/Binding_vs170.vcxproj.filters +++ b/Data/samples/Binding/Binding_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {b66be61f-2d0d-4620-9e29-36518c68c8bc} + {f0486d40-110f-4ead-ae3b-c1d6ac08cb08} - {65592551-377e-432a-9257-638f138d095e} + {77b53a00-a8fd-4951-b6fa-b123a7eb0f91} diff --git a/Data/samples/RecordSet/RecordSet_vs160.vcxproj b/Data/samples/RecordSet/RecordSet_vs160.vcxproj index 5b8fdcb4f..9679b443c 100644 --- a/Data/samples/RecordSet/RecordSet_vs160.vcxproj +++ b/Data/samples/RecordSet/RecordSet_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 RecordSetd RecordSetd RecordSetd @@ -249,6 +249,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -284,6 +285,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -316,6 +318,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -351,6 +354,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -383,6 +387,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -418,6 +423,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -450,6 +456,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -485,6 +492,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -517,6 +525,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -552,6 +561,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -584,6 +594,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -619,6 +630,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/samples/RecordSet/RecordSet_vs160.vcxproj.filters b/Data/samples/RecordSet/RecordSet_vs160.vcxproj.filters index d74037756..b2d6c5534 100644 --- a/Data/samples/RecordSet/RecordSet_vs160.vcxproj.filters +++ b/Data/samples/RecordSet/RecordSet_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {7f718ae4-4fd1-4a5f-9391-b91c85ffa2f5} + {f484ea7c-6c2a-49f1-81fa-66c10ea7fbf5} - {f755562f-6ac5-45f7-ae41-291b683aa88a} + {0a7755a0-861d-450c-99d4-9a179df9d2d9} diff --git a/Data/samples/RecordSet/RecordSet_vs170.vcxproj b/Data/samples/RecordSet/RecordSet_vs170.vcxproj index 08f11314a..bf8aa1774 100644 --- a/Data/samples/RecordSet/RecordSet_vs170.vcxproj +++ b/Data/samples/RecordSet/RecordSet_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 RecordSetd RecordSetd RecordSetd @@ -343,7 +343,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -357,6 +357,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -379,7 +380,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -392,6 +393,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -410,7 +412,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -424,6 +426,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -446,7 +449,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -459,6 +462,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -477,7 +481,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -491,6 +495,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -513,7 +518,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -526,6 +531,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -544,7 +550,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -558,6 +564,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -580,7 +587,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -593,6 +600,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -611,7 +619,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -625,6 +633,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -647,7 +656,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -660,6 +669,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -678,7 +688,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -692,6 +702,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -714,7 +725,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -727,6 +738,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -745,7 +757,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -759,6 +771,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -781,7 +794,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -794,6 +807,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -812,7 +826,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -826,6 +840,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -848,7 +863,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -861,6 +876,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -879,7 +895,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -893,6 +909,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -915,7 +932,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -928,6 +945,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/samples/RecordSet/RecordSet_vs170.vcxproj.filters b/Data/samples/RecordSet/RecordSet_vs170.vcxproj.filters index c7b587983..a7b8a12b3 100644 --- a/Data/samples/RecordSet/RecordSet_vs170.vcxproj.filters +++ b/Data/samples/RecordSet/RecordSet_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {96e43d12-7f78-4b66-a8b9-c83d2ef4822d} + {a4662e39-c099-4f65-bf2c-5da40168684c} - {ed7a2499-d73a-4049-9ea4-5c4a6219b25f} + {35bc9e38-9682-4cd3-b2d1-9b1d5e8cf92e} diff --git a/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj b/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj index c6ae0576a..1a0994317 100644 --- a/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj +++ b/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 RowFormatterd RowFormatterd RowFormatterd @@ -249,6 +249,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -284,6 +285,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -316,6 +318,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -351,6 +354,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -383,6 +387,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -418,6 +423,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -450,6 +456,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -485,6 +492,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -517,6 +525,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -552,6 +561,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -584,6 +594,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -619,6 +630,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj.filters b/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj.filters index 566c8c7ab..bc60d2a83 100644 --- a/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj.filters +++ b/Data/samples/RowFormatter/RowFormatter_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {e8fd3902-0f2e-4d24-8875-5b11fe24c9ad} + {44da8908-c5b2-47ce-96ef-32399efa83a6} - {8156dfb2-7719-4cd6-bd37-6199d5212f10} + {bbdd3937-90d6-470c-a220-6a5f836cdad9} diff --git a/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj b/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj index 42112adae..81d43f7d4 100644 --- a/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj +++ b/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 RowFormatterd RowFormatterd RowFormatterd @@ -343,7 +343,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -357,6 +357,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -379,7 +380,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -392,6 +393,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -410,7 +412,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -424,6 +426,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -446,7 +449,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -459,6 +462,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -477,7 +481,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -491,6 +495,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -513,7 +518,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -526,6 +531,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -544,7 +550,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -558,6 +564,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -580,7 +587,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -593,6 +600,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -611,7 +619,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -625,6 +633,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -647,7 +656,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -660,6 +669,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -678,7 +688,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -692,6 +702,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -714,7 +725,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -727,6 +738,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -745,7 +757,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -759,6 +771,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -781,7 +794,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -794,6 +807,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -812,7 +826,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -826,6 +840,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -848,7 +863,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -861,6 +876,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -879,7 +895,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -893,6 +909,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -915,7 +932,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -928,6 +945,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj.filters b/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj.filters index 206a6f1e6..9f34ad1c7 100644 --- a/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj.filters +++ b/Data/samples/RowFormatter/RowFormatter_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {abbe8f59-688c-4083-bb17-30afaf3b4078} + {2a1d790b-cbc6-4838-a942-cff99bfd18c2} - {b1637afe-a5e1-4f7a-99c0-6b7a5c67fe2e} + {452aef7d-9e20-4c55-bf64-dff76c90ad9d} diff --git a/Data/samples/Tuple/Tuple_vs160.vcxproj b/Data/samples/Tuple/Tuple_vs160.vcxproj index 5b4048752..4fa082245 100644 --- a/Data/samples/Tuple/Tuple_vs160.vcxproj +++ b/Data/samples/Tuple/Tuple_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 Tupled Tupled Tupled @@ -249,6 +249,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -284,6 +285,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -316,6 +318,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -351,6 +354,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -383,6 +387,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -418,6 +423,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -450,6 +456,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -485,6 +492,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -517,6 +525,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -552,6 +561,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -584,6 +594,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -619,6 +630,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/samples/Tuple/Tuple_vs160.vcxproj.filters b/Data/samples/Tuple/Tuple_vs160.vcxproj.filters index 1a9d7e620..6e54c6024 100644 --- a/Data/samples/Tuple/Tuple_vs160.vcxproj.filters +++ b/Data/samples/Tuple/Tuple_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {eeca3f66-a5ab-47b5-b81c-5a44a5755bd3} + {e0e0c806-ebcf-4b08-b1d6-6ea659fe4c5e} - {2cf46c17-bed9-41a6-b881-e9f675c62755} + {e102bfdc-04b1-4af3-b007-c2e4cceac792} diff --git a/Data/samples/Tuple/Tuple_vs170.vcxproj b/Data/samples/Tuple/Tuple_vs170.vcxproj index 32c4718ef..5c70ef77d 100644 --- a/Data/samples/Tuple/Tuple_vs170.vcxproj +++ b/Data/samples/Tuple/Tuple_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 Tupled Tupled Tupled @@ -343,7 +343,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -357,6 +357,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -379,7 +380,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -392,6 +393,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -410,7 +412,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -424,6 +426,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -446,7 +449,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -459,6 +462,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -477,7 +481,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -491,6 +495,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -513,7 +518,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -526,6 +531,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -544,7 +550,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -558,6 +564,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -580,7 +587,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -593,6 +600,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -611,7 +619,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -625,6 +633,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -647,7 +656,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -660,6 +669,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -678,7 +688,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -692,6 +702,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -714,7 +725,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -727,6 +738,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -745,7 +757,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -759,6 +771,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -781,7 +794,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -794,6 +807,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -812,7 +826,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -826,6 +840,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -848,7 +863,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -861,6 +876,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -879,7 +895,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -893,6 +909,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -915,7 +932,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -928,6 +945,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/samples/Tuple/Tuple_vs170.vcxproj.filters b/Data/samples/Tuple/Tuple_vs170.vcxproj.filters index 00933f38c..f72f0ff78 100644 --- a/Data/samples/Tuple/Tuple_vs170.vcxproj.filters +++ b/Data/samples/Tuple/Tuple_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {3fa1093b-2e2f-48d3-91bc-1faed241dfe1} + {e448382e-ef19-4815-9c67-c3b51191a46f} - {89e9f080-6f25-42e9-bce1-121f839d2d69} + {4b6a214d-02e3-4a6e-b063-b18e147cc87e} diff --git a/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj b/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj index 484d3a5e4..5ff40103c 100644 --- a/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj +++ b/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TypeHandlerd TypeHandlerd TypeHandlerd @@ -249,6 +249,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -284,6 +285,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -316,6 +318,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -351,6 +354,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -383,6 +387,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -418,6 +423,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -450,6 +456,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -485,6 +492,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -517,6 +525,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -552,6 +561,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -584,6 +594,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -619,6 +630,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj.filters b/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj.filters index 75c2f9f43..7d67a819a 100644 --- a/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj.filters +++ b/Data/samples/TypeHandler/TypeHandler_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {468a4d19-1e0e-469a-baac-389509a364a5} + {34aa516c-1ea9-454f-8143-0bb0033effa7} - {c36a0c8d-a274-4923-9454-07ca18b37d2f} + {7920540f-f837-46a0-9b16-a93fcf012c2d} diff --git a/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj b/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj index c618031dc..0d102ed25 100644 --- a/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj +++ b/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 TypeHandlerd TypeHandlerd TypeHandlerd @@ -343,7 +343,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -357,6 +357,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -379,7 +380,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -392,6 +393,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -410,7 +412,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -424,6 +426,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -446,7 +449,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -459,6 +462,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -477,7 +481,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -491,6 +495,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -513,7 +518,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -526,6 +531,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -544,7 +550,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -558,6 +564,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -580,7 +587,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -593,6 +600,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -611,7 +619,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -625,6 +633,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -647,7 +656,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -660,6 +669,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -678,7 +688,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -692,6 +702,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -714,7 +725,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -727,6 +738,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -745,7 +757,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -759,6 +771,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -781,7 +794,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -794,6 +807,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -812,7 +826,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -826,6 +840,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -848,7 +863,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -861,6 +876,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -879,7 +895,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -893,6 +909,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -915,7 +932,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -928,6 +945,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj.filters b/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj.filters index d006adc3a..897b654c9 100644 --- a/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj.filters +++ b/Data/samples/TypeHandler/TypeHandler_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {2080fcd4-75d2-47d1-8901-b6e36837010c} + {7492c51c-5896-4ef8-9ca2-be5fb7fbccdd} - {7dd4895e-fb1b-409c-a507-df11d3dabf37} + {4d69a80c-e348-445b-a1d1-b80b88a191de} diff --git a/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj b/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj index 58c398994..fa835a178 100644 --- a/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj +++ b/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 WebNotifierd WebNotifierd WebNotifierd @@ -249,6 +249,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -284,6 +285,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -316,6 +318,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -351,6 +354,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -383,6 +387,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -418,6 +423,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -450,6 +456,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -485,6 +492,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -517,6 +525,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -552,6 +561,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -584,6 +594,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -619,6 +630,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj.filters b/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj.filters index 208b412fa..07ae34181 100644 --- a/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj.filters +++ b/Data/samples/WebNotifier/WebNotifier_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {7801ba72-87aa-4baf-b29b-d48867a82522} + {070d01b0-9e93-4d64-841c-85dd178c5a91} - {c9a95d09-32e7-4f73-84ef-26cacd824aab} + {3df7920e-4cc6-479f-a01b-05537b33fe70} diff --git a/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj b/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj index 4fd1fc901..a1af34077 100644 --- a/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj +++ b/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 WebNotifierd WebNotifierd WebNotifierd @@ -343,7 +343,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -357,6 +357,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -379,7 +380,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -392,6 +393,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -410,7 +412,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -424,6 +426,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -446,7 +449,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -459,6 +462,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -477,7 +481,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -491,6 +495,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -513,7 +518,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -526,6 +531,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -544,7 +550,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -558,6 +564,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -580,7 +587,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -593,6 +600,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -611,7 +619,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -625,6 +633,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -647,7 +656,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -660,6 +669,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -678,7 +688,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -692,6 +702,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -714,7 +725,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -727,6 +738,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -745,7 +757,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true EnableFastChecks @@ -759,6 +771,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -781,7 +794,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -794,6 +807,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -812,7 +826,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -826,6 +840,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -848,7 +863,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreaded @@ -861,6 +876,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -879,7 +895,7 @@ Disabled - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true EnableFastChecks @@ -893,6 +909,7 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -915,7 +932,7 @@ true Speed true - .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\..\..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + .\include;..\..\..\Foundation\include;..\..\..\Data\include;..\..\..\Data\SQLParser;..\Data\SQLParser\src;..\..\..\Data\SQLite\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) true MultiThreadedDLL @@ -928,6 +945,7 @@ Default $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 diff --git a/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj.filters b/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj.filters index 4d9d98858..e32fa5907 100644 --- a/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj.filters +++ b/Data/samples/WebNotifier/WebNotifier_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {a0e05d21-ad87-4322-8c68-d9cfb15cbd85} + {e92e910b-6088-4bb5-830c-70a810287447} - {265b8749-8202-4f8e-be5b-46ba0e742cb5} + {39317164-364f-4b57-8b66-f8d84d2c3710} diff --git a/Data/samples/samples_vs170.sln b/Data/samples/samples_vs170.sln index 372d7d38a..6f30352e8 100644 --- a/Data/samples/samples_vs170.sln +++ b/Data/samples/samples_vs170.sln @@ -14,6 +14,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WebNotifier", "WebNotifier\ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|ARM64 = debug_shared|ARM64 + release_shared|ARM64 = release_shared|ARM64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 + release_static_mt|ARM64 = release_static_mt|ARM64 + debug_static_md|ARM64 = debug_static_md|ARM64 + release_static_md|ARM64 = release_static_md|ARM64 debug_shared|Win32 = debug_shared|Win32 release_shared|Win32 = release_shared|Win32 debug_static_mt|Win32 = debug_static_mt|Win32 @@ -28,6 +34,24 @@ Global release_static_md|x64 = release_static_md|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_shared|Win32.Build.0 = debug_shared|Win32 {0F0DF069-83D1-378D-A949-8DF9A883B627}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -64,6 +88,24 @@ Global {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_md|x64.ActiveCfg = release_static_md|x64 {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_md|x64.Build.0 = release_static_md|x64 {0F0DF069-83D1-378D-A949-8DF9A883B627}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_shared|Win32.Build.0 = debug_shared|Win32 {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -100,6 +142,24 @@ Global {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_md|x64.ActiveCfg = release_static_md|x64 {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_md|x64.Build.0 = release_static_md|x64 {FEE20DCE-B9E3-30AB-A40C-B6A324997328}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_shared|Win32.Build.0 = debug_shared|Win32 {133C62C7-3301-3F43-9ABF-14DF094A042F}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -136,6 +196,24 @@ Global {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_md|x64.ActiveCfg = release_static_md|x64 {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_md|x64.Build.0 = release_static_md|x64 {133C62C7-3301-3F43-9ABF-14DF094A042F}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_shared|Win32.Build.0 = debug_shared|Win32 {F143DA5A-221A-3737-BCBA-F5BFD977038F}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -172,6 +250,24 @@ Global {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_md|x64.ActiveCfg = release_static_md|x64 {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_md|x64.Build.0 = release_static_md|x64 {F143DA5A-221A-3737-BCBA-F5BFD977038F}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_shared|Win32.Build.0 = debug_shared|Win32 {65A12348-CA20-324E-9F5E-7F82753C2C65}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -208,6 +304,24 @@ Global {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_md|x64.ActiveCfg = release_static_md|x64 {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_md|x64.Build.0 = release_static_md|x64 {65A12348-CA20-324E-9F5E-7F82753C2C65}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_shared|Win32.Build.0 = debug_shared|Win32 {BACF8377-AD61-3B07-9BD5-6AEFCB0EC754}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 diff --git a/Data/testsuite/TestSuite_vs160.vcxproj b/Data/testsuite/TestSuite_vs160.vcxproj index 723e4adf8..a941a505f 100644 --- a/Data/testsuite/TestSuite_vs160.vcxproj +++ b/Data/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited diff --git a/Data/testsuite/TestSuite_vs160.vcxproj.filters b/Data/testsuite/TestSuite_vs160.vcxproj.filters index c6fde03c1..b8d9e8e00 100644 --- a/Data/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Data/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,55 +2,55 @@ - {dfd921ee-f44a-4469-bd36-16e73a4782eb} + {fbf94003-99cf-49af-a92b-f2203326d38a} - {44f79575-87b7-457c-b17f-5c95658db37e} + {e88351a3-0cf3-46e4-8be8-36154b696fa8} - {d4ccd324-3061-4bfe-99f5-5d59560d0b79} + {6fb34629-6222-424f-bbca-35c7a77945dc} - {be3313fc-81dc-4ac7-99f8-34af544d5b8d} + {00cab4a2-3abd-4862-8483-ea34b0f8153e} - {5cbc6e2e-d7e9-4259-9099-df738908f69f} + {39fdfd80-5b89-4caf-98c4-652044a3211f} - {678c9607-0589-4909-926b-acfbd4ee993e} + {396c521c-3463-48a4-831e-e74aba10080b} - {b4eba29e-60d4-4c15-a067-54f08f43bcee} + {c869530d-1fb7-4c49-974e-cab406223baa} - {952418c0-8de9-4baa-9153-39e52c0bde8c} + {1bece5c5-85df-408a-b815-59115b978297} - {8ae57633-9c90-49ca-9573-0414c03dadf3} + {233064e3-27a7-40b4-9d62-f30d971c1bbc} - {1b49dc10-5b24-413e-bbe6-e9b20ece7cb6} + {31b1992c-5bbb-45d0-8816-20eb4296d7fd} - {6a34879c-4503-407b-b114-4fce615298a3} + {5136aaed-e528-4aaa-b42e-21334f086909} - {4b4d8d5c-4bf4-48de-8382-fa995ceed795} + {61ae3d3b-59da-48e2-80d7-c4d2c269ebde} - {5e2fdca1-603b-43ba-8fb9-13d339bb4a13} + {f60a00fa-177a-48e2-9cf4-92a8622be1f8} - {8f88f0b0-1765-44e6-8bb1-da8933cf1561} + {ae1958e0-2771-4853-bc59-801258318d1a} - {f4c50fd9-392e-451f-bc9d-68888d5eab85} + {27ba5569-bfa2-4539-b7a8-77b76ce6bf0d} - {f59b0b24-007a-4a91-9b10-3183563e1c3d} + {8180550c-e44c-4f20-b180-1be953bed513} - {129e1247-b096-45d4-87fa-077f3f6433df} + {6300bbab-378c-4672-aa62-b07ee9454b7b} diff --git a/Data/testsuite/TestSuite_vs170.vcxproj b/Data/testsuite/TestSuite_vs170.vcxproj index 498f42277..d93f857c9 100644 --- a/Data/testsuite/TestSuite_vs170.vcxproj +++ b/Data/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited diff --git a/Data/testsuite/TestSuite_vs170.vcxproj.filters b/Data/testsuite/TestSuite_vs170.vcxproj.filters index 9c98b1403..f7186e5db 100644 --- a/Data/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Data/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,55 +2,55 @@ - {2d95d7a3-3de5-4536-b35d-73126427acde} + {09879f5e-9a27-4ca5-8bdf-2caf922d0aa2} - {1be5b99c-df18-4cf6-864c-4dfff3baace1} + {578b459b-f730-4ace-9089-7535ba4ffdd3} - {dac6e4c4-bf63-44b7-a361-e52b028d8729} + {7e56f300-3692-43c0-9c62-07c2fc611aa5} - {41739753-7509-4581-bc29-dcbd1d2c2b6d} + {81342c6d-8f9c-42e0-9bb7-c1ea3228d822} - {a4d172ec-3e50-4146-8ba6-91b5527eefd0} + {d742d34f-b267-4ac2-8881-d303429b66db} - {d252092c-e433-431a-9237-88a3f9a0aa92} + {85c1ce22-860f-4537-bafe-e3aa4c8760be} - {8a7ff23d-a28d-4dd0-afd9-f60b5b8f337a} + {ce058e4f-5f84-4fd3-b9a6-22a35b9bcd29} - {867d2910-998f-4057-82b4-b65bbcb1b6b9} + {e65c754a-782e-44f1-8f9e-d45486188c5e} - {5693e2c5-1245-4cbe-953d-57f8e396d0d1} + {0c834c25-96c5-453e-be27-b7e392205027} - {9b5cdfa0-e245-4da8-b190-6699d839b8b7} + {a0843fcc-9709-4394-bb18-dad407a391a9} - {9fe6fa0d-437f-4bda-af9a-bcab22e9070e} + {8cf6846e-95ac-4296-8dc5-29233513e8cf} - {1437295f-7705-4bd6-bc74-50811f065598} + {13983d13-cd4b-4673-9cbe-3b7ce5ee1efc} - {5a8b7cd1-b39c-497c-a84f-092ce8a2a7a9} + {3a37dae5-c757-4617-bbd6-bcdc0d865f10} - {8f9d6234-d59f-45c5-9272-ee297d9529c6} + {fc84313c-4094-4adc-9078-4ea7b626ddf4} - {4339971d-89a1-42e5-8572-3c8be078b693} + {7d4ed969-8c74-4301-947a-5d8e7a8fc0d0} - {06452f5d-7f36-4d95-b1de-2c35381751ef} + {9ba3fa0b-3c87-416a-a3cd-f9c8711c9b91} - {12079bde-b58f-46ef-8b78-e9479341c660} + {31c7f857-d18f-496c-bf11-7f07e185f2c1} diff --git a/Encodings/Encodings_vs160.vcxproj b/Encodings/Encodings_vs160.vcxproj index 914fee669..e98d7bf84 100644 --- a/Encodings/Encodings_vs160.vcxproj +++ b/Encodings/Encodings_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoEncodingsd PocoEncodingsmdd PocoEncodingsmtd diff --git a/Encodings/Encodings_vs160.vcxproj.filters b/Encodings/Encodings_vs160.vcxproj.filters index d0bb7b973..a4444b996 100644 --- a/Encodings/Encodings_vs160.vcxproj.filters +++ b/Encodings/Encodings_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {d2eaf225-f3a3-445f-b77a-7ec8123b1ba5} + {606b3c0a-2eda-4d3b-ba62-040b91199914} - {91086300-388f-4f27-b8c0-b06c8137482a} + {429fbe40-8b2c-4a4f-97ea-33f7639fe0bd} - {a414b00d-415e-4006-80f3-0830a8901a9d} + {a01c0183-cdcc-4760-800b-2b5c00eddf3f} diff --git a/Encodings/Encodings_vs170.vcxproj b/Encodings/Encodings_vs170.vcxproj index 09e052f5e..8b301212d 100644 --- a/Encodings/Encodings_vs170.vcxproj +++ b/Encodings/Encodings_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoEncodingsA64d PocoEncodingsmdd PocoEncodingsmtd diff --git a/Encodings/Encodings_vs170.vcxproj.filters b/Encodings/Encodings_vs170.vcxproj.filters index c72befa1f..90182d01c 100644 --- a/Encodings/Encodings_vs170.vcxproj.filters +++ b/Encodings/Encodings_vs170.vcxproj.filters @@ -2,13 +2,13 @@ - {5e7cb9a9-a1d1-4be0-825e-5167afe689d7} + {b59a42f2-5dc9-42b4-8857-f8dae13af6ac} - {5c9c20dc-87cd-4647-a4ec-cc24e3a1bb11} + {87b5fa87-931e-4b54-8505-89b3c44908c7} - {72db566e-b1f8-4622-a480-2ffc9b6c6065} + {7c416fe9-77d2-4c39-959c-d434817aaab9} diff --git a/Encodings/samples/TextConverter/TextConverter_vs160.vcxproj b/Encodings/samples/TextConverter/TextConverter_vs160.vcxproj index ddd7d6256..e57855da6 100644 --- a/Encodings/samples/TextConverter/TextConverter_vs160.vcxproj +++ b/Encodings/samples/TextConverter/TextConverter_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TextConverterd TextConverterd TextConverterd diff --git a/Encodings/samples/TextConverter/TextConverter_vs160.vcxproj.filters b/Encodings/samples/TextConverter/TextConverter_vs160.vcxproj.filters index d13cf76fd..1105c7f0a 100644 --- a/Encodings/samples/TextConverter/TextConverter_vs160.vcxproj.filters +++ b/Encodings/samples/TextConverter/TextConverter_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {cc73a153-ea12-498d-9bf1-8cff466daca3} + {606c860e-e75e-457c-b395-cee7788a581b} - {c1d83b77-89fb-4666-be38-457ed90f6865} + {619d4a55-c0c8-4484-87b9-a886ebf58339} diff --git a/Encodings/samples/TextConverter/TextConverter_vs170.vcxproj b/Encodings/samples/TextConverter/TextConverter_vs170.vcxproj index 2bf7458aa..a997cc3c9 100644 --- a/Encodings/samples/TextConverter/TextConverter_vs170.vcxproj +++ b/Encodings/samples/TextConverter/TextConverter_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 TextConverter {3CCF9527-B5D9-3522-84C3-C8E5381D7661} TextConverter @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + TextConverterd + TextConverterd + TextConverterd + TextConverter + TextConverter + TextConverter TextConverterd TextConverterd TextConverterd @@ -171,6 +250,36 @@ TextConverter TextConverter + + binA64\ + objA64\TextConverter\$(Configuration)\ + true + + + binA64\ + objA64\TextConverter\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\TextConverter\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\TextConverter\$(Configuration)\ + false + + + binA64\static_md\ + objA64\TextConverter\$(Configuration)\ + true + + + binA64\static_md\ + objA64\TextConverter\$(Configuration)\ + false + bin\ obj\TextConverter\$(Configuration)\ @@ -231,6 +340,207 @@ obj64\TextConverter\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\TextConverter.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\TextConverterd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\TextConverter.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\TextConverterd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Encodings\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +557,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +568,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TextConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +592,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +624,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +635,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TextConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +659,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +691,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +702,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TextConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +726,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +758,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +769,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TextConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +793,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +825,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +836,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TextConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +860,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +892,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +903,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TextConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +927,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +946,8 @@ true + stdcpp17 + stdc11 diff --git a/Encodings/samples/TextConverter/TextConverter_vs170.vcxproj.filters b/Encodings/samples/TextConverter/TextConverter_vs170.vcxproj.filters index d56030f3e..0a3902005 100644 --- a/Encodings/samples/TextConverter/TextConverter_vs170.vcxproj.filters +++ b/Encodings/samples/TextConverter/TextConverter_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {ef5e65a7-e81b-4c22-be25-d208a64f8533} + {e7fafcbf-0ba3-4de7-803a-eaa3a6e1532a} - {5c3e0d5d-7090-4db8-964a-2616f64e3990} + {a1a04b1d-ab9f-42aa-acfa-e27ae39c640f} diff --git a/Encodings/samples/samples_vs170.sln b/Encodings/samples/samples_vs170.sln index ea92a5064..0a97da85d 100644 --- a/Encodings/samples/samples_vs170.sln +++ b/Encodings/samples/samples_vs170.sln @@ -4,6 +4,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TextConverter", "TextConver EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|ARM64 = debug_shared|ARM64 + release_shared|ARM64 = release_shared|ARM64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 + release_static_mt|ARM64 = release_static_mt|ARM64 + debug_static_md|ARM64 = debug_static_md|ARM64 + release_static_md|ARM64 = release_static_md|ARM64 debug_shared|Win32 = debug_shared|Win32 release_shared|Win32 = release_shared|Win32 debug_static_mt|Win32 = debug_static_mt|Win32 @@ -18,6 +24,24 @@ Global release_static_md|x64 = release_static_md|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_shared|Win32.Build.0 = debug_shared|Win32 {3CCF9527-B5D9-3522-84C3-C8E5381D7661}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 diff --git a/Encodings/testsuite/TestSuite_vs160.vcxproj b/Encodings/testsuite/TestSuite_vs160.vcxproj index 1469a3c15..5eb1f43ff 100644 --- a/Encodings/testsuite/TestSuite_vs160.vcxproj +++ b/Encodings/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited diff --git a/Encodings/testsuite/TestSuite_vs160.vcxproj.filters b/Encodings/testsuite/TestSuite_vs160.vcxproj.filters index 9d2e324e0..2c13c79f2 100644 --- a/Encodings/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Encodings/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {abc004ad-578b-4f51-ac60-c071f04c4028} + {67a92f8b-baa6-4a58-96c7-9956017f480e} - {294b52e1-6341-4ca4-bd72-1c4f835531d3} + {e02d4a29-70e0-4d62-b0b9-d7f6626b8fc8} diff --git a/Encodings/testsuite/TestSuite_vs170.vcxproj b/Encodings/testsuite/TestSuite_vs170.vcxproj index bca98e1d3..99e3b4fb3 100644 --- a/Encodings/testsuite/TestSuite_vs170.vcxproj +++ b/Encodings/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -356,15 +356,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;%(AdditionalDependencies) - binA64\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -388,11 +391,14 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;%(AdditionalDependencies) - binA64\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -417,15 +423,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -449,11 +458,14 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -478,15 +490,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - binA64\static_md\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -510,11 +525,14 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - binA64\static_md\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -539,7 +557,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;%(AdditionalDependencies) @@ -547,7 +568,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -571,7 +592,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;%(AdditionalDependencies) @@ -600,7 +624,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -608,7 +635,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -632,7 +659,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -661,7 +691,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -669,7 +702,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -693,7 +726,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -722,7 +758,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitd.lib;%(AdditionalDependencies) @@ -730,7 +769,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -754,7 +793,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnit.lib;%(AdditionalDependencies) @@ -783,7 +825,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -791,7 +836,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -815,7 +860,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -844,7 +892,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -852,7 +903,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -876,7 +927,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -892,12 +946,18 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Encodings/testsuite/TestSuite_vs170.vcxproj.filters b/Encodings/testsuite/TestSuite_vs170.vcxproj.filters index 5a98ca0ff..31990827e 100644 --- a/Encodings/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Encodings/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {0a7ac900-537d-4cc6-b888-d14e5b5b02ec} + {03cff266-6788-4bfe-81f3-dcef0857a4ae} - {9046c505-595a-4358-816a-faa0d47dbd59} + {f1dc3151-2e5b-482d-8537-7389ca147b50} diff --git a/Foundation/samples/ActiveMethod/ActiveMethod_vs160.vcxproj b/Foundation/samples/ActiveMethod/ActiveMethod_vs160.vcxproj index f4c6753a0..534d086e7 100644 --- a/Foundation/samples/ActiveMethod/ActiveMethod_vs160.vcxproj +++ b/Foundation/samples/ActiveMethod/ActiveMethod_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 ActiveMethod {F8B51F16-52AE-3D43-B55B-BD62ED422C2F} ActiveMethod @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 ActiveMethodd ActiveMethodd ActiveMethodd @@ -247,7 +248,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +259,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\ActiveMethodd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +283,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +315,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +326,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\ActiveMethodd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +350,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +382,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +393,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\ActiveMethodd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +417,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +449,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +460,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\ActiveMethodd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +484,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +516,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +527,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\ActiveMethodd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +551,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +583,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +594,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\ActiveMethodd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +618,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +637,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/ActiveMethod/ActiveMethod_vs160.vcxproj.filters b/Foundation/samples/ActiveMethod/ActiveMethod_vs160.vcxproj.filters index bd142a0f1..7fd5553da 100644 --- a/Foundation/samples/ActiveMethod/ActiveMethod_vs160.vcxproj.filters +++ b/Foundation/samples/ActiveMethod/ActiveMethod_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {7a53c284-9806-44c4-957d-4fa88cf2c27d} + {227f29cc-966c-4fb4-b80f-84ca5f7439bb} - {66f9ee0d-3733-4ee9-8681-df583f77928a} + {4e9c3e31-0c6c-4edc-8ddd-b80c0a4707a3} diff --git a/Foundation/samples/ActiveMethod/ActiveMethod_vs170.vcxproj b/Foundation/samples/ActiveMethod/ActiveMethod_vs170.vcxproj index db3219d51..184f4e565 100644 --- a/Foundation/samples/ActiveMethod/ActiveMethod_vs170.vcxproj +++ b/Foundation/samples/ActiveMethod/ActiveMethod_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 ActiveMethod {F8B51F16-52AE-3D43-B55B-BD62ED422C2F} ActiveMethod @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + ActiveMethodd + ActiveMethodd + ActiveMethodd + ActiveMethod + ActiveMethod + ActiveMethod ActiveMethodd ActiveMethodd ActiveMethodd @@ -171,6 +250,36 @@ ActiveMethod ActiveMethod + + binA64\ + objA64\ActiveMethod\$(Configuration)\ + true + + + binA64\ + objA64\ActiveMethod\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\ActiveMethod\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\ActiveMethod\$(Configuration)\ + false + + + binA64\static_md\ + objA64\ActiveMethod\$(Configuration)\ + true + + + binA64\static_md\ + objA64\ActiveMethod\$(Configuration)\ + false + bin\ obj\ActiveMethod\$(Configuration)\ @@ -231,6 +340,207 @@ obj64\ActiveMethod\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\ActiveMethod.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\ActiveMethodd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\ActiveMethod.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\ActiveMethodd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +557,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +568,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\ActiveMethodd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +592,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +624,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +635,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\ActiveMethodd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +659,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +691,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +702,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\ActiveMethodd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +726,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +758,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +769,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\ActiveMethodd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +793,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +825,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +836,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\ActiveMethodd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +860,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +892,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +903,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\ActiveMethodd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +927,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +946,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/ActiveMethod/ActiveMethod_vs170.vcxproj.filters b/Foundation/samples/ActiveMethod/ActiveMethod_vs170.vcxproj.filters index 01f8b225d..c40c26e4a 100644 --- a/Foundation/samples/ActiveMethod/ActiveMethod_vs170.vcxproj.filters +++ b/Foundation/samples/ActiveMethod/ActiveMethod_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {892e841b-bbec-44c3-8b3b-a4cabe7d5624} + {675c9a08-df1e-451c-99a5-18ccd941108a} - {2b600ec9-e46e-4b02-9c2e-b1d017ac136e} + {5d946aef-051e-4b01-b30e-cd5bba375e97} diff --git a/Foundation/samples/Activity/Activity_vs160.vcxproj b/Foundation/samples/Activity/Activity_vs160.vcxproj index 0cdaa03af..cdd50eec2 100644 --- a/Foundation/samples/Activity/Activity_vs160.vcxproj +++ b/Foundation/samples/Activity/Activity_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 Activity {479B938E-57EA-3332-AFD3-E7285DE4EB28} Activity @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 Activityd Activityd Activityd @@ -247,7 +248,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +259,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Activityd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +283,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +315,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +326,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Activityd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +350,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +382,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +393,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Activityd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +417,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +449,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +460,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Activityd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +484,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +516,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +527,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Activityd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +551,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +583,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +594,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Activityd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +618,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +637,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/Activity/Activity_vs160.vcxproj.filters b/Foundation/samples/Activity/Activity_vs160.vcxproj.filters index 604d8016e..01f51aa1a 100644 --- a/Foundation/samples/Activity/Activity_vs160.vcxproj.filters +++ b/Foundation/samples/Activity/Activity_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {28deeb4b-b165-4722-b64a-927fed711cc9} + {ce0c5e57-5f27-4c66-bb96-dd2c5e4ea499} - {e9852f8a-e2af-4ed5-8e93-18d0c3056e3a} + {2fee14fa-315a-43b0-8b7f-8a299f5c5d6f} diff --git a/Foundation/samples/Activity/Activity_vs170.vcxproj b/Foundation/samples/Activity/Activity_vs170.vcxproj index bbe1b38a8..cd36f94df 100644 --- a/Foundation/samples/Activity/Activity_vs170.vcxproj +++ b/Foundation/samples/Activity/Activity_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 Activity {479B938E-57EA-3332-AFD3-E7285DE4EB28} Activity @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + Activityd + Activityd + Activityd + Activity + Activity + Activity Activityd Activityd Activityd @@ -171,6 +250,36 @@ Activity Activity + + binA64\ + objA64\Activity\$(Configuration)\ + true + + + binA64\ + objA64\Activity\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\Activity\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\Activity\$(Configuration)\ + false + + + binA64\static_md\ + objA64\Activity\$(Configuration)\ + true + + + binA64\static_md\ + objA64\Activity\$(Configuration)\ + false + bin\ obj\Activity\$(Configuration)\ @@ -231,6 +340,207 @@ obj64\Activity\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\Activity.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\Activityd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\Activity.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\Activityd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +557,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +568,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Activityd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +592,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +624,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +635,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Activityd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +659,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +691,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +702,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Activityd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +726,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +758,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +769,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Activityd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +793,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +825,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +836,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Activityd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +860,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +892,10 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +903,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Activityd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +927,10 @@ Level3 Default + $(OutDir)$(TargetName).pdb true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +946,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/Activity/Activity_vs170.vcxproj.filters b/Foundation/samples/Activity/Activity_vs170.vcxproj.filters index ed2babd93..24dd086eb 100644 --- a/Foundation/samples/Activity/Activity_vs170.vcxproj.filters +++ b/Foundation/samples/Activity/Activity_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {d2c80216-e0de-43c8-94e5-ffb185915fee} + {7843dbcc-c57d-4033-8862-e46d64b101a2} - {20c5270a-b308-45bf-a511-c8a797b886c2} + {06185875-d62b-4387-ae81-9332b2bbe4da} diff --git a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs160.vcxproj b/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs160.vcxproj index adbb3b61e..26f533a42 100644 --- a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs160.vcxproj +++ b/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 BinaryReaderWriter {A5639B95-211B-36F1-994E-F05361C18EBF} BinaryReaderWriter @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 BinaryReaderWriterd BinaryReaderWriterd BinaryReaderWriterd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\BinaryReaderWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\BinaryReaderWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\BinaryReaderWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\BinaryReaderWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\BinaryReaderWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\BinaryReaderWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs160.vcxproj.filters b/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs160.vcxproj.filters index 4279e82ba..89b0014a7 100644 --- a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs160.vcxproj.filters +++ b/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {2f7ee134-f1b2-47d1-b1d4-4ea167d0761a} + {44bad71f-689f-4acf-a19f-52c62272ab9a} - {b49b1131-efbd-47f7-a618-42ab4c4572c9} + {54e0fb0b-de51-4686-9ac0-50c1a3f1bc11} diff --git a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs170.vcxproj b/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs170.vcxproj index f9907616a..0a577c86f 100644 --- a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs170.vcxproj +++ b/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 BinaryReaderWriter {A5639B95-211B-36F1-994E-F05361C18EBF} BinaryReaderWriter @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + BinaryReaderWriterd + BinaryReaderWriterd + BinaryReaderWriterd + BinaryReaderWriter + BinaryReaderWriter + BinaryReaderWriter BinaryReaderWriterd BinaryReaderWriterd BinaryReaderWriterd @@ -171,6 +250,36 @@ BinaryReaderWriter BinaryReaderWriter + + binA64\ + objA64\BinaryReaderWriter\$(Configuration)\ + true + + + binA64\ + objA64\BinaryReaderWriter\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\BinaryReaderWriter\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\BinaryReaderWriter\$(Configuration)\ + false + + + binA64\static_md\ + objA64\BinaryReaderWriter\$(Configuration)\ + true + + + binA64\static_md\ + objA64\BinaryReaderWriter\$(Configuration)\ + false + bin\ obj\BinaryReaderWriter\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\BinaryReaderWriter\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\BinaryReaderWriter.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\BinaryReaderWriterd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\BinaryReaderWriter.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\BinaryReaderWriterd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\BinaryReaderWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\BinaryReaderWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\BinaryReaderWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\BinaryReaderWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\BinaryReaderWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\BinaryReaderWriterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs170.vcxproj.filters b/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs170.vcxproj.filters index 46dc18bb9..7525083b4 100644 --- a/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs170.vcxproj.filters +++ b/Foundation/samples/BinaryReaderWriter/BinaryReaderWriter_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {d0a67174-96fb-4282-9840-090d8aacd275} + {711c0015-3bd2-44b3-a56d-d6e7ed572fd0} - {f437fa22-5a1d-4902-b09a-64f7d50d766f} + {320f04c0-e38f-4031-8d9b-bb27b09ba582} diff --git a/Foundation/samples/DateTime/DateTime_vs160.vcxproj b/Foundation/samples/DateTime/DateTime_vs160.vcxproj index ad08097d3..20c30015f 100644 --- a/Foundation/samples/DateTime/DateTime_vs160.vcxproj +++ b/Foundation/samples/DateTime/DateTime_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 DateTime {9549D36E-CB01-3BA4-916D-0BCEA078A8AF} DateTime @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 DateTimed DateTimed DateTimed @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\DateTimed.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\DateTimed.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\DateTimed.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\DateTimed.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\DateTimed.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\DateTimed.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/DateTime/DateTime_vs160.vcxproj.filters b/Foundation/samples/DateTime/DateTime_vs160.vcxproj.filters index 1c919f7c7..ab0882dc0 100644 --- a/Foundation/samples/DateTime/DateTime_vs160.vcxproj.filters +++ b/Foundation/samples/DateTime/DateTime_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {135717ee-ed21-488a-b2ec-aedb4d97be13} + {ebe608e5-f2d4-43ce-bfc4-dcc98ecae85d} - {e9670977-d50c-455d-9936-09f4e2756f2d} + {5f894cc5-0d8b-4b7a-90f7-7c77fd415b18} diff --git a/Foundation/samples/DateTime/DateTime_vs170.vcxproj b/Foundation/samples/DateTime/DateTime_vs170.vcxproj index a636cc037..c23a39350 100644 --- a/Foundation/samples/DateTime/DateTime_vs170.vcxproj +++ b/Foundation/samples/DateTime/DateTime_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 DateTime {9549D36E-CB01-3BA4-916D-0BCEA078A8AF} DateTime @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + DateTimed + DateTimed + DateTimed + DateTime + DateTime + DateTime DateTimed DateTimed DateTimed @@ -171,6 +250,36 @@ DateTime DateTime + + binA64\ + objA64\DateTime\$(Configuration)\ + true + + + binA64\ + objA64\DateTime\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\DateTime\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\DateTime\$(Configuration)\ + false + + + binA64\static_md\ + objA64\DateTime\$(Configuration)\ + true + + + binA64\static_md\ + objA64\DateTime\$(Configuration)\ + false + bin\ obj\DateTime\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\DateTime\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\DateTime.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\DateTimed.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\DateTime.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\DateTimed.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\DateTimed.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\DateTimed.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\DateTimed.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\DateTimed.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\DateTimed.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\DateTimed.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/DateTime/DateTime_vs170.vcxproj.filters b/Foundation/samples/DateTime/DateTime_vs170.vcxproj.filters index d519ad1dc..4efebddbb 100644 --- a/Foundation/samples/DateTime/DateTime_vs170.vcxproj.filters +++ b/Foundation/samples/DateTime/DateTime_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {c1613024-0e9f-474e-9b6f-433829efe103} + {22cbb75d-9685-4d80-8f5d-5a0538c88b27} - {a7d8efa7-9367-480a-9f4b-95c8b4852fe5} + {a2298173-8d7a-4000-b8c3-97478580fd10} diff --git a/Foundation/samples/LineEndingConverter/LineEndingConverter_vs160.vcxproj b/Foundation/samples/LineEndingConverter/LineEndingConverter_vs160.vcxproj index e539a80ae..b00206241 100644 --- a/Foundation/samples/LineEndingConverter/LineEndingConverter_vs160.vcxproj +++ b/Foundation/samples/LineEndingConverter/LineEndingConverter_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 LineEndingConverter {354BBE76-D088-3931-940C-797F514D2E40} LineEndingConverter @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 LineEndingConverterd LineEndingConverterd LineEndingConverterd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\LineEndingConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\LineEndingConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\LineEndingConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\LineEndingConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\LineEndingConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\LineEndingConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/LineEndingConverter/LineEndingConverter_vs160.vcxproj.filters b/Foundation/samples/LineEndingConverter/LineEndingConverter_vs160.vcxproj.filters index cff9c64ee..322bba015 100644 --- a/Foundation/samples/LineEndingConverter/LineEndingConverter_vs160.vcxproj.filters +++ b/Foundation/samples/LineEndingConverter/LineEndingConverter_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {3779bde3-e2e7-4d0b-9de4-f030a18f532a} + {1b61a251-38b3-4943-ab55-edcc02120504} - {7e32d812-2fb6-467f-8366-70cef4b64309} + {39ba53d0-ad63-468c-bc61-e73e89ed3b1c} diff --git a/Foundation/samples/LineEndingConverter/LineEndingConverter_vs170.vcxproj b/Foundation/samples/LineEndingConverter/LineEndingConverter_vs170.vcxproj index 985b57333..394903a6e 100644 --- a/Foundation/samples/LineEndingConverter/LineEndingConverter_vs170.vcxproj +++ b/Foundation/samples/LineEndingConverter/LineEndingConverter_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 LineEndingConverter {354BBE76-D088-3931-940C-797F514D2E40} LineEndingConverter @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + LineEndingConverterd + LineEndingConverterd + LineEndingConverterd + LineEndingConverter + LineEndingConverter + LineEndingConverter LineEndingConverterd LineEndingConverterd LineEndingConverterd @@ -171,6 +250,36 @@ LineEndingConverter LineEndingConverter + + binA64\ + objA64\LineEndingConverter\$(Configuration)\ + true + + + binA64\ + objA64\LineEndingConverter\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\LineEndingConverter\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\LineEndingConverter\$(Configuration)\ + false + + + binA64\static_md\ + objA64\LineEndingConverter\$(Configuration)\ + true + + + binA64\static_md\ + objA64\LineEndingConverter\$(Configuration)\ + false + bin\ obj\LineEndingConverter\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\LineEndingConverter\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\LineEndingConverter.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\LineEndingConverterd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\LineEndingConverter.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\LineEndingConverterd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\LineEndingConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\LineEndingConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\LineEndingConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\LineEndingConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\LineEndingConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\LineEndingConverterd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/LineEndingConverter/LineEndingConverter_vs170.vcxproj.filters b/Foundation/samples/LineEndingConverter/LineEndingConverter_vs170.vcxproj.filters index aea78bea7..2b9fb959d 100644 --- a/Foundation/samples/LineEndingConverter/LineEndingConverter_vs170.vcxproj.filters +++ b/Foundation/samples/LineEndingConverter/LineEndingConverter_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {fcd219b7-3109-4aaa-b59f-816e2ecf5a54} + {e51384d2-58ca-4d95-9e4d-59179444ba84} - {c3edf92d-c997-4c04-9744-adeaf047791d} + {a17b1587-a710-4f6c-b95a-dcb22ba84dba} diff --git a/Foundation/samples/LogRotation/LogRotation_vs160.vcxproj b/Foundation/samples/LogRotation/LogRotation_vs160.vcxproj index 981e01cf2..37770d999 100644 --- a/Foundation/samples/LogRotation/LogRotation_vs160.vcxproj +++ b/Foundation/samples/LogRotation/LogRotation_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 LogRotation {0382A4E1-4461-391B-A8D6-A35251CD7464} LogRotation @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 LogRotationd LogRotationd LogRotationd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\LogRotationd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\LogRotationd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\LogRotationd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\LogRotationd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\LogRotationd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\LogRotationd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/LogRotation/LogRotation_vs160.vcxproj.filters b/Foundation/samples/LogRotation/LogRotation_vs160.vcxproj.filters index 36484fecf..065997442 100644 --- a/Foundation/samples/LogRotation/LogRotation_vs160.vcxproj.filters +++ b/Foundation/samples/LogRotation/LogRotation_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {4633baa5-3ea1-4105-8771-bc984d036580} + {178e1297-b52a-416e-95d0-3cd119fcf392} - {f614d0f5-a71f-47f6-87c9-c12dcde50ccb} + {4f1f5882-6a98-43d4-a08c-a660e643a5bb} diff --git a/Foundation/samples/LogRotation/LogRotation_vs170.vcxproj b/Foundation/samples/LogRotation/LogRotation_vs170.vcxproj index efb0cef0d..b802f5de1 100644 --- a/Foundation/samples/LogRotation/LogRotation_vs170.vcxproj +++ b/Foundation/samples/LogRotation/LogRotation_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 LogRotation {0382A4E1-4461-391B-A8D6-A35251CD7464} LogRotation @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + LogRotationd + LogRotationd + LogRotationd + LogRotation + LogRotation + LogRotation LogRotationd LogRotationd LogRotationd @@ -171,6 +250,36 @@ LogRotation LogRotation + + binA64\ + objA64\LogRotation\$(Configuration)\ + true + + + binA64\ + objA64\LogRotation\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\LogRotation\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\LogRotation\$(Configuration)\ + false + + + binA64\static_md\ + objA64\LogRotation\$(Configuration)\ + true + + + binA64\static_md\ + objA64\LogRotation\$(Configuration)\ + false + bin\ obj\LogRotation\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\LogRotation\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\LogRotation.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\LogRotationd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\LogRotation.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\LogRotationd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\LogRotationd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\LogRotationd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\LogRotationd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\LogRotationd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\LogRotationd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\LogRotationd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/LogRotation/LogRotation_vs170.vcxproj.filters b/Foundation/samples/LogRotation/LogRotation_vs170.vcxproj.filters index 1427c7e91..44a59ccb2 100644 --- a/Foundation/samples/LogRotation/LogRotation_vs170.vcxproj.filters +++ b/Foundation/samples/LogRotation/LogRotation_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {ca35f4d8-7ecd-40e5-b682-185f9d53b3d9} + {51db8ba6-27c5-4e37-9906-98a11cf86757} - {83895cd7-c54c-4dd5-bf72-1dac1d3a1c30} + {c6414201-2818-422a-ab48-e070fe88802a} diff --git a/Foundation/samples/Logger/Logger_vs160.vcxproj b/Foundation/samples/Logger/Logger_vs160.vcxproj index 324c1ed92..31a69ce74 100644 --- a/Foundation/samples/Logger/Logger_vs160.vcxproj +++ b/Foundation/samples/Logger/Logger_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 Logger {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59} Logger @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 Loggerd Loggerd Loggerd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Loggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Loggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Loggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Loggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Loggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Loggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/Logger/Logger_vs160.vcxproj.filters b/Foundation/samples/Logger/Logger_vs160.vcxproj.filters index dc84124c4..73287e91f 100644 --- a/Foundation/samples/Logger/Logger_vs160.vcxproj.filters +++ b/Foundation/samples/Logger/Logger_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {5c55032f-8deb-4310-add6-f5645af00d6d} + {9d1fd5ec-ef9e-4a20-b427-8a6183c01404} - {f779215a-4132-40f2-b6c1-4912e1472967} + {528bc9e1-2fe8-4045-844b-8da1e387674e} diff --git a/Foundation/samples/Logger/Logger_vs170.vcxproj b/Foundation/samples/Logger/Logger_vs170.vcxproj index b0188d7d8..ee4d632a7 100644 --- a/Foundation/samples/Logger/Logger_vs170.vcxproj +++ b/Foundation/samples/Logger/Logger_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 Logger {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59} Logger @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + Loggerd + Loggerd + Loggerd + Logger + Logger + Logger Loggerd Loggerd Loggerd @@ -171,6 +250,36 @@ Logger Logger + + binA64\ + objA64\Logger\$(Configuration)\ + true + + + binA64\ + objA64\Logger\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\Logger\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\Logger\$(Configuration)\ + false + + + binA64\static_md\ + objA64\Logger\$(Configuration)\ + true + + + binA64\static_md\ + objA64\Logger\$(Configuration)\ + false + bin\ obj\Logger\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\Logger\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\Logger.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\Loggerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\Logger.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\Loggerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Loggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Loggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Loggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Loggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Loggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Loggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/Logger/Logger_vs170.vcxproj.filters b/Foundation/samples/Logger/Logger_vs170.vcxproj.filters index dedda1b52..0fc5c657d 100644 --- a/Foundation/samples/Logger/Logger_vs170.vcxproj.filters +++ b/Foundation/samples/Logger/Logger_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {b7ab7f64-4b91-4f5a-b658-a3d6bc3845c5} + {6e53520b-13a4-433b-bd28-1467b79bffa0} - {29d6706a-8ac3-4f11-b5ad-7deec5e25b0d} + {368b3ac4-633b-4618-8492-d46172820b37} diff --git a/Foundation/samples/NotificationQueue/NotificationQueue_vs160.vcxproj b/Foundation/samples/NotificationQueue/NotificationQueue_vs160.vcxproj index 69502d70c..956940f24 100644 --- a/Foundation/samples/NotificationQueue/NotificationQueue_vs160.vcxproj +++ b/Foundation/samples/NotificationQueue/NotificationQueue_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 NotificationQueue {4238E8B1-08D7-3469-8896-2A643B585A2D} NotificationQueue @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 NotificationQueued NotificationQueued NotificationQueued @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\NotificationQueued.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\NotificationQueued.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\NotificationQueued.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\NotificationQueued.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\NotificationQueued.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\NotificationQueued.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/NotificationQueue/NotificationQueue_vs160.vcxproj.filters b/Foundation/samples/NotificationQueue/NotificationQueue_vs160.vcxproj.filters index 37481c4f8..d1c997890 100644 --- a/Foundation/samples/NotificationQueue/NotificationQueue_vs160.vcxproj.filters +++ b/Foundation/samples/NotificationQueue/NotificationQueue_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {db133431-cce4-446b-b882-bb24bc1b05f6} + {feb8c43c-7a1a-4dff-972a-eabd9ddd02b9} - {3777d111-09a1-4a58-8c87-e1550bf5967a} + {8f16e6a2-60b3-4eea-85e3-ac88699752de} diff --git a/Foundation/samples/NotificationQueue/NotificationQueue_vs170.vcxproj b/Foundation/samples/NotificationQueue/NotificationQueue_vs170.vcxproj index 19ee67378..87c713acf 100644 --- a/Foundation/samples/NotificationQueue/NotificationQueue_vs170.vcxproj +++ b/Foundation/samples/NotificationQueue/NotificationQueue_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 NotificationQueue {4238E8B1-08D7-3469-8896-2A643B585A2D} NotificationQueue @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + NotificationQueued + NotificationQueued + NotificationQueued + NotificationQueue + NotificationQueue + NotificationQueue NotificationQueued NotificationQueued NotificationQueued @@ -171,6 +250,36 @@ NotificationQueue NotificationQueue + + binA64\ + objA64\NotificationQueue\$(Configuration)\ + true + + + binA64\ + objA64\NotificationQueue\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\NotificationQueue\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\NotificationQueue\$(Configuration)\ + false + + + binA64\static_md\ + objA64\NotificationQueue\$(Configuration)\ + true + + + binA64\static_md\ + objA64\NotificationQueue\$(Configuration)\ + false + bin\ obj\NotificationQueue\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\NotificationQueue\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\NotificationQueue.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\NotificationQueued.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\NotificationQueue.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\NotificationQueued.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\NotificationQueued.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\NotificationQueued.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\NotificationQueued.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\NotificationQueued.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\NotificationQueued.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\NotificationQueued.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/NotificationQueue/NotificationQueue_vs170.vcxproj.filters b/Foundation/samples/NotificationQueue/NotificationQueue_vs170.vcxproj.filters index 805dfecb7..b6706a73f 100644 --- a/Foundation/samples/NotificationQueue/NotificationQueue_vs170.vcxproj.filters +++ b/Foundation/samples/NotificationQueue/NotificationQueue_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {6d7b139b-e57c-4750-96b2-4b9ae4ded62d} + {016823f4-e744-4f1a-93fe-cf32693aca06} - {0cdc9ade-d9d7-4589-9303-490595288a25} + {d75c60e7-2a9e-4ffe-9285-6015553ca6b8} diff --git a/Foundation/samples/StringTokenizer/StringTokenizer_vs160.vcxproj b/Foundation/samples/StringTokenizer/StringTokenizer_vs160.vcxproj index 29b796b78..682487a05 100644 --- a/Foundation/samples/StringTokenizer/StringTokenizer_vs160.vcxproj +++ b/Foundation/samples/StringTokenizer/StringTokenizer_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 StringTokenizer {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE} StringTokenizer @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 StringTokenizerd StringTokenizerd StringTokenizerd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\StringTokenizerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\StringTokenizerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\StringTokenizerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\StringTokenizerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\StringTokenizerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\StringTokenizerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/StringTokenizer/StringTokenizer_vs160.vcxproj.filters b/Foundation/samples/StringTokenizer/StringTokenizer_vs160.vcxproj.filters index 2b76a7f7d..22178e8b6 100644 --- a/Foundation/samples/StringTokenizer/StringTokenizer_vs160.vcxproj.filters +++ b/Foundation/samples/StringTokenizer/StringTokenizer_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {846e137a-1566-4636-8cbf-e86574c23859} + {c1ea7f7a-ae40-432b-aacd-ee9b6e42f7fd} - {654251ed-96a5-40ed-8122-f3d8f28fd08f} + {19754309-6089-4551-b531-af30e83d3bd5} diff --git a/Foundation/samples/StringTokenizer/StringTokenizer_vs170.vcxproj b/Foundation/samples/StringTokenizer/StringTokenizer_vs170.vcxproj index 29918b9f1..5be83c8e9 100644 --- a/Foundation/samples/StringTokenizer/StringTokenizer_vs170.vcxproj +++ b/Foundation/samples/StringTokenizer/StringTokenizer_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 StringTokenizer {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE} StringTokenizer @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + StringTokenizerd + StringTokenizerd + StringTokenizerd + StringTokenizer + StringTokenizer + StringTokenizer StringTokenizerd StringTokenizerd StringTokenizerd @@ -171,6 +250,36 @@ StringTokenizer StringTokenizer + + binA64\ + objA64\StringTokenizer\$(Configuration)\ + true + + + binA64\ + objA64\StringTokenizer\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\StringTokenizer\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\StringTokenizer\$(Configuration)\ + false + + + binA64\static_md\ + objA64\StringTokenizer\$(Configuration)\ + true + + + binA64\static_md\ + objA64\StringTokenizer\$(Configuration)\ + false + bin\ obj\StringTokenizer\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\StringTokenizer\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\StringTokenizer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\StringTokenizerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\StringTokenizer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\StringTokenizerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\StringTokenizerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\StringTokenizerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\StringTokenizerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\StringTokenizerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\StringTokenizerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\StringTokenizerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/StringTokenizer/StringTokenizer_vs170.vcxproj.filters b/Foundation/samples/StringTokenizer/StringTokenizer_vs170.vcxproj.filters index 3ed87ff14..d31f25158 100644 --- a/Foundation/samples/StringTokenizer/StringTokenizer_vs170.vcxproj.filters +++ b/Foundation/samples/StringTokenizer/StringTokenizer_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {565f9a5c-959a-499d-9f75-f001cf1cb37f} + {24516b36-9099-4c2b-9101-a4ccc85a2b91} - {e89a3a39-3f66-4b5a-9ff5-1a17b022a8fd} + {5eef3501-7b5f-42ad-8d07-90e39c0b3f31} diff --git a/Foundation/samples/Timer/Timer_vs160.vcxproj b/Foundation/samples/Timer/Timer_vs160.vcxproj index aee7e1e61..197888dcc 100644 --- a/Foundation/samples/Timer/Timer_vs160.vcxproj +++ b/Foundation/samples/Timer/Timer_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 Timer {84150D4A-0A5A-30D5-8140-24B0F61CAF9B} Timer @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 Timerd Timerd Timerd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Timerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Timerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Timerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Timerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Timerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Timerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/Timer/Timer_vs160.vcxproj.filters b/Foundation/samples/Timer/Timer_vs160.vcxproj.filters index 87b6a1641..203d4d969 100644 --- a/Foundation/samples/Timer/Timer_vs160.vcxproj.filters +++ b/Foundation/samples/Timer/Timer_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {4eb319d7-20c6-419a-80e9-57b055488352} + {19d020f0-e962-43b7-8da8-39f146625c08} - {9280f75c-325a-496f-9fe9-c0cec050e2f7} + {653eada5-9dc5-4b8b-ab1e-f3bd0faefa20} diff --git a/Foundation/samples/Timer/Timer_vs170.vcxproj b/Foundation/samples/Timer/Timer_vs170.vcxproj index 8a9fe513d..aa25c8c70 100644 --- a/Foundation/samples/Timer/Timer_vs170.vcxproj +++ b/Foundation/samples/Timer/Timer_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 Timer {84150D4A-0A5A-30D5-8140-24B0F61CAF9B} Timer @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + Timerd + Timerd + Timerd + Timer + Timer + Timer Timerd Timerd Timerd @@ -171,6 +250,36 @@ Timer Timer + + binA64\ + objA64\Timer\$(Configuration)\ + true + + + binA64\ + objA64\Timer\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\Timer\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\Timer\$(Configuration)\ + false + + + binA64\static_md\ + objA64\Timer\$(Configuration)\ + true + + + binA64\static_md\ + objA64\Timer\$(Configuration)\ + false + bin\ obj\Timer\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\Timer\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\Timer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\Timerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\Timer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\Timerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Timerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Timerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Timerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Timerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Timerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Timerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/Timer/Timer_vs170.vcxproj.filters b/Foundation/samples/Timer/Timer_vs170.vcxproj.filters index 9e7093d13..7617259e1 100644 --- a/Foundation/samples/Timer/Timer_vs170.vcxproj.filters +++ b/Foundation/samples/Timer/Timer_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {08ecdff9-af79-471c-a303-8e2b00fb1b24} + {4ffa6e91-ef5d-4191-a698-89abd8ea4639} - {7591104b-21a6-4f0b-be40-4234685840a8} + {98259e1e-cfe0-4ed0-90b0-7674d646a00b} diff --git a/Foundation/samples/URI/URI_vs160.vcxproj b/Foundation/samples/URI/URI_vs160.vcxproj index d07e891d5..022ffdf68 100644 --- a/Foundation/samples/URI/URI_vs160.vcxproj +++ b/Foundation/samples/URI/URI_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 URI {7D649DAD-3849-3E23-9BB4-802AC60E4E98} URI @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 URId URId URId @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\URId.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\URId.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\URId.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\URId.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\URId.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\URId.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/URI/URI_vs160.vcxproj.filters b/Foundation/samples/URI/URI_vs160.vcxproj.filters index 86b496de5..b95f91e8b 100644 --- a/Foundation/samples/URI/URI_vs160.vcxproj.filters +++ b/Foundation/samples/URI/URI_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {92d3fba9-32ef-48a2-980a-ec547bf36271} + {cd5196d2-340d-46c2-adad-1077dc529552} - {76688abd-68b9-4bcb-b433-f7ee3e90cf34} + {8cbf6f84-b3e8-49e6-881d-4b8293a7fc62} diff --git a/Foundation/samples/URI/URI_vs170.vcxproj b/Foundation/samples/URI/URI_vs170.vcxproj index ae8887cb4..8b4107461 100644 --- a/Foundation/samples/URI/URI_vs170.vcxproj +++ b/Foundation/samples/URI/URI_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 URI {7D649DAD-3849-3E23-9BB4-802AC60E4E98} URI @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + URId + URId + URId + URI + URI + URI URId URId URId @@ -171,6 +250,36 @@ URI URI + + binA64\ + objA64\URI\$(Configuration)\ + true + + + binA64\ + objA64\URI\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\URI\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\URI\$(Configuration)\ + false + + + binA64\static_md\ + objA64\URI\$(Configuration)\ + true + + + binA64\static_md\ + objA64\URI\$(Configuration)\ + false + bin\ obj\URI\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\URI\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\URI.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\URId.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\URI.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\URId.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\URId.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\URId.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\URId.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\URId.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\URId.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\URId.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/URI/URI_vs170.vcxproj.filters b/Foundation/samples/URI/URI_vs170.vcxproj.filters index b732ef59a..6346a316c 100644 --- a/Foundation/samples/URI/URI_vs170.vcxproj.filters +++ b/Foundation/samples/URI/URI_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {96bcb0f8-a664-430d-8679-02e066aae41c} + {33a989ba-c3b9-46e9-9e13-b24c66ae351d} - {97f6aa29-b078-4ace-9983-d766425093ec} + {b7904081-d696-412f-b3ed-c7fc31bfda02} diff --git a/Foundation/samples/base64decode/base64decode_vs160.vcxproj b/Foundation/samples/base64decode/base64decode_vs160.vcxproj index e7e529b19..3eec2f7ef 100644 --- a/Foundation/samples/base64decode/base64decode_vs160.vcxproj +++ b/Foundation/samples/base64decode/base64decode_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 base64decode {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8} base64decode @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 base64decoded base64decoded base64decoded @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\base64decoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\base64decoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\base64decoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\base64decoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\base64decoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\base64decoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/base64decode/base64decode_vs160.vcxproj.filters b/Foundation/samples/base64decode/base64decode_vs160.vcxproj.filters index e6a45fad8..b5c21b928 100644 --- a/Foundation/samples/base64decode/base64decode_vs160.vcxproj.filters +++ b/Foundation/samples/base64decode/base64decode_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {0c721a2a-f898-45a1-a228-07eda937398c} + {b0d1e03c-9225-411c-affb-cb28b0847863} - {793b38ee-f3e5-4314-b142-77620fd16c69} + {9766eac7-3918-4ac5-9f4a-e57d640c4e4e} diff --git a/Foundation/samples/base64decode/base64decode_vs170.vcxproj b/Foundation/samples/base64decode/base64decode_vs170.vcxproj index fae2e4020..59411896e 100644 --- a/Foundation/samples/base64decode/base64decode_vs170.vcxproj +++ b/Foundation/samples/base64decode/base64decode_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 base64decode {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8} base64decode @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + base64decoded + base64decoded + base64decoded + base64decode + base64decode + base64decode base64decoded base64decoded base64decoded @@ -171,6 +250,36 @@ base64decode base64decode + + binA64\ + objA64\base64decode\$(Configuration)\ + true + + + binA64\ + objA64\base64decode\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\base64decode\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\base64decode\$(Configuration)\ + false + + + binA64\static_md\ + objA64\base64decode\$(Configuration)\ + true + + + binA64\static_md\ + objA64\base64decode\$(Configuration)\ + false + bin\ obj\base64decode\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\base64decode\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\base64decode.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\base64decoded.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\base64decode.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\base64decoded.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\base64decoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\base64decoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\base64decoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\base64decoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\base64decoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\base64decoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/base64decode/base64decode_vs170.vcxproj.filters b/Foundation/samples/base64decode/base64decode_vs170.vcxproj.filters index dea1ef264..f923b888f 100644 --- a/Foundation/samples/base64decode/base64decode_vs170.vcxproj.filters +++ b/Foundation/samples/base64decode/base64decode_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {b0153e04-e127-4edf-9637-5e579d3a4b9d} + {59872215-9b97-4920-b5a3-12dc4c7564d8} - {a088c7c2-0b27-4db6-8be3-ccb17b8b0e70} + {81aa2220-2c2a-490d-b5cb-a522ccc3cfe1} diff --git a/Foundation/samples/base64encode/base64encode_vs160.vcxproj b/Foundation/samples/base64encode/base64encode_vs160.vcxproj index 219af34af..7aa674def 100644 --- a/Foundation/samples/base64encode/base64encode_vs160.vcxproj +++ b/Foundation/samples/base64encode/base64encode_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 base64encode {6CCDAF5F-4AD1-3F87-8052-B99952B203E0} base64encode @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 base64encoded base64encoded base64encoded @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\base64encoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\base64encoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\base64encoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\base64encoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\base64encoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\base64encoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/base64encode/base64encode_vs160.vcxproj.filters b/Foundation/samples/base64encode/base64encode_vs160.vcxproj.filters index 38fe167c6..90d8fe3c5 100644 --- a/Foundation/samples/base64encode/base64encode_vs160.vcxproj.filters +++ b/Foundation/samples/base64encode/base64encode_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {577d47fb-1d30-4aea-a5ab-5fa63c06554a} + {ffb75f47-138c-4bf0-982e-e19c2cbe3d90} - {a2766115-eeb8-4ac0-afa4-ffc85f91231a} + {0cdc6816-0f06-4925-bc82-b6629c27ce68} diff --git a/Foundation/samples/base64encode/base64encode_vs170.vcxproj b/Foundation/samples/base64encode/base64encode_vs170.vcxproj index d06e7e01c..3001c66dd 100644 --- a/Foundation/samples/base64encode/base64encode_vs170.vcxproj +++ b/Foundation/samples/base64encode/base64encode_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 base64encode {6CCDAF5F-4AD1-3F87-8052-B99952B203E0} base64encode @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + base64encoded + base64encoded + base64encoded + base64encode + base64encode + base64encode base64encoded base64encoded base64encoded @@ -171,6 +250,36 @@ base64encode base64encode + + binA64\ + objA64\base64encode\$(Configuration)\ + true + + + binA64\ + objA64\base64encode\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\base64encode\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\base64encode\$(Configuration)\ + false + + + binA64\static_md\ + objA64\base64encode\$(Configuration)\ + true + + + binA64\static_md\ + objA64\base64encode\$(Configuration)\ + false + bin\ obj\base64encode\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\base64encode\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\base64encode.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\base64encoded.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\base64encode.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\base64encoded.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\base64encoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\base64encoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\base64encoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\base64encoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\base64encoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\base64encoded.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/base64encode/base64encode_vs170.vcxproj.filters b/Foundation/samples/base64encode/base64encode_vs170.vcxproj.filters index 7f870472a..7170adc52 100644 --- a/Foundation/samples/base64encode/base64encode_vs170.vcxproj.filters +++ b/Foundation/samples/base64encode/base64encode_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {35fe9b64-864a-4c71-9c05-6e38b1214252} + {7a22cd4c-c04c-41cf-84fc-a67bdca1e117} - {a1e3053a-92c7-4934-a62f-5e5932edc996} + {bdb61573-182f-4022-9c2e-972f5a20530c} diff --git a/Foundation/samples/deflate/deflate_vs160.vcxproj b/Foundation/samples/deflate/deflate_vs160.vcxproj index ef62f30b3..03c88a5c6 100644 --- a/Foundation/samples/deflate/deflate_vs160.vcxproj +++ b/Foundation/samples/deflate/deflate_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 deflate {6D323430-D9E1-3173-A087-7A6E084B63CD} deflate @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 deflated deflated deflated @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\deflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\deflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\deflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\deflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\deflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\deflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/deflate/deflate_vs160.vcxproj.filters b/Foundation/samples/deflate/deflate_vs160.vcxproj.filters index 959378db7..a621f5287 100644 --- a/Foundation/samples/deflate/deflate_vs160.vcxproj.filters +++ b/Foundation/samples/deflate/deflate_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {fd25930e-ce19-433b-bfcf-9e0121de858e} + {c1a9f77a-53d8-4f31-9f9e-ad7b5c09f0be} - {4fabe4c8-5718-454d-beba-e340cf34c2fc} + {395aa50d-a892-4655-9275-85aef464973c} diff --git a/Foundation/samples/deflate/deflate_vs170.vcxproj b/Foundation/samples/deflate/deflate_vs170.vcxproj index fe1861df1..6ed24e48d 100644 --- a/Foundation/samples/deflate/deflate_vs170.vcxproj +++ b/Foundation/samples/deflate/deflate_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 deflate {6D323430-D9E1-3173-A087-7A6E084B63CD} deflate @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + deflated + deflated + deflated + deflate + deflate + deflate deflated deflated deflated @@ -171,6 +250,36 @@ deflate deflate + + binA64\ + objA64\deflate\$(Configuration)\ + true + + + binA64\ + objA64\deflate\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\deflate\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\deflate\$(Configuration)\ + false + + + binA64\static_md\ + objA64\deflate\$(Configuration)\ + true + + + binA64\static_md\ + objA64\deflate\$(Configuration)\ + false + bin\ obj\deflate\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\deflate\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\deflate.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\deflated.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\deflate.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\deflated.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\deflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\deflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\deflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\deflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\deflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\deflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/deflate/deflate_vs170.vcxproj.filters b/Foundation/samples/deflate/deflate_vs170.vcxproj.filters index f719f7ea0..948ddd6f2 100644 --- a/Foundation/samples/deflate/deflate_vs170.vcxproj.filters +++ b/Foundation/samples/deflate/deflate_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {31767592-63c4-44d1-8440-44b472e8c8c5} + {84f2994c-f6c3-4a6b-83e5-92dc3eac8f88} - {d2680cbb-8ebb-4b83-adb0-c36d5538d4d7} + {cb781dc6-2d40-4eb8-8ced-4f055d7e078c} diff --git a/Foundation/samples/dir/dir_vs160.vcxproj b/Foundation/samples/dir/dir_vs160.vcxproj index 89de8b60a..467eb013c 100644 --- a/Foundation/samples/dir/dir_vs160.vcxproj +++ b/Foundation/samples/dir/dir_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 dir {39E0E21B-10A6-3D5A-9B68-70F20C05D80A} dir @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 dird dird dird @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\dird.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\dird.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\dird.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\dird.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\dird.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\dird.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/dir/dir_vs160.vcxproj.filters b/Foundation/samples/dir/dir_vs160.vcxproj.filters index 145965b5b..a52081b41 100644 --- a/Foundation/samples/dir/dir_vs160.vcxproj.filters +++ b/Foundation/samples/dir/dir_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {5a91af72-cbbc-4920-bfb5-0f9825c697ce} + {c0712b30-45e7-43f1-ad87-2a64cb305cfc} - {65250224-b19f-489f-9316-fe2acc860e11} + {3714279f-12d6-484c-aabf-d137ad2fd154} diff --git a/Foundation/samples/dir/dir_vs170.vcxproj b/Foundation/samples/dir/dir_vs170.vcxproj index ba8d4354b..6be7843e0 100644 --- a/Foundation/samples/dir/dir_vs170.vcxproj +++ b/Foundation/samples/dir/dir_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 dir {39E0E21B-10A6-3D5A-9B68-70F20C05D80A} dir @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + dird + dird + dird + dir + dir + dir dird dird dird @@ -171,6 +250,36 @@ dir dir + + binA64\ + objA64\dir\$(Configuration)\ + true + + + binA64\ + objA64\dir\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\dir\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\dir\$(Configuration)\ + false + + + binA64\static_md\ + objA64\dir\$(Configuration)\ + true + + + binA64\static_md\ + objA64\dir\$(Configuration)\ + false + bin\ obj\dir\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\dir\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\dir.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\dird.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\dir.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\dird.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\dird.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\dird.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\dird.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\dird.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\dird.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\dird.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/dir/dir_vs170.vcxproj.filters b/Foundation/samples/dir/dir_vs170.vcxproj.filters index 5afa44454..716f28337 100644 --- a/Foundation/samples/dir/dir_vs170.vcxproj.filters +++ b/Foundation/samples/dir/dir_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {868cd79d-7114-4254-884b-bb052b40f35f} + {05ef918a-b268-4391-ba81-263580eb33b7} - {12c00f17-475c-44a0-938c-99eb495fab90} + {8999a1c9-551e-4a32-879b-a75c86bcb680} diff --git a/Foundation/samples/grep/grep_vs160.vcxproj b/Foundation/samples/grep/grep_vs160.vcxproj index 2ccf28ce0..12017532a 100644 --- a/Foundation/samples/grep/grep_vs160.vcxproj +++ b/Foundation/samples/grep/grep_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 grep {C743C479-4D47-37FE-A2EB-59CDD7A627FE} grep @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 grepd grepd grepd @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\grepd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\grepd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\grepd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\grepd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\grepd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\grepd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/grep/grep_vs160.vcxproj.filters b/Foundation/samples/grep/grep_vs160.vcxproj.filters index 2a07d3d76..333f707fd 100644 --- a/Foundation/samples/grep/grep_vs160.vcxproj.filters +++ b/Foundation/samples/grep/grep_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {c9b905b9-9166-406a-811d-ab3fad6e5af6} + {33e283a2-03ca-4a83-b526-84149d9fa4ad} - {edce1181-a1d9-4c7e-a9bd-76cbaffc53e1} + {6d194314-0ec0-400e-a85e-89d5f483b25d} diff --git a/Foundation/samples/grep/grep_vs170.vcxproj b/Foundation/samples/grep/grep_vs170.vcxproj index 5d6eec362..d0e960454 100644 --- a/Foundation/samples/grep/grep_vs170.vcxproj +++ b/Foundation/samples/grep/grep_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 grep {C743C479-4D47-37FE-A2EB-59CDD7A627FE} grep @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + grepd + grepd + grepd + grep + grep + grep grepd grepd grepd @@ -171,6 +250,36 @@ grep grep + + binA64\ + objA64\grep\$(Configuration)\ + true + + + binA64\ + objA64\grep\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\grep\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\grep\$(Configuration)\ + false + + + binA64\static_md\ + objA64\grep\$(Configuration)\ + true + + + binA64\static_md\ + objA64\grep\$(Configuration)\ + false + bin\ obj\grep\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\grep\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\grep.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\grepd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\grep.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\grepd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\grepd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\grepd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\grepd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\grepd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\grepd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\grepd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/grep/grep_vs170.vcxproj.filters b/Foundation/samples/grep/grep_vs170.vcxproj.filters index 295d64090..b9bb765c4 100644 --- a/Foundation/samples/grep/grep_vs170.vcxproj.filters +++ b/Foundation/samples/grep/grep_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {c18ddd9a-cecb-4de8-98db-04c07d62ce9b} + {44a9011d-3de2-4904-bc87-27724f90b63b} - {22b69acd-4f11-4252-a95c-e1396fc9dfee} + {123045aa-645d-4577-b4f5-ee4aaf536a4a} diff --git a/Foundation/samples/hmacmd5/hmacmd5_vs160.vcxproj b/Foundation/samples/hmacmd5/hmacmd5_vs160.vcxproj index b42ae03f4..2be07e6d5 100644 --- a/Foundation/samples/hmacmd5/hmacmd5_vs160.vcxproj +++ b/Foundation/samples/hmacmd5/hmacmd5_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 hmacmd5 {0CC4CA42-4EEF-36C8-A426-5A047C1A2359} hmacmd5 @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 hmacmd5d hmacmd5d hmacmd5d @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\hmacmd5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\hmacmd5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\hmacmd5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\hmacmd5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\hmacmd5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\hmacmd5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/hmacmd5/hmacmd5_vs160.vcxproj.filters b/Foundation/samples/hmacmd5/hmacmd5_vs160.vcxproj.filters index 7f980f827..744a15074 100644 --- a/Foundation/samples/hmacmd5/hmacmd5_vs160.vcxproj.filters +++ b/Foundation/samples/hmacmd5/hmacmd5_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {ff595c9a-c047-4c73-bc21-da9f95a95369} + {aef48dd6-68ec-4183-8693-65f188c8c2c0} - {15588798-ddb0-4f05-af39-6eeed0217ad1} + {48e55d0c-8786-4cb4-9342-ae1e00da7020} diff --git a/Foundation/samples/hmacmd5/hmacmd5_vs170.vcxproj b/Foundation/samples/hmacmd5/hmacmd5_vs170.vcxproj index 4c8fad49e..5b0ef2b8a 100644 --- a/Foundation/samples/hmacmd5/hmacmd5_vs170.vcxproj +++ b/Foundation/samples/hmacmd5/hmacmd5_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 hmacmd5 {0CC4CA42-4EEF-36C8-A426-5A047C1A2359} hmacmd5 @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + hmacmd5d + hmacmd5d + hmacmd5d + hmacmd5 + hmacmd5 + hmacmd5 hmacmd5d hmacmd5d hmacmd5d @@ -171,6 +250,36 @@ hmacmd5 hmacmd5 + + binA64\ + objA64\hmacmd5\$(Configuration)\ + true + + + binA64\ + objA64\hmacmd5\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\hmacmd5\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\hmacmd5\$(Configuration)\ + false + + + binA64\static_md\ + objA64\hmacmd5\$(Configuration)\ + true + + + binA64\static_md\ + objA64\hmacmd5\$(Configuration)\ + false + bin\ obj\hmacmd5\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\hmacmd5\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\hmacmd5.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\hmacmd5d.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\hmacmd5.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\hmacmd5d.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\hmacmd5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\hmacmd5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\hmacmd5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\hmacmd5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\hmacmd5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\hmacmd5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/hmacmd5/hmacmd5_vs170.vcxproj.filters b/Foundation/samples/hmacmd5/hmacmd5_vs170.vcxproj.filters index 1a859d490..c518eb8bd 100644 --- a/Foundation/samples/hmacmd5/hmacmd5_vs170.vcxproj.filters +++ b/Foundation/samples/hmacmd5/hmacmd5_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {00c98e6e-2ad0-4ff1-b842-8caabdf62d56} + {b1f36bd1-e926-4354-bcf2-2b55e5044756} - {f466204a-8587-4bfc-bd0f-c1c510699191} + {34eaa3c3-c2f8-46ce-8e81-83a1beada7cd} diff --git a/Foundation/samples/inflate/inflate_vs160.vcxproj b/Foundation/samples/inflate/inflate_vs160.vcxproj index 9de16f208..9350b5882 100644 --- a/Foundation/samples/inflate/inflate_vs160.vcxproj +++ b/Foundation/samples/inflate/inflate_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 inflate {9F489D6A-175F-3754-B4E4-2B0E795D2857} inflate @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 inflated inflated inflated @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\inflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\inflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\inflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\inflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\inflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\inflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/inflate/inflate_vs160.vcxproj.filters b/Foundation/samples/inflate/inflate_vs160.vcxproj.filters index e9b62acfc..8c5753b7f 100644 --- a/Foundation/samples/inflate/inflate_vs160.vcxproj.filters +++ b/Foundation/samples/inflate/inflate_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {628f15ba-ff30-42b4-b28c-8c93eec58a64} + {8f6f0e6e-a032-4284-be81-20266adeac67} - {9553e4ae-a064-4665-882c-6d82ac70aede} + {92d028a0-35bb-421e-b32d-8335c527333b} diff --git a/Foundation/samples/inflate/inflate_vs170.vcxproj b/Foundation/samples/inflate/inflate_vs170.vcxproj index 637ae9ef8..5f9920531 100644 --- a/Foundation/samples/inflate/inflate_vs170.vcxproj +++ b/Foundation/samples/inflate/inflate_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 inflate {9F489D6A-175F-3754-B4E4-2B0E795D2857} inflate @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + inflated + inflated + inflated + inflate + inflate + inflate inflated inflated inflated @@ -171,6 +250,36 @@ inflate inflate + + binA64\ + objA64\inflate\$(Configuration)\ + true + + + binA64\ + objA64\inflate\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\inflate\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\inflate\$(Configuration)\ + false + + + binA64\static_md\ + objA64\inflate\$(Configuration)\ + true + + + binA64\static_md\ + objA64\inflate\$(Configuration)\ + false + bin\ obj\inflate\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\inflate\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\inflate.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\inflated.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\inflate.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\inflated.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\inflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\inflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\inflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\inflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\inflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\inflated.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/inflate/inflate_vs170.vcxproj.filters b/Foundation/samples/inflate/inflate_vs170.vcxproj.filters index 81164cf90..32a045cf2 100644 --- a/Foundation/samples/inflate/inflate_vs170.vcxproj.filters +++ b/Foundation/samples/inflate/inflate_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {2f88390a-e8d2-4fb3-b875-a1186203d1d1} + {030eadaa-cc3c-4901-8424-c88e0b6fc74d} - {afa196c9-4ca1-443a-8511-545026c87855} + {0b8b2eb5-ccfe-4180-80cd-f25c6f17e2a3} diff --git a/Foundation/samples/md5/md5_vs160.vcxproj b/Foundation/samples/md5/md5_vs160.vcxproj index c19f332ac..73ca90a3d 100644 --- a/Foundation/samples/md5/md5_vs160.vcxproj +++ b/Foundation/samples/md5/md5_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 md5 {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C} md5 @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 md5d md5d md5d @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\md5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\md5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\md5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\md5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\md5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\md5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/md5/md5_vs160.vcxproj.filters b/Foundation/samples/md5/md5_vs160.vcxproj.filters index fbcd6dc26..5b73ef41f 100644 --- a/Foundation/samples/md5/md5_vs160.vcxproj.filters +++ b/Foundation/samples/md5/md5_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {91509c27-30f7-467e-b1d8-aa32c4c2fae2} + {05917c31-e38e-4909-8d6b-931ec6b94e09} - {9732d0ea-33d6-4551-97a2-cf67bc95a626} + {c3b52df7-3dbc-4622-98df-8d7a74bc5e02} diff --git a/Foundation/samples/md5/md5_vs170.vcxproj b/Foundation/samples/md5/md5_vs170.vcxproj index 110dd0ff5..a2e841677 100644 --- a/Foundation/samples/md5/md5_vs170.vcxproj +++ b/Foundation/samples/md5/md5_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 md5 {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C} md5 @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + md5d + md5d + md5d + md5 + md5 + md5 md5d md5d md5d @@ -171,6 +250,36 @@ md5 md5 + + binA64\ + objA64\md5\$(Configuration)\ + true + + + binA64\ + objA64\md5\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\md5\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\md5\$(Configuration)\ + false + + + binA64\static_md\ + objA64\md5\$(Configuration)\ + true + + + binA64\static_md\ + objA64\md5\$(Configuration)\ + false + bin\ obj\md5\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\md5\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\md5.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\md5d.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\md5.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\md5d.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\md5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\md5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\md5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\md5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\md5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\md5d.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/md5/md5_vs170.vcxproj.filters b/Foundation/samples/md5/md5_vs170.vcxproj.filters index 593246340..805cbf866 100644 --- a/Foundation/samples/md5/md5_vs170.vcxproj.filters +++ b/Foundation/samples/md5/md5_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {20d0bc32-9bfe-4248-81d5-ad6f2985da54} + {f4ed389a-5e51-4b94-ba7d-9b1739981eb2} - {485200c8-5593-4b6d-96ae-048632bca2e7} + {78aa2266-2002-4eed-b2da-a65de5932c0f} diff --git a/Foundation/samples/samples_vs170.sln b/Foundation/samples/samples_vs170.sln index 9bdaaa986..3769d5bab 100644 --- a/Foundation/samples/samples_vs170.sln +++ b/Foundation/samples/samples_vs170.sln @@ -42,6 +42,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uuidgen", "uuidgen\uuidgen_ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|ARM64 = debug_shared|ARM64 + release_shared|ARM64 = release_shared|ARM64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 + release_static_mt|ARM64 = release_static_mt|ARM64 + debug_static_md|ARM64 = debug_static_md|ARM64 + release_static_md|ARM64 = release_static_md|ARM64 debug_shared|Win32 = debug_shared|Win32 release_shared|Win32 = release_shared|Win32 debug_static_mt|Win32 = debug_static_mt|Win32 @@ -56,6 +62,24 @@ Global release_static_md|x64 = release_static_md|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_shared|Win32.Build.0 = debug_shared|Win32 {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -92,6 +116,24 @@ Global {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_md|x64.ActiveCfg = release_static_md|x64 {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_md|x64.Build.0 = release_static_md|x64 {F8B51F16-52AE-3D43-B55B-BD62ED422C2F}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_shared|Win32.Build.0 = debug_shared|Win32 {479B938E-57EA-3332-AFD3-E7285DE4EB28}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -128,6 +170,24 @@ Global {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_md|x64.ActiveCfg = release_static_md|x64 {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_md|x64.Build.0 = release_static_md|x64 {479B938E-57EA-3332-AFD3-E7285DE4EB28}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_shared|Win32.Build.0 = debug_shared|Win32 {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -164,6 +224,24 @@ Global {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_md|x64.ActiveCfg = release_static_md|x64 {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_md|x64.Build.0 = release_static_md|x64 {A1623462-1A5C-3CC2-8DCB-7E85D4EA56E8}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_shared|Win32.Build.0 = debug_shared|Win32 {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -200,6 +278,24 @@ Global {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_md|x64.ActiveCfg = release_static_md|x64 {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_md|x64.Build.0 = release_static_md|x64 {6CCDAF5F-4AD1-3F87-8052-B99952B203E0}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {A5639B95-211B-36F1-994E-F05361C18EBF}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {A5639B95-211B-36F1-994E-F05361C18EBF}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {A5639B95-211B-36F1-994E-F05361C18EBF}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_shared|Win32.Build.0 = debug_shared|Win32 {A5639B95-211B-36F1-994E-F05361C18EBF}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -236,6 +332,24 @@ Global {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_md|x64.ActiveCfg = release_static_md|x64 {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_md|x64.Build.0 = release_static_md|x64 {A5639B95-211B-36F1-994E-F05361C18EBF}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_shared|Win32.Build.0 = debug_shared|Win32 {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -272,6 +386,24 @@ Global {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_md|x64.ActiveCfg = release_static_md|x64 {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_md|x64.Build.0 = release_static_md|x64 {9549D36E-CB01-3BA4-916D-0BCEA078A8AF}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_shared|Win32.Build.0 = debug_shared|Win32 {6D323430-D9E1-3173-A087-7A6E084B63CD}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -308,6 +440,24 @@ Global {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_md|x64.ActiveCfg = release_static_md|x64 {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_md|x64.Build.0 = release_static_md|x64 {6D323430-D9E1-3173-A087-7A6E084B63CD}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_shared|Win32.Build.0 = debug_shared|Win32 {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -344,6 +494,24 @@ Global {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_md|x64.ActiveCfg = release_static_md|x64 {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_md|x64.Build.0 = release_static_md|x64 {39E0E21B-10A6-3D5A-9B68-70F20C05D80A}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_shared|Win32.Build.0 = debug_shared|Win32 {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -380,6 +548,24 @@ Global {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_md|x64.ActiveCfg = release_static_md|x64 {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_md|x64.Build.0 = release_static_md|x64 {C743C479-4D47-37FE-A2EB-59CDD7A627FE}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_shared|Win32.Build.0 = debug_shared|Win32 {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -416,6 +602,24 @@ Global {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_md|x64.ActiveCfg = release_static_md|x64 {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_md|x64.Build.0 = release_static_md|x64 {0CC4CA42-4EEF-36C8-A426-5A047C1A2359}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_shared|Win32.Build.0 = debug_shared|Win32 {9F489D6A-175F-3754-B4E4-2B0E795D2857}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -452,6 +656,24 @@ Global {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_md|x64.ActiveCfg = release_static_md|x64 {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_md|x64.Build.0 = release_static_md|x64 {9F489D6A-175F-3754-B4E4-2B0E795D2857}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {354BBE76-D088-3931-940C-797F514D2E40}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {354BBE76-D088-3931-940C-797F514D2E40}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {354BBE76-D088-3931-940C-797F514D2E40}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {354BBE76-D088-3931-940C-797F514D2E40}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {354BBE76-D088-3931-940C-797F514D2E40}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {354BBE76-D088-3931-940C-797F514D2E40}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {354BBE76-D088-3931-940C-797F514D2E40}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {354BBE76-D088-3931-940C-797F514D2E40}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {354BBE76-D088-3931-940C-797F514D2E40}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {354BBE76-D088-3931-940C-797F514D2E40}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {354BBE76-D088-3931-940C-797F514D2E40}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {354BBE76-D088-3931-940C-797F514D2E40}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {354BBE76-D088-3931-940C-797F514D2E40}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {354BBE76-D088-3931-940C-797F514D2E40}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {354BBE76-D088-3931-940C-797F514D2E40}.debug_shared|Win32.Build.0 = debug_shared|Win32 {354BBE76-D088-3931-940C-797F514D2E40}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -488,6 +710,24 @@ Global {354BBE76-D088-3931-940C-797F514D2E40}.release_static_md|x64.ActiveCfg = release_static_md|x64 {354BBE76-D088-3931-940C-797F514D2E40}.release_static_md|x64.Build.0 = release_static_md|x64 {354BBE76-D088-3931-940C-797F514D2E40}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_shared|Win32.Build.0 = debug_shared|Win32 {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -524,6 +764,24 @@ Global {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_md|x64.ActiveCfg = release_static_md|x64 {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_md|x64.Build.0 = release_static_md|x64 {49C1FE51-9FDB-3FA3-864F-BBE3A171BE59}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_shared|Win32.Build.0 = debug_shared|Win32 {0382A4E1-4461-391B-A8D6-A35251CD7464}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -560,6 +818,24 @@ Global {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_md|x64.ActiveCfg = release_static_md|x64 {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_md|x64.Build.0 = release_static_md|x64 {0382A4E1-4461-391B-A8D6-A35251CD7464}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_shared|Win32.Build.0 = debug_shared|Win32 {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -596,6 +872,24 @@ Global {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_md|x64.ActiveCfg = release_static_md|x64 {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_md|x64.Build.0 = release_static_md|x64 {2B9717FB-D1A8-39C2-9699-6BEF37D7DA9C}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_shared|Win32.Build.0 = debug_shared|Win32 {4238E8B1-08D7-3469-8896-2A643B585A2D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -632,6 +926,24 @@ Global {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_md|x64.ActiveCfg = release_static_md|x64 {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_md|x64.Build.0 = release_static_md|x64 {4238E8B1-08D7-3469-8896-2A643B585A2D}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_shared|Win32.Build.0 = debug_shared|Win32 {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -668,6 +980,24 @@ Global {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_md|x64.ActiveCfg = release_static_md|x64 {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_md|x64.Build.0 = release_static_md|x64 {1F31BE50-3475-372C-ADE3-D1B97D9BA7BE}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_shared|Win32.Build.0 = debug_shared|Win32 {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -704,6 +1034,24 @@ Global {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_md|x64.ActiveCfg = release_static_md|x64 {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_md|x64.Build.0 = release_static_md|x64 {84150D4A-0A5A-30D5-8140-24B0F61CAF9B}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_shared|Win32.Build.0 = debug_shared|Win32 {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -740,6 +1088,24 @@ Global {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_md|x64.ActiveCfg = release_static_md|x64 {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_md|x64.Build.0 = release_static_md|x64 {7D649DAD-3849-3E23-9BB4-802AC60E4E98}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_shared|Win32.Build.0 = debug_shared|Win32 {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 diff --git a/Foundation/samples/uuidgen/uuidgen_vs160.vcxproj b/Foundation/samples/uuidgen/uuidgen_vs160.vcxproj index 937abd1d0..fde29bd10 100644 --- a/Foundation/samples/uuidgen/uuidgen_vs160.vcxproj +++ b/Foundation/samples/uuidgen/uuidgen_vs160.vcxproj @@ -1,5 +1,5 @@ - + debug_shared @@ -51,6 +51,7 @@ + 17.0 uuidgen {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862} uuidgen @@ -157,7 +158,7 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 uuidgend uuidgend uuidgend @@ -247,7 +248,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +260,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\uuidgend.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +284,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +317,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +329,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\uuidgend.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +353,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +386,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +398,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\uuidgend.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +422,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +455,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +467,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\uuidgend.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +491,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +524,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +536,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\uuidgend.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +560,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +593,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +605,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\uuidgend.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +629,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +649,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/uuidgen/uuidgen_vs160.vcxproj.filters b/Foundation/samples/uuidgen/uuidgen_vs160.vcxproj.filters index 5c6cf0168..1784c8825 100644 --- a/Foundation/samples/uuidgen/uuidgen_vs160.vcxproj.filters +++ b/Foundation/samples/uuidgen/uuidgen_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {8d933adf-c9fb-4ae6-98b1-f0c75274d84b} + {0291acbe-5f2d-4418-86af-bb7b7ac9b1f1} - {bf3acc9c-ccc5-44e3-b607-78d3ef613075} + {3f097657-d968-479c-8ec0-6e82d9543f4b} diff --git a/Foundation/samples/uuidgen/uuidgen_vs170.vcxproj b/Foundation/samples/uuidgen/uuidgen_vs170.vcxproj index b3889b560..75fd4cf86 100644 --- a/Foundation/samples/uuidgen/uuidgen_vs170.vcxproj +++ b/Foundation/samples/uuidgen/uuidgen_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 uuidgen {5E26603C-CAE2-3AA1-8DBD-AA70BB88A862} uuidgen @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + uuidgend + uuidgend + uuidgend + uuidgen + uuidgen + uuidgen uuidgend uuidgend uuidgend @@ -171,6 +250,36 @@ uuidgen uuidgen + + binA64\ + objA64\uuidgen\$(Configuration)\ + true + + + binA64\ + objA64\uuidgen\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\uuidgen\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\uuidgen\$(Configuration)\ + false + + + binA64\static_md\ + objA64\uuidgen\$(Configuration)\ + true + + + binA64\static_md\ + objA64\uuidgen\$(Configuration)\ + false + bin\ obj\uuidgen\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\uuidgen\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\uuidgen.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\uuidgend.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\uuidgen.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\uuidgend.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\uuidgend.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\uuidgend.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\uuidgend.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\uuidgend.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\uuidgend.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\uuidgend.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Foundation/samples/uuidgen/uuidgen_vs170.vcxproj.filters b/Foundation/samples/uuidgen/uuidgen_vs170.vcxproj.filters index 11edea7f2..c60b06a29 100644 --- a/Foundation/samples/uuidgen/uuidgen_vs170.vcxproj.filters +++ b/Foundation/samples/uuidgen/uuidgen_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {a1732e26-203c-4eeb-88d8-54451ef2fe87} + {a1204e91-e139-4598-9715-560415439a4e} - {2aa61dfc-0eee-4df7-b839-0823f71770eb} + {6d90685d-9d8f-4e98-8db1-cddb50b14616} diff --git a/JSON/JSON_vs160.vcxproj b/JSON/JSON_vs160.vcxproj index 1f0fcc61d..b25659887 100644 --- a/JSON/JSON_vs160.vcxproj +++ b/JSON/JSON_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoJSONd PocoJSONmdd PocoJSONmtd diff --git a/JSON/JSON_vs160.vcxproj.filters b/JSON/JSON_vs160.vcxproj.filters index 4125cf988..986dc27cb 100644 --- a/JSON/JSON_vs160.vcxproj.filters +++ b/JSON/JSON_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {b0a7b744-1519-42d8-a7ce-bb056ad2a88f} + {7cb366af-3fdb-40b0-a502-6e7d7d00fd4f} - {4e840e51-0586-4a15-9c80-43205763676d} + {5b2abccb-8261-4d5c-81da-23ddd357d5e0} diff --git a/JSON/JSON_vs170.vcxproj b/JSON/JSON_vs170.vcxproj index 0614b249b..b80392109 100644 --- a/JSON/JSON_vs170.vcxproj +++ b/JSON/JSON_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoJSONA64d PocoJSONmdd PocoJSONmtd diff --git a/JSON/JSON_vs170.vcxproj.filters b/JSON/JSON_vs170.vcxproj.filters index 21d18d54c..118e83720 100644 --- a/JSON/JSON_vs170.vcxproj.filters +++ b/JSON/JSON_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {0d04a5d6-9439-4b50-8b1a-23f14b10b711} + {495add50-a2f4-4703-8ae9-030ed08446e3} - {5618c8ec-9722-4d59-88be-6e79c2061801} + {a69cb3f7-81c5-4069-ae88-2e9d5f1a98f0} diff --git a/JSON/samples/Benchmark/Benchmark_vs160.vcxproj b/JSON/samples/Benchmark/Benchmark_vs160.vcxproj index f4b9ccf20..095ca0731 100644 --- a/JSON/samples/Benchmark/Benchmark_vs160.vcxproj +++ b/JSON/samples/Benchmark/Benchmark_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 Benchmarkd Benchmarkd Benchmarkd diff --git a/JSON/samples/Benchmark/Benchmark_vs160.vcxproj.filters b/JSON/samples/Benchmark/Benchmark_vs160.vcxproj.filters index 6395a7744..29bf9e1f3 100644 --- a/JSON/samples/Benchmark/Benchmark_vs160.vcxproj.filters +++ b/JSON/samples/Benchmark/Benchmark_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {397eac41-b7ab-47e1-b57b-fb5bb3521473} + {ba54304a-e61a-466d-8aea-fb0fdda680b0} - {2f8635d8-04c4-4b32-8134-bb18911b1818} + {c4db5379-7009-4a24-bf8f-fea1a651e19b} diff --git a/JSON/samples/Benchmark/Benchmark_vs170.vcxproj b/JSON/samples/Benchmark/Benchmark_vs170.vcxproj index 9ccce3326..e7fd5b374 100644 --- a/JSON/samples/Benchmark/Benchmark_vs170.vcxproj +++ b/JSON/samples/Benchmark/Benchmark_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 Benchmarkd Benchmarkd Benchmarkd diff --git a/JSON/samples/Benchmark/Benchmark_vs170.vcxproj.filters b/JSON/samples/Benchmark/Benchmark_vs170.vcxproj.filters index 9ccb2bd49..0bc165fce 100644 --- a/JSON/samples/Benchmark/Benchmark_vs170.vcxproj.filters +++ b/JSON/samples/Benchmark/Benchmark_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {191dbded-1d8a-4fda-a457-3fb684a4228a} + {bcd888e5-a7ac-4dc1-80e2-c8a75df2f016} - {88402007-1e0c-4845-a43b-d89fe64751fa} + {8c28e693-bbe1-4d54-8b95-75b72c21a5e2} diff --git a/JSON/samples/samples_vs170.sln b/JSON/samples/samples_vs170.sln index bbe9c1cd2..eb12cdab1 100644 --- a/JSON/samples/samples_vs170.sln +++ b/JSON/samples/samples_vs170.sln @@ -4,6 +4,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Benchmark", "Benchmark\Benc EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|ARM64 = debug_shared|ARM64 + release_shared|ARM64 = release_shared|ARM64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 + release_static_mt|ARM64 = release_static_mt|ARM64 + debug_static_md|ARM64 = debug_static_md|ARM64 + release_static_md|ARM64 = release_static_md|ARM64 debug_shared|Win32 = debug_shared|Win32 release_shared|Win32 = release_shared|Win32 debug_static_mt|Win32 = debug_static_mt|Win32 @@ -18,6 +24,24 @@ Global release_static_md|x64 = release_static_md|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {D0381ECF-E750-32DA-8EEF-92D56B172D15}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_shared|Win32.Build.0 = debug_shared|Win32 {D0381ECF-E750-32DA-8EEF-92D56B172D15}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 diff --git a/JSON/testsuite/TestSuite_vs160.vcxproj b/JSON/testsuite/TestSuite_vs160.vcxproj index cfda8d46f..0492c8fe7 100644 --- a/JSON/testsuite/TestSuite_vs160.vcxproj +++ b/JSON/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited diff --git a/JSON/testsuite/TestSuite_vs160.vcxproj.filters b/JSON/testsuite/TestSuite_vs160.vcxproj.filters index 55697fba7..31f6090ac 100644 --- a/JSON/testsuite/TestSuite_vs160.vcxproj.filters +++ b/JSON/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {10f69dac-042c-43a9-9cf4-3f123b37d2a1} + {3366de79-5b92-489c-885b-94988c1eb71b} - {4ffee813-d2e4-4d56-afa3-a14a68fd514e} + {5e167eb0-5fc1-4755-aa32-d0f341f23fcd} diff --git a/JSON/testsuite/TestSuite_vs170.vcxproj b/JSON/testsuite/TestSuite_vs170.vcxproj index 737871b5c..85ebc5900 100644 --- a/JSON/testsuite/TestSuite_vs170.vcxproj +++ b/JSON/testsuite/TestSuite_vs170.vcxproj @@ -1,4 +1,4 @@ - + @@ -81,7 +81,7 @@ TestSuite Win32Proj - + Application MultiByte @@ -172,65 +172,65 @@ MultiByte v143 - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -352,21 +352,23 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -386,17 +388,19 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -417,21 +421,23 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -451,17 +457,19 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -482,21 +490,23 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -516,17 +526,19 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -547,10 +559,12 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -561,7 +575,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -581,10 +595,12 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -612,10 +628,12 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -626,7 +644,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -646,10 +664,12 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -677,10 +697,12 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -691,7 +713,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -711,10 +733,12 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -742,10 +766,12 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -756,7 +782,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -776,10 +802,12 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -807,10 +835,12 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -821,7 +851,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -841,10 +871,12 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -872,10 +904,12 @@ true true true - + Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -886,7 +920,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -906,10 +940,12 @@ true true true - + Level3 - + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true stdcpp17 stdc11 @@ -928,18 +964,24 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 - - + + - - - \ No newline at end of file + + + diff --git a/JSON/testsuite/TestSuite_vs170.vcxproj.filters b/JSON/testsuite/TestSuite_vs170.vcxproj.filters index 340b903da..036748424 100644 --- a/JSON/testsuite/TestSuite_vs170.vcxproj.filters +++ b/JSON/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {f220f43a-7e1c-4435-8bb5-8629b1f7c740} + {10fce339-4ca5-4344-afcd-30009bf53a03} - {6794b30f-6ba1-4241-a56f-8b73f2296371} + {044c1dcb-8d41-42ac-80df-81896f11fc6c} diff --git a/JWT/JWT_vs160.vcxproj b/JWT/JWT_vs160.vcxproj index 4283486a3..3b8fe0d89 100644 --- a/JWT/JWT_vs160.vcxproj +++ b/JWT/JWT_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoJWTd PocoJWTmdd PocoJWTmtd @@ -224,6 +224,57 @@ ..\lib64\ obj64\JWT\$(Configuration)\ + + true + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + Disabled diff --git a/JWT/JWT_vs160.vcxproj.filters b/JWT/JWT_vs160.vcxproj.filters index 37d07f4f6..990544594 100644 --- a/JWT/JWT_vs160.vcxproj.filters +++ b/JWT/JWT_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {044d5f6d-92c1-4b43-afba-6aee1bf81417} + {07f06024-b84b-4594-ab47-98c7b0a0d375} - {a6c59773-f3e7-4d29-82f9-ba5b1b8e55ad} + {04cfa128-8113-4239-b3c4-f1e759c60d11} diff --git a/JWT/JWT_vs170.vcxproj b/JWT/JWT_vs170.vcxproj index 9410efe71..2c346921c 100644 --- a/JWT/JWT_vs170.vcxproj +++ b/JWT/JWT_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoJWTA64d PocoJWTmdd PocoJWTmtd @@ -328,6 +328,81 @@ ..\lib64\ obj64\JWT\$(Configuration)\ + + true + + + Debug + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + + + Release + true + Disabled diff --git a/JWT/JWT_vs170.vcxproj.filters b/JWT/JWT_vs170.vcxproj.filters index 3581087c2..f021a9c79 100644 --- a/JWT/JWT_vs170.vcxproj.filters +++ b/JWT/JWT_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {17f40ad0-87a9-4097-8694-dd74cdb883e4} + {e3f4f096-e1e6-4ae5-91ef-8a491e433193} - {e25da310-5bc0-48a8-b315-523b046ef71b} + {836df983-de33-44ca-9c84-a442a836125b} diff --git a/JWT/testsuite/TestSuite_vs160.vcxproj b/JWT/testsuite/TestSuite_vs160.vcxproj index e5372ba86..6d2470f20 100644 --- a/JWT/testsuite/TestSuite_vs160.vcxproj +++ b/JWT/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -232,6 +232,57 @@ obj64\TestSuite\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + Disabled diff --git a/JWT/testsuite/TestSuite_vs160.vcxproj.filters b/JWT/testsuite/TestSuite_vs160.vcxproj.filters index 71aaac4e5..5a1dc1429 100644 --- a/JWT/testsuite/TestSuite_vs160.vcxproj.filters +++ b/JWT/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {3265aff2-ccb6-4d32-82f0-e03249251271} + {7d30a7c7-d4b8-47b3-8d93-0d202565cb15} - {9165f827-bdbc-407e-bdca-a4c1e6001e3c} + {a25c3d76-9695-491a-8ca6-58b0ed3d4751} diff --git a/JWT/testsuite/TestSuite_vs170.vcxproj b/JWT/testsuite/TestSuite_vs170.vcxproj index 3d5601fd7..660c0773a 100644 --- a/JWT/testsuite/TestSuite_vs170.vcxproj +++ b/JWT/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -340,6 +340,81 @@ obj64\TestSuite\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + + + Release + true + Disabled @@ -356,15 +431,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -388,11 +467,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -417,15 +500,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -449,11 +536,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -478,15 +569,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -510,11 +605,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -539,7 +638,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -547,7 +650,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -571,7 +674,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,7 +707,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -608,7 +719,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -632,7 +743,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -661,7 +776,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -669,7 +788,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -693,7 +812,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -722,7 +845,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -730,7 +857,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -754,7 +881,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -783,7 +914,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -791,7 +926,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -815,7 +950,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -844,7 +983,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -852,7 +995,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -876,7 +1019,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -892,18 +1039,28 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/JWT/testsuite/TestSuite_vs170.vcxproj.filters b/JWT/testsuite/TestSuite_vs170.vcxproj.filters index 6d02162b8..2a40872cc 100644 --- a/JWT/testsuite/TestSuite_vs170.vcxproj.filters +++ b/JWT/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {bb42f737-7ea8-4308-b814-480ac61a6b6f} + {fc09d588-d8ed-46c0-9202-841246cd144f} - {243b5333-278e-450e-995c-08f75f63db1f} + {af7dc1e3-fa6b-4126-831e-48a113858a7a} diff --git a/MongoDB/MongoDB_vs160.vcxproj b/MongoDB/MongoDB_vs160.vcxproj index fe418938a..cd3080f87 100644 --- a/MongoDB/MongoDB_vs160.vcxproj +++ b/MongoDB/MongoDB_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoMongoDBd PocoMongoDBmdd PocoMongoDBmtd diff --git a/MongoDB/MongoDB_vs160.vcxproj.filters b/MongoDB/MongoDB_vs160.vcxproj.filters index 5603a8d69..4c1153ace 100644 --- a/MongoDB/MongoDB_vs160.vcxproj.filters +++ b/MongoDB/MongoDB_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {f0921de7-217a-49ae-b2cb-69837f059462} + {70ee55d8-dce7-4e79-b2d6-3a64dcb9fd30} - {36075a44-87d3-470d-91b2-cc3024a1dd2c} + {33749c14-0ceb-4ad4-b5ec-04dba76f741f} diff --git a/MongoDB/MongoDB_vs170.vcxproj b/MongoDB/MongoDB_vs170.vcxproj index fe51a2e9c..30fd2708f 100644 --- a/MongoDB/MongoDB_vs170.vcxproj +++ b/MongoDB/MongoDB_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoMongoDBA64d PocoMongoDBmdd PocoMongoDBmtd diff --git a/MongoDB/MongoDB_vs170.vcxproj.filters b/MongoDB/MongoDB_vs170.vcxproj.filters index 021eb9909..291d6a5d0 100644 --- a/MongoDB/MongoDB_vs170.vcxproj.filters +++ b/MongoDB/MongoDB_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {e687701a-4324-4099-a863-e409f4b92b3e} + {fc391fb8-f7d9-4e46-bafb-09d1a5385f2d} - {8488969c-4d96-49be-bc25-4263be678ebc} + {fa1b8e22-4489-4933-8182-7a46f1363e15} diff --git a/MongoDB/samples/SQLToMongo/SQLToMongo_vs160.vcxproj b/MongoDB/samples/SQLToMongo/SQLToMongo_vs160.vcxproj index fc0aa1726..2c37509ff 100644 --- a/MongoDB/samples/SQLToMongo/SQLToMongo_vs160.vcxproj +++ b/MongoDB/samples/SQLToMongo/SQLToMongo_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 SQLToMongod SQLToMongod SQLToMongod diff --git a/MongoDB/samples/SQLToMongo/SQLToMongo_vs160.vcxproj.filters b/MongoDB/samples/SQLToMongo/SQLToMongo_vs160.vcxproj.filters index 81d18b37b..83f3f2915 100644 --- a/MongoDB/samples/SQLToMongo/SQLToMongo_vs160.vcxproj.filters +++ b/MongoDB/samples/SQLToMongo/SQLToMongo_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {c05166b4-d886-4e70-98d1-59664effbfa7} + {1a2a773d-963e-4938-9920-2df47cf90796} - {13a64cd0-fac1-4a78-8bd6-2d88d9b4e61c} + {72f2cc4e-4739-4073-82c7-e0ed7cbbd6c4} diff --git a/MongoDB/samples/SQLToMongo/SQLToMongo_vs170.vcxproj b/MongoDB/samples/SQLToMongo/SQLToMongo_vs170.vcxproj index ec5076381..b768dd1cb 100644 --- a/MongoDB/samples/SQLToMongo/SQLToMongo_vs170.vcxproj +++ b/MongoDB/samples/SQLToMongo/SQLToMongo_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 SQLToMongo {638D0833-8E84-3A67-BD00-4611F99E65AF} SQLToMongo @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + SQLToMongod + SQLToMongod + SQLToMongod + SQLToMongo + SQLToMongo + SQLToMongo SQLToMongod SQLToMongod SQLToMongod @@ -171,6 +250,36 @@ SQLToMongo SQLToMongo + + binA64\ + objA64\SQLToMongo\$(Configuration)\ + true + + + binA64\ + objA64\SQLToMongo\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\SQLToMongo\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\SQLToMongo\$(Configuration)\ + false + + + binA64\static_md\ + objA64\SQLToMongo\$(Configuration)\ + true + + + binA64\static_md\ + objA64\SQLToMongo\$(Configuration)\ + false + bin\ obj\SQLToMongo\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\SQLToMongo\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\SQLToMongo.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\SQLToMongod.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\SQLToMongo.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\SQLToMongod.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Net\include;..\..\..\MongoDB\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\SQLToMongod.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\SQLToMongod.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\SQLToMongod.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\SQLToMongod.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\SQLToMongod.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\SQLToMongod.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/MongoDB/samples/SQLToMongo/SQLToMongo_vs170.vcxproj.filters b/MongoDB/samples/SQLToMongo/SQLToMongo_vs170.vcxproj.filters index 4d7256cb4..81fd38d5e 100644 --- a/MongoDB/samples/SQLToMongo/SQLToMongo_vs170.vcxproj.filters +++ b/MongoDB/samples/SQLToMongo/SQLToMongo_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {47904dd2-c4e6-428d-b1a3-a7756aede789} + {fcb989c2-7118-4877-9978-e66ae94ca20d} - {69010b63-9d81-462b-8459-525b66c7ca77} + {994b9b93-4ccd-4cff-9ce6-063a6c919f39} diff --git a/MongoDB/samples/samples_vs170.sln b/MongoDB/samples/samples_vs170.sln index 9e95fa5b2..ef20ff5da 100644 --- a/MongoDB/samples/samples_vs170.sln +++ b/MongoDB/samples/samples_vs170.sln @@ -4,6 +4,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SQLToMongo", "SQLToMongo\SQ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|ARM64 = debug_shared|ARM64 + release_shared|ARM64 = release_shared|ARM64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 + release_static_mt|ARM64 = release_static_mt|ARM64 + debug_static_md|ARM64 = debug_static_md|ARM64 + release_static_md|ARM64 = release_static_md|ARM64 debug_shared|Win32 = debug_shared|Win32 release_shared|Win32 = release_shared|Win32 debug_static_mt|Win32 = debug_static_mt|Win32 @@ -18,6 +24,24 @@ Global release_static_md|x64 = release_static_md|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {638D0833-8E84-3A67-BD00-4611F99E65AF}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_shared|Win32.Build.0 = debug_shared|Win32 {638D0833-8E84-3A67-BD00-4611F99E65AF}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 diff --git a/MongoDB/testsuite/TestSuite_vs160.vcxproj b/MongoDB/testsuite/TestSuite_vs160.vcxproj index adcc23ef5..15a8e5f69 100644 --- a/MongoDB/testsuite/TestSuite_vs160.vcxproj +++ b/MongoDB/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited diff --git a/MongoDB/testsuite/TestSuite_vs160.vcxproj.filters b/MongoDB/testsuite/TestSuite_vs160.vcxproj.filters index 477e20591..ec6075cf3 100644 --- a/MongoDB/testsuite/TestSuite_vs160.vcxproj.filters +++ b/MongoDB/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {9b2d31e1-9118-4042-b864-90c6fed19a68} + {000c9ef3-b713-466a-a0c0-dce4cb7caba8} - {8b58dc5c-f28a-4321-be77-5683a050cfdd} + {0a3f8398-eddc-4c35-b7d5-3d2e16c95909} diff --git a/MongoDB/testsuite/TestSuite_vs170.vcxproj b/MongoDB/testsuite/TestSuite_vs170.vcxproj index a8beb6798..6d90780a0 100644 --- a/MongoDB/testsuite/TestSuite_vs170.vcxproj +++ b/MongoDB/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -356,15 +356,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -388,11 +392,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -417,15 +425,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -449,11 +461,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -478,15 +494,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -510,11 +530,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -539,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -547,7 +575,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -571,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -608,7 +644,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -632,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -661,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -669,7 +713,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -693,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -722,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -730,7 +782,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -754,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -783,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -791,7 +851,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -815,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -844,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -852,7 +920,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -876,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -892,15 +964,18 @@ true + stdcpp17 + stdc11 true - - - true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/MongoDB/testsuite/TestSuite_vs170.vcxproj.filters b/MongoDB/testsuite/TestSuite_vs170.vcxproj.filters index 7660c6408..d80e962a8 100644 --- a/MongoDB/testsuite/TestSuite_vs170.vcxproj.filters +++ b/MongoDB/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {9b5459bb-35da-4d08-8d3b-b33471ff20ef} + {1c8b9393-b033-4569-8e3c-b96a46d02d90} - {d82a024a-314d-4a56-957f-08694cf19d9b} + {0211d7f6-e200-408d-aadc-7c009071d187} diff --git a/Net/Net_vs160.vcxproj b/Net/Net_vs160.vcxproj index 775500d31..7c6ffe6c9 100644 --- a/Net/Net_vs160.vcxproj +++ b/Net/Net_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoNetd PocoNetmdd PocoNetmtd diff --git a/Net/Net_vs160.vcxproj.filters b/Net/Net_vs160.vcxproj.filters index 355ed2863..c05505f9b 100644 --- a/Net/Net_vs160.vcxproj.filters +++ b/Net/Net_vs160.vcxproj.filters @@ -2,166 +2,166 @@ - {6586007c-ca3f-4f39-b0e7-4693fc952fab} + {cfe84064-1b49-4f59-b5b8-45c6559794d9} - {547b1423-5e32-4001-a630-af236d1d3655} + {bd859a8d-9506-4552-a52e-5bcf1da5d9be} - {2c3ec25b-78cb-491f-8bf2-c01f8b82e119} + {3fcf67c3-c181-4bbe-be37-5bb84a6a84c7} - {30e726ad-65cf-4ab0-8e9e-37711c75ea45} + {3d5ef02e-0dbd-484f-ab83-4eb0320e3fa1} - {c946519a-2221-4333-b74f-3996d0902258} + {aa38aada-4e99-4245-9a88-280b518521e7} - {23e8dc14-00b0-4539-a047-95ebd609683d} + {21f1bd5b-6628-4418-b1f2-04fb2cc1eb01} - {1b750747-fb28-4f7b-bfcb-4db73b0d76ed} + {98be0804-9e75-4c49-ba89-9757c22af3e5} - {7c21e22f-fd5b-4ef3-807c-4693d84ff0db} + {bba1b300-b121-4280-8848-e880efb3d63b} - {bd0ccfa7-6333-4efd-8c76-62da58325c47} + {cfe6f937-9c33-4549-8410-62e0eb6d383a} - {b00ba381-9922-433e-b2dd-24830cd52443} + {63ef2709-c79a-4759-b129-97c840d23db0} - {ef4fa3dc-d7f9-4b99-864f-2d91e4a4eaa0} + {7d385e57-c285-4ee4-ab53-af6c4ac206e5} - {2284cb87-011e-47d4-a999-c45acfbe8787} + {8740010f-a528-438a-8273-81c84db4ca6f} - {d0b198a4-0654-4118-bcb6-9ebb86e6cb83} + {bf936efc-d467-460d-a2dd-64450332a886} - {266c8f68-8372-4046-88db-917e0f291b2d} + {ebc3180b-463a-4eb4-b4fa-cdfdd4bffcc0} - {93264c0a-e4c9-4f3e-8bad-f93932a9a760} + {9b8f52ff-0c03-4187-b3cb-3b26144b1acc} - {fa927c98-db31-42a0-ad56-8a57a9e77e4e} + {3f3c49c8-dc3b-49a8-9425-8c4d9b017ff1} - {468cba2a-2b1d-43b1-8a43-e6de730fd8b2} + {e80ec80a-4e7b-49fe-9404-7721b040a476} - {d1be417b-1f0c-40c0-ac02-dabd8d1f1219} + {02574d27-29dc-41ea-b27d-906e01dac20e} - {93895a4f-fd23-47c0-8dfa-5768a938dc6c} + {e7f4bef2-23bf-4f57-b4f8-c38bf27619b2} - {6eac7515-7fb4-4bdd-9a78-da0f74fb832e} + {89595039-e564-4558-a7f6-7cbb79e98422} - {5fb12433-84f9-4197-b8e2-89fa79a235c1} + {b8766c85-4254-49cb-b77d-372a80d41d61} - {3ed299f7-ad22-4b0a-8f56-d55e915f22b6} + {b4977bbf-a8ba-48b8-849f-6c6d114b5561} - {a8e7f394-c278-4af4-950c-4afcf29abf80} + {9d3ec38f-5510-4ea4-9f3e-eb4f3a181488} - {f193812c-3e8a-4be5-ae11-e9a0795f3be4} + {196fdf22-95f9-4570-8152-fc4c7a9eef57} - {0246692c-4842-4999-b34b-69b01408b6c4} + {0469c687-fcad-46a5-8ea5-04a1788ecd43} - {703afbda-41f3-4f00-a7c2-b6e9c9aca1b4} + {c2f11e8b-d583-46aa-8e08-a69117968f65} - {0a90ed52-3eaa-41a0-912c-9657558be145} + {8fbfb882-7cd3-4138-a5be-dac696756ed5} - {da54b91d-e830-479c-b9c4-a4351c5318fe} + {87c28266-22ef-4cf7-a838-e9482619784a} - {31dd5b2d-90d2-4b81-a25d-56b09fe975d3} + {be268ec5-c655-4521-9dfc-e87d8a19b31e} - {0a262473-922a-4008-8af3-e7a08410574e} + {0fac09e2-ecd0-4662-9046-01cdb875b9c9} - {29164446-693d-4311-82cd-f562ae4c7c85} + {37398fd7-3892-41ed-a4c2-fde9bf634066} - {38968f5a-123d-41bc-b946-9f70c4234101} + {9d0e9783-1e03-4e38-8cf2-91eadea8a0da} - {c02b32a6-3d5e-47a9-978c-aeb8d2e4a6b2} + {4bf3be1e-fda8-4e4a-bdc9-9b3f9dd47067} - {b215a7b1-023a-4e6e-bc96-9efcd29450fc} + {d7b06e6c-156a-426e-ae12-8dee212805fd} - {31ecbbc8-2926-48c0-8c6a-4d999a215c71} + {f13b0323-f425-46be-91c7-84fc8e38485e} - {05af34dc-aead-4fa3-b2fe-3af120f3315b} + {6f6c7570-df08-46cb-8a3d-609ef8a0f674} - {d2774370-b567-456c-96e6-bd112abd5f92} + {d05a0b70-c2dc-4f89-abd1-cc990ea2be69} - {bfec6508-1e91-4988-a4f7-0319076f79ef} + {e25c0013-9cb4-46a9-9220-c7857417609a} - {35922673-1923-4fce-a598-106d22fadae6} + {ec2feedd-a8bd-4be5-806e-30c74c97c8c0} - {c79ecd0c-401c-4f03-a374-8bee20bc5749} + {2d785b1e-be4a-4681-af70-9d5bc70a76a5} - {a4967cc4-a1cc-4447-b008-71f7545c57f9} + {36d7cfaa-5502-4578-804f-a33845842799} - {f4cb442a-c76e-4af4-b848-cf889f1da3c7} + {078b3fb0-5b03-4e9d-84a4-dd38dddec5eb} - {ed6c0de8-11ad-4bd6-a8be-698fccd9058d} + {c642fe57-9699-42f7-bf37-a2c202863115} - {cf1cf3f6-5cad-4813-ac18-07234e1e7d21} + {55d3c6bf-052f-4a29-80a5-ea601795d297} - {2ca60ef4-2aec-4590-8f8f-96b888d14700} + {d8c45bba-ba27-4809-b89e-fc600e2633f2} - {a1455a31-9406-46f8-9178-2ffcb70e9a85} + {c72ec9ae-89b8-4221-b2d3-d8e1e6d5f2f6} - {46da8814-e0d8-4281-9ef3-9ebbdebc2205} + {6d48c35b-f053-4b9c-86c0-7fed4ef93689} - {688005cc-583b-43d9-99b8-c72729046ab3} + {a64ac6ce-5cb4-4c7c-b6be-a50d86d033d1} - {d1477907-8069-4477-8700-0236b48f972a} + {b21e3bb4-cea3-4597-8be1-dbb8ef37fc22} - {07a6fba2-ca4e-4e26-839d-a9000190b95c} + {b6df8cdb-420d-45d4-898d-3ecf3d79bb60} - {7496c44f-1b9a-4b4a-aab5-121f27d8d173} + {9990538b-db3d-4d71-8211-01a6064230a2} - {61e1e9d1-e066-4553-a24f-73b81c6c68ef} + {2b73d1cc-7a88-46b5-a721-f3a0e0fd2b29} - {a0624a14-a94b-4a04-beef-04c407cc3854} + {c4b4a4c1-3019-4bb7-bd49-f76d1de1ba87} - {de8dae17-8c06-4b5b-aa00-46c9ded50bec} + {086a387c-0eff-47cf-9760-6961d92f28f9} diff --git a/Net/Net_vs170.vcxproj b/Net/Net_vs170.vcxproj index 331f5f6ef..2cd0ad320 100644 --- a/Net/Net_vs170.vcxproj +++ b/Net/Net_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoNetA64d PocoNetmdd PocoNetmtd diff --git a/Net/Net_vs170.vcxproj.filters b/Net/Net_vs170.vcxproj.filters index e5c3c662d..48fccd4e3 100644 --- a/Net/Net_vs170.vcxproj.filters +++ b/Net/Net_vs170.vcxproj.filters @@ -2,166 +2,166 @@ - {0f393581-fb6c-4d73-b811-19733a904d02} + {39b5f6a8-2a04-4c56-a131-41de81ee930a} - {7d92a679-da95-4691-83af-f94a72380c8a} + {faa37093-1107-46f6-ab16-800af478c6d8} - {fe6b7b86-3e2e-4ab6-afbf-f8f10456df57} + {e4463556-71b1-4623-a2aa-cf42cff56f44} - {30fce044-fc3f-4bd9-824c-f412e5558e5b} + {151876a9-27bd-4af1-b30c-74b9b61a494a} - {172b7d94-dc82-4905-8663-8e9206a6d123} + {a6f8d4b1-c154-4d81-a3b5-b4665af86a8e} - {4d5c961f-3a8f-42ed-9956-21935625c1d2} + {cb7688c4-4d8c-453b-9ddb-cedec6cf4b38} - {7eab4806-80e3-409b-8348-2c80be0f3524} + {f672c8e1-329c-4b82-b1f3-c6fe38e99f1b} - {834ec475-9213-4b7d-b2bf-4766f4246d2c} + {98f26cee-6119-4d3c-9100-dcd410f2de59} - {cb796d62-dee6-45af-a7c0-5909769eaa5d} + {0d341365-0376-4a41-8def-2c73321949e2} - {ec0de0ea-eaa7-4f65-8dc6-333ce7fb145c} + {354e6825-62f5-421a-886b-6f053e5739ac} - {8323a82c-63f3-4049-b0b7-5e188fed5779} + {91b65a36-fdd5-4648-a055-f9f12564ec0e} - {c03b3059-5722-4ba7-9415-a316eb0b3461} + {c0c782cf-40be-4da0-ba4c-09313c27897e} - {d7e6310c-244d-4193-b178-9eff441ffaa5} + {c658f45b-e825-4f9b-ba73-ab2b064bbc01} - {ce6e9655-8a4e-4aae-abda-e2ef4938355b} + {f0bf8cc1-f209-453b-978a-b997cc0e1007} - {ca423d03-073b-42e3-9363-0a065c086b43} + {c26c159a-6c4a-46c7-a56c-d9b04c47173a} - {c08c3294-ddc0-4fbc-9ec1-909766304402} + {23a8fac3-dd0f-4621-a76a-89718355a86c} - {2c77b3b7-677f-4aef-9956-fce03b43fbba} + {692b4163-dcb8-4f4f-959e-44c69dd8f291} - {d23f849f-cfb6-4747-aadb-1f6937fcf6ab} + {dead6c4d-b206-4a20-bc09-8112b07be4f5} - {59c3213c-7398-4922-9786-0e45428cf090} + {ab4c84f4-656e-496d-b70d-7bc805738fbd} - {57768490-3ad9-4baf-8323-04f5b0b37e1d} + {a75473d2-0c1e-4ebc-9580-6c460f4a260a} - {29e894e3-a5c2-4ac0-9462-0f3cbf09a07e} + {eb9d23a7-6133-4b76-8f7b-0ffc6b13aa41} - {88b9a471-6e74-4a30-8ddc-c6843a804fe9} + {fb7c73be-a262-486a-9c68-a01d15581670} - {7bbd272c-91a7-4640-ab2b-5576d0aba1da} + {16656f38-4b19-4bdc-bccb-1c40f7490447} - {5b35ce48-7d42-4819-bb14-016c8cd08c1e} + {21aebe0c-f3c3-44ee-895b-a916d600ff91} - {c548a957-d077-4b1c-b52d-5faa7c116ff1} + {bcdb4b79-790d-4dea-8395-dc99ddf58216} - {c7db860a-5743-4ec6-8a7a-8ebb4808d4b1} + {97ae9069-cd28-4d92-be53-6e3cd4bd427a} - {2920f992-d22c-4802-8dfd-8f2a79506722} + {e4597e3e-6507-4c42-aeca-03a96180627b} - {eadc8668-bfec-4b9a-b92c-1ce73161cf95} + {c6a2677d-45ee-4f1d-95f7-1fe1c0f194c3} - {65e64bf1-3b11-4100-8ea8-2fe84d56c3b8} + {855be090-4afb-45ce-9194-a26218a5908f} - {d5462cff-09df-4808-92bc-54810b8900ae} + {14615fc3-9892-4157-b69f-032f25a1ef0d} - {19667b40-77aa-487f-98e3-2bbee4bf3a48} + {d46dd897-0b3e-4053-ad71-5b3924aeae53} - {bd35580c-2467-4381-872d-2efe9bb8722d} + {e7f60724-bfcf-4ccb-bb64-ecd569b49d9e} - {24745bd5-81e6-4bb4-b1c6-97bfb3e30ed2} + {5b5f0edb-92fd-46b3-a449-781bb00a9ca4} - {06069587-0dde-4d10-bea7-5358b9ffbf97} + {e77f16f4-8723-4338-9091-09f4582fe26a} - {8135fb8b-ef54-41ce-872b-ec34c1984051} + {3bac0f7f-ec42-46c2-9972-b425b392474f} - {b5d41b85-1f85-4256-b92e-98d010bef2ac} + {b8c75628-e76a-45ac-9fde-6583b5d1c686} - {f85def03-7da6-4ce8-a11c-47e14067e360} + {0078be81-efeb-4471-ba9a-8fc29029c047} - {0f89a979-ac8f-4fd1-b8b6-427b7f2bd4e3} + {9422e2e1-95ee-4815-87c6-e3eb9a68e592} - {854476b2-23e2-43a1-af94-c5710c97bf51} + {78535b2a-f235-4214-b0e9-b810028a824f} - {f35fa359-4531-479e-bf41-827bcfed2589} + {19e7ee25-083c-427a-895e-fcebfcf6bebc} - {202f25d8-c8d9-433d-a7a0-18239240101f} + {f34e65eb-c020-4f53-b94a-fa95785b8d3e} - {8fe2f58d-56bc-4869-9eab-dd65dd0a14ca} + {18a9544b-ac77-4f99-be8e-ba471d2e5e1e} - {f22d77b3-7de7-45d6-9c82-c06f9673b44e} + {445e1e6f-735f-46ea-aa41-a9db9e2132f2} - {9a20a6bc-9f47-4bcb-8b0a-39f524bc8e65} + {27dac4e6-c87c-4bce-9f59-7ee281b6fd5b} - {1dd41c32-d00e-4c55-8645-c356aca4023b} + {23c1c1d3-81ca-4104-bbc8-8ee6a93dfce7} - {9c2d7a98-8398-42fc-a345-5278661dfb5b} + {e6ab3b82-b183-49b5-bea4-4c71967b4cdd} - {e1146a66-2ef9-4f82-8b0e-e80f2d8c91f9} + {4ec09a11-a857-41a4-9c8d-fd8db3e3fe11} - {13a18171-b410-4c2f-9233-b70f7116faf3} + {ea10da72-9c34-49fd-8748-c7915b981337} - {72cfa271-ffc8-49c9-b46c-34a920c74554} + {41c1fd91-829d-41f4-8b9a-29ba47865c46} - {a28c4870-c13c-4494-a100-21eca36e176e} + {6426a534-b93a-4b37-9f8d-84815981d4ef} - {3eb5680d-25b9-45ee-a927-e0b32e712052} + {bd442f1c-4d95-4389-8344-3d11a890ea24} - {eb39586c-e344-404f-915f-5d65c6e433c7} + {3517c25c-1aa8-4a2c-a05b-7c7e92764286} - {579659c3-dd76-4375-ade8-423ead925e9e} + {fc9f9aef-728c-4a71-bb98-903fe29a25ba} - {e3865012-ad03-49c4-b49e-0a3a653deaba} + {92d7d620-c47e-4783-8d6f-efbe76fd613c} diff --git a/Net/samples/EchoServer/EchoServer_vs160.vcxproj b/Net/samples/EchoServer/EchoServer_vs160.vcxproj index 694330c41..df093d274 100644 --- a/Net/samples/EchoServer/EchoServer_vs160.vcxproj +++ b/Net/samples/EchoServer/EchoServer_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 EchoServerd EchoServerd EchoServerd diff --git a/Net/samples/EchoServer/EchoServer_vs160.vcxproj.filters b/Net/samples/EchoServer/EchoServer_vs160.vcxproj.filters index 821f76d7a..9f7a8ab8e 100644 --- a/Net/samples/EchoServer/EchoServer_vs160.vcxproj.filters +++ b/Net/samples/EchoServer/EchoServer_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {f8ec6c33-55b8-4c41-abea-1331fa246eba} + {9f696ff6-5cb9-4d8c-9c96-5d685752e310} - {854255f5-31d9-4821-a308-2fc436fadd12} + {151754e3-7268-4c08-9b38-7d3664946368} diff --git a/Net/samples/EchoServer/EchoServer_vs170.vcxproj b/Net/samples/EchoServer/EchoServer_vs170.vcxproj index 66a17628e..9baa50ecc 100644 --- a/Net/samples/EchoServer/EchoServer_vs170.vcxproj +++ b/Net/samples/EchoServer/EchoServer_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 EchoServer {5074CE3E-05F5-31BA-BA79-1AD54C3416F7} EchoServer @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + EchoServerd + EchoServerd + EchoServerd + EchoServer + EchoServer + EchoServer EchoServerd EchoServerd EchoServerd @@ -171,6 +250,36 @@ EchoServer EchoServer + + binA64\ + objA64\EchoServer\$(Configuration)\ + true + + + binA64\ + objA64\EchoServer\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\EchoServer\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\EchoServer\$(Configuration)\ + false + + + binA64\static_md\ + objA64\EchoServer\$(Configuration)\ + true + + + binA64\static_md\ + objA64\EchoServer\$(Configuration)\ + false + bin\ obj\EchoServer\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\EchoServer\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\EchoServer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\EchoServerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\EchoServer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\EchoServerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\EchoServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\EchoServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\EchoServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\EchoServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\EchoServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\EchoServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -603,6 +967,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/EchoServer/EchoServer_vs170.vcxproj.filters b/Net/samples/EchoServer/EchoServer_vs170.vcxproj.filters index f4db67f09..5d23f690d 100644 --- a/Net/samples/EchoServer/EchoServer_vs170.vcxproj.filters +++ b/Net/samples/EchoServer/EchoServer_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {41fd51d3-4127-44d1-a8e2-4d7ef29139f8} + {4b680a5d-006c-4160-bb2c-f2b98173afc3} - {05ac81c2-e990-4638-923f-badd82dcc797} + {cdd617f1-7782-4630-bc11-5122d616caf3} diff --git a/Net/samples/HTTPFormServer/HTTPFormServer_vs160.vcxproj b/Net/samples/HTTPFormServer/HTTPFormServer_vs160.vcxproj index b04a9c1d0..e004ee476 100644 --- a/Net/samples/HTTPFormServer/HTTPFormServer_vs160.vcxproj +++ b/Net/samples/HTTPFormServer/HTTPFormServer_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 HTTPFormServerd HTTPFormServerd HTTPFormServerd diff --git a/Net/samples/HTTPFormServer/HTTPFormServer_vs160.vcxproj.filters b/Net/samples/HTTPFormServer/HTTPFormServer_vs160.vcxproj.filters index 06282f1bf..4652db660 100644 --- a/Net/samples/HTTPFormServer/HTTPFormServer_vs160.vcxproj.filters +++ b/Net/samples/HTTPFormServer/HTTPFormServer_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {28d9ec32-2303-45cd-9b82-99d8e82d114a} + {ed9f53ed-db32-477a-ab24-0a8afa50fe27} - {7b664366-4efd-4f61-8e9a-d3402e5f9151} + {7fcb7a0a-4127-48d3-91b9-370e242dc3cd} diff --git a/Net/samples/HTTPFormServer/HTTPFormServer_vs170.vcxproj b/Net/samples/HTTPFormServer/HTTPFormServer_vs170.vcxproj index 2ae47d863..46a3aac44 100644 --- a/Net/samples/HTTPFormServer/HTTPFormServer_vs170.vcxproj +++ b/Net/samples/HTTPFormServer/HTTPFormServer_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 HTTPFormServer {19B162EB-DDAA-37BA-AE93-7FDED89274DE} HTTPFormServer @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + HTTPFormServerd + HTTPFormServerd + HTTPFormServerd + HTTPFormServer + HTTPFormServer + HTTPFormServer HTTPFormServerd HTTPFormServerd HTTPFormServerd @@ -171,6 +250,36 @@ HTTPFormServer HTTPFormServer + + binA64\ + objA64\HTTPFormServer\$(Configuration)\ + true + + + binA64\ + objA64\HTTPFormServer\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\HTTPFormServer\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\HTTPFormServer\$(Configuration)\ + false + + + binA64\static_md\ + objA64\HTTPFormServer\$(Configuration)\ + true + + + binA64\static_md\ + objA64\HTTPFormServer\$(Configuration)\ + false + bin\ obj\HTTPFormServer\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\HTTPFormServer\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\HTTPFormServer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\HTTPFormServerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\HTTPFormServer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\HTTPFormServerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\HTTPFormServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\HTTPFormServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\HTTPFormServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\HTTPFormServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\HTTPFormServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\HTTPFormServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -603,6 +967,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/HTTPFormServer/HTTPFormServer_vs170.vcxproj.filters b/Net/samples/HTTPFormServer/HTTPFormServer_vs170.vcxproj.filters index 2c162b77c..e3180e8b5 100644 --- a/Net/samples/HTTPFormServer/HTTPFormServer_vs170.vcxproj.filters +++ b/Net/samples/HTTPFormServer/HTTPFormServer_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {948be1f4-79e0-4ef4-b975-6e4ba8bcba90} + {bf609614-0583-445a-b7be-49cfbfa2245d} - {8be1e552-7224-4ca2-b0e4-23796a2b6b75} + {4f66b0e7-295e-4b5e-8557-8a959149feab} diff --git a/Net/samples/HTTPLoadTest/HTTPLoadTest_vs160.vcxproj b/Net/samples/HTTPLoadTest/HTTPLoadTest_vs160.vcxproj index 188b66305..a2d0e1b85 100644 --- a/Net/samples/HTTPLoadTest/HTTPLoadTest_vs160.vcxproj +++ b/Net/samples/HTTPLoadTest/HTTPLoadTest_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 HTTPLoadTestd HTTPLoadTestd HTTPLoadTestd diff --git a/Net/samples/HTTPLoadTest/HTTPLoadTest_vs160.vcxproj.filters b/Net/samples/HTTPLoadTest/HTTPLoadTest_vs160.vcxproj.filters index fca88fd57..816874db6 100644 --- a/Net/samples/HTTPLoadTest/HTTPLoadTest_vs160.vcxproj.filters +++ b/Net/samples/HTTPLoadTest/HTTPLoadTest_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {03b3bbaf-68d9-4642-b816-5aecd2346517} + {8d09c5b5-2380-4a0e-9284-071498fb15a7} diff --git a/Net/samples/HTTPLoadTest/HTTPLoadTest_vs170.vcxproj b/Net/samples/HTTPLoadTest/HTTPLoadTest_vs170.vcxproj index 47a400eeb..8cb538df9 100644 --- a/Net/samples/HTTPLoadTest/HTTPLoadTest_vs170.vcxproj +++ b/Net/samples/HTTPLoadTest/HTTPLoadTest_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 HTTPLoadTest {A140D236-D64B-370A-A7E7-3000725D9869} HTTPLoadTest @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + HTTPLoadTestd + HTTPLoadTestd + HTTPLoadTestd + HTTPLoadTest + HTTPLoadTest + HTTPLoadTest HTTPLoadTestd HTTPLoadTestd HTTPLoadTestd @@ -171,6 +250,36 @@ HTTPLoadTest HTTPLoadTest + + binA64\ + objA64\HTTPLoadTest\$(Configuration)\ + true + + + binA64\ + objA64\HTTPLoadTest\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\HTTPLoadTest\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\HTTPLoadTest\$(Configuration)\ + false + + + binA64\static_md\ + objA64\HTTPLoadTest\$(Configuration)\ + true + + + binA64\static_md\ + objA64\HTTPLoadTest\$(Configuration)\ + false + bin\ obj\HTTPLoadTest\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\HTTPLoadTest\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\HTTPLoadTest.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\HTTPLoadTestd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\HTTPLoadTest.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\HTTPLoadTestd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\HTTPLoadTestd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\HTTPLoadTestd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\HTTPLoadTestd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\HTTPLoadTestd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\HTTPLoadTestd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\HTTPLoadTestd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/HTTPLoadTest/HTTPLoadTest_vs170.vcxproj.filters b/Net/samples/HTTPLoadTest/HTTPLoadTest_vs170.vcxproj.filters index ee645f841..f20477cf4 100644 --- a/Net/samples/HTTPLoadTest/HTTPLoadTest_vs170.vcxproj.filters +++ b/Net/samples/HTTPLoadTest/HTTPLoadTest_vs170.vcxproj.filters @@ -2,7 +2,7 @@ - {ee8d0578-0505-40d4-a762-4a3a8fe9824f} + {33933928-7f80-4f5a-a159-599f1400b86e} diff --git a/Net/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj b/Net/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj index 339b8a6c0..245a2d19c 100644 --- a/Net/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj +++ b/Net/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 HTTPTimeServerd HTTPTimeServerd HTTPTimeServerd diff --git a/Net/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj.filters b/Net/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj.filters index 5ca7aef49..8df79441b 100644 --- a/Net/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj.filters +++ b/Net/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {f15659cc-e7e0-4f06-84e4-d2e78640f40a} + {f2077d28-2de7-4969-9c63-998bbd4d49d1} - {fdd11454-e1d0-4044-a596-7998c65f4581} + {30ba8631-c476-486c-9a3f-5ec26cff94ff} diff --git a/Net/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj b/Net/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj index fc6cf1918..ca386df2c 100644 --- a/Net/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj +++ b/Net/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 HTTPTimeServer {18A0143A-444A-38E3-838C-1ACFBE4EE18C} HTTPTimeServer @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + HTTPTimeServerd + HTTPTimeServerd + HTTPTimeServerd + HTTPTimeServer + HTTPTimeServer + HTTPTimeServer HTTPTimeServerd HTTPTimeServerd HTTPTimeServerd @@ -171,6 +250,36 @@ HTTPTimeServer HTTPTimeServer + + binA64\ + objA64\HTTPTimeServer\$(Configuration)\ + true + + + binA64\ + objA64\HTTPTimeServer\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\HTTPTimeServer\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\HTTPTimeServer\$(Configuration)\ + false + + + binA64\static_md\ + objA64\HTTPTimeServer\$(Configuration)\ + true + + + binA64\static_md\ + objA64\HTTPTimeServer\$(Configuration)\ + false + bin\ obj\HTTPTimeServer\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\HTTPTimeServer\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\HTTPTimeServer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\HTTPTimeServerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\HTTPTimeServer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\HTTPTimeServerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -603,6 +967,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj.filters b/Net/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj.filters index 0dba1f2c8..fe0f86caa 100644 --- a/Net/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj.filters +++ b/Net/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {de4c5738-640f-4734-9b20-1986b5c4805d} + {35ea3e5f-3889-4ae1-9624-639f81d11698} - {fa31f8fa-e91f-448e-8711-056c35d27694} + {2e3d1abc-e17d-4db0-94e8-9d4e575759b4} diff --git a/Net/samples/Mail/Mail_vs160.vcxproj b/Net/samples/Mail/Mail_vs160.vcxproj index 5764ddf29..c38b161f1 100644 --- a/Net/samples/Mail/Mail_vs160.vcxproj +++ b/Net/samples/Mail/Mail_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 Maild Maild Maild diff --git a/Net/samples/Mail/Mail_vs160.vcxproj.filters b/Net/samples/Mail/Mail_vs160.vcxproj.filters index 9ae8fa154..1415f7498 100644 --- a/Net/samples/Mail/Mail_vs160.vcxproj.filters +++ b/Net/samples/Mail/Mail_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {32ea00e5-48d2-4cf3-873a-cb3473cb873f} + {c188ae8d-b00a-47f5-958f-8126ea300bc3} diff --git a/Net/samples/Mail/Mail_vs170.vcxproj b/Net/samples/Mail/Mail_vs170.vcxproj index b24788da0..6eaebb40f 100644 --- a/Net/samples/Mail/Mail_vs170.vcxproj +++ b/Net/samples/Mail/Mail_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 Mail {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA} Mail @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + Maild + Maild + Maild + Mail + Mail + Mail Maild Maild Maild @@ -171,6 +250,36 @@ Mail Mail + + binA64\ + objA64\Mail\$(Configuration)\ + true + + + binA64\ + objA64\Mail\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\Mail\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\Mail\$(Configuration)\ + false + + + binA64\static_md\ + objA64\Mail\$(Configuration)\ + true + + + binA64\static_md\ + objA64\Mail\$(Configuration)\ + false + bin\ obj\Mail\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\Mail\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\Mail.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\Maild.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\Mail.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\Maild.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/Mail/Mail_vs170.vcxproj.filters b/Net/samples/Mail/Mail_vs170.vcxproj.filters index 2aa343dd9..7259eacba 100644 --- a/Net/samples/Mail/Mail_vs170.vcxproj.filters +++ b/Net/samples/Mail/Mail_vs170.vcxproj.filters @@ -2,7 +2,7 @@ - {944fee45-67da-43cb-a000-06033806b09b} + {48364b87-b6af-42fd-be4d-f38bb06026a6} diff --git a/Net/samples/Ping/Ping_vs160.vcxproj b/Net/samples/Ping/Ping_vs160.vcxproj index 99c9e0759..052f35f1f 100644 --- a/Net/samples/Ping/Ping_vs160.vcxproj +++ b/Net/samples/Ping/Ping_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 Pingd Pingd Pingd diff --git a/Net/samples/Ping/Ping_vs160.vcxproj.filters b/Net/samples/Ping/Ping_vs160.vcxproj.filters index f96f94dc4..daf6f7cf5 100644 --- a/Net/samples/Ping/Ping_vs160.vcxproj.filters +++ b/Net/samples/Ping/Ping_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {9e79747a-4765-4a08-8a8c-a807b440a4bd} + {b2dd8998-e92f-4471-aabd-0ba7fb87bfd4} - {4debcd31-cc79-4aad-a363-5ab92c651b86} + {c377f6f1-0f65-4a7f-8953-127e3a28e082} diff --git a/Net/samples/Ping/Ping_vs170.vcxproj b/Net/samples/Ping/Ping_vs170.vcxproj index c4ed0b3b3..d5dfed689 100644 --- a/Net/samples/Ping/Ping_vs170.vcxproj +++ b/Net/samples/Ping/Ping_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 Ping {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5} Ping @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + Pingd + Pingd + Pingd + Ping + Ping + Ping Pingd Pingd Pingd @@ -171,6 +250,36 @@ Ping Ping + + binA64\ + objA64\Ping\$(Configuration)\ + true + + + binA64\ + objA64\Ping\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\Ping\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\Ping\$(Configuration)\ + false + + + binA64\static_md\ + objA64\Ping\$(Configuration)\ + true + + + binA64\static_md\ + objA64\Ping\$(Configuration)\ + false + bin\ obj\Ping\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\Ping\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\Ping.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\Pingd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\Ping.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\Pingd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Pingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Pingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Pingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Pingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Pingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Pingd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -603,6 +967,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/Ping/Ping_vs170.vcxproj.filters b/Net/samples/Ping/Ping_vs170.vcxproj.filters index de87287b3..3a4bedb00 100644 --- a/Net/samples/Ping/Ping_vs170.vcxproj.filters +++ b/Net/samples/Ping/Ping_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {d318d425-63de-4a4b-891f-e4cbb0b5eb8d} + {97ba47d7-1780-4ad6-8ac0-6f54ff9806bf} - {70d4eb66-b7b3-469f-8b07-a857cbab0498} + {c1ea62fd-1d3d-48ac-bf27-8662e46e8a5e} diff --git a/Net/samples/SMTPLogger/SMTPLogger_vs160.vcxproj b/Net/samples/SMTPLogger/SMTPLogger_vs160.vcxproj index ad2a5b584..b844a6b25 100644 --- a/Net/samples/SMTPLogger/SMTPLogger_vs160.vcxproj +++ b/Net/samples/SMTPLogger/SMTPLogger_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 SMTPLoggerd SMTPLoggerd SMTPLoggerd diff --git a/Net/samples/SMTPLogger/SMTPLogger_vs160.vcxproj.filters b/Net/samples/SMTPLogger/SMTPLogger_vs160.vcxproj.filters index e429d2202..c66b5acb5 100644 --- a/Net/samples/SMTPLogger/SMTPLogger_vs160.vcxproj.filters +++ b/Net/samples/SMTPLogger/SMTPLogger_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {31dd20ff-dada-4133-83ea-18077e42ad51} + {d1442ce3-4e63-46e1-9bde-55d7401d957b} diff --git a/Net/samples/SMTPLogger/SMTPLogger_vs170.vcxproj b/Net/samples/SMTPLogger/SMTPLogger_vs170.vcxproj index bdb210421..1009435aa 100644 --- a/Net/samples/SMTPLogger/SMTPLogger_vs170.vcxproj +++ b/Net/samples/SMTPLogger/SMTPLogger_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 SMTPLogger {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF} SMTPLogger @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + SMTPLoggerd + SMTPLoggerd + SMTPLoggerd + SMTPLogger + SMTPLogger + SMTPLogger SMTPLoggerd SMTPLoggerd SMTPLoggerd @@ -171,6 +250,36 @@ SMTPLogger SMTPLogger + + binA64\ + objA64\SMTPLogger\$(Configuration)\ + true + + + binA64\ + objA64\SMTPLogger\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\SMTPLogger\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\SMTPLogger\$(Configuration)\ + false + + + binA64\static_md\ + objA64\SMTPLogger\$(Configuration)\ + true + + + binA64\static_md\ + objA64\SMTPLogger\$(Configuration)\ + false + bin\ obj\SMTPLogger\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\SMTPLogger\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\SMTPLogger.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\SMTPLoggerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\SMTPLogger.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\SMTPLoggerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\SMTPLoggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\SMTPLoggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\SMTPLoggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\SMTPLoggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\SMTPLoggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\SMTPLoggerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/SMTPLogger/SMTPLogger_vs170.vcxproj.filters b/Net/samples/SMTPLogger/SMTPLogger_vs170.vcxproj.filters index 1eb1423a2..eea49ae61 100644 --- a/Net/samples/SMTPLogger/SMTPLogger_vs170.vcxproj.filters +++ b/Net/samples/SMTPLogger/SMTPLogger_vs170.vcxproj.filters @@ -2,7 +2,7 @@ - {85a3d00f-f4b6-43b2-8438-5bd88329fcec} + {d42afd79-ca27-4e62-9c0f-ffcfa288883d} diff --git a/Net/samples/TimeServer/TimeServer_vs160.vcxproj b/Net/samples/TimeServer/TimeServer_vs160.vcxproj index 71390573d..7b12e628b 100644 --- a/Net/samples/TimeServer/TimeServer_vs160.vcxproj +++ b/Net/samples/TimeServer/TimeServer_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TimeServerd TimeServerd TimeServerd diff --git a/Net/samples/TimeServer/TimeServer_vs160.vcxproj.filters b/Net/samples/TimeServer/TimeServer_vs160.vcxproj.filters index ecc57f901..080f9bb6a 100644 --- a/Net/samples/TimeServer/TimeServer_vs160.vcxproj.filters +++ b/Net/samples/TimeServer/TimeServer_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {d0dfb7c6-c519-4fac-ae8d-e755125276ce} + {45d64885-ee97-4be7-bb3f-0f342846a6d0} - {5494fc19-b6f8-4590-a41e-e26a9314f302} + {271fc96b-7348-4001-b042-f1dc66d14dc0} diff --git a/Net/samples/TimeServer/TimeServer_vs170.vcxproj b/Net/samples/TimeServer/TimeServer_vs170.vcxproj index 3d3a238c9..d7babcd92 100644 --- a/Net/samples/TimeServer/TimeServer_vs170.vcxproj +++ b/Net/samples/TimeServer/TimeServer_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 TimeServer {59EDFD20-9968-30F7-9532-44C08DA58C6E} TimeServer @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + TimeServerd + TimeServerd + TimeServerd + TimeServer + TimeServer + TimeServer TimeServerd TimeServerd TimeServerd @@ -171,6 +250,36 @@ TimeServer TimeServer + + binA64\ + objA64\TimeServer\$(Configuration)\ + true + + + binA64\ + objA64\TimeServer\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\TimeServer\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\TimeServer\$(Configuration)\ + false + + + binA64\static_md\ + objA64\TimeServer\$(Configuration)\ + true + + + binA64\static_md\ + objA64\TimeServer\$(Configuration)\ + false + bin\ obj\TimeServer\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\TimeServer\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\TimeServer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\TimeServerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\TimeServer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\TimeServerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/TimeServer/TimeServer_vs170.vcxproj.filters b/Net/samples/TimeServer/TimeServer_vs170.vcxproj.filters index 8130c3b45..52a6219cd 100644 --- a/Net/samples/TimeServer/TimeServer_vs170.vcxproj.filters +++ b/Net/samples/TimeServer/TimeServer_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {ce935249-2847-47b3-be0f-d5c091b75015} + {7354eca4-84cd-4cd4-aec1-c05feecacfa1} - {294defb8-24ea-400a-9c82-dc312adad1fc} + {e4cac46a-2ee4-436e-ae4b-ff2d686dd14b} diff --git a/Net/samples/WebSocketServer/WebSocketServer_vs160.vcxproj b/Net/samples/WebSocketServer/WebSocketServer_vs160.vcxproj index f1d9e83ce..4725a54a7 100644 --- a/Net/samples/WebSocketServer/WebSocketServer_vs160.vcxproj +++ b/Net/samples/WebSocketServer/WebSocketServer_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 WebSocketServerd WebSocketServerd WebSocketServerd diff --git a/Net/samples/WebSocketServer/WebSocketServer_vs160.vcxproj.filters b/Net/samples/WebSocketServer/WebSocketServer_vs160.vcxproj.filters index 7bdb3f034..91a5d7cfa 100644 --- a/Net/samples/WebSocketServer/WebSocketServer_vs160.vcxproj.filters +++ b/Net/samples/WebSocketServer/WebSocketServer_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {16bc7bb6-cdcb-4cbd-83da-1e265fb8bc61} + {35f8f05b-4b22-4f85-a29b-c713c9617787} diff --git a/Net/samples/WebSocketServer/WebSocketServer_vs170.vcxproj b/Net/samples/WebSocketServer/WebSocketServer_vs170.vcxproj index fad47866d..a833a370f 100644 --- a/Net/samples/WebSocketServer/WebSocketServer_vs170.vcxproj +++ b/Net/samples/WebSocketServer/WebSocketServer_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 WebSocketServer {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C} WebSocketServer @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + WebSocketServerd + WebSocketServerd + WebSocketServerd + WebSocketServer + WebSocketServer + WebSocketServer WebSocketServerd WebSocketServerd WebSocketServerd @@ -171,6 +250,36 @@ WebSocketServer WebSocketServer + + binA64\ + objA64\WebSocketServer\$(Configuration)\ + true + + + binA64\ + objA64\WebSocketServer\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\WebSocketServer\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\WebSocketServer\$(Configuration)\ + false + + + binA64\static_md\ + objA64\WebSocketServer\$(Configuration)\ + true + + + binA64\static_md\ + objA64\WebSocketServer\$(Configuration)\ + false + bin\ obj\WebSocketServer\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\WebSocketServer\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\WebSocketServer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\WebSocketServerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\WebSocketServer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\WebSocketServerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\WebSocketServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\WebSocketServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\WebSocketServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\WebSocketServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\WebSocketServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\WebSocketServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/WebSocketServer/WebSocketServer_vs170.vcxproj.filters b/Net/samples/WebSocketServer/WebSocketServer_vs170.vcxproj.filters index abdc50da1..17d0ee3c3 100644 --- a/Net/samples/WebSocketServer/WebSocketServer_vs170.vcxproj.filters +++ b/Net/samples/WebSocketServer/WebSocketServer_vs170.vcxproj.filters @@ -2,7 +2,7 @@ - {43eb0f0b-8d2c-4435-9965-09717af88a41} + {c3a73ab2-e95e-4604-ba68-730a186a8b3b} diff --git a/Net/samples/dict/dict_vs160.vcxproj b/Net/samples/dict/dict_vs160.vcxproj index f0b438c6b..ab424935a 100644 --- a/Net/samples/dict/dict_vs160.vcxproj +++ b/Net/samples/dict/dict_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 dictd dictd dictd diff --git a/Net/samples/dict/dict_vs160.vcxproj.filters b/Net/samples/dict/dict_vs160.vcxproj.filters index 022307233..1683c3ae8 100644 --- a/Net/samples/dict/dict_vs160.vcxproj.filters +++ b/Net/samples/dict/dict_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {9b62a9a4-e309-4c35-b45d-2437a9930f07} + {17f55fb6-0632-4d82-867a-90d14a5fa300} diff --git a/Net/samples/dict/dict_vs170.vcxproj b/Net/samples/dict/dict_vs170.vcxproj index b5ab1f392..2ae4d5e7b 100644 --- a/Net/samples/dict/dict_vs170.vcxproj +++ b/Net/samples/dict/dict_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 dict {90F24341-F59F-385F-A8D6-66AB377FF033} dict @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + dictd + dictd + dictd + dict + dict + dict dictd dictd dictd @@ -171,6 +250,36 @@ dict dict + + binA64\ + objA64\dict\$(Configuration)\ + true + + + binA64\ + objA64\dict\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\dict\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\dict\$(Configuration)\ + false + + + binA64\static_md\ + objA64\dict\$(Configuration)\ + true + + + binA64\static_md\ + objA64\dict\$(Configuration)\ + false + bin\ obj\dict\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\dict\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\dict.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\dictd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\dict.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\dictd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\dictd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\dictd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\dictd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\dictd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\dictd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\dictd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/dict/dict_vs170.vcxproj.filters b/Net/samples/dict/dict_vs170.vcxproj.filters index d8719df17..e2c7922bf 100644 --- a/Net/samples/dict/dict_vs170.vcxproj.filters +++ b/Net/samples/dict/dict_vs170.vcxproj.filters @@ -2,7 +2,7 @@ - {8c7e56d0-e1cd-4f22-a5c4-135ee00eb7c3} + {6142d863-0875-43c5-a442-3854c1dc101a} diff --git a/Net/samples/download/download_vs160.vcxproj b/Net/samples/download/download_vs160.vcxproj index b4e2a8240..7dbef5f22 100644 --- a/Net/samples/download/download_vs160.vcxproj +++ b/Net/samples/download/download_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 downloadd downloadd downloadd diff --git a/Net/samples/download/download_vs160.vcxproj.filters b/Net/samples/download/download_vs160.vcxproj.filters index 7ecb89d82..170d21a31 100644 --- a/Net/samples/download/download_vs160.vcxproj.filters +++ b/Net/samples/download/download_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {9f42ff18-153a-47b2-855d-138b270b1c04} + {db25f678-171d-4376-8c7d-dee267e07c66} diff --git a/Net/samples/download/download_vs170.vcxproj b/Net/samples/download/download_vs170.vcxproj index e66e71be9..885c88b0e 100644 --- a/Net/samples/download/download_vs170.vcxproj +++ b/Net/samples/download/download_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 download {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D} download @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + downloadd + downloadd + downloadd + download + download + download downloadd downloadd downloadd @@ -171,6 +250,36 @@ download download + + binA64\ + objA64\download\$(Configuration)\ + true + + + binA64\ + objA64\download\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\download\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\download\$(Configuration)\ + false + + + binA64\static_md\ + objA64\download\$(Configuration)\ + true + + + binA64\static_md\ + objA64\download\$(Configuration)\ + false + bin\ obj\download\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\download\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\download.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\downloadd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\download.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\downloadd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/download/download_vs170.vcxproj.filters b/Net/samples/download/download_vs170.vcxproj.filters index d3e7a2d09..a201b0a52 100644 --- a/Net/samples/download/download_vs170.vcxproj.filters +++ b/Net/samples/download/download_vs170.vcxproj.filters @@ -2,7 +2,7 @@ - {ebb5b48d-dde5-4dae-9f7d-4d953da715f8} + {39755610-2902-461b-969f-fd619b7de0be} diff --git a/Net/samples/httpget/httpget_vs160.vcxproj b/Net/samples/httpget/httpget_vs160.vcxproj index 3a5aada23..17994f596 100644 --- a/Net/samples/httpget/httpget_vs160.vcxproj +++ b/Net/samples/httpget/httpget_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 httpgetd httpgetd httpgetd diff --git a/Net/samples/httpget/httpget_vs160.vcxproj.filters b/Net/samples/httpget/httpget_vs160.vcxproj.filters index 96549e8f0..95bf20cc6 100644 --- a/Net/samples/httpget/httpget_vs160.vcxproj.filters +++ b/Net/samples/httpget/httpget_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {64725bc7-615b-47a3-bf78-af641c1f330c} + {cc41694c-ef4c-4a8a-b776-0c04bd57b307} diff --git a/Net/samples/httpget/httpget_vs170.vcxproj b/Net/samples/httpget/httpget_vs170.vcxproj index f5076de4d..2b00532bd 100644 --- a/Net/samples/httpget/httpget_vs170.vcxproj +++ b/Net/samples/httpget/httpget_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 httpget {5A299876-BF4E-37B9-922D-4E6FC1FA9520} httpget @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + httpgetd + httpgetd + httpgetd + httpget + httpget + httpget httpgetd httpgetd httpgetd @@ -171,6 +250,36 @@ httpget httpget + + binA64\ + objA64\httpget\$(Configuration)\ + true + + + binA64\ + objA64\httpget\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\httpget\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\httpget\$(Configuration)\ + false + + + binA64\static_md\ + objA64\httpget\$(Configuration)\ + true + + + binA64\static_md\ + objA64\httpget\$(Configuration)\ + false + bin\ obj\httpget\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\httpget\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\httpget.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\httpgetd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\httpget.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\httpgetd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\httpgetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\httpgetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\httpgetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\httpgetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\httpgetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\httpgetd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/httpget/httpget_vs170.vcxproj.filters b/Net/samples/httpget/httpget_vs170.vcxproj.filters index fa33c6f0a..50dc0b3fc 100644 --- a/Net/samples/httpget/httpget_vs170.vcxproj.filters +++ b/Net/samples/httpget/httpget_vs170.vcxproj.filters @@ -2,7 +2,7 @@ - {9ab2f474-cce7-41a1-9674-d52840306b5e} + {82f3206e-d37d-4baf-b6f9-f0591b2b3664} diff --git a/Net/samples/ifconfig/ifconfig_vs160.vcxproj b/Net/samples/ifconfig/ifconfig_vs160.vcxproj index a530add4b..869e03d55 100644 --- a/Net/samples/ifconfig/ifconfig_vs160.vcxproj +++ b/Net/samples/ifconfig/ifconfig_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 ifconfigd ifconfigd ifconfigd diff --git a/Net/samples/ifconfig/ifconfig_vs160.vcxproj.filters b/Net/samples/ifconfig/ifconfig_vs160.vcxproj.filters index a5ca393af..bed3fee48 100644 --- a/Net/samples/ifconfig/ifconfig_vs160.vcxproj.filters +++ b/Net/samples/ifconfig/ifconfig_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {accc2194-d9ba-4f85-a4eb-f0eb38519788} + {41bbac5f-2338-4374-9360-fa6c219ec392} diff --git a/Net/samples/ifconfig/ifconfig_vs170.vcxproj b/Net/samples/ifconfig/ifconfig_vs170.vcxproj index 5d5e0aedb..d703283a5 100644 --- a/Net/samples/ifconfig/ifconfig_vs170.vcxproj +++ b/Net/samples/ifconfig/ifconfig_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 ifconfig {BD3A18C6-22B6-3B10-913B-7A84D1845CA3} ifconfig @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + ifconfigd + ifconfigd + ifconfigd + ifconfig + ifconfig + ifconfig ifconfigd ifconfigd ifconfigd @@ -171,6 +250,36 @@ ifconfig ifconfig + + binA64\ + objA64\ifconfig\$(Configuration)\ + true + + + binA64\ + objA64\ifconfig\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\ifconfig\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\ifconfig\$(Configuration)\ + false + + + binA64\static_md\ + objA64\ifconfig\$(Configuration)\ + true + + + binA64\static_md\ + objA64\ifconfig\$(Configuration)\ + false + bin\ obj\ifconfig\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\ifconfig\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\ifconfig.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\ifconfigd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\ifconfig.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\ifconfigd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\ifconfigd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\ifconfigd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\ifconfigd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\ifconfigd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\ifconfigd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\ifconfigd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Net/samples/ifconfig/ifconfig_vs170.vcxproj.filters b/Net/samples/ifconfig/ifconfig_vs170.vcxproj.filters index 331bb6072..026c0c800 100644 --- a/Net/samples/ifconfig/ifconfig_vs170.vcxproj.filters +++ b/Net/samples/ifconfig/ifconfig_vs170.vcxproj.filters @@ -2,7 +2,7 @@ - {9eef68f9-e964-4cb0-b7f5-b69bd6aa860e} + {096ca714-cd1a-4c58-97e8-3c69cbdb5b71} diff --git a/Net/samples/samples_vs170.sln b/Net/samples/samples_vs170.sln index 476a7a123..ebe5be15e 100644 --- a/Net/samples/samples_vs170.sln +++ b/Net/samples/samples_vs170.sln @@ -1,7 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 -VisualStudioVersion = 17.9.34607.119 -MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dict", "dict\dict_vs170.vcxproj", "{90F24341-F59F-385F-A8D6-66AB377FF033}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "download", "download\download_vs170.vcxproj", "{D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}" @@ -28,733 +26,732 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SMTPLogger", "SMTPLogger\SM EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ifconfig", "ifconfig\ifconfig_vs170.vcxproj", "{BD3A18C6-22B6-3B10-913B-7A84D1845CA3}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcpserver", "tcpserver\tcpserver_vs170.vcxproj", "{62C6ABC1-F799-3071-A78E-532630841583}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcpclient", "tcpclient\tcpclient_vs170.vcxproj", "{E288BEB9-F0C7-3D6C-A300-F7A889DA6497}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution debug_shared|ARM64 = debug_shared|ARM64 - debug_shared|Win32 = debug_shared|Win32 - debug_shared|x64 = debug_shared|x64 - debug_static_md|ARM64 = debug_static_md|ARM64 - debug_static_md|Win32 = debug_static_md|Win32 - debug_static_md|x64 = debug_static_md|x64 - debug_static_mt|ARM64 = debug_static_mt|ARM64 - debug_static_mt|Win32 = debug_static_mt|Win32 - debug_static_mt|x64 = debug_static_mt|x64 release_shared|ARM64 = release_shared|ARM64 - release_shared|Win32 = release_shared|Win32 - release_shared|x64 = release_shared|x64 - release_static_md|ARM64 = release_static_md|ARM64 - release_static_md|Win32 = release_static_md|Win32 - release_static_md|x64 = release_static_md|x64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 release_static_mt|ARM64 = release_static_mt|ARM64 + debug_static_md|ARM64 = debug_static_md|ARM64 + release_static_md|ARM64 = release_static_md|ARM64 + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + debug_shared|x64 = debug_shared|x64 + release_shared|x64 = release_shared|x64 + debug_static_mt|x64 = debug_static_mt|x64 release_static_mt|x64 = release_static_mt|x64 + debug_static_md|x64 = debug_static_md|x64 + release_static_md|x64 = release_static_md|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|ARM64.Build.0 = debug_shared|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|Win32.Build.0 = debug_shared|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|x64.Build.0 = debug_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|ARM64.ActiveCfg = release_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|ARM64.Build.0 = release_shared|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|Win32.ActiveCfg = release_shared|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|Win32.Build.0 = release_shared|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|x64.ActiveCfg = release_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|x64.Build.0 = release_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|x64.Deploy.0 = release_shared|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|ARM64.Build.0 = release_static_md|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|x64.Build.0 = release_static_md|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 - {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|x64.Build.0 = debug_shared|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|x64.ActiveCfg = release_shared|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|x64.Build.0 = release_shared|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_shared|x64.Deploy.0 = release_shared|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|x64.Build.0 = release_static_mt|x64 {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|ARM64.Build.0 = debug_shared|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|x64.Build.0 = release_static_md|x64 + {90F24341-F59F-385F-A8D6-66AB377FF033}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Build.0 = debug_shared|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Build.0 = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|ARM64.ActiveCfg = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|ARM64.Build.0 = release_shared|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.ActiveCfg = release_shared|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Build.0 = release_shared|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.ActiveCfg = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Build.0 = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Deploy.0 = release_shared|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|ARM64.Build.0 = release_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Build.0 = release_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 - {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Build.0 = debug_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.ActiveCfg = release_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Build.0 = release_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|x64.Deploy.0 = release_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Build.0 = release_static_mt|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|ARM64.Build.0 = debug_shared|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Build.0 = release_static_md|x64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|Win32.Build.0 = debug_shared|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|x64.Build.0 = debug_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|ARM64.ActiveCfg = release_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|ARM64.Build.0 = release_shared|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|Win32.ActiveCfg = release_shared|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|Win32.Build.0 = release_shared|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|x64.ActiveCfg = release_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|x64.Build.0 = release_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|x64.Deploy.0 = release_shared|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|ARM64.Build.0 = release_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|x64.Build.0 = release_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 - {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|x64.Build.0 = debug_shared|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|x64.ActiveCfg = release_shared|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|x64.Build.0 = release_shared|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_shared|x64.Deploy.0 = release_shared|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|x64.Build.0 = release_static_mt|x64 {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|ARM64.Build.0 = debug_shared|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|x64.Build.0 = release_static_md|x64 + {5074CE3E-05F5-31BA-BA79-1AD54C3416F7}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|Win32.Build.0 = debug_shared|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|x64.Build.0 = debug_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|ARM64.ActiveCfg = release_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|ARM64.Build.0 = release_shared|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|Win32.ActiveCfg = release_shared|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|Win32.Build.0 = release_shared|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|x64.ActiveCfg = release_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|x64.Build.0 = release_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|x64.Deploy.0 = release_shared|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|ARM64.Build.0 = release_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|x64.Build.0 = release_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 - {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|x64.Build.0 = debug_shared|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|x64.ActiveCfg = release_shared|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|x64.Build.0 = release_shared|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_shared|x64.Deploy.0 = release_shared|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|x64.Build.0 = release_static_mt|x64 {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|ARM64.Build.0 = debug_shared|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|x64.Build.0 = release_static_md|x64 + {19B162EB-DDAA-37BA-AE93-7FDED89274DE}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|Win32.Build.0 = debug_shared|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|x64.Build.0 = debug_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|ARM64.ActiveCfg = release_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|ARM64.Build.0 = release_shared|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|Win32.ActiveCfg = release_shared|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|Win32.Build.0 = release_shared|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|x64.ActiveCfg = release_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|x64.Build.0 = release_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|x64.Deploy.0 = release_shared|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|ARM64.Build.0 = release_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|x64.Build.0 = release_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 - {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|x64.Build.0 = debug_shared|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|x64.ActiveCfg = release_shared|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|x64.Build.0 = release_shared|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_shared|x64.Deploy.0 = release_shared|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|x64.Build.0 = release_static_mt|x64 {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|ARM64.Build.0 = debug_shared|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|x64.Build.0 = release_static_md|x64 + {5A299876-BF4E-37B9-922D-4E6FC1FA9520}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|Win32.Build.0 = debug_shared|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|x64.Build.0 = debug_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|ARM64.ActiveCfg = release_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|ARM64.Build.0 = release_shared|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|Win32.ActiveCfg = release_shared|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|Win32.Build.0 = release_shared|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|x64.ActiveCfg = release_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|x64.Build.0 = release_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|x64.Deploy.0 = release_shared|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|ARM64.Build.0 = release_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|x64.Build.0 = release_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 - {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|x64.Build.0 = debug_shared|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|x64.ActiveCfg = release_shared|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|x64.Build.0 = release_shared|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_shared|x64.Deploy.0 = release_shared|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|x64.Build.0 = release_static_mt|x64 {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|ARM64.Build.0 = debug_shared|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|x64.Build.0 = release_static_md|x64 + {A140D236-D64B-370A-A7E7-3000725D9869}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Build.0 = debug_shared|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Build.0 = debug_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|ARM64.ActiveCfg = release_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|ARM64.Build.0 = release_shared|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.ActiveCfg = release_shared|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Build.0 = release_shared|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.ActiveCfg = release_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Build.0 = release_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Deploy.0 = release_shared|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|ARM64.Build.0 = release_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Build.0 = release_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 - {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Build.0 = debug_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.ActiveCfg = release_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Build.0 = release_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Deploy.0 = release_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Build.0 = release_static_mt|x64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|ARM64.Build.0 = debug_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Build.0 = release_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Build.0 = debug_shared|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Build.0 = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|ARM64.ActiveCfg = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|ARM64.Build.0 = release_shared|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.ActiveCfg = release_shared|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Build.0 = release_shared|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.ActiveCfg = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Build.0 = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Deploy.0 = release_shared|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|ARM64.Build.0 = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Build.0 = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 - {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Build.0 = debug_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.ActiveCfg = release_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Build.0 = release_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|x64.Deploy.0 = release_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Build.0 = release_static_mt|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|ARM64.Build.0 = debug_shared|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Build.0 = release_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|Win32.Build.0 = debug_shared|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|x64.Build.0 = debug_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|ARM64.ActiveCfg = release_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|ARM64.Build.0 = release_shared|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|Win32.ActiveCfg = release_shared|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|Win32.Build.0 = release_shared|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|x64.ActiveCfg = release_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|x64.Build.0 = release_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|x64.Deploy.0 = release_shared|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|ARM64.Build.0 = release_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|x64.Build.0 = release_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 - {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|x64.Build.0 = debug_shared|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|x64.ActiveCfg = release_shared|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|x64.Build.0 = release_shared|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_shared|x64.Deploy.0 = release_shared|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|x64.Build.0 = release_static_mt|x64 {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|ARM64.Build.0 = debug_shared|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|x64.Build.0 = release_static_md|x64 + {154EC2E2-A1CC-3F3E-9BAA-8134DF82B0B5}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|Win32.Build.0 = debug_shared|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.Build.0 = debug_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|ARM64.ActiveCfg = release_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|ARM64.Build.0 = release_shared|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.ActiveCfg = release_shared|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.Build.0 = release_shared|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.ActiveCfg = release_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.Build.0 = release_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.Deploy.0 = release_shared|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|ARM64.Build.0 = release_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|x64.Build.0 = release_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 - {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.Build.0 = debug_shared|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.ActiveCfg = release_shared|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.Build.0 = release_shared|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_shared|x64.Deploy.0 = release_shared|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|x64.Build.0 = release_static_mt|x64 {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|ARM64.Build.0 = debug_shared|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|x64.Build.0 = release_static_md|x64 + {59EDFD20-9968-30F7-9532-44C08DA58C6E}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|Win32.Build.0 = debug_shared|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|x64.Build.0 = debug_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|ARM64.ActiveCfg = release_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|ARM64.Build.0 = release_shared|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|Win32.ActiveCfg = release_shared|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|Win32.Build.0 = release_shared|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|x64.ActiveCfg = release_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|x64.Build.0 = release_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|x64.Deploy.0 = release_shared|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|ARM64.Build.0 = release_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|x64.Build.0 = release_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 - {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|x64.Build.0 = debug_shared|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|x64.ActiveCfg = release_shared|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|x64.Build.0 = release_shared|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_shared|x64.Deploy.0 = release_shared|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|x64.Build.0 = release_static_mt|x64 {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|ARM64.Build.0 = debug_shared|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|x64.Build.0 = release_static_md|x64 + {0DC40FE3-6C42-365E-8DAB-899C50ECFB1C}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|Win32.Build.0 = debug_shared|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|x64.Build.0 = debug_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|ARM64.ActiveCfg = release_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|ARM64.Build.0 = release_shared|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|Win32.ActiveCfg = release_shared|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|Win32.Build.0 = release_shared|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|x64.ActiveCfg = release_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|x64.Build.0 = release_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|x64.Deploy.0 = release_shared|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|ARM64.Build.0 = release_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|x64.Build.0 = release_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 - {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|x64.Build.0 = debug_shared|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|x64.ActiveCfg = release_shared|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|x64.Build.0 = release_shared|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_shared|x64.Deploy.0 = release_shared|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|x64.Build.0 = release_static_mt|x64 {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|ARM64.ActiveCfg = debug_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|ARM64.Build.0 = debug_shared|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|x64.Build.0 = release_static_md|x64 + {83E96E4E-A7E8-340B-B6D2-31B4D40D99AF}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|Win32.Build.0 = debug_shared|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|x64.Build.0 = debug_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|x64.Deploy.0 = debug_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|ARM64.ActiveCfg = debug_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|ARM64.Build.0 = debug_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|ARM64.Build.0 = debug_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|ARM64.ActiveCfg = release_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|ARM64.Build.0 = release_shared|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|Win32.ActiveCfg = release_shared|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|Win32.Build.0 = release_shared|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|Win32.Deploy.0 = release_shared|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|x64.ActiveCfg = release_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|x64.Build.0 = release_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|x64.Deploy.0 = release_shared|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|ARM64.ActiveCfg = release_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|ARM64.Build.0 = release_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|x64.Build.0 = release_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|x64.Deploy.0 = release_static_md|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|ARM64.ActiveCfg = release_static_mt|x64 - {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|ARM64.Build.0 = release_static_mt|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|x64.Build.0 = debug_shared|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|x64.ActiveCfg = release_shared|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|x64.Build.0 = release_shared|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_shared|x64.Deploy.0 = release_shared|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|x64.Build.0 = release_static_mt|x64 {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 - {62C6ABC1-F799-3071-A78E-532630841583}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 - {62C6ABC1-F799-3071-A78E-532630841583}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 - {62C6ABC1-F799-3071-A78E-532630841583}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {62C6ABC1-F799-3071-A78E-532630841583}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {62C6ABC1-F799-3071-A78E-532630841583}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {62C6ABC1-F799-3071-A78E-532630841583}.debug_shared|x64.Build.0 = debug_shared|x64 - {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 - {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 - {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 - {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 - {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {62C6ABC1-F799-3071-A78E-532630841583}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {62C6ABC1-F799-3071-A78E-532630841583}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 - {62C6ABC1-F799-3071-A78E-532630841583}.release_shared|ARM64.Build.0 = release_shared|ARM64 - {62C6ABC1-F799-3071-A78E-532630841583}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {62C6ABC1-F799-3071-A78E-532630841583}.release_shared|Win32.Build.0 = release_shared|Win32 - {62C6ABC1-F799-3071-A78E-532630841583}.release_shared|x64.ActiveCfg = release_shared|x64 - {62C6ABC1-F799-3071-A78E-532630841583}.release_shared|x64.Build.0 = release_shared|x64 - {62C6ABC1-F799-3071-A78E-532630841583}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 - {62C6ABC1-F799-3071-A78E-532630841583}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 - {62C6ABC1-F799-3071-A78E-532630841583}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {62C6ABC1-F799-3071-A78E-532630841583}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {62C6ABC1-F799-3071-A78E-532630841583}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {62C6ABC1-F799-3071-A78E-532630841583}.release_static_md|x64.Build.0 = release_static_md|x64 - {62C6ABC1-F799-3071-A78E-532630841583}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 - {62C6ABC1-F799-3071-A78E-532630841583}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 - {62C6ABC1-F799-3071-A78E-532630841583}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {62C6ABC1-F799-3071-A78E-532630841583}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {62C6ABC1-F799-3071-A78E-532630841583}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {62C6ABC1-F799-3071-A78E-532630841583}.release_static_mt|x64.Build.0 = release_static_mt|x64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_shared|Win32.Build.0 = debug_shared|Win32 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_shared|x64.ActiveCfg = debug_shared|x64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_shared|x64.Build.0 = debug_shared|x64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_md|x64.Build.0 = debug_static_md|x64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_shared|ARM64.Build.0 = release_shared|ARM64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_shared|Win32.ActiveCfg = release_shared|Win32 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_shared|Win32.Build.0 = release_shared|Win32 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_shared|x64.ActiveCfg = release_shared|x64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_shared|x64.Build.0 = release_shared|x64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_md|Win32.Build.0 = release_static_md|Win32 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_md|x64.ActiveCfg = release_static_md|x64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_md|x64.Build.0 = release_static_md|x64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 - {E288BEB9-F0C7-3D6C-A300-F7A889DA6497}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|x64.Build.0 = release_static_md|x64 + {BD3A18C6-22B6-3B10-913B-7A84D1845CA3}.release_static_md|x64.Deploy.0 = release_static_md|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {97E90728-E529-432A-A271-B40079F7ACE2} - EndGlobalSection EndGlobal diff --git a/Net/samples/tcpclient/tcpclient_vs160.vcxproj b/Net/samples/tcpclient/tcpclient_vs160.vcxproj index d6d9f1c6c..2dcf8628f 100644 --- a/Net/samples/tcpclient/tcpclient_vs160.vcxproj +++ b/Net/samples/tcpclient/tcpclient_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 tcpclientd tcpclientd tcpclientd diff --git a/Net/samples/tcpclient/tcpclient_vs160.vcxproj.filters b/Net/samples/tcpclient/tcpclient_vs160.vcxproj.filters index c8691cfdb..939e15409 100644 --- a/Net/samples/tcpclient/tcpclient_vs160.vcxproj.filters +++ b/Net/samples/tcpclient/tcpclient_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {87c78361-daea-4728-a565-b99fa7bc529a} + {a8388425-7965-434d-8655-4b72ce70baff} diff --git a/Net/samples/tcpclient/tcpclient_vs170.vcxproj b/Net/samples/tcpclient/tcpclient_vs170.vcxproj index f76834d2f..cf71a3871 100644 --- a/Net/samples/tcpclient/tcpclient_vs170.vcxproj +++ b/Net/samples/tcpclient/tcpclient_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 tcpclientd tcpclientd tcpclientd diff --git a/Net/samples/tcpclient/tcpclient_vs170.vcxproj.filters b/Net/samples/tcpclient/tcpclient_vs170.vcxproj.filters index 5409a5f1a..21d435fd7 100644 --- a/Net/samples/tcpclient/tcpclient_vs170.vcxproj.filters +++ b/Net/samples/tcpclient/tcpclient_vs170.vcxproj.filters @@ -2,7 +2,7 @@ - {ad6a19f8-964e-4e1d-8f8f-54747985384c} + {a7f8cfb7-d372-42ee-b7d2-a127d7235ba2} diff --git a/Net/samples/tcpserver/tcpserver_vs160.vcxproj b/Net/samples/tcpserver/tcpserver_vs160.vcxproj index a192f4a47..fc77a7561 100644 --- a/Net/samples/tcpserver/tcpserver_vs160.vcxproj +++ b/Net/samples/tcpserver/tcpserver_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 tcpserverd tcpserverd tcpserverd diff --git a/Net/samples/tcpserver/tcpserver_vs160.vcxproj.filters b/Net/samples/tcpserver/tcpserver_vs160.vcxproj.filters index 97f1d2288..52c787120 100644 --- a/Net/samples/tcpserver/tcpserver_vs160.vcxproj.filters +++ b/Net/samples/tcpserver/tcpserver_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {164d520e-cdd7-413e-b2f9-c579844a159e} + {d752aa61-6aa9-4a4e-9033-79b11fbba97e} diff --git a/Net/samples/tcpserver/tcpserver_vs170.vcxproj b/Net/samples/tcpserver/tcpserver_vs170.vcxproj index 5357f02c3..7ad2e2afd 100644 --- a/Net/samples/tcpserver/tcpserver_vs170.vcxproj +++ b/Net/samples/tcpserver/tcpserver_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 tcpserverd tcpserverd tcpserverd diff --git a/Net/samples/tcpserver/tcpserver_vs170.vcxproj.filters b/Net/samples/tcpserver/tcpserver_vs170.vcxproj.filters index 8dbb3450b..8410e0cdc 100644 --- a/Net/samples/tcpserver/tcpserver_vs170.vcxproj.filters +++ b/Net/samples/tcpserver/tcpserver_vs170.vcxproj.filters @@ -2,7 +2,7 @@ - {d9c28a52-bf05-42ec-abc1-d0135b494ce1} + {306cd9c2-e228-42c6-999b-a1e141bf580c} diff --git a/Net/testsuite/TestSuite_vs160.vcxproj b/Net/testsuite/TestSuite_vs160.vcxproj index f81c42c9d..4ef8a2e51 100644 --- a/Net/testsuite/TestSuite_vs160.vcxproj +++ b/Net/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited diff --git a/Net/testsuite/TestSuite_vs160.vcxproj.filters b/Net/testsuite/TestSuite_vs160.vcxproj.filters index b58d733ca..076729cfe 100644 --- a/Net/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Net/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,172 +2,172 @@ - {bd6cfc50-4c83-49ae-abf8-bec79ce2054b} + {ccf69a11-3b4f-4fb5-93ca-a66f44149c48} - {9eeb4f90-1340-4764-b570-51072e4d1f5f} + {94b25e15-93e7-47f2-a81d-1c5d88c8837a} - {f2ac3b65-63f7-4bde-9b02-3f7eac34753f} + {f8fbf2e7-5cf3-41b1-91be-0eb2f4cf1267} - {7afa4bbb-97da-4b01-8878-b2202dd2e114} + {d633334b-99ff-4603-8805-305650f37f2d} - {171910d5-caaf-4017-a6b9-90d5ddc76992} + {64c0b7c5-c20f-4113-b4b6-b3aafd25ef11} - {35f72121-8e88-4440-bbe0-f0dc1b6595aa} + {0a7d0f20-26dc-465b-af0a-9f5256916311} - {b81b7070-3c7e-494f-9f72-c9900e6fda58} + {fccf4b01-a418-4f01-9dab-d1deec184fcd} - {8206dc89-e9ac-454a-ae42-ae2199b27367} + {d0850f33-f071-4a51-b503-e5fe0ee47926} - {0a3f1ad0-860b-40d6-96d7-148ad8f81dc6} + {d54dcd42-362b-49cf-b4ae-46c62407d267} - {33400132-1345-4b89-8b6c-7225ef34e9cb} + {1cab5781-e109-441f-bb4d-bab057e06722} - {19de33b0-9aeb-4007-8025-76380bf94a17} + {418fe205-dbef-48a1-aa84-e6e9da687ed0} - {87a51413-9ae6-4def-b166-03b3a21a7b77} + {34c332c1-6d51-42f9-ae1e-8d325338dd2d} - {04a68fc1-cf40-43f5-83bf-099697c63412} + {c66c3436-01fc-49a8-a7e0-35fc9ef384b5} - {a14a3a81-13af-47ad-8e9d-9c9685675e23} + {1b196df7-014f-4959-95dc-98cbd480f524} - {a26f1a12-cfc1-4586-8385-274d377fe7cc} + {cccfbc2c-95f9-490b-a467-5587dc831ec9} - {d5f8fc72-a230-49f6-8f33-5d2064f5894d} + {bfb45726-49d6-4ffe-8d10-5a821c7e87d2} - {e2e9b50a-5928-4b0c-b7bb-a4eaa7e890d9} + {db5347a7-c1f8-4acf-ac7c-36e8ea44c8a2} - {63a73f18-2a88-40fc-bb4b-de6205d2dc2f} + {01d68d57-6a59-47fc-a0ea-8b80648c445d} - {3ef1f3b4-2c07-410e-96e1-905b5d887aa5} + {9aa28a76-6929-460e-941d-ae529d287419} - {02430fad-49f1-477c-ba36-666e2398a8db} + {8f464237-7ceb-4059-b9c7-cb28e0befa39} - {7fb352ae-6469-4d38-87ec-2af60b59ca68} + {4fe17b2e-c3de-48d5-ba1e-330388a57569} - {acd61cd0-993f-4754-b7c8-ad706875c043} + {4e3ff9ce-a727-4dec-922f-44938e70fbaf} - {aff555ac-1c12-43c8-94d0-aab38980b73f} + {eec99316-a951-4b33-bab6-1daacc54a419} - {8a10a99a-e50d-4e02-9391-7c017e29f834} + {b4a5eb31-a286-4119-adf1-7c03c1ceb562} - {8c1dbf0a-279e-4f62-9448-ee4ed3cc3033} + {f7b34631-a0d8-4f4d-96eb-ba083e834c0e} - {cdd3594a-b19f-459e-a6fe-4bb72f6ad528} + {0e6ff99b-5eab-483f-b3b3-f8c0021d1892} - {187849b2-f4ab-4ae5-ae47-b7204fb9d02a} + {adc74447-114b-405e-80d1-2fb275145931} - {744f2cee-7d79-4795-b9e2-c4d1b33b4967} + {72291cca-671e-41e0-8d6a-7f5d8322f90e} - {a1353eab-1073-4f64-9fb0-31193a1c11ed} + {4ecf1471-9d95-4333-ba23-809ad18db7f7} - {caf2d5b1-60ba-46cd-bd7d-5311c3446782} + {5bd15a5d-8440-48db-a07c-4a880560c9c4} - {5e1486e3-6a43-4161-b03f-ee66e5f82052} + {bce40ba2-ee14-46a0-b3d8-83ad00655814} - {2be4b99c-9437-4ab5-8add-517f3f0757cd} + {56b970a9-e0be-499b-9054-4d2eb9ad4c6b} - {ac8bae8a-9cf6-4b4d-a817-5c52329a6bb8} + {01e47e93-fa20-4e6e-86bc-b9e57045a9cc} - {28d53b0f-f515-4b6d-8c07-dc4fdf5e8c64} + {fd22ec4d-0628-4f38-8f4a-c199f9905eff} - {04b20043-9298-44cb-8e5b-8ed139f2a4e3} + {5f25c787-c9bd-45aa-bb40-b78f2e05fd2d} - {f6e81063-804a-419e-9175-eaaa0925069a} + {fcdc47be-4fed-44fe-bdff-d2761a228284} - {5c32bf49-64f6-4ec8-a125-980e380db694} + {8a707c12-bc94-41c6-a07b-d4ecef8033ab} - {6e3bde09-5b1f-477b-9ebe-92b8ed2ba3ee} + {cc8e67a7-772f-45c9-8d34-b8bb058a5d15} - {edf6bbad-ae9f-481f-8415-6c6cd2f939a8} + {255833d8-babc-4044-b69d-84c280ca4823} - {ef90cb36-2fc3-4cd0-bb99-b484d3f1550b} + {d5ef0835-a8da-4463-9f1d-d305e69dedbc} - {136e5a16-7c71-42c3-af00-15e1d7150958} + {72aa1633-e42e-4cbe-bb4d-18f93bca2eb9} - {325faf4e-e692-4baf-9f51-5dd81410a3cf} + {85932f39-3ee6-445e-af3e-6dbf8b8549e3} - {a9617814-8f8f-4aee-8253-d3c670329ae9} + {cecc3afb-0c17-4c55-a9cb-4ae0ddb28f27} - {473f8ff9-b334-4236-934f-c726b0a6d3d6} + {8c1d1b02-45b1-4634-8057-17e78215c0bb} - {5ac568d9-2b93-428f-887e-96bae19fd76d} + {a7506abb-b3ca-4a72-9ba6-0be2e9b7d4d0} - {7a9efbf7-f295-4a07-87cc-3d5a033eda87} + {6c9e9fed-86ec-4422-9741-cb6f7e1b3463} - {9b814585-1fd5-46a0-8a7c-4c6ba533867f} + {148417de-d0ca-4c96-9ecd-01ff6ef96f13} - {1b8670e8-95ea-4ff1-a929-4e28c2f5bedf} + {08d99a1b-f8e5-4e95-8ef2-052177a2bdf0} - {020d7a36-fb31-4c94-9f02-013675840060} + {8722b61e-7930-4e5f-a1ca-e0bfec9e0d25} - {247a28fd-1e50-4bf0-92c5-27b115dd0fe7} + {40f6264f-2a50-485a-b34a-dd4a61d96125} - {3b8eb65d-dc40-4ccd-92e9-71ee885ba75d} + {6afe5e17-85d4-480b-9a65-2f771c1148a3} - {a9c4e89e-4ec6-4b27-a654-59a6d827f53a} + {e0e410de-583f-4574-aab8-9d4f2c5664d9} - {161f52c5-6610-47a0-9306-ff11019755d6} + {b9ad3872-d4ac-46de-b538-ba7258bfb6ec} - {0aa3aad0-6193-48ff-bccc-bb0a07de43e1} + {cf6d2861-dfc4-4cf6-929d-0f3790206d3c} - {b52ab757-ff3f-4d5f-9d49-08e0001fab7f} + {cf26df73-83d3-408e-a77e-f1118009f0b1} - {54eea72d-400a-4259-bffa-4b6a711cf94a} + {2b3a8d7d-8917-4c61-8583-ca1f8adda21e} diff --git a/Net/testsuite/TestSuite_vs170.vcxproj b/Net/testsuite/TestSuite_vs170.vcxproj index edd84e7b5..03051fa8a 100644 --- a/Net/testsuite/TestSuite_vs170.vcxproj +++ b/Net/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34202.158 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -357,8 +357,10 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -391,8 +393,10 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -422,8 +426,10 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -456,8 +462,10 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -487,8 +495,10 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -521,8 +531,10 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -552,8 +564,10 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -586,8 +600,10 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -617,8 +633,10 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -651,8 +669,10 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -682,8 +702,10 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -716,8 +738,10 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -747,8 +771,10 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -781,8 +807,10 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -812,8 +840,10 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -846,8 +876,10 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -877,8 +909,10 @@ ProgramDatabase Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -911,8 +945,10 @@ Default $(OutDir)$(TargetName).pdb - /Zc:__cplusplus /std:c++17 %(AdditionalOptions) + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;ws2_32.lib;%(AdditionalDependencies) @@ -996,204 +1032,338 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Net/testsuite/TestSuite_vs170.vcxproj.filters b/Net/testsuite/TestSuite_vs170.vcxproj.filters index 8f5123de3..242c27c5f 100644 --- a/Net/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Net/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,172 +2,172 @@ - {1de7c206-c047-4fa9-9f70-76fba36d6357} + {0b44d21a-56e7-4468-9034-1bc8a2e351fb} - {b8067e77-98a2-483f-9ac4-87f6926e781d} + {72c5afab-2dbf-43ac-805f-1fa3d9428d49} - {21307ccd-54fb-4e34-b214-d1445abb7f49} + {fd9ddcdb-b3cd-4b7a-ba4e-3b33d91e071a} - {50f284c2-4fae-4db8-b938-edc31f894396} + {c4e10178-46b5-4210-a8b5-621ec6132548} - {88476b8b-c763-4846-9332-faa616e0af8e} + {ef322bdd-b229-4aa7-8d0f-d6a85f87f61f} - {745ac167-857f-462c-ba8d-b77e85c3f0f8} + {a3721e5e-1180-41a1-a5b2-857f1cafb9f9} - {782f1313-d76f-43f8-b194-4db6d179c288} + {85afc49f-f0ba-45d6-8048-26510f660617} - {7e31d1a5-174b-4d94-b66f-5306fc1d0516} + {ec29d1c4-6d38-4a5e-ac5e-50aa177bfb85} - {f069a939-12ee-4950-a2be-ac79d0633704} + {c42aa0ed-4c23-4321-bc76-24c82f7d57bf} - {1ff556e1-f288-4a77-9af3-2d8dcba443cb} + {5d57f39d-188c-486b-ab58-03f31bd6872b} - {b8e2bd2b-b893-4ce1-ac58-af41715c1d74} + {146282c3-8ff0-4c9a-87dd-ab75ec423139} - {a0aca32e-b4d1-46a1-8389-65ea253b36d6} + {c3fb5dc4-0eb8-46f4-a20c-f05f296b8ad7} - {eacb0411-250d-436e-8d2f-e7177d116ec0} + {8faf1704-464f-4ae8-acc7-4b5fe7937022} - {d9e4d8e8-d182-4dea-9b5b-b89962403176} + {a0347ae4-e275-4483-907a-71de29b66321} - {b6edc3f3-cc59-494b-a71d-4f8c14ce3e39} + {52e7d79a-91b1-4d3b-aa6b-aea7439f1370} - {458168b2-eebc-4dd4-9a03-d9f0f9a2a6c9} + {a0038a6f-1878-4096-83a9-93ca3d31e5af} - {838e9f23-65d9-411d-ad98-865282c4b124} + {2d1ac0ec-9654-4a7f-a039-0ea1d7077cc9} - {6790685c-24ac-4168-b7ec-11a33c69eecc} + {68d3a8ba-7c60-4524-9851-825b49210059} - {e275504a-869c-4e49-8efb-5d761f5fa689} + {a0e3fc00-0940-4df0-830e-aad428353e67} - {eee2aa8f-28a6-4b90-9620-7074523024ed} + {0c12adb4-316e-40aa-a9ba-b302c62f4ba9} - {17bcc15e-9b80-4a1f-b001-0c5c87e1c174} + {fbfc2389-e21f-42d3-a78e-529bf2c4f0ac} - {5045634b-9e56-4776-9d49-e636e35f53f2} + {23081f91-f426-472d-b2a3-cb2de0ddc24c} - {08c36bec-040b-40f4-aff2-62b9285dc941} + {6373eb98-511d-4360-bfde-0c327bf8bccd} - {b2e93dbe-aa43-4d42-a7f8-15eff701159f} + {f25dd7e1-2a82-477e-b311-35b5d47d3ccb} - {91b9a556-e17f-4ed2-8362-0bc461cfa9d3} + {53e41fc5-686c-4a93-bda7-e7a70533fd7f} - {78fe40f0-075d-4204-8585-bf075d34845c} + {6e3ff7b6-1a10-4535-a8c3-c5694ccb96f0} - {d1d5fce3-0238-4e76-a858-cfd624518677} + {fbb3a967-cc31-4572-9982-d0080a65659c} - {d60f9e62-cc72-485e-9560-03e039bb99d7} + {3dcd6dd0-40ce-4c54-b9e7-7552473deabf} - {ffab98d4-0d10-4316-998e-64f2a7c1e420} + {7807c14b-cc6e-4e8d-af73-bf0ffb6108ef} - {72bc5ba0-b4bc-45a7-887b-4f26d11c3388} + {5a0cac98-a3a0-483a-b654-92cab14070c4} - {cb750701-7d58-4b83-96bd-3e20c101dc88} + {8be0b979-92bd-4741-be45-1af24feeef29} - {c8829492-7db9-4fa8-bde1-8fec56ec7760} + {22414be6-ff78-4616-a8f4-42495ba83b55} - {9b7bd1fc-4765-492c-b1fc-e8cd0dbf2901} + {8d3e8ace-7ecc-45c4-a824-5d109eefbad5} - {eaab7fac-663b-488c-a432-cee5c82c803a} + {7e321405-0687-4b9c-9421-63085196bd59} - {acd6ae16-7521-4502-a85e-f7c260ad252e} + {376ac110-ac72-47ac-bbde-a6d174c45ab0} - {d5c53961-e5cf-4d89-8077-b1146b50ff9c} + {25fa7da5-5080-4507-8dcc-0cfc3c27a74d} - {78abd5c7-e162-40db-bae9-187a17af9b5e} + {41d7d2d0-cca4-4412-bf33-1fa7b4ba4da5} - {bb0aaf00-be64-401b-b847-5968d682bf75} + {eae74b9d-f8b4-4085-a73f-103cda284017} - {9a43adf5-9118-437e-bd3f-979da977ac57} + {2e5b0261-cdf4-4b13-8f7b-78c5588f0705} - {ed4fe2e4-debb-4b0a-9b8a-434970c01115} + {12f2e3ea-ab53-47c1-af35-bbc60c8f662a} - {18b22b60-08c4-44a3-8915-ec192e8a3fb0} + {05cee555-6e46-4beb-a081-58c13765af87} - {3db6f9e0-ec17-41de-ad4b-48af29dc4ac1} + {698ef963-c5fb-42f8-9c45-fe3e973bd8ae} - {bec0a34f-958b-40d2-b6d6-bc6b6b147113} + {d173cc4c-0b48-4797-96b7-babd2c14f9b9} - {8195d3bf-855d-4817-89ea-a58eff8c03c4} + {2bb4c3c7-ac0a-4ccb-af85-317e3938c8e0} - {6333479e-c8ff-44f7-a50d-085523e5105f} + {954f9d9f-ae2d-4008-870e-9e044771d10b} - {72b65c24-6964-4b98-a113-329343f32ebd} + {81c23561-9de1-404c-9fe8-b79578d352fa} - {09e33a50-8379-46db-8e79-e41018ee0d8f} + {6ddfdbaf-d13a-401a-8549-b9fbd0d434ae} - {bd402350-2d9d-4a4a-852d-be89ac05db28} + {c1a0406a-be3b-4d71-ad16-ac08ed1080d2} - {f4cd0903-39ed-40f7-9e92-c4e7cbe35ef0} + {d1dfec77-b059-4980-8fbc-5ff2010e8ea2} - {68a90000-19f3-4d13-8fae-e9b6e5716652} + {cd9a8967-4252-4504-b296-0668a8302e24} - {66c54799-5c41-46f8-ae7a-58942ad4705b} + {90e31d6b-f512-47b1-b85f-d3293f803ebf} - {f8351074-43b3-486c-b17c-1d3e97afa010} + {86fbaa4a-2c1f-4ddc-a17e-93d53ea93a89} - {2cfcb915-097f-4a15-861f-69087117bc54} + {57390787-22e3-48b2-ac67-5a1c5624e90a} - {160bf970-48eb-490c-a1c7-ada4205e3b04} + {1503a43d-7f1a-4ebb-8d90-ed9557a30e3e} - {bd7d0bc2-d6a3-40fb-889d-3a9908f761b2} + {f4b66552-e198-4d05-90d3-748218f6f5c9} - {704cd365-f4d0-41dc-8509-02627e48fc33} + {bcb7f41e-0008-4872-a033-dea8d840d2fc} diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj index 0f2856232..cca00ae65 100644 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj +++ b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoNetSSLd PocoNetSSLmdd PocoNetSSLmtd @@ -224,6 +224,57 @@ ..\lib64\ obj64\NetSSL_OpenSSL\$(Configuration)\ + + true + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + Disabled diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj.filters b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj.filters index febc1f127..295fb15fe 100644 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj.filters +++ b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs160.vcxproj.filters @@ -2,49 +2,49 @@ - {c88f461e-3fd2-45f7-8dba-99979cfc5868} + {433ea30a-ca6c-475e-a317-d43983a445c3} - {702acf59-13fb-4f42-a78b-ff48bab51b4b} + {641d19de-a63d-4c86-a3c2-8c712e61394f} - {efa5519e-352e-4842-98a8-ab7a1d6dccf3} + {0a2143aa-8dcd-4508-85a1-14c51fe08386} - {25872691-1f49-43f7-9782-8d5357ffcdb3} + {61c64770-3e9c-4d42-a6b2-5e90e35df043} - {9d63a04f-f366-4d71-b22f-7d3c50cc550c} + {cfcc6cb0-3328-4d18-82e0-6c969a54e5e8} - {f80f7bf8-ae75-4b0b-a69b-d44900ad4803} + {01865fad-d7c0-465c-b62f-cee681ab5d50} - {4690d3bd-eb2a-47b4-b58b-8cb6497eb68c} + {86d099df-ebd6-461d-ab8b-75a811a8b4e4} - {94bda176-50ca-4a66-8a55-64d37564ce08} + {56dbca83-cc9d-43f1-9323-7db4c56f906a} - {c04a7709-b33e-41de-8958-237671ae71a7} + {a5a8eff1-4419-4f34-b090-e08641dedfac} - {a7d858c5-e876-4f74-8872-b551fcf19bb9} + {e8342a24-f538-444b-b5e0-3fe919ce5abb} - {42f35ca9-4d18-42f2-af75-f08b5718fee0} + {668950e4-eef3-49ec-b59a-574c849247c3} - {be9b24a1-0de5-4dc1-bfb7-9e8eee817b50} + {c43e39ff-10a0-468a-b75a-69006cd149eb} - {8d183fb7-56e9-442e-b56e-ad574b390aaf} + {7f74b0f3-ad83-437e-9f42-2e500351ad98} - {0728d812-2a21-4dde-a3c4-f6a59d625b6c} + {3a46d763-2427-4ba7-ab6e-a070b93aefab} - {063f6698-a66d-42ce-a613-83de51813130} + {0dcbdeac-d7ae-4a71-aa6d-744ed2a0fcfa} diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs170.vcxproj b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs170.vcxproj index 2b1ea8c42..95f4e455e 100644 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs170.vcxproj +++ b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoNetSSLA64d PocoNetSSLmdd PocoNetSSLmtd @@ -328,6 +328,81 @@ ..\lib64\ obj64\NetSSL_OpenSSL\$(Configuration)\ + + true + + + Debug + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + + + Release + true + Disabled diff --git a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs170.vcxproj.filters b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs170.vcxproj.filters index 6e51be8dd..578265508 100644 --- a/NetSSL_OpenSSL/NetSSL_OpenSSL_vs170.vcxproj.filters +++ b/NetSSL_OpenSSL/NetSSL_OpenSSL_vs170.vcxproj.filters @@ -2,49 +2,49 @@ - {80af7578-186a-472c-9dcf-2c2b869bd712} + {98aa424b-7532-4b2d-891c-9fef80bfae5e} - {0275fcb3-6879-4e36-ba4d-18a2338f6799} + {cbbd7304-fb93-40b7-9982-0c446fdefa25} - {dd7dab3b-e2ad-4953-8b75-b828b460ecbc} + {aa2ad61f-2a83-410f-8b3a-ea51dc73ad47} - {e3fda0f9-4ace-4eea-ab85-036841e3b0cf} + {fb360728-36fd-4f1b-a0f1-ee8df1bbeae7} - {d47af968-78e6-4fe4-b8f1-46869242b2a3} + {d62316e6-7cf9-4c0a-a059-64686f0a9503} - {3fad2a6f-d754-4a75-bbf9-5b2ec3f036cb} + {b4d8bc41-7eb7-4203-b495-5049a1960ae7} - {e1c12303-0459-4ffb-99a8-c0afb1c0b752} + {21eeec6b-14bb-4044-8246-54ecc22d7996} - {a1c8a207-f17d-4519-8704-d45e70769064} + {06e2d595-1e6d-4c10-a4e3-acddd13a876a} - {cab77a5e-f306-40bb-85a3-a20f0824f76b} + {74f65ce5-71e3-4979-9cb6-4d3ff23ecaa1} - {a7b6f111-b005-4b35-9c9e-35a3108237b3} + {3aa23113-cd7b-463c-9409-b4c6be2ebb4e} - {a7f480c0-5b2c-4100-b4b4-85fbb054cd00} + {e13f55e1-706d-4568-8d19-18cf32ae7ae8} - {8923e8f4-edb2-4e1f-a73b-441c6eec3ff7} + {b6c5e09f-4afa-4cb0-bc97-08d4355611da} - {c20480f2-2707-47de-ba34-77ee87349631} + {b903515b-ef30-4735-a8b7-0a2d03bd2ef8} - {52583bc6-77ed-4a85-9e76-91620d06c817} + {7a5e617a-e8ae-4aa5-897d-d91a64a4121c} - {daa86ff8-3c83-4b0f-9a0f-5985b5728dc8} + {8b360cc5-4e66-475f-acce-130229e1c26f} diff --git a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj index e763ef0d7..4482daef2 100644 --- a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj +++ b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 HTTPSTimeServerd HTTPSTimeServerd HTTPSTimeServerd @@ -232,6 +232,57 @@ obj64\HTTPSTimeServer\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + Disabled diff --git a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj.filters b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj.filters index e8aaba676..11524167f 100644 --- a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj.filters +++ b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {51840113-cbdf-45cf-a6ad-a06b0e75cb00} + {05bef7d7-ae33-42b8-8afa-025f5e88312d} - {3f00c4d1-dddb-47b1-bb5d-a8b5a9f28d8f} + {ec482c69-8654-4c52-b3c8-c350ed75af1d} diff --git a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs170.vcxproj b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs170.vcxproj index 501b246f1..177032168 100644 --- a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs170.vcxproj +++ b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 HTTPSTimeServer {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9} HTTPSTimeServer @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + HTTPSTimeServerd + HTTPSTimeServerd + HTTPSTimeServerd + HTTPSTimeServer + HTTPSTimeServer + HTTPSTimeServer HTTPSTimeServerd HTTPSTimeServerd HTTPSTimeServerd @@ -171,6 +250,36 @@ HTTPSTimeServer HTTPSTimeServer + + binA64\ + objA64\HTTPSTimeServer\$(Configuration)\ + true + + + binA64\ + objA64\HTTPSTimeServer\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\HTTPSTimeServer\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\HTTPSTimeServer\$(Configuration)\ + false + + + binA64\static_md\ + objA64\HTTPSTimeServer\$(Configuration)\ + true + + + binA64\static_md\ + objA64\HTTPSTimeServer\$(Configuration)\ + false + bin\ obj\HTTPSTimeServer\$(Configuration)\ @@ -231,6 +340,288 @@ obj64\HTTPSTimeServer\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + + + Release + true + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\HTTPSTimeServer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\HTTPSTimeServerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\HTTPSTimeServer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\HTTPSTimeServerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +638,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +650,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +674,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +707,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +719,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +743,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +776,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +788,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +812,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +845,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +857,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +881,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +914,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +926,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +950,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +983,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +995,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +1019,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -603,6 +1042,8 @@ true + stdcpp17 + stdc11 diff --git a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs170.vcxproj.filters b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs170.vcxproj.filters index e01248593..af491c334 100644 --- a/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs170.vcxproj.filters +++ b/NetSSL_OpenSSL/samples/HTTPSTimeServer/HTTPSTimeServer_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {25b12d13-8779-438a-8f68-1ff1243a25d7} + {d169a2da-b0e8-4a81-bf7f-1c0ad09d69c0} - {98031ea1-2099-4dd1-8e3f-a399c873dbd3} + {66f4ae71-6ded-471e-be8b-3d2bfacbe1d2} diff --git a/NetSSL_OpenSSL/samples/Mail/Mail_vs160.vcxproj b/NetSSL_OpenSSL/samples/Mail/Mail_vs160.vcxproj index ef83d66a4..d9a68969b 100644 --- a/NetSSL_OpenSSL/samples/Mail/Mail_vs160.vcxproj +++ b/NetSSL_OpenSSL/samples/Mail/Mail_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 Maild Maild Maild @@ -232,6 +232,57 @@ obj64\Mail\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + Disabled diff --git a/NetSSL_OpenSSL/samples/Mail/Mail_vs160.vcxproj.filters b/NetSSL_OpenSSL/samples/Mail/Mail_vs160.vcxproj.filters index 152eeb896..7b4ad342b 100644 --- a/NetSSL_OpenSSL/samples/Mail/Mail_vs160.vcxproj.filters +++ b/NetSSL_OpenSSL/samples/Mail/Mail_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {878ccd69-9cfe-4edb-a43e-d2960cc5ab09} + {a86e2ed8-db80-4d84-b7cb-ccc03e98f521} diff --git a/NetSSL_OpenSSL/samples/Mail/Mail_vs170.vcxproj b/NetSSL_OpenSSL/samples/Mail/Mail_vs170.vcxproj index c3fb3fa89..7e9334b56 100644 --- a/NetSSL_OpenSSL/samples/Mail/Mail_vs170.vcxproj +++ b/NetSSL_OpenSSL/samples/Mail/Mail_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 Mail {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA} Mail @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + Maild + Maild + Maild + Mail + Mail + Mail Maild Maild Maild @@ -171,6 +250,36 @@ Mail Mail + + binA64\ + objA64\Mail\$(Configuration)\ + true + + + binA64\ + objA64\Mail\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\Mail\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\Mail\$(Configuration)\ + false + + + binA64\static_md\ + objA64\Mail\$(Configuration)\ + true + + + binA64\static_md\ + objA64\Mail\$(Configuration)\ + false + bin\ obj\Mail\$(Configuration)\ @@ -231,6 +340,288 @@ obj64\Mail\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + + + Release + true + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\Mail.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\Maild.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\Mail.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\Maild.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +638,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +650,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +674,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +707,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +719,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +743,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +776,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +788,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +812,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +845,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +857,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +881,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +914,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +926,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +950,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +983,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +995,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +1019,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +1039,8 @@ true + stdcpp17 + stdc11 diff --git a/NetSSL_OpenSSL/samples/Mail/Mail_vs170.vcxproj.filters b/NetSSL_OpenSSL/samples/Mail/Mail_vs170.vcxproj.filters index e17d6d3e7..4ce37a325 100644 --- a/NetSSL_OpenSSL/samples/Mail/Mail_vs170.vcxproj.filters +++ b/NetSSL_OpenSSL/samples/Mail/Mail_vs170.vcxproj.filters @@ -2,7 +2,7 @@ - {750093a5-8f32-4ab2-8966-b9490ee494dd} + {d26d360f-8c9c-47cf-a633-3e9dcab158aa} diff --git a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs160.vcxproj b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs160.vcxproj index 81ec57dc6..dafdb04ce 100644 --- a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs160.vcxproj +++ b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 SetSourceIPd SetSourceIPd SetSourceIPd @@ -232,6 +232,57 @@ obj64\SetSourceIP\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + Disabled diff --git a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs160.vcxproj.filters b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs160.vcxproj.filters index 8adc0ecbd..71ffdf236 100644 --- a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs160.vcxproj.filters +++ b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {a83bddae-4e20-463d-8b40-b9571cc1a311} + {21646dbb-bbc9-4e3f-a413-a9544652fd19} diff --git a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs170.vcxproj b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs170.vcxproj index a3df3f5d3..93faaf76a 100644 --- a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs170.vcxproj +++ b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 SetSourceIP {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB} SetSourceIP @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>16.0.32002.118 + <_ProjectFileVersion>17.0.34714.143 + SetSourceIPd + SetSourceIPd + SetSourceIPd + SetSourceIP + SetSourceIP + SetSourceIP SetSourceIPd SetSourceIPd SetSourceIPd @@ -171,6 +250,36 @@ SetSourceIP SetSourceIP + + binA64\ + objA64\SetSourceIP\$(Configuration)\ + true + + + binA64\ + objA64\SetSourceIP\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\SetSourceIP\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\SetSourceIP\$(Configuration)\ + false + + + binA64\static_md\ + objA64\SetSourceIP\$(Configuration)\ + true + + + binA64\static_md\ + objA64\SetSourceIP\$(Configuration)\ + false + bin\ obj\SetSourceIP\$(Configuration)\ @@ -231,6 +340,288 @@ obj64\SetSourceIP\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + + + Release + true + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\SetSourceIP.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\SetSourceIPd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\SetSourceIP.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\SetSourceIPd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +638,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +650,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\SetSourceIPd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +674,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +707,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +719,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\SetSourceIPd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +743,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +776,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +788,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\SetSourceIPd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +812,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +845,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +857,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\SetSourceIPd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +881,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +914,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +926,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\SetSourceIPd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +950,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +983,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +995,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\SetSourceIPd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +1019,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +1039,8 @@ true + stdcpp17 + stdc11 diff --git a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs170.vcxproj.filters b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs170.vcxproj.filters index 41c71de6a..58fada4d7 100644 --- a/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs170.vcxproj.filters +++ b/NetSSL_OpenSSL/samples/SetSourceIP/SetSourceIP_vs170.vcxproj.filters @@ -2,7 +2,7 @@ - {e0c83b55-6767-4257-8699-27bd79dd9cef} + {2f3cb776-2763-47da-802a-72f8908d3ec3} diff --git a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs160.vcxproj b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs160.vcxproj index 99403b4ef..17a121e05 100644 --- a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs160.vcxproj +++ b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TwitterClientd TwitterClientd TwitterClientd @@ -232,6 +232,57 @@ obj64\TwitterClient\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + Disabled diff --git a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs160.vcxproj.filters b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs160.vcxproj.filters index 724e9d584..6ced76be1 100644 --- a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs160.vcxproj.filters +++ b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {7d622e8f-1a53-4a2a-a1a3-df26e9873cc5} + {2e4a42a0-1995-4265-be22-5942625a13d8} - {fafd3475-6a46-42c7-a36d-4220d9394845} + {5efdaca1-b13d-4ec6-8b8a-5385935d7bc0} diff --git a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs170.vcxproj b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs170.vcxproj index d883066b7..5b4abeb2c 100644 --- a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs170.vcxproj +++ b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 TwitterClient {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E} TwitterClient @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + TwitterClientd + TwitterClientd + TwitterClientd + TwitterClient + TwitterClient + TwitterClient TwitterClientd TwitterClientd TwitterClientd @@ -171,6 +250,36 @@ TwitterClient TwitterClient + + binA64\ + objA64\TwitterClient\$(Configuration)\ + true + + + binA64\ + objA64\TwitterClient\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\TwitterClient\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\TwitterClient\$(Configuration)\ + false + + + binA64\static_md\ + objA64\TwitterClient\$(Configuration)\ + true + + + binA64\static_md\ + objA64\TwitterClient\$(Configuration)\ + false + bin\ obj\TwitterClient\$(Configuration)\ @@ -231,6 +340,288 @@ obj64\TwitterClient\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + + + Release + true + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\TwitterClient.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\TwitterClientd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\TwitterClient.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\TwitterClientd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +638,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +650,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TwitterClientd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +674,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +707,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +719,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TwitterClientd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +743,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +776,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +788,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TwitterClientd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +812,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +845,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +857,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TwitterClientd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +881,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +914,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +926,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TwitterClientd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +950,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +983,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +995,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TwitterClientd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +1019,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,9 +1039,13 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs170.vcxproj.filters b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs170.vcxproj.filters index 183cc41f9..8169f7475 100644 --- a/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs170.vcxproj.filters +++ b/NetSSL_OpenSSL/samples/TwitterClient/TwitterClient_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {ec261d02-ad76-418e-ab7c-aab19476847f} + {7a7290f4-31aa-46ba-ada9-76e2b1283bc5} - {37ab4050-5ce8-4c27-9fa5-4e6cb291018c} + {26c40473-cd49-4154-99e4-ef90b2201c06} diff --git a/NetSSL_OpenSSL/samples/download/download_vs160.vcxproj b/NetSSL_OpenSSL/samples/download/download_vs160.vcxproj index 9ac00db3a..eb6a0bc35 100644 --- a/NetSSL_OpenSSL/samples/download/download_vs160.vcxproj +++ b/NetSSL_OpenSSL/samples/download/download_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 downloadd downloadd downloadd @@ -232,6 +232,57 @@ obj64\download\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + Disabled diff --git a/NetSSL_OpenSSL/samples/download/download_vs160.vcxproj.filters b/NetSSL_OpenSSL/samples/download/download_vs160.vcxproj.filters index 875179bd4..404c725b2 100644 --- a/NetSSL_OpenSSL/samples/download/download_vs160.vcxproj.filters +++ b/NetSSL_OpenSSL/samples/download/download_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {2187b503-aa52-4294-a53d-fc099c0e2928} + {379d1ba5-8dd5-4fe7-941f-1a1070acd83c} diff --git a/NetSSL_OpenSSL/samples/download/download_vs170.vcxproj b/NetSSL_OpenSSL/samples/download/download_vs170.vcxproj index 7dbf913d8..d428cadca 100644 --- a/NetSSL_OpenSSL/samples/download/download_vs170.vcxproj +++ b/NetSSL_OpenSSL/samples/download/download_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 download {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D} download @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + downloadd + downloadd + downloadd + download + download + download downloadd downloadd downloadd @@ -171,6 +250,36 @@ download download + + binA64\ + objA64\download\$(Configuration)\ + true + + + binA64\ + objA64\download\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\download\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\download\$(Configuration)\ + false + + + binA64\static_md\ + objA64\download\$(Configuration)\ + true + + + binA64\static_md\ + objA64\download\$(Configuration)\ + false + bin\ obj\download\$(Configuration)\ @@ -231,6 +340,288 @@ obj64\download\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + + + Release + true + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\download.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\downloadd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\download.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\downloadd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_OpenSSL\include;..\..\..\Crypto\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +638,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +650,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +674,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +707,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +719,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +743,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +776,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +788,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +812,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +845,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +857,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +881,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +914,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +926,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +950,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +983,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +995,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +1019,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +1039,8 @@ true + stdcpp17 + stdc11 diff --git a/NetSSL_OpenSSL/samples/download/download_vs170.vcxproj.filters b/NetSSL_OpenSSL/samples/download/download_vs170.vcxproj.filters index 5bae55fd6..d40d9ac26 100644 --- a/NetSSL_OpenSSL/samples/download/download_vs170.vcxproj.filters +++ b/NetSSL_OpenSSL/samples/download/download_vs170.vcxproj.filters @@ -2,7 +2,7 @@ - {076546ab-fc2d-4873-9251-a363fd342cc0} + {76977832-938c-43bc-b923-fc89a7569d00} diff --git a/NetSSL_OpenSSL/samples/samples_vs170.sln b/NetSSL_OpenSSL/samples/samples_vs170.sln index 15348158e..95920bedb 100644 --- a/NetSSL_OpenSSL/samples/samples_vs170.sln +++ b/NetSSL_OpenSSL/samples/samples_vs170.sln @@ -12,6 +12,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TwitterClient", "TwitterCli EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|ARM64 = debug_shared|ARM64 + release_shared|ARM64 = release_shared|ARM64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 + release_static_mt|ARM64 = release_static_mt|ARM64 + debug_static_md|ARM64 = debug_static_md|ARM64 + release_static_md|ARM64 = release_static_md|ARM64 debug_shared|Win32 = debug_shared|Win32 release_shared|Win32 = release_shared|Win32 debug_static_mt|Win32 = debug_static_mt|Win32 @@ -26,6 +32,24 @@ Global release_static_md|x64 = release_static_md|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Build.0 = debug_shared|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -62,6 +86,24 @@ Global {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.ActiveCfg = release_static_md|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Build.0 = release_static_md|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Build.0 = debug_shared|Win32 {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -98,6 +140,24 @@ Global {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.ActiveCfg = release_static_md|x64 {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.Build.0 = release_static_md|x64 {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Build.0 = debug_shared|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -134,6 +194,24 @@ Global {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.ActiveCfg = release_static_md|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Build.0 = release_static_md|x64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_shared|Win32.Build.0 = debug_shared|Win32 {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -170,6 +248,24 @@ Global {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_md|x64.ActiveCfg = release_static_md|x64 {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_md|x64.Build.0 = release_static_md|x64 {1B02F8D6-3C35-33BC-A793-05B5BA54B9AB}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_shared|Win32.Build.0 = debug_shared|Win32 {CCDD82BC-680D-39C0-AE25-1FBC5B615F7E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 diff --git a/NetSSL_OpenSSL/testsuite/TestSuite_vs160.vcxproj b/NetSSL_OpenSSL/testsuite/TestSuite_vs160.vcxproj index 0aa7fa64d..b55a52647 100644 --- a/NetSSL_OpenSSL/testsuite/TestSuite_vs160.vcxproj +++ b/NetSSL_OpenSSL/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -232,6 +232,57 @@ obj64\TestSuite\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + Disabled diff --git a/NetSSL_OpenSSL/testsuite/TestSuite_vs160.vcxproj.filters b/NetSSL_OpenSSL/testsuite/TestSuite_vs160.vcxproj.filters index 2e0e6f688..e6609a3f0 100644 --- a/NetSSL_OpenSSL/testsuite/TestSuite_vs160.vcxproj.filters +++ b/NetSSL_OpenSSL/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,73 +2,73 @@ - {a1ac25db-b5dd-44b9-9b26-6c55ea17d081} + {172a95d3-8eed-45a8-a0e8-4c7f3bc05032} - {9df4683d-4fc6-48a6-b729-c77fd58608bb} + {206b0060-72d0-4c53-94d7-ffe6c7081cf0} - {27369ed3-bc4e-4497-9de3-657a79e63898} + {0fa252ca-112c-4ac3-8ff3-b7f1f2035742} - {cc8d4f23-e9b3-474e-867d-af059102f42b} + {f182bbab-1b53-49bb-83f2-5730403cc4c2} - {0f77d0ad-8565-483c-b12e-c20316869b87} + {be8e4b6e-f65e-4566-a456-73c027db100c} - {ba7e9e7b-9e27-4bf0-8ae7-a99c6354fbc9} + {9104dff9-eb5b-4c4e-8cef-dc61e917fe8f} - {d86f3270-ac71-47e0-bf70-4ed08ac4b926} + {c945c822-fbad-4d15-a60e-ad786aed6af2} - {1b776f70-fea0-48ef-9f31-ecccc4ae1c5d} + {953fab7a-14f3-41e1-a5ad-5e5bfd849c14} - {16da7cc0-8451-45b5-860b-b5af4a171693} + {264b8241-f74c-4adc-98fe-7d70561e5f3b} - {741a19d1-6d5b-407c-807c-a6962ed5f099} + {f9b8804f-6bbe-45b6-bce6-e88ed2a25f8f} - {5ead36bb-340a-4676-abbf-64493186569e} + {f902d1b4-e7e7-40c2-8f19-4ff152241069} - {bbc719e1-f1fc-4b82-b417-9f3427efa585} + {ce11817f-6f52-4de9-81b6-3c29fd13f651} - {53e5cdaf-2449-4c6c-b069-764fe950bc67} + {60ae15d0-ff20-4bd5-9e73-f3838fbd161e} - {5228f4dd-5b1b-4aac-8aae-11a56f0c912c} + {b6803009-2839-45a1-b777-53e81c5e3186} - {8fcbc164-f8d9-4b68-8e06-18a613614ef5} + {5aa25ec3-3dd3-4c49-a830-fc5e327b47de} - {e864b7e8-df0f-4618-83fe-0f4a562896c1} + {3d16a3f6-62c6-4e22-bf8d-dac4648081f0} - {e6918819-4f66-42f2-8b00-2e2da48bdaa8} + {8350f1a6-6714-4ff9-9968-3e7c659f27bb} - {f5c56f04-07e7-443d-af48-80dfcca3a43d} + {b75f248c-c67c-4f35-b99a-4e2de83c9bd5} - {175f1249-6424-4aa5-826c-72e99f4d51b1} + {a339eb18-8afb-4bfe-a9c1-e6682feeab84} - {87a73253-6b5d-49fb-9c8d-fe5a1b322f9f} + {8f247295-133e-47c3-9859-cc8c1c0e44d3} - {d0abc311-0d45-4579-9250-3cb241bc3cbe} + {b0b9b326-182a-4594-8a53-287a3348e99c} - {53ec564a-9461-40aa-8611-7032bc6a2b46} + {8154cd88-7d85-493e-a800-69366d5d16f3} - {bd9dc45a-244d-48ef-bc5b-729146d60d36} + {a6261ec6-e08d-4c71-875f-5c72bfcf310d} diff --git a/NetSSL_OpenSSL/testsuite/TestSuite_vs170.vcxproj b/NetSSL_OpenSSL/testsuite/TestSuite_vs170.vcxproj index d966bf453..4d0ee5585 100644 --- a/NetSSL_OpenSSL/testsuite/TestSuite_vs170.vcxproj +++ b/NetSSL_OpenSSL/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -340,6 +340,81 @@ obj64\TestSuite\$(Configuration)\ false + + true + + + Debug + + + Debug + + + Debug + + + Debug + true + true + + + Debug + true + true + + + Debug + true + true + + + Debug + true + + + Debug + true + + + Debug + true + + + Release + + + Release + + + Release + + + Release + true + true + + + Release + true + true + + + Release + true + true + + + Release + true + + + Release + true + + + Release + true + Disabled @@ -356,15 +431,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -388,11 +467,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -417,15 +500,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -449,11 +536,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -478,15 +569,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -510,11 +605,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -539,7 +638,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -547,7 +650,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -571,7 +674,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,7 +707,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -608,7 +719,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -632,7 +743,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -661,7 +776,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -669,7 +788,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -693,7 +812,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -722,7 +845,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -730,7 +857,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -754,7 +881,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -783,7 +914,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -791,7 +926,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -815,7 +950,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -844,7 +983,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -852,7 +995,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -876,7 +1019,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -908,48 +1055,78 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/NetSSL_OpenSSL/testsuite/TestSuite_vs170.vcxproj.filters b/NetSSL_OpenSSL/testsuite/TestSuite_vs170.vcxproj.filters index 71f1ade67..e97d3874f 100644 --- a/NetSSL_OpenSSL/testsuite/TestSuite_vs170.vcxproj.filters +++ b/NetSSL_OpenSSL/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,73 +2,73 @@ - {335b70eb-a1c5-4cc5-ba1e-a478ce499a45} + {4e1ec44c-07fc-4690-95f0-7656bce2995b} - {79ce92d6-cfb5-4e73-bb1d-6ea7bced9255} + {f0decc95-5d09-41a3-bb93-365bc1c063e4} - {6c1defdc-292c-4534-b364-d30de83f24f8} + {a69ee5de-36bb-47dc-8a79-8e90b232221e} - {918af941-772b-4e26-8551-1cdce258c4e2} + {3049295c-de72-48ea-b55d-44e9db140f37} - {5d081418-ccfa-4731-bf1a-002702f43766} + {ed85b617-1f5a-4dc3-91dc-fdc4fedf75f9} - {fa37ae89-ac9b-4433-a03b-b7f7cbc376ab} + {8a9073d0-cb04-478f-8761-972aa3ba539a} - {51f0d8b2-aec4-4489-b1cb-f6bdedc35f0c} + {826b3eca-d42e-4fec-ac91-4b82885f0ecb} - {301a9873-6673-4132-9c4a-ab79098a66f3} + {710b3009-792e-45a5-9196-52216b764813} - {5ba4eeca-172a-4731-a1da-3879e640d2e8} + {545a8aff-5dd4-4017-a42d-70d094d44395} - {d813b410-a925-427d-8407-456a64e7319f} + {4087a9d7-a00c-4804-b95a-c4ef33715e5e} - {a6f2f0d7-ad32-4913-a9a0-dd3666ad8e49} + {4a06593b-d9b0-4cf7-859d-5109fbe36d40} - {a1958c6f-ea7b-4b73-9282-dc783667e681} + {7affb5c0-0cb5-4eb7-a3cc-3102a9bca878} - {b68e978e-793e-4c1e-b0ca-2223bc197976} + {9df04650-945a-4f98-a712-86c34f843c34} - {0eb867e0-e918-4bb0-87ed-36e232c4b8a0} + {7c658802-a93f-4dfd-a76c-ca9e51388982} - {c15b64eb-c1cb-4ab7-98a1-6d0a2e377194} + {fab7172b-d802-483c-9a8f-43f53e32441c} - {91980deb-2851-498e-a93e-7605e76cfb3a} + {10c61850-b18d-47df-9d71-f5b42bc487b3} - {6e1b307b-6d89-423e-8ce7-20072fb81cc7} + {02bb6939-5818-4a64-b27f-c5b0545a453b} - {e7a365a1-e648-49d0-ad38-255c61079a15} + {2181bca5-6467-41e2-a90d-30263bb69a01} - {051d8e58-f927-4987-bb28-0d41efbaafd1} + {a8ddeab9-2737-412d-9279-637f7220079d} - {02ed1bdb-b073-4620-a4d8-7cae27fa2baf} + {cb8d8052-e837-48c6-ac74-849366ed75d0} - {4fec9e6f-af84-4bbe-baa9-e23d6466b403} + {6f0e6134-4fc6-41b1-95f3-d4c71ea53fd0} - {706222ab-a96e-4e40-996e-7947337bd460} + {767b5059-aa88-4b4b-b5e7-98b3167b1ae8} - {bfdf70eb-f4d5-4e45-898d-1a29aa47dc1c} + {93a3a5f8-8056-435b-86ca-ef2fb15351c8} diff --git a/NetSSL_Win/NetSSL_Win_vs160.vcxproj b/NetSSL_Win/NetSSL_Win_vs160.vcxproj index 196bccd61..238cc4c20 100644 --- a/NetSSL_Win/NetSSL_Win_vs160.vcxproj +++ b/NetSSL_Win/NetSSL_Win_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoNetSSLWind PocoNetSSLWinmdd PocoNetSSLWinmtd diff --git a/NetSSL_Win/NetSSL_Win_vs160.vcxproj.filters b/NetSSL_Win/NetSSL_Win_vs160.vcxproj.filters index 7c313f3b8..c1e5a54bf 100644 --- a/NetSSL_Win/NetSSL_Win_vs160.vcxproj.filters +++ b/NetSSL_Win/NetSSL_Win_vs160.vcxproj.filters @@ -2,40 +2,40 @@ - {f6522852-815f-496c-b2b4-714f5ff49464} + {0d24d8ec-9d08-4661-a5b7-8b8dcac36f31} - {1e943eab-c90b-4912-9fff-18c9b8bd1d11} + {c899ad3f-59dc-4a9c-a0de-3530aee706b3} - {c83db41f-e1d0-484a-81da-a4cd5c71b932} + {da0eef86-235c-40aa-8468-d9f8eaa2df68} - {b712f7c3-049f-4c87-b2eb-7a714d3aff96} + {2c65c68a-c3c4-4eb3-88e9-10098dd74732} - {ce4ded16-81ac-4db0-92a3-c043f5b71d59} + {cc692a9a-fed4-45d0-b2e7-d4f32d1e74a7} - {048afc24-4781-4915-9136-e3c2a43d11c2} + {4a9b97c9-d5cf-4a7c-b36a-e98acc60f1b2} - {c1c7c423-914e-467c-a6ef-0f4b76a16017} + {b1bc4f50-9b88-4e22-955d-1d46e48d70e8} - {4d78eb26-f0a1-438c-8bb1-bfdcf7eaeb28} + {f23358d3-2793-4148-920a-bbd174182332} - {07b6760d-a3f7-4702-adfa-b5e2107bbdc2} + {4870f3dc-3293-4864-a62d-de07f3a59536} - {e8a6f0e3-98b2-45e5-b261-132b36bf2e32} + {775ea9ae-39c6-43ea-8413-65be9b380dee} - {72711317-b304-49a5-9f97-d75292cf5d5f} + {8669f9c5-5a2b-424f-a66d-e32cb71db8e2} - {50bd574d-073f-4882-8180-a1ea461f90cc} + {63524b7c-2710-42cf-a572-cd8b767adc3a} diff --git a/NetSSL_Win/NetSSL_Win_vs170.vcxproj b/NetSSL_Win/NetSSL_Win_vs170.vcxproj index d6b9be682..b1c783207 100644 --- a/NetSSL_Win/NetSSL_Win_vs170.vcxproj +++ b/NetSSL_Win/NetSSL_Win_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoNetSSLWinA64d PocoNetSSLWinmdd PocoNetSSLWinmtd diff --git a/NetSSL_Win/NetSSL_Win_vs170.vcxproj.filters b/NetSSL_Win/NetSSL_Win_vs170.vcxproj.filters index 1ff0dfa09..31aa5ad5e 100644 --- a/NetSSL_Win/NetSSL_Win_vs170.vcxproj.filters +++ b/NetSSL_Win/NetSSL_Win_vs170.vcxproj.filters @@ -2,40 +2,40 @@ - {8a998ff6-6c22-4d3c-b39f-5c7bcc09178c} + {028fa258-1e05-487c-be1f-2fb27677a2b1} - {34d33975-775a-4c13-8451-19253770f411} + {3f0e26b2-27c7-43ac-a76d-cbb76aab4c7e} - {5dab4ef6-a180-401d-b68d-a493d6c5519f} + {d1a5acb4-3ec4-4976-ad9b-8218b84593a6} - {1fb69e99-1e3a-49c1-8fca-35798bc29c5b} + {ec1583b0-e32b-4ef0-a739-8e50865f6725} - {6fa1198b-3274-4afa-9233-4180ffa9582c} + {1dd38885-9d04-4942-8730-bff447d1216c} - {989e713c-afe3-47ef-aa35-bb679393d50e} + {3ec86533-ac2d-4a77-9073-190748e4dc3c} - {1683739c-ddaf-4658-a2ce-68c957770d5d} + {f338c81c-aceb-4541-988d-e93f08bc3744} - {fe0f17eb-579e-487f-843d-0b8d27b64c8f} + {205543d2-ddbb-42ee-a0ea-a8a5ab9b733f} - {0b55c232-02e6-4a66-ba8c-2e6f2bf3dbb1} + {c6eec17d-8efc-4318-ae6b-0ea504b4ee3c} - {8938a3ec-7f33-4aec-ae63-cadb4df3be2f} + {c89a507d-50c1-4553-a1cb-f3f08962577b} - {64e2befe-afce-460f-8051-afab0a6bec59} + {e8ffef03-8020-4b41-8b76-95c00c46ea12} - {964d44a7-ee89-4ef7-a77f-60171636c9e3} + {bf7c42e5-aa4e-4c9f-9f1d-026b5954eb48} diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj index 02eac4066..c940f5622 100644 --- a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 HTTPSTimeServerd HTTPSTimeServerd HTTPSTimeServerd diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj.filters b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj.filters index 54b83677a..685c3063d 100644 --- a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj.filters +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {9c9fbd04-8173-407d-bfd0-82413bc01144} + {b6affa8a-5c58-4b50-9965-d512074992cb} - {211cccb8-5ea0-4db2-8fc9-2572b87dd2b7} + {594166c2-e903-4d6d-9e89-9b2b7b062f0e} diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs170.vcxproj b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs170.vcxproj index 9431d9320..33693a6ad 100644 --- a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs170.vcxproj +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 HTTPSTimeServer {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9} HTTPSTimeServer @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + HTTPSTimeServerd + HTTPSTimeServerd + HTTPSTimeServerd + HTTPSTimeServer + HTTPSTimeServer + HTTPSTimeServer HTTPSTimeServerd HTTPSTimeServerd HTTPSTimeServerd @@ -171,6 +250,36 @@ HTTPSTimeServer HTTPSTimeServer + + binA64\ + objA64\HTTPSTimeServer\$(Configuration)\ + true + + + binA64\ + objA64\HTTPSTimeServer\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\HTTPSTimeServer\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\HTTPSTimeServer\$(Configuration)\ + false + + + binA64\static_md\ + objA64\HTTPSTimeServer\$(Configuration)\ + true + + + binA64\static_md\ + objA64\HTTPSTimeServer\$(Configuration)\ + false + bin\ obj\HTTPSTimeServer\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\HTTPSTimeServer\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\HTTPSTimeServer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\HTTPSTimeServerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\HTTPSTimeServer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\HTTPSTimeServerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\HTTPSTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -603,6 +967,8 @@ true + stdcpp17 + stdc11 diff --git a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs170.vcxproj.filters b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs170.vcxproj.filters index 32a61d8c5..b95e81a9b 100644 --- a/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs170.vcxproj.filters +++ b/NetSSL_Win/samples/HTTPSTimeServer/HTTPSTimeServer_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {9efc7dc8-4929-4b5e-a476-75904df298ba} + {f49e53e0-28c8-411a-9c6f-612dbc75ef1b} - {a71820a4-9f36-419c-993e-ff4ebf3c4cba} + {7ad578b8-1649-4b9b-ad57-70abbd80c840} diff --git a/NetSSL_Win/samples/Mail/Mail_vs160.vcxproj b/NetSSL_Win/samples/Mail/Mail_vs160.vcxproj index 3e9bed6eb..bf3d654c3 100644 --- a/NetSSL_Win/samples/Mail/Mail_vs160.vcxproj +++ b/NetSSL_Win/samples/Mail/Mail_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 Maild Maild Maild diff --git a/NetSSL_Win/samples/Mail/Mail_vs160.vcxproj.filters b/NetSSL_Win/samples/Mail/Mail_vs160.vcxproj.filters index 7ac3b59da..cddcf8a99 100644 --- a/NetSSL_Win/samples/Mail/Mail_vs160.vcxproj.filters +++ b/NetSSL_Win/samples/Mail/Mail_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {7908210f-4028-4f14-a1b5-e70baa5868f4} + {5ba1f73e-40a3-4795-adff-62c8b6761b36} diff --git a/NetSSL_Win/samples/Mail/Mail_vs170.vcxproj b/NetSSL_Win/samples/Mail/Mail_vs170.vcxproj index 1e84de4ae..95002a443 100644 --- a/NetSSL_Win/samples/Mail/Mail_vs170.vcxproj +++ b/NetSSL_Win/samples/Mail/Mail_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 Mail {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA} Mail @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + Maild + Maild + Maild + Mail + Mail + Mail Maild Maild Maild @@ -171,6 +250,36 @@ Mail Mail + + binA64\ + objA64\Mail\$(Configuration)\ + true + + + binA64\ + objA64\Mail\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\Mail\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\Mail\$(Configuration)\ + false + + + binA64\static_md\ + objA64\Mail\$(Configuration)\ + true + + + binA64\static_md\ + objA64\Mail\$(Configuration)\ + false + bin\ obj\Mail\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\Mail\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\Mail.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\Maild.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\Mail.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\Maild.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Maild.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/NetSSL_Win/samples/Mail/Mail_vs170.vcxproj.filters b/NetSSL_Win/samples/Mail/Mail_vs170.vcxproj.filters index a214e4a2b..0721b1253 100644 --- a/NetSSL_Win/samples/Mail/Mail_vs170.vcxproj.filters +++ b/NetSSL_Win/samples/Mail/Mail_vs170.vcxproj.filters @@ -2,7 +2,7 @@ - {0c1d864b-abbd-4769-9c17-80d9206ba623} + {10ea82cd-6022-4988-8fe1-b9e1625fe0f8} diff --git a/NetSSL_Win/samples/download/download_vs160.vcxproj b/NetSSL_Win/samples/download/download_vs160.vcxproj index f4d4909e8..2407f76f6 100644 --- a/NetSSL_Win/samples/download/download_vs160.vcxproj +++ b/NetSSL_Win/samples/download/download_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 downloadd downloadd downloadd diff --git a/NetSSL_Win/samples/download/download_vs160.vcxproj.filters b/NetSSL_Win/samples/download/download_vs160.vcxproj.filters index 3ac1cf24f..8c315dbff 100644 --- a/NetSSL_Win/samples/download/download_vs160.vcxproj.filters +++ b/NetSSL_Win/samples/download/download_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {7971158a-bd8f-4dfa-a2f6-07e8502ae206} + {fd9cc7b6-d976-4585-a726-b8043cfd3a2a} diff --git a/NetSSL_Win/samples/download/download_vs170.vcxproj b/NetSSL_Win/samples/download/download_vs170.vcxproj index 1b1ad6e23..ab5ffb27c 100644 --- a/NetSSL_Win/samples/download/download_vs170.vcxproj +++ b/NetSSL_Win/samples/download/download_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 download {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D} download @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + downloadd + downloadd + downloadd + download + download + download downloadd downloadd downloadd @@ -171,6 +250,36 @@ download download + + binA64\ + objA64\download\$(Configuration)\ + true + + + binA64\ + objA64\download\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\download\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\download\$(Configuration)\ + false + + + binA64\static_md\ + objA64\download\$(Configuration)\ + true + + + binA64\static_md\ + objA64\download\$(Configuration)\ + false + bin\ obj\download\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\download\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\download.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\downloadd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\download.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\downloadd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\NetSSL_Win\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\downloadd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/NetSSL_Win/samples/download/download_vs170.vcxproj.filters b/NetSSL_Win/samples/download/download_vs170.vcxproj.filters index 01f5007cb..371cc75ac 100644 --- a/NetSSL_Win/samples/download/download_vs170.vcxproj.filters +++ b/NetSSL_Win/samples/download/download_vs170.vcxproj.filters @@ -2,7 +2,7 @@ - {4f604b7a-5002-403f-84d1-e88c8076c1e5} + {3d52b13e-c2ac-4386-9920-350e289f03e8} diff --git a/NetSSL_Win/samples/samples_vs170.sln b/NetSSL_Win/samples/samples_vs170.sln index ad1b86b5b..cb4f1f33d 100644 --- a/NetSSL_Win/samples/samples_vs170.sln +++ b/NetSSL_Win/samples/samples_vs170.sln @@ -8,6 +8,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Mail", "Mail\Mail_vs170.vcx EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|ARM64 = debug_shared|ARM64 + release_shared|ARM64 = release_shared|ARM64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 + release_static_mt|ARM64 = release_static_mt|ARM64 + debug_static_md|ARM64 = debug_static_md|ARM64 + release_static_md|ARM64 = release_static_md|ARM64 debug_shared|Win32 = debug_shared|Win32 release_shared|Win32 = release_shared|Win32 debug_static_mt|Win32 = debug_static_mt|Win32 @@ -22,6 +28,24 @@ Global release_static_md|x64 = release_static_md|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Build.0 = debug_shared|Win32 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -58,6 +82,24 @@ Global {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.ActiveCfg = release_static_md|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Build.0 = release_static_md|x64 {D853F3D6-0D6F-3E8E-82C7-4216D7A21C4D}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Build.0 = debug_shared|Win32 {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -94,6 +136,24 @@ Global {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.ActiveCfg = release_static_md|x64 {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.Build.0 = release_static_md|x64 {F8DE5054-3EC1-3FB4-9FE6-38EE974745A9}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Build.0 = debug_shared|Win32 {BF75C029-EFC9-3A0F-A8F2-8001C11D1FBA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 diff --git a/NetSSL_Win/testsuite/TestSuite_vs160.vcxproj b/NetSSL_Win/testsuite/TestSuite_vs160.vcxproj index 657ea14a4..f3f3e5c66 100644 --- a/NetSSL_Win/testsuite/TestSuite_vs160.vcxproj +++ b/NetSSL_Win/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited diff --git a/NetSSL_Win/testsuite/TestSuite_vs160.vcxproj.filters b/NetSSL_Win/testsuite/TestSuite_vs160.vcxproj.filters index 8b115fc9e..fed0ae414 100644 --- a/NetSSL_Win/testsuite/TestSuite_vs160.vcxproj.filters +++ b/NetSSL_Win/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,55 +2,55 @@ - {5bbc574f-1e40-457b-9147-4d5190be7a67} + {36f4ef21-a9db-40af-a0e7-ea9a3b92a9e4} - {39b28a9c-9c5d-488f-afca-ba8378d91ebb} + {2782a8e9-0709-4392-bf3a-22ab034fc7ca} - {5747cc99-1e37-4212-b062-2e35b2d86d32} + {3309117f-5325-4d2e-8e6d-1fe1faf0bc97} - {6d385ce5-4d18-4eb1-8c70-02ff584f82d7} + {68c66010-6d3d-4d3c-bb32-12c1b2747e00} - {f790aa4b-1a92-4291-b9d0-5814581664f2} + {3bfa3acb-90b5-40ef-ae01-bcb05c198638} - {ff4e0b1f-4e6f-49cc-841a-2c5153cf8937} + {3197ab91-b361-4ded-bd71-bc04510db82d} - {305f8a8f-fae9-4a53-8cfb-2ab154c26ae3} + {995e0ec4-0a8e-4028-8741-828498401966} - {4eabc15f-0e66-4027-badb-df9b8edcc1f4} + {2812877f-2b1e-4933-a05d-446029e4faa6} - {95e3dc6d-1380-4648-b71e-b6a360eadc2f} + {266934b1-0e67-4a5b-9c72-b325a5796d09} - {f876807e-3906-4402-ac49-665602b3535b} + {d6e0a163-3a8a-4a92-92ce-9e77f33cb5fe} - {d55971e5-9d4b-417a-923a-e866e5c87c50} + {b6d5a692-81c9-46e3-9981-8f96511c021e} - {de2d8efa-32a4-4e5e-b251-2afc64f742ab} + {68929c63-0d0d-437f-9279-4617dd1f90d4} - {74cf951a-6dac-40bf-85ce-8ba9b1297038} + {4ee22d8e-a989-4115-9536-c16a4793d8a4} - {74f4afef-32a6-442d-9af6-7d177e728295} + {64f69d24-fb76-4449-8c85-3e950351f4b3} - {dc24ce9a-5c56-418c-b0a2-325cbea4358d} + {22d17a5d-ff68-4330-8979-516e8195a67a} - {d2ca1a89-c28f-4782-9d0f-471054d566ad} + {943d328a-0c15-4ff0-a497-10302133256d} - {cac69af8-54f4-4b0a-a58c-a15a553f2e58} + {fd8022c1-22bd-4625-af5a-10bd378a95bb} diff --git a/NetSSL_Win/testsuite/TestSuite_vs170.vcxproj b/NetSSL_Win/testsuite/TestSuite_vs170.vcxproj index 70084ac73..1b7abb2dd 100644 --- a/NetSSL_Win/testsuite/TestSuite_vs170.vcxproj +++ b/NetSSL_Win/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -356,15 +356,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -388,11 +392,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -417,15 +425,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -449,11 +461,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -478,15 +494,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -510,11 +530,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -539,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -547,7 +575,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -571,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -608,7 +644,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -632,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -661,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -669,7 +713,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -693,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -722,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -730,7 +782,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -754,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -783,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -791,7 +851,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -815,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -844,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -852,7 +920,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -876,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;Crypt32.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -903,33 +975,53 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/NetSSL_Win/testsuite/TestSuite_vs170.vcxproj.filters b/NetSSL_Win/testsuite/TestSuite_vs170.vcxproj.filters index 60b30483d..a7e53c18e 100644 --- a/NetSSL_Win/testsuite/TestSuite_vs170.vcxproj.filters +++ b/NetSSL_Win/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,55 +2,55 @@ - {66abde7f-0d6a-4a0e-90a2-a656395a76eb} + {d25a7448-ef98-42ed-b0b9-40f8e5dcc011} - {e5598f7e-72c3-4fc6-96d9-84381457c63f} + {02849cdc-34aa-403d-a0fd-f36f26cc9551} - {93f2d783-98ab-45a5-b3ba-862e64036ce2} + {76a288f1-1bed-44b7-a7df-e1e1cc1a622a} - {6ff4cb98-4798-48da-aa69-b9070a919d17} + {b075c76f-7948-40f0-8f37-7ff6e2ab1ee7} - {2fd92fee-552d-479b-8ec1-0622fab2e01f} + {8625eb47-f429-4bfb-98e5-2d96e2c95619} - {f45a188c-ea24-4337-8227-f5eaa5eed028} + {d3860ac7-18fa-47a8-917e-4085fb90b0a4} - {15eb38af-b329-4041-9d0f-ff77ac9f3cee} + {dfaac5f7-7cbc-4f3d-a730-087c01c9676e} - {b2fe17bb-e8fa-49f3-af30-c4295452a8a9} + {3220210c-be32-4b59-899e-cf44423e2425} - {aaa2cb04-ee9e-4931-9b33-a9a0bfb7f61a} + {602e92f6-db01-4821-8141-66b4b2e378f1} - {b419be56-1a57-4cf2-b63f-bb8aaef93e0a} + {7bc9bbe2-0162-4144-9c08-9b2af574a4e3} - {cc2f4e24-6143-40d5-8582-8c9958cc6be5} + {1bd53155-2233-462c-89d1-bae457e19b4b} - {8fe86425-a4e2-44ec-9d55-69b83e9547c6} + {98dd8a86-c336-48e9-b1a1-68a6b2d2652a} - {6b1c1e31-f178-42f5-8138-416b9847425a} + {166274eb-db2f-4099-a181-185457e0582f} - {fcf4875f-0ba7-4452-abe5-459b68708338} + {8512b8d8-bcae-4c80-b094-3f3db7dcbf2d} - {0ba3bd15-e9f4-4074-821b-299875ddb4f8} + {c033670a-e73b-42f1-8736-2592b1c09bfc} - {a72ca272-d438-4a9b-92aa-9d0c4ba35c4f} + {4c15eef1-75ea-460a-a71f-034f17c03010} - {ac8a51dc-8cf9-4f5c-9e0c-b116f8bcd47a} + {90c43e80-1ba2-4e5c-9054-2796df1113e4} diff --git a/PDF/PDF_vs160.vcxproj b/PDF/PDF_vs160.vcxproj index 901667e7e..f382f8790 100644 --- a/PDF/PDF_vs160.vcxproj +++ b/PDF/PDF_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoPDFd PocoPDFmdd PocoPDFmtd diff --git a/PDF/PDF_vs160.vcxproj.filters b/PDF/PDF_vs160.vcxproj.filters index 1729cc400..36d9568fa 100644 --- a/PDF/PDF_vs160.vcxproj.filters +++ b/PDF/PDF_vs160.vcxproj.filters @@ -2,40 +2,40 @@ - {95899e94-7d3b-4dd3-81c8-20bfb7e67f5e} + {b6e2c286-e78c-4b10-87a3-9ba78fc3eb65} - {f7ec7438-b34c-45b1-acf6-cf1611e34f16} + {cb0d5182-7b1e-45fb-873f-05cea4fa5169} - {17bd22b0-9a73-4b82-9072-2fa06005c32e} + {1dd47937-f1aa-4bfb-a0d5-437fc08446b4} - {bfeefb6f-ad48-449c-a62b-87b264be946c} + {1d718175-ad2d-486f-a61a-64d5774168ba} - {04103cdc-cb31-4bb5-a4ab-0b8ab5a66519} + {034ff46d-e25b-4bac-9db0-4022f869fe79} - {fff2b78a-ef20-43e3-bbe9-ef5aec277f4d} + {9230a40d-58bb-47f7-805f-812a558cb1ec} - {f9eee22e-d9bb-45e6-96ba-07131b2adf9b} + {1e4c633d-0533-4c97-8b31-f8f825df0b82} - {99d02157-7f2d-449f-862e-5eed9a9637d9} + {dcd2741a-80e3-4782-aa6f-b94c52c19dca} - {e9699116-6dfc-4c22-baa3-bee8029486b6} + {b5445266-3385-4ac4-8747-59c157aba838} - {d2fabe1e-96c8-4616-a20b-df0eb291864f} + {94d38cf1-0dec-4e43-a96e-0cdf75b74cdb} - {81314ec9-d427-4499-9ab0-824f34e1685c} + {f864772e-7ee2-462f-b317-ea0b55a28bba} - {1b0effa7-2377-4ee4-9d78-3b1149969ca9} + {9be2ff26-28d2-4eff-a406-5f1a57345375} diff --git a/PDF/PDF_vs170.vcxproj b/PDF/PDF_vs170.vcxproj index b413aaff7..648c6987e 100644 --- a/PDF/PDF_vs170.vcxproj +++ b/PDF/PDF_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoPDFA64d PocoPDFmdd PocoPDFmtd diff --git a/PDF/PDF_vs170.vcxproj.filters b/PDF/PDF_vs170.vcxproj.filters index 2a9c9233b..8b6627345 100644 --- a/PDF/PDF_vs170.vcxproj.filters +++ b/PDF/PDF_vs170.vcxproj.filters @@ -2,40 +2,40 @@ - {8b0ee6f7-72d5-44ea-80af-b431596d2806} + {22024715-a87e-476f-99b6-8c1e3471578a} - {584e97fb-0883-44ff-ac92-0672a0485bb5} + {83111f3e-9288-4ee2-88ef-c7ae6d22ebd4} - {041e037e-22da-4ea3-abf2-8a88bda70ed6} + {01093604-2890-4215-9d61-3c2c1137b796} - {21479540-b703-4e9f-8a6d-3e34692dd351} + {0da2898f-0b32-46eb-a0be-06696acd2072} - {8a2c9fc5-7c5c-410f-a29a-ebafcc2e33e1} + {82595127-16fc-4973-904c-d3f94ab9e46f} - {0721ec2f-61e0-46f1-bf17-53306309840a} + {71664612-437f-4634-b8cd-11d2a6d58619} - {099081cd-0596-467c-a1cb-ded50e74698a} + {1c8f27d9-790c-4470-b109-5836a88f68b5} - {d8554d0b-1f5a-4366-8248-e7b86032ce64} + {2921824a-72de-4cc0-a51d-b377d2b6ff9d} - {58ea1706-127b-4a81-94a9-0b550e833bae} + {014bfa9e-75f5-4eb4-a62c-0e538b372395} - {302b069a-c690-41c3-a0ab-e4c2dbaf8053} + {9bb656c9-8dc5-4902-a8c5-78dd9dbc85c1} - {114ed72e-b981-4900-a7a0-c3d22b6aaaf2} + {1944c485-901e-46e8-b860-958e3a4cb65b} - {fe75b6b6-c069-4e06-af69-2f7d6e9bec21} + {194e9651-b17f-43cc-9f71-eae3aa905605} diff --git a/PDF/samples/Image/Image_vs160.vcxproj b/PDF/samples/Image/Image_vs160.vcxproj index 1fbcd437a..3f5a10122 100644 --- a/PDF/samples/Image/Image_vs160.vcxproj +++ b/PDF/samples/Image/Image_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 Imaged Imaged Imaged diff --git a/PDF/samples/Image/Image_vs160.vcxproj.filters b/PDF/samples/Image/Image_vs160.vcxproj.filters index fbb37ef7e..b251469aa 100644 --- a/PDF/samples/Image/Image_vs160.vcxproj.filters +++ b/PDF/samples/Image/Image_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {1c84ccb3-628a-4553-be36-231031a60cd3} + {ce14dbbf-e371-4b4e-905b-dcd3f8d2b145} - {b2fc49c5-5c5a-4ac0-a098-d0873fc56d28} + {be04e0fe-82e5-472f-96ce-624a8482b1fd} diff --git a/PDF/samples/Image/Image_vs170.vcxproj b/PDF/samples/Image/Image_vs170.vcxproj index db0031728..df8047fb0 100644 --- a/PDF/samples/Image/Image_vs170.vcxproj +++ b/PDF/samples/Image/Image_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 Image {DA74060D-73AF-3E8F-A804-FBC960DAC393} Image @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + Imaged + Imaged + Imaged + Image + Image + Image Imaged Imaged Imaged @@ -171,6 +250,36 @@ Image Image + + binA64\ + objA64\Image\$(Configuration)\ + true + + + binA64\ + objA64\Image\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\Image\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\Image\$(Configuration)\ + false + + + binA64\static_md\ + objA64\Image\$(Configuration)\ + true + + + binA64\static_md\ + objA64\Image\$(Configuration)\ + false + bin\ obj\Image\$(Configuration)\ @@ -231,6 +340,211 @@ obj64\Image\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + binA64\Image.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;%(AdditionalDependencies) + binA64\static_mt\Imaged.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;%(AdditionalDependencies) + binA64\static_mt\Image.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;%(AdditionalDependencies) + binA64\static_md\Imaged.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,14 +561,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin\Imaged.exe ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Imaged.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -278,7 +596,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin\Image.exe @@ -306,7 +628,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -314,7 +640,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Imaged.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -338,7 +664,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -367,7 +697,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -375,7 +709,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Imaged.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -399,7 +733,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -428,14 +766,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin64\Imaged.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Imaged.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -459,7 +801,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin64\Image.exe @@ -487,7 +833,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -495,7 +845,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Imaged.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -519,7 +869,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -548,7 +902,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -556,7 +914,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Imaged.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -580,7 +938,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -596,6 +958,8 @@ true + stdcpp17 + stdc11 diff --git a/PDF/samples/Image/Image_vs170.vcxproj.filters b/PDF/samples/Image/Image_vs170.vcxproj.filters index a9ca70a82..9fe51bb34 100644 --- a/PDF/samples/Image/Image_vs170.vcxproj.filters +++ b/PDF/samples/Image/Image_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {2b6625d1-0b62-4845-b327-4ac2fd64f560} + {8fe62fc9-f770-4201-8cdb-585247d12ed3} - {51829f8d-74f3-468e-9715-f65aeb6848d0} + {a8651359-e560-4afb-bb05-8a795443f89d} diff --git a/PDF/samples/Template/Template_vs160.vcxproj b/PDF/samples/Template/Template_vs160.vcxproj index 46a3cba5f..23df6e4fb 100644 --- a/PDF/samples/Template/Template_vs160.vcxproj +++ b/PDF/samples/Template/Template_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 Templated Templated Templated diff --git a/PDF/samples/Template/Template_vs160.vcxproj.filters b/PDF/samples/Template/Template_vs160.vcxproj.filters index 625ff68e2..2d265edcf 100644 --- a/PDF/samples/Template/Template_vs160.vcxproj.filters +++ b/PDF/samples/Template/Template_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {24a96f60-aa27-45e7-bbdd-1c9cf07e400a} + {9c60fbc4-8567-44c8-a56b-5013379c6412} - {cb33c6bc-1d52-4bdc-8cd1-fce60150b1d8} + {957d3b3d-9eee-4561-90bb-ad6514117d29} diff --git a/PDF/samples/Template/Template_vs170.vcxproj b/PDF/samples/Template/Template_vs170.vcxproj index cd501c130..8468a7197 100644 --- a/PDF/samples/Template/Template_vs170.vcxproj +++ b/PDF/samples/Template/Template_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 Template {27E36FB4-BDAB-3B36-910A-1F1C26853B1E} Template @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + Templated + Templated + Templated + Template + Template + Template Templated Templated Templated @@ -171,6 +250,36 @@ Template Template + + binA64\ + objA64\Template\$(Configuration)\ + true + + + binA64\ + objA64\Template\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\Template\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\Template\$(Configuration)\ + false + + + binA64\static_md\ + objA64\Template\$(Configuration)\ + true + + + binA64\static_md\ + objA64\Template\$(Configuration)\ + false + bin\ obj\Template\$(Configuration)\ @@ -231,6 +340,211 @@ obj64\Template\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + binA64\Template.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;%(AdditionalDependencies) + binA64\static_mt\Templated.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;%(AdditionalDependencies) + binA64\static_mt\Template.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;%(AdditionalDependencies) + binA64\static_md\Templated.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\PDF\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,14 +561,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin\Templated.exe ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Templated.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -278,7 +596,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin\Template.exe @@ -306,7 +628,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -314,7 +640,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Templated.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -338,7 +664,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -367,7 +697,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -375,7 +709,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Templated.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -399,7 +733,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -428,14 +766,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin64\Templated.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Templated.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -459,7 +801,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin64\Template.exe @@ -487,7 +833,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -495,7 +845,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Templated.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -519,7 +869,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -548,7 +902,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -556,7 +914,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Templated.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -580,7 +938,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -596,6 +958,8 @@ true + stdcpp17 + stdc11 diff --git a/PDF/samples/Template/Template_vs170.vcxproj.filters b/PDF/samples/Template/Template_vs170.vcxproj.filters index 47f757d9d..b137f11e8 100644 --- a/PDF/samples/Template/Template_vs170.vcxproj.filters +++ b/PDF/samples/Template/Template_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {e54b6c43-b48e-4ef8-9b6b-c7e450cb868d} + {60cc3d58-dfc9-48ed-adbe-e9d8ed182c39} - {45cb5126-ffc1-43fe-a963-410a13559d42} + {4d3a6b69-8346-4578-b0e7-2137761122fe} diff --git a/PDF/samples/Text/Text_vs160.vcxproj b/PDF/samples/Text/Text_vs160.vcxproj index 23ebcf875..d873326e6 100644 --- a/PDF/samples/Text/Text_vs160.vcxproj +++ b/PDF/samples/Text/Text_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 Textd Textd Textd diff --git a/PDF/samples/Text/Text_vs160.vcxproj.filters b/PDF/samples/Text/Text_vs160.vcxproj.filters index 228d43823..a22501c71 100644 --- a/PDF/samples/Text/Text_vs160.vcxproj.filters +++ b/PDF/samples/Text/Text_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {f41d8664-445a-4a2a-accd-3510536632f8} + {db79f37c-21c3-4e21-ae1f-9f2ece449e6c} - {a32900dd-d4ae-4ef9-af17-b7a74eae2284} + {4aae19c5-be9b-4be6-8dd7-3562292f5c09} diff --git a/PDF/samples/Text/Text_vs170.vcxproj b/PDF/samples/Text/Text_vs170.vcxproj index 926f3fd60..0375d77f2 100644 --- a/PDF/samples/Text/Text_vs170.vcxproj +++ b/PDF/samples/Text/Text_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 Text {0DE18C25-1694-3598-831D-4FA48D113606} Text @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + Textd + Textd + Textd + Text + Text + Text Textd Textd Textd @@ -171,6 +250,36 @@ Text Text + + binA64\ + objA64\Text\$(Configuration)\ + true + + + binA64\ + objA64\Text\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\Text\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\Text\$(Configuration)\ + false + + + binA64\static_md\ + objA64\Text\$(Configuration)\ + true + + + binA64\static_md\ + objA64\Text\$(Configuration)\ + false + bin\ obj\Text\$(Configuration)\ @@ -231,6 +340,211 @@ obj64\Text\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + binA64\Text.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;%(AdditionalDependencies) + binA64\static_mt\Textd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;%(AdditionalDependencies) + binA64\static_mt\Text.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;%(AdditionalDependencies) + binA64\static_md\Textd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\PDF\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,14 +561,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin\Textd.exe ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Textd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -278,7 +596,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin\Text.exe @@ -306,7 +628,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -314,7 +640,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Textd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -338,7 +664,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -367,7 +697,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -375,7 +709,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Textd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -399,7 +733,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -428,14 +766,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin64\Textd.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Textd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -459,7 +801,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin64\Text.exe @@ -487,7 +833,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -495,7 +845,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Textd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -519,7 +869,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -548,7 +902,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -556,7 +914,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Textd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -580,7 +938,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -596,6 +958,8 @@ true + stdcpp17 + stdc11 diff --git a/PDF/samples/Text/Text_vs170.vcxproj.filters b/PDF/samples/Text/Text_vs170.vcxproj.filters index b2df15601..4bef99e16 100644 --- a/PDF/samples/Text/Text_vs170.vcxproj.filters +++ b/PDF/samples/Text/Text_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {cfdbaf64-7875-4271-a0e3-8fb72be760de} + {eddfa872-4233-4385-aa4d-2ea88861d6ba} - {d1bae990-32cc-49b6-933d-b2bd286658d1} + {d7c47eeb-bd39-4506-8698-d392c9d0415d} diff --git a/PDF/samples/samples_vs170.sln b/PDF/samples/samples_vs170.sln index 1fa891010..9e5f1f78e 100644 --- a/PDF/samples/samples_vs170.sln +++ b/PDF/samples/samples_vs170.sln @@ -8,6 +8,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Template", "Template\Templa EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|ARM64 = debug_shared|ARM64 + release_shared|ARM64 = release_shared|ARM64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 + release_static_mt|ARM64 = release_static_mt|ARM64 + debug_static_md|ARM64 = debug_static_md|ARM64 + release_static_md|ARM64 = release_static_md|ARM64 debug_shared|Win32 = debug_shared|Win32 release_shared|Win32 = release_shared|Win32 debug_static_mt|Win32 = debug_static_mt|Win32 @@ -22,6 +28,24 @@ Global release_static_md|x64 = release_static_md|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_shared|Win32.Build.0 = debug_shared|Win32 {DA74060D-73AF-3E8F-A804-FBC960DAC393}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -58,6 +82,24 @@ Global {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_md|x64.ActiveCfg = release_static_md|x64 {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_md|x64.Build.0 = release_static_md|x64 {DA74060D-73AF-3E8F-A804-FBC960DAC393}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {0DE18C25-1694-3598-831D-4FA48D113606}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {0DE18C25-1694-3598-831D-4FA48D113606}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {0DE18C25-1694-3598-831D-4FA48D113606}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {0DE18C25-1694-3598-831D-4FA48D113606}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {0DE18C25-1694-3598-831D-4FA48D113606}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {0DE18C25-1694-3598-831D-4FA48D113606}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {0DE18C25-1694-3598-831D-4FA48D113606}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {0DE18C25-1694-3598-831D-4FA48D113606}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {0DE18C25-1694-3598-831D-4FA48D113606}.debug_shared|Win32.Build.0 = debug_shared|Win32 {0DE18C25-1694-3598-831D-4FA48D113606}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -94,6 +136,24 @@ Global {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_md|x64.ActiveCfg = release_static_md|x64 {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_md|x64.Build.0 = release_static_md|x64 {0DE18C25-1694-3598-831D-4FA48D113606}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_shared|Win32.Build.0 = debug_shared|Win32 {27E36FB4-BDAB-3B36-910A-1F1C26853B1E}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 diff --git a/PDF/testsuite/TestSuite_vs160.vcxproj b/PDF/testsuite/TestSuite_vs160.vcxproj index c75bb0d2a..1c2a229a4 100644 --- a/PDF/testsuite/TestSuite_vs160.vcxproj +++ b/PDF/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited diff --git a/PDF/testsuite/TestSuite_vs160.vcxproj.filters b/PDF/testsuite/TestSuite_vs160.vcxproj.filters index d930d2e53..6a8bb3577 100644 --- a/PDF/testsuite/TestSuite_vs160.vcxproj.filters +++ b/PDF/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,28 +2,28 @@ - {7dd830c8-af6f-47a1-893c-700c55ed9651} + {4d752d43-90aa-40d9-b7f7-56488d182fb9} - {88fa2af2-7dd8-4246-9c46-7329ac9fd854} + {4cc1e103-0a41-4f08-b8d0-2b3301bc29ad} - {0548b40a-d25a-4264-b105-3ca84b5480fe} + {dfef6915-5f90-4509-85f1-f145ec6961fc} - {8dbfdb1f-7018-42fb-805e-80431ae8f76a} + {f30b19a1-99bd-4c3e-8062-014dfaba0526} - {19b9559a-8201-4c01-85c8-c1588bebea93} + {f6511bc9-802b-4154-a8ee-c643ed329b0b} - {31e09b0c-3d95-407e-9403-5280e0e97abb} + {afd1fcaf-e294-4c09-aead-f2ebd15c62db} - {13faee22-dfb9-4d9a-9efc-a8b818006bfc} + {28556ab4-c8a4-4b86-85e6-609ba19b7acc} - {1cf41998-c9f6-468a-9e01-d1c48d83fb40} + {3194c932-6505-4bbb-8eb5-944a916619b2} diff --git a/PDF/testsuite/TestSuite_vs170.vcxproj b/PDF/testsuite/TestSuite_vs170.vcxproj index ecb544376..a612d2f8d 100644 --- a/PDF/testsuite/TestSuite_vs170.vcxproj +++ b/PDF/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -356,15 +356,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -388,11 +392,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -417,15 +425,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -449,11 +461,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -478,15 +494,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -510,11 +530,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -539,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -547,7 +575,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -571,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -608,7 +644,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -632,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -661,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -669,7 +713,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -693,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -722,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -730,7 +782,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -754,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -783,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -791,7 +851,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -815,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -844,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -852,7 +920,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -876,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -896,12 +968,18 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/PDF/testsuite/TestSuite_vs170.vcxproj.filters b/PDF/testsuite/TestSuite_vs170.vcxproj.filters index bb2747a37..4225f04f1 100644 --- a/PDF/testsuite/TestSuite_vs170.vcxproj.filters +++ b/PDF/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,28 +2,28 @@ - {54130654-6c95-4a3b-a85d-8433201cc73d} + {d77bcbc9-9bcb-4700-9f56-023530089d8d} - {65a7626b-78af-4213-86c3-7a9a926cfa03} + {5e3afb80-c357-479f-85f8-bdb4d2701dc6} - {7880511e-3e84-4e15-9755-69358faded5b} + {8af3f474-e05f-453e-b49e-950fb18928fa} - {f48df098-35c8-4f8a-9d68-09ef15ebd5a6} + {0014a752-f712-4f56-ac46-fca051d4db45} - {205ef15d-34e3-42c8-bc6a-9a3a98610665} + {90a01ca9-23b5-4894-bf69-49346a08a600} - {3bb77fe1-2829-4fb4-b927-d00b8c99e242} + {020adf7f-9aad-4ba3-b75a-b349f6cc5f1f} - {6a03535b-ad47-43d8-be0d-ed54523c16df} + {dea8d789-4c2a-4366-b4ae-44b8653e56e2} - {51b514b8-f674-4601-823f-8c429ef8149d} + {7aa08fe9-70c3-48d0-bf74-fcb8d49be42f} diff --git a/PageCompiler/File2Page/File2Page_vs160.vcxproj b/PageCompiler/File2Page/File2Page_vs160.vcxproj index a0dd8d61d..f368f3c34 100644 --- a/PageCompiler/File2Page/File2Page_vs160.vcxproj +++ b/PageCompiler/File2Page/File2Page_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 f2cpspd f2cpspd f2cpspd diff --git a/PageCompiler/File2Page/File2Page_vs160.vcxproj.filters b/PageCompiler/File2Page/File2Page_vs160.vcxproj.filters index 1e4421bae..b6821c040 100644 --- a/PageCompiler/File2Page/File2Page_vs160.vcxproj.filters +++ b/PageCompiler/File2Page/File2Page_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {0b919fc7-d15e-486b-b980-1e5ca63fa7d1} + {3c77febc-8b5e-4138-b874-3d0d59e883f5} - {9476fc2e-02bf-41dd-8370-bbf2441eb488} + {22a34fb6-b2ae-49f8-bef0-a78efacd64df} diff --git a/PageCompiler/File2Page/File2Page_vs170.vcxproj b/PageCompiler/File2Page/File2Page_vs170.vcxproj index fa92b209e..8ce37b61b 100644 --- a/PageCompiler/File2Page/File2Page_vs170.vcxproj +++ b/PageCompiler/File2Page/File2Page_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 f2cpspd f2cpspd f2cpspd diff --git a/PageCompiler/File2Page/File2Page_vs170.vcxproj.filters b/PageCompiler/File2Page/File2Page_vs170.vcxproj.filters index 3bf35e99a..cdcba3aca 100644 --- a/PageCompiler/File2Page/File2Page_vs170.vcxproj.filters +++ b/PageCompiler/File2Page/File2Page_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {4d670046-8040-4f17-9e30-03c088a1f050} + {bd3c4b2f-68cf-4853-9bb2-0df30118485f} - {e6d9313e-e10d-4518-96c4-2f94f8c82d53} + {6d6e91a7-f709-42cd-ad2c-617305637d08} diff --git a/PageCompiler/PageCompiler_vs160.vcxproj b/PageCompiler/PageCompiler_vs160.vcxproj index ff504e39b..052174f98 100644 --- a/PageCompiler/PageCompiler_vs160.vcxproj +++ b/PageCompiler/PageCompiler_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 cpspcd cpspcd cpspcd diff --git a/PageCompiler/PageCompiler_vs160.vcxproj.filters b/PageCompiler/PageCompiler_vs160.vcxproj.filters index 40f8133d6..6e5603258 100644 --- a/PageCompiler/PageCompiler_vs160.vcxproj.filters +++ b/PageCompiler/PageCompiler_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {11a28caa-b960-49c1-b7f8-d916a21d1c46} + {c9f64691-6ceb-4ccf-be16-e22872a78c2e} - {d58f87ea-d435-4d09-9685-8405ceefaf25} + {da1ae344-733f-49d0-91f1-c2cf03ca41a7} - {dcd4e5f7-a1ad-412c-9b69-da01e91595fc} + {7d552ca0-af35-493c-b078-0a17624a9c34} diff --git a/PageCompiler/PageCompiler_vs170.vcxproj b/PageCompiler/PageCompiler_vs170.vcxproj index a336db198..1d3c5eda5 100644 --- a/PageCompiler/PageCompiler_vs170.vcxproj +++ b/PageCompiler/PageCompiler_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 cpspcd cpspcd cpspcd diff --git a/PageCompiler/PageCompiler_vs170.vcxproj.filters b/PageCompiler/PageCompiler_vs170.vcxproj.filters index d33b18cdd..181c42a42 100644 --- a/PageCompiler/PageCompiler_vs170.vcxproj.filters +++ b/PageCompiler/PageCompiler_vs170.vcxproj.filters @@ -2,13 +2,13 @@ - {103c577e-1024-4356-877a-36eb70613768} + {b7bda5e3-f08c-402b-bcb6-5ccf4fd73af7} - {d1492508-83e0-482f-9a79-49539e1a7fe8} + {72e4fa49-08dd-4c24-8f39-ce1f0b354372} - {78a8528f-97de-4d4e-a65a-1e1f72c3893a} + {71bec974-7aeb-4567-a8a7-f24661bcffa2} diff --git a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj index a7707f708..ad34d1186 100644 --- a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj +++ b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 HTTPTimeServerd HTTPTimeServerd HTTPTimeServerd diff --git a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj.filters b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj.filters index 953072f2c..1be91d0cf 100644 --- a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj.filters +++ b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {beddb1c5-42cf-406c-b799-f25409919fe7} + {290a23c9-f8d1-4bf3-be5a-5cfc5a925986} - {144d5a4a-fe08-4be4-b51e-530625c0a75c} + {27e40784-f86a-4951-b18e-7d1f50123057} - {0e8e6e27-e948-4160-b81f-42204222040d} + {5e925f85-357a-46cc-92d0-baf1905062fc} diff --git a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj index 027a9d0ed..d08e30a29 100644 --- a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj +++ b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 HTTPTimeServer {18A0143A-444A-38E3-838C-1ACFBE4EE18C} HTTPTimeServer @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + HTTPTimeServerd + HTTPTimeServerd + HTTPTimeServerd + HTTPTimeServer + HTTPTimeServer + HTTPTimeServer HTTPTimeServerd HTTPTimeServerd HTTPTimeServerd @@ -171,6 +250,36 @@ HTTPTimeServer HTTPTimeServer + + binA64\ + objA64\HTTPTimeServer\$(Configuration)\ + true + + + binA64\ + objA64\HTTPTimeServer\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\HTTPTimeServer\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\HTTPTimeServer\$(Configuration)\ + false + + + binA64\static_md\ + objA64\HTTPTimeServer\$(Configuration)\ + true + + + binA64\static_md\ + objA64\HTTPTimeServer\$(Configuration)\ + false + bin\ obj\HTTPTimeServer\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\HTTPTimeServer\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\HTTPTimeServer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\HTTPTimeServerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\HTTPTimeServer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\HTTPTimeServerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\HTTPTimeServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -603,9 +967,13 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj.filters b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj.filters index 38de691bd..8a68db1f5 100644 --- a/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj.filters +++ b/PageCompiler/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj.filters @@ -2,13 +2,13 @@ - {0a5a20e1-ae29-49a9-b112-d5df18f0dde9} + {fd380701-02d9-41a9-a902-61719259b316} - {e44f3bdd-a1a8-4747-a816-8d333d01982a} + {fac4ada7-d53d-4725-bc9a-e96f7b614789} - {56dee216-d640-4554-8878-fd96133d033f} + {346a69c5-2b39-40d8-80e1-528e707ef329} diff --git a/PageCompiler/samples/samples_vs170.sln b/PageCompiler/samples/samples_vs170.sln index f430a715b..8ebca4a97 100644 --- a/PageCompiler/samples/samples_vs170.sln +++ b/PageCompiler/samples/samples_vs170.sln @@ -4,6 +4,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPTimeServer", "HTTPTimeS EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|ARM64 = debug_shared|ARM64 + release_shared|ARM64 = release_shared|ARM64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 + release_static_mt|ARM64 = release_static_mt|ARM64 + debug_static_md|ARM64 = debug_static_md|ARM64 + release_static_md|ARM64 = release_static_md|ARM64 debug_shared|Win32 = debug_shared|Win32 release_shared|Win32 = release_shared|Win32 debug_static_mt|Win32 = debug_static_mt|Win32 @@ -18,6 +24,24 @@ Global release_static_md|x64 = release_static_md|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Build.0 = debug_shared|Win32 {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 diff --git a/PocoDoc/PocoDoc_vs160.vcxproj b/PocoDoc/PocoDoc_vs160.vcxproj index d8e139c76..edebfcdf1 100644 --- a/PocoDoc/PocoDoc_vs160.vcxproj +++ b/PocoDoc/PocoDoc_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoDocd PocoDocd PocoDocd diff --git a/PocoDoc/PocoDoc_vs160.vcxproj.filters b/PocoDoc/PocoDoc_vs160.vcxproj.filters index a1a633baf..86dd0760f 100644 --- a/PocoDoc/PocoDoc_vs160.vcxproj.filters +++ b/PocoDoc/PocoDoc_vs160.vcxproj.filters @@ -2,22 +2,22 @@ - {5f491131-b33f-40d6-96c4-35259f22da39} + {60784c21-9594-42df-b825-d0f44b70df1c} - {e4f2b341-9852-4454-bcaa-369bee25628e} + {2a417507-cb80-467d-b536-9153294bfc14} - {00f8ce84-e77c-4e09-87e5-8b229e4aae94} + {b343204e-6b48-4460-bada-38c9cfe379c0} - {2073ed53-535a-492c-8931-3664e8fb8b14} + {572c4d2f-4b19-47ab-9865-e808cb6873e7} - {c42c7353-6ee9-4e4f-be28-2358124d8ef3} + {07846630-d09f-4420-a819-1485dc758039} - {1076ec8e-bda4-40d1-b039-c198fea3ad85} + {0979336d-8413-4b57-876f-3093be25d25e} diff --git a/PocoDoc/PocoDoc_vs170.vcxproj b/PocoDoc/PocoDoc_vs170.vcxproj index 673897032..87cd2a4d0 100644 --- a/PocoDoc/PocoDoc_vs170.vcxproj +++ b/PocoDoc/PocoDoc_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoDocd PocoDocd PocoDocd diff --git a/PocoDoc/PocoDoc_vs170.vcxproj.filters b/PocoDoc/PocoDoc_vs170.vcxproj.filters index 266a11fab..1f42e3ada 100644 --- a/PocoDoc/PocoDoc_vs170.vcxproj.filters +++ b/PocoDoc/PocoDoc_vs170.vcxproj.filters @@ -2,22 +2,22 @@ - {4bc1a488-a8d2-485d-b2d9-4a5fd70cf548} + {abb515b0-37cf-43bc-8081-2417ba256a35} - {200221dd-1061-4fb9-a144-d24b2455f9c9} + {034e916f-4a84-41c9-91f7-d2a09774ada0} - {1da7b280-7485-46f3-aaf7-2414f4b7b8d0} + {e1d183cb-db45-4d44-8191-46a8ff6fbbbd} - {897337fb-f9a0-4575-90a8-842df1d65186} + {5da1f85a-7191-4d50-8747-370fd4464c83} - {8a417062-b6db-4c71-95e4-d8151b42ac9e} + {13f498d3-46dc-4820-abf1-9149f60b7357} - {f753423c-d64a-4dba-920d-7ec1d9ccfb4b} + {bd80a19d-554f-4399-b193-eb5379ca1d4c} diff --git a/ProGen/ProGen_vs160.vcxproj b/ProGen/ProGen_vs160.vcxproj index f39178f98..c0993b5f9 100644 --- a/ProGen/ProGen_vs160.vcxproj +++ b/ProGen/ProGen_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 progend progend progend diff --git a/ProGen/ProGen_vs160.vcxproj.filters b/ProGen/ProGen_vs160.vcxproj.filters index f1ba0719c..3a6321358 100644 --- a/ProGen/ProGen_vs160.vcxproj.filters +++ b/ProGen/ProGen_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {c99f102d-4371-4257-87e7-96a1ba279185} + {d68ea25c-8e61-44f2-ac03-f9c0f0ddc2e4} - {3ef0a18c-0bcc-4127-8c1c-b67b82e4fc66} + {af118634-cb24-4a79-8fe3-bbb138fe71e4} - {214c5997-19fa-4637-8272-7cb257fcf05e} + {46249f8f-8bcb-410f-8f8e-1d950957a4b3} diff --git a/ProGen/ProGen_vs170.vcxproj b/ProGen/ProGen_vs170.vcxproj index 1cf374d64..865d38391 100644 --- a/ProGen/ProGen_vs170.vcxproj +++ b/ProGen/ProGen_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 progend progend progend diff --git a/ProGen/ProGen_vs170.vcxproj.filters b/ProGen/ProGen_vs170.vcxproj.filters index cd0431579..36ba2284e 100644 --- a/ProGen/ProGen_vs170.vcxproj.filters +++ b/ProGen/ProGen_vs170.vcxproj.filters @@ -2,13 +2,13 @@ - {b4c3627d-4f8f-4220-afe9-a97bdef310bc} + {fbd3e0a5-b3e1-47f2-88ec-c39120923d26} - {265452f8-f250-4108-8f40-f075d121082f} + {c1729776-f1f6-420e-b53b-cb1761aad4f1} - {f276f34d-49d8-4807-823c-6c6020b75a57} + {93063785-1f9c-45b8-9d13-d09890300f3e} diff --git a/Prometheus/Prometheus_vs160.vcxproj b/Prometheus/Prometheus_vs160.vcxproj index 9b649ef4a..a218ac4dc 100644 --- a/Prometheus/Prometheus_vs160.vcxproj +++ b/Prometheus/Prometheus_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoPrometheusd PocoPrometheusmdd PocoPrometheusmtd diff --git a/Prometheus/Prometheus_vs160.vcxproj.filters b/Prometheus/Prometheus_vs160.vcxproj.filters index e59b9cacc..d2654c0d5 100644 --- a/Prometheus/Prometheus_vs160.vcxproj.filters +++ b/Prometheus/Prometheus_vs160.vcxproj.filters @@ -2,13 +2,13 @@ - {12c6fec0-ab44-4c7b-9568-92394d034826} + {ea24b5dd-d6e5-452c-bd25-81fad9e167d9} - {5d71064f-72b9-4387-8cae-547281618dbc} + {384be2e8-8144-457b-a2d9-7f1407e6f087} - {629aaf51-a641-473b-8550-ef93abef9b2b} + {2a43c175-e4a3-4423-bce9-c381d34797db} diff --git a/Prometheus/Prometheus_vs170.vcxproj b/Prometheus/Prometheus_vs170.vcxproj index b96d34932..dcfe8408b 100644 --- a/Prometheus/Prometheus_vs170.vcxproj +++ b/Prometheus/Prometheus_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoPrometheusA64d PocoPrometheusmdd PocoPrometheusmtd diff --git a/Prometheus/Prometheus_vs170.vcxproj.filters b/Prometheus/Prometheus_vs170.vcxproj.filters index 610535c6e..32e6b7cd6 100644 --- a/Prometheus/Prometheus_vs170.vcxproj.filters +++ b/Prometheus/Prometheus_vs170.vcxproj.filters @@ -2,13 +2,13 @@ - {d305b0c7-712f-42b3-8ec3-327ca5750233} + {ff74e667-a6cd-4465-9a3c-68fc03208b95} - {d57dd874-479d-4fbe-bda8-92e240800515} + {98c081a4-a8db-49f2-b258-c587cb6f4e9d} - {bed725cd-dd21-4ed5-950f-4bf9e21d8af6} + {58fa03ef-b9d3-4f4d-8c6b-1e499396f07a} diff --git a/Prometheus/samples/MetricsSample/MetricsSample_vs160.vcxproj b/Prometheus/samples/MetricsSample/MetricsSample_vs160.vcxproj index ec8c6740e..c75c5bc29 100644 --- a/Prometheus/samples/MetricsSample/MetricsSample_vs160.vcxproj +++ b/Prometheus/samples/MetricsSample/MetricsSample_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 MetricsSampled MetricsSampled MetricsSampled diff --git a/Prometheus/samples/MetricsSample/MetricsSample_vs160.vcxproj.filters b/Prometheus/samples/MetricsSample/MetricsSample_vs160.vcxproj.filters index e986332f5..decdb1e57 100644 --- a/Prometheus/samples/MetricsSample/MetricsSample_vs160.vcxproj.filters +++ b/Prometheus/samples/MetricsSample/MetricsSample_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {869cd671-8e9d-4a4c-8728-a469c992f507} + {06034bd4-f950-4345-a17f-936f7843a314} diff --git a/Prometheus/samples/MetricsSample/MetricsSample_vs170.vcxproj b/Prometheus/samples/MetricsSample/MetricsSample_vs170.vcxproj index 4df8c61a3..df3fd22a8 100644 --- a/Prometheus/samples/MetricsSample/MetricsSample_vs170.vcxproj +++ b/Prometheus/samples/MetricsSample/MetricsSample_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 MetricsSample {D256BB4C-7287-3E74-BC1A-31E116A8CE36} MetricsSample @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + MetricsSampled + MetricsSampled + MetricsSampled + MetricsSample + MetricsSample + MetricsSample MetricsSampled MetricsSampled MetricsSampled @@ -171,6 +250,36 @@ MetricsSample MetricsSample + + binA64\ + objA64\MetricsSample\$(Configuration)\ + true + + + binA64\ + objA64\MetricsSample\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\MetricsSample\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\MetricsSample\$(Configuration)\ + false + + + binA64\static_md\ + objA64\MetricsSample\$(Configuration)\ + true + + + binA64\static_md\ + objA64\MetricsSample\$(Configuration)\ + false + bin\ obj\MetricsSample\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\MetricsSample\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\MetricsSample.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\MetricsSampled.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\MetricsSample.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\MetricsSampled.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Util\include;..\..\..\XML\include;..\..\..\JSON\include;..\..\..\Net\include;..\..\..\Prometheus\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\MetricsSampled.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\MetricsSampled.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\MetricsSampled.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\MetricsSampled.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\MetricsSampled.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\MetricsSampled.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Prometheus/samples/MetricsSample/MetricsSample_vs170.vcxproj.filters b/Prometheus/samples/MetricsSample/MetricsSample_vs170.vcxproj.filters index 7f56be971..7534f1cf6 100644 --- a/Prometheus/samples/MetricsSample/MetricsSample_vs170.vcxproj.filters +++ b/Prometheus/samples/MetricsSample/MetricsSample_vs170.vcxproj.filters @@ -2,7 +2,7 @@ - {31d254ca-b41c-447d-97f8-271ae656c427} + {87231177-2da8-4565-a8a5-7219a98a2730} diff --git a/Prometheus/testsuite/TestSuite_vs160.vcxproj b/Prometheus/testsuite/TestSuite_vs160.vcxproj index 73a0202c0..d42f1aca9 100644 --- a/Prometheus/testsuite/TestSuite_vs160.vcxproj +++ b/Prometheus/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited diff --git a/Prometheus/testsuite/TestSuite_vs160.vcxproj.filters b/Prometheus/testsuite/TestSuite_vs160.vcxproj.filters index ed1cb3ae4..8fd097bbc 100644 --- a/Prometheus/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Prometheus/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {573502a6-8940-494b-994f-10c51bfcc24f} + {f0d128ac-6b94-47e1-b023-6a9b6f83f917} - {b6d546aa-3bd8-4c85-9082-6fefa82574e7} + {d6c7b16d-5a57-40db-a4f5-2daa5648926f} diff --git a/Prometheus/testsuite/TestSuite_vs170.vcxproj b/Prometheus/testsuite/TestSuite_vs170.vcxproj index e762b32ad..02f30c3c2 100644 --- a/Prometheus/testsuite/TestSuite_vs170.vcxproj +++ b/Prometheus/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -356,15 +356,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;%(AdditionalDependencies) - binA64\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -388,11 +392,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;%(AdditionalDependencies) - binA64\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -417,15 +425,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -449,11 +461,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -478,15 +494,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - binA64\static_md\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -510,11 +530,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) - binA64\static_md\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -539,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;%(AdditionalDependencies) @@ -547,7 +575,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -571,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;%(AdditionalDependencies) @@ -600,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -608,7 +644,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -632,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -661,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -669,7 +713,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -693,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -722,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;%(AdditionalDependencies) @@ -730,7 +782,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -754,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;%(AdditionalDependencies) @@ -783,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -791,7 +851,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -815,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -844,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -852,7 +920,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -876,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -901,27 +973,43 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Prometheus/testsuite/TestSuite_vs170.vcxproj.filters b/Prometheus/testsuite/TestSuite_vs170.vcxproj.filters index bd70dea47..f08cf1a1a 100644 --- a/Prometheus/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Prometheus/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {f2c2ac7f-b324-4f93-a1ea-99b8bbd63491} + {83e677e9-af54-4f03-9793-93a676b34003} - {8abfe308-f380-4ed9-b45b-41f0e51b668c} + {b9543de0-e4ce-41a6-a55f-3191791d5e91} diff --git a/Redis/Redis_vs160.vcxproj b/Redis/Redis_vs160.vcxproj index 33fc80a73..23249e537 100644 --- a/Redis/Redis_vs160.vcxproj +++ b/Redis/Redis_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoRedisd PocoRedismdd PocoRedismtd diff --git a/Redis/Redis_vs160.vcxproj.filters b/Redis/Redis_vs160.vcxproj.filters index 9c0cade40..4f9c5e433 100644 --- a/Redis/Redis_vs160.vcxproj.filters +++ b/Redis/Redis_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {e1cadf5d-7549-4121-8082-54a0c9e04e58} + {301e3b9c-736a-4eaf-80bc-a0147106af0f} - {60094115-1f6d-424e-8638-f076fd287563} + {9aee13db-1206-4be5-94c0-711a6fb0202e} diff --git a/Redis/Redis_vs170.vcxproj b/Redis/Redis_vs170.vcxproj index 1ce3ece51..5893a6e45 100644 --- a/Redis/Redis_vs170.vcxproj +++ b/Redis/Redis_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoRedisA64d PocoRedismdd PocoRedismtd diff --git a/Redis/Redis_vs170.vcxproj.filters b/Redis/Redis_vs170.vcxproj.filters index b6b354b65..bbfeda924 100644 --- a/Redis/Redis_vs170.vcxproj.filters +++ b/Redis/Redis_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {07150746-2836-426e-a3b4-cde4cabf3d83} + {a35c534b-34f9-43f1-9713-26c4b0f82e12} - {d7af6162-3f3c-4ffa-9d99-65691d86f4fa} + {e6043721-766d-4997-a781-401e4fedbe86} diff --git a/Redis/testsuite/TestSuite_vs160.vcxproj b/Redis/testsuite/TestSuite_vs160.vcxproj index 8e7f57f2d..c9c1b3898 100644 --- a/Redis/testsuite/TestSuite_vs160.vcxproj +++ b/Redis/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited diff --git a/Redis/testsuite/TestSuite_vs160.vcxproj.filters b/Redis/testsuite/TestSuite_vs160.vcxproj.filters index a094825d0..f6f49380f 100644 --- a/Redis/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Redis/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {f882b2f7-b115-4a69-91c5-72dc0764f265} + {b7ad3030-6e64-436b-a876-35b8053b5a97} - {df501ea3-b827-4fdb-b70c-99f6becd5ee1} + {6c15ccda-5661-4854-bd0d-68fd9cce4292} diff --git a/Redis/testsuite/TestSuite_vs170.vcxproj b/Redis/testsuite/TestSuite_vs170.vcxproj index d286edb51..bc4b5bb2e 100644 --- a/Redis/testsuite/TestSuite_vs170.vcxproj +++ b/Redis/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -356,15 +356,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -388,11 +392,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -417,15 +425,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -449,11 +461,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -478,15 +494,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -510,11 +530,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -539,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -547,7 +575,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -571,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -608,7 +644,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -632,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -661,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -669,7 +713,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -693,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -722,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -730,7 +782,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -754,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -783,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -791,7 +851,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -815,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -844,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -852,7 +920,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -876,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -892,12 +964,18 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Redis/testsuite/TestSuite_vs170.vcxproj.filters b/Redis/testsuite/TestSuite_vs170.vcxproj.filters index 6334de6b5..9a4696bfe 100644 --- a/Redis/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Redis/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {0346d5ed-43df-4fd2-9b71-ea962d2b847b} + {ea2db67e-83e9-4c2c-949c-3cafa93d8e4d} - {0d387e8c-3bf4-4b1d-a17d-589f0233a554} + {d565e5e1-4c35-4d98-b0b9-a07a3dda5343} diff --git a/Util/Util_vs160.vcxproj b/Util/Util_vs160.vcxproj index 8b082ef9b..6fc152ad3 100644 --- a/Util/Util_vs160.vcxproj +++ b/Util/Util_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoUtild PocoUtilmdd PocoUtilmtd diff --git a/Util/Util_vs160.vcxproj.filters b/Util/Util_vs160.vcxproj.filters index b3205c2c6..86b10540a 100644 --- a/Util/Util_vs160.vcxproj.filters +++ b/Util/Util_vs160.vcxproj.filters @@ -2,58 +2,58 @@ - {f8121bb3-6f75-498c-85da-718a79ce90ee} + {7ded4303-3a4a-4467-8d3c-148b75487820} - {65a332b2-c845-41c4-bfd8-8ce06c4c568f} + {94dbf62d-745b-43b5-ad17-537c46c5b34b} - {dae2e368-3475-43aa-8135-fd972a5b92ae} + {64bcae61-6772-4d11-b2e2-5507c6e5247e} - {2ce7d858-e098-4373-979e-79dae051ab1e} + {ae094d6c-de2a-4968-b8d7-b2f1a26d1da0} - {f245cb82-df33-4dd2-b80d-1b691d1703ea} + {c7792d22-a4a4-4f5a-8e5b-4a621538dffd} - {c3e17d03-03d4-4b10-a230-92a50a552be9} + {cc5c7c87-1f1a-4eb3-a3c7-cc8b538dc295} - {34b4d4a2-e74c-4a12-8b3d-163f645057ad} + {06c74c47-8446-4ca1-aed1-9a7a897e867d} - {0772a5ee-784e-45e7-8613-ae45abfd3ebd} + {c076a75b-f7cc-4893-a958-536e3bf1f164} - {026e070e-8104-4f8c-9b07-f4683ad3d00f} + {6995b784-af0b-4200-ab7b-8989b08b591d} - {9b012c9a-ac3c-4624-b0ac-0d4c9b4ef32d} + {2489924c-1dba-46bd-89c2-4ccc67ef5a36} - {bc7ed6ee-59c2-45f6-a15d-56169cdf3f0a} + {8d391b72-678f-4e8d-90ff-eead7df1cab2} - {c960bfe7-9652-426c-8939-6ca27b7ca749} + {d18f5fbf-f664-415c-864d-fb54aedf9cf6} - {235093b4-a2f9-47d9-9015-9480442b9eb7} + {c61b423f-39bf-4a15-8199-202ff5d9febd} - {720c9317-0291-4cb9-9149-31c43026e178} + {6650e8ad-1582-41c9-90c8-6a851470fa0d} - {b5f0131b-be85-4157-a232-903072a735e3} + {70f78e78-2f5f-4742-800c-d5d136a8dcad} - {0f0c16d7-30de-4d57-8df6-6061b3bfd1b7} + {fb3c1b05-5c95-4d91-b356-479ce79eca20} - {fba5ea82-98af-4f0d-aabc-ecff078f7cb1} + {92916904-274a-4459-b7b8-d17b27dcbfd1} - {e9a2d44b-72b5-40ec-8b84-ae077b834ffc} + {85c6b2a6-cee8-48c3-bea1-c212f96e1935} diff --git a/Util/Util_vs170.vcxproj b/Util/Util_vs170.vcxproj index d5942e836..01aecd3b6 100644 --- a/Util/Util_vs170.vcxproj +++ b/Util/Util_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoUtilA64d PocoUtilmdd PocoUtilmtd diff --git a/Util/Util_vs170.vcxproj.filters b/Util/Util_vs170.vcxproj.filters index 95006b56c..2d38cc460 100644 --- a/Util/Util_vs170.vcxproj.filters +++ b/Util/Util_vs170.vcxproj.filters @@ -2,58 +2,58 @@ - {31dea0da-1610-476c-9b7d-3472427b4641} + {061d5385-14a5-451c-bf5e-76ca39dd18e5} - {1060f661-3e5a-4ae6-af77-5c998f2a04ca} + {28244e6c-0b68-4d8e-bb58-53653a58b5d1} - {d3d7ed03-475c-4029-a086-9dc659f6676d} + {9bc8d568-e2eb-4771-9b32-ddfddef050eb} - {b621ef20-0803-4f8d-85e6-78fe62c6f2da} + {7f37ba93-8f47-42b5-b6f6-06458ac8d1e3} - {f240bd4e-9bc6-4160-8413-b20219dba320} + {cbec2c58-c457-4369-a189-31a7bc1c3a2b} - {b6592213-0f27-4f53-b6a4-45f8b7d294cb} + {efee542e-1e88-4e3b-8a01-01e2bf10dfd2} - {ae25771c-adbc-4915-9929-49aed8c75203} + {791e1b1f-0123-4954-9cdb-088fb9fc2b7c} - {76b34b02-bc40-459d-a93f-4d9e4f6a1cd0} + {5fc4cf4d-e28f-4cad-9e65-1f47585ebea0} - {882878f4-c179-4e84-9027-909a2ae1ffd2} + {4127d37e-418f-4b94-85b5-3921c8a86599} - {a49cd00b-d063-4906-974a-a1323df809de} + {4b293467-e96b-4939-bd7b-9c34556b5deb} - {38fd5a99-3c0d-46b1-809a-82b419ead9d4} + {45239924-41ba-4439-b1d6-1eed49716018} - {187e3570-fcfa-4503-b6c3-a71d7d02c5a3} + {41ec7412-2cf0-4355-969a-6de1162ef20c} - {090c93e6-0af2-4c44-afce-afffc03c105a} + {68ae07bf-0f1c-4982-9b67-90d209373425} - {a4f42f66-6386-49d2-b550-7cec7a63bf97} + {c9e42a0c-a847-45f1-a2fa-8b3f014fefdc} - {7307faa2-93c9-489b-9705-08ed7384550c} + {a5a132e9-9d19-4eac-85b5-c8c88fc8bc9d} - {aa55825e-edb4-47fd-9569-28a741f031b1} + {c4fcb408-8fa2-4891-ba84-9756e0e5e590} - {f63f6046-0783-4d9b-883f-47f596f96872} + {bfb17cc8-93ed-4790-9db2-fa4902c07361} - {0acefac5-7909-4be8-9a8b-e569d49e3084} + {4afaa3d8-11f8-40c6-a238-4aac5402b66e} diff --git a/Util/samples/SampleApp/SampleApp_vs160.vcxproj b/Util/samples/SampleApp/SampleApp_vs160.vcxproj index b6a32838d..5ed1a1a6d 100644 --- a/Util/samples/SampleApp/SampleApp_vs160.vcxproj +++ b/Util/samples/SampleApp/SampleApp_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 SampleAppd SampleAppd SampleAppd diff --git a/Util/samples/SampleApp/SampleApp_vs160.vcxproj.filters b/Util/samples/SampleApp/SampleApp_vs160.vcxproj.filters index 4d44295a7..add8acd4e 100644 --- a/Util/samples/SampleApp/SampleApp_vs160.vcxproj.filters +++ b/Util/samples/SampleApp/SampleApp_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {23798da7-950a-4a28-b214-023250268588} + {508e604c-e89c-415e-b0a2-8f2c3cb10826} - {6c04f5a4-8f91-41b8-886e-74038a4cafd7} + {971e55a1-60d4-49d7-ae70-115c4e3c91f1} diff --git a/Util/samples/SampleApp/SampleApp_vs170.vcxproj b/Util/samples/SampleApp/SampleApp_vs170.vcxproj index 9134e4dc4..4a7672312 100644 --- a/Util/samples/SampleApp/SampleApp_vs170.vcxproj +++ b/Util/samples/SampleApp/SampleApp_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 SampleApp {C3F12C11-469F-3FB6-8C95-8638F78FF7C0} SampleApp @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + SampleAppd + SampleAppd + SampleAppd + SampleApp + SampleApp + SampleApp SampleAppd SampleAppd SampleAppd @@ -171,6 +250,36 @@ SampleApp SampleApp + + binA64\ + objA64\SampleApp\$(Configuration)\ + true + + + binA64\ + objA64\SampleApp\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\SampleApp\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\SampleApp\$(Configuration)\ + false + + + binA64\static_md\ + objA64\SampleApp\$(Configuration)\ + true + + + binA64\static_md\ + objA64\SampleApp\$(Configuration)\ + false + bin\ obj\SampleApp\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\SampleApp\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\SampleApp.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\SampleAppd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\SampleApp.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\SampleAppd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\SampleAppd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\SampleAppd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\SampleAppd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\SampleAppd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\SampleAppd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\SampleAppd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -603,6 +967,8 @@ true + stdcpp17 + stdc11 diff --git a/Util/samples/SampleApp/SampleApp_vs170.vcxproj.filters b/Util/samples/SampleApp/SampleApp_vs170.vcxproj.filters index f0c665624..47429285c 100644 --- a/Util/samples/SampleApp/SampleApp_vs170.vcxproj.filters +++ b/Util/samples/SampleApp/SampleApp_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {f7b0911f-4eb0-48d7-b6d8-8a84125229b3} + {b9bbecff-8558-45d6-9d29-ba9001f1f256} - {d8ce126b-477b-4ec7-af87-52d4e2d2276e} + {beb7d93f-59e9-48ec-8ceb-71aeca2644ce} diff --git a/Util/samples/SampleServer/SampleServer_vs160.vcxproj b/Util/samples/SampleServer/SampleServer_vs160.vcxproj index 08dc4038c..4c40e2ae1 100644 --- a/Util/samples/SampleServer/SampleServer_vs160.vcxproj +++ b/Util/samples/SampleServer/SampleServer_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 SampleServerd SampleServerd SampleServerd diff --git a/Util/samples/SampleServer/SampleServer_vs160.vcxproj.filters b/Util/samples/SampleServer/SampleServer_vs160.vcxproj.filters index b0381ae32..54394086a 100644 --- a/Util/samples/SampleServer/SampleServer_vs160.vcxproj.filters +++ b/Util/samples/SampleServer/SampleServer_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {8a3aec76-5187-493b-975c-1d8c3dbb1e28} + {011e63db-6d24-4644-a808-53134e12dc3a} - {6bdf0621-31aa-44d7-8ae6-26b6805ec65e} + {d0a798f9-9736-49ef-a3f8-b5bf06785ac0} diff --git a/Util/samples/SampleServer/SampleServer_vs170.vcxproj b/Util/samples/SampleServer/SampleServer_vs170.vcxproj index ecb08e2eb..0192019b5 100644 --- a/Util/samples/SampleServer/SampleServer_vs170.vcxproj +++ b/Util/samples/SampleServer/SampleServer_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 SampleServer {F475C5DD-0558-37AF-870B-666DE931B7BA} SampleServer @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + SampleServerd + SampleServerd + SampleServerd + SampleServer + SampleServer + SampleServer SampleServerd SampleServerd SampleServerd @@ -171,6 +250,36 @@ SampleServer SampleServer + + binA64\ + objA64\SampleServer\$(Configuration)\ + true + + + binA64\ + objA64\SampleServer\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\SampleServer\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\SampleServer\$(Configuration)\ + false + + + binA64\static_md\ + objA64\SampleServer\$(Configuration)\ + true + + + binA64\static_md\ + objA64\SampleServer\$(Configuration)\ + false + bin\ obj\SampleServer\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\SampleServer\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\SampleServer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\SampleServerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\SampleServer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\SampleServerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\SampleServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\SampleServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\SampleServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\SampleServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\SampleServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\SampleServerd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Util/samples/SampleServer/SampleServer_vs170.vcxproj.filters b/Util/samples/SampleServer/SampleServer_vs170.vcxproj.filters index b736c0311..0900ee469 100644 --- a/Util/samples/SampleServer/SampleServer_vs170.vcxproj.filters +++ b/Util/samples/SampleServer/SampleServer_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {a6e76470-aec2-4a5f-a7fe-9a81cb375ceb} + {0bd521b2-fd70-4f04-8bf1-22607e6654c4} - {d8a834f5-9820-48c0-b66d-ae01d8465668} + {2680c637-38c4-4d97-a99f-8c3b3cd4d05e} diff --git a/Util/samples/Units/Units_vs160.vcxproj b/Util/samples/Units/Units_vs160.vcxproj index a260190ec..cf7783cfb 100644 --- a/Util/samples/Units/Units_vs160.vcxproj +++ b/Util/samples/Units/Units_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 Unitsd Unitsd Unitsd diff --git a/Util/samples/Units/Units_vs160.vcxproj.filters b/Util/samples/Units/Units_vs160.vcxproj.filters index 0a5c83ef1..9d2fbaa4f 100644 --- a/Util/samples/Units/Units_vs160.vcxproj.filters +++ b/Util/samples/Units/Units_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {85e1d920-5b52-477a-ac11-5b1b809a810d} + {a8102fb6-dbf1-42fb-90d4-577c1faaeaec} - {5808a610-3907-4e3c-8c2d-047c97597a1e} + {a6236ac6-ddcf-436f-978c-e4c337a0ff7e} diff --git a/Util/samples/Units/Units_vs170.vcxproj b/Util/samples/Units/Units_vs170.vcxproj index 8ff2fbd73..7bc52210f 100644 --- a/Util/samples/Units/Units_vs170.vcxproj +++ b/Util/samples/Units/Units_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 Units {A6800637-61D5-39A3-86AA-E180C73D3120} Units @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + Unitsd + Unitsd + Unitsd + Units + Units + Units Unitsd Unitsd Unitsd @@ -171,6 +250,36 @@ Units Units + + binA64\ + objA64\Units\$(Configuration)\ + true + + + binA64\ + objA64\Units\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\Units\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\Units\$(Configuration)\ + false + + + binA64\static_md\ + objA64\Units\$(Configuration)\ + true + + + binA64\static_md\ + objA64\Units\$(Configuration)\ + false + bin\ obj\Units\$(Configuration)\ @@ -231,6 +340,211 @@ obj64\Units\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + binA64\Units.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;%(AdditionalDependencies) + binA64\static_mt\Unitsd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;%(AdditionalDependencies) + binA64\static_mt\Units.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;%(AdditionalDependencies) + binA64\static_md\Unitsd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,14 +561,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin\Unitsd.exe ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\Unitsd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -278,7 +596,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin\Units.exe @@ -306,7 +628,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -314,7 +640,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\Unitsd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -338,7 +664,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -367,7 +697,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -375,7 +709,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\Unitsd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -399,7 +733,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -428,14 +766,18 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin64\Unitsd.exe ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\Unitsd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -459,7 +801,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 bin64\Units.exe @@ -487,7 +833,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -495,7 +845,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\Unitsd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -519,7 +869,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -548,7 +902,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -556,7 +914,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\Unitsd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -580,7 +938,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;%(AdditionalDependencies) @@ -596,6 +958,8 @@ true + stdcpp17 + stdc11 diff --git a/Util/samples/Units/Units_vs170.vcxproj.filters b/Util/samples/Units/Units_vs170.vcxproj.filters index 031c3c8c0..e322fb204 100644 --- a/Util/samples/Units/Units_vs170.vcxproj.filters +++ b/Util/samples/Units/Units_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {cc5ef59d-1274-4692-8a5e-91583358140b} + {08f9bcac-a7a8-49a7-bc0b-443239cb2dd2} - {6899d313-fd65-4835-9f8e-c9caa694424a} + {fb27392e-2230-400b-a8d9-c4fc8d84f99a} diff --git a/Util/samples/pkill/pkill_vs160.vcxproj b/Util/samples/pkill/pkill_vs160.vcxproj index 1eb0f0b54..27f28a112 100644 --- a/Util/samples/pkill/pkill_vs160.vcxproj +++ b/Util/samples/pkill/pkill_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 pkilld pkilld pkilld diff --git a/Util/samples/pkill/pkill_vs160.vcxproj.filters b/Util/samples/pkill/pkill_vs160.vcxproj.filters index 3e3cbb279..9f39243a4 100644 --- a/Util/samples/pkill/pkill_vs160.vcxproj.filters +++ b/Util/samples/pkill/pkill_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {5f039c9d-77de-4930-a95d-629204a004b2} + {23c121d5-0be1-4029-8d65-5e9bc3a13ee9} diff --git a/Util/samples/pkill/pkill_vs170.vcxproj b/Util/samples/pkill/pkill_vs170.vcxproj index 3e1e92f32..dafc6973c 100644 --- a/Util/samples/pkill/pkill_vs170.vcxproj +++ b/Util/samples/pkill/pkill_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 pkill {63EDD785-29E1-3073-87EB-3CE788A4A1DE} pkill @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + pkilld + pkilld + pkilld + pkill + pkill + pkill pkilld pkilld pkilld @@ -171,6 +250,36 @@ pkill pkill + + binA64\ + objA64\pkill\$(Configuration)\ + true + + + binA64\ + objA64\pkill\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\pkill\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\pkill\$(Configuration)\ + false + + + binA64\static_md\ + objA64\pkill\$(Configuration)\ + true + + + binA64\static_md\ + objA64\pkill\$(Configuration)\ + false + bin\ obj\pkill\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\pkill\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\pkill.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\pkilld.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\pkill.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\pkilld.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\pkilld.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\pkilld.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\pkilld.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\pkilld.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\pkilld.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\pkilld.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Util/samples/pkill/pkill_vs170.vcxproj.filters b/Util/samples/pkill/pkill_vs170.vcxproj.filters index b50057c33..51fa783b3 100644 --- a/Util/samples/pkill/pkill_vs170.vcxproj.filters +++ b/Util/samples/pkill/pkill_vs170.vcxproj.filters @@ -2,7 +2,7 @@ - {eabac5f2-924a-4f69-8e1f-92d2e32ee27c} + {50fc3366-30a9-49e4-a74b-41dbe050515c} diff --git a/Util/samples/samples_vs170.sln b/Util/samples/samples_vs170.sln index 0f1d6f0fd..8d96d8534 100644 --- a/Util/samples/samples_vs170.sln +++ b/Util/samples/samples_vs170.sln @@ -10,6 +10,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Units", "Units\Units_vs170. EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|ARM64 = debug_shared|ARM64 + release_shared|ARM64 = release_shared|ARM64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 + release_static_mt|ARM64 = release_static_mt|ARM64 + debug_static_md|ARM64 = debug_static_md|ARM64 + release_static_md|ARM64 = release_static_md|ARM64 debug_shared|Win32 = debug_shared|Win32 release_shared|Win32 = release_shared|Win32 debug_static_mt|Win32 = debug_static_mt|Win32 @@ -24,6 +30,24 @@ Global release_static_md|x64 = release_static_md|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_shared|Win32.Build.0 = debug_shared|Win32 {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -60,6 +84,24 @@ Global {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_md|x64.ActiveCfg = release_static_md|x64 {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_md|x64.Build.0 = release_static_md|x64 {63EDD785-29E1-3073-87EB-3CE788A4A1DE}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_shared|Win32.Build.0 = debug_shared|Win32 {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -96,6 +138,24 @@ Global {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_md|x64.ActiveCfg = release_static_md|x64 {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_md|x64.Build.0 = release_static_md|x64 {C3F12C11-469F-3FB6-8C95-8638F78FF7C0}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_shared|Win32.Build.0 = debug_shared|Win32 {F475C5DD-0558-37AF-870B-666DE931B7BA}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -132,6 +192,24 @@ Global {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_md|x64.ActiveCfg = release_static_md|x64 {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_md|x64.Build.0 = release_static_md|x64 {F475C5DD-0558-37AF-870B-666DE931B7BA}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {A6800637-61D5-39A3-86AA-E180C73D3120}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {A6800637-61D5-39A3-86AA-E180C73D3120}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {A6800637-61D5-39A3-86AA-E180C73D3120}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {A6800637-61D5-39A3-86AA-E180C73D3120}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_shared|Win32.Build.0 = debug_shared|Win32 {A6800637-61D5-39A3-86AA-E180C73D3120}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 diff --git a/Util/testsuite/TestSuite_vs160.vcxproj b/Util/testsuite/TestSuite_vs160.vcxproj index 4f151642e..b15792a98 100644 --- a/Util/testsuite/TestSuite_vs160.vcxproj +++ b/Util/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited diff --git a/Util/testsuite/TestSuite_vs160.vcxproj.filters b/Util/testsuite/TestSuite_vs160.vcxproj.filters index b78723a12..53dfb7fba 100644 --- a/Util/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Util/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,64 +2,64 @@ - {c1ee02ad-da9b-4036-af39-1bc7042dc874} + {438eb1c0-d0de-45bf-b320-1279d707bc5c} - {ec934c54-ea5c-4602-ab1a-49fdaca86177} + {1e1fbbc0-ff47-46d6-809d-12102bbb3b48} - {f544f580-41a2-4683-afb5-ee89baa2c59c} + {128ee867-d2b6-401a-baad-bb4996a3bee3} - {b123401d-583d-4316-9254-f0685663921d} + {704c0097-c5c6-4dab-a7ab-6a6bc2d0e5a9} - {b5b8e68c-983d-434b-8aca-48255c23c43e} + {eab30792-d142-449a-8412-a94157f445b9} - {3bc8e1bc-a8eb-4440-8c42-a61d9496f028} + {ca6fdee4-a24b-43f4-b365-ebf3e3343506} - {8aecfe88-4bbd-41ca-9f5a-798f6512017f} + {722d5c8a-f8cc-4331-845b-3c1a173495ef} - {3a93d505-81df-4399-9b2b-87b89dee897e} + {36809934-98df-4ca7-a7f0-8495389c1253} - {49f0c744-b769-4dc6-b0ce-f6232912e8ea} + {0902ec24-350a-4eff-8fb5-6239c3ab7c5b} - {c30dd81d-2e47-472e-bac2-40831d2ea6ca} + {611a2a23-0c30-4466-a6dc-d2591c712637} - {7befe4ef-023e-4bab-9231-ac7387b5dc8c} + {9b521e75-593a-4ced-8bc1-86c4885ff97a} - {5d2a883d-6b3f-4113-88d3-6785a09c1394} + {b7a588e6-8654-41c4-baf6-2ad326c9891a} - {77252e88-b20d-425f-b979-26e26a0f748e} + {f6508bad-0191-4241-a39a-4c0e8a70bdca} - {e01d67d5-3851-4f0a-a33d-e6517eabb187} + {33161bbd-6977-4320-bd29-257b9f0279bc} - {082d5d34-3713-42a5-85e7-00bdbd703aa4} + {6c152c8b-70c7-495e-bcf1-72d01d2a88bd} - {ba4cbf83-181a-4799-9142-3c193a644ed7} + {6b010bdb-b859-48f9-990b-5e4b0c0b13ad} - {5b6e196d-c0d2-4d14-bb1a-706728ff39b4} + {5093e4bf-589e-408e-b4d6-dd1a234e69dd} - {eee84383-b9f3-4247-98ca-18c5c0b88e63} + {53421e09-8092-4c21-b187-57561f6ceea8} - {b4cc23e6-e9d5-4e24-88be-c82f8243d9f8} + {0ad6aa7e-a1e4-4db9-b2c7-6e84a5b9305c} - {cf6c42c2-dd23-4aba-bcc2-d2ad4f0e3adf} + {436fbd2a-badc-4b37-b007-b3d666ea3981} diff --git a/Util/testsuite/TestSuite_vs170.vcxproj b/Util/testsuite/TestSuite_vs170.vcxproj index b8b109c88..80e486db1 100644 --- a/Util/testsuite/TestSuite_vs170.vcxproj +++ b/Util/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited diff --git a/Util/testsuite/TestSuite_vs170.vcxproj.filters b/Util/testsuite/TestSuite_vs170.vcxproj.filters index 2a33cd3da..d4aa034c7 100644 --- a/Util/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Util/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,64 +2,64 @@ - {bf120474-4445-4697-b471-7c39e2d38eda} + {a81b185c-6236-4fd3-a15c-8dd31790d30d} - {a4f8d012-57ef-474e-9064-b8a9e0677f66} + {f3eb825c-416e-4620-b51a-608251f573be} - {7b1608c9-d746-4dd0-9cab-644082d5da39} + {ac9dd053-d2fb-48ab-a11a-d2f33abcb7b0} - {cbc96e3c-3fa6-411f-838d-3a3b70bd4c61} + {ab9d92e2-edef-4a59-ab2e-f7ce62c1af21} - {adaeedcf-dc9f-4344-8f11-7822e4f05f68} + {9d275f0e-a81e-41da-8795-05e5622cb5a3} - {f1628bfe-3122-4150-8507-005bb1fe7a48} + {31dc823e-3abb-46e2-a5f6-70c3fcdaf80e} - {a1aa1385-3f4a-4e93-a3b7-8acb6bcfca47} + {2e0e0002-3dfb-42de-8fca-c63b12a5d56e} - {d8941f75-b04e-42af-92e5-23547495c0be} + {bad23042-4a4d-475d-95ea-00f3f6191f5d} - {711b44f4-7b07-4bb4-af7f-3f411eaa399d} + {cd99bab7-bb86-4623-940b-53bde8ecfda7} - {05bb7ce7-8584-4ef7-9eea-9729eb085346} + {b7c8fb30-abb2-4700-8a56-8631cf47e44d} - {e1b9169e-7428-4feb-bae2-66cc9f692314} + {cddd7c26-fec1-47ce-adbd-50f02c99aef5} - {ff7d389a-f0b6-4743-ac01-ea5914efc867} + {b0bc354f-cb2f-4097-873a-30b3503dcfbf} - {d49d5ed0-1d68-4307-8a74-31618cab5b25} + {58f5fcbc-f661-4f2f-b070-9f91e94551f9} - {f4cd4c4a-54b2-4770-b9bc-c0530ffc8cdb} + {8fc9df2e-d6f4-4f1b-a8ef-f975681be4d8} - {941b0937-9f2e-4c77-b23c-a972c206ef70} + {f21345f9-ee6e-4ae5-a52b-318c0a5fb964} - {929ec79c-9067-4356-8107-fb26be88d136} + {0d93d3ce-dfe0-49b7-97e7-a61d3c16bd36} - {864bc194-232f-4b00-9e63-6b305a51ae44} + {728467fa-9be3-45b3-9267-9ef16022dcf4} - {c4b4debe-4e1b-4c83-97e1-77a99a19965d} + {33d6c845-b618-4507-acee-3f542511047f} - {d8aa3a59-3d88-43eb-96a2-95d560d02296} + {7b05ba45-b6a7-4c4a-b753-395e7e2aeacd} - {ad1052ce-ef60-4667-ad7b-826b3cdcb206} + {42aa735e-87c9-45f8-9eaf-b9572fccc32c} diff --git a/XML/XML_vs160.vcxproj b/XML/XML_vs160.vcxproj index acd9c4d93..85ec39a85 100644 --- a/XML/XML_vs160.vcxproj +++ b/XML/XML_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoXMLd PocoXMLmdd PocoXMLmtd diff --git a/XML/XML_vs160.vcxproj.filters b/XML/XML_vs160.vcxproj.filters index 8d66e0505..5782fa473 100644 --- a/XML/XML_vs160.vcxproj.filters +++ b/XML/XML_vs160.vcxproj.filters @@ -2,40 +2,40 @@ - {cb81f37b-a7e0-430b-946a-9e88ccba5c39} + {9f145c46-90e5-4e69-9a55-7f12ed5e1362} - {b8055a37-ef43-4284-9612-b88fe0f2cdbf} + {347fe9ec-ce7b-4d5f-bf38-0714572a1171} - {75ffcd0a-6058-4cda-889d-da7add0b0737} + {de58f036-8f7a-46b2-b44f-24c5158b4901} - {2b1457b4-7256-4387-bea1-a42c225220ef} + {06f01f3d-0327-4a56-8c1d-b0d0bc5a9376} - {febad31a-f868-4c80-b299-68e3f81fa9e8} + {071135af-954c-4794-8686-df2101289f12} - {1b2d92d4-0629-417b-9abf-524dea4b8995} + {7c253b28-3770-4760-acff-56a93ee179ae} - {4a364df2-d1d6-417d-8d34-699ac77df096} + {7a2e5949-5a82-48ba-8e32-919da71ae5ee} - {d36d45e8-7df0-478e-b5fb-2a9f3c9ef9c5} + {58315dd6-5dad-47d3-b4ab-6e23b74c3c74} - {4a903e42-0a5d-4ee8-b822-2c140f277302} + {f676d0d3-bd51-47e4-8a51-10690e19d6fe} - {85d8ec5f-636a-44db-af9f-67f1ba21288b} + {f1aae8ef-6661-42ff-ab6a-7b275e01bd4e} - {dde613c6-833a-4b1e-9a9f-018dcde301c8} + {fcafd331-d814-448e-a044-c0f9d92d137e} - {1fbfd2fa-5781-4c04-8ee0-049f1a1482d8} + {7482bbc1-ba97-4b9a-bad6-037bc4e64392} diff --git a/XML/XML_vs170.vcxproj b/XML/XML_vs170.vcxproj index 508472784..59554a407 100644 --- a/XML/XML_vs170.vcxproj +++ b/XML/XML_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoXMLA64d PocoXMLmdd PocoXMLmtd diff --git a/XML/XML_vs170.vcxproj.filters b/XML/XML_vs170.vcxproj.filters index 6127e56af..bac3f3cae 100644 --- a/XML/XML_vs170.vcxproj.filters +++ b/XML/XML_vs170.vcxproj.filters @@ -2,40 +2,40 @@ - {96b51512-3a64-46af-ab78-a51faa1cd6df} + {bc5b2114-7a88-4cbe-99a2-3144e1903bc0} - {b9ec7b17-e73d-426e-a76d-eebc7666da78} + {95f40013-256f-46c8-a071-67747dc9c5d6} - {9231605d-1428-4e8e-9b05-576974d29681} + {9235db45-efa3-4fa5-9094-81903d2fdce6} - {4a70c9bd-4202-4927-9611-5aec7641a968} + {d7746e61-d89c-4edd-a458-b1d855333fc2} - {cac5dc2f-6bea-4219-9ad0-5746260dd79d} + {f571d600-e2f9-4fa1-bc70-1690397a3e8b} - {aa92d9ae-49a3-40c8-b6b7-e68295c52ff7} + {c267aeea-1155-488d-9d71-813099410838} - {b26d1bf0-b484-46d1-886b-06d025bc83fe} + {31a70422-7da9-4718-be71-976fd0ecce27} - {796b42b1-952a-4783-8c3a-a0559e181c3a} + {6a32b89e-50f2-4311-85d7-d85208f7bbcc} - {fc023bda-543a-4828-81a1-d9c1a694badc} + {cf503c0d-0abf-4079-b0b6-d59baab0c9eb} - {3e03ea7d-3bab-4a12-bfe4-91d9ef4b5901} + {8f0fe07f-cf6e-4555-a3b5-478fb7514064} - {7cd33215-14dd-4c36-bb74-0bf0092392e5} + {feb53d7d-c83a-441e-82cb-5372800326e2} - {d3571ff7-2366-434e-bc0f-20bf9079fc7b} + {79d86e7e-1c9f-4862-89b6-05e29e94de84} diff --git a/XML/samples/DOMParser/DOMParser_vs160.vcxproj b/XML/samples/DOMParser/DOMParser_vs160.vcxproj index b77218387..d7db79e81 100644 --- a/XML/samples/DOMParser/DOMParser_vs160.vcxproj +++ b/XML/samples/DOMParser/DOMParser_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 DOMParserd DOMParserd DOMParserd diff --git a/XML/samples/DOMParser/DOMParser_vs160.vcxproj.filters b/XML/samples/DOMParser/DOMParser_vs160.vcxproj.filters index 01b1143de..d5ca5c363 100644 --- a/XML/samples/DOMParser/DOMParser_vs160.vcxproj.filters +++ b/XML/samples/DOMParser/DOMParser_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {c54b5d98-2a82-4b09-97df-44222288a4f9} + {bd1c1954-af8e-48bd-8bdb-0b3f5914ad07} - {be5a21b0-9e92-4ec7-9a0b-4af48bc0facd} + {d1c769da-ff46-4179-b256-d206ca875172} diff --git a/XML/samples/DOMParser/DOMParser_vs170.vcxproj b/XML/samples/DOMParser/DOMParser_vs170.vcxproj index 5c7e5d7b4..81a7e51bd 100644 --- a/XML/samples/DOMParser/DOMParser_vs170.vcxproj +++ b/XML/samples/DOMParser/DOMParser_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 DOMParserd DOMParserd DOMParserd diff --git a/XML/samples/DOMParser/DOMParser_vs170.vcxproj.filters b/XML/samples/DOMParser/DOMParser_vs170.vcxproj.filters index 6731b18de..e417a1418 100644 --- a/XML/samples/DOMParser/DOMParser_vs170.vcxproj.filters +++ b/XML/samples/DOMParser/DOMParser_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {8a08200a-1a12-4da5-a4cb-d6adf507aba0} + {ba655b32-d87b-4615-8371-29ca1128eea0} - {d2160a53-12e9-4ffd-ad35-0d25d4bf92b1} + {ec77a8d3-3aeb-4326-935d-b877d7a72d6e} diff --git a/XML/samples/DOMWriter/DOMWriter_vs160.vcxproj b/XML/samples/DOMWriter/DOMWriter_vs160.vcxproj index 50aaa5f84..9d0764dd5 100644 --- a/XML/samples/DOMWriter/DOMWriter_vs160.vcxproj +++ b/XML/samples/DOMWriter/DOMWriter_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 DOMWriterd DOMWriterd DOMWriterd diff --git a/XML/samples/DOMWriter/DOMWriter_vs160.vcxproj.filters b/XML/samples/DOMWriter/DOMWriter_vs160.vcxproj.filters index d916101f9..008e1ba25 100644 --- a/XML/samples/DOMWriter/DOMWriter_vs160.vcxproj.filters +++ b/XML/samples/DOMWriter/DOMWriter_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {acae5be3-4b12-447a-9d8e-9f162f2b16f7} + {4851ff56-c751-4279-9394-7677d43ba90e} - {9fcc108e-736d-44d6-8336-56d4bc9f05c7} + {c1ab6c9d-94c8-41f2-8fc0-4d11a0593d63} diff --git a/XML/samples/DOMWriter/DOMWriter_vs170.vcxproj b/XML/samples/DOMWriter/DOMWriter_vs170.vcxproj index d9c5f386b..c92bbc76a 100644 --- a/XML/samples/DOMWriter/DOMWriter_vs170.vcxproj +++ b/XML/samples/DOMWriter/DOMWriter_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 DOMWriterd DOMWriterd DOMWriterd diff --git a/XML/samples/DOMWriter/DOMWriter_vs170.vcxproj.filters b/XML/samples/DOMWriter/DOMWriter_vs170.vcxproj.filters index 1f07e8c83..4f5b5cc3b 100644 --- a/XML/samples/DOMWriter/DOMWriter_vs170.vcxproj.filters +++ b/XML/samples/DOMWriter/DOMWriter_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {60a029ee-84d0-4105-9e6e-d95555057208} + {c3a6df75-089f-41c5-a63c-e17cab440b1f} - {c072432c-7405-4762-aa49-4eab4b357375} + {311ea5b3-97a1-46e0-997e-c8a14d63c126} diff --git a/XML/samples/PrettyPrint/PrettyPrint_vs160.vcxproj b/XML/samples/PrettyPrint/PrettyPrint_vs160.vcxproj index 1ae244dbd..c5ae873ab 100644 --- a/XML/samples/PrettyPrint/PrettyPrint_vs160.vcxproj +++ b/XML/samples/PrettyPrint/PrettyPrint_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PrettyPrintd PrettyPrintd PrettyPrintd diff --git a/XML/samples/PrettyPrint/PrettyPrint_vs160.vcxproj.filters b/XML/samples/PrettyPrint/PrettyPrint_vs160.vcxproj.filters index ef3d194f0..a03910a93 100644 --- a/XML/samples/PrettyPrint/PrettyPrint_vs160.vcxproj.filters +++ b/XML/samples/PrettyPrint/PrettyPrint_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {7147e155-1dfc-40d2-a78c-c57cea83bf1c} + {e2f84542-236e-4bff-b234-265a64a33a7a} - {84845345-4844-4653-971e-4aa97a764ce1} + {0c689492-4d35-4381-97d6-bd0f67553305} diff --git a/XML/samples/PrettyPrint/PrettyPrint_vs170.vcxproj b/XML/samples/PrettyPrint/PrettyPrint_vs170.vcxproj index 0e22c2e6b..d983d8b1d 100644 --- a/XML/samples/PrettyPrint/PrettyPrint_vs170.vcxproj +++ b/XML/samples/PrettyPrint/PrettyPrint_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 PrettyPrint {DFA97011-8DD4-3A84-A0C9-EB2101BD6082} PrettyPrint @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + PrettyPrintd + PrettyPrintd + PrettyPrintd + PrettyPrint + PrettyPrint + PrettyPrint PrettyPrintd PrettyPrintd PrettyPrintd @@ -171,6 +250,36 @@ PrettyPrint PrettyPrint + + binA64\ + objA64\PrettyPrint\$(Configuration)\ + true + + + binA64\ + objA64\PrettyPrint\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\PrettyPrint\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\PrettyPrint\$(Configuration)\ + false + + + binA64\static_md\ + objA64\PrettyPrint\$(Configuration)\ + true + + + binA64\static_md\ + objA64\PrettyPrint\$(Configuration)\ + false + bin\ obj\PrettyPrint\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\PrettyPrint\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\PrettyPrint.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\PrettyPrintd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\PrettyPrint.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\PrettyPrintd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\PrettyPrintd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\PrettyPrintd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\PrettyPrintd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\PrettyPrintd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\PrettyPrintd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\PrettyPrintd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/XML/samples/PrettyPrint/PrettyPrint_vs170.vcxproj.filters b/XML/samples/PrettyPrint/PrettyPrint_vs170.vcxproj.filters index f753ee3a4..e61686961 100644 --- a/XML/samples/PrettyPrint/PrettyPrint_vs170.vcxproj.filters +++ b/XML/samples/PrettyPrint/PrettyPrint_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {0b25e87e-4a57-45cb-add3-0100c4f14047} + {63cbd799-1df0-4cf7-b8e8-c74a873e1e36} - {4f1b5178-d16f-4543-9846-988b361bb5f2} + {6bac2526-8142-4744-9c33-5591c9e2e793} diff --git a/XML/samples/SAXParser/SAXParser_vs160.vcxproj b/XML/samples/SAXParser/SAXParser_vs160.vcxproj index a2abf5095..d300cb55c 100644 --- a/XML/samples/SAXParser/SAXParser_vs160.vcxproj +++ b/XML/samples/SAXParser/SAXParser_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 SAXParserd SAXParserd SAXParserd diff --git a/XML/samples/SAXParser/SAXParser_vs160.vcxproj.filters b/XML/samples/SAXParser/SAXParser_vs160.vcxproj.filters index 2672d8746..81e0be7a0 100644 --- a/XML/samples/SAXParser/SAXParser_vs160.vcxproj.filters +++ b/XML/samples/SAXParser/SAXParser_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {92991b2e-54de-4ad4-9379-943106ab1274} + {a99131b7-121c-48fe-81b8-b77aaaf9a003} - {aa175918-d7ab-45ad-9883-d47929ddcadc} + {f6a93ade-36d4-4143-a46a-d6dce310315e} diff --git a/XML/samples/SAXParser/SAXParser_vs170.vcxproj b/XML/samples/SAXParser/SAXParser_vs170.vcxproj index 466f72605..c7659678c 100644 --- a/XML/samples/SAXParser/SAXParser_vs170.vcxproj +++ b/XML/samples/SAXParser/SAXParser_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 SAXParserd SAXParserd SAXParserd diff --git a/XML/samples/SAXParser/SAXParser_vs170.vcxproj.filters b/XML/samples/SAXParser/SAXParser_vs170.vcxproj.filters index 5d4bdb707..13f2d3544 100644 --- a/XML/samples/SAXParser/SAXParser_vs170.vcxproj.filters +++ b/XML/samples/SAXParser/SAXParser_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {f72f6939-cdf6-4d4b-8201-9f02e0055e05} + {6400d981-c438-42f8-87a0-d1820d49ea59} - {dd54e283-1535-4069-a9d9-34be10276285} + {798039f9-839c-471b-b746-50fe71b5df2f} diff --git a/XML/testsuite/TestSuite_vs160.vcxproj b/XML/testsuite/TestSuite_vs160.vcxproj index 9bd26dc23..5c43cd5e0 100644 --- a/XML/testsuite/TestSuite_vs160.vcxproj +++ b/XML/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited diff --git a/XML/testsuite/TestSuite_vs160.vcxproj.filters b/XML/testsuite/TestSuite_vs160.vcxproj.filters index 7c405efe2..d59721344 100644 --- a/XML/testsuite/TestSuite_vs160.vcxproj.filters +++ b/XML/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,46 +2,46 @@ - {f06175ff-5f8b-4d11-9361-d5731f8af56d} + {42cf6f5a-de98-4d4b-979b-272e82198b1c} - {e9154a8b-8069-416a-ad22-07587b584353} + {bff33679-3eff-4c3c-b6a2-cbcb62074f37} - {e3a59658-9bbe-46a6-9833-b7e5130b604e} + {2d77b517-0338-4881-ae86-723f495a0cc9} - {86e296c7-e286-4084-a11f-6472be34efd8} + {bfa3b9af-23f7-4843-b423-791e4889780a} - {25135764-20e3-48cd-a30f-ebdcf10fc3e5} + {ca9defc9-72e7-4ed5-9413-1051ec4d7ab3} - {921420a5-fdd6-4f9e-abf5-8c840f9b2f80} + {4e12d839-30a9-46b2-bc9d-1bab54aba219} - {12daa3a3-1660-40fe-82c6-683fde1180e3} + {b7ed9015-de1d-4298-98ca-58c445373742} - {808e8303-33e3-4c0d-98ac-532d386290a2} + {69bac11c-3eb4-48c3-8abb-a81f29e8375e} - {bdc45c2a-39e7-4a16-8eb5-54764c7ef42f} + {3f1cb8d3-fc0f-4f2e-8ca7-362a26a263d7} - {d9ea0431-ff51-482a-868d-9b998b43b0ee} + {0cdd946e-c95d-47ea-81a6-c87c73ef44c5} - {6566e7d1-a361-4f29-8257-d089fba073a7} + {1fc7e41d-3463-4184-9153-12c659e9643b} - {e830d081-9e40-472e-9502-4a4bbd62a7d6} + {27ef3b40-6778-47c2-a282-b54b5c816293} - {d8f08009-0a23-4def-a1e5-089fb4cc4e66} + {8298841c-45e3-421a-b7b2-45e73cf7957d} - {d53aece3-454a-4e15-9dd9-c9affe6981a7} + {30475f77-ee31-457b-9898-ffd2b3ebd4ba} diff --git a/XML/testsuite/TestSuite_vs170.vcxproj b/XML/testsuite/TestSuite_vs170.vcxproj index dd76a0e2d..8d6a19a1a 100644 --- a/XML/testsuite/TestSuite_vs170.vcxproj +++ b/XML/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -356,15 +356,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -388,11 +392,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -417,15 +425,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -449,11 +461,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -478,15 +494,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -510,11 +530,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -539,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -547,7 +575,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -571,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -608,7 +644,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -632,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -661,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -669,7 +713,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -693,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -722,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -730,7 +782,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -754,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -783,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -791,7 +851,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -815,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -844,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -852,7 +920,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -876,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -915,69 +987,113 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/XML/testsuite/TestSuite_vs170.vcxproj.filters b/XML/testsuite/TestSuite_vs170.vcxproj.filters index ebcec4fd4..d8e820549 100644 --- a/XML/testsuite/TestSuite_vs170.vcxproj.filters +++ b/XML/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,46 +2,46 @@ - {267dc191-c17a-40c7-b031-e4062ef685ef} + {204891f1-acd0-47e1-94eb-994d17fd4ef9} - {ed0acb37-2e7b-4fb3-9e4f-bcca6737286e} + {757f9adc-3061-4df7-8576-dcf244251dd8} - {cabd32b6-bf1e-4fd0-bf00-83b66f87c283} + {bdf530d2-1858-47fb-ae19-c02fdd36859b} - {82379ce0-5ff2-4c21-9a50-182ba826e3d6} + {ccc80802-89b4-4346-8ecd-42b0cf5e0e6f} - {e5e9b84d-0444-491c-a94c-860fea6c5dba} + {aa3097c7-718a-4272-ac2f-961dc3489c24} - {e81a05f0-8560-49c6-b545-52cd1985e47c} + {08bc5a41-ef98-4b1c-b04a-67b490729749} - {baf873a5-c67b-4c0c-b43c-8d551efecbaf} + {acd44c3b-9019-4c90-886e-e6390b704bbf} - {6453d96f-21a9-4601-93ee-a73402b79aea} + {1c689c6e-d9f4-4a84-b73c-ae8382b6a1e7} - {5d76fdeb-b462-4181-bf28-79334afd95ec} + {830d428d-ed11-4bb2-b831-08ed2fd1284a} - {3de96171-216f-46e9-bde5-d59932c4e3fa} + {f095684f-80c6-42f4-bec9-41b7ebeba177} - {d76562a5-ae1b-44e0-9522-c6b29ab995b4} + {d97903b2-78b9-4c79-8528-9162df04932f} - {4ac25127-ec4b-4cd0-9529-e3183239ba98} + {d35e6e85-b2fa-4423-a9c1-5ab7a81d9dce} - {15b79584-f97b-4e6b-a25d-bf5449b9058b} + {826cc5c6-7317-4227-9b14-746eb80efef5} - {1db3521f-175e-4bea-94dd-f7a6bcab3835} + {9a7885eb-7b8b-480f-b816-a5b0377c3967} diff --git a/Zip/Zip_vs160.vcxproj b/Zip/Zip_vs160.vcxproj index 8f721f720..b6bf8ff45 100644 --- a/Zip/Zip_vs160.vcxproj +++ b/Zip/Zip_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 PocoZipd PocoZipmdd PocoZipmtd diff --git a/Zip/Zip_vs160.vcxproj.filters b/Zip/Zip_vs160.vcxproj.filters index c4a0164e0..9d7646836 100644 --- a/Zip/Zip_vs160.vcxproj.filters +++ b/Zip/Zip_vs160.vcxproj.filters @@ -2,22 +2,22 @@ - {e6984a0b-7d61-4787-9157-e5a19e0ecd86} + {083df5d6-556d-4f39-bbb0-6005d4536c0f} - {ab34883f-872a-4f92-9c9f-7d15bc7a0056} + {ac64c2ff-396a-47cf-bcb0-4381661580d7} - {85f70d16-1966-4cbe-9708-38a37e0e0c90} + {d701d135-8551-432d-9ca9-f7cb2fec0a8e} - {f576f3e7-304d-4c81-89d0-db620bf7f12a} + {47e79957-13a8-42c8-bd8b-a9a6f9da2f53} - {773e9e06-f07b-48fb-99bf-13983ae753b2} + {717d48fa-7894-4a18-b516-8e704687bdfc} - {03439319-0a8b-4b1d-bf7e-fd3124613a80} + {2cb1f315-59d9-476b-bf59-d2f51228fc01} diff --git a/Zip/Zip_vs170.vcxproj b/Zip/Zip_vs170.vcxproj index af0765c63..36b450155 100644 --- a/Zip/Zip_vs170.vcxproj +++ b/Zip/Zip_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.34322.80 + <_ProjectFileVersion>17.0.34714.143 PocoZipA64d PocoZipmdd PocoZipmtd diff --git a/Zip/Zip_vs170.vcxproj.filters b/Zip/Zip_vs170.vcxproj.filters index 4dd0b077a..aeb9e4c77 100644 --- a/Zip/Zip_vs170.vcxproj.filters +++ b/Zip/Zip_vs170.vcxproj.filters @@ -2,22 +2,22 @@ - {690a8469-95ed-462d-972f-79391d782dcc} + {4c57dcaf-46ac-4201-aaa4-7056a393dd08} - {c3628cbf-b2f9-4ea7-8503-ba643b4e855f} + {c5d0f348-f132-490b-af39-ba1bd042070c} - {59b6e61c-93ab-4dbd-aa27-56fbb3960e30} + {936b3719-5064-453b-bb9f-c797838aa606} - {0a8e2b79-875a-42c4-8879-933845e48657} + {eb3f3d7d-7788-495f-8053-4960a6d5ff1e} - {2947c209-69d5-4657-ad85-67745de8389f} + {15e5afd7-5b52-47bc-9e3b-501f5359b634} - {891520ba-8a6a-4469-ab40-d2838d46a3f7} + {77017fbc-a16a-46f7-90e9-b27ca9f6fdf8} diff --git a/Zip/samples/samples_vs170.sln b/Zip/samples/samples_vs170.sln index c29ef01f3..830d33cdc 100644 --- a/Zip/samples/samples_vs170.sln +++ b/Zip/samples/samples_vs170.sln @@ -6,6 +6,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unzip", "unzip\unzip_vs170. EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|ARM64 = debug_shared|ARM64 + release_shared|ARM64 = release_shared|ARM64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 + release_static_mt|ARM64 = release_static_mt|ARM64 + debug_static_md|ARM64 = debug_static_md|ARM64 + release_static_md|ARM64 = release_static_md|ARM64 debug_shared|Win32 = debug_shared|Win32 release_shared|Win32 = release_shared|Win32 debug_static_mt|Win32 = debug_static_mt|Win32 @@ -20,6 +26,24 @@ Global release_static_md|x64 = release_static_md|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_shared|Win32.Build.0 = debug_shared|Win32 {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 @@ -56,6 +80,24 @@ Global {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_md|x64.ActiveCfg = release_static_md|x64 {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_md|x64.Build.0 = release_static_md|x64 {7F3AD0E5-A150-3AE7-9041-9086C45020C0}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_shared|Win32.Build.0 = debug_shared|Win32 {9FE5275A-E14A-30C2-9C5B-AEBDE780608F}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 diff --git a/Zip/samples/unzip/unzip_vs160.vcxproj b/Zip/samples/unzip/unzip_vs160.vcxproj index 979139ba0..bd10dc438 100644 --- a/Zip/samples/unzip/unzip_vs160.vcxproj +++ b/Zip/samples/unzip/unzip_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 unzipd unzipd unzipd diff --git a/Zip/samples/unzip/unzip_vs160.vcxproj.filters b/Zip/samples/unzip/unzip_vs160.vcxproj.filters index 004f290d2..8fd90ddf2 100644 --- a/Zip/samples/unzip/unzip_vs160.vcxproj.filters +++ b/Zip/samples/unzip/unzip_vs160.vcxproj.filters @@ -2,10 +2,10 @@ - {5dafba7e-63be-4000-acfd-03e528326e50} + {389c9b93-a332-4c56-bf7c-05cf20e24142} - {d03f80c1-5292-48af-a984-80161672a93a} + {803e6175-b709-4ee3-b372-e14b47932375} diff --git a/Zip/samples/unzip/unzip_vs170.vcxproj b/Zip/samples/unzip/unzip_vs170.vcxproj index 3edff62b1..19dce6587 100644 --- a/Zip/samples/unzip/unzip_vs170.vcxproj +++ b/Zip/samples/unzip/unzip_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 unzip {9FE5275A-E14A-30C2-9C5B-AEBDE780608F} unzip @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + unzipd + unzipd + unzipd + unzip + unzip + unzip unzipd unzipd unzipd @@ -171,6 +250,36 @@ unzip unzip + + binA64\ + objA64\unzip\$(Configuration)\ + true + + + binA64\ + objA64\unzip\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\unzip\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\unzip\$(Configuration)\ + false + + + binA64\static_md\ + objA64\unzip\$(Configuration)\ + true + + + binA64\static_md\ + objA64\unzip\$(Configuration)\ + false + bin\ obj\unzip\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\unzip\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\unzip.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\unzipd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\unzip.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\unzipd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\unzipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\unzipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\unzipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\unzipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\unzipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\unzipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Zip/samples/unzip/unzip_vs170.vcxproj.filters b/Zip/samples/unzip/unzip_vs170.vcxproj.filters index 5f0cee1a6..375f60cc3 100644 --- a/Zip/samples/unzip/unzip_vs170.vcxproj.filters +++ b/Zip/samples/unzip/unzip_vs170.vcxproj.filters @@ -2,10 +2,10 @@ - {ce5d1ea3-7a1b-46a8-93ee-ebbc120b182b} + {96359ad2-a143-445f-8634-90a446f67b52} - {cea1b680-6108-41a4-a781-a1d3ad78f961} + {44613698-b9a6-44cd-83f2-5d2552b7a1f8} diff --git a/Zip/samples/zip/zip_vs160.vcxproj b/Zip/samples/zip/zip_vs160.vcxproj index a64f8c5b3..54a87fa38 100644 --- a/Zip/samples/zip/zip_vs160.vcxproj +++ b/Zip/samples/zip/zip_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 zipd zipd zipd diff --git a/Zip/samples/zip/zip_vs160.vcxproj.filters b/Zip/samples/zip/zip_vs160.vcxproj.filters index da7bcc530..48a795607 100644 --- a/Zip/samples/zip/zip_vs160.vcxproj.filters +++ b/Zip/samples/zip/zip_vs160.vcxproj.filters @@ -2,7 +2,7 @@ - {e6ac32d4-902b-49a8-8d1b-c332142dd44c} + {01f802c4-6311-4a49-bf1c-95bb98b7089e} diff --git a/Zip/samples/zip/zip_vs170.vcxproj b/Zip/samples/zip/zip_vs170.vcxproj index 5118d9ab3..c762d1dcb 100644 --- a/Zip/samples/zip/zip_vs170.vcxproj +++ b/Zip/samples/zip/zip_vs170.vcxproj @@ -1,6 +1,10 @@ - + + + debug_shared + ARM64 + debug_shared Win32 @@ -9,6 +13,10 @@ debug_shared x64 + + debug_static_md + ARM64 + debug_static_md Win32 @@ -17,6 +25,10 @@ debug_static_md x64 + + debug_static_mt + ARM64 + debug_static_mt Win32 @@ -25,6 +37,10 @@ debug_static_mt x64 + + release_shared + ARM64 + release_shared Win32 @@ -33,6 +49,10 @@ release_shared x64 + + release_static_md + ARM64 + release_static_md Win32 @@ -41,6 +61,10 @@ release_static_md x64 + + release_static_mt + ARM64 + release_static_mt Win32 @@ -51,6 +75,7 @@ + 17.0 zip {7F3AD0E5-A150-3AE7-9041-9086C45020C0} zip @@ -87,6 +112,36 @@ MultiByte v143 + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + Application MultiByte @@ -137,6 +192,24 @@ + + + + + + + + + + + + + + + + + + @@ -157,7 +230,13 @@ - <_ProjectFileVersion>15.0.28307.799 + <_ProjectFileVersion>17.0.34714.143 + zipd + zipd + zipd + zip + zip + zip zipd zipd zipd @@ -171,6 +250,36 @@ zip zip + + binA64\ + objA64\zip\$(Configuration)\ + true + + + binA64\ + objA64\zip\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\zip\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\zip\$(Configuration)\ + false + + + binA64\static_md\ + objA64\zip\$(Configuration)\ + true + + + binA64\static_md\ + objA64\zip\$(Configuration)\ + false + bin\ obj\zip\$(Configuration)\ @@ -231,6 +340,213 @@ obj64\zip\$(Configuration)\ false + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\zip.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\zipd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\zip.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\zipd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Zip\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + Disabled @@ -247,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -255,7 +575,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\zipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -279,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -308,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -316,7 +644,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\zipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -340,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -369,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -377,7 +713,7 @@ ..\..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\zipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -401,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -430,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -438,7 +782,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\zipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -462,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -491,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -499,7 +851,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\zipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -523,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -552,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -560,7 +920,7 @@ ..\..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\zipd.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -584,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 iphlpapi.lib;winmm.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,6 +964,8 @@ true + stdcpp17 + stdc11 diff --git a/Zip/samples/zip/zip_vs170.vcxproj.filters b/Zip/samples/zip/zip_vs170.vcxproj.filters index 38c7f7bf5..e917019a2 100644 --- a/Zip/samples/zip/zip_vs170.vcxproj.filters +++ b/Zip/samples/zip/zip_vs170.vcxproj.filters @@ -2,7 +2,7 @@ - {46cef2f1-2f4e-456a-a552-313411a7b680} + {059abfd2-9496-4bd2-a1da-385719f93550} diff --git a/Zip/testsuite/TestSuite_vs160.vcxproj b/Zip/testsuite/TestSuite_vs160.vcxproj index 4304aeb12..08ca4c9b8 100644 --- a/Zip/testsuite/TestSuite_vs160.vcxproj +++ b/Zip/testsuite/TestSuite_vs160.vcxproj @@ -158,7 +158,7 @@ - <_ProjectFileVersion>17.0.34511.75 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited diff --git a/Zip/testsuite/TestSuite_vs160.vcxproj.filters b/Zip/testsuite/TestSuite_vs160.vcxproj.filters index 6fb10e6f9..aae50d459 100644 --- a/Zip/testsuite/TestSuite_vs160.vcxproj.filters +++ b/Zip/testsuite/TestSuite_vs160.vcxproj.filters @@ -2,28 +2,28 @@ - {7936c8e0-12af-451d-9a14-b532b681c080} + {8c7554b8-da96-4f76-b74b-b67c8b75071f} - {eaf69858-1fe3-400b-ab2c-9c3df327938b} + {24aa78ea-3f95-462d-b81c-78eee875d556} - {0b96f029-fea6-45c0-8e61-c34cb7957b98} + {4f6bd920-6f4b-4f3b-9ea9-d31392e481bd} - {5168582c-2347-490b-bb96-a09405d34609} + {b1583001-fb92-43d5-bd43-608775e33076} - {de54f02b-997f-4295-a6aa-87edb08e7eab} + {25791a9f-8bfa-40a6-8683-20c08a8602c3} - {44f1bc18-16e3-4b1e-8c81-35aec752c305} + {0baabea3-5919-48c5-bd0c-58e6aa5b97e6} - {2c394f46-0a18-4511-b796-1b3a82368df5} + {284f20dd-bfb2-4fb0-8806-cbd0b1267133} - {5b58fc19-f1cf-49aa-963e-c66b74e162e8} + {1f096e21-64d1-4924-b56b-8f7d774ba23d} diff --git a/Zip/testsuite/TestSuite_vs170.vcxproj b/Zip/testsuite/TestSuite_vs170.vcxproj index fcd864250..62021345c 100644 --- a/Zip/testsuite/TestSuite_vs170.vcxproj +++ b/Zip/testsuite/TestSuite_vs170.vcxproj @@ -230,7 +230,7 @@ - <_ProjectFileVersion>17.0.32505.173 + <_ProjectFileVersion>17.0.34714.143 TestSuited TestSuited TestSuited @@ -356,15 +356,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -388,11 +392,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -417,15 +425,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -449,11 +461,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_mt\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -478,15 +494,19 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuited.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) true true - binA64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineARM64 @@ -510,11 +530,15 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) - binA64\static_md\TestSuite.exe + $(OutDir)$(TargetName).exe ..\..\libA64;%(AdditionalLibraryDirectories) false Console @@ -539,7 +563,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -547,7 +575,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -571,7 +599,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -600,7 +632,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -608,7 +644,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -632,7 +668,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -661,7 +701,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -669,7 +713,7 @@ ..\..\lib;%(AdditionalLibraryDirectories) true true - bin\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX86 @@ -693,7 +737,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -722,7 +770,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitd.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -730,7 +782,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -754,7 +806,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnit.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -783,7 +839,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmtd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -791,7 +851,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_mt\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -815,7 +875,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmt.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -844,7 +908,11 @@ Level3 ProgramDatabase Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmdd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -852,7 +920,7 @@ ..\..\lib64;%(AdditionalLibraryDirectories) true true - bin64\static_md\TestSuited.pdb + $(OutDir)$(TargetName).pdb Console MachineX64 @@ -876,7 +944,11 @@ Level3 Default + $(OutDir)$(TargetName).pdb + /Zc:__cplusplus %(AdditionalOptions) true + stdcpp17 + stdc11 CppUnitmd.lib;iphlpapi.lib;winmm.lib;iphlpapi.lib;%(AdditionalDependencies) @@ -898,18 +970,28 @@ true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 true + stdcpp17 + stdc11 diff --git a/Zip/testsuite/TestSuite_vs170.vcxproj.filters b/Zip/testsuite/TestSuite_vs170.vcxproj.filters index 5b5d021b6..ea04bf0fb 100644 --- a/Zip/testsuite/TestSuite_vs170.vcxproj.filters +++ b/Zip/testsuite/TestSuite_vs170.vcxproj.filters @@ -2,28 +2,28 @@ - {23c1aa9e-466b-4eea-8f18-32fc55ba7773} + {ac5cfc08-dfc2-42a8-bd94-fd811d7e3c07} - {9ae8df80-c242-40bd-868b-6bf57480554d} + {41695992-47f2-4a93-b364-bfd17cc2900e} - {2f0f0e3e-e3e3-46fc-9379-e62e26115a32} + {b7565b73-2cb9-4811-88cd-6af3d587dff8} - {18efbedd-4e30-4bca-b1b3-5ddf85cf467a} + {3d602160-2dd7-4f28-92f3-49ae06302229} - {f66c2e7a-ed68-42fb-b5b7-53feb76990a0} + {48430f94-1bd0-42ad-b1af-fa1be51c7fe3} - {2458906b-62ad-4a03-bf2c-9e4bb11b6938} + {e3778463-efd2-4d9d-96cc-ce5f1ff247bb} - {dc4d5a8f-21b8-42a0-aea3-c58d02dc0d74} + {592d4217-f621-40b6-852c-4a88288e6569} - {9512e0d9-232e-441a-9969-67ccb9dd2c39} + {b59ba66e-a13c-4f0e-b3d3-58804b405daf} diff --git a/progen.ps1 b/progen.ps1 index 715ec3858..47e8c61eb 100644 --- a/progen.ps1 +++ b/progen.ps1 @@ -156,7 +156,7 @@ function InvokeProgenComponents([string] $type) $componentsArray += $_.Trim() } - if ($omitArray -NotContains $component -and (-not ($component -Contains "Foundation")) -and (($componentsArray -Contains $component) -or ($components -eq ''))) + if ($omitArray -NotContains $component -and ((-not ($component -Contains "Foundation")) -or ($type -eq "sample")) -and (($componentsArray -Contains $component) -or ($components -eq ''))) { if($type -eq "lib") { Write-Host "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" From 5c2fcedfa1634509187194fffdbf757d32f8787f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Wed, 3 Apr 2024 12:54:27 +0200 Subject: [PATCH 387/395] fix(build): VS project files for MongoDB --- MongoDB/testsuite/TestSuite_vs160.vcxproj | 81 ++++++------- .../testsuite/TestSuite_vs160.vcxproj.filters | 3 + MongoDB/testsuite/TestSuite_vs170.vcxproj | 111 +++++++++--------- .../testsuite/TestSuite_vs170.vcxproj.filters | 3 + MongoDB/testsuite/TestSuite_vs90.vcproj | 2 + 5 files changed, 105 insertions(+), 95 deletions(-) diff --git a/MongoDB/testsuite/TestSuite_vs160.vcxproj b/MongoDB/testsuite/TestSuite_vs160.vcxproj index 15a8e5f69..3878b4d89 100644 --- a/MongoDB/testsuite/TestSuite_vs160.vcxproj +++ b/MongoDB/testsuite/TestSuite_vs160.vcxproj @@ -1,4 +1,4 @@ - + @@ -57,7 +57,7 @@ TestSuite Win32Proj - + Application MultiByte @@ -118,45 +118,45 @@ MultiByte v142 - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + <_ProjectFileVersion>17.0.34714.143 TestSuited @@ -244,7 +244,7 @@ true true true - + Level3 ProgramDatabase Default @@ -280,9 +280,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -313,7 +313,7 @@ true true true - + Level3 ProgramDatabase Default @@ -349,9 +349,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -382,7 +382,7 @@ true true true - + Level3 ProgramDatabase Default @@ -418,9 +418,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -451,7 +451,7 @@ true true true - + Level3 ProgramDatabase Default @@ -487,9 +487,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -520,7 +520,7 @@ true true true - + Level3 ProgramDatabase Default @@ -556,9 +556,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -589,7 +589,7 @@ true true true - + Level3 ProgramDatabase Default @@ -625,9 +625,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -657,6 +657,7 @@ stdcpp17 stdc11 + true stdcpp17 @@ -664,9 +665,9 @@ - - + + - - - + + + \ No newline at end of file diff --git a/MongoDB/testsuite/TestSuite_vs160.vcxproj.filters b/MongoDB/testsuite/TestSuite_vs160.vcxproj.filters index ec6075cf3..896fc786e 100644 --- a/MongoDB/testsuite/TestSuite_vs160.vcxproj.filters +++ b/MongoDB/testsuite/TestSuite_vs160.vcxproj.filters @@ -18,6 +18,9 @@ Source Files + + Source Files + diff --git a/MongoDB/testsuite/TestSuite_vs170.vcxproj b/MongoDB/testsuite/TestSuite_vs170.vcxproj index 6d90780a0..4e7d324b4 100644 --- a/MongoDB/testsuite/TestSuite_vs170.vcxproj +++ b/MongoDB/testsuite/TestSuite_vs170.vcxproj @@ -1,4 +1,4 @@ - + @@ -81,7 +81,7 @@ TestSuite Win32Proj - + Application MultiByte @@ -172,63 +172,63 @@ MultiByte v143 - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + <_ProjectFileVersion>17.0.34714.143 TestSuited @@ -352,7 +352,7 @@ true true true - + Level3 ProgramDatabase Default @@ -388,9 +388,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -421,7 +421,7 @@ true true true - + Level3 ProgramDatabase Default @@ -457,9 +457,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -490,7 +490,7 @@ true true true - + Level3 ProgramDatabase Default @@ -526,9 +526,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -559,7 +559,7 @@ true true true - + Level3 ProgramDatabase Default @@ -595,9 +595,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -628,7 +628,7 @@ true true true - + Level3 ProgramDatabase Default @@ -664,9 +664,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -697,7 +697,7 @@ true true true - + Level3 ProgramDatabase Default @@ -733,9 +733,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -766,7 +766,7 @@ true true true - + Level3 ProgramDatabase Default @@ -802,9 +802,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -835,7 +835,7 @@ true true true - + Level3 ProgramDatabase Default @@ -871,9 +871,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -904,7 +904,7 @@ true true true - + Level3 ProgramDatabase Default @@ -940,9 +940,9 @@ true true true - + Level3 - + Default $(OutDir)$(TargetName).pdb /Zc:__cplusplus %(AdditionalOptions) @@ -972,6 +972,7 @@ stdcpp17 stdc11 + true stdcpp17 @@ -979,9 +980,9 @@ - - + + - - - + + + \ No newline at end of file diff --git a/MongoDB/testsuite/TestSuite_vs170.vcxproj.filters b/MongoDB/testsuite/TestSuite_vs170.vcxproj.filters index d80e962a8..2a8259116 100644 --- a/MongoDB/testsuite/TestSuite_vs170.vcxproj.filters +++ b/MongoDB/testsuite/TestSuite_vs170.vcxproj.filters @@ -18,6 +18,9 @@ Source Files + + Source Files + diff --git a/MongoDB/testsuite/TestSuite_vs90.vcproj b/MongoDB/testsuite/TestSuite_vs90.vcproj index c5c52dc92..e49526dc6 100644 --- a/MongoDB/testsuite/TestSuite_vs90.vcproj +++ b/MongoDB/testsuite/TestSuite_vs90.vcproj @@ -447,6 +447,8 @@ Name="Source Files"> + Date: Wed, 3 Apr 2024 14:06:06 +0200 Subject: [PATCH 388/395] chore(buldwin): remove WEC2013 --- buildwin.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/buildwin.ps1 b/buildwin.ps1 index 80462a778..09e6ecfcd 100644 --- a/buildwin.ps1 +++ b/buildwin.ps1 @@ -8,7 +8,7 @@ # [-action build | rebuild | clean] # [-linkmode shared | static_mt | static_md | all] # [-config release | debug | both] -# [-platform Win32 | x64 | ARM64 | WEC2013] +# [-platform Win32 | x64 | ARM64] # [-samples] # [-tests] # [-omit "Lib1X,LibY,LibZ,..."] @@ -42,7 +42,7 @@ Param [string] $config = 'release', [Parameter()] - [ValidateSet('Win32', 'x64', 'ARM64', 'WEC2013')] + [ValidateSet('Win32', 'x64', 'ARM64')] [string] $platform = 'x64', [switch] $tests = $false, @@ -218,7 +218,7 @@ function Process-Input Write-Host ' [-action build | rebuild | clean]' Write-Host ' [-linkmode shared | static_mt | static_md | all]' Write-Host ' [-config release | debug | both]' - Write-Host ' [-platform Win32 | x64 | WEC2013 | ARM64]' + Write-Host ' [-platform Win32 | x64 | ARM64]' Write-Host ' [-samples]' Write-Host ' [-tests]' Write-Host ' [-omit "Lib1X,LibY,LibZ,..."]' From 931dfeae6de004d77f27587011158c33c9eade8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Wed, 3 Apr 2024 17:21:05 +0200 Subject: [PATCH 389/395] doc: updated README[.md] --- README | 64 ++++++++++++++++++++++++++----------------------------- README.md | 18 +++++++++++----- 2 files changed, 43 insertions(+), 39 deletions(-) diff --git a/README b/README index 68e81a3bb..d8965df60 100644 --- a/README +++ b/README @@ -25,12 +25,12 @@ build/ the build system for Unix and additional utility scri cmake/ Support files for CMake bin/ all executables (dynamic link libraries on Windows) -bin64/ all 64-bit executables (and DLLs) +bin64/ 64-bit executables (and DLLs) on Windows doc/ additional documentation lib/ all libraries (import libraries on Windows) -lib64/ all 64-bit libraries +lib64/ 64-bit libraries on Windows CppUnit/ project and make/build files for the CppUnit unit testing framework doc/ additional documentation @@ -79,7 +79,7 @@ DOCUMENTATION ============= Plenty of documentation (tutorial slides, articles and SDK reference) -is available at . +is available at . EXTERNAL DEPENDENCIES @@ -88,16 +88,18 @@ EXTERNAL DEPENDENCIES The following libraries require third-party software (header files and libraries) being installed to build properly: -- NetSSL_OpenSSL and Crypt require OpenSSL. +- NetSSL_OpenSSL, Crypt and JWT require OpenSSL. - Data/ODBC requires ODBC (Microsoft ODBC on Windows, unixODBC or iODBC on Unix/Linux) -- Data/MySQL requires the MySQL client. +- Data/MySQL requires the MySQL or MariaDB client library. +- Data/PostgreSQL requires the PostgreSQL client library (libpq). Most Unix/Linux systems already have OpenSSL preinstalled. If your system -does not have OpenSSL, please get it from http://www.openssl.org or +does not have OpenSSL, please get it from https://www.openssl.org or another source. You do not have to build OpenSSL yourself - a binary distribution is fine (e.g., apt-get install openssl libssl-dev). On macOS, install OpenSSL via Homebrew (brew install openssl). +On Windows, OpenSSL can be installed with vcpkg. The easiest way to install OpenSSL on Windows is to get the pre-built libraries from the pocoproject/openssl Git repository at @@ -110,12 +112,6 @@ Depending on where you have installed the OpenSSL libraries, you might have to edit the build script (buildwin.cmd), or add the necessary paths to the INCLUDE and LIB environment variables. -Through the Poco/Crypto/Crypto.h and Poco/Net/NetSSL.h header files, -Visual C++ will automatically link the libcrypto.lib and libssl.lib -libraries. If your OpenSSL libraries are named differently, compile -with the macro POCO_EXTERNAL_OPENSSL defined and edit the project -files accordingly. - The Data library requires ODBC support on your system if you want to build the ODBC connector (which is the default). On Windows platforms, ODBC should be readily available if you have the @@ -151,9 +147,9 @@ described in the following. BUILDING - USING VCPKG -=================== +====================== -You can download and install poco using the vcpkg(https://github.com/Microsoft/vcpkg) +You can download and install poco using the vcpkg (https://vcpkg.io) dependency manager: $ git clone https://github.com/Microsoft/vcpkg.git @@ -162,7 +158,7 @@ $ ./bootstrap-vcpkg.sh $ ./vcpkg integrate install $ ./vcpkg install poco -The poco port in vcpkg is kept up to date by Microsoft team members and community contributors. +The Poco port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please create an issue or pull request(https://github.com/Microsoft/vcpkg) on the vcpkg repository. @@ -189,26 +185,26 @@ on the Conan Center Index repository. BUILDING ON WINDOWS =================== -Microsoft Visual Studio 2015 or newer is required to build the POCO C++ Libraries on -Windows platforms. Solution and project files for all versions from 2015 to 2022 are included. +Microsoft Visual Studio 2019 or newer is required to build the POCO C++ Libraries on +Windows platforms. Solution and project files for Visual Studio 2019 to 2022 are included. 64-bit (x64) builds are supported as well. You can either build from within Visual Studio (Build->Batch Build->Select All;Rebuild) or from the command line. To build from the command line, start the -Visual Studio Command Prompt and cd to the directory where you -have extracted the POCO C++ Libraries sources. Then, simply start the buildwin.cmd script -and pass as argument the version of visual studio (140, 150, 160, 170, etc.). You can customize -what is being built by buildwin.cmd by passing appropriate command line arguments to -it. Call buildwin.cmd without arguments to see what is available. +Developer PowerShell for Visual Studio and cd to the directory where you +have extracted the POCO C++ Libraries sources. Then, run the buildwin.ps1 script +and pass the desired options. -To disable certain components (e.g., NetSSL_OpenSSL or Data/MySQL) from the build, -edit the file named "components" and remove the respective lines. +To show available options, run: + +> buildwin.ps1 -help + +Example: + +> buildwin.ps1 -vs 170 -action build -linkmode shared -config release -platform x64 -samples -tests Certain libraries, like NetSSL_OpenSSL, Crypto or Data/MySQL have dependencies -to other libraries. Since the build script does not know where to find the necessary -header files and import libraries, you have to either add the header file paths to -the INCLUDE environment variable and the library path to the LIB environment variable, -or you'll have to edit the buildwin.cmd script, where these environment variables can -be set as well. +to other libraries. The Visual Studio project files have been configured to +use vcpkg to install the required packages. In order to run the test suite and the samples, the top-most bin directory containing the shared libraries must be in the PATH environment variable. @@ -230,11 +226,11 @@ build and install it prior to building the POCO C++ Libraries. You can check the version of GNU Make installed on your system with -> gmake --version +> make --version or -> make --version +> gmake --version Once you have GNU Make up and running, the rest is quite simple. To extract the sources and build all libraries, testsuites and samples, simply @@ -243,7 +239,7 @@ To extract the sources and build all libraries, testsuites and samples, simply > tar -xf poco-X.Y.tar > cd poco-X.Y > ./configure -> gmake -s +> make -s See the configure script source for a list of possible options. For starters, we recommend --no-tests and --no-samples, to reduce build times. @@ -254,7 +250,7 @@ Once you have successfully built POCO, you can install it to /usr/local (or another directory specified as parameter to configure --prefix=): -> sudo gmake -s install +> sudo make -s install You can omit certain components from the build. For example, you might want to omit Data/ODBC or Data/MySQL if you do not have the corresponding @@ -306,4 +302,4 @@ MORE INFORMATION ================ For more information, see the POCO C++ Libraries website -at . +at . diff --git a/README.md b/README.md index afa11f318..cf9eb31f3 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ and [Getting Started](https://pocoproject.org/docs/00200-GettingStarted.html) do - MySQL, PostgreSQL and ODBC client libraries (optional) Most Unix/Linux systems already have OpenSSL preinstalled. If your system -does not have OpenSSL, please get it from or +does not have OpenSSL, please get it from or another source. You do not have to build OpenSSL yourself - a binary distribution is fine. For example, via Debian APT: @@ -48,6 +48,7 @@ The easiest way to install OpenSSL on Windows is to use a binary (prebuild) release, for example the one from Shining Light Productions that comes with a [Windows installer](https://www.slproweb.com/products/Win32OpenSSL.html). +OpenSSL can also be installed via the `vcpkg` package manager. On Windows, POCO can also use the native Windows TLS APIs (SChannel). @@ -58,19 +59,19 @@ All dependencies can be installed with the following commands: #### Debian Linux (including Ubuntu and Raspbian) ``` -$ sudo apt-get -y update && sudo apt-get -y install git g++ make cmake libssl-dev +$ sudo apt-get -y update && sudo apt-get -y install git g++ make cmake libssl-dev libmysqlclient-dev libpq-dev ``` #### RedHat Linux ``` -$ sudo yum install -y git gcc-c++ make cmake3 openssl-devel +$ sudo yum install -y git gcc-c++ make cmake3 openssl-devel mysql-devel postgresql-devel ``` #### macOS (with Homebrew) ``` -$ brew install cmake openssl +$ brew install cmake openssl mysql-client libpq ``` ### Building with CMake (Linux, macOS, Windows) @@ -93,7 +94,13 @@ For example, if OpenSSL has been installed with Homebrew, the `cmake` invocation becomes: ``` -$ cmake .. -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl +$ cmake .. -DOPENSSL_ROOT_DIR=/opt/homebrew/opt/openssl@3 +``` + +Similarly, the locations of other external libraries can be specified: + +``` +$ cmake .. -DOPENSSL_ROOT_DIR=/opt/homebrew/opt/openssl@3 -DMYSQL_ROOT_DIR=/opt/homebrew/opt/mysql-client -DPostgreSQL_ROOT_DIR=/opt/homebrew/opt/libpq ``` Other common ways of building with CMake (e.g., `cmake-gui`) will also work. @@ -139,6 +146,7 @@ The poco port in vcpkg is kept up to date by Microsoft team members and communit If the version is out of date, please [create an issue or pull request](https://github.com/Microsoft/vcpkg) on the vcpkg repository. + #### Building and Installing - Using Conan You can download and install poco using the Conan(https://github.com/conan-io/conan) From 166efc721d2b3591e6918c4a0d45b1c9ca1f8efc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnter=20Obiltschnig?= Date: Wed, 3 Apr 2024 19:58:04 +0200 Subject: [PATCH 390/395] fix(release): cpproj must include vcpkg files --- release/script/cpproj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/release/script/cpproj b/release/script/cpproj index 4adc58287..f561a44d6 100755 --- a/release/script/cpproj +++ b/release/script/cpproj @@ -51,6 +51,10 @@ if [ -d ${src}/cmake ] ; then cp -R ${src}/cmake/* ${dst}/cmake >/dev/null 2>&1 fi +if [ -f ${src}/vcpkg.json ] ; then + cp ${src}/vcpkg*.json ${dst} +fi + if [ -d ${src}/testsuite ] ; then mkdir -p ${dst}/testsuite mkdir -p ${dst}/testsuite/src From b41f211ece14b5657b0114f94718bf9262031d4e Mon Sep 17 00:00:00 2001 From: Aleksandar Fabijanic Date: Wed, 3 Apr 2024 15:38:56 -0500 Subject: [PATCH 391/395] 2208 merge dnssd (#4479) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Initial commit * initial commit * added README.md * Update README.md * Add top level CMakeLists like another project in POCO framework. see #1 * Add CMakeLists to Avahi and Bonjour. (see #1) * Missing changing in top level CMakeLists correct. (see #1) * Add samples CMakeLists. (see #1) * Add temporary cmake find module for Avahi and Bonjour in cmake directory. (see #1) * Add mandatory requirement diff for POCO framework to DNSSD cmake can be work correctly. (see #1) * Update README.md Add cmake build way. * Update README.md Minor change. * Update README.md Removed ambiguous sentence. * Moved files * Add cmake modules * Add cmake modules * Remove modules * Correct linux cmake ci. * Exclude DNSSD from macos, windows. * Update CMakeLists.txt * Remove unused gitignore * Remove deprecated vs versions * Add vs160 and vs170 for DNSSD * Remove deprecated sln * Revert bad changes * Revert bad changes * chore: remove vs90 sln files * chore: remove vs90 x64 files * Revert "chore: remove vs90 sln files" This reverts commit 51d78f82f11d387506c016c9aab3b31e3c32ad23. * chore: add DNSSD to components * chore(DNSSD): disable in CI, update copyright and doc * fix(DNSSD): CMake on Apple platforms: fix finding library providing DNSSD. * fix(DNSSD): Handle kDNSServiceFlagsNonBrowsable that was removed in 1096.0.2 * chore: naming and code modernize review comments * enh(DNSSD): Define DNSSD_*_API for non-MSVC compilers. --------- Co-authored-by: Günter Obiltschnig Co-authored-by: Co-authored-by: Seyyed Soroosh Hosseinalipour Co-authored-by: Matej Kenda --- .github/workflows/ci.yml | 2 +- .github/workflows/codeql-buildscript.sh | 2 +- .gitignore | 1 + .gitmodules | 0 CMakeLists.txt | 11 + DNSSD/Avahi/CMakeLists.txt | 33 + DNSSD/Avahi/Makefile | 21 + DNSSD/Avahi/cmake/PocoDNSSDAvahiConfig.cmake | 5 + DNSSD/Avahi/dependencies | 3 + DNSSD/Avahi/include/Poco/DNSSD/Avahi/Avahi.h | 76 ++ .../Poco/DNSSD/Avahi/AvahiBrowserImpl.h | 86 ++ .../Poco/DNSSD/Avahi/AvahiResponderImpl.h | 134 +++ DNSSD/Avahi/src/AvahiBrowserImpl.cpp | 582 +++++++++++ DNSSD/Avahi/src/AvahiResponderImpl.cpp | 514 ++++++++++ DNSSD/Bonjour/Bonjour.progen | 19 + DNSSD/Bonjour/Bonjour_vs160.sln | 61 ++ DNSSD/Bonjour/Bonjour_vs160.vcxproj | 605 +++++++++++ DNSSD/Bonjour/Bonjour_vs160.vcxproj.filters | 39 + DNSSD/Bonjour/Bonjour_vs170.sln | 85 ++ DNSSD/Bonjour/Bonjour_vs170.vcxproj | 885 ++++++++++++++++ DNSSD/Bonjour/Bonjour_vs170.vcxproj.filters | 39 + DNSSD/Bonjour/Bonjour_vs90.sln | 37 + DNSSD/Bonjour/Bonjour_vs90.vcproj | 416 ++++++++ DNSSD/Bonjour/Bonjour_x64_vs90.sln | 37 + DNSSD/Bonjour/CMakeLists.txt | 33 + DNSSD/Bonjour/Makefile | 18 + .../cmake/PocoDNSSDBonjourConfig.cmake | 5 + DNSSD/Bonjour/dependencies | 3 + .../include/Poco/DNSSD/Bonjour/Bonjour.h | 76 ++ .../Poco/DNSSD/Bonjour/BonjourBrowserImpl.h | 79 ++ .../Poco/DNSSD/Bonjour/BonjourResponderImpl.h | 88 ++ .../include/Poco/DNSSD/Bonjour/EventLoop.h | 120 +++ DNSSD/Bonjour/src/BonjourBrowserImpl.cpp | 486 +++++++++ DNSSD/Bonjour/src/BonjourResponderImpl.cpp | 341 +++++++ DNSSD/Bonjour/src/EventLoop.cpp | 157 +++ DNSSD/CMakeLists.txt | 88 ++ DNSSD/DNSSD.progen | 18 + DNSSD/DNSSD_vs160.sln | 61 ++ DNSSD/DNSSD_vs160.vcxproj | 635 ++++++++++++ DNSSD/DNSSD_vs160.vcxproj.filters | 69 ++ DNSSD/DNSSD_vs170.sln | 85 ++ DNSSD/DNSSD_vs170.vcxproj | 915 +++++++++++++++++ DNSSD/DNSSD_vs170.vcxproj.filters | 69 ++ DNSSD/DNSSD_vs90.sln | 37 + DNSSD/DNSSD_vs90.vcproj | 436 ++++++++ DNSSD/DNSSD_x64_vs90.sln | 37 + DNSSD/Default/Makefile | 21 + DNSSD/Default/dependencies | 3 + DNSSD/LICENSE | 32 + DNSSD/Makefile | 20 + DNSSD/README.md | 49 + DNSSD/cmake/PocoDNSSDConfig.cmake | 4 + DNSSD/dependencies | 2 + DNSSD/doc/00100-DNSSDOverview.page | 208 ++++ .../doc/00200-DNSSDTutorialAndUserGuide.page | 406 ++++++++ DNSSD/include/Poco/DNSSD/DNSSD.h | 194 ++++ DNSSD/include/Poco/DNSSD/DNSSDBrowser.h | 346 +++++++ DNSSD/include/Poco/DNSSD/DNSSDException.h | 37 + DNSSD/include/Poco/DNSSD/DNSSDResponder.h | 193 ++++ DNSSD/include/Poco/DNSSD/DNSSDResponderImpl.h | 119 +++ DNSSD/include/Poco/DNSSD/Domain.h | 87 ++ DNSSD/include/Poco/DNSSD/Error.h | 89 ++ DNSSD/include/Poco/DNSSD/Record.h | 223 ++++ DNSSD/include/Poco/DNSSD/Service.h | 247 +++++ DNSSD/samples/CMakeLists.txt | 2 + DNSSD/samples/DNSSDBrowser/CMakeLists.txt | 7 + .../samples/DNSSDBrowser/DNSSDBrowser.progen | 13 + .../DNSSDBrowser/DNSSDBrowser_vs160.vcxproj | 646 ++++++++++++ .../DNSSDBrowser_vs160.vcxproj.filters | 13 + .../DNSSDBrowser/DNSSDBrowser_vs170.vcxproj | 955 +++++++++++++++++ .../DNSSDBrowser_vs170.vcxproj.filters | 13 + .../DNSSDBrowser/DNSSDBrowser_vs90.vcproj | 445 ++++++++ DNSSD/samples/DNSSDBrowser/Makefile | 23 + .../bin/Darwin/x86_64/DNSSDBrowser | Bin 0 -> 85712 bytes .../bin/Darwin/x86_64/DNSSDBrowserd | Bin 0 -> 211648 bytes .../samples/DNSSDBrowser/src/DNSSDBrowser.cpp | 436 ++++++++ DNSSD/samples/HTTPTimeServer/CMakeLists.txt | 7 + .../HTTPTimeServer/HTTPTimeServer.progen | 13 + .../HTTPTimeServer/HTTPTimeServer.properties | 13 + .../HTTPTimeServer_vs160.vcxproj | 649 ++++++++++++ .../HTTPTimeServer_vs160.vcxproj.filters | 21 + .../HTTPTimeServer_vs170.vcxproj | 958 ++++++++++++++++++ .../HTTPTimeServer_vs170.vcxproj.filters | 21 + .../HTTPTimeServer/HTTPTimeServer_vs90.vcproj | 450 ++++++++ DNSSD/samples/HTTPTimeServer/Makefile | 23 + .../bin/Darwin/x86_64/HTTPTimeServer | Bin 0 -> 37932 bytes .../bin/Darwin/x86_64/HTTPTimeServerd | Bin 0 -> 66260 bytes .../HTTPTimeServer/src/HTTPTimeServer.cpp | 248 +++++ DNSSD/samples/Makefile | 13 + DNSSD/samples/dependencies | 6 + DNSSD/samples/samples.progen | 6 + DNSSD/samples/samples_vs160.sln | 99 ++ DNSSD/samples/samples_vs170.sln | 141 +++ DNSSD/samples/samples_vs90.sln | 57 ++ DNSSD/samples/samples_x64_vs90.sln | 57 ++ DNSSD/src/DNSSDBrowser.cpp | 34 + DNSSD/src/DNSSDException.cpp | 28 + DNSSD/src/DNSSDResponder.cpp | 109 ++ DNSSD/src/DNSSDResponderImpl.cpp | 39 + DNSSD/src/Domain.cpp | 44 + DNSSD/src/Error.cpp | 44 + DNSSD/src/Record.cpp | 64 ++ DNSSD/src/Service.cpp | 80 ++ cmake/FindAvahi.cmake | 20 + cmake/FindBonjour.cmake | 49 + components | 3 + configure | 4 +- 107 files changed, 15678 insertions(+), 4 deletions(-) delete mode 100644 .gitmodules create mode 100644 DNSSD/Avahi/CMakeLists.txt create mode 100644 DNSSD/Avahi/Makefile create mode 100644 DNSSD/Avahi/cmake/PocoDNSSDAvahiConfig.cmake create mode 100644 DNSSD/Avahi/dependencies create mode 100644 DNSSD/Avahi/include/Poco/DNSSD/Avahi/Avahi.h create mode 100644 DNSSD/Avahi/include/Poco/DNSSD/Avahi/AvahiBrowserImpl.h create mode 100644 DNSSD/Avahi/include/Poco/DNSSD/Avahi/AvahiResponderImpl.h create mode 100644 DNSSD/Avahi/src/AvahiBrowserImpl.cpp create mode 100644 DNSSD/Avahi/src/AvahiResponderImpl.cpp create mode 100644 DNSSD/Bonjour/Bonjour.progen create mode 100644 DNSSD/Bonjour/Bonjour_vs160.sln create mode 100644 DNSSD/Bonjour/Bonjour_vs160.vcxproj create mode 100644 DNSSD/Bonjour/Bonjour_vs160.vcxproj.filters create mode 100644 DNSSD/Bonjour/Bonjour_vs170.sln create mode 100644 DNSSD/Bonjour/Bonjour_vs170.vcxproj create mode 100644 DNSSD/Bonjour/Bonjour_vs170.vcxproj.filters create mode 100644 DNSSD/Bonjour/Bonjour_vs90.sln create mode 100644 DNSSD/Bonjour/Bonjour_vs90.vcproj create mode 100644 DNSSD/Bonjour/Bonjour_x64_vs90.sln create mode 100644 DNSSD/Bonjour/CMakeLists.txt create mode 100644 DNSSD/Bonjour/Makefile create mode 100644 DNSSD/Bonjour/cmake/PocoDNSSDBonjourConfig.cmake create mode 100644 DNSSD/Bonjour/dependencies create mode 100644 DNSSD/Bonjour/include/Poco/DNSSD/Bonjour/Bonjour.h create mode 100644 DNSSD/Bonjour/include/Poco/DNSSD/Bonjour/BonjourBrowserImpl.h create mode 100644 DNSSD/Bonjour/include/Poco/DNSSD/Bonjour/BonjourResponderImpl.h create mode 100644 DNSSD/Bonjour/include/Poco/DNSSD/Bonjour/EventLoop.h create mode 100644 DNSSD/Bonjour/src/BonjourBrowserImpl.cpp create mode 100644 DNSSD/Bonjour/src/BonjourResponderImpl.cpp create mode 100644 DNSSD/Bonjour/src/EventLoop.cpp create mode 100644 DNSSD/CMakeLists.txt create mode 100644 DNSSD/DNSSD.progen create mode 100644 DNSSD/DNSSD_vs160.sln create mode 100644 DNSSD/DNSSD_vs160.vcxproj create mode 100644 DNSSD/DNSSD_vs160.vcxproj.filters create mode 100644 DNSSD/DNSSD_vs170.sln create mode 100644 DNSSD/DNSSD_vs170.vcxproj create mode 100644 DNSSD/DNSSD_vs170.vcxproj.filters create mode 100644 DNSSD/DNSSD_vs90.sln create mode 100644 DNSSD/DNSSD_vs90.vcproj create mode 100644 DNSSD/DNSSD_x64_vs90.sln create mode 100644 DNSSD/Default/Makefile create mode 100644 DNSSD/Default/dependencies create mode 100644 DNSSD/LICENSE create mode 100644 DNSSD/Makefile create mode 100644 DNSSD/README.md create mode 100644 DNSSD/cmake/PocoDNSSDConfig.cmake create mode 100644 DNSSD/dependencies create mode 100644 DNSSD/doc/00100-DNSSDOverview.page create mode 100644 DNSSD/doc/00200-DNSSDTutorialAndUserGuide.page create mode 100644 DNSSD/include/Poco/DNSSD/DNSSD.h create mode 100644 DNSSD/include/Poco/DNSSD/DNSSDBrowser.h create mode 100644 DNSSD/include/Poco/DNSSD/DNSSDException.h create mode 100644 DNSSD/include/Poco/DNSSD/DNSSDResponder.h create mode 100644 DNSSD/include/Poco/DNSSD/DNSSDResponderImpl.h create mode 100644 DNSSD/include/Poco/DNSSD/Domain.h create mode 100644 DNSSD/include/Poco/DNSSD/Error.h create mode 100644 DNSSD/include/Poco/DNSSD/Record.h create mode 100644 DNSSD/include/Poco/DNSSD/Service.h create mode 100644 DNSSD/samples/CMakeLists.txt create mode 100644 DNSSD/samples/DNSSDBrowser/CMakeLists.txt create mode 100644 DNSSD/samples/DNSSDBrowser/DNSSDBrowser.progen create mode 100644 DNSSD/samples/DNSSDBrowser/DNSSDBrowser_vs160.vcxproj create mode 100644 DNSSD/samples/DNSSDBrowser/DNSSDBrowser_vs160.vcxproj.filters create mode 100644 DNSSD/samples/DNSSDBrowser/DNSSDBrowser_vs170.vcxproj create mode 100644 DNSSD/samples/DNSSDBrowser/DNSSDBrowser_vs170.vcxproj.filters create mode 100644 DNSSD/samples/DNSSDBrowser/DNSSDBrowser_vs90.vcproj create mode 100644 DNSSD/samples/DNSSDBrowser/Makefile create mode 100755 DNSSD/samples/DNSSDBrowser/bin/Darwin/x86_64/DNSSDBrowser create mode 100755 DNSSD/samples/DNSSDBrowser/bin/Darwin/x86_64/DNSSDBrowserd create mode 100644 DNSSD/samples/DNSSDBrowser/src/DNSSDBrowser.cpp create mode 100644 DNSSD/samples/HTTPTimeServer/CMakeLists.txt create mode 100644 DNSSD/samples/HTTPTimeServer/HTTPTimeServer.progen create mode 100644 DNSSD/samples/HTTPTimeServer/HTTPTimeServer.properties create mode 100644 DNSSD/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj create mode 100644 DNSSD/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj.filters create mode 100644 DNSSD/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj create mode 100644 DNSSD/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj.filters create mode 100644 DNSSD/samples/HTTPTimeServer/HTTPTimeServer_vs90.vcproj create mode 100644 DNSSD/samples/HTTPTimeServer/Makefile create mode 100755 DNSSD/samples/HTTPTimeServer/bin/Darwin/x86_64/HTTPTimeServer create mode 100755 DNSSD/samples/HTTPTimeServer/bin/Darwin/x86_64/HTTPTimeServerd create mode 100644 DNSSD/samples/HTTPTimeServer/src/HTTPTimeServer.cpp create mode 100644 DNSSD/samples/Makefile create mode 100644 DNSSD/samples/dependencies create mode 100644 DNSSD/samples/samples.progen create mode 100644 DNSSD/samples/samples_vs160.sln create mode 100644 DNSSD/samples/samples_vs170.sln create mode 100644 DNSSD/samples/samples_vs90.sln create mode 100644 DNSSD/samples/samples_x64_vs90.sln create mode 100644 DNSSD/src/DNSSDBrowser.cpp create mode 100644 DNSSD/src/DNSSDException.cpp create mode 100644 DNSSD/src/DNSSDResponder.cpp create mode 100644 DNSSD/src/DNSSDResponderImpl.cpp create mode 100644 DNSSD/src/Domain.cpp create mode 100644 DNSSD/src/Error.cpp create mode 100644 DNSSD/src/Record.cpp create mode 100644 DNSSD/src/Service.cpp create mode 100644 cmake/FindAvahi.cmake create mode 100644 cmake/FindBonjour.cmake diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e737844a8..06a797f35 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -523,7 +523,7 @@ jobs: timeout_minutes: 90 max_attempts: 3 retry_on: any - command: .\buildwin.ps1 -poco_base . -vs 170 -action build -linkmode all -config release -platform x64 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT" + command: .\buildwin.ps1 -poco_base . -vs 170 -action build -linkmode all -config release -platform x64 -samples -tests -omit "Crypto,NetSSL_OpenSSL,Data/MySQL,Data/PostgreSQL,JWT,DNSSD,DNSSD/Avahi,DNSSD/Bonjour" # windows-2022-msvc-buildwin-win32: # runs-on: windows-2022 diff --git a/.github/workflows/codeql-buildscript.sh b/.github/workflows/codeql-buildscript.sh index a8f9a8cb1..1cbba9822 100644 --- a/.github/workflows/codeql-buildscript.sh +++ b/.github/workflows/codeql-buildscript.sh @@ -1,4 +1,4 @@ #!/usr/bin/env bash sudo apt-get -y update && sudo apt-get -y install cmake ninja-build libssl-dev unixodbc-dev libmysqlclient-dev redis-server -cmake -H. -Bcmake-build -GNinja -DENABLE_PDF=OFF -DENABLE_TESTS=ON && cmake --build cmake-build --target all +cmake -H. -Bcmake-build -GNinja -DENABLE_PDF=OFF -DENABLE_DNSSD=OFF -DENABLE_TESTS=ON && cmake --build cmake-build --target all diff --git a/.gitignore b/.gitignore index 152101e6f..c23f0eb35 100644 --- a/.gitignore +++ b/.gitignore @@ -131,6 +131,7 @@ lib/ lib64/ pocomsg.h **/UpgradeLog*.XML +/out/build/x64-Debug .vs/ vcpkg_installed/ diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index e69de29bb..000000000 diff --git a/CMakeLists.txt b/CMakeLists.txt index e7b9d15b7..36d95502f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -180,6 +180,12 @@ option(ENABLE_JSON "Enable JSON" ON) option(ENABLE_MONGODB "Enable MongoDB" ON) option(ENABLE_DATA_SQLITE "Enable Data SQlite" ON) option(ENABLE_REDIS "Enable Redis" ON) +option(ENABLE_DNSSD "Enable DNSSD" OFF) +option(ENABLE_DNSSD_DEFAULT "Enable DNSSD Default" OFF) + +option(ENABLE_DNSSD_AVAHI "Enable DNSSD Avahi" OFF) +option(ENABLE_DNSSD_BONJOUR "Enable DNSSD Bonjour" OFF) + option(ENABLE_PROMETHEUS "Enable Prometheus" ON) option(ENABLE_PDF "Enable PDF" OFF) option(ENABLE_UTIL "Enable Util" ON) @@ -372,6 +378,11 @@ if(EXISTS ${PROJECT_SOURCE_DIR}/Redis AND ENABLE_REDIS) list(APPEND Poco_COMPONENTS "Redis") endif() +if(ENABLE_DNSSD) + add_subdirectory(DNSSD) + list(APPEND Poco_COMPONENTS "DNSSD") +endif() + if(EXISTS ${PROJECT_SOURCE_DIR}/Prometheus AND ENABLE_PROMETHEUS) add_subdirectory(Prometheus) list(APPEND Poco_COMPONENTS "Prometheus") diff --git a/DNSSD/Avahi/CMakeLists.txt b/DNSSD/Avahi/CMakeLists.txt new file mode 100644 index 000000000..2c7236294 --- /dev/null +++ b/DNSSD/Avahi/CMakeLists.txt @@ -0,0 +1,33 @@ +set(LIBNAME "DNSSDAvahi") +set(POCO_LIBNAME "Poco${LIBNAME}") + +# Sources +file(GLOB SRCS_G "src/*.cpp") +POCO_SOURCES_AUTO( Avahi_SRCS ${SRCS_G}) + +# Headers +file(GLOB_RECURSE HDRS_G "include/*.h" ) +POCO_HEADERS_AUTO( Avahi_SRCS ${HDRS_G}) + +add_definitions( ${Avahi_CFLAGS} -DTHREADSAFE) + +add_library( "${LIBNAME}" ${LIB_MODE} ${Avahi_SRCS} ) +add_library( "${POCO_LIBNAME}" ALIAS "${LIBNAME}") +set_target_properties( "${LIBNAME}" + PROPERTIES + VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} + OUTPUT_NAME ${POCO_LIBNAME} + DEFINE_SYMBOL Avahi_EXPORTS + ) + +target_link_libraries( "${LIBNAME}" Foundation Net DNSSD ${AVAHI_LIBRARIES}) +target_include_directories( "${LIBNAME}" + PUBLIC + $ + $ + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src + ) +target_compile_definitions("${LIBNAME}" PUBLIC ${LIB_MODE_DEFINITIONS}) + +POCO_INSTALL("${LIBNAME}") +POCO_GENERATE_PACKAGE("${LIBNAME}") diff --git a/DNSSD/Avahi/Makefile b/DNSSD/Avahi/Makefile new file mode 100644 index 000000000..974131bdf --- /dev/null +++ b/DNSSD/Avahi/Makefile @@ -0,0 +1,21 @@ +# +# Makefile +# +# $Id: //poco/1.7/DNSSD/Avahi/Makefile#1 $ +# +# Makefile for Poco DNSSD Avahi +# + +include $(POCO_BASE)/build/rules/global + +SYSLIBS += -lavahi-common -lavahi-client + +objects = \ + AvahiResponderImpl AvahiBrowserImpl + +target = PocoDNSSDAvahi +target_version = 1 +target_libs = PocoNet PocoDNSSD PocoFoundation + +include $(POCO_BASE)/build/rules/lib + diff --git a/DNSSD/Avahi/cmake/PocoDNSSDAvahiConfig.cmake b/DNSSD/Avahi/cmake/PocoDNSSDAvahiConfig.cmake new file mode 100644 index 000000000..915c53eba --- /dev/null +++ b/DNSSD/Avahi/cmake/PocoDNSSDAvahiConfig.cmake @@ -0,0 +1,5 @@ +include(CMakeFindDependencyMacro) +find_dependency(PocoFoundation) +find_dependency(PocoNet) +find_dependency(PocoDNSSD) +include("${CMAKE_CURRENT_LIST_DIR}/PocoDNSSDAvahiTargets.cmake") diff --git a/DNSSD/Avahi/dependencies b/DNSSD/Avahi/dependencies new file mode 100644 index 000000000..5ab5fc352 --- /dev/null +++ b/DNSSD/Avahi/dependencies @@ -0,0 +1,3 @@ +Foundation +Net +DNSSD diff --git a/DNSSD/Avahi/include/Poco/DNSSD/Avahi/Avahi.h b/DNSSD/Avahi/include/Poco/DNSSD/Avahi/Avahi.h new file mode 100644 index 000000000..1b6fe1d9a --- /dev/null +++ b/DNSSD/Avahi/include/Poco/DNSSD/Avahi/Avahi.h @@ -0,0 +1,76 @@ +// +// Avahi.h +// +// $Id: //poco/1.7/DNSSD/Avahi/include/Poco/DNSSD/Avahi/Avahi.h#1 $ +// +// Library: DNSSD/Avahi +// Package: Implementation +// Module: Avahi +// +// Basic definitions for the Poco DNSSD Avahi library. +// This file must be the first file included by every other DNSSD Avahi +// header file. +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef DNSSD_Avahi_Avahi_INCLUDED +#define DNSSD_Avahi_Avahi_INCLUDED + + +#include "Poco/DNSSD/DNSSD.h" + + +// +// The following block is the standard way of creating macros which make exporting +// from a DLL simpler. All files within this DLL are compiled with the Avahi_EXPORTS +// symbol defined on the command line. This symbol should not be defined on any project +// that uses this DLL. This way any other project whose source files include this file see +// DNSSD_Avahi_API functions as being imported from a DLL, wheras this DLL sees symbols +// defined with this macro as being exported. +// +#if defined(_WIN32) && defined(POCO_DLL) + #if defined(Avahi_EXPORTS) + #define DNSSD_Avahi_API __declspec(dllexport) + #else + #define DNSSD_Avahi_API __declspec(dllimport) + #endif +#endif + + +#if !defined(DNSSD_Avahi_API) + #if !defined(POCO_NO_GCC_API_ATTRIBUTE) && defined (__GNUC__) && (__GNUC__ >= 4) + #define DNSSD_Avahi_API __attribute__ ((visibility ("default"))) + #else + #define DNSSD_Avahi_API + #endif +#endif + + +#if defined(_MSC_VER) + #if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(Avahi_EXPORTS) + #pragma comment(lib, "PocoDNSSDAvahi" POCO_LIB_SUFFIX) + #endif +#endif + + +namespace Poco { +namespace DNSSD { + + +void DNSSD_Avahi_API initializeDNSSD(); + /// Initialize the DNSSD subsystem. + + +void DNSSD_Avahi_API uninitializeDNSSD(); + /// Uninitialize the DNSSD subsystem. + + +} } // namespace Poco::DNSSD + + +#endif // DNSSD_Avahi_Avahi_INCLUDED diff --git a/DNSSD/Avahi/include/Poco/DNSSD/Avahi/AvahiBrowserImpl.h b/DNSSD/Avahi/include/Poco/DNSSD/Avahi/AvahiBrowserImpl.h new file mode 100644 index 000000000..2ab34fe76 --- /dev/null +++ b/DNSSD/Avahi/include/Poco/DNSSD/Avahi/AvahiBrowserImpl.h @@ -0,0 +1,86 @@ +// +// AvahiBrowserImpl.h +// +// $Id: //poco/1.7/DNSSD/Avahi/include/Poco/DNSSD/Avahi/AvahiBrowserImpl.h#1 $ +// +// Library: DNSSD/Avahi +// Package: Implementation +// Module: AvahiBrowserImpl +// +// Definition of the AvahiBrowserImpl class. +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef DNSSD_Avahi_AvahiBrowserImpl_INCLUDED +#define DNSSD_Avahi_AvahiBrowserImpl_INCLUDED + + +#include "Poco/DNSSD/Avahi/Avahi.h" +#include "Poco/DNSSD/DNSSDBrowser.h" +#include +#include + + +namespace Poco { +namespace DNSSD { +namespace Avahi { + + +class AvahiResponderImpl; + + +class DNSSD_Avahi_API AvahiBrowserImpl: public DNSSDBrowser + /// The DNSSDBrowser implementation for Avahi. +{ +public: + AvahiBrowserImpl(AvahiResponderImpl& responder); + /// Creates the AvahiBrowserImpl. + + ~AvahiBrowserImpl(); + /// Destroys the AvahiBrowserImpl. + + // DNSSDBrowser + BrowseHandle browse(const std::string& regType, const std::string& domain, int options, Poco::Int32 networkInterface); + BrowseHandle resolve(const Service& service, int options); + BrowseHandle enumerateBrowseDomains(Poco::Int32 networkInterface); + BrowseHandle enumerateRegistrationDomains(Poco::Int32 networkInterface); + BrowseHandle queryRecord(const std::string& name, Poco::UInt16 type, Poco::UInt16 clazz, int options, Poco::Int32 networkInterface); + BrowseHandle resolveHost(const std::string& host, int options, Poco::Int32 networkInterface); + void cancel(BrowseHandle& browseHandle); + + // Implementation + void onBrowseReply(AvahiServiceBrowser* browser, AvahiIfIndex interface, AvahiProtocol protocol, AvahiBrowserEvent event, const char* name, const char* type, const char* domain, AvahiLookupResultFlags flags); + void onResolveReply(AvahiServiceResolver* resolver, AvahiIfIndex interface, AvahiProtocol protocol, AvahiResolverEvent event, const char* name, const char* type, const char* domain, const char* host, const AvahiAddress* a, uint16_t port, AvahiStringList* txt, AvahiLookupResultFlags flags); + void onEnumerateBrowseDomainsReply(AvahiDomainBrowser* browser, AvahiIfIndex interface, AvahiProtocol protocol, AvahiBrowserEvent event, const char* domain, AvahiLookupResultFlags flags, bool isDefault); + void onEnumerateRegistrationDomainsReply(AvahiDomainBrowser* browser, AvahiIfIndex interface, AvahiProtocol protocol, AvahiBrowserEvent event, const char* domain, AvahiLookupResultFlags flags, bool isDefault); + void onQueryRecordReply(AvahiRecordBrowser* browser, AvahiIfIndex interface, AvahiProtocol protocol, AvahiBrowserEvent event, const char* name, uint16_t clazz, uint16_t type, const void* data, std::size_t size, AvahiLookupResultFlags flags); + +protected: + enum HandleTypes + { + DOMAIN_BROWSER_HANDLE, + SERVICE_BROWSER_HANDLE, + SERVICE_RESOLVER_HANDLE, + RECORD_BROWSER_HANDLE + }; + + static void parseTXTRecord(AvahiStringList* strList, Service::Properties& properties); + static void escape(const char* str, std::string& escaped); + +private: + typedef std::map AddressMap; + + AvahiResponderImpl& _responder; + AddressMap _addressMap; +}; + + +} } } // namespace Poco::DNSSD::Avahi + + +#endif // DNSSD_Avahi_AvahiBrowserImpl_INCLUDED diff --git a/DNSSD/Avahi/include/Poco/DNSSD/Avahi/AvahiResponderImpl.h b/DNSSD/Avahi/include/Poco/DNSSD/Avahi/AvahiResponderImpl.h new file mode 100644 index 000000000..b6889e514 --- /dev/null +++ b/DNSSD/Avahi/include/Poco/DNSSD/Avahi/AvahiResponderImpl.h @@ -0,0 +1,134 @@ +// +// AvahiResponderImpl.h +// +// $Id: //poco/1.7/DNSSD/Avahi/include/Poco/DNSSD/Avahi/AvahiResponderImpl.h#1 $ +// +// Library: DNSSD/Avahi +// Package: Implementation +// Module: AvahiResponderImpl +// +// Definition of the AvahiResponderImpl class. +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef DNSSD_Avahi_AvahiResponderImpl_INCLUDED +#define DNSSD_Avahi_AvahiResponderImpl_INCLUDED + + +#include "Poco/DNSSD/Avahi/Avahi.h" +#include "Poco/DNSSD/Avahi/AvahiBrowserImpl.h" +#include "Poco/DNSSD/DNSSDResponderImpl.h" +#include "Poco/DNSSD/DNSSDResponder.h" +#include "Poco/ScopedLock.h" +#include "Poco/Mutex.h" +#include "Poco/Event.h" +#include "Poco/Thread.h" +#include "Poco/Runnable.h" +#include +#include +#include +#include + + +namespace Poco { +namespace DNSSD { +namespace Avahi { + + +class AvahiBrowserImpl; + +class DNSSD_Avahi_API AvahiResponderImpl: public Poco::DNSSD::DNSSDResponderImpl, public Poco::Runnable + /// The DNSSDResponderImpl implementation for Avahi. +{ +public: + typedef Poco::ScopedLock ScopedLock; + + AvahiResponderImpl(Poco::DNSSD::DNSSDResponder& owner); + /// Creates the AvahiResponder, using the given owner. + + ~AvahiResponderImpl(); + /// Destroys the AvahiResponderImpl. + + // DNSSDResponderImpl + DNSSDBrowser& browser(); + ServiceHandle registerService(const Service& service, int options); + void unregisterService(ServiceHandle& serviceHandle); + RecordHandle addRecord(ServiceHandle serviceHandle, const Record& record); + void updateRecord(ServiceHandle serviceHandle, RecordHandle recordHandle, const Record& record); + void removeRecord(ServiceHandle serviceHandle, RecordHandle& recordHandle); + void start(); + void stop(); + + // Runnable + void run(); + + // Implementation + static const char* describeError(int code); + /// Returns a human-readable string describing the error. + + void onClientStateChange(AvahiClientState state); + void onGroupStateChange(AvahiEntryGroup* avahiGroup, AvahiEntryGroupState state); + void lock(); + void unlock(); + +protected: + enum + { + START_TIMEOUT = 5000 // milliseconds + }; + + struct RecordInfo + { + Record record; + int id; + }; + typedef std::vector RecordVec; + + struct ServiceInfo + { + Service service; + RecordVec records; + int options; + }; + typedef std::map ServiceMap; + + void reregisterServices(); + void setupEntryGroup(AvahiEntryGroup* avahiGroup, const Service& service, const RecordVec& records, int options, bool rename); + static AvahiStringList* createTXTRecord(const Service::Properties& properties); + +private: + Poco::DNSSD::DNSSDResponder& _owner; + AvahiBrowserImpl _browser; + AvahiSimplePoll* _avahiPoll; + AvahiClient* _avahiClient; + Poco::Event _avahiClientReady; + ServiceMap _services; + bool _running; + int _nextRecordId; + Poco::Mutex _mutex; + Poco::Thread _pollThread; + + friend class AvahiBrowserImpl; +}; + + +class DNSSD_Avahi_API AvahiResponderImplFactory: public Poco::DNSSD::DNSSDResponderImplFactory + /// A factory for AvahiResponderImplFactory objects. +{ +public: + DNSSDResponderImpl* createResponderImpl(Poco::DNSSD::DNSSDResponder& owner) + { + return new AvahiResponderImpl(owner); + } +}; + + +} } } // namespace Poco::DNSSD::Avahi + + +#endif // DNSSD_Avahi_AvahiResponderImpl_INCLUDED diff --git a/DNSSD/Avahi/src/AvahiBrowserImpl.cpp b/DNSSD/Avahi/src/AvahiBrowserImpl.cpp new file mode 100644 index 000000000..fd08dddb1 --- /dev/null +++ b/DNSSD/Avahi/src/AvahiBrowserImpl.cpp @@ -0,0 +1,582 @@ +// +// AvahiBrowserImpl.cpp +// +// $Id: //poco/1.7/DNSSD/Avahi/src/AvahiBrowserImpl.cpp#1 $ +// +// Library: DNSSD/Avahi +// Package: Implementation +// Module: AvahiBrowserImpl +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/DNSSD/Avahi/AvahiBrowserImpl.h" +#include "Poco/DNSSD/Avahi/AvahiResponderImpl.h" +#include "Poco/DNSSD/DNSSDException.h" +#include "Poco/NumberFormatter.h" +#include +#include +#include +#include + + +namespace Poco { +namespace DNSSD { +namespace Avahi { + + +extern "C" void onBrowseReply( + AvahiServiceBrowser* browser, + AvahiIfIndex interface, + AvahiProtocol protocol, + AvahiBrowserEvent event, + const char* name, + const char* type, + const char* domain, + AvahiLookupResultFlags flags, + void* context) +{ + try + { + AvahiBrowserImpl* pBrowser = reinterpret_cast(context); + pBrowser->onBrowseReply(browser, interface, protocol, event, name, type, domain, flags); + } + catch (...) + { + } +} + + +extern "C" void onResolveReply( + AvahiServiceResolver* resolver, + AvahiIfIndex interface, + AvahiProtocol protocol, + AvahiResolverEvent event, + const char* name, + const char* type, + const char* domain, + const char* host, + const AvahiAddress* a, + uint16_t port, + AvahiStringList* txt, + AvahiLookupResultFlags flags, + void* context) +{ + try + { + AvahiBrowserImpl* pBrowser = reinterpret_cast(context); + pBrowser->onResolveReply(resolver, interface, protocol, event, name, type, domain, host, a, port, txt, flags); + } + catch (...) + { + } +} + + +extern "C" void onEnumerateBrowseDomainsReply( + AvahiDomainBrowser* browser, + AvahiIfIndex interface, + AvahiProtocol protocol, + AvahiBrowserEvent event, + const char* domain, + AvahiLookupResultFlags flags, + void* context) +{ + try + { + AvahiBrowserImpl* pBrowser = reinterpret_cast(context); + pBrowser->onEnumerateBrowseDomainsReply(browser, interface, protocol, event, domain, flags, false); + } + catch (...) + { + } +} + + +extern "C" void onEnumerateDefaultBrowseDomainsReply( + AvahiDomainBrowser* browser, + AvahiIfIndex interface, + AvahiProtocol protocol, + AvahiBrowserEvent event, + const char* domain, + AvahiLookupResultFlags flags, + void* context) +{ + try + { + AvahiBrowserImpl* pBrowser = reinterpret_cast(context); + pBrowser->onEnumerateBrowseDomainsReply(browser, interface, protocol, event, domain, flags, true); + } + catch (...) + { + } + if (event == AVAHI_BROWSER_ALL_FOR_NOW || event == AVAHI_BROWSER_FAILURE) + { + avahi_domain_browser_free(browser); + } +} + + +extern "C" void onEnumerateRegistrationDomainsReply( + AvahiDomainBrowser* browser, + AvahiIfIndex interface, + AvahiProtocol protocol, + AvahiBrowserEvent event, + const char* domain, + AvahiLookupResultFlags flags, + void* context) +{ + try + { + AvahiBrowserImpl* pBrowser = reinterpret_cast(context); + pBrowser->onEnumerateRegistrationDomainsReply(browser, interface, protocol, event, domain, flags, false); + } + catch (...) + { + } +} + + +extern "C" void onEnumerateDefaultRegistrationDomainsReply( + AvahiDomainBrowser* browser, + AvahiIfIndex interface, + AvahiProtocol protocol, + AvahiBrowserEvent event, + const char* domain, + AvahiLookupResultFlags flags, + void* context) +{ + try + { + AvahiBrowserImpl* pBrowser = reinterpret_cast(context); + pBrowser->onEnumerateRegistrationDomainsReply(browser, interface, protocol, event, domain, flags, true); + } + catch (...) + { + } + if (event == AVAHI_BROWSER_ALL_FOR_NOW || event == AVAHI_BROWSER_FAILURE) + { + avahi_domain_browser_free(browser); + } +} + + +extern "C" void onQueryRecordReply( + AvahiRecordBrowser* browser, + AvahiIfIndex interface, + AvahiProtocol protocol, + AvahiBrowserEvent event, + const char* name, + uint16_t clazz, + uint16_t type, + const void* data, + std::size_t size, + AvahiLookupResultFlags flags, + void* context) +{ + try + { + AvahiBrowserImpl* pBrowser = reinterpret_cast(context); + pBrowser->onQueryRecordReply(browser, interface, protocol, event, name, clazz, type, data, size, flags); + } + catch (...) + { + } +} + + +AvahiBrowserImpl::AvahiBrowserImpl(AvahiResponderImpl& responder): + _responder(responder) +{ +} + + +AvahiBrowserImpl::~AvahiBrowserImpl() +{ +} + + +BrowseHandle AvahiBrowserImpl::browse(const std::string& regType, const std::string& domain, int options, Poco::Int32 networkInterface) +{ + AvahiResponderImpl::ScopedLock lock(_responder); + + AvahiIfIndex ifIndex = networkInterface == 0 ? AVAHI_IF_UNSPEC : networkInterface; + AvahiServiceBrowser* browser = avahi_service_browser_new(_responder._avahiClient, ifIndex, AVAHI_PROTO_UNSPEC, regType.c_str(), domain.empty() ? NULL : domain.c_str(), (AvahiLookupFlags) 0, Poco::DNSSD::Avahi::onBrowseReply, this); + if (!browser) + { + int error = avahi_client_errno(_responder._avahiClient); + throw Poco::DNSSD::DNSSDException("Failed to browse for " + regType, AvahiResponderImpl::describeError(error), error); + } + return BrowseHandle(browser, SERVICE_BROWSER_HANDLE); +} + + +BrowseHandle AvahiBrowserImpl::resolve(const Service& service, int options) +{ + AvahiResponderImpl::ScopedLock lock(_responder); + + AvahiIfIndex ifIndex = service.networkInterface(); + AvahiServiceResolver* resolver = avahi_service_resolver_new(_responder._avahiClient, ifIndex, AVAHI_PROTO_UNSPEC, service.name().c_str(), service.type().c_str(), service.domain().c_str(), AVAHI_PROTO_UNSPEC, (AvahiLookupFlags) 0, Poco::DNSSD::Avahi::onResolveReply, this); + if (!resolver) + { + int error = avahi_client_errno(_responder._avahiClient); + throw Poco::DNSSD::DNSSDException("Failed to resolve service " + service.name(), AvahiResponderImpl::describeError(error), error); + } + return BrowseHandle(resolver, SERVICE_RESOLVER_HANDLE); +} + + +BrowseHandle AvahiBrowserImpl::enumerateBrowseDomains(Poco::Int32 networkInterface) +{ + AvahiResponderImpl::ScopedLock lock(_responder); + + AvahiIfIndex ifIndex = networkInterface == 0 ? AVAHI_IF_UNSPEC : networkInterface; + AvahiDomainBrowser* browser = avahi_domain_browser_new(_responder._avahiClient, ifIndex, AVAHI_PROTO_UNSPEC, NULL, AVAHI_DOMAIN_BROWSER_BROWSE, (AvahiLookupFlags) 0, Poco::DNSSD::Avahi::onEnumerateBrowseDomainsReply, this); + if (!browser) + { + int error = avahi_client_errno(_responder._avahiClient); + throw Poco::DNSSD::DNSSDException("Failed to enumerate browse domains", AvahiResponderImpl::describeError(error), error); + } + AvahiDomainBrowser* defaultBrowser = avahi_domain_browser_new(_responder._avahiClient, ifIndex, AVAHI_PROTO_UNSPEC, NULL, AVAHI_DOMAIN_BROWSER_BROWSE_DEFAULT, (AvahiLookupFlags) 0, Poco::DNSSD::Avahi::onEnumerateDefaultBrowseDomainsReply, this); + if (!defaultBrowser) + { + int error = avahi_client_errno(_responder._avahiClient); + avahi_domain_browser_free(browser); + throw Poco::DNSSD::DNSSDException("Failed to enumerate default browse domains", AvahiResponderImpl::describeError(error), error); + } + return BrowseHandle(browser, DOMAIN_BROWSER_HANDLE); +} + + +BrowseHandle AvahiBrowserImpl::enumerateRegistrationDomains(Poco::Int32 networkInterface) +{ + AvahiResponderImpl::ScopedLock lock(_responder); + + AvahiIfIndex ifIndex = networkInterface == 0 ? AVAHI_IF_UNSPEC : networkInterface; + AvahiDomainBrowser* browser = avahi_domain_browser_new(_responder._avahiClient, ifIndex, AVAHI_PROTO_UNSPEC, NULL, AVAHI_DOMAIN_BROWSER_REGISTER, (AvahiLookupFlags) 0, Poco::DNSSD::Avahi::onEnumerateRegistrationDomainsReply, this); + if (!browser) + { + int error = avahi_client_errno(_responder._avahiClient); + throw Poco::DNSSD::DNSSDException("Failed to enumerate registration domains", AvahiResponderImpl::describeError(error), error); + } + AvahiDomainBrowser* defaultBrowser = avahi_domain_browser_new(_responder._avahiClient, ifIndex, AVAHI_PROTO_UNSPEC, NULL, AVAHI_DOMAIN_BROWSER_REGISTER_DEFAULT, (AvahiLookupFlags) 0, Poco::DNSSD::Avahi::onEnumerateDefaultRegistrationDomainsReply, this); + if (!defaultBrowser) + { + int error = avahi_client_errno(_responder._avahiClient); + avahi_domain_browser_free(browser); + throw Poco::DNSSD::DNSSDException("Failed to enumerate default registration domains", AvahiResponderImpl::describeError(error), error); + } + return BrowseHandle(browser, DOMAIN_BROWSER_HANDLE); +} + + +BrowseHandle AvahiBrowserImpl::queryRecord(const std::string& name, Poco::UInt16 type, Poco::UInt16 clazz, int options, Poco::Int32 networkInterface) +{ + AvahiResponderImpl::ScopedLock lock(_responder); + + AvahiIfIndex ifIndex = networkInterface == 0 ? AVAHI_IF_UNSPEC : networkInterface; + AvahiRecordBrowser* browser = avahi_record_browser_new(_responder._avahiClient, ifIndex, AVAHI_PROTO_UNSPEC, name.c_str(), clazz, type, (AvahiLookupFlags) 0, Poco::DNSSD::Avahi::onQueryRecordReply, this); + if (!browser) + { + int error = avahi_client_errno(_responder._avahiClient); + throw Poco::DNSSD::DNSSDException("Failed to query for record", AvahiResponderImpl::describeError(error), error); + } + return BrowseHandle(browser, RECORD_BROWSER_HANDLE); +} + + +BrowseHandle AvahiBrowserImpl::resolveHost(const std::string& host, int options, Poco::Int32 networkInterface) +{ + AvahiResponderImpl::ScopedLock lock(_responder); + + AddressMap::iterator it = _addressMap.find(host); + if (it != _addressMap.end()) + { + ResolveHostEventArgs args(BrowseHandle(), 0, host, it->second, networkInterface, 0); + hostResolved(this, args); + } + else + { + int err = AVAHI_ERR_DNS_NXDOMAIN; + Error error(networkInterface, err, AvahiResponderImpl::describeError(err)); + ErrorEventArgs args(BrowseHandle(), 0, error); + hostResolveError(this, args); + } + return BrowseHandle(); +} + + +void AvahiBrowserImpl::cancel(BrowseHandle& browseHandle) +{ + if (!browseHandle.isValid()) return; + + AvahiResponderImpl::ScopedLock lock(_responder); + + switch (browseHandle.subtype()) + { + case SERVICE_BROWSER_HANDLE: + avahi_service_browser_free(browseHandle.cast()); + break; + case SERVICE_RESOLVER_HANDLE: + avahi_service_resolver_free(browseHandle.cast()); + break; + case DOMAIN_BROWSER_HANDLE: + avahi_domain_browser_free(browseHandle.cast()); + break; + case RECORD_BROWSER_HANDLE: + avahi_record_browser_free(browseHandle.cast()); + break; + } + browseHandle.reset(); +} + + +void AvahiBrowserImpl::onBrowseReply( + AvahiServiceBrowser* browser, + AvahiIfIndex interface, + AvahiProtocol protocol, + AvahiBrowserEvent event, + const char* name, + const char* type, + const char* domain, + AvahiLookupResultFlags flags) +{ + AvahiResponderImpl::ScopedLock lock(_responder); + + if (event == AVAHI_BROWSER_NEW || event == AVAHI_BROWSER_REMOVE) + { + int eventFlags(0); + Service service(interface, name, type, domain); + ServiceEventArgs args(BrowseHandle(browser), eventFlags, service); + if (event == AVAHI_BROWSER_NEW) + { + serviceFound(this, args); + } + else + { + serviceRemoved(this, args); + } + } + else if (event == AVAHI_BROWSER_FAILURE) + { + int err = avahi_client_errno(_responder._avahiClient); + Error error(interface, err, AvahiResponderImpl::describeError(err)); + ErrorEventArgs args(BrowseHandle(browser), 0, error); + browseError(this, args); + } +} + + +void AvahiBrowserImpl::onResolveReply( + AvahiServiceResolver* resolver, + AvahiIfIndex interface, + AvahiProtocol protocol, + AvahiResolverEvent event, + const char* name, + const char* type, + const char* domain, + const char* host, + const AvahiAddress* a, + uint16_t port, + AvahiStringList* txt, + AvahiLookupResultFlags flags) +{ + AvahiResponderImpl::ScopedLock lock(_responder); + + if (event == AVAHI_RESOLVER_FOUND) + { + Poco::Net::IPAddress addr; + switch (a->proto) + { + case AVAHI_PROTO_INET: + addr = Poco::Net::IPAddress(&a->data.ipv4.address, sizeof(a->data.ipv4.address)); + break; +#if defined(POCO_HAVE_IPv6) + case AVAHI_PROTO_INET6: + addr = Poco::Net::IPAddress(&a->data.ipv6.address, sizeof(a->data.ipv6.address)); + break; +#endif + } + int eventFlags(0); + std::string fullName; + escape(name, fullName); + fullName += '.'; + fullName += type; + fullName += '.'; + fullName += domain; + fullName += '.'; + Service service(interface, name, fullName, type, domain, host, port); + _addressMap[service.host()] = addr; + parseTXTRecord(txt, service.properties()); + ServiceEventArgs args(BrowseHandle(resolver), eventFlags, service); + serviceResolved(this, args); + } + else if (event == AVAHI_RESOLVER_FAILURE) + { + int err = avahi_client_errno(_responder._avahiClient); + Error error(interface, err, AvahiResponderImpl::describeError(err)); + ErrorEventArgs args(BrowseHandle(resolver), 0, error); + resolveError(this, args); + } +} + + +void AvahiBrowserImpl::onEnumerateBrowseDomainsReply( + AvahiDomainBrowser* browser, + AvahiIfIndex interface, + AvahiProtocol protocol, + AvahiBrowserEvent event, + const char* domain, + AvahiLookupResultFlags flags, + bool isDefault) +{ + AvahiResponderImpl::ScopedLock lock(_responder); + + if (event == AVAHI_BROWSER_NEW || event == AVAHI_BROWSER_REMOVE) + { + int eventFlags(0); + Poco::Int32 ifIndex = interface == AVAHI_IF_UNSPEC ? 0 : interface; + Domain dom(ifIndex, domain, isDefault); + DomainEventArgs args(BrowseHandle(browser), eventFlags, dom); + if (event == AVAHI_BROWSER_NEW) + { + browseDomainFound(this, args); + } + else + { + browseDomainRemoved(this, args); + } + } + else if (event == AVAHI_BROWSER_FAILURE) + { + int err = avahi_client_errno(_responder._avahiClient); + Error error(interface, err, AvahiResponderImpl::describeError(err)); + ErrorEventArgs args(BrowseHandle(browser), 0, error); + browseDomainError(this, args); + } +} + + +void AvahiBrowserImpl::onEnumerateRegistrationDomainsReply( + AvahiDomainBrowser* browser, + AvahiIfIndex interface, + AvahiProtocol protocol, + AvahiBrowserEvent event, + const char* domain, + AvahiLookupResultFlags flags, + bool isDefault) +{ + AvahiResponderImpl::ScopedLock lock(_responder); + + if (event == AVAHI_BROWSER_NEW || event == AVAHI_BROWSER_REMOVE) + { + int eventFlags(0); + Poco::Int32 ifIndex = interface == AVAHI_IF_UNSPEC ? 0 : interface; + Domain dom(ifIndex, domain, isDefault); + DomainEventArgs args(BrowseHandle(browser), eventFlags, dom); + if (event == AVAHI_BROWSER_NEW) + { + registrationDomainFound(this, args); + } + else + { + registrationDomainRemoved(this, args); + } + } + else if (event == AVAHI_BROWSER_FAILURE) + { + int err = avahi_client_errno(_responder._avahiClient); + Error error(interface, err, AvahiResponderImpl::describeError(err)); + ErrorEventArgs args(BrowseHandle(browser), 0, error); + registrationDomainError(this, args); + } +} + + +void AvahiBrowserImpl::onQueryRecordReply( + AvahiRecordBrowser* browser, + AvahiIfIndex interface, + AvahiProtocol protocol, + AvahiBrowserEvent event, + const char* name, + uint16_t clazz, + uint16_t type, + const void* data, + std::size_t size, + AvahiLookupResultFlags flags) +{ + AvahiResponderImpl::ScopedLock lock(_responder); + + if (event == AVAHI_BROWSER_NEW || event == AVAHI_BROWSER_REMOVE) + { + int eventFlags(0); + Poco::Int32 ifIndex = interface == AVAHI_IF_UNSPEC ? 0 : interface; + Record record(ifIndex, name, type, clazz, size, data, 0); + RecordEventArgs args(BrowseHandle(browser), eventFlags, record); + if (event == AVAHI_BROWSER_NEW) + { + recordFound(this, args); + } + else + { + recordRemoved(this, args); + } + } + else if (event == AVAHI_BROWSER_FAILURE) + { + int err = avahi_client_errno(_responder._avahiClient); + Error error(interface, err, AvahiResponderImpl::describeError(err)); + ErrorEventArgs args(BrowseHandle(browser), 0, error); + recordError(this, args); + } +} + + +void AvahiBrowserImpl::parseTXTRecord(AvahiStringList* strList, Service::Properties& properties) +{ + while (strList) + { + char* key; + char* value; + std::size_t size; + avahi_string_list_get_pair(strList, &key, &value, &size); + properties.set(key, std::string(value ? value : "", size)); + avahi_free(key); + avahi_free(value); + strList = avahi_string_list_get_next(strList); + } +} + + +void AvahiBrowserImpl::escape(const char* str, std::string& escaped) +{ + while (*str) + { + if (*str <= ' ' || *str >= 127) + { + escaped += '\\'; + Poco::NumberFormatter::append0(escaped, static_cast(static_cast(*str)), 3); + } + else if (*str == '\\') + { + escaped += "\\\\"; + } + else if (*str == '.') + { + escaped += "\\."; + } + else + { + escaped += *str; + } + ++str; + } +} + + +} } } // namespace Poco::DNSSD::Avahi + diff --git a/DNSSD/Avahi/src/AvahiResponderImpl.cpp b/DNSSD/Avahi/src/AvahiResponderImpl.cpp new file mode 100644 index 000000000..dfa1249e4 --- /dev/null +++ b/DNSSD/Avahi/src/AvahiResponderImpl.cpp @@ -0,0 +1,514 @@ +// +// AvahiResponderImpl.cpp +// +// $Id: //poco/1.7/DNSSD/Avahi/src/AvahiResponderImpl.cpp#1 $ +// +// Library: DNSSD/Avahi +// Package: Implementation +// Module: AvahiResponderImpl +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/DNSSD/Avahi/AvahiResponderImpl.h" +#include "Poco/DNSSD/DNSSDException.h" +#include "Poco/StringTokenizer.h" +#include +#include +#include + + +namespace Poco { +namespace DNSSD { +namespace Avahi { + + +extern "C" int avahiPollFunc(struct pollfd *ufds, unsigned int nfds, int timeout, void *userdata) +{ + Poco::Mutex* pMutex = reinterpret_cast(userdata); + pMutex->unlock(); + int ret = poll(ufds, nfds, timeout); + pMutex->lock(); + return ret; +} + + +extern "C" void onClientStateChange(AvahiClient* avahiClient, AvahiClientState state, void* userdata) +{ + try + { + AvahiResponderImpl* pResponder = reinterpret_cast(userdata); + pResponder->onClientStateChange(state); + } + catch (...) + { + } +} + + +extern "C" void onGroupStateChange(AvahiEntryGroup* avahiGroup, AvahiEntryGroupState state, void* userdata) +{ + try + { + AvahiResponderImpl* pResponder = reinterpret_cast(userdata); + pResponder->onGroupStateChange(avahiGroup, state); + } + catch (...) + { + } +} + + +AvahiResponderImpl::AvahiResponderImpl(Poco::DNSSD::DNSSDResponder& owner): + _owner(owner), + _browser(*this), + _avahiPoll(0), + _avahiClient(0), + _running(false), + _nextRecordId(1) +{ + _avahiPoll = avahi_simple_poll_new(); + if (!_avahiPoll) throw DNSSDException("Cannot create Avahi simple poll object"); + avahi_simple_poll_set_func(_avahiPoll, Poco::DNSSD::Avahi::avahiPollFunc, &_mutex); + int error; + _avahiClient = avahi_client_new(avahi_simple_poll_get(_avahiPoll), AVAHI_CLIENT_NO_FAIL, Poco::DNSSD::Avahi::onClientStateChange, this, &error); + if (!_avahiClient) + { + avahi_simple_poll_free(_avahiPoll); + throw DNSSDException("Cannot create Avahi client", describeError(error), error); + } +} + + +AvahiResponderImpl::~AvahiResponderImpl() +{ + try + { + stop(); + avahi_client_free(_avahiClient); + avahi_simple_poll_free(_avahiPoll); + } + catch (...) + { + poco_unexpected(); + } +} + + +DNSSDBrowser& AvahiResponderImpl::browser() +{ + return _browser; +} + + +ServiceHandle AvahiResponderImpl::registerService(const Service& service, int options) +{ + ScopedLock lock(*this); + + AvahiEntryGroup* avahiGroup = avahi_entry_group_new(_avahiClient, Poco::DNSSD::Avahi::onGroupStateChange, this); + if (!avahiGroup) throw DNSSDException("Cannot create Avahi Entry Group"); + try + { + ServiceHandle serviceHandle(avahiGroup); + RecordVec records; + setupEntryGroup(avahiGroup, service, records, options, false); + _services[serviceHandle].options = options; + return serviceHandle; + } + catch (...) + { + avahi_entry_group_free(avahiGroup); + throw; + } +} + + +void AvahiResponderImpl::unregisterService(ServiceHandle& serviceHandle) +{ + ScopedLock lock(*this); + + ServiceMap::iterator it = _services.find(serviceHandle); + if (it != _services.end()) + { + _services.erase(it); + } + AvahiEntryGroup* avahiGroup = serviceHandle.cast(); + avahi_entry_group_free(avahiGroup); +} + + +RecordHandle AvahiResponderImpl::addRecord(ServiceHandle serviceHandle, const Record& record) +{ + ScopedLock lock(*this); + + ServiceMap::iterator it = _services.find(serviceHandle); + if (it != _services.end()) + { + RecordInfo recordInfo; + recordInfo.record = record; + recordInfo.id = _nextRecordId++; + it->second.records.push_back(recordInfo); + setupEntryGroup(serviceHandle.cast(), it->second.service, it->second.records, it->second.options, false); + return RecordHandle(reinterpret_cast(recordInfo.id)); + } + else throw Poco::InvalidArgumentException("Unknown ServiceHandle"); +} + + +void AvahiResponderImpl::updateRecord(ServiceHandle serviceHandle, RecordHandle recordHandle, const Record& record) +{ + ScopedLock lock(*this); + + ServiceMap::iterator it = _services.find(serviceHandle); + if (it != _services.end()) + { + bool found = false; + for (RecordVec::iterator itRec = it->second.records.begin(); itRec != it->second.records.end(); ++itRec) + { + if (itRec->id == static_cast(reinterpret_cast(recordHandle.cast()))) + { + itRec->record = record; + found = true; + break; + } + } + if (!found) throw Poco::NotFoundException("Record not found", record.name()); + setupEntryGroup(serviceHandle.cast(), it->second.service, it->second.records, it->second.options, false); + } + else throw Poco::InvalidArgumentException("Unknown ServiceHandle"); +} + + +void AvahiResponderImpl::removeRecord(ServiceHandle serviceHandle, RecordHandle& recordHandle) +{ + ScopedLock lock(*this); + + ServiceMap::iterator it = _services.find(serviceHandle); + if (it != _services.end()) + { + bool found = false; + for (RecordVec::iterator itRec = it->second.records.begin(); itRec != it->second.records.end(); ++itRec) + { + if (itRec->id == static_cast(reinterpret_cast(recordHandle.cast()))) + { + it->second.records.erase(itRec); + recordHandle.reset(); + found = true; + break; + } + } + if (!found) throw Poco::NotFoundException("Record not found"); + setupEntryGroup(serviceHandle.cast(), it->second.service, it->second.records, it->second.options, false); + } + else throw Poco::InvalidArgumentException("Unknown ServiceHandle"); +} + + +void AvahiResponderImpl::start() +{ + if (!_running) + { + if (!_pollThread.isRunning()) + { + _pollThread.start(*this); + } + if (!_avahiClientReady.tryWait(START_TIMEOUT)) + { + std::string state; + switch (avahi_client_get_state(_avahiClient)) + { + case AVAHI_CLIENT_S_REGISTERING: + state = "registering"; + break; + case AVAHI_CLIENT_S_RUNNING: + state = "running"; + break; + case AVAHI_CLIENT_S_COLLISION: + state = "collision"; + break; + case AVAHI_CLIENT_FAILURE: + state = "failure"; + break; + case AVAHI_CLIENT_CONNECTING: + state = "connecting"; + }; + throw DNSSDException("Avahi client not ready; current state", state); + } + _running = true; + } +} + + +void AvahiResponderImpl::stop() +{ + if (_running) + { + { + ScopedLock lock(*this); + avahi_simple_poll_quit(_avahiPoll); + } + _pollThread.join(); + _running = false; + } +} + + +const char* AvahiResponderImpl::describeError(int code) +{ + return avahi_strerror(code); +} + + +void AvahiResponderImpl::lock() +{ + _mutex.lock(); +} + + +void AvahiResponderImpl::unlock() +{ + _mutex.unlock(); +} + + +void AvahiResponderImpl::run() +{ + ScopedLock lock(*this); + avahi_simple_poll_loop(_avahiPoll); +} + + +void AvahiResponderImpl::setupEntryGroup(AvahiEntryGroup* avahiGroup, const Service& service, const RecordVec& records, int options, bool rename) +{ + avahi_entry_group_reset(avahiGroup); + AvahiStringList* txtList = createTXTRecord(service.properties()); + try + { + int ifIndex = service.networkInterface() == 0 ? AVAHI_IF_UNSPEC : service.networkInterface(); + std::string type = service.type(); + std::string subtypes; + std::string::size_type pos = type.find(','); + if (pos != std::string::npos) + { + subtypes.assign(type, pos + 1, type.size() - pos); + type.resize(pos); + } + std::string name(service.name()); + if (name.empty()) name = avahi_client_get_host_name(_avahiClient); + const char* domain = service.domain().empty() ? 0 : service.domain().c_str(); + const char* host = service.host().empty() ? 0 : service.host().c_str(); + + int error = rename ? AVAHI_ERR_COLLISION : avahi_entry_group_add_service_strlst( + avahiGroup, + ifIndex, + AVAHI_PROTO_UNSPEC, + (AvahiPublishFlags) 0, + name.c_str(), + type.c_str(), + domain, + host, + service.port(), + txtList + ); + while (error == AVAHI_ERR_COLLISION) + { + if (options & DNSSDResponder::REG_NO_AUTORENAME) throw DNSSDException("Cannot register service: " + name, describeError(error), error); + const char* newName = avahi_alternative_service_name(name.c_str()); + name = newName; + avahi_free(const_cast(newName)); + error = avahi_entry_group_add_service_strlst( + avahiGroup, + ifIndex, + AVAHI_PROTO_UNSPEC, + (AvahiPublishFlags) 0, + name.c_str(), + type.c_str(), + domain, + host, + service.port(), + txtList + ); + } + if (error) throw DNSSDException("Cannot add service to Avahi Entry Group: " + name, describeError(error), error); + + if (!subtypes.empty()) + { + Poco::StringTokenizer tok(subtypes, ",", Poco::StringTokenizer::TOK_IGNORE_EMPTY | Poco::StringTokenizer::TOK_TRIM); + for (Poco::StringTokenizer::Iterator it = tok.begin(); it != tok.end(); ++it) + { + error = avahi_entry_group_add_service_subtype( + avahiGroup, + service.networkInterface(), + AVAHI_PROTO_UNSPEC, + (AvahiPublishFlags) 0, + name.c_str(), + type.c_str(), + domain, + it->c_str() + ); + if (error) throw DNSSDException("Cannot add service subtype to Avahi Entry Group", describeError(error), error); + } + } + + for (RecordVec::const_iterator it = records.begin(); it != records.end(); ++it) + { + error = avahi_entry_group_add_record( + avahiGroup, + ifIndex, + AVAHI_PROTO_UNSPEC, + (AvahiPublishFlags) 0, + it->record.name().c_str(), + it->record.clazz(), + it->record.type(), + it->record.ttl(), + it->record.data(), + it->record.length() + ); + if (error) throw DNSSDException("Cannot add record to Avahi Entry Group: " + it->record.name(), describeError(error), error); + } + + error = avahi_entry_group_commit(avahiGroup); + if (error) throw DNSSDException("Cannot commit Avahi Entry Group", describeError(error), error); + + ServiceHandle serviceHandle(avahiGroup); + _services[serviceHandle].service = Service(service.networkInterface(), name, "", service.type(), service.domain(), service.host(), service.port(), service.properties()); + + avahi_string_list_free(txtList); + } + catch (...) + { + avahi_entry_group_reset(avahiGroup); + avahi_string_list_free(txtList); + throw; + } +} + + +AvahiStringList* AvahiResponderImpl::createTXTRecord(const Service::Properties& properties) +{ + AvahiStringList* avahiList = 0; + Service::Properties::ConstIterator itVers = properties.find("txtvers"); + Service::Properties::ConstIterator itEnd = properties.end(); + std::string entry; + if (itVers != itEnd) + { + std::string entry(itVers->first); + entry += '='; + entry += itVers->second; + avahiList = avahi_string_list_new(entry.c_str(), NULL); + } + + Service::Properties::ConstIterator it = properties.begin(); + for (; it != itEnd; ++it) + { + if (it != itVers) + { + if (avahiList) + { + avahiList = avahi_string_list_add_pair_arbitrary(avahiList, it->first.c_str(), reinterpret_cast(it->second.empty() ? NULL : it->second.c_str()), it->second.size()); + } + else + { + std::string entry(it->first); + if (!it->second.empty()) + { + entry += '='; + entry += it->second; + } + avahiList = avahi_string_list_new(entry.c_str(), NULL); + } + } + } + + return avahiList; +} + + +void AvahiResponderImpl::onClientStateChange(AvahiClientState state) +{ + ScopedLock lock(*this); + + if (state == AVAHI_CLIENT_S_RUNNING) + { + _avahiClientReady.set(); + reregisterServices(); + } +} + + +void AvahiResponderImpl::onGroupStateChange(AvahiEntryGroup* avahiGroup, AvahiEntryGroupState state) +{ + ScopedLock lock(*this); + + ServiceHandle serviceHandle(avahiGroup); + ServiceMap::iterator it = _services.find(serviceHandle); + if (it != _services.end()) + { + if (state == AVAHI_ENTRY_GROUP_ESTABLISHED) + { + DNSSDResponder::ServiceEventArgs args(serviceHandle, it->second.service); + _owner.serviceRegistered(this, args); + } + else if (state == AVAHI_ENTRY_GROUP_COLLISION) + { + if (it->second.options & DNSSDResponder::REG_NO_AUTORENAME) + { + int error = AVAHI_ERR_COLLISION; + DNSSDResponder::ErrorEventArgs args(serviceHandle, it->second.service, Error(it->second.service.networkInterface(), error, describeError(error))); + _owner.serviceRegistrationFailed(this, args); + } + else + { + setupEntryGroup(avahiGroup, it->second.service, it->second.records, it->second.options, true); + } + } + else if (state == AVAHI_ENTRY_GROUP_FAILURE) + { + int error = avahi_client_errno(_avahiClient); + DNSSDResponder::ErrorEventArgs args(serviceHandle, it->second.service, Error(it->second.service.networkInterface(), error, describeError(error))); + _owner.serviceRegistrationFailed(this, args); + } + } +} + + +void AvahiResponderImpl::reregisterServices() +{ + for (ServiceMap::iterator it = _services.begin(); it != _services.end(); ++it) + { + setupEntryGroup(it->first.cast(), it->second.service, it->second.records, it->second.options, false); + } +} + + +} } } // namespace Poco::DNSSD::Avahi + + +namespace Poco { +namespace DNSSD { + + +namespace +{ + Poco::DNSSD::Avahi::AvahiResponderImplFactory implFactory; +} + + +void initializeDNSSD() +{ + Poco::DNSSD::DNSSDResponder::registerImplFactory(implFactory); +} + + +void uninitializeDNSSD() +{ + Poco::DNSSD::DNSSDResponder::unregisterImplFactory(); +} + + +} } // namespace Poco::DNSSD + diff --git a/DNSSD/Bonjour/Bonjour.progen b/DNSSD/Bonjour/Bonjour.progen new file mode 100644 index 000000000..294cfd3a0 --- /dev/null +++ b/DNSSD/Bonjour/Bonjour.progen @@ -0,0 +1,19 @@ +vc.project.guid = D9257FF3-3A9A-41F6-B60E-D077EFF94186 +vc.project.name = Bonjour +vc.project.target = PocoDNSSDBonjour +vc.project.type = library +vc.project.pocobase = ..\\.. +vc.project.outdir = ${vc.project.pocobase} +vc.project.platforms = Win32, x64, WinCE +vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md +vc.project.prototype = ${vc.project.name}_vs90.vcproj +vc.project.compiler.include = ..\\..\\DNSSD\\include;..\\..\\Foundation\\include;..\\..\\Net\\include +vc.project.compiler.defines = +vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS +vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} +vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} +vc.project.linker.dependencies = dnssd.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.x64 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.WinCE = ws2.lib iphlpapi.lib +vc.solution.create = true diff --git a/DNSSD/Bonjour/Bonjour_vs160.sln b/DNSSD/Bonjour/Bonjour_vs160.sln new file mode 100644 index 000000000..1b3d16f1c --- /dev/null +++ b/DNSSD/Bonjour/Bonjour_vs160.sln @@ -0,0 +1,61 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Bonjour", "Bonjour_vs160.vcxproj", "{D9257FF3-3A9A-41F6-B60E-D077EFF94186}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 + release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + debug_shared|x64 = debug_shared|x64 + release_shared|x64 = release_shared|x64 + debug_static_mt|x64 = debug_static_mt|x64 + release_static_mt|x64 = release_static_mt|x64 + debug_static_md|x64 = debug_static_md|x64 + release_static_md|x64 = release_static_md|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|Win32.Build.0 = release_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|x64.Build.0 = debug_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|x64.ActiveCfg = release_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|x64.Build.0 = release_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|x64.Deploy.0 = release_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|x64.Build.0 = release_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|x64.Deploy.0 = release_static_md|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/DNSSD/Bonjour/Bonjour_vs160.vcxproj b/DNSSD/Bonjour/Bonjour_vs160.vcxproj new file mode 100644 index 000000000..f44b55d63 --- /dev/null +++ b/DNSSD/Bonjour/Bonjour_vs160.vcxproj @@ -0,0 +1,605 @@ + + + + + debug_shared + Win32 + + + debug_shared + x64 + + + debug_static_md + Win32 + + + debug_static_md + x64 + + + debug_static_mt + Win32 + + + debug_static_mt + x64 + + + release_shared + Win32 + + + release_shared + x64 + + + release_static_md + Win32 + + + release_static_md + x64 + + + release_static_mt + Win32 + + + release_static_mt + x64 + + + + 17.0 + Bonjour + {D9257FF3-3A9A-41F6-B60E-D077EFF94186} + Bonjour + Win32Proj + + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + DynamicLibrary + MultiByte + v142 + + + DynamicLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + DynamicLibrary + MultiByte + v142 + + + DynamicLibrary + MultiByte + v142 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>17.0.34511.75 + PocoDNSSDBonjourd + PocoDNSSDBonjourmdd + PocoDNSSDBonjourmtd + PocoDNSSDBonjour + PocoDNSSDBonjourmd + PocoDNSSDBonjourmt + PocoDNSSDBonjour64d + PocoDNSSDBonjourmdd + PocoDNSSDBonjourmtd + PocoDNSSDBonjour64 + PocoDNSSDBonjourmd + PocoDNSSDBonjourmt + + + ..\..\bin\ + obj\Bonjour\$(Configuration)\ + true + + + ..\..\bin\ + obj\Bonjour\$(Configuration)\ + false + + + ..\..\lib\ + obj\Bonjour\$(Configuration)\ + + + ..\..\lib\ + obj\Bonjour\$(Configuration)\ + + + ..\..\lib\ + obj\Bonjour\$(Configuration)\ + + + ..\..\lib\ + obj\Bonjour\$(Configuration)\ + + + ..\..\bin64\ + obj64\Bonjour\$(Configuration)\ + true + + + ..\..\bin64\ + obj64\Bonjour\$(Configuration)\ + false + + + ..\..\lib64\ + obj64\Bonjour\$(Configuration)\ + + + ..\..\lib64\ + obj64\Bonjour\$(Configuration)\ + + + ..\..\lib64\ + obj64\Bonjour\$(Configuration)\ + + + ..\..\lib64\ + obj64\Bonjour\$(Configuration)\ + + + + Disabled + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;Bonjour_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\..\bin\PocoDNSSDBonjourd.dll + true + true + $(OutDir)$(TargetName).pdb + ..\..\lib;%(AdditionalLibraryDirectories) + Console + ..\..\lib\PocoDNSSDBonjourd.lib + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;Bonjour_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\..\bin\PocoDNSSDBonjour.dll + true + false + ..\..\lib;%(AdditionalLibraryDirectories) + Console + true + true + ..\..\lib\PocoDNSSDBonjour.lib + MachineX86 + + + + + Disabled + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + true + stdcpp17 + stdc11 + + + ..\..\lib\PocoDNSSDBonjourmtd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ..\..\lib\PocoDNSSDBonjourmt.lib + + + + + Disabled + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + true + stdcpp17 + stdc11 + + + ..\..\lib\PocoDNSSDBonjourmdd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + + Default + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\..\lib\PocoDNSSDBonjourmd.lib + + + + + Disabled + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;Bonjour_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\..\bin64\PocoDNSSDBonjour64d.dll + true + true + $(OutDir)$(TargetName).pdb + ..\..\lib64;%(AdditionalLibraryDirectories) + Console + ..\..\lib64\PocoDNSSDBonjourd.lib + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;Bonjour_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\..\bin64\PocoDNSSDBonjour64.dll + true + false + ..\..\lib64;%(AdditionalLibraryDirectories) + Console + true + true + ..\..\lib64\PocoDNSSDBonjour.lib + MachineX64 + + + + + Disabled + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + true + stdcpp17 + stdc11 + + + ..\..\lib64\PocoDNSSDBonjourmtd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ..\..\lib64\PocoDNSSDBonjourmt.lib + + + + + Disabled + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + true + stdcpp17 + stdc11 + + + ..\..\lib64\PocoDNSSDBonjourmdd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ..\..\lib64\PocoDNSSDBonjourmd.lib + + + + + + + + + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + + + diff --git a/DNSSD/Bonjour/Bonjour_vs160.vcxproj.filters b/DNSSD/Bonjour/Bonjour_vs160.vcxproj.filters new file mode 100644 index 000000000..64e885600 --- /dev/null +++ b/DNSSD/Bonjour/Bonjour_vs160.vcxproj.filters @@ -0,0 +1,39 @@ + + + + + {cf44555e-cc84-43dd-b198-44d32a1381e6} + + + {b2627011-451a-4b49-b7f3-708ed1647cd3} + + + {c328392b-6d49-4985-a0b7-c0f9f2e730d3} + + + + + Implementation\Header Files + + + Implementation\Header Files + + + Implementation\Header Files + + + Implementation\Header Files + + + + + Implementation\Source Files + + + Implementation\Source Files + + + Implementation\Source Files + + + \ No newline at end of file diff --git a/DNSSD/Bonjour/Bonjour_vs170.sln b/DNSSD/Bonjour/Bonjour_vs170.sln new file mode 100644 index 000000000..d4dc21a88 --- /dev/null +++ b/DNSSD/Bonjour/Bonjour_vs170.sln @@ -0,0 +1,85 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Bonjour", "Bonjour_vs170.vcxproj", "{D9257FF3-3A9A-41F6-B60E-D077EFF94186}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|ARM64 = debug_shared|ARM64 + release_shared|ARM64 = release_shared|ARM64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 + release_static_mt|ARM64 = release_static_mt|ARM64 + debug_static_md|ARM64 = debug_static_md|ARM64 + release_static_md|ARM64 = release_static_md|ARM64 + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 + release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + debug_shared|x64 = debug_shared|x64 + release_shared|x64 = release_shared|x64 + debug_static_mt|x64 = debug_static_mt|x64 + release_static_mt|x64 = release_static_mt|x64 + debug_static_md|x64 = debug_static_md|x64 + release_static_md|x64 = release_static_md|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|Win32.Build.0 = release_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|x64.Build.0 = debug_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|x64.ActiveCfg = release_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|x64.Build.0 = release_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|x64.Deploy.0 = release_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|x64.Build.0 = release_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|x64.Deploy.0 = release_static_md|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/DNSSD/Bonjour/Bonjour_vs170.vcxproj b/DNSSD/Bonjour/Bonjour_vs170.vcxproj new file mode 100644 index 000000000..262ea4b7e --- /dev/null +++ b/DNSSD/Bonjour/Bonjour_vs170.vcxproj @@ -0,0 +1,885 @@ + + + + + debug_shared + ARM64 + + + debug_shared + Win32 + + + debug_shared + x64 + + + debug_static_md + ARM64 + + + debug_static_md + Win32 + + + debug_static_md + x64 + + + debug_static_mt + ARM64 + + + debug_static_mt + Win32 + + + debug_static_mt + x64 + + + release_shared + ARM64 + + + release_shared + Win32 + + + release_shared + x64 + + + release_static_md + ARM64 + + + release_static_md + Win32 + + + release_static_md + x64 + + + release_static_mt + ARM64 + + + release_static_mt + Win32 + + + release_static_mt + x64 + + + + 17.0 + Bonjour + {D9257FF3-3A9A-41F6-B60E-D077EFF94186} + Bonjour + Win32Proj + + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + DynamicLibrary + MultiByte + v143 + + + DynamicLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + DynamicLibrary + MultiByte + v143 + + + DynamicLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + DynamicLibrary + MultiByte + v143 + + + DynamicLibrary + MultiByte + v143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>17.0.34511.75 + PocoDNSSDBonjourA64d + PocoDNSSDBonjourmdd + PocoDNSSDBonjourmtd + PocoDNSSDBonjourA64 + PocoDNSSDBonjourmd + PocoDNSSDBonjourmt + PocoDNSSDBonjourd + PocoDNSSDBonjourmdd + PocoDNSSDBonjourmtd + PocoDNSSDBonjour + PocoDNSSDBonjourmd + PocoDNSSDBonjourmt + PocoDNSSDBonjour64d + PocoDNSSDBonjourmdd + PocoDNSSDBonjourmtd + PocoDNSSDBonjour64 + PocoDNSSDBonjourmd + PocoDNSSDBonjourmt + + + ..\..\binA64\ + objA64\Bonjour\$(Configuration)\ + true + + + ..\..\binA64\ + objA64\Bonjour\$(Configuration)\ + false + + + ..\..\libA64\ + objA64\Bonjour\$(Configuration)\ + + + ..\..\libA64\ + objA64\Bonjour\$(Configuration)\ + + + ..\..\libA64\ + objA64\Bonjour\$(Configuration)\ + + + ..\..\libA64\ + objA64\Bonjour\$(Configuration)\ + + + ..\..\bin\ + obj\Bonjour\$(Configuration)\ + true + + + ..\..\bin\ + obj\Bonjour\$(Configuration)\ + false + + + ..\..\lib\ + obj\Bonjour\$(Configuration)\ + + + ..\..\lib\ + obj\Bonjour\$(Configuration)\ + + + ..\..\lib\ + obj\Bonjour\$(Configuration)\ + + + ..\..\lib\ + obj\Bonjour\$(Configuration)\ + + + ..\..\bin64\ + obj64\Bonjour\$(Configuration)\ + true + + + ..\..\bin64\ + obj64\Bonjour\$(Configuration)\ + false + + + ..\..\lib64\ + obj64\Bonjour\$(Configuration)\ + + + ..\..\lib64\ + obj64\Bonjour\$(Configuration)\ + + + ..\..\lib64\ + obj64\Bonjour\$(Configuration)\ + + + ..\..\lib64\ + obj64\Bonjour\$(Configuration)\ + + + + Disabled + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;Bonjour_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\..\binA64\PocoDNSSDBonjourA64d.dll + true + true + $(OutDir)$(TargetName).pdb + ..\..\libA64;%(AdditionalLibraryDirectories) + Console + ..\..\libA64\PocoDNSSDBonjourd.lib + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;Bonjour_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\..\binA64\PocoDNSSDBonjourA64.dll + true + false + ..\..\libA64;%(AdditionalLibraryDirectories) + Console + true + true + ..\..\libA64\PocoDNSSDBonjour.lib + MachineARM64 + + + + + Disabled + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + true + stdcpp17 + stdc11 + + + ..\..\libA64\PocoDNSSDBonjourmtd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ..\..\libA64\PocoDNSSDBonjourmt.lib + + + + + Disabled + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + true + stdcpp17 + stdc11 + + + ..\..\libA64\PocoDNSSDBonjourmdd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ..\..\libA64\PocoDNSSDBonjourmd.lib + + + + + Disabled + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;Bonjour_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\..\bin\PocoDNSSDBonjourd.dll + true + true + $(OutDir)$(TargetName).pdb + ..\..\lib;%(AdditionalLibraryDirectories) + Console + ..\..\lib\PocoDNSSDBonjourd.lib + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;Bonjour_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\..\bin\PocoDNSSDBonjour.dll + true + false + ..\..\lib;%(AdditionalLibraryDirectories) + Console + true + true + ..\..\lib\PocoDNSSDBonjour.lib + MachineX86 + + + + + Disabled + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + true + stdcpp17 + stdc11 + + + ..\..\lib\PocoDNSSDBonjourmtd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ..\..\lib\PocoDNSSDBonjourmt.lib + + + + + Disabled + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + true + stdcpp17 + stdc11 + + + ..\..\lib\PocoDNSSDBonjourmdd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + + Default + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\..\lib\PocoDNSSDBonjourmd.lib + + + + + Disabled + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;Bonjour_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\..\bin64\PocoDNSSDBonjour64d.dll + true + true + $(OutDir)$(TargetName).pdb + ..\..\lib64;%(AdditionalLibraryDirectories) + Console + ..\..\lib64\PocoDNSSDBonjourd.lib + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;Bonjour_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\..\bin64\PocoDNSSDBonjour64.dll + true + false + ..\..\lib64;%(AdditionalLibraryDirectories) + Console + true + true + ..\..\lib64\PocoDNSSDBonjour.lib + MachineX64 + + + + + Disabled + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + true + stdcpp17 + stdc11 + + + ..\..\lib64\PocoDNSSDBonjourmtd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ..\..\lib64\PocoDNSSDBonjourmt.lib + + + + + Disabled + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + true + stdcpp17 + stdc11 + + + ..\..\lib64\PocoDNSSDBonjourmdd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\DNSSD\include;..\..\Foundation\include;..\..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ..\..\lib64\PocoDNSSDBonjourmd.lib + + + + + + + + + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + + + diff --git a/DNSSD/Bonjour/Bonjour_vs170.vcxproj.filters b/DNSSD/Bonjour/Bonjour_vs170.vcxproj.filters new file mode 100644 index 000000000..b3cefbb5a --- /dev/null +++ b/DNSSD/Bonjour/Bonjour_vs170.vcxproj.filters @@ -0,0 +1,39 @@ + + + + + {b499a951-43a2-42e9-a50c-4d24706c15f5} + + + {3672f4ca-3574-44db-a470-1154d4d7882a} + + + {af80b2ee-d29e-4040-9abb-7e54c5d7dc57} + + + + + Implementation\Header Files + + + Implementation\Header Files + + + Implementation\Header Files + + + Implementation\Header Files + + + + + Implementation\Source Files + + + Implementation\Source Files + + + Implementation\Source Files + + + \ No newline at end of file diff --git a/DNSSD/Bonjour/Bonjour_vs90.sln b/DNSSD/Bonjour/Bonjour_vs90.sln new file mode 100644 index 000000000..574f9f962 --- /dev/null +++ b/DNSSD/Bonjour/Bonjour_vs90.sln @@ -0,0 +1,37 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Bonjour", "Bonjour_vs90.vcproj", "{D9257FF3-3A9A-41F6-B60E-D077EFF94186}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 + release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|Win32.Build.0 = release_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/DNSSD/Bonjour/Bonjour_vs90.vcproj b/DNSSD/Bonjour/Bonjour_vs90.vcproj new file mode 100644 index 000000000..8ebe7442a --- /dev/null +++ b/DNSSD/Bonjour/Bonjour_vs90.vcproj @@ -0,0 +1,416 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DNSSD/Bonjour/Bonjour_x64_vs90.sln b/DNSSD/Bonjour/Bonjour_x64_vs90.sln new file mode 100644 index 000000000..edcee47d3 --- /dev/null +++ b/DNSSD/Bonjour/Bonjour_x64_vs90.sln @@ -0,0 +1,37 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Bonjour", "Bonjour_x64_vs90.vcproj", "{D9257FF3-3A9A-41F6-B60E-D077EFF94186}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|x64 = debug_shared|x64 + release_shared|x64 = release_shared|x64 + debug_static_mt|x64 = debug_static_mt|x64 + release_static_mt|x64 = release_static_mt|x64 + debug_static_md|x64 = debug_static_md|x64 + release_static_md|x64 = release_static_md|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|x64.Build.0 = debug_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|x64.ActiveCfg = release_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|x64.Build.0 = release_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|x64.Deploy.0 = release_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|x64.Build.0 = release_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|x64.Deploy.0 = release_static_md|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/DNSSD/Bonjour/CMakeLists.txt b/DNSSD/Bonjour/CMakeLists.txt new file mode 100644 index 000000000..9ebe086be --- /dev/null +++ b/DNSSD/Bonjour/CMakeLists.txt @@ -0,0 +1,33 @@ +set(LIBNAME "DNSSDBonjour") +set(POCO_LIBNAME "Poco${LIBNAME}") + +# Sources +file(GLOB SRCS_G "src/*.cpp") +POCO_SOURCES_AUTO( Bonjour_SRCS ${SRCS_G}) + +# Headers +file(GLOB_RECURSE HDRS_G "include/*.h" ) +POCO_HEADERS_AUTO( Bonjour_SRCS ${HDRS_G}) + +add_definitions( ${Bonjour_CFLAGS} -DTHREADSAFE) + +add_library( "${LIBNAME}" ${LIB_MODE} ${Bonjour_SRCS} ) +add_library( "${POCO_LIBNAME}" ALIAS "${LIBNAME}") +set_target_properties( "${LIBNAME}" + PROPERTIES + VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} + OUTPUT_NAME ${POCO_LIBNAME} + DEFINE_SYMBOL Bonjour_EXPORTS + ) + +target_link_libraries( "${LIBNAME}" Foundation Net DNSSD ${BONJOUR_LIBRARIES}) +target_include_directories( "${LIBNAME}" + PUBLIC + $ + $ + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src + ) +target_compile_definitions("${LIBNAME}" PUBLIC ${LIB_MODE_DEFINITIONS}) + +POCO_INSTALL("${LIBNAME}") +POCO_GENERATE_PACKAGE("${LIBNAME}") diff --git a/DNSSD/Bonjour/Makefile b/DNSSD/Bonjour/Makefile new file mode 100644 index 000000000..7987c97b4 --- /dev/null +++ b/DNSSD/Bonjour/Makefile @@ -0,0 +1,18 @@ +# +# Makefile +# +# $Id: //poco/1.7/DNSSD/Bonjour/Makefile#1 $ +# +# Makefile for Poco DNSSD Bonjour +# + +include $(POCO_BASE)/build/rules/global + +objects = \ + BonjourBrowserImpl BonjourResponderImpl EventLoop + +target = PocoDNSSDBonjour +target_version = 1 +target_libs = PocoNet PocoDNSSD PocoFoundation + +include $(POCO_BASE)/build/rules/lib diff --git a/DNSSD/Bonjour/cmake/PocoDNSSDBonjourConfig.cmake b/DNSSD/Bonjour/cmake/PocoDNSSDBonjourConfig.cmake new file mode 100644 index 000000000..76cfea8b9 --- /dev/null +++ b/DNSSD/Bonjour/cmake/PocoDNSSDBonjourConfig.cmake @@ -0,0 +1,5 @@ +include(CMakeFindDependencyMacro) +find_dependency(PocoFoundation) +find_dependency(PocoNet) +find_dependency(PocoDNSSD) +include("${CMAKE_CURRENT_LIST_DIR}/PocoDNSSDBonjourTargets.cmake") diff --git a/DNSSD/Bonjour/dependencies b/DNSSD/Bonjour/dependencies new file mode 100644 index 000000000..5ab5fc352 --- /dev/null +++ b/DNSSD/Bonjour/dependencies @@ -0,0 +1,3 @@ +Foundation +Net +DNSSD diff --git a/DNSSD/Bonjour/include/Poco/DNSSD/Bonjour/Bonjour.h b/DNSSD/Bonjour/include/Poco/DNSSD/Bonjour/Bonjour.h new file mode 100644 index 000000000..149c7d9be --- /dev/null +++ b/DNSSD/Bonjour/include/Poco/DNSSD/Bonjour/Bonjour.h @@ -0,0 +1,76 @@ +// +// Bonjour.h +// +// $Id: //poco/1.7/DNSSD/Bonjour/include/Poco/DNSSD/Bonjour/Bonjour.h#1 $ +// +// Library: DNSSD/Bonjour +// Package: Implementation +// Module: Bonjour +// +// Basic definitions for the Poco DNSSD Bonjour library. +// This file must be the first file included by every other DNSSD Bonjour +// header file. +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef DNSSD_Bonjour_Bonjour_INCLUDED +#define DNSSD_Bonjour_Bonjour_INCLUDED + + +#include "Poco/DNSSD/DNSSD.h" + + +// +// The following block is the standard way of creating macros which make exporting +// from a DLL simpler. All files within this DLL are compiled with the Bonjour_EXPORTS +// symbol defined on the command line. This symbol should not be defined on any project +// that uses this DLL. This way any other project whose source files include this file see +// DNSSD_Bonjour_API functions as being imported from a DLL, wheras this DLL sees symbols +// defined with this macro as being exported. +// +#if defined(_WIN32) && defined(POCO_DLL) + #if defined(Bonjour_EXPORTS) + #define DNSSD_Bonjour_API __declspec(dllexport) + #else + #define DNSSD_Bonjour_API __declspec(dllimport) + #endif +#endif + + +#if !defined(DNSSD_Bonjour_API) + #if !defined(POCO_NO_GCC_API_ATTRIBUTE) && defined (__GNUC__) && (__GNUC__ >= 4) + #define DNSSD_Bonjour_API __attribute__ ((visibility ("default"))) + #else + #define DNSSD_Bonjour_API + #endif +#endif + + +#if defined(_MSC_VER) + #if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(Bonjour_EXPORTS) + #pragma comment(lib, "PocoDNSSDBonjour" POCO_LIB_SUFFIX) + #endif +#endif + + +namespace Poco { +namespace DNSSD { + + +void DNSSD_Bonjour_API initializeDNSSD(); + /// Initialize the DNSSD subsystem. + + +void DNSSD_Bonjour_API uninitializeDNSSD(); + /// Uninitialize the DNSSD subsystem. + + +} } // namespace Poco::DNSSD + + +#endif // DNSSD_Bonjour_Bonjour_INCLUDED diff --git a/DNSSD/Bonjour/include/Poco/DNSSD/Bonjour/BonjourBrowserImpl.h b/DNSSD/Bonjour/include/Poco/DNSSD/Bonjour/BonjourBrowserImpl.h new file mode 100644 index 000000000..8acd77d32 --- /dev/null +++ b/DNSSD/Bonjour/include/Poco/DNSSD/Bonjour/BonjourBrowserImpl.h @@ -0,0 +1,79 @@ +// +// BonjourBrowserImpl.h +// +// $Id: //poco/1.7/DNSSD/Bonjour/include/Poco/DNSSD/Bonjour/BonjourBrowserImpl.h#1 $ +// +// Library: DNSSD/Bonjour +// Package: Implementation +// Module: BonjourBrowserImpl +// +// Definition of the BonjourBrowserImpl class. +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef DNSSD_Bonjour_BonjourBrowserImpl_INCLUDED +#define DNSSD_Bonjour_BonjourBrowserImpl_INCLUDED + + +#include "Poco/DNSSD/Bonjour/Bonjour.h" +#include "Poco/DNSSD/DNSSDBrowser.h" +#include "Poco/Timestamp.h" +#include "Poco/Event.h" +#include +#include + + +namespace Poco { +namespace DNSSD { +namespace Bonjour { + + +class EventLoop; + + +class DNSSD_Bonjour_API BonjourBrowserImpl: public DNSSDBrowser + /// The DNSSDBrowser implementation for Bonjour. +{ +public: + BonjourBrowserImpl(EventLoop& eventLoop); + /// Creates the BonjourBrowserImpl. + + ~BonjourBrowserImpl(); + /// Destroys the BonjourBrowserImpl. + + // DNSSDBrowser + BrowseHandle browse(const std::string& regType, const std::string& domain, int options, Poco::Int32 networkInterface) override; + BrowseHandle resolve(const Service& service, int options) override; + BrowseHandle enumerateBrowseDomains(Poco::Int32 networkInterface) override; + BrowseHandle enumerateRegistrationDomains(Poco::Int32 networkInterface) override; + BrowseHandle queryRecord(const std::string& name, Poco::UInt16 type, Poco::UInt16 clazz, int options, Poco::Int32 networkInterface) override; + BrowseHandle resolveHost(const std::string& host, int options, Poco::Int32 networkInterface) override; + void cancel(BrowseHandle& browseHandle) override; + + // Implementation + void onBrowseReply(DNSServiceRef sdRef, DNSServiceFlags flags, uint32_t interfaceIndex, DNSServiceErrorType errorCode, const char* serviceName, const char* regtype, const char* domain); + void onResolveReply(DNSServiceRef sdRef, DNSServiceFlags flags, uint32_t interfaceIndex, DNSServiceErrorType errorCode, const char* fullName, const char* host, uint16_t port, uint16_t txtLen, const unsigned char* txtRecord); + void onEnumerateBrowseDomainsReply(DNSServiceRef sdRef, DNSServiceFlags flags, uint32_t interfaceIndex, DNSServiceErrorType errorCode, const char* replyDomain); + void onEnumerateRegistrationDomainsReply(DNSServiceRef sdRef, DNSServiceFlags flags, uint32_t interfaceIndex, DNSServiceErrorType errorCode, const char* replyDomain); + void onQueryRecordReply(DNSServiceRef sdRef, DNSServiceFlags flags, uint32_t interfaceIndex, DNSServiceErrorType errorCode, const char* fullName, uint16_t rrtype, uint16_t rrclass, uint16_t rdlen, const void* rdata, uint32_t ttl); + void onResolveHostReply(DNSServiceRef sdRef, DNSServiceFlags flags, uint32_t interfaceIndex, DNSServiceErrorType errorCode, const char* hostname, const struct sockaddr* address, uint32_t ttl); + +protected: + static void parseTXTRecord(Poco::UInt16 length, const void* data, Service::Properties& properties); + +private: + using ServiceMap = std::map; + EventLoop& _eventLoop; + ServiceMap _serviceMap; +}; + + +} } } // namespace Poco::DNSSD::Bonjour + + +#endif // DNSSD_Bonjour_BonjourBrowserImpl_INCLUDED diff --git a/DNSSD/Bonjour/include/Poco/DNSSD/Bonjour/BonjourResponderImpl.h b/DNSSD/Bonjour/include/Poco/DNSSD/Bonjour/BonjourResponderImpl.h new file mode 100644 index 000000000..7c22a4e30 --- /dev/null +++ b/DNSSD/Bonjour/include/Poco/DNSSD/Bonjour/BonjourResponderImpl.h @@ -0,0 +1,88 @@ +// +// BonjourResponderImpl.h +// +// $Id: //poco/1.7/DNSSD/Bonjour/include/Poco/DNSSD/Bonjour/BonjourResponderImpl.h#1 $ +// +// Library: DNSSD/Bonjour +// Package: Implementation +// Module: BonjourResponderImpl +// +// Definition of the BonjourResponderImpl class. +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef DNSSD_Bonjour_BonjourResponderImpl_INCLUDED +#define DNSSD_Bonjour_BonjourResponderImpl_INCLUDED + + +#include "Poco/DNSSD/Bonjour/Bonjour.h" +#include "Poco/DNSSD/Bonjour/BonjourBrowserImpl.h" +#include "Poco/DNSSD/Bonjour/EventLoop.h" +#include "Poco/DNSSD/DNSSDResponderImpl.h" +#include "Poco/DNSSD/DNSSDResponder.h" +#include "Poco/Thread.h" + + +namespace Poco { +namespace DNSSD { +namespace Bonjour { + + +class DNSSD_Bonjour_API BonjourResponderImpl: public Poco::DNSSD::DNSSDResponderImpl + /// The DNSSDResponderImpl implementation for Bonjour. +{ +public: + BonjourResponderImpl(Poco::DNSSD::DNSSDResponder& owner); + /// Creates the BonjourResponder, using the given owner. + + ~BonjourResponderImpl(); + /// Destroys the BonjourResponderImpl. + + // DNSSDResponderImpl + DNSSDBrowser& browser() override; + ServiceHandle registerService(const Service& service, int options) override; + void unregisterService(ServiceHandle& serviceHandle) override; + RecordHandle addRecord(ServiceHandle serviceHandle, const Record& record) override; + void updateRecord(ServiceHandle serviceHandle, RecordHandle recordHandle, const Record& record) override; + void removeRecord(ServiceHandle serviceHandle, RecordHandle& recordHandle) override; + void start() override; + void stop() override; + + // Implementation + static const char* describeError(int code); + /// Returns a human-readable string describing the error. + + void onRegisterServiceReply(DNSServiceRef sdRef, DNSServiceFlags flags, DNSServiceErrorType errorCode, const char* name, const char* regtype, const char* domain); + +protected: + static std::string createTXTRecord(const Service::Properties& properties); + +private: + Poco::DNSSD::DNSSDResponder& _owner; + EventLoop _eventLoop; + Poco::Thread _eventLoopThread; + BonjourBrowserImpl _browser; + bool _running; +}; + + +class DNSSD_Bonjour_API BonjourResponderImplFactory: public Poco::DNSSD::DNSSDResponderImplFactory + /// A factory for BonjourResponderImplFactory objects. +{ +public: + DNSSDResponderImpl* createResponderImpl(Poco::DNSSD::DNSSDResponder& owner) + { + return new BonjourResponderImpl(owner); + } +}; + + +} } } // namespace Poco::DNSSD::Bonjour + + +#endif // DNSSD_Bonjour_BonjourResponderImpl_INCLUDED diff --git a/DNSSD/Bonjour/include/Poco/DNSSD/Bonjour/EventLoop.h b/DNSSD/Bonjour/include/Poco/DNSSD/Bonjour/EventLoop.h new file mode 100644 index 000000000..27f6d573d --- /dev/null +++ b/DNSSD/Bonjour/include/Poco/DNSSD/Bonjour/EventLoop.h @@ -0,0 +1,120 @@ +// +// EventLoop.h +// +// $Id: //poco/1.7/DNSSD/Bonjour/include/Poco/DNSSD/Bonjour/EventLoop.h#1 $ +// +// Library: DNSSD/Bonjour +// Package: Implementation +// Module: EventLoop +// +// Definition of the EventLoop class. +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef DNSSD_Bonjour_EventLoop_INCLUDED +#define DNSSD_Bonjour_EventLoop_INCLUDED + + +#include "Poco/DNSSD/Bonjour/Bonjour.h" +#include "Poco/Runnable.h" +#include "Poco/Mutex.h" +#include "Poco/Event.h" +#include "Poco/Net/Socket.h" +#include +#include +#include + + +namespace Poco { +namespace DNSSD { +namespace Bonjour { + + +class DNSSD_Bonjour_API EventLoop: public Poco::Runnable + /// The EventLoop class monitors all sockets used by Bonjour (for the connection + /// between the client and the daemon) in a thread and drives the + /// Bonjour machinery. +{ +public: + typedef Poco::ScopedLock ScopedLock; + + enum + { + EVENTLOOP_TIMEOUT = 250 + }; + + EventLoop(); + /// Creates the EventLoop. + + ~EventLoop(); + /// Destroys the EventLoop. + + void add(DNSServiceRef sdRef); + /// Adds the reference to the eventloop, monitoring it for data. + + void remove(DNSServiceRef sdRef); + /// Removes and destroys the DNSServiceRef. + + void stop(); + /// Requests to stop event loop processing. + + void shutdown(); + /// Cleans up and frees all DNSServiceRefs. + /// + /// Must be called after the event loop thread has been stopped. + + void lock(); + /// Locks the internal mutex. + + void unlock(); + /// Unlocks the internal mutex. + +protected: + void run() override; + void removeImpl(DNSServiceRef sdRef); + +private: + using SockToRef = std::map; + using RefToSock = std::map; + using RefSet = std::set; + + RefToSock _refs; + SockToRef _sockets; + RefSet _invalidatedRefs; + bool _stop; + Poco::Event _refAdded; + Poco::Mutex _mutex; +}; + + +// +// inlines +// +inline void EventLoop::stop() +{ + _stop = true; + _refAdded.set(); +} + + +inline void EventLoop::lock() +{ + _mutex.lock(); +} + + +inline void EventLoop::unlock() +{ + _mutex.unlock(); +} + + +} } } // namespace Poco::DNSSD::Bonjour + + +#endif // DNSSD_Bonjour_EventLoop_INCLUDED diff --git a/DNSSD/Bonjour/src/BonjourBrowserImpl.cpp b/DNSSD/Bonjour/src/BonjourBrowserImpl.cpp new file mode 100644 index 000000000..caef4992c --- /dev/null +++ b/DNSSD/Bonjour/src/BonjourBrowserImpl.cpp @@ -0,0 +1,486 @@ +// +// BonjourBrowserImpl.cpp +// +// $Id: //poco/1.7/DNSSD/Bonjour/src/BonjourBrowserImpl.cpp#1 $ +// +// Library: DNSSD/Bonjour +// Package: Implementation +// Module: BonjourBrowserImpl +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/DNSSD/Bonjour/BonjourBrowserImpl.h" +#include "Poco/DNSSD/Bonjour/BonjourResponderImpl.h" +#include "Poco/DNSSD/Bonjour/EventLoop.h" +#include "Poco/DNSSD/DNSSDException.h" +#include "Poco/ByteOrder.h" +#include + + +namespace Poco { +namespace DNSSD { +namespace Bonjour { + + +extern "C" void DNSSD_API onBrowseReply( + DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char* serviceName, + const char* regtype, + const char* replyDomain, + void* context) +{ + try + { + BonjourBrowserImpl* pBrowser = reinterpret_cast(context); + pBrowser->onBrowseReply(sdRef, flags, interfaceIndex, errorCode, serviceName, regtype, replyDomain); + } + catch (...) + { + } +} + + +extern "C" void DNSSD_API onResolveReply( + DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char* fullName, + const char* host, + uint16_t port, + uint16_t txtLen, +#if _DNS_SD_H+0 >= 1070600 + const unsigned char* txtRecord, +#else + const char* txtRecord, +#endif + void* context + ) +{ + try + { + BonjourBrowserImpl* pBrowser = reinterpret_cast(context); + pBrowser->onResolveReply(sdRef, flags, interfaceIndex, errorCode, fullName, host, port, txtLen, (const unsigned char*) txtRecord); + } + catch (...) + { + } +} + + +extern "C" void DNSSD_API onEnumerateBrowseDomainsReply( + DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char* replyDomain, + void* context) +{ + try + { + BonjourBrowserImpl* pBrowser = reinterpret_cast(context); + pBrowser->onEnumerateBrowseDomainsReply(sdRef, flags, interfaceIndex, errorCode, replyDomain); + } + catch (...) + { + } +} + + +extern "C" void DNSSD_API onEnumerateRegistrationDomainsReply( + DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char* replyDomain, + void* context) +{ + try + { + BonjourBrowserImpl* pBrowser = reinterpret_cast(context); + pBrowser->onEnumerateRegistrationDomainsReply(sdRef, flags, interfaceIndex, errorCode, replyDomain); + } + catch (...) + { + } +} + + +extern "C" void DNSSD_API onQueryRecordReply( + DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char* fullName, + uint16_t rrtype, + uint16_t rrclass, + uint16_t rdlen, + const void* rdata, + uint32_t ttl, + void* context) +{ + try + { + BonjourBrowserImpl* pBrowser = reinterpret_cast(context); + pBrowser->onQueryRecordReply(sdRef, flags, interfaceIndex, errorCode, fullName, rrtype, rrclass, rdlen, rdata, ttl); + } + catch (...) + { + } +} + + +extern "C" void DNSSD_API onResolveHostReply( + DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char* hostname, + const struct sockaddr* address, + uint32_t ttl, + void* context) +{ + try + { + BonjourBrowserImpl* pBrowser = reinterpret_cast(context); + pBrowser->onResolveHostReply(sdRef, flags, interfaceIndex, errorCode, hostname, address, ttl); + } + catch (...) + { + } +} + + +BonjourBrowserImpl::BonjourBrowserImpl(EventLoop& eventLoop): + _eventLoop(eventLoop) +{ +} + + +BonjourBrowserImpl::~BonjourBrowserImpl() +{ +} + + +BrowseHandle BonjourBrowserImpl::browse(const std::string& regType, const std::string& domain, int options, Poco::Int32 networkInterface) +{ + DNSServiceRef sdRef(nullptr); + EventLoop::ScopedLock lock(_eventLoop); + DNSServiceErrorType err = DNSServiceBrowse(&sdRef, 0, networkInterface, regType.c_str(), domain.empty() ? 0 : domain.c_str(), Poco::DNSSD::Bonjour::onBrowseReply, this); + if (err == kDNSServiceErr_NoError) + { + _eventLoop.add(sdRef); + return BrowseHandle(sdRef); + } + else throw Poco::DNSSD::DNSSDException("Failed to browse for " + regType, BonjourResponderImpl::describeError(err), err); +} + + +BrowseHandle BonjourBrowserImpl::resolve(const Service& service, int options) +{ + DNSServiceRef sdRef(0); + Poco::Int32 ifIndex = (options & RESOLVE_ON_ALL_INTERFACES) ? 0 : service.networkInterface(); + EventLoop::ScopedLock lock(_eventLoop); + DNSServiceErrorType err = DNSServiceResolve(&sdRef, 0, ifIndex, service.name().c_str(), service.type().c_str(), service.domain().c_str(), Poco::DNSSD::Bonjour::onResolveReply, this); + if (err == kDNSServiceErr_NoError) + { + _serviceMap[sdRef] = service; + _eventLoop.add(sdRef); + return BrowseHandle(sdRef); + } + else throw Poco::DNSSD::DNSSDException("Failed to resolve " + service.name(), BonjourResponderImpl::describeError(err), err); +} + + +BrowseHandle BonjourBrowserImpl::enumerateBrowseDomains(Poco::Int32 networkInterface) +{ + DNSServiceRef sdRef(0); + EventLoop::ScopedLock lock(_eventLoop); + DNSServiceErrorType err = DNSServiceEnumerateDomains(&sdRef, kDNSServiceFlagsBrowseDomains, networkInterface, Poco::DNSSD::Bonjour::onEnumerateBrowseDomainsReply, this); + if (err == kDNSServiceErr_NoError) + { + _eventLoop.add(sdRef); + return BrowseHandle(sdRef); + } + else throw Poco::DNSSD::DNSSDException("Failed to enumerate browse domains", BonjourResponderImpl::describeError(err), err); +} + + +BrowseHandle BonjourBrowserImpl::enumerateRegistrationDomains(Poco::Int32 networkInterface) +{ + DNSServiceRef sdRef(0); + EventLoop::ScopedLock lock(_eventLoop); + DNSServiceErrorType err = DNSServiceEnumerateDomains(&sdRef, kDNSServiceFlagsRegistrationDomains, networkInterface, Poco::DNSSD::Bonjour::onEnumerateRegistrationDomainsReply, this); + if (err == kDNSServiceErr_NoError) + { + _eventLoop.add(sdRef); + return BrowseHandle(sdRef); + } + else throw Poco::DNSSD::DNSSDException("Failed to enumerate registration domains", BonjourResponderImpl::describeError(err), err); +} + + +BrowseHandle BonjourBrowserImpl::queryRecord(const std::string& name, Poco::UInt16 type, Poco::UInt16 clazz, int options, Poco::Int32 networkInterface) +{ + DNSServiceRef sdRef(nullptr); + DNSServiceFlags flags(0); + if (options & BROWSE_FORCE_MULTICAST) flags |= kDNSServiceFlagsForceMulticast; + if (options & BROWSE_LONG_LIVED_QUERY) flags |= kDNSServiceFlagsLongLivedQuery; + EventLoop::ScopedLock lock(_eventLoop); + DNSServiceErrorType err = DNSServiceQueryRecord(&sdRef, flags, networkInterface, name.c_str(), type, clazz, Poco::DNSSD::Bonjour::onQueryRecordReply, this); + if (err == kDNSServiceErr_NoError) + { + _eventLoop.add(sdRef); + return BrowseHandle(sdRef); + } + else throw Poco::DNSSD::DNSSDException("Failed to query record " + name, BonjourResponderImpl::describeError(err), err); +} + + +BrowseHandle BonjourBrowserImpl::resolveHost(const std::string& host, int options, Poco::Int32 networkInterface) +{ + DNSServiceRef sdRef(0); + DNSServiceFlags flags(0); + if (options & BROWSE_FORCE_MULTICAST) flags |= kDNSServiceFlagsForceMulticast; + EventLoop::ScopedLock lock(_eventLoop); + DNSServiceErrorType err = DNSServiceGetAddrInfo(&sdRef, flags, networkInterface, 0, host.c_str(), Poco::DNSSD::Bonjour::onResolveHostReply, this); + if (err == kDNSServiceErr_NoError) + { + _eventLoop.add(sdRef); + return BrowseHandle(sdRef); + } + else throw Poco::DNSSD::DNSSDException("Failed to resolve host " + host, BonjourResponderImpl::describeError(err), err); +} + + +void BonjourBrowserImpl::cancel(BrowseHandle& browseHandle) +{ + DNSServiceRef sdRef = browseHandle.cast(); + ServiceMap::iterator it = _serviceMap.find(sdRef); + if (it != _serviceMap.end()) _serviceMap.erase(it); + _eventLoop.remove(sdRef); + browseHandle.reset(); +} + + +void BonjourBrowserImpl::onBrowseReply( + DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char* serviceName, + const char* regtype, + const char* replyDomain) +{ + if (errorCode == kDNSServiceErr_NoError) + { + int eventFlags((flags & kDNSServiceFlagsMoreComing) ? BROWSE_MORE_COMING : 0); + Service service(interfaceIndex, serviceName, regtype, replyDomain); + ServiceEventArgs args(BrowseHandle(sdRef), eventFlags, service); + if (flags & kDNSServiceFlagsAdd) + { + serviceFound(this, args); + } + else + { + serviceRemoved(this, args); + } + } + else + { + Error error(interfaceIndex, errorCode, BonjourResponderImpl::describeError(errorCode)); + ErrorEventArgs args(BrowseHandle(sdRef), 0, error); + browseError(this, args); + } +} + + +void BonjourBrowserImpl::onResolveReply( + DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char* fullName, + const char* host, + uint16_t port, + uint16_t txtLen, + const unsigned char* txtRecord) +{ + ServiceMap::iterator it = _serviceMap.find(sdRef); + _eventLoop.remove(sdRef); + if (errorCode == kDNSServiceErr_NoError) + { + if (it != _serviceMap.end()) + { + Service service(interfaceIndex, it->second.name(), fullName, it->second.type(), it->second.domain(), host, Poco::ByteOrder::fromNetwork(port)); + _serviceMap.erase(it); + parseTXTRecord(txtLen, txtRecord, service.properties()); + int eventFlags((flags & kDNSServiceFlagsMoreComing) ? BROWSE_MORE_COMING : 0); + ServiceEventArgs args(BrowseHandle(sdRef), eventFlags, service); + serviceResolved(this, args); + } + } + else + { + if (it != _serviceMap.end()) _serviceMap.erase(it); + Error error(interfaceIndex, errorCode, BonjourResponderImpl::describeError(errorCode)); + ErrorEventArgs args(BrowseHandle(sdRef), 0, error); + resolveError(this, args); + } +} + + +void BonjourBrowserImpl::onEnumerateBrowseDomainsReply( + DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char* replyDomain) +{ + if (errorCode == kDNSServiceErr_NoError) + { + int eventFlags((flags & kDNSServiceFlagsMoreComing) ? BROWSE_MORE_COMING : 0); + Domain domain(interfaceIndex, replyDomain, (flags & kDNSServiceFlagsDefault) != 0); + DomainEventArgs args(BrowseHandle(sdRef), eventFlags, domain); + if (flags & kDNSServiceFlagsAdd) + { + browseDomainFound(this, args); + } + else + { + browseDomainRemoved(this, args); + } + } + else + { + Error error(interfaceIndex, errorCode, BonjourResponderImpl::describeError(errorCode)); + ErrorEventArgs args(BrowseHandle(sdRef), 0, error); + browseDomainError(this, args); + } +} + + +void BonjourBrowserImpl::onEnumerateRegistrationDomainsReply( + DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char* replyDomain) +{ + if (errorCode == kDNSServiceErr_NoError) + { + int eventFlags((flags & kDNSServiceFlagsMoreComing) ? BROWSE_MORE_COMING : 0); + Domain domain(interfaceIndex, replyDomain, (flags & kDNSServiceFlagsDefault) != 0); + DomainEventArgs args(BrowseHandle(sdRef), eventFlags, domain); + if (flags & kDNSServiceFlagsAdd) + { + registrationDomainFound(this, args); + } + else + { + registrationDomainRemoved(this, args); + } + } + else + { + Error error(interfaceIndex, errorCode, BonjourResponderImpl::describeError(errorCode)); + ErrorEventArgs args(BrowseHandle(sdRef), 0, error); + registrationDomainError(this, args); + } +} + + +void BonjourBrowserImpl::onQueryRecordReply( + DNSServiceRef sdRef, + DNSServiceFlags flags, + uint32_t interfaceIndex, + DNSServiceErrorType errorCode, + const char* fullName, + uint16_t rrtype, + uint16_t rrclass, + uint16_t rdlen, + const void* rdata, + uint32_t ttl) +{ + if (errorCode == kDNSServiceErr_NoError) + { + int eventFlags((flags & kDNSServiceFlagsMoreComing) ? BROWSE_MORE_COMING : 0); + Record record(interfaceIndex, fullName, rrtype, rrclass, rdlen, rdata, ttl); + RecordEventArgs args(BrowseHandle(sdRef), eventFlags, record); + if (flags & kDNSServiceFlagsAdd) + { + recordFound(this, args); + } + else + { + recordRemoved(this, args); + } + } + else + { + Error error(interfaceIndex, errorCode, BonjourResponderImpl::describeError(errorCode)); + ErrorEventArgs args(BrowseHandle(sdRef), 0, error); + recordError(this, args); + } +} + + +void BonjourBrowserImpl::onResolveHostReply(DNSServiceRef sdRef, DNSServiceFlags flags, uint32_t interfaceIndex, DNSServiceErrorType errorCode, const char* hostname, const struct sockaddr* address, uint32_t ttl) +{ + _eventLoop.remove(sdRef); + if (errorCode == kDNSServiceErr_NoError) + { + Poco::Net::IPAddress addr; + switch (address->sa_family) + { + case AF_INET: + addr = Poco::Net::IPAddress(&reinterpret_cast(address)->sin_addr, sizeof(in_addr)); + break; +#if defined(POCO_HAVE_IPv6) + case AF_INET6: + addr = Poco::Net::IPAddress(&reinterpret_cast(address)->sin6_addr, sizeof(in6_addr)); + break; +#endif + } + int eventFlags((flags & kDNSServiceFlagsMoreComing) ? BROWSE_MORE_COMING : 0); + std::string host(hostname); + ResolveHostEventArgs args(BrowseHandle(sdRef), eventFlags, host, addr, interfaceIndex, ttl); + hostResolved(this, args); + } + else + { + Error error(interfaceIndex, errorCode, BonjourResponderImpl::describeError(errorCode)); + ErrorEventArgs args(BrowseHandle(sdRef), 0, error); + hostResolveError(this, args); + } +} + + +void BonjourBrowserImpl::parseTXTRecord(Poco::UInt16 length, const void* data, Service::Properties& properties) +{ + Poco::UInt16 n = TXTRecordGetCount(length, data); + char key[256]; + std::string strKey; + for (Poco::UInt16 i = 0; i < n; ++i) + { + Poco::UInt8 valueLength = 0; + const void* value; + TXTRecordGetItemAtIndex(length, data, i, sizeof(key), key, &valueLength, &value); + strKey.assign(key); + if (!strKey.empty()) // An empty TXT record will contain one key with an empty name. + { + properties.add(strKey, std::string(value ? reinterpret_cast(value) : "", valueLength)); + } + } +} + + +} } } // namespace Poco::DNSSD::Bonjour diff --git a/DNSSD/Bonjour/src/BonjourResponderImpl.cpp b/DNSSD/Bonjour/src/BonjourResponderImpl.cpp new file mode 100644 index 000000000..96cd5ddf8 --- /dev/null +++ b/DNSSD/Bonjour/src/BonjourResponderImpl.cpp @@ -0,0 +1,341 @@ +// +// BonjourResponderImpl.cpp +// +// $Id: //poco/1.7/DNSSD/Bonjour/src/BonjourResponderImpl.cpp#1 $ +// +// Library: DNSSD/Bonjour +// Package: Implementation +// Module: BonjourResponderImpl +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/DNSSD/Bonjour/BonjourResponderImpl.h" +#include "Poco/DNSSD/DNSSDException.h" +#include "Poco/ByteOrder.h" +#include "Poco/Buffer.h" +#include + + +namespace Poco { +namespace DNSSD { +namespace Bonjour { + + +extern "C" void DNSSD_API onRegisterServiceReply( + DNSServiceRef sdRef, + DNSServiceFlags flags, + DNSServiceErrorType errorCode, + const char* name, + const char* regtype, + const char* domain, + void *context) +{ + try + { + BonjourResponderImpl* pResponder = reinterpret_cast(context); + pResponder->onRegisterServiceReply(sdRef, flags, errorCode, name, regtype, domain); + } + catch (...) + { + } +} + + +BonjourResponderImpl::BonjourResponderImpl(Poco::DNSSD::DNSSDResponder& owner): + _owner(owner), + _browser(_eventLoop), + _running(false) +{ +} + + +BonjourResponderImpl::~BonjourResponderImpl() +{ + try + { + stop(); + } + catch (...) + { + poco_unexpected(); + } +} + + +DNSSDBrowser& BonjourResponderImpl::browser() +{ + return _browser; +} + + +ServiceHandle BonjourResponderImpl::registerService(const Service& service, int options) +{ + DNSServiceRef sdRef(nullptr); + EventLoop::ScopedLock lock(_eventLoop); + DNSServiceFlags flags(0); + uint32_t intf = (options & DNSSDResponder::REG_LOCAL_ONLY) ? kDNSServiceInterfaceIndexLocalOnly : service.networkInterface(); + if (options & DNSSDResponder::REG_NO_AUTORENAME) flags |= kDNSServiceFlagsNoAutoRename; +#if (_DNS_SD_H <10960002) + // kDNSServiceFlagsNonBrowsable was removed in 1096.0.2 + if (options & DNSSDResponder::REG_NON_BROWSABLE) flags |= kDNSServiceFlagsNonBrowsable; +#endif + std::string txtRecord = createTXTRecord(service.properties()); + DNSServiceErrorType err = DNSServiceRegister(&sdRef, flags, intf, service.name().empty() ? 0 : service.name().c_str(), service.type().c_str(), service.domain().empty() ? 0 : service.domain().c_str(), service.host().empty() ? 0 : service.host().c_str(), Poco::ByteOrder::toNetwork(service.port()), txtRecord.size(), txtRecord.empty() ? 0 : txtRecord.data(), Poco::DNSSD::Bonjour::onRegisterServiceReply, this); + if (err == kDNSServiceErr_NoError) + { + _eventLoop.add(sdRef); + return ServiceHandle(sdRef); + } + else throw Poco::DNSSD::DNSSDException("Failed to register " + service.type(), describeError(err), err); +} + + +void BonjourResponderImpl::unregisterService(ServiceHandle& serviceHandle) +{ + DNSServiceRef sdRef = serviceHandle.cast(); + _eventLoop.remove(sdRef); + serviceHandle.reset(); +} + + +RecordHandle BonjourResponderImpl::addRecord(ServiceHandle serviceHandle, const Record& record) +{ + DNSRecordRef recRef(0); + EventLoop::ScopedLock lock(_eventLoop); + DNSServiceErrorType err = DNSServiceAddRecord(serviceHandle.cast(), &recRef, 0, record.type(), record.length(), record.data(), record.ttl()); + if (err == kDNSServiceErr_NoError) + { + return RecordHandle(recRef); + } + else throw Poco::DNSSD::DNSSDException("Failed to add record " + record.name(), describeError(err), err); +} + + +void BonjourResponderImpl::updateRecord(ServiceHandle serviceHandle, RecordHandle recordHandle, const Record& record) +{ + EventLoop::ScopedLock lock(_eventLoop); + DNSServiceErrorType err = DNSServiceUpdateRecord(serviceHandle.cast(), recordHandle.cast(), 0, record.length(), record.data(), record.ttl()); + if (err != kDNSServiceErr_NoError) + { + throw Poco::DNSSD::DNSSDException("Failed to update record " + record.name(), describeError(err), err); + } +} + + +void BonjourResponderImpl::removeRecord(ServiceHandle serviceHandle, RecordHandle& recordHandle) +{ + EventLoop::ScopedLock lock(_eventLoop); + DNSServiceErrorType err = DNSServiceRemoveRecord(serviceHandle.cast(), recordHandle.cast(), 0); + if (err == kDNSServiceErr_NoError) + { + recordHandle.reset(); + } + else throw Poco::DNSSD::DNSSDException("Failed to remove record", describeError(err), err); +} + + +void BonjourResponderImpl::start() +{ + poco_assert (!_running); + + _eventLoopThread.start(_eventLoop); + _running = true; +} + + +void BonjourResponderImpl::stop() +{ + if (_running) + { + _eventLoop.stop(); + _eventLoopThread.join(); + _eventLoop.shutdown(); + _running = false; + } +} + + +const char* BonjourResponderImpl::describeError(int code) +{ + switch (code) + { + case kDNSServiceErr_Unknown: + return "Unknown"; + case kDNSServiceErr_NoSuchName: + return "No such name"; + case kDNSServiceErr_NoMemory: + return "No memory"; + case kDNSServiceErr_BadParam: + return "Bad parameter"; + case kDNSServiceErr_BadReference: + return "Bad reference"; + case kDNSServiceErr_BadState: + return "Bad state"; + case kDNSServiceErr_BadFlags: + return "Bad flags"; + case kDNSServiceErr_Unsupported: + return "Unsupported"; + case kDNSServiceErr_NotInitialized: + return "Not initialized"; + case kDNSServiceErr_AlreadyRegistered: + return "Already registered"; + case kDNSServiceErr_NameConflict: + return "Name conflict"; + case kDNSServiceErr_Invalid: + return "Invalid"; + case kDNSServiceErr_Firewall: + return "Firewall"; + case kDNSServiceErr_Incompatible: + return "Client library incompatible with daemon"; + case kDNSServiceErr_BadInterfaceIndex: + return "Bad interface index"; + case kDNSServiceErr_Refused: + return "Refused"; + case kDNSServiceErr_NoSuchRecord: + return "No such record"; + case kDNSServiceErr_NoAuth: + return "No auth"; + case kDNSServiceErr_NoSuchKey: + return "No such key"; + case kDNSServiceErr_NATTraversal: + return "NAT traversal"; + case kDNSServiceErr_DoubleNAT: + return "Double NAT"; + case kDNSServiceErr_BadTime: + return "Bad time"; + case kDNSServiceErr_BadSig: + return "Bad signature"; + case kDNSServiceErr_BadKey: + return "Bad key"; + case kDNSServiceErr_Transient: + return "Transient error"; + case kDNSServiceErr_ServiceNotRunning: + return "Service not running"; + case kDNSServiceErr_NATPortMappingUnsupported: + return "NAT port mapping not supported"; + case kDNSServiceErr_NATPortMappingDisabled: + return "NAT port mapping disabled"; +#if _DNS_SD_H+0 >= 2580000 + case kDNSServiceErr_NoRouter: + return "No router"; + case kDNSServiceErr_PollingMode: + return "Polling mode"; +#endif + default: + return "Error"; + } +} + + +std::string BonjourResponderImpl::createTXTRecord(const Service::Properties& properties) +{ + if (properties.empty()) return std::string(1, '\0'); + + Service::Properties::ConstIterator it = properties.begin(); + Service::Properties::ConstIterator itEnd = properties.end(); + std::size_t requiredSize = 0; + for (; it != itEnd; ++it) + { + if (it->first.size() == 0) + throw Poco::InvalidArgumentException("Empty property name is not allowed"); + + std::size_t prevSize = requiredSize; + requiredSize += it->first.size() + 1; // add length byte + if (!it->second.empty()) + { + requiredSize += it->second.size() + 1; // add '=' character + } + if (requiredSize - prevSize > 256) + throw Poco::InvalidArgumentException("Property too large: size of key and value together must not exceed 254 bytes"); + } + + if (requiredSize > 65535) + throw Poco::InvalidArgumentException("Too many properties: maximum TXT record size of 65535 bytes exceeded"); + + Poco::UInt16 size = static_cast(requiredSize); + Poco::Buffer buffer(requiredSize); + + TXTRecordRef ref; + TXTRecordCreate(&ref, size, buffer.begin()); + + // if present, txtvers must be first key in TXT record + Service::Properties::ConstIterator itVers = properties.find("txtvers"); + if (itVers != itEnd) + { + Poco::UInt8 valueSize = static_cast(itVers->second.size()); + TXTRecordSetValue(&ref, itVers->first.c_str(), valueSize, valueSize == 0 ? 0 : itVers->second.c_str()); + } + + it = properties.begin(); + for (; it != itEnd; ++it) + { + if (it != itVers) + { + Poco::UInt8 valueSize = static_cast(it->second.size()); + TXTRecordSetValue(&ref, it->first.c_str(), valueSize, valueSize == 0 ? 0 : it->second.c_str()); + } + } + const void* txtRecord = TXTRecordGetBytesPtr(&ref); + Poco::UInt16 txtSize = TXTRecordGetLength(&ref); + std::string result(reinterpret_cast(txtRecord), txtSize); + TXTRecordDeallocate(&ref); + + return result; +} + + +void BonjourResponderImpl::onRegisterServiceReply( + DNSServiceRef sdRef, + DNSServiceFlags flags, + DNSServiceErrorType errorCode, + const char* name, + const char* regtype, + const char* domain) +{ + if (errorCode == kDNSServiceErr_NoError) + { + Service service(0, name, regtype, domain); + DNSSDResponder::ServiceEventArgs args(ServiceHandle(sdRef), service); + _owner.serviceRegistered(this, args); + } + else + { + Service service(0, name, regtype, domain); + Error error(0, errorCode, describeError(errorCode)); + DNSSDResponder::ErrorEventArgs args(ServiceHandle(sdRef), service, error); + _owner.serviceRegistrationFailed(this, args); + } +} + + +} } } // namespace Poco::DNSSD::Bonjour + + +namespace Poco { +namespace DNSSD { + + +namespace +{ + Poco::DNSSD::Bonjour::BonjourResponderImplFactory implFactory; +} + + +void initializeDNSSD() +{ + Poco::DNSSD::DNSSDResponder::registerImplFactory(implFactory); +} + + +void uninitializeDNSSD() +{ + Poco::DNSSD::DNSSDResponder::unregisterImplFactory(); +} + + +} } // namespace Poco::DNSSD diff --git a/DNSSD/Bonjour/src/EventLoop.cpp b/DNSSD/Bonjour/src/EventLoop.cpp new file mode 100644 index 000000000..b74a5cfe7 --- /dev/null +++ b/DNSSD/Bonjour/src/EventLoop.cpp @@ -0,0 +1,157 @@ +// +// EventLoop.cpp +// +// $Id: //poco/1.7/DNSSD/Bonjour/src/EventLoop.cpp#1 $ +// +// Library: DNSSD/Bonjour +// Package: Implementation +// Module: EventLoop +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/DNSSD/Bonjour/EventLoop.h" +#include "Poco/Net/StreamSocket.h" +#include "Poco/Net/StreamSocketImpl.h" +#include + + +namespace Poco { +namespace DNSSD { +namespace Bonjour { + + +EventLoop::EventLoop(): + _stop(false) +{ +} + + +EventLoop::~EventLoop() +{ + try + { + shutdown(); + } + catch (...) + { + poco_unexpected(); + } +} + + +void EventLoop::shutdown() +{ + RefToSock::iterator it = _refs.begin(); + RefToSock::iterator itEnd = _refs.end(); + for (; it != itEnd; ++it) + { + DNSServiceRefDeallocate(it->first); + } + _refs.clear(); + _sockets.clear(); + _invalidatedRefs.clear(); +} + + +void EventLoop::add(DNSServiceRef sdRef) +{ + int sockfd = DNSServiceRefSockFD(sdRef); + Poco::Net::StreamSocket sock(new Poco::Net::StreamSocketImpl(sockfd)); + + { + Poco::Mutex::ScopedLock lock(_mutex); + _sockets[sock] = sdRef; + _refs[sdRef] = sock; + } + + _refAdded.set(); +} + + +void EventLoop::remove(DNSServiceRef sdRef) +{ + Poco::Mutex::ScopedLock lock(_mutex); + + _invalidatedRefs.insert(sdRef); +} + + +void EventLoop::removeImpl(DNSServiceRef sdRef) +{ + RefToSock::iterator it = _refs.find(sdRef); + if (it != _refs.end()) + { + _sockets.erase(it->second); + _refs.erase(it); + } + DNSServiceRefDeallocate(sdRef); +} + + +void EventLoop::run() +{ + Poco::Net::Socket::SocketList readList; + Poco::Net::Socket::SocketList writeList; + Poco::Net::Socket::SocketList errList; + + while (!_stop) + { + readList.clear(); + if (!_refs.empty() || _refAdded.tryWait(EVENTLOOP_TIMEOUT)) + { + Poco::Mutex::ScopedLock lock(_mutex); + + RefToSock::const_iterator it = _refs.begin(); + RefToSock::const_iterator itEnd = _refs.end(); + for (; it != itEnd; ++it) + { + readList.push_back(it->second); + } + } + + if (!readList.empty()) + { + Poco::Timespan timeout(1000*EVENTLOOP_TIMEOUT); + int ready = Poco::Net::Socket::select(readList, writeList, errList, timeout); + if (ready > 0) + { + Poco::Net::Socket::SocketList::iterator it = readList.begin(); + Poco::Net::Socket::SocketList::iterator itEnd = readList.end(); + for (; it != itEnd; ++it) + { + Poco::Mutex::ScopedLock lock(_mutex); + + SockToRef::iterator itSock = _sockets.find(*it); + poco_assert_dbg (itSock != _sockets.end()); + RefSet::iterator itSet = _invalidatedRefs.find(itSock->second); + if (itSet != _invalidatedRefs.end()) + { + removeImpl(itSock->second); + _invalidatedRefs.erase(itSet); + } + else + { + DNSServiceProcessResult(itSock->second); + } + } + } + } + + Poco::Mutex::ScopedLock lock(_mutex); + RefSet::iterator itSet =_invalidatedRefs.begin(); + RefSet::iterator itSetEnd = _invalidatedRefs.end(); + for (; itSet != itSetEnd; ++itSet) + { + removeImpl(*itSet); + } + _invalidatedRefs.clear(); + } +} + + +} } } // namespace Poco::DNSSD::Bonjour diff --git a/DNSSD/CMakeLists.txt b/DNSSD/CMakeLists.txt new file mode 100644 index 000000000..833a2c6ec --- /dev/null +++ b/DNSSD/CMakeLists.txt @@ -0,0 +1,88 @@ +# ITNOA + +set(DNSSD_IMPLEMENTATION_LIBRARY "") + +macro(ADD_AVAHI) + find_package(Avahi REQUIRED) + if(AVAHI_FOUND) + include_directories("${AVAHI_INCLUDE_DIR}") + message(STATUS "Avahi Support Enabled") + add_subdirectory( Avahi ) + set(DNSSD_IMPLEMENTATION_LIBRARY "DNSSDAvahi") + else() + message(ERROR "Avahi does not found, please make install it") + endif() +endmacro() + +macro(ADD_BONJOUR) + find_package(Bonjour REQUIRED) + if(BONJOUR_FOUND) + if(NOT APPLE) + include_directories("${BONJOUR_INCLUDE_DIR}") + endif() + message(STATUS "Bonjour Support Enabled") + add_subdirectory( Bonjour ) + set(DNSSD_IMPLEMENTATION_LIBRARY "DNSSDBonjour") + else() + message(ERROR "Bonjour does not found, please make install sdk") + endif() +endmacro() + +set(LIBNAME "DNSSD") +set(POCO_LIBNAME "Poco${LIBNAME}") + +# Sources +file(GLOB SRCS_G "src/*.cpp") +POCO_SOURCES_AUTO( SRCS ${SRCS_G}) + +# Headers +file(GLOB_RECURSE HDRS_G "include/*.h" ) +POCO_HEADERS_AUTO( SRCS ${HDRS_G}) + +if (NOT POCO_STATIC) + add_definitions(-DTHREADSAFE) +endif (NOT POCO_STATIC) + +add_library( "${LIBNAME}" ${LIB_MODE} ${SRCS} ) +add_library( "${POCO_LIBNAME}" ALIAS "${LIBNAME}") +set_target_properties( "${LIBNAME}" + PROPERTIES + VERSION ${SHARED_LIBRARY_VERSION} SOVERSION ${SHARED_LIBRARY_VERSION} + OUTPUT_NAME ${POCO_LIBNAME} + DEFINE_SYMBOL DNSSD_EXPORTS + ) + +target_link_libraries( "${LIBNAME}" Foundation Net) +target_include_directories( "${LIBNAME}" + PUBLIC + $ + $ + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src + ) +target_compile_definitions("${LIBNAME}" PUBLIC ${LIB_MODE_DEFINITIONS}) + +POCO_INSTALL("${LIBNAME}") +POCO_GENERATE_PACKAGE("${LIBNAME}") + +if(ENABLE_DNSSD_DEFAULT) + if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") # `UNIX AND NOT APPLE` it is not equal to Linux ;) + set(LINUX TRUE) + endif() + if(LINUX) + ADD_AVAHI() + else() + ADD_BONJOUR() + endif() +endif() + +if(ENABLE_DNSSD_AVHAI) + ADD_AVAHI() +endif() + +if(ENABLE_DNSSD_BONJOUR) + ADD_BONJOUR() +endif() + +if (ENABLE_SAMPLES) + add_subdirectory(samples) +endif () diff --git a/DNSSD/DNSSD.progen b/DNSSD/DNSSD.progen new file mode 100644 index 000000000..eb0c92b90 --- /dev/null +++ b/DNSSD/DNSSD.progen @@ -0,0 +1,18 @@ +vc.project.guid = D9257FF3-3A9A-41F6-B60E-D077EFF94186 +vc.project.name = DNSSD +vc.project.target = Poco${vc.project.name} +vc.project.type = library +vc.project.pocobase = .. +vc.project.outdir = ${vc.project.pocobase} +vc.project.platforms = Win32, x64, WinCE +vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md +vc.project.prototype = ${vc.project.name}_vs90.vcproj +vc.project.compiler.include = ..\\Foundation\\include;..\\Net\\include +vc.project.compiler.defines = +vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS +vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} +vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.x64 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.WinCE = ws2.lib iphlpapi.lib +vc.solution.create = true diff --git a/DNSSD/DNSSD_vs160.sln b/DNSSD/DNSSD_vs160.sln new file mode 100644 index 000000000..060001943 --- /dev/null +++ b/DNSSD/DNSSD_vs160.sln @@ -0,0 +1,61 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DNSSD", "DNSSD_vs160.vcxproj", "{D9257FF3-3A9A-41F6-B60E-D077EFF94186}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 + release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + debug_shared|x64 = debug_shared|x64 + release_shared|x64 = release_shared|x64 + debug_static_mt|x64 = debug_static_mt|x64 + release_static_mt|x64 = release_static_mt|x64 + debug_static_md|x64 = debug_static_md|x64 + release_static_md|x64 = release_static_md|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|Win32.Build.0 = release_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|x64.Build.0 = debug_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|x64.ActiveCfg = release_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|x64.Build.0 = release_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|x64.Deploy.0 = release_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|x64.Build.0 = release_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|x64.Deploy.0 = release_static_md|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/DNSSD/DNSSD_vs160.vcxproj b/DNSSD/DNSSD_vs160.vcxproj new file mode 100644 index 000000000..2cf9269d4 --- /dev/null +++ b/DNSSD/DNSSD_vs160.vcxproj @@ -0,0 +1,635 @@ + + + + + debug_shared + Win32 + + + debug_shared + x64 + + + debug_static_md + Win32 + + + debug_static_md + x64 + + + debug_static_mt + Win32 + + + debug_static_mt + x64 + + + release_shared + Win32 + + + release_shared + x64 + + + release_static_md + Win32 + + + release_static_md + x64 + + + release_static_mt + Win32 + + + release_static_mt + x64 + + + + 17.0 + DNSSD + {D9257FF3-3A9A-41F6-B60E-D077EFF94186} + DNSSD + Win32Proj + + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + DynamicLibrary + MultiByte + v142 + + + DynamicLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + StaticLibrary + MultiByte + v142 + + + DynamicLibrary + MultiByte + v142 + + + DynamicLibrary + MultiByte + v142 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>17.0.34511.75 + PocoDNSSDd + PocoDNSSDmdd + PocoDNSSDmtd + PocoDNSSD + PocoDNSSDmd + PocoDNSSDmt + PocoDNSSD64d + PocoDNSSDmdd + PocoDNSSDmtd + PocoDNSSD64 + PocoDNSSDmd + PocoDNSSDmt + + + ..\bin\ + obj\DNSSD\$(Configuration)\ + true + + + ..\bin\ + obj\DNSSD\$(Configuration)\ + false + + + ..\lib\ + obj\DNSSD\$(Configuration)\ + + + ..\lib\ + obj\DNSSD\$(Configuration)\ + + + ..\lib\ + obj\DNSSD\$(Configuration)\ + + + ..\lib\ + obj\DNSSD\$(Configuration)\ + + + ..\bin64\ + obj64\DNSSD\$(Configuration)\ + true + + + ..\bin64\ + obj64\DNSSD\$(Configuration)\ + false + + + ..\lib64\ + obj64\DNSSD\$(Configuration)\ + + + ..\lib64\ + obj64\DNSSD\$(Configuration)\ + + + ..\lib64\ + obj64\DNSSD\$(Configuration)\ + + + ..\lib64\ + obj64\DNSSD\$(Configuration)\ + + + + Disabled + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;DNSSD_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\bin\PocoDNSSDd.dll + true + true + $(OutDir)$(TargetName).pdb + ..\lib;%(AdditionalLibraryDirectories) + Console + ..\lib\PocoDNSSDd.lib + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;DNSSD_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\bin\PocoDNSSD.dll + true + false + ..\lib;%(AdditionalLibraryDirectories) + Console + true + true + ..\lib\PocoDNSSD.lib + MachineX86 + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + true + stdcpp17 + stdc11 + + + ..\lib\PocoDNSSDmtd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ..\lib\PocoDNSSDmt.lib + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + true + stdcpp17 + stdc11 + + + ..\lib\PocoDNSSDmdd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + + Default + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\lib\PocoDNSSDmd.lib + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;DNSSD_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\bin64\PocoDNSSD64d.dll + true + true + $(OutDir)$(TargetName).pdb + ..\lib64;%(AdditionalLibraryDirectories) + Console + ..\lib64\PocoDNSSDd.lib + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;DNSSD_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\bin64\PocoDNSSD64.dll + true + false + ..\lib64;%(AdditionalLibraryDirectories) + Console + true + true + ..\lib64\PocoDNSSD.lib + MachineX64 + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + true + stdcpp17 + stdc11 + + + ..\lib64\PocoDNSSDmtd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ..\lib64\PocoDNSSDmt.lib + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + true + stdcpp17 + stdc11 + + + ..\lib64\PocoDNSSDmdd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ..\lib64\PocoDNSSDmd.lib + + + + + + + + + + + + + + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + + + diff --git a/DNSSD/DNSSD_vs160.vcxproj.filters b/DNSSD/DNSSD_vs160.vcxproj.filters new file mode 100644 index 000000000..b6ecb4e67 --- /dev/null +++ b/DNSSD/DNSSD_vs160.vcxproj.filters @@ -0,0 +1,69 @@ + + + + + {99303623-ebed-4008-92f1-ea9429ece898} + + + {018aa474-204b-4604-8dd1-8d1089d23bb6} + + + {ce1ab056-bb91-4f68-be21-d2cd905c33d3} + + + + + Core\Header Files + + + Core\Header Files + + + Core\Header Files + + + Core\Header Files + + + Core\Header Files + + + Core\Header Files + + + Core\Header Files + + + Core\Header Files + + + Core\Header Files + + + + + Core\Source Files + + + Core\Source Files + + + Core\Source Files + + + Core\Source Files + + + Core\Source Files + + + Core\Source Files + + + Core\Source Files + + + Core\Source Files + + + \ No newline at end of file diff --git a/DNSSD/DNSSD_vs170.sln b/DNSSD/DNSSD_vs170.sln new file mode 100644 index 000000000..444853056 --- /dev/null +++ b/DNSSD/DNSSD_vs170.sln @@ -0,0 +1,85 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DNSSD", "DNSSD_vs170.vcxproj", "{D9257FF3-3A9A-41F6-B60E-D077EFF94186}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|ARM64 = debug_shared|ARM64 + release_shared|ARM64 = release_shared|ARM64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 + release_static_mt|ARM64 = release_static_mt|ARM64 + debug_static_md|ARM64 = debug_static_md|ARM64 + release_static_md|ARM64 = release_static_md|ARM64 + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 + release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + debug_shared|x64 = debug_shared|x64 + release_shared|x64 = release_shared|x64 + debug_static_mt|x64 = debug_static_mt|x64 + release_static_mt|x64 = release_static_mt|x64 + debug_static_md|x64 = debug_static_md|x64 + release_static_md|x64 = release_static_md|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|Win32.Build.0 = release_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|x64.Build.0 = debug_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|x64.ActiveCfg = release_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|x64.Build.0 = release_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|x64.Deploy.0 = release_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|x64.Build.0 = release_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|x64.Deploy.0 = release_static_md|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/DNSSD/DNSSD_vs170.vcxproj b/DNSSD/DNSSD_vs170.vcxproj new file mode 100644 index 000000000..cc7714344 --- /dev/null +++ b/DNSSD/DNSSD_vs170.vcxproj @@ -0,0 +1,915 @@ + + + + + debug_shared + ARM64 + + + debug_shared + Win32 + + + debug_shared + x64 + + + debug_static_md + ARM64 + + + debug_static_md + Win32 + + + debug_static_md + x64 + + + debug_static_mt + ARM64 + + + debug_static_mt + Win32 + + + debug_static_mt + x64 + + + release_shared + ARM64 + + + release_shared + Win32 + + + release_shared + x64 + + + release_static_md + ARM64 + + + release_static_md + Win32 + + + release_static_md + x64 + + + release_static_mt + ARM64 + + + release_static_mt + Win32 + + + release_static_mt + x64 + + + + 17.0 + DNSSD + {D9257FF3-3A9A-41F6-B60E-D077EFF94186} + DNSSD + Win32Proj + + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + DynamicLibrary + MultiByte + v143 + + + DynamicLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + DynamicLibrary + MultiByte + v143 + + + DynamicLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + StaticLibrary + MultiByte + v143 + + + DynamicLibrary + MultiByte + v143 + + + DynamicLibrary + MultiByte + v143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>17.0.34511.75 + PocoDNSSDA64d + PocoDNSSDmdd + PocoDNSSDmtd + PocoDNSSDA64 + PocoDNSSDmd + PocoDNSSDmt + PocoDNSSDd + PocoDNSSDmdd + PocoDNSSDmtd + PocoDNSSD + PocoDNSSDmd + PocoDNSSDmt + PocoDNSSD64d + PocoDNSSDmdd + PocoDNSSDmtd + PocoDNSSD64 + PocoDNSSDmd + PocoDNSSDmt + + + ..\binA64\ + objA64\DNSSD\$(Configuration)\ + true + + + ..\binA64\ + objA64\DNSSD\$(Configuration)\ + false + + + ..\libA64\ + objA64\DNSSD\$(Configuration)\ + + + ..\libA64\ + objA64\DNSSD\$(Configuration)\ + + + ..\libA64\ + objA64\DNSSD\$(Configuration)\ + + + ..\libA64\ + objA64\DNSSD\$(Configuration)\ + + + ..\bin\ + obj\DNSSD\$(Configuration)\ + true + + + ..\bin\ + obj\DNSSD\$(Configuration)\ + false + + + ..\lib\ + obj\DNSSD\$(Configuration)\ + + + ..\lib\ + obj\DNSSD\$(Configuration)\ + + + ..\lib\ + obj\DNSSD\$(Configuration)\ + + + ..\lib\ + obj\DNSSD\$(Configuration)\ + + + ..\bin64\ + obj64\DNSSD\$(Configuration)\ + true + + + ..\bin64\ + obj64\DNSSD\$(Configuration)\ + false + + + ..\lib64\ + obj64\DNSSD\$(Configuration)\ + + + ..\lib64\ + obj64\DNSSD\$(Configuration)\ + + + ..\lib64\ + obj64\DNSSD\$(Configuration)\ + + + ..\lib64\ + obj64\DNSSD\$(Configuration)\ + + + + Disabled + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;DNSSD_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\binA64\PocoDNSSDA64d.dll + true + true + $(OutDir)$(TargetName).pdb + ..\libA64;%(AdditionalLibraryDirectories) + Console + ..\libA64\PocoDNSSDd.lib + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;DNSSD_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\binA64\PocoDNSSDA64.dll + true + false + ..\libA64;%(AdditionalLibraryDirectories) + Console + true + true + ..\libA64\PocoDNSSD.lib + MachineARM64 + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + true + stdcpp17 + stdc11 + + + ..\libA64\PocoDNSSDmtd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ..\libA64\PocoDNSSDmt.lib + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + true + stdcpp17 + stdc11 + + + ..\libA64\PocoDNSSDmdd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ..\libA64\PocoDNSSDmd.lib + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;DNSSD_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\bin\PocoDNSSDd.dll + true + true + $(OutDir)$(TargetName).pdb + ..\lib;%(AdditionalLibraryDirectories) + Console + ..\lib\PocoDNSSDd.lib + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;DNSSD_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\bin\PocoDNSSD.dll + true + false + ..\lib;%(AdditionalLibraryDirectories) + Console + true + true + ..\lib\PocoDNSSD.lib + MachineX86 + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + true + stdcpp17 + stdc11 + + + ..\lib\PocoDNSSDmtd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ..\lib\PocoDNSSDmt.lib + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + true + stdcpp17 + stdc11 + + + ..\lib\PocoDNSSDmdd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + + Default + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\lib\PocoDNSSDmd.lib + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;DNSSD_EXPORTS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\bin64\PocoDNSSD64d.dll + true + true + $(OutDir)$(TargetName).pdb + ..\lib64;%(AdditionalLibraryDirectories) + Console + ..\lib64\PocoDNSSDd.lib + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;DNSSD_EXPORTS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + ..\bin64\PocoDNSSD64.dll + true + false + ..\lib64;%(AdditionalLibraryDirectories) + Console + true + true + ..\lib64\PocoDNSSD.lib + MachineX64 + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + true + stdcpp17 + stdc11 + + + ..\lib64\PocoDNSSDmtd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ..\lib64\PocoDNSSDmt.lib + + + + + Disabled + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + $(OutDir)$(TargetName).pdb + Level3 + ProgramDatabase + Default + true + stdcpp17 + stdc11 + + + ..\lib64\PocoDNSSDmdd.lib + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\Foundation\include;..\Net\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + ..\lib64\PocoDNSSDmd.lib + + + + + + + + + + + + + + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + true + stdcpp17 + stdc11 + + + + + diff --git a/DNSSD/DNSSD_vs170.vcxproj.filters b/DNSSD/DNSSD_vs170.vcxproj.filters new file mode 100644 index 000000000..e0af9e4c9 --- /dev/null +++ b/DNSSD/DNSSD_vs170.vcxproj.filters @@ -0,0 +1,69 @@ + + + + + {e8bdfc7b-57e4-484b-8d16-a3b65bd75b59} + + + {7dda570e-7773-45fd-8646-6f1d9c0a1fc3} + + + {084794a0-8344-4ddf-8fb3-937553fd8d9f} + + + + + Core\Header Files + + + Core\Header Files + + + Core\Header Files + + + Core\Header Files + + + Core\Header Files + + + Core\Header Files + + + Core\Header Files + + + Core\Header Files + + + Core\Header Files + + + + + Core\Source Files + + + Core\Source Files + + + Core\Source Files + + + Core\Source Files + + + Core\Source Files + + + Core\Source Files + + + Core\Source Files + + + Core\Source Files + + + \ No newline at end of file diff --git a/DNSSD/DNSSD_vs90.sln b/DNSSD/DNSSD_vs90.sln new file mode 100644 index 000000000..a2a04a19d --- /dev/null +++ b/DNSSD/DNSSD_vs90.sln @@ -0,0 +1,37 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DNSSD", "DNSSD_vs90.vcproj", "{D9257FF3-3A9A-41F6-B60E-D077EFF94186}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 + release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|Win32.Build.0 = release_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/DNSSD/DNSSD_vs90.vcproj b/DNSSD/DNSSD_vs90.vcproj new file mode 100644 index 000000000..c91131f9f --- /dev/null +++ b/DNSSD/DNSSD_vs90.vcproj @@ -0,0 +1,436 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DNSSD/DNSSD_x64_vs90.sln b/DNSSD/DNSSD_x64_vs90.sln new file mode 100644 index 000000000..146f0f93e --- /dev/null +++ b/DNSSD/DNSSD_x64_vs90.sln @@ -0,0 +1,37 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DNSSD", "DNSSD_x64_vs90.vcproj", "{D9257FF3-3A9A-41F6-B60E-D077EFF94186}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|x64 = debug_shared|x64 + release_shared|x64 = release_shared|x64 + debug_static_mt|x64 = debug_static_mt|x64 + release_static_mt|x64 = release_static_mt|x64 + debug_static_md|x64 = debug_static_md|x64 + release_static_md|x64 = release_static_md|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|x64.Build.0 = debug_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|x64.ActiveCfg = release_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|x64.Build.0 = release_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_shared|x64.Deploy.0 = release_shared|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|x64.Build.0 = release_static_md|x64 + {D9257FF3-3A9A-41F6-B60E-D077EFF94186}.release_static_md|x64.Deploy.0 = release_static_md|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/DNSSD/Default/Makefile b/DNSSD/Default/Makefile new file mode 100644 index 000000000..c5f4755c9 --- /dev/null +++ b/DNSSD/Default/Makefile @@ -0,0 +1,21 @@ +# +# Makefile +# +# $Id: //poco/1.7/DNSSD/Default/Makefile#1 $ +# +# Makefile for DNSSD Default Implementation. +# Use Avahi on Linux, otherwise Bonjour +# + +include $(POCO_BASE)/build/rules/global + +ifeq ($(OSNAME),Linux) +DNSSDLibrary = Avahi +else +DNSSDLibrary = Bonjour +endif + +.PHONY: projects +clean all: projects +projects: + $(MAKE) -C $(POCO_BASE)/DNSSD/$(DNSSDLibrary) $(MAKECMDGOALS) diff --git a/DNSSD/Default/dependencies b/DNSSD/Default/dependencies new file mode 100644 index 000000000..5ab5fc352 --- /dev/null +++ b/DNSSD/Default/dependencies @@ -0,0 +1,3 @@ +Foundation +Net +DNSSD diff --git a/DNSSD/LICENSE b/DNSSD/LICENSE new file mode 100644 index 000000000..2f2f957ce --- /dev/null +++ b/DNSSD/LICENSE @@ -0,0 +1,32 @@ +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +--------------------------------------------------------------------------- +Note: +Individual files contain the following tag instead of the full license text. + + SPDX-License-Identifier: BSL-1.0 + +This enables machine processing of license information based on the SPDX +License Identifiers that are here available: http://spdx.org/licenses/ diff --git a/DNSSD/Makefile b/DNSSD/Makefile new file mode 100644 index 000000000..9506c395b --- /dev/null +++ b/DNSSD/Makefile @@ -0,0 +1,20 @@ +# +# Makefile +# +# $Id: //poco/1.7/DNSSD/Makefile#1 $ +# +# Makefile for Poco DNSSD +# + +include $(POCO_BASE)/build/rules/global + +objects = \ + Domain Error Record Service \ + DNSSDBrowser DNSSDResponder DNSSDResponderImpl \ + DNSSDException + +target = PocoDNSSD +target_version = 1 +target_libs = PocoNet PocoFoundation + +include $(POCO_BASE)/build/rules/lib diff --git a/DNSSD/README.md b/DNSSD/README.md new file mode 100644 index 000000000..2af727108 --- /dev/null +++ b/DNSSD/README.md @@ -0,0 +1,49 @@ +POCO DNS-SD (Zeroconf) Wrapper Library for Bonjour and Avahi +============================================================ + +This is a POCO-based wrapper library providing an easy-to-use and +unified programming interface to Apple Bonjour and Avahi libraries +implementing DNS Service Discovery (DNS-SD, also known as Zeroconf). + +Prerequisites +------------- + +The [Apple Bonjour SDK](https://developer.apple.com/bonjour/) is needed on Windows (and OS X, of course). The Avahi client libraries are needed on Linux. + +Getting Started +--------------- + +Clone into the root of an existing POCO source tree. + + + $ git clone https://github.com/pocoproject/poco-dnssd.git DNSSD + +On Linux, build with cmake like below. + + $ git apply DNSSD/CMakeLists.diff + $ sudo ./build_cmake.sh + +On Windows or OS X, build with cmake like below. + + $ git apply DNSSD/CMakeLists.diff + $ mkdir build + $ cd build + $ cmake .. + $ make -j8 + +For build without using cmake on Windows, build the included Visual C++ solution. On Linux/OS X, build with POCO_BASE environment variable set to the root of +the POCO source tree. + + $ export POCO_BASE=`pwd` + $ cd DNSSD + $ make -s -j8 + $ make -s -j8 -C Default + +See the [doc](https://github.com/pocoproject/poco-dnssd/tree/master/doc) directory for documentation and the samples directory for sample +applications. + + +License +------- + +Boost Software License 1.0 diff --git a/DNSSD/cmake/PocoDNSSDConfig.cmake b/DNSSD/cmake/PocoDNSSDConfig.cmake new file mode 100644 index 000000000..c603d8c63 --- /dev/null +++ b/DNSSD/cmake/PocoDNSSDConfig.cmake @@ -0,0 +1,4 @@ +include(CMakeFindDependencyMacro) +find_dependency(PocoFoundation) +find_dependency(PocoNet) +include("${CMAKE_CURRENT_LIST_DIR}/PocoDNSSDTargets.cmake") diff --git a/DNSSD/dependencies b/DNSSD/dependencies new file mode 100644 index 000000000..f6d54af82 --- /dev/null +++ b/DNSSD/dependencies @@ -0,0 +1,2 @@ +Foundation +Net diff --git a/DNSSD/doc/00100-DNSSDOverview.page b/DNSSD/doc/00100-DNSSDOverview.page new file mode 100644 index 000000000..1da4ed3df --- /dev/null +++ b/DNSSD/doc/00100-DNSSDOverview.page @@ -0,0 +1,208 @@ +DNS Service Discovery and Zero Configuration Networking Overview +DNS-SD + +!!!Introduction + +A growing number of embedded devices are connected to TCP/IP networks. +And many of these devices are no longer passive network nodes, waiting +for someone else to control them. They are full-blown network citizens, +actively communicating with their peers and often relying on the network +services provided by other devices to do their job. For this to work, +all these devices must be configured properly. Configuring the network +parameters (e.g., IP address, netmask, etc.) of a device is a tedious task, +as many devices do not have an appropriate user interface to do this comfortably. +This is especially an issue with consumer devices, where the user might not even have the +necessary technical knowledge to configure such a device. And as the +number of devices in a network grows, configuring each device separately +is no longer practical. There from comes the need for the automatic +configuration of network devices and the automatic discovery of network +services. In recent years, the industry has come up with a variety of +different technologies and specifications to address this. + + +!!!Fundamental Issues + +Generally, there are three fundamental issues that must be dealt with +for the automatic discovery of network devices and services, and three +more issues that must be dealt with for the actual invocation or use of +the discovered services. + + +!!Address Assignment + +Every device must be assigned a unique network address. In case of +TCP/IP networks this can be done with the help of a DHCP (Dynamic Host +Configuration Protocol) server. Should, however, no DHCP server be +available (for example, in typical home user networks), another way of +assigning an IP addresses must be found. Apart from manual +configuration, which is often undesirable, a method called APIPA +(Automatic Private IP Addressing, or AutoIP for short) is used. In this +case, a device's TCP/IP stack randomly chooses an IP address in the +private (link-local) IP address range 169.254.0.0 to 169.254.255.255. To +prevent two or more devices from accidentally selecting the same address, +each device must probe, using the ARP (Address Resolution Protocol), +whether the chosen address is available. + + +!!Name Resolution + +Whenever a user (or device) wants to access another device over the +network, he usually wants to refer to the device by its name, not by its +IP address. In a typical TCP/IP network, a DNS (Domain Name System) +server is used to map domain names to IP addresses. Again, if no DNS +server is available, such as in a typical home network, another way of +resolving names to IP addresses is required. Multicast DNS (mDNS), as +used by Zeroconf, is such an alternative technology. + + +!!Service Discovery + +A user or device must be able to find a service provided by one or more +devices in the network. The important part here is that the user (or +device) usually does not care which device implements the service, as +long as the service with specific properties is available and +accessible. A typical example for service discovery is: <*I need to print +a document in color. Give me an IP address and port number where I can +send the print job to, using the Internet Printing Protocol (IPP), so +that the document will be printed in color.*> + +What all technologies for service discovery have in common is, that they +make use of IP multicasting. IP multicasting uses addresses in a special +address range (224.0.0.0 to 239.255.255.255). A packet (typically, a UDP +packet) sent to a multicast address is received by all hosts listening +to that specific address. + +Service discovery is implemented in the following way: + + - An application or device that needs a certain service sends a request + describing the required properties of the service to a specific multicast + address (and port number). + - Other applications or devices on the same network receive the request, + and if they provide the requested service themselves (or know another device + that implements the service), respond with a message describing where the + service can be found. + - The application or device searching for the service collects all responses, + and from the responses chooses the one service provider it is going to use. + +In addition, devices that join or leave a network can send announcements to other +devices describing the availability of the services they provide. + + +!!Service Description + +Once a certain service has been discovered, it may be necessary to +obtain more information about the service. For example, if a service +consists of multiple operations, it is necessary to find out exactly +what operations are supported, and what arguments must be passed to +them. This is the purpose of service description. + +In case only well-defined service protocols are used (e.g., HTTP, +Internet Printing, or media streaming), service description is not +necessary, because the only information needed to access the service is +the network address (IP address and port number, or URI), and this +information can be obtained by service discovery. In other cases, the +information obtained via service discovery is insufficient to +successfully access the service. In such a case, service discovery only +returns the address of a network resource that provides detailed +information about the capabilities of the service, and how to access +them. + + +!!Service Invocation + +After an application has obtained enough information about the services +it wants to access -- either via service discovery alone, or together +with service description, the application will access or invoke them. +This is usually beyond the scope of most service discovery technologies, +and the domain of specialized technologies and protocols. Examples for +such technologies are HTTP (HyperText Transfer Protocol), SOAP, +Java RMI (Remote Method Invocation), CORBA (Common Object Request Broker +Architecture), or media streaming protocols such as RTSP +(Real Time Streaming Protocol). + + +!!Service Presentation + +Some technologies (UPnP and Jini) provide facilities to present a device +specific user interface to the user, via another device (e.g., a central +management workstation, the user's PC or TV set). Such a user interface +can be used to allow the user to directly interact with a device, in +order to configure it, or to use some of its functions not available +otherwise. + +This requires that the user interface is implemented in a device +independent way. One way to do this is to implement the user interface +in HTML (HyperText Markup Language), served by an embedded web server +built into the device. Another way is to implement the user interface in +Java, so that it can be run everywhere a Java Virtual Machine is +available. The user interface code than talks to the device over a +network connection, using a possibly proprietary protocol. + + +!!!Zero Configuration Networking (Zeroconf) + +Zero Configuration Networking (Zeroconf) is a technology originally developed +by Apple and promoted under the trademark name Bonjour. Zeroconf is +built upon technologies known as multicast DNS (mDNS) and DNS +Service Discovery (DNS-SD), which themselves are based on the proven +DNS protocol. Its most popular uses are in network printers, network +cameras and for sharing music using Apple's iTunes music jukebox +software. Open source implementations are available from Apple and +others for all important platforms. + +Zeroconf uses DHCP and AutoIP for address assignment if no DHCP server +is available. A special variant of the well-known DNS protocol, +multicast DNS, is used for name resolution in case no DNS server is +available. In mDNS, a name resolution query is sent not directly to a +DNS server, as with traditional DNS, but to a multicast address. All +network devices supporting Zeroconf and listening to this multicast +address respond to name resolution queries, if they have the requested +information. + +Finally, for service discovery, an extension of the DNS protocol called +DNS Service Discovery is used. DNS-SD can be used both with multicast +DNS (the usual way), or with traditional unicast queries to a DNS +server. With the additional support for DNS Update and DNS Long Lived +Queries, two extensions of the DNS protocol, Zeroconf can be used to +announce services across the global internet. In this case, an ordinary +DNS server is used to make the service information available. Periodic +automatic updates of the DNS server's database ensure that its service +information is up to date. + +A major advantage of Zeroconf is that it is based on proven technology. +Also, it can be implemented in a very resource efficient way, making it +a good choice for resource constrained embedded devices. + +Beside heavy use by Apple in many of its applications for Mac OS X and +Windows (iTunes), Zeroconf is popular among manufacturers of printers +and network cameras. + + +!!Zeroconf Implementations + +Two implementations of Zeroconf are currently in widespread use. + +Apple's Bonjour was the first implementation of Zeroconf. The +implementation is available under an open source license and +can be used on different platforms like Mac OS X, Windows, Linux or +VxWorks. Bonjour is an integrated part of Mac OS X and iOS. +A Windows installer (and SDK) is available as well. + +Avahi is another open source implementation of Zeroconf, targeted +mostly at Linux, although it can also be used on other POSIX platforms +like FreeBSD or Solaris. Avahi has been integrated into many +Linux distributions such as Debian, Ubuntu, SuSE and others. + + +!!The POCO DNS-SD Library + +The POCO DNS-SD library provides an easy-to-use +and unified programming interface for integrating Zeroconf features +(service discovery and host name resolution) into a C++ application. +The library does not implement its own mDNS and DNS-SD protocol stacks, +but rather uses an existing Zeroconf implementation for that purpose. +Apple's Bonjour and Avahi can be used as backend for the DNS-SD library. + +A great advantage of the library is that it provides a unified +programming interface. For the programmer, it's completely +transparent whether Avahi or Bonjour is used as backend. diff --git a/DNSSD/doc/00200-DNSSDTutorialAndUserGuide.page b/DNSSD/doc/00200-DNSSDTutorialAndUserGuide.page new file mode 100644 index 000000000..038ec101f --- /dev/null +++ b/DNSSD/doc/00200-DNSSDTutorialAndUserGuide.page @@ -0,0 +1,406 @@ +DNS-SD Tuturial And User Guide +DNS-SD + +!!!Introduction + +The POCO DNS-SD POCO library provides an easy-to-use and +unified programming interface for integrating Zeroconf features +(service discovery and host name resolution) into a C++ application. +The Applied Informatics DNS-SD library does not +implement its own mDNS and DNS-SD protocol stacks, but rather uses +an existing Zeroconf implementation for that purpose. Apple's Bonjour +and Avahi can be used as backend for the DNS-SD library. + +A great advantage of the library is that it provides a unified +programming interface. For the programmer, it's completely +transparent whether Avahi or Bonjour is used as backend. + + +!!!Programming Basics + +The DNS-SD library provides an asynchronous programming interface. +This means that the application starts a browse or resolve operation +by calling a member function of the Poco::DNSSD::DNSSDBrowser class, +and this function returns immediately. The actual browse or resolve +operation (which involves sending queries over the network and +receiving responses from other hosts) is carried out in a separate +thread, and as soon as results become available, these are reported +to the application via events. + + +!!Event Handlers + +The event handlers registered by the application should +complete their work and return as quick as possible, otherwise they may +interfere with DNS-SD processing. Event handlers should never +wait for other events to happen. Specifically, they must never +wait for an other DNSSDBrowser event to happen, as this will +result in a deadlock. + + +!!Service Types + +Service types (or registration types) are the most important concept when +handling with DNS Service Discovery. A service type consists of a +short name (maximum of 15 characters) specifying the protocol implemented +by the service (prepended by an underscore), followed by a dot, followed +by a name identifying the primary transport protocol, which is either +"_tcp" or "_udp". Service types should be registered at <[dns-sd.org]>. +A list of currently registered service types, as well as information on how +to register a new service type can be found at the +[[http://www.dns-sd.org/ServiceTypes.html DNS-SD website]]. + +Examples for service types are "_daap._tcp" (Digital Audio Access Protocol, +the protocol used by iTunes music sharing), "_http._tcp" (web server) +or "_printer._tcp" for a printing service. + +Service names are not case sensitive. + + +!!!Programming Tasks + +In the following sections, the basic programming Tasks +that need to be performed when working with the DNS-SD library +are described. + + +!!Initializing the DNS-SD Library + +The DNS-SD core library only defines the classes that are part +of the programming interfaces, it does not provide an actual +implementation of these interfaces. So, in addition to the DNS-SD +core library, a backend library must be linked with the application +as well. Depending on which backend library is used, either Apple's +Bonjour or Avahi will be used. + +Before the DNS-SD library can be used it must be initialized. +This is done by calling the Poco::DNSSD::initializeDNSSD() function. +This function is actually defined implemented in a backend library, +so the backend libraries's header file must be included. + +It is good practice to control which backend header is being +included via the preprocessor. For a cross-platform application, +one would use Avahi on Linux platforms and Bonjour on Mac OS X and +Windows platforms. + +Typically, the <[#include]> statements for the DNS-SD library +would be as follows: + + #include "Poco/DNSSD/DNSSDResponder.h" + #include "Poco/DNSSD/DNSSDBrowser.h" + #if POCO_OS == POCO_OS_LINUX && !defined(POCO_DNSSD_USE_BONJOUR) + #include "Poco/DNSSD/Avahi/Avahi.h" + #else + #include "Poco/DNSSD/Bonjour/Bonjour.h" + #endif +---- + +These statements will include the header files for the Poco::DNSSD::DNSSDResponder +and Poco::DNSSD::DNSSDBrowser classes, as well as the core header +file for a backend. Note that an application that only registers a service, +but does not browse for services, does not need to include the +<*Poco/DNSSD/DNSSDBrowser.h*> header file. + +The Poco::DNSSD::initializeDNSSD() function must be called before an +instance of the Poco::DNSSD::DNSSDResponder class is created. If the +application uses the Poco::Util::Application class (or its server +counterpart), this can happen in the constructor of the application +subclass. It is also good practice to uninitialize the DNS-SD library +when the application exits by calling Poco::DNSSD::uninitializeDNSSD(), +which can be done in the application class destructor. + +After initializing the DNS-SD library, the application should +create an instance of the Poco::DNSSD::DNSSDResponder class. +This class provides the main entry point into the DNS-SD library. +Although it is possible to create more than one instance of +the Poco::DNSSD::DNSSDResponder class, application programmers +should refrain from doing so. The Poco::DNSSD::DNSSDResponder +object should be kept alive during the entire lifetime of +the application, or at least as long as DNS-SD services +are required. + +After the responder object has been created, its <[start()]> method +must be called. This will start a thread that handles all +DNS-SD related network activity for the application. + +Similarly, when the application terminates, or when DNS-SD +services are no longer required, the <[stop()]> method should +be called to orderly shut-down the background thread. + + +!!Registering A Service + +Registering a service, and thus making it discoverable to other +DNS-SD capable applications, is a two step process. +First, an instance of Poco::DNSSD::Service must be created +and properly initialized. At least the following information +must be specified: + + - the service type (e.g., "_http._tcp"), and + - the port number of the service. + +Other information can be specified, but defaults will be +used if not. This includes: + + - The service name, which defaults to the local hosts's machine name. + - The network interface (by its interface index), on which the + service shall be announced. The default is to announce the + service on all interfaces (interface index is zero). + - The domain, on which the service will be announced. + - The domain name of the host providing the service. + - Service properties, which will be announced in the TXT + record of the service. + +The service properties (basically, a list of key-value pairs) +can be used to provide additional information +necessary for invoking the service. These will be announced along +with the basic service information (host name, port number, etc.). +The content of the service properties is specific to the application +or network protocol the application uses. +When specifying service properties, a few restrictions must be +considered: + + - The total length of a key-value pair must not exceed 254 bytes. + - The total length of all key-value pairs, including two additional + bytes for each pair, must not exceed 65535 bytes. + - The length of the key should not exceed nine bytes. + - Values can contain text strings or arbitrary binary values, and + can also be empty. + + +The following code shows how to register and publish a HTTP server +(running on port 8080) on a Zeroconf network: + + Poco::DNSSD::DNSSDResponder dnssdResponder; + dnssdResponder.start(); + + Poco::DNSSD::Service service("_http._tcp", 8080); + Poco::DNSSD::ServiceHandle serviceHandle = dnssdResponder.registerService(service); +---- + +Another example, the following code shows how to register +and publish a network postscript-capable printer on a Zeroconf network. + + Poco::DNSSD::DNSSDResponder dnssdResponder; + dnssdResponder.start(); + + Poco::DNSSD::Service::Properties props; + props.add("txtvers", "1"); + props.add("pdl", "application/postscript"); + props.add("qtotal", "1"); + props.add("rp", "ThePrinter"); + props.add("ty", "A Postscript Printer"); + Poco::DNSSD::Service service(0, "The Printer", "", "_printer._tcp", "", "", 515, props); + Poco::DNSSD::ServiceHandle serviceHandle = dnssdResponder.registerService(service); +---- + +!Unregistering A Service + +The <[registerService()]> method returns a Poco::DNSSD::ServiceHandle object. +This object is used to unregister the service when it's no longer available, +by passing it as argument to the <[unregisterService()]> method. + + dnssdResponder.unregisterService(serviceHandle); +---- + + +!Handling Registration Errors + +The above code examples don't do a very good job of error handling. +Registration on the network may fail for various reasons. +The Poco::DNSSD::DNSSDResponder class provides two events that can be +used to check the status of a service registration. +If the registration was successful, the <[serviceRegistered]> event +will be fired. If registration failed, the <[serviceRegistrationFailed]> +event will be fired. Please see the class documentation for a +description of the available event arguments. + +Usually, there's not much an application can do when service registration +fails. This is especially true for embedded devices, which often don't +even have a way to communicate this error to the user. However, an application +should at least log a registration error in a log file, to help with +error diagnostics. + +Handling the <[serviceRegistered]> event is only necessary if the application +needs to know the actual service name used to announce the service. +In case of a name conflict (duplicate service names on the network), the +name specified when registering the service may have been changed by +the Bonjour or Avahi backend. + +The following example shows an event handler (delegate) function for handling +registration errors. + + void onError(const void* sender, const Poco::DNSSD::DNSSDResponder::ErrorEventArgs& args) + { + std::cerr + << "Service registration failed: " + << args.error.message() + << " (" << args.error.code() << ")" + << std::endl; + } +---- + +To register this function as delegate for the <[serviceRegistrationFailed]> event: + + dnssdResponder.serviceRegistrationFailed += Poco::delegate(onError); +---- + + +!!Browsing For Services + +To discover available services of a specific type on the network, a browse operation +for a specific service type must be initiated. For this purpose, the +Poco::DNSSD::DNSSDBrowser class is used. An instance of this class can be obtained +from the Poco::DNSSD::DNSSDResponder object, by calling the <[browswer()]> method. + +After a browse operation for a service type has been started, services becoming +available or unavailable will be reported via events. A service that has been +discovered will be reported via the <[serviceFound]> event. +If a service is no longer available, it will be reported via the <[serviceRemoved]> +event. The name, type and domain of the discovered service can be obtained from the +Poco::DNSSD::Service object passed as event argument. + +The following sample shows how to write a delegate function for +the <[serviceFound]> event. + + void onServiceFound(const void* sender, const Poco::DNSSD::DNSSDBrowser::ServiceEventArgs& args) + { + std::cout << "Service Found: \n" + << " Name: " << args.service.name() << "\n" + << " Domain: " << args.service.domain() << "\n" + << " Type: " << args.service.type() << "\n" + << " Interface: " << args.service.networkInterface() << "\n" << std::endl; + } +---- + +The next sample shows how to start a browse operation: + + Poco::DNSSD::DNSSDResponder dnssdResponder; + dnssdResponder.start(); + + dnssdResponder.browser().serviceFound += Poco::delegate(onServiceFound); + Poco::DNSSD::BrowseHandle bh = dnssdResponder.browser().browse("_printer._tcp", ""); +---- + +Poco::DNSSD::DNSSDBrowser::browse() returns a Poco::DNSSD::BrowseHandle object, which can +later be used to cancel a browse operation, by passing it to the <[cancel()]> method, as +shown in the following example: + + dnssdResponder.browser().cancel(bh); +---- + +After a service has been discovered, the next step is resolving the service, to obtain +its host name, port number and properties, so that the service can be invoked. + + +!!Resolving A Service + +Like browsing for services, resolving a service is an asynchronous operation. +A resolve operation is started with a call to <[resolve()]>, passing the +Poco::DNSSD::Service object obtained from the <[serviceFound]> event as +argument. Once the service has been resolved, the result is reported via +the <[serviceResolved]> event. The resolve operation can be started +directly from the <[serviceFound]> event handler, as shown in the +following sample: + + void onServiceFound(const void* sender, const Poco::DNSSD::DNSSDBrowser::ServiceEventArgs& args) + { + std::cout << "Service Found: \n" + << " Name: " << args.service.name() << "\n" + << " Domain: " << args.service.domain() << "\n" + << " Type: " << args.service.type() << "\n" + << " Interface: " << args.service.networkInterface() << "\n" << std::endl; + + reinterpret_cast(const_cast(sender))->resolve(args.service); + } +---- + +After a successful resolve, the service host name, port number and properties +are available through the Poco::DNSSD::Service object passed to the event handler, +as shown in the sample below: + + void onServiceResolved(const void* sender, const Poco::DNSSD::DNSSDBrowser::ServiceEventArgs& args) + { + std::cout << "Service Resolved: \n" + << " Name: " << args.service.name() << "\n" + << " Full Name: " << args.service.fullName() << "\n" + << " Domain: " << args.service.domain() << "\n" + << " Type: " << args.service.type() << "\n" + << " Interface: " << args.service.networkInterface() << "\n" + << " Host: " << args.service.host() << "\n" + << " Port: " << args.service.port() << "\n" + << " Properties: \n"; + + for (Poco::DNSSD::Service::Properties::ConstIterator it = args.service.properties().begin(); it != args.service.properties().end(); ++it) + { + std::cout << " " << it->first << ": " << it->second << "\n"; + } + std::cout << std::endl; + } +---- + +Of course, the event delegate for the <[serviceResolved]> event must be registered: + + dnssdResponder.browser().serviceResolved += Poco::delegate(onServiceResolved); +---- + + +!!Resolving A Service's Host Name + +The last step necessary before invoking a service is to resolve the service's host name +into an IP address. On systems where mDNS is integrated into the DNS resolver (e.g., +Mac OS X, Windows with Bonjour or most Linux distributions with Avahi), this +can simply be done by creating a Poco::Net::SocketAddress instance from the service's +host name and port number. However if the systems's DNS resolver cannot handle +Multicast DNS queries, the host name must be resolved through the +Poco::DNSSD::DNSSDBrowser::resolveHost() method. Like resolving a service, resolving +a host name is an asynchronous operation, and the result will be reported via +an event -- the <[hostResolved]> event. + +The following sample shows how to implement the delegate function for the +<[hostResolved]> event: + + void onHostResolved(const void* sender, const Poco::DNSSD::DNSSDBrowser::ResolveHostEventArgs& args) + { + std::cout << "Host Resolved: \n" + << " Host: " << args.host << "\n" + << " Interface: " << args.networkInterface << "\n" + << " Address: " << args.address.toString() << "\n" + << " TTL: " << args.ttl << "\n" << std::endl; + } +---- + +Like with resolving a service, it is possible to initiate resolving a host name directly +from within the event delegate for the <[serviceResolved]> event. + + +!!!Advanced Programming Tasks + +!!Enumerating Domains + +Available domains for browsing and registration can be enumerated by calling the +Poco::DNSSD::DNSSDBrowser::enumerateBrowseDomains() and +Poco::DNSSD::DNSSDBrowser::enumerateRegistrationDomains() methods. As usual, +results are reported via events. + + +!!Registering And Browsing For Records + +Additional DNS records for a specific service can be published on a Zeroconf network +by invoking the Poco::DNSSD::DNSSDResponder::addRecord() method. It is also possible +to alter a published record, or remove it. Records can be queried by invoking +Poco::DNSSD::DNSSDBrowser::queryRecord(). Results are reported via +events. + + +!!Enumerating Available Service Types + +It is possible to enumerate all available services types on a domain by +browsing for the special service type "_services._dns-sd._udp". + +Results will be reported via the <[serviceDiscovered]> event. +The service type (without the primary transport protocol part, +as in "_http") can be obtained from the service name stored +in the Poco::DNSSD::Service object passed as event argument. +The primary transport protocol and the domain can be obtained +from the service type. diff --git a/DNSSD/include/Poco/DNSSD/DNSSD.h b/DNSSD/include/Poco/DNSSD/DNSSD.h new file mode 100644 index 000000000..3d352373a --- /dev/null +++ b/DNSSD/include/Poco/DNSSD/DNSSD.h @@ -0,0 +1,194 @@ +// +// DNSSD.h +// +// $Id: //poco/1.7/DNSSD/include/Poco/DNSSD/DNSSD.h#1 $ +// +// Library: DNSSD +// Package: Core +// Module: DNSSD +// +// Basic definitions for the Poco DNSSD library. +// This file must be the first file included by every other DNSSD +// header file. +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef DNSSD_DNSSD_INCLUDED +#define DNSSD_DNSSD_INCLUDED + + +#include "Poco/Poco.h" + + +// +// The following block is the standard way of creating macros which make exporting +// from a DLL simpler. All files within this DLL are compiled with the DNSSD_EXPORTS +// symbol defined on the command line. this symbol should not be defined on any project +// that uses this DLL. This way any other project whose source files include this file see +// DNSSD_API functions as being imported from a DLL, wheras this DLL sees symbols +// defined with this macro as being exported. +// +#if defined(_WIN32) && defined(POCO_DLL) + #if defined(DNSSD_EXPORTS) + #define DNSSD_API __declspec(dllexport) + #else + #define DNSSD_API __declspec(dllimport) + #endif +#endif + + +#if !defined(DNSSD_API) + #define DNSSD_API +#endif + + +#if defined(_MSC_VER) && !defined(POCO_LIB_SUFFIX) + #if defined(POCO_DLL) + #if defined(_DEBUG) + #define POCO_LIB_SUFFIX "d.lib" + #else + #define POCO_LIB_SUFFIX ".lib" + #endif + #elif defined(_DLL) + #if defined(_DEBUG) + #define POCO_LIB_SUFFIX "mdd.lib" + #else + #define POCO_LIB_SUFFIX "md.lib" + #endif + #else + #if defined(_DEBUG) + #define POCO_LIB_SUFFIX "mtd.lib" + #else + #define POCO_LIB_SUFFIX "mt.lib" + #endif + #endif +#endif + + +#if defined(_MSC_VER) + #if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(DNSSD_EXPORTS) + #pragma comment(lib, "PocoDNSSD" POCO_LIB_SUFFIX) + #endif +#endif + + +namespace Poco { +namespace DNSSD { + + +enum HandleType +{ + SD_SERVICE_HANDLE = 1, + SD_RECORD_HANDLE = 2, + SD_BROWSE_HANDLE = 3 +}; + + +template +class OpaqueHandle +{ +public: + enum + { + TYPE = Type + }; + + OpaqueHandle(): + _h(Invalid), + _subtype(0) + { + } + + OpaqueHandle(Base h, int subtype = 0): + _h(h), + _subtype(subtype) + { + } + + template + OpaqueHandle(T h, int subtype = 0): + _h(reinterpret_cast(h)), + _subtype(subtype) + { + } + + ~OpaqueHandle() + { + } + + int subtype() const + { + return _subtype; + } + + template + T cast() const + { + return reinterpret_cast(_h); + } + + bool operator == (const OpaqueHandle& other) const + { + return _h == other._h; + } + + bool operator != (const OpaqueHandle& other) const + { + return _h != other._h; + } + + bool operator <= (const OpaqueHandle& other) const + { + return _h <= other._h; + } + + bool operator < (const OpaqueHandle& other) const + { + return _h < other._h; + } + + bool operator >= (const OpaqueHandle& other) const + { + return _h >= other._h; + } + + bool operator > (const OpaqueHandle& other) const + { + return _h > other._h; + } + + void reset() + { + _h = Invalid; + } + + bool isValid() const + { + return _h != Invalid; + } + + bool isNull() const + { + return _h == Invalid; + } + +private: + Base _h; + int _subtype; +}; + + +typedef OpaqueHandle ServiceHandle; +typedef OpaqueHandle RecordHandle; +typedef OpaqueHandle BrowseHandle; + + +} } // namespace Poco::DNSSD + + +#endif // DNSSD_DNSSD_INCLUDED diff --git a/DNSSD/include/Poco/DNSSD/DNSSDBrowser.h b/DNSSD/include/Poco/DNSSD/DNSSDBrowser.h new file mode 100644 index 000000000..deaa42419 --- /dev/null +++ b/DNSSD/include/Poco/DNSSD/DNSSDBrowser.h @@ -0,0 +1,346 @@ +// +// DNSSDBrowser.h +// +// $Id: //poco/1.7/DNSSD/include/Poco/DNSSD/DNSSDBrowser.h#1 $ +// +// Library: DNSSD +// Package: Core +// Module: DNSSDBrowser +// +// Definition of the DNSSDBrowser class. +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef DNSSD_DNSSDBrowser_INCLUDED +#define DNSSD_DNSSDBrowser_INCLUDED + + +#include "Poco/DNSSD/DNSSD.h" +#include "Poco/DNSSD/Service.h" +#include "Poco/DNSSD/Domain.h" +#include "Poco/DNSSD/Record.h" +#include "Poco/DNSSD/Error.h" +#include "Poco/Net/IPAddress.h" +#include "Poco/BasicEvent.h" + + +namespace Poco { +namespace DNSSD { + + +class DNSSD_API DNSSDBrowser + /// The DNSSDBrowser class allows browsing for services, domains and records, + /// resolving services and error handling. Browse and resolve operations + /// are asynchronous. Discovered services, records and domains, as well as + /// error conditions are reported via events. + /// + /// A DNSSDBrowser object is never created directly. It can be obtained + /// from the DNSSDResponder by calling the DNSSDResponder::serviceBrowser() + /// method. + /// + /// A note on implementing event handlers: An event handler should + /// complete its work and return as quick as possible, otherwise it may + /// interfere with DNS-SD processing. An event handler should never + /// wait for other events to happen. Specifically, it must never + /// wait for an other DNSSDBrowser event to happen, as this will + /// result in a deadlock. +{ +public: + enum Options + /// Options for browsing, resolving and DNS queries. + { + RESOLVE_ON_DISCOVERED_INTERFACE = 0x01, + /// Attempt to resolve the service on the interface it was discovered on only. + + RESOLVE_ON_ALL_INTERFACES = 0x02, + /// Attempt to resolve the service on all interfaces. + + BROWSE_FORCE_MULTICAST = 0x04, + /// Force query to be performed with a link-local mDNS query, + /// even if the name is an apparently non-local name (i.e. a + /// name not ending in ".local."). + + BROWSE_LONG_LIVED_QUERY = 0x08 + /// Create a "long-lived" unicast query in a non-local domain. + /// Without enabling this option, unicast queries will be one-shot -- + /// that is, only answers available at the time of the call + /// will be returned. By setting this flag, answers that become available + /// after the initial call is made will generate + /// events. This flag has no effect on link-local multicast queries. + }; + + enum BrowseFlags + /// Flags reported in event arguments. + { + BROWSE_MORE_COMING = 0x01 + /// This flag signals that more events will follow + /// immediately. For the application this means for + /// example that updates to the user interface can be + /// delayed until an event is fired that does not have + /// this flag set. + }; + + struct CommonEventArgs + { + CommonEventArgs(BrowseHandle h, int f): + browseHandle(h), + flags(f) + { + } + + BrowseHandle browseHandle; + int flags; + }; + + struct ServiceEventArgs: public CommonEventArgs + { + ServiceEventArgs(BrowseHandle h, int f, const Service& s): + CommonEventArgs(h, f), + service(s) + { + } + + const Service& service; + }; + + struct DomainEventArgs: public CommonEventArgs + { + DomainEventArgs(BrowseHandle h, int f, const Domain& d): + CommonEventArgs(h, f), + domain(d) + { + } + + const Domain& domain; + }; + + struct RecordEventArgs: public CommonEventArgs + { + RecordEventArgs(BrowseHandle h, int f, const Record& r): + CommonEventArgs(h, f), + record(r) + { + } + + const Record& record; + }; + + struct ResolveHostEventArgs: public CommonEventArgs + { + ResolveHostEventArgs(BrowseHandle h, int f, const std::string& n, const Poco::Net::IPAddress& a, Poco::Int32 i, Poco::UInt32 t): + CommonEventArgs(h, f), + host(n), + address(a), + networkInterface(i), + ttl(t) + { + } + + std::string host; + Poco::Net::IPAddress address; + Poco::Int32 networkInterface; + Poco::UInt32 ttl; + }; + + struct ErrorEventArgs: public CommonEventArgs + { + ErrorEventArgs(BrowseHandle h, int f, const Error& e): + CommonEventArgs(h, f), + error(e) + { + } + + const Error& error; + }; + + Poco::BasicEvent browseError; + /// Fired when an error occures while browsing for services. + /// + /// The specific error condition can be found by looking at the + /// Error object in the argument. + + Poco::BasicEvent serviceFound; + /// Fired when a service has been found. + /// + /// The Service object given in the argument can be passed to resolve() + /// to resolve the service, and to obtain the service's host and port + /// number. + + Poco::BasicEvent serviceRemoved; + /// Fired when a service has been removed and is no longer available. + /// + /// The Service object given in the argument can be passed to resolve() + /// to resolve the service, and to obtain the service's host and port + /// number. + + Poco::BasicEvent resolveError; + /// Fired when an error occures while resolving a service. + /// + /// The specific error condition can be found by looking at the + /// ServiceError object in the argument. + + Poco::BasicEvent serviceResolved; + /// Fired when a service has been successfully resolved. + + Poco::BasicEvent browseDomainFound; + /// Fired when a browse domain has been found. + + Poco::BasicEvent browseDomainRemoved; + /// Fired when a browse domain has been removed and is no longer available. + + Poco::BasicEvent browseDomainError; + /// Fired when an error occures while browsing for browse domains. + /// + /// The specific error condition can be found by looking at the + /// Error object in the argument. + + Poco::BasicEvent registrationDomainFound; + /// Fired when a registration domain has been found. + + Poco::BasicEvent registrationDomainRemoved; + /// Fired when a registration domain has been removed and is no longer available. + + Poco::BasicEvent registrationDomainError; + /// Fired when an error occures while browsing for registration domains. + /// + /// The specific error condition can be found by looking at the + /// Error object in the argument. + + Poco::BasicEvent recordFound; + /// Fired when a record has been found. + + Poco::BasicEvent recordRemoved; + /// Fired when a record has been removed and is no longer available. + + Poco::BasicEvent recordError; + /// Fired when an error occures while browsing for a record type. + /// + /// The specific error condition can be found by looking at the + /// Error object in the argument. + + Poco::BasicEvent hostResolved; + /// Fired when a host name has been resolved. + + Poco::BasicEvent hostResolveError; + /// Fired when an error occurs while resolving a host name. + /// + /// The specific error condition can be found by looking at the + /// Error object in the argument. + + virtual BrowseHandle browse(const std::string& regType, const std::string& domain, int options = 0, Poco::Int32 networkInterface = 0) = 0; + /// Browse for a service type on a specific network interface, given by its index in networkInterface. + /// An interface with index 0 can be specified to search on all interfaces. + /// + /// - regType specifies the service type and protocol, separated by a dot + /// (e.g., "_ftp._tcp"). The transport protocol must be either "_tcp" or "_udp". + /// Optionally, a single subtype may be specified to perform filtered browsing: + /// e.g. browsing for "_primarytype._tcp,_subtype" will discover only those + /// instances of "_primarytype._tcp" that were registered specifying "_subtype" + /// in their list of registered subtypes. + /// - domain specifies the domain on which to browse for services. + /// If an empty string is specified, the default domain(s) will be browsed. + /// - options should be 0, as no browse options are currently supported. + /// + /// Results will be reported asynchronously via the serviceFound, serviceRemoved and serviceError events. + /// + /// The returned BrowseHandle can be passed to cancel() to cancel browsing. + /// + /// Note: It is possible to enumerate all service types registered on the local network + /// by browsing for the special regType "_services._dns-sd._udp". Available service types will + /// be reported with the Service object's name containing the service type (e.g., "_ftp") + /// and the Service's type containing the protocol and domain (e.g., "_tcp.local."). + + virtual BrowseHandle resolve(const Service& service, int options = RESOLVE_ON_DISCOVERED_INTERFACE) = 0; + /// Resolves the service specified by the given Service object. The given + /// Service object must be one obtained via the serviceFound event. + /// + /// Results will be sent asnychronously via the serviceResolved and resolveError events. + /// + /// If RESOLVE_ON_ALL_INTERFACES is specified in options, resolving will be attempted + /// on all network interfaces. Otherwise, if RESOLVE_ON_DISCOVERED_INTERFACE is specified, + /// resolving will only be attempted on the interfaces on which the service has + /// been discovered. + /// + /// The returned BrowseHandle can be passed to cancel() to cancel resolving. + /// However, this should be done before either the serviceResolved or resolveError event + /// has been fired. In practice, this has high potential for a race condition, + /// so calling cancel() with a BrowseHandle returned from this function is + /// not recommended. + /// After either the serviceResolved or resolveError event has been + /// fired, the returned BrowseHandle is no longer valid. + + virtual BrowseHandle enumerateBrowseDomains(Poco::Int32 networkInterface = 0) = 0; + /// Discovers domains for browse operations on the given interface, given by its index. + /// An interface with index 0 can be specified to search on all interfaces. + /// + /// Results will be sent asnychronously via the browseDomainFound, browseDomainRemoved and browseDomainError events. + + virtual BrowseHandle enumerateRegistrationDomains(Poco::Int32 networkInterface = 0) = 0; + /// Discovers domains for service registration on the given interface, given by its index. + /// An interface with index 0 can be specified to search on all interfaces. + /// + /// Results will be sent asnychronously via the registrationDomainFound, registrationDomainRemoved and registrationDomainError events. + /// + /// The returned BrowseHandle can be passed to cancel() to cancel resolving. + + virtual BrowseHandle queryRecord(const std::string& name, Poco::UInt16 type, Poco::UInt16 clazz = Record::RC_IN, int options = 0, Poco::Int32 networkInterface = 0) = 0; + /// Starts a query for a DNS record, specified by name, type and clazz, on the specified interface, given by its index. + /// An interface with index 0 can be specified to search on all interfaces. + /// + /// - name specifies the full domain name of the record. + /// - type specifies the record's type (e.g., RT_PTR). + /// Suitable values can be found in the RecordType enumeration. + /// - clazz specifies the record's class (usually RC_IN). + /// - options can be 0, BROWSE_FORCE_MULTICAST or BROWSE_LONG_LIVED_QUERY. + /// + /// Results will be sent asnychronously via the recordFound, recordRemoved and recordError events. + /// + /// The returned BrowseHandle can be passed to cancel() to cancel the query. + + virtual BrowseHandle resolveHost(const std::string& host, int options = 0, Poco::Int32 networkInterface = 0) = 0; + /// Resolves the given host name. The given host name should have + /// been obtained by resolving a service. + /// An interface with index 0 can be specified to search on all interfaces. + /// + /// - host specifies the hostname to resolve. It should be a hostname + /// obtained by resolving a service. + /// - options can be 0 or BROWSE_FORCE_MULTICAST. + /// + /// This should be used instead of Poco::Net::DNS to resolve host names + /// via Multicast DNS, if the system's domain name resolver does not + /// support Multicast DNS. + /// + /// Results will be sent asnychronously via the hostResolved and hostResolveError events. + /// + /// The returned BrowseHandle can be passed to cancel() to cancel resolving. + /// However, this should be done before either the hostResolved or hostResolveError event + /// has been fired. In practice, this has high potential for a race condition, + /// so calling cancel() with a BrowseHandle returned from this function is + /// not recommended. + /// After either the hostResolved or hostResolveError event has been + /// fired, the returned BrowseHandle is no longer valid. + + virtual void cancel(BrowseHandle& browseHandle) = 0; + /// Cancels the browse or resolve activity associated with the given BrowseHandle. + /// + /// The BrowseHandle is invalidated. + +protected: + DNSSDBrowser(); + virtual ~DNSSDBrowser(); + +private: + DNSSDBrowser(const DNSSDBrowser&); + DNSSDBrowser& operator = (const DNSSDBrowser&); +}; + + +} } // namespace Poco::DNSSD + + +#endif // DNSSD_DNSSDBrowser_INCLUDED diff --git a/DNSSD/include/Poco/DNSSD/DNSSDException.h b/DNSSD/include/Poco/DNSSD/DNSSDException.h new file mode 100644 index 000000000..e659c9239 --- /dev/null +++ b/DNSSD/include/Poco/DNSSD/DNSSDException.h @@ -0,0 +1,37 @@ +// +// DNSSDException.h +// +// $Id: //poco/1.7/DNSSD/include/Poco/DNSSD/DNSSDException.h#1 $ +// +// Library: DNSSD +// Package: Core +// Module: DNSSDException +// +// Definition of the DNSSDException class. +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef DNSSD_DNSSDException_INCLUDED +#define DNSSD_DNSSDException_INCLUDED + + +#include "Poco/DNSSD/DNSSD.h" +#include "Poco/Exception.h" + + +namespace Poco { +namespace DNSSD { + + +POCO_DECLARE_EXCEPTION(DNSSD_API, DNSSDException, Poco::RuntimeException) + + +} } // namespace Poco::DNSSD + + +#endif // DNSSD_DNSSDException_INCLUDED diff --git a/DNSSD/include/Poco/DNSSD/DNSSDResponder.h b/DNSSD/include/Poco/DNSSD/DNSSDResponder.h new file mode 100644 index 000000000..1c25023c1 --- /dev/null +++ b/DNSSD/include/Poco/DNSSD/DNSSDResponder.h @@ -0,0 +1,193 @@ +// +// DNSSDResponder.h +// +// $Id: //poco/1.7/DNSSD/include/Poco/DNSSD/DNSSDResponder.h#1 $ +// +// Library: DNSSD +// Package: Core +// Module: DNSSDResponder +// +// Definition of the DNSSDResponder class. +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef DNSSD_DNSSDResponder_INCLUDED +#define DNSSD_DNSSDResponder_INCLUDED + + +#include "Poco/DNSSD/DNSSD.h" +#include "Poco/DNSSD/Service.h" +#include "Poco/DNSSD/Record.h" +#include "Poco/DNSSD/Error.h" +#include "Poco/BasicEvent.h" + + +namespace Poco { +namespace DNSSD { + + +class DNSSDBrowser; +class DNSSDResponderImpl; +class DNSSDResponderImplFactory; + + +class DNSSD_API DNSSDResponder + /// DNSSDResponder provides a unified interface to the underlying + /// DNS Service Discovery implementation, which can be Apple's Bonjour + /// or Avahi. + /// + /// An application should not create more than one instance of + /// the DNSSDResponder class. + /// + /// To register a service with the DNSSDResponder, and thus to + /// announce a service on the network, create an instance + /// of Service with appropriate values. Then pass this object + /// to registerService(). Example: + /// + /// DNSSDResponder dnssdResponder; + /// dnssdResponder.start(): + /// ... + /// Service::Properties props; + /// Service myService(0, "My Service", "_mysvc._tcp", "", "", 1234, props); + /// ServiceHandle myServiceHandle = dnssdResponder.registerService(myService); + /// + /// Note that service registration is asynchronous, so the serviceRegistered + /// and serviceRegistrationFailed events must be observed to ensure the + /// service has actually been registered. + /// + /// A registered service can be unregistered, by passing its ServiceHandle + /// to unregisterService(). + /// + /// Before a DNSSDResponder instance can be created, registerImplFactory() must + /// be called to register a DNSSDResponderImplFactory. This is done by + /// calling the initializeDNSSD() function provided by an implementation library + /// (e.g., Bonjour or Avahi). +{ +public: + enum RegistrationOptions + /// Options for service registration. + { + REG_LOCAL_ONLY = 0x01, /// Service is visible on local host only. + REG_NO_AUTORENAME = 0x02, /// Do not allow automatic renaming in case another service with the same name exists. + REG_NON_BROWSABLE = 0x04 /// Service is not visible when browsing, but can be resolved (only for DNSSD version < 1096.0.2). + }; + + struct ServiceEventArgs + { + ServiceEventArgs(ServiceHandle h, const Service& s): + serviceHandle(h), + service(s) + { + } + + ServiceHandle serviceHandle; + const Service& service; + }; + + struct ErrorEventArgs + { + ErrorEventArgs(ServiceHandle h, const Service& s, const Error& e): + serviceHandle(h), + service(s), + error(e) + { + } + + ServiceHandle serviceHandle; + const Service& service; + const Error& error; + }; + + Poco::BasicEvent serviceRegistered; + /// Fired after the service has been registered successfully. + /// + /// If auto-rename has been enabled, the service name may be different from the + /// name originally specified. + + Poco::BasicEvent serviceRegistrationFailed; + /// Fired when service registration fails. + + DNSSDResponder(); + /// Creates a DNSSDResponder. + + ~DNSSDResponder(); + /// Destroys the DNSSDResponder. + + DNSSDBrowser& browser(); + /// Returns the DNSServiceBrowser, which is used to + /// discover and resolve services and domains. + + ServiceHandle registerService(const Service& service, int options = 0); + /// Registers a service, specified by the given Service object. + /// + /// Valid option values are defined in the RegistrationOptions enumeration. + /// + /// Service registration will be asynchronously. When the service + /// has been registered successfully, a serviceRegistered event + /// will be fired. Otherwise, a ServiceRegistrationFailed event + /// will be fired. + /// + /// Returns a ServiceHandle that can later be used to unregister + /// the service, or to add DNS records to the service. + + void unregisterService(ServiceHandle& serviceHandle); + /// Unregisters the service specified by serviceHandle. + /// + /// The ServiceHandle is invalidated. + + RecordHandle addRecord(ServiceHandle serviceHandle, const Record& record); + /// Add a record to a registered service. The name of the record will be the same as the + /// registered service's name. + /// + /// The record can later be updated or deregistered by passing the RecordHandle returned + /// by this function to updateRecord() or removeRecord(). + + void updateRecord(ServiceHandle serviceHandle, RecordHandle recordHandle, const Record& record); + /// Update a registered resource record. The record must either be: + /// - the primary txt record of a service registered via registerService() + /// (if recordHandle is a null handle), or + /// - a record added to a registered service via addRecord(). + + void removeRecord(ServiceHandle serviceHandle, RecordHandle& recordHandle); + /// Remove a registered resource record. The record must be + /// a record added to a registered service via addRecord(). + /// + /// The RecordHandle is invalidated. + + void start(); + /// Starts the responder. + /// + /// Must be called before services can be registered + /// or before browsing for domains and services. + + void stop(); + /// Stops the responder. + + static void registerImplFactory(DNSSDResponderImplFactory& factory); + /// Registers the factory for creating DNSSDResponderImpl objects. + /// + /// A factory must be registered before the first instance of + /// DNSSDResponder is created. + + static void unregisterImplFactory(); + /// Unregisters the currently registered DNSSDResponderImplFactory. + +private: + DNSSDResponder(const DNSSDResponder&); + DNSSDResponder& operator = (const DNSSDResponder&); + + DNSSDResponderImpl* _pImpl; + + static DNSSDResponderImplFactory* _pImplFactory; +}; + + +} } // namespace Poco::DNSSD + + +#endif // DNSSD_DNSSDResponder_INCLUDED diff --git a/DNSSD/include/Poco/DNSSD/DNSSDResponderImpl.h b/DNSSD/include/Poco/DNSSD/DNSSDResponderImpl.h new file mode 100644 index 000000000..982f2cd7f --- /dev/null +++ b/DNSSD/include/Poco/DNSSD/DNSSDResponderImpl.h @@ -0,0 +1,119 @@ +// +// DNSSDResponderImpl.h +// +// $Id: //poco/1.7/DNSSD/include/Poco/DNSSD/DNSSDResponderImpl.h#1 $ +// +// Library: DNSSD +// Package: Core +// Module: DNSSDResponderImpl +// +// Definition of the DNSSDResponderImpl class. +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef DNSSD_DNSSDResponderImpl_INCLUDED +#define DNSSD_DNSSDResponderImpl_INCLUDED + + +#include "Poco/DNSSD/DNSSD.h" + + +namespace Poco { +namespace DNSSD { + + +class DNSSDBrowser; +class DNSSDResponder; +class Service; +class Record; + + +class DNSSD_API DNSSDResponderImpl + /// DNSSDResponderImpl subclasses implement the actual binding + /// to the underlying DNSSD engine (e.g., Bonjour or Avahi). +{ +public: + virtual ~DNSSDResponderImpl(); + /// Destroys the DNSSDResponderImpl. + + virtual DNSSDBrowser& browser() = 0; + /// Returns the DNSSDBrowser, which is used to + /// discover and resolve services and domains. + + virtual ServiceHandle registerService(const Service& service, int options) = 0; + /// Registers a service. + /// + /// Service registration will be asynchronously. When the service + /// has been registered successfully, a serviceRegistered event + /// will be fired. Otherwise, a ServiceRegistrationFailed event + /// will be fired. + /// + /// Returns a ServiceHandle that can later be used to unregister + /// the service, or to add DNS records to the service. + + virtual void unregisterService(ServiceHandle& serviceHandle) = 0; + /// Unregisters the service specified by serviceHandle. + /// + /// The ServiceHandle is invalidated. + + virtual RecordHandle addRecord(ServiceHandle serviceHandle, const Record& record) = 0; + /// Add a record to a registered service. The name of the record will be the same as the + /// registered service's name. + /// + /// The record can later be updated or deregistered by passing the RecordHandle returned + /// by this function to updateRecord() or removeRecord(). + + virtual void updateRecord(ServiceHandle serviceHandle, RecordHandle recordHandle, const Record& record) = 0; + /// Update a registered resource record. The record must either be: + /// - the primary txt record of a service registered via registerService() + /// (if recordHandle is a null handle), or + /// - a record added to a registered service via addRecord(). + + virtual void removeRecord(ServiceHandle serviceHandle, RecordHandle& recordHandle) = 0; + /// Remove a registered resource record. The record must either be: + /// a record added to a registered service via addRecord(). + /// + /// The RecordHandle is invalidated. + + virtual void start() = 0; + /// Starts the responder. + /// + /// Must be called before services can be registered + /// or before browsing for domains and services. + + virtual void stop() = 0; + /// Stops the responder. + +protected: + DNSSDResponderImpl(); + +private: + DNSSDResponderImpl(const DNSSDResponderImpl&); + DNSSDResponderImpl& operator = (const DNSSDResponderImpl&); +}; + + +class DNSSD_API DNSSDResponderImplFactory + /// A factory for DNSSDResponderImpl objects. + /// + /// A subclass of this class must be provided by DNSSD + /// implementations and registered with the DNSSDResponder class. +{ +public: + virtual DNSSDResponderImpl* createResponderImpl(DNSSDResponder& owner) = 0; + /// Creates a new DNSSDResponderImpl. + +protected: + virtual ~DNSSDResponderImplFactory(); +}; + + +} } // namespace Poco::DNSSD + + +#endif // DNSSD_DNSSDResponderImpl_INCLUDED diff --git a/DNSSD/include/Poco/DNSSD/Domain.h b/DNSSD/include/Poco/DNSSD/Domain.h new file mode 100644 index 000000000..5087c290d --- /dev/null +++ b/DNSSD/include/Poco/DNSSD/Domain.h @@ -0,0 +1,87 @@ +// +// Domain.h +// +// $Id: //poco/1.7/DNSSD/include/Poco/DNSSD/Domain.h#1 $ +// +// Library: DNSSD +// Package: Core +// Module: Domain +// +// Definition of the Domain class. +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef DNSSD_Domain_INCLUDED +#define DNSSD_Domain_INCLUDED + + +#include "Poco/DNSSD/DNSSD.h" + + +namespace Poco { +namespace DNSSD { + + +class DNSSD_API Domain + /// Domain stores information about a browse domain. +{ +public: + Domain(); + /// Creates an empty Domain. + + Domain(Poco::Int32 networkInterface, const std::string& name, bool isDefault); + /// Creates a Domain using the given information. + /// + /// - networkInterface specifies the index of the interface the domain was discovered on. + /// - name specifies the name of the domain. + /// - isDefault specifies whether the domain is the default domain. + + ~Domain(); + /// Destroys the Domain. + + Poco::Int32 networkInterface() const; + /// Returns the index of the network interface the domain was discovered on. + + const std::string& name() const; + /// Returns the name of the domain. + + bool isDefault() const; + /// Returns true if the domain is the default domain. + +private: + Poco::Int32 _networkInterface; + std::string _name; + bool _isDefault; +}; + + +// +// inlines +// +inline Poco::Int32 Domain::networkInterface() const +{ + return _networkInterface; +} + + +inline const std::string& Domain::name() const +{ + return _name; +} + + +inline bool Domain::isDefault() const +{ + return _isDefault; +} + + +} } // namespace Poco::DNSSD + + +#endif // DNSSD_Domain_INCLUDED diff --git a/DNSSD/include/Poco/DNSSD/Error.h b/DNSSD/include/Poco/DNSSD/Error.h new file mode 100644 index 000000000..0033877be --- /dev/null +++ b/DNSSD/include/Poco/DNSSD/Error.h @@ -0,0 +1,89 @@ +// +// Error.h +// +// $Id: //poco/1.7/DNSSD/include/Poco/DNSSD/Error.h#1 $ +// +// Library: DNSSD +// Package: Core +// Module: Error +// +// Definition of the Error class. +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef DNSSD_Error_INCLUDED +#define DNSSD_Error_INCLUDED + + +#include "Poco/DNSSD/DNSSD.h" + + +namespace Poco { +namespace DNSSD { + + +class DNSSD_API Error + /// Error stores information about an error + /// that occured during browsing or service + /// registration. +{ +public: + Error(); + /// Creates an uninitialized ServiceError. + + Error(Poco::Int32 networkInterface, Poco::Int32 code, const std::string& message); + /// Creates the ServiceError using the given information. + /// + /// - networkInterface specifies the index of the interface the error occured on. + /// - code contains the implementation-specific error code. + /// - message contains a human-readable error message. + + ~Error(); + /// Destroys the ServiceError. + + Poco::Int32 networkInterface() const; + /// Returns the network interface on which the error occurred. + + Poco::Int32 code() const; + /// Returns the implementation-specific error code. + + const std::string& message() const; + /// Returns the human-readable error message. + +private: + Poco::Int32 _networkInterface; + Poco::Int32 _code; + std::string _message; +}; + + +// +// inlines +// +inline Poco::Int32 Error::networkInterface() const +{ + return _networkInterface; +} + + +inline Poco::Int32 Error::code() const +{ + return _code; +} + + +inline const std::string& Error::message() const +{ + return _message; +} + + +} } // namespace Poco::DNSSD + + +#endif // DNSSD_Error_INCLUDED diff --git a/DNSSD/include/Poco/DNSSD/Record.h b/DNSSD/include/Poco/DNSSD/Record.h new file mode 100644 index 000000000..ede194c5e --- /dev/null +++ b/DNSSD/include/Poco/DNSSD/Record.h @@ -0,0 +1,223 @@ +// +// Record.h +// +// $Id: //poco/1.7/DNSSD/include/Poco/DNSSD/Record.h#1 $ +// +// Library: DNSSD +// Package: Core +// Module: Record +// +// Definition of the Record class. +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef DNSSD_Record_INCLUDED +#define DNSSD_Record_INCLUDED + + +#include "Poco/DNSSD/DNSSD.h" + + +namespace Poco { +namespace DNSSD { + + +class DNSSD_API Record + /// Service stores the information found in a DNSSD record. +{ +public: + enum RecordType + { + RT_A = 1, /// Host address. + RT_NS = 2, /// Authoritative server. + RT_MD = 3, /// Mail destination. + RT_MF = 4, /// Mail forwarder. + RT_CNAME = 5, /// Canonical name. + RT_SOA = 6, /// Start of authority zone. + RT_MB = 7, /// Mailbox domain name. + RT_MG = 8, /// Mail group member. + RT_MR = 9, /// Mail rename name. + RT_NULL = 10, /// Null resource record. + RT_WKS = 11, /// Well known service. + RT_PTR = 12, /// Domain name pointer. + RT_HINFO = 13, /// Host information. + RT_MINFO = 14, /// Mailbox information. + RT_MX = 15, /// Mail routing information. + RT_TXT = 16, /// One or more text strings (NOT "zero or more..."). + RT_RP = 17, /// Responsible person. + RT_AFSDB = 18, /// AFS cell database. + RT_X25 = 19, /// X_25 calling address. + RT_ISDN = 20, /// ISDN calling address. + RT_RT = 21, /// Router. + RT_NSAP = 22, /// NSAP address. + RT_NSAP_PTR = 23, /// Reverse NSAP lookup (deprecated). + RT_SIG = 24, /// Security signature. + RT_KEY = 25, /// Security key. + RT_PX = 26, /// X.400 mail mapping. + RT_GPOS = 27, /// Geographical position (withdrawn). + RT_AAAA = 28, /// IPv6 Address. + RT_LOC = 29, /// Location Information. + RT_NXT = 30, /// Next domain (security). + RT_EID = 31, /// Endpoint identifier. + RT_NIMLOC = 32, /// Nimrod Locator. + RT_SRV = 33, /// Server Selection. + RT_ATMA = 34, /// ATM Address + RT_NAPTR = 35, /// Naming Authority PoinTeR + RT_KX = 36, /// Key Exchange + RT_CERT = 37, /// Certification record + RT_A6 = 38, /// IPv6 Address (deprecated) + RT_DNAME = 39, /// Non-terminal DNAME (for IPv6) + RT_SINK = 40, /// Kitchen sink (experimental) + RT_OPT = 41, /// EDNS0 option (meta-RR) + RT_APL = 42, /// Address Prefix List + RT_DS = 43, /// Delegation Signer + RT_SSHFP = 44, /// SSH Key Fingerprint + RT_IPSECKEY = 45, /// IPSECKEY + RT_RRSIG = 46, /// RRSIG + RT_NSEC = 47, /// Denial of Existence + RT_DNSKEY = 48, /// DNSKEY + RT_DHCID = 49, /// DHCP Client Identifier + RT_NSEC3 = 50, /// Hashed Authenticated Denial of Existence + RT_NSEC3PARAM= 51, /// Hashed Authenticated Denial of Existence + RT_HIP = 55, /// Host Identity Protocol + + RT_SPF = 99, /// Sender Policy Framework for E-Mail + RT_UINFO = 100, /// IANA-Reserved + RT_UID = 101, /// IANA-Reserved + RT_GID = 102, /// IANA-Reserved + RT_UNSPEC = 103, /// IANA-Reserved + + RT_TKEY = 249, /// Transaction key + RT_TSIG = 250, /// Transaction signature. + RT_IXFR = 251, /// Incremental zone transfer. + RT_AXFR = 252, /// Transfer zone of authority. + RT_MAILB = 253, /// Transfer mailbox records. + RT_MAILA = 254, /// Transfer mail agent records. + RT_ANY = 255 /// Wildcard match. + }; + + enum RecordClass + { + RC_IN = 1 /// Internet + }; + + Record(); + /// Creates an empty Record. + + Record(Poco::Int32 networkInterface, const std::string& name, Poco::UInt16 type, Poco::UInt16 clazz, Poco::UInt16 length, const void* data, Poco::UInt32 ttl); + /// Creates the Record using the given information. + /// + /// - networkInterface specifies the index of the interface the record was discovered on. + /// - name specifies the full domain name of the record. + /// - type specifies the record's type (e.g., RT_PTR). + /// Suitable values can be found in the RecordType enumeration. + /// - clazz specifies the record's class (usually RC_IN). + /// - length specifies the length in bytes of the record's data. + /// - data points to the actual data. This pointer must be valid for the entire + /// lifetime of the Record object, as it's content is not copied. + /// - ttl specifies the time-to-live of the record in seconds. + + Record(const std::string& name, Poco::UInt16 type, Poco::UInt16 length, const void* data, Poco::UInt32 ttl = 0); + /// Creates the Record using the given information. + /// + /// - name specifies the full domain name of the record. + /// - type specifies the record's type (e.g., RT_PTR). + /// Suitable values can be found in the RecordType enumeration. + /// - length specifies the length in bytes of the record's data. + /// - data points to the actual data. This pointer must be valid for the entire + /// lifetime of the Record object, as it's content is not copied. + /// - ttl specifies the time-to-live of the record in seconds. + /// If ttl is 0, the system will chose an appropriate value. + /// + /// The record class is set to RT_IN. + + ~Record(); + /// Destroys the Service. + + Poco::Int32 networkInterface() const; + /// The id of the interface on which the remote service is running, or zero + /// if no interface has been specified. + + const std::string& name() const; + /// The full domain name of the record. + + Poco::UInt16 type() const; + /// The record's type (e.g., RT_PTR). + + Poco::UInt16 clazz() const; + /// The record's class, which is usually RC_IN. + + Poco::UInt16 length() const; + /// The length of the record. + + const void* data() const; + /// The actual data. + + Poco::UInt32 ttl() const; + /// The time-to-live for the record in seconds. + +private: + Poco::Int32 _networkInterface; + std::string _name; + Poco::UInt16 _type; + Poco::UInt16 _clazz; + Poco::UInt16 _length; + const void* _data; + Poco::UInt32 _ttl; +}; + + +// +// inlines +// +inline Poco::Int32 Record::networkInterface() const +{ + return _networkInterface; +} + + +inline const std::string& Record::name() const +{ + return _name; +} + + +inline Poco::UInt16 Record::type() const +{ + return _type; +} + + +inline Poco::UInt16 Record::clazz() const +{ + return _clazz; +} + + +inline Poco::UInt16 Record::length() const +{ + return _length; +} + + +inline const void* Record::data() const +{ + return _data; +} + + +inline Poco::UInt32 Record::ttl() const +{ + return _ttl; +} + + +} } // namespace Poco::DNSSD + + +#endif // DNSSD_Service_INCLUDED diff --git a/DNSSD/include/Poco/DNSSD/Service.h b/DNSSD/include/Poco/DNSSD/Service.h new file mode 100644 index 000000000..61435348b --- /dev/null +++ b/DNSSD/include/Poco/DNSSD/Service.h @@ -0,0 +1,247 @@ +// +// Service.h +// +// $Id$ +// +// Library: DNSSD +// Package: Core +// Module: Service +// +// Definition of the Service class. +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#ifndef DNSSD_Service_INCLUDED +#define DNSSD_Service_INCLUDED + + +#include "Poco/DNSSD/DNSSD.h" +#include "Poco/Net/NameValueCollection.h" + + +namespace Poco { +namespace DNSSD { + + +class DNSSD_API Service + /// Service holds information for a registered or resolved service. +{ +public: + typedef Poco::Net::NameValueCollection Properties; + /// The Properties of a resolved service contains the + /// contents of the associated TXT record. + /// + /// The TXT record contains key-value pairs in + /// the form =. Each pair is preceded + /// by a length byte giving the total length + /// of the pair. Thus the total length of key + /// plus value must not exceed 254 bytes. + /// Keys are case insensitive and must consists + /// entirely of printable US-ASCII characters. + /// The length of a key should not exceed nine bytes, + /// to keep packet sizes small. Values can contain + /// arbitrary bytes. A value can also be empty; in + /// this case the '=' character can be omitted in + /// the record. + + Service(); + /// Creates an empty Service. + + Service(Poco::Int32 networkInterface, const std::string& name, const std::string& type, const std::string& domain); + /// Creates the Service using the given information. + /// + /// - networkInterface specifies the index of the interface the service was discovered on. + /// When registering a service, can be set to 0 to register the service on all + /// available interfaces. + /// - name specifies the human-readable service name. + /// When registering a service, can be left empty. In this case + /// the computer's name is used. Must be 1 - 63 bytes of UTF-8 text. + /// - type specifies the registration type of the service, consisting of service type + /// and network protocol (delimited by a dot, as in "_ftp._tcp"), + /// and an optional subtype (e.g., "_primarytype._tcp,_subtype"). + /// The protocol is always either "_tcp" or "_udp". + /// - domain specifies the name of the domain the service is registered on. + /// When registering a service, can be left empty to register in the default domain. + + Service(const std::string& type, Poco::UInt16 port, const Properties& properties = Properties()); + /// Creates the Service using the given information. This is the easiest way + /// to create a Service instance for registration. + /// + /// The service will be registered on all available network interfaces. The computer's name + /// will be used as the service name. The default domain is used, and the computer's host name + /// is used as host name for registering. + /// + /// - type specifies the registration type of the service, consisting of service type + /// and network protocol (delimited by a dot, as in "_ftp._tcp"), + /// and an optional subtype (e.g., "_primarytype._tcp,_subtype"). + /// The protocol is always either "_tcp" or "_udp". + /// - properties contains the contents of the service's TXT record. + + Service(Poco::Int32 networkInterface, const std::string& name, const std::string& fullName, const std::string& type, const std::string& domain, const std::string& host, Poco::UInt16 port); + /// Creates the Service using the given information. + /// + /// - networkInterface specifies the index of the interface the service was discovered on. + /// When registering a service, can be set to 0 to register the service on all + /// available interfaces. + /// - name specifies the human-readable service name. + /// When registering a service, can be left empty. In this case + /// the computer's name is used. Must be 1 - 63 bytes of UTF-8 text. + /// - fullName specifies the full service name in the form "...". + /// When registering a service, this should be left empty. + /// - type specifies the registration type of the service, consisting of service type + /// and network protocol (delimited by a dot, as in "_ftp._tcp"), + /// and an optional subtype (e.g., "_primarytype._tcp,_subtype"). + /// The protocol is always either "_tcp" or "_udp". + /// - domain specifies the name of the domain the service is registered on. + /// When registering a service, can be left empty to register in the default domain. + /// - host specifies the name of the host providing the service. + /// When registering a service, can be left empty to use the machine's default host name. + /// - port specifies the port number on which the service is available. + + Service(Poco::Int32 networkInterface, const std::string& name, const std::string& fullName, const std::string& type, const std::string& domain, const std::string& host, Poco::UInt16 port, const Properties& properties); + /// Creates the Service using the given information. + /// + /// - networkInterface specifies the index of the interface the service was discovered on. + /// When registering a service, can be set to 0 to register the service on all + /// available interfaces. + /// - name specifies the human-readable service name. + /// When registering a service, can be left empty. In this case + /// the computer's name is used. Must be 1 - 63 bytes of UTF-8 text. + /// - fullName specifies the full service name in the form "...". + /// When registering a service, this should be left empty. + /// - type specifies the registration type of the service, consisting of service type + /// and network protocol (delimited by a dot, as in "_ftp._tcp"), + /// and an optional subtype (e.g., "_primarytype._tcp,_subtype"). + /// The protocol is always either "_tcp" or "_udp". + /// - domain specifies the name of the domain the service is registered on. + /// When registering a service, can be left empty to register in the default domain. + /// - host specifies the name of the host providing the service. + /// When registering a service, can be left empty to use the machine's default host name. + /// - port specifies the port number on which the service is available. + /// - properties contains the contents of the service's TXT record. + + ~Service(); + /// Destroys the Service. + + Poco::Int32 networkInterface() const; + /// The id of the interface on which the remote service is running, or zero + /// if the service is available on all interfaces. + + const std::string& name() const; + /// The name of the service. + + const std::string& fullName() const; + /// Returns the full name of the service. + /// + /// The format of the full name is "...". + /// This name is escaped following standard DNS rules. + /// The full name will be empty for an unresolved service. + + const std::string& type() const; + /// The registration type of the service, consisting of service type + /// and network protocol (delimited by a dot, as in "_ftp._tcp"), + /// and an optional subtype (e.g., "_primarytype._tcp,_subtype"). + /// + /// The protocol is always either "_tcp" or "_udp". + + const std::string& domain() const; + /// The domain the service is registered on. + + const std::string& host() const; + /// Returns the host name of the host providing the service. + /// + /// Will be empty for an unresolved service. + + Poco::UInt16 port() const; + /// Returns the port number on which the service is available. + /// + /// Will be 0 for an unresolved service. + + const Properties& properties() const; + /// Returns the contents of the TXT record associated with the service. + /// + /// Will be empty for an unresolved service. + + Properties& properties(); + /// Returns the contents of the TXT record associated with the service. + /// + /// Will be empty for an unresolved service. + +private: + Poco::Int32 _networkInterface; + std::string _name; + std::string _fullName; + std::string _type; + std::string _domain; + std::string _host; + Poco::UInt16 _port; + Properties _properties; +}; + + +// +// inlines +// +inline Poco::Int32 Service::networkInterface() const +{ + return _networkInterface; +} + + +inline const std::string& Service::name() const +{ + return _name; +} + + +inline const std::string& Service::fullName() const +{ + return _fullName; +} + + +inline const std::string& Service::type() const +{ + return _type; +} + + +inline const std::string& Service::domain() const +{ + return _domain; +} + + +inline const std::string& Service::host() const +{ + return _host; +} + + +inline Poco::UInt16 Service::port() const +{ + return _port; +} + + +inline const Service::Properties& Service::properties() const +{ + return _properties; +} + + +inline Service::Properties& Service::properties() +{ + return _properties; +} + + +} } // namespace Poco::DNSSD + + +#endif // DNSSD_Service_INCLUDED diff --git a/DNSSD/samples/CMakeLists.txt b/DNSSD/samples/CMakeLists.txt new file mode 100644 index 000000000..790d90078 --- /dev/null +++ b/DNSSD/samples/CMakeLists.txt @@ -0,0 +1,2 @@ +add_subdirectory(DNSSDBrowser) +add_subdirectory(HTTPTimeServer) diff --git a/DNSSD/samples/DNSSDBrowser/CMakeLists.txt b/DNSSD/samples/DNSSDBrowser/CMakeLists.txt new file mode 100644 index 000000000..0970f51ae --- /dev/null +++ b/DNSSD/samples/DNSSDBrowser/CMakeLists.txt @@ -0,0 +1,7 @@ +set(SAMPLE_NAME "DNSSDBrowser") + +set(LOCAL_SRCS "") +aux_source_directory(src LOCAL_SRCS) + +add_executable( ${SAMPLE_NAME} ${LOCAL_SRCS} ) +target_link_libraries( ${SAMPLE_NAME} Foundation Net Util XML DNSSD ${DNSSD_IMPLEMENTATION_LIBRARY} ) diff --git a/DNSSD/samples/DNSSDBrowser/DNSSDBrowser.progen b/DNSSD/samples/DNSSDBrowser/DNSSDBrowser.progen new file mode 100644 index 000000000..1375cd8e3 --- /dev/null +++ b/DNSSD/samples/DNSSDBrowser/DNSSDBrowser.progen @@ -0,0 +1,13 @@ +vc.project.guid = ${vc.project.guidFromName} +vc.project.name = ${vc.project.baseName} +vc.project.target = ${vc.project.name} +vc.project.type = executable +vc.project.pocobase = ..\\..\\.. +vc.project.platforms = Win32, x64, WinCE +vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md +vc.project.prototype = ${vc.project.name}_vs90.vcproj +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\DNSSD\\include;..\\..\\..\\DNSSD\\Bonjour\\include +vc.project.linker.dependencies = dnssd.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.x64 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.WinCE = ws2.lib iphlpapi.lib diff --git a/DNSSD/samples/DNSSDBrowser/DNSSDBrowser_vs160.vcxproj b/DNSSD/samples/DNSSDBrowser/DNSSDBrowser_vs160.vcxproj new file mode 100644 index 000000000..76ab8cce0 --- /dev/null +++ b/DNSSD/samples/DNSSDBrowser/DNSSDBrowser_vs160.vcxproj @@ -0,0 +1,646 @@ + + + + + debug_shared + Win32 + + + debug_shared + x64 + + + debug_static_md + Win32 + + + debug_static_md + x64 + + + debug_static_mt + Win32 + + + debug_static_mt + x64 + + + release_shared + Win32 + + + release_shared + x64 + + + release_static_md + Win32 + + + release_static_md + x64 + + + release_static_mt + Win32 + + + release_static_mt + x64 + + + + 17.0 + DNSSDBrowser + {36D5972E-D503-3863-AFC5-8740752A3A8F} + DNSSDBrowser + Win32Proj + + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>17.0.34511.75 + DNSSDBrowserd + DNSSDBrowserd + DNSSDBrowserd + DNSSDBrowser + DNSSDBrowser + DNSSDBrowser + DNSSDBrowserd + DNSSDBrowserd + DNSSDBrowserd + DNSSDBrowser + DNSSDBrowser + DNSSDBrowser + + + bin\ + obj\DNSSDBrowser\$(Configuration)\ + true + + + bin\ + obj\DNSSDBrowser\$(Configuration)\ + false + + + bin\static_mt\ + obj\DNSSDBrowser\$(Configuration)\ + true + + + bin\static_mt\ + obj\DNSSDBrowser\$(Configuration)\ + false + + + bin\static_md\ + obj\DNSSDBrowser\$(Configuration)\ + true + + + bin\static_md\ + obj\DNSSDBrowser\$(Configuration)\ + false + + + bin64\ + obj64\DNSSDBrowser\$(Configuration)\ + true + + + bin64\ + obj64\DNSSDBrowser\$(Configuration)\ + false + + + bin64\static_mt\ + obj64\DNSSDBrowser\$(Configuration)\ + true + + + bin64\static_mt\ + obj64\DNSSDBrowser\$(Configuration)\ + false + + + bin64\static_md\ + obj64\DNSSDBrowser\$(Configuration)\ + true + + + bin64\static_md\ + obj64\DNSSDBrowser\$(Configuration)\ + false + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\DNSSDBrowserd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\DNSSDBrowser.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\DNSSDBrowserd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\DNSSDBrowser.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\DNSSDBrowserd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\DNSSDBrowser.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\DNSSDBrowserd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\DNSSDBrowser.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\DNSSDBrowserd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\DNSSDBrowser.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\DNSSDBrowserd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\DNSSDBrowser.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + true + stdcpp17 + stdc11 + + + + + diff --git a/DNSSD/samples/DNSSDBrowser/DNSSDBrowser_vs160.vcxproj.filters b/DNSSD/samples/DNSSDBrowser/DNSSDBrowser_vs160.vcxproj.filters new file mode 100644 index 000000000..712d84321 --- /dev/null +++ b/DNSSD/samples/DNSSDBrowser/DNSSDBrowser_vs160.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {9c9e8a3d-2ef3-43c9-8fd2-96e940dea679} + + + + + Source Files + + + \ No newline at end of file diff --git a/DNSSD/samples/DNSSDBrowser/DNSSDBrowser_vs170.vcxproj b/DNSSD/samples/DNSSDBrowser/DNSSDBrowser_vs170.vcxproj new file mode 100644 index 000000000..b0b0c4287 --- /dev/null +++ b/DNSSD/samples/DNSSDBrowser/DNSSDBrowser_vs170.vcxproj @@ -0,0 +1,955 @@ + + + + + debug_shared + ARM64 + + + debug_shared + Win32 + + + debug_shared + x64 + + + debug_static_md + ARM64 + + + debug_static_md + Win32 + + + debug_static_md + x64 + + + debug_static_mt + ARM64 + + + debug_static_mt + Win32 + + + debug_static_mt + x64 + + + release_shared + ARM64 + + + release_shared + Win32 + + + release_shared + x64 + + + release_static_md + ARM64 + + + release_static_md + Win32 + + + release_static_md + x64 + + + release_static_mt + ARM64 + + + release_static_mt + Win32 + + + release_static_mt + x64 + + + + 17.0 + DNSSDBrowser + {36D5972E-D503-3863-AFC5-8740752A3A8F} + DNSSDBrowser + Win32Proj + + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>17.0.34511.75 + DNSSDBrowserd + DNSSDBrowserd + DNSSDBrowserd + DNSSDBrowser + DNSSDBrowser + DNSSDBrowser + DNSSDBrowserd + DNSSDBrowserd + DNSSDBrowserd + DNSSDBrowser + DNSSDBrowser + DNSSDBrowser + DNSSDBrowserd + DNSSDBrowserd + DNSSDBrowserd + DNSSDBrowser + DNSSDBrowser + DNSSDBrowser + + + binA64\ + objA64\DNSSDBrowser\$(Configuration)\ + true + + + binA64\ + objA64\DNSSDBrowser\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\DNSSDBrowser\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\DNSSDBrowser\$(Configuration)\ + false + + + binA64\static_md\ + objA64\DNSSDBrowser\$(Configuration)\ + true + + + binA64\static_md\ + objA64\DNSSDBrowser\$(Configuration)\ + false + + + bin\ + obj\DNSSDBrowser\$(Configuration)\ + true + + + bin\ + obj\DNSSDBrowser\$(Configuration)\ + false + + + bin\static_mt\ + obj\DNSSDBrowser\$(Configuration)\ + true + + + bin\static_mt\ + obj\DNSSDBrowser\$(Configuration)\ + false + + + bin\static_md\ + obj\DNSSDBrowser\$(Configuration)\ + true + + + bin\static_md\ + obj\DNSSDBrowser\$(Configuration)\ + false + + + bin64\ + obj64\DNSSDBrowser\$(Configuration)\ + true + + + bin64\ + obj64\DNSSDBrowser\$(Configuration)\ + false + + + bin64\static_mt\ + obj64\DNSSDBrowser\$(Configuration)\ + true + + + bin64\static_mt\ + obj64\DNSSDBrowser\$(Configuration)\ + false + + + bin64\static_md\ + obj64\DNSSDBrowser\$(Configuration)\ + true + + + bin64\static_md\ + obj64\DNSSDBrowser\$(Configuration)\ + false + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\DNSSDBrowser.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\DNSSDBrowserd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\DNSSDBrowser.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\DNSSDBrowserd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\DNSSDBrowserd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\DNSSDBrowser.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\DNSSDBrowserd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\DNSSDBrowser.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\DNSSDBrowserd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\DNSSDBrowser.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\DNSSDBrowserd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\DNSSDBrowser.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\DNSSDBrowserd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\DNSSDBrowser.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\DNSSDBrowserd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\DNSSDBrowser.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + true + stdcpp17 + stdc11 + + + + + diff --git a/DNSSD/samples/DNSSDBrowser/DNSSDBrowser_vs170.vcxproj.filters b/DNSSD/samples/DNSSDBrowser/DNSSDBrowser_vs170.vcxproj.filters new file mode 100644 index 000000000..89378db0a --- /dev/null +++ b/DNSSD/samples/DNSSDBrowser/DNSSDBrowser_vs170.vcxproj.filters @@ -0,0 +1,13 @@ + + + + + {2bbee48a-22d9-405c-9f0d-cb65b4fa8c5e} + + + + + Source Files + + + \ No newline at end of file diff --git a/DNSSD/samples/DNSSDBrowser/DNSSDBrowser_vs90.vcproj b/DNSSD/samples/DNSSDBrowser/DNSSDBrowser_vs90.vcproj new file mode 100644 index 000000000..2615db21d --- /dev/null +++ b/DNSSD/samples/DNSSDBrowser/DNSSDBrowser_vs90.vcproj @@ -0,0 +1,445 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DNSSD/samples/DNSSDBrowser/Makefile b/DNSSD/samples/DNSSDBrowser/Makefile new file mode 100644 index 000000000..a5d2fc882 --- /dev/null +++ b/DNSSD/samples/DNSSDBrowser/Makefile @@ -0,0 +1,23 @@ +# +# Makefile +# +# $Id: //poco/1.7/DNSSD/samples/DNSSDBrowser/Makefile#1 $ +# +# Makefile for DNSSDBrowser sample +# + +include $(POCO_BASE)/build/rules/global + +ifeq ($(OSNAME),Linux) +DNSSDLibrary = PocoDNSSDAvahi +else +DNSSDLibrary = PocoDNSSDBonjour +endif + +objects = DNSSDBrowser + +target = DNSSDBrowser +target_version = 1 +target_libs = $(DNSSDLibrary) PocoDNSSD PocoNet PocoUtil PocoXML PocoFoundation + +include $(POCO_BASE)/build/rules/exec diff --git a/DNSSD/samples/DNSSDBrowser/bin/Darwin/x86_64/DNSSDBrowser b/DNSSD/samples/DNSSDBrowser/bin/Darwin/x86_64/DNSSDBrowser new file mode 100755 index 0000000000000000000000000000000000000000..24c52135e5f45356aa75e6dce9be1dc676f9f827 GIT binary patch literal 85712 zcmeEv349bq_J8L9A}9$681GS0K?M>ZkRY%L5S+mT0|8`JoP=aTf*~1`35SXX0?If$ z8eLe~RoASm{``4uJWxc@AV~074eBZ$tMTq^JmN)Al>EQns_LGeo`g&E_xt}o4s^eI z^jMCLC6>6t%=$Rx7aiM;$Ud8PS# z%U{xiQr<3QEaKMuvAk%C=Fjae%=cLo*zK3}h?KX=kO$nbl_|s$2>FpL*VJ<}C%I-Q zVuPxO+7QlA({&POzLW_>#L1dgoy1UsrlkU;0@lK5ZF?Q{+#3<xH-+#d|#+ICr6qHR z6)q_)1kT^FxR{T+qgn@C@!u&gUH|CeSM@o4{_O)1mw-#_h0Nk&9t6%f{05=COh-Rv z{ZY?sT%=js|FA`s!@T7Mi^*DWpa5{ z8TwsGd6`YDkeh0$m#Ci4qq{|g+8SywcS)tsvtZ~1yS9nZDz{1lNoOz~MXQzS6 z_Sg2MrmY1WtZ??9-+sSY;5Q5WW`W-<@S6pGv%qf__{{=8-vTq8{*N*T#U*K`hfGhPW zJlr5fW5@Q4Ra*tI4aAK2r*=C1@9B?_5%3{GnK6Ae!uoF9o|ufJEk|~Abg*oP<0jJA zTX>7f`!a4U-4P`C8}(C=j43{;4g1mFb6W1g(n3-EiIecGqt`NZC2j&2^>Kd2tc;l% zGjemB{@r@NOCd1OZS$=FH4O<)e@szhO%tSR+SZy^2%N#1W`f2VohW_?Hj4m){+b;K zW(A+fVSP5%I05)WFg+AZ4F!`z!9k&*BNR*w1rtKSxKL0F1$Rkh)Mm`!v-}-;BMs14 z;}wjJH9nOv% zI)hKJDEez?b*zpT1^iOqBH*X`lYq{^!_7ro z(F+stAP-?KVFQh=-)v!TknBw%_D0E0!iEuKF9kc)Ihc>&I+2~=8lff_Bv)o~gIPYo1NW^54(sEdR#40lta9vfHjdYuYy` zbUpCwl^s=y&fvHoZlvs#-2fZXnW3OiwvI_zfqf~|-%f{es-SEXx>{IiGTV9&8Q*{u z`Z^hIX86Blm}Sy$McA-;(@(;P%>YnH?H>n)G!iy&K~0}!VXv3$4I%c8lAQ!;^V2Qt zwUWIq#9k}eN!YN4(s#+s>*NfsYZ71$r8$E^a?$2zg?M1|zQCSh_0sI$loD<>isNO% z#+B6oU|@09NrfbA=uL&!2x03)gp~50{;-q+Bj$ilzY!>EjA7K+Yyj3+(OOw!dBBYt zbKW47xBz60y-i8Mbxg_{%M+4Bja3SYR4`hGnFl>SR5;xw<7*k;F2nT z0XK~Ps_+UauK`G-7YPmPn3P6uoo{xNJqWUEfTBMm!_2GREW_yxUnf#;%wu@D3|BL} z5Mjg6IlG0S^8l2g?+ggZB*<uA($JcPJwdWNLhLz`orDd@s-|z3 z87?L#nwJ1;C=G@t7Y*Gl!~;XOmKcV986is_Y5PHxMMEl8mTakwgbmz6&u=P>*P!ba6;RD)3kKoxi1wW8`s*uWKE z-DhEM{$8-R0VwtIkCcRt4jxulqL3u2>r6qB3cmE1nG$7zVwOyg zl03Bx|3ilB8UDKrH!*w@!iI6H+eL9}0aS6f$>NeAXI?oL_B_e%4YB`KvXdaI?j#F) zx@6A@v0p0LN!U=qs{2|NWGy){jtH=Z(m0L)uDFqhPz^7ji6jjGCsxA(IRhL^Ut1bb!QFWQ3)uv1akX5&X zlF-q?!>XGjB#El?3W`)PQihoaQ5Gm>>GjDnKAqujWjK#vU52X}eg|Qr>XLSf;-&+r z;$C;PXcQ#Ks#{}WPmt`65PP9yCqY(Sk%hhOJ0V>Qv5%JQBy7NRS<^?$j5#SdxK3mz zxJIZ62Fb;$yQDy5i9D#fX~1OFr7%9!>zbstW&l-|G^vdQS#{3|N$W&}QFY&8TTMF2 zdhqG50Y%j@jH+7?z^bdo@WWo$0Nkj$YemCI2>{5dJ6=j>QdZsVLXxPub<`2uC=@J_ z;U;j2vLK!%(*rWTjqzzh(ni`rA0opvjeZisM%6WcD~#I)po%+frO-lxth%=#(qM0p z>`fu|(t~UH1s-hvFhscMI!Q` z>iz^wR^4Tc4^>??Q#G!v1yE&)m6;TYrd z*VPKJhSE^UxhOj=0Sfz#?t`0F5`0;{*#RNGJLHJ*D`!1!bWwZe=Ule1AvmSxc{|WNG4&! zVTjU4Ti6|vJt@S#T(XlOYcI~iu1WTU5c^EYPJ(ENuX)EK8*}5;h#pvRoo0trHPO)!hUsW*2>u45EuB&>X0M zM37Y%y-MnX-5VfL&k~gT8Ac^<17Ic3#yH7JZUSypa@t3M~>X(v5KhG`!CK^dmS^gCrZo#8(-yle|sqAbgBSj%i#9Lw@< zZHeh7;mBwS7b*CFf?p{(C`QsRQSbo;zfy3dlD9~~#{gTJU|lL103j{Wyg8M)>xf*& zTZ4+}4nZwnD`XOpBqe$|kuu&MQ8C>q{A6D zk^f|p`6%2nRFR)oshvR#oUDDqH~ z%*jp*U*cn`GDW_?By&J*`J*ELMUk&I$#lgnK1JTD$PXzpTGf9pgqf~2+1dA7G8Ov= ziv1-8PgC)I72FdN^LL7Q-4r8MQyo=>5N|@TQ z85S+~O?XgQz&uVGPLWBf8Qv|!V#1Lk!*z`RP=*^AenWm{2Q{r)54a~Qu?#(Nq5gACUq+&WoiNqF#D$uAsivE&gB_I4RB9Bht^7Y=rk3=0RF ziZJ&kJ^*jneh=6Gk6?DO({+5$707AeSf_tZQ%2yLCKO{uL)9=>&C@!9TGjB3_(!kj z#>dW0QB~cX+gnt9nu&E_}^ zN=!(pHyz6YDmm@?>*NS-q;CD5nN++P)LrP3(4rx>D8Ag39!Igkb%_M9(Q2k$wz-bw z3a(=sDi|ddND=LNl|_L|D!`7}gUGksFGRs=oI)pn-6S?fN&=s*2cX>`od?sY2k!bO5SdqSSJtNVQIqVLZXr zuHQ~k%Qkb94QiQ|YDb2tl@i}q$wfx*Dd094yksZCO9b&_FH!PTyxDb)^w zlY?5OrP_@!bf~maV!PhWqV~;PaEJ<(m z(PE^CcKr@ADRVBC3Q(atsu3%;Kv%Ak6`CkjIsjP2VPIfOI9)Q)d9B!azv7ol=B~s69OwM3grlFo* ziLx&$rYRN$C)mri3*#EQBzRe_wku`1G*zxR%0SmtqP}PHWt*Lt;XohLQs1#*<&qNH z^;gNO%JpB<5Vo3gtyEhFK())1+BQr^MYkjw-BNJ1>&vCuCaIQbsrHVOAk?fNDY0F@ z$f7n$s)adIg`|z?09JE484be;YP)`n)WZ)4P&}rgo+k$gb4n5I`fdtU<$5`XuKQWI z?%$yVaEaKfzjX(eh1m%KShhJ!rAeDr*>sX&Ji*nj-vx0lJR|f#daTcIEPEMID;wfh z-rrLwE=FCrmOZO#3N*#Wn_lj|^-B4DDYVh5g_>XbIruilbe@nU2iB9|m#{ACFvM z;7SKJVzc~Tb-ao?xtr+OLS3c983+n;V9i>=l@sUm$2n^RQ$lOMS|k_Q!{a#U`qIfT zNFX!Lxw666kNfQ~FmQ}<4OQQ^o>)|y<=3%YAIe`=pg6&mmWkm#%I#W>a|hASZ>a1)CFO0~>?$97xhPekSgEwE-)Cz(Goly`FJn=(Us z9-gYqA$C*#+7*pvw)2&x#YtTW(e1ChH!UOR^U!HoUFk8 zY!93+=$tNGBc}@u@he^;d*C)2z-%SpWGexnFg)KsTqz1vhnVD7^b26R?4VHK3f{zb zFS3Kzv$42>*YFh#SMd5AfQV9u22ATSF>9DE7#-U zfkPkw_2eLyzIq#@;gPpC{F+sT0#s-E$~bNS&0_u4h=(^|!0rg=ZTMgi2kKQWq!HB`S5hm~7c* zHDzKNs=FXeos`tBzd~MBTX#)CSkxAut)Qn4z*<{(Ga8LfP}}udsYgwjn1*`#V%~!0 zAVsw6ms%8LN(CsinkS_SNgMh2Mm-Ky9w(zQ;t6WIK1k|O^CPCAp82voVUpVQXp6en zU7|c8bvv;7fMPWRP+fvjr!yLZouIbsk29C%yohP2Zg<#pOiF6k|43eCzIjp|yMmCk zu^PZ?zEzAyR}$2AeVWvx=0!|HJ+Gc5dy`@sZc)(PUY&LqsO|b?Qk|LyF%8u{ z88-crlG^nd7IlN9I+$;^khC!mz-qo?Mx#>+YP;T7>QVC`rlFqI4q-ki0?$7bs>;)N zjwlZnvH6hBZln|#lb$%C;Lb#$;8XoUk@g8S>Dhra`df(Nq^CFrqLyt|vmJ_~Zhewa zCOCf-PEl$4RKJ9>0&)tmvcoqRZBk4>(sudq7MZinIrw{LJG}M#ZO*7oPJfU@{YOjY z2Qc%26wBwnmZR;lJMbja5@QNnO!Qkk2r34#EkZ+tsBSpp|d=Hp$$**Mjztopw8km{<5#H{-qkMU(teTN6S07N#c62=`WswxF#7#4f4Atl@68Z=(xLw&UYfQ9w7X}+j05@dZ% zM~a78U5sLN;b{*YH2H1R)=saetwsRGZv<=0S!jr|LYP256LBlv_FdFET}FytecH*I z*6NZGb?~-&H*mF{BO^E!)GwQeh*5}OD-bha<5{a+FM|5k^8~G3ABU8tEBaKQLf>(q z4&rU;aKwD_y9tzscdZZy6|E2Pc0XR`T|omG?*lvi-?;pHoGahsBA9n$BtM8g`P_lcd$ z8u>uy^uIo*ewu2lsXLJ0CBER5oGx%?(B%A!L*YL?HjGvDcLViUj{E#PJ z#isu0ozwY%Akq)-gf8BQ9YB zN;X8ivxT%6T3ySw@=?TDv%AB09$w#XB6W|`|7Ny-mwpF%I`CP;()G^9O{f_RS)jc| z+A7k5RZY&|%=N6eo*BfKuGgysVQEwAsQB|6;sXKjKU^N1q zNGfIO&!r0ib^1sOsM+E~jmwwZnSrL(qd5_vf_{dA9x|p*k7f)6-iJJdo_AUQ;r5yY zx?j9eA2L@sztg|V8CZh8WLRo9@+jyaW20*G21^cA$#Rc@gjG!2jpPN zaDWX+py^w1&+_l$R--TlyiaQ{+$i!4LF>>jfJWNC9yqfXo6Nx2O)*| ze!j|o&1cBex9pd}svTMW5A^Gy9|ds*PGnDwO@5_y*3+qo)7zj&*!^-xmj4s|a-xCE z9nQvyaUkPqJ4OKiL>rG@m{={m^4Bro^`7F^HaAWo3?f4ZRf$H>EZHs?2nu{RYKOY#C6`wgD z>+Vyc#3wRSu-=s2)S3`xACw|1Sm2lx|LEn8Z2unD_AfH3KV`zoLD^|vWcmN&il6Yh zbLA_((_BH{z^Kd>{PLzU$tk{tK(?^%a`=*CT8}XNTXx!amA&}k4HjVj-dbD>9G?b3 z$iFD$Bv;24h=BNlB<_3%s+#mTDW&`3!&;My!2d-hW@Qt(q7%RJV&N1sw>kZZVhh2) zqxD2*O(WI_#-ow89toq9*4k4Aq#YA2+tRd`Gi^`&>dA@mE4Y~@nn$R8I0I7?s+S~c z@hhi;=nQ0_xh6Q%p7#x4e#cf{mZ4{q> zh#(fWs_tp&Mqz2mzEr3G`IaYGGeBlK1JlrvhCBV2LdH&XD*sfdgG&Dd3De?yDNcV* zT>Dm27#G%YTV7VH*)^{NQ5LYD5*u@`>31x&c<7Cnm-}ie?@39)^B|j|r>akAj2CNm%h5 zfEV6%+yv;>Gmm42Qx+iK8=_eTd_R-SxWKuIflJY|8uk0AGMJK07W96>(wi)NbT>Xk z%nDZN%+zQy2U5PkC`a^UfueVH_9>zVMB`J$!DK{XPA3#2hWM_Ma{^r-tBCicakvQ0 zH!X9ujm~-}hZC zlBxPm2U}QuZ^oc1>-*zEFb4WR3P8Ku2hLD^JAm2h`*>yp_IL~uU}&Z(1s9|4K$NO) zj_>?l5^Xxs<^PxbehyVTkJ`{0k-H5Es51THV?q&lo`;-9eG1}Sfo!ysC1@v?qMiJJ zc9M=!5-ns}Lb@0cFHI!tiD1nNp2}Cjj3&V8L7bF2i_wPEZ;v*m=0GZ(uT|=7B{h#y zp98B^+~dHJ>;6`8cZS5JLR?z7xO62B-MCS|%qDKW6!+R3OYUYVae-u}cx7~W22z-a7^ev_WAL_9D`4Dn&#XQKT-I~N+l+CTWr`JcrfjLRiw zFy+;YQ0BhSs!yRy38t)Kgi(8=7>BOEA8kVHuLe`jXL98h=s3SUN=ThxmD2#MQQn<%o0nPXhCm(C-Y^1ua_QeK2OS77S?)NC?X(c70YxmmNH=*LK@k6Wd74@q^Pd!7{D zJqM}onZ(ZacK>j3F91g-kG6_?3~?%x`)VkEu!*}uirevfOPPy9;`Y^0#@WOTk>YN$ ziaT0~lMQ9fi1704?kCD~w>8D5h*RY$hIvZD&Er+(Sxoah30AAM?~~%@S;eh2#69+4 zHR_qkj!r?e<9~sukZJps^he?~H2u927kcg5w`OH^CXK#OygV%g9X>vkYu{BZnWNNg7iN zEC%SW0*`+*cMuW{UbS6LODa=&+yQ4MxuUK7gK5mB_l15Na6E0tG0Ry|pX$LRncbB| znEas=E`pDD;%PJnhav>$G_iX>{)nJdj{3Gv?2L9?Du!%43hH%%Ln^XUQngpja-_~S9_a(egsC_eB`HNkOR&~ z`t?S@KL0!q8akbi95+iOQ}dB}$PJs1j6j5(kIaNa#eC#60D7{j={AV1<2qFuBFPcSxzdtx{{1RB7MC zkxOfe3Ymg$#hE?gVwJ+M?<-hjwx$_RdS~{X2S(WU1h{+Jce+5ku#RwJGKsampkLQ7AZH+@4_vCiCkecZ+PVfrqqfc^BPzs2$cMzC4Ag9Kh7~-FW1-c4RiN9y;cmkHzaZ~@y<-J>&^hdghoP@7$eTf8} z&M%(K7Rl87A_r_?^NUwcH|7`L!TVr-u@!*T@+3Gz^NS>4w)w>nW&;*#ganv^X|4bl zqaHz2XuYGe^}9R3VJqK8qkON$LW+I<6c5pzmhYV`aHE3c`kfbY!^-!~X-4__%kq5! zC&0YE1I|$Sa)8;&$B(I4m`@==mG2gCG3qr$?Y(?kz+o%joRdUGx9Q(vM<$|t!yvlT z^8I+ONT$kH3%OzCI}#Ccewc!Sq5it7^8E-xsC-_sh0hNcFdHaL50F&(o)p3N^lwi! z%V*3_c5|}sZ|}%)z}U?^yJ!I&X<#DWC7hV(I~Kbzh)vB3@KM_vr{4<^&YFn{cu`ht zmju!6p=>=8k%vO`3$c8eo;#*$C~AnDg-*xoY+_DhT^uROH{RzI1(0 z-#L(mJdyi(5RB8g)J|O^ck1v4B=Ue1+_8HG5Lqbe+DHK?a$uk#NlJkO&`W)1xF@k#3#fKjPDbhSmcbqvQbZDR)QBNWCu>q4wT1b zr+w@jW!(<}duCfke4oi}lAq_o;nb@(SIyS8?6l9S-pdXQ%MQ%Lo=P@0vI5W(fWA%d z$2z07W&1~C_Y^y*=OlpD*I&H) zqDPK$1}?{*QHKv3p*^^Ur}jy+0wdTK66hKpKbg|o_3J5J?w=~J->3%}7aX_PiI1z- zB4heJVAhu+w)Jf^L%ou8WcuZLZXGr1jexfOQnB{y4E#>N6G^ePxZ-BWk-HRwks1Yv z+@%mNi_yy+NuAdsA>U(>n-m>-Z{Xr3mgK3>9_SwpK=bTEd~3QGk1>Lk0>kSoeOpmY zp?&LZh-G0P0Yt%?&OyOasbo9+m3{|fMRgf_|N0G#LJ2?rhb-a8fadvdxtJ-y+})Zu z>WD?o81eSVm2`go_e77J(=rMoBK+s;E`9)xBONbyIJw2M3`tO7(~SyC7S1N-^2EEv zI{@*{z@)g2hoi7SfnD8>ChWk9@pzlgj~`q7C<08v=W%}eyNa9I;Unfo$nVtSUOO3i zHAj>az!v6l|K>0}?q&`>f&QxjXu)g2*)kQ~RA!_}-%ZXH9aX((t~wwfkZ~p$85Km7 z&A%!8NmrYMjb~qPOqS!EXFKD3amfv>193SJgH2OR@y>Q8#IN3rkLco8Z*rcUlNi6c zA#R(4MUBHwobZ>ka`6(u(|H=|a;wY%YG*hzE^EgXn2g=kiCCwZoWON2r~h1B@alZ$ z=b00k(H)}kvlSuFmqQ54upK1srrPpvyx%g&T9c1~7d3gD(bq(+{1sV>sFT5v-f5le zoCI#OPOgQ(usS&c5pon9#^Ey1Ujtw^cY@G*jZq=<$%awz2yP3Ds(2nTELJoi?S-v; zzH3yC%$e^unEmy;6YTwU36gc%U!O4YEBfnONNDY^7Xuglb=ee=+vx!8uTF>y_17oC z71>`C!NZcp0;0bIq`N-7*9A|mHC(;_J*GLr!pVQ@UIw1X>j!Gv!nK8Ec>_~SVqlHjx7HV zuJ}o>Pl|tPo9OUgW&4|T`c1yvag@rLGdMOT;EQq8ywpu^q&_VC>8lwK@3f%%n+t#R zfPHxD&vwlWUTY*MK)}T<<#xS}aeSwD%m13o|5I`UhC=z83|=R44sLS=oQY@KupST9^#AtLS z-p%3XL0`hbWx=*teouY2e@mwS<&K=ZO#k<=K~}(1p9O0<{hN{-veLeaUwOSS%G+0- zpXJY7F9(taY3JNW{cm+NNy9YgDPT-) z;QSYJ zW2ODB28`JMI?(y%*%bCO=bK!??WF#4!{(dSBG;k$=G92F_xYw1DcF3b1KQ@B)1)wc zoPhAI5XPo-!`%lv-<-qj{L=HyE1+cG^Ub@DMph1BzPXtEzruWTJ@p*ed~+p|unONs zla}t)Y|UNGH}3%Je$F>tV5Pe`5nAl?&Epvt92Ym;`jQLm&$0N&p>`p#Qf=Ee)D9X)3$)KQyV^dHgaOx za0=MMZ1~Uqh7G^W0Arwk0|2x6C^$p&r!#%X}pyifn#Kt-1Ig01~%vc0VrtU?NQ{u=>p{`&?gOkXM>PCA1y`tR+xAFThrmD%~F z{Wo{6_wB!R%v}$}f3GM1ui(FTQO|+-?`M&ORd_7me){i^`tG;?_Jft3#ZBq9^@2H! z3yyQ98vgq-FzeZfmHvAo>F7YW)k*(-6JRI)dlme@)qf9#6eL4g@TAxB39xhz~2LM?8_ea1x@!ty|zf<2cW;9J;`0tnc*nH14L`eT#IS!10{*wS`&M^=e=D+VH zr{TYIfGGdn4UDwmI7Hd|zr}xxoolQS1iFo(qWyXPO`zcL=U?bx=C*@G?`_v-yuTRs z{0rU)|NU2V=oHg|#$^565x7XJK; z7@95`@Mrn&C%E1FGw0t+A)_;UhRwek+(yE_u?-G6Tb2RlD^v2Ff)JEG8t^o;`I zi(av*+Nk%r^H-R8es4UyM}ahp!fbF{r4Myo%rt^ z@c&l-T?Q#3|9u*S?9+c=iX;c+zej!^?!N~D@5F!K5BZ(?p39PH0>gjz23wf#xd9um z()T<}M<3|F0)W2fGH{0ZZ|*Of{<{{4^52`%{uKn}h?L9m3-|x0|;=fBEwNo38N4rvosX zqaZNkzwaSinE&nxI!!kL6yd*(_sg*kk0l-dp6tMBuE51{S%W_`cc*qZH|b(`s$Cz3 zWZ=jSlqF;j{+LTOn|8%IA6HvV*qz!|Imor?C+trB8@p4jl!T=*ECIPTb;M?JhwAh7 zT;!=bruB5!#?TIxm5u93+@v~(y8JCJgr@}irMj?jzv4@XcVY+1-@fU~*p9~ZosB(w!xd8VX%A=nd&c_`*dJ)a()ccC z@WM8H`?Cw*7-4VmnKoxfW7UVwnmyk5<+nkYtNk79EL9iPg5L}N#U^iHVjl2f;5yPa zgPsF?HgK$KO=tq14%`WR8}J6;Nx)NquLoWa+yQ(L@VkN60Z#y)2z)K@TCqxrwS51S zRY0qq!Rgggf|E|EW^SA{yQgFK_#`WP9-``kH6slz(yss<3>zGk(RxG%>yl@xRxRlZcc1 z2DpNm31nn4e85-ruNM3%U<_+Z!QUa@I0bo^*g+eV9bAf?gUP6{Oso<%%F~###Cy(} z4bEUX>LRl~%fGueD{zYV4ij5~!5-8&aaWeVau>)=2xF_TfUMilO}6RjAF+3B#&=7WGcAg^z|P;Qy+q$r+c%WlvMNb4EsfkeIl!aj5wpyYkt z%KKh-<{_o~2!j4^z`--ovy|{ucHm0vV}9xD>#AvN%l2Q1ZNU!xK71G5`mvm|nae+R ze`WMPezWwy*ZxO{vhT(INf;yc&;AQ3%CLW+o5lWRpwRwzAyV3Zij~)mXxRU1jxK@z z=M%vGnPBO{{xd2b-%*~NBI%py-{l|G(>r9ChZ>0YZxGJ|5cKny zo8S{XEJ4116MUi#tompfze5ZW4>vPv3kG^*mAk?%gE%g52TlCRKK*ZGQ-9X(Cy)&3 zU&*kL{;>=T>2J!gReF(>uD=9PwBFU%V^BP`eh3bUJ(ceYcbxi&xIZfH>&1P8xIZcG zPlccPsCjp_y36dXX5^axVMS>*W&)IxbGDAUE=v&YE$*@6-d)_| z#J#7uA1>~_#XUjX`-*!%aUUS=iQ;~YxF09(Cy2X4+)ozwf#QCexDOKdGsOKYaUUw~ zN#f3TygN=EDej}hJyqPti2GP^A206d;yyv#CyD!Had(RQ6micI_o?EZBkt41eTKNt z68G8Seu21OB<>fBd!D$@7574MFB11+ai1^le2YCRczpI5m~7{EoH`D$wivBSYxx9C zN`~GsL$8>jZDxq?TuHu1%n&wtRUB68ROnA;=nrOSxfxn)hRV!Pp&7cs4CR=i$!2J* z85(Ye2AQD~%uqiw)YA-UW@zUgBd4F4p%2W^4m0$U8QNloHkcv)jYDaTyUfrnX6QyU zw8{)!X@-1eXucWZq0Lg>EHjj4h9;PyR5LWx3=K3x$C#l6Gt}J-{rHoi<7+d-L)fL> zcg@giX6Sh{)L@1lHADBAq1(+6&%cuLt}{a`%+O_KhzG$-z9KVpkr|q9hIq)b zMw+2B%#gzj4KPE8o1thkvr5gq;~I!7iO7$*u<;=&35da(jQlx)U^c4F1niNG8@6+d zU)0hl4PzjF`f1GDqs-b!;ve$H9|Li?`XZ&a2Nz}WXe%uSw`G9hhjRIu_{PJCdSs*w zBm!B?!mY+dPv0FP8a>@1y%QFrLHsrNFWIG?oazOFp@JhCu zNQpx!h}=cQ0feF-Ai@{svH>?y^bJ5x0USWe8!FAIG{~1gsOJPy4vW#W>j1^?CLk33 zC@EVN!aW!5T_Du+Pa@H=vIx&nPZkiS@ltdl5Q;v9Y*zwV4k&-HCE5N($}oj|MC2SG z0|7rHatV+rfZHj09gtH12a&Q{rTGW-9Eqn3>PaGH2oSRfPXM8wZ%O%&LSks%Xgm>8 zPcI^TmSiowNj+X5O!EUpuL45RDHL!!5VHsa(Kg6-Bn9Lu(O@Vb4V$gnXdu)xfs|=L%p$y}*oISD@18PE29eW%P>+kq6d=^oLOrX2 zP|rD(_7)K8SwTHt1EHStNI4wKOs1Z{03q8nN_$Qrc|_g^LOsPqx}oP%&sWrQ9uVr8 zL1}A%P{7O7!(~V6xrmfTAf}#~M@Tj=rL9oNRYYz9LOs_IX#he!-&0S|-jed)M1}&P zU$~xZxD{jS*`?T?qO{Yo2SlaZnAUy=gnC{gQUHV{J&XeG zSCj`?((OQ?S9_go%|NI}P>u(g((Y#tQh<!nTCJvCE@Nci zTp&%9{5&qg&w0~vVS`Ch=x7=FBX2Gsvkb~ziqZ?k(_R2#N;@8|gzP7g!oL_}QdTR< zXi|8*qp63-!!b=ZDaXWE^eh5G%0;By0>qT|g`!lDa%8MU+AJVUvx*cS5HrnIMY)NT zRx4#3ti?3VYHyu4haFOwUT$ zL1Yn-(*Qpv@}i<_B>6onWh8tABcI{zzk$#VakEQn0dg|naikmtw{RTb5F)<^f>%K# zTRjjqiw3574T#gAIC{#AE@4K;17S&p=w*r$Amuh76Aem>qTEVK?_L(lY#>zeC@Eaz zH`6pK%FCpD2E^1e44!~#bW*Z`m}zcOlpjcW(n{$LPrx)svP+x^#FSR1C})xK2Oy@j z*A-2NWj`&PRd{)6wr%?Peo`ex`6oYL1SR2 z98b#8D90IqPL^jPZkHHr4?qgpE+E@BAcFySQZ#+)>wx0dadVRvGnGM?jF17m7^XEc zVlFPWz9u3SxJEF*-<`OSeeDAx596X)#Lqg zcQJ4ru1jf~*|>%iR|s8A zR5@-GB7UqJ$__mbJ}qK!V}KGk|Ixlw2#-tFzQwfxm-uzu{3Mpq7GLPZ^Kr03ftZ7GMw@nhgPT$d7?jcW)4{QckUJO4ko>EC=`Xzcs{(I@>@ zfB%2i-)3X}_LKCIn#KT~H6Jgu9=LJ(D}IB4km4d`1a1>#Jbml`RXP1*c=)XtuoeTV zd4y4J116_TnwpzCX+lN$qDoIihSzHl6r4ITr@WwiJe#;G)dGPrimFuZkSW@8GdyWr0zmamSIX?LOrc5edkY7@^ z_w1_rI}rOu$hBto;M>FSr0Jf@^3sJKXL+Ts>r5Z8eY=p0Oc#4fy;`w0sie|dn!m(B z)KOAaR9>+lpUvKZ{{`g>7UY)|I!a5*JdXT|c~uM0S}TWYb4B;TB9H7x4kU7*JF$6G zIu@1qiXFaUkHfdb>v7C0K?{dm5o3sO4Dt+}H}ouryU6Dq>h=|Q2M={j%rA4y^*AcM zo`RC15>KIHK~<@*#9InEB?}Sl+B?eEh>S2l)S3agSQIC%GmLmrwrDv zfKM4BV=D2io@vA>Qw(vicBFE!qSg%Np(wS?k~UqN9+^9{l4Sjes*0=>tt@|mM=J{} zzp|}^BvBQtY9o@B<^~&hP4cxMpdEliFy$_@b=4C2F7c?#Xikv zW+LBliD$`>h54mb9)~x-MCKyjVsoQ1P`nwlXMj*pUV(~G{Y%z&c;A91$Q(cR!f`_E zobg&o85(m@et}0Tu_#u3v%pd2@hvK^xCCunu?bU%?pabcFQQSN<(Rv~QR1t#@RyVo zdKM3L81QBQAYtR9)YnnO+gMZ;~^^b>7rmt!IX#GJgR*PQKS$3MV1lV4-J0 zc^L;^AB)E7Mn|Q;VbD6Fi(-oicyez!3RvMND9x{|^i&RY%m8yyd1-0+B1#GKtL0*r zQ3?NwepKaUoqGz$Xp_;n7L+5-;*-yEAb0stU+IBcgh)(aO6emwTJ;W18(1-I$#^sNXIx#QPWYW3t?plGo-8G zSHw9SldI73q!tKt!W)DH=AecwSOv;Z;e)MZ)*KEEiqya;^QCewGAbJ|liPTVEcI0G zTKaQUGE;(d<>9nYO6JoMUXYB!LX30B8x+DaGqP099hf3xuE`Y`vHAl@JRMgwu9LLr zY57qx)3(p<#zm#5DEvoU6!54%y<(?19>ggveXxQFW-i`bUV|Hc#2H`g$8yn;nihL4 zBC%$cPKXtrcdkQt0v60})U>*Z*nb1en}o%)KVq-w9PHHtda+yc8DP#7@U8~^Tumzl zOvjp4192?ZeFm6>mB2)-{k7#{)g7>D2IK#jgssDqpkwk2yZ zj^SF5hT&RlGhpoqtvgP$kI5OO#kGyrqMA}s*J)Zza~k-^XweO05gv=Oj@P2S6SSxt zw4M4%T1*q#P7;=5YSDJuoQRu(xG7px{kd9HZI%}0%|-^NYEjiwwP?1Nh8!)bZkiU` zG);?Yp033vq3zV=YEgMJv>5LU$epQ0*U!?To6pxY?`$oqZMGI&cL8)4-I^eR|y;3!KJq_Zy( z)~Wb(*poQ>79nj#$Ua5LK1IkrMaVuS;?YM5*{2DA?l0*PDd%nlcPY4Ios2J5(D`WR z`nIf;@h>U3L%|Oe{7k`}3TjtN{+k*rwnQ3dUX|%hOxILhA9D+g@nTNP|l@GS*DQt%4} zcPSW+@sQ~bS8#xW4h8M~<_r}-Qo->GIu)F*;6)1B)7Pqg)7Dq&t?MVD!PlVhHd{Q$ z>Q4JH#%{(ZC;>Tt>zuDy>Gdjq!ZDud(lZodT*2{{H6 z=3xvb7A0`jV6%OH%&Ti!q(@IJR5$af~Od4HGjM)@>_J8XWk&d`T(jB=7N z7Z7?3sO-qOfzV?>Tlo_12-jDy^wrw*LB(&s-z@N(1%9)@Zx;B?0>4?{Hw*k`fdjBW zpOX{v`Z;G!$UA?+tO>ap(=)sY-Z*c<%n9Cv*%{ur=@}7sDZEd*+kJuDEL6MCDJ5kk zzLNaXlFK||kvemsHm#yQx;BDwbX8d-Yi-{MzLDW;-N`A&!o6Bi&76)s>LmAQ11-@a zb=hS=cZ3uQNgjTlH~-Qqj}yz;r5;ylR!MSZR%sG9%=amDWTmg%i_-3sF{RR%UxB^X zeRGbMJCWGE-#72X6G} z-HlxeY_qruGBX*OhTW5L>|&HxFeWoIH^XiI_fedC#8i(jIgQKQv$&r$5gQcPM!_~> zCuTMBB6E6Vs5x{gWJG>pp=bm@JKI((cd5>9=q?#8wmw(9?$IUZ2v1p|S$q57O__^b zR=jSY@*3h!bLFT-_*7qcuBbF}^$S^0zHX8%Hgn{zQ*u(M3uaEwO?F!?&=5u&59e^}VWllvo-chJT$1!Wl^2X0_>=mIWlwfnKyn>ys6VW4_cu@kIb9j#c z`%1}4l^)+j`I^KbuzO@RhpS74wwaar^E|(Tt~BVHTwabs{z}T6o_y??{z}SR*q<%) zb=G#mEsj$`@uYM zI6HRz?k+oar2I)tVi!GpxbgOzG}J_lYkVP3$lqV)P9=|$0+W*}JYG+}FMn>SCv$Fu ze#Mn)yuEY?T4>iw3RK}#tLv)lk!{e(Wd$m~1l#ak7bFdDc}N$RnIl@9>GHais(QiC z9>_8O=(6aY_L@*{NW*MGR+lo3DzK4fIp9XRe@u;}d*(F9Y+YS(k1Ug1)$3zq%d#?t z_wrGA{Re{pd#$v~2stmq9(;u-e?b=$Gt5}48*t==_{l+XhD%P=W!@t@1yWSY{uajB zb|Hb;xy$$iQ2FB?S}l)(QqQ4(rw~o*YiLx5DI< z+$DIkZ$akb0*`zhSPlqXbcOviLU<1BDnuTtn>(wW;Ym~RW=c-Ecqz)7rxLAtt<@=a z&bSxJDcO9{2iAel4wEDacDtlbsG3($>?yb;IjO45vluT(;;p63oO27piWcHZF0%L5 zYD=PP!5D=`BaUQ%c}b(!VIo(a1)cIl^1z%e2{fzY?Ytl~z?2+ndjRB^^}>XHc<(HIqBS zX2t^%5NW;rN?lrMPUw`;_cxj0W)Cpg{O~@pzuJ6Z$wn5S7L=nN z!xE$v@KtoIS6Q5ZWLC~Xj$mzSX+n}r_b>wMV|Z$Xt0qsyUnGBW&RDi+fjtgc z%Xh0KKabmE%vXeY1x+kaxv{`hP#lWH3YR^qsKV1}dS$^-T47L$&Re|Ljn`l+%ggX= z;alQfm=sp&nyB@N52%updA| zH^Pk|V=KfWD#3z$o)%)<| zaPj+Vp8Z#lQeI~LgyNSe1*#xY$ssQbw8&40_f@_2FO9phewyrb_-O1PvZhEgg*P$l5Z5cTr;pp`?qNGZYzZ zEjMC-ja(?sJ>bv3BaRthgSlHZ?}HE*Q5n_-co6a;E1VD`JNS^K) z8(X&=ACg2L(shHI;tuK3z~AFyW1Eo6*w{94udZQ^5B0<6%ZDB6=gaN1uE^^zvaIlM z&+;Bj_leYr=*J`VA@*75s@@WfN^27L`ezxg z-pYHkxYsu_T)R!=C*okUoqbeA{s=*}EeBSS*ByBvRkHfXgQ@oFekcg@g^GOi$gYjK zx__s}{Ncz>jrn80h{}U8SM`TW_>a_eSHCWFsX69fI?<;{JNrfIRHWtoBlIfDbMpZ}E$J8Q}R2!Y+ZHP)B7gDQu z#3FKUSaobQ4sqZ=4VJ^9*43KvJ@Ii0=N|)rM-c}^lg=|gh~x8F!EbzbT&!^8yW=|* zZhU|Ig2IjOkNH>ID351`P~MdaZ%UVVcVvikpQOUPdwr}%LW1@Rvh&a+I2Uw@dS^Gp-sKPa4Mn-IUc zr=)9n5}(ye;ymkw^!F6bGf#*gcDSS)-(Tk`-1rXr8G(nsj~;gf`9t_)HhffXDbM(x z`X356zT@tNbEjFqJX?kOiv_M}#&_NP)9;jT;QV9sR=iN))h2zN!g)pu<-M(Np4CEp zEY7TkpJ&1l&pJxt&EgCZ{GkSg8{d-;O_X%w zyYd?pZhTk%g~E;R%d?JF^3?a{8x_toWvK7GVcx&!QoH{P9ZOWfH&7z^{<_F(*hm&#EE+wF>8%HN?L+=*uL&;6x>F zxx}vl-Wz?G=M<6u&kE;xMa1t_IL|F2zER;kzliwD3gMewo5~9uo1O!g($d@j8X` zd?exzE1c&f5#OqCo|i=YO@;H^B;ubboaZMI?@&0;Q6k>=Bw0S5r$qczh4Wk`;;9Pf z`AWpkRXERCB7U*LdEOH7OBK#@mx!-WIL}`qev`s^4ioWv6wdRQh;LLl&t)Rsq;Q_k zMEpaA^PDE)I~C6Jnus5EvMdkJZ6bc0!g+oZ@nH(*IZnhUD4gdx5ud4Wp6f)sSm8Y1 ziTLFT=Q&TruTwbBdm{cfh4b7e;*Tht=RXl|G}0^lErs(uDAGSyIM0P5&Oc4T_RjO6 zh##qNo)bm^nUdc)-|3GEH_mzb zTH(fdPczSw{KmOY8x+nn+M-Y&hYeBsCrG@UIO@kZhvsU98|SU?Z{Lz`oKJG>P>CDo zqs&vdah}Ly3OCM|`Ap%)`7jfP$@Io~Dt}hEah}Up3OCL_$xZ@)w`$Ee$EHx>#yK$$ zDBL(#<$Hx2=elGj%k;)MC~FjMoMZF6!i{rg9K$8QaW2aug&XI>ysU8J9F;RifIlh$ zmX-GWoxnA5wjS-B2^s2~R)B zhG*Guuf$`F{QTR7$Bq*6O!}D;k2Uyb+wg5RyxoSMGFr$p)6cNsej9$T4NpuBPruxT ze{REPr`h;z_#-y_bsL^ICOrN5Hhj4azsH6*+3=k<{G_wPT4 zFSOxXZ8*>JL;E%BqwhF@M;rA!!-oHt4S&go@3i5L@!|3&+3;eCvnz>Tz=q?TLFUiQ z&zRqZjzv<;@XJoDO^wEYQVJ#*JfN_;rbfaH@LpVwHw#txHjN=0@tZ%K&Rsxgo}Rx zxcCR6_~%2o=5`pap16A9Ivm##xccDgi|a^S z{cs(J>v&vTZ#fZ{1J_BoPR4Z#t}}4qmwr8NwYYA;btA4n;#!Ss4X!`ox(U}>Tz|&( z7hE^vx&_y*xc-XkHe7YM{)X#zT+iUzf~z;=$K&Fk)9#OJ0Is8P;aA<+H4wDZaQ)UM z{^#0+L*tiY5xY&|YYw;glA>%LzC$Q2b(`N^be=+d^xe6vBz)V^DJA?g4Y?~K_q42M zZe(_mc)0DTiq2I;e99mC@;~$qa~CQ`ia%6hekd?XepTm^2jAEad)d#A2BzZ6Dp&4k zHxGUh1yf(q;JZA0-T~P-Q^zj4v#%^7KC(c{k)=37!<9PaDk_+s#Yl8q`UTUdU{UJuC_*;!#nMwB*pqFY$+ z!1Uu|qVh6+Y|gfFKsldeG~!>px{_1){Ubi{_PNo(abN^q`b9ncI&CF+xZBO|O5HfD zAiq>Lpy{IB;HykFP|BufS2Gja7Nn8Y9FaqaitUt(uSnIw<>$LT-#gD&%yxX^1D zANgmUKoCbYjV3*9a(<;xe3qS=>CIyOjF#CJP3j=FTswd5(ClPF?0y$CawqhERZ%0e zC$?h`vak_*yZ@`o8j-tBih2;uWpCT$2Wdz9%NU2qj0;@$-tj-*jDJR+BI@&(GgE|X zIv~f^l><{pzZv6+a4c!&pNA2%kI1C^t(nsfIM3-G@h89vaBiJA*+ayRn2tZihvNux z%5lmP94#j)nV2-@7jH=rnK1`}cSJm^q5*BzK6mXD?N_dlbj=Ei2|6 z$n$W_puG549fKgwlBmRA4sv_*eZ?+}0;DfIPYs8W1?VFG`=9;Jb03*`VOw#qk~z;w zPRcd^rVp#xI)sID9)v&YV)!zqOu`a}OzbH91*DQ9%x3ZNoH1RHv%rH<(Zy&qO3Z&M z#rIa7RT~tmY4gFWj&LSoaQGE8?``<_71Vd$TK->kSGF2Q3CXlaB>prTbxilLa3?bT9bx9*>dNiZ1|K=E<3FeHW`2H!cWlQ;TWbQH* zud1QKFJk;6fTMHQygvSUxfOX+#oV3_38QW)Vq!Ecg@sWP0m?-sUe#1eq}|T0XzHf2 zsl<|fq{KhBLaUV?M}CV;eDri8l7Zm^=T79ip=CA98+Nn5Iip!mvHlm4u;rKcM0QS3 zN6)wSGO-1v&LCeYV1e7~Ol03)zwZykMrMLF==4M`(62l3CurDA7&|JKK2_7l2M9Qd z1Pi>Es%MiDxr#C^VUQ+_H0-_fcjl^VrK~aw2#-*>q0$e@k;ZL-GAg z>`Wt0JG&D^%1rSbc+q*Db5vxq=Nv>cp4+!FS)5{VjI9>Op!x0ZE6H~YseL6Gm4~}Z z_}*gl7F}*-X(+KOsV{r)o2JGk811a<50>Or-6aOaG@tmYU8Gk3d~u;O1MX$E^D`*f zLP-lH9h7VkXoElKp3?HhjoG5dEqdHGSP`4JMP3z>sLlbaLS7Z}s*qQO zyei~XF}$$9YNT2t)f%bR6*Q7 zqD2xdl4y}cizGTE(IJTrNpwh}LlPa5=#WH@BzpANqsJaS_Bc%XR%|2Pe1)Y*6;Jyx zLVmRytD-@2p6+ zDjvE_1}h%BP*y7zyj%uW9=>SK9NtCYJUXls@-Z{_DhpRUi5z+1@~+Ba6+$uZOpnJwLlA^tOLV=Re#*&zFJ4t55_t zaYZaPrX=0VY^7F$$`_}yg}yFTtV%^wLofR&F*s+jy8c_jRYCPP=OGk#liF{oAEPgt zV^KCK$#kW5;qmAUy&^(|5){8X_#f6p!g8U1Uc4-90B;lGq_vI9sWaOiO*$jq-dT#I zSx6m^XoUy4gelOY0qH zofTC(&Uz}Vbv)>*oYL{2t4pJEoVC=8Tc|#qt-(!Ilr9}qIF5WELSEl^u)0$>9%t&U zQfe9^BYOhXo2+PMKMi$ODZy3-FlEZ1@*2irYmGK=Q3Ye(g*d}2PAtez+Ryf>hR7IO zg(R|{4MR`8n8nX&7qb=ex9tsg+uryu&F|!KypMaST+Di4W`aBMn^rBhSo$S?_37&R z`V(n2JwFK<&-41_L5W1^T|M2Qa-<#Z9!SJ?2%&v_1PpbiIR0MXTz@Yx1X=w)KABI# z<+$d#*Q9?+dSu>Q;_cdRq!3CcP=_tU_<=_YuY$HVqNn>e~dY0hUqlOPOWCecc)ftLh0R^)#E-J)l@0FJJlgo zQg>&4b;f%7=?~bkm5yE|Ew}6VYK2`_5bEo?a$jB7mD;I3PFRMmx_iI!yBunhR&R)>LUlCC#-oOhTelU!2<2bFH#AG>{gR~=FQR{ih_6U~!|V3y zUwqYGUF0--bwQ-qt4obuul}!6>!trNTD?>nY1RiNO0j;gMd~9ZdZ|wzm1%W)(5C;_FjAKwfA28z0Wrv{rMmFNTq6aO{MyFNu^Q;;MZB3N(Fr{fGd^yJNz>EtzX~1 z>V(!ewVr$uv6cU7D!mK($Y%lxtY3d>YsaaTK@`8Uii`I{wp1EFh@^k(*I#~a&*k0& zP|a_02{HrxDTf(9`gbb@r>C#nyMFy;mv4CMWkpmqze8SDBYtbC9Q;fC=7U_G-|ik^ z{ML7!dqMZPmjYMKulwc3ZxRaUKl(juL(G%!ZD*go{@k9k&+Wc^{pDx9wVGecD~;c0 z_P6NtSMW1*@$dTeXJ35LWhDhx^P4@%`0efGqrXCbMNZ}bzsoMa^!$t7=JD11et)v@ z+shXq{pJ6vWnI61!$nt|f6+PX&%fxrixIGzU+o#j?;0-@{nb3m`LADpZrA$rE+q52_gODzQ*^T)4Z&3djmG$->OIca-^9;)OumUO*RQ|m zg7ufZ>%zBQe8Kwe%P(D&U&4<3%jIHyd#g{1VEy{HU0f>F`SR6!`C7dC>96K@P6fXU z&U!5Q+Rw85)_W%Om-AzO-&eu!oU<-JtAwc5U*|c-ui%-`pXjO-tK=%#rL}8be`4$E zHHl5>_T@0?GYUWd749%dxjaSq7p78uO>`j~?OX=1{@JNi$JI5dfoCd+{!C|UQp0F+??v$c9PphUzYwUc-6i#l1qe*K5x-~P zcg%*%ERIq$k4DWd~{ryL)6*5GZwxa(Cfx$W(L|J>JnYUTS50Zw&hZwQMY zWhmAmxR)Zoj7Pgz{*URf4Ukseo{qWVvSYe0KKtUMmK}YpWLSOHrD&hW^fbSG{mWlQ zOgpHnUw_IetBP04`BE=`2Hy&Xe;&WrpL_W^N55?OQzqZK z%g?`{lHs2xUq{>8N_Hy$CtohdU%cTWw7c^!zNm_=_%@f7OU+()pt;qQ>KY30ly_Zr z`MDP!eO#Hk6tAf)UaF=CzRGxKA9-Z44jcw5>tEk+O{xP8?+EW_`+54`(;9eM15az< zX$?Ge8d#SJAINOnF$?QD-nxT)!(NvOH%w>ZeAgd$?sQjzGDCc{!DXU#Mf{zZFonU( z5JXfTJQ5~s-Qmt=yn6fz@63cjC&GpCn;DuT5g)pWCuC|dIo)ZJLy ze}7H?BTQ;3(P6HU=uO8U-&1bGs{ zrU0h^rvayt)RsqUGH2i6<3K`2MHwv>@ab=LM-`yRjoVn9tN<-m{u_4;Qe$B+@_?l4 zkh;s%d=rT2?XCCig*>C#GF70M-?kCA%OR*H5%i%9EdSl>*|f&p1FSt^>#(Zp=GOZl z+%WSr(E2bMKX|_+6TP#!?$+Li!`^E$;XSLPR)7tItHbS}5AM8cp!Ea3J@ihpMz>Cc zZQI;0$TsSoa3|3b_fEQd4KupA^#gUc&bog#FXV6Sa~~;s0u?Osv~e4Ac;@Yc?e1%& zhPxf&u7_i=%zmNL^`Y@VX#$89%7igrN4${f<_1MiAI{wN7wQp|HZBwHvHj{v@K0^O z`c4CP5o9)wPZ5Oq0mTah!eGdJ0-;P3llbAAQ>kSS-Q0i};TW8>!feKT0%4Y|e>`|G{xVDbdAf?(rbpRks8Y6xR<`L_ zEZdFBb{i~AFIrYF%nN>KmTRNdv9)1q0k8l#0XU(Iu~Digvs^VXS1Z8(UE9rahh3E&dXj<>3+~}f{vTD7T61Uzva}Q)*pp=@el-ilm zC@+AjWj+DaZun3V0-;PXd|gC_LATKetdx4-LVlJ)a?4L6^K;=r$`7$HC4-P~5b_TJ z4gn4W!o;i_7;oKV`Po#=&nD$(pp>6Y%Fia{r`W{Wl?%3o1}3-tdByR7+TeNPeccFw z@lD_5g6PWMR1A~!#OkAB$6wj7DjZa#1m1zja4T=$eZJf(x38O9HFJx(+bK}a z+?{kk4{{)G7u_E>K1|ddi!clK=f8g=VpR3#W#a+Vu37i+!z@5JKEb4XU}-ZMA2cp2 zASCL|2GpYsfDgmzFnZehTxI}6zG%a2*!p949sT{=8qd7_yoKe7EI`Hh1N{#&hLRuq z9m_a3N)UNpe&Q#{;762BUX(aD{ab~bV7PeszhDg-u?mV62pI-b#%j`#<_o5U44i>k z19Jr9E%hv8KrI|+#_2=Oa$*qX3lKuN&W*_xj8dvkbTUkyZUi;TR=0z)#=(Sy3~C>u zkm+3|WRRjS$_g1~8|Z`a5;E|SziVA$l&FvU3C_6jODXrT|LQqsg70ztcwf%kP9vdciXfgXaz z)m2xa&@Il3C--c{mmwJXXI#{S|ROp6+jIz~jQGS8}6LNy=A;mydE+gsU7D{(F24B!pGu%m)6FJI}%uxYD?FVT^wlHzfZF1Mre#Ytb z*jodWl&oniBqk*Ep@|C_cweI-ml|j?&`hwX++rZPn{3%y9{(2=pk5CFJd6Q)ItExe<)M>43+2H zgC)I)9OX!cUPy7TO>*kXGe^0<9?;EYALfg9y9@XOCU@X6N6^i zOyDiS71%6Fk}!Op9NokFiL zs}0XGbyu33#q2JoyJ!_Uehukh6{y-ceIhoU;p?LhRzYfyhXjH_Ap`FlHspwbQ3GQH zix!X=g!yUY$gIMYT)`x>cqT_DQJ!un%P3pj^~z7sVnR-keVqQ>OC@B1K3D}M9Zv}a zlR^gGH*H8~VAjAK!JBrb?lxLpOsU{bT9?RCj%3s#Qrv$(tFmvrIa`fGAxHU{l;ZVyM;d3GL=!>ArQ0+ z8F*i(A-fE88|Wcev^2#4s}RVAHI*K@f^KH(C8w#W&e2HrPp$Pojh2F3^$6;cdT<+>zY+)3#^yiQG}1MZ~Ci5%rfMwKJQ z-L+3uQ<<9uF$^Y{Vw_H!+y(m3#3fBUB@j#s8F=5cA)SF)19Jq6$}I+xyPXn+afTAz zOOuM>E!>IRB1burAvY=RIaPA!Td40ir@9emrTsW&X4q6-QeUco42Y((A5ci9IY~xM zg+BL_I#HSu3VP3JQ%db4Oe1{;R<#i|MIY=30qloBP%mWQeT{}(YM{wLGr^)t5d$e@ zDFguHM#?mPij>k&lnLvIBu6=tp%hYFI?1MQY&puE^q$O*+sE=&54Trt`emm>9Il0)aOJuV^co0mJ9X(cSz^v8pX`x0Vy-h;m~fd&$JktpXpgrj+h1 zN`|J7(s3dAV0=yd8pE?d-AZ$_jNLN2izZ?Emyix7fvSzuw;v@rTIhpGklN!8fuLQ; z!23E4*=3;HKo7y91tbPo`a+J(B+NZPS1=3U4mue*it=wPk2@`UF?BjHk z3E4*LplSq2IdGBm0JuX_ar64>L?}p zO1tDPz@5k~GO8m(MOjkZ9#wMZ=O{O(p8{EFKaQChnuLR%QL2m#2$PTk3hEh4l95TE z&wYDuQAQIAde1|T6{?TS$AbX?-)w|IfszpC2MK($+2wVmW@Gp~IlA{6_mL8Jt6dlz zkh~G(q}ec<+Y5ZyJm`K40(xc9~Kpn4LI%mhJf#=!5-GR^uswU{c7y`=$-) z49pssBUn@^Vj!htAOMuoLYYErKSJ8(qD)a&f?xIQP`Z=V7N%%cwP49KM zvXr6^CV>DZK_I9XGVs1eLoPMYWT2T~(E<{KFyDwAnMr7nE2w7{@26pl@^nL4M%n6) zk=#MM37H}LIQ@3)uS4V(`d|{2blf2jvPDQE_T!kDp-H%Z zw^C(fK$wKBKtVlINis4C^tq21Wip|_Bs7{*CYYT#y{{>yKp#wkvKmhb1d~Dr-ZyPX zXJFRA9KoVW5d$e@0s=rO11Yr5xPWhq4; zOacK+f`hFof($v`u~q6H)d7$qP_ev}|rFvu)^gGMgO)6G$WC|ligC3jG3 zLT1PwLm6(F!z9oLlc1#I4uPOu$iVwL4cTR&+dvP&qC$#+YSDmXi2EpA6Q#o_0d6aY zC@(Tb2@Hi%0z+MdgG(a&vI=H@1|rt_m|~oMp~>AxA54OziH8J&K_LV08#d&Kfl&iv z1dGZo29mp*5@D1;iF(ilL4Z!U6S+mkD1o6cN?@oPYbxc=H>>96R5#+Rv>(UJ3{Ao} zaD>HYPyt~QJ`WU<=}3~XQ36@_8>Ky=z$8qWQYM(4INi&G05~l{A54O>8czuXlR^gG zH*H8~VAjAK!JkiqRcvZkC>Vz}zfQ_g!$gGnHONe~F?g$%r}(U40GG#O|nShRq|0HXxt$d3}_3hJ4~TaJ@dbVFGU zqHJ}0O75UwLT1Q5PQTWKY@rV(K}p9Q0ztcwf%kP9vdciXfgXZIg%ktTqFTuirzqX? zC>=%#KPr}fUSy0CByg4#cg7!mG5N9zMojJjrWmJV?)ry8AAK+hk|rJ!2nK}=yl>c$ zBL+qdj1ep@b{#lrR3^8`7$q zLvWh_QM%nm$DP#Qc+dsl?Ts)v(?tT--wC|EIrkL__c&+xJUO}tkSZh?EOEDH8Rdv_ zKQ0Po?A(Rm1J+c5iz!*GI^uHV6X#hq+y=w5wz%`n%?jksq`PQu24^50>cC*>#TF(ET#AE!G^NFErXy;0I}hkzY&E}rP)*&&G4WuV&t4-PFZWV-_K zXhyfBi@PY@XKCNjmBZ~zKQA)6atWLz#r^D&%61!cn%o2A8K*z>9J4p{!QLpLct{`^ z6w;1Jq9z)0#K5S5F@i;vD+X#>9h4}H+bPlSUM0CRa3^w$9OX!cy&=WDv`X&$2<67H zPl2qoAIHoL?ahgE#X78jus1IT3hHS|l1cW-iE#h@u!zkG5hf>NdYNF3;`C2=7{bnM z(&Q+&@swqHk{}AaZ`zQ~z^s8ef<^Tr2GUCt1b|+aQl=lQkW7t5nWDVN=-(L%=LZ<- zz$B-pyEsR=6O+UIxWg@P4JAJ5FWEq|fms|68Uegj5GIO=K@(j{;H|<*%ZnP#89q;r z?wb!u%K8#_YdleoDEAGJy<}qNP6r>brj+gqN(M_n_b16G&a(jBdc(6!-6`f~F}oA! zE?R|*gLJS8JeU}#Ps2G1_)_%2D(JMLPMiZ-FQh*w?oX-*OBKYQ77v=~TeN`00LNO9 zBeM!Axq`VLLaODjlvH#>Sw`9F`jwxc$%M?1JvRUBIED_c!YW9DxWfc#CxBHj9}i_h z@-74226_k<6;cdTi)JYbdUHzmQCea2=5QyiOJwxs5;#kWyZd)lR-r+1w+=w)S_$3S zhx6hCIOK_gojm2=N;r%kkC~6+H@2u`ybwTRHN^zOc#;XGOsomG6R||bp+1I+vZT0I zSBaJHq*$oq0$C|Hjwve}{b|1~)inl0qdyiXq+Cdn(IA69x3^Ko5(-*;id=Dm7kT~< zp2)zVUgUWKd7grM5_u+^#t(;fTW9f`TRhK`mgiCMN1jKR316ueCAgBv0pz2U7svS_l)x#GvU;6L@R!f@KMJ?79e_Cr5WJQiTLP zCGOU!uxU>6a8W2@=Z*j$u%-&!8cGHWLH8x(6X#j-Zkgd(8Qh`fX8mw~M>j4PJdc+P zbl$gsBY0u_W&EAF5?QFmov{E8Hh5mR1A#;0JOEh5!o90WB%KHR`mf~HdBE7@)p@{; z=GJ+@4b1SBxQJfGXy)S!qA1)X%&p@h z`%}IH7m)Ac3+U)6kePen)iR%ZwB*#@c3?7VZ~L>q6kdDVJ}=taKFjBed)w>ao;d^W z22?S9D(WwH5Ubd_n~yS?xLLTw6wvoj z-z4;eYpOvDYJXjDHcA~NdNS!LRxey{w%`I-4L6@aKW;2y?rs#F8v8}lb5@bZmbLe?}xW?i4`2tsai-qMV&KFC`=8T*d z{=gDm(cHUFDT#BKi8Ea$4&9mbQa(2jEqS?#Gi~Cyk~qRdF)HEqGi+K05vcmf4kENZ-GI8k6r1@$V#QCO9wZ@Ys&QwVpVK8YkakPoI;s6bZ63|rkzF;r(ohtl*ADRD{3ZA3wP^^;*3$8 z8&5BZV`S})x#ySgdE(vAJ4)ib>qpYgXqh;4XVT54oqyt)(J&r0amGsG2!o@pCXNmn z6vY{#IER;#%^5i_{0B}eikTE|g`bP*=b zP)QtNqL>))YOD}vfa2^~(n8M2dEqZvR}zPK*8(*r;(YCXxY1jci9>fLJ!#_nVTr`) zGjRq=;s}FPY7@uKktKGghvK}ulx)t(dEtKuGvn=1o_O~K$eoC@(!}X56Nm0hnh#Gx zI~z=#ZWE`cB#tn+ZfN3k@_1UYu(~MD^(PjS%^5i_{C*{To_KdDN-q)TbJNmJXPG#3 zXVN`bHh?%E(OK2F)5Pg2i6ablcubsBg*Y7)=gn^{iDTrv@Y_&x6YUW1UV4VaX~EMW_bDOHiDPm+w2kH_8<+RX`8+ z%!GJLBUYEbaf=Pt;${mWfIA816A0rD^BF+wpo@qw?iAj9k@+wzGg`ONuB6QHxq2Wt9ZhSq{*GXX3j3a#xsGWNP z**^0Ltk?@uHX)(9{&f&&48IhZV2x3MawNI;uP<2{!z&764k(lXn->ilMgW)E%x54b zvrO~`h?yM`!GoN#f$D)}L?}W4x0x6u%oYT4W5!8H+#Qh5kT72669@yR2-#_Y+>~gB z#CZq{DI{!{`2?^##ni*BZqT9XTRi!2&y~I~TQ31Ucu6K~%0wq4H|@3V<8NWvnp#*8 z{ac{-Ozq6!D)XRI@q=M8%}Wn>_2IhfykKjgC~H#yU{r+u8zN*^ar0M`8Z6irXRrcw;P?~#%lU?9OhnU^y&Fo zcUO^qmC^eapx?L}^z)3)p-wgb;~D>WqZiP-R?`n7{V=08Rt6EZNVa$VQ;#r%yJ!yUJ+HK5!J$K6(0Rk+e4SLrXJRm zooDnRZ-N?VS;Fl*?@UaM5JgkdtacGJSsj$GXll5MPj&=mYBGiq2(#_x6OgHCfEd-L zhT8&c_8_@~F@7mF1mOeXk(mzj3HT)#!*mj$Q#YT1Sdq-s^oWo(kW)6ooDJU z2L*Biq8TzWBzD}4HY{3B04I@!%#IpuL^MO9!?KV<;#C#%31E9w5wep4xe3t%`J$|R zVRl+b4=PMe)0K4LbgXB*DabMas1dq3K`}G%qI}~XGpR`7H`nv$%l$6 zWOhVI4=O6o!<@+BsV^1i{EA~444M@`Z_3;5cKNr3Dh>BN5=2*tSgCubhrqMg?$0zz?IWYM{5N}!^LP+);Zm%VWRGEV9L@!N#Z4`hoGY{u9sX{A;aua`miEu!g^nm zA)5`f7|0Neud0`-$5+{OZk$6uXg(_jdIf2gTP(R9lroH`1+v;J`S}4%KbQo{mseh7 zygk8CQI-^UNb$`I`-j)gfgzZf$06{Y-r0_ICL+^I2VY)79PZt_km76JAo^ z8m_8c6YhhGXLnq(+7>e?u#+-Q{(0BgfL*21O=5p&OHZFuLJ5HG;V9UfXc(v<0kw?)nU{48kPyXaBh^*PK9o( z>i^8Q_f{Z^UPW@X5M$;Bqcexq^f!~|hmB4l-BCr^B3oqt&msbsPQk&w3nC2!w?PFe zj?How=RHTW>}}qId@I5?zUi|&wrx)cKkiNk2gSAW#JfGLM@4hrPG1xo*atPHOSLWA zX?OuxJ|XR)r^tN%*(aP=HQIn8m=8-vLUOLG==XK>=B9r zW_d^vJopC;pL3()nIAEN0IG|Sxq^`9!!%aN?3B?ajV2$CKMBdnsnQFx!$uZB7e0ViFdFD}asBffi9b1|Wuk@Lde z%bAFnSTy&21Wbf^wh1#-CJfz~WbfuA6K9SaD0ow)B#toX1x%b4UV<-*Ge~iQV~fe= zjBID9+sect-mNVYXW(nn%|MwrbQkw-dgi1ZXX4BPcOcaT>Rh=veH7=aGVK^S zFZ`>^#3A0b@f@UI<#^<)5~rt39J-5pH#H{Cl!-H45=R(RWfP~bLY!`j^KhAVjI6`! z?(>}X`NAUJ-O3Y&UYxg^I9+Ap&|TcSdH2K8&V-3GSrSK>C?*EH8Y{%A#!Q?-NgQF&%a}O!+)}dO-A-}VEH7#yXXL!_ z`y5}y=ZSaqFE43lt%;K<6Nm2N-px5SFc>j$MoZ!dgF8zmPA6Y+Dputdit{Lrr29h2 z896Wfd&|Tj-Yt7gNu2ywq@Ct6ap*4Y-TdHpq{l-h&TvT_VWOBA6jrK2oFySR5V{#$9M$HeI?i6cxD69aKt_z+)F zoO+7WhI9Bn*_@H{!rxsc4)JaiFB*95)SEc9W#Z6X+`DNpak@;L?vgmdU=iHJ(c_;* zaZ(iL))ggjjGPz#_%d;bxBCNLoQ>ns&K!=xSXM9)hP$|TbMtScoemSHvm}l%Sg$v6 z`m6(Mp%3r5@a*|7mzBgZa$fkGjw|Bx#Jd|`Qqs<^w@VyXCJx=jy_@g-TH<6(oc5A9 z!eH2A;xtx>Gfi=Z(O{CoGICz{k=GXSdE(s_t0ayFUy->vf^j<$Fe${-A?D0Bj*G3M zs~#Bsh9>=9hS8^C?5gQ6Mg5&wVf4NQ==+g=pwVe8tKURptvdb}%{rbq_iWuj>!?G&PW23S|HdoYL6W z2QqQ%a3*dW&BS>_rP5cUq>xo$-19l(3Z zc(R(mm*chS36MsB8pi9@fc$s>F9Ps~ba%m^S80T}4Zvsq`?u60&@|lBfDX_B&H~N? zLV@_{_Q1MH?lJan>s<8x<-M7+#ovQ=3)5R5?*y_j0mw@VNQR=}$AK{~EJXg&LgX(l zME>$ZgrjWC({{IyrQ8D1s_MhW9i!5B-jtTJvdGETpQjHDaxAvGO%E`nJt0oMQQk^( zyZcWnJR!7T+Et_s8N~wP9!a!eG}FHwVs99O8>-(>04yL0s}de4VH9&?Dew4%3BHMd zz$gO1kS}5Pq8RXWcHQlg%Q*OtP2g$^KPZ9sf*}D+55xtE-y8GTXR~TA{Y8_0_+FG9hie#vS5ycf9Dn{k@Y2jFW-)xaC_ASx<1+9hAJ^ z-GXqwsu225wCK_as*JtgjeOxb`Dopg)z7v9-1xOkxO>v#h?2AKB_!=P!uLdO*+aCd z_q+?ttiAs3OAgB#YJqqVkU8JDeM&*lp0LZO0_uhHJ1!zWYmNh1)qt34gktctPolH& z)*-}BL1)kx8WAtluoTBz$2@+*N^}DP|YV&Ee zeLt)jXs_L@LP6R=3(_6PW+eBv0#e|&Gd3|L)9<{pxD%8b21@kbSY2LNGMYso6Xzax zPl36Hc=mL9Rr{F7AB!xH&tFTB%I-bxipS)?Kz)LITEO%1k9`vHZApykzQ;X$+hgSq z>5sh_S(>LLR7`vr1RpDKyMV!Y_IZNy!p&SzGgbNTcMvg#A!BOUS5}1+sCm}dbEBZ{Q}wQ3m0p{t?pn+r((|Zs}q5tc?Z*o?3`!X7WC{k9d?aW5A9PjxbO@gQik+d z-}+T;aV6G*SxfgHmB9*~usOTQ`3>|G=F0MdCWOHPpIz0|1<o0@1oLooeF1ygKR+2T-pGCeWt&6 z8t1BCC1tGK{sTmcmyZK{sRbx^cA`2BDyb)Z?gzCOOz~d9m!K$)N33%8Z)>Nj@D-pn zh*x(|A1H}^ZJKX7E`@OKZqPZ0nn(HRhW?+_WcoRhz}JkzbyIblo{RWMYf5X2`0Ppl zPir#KGq3>MHaWwZ0~$i=QYI?ehFN45eQod5&Pgb+sqFhn{X1Hi{#YX-!A5b26n@j4 zPF2x6j)-7zY3l)T#?1ph6n5}d8l*=q)z-Hkrc^kg&vc+ZQiZe^}YyI2M z?@Bk*VcWe(zu+E*V&Ir|EpRMYU+Sd~^v{5^?gTJI_*r)=BQErPk79WDhMP-4Fbht; zkAxU?Xs}u|$2b~1eo#z)c1L6LDUxvv^kSOa}lLEeD1_}oBWCv#3^kHiOz`f`1lDd?z zx0~HKR*vR}^&T^OX8o`ZP9zTX3E;p~Hf5n2g@^@kkKTL&$ySs;+y#DpNY!#$1NoX1 zvf?&4?mviU&`vNOWB^c!s25@UWF_(!xZ_T-@Bk+QtpiA|d2@J!dTc{NG+E39)SFT1 zO%SDS6I&8^(}S9g8eKMl;3T86Zws?smR>i&L#t|$iFm2_pk|N{J!(A`uzzbKwA7qarK8-b-nl9(w)@bfEd zXr|zWhJ%4$a)lbL(|s3wWie*%V;7DG8z5zfLz#MgC(NCy%*RbKpfrf|p9n;0 zz=u?s({>|tD3X6gKEM$ zZ-lTYI-s!mtL+iubFQJvK6wa)zMlk(O+OxMi0L*jp`;_w523Gom=bv_+i~BN-+X!6bdyB@oDp zhLTXo?5sfGL<@w(_J)vgN|K{Cpf$w`fej3guIWuO}brMx*i$|(4R6s)U8 z0UhwWciaG@UNOJexT7Fbns3HgFBsS+f$UNOJSS?tjC?r(oaiv0fabcn4#NmwrfWU{ zobfQ9K$z<`p8?FC?38`K&f=rOW*b1q`1l!#F-6fchBv^t*uY%r9AR9b6PpPHcwX6j z2E6#5`F21;-r_ecH0PkwT>8 z=!IvHu|NWNsm6Q)IQ(rsg7Tvm7>$G!oO z<>yQI+->oEiQc~TBV}yBFurfoC}Q&!jHv--lJDjwne+^XERX zz8eMp5#E#n*=w*kHe*o)aBRkW0ys7!pM7x9rgvx`(?nK$$FT0km-Iha)Bi_Q=9usO z7PIUh|Fs_9zwBcDJl?Bew^rHR+b2h-ndJ_v7|H9wCe^G`t}x#?W?@~bfIc~DgO92) zhz&*1B)}ZSEs%^L@_ryuFZTA0%gBG~l8cS_g<5A~e~W&XeJ~c8@Uhggvd&MDGt8Xw ze~gJw4+r50i++`>LF{Aww?-|u69_W%%8KB_2sVshBY^Cd(LLj5pHoG5jV`apT&?oMK@7*;{!6mj83uoVwd&9FFZ#!QM4%@O4nZDg&NcqZ?+QIKR@Yw#+_=aPWarFr^MhPf z3c`L=b0&)cAHJ20Kb$7u8^EKKY~P3?Fuhb=dzhg$xOfhimi-3hLq*QN}S75su&yMRVlHIM+LGY0=Z!V zTtE}Z%7;t87G%t5^5M9Okg+q`w9(8L&&ih+z);;T`3Z!%TJs6uW4z`gC^z&Y&>HH^ zFhJ2D&;#W(DMl=SI~?W{zzE!Y24n+=5Gk>NoFrNUf3Ym|ftnuqT_+lmpEt7o~Q~>>j`2^5kn9qPRIZ&2K z&!Ec!37`Wsp8!6zY(9eWOp*&SDF9n!nY4niXJ~N|kTKD37y|+H8}elZ!tAK|1j6i? z`3TAleIJr4W|df0d!5~6EH(R zWf%dNcJm1sb7+ETK(G`?JCVQ0TP$@UgA4&m-FyNzwLu%=01}dRie>-<6Y~+2)q#As zCDjE`)C)b}J!CNipnCHOK=tM`AiZ=VQlb~npxXioAaCXqut_mQ?IY6kGGKH8)HU-7 zAS;vzyL1Hj8Wm}ARuu*BfU>?|grW!r(7NfvO+6vA^5K@3AsYp94MsDNGi2OiL7FW{ zlY+$ZsoM}j-9`sQDRvv;fx@5)e79lzl21jDV%>)HjZYr};eNL#yN$Js1w)K(gU&Gc z8Zy+M=ig$tK~EU`7Jrj&L%Cj|#*%a!B$sy^&=E4($@^{rs6vGSx#KD?Bz_$n%{Hh+k^v zV>*SL%rbf?4US$)D6CnaMj1u`mdktss7>Y*z=0m~8OS!#hgA~a)uEhW&K1I*`ro*X z^R9*VD;v2~#m(eg2U{`rw$zxj-q%TA|5nJB?J|0|fegU*-~{}I7PIs*F6$ar8vtyA zY#78fLT5r4*9rzz!f_0V@3^ZO47%wI^9^FhufW#BS@2z?kf3FJqOHZ72! z67VxTn|@m6RkEC$GuO5^AmH0*z7}S z>Nns&j_qG<^^aSaFSfTViqpYH4oc&E69KmS3GhZH0EHv4&qjl$;W)l00pw;s`_y;V z2mA!luOa0!;$c1<^`#Fpa3Q@9$6RwAhVM4Ke3AcFd=EM!Eg~fK2TdR4)?q;7+vp|O z;cg^fBJpi*l|Gk)xgo?I(_TynlHF5&WZdtd;$!2$V*-FhHLYWFJD&^Yy;C+U$96X! zsT4b|&C=!e_}8SRTHQ>Z=hsLa=dUDKZ0mvsxGj!-@a?PWYpglcJfv2E6Tvs^3T9ln z)4s`4@DJldm>$NOO4d(ovwhN#U$gRyRoaq4TN(n*x07KDHe!ktz&UF38Q>DfpdlC! zs%$c?3HXC2kw1TOEY`gkIE7#-$b-8NkQKtwgQnM_sJ1SP``qReu$4O{gyF3vG^S+b z^DB3Aus?O1yy2zCR_+wgR_-Pg$1jw{)5d7Z7|Dk(YY7?88qJBOy(ri9DG1xIT`*X4 zzj9ZV4A!euVz%CmXHO8{43nR#8UbG%vt$}Av}Vode=W=A^Q+_9^mHvq+YI`&smzyW zk4o2uh%n~n6M(^{Z(Ls{u=1=N4`zp@bsGpq9&o9CKwPqeBHOS5vk$W(O=d*|!ULcU z21a?tv(mjUPkK$6R`4BLRc3uIYyPNe7-z6J1Lf@rYaFlrUF`d78EBd zfF%rLG--_F!{V2aew><}7A;TUhK5z1WLGNBs${U{pp0kd7;!w91@Pr50&WSDfCmr= zu#RS->jiA+grn{9#f=0w0R`Z?k+zkm6^(tIW8*e>BeuyIEpV!);h z!?p}z5q}UX1OqS#!`dVm$8so}6!r^}EnMzpM;it*;c1wFb3b7Nq8wmr4md!C>+Jon z1jDwzx=qhhT&;mjfF*vI^`mF!IV5Zjv%42@5=3m|aRA{LI2Jo$6}wsT3 zJYA4W}TgQu+YJQ;hX#t=)hrsw@7no~6D`2GWm4rS3xPTM% zh^^B8-bvKMb|X(d)Y5>!ww6)khGbi(wu6$0fQZ83EFt8EsI5~RT4WmFnq>MUlhfw^Msvc~#zHeu~5C+Cy=8MaLH9uy+ZhDH3n z2GY!C!k$_|8~t;QNnS4SL|g}01@*8zs3z2p#IM#?l^Ltmsz{8CvZ~SS0}POy7y`G- z(i1b*5F>$a*?xOb-q)1Gh3JyESwL%CTrZPP%wYolqQXk>GHJ1ev%0u{o`OlkxT#q^ zWj=#`)9r$(6b67^0Moc7Q|6V|QFK#lCy((jr-Ni$t3=8okQ%aYT!5P|k<%AAZ;HV%^ zQieP-**gd~VCyh`BlwNtxA;Th2p;B_ilO!c-S_U5+zmh_ayOEU;evqn5M9F}a#J*S z|3^!53$csI-A)EP+Yzt)gvniitP_xL3g}6=0d>X%Er*Q_EoL#5>+n*&80sSx?u90I z3aCWxT9WZ7zJONMU1y@wDt%KlcW{~9Lc9*4ePz3qCGM6KLqyB>rpV|FRw{e)u$n$b`U;~{wbk??(hoE` zvrtX%0X-3VEoF@I6wK`oeBD9C^HD7*k2&<8Fibof%EO?UObp|rIS?i~Jn_5%CAZzZ z9UBHJMZTBA4jLzwt|AU6xV@5lojV7n+l*``?sb%^mB)A7TH<+hCx9@C{Z;>sWY>XN zas-R#CV8j|-F5^wPl4On4hX_Q4GunNbEdW6I&gLp5)~}H1YKE#GiDNLiA1|=!sNiy!?ANThQZ4iTD5fC9LnL z#LNlCFFTnb_MAMzRAvv$&!eqC;UYlA`C)&a>WP)d_x1q;wyLu7csZF?l*hMOLXxAh zJie^bM0xz~!%tax^uX>vPI+`^qV&zTAy~X*XpFK}lnzP?hrzx9H5S~@ur&uw_bb%6 zyO&;7hIcg}hhy%*CL%CvN2#22kqYo!A9mEDc6jf#l~G4s=Lw2B%Bat>s4wziH(1mo zz4yGzs3We`qK+`?cP~_`zq|?DP;FjmQUB<@M^;81b}zE1!-$!N&XKpA51LZUCFft9 z)FO@vtQJLWg@-oYiDr&*b?Z>wrsZn!y%RTM)J9!T^8qPrP;nT_5peWQXoquz@1U{| z;=o>vV}r9ev4A?zy}o;*pBkrQ^#JHyj0Sbm6yuOz4mD3<@+}R zKnpLUw^UA(?lK{0#kaeEzd#zx`>?eZb<}$wIjSP+gd1xmf=2|my9+GpdwtliGc0O{ z_ug6=wc!5Qq81o+nMFOphy9R6Ju+ioD#%xQ#L5^MYzOA__D>n-FrV<8NZ3~k1zq~X0>>Z3DD$YTxkpjz4wAj2207H z))>%Tchjsp(Ioig7a<7SzcDz|GdQx60oRJ$PnZJ)z3}~n{s03eLm%NE*KK zMJZ#yXz0hLJZzxl%VDTy2vu+tUE&C=z^F_BoS341cx&IUcRsW=d13%H4oX|u%DydL zJ_%Xf2VX>Yu7@ckSAlR@M6W~gNFi51(d9?%_Q&0Cx>V2~_qjZ^BJw0c;g>{){ecZ) zZyVv)za7XV~66XHERM_2Y zjbgf2M}bgS(?mcTPsMPfdm#44ZEVY&jP*gK$@%LR+0Q35etHpRqR3`NfBn!ZDx-Y- zbjUM+S)jju2Jsv}wZ>0bf8BhdBq~^X3yz;;|JfPFORo6>KzV=d?f+6zmw$hhRM>xd zE9}1z-u|Dbx|H`}Yc1;6y!VmAE22)gxz`ZUJAuaft@ptRd+&pOgF)lv2T7!HcUxu5 zg8M~VDs@Or-Ho$|UT}jJ`FJ1sgNnT5(YLYmIcO_4<6~yV7r5^QmY^-rKhDsq$4iFA zeqR50u!(xh=Mf0{c~+&UlkOBDOg~qjEB*Yl59Lj|4Je(|C<%`Y#;P<7IUZfezGzq@{gKdsvq4J z`7j^)5=CC}Jr>3j%0DfByyV-8K0p5^$}OKoAm+bP6y#qBpZ~Kh|30icM49@G_kNe& ziu}Kd2+Mz{plAD_pR<@dz4w!qF_Hh*Rpj3yALc_}qR30W$HI8L{I~oG_AgCoEA8Kn zkOOIy%^wfh1DJ*EAMvt(15cU#n>$4kEpGod?ihxtuP}Pi%17Ce#mjevw%qXt%iZ=F zh8lOr(#uI^|5kQ=yw-WcSuE21@3>weI4%#@jksr8yt@qRcD~T!MVGdd&4X84U>x>$ zKPD+&ew|O@ZXXgUV6&7xH7=fTTN8X+hum|nA|s9wHVnI0FzK*$&`-{nAJ5dH-a$7= zCO9dX5Kbp^T-A107@^MySfz=&PX(dRy-5{RboI*0+0&;%SuPqxumGtZTgF zgKwoA-pFzp1OozFy79bVqQ64HH*TZ4v4ax#7PN9O7Pj5sK4*Cvb0@-4c|N>+K7GqN zaF}PG>s3EFzq!8lvFRUQKcDXBMw$NCr0TK-8jQlC^Z8SP`SJgx`TSnHfI(IJI1EB1 zN^-7tHzk2J1!$;jZDn>>#>Cj*2*~iH$0wULRjF*B=XI5*KfrVrXq(+h`k&tPXQaQ^ z0_i_^ae4Z+i=@wM1eX6lCw+7R^Ynk-73JvfeFyQRIs8LsGvs zj`uO~aE`-Er5Lj$r~gs`jr!uw?@y5ZW9j zGO*%UaN&@=ZqpWIuk>tnMp1GkxqDE-69Ym7qG*<)M?kfCIe@{tD0=V{`=`n2XU>JN zA*z=pI3JRG3|4LucuZtCv4NY*hukgHsxz<7a;~C2d(O?Ei}8(3(_GgBagZBJ?}S<` zw4pdpsGYH$Ry%fWWOrsFxfmo|mNHW(v%u`*sTKG)sn*y>Rk47Kf@8bZi2*IWj<B`@5AMqPMtiw;S%}r1 zUhEIYptLb}7h>uaOx~CuYeEEcUh5$rs>k-$f2_&GIv$U0fF=9=E3s`T1Qq~#NIPUt zIE^0)0{sKmfX5ek{vb#{UtX=LVv`o<;Gs=7U5$Y%Re^ebDdd2G*_ax?ytJy|TiN1d7qzGZNIy?g)kq zwM(PU9rX{E);Pxu&pc!2PO9rM^l_p^udv5u`m!6-y|Zts>2y*E+1x95#TeTTYJjkQ-oyaRNib#9I90+RLyHWlLyycdI(2Fp99m5byw zm-#Rdv`tlfa*bqrr)PrBC@+A|N|;X|%#RqCDMK27nZpkF5p$U>bGyOdVc9vy#SpZ( zIR!I&Me}b*_v|v5JCnon86k=gR-ZV2ckt39HCZ&uN_1()1kacA9o z_hY%^ij~Ask2F&tDz?rowp&ZF-JZgSoE7&$>S0<@l1DI_C5yj@Y?pO#lTDKQdpYLA zX;&frh}gf7<6q3sP*{t1cC{JncUAXtI*@2`z}mP6L?H(TsP$TjqAnEpE{W+E7g3t+ zwTWJE)r2(LaCHB{subyZDmv9c#p0r~T~FoZig2P0v5Up;L?U>j*CAb75?t9|A8A{RLpH8k(D_Z|n z5bX5pW7!8>B(jtz1?&*1e}cw8JQMkorM~6+>yu{7a75DLImzQ~p&@Y%*J!enk$)_~ z7P$S(3b>V_CYqQ#`EVV|+N}UaPUq{0p^or!DO_2uow=9H@p3c6#yGea`-_2AJ{W70 zuE*f)>6ql?i}(3ass}vrYlh3;GPFmj{M%Gm$4?%Q!)V>kRpV8BNeTPvqa1*ORo!60 z;;|p4&o4`%)$1T0Av-nxa3r<(SPlC+{J;r=ZXIGoo8htm&M9(4$omLZ>Dn;9#Lo^H z7T_+(-sn)HRVtYzm?bT=V63n4KHo>ck7ult*BIz*8vqCVc*{X*#2pIe$=?mN^brmp z)@dDtp~DaL--p3bEVHQEVYR!?A(1AjH{fQ~IVUOWg|z;&Nrov2JxFC?nM0=RvBxLZ zbGdBZcnym_*z=98w}|bo=lFKyX6KqQ{>8sKi~}s22K-xnHrTaM0gn;!)iDgH^+F%c zqeeWFil_PT3LD@kPWN|#S7ysE*z798f5N=h3q z;4m+JxZon>9jYk!Vu=OG5RB`{I&E{YQTUF#V#4enx3XvWpjwkn{db}y|KgRJkI34k z!z!GnDt@EQmkB2?IKid&@Q^THJnWWGzUqa?q2+552&%?Kb(=1h`pkHQ+$V!t`?oZp z1fXRC;dpy*AxYXuYIG3&4NV^_Cy*mZ_Q4DMOuNBtd175OlnGk+!-EnuE=KHK4BSZ;S6E zssj3zhR~K5k{1stwltV1(w?UD?U#+7gBsca-sGU2;pil>Q5&F1+Aa(dbfgJ~pm-39 zMY(V0i0@>!{BgI;mIsl)Um^Yk;^CLrG-SCK+TDO}6C4l4zkJORvuiMFUbAI-x3x9+ ztQT&V@Wn;&N_JV%;PC7bpT-;n90VL%i=EsxFm!ktX&CNdz!AWawrJ0`DAjhvmNi=* z0n7Wr5*w9z3lf{xuy0n;?m&sqg-bad0FIvo<5&qrs1eU1`s`96CdS|UOpCsrVpQW5 zX&~fWnp@S-x39l4_N-T|Lw*`hqpz_#XMy-}2$)#?;`ltN7aO2V3>{TQlW;rmE&=TnT~ZtgRUEd(wEUg6TyW3=;h#r`|@H zFPZlEXOjE{67S2WBx^DUQ|rP->@U)He|ANW&E@lOfhdaKykW0gsJGavh08b9tGT*_~nogk5H@~AV) zIFEqx^Rr3XzP3Sc(@<8fviLYT>JL2KY zmYpzc6(cr$G?BVWrhPnipS-X)32P-H`!^k->YYUWnm|&}NUuX7PXq7ZpF?tU?$V3Y z#8}cQ{7uM7aeUu|D02>L6n@5o^LVxbG8?w-K=fJH%INXRXJJ-!>kz2O+O%7Hp^xBR z4073INj;!eKghs6vqc4}hbrzf9%}5Sx1#%nm+u&P3yt+Xe}i zzYpL`1IP<4zMH%Nsbk>bCtwjfn`YO^v|4}L-}_tK);NLDMd+z@+xfi?dXj_EQL|q- znXcQUMKX3SEs6rivB;(c2L?`?rj+{kWPU|8A87#=Tc3Gc`aa0Y{P7cNl0WZu%R3gL ztNc)t99Ah7EyDMbb-eO@A3zZ{Q%n|N2!1L!cRrN}v{zzP5uRA2RutizGrkBtmGneRzm7Iz!D9{bDl z7haETff<{HqR{jSlimGf=nFq5GsPh=l_{k{v3Nfii()LZmeTvd?T^imizoKpBx(sV zz2t!plf#yJBo9M}84~;1*TE#Bv(zf1MqLmXGbEh!-RA*v;W2LAw12;H4sVn}w%Z#r+;6JE{x$~jKg3IxkEWnw zVq9UX&)N-tTC%+wkmgk;~L{sW~&33^BUM_RYH?ySLx7}hT}^FjuXd#9wc z$*}Ef?z_MXjbJGsj3HbBgw3rxwI7UJcWMQC(p~?y`TNsNQe?$?(H; z0ogEK!Y#Ogb@$b6S_cvQoi#{#DM}gjYsD3{18w)!1u`@|@LN<16dL^lRD>hHuXuzX z$<6dXk^KFT?n2Ur-<$45l8})$A z3U%QdZucLdD#Tn%EA=Vv4NTClXw4sw;p!N=;d$$4taI++`+WVp72+&dKkE}&7ToXh z`eA=?LGomUE@hPGde&V^?(xdM56k<5cb)5X<=zOgv}UTSRGV8-q*n9?Ymf7yzZQ<_ z{y_DKI>f%gW3N}1)jxzsaXL)&P(Ie8}d5qO$VS04JZlv*FWqjP%MUBt+4=Yr? z%w-E~wqfgDP*jcIM6X!O*jzgh?|~8U=74{Tw@p86o9;F*uu(a-Q#ew_Yeob%cfnXy zzT}FUjmiCV7vG>)NPOD*WS6PIh|q@R$@*1WANmUXa7Z>p$@--Yd-V&8jL{lInn+A! zgiDY3kTQnKVg9%H8wLD(C})%XbB%Sub5wWis{gLZ3$9%KOm--2f)Qvz6d#la1;Put zt4&AzZU~-fh~9~me+`K+-a#lVp}z-+KcZ5Mp=`%6ey~xwy=@ojnQ#a<0iN!c=vcv+ z?&u2`z;fT2@9`Hkd#?$~034icZ@sTk6(;VTbS-a9YH`ec3=VOZA04xp$KCTmL&^oj zQ)7kUL^|}M&zT!&#k7$VT1wwscWdv%VgAda-GigU=F&p}iKI%*bGZiY^vpZH;78%W1S$G`B)=8p-$LNF4}N;5_&!V7 z3aqT|434+HkCO(397GO>$6K%Q-r=advHy-VREvF}qmZ4F9h~8|5H+IduN`!ld1Znd zhFJa*9Z+~D=o%nU6vSt&&7r0@BD-OrBNEqjGJQKD@k4W)oOM>mF{%m%5ZPS|qNH$J z6wI2!#%*lrXWs5rVedAa%%I<68kJ(Ys}mj;+$VeeddmzY8eg(w5OLpFh9a&)!&U|7w)dWULYUvSR z?ROCTUW;vfBwHOVu;#Yu78zKf&~@*(Gc7)Y80;u}2H!{G-D3B2Ig4!o}ealdq z)Gc3>V34}^UumHx$|Osk)vZ|jz~>Cr`u!3J>r^L9LW7Y0Icj|45Sv3}T({}@CJ6a@ zL6n5o$NOPVtwj7&C3Wxr$SxRCJv7#U(Balh>|ZC#z}u1*Ibq%CUrO089SYmbA+V{o?!Cp-a%0P*bQ9{tlbm=eNpwzDkoFpKnfjFk^PG)d?p zP;WS;;2InzH#%j!rXJy25Jb%qh3RF92@ zb1P4@5v@t&hvG-b*PrSbS9i{gfiSBCGcYFh4o|Y0226#Cf^U*RH*TZh<2*_Gm9Fni zet=jp-U@sFfJL@w!yi^`n8S2t-g(XKOefkA)moMOE`;56Q==?yp~?pf)&2 zcg#OOSw5e7DZ?&OKg!lW+=;s<;mX%9+fn6E0h5W%!wa0JYlZ+cx|SKPG$-fjI*`)@ zOIuvfkbT`OhOSdj=sev$r&A?3Pd9B2RCt`HdqKk1eIIBgKn1lrOx@g<6IAtix*wdD zjAn42?$(zsc%JTW_dMFyr&VdpPCe#%v_p|kR3jR3m^wcf6DaN>YdDe|*LeCoT5-15 z&W4RGe02tY_Ib4D$XZyR^A|mjR)ZnET7hqCHV|I)JlfVIIE+glvg(%6LOjlSG_K{q z^z|_OKc14DM=Q4<8dJ|(&u?Tu^7Q^;`TpU1x$-ot(PyaZ^#fz`M zV|~8)vFH)@AdC0mqV)Y&Fsl`HzG}Yr@QGBr&G)|e4P;^weU{{Fe5~{#U)N*N>u$Qb z4>e)Y{e{fN@d41qqN2Y2Z=Y`-{`KO7<*zW`e8psvx}R@Oe2w+>&z*06>JD&O;J)6I zoNs2={FUdM6A)nG`KCio6Z7??=9_OLYtA>j&0+J+FC=W;JAhUKrTOOC1XVrXybw!u z45s^AuRrvE*?jX%4rHF#{ihSCv!~~qS`-Sp1fY<=!u=;%i~oW7<_9reQY+9Ol>Hzl z%!|%9Plj9;@=4A&4{m*WzS*gI<@d&QSRYH(JzB4Lyz{F6*XEmBUkihS$H|}Md^5}F z@yc^>Or>;Q^_t_nVRwHIa#`gr4J0++d`pp9G2guSAa>Lk7M};l6P#~83j$!idGER9 z^UX%eF>k&(diP@U%>#H-{Bh@-gNP6Drrp(G|F=Eg{5sAF{t5HVsTN;a7!fZt-@NK} z<$S{3hky%>_m?ZZim~@&oDaO|24BvvUPUqO@vO4_@ctc7WWM<;&07EV&IjJib@hej zo5LV1FyD-@4e>ma5zZ@%^v&NolRaQIK1Z@vldm08bLG85(V z&Dt%hF3z2WfRujzd^2}GlYN}|=H?R`lfA=={lyIPAEp1PoX3Lug*UCF8g2e~Sph;V zGJpKvK7V`LZOKsMud!eFuB}Pxe*RVqasK@I+Yf0jp1S$l-7Ege^S9bpp)xMGU$``% zC{Rz^{OS9J|Bk$A{x)h3o4?WCs+qd$ftIT@e|ukos-C}n7H7AL^SAdu`+wQ|?Vs%l znJ2Jc_`6q7XHU=HcCxMhHRo?Xy;TzEjLKhhzwpkanW-r}?)>dTkjp|o$@$yaSXQ2Q zo_)dd=^J-Ey6Fb36%BZ_6rYSR5q;jOl#i! z=P8`O{VR^H{;Bh~k2RHQUvl-UeEydCqN)q-{~#cxpFe*~E7`^7Z#F;Mvpmd#^Rs7z ze=9^(9FCg!T)9W0=>c$D2>}c+&=FICo#`Idf4y`6h$ELsjvf zkG-DeF4LOU{A~kXvMN2D#&0$LfA+owFpjF+f6@n(cM6DzUK|jlKxub3uLcoP+F(OV zS)1^Xi*C1@ZL@Z>yX`BOulX8c`6rfDu6ud;~?TsFj zZg>jY;CwF7<^3tu?I#wdygqIFi5*5W>bCxWw4WGnE9S}|*HZSzg1`5E1DR^hvriDb zO0VRjU0ScAjhwt&iqRTN+BSzwT5e1SZD#|=G$k2pH)Xe+OW^{WhS6kYI%tzGIH7`QkLJu)Fvus_nMTZ%2x^0iS`1UzKNzbz=W80T8{-gnQz7hY*L8y+;c)q=+gdcUa$Ty54< zt8H+{B8z8#sd6awkGJl47Bk!U;i5iAhF#!XUvqVRk!bFSH?oR`e-DfBt&w9U9Rm4iUV2 z_4lpWpgr@V%JEgp$Usq5=!!0VbG5pu5vD3=yG`0Ir|lHNH{aFGIVhi6hbvmNwKA|0 zOj+Myk#W@(hbu#WTly+JO1)Lv>CM-5O~Y%pv9qY`|HYfo=}jHC@Rm#b$$PHsG%_}z zQ=drUz38xhna9L=$2)Coxkf2O)u`U%i>lKraowk@R5E2R4dfKHOH)70er)nb`%f$` z4ewn1;(+Xd{Q@mdy-EjpD}RcdmZ={ODX8x0z_dU84Q_1L^fIQ(KcQB%-mAaIjWyI) z&AYA-aLjq3io(P#me7 zR}2%vSIf1XLfBdq!2{1y4|t8RDoWkN?t(g?SU#_*%Gh$vfJVyLa!oHGs7VsG+^bs( zjP#Ddy6LMn%DhHdZ_zDXZt&tUef(p~uumO?T&pA>2#?j3+UgCnx~{rX-PgtzUiDnI zpKJLJt+HPEszIfc-bz3g8_LE4L&}cIno8m=SM)1Su26naC&$*6u)Ib=Js<={UQ#5z zC$#K8#w#b;U?+O(NZvt`H<8}Lo3Co4d>=Pn%Zz=ZDGzSdOPb%L_JKXaUP*b06-qj?4krV? zXf#iuYqUX|$~YSvLZWhlFG${@I0&A)p_kfjWpu@$Dpc1ztiu&j@~%?oO^fFobos3+ zY*(loTl7+2Z2Ca1)CR6<$uZTaO7vAxP1i;g4N|r79O|}f&Q~_tzzS*QT({s*t!le2 zb@Qr{w%ep`YJ|3&w(He)S1LQT9(~7fA0iCfs8AuS)%Ph#I}XRIf%+1+9=E#c0lN9a zm;XtTr?L_@#6*sI_ILzP_quUyw&jYF&S~19RyERR&a=m3sR~}J=pn=#ij1v2=Il2^ zdzRptjK=rSL04dbn)7vq8XNg&%R~5xot}!m!+O2wwsrQVGbxiD(54KUsZML9cRU9d zYW$9O>Dj*Hd&D^qQc-^nsi(c__EjBE&tQqY@jUG%SL(wHw0Bnz9tO0-BCRq%4Y#kw z<+Zrg2SGUCk{=I~ur(w-zoa&yEkfjtVE~r{(4ij{aQ|7@UJ;e>S?0Ex*kp;fu%t~N zRl{E%nY8I6jUVhdl6EY+jJCv6&55PXett++SOt!01`q9usdnPV=80SIidDs%7rA`3-b>6P4m zTYMO@iP?T@d6hi)x6Zz+h4Rn=Ta@9n-{yl--hMj}cPh2t-UxY4`%U`)s$XB&Qhod7 z?(2;9%cYbQND0+q+422*fV}OOyXdx0`z3#p1SI{H$?;<aJ_(4C9*oJTK}bx>DEoXCG^H^8!Kv!VpnEEHO-kYZ@xr+Otg!?$FG`H89-AP2VR5l?L&XA~_{jr&yUn`*q#5h!XL>f8}E zW;l05jbSG^qQ)vijX~uL=KH_>sekV5-FfUA5l1_Zou|$xsPlYvUZBn)b&jZWy*f9l z^CERVS)ET&=Tp_WMV(Jq=cVd=hB_}(=QGuLg*vZP=cqcbQs)kJK3AR3SLX}V`9gJm zhdQrT=QZlwsm^QFxl5hjsm^J2&Zu)vo%8BkROb!qyh)ueR_9C9`CaNsaW&iASFfI8o=&JU>bx77Jzb$&#hzoX9IQ|Cc- z{((9_uFg-W^LBN9Qk{RM&QGcHkUIZTou5|cXViHI&MU6^w+|g}S&Q3u9(x(g-Y(=c z>)B^eZRo3?Iak=Zi0`3#<|}l#^A%>h^VMgaD@>>0dmnYKKImM%$GM`hcI{inx$1PT zE^w}>hScuPaIQ{qt|HFWJm>02=ju@BYG3Eda;{#)ScI1RoOAU{=W4ri^*!h60q5#& z=c?biy4AU&?@?&UA9k*2&WXPFF6WBAPOk60)45vhT%GG&t#GbRcdiyWR|}l0W1Ooa zoGY5sqW##*xq2DHhWg$M&eaa*>M7^yap&q0=ZdCf_GUN1Uq?kORP0GW@C|<0vlk?q$woW4OIWW3gaLg^?3YPkK(|xeQOy3`T)V( zVX9vOfRNFCldn-=quDXc^sTz={05kif|}eF&!d?Y#bdSAzTAIfTxHM(Rfw*apG+ z&IvftLzci0fn@;4!2C0TivTh(=bVVs(*P8l*AX}jZIqZu>w$+PAWb$WK@S2Y0tEn) z_7MW~5u0Db+(uw4+T2(>Y28EM4*(>3kbsTJ$n-HC_1g-)N!tARI4#*ngBAi?07!HP zf!hH{(JlhVqDf5BE+KFpfTQT0`)L8+A)Czp8VnKm3V;eWfu95X66PG#`_{J)(2Bl} zz^Iv5(4i8Akn=9ZUAr;-5c)_ zB<(q}`8oq@A;9dzwdg|$EC3+U^9US)QbM9nA#f=GiH;KZB7h_Mh}UY-pC_9iFc=_k z`0KRj#|bP3AkjMroP@bnB>H6ny#OS-HiXmt0FLOBFvX6vPLs{A8I%Z|Xlv0QA-7ZQ2C!Ca9$=f($YzIW(~hcuI5D!>2;gvj$u{pMo4sZkHWvX9 z=M!XejcG&G7}okNr2Qw`{DN%0Y}y=&5D{l5*_;mGaBgFp*Vn@4G1KN0)H1|5 zjcir}IGjh>CPp^&Wi-d;0z@Qn-c2^|0&r~Tm0)yLH^zfNG;0hX0VT>p^3 z-gDuh*nAm)Y~F>^X|;gu*gOY7HXkRO`*4ClEiH=j+6M3`lunC!1lnPKjlfwrpgnG)}LA8`4_YlmN))VB~Y_7SrY+ls&SEkWC$c!}&PdtRfpK zqK?f;M`})IO(Tj<7FI8oWWk-$2fX43`z(hxy5H;}0J;k2CY($8rRq%^iHx}e0|N;fXU zv4}3{=eTXv*s|z?La~l+oR0&=UjH1o56T_7pbYg5(%~^2x6Zi<})#Hva|S*gU~DZDg|?QXHGB0f>_#o7(|UH)?4=1^5Pl z`Z-}ZUGC5Yim_@5T4&;-PHbLLZtoVY=;9MNEK{@FQ1ip#`#lrd#j+%RLdLs_?BX5i{`PCT;gMo`CT+gA5 z_y+*eQ2lmZe-B#oR0c^Rs%NVP&jM9_!$6w|2UYzS;;4BGPH(_bBp`kf{~+8TKI&7e z1`WXxeh7g0F|wi5CcX-v@JHS!DC*RYE=a>&#^DX9A=bblm6aYG);n=fAyYpm?_DQ% z=mHgqbqC$(!*L#6(9dyutj1`%7a`A33Nd}9cL2>GwIz9Nfc)Z5=r%>q4#B% zQRe754tFVO)*{(v{|FJb55UC)eg{AWr~_#^^KP7O6r1y4eKCOgJqADm4xlRV=K!ba z`$!<%A>W(GJPIc#4gaeM!7>5^uRxtZY;s^X1bu? z9{;C1{$Dlo0K8JFNA71}a(YwRgd3KwY;RwBdOo|ckjyX6<>;pITUj5?CbISC6jSMN z{n@!2Hz2#e6(bbUdnBZn@0y>)Y6#%x_2~lA~)pc745aO^wH| zZ^P1TcRZCDU0qJUvBa-OuBq<$^Ft)GDp|;;Hzb#33&qMxk2!uT$c55f$#l-@vX-U_ zxpaK9P0&td)@JkFamw~K{u9~m?s%rtPNy;d(y>JE)6-UZip>rZSAe{tuwWDZ88sSlrIH4yVg-)fprS&auR89s+HFf zYvrxQJw;@SVk&_mz1imbHh|rkDkQQSAhFYs)2VWh)oHaWr8cWD=$j+z%(oHvd~#i? zP)z3SxX=;g1$Nt7JCiMrglWE(kX#!_*ld=xF$Mn-@}5Gn6T0iWr&`GjVmpsI}InmAs7P-~T}Rn{u6c1|Mc^ifIWO%y8=?@nT%!3;mgtxZ-c zDJZGsCM8nRi4BCOLKG-6(u}y>@kAHpFIPN}lT)oOlm@)UnF`RYiTTbx9#^nOWVw7N zi&L#!Hea-IWxmrb8_BQ+iA~vlJfWA^5Yr8~2++LsD zeA0$^x+iJp;wh~~+=z2Y3+ovUwx~moJ^(L~4ejFazK}$<2$5*Oq^YiKlX^Q*u$P>8qP-%uCLhnIP;F8L z(UHxj3#e`qs{Yo&iWluux{Afz$qN_4qObr#hDQsa*{KVxL_9+*BU3 zXJmUaok~o3{I+)?44u(p9|P-uGk-1?+j~WNFvW7+WcD zvc0cm+bdB`oNTL~MR=*Iv(+7-4m<$F)2S#qx%z|SW&tnYZt#qp;USkd7mFG&l zd9~oiF=`fr#&o~s?t;ULOKu`1Ou-}X^RG5S4 z?|K<#|9`;Uk{T;?89K&b4qOd)Fo*HZzYS*Z$02`djb-;?^aJMLr!m8U%+F)s6lVWz z7!-#&jDC~XVXk7XAH9DthhY{8e+iw2FjwD>F-w>OU$Ly0VD{b#z0RnyTJFL~C(NOT z&@l$H@7vG|X7mw^slElV^Bv3D1albXwJ>|X2Y+Gqe;@wB%nf2t6%#r7AHz!{P3U;S zvbMwQ`zg9Y+aUMnu!lML6vp;p+D~IJ2xkAUp$E*qXD~{0Cd}Vp1_#WR9T<~^S^Hb) z1vB~_^rHK}hr8wQ{{^^%Y5y4mx-e`1f}uAuUqrmZ?1%X>%)!4RK33rV-w_`$t$)BB z%qUWP5av(~>@d(YI0JD{=FA%FLYTQ(HP)46&aSbx!CZY%jrBN88~b*?40Gt!HP*b9 zz^|#XI$#dHzQ(!)W}glBbpI&0r~AjjJ>8!N_h;k&@o*1wXd&Fg>AeMZw^}vBw<3MF!M|ui{lMP@{wBK`!V#`4maB&_a_L?lhENwxce#M#sl#sjc0A?>W7=IFu~$ ztGQU&*2sOT)9ASNc1*#;?;vtSzr_dE>WlJo3-S!aS%VmoAhVav+6@{HvHft7-LV;E zcT^7%&-$b`LwrAk`i}1RBVUm@jC`dq@)4PX=%-L7@{=+@r_CJlBw?yI$(-nKbteiG zgj}1{=HctKdHz~$ZfCrm-OXcneQZC(cs09o>r-mfaz4Q3N7(#0o7>pDoy~jL{1%&o zY(B~6(`^2M&6n7m(WL#^pUuPAwAnm?&3ZOZWpf#utJu7d&9!Xi*u0p{%h|k|&1>1b ziOtWmc_*6#Y(B!~<7_^~<_5NnviV^)Z(#FQHv8GUo6QH<{2rUz+59D&&$0O;n^v<9$G&VH%I1-5&SNve z<|%BR!Df`r3)t*rGsEU4Hs8bM2ig26n|*A4md&rQc^{h(v-txyf5zrBY!0*ecQ)Pm zdluR>luie-c{rO#vpJv5MmB{%z~!kI6%g@DuP!go{fviQ_o@9v?%h9XPpSOE7Q=XU z`nu!t8ogM%r}h@P8{m3uHQHS!Pb$S)totzUi~l8-XZ5ihw1>zYwTqOAXBU~&K2m(N zkI0O&Df0VRzTg(dIgt+z{RHQ}sO79?Ioh`JS^N_hEnI)~a{Zgb^N{qSb{Cn$tT(m4 zM$nA&}&{?z^(O@C{Zzy5t3t{pD@ z1y5A}0oFgt>DY(%9qCE!PE&tse~zYqe+B)ce1Dtkxg>a^`b&E5G55s4o*38@1AAg% zPYmpdf!#j_<{n+U`p{(;oWA;k)6ZSpzIfH*Ty1VnuJ)YMbG7F$&dpi1xP57E4z6k| zUA;gSF%cK1bsZ6Sviljvws`N0{z9*0dm8L!jcgFWu*%f}YN z4Kh%|{no9kFee}sYZ92UyneZ5z;BNf5)zJ_or_=8lU#=3gLJYjy&@HEU6Bsa1chA+ ztuGX_IfQnX4jT%^cphWjyLQ>6M}9F|V%Kh$gsXA2)Yp~79b}{^Hj8z!SU4P66ECC^ zF^mCW?4~WTvOR*E35<2bFe-#$t+qsKE8T3yXjK-YM%g^wX>Dy^9CQAQBraCBGFc2a z(_q56G=8@P140uS-i1SjWO0d}mJ&d`dy~1`yG8KroI-qEati!vhF@o7vk2rAdA2MW z#~Ae#dDe#U@J!J!@07RNYip#Y;-m$x#P zm9s`^S?^&Zt&4D|qYDakwqYt!b0M8f=IE+5ZI!O|E1KcRN;R7-8qXK-e5=cmc}}K~ zT9-kl8l@E)_G^WPJ+08PdZyg72IW`ae$*|-EX!1a=l{@S-7Mnaa%*=k3^%lI#!SlY z)=i0|o_?(#2o;J#m61@cf!hnELutS-bt0janEw;as!3?3PARK&msu(MI~+xF!&x-3 z3bBJayG)X{aL3D{(|gt>x{`_Y;ZRQ|xd}7zFiWg8x;#-9v=LX~jG;H2;r+zlWi!oC z!>lE|gs?L>I%Ajyg^6z}NO*}uT^~zyt&gpZr_%0w z>w4n(POC&4#i$?E7v0J3M0d_Ay+joh09t88%N122kE!W#F`B66y{jj%(S1}=>0}01 zotx90Ks{?>YiRCb9#zfX9M29{mB{i+ubqD7-Cf-4(Z1|qO9ecrF^hvO|NGKND zfJ~Fk$53r1V^m3JGi_?s0ofrq*^MzMxvtn1OX{Twr1^-1MtZqTCz~<-5s{ZbyG*s8 zBB@U2k)SnSl*$&ACyncpMUb3_z(fMp7>m)%59QHr)+-2c-BLYHM3{P7w>L%1pH})ErwQuza6nxa$10z+EssO|` zi*zjWry)TL2hiJPR07&DR~GvDw~ebJZRJ!Cb?99~ZHlU*b4{ukLyrn-B{Y0cEynUm zRUx_3-k~-mFb_K4%AsyAHsh^Xy^SULb*AIom0{FsiA|g0Yf>A+;U-+uT@UEDA%CsDOnNcr%3oxYQ=-8(Ro$(?D;(JF0!Now=eR-asRyEC(~ z+kFoT#$()Vn2aT*&7&e&*{M#h7&@sET_ZQqOXj|{HlOt6=X&zV*oIWT*b_$sbjOU| z-rl~x8rPYsdF30&Iv%T{x{4TOr_w{~ux`_)7-l*bvKhSC6gS5h{ag}d8 z3+BQh-ET%+I-@l^(E;u4V8yGtyMuL641Mag`YBb}GrS-KEKQg1w?wAjZGtX=p- z6VE3(Ox(q(r>{?qUwV%GB>PpTvmnonpJdPK#WTGYYqEXIW@z5OO#4S$X#;Yj>Jsx? zf?8o|AlLBT@>HMA@Ys@Cf3Yj^VeiV$ilQ5IJUQ#zCOM+mJ7+z}BzxEBL>w>B2r}xL z4B=`4DZLern(kvsnC5Io*8sX~R+sReC9;*$JrXV#Uv2bM??FR0V=k1LoKPSMyq*Le z7WkrnO_C(QEey~dI#J1y#5m-66MzJ|BY*6ID?~a8cOu;E`LC+D4EZNVkj15|ETP9E*^@$^jHbgq9@*a1 z65$n6Y#g3cNICI{Q%}EP4?3@=yL!J?GqY-9)@*A=%&Mi$K&<)JjBa#qZb~N5`5x<1 z1K`%Y3#{-AIG$+@z7{KBS9%NO@(%0r1FczM>*<=nADWNuJN^gzkN1sOJNL8Z@N2d8 z)mi-3X8m=qNqNt?aSk_~tkIf0RYvATNvt|wbrpB5zYw%e* z594gj2>Rvo`}+j_e)$+;xBs`K>!frme0kq&#`-z@7=$0QX7&C~#gIDpKBunLx&H+f zXZNAXoH5bW#c<`Wc zJngMV4;sS@AU=G6yx0f5W`wOj9yEGW;nBI!-hX4YZ`4+7$$WWkr3Td3=b}Dizn`tG z;5QnWkNNnE+qcd2`ia|L^ZJLo55lj$PtKI``Up6OEaPav-)fLYx?#s)vWHVvFSY19+)vixHQ8q%}{?etNY*uekIW9&$dIu zGwqN)G$Ukd4??y5dy(gMOW)q04bL2$0ToKKdLf;d5I!^`+E-(TN;CRua?#olZiR3+ zYTJWz`u4SJqr)>pkOeWC#g232$c8mZ8O_OP{OHhLq!z+z_ZX1jVrfl z_s>LKf%beS4*4y_g^62$*J7>dCrb~UM{a1%=>nW+9~-*5&xc>oc>L>CBai4yKDZC~od8>K- z{tlKWSok)P@e{tSkj5%J%s(5|B*mBP6CnJM;hy|AG4W*|ffVxv3%|w1H!<;L|AAYX zFIf1ti*I7$%YFr@@|6C9g)d)2AWZt3Sn+vZgMId5KI3--o9Xeq3&-{@w}0G)#sA@B zbO6ME6O;eg?N6o68FRG%f`xC!H|cL;;)j_373K>TehXdTM+WgtO#IwM+V1FmwEu$1 zJ*jTvpdVr4+XV0HZs!NPBG`EO$KU-mb;0NZAh|AK{YyZ9z1zU-Uy5c35K-}G-KZkm|*y}Z9t9iD6C zzu;>5gUr94`GTwE%f3)EYqkG^tL4kSPV1R3SolNKkim~Ih2O*!e%V**G3E;vehZQD z6Ml9A@oC>fa$9?d z)?cvjOL&gbkMK&IOiX;*FOlr7V!q%L4)w23dQr~lM;wx8VvFd2Q(nawvnCyw)LKpavL3|SvU-m6r!+gQ_0sG~LAytLA@R^ACGH`_EYTC4_^1gem+b0{9W8@JDac*I!`1V6v|&{g}VN*8a=>o5Js- z3;f6+|4pp?|Dv|rYHPmiPbPfaRzKmJnE0}<*bZ2z`i$kh>L~y6VDd>H6O+7N<}U%C zxMw8oHm@l|m{xI`TfwGjIf`xBGHvI_u zrDyH!+U_dm3;qi5<%+3K)yfO8yk}UR;6sk}mlt9`L_ZT#`mAPot>9Dm1ou~vH%x-? z6L}^kdC{+EyWg-p!Q>t)TQ&~*3Ex&oW8&wSKlhDVAHl*m^{4nYG4cDDe=73@zYTai z@lE@Tli%-Sd4fMxLEdU|j2{`KpNUC7`%Z1Qo#hGcJkDP~GkkvGjk3IJz^C*RO#W9D z-^|DM{EDArTrHpWUnjSpVZLDD55targh_uBQ+$-Zs_hz%*ZvC@zD;EOgl{XPG4cDD ze-85n3%|v1PyU;j_(ROUkNJXyZ@c&=Ccbr-*5xVY3l{#a(l5mPFPxymFIf1sF8@tT z{?oqqWdbZcRR}ye9=OGd1iPh zeN0UHl~~@h;8Xb)j7wF%`&{X3Vimpt9Y2pDA&74?7QPKR^dn6E+XV0g4u zi1~tr-{Rt%nD_$^YX1A{wf};JZ!6!m8}i@8#2;dQqCxWo3*VZd1rR2_i534LE&Iqu z<}((4ucoUwBEE@!tZzSO-y|I+nV3lr2Q8xeA~r0G4WfNe^r32YiYT!Q`Iw2^sE59}|;4vd{T$K%t-T`xIghZpyyupJu*b;pYtZf)Q2__DA1YUT?TeyxjdV&cpG?O$TPVBv>cd=nGDm-T;{`GSRSyZ9z1en0b% zK1GLLu<(0bd=nGDWl+c8GUf{wzNzm@+%z%q={rH>_Gab_7Jlz8{HO21klTMUU$F3P z7vIF>zs>x!@ckV1JZCKYsEco6r9ZpxWqywFmw+#4E*T=v=6i%GK1@vVdYS(VmM56p zQ+YJq`|;^}OXT+dm@ioP(OIy>k1+8~O#WL>XuEfu%H@Ia4}i_^oPJt47WwvUl0G8e z#3bMTskXZVd==k}9loYJ`q>61eha%FV!mME*Bb6Ad?qG-RQzkv{yP{vieEE*iEm=! z_c8x`<_m_E;+yR);+vTGy+7CCe~|ftg&%?(`Vl6+iHSeJ{Px9Kf5GIwn*2fE-6FS7 zF<-FohhaxQ!b*RIG$#M)dtGFgK3)4SSor4qkka31PZQtzrRJZyMDqm;-!}XszKMx% zGyfmV7c6|Uy+?c#EB@2k|GSoI|LMD9AP3tb{q2r3*UC}O-y|GPRL)FFIe~?7vIFh zm+yJD|<_i|S?c$r5_`}S9ZJX9#@SA}zXD%7l%By{r!^83f zSIZAE|0?DS7Je=3M3~~!#40|Se>d}67z;n@;+vTGz3l#wGj)6j7QXG`o0$0h%x_}8 z;A;7U%s-F$f~(~ZGk+uV1y{?b?;(=gk27De@XhBB#lMLu{MK`tzwdG#e}aV{a>bvC zi63JA$Cxiz_-1^Q|0X6reaDg99<@UIFPQEfgJT#6{Rk7^#KfoXKa$-Sm@k;_5r0?D zqZ|a1+jpO({TD2J8+P;~?5BS(^WU^m^92jveEtyM#H2rcw~}uERrrjB-wQkX5hlKg ziEsZ&+g*0H_Fu5@`xSeHZ(`yPGJkGV^92hZx7Cj@`EO$7|DUz&iTjR3l@IJ#WykW<$F=@XTD(JtAIcT;gxivgAK)h zQQ!Kl@EHp~r=2@|6BED0?%%RX>n~XNroQCAiHT3&H6^zJBUFIf0y{YQKgQ~2pSymWiR`OIf5{9f46 zk1+8~O#C5sKl^Q(FIf2fiao+NG4XqAwEx#JU$F3_F20GC|ID9r0sGHb_Vx>Rx*D#;HH%(mOuQuMNSK_9Li9d*M4wKtK<_i{npNnr| z<^TSgfBri-{um423@`a_V&eC*`!6$Ju<*_DPJ9z9{(;*617q6%UdF=j2ZerwiEm=! zw;ZJTZOj)ee4EJl3Ex&oW8%|yy~%C^^92jPZ!b*{zKMx%9j5tDGheXqZB4J}KYdS} z+;*?#{KHuIy)M3q$^U+K{}1L17QPY=8H88Ti4Hat|JB<6`{LUFe#YcXwWpQq5q`+P z#Ha6|liTHMG+(grONM*$-^9dUeYocTocV%5x|cy@##DDbbZ8Hjz7k9kMuX=i})rc{=jjXzlHgN zg>OR!{Rk7^CV(Gd;tw(ZkagOB!DL@m{LRz;-^BbJW8s_eMgE(Z{O@D;p)T#eVBwdb z2mJ^WzeE5(!o;_a*ZzN#`GU#5s`y)|`AsS9{{Um*+mJ&)!sNeA06)Uy{}8+X7V`y@ zeO2)n(*9rYPVIk=vGC3KBL7WH{`ax_-!osZ@JrBxeuRl%B7h%Z;@e^E{}t=C|ANV$ z^tW-)k1+9V0{9Uoehc%TV7_3oCw@O&;711WO-%gZi1vSBTKg}U+!Mc!F7P9R_=4Nu z{*ANXKY!=?-x&`u?q>WP<99Qj_a^P%hZ)zOrtzm3Uvj#}cQGDh{3zp>89&8%-V*Kp zkBmDQ&+69tUBdX)jJGj9fpN=H&3`lFG~+1aYZ+tHc@^FV7;j)a%yP`vacG&A_YKBT#y?`bo$<4bXSHef|0jILbF(@;A7p$ih- ze~|I37{AQ;c*d_=q2<4s@iNA5Wqb?cB;!HGn;F-hrTJGe4l({D;|m$z!T3tX-)6jx z@y{7Q&iIdvUuHb}A|0N2DD+hJU&FYA@kxv?VZ4~}Hpb^Lew=ZN@ym=aWjya}E&oG| zI~ae8@g+nS{*I3qz{!Z}6wEbaM zus)2}FqZY1H!+s=mcL>w>nG>DkM;YwmUkUvS zyMLUqtY2HVh4tO0?SIL*|1%n&`~hu0_<4C(JmA7}uhQ~G-l>dxS^j#){fs}sc#!d3jE5PYiF8!uv0v-^6k}O$bJ2gY{g<@; zKD`>tdYB6s%lekf6h?ddcJ2PNY%lo7jAgya=^xVaWW7jQVZ_H*H2)g57koe4%leL= zu)W|vGnVxlhkRJem-QB(P#FEUcWU|b|BLKL@Lew4_7T>P-9OG))=Rwo8f`D@AD(4g z`YOlQN40!epHOt+r(F0floLu1aepUcS)cHP!j`lCVB57?zN|mk{NLsH?CZ+$*A*@~ z{QtaO+spccCtdjSHu-+P<3FR{GtFO=hRQBM$G?3eZvE;)Gqmo&Bqw7$Pl82&N73H5;TpYerX zF2}D$IXCT#3PV43f6^Un{|znw4=(%#luN~D`vS_HiGQFl$4Byjr^1K1&_M$2k$MnUv*zOzFlF&=L1?^{_EO);6aU}hzF7{ z_#}kG#0TA9j<+g|{KWiq(3A8XVth3GQTQP(|8tCGeZa|ZNA~u&wf$Mq$(kk7#+;x3ql0|HfG6yPw8b=Bt02vGpCzKL~o0etnEDU@Y^&zrP5bvNTyor7(3|{|`PvsMY&r9>|Hp-2^Qe|*eP8=`iNYnv z{ZH6F%J%aS4)R~{yIlB33YQ%FHzFM5UglpHT=?rQT>Cw(zqtQ*#=Y$SWsLh7f10t( zkDh`16n>fS{C39HV>*1FXKXWmUST}H86PyL^%cB8VaQ|qvl;g??q=N2_wg?gqxa z?0$f8KjR_BgN&`8X?eqpk7F$J!~To0%=fZ?&i+5A_4_PinUB@%9Wj@AAA^!`fcPi@O9LsO@iNEaSO@jAeZG)ISm*5yj)54=IfJW*mJ%%a`%hrxYF; zFTMFsnlIy}>yQsgp5V}5G+*$a1oL<&W&H4E#(lPq&)%0=K9BG1R2cG))An2b zkL5Ey1o={hkMT{6Wqd8PQ`^gU**6)>_*WD1Eyah7XMIayw5Jwo|IR_aRq`1>%UH&r zE}5b2WjyInjAeZ00>&~v)6H1MXG)A^eCEFx%lOQ#jAeZ0Ym8-l<~xjKeC8L7WqjrZ z#xg!Ld$tabjL#g-SjJ~gWGv$|r!toDnYS{Q@tID>GCs4Bv5e1rfU%6v+{jqQXZjh- z_{;;0Wqf8kV;P@$j0>P8GhbmW<1-I4mhqXNF_!U}Va75(Giz@h9vPoGoUx40%x5g)GcAl|e5Ql3 zjL&p2mhqWO7|ZxfFJl>>xrMQe&)mgW#%I36SjK0D7|Zy~pBc;e%$zwoJTgA>I>s_S z6JjjmGfNrE_{{l?Wqc;hSjJ~cjAeZ0BaCHyW*cJ}pSg#zjL*<>i0T6wpLv?GjL*Ep zSjK1e-$%Qb@fn-3jL+0FmhqWojAeZ0LdG&alLJ0-f7JJ#y8e4V9W^I4`Tx~D=xn0g!_GcRs`)%6&n-A9RWxuf-1b;*4vV|53&z#?LXf*!>c; zd&vJ5mUlhl0k;1u;n_%!vvqzr5bYSkeNm0iXKby~_-4k@w`%-6<9@b34ecD_*D}Az zxP|c}jQf~>6y{|q|Ji;s<0#Af5#gFzH0X4EKdUh2H6Ebx^T0KhwYPGB)2t)P@oQZ8 zc#ZcG_sd=QP8UA>wMw4jzQKi8x$u`=_y;chq6;7KIwgOm=<|LT{(=ktNMqDk`Zwd> z6yL#l7yhIRf7gZo>B4nroFP6PdFQzB{VqITw?iHGA9LXucDcOyF8mG`F1hgiE?lGA zsg8g1UAV)AFLvQR7k<=*Uv%LkjxN{#QWw6*g@5kC2fm@4pL5|4xbQt1&ye)}rwhOJ z7$wiK-{iu5F8qiK|G|Y1K32&?lIvfC3tynI7-Zy70XkJNo{w#&ab6C(cvy9K7CzKkUN&F8qHkyzKaLc^`7& z|8?Ovo>1;S>%zCX@Go5W$P>%?7r5|$y6^)o{5Ka~Fuz>hX)YXf;Vu_`mkWQ@g@5S6 zPiyR?&y16l{|-J@W2gL|>B2>q`>h%~>3O>g|4iYMWB;@Z|IX!p_JZ>GINXJgcj41q zxZQ=mG$7^xC4#&UYI1f@GVo3u7Orb>%)l`d$1EJPaqNX-Zya-Q(DyC& z#jzib{c#+K;~*ThIOgIw7{?(v4#n{*9Eag}HIBn^yavZfI2PgQj$>i}MjXfCn1|zd93dRPhut4=Jdfkwf!~hf9XMh*R^y1{2;+$0sKZf@qX9=F zjwT$7a5UpM8ONJ&oPy)cI8McJ8jcnmi*cNe;|v^c!LbZS8;-Z)ScRhn7Xu?7czE#HK058!wZ$G31igyUfx^jRzVtP?)3WYIT9@KGfTpH#BGk7E$WV>o_* zku3tvJrau^h)r9Qc*0IWBA=pQ&@O@BHNi<5YOcn zF3Dz!$xIPSCpRS1*<3Qeup^sIC%W+2T6VWIxi;RDE-u)VD2mO(oTQ~UIEESvfVqGj2P8Zq|E8An?Fcith ziurh|h&!#VxYry{r?Uu1HcvNNTUU|0x;61aDiLGP+d5($p;&8cdvk2naK;aEu5-&(SA>zf8ELMY<~09`4@|=?a3r4d&Sc+M0Zl9vrf(WWTrFi zpP-|sUsG)A0+7lUrp~iijPh`rA}N+g$203Ko{wfOiJf$8Ie|;47 zu>N>x*eK4e{xwZF(vvah73!mKU1xG_Dw8}rr)tbHUz+vJ_GGbw7xh#Rw^G%kDznB7 zNmQMA#9qi<6(Ra?&s)odJk{LF_69^*6C!UaYpodS-ehv>@|=#Tsq?S6IhW+e%hY+A zLNTZ3mr=SJbwp1_0mCzQ)$;a5u_^K`;_+?LY7VLmshPp0Z1SSesiP*}rzs0lQ)d!Q zlI-TzC{^lV9eJ?~+J#gxM>kAmEt5%ZtWZ~n^cTmM1^3x`$}q+Qqh8nLOYrnv6Hlyf z^E`!GQGTNBk=R){&e-78>8>Uv>hT7@dc46?kGC(4q19==Je*TZrJYtZJ<1lUJLQTk z=u$B>Ce58}>j_jiqT^M+l8ij5yrHV{=|uI*lr>Cx5Mim}<_cM+PCim!$fh@-c_2^W z35Ct~ZAM~oX}0`%KM6iH=s>k*db;V^F}cC2ml#}^D&SEysZq!Ud}X|Qa>FDQ3EmK= zB0SM-ep3Bu)=AWHe#fMShO=E8`UvuCqm{MdcQ|Sz4uYEL^s;T=6^#Xoy{bJdy<+OvQ*BbnQ!mTZMX*f0@3yus&7F<7oRY?V7y;v4My=skyr`SV{>i+my)}k^ zLp67m)|AM0=g?bAby|B}%uJq069;}x9DP6u__Y=lE&JX!O6F>9-Ov$3i_`RW5z9&^ z*A`>>Y!R)5U5YUI&CJiI)^&|dfVX)W?o1VO>G)>VZr3kqs!j>lEnb5h6HgRdH=x(K zjXGx=R9|&CVs=@F>s#~rY+gB9oL^T^IjVs>qT3;$m|VBH4V_4ovl>O_(quZhj)Dyf z>Lx*N3GAECh!=`y^%RqvT3d4~sLG&TMY92ZMz$x@sd~oCo8cl?sbMz27j=qHo}gD9 zB2`KjIV!6j>lJIlP&*0*&%$xWhUoGQtI)D`y)RT!S7foK9@Uz%86B%6cDa5Dsw(nT zE>Y<>qOV7K)d5$5bY4xymMt3FllcuPv_mNOOiIRZUJu8U#$NTtl*;}u8THu=hgu~( zs*%xC&#T15($6ceJOw>DA>8O_yb6O58^obr+X9`iR$rGR334=$mfx8xzg2Uc8@7(kv!#ZJMlwj!&b z$b|BI1)1d;U!|xt6wc1Y@#3{Cjse|dTY5#Ru60E^g!VZN-C>aVqCD(eE)6i=)#nQ&W1udnas7O%k`|(n$jFo&#J5MNou@y zw{hduX`@uFk@p!+4d(zF)DzIjQw>hLN)<}OWa!1O=Q1!{O%Zd=ebMhYPCMG{BQgiU zo3cEB?JAxX1|5vy^RlcTYENKpQ0Iy)hDcoRR5ZTW9)mx|B}LWStf^kJ zy3>Z~XNyPL-c?fy7j6`Ge^x=i1KyoFe}99@o07wRJ~wR8IR@pavBv; z{qo#TtILQdH#iS@ZSTq#{)K!DIk2@UuQM7tS9YO@t2eu>hAxZ4uwTUkox;`iXi>2s z5kBPtw_OoHoj~|e%{wytv3&{MjMT?ss}{Gl#o96nv~mi`#hDCs{$=x2F)wdFqpZi# znTn+1dG`trI$%3TMmGGOps&dAU}{CKr_hCwfyDY)A)VbA%f*XbZAcnQzYVT_?cF)Q zsi{Ab-@F;DLV2maxcHYAZ()(A2%>ng?joOdWmMFd%6JQYb7zm9p}th*a^*wjrfDUTcV zcD>tFHK-vA8{@fHwx<|Nr1FWLG$zmMMAp;f-6@YMhz77Q*Nd8@yI=NjnmEgMmo!?` z9p4ly(7a`H?&5A$BqLlTDa-6O@gBxdYh1UCk}(>-!yGD|0=rKTPsdfBnC^)=2XHFx^d#rLPo4oL4X7t=QZ8 zsm_&C->cYlwT-&F%@=R47v(V$9;KhA+~r6oO=C}nyJ<#xaGahOn(<QTO_oom|0*R&TMU z=m|w8>H@r>mrY{BvR}&1?)7l3zKeVl9mwLeR)yyZo8yBGYNk_DH&z_R*HMNl>rAdV zHmO+rvg{RCPphUmFX{IU>U_)5%N9DzF{ur6_X;SN)XP1-)vnRy7}hao2-0N4T)Y$Q zrcQdRgI|>dQ@k}}IGGk-Rzz%jHHFH zQ#J?3i4wC#>B?c@aPlHdyDY|NJz#4pHHy=^WOl7tp9EIA${QWt!P$xrS^vRZZ?&mM z42?lCr%o*E`WaIv?;HaBpp1A6nIWn^Qvv7(wMN z>Hq}?`wr%f5|zBcybM(k9!yKVlJE(&<-I~Fhm5r5&9-wBPuOnk)XQY6ZHqI_r!_7T z>s4!wdvVpvqMjTm_Tk1%vbZsuUq7;b(RdLIFt0iFnP0dUt?fyt)%w=Tn$~xz`LC+k z=_jK;N9#!|^TVNBp7w4krjiA-aXN-pr0;aRscA%dyq?ZB)_o;aDTwqpg4f@?Z@JP4rW z=#i;nXW|Vxw0y-`nJ_5>k6i%fmOl(X>4T$rBOglt)SGI#P-%GD*h`px&jQ|^t8Mt zJpg5O&$wSIMp1J*+F(Jc6Hr5}f;yAb8XMKOz?x(ge3^K=tb*WR8fT*k5443gnn!^& z(?;_kkha>W9!#XcRzYxit4+OwjiZTGL3nvP%Wu@H()wRsi0ob?qjrLcR2Y*|Bch|O zz!;ZrW1ogyk7?MnYQY?LcF)x=->{{^I&3vj!kk5~!tXSbMjf}>Rao5*RxMhdODq~O zt+#VZZYqwx{m{q;Mn>0dIN}bNtO6H*l;i5#-o85tRcduN=GA^B)RAq@avAs2*5mn@ zo7~QP6WuF3jhZxcV)>@beAsQ~9G6Y|E_7l0|Mfg=dV-xt?ire6PT6=nWixY0&@?7) zW4usEt)nf=Unv^Z(?S-kmNp}345i*XKt=PTrmWn1y&rS_2(07>pi5cVpJ2fWK%F3q zP5|muC_H1xt)A|tDb1`N-={CHPF$5Bv+BgP2{NZnT$>4J)C!IEsm!evRG79b8P+;{3dcN#r+!eQ^Ni04+FS9o2W*Hwe})*|n%X3wp9ulRbe zs`X7CVuM%v2Cu6|pNQ~^Z}JAH$xCeVhOx;jYmqlVi@dTHc_XLU>na@bMp!uPRU;hs zhCCeh;YPdx4M%+B)%oaB=i^7cH@}4Ief;oAzpzgNh8uizY4k=_xXGLNVV~p)H~Hwi z$VWfFxNr9Q8wq*C8}UhxNZ5xP@!>|i@f`6faFIH1K8yI2oJhToJfBh#Y4m2&h)+?8 zH2V14q1`r>O$Uhs|$Jcs|$JKzRstrs|$PMsxIs!&!-&K z`J`oCq>(z}I@&!|w!W<&2Ks|zyZ(NR>eTCK*Q9aulzKXmR3B-XRG$~yimOGu9T#Sx z#-pG26>4G{dgbYk(TT*Nr|~>76+Pl6tYL)~(uCBkAd_`H*FSfAzksCj$GPLl^t`jo z*h&ifG@hL3&f7-pu_^(S6qXdQejMrm^qWBZc}w2JV$ds(^WFsF&@0o>aU8Mel_%w6 z{57_xdN5QRM@ICBn|LgGL>d~7BN9F0CLD(q>Mldgu}5SDnG=r93UUoy#~!5>WNKY^ zhYu^$Vj=x5T|a@Z|Bn6hxFh~f+IJ`AQ`Mdas52+kWAp$07i&k71*79MLaY}0mw%Ug z!rv0s^C|Xx>U7s1O-E1FEgCCK zzNtEN`oDJKd_Hg_sI--+`sSb~t5giCUylRYV^b2%UcV<2(Vo|SnhD_fmIr3p()~)4 zuSWY!&VelzR74`Du#PQ3j5X&xsm15ZZP?!^vN{(gHxAe4_dty|aB3{j>zZ{>d zeweruHlT7hfe&YS^T+h-_^Nka-F$L69NE@beR9d=*z**xSi|@g5O2j@YA>=#$3v;E1yR9m%32cjP1nSpX{Osjkg-CSd01FRhbdzhEyL)vb^y*Ygw(zU{O-~1AG_x|#mPyX4h z15`1aPJgJz(~8{H2LYSPHW=TXKL|)o+>s9)axLvwG^_l?oO?uax2^*)h+%v!am?l8ataad_jqKBDfou4Zy}p5 zZAK{})1{Kn+q>%5n4Z)MBJ-%sZ0=t&{=6JO<_S)lz%oy8Dg}^vJj!@0it4}6O=AK2 zDZP7r;0ABh`g7Zp8UWwiJk}$*Wu(S0}# z;Ij7$D(!w_AQgrugD5{P#nto9t@xxhG=eEj{!NX@Zr&Q63jG5tSrbfzU6n7lc-PvNc3 z@8(#$`k$PvGg+^N)rGCBSWMcRV-R6RdS;b9zo=-Qr@lJC#_H?a36A`R?wrIr*Nk{_+?Zb?K4J@6waO)RLdZo=iHM zSZ{hUvP{U&(pe}J4ryvzcP?$xM;3iozkb}EEz~ksjOs+&!?Ck)oUs9qmR0QyG5t9q zrGIe#1omMvZ$llkoQwq(fvH@+6H8!X1N{t{PfJ84Yh&`Fo_M-|*Zi2tkc5A$$D4y& z%WLqlB#bu}$1ST;{Eb_nH|AWTTnn~kxwESQRLRxkJWSEfz)WOwiSc-9DgP#nnu2AD z9!pBQMV5c2Qolr`3u@O%*EV^WH$=_&aNU}CA(e<_3)r4A-rbhyz@rr*jV@0Z8^`Gv zx~BGIenTpetk1-|rB2mFT-)>a%PUzowC3~Kd{cL_P>8Sd<7)@?iEO9X>HyGG;9O5J zMjJfF6KL;+^Qa=!|81itwwF zV2ZJ3j;l32Yhx*BqjuX9=@fI2-oA+bDS{WJvIX@ul~&v~{dA>AIGnsFmdfCRD4TQ1 z)>LW~r*+A!e3CHOX0Gc!q59nrytNlal(+h;ydT2&-xs}pk9jG$dW|rP;IwK}Ueish zD&~4{T~vabi{+ngflS*O(;Ascn4S|%(ENK@WcfYUT&Nlgxpb-+Lv6G+ndj}n%QDRv z=SEDX@?}rwG9~?Li?K93)p7<;$4BKw4&_zdw5sCQ0W_ZGg*V~UOVA|rkyP?2xLy*k z4-@}%d!^on^7dzdF+U}JC6oFB9Zb8|o0vLdPN?PU6K-Df?GnlyAK^GTUc5%`iYZgJ6o2m%qw)|QS8hdH6Gp1wQ|&s zt*~C&8oaj_ zd2cm)Zq<9m*Lzj1Z}JcuyxKQ-T{Zedgjal%H$Y8ZVv{$FOI z;gC1N!eOr(;jlO4;jj-k;tgmx;v=ulN0&MuKkB{tC0y_0hfn&2eG)L-;G;{UH>$!- z-oy|4Bu}`>N9RR8`uW9uv)A89$Q#~>PkKbcKHP{8H{y-wh);ow)Oqt+#HZv$>V4$- zl!{2BH$KNKOaQMV?q}j(^vp0PsKJi=^^6FO?@}^r|$g5vn$Q$={K2=>^ z*c(@MVIO%u<*3dlE$bqUG?>wGuBXb@xAnt7e=WKG>|8OG%`Azh(`(|1^=%%C9tr9= zSChswTg~0yp$68}9t=HCahtF7Se>& ztRPeCy3&(V!=Wy$!c8ZaCDZ89L8oSx5aEYQg2zJss39kzg)|u zLE{kRjn{F@st}ju^2V0CIY0sD?g>cs#JrhP#{ZJ-O@%<@R!9*?c6S$gf0KzGY>wWQ zjAJ^S6{BVHR_yF{z0K&-WCAl8lbK>&WaMUB#<&?fC$lky-ILJPM6*pjbyPbu9O~%8 zzEYjE188$0olNG`UZ82iMPy}9_nKrr8qXJ!`EXs1%yTj{$0pf1+T#gxp1f~>Vb2?& z-o{ERQ|48J@+n{+>dN+I#e8hNkCXPk+|rput1TPaH{*q%yH$0=Q)dosIacvKq{_gX zzPmjr_dgO^iG2d1S?oZCw-Q4MLxjJZayfM?lf`f|z3rYGPxmC3WYg(nf|_1+@y=0` zGvb$=5l?cK&2g&e86wZvQ?;VAa@BR66keReemV)&TnvX&nN%?qPt(VxR$-Ibk!Jk!VOS0YF=oAVd zO5N#K?%5*vbxwiyrW>W?Rhf9B`_v4d&d6qW(E$*cSIbnbJ|&@Q%XH#7;ms}OG0l}5 z`s;L_X-^i7ZJYfvf?rWp+m|HsW`V8iOs>Uu1~@0u4u_-q;gt|+*ogi_F9<^(jRVenb20#w4^V3)rvEK8bDkf~KBYo;JEfkpARKU;} z!SA1punG`-0$OT?*9gYjYWqQshLXeYNRtLQ;mSomw5*ySJs`THo!08Wm^r!rV6T-& zu&nSFg8U?0Xs@0wPxOeKpIwd~!SLP`4i0kEPk)plIOrQW_CK=ksgA+9+o-wJDqSTq zT=Sx;!!|z=(f=^qdqhraaUY{?KMZ5D=Rw0Pt}2$scc3Z^(_J7l>QY0#&O3^n)Zbd7 zW1|+4GbN@az1~ua|K2FkGaGL8wb{o99)HT40Qk9tDF|LeZrP67zruJ$#{>n?cFKm} ze4N0Sxu)O~(?9?u38Z3)Mmsm-Fd~%1y#u+3zzlYtFp1Uw*nCM60pn&>AGfp@W#Lo8 z*|H$LSQ#%)1}+!Y&6}%WY}L8kk!>VZo7x)dC-7ZkG@O-@T79o|uvKf{dmb{RmsxoE ziSRnpm9Z^17b_^KbLF$#aGOK>CPA!{>*`>t>BKt5gv)^P{8)U@@>9O64`54{@nT@?eI<&4D$# z4;5SNvZgxNe;sTu@EC;pObcI_bmD@6Kb(}JM0ayK*o%97wD$lYHIXb zxvdcVT6++m@%bD^=?Q1{@HvBSqzvK^T)X2Cn3T9xItZC$8|r`YM@l;&4jHU#2wyk` zxp4`ZH>4pM-o*#=2 +#include + + +using Poco::Util::Application; +using Poco::Util::ServerApplication; +using Poco::Util::Option; +using Poco::Util::OptionSet; +using Poco::Util::OptionCallback; +using Poco::Util::HelpFormatter; +using Poco::DNSSD::DNSSDResponder; +using Poco::DNSSD::Service; +using Poco::DNSSD::BrowseHandle; +using Poco::DNSSD::ServiceHandle; + + +class DNSSDBrowserApp: public ServerApplication +{ +public: + DNSSDBrowserApp(): + _helpRequested(false), + _autoResolve(false), + _enumerateDomains(false), + _port(0), + _interface(0) + { + Poco::DNSSD::initializeDNSSD(); + } + + ~DNSSDBrowserApp() + { + Poco::DNSSD::uninitializeDNSSD(); + } + +protected: + void initialize(Application& self) + { + loadConfiguration(); // load default configuration files, if present + ServerApplication::initialize(self); + } + + void uninitialize() + { + ServerApplication::uninitialize(); + } + + void defineOptions(OptionSet& options) + { + ServerApplication::defineOptions(options); + + options.addOption( + Option("help", "h", "Display help information on command line arguments.") + .required(false) + .repeatable(false) + .callback(OptionCallback(this, &DNSSDBrowserApp::handleHelp))); + + options.addOption( + Option("browse", "b", + "Browse for services with the type given in the argument (e.g., _ftp._tcp). " + "Can be specified multiple times to browse for different types of services.") + .required(false) + .repeatable(true) + .argument("") + .callback(OptionCallback(this, &DNSSDBrowserApp::handleBrowse))); + + options.addOption( + Option("resolve", "r", + "Automatically resolve all discovered services.") + .required(false) + .repeatable(false) + .callback(OptionCallback(this, &DNSSDBrowserApp::handleResolve))); + + options.addOption( + Option("domain", "d", + "Specify the domain to browse, or register a service in. " + "If not specified, the default domain will be used.") + .required(false) + .repeatable(false) + .argument("") + .callback(OptionCallback(this, &DNSSDBrowserApp::handleDomain))); + + options.addOption( + Option("enumerate-domains", "e", "Enumerate browse- and registration-domains.") + .required(false) + .repeatable(false) + .callback(OptionCallback(this, &DNSSDBrowserApp::handleEnumerate))); + + options.addOption( + Option("register", "R", + "Register a service with the given type (e.g., _ftp._tcp).") + .required(false) + .repeatable(false) + .argument("") + .callback(OptionCallback(this, &DNSSDBrowserApp::handleRegister))); + + options.addOption( + Option("name", "n", + "Specify the service name for the service to be registered. " + "If not specified, the name of the machine will be used.") + .required(false) + .repeatable(false) + .argument("") + .callback(OptionCallback(this, &DNSSDBrowserApp::handleName))); + + options.addOption( + Option("host", "H", + "Specify the host name for the service to be registered. " + "If not specified, the machine's host name will be used.") + .required(false) + .repeatable(false) + .argument("") + .callback(OptionCallback(this, &DNSSDBrowserApp::handleHost))); + + options.addOption( + Option("port", "p", + "Specify the port number for the service to be registered. " + "If not specified, the service will be registered with port 0.") + .required(false) + .repeatable(false) + .argument("") + .validator(new Poco::Util::IntValidator(0, 65535)) + .callback(OptionCallback(this, &DNSSDBrowserApp::handlePort))); + + options.addOption( + Option("txt", "t", + "Specify a key-value pair for a registered service's TXT record. " + "Can be given multiple times.") + .required(false) + .repeatable(true) + .argument("<[=value]>") + .callback(OptionCallback(this, &DNSSDBrowserApp::handleTXT))); + + options.addOption( + Option("interface", "i", + "Specify a specific network interface for browsing and registration, by its " + "interface index. Specify 0 to browse/register on all interfaces (default).") + .required(false) + .repeatable(false) + .argument("") + .validator(new Poco::Util::IntValidator(0, 16)) + .callback(OptionCallback(this, &DNSSDBrowserApp::handleInterface))); + } + + void handleHelp(const std::string& name, const std::string& value) + { + _helpRequested = true; + stopOptionsProcessing(); + } + + void handleBrowse(const std::string& name, const std::string& value) + { + _browseTypes.insert(value); + } + + void handleResolve(const std::string& name, const std::string& value) + { + _autoResolve = true; + } + + void handleDomain(const std::string& name, const std::string& value) + { + _domain = value; + } + + void handleEnumerate(const std::string& name, const std::string& value) + { + _enumerateDomains = true; + } + + void handleRegister(const std::string& name, const std::string& value) + { + _registeredService = value; + } + + void handleName(const std::string& name, const std::string& value) + { + _name = value; + } + + void handleHost(const std::string& name, const std::string& value) + { + _host = value; + } + + void handlePort(const std::string& name, const std::string& value) + { + _port = static_cast(Poco::NumberParser::parseUnsigned(value)); + } + + void handleTXT(const std::string& name, const std::string& value) + { + std::string::size_type pos = value.find('='); + if (pos != std::string::npos) + { + _properties.add(value.substr(0, pos), value.substr(pos + 1)); + } + else + { + _properties.add(value, ""); + } + } + + void handleInterface(const std::string& name, const std::string& value) + { + _interface = Poco::NumberParser::parse(value); + } + + void displayHelp() + { + HelpFormatter helpFormatter(options()); + helpFormatter.setCommand(commandName()); + helpFormatter.setUsage("OPTIONS"); + helpFormatter.setHeader( + "\n" + "A sample application demonstrating the use of the DNSSDBrowser and DNSSDResponder classes. " + "The following command line options are supported:"); + helpFormatter.setFooter( + "For more information, please see the Applied Informatics C++ Libraries " + "and Tools documentation at ." + ); + helpFormatter.setIndent(8); + helpFormatter.format(std::cout); + } + + void onError(const void* sender, const Poco::DNSSD::DNSSDBrowser::ErrorEventArgs& args) + { + std::cout << args.error.message() << " (" << args.error.code() << ")" << std::endl; + } + + void onServiceFound(const void* sender, const Poco::DNSSD::DNSSDBrowser::ServiceEventArgs& args) + { + std::cout << "Service Found: \n" + << " Name: " << args.service.name() << "\n" + << " Domain: " << args.service.domain() << "\n" + << " Type: " << args.service.type() << "\n" + << " Interface: " << args.service.networkInterface() << "\n" << std::endl; + + if (_autoResolve) + { + reinterpret_cast(const_cast(sender))->resolve(args.service); + } + } + + void onServiceRemoved(const void* sender, const Poco::DNSSD::DNSSDBrowser::ServiceEventArgs& args) + { + std::cout << "Service Removed: \n" + << " Name: " << args.service.name() << "\n" + << " Domain: " << args.service.domain() << "\n" + << " Type: " << args.service.type() << "\n" + << " Interface: " << args.service.networkInterface() << "\n" << std::endl; + } + + void onServiceResolved(const void* sender, const Poco::DNSSD::DNSSDBrowser::ServiceEventArgs& args) + { + std::cout << "Service Resolved: \n" + << " Name: " << args.service.name() << "\n" + << " Full Name: " << args.service.fullName() << "\n" + << " Domain: " << args.service.domain() << "\n" + << " Type: " << args.service.type() << "\n" + << " Interface: " << args.service.networkInterface() << "\n" + << " Host: " << args.service.host() << "\n" + << " Port: " << args.service.port() << "\n" + << " Properties: \n"; + + for (Poco::DNSSD::Service::Properties::ConstIterator it = args.service.properties().begin(); it != args.service.properties().end(); ++it) + { + std::cout << " " << it->first << ": " << it->second << "\n"; + } + std::cout << std::endl; + + reinterpret_cast(const_cast(sender))->resolveHost(args.service.host()); + } + + void onHostResolved(const void* sender, const Poco::DNSSD::DNSSDBrowser::ResolveHostEventArgs& args) + { + std::cout << "Host Resolved: \n" + << " Host: " << args.host << "\n" + << " Interface: " << args.networkInterface << "\n" + << " Address: " << args.address.toString() << "\n" + << " TTL: " << args.ttl << "\n" << std::endl; + } + + void onBrowseDomainFound(const void* sender, const Poco::DNSSD::DNSSDBrowser::DomainEventArgs& args) + { + std::cout << "Browse Domain Found:\n" + << " Name: " << args.domain.name() << "\n" + << " Interface: " << args.domain.networkInterface() << "\n" + << " Default: " << args.domain.isDefault() << "\n" << std::endl; + } + + void onBrowseDomainRemoved(const void* sender, const Poco::DNSSD::DNSSDBrowser::DomainEventArgs& args) + { + std::cout << "Browse Domain Removed:\n" + << " Name: " << args.domain.name() << "\n" + << " Interface: " << args.domain.networkInterface() << "\n" + << " Default: " << args.domain.isDefault() << "\n" << std::endl; + } + + void onRegistrationDomainFound(const void* sender, const Poco::DNSSD::DNSSDBrowser::DomainEventArgs& args) + { + std::cout << "Registration Domain Found:\n" + << " Name: " << args.domain.name() << "\n" + << " Interface: " << args.domain.networkInterface() << "\n" + << " Default: " << args.domain.isDefault() << "\n" << std::endl; + } + + void onRegistrationDomainRemoved(const void* sender, const Poco::DNSSD::DNSSDBrowser::DomainEventArgs& args) + { + std::cout << "Registration Domain Removed:\n" + << " Name: " << args.domain.name() << "\n" + << " Interface: " << args.domain.networkInterface() << "\n" + << " Default: " << args.domain.isDefault() << "\n" << std::endl; + } + + int main(const std::vector& args) + { + if (_helpRequested || (_browseTypes.empty() && _registeredService.empty() && !_enumerateDomains)) + { + displayHelp(); + } + else + { + DNSSDResponder dnssdResponder; + + dnssdResponder.browser().browseError += Poco::delegate(this, &DNSSDBrowserApp::onError); + dnssdResponder.browser().resolveError += Poco::delegate(this, &DNSSDBrowserApp::onError); + dnssdResponder.browser().serviceFound += Poco::delegate(this, &DNSSDBrowserApp::onServiceFound); + dnssdResponder.browser().serviceRemoved += Poco::delegate(this, &DNSSDBrowserApp::onServiceRemoved); + dnssdResponder.browser().serviceResolved += Poco::delegate(this, &DNSSDBrowserApp::onServiceResolved); + dnssdResponder.browser().browseDomainError += Poco::delegate(this, &DNSSDBrowserApp::onError); + dnssdResponder.browser().browseDomainFound += Poco::delegate(this, &DNSSDBrowserApp::onBrowseDomainFound); + dnssdResponder.browser().browseDomainRemoved += Poco::delegate(this, &DNSSDBrowserApp::onBrowseDomainRemoved); + dnssdResponder.browser().registrationDomainError += Poco::delegate(this, &DNSSDBrowserApp::onError); + dnssdResponder.browser().registrationDomainFound += Poco::delegate(this, &DNSSDBrowserApp::onRegistrationDomainFound); + dnssdResponder.browser().registrationDomainRemoved += Poco::delegate(this, &DNSSDBrowserApp::onRegistrationDomainRemoved); + dnssdResponder.browser().hostResolveError += Poco::delegate(this, &DNSSDBrowserApp::onError); + dnssdResponder.browser().hostResolved += Poco::delegate(this, &DNSSDBrowserApp::onHostResolved); + + std::vector browseHandles; + for (std::set::const_iterator it = _browseTypes.begin(); it != _browseTypes.end(); ++it) + { + browseHandles.push_back(dnssdResponder.browser().browse(*it, _domain, 0, _interface)); + } + + if (_enumerateDomains) + { + browseHandles.push_back(dnssdResponder.browser().enumerateBrowseDomains(_interface)); + browseHandles.push_back(dnssdResponder.browser().enumerateRegistrationDomains(_interface)); + } + + ServiceHandle serviceHandle; + if (!_registeredService.empty()) + { + Service service(_interface, _name, "", _registeredService, _domain, _host, _port, _properties); + serviceHandle = dnssdResponder.registerService(service); + } + + dnssdResponder.start(); + waitForTerminationRequest(); + + if (serviceHandle.isValid()) + { + dnssdResponder.unregisterService(serviceHandle); + Poco::Thread::sleep(2500); // allow time for delivery of remove event + } + + for (std::vector::iterator it = browseHandles.begin(); it != browseHandles.end(); ++it) + { + dnssdResponder.browser().cancel(*it); + } + + dnssdResponder.stop(); + + dnssdResponder.browser().browseError -= Poco::delegate(this, &DNSSDBrowserApp::onError); + dnssdResponder.browser().resolveError -= Poco::delegate(this, &DNSSDBrowserApp::onError); + dnssdResponder.browser().serviceFound -= Poco::delegate(this, &DNSSDBrowserApp::onServiceFound); + dnssdResponder.browser().serviceRemoved -= Poco::delegate(this, &DNSSDBrowserApp::onServiceRemoved); + dnssdResponder.browser().serviceResolved -= Poco::delegate(this, &DNSSDBrowserApp::onServiceResolved); + dnssdResponder.browser().browseDomainError -= Poco::delegate(this, &DNSSDBrowserApp::onError); + dnssdResponder.browser().browseDomainFound -= Poco::delegate(this, &DNSSDBrowserApp::onBrowseDomainFound); + dnssdResponder.browser().browseDomainRemoved -= Poco::delegate(this, &DNSSDBrowserApp::onBrowseDomainRemoved); + dnssdResponder.browser().registrationDomainError -= Poco::delegate(this, &DNSSDBrowserApp::onError); + dnssdResponder.browser().registrationDomainFound -= Poco::delegate(this, &DNSSDBrowserApp::onRegistrationDomainFound); + dnssdResponder.browser().registrationDomainRemoved -= Poco::delegate(this, &DNSSDBrowserApp::onRegistrationDomainRemoved); + dnssdResponder.browser().hostResolveError -= Poco::delegate(this, &DNSSDBrowserApp::onError); + dnssdResponder.browser().hostResolved -= Poco::delegate(this, &DNSSDBrowserApp::onHostResolved); + } + + return Application::EXIT_OK; + } + +private: + bool _helpRequested; + bool _autoResolve; + bool _enumerateDomains; + std::set _browseTypes; + std::string _domain; + std::string _registeredService; + std::string _name; + std::string _host; + Service::Properties _properties; + Poco::UInt16 _port; + Poco::Int32 _interface; +}; + + +POCO_SERVER_MAIN(DNSSDBrowserApp) diff --git a/DNSSD/samples/HTTPTimeServer/CMakeLists.txt b/DNSSD/samples/HTTPTimeServer/CMakeLists.txt new file mode 100644 index 000000000..b9bd48e27 --- /dev/null +++ b/DNSSD/samples/HTTPTimeServer/CMakeLists.txt @@ -0,0 +1,7 @@ +set(SAMPLE_NAME "DNSSDHTTPTimeServer") + +set(LOCAL_SRCS "") +aux_source_directory(src LOCAL_SRCS) + +add_executable( ${SAMPLE_NAME} ${LOCAL_SRCS} ) +target_link_libraries( ${SAMPLE_NAME} Foundation Net Util XML DNSSD ${DNSSD_IMPLEMENTATION_LIBRARY} ) diff --git a/DNSSD/samples/HTTPTimeServer/HTTPTimeServer.progen b/DNSSD/samples/HTTPTimeServer/HTTPTimeServer.progen new file mode 100644 index 000000000..1375cd8e3 --- /dev/null +++ b/DNSSD/samples/HTTPTimeServer/HTTPTimeServer.progen @@ -0,0 +1,13 @@ +vc.project.guid = ${vc.project.guidFromName} +vc.project.name = ${vc.project.baseName} +vc.project.target = ${vc.project.name} +vc.project.type = executable +vc.project.pocobase = ..\\..\\.. +vc.project.platforms = Win32, x64, WinCE +vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md +vc.project.prototype = ${vc.project.name}_vs90.vcproj +vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\XML\\include;..\\..\\..\\Util\\include;..\\..\\..\\Net\\include;..\\..\\..\\DNSSD\\include;..\\..\\..\\DNSSD\\Bonjour\\include +vc.project.linker.dependencies = dnssd.lib +vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.x64 = ws2_32.lib iphlpapi.lib +vc.project.linker.dependencies.WinCE = ws2.lib iphlpapi.lib diff --git a/DNSSD/samples/HTTPTimeServer/HTTPTimeServer.properties b/DNSSD/samples/HTTPTimeServer/HTTPTimeServer.properties new file mode 100644 index 000000000..a86940311 --- /dev/null +++ b/DNSSD/samples/HTTPTimeServer/HTTPTimeServer.properties @@ -0,0 +1,13 @@ +# This is a sample configuration file for HTTPTimeServer + +logging.loggers.root.channel.class = ConsoleChannel +logging.loggers.app.name = Application +logging.loggers.app.channel = c1 +logging.formatters.f1.class = PatternFormatter +logging.formatters.f1.pattern = [%p] %t +logging.channels.c1.class = ConsoleChannel +logging.channels.c1.formatter = f1 +HTTPTimeServer.format = %W, %e %b %y %H:%M:%S %Z +HTTPTimeServer.port = 9980 +#HTTPTimeServer.maxQueued = 200 +#HTTPTimeServer.maxThreads = 64 diff --git a/DNSSD/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj b/DNSSD/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj new file mode 100644 index 000000000..f31548726 --- /dev/null +++ b/DNSSD/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj @@ -0,0 +1,649 @@ + + + + + debug_shared + Win32 + + + debug_shared + x64 + + + debug_static_md + Win32 + + + debug_static_md + x64 + + + debug_static_mt + Win32 + + + debug_static_mt + x64 + + + release_shared + Win32 + + + release_shared + x64 + + + release_static_md + Win32 + + + release_static_md + x64 + + + release_static_mt + Win32 + + + release_static_mt + x64 + + + + 17.0 + HTTPTimeServer + {18A0143A-444A-38E3-838C-1ACFBE4EE18C} + HTTPTimeServer + Win32Proj + + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + Application + MultiByte + v142 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>17.0.34511.75 + HTTPTimeServerd + HTTPTimeServerd + HTTPTimeServerd + HTTPTimeServer + HTTPTimeServer + HTTPTimeServer + HTTPTimeServerd + HTTPTimeServerd + HTTPTimeServerd + HTTPTimeServer + HTTPTimeServer + HTTPTimeServer + + + bin\ + obj\HTTPTimeServer\$(Configuration)\ + true + + + bin\ + obj\HTTPTimeServer\$(Configuration)\ + false + + + bin\static_mt\ + obj\HTTPTimeServer\$(Configuration)\ + true + + + bin\static_mt\ + obj\HTTPTimeServer\$(Configuration)\ + false + + + bin\static_md\ + obj\HTTPTimeServer\$(Configuration)\ + true + + + bin\static_md\ + obj\HTTPTimeServer\$(Configuration)\ + false + + + bin64\ + obj64\HTTPTimeServer\$(Configuration)\ + true + + + bin64\ + obj64\HTTPTimeServer\$(Configuration)\ + false + + + bin64\static_mt\ + obj64\HTTPTimeServer\$(Configuration)\ + true + + + bin64\static_mt\ + obj64\HTTPTimeServer\$(Configuration)\ + false + + + bin64\static_md\ + obj64\HTTPTimeServer\$(Configuration)\ + true + + + bin64\static_md\ + obj64\HTTPTimeServer\$(Configuration)\ + false + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\HTTPTimeServerd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\HTTPTimeServer.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\HTTPTimeServerd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\HTTPTimeServer.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\HTTPTimeServerd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\HTTPTimeServer.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\HTTPTimeServerd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\HTTPTimeServer.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\HTTPTimeServerd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\HTTPTimeServer.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\HTTPTimeServerd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\HTTPTimeServer.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + + + + true + stdcpp17 + stdc11 + + + + + diff --git a/DNSSD/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj.filters b/DNSSD/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj.filters new file mode 100644 index 000000000..a9e67427b --- /dev/null +++ b/DNSSD/samples/HTTPTimeServer/HTTPTimeServer_vs160.vcxproj.filters @@ -0,0 +1,21 @@ + + + + + {05ecd2d8-936d-4c90-9cf1-546f7a313acc} + + + {9f18ac45-b5e5-4f7f-af10-320feb933138} + + + + + Configuration Files + + + + + Source Files + + + \ No newline at end of file diff --git a/DNSSD/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj b/DNSSD/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj new file mode 100644 index 000000000..f4f7fc258 --- /dev/null +++ b/DNSSD/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj @@ -0,0 +1,958 @@ + + + + + debug_shared + ARM64 + + + debug_shared + Win32 + + + debug_shared + x64 + + + debug_static_md + ARM64 + + + debug_static_md + Win32 + + + debug_static_md + x64 + + + debug_static_mt + ARM64 + + + debug_static_mt + Win32 + + + debug_static_mt + x64 + + + release_shared + ARM64 + + + release_shared + Win32 + + + release_shared + x64 + + + release_static_md + ARM64 + + + release_static_md + Win32 + + + release_static_md + x64 + + + release_static_mt + ARM64 + + + release_static_mt + Win32 + + + release_static_mt + x64 + + + + 17.0 + HTTPTimeServer + {18A0143A-444A-38E3-838C-1ACFBE4EE18C} + HTTPTimeServer + Win32Proj + + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + Application + MultiByte + v143 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>17.0.34511.75 + HTTPTimeServerd + HTTPTimeServerd + HTTPTimeServerd + HTTPTimeServer + HTTPTimeServer + HTTPTimeServer + HTTPTimeServerd + HTTPTimeServerd + HTTPTimeServerd + HTTPTimeServer + HTTPTimeServer + HTTPTimeServer + HTTPTimeServerd + HTTPTimeServerd + HTTPTimeServerd + HTTPTimeServer + HTTPTimeServer + HTTPTimeServer + + + binA64\ + objA64\HTTPTimeServer\$(Configuration)\ + true + + + binA64\ + objA64\HTTPTimeServer\$(Configuration)\ + false + + + binA64\static_mt\ + objA64\HTTPTimeServer\$(Configuration)\ + true + + + binA64\static_mt\ + objA64\HTTPTimeServer\$(Configuration)\ + false + + + binA64\static_md\ + objA64\HTTPTimeServer\$(Configuration)\ + true + + + binA64\static_md\ + objA64\HTTPTimeServer\$(Configuration)\ + false + + + bin\ + obj\HTTPTimeServer\$(Configuration)\ + true + + + bin\ + obj\HTTPTimeServer\$(Configuration)\ + false + + + bin\static_mt\ + obj\HTTPTimeServer\$(Configuration)\ + true + + + bin\static_mt\ + obj\HTTPTimeServer\$(Configuration)\ + false + + + bin\static_md\ + obj\HTTPTimeServer\$(Configuration)\ + true + + + bin\static_md\ + obj\HTTPTimeServer\$(Configuration)\ + false + + + bin64\ + obj64\HTTPTimeServer\$(Configuration)\ + true + + + bin64\ + obj64\HTTPTimeServer\$(Configuration)\ + false + + + bin64\static_mt\ + obj64\HTTPTimeServer\$(Configuration)\ + true + + + bin64\static_mt\ + obj64\HTTPTimeServer\$(Configuration)\ + false + + + bin64\static_md\ + obj64\HTTPTimeServer\$(Configuration)\ + true + + + bin64\static_md\ + obj64\HTTPTimeServer\$(Configuration)\ + false + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\HTTPTimeServer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\HTTPTimeServerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_mt\HTTPTimeServer.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + binA64\static_md\HTTPTimeServerd.exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineARM64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + $(OutDir)$(TargetName).exe + ..\..\..\libA64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineARM64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\HTTPTimeServerd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\HTTPTimeServer.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\HTTPTimeServerd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_mt\HTTPTimeServer.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\HTTPTimeServerd.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX86 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin\static_md\HTTPTimeServer.exe + ..\..\..\lib;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX86 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\HTTPTimeServerd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\HTTPTimeServer.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\HTTPTimeServerd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreaded + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_mt\HTTPTimeServer.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + Disabled + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebugDLL + true + true + true + true + + Level3 + ProgramDatabase + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\HTTPTimeServerd.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + true + true + $(OutDir)$(TargetName).pdb + Console + MachineX64 + + + + + MaxSpeed + OnlyExplicitInline + true + Speed + true + .\include;..\..\..\Foundation\include;..\..\..\XML\include;..\..\..\Util\include;..\..\..\Net\include;..\..\..\DNSSD\include;..\..\..\DNSSD\Bonjour\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;WINVER=0x0500;POCO_STATIC;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + true + true + true + + Level3 + + Default + $(OutDir)$(TargetName).pdb + true + stdcpp17 + stdc11 + + + iphlpapi.lib;winmm.lib;dnssd.lib;ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies) + bin64\static_md\HTTPTimeServer.exe + ..\..\..\lib64;%(AdditionalLibraryDirectories) + false + Console + true + true + MachineX64 + + + + + + + + true + stdcpp17 + stdc11 + + + + + diff --git a/DNSSD/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj.filters b/DNSSD/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj.filters new file mode 100644 index 000000000..6556ec16f --- /dev/null +++ b/DNSSD/samples/HTTPTimeServer/HTTPTimeServer_vs170.vcxproj.filters @@ -0,0 +1,21 @@ + + + + + {441c16c9-88da-4016-a905-429b26f51567} + + + {00fba94b-d0c4-47a2-a9e8-cf363dd59707} + + + + + Configuration Files + + + + + Source Files + + + \ No newline at end of file diff --git a/DNSSD/samples/HTTPTimeServer/HTTPTimeServer_vs90.vcproj b/DNSSD/samples/HTTPTimeServer/HTTPTimeServer_vs90.vcproj new file mode 100644 index 000000000..0fbc2302c --- /dev/null +++ b/DNSSD/samples/HTTPTimeServer/HTTPTimeServer_vs90.vcproj @@ -0,0 +1,450 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DNSSD/samples/HTTPTimeServer/Makefile b/DNSSD/samples/HTTPTimeServer/Makefile new file mode 100644 index 000000000..d0d3323b4 --- /dev/null +++ b/DNSSD/samples/HTTPTimeServer/Makefile @@ -0,0 +1,23 @@ +# +# Makefile +# +# $Id: //poco/1.7/DNSSD/samples/HTTPTimeServer/Makefile#1 $ +# +# Makefile for HTTPTimeServer sample +# + +include $(POCO_BASE)/build/rules/global + +ifeq ($(OSNAME),Linux) +DNSSDLibrary = PocoDNSSDAvahi +else +DNSSDLibrary = PocoDNSSDBonjour +endif + +objects = HTTPTimeServer + +target = HTTPTimeServer +target_version = 1 +target_libs = $(DNSSDLibrary) PocoDNSSD PocoNet PocoUtil PocoXML PocoFoundation + +include $(POCO_BASE)/build/rules/exec diff --git a/DNSSD/samples/HTTPTimeServer/bin/Darwin/x86_64/HTTPTimeServer b/DNSSD/samples/HTTPTimeServer/bin/Darwin/x86_64/HTTPTimeServer new file mode 100755 index 0000000000000000000000000000000000000000..20da9f60fd1e6769d7ce73aca59e2cd0818296e4 GIT binary patch literal 37932 zcmeHw3w%`7wf7kUm?E0^to4CY3KkzgCNB~Nnvjgnlmr5aNUbnTCMU_@WM(=K2v&3u zu#7R5+S+R`Z7;p{!Dqeqa=pbzEEg~m7xqh}<<@%{T6l>Ggi}i4t(U_}=A}qZH!AS?THMQ9tSnr<#+s%{8oFr{5D3!c^Ck4| zgun%Dl{fTpGzJ;ppoZWgdb~hIJYGv>lRjTOk!+2tB)fih%o6fel5udEw4gMtP|BMq z6NEfpryh#xF{Ih$86`sA+b}p?L`%^kAxFQCK)|PW2lQydm+-gR<-J%gF`!*u|5ZYsE=v$?v7eG85Xg%sV!?2SOt;IMK3B+lMk+;g_GQ=A=Szmy z2E%Q>V7NU3M!USB`9j`gIp~PC%gB~b<8BLheZKnImfEbG8X-q3mT92*k~EDs>LRo4 zK3_QGi?8cyjf8yBL~KNPrZ}xelxLZUsC!JCQku`#5y|vIu71TeLO+^&bP+9w4AUgf zv^gdCd?Ej6`Yo>!@@7aOL}$yR_C^uR%jawJC;TRrt6!>4$U7=oh&FANDV4!8>qvul z(L#515MWj2&6}-=JD6||8(x6yZ@;@=hmBWR~i;z0E?O=-AhpuJR%*0Jo1 z>RFCJdDKSpn!PqYI~oZ@X1Zq0VIAuIG0dmg-Bp#o%5q9+LT>${=H~hZk?`tBGB(RK z3wj1yg#?mIb~ypL7J(-wZ;_suRbFxO^t(0@3|R%9n10I}8?55E|NruSxjK>zW8MWL zVVhW%Tb0!>j!Dm8x;Zjq4L#VrE}qc4W-YMWt0b$O=I91xEf=`_a@A*-AeYA<=8F^f zrIM!kGj@$xV9Wwz78tX@m<7fxFlK=<3yfJ{%mQN;7_-2b1;#A!Kf?modeU#yURS%U z*|XuT7ooB@eWW%$?CITIJUl#Xd>f}so}P<7j#DSk#y!QJ^tUMaY4<_RSb+m|$yT5K zs3H9a<3=#ork|Ef#)1rkaRajI(?gyOd#R4k*RHJft=QvDKYh3eky+r3tOA##KtuXn zDH;7Pw~l%J_-TXC`e&_4Zvr)NUs)1+rV^eiy;oWqQ$YsH~oK{8kL zs_{Hf68z2?npSjijbo2-=vlEv0 z3~Vj|pqf0r6-gXa!Y-82hr=JucuX;Cf|+_tGB*ll%IKqWQR6PfeDEWdJOm(_rwV4u z=qn>;KbTQf4T%dx^{K>NnD4F~Ng|CqcPjgaJbrmh_~bHewkTW0k=|5r8jGGQ2Jr{V=D+X&*yQ#dEIISW5J7e9)H0{u-II#EjtSFX!`zO)20K^9s z4mdGRVQHlFfuG0h%h0axL!8K=85mGTCFt7p01W}K883m%h#dNmMQRz5Jwha9^c6{w zX=-rKY3EL(N_Q86*^_>SCi9zTaSAaTw}I)2C`uSRsEYK{G=ctz37Dy^U(_}T06uEK zOeYJVj6Rgoj46mkYqtyLof+nH1T$s0o;ThRb-ze#z4x%_-d--0e#L0y%w3d8YFrOB zpgEDoFGV@xH1-Re3L8%W�P066VoX0H{T(-g`02po~5`w>RRV4o;wnMZ@N&s0bBe z5I>74k18qG=&*=hB}7Lvq8o&0%3zxt=LylAV2Tba(KiXvlxs}3h^`T$n=+yuLNsOc z(W$kun@zEc6EF%{>$4~=Fa&j%gAcY{CYXpK^A(8-i8N|CYd4iQz6?BLGAEK~=>dRT zGTB$Aunj0fn5;&~r3BaWWUqgKlyoA(@&IdnW(L(@I^h6<=GWsyFHRDbpniEXXuaQ7D z*irDoVABN?QPh?p%pA0ZNTZmuc2jv{C2(Um3fK0mIgeJoAF^iaw;1oBguCeBUweAj z@9^{{x74R!Gg2%CnZFX^1|b4@JNjx!uVqMlVh3SWR0D2)X!Cc7vuDCLodDt%hg8po zfvw=fl1x+A_&L|PyPu?Cs_ZCb#(qO1axJrgl}gz31iW^#XC^fC=f+$FABF_`?MtDkOmn7f~^y`gr6 zxl0;2R4@*AjHhrDG@gVwFE9Bi8uA9nLvJ8Mq^+W~1C;ihNIUclj4JY+l=leb?Na zVK$IQ=9_q}EXTJo7p2Th8j!{kk;!AOTHrj9+ydwEBzQ2MT9634dNvLe8uvqCjHwd) zm^wV27M@9{$J0CS(epL!@#ScZu@LNr#;M#N#)C+pu^Hxu?=fBnJbWsZeFeJ`x!(Mg zGY5>v2=>lft;Br@O^km<>LC}+F6_Q;rlMaJdAht+%)Jwj2*yrm>3RusqWTFZm<)}@@O^U$BzZSHP1-@_ zYqP2(H3x84JYsC)M!v|~du(rMWx!MEtHuRF3*(2#r$ucZAaDPz`+u`NN6*V@4{n>E zWwE9)_G2)#^Yg07zt6^hzTh{$3(idAXHlir=gX|;jY3{^Uht;h@ur6xdSgcsG*uA==oZ%AKdmAC z>*1!7hTiWLW2k_jr@2znv-g}5Y^GdCkY-#%_UiHA`Mb9YY@VJ%PY*T=>3e8QA#nzQ zfg0>4z&B6>Zh{nRwHw!0O}yFD*rS&;Zhk%S8LHFMv%JK+@h9hDu+p@^jhqBLiph-L zc-!dU>UU8VY4>xb>kjrPU?R03 zlOBs7uK{j^!R5t}k%`!_^*>5%4e9rd1GLoiuJ1Q~2jp=WkO$1|xR(pLgF-Gnp&}2g z6{p~N2$Cp+pYV)7v4~xiK!dFwWo5oW?v7aPJv}uukTpEWGqvJbJR$U5L(NBdraCmA~!VE4At38Uw9>z%7 zbJ!!YS>R)20x0nlhO}srag09@^ACwxKKIiQFjf*%ujuwcfpfR-<-)HTDZuuvO~!8k zjh`b@=Ph*pC7$0mzBR*}#$a)gYB%opJvBx{?=--h3ue^! zgbE6KHWkqNvhnC}veA=X{|Jf>Hl*J)rlTkphuqEIly%+!pu4 z#BaFX18hSw*4Z#807oRQeylx3 zn_h?h4e6tvONYEYp7UHUc`kj@Q?&ROjp;YNmmX={eB_on-X1qNeuqPF<)vG$Ye>5v;R)#O_YAlPk*w7g zJ^maSh5B|YTpo|O`!NfWsMVbuq`J_*t5BaO{mbD&VVHj7RxrByz16QY^tc~MmNj1b z>&DH)w>Xt*Z=!D+(tDti7iJcEyq7%HJ5Yo5m>Ou7q-@x^VF-18f0N?ReE~9Sm@b2oWKfn3O&ON&|L%-^puh8Vj3p@fmu)R zR+2UVeQ6QEaT)FT)>2yUyp_dR8t+Ah@d%iWE~FlQi8KjNKAPo&2E>0IX)-*0AD(`P zr$58-&p6)C@gT>~b9{i~7dU>A<6m<8GRLoQe30YUIDVbuH#s&q{td@(ar`#NLmdBs zV>%}uo_>Vmqa44_@rN9L#Ic5jad`STj>mI6k>f&+CviNPVcnZf(j;C@wjpIu=p26{D9ACllERIV!F6Efc$%m)Ysmt*6Dvqz@crM5DIi|Cl z;pq!FuIKn_jy)WImg5GF7jfLg@luXkIHpsj;pxjcrW3j0={In^lH*kzw{qOZaXZJI z9Ixg$#4(+O4Ns499OF2_@fwc1IlhVGn>oIP;}plYalDD++d1CC@f{rB$?;trZ$;eD zd(kKG1YX-bJpE&UTRUmM9(ofu5`n#}u;&%FPhpQM>_-Z_Ut!x7_H~8bsj%A=)~&Fx z!rByey~3IlcD2IhDy&ptGZZ#OVP`9BlEUalFIss7tF^%1QrK$>dr@Kg6}DGleG1#D zu%750$A9#GgnD(qf`-KDTi3cE>RQH8ZD>;{D`RhUO%^A%REu*(!i zM>L{s=PGQn!p14=D3)2l_qM`bSJ*EVHmI4W!np>lvc2arg;@bbP<{{9r za0)^D90KLshv2wF65k_&wiYuH_`+=r*YLJ;3QnW@Je9Z-liV5v zzV;xd1NQeR$3VaVk@hh>XK4S8P>65_5$B>NQp`_mbs)$@Gbm>{h>HMc5|IRfWmKa_ zLhZ@yGQR+UGfpi|0xrajUP&tlK{;Qd9NHqNoG*izj>K)0^CJ)>dL@Z|C!1|@0VE>v zK4NPGp#CX*kdjExiN;cJ11?DW?tuHTz$P zSPp_r^>Y%SgCJ8qOgWoD;NVI7F%e$@L86)Mhm!38<@_6nPXfM7#Ookv)J(ube!(FS z)Fph4Lo&7JC93Cq5Y>SHhlpknRL|*DvkwII!dXOo4FnmagovFW$^e5@=0Zf2_$x#O z(?C3nZsF^XPy?LWOw!;e2%Zd-6$dZn+(l)&5s^jt`Z@^ge6)T*#}5z@+w(*`fC$G{ z;@Tr~o&hY_hlmvA>kSYjfR6ecM1qfoh zfpV@!L~LOqe3EDfENDYS7Uk<^nez?G*?j43HTrpuYw?>yhnrs(U;7eEg&8O z!PoG%^#w_qepDH)pAKpRwf{p(@FSXrFp+Zp4G5W+bN&lR0|H;Pe3B970%{eAa1JQ0 z&w!v|(E#YEM?|9e0*-5V+oc7cCgfp?=puv$1vwvRPa&*E;LE(1kO*1|<{~&~Y!gvS z#AS%85cq0EOjUOfMM8+6LEwlW%F*M;=vfj(Tx0_Wjq_^|_@d6Fp85iUgM^W7HxMD( z0nBo_$~`SDO)bGLy;+Z~(PNfO5TzBAw^aW^QjaG*{%~7Jk6rB#BqFhO%<8Jj&DZE_ zR;^R355}V*|2ij;PWnDG*2Ui{IU`|bAkx(ZY0gkEtULX&j%1e}PQ+(vory$rRx}bz zX!x#4PoVBuqMXQyN7@r>{V{!+9*g6vCrzYw`MZ}S^`zdW$d=BS?r)0=nxsUM2|?Vb z>(Sa!aE-2b7n&)um9ms#qy|!PAM55z1ftsFrWWtwMa^2RbFJR$jI-sOiB5k);Bnx( zGmwnM&?qN0#7S)>Js9za!}xG3pvRrTL|hNGJJ$sL&TE^(O-_7f*ECC;tw~j!?XgIg zQ=?CqXLlyLLfTx4=g;j#nqR{JFEaCT(tOq;1{& zxlw04u`Z;~n@S4J^oN2S;VYd1Fzd0aob4z#GakH2ztUM=745!i>U?eP>?lNtvaJ7n z%@_6Jb7DUluUS4lq%ZAe2g89-vQ3{&pB&ESl-g)C6by(j+&WRXA=1%-L243q5^j?4E(!0I@E;|7K*EP4?3eHv2@gp4iiC!Qe~|D)2`83{_7qEazJ${x zoF!qEgbO5WkZ_rVt0Y`4VM4-NB-|q5-4cFN!tYDCQ^Gz8_e!{5!WSicO~SV%JR%|8 z*J%JulJIN^r${(M!cqz6N_e$|O%h%&VVi_u3A-h{O~N}R{JMnOCA?q4A4&MQg!?3X zUc#3pd{e?93E!7+Jmw&^=X43rlW?kpS4dbXVU2{Jm9Ry^l@fMJ7?bd332&EhtAu|q z;ddpp&x3!K>5oYGl!QOC@gJ1)h}IEm2dyL76SM~F3DHpr&3b5^$>tlvo{DH%cL)|s z#zCwl*?eYsr<})5tV@)?NTXy+kY?_E3yT&XqW`Qva zj9FmJ0%H~!v%r`I#w;*qf&X_FIAdx_^MX~r1ueDBwM%QGg$Tth9G0+BXVmz7*Dork z6PybE)hJg*FdR$-aaeSd&I#@{+LGAvtvP&ilHpv=t!L)&m9vzkdOR8lx9KrgMNIDq z;)jf4bbuKQ=UEJ&2*+$V zmd#@wvwET2S(#pCAtiK(DGs2aA4FHHLpU$>LumyuQc+!VBygjiAoe-6$wUOFeq5oeGNVzGKj!a>qhxkh z+SRrjo%3BJq*0H@{T;fiJgz6|#Mx@gx~LeYC)Nu&`efHvT1oYFCc`)CZ7nf>I1U53 z!+}T}dfMHZQ`BM(IYu!4%Y=Pu+uCqA9Cush5;xIOF0T=+B9!QAZ<8rCk)w^ZOkS}S zEp>9li2iYvqP>mgi-0_u<`gIs1>~!OJSB3*fU5*W@TbeXf zFB|goL2ijElxViT@;C{zH^Y0F`IJ~BcQ+|@J8dyvGwfCZKIrC54l`f?}uC^ znRiPlcJN(QZ1hr@O^17Fv&)B)%|LWop_~t zk{76a)zPweE!|ZA26fR&=)vn&+&xdct8@F=YRAmoQH-u;Y)y_;#y;1D!Fa!=$Fk=~ zS)1ODx9vi5+`W`GR@I}`lPjaNVlB3X==K&p))fr%=#Xo=xdey>U?e5VV#%;O*whrr zZB=e<%#4w16yyx`TxMQfQ(NK8H^Ly#En;6`S?Nk)5m!k}kLvhIjkex!Omo zepOQ}7>QAzWG};JO?J~&El73*I`zPfu99R}?~dXb9}8a7!hps887@~i845K;g5(xN zY&bu#a+(d6P4ZP!x8M+@D{9e4874;|=Ep-91cXA_O;C?x_9B@oP{#6Dk;xHdK3?Nn z+$=^~y&j0^C^XDU>qz=z zZCK0j!xH9NM!)>d|5?JymwWGQ@S6TZ|JD77WLAoXvHS*~BK~M8wU(Aqx2lx=%(!dG<6{n9mL;qF2^zkz#Uh z$ho7;T^YyRh^-?a^yf} zd8yRI><&{yw+siL*wSMdx3vZnK0M0te>e$Z()nU~qB9m*Ya7<8Xhi_Wi81$T(bDEb zH5NGD1?zG}X<4=iPocg*celSaxW-iqJRbA~LjHK%M>_LADM7ooI#w0;kE>$++CojV z#l=TAd^uKW+mA{dQ=evjcx{(G4ORGktvL4%`*127=wyvJ5feFte~Dr))0qt1uP8TGuRx21kMA6o6RN~SebBreZa30}r{cO`B5sa*gCsl4g07L&B;k4B#sQT{6F zkM@AcFX_|aU`zQ2;fG80(f8RzlV2{;Uy?NW=Mw#aq{&a0=-_z4PyV_@9{_zi0{H|J z{idYJH<;+7k|rNvq9;ud{NyW4^o5cppJAfuR{}^L`3@6ZBWdy>CYnADqI~itCc0hH zzKC=u5$Z1lS}TE_=R+5F$O z(FbhwJ2v`~N!Ie$*yuGj`ujHeH5+{ z=+!nF-&9b2s{9XZ^bde za2>*OgwG*dk8lIR3WSvi^rh`81V2J6LN~%q2wz0F8DTxbOoUkovk^)VN)fsc!Uz$B zD8d&IVhC}B1VR#F4Z>vzmm^$(@b?I}Al! z5$;0xD#F(g?m_rE!rvj>i||bZTs1C4jRso|!H7^e1$zLpQr7l;S__&!~ zgUjw2<*8fs?Pxq^H;=+oT7sizyvMM5!cpV7W7zFtPR4W1d^IbYkmmqF>6Py=rQTF1 zU#6=}bgx;(($O`*fihlEu=kGeyA%GKah=RdCuHFcoKE5BN*$@O&f-|FwA|;5CKEVM zhbJChKE!Z<2d7MU`_Y@i+|dIcKT5V8LALl>O3mBqo4Jt;@?f}v`U&&RQp z#w^~2H{q?z->5czjebpCUDkh{4(TPDJ;jxiQks)ek&`kfC#5PU#g!}CRi4XLnVXa= z-IYgtH5syHnSH?)siVwRSuD@IEp9b z^&%|${g_J3emmx~y&FTNVwteM^0mGs9)ZdFUO2;)=dJKanQFBYFN}}}W#jW-rnKS+2Yj8ZC3a|+1!of|7?|%hl_90R<3+5&3UTK$Cf+(M%lfvXP%|%QJ8b} z%uI@08fDy>O@C*L4w-D_?X2?ixWZYSi$`V5ekLP-;?bD@8m`2n)|cx@JSuyh zXG9*0c?^`-ZP+H<>IHbRorXuP?4-I3k6P2obr>GCs?3ce%Z+!`64q%ll2e~6=eghJ zDr~DG*DY{#N8w`@&$tO6A8Xb!IZ~UftI$YX*5!w}@;d}u^^!cPbcexNx*<<s|RT_RY76{TsOBA770p)fxZzsyykg_*|`Y&CGE&&piOeaiQ(>+~WV6C2cg<-z+wD zh?#NxrQ8$I$l~^UvV_6u_k=}dyZoN0uq=n)6BWg4FuD7ls35iY$lkLZljlECx4HUe z>G0D0zwZfEdT%j literal 0 HcmV?d00001 diff --git a/DNSSD/samples/HTTPTimeServer/bin/Darwin/x86_64/HTTPTimeServerd b/DNSSD/samples/HTTPTimeServer/bin/Darwin/x86_64/HTTPTimeServerd new file mode 100755 index 0000000000000000000000000000000000000000..5de70786b28eb3db0f65c2ce82539edffafad8bb GIT binary patch literal 66260 zcmeIb4R~EunJ>Q64_ZD-0t!}8IMkvAq&X*T+7wDj+Z;HReuSpQisDI{oHl_pIpm`R zq>_@Jv4`W~W*nk*K+HIfcGSN&<3q3lVFGk$WxN=D5Gxm*$mqyGuw(D<_pY_} z*?XUzkJ7@u^M87tv-VoQwcht#?|RqAUVH7m*Z$#~zx~TJ%PN>`S)G$C%Q_dXdb(w$ zIxj-Vvfc|9gNw&2mtGsaF}ijQW4*ruFAPMKvmY76{9&c@H-`MIz`Q;s1spS1Fjf0=T3PCR| z?-U)OuD^=k%VkNu1w?L%H`TT4UJW(Rxgcm2neyyvu1#O|M8 z*Lb|W>9&TZx_Cp=re+ZO_51KAmAnq!=!pF?-16h`M16cyOU;&qiuKFe9ar);XeMIx zg;9TO$2*aCJYKPM-BK4>wUT3@y~z()ej2kKQ?9XPJl@n8Z@qoX#^%O&vaMxQc}5)j zgIh0FH|=A7@%ZNET&?EoS5)mSC$V4NtwtF9c)YP@EdA=Wybdjd*e#Fcy%Wy-;_6%tFMbztT1CrQrAPTrUmBjxz8z|dg&}AVwPof zh8Y6g9C&l!?}G5bv}Fyu2zxV@)eFqFHWO}l*0Ndv+V)sh^+zo0bi`G{@%JB~qdNoP zSKxOta+Kfxhb-&mfV49a7lNaV;`Y{-;>L!J#dWtg)&cW(J{v`(@zt3slklH4`u8mAIC-akNIqXW171^72nocoNTUbzC1E_q3BRi z(}Mn4+)=h5zFK z=a-%^{nocNGh{*Q#Fn|sT;>wKu#3+s=m7Ha)n0a)(*{0>R5rD8^p|@0muSrXbMkl60w*nS(gG(f zaMA)NE%5(O3#^Z&e;wO?s0h>GebFN=9aWQ}D9$di$nbo7Y*3$jFy#J2Bc1~)yW3DQ4`rBg+q zOlQxa6c$ZW*^B#dD)bCrix1YHWhd+lkexZd*a zQ3c(0_@<}2MSo2n>)JORb|j0}K1SZd*Pa?AFDCXkWmkeTGxe%f6fjtX;v#<9)1Mh)rP?novMkl&y7q=|dW!8SI+9*> z2#w%CEWOXRgc}C@CIX|h2UQ-i_d+yavG?!Dm!~hvABqer4bd^!`q(Sl?ex?3jWkDQ zn~m6!bo5ttnKDlZb_{MG9|*AD_Cw{kri-Nq%2@H~{;<@)Ap8B2!GJ_%`>UyGx<5vO zZ0Y=K$<<#jXnyNUI)E>&Y?sYa*JxzWUV&>st-laPUbDl9Le4`bo5*XZ2qL>k zrR+B;h?m;S^fSsn)hEk-Wg#SG2bh=r40*Ey%-()ng{v9<4#V5`vVE$4mMTYdI=dLh zgC9prk+IwrhaQv{cRpKGRtn%Fx0_r#T;tN=3YQLZ8O{ta6Z-|w2aNCK=$)vwcGTYb z188grKaXxXtSWUIYU_3MPWo%F!2H`zG)yXj?8M6YQv=~U?O z(W8Ys&Jyth1op;vp{h^A0Y#OFU$Q-A2a+OXU^l(&j611vI@>EUdn7X5vqwm>eG-|~ zXi!D&SKg5F4$#}TRCoEMy36B~#%y~;0J=QXQN6B6LOs*P%UV?P{3rWw2MD}Q8{h3ASnXbGd<;|qGZ<#j2GHnF3 zaH`)g0@4E`&`XB-lr5qDVextnP~Xp^;-DeJ;7}<~+Vv=GEHmR{99+;BO68`Wj{rHdR|V%9F>E_KgZT1CCCmi-u@$7 zQaUx56Q^2LM#b;R#itmKWwVFhU^dw~v`%)$lAP&hGL&J8{byqcUFy`ZsGq85 z#@VS|TrBSDf+^M{7HGGeR>ZRu@=GCfSOe{M{qTSq_DR~HbO0ZO%JfFhl$aEYM-GX0FPe^;EdFgfjSg4$T}i>iH= zIrBhQ}VrYO&KV$4~%*|PnoOTW58B4BFJ?8LhISu5@_n)ecM{@BghGDyIWxF{n zb#}(%yu82|MT9X*EYedZUN$U|S&hn7WK4OL%G*G1RNILFv7ODlQAOhQ9Drx{U}6B< z4Iyl7C&`(9CPNvf*dH~`$k>kRKf>GPXe^X!e+K4Br+#3>WF#1?9f^ED{S2(Mn-+U2 zXTp9)fR`4t*I%A9tq}Ht5KPR(ep7{|>)SI#*+G+wZmD*sirvkM9z#(ZypMzPQOaL$tC zwI2hEX{6s!-DIcXH`ZIG;yZKkDTZOaYGu9MEO&NBDKCmJR1#sR6r1$y5ii>(ky(uf zRpfr<4Jq#cy-}?v0>pY9%sZV;iq}&Q&mO_d2G*-a*jP`JGyP14GEA|*V+wDqNA(|p z;n_$j)qd$RHquYH#LyU-e#Y4Ui948@bAX(7C*&F1HK}e=>0*@*eu|2Z<>FHe!*=D$ zb~a0$o$)SQETK@tL>L^!B0Y!2%Z^B7RwD~nIG~)aydvezq&KSVM1a_?oO!3SW#aXO z;n@%2Ml@_U2VrA7NzU{$8Okul-U`b|vauc2H@2fx`)e>yIyKvf$w)BQ!8g!iFXc?w z&j{F^7PJ5AlALLU@Si~l(=rqLy~x_GW<)wQ(}*{Af9+I>FLL5BE2qS!)2PiEu4uAm z`Wa)-$f>cd&%WMdUijS}nUH636_su8v!9;hXa%w`$dGH8YG>Pr9>KKBvcF(R_Us14 z-1Y&brT~zo$k_F86OF6Sy(%bjp zI?q&uL==D%q@=O8BPWFCC^p&)lUoXjeBWN^FzTzjYfP5f*2svA_PZTIT?ePSBBYic zcSQ(G*L2C3IoWSqEMcjvU#hS${Z@t9EHurwA^V7ml%~W-?Vt)9rM-u`-7#57MTD$e z)H9H+WBM+p->%YmG3QV3VEV_9?n^j$PJSGE{19hLP2~9#u0;JjKM9C)R$6jO9n>o= zyjt*yux(fjWgBMUUsU143=h$g?U0W|&UO8KeN11k()$9^yO~}Zpr6)-Qxm_;*Obk> znSUku|HM^wtPlmzhME2om0lf?Uc~f%r28^4w%8EBvsL9^&iscEKG-huxApmC*w@cS z;)Vd>R|dqLpC5;c<Ag>}yjPCS&#va@KUL`|J@2krB1?MSW)+s6*Q&zO^Artw-rXv4 z4tvv%DZ&_IcnOubkP2s}enQq%tk{*&!-c8$APx)h+xK$04R@0=1GJ?5Gzwtv!=dm( z*Zm%Szv5ArPA}4|TJ?(*qr{5I)e$aet%IfcLdxSlIufQqD#amUx8XSwxv} zPspe_G_*J*?swcgz6Kjb(u{wzL?`_An4i0iGD2l*TH#2>g zTEpLouo?Fm4_$>S)58?|Cq^}&-c-&0#zndENW{OWGVi9G^foM%U-c-iU=SSS8YuL} zLOEsua+76(3*}sT9q1H+DQO8GSK%Z)qc`KBw@_tzm}0+w6uqgMeK?fUTOwvq?@Z}o zwcNp~vFEtTCJ{db6Iu={UN2-1LsmNbB95|m zmGSf6igd7w4%bnK%mAg^XCXeIz2Y8Sk^OoB=%mf6`*-I48*j^+CF(yqG(q>b!l)>@ zM;Pn6niV))xC0k^$Q;#%^=Y|lwg+vJle4MRFuf1=5z^aG!Tao4P*c~<)Q7n6k(rSd zkI7HR($Cnhfr16qH{G@!un!;xx{cV25E$kDV&>YJ`u3vl{$o)2=8ajtA}OES9`j~G z0kK(-J@V;W-#b1%@Atm!&;{SmI~{fJA74y)$e+Q@PJgh)c3-!4$wtZhWwcve^ z$1gB7pS!PWr&s+-b@_evY>}|dwyQuGY>z)vmT$au*#l*B-QWH+#2DfoRNv@d3A$n2 z&%wPM+|v<7+XwC6Q+Bp=8!mm&_6{RG*B^cc)#R4V$3V0vgacagY|2mXi{XYtW<5?E zPfAJC+xAH0^SJfbXFmc`-P+||q%Ef&Y28EVRX;%Hd+g^S{2*?8;5KR0h6iimCSlj! zN}hypCaXZY?|yG)>R)pShWD;bb*HEC4);{81FCJGT_pzP&BlH9KBpy((tj{EYzVx6 zZ|v)~$GfQIsQn=UMa#r<|w6Opl7}>EkH7g}J3uWpc9IXMdXz zOT;=& zeL(s|Z*1R`XPAVDuEBzI^nrsvMebVlex>?=oMeAI*;GF+%Rys*K`b*sli3*+9ud0? zbklG%r8x|+8sx!~Z0Z1l-#dDg1{&BYl>2bnCo$@T5%z;l9=P2LxsRioEqfV;cBPSu zjb&3j6Qf|fmwy+onGhU|9nZadJw?GS{jAJJa65$he4Cfhn6D#j6kt5G7Ah=;k}8Q) zgd`iYiFO&0Y2SrOtB#lXgI&!NiY`cIS}apO=jagfsLtgfVMOg=R@u_sxWHl4;yYl7 z-H;<3&=k*t!hUIzBv8m$Y?C3W!g zW|^r8kyVB#2r$4yldHap3qaN-yhrxILiSIrfsqeY#AiTowr?M{U;P8SsXUi8%qKqDIP!Px z4e1G$xBS}=;SC9xG~oFwboDUWEFR-1rCX9{^jYE?JpCc7}C?SkJ6A8thvMyHveKe*COt{&>b zJ#G=0Ri_f=VK8H4MtNON6hK%fgmuElSp`lBMAnpxYQq_%9WJHHjB0UCB&$%ds|LX| z2!B8P{e=&o)%8+A*PAF!f03}K*oU3c5J032T2#v_G(ouZDqNP(tw68JvNIplh1cXm zNFD;&0r&^t55pfuR!_WH5UYJg^FTwgq9@N0Pv`%non?dFzL(X>DRH@)Pi{Xn>}uWV z^=ORkhch>nU5QXyDzEUfdzDS43cEVOR^g8CxMDJ~a4d5cPPbu<5HmR)%4|EdGAp)E z53Ga|E7|aL>v$Ual~XZ1F(KZQ6`3rFpgt{Ik^cTl+*?4%ehjlp6hrKt=~tzZ>B`X| zbJnOQ-QR-lV2B!J2N)p(UNr;RPcZ!srk~36?R$se$?6Ex?cGT6U2kna)Jw|rVLW2C z^m`a`ttf6crrUebX?LYp-S>3#Z;-kT4PpImM4=VHrPuF4xzP&R(F)+w?Pvw<`&Xp@ zxH5ecYD_Ptyj~%5rzEmonf@_Po>Zb(ikV`pY7%@xYdx9-93Q^Qz@^s@?~A?&WiU^9 z(V3^bDD#xz+&tw)nWwxc^OQa1phkYUQN>)|ILizz8I&cnephDIeJ1T%lZL_-yard8 z!exYY5VI6@DZ4YhYKI|yjKr9GvT8)~HxYqKWm#b0UZlv(f2aKsB)FePtF*}*OHY|? z-;aPgzidC$sm7O>lwY?J)i(4Pf)#U?U}8I^>Xe{rlnB zzn?}uvJ7YbiI-(K$3KcV$FgjVP=Ev|+wjxTe+!|_565ttvfB!ss=~vgGR~ELIs|$M zS&KAO9cLy|oA*Tj4fzmq0NfeH!-#D3yaFjJe04C>2?WYx)lnV9tA%a~APvs$W z^v63>{}cW}wpr&4DSFIeURa*XtlEn#dqI@WK0wk!wmE8Qf#M!vFMJ$*c7Vl6{|~tg zRb|WUB-r`P&Yt^`1d1Z$cu$I;LRh3Op~|o%iz!!TQZ%J~i?nQ6lQa!?y3|m%o5Z*! zOT-BQPbFQP68)R9s;V$o+v(mH{VW?aD7(SIs}>D=GnJvPXQslm>F4dM&`2aJb@*#- z5jlINv+qN82d^-3E^{Et%A{x+R0ZQPlFkv`vLSfs6gll@u}lU7FvfmGg_WL#s*UrZ z-<>S?KOs>RuzxCKsw-^Y%btGIQ`!`&Q{O?-7nldv79}%L)Bci?p~!W%uj9c2QtnG< zcQB`a#8W_S5--apgEP!-cso;HXIz&M!uYZ-V4Ad4 z;lT&xsyIa^(@HOaXt{_*>!%bT=|36mmCr&q}P+WrdDx@(S zJRMaK+b0aH4agRKb5IhrhMZwu(A&rmWntXt6;P(EUM_?N=4qIBGXwJ)6)ZNS)jaDQL0EiVh?Ok!m1^0 zK)ke^`O!M-5xFA$#!5WyAynB7P{;mP-o!TJ-~givAMc@T`zK5>O3Tm(!*z&c<(c7K zriHj+A$KQu%VFCtOrm!cK0K{!xB#nboGr2B>1>SR&AgQW9TsDYJWf9ZA0wik!l`*{ zIY^{iqLMUuFUWd9wj2I#_!uGJ)GQTaw|l~wB|A99!$6E?DoqQEJ(4wN51jvFqM5Xr*KDXtOm1BF4)l{ zt%H}64mZugB%QsUfovU)cKxYHUk)loF1aX5dliy0A|y44heagE3n`97cw__-U3LM6 z4oUevQ%->(Nk+N)5RIbjp*LN4*Ad-RG=V??Gvg^75d56kGS4&6s5*mgSmeM3r&agqu1lzIkWoVvp?m_%AFBnKaTUbBG>QJg(S(? zn;kWCHEv_Xx|SffcDrx~rYtZCFCLNG4{a;}xG&$m_3bVXml|y>(^%=~t1bn-*Zc1E z=q^V!cYAP^U+$lw{8}Sb{vX<7udkP@^1*z3P0Uz9r)HL8rmF(PB% zVaL7)my(CgMlG@6#z{4m&0h5-Wd8UDa^t-vJB79?a_v<}mXI7!{Bq1h&;(>G5-Ikj zB;hRE5$s-sLKc%jpxe(6?74p&xBXm&+?Ao-_6xK8_Fc$F>2sw!N3^REyN7()tN6mp zDqzUvi?5fr`^fn0y*`+KG->ieN~Vd^4g zn!V}~UYTY~?}qmXHx7ynrk}8vP!AYFX|LL0nO)7iqOW#sdlmDjYsoGRv}3ycv^>AeTYF&txLJ>=d?dN!*Or)`z5x_sm4fO;abA0 z(BmEI#yuW7_QBn$%#3GHBRC5~gF?3z<2`cxtQ_x^W49bXC&&Bb_<1?*lH=dX@c}tLD92toenpO7 zmE+gsxLc0jkmI-H_-#4%$?-dKd`OND%W;n!ACco@a(rBlgK~UQj(g?!v>f-#k@a@; z;vdNISvd~L@yBxH`$0!9eqN3TIsS(nZ8`o%j)&y8&0U#34PuP zebx!x?SwdkSGhGgp*kmYqZ8tVg`&I02`zR)B~ECL6S}|&z1s<$=7cySRPtWK;G{x_ zoX|^7=ztS?)(P!(LXS8h&R><3uQ?%Jr>nTnIia0S=+jQ9%?aJ?gsPp;4NhpK6I$kk z%AC+#C&an7%J)1cROEzCaY9G%V5_2g#R=I?=oe1tIVbdt6B=|v4?Cf6IiasOp#nf^j^vPofG<% z6MDf3@l6Ir$Md8LJ?4bI(Gn(l=Df+ZQH!K+T_H%^G}a;enkozM@Q(34JxZ^$XSZzF`U@%~FD ze~9ApMU9a!Jf;0c1G0JGuqiDPRH4%fmzNYISKzrdH@(fczytjRku55qQgMk)hbBKddD zl|KORTPE{Y1m26_PsUhjEdyYw_==oW1Aw!GwUFR;4J75S0S+PZqfB`NQzj~W3&GXM zmeTGbNB~g4-w^yAz?<-e=O17WTIFAv@-l#v@_Sq)G38~ZlumQybJ=v2&*@l*w;BN` z`a*&S033BbcPcbSiU+e9`(K z0B5!T%9JSxode${xBvi&))9iM0M3J7#OdWH04PmT+B66=<+A`ZRRzH_09>F;5*z~f zXZSKdeGHcb6tIga&jHMa|1E-ZP?zt6e}G^Cz%}p>5!?xI7VIs*qxZkwX-#ft_;MAa z0u*`*DpHyy!FdFaz%7E4l>b72DOWJ11+B(O;ZxmAxsfS9(?EC*0sI{z<>&N;D@+Un zD1>!0BVuq@F~FZg>%=gCwqdPe@-jGAztR1%mP!0EK!tV^Y=x^}fImmBM+eIN2$Qdd zbIE<(*os#^@?(H?yBqD?;+i_Md5qxG0K9yXAG<2$*i88yz&GF@A@~YxM4lqn2zPV+ zx=HyIlAi;RpQ9&@EI$U&6s%7Yv2y1zz@J0=RfR2!0bX4Hh!Ky%UB>`_4(+oFTNVSw zaOXfvi*@`_IQbpDfBW`MT7ZKc3%v;%PW=h!(2*=YA29W004lT&1)2N^4qq}UA4T#V z0P_1000qoop??lQJIn8Vh@tft(!U6Y59$PX1>2~SOXp&6%8vmm_4kap0f)yFC261U zgvzT~db$R<0#*x6cN+nl*=jiXeI7^F#baOLZ{xz1KdBt6?|EPe}O;kt2oSsliyu9-lfaQh@1<@}UgFZ4pwr*YJx`r)@szl3H*|OP)62GLBX=@X=wkKNK zVl_>5jfs|PYHHh>TW**1NLhZm#oeE=+hs*VYqGKC_7Gu+`x&=vk-a!W%}t@&<}F(w zE!5c1lnB+dY;NC@XliSnYt^^4CFdraTiPt_+nH!X-g6b7N@;E0)OK4kiLrMbOLfm;%Zs+)>k%FhOmun@Ytx9N9OY@eH#Vx;!>)W<8T8nvHvbY|F zTe7&Vp{+5o#9M!%Wb7@z;$q3kTD-Bj?)D{%lcCnO+Zz*C&7wk= z*EBY4Zn`2=3*tn}m7z`GyS%mGj>HwA`DMwDD`zdS78fTWLh*|JORRWu1-9R=LE$aW z*1FtDwz#3Gwz0h~QOqV^EHO)y$;O6SX*F}}!Mw70^JX+s4{L6dSFeDziA~F4=C(xL znvFLnYTF=SLVQ*AXkc}fZ7q_c64AoO&YsE+jp0(x-^6n?hIc(&!G>zJx9|agayagn z&L43#WF3+Fyi2kz`qlIWeL*Z z7tO;72Yz=M;x-^3jFWf5uUw3D_=6Zfo`YYs4CBqmkT1rYo$&isSk|xTcel7a{#3#Luz{`es4shpd7y4AeKrDj2>L@=(6Y%dJV(7!3O&khcICE=2r7tDtfb z%6kR;D_|G+oQzg4whGGhHrVfmIQ|OmSc@%piwcU)m^Qr|6~Ox7ui%c#m69^;{uE%5 zI~}5|{XfS=HGY^=so&BwQ5(nq+g*peA*Mc|{5jh9OWwUkrGH2Jk7@sD?GI`H1?~Sz z`@hrvVeL<pgR{NjO{wD1wwSR~9cWD1!?eEh5SG4~v z?LVyjLG3@I{pYm*3+>z5e?|L8w0{bE4eeK?{qwXxTl;ghU#9(K+Fz;t8?;}o{hPJl zru|QAf2a08r~L=C|26IRY5x)J@74aZ+CQNEm$ZLK`>$!=TC2)&n)ctV{R^}|NBbq( zU#$IWv|p+H8?|4j{U+^qX#Z~Qe^&dS*M6_|zoGqywEwvF_iO*h+J8~||DpX6?Z2u0 zDHx|%FK23hruJuP|HIl}p#5^~e?mzS{KG1JQ2RVbNk7(vp;7p|HUD6Vq94{i&uMP{@=^GW9w+^i7C32vlNLB>fs+GdM^tnzsL zMzy$FDqnkwlr}Uqv^8K6?2d#)M7LVkx72s%(JgFm%BSo;JCAO@NLia`P2y`siIzxd zOJZ{aK0wsMh1rJMM0D+StEwGP36QNulnFv)yAeFHPWY9ou^WyPHq-0}FYeOwQZOAY4 zt*BjHRf5P`tn0QqWFE+O@CK_#{h&WfN=?-3$TWX)m*HW z>SaiYowqj8n5bz@R5oL6^!621^WxN9HIGP%%1$l$lYHUQ_O@oMW=e*U1v!l>Yw%gX zR&ctj(yzAP=#n0xkX5+%P_sD^nctddTdvlO*WI2}&Gh(cAx|H7ekBW-UwwPiEs45y zEj3N8Fi^Cqwz&>99o?A6>M@6IBWVBgJhw!mp1veS^za25!7IWMy=X(JmB4M!T+Z@u4;&NA~HCf|r@?x2M zZffYTzBUp;oO})s)tSa6rXFF z5X6<68b#MuMdDUx=j5?DO6uh%^qQockdObAU$r#uZa@J#mb4`DwA_8lI9j?VeW=#X zA?z|Z5rZsjY_6%p>2y=W=Jpo3@97;=lz#JKxTSuL+)u{@QHJm3>W2CW9!7(*!FOJtS-0a3V{`jjpzn;Bz%$>tk>#9n$dFDnz#_$gjibiIIi57SNm{*tBgl8R; zQ1iQ@^88 z&u>yxot?V6+=Sj{zCb-t!zQTgGEZGCHREzAQL|-~%OzYUbn>Gw?)r7*Q4(3Y5&U>E z$TN5?*qmrv(bRSVIV;k9>Ca1{e zEp2Pw(on0fL(#8Hg#;!0yF_Gu1s;Opd|REgBBfPp)~;K+Y-Kcl&6>5VmaaoVcH$ZB zeC-x`8F98-P?Jn1n(A`RH}7IU5_GX2$-CHRJ;lq6e6*ITg>hJEWQuFND+#Y|Z)~h= zZs0Rc(T>`LOgsFg52g|$ban<6YoWe)9(#D2U^%K5#d$I*t88g#ZedlUqq@srGV@nT z*|PS{we^YGTO#51rbI^)YaAF#E3d2d)NGC_(&RD)$gqAAOu4A0wKdTq^D|8bQuisx zF}f~)d=Z-lmW#F|&8R4?%Aw0sUFdOn3IUCc9?>Sn&yvdmJf1m!E+xlfI$m(i!ovG= zed#^r@ikSdcT^;5TM~SdabAhl*~gLCq^xMlrLcXiZ^BpP>*84M!;_Cv0IXKk)ZP-W zt-mF{sir{{$`!Y{y{4rO^T=Gj#c`1oUuk8`R{&9>-PaU#TRF%zca64ubfUJ>0wv#BBG zc*HHl)0%wlGpmb|K$Wqywhe2RSp0Q0P?e$^vdHTk)QwyvIZbyS7Msxl(TwXhHnhcY zVH(HNv#ky2bn%u%TYXFOZN6shu$IihqSeT)=;R*c4|*`avsy7!<&~*(Q0rV3T%-=ocuXa#3eqd+ z1q0Vokj^KFGq6M(gh92;!;W3XYnS?NUP0WNYE6n;MO$hbn(*$^q%HMmp^4h|wnUr{ zr{nx~$&Kr*5f{H!3T{rwtToez_%SB`@?j-v0^CPl2_Nn+bIdDSXf5Aca3a8T8LcG3D6(ui(XRIMiEEULFdC!l5D_i<05;(BLVZ z1>GMCbx#e2y9+|$a2P50B}3uCg33@B{?PQw%Ia`uLFMq|?n%RwiiW25o)#(^DF~H^ zD#M}j;et?iL0kykD#r(d~#j+1Y5Ql7!2 zr#^0a>f^@Lr&IHDTh{?})q8R?2<~Nvel0Vulf5ei%3zL5s?;0`f>{FEf2A2WvAfx^nc_9}L(uZ$= zlJ;gT&)_eQB5%C*$9KIb?^!L+V53jBPaijC`35z=h4-^qzXnHu-%9z0wY-FuXRy&{ zyz&$ktMWXf`3)|c9<0xJ^2)Wm2Jp-Hs_{hiNox8pYkq?bf5>NFH>Q2NHUEz^zrhpb z@6-H?@m??WH@E@#t<=wumiGlM&)|vbGotw)*Zc-gl)nfSM%u%g-{6Vzhc*A@rzv|F zZ1|JD`fy{`N3Z7poaQ&!@Vo0TsQ;SxRUX#-1{;2emme|t-I)20==@*M{01BTLB%dM zBEK7xpYJ`AHgdXd4;mZ(N*}))liw;){OdKp!FK?^mG%_U^1h+v8Eo`%m!IWvW9q|q zQb{`4?{hCf7R{0x6ckiz62*8E+X-(bV<)|dIa zG5O7VN4=Wg;7K!r?O8cRDM0y@=f;#*jrUoZb{qI<4}%#;dsM>lM=bn;a^>mM{P$^o zgD1*w;e}b!KC1Z*HvHAD{FuKRi~gGbmqve$mz^1G54Sxj&y6XM?Ob@@`NxiWgO@Vhbj z`R+Z_-i^&an7_e{WBwz;oy*^iCI6U8yIb>DYHavJK7KbQe^S$bMe`eM_{)9#ZcP3@ z&Hr1?Z?NHa=eHV>ZcP3m%|GK@RepmFf2A*fHzt2*g)0AY&2Mlca8P>)`{cPXd}eb#7x zgAISk$M43Hzvgc=`D<+WyM6p_O#brgRQ^BJ{01BTJ|DjulYd0>$7ZVX8*KR9`mRQ# z83nERy=U!yViO(Fi6#@s)JxKU&7qe6U_#@tVZ_;VU_UlrniF!UPl0S+PF{C@4j zXTz`|lL(*Rige=@K3wa=-99|v!@u$2_h91`xBSa}c)1VP`EbgIzwE;WC_^0&`u9Dg zUr^BLte3y6aXIE0Bzr&hlVN(N#tSs=)p(7@gBowscv$0a3dVSVc?jkGT&Ejch)+^b zepsh37mV>s<93~H@Yi*EwNC%3PB(ZO_Pr5(b$Y4By&BhQY}P}+pz*Ly@6*_xG*%HtTsm)Yz=gRa~UYdzrGw%^I8avwJl*>tPRRY|T~l2Mxc* z=g-pmXuMKmvp)1s8W-vHg$qBR=*{}gdX1Ah{WBVOYy67FeTILw;vdrZ8jVLZ?$o#_ ztn}^I*sLdd>KB(k{G_KazT<<=v@t{us z-x{0i(Zd>>>&qKIq~w|F!`n1A*Lx3YY_8w-8u~J&&&6{Tzqy|JlE&tGXjo%&JyUgw zqBqwggBqLbjfI!0baTD1Mq@Mo@6*`K&u61uNq@Rl>9a;-Ge1shZ05VaFzI?e_!o_n z8n5`U&R^pOjm>=V%Nm>c-+qlN_5A7A8YeY=&*fU4#!ECd^P`WObUojBT4OVRS%`Md z@|pR_O&S-iROQ{Kv6(M?Nn>;Ve@5eKP5u{wnd zA}ZbN&-EUS&Hh|v8k>E))&dtop4nfgUSqRg&D|PTCY1cY*VybUG-T*?{{KZhwbL^D z=)4Q#0*97_2EN4 zd_>_>6gAdU<_W)pukqnpAMW(wZ~5?t=6mH`=flkkPd53_E){wQFZ1C(A3o^A7cTJf zU+u%U`tav`_z55WgAZT6&@2BYAAZh<->b%Hr#$O?xWk7Z^x?fe{IU<9y~wN2)jr(l z!=Lxzejomc5C6f3XI$aU@54U4Qelh;>eueWU-99yuM~L>{Zb#^;=>R6@ac=a{OvwG z?89eY<)xqR!&`m0--m~Nc={5rytzKS&WAgE_=`ULXCFT2YOnlj6`o}5oA%)seRy)Y z@H_OE`S2PaZdI5=iTplaF8mIDRAEP6*;23kbqYJ<$74SHV;_Fahc8$r@*Mtae7Mnv zyL|Y5AO4OHKjXtMDeUym)0a#BPJ3MF!yotI@A&ZS3NQZ`eE7_$q)%7Y#lD60?Yaf96v)~0T;kc zf}0FC1#T+bDR9%^ro){IcN*O3aA&~HfIAbe5UvRBEV#4b-Uat=I6g;pF5G+IX2QJ} zE(&)(-231zfV&Vb1a}eKEVvKA&4#-e?t^e2g1ZFnQn<_DJ`8s`++4U~xNG2IaD3+K zBXHNj{R!oH4eoWg!*FlH{TYs%-d_o~815>#C2&{6mBTHCTL!lrt^)2A(EkzcRk$s{ z{2)UTZYA6*xYclL;40y+hg%C*1;6eUtE{i*uFX5D%)K9 z@|)Xi#pOY3<{OYLH$hS_LvpKw+>`A2&r8p*$NQvs`@ys2Hh8>ybTcAv*9Y#qJxV_L z4>X&6$l-rvUf%QyN|3iYm>{p2jaQUoqzalE;Pwp*oUM+J2l)zdxx%fFEVfTg(suASBfE^7K8Y%H@ z?GTi6B=2p1F{0#=dow(06}xr_Xf57=U5pZQ@p@~q-cPBuxFWGN(b$Z)V2an_m0av# zg_p<_U4?p6cWwv1#h_D)+gn?T@y=iI+__FKtG(>9;;oTlyc~%Ak>0ud@Ma>v5D{pb z3Gd*6eVXz&?ZU1JzD>KT%Hn|;&F4UtdkK8OR=nVfjlR_WXZ{VsCYaZ1yd<{*?+J6m zEy+~BD(BPFG+4gs7ifb>o%%Kg_wn#_%lu}z0I!r`HxN*HhSG_BFu@FQu1&zy_GWoo zBSoVaEi3t=t|yz(KCYlQ71KktwC;)Ik<1_JBKaFw;f+x2cx5)Q@)bPr9O7)sqc+Xb zYK`&IjJ)w^-cZbYgM5OmLF!h@?%CH(EIih3JQLsAt%NP@m@3BEVD4C}Ml8a2FWF!x zT%q1^|7|scH!Hmh<7gWh3bCgpt7(?!6C)~0j-EM3ekWYmEHD1Iditun!3#@CcxBD) z{Q8P#4~%GZ9vZafoUmcBql)xK*2Y-vxFk2iUbdWcxBxpWNHDHSrG4 zd*n@Nwdbcg5eK~6=rkW`g!z5H40A5|Vv(ow=hNYhaekc0-O(4Q?-fNNuCHH>)n6yL zCh?}A0cET7-$@xLkviW(_vWAIiY4%@H8^ho&c&)ISST(j{ zzLuXKb~|OXe`A1kI9paNh;!EUj?JubmCId|q;)wuW5?NirD*DLeEXSg_ zY*6DH)KNT4Ki5S-@y?Yo9^Zt|m2pFtnnu~PBR5CTEqor@{#b2hf(;ucGP~8dwzF|2 zB;&PTXTO-SRGDz|jbrzP#+s(h*vkML9XR_lxN5p&emtIRZ^ND~*h&|>=d@rq2<)ni z?RvS1R(=ZzZnmbv7oy=-&5v(+=jycqDs%JWcQD81)^{$mcwB8pzuM}RGVWr#5hFTzsqF^B3e(G0k-Zcxky4G06vXlF+Ty9k+ z$B|!tH;3N{&NLhWQh>P%Y(nTW7X!$!bzSb44^^TYJw0Z)>T%S&cV` zHY1%HNAuU1Pu_>(glMc5?+pKA^osxM_n~BL4!9L@;<{_l%nm2BG4`fEmV1Rk(w&AL zm}pMQL5U~szS3xR^ zCx1;la6QwT>&fL_JXzsh4bNK?cFxf1ypo@8E_Nk-ys4@o_FrQ8J~t>&9Ij4P3Y#t?Yrsqm_M>rS4ISRyCeg-mX>o{Jr+o+ab= zWEn)3-~PsUxF%o0F^Kc^l>3j7Q9d*6v0$$IpcwLz>9Lb<_VzIkyU*~swEUvyz8!5o zF73_MdCkT7w6v3+zo_N?B=eYr?$_b?73Q&sCwvR3B>w@()p)=W+&cIt`#)bf~_ozM?0kD1en{mk;1S>?`9u8$v&$>HrLsv7e@ zg_{4$rSAjFzC7|JjQx4#aoKYpSDqNDYgibqOy1#cG%D{nCse_oQTFPkY1|)C4kXYO zc49uE9GF8u1?OIp9sTpkjx4=WF<)Nf!WT91k_kQw7AbAPSL<5wh%?_lX{c47D-Xw| z;t5^zl2IfqY;Vewpik$J;Z%6`wlWU37RO#vVpoKqBJy_dkbjZ9~fJu z3BHez|7l&P(V2X_x#zx?oA*s!hcibL_(k1(y5R5W=IG2TG`h&{*LZSgR_EOapTg#Q zxnRbZbaO&Yyq7$8vkCOB5iA$)(B~cn@?CM1wKZ4C>*!j*X!pAD@^|x=E$CwU1L)Lk zG+Oidb3cvu?ERL%eC`wb4t(rgbIDfSarC|GG{IYkp6?O6q>c3{ zVi%e7+D7g}#7sRNjXa+rK2gH(5#r+(<^BZm@e0E&nO6M);^P%10~bF(e7u63!AIAg z{{_Lo``HV;pB{GUa4hV;to3JybHcn|8qUSLzcZYRbsFWwJ~14?=zL%pY2MEZBVxSI zo4ZIxTPw(WYgU9p(Sb yv5wAt7@$Vtt>0_r$0Vz?*Nro6o)Hee4|@h5a8uU6PUj literal 0 HcmV?d00001 diff --git a/DNSSD/samples/HTTPTimeServer/src/HTTPTimeServer.cpp b/DNSSD/samples/HTTPTimeServer/src/HTTPTimeServer.cpp new file mode 100644 index 000000000..f0e0b3697 --- /dev/null +++ b/DNSSD/samples/HTTPTimeServer/src/HTTPTimeServer.cpp @@ -0,0 +1,248 @@ +// +// HTTPTimeServer.cpp +// +// $Id: //poco/1.7/DNSSD/samples/HTTPTimeServer/src/HTTPTimeServer.cpp#1 $ +// +// This sample demonstrates how a web server can advertise itself +// on the network using DNS Service Discovery. +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/Net/HTTPServer.h" +#include "Poco/Net/HTTPRequestHandler.h" +#include "Poco/Net/HTTPRequestHandlerFactory.h" +#include "Poco/Net/HTTPServerParams.h" +#include "Poco/Net/HTTPServerRequest.h" +#include "Poco/Net/HTTPServerResponse.h" +#include "Poco/Net/HTTPServerParams.h" +#include "Poco/Net/ServerSocket.h" +#include "Poco/Net/IPAddress.h" +#include "Poco/Net/NetworkInterface.h" +#include "Poco/Net/MulticastSocket.h" +#include "Poco/Util/ServerApplication.h" +#include "Poco/Util/Option.h" +#include "Poco/Util/OptionSet.h" +#include "Poco/Util/HelpFormatter.h" +#include "Poco/DNSSD/DNSSDResponder.h" +#if POCO_OS == POCO_OS_LINUX && !defined(POCO_DNSSD_USE_BONJOUR) +#include "Poco/DNSSD/Avahi/Avahi.h" +#else +#include "Poco/DNSSD/Bonjour/Bonjour.h" +#endif +#include "Poco/DateTimeFormatter.h" +#include "Poco/DateTimeFormat.h" +#include "Poco/StreamCopier.h" +#include "Poco/Exception.h" +#include "Poco/ThreadPool.h" +#include +#include + + +using Poco::Net::ServerSocket; +using Poco::Net::SocketAddress; +using Poco::Net::HTTPRequestHandler; +using Poco::Net::HTTPRequestHandlerFactory; +using Poco::Net::HTTPServer; +using Poco::Net::HTTPServerRequest; +using Poco::Net::HTTPServerResponse; +using Poco::Net::HTTPServerParams; +using Poco::Timestamp; +using Poco::DateTimeFormatter; +using Poco::DateTimeFormat; +using Poco::ThreadPool; +using Poco::Util::ServerApplication; +using Poco::Util::Application; +using Poco::Util::Option; +using Poco::Util::OptionSet; +using Poco::Util::HelpFormatter; + + +class TimeRequestHandler: public HTTPRequestHandler + /// Return a HTML document with the current date and time. +{ +public: + TimeRequestHandler(const std::string& format): + _format(format) + { + } + + void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response) + { + Application& app = Application::instance(); + app.logger().information("Request from " + request.clientAddress().toString()); + + Timestamp now; + std::string dt(DateTimeFormatter::format(now, _format)); + + response.setChunkedTransferEncoding(true); + response.setContentType("text/html"); + + std::ostream& ostr = response.send(); + ostr << "HTTPTimeServer powered by POCO C++ Libraries"; + ostr << ""; + ostr << "

      "; + ostr << dt; + ostr << "

      "; + } + +private: + std::string _format; +}; + + +class TimeRequestHandlerFactory: public HTTPRequestHandlerFactory +{ +public: + TimeRequestHandlerFactory(const std::string& format): + _format(format) + { + } + + HTTPRequestHandler* createRequestHandler(const HTTPServerRequest& request) + { + if (request.getURI() == "/") + return new TimeRequestHandler(_format); + else + return 0; + } + +private: + std::string _format; +}; + + +class HTTPTimeServer: public Poco::Util::ServerApplication + /// The main application class. + /// + /// This class handles command-line arguments and + /// configuration files. + /// Start the HTTPTimeServer executable with the help + /// option (/help on Windows, --help on Unix) for + /// the available command line options. + /// + /// To use the sample configuration file (HTTPTimeServer.properties), + /// copy the file to the directory where the HTTPTimeServer executable + /// resides. If you start the debug version of the HTTPTimeServer + /// (HTTPTimeServerd[.exe]), you must also create a copy of the configuration + /// file named HTTPTimeServerd.properties. In the configuration file, you + /// can specify the port on which the server is listening (default + /// 9980) and the format of the date/time string sent back to the client. + /// + /// To test the TimeServer you can use any web browser (http://localhost:9980/). +{ +public: + HTTPTimeServer(): _helpRequested(false) + { + Poco::DNSSD::initializeDNSSD(); + } + + ~HTTPTimeServer() + { + Poco::DNSSD::uninitializeDNSSD(); + } + +protected: + void initialize(Application& self) + { + loadConfiguration(); // load default configuration files, if present + ServerApplication::initialize(self); + } + + void uninitialize() + { + ServerApplication::uninitialize(); + } + + void defineOptions(OptionSet& options) + { + ServerApplication::defineOptions(options); + + options.addOption( + Option("help", "h", "Display help information on command line arguments.") + .required(false) + .repeatable(false)); + } + + void handleOption(const std::string& name, const std::string& value) + { + ServerApplication::handleOption(name, value); + + if (name == "help") + _helpRequested = true; + } + + void displayHelp() + { + HelpFormatter helpFormatter(options()); + helpFormatter.setCommand(commandName()); + helpFormatter.setUsage("OPTIONS"); + helpFormatter.setHeader("A web server that serves the current date and time and announces itself via UPnP SSDP."); + helpFormatter.format(std::cout); + } + + int main(const std::vector& args) + { + if (_helpRequested) + { + displayHelp(); + } + else + { + // get parameters from configuration file + unsigned short httpPort = static_cast(config().getInt("http.port", 9980)); + std::string format(config().getString("datetime.format", DateTimeFormat::SORTABLE_FORMAT)); + + Poco::Net::HTTPServerParams::Ptr pHTTPParams = new Poco::Net::HTTPServerParams; + pHTTPParams->setSoftwareVersion(config().getString("http.softwareVersion", "")); + pHTTPParams->setMaxQueued(config().getInt("http.maxQueued", 4)); + pHTTPParams->setMaxThreads(config().getInt("http.maxThreads", 4)); + pHTTPParams->setTimeout(Poco::Timespan(config().getInt("http.timeout", 5), 0)); + pHTTPParams->setKeepAlive(config().getBool("http.keepAlive", false)); + pHTTPParams->setMaxKeepAliveRequests(config().getInt("http.maxKeepAliveRequests", 10)); + pHTTPParams->setKeepAliveTimeout(Poco::Timespan(config().getInt("http.keepAliveTimeout", 10), 0)); + + ThreadPool::defaultPool().addCapacity(pHTTPParams->getMaxThreads()); + + // set-up a server socket + SocketAddress httpSA(Poco::Net::IPAddress(), httpPort); + ServerSocket httpSocket(httpSA); + // set-up a HTTPServer instance + HTTPServer srv(new TimeRequestHandlerFactory(format), httpSocket, pHTTPParams); + // start the HTTPServer + srv.start(); + + // register with DNSSDResponder + Poco::DNSSD::DNSSDResponder dnssdResponder; + dnssdResponder.start(); + + Poco::DNSSD::Service service("_http._tcp", httpPort); + Poco::DNSSD::ServiceHandle serviceHandle = dnssdResponder.registerService(service); + + // wait for CTRL-C or kill + waitForTerminationRequest(); + + // shut down UPnP + dnssdResponder.unregisterService(serviceHandle); + dnssdResponder.stop(); + + // Stop the HTTPServer + srv.stop(); + } + return Application::EXIT_OK; + } + +private: + bool _helpRequested; +}; + + +int main(int argc, char** argv) +{ + HTTPTimeServer app; + return app.run(argc, argv); +} diff --git a/DNSSD/samples/Makefile b/DNSSD/samples/Makefile new file mode 100644 index 000000000..64436a993 --- /dev/null +++ b/DNSSD/samples/Makefile @@ -0,0 +1,13 @@ +# +# Makefile +# +# $Id: //poco/1.7/DNSSD/samples/Makefile#1 $ +# +# Makefile for DNSSD Samples +# + +.PHONY: projects +clean all: projects +projects: + $(MAKE) -C DNSSDBrowser $(MAKECMDGOALS) + $(MAKE) -C HTTPTimeServer $(MAKECMDGOALS) diff --git a/DNSSD/samples/dependencies b/DNSSD/samples/dependencies new file mode 100644 index 000000000..b2586077a --- /dev/null +++ b/DNSSD/samples/dependencies @@ -0,0 +1,6 @@ +Foundation +XML +Util +Net +DNSSD +DNSSD/Default diff --git a/DNSSD/samples/samples.progen b/DNSSD/samples/samples.progen new file mode 100644 index 000000000..5dd93f1ba --- /dev/null +++ b/DNSSD/samples/samples.progen @@ -0,0 +1,6 @@ +vc.project.platforms = Win32, x64, WinCE +vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md +vc.solution.create = true +vc.solution.include = \ + DNSSDBrowser\\DNSSDBrowser; \ + HTTPTimeServer\\HTTPTimeServer diff --git a/DNSSD/samples/samples_vs160.sln b/DNSSD/samples/samples_vs160.sln new file mode 100644 index 000000000..07516a19d --- /dev/null +++ b/DNSSD/samples/samples_vs160.sln @@ -0,0 +1,99 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DNSSDBrowser", "DNSSDBrowser\DNSSDBrowser_vs160.vcxproj", "{36D5972E-D503-3863-AFC5-8740752A3A8F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPTimeServer", "HTTPTimeServer\HTTPTimeServer_vs160.vcxproj", "{18A0143A-444A-38E3-838C-1ACFBE4EE18C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 + release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + debug_shared|x64 = debug_shared|x64 + release_shared|x64 = release_shared|x64 + debug_static_mt|x64 = debug_static_mt|x64 + release_static_mt|x64 = release_static_mt|x64 + debug_static_md|x64 = debug_static_md|x64 + release_static_md|x64 = release_static_md|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_shared|Win32.Build.0 = release_shared|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_shared|x64.Build.0 = debug_shared|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_shared|x64.ActiveCfg = release_shared|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_shared|x64.Build.0 = release_shared|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_shared|x64.Deploy.0 = release_shared|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_md|x64.Build.0 = release_static_md|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Build.0 = release_shared|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Build.0 = debug_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.ActiveCfg = release_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Build.0 = release_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Deploy.0 = release_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Build.0 = release_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Deploy.0 = release_static_md|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/DNSSD/samples/samples_vs170.sln b/DNSSD/samples/samples_vs170.sln new file mode 100644 index 000000000..3427c3fc9 --- /dev/null +++ b/DNSSD/samples/samples_vs170.sln @@ -0,0 +1,141 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DNSSDBrowser", "DNSSDBrowser\DNSSDBrowser_vs170.vcxproj", "{36D5972E-D503-3863-AFC5-8740752A3A8F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPTimeServer", "HTTPTimeServer\HTTPTimeServer_vs170.vcxproj", "{18A0143A-444A-38E3-838C-1ACFBE4EE18C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|ARM64 = debug_shared|ARM64 + release_shared|ARM64 = release_shared|ARM64 + debug_static_mt|ARM64 = debug_static_mt|ARM64 + release_static_mt|ARM64 = release_static_mt|ARM64 + debug_static_md|ARM64 = debug_static_md|ARM64 + release_static_md|ARM64 = release_static_md|ARM64 + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 + release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + debug_shared|x64 = debug_shared|x64 + release_shared|x64 = release_shared|x64 + debug_static_mt|x64 = debug_static_mt|x64 + release_static_mt|x64 = release_static_mt|x64 + debug_static_md|x64 = debug_static_md|x64 + release_static_md|x64 = release_static_md|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_shared|Win32.Build.0 = release_shared|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_shared|x64.Build.0 = debug_shared|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_shared|x64.ActiveCfg = release_shared|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_shared|x64.Build.0 = release_shared|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_shared|x64.Deploy.0 = release_shared|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_md|x64.Build.0 = release_static_md|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|ARM64.ActiveCfg = debug_shared|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|ARM64.Build.0 = debug_shared|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|ARM64.Deploy.0 = debug_shared|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|ARM64.ActiveCfg = release_shared|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|ARM64.Build.0 = release_shared|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|ARM64.Deploy.0 = release_shared|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|ARM64.ActiveCfg = debug_static_mt|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|ARM64.Build.0 = debug_static_mt|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|ARM64.Deploy.0 = debug_static_mt|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|ARM64.ActiveCfg = release_static_mt|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|ARM64.Build.0 = release_static_mt|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|ARM64.Deploy.0 = release_static_mt|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|ARM64.ActiveCfg = debug_static_md|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|ARM64.Build.0 = debug_static_md|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|ARM64.Deploy.0 = debug_static_md|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|ARM64.ActiveCfg = release_static_md|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|ARM64.Build.0 = release_static_md|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|ARM64.Deploy.0 = release_static_md|ARM64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Build.0 = release_shared|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Build.0 = debug_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.ActiveCfg = release_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Build.0 = release_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Deploy.0 = release_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Build.0 = release_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Deploy.0 = release_static_md|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/DNSSD/samples/samples_vs90.sln b/DNSSD/samples/samples_vs90.sln new file mode 100644 index 000000000..ab731ea56 --- /dev/null +++ b/DNSSD/samples/samples_vs90.sln @@ -0,0 +1,57 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DNSSDBrowser", "DNSSDBrowser\DNSSDBrowser_vs90.vcproj", "{36D5972E-D503-3863-AFC5-8740752A3A8F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPTimeServer", "HTTPTimeServer\HTTPTimeServer_vs90.vcproj", "{18A0143A-444A-38E3-838C-1ACFBE4EE18C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|Win32 = debug_shared|Win32 + release_shared|Win32 = release_shared|Win32 + debug_static_mt|Win32 = debug_static_mt|Win32 + release_static_mt|Win32 = release_static_mt|Win32 + debug_static_md|Win32 = debug_static_md|Win32 + release_static_md|Win32 = release_static_md|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_shared|Win32.Build.0 = release_shared|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.ActiveCfg = debug_shared|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Build.0 = debug_shared|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|Win32.Deploy.0 = debug_shared|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.ActiveCfg = release_shared|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Build.0 = release_shared|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|Win32.Deploy.0 = release_shared|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.ActiveCfg = debug_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Build.0 = debug_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|Win32.Deploy.0 = debug_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.ActiveCfg = release_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Build.0 = release_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|Win32.Deploy.0 = release_static_mt|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.ActiveCfg = debug_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Build.0 = debug_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|Win32.Deploy.0 = debug_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.ActiveCfg = release_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Build.0 = release_static_md|Win32 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|Win32.Deploy.0 = release_static_md|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/DNSSD/samples/samples_x64_vs90.sln b/DNSSD/samples/samples_x64_vs90.sln new file mode 100644 index 000000000..becd97156 --- /dev/null +++ b/DNSSD/samples/samples_x64_vs90.sln @@ -0,0 +1,57 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DNSSDBrowser", "DNSSDBrowser\DNSSDBrowser_x64_vs90.vcproj", "{36D5972E-D503-3863-AFC5-8740752A3A8F}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HTTPTimeServer", "HTTPTimeServer\HTTPTimeServer_x64_vs90.vcproj", "{18A0143A-444A-38E3-838C-1ACFBE4EE18C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug_shared|x64 = debug_shared|x64 + release_shared|x64 = release_shared|x64 + debug_static_mt|x64 = debug_static_mt|x64 + release_static_mt|x64 = release_static_mt|x64 + debug_static_md|x64 = debug_static_md|x64 + release_static_md|x64 = release_static_md|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_shared|x64.Build.0 = debug_shared|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_shared|x64.ActiveCfg = release_shared|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_shared|x64.Build.0 = release_shared|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_shared|x64.Deploy.0 = release_shared|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_md|x64.Build.0 = release_static_md|x64 + {36D5972E-D503-3863-AFC5-8740752A3A8F}.release_static_md|x64.Deploy.0 = release_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.ActiveCfg = debug_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Build.0 = debug_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_shared|x64.Deploy.0 = debug_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.ActiveCfg = release_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Build.0 = release_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_shared|x64.Deploy.0 = release_shared|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.ActiveCfg = debug_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Build.0 = debug_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_mt|x64.Deploy.0 = debug_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.ActiveCfg = release_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Build.0 = release_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_mt|x64.Deploy.0 = release_static_mt|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.ActiveCfg = debug_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Build.0 = debug_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.debug_static_md|x64.Deploy.0 = debug_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.ActiveCfg = release_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Build.0 = release_static_md|x64 + {18A0143A-444A-38E3-838C-1ACFBE4EE18C}.release_static_md|x64.Deploy.0 = release_static_md|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/DNSSD/src/DNSSDBrowser.cpp b/DNSSD/src/DNSSDBrowser.cpp new file mode 100644 index 000000000..33d623e4a --- /dev/null +++ b/DNSSD/src/DNSSDBrowser.cpp @@ -0,0 +1,34 @@ +// +// DNSServiceBrowser.cpp +// +// $Id: //poco/1.7/DNSSD/src/DNSSDBrowser.cpp#1 $ +// +// Library: DNSSD +// Package: Core +// Module: DNSServiceBrowser +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/DNSSD/DNSSDBrowser.h" + + +namespace Poco { +namespace DNSSD { + + +DNSSDBrowser::DNSSDBrowser() +{ +} + + +DNSSDBrowser::~DNSSDBrowser() +{ +} + + +} } // namespace Poco::DNSSD diff --git a/DNSSD/src/DNSSDException.cpp b/DNSSD/src/DNSSDException.cpp new file mode 100644 index 000000000..dcd71cfbd --- /dev/null +++ b/DNSSD/src/DNSSDException.cpp @@ -0,0 +1,28 @@ +// +// ZeroconfException.cpp +// +// $Id: //poco/1.7/DNSSD/src/DNSSDException.cpp#1 $ +// +// Library: Zeroconf +// Package: Core +// Module: ZeroconfException +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/DNSSD/DNSSDException.h" +#include + + +namespace Poco { +namespace DNSSD { + + +POCO_IMPLEMENT_EXCEPTION(DNSSDException, Poco::RuntimeException, "DNSSD Exception") + + +} } // namespace Poco::DNSSD diff --git a/DNSSD/src/DNSSDResponder.cpp b/DNSSD/src/DNSSDResponder.cpp new file mode 100644 index 000000000..df0c1741c --- /dev/null +++ b/DNSSD/src/DNSSDResponder.cpp @@ -0,0 +1,109 @@ +// +// DNSSDResponder.cpp +// +// $Id: //poco/1.7/DNSSD/src/DNSSDResponder.cpp#1 $ +// +// Library: DNSSD +// Package: Core +// Module: DNSSDResponder +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/DNSSD/DNSSDResponder.h" +#include "Poco/DNSSD/DNSSDResponderImpl.h" +#include "Poco/Exception.h" + + +namespace Poco { +namespace DNSSD { + + +DNSSDResponderImplFactory* DNSSDResponder::_pImplFactory(0); + + +DNSSDResponder::DNSSDResponder(): + _pImpl(0) +{ + if (_pImplFactory) + { + _pImpl = _pImplFactory->createResponderImpl(*this); + } + else + { + throw Poco::IllegalStateException("No DNSResponderImplFactory available."); + } +} + + +DNSSDResponder::~DNSSDResponder() +{ + delete _pImpl; +} + + +DNSSDBrowser& DNSSDResponder::browser() +{ + return _pImpl->browser(); +} + + +ServiceHandle DNSSDResponder::registerService(const Service& service, int options) +{ + return _pImpl->registerService(service, options); +} + + +void DNSSDResponder::unregisterService(ServiceHandle& serviceHandle) +{ + _pImpl->unregisterService(serviceHandle); +} + + +RecordHandle DNSSDResponder::addRecord(ServiceHandle serviceHandle, const Record& record) +{ + return _pImpl->addRecord(serviceHandle, record); +} + + +void DNSSDResponder::updateRecord(ServiceHandle serviceHandle, RecordHandle recordHandle, const Record& record) +{ + _pImpl->updateRecord(serviceHandle, recordHandle, record); +} + + +void DNSSDResponder::removeRecord(ServiceHandle serviceHandle, RecordHandle& recordHandle) +{ + _pImpl->removeRecord(serviceHandle, recordHandle); +} + + +void DNSSDResponder::start() +{ + _pImpl->start(); +} + + +void DNSSDResponder::stop() +{ + _pImpl->stop(); +} + + +void DNSSDResponder::registerImplFactory(DNSSDResponderImplFactory& factory) +{ + _pImplFactory = &factory; +} + + +void DNSSDResponder::unregisterImplFactory() +{ + _pImplFactory = 0; +} + + +} } // namespace Poco::DNSSD diff --git a/DNSSD/src/DNSSDResponderImpl.cpp b/DNSSD/src/DNSSDResponderImpl.cpp new file mode 100644 index 000000000..26a765c45 --- /dev/null +++ b/DNSSD/src/DNSSDResponderImpl.cpp @@ -0,0 +1,39 @@ +// +// DNSSDResponderImpl.cpp +// +// $Id: //poco/1.7/DNSSD/src/DNSSDResponderImpl.cpp#1 $ +// +// Library: DNSSD +// Package: Core +// Module: DNSSDResponderImpl +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/DNSSD/DNSSDResponderImpl.h" + + +namespace Poco { +namespace DNSSD { + + +DNSSDResponderImpl::DNSSDResponderImpl() +{ +} + + +DNSSDResponderImpl::~DNSSDResponderImpl() +{ +} + + +DNSSDResponderImplFactory::~DNSSDResponderImplFactory() +{ +} + + +} } // namespace Poco::DNSSD diff --git a/DNSSD/src/Domain.cpp b/DNSSD/src/Domain.cpp new file mode 100644 index 000000000..41b530df6 --- /dev/null +++ b/DNSSD/src/Domain.cpp @@ -0,0 +1,44 @@ +// +// Domain.cpp +// +// $Id: //poco/1.7/DNSSD/src/Domain.cpp#1 $ +// +// Library: DNSSD +// Package: Core +// Module: Domain +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/DNSSD/Domain.h" + + +namespace Poco { +namespace DNSSD { + + +Domain::Domain(): + _networkInterface(0), + _isDefault(false) +{ +} + + +Domain::Domain(Poco::Int32 networkInterface, const std::string& name, bool isDefault): + _networkInterface(networkInterface), + _name(name), + _isDefault(isDefault) +{ +} + + +Domain::~Domain() +{ +} + + +} } // namespace Poco::DNSSD diff --git a/DNSSD/src/Error.cpp b/DNSSD/src/Error.cpp new file mode 100644 index 000000000..a56d73b23 --- /dev/null +++ b/DNSSD/src/Error.cpp @@ -0,0 +1,44 @@ +// +// Error.cpp +// +// $Id: //poco/1.7/DNSSD/src/Error.cpp#1 $ +// +// Library: DNSSD +// Package: Core +// Module: Error +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/DNSSD/Error.h" + + +namespace Poco { +namespace DNSSD { + + +Error::Error(): + _networkInterface(0), + _code(0) +{ +} + + +Error::Error(Poco::Int32 networkInterface, Poco::Int32 code, const std::string& message): + _networkInterface(networkInterface), + _code(code), + _message(message) +{ +} + + +Error::~Error() +{ +} + + +} } // namespace Poco::DNSSD diff --git a/DNSSD/src/Record.cpp b/DNSSD/src/Record.cpp new file mode 100644 index 000000000..c09742bb8 --- /dev/null +++ b/DNSSD/src/Record.cpp @@ -0,0 +1,64 @@ +// +// Record.cpp +// +// $Id: //poco/1.7/DNSSD/src/Record.cpp#1 $ +// +// Library: DNSSD +// Package: Core +// Module: Record +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/DNSSD/Record.h" + + +namespace Poco { +namespace DNSSD { + + +Record::Record(): + _networkInterface(0), + _type(0), + _clazz(0), + _length(0), + _data(0), + _ttl(0) +{ +} + + +Record::Record(Poco::Int32 networkInterface, const std::string& name, Poco::UInt16 type, Poco::UInt16 clazz, Poco::UInt16 length, const void* data, Poco::UInt32 ttl): + _networkInterface(networkInterface), + _name(name), + _type(type), + _clazz(clazz), + _length(length), + _data(data), + _ttl(ttl) +{ +} + + +Record::Record(const std::string& name, Poco::UInt16 type, Poco::UInt16 length, const void* data, Poco::UInt32 ttl): + _networkInterface(0), + _name(name), + _type(type), + _clazz(RC_IN), + _length(length), + _data(data), + _ttl(ttl) +{ +} + + +Record::~Record() +{ +} + + +} } // namespace Poco::DNSSD diff --git a/DNSSD/src/Service.cpp b/DNSSD/src/Service.cpp new file mode 100644 index 000000000..5b56655a7 --- /dev/null +++ b/DNSSD/src/Service.cpp @@ -0,0 +1,80 @@ +// +// Service.cpp +// +// $Id: //poco/1.7/DNSSD/src/Service.cpp#1 $ +// +// Library: DNSSD +// Package: Core +// Module: Service +// +// Copyright (c) 2006-2024, Applied Informatics Software Engineering GmbH. +// and Contributors. +// +// SPDX-License-Identifier: BSL-1.0 +// + + +#include "Poco/DNSSD/Service.h" + + +namespace Poco { +namespace DNSSD { + + +Service::Service(): + _networkInterface(0), + _port(0) +{ +} + + +Service::Service(Poco::Int32 networkInterface, const std::string& name, const std::string& type, const std::string& domain): + _networkInterface(networkInterface), + _name(name), + _type(type), + _domain(domain), + _port(0) +{ +} + + +Service::Service(const std::string& type, Poco::UInt16 port, const Properties& properties): + _networkInterface(0), + _type(type), + _port(port), + _properties(properties) +{ +} + + +Service::Service(Poco::Int32 networkInterface, const std::string& name, const std::string& fullName, const std::string& type, const std::string& domain, const std::string& host, Poco::UInt16 port): + _networkInterface(networkInterface), + _name(name), + _fullName(fullName), + _type(type), + _domain(domain), + _host(host), + _port(port) +{ +} + + +Service::Service(Poco::Int32 networkInterface, const std::string& name, const std::string& fullName, const std::string& type, const std::string& domain, const std::string& host, Poco::UInt16 port, const Properties& properties): + _networkInterface(networkInterface), + _name(name), + _fullName(fullName), + _type(type), + _domain(domain), + _host(host), + _port(port), + _properties(properties) +{ +} + + +Service::~Service() +{ +} + + +} } // namespace Poco::DNSSD diff --git a/cmake/FindAvahi.cmake b/cmake/FindAvahi.cmake new file mode 100644 index 000000000..09bfa3e46 --- /dev/null +++ b/cmake/FindAvahi.cmake @@ -0,0 +1,20 @@ +# +# - Find Avahi +# Find the native AVAHI includes and library +# +# AVAHI_INCLUDE_DIRS - where to find pcre.h, etc. +# AVAHI_LIBRARIES - List of libraries when using pcre. +# AVAHI_FOUND - True if pcre found. + +find_library(AVAHI_LIBRARY-COMMON NAMES avahi-common) +find_library(AVAHI_LIBRARY-CLIENT NAMES avahi-client) + +find_path(AVAHI_INCLUDE_DIR avahi-client/publish.h) +include(FindPackageHandleStandardArgs) + +find_package_handle_standard_args(Avahi DEFAULT_MSG AVAHI_LIBRARY-COMMON AVAHI_LIBRARY-CLIENT AVAHI_INCLUDE_DIR) + +if(AVAHI_FOUND) + set(AVAHI_LIBRARIES ${AVAHI_LIBRARY-COMMON} ${AVAHI_LIBRARY-CLIENT}) + set(AVAHI_INCLUDE_DIRS ${AVAHI_INCLUDE_DIR}) +endif() diff --git a/cmake/FindBonjour.cmake b/cmake/FindBonjour.cmake new file mode 100644 index 000000000..8b53ce62d --- /dev/null +++ b/cmake/FindBonjour.cmake @@ -0,0 +1,49 @@ +# - Try to find Bonjour +# (See http://developer.apple.com/networking/bonjour/index.html) +# By default available on MacOS X. +# Check for libdns_sd +# +# BONJOUR_INCLUDE_DIR - where to find dns_sd.h, etc. +# BONJOUR_LIBRARIES - List of libraries when using .... +# BONJOUR_FOUND - True if Bonjour libraries found. + +set(BONJOUR_FOUND FALSE) +set(BONJOUR_LIBRARIES) + +message(STATUS "Checking whether Bonjour is supported") + +# Bonjour is built-in on MacOS X / iOS (i.e. available in libSystem) +if(NOT APPLE) + IF (WIN32) + FIND_PATH(BONJOUR_INCLUDE_DIR dns_sd.h + PATHS $ENV{PROGRAMW6432}/Bonjour\ SDK/Include + ) + FIND_LIBRARY(BONJOUR_LIBRARY + NAMES dnssd + PATHS $ENV{PROGRAMW6432}/Bonjour\ SDK/Lib/x64 + ) + ELSE(WIN32) + find_path(BONJOUR_INCLUDE_DIR dns_sd.h + PATHS /opt/dnssd/include /usr/include /usr/local/include + ) + find_library(BONJOUR_LIBRARY + NAMES dns_sd + PATHS /opt/dnssd/lib /usr/lib /usr/local/lib + ) + ENDIF(WIN32) + if(NOT BONJOUR_INCLUDE_DIR OR NOT BONJOUR_LIBRARY) + return() + else() + set(BONJOUR_LIBRARIES ${BONJOUR_LIBRARY} ) + set(BONJOUR_FOUND TRUE) + endif() +else() + find_library(BONJOUR_LIBRARY CoreServices) + set(BONJOUR_FOUND TRUE) +endif() + + +mark_as_advanced( FORCE + BONJOUR_INCLUDE_DIR + BONJOUR_LIBRARY + ) diff --git a/components b/components index 811018f99..dcf24697d 100644 --- a/components +++ b/components @@ -25,5 +25,8 @@ Redis Prometheus ActiveRecord ActiveRecord/Compiler +DNSSD +DNSSD/Avahi +DNSSD/Bonjour PocoDoc ProGen diff --git a/configure b/configure index 1ceeebeee..466ca3fdc 100755 --- a/configure +++ b/configure @@ -171,8 +171,8 @@ unbundled="" static="" shared="" nosqlparser= -omitMinimal="Crypto NetSSL_OpenSSL Zip Data Data/SQLite Data/ODBC Data/MySQL Data/PostgreSQL MongoDB Redis PDF CppParser PageCompiler" -omitTypical="Data/ODBC Data/MySQL Data/PostgreSQL MongoDB Redis PDF CppParser" +omitMinimal="Crypto NetSSL_OpenSSL Zip Data Data/SQLite Data/ODBC Data/MySQL Data/PostgreSQL MongoDB Redis PDF DNSSD DNSSD/Avahi DNSSD/Bonjour CppParser PageCompiler" +omitTypical="Data/ODBC Data/MySQL Data/PostgreSQL MongoDB Redis PDF DNSSD DNSSD/Avahi DNSSD/Bonjour CppParser" omit=$omitTypical # parse arguments while [ $# -ge 1 ]; do From 534c12415e8d1288bdd128e09fcb6ba5a481ad72 Mon Sep 17 00:00:00 2001 From: Alex Fabijanic Date: Wed, 3 Apr 2024 19:17:40 -0500 Subject: [PATCH 392/395] chore: README --- README | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README b/README index d8965df60..dc264a59d 100644 --- a/README +++ b/README @@ -88,7 +88,7 @@ EXTERNAL DEPENDENCIES The following libraries require third-party software (header files and libraries) being installed to build properly: -- NetSSL_OpenSSL, Crypt and JWT require OpenSSL. +- NetSSL_OpenSSL, Crypto and JWT require OpenSSL. - Data/ODBC requires ODBC (Microsoft ODBC on Windows, unixODBC or iODBC on Unix/Linux) - Data/MySQL requires the MySQL or MariaDB client library. @@ -171,11 +171,11 @@ package manager. It needed to be installed first(https://conan.io/downloads.html You can install Poco libraries from Conan Center(https://conan.io/center.html): -$ conan install -r conancenter poco/1.12.0@ +$ conan install -r conancenter poco/1.13.3@ Or, you can download Poco recipe and build locally: -$ conan install -r conancenter poco/1.12.0@ --build=poco +$ conan install -r conancenter poco/1.13.3@ --build=poco The Poco recipe and packages in Conan Center are kept up to date by Conan team members and community contributors. If the version is out of date, or you detect any wrong behavior, please create an issue or pull request(https://github.com/conan-io/conan-center-index) @@ -192,7 +192,7 @@ You can either build from within Visual Studio (Build->Batch Build->Select All;R or from the command line. To build from the command line, start the Developer PowerShell for Visual Studio and cd to the directory where you have extracted the POCO C++ Libraries sources. Then, run the buildwin.ps1 script -and pass the desired options. +and pass the desired options. To show available options, run: From bd4560123f3739f8006cae9d871217bc7f8f8c0e Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Fri, 5 Apr 2024 11:47:42 +0200 Subject: [PATCH 393/395] Sync differences from branch 'master' into 'devel' after release 1.13.3 --- CHANGELOG | 33 ++++++++++++++++++- CONTRIBUTORS | 1 + CppParser/CppParser.progen | 1 + CppParser/include/Poco/CppParser/CppToken.h | 1 + CppParser/include/Poco/CppParser/Symbol.h | 15 +++++++++ CppParser/src/CppToken.cpp | 9 ++++- CppParser/src/NameSpace.cpp | 23 ++++++------- CppParser/src/Symbol.cpp | 12 +++++-- CppParser/testsuite/TestSuite.progen | 1 + CppParser/testsuite/src/CppParserTest.cpp | 2 +- CppUnit/CppUnit.progen | 1 + DLLVersion.rc | 5 ++- Encodings/Compiler/Compiler.progen | 1 + Encodings/Encodings.progen | 1 + .../TextConverter/TextConverter.progen | 1 + Encodings/testsuite/TestSuite.progen | 1 + Foundation/include/Poco/Version.h | 2 +- .../samples/ActiveMethod/ActiveMethod.progen | 1 + Foundation/samples/Activity/Activity.progen | 1 + VERSION | 2 +- doc/99100-ReleaseNotes.page | 29 ++++++++++++++++ gh-cli-for-release-notes.sh | 24 ++++++++++---- libversion | 2 +- 23 files changed, 140 insertions(+), 29 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 813c862c1..d390d946d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,37 @@ This is the changelog file for the POCO C++ Libraries. +Release 1.13.3 (2024-04-04) +=========================== + +Summary of Changes: + +This is a bugfix release. + +Security Fixes: + +- GH #4496 Upgrade bundled libexpat to 2.6.2 + +Features, Enhancements and Third Party Updates: + +- GH #4488 Add Poco::Util::Timer::idle() method to check if timer has any tasks scheduled +- GH #3807 DNS.resolve() should not be sorted in HostEntry::removeDuplicates() +- GH #4515 Upgrade bundled SQLite to 3.45.2 +- PR #4517 Optimize Net module for Android + +Bug Fixes and Improvements: + +- GH #4505 ODBC Unicode wrappers do not check for null length pointers +- GH #4492 Poco::BasicMemoryStreamBuf is missing seekpos() +- GH #4486 DateTimeFormat RFC1036 Sunday name is short (should be long) +- GH #4468 Poco::URI: don't lowercase host part if it's a Unix domain socket +- GH #4450 Error between Poco::ActiveRecord and Poco::Data::PostgreSQL +- GH #4435 SecureStreamSocket is not thread-safe +- GH #4415 SecureSocketImpl::reset shouldn't close socket +- GH #3857 Thread_POSIX.cpp shouldn't convert thread IDs to long +- GH #3725 secure socket receiveTimeout throwing after configured timeout * 2 + + Release 1.13.2 (2024-02-19) =========================== @@ -38,7 +69,7 @@ Features and Enhancements: Bug Fixes and Improvements: -- GH #4443 Upgrade libexpat to 2.6.0 +- GH #4443 Upgrade libexpat to 2.6.0 - GH #4425 Unit tests: optional testing of deprecated functionality - GH #4421 Multiple calls to initializeSSL/uninitializeSSL cause assert failure during certificate validation - GH #4411 NULL pointer: strategy when setting rotation never in FileChannel diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 3b226c004..bc0497c0f 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -65,3 +65,4 @@ Andrew Auclair Jochen Sprickerhof Jesse Hoogervorst Aron Budea +zhuzeitou diff --git a/CppParser/CppParser.progen b/CppParser/CppParser.progen index c45badd30..2cbd38aed 100644 --- a/CppParser/CppParser.progen +++ b/CppParser/CppParser.progen @@ -11,5 +11,6 @@ vc.project.compiler.include = ..\\Foundation\\include vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/CppParser/include/Poco/CppParser/CppToken.h b/CppParser/include/Poco/CppParser/CppToken.h index 5338d4c8c..0d592d6a8 100644 --- a/CppParser/include/Poco/CppParser/CppToken.h +++ b/CppParser/include/Poco/CppParser/CppToken.h @@ -60,6 +60,7 @@ public: OP_GE, // >= OP_SHR, // >> OP_SHR_ASSIGN, // >>= + OP_SPACESHIP, // <=> OP_ASSIGN, // = OP_EQ, // == OP_NOT, // ! diff --git a/CppParser/include/Poco/CppParser/Symbol.h b/CppParser/include/Poco/CppParser/Symbol.h index 035eef647..8e9c77f9c 100644 --- a/CppParser/include/Poco/CppParser/Symbol.h +++ b/CppParser/include/Poco/CppParser/Symbol.h @@ -125,6 +125,14 @@ public: const std::string& getLibrary() const; /// Returns the symbol's library. + void setOrder(std::size_t order); + /// Sets the order of the symbol within its container. + /// + /// Currently only used for struct/class members. + + std::size_t getOrder() const; + /// Returns the order of the symbol within its container. + const Attributes& attrs() const; /// Returns the symbol's attributes. @@ -175,6 +183,7 @@ private: int _line; std::string _package; std::string _library; + std::size_t _order; Attributes _attrs; std::string _attributeList; @@ -245,6 +254,12 @@ inline const std::string& Symbol::getLibrary() const } +inline std::size_t Symbol::getOrder() const +{ + return _order; +} + + inline const Attributes& Symbol::attrs() const { return _attrs; diff --git a/CppParser/src/CppToken.cpp b/CppParser/src/CppToken.cpp index 7bb6c7b89..342da95e4 100644 --- a/CppParser/src/CppToken.cpp +++ b/CppParser/src/CppToken.cpp @@ -66,6 +66,7 @@ OperatorToken::OperatorToken() _opMap[">="] = i++; _opMap[">>"] = i++; _opMap[">>="] = i++; + _opMap["<=>"] = i++; _opMap["="] = i++; _opMap["=="] = i++; _opMap["!"] = i++; @@ -194,8 +195,14 @@ void OperatorToken::finish(std::istream& istr) { _value += (char) istr.get(); next = (char) istr.peek(); + if (next == '=') _value += (char) istr.get(); + } + else if (next == '=') + { + _value += (char) istr.get(); + next = (char) istr.peek(); + if (next == '>') _value += (char) istr.get(); } - if (next == '=') _value += (char) istr.get(); break; case '>': if (next == '>') diff --git a/CppParser/src/NameSpace.cpp b/CppParser/src/NameSpace.cpp index 65f62eb4b..08862a066 100644 --- a/CppParser/src/NameSpace.cpp +++ b/CppParser/src/NameSpace.cpp @@ -49,7 +49,8 @@ NameSpace::~NameSpace() void NameSpace::addSymbol(Symbol* pSymbol) { poco_check_ptr (pSymbol); - + + pSymbol->setOrder(_symbols.size()); _symbols.insert(SymbolTable::value_type(pSymbol->name(), pSymbol)); } @@ -65,7 +66,7 @@ void NameSpace::importSymbol(const std::string& fullName) } } - + void NameSpace::importNameSpace(const std::string& nameSpace) { _importedNameSpaces.push_back(nameSpace); @@ -94,7 +95,7 @@ Symbol* NameSpace::lookup(const std::string& name) const Symbol* NameSpace::lookup(const std::string& name, std::set& alreadyVisited) const { Symbol* pSymbol = 0; - + if (name.empty()) return pSymbol; @@ -104,11 +105,11 @@ Symbol* NameSpace::lookup(const std::string& name, std::set& a std::string head; std::string tail; splitName(name, head, tail); - + alreadyVisited.insert(this); bool currentNSInserted = true; - if (head.empty()) + if (head.empty()) { alreadyVisited.insert(this); return root()->lookup(tail, alreadyVisited); @@ -161,13 +162,13 @@ void NameSpace::nameSpaces(SymbolTable& table) const extract(Symbol::SYM_NAMESPACE, table); } - + void NameSpace::typeDefs(SymbolTable& table) const { extract(Symbol::SYM_TYPEDEF, table); } - + void NameSpace::typeAliases(SymbolTable& table) const { extract(Symbol::SYM_TYPEALIAS, table); @@ -179,19 +180,19 @@ void NameSpace::enums(SymbolTable& table) const extract(Symbol::SYM_ENUM, table); } - + void NameSpace::classes(SymbolTable& table) const { extract(Symbol::SYM_STRUCT, table); } - + void NameSpace::functions(SymbolTable& table) const { extract(Symbol::SYM_FUNCTION, table); } - + void NameSpace::variables(SymbolTable& table) const { extract(Symbol::SYM_VARIABLE, table); @@ -226,7 +227,7 @@ void NameSpace::splitName(const std::string& name, std::string& head, std::strin head.assign(name, 0, pos); pos += 2; poco_assert (pos < name.length()); - tail.assign(name, pos, name.length() - pos); + tail.assign(name, pos, name.length() - pos); } else head = name; } diff --git a/CppParser/src/Symbol.cpp b/CppParser/src/Symbol.cpp index 50c436b14..d6280e260 100644 --- a/CppParser/src/Symbol.cpp +++ b/CppParser/src/Symbol.cpp @@ -31,7 +31,8 @@ Symbol::Symbol(): _id(_nextId++), _pNameSpace(0), _access(ACC_PUBLIC), - _line(-1) + _line(-1), + _order(0) { } @@ -41,7 +42,8 @@ Symbol::Symbol(const std::string& name, NameSpace* pNameSpace): _name(name), _pNameSpace(pNameSpace), _access(ACC_PUBLIC), - _line(-1) + _line(-1), + _order(0) { if (_pNameSpace) _pNameSpace->addSymbol(this); @@ -103,6 +105,12 @@ void Symbol::setLibrary(const std::string& library) } +void Symbol::setOrder(std::size_t order) +{ + _order = order; +} + + std::string Symbol::fullName() const { std::string fullName; diff --git a/CppParser/testsuite/TestSuite.progen b/CppParser/testsuite/TestSuite.progen index 67d728c5d..b98b54a01 100644 --- a/CppParser/testsuite/TestSuite.progen +++ b/CppParser/testsuite/TestSuite.progen @@ -7,4 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = iphlpapi.lib diff --git a/CppParser/testsuite/src/CppParserTest.cpp b/CppParser/testsuite/src/CppParserTest.cpp index c63f4c60a..7b07b0ffb 100644 --- a/CppParser/testsuite/src/CppParserTest.cpp +++ b/CppParser/testsuite/src/CppParserTest.cpp @@ -77,7 +77,7 @@ void CppParserTest::testExtractName() decl = "void func(int arg1, int arg2)"; name = Symbol::extractName(decl); assertTrue (name == "func"); - + decl = "std::function func"; name = Symbol::extractName(decl); assertTrue (name == "func"); diff --git a/CppUnit/CppUnit.progen b/CppUnit/CppUnit.progen index fe4a5976c..33490e445 100644 --- a/CppUnit/CppUnit.progen +++ b/CppUnit/CppUnit.progen @@ -12,5 +12,6 @@ vc.project.compiler.defines = POCO_NO_AUTOMATIC_LIBS vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.solution.create = true vc.solution.include = diff --git a/DLLVersion.rc b/DLLVersion.rc index 132e03b6d..b7cc2925d 100644 --- a/DLLVersion.rc +++ b/DLLVersion.rc @@ -4,8 +4,8 @@ #include "winres.h" -#define POCO_VERSION 1,13,1,0 -#define POCO_VERSION_STR "1.13.1" +#define POCO_VERSION 1,13,3,0 +#define POCO_VERSION_STR "1.13.3" VS_VERSION_INFO VERSIONINFO FILEVERSION POCO_VERSION @@ -28,7 +28,6 @@ BEGIN VALUE "FileDescription", "This file is part of the POCO C++ Libraries." VALUE "FileVersion", POCO_VERSION_STR VALUE "InternalName", "POCO" - VALUE "LegalCopyright", "Copyright (C) 2004-2024, Applied Informatics Software Engineering GmbH and Contributors." VALUE "ProductName", "POCO C++ Libraries - https://pocoproject.org" VALUE "ProductVersion", POCO_VERSION_STR END diff --git a/Encodings/Compiler/Compiler.progen b/Encodings/Compiler/Compiler.progen index 724d3e9c4..e3fa8996a 100644 --- a/Encodings/Compiler/Compiler.progen +++ b/Encodings/Compiler/Compiler.progen @@ -12,5 +12,6 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies = ws2_32.lib iphlpapi.lib vc.solution.create = true diff --git a/Encodings/Encodings.progen b/Encodings/Encodings.progen index ebbfaf607..88a4ce2fd 100644 --- a/Encodings/Encodings.progen +++ b/Encodings/Encodings.progen @@ -12,5 +12,6 @@ vc.project.compiler.defines = vc.project.compiler.defines.shared = ${vc.project.name}_EXPORTS vc.project.compiler.defines.debug_shared = ${vc.project.compiler.defines.shared} vc.project.compiler.defines.release_shared = ${vc.project.compiler.defines.shared} +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.solution.create = true vc.solution.include = testsuite\\TestSuite diff --git a/Encodings/samples/TextConverter/TextConverter.progen b/Encodings/samples/TextConverter/TextConverter.progen index ccd636a33..bf04023b1 100644 --- a/Encodings/samples/TextConverter/TextConverter.progen +++ b/Encodings/samples/TextConverter/TextConverter.progen @@ -7,4 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include;..\\..\\..\\Encodings\\include +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Encodings/testsuite/TestSuite.progen b/Encodings/testsuite/TestSuite.progen index bb69d812b..0d83ea307 100644 --- a/Encodings/testsuite/TestSuite.progen +++ b/Encodings/testsuite/TestSuite.progen @@ -7,3 +7,4 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = TestSuite_vs90.vcproj vc.project.compiler.include = ..\\..\\Foundation\\include;..\\..\\Encodings\\include +vc.project.compiler.additionalOptions = /Zc:__cplusplus diff --git a/Foundation/include/Poco/Version.h b/Foundation/include/Poco/Version.h index 4d9eb570c..eff51fede 100644 --- a/Foundation/include/Poco/Version.h +++ b/Foundation/include/Poco/Version.h @@ -36,6 +36,6 @@ // Bx: beta releases // -#define POCO_VERSION 0x010D0100 +#define POCO_VERSION 0x010D0300 #endif // Foundation_Version_INCLUDED diff --git a/Foundation/samples/ActiveMethod/ActiveMethod.progen b/Foundation/samples/ActiveMethod/ActiveMethod.progen index 7c2c98bb5..518a9d34a 100644 --- a/Foundation/samples/ActiveMethod/ActiveMethod.progen +++ b/Foundation/samples/ActiveMethod/ActiveMethod.progen @@ -7,4 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/Foundation/samples/Activity/Activity.progen b/Foundation/samples/Activity/Activity.progen index 7c2c98bb5..518a9d34a 100644 --- a/Foundation/samples/Activity/Activity.progen +++ b/Foundation/samples/Activity/Activity.progen @@ -7,4 +7,5 @@ vc.project.platforms = Win32 vc.project.configurations = debug_shared, release_shared, debug_static_mt, release_static_mt, debug_static_md, release_static_md vc.project.prototype = ${vc.project.name}_vs90.vcproj vc.project.compiler.include = ..\\..\\..\\Foundation\\include +vc.project.compiler.additionalOptions = /Zc:__cplusplus vc.project.linker.dependencies.Win32 = ws2_32.lib iphlpapi.lib diff --git a/VERSION b/VERSION index b50dd27dd..01b756823 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.13.1 +1.13.3 diff --git a/doc/99100-ReleaseNotes.page b/doc/99100-ReleaseNotes.page index 25f9f5667..516b5ddc5 100644 --- a/doc/99100-ReleaseNotes.page +++ b/doc/99100-ReleaseNotes.page @@ -1,6 +1,35 @@ POCO C++ Libraries Release Notes AAAIntroduction +!!!Release 1.13.3 + +!!Summary of Changes + +This is a bugfix release. + +!!Security Fixes + + - GH #4496 Upgrade bundled libexpat to 2.6.2 + +!!Features, Enhancements and Third Party Updates + + - GH #4488 Add Poco::Util::Timer::idle() method to check if timer has any tasks scheduled + - GH #3807 DNS.resolve() should not be sorted in HostEntry::removeDuplicates() + - GH #4515 Upgrade bundled SQLite to 3.45.2 + - PR #4517 Optimize Net module for Android + +!!Bug Fixes and Improvements: + + - GH #4505 ODBC Unicode wrappers do not check for null length pointers + - GH #4492 Poco::BasicMemoryStreamBuf is missing seekpos() + - GH #4486 DateTimeFormat RFC1036 Sunday name is short (should be long) + - GH #4468 Poco::URI: don't lowercase host part if it's a Unix domain socket + - GH #4450 Error between Poco::ActiveRecord and Poco::Data::PostgreSQL + - GH #4435 SecureStreamSocket is not thread-safe + - GH #4415 SecureSocketImpl::reset shouldn't close socket + - GH #3857 Thread_POSIX.cpp shouldn't convert thread IDs to long + - GH #3725 secure socket receiveTimeout throwing after configured timeout * 2 + !!!Release 1.13.2 diff --git a/gh-cli-for-release-notes.sh b/gh-cli-for-release-notes.sh index 565f345ef..9a27d6c27 100755 --- a/gh-cli-for-release-notes.sh +++ b/gh-cli-for-release-notes.sh @@ -32,20 +32,30 @@ echo gh issue list -S 'milestone:"'"${MILESTONE}"'" label:breaking' -s all -L 500 --json number,title --jq '.[] | "- GH #\(.number) \(.title)"' gh pr list -S 'milestone:"'"${MILESTONE}"'" label:breaking' -s all -L 500 --json number,title --jq '.[] | "- PR #\(.number) \(.title)"' + echo -echo "Features and Enhancements:" +echo "Security Fixes:" echo -gh issue list -S 'milestone:"'"${MILESTONE}"'" -label:breaking label:enhancement' -s all -L 500 --json number,title --jq '.[] | "- GH #\(.number) \(.title)"' -gh issue list -S 'milestone:"'"${MILESTONE}"'" -label:breaking -label:enhancement label:feature' -s all -L 500 --json number,title --jq '.[] | "- GH #\(.number) \(.title)"' -gh pr list -S 'milestone:"'"${MILESTONE}"'" -label:breaking label:enhancement' -s all -L 500 --json number,title --jq '.[] | "- PR #\(.number) \(.title)"' -gh pr list -S 'milestone:"'"${MILESTONE}"'" -label:breaking -label:enhancement label:feature' -s all -L 500 --json number,title --jq '.[] | "- PR #\(.number) \(.title)"' +gh issue list -S 'milestone:"'"${MILESTONE}"'" -label:breaking label:security' -s all -L 500 --json number,title --jq '.[] | "- GH #\(.number) \(.title)"' +gh pr list -S 'milestone:"'"${MILESTONE}"'" -label:breaking label:security' -s all -L 500 --json number,title --jq '.[] | "- PR #\(.number) \(.title)"' + +echo +echo "Features, Enhancements and Third Party Updates:" +echo + +gh issue list -S 'milestone:"'"${MILESTONE}"'" -label:breaking -label:security label:enhancement' -s all -L 500 --json number,title --jq '.[] | "- GH #\(.number) \(.title)"' +gh issue list -S 'milestone:"'"${MILESTONE}"'" -label:breaking -label:security -label:enhancement label:feature' -s all -L 500 --json number,title --jq '.[] | "- GH #\(.number) \(.title)"' +gh issue list -S 'milestone:"'"${MILESTONE}"'" -label:breaking -label:security -label:enhancement -label:feature label:third-party' -s all -L 500 --json number,title --jq '.[] | "- GH #\(.number) \(.title)"' +gh pr list -S 'milestone:"'"${MILESTONE}"'" -label:breaking -label:security label:enhancement' -s all -L 500 --json number,title --jq '.[] | "- PR #\(.number) \(.title)"' +gh pr list -S 'milestone:"'"${MILESTONE}"'" -label:breaking -label:security -label:enhancement label:feature' -s all -L 500 --json number,title --jq '.[] | "- PR #\(.number) \(.title)"' +gh pr list -S 'milestone:"'"${MILESTONE}"'" -label:breaking -label:security -label:enhancement -label:feature label:third-party' -s all -L 500 --json number,title --jq '.[] | "- PR #\(.number) \(.title)"' echo echo "Bug Fixes and Improvements:" echo -gh issue list -S 'milestone:"'"${MILESTONE}"'" -label:breaking -label:enhancement -label:feature' -s all -L 500 --json number,title --jq '.[] | "- GH #\(.number) \(.title)"' -gh pr list -S 'milestone:"'"${MILESTONE}"'" -label:breaking -label:enhancement -label:feature' -s all -L 500 --json number,title --jq '.[] | "- PR #\(.number) \(.title)"' +gh issue list -S 'milestone:"'"${MILESTONE}"'" -label:breaking -label:enhancement -label:feature -label:security -label:third-party' -s all -L 500 --json number,title --jq '.[] | "- GH #\(.number) \(.title)"' +gh pr list -S 'milestone:"'"${MILESTONE}"'" -label:breaking -label:enhancement -label:feature -label:security -label:third-party' -s all -L 500 --json number,title --jq '.[] | "- PR #\(.number) \(.title)"' echo diff --git a/libversion b/libversion index 398050c62..a9c8fe829 100644 --- a/libversion +++ b/libversion @@ -1 +1 @@ -101 +103 From f4dba784a43be741f929cdc3cec292e79c1eb138 Mon Sep 17 00:00:00 2001 From: Matej Kenda Date: Mon, 15 Apr 2024 13:11:34 +0200 Subject: [PATCH 394/395] Update CONTRIBUTING.md for new branching scheme. --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b34511711..dd176b466 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -33,7 +33,7 @@ Before writing any code, please read the 6. Send [pull request](https://help.github.com/articles/using-pull-requests/) with a descriptive and clear commit message -Important: Please don't send pull requests against the `master` branch. Pull requests should either target a specific release branch (if in ongoing development), or the `devel` branch. +Important: Pull requests should either target a specific release branch (if in ongoing development), or the `main` branch. At this point, it's our turn; if you've done everything well, we may just thank you and merge your request. Otherwise, we may provide some comments or suggestions to steer the contribution in the right direction. From e9f6fc10ccf3e2eed7aee5c435850d8e46a5c8ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mert=20=C3=96v=C3=BCn?= Date: Wed, 17 Apr 2024 21:37:49 +0300 Subject: [PATCH 395/395] - b master -> -b main --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cf9eb31f3..022e2ff14 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ $ brew install cmake openssl mysql-client libpq building the POCO C++ Libraries. ``` -$ git clone -b master https://github.com/pocoproject/poco.git +$ git clone -b main https://github.com/pocoproject/poco.git $ cd poco $ mkdir cmake-build $ cd cmake-build
  • [[SQLITE_FCNTL_RESET_CACHE]] +** If there is currently no transaction open on the database, and the +** database is not a temp db, then the [SQLITE_FCNTL_RESET_CACHE] file-control +** purges the contents of the in-memory page cache. If there is an open +** transaction, or if the db is a temp-db, this opcode is a no-op, not an error. ** */ #define SQLITE_FCNTL_LOCKSTATE 1 @@ -1530,6 +1550,7 @@ struct sqlite3_io_methods { #define SQLITE_FCNTL_CKPT_START 39 #define SQLITE_FCNTL_EXTERNAL_READER 40 #define SQLITE_FCNTL_CKSM_FILE 41 +#define SQLITE_FCNTL_RESET_CACHE 42 /* deprecated names */ #define SQLITE_GET_LOCKPROXYFILE SQLITE_FCNTL_GET_LOCKPROXYFILE @@ -1559,6 +1580,26 @@ typedef struct sqlite3_mutex sqlite3_mutex; */ typedef struct sqlite3_api_routines sqlite3_api_routines; +/* +** CAPI3REF: File Name +** +** Type [sqlite3_filename] is used by SQLite to pass filenames to the +** xOpen method of a [VFS]. It may be cast to (const char*) and treated +** as a normal, nul-terminated, UTF-8 buffer containing the filename, but +** may also be passed to special APIs such as: +** +**
      +**
    • sqlite3_filename_database() +**
    • sqlite3_filename_journal() +**
    • sqlite3_filename_wal() +**
    • sqlite3_uri_parameter() +**
    • sqlite3_uri_boolean() +**
    • sqlite3_uri_int64() +**
    • sqlite3_uri_key() +**
    +*/ +typedef const char *sqlite3_filename; + /* ** CAPI3REF: OS Interface Object ** @@ -1737,7 +1778,7 @@ struct sqlite3_vfs { sqlite3_vfs *pNext; /* Next registered VFS */ const char *zName; /* Name of this virtual file system */ void *pAppData; /* Pointer to application-specific data */ - int (*xOpen)(sqlite3_vfs*, const char *zName, sqlite3_file*, + int (*xOpen)(sqlite3_vfs*, sqlite3_filename zName, sqlite3_file*, int flags, int *pOutFlags); int (*xDelete)(sqlite3_vfs*, const char *zName, int syncDir); int (*xAccess)(sqlite3_vfs*, const char *zName, int flags, int *pResOut); @@ -1924,20 +1965,23 @@ SQLITE_API int sqlite3_os_end(void); ** must ensure that no other SQLite interfaces are invoked by other ** threads while sqlite3_config() is running.
    ** -** The sqlite3_config() interface -** may only be invoked prior to library initialization using -** [sqlite3_initialize()] or after shutdown by [sqlite3_shutdown()]. -** ^If sqlite3_config() is called after [sqlite3_initialize()] and before -** [sqlite3_shutdown()] then it will return SQLITE_MISUSE. -** Note, however, that ^sqlite3_config() can be called as part of the -** implementation of an application-defined [sqlite3_os_init()]. -** ** The first argument to sqlite3_config() is an integer ** [configuration option] that determines ** what property of SQLite is to be configured. Subsequent arguments ** vary depending on the [configuration option] ** in the first argument. ** +** For most configuration options, the sqlite3_config() interface +** may only be invoked prior to library initialization using +** [sqlite3_initialize()] or after shutdown by [sqlite3_shutdown()]. +** The exceptional configuration options that may be invoked at any time +** are called "anytime configuration options". +** ^If sqlite3_config() is called after [sqlite3_initialize()] and before +** [sqlite3_shutdown()] with a first argument that is not an anytime +** configuration option, then the sqlite3_config() call will return SQLITE_MISUSE. +** Note, however, that ^sqlite3_config() can be called as part of the +** implementation of an application-defined [sqlite3_os_init()]. +** ** ^When a configuration option is set, sqlite3_config() returns [SQLITE_OK]. ** ^If the option is unknown or SQLite is unable to set the option ** then this routine returns a non-zero [error code]. @@ -2045,6 +2089,23 @@ struct sqlite3_mem_methods { ** These constants are the available integer configuration options that ** can be passed as the first argument to the [sqlite3_config()] interface. ** +** Most of the configuration options for sqlite3_config() +** will only work if invoked prior to [sqlite3_initialize()] or after +** [sqlite3_shutdown()]. The few exceptions to this rule are called +** "anytime configuration options". +** ^Calling [sqlite3_config()] with a first argument that is not an +** anytime configuration option in between calls to [sqlite3_initialize()] and +** [sqlite3_shutdown()] is a no-op that returns SQLITE_MISUSE. +** +** The set of anytime configuration options can change (by insertions +** and/or deletions) from one release of SQLite to the next. +** As of SQLite version 3.42.0, the complete set of anytime configuration +** options is: +**
      +**
    • SQLITE_CONFIG_LOG +**
    • SQLITE_CONFIG_PCACHE_HDRSZ +**
    +** ** New configuration options may be added in future releases of SQLite. ** Existing configuration options might be discontinued. Applications ** should check the return code from [sqlite3_config()] to make sure that @@ -2391,28 +2452,28 @@ struct sqlite3_mem_methods { ** compile-time option is not set, then the default maximum is 1073741824. ** */ -#define SQLITE_CONFIG_SINGLETHREAD 1 /* nil */ -#define SQLITE_CONFIG_MULTITHREAD 2 /* nil */ -#define SQLITE_CONFIG_SERIALIZED 3 /* nil */ -#define SQLITE_CONFIG_MALLOC 4 /* sqlite3_mem_methods* */ -#define SQLITE_CONFIG_GETMALLOC 5 /* sqlite3_mem_methods* */ -#define SQLITE_CONFIG_SCRATCH 6 /* No longer used */ -#define SQLITE_CONFIG_PAGECACHE 7 /* void*, int sz, int N */ -#define SQLITE_CONFIG_HEAP 8 /* void*, int nByte, int min */ -#define SQLITE_CONFIG_MEMSTATUS 9 /* boolean */ -#define SQLITE_CONFIG_MUTEX 10 /* sqlite3_mutex_methods* */ -#define SQLITE_CONFIG_GETMUTEX 11 /* sqlite3_mutex_methods* */ -/* previously SQLITE_CONFIG_CHUNKALLOC 12 which is now unused. */ -#define SQLITE_CONFIG_LOOKASIDE 13 /* int int */ -#define SQLITE_CONFIG_PCACHE 14 /* no-op */ -#define SQLITE_CONFIG_GETPCACHE 15 /* no-op */ -#define SQLITE_CONFIG_LOG 16 /* xFunc, void* */ -#define SQLITE_CONFIG_URI 17 /* int */ -#define SQLITE_CONFIG_PCACHE2 18 /* sqlite3_pcache_methods2* */ -#define SQLITE_CONFIG_GETPCACHE2 19 /* sqlite3_pcache_methods2* */ +#define SQLITE_CONFIG_SINGLETHREAD 1 /* nil */ +#define SQLITE_CONFIG_MULTITHREAD 2 /* nil */ +#define SQLITE_CONFIG_SERIALIZED 3 /* nil */ +#define SQLITE_CONFIG_MALLOC 4 /* sqlite3_mem_methods* */ +#define SQLITE_CONFIG_GETMALLOC 5 /* sqlite3_mem_methods* */ +#define SQLITE_CONFIG_SCRATCH 6 /* No longer used */ +#define SQLITE_CONFIG_PAGECACHE 7 /* void*, int sz, int N */ +#define SQLITE_CONFIG_HEAP 8 /* void*, int nByte, int min */ +#define SQLITE_CONFIG_MEMSTATUS 9 /* boolean */ +#define SQLITE_CONFIG_MUTEX 10 /* sqlite3_mutex_methods* */ +#define SQLITE_CONFIG_GETMUTEX 11 /* sqlite3_mutex_methods* */ +/* previously SQLITE_CONFIG_CHUNKALLOC 12 which is now unused. */ +#define SQLITE_CONFIG_LOOKASIDE 13 /* int int */ +#define SQLITE_CONFIG_PCACHE 14 /* no-op */ +#define SQLITE_CONFIG_GETPCACHE 15 /* no-op */ +#define SQLITE_CONFIG_LOG 16 /* xFunc, void* */ +#define SQLITE_CONFIG_URI 17 /* int */ +#define SQLITE_CONFIG_PCACHE2 18 /* sqlite3_pcache_methods2* */ +#define SQLITE_CONFIG_GETPCACHE2 19 /* sqlite3_pcache_methods2* */ #define SQLITE_CONFIG_COVERING_INDEX_SCAN 20 /* int */ -#define SQLITE_CONFIG_SQLLOG 21 /* xSqllog, void* */ -#define SQLITE_CONFIG_MMAP_SIZE 22 /* sqlite3_int64, sqlite3_int64 */ +#define SQLITE_CONFIG_SQLLOG 21 /* xSqllog, void* */ +#define SQLITE_CONFIG_MMAP_SIZE 22 /* sqlite3_int64, sqlite3_int64 */ #define SQLITE_CONFIG_WIN32_HEAPSIZE 23 /* int nByte */ #define SQLITE_CONFIG_PCACHE_HDRSZ 24 /* int *psz */ #define SQLITE_CONFIG_PMASZ 25 /* unsigned int szPma */ @@ -2453,7 +2514,7 @@ struct sqlite3_mem_methods { ** configuration for a database connection can only be changed when that ** connection is not currently using lookaside memory, or in other words ** when the "current value" returned by -** [sqlite3_db_status](D,[SQLITE_CONFIG_LOOKASIDE],...) is zero. +** [sqlite3_db_status](D,[SQLITE_DBSTATUS_LOOKASIDE_USED],...) is zero. ** Any attempt to change the lookaside memory configuration when lookaside ** memory is in use leaves the configuration unchanged and returns ** [SQLITE_BUSY].)^ @@ -2603,8 +2664,12 @@ struct sqlite3_mem_methods { **